プログラムで WooCommerce で一意のクーポン コードを作成する方法

公開: 2020-07-06

前回の投稿では、クーポン コードを自動的に WooCommerce カートに適用する方法について説明しました。 そこでは、さまざまな顧客によるすべての注文に対して、WooCommerce -> クーポン メニューの下に作成された汎用クーポン コードを使用しました。

しかし、店舗のオーナーとして、特定の状況で Web サイトの顧客ごとに固有のクーポン コードを作成したい場合があります。 固有のクーポン コードを作成する場合の 2 つの例を見てみましょう。

1:

オンライン ストアのオーナーとして、顧客の購入サイクルで直面する最悪の事態は、ショッピング カートの放棄です。 約。 Web サイトのカートの 68 ~ 70% がユーザーによって放棄されており、それには複数の理由が考えられます。 最も一般的な理由の 1 つは、商品の価格が高いこと、または配送料が高いなどの追加料金が一般的にチェックアウト時に表示され、その前に表示されないことです。

したがって、ここでは、カートの放棄を最小限に抑え、多くのユーザーを顧客に変換するために、購入用の割引クーポンをいくつか提供するだけで顧客を引き付けることができます. このようにして、放棄されたカートを回収されたカートに変換できます。

このような場合、コードの複数回の使用を避けるために、放棄されたカートごとに 1 つの使用制限を持つ一意のクーポン コードを提供することをお勧めします。

例 2:

固有のクーポン コードを作成するもう 1 つの例は、ストアから 1 回購入した顧客が、さらに購入するように引き付けるために、次の購入のために割引クーポンを送信することです。 したがって、ここですべての顧客向けの汎用クーポン コードを作成すると、顧客は、新しい購入に使用できるクーポンを他の知人に渡すことができます。

したがって、ここでは、リピーター向けに作成されたクーポン コードが悪用される可能性があります。 これを避けるには、利用限度額を 1 に設定して、顧客ごとに固有のクーポン コードを作成することをお勧めします。

WooCommerce -> クーポン メニューから顧客ごとに固有のクーポン コードを手動で作成することは現実的ではありません。 したがって、別のオプションは、さまざまなユーザーに対して一度に複数のクーポンを作成するためのコード スニペットを追加することです。それを実現する方法については、投稿で説明します。

WooCommerce で独自のクーポン コードを作成する 2 つの方法

一意のクーポン コードを作成するための最初のステップは、クーポンごとにランダムな文字列を作成することです。 これは、以下のコードを使用して作成されます。

 $characters = "ABCDEFGHJKMNPQRSTUVWXYZ23456789";
$char_length = "8";
$random_string = substr( str_shuffle( $characters ), 0, $char_length );

ここで、substr() 関数は start および length パラメータで指定された文字列の一部を返し、str_shuffle() 関数は渡された文字列をランダムにシャッフルします。

一意の文字列を生成したら、次のステップは、コード スニペットを使用してクーポン コードを作成することです。 WooCommerce でプログラムでクーポン コードを作成する2 つの方法について説明します。

1. wp_insert_post() 関数の使用

クーポン コードをプログラムで追加する最初の方法は、WordPress の投稿を追加または更新できる wp_insert_post() 関数を使用することです。 したがって、私たちの場合、この関数を使用して、投稿タイプが shop_coupon の投稿を追加しています。 作成されたクーポンのメタを追加するには、 update_post_meta() 関数が使用されます。 以下のコードを子テーマの functions.php ファイルに追加するか、コード スニペット プラグインを使用する必要があります。

 $coupon_code = 'ユニークコード'; // ランダムな文字列スニペットを使用して作成されたコード。
$amount = '10'; // 額
$discount_type = 'パーセント'; // タイプ: fixed_cart, percent, fixed_product, percent_product
          
$クーポン = 配列(
    'post_title' => $クーポンコード,
    'post_content' => '',
    'post_status' => '公開',
    'post_author' => 1,
    'post_type' => 'shop_coupon'
);
            
$new_coupon_id = wp_insert_post( $coupon );
            
// メタを追加
update_post_meta( $new_coupon_id, 'discount_type', $discount_type );
update_post_meta( $new_coupon_id, 'coupon_amount', $amount );
update_post_meta( $new_coupon_id, 'individual_use', 'no' );
update_post_meta( $new_coupon_id, 'product_ids', '' );
update_post_meta( $new_coupon_id, 'exclude_product_ids', '' );
update_post_meta( $new_coupon_id, 'usage_limit', '' );
update_post_meta( $new_coupon_id, 'expiry_date', '' );
update_post_meta( $new_coupon_id, 'apply_before_tax', 'yes' );
update_post_meta( $new_coupon_id, '送料無料', 'いいえ' );

2. WooCommerce Rest API の使用

プログラムでクーポン コードを追加するもう 1 つの方法は、プラグイン自体が提供する WooCommerce Rest API を使用することです。 WooCommerce には、認証、データのフェッチ、クーポン、注文などを含む Rest API 用の完全なガイドが用意されていますが、参考までに、クーポン コードの作成に使用できる小さなスニペットを以下に示します。

 require_once __DIR__ . '/vendor/autoload.php';

Automattic\WooCommerce\Client を使用します。
Automattic\WooCommerce\HttpClient\HttpClientException を使用します。

$woocommerce = 新しいクライアント(
    'https://example.com',
    'consumer_key',
    'consumer_secret',
        [
            'wp_api' => 真、
      'バージョン' => 'wc/v3'
        ]
);

$データ = [
    'コード' => '10off',
    'discount_type' => 'パーセント',
    '金額' => '10',
    'individual_use' => true,
    'exclude_sale_items' => true,
    '最小金額' => '100.00'
];
  
$woocommerce->post( 'クーポン', $data );

これは、注文合計が $100 を超える注文で 10% オフのクーポン コードを作成するための基本的なコード スニペットです。 クーポンコードは「10off」で、お一人様のみご利用いただけます。 これらはクーポン コードの作成に必要な基本的なプロパティにすぎませんが、さらにプロパティを追加する場合は、次のリストを参照してください。

id( int )オブジェクトの一意の識別子

code – (文字列)(必須) クーポン コード。

amount – (文字列) 割引額。 パーセンテージを設定する場合でも、常に数値である必要があります。

date_created – (日時) クーポンがサイトのタイムゾーンで作成された日付。

date_created_gmt – (日時) クーポンが作成された日付 (GMT)。

date_modified – (日時) クーポンが最後に変更された日付 (サイトのタイムゾーン)。

date_modified_gmt – (日時) クーポンが最後に変更された日付 (GMT)。

discount_type - (文字列) 適用される割引のタイプを決定します。 オプション: パーセント、fixed_cart、fixed_product。 デフォルトはfixed_cartです。

description – (文字列) クーポンの説明。

date_expires – (文字列) サイトのタイムゾーンでのクーポンの有効期限。

date_expires_gmt – (文字列) クーポンの有効期限が切れる日付 (GMT)。

usage_count – (int) クーポンがすでに使用された回数。

individual_use – (bool) true の場合、クーポンは個別にのみ使用できます。 適用された他のクーポンはカートから削除されます。 デフォルトはfalseです。

product_ids – (配列) クーポンを使用できる製品 ID のリスト。

exclude_product_ids – (配列) クーポンを使用できない商品 ID のリスト。

usage_limit – (int) クーポンを合計で使用できる回数。

usage_limit_per_user – (int) 顧客ごとにクーポンを使用できる回数。

limit_usage_to_x_items – (int) クーポンを適用できるカート内のアイテムの最大数。

free_shipping – (bool) true で、送料無料の方法でクーポンが必要な場合、このクーポンは送料無料を有効にします。 デフォルトはfalseです。

product_categories – (配列) クーポンが適用されるカテゴリ ID のリスト。

exclude_product_categories – (配列) クーポンが適用されないカテゴリ ID のリスト。

exclude_sale_items – (bool) true の場合、このクーポンはセール価格の商品には適用されません。 デフォルトはfalseです。

minimum_mount – (文字列) クーポンが適用される前にカートに入れる必要がある最小注文額。

maximum_mount – (文字列) クーポンを使用する際に許可される最大注文額。

email_restrictions – (配列) このクーポンを使用できるメール アドレスのリスト。

used_by – (配列) クーポンを使用したユーザー ID (またはゲストの電子メール アドレス) のリスト。

meta_data – (配列) メタデータ。

結論

上記のコード スニペットは、クーポン コードの作成方法の一例にすぎません。 Web サイトでそれらを使用するには、必要なフックまたはフィルターにアタッチする必要があります。 たとえば、カートの放棄を追跡しているときにカートの任意のフックで使用したり、毎週実行される Cron ジョブで使用して、顧客に電子メールの更新を送信したりできます。

ユニークなクーポン コードを利用して、あなたのウェブサイトに満足して戻ってくる顧客を増やしましょう。