Невозможно выбрать метод доставки после фильтрации 'woocommerce_package_rates'Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Невозможно выбрать метод доставки после фильтрации 'woocommerce_package_rates'

Сообщение Anonymous »

Я только что написал этот фильтр, чтобы отключить не бесплатные методы доставки, когда доступна бесплатная доставка: < /p>

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

add_filter( 'woocommerce_package_rates', 'disable_paid_shipping', 9999, 2 );
function disable_paid_shipping( $rates, $package ) {
$free_rates = array();

foreach ( $rates as $i => $rate ) {
if ( str_contains( $rate->label, "gratuita" ) OR str_contains( $rate->label, "gratuito" ) ) {
$free_rates[] = $rate;
}

if ( str_contains( $rate->id, "local") ) {
$local = $rate;
}

if ( str_contains( $rate->id, "fermopoint") ) {
$fermopoint = $rate;
}
}

if ( !empty( $free_rates ) ) {
if ( isset($fermopoint) ) {
$fermopoint->cost = 0;
$fermopoint->label .= ' gratuito';
array_unshift( $free_rates, $fermopoint );
}

if ( isset($local) ) {
$free_rates[] = $local;
}

$rates = $free_rates;
}

return $rates;
}
< /code>
Код работает, как и ожидалось, если только для двух неожиданных событий происходит: < /p>

 Метод доставки больше не выбран по умолчанию. (Как на странице Cart, так и на странице оформления заказа) >
Чтобы решить 1 -ю проблему при оформлении заказа, я могу обойтись, вынуждая выбор через крючок на woocommerce_before_cart 
(хотя это выглядит как принудительный трюк).
Для 2 -й проблемы я понятия не имею.
Предложения?

Подробнее здесь: https://stackoverflow.com/questions/754 ... kage-rates
Ответить

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

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

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

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

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