我之前在这里找到了下面的脚本,但是无法让它工作。基本上我想将基本订单详细信息复制到一个新表(在同一个数据库中),所以我可以从非wordpress页面运行一些报告。我已经更改了表名和字段,并将其复制到主题中的functions.php中。但它似乎没有做任何事情。任何帮助都会很棒,我真的很困难。我正在运行woocommerce 2.2.8,如果这有任何区别。
function add_neworders ($order_id) {
global $woocommerce;
$order = new WC_Order( $order_id );
$total = $order->order_total;
$date = $order->order_date;
global $wpdb;
$table = $wpdb->prefix . 'finacedata';
$wpdb->insert($table, array(
'desctipion' => $name,
'status' => '2',
'date' => $date,
'amount' => $total,
'invoice' => $order_id,
));
add_action( 'woocommerce_new_order', 'add_neworders' );}
答案 0 :(得分:2)
这可能是一个迟到的答案,但woocommerce_new_order
动作在创建订单时运行,但数据尚未填充,因此一切都是空的。
使用woocommerce_checkout_order_processed
操作,该操作在创建订单时运行,并且存储所有订单数据(如订单项)。
答案 1 :(得分:0)
您无法将add_action添加到函数中。放在功能之外:
function add_neworders ($order_id) {
global $woocommerce;
$order = new WC_Order( $order_id );
$total = $order->order_total;
$date = $order->order_date;
global $wpdb;
$table = $wpdb->prefix . 'finacedata';
$wpdb->insert($table, array(
'desctipion' => $name,
'status' => '2',
'date' => $date,
'amount' => $total,
'invoice' => $order_id,
));
}
add_action( 'woocommerce_new_order', 'add_neworders' );