如何将Woocommerce签出页字段设置为只读
用于编辑如何将Woocommerce签出页字段设置为只读,woocommerce,hook-woocommerce,Woocommerce,Hook Woocommerce,用于编辑woocommerce(WordPressss插件)帐户页面字段,并使其成为只读的,易于编辑woocommerce/templates/myaccount/form edit account.php文件,并且仅将只读添加到字段末尾标记end(很抱歉,我的英语和编程不专业且不好) 但对于编辑woocommerce签出页面字段,并将一个或两个及更多字段(例如,电子邮件字段)设置为只读,则无法使用前面的方法 请帮我做这件事,我不知道 如果,教我用functions.php轻松、更好、持久的方式
woocommerce
(WordPressss插件)帐户页面字段,并使其成为只读的,易于编辑woocommerce/templates/myaccount/form edit account.php
文件,并且仅将只读添加到字段末尾标记end(很抱歉,我的英语和编程不专业且不好)
但对于编辑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;
}
此函数将检查地址字段是否有值(即是否指定了地址),如果有值,则将字段设置为只读。Else使字段保持打开状态,以便为用户添加数据。您可以对每个必填字段应用相同的概念
希望这有帮助
谢谢大家! 非常感谢您的回答amritosh pandey先生 此代码工作正常 仅针对电子邮件字段,删除:
if($key == 'billing_address_1' || $key == 'billing_address_2'){
我改成
if($key == 'billing_email'){
完美而正确地工作
我的新问题是>如果用于两个字段,例如:移动(电话)和电子邮件或更多字段
我应该重复所有代码吗?
从add_操作返回$checkout_字段;}
或者可以重复
如果($关键行2或3或更多
例如:
...
...
if($key == 'billing_email'){
if($key == 'billing_phone'){
if($key == 'billing_postcode'){
...
...
谢谢你非常感谢你回答amritosh pandey先生,此代码正确。我在我的第一个问题下面发布了新问题。如果可能的话,请再次回答我的新问题,并再次感谢你。是的,我已经发布了我的+投票。但刷新页面后看不到我对你答案的aded投票!我投票后收到以下通知:感谢您的反馈!记录声誉低于15的人的投票,但不要更改公开显示的帖子分数。再次感谢您您可以在代码中对多个字段使用或条件。例如-`if($key=='billing_address_1'| |$key='billing_address_2'| |$key='billing_email'| |$key=='billing_phone'| |$key='billing u postcode'){`请检查一下,让我知道它是否适合你。你是最好的,这也很好而且正确,非常感谢@amritosh pandey