小编Adn*_*Ali的帖子

将其他计费注册字段与 WooCommerce 中的默认 Wordpress 字段同步

我已将以下代码添加到 Woocommerce 用户注册表中,以获取注册页面上的账单详细信息。

现在,当新用户注册时,名字和姓氏将在账单详细信息数据库以及默认的 WordPress 用户帐户中注册。如果用户更新其帐户(wordpress 用户帐户)上的名字和姓氏,账单详细信息也应更新。

Woocommerce 设置:

访客结帐已禁用。结帐页面用户注册已启用。登录页面注册已启用。只有注册用户才能进行购买。

  1. 这是用户注册表单,我从结账过程中提取这些额外的账单详细信息。

用户登记表

  1. 在“帐户详细信息”上,我更新了“名字”,它在这里有效,但我在“帐单详细信息”上没有得到相同的更新。如果用户在“帐户详细信息”上更新这两个字段及其电子邮件地址,我希望“帐单详细信息”上有相同的“名字”和“姓氏”更新。

更新“帐户详细信息”中的“名字”和“姓氏”

  1. 现在,在更新“帐户详细信息”上的“名字”和“姓氏”后,我回到“帐单详细信息”,但它仍然显示注册过程中使用的旧“名字”和“姓氏”。另外,我想从账单详细信息中隐藏这 3 个字段:“名字”、“姓氏”和“电子邮件地址”,以免混淆注册用户。我需要数据库中“账单详细信息”的这些更新,只是因为这些信息将打印在发票和电子邮件上

“帐户详细信息”更新后“帐单详细信息”的屏幕截图

仅当管理员或商店经理进入用户配置文件(从后端)并手动按下“更新”按钮时,数据才会同步/更新,然后才会生效。我希望当注册用户从其帐户(前端)进行任何更改时,数据自动同步/更新。

任何帮助将不胜感激。

请检查以下代码:

// Custom function to display the Billing Address form to registration page
add_action('woocommerce_register_form_start','zk_add_billing_form_to_registration');
function zk_add_billing_form_to_registration(){
    $checkout = WC()->checkout;
    foreach ( $checkout->get_checkout_fields( 'billing' ) as $key => $field ) :
        if($key!='billing_email')
            woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
    endforeach;
}

// Custom function to save Usermeta or Billing Address of registered user
add_action('woocommerce_created_customer','zk_save_billing_address');
function zk_save_billing_address($user_id){
    $address = $_POST;
    foreach ($address as …
Run Code Online (Sandbox Code Playgroud)

php wordpress field user-data woocommerce

4
推荐指数
1
解决办法
4879
查看次数

标签 统计

field ×1

php ×1

user-data ×1

woocommerce ×1

wordpress ×1