Я хочу, чтобы раскрывающийся список стран в woocommerce был доступен только для чтения.
Я уже установил в качестве страны по умолчанию австралию, но хочу, чтобы они были доступны только для чтения.
Я хочу, чтобы раскрывающийся список стран в woocommerce был доступен только для чтения.
Я уже установил в качестве страны по умолчанию австралию, но хочу, чтобы они были доступны только для чтения.
Ответ Кашало правильный ... Вы также можете использовать один из нескольких других способов:
1) Только для страны выставления счета Checkout:
add_filter('woocommerce_checkout_fields', 'readdonly_billing_country_select_field');
function readdonly_billing_country_select_field( $fields ) {
// Set billing and shipping country to AU
WC()->customer->set_billing_country('AU');
// Make billing country field read only
$fields['billing']['billing_country']['custom_attributes'] = array( 'disabled' => 'disabled' );
return $fields;
}
2) Только для страны оформления заказа и моей учетной записи:
add_filter('woocommerce_billing_fields', 'readdonly_billing_country_select_field');
function readdonly_billing_country_select_field( $fields ) {
// Set billing and shipping country to AU
WC()->customer->set_billing_country('AU');
// Make billing country field read only
$fields['billing_country']['custom_attributes'] = array( 'disabled' => 'disabled' );
return $fields;
}
3 Для страны выставления счета и доставки Checkout:
add_filter('woocommerce_checkout_fields', 'readdonly_country_select_field');
function readdonly_country_select_field( $fields ) {
// Set billing and shipping country to AU
WC()->customer->set_billing_country('AU');
WC()->customer->set_shipping_country('AU');
// Make billing and shipping country field read only
$fields['billing']['billing_country']['custom_attributes'] = array( 'disabled' => 'disabled' );
$fields['shipping']['shipping_country']['custom_attributes'] = array( 'disabled' => 'disabled' );
return $fields;
}
4) Для страны оплаты и доставки в моем аккаунте:
add_filter('woocommerce_default_address_fields', 'readdonly_country_select_field');
function readdonly_country_select_field( $fields ) {
// Set billing and shipping country to AU
WC()->customer->set_billing_country('AU');
WC()->customer->set_shipping_country('AU');
// Make country field read only
$fields['country']['custom_attributes'] = array( 'disabled' => 'disabled' );
return $fields;
}
kashalo
s?
- person melvin; 24.09.2019
вы можете использовать woocommerce_form_field_args
, чтобы добавить отключенный атрибут в поле выбора запроса.
добавьте следующий код в свой functions.php
, и вы получите желаемый результат.
add_action('woocommerce_form_field_args', 'disable_country_dropdown', 10, 3);
function disable_country_dropdown($args, $key, $value)
{
if ($key == 'billing_country') {
$args['custom_attributes'] = [
'disabled' => 'disabled',
];
}
return $args;
}
проблема, когда мы отключили выбор drowpdown, значение параметра не передается, когда вы нажимаете разместить заказ, и для решения этой проблемы мы можем добавить скрытое поле с желаемым значением следующим образом:
add_action('woocommerce_after_order_notes', 'billing_country_hidden_field');
function billing_country_hidden_field($checkout)
{
echo '<input type="hidden" class="input-hidden" name="billing_country" value="PL">';
}
просто измените value="PL"
на значение кода вашей страны, и все будет работать должным образом.
OutPut:
Код протестирован с помощью StorrFront Theme.