值插入自定义表一旦订单被放置在Woocommerce
问题描述:
我需要插入到我的自定义表称为license_table值插入自定义表一旦订单被放置在Woocommerce
**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
我已经使用但不能正常工作
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',
));
}
答
要真正帮助你(并测试真实的代码),你应该提供你用来创建你的表(或SQL查询)更新你的问题的代码。
在你的代码中有奇怪的东西'order_id' => $email
应该是订单ID值,而不是电子邮件......此外$customer_id= $order->id;
是不是客户的用户的ID,但订单ID,并$email1= $order->id;
没有被使用,这是错的... */
<?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 -------------------------#
?>
而且令人奇怪的是,你可以在一个订单很多项目(产品)和你的表不能处理这个问题,你应该还需要人一个项目...