WooCommerce使用PayPal 收款添加收款手续费

文 / @WordPress主题

为PayPal支付网关添加手续费的代码

做出口贸易的朋友都知道,在使用PayPal收款时必须支付手续费,但是WooCommerce默认的PayPal收款网关没有设置手续费的选项。那么老外是否默认收款方会支付手续费呢?

相信有智慧和耐心的你一定能够找到支持为PayPal收款设置手续费的插件。然而我太懒了,于是对WooCommercePayPal支付网关的相关代码进行了研究,发现我们可以通过两段代码来为PayPal添加手续费。

在PayPal支付网关中添加手续费的代码

不多说,上代码(由此可见我是多么没有耐心?)。老规矩,只需将代码添加到functions.php文件中即可。

    
add_action('woocommerce_cart_calculate_fees', function()
{
    $chosen_gateway = WC()->session->get('chosen_payment_method');
    if ($chosen_gateway == 'paypal') {
        if (!wc_prices_include_tax()) {
            $amount = WC()->cart->get_cart_contents_total() + WC()->cart->get_shipping_total();
        } else {
            $amount = WC()->cart->get_cart_contents_total() + WC()->cart->get_taxes_total() + WC()->cart->get_shipping_total();
        }
        WC()->cart->add_fee('PayPal手续费', $amount * 0.05);
    }
});
    

上述代码只是实现了选择PayPal支付网关时自动添加手续费。我们需要修改代码,使得在用户切换到其他支付网关时也可以自动添加手续费。修改很简单。

    
add_action('woocommerce_review_order_before_payment', function()
{
?>
<script type="text/javascript">
(function($) {
    $('form.checkout').on('change', 'input[name^="payment_method"]', function () {
        $('body').trigger('update_checkout');
    });
})(jQuery);
</script>
<?php
});
    

简而言之,上述代码的意思是:在支付方式改变时,触发购物车的自动更新方法。

同样地,通过修改支付网关名称和手续费数字,你也可以为其他支付网关设置手续费。相信这并不难。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。