tablas solo plugin personalizar pedidos modificar manager insertar finalizar datos crear compra mysql wordpress woocommerce hook-woocommerce

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'', ) ); }