我想在 woocommerce 会话到期时删除购物车内容。我可以看到在类WC_Session_Handler中有一个设置时间的变量,但是当它过期时,产品不会从购物车中删除(我猜它的行为是这样设计的,这不是错误)。
所以请告诉我如何设置 woocommerce 购物车的会话过期时间,以便购物车内容在过期时被删除?
我想在 woocommerce 会话到期时删除购物车内容。我可以看到在类WC_Session_Handler中有一个设置时间的变量,但是当它过期时,产品不会从购物车中删除(我猜它的行为是这样设计的,这不是错误)。
所以请告诉我如何设置 woocommerce 购物车的会话过期时间,以便购物车内容在过期时被删除?
据我所知,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;
}
高温高压