Ошибка при попытке удалить элемент корзины из кассы WooCommerce - PullRequest
0 голосов
/ 18 марта 2019

На странице оформления заказа у меня есть кнопка для выбора способа доставки.Когда моя корзина содержит товар, который входит в категорию, я хочу удалить все товары из корзины, которые находятся в той же категории.

<button onclick="clear_product_cart()">Check possibility</button>

Мой скрипт:

function clear_product_cart(){

  jQuery.post(
      ajaxurl,
      {
          'action': 'clear_cart'              

      },
      function(response){
          alert( ' product removed!');
      });
}

В моей функции .php

add_action( 'wp_ajax_clear_cart', 'clear_cart' );
add_action( 'wp_ajax_nopriv_clear_cart', 'clear_cart' );
function clear_cart(){
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {

       if ( !has_term( 'my_cat', 'product_cat', $cart_item['product_id'] ) ) {
            WC()->cart->remove_cart_item( $cart_item_key );
       }
    }
die();
}

Не знаю почему, но у меня ошибка 500 послеПервый продукт был удален.У вас есть предложение?благодарственное в

1 Ответ

0 голосов
/ 18 марта 2019

Ваша JavaScript функция может быть проблемой. Пожалуйста, удалите его и поместите в файл functions.php вашей дочерней темы:

add_action( 'wp_head', 'head_data' );
function head_data() { ?>

    <script>
        function clear_product_cart() {

            let a = {action: "clear_cart"};

            jQuery.post("<?php echo admin_url( 'admin-ajax.php' ); ?>", a, function () {
            }).success(function () {
                alert('Product removed!');
            }).fail(function () {
                alert('Error!');
            });
        }
    </script>
<?php }

Попробуйте еще раз и скажите мне, если это работает. Я не могу проверить это в данный момент.

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