如何清除废弃的woocommerce购物车

时间:2014-10-24 09:17:28

标签: php wordpress woocommerce cart

我在某些网页加载时遇到了清除Woocommerce购物车的代码。

但是,我想知道有没有办法在车被放弃后清理它?

  

仅在首页触发时,您的功能需要如下所示:

add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url() {
global $woocommerce;

if ( is_front_page() && isset( $_GET['empty-cart'] ) ) { 
    $woocommerce->cart->empty_cart(); 
}
  

}   函数is_front_page()仅在wordpress站点的首页上返回true。此外,您可能会检测到具有函数is_page()的任何其他页面,您可以在其中传递任何页面标题,ID或slug

1 个答案:

答案 0 :(得分:5)

从这个问题:Set WooCommerce Cart Expiration

  

从我所看到的情况来看,WooCommerce 2.0.20有一个每天运行两次的定期维护工作,它将从WordPress选项表中删除任何购物车会话。默认过期时间设置为用户首次创建购物车时的48小时。我猜你的标准WordPress调度例程(以及服务器cron / at jobs)需要正常运行才能执行。

     

AFAIK无法通过设置调整48小时规则。您可以在主题中或在相邻的"中编写过滤器。插件。

我已经调整了一点代码以切换到24小时的会话。我不确定您是否希望每隔几分钟删除一次,因为这可能会导致性能问题。

add_filter('wc_session_expiring', 'so_26545001_filter_session_expiring' );

function so_26545001_filter_session_expiring($seconds) {
    return 60 * 60 * 23; // 23 hours
}

add_filter('wc_session_expiration', 'so_26545001_filter_session_expired' );

function so_26545001_filter_session_expired($seconds) {
    return 60 * 60 * 24; // 24 hours
}