5

我想在 woocommerce 会话到期时删除购物车内容。我可以看到在类WC_Session_Handler中有一个设置时间的变量,但是当它过期时,产品不会从购物车中删除(我猜它的行为是这样设计的,这不是错误)。

所以请告诉我如何设置 woocommerce 购物车的会话过期时间,以便购物车内容在过期时被删除?

4

1 回答 1

10

据我所知,WooCommerce 2.0.20 有一个每天运行两次的计划维护作业,它将从 WordPress 选项表中删除任何购物车会话。默认到期时间设置为用户首次创建购物车后的 48 小时。我猜您的标准 WordPress 调度例程(和服务器 cron/at 作业)需要正常运行才能执行。

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

以下是我在我的网站上构建的新“WooCommerce Extend Cart Timeout”插件的一些代码片段:

在我的 WoocommerceLicenseAPI 类中:

if ( ! class_exists( 'WoocommerceLicenseAPI' ) ) {
add_filter('wc_session_expiring'   , array('WoocommerceLicenseAPI',       'filter_ExtendSessionExpiring') );

add_filter('wc_session_expiration' , array('WoocommerceLicenseAPI', 'filter_ExtendSessionExpired') );
{

static function filter_ExtendSessionExpiring($seconds) {
    return (60 * 60 * 24 * 8) - (60 * 60);
}
static function filter_ExtendSessionExpired($seconds) {
    return 60 * 60 * 24 * 8;
}

高温高压

于 2013-12-11T01:42:43.873 回答