gpt4 book ai didi

php - 在 WooCommerce 中为特定选择的付款方式添加折扣

转载 作者:行者123 更新时间:2023-12-04 01:59:56 25 4
gpt4 key购买 nike

如果没有使用优惠券功能,我想为特定付款方式 ID(如“xyz”)应用 15% 的折扣。

我想帮助确定要使用的钩子(Hook)。我想要实现的总体思路是:

if payment_method_hook == 'xyz'{
cart_subtotal = cart_subtotal - 15%
}

客户无需在此页面上查看折扣。我希望正确提交折扣,仅适用于特定的付款方式。

最佳答案

您可以使用卡在 woocommerce_cart_calculate_fees 中的自定义函数 Action Hook ,这将为定义的付款方式提供 15% 的折扣。

您需要在此函数中设置您的真实付款方式 ID(如“bacs”、“cod”、“cheque”或“paypal”)。

每次选择付款方式时,第二个功能都会刷新结帐数据。

编码:

add_action( 'woocommerce_cart_calculate_fees','shipping_method_discount', 20, 1 );
function shipping_method_discount( $cart_object ) {

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

// HERE Define your targeted shipping method ID
$payment_method = 'bacs';

// The percent to apply
$percent = 15; // 15%

$cart_total = $cart_object->subtotal_ex_tax;
$chosen_payment_method = WC()->session->get('chosen_payment_method');

if( $payment_method == $chosen_payment_method ){
$label_text = __( "Shipping discount 15%" );
// Calculation
$discount = number_format(($cart_total / 100) * $percent, 2);
// Add the discount
$cart_object->add_fee( $label_text, -$discount, false );
}
}

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

代码位于您的事件子主题(或事件主题)的 function.php 文件中。

测试和工作。

关于php - 在 WooCommerce 中为特定选择的付款方式添加折扣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47956053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com