Измените положение уведомлений WooCommerce в теме витрины

Я пытаюсь изменить положение storefront_shop_messages в моей дочерней теме Storefront (WooCommerce). Итак, я добавил этот код в functions.php моей активной темы:

remove_action( 'storefront_content_top', 'storefront_shop_messages', 15 );
add_action('woocommerce_product_meta_end', 'storefront_shop_messages', 1 );

Но это не работает.


person Louis    schedule 04.10.2017    source источник
comment
Хорошо, вы можете придумать более общий крючок? И, в частности, вы можете посоветовать, как переместить эти сообщения только на страницу одного продукта?   -  person Louis    schedule 05.10.2017
comment
Итак, как лучше всего переместить предупреждающее сообщение на витрине ниже кнопки ДОБАВИТЬ В КОРЗИНУ на странице продукта?   -  person Louis    schedule 06.10.2017
comment
Извините @LoicTheAztec я запутался в вопросах / ответах;)   -  person Louis    schedule 13.10.2017
comment
Спасибо большое за вашу помощь !   -  person Louis    schedule 13.10.2017


Ответы (1)


Правильный способ получить то, что вы ожидаете в своих комментариях (то есть отображение уведомлений WooCommerce после кнопки добавления в корзину только на одной странице продукта):

add_action( 'wp_head', 'customize_notices' );
function customize_notices(){
    if( is_product() )
        remove_action( 'storefront_content_top', 'storefront_shop_messages', 15 );
    remove_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 );
    add_action( 'woocommerce_single_product_summary', 'woocommerce_before_main_content', 34 );
}

Код находится в файле function.php вашей активной дочерней темы (или темы) или также в любом файле плагина.

Протестировано и работает в теме витрины с WooCommerce 3.1+

person LoicTheAztec    schedule 06.10.2017
comment
Однако с этим кодом я получаю странную ошибку php: Предупреждение: call_user_func_array () ожидает, что параметр 1 будет действительным обратным вызовом, функция 'woocommerce_before_main_content' не найдена или неверное имя функции в /home/hugomatha/hemen.makemy.biz/wp-includes /class-wp-hook.php в строке 298` - person Louis; 13.10.2017
comment
Поэтому я использовал вместо add_action( 'woocommerce_single_product_summary', 'woocommerce_before_main_content', 34 ); эту строку: add_action('woocommerce_product_meta_end', 'storefront_shop_messages', 1 ); - person Louis; 13.10.2017