woocommerce скрыть способы доставки условно по номеру

RFC 6266 описывает « Использование поля заголовка Content-Disposition в протоколе передачи гипертекста (HTTP) ». Цитата из этого:

6. Вопросы интернационализации

Параметр «filename*» (, раздел 4.3 ), используя кодировку, определенную в [ RFC5987 ], позволяет сервер для передачи символов вне набора символов ISO-8859-1, а также необязательно указать используемый язык.

И в разделе примеров :

Этот пример аналогичен приведенному выше, но добавляет параметр «filename» для совместимости с пользовательскими агентами, не реализующими RFC 5987 :

Content-Disposition: attachment;
                     filename="EURO rates";
                     filename*=utf-8''%e2%82%ac%20rates

Примечание. Те пользовательские агенты, которые не поддерживают кодировку RFC 5987 , игнорируют «filename*», когда это происходит после «filename».

In Приложение D также имеется длинный список предложений по повышению интероперабельности. Он также указывает на сайт, который сравнивает реализации . Текущие тесты с полным прохождением, подходящие для общих имен файлов, включают в себя:

  • attwithisofnplain : простое имя файла ISO-8859-1 с двойными кавычками и без кодирования. Для этого требуется имя файла, которое является ISO-8859-1 и не содержит знаков процента, по крайней мере, не перед шестнадцатеричными цифрами.
  • attfnboth : два параметра в порядке описано выше. Должен работать для большинства имен файлов в большинстве браузеров, хотя IE8 будет использовать параметр «filename».

Что RFC 5987 в свою очередь ссылается на RFC 2231 , который описывает фактический формат. 2231 в первую очередь предназначен для почты, а 5987 сообщает нам, какие части могут использоваться для заголовков HTTP. Не путайте это с заголовками MIME, используемыми внутри тела multipart/form-data HTTP , который определен, в частности, RFC 2388 ( раздел 4.4 )) и проект HTML 5 .

0
задан LoicTheAztec 19 March 2019 в 15:50
поделиться

1 ответ

Следующее включит только один определенный способ доставки, если в корзине более 15 товаров:

add_filter( 'woocommerce_package_rates', 'hide_shipping_methods_based_on_item_count', 10, 2 );
function hide_shipping_methods_based_on_item_count( $rates, $package ) {
    // HERE the targeted shipping method ID (see the attribute "value" of the related shipping method input field)
    $targeted_method_id = 'flat_rate:12'; // <== Replace with your DHL shipping method ID

    // HERE the articles count threshold
    $more_than = 15;

    // Cart items count
    $item_count = WC()->cart->get_cart_contents_count();
    if( WC()->cart->get_cart_contents_count() > $more_than ) {
        foreach ( $rates as $rate_key => $rate ) {
            if ( $rate->id != $targeted_method_id ) {
                unset($rates[$rate_key]);
            }
        }
    }

    return $rates;
}

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

Обновите кэши доставки: (обязательно)

  1. Этот код уже сохранен в файле function.php вашей активной темы. [ 112]
  2. Корзина пуста
  3. В настройках зоны доставки отключите / сохраните любой способ доставки, затем включите обратно / сохраните.

Вы закончили , и вы можете проверить это.

0
ответ дан LoicTheAztec 19 March 2019 в 15:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: