Egy adott fizetési opció eltűntetése, ha csak egy bizonyos kategóriájú terméket tartalmaz a kosaram


#1

Sziasztok!

Valaki tud arra megoldást, hogy hogyan lehet eltüntetni egy adott (jelen esetben az utánvétes fizetést) fizetési opciót a pénztár oldalról, amennyiben a kosarunkban csak egy adott kategóriából (327) találhatóak meg termékek?

Az alábbi kóddal annyit már sikerült elérni, hogy amennyiben a kosár tartalmaz az adott kategóriából (327) termékeket, akkor az utánvétes fizetés eltűnik. Viszont a cél az, hogy csak abban az esetben történjen ez meg, ha más kategóriából nem található meg termék a kosárban:

add_filter( 'woocommerce_available_payment_gateways', 'wp_unset_gateway_by_category' );
  
function wp_unset_gateway_by_category( $available_gateways ) {
global $woocommerce;
$unset = false;
$category_ids = array(327);
foreach ( $woocommerce->cart->cart_contents as $key => $values ) {
    $terms = get_the_terms( $values['product_id'], 'product_cat' );    
    foreach ( $terms as $term ) {        
        if ( in_array( $term->term_id, $category_ids ) ) {
            $unset = true;
            break;
        }
    }
}
    if ( $unset == true ) unset( $available_gateways['cod'] );
    return $available_gateways;
}

Előre is köszönöm a segítségeteket!