WooCommerceクーポンを自動的に適用する方法

公開: 2021-06-22

あなたはあなたの売り上げを増やすためにあなたの製品に割引を加える方法を探していますか? あなたは正しい場所に来ました。 このガイドでは、 WooCommerceクーポンを自動的に適用する方法を紹介します

WooCommerceでクーポンを作成する方法と、コードを使用してクーポンを適用する方法の例を以前に見てきました。 今回は、これらの割引を自動的に適用して買い物客を驚かせ、売り上げを伸ばす方法に焦点を当てます。

なぜWooCommerceクーポンをプログラムで適用するのですか?

ユーザーにクーポンを提供することは、売り上げを伸ばすための優れた方法です。 買い物客があなたの製品の1つを購入することを考えているときに割引を提供することにより、購入を完了するように促します。

魅力的な割引を提供することによって訪問者を顧客に変えることは、ほとんどのeコマースWebサイトが利用する実証済みのマーケティング戦略です。 ただし、そのオファーの成功は、割引をいつ提供するかに大きく依存することに注意してください。

閲覧しているだけの人に割引を提供する場合、その提供が効果を発揮する可能性はほとんどありません。 同様に、どこで何を購入するかをすでに決めている人に価格を下げると、全額を請求できたとしても、気が変わったり収益を減らしたりするには遅すぎる可能性があります。 クーポンコードを提供するのに最適なのは、買い物客が購入を考えているが、まだ最終決定を下していないときです。

割引は、定期的な顧客との強力な関係を構築するための優れた方法でもあります。 排他的な割引で顧客に報酬を与えることによって、あなたは彼らにあなたの店に戻って忠実なユーザーになるより多くの理由を与えています。

デフォルトのWooCommerceクーポンの制限

WooCommerceが提供するデフォルトのクーポン機能はうまく機能しますが、いくつかの制限があります。 最大の問題は、ユーザーがクーポンを手動で入力し、ページを更新して割引を注文に適用する必要があることです。 ご想像のとおり、この余分な摩擦は理想的ではなく、顧客を失う可能性があります。

さらに、有効期限と割引の適用方法に関連するデフォルトの条件を超えて、いかなる種類の論理条件も適用することはできません。 そのため、クーポンを最大限に活用するには、クーポンの動作をカスタマイズして、プログラムでクーポンを適用する方法を学ぶことができます。

このガイドでは、 WooCommerceクーポンを自動的に適用する方法を学習します。 このように、ユーザーはクーポンを覚えたり、コピーして貼り付けたり、カートページを更新したりする必要がありません。 これにより、カスタマーエクスペリエンスが向上し、短期および長期の両方で売り上げを伸ばすことができます。

WooCommerceクーポンを自動的に適用する方法

functions.php .phpファイルを編集するため、プロセスを開始する前に、サイトの完全バックアップを作成し、子テーマをインストールすることをお勧めします。 子テーマを作成するか、プラグインを使用できます。 さらに、WooCommerceフックに慣れていない場合は、このガイドを参照することをお勧めします。

それが終わったら、クーポンを作成することから始めましょう。

1)WooCommerceクーポンを作成する

まず、WordPressダッシュボードで、 WooCommerce>クーポン/マーケティング>クーポンに移動し、クーポンの追加をクリックします。

woocommerceクーポン割引を作成する

次に、クーポンの名前を入力します。 これは割引を提供するために使用するものなので、わかりやすくシンプルな名前をお勧めします。

その上、他の重要な情報を指定する必要があります。

  • 割引額(固定またはパーセンテージ)
  • クーポンの種類
  • 有効期限

使用制限、ユーザーごとの制限など、他のオプションを追加することもできます。 詳細については、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(){
   $クーポンコード= 'すべての商品';
   #顧客の注文を取得する
   $ user_id = wp_get_current_user();
   $ customer_orders = [];
   foreach(wc_get_is_paid_statuses()as $ payd_status){
       $ customer_orders + = wc_get_orders([
           'タイプ
'=>' shop_order '、
           'limit' =>-1、
           'customer_id' => $ user_id-> ID、
           'status' => $ payed_status、
       ]);
       #既存の注文がある場合はクーポンを適用する
       if(count($ customer_orders)> 0){ 
           printf( '<div class = "woocommerce-message">この注文は、リピーターであるため割引に適用されます!</ div>');
           if(WC()-> cart-> has_discount($ Coupon_code))return;
           WC()-> cart-> apply_coupon($クーポンコード);
           wc_print_notices();
           壊す;
       }   
   }
}

カートページの結果は次のとおりです。

WooCommerceクーポンを自動的に適用する-リピーター向けクーポン

ご想像のとおり、これにはユーザーが自分のアカウントにログインする必要があります。これは、ユーザーIDを取得して、既存の注文があるかどうかを確認する必要があるためです。

その条件が満たされると、割引が適用され、カートにメッセージが表示されます。

メッセージを変更するには、スクリプトのprintif行を編集するだけです。

2.2)アカウントのユーザー情報にWooCommerceクーポンを適用する

ユーザーアカウントの詳細に応じて、指定されたクーポンを適用することもできます。 次のサンプルスクリプトでは、アカウントで国として米国(US)を入力した顧客にのみクーポンを適用します。 これは、特定の市場や国で売り上げを伸ばすためのターゲットを絞ったプロモーションにとって興味深いオプションです。

 //請求国(米国)にクーポンを適用します
add_action( 'woocommerce_before_cart'、 'QuadLayers_customer_information_coupon');
 
関数QuadLayers_customer_information_coupon(){
   $クーポンコード= 'すべての商品';
   $ user = wp_get_current_user();
   $ data = get_user_meta($ user-> ID、 'billing_country'、true);
   if($ data == "US"):
   printf( '<div class = "woocommerce-message">この注文は、米国のお客様の割引に適用されます!</ div>');
           if(WC()-> cart-> has_discount($ Coupon_code))return;
           WC()-> cart-> apply_coupon($クーポンコード);
           wc_print_notices();
   それ以外:
       WC()-> cart-> remove_coupons(sanitize_text_field($クーポン_コード));
       wc_print_notices();  
       WC()->カート-> calculate_totals();    
   endif;
}

ユーザーの請求国が米国に設定されている場合はクーポンを追加するだけでなく、国が米国でない場合はクーポンも削除します。 そうしないと、ユーザーは請求先住所を編集してクーポンを取得でき、元の国に戻った後もクーポンはそのまま残ります。

2.3)スケジュールに従ってクーポンを適用する

デフォルトのWooCommerceオプションを使用すると、特定の日付または日付スケジュールに適用されるクーポンを作成できます。 しかし、毎日のスケジュールでクーポンを適用する必要がある場合はどうなりますか? たとえば、次のスクリプトを使用して、指定したクーポンを午前6時から午前10時までのみ適用します。

これは、フラッシュ販売を開始し、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、$ minutes、$ second)= preg_split( "([^ 0-9])"、$ blogtime);
   $クーポンコード= 'すべての商品';
   if($ hour> = 06 && $ hour <10){
       printf( '<div class = "woocommerce-message">おはよう割引(午前6時から午前10時まで)</ div>');
           if(WC()-> cart-> has_discount($ Coupon_code))return;
           WC()-> cart-> apply_coupon($クーポンコード);
           wc_print_notices();
   }
}

条件付きで一意のWebサイトの時刻を取得しており、それはサーバーからのものであるため、顧客がいるタイムゾーンに関係なく同じ時間になることに注意してください。 タイムゾーンごとに特定の時間を設定するには、追加のロジックを含める必要があります。

2.4)製品タグの分類法にクーポンを適用する

これはより複雑な機能であり、カートに追加された商品のすべてのタグを取得し、特定のタグが存在するかどうかを確認します。

次の例では、使用するタグは「 freeweek 」であるため、これを行う前に、タグを作成して一部の製品に添付する必要があります。 または、製品にすでに付けられているタグを使用することもできます。

 //クーポンを商品タグの分類法に適用します(freeweek)
//
add_action( 'woocommerce_before_cart'、 'QuadLayers_tag_coupon');
 
関数QuadLayers_tag_coupon(){
   $クーポンコード= 'すべての商品';
   $ id_a = array();
   foreach(WC()-> cart-> get_cart()as $ key => $ cart_item){
       for($ i = 0; $ i <$ cart_item ['quantity']; $ 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 as $ term){
               $ term_name = $ term-> name; //製品タグ名
           if($ term_name == 'freeweek'):
                   printf( '<divclass = "woocommerce-message">商品は割引でタグ付けされています!</ div>');
                   if(WC()-> cart-> has_discount($ Coupon_code))return;
                   WC()-> cart-> apply_coupon($クーポンコード);
                   wc_print_notices();
               壊す;
           それ以外:
                   WC()-> cart-> remove_coupons(sanitize_text_field($クーポン_コード));
                   wc_print_notices();  
                   WC()->カート-> calculate_totals();
           endif;
       }
   }
}

この割引は、指定されたタグを持つカートに追加されたすべての製品に適用されます。

繰り返しになりますが、コードの「 freeweek 」タグ名を製品タグに置き換えてください。

2.5) URLパラメータにクーポンを適用する

クーポンコードのもう1つの興味深いアプリケーションは、URLパラメータを使用してカスタムリンクを構築することです。 ブラウザでは、URLパラメータとその値は次のように表示されます。

https://my.website.com/cart?parameter=value

このようにして、カスタムリンクを作成し、電子メールまたは電話で顧客に配信できます。 クーポンは、誰かがリンクをたどると自動的に注文に適用されます。 リンクを受け取ったユーザーは他のユーザーとリンクを共有できるため、他の条件を追加して、必要な顧客だけが割引にアクセスできるようにすることができます。

 // URLパラメータにクーポンを適用します(?co = custom-link)
add_action( 'woocommerce_before_cart'、 'QuadLayers_url_coupon');
 
関数QuadLayers_url_coupon(){
       $クーポンコード= 'すべての商品';
   if(isset($ _ GET ['co'])&&!empty($ _ GET ['co'])):
       $ url_p = $ _ GET ['co'];
       if($ url_p == 'custom-link'):
           printf( '<div class = "woocommerce-message">製品は割引を申請します!%lt; / div>');
                   if(WC()-> cart-> has_discount($ Coupon_code))return;
                   WC()-> cart-> apply_coupon($クーポンコード);
                   wc_print_notices();
       それ以外:
                   WC()-> cart-> remove_coupons(sanitize_text_field($クーポン_コード));
                   wc_print_notices();  
                   WC()->カート-> calculate_totals();
       endif;
   endif; 
}

ご覧のとおり、上記で使用しているカスタムリンクはhttps://my.web?co=custom-linkです。

ボーナス:特定の製品にクーポンを適用する

興味深いオプションは、 WooCommerceクーポンを特定の製品に自動的に適用することです。 このようにして、最初に顧客を引き付け、次に他のアイテムでそれらをアップセルしようとするために、いくつかの製品をさらに魅力的にすることができます。

これを行うには、次のスクリプトを使用して、 $products_id()配列を独自の製品IDに変更します。

 add_action( 'woocommerce_before_cart'、 'QuadLayers_apply_matched_id_products');
関数QuadLayers_apply_matched_id_products(){  
    
    //以前に作成されたクーポン;
    $クーポンコード= 'auto_coupon'; 
    //これは製品ID / s配列です  
    $ product_ids = array(664,624,619); 
    // クーポンを適用。 デフォルトはfalseです
    $ apply = false;
 
    //カート製品ループに追加
    foreach(WC()-> cart-> get_cart()as $ cart_item_key => $ cart_item){                      
        if(in_array($ cart_item ['product_id']、$ product_ids)):              
            //商品一致のID
            $ apply = true;
            壊す;                     
        endif;  
    }
    //クーポンの適用と削除
    if($ apply == true):
        WC()-> cart-> apply_coupon($クーポンコード);
        wc_print_notices();  
    それ以外:    
        WC()-> cart-> remove_coupons(sanitize_text_field($クーポン_コード));
        wc_print_notices();   
        WC()->カート-> calculate_totals();    
    endif; 
}

このようなその他の例については、プログラムでクーポンを作成して適用するためのガイドをご覧ください。

クーポンから商品を除外する方法

または、特定の商品をクーポンから除外して、割引が適用されないようにすることもできます。 これは、バンドル商品やマージンの低い商品など、すでに割引が適用されている商品を販売する場合に興味深いオプションになる可能性があります。

良いニュースは、WordPress管理ダッシュボードからこれを行うことができるということです。 [商品]> [すべての商品]に移動し、クーポンから除外する商品にカーソルを合わせて、商品IDを書き留めます。

次に、 [外観]> [テーマエディター] > [テーマ関数]に移動し、 functions.phpファイルを開きます。 その後、次のコードを貼り付けて、PRODUCT_IDを製品のIDに置き換えます。

 add_filter( 'woocommerce_coupon_is_valid_for_product'、 'quadlayers_exclude_product_from_product_promotions'、9999、4);
function quadlayers_exclude_product_from_product_promotions($ valid、$ product、$クーポン、$ values){
//製品IDを交換します(EG 145)
if(PRODUCT_ID == $ product-> get_id()){
$ valid = false;
}
$ validを返します。
}

それでおしまい! 選択した商品はクーポンの影響を受けません。

これは単純な例ですが、できることは他にもたくさんあります。 これについての詳細は、クーポンからWooCommerce製品を除外するためのチュートリアルをご覧ください。

結論

全体として、買い物客にクーポンを提供することは、顧客体験を改善し、売り上げを伸ばすための優れた方法です。 さらに、顧客に特別割引を提供することで、顧客はあなたの店に忠実になる可能性が高くなります。

ただし、適切なタイミングで割引を提供するようにしてください。 クーポンコードの付与が早すぎたり遅すぎたりすると、期待した効果が得られない場合がありますので、賢く使用してください。

このガイドでは、WooCommerceのクーポンオプションにデフォルトでいくつかの制限があることを確認しました。 WooCommerceクーポンを自動的に適用する方法を学ぶことで、ユーザーの生活を楽にし、サイトでのショッピング体験を向上させることができます。

店舗を次のレベルに引き上げるのに役立つさまざまな状況でクーポンを自動的に適用するさまざまな例を見てきました。 WooCommerceクーポンの詳細については、次の投稿を確認してください。

  • WooCommerceでクーポンを設定する方法
  • プログラムでWooCommerceクーポンを作成する方法(例付き)
  • WooCommerceクーポンコードフィールドを編集する

上記のスクリプトのいずれかをサイトで試しましたか? それらは期待どおりに機能しましたか? 以下のコメントセクションであなたの経験を教えてください!