【Contact Form 7】ユーザーの入力内容を一部加工して送信する方法

【Contact Form 7】ユーザーの入力内容を一部加工して送信する方法 WordPress

WordPressの人気フォームプラグイン「Contact Form 7」では、ユーザーが送信したデータをそのままメールに転送するのが基本です。しかし、送信前に入力内容を加工したいケースもあります。たとえば、入力された名前の先頭に敬称を付けたい、特定の文字列を置換したい、などです。

この記事では、Contact Form 7のフックを使って、ユーザーの入力内容を送信前に加工する方法を紹介します。

フィルターフックを使って入力内容を加工する

Contact Form 7では、wpcf7_posted_data フィルターを使うことで、送信されるデータを加工できます。

以下は、名前(your-name)の先頭に「様」を追加して送信する例です。

// functions.phpに追記
add_filter('wpcf7_posted_data', 'custom_modify_form_data');

function custom_modify_form_data($posted_data) {
  if (isset($posted_data['your-name'])) {
    $name = $posted_data['your-name'];
    $posted_data['your-name'] = $name . ' 様';
  }
  return $posted_data;
}

他にもできる加工の例

改行や空白の除去

$posted_data['your-message'] = trim(preg_replace('/\s+/', ' ', $posted_data['your-message']));

特定文字列の置換

$posted_data['your-subject'] = str_replace('旧キーワード', '新キーワード', $posted_data['your-subject']);

注意点と補足

  • フィルター関数は functions.php などに記述します。
  • フィールド名(your-nameなど)はフォーム設定と一致している必要があります。
  • wpcf7_posted_data はフォームのバリデーション後、送信前に呼ばれます。

まとめ

Contact Form 7では、送信前にユーザーの入力内容を自在に加工できます。wpcf7_posted_data を使えば、ビジネスマナーに配慮した敬称の追加や、特定文字列の変換、不要な文字の削除など、柔軟なカスタマイズが可能です。フォーム送信時の見栄えやデータ整形にこだわりたい方は、ぜひ活用してみてください。