Вместо этого вы также можете использовать jQuery (здесь для поля "billing_mobile_phone"):
add_action( 'wp_footer' , 'make_phone_field_readonly' );
function make_phone_field_readonly(){
// Only for account fields
if( is_account_page() ): ?>
<script type='text/javascript'>
jQuery(function($){
$('form.edit-account input#billing_mobile_phone').prop('readonly', true );
});
</script>
<?php endif;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Или, как и в вашем предпоследнем вопросе, вы будете использовать подключенную функцию, добавляя атрибут readonly
в дополнительные поля:
// Display the mobile phone field
// add_action( 'woocommerce_edit_account_form_start', 'add_billing_mobile_phone_to_edit_account_form' ); // At start
add_action( 'woocommerce_edit_account_form', 'add_billing_mobile_phone_to_edit_account_form' ); // After existing fields
function add_billing_mobile_phone_to_edit_account_form() {
$user = wp_get_current_user();
?>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="billing_mobile_phone"><?php _e( 'Mobile phone', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="woocommerce-Input woocommerce-Input--phone input-text" name="billing_mobile_phone" id="billing_mobile_phone" value="<?php echo esc_attr( $user->billing_mobile_phone ); ?>" readonly />
</p>
<?php
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Итак, у вас есть 3 варианта:
- Добавить атрибут readonly с помощью jQuery (может быть, лучше)
- Переопределение шаблона через тему (добавление атрибута readonly)
- Добавление настраиваемых полей учетной записи с атрибутом только для чтения