gpt4 book ai didi

php - 在 WooCommerce 订单状态更改中添加用户元数据作为订单元数据

转载 作者:行者123 更新时间:2023-12-04 07:54:00 25 4
gpt4 key购买 nike

我正在尝试将自定义用户元字段添加到订单元数据。
当我将订单状态更改为“wordt-verwerkt”时,我想添加它,这是我使用 WooCommerce 插件为自定义订单状态添加的自定义订单状态。
我尝试使用代码 from this post ,但是当我更改订单状态时出现错误。
(我也尝试过状态为“正在处理”,但也没有任何成功)
我现在拥有的是以下代码:

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();
}
}

最佳答案

您的代码中有一些错误( Hook 的函数参数是错误的)。
请参阅位于 WC_Order 中的此复合 Hook 的相关源代码status_transition()方法(在 line 363 上):

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 );

关于php - 在 WooCommerce 订单状态更改中添加用户元数据作为订单元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66796928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com