2016-12-30 35 views
2

当客户下订单时,是否可以自动将客户自定义字段的值复制到订单的自定义字段中?将用户自定义字段自动添加到订单元数据

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

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

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

任何意见/建议将不胜感激。

+0

谢谢为了您的快速回应,@LoicTheAztec!我只是编辑了这个问题,希望对你有意义。 – Zark

+0

非常感谢,@LoicTheAztec这是一段非常好的代码。我已经标记为答案。我会试试看,并让你知道我是否卡在某处:) – Zark

回答

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文件或任何插件文件)。

此代码已经过测试并可正常工作。

后,如果你想显示在管理员修改订单后端或前端客户查看订单和邮件通知该值,你将不得不使用更多的代码和其他一些挂钩...

相关问题