d3nnis adlı üyeden alıntı: mesajı görüntüle
hocam çok yanlış anlamışım ben, pardon.
Şimdi aşağıdaki kodları şu şartlarda denedim ve istediğinizi elde ettim. Farklı gönderim yöntemleri kullanıyorsanız belirtmeniz gerekecek:

Sabit fiyat gönderim yöntemi kullanıyorum: 20 TL
Müşteri kapıda ödeme seçerse 15 TL indirim yapıyorum.

add_action( 'woocommerce_cart_calculate_fees', 'kapida_odeme_kargo' );
function kapida_odeme_kargo ( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    $chosen_payment_id = WC()->session->get('chosen_payment_method');

    if ( empty( $chosen_payment_id ) )
        return;

    $subtotal = $cart->subtotal;

    $odeme_yontemileri = array(
        'cod' => -15, // sabit fiyat kargo ücretinden 15TL düştük
    );


    foreach ( $odeme_yontemileri as $payment_id => $fee_cost ) {
        if ( $chosen_payment_id === $payment_id ) {
            $cart->add_fee( __('Kapıda Ödeme İndirimi', 'woocommerce'), $fee_cost, true );
        }
    }
}

// ödeme yöntemi değiştiğinde fiyatı değiştirmek için js
add_action( 'woocommerce_checkout_init', 'payment_methods_refresh_checkout' );
function payment_methods_refresh_checkout() {
    wc_enqueue_js( "jQuery( function($){
        $('form.checkout').on('change', 'input[name=payment_method]', function(){
            $(document.body).trigger('update_checkout');
        });
    });");
}
hocam teşekkür ederim bunu girince 250 tl üstü kargo ücretsiz bende ordada düşüyor ürün fiyatından 20 tl düşmüş oluyor.

https://prnt.sc/26k6c2l

burada ürün fiyatını alması gerek 20 tl düşmemesi gerekiyor, ücretsiz kargoda yani 250 tl üstünde bu kodun çalışmaması gerekiyor o zaman olmuş olacak sanırım 250 tl üstünde kargo ve kapıda ödeme ücretsiz sadece ürün fiyatını alıyor bu kadar.