我试图在Woocommerce找到一种方法,允许免费送货的前100名客户作为促销活动。一旦达到100个第一客户的限制,则将适用标准航运。这可能吗?我怎么能做到?
wj8zmpe11#
这里是一个简单的方法来做到这一点与下面的2挂钩函数,将:1.自动添加优惠券代码到购物车“免费送货”选项启用到第100个客户.1.当“免运费”可用时隐藏其他送货方式。
但你将拥有
下面是代码:
// Auto apply "free_shipping" coupon for first hundred add_action( 'woocommerce_before_calculate_totals', 'auto_apply_free_shipping_coupon_first_hundred', 20, 1 ); function auto_apply_free_shipping_coupon_first_hundred( $cart ) { // HERE define your free shipping coupon code $coupon_code = 'summer';// 'freeship100'; if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) return; // Get an instance of the WC_Coupon object $coupon = new WC_Coupon( $coupon_code ); // After 100 usages exit if( $coupon->get_usage_count() > 100 ) return; // Auto-apply "free shipping" coupon code if ( ! $cart->has_discount( $coupon_code ) && is_cart() ){ $cart->add_discount( $coupon_code ); wc_clear_notices(); wc_add_notice( __('You have win Free shipping for the first 100 customers'), 'notice'); } } // Hide Others Shipping methods when "Free shipping is available add_filter( 'woocommerce_package_rates', 'hide_others_when_free_shipping_is_available', 100 ); function hide_others_when_free_shipping_is_available( $rates ) { $free = array(); foreach ( $rates as $rate_id => $rate ) { if ( 'free_shipping' === $rate->method_id ) { $free[ $rate_id ] = $rate; break; } } return ! empty( $free ) ? $free : $rates; }
代码在你的活动子主题(或主题)的function.php文件中,或者也可以在任何插件文件中。此代码经过测试,适用于WooCommerce版本3+
1条答案
按热度按时间wj8zmpe11#
这里是一个简单的方法来做到这一点与下面的2挂钩函数,将:
1.自动添加优惠券代码到购物车“免费送货”选项启用到第100个客户.
1.当“免运费”可用时隐藏其他送货方式。
但你将拥有
下面是代码:
代码在你的活动子主题(或主题)的function.php文件中,或者也可以在任何插件文件中。
此代码经过测试,适用于WooCommerce版本3+