在WooCommerce订单中获取优惠券折扣类型和金额

Gau*_*rav 5 php wordpress orders coupon woocommerce

我在WooCommerce中创建了两种自定义优惠券类型:

function custom_discount_type( $discount_types ) {
    $discount_types['cash_back_fixed'] =__( 'Cash Back fixed discount', 'woocommerce' );
     $discount_types['cash_back_percentage'] =__( 'Cash Back Percentage discount', 'woocommerce' );
         return $discount_types;

     }

add_filter( 'woocommerce_coupon_discount_types', 'custom_discount_type',10, 1);
Run Code Online (Sandbox Code Playgroud)

订单状态为"已完成"后,我想获得折扣类型,例如:

function wc_m_move_order_money_to_user( $order_id, $old_status, $new_status ){

    if( $order->get_used_coupons() ) {
        if ($coupon->type == 'cash_back_fixed'){ 
           $coupons_amont =  ???
           ....

       }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是$coupon->type不起作用.

如何获得订单中使用的优惠券类型?
我怎样才能获得原始优惠券金额?

谢谢

Loi*_*tec 16

更新

首先,你不能再访问WC对象属性,因为WooCommerce 3+你需要使用方法或方法......WC_Abstract get_coupon_codes()WC_Order

这是做到这一点的方法:

foreach( $order->get_used_coupons() as $coupon_code ){
Run Code Online (Sandbox Code Playgroud)

要获得优惠券折扣金额(并使用优惠券类型方法),这里的方法是:

foreach( $order->get_coupon_codes() as $coupon_code ){
Run Code Online (Sandbox Code Playgroud)

现在要获得get_used_coupons()价格,只需使用该WC_Coupon方法