首页 > 解决方案 > WooCoomerce WC_Abstract_Order::get_coupon_codes PHP 致命错误

问题描述

我正在尝试使用新的 WC_Abstract_Order::get_coupon_codes() 方法来获取订单中的优惠券代码。这是之前的工作片段:

$coupons = $order->get_used_coupons();

$nCoupons = count($coupons);
            if($nCoupons == 1)
                $descrizioneCoupon = 'Coupon ' . $coupons[0];
            else if($nCoupons > 1)
            {
                $descrizioneCoupon = 'Coupons ';
                for($i=0;$i<$nCoupons;$i++)
                {
                    $descrizioneCoupon .= $coupons[$i];
                    if($i<$nCoupons-1)
                    {
                        $descrizioneCoupon .= ', ';
                    }
                }
            }

所以我试图用这个替换第一行:

$coupons = \WC_Abstract_Order::get_coupon_codes(); 

我正在这样做,因为get_used_coupons()已弃用。

结果,我收到此错误消息:

Fatal error: Uncaught Error: Using $this when not in object context ...

有什么建议么?谢谢

标签: phpwordpresswoocommerceorderscoupon

解决方案


这里的解决方案只是替换:

$coupons = $order->get_used_coupons();
// OR: 
// $coupons = \WC_Abstract_Order::get_coupon_codes();

经过:

$order->get_coupon_codes();

不要使用\WC_Abstract_Order,始终使用WC_Order实例对象$order


推荐阅读