我们创建了一个网站,用户输入优惠券代码并通过创建名称为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' );
答案 0 :(得分:3)
尝试使用:
WC()->session->set( 'couponid', $couponID );
致电之前:
WC()->session->get( 'couponid', 0 )
答案 1 :(得分:1)
测试您是否在后台,WC()->session
未设置:
if( !is_admin() ) {
答案 2 :(得分:0)
if( !is_admin() ) { ... }
修正
为我做了这份工作。我更改了电子邮件模板,如果我尝试从后端重新发送电子邮件,则收到此错误。所以管理员修复很好。