Mysql
 sql >> база данни >  >> RDS >> Mysql

Вмъкнете стойности в персонализирана таблица, след като поръчката е направена в Woocommerce

Във вашия код има странни неща като 'order_id' => $email това трябва да е стойността на ID на поръчката, а не имейлът… Също $customer_id= $order->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 -------------------------#

?>

Също така това, което е странно е, че можете да имате много артикули (продукти) в поръчка и вашата таблица не може да се справи с това, тъй като трябва да имате нужда и от ред по артикул...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli_fetch_array ми дава дублирани редове

  2. Направете няколко входа в таблицата на mysql наведнъж с един бутон за изпращане

  3. Интелигентна MySQL GROUP BY за потоци от дейности

  4. WordPress Query:Подреждане по брой съвпадащи редове?

  5. Клаузата MySQL IN изпълнява ли подзаявката няколко пъти?