Php &引用;WC_抽象_传统_顺序->__得到,你做错了;商业错误

Php &引用;WC_抽象_传统_顺序->__得到,你做错了;商业错误,php,wordpress,woocommerce,error-handling,orders,Php,Wordpress,Woocommerce,Error Handling,Orders,我的函数导致错误«WC_Abstract_Legacy_Order->»WC_get,WC_doing_it_error»。我已经了解了相同的问题,但仍然无法找到在我的函数中错误调用的位置,请帮助 第4.3条 下面是函数: add_action( 'init', 'loyal_customer_auto_coupon', 10, 1); function loyal_customer_auto_coupon(){ if ( is_user_logged_in() ) {

我的函数导致错误«WC_Abstract_Legacy_Order->»WC_get,WC_doing_it_error»。我已经了解了相同的问题,但仍然无法找到在我的函数中错误调用的位置,请帮助

第4.3条

下面是函数:

add_action( 'init', 'loyal_customer_auto_coupon', 10, 1);

function loyal_customer_auto_coupon(){
    
    if ( is_user_logged_in() ) {
        
        $customer = get_current_user_id();
        $acf_user = 'user_' . $customer;
        $loyal = get_field('loyal_customer_coupon', $acf_user); 

        if ($loyal == '') {
            $all_orders = wc_get_customer_order_count( $customer );

            if ( $all_orders > 4 ) {
                $args = array(
                    'customer_id' => $customer
                );
                $orders = wc_get_orders($args);

                $completed_order_count = 0;
                foreach ($orders as $order) {
                    if ( $order->status == 'completed' ) {
                        if ( $order->total > 14.99 ) {
                            $completed_order_count++;
                        }
                    }
                }
            }
        }
    }
}

由于WooCommerce 3对象属性无法直接访问,因此您将使用
WC\u Order
方法。因此,在代码中,替换

  • $order->status
    by
    $order->get_status()
  • $order->total
    by
    $order->get_total()
它应该能解决你的问题