Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chèn Giá trị vào bảng tùy chỉnh sau khi đặt hàng trong Woocommerce

Trong mã của bạn có những thứ lạ là 'order_id' => $email đó phải là giá trị ID đơn đặt hàng chứ không phải email… Ngoài ra $customer_id= $order->id; đó KHÔNG phải là ID của người dùng khách hàng, mà là ID đơn đặt hàng và $email1= $order->id; cái đó không được sử dụng và nó sai… * /

<?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 -------------------------#

?>

Ngoài ra, điều kỳ lạ là bạn có thể có nhiều mặt hàng (sản phẩm) trong một đơn đặt hàng và bảng của bạn không thể xử lý điều này, vì bạn cũng cần phải có từng dòng một…




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:nối nhiều bảng trên một câu lệnh

  2. Làm thế nào để tạo truy vấn với hai lần kết nối đến một bảng trong Laravel 5.3?

  3. Python MySQL nhanh hơn

  4. Lỗi cột trùng lặp trong MySQL chỉ khi truy vấn được bao bọc dưới dạng truy vấn con

  5. Giới hạn kích thước cho bảng Truy vấn / Xem trong MySQL là gì?