この記事は最終更新日より 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 つで済んで良かったなと思う。
コメント