복붙노트

[WORDPRESS] 주문이 WooCommerce에 배치되면 주문 테이블에 값을 삽입하십시오.

WORDPRESS

주문이 WooCommerce에 배치되면 주문 테이블에 값을 삽입하십시오.

해결법


  1. 1.코드에서 'order_id'=> $ ID 값이 아니라 이메일이 아닌 $ EMPLAID ... 또한 $ customer_id = $ order-> ID; 그것은 고객 사용자의 ID가 아니라 주문 ID 및 $ Email1 = $ ORDER-> ID; 그건 사용되지 않고 잘못되었습니다 ... * /

    코드에서 'order_id'=> $ ID 값이 아니라 이메일이 아닌 $ EMPLAID ... 또한 $ customer_id = $ order-> ID; 그것은 고객 사용자의 ID가 아니라 주문 ID 및 $ Email1 = $ ORDER-> ID; 그건 사용되지 않고 잘못되었습니다 ... * /

    <?php
    
    #-------------------- code begins below -------------------------#
    
    add_action( 'woocommerce_order_status_completed', 'my_function' );
    function my_function($order_id) {
        global $wpdb;
    
        // Getting the order (object type)
        $order = wc_get_order( $order_id );
    
        // Getting order items
        $items = $order->get_items(); 
        $total_items_qty = 0;
    
        // Iterating through each item (here we do it on first only)
        foreach ( $items as $item ) {
            $total_items_qty += $item["qty"];
        }
    
        // Here are the correct way to get some values:
        $customer_id           = $order->customer_user;
        $billing_email         = $order->billing_email;
        $complete_billing_name = $order->billing_first_name . ' ' . $order->billing_last_name;
    
        // Getting the user data (if needed)
        $user_data             = get_userdata( $customer_id );
        $customer_login_name   = $user_data->user_login;
        $customer_login_email  = $user_data->user_email;
    
        // "$wpdb->prefix" will prepend your table prefix
        $table_name =  $wpdb->prefix."license_table";
    
        // This array is not correct (as explained above)
        $data = array( 
            'username'          => $customer_login_name,
            'order_id'          => $order_id,
            'number_of_cameras' => $total_items_qty,
            'boolean'           => 'false',
        );
    
        $wpdb->insert( $table_name, $data );
    
    }
    
    #-------------------- code end -------------------------#
    
    ?>
    

    또한 이상한 것은 주문에 많은 항목 (제품)을 가질 수 있으며 테이블이이를 처리 할 수 ​​없다는 것입니다.

  2. from https://stackoverflow.com/questions/39515723/insert-values-into-a-custom-table-once-order-is-placed-in-woocommerce by cc-by-sa and MIT license