gues adlı üyeden alıntı: mesajı görüntüle
hocam girdim ama olmadı 20 tl koyuyor
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');
        });
    });");
}