2013-07-29 1 views
0

Я хочу получить базовые данные, такие как Order ID, Name и Phone клиента, когда новый заказ размещен на woocommerce, а затем сохраните его в отдельную таблицу MySQL.Woocommerce Dump Новые данные заказа в MySQL Таблица

Вот код, который я пытаюсь, но он просто строит идентификатор заказа, но не имя и телефон.

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

Вы должны вставлять данные в свою базу данных Wordpress, используя класс wpdb.

Что-то вроде этого:

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» должно срабатывать.

Смежные вопросы