sql >> Database >  >> RDS >> Mysql

Waarden invoegen in een aangepaste tabel zodra de bestelling is geplaatst in Woocommerce

In je code staan ​​vreemde dingen als 'order_id' => $email dat zou de waarde van de Order ID moeten zijn en niet de e-mail... Ook $customer_id= $order->id; dat is NIET de ID van de klantgebruiker, maar de Order ID, en $email1= $order->id; dat wordt niet gebruikt en is verkeerd... */

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

?>

Wat ook vreemd is, is dat je veel items (producten) in een bestelling kunt hebben en je tafel kan dit niet aan, omdat je ook regel voor item nodig hebt ...




  1. Wat is de reden voor het volgen van SQL-code kon geen gegevens invoegen?

  2. Zoek het aantal kolommen in een tabel

  3. unieke kolomwaarden berekenen in mysql

  4. Oproep naar een lidfunctie resultaat() met behulp van CodeIgniter