首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数hide_payment_gateways_based_on_weight的临界光泽度误差

函数hide_payment_gateways_based_on_weight的临界光泽度误差
EN

Stack Overflow用户
提问于 2022-04-22 20:21:01
回答 3查看 90关注 0票数 2

虽然这个函数似乎在前端很好地工作,但是在后端我有:

临界未明错误:在.中调用null上的成员函数get_cart_contents_weight()

这就是功能。

代码语言:javascript
复制
add_filter( 'woocommerce_available_payment_gateways', 'hide_payment_gateways_based_on_weight', 10, 1 );
    function hide_payment_gateways_based_on_weight( $available_gateways ) { 
        if ( is_admin() ) 
            return $available_gateways; 
    
        $total_weight = WC()->cart->get_cart_contents_weight();
        if ( $total_weight >= 2000 && isset ($available_gateways['cod']) )
            
            unset($available_gateways['cod']); // unset 'cod'
            return $available_gateways;         
     }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-04-23 11:10:25

您的函数在管理员上抛出一个关键错误的原因是因为WC中没有cart。在WC管理程序中,使用is_admin()不起作用,所以您的$total_weight声明会抛出错误。

要确保您只显示在购物车或结账上的网关,请使用这些条件。

而且不管值多少钱..。WPCS和PHPCS不喜欢内联控制。为了获得更清晰的可读性,您应该将if语句封装在括号中。

代码语言:javascript
复制
add_filter( 'woocommerce_available_payment_gateways', 'hide_payment_gateways_based_on_weight', 10, 1 );
function hide_payment_gateways_based_on_weight( $available_gateways ) {
    // Check if it's the cart page or the checkout.
    if ( is_cart() || is_checkout() ) {
        $total_weight = WC()->cart->get_cart_contents_weight();
        if ( 2000 >= $total_weight && isset( $available_gateways['cod'] ) ) {
            unset( $available_gateways['cod'] ); // unset 'cod'.
        }
    }
    return $available_gateways;
}
票数 2
EN

Stack Overflow用户

发布于 2022-04-22 20:33:14

代码语言:javascript
复制
$WC_Cart = new WC_Cart();
$total_weight  = $WC_Cart->get_cart_contents_weight();

试着像这样变胖。

票数 0
EN

Stack Overflow用户

发布于 2022-04-22 20:33:14

一阶问题是WC()->cart中的cart没有定义/null。在试图获得权重之前,您应该检查是否定义了这个值。为什么cart是空的,这是一个二阶问题,我们不能用这个代码段来确定。这可能只是一个正常的未初始化的情况或其他一些问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71974212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档