如何自動應用 WooCommerce 優惠券
已發表: 2021-06-22您是否正在尋找為您的產品添加折扣以提高銷售額的方法? 你來對地方了。 在本指南中,我們將向您展示如何自動應用 WooCommerce 優惠券。
我們之前已經看到瞭如何在 WooCommerce 中創建優惠券以及如何使用代碼應用它們的一些示例。 這一次,我們將重點介紹如何自動應用這些折扣來讓您的購物者驚喜並增加您的銷售額。
為什麼以編程方式應用 WooCommerce 優惠券?
向用戶提供優惠券是提高銷售額的好方法。 通過在購物者考慮購買您的一種產品時為他們提供折扣,您將鼓勵他們完成購買。
通過提供有吸引力的折扣將訪問者轉化為客戶是大多數電子商務網站利用的行之有效的營銷策略。 但是,值得注意的是,該優惠的成功很大程度上取決於您何時提供折扣。
如果您向剛剛瀏覽的人提供折扣,則該優惠不太可能產生任何影響。 同樣,如果您將價格降低給已經決定購買地點和商品的人,那麼當您可以收取全價時,您可能為時已晚,無法改變他們的想法或減少您的收入。 提供優惠券代碼的最佳時機是當購物者正在考慮購買但尚未做出最終決定時。
折扣也是與經常性客戶建立牢固關係的好方法。 通過以獨家折扣獎勵您的客戶,您可以讓他們有更多理由回到您的商店並成為忠實用戶。
默認 WooCommerce 優惠券的限制
WooCommerce 提供的默認優惠券功能運行良好,但有一些限制。 最大的一個是用戶必須手動輸入優惠券並刷新頁面才能將折扣應用於他們的訂單。 正如您可以想像的那樣,這種額外的摩擦並不理想,並且可能會讓您失去客戶。
此外,除了與到期日期和折扣應用方式相關的默認條件之外,不能應用任何類型的邏輯條件。 這就是為什麼要充分利用優惠券,您可以自定義它們的行為並學習如何以編程方式應用它們。
在本指南中,您將學習如何自動應用 WooCommerce 優惠券。 這樣,用戶就不需要記住優惠券、複製/粘貼它們或刷新購物車頁面。 這將改善客戶體驗並幫助您在短期和長期內提高銷售額。
如何自動應用 WooCommerce 優惠券
由於我們將編輯functions.php
文件,因此在開始該過程之前,我們建議您對站點進行完整備份並安裝子主題。 您可以創建子主題或使用插件。 此外,如果您不熟悉 WooCommerce 鉤子,我們建議您查看本指南。
一旦你這樣做了,讓我們從創建優惠券開始。
1) 創建 WooCommerce 優惠券
首先,在您的 WordPress 儀表板中,轉到WooCommerce > 優惠券/營銷 > 優惠券,然後單擊添加優惠券。
然後,輸入優惠券的名稱。 由於這是我們將用來提供折扣的名稱,因此我們建議使用描述性和簡單的名稱。
最重要的是,您必須指定其他重要信息:
- 折扣金額(固定或百分比)
- 優惠券類型
- 截止日期
您還可以添加一些其他選項,例如使用限制、每個用戶的限制等。 有關這方面的更多信息,請查看我們關於如何設置 WooCommerce 優惠券的指南。
創建優惠券後,讓我們看看自動應用它們的不同方法。
2) 如何自動添加 WooCommerce 優惠券
在深入研究代碼之前,請注意我們在以下所有示例腳本中使用相同的“ all-products
”優惠券代碼。 此代碼將對小計應用 3% 的折扣。
在所有情況下使用此優惠券可能對您的業務沒有意義,因此請確保調整每個腳本並使用優惠券代碼編輯變量$coupon_code
。
現在讓我們看一些如何在 WooCommerce 中自動應用優惠券的示例。
2.1) 向回頭客應用優惠券
僅當客戶先前已完成訂單時,這將適用於折扣券。
// 回頭客 add_action('woocommerce_before_cart', 'QuadLayers_returning_customers_coupon'); 函數 QuadLayers_returning_customers_coupon(){ $coupon_code = '所有產品'; # 獲取客戶訂單 $user_id = wp_get_current_user(); $customer_orders = []; foreach ( wc_get_is_paid_statuses() as $paid_status ) { $customer_orders += wc_get_orders( [ '類型 ' => 'shop_order', '限制' => - 1, 'customer_id' => $user_id->ID, '狀態' => $paid_status, ]); # 如果有現有訂單,則應用優惠券 如果(計數($customer_orders)>0){ printf('<div class="woocommerce-message">此訂單申請折扣,因為您是回頭客!</div>'); if ( WC()->cart->has_discount( $coupon_code ) ) 返回; WC()->購物車->apply_coupon($coupon_code); wc_print_notices(); 休息; } } }
這是購物車頁面上的結果:
可以想像,這需要用戶登錄他們的賬戶,因為我們需要獲取他們的用戶 ID 來檢查他們是否有現有訂單。
如果滿足該條件,將應用折扣並在購物車上顯示一條消息。
要更改消息,只需編輯腳本中的printif行。
2.2)在賬戶用戶信息上應用 WooCommerce 優惠券
您還可以根據用戶帳戶詳細信息應用指定的優惠券。 在以下示例腳本中,我們將僅將優惠券應用於已在其帳戶中作為國家/地區進入美國 (US) 的客戶。 對於有針對性的促銷活動以增加某些市場或國家/地區的銷售額,這可能是一個有趣的選擇。
// 在賬單國家(美國)應用優惠券 add_action('woocommerce_before_cart', 'QuadLayers_customer_information_coupon'); 函數 QuadLayers_customer_information_coupon(){ $coupon_code = '所有產品'; $user = wp_get_current_user(); $data = get_user_meta($user->ID, 'billing_country', true ); 如果($數據==“美國”): printf('<div class="woocommerce-message">此訂單申請美國客戶打折!</div>'); if ( WC()->cart->has_discount( $coupon_code ) ) 返回; WC()->購物車->apply_coupon($coupon_code); wc_print_notices(); 別的: WC()->購物車->remove_coupons(sanitize_text_field($coupon_code)); wc_print_notices(); WC()->購物車->calculate_totals(); 萬一; }
除了在用戶的計費國家設置為美國時添加優惠券外,如果國家/地區不是美國,我們也會刪除優惠券。 如果我們不這樣做,用戶可以編輯他們的帳單地址以獲取優惠券,並且優惠券將在返回原國家後保留在那裡。
2.3)按計劃申請優惠券
默認的 WooCommerce 選項允許我們創建適用於特定日期或日期計劃的優惠券。 但是,如果您需要按每日計劃申請優惠券怎麼辦? 例如,只需使用以下腳本僅在上午 6:00 至上午 10:00 期間應用指定的優惠券。
這是啟動限時搶購併在 WooCommerce 中自動應用優惠券的有趣選項。
// 按每日時間表 (06:00/10:00) 應用優惠券 add_action('woocommerce_before_cart', 'QuadLayers_timer_scheduled_coupon'); 函數 QuadLayers_timer_scheduled_coupon(){ $blogtime = current_time('mysql'); list($today_year, $today_month, $today_day, $hour, $minute, $second) = preg_split("([^0-9])", $blogtime); $coupon_code = '所有產品'; 如果($小時>=06&&$小時<10){ printf('<div class="woocommerce-message">您正在享受我們的早安折扣(早上 6 點到 10 點)</div>'); if ( WC()->cart->has_discount( $coupon_code ) ) 返回; WC()->購物車->apply_coupon($coupon_code); wc_print_notices(); } }
請注意,我們正在檢索條件中的唯一網站時間,並且該時間來自服務器,因此無論客戶所在的時區如何,它都是相同的時間。 要設置每個時區的特定時間,您需要包含額外的邏輯。
2.4)在產品標籤分類上應用優惠券
這是一個更複雜的功能,我們檢索添加到購物車的所有產品標籤並檢查是否存在特定標籤。
在下面的示例中,我們使用的標籤是“ freeweek
”,因此在您執行此操作之前,您需要創建一個標籤並將其附加到一些產品上。 或者,您可以使用已附加到您的產品的任何標籤。
// 將優惠券應用於產品標籤分類(freeweek) // add_action('woocommerce_before_cart', 'QuadLayers_tag_coupon'); 函數 QuadLayers_tag_coupon() { $coupon_code = '所有產品'; $id_a=數組(); foreach ( WC()->cart->get_cart() as $key => $cart_item ) { 對於 ($i=0; $i < $cart_item['數量'] ; $i++) { $productId = $cart_item['data']->get_id(); array_push($id_a,$productId); } } for($t=0;$t<count($id_a);$t++){ $terms = wp_get_post_terms( $id_a[$t], 'product_tag' ); foreach($terms 作為 $term){ $term_name = $term->name; // 產品標籤名稱 如果($term_name=='freeweek'): printf('<div class="woocommerce-message">某產品帶有折扣標籤!</div>'); if ( WC()->cart->has_discount( $coupon_code ) ) 返回; WC()->購物車->apply_coupon($coupon_code); wc_print_notices(); 休息; 別的: WC()->購物車->remove_coupons(sanitize_text_field($coupon_code)); wc_print_notices(); WC()->購物車->calculate_totals(); 萬一; } } }
此折扣將應用於添加到購物車且具有指定標籤的所有產品。
再次確保將代碼上的“ freeweek ”標籤名稱替換為您的產品標籤。
2.5)在 URL 參數上應用優惠券
優惠券代碼的另一個有趣應用是使用 URL 參數來構建自定義鏈接。 在瀏覽器中,URL 參數及其值如下所示:
https://my.website.com/cart?parameter=value
這樣,您可以構建自定義鏈接並通過電子郵件或電話將其發送給您的客戶。 當任何人點擊鏈接時,優惠券將自動應用於訂單。 收到鏈接的用戶可以與其他用戶共享它,因此您可能需要添加一些其他條件以確保只有您想要的客戶才能獲得折扣。
// 在 URL 參數上應用優惠券 (?co=custom-link) add_action('woocommerce_before_cart', 'QuadLayers_url_coupon'); 函數 QuadLayers_url_coupon() { $coupon_code = '所有產品'; if(isset($_GET['co'])&&!empty($_GET['co']) ): $url_p=$_GET['co']; if($url_p=='自定義鏈接'): printf('<div class="woocommerce-message">某產品申請打折!%lt;/div>'); if ( WC()->cart->has_discount( $coupon_code ) ) 返回; WC()->購物車->apply_coupon($coupon_code); wc_print_notices(); 別的: WC()->購物車->remove_coupons(sanitize_text_field($coupon_code)); wc_print_notices(); WC()->購物車->calculate_totals(); 萬一; 萬一; }
如您所見,我們在上面使用的自定義鏈接是https://my.web?co=custom-link
。
獎勵:將優惠券應用於某些產品
一個有趣的選項是自動將 WooCommerce 優惠券應用於特定產品。 這樣,您可以使某些產品更具吸引力,以吸引客戶,然後嘗試與其他產品一起追加銷售。
為此,請使用以下腳本並使用您自己的產品 ID 更改$products_id()
數組。
add_action('woocommerce_before_cart', 'QuadLayers_apply_matched_id_products'); 函數 QuadLayers_apply_matched_id_products() { // 之前創建的優惠券; $coupon_code = 'auto_coupon'; // 這是您的產品 ID/s 數組 $product_ids = 數組(664,624,619); // 申請優惠券。 默認為假 $應用=假; // 添加到購物車產品循環 foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { if ( in_array( $cart_item['product_id'], $product_ids )): // 產品匹配ID $應用=真; 休息; 萬一; } // 應用和移除優惠券 如果($應用==真): WC()->購物車->apply_coupon($coupon_code); wc_print_notices(); 別的: WC()->購物車->remove_coupons(sanitize_text_field($coupon_code)); wc_print_notices(); WC()->購物車->calculate_totals(); 萬一; }
如需更多此類示例,請查看我們的以編程方式創建和應用優惠券的指南。
如何從優惠券中排除產品
或者,您可以從優惠券中排除某些產品,這樣折扣不適用於它們。 如果您銷售已經有折扣的商品(如捆綁產品或利潤率低的產品),這可能是一個有趣的選擇。
好消息是您可以從 WordPress 管理儀表板執行此操作。 轉到Products > All Products ,將鼠標懸停在要從優惠券中排除的產品上,然後記下產品 ID 。
然後,轉到外觀 > 主題編輯器>主題函數並打開functions.php文件。 之後,粘貼以下代碼,將 PRODUCT_ID 替換為您的產品 ID。
add_filter('woocommerce_coupon_is_valid_for_product', 'quadlayers_exclude_product_from_product_promotions', 9999, 4); 函數 quadlayers_exclude_product_from_product_promotions($valid, $product, $coupon, $values) { // 替換產品 ID (EG 145) if ( PRODUCT_ID == $product->get_id() ) { $有效=假; } 返回$有效; }
而已! 您選擇的產品不受優惠券的影響。
這是一個簡單的示例,但您可以做的還有很多。 有關這方面的更多信息,請查看我們的教程以從優惠券中排除 WooCommerce 產品。
結論
總而言之,向您的購物者提供優惠券是改善客戶體驗和增加銷售額的絕佳方式。 此外,通過為您的客戶提供獨家折扣,他們更有可能忠誠於您的商店。
但是,請確保您在正確的時間提供折扣。 過早或過晚提供優惠券代碼可能不會達到您預期的效果,因此請巧妙地使用它們。
在本指南中,我們看到 WooCommerce 默認提供的優惠券選項有一些限制。 通過學習如何自動應用 WooCommerce 優惠券,您將使用戶的生活更輕鬆,並改善他們在您網站上的購物體驗。
我們已經看到了在不同情況下自動應用優惠券的不同示例,這將幫助您將商店提升到一個新的水平。 有關 WooCommerce 優惠券的更多指南,請務必查看以下帖子:
- 如何在 WooCommerce 中設置優惠券
- 如何以編程方式創建 WooCommerce 優惠券(附示例)
- 編輯 WooCommerce 優惠券代碼字段
您是否在您的網站上嘗試過上述任何腳本? 他們是否按預期工作? 在下面的評論部分告訴我們您的經歷!