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

时间:2016-12-30 00:07:21

标签: php wordpress woocommerce custom-fields orders

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

是否应该使用任何插件/扩展程序或通过后台自定义编码完成?

此自定义字段不需要显示在客户订单视图上。当我们通过API获取订单时,我们只需要它来区分订单是由Consumer还是Wholesale。

我在这个系统中是全新的,我做了很多研究,但无法找到任何方向。

非常感谢任何建议/建议。

1 个答案:

答案 0 :(得分:2)

您可以使用 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文件中。

此代码经过测试并有效。

  

之后,如果您想在管理编辑订单后端或前端客户视图订单和电子邮件通知中显示该值,您将不得不使用更多代码和其他一些挂钩......