Invisible reCAPTCHA を PHP 8.1 環境でも使うメモ

WordPress
この記事は約4分で読めます。
この記事は最終更新日より 1 年以上経過しています。
画像やリンクが無効になっている可能性もあるのでご了承下さい。

はじめに

 そろそろ PHP も 7.4 から 8.1 にしようかなと仮想マシンで動作確認済というステータスだったが、NextCloud 更新で遂に 8.1 にしろとメッセージが出てしまったので PHP の更新と。
 しかし WordPress の Plugin である Invisible reCAPTCHA が Warning を吐いてうるさいのでこれを何とかしたい。他の CAPTCHA 系 Plugin はしっくりくるのがないので。

PHP Warning:  The magic method InvisibleReCaptcha\MchLib\Plugin\MchBasePublicPlugin::__wakeup() must have public visibility in /home/xxx/public_html/wp-content/plugins/invisible-recaptcha/includes/plugin/MchBasePublicPlugin.php on line 37

Plugin の一部を書き換える

 Warning のメッセージでググるとこの手の情報の解決策が複数箇所に分かれて存在したんで、それらを統合してやることで一応は解決したような感じ (に見えている)。

 まず 1 つ目は wp-content/plugins/invisible-recaptcha/includes/plugin/MchBasePublicPlugin.php を弄る。
 private function __wakeup() とある部分を public function __wakeup() に。

--- ./invisible-recaptcha.original/includes/plugin/MchBasePublicPlugin.php      2016-12-22 20:03:26.000000000 +0900
+++ ./invisible-recaptcha/includes/plugin/MchBasePublicPlugin.php       2022-12-09 09:00:17.815201356 +0900             
@@ -34,7 +34,7 @@
        private function __clone()
        {}
  
-       private function __wakeup()
+       public function __wakeup()
        {}

 2 つ目は wp-content/plugins/invisible-recaptcha/includes/utils/MchIPUtils.php を。
 $seg {0}$seg [0] にする。

--- ./invisible-recaptcha.original/includes/utils/MchIPUtils.php        2017-02-01 17:37:16.000000000 +0900
+++ ./invisible-recaptcha/includes/utils/MchIPUtils.php 2022-12-09 09:02:44.082281198 +0900
@@ -194,7 +194,7 @@
                $res = '';
 
                foreach($ip as $index => $seg) {
-                       while ($seg {0} == '0')
+                       while ($seg [0] == '0')
                                $seg = substr($seg, 1);
 
                        if ($seg != '') {
@@ -898,4 +898,4 @@
                return $countryCode;
        }

おわりに

 とりあえずこの修正で外見上は正常に動作しているので、しばし様子見とする。
 色々と Plugin を入れているけど、PHP 8 に移行することで起きた問題がこの 1 つで済んで良かったなと思う。

著者プロフィール
ぶっち

本格的に PC へ触れ始めてたのは 1990 年位から。
興味は PC 全般。OS は Windows と Linux などを嗜む。
プログラマやネットワークエンジニアを経てフリーに活動している 2 児の父な 40 代半ばのおじさんです。

ぶっちをフォローする

コメント

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.