Nel tuo codice ci sono cose strane come 'order_id' => $email
dovrebbe essere il valore dell'ID ordine e non l'e-mail... Inoltre $customer_id= $order->id;
NON è l'ID dell'utente cliente, ma l'ID dell'ordine e $email1= $order->id;
che non viene utilizzato ed è sbagliato... */
<?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 -------------------------#
?>
Inoltre, ciò che è strano è che puoi avere molti articoli (prodotti) in un ordine e il tuo tavolo non può gestirlo, poiché dovresti anche aver bisogno di una riga per articolo...