メインコンテンツまでスキップ

MW WP Form からの移行

Form Plant には、MW WP Form で作成したフォームを Form Plant 形式へ自動変換する移行ツール (v1.2.0 で追加) が付属しています。フィールド (入力項目) ・メール設定・入力画面/確認画面のテンプレート・メール差し込みタグを、管理画面から数クリックで一括変換できます。

このページでは、移行ツールの使い方から、フィールド・ショートコード・フック (mwform_*) の対応表、移行後に手動で必要になる作業までを詳しく解説します。

まず全体像を押さえる

移行ツールが自動でやることと、移行後に手動でやることは明確に分かれています。先に 移行ツールが変換するもの / しないもの の一覧で全体像をつかんでから読み進めると迷いません。

移行ツールが変換するもの / しないもの

区分自動 / 手動
入力項目 (フィールド) ・必須設定・選択肢✅ 移行ツールが自動変換
管理者メール・自動返信メールの設定 (宛先・件名・本文)✅ 自動変換
入力画面・確認画面の HTML テンプレート✅ 自動変換
メール差し込みタグ ( {お名前}{field:your_name} 等)✅ 自動変換
バリデーション (必須・メール形式・文字数等)✅ 自動変換
フォーム設置ショートコード ( [mwform_formkey][fplant id] )⚠️ 手動で置き換え
functions.phpmwform_* フック⚠️ 手動で書き換え (後述)
Akismet スパム設定⚠️ 移行不可 (reCAPTCHA / Turnstile を別途設定)
移行は「新しいフォームを追加する」操作です

移行ツールは MW WP Form のフォームを書き換えたり削除したりしません。元のフォームはそのまま残し、変換結果を 新しい Form Plant フォームとして追加します。安心して試せますが、その分設置ページのショートコードは自動では切り替わりません (手動置き換えが必要)。

移行の前提条件

  • MW WP Form がインストール・有効化されていること。 移行タブは MW WP Form が有効なときだけ表示されます。
  • MW WP Form のバージョンが 5.0 以上であること。 5.0 未満の場合は移行ボタンが表示されず、更新を促すメッセージが出ます。まず MW WP Form を最新版に更新してください。
  • 操作には manage_options 権限 (管理者) が必要です。

移行ツールの使い方

1. 移行画面を開く

  1. WordPress 管理画面の 「Form Plant」→「ツール」 を開きます
  2. 「MW WP Form Migration」 タブを選びます

このタブは MW WP Form が有効なときだけ表示されます。

2. フォームを選んで移行する

移行画面には MW WP Form のフォーム一覧が表示されます。

内容
(チェックボックス)移行対象を選択
TitleMW WP Form のフォームタイトル
Fields検出されたフィールド数
Migration Status移行ステータス ( Migrated / Not migrated )

操作手順:

  1. 移行したいフォームのチェックボックスを選びます (全選択も可能)
  2. 「Migrate selected forms」 ボタンをクリックします
  3. 確認ダイアログで OK を押すと、選択したフォームが 1 件ずつ順番に変換されます
  4. 「Migration Report」 に結果が表示されます

3. 移行レポートを確認する

各フォームの結果は次の 3 段階で表示されます。

ステータス意味
Success警告なしで移行完了
With warnings移行はできたが、手動対応が必要な項目あり (要確認)
Failedエラーで移行できなかった

With warnings の場合でも移行自体は完了しています。レポートに並ぶ警告は、移行ツールが自動変換できなかった項目を「黙って消さずに」明示しているものです。必ず内容を確認し、必要な手動対応を行ってください。

レポートからは、生成された Form Plant フォームへのリンク (「Open the generated Form Plant form」) も開けます。

移行済みフォームの再確認

移行済みフォームは一覧で Migrated と表示され、「View log」 から後でいつでも移行ログ (移行日時・ステータス・警告一覧) を見直せます。

4. 移行後のフォームを確認する

生成されたフォームは「公開・標準デザイン」です

移行で作られた Form Plant フォームは、公開 (published) 状態・標準 (ノーマル) デザインで作成されます。タイトルには (from MW WP Form 2026-06-02 10:00:00) のように移行日時が付きます。ショートコードを設置すればそのまま利用できます (「まず移行して動く」状態) 。

MW WP Form のレイアウトは HTML テンプレートとして保存されますが、デフォルトでは無効 (OFF) です。元のレイアウトに近づけたい場合は、フォーム編集画面の「レイアウト」で「入力画面 HTML テンプレートを使用」「確認画面 HTML テンプレートを使用」を ON にしてください (詳しくは後述の「移行後のレイアウトについて」を参照) 。

フォーム一覧では、各フォームのタイトル横に色付きのステータスバッジ (公開=緑 / 非公開=オレンジ / 下書き=グレー) が表示されます。

移行直後におすすめの確認手順:

  1. 生成された Form Plant フォームを開き、フィールド構成・必須設定・選択肢を確認する
  2. フィールド名 (name) を控える (フック書き換えとメールタグで使います。日本語名は英数字に変換されています)
  3. テスト送信して、確認画面・自動返信メール・管理者メールが意図通りか確認する
  4. 設置ページのショートコードを [fplant id="..."] に置き換える (次節)

フォーム設置ショートコードの対応

フォームを記事や固定ページに設置するショートコードは、移行ツールでは自動変換されません。手動で置き換えてください。

MW WP FormForm Plant
[mwform_formkey key="123"][fplant id="12"]
[mwform_formkey post_id="123"][fplant id="12"]

[fplant id="..."] の数値は、生成された Form Plant フォームの フォーム ID です。フォーム ID は次の場所で確認できます。

  • フォーム編集画面の URL: wp-admin/admin.php?page=fplant-form-new&id=1212
  • フォーム一覧に表示される設置ショートコード [fplant id="12"]
設置ページの探し方

[mwform_formkey] を書いた固定ページや記事を見つけるには、管理画面の検索や、データベースの post_content 検索を使うと確実です。差し替え漏れがあると、そのページには MW WP Form のフォームが表示されたままになります。

フィールド (入力項目) の対応表

移行ツールは MW WP Form のフォームタグ (ショートコード) を、対応する Form Plant のフィールド型へ自動変換します。

MW WP Form フォームタグForm Plant フィールド型備考
mwform_textテキスト ( text )size / maxlength を反映
mwform_textareaテキストエリア ( textarea )rows / cols / maxlength を反映
mwform_emailメールアドレス ( email )
mwform_passwordパスワード ( password )
mwform_tel電話番号 ( tel )3 分割入力 ( split3 ) に変換
mwform_urlURL ( url )
mwform_zip郵便番号 ( postal_code )3+4 桁の 2 ボックス入力に変換
mwform_number数値 ( number )min / max を反映
mwform_range数値 ( number )⚠️ スライダー UI は再現されません
mwform_selectセレクト ( select )選択肢を変換
mwform_radioラジオボタン ( radio )選択肢・レイアウトを変換
mwform_checkboxチェックボックス ( checkbox )選択肢・レイアウト・区切り文字を変換
mwform_hidden隠しフィールド ( hidden )
mwform_fileファイル ( file )
mwform_imageファイル ( file )画像拡張子 (jpg/jpeg/png/gif/webp) に限定
mwform_datepicker日付 ( date )形式 Y-m-d
mwform_monthpicker日付 ( date )形式 Y-m
mwform_custom_mail_tagカスタムメールタグ ( custom_mail_tag )後述

各フィールドの name (フィールド名) ・ラベル・プレースホルダー・初期値・id・class も引き継がれます。

フィールド名は「日本語 → 英数字」に変換されます ⚠️ 最重要

MW WP Form では日本語のフィールド名 (例: お名前メールアドレス ) を使えますが、Form Plant のフィールド名は英数字キーです。移行ツールは お名前your_nameメールアドレスemail のように自動で英数字へ変換します。

この変換は、後述の メール差し込みタグフックにも影響します。移行後は必ず Form Plant 編集画面で新しいフィールド名を確認してください。

メール設定の対応

MW WP Form のメール設定は、Form Plant の 管理者メール自動返信メール にそれぞれ変換されます。

MW WP FormForm Plant
管理者宛先 ( mail_to / cc / bcc )管理者メールの宛先・CC・BCC
管理者メール件名・本文管理者メールの件名・本文
送信元 ( admin_mail_from 等) ・Reply-To送信元名/アドレス・Reply-To
自動返信の返信先フィールド ( automatic_reply_email )自動返信メールの宛先フィールド
自動返信の件名・本文・送信元自動返信メールの件名・本文・送信元

メール差し込みタグの対応

メール本文・件名に書かれた差し込みタグも自動変換されます。

MW WP FormForm Plant変換
{お名前} (日本語フィールド名){field:your_name}✅ 自動変換
{email} (英数字フィールド名){email}✅ そのまま (後方互換)
{post_title} {post_id} {user_email} 等の MW 固有タグ⚠️ 変換不可

Form Plant で解決できるシステムタグ:

{all_fields} すべての入力値
{form_title} フォームタイトル
{submission_id} 送信 ID
{submission_date} 送信日時
{ip_address} 送信者の IP アドレス
{user_agent} ユーザーエージェント
{site_name} サイト名
{site_url} サイト URL
{admin_email} 管理者メールアドレス
解決できないタグはメールにそのまま残ります

{post_title} などの MW 固有タグや、どのフィールドにも一致しないタグは、自動変換できずメール本文にそのまま残ります。投稿情報などを送りたい場合は、URL パラメータでフィールド初期値を渡す 機能と隠しフィールドを組み合わせて値を渡すなどの対応を検討してください。移行レポートにも警告として表示されます。

カスタムメールタグの対応

MW WP Form の [mwform_custom_mail_tag] は、Form Plant の カスタムメールタグフィールド ( custom_mail_tag ) に変換されます。値を供給するフックは名前が変わるため、書き換えが必要です (フックの対応表 を参照)。

バリデーションの対応

MW WP Form のバリデーション設定は、各フィールドに自動でマージされます。

MW WP Form ルールForm Plant への適用
noempty / required必須
mailメールアドレス型に変更
numeric数値型に変更
zip郵便番号型に変更
tel電話番号型に変更
urlURL 型に変更
date日付型に変更 ( Y-m-d )
alpha / alphanumeric正規表現パターン+メッセージ
katakana / hiragana / kanaかなバリデーション (パターン)
between / minlength最小・最大文字数
eq完全一致パターン
filetype許可する拡張子
filesize / maxFileSize最大ファイルサイズ (MB)
akismet⚠️ 移行不可 (reCAPTCHA / Turnstile を別途設定)

不明なルールや適用先が見つからないルールは、移行レポートに警告として表示されます。手動で再設定してください。

画面遷移・送信後アクションの対応

MW WP Form は入力・確認・完了・エラーをそれぞれ別 URL のページで表現できますが、Form Plant は設置したページ内で画面を切り替える方式です。そのため URL 指定の対応が異なります。

MW WP Form 設定Form Plant
確認画面の有無確認画面の有効/無効 (ボタン構成から自動判定)
完了 URL ( complete_url )送信後アクション = リダイレクト+リダイレクト URL
完了メッセージ ( complete_message )送信後アクション = カスタムページ+完了 HTML
入力 URL / 確認 URL / エラー URL移行不要 (ページ内遷移のため。レポートに通知が出ます)
移行後のレイアウトについて

移行時、生成フォームのデザインは 標準 (ノーマル) で作成され、入力画面・確認画面の HTML テンプレート使用は OFF になっています。そのため、移行直後は Form Plant の標準レイアウトで表示されます。

実際には、MW WP Form のレイアウトを完全に再現するにはある程度の調整が必要になるため、「まずは標準デザインで動く」状態をデフォルトにしています。MW WP Form のレイアウト ( マークアップ ) は HTML テンプレートとして保存済みなので、元のレイアウトに近づけたい場合はフォーム編集画面の「レイアウト」タブで「入力画面 HTML テンプレートを使用」「確認画面 HTML テンプレートを使用」を ON にし、必要に応じて HTML / CSS を調整してください。


フックの移行対応表

functions.php などに書いた mwform_* フックは自動変換されません。Form Plant の対応するフックへ手動で書き換えてください。

書き換え前に知っておくべき 3 つの違い

違い 1: フック名の付き方

  • MW WP Form: フォームごとにフォームキー (例 mw-wp-form-1 ) がフック名の末尾に付きます。例: mwform_value_mw-wp-form-1
  • Form Plant: 2 系統です。
    • フィールド名が末尾に付くフック: fplant_field_initial_value_{name} のように、対象フィールドを名前で狙います。
    • フォーム全体に発火するフック: fplant_redirect_url のようにサフィックスが無く、コールバック内で $form_id を見て対象フォームを判定します。

違い 2: フォームの識別は「フォーム ID (数値)」

Form Plant はフォームを数値の ID で識別します。フォーム ID は [fplant id="12"] や編集画面 URL ( ...&id=12 ) で確認できます。サフィックスの無いフックでは $form_id で対象を絞り込みます。

add_filter( 'fplant_redirect_url', function ( $url, $form_id, $data ) {
if ( 12 !== $form_id ) {
return $url; // 対象フォーム以外はそのまま返す
}
// フォーム ID 12 だけの処理
return $url;
}, 10, 3 );

違い 3: フィールド名が「日本語 → 英数字」に変わる ⚠️ 最重要

移行ツールが日本語のフィールド名を英数字キーへ変換するため (例: お名前your_name ) 、フックのコールバックでは移行後の新しいフィールド名を使う必要があります。新しい名前は Form Plant のフォーム編集画面で確認できます。

// MW WP Form (フィールド名は日本語「お名前」)
add_filter( 'mwform_value_mw-wp-form-1', function ( $value, $name ) {
if ( 'お名前' === $name ) { /* ... */ }
return $value;
}, 10, 2 );

// Form Plant (移行後の英数字キー「your_name」をフック名に使う)
add_filter( 'fplant_field_initial_value_your_name', function ( $value, $field, $form_id ) {
/* ... */
return $value;
}, 10, 3 );

フック対応 早見表

やりたいことMW WP FormForm Plant
フィールドの初期値を設定mwform_value_*fplant_field_initial_value_{name}
選択肢を動的生成mwform_choices_*fplant_field_choices_{name}
独自バリデーションmwform_validation_*fplant_validate_field_{name}
エラーメッセージを変更mwform_error_message_*fplant_validation_message_*
カスタムメールタグmwform_custom_mail_tag(_*)fplant_custom_mail_tag_value_{name}
メール件名・本文を変更mwform_admin_mail_* / mwform_auto_mail_*fplant_admin_email_subject / _bodyfplant_user_email_subject / _body
メール宛先を動的に変更mwform_admin_mail_* ( $Mail->to )fplant_admin_email_to / fplant_user_email_to
メールヘッダー (CC/BCC 等) を変更mwform_admin_mail_* ( $Mail )fplant_admin_email_headers / fplant_user_email_headers
メール送信を条件でスキップmwform_admin_mail_* ( $Mail->to = false )fplant_skip_admin_email / fplant_skip_user_email
送信完了後に外部連携mwform_after_send_*fplant_after_submission_complete
リダイレクト先を動的に変更mwform_redirect_url_*fplant_redirect_url
完了メッセージを動的に変更mwform_complete_content_*fplant_complete_message / fplant_success_html
添付ファイルの保存先・ファイル名mwform_upload_dir_* / mwform_upload_filename_*fplant_upload_dir / fplant_upload_filename
設定画面に独自項目を追加mwform_settings_extend_fields(_*)fplant_custom_settings_fields
CSV の文字コードmwform_csv_encoding-*fplant_export_encoding
入力フィールド種別を追加mwform_form_fieldsfplant_field_types

書き換え例 (before / after)

以降、mw-wp-form-1 はフォームキー、Form Plant 側の 12 はフォーム ID、your_name 等は移行後のフィールド名の例です。ご自身の環境の値に置き換えてください。

フィールドの初期値を設定する

// before: MW WP Form (ログインユーザーのメールアドレスを初期値に)
add_filter( 'mwform_value_mw-wp-form-1', function ( $value, $name ) {
if ( 'email' === $name && is_user_logged_in() ) {
$value = wp_get_current_user()->user_email;
}
return $value;
}, 10, 2 );

// after: Form Plant (フック名の末尾にフィールド名を付ける)
add_filter( 'fplant_field_initial_value_email', function ( $value, $field, $form_id ) {
if ( is_user_logged_in() ) {
$value = wp_get_current_user()->user_email;
}
return $value;
}, 10, 3 );

選択肢を動的に生成する

// before: MW WP Form (引数は $children, $atts)
add_filter( 'mwform_choices_mw-wp-form-1', function ( $children, $atts ) {
if ( 'product' === ( $atts['name'] ?? '' ) ) {
foreach ( get_posts( array( 'post_type' => 'product' ) ) as $p ) {
$children[ $p->ID ] = $p->post_title;
}
}
return $children;
}, 10, 2 );

// after: Form Plant (option は array( 'label' => ラベル, 'value' => 値 ) の配列)
add_filter( 'fplant_field_choices_product', function ( $options, $field, $form_id ) {
foreach ( get_posts( array( 'post_type' => 'product' ) ) as $p ) {
$options[] = array( 'label' => $p->post_title, 'value' => (string) $p->ID );
}
return $options;
}, 10, 3 );

対応フィールド種別: セレクト / ラジオ / チェックボックス。

独自バリデーション

// before: MW WP Form (Validation オブジェクトにエラーをセット)
add_filter( 'mwform_validation_mw-wp-form-1', function ( $Validation, $data ) {
if ( empty( $data['member_id'] ) || ! preg_match( '/^\d{6}$/', $data['member_id'] ) ) {
$Validation->set_rule( 'member_id', 'noNull' );
}
return $Validation;
}, 10, 2 );

// after: Form Plant (該当フィールドのコールバックで、エラー文字列を返すとエラー扱い)
add_filter( 'fplant_validate_field_member_id', function ( $error, $field, $value, $data, $form_id ) {
if ( ! preg_match( '/^\d{6}$/', (string) $value ) ) {
return __( '会員番号は 6 桁の数字で入力してください。', 'your-textdomain' );
}
return $error; // 問題なければそのまま返す
}, 10, 5 );

カスタムメールタグ

// before: MW WP Form ({member_rank} タグ。引数 $value, $name, $insert_id)
add_filter( 'mwform_custom_mail_tag_mw-wp-form-1', function ( $value, $name, $insert_id ) {
if ( 'member_rank' === $name ) {
$value = get_user_meta( get_current_user_id(), 'rank', true );
}
return $value;
}, 10, 3 );

// after: Form Plant (custom_mail_tag フィールド "member_rank" の値を供給)
add_filter( 'fplant_custom_mail_tag_value_member_rank', function ( $value, $field, $form_id ) {
return get_user_meta( get_current_user_id(), 'rank', true );
}, 10, 3 );

メールの宛先を動的に振り分ける

// before: MW WP Form ($Mail->to を書き換え)
add_filter( 'mwform_admin_mail_mw-wp-form-1', function ( $Mail, $values ) {
if ( '営業' === ( $values['category'] ?? '' ) ) {
$Mail->to = 'sales@example.com';
}
return $Mail;
}, 10, 2 );

// after: Form Plant (管理者宛先は配列で返す。空配列を返すと送信スキップ)
add_filter( 'fplant_admin_email_to', function ( $to, $form_id, $data ) {
if ( 12 === $form_id && '営業' === ( $data['category'] ?? '' ) ) {
$to = array( 'sales@example.com' );
}
return $to;
}, 10, 3 );

送信完了後に外部サービスへ連携する

// before: MW WP Form (Slack 通知)
add_action( 'mwform_after_send_mw-wp-form-1', function ( $Data ) {
notify_slack( $Data->get( 'email' ) );
} );

// after: Form Plant (引数は $data, $form_id, $form, $submission_id)
add_action( 'fplant_after_submission_complete', function ( $data, $form_id, $form, $submission_id ) {
if ( 12 === $form_id ) {
notify_slack( $data['email'] ?? '' );
}
}, 10, 4 );

より詳しいバリデーションフックの解説は バリデーションフック (PHP) を参照してください。

サポート外のフックと代替策

以下の MW WP Form フックには、Form Plant のアーキテクチャ上、同等フックを用意していません。多くは Form Plant の標準機能で代替できます。

MW WP Form フックForm Plant での代替策
mwform_post_content(_raw) (フォーム HTML を加工)フォーム設定の HTML テンプレート機能 でフォーム HTML を直接編集。動的な値の差し込みは fplant_template_values フィルター、テンプレートのテーマ上書きは fplant_locate_template
mwform_no_save_keys (DB に保存しない項目)フォーム設定の 「送信データの保存」 で制御。項目単位の除外は fplant_before_save_submission_data フィルターで該当キーを unset
mwform_default_settings / mwform_default_content (新規フォームの既定値)非対応。フォームの複製機能で代用
mwform_inquiry_data_columns / mwform_csv_columns 等 (問い合わせデータ画面)非対応 (Form Plant は独自の送信データ管理画面・エクスポートを使用)
mwform_tag_generator_* (タグ生成ツール)非対応 (Form Plant はモーダル UI でフィールドを追加)
mwform_translate_datepicker / mwform_styles / mwform_secure_cookie / mwform_log_directory非対応 (日付・CSS・セッション・ログの仕組みが異なるため)

Form Plant フック リファレンス (移行で使う主なもの)

フック種別引数
fplant_field_initial_value_{name}filter( $value, $field, $form_id )
fplant_field_choices_{name}filter( $options, $field, $form_id )
fplant_validate_field_{name}filter( $error, $field, $value, $data, $form_id )
fplant_validation_message_*filter( $message, $field, $value, $context )
fplant_custom_mail_tag_value_{name}filter( $value, $field, $form_id )
fplant_admin_email_subject / fplant_user_email_subjectfilter( $subject, $form_id )
fplant_admin_email_body / fplant_user_email_bodyfilter( $message, $form_id, $data )
fplant_admin_email_to / fplant_user_email_tofilter( $to, $form_id, $data )
fplant_admin_email_headers / fplant_user_email_headersfilter( $headers, $form_id, $data )
fplant_skip_admin_email / fplant_skip_user_emailfilter( $skip, $form, $data, $submission_id )
fplant_after_submission_completeaction( $data, $form_id, $form, $submission_id )
fplant_redirect_urlfilter( $url, $form_id, $data )
fplant_complete_message / fplant_success_htmlfilter( $message_or_html, $form_id, $data )
fplant_upload_dirfilter( $custom_dir, $form_id )
fplant_upload_filenamefilter( $filename, $field, $form_id )
fplant_custom_settings_fieldsfilter( $fields, $form_id )
fplant_export_encodingfilter( $encoding, $form_id )
fplant_field_typesfilter( $types )

_{name} は移行後のフィールド名 (英数字キー) です。


移行できないもの・注意点まとめ

  • フォーム設置ショートコード ( [mwform_formkey] ) は手動で [fplant id="..."] に置き換えが必要
  • mwform_* フックは手動書き換えが必要 (フックの移行対応表)
  • Akismet スパム設定は移行不可。reCAPTCHA / Turnstile を別途設定 (→ スパム対策)
  • MW 固有の差し込みタグ ( {post_title} 等) は変換されずメールに残る
  • mwform_range のスライダー UI は数値入力に縮退する
  • 同名フィールドが複数あると入力値が衝突する恐れ (移行レポートに警告)
  • 自動返信の返信先フィールドが移行後に存在しないと、自動返信が送られないことがある (送信テストで必ず確認)
  • 生成フォームは公開・標準デザインで作成される。MW WP Form のレイアウトは HTML テンプレートとして保存されるがデフォルトでは OFF (必要なら編集画面の「レイアウト」で ON)

移行作業のチェックリスト

  1. MW WP Form を 5.0 以上に更新する
  2. 「Form Plant」→「ツール」→「MW WP Form Migration」 でフォームを移行する
  3. 移行レポートの警告をすべて確認する
  4. 生成された Form Plant フォームを開き、フィールド構成と新しいフィールド名を確認する
  5. テスト送信し、確認画面・管理者メール・自動返信メールを検証する
  6. 設置ページのショートコードを [fplant id="..."] に置き換える
  7. functions.phpmwform_* フックを Form Plant のフックへ書き換える
  8. スパム対策 (reCAPTCHA / Turnstile) を設定し直す
  9. 必要なら「レイアウト」で HTML テンプレートを ON にし、デザインを調整する
  10. 動作を確認できたら MW WP Form の旧フォームを停止する

ご不明点や、本ページに載っていないカスタマイズがある場合は、Form Plant のサポートへお問い合わせください。