MW WP Form 2.3.0 を公開しました。主な変更箇所は以下のとおりです。
- カスタムメールタグ機能(フィルターフック mwform_custom_mail_tag_mw-wp-form-xxx)を追加
- フィルターフック mwform_contact_data_post_type を追加
- フィルターフック mwform_get_inquiry_data_args-mwf_xxx を追加
- デバックモードを追加
- フィルターフック mwform_log_directory を追加
- ai、psd、eps ファイルがアップロードできなくなっていた不具合を修正
- チェックボックス、セレクトボックス、ラジオボタンにおいて、送信値と表示値を「:」で分割したとき、送信値をメールで送信するオプションを追加
カスタムメールタグ機能
メール送信時にオリジナルの「メールタグ」を定義する機能を追加しました。例えばメール内容の設定で{send_date}としたときに、送信日時に変換されてメール送信させる、ということが可能です。フィルターフック mwform_custom_mail_tag_mw-wp-form-xxx を利用して、次のようなコードで追加できます。
/**
* {send_datetime} としたときに送信日時に変換して送信する
*
* @param string $value 送信された値
* @param string $key メールタグ
* @param int $insert_contact_data_id データベースに保存した場合、そのときの Post ID
*/
function send_date_time( $value, $key, $insert_contact_data_id ) {
if ( $key === 'send_datetime' ) {
return date( 'Y/m/d l H:i:s' );
}
return $value;
}
add_filter( 'mwform_custom_mail_tag_mw-wp-form-180', 'send_date_time', 10, 3 );
フィルターフック mwform_contact_data_post_type を追加
問い合わせデータページのレコードの取得条件をカスタマイズするためのフィルターフックです。このフックを使えば特定の権限のユーザーは、「データベースに保存」としているフォームのうち特定のフォームのみしか閲覧することができない、のようなことが可能になります。
/**
* 投稿タイプが mwf_119 のレコードは表示させない
*
* @param array $contact_data_post_types 投稿タイプの一覧
* @return array
*/
function my_mwform_contact_data_post_types( $contact_data_post_types ) {
foreach ( $contact_data_post_types as $key => $value ) {
if ( $value === 'mwf_119' ) {
unset( $contact_data_post_types[$key] );
}
}
return $contact_data_post_types;
}
add_filter( 'mwform_contact_data_post_types', 'my_mwform_contact_data_post_types' );
フィルターフック mwform_get_inquiry_data_args-mwf_xxx を追加
問い合わせデータページの件数表示、および問い合わせデータの一覧ページ、ダウンロードCSV、グラフページのレコード取得条件をカスタマイズするためのフィルターフックです。このフックを使えば特定の日付の問い合わせデータのみ表示する、などが可能です。
/**
* 「予約日」が「2015-01-01」のレコードのみ表示
*
* @param array $args
* @return array
*/
function my_mwform_get_inquiry_data_args( $args ) {
$args = array_merge( $args, array(
'meta_query' => array(
array(
'key' => '予約日',
'value' => '2015-01-01',
),
),
) );
return $args;
}
add_filter( 'mwform_get_inquiry_data_args-mwf_xxx', 'my_mwform_get_inquiry_data_args' );
デバックモード
MAAMP や VCCW を使いローカルで開発を行っていると、メールが送信されないので、どのような内容のメールが送信されるのか確認したいときに不便に感じていました。そこで、define( 'MWFORM_DEBUG', true ); とすることで送信されるメールの内容をログに書き出せるようにしました。
ログは、デフォルトでは/wp-content/uploads/mw-wp-form_uploads/mw-wp-form-debug.logに出力されます。ログの出力場所はmwform_log_directoryフィルターフックで変更できます。
チェックボックス、セレクトボックス、ラジオボタンにおいて、送信値と表示値を「:」で分割したとき、送信値をメールで送信するオプションを追加
チェックボックス、セレクトボックス、ラジオボタンの選択肢は「:」で送信値と表示値を分けることができますが、これまでは分けたとしても実際にメールに送信されたりデータベースに保存される値は表示値となっていました。これを表示値に変換せずに送信値が利用されるようにするには、次のようにオプションを指定してください。
[ mwform_checkbox ... post_raw="true" ]
ちなみに、「:」をそのまま表示したいとき、例えば 10:00〜などとしたいときは「10::00〜」のように入力すればそのまま表示することができます。