我想禁用woocommerce结帐页面上的select2下拉列表。我希望用户无法通过结帐页面上的下拉列表更改国家/地区
我不想隐藏字段(国家/地区),但只想禁用下拉列表
这是html查找下拉列表的方式
<div class="select2-drop select2-display-none select2-with-searchbox select2-drop-active" style="left: 92.5px; width: 556px; top: 668px; bottom: auto; display: block;" id="select2-drop">
<div class="select2-search">
<label for="s2id_autogen1_search" class="select2-offscreen">Country *</label>
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input" role="combobox" aria-expanded="true" aria-autocomplete="list" aria-owns="select2-results-1" id="s2id_autogen1_search" placeholder="" aria-activedescendant="select2-result-label-7">
</div>
<ul class="select2-results" role="listbox" id="select2-results-1">
<li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted" role="presentation">
<div class="select2-result-label" id="select2-result-label-7" role="option">
<span class="select2-match">
</span>
India
</div>
</li>
<li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
<div class="select2-result-label" id="select2-result-label-8" role="option">
<span class="select2-match"></span>
United Kingdom (UK)
</div>
</li>
</ul>
</div>
请帮忙
答案 0 :(得分:1)
function rei_woocommerce_form_field_args($args, $key, $value) {
if ($key == 'billing_country') {
$args['custom_attributes'] = array('disabled'=>'disabled');
}
return $args;
}
add_filter('woocommerce_form_field_args', 'rei_woocommerce_form_field_args', 10, 3);
将其添加到您的functions.php
...
我希望您意识到禁用的表单字段不会包含在POST / GET数据中。
如果你真的需要这个,我们可以添加额外的隐藏输入,它们具有相同的名称和值。现在一起,它应该是这样的..
function rei_woocommerce_form_field_args($args, $key, $value) {
if (($key == 'billing_country') && is_checkout()) {
$args['custom_attributes'] = array('disabled'=>'disabled');
}
return $args;
}
add_filter('woocommerce_form_field_args', 'rei_woocommerce_form_field_args', 10, 3);
function rei_woocommerce_form_field_country($field, $key, $args, $value){
if (($key == 'billing_country') && is_checkout()) {
$field .= '<input type="hidden" name="' . esc_attr( $key ) . '" value="' . esc_attr( $value ) . '" />';
}
return $field;
}
add_filter('woocommerce_form_field_country','rei_woocommerce_form_field_country', 10, 4);
另一个注意事项是,即使您可以禁用选择,任何拥有该知识的人都可以轻松地在浏览器中删除已禁用的属性。
答案 1 :(得分:0)
您可以使用两种解决方法
答案 2 :(得分:-3)
在输入中添加disabled
属性,如下所示。
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input" role="combobox" aria-expanded="true" aria-autocomplete="list" aria-owns="select2-results-1" id="s2id_autogen1_search" placeholder="" aria-activedescendant="select2-result-label-7" disabled>