Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 设置购物车过期时间_Php_Wordpress_Session_Woocommerce_Cart - Fatal编程技术网

Php 设置购物车过期时间

Php 设置购物车过期时间,php,wordpress,session,woocommerce,cart,Php,Wordpress,Session,Woocommerce,Cart,我想在woocommerce会话到期时删除购物车内容。 我可以看到在类WC\u Session\u Handler中有一个变量设置时间,但是当它过期时,产品不会从购物车中移除(我猜它的行为是这样设计的,这不是一个错误) 因此,请告诉我如何设置woocommerce购物车的会话过期时间,以便购物车内容在过期时被删除?从我所看到的,woocommerce 2.0.20有一个计划维护作业,每天运行两次,将从WordPress选项表中删除任何购物车会话。默认过期时间设置为用户首次创建购物车后48小时。我

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


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

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

抱歉,无法通过设置调整48小时规则。你可以在你的主题或“相邻”插件中编写一个过滤器

以下是我在网站上构建的新“WooCommerce扩展购物车超时”插件的一些代码片段:

在我的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;
}