welcartで特定会員限定の商品販売

WordPressで簡単にECサイトを始められるwelcartですが、少し込み入ったことをしようとすると

カスタマイズにより実現する必要が出てきます。

今回は「一般のお客様向けには販売しないが、特定のユーザ・条件の場合にのみ販売する」という機能を実現するための方法をご紹介

簡単にいうと、「セッション」を利用します。

限定販売 実現イメージ

下記の手順で限定販売を実現します。

  1. 商品を購入したいお客様が商品詳細ページを閲覧
  2. 「カートに入れる」ボタンの代わりに表示する「問い合わせ」ボタンから問合せ
  3. 問合せ受領後、審査をおこなって問題なければランディングページURLを送付
  4. お客様は送付されたランディングページのURLから商品を購入

カスタマイズ

まずはwordpressでセッション管理を利用できるようにします。

wordpressのセッション管理

 
//SESSION 開始
function init_session_start(){
    session_start();
}
add_action('init', 'init_session_start');

<!-- /wp:html -->

<!-- wp:paragraph -->
<p>まずはおなじみのfunction.phpから</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>wordpressでセッション管理するには、まず「セッションを利用します!」という宣言が必要なのですが、これは処理の最初に動く必要があります。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>そこでinitというフィルターフックを使って、セッション利用の宣言を記述しております。</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 id="vk-htags-d7240a80-0d46-4504-afe5-9f7e23786713">限定販売用のカート</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>商品詳細ページの「カートに入れる」ボタンを修正します。</p>
<!-- /wp:paragraph -->

<!-- wp:html -->

add_filter( 'usces_filter_item_sku_button',  'my_filter_item_sku_button', 10,3);
function my_filter_item_sku_button( $html, $value, $type ) {
    global $usces, $post;
    if($_SESSION['taxonomy'] == 'available'){
        return $html;
    }
    $post_id = $post->ID;
    $terms = get_the_terms($post_id,'post_tag');

    $target_terms = [1,2];

    $contact_flg = 0;
    foreach($terms as $term){
        foreach($target_terms as $key => $value){
            if($term->term_id == $value){
                $contact_flg = 1;
                break;
            }
        }
    }

    //お問合せへ遷移
    if($contact_flg == 1){
        return '<b>商品お問合せの方はお問合せ下さい</b><div class="contact-item"><a name="cart_button" href ="/contact">この商品に関するお問合せ</a></div>';
    }else{
        return $html;
    }
}

まずadd_filterで商品詳細ページのボタンについての機能をオーバーラップします。

処理の内容としてはこのイメージです。

セッションを利用することで、「問い合わせボタン」か「カートに入れる」かを制御しております。

今回は要件で「特定のカテゴリ」という内容もあったため、カテゴリ判定のロジックも入れております。

こちらはwelcartで取得できる情報であればなんでも制御に利用可能です。

限定商品購入用ランディングページ

ページに遷移したタイミングで、セッション情報を登録してあげます。

例えば、single-limited.phpなどをコピー新規で作成し、固定ページにテンプレートを割り当てます。

そして、single-limited.phpに下記記述を追加するイメージです。

$_SESSION['taxonomy'] = 'available';

これにより、このページを踏んだお客様限定で

特定の商品がスムーズにカートに入れられるようになります。

こちらのページのURLは問合せ頂いたお客様にのみ送付する運用で

限定商品販売という業務を実現いたしました。

課題

簡単なつくりをしているので弱点もあります。

それは「URLが知られてしまうと、誰でも購入できてしまう」ことです。

ランディングページから遷移すれば、限定商品が購入できるので

ページのURLを知っていれば、購入ができてしまいます。

サイトとして大きくなってきた場合には課題になると思いますが、はじめは大きな問題にはならないと思いますので、低コストで実現する方法としてはアリだと思います。

コメントを残す