添加用户元数据作为 WooCommerce 订单状态更改的订单元数据
Add user meta data as order meta on WooCommerce order status change
我正在尝试将自定义用户元字段添加到订单元数据中。
当我将订单状态更改为“wordt-verwerkt”时,我想添加它,这是我使用 WooCommerce 插件添加的自定义订单状态,用于自定义订单状态。
我尝试使用代码 ,但在更改订单状态时出现错误。
(我也尝试过状态为“正在处理”,但都没有成功)
我现在的代码如下:
add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );
function add_order_meta_from_custom_user_meta( $order, $data ) {
$user_id = $order->get_user_id(); // Get the user id
if( $WefactEmail = get_user_meta( $user_id, 'KVK_nummer_2', true ) ) {
$order->update_meta_data( 'WeFact_email', $WefactEmail );
}
if( isset($WefactEmail) ) {
$order->save();
}
}
你的代码有一些错误(钩子函数参数错误)。
查看位于 WC_Order
status_transition()
方法 (on line 363):[=24= 中的此复合钩子的相关源代码]
do_action( 'woocommerce_order_status_' . $status_transition['to'], $this->get_id(), $this );
其中 $this
是 $order
(WC_Order
对象) 和 $this->get_id()
是$order_id
(订单号).
改用以下内容:
add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );
function add_order_meta_from_custom_user_meta( $order_id, $order ) {
$user_id = $order->get_user_id(); // Get the user id
$wf_email = get_user_meta( $user_id, 'KVK_nummer_2', true );
if( ! empty($wf_email) ) {
$order->update_meta_data( 'WeFact_email', $wf_email );
$order->save();
}
}
或者这也适用:
add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );
function add_order_meta_from_custom_user_meta( $order_id, $order ) {
$user_id = $order->get_user_id(); // Get the user id
$wf_email = get_user_meta( $user_id, 'KVK_nummer_2', true );
if( ! empty($wf_email) ) {
update_post_meta( $order_id, 'WeFact_email', $wf_email );
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。两者都应该工作。
对于processing
状态,替换为:
add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );
与:
add_action( 'woocommerce_order_status_processing', 'add_order_meta_from_custom_user_meta', 10, 2 );
我正在尝试将自定义用户元字段添加到订单元数据中。
当我将订单状态更改为“wordt-verwerkt”时,我想添加它,这是我使用 WooCommerce 插件添加的自定义订单状态,用于自定义订单状态。
我尝试使用代码
我现在的代码如下:
add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );
function add_order_meta_from_custom_user_meta( $order, $data ) {
$user_id = $order->get_user_id(); // Get the user id
if( $WefactEmail = get_user_meta( $user_id, 'KVK_nummer_2', true ) ) {
$order->update_meta_data( 'WeFact_email', $WefactEmail );
}
if( isset($WefactEmail) ) {
$order->save();
}
}
你的代码有一些错误(钩子函数参数错误)。
查看位于 WC_Order
status_transition()
方法 (on line 363):[=24= 中的此复合钩子的相关源代码]
do_action( 'woocommerce_order_status_' . $status_transition['to'], $this->get_id(), $this );
其中 $this
是 $order
(WC_Order
对象) 和 $this->get_id()
是$order_id
(订单号).
改用以下内容:
add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );
function add_order_meta_from_custom_user_meta( $order_id, $order ) {
$user_id = $order->get_user_id(); // Get the user id
$wf_email = get_user_meta( $user_id, 'KVK_nummer_2', true );
if( ! empty($wf_email) ) {
$order->update_meta_data( 'WeFact_email', $wf_email );
$order->save();
}
}
或者这也适用:
add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );
function add_order_meta_from_custom_user_meta( $order_id, $order ) {
$user_id = $order->get_user_id(); // Get the user id
$wf_email = get_user_meta( $user_id, 'KVK_nummer_2', true );
if( ! empty($wf_email) ) {
update_post_meta( $order_id, 'WeFact_email', $wf_email );
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。两者都应该工作。
对于processing
状态,替换为:
add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );
与:
add_action( 'woocommerce_order_status_processing', 'add_order_meta_from_custom_user_meta', 10, 2 );