回答
是有可能創建條件函數返回
true
當客戶已至少一個訂單與完成的狀態。
以下是此條件函數的代碼:
function has_bought() {
// Get all customer orders
$customer_orders = get_posts(array(
'numberposts' => -1,
'meta_key' => '_customer_user',
'meta_value' => get_current_user_id(),
'post_type' => 'shop_order', // WC orders post type
'post_status' => 'wc-completed' // Only orders with status "completed"
));
// Count number of orders
$count = count($customer_orders);
// return "true" when customer has already one order
if ($count > 0)
return true;
else
return false;
}
該代碼測試和工程。
此代碼發表在您的活動子主題或主題的function.php文件中,或者插入到一個插件php文件中。
用法(作爲條件):
- 你可以在一些WooCommerce templates,你將先前複製到活動的子主題或主題使用它。
- 在你的主題php文件。
- 在插件php文件。
- 任何PHP函數或WordPress/WooCommerce。
參考
簡體版:
function has_bought() {
// Get all customer orders
$customer_orders = get_posts(array(
'numberposts' => -1,
'meta_key' => '_customer_user',
'meta_value' => get_current_user_id(),
'post_type' => 'shop_order', // WC orders post type
'post_status' => 'wc-completed' // Only orders with status "completed"
));
// return "true" when customer has already one order
return count($customer_orders) > 0 ? true : false;
}
^h ere是一個重量更輕,速度更快的條件函數,如果客戶已經購買了女傭,則返回true。
有一個可選的參數$user_id
,這將允許你指定一個定義的用戶ID:
function has_bought($user_id = 0) {
global $wpdb;
$customer_id = $user_id == 0 ? get_current_user_id() : $user_id;
$paid_order_statuses = array_map('esc_sql', wc_get_is_paid_statuses());
$results = $wpdb->get_col("
SELECT p.ID FROM {$wpdb->prefix}posts AS p
INNER JOIN {$wpdb->prefix}postmeta AS pm ON p.ID = pm.post_id
WHERE p.post_status IN ('wc-" . implode("','wc-", $paid_order_statuses) . "')
AND p.post_type LIKE 'shop_order'
AND pm.meta_key = '_customer_user'
AND pm.meta_value = $customer_id
");
// Count number of orders and return a boolean value depending if higher than 0
return count($results) > 0 ? true : false;
}
代碼放在您的活動子主題(或主題)的function.php文件或也以任何插件文件。
此代碼已在Woocommerce 3+上測試過並且可以工作(它也應該可以在以前的版本上運行)。
對於多個產品:Check if a customer has purchased a specific products in WooCommerce
使用例1(登錄顧客)
if(has_bought())
echo '<p>You have already maid a purchase</p>';
else
echo '<p>Welcome, for your first purchase you will get a discount of 10%</p>';
使用例2(設置$ USER_ID)
// Define the user ID
$user_id = 85;
if(has_bought($user_id))
echo '<p>customer have already maid a purchase</p>';
else
echo '<p>Customer with 0 purchases</p>';
如果$user_id
沒有定義和當前用戶沒有登錄,這個函數將返回false
。
該函數的代碼部分基於內置的WooCommerce函數
wc_customer_bought_product
的源代碼。
關於如何將它變成短代碼的想法,所以我可以用它來包裝內容? – Garconis
是的,它可以在短代碼中輕鬆完成......您需要什麼規格? *(如果你喜歡/希望你可以upvote這個有用的答案)* ... – LoicTheAztec
如果客戶檢查已啓用了該功能可以幫助
只需發送$ CUSTOMER_EMAIL作爲參數和功能將檢查所有訂單的電子郵件,並返回true或false。
- 1. 檢查用戶已經購買
- 2. iOS應用購買。如何檢查購買是否已經購買?
- 3. 如何檢查用戶是否已經下載非消耗品Inapp購買
- 4. Woocommerce:檢查是否成功購買來自新客戶或返回客戶
- 5. Magento 1.9檢查客戶是否從某個類別購買
- 6. 限制woocommerce產品給某些客戶購買
- 7. 如何檢查用戶是否已經購買了應用程序?
- 8. Magento的檢查客戶端的ID,如果他已經購買的產品
- 9. 檢查是否已購買已購買的應用程序iphone
- 10. 查詢客戶已與列出的產品一起購買的商品
- 11. ,我如何知道用戶是否已經購買了產品(耗材)?
- 12. 檢查是否購買了InApp
- 13. WooCommerce顯示已購買的商品只有
- 14. Drupal/Ubercart在結賬時檢查某件商品是否在購物車中
- 15. WooCommerce訂閱 - 檢查產品已經
- 16. 是否有可能在單次購買中購買多款應用內商品?
- 17. 恢復已經在iPhone上購買了應用內購買嗎?
- 18. 誰購買了一套商品
- 19. TSQL - 查找誰購買了兩套產品的客戶
- 20. Mysql檢查客戶是否每月購買
- 21. 如何跳過提示「您已經購買了該商品但尚未下載」
- 22. 如何限制客戶使用woocommerce購買一種產品
- 23. 允許woocommerce產品只爲選定的客戶購買
- 24. 無法購買商品,錯誤回覆:7:商品已擁有
- 25. Android在應用程序購買時知道用戶是否已經購買了它
- 26. Codeigniter購物車 - 檢查商品是否已添加到購物車
- 27. 檢查是否已經加載了
- 28. 檢查購物車中是否有缺貨物品 - WooCommerce
- 29. 我如何檢查產品是否在ios購買?
- 30. 如何確定用戶是否已經購買訂閱
非常感謝。這是非常有用的 –
任何方式來顯示/返回最近一次購買的日期在同一時間? –
@RodrigoM如果客戶一次性成功購買,返回true – LoicTheAztec