Спасибо.functions.php относиться не к плагину, но к вашей теме, т.е. здесь
\wp-content\themes\ИмяВашейТемы\functions.php
/**
* Change the add to cart text on single product pages
*/
add_filter('single_add_to_cart_text', 'woo_custom_cart_button_text');
function woo_custom_cart_button_text() {
global $woocommerce;
foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if( get_the_ID() == $_product->id ) {
return __('Already in cart - Add Again?', 'woocommerce');
}
}
return __('Add to cart', 'woocommerce');
}
/**
* Change the add to cart text on product archives
*/
add_filter( 'add_to_cart_text', 'woo_archive_custom_cart_button_text' );
function woo_archive_custom_cart_button_text() {
global $woocommerce;
foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if( get_the_ID() == $_product->id ) {
return __('Already in cart', 'woocommerce');
}
}
return __('Add to cart', 'woocommerce');
}
В последних версиях WooCommerce изменились названия фильтров.Спасибо.
Добавил в конце этого файла этот код:
Никаких изменений не увидел. В чем может быть проблема? Версия WC последняя.Код:/** * Change the add to cart text on single product pages */ add_filter('single_add_to_cart_text', 'woo_custom_cart_button_text'); function woo_custom_cart_button_text() { global $woocommerce; foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) { $_product = $values['data']; if( get_the_ID() == $_product->id ) { return __('Already in cart - Add Again?', 'woocommerce'); } } return __('Add to cart', 'woocommerce'); } /** * Change the add to cart text on product archives */ add_filter( 'add_to_cart_text', 'woo_archive_custom_cart_button_text' ); function woo_archive_custom_cart_button_text() { global $woocommerce; foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) { $_product = $values['data']; if( get_the_ID() == $_product->id ) { return __('Already in cart', 'woocommerce'); } } return __('Add to cart', 'woocommerce'); }
Screan:
/**
* Изменить текст кнопки "Добавить в корзину", если товар добавлен на странице товара
*/
add_filter('woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text');
function woo_custom_cart_button_text() {
global $woocommerce;
foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if( get_the_ID() == $_product->id ) {
return 'Уже в корзине. Добавить?';
}
}
return __('Add to cart', 'woocommerce');
}
/**
* Изменить текст кнопки "Добавить в корзину", если товар добавлен на странице каталога
*/
add_filter( 'woocommerce_product_add_to_cart_text', 'woo_archive_custom_cart_button_text' );
function woo_archive_custom_cart_button_text() {
global $woocommerce;
foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if( get_the_ID() == $_product->id ) {
return 'Уже в корзине. Добавить?';
}
}
return __('Add to cart', 'woocommerce');
}
А можете подсказать, что у них изменилось? Дабы устанавливая следующие дополнения - не возникло вопросов.В последних версиях WooCommerce изменились названия фильтров.
Поэтому для WooCommerce 2.4.5 правильно будет так.
PHP:/** * Изменить текст кнопки "Добавить в корзину", если товар добавлен на странице товара */ add_filter('woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text'); function woo_custom_cart_button_text() { global $woocommerce; foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) { $_product = $values['data']; if( get_the_ID() == $_product->id ) { return 'Уже в корзине. Добавить?'; } } return __('Add to cart', 'woocommerce'); } /** * Изменить текст кнопки "Добавить в корзину", если товар добавлен на странице каталога */ add_filter( 'woocommerce_product_add_to_cart_text', 'woo_archive_custom_cart_button_text' ); function woo_archive_custom_cart_button_text() { global $woocommerce; foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) { $_product = $values['data']; if( get_the_ID() == $_product->id ) { return 'Уже в корзине. Добавить?'; } } return __('Add to cart', 'woocommerce'); }
На теме storefront вот так выглядитА можете подсказать, что у них изменилось? Дабы устанавливая следующие дополнения - не возникло вопросов.
Не совсем это имел ввиду. Я хотел узнать, что в коде у них изменилось. Поскольку, если я правильно понял, взяв любой следующий код, к примеру, под номером 7 - Заменить «Товар отсутствует» на «Продано» и вставив его в function.php - он не сработает. Что в самом коде нужно заменять, какие переменные в новом обновлении WC поменялись?На теме storefront вот так выглядит
- в каталоге http://take.ms/bWeiU
- в карточке товара http://take.ms/plpSN
Изменилось название хуков и текст для кнопок.Не совсем это имел ввиду. Я хотел узнать, что в коде у них изменилось. Поскольку, если я правильно понял, взяв любой следующий код, к примеру, под номером 7 - Заменить «Товар отсутствует» на «Продано» и вставив его в function.php - он не сработает. Что в самом коде нужно заменять, какие переменные в новом обновлении WC поменялись?
// Set a minimum dollar amount per order
add_action( 'woocommerce_check_cart_items', 'spyr_set_min_total' );
function spyr_set_min_total() {
// Only run in the Cart or Checkout pages
if( is_cart() || is_checkout() ) {
global $woocommerce;
// Set minimum cart total
$minimum_cart_total = 10;
// Total we are going to be using for the Math
// This is before taxes and shipping charges
$total = WC()->cart->subtotal;
// Compare values and add an error is Cart's total
// happens to be less than the minimum required before checking out.
// Will display a message along the lines of
// A Minimum of 10 USD is required before checking out. (Cont. below)
// Current cart total: 6 USD
if( $total <= $minimum_cart_total ) {
// Display our error message
wc_add_notice( sprintf( '<strong>A Minimum of %s %s is required before checking out.</strong>'
.'<br />Current cart\'s total: %s %s',
$minimum_cart_total,
get_option( 'woocommerce_currency'),
$total,
get_option( 'woocommerce_currency') ),
'error' );
}
}
}
Попробуйте такой код в functions.php вашей темы :Вот рабочий вариант сниппета для Минимальной суммы заказа. Согласны?
PHP:// Set a minimum dollar amount per order add_action( 'woocommerce_check_cart_items', 'spyr_set_min_total' ); function spyr_set_min_total() { // Only run in the Cart or Checkout pages if( is_cart() || is_checkout() ) { global $woocommerce; // Set minimum cart total $minimum_cart_total = 10; // Total we are going to be using for the Math // This is before taxes and shipping charges $total = WC()->cart->subtotal; // Compare values and add an error is Cart's total // happens to be less than the minimum required before checking out. // Will display a message along the lines of // A Minimum of 10 USD is required before checking out. (Cont. below) // Current cart total: 6 USD if( $total <= $minimum_cart_total ) { // Display our error message wc_add_notice( sprintf( '<strong>A Minimum of %s %s is required before checking out.</strong>' .'<br />Current cart\'s total: %s %s', $minimum_cart_total, get_option( 'woocommerce_currency'), $total, get_option( 'woocommerce_currency') ), 'error' ); } } }
Вот этого кода и рассчета не хватает "Для оформления заказа не хватает N руб.". Как сделать?
// Ограничение по минимальной сумме при покупке товаров
add_action( 'woocommerce_check_cart_items', 'spyr_set_min_total' );
function spyr_set_min_total() {
if( is_cart() || is_checkout() ) {
global $woocommerce;
// минимальная сумма
$minimum_cart_total = 10000;
// сумма из корзины
$total = WC()->cart->subtotal;
// Сообщение об ошибке при меньшей сумме в корзине, чем лимит
if( $total <= $minimum_cart_total ) {
// Display our error message
$not_enough_summa = $minimum_cart_total - $total;
wc_add_notice( sprintf( 'Минимальная сумма заказа: %s'
.'<br>Для оформления заказа не хватает: %s',
wc_price($minimum_cart_total),
wc_price($not_enough_summa)
),
'error' );
}
}
}
В предыдущем примере можно оперировать разными суммами:Друзья, подскажите как исправить сниппет "Минимальная сумма заказа"? Он считается вместе с доставкой.
add_filter ('add_to_cart_redirect', 'redirect_to_checkout');
function redirect_to_checkout() {
global $woocommerce;
$checkout_url = $woocommerce->cart->get_checkout_url();
return $checkout_url;
}
Все я нашла ответ на вопрос. Оказывается теперь прямо из админки все делается.....Мне нужен редирект со всех кнопок сайта "Добавить в корзину" при нажатии сразу на корзину. (ПРичем у меня корзина и чекаут объединены)
Ребят помогите!