WooCommerce 新订单不返回账单电子邮件
WooCommerce New Order Not Returning Billing E-Mail
我在使用 WooCommerce 时遇到了一个奇怪的问题。
我开发了一个插件,可以将数据从 WooCommerce 订单发送到 HubSpot。每当下新订单或更新现有订单时,插件都需要触发 。我一直在使用以下截断代码来尝试实现此目的:
add_action('save_post', 'printout', 10, 3);
function printout($post_ID, $post, $update)
{
if ("shop_order" == $post->post_type) {
$msg = $post_ID;
delegator($msg);
}
}
function delegator($order_id){
$order = get_woocommerce_order($order_id);
// assigns the actual data of the order to the $data variable
$data = get_woocommerce_order_data($order);
// assign User e-mail for search
$email = $order->get_billing_email();
//$email = get_post_meta( $order_id, '_billing_email', true );
}
我遇到的问题是,在下新订单时,WordPress 无法获取订单详细信息,特别是电子邮件(它 return 为空)。钩子 做 return 一个订单号,所以我不认为这是钩子做的,而是别的东西。
奇怪的是,如果在下订单后我进入订单页面,然后点击订单上的 更新,就可以了!
所以我想知道我错过了什么/这里出了什么问题。在 WooCommerce 可以进行数据库调用之前钩子的流程是否触发?
感谢您的帮助。快把我逼疯了!
对于通过管理员的订单 added/updated,请使用下面的代码
add_action('save_post_shop_order', 'backend_delegator', 10, 3);
function backend_delegator($post_id, $post, $update) {
// Orders in backend only
if (!is_admin())
return;
// Get an instance of the WC_Order
$order = new WC_Order($post_id);
//Fired when create a new order
if (!$update) {
$email = $order->get_billing_email();
}
if ($update) {
$email = $order->get_billing_email();
}
}
对于通过结帐下达的订单,请使用以下代码。
add_action('woocommerce_new_order', 'frondend_delegator', 10, 2);
function frondend_delegator($order_id, $order) {
$email = $order->get_billing_email();
}
我在使用 WooCommerce 时遇到了一个奇怪的问题。
我开发了一个插件,可以将数据从 WooCommerce 订单发送到 HubSpot。每当下新订单或更新现有订单时,插件都需要触发 。我一直在使用以下截断代码来尝试实现此目的:
add_action('save_post', 'printout', 10, 3);
function printout($post_ID, $post, $update)
{
if ("shop_order" == $post->post_type) {
$msg = $post_ID;
delegator($msg);
}
}
function delegator($order_id){
$order = get_woocommerce_order($order_id);
// assigns the actual data of the order to the $data variable
$data = get_woocommerce_order_data($order);
// assign User e-mail for search
$email = $order->get_billing_email();
//$email = get_post_meta( $order_id, '_billing_email', true );
}
我遇到的问题是,在下新订单时,WordPress 无法获取订单详细信息,特别是电子邮件(它 return 为空)。钩子 做 return 一个订单号,所以我不认为这是钩子做的,而是别的东西。
奇怪的是,如果在下订单后我进入订单页面,然后点击订单上的 更新,就可以了!
所以我想知道我错过了什么/这里出了什么问题。在 WooCommerce 可以进行数据库调用之前钩子的流程是否触发?
感谢您的帮助。快把我逼疯了!
对于通过管理员的订单 added/updated,请使用下面的代码
add_action('save_post_shop_order', 'backend_delegator', 10, 3);
function backend_delegator($post_id, $post, $update) {
// Orders in backend only
if (!is_admin())
return;
// Get an instance of the WC_Order
$order = new WC_Order($post_id);
//Fired when create a new order
if (!$update) {
$email = $order->get_billing_email();
}
if ($update) {
$email = $order->get_billing_email();
}
}
对于通过结帐下达的订单,请使用以下代码。
add_action('woocommerce_new_order', 'frondend_delegator', 10, 2);
function frondend_delegator($order_id, $order) {
$email = $order->get_billing_email();
}