php-尝试增加购物车项目的会话时间(EDD和WordPress)
作者:互联网
我正在使用WordPress和Easy Digital Downloads插件,但是购物车中的商品在闲置30分钟后就会过期,我想将其增加到48小时左右,因为30分钟太短了,无法删除购物车中的商品.
我在EDD论坛上问过如何增加这个过期时间,但是我只是获得了add_filter教程的链接,这些链接并不能真正帮助我使用此特定的过滤器.
这是我被告知要更改到期时间的过滤器:
https://github.com/easydigitaldownloads/Easy-Digital-Downloads/blob/master/includes/class-edd-session.php#L93
所以我尝试了:
add_filter( 'wp_session_expiration_variant', array( 'WP_Session', '86400 * 60' ), 99999 );
add_filter( 'wp_session_expiration', array( 'WP_Session', '86400 * 60' ), 99999 );
和
add_filter( 'wp_session_expiration_variant', array( 'EDD_Session', '86400 * 60' ), 99999 );
add_filter( 'wp_session_expiration', array( 'EDD_Session', '86400 * 60' ), 99999 );
都不行.任何想法如何增加会话超时?
解决方法:
在网上搜索并通过您给出的链接.有一个功能可以为用户创建Cookie 30分钟,您需要根据需要重新配置此Cookie.
以下代码可以帮助您实现此目的.
function change_expiration_cookie() {
$cart = edd_get_cart_contents();
if ( isset( $_COOKIE['edd_items_in_cart'] ) ) {
$items = $_COOKIE['edd_items_in_cart'];
@setcookie( 'edd_items_in_cart', $items, time() + 2880 * 60, COOKIEPATH, COOKIE_DOMAIN, false );
} elseif ( $cart != false ) {
$items = count( $cart );
@setcookie( 'edd_items_in_cart', $items, time() + 2880 * 60, COOKIEPATH, COOKIE_DOMAIN, false );
}
}
add_action( 'init', 'change_expiration_cookie' );
这会将Cookie设置为在48小时后过期.测试相同. Lemme知道它是否也对您有用.
标签:session-timeout,session,wordpress,php,easy-digital-downloads 来源: https://codeday.me/bug/20191120/2042937.html