Invisible reCaptchaは、数年間メンテナンスされていないプラグインでPHP8で動作させようとすると不具合が発生します。
そこで、私はプラグインの一部のプログラムを書き直してPHP8.0以降に対応させました。
変更するプログラムは2箇所あって、似たようなファイル名があるので注意してください。
必要なルーツ
まずは、書き換えに必要なツール(ソフト)を紹介します。
FTPクライアント(FileZilla)
FileZillaは、書き換えるファイルをサーバからダウンロードしたり、アップロードするために使うツールです。
WordPressのプラグインは、ダッシュボードで書き換えができなので、FTPクライアントで書き換えたいファイルをダウンロードして、書き換えてからアップロードします。
そして、FTPクライアントでサーバに接続するには、FTP用のアカウントとパスワードが必要になります。
サーバの管理画面などで、FTPのアカウントを確認しておいてください。
エディター(Visual Studio Code)
Visual Studio Codeは、ダウンロードしたファイルのプログラムを書き換えるエディターです。
ダウンロードしたファイルは、エディターで書き換えに必要な場所を検索してくれたり、書き換えることができます。
MchBasePublicPlugin.phpを書き換える
書き換えるファイルのパス
wp-content/plugins/invisible-recaptcha/includes/plugin/MchBasePublicPlugin.php
書き換える内容
private function __wakeup()
↓
public function __wakeup()
MchIPUtils.phpを書き換える
書き換えるファイルのパス
wp-content/plugins/invisible-recaptcha/includes/utils/MchIPUtils.php
書き換える内容
$seg {0}
↓
$seg [0]
書き換える手順
- FileZillaとVisual Studio Codeをダウンロードしてインストールする
- FileZillaを立ち上げて、サーバのアドレス、アカウント、パスワードを登録してサーバに接続します
- 書き換えるファイル(2種類)をダウンロードする
- ダウンロードしたファイルをVisual Studio Codeで書き換える
- ファイルの書き換えが終わったらサーバに残っているファイルの名前を、何かあったとき戻せるように書き換える
- 書き換えたファイルをアップロードする。このとき上書きの確認が表示されたらファイル名の変更が間違っているので注意してください
- サーバのPHPをPHP8に変更します
- WordPressにログインできたら成功です
サーバのファイルをリネーム
ダウンロードしたファイルを書き換えてアップロードする前に、サーバに残っているファイルを削除したり上書きすると、トラブルが発生したとき元に戻すことができません。そこで、サーバに残っているファイルは名前を変えて残します。
そうすれば、トラブルが発生してもアップロードしたファイルを削除してファイルを戻せば元に戻せます。
例えば、「MchIPUtils.php」→「MchIPUtils.bak.php」などにファイル名を変えると良いでしょう。