WordPressの管理画面にフォームの送信先メールアドレスを表示させるカスタマイズ

WordPressの管理画面で、各フォームプラグインの送信先メールアドレスを一元管理し、常に確認できるようにするカスタマイズ方法をご紹介します。

## 1. メールアドレスの定数定義（shortcodes.php）

```php
/* 送信先メールアドレス(To:)の定数定義 */
$my_recipients = "info@example.com";
// $my_recipients2 = "";  // 必要に応じて追加
// $my_recipients3 = "";
// $my_recipients4 = "";
```

## 2. メールタグの設定

### MW WP Form 用のメールタグ設定

```php
/*『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 用のメールタグ設定

```php
/*『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 の送信先制御

```php
/* 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）

```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: 自動的に設定値が適用される

### 表示確認
管理画面上部に送信先メールアドレスが常時表示され、一目で確認できます。

## メリット

1. **一元管理**
   - すべての送信先を一箇所で管理
   - 変更が容易
   - ミスを防止

2. **視認性**
   - 管理画面で常時確認可能
   - 分かりやすい表示
   - 複数の送信先を整理して表示

3. **プラグイン連携**
   - 主要フォームプラグインに対応
   - 統一的な管理が可能
   - 設定の簡略化

4. **保守性**
   - コードの管理が容易
   - 拡張が簡単
   - デバッグが容易

## 注意点

- Material Symbols フォントの読み込みが必要
- プラグインのアップデートによる影響の確認
- 送信先の追加時はコードの修正が必要

このカスタマイズにより、複数のフォームプラグインを使用するサイトでも、送信先メールアドレスの管理が効率化され、ミスを防ぐことができます。