WP Booking Systemで予約時に管理者への通知をONにすると、飛んできたメールの上部に「Manage Booking in WP Admin」というテキストのリンクが表示されます。
このテキストはハードコード(hard cord)のため管理画面から変更することができません。
ここでは、このテキストを変更する方法についてまとめています。
予約時の管理者への通知とは?
WP Booking System では、WEBサイト上の予約フォームから予約があったときに、管理者宛てに指定した内容でメールを送信することができます。
設定は「Forms」→「Email Nortifications」→「Admin Nortification」で行います。
宛先、送信者名、送信元のE-mail、返信先、件名、本文を自由に入力できます。
しかも、内容にはフォームで取得した内容を指定することができます。
実際の入力は以下のように行います。
テキストリンクを変更する方法
本題の自動メールに記載されている上部のテキストリンクを変更するには、functions.phpに以下のコードを追記します。
add_filter('wpbs_email_manage_booking_label', function(){
return '>予約管理画面へ';
});
returnで戻り値に指定した値が表示されます。上記の例では「>予約管理画面へ」です。これは自由に変更することができます。
記述場所はWordPress管理画面の「外観」→「テーマファイルエディタ」へと進みます。
functions.phpを選択します。
内容を追記して「ファイルを更新」をクリックします。
以上で設定完了です。
実際に予約をしてみるときちんと変更されていることがわかります。
デフォルト
変更後
リンククリック後
もちろんリンクもきちんと機能します。
コードの解説
以下は補足です。ここで紹介したコードが何をしているかを簡単に解説します。
add_filter('wpbs_email_manage_booking_label', function(){
return '>予約管理画面へ';
});
add_filterとは?
add_filterとはWordPressで用意されている機能の一つで「フィルターフック」と呼ばれます。functions.phpに記述することで、指定した処理を上書きすることができます。
add_filterは以下のように使用します。
add_filter( string $hook_name , callable $callback , int $priority = 10 , int $accepted_args = 1 ):ture
これだとごちゃごちゃしているのでわかりにくいですが、簡単に書くと以下のようになります。
add_filter( フィルター名 , 実行する関数 , 重要度 , 引数)
パラメーター | 型 | 詳細 | デフォルト値 |
---|---|---|---|
$hook_name | 文字列 | フック名 | – |
$callback | 関数 | 実行する関数 | – |
$priority | 整数 | 重要度 ・数値が小さいほど優先順位が高い ・同じ数値の場合はフィルターに追加された順序で実行。 | 10 |
$accepted_args | 整数 | 関数が受け入れる引数の数 | 1 |
なお、add_filterは最後にreturnで必ず戻り値を返さなければいけません。
つまり何をしている?
つまり今回指定した以下のコードは
add_filter('wpbs_email_manage_booking_label', function(){
return '>予約管理画面へ';
});
「wpbs_email_manage_booking_label」というフックに対して、function~という関数を実行していることになります。
WP Booking SystemではEメールに記載していえるmanage bookingのラベルを指定しているフィルターが「wpbs_email_manage_booking_label」です。
関数の中身
続いて実行している関数の中身を見ていきます。
add_filter('wpbs_email_manage_booking_label', function(){
return '>予約管理画面へ';
});
ただ単に return でテキストを返しています。
add_filterは必ずreturnで戻り値を返す必要があり、ここでは置き換えたいテキストを返しています。これで、リンクテキストが置き換わります。
(参考) PHP公式 str_replace