Woocommerce转储MySQL表中的新订单详细信息

时间:2013-07-29 16:46:15

标签: wordpress woocommerce

我希望获得基本的详细信息,例如客户的Order IDNamePhone,当新的订单放在woocommerce上,然后将其保存到单独的MySQL表中。

以下是我正在尝试的代码,但这只是订单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' );

请帮助我获得所需的功能。

感谢。

2 个答案:

答案 0 :(得分: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' );

答案 1 :(得分:0)

这是我搜索类似主题的第一个结果,我认为我会做出贡献。对我来说,问题与这样一个事实有关:当我运行我的测试时(即使购物车内容发生变化),woocommerce正在拾取并修改未完成的订单,而不是创建一个新订单,所以" new_order&# 34;行动没有在后续行动中触发 - 这看起来就像行动根本不起作用。

进入后端的订单标签,删除上一个未完成的订单。下次结账时," new_order"行动应该触发。