sql >> Databasteknik >  >> RDS >> Mysql

Infoga värden i en anpassad tabell när beställningen görs i Woocommerce

I din kod finns det konstiga saker som 'order_id' => $email det ska vara beställnings-ID-värdet och inte e-postadressen... Även $customer_id= $order->id; det är INTE kundanvändarens ID, utan order-ID och $email1= $order->id; som inte används och det är fel... */

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

?>

Det som är konstigt är också att du kan ha många artiklar (produkter) i en beställning och ditt bord kan inte hantera detta, eftersom du också borde behöva en rad för artikel...




  1. hur man serialiserar och deserialiserar viloobjekt?

  2. Fördelat på flera kolumner

  3. Postgres FEL:kunde inte öppna filen för läsning:Tillstånd nekad

  4. Oracle Ogiltigt nummer orsakat av to_char-funktionen