У меня есть сценарий, в котором мне нужно убрать кнопку «Разместить заказ» на экране оформления заказа для Woo-commerce.
В настоящее время у меня есть 2 способа доставки: Гибкая доставка и Фрахт
Если клиент добавляет товар с классом доставки «Фрахт» в свою корзину, мой текущий код отключает гибкий метод доставки, а затем метод фрахта отображает сообщение «Позвонить по текущим тарифам».
Проблемав том, что они все еще могут оформить заказ, не платя ничего за доставку, поэтому, если перевозка является единственным доступным способом доставки, мне нужно удалить или заменить кнопку заказа на место.
Вот код, который я сейчас использую, ибезуспешно пытаюсь изменить:
add_filter( 'woocommerce_package_rates', 'wc_hide_free_shipping_for_shipping_class', 10, 2 );
function wc_hide_free_shipping_for_shipping_class( $rates, $package ) {
$shipping_class_target = 332;
$in_cart = false;
foreach( WC()->cart->cart_contents as $key => $values ) {
if( $values[ 'data' ]->get_shipping_class_id() == $shipping_class_target ) {
$in_cart = true;
break;
}
}
if( $in_cart ) {
unset( $rates['flexible_shipping_7_2'] );
}
return $rates;
}
Есть простой хук или я что-то упустил?
Я какое-то время возился с этим и бью стену.