我需要将 woocommerce 设置为我的帐户/编辑帐户/页面电子邮件、姓氏或其他字段。一个字段或两个字段,只读。
我的解决方案是编辑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 文件的代码。
最佳答案
您也可以使用 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 文件中。经过测试并有效。
或者如倒数第二个问题一样,您将使用 Hook 函数将 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 个选择:
- 使用 jQuery 添加只读属性(可能是最好的方法)
- 通过主题覆盖模板(添加只读属性)
- 添加具有只读属性的自定义帐户字段
关于php - 在 Woocommerce 中将我的帐户编辑帐户字段设置为只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51106070/