merhaba arkadaşlar,

woocommerce bir sitede aşağıdaki kurguyu yapmak istiyorum fakat bir türlü başarılı olamadım, tecrübeli arkadaş varsa yardımcı olabilir mi ?

1000TL üzeri alışverişlerde Ücretsiz kargo seçeneği + kapıda ödeme seçeneği çıkmalı, standart kargo bedeli çıkmamalı
1000TL altındaki alışverişlerde standart kargo + kapıda ödeme seçeneği çıkmalı, ücretsiz kargo bedeli çıkmamalı

WC Hide shipping eklentisi denedim, maalesef istediğim sonucu vermiyor. Aşağıdaki kod bloğunu da code snippet ile ekledim fakat istediğimi başaramadım, ücretsiz kargo olduğunda hepsini gizliyorlar.

/**
 * EĞER ÜCRETSİZ GÖNDERİ AKTİF İSE DİĞER GÖNDERİ YÖNTEMLERİNİ GİZLE
 */
function hide_shipping_when_free_is_available( $rates, $package ) {
    $new_rates = array();
    foreach ( $rates as $rate_id => $rate ) {
        // Only modify rates if free_shipping is present.
        if ( 'free_shipping' === $rate->method_id ) {
            $new_rates[ $rate_id ] = $rate;
            break;
        }
    }
    if ( ! empty( $new_rates ) ) {
        //Save local pickup if it's present.
        foreach ( $rates as $rate_id => $rate ) {
            if ('local_pickup' === $rate->method_id ) {
                $new_rates[ $rate_id ] = $rate;
                break;
            }
        }
        return $new_rates;
    }
    return $rates;
}
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );
edit : biraz daha oynayarak istediğimi yapabildim, aynı dertten muzdarip olanlar için uyguladığım çözüm şu şekilde;
Kapıda ödemeyı ayrı bir gönderim biçimi olmaktan çıkartıp standart ve ücretsiz kargoya dahil ettim.
wp hide shipping eklentisi ile ücretsiz kargo olduğunda diğer methodları devre dışı bıraktım
ayrıca aşağıdaki kod bloğunu code snippet ile functions.php içerisine kapıda ödemeye ek bedel almak için yerleştirdim. (fee 5 olan yer güncelleniyor)

// KAPIDA ÖDEMEDE EKSTRA ÜCRET EKLEME
add_action( 'woocommerce_cart_calculate_fees', 'custom_handling_fee', 10, 1 );
function custom_handling_fee ( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( 'cod' === WC()->session->get('chosen_payment_method') ) {
        $fee = 5;
        $cart->add_fee( 'Kapıda Ödeme Ekstra Ücret', $fee, true );
    }
}
add_action( 'wp_footer', 'custom_checkout_jqscript' );
function custom_checkout_jqscript() {
    if ( is_checkout() && ! is_wc_endpoint_url() ) :
    ?>
    <script type="text/javascript">
    jQuery( function($){
        $('form.checkout').on('change', 'input[name="payment_method"]', function(){
            $(document.body).trigger('update_checkout');
        });
    });
    </script>
    <?php
    endif;
}