SPWForm

説明

SPWForm は WordPress 用のメールフォームプラグインです。各フォームを管理画面で定義し、生成されたショートコードをページに配置し、メール設定を管理できます。すべて PHP を書かずに行えます。従来型の WordPress メールフォームプラグインでフォームを作成してきた方には、ショートコードベースのワークフローがすぐに馴染むはずです。

各フォームは非公開のカスタム投稿タイプとして管理されます。よく使う項目のショートコードでフォーム本文を組み立て、自動返信メールと管理者通知メールを設定し、送信前に確認ステップを使用するかどうかを選択できます。

フォームを装飾する2通りの方法

SPWForm は、初心者にも経験豊富な開発者にも適しています:

  • 即時デザイン — 新規インストール時に、すぐ使えるサンプルフォームが含まれています。それを複製し、「SPWForm 標準スタイルを使用する」をオンにするだけで、CSS 不要で整ったデザインのフォームを作ることができます。
  • 完全な自由デザイン — 「SPWForm 標準スタイルを使用する」をオフにすると、標準デザインは適用されません。独自の CSS やテーマでフォーム全体を自由にスタイリングし、あらゆるデザインに対応できます。経験豊富なフォーム制作者が慣れ親しんだ、従来型の手作業によるアプローチです。

どちらの場合も、同梱のサンプルを出発点として、項目・メール・入力チェックをサイトに合わせて調整できます。

主な機能

  • WordPress 管理画面のフォーム管理画面。
  • [SPWForm_scode key="FORM_ID"] でフォームを出力。
  • テキスト、テキストエリア、メール、hidden、ラジオ、チェックボックス、セレクト、ファイルアップロードの各項目に対応する項目ショートコード。
  • 確認・完了フローに対応。
  • 自動返信メールと管理者通知メールの設定。
  • 必須項目、メールアドレス、一致確認、数値、文字種、URL、郵便番号、電話番号に対応するカスタム入力チェックルール。
  • 許可する拡張子を設定できるファイルアップロードに対応。
  • すべてのフォームに適用される構造・状態の保護を同梱。さらに、有効なフォームを表示するページでのみ読み込まれる、任意の標準デザインも用意。
  • フォームごとの完了メッセージ。
  • 入力・確認・完了の URL を個別に指定できるオプション。
  • ステップ URL を使用する場合に、確認ページと完了ページへ noindex を出力。
  • 日本語・英語サイト向けの、ローカライズされたデフォルトサンプルフォーム。

対応する項目ショートコード

  • [spwf_text]
  • [spwf_textarea]
  • [spwf_mail]
  • [spwf_hidden]
  • [spwf_radio]
  • [spwf_checkbox]
  • [spwf_select]
  • [spwf_file]
  • [spwf_back]
  • [spwf_submit]
  • [spwf_confirm]
  • [spwf_reset]

補足

SPWForm は WordPress の wp_mail() 関数を通じてメールを送信します。実際の到達は、サーバーとメールの設定に依存します。確実に到達させるため、必要に応じて SPF・DKIM・DMARC を含め、サイトと送信元ドメインを正しく設定してください。

外部サービス

SPWForm は、サイト管理者がフォームの reCAPTCHA を有効にし、Google reCAPTCHA のキーを設定した場合に限り、Google reCAPTCHA へ接続します。

訪問者のブラウザーは Google から reCAPTCHA JavaScript API を読み込みます。送信時には、レスポンストークン、設定されたシークレットキー、訪問者の IP アドレスを Google の検証エンドポイント(https://www.google.com/recaptcha/api/siteverify)へ送信します。Google はこの情報を利用して操作が正当か判定します。SPWForm はフォームの入力内容を検証エンドポイントへ送信しません。

このサービスは Google が提供し、Google の利用規約とプライバシーポリシーが適用されます。

  • Google 利用規約: https://policies.google.com/terms
  • Google プライバシーポリシー: https://policies.google.com/privacy
  • reCAPTCHA ドキュメント: https://developers.google.com/recaptcha/

スクリーンショット

インストール

  1. プラグインファイルを /wp-content/plugins/spw-form/ ディレクトリにアップロードするか、WordPress のプラグイン画面からインストールします。
  2. WordPress の「プラグイン」画面でプラグインを有効化します。
  3. WordPress の管理画面で SPWForm メニューを開きます。
  4. フォームを作成または編集します。
  5. 生成されたショートコード (例: [SPWForm_scode key="123"]) をコピーします。
  6. フォームを表示したいページにショートコードを貼り付けます。

SPWForm フォームがまだ存在しないサイトでプラグインを有効化すると、その言語向けのサンプルフォームが1つ作成されます。

FAQ

フォームを表示するにはどうすればよいですか ?

SPWForm の管理画面でフォームを作成し、生成されたショートコードをページに配置します:

[SPWForm_scode key="123"]

123 は、フォーム編集画面に表示されるフォーム ID に置き換えてください。

送信前に確認画面を使用できますか ?

はい。フォーム本文に、戻る・送信・確認の各ボタンのショートコードを追加します:

[spwf_back value="Back"]
[spwf_submit value="Submit"]
[spwf_confirm value="Confirm"]

戻る・送信・確認・リセットの各ボタンで tag="button" を指定すると、<button> 要素として出力されます。戻る・送信・確認は送信系のコントロール、リセットはリセット系のコントロールのままです。装飾には、テーマ側で定義した CSS とともに class 属性を使用してください。利用者が指定した style 属性は出力されません。

入力・確認・完了の各ページに、個別のステップ URL を設定することもできます。

アップロードできるファイルの種類は何ですか ?

ファイル項目は allow 属性に対応しています。対応する拡張子は次のとおりです:

jpg jpeg png gif webp pdf txt csv zip doc docx xls xlsx

allow を省略した場合は、画像ファイルの種類が既定で許可されます。

SPWForm にはスパム対策が含まれていますか ?

はい。本体プラグインには、設定不要で機能する2つのスパム対策が含まれています:

  • 自動化されたボットによる送信を、通知せずに破棄するハニーポット項目。
  • 同じ訪問者が短時間に多数のメッセージを送信するのを防ぐレート制限 (既定では60秒あたり最大5回まで)。

これらは自動的に有効になります。標的型スパムへの対策を強化する場合は、フォームごとに Google reCAPTCHA v2 チェックボックスまたは v3 を利用できます。フォーム編集画面で reCAPTCHA を有効にし、種類を選択して、対応するサイトキーとシークレットキーを入力してください。

ご注意ください。これらの対策は既定で有効なため、短時間に何度も送信する訪問者 (例: 1つのオフィスやネットワーク接続を共有する複数人) には、まれに「しばらく待ってから再度お試しください」というメッセージが表示されることがあります。開発者は spwf/rate_limit/* フィルターで上限を調整できます。

送信がセキュリティエラーで拒否されます。何を確認すればよいですか ?

フォームページがフルページキャッシュ (例: WP Super Cache、LiteSpeed Cache、CDN など) から配信されている場合、キャッシュされたページに埋め込まれたセキュリティトークンが数時間後に期限切れとなり、その後の送信が拒否されることがあります。各訪問者が新しいページを受け取れるよう、フォームページをフルページキャッシュの対象から除外してください。

NGINX など Apache 以外のサーバーでは、アップロードされたファイルはどのように保護されますか ?

アップロードされたファイルは wp-content/uploads/spwform/ 以下に保存されます。これらのファイルが公開 URL からリンクされることはありません。本体プラグインはメールの添付ファイルとしてのみ使用し、Pro アドオンは認証済みの管理リクエストを通じて保存済みの添付ファイルを配信します。Apache では、同梱の .htaccess ファイルがこのフォルダーのディレクトリ一覧表示と直接アクセスをブロックします。

.htaccess を読み込まないサーバー (例: nginx) では、この保護は無視されます。そのようなサーバーでは、フォルダーへの直接的な Web アクセスを拒否する同等のルールをサーバー設定に追加してください。nginx の場合:

location ^~ /wp-content/uploads/spwform/ { deny all; }

アップロード先ディレクトリが既定以外の場所にある場合は、パスを調整してください。これらのファイルは公開リンクされないため、直接アクセスを拒否しても機能には影響しません。ファイル名はランダムで、フォルダーの一覧表示もできないため、これは多層防御のための措置です。

1ページに複数の SPWForm フォームを配置できますか ?

いいえ。同じページに複数の SPWForm フォームを配置することはサポートしていません。1ページにつき1つのフォームでご利用ください。

ドキュメントはどこで確認できますか ?

ドキュメントはプラグインの管理画面で確認できます。日本語のガイドは以下でも公開しています:

https://studio.squareman.net/guide/spwform/

評価

このプラグインにはレビューがありません。

貢献者と開発者

SPWForm はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“SPWForm” は1ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“SPWForm” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログを RSS で購読してみてください。

変更履歴

0.2.9

  • フォームごとに任意で利用できる Google reCAPTCHA v2 チェックボックスと v3 を本体プラグインの標準機能として追加しました。
  • SPWForm Pro の既存 reCAPTCHA 設定を引き継ぎ、旧バージョンの Pro とも安全に切り替えられる互換処理を追加しました。
  • アドオンが個人情報を保持せずに集計するための、検証結果アクションを追加しました。

0.2.8

  • 翻訳に対応し、インターフェイスがサイトの言語で表示されるようになりました。

0.2.7.4

  • フォーム数が多いサイトでも動作が重くならないよう、既定サンプルフォームの判定処理を改善しました。