Fügen Sie Werte in eine benutzerdefinierte Tabelle ein, sobald die Bestellung in Woocommerce aufgegeben wurde

Lesezeit: 2 Minuten

Fugen Sie Werte in eine benutzerdefinierte Tabelle ein sobald die
Nisha Mukta

Ich muss in meine benutzerdefinierte Tabelle namens einfügen Lizenztabelle

 **username**, **order id**, **Quantity** 
 This needs to be populated when an order is placed. 
Username = customer's email id
 Quantity = quantity (of the product)
order id=Order ID

Ich habe verwendet, aber nicht funktioniert

add_action( 'woocommerce_order_status_completed', 'my_function' );
function my_function($order_id) {
    global $wpdb;
    $order = new WC_order($order_id);
    $customer_id= $order->id;
    $email= $order->billing_email;
    $email1= $order->id;
    $table_name =  "aitoe_license_table";
    $wpdb->insert( $table_name, array(
      'username' => $customer_id,
       'order_id' => $email,
       'number_of_cameras' => 12,
      'boolean' => 'False',
    ) );

   }

Fugen Sie Werte in eine benutzerdefinierte Tabelle ein sobald die
LoicTheAztec

Um Ihnen wirklich zu helfen (und Ihren Code wirklich zu testen), sollten Sie den Code angeben, den Sie zum Erstellen Ihrer Tabelle (oder der SQL-Abfrage) verwenden, um Ihre Frage zu aktualisieren.

In Ihrem Code gibt es seltsame Dinge wie 'order_id' => $email das sollte der Bestell-ID-Wert sein und nicht die E-Mail … Auch $customer_id= $order->id; das ist NICHT die ID des Kundenbenutzers, sondern die Bestell-ID, und $email1= $order->id; das wird nicht verwendet und ist falsch… */

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

?>

Seltsam ist auch, dass Sie viele Artikel (Produkte) in einer Bestellung haben können und Ihre Tabelle dies nicht verarbeiten kann, da Sie auch eine Zeile für Artikel benötigen sollten…

999150cookie-checkFügen Sie Werte in eine benutzerdefinierte Tabelle ein, sobald die Bestellung in Woocommerce aufgegeben wurde

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy