• 06-04-2026, 10:13:03
    #1
    Wordpress WooCommerce: Sadece IBAN ile Ödemeye İndirim Mümkün müdür? nasıl yapabilirim? kredi kartı sanal pos ile ödemede indirim istemiyorum.
  • 06-04-2026, 10:13:44
    #2
    Güzel konu takip+
  • 06-04-2026, 10:26:00
    #3
    F. STACK WEB + MOBILE DEV
    https://wordpress.org/plugins/elex-d...ayment-method/
  • 06-04-2026, 10:31:03
    #4
    Maharaja adlı üyeden alıntı: mesajı görüntüle
    Wordpress WooCommerce: Sadece IBAN ile Ödemeye İndirim Mümkün müdür? nasıl yapabilirim? kredi kartı sanal pos ile ödemede indirim istemiyorum.
    Merhaba,
    functions.php ye yapıştırınız :

    add_action( 'woocommerce_cart_calculate_fees', 'odeme_yontemi_indirimi' );
    function odeme_yontemi_indirimi( $cart ) {
        if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
    
        $secilen_odeme = WC()->session->get( 'chosen_payment_method' );
    
       
        if ( $secilen_odeme !== 'bacs' ) return;
    
        $indirim_orani  = 15; // İstediğiniz yüzdeliğe göre değiştirin
        $ara_toplam     = $cart->get_subtotal();
        $indirim_tutari = $ara_toplam * ( $indirim_orani / 100 );
    
        $cart->add_fee(
            'Havale/EFT İndirimi (%' . $indirim_orani . ')',
            -$indirim_tutari,
            true 
        );
    }
    
    
    add_action( 'wp_footer', 'odeme_degisince_sepeti_guncelle' );
    function odeme_degisince_sepeti_guncelle() {
        if ( ! is_checkout() ) return;
        ?>
        <script>
        jQuery(function($){
            $('form.checkout').on('change', 'input[name="payment_method"]', function(){
                $('body').trigger('update_checkout');
            });
        });
        </script>
        <?php
    }
  • 06-04-2026, 10:33:47
    #5
    Maharaja adlı üyeden alıntı: mesajı görüntüle
    Wordpress WooCommerce: Sadece IBAN ile Ödemeye İndirim Mümkün müdür? nasıl yapabilirim? kredi kartı sanal pos ile ödemede indirim istemiyorum.
    genelde iban indirimi yapan siteler phising onun için dikkat edin hocam soruşturma açılabılıyor
  • 06-04-2026, 11:14:52
    #6
    Anestezy adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    functions.php ye yapıştırınız :

    add_action( 'woocommerce_cart_calculate_fees', 'odeme_yontemi_indirimi' );
    function odeme_yontemi_indirimi( $cart ) {
        if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
    
        $secilen_odeme = WC()->session->get( 'chosen_payment_method' );
    
       
        if ( $secilen_odeme !== 'bacs' ) return;
    
        $indirim_orani  = 15; // İstediğiniz yüzdeliğe göre değiştirin
        $ara_toplam     = $cart->get_subtotal();
        $indirim_tutari = $ara_toplam * ( $indirim_orani / 100 );
    
        $cart->add_fee(
            'Havale/EFT İndirimi (%' . $indirim_orani . ')',
            -$indirim_tutari,
            true 
        );
    }
    
    
    add_action( 'wp_footer', 'odeme_degisince_sepeti_guncelle' );
    function odeme_degisince_sepeti_guncelle() {
        if ( ! is_checkout() ) return;
        ?>
        <script>
        jQuery(function($){
            $('form.checkout').on('change', 'input[name="payment_method"]', function(){
                $('body').trigger('update_checkout');
            });
        });
        </script>
        <?php
    }
    Hocam çok teşekkürler kod çalıştı fakat ufak bir detay var. Acaba şöyle bırsey mumkun mu?

    yuzde değil de 5000 tl yerine 3500 tl gibi birşey mesela? bir de sadece tek bir ürün için yapabilir miyiz? Mesela ürün ID633
  • 06-04-2026, 11:20:43
    #7
    Maharaja adlı üyeden alıntı: mesajı görüntüle
    Hocam çok teşekkürler kod çalıştı fakat ufak bir detay var. Acaba şöyle bırsey mumkun mu?

    yuzde değil de 5000 tl yerine 3500 tl gibi birşey mesela? bir de sadece tek bir ürün için yapabilir miyiz? Mesela ürün ID633
    ben teşekkür ederim buyurun hocam :

    add_action( 'woocommerce_cart_calculate_fees', 'urun_633_havale_indirimi' );
    function urun_633_havale_indirimi( $cart ) {
        if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
    
        
        $hedef_urun_id  = 633;
        $normal_fiyat   = 5000;
        $havale_fiyati  = 3500;
        $indirim_tutari = $normal_fiyat - $havale_fiyati; // 1500 TL
    
        $secilen_odeme  = WC()->session->get( 'chosen_payment_method' );
    
       
        if ( $secilen_odeme !== 'bacs' ) return;
    
       
        $urun_sepette = false;
        foreach ( $cart->get_cart() as $item ) {
            if ( $item['product_id'] == $hedef_urun_id ) {
                $urun_sepette = true;
                break;
            }
        }
    
        if ( ! $urun_sepette ) return;
    
        $cart->add_fee(
            'Havale/EFT İndirimi (ID:' . $hedef_urun_id . ')',
            -$indirim_tutari,
            true 
        );
    }
    
    
    add_action( 'wp_footer', 'odeme_degisince_sepeti_guncelle' );
    function odeme_degisince_sepeti_guncelle() {
        if ( ! is_checkout() ) return;
        ?>
        <script>
        jQuery(function($){
            $('form.checkout').on('change', 'input[name="payment_method"]', function(){
                $('body').trigger('update_checkout');
            });
        });
        </script>
        <?php
    }
    şu an ki güncelleme de yapı biraz daha sorun yaratabilir ilerleyen süreçlerde. Eklenti olarak geliştirilmesinde fayda var

    birden fazla ürüne yapmak istediğinizde :

    $indirimli_urunler = [
    633 => [ 'normal' => 5000, 'havale' => 3500 ],
    741 => [ 'normal' => 8000, 'havale' => 6000 ],
    ];

    foreach ( $cart->get_cart() as $item ) {
    $id = $item['product_id'];
    if ( isset( $indirimli_urunler[ $id ] ) ) {
    $tutar = $indirimli_urunler[$id]['normal'] - $indirimli_urunler[$id]['havale'];
    $cart->add_fee( 'Havale İndirimi (ID:' . $id . ')', -$tutar, true );
    }
    }

    eklenti olarak yapıldığında panelden seç / vazgeç gibi pratik olarak daha iyi kullanabilirsiniz. Bu kodları tabi ki yardım etmek amaçlı paylaşıyorum fakat özel eklenti olarak kodlanmasını isterseniz ulaşabilirsiniz daha önce bir müşterime yaptım. Umarım işinize yarar sevgiler...
  • 06-04-2026, 11:31:43
    #8
    Anestezy adlı üyeden alıntı: mesajı görüntüle
    ben teşekkür ederim buyurun hocam :

    add_action( 'woocommerce_cart_calculate_fees', 'urun_633_havale_indirimi' );
    function urun_633_havale_indirimi( $cart ) {
        if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
    
        
        $hedef_urun_id  = 633;
        $normal_fiyat   = 5000;
        $havale_fiyati  = 3500;
        $indirim_tutari = $normal_fiyat - $havale_fiyati; // 1500 TL
    
        $secilen_odeme  = WC()->session->get( 'chosen_payment_method' );
    
       
        if ( $secilen_odeme !== 'bacs' ) return;
    
       
        $urun_sepette = false;
        foreach ( $cart->get_cart() as $item ) {
            if ( $item['product_id'] == $hedef_urun_id ) {
                $urun_sepette = true;
                break;
            }
        }
    
        if ( ! $urun_sepette ) return;
    
        $cart->add_fee(
            'Havale/EFT İndirimi (ID:' . $hedef_urun_id . ')',
            -$indirim_tutari,
            true 
        );
    }
    
    
    add_action( 'wp_footer', 'odeme_degisince_sepeti_guncelle' );
    function odeme_degisince_sepeti_guncelle() {
        if ( ! is_checkout() ) return;
        ?>
        <script>
        jQuery(function($){
            $('form.checkout').on('change', 'input[name="payment_method"]', function(){
                $('body').trigger('update_checkout');
            });
        });
        </script>
        <?php
    }
    şu an ki güncelleme de yapı biraz daha sorun yaratabilir ilerleyen süreçlerde. Eklenti olarak geliştirilmesinde fayda var

    birden fazla ürüne yapmak istediğinizde :

    $indirimli_urunler = [
    633 => [ 'normal' => 5000, 'havale' => 3500 ],
    741 => [ 'normal' => 8000, 'havale' => 6000 ],
    ];

    foreach ( $cart->get_cart() as $item ) {
    $id = $item['product_id'];
    if ( isset( $indirimli_urunler[ $id ] ) ) {
    $tutar = $indirimli_urunler[$id]['normal'] - $indirimli_urunler[$id]['havale'];
    $cart->add_fee( 'Havale İndirimi (ID:' . $id . ')', -$tutar, true );
    }
    }

    eklenti olarak yapıldığında panelden seç / vazgeç gibi pratik olarak daha iyi kullanabilirsiniz. Bu kodları tabi ki yardım etmek amaçlı paylaşıyorum fakat özel eklenti olarak kodlanmasını isterseniz ulaşabilirsiniz daha önce bir müşterime yaptım. Umarım işinize yarar sevgiler...
    hocam cok tesekkur ederim emeğinize sağlık.
  • 06-04-2026, 12:31:57
    #9
    Anestezy adlı üyeden alıntı: mesajı görüntüle
    ben teşekkür ederim buyurun hocam :

    add_action( 'woocommerce_cart_calculate_fees', 'urun_633_havale_indirimi' );
    function urun_633_havale_indirimi( $cart ) {
        if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
    
        
        $hedef_urun_id  = 633;
        $normal_fiyat   = 5000;
        $havale_fiyati  = 3500;
        $indirim_tutari = $normal_fiyat - $havale_fiyati; // 1500 TL
    
        $secilen_odeme  = WC()->session->get( 'chosen_payment_method' );
    
      
        if ( $secilen_odeme !== 'bacs' ) return;
    
      
        $urun_sepette = false;
        foreach ( $cart->get_cart() as $item ) {
            if ( $item['product_id'] == $hedef_urun_id ) {
                $urun_sepette = true;
                break;
            }
        }
    
        if ( ! $urun_sepette ) return;
    
        $cart->add_fee(
            'Havale/EFT İndirimi (ID:' . $hedef_urun_id . ')',
            -$indirim_tutari,
            true
        );
    }
    
    
    add_action( 'wp_footer', 'odeme_degisince_sepeti_guncelle' );
    function odeme_degisince_sepeti_guncelle() {
        if ( ! is_checkout() ) return;
        ?>
        <script>
        jQuery(function($){
            $('form.checkout').on('change', 'input[name="payment_method"]', function(){
                $('body').trigger('update_checkout');
            });
        });
        </script>
        <?php
    }
    şu an ki güncelleme de yapı biraz daha sorun yaratabilir ilerleyen süreçlerde. Eklenti olarak geliştirilmesinde fayda var

    birden fazla ürüne yapmak istediğinizde :

    $indirimli_urunler = [
    633 => [ 'normal' => 5000, 'havale' => 3500 ],
    741 => [ 'normal' => 8000, 'havale' => 6000 ],
    ];

    foreach ( $cart->get_cart() as $item ) {
    $id = $item['product_id'];
    if ( isset( $indirimli_urunler[ $id ] ) ) {
    $tutar = $indirimli_urunler[$id]['normal'] - $indirimli_urunler[$id]['havale'];
    $cart->add_fee( 'Havale İndirimi (ID:' . $id . ')', -$tutar, true );
    }
    }

    eklenti olarak yapıldığında panelden seç / vazgeç gibi pratik olarak daha iyi kullanabilirsiniz. Bu kodları tabi ki yardım etmek amaçlı paylaşıyorum fakat özel eklenti olarak kodlanmasını isterseniz ulaşabilirsiniz daha önce bir müşterime yaptım. Umarım işinize yarar sevgiler...
    Gayet net ve açıklayıcı ellerine sağlık hocam. Faydalı bilgi.