Пустая корзина, когда пользователь покидает определенную страницу в Woocommerce - PullRequest
0 голосов
/ 31 октября 2018

Итак, мы создаем сайт с пользовательской страницей, которая вызывает элементы в корзине WooCommerce. Но то, что мы хотели сделать, это очистить эту корзину, как только пользователь покидает эту страницу. Это возможно?

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

Неустранимая ошибка: вызов функции-члена empty_cart() при нулевом значении /home/client/public_html/wp-content/themes/wp-theme/functions.php в строке 746

Это наш код:

add_action( 'init', 'woocommerce_clear_cart_url' );

function woocommerce_clear_cart_url() {
  global $woocommerce;

  if ($_SERVER['REQUEST_URI'] !== 'https://www.oursite.com/fake-cart-page/') {
      $woocommerce->cart->empty_cart();
   }
}

Заранее спасибо!

1 Ответ

0 голосов
/ 31 октября 2018

Мы разобрались! Итак, вот что мы сделали:

//we inserted a script in wordpress and put it in the head

add_action( 'wp_head', 'woocommerce_clear_cart_url' );

function woocommerce_clear_cart_url() {

   global $woocommerce;

   //we used the jquery beforeunload function to detect if the user leaves that page
   ?>

 <script>

 jQuery(document).ready(function($) {

 $(window).bind('beforeunload', function() {
    //Used WordPress to help jQuery determine the page we're targeting 
    //pageID is the page number of the page we're targeting
     <?php if(!is_page(pageID)):
          //empty the cart
          $woocommerce->cart->empty_cart(); ?>

     <?php endif; ?>
 });

});

 </script>

 <?php } ?>
...