利用できる最低保有ポイント数を設定
スポンサーリンク
Welcartのポイントシステムは基本的なものだけなので、時にカスタマイズが必要になります。
※希望としては、ポイント期限や期間限定ポイントが欲しいところですが・・・。
今回は、お買い物で利用できる、最低保有ポイント数を設定する方法です。一定以上のポイントを保有していることが条件となるので、お客様には使い勝手の悪い印象を与える可能性も考えられます。導入は慎重に行いましょう。
「内容確認」を表示するテンプレートをカスタマイズする、お手軽な方法で、簡単に導入出来ます。
また、こちらの記事では「ポイントが利用できる最低購入金額」を設定する方法も紹介しています。ご自身のWelcartサイトに合わせてお使い下さい。
カスタマイズ手順
- wc_confirm_page.phpを使用中のテンプレートに設置
- wc_confirm_page.php内のポイント表示部分をカスタマイズする
手順の1番は、ポイントが利用できる最低購入金額の設定と同じになります。
1. wc_confirm_page.phpを使用中のテンプレートに設置
※使用中テーマにwc_confirm_page.phpを既に組み込んでいる場合は、この手順は不要です。
Welcart用のテンプレートをカスタマイズする場合は、必要なテンプレートを使用中のテーマ内に設置(退避)する必要があります。使用中テーマ内に設置したWelcart用テンプレートは、プラグイン内のテンプレートよりも優先されて読み込まれます。※よって、不要なテンプレートは設置しないようにしましょう。
今回は「内容確認」ページなので、wc_confirm_page.phpというテンプレートを使用中テーマに設置します。元ファイルは、Welcartプラグイン内の以下の場所にあります。
使用中のテーマ内にこのテンプレートを設置しますが、設置場所はwelcart_default(Welcartのデフォルトテーマ)内のフォルダ階層と同様になるようにします。
- 使用中のテーマ
- wc_templates
- cart
- wc_confirm_page.php ←ココ
- cart
- wc_templates
以下で説明するカスタマイズは、使用テーマ内に設置したこのwc_confirm_page.phpで行います。
2. wc_confirm_page.php内のポイント表示部分をカスタマイズする
2-1. ポイント利用の表示をしているコードを確認
ポイント利用の表示をしているコードは、wc_confirm_page.php内の102~120行目の以下部分です。※102行目と120行目は、ログインしているか・ポイント制度があるかどうか等を判別する条件分岐で、実際の入力フォームは103~119行目になります。
<?php if( usces_is_member_system() && usces_is_member_system_point() && usces_is_login() ) : ?> <form action="<?php usces_url('cart'); ?>" method="post" onKeyDown="if (event.keyCode == 13) {return false;}"> <div class="error_message"><?php usces_error_message(); ?></div> <table cellspacing="0" id="point_table"> <tr> <td><?php _e('The current point', 'usces'); ?></td> <td><span class="point"><?php echo $usces_members['point']; ?></span>pt</td> </tr> <tr> <td><?php _e('Points you are using here', 'usces'); ?></td> <td><input name="offer[usedpoint]" class="used_point" type="text" value="<?php echo esc_attr($usces_entries['order']['usedpoint']); ?>" />pt</td> </tr> <tr> <td colspan="2"><input name="use_point" type="submit" class="use_point_button" value="<?php _e('Use the points', 'usces'); ?>" /></td> </tr> </table> <?php do_action('usces_action_confirm_page_point_inform'); ?> </form> <?php endif; ?>
上記コードの中で、ポイント入力のテーブル(行)を出力しているのは、110~113行目の以下のコードです。
<tr> <td><?php _e('Points you are using here', 'usces'); ?></td> <td><input name="offer[usedpoint]" class="used_point" type="text" value="<?php echo esc_attr($usces_entries['order']['usedpoint']); ?>" />pt</td> </tr>
そして、「ポイントを使う」テーブル(行)を出力しているのは、114~116行目の以下のコードになります。
<tr> <td colspan="2"><input name="use_point" type="submit" class="use_point_button" value="<?php _e('Use the points', 'usces'); ?>" /></td> </tr>
これら二つまとめた110~116行目を、必要な保有ポイントに達していない時に「○○pt以上からポイントが利用できます」という表示に変えればOKです。
次のステップで、そのカスタマイズを行います。
2-2. ポイント利用の表示部分をカスタマイズ
今回は、ポイントを表示しているテーブルの表示を以下のように変えます。
- 保有ポイントが一定ポイント以上:利用ポイント入力画面と「ポイントを使用する」ボタンを表示
- 保有ポイントが一定ポイント以下:「○○ポイント以上からポイント利用が出来ます」を表示
保有ポイントが一定以上かどうかを判定するには、以下の条件分岐を使います。ここでは、最低保有ポイントは100pt以上という設定で、1行目に100という数字を記載しています。
<?php if( $member['point'] >= 100): ?> //ここに保有ポイントが一定以上の場合に表示する内容を記載 <?php else: ?> //ここに保有ポイントが一定未満の場合に表示する内容を記載 <?php endif; ?>
「//ここに保有ポイントが一定以上の場合に表示する内容を記載」には、先ほどの102~120行目のポイント入力フィールドを、「//ここに保有ポイントが一定未満の場合に表示する内容を記載」には「○○pt以上からポイントが利用出来ます」という表示を行うコードを入力すればいいことになります。
コードをまとめると、以下のようになります。
<?php if( $member['point'] >= 100): ?> <tr> <td><?php _e('Points you are using here', 'usces'); ?></td> <td><input name="offer[usedpoint]" class="used_point" type="text" value="<?php echo esc_attr($usces_entries['order']['usedpoint']); ?>" />pt</td> </tr> <tr> <td colspan="2"><input name="use_point" type="submit" class="use_point_button" value="<?php _e('Use the points', 'usces'); ?>" /></td> </tr> <?php else: ?> <tr> <td colspan="2">100pt以上からポイントが利用出来ます。</td> </tr> <?php endif; ?>
これで、100pt以上保有してない場合は、ポイント利用の入力フィールドとボタンが表示されず、代わりに「100pt以上からポイントが利用出来ます。」という案内が出るようになります。
このカスタマイズは「利用は○○ポイントから」という訳ではなく、飽くまで最低保有ポイント数を判定するものなので、改善の余地ありかなと思います。
楽天では50ポイント以上から等、ポイント利用に規定がありますが、個人的には「1ptからでもOK」のほうがお客様にとっては使いやすい(リピートしやすい)のかなと思います。
今後はWelcartの本体で、ポイント期限や期間限定ポイントが利用出来るようになるといいですね。