Вы используете оператор сравнения '===' вместо оператора присваивания. Вот ваш обновленный код, который вы можете попробовать:
function mx_shop_shipping_price( $rates, $package ) {
//Shipping Mode 1
if ( WC()->cart->cart_contents_count < 4 ) {
return array_filter($rates, function (WC_Shipping_Rate $rate) {
return $rates[$rate_key]->label = __( 'Shipping Mode 1', 'woocommerce' ); // Shipping Mode 1
});
}
//Shipping Mode 2
if ( WC()->cart->cart_contents_count < 13 ) {
return array_filter($rates, function (WC_Shipping_Rate $rate) {
return $rates[$rate_key]->label = __( 'Shipping Mode 2', 'woocommerce' );
});
}
//Shipping Mode 3
return array_filter($rates, function (WC_Shipping_Rate $rate) {
return $rates[$rate_key]->label = __( 'Shipping Mode 3', 'woocommerce' );;
});
}
add_filter( 'woocommerce_package_rates', 'mx_shop_shipping_price', 10, 2 );
Вам необходимо обновить кэши доставки:
1) Сначала этот код ужесохранено в вашем файле function.php.
2) В настройках доставки войдите в зону доставки и отключите метод доставки и нажмите «сохранить».
Затем снова включите этот способ доставки и «сохранить». Вы сделали.
Вы можете найти ответ, уже даный для такого требования здесь