• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Важно! 50 полезных сниппетов для WooCommerce. Часть первая.

Деменция

Новичок
Уточните, совместима ли тема с woocommerce. Это должно быть где-то отдельно прописано. Если нет - ищите другую. Она может быть вам и интересна, но не подходит.
да активна, мне она интересна в плане продаж, из нее пытаюсь слепить то, что надо на первых парах, работает все розыюга.рф вот то что пока получается сильно не судите все в переработке :) Да код вставляю в конце файлика...
Поддерживаю Stork.71 - ваша тема не адаптирована под woocommerce. Потеряете кучу времени зря... Самый лучший вариант из тех, что я пробовала тема "Storefront". Разработчики: WooThemes. Они её специально создавали под магазин. Тема бесплатная. Скачивать надо на их сайте или на сайте WP (не знаю, корректно ли здесь указывать ссылку, но думаю меня простят :)) https://wordpress.org/themes/author/woothemes/. Сам плагин русифицирован, тема тоже. Плюс куча функций прописана в коде, не требуется с дополнительными плагинами заморачиваться....Попробуйте связку WP + WooCommerce + Storefront.
 

Tanhuxa

Форумчанин
Что-то не поняла, что в этом коде нужно заменить на (?) url категории?

5. Исключить категорию из виджета woocommerce -категории

add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' );

function woo_product_cat_widget_args( $cat_args ) {

$cat_args['exclude'] = array('16');

return $cat_args;
}
 

searchingman

Гуру
Местный
Что-то не поняла, что в этом коде нужно заменить на (?) url категории?

5. Исключить категорию из виджета woocommerce -категории

add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' );

function woo_product_cat_widget_args( $cat_args ) {

$cat_args['exclude'] = array('16');

return $cat_args;
}
Речь не про URL, но код категории.
Как узнать код категории смотрите здесь.
 

Tanhuxa

Форумчанин
Что-то не поняла, что в этом коде нужно заменить на (?) url категории?

5. Исключить категорию из виджета woocommerce -категории

add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' );

function woo_product_cat_widget_args( $cat_args ) {

$cat_args['exclude'] = array('16');

return $cat_args;
}
Ок, с этим разобралась. Нужно в array('16') изменить "16" на номер соответствующей категории. Посмотреть ее можно в коде виджета.
Мне нужно удалить 2 категории. Попытаталь продублировать код, но мне выдает ошибку синтаксиса. Как это правильно оформить?

Fatal error: Cannot redeclare woo_product_cat_widget_args() (previously declared in C:\Program Files (x86)\Ampps\www\192.168.2.150\loja\wp-content\themes\accesspress-staple\functions.php:309) in C:\Program Files (x86)\Ampps\www\192.168.2.150\loja\wp-content\themes\accesspress-staple\functions.php on line 327

Код выглядит так:

/**
*
* My configurations - exclude a category from widget
*
*/
add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' );

function woo_product_cat_widget_args( $cat_args ) {
$cat_args['exclude'] = array('144');
return $cat_args;
}
/**
*
* My configurations - exclude a category from widget
*
*/
add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' );

function woo_product_cat_widget_args( $cat_args ) {
$cat_args['exclude'] = array('145');
return $cat_args;
327}
 

Tanhuxa

Форумчанин
Ок, с этим разобралась. Нужно в array('16') изменить "16" на номер соответствующей категории. Посмотреть ее можно в коде виджета.
Мне нужно удалить 2 категории. Попытаталь продублировать код, но мне выдает ошибку синтаксиса. Как это правильно оформить?

Fatal error: Cannot redeclare woo_product_cat_widget_args() (previously declared in C:\Program Files (x86)\Ampps\www\192.168.2.150\loja\wp-content\themes\accesspress-staple\functions.php:309) in C:\Program Files (x86)\Ampps\www\192.168.2.150\loja\wp-content\themes\accesspress-staple\functions.php on line 327

Код выглядит так:

/**
*
* My configurations - exclude a category from widget
*
*/
add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' );

function woo_product_cat_widget_args( $cat_args ) {
$cat_args['exclude'] = array('144');
return $cat_args;
}
/**
*
* My configurations - exclude a category from widget
*
*/
add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' );

function woo_product_cat_widget_args( $cat_args ) {
$cat_args['exclude'] = array('145');
return $cat_args;
327}
Речь не про URL, но код категории.
Как узнать код категории смотрите здесь.
Спасибо!
Ввела $cat_args['exclude'] = array('144,145');, но вторая категория не удаляется. Что это может быть?
 

Tanhuxa

Форумчанин
11. Переименовать какую-либо вкладку на странице «Добавить товар»
Вкладка переименовала, спасибо. А как изменить/убрать заголовок во вкладке? Он у меня в теме соответствовал названию вкладки, но после применения этого сниппета не изменился.
 

Вложения

  • screenshot-impressaoglobal.jpg
    screenshot-impressaoglobal.jpg
    63.8 KB · Просмотры: 10

searchingman

Гуру
Местный
11. Переименовать какую-либо вкладку на странице «Добавить товар»
Вкладка переименовала, спасибо. А как изменить/убрать заголовок во вкладке? Он у меня в теме соответствовал названию вкладки, но после применения этого сниппета не изменился.
Если речь про заголовок во вкладке "Свойства", то поможет такой код в functions.php своей темы.
PHP:
// изменить/удалить заголовок вкладки "Свойства"
function my_additional_information_heading($headding) {
    $headding = 'Заголовок вместо Свойства'; // новый заголовок
    $headding = ''; // пустой заголовок
    return $headding;
}
add_filter('woocommerce_product_additional_information_heading', 'my_additional_information_heading' );
По манипуляциями с вкладками можно посмотреть еще эту тему.
 

Tanhuxa

Форумчанин
Если речь про заголовок во вкладке "Свойства", то поможет такой код в functions.php своей темы.
PHP:
// изменить/удалить заголовок вкладки "Свойства"
function my_additional_information_heading($headding) {
    $headding = 'Заголовок вместо Свойства'; // новый заголовок
    $headding = ''; // пустой заголовок
    return $headding;
}
add_filter('woocommerce_product_additional_information_heading', 'my_additional_information_heading' );
По манипуляциями с вкладками можно посмотреть еще эту тему.
Здравствуйте, searchingman! Спасибо, что снова откликнулись! Именно это. Сработало. Спасибо! (y) Вы прям волшебники какие-то!
 

llelikys

Новичок
Здравствуйте!

Подскажите, а как сделать, чтобы, например:
Если количество товара на складе от 1 до 10 - то выводило сообщение "мало на складе",
Если количество товара от 11-90 - то выводило сообщение "много на складе",
Ну и соответственно, если нет на складе, то выводило сообщение - "нет на складе".

Понимаю, что надо как-то изменить, наверное в этой конструкции, но вот не знаю как это сделать. Буду благодарен, если кто-то сможет подсказать. Использую последнюю версию woo.


/**
* смена записи наличия товара
*/
add_filter( 'woocommerce_get_availability', 'custom_get_availability', 1, 2);
function custom_get_availability( $availability, $_product ) {
//change text "In Stock' to 'SPECIAL ORDER'
if ( $_product->is_in_stock() ) $availability['availability'] = __('есть в наличии', 'woocommerce');
//change text "Out of Stock' to 'SOLD OUT'
if ( !$_product->is_in_stock() ) $availability['availability'] = __('нет в наличии', 'woocommerce');
return $availability;
}
 

D&B

Администратор
Команда форума
Местный
А что, стандартные настройки по границу низких остатков уже не работает?
 

llelikys

Новичок
А что, стандартные настройки по границу низких остатков уже не работает?

ну тут тогда больше вопрос: как сделать так, чтобы выводилось именно в такой формулировке, а не просто есть или нет в наличии?

А стандартно он выводит количество в карточке товара сколько осталось.

Или чего-то не понимаю как стандартно это можно сделать, чтобы выдавало "мало на складе", "много на складе" и "нет на складе" без точного количества.
 

searchingman

Гуру
Местный
Здравствуйте!

Подскажите, а как сделать, чтобы, например:
Если количество товара на складе от 1 до 10 - то выводило сообщение "мало на складе",
Если количество товара от 11-90 - то выводило сообщение "много на складе",
Ну и соответственно, если нет на складе, то выводило сообщение - "нет на складе".

Понимаю, что надо как-то изменить, наверное в этой конструкции, но вот не знаю как это сделать. Буду благодарен, если кто-то сможет подсказать. Использую последнюю версию woo.


/**
* смена записи наличия товара
*/
add_filter( 'woocommerce_get_availability', 'custom_get_availability', 1, 2);
function custom_get_availability( $availability, $_product ) {
//change text "In Stock' to 'SPECIAL ORDER'
if ( $_product->is_in_stock() ) $availability['availability'] = __('есть в наличии', 'woocommerce');
//change text "Out of Stock' to 'SOLD OUT'
if ( !$_product->is_in_stock() ) $availability['availability'] = __('нет в наличии', 'woocommerce');
return $availability;
}
В functions.php своей темы вставьте код
PHP:
function my_woocommerce_stock_html( $availability_html, $availability, $product) {
    $total_stock = $product->get_total_stock();
    if ($total_stock >= 1 && $total_stock <= 10) $message = 'мало на складе';
    elseif ($total_stock >= 10 ) $message = 'много на складе';
    else  $message = 'нет на складе';
   
    return $message;
}
add_filter( 'woocommerce_stock_html', 'my_woocommerce_stock_html', 10, 3 );
 

llelikys

Новичок
В functions.php своей темы вставьте код
PHP:
function my_woocommerce_stock_html( $availability_html, $availability, $product) {
    $total_stock = $product->get_total_stock();
    if ($total_stock >= 1 && $total_stock <= 10) $message = 'мало на складе';
    elseif ($total_stock >= 10 ) $message = 'много на складе';
    else  $message = 'нет на складе';
  
    return $message;
}
add_filter( 'woocommerce_stock_html', 'my_woocommerce_stock_html', 10, 3 );

Ругается:

Warning: Missing argument 3 for my_woocommerce_stock_html()
на эту строчку
function my_woocommerce_stock_html( $availability_html, $availability, $product) {

Fatal error: Call to a member function get_total_stock() on a non-object
на эту строчку
$total_stock = $product->get_total_stock();
 

searchingman

Гуру
Местный
Ругается:

Warning: Missing argument 3 for my_woocommerce_stock_html()
на эту строчку
function my_woocommerce_stock_html( $availability_html, $availability, $product) {

Fatal error: Call to a member function get_total_stock() on a non-object
на эту строчку
$total_stock = $product->get_total_stock();
Тестировал в последней версии WooCommerce (2.4.10) и последней версии темы StoreFront.
Никаких ошибок не заметил.
При указании в админке у товара количества http://take.ms/Hp6kx, в карточке товара показывается так http://take.ms/pt2ZS.
 

llelikys

Новичок
Тестировал в последней версии WooCommerce (2.4.10) и последней версии темы StoreFront.
Никаких ошибок не заметил.
При указании в админке у товара количества http://take.ms/Hp6kx, в карточке товара показывается так http://take.ms/pt2ZS.

Понял, видимо что -то у меня по другому, раз дает такой ответ. Хотя и использую 2.4.10, но тему другую использую, видимо она и виновата :(
 
Сверху Снизу