自动将用户自定义字段添加到订单元数据

Adding user custom field to the order meta-data automatically

是否可以在客户下订单时自动将客户自定义字段的值复制到订单的自定义字段?

应该使用任何 plugin/extension 还是通过幕后自定义编码来完成?

此自定义字段不需要显示在客户订单视图中。当我们通过 API 得到它时,我们只需要它来区分订单是由消费者还是批发商下的。

我是这个系统的新手,我做了很多研究,但找不到任何方向。

任何 advice/suggestion 将不胜感激。

您可以使用 woocommerce_thankyou 挂钩将此用户数据添加到订单元数据中:

add_action( 'woocommerce_thankyou', 'orders_from_processing_to_pending', 10, 1 );
function orders_from_processing_to_pending( $order_id ) {

    if ( ! $order_id )
        return;

    $order = wc_get_order( $order_id );
    $user_id = get_current_user_id();

    //Set HERE the meta key of your custom user field
    $user_meta_key = 'some_meta_key';

    // Get here the user custom field (meta data) value
    $user_meta_value = get_user_meta($user_id, $user_meta_key, true);


    if ( ! empty($user_meta_value) )
        update_post_meta($order_id, $user_meta_key, $user_meta_value);
    else
        return;

}

代码进入活动子主题的 function.php 文件(活动主题或任何插件文件)。

此代码已经过测试并且有效。

After, if you want to display that value on admin edit order backend or in frontend customer view order and emails notifications, you will have to use some more code and some other hooks…