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〜」のように入力すればそのまま表示することができます。