2017-04-03 48 views
0

希望有一位熟悉結賬流程的woocommerce資深人士可以幫助我解決這個問題。我的商店以折扣價格提供樣品,但我想限制爲每個客戶一次性訂購。我找到了一個solution that works for registered users,但我想知道是否有另一種方法可以在訂購產品之前不強迫客人設置帳戶,從而實現此項工作。在處理訂單前檢查客人的電子郵件地址,以防止他們購買多個樣品產品

我在想的是,如果有辦法檢查客戶的帳單電子郵件地址是否在結帳階段訂購了此特定產品。因此,他們會填寫結帳單並點擊「繼續」,但在客戶被帶到支付網關之前,他們的電子郵件地址將被檢查以便訂購此特定產品,如果是這樣,請將其指向「訂單失敗」頁面而不是通過支付網關。

在此先感謝!

+0

從欺詐的角度來看,請注意這樣一個事實,即任何Gmail用戶都有一大堆電子郵件地址可供他們憑藉期限技巧,因此如果您要使用電子郵件地址作爲密鑰在執行檢查之前強制執行唯一性,以使其標準化。 – Ivan

回答

1

你有兩種方式來實現這一功能:

  1. 您可以驗證結帳頁面本身的電子郵件。掃描客戶/客人的電子郵件地址的訂單,如果發現與免費產品,然後驗證。這樣不必要的訂單就不會記錄在系統中。

以下是您可以如何進行自定義結帳驗證的方法。

/** 
* Process the checkout 
**/ 
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process'); 

function my_custom_checkout_field_process() { 
    global $woocommerce; 

    // Check if set, if its not set add an error. This one is only requite for companies 
    if ($_POST['billing_country'] == "NO") 
     if (!$_POST['notes']) 
      $woocommerce->add_error(__('Please add the required information in "Order notes"')); 
} 
  • 或者,也可以讓客戶下訂單並下訂單時,然後掃描它,如果它已經訂購的樣品產物。如果找到了,那麼您可以將該訂單的狀態視爲失敗。 - 但這似乎有點不合邏輯。
  • 相關問題