如何在注销woocommerce上禁用清除和擦除会话数据

时间:2014-11-03 18:33:11

标签: php wordpress session woocommerce

我对于从版本2.2.0 - 10/09/2014添加的woocommerce的调整有疑问。 在此更新中,清除并擦除注销时的会话数据,默认情况下会发生这种情况。 我不希望发生这种情况进入我的网站,我希望当costumer登录以保存数据时。例如,如果客户将商品添加到购物车,则注销。我希望他再次烧掉后再装上购物车。 如何禁用此调整!!

谢谢

2 个答案:

答案 0 :(得分:0)

查看WC_Session_Handler中的includes/wc-session-handler.php类我认为我已将此跟踪到destroy_session挂钩上运行的clear_auth_cookie方法。因此,要禁用它,您需要从该挂钩中删除此方法。

请注意,这是完全未经测试的,因此请自行承担风险:

function so_26720687_keep_session_on_logout(){
    remove_action( 'clear_auth_cookie', array( WC()->session, 'destroy_session' ) );
} 
add_action( 'woocommerce_loaded', 'so_26720687_keep_session_on_logout' );

答案 1 :(得分:0)

如果其他人想要解决此问题,请将以下内容添加到主题functions.php文件中。这将保留当前会话,包括退出时的活动推车。

function present_keep_sessions_on_logout(){
    remove_action( 'wp_logout', array( WC()->session, 'destroy_session' ) );
} 

add_action( 'woocommerce_init', 'present_keep_sessions_on_logout' );