当用户和访客离开结帐页面时如何自动清除购物车?

问题描述 投票:0回答:1

我得到了这个代码(清除购物车),它对于登录用户来说工作得很好,但对于访客来说则不然,对于访客来说,我必须离开结帐页面并加载另一个页面来清除购物车,您能帮我一下吗?这样每个人都可以得到同样的结果,谢谢。

这是代码,我从 Stack overlow 获得它:

//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 } ?>
php wordpress woocommerce cart checkout
1个回答
0
投票

为此你可以通过纯php代码尝试一下。在此您需要

template_redirect
钩子。

function.php

中添加以下代码
<?php

add_filter('template_redirect', function () {
   if (!is_checkout() && !WC()->cart->is_empty()) {
      WC()->cart->empty_cart();
   }
});

注意:一旦产品添加到购物车,请确保您已完成快速结帐,直接将其发送到结帐页面。所以这可能更有意义。

© www.soinside.com 2019 - 2024. All rights reserved.