Сообщение Woocommerce "добавлено в корзину" на главной странице
Я создаю интернет-магазин на WooCommerce. На моей главной странице есть слайдер товаров с кнопкой добавления в корзину под каждым товаром. Если я нажимаю на кнопку, товар успешно добавляется в корзину, но без какого-либо уведомления.
Просматривая интернет, я обнаружил, что сообщения можно добавлять на странице магазина, странице категории товаров и странице меток товаров (в этой статье). Согласно этой статье, я должен использовать фильтр/хук для отслеживания события добавления в корзину и отображения сообщения на главной странице.
Я попробовал следующий код:
add_filter( 'woocommerce_add_to_cart_message', 'custom_add_to_cart_message' );
function custom_add_to_cart_message() {
global $woocommerce;
// Вывод сообщений об успешном добавлении
if (get_option('woocommerce_cart_redirect_after_add')=='yes') :
$return_to = get_permalink(woocommerce_get_page_id('shop'));
$message = sprintf('<a href="%s" class="button">%s</a> %s', $return_to, __('Продолжить покупки →', 'woocommerce'), __('Товар успешно добавлен в корзину.', 'woocommerce') );
else :
$message = sprintf('<a href="%s" class="button">%s</a> %s', get_permalink(woocommerce_get_page_id('cart')), __('Просмотр корзины →', 'woocommerce'), __('Товар успешно добавлен в корзину.', 'woocommerce') );
endif;
return $message;
}
но ничего не происходит. Кто-нибудь может помочь?

Эта статья поможет вам с этим вопросом https://docs.woocommerce.com/document/woocommerce-cart-notices/
Или вы можете добавить приведенный ниже код в functions.php для получения сообщения об успешном добавлении
add_filter( 'woocommerce_add_to_cart_message', 'custom_add_to_cart_message' );
function custom_add_to_cart_message() {
global $woocommerce;
// Выводим сообщения об успешном добавлении
if (get_option('woocommerce_cart_redirect_after_add')=='yes') :
$return_to = get_permalink(woocommerce_get_page_id('shop'));
$message = sprintf('<a href="%s" class="button">%s</a> %s', $return_to, __('Продолжить покупки →', 'woocommerce'), __('Товар успешно добавлен в корзину.', 'woocommerce') );
else :
$message = sprintf('<a href="%s" class="button">%s</a> %s', get_permalink(woocommerce_get_page_id('cart')), __('Просмотреть корзину →', 'woocommerce'), __('Товар успешно добавлен в корзину.', 'woocommerce') );
endif;
return $message;
}
function your_woo_ajax_solution( $translation, $text, $domain ) {
if ( $domain == 'woocommerce' ) { // ваш домен
if ( $text == 'View Cart' ) { // текущий текст
$translation = 'Товар успешно добавлен в корзину.'; // Текст, который вы хотите отображать
}
}
return $translation;
}
add_filter( 'gettext', 'your_woo_ajax_solution', 10, 3 );

Добавьте пользовательский хук на страницу, где вы хотите отображать сообщения WooCommerce. Например:
do_action('my_custom_hook');
После добавления хука, поместите следующий код в файл functions.php вашей темы.
add_action('my_custom_hook', 'show_woo_notices');
function show_woo_notices() {
wc_print_notices();
}
