SlideMe Out of Spam – Privacy-Friendly CAPTCHA for WordPress

リリースノート

SOS Captchaのすべてのリリース情報(最新のものから順に)。新しいバージョンは、WordPress管理画面の「プラグイン」画面から入手できます。

1.0.85 — 2026-10-12

  • 修正(プレミアム版):統計ページで、検証結果が実際に記録されるようになりました。以前はデータベーステーブルが作成されておらず、カウンターは管理画面でのみ読み込まれていたため、ページには「データはまだありません」と表示されたままでした。
  • 新機能(プレミアム版):統計情報にスライダーに関する数値が追加されました。フォームごとのチェックポイントの平均数や解決時間、およびブロックされた試行を理由別に内訳表示し、スライダーがどこまで動いたかがわかります(スライダーに一切触れないボットはチェックポイントを取得しません)。統計情報は1年間保存されますが、個人データは一切含まれません。
  • 新機能:soscaptcha_validation_success および soscaptcha_validation_failed アクションに、追加の引数としてスライダーの数値(チェックポイント、収集数、解答時間)が渡されるようになりました。

1.0.84 — 2026-10-12

  • セキュリティ(ログインフォーム、プレミアム版):WordPressのログインページおよびWooCommerceの「マイアカウント」ログインにおけるスライダーチェックが強化されました。これにより、ユーザー名とパスワードの検証前にスライダーチェックが実行されるようになり、スライダーチェックに合格しなかったすべてのログイン試行に対して、同じ応答が返されるようになりました。スライダーチェックに合格してログインする場合は、従来通り機能します。

1.0.83 — 2026-10-12

  • 修正(Contact Form 7):スライダーによって拒否されたメッセージは、他のアドオンが送信データを処理する前に、Contact Form 7独自のスパム対策段階で停止されるようになりました。 これまでは、拒否処理によってメール送信のみがキャンセルされていたため、送信データをデータベースに保存するアドオン(Contact Form CFDB7など)では、拒否されたメッセージが依然として保持される可能性がありました。訪問者には、以前と同じエラーメッセージが表示されます。
  • 新機能(Contact Form 7):soscaptcha_cf7_resultアクションおよびSOSCAPTCHA_CF7::get_instance()->get_last_result() を追加し、各送信の検証結果(ステータス、チェックポイント、エラー)をログに記録または保存できるようになりました。

1.0.82 — 2026-10-06

  • 修正:自動更新が正常に完了した後、WordPressが少し後にまったく同じバージョンを再試行し、「更新できませんでした(X から X へ)、以前のバージョンが復元されました」と報告することがありました。これは、アップデーターがサーバー上のバージョンとディスク上のバージョンではなく、メモリにまだ読み込まれているバージョンと比較していたためで、その結果、古い「更新あり」のエントリが残ってしまっていました。 現在は、WordPressがプラグインファイルから読み取るバージョンと比較するようになっています。また、sos-captcha.comから発行されるダウンロードリンクの有効期限も1時間から3日に延長されたため、スケジュールされた更新でリンクの有効期限切れに遭遇することはなくなりました。

1.0.81 — 2026-10-06

  • 修正(プレミアム版、Ninja Forms):Ninja Formsでの送信におけるスライダーのサーバーサイド検証が再設計され、確実に機能するようになりました。スライダーの値はNinja Forms独自の送信ペイロードに含まれており、検証に失敗した送信は拒否され、フォーム上部にエラーが表示されます。この場合、データは一切保存も送信もされません。
  • 改善点:チャレンジは、それが発行されたフォームに紐付けられるようになり、チャレンジが参照されるたびにフォームの種類が確認されるようになりました。
  • 開発:テストスイートを再構築しました。サーバーサイドのスイートを修復(1.0.54でのリネーム以降、不具合が発生していました)、厳格なネガティブアサーション、メールキャプチャとの統合に伴うサーバーサイド送信テスト、および非対話型のbin/test-all.sh を追加しました。 CLAUDE.mdの「テストルール」を参照してください。

1.0.80 — 2026-10-06

  • 修正(プレミアム版、WPForms):WPFormsでの送信時におけるスライダーのサーバーサイド検証が再設計され、確実に適用されるようになりました。チェックに失敗した送信は、「スパム対策チェックに失敗しました」という明確なメッセージとともに拒否されます。
  • 新機能(プレミアム版、WPForms):通知メール用のスマートタグ{soscaptcha_status}および{soscaptcha_checkpoints}。これらは、バージョン 1.0.78 で追加された Contact Form 7 タグに相当する WPForms 用のタグです。 フォームビルダーの [設定] → [通知] → [メールメッセージ] で、{all_fields}(これだけではこれらのスマートタグは含まれません)の後に追加してください。サーバーサイドで計算されるため、訪問者が内容を変更することはできません。

1.0.79 — 2026-10-06

  • 修正:特定の状況下で、「初回成功後はスキップ」チェックボックスが、本来は許可されるべきではない送信を受け入れてしまうことがありました。検証プロセスが強化され、「すでに検証済み」の状態がサーバー側でより厳格にチェックされるようになり、設定可能な期間経過後に無効化されるようになりました。以前のバージョンで記録された状態はリセットされるため、再訪問したユーザーはスライダー課題を再度解く必要があります。
  • 新機能:「スキップ時間」設定(設定 → チャレンジ軽減)— チャレンジを正解した後、スライダーが再び表示されるまでの有効期間を、1分から24時間まで設定可能(デフォルト:60分)。以前はブラウザセッション全体にわたって有効でした。
  • 開発:新しいフィルター「soscaptcha_solved_cookie_ttl」および「soscaptcha_solved_cookie_context」が追加されました(後者を使用すると、例えば、認証済み状態を訪問者のIPアドレスに紐付けることができます)。

1.0.78 — 2026-10-06

  • 新機能:Contact Form 7の通知メール用に、2つの特別なメールタグ[_soscaptcha_status]および[_soscaptcha_checkpoints] が追加されました。 これらは、受信した各メッセージについて、スライダーが実際に検証されたか(および何個のチェックポイントで)、ログイン済みのユーザーやすでに検証済みのセッションのためにスキップされたか、あるいは実行されなかったかを示します。 これらはサーバー側で計算されるため、訪問者が偽造することはできません。Contact Form 7 → フォーム → メール の画面で、メール本文にこれらを追加してください。

1.0.77 — 2026-10-05

  • 修正点:多言語サイトにおいて、すべての訪問者に対してスライダーのテキストが管理者の言語で固定されていた問題を修正しました。デフォルトのテキストは各訪問者の言語に合わせて表示されるようになりました。カスタマイズしたテキストは保持され、WPMLやPolylangを使用して翻訳可能になります。
  • 新機能:現在のブラウザセッションで既に課題が解決済みの場合、保護されたフォームにはスライダーが表示されない代わりに、「✓ このセッションですでに認証済み」と表示されるようになりました。
  • 修正:スライダーの確認テキストが常にフランス語で表示されていた問題を修正し、翻訳されました。
  • 修正:「Slide」(プレゼンテーションのスライドと誤訳されていた)の翻訳をほとんどの言語で修正し、ドイツ語、アラビア語、イタリア語、中国語における「Slide to check」の翻訳も修正しました。

1.0.76 — 2026-10-02

  • 修正:翻訳済みのサイトにおいて、新しい文字列が英語のまま表示される問題。このプラグインは、古いWordPress.orgの言語パックや旧式のプレミアムカタログではなく、常に同梱の翻訳(常に最新のカタログ)を読み込むようになりました。
  • 修正:スライダーの JavaScript 翻訳ファイルのパスが間違っていた問題を修正しました。

1.0.75 — 2026-10-02

  • 新機能:「更新」設定タブに自動更新のオン/オフ切り替えが追加されました(プラグイン画面の「自動更新を有効にする」リンクと同じ設定です)。
  • 新機能:自動更新がオフになっている場合、管理画面に新バージョンの通知が表示され、「今すぐ更新」、「自動更新を有効にする」、「このバージョンを無視する」というアクションが選択できるようになりました。
  • 修正点:「Protected by SOS Captcha」バッジが、コメントフォームだけでなく、保護対象のすべてのフォーム(Contact Form 7、WPForms、ログインページなど)のスライダーの下に表示されるようになりました。
  • 修正点:スライダーの塗りつぶし色が、ハンドルに遅れをとることなく、即座に追従するようになりました。

1.0.74 — 2026-06-19

  • 新機能:自動更新機能が組み込まれました。プラグインがsos-captcha.comから直接更新を確認・インストールするようになったため、WordPress.orgのディレクトリを経由することなく、常に最新の状態を維持できます。
  • 内部変更:プラグインを単一のコードベースに統合しました(プレミアム機能は、個別のアドオンではなく、ライセンスによって制御される内部モジュールから読み込まれます)。機能に変更はありません。無料版は従来通りで、ライセンスを取得したインストール環境では、これまでと同じプレミアム機能が利用可能です。
  • 新規インストールでは、より使いやすくなったデフォルト設定が最初から適用されるようになりました(チェックポイント4~6個、1チェックポイントあたり最低0.5秒、レート制限30秒、ログイン済みユーザーはスキップ)。既存のサイトでは、保存済みの設定が維持されます。

1.0.73 — 2026-06-15

  • 完全に機能する無料プラグイン — ロックされた設定は一切ありません。 無料プラグインに表示されるすべての機能が現在利用可能です。無効化されているオプションや機能制限、アップグレードが必要なオプションは一切なく、いかなる種類のライセンスチェックも行われません。別途提供される「SOS Captcha Pro」アドオンに属する機能(追加の連携機能、高度なボット検出、カスタムカラー、統計、バッジの非表示)は、単なる情報表示としてのみ表示され、無効化されたコントロールとして表示されることはありません。
  • チェックポイントの範囲は、アップグレードの案内が表示されないよう、すべてのユーザーで統一されました(2~12)。
  • スライダーのカスタムカラー機能は、すべてProアドオンに移行されました。無料版プラグインには固定のデフォルトカラーが搭載されています。既存の無料版サイトには影響ありません(無料版ではカスタムカラーが保存されることはありませんでした)。

1.0.72 — 2026-05-26

  • より使いやすいデフォルト設定:チェックポイントごとの最小時間を1秒から0.5秒に短縮、レート制限の有効期間を60秒から30秒に短縮、チェックポイントの数は4~6個の間でランダムに設定されるようになりました(以前は固定の6個でした)。 チャレンジの有効期限のデフォルトが10分に統一されました(以前は1分でしたが、ユーザー向けの「10分後に期限切れ」という通知文はすでに10分を前提としていました)。既存のサイトでは保存された値が維持され、新規インストール時のみ新しいデフォルト設定が適用されます。

1.0.71 — 2026-05-06

  • 新しいヘルパー関数SOSCAPTCHA_Generator::pro_extra_fields()/pro_extra_fields_html()— 統合機能でレンダリングが必要な、Pro版ハニーポットおよびブラウザフィンガープリント用の非表示入力フィールドに関する唯一の信頼できる情報源です。 9つの統合アダプター(CF7、コメント、WPForms、Gravity Forms、Ninja Forms、WooCommerceのレビュー/チェックアウト/登録、WPのログイン/登録/パスワード再設定)は、それぞれトグルがオンの状態になると、これらのフィールドを出力するようになりました。
  • Slider JSは、スライダーの初期化時にbase64エンコードされたJSONフィンガープリント({ ua, lang, tz, screen }) を計算し、非表示の入力フィールドに書き込みます。これは、Pro 1.0.10で書き直されたバリデータと連携しており、申告されたUAが$_SERVER['HTTP_USER_AGENT']と一致するかをチェックすることで、自動化ツールキットを検出します。

1.0.70 — 2026-05-06

  • **重大:最後のチェックポイントでスライダーの検証に失敗しました。**assets/challenge-slider.js内の「次のチェックポイントのハイライト」処理のコードは、AJAX ブロックによってlastCheckpoint がすでに最終インデックスまで進められた後にcheckpointDots[lastCheckpoint + 1].style.borderColor = …を実行していました。そのため、最後のドットに到達した時点でundefined を参照してしまいました。 この TypeError により、収集したトークンをフォームの非表示入力フィールドsoscaptcha_tokensに書き込むsetTimeoutを含め、updatePosition の残りの処理が中断されました。結果として、トークンが空の状態でフォームが送信され、サーバーから「invalid_tokens」というエラーで拒否されました。実際に次のチェックポイントが存在する場合にのみハイライトが実行されるよう、ガードを追加しました。

1.0.69 — 2026-05-06

  • **重大な修正:スライダー課題が読み込まれない問題**(action: soscaptcha_get_challenge_config での admin-ajax 400 エラー)。 3つのフロントエンドAJAXエンドポイント(get_challenge_config、collect_token、refresh_challenge)は、PHP側でレガシーなwp_ajax_sos_*プレフィックスの下に登録されていましたが、スライダーのJSはaction=soscaptcha_*を送信していました(これはバージョン1.0.54で適用されたWP.orgの4文字以上のプレフィックス規則に準拠しています)。この不一致により、**すべての**チャレンジ取得リクエストで400エラーが返され、スライダーがレンダリングできず、保護されたページでのフォーム送信が検証できなくなっていました。 PHP側では、これに合わせてwp_ajax_soscaptcha_*を使用するように変更しました。- 影響を受けるページ:プラグインによって保護されているすべてのフォーム(ログイン、コメント、CF7、デモページなど) – ライセンス有効化時の400エラー(1.0.2)や設定の自動保存時の400エラー(1.0.65)と同じ根本原因の系統に属します。ついに3件目の事例を突き止めました。

1.0.68 — 2026-05-06

  • Plugin Checkによる修正(バージョン1.0.67の公開後に発見されたリグレッション):disabled-input属性の適切なエスケープ処理(生の文字列を出力する代わりに、WordPressのdisabled()ヘルパー関数を使用するようになりました)、/* 翻訳者の方へ: */コメントを__()呼び出しの直隣に移動、およびload_plugin_textdomain()を削除(WP 4.6 以降、WP.org でホストされているプラグインの翻訳は WP が自動読み込みするため、この呼び出しは非推奨としてフラグが立てられています)

1.0.67 — 2026-05-06

  • **Pro版連携トグルが静かに失敗する問題を修正** — 連携機能の保存ハンドラーの許可リストには、当初、2つの無料連携機能(コメント、CF7)のみが設定されていました。 Pro版のフィルター(バージョン1.0.64以降)は、エントリを追加するのではなく、正規レジストリ上のロックフラグを切り替えるのみであるため、Pro版のトグル(WPForms、Gravity Formsなど)は保存時に無言で削除されていました。 ハンドラーは現在、SOSCAPTCHA_Integrations::filtered()から初期値を設定するため、9つのキーすべてが受け入れられるようになりました。ただし、ライセンスが有効でない場合は、サーバーサイドのガードによって Pro トグルが引き続きブロックされます。

1.0.66 — 2026-05-06

  • 英語以外の全9つのロケールについて翻訳を更新しました(ソース文字列の変更はありません。対応するスーパーセットの.moファイルが同梱されているPro 1.0.8と互換性があります)。

1.0.65 — 2026-05-06

  • **管理画面の「設定」>「連携」が保存されない問題を修正** — AJAXアクション名はwp_ajax_sos_save_*として登録されていたものの、JSの自動保存ではaction=soscaptcha_save_* がPOSTされていました。この不一致により、変更のたびにエラーが黙って発生していました。現在、両方でsoscaptcha_save_*を使用するよう修正されました。
  • **「Get Pro」ページにおける重大なエラーを修正** — DeepLは短いフォーマット文字列を翻訳する際に%sプレースホルダーを削除してしまうため、printf( 'or %s/year (save 20%%)', $price )がPHP 8以降でArgumentCountErrorを発生させていました。 これを、2つのよりシンプルな翻訳可能な文字列と、翻訳にプレースホルダーが含まれていない場合に英語にフォールバックする実行時ガードにリファクタリングしました。
  • 翻訳が再生成されました。以前表示が崩れていた「年間節約額」の行が、英語以外の9つのロケールすべてで正常に表示されるようになりました。

1.0.64 — 2026-05-06

  • 統合一覧画面では、Pro版プラグインがまったくインストールされていない場合でも、Pro版フォーム統合機能(WPForms、Gravity Forms、Ninja Forms、WooCommerce、WPログイン/登録/パスワード再設定)がロックされたプレビューとして表示されるようになりました。これにより、ユーザーはPro版を先にインストールしなくても、利用可能な機能を確認できます。
  • 新しい共有データファイルとして、/data/integrations.php が追加されました(単一の信頼できる情報源であり、ティアマトリックスパターンを反映しています)。このファイルには、新しいヘルパー関数SOSCAPTCHA_Integrationsを通じてアクセスします。
  • 「外観」タブに3つのグラデーションカラープリセット(クラシック/パープル/オーシャン)を再追加しました。Proライセンスが有効でない場合はロックされます。
  • 翻訳:新しい「ロックされたプレビュー」、「プリセット」、「統計」に関する文字列に合わせて更新されました

1.0.63 — 2026-05-05

  • 設定ページを再構築し、Pro版の機能をロックされたプレビューとして表示するようにしました。これにより、訪問者や管理者は、Pro版をインストールしなくても、各プランでどのような機能が利用可能になるかを確認できます。- 「検証」タブ:新しい「高度なボット検出」セクション(行動分析、ハニーポット、ブラウザフィンガープリント)が追加されました。ライセンス取得までは無効状態となり、Proバッジが表示されます。 – 「チャレンジ削減」タブ:新しい「タイムアウト時の自動リロード」トグル。ライセンス取得まではロックされています- 新しい「外観」タブ:グラデーションカラーピッカーと「バッジの表示/非表示」トグルが追加されました。どちらもライセンス取得まではロックされています
  • Pro版が有効になっていない場合、管理画面のサイドバーに新しい「統計」サブメニュー項目(鍵のアイコン付き)が表示されます。これをクリックすると、Pro版のアップセルページが表示されます。
  • soscaptcha_pro_activeフィルターに裏打ちされた新しいヘルパー関数SOSCAPTCHA_Tiers::is_pro_active()が追加されました。Pro 版では、ライセンスが有効な場合にこの機能が有効になります。

1.0.61 — 2026-05-05

  • 新機能:プラン階層および機能マトリックスの単一の情報源をincludes/data/tier-matrix.phpに実装(SOSCAPTCHA_Tiersヘルパークラスを通じて参照可能)。 無料版の「Get Pro」ページとPro版プラグインの「ライセンス」ページの両方がこのファイルから生成され、sos-captcha.comの価格設定と常に同期が保たれています。
  • 「Get Pro」ページを刷新:4つのプラン(Free / Starter / Pro / Agency)の比較表(月額・年額価格表示)、Proプランに「MOST POPULAR」バッジを追加、各プランごとのsos-captcha.comへのCTAを設置
  • 翻訳:最新のソース文字列に合わせて、すべての .pot/.po/.mo ファイルを再生成しました(以前の .mo ファイルは 1.0.50 時点のもので、プレフィックスの名称変更に伴い追加された数十の文字列が欠落していました)。

1.0.60 — 2026-05-05

  • 翻訳:手動でアップロードされたインストール環境(WordPress.org経由で配布されたものだけでなく)でも管理画面の文字列が翻訳されるよう、load_plugin_textdomain()を明示的に呼び出すようにしました。
  • 統合機能グリッド:Proライセンスが有効でない場合、Pro統合機能に「Pro」ロックバッジとアップグレードCTAを表示する(Proプラグインのsoscaptcha_integrationsフィルターによって公開される新しいpremium_lockedフラグに依存)。
  • soscaptcha_show_get_pro_menuフィルターを追加しました。Pro プラグイン(1.0.2 以降)は、このフィルターをフックして、ライセンスが有効になると「Get Pro」アップセルサブメニューを非表示にします。

1.0.59 — 2026-05-05

  • 管理画面のJS 404エラーの修正:ファイル名をadmin/js/sos-admin.{js,min.js}からadmin/js/soscaptcha-admin.{js,min.js}に変更し、バージョン1.0.54で導入されたプレフィックス付きエンキューパスに合わせる

1.0.57 — 2026-05-05

  • 有効化時の致命的なエラーを修正:1.0.54で導入された`require_once`のパスに合わせるため、クラスファイルのファイル名を`class-sos-*.php`から`class-soscaptcha-*.php`に変更しました(このファイル名変更により、`require`パスには影響しましたが、ディスク上のファイル自体には影響はありませんでした)。
  • WordPress.org プラグインチェック:admin/views/{settings,integrations,get-pro}.php内の view-scope 変数に「soscaptcha_」というプレフィックスを付けることで、WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound警告を解消します。

1.0.56 — 2026-05-05

  • ホスト側のフォーム上で他のプラグインとの競合を避けるため、フォーム内で渡される3つの入力変数名(challenge_session、challenge_nonce、collected_tokens→soscaptcha_session、soscaptcha_nonce、soscaptcha_tokens)に接頭辞を付けてください。
  • すべての連携機能(Contact Form 7、コメント機能、およびプレミアムアダプター)と、スライダーのJSセレクターを適宜更新しました。

1.0.55 — 2026-05-04

  • WordPress.orgの準拠要件を満たすため、soscaptcha-というプレフィックスをCSSクラスおよびスクリプトハンドル(すべての場所で4文字以上のプレフィックス)に拡張しました。

1.0.54 — 2026-05-04

  • PHPクラスのプレフィックスを「SOS_」から「SOSCAPTCHA_」に、関数のプレフィックスを「sos_」から「soscaptcha_」に変更しました(WordPress.orgのガイドラインに基づき、プレフィックスは4文字以上としています)。

1.0.53 — 2026-05-03

  • アーキテクチャ:プラグインを、無料版(本プラグイン)と、WordPressのフィルター/アクションを通じて読み込まれるオプションのコンパニオンプラグイン「sos-captcha-pro」に分割しています。
  • 無料プラグインには、プレミアム版のコードパスが一切含まれなくなりました。これにより、WordPress.orgにおける試用版ソフトウェアに関する懸念に対処しています。
  • 関連プラグインの「必要なプラグイン」には、sos-captcha(WP 6.5+)が指定されています。

1.0.52 — 2026-05-03

  • ZIPファイルに同梱されているソースアセットから、開発用コメント(CSSおよびJS)が削除されました。これにより、内部メモが漏れることなく、レビュー担当者がコードを人間が読みやすい状態で確認できるようになりました。
  • プラグインの読み込み方法は変更なし:本番環境では .min.js および .min.css が読み込まれ、SCRIPT_DEBUG=true の場合はソースファイルが読み込まれます。
  • readme から GitHub リポジトリへのリンクを削除しました(ソースコードはプラグイン内に同梱されています)

1.0.51 — 2026-05-03

  • WordPress.org 準拠第2弾(レビューアからのフィードバックへの対応)
  • 試用版:ビルド時のポストプロセッサが、無料版ZIPファイルからすべての $is_licensed 条件分岐を削除します(新規ファイル bin/strip-license-checks.php)。
  • ソースコードの可視性:ミニファイされていない .js / .css ファイルを、それぞれの .min ファイルと併せて公開する。GitHub リポジトリの readme にその旨を記載する。
  • セキュリティ:AJAXエンドポイントでは、セッションに紐付いたHMACノンス(キャッシュ対応)が必須となりました。フォーム送信時には、バリデータでノンスの検証が行われます。8つの統合機能すべてで、ノンスフィールドが表示されます。

1.0.50 — 2026-04-29

  • ブランド変更:プラグイン名を「SOS Anti-Spam」から「SOS Captcha」に変更しました。スラグ、テキストドメイン、言語ファイルを「sos-captcha」に更新しました。
  • メインファイルの名称変更:slide-out-spam.php → sos-captcha.php
  • 既存のインストール環境における機能上の変更はありません。sos-captcha.com に合わせて、ブランドイメージをよりすっきりとしたものに統一しました。

1.0.49 — 2026-04-27

  • WordPress.org 準拠認証を取得済み
  • 競合を避けるため、すべての AJAX アクションの先頭に「sos_」を付けてください。
  • load_plugin_textdomain を削除(WordPress.org でホストされているプラグインには不要)
  • 無料版における「ライセンス」ページを「プラン比較」ページに置き換えました(ライセンス情報の入力や外部APIへの呼び出しは行われません)。
  • プレミアム版へのアップグレードは、sos-captcha.com からの手動ダウンロード(プラグイン → 新規追加 → アップロード)となりました。
  • 初回公開
  • Contact Form 7 および WordPress コメントの保護
  • WPのログイン、登録、およびパスワード紛失時の保護機能(プレミアム版)
  • チェックポイント数:最大 8 個(無料版)/15 個(プレミアム版)
  • 10言語に対応