在woocommerce订单详细信息中添加动态优惠券金额

时间:2021-07-25 16:14:29

标签: woocommerce coupon

我想使用 woocommerce 优惠券添加动态优惠券金额。首先我生成一张优惠券并将优惠券金额的值设置为 Rs 0。当应用优惠券时,根据客户之前的订单金额生成折扣金额。优惠券折扣已成功应用于结帐页面,但未按收到的顺序和 wp-admin 显示。我创建了一个子主题,下面是 function.php 代码 -

function royal_woocommerce_filter_checkout_for_coupons( $subtotal, $compound, $cart ) 
    {     
        $customer_user_id = get_current_user_id(); 
        $customer_orders = get_posts(array(
            
             'meta_key'    => '_customer_user',
             'meta_value'  => $customer_user_id,
             'post_type'   => 'shop_order',
             'post_status' => array('wc-completed') 
        ));
        
        
        foreach($customer_orders as $cs)
        {
        
            $latest_order_id = $cs->ID;
            $amount = get_post_meta( $latest_order_id, '_order_total', true );
            $order_total=$amount+$order_total;
        }
        
        $store_credit = $order_total;
        $coupon_name=$cart->applied_coupons[0];
        
        if($coupon_name =='upgrade')
        {
            $coupon = array($coupon_name => $store_credit);
            $cart->applied_coupons = array($coupon_name);
            $cart->set_discount_total($store_credit);
            $cart->set_total( $cart->get_subtotal() - $store_credit);
            $cart->coupon_discount_totals = $coupon;
        } else {
            $cart->remove_coupon( $coupon_name );
        }

        return $subtotal; 
    }
    
    add_filter( 'woocommerce_cart_subtotal', 'royal_woocommerce_filter_checkout_for_coupons', 10, 3 );
    

0 个答案:

没有答案