進階自訂woocommerce 折扣券規則
最近行銷同仁又出了一道難題給我, 他們希望當客戶購買 “淬*精” 或 “淬*粥” …. 有”淬”字系列產品達到5000元就能使用折扣券 aab500(當然這是測試的序號, 別真的使用), 並可進行500元的折扣.
之後我發現內建的折扣券功能非常陽春, 所以又要用php寫程式來處理並達到同仁的需求!
繼續閱讀1. 首先我們需要先新增一張 500元的折價券, 折扣種類設定為”固定的購物車折扣”
2. 我們先測試程式碼執行前的狀況, 看起來無論買什麼東西都能加入折扣 !
3. 接著增加程式碼片段: 在執行這程序前先要理解一下, 雖然我們希望5000元可以使用折價券, 但我們必須讓程序判斷假如加入折價券-500元, 應該>=4500元就能允許使用折價券! 假如<4500元就把折價券抽走!
add_filter(‘woocommerce_coupon_is_valid’, ‘custom_coupon_validation’, 10, 2);
function custom_coupon_validation($valid, $coupon) {
if ($coupon->get_code() === ‘aab500’) {
$cart = WC()->cart;
$total_amount = 0;
foreach ($cart->get_cart() as $cart_item) {
$product_name = $cart_item[‘data’]->get_name();
if (strpos($product_name, ‘淬’) !== false) {
$total_amount += $cart_item[‘line_total’];
}
}
$catrt_total_cost= 5000-500;
if ($total_amount >= $catrt_total_cost) {
return true;
} else {
return false;
}
}
return $valid;
}
4. 現在執行程式碼! 看起來程式碼開始依照要求執行判斷, 折扣券已經被成功移除!
5. 現在測試購買有”淬”字的商品! 來看看是否可以達到我要程式碼執行的效果! 先將標的種類商品及其他商品, 添加到 5000元! 加入折價券碼, 很好顯示無效折價券, 看起來程式碼沒有被我騙到!
6. 接著我們讓標的種類產品達標到 5000元, 並輸入折價券碼! 很好! 看起來是有成功執行折扣!
7. 接著讓我們測試, 到結帳畫面是否能順利驗證? 我嘗試將標的類別產品數量減少, 再到結帳畫面使用折扣碼, 看看是否可以被阻擋 ? 實驗顯示程序真的能進行阻擋!
8. 接著我再返回購物車, 將標的類別產品加到符合折扣規定, 再到結帳畫面新增折價券! 嗯! 實驗結果看起來有將折價券添加成功!