У меня есть функция, которая фильтрует вес тележки, чтобы установить правильный режим экспедиции. Работает нормально. У меня есть еще одна функция для фильтрации режима экспедиции, когда общая сумма корзины превышает 80 €. Эта последняя функция не работает вообще. Я провел много исследований, но я все еще не понимаю. Если кто-то может помочь мне, он добро пожаловать! Извините за мой английский sh, я французский ... :) Вот код в функциях. php woocommerce, это первая функция, которая не работает, я не скопировал всю вторую функцию потому что она отлично работает:
/* Livraison offerte au delà de 80 € */
add_filter( 'woocommerce_package_rates','shipping_rates_based_on_cart_amount', 10, 2 );
function shipping_rates_based_on_cart_amount( $rates, $package ) {
if ( WC()->cart->subtotal >=80 ) {
if ( isset( $rates['service_point_shipping_method:89'], $rates['flat_rate:88'] ) )
unset ($rates['service_point_shipping_method:56'],
$rates['service_point_shipping_method:57'],
$rates['service_point_shipping_method:58'],
$rates['service_point_shipping_method:59'],
$rates['service_point_shipping_method:60'],
$rates['service_point_shipping_method:61'],
$rates['service_point_shipping_method:62'],
$rates['service_point_shipping_method:63'],
$rates['service_point_shipping_method:64'],
$rates['service_point_shipping_method:65'],
$rates['service_point_shipping_method:66'],
$rates['service_point_shipping_method:67'],
$rates['service_point_shipping_method:68'],
$rates['flat_rate:75'],
$rates['flat_rate:76'],
$rates['flat_rate:77'],
$rates['flat_rate:78'],
$rates['flat_rate:79'],
$rates['flat_rate:80'],
$rates['flat_rate:81'],
$rates['flat_rate:82'],
$rates['flat_rate:83'],
$rates['flat_rate:84'],
$rates['flat_rate:85'],
$rates['flat_rate:86'],
$rates['flat_rate:87'] );
}
return $rates;
}
/* Livraison par poids */
add_filter('woocommerce_package_rates', 'bbloomer_woocommerce_tiered_shipping', 9999, 2 );
function bbloomer_woocommerce_tiered_shipping( $rates, $package ) {
/* jusqu'à 250g inclus */
if ( WC()->cart->get_cart_contents_weight() <=250 ) {
if ( isset( $rates['service_point_shipping_method:56'], $rates['flat_rate:75'] ) )
unset ($rates['service_point_shipping_method:88'],
$rates['service_point_shipping_method:57'],
$rates['service_point_shipping_method:58'],
$rates['service_point_shipping_method:59'],
$rates['service_point_shipping_method:60'],
$rates['service_point_shipping_method:61'],
$rates['service_point_shipping_method:62'],
$rates['service_point_shipping_method:63'],
$rates['service_point_shipping_method:64'],
$rates['service_point_shipping_method:65'],
$rates['service_point_shipping_method:66'],
$rates['service_point_shipping_method:67'],
$rates['service_point_shipping_method:68'],
$rates['flat_rate:89'],
$rates['flat_rate:76'],
$rates['flat_rate:77'],
$rates['flat_rate:78'],
$rates['flat_rate:79'],
$rates['flat_rate:80'],
$rates['flat_rate:81'],
$rates['flat_rate:82'],
$rates['flat_rate:83'],
$rates['flat_rate:84'],
$rates['flat_rate:85'],
$rates['flat_rate:86'],
$rates['flat_rate:87'] );
}
/* jusqu'à 500g inclus */
elseif ( WC()->cart->get_cart_contents_weight() >250 && WC()->cart->get_cart_contents_weight() <=500 ) {
if ( isset( $rates['service_point_shipping_method:57'], $rates['flat_rate:76'] ) )
unset ($rates['service_point_shipping_method:88'],
$rates['service_point_shipping_method:56'],
$rates['service_point_shipping_method:58'],
$rates['service_point_shipping_method:59'],
$rates['service_point_shipping_method:60'],
$rates['service_point_shipping_method:61'],
$rates['service_point_shipping_method:62'],
$rates['service_point_shipping_method:63'],
$rates['service_point_shipping_method:64'],
$rates['service_point_shipping_method:65'],
$rates['service_point_shipping_method:66'],
$rates['service_point_shipping_method:67'],
$rates['service_point_shipping_method:68'],
$rates['flat_rate:89'],
$rates['flat_rate:75'],
$rates['flat_rate:77'],
$rates['flat_rate:78'],
$rates['flat_rate:79'],
$rates['flat_rate:80'],
$rates['flat_rate:81'],
$rates['flat_rate:82'],
$rates['flat_rate:83'],
$rates['flat_rate:84'],
$rates['flat_rate:85'],
$rates['flat_rate:86'],
$rates['flat_rate:87'] );
}