MevvForms のドキュメント

アクセシブルなフォーム、手元に残る送信データ、巻き戻せる移行。

MevvFormsは、フォームスキーマ、サーバー側の検証、アクセシブルなレンダリング、ローカルの送信内容、そして堅牢な通知キューを自前で持っています——さらにその上に、サーバーで再実行される条件分岐ロジックエンジン、フロントエンドのビュー、保持期間・プライバシーのツール、ローカルで動くAIによるフォーム生成、そして他の7つのフォームプラグイン用のインポーターが乗っています。本ガイドは、プラグインが今日実際に行っていることを記録し、まだ実証されていない部分については率直に述べます。

概要と要件

MevvForms Free は、手元で動くランタイムです。公開されたフォームは、バージョン管理された WordPress のフォームレコードから読み出され、本物のラベルとエラーの関連付けとともに描画され、サーバー側で改めて検証され、手元に保存され、失われない通知キューへ渡されます。

WordPress
6.6 以降。WordPress 7.1 まで検証済みです。
PHP
8.1 以降。リリースマトリクスは PHP 8.1〜8.5 を対象としています。
データの境界
フォームの定義、送信データ、キューに入ったジョブは、既定では WordPress サイトに留まります。
テーブル
独自の13のテーブル:送信内容とその型付きの値、ジョブキュー、ファイル、途中まで入力された送信、通知ログ、2つの分析用カウンター、コンテンツリンク、在庫、クーポン、決済、決済イベントです。
スケジュールされた処理
1時間ごとに動く2つのジョブがあります。1つは保持期間ポリシーを適用し、もう1つは通知・遅延フィード・エクスポートを運ぶ単一のジョブキューを処理します——機能ごとに別々のcronを持つのではなく、1つのキューにまとめています。
翻訳ファイル
プラグインには19のWordPressロケールが同梱されており、ソースカタログも含まれています。

訪問者がフォームを表示したり送信したりするあいだ、無料版が外部サービスへライセンス、テレメトリー、AI、更新の要求を出すことはありません。

インストール

  1. 復元できるデータベースと wp-content のバックアップを取ります。
  2. MevvForms Free の ZIP をアップロードして有効化します。
  3. MevvForms のデータベーステーブルが作成されたこと、そして管理者が管理画面を開けることを確認します。
  4. 移行のプレビュー、インポート、ヘルスチェックが終わるまで、移行元のフォームプラグインは有効なままにしておきます。
  5. 保存されたフォームがリリース済みの Pro モジュールを使っている場合にかぎり、対応する Pro の補助パッケージをインストールします。

Pro を入れているあいだに無料版パッケージを削除しないでください。保存されたフォームのランタイムは無料版のものであり、Pro はそれを拡張します。

フォーム作成ツール

フィールドはドラッグして配置しますが、マウスでできることはすべてキーボードでも行えます。フィールドの追加、選択、削除は普通のボタンなので、EnterキーとSpaceキーはすでに機能します。フィールドの移動には独自のショートカットが1つあり、上下矢印キーとCtrlを組み合わせると、ドラッグとまったく同じ移動が呼び出されます。変更のたびにフォーカスは作業していたカードに戻され、ライブリージョンが何が起きたかを読み上げます——「Emailを2番目の位置から9個中5番目の位置に移動しました」——これにより、視覚に頼らずとも並べ替えを追うことができます。

カラムは1つのルールが付随したレイアウトツールです:読み上げ順序はフィールドの並び順と常に一致していなければなりません。これはCSS任せにせず、サーバー側でチェックされます。フィールドをスキーマとは異なる順序でページに配置しようとするレイアウトは、描画されるのではなくエラーとして拒否されます。スクリーンリーダーの利用者も晴眼の訪問者も、同じフォームを受け取らなければならないからです。

自動保存
入力を止めてから約2.5秒後に、下書きはフォーム自身の下書きレコードに書き込まれます。公開済みのフォームには一切触れず、WordPressのリビジョンも作成しないため、自動保存によって誤って何かが公開されることはありません。
リビジョン
保存には独自のリビジョンシステムではなくWordPress自身のリビジョンシステムを使用しています。つまりリビジョンは、WordPressを理解する他のあらゆるものからも見えるということです。作成ツールは直近50件のリビジョンを一覧表示し、そのいずれにも復元できます。

作成ツールには元に戻す・やり直す機能がありません。以前の状態に戻す方法は古いリビジョンを復元することであり、それは直前の操作ではなくフォーム全体を復元します。大きな変更を加える前には、まず保存しておき、戻れるリビジョンを作っておいてください。

項目の種類

5 つのグループに 38 種類の項目タイプ。署名、繰り返し、マトリクス、クイズを含め、すべて無料パッケージに入っています。

基本
1行テキスト、段落テキスト、メールアドレス、確認付きメールアドレス、電話番号、WebサイトURL、数値、パスワード、非表示の値。
選択
ドロップダウン、複数選択のドロップダウン、ラジオボタングループ、チェックボックスグループ、単一チェックボックス、同意、評価、ランキング、スライダー。
高度
氏名、住所、日付、時刻、日時、色、ファイルアップロード。
支払い
計算、注文合計、商品、割引コード。
レイアウト
見出し、セクション区切り、区切り線、コンテンツブロック、ページ区切り。これらは入力を伴わず、保存される値も生成しません。

パスワードフィールドは描画され検証もされますが、その値が送信内容に書き込まれることは決してありません。保存しないと指定されたフィールドも同様です。計算フィールドと合計フィールドは画面上にボックスを表示しますが、その値はブラウザから来るものではありません。サーバーが数式を再計算し、届いた値を上書きします。

テンプレート

完成品ではなく出発点として作られた28種類の完成済みフォームです — お問い合わせ、見積もり依頼、求人応募、イベント登録、フィードバック調査、サポート依頼、予約依頼、ニュースレター登録、商品注文、苦情、寄付、テーブル予約、ユーザー登録、クイズ、投票、ファイル送信、お客様の声、退会理由アンケート、メンテナンス依頼、打ち合わせ日程調整、コース登録、保護者の同意、推薦アンケート、宿泊予約、ボランティア登録、不具合報告、仕入先登録、折り返し電話依頼です。

テンプレートは新しいフォームにコピーされてから編集されます。ライブリンクではないため、後でテンプレートを変更しても、すでにそこから作られたフォームは変わりません。

フォームの描画と送信

公開したフォームは [mevvforms id="123"] で埋め込みます。レンダラーは、安定した項目識別子、本物のラベル、説明文、エラー要約の対象、そして現在のフォームのリビジョンにひも付いた署名付きセッションを出力します。

ブロックエディタでは同じものがブロック——MevvForms Form——として扱われ、そのプレビューは概算ではありません。エディタはブロックの描画をサーバーに依頼し、サーバーはフロントエンドが使うのとまったく同じコードでそれを描画します。エディタで見えているものが、そのままページです。

  • 必須かどうかと検証ルールは、サーバーが持つスキーマから取られます。
  • 隠された値や未知のクライアント値が、サーバー側のルールを緩めることはできません。
  • 有効な送信は、通知の副作用が動くより先に送信データを作成します。
  • レスポンスに含まれるのは、設定されたメッセージか安全なリダイレクトであって、保存された項目の値ではありません。

ページを開いたあとにフォームが変わった場合は、署名付きセッションが現在のリビジョンと一致するよう、送信の前にページを再読み込みしてください。

条件分岐ロジック

フィールドは、他のフィールドの値に応じて表示または非表示にでき、AND・ORのグループは最大10階層まで入れ子にできます。利用可能な演算子は14種類です:等しい、等しくない、含む、含まない、で始まる、で終わる、空である、空でない、より大きい、より小さい、以上、以下、いずれかである、いずれでもない。

条件は送信のたびにサーバー側で再評価されます。ブラウザが非表示にしたフィールドでも手動でPOSTすることは可能なので、ブラウザ側での非表示化はあくまで利便性のためであり、ルールではありません。同じ評価によって、検証・保存・通知本文それぞれにどのフィールドが存在するかが決まります——これは、JavaScriptがオフの状態でもフォームが正しく動作することも意味します。ただしその場合、リアルタイムの表示・非表示は行われません。

複数ステップのフォームと保存して続ける機能

ページ区切りは、1つのフォームを複数のステップに分けます。これは普通のレイアウトフィールドであり、長いフォームは何か別のものに作り替えるのではなく、フィールドを1つ追加するだけで複数ステップのフォームになります。

保存して続ける機能は、途中まで入力された送信内容を保持し、訪問者にそこへ戻るためのリンクを渡します。このリンクには署名付きトークン——レコードの識別子とそれに対するHMAC——が含まれており、署名はサイト自身のシークレットから生成されます。データベース内の情報だけでは単独で偽造することはできず、比較は一定時間で行われ、リンクは30日後に失効します。

このトークン自体が認証情報です。ログインは不要でCookieも設定されないため、リンクを持っている人であれば誰でもその送信内容を続けることができます。再開用リンクは、パスワードリセットリンクと同じように扱ってください——共有の受信箱ではなく、本人に送ってください。

送信データとプライバシーの境界

送信データと型付きの項目の写しは、専用のローカルテーブルに保存されます。パスワード、カード情報、CVV、WordPress の nonce、セッショントークン、そして store=false と印を付けた項目が、送信データの値に書かれることはありません。

  • IP アドレスは、レート制限に必要な場面でのみ、サイト固有の HMAC として表されます。
  • テキスト、数値、日付の写しは、元の項目の同一性を変えずに、あとからの検索を支えます。
  • 送信データまたは outbox の書き込みが失敗した場合、その送信のトランザクション全体が巻き戻されます。
  • 本番の記録に残るのは、フォーム、送信データ、ジョブの識別子だけです。送信された値が記録されることはありません。

送信内容一覧は保存された値を検索し、ステータス、既読・スター状態、日付範囲で絞り込み、選択した項目に対して既読・未読・スター付与・スター解除・スパム・ゴミ箱・復元・削除を一括で適用できます。これらはそれぞれ個別にあなたの権限に対して確認されるため、送信内容を読む権限はあっても削除する権限がないロールは、一括操作でも削除できません。

正しく開けるCSV
ファイルはバイトオーダーマークで始まります。これによってExcelはUTF-8として読み込みます——これがないとトルコ語の文字が文字化けし、たいていはエンコーディングではなくエクスポート機能のせいにされてしまいます。
実行できないCSV
=、+、-、@、タブ、あるいは復帰文字で始まる値には、先頭にアポストロフィが付加されます。これらの文字は、表計算ソフトに送信された値を数式として扱わせてしまうものであり、フォームはまさに見知らぬ人がその値を選ぶ場所です。

通知と確認

通知は失われないジョブです。メールの障害が、受け付けた送信データを消すことはできません。一時的な失敗は上限付きの遅延で再試行され、設定に起因する恒久的なエラーは管理者の対応を待って止まります。

1つのフォームは複数の通知を持つことができ、それぞれが独自の宛先、件名、本文、条件を持ちます。宛先は固定アドレス、訪問者が入力したフィールドから取得したアドレス、あるいはフィールドの値に基づいて選ばれるルーティングのいずれかです——そして一致するルートはすべて使用されます。最初の1つだけではありません。営業とサポートの両方に同時に届くフォームは、ミスではなく通常のケースだからです。自動返信は、同じ仕組みをフォームに入力した本人へ向けたものです。

ヘッダー
宛先とヘッダーの差し込みタグは検証され、CR/LF の注入は取り除かれます。
本文
HTML は、出力される文脈に応じてエスケープまたは除去されます。
確認
メッセージ、同一サイト内のページ、許可リストに載ったリダイレクトのいずれにするかは、保存されたスキーマから選ばれます。
冪等性
同じ通知ジョブキーが、同じ副作用を二度起こすことはできません。
配信ログ
試行ごとに1行が記録されます:どのフォーム・送信内容・通知・ジョブか、送信されたか失敗したか、何回目の試行か、宛先、件名、エラーコードとメッセージです。失敗した行は画面から再送できます。

このログが記録するのは、何が試みられたかであり、何が実際に届いたかではありません。メールはWordPressに渡され、そこからホストに渡されます。「送信済み」とマークされた行は、それがサイトを離れたことを意味するだけで、その先のことは受信側でのバウンスによってしか知ることができません。

スパム対策

インストールした瞬間から2つの防御が有効になります:人には決して見えないハニーポットフィールドと、3秒未満で送信されたフォームを拒否するタイミングチェックです。どちらも訪問者に何のコストもかけず、支援技術を壊すこともありません。それが、チャレンジ形式ではなくこれらが初期設定になっている理由です。

それ以外はすべて任意で、有効にするまではオフのままです:reCAPTCHA v2およびv3、hCaptcha、Cloudflare Turnstile、Akismet、さらに完全に自分のサーバー上で動作するキーワード・住所・国のルールです。

スパムと判定された送信内容は削除されるのではなく、マークされます。ハニーポットへの引っかかり、失敗または低スコアのCAPTCHA、Akismetの判定は、いずれも送信内容をスパムステータス付きで保存し、後から読んで判断を変えることができます——誤って破棄された問い合わせのコストは、目を通さなければならない1行のコストよりもはるかに大きいためです。例外はタイミングチェックとレート制限の2つで、これらは送信内容がそもそも存在する前にリクエストを拒否します。マークする対象がなく、一度受け入れてから捨てられたものも一切ありません。

Akismetは、送信された値、訪問者のIPアドレス、ブラウザのユーザーエージェント、リファラーURLを第三者に送信する唯一の選択肢です。これは個人データの移転にあたります。有効にする前に訪問者に伝えてください。他のプロバイダーは、自身のスクリプトが収集する情報とチャレンジトークンのみを受け取り、サイト上のフィルターが要求しない限り訪問者のIPアドレスは渡されません。

アクセス制御

フォームはスケジュールに従って開閉したり、一定数の送信後に停止したり、ログイン済みユーザーや特定のロールを要求したり、パスワードの背後に置いたりできます。この4つはすべて1つの関数によって判断され、その関数は2か所から呼び出されます。フォームが描画されようとしているときと、送信内容が届いたときです。

2つの呼び出し箇所、1つの判断。フォームを隠すことと直接の送信を拒否することを別々に書いていたら、両者は次第にずれていき、閉じたフォームでもアドレスを知っている人からのPOSTを受け入れてしまうことになります。ここでの処理はブラウザ側では一切強制されていません。

送信の上限は、行が書き込まれた直後にもう一度チェックされ、その読み取り中はカウントがロックされます。そうしないと、同じ秒に送信ボタンを押した2人の訪問者が、どちらもまだカウントされていない状態で行われたチェックを通過してしまうことになります。

ファイルアップロード

アップロードされたファイルは、アドレスバーから届かない場所に保管されます。ディレクトリ名は推測不可能で、Apache、IIS、ディレクトリ一覧表示に対する拒否ルールも備えているため、誰かがパスを知ったとしてもファイルが配信されることはありません。

MEVVFORMS_FILE_VAULT_DIRを定義してWebルートの外の場所を指定しない限り、保管庫はアップロードディレクトリの中に置かれます。Webルートの外に置くことは拒否ルールよりも強力です。リセットされたり、そもそも読み込まれなかったりしたWebサーバー設定にも影響されないためです。ホスティング環境が許すなら、設定してください。

ファイルは、届いたときの名前ではなく中身によって判定されます。先頭のバイト列は既知のシグネチャの一覧と照合され、実行ファイルのマジックナンバーは即座に拒否され、シグネチャが問題なさそうに見える場合でも埋め込まれたスクリプトがないかスキャンされます。拡張子は、アップロードした人物が主張しているにすぎないものです。

ダウンロードはパスではなく署名付きリンクを経由します。署名はファイル、本人、有効期限——初期設定は15分で、どれだけ長くても1日を超えることはありません——をカバーしており、リンクがまだ有効期限内であってもダウンロード時には本人がそれを受け取る権限があるかどうかが改めてチェックされます。他の人に転送されたリンクは、その人には機能しません。

フロントエンドのビュー

送信内容は、グリッド、テーブル、カレンダー、タイムライン、地図といったビューとしてサイトに公開し直すことができます。ビューは[mevvforms_view id="12"]で、またはMevvForms Viewブロックで配置します。1件のレコードをページに固定表示するには、送信内容を名前で指定するだけです。

地図は外部サービスに一切接続しません。取得するタイルもなく、取得する必要のあるキーもなく、ジオコーディングのリクエストもありません。座標はあなた自身のページ上にインラインのベクター画像として描かれ、その図を見ることができない人のために座標も下にテキストとして書き出されます。タイル形式の地図よりも見た目は簡素ですが、その代わりに、地図があることを知らなかったページによって訪問者の住所が地図会社に送られることもありません。

プライバシーと保持期間

MevvFormsはWordPress自身の個人データのエクスポート・削除ツールに登録されているため、WordPress経由で処理されるデータリクエストは、誰かが別の画面を確認することを覚えていなくても、送信内容、途中まで入力された送信、ファイルを見つけ出します。

保持期間はフォームごとに日数として設定します——ゼロは無期限保持を意味し、上限は10年です。1時間ごとのジョブがこれを適用します。

保持期間の変更を保存する前に、画面はそれによって何件の送信内容が完全削除の対象になるかを示します。件数はまず算出され、削除は別の、別途確認が必要なステップになっています。ボックスに30と入力することが、4000件のレコードを消し去ることと同じ操作になってはならないからです。

フォーム分析

分析機能は1つの問いに答えます——人々はこのフォームのどこで離脱しているのか。そしてこれはあなたが有効にし、計測対象のフォームを指定するまではオフです。オフの間は何も書き込まれず、ページにスクリプトが追加されることもなく、公開されたエンドポイントも一切存在しません。

有効にすると、日次カウンターの2つのテーブルが保持されます:フォームごとには、表示回数、開始数、送信数、離脱数。フィールドごとには、そのフィールドでの離脱数、空欄のまま残された回数、検証エラー数、合計フォーカス時間、そして何人の訪問者がそのフィールドにフォーカスしたかです。

訪問者の識別子は一切作成されず、Cookieも設定されません。テーブルには、IPアドレス、ユーザー、メールアドレス、セッション、フィンガープリント、リファラー、送信された値のための列はありません——ある行を追跡不可能にしているのは、見ないという約束ではなく、スキーマの構造そのものです。ブラウザからの信号は自分のサイトに送られ、そのフォームの短期間有効なチケットで認証されます。このチケットは、そのフォームのすべての訪問者に対して同一です。行が集計値であるため、個人データのエクスポートでは何もエクスポートすべきものが見つからず、削除リクエストにはその旨を記した1行で応答されます。

AIでフォームを生成する

フォームを一文で説明するだけで、フィールドを自動的に配置させることができます。3種類の接続をサポートしています:自分のマシンや自分のサーバー上で動くOllamaとLM Studio、そして自分のキーでホスト型のモデルを使いたい方向けのOpenAI互換エンドポイントです。

  • プラグイン内にはクォータ、クレジット、使用量カウンターといったものは一切ありません——モデルは私たちのものではないので、使い切るものが何もないのです。
  • OllamaまたはLM Studioを使う場合、フォームの説明文は、モデルが動いているマシンの外に一切出ません。
  • 接続が何も設定されていない場合、この機能はまったく表示されず、リクエストも一切行われません。うっかり使われてしまうようなホスト型のフォールバックは存在しません。

貼り付けたキーは、すべてのページで読み込まれるわけではない単一のWordPressオプションに保存され、画面ではその後マスクされて表示されます——ただし入力したとおりの形で保存され、暗号化はされません。データベースにアクセスできるものであれば何でも読み取れます。必要な範囲に限定されたキーを使用し、サイトの所有者が変わる際はキーをローテーションしてください。

返ってくるのは下書きです。それは修正するための出発点であり、読まずに公開してよいフォームではありません——生成されたフィールドは、あなたの国の法律が何を尋ねるべきか、何を省くべきかについて何の知識も持っていません。

他のフォームプラグインからのインポート

フォームは、他の7つのプラグインからインポートできます:Contact Form 7、WPForms、Gravity Forms、Fluent Forms、Formidable Forms、Ninja Forms、SureForms。

  • 元のプラグインは読み取られるだけです。インポートによって他のプラグイン内の何かが変更されたり、無効化されたり、削除されたりすることはなく、そのデータはそのままの場所に残ります。
  • 移行できないものは理由とともに一覧表示されます。あなたがその一覧を見て承認するまで、インポートは書き込みを拒否します——サイレントな部分的インポートこそ、返事をもらえなかった顧客によって3週間後に欠落した通知が発覚する原因になるのです。
  • 古いショートコードは引き続き機能します。移行が有効になると、元のプラグインのショートコードにMevvFormsが応答するようになるため、一度も編集されなかったページでも機能するフォームが表示され続けます。そのショートコードをすでに他の何かが利用している場合、MevvFormsはそれに手を出しません。

自分で新しいフォームを送信し、送信内容と通知を確認するまでは、元のプラグインをインストールしたままにしておいてください。元のプラグインがまだそこにある間は元に戻すのは簡単ですが、なくなってしまうと厄介です。

巻き戻せる WPForms からの移行

移行は読み取り専用で始まります。プレビューには、対応付けられた項目、通知、確認、埋め込み、そして未対応の設定が並びます。適用すると、下ごしらえ済みの MevvForms フォームが一つ作成または更新され、移行元のハッシュが記録されます。WPForms のデータ、リビジョン、テーブル、ページの内容が削除されることはありません。

  1. 適用する前に、プレビューが寸分違わないことを求めてください。
  2. フォームを下ごしらえ済みとしてインポートし、移行元のハッシュをもう一度突き合わせます。
  3. 切り替えのヘルスゲートを実行します。公開、描画、署名付きのテスト送信、手元の送信データ、キューに入った通知です。
  4. 移行元のプラグインを停止してよいのは、これらの確認をすべて通ったあとだけです。
  5. いずれかの確認に失敗した場合、切り戻しが以前の有効なプラグイン一覧を復元し、インポートしたフォームを下書きに戻します。

実測した mevvshop.com の棚卸しは、4 項目、通知 1 件、確認 1 件、稼働中の埋め込み 1 件を持つ移行元フォーム 1 件です。これらの数はそのサイトのリリース基準であって、あらゆる WPForms のフォームについての約束ではありません。

支払いを受け取る

フォームは価格を持つことができます。商品フィールドが品目を保持し、計算フィールドと合計フィールドが支払うべき金額を算出し、注文は送信のたびにサーバー上でスキーマから組み立てられます。

  • 金額がブラウザから来ることは決してありません。送信内容とともに届く合計金額は、あくまで照合のためだけに使われ、不一致があった場合は静かに訂正するのではなく送信自体を拒否します——訪問者に表示された金額以外の金額が請求されることは決してあってはならないからです。
  • 金額は最初から最後まで、その通貨の最小単位の整数として扱われます。どの金額も浮動小数点数を経由することは一切ありません。
  • プロバイダーからの回答なしに支払い済みになることはありません。決済ページから戻ってきたブラウザは、注文をせいぜい「照合が必要」の状態にするだけです。支払い済みとするには、署名検証済みの通知か、プロバイダーへの直接の問い合わせが必要です。
  • カード情報がサイトに届くことは一切ありません。決済のデータ構造にはカード番号、有効期限、セキュリティコードのためのフィールドはなく、データベースにもそれらのための列はありません。
PayPal — Pro のゲートウェイ
Pro は Orders v2 の上に構築した PayPal ゲートウェイを追加します。注文はあなたのサーバーで開かれ、訪問者は PayPal 自身のページで承認し、戻ってくる途中で入金が確定します——あるいは先にタブを閉じた場合は、署名付き通知が届いた時点で確定します。どちらの経路も同じ場所に行き着くため、承認済みの注文が未確定のまま入金されずに残ることはありません。二重確定は二重に防いでいます。確定の呼び出しは PayPal が再実行しない固定のリクエスト ID を持ち、「すでに確定済み」という応答は失敗ではなく、すでに済んだ仕事として読まれます。返金は全額でも一部でも、送信記録から実行します。
PayPal はトルコでは利用できません
PayPal はトルコでは営業しておらず、トルコリラでの決済もできません。したがってこのゲートウェイは海外向け販売のためのものです。トルコの決済プロバイダーはこれまでどおり MevvPos ブリッジ側にあり、その点は何も変わりません。

どの階層でも取引手数料はかかりません。いくつかのフォームプラグインは、無料の決済レイヤーで集めた金額の一定割合を徴収しますが、当プラグインではプロバイダーに送られる金額が注文合計と正確に一致することをテストで検証しています。

PayPal を含め、決済を端から端まで通した実績はまだありません。本番の加盟店アカウントもサンドボックスの加盟店アカウントも、まだ背後にありません。各プロバイダーの経路は代替物に対して実行しており、リクエストと通知の形は、完了した呼び出しではなく各社の公開ドキュメントと一行ずつ突き合わせて確認したものです。これが変わるまでは決済機能を未検証のものとして扱い、当社の言葉だけを根拠に実際の顧客の前に出さないでください。

Zapier と Make

Pro は、送信内容を REST フックとして Zapier や Make に配信することもできます。Zapier がフォームの一つを購読すると MevvForms がその購読を記憶し、以降のすべての送信がキューに入り、そこへ配信されます。購読を解除すれば再び取り除かれます。別途サンプル用のルートがあり、Zapier に直近の送信を渡すので、フィールド対応づけの画面に空欄ではなく実際のフィールド名が表示されます。

  • 認証は、Zapier の設定画面で生成するサイトキーです。認証情報はこれだけで、個人ではなくサイトを識別します。
  • 配信は、無料版がすでに使っている署名付き webhook とジョブキューを通って出ていきます。これは新しい宛先であって二つ目の配信系ではないため、配信ログも再試行もこれまでどおり動きます。
  • 有効なライセンスがなければ、モジュールはそもそも起動しません。ルートは登録されず、フックも追加されず、リモートのアドレスに到達し得るコード経路も存在しません。

Zapier と Make は Pro なしでもすでに到達可能でした。無料版が署名付き webhook を任意のアドレスへ POST できるからです。Pro が取り除くのは「あいだ」の部分——購読、フィールドの対応づけ、再試行を、もう自分で作らなくてよくなります。

Salesforce

Proは送信内容をSalesforceのLead、Contact、またはCaseに変換できます。コネクター画面でフォームのフィールドをオブジェクトのフィールドにマッピングし、各エントリーは他のコネクターと同じキューを通じて送信されます — そのため、Salesforceの障害はレコードを遅らせるだけで、失われることはありません。

  • 認証はリフレッシュトークンを使ったOAuth 2.0です。Salesforceのパスワードがサイトに保存されることはありません。
  • サンドボックスと本番環境は切り替えスイッチであり、別途管理が必要な2つ目の認証情報セットではありません。
  • エントリー自体は、いずれの場合も自サイトに残ります。Salesforceにコピーを送信しても、データがそちらに移動するわけではありません。

自前のオブジェクトストレージへのアップロード

デフォルトでは、ファイル保管庫はWebルートの外側にある自分のディスク上に置かれます。Proはこれを、代わりに任意のS3互換ストレージに移せます — AWS S3、Cloudflare R2、MinIO、DigitalOcean Spaces、Backblaze B2、Wasabiです。リクエストの署名はすべて自前で行うため、サードパーティのSDKがエントリーを目にすることは一切ありません。

変わるのはバイトデータの置き場所であり、誰がそれを取得できるかではありません。ファイルは引き続き、1人に紐づく有効期限付きのリンクを通じてのみ渡され、誰にそれを許可するかは引き続き無償プラグインが決定します。ストレージを移動しても、権限チェックが移動するわけではありません。

対応言語

プラグインには19のWordPressロケールが同梱されています:ドイツ語(ドイツ、丁寧体のドイツ、スイス)、英語、スペイン語(スペイン、メキシコ、アルゼンチン、チリ、コロンビア)、フランス語、イタリア語、日本語、オランダ語(オランダ、ベルギー)、ポーランド語、ポルトガル語(ブラジル、ポルトガル)、ロシア語、トルコ語です。編集可能なソースカタログも含まれているため、自分のサイト上で翻訳を修正することができます。

1行ずつ人の目で通読されたのはトルコ語と英語の2つです。他の言語は完成してはいますが、まだすべてに人の手が入っているわけではありません。あなたの言語で不自然に読める文があれば、それはそういうことであり、それを直すためにカタログが用意されています。

無料版と Pro の境界

信頼できる実行環境は無料版のもので、このページのほぼすべてがそれに含まれます。スキーマ、38 種類すべての項目タイプ、アクセシブルなレンダラー、サーバー側の検証と条件分岐、確認ステップと会話モードを備えた複数ステップのフォーム、保存して再開、CSV 書き出しと監査証跡を備えたローカル送信、管理者メモと承認フロー、通知キューと配信ログ、HMAC で署名された送信 Webhook、完全なスパム対策一式、アクセス制御、ファイル保管庫、フロントエンド表示、保持とプライバシーの機能、分析、AI による生成、7 つのプラグインからのインポーター、そして取引手数料のない一回払い。

Pro は名前のついたサービスコネクターを追加します——Mailchimp、HubSpot、Brevo、ActiveCampaign、Airtable、Notion、Google Sheets、Discord、Telegram、Slack。いずれもそのサービス固有の形で話します。さらに PayPal ゲートウェイ、REST フックの上に構築した Zapier と Make のコネクター、継続課金、割引コード、分割入金が加わります。これが依然として何を意味するかにご注意ください。無料版はすでに署名付き webhook を任意のアドレスへ POST できるので、Zapier も Make も、ご自身で書いたものも Pro なしで到達できます。Pro が取り除くのは「あいだ」の部分——購読、フィールドの対応づけ、再試行——を自分で書かずに済ませることです。ライセンスの門はモジュール自身の起動チェックで、有効なライセンスがなければコネクタークラスは読み込まれず、ジョブフィルターも登録されず、リモート呼び出しは起こり得ません。

ロードマップの項目が、動く機能として宣伝されることはありません。Pro のモジュールを前提にフォームを設計する前に、インストール済みのバージョンとリリースノートを確認してください。

トラブルシューティングと切り戻し

以前のショートコードが空になる
その移行元 ID に有効な移行の対応付けがあること、そして wpforms のショートコードを別のプラグインが持っていないことを確認してください。
送信でセッションの期限切れと表示される
ページを再読み込みし、最新の公開リビジョンに対して送信してください。
通知が待機したままになる
キューの状態を開き、設定に起因する恒久的なエラーを直すか、一時的な転送エラーであれば予定された再試行を待ってください。
切り替えが WPForms を停止しなかった
ヘルスの結果を読んでください。描画、送信、送信データ、ジョブのいずれかの検証に失敗したため、安全のためのゲートが WPForms をそのままにした、あるいは元に戻したということです。
訪問者には見えなかったはずのフィールドの値が届いた
それはまさにサーバーが判断を下す時点です。条件は送信時に再評価されるため、非表示のフィールドに対してPOSTされた値はそこで破棄されます——ブラウザではなく条件そのものを確認してください。
CSVでトルコ語の文字が文字化けする
ファイルにはバイトオーダーマークが付いており、UTF-8です。別のエンコーディングとしてインポートするよう指示された表計算ソフトでは、それでも正しく表示されません。エンコーディングがあらかじめ選択されたインポートウィザードを使わず、直接開いてください。
ダウンロードリンクの有効期限が切れていると表示される
リンクは初期設定で15分間有効で、それを要求した本人に紐づいています。送信内容から新しいリンクを生成してください。リンクを同僚に転送することはできません。
AIパネルが表示されない
接続が設定されていません。パネルは壊れた状態で表示されるのではなく非表示になり、非表示の間は何もどこにも送信されません。
メニュー項目を開くと空の画面が表示される
メニューの一部の項目は、まだ作られていない画面のためのプレースホルダーです。空の画面は、インストールが壊れていることを意味するものではありません。

サポートには、プラグイン、WordPress、PHP のバージョンと、安全なエラーコードをお知らせください。ログを送る前に、項目の値、顧客データ、セッショントークン、nonce、ライセンスキーを取り除いてください。

更新

更新は WordPress 自身を通して届きます。プラグインは新しいバージョンがあるかを当社ストアに尋ね、その答えを WordPress 自身の更新の流れに渡します。そのため新しいリリースは、誰かが手作業で zip を取りに行くのを待つのではなく、プラグイン画面にごく普通の更新ボタンとして現れます。無料版では、このリクエストが運ぶのはパッケージ名とインストール済みバージョンだけで、サイトのアドレスも、メールアドレスも、ライセンスキーも、プラグインの一覧もありません。あなたを特定するものが何も含まれないため、信頼は署名にかかっています。応答は当社の Ed25519 鍵で署名されており、署名がない・署名が合わない・古いタイムスタンプから再生された・ダウンロード先が当社以外のホストを指す応答は、サイトに触れることなく破棄されます。

できないこと

このページにある内容を何ひとつ鵜呑みにしなくて済むよう、率直に述べます。

  • 決済機能は、本番またはサンドボックスの加盟店アカウントに対して検証されていません。プロバイダーのドキュメントに基づいて構築され、代替の通信経路に対してテストされています。
  • 作成ツールには元に戻す・やり直す機能がありません。戻る手段はリビジョンです。
  • PDF出力はサイトの環境に依存します。PDFライブラリがインストールされていれば、MevvFormsはそれを使用します。インストールされていなければ、代わりに印刷可能なドキュメントを生成し、印刷自体はブラウザに任せます。PDFライブラリは同梱されておらず、どこからも取得されません。
  • すべてのメニュー項目が実際の画面を開くようになりました。 レポート、連携、インポートとエクスポート、設定、権限、ログは以前のリリースでは仮置きでした。1.1.0 以降、それぞれが独自のパッケージから提供されます。
  • アップロードファイルの保管庫は、初期設定ではアップロードディレクトリの中にあります。自分でWebルートの外を指定しない限り、その場所ではなく拒否ルールによって保護されます。
  • AIのキーは入力されたとおりに保存され、暗号化はされません。画面上ではマスクされ、常に読み込まれるオプションからは除外されていますが、それは読み取れないということとは違います。
  • 作成ツールのキーボード対応は、完全ではありますが小規模です。ボタンは通常のキーで操作でき、フィールドの移動には1つのショートカットがあります。覚えるべき大きなキーマップはなく、発見すべきものもありません。

このページで何かが計測されたと書かれていれば、それは実際に計測されています。何かが実証されていないと書かれていれば、それは謙遜ではありません——そのテストがまだ存在しないという意味であり、その主張はまだ未完成のものとして扱うべきです。