2016-06-30 9 views
0

私のクライアントの1人は、新規ユーザーがウェブサイトに来たときに、Rs. 500割引を得ることを望んでいます。 。。Woocommerce First and Second Order割引クーポン

を一度に使用唯一のクーポンをだからあなたはどのようにそれを行う場合、または任意のプラグイン可能な第一およびのためにそのような私を提案してくださいすることができますし、二次に彼はまた

NOTEをRs. xxxxのクーポン割引を受けます2次割引。

+1

なぜあなたの投稿のすべての単語の最初の文字を大文字にしていますか?これはちょうどあなたの質問を読むことをより困難にし、いくつかの読者を苛立たさせて、彼らが下降するようにするかもしれません。 – halfer

+0

@halfer私はちょうどそれを変更しますが、話題が不明確で不明瞭で広すぎるため投票します。 – LoicTheAztec

+0

@Loic、thanks。私は、OPに教育的効果があると思えば、近いうちに閉鎖されるオープン・ポストを編集することに広く賛成しています。しかし、この場合、私は仕事の過度な量がそれを価値あるものにするかどうか疑問に思ったが、努力のためにはうまくいった。 – halfer

答えて

-1
/** 
* 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; 
     } 
    } 

} 

お手伝いします。いくつかから得たblog

+0

申し訳ありませんが、この質問のコードをコピーしました:http://stackoverflow.com/questions/38096816/how-do-i-programmatically-apply-a-coupon-in-woocommerce-for- first-order-made -by - 親切に:1)このコードは機能しません。 2)あなたが答えるとき、あなたはいくつかの説明をしなければならない。 3)コードを選択した場合は、リンクと参照を含めます。だから、OPとコミュニティには役に立たないので、これを避けてください。 – LoicTheAztec

+0

いいえ、そのブログから入手しました。 il checkとリンク –

+1

このコードを自分でテストしましたか? – LoicTheAztec

関連する問題