Чтобы заставить его работать с классом доставки "Slugs" , вместо этого вы будете использовать метод WC_Product
get_shipping_class()
:
add_filter( 'woocommerce_package_rates', 'hide_shipping_method_based_on_shipping_class', 10, 2 );
function hide_shipping_method_based_on_shipping_class( $rates, $package )
{
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
// HERE define your shipping class SLUG
$class_slug = 'large';
// HERE define the shipping method to hide
$method_key_id = 'flat_rate:7';
// Checking in cart items
foreach( WC()->cart->get_cart() as $cart_item ){
// If we find the shipping class
if( $cart_item['data']->get_shipping_class() == $class_slug ){
unset($rates[$method_key_id]); // Remove the targeted method
break; // Stop the loop
}
}
return $rates;
}
Код помещается в файл function.phpваша активная дочерняя тема (или активная тема) ...
Иногда вам может понадобиться обновить методы доставки, идущие в районы доставки, а затем отключить / сохранить и повторно включить / сохранить вашу "квартиру"способы доставки".
Чтобы найти идентификаторы методов доставки и идентификаторы классов доставки, см. ниже ...
Поиск класса доставкиID.
1) В базе данных под таблицей wp_terms
:
Выполните поиск по названию термина или слаге термина, и вы получите идентификатор термина (идентификатор класса доставки).
2) В настройках доставки Woocommerce, редактирующих «Единую ставку», с помощью инструмента html-инспектора вашего браузера, проверьте поле класса доставки, например:
![enter image description here](https://i.stack.imgur.com/AlATr.png)
В атрибуте имени импута у вас есть woocommerce_flat_rate_class_cost_64
.Таким образом, 64 является идентификатором для класса доставки.
Получите идентификатор метода доставки:
Чтобы получить связанные методы доставкиидентификаторы ставок , что-то вроде flat_rate:12
, проверьте с помощью инспектора кода браузера каждый связанный атрибут переключателя name
, например:
![enter image description here](https://i.stack.imgur.com/AlATr.png)