Cron リマインダー、自動キャンセル Ver.1.5
この機能はVer.1.5で新しく追加しました。
リマインダーはメール送信機能で、宿泊日前に予約者へ送信する、あるいは決済期限日前にメールを送信する、などを実現するための機能です。
自動キャンセルは、期限設定日までに決済処理が確認できていないとき、指定日に自動で予約をキャンセルする機能です。処理の実行内容は、予約データの削除と専用のメール送信となります。
これらの機能を利用するにはサーバーのcron機能を利用する必要があります。ですので設定、ご利用はcron機能について知識があるものとして説明します。
指定時刻にプログラムを実行する方法
WordPressを含む本プログラムの動作は、ブラウザーを利用してサイトへアクセスされたときに実行を開始し、HTMLの出力が終わると処理が終了、停止します。
プログラムの動作は停止すると、次に呼び出されるまで起動しません。
指定した時間にリマインダーのメールを送信したい場合、プログラムを起動するためのきっかけが必要になります。が、サイトのアクセスはサイト訪問者に依存するため不確かです。そこで確実に動作させる方法として、サーバーの「cron」機能を利用するようにします。
設定はWordPress側とサーバー側の両方必要です。サーバー側の設定は、利用しているサーバーに合わせて設定してください。サーバーの設定やWordPress側で利用するための設定は、解説の中で順次説明します。
cronを利用するためのWordPress側の設定
サーバーのcron機能を利用する場合、WordPressが持つcronを擬似的に実行する機能を使わないようにします。設定は wp-config.php ファイル内で、「DISABLE_WP_CRON」を「true」に設定します。定義文は次の通りです。
define('DISABLE_WP_CRON', 'true');
各種設定画面「Cron」の説明
下図は設定画面の例です。この機能を「有効」化する際は、設定が終了した事を確認してから最後に「有効」を保存するようにしましょう。
cronで実行する処理の設定概要
定期的に処理を実行するには、どのような項目を設定すればいいでしょうか?以下に詳しく説明します。
設定で大事な点として、決められた時刻にキャンセルを実行する、あるいはメールを送信するための、対象となる予約データを検索しなければなりません。その検索キーが「基準日」となります。
基準日とは、例えばリマインダーのメール送信は「宿泊日」から数えて何日前に送信するか、あるいはキャンセルを実行するのは「決済期限日」から数えて何日後か、という日付です。
「宿泊日」について説明は必要ありませんが、「決済期限日」については注意が必要です。それは決済の期限が「予約申込から何日以内」か、または「宿泊日の何日前まで」に決済するか、と、期限の基準が「予約申込日」の場合と、「宿泊日」の場合の2つあるからです。
設定や動作を確認する場合は注意してください。
次に何日前、あるいは、何日後、の日数指定ですが、前方なら「マイナスの整数」を、後方なら「符号なし整数」を設定します。例えば宿泊日前日なら設定日数は「-1」となります。
設定時刻は、cronによって起動された時間が設定時刻を過ぎているかどうか、の判定に利用します。プログラムの起動時間が設定時刻以上であれば、メールを送信したり、キャンセルを実行する処理が進められます。
cronを利用するためのサーバー側の設定
サーバーにおけるcronの設定は、この設定時刻と毎日同時刻に1回動作するように設定しておくことをお勧めします。
動作の対象となる予約データは、設定時刻から当日中は判定の対象としますので、1回のcronで処理しきれない場合、cron設定で1時間後にもう1度起動するようにしておくと良いでしょう。
cronの設定で毎時動作する設定は、サイトのレスポンスに影響を与えると思われますので避けるようにしてください。
ところでcronを利用してWordPressを起動する方法ですが、インストールされたWordPressのトップディレクトリにある「wp-cron.php」プログラムを実行することです。このプログラムはサーバー上でPHPコマンドを利用して実行します。
以下は「さくらのインターネット」レンタルサーバーにおいて、管理画面のCRONで設定する実行コマンドの例です。
/usr/local/bin/php /home/ユーザー名/www/サイトディレクトリ/wp-cron.php 1> /dev/null
PHPの起動は絶対パスで指定し、実行ファイルwp-cron.phpを絶対パスで、動作の標準出力はnullデバイスにリダイレクトする、という設定になります。
キャンセルの自動実行について
最初に自動でのキャンセル実行は、トラブルの原因となる危険があることを理解してください。
予約が受け付けられると予約者は、その人の意思によってキャンセルが実行されない限り、故意かどうかに関わらず当日に来館する可能性があります。その場合、大きなトラブルに発展する恐れがありますので、この機能を利用する場合は対処も含め、熟考してご利用ください。
予約データとキャンセル処理について
予約データはデータベース上に、「予約申込」データと「客室予約」データの2種類が登録され、管理されています。
キャンセルを実行すると「客室予約」データを削除し、予約済み客室のカウントから除外されるようになり、空室扱いとなります。
キャンセルを実行すると客室予約データは削除され、元に戻す事ができません。
キャンセルの対象となるデータ
キャンセルの対象となる予約データは日付を判定すると同時に、予約データの「精算」項目が「未」または「未-」になっている予約データを対象とします(予約直後は「未」となります)。
この「精算」項目は決済機能(MTS PayPayjp)が有効な場合、利用者がWebページ上で決済を実行することにより「与信」または「確定」に書き替えられます。「未-」は、Webページ上で決済画面へ移動したとき、本システムが決済処理の準備を実行して「未-」とします。決済を実行しなければ「未-」の状態のままとなります。
キャンセルの対象から除外したい場合、予約データの「精算」項目を「未、未-」以外に設定してください。
キャンセル自動実行の設定項目
サーバーのcronが有効化され、各種設定で「キャンセルの自動実行」が「する」に設定されていると、キャンセル機能が動作するようになります。
あらかじめ「自動キャンセル基準日」、「キャンセルの自動実行日」、キャンセルした予約者のメールアドレスに送信するメールテンプレートを「キャンセル実行メール」項目で設定しておいてください。
リマインダーの設定について
リマインダーは、日時を判定して設定されたメールテンプレートを元に、メールを自動で送信する機能です。設定項目についてすでに説明した内容と同じため、設定項目の内容が不明な場合は前述の内容を確認してください。
リマインダーの設定ですが、いくつでも登録できます。リマインダー機能を利用してメールを送信したい場合、設定登録したリマインダーの「実行」チェックボックスにチェックをして保存してください。チェックを外せばリマインダー処理の対象から除外されます。
登録する際「名称」項目に、「宿泊日3日前」など分かり易いタイトルを登録しておくと良いでしょう。
サーバー利用の注意点
レンタルサーバーは、複数の利用者によって共有されています。そのため、利用可能なハードディスクなど外部記憶装置の容量が制限されているのと同じように、プログラムを実行するCPUの占有時間も制限されています。
大量のデータ処理はサーバー動作に負担が掛かるため、処理が中断されることがあるかも知れません。
利用者は注意を向ける必要があることにご留意ください。
Cronの実行結果
管理画面の「予約リスト」メニューに新しく、「Cron」タブページを追加しました。
リストの右側にある「実行済」欄に、Cronで実行した内容が表示されます。表示アイコンの意味ですが、「ごみ箱」アイコンはキャンセルの実行を示し、「メール」アイコンはメール送信を示します。またその右側の文は、記録した送信メールの件名を表示しています。
手動実行
Cronタブページでは、実行する「Cron」リストから登録したリマインダーを選択し、「実行日」を入力して「検索」した結果、予約データが見つかった場合、手動で強制的に実行する事ができます。
自動で動作させるCronの機能は、cron実行時を起点として日付を求めます。一方この管理画面では、入力された「実行日」を起点として日付を求めます。
検索結果の上部、「手動実行」ボタンの左側には対象となるリマインダー、起点となる実行日、そして求めた基準日が表示されます。動作を確認する場合の参考になりますのでご活用ください。