Сообщение Woocommerce "добавлено в корзину" на главной странице

30 авг. 2016 г., 15:34:54
Просмотры: 28.3K
Голосов: 0

Я создаю интернет-магазин на 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, __('Продолжить покупки &rarr;', 'woocommerce'), __('Товар успешно добавлен в корзину.', 'woocommerce') );
        else :
            $message    = sprintf('<a href="%s" class="button">%s</a> %s', get_permalink(woocommerce_get_page_id('cart')), __('Просмотр корзины &rarr;', 'woocommerce'), __('Товар успешно добавлен в корзину.', 'woocommerce') );
    endif;
        return $message;
}

но ничего не происходит. Кто-нибудь может помочь?

0
Все ответы на вопрос 5
0

Решение было таким же простым, как и должно быть: я просто добавил этот фрагмент кода в мой основной .php файл страницы:

do_action( 'woocommerce_before_single_product' );
30 авг. 2016 г. 16:36:05
0

Эта статья поможет вам с этим вопросом 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, __('Продолжить покупки &rarr;', 'woocommerce'), __('Товар успешно добавлен в корзину.', 'woocommerce') );

    else :
        $message = sprintf('<a href="%s" class="button">%s</a> %s', get_permalink(woocommerce_get_page_id('cart')), __('Просмотреть корзину &rarr;', '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 ); 
30 авг. 2016 г. 15:42:18
0

WooCommerce имеет эту функцию отдельно

wc_print_notices();

поэтому просто используйте её в шаблонах ваших страниц. Вам не нужно использовать echo или print, просто вызовите функцию как есть.

29 сент. 2020 г. 04:10:48
1

Скопируйте этот код и вставьте его в файл вашей темы page.php или singlepage.php

do_action('woocommerce_before_single_product');
10 нояб. 2017 г. 09:15:03
Комментарии

Примечание: Это решение выведет все, что подключено к хуку woocommerce_before_single_product. Я действительно не рекомендую такой подход.

Sillo Sillo
20 апр. 2018 г. 02:07:46
0

Добавьте пользовательский хук на страницу, где вы хотите отображать сообщения WooCommerce. Например:

do_action('my_custom_hook');

После добавления хука, поместите следующий код в файл functions.php вашей темы.

add_action('my_custom_hook', 'show_woo_notices');
function show_woo_notices() {
    wc_print_notices();
}
14 апр. 2023 г. 12:59:35