在Woocommerce中禁用或只读编辑帐户页面中的字段

时间:2018-09-21 17:09:32

标签: php wordpress woocommerce readonly account

当前,“编辑帐户详细信息”页面具有以下字段:名,姓,电子邮件地址,当前密码和新密码。

现在,我只需要为客户用户禁用名字,姓氏,电子邮件地址字段。我正在使用Flatsome WP主题和Woocommerce插件。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

更新

  

对于edit“帐户详细信息”字段(电子邮件字段),您需要编辑myaccount/form-edit-account.php模板文件,因为这些字段是硬编码在模板中的

     

您将必须向相关的输入字段添加只读属性,如本摘录示例所示:

<p class="woocommerce-form-row woocommerce-form-row--first form-row form-row-first">
    <label for="account_first_name"><?php esc_html_e( 'First name', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
    <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_first_name" id="account_first_name" autocomplete="given-name" value="<?php echo esc_attr( $user->first_name ); ?>" readonly />
</p>
     

官方文档Overriding templates via a theme

对于“我的帐户”>编辑帐单地址,以下代码将使帐单字段的名字,姓氏和电子邮件变为只读

add_filter( 'woocommerce_billing_fields', 'readonly_billing_account_fields', 25, 1 );
function readonly_billing_account_fields ( $billing_fields ) {
    // Only my account billing address for logged in users
    if( is_user_logged_in() && is_account_page() ){

        $readonly = ['readonly' => 'readonly'];

        $billing_fields['billing_first_name']['custom_attributes'] = $readonly;
        $billing_fields['billing_last_name']['custom_attributes'] = $readonly;
        $billing_fields['billing_email']['custom_attributes'] = $readonly;
    }
    return $billing_fields;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。


删除这三个字段,您将使用:

add_filter( 'woocommerce_billing_fields', 'remove_billing_account_fields', 25, 1 );
function remove_billing_account_fields ( $billing_fields ) {
    // Only my account billing address for logged in users
    if( is_user_logged_in() && is_account_page() ){
        unset($billing_fields['billing_first_name']);
        unset($billing_fields['billing_last_name']);
        unset($billing_fields['billing_email']);
    }
    return $billing_fields;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。

答案 1 :(得分:0)

您可以通过将其添加到主题的functions.php

中来轻松禁用WooCommerce帐户页面中的各个字段
function my_remove_checkout_fields($fields) {
    unset( $fields ['billing'] ['billing_first_name'] );
    unset( $fields ['billing'] ['billing_last_name'] );
    unset( $fields ['billing'] ['billing_email'] );

    // Any other fields you want to unset...

    return $fields;
}

add_filter( 'woocommerce_checkout_fields', 'my_remove_checkout_fields' );

自定义字段的文档可以在here中找到。