Включите «Доставка по другому адресу» только для определенных продуктов в Woocommerce - PullRequest
0 голосов
/ 12 декабря 2018

Я хочу отключить (скрыть) «Доставка по другому адресу» для большинства продуктов и включить его только для определенных (нескольких) продуктов.Я использовал add_filter( 'woocommerce_cart_needs_shipping_address', '__return_false');, но он отключает раздел «Доставка по другому адресу» для всех продуктов.

1 Ответ

0 голосов
/ 13 декабря 2018

Вам нужен код, аналогичный вашему другому вопросу:

add_filter( 'woocommerce_cart_needs_shipping_address', 'disable_checkout_shipping_address');
function disable_checkout_shipping_address( $needs_shipping_address ) {

    $products_ids = array(793, 796);
    $found = $others_found = false;

    foreach ( WC()->cart->get_cart() as $cart_item ){
        if (in_array( $cart_item['data']->get_id(), $products_ids ) ){
            $found = true;
        } else {
            $others_found = true;
        }
    }

    if( $found && ! $others_found )
        $needs_shipping_address = true;
    else
        $needs_shipping_address = false;

    return $needs_shipping_address;
} 

Код входит в файл function.php вашей активной дочерней темы (или активной темы).

...