Поддержка WooCommerce Удалить товар из корзины автоматически?

  • Решено nikmaster

    (@nikmaster)


    Подскажите ребята как убирать автоматически товар из корзины в woocommerce? Задача в следующем: На сайте скачиваемый товар продается индивидуально (в одном экземпляре), выставлены настройки чтобы при нажатии на кнопку «Купить» клиент переходил сразу на оформление заказа. Но в этот момент товар добавляется в корзину которая скрыта и если клиент не оформил заказ, а например перешел на другую страницу, то при попытке купить этот товар ещё раз появляется надпись «Вы не можете добавить еще раз «Товар» в корзину». Либо если он выбирает другой товар, то на оплату выводится и ранее выбранный товар так как добавлен в корзину. Вроде правильно описал. Нужно удалять товар из корзины если клиент не стал его покупать и ушел со страницы оформления заказа.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Автор nikmaster

    (@nikmaster)

    Сам нашел решение. Надеюсь кому-то пригодится.
    1) Пустая корзина перед добавлением в корзину (если корзина не пуста) сбросит всю корзину:

    add_filter( 'woocommerce_add_to_cart_validation', 'one_cart_item_at_the_time', 10, 3 );
    function one_cart_item_at_the_time( $passed, $product_id, $quantity ) {
        if( ! WC()->cart->is_empty())
            WC()->cart->empty_cart();
        return $passed;
    }

    2) Этот код проверит только добавляемый товар, остальные товары если есть в корзине удалены не будут:

    add_filter('woocommerce_add_to_cart_validation', 'one_cart_item_at_the_time', 10, 3);
    
    function one_cart_item_at_the_time( $passed, $product_id, $quantity ) {
        if(! WC()->cart->is_empty()) {
            $cartId = WC()->cart->generate_cart_id($product_id);
            $cartItemKey = WC()->cart->find_product_in_cart($cartId);
            if ($cartItemKey) {
              return $passed;
            } else {
              $woocommerce->cart->add_to_cart( $product_id );
              return $passed;
            }
        }
    }
    Автор nikmaster

    (@nikmaster)

    Вопрос решён.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Удалить товар из корзины автоматически?» закрыта для новых ответов.