2013-07-29 91 views
0

我希望獲得基本詳細信息,例如當新訂單放入woocommerce並將其保存到單獨的MySQL表中時,客戶的基本信息如Order ID,NamePhoneWoocommerce轉儲MySQL中的新訂單詳細信息表

這是我正在嘗試的代碼,但它只是stroing命令id,但不是名稱和電話。

function add_db($order_id) 
{ 
    // order object (optional but handy) 
    global $woocommerce; 
    $order = new WC_Order($order_id); 
    mysql_connect("localhost", "root", "root") or die(mysql_error()); 
    mysql_select_db("wordpress") or die(mysql_error()); 

    $name = $order->billing_first_name; 
    $phone = $order->billing_phone; 

    mysql_query("INSERT INTO order_details (order_id, name, phone) VALUES ('$order_id', '$name', '$phone')") or die(mysql_error()); 
} 
add_action('woocommerce_new_order', 'add_db'); 

請幫助我獲得所需的功能。

謝謝。

回答

0

您應該使用wpdb類將數據插入到wordpress數據庫中。

事情是這樣的:

function add_db($order_id) { 
global $woocommerce; 
$order = new WC_Order($order_id); 
$name = $order->billing_first_name; 
$phone = $order->billing_phone; 

global $wpdb; 
$table = $wpdb->prefix . 'order_details'; 

$wpdb->insert($table, array( 

'order_id' => $order_id, 
'name' => $name, 
'phone' => $phone, 


)); 

add_action('woocommerce_new_order', 'add_db'); 
0

這想出了爲我的一個類似主題搜索第一個結果,我想我會做出貢獻。對我來說,這個問題與woocommerce在運行我的測試(即使購物車內容發生變化)時正在提取並修改未完成的訂單而不是創建新訂單有關,因此「new_order」操作沒有在隨後的運行中觸發 - 看起來行動根本不起作用。

進入後端的訂單選項卡並刪除最後一個未完成的訂單。下次結帳時,應該觸發「new_order」操作。