为了账号安全,请及时绑定邮箱和手机立即绑定

在 Woocommerce 结账后数据已经存在时禁用用户配置文件更新

在 Woocommerce 结账后数据已经存在时禁用用户配置文件更新

PHP
BIG阳 2021-11-13 19:19:11
我有一个商店,用户在配置文件中注册了数据。在结帐页面中,可以更改自动填充的数据(拉取个人资料)。我想:例如,如果客户输入另一个地址或另一个电子邮件,则该数据不会保存在配置文件中。
查看完整描述

1 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

如果下订单时数据已经存在,以下将禁止更新用户配置文件(参见WC_Checkout process_customer()方法源代码):


add_filter( 'woocommerce_checkout_update_customer_data', 'checkout_update_customer_data_callback', 10, 2 );

function checkout_update_customer_data_callback( $boolean, $checkout ) {

    if ( get_current_user_id() > 0 ) {

        $customer = new WC_Customer( get_current_user_id() );

        $first_name = $customer->get_first_name();


        // When customer data already exist, don't update it when an order is processed

        if ( ! empty( $first_name ) ) {

            return false;

        }

    }

    return $boolean;

}

代码位于活动子主题(或活动主题)的 functions.php 文件中。测试和工作。


相关:禁用 woocommerce_checkout_update_customer_data


查看完整回答
反对 回复 2021-11-13
  • 1 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信