我使用的代码可以在购物车和结帐时选择“本地提货”时增加折扣。
/** * Discount for Local Pickup */ 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; $percentage = 15; // 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 ) { // Set variable $new_subtotal = 0; // Loop though each cart items and set prices in an array foreach ( $cart->get_cart() as $cart_item ) { // Get product $product = wc_get_product( $cart_item['product_id'] ); // Product has no discount if ( ! $product->is_on_sale() ) { // line_subtotal $line_subtotal = $cart_item['line_subtotal']; // Add to new subtotal $new_subtotal += $line_subtotal; } } // Calculate the discount $discount = $new_subtotal * $percentage / 100; // Add the discount $cart->add_fee( __('Discount') . ' (' . $percentage . '%)', -$discount ); } }
我还创建了几张优惠券。当我选择“本地取货”时,如何更改此代码以从计算中排除所有优惠券?
当选择“本地取货”时,如何显示优惠券不起作用的通知?
我很高兴得到您的帮助!
使用 WooCommerce 6.4 测试正常