Как убрать ошибку woocommerce Вы не можете добавить другое «ИМЯ ПРОДУКТА» в корзину - PullRequest
0 голосов
/ 02 июля 2018

в настройках моего сайта woocommerce, удалите добавить на карту ajax и обратите внимание; и когда пользователи (посетители) добавляют продукт в корзину для покупки, перенаправьте после нажатия на корзину и покажите сообщение добавить продукт на карту успешно в корзину

, но когда опция товара активна (активирована), я хочу продать одну опцию. пользователи пытаются добавить товар в корзину для неоднократно. получить ниже сообщение: не может добавить другое «НАЗВАНИЕ ПРОДУКТА» в вашу корзину. мой вопрос: как использовать functions.php для удаления этой ошибки woocommerce. Вы не можете добавить другое «НАЗВАНИЕ ПРОДУКТА» в вашу корзину.

и новое сообщение появляется в корзине после повторного нажатия кнопки «Добавить в корзину» в корзине Вы ранее «НАЗВАНИЕ ПРОДУКТА» в корзину. так что теперь вы можете оплатить.

В целом:

  1. удалить нельзя добавить еще одно ... сообщение и прекратить перенаправление на страницу продукта после нажатия.

  2. показать новое пользовательское сообщение. после нажмите и перейдите в корзину.

Большое спасибо всем вам

1 Ответ

0 голосов
/ 20 апреля 2019

Вот проверенное и рабочее решение для удаления сообщения «Вы не можете добавить другое».

Справочная информация: Woocommerce не предоставляет прямых хуков всем своим уведомлениям. Ошибки корзины на самом деле жестко запрограммированы в class-wc-cart.php как исключение.

Когда генерируются исключения ошибок, они добавляются в список уведомлений, к которым мы можем обращаться, анализировать и изменять, используя методы:

  • wc_get_notices () возвращает все уведомления в виде массива
  • wc_set_notices () позволяет напрямую устанавливать массив уведомлений

Чтобы получить доступ к уведомлениям и изменить их, вам нужно подключить действие, которое сработает после того, как woocommerce сгенерирует свои уведомления, но ДО отображения страницы. Вы можете сделать это с помощью действия: woocommerce_before_template_part

Вот полный рабочий код, который специально удаляет " Вы не можете добавить еще " уведомления:

add_action('woocommerce_before_template_part', 'houx_filter_wc_notices');

function houx_filter_wc_notices(){
        $noticeCollections = wc_get_notices();

        /*DEBUGGING: Uncomment the following line to see a dump of all notices that woocommerce has generated for this page */
        /*var_dump($noticeCollections);*/

        /* noticeCollections is an array indexed by notice types.  Possible types are: error, success, notice */
        /* Each element contains a subarray of notices for the given type */
        foreach($noticeCollections as $noticetype => $notices)
        {
                if($noticetype == 'error')
                {
                        /* the following line removes all errors that contain 'You cannot add another'*/
                        /* if you want to filter additiona errors, just copy the line and change the text */
                        $filteredErrorNotices = array_filter($notices, function ($var) { return (stripos($var, 'You cannot add another') === false); });
                        $noticeCollections['error'] = $filteredErrorNotices;
                }
        }

        /*DEBUGGING: Uncomment to see the filtered notices collection */
        /*echo "<p>Filtered Notices:</p>";
        var_dump($noticeCollections);*/

        /*This line overrides woocommerce notices by changing them to our filtered set. */
        wc_set_notices($noticeCollections);
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...