Как Salam o Alikum, я пытаюсь скрыть ca sh при оплате доставки, если товар в корзине относится к классу доставки NOCOD. Я создал класс доставки с идентификатором 723, я пытался получить помощь отовсюду в Интернете, но не мог понять, где я делаю неправильно.
Основываясь на веб-серфинге, я написал код и добавил в тему functions. php.
Вот фрагмент кода.
//disabling COD if shipping class is NOCOD.
add_filter('woocommerce_available_payment_gateways', 'hide_cod_if_shipping_class_is_nocod', 10, 2);
//fuction
function hide_cod_if_shipping_class_is_nocod( $available_gateways ) {
$shipping_class_target_id = 723; // shipping class ID
$in_cart = false;
// Not in backend (admin)
if( is_admin() ) {
return $available_gateways;
}
else{
foreach ( WC()->cart->get_cart_contents() as $key => $values ) {
if ( $values[ 'data' ]->get_shipping_class_id() == $shipping_class_target_id ) {
$in_cart = true;
break;
}
}
}
// Remove Cash on delivery (cod) payment gateway for products belongs to NOCOD shipping class
if($in_cart){
unset($available_gateways['cod']);
}
// unset 'cod'
return $available_gateways;
}
Но он не работает и не скрывается Ca sh при доставке на странице оформления заказа . Мы будем благодарны за любую помощь, предложение или совет, спасибо. :)