woocommerce - 如何将 Woocommerce 结帐页面字段设置为只读
问题描述
用于编辑woocommerce
(WordPressss 插件)帐户页面字段并将其设为只读,轻松编辑woocommerce/templates/myaccount/form-edit-account.php
文件,并且仅将只读添加到字段标签结尾(对不起,我的英语和编程不专业和好)
但是对于编辑woocommerce
结帐页面字段并将一个或两个或多个字段(例如电子邮件字段)设置为只读,则无法执行以前的方式
请帮我做,我不知道。
如果教我从functions.php简单、更好、更持久的方式(如果可能的话)会更好。
再次感谢你
解决方案
您可以在主题的“function.php”文件中使用以下代码。
add_action('woocommerce_checkout_fields','customization_readonly_billing_fields',10,1);
function customization_readonly_billing_fields($checkout_fields){
$current_user = wp_get_current_user();;
$user_id = $current_user->ID;
foreach ( $checkout_fields['billing'] as $key => $field ){
if($key == 'billing_address_1' || $key == 'billing_address_2'){
$key_value = get_user_meta($user_id, $key, true);
if( strlen($key_value)>0){
$checkout_fields['billing'][$key]['custom_attributes'] = array('readonly'=>'readonly');
}
}
}
return $checkout_fields;
}
该函数将检查地址字段是否有值(即是否指定了地址),如果有值,则将该字段设为只读。否则保持字段打开以向用户添加数据。您可以对每个必填字段应用相同的概念。
希望这可以帮助。
谢谢你!
推荐阅读
- java - jaxb 绑定定义 - 不支持的绑定命名空间“http://java.sun.com/xml/ns/jaxb
- outlook - 如何为 bitbucket、jira、团队、员工前景提供相同的凭据?
- javascript - $lookup mongodb 根据输入字段 nodejs 从两个集合中获取数据
- angular - Angular 11 Typeahead 自动完成:在搜索栏上选择用户名时如何获取用户 ID
- gfortran - gfortran 编译命令在存在名为“as”的可执行文件时失败
- android - 模拟器:尝试在 eip 处执行 vcpu:8d684f
- laravel - 验证通过后验证自定义规则
- ruby-on-rails - S3 存储桶正在输出奇怪的空白链接
- ios - Swift:错误->在初始化之前使用了变量“str”
- javascript - 关于丢帧和 requestAnimationFrame 的困惑