Fungsi saya menyebabkan kesalahan «WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong». Saya telah belajar tentang masalah yang sama tetapi masih tidak dapat menemukan di mana dalam fungsi saya panggilan yang salah, tolong bantu.

Woocommerce 4.3.

Berikut fungsinya:

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++;
                        }
                    }
                }
            }
        }
    }
}
1
Demuri Celidze 19 Juli 2020, 13:05

1 menjawab

Jawaban Terbaik

Karena properti Objek WooCommerce 3 tidak dapat diakses secara langsung, Anda akan menggunakan metode WC_Order. Jadi dalam kode Anda, ganti

  • $order->status oleh $order->get_status()
  • $order->total oleh $order->get_total()

Itu harus menyelesaikan masalah Anda.

1
LoicTheAztec 19 Juli 2020, 14:20