Показывать только самый высокий класс доставки без плагина в Woocommerce - PullRequest
0 голосов
/ 30 октября 2018

Мне нужно отобразить только самую высокую стоимость доставки на экране оформления заказа WooCommerce. Если у пользователя есть 2 товара в корзине с различными затратами на доставку, следует рассчитывать только более высокий, в то время как настройки бэкэнда рассчитываются для каждого класса.

Я провел некоторое исследование по этому вопросу и не смог найти решение, поэтому я написал код самостоятельно. Это не работает, касса по-прежнему рассчитывает все расходы класса доставки для продуктов в корзине.

function only_show_most_expensive_shipping_rate( $rates, $package ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
      return $rates;

    $most_expensive_method = '';

    if ( is_array( $rates ) ) :
        foreach ( $rates as $key => $rate ) :

            if ( empty( $most_expensive_method ) || $rate->cost > $most_expensive_method->cost ) :
            $most_expensive_method = $rate;
            endif;
        endforeach;
    endif;
    // Return the most expensive rate when possible
    if ( ! empty( $most_expensive_method ) ) :
        return array( $most_expensive_method->id => $most_expensive_method );
    endif;
    return $rates;
}
add_action( 'woocommerce_package_rates', 'only_show_most_expensive_shipping_rate', 10, 2 );

Кто-нибудь может указать, что я делаю не так? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...