WordPressの管理画面で、各フォームプラグインの送信先メールアドレスを一元管理し、常に確認できるようにするカスタマイズ方法をご紹介します。
1. メールアドレスの定数定義(shortcodes.php)
/* 送信先メールアドレス(To:)の定数定義 */
$my_recipients = "info@example.com";
// $my_recipients2 = ""; // 必要に応じて追加
// $my_recipients3 = "";
// $my_recipients4 = "";
2. メールタグの設定
MW WP Form 用のメールタグ設定
/*『MW WP Form』{メールタグ} 設定 */
function add_sender_info($value, $key, $insert_contact_data_id) {
global $my_recipients, $my_recipients2, $my_recipients3, $my_recipients4;
// キーと変数の対応を配列で定義
$recipients_map = array(
'my_recipients' => $my_recipients,
'my_recipients2' => $my_recipients2,
'my_recipients3' => $my_recipients3,
'my_recipients4' => $my_recipients4
);
// キーが存在し、値が設定されている場合はその値を返す
if (isset($recipients_map[$key]) && $recipients_map[$key]) {
return $recipients_map[$key];
}
return $value;
}
add_filter('mwform_custom_mail_tag', 'add_sender_info', 10, 3);
Contact Form 7 用のメールタグ設定
/*『Contact Form 7』[_メールタグ] 設定 */
function add_wpcf7_recipients($output, $name) {
global $my_recipients, $my_recipients2, $my_recipients3, $my_recipients4;
// タグと変数の対応を配列で定義
$recipients_map = array(
'_my_recipients' => $my_recipients,
'_my_recipients2' => $my_recipients2,
'_my_recipients3' => $my_recipients3,
'_my_recipients4' => $my_recipients4
);
// タグが存在し、値が設定されている場合はその値を返す
if (isset($recipients_map[$name]) && $recipients_map[$name]) {
return $recipients_map[$name];
}
return $output;
}
add_filter('wpcf7_special_mail_tags', 'add_wpcf7_recipients', 10, 2);
MTS Simple Booking の送信先制御
/* MTS Simple Bookingの送信先制御 */
add_filter('mtssb_option_premise', function($premise) {
global $my_recipients, $my_recipients2, $my_recipients3, $my_recipients4;
if ($my_recipients) {
$premise['email'] = $my_recipients;
}
if ($my_recipients2) {
$premise['email2'] = $my_recipients2;
}
if ($my_recipients3) {
$premise['email3'] = $my_recipients3;
}
if ($my_recipients4) {
$premise['email4'] = $my_recipients4;
}
return $premise;
});
3. 管理画面での表示設定(admin-style.php)
/* 管理画面のカスタマイズ */
function wp_admin_custom() {
echo '<style>
/* 送信先メールアドレス(To:)を表示 */
#wp-admin-bar-mail_recipients {
pointer-events: none;
position: absolute !important;
z-index: 10;
top: 32px;
left: 0px;
margin: auto;
}
#wp-admin-bar-mail_recipients .ab-item {
height: auto !important;
padding: 0.5em 3em 0.5em 19px !important;
background: var(--c-assort, hsl(223, 62%, 18%)) !important;
color: #FFF;
white-space: nowrap;
}
#wp-admin-bar-mail_recipients .ab-item:before {
position: relative;
display: inline-flex;
justify-content: center;
align-items: center;
width: 0;
height: 0.6em;
padding-right: 0.5em;
font-size: 160%;
font-family: "Material Symbols Sharp";
font-variation-settings: "FILL" 1, "wght" 400;
content: "\\f187";
}
</style>';
}
add_action('admin_head', 'wp_admin_custom');
/* アドミンバーに送信先表示 */
function add_mail_recipients_to_admin_bar($wp_admin_bar) {
global $my_recipients, $my_recipients2, $my_recipients3, $my_recipients4;
$title = '<div style="line-height: 1.44;">';
$title .= "メール送信先(To:): $my_recipients";
if ($my_recipients2) $title .= "<br>メール送信先2(To:): $my_recipients2";
if ($my_recipients3) $title .= "<br>メール送信先3(To:): $my_recipients3";
if ($my_recipients4) $title .= "<br>メール送信先4(To:): $my_recipients4";
$title .= "</div>";
$args = array(
'id' => 'mail_recipients',
'title' => $title,
'meta' => array('class' => 'mail-recipients')
);
$wp_admin_bar->add_node($args);
}
add_action('admin_bar_menu', 'add_mail_recipients_to_admin_bar', 998);
使用方法
フォームでのタグ使用
- MW WP Form:
{my_recipients}
,{my_recipients2}
など - Contact Form 7:
[_my_recipients]
,[_my_recipients2]
など - MTS Simple Booking: 自動的に設定値が適用される
表示確認
管理画面上部に送信先メールアドレスが常時表示され、一目で確認できます。
メリット
-
一元管理
- すべての送信先を一箇所で管理
- 変更が容易
- ミスを防止
-
視認性
- 管理画面で常時確認可能
- 分かりやすい表示
- 複数の送信先を整理して表示
-
プラグイン連携
- 主要フォームプラグインに対応
- 統一的な管理が可能
- 設定の簡略化
-
保守性
- コードの管理が容易
- 拡張が簡単
- デバッグが容易
注意点
- Material Symbols フォントの読み込みが必要
- プラグインのアップデートによる影響の確認
- 送信先の追加時はコードの修正が必要
このカスタマイズにより、複数のフォームプラグインを使用するサイトでも、送信先メールアドレスの管理が効率化され、ミスを防ぐことができます。