2016-06-30 4 views
0

Один из моих клиентов хочет, чтобы, когда новые пользователи приходят на сайт, они получают скидку Rs. 500. Это сложность, такая скидка при первом заказе он получает скидку Rs. 250 после внесения купонного кода и второго порядка, он также получить купон скидку Rs. xxxxСкидочный купон на первый и второй купоны Woocommerce

ПРИМЕЧАНИЕ. Только один купон, используемый в то время

Так можете ли вы предложить мне, как это сделать, или если какой-либо плагин доступен как и для первого и. скидка второго порядка.

+1

Почему вы используете начальную букву каждого слова в своем посте? Это просто затрудняет чтение вашего вопроса и может раздражать некоторых читателей в достаточной степени, что они будут снижать ставку. – halfer

+0

@halfer Я просто меняю это, но я проголосую, потому что вне темы, неясно и слишком широко ... – LoicTheAztec

+0

@Loic, спасибо. Я в целом выступаю за редактирование открытых сообщений, которые скоро будут закрыты, если я думаю, что это будет иметь образовательный эффект для ОП. Однако в этом случае я задался вопросом, сделает ли это чрезмерное количество работы, но тем не менее хорошо сделано для этих усилий. – 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 and and the link –

+1

Вы сами тестируете этот код? – LoicTheAztec

 Смежные вопросы

  • Нет связанных вопросов^_^