WooCommerce WC() - > session-> get未被识别

时间:2015-06-24 15:48:19

标签: wordpress session cookies woocommerce

我们创建了一个网站,用户输入优惠券代码并通过创建名称为couponid的Cookie将其记录下来,然后我们将该Cookie保存到WooCommerce会话中,因为该Cookie实际上是类别显示产品的ID。

现在有时会显示产品,有时候不会显示产品,每当我们在浏览器中设置自定义Cookie并且我们转到/wp-admin进行登录时,就会出现以下错误:

  

致命错误:在非对象上调用成员函数get()

WordPress登录屏幕上的上述错误来自我们functions.php文件中的以下函数:

function gfc_insert_coupon_code_to_session(){

if( 
    is_user_logged_in() 
    || ! array_key_exists( 'couponid', $_COOKIE ) 
    || WC()->session->get( 'couponid', 0 )
){
    return;
}

$couponID = esc_attr( $_COOKIE['couponid'] );

    if( $couponID ){
        WC()->session->set( 'couponid', $couponID );
    }
}

add_action( 'woocommerce_init', 'gfc_insert_coupon_code_to_session' );

3 个答案:

答案 0 :(得分:3)

尝试使用:

WC()->session->set( 'couponid', $couponID );

致电之前:

WC()->session->get( 'couponid', 0 )

答案 1 :(得分:1)

测试您是否在后台,WC()->session未设置:

if( !is_admin() ) {

答案 2 :(得分:0)

if( !is_admin() ) { ... }修正

为我做了这份工作。我更改了电子邮件模板,如果我尝试从后端重新发送电子邮件,则收到此错误。所以管理员修复很好。