根据WooCommerce中的特定付款方式添加费用

吉尼斯·达拉斯(Giannis Dallas)

在WooCommerce中,我需要为特定的支付网关支付自定义手续费。我从这里获得了这段代码:如何向WooCommerce Checkout添加手续费

这是我的代码:

add_action( 'woocommerce_cart_calculate_fees','endo_handling_fee' );
function endo_handling_fee() {
    global $woocommerce;

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

        $fee = 5.00;
    $woocommerce->cart->add_fee( 'Handling', $fee, true, 'standard' );
}

此功能会向所有交易添加费用。

是否可以调整此功能,使其仅适用于特定付款方式?

另一个问题是我希望将此费用应用到购物车上。是否有可能?

我也欢迎任何其他替代方法。我知道类似的“ Payment Gateway Based Fees” woo插件,但是我买不起。

LoicTheAztec

2020更新

注意:所有付款方式仅在“结帐”页面上可用。

以下代码将根据所选的付款方式有条件地增加特定费用:

// Add a custom fee (fixed or based cart subtotal percentage) by payment
add_action( 'woocommerce_cart_calculate_fees', 'custom_handling_fee' );
function custom_handling_fee ( $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;

    // SETTINGS: Here set in the array the (payment Id) / (fee cost) pairs
    $targeted_payment_ids = array(
        'cod' => 8, // Fixed fee
        'paypal' => 5 * $subtotal / 100, // Percentage fee
    );

    // Loop through defined payment Ids array
    foreach ( $targeted_payment_ids as $payment_id => $fee_cost ) {
        if ( $chosen_payment_id === $payment_id ) {
            $cart->add_fee( __('Handling fee', 'woocommerce'), $fee_cost, true );
        }
    }
}

您需要执行以下操作以刷新有关付款方式更改的结帐,以使其生效:

// jQuery - Update checkout on payment method change
add_action( 'wp_footer', 'custom_checkout_jquery_script' );
function custom_checkout_jquery_script() {
    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;
}

代码进入您的活动子主题(或活动主题)的functions.php文件中。测试和工作。

如何在WooCommerce Checkout页面中找到特定的付款方式ID?

以下将在结帐付款方式上显示仅适用于管理员的付款ID:

add_filter( 'woocommerce_gateway_title', 'display_payment_method_id_for_admins_on_checkout', 100, 2 );
function display_payment_method_id_for_admins_on_checkout( $title, $payment_id ){
  if( is_checkout() && ( current_user_can( 'administrator') || current_user_can( 'shop_manager') ) ) {
      $title .= ' <code style="border:solid 1px #ccc;padding:2px 5px;color:red;">' . $payment_id . '</code>';
  }
  return $title;
}

代码进入您的活动子主题(或活动主题)的functions.php文件中。使用后,将其删除。

在此处输入图片说明


类似答案:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据用户角色为WooCommerce付款方式分配百分比费用

来自分类Dev

如何在WooCommerce中获得运费和付款方式费用的总和

来自分类Dev

如何在WooCommerce中获得运费和付款方式费用的总和

来自分类Dev

在WooCommerce结帐中更改特定产品的付款方式标题

来自分类Dev

在 WooCommerce 中更改特定付款方式的结帐提交按钮文本

来自分类Dev

根据产品类别和运输方式添加费用WooCommerce

来自分类Dev

根据WooCommerce订单付款中的特定产品标签限制付款网关

来自分类Dev

在WooCommerce中仅对本地取件运输方式保留特定的付款方式

来自分类Dev

使用sprintf显示WooCommerce付款方式费用的不同文本标签

来自分类Dev

woocommerce根据数量向购物车添加费用

来自分类Dev

根据类别,为每种产品向WooCommerce添加费用

来自分类Dev

WooCommerce根据购买的特定产品的数量收取额外费用

来自分类Dev

在 Woocommerce 订单编辑页面中替换 BACS 付款方式的特定词

来自分类Dev

传递付款方式ID以产生费用

来自分类Dev

设置WooCommerce结算公司时,禁用特定的付款方式

来自分类Dev

设置WooCommerce结算公司时,禁用特定的付款方式

来自分类Dev

基于Dokan供应商的货到付款现金费用在WooCommerce中

来自分类Dev

如何在 WooCommerce 中按付款方式对订单进行排序?

来自分类Dev

HikaShop:不同的付款方式会产生不同的运输费用

来自分类Dev

WooCommerce-根据商品总重量向购物车添加额外的费用

来自分类Dev

禁用特定付款方式的付款网关

来自分类Dev

在PHP中向网站添加付款方式和托管

来自分类Dev

根据所选付款方式显示隐藏自定义 Woocommerce 结帐字段

来自分类Dev

在WooCommerce中禁用基于自定义送货方式的付款方式

来自分类Dev

在 Woocommerce 3.5 中将付款方式标题添加到管理订单列表

来自分类常见问题

Woocommerce:使用特定付款方式下订单后请勿清空购物车

来自分类Dev

Woocommerce仅在选择了特定付款方式的情况下运行javascript

来自分类Dev

Woocommerce-如果购物车中有特定变化,则隐藏付款方式

来自分类Dev

对给定顶级类别的所有子类别禁用特定的WooCommerce付款方式

Related 相关文章

  1. 1

    根据用户角色为WooCommerce付款方式分配百分比费用

  2. 2

    如何在WooCommerce中获得运费和付款方式费用的总和

  3. 3

    如何在WooCommerce中获得运费和付款方式费用的总和

  4. 4

    在WooCommerce结帐中更改特定产品的付款方式标题

  5. 5

    在 WooCommerce 中更改特定付款方式的结帐提交按钮文本

  6. 6

    根据产品类别和运输方式添加费用WooCommerce

  7. 7

    根据WooCommerce订单付款中的特定产品标签限制付款网关

  8. 8

    在WooCommerce中仅对本地取件运输方式保留特定的付款方式

  9. 9

    使用sprintf显示WooCommerce付款方式费用的不同文本标签

  10. 10

    woocommerce根据数量向购物车添加费用

  11. 11

    根据类别,为每种产品向WooCommerce添加费用

  12. 12

    WooCommerce根据购买的特定产品的数量收取额外费用

  13. 13

    在 Woocommerce 订单编辑页面中替换 BACS 付款方式的特定词

  14. 14

    传递付款方式ID以产生费用

  15. 15

    设置WooCommerce结算公司时,禁用特定的付款方式

  16. 16

    设置WooCommerce结算公司时,禁用特定的付款方式

  17. 17

    基于Dokan供应商的货到付款现金费用在WooCommerce中

  18. 18

    如何在 WooCommerce 中按付款方式对订单进行排序?

  19. 19

    HikaShop:不同的付款方式会产生不同的运输费用

  20. 20

    WooCommerce-根据商品总重量向购物车添加额外的费用

  21. 21

    禁用特定付款方式的付款网关

  22. 22

    在PHP中向网站添加付款方式和托管

  23. 23

    根据所选付款方式显示隐藏自定义 Woocommerce 结帐字段

  24. 24

    在WooCommerce中禁用基于自定义送货方式的付款方式

  25. 25

    在 Woocommerce 3.5 中将付款方式标题添加到管理订单列表

  26. 26

    Woocommerce:使用特定付款方式下订单后请勿清空购物车

  27. 27

    Woocommerce仅在选择了特定付款方式的情况下运行javascript

  28. 28

    Woocommerce-如果购物车中有特定变化,则隐藏付款方式

  29. 29

    对给定顶级类别的所有子类别禁用特定的WooCommerce付款方式

热门标签

归档