決済手数料プラグイン更新後に商品ページがエラーで崩れる場合の対処法

決済手数料プラグイン更新後に商品ページがエラーで崩れる場合の対処法

決済手数料プラグイン更新後に商品ページがエラーで崩れる場合の対処法

WooCommerce サイトで Payment Gateway Based Fees and Discounts といった決済手数料プラグインをバージョン 3.2.0 に更新した直後から、商品ページを開くと「このサイトで重大なエラーが発生しました」と表示され、レイアウトが中央に縮まってしまう症状が起きた。このケースはプラグイン内部のクラス読み込み不具合が原因であり、該当プラグインを安全な旧バージョンにロールバックすれば即座に解決する

なぜプラグイン更新後に商品ページが重大エラーになるのか

なぜプラグイン更新後に商品ページが重大エラーになるのか

エラーログには「Uncaught Error: Class “TycheSoftwares\PaymentGatewayFees\Lite\WC_Tax” not found」というメッセージが記録されている。これは、プラグインのアップデートで参照している PHP クラスが適切に読み込まれていないことを示す。WooCommerce 本体やほかのプラグインとの同時アップデートが引き金になることもあるが、切り分けテストで当該プラグインを無効化すると正常に戻るなら、原因はそのプラグインの新バージョンにあると断定できる。

エラーを安全に切り分ける手順

エラーを安全に切り分ける手順

問題が発生したら、むやみに設定を触らず、まず以下の手順で原因を特定する。同時にアップデートしたプラグインが複数ある場合も、この順序で一つずつ無効化していくと確実だ。

STEP 1 FTP またはサーバーのファイルマネージャーで /wp-content/plugins/ にアクセスする
STEP 2 問題のプラグインフォルダ名を一時的に変更する(例: checkout-fees-for-woocommerce → checkout-fees-for-woocommerce_deactivated)
STEP 3 サイトの商品ページを再読み込みし、エラーが消えたか確認する
STEP 4 正常に戻ったなら、そのプラグインの特定バージョンが原因と確定。フォルダ名を元に戻してから、後続のロールバック手順へ進む

上記の操作は管理画面にアクセスできない場合でも使える。プラグインを無効化するだけなら、PHP の動作を変更しないため、エラーが解消された後に管理画面から安全にアンインストールや再インストールが可能だ。

旧バージョンにロールバックしてサイトを元に戻す

旧バージョンにロールバックしてサイトを元に戻す

原因が特定できたら、問題のない旧バージョンに置き換える。ロールバックの方法は大きく分けて3つある。状況に応じて選ぶとよい。

プラグイン「WP Rollback」を使って管理画面から戻す

WordPress 管理画面にアクセスできる状態なら、無料プラグインの WP Rollback をインストールすると、プラグイン一覧から直接任意の旧バージョンに切り替えられる。操作は数クリックで完了し、面倒なファイル操作が不要なため最も簡単だ。ロールバック後は念のためキャッシュを全削除し、エラーが出なくなったことを確認する。

公式 ZIP ファイルを手動でアップロードする

管理画面に入れない場合は、WordPress 公式プラグインディレクトリの旧バージョン ZIP を直接ダウンロードし、FTP やサーバーのファイルマネージャーで上書きする。対象プラグインの開発者ページにアクセスし、右下の「Advanced View(詳細を表示)」から目的のバージョンを選んで ZIP を取得する。その後、/wp-content/plugins/ ディレクトリに解凍して配置すれば完了だ。このとき、既存のプラグインフォルダは必ずリネームしてから新しく解凍するか、上書きする前にバックアップを取っておく。

WP-CLI でコマンド操作する

サーバーに SSH 接続できる上級者向けの方法だ。WP-CLI が使える環境であれば、以下のようなコマンドでプラグインをダウングレードできる。公式 ZIP の URL を指定してインストールし、有効化するだけだ。

wp plugin install https://downloads.wordpress.org/plugin/checkout-fees-for-woocommerce.3.1.0.zip --activate
ロールバック前
バージョン 3.2.0 商品ページで Fatal error
ロールバック後
バージョン 3.1.0 商品ページが正常に表示
エラー状態  修正後

ロールバック後は自動更新を一時的に停止し、修正版がリリースされるまでバージョンを固定することを推奨する。 具体的には、プラグイン編集画面か wp-config.php で該当プラグインの自動更新フィルターを無効化するか、プラグイン一覧から手動更新に切り替えておく。

開発者が修正するまでに取るべき応急処置

開発者が修正するまでに取るべき応急処置

問題のバージョンに致命的な不具合がある場合、修正版がリリースされるまでは旧バージョンでの運用が必須だ。その間、以下の点に気をつける。

  • サポートフォーラムや公式リポジトリを定期チェックする。 同じ不具合が報告され、ベータ版や修正版が先に出ることがある。
  • ステージング環境で新バージョンを検証する。 いきなり本番環境に適用せず、テストサイトで動作確認してから更新する習慣をつける。
  • WooCommerce 本体と関連プラグインの同時更新を避ける。 依存関係の競合を避けるため、数日ずらして様子を見ながら更新するのが安全だ。

よくある質問

エラーログの確認方法がわからない

サーバーコントロールパネルのエラーログ機能を使うか、wp-config.php に define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); を追記すると、/wp-content/debug.log にエラーが記録される。本番環境ではデバッグ表示を無効にしておき、ログだけ有効にする設定が推奨される。

ロールバック中に「インストールに失敗しました」と出る

多くの場合、既存のプラグインフォルダが残っていることが原因だ。FTP で対象フォルダを削除またはリネームし、空の状態にしてから ZIP を解凍するか、WP Rollback が自動で処理するのを待つ。

プラグインを無効化すると手数料計算が狂わないか

決済手数料を動的に追加しているサイトでは、プラグインを無効化すると手数料が適用されなくなる。ロールバックが完了するまでの間は手数料の表示が消えることを顧客に通知するか、保守モードを有効にして注文自体を一時停止する判断も必要だ。

今後同じようなアップデート事故を防ぐには

WooCommerce サイトでは、本番適用前にステージング環境でプラグインの更新テストを行うのが最も確実な防止策だ。また、更新前に必ずサイト全体のバックアップを取得し、自動更新設定を重要なプラグインでは「手動」に切り替えておくことも有効である。

この記事のポイント

  • Payment Gateway Based Fees and Discounts 3.2.0 の更新後、クラス未定義エラーで商品ページが崩れる
  • 原因はプラグイン内部のクラス読み込み不具合で、同プラグインを旧バージョン(3.1.0)に戻せば直る
  • ロールバックには WP Rollback プラグインか、公式 ZIP を手動アップロードする方法が使える
  • 修正版が配布されるまでは自動更新を停止し、本番環境での同時更新を避ける
  • 更新前のステージング環境テストとサイト全体のバックアップが最も有効な予防策
佐々木 太陽

・ Reddit、Stack Overflow、WordPress.org フォーラムを日々巡回し、現場の悩みを拾い上げて記事化 ・ WordPress、WooCommerce、Next.js などモダンWeb制作領域のトラブルシューティングが専門 ・ 「検索しても答えが見つからなかった」を一つでも減らすことが目標 ・ エラーメッセージから根本原因にたどり着く粘り強い調査が得意 ・ 初心者がつまずきやすい箇所を先回りで解決する記事作りを心がけている

メッセージを残す