概要
wpcf7_posted_data
フィルタは、Contact Form 7プラグインで送信されたフォームデータを加工するためのフィルタです。このフィルタを使うことで、入力された要素を加工することが可能になり、特定のビジネスロジックやデータ整形のニーズに応じた操作が行えます。たとえば、ユーザーからのフィードバックを特定の形式に変換したり、スパムフィルターをかけたりすることが可能です。
よくある実装例としては以下のものがあります:
1. ユーザー入力のトリミング(前後の空白削除)
2. 特定の文字列の置換
3. カスタムバリデーションの追加
4. メール送信時のデータ形式調整
5. 他のAPIとの連携のためのデータ整形
6. 管理者向けの通知内容のカスタマイズ
構文
add_filter('wpcf7_posted_data', 'your_function_name');
パラメータ
$posted_data
: フォームから送信されたデータの配列。
戻り値
- 加工されたデータの配列。
使用可能なバージョン
- Contact Form 7 バージョン: 5.0 以降
- WordPress バージョン: 5.0 以降
サンプルコード1
add_filter('wpcf7_posted_data', function($posted_data) {
// トリミング処理
if (isset($posted_data['your-name'])) {
$posted_data['your-name'] = trim($posted_data['your-name']);
}
return $posted_data;
});
このコードは、”your-name”フィールドに入力された名前の前後の空白を削除する処理を行います。
サンプルコード2
add_filter('wpcf7_posted_data', function($posted_data) {
// 特定の文字列を置換
if (isset($posted_data['your-message'])) {
$posted_data['your-message'] = str_replace('badword', '****', $posted_data['your-message']);
}
return $posted_data;
});
このコードは、”your-message”フィールド内の特定の不適切な単語を伏せ字に置き換えます。
サンプルコード3
add_filter('wpcf7_posted_data', function($posted_data) {
// カスタムバリデーション
if (isset($posted_data['your-email'])) {
if (!filter_var($posted_data['your-email'], FILTER_VALIDATE_EMAIL)) {
// メールアドレスが無効な場合、元のデータを返す
return $posted_data;
}
}
return $posted_data;
});
このコードは、”your-email”フィールドのメールアドレスの格式を検証し、不正な場合にはそのままのデータを返します。
サンプルコード4
add_filter('wpcf7_posted_data', function($posted_data) {
// 小文字変換
if (isset($posted_data['your-email'])) {
$posted_data['your-email'] = strtolower($posted_data['your-email']);
}
return $posted_data;
});
このコードは、”your-email”フィールドに入力されたメールアドレスを小文字に変換します。
サンプルコード5
add_filter('wpcf7_posted_data', function($posted_data) {
// 日付のフォーマットを変更
if (isset($posted_data['your-date'])) {
$date = DateTime::createFromFormat('d/m/Y', $posted_data['your-date']);
if ($date) {
$posted_data['your-date'] = $date->format('Y-m-d');
}
}
return $posted_data;
});
このコードは、”your-date”フィールドに入力された日付を特定のフォーマットに変換します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |