mysql - solo - Cómo insertar valores en una tabla personalizada después de realizar el pedido en woocommerce
woocommerce mysql (1)
Para realmente ayudarlo (y probar su código real), debe proporcionar el código que está utilizando para crear su tabla (o la consulta SQL) actualizando su pregunta.
En su código hay cosas extrañas como ''order_id'' => $email
que debería ser el valor de ID de pedido y no el correo electrónico ... También $customer_id= $order->id;
esa NO es la ID del usuario del cliente, sino la ID del pedido, y $email1= $order->id;
eso no se usa y está mal ... * /
<?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 -------------------------#
?>
También lo extraño es que puede tener muchos artículos (productos) en un pedido y su mesa no puede manejar esto, ya que también debería necesitar una línea por artículo ...
Necesito insertar en mi tabla personalizada llamada license_table
**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
lo he usado pero no funciona
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'',
) );
}