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

我有一个商店,用户在配置文件中注册了数据。在结帐页面中,可以更改自动填充的数据(拉取个人资料)。

我想:例如,如果客户输入另一个地址或另一个电子邮件,则该数据不会保存在配置文件中。


BIG阳
浏览 162回答 1
1回答

翻翻过去那场雪

如果下订单时数据已经存在,以下将禁止更新用户配置文件(参见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
打开App,查看更多内容
随时随地看视频慕课网APP