为了账号安全,请及时绑定邮箱和手机立即绑定

WooCommerce 结帐中的本地取货自定义百分比折扣

WooCommerce 结帐中的本地取货自定义百分比折扣

PHP
跃然一笑 2023-09-22 16:36:14
我在 Woocommerce 应答代码中使用本地取货运输选项自定义百分比折扣, 以使 Woocommerce 上的本地取货折扣为 2%。因此,选择自取订单的人可以获得总金额的折扣。这段代码很棒,但我想将其隐藏在购物车页面上,并且仅显示在结帐页面上。现在它显示在两个页面上。我尝试更改$cart并$checkout删除了规则 15 和 16,但不幸的是,这不起作用。有人指出我正确的方向吗?
查看完整描述

1 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

要使其仅在结帐页面上激活,请使用以下命令:


add_action( 'woocommerce_cart_calculate_fees', 'custom_discount_for_pickup_shipping_method', 10, 1 );

function custom_discount_for_pickup_shipping_method( $cart ) {

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

        return;


    // Only on checkout page

    if ( is_checkout() ) {

    

        $percentage = 2; // <=== Discount percentage

    

        $chosen_shipping_method_id = WC()->session->get( 'chosen_shipping_methods' )[0];

        $chosen_shipping_method    = explode(':', $chosen_shipping_method_id)[0];

    

        // Only for Local pickup chosen shipping method

        if ( strpos( $chosen_shipping_method_id, 'local_pickup' ) !== false ) {

            // Calculate the discount

            $discount = $cart->get_subtotal() * $percentage / 100;

            // Add the discount

            $cart->add_fee( __('Pickup discount') . ' (' . $percentage . '%)', -$discount );

        }

    }

}

代码位于活动子主题(活动主题)的 function.php 文件中。经过测试并有效。


查看完整回答
反对 回复 2023-09-22
  • 1 回答
  • 0 关注
  • 51 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信