Davide Iandoli
Davide Iandoli

Reputation: 137

WooCoomerce WC_Abstract_Order::get_coupon_codes PHP Fatal Error

I'm trying to use new WC_Abstract_Order::get_coupon_codes() methods to get coupon codes in an order. This was the previous working snippet:

$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 .= ', ';
                    }
                }
            }

So I'm trying to replace the first line with this one:

$coupons = \WC_Abstract_Order::get_coupon_codes(); 

I'm doing this since get_used_coupons() is deprecated.

As a result I get this error message:

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

Any suggestions? Thanks

Upvotes: 2

Views: 4152

Answers (1)

LoicTheAztec
LoicTheAztec

Reputation: 253784

The solution here is simply to replace:

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

by:

$order->get_coupon_codes();

Don't use \WC_Abstract_Order, always use the WC_Order instance object $order

Upvotes: 2

Related Questions