Как получить самую низкую стоимость доставки FLAT RATE в WooCommerce - PullRequest
0 голосов
/ 04 октября 2019

То, что я хочу, это просто: я хочу отобразить самую низкую фиксированную стоимость доставки на странице продукта в WooCommerce, чтобы я мог отобразить: «Мы уже доставляем заказы от € ...».

Это неНеважно, какая зона доставки в стране клиента активна ... Мне просто нужна общая (статическая) самая низкая фиксированная стоимость.

Пока у меня есть это:

foreach ((array) $delivery_zones as $key => $delivery_zone ) {

    $shipping_costs = [];

    foreach ($delivery_zone['shipping_methods'] as $value) {
        $shipping_costs[] = $value->cost;
        break;
    }

    echo (min($shipping_costs));
}                           

Ноэто по-прежнему выводит ВСЕ фиксированные ставки: fi: 1,99 3,99 5,99

Как отображать только самую низкую (в данном случае 1,99) скорость?

Много тнк!

1 Ответ

1 голос
/ 04 октября 2019

Я думаю, что это простая ошибка, пожалуйста, попробуйте это:

function get_lowest_shipping_flat_rate_1()
{
    $delivery_zones = WC_Shipping_Zones::get_zones(); 

    //define the array outside of the loop
    $shipping_costs = [];
    $min_zone = "";

    //get all costs in a loop and store them in the array
    foreach ((array) $delivery_zones as $key => $the_zone ) {

    foreach ($the_zone['shipping_methods'] as $value) {
        $shipping_costs[] = $value->cost;
        if(min($shipping_costs) == $value->cost) $min_zone = $the_zone['zone_name'];
        }
    }

    $content = $min_zone . " - " . get_woocommerce_currency_symbol() . " " . min($shipping_costs);

    return $content;
}
...