我需要使woocommerce成为我的帐户/编辑帐户/页面电子邮件,或者姓氏或其他字段。一两个字段,ReadOnly
我的解决方案是在plugins / woocommerce / templates / myaccount文件夹中编辑form-edit-account.php文件,然后编辑form-edit-account.php文件,并在标签末尾添加 readonly 正确,例如:
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="account_email"><?php esc_html_e( 'Email address', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="email" class="woocommerce-Input woocommerce-Input--email input-text" name="account_email" id="account_email" autocomplete="email" value="<?php echo esc_attr( $user->user_email ); ?>" readonly />
</p>
但是我只需要从function.php文件进行此更改。 这可能吗?你可以指导我吗? 我需要functions.php文件的代码 谢谢大家
答案 0 :(得分:2)
您也可以改用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种选择: