标签: WooCommerce, 优惠券
- 该话题包含 0 个回复,1 人参与,最后由诗语 更新于 8 年、 10 月前 。
正在查看 1 个帖子:1-1 (共 1 个帖子)
-
作者帖子
-
能用代码的就尽量不用插件,为新的 WooCommerce 客户申请优惠券 ,请遵循以下步骤: –
1 、在应用下面的代码前,你必须创建一个新的优惠券。我创建了一个新的优惠券名称’firstlove「
2 、现在,您可以下面复制并粘贴代码到你的主题的 functions.php
/** * Frontend validate new customer only coupon code * hook: woocommerce_after_checkout_validation */ add_action('woocommerce_after_checkout_validation','check_new_customer_coupon', 0); function check_new_customer_coupon(){ global $woocommerce; // you might change the firstlove to your coupon $new_cust_coupon_code = 'firstlove'; $has_apply_coupon = false; foreach ( WC()->cart->get_coupons() as $code => $coupon ) { if($code == $new_cust_coupon_code) { $has_apply_coupon = true; } } if($has_apply_coupon) { if(is_user_logged_in()) { $user_id = get_current_user_id(); // retrieve all orders $customer_orders = get_posts( array( 'meta_key' => '_customer_user', 'meta_value' => $user_id, 'post_type' => 'shop_order', 'numberposts'=> -1 ) ); if(count($customer_orders) > 0) { $has_ordered = false; $statuses = array('wc-failed', 'wc-cancelled', 'wc-refunded'); // loop thru orders, if the order is not falled into failed, cancelled or refund then it consider valid foreach($customer_orders as $tmp_order) { $order = wc_get_order($tmp_order->ID); if(!in_array($order->get_status(), $statuses)) { $has_ordered = true; } } // if this customer already ordered, we remove the coupon if($has_ordered == true) { WC()->cart->remove_coupon( $new_cust_coupon_code ); wc_add_notice( sprintf( "Coupon code: %s is only applicable for new customer." , $new_cust_coupon_code), 'error' ); return false; } } else { // customer has no order, so valid to use this coupon return true; } } else { // new user is valid return true; } } }
3 、如果你添加成功了,那么现在可以尝试注册一个新用户然后去后台下单试试。
如果上面的代码不能满足您的要求,您可以随意修改。
原文:https://www.techiecorner.com/3421/woocommerce-coupon-for-new-customer-first-order-only/
-
作者帖子
正在查看 1 个帖子:1-1 (共 1 个帖子)
- 哎呀,回复话题必需登录。