Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Woocommerce में ऑर्डर देने के बाद कस्टम तालिका में मान डालें

आपके कोड में अजीब चीजें हैं जैसे 'order_id' => $email वह ऑर्डर आईडी मान होना चाहिए न कि ईमेल... साथ ही $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. MySQL एक सम्मिलित तालिका की पहली पंक्ति लौटाता है

  2. पोस्ट करने से पहले डेटा को ऑफलाइन सेव करें

  3. mysql के अंदर सरणी के लिए इंपोड का उपयोग करना जहां खंड में

  4. पूर्ण जॉइन सिंटैक्स में अज्ञात कॉलम त्रुटि

  5. mysqli_stmt_bind_result के साथ अजीब समस्या