在结账时使用“结算名字”更新WooCommerce“用户名字段”

时间:2015-12-08 19:18:13

标签: woocommerce

我目前正在使用WooCommerce。

为了让我的客户轻松生活,我已经摆脱了账户注册中的“名字”和“姓氏”字段。我刚刚收到了电子邮件地址。

但是,当客户结账时,我想在其用户元数据中填入'billing_first_name'值为'billing_first_name'。

我正在尝试以下代码,但似乎没有用 - 任何想法?

//自动更新用户详细信息

add_filter( 'process_checkout' , 'custom_update_checkout_fields', 10, 2 );
function custom_update_checkout_fields($user_id, $old_user_data ) {
  $current_user = wp_get_current_user();

  // Updating Billing info
  if($current_user->billing_first_name != $current_user->user_firstname)
    update_user_meta($user_id, 'user_firstname', $current_user->billing_first_name);
}

干杯,

林茨

1 个答案:

答案 0 :(得分:1)

好的,所以我找到了一个很好的解决方案:

add_action('woocommerce_checkout_order_processed', 'custom_process_order1', 10, 1);
function custom_process_order1($order_id) {
    $current_user = wp_get_current_user();
    $current_user_id = get_current_user_id();

    update_user_meta($current_user_id, "first_name", $current_user->billing_first_name);
    update_user_meta($current_user_id, "last_name", $current_user->billing_last_name);
}

我有点新手,所以帮助别人。

  • ' add_action' bit将此代码挂钩到签出过程
  • $ current_user定义术语
  • 您会注意到wp_get_current_user()和get_current_user_id()有点不同但有点相同。我认为这是因为一个是Wordpress而另一个是WooCommerce
  • 然后我简单地说取代"名字"带" billing_first_name"的字段字段。

希望能帮助任何读者。