Скрыть раздел полей доставки при оформлении заказа для определенного метода доставки в WooCommercePhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Скрыть раздел полей доставки при оформлении заказа для определенного метода доставки в WooCommerce

Сообщение Anonymous »

Кто-то задал следующий вопрос, на который я ответил. Потом он удалил его. Поэтому я публикую вопрос и свой ответ, поскольку это может быть полезно для сообщества:

В WooCommerce я пытаюсь динамически обновлять форму флажка без перезагрузки страницы оформления заказа. .
У меня 2 способа доставки: «Доставка» и «Самовывоз». Я пытаюсь отключить только раздел адреса доставки (с флажком «отправить на другой адрес, если выбран метод самовывоза») и все поля доставки.

Сначала я попробовал это:

Код: Выделить всё

add_action( 'woocommerce_after_shipping_rate', 'carrier_custom_fields', 30, 2 );
function carrier_custom_fields( $method, $index ) {
if( ! is_checkout()) return; // Only on checkout page

$customer_carrier_method = 'local_pickup:1';

if( $method->id != $customer_carrier_method ) return; // Only display for "local_pickup"

$chosen_method_id = WC()->session->chosen_shipping_methods[ $index ];

// echo $chosen_method_id;

// If the chosen shipping method is 'legacy_local_pickup' we display
if($chosen_method_id == $customer_carrier_method ):

add_filter( 'woocommerce_cart_needs_shipping_address', '__return_false');

else :
add_filter( 'woocommerce_cart_needs_shipping_address', '__return_true');

endif;

}
Затем я попробовал это:

Код: Выделить всё

add_action( 'woocommerce_shipping_method_chosen', 'check_if_local_pickup', 10, 1 );
function check_if_local_pickup( $chosen_method ) {
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
if ($chosen_shipping == 'local_pickup:1') {
add_filter( 'woocommerce_ship_to_different_address_checked', '__return_false' );
add_filter( 'woocommerce_cart_needs_shipping_address', '__return_false');
return true;
}
else
{
add_filter( 'woocommerce_cart_needs_shipping_address', '__return_true');
return true;

}
}
Оба они не работают.

Как скрыть раздел полей доставки при оформлении заказа для определенного выбранного способа доставки в WooCommerce?

Подробнее здесь: https://stackoverflow.com/questions/623 ... woocommerc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»