编程语言
首页 > 编程语言> > php-尝试增加购物车项目的会话时间(EDD和WordPress)

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