• 05-08-2021, 17:18:00
    #1
    Merhaba Wocommercede kapıda kredi kartı seçeneğine sepet fiyatının yüzde 3'ünü eklemek istiyorum şöyle bir kod var


    add_action( 'woocommerce_cart_calculate_fees', 'custom_handling_fee', 10, 1 );
    function custom_handling_fee ( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
    return;
    
    if ( 'wookkkotr' === WC()->session->get('chosen_payment_method') ) {
    $fee = 5;
    $cart->add_fee( 'Kapıda Kredi Kartı ile Ö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;
    }
    [COLOR=#D9DAE9][FONT=Open Sans][SIZE=2][/SIZE][/FONT][/COLOR]
    burdaki $fee değerini $cart+($cart*0.3) yapıyorum ama olmuyor yanlış mı ilerliyorum acaba


    Çözüm
    add_action( 'woocommerce_cart_calculate_fees', 'custom_percentage_fee', 20, 1 );
    function custom_percentage_fee ( $cart ) {
        if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return;
    
        if ( ! ( is_checkout() && ! is_wc_endpoint_url() ) )
            return; // Only checkout page
    
        $payment_method = WC()->session->get( 'chosen_payment_method' );
    
        if ( 'wookkkotr' == $payment_method ) {
            $surcharge = $cart->subtotal * 0.03;
            $cart->add_fee( 'Percentage Cost', $surcharge, true );
        }
    }
    
    // jQuery - Update checkout on methode payment change  
    add_action( 'wp_footer', 'custom_checkout_jqscript' );
    function custom_checkout_jqscript() {
        if ( ! ( is_checkout() && ! is_wc_endpoint_url() ) )
            return; // Only checkout page
        ?>
        <script type="text/javascript">
        jQuery( function($){
            $('form.checkout').on('change', 'input[name="payment_method"]', function(){
                $(document.body).trigger('update_checkout');
            });
        });
        </script>
        <?php
    }
    [COLOR=#D9DAE9][FONT=Open Sans][SIZE=2][/SIZE][/FONT][/COLOR]
  • 05-08-2021, 17:23:44
    #2
    İşlem hatanız var, örneğin ücret 50TL öncelikle 50TL'nin %3 ünü alıcaksınız, ardından çıkan değeri ekleme yapacaksınız.

    Örnek;
    <?php
    $sayimiz=28; // 28'in %8'ini alalım.
    $sonuc= (28*8)/100; // 8'le çarpıp 100'e böldük.
    echo $sonuc; //2.24 sonucuna ulaştık. Yani 28'in %8'i 2.24'müş.
    ?>
    çıkan sayıyıda ücrete + ile ekleme yapıcaksınız.
  • 05-08-2021, 18:07:41
    #3
    left adlı üyeden alıntı: mesajı görüntüle
    İşlem hatanız var, örneğin ücret 50TL öncelikle 50TL'nin %3 ünü alıcaksınız, ardından çıkan değeri ekleme yapacaksınız.

    Örnek;
    <?php
    $sayimiz=28; // 28'in %8'ini alalım.
    $sonuc= (28*8)/100; // 8'le çarpıp 100'e böldük.
    echo $sonuc; //2.24 sonucuna ulaştık. Yani 28'in %8'i 2.24'müş.
    ?>
    çıkan sayıyıda ücrete + ile ekleme yapıcaksınız.
    Teşekkür ederim hocam hallettim