用于编辑woocommerce
(WordPressss插件)帐户页面字段,并使其成为只读,易于编辑的woocommerce/templates/myaccount/form-edit-account.php
文件,并且仅将只读添加到字段结尾标记结束(对不起,我的英语水平和编程水平都不高且专业)
但是对于编辑woocommerce
的结帐页面字段,并将一个或两个或多个字段(例如,电子邮件字段)设置为只读,则无法采用上述方法
请帮我做,我不知道。
如果教我通过functions.php轻松,更好,更持久的方式(如果可能)做到这一点会更好。
再次感谢您
答案 0 :(得分:1)
您可以在主题的“ 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;
}
此函数将检查地址字段是否具有值(即是否指定了地址),并且如果它具有值,则使该字段为只读。其他使字段保持打开状态以为用户添加数据。您可以对每个必填字段应用相同的概念。
希望这会有所帮助。
谢谢!
答案 1 :(得分:0)
非常感谢您的回答amritosh pandey先生 该代码正常工作
仅电子邮件字段,请删除:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
然后我更改为
if($key == 'billing_address_1' || $key == 'billing_address_2'){
并完美,正确地工作
我的新任务是>如果用于两个字段,例如:手机(tel)和电子邮件或更多字段 我应该重复所有代码吗? 从add_action返回$ checkout_fields; }
或可以重复 if($ key行2或3或更多?
示例:
if($key == 'billing_email'){
谢谢