Я пытаюсь скрыть класс доставки продукта. Если есть бесплатная почтовая доставка: Если вы берете этот продукт в корзину и на страницу корзины: https://lehorot-derech.co.il/product/dubbel/ если этот класс доставки находится в корзине:
shipping_method_0_advanced_free_shipping
"משלוח בדואר רשום ללא תוספת תשלום ב-0"
то я хочу скрыть этот класс доставки:
shipping_method_0_flexible_shipping_15_1
"משלוח בדואר רשום: ₪24"
Я нашел этот код, но я не знаю, как его настроить. Кто-нибудь помогите плз.
add_filter( 'woocommerce_package_rates', 'custom_hide_shipping_methods', 10, 2 );\
function custom_hide_shipping_methods( $rates, $package ) \{\
foreach( WC()->cart->get_cart() as $cart_item ) \{\
$product = $cart_item[ 'data' ]; // The WC_Product object\
if ( $product->get_shipping_class_id() == 513 ) \{ // <== ID OF MY SHIPPING_CLASS\
unset( $rates['flat_rate:2'] ); // Removing specific shipping method\
break; // we stop the loop\
\}\
\}\
return $rates;\
\}}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я не могу скрыть класс, вы можете удалить его:
UPD: лучшее решение, которое я могу предположить, проверяет, существует ли класс shipping_method_0_advanced_free_shipping, затем удаляет shipping_method_0_flexible_shipping_15_1, если не оставить второй, например
if ($( "#yourelement" ).hasClass("shipping_method_0_advanced_free_shipping")) {
$( "#yourelement" ).remove('.shipping_method_0_flexible_shipping_15_1');
} else {
$("#yourelement" ).attr("class","shipping_method_0_flexible_shipping_15_1");
}
это соответствует условию выше
что значит скрыть?
я имею в виду, когда один класс активен, тогда другой должен быть отключен
я хочу скрыть не удалить