Zusätzliche Paypal-Gebühr auf der Checkout-Seite von Woocommerce

Lesezeit: 2 Minuten

Zusatzliche Paypal Gebuhr auf der Checkout Seite von Woocommerce
Manik

In Woocommerce versuchen wir, der Bestellung zusätzliche Kosten hinzuzufügen, wenn über das Paypal-Zahlungsgateway gekauft wird.

Wir haben den Preis, der an Paypal gesendet wird, folgendermaßen geändert:

add_filter('woocommerce_paypal_args', 'addition_pay');

function addition_pay($paypal_args){
        $new_value=$paypal_args['amount_1']+10;
        $paypal_args['amount_1']=$new_value;
        return $paypal_args;
} 

Es funktioniert, aber das Problem ist, dass sich diese zusätzlichen Kosten nach dem Zahlungsvorgang nicht in Bestellungen und E-Mail-Benachrichtigungen widerspiegeln.

Lässt sich das irgendwie lösen? Jede Hilfe ist willkommen.

Sie sollten besser eine Gebühr basierend auf dem Zahlungsgateway (hier Paypal für Sie) hinzufügen, wie im Folgenden:

// Add a fee of 10.00 when Paypal is chosen
add_action( 'woocommerce_cart_calculate_fees', 'custom_paypal_additional_fee', 20, 1 );
function custom_paypal_additional_fee( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if( WC()->session->get( 'chosen_payment_method' ) == 'paypal' )
        $cart->add_fee( __( 'Paypal fee', 'woocommerce' ), 10.00 );
}

// Add the information on checkout paypal text gateways section
add_filter('woocommerce_gateway_icon', 'custom_paypal_gateway_text', 20, 2 );
function custom_paypal_gateway_text( $html, $gateway_id ) {
    if( $gateway_id == 'paypal' )
        $html .= ' <small class="paypal-fee">(+ '.wc_price(10.00).')</small>';

    return $html;
}

// Enable ajax update checkout event when choosing a gateway to refresh the fee
add_action('wp_footer', 'payment_gateways_update_checkout_event' );
function payment_gateways_update_checkout_event() {
    ?>
    <script type="text/javascript">
        (function($){
            $('form.checkout').on( 'change', 'input[name^="payment_method"]', function() {
                var t = { updateTimer: !1,  dirtyInput: !1,
                    reset_update_checkout_timer: function() {
                        clearTimeout(t.updateTimer)
                    },  trigger_update_checkout: function() {
                        t.reset_update_checkout_timer(), t.dirtyInput = !1,
                        $(document.body).trigger("update_checkout")
                    }
                };
                $(document.body).trigger('update_checkout')
            });
        })(jQuery);
    </script>
    <?php
}

Code geht in die Datei function.php Ihres aktiven Child-Themes (oder aktiven Themes). Getestet und funktioniert.

Geben Sie hier die Bildbeschreibung ein

916710cookie-checkZusätzliche Paypal-Gebühr auf der Checkout-Seite von Woocommerce

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy