CCBillプラグイン1.3.2更新で重大なエラーが出た時の対処法

CCBillプラグイン1.3.2更新で重大なエラーが出た時の対処法

CCBillプラグイン1.3.2更新で重大なエラーが出た時の対処法

CCBillプラグインを1.3.2へ更新した直後にサイトが落ちた場合、原因は更新版に必須のincludes/GelatoConfig.phpが同梱されていないことだ。対処は1.3.1へロールバックするのが確実で、require_once行の削除や空ファイルの作成では正常に戻らない。

なぜプラグイン更新後にサイトが落ちるのか

なぜプラグイン更新後にサイトが落ちるのか

プラグインのメインファイルは読み込み時にrequire_once ‘includes/GelatoConfig.php’;という命令を実行する。ところが1.3.2の配布ZIPにはincludesディレクトリに該当ファイルが含まれていない。PHPは必要なファイルを開けないため、その場で処理を中断し、WordPressは「このサイトで重大なエラーが発生しました」という画面に切り替わる。

更新後 1.3.2 require_once で includes/GelatoConfig.php を読み込む
エラー ファイルが存在しないため「このサイトで重大なエラーが発生しました」と表示される
対処後 1.3.1 必要なファイルが揃っている旧版に戻して正常動作

このデモは、更新版で必須ファイルが欠落した際にエラーが発生し、旧版で解消する流れを表している。

読み込み失敗が致命的エラーへ進む流れ

require_onceは指定したファイルを必ず読み込む命令であり、見つからなければPHPの実行が止まる。WordPressはこの致命的エラーを検知して、訪問者には復旧用の画面を表示し、管理者には状況を伝えるメールを送ることがある。サイトが突然止まった場合は、まず更新直後に起きたことを前提に動くと早期に原因へたどり着ける。

他のファイルも同じクラスに依存している

1.3.2の他の複数ファイルはGelatoConfigクラスのメソッドやプロパティを呼び出している。そのため、require_once行をコメントアウトしたり、中身のないincludes/GelatoConfig.phpを作ったりしても、次の段階でクラスが見つからないエラーへ変わるだけだ。今回の不具合は行の書き換えで吸収できる規模ではない。

エラーログで原因を確定させる手順

エラーログで原因を確定させる手順

画面が真っ白になったり、重大なエラーの表示だけでは原因が見えない。まずはWordPressのデバッグログを有効にして、どのファイルで止まっているかを確認する。

wp-config.phpでデバッグログを有効にする

FTP・SFTPでサーバーに接続し、WordPressのルートにあるwp-config.phpを編集する。以下の定数を設定すると、エラー内容がwp-content/debug.logに記録される。

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

debug.logに記録された該当行を確認する

debug.logを開くと、require_once()がincludes/GelatoConfig.phpを開けなかったことや、GelatoConfigクラスが見つからない趣旨のエラー(英語表示では ‘Class GelatoConfig not found’)が記録されている。このログが取れたら、原因はプラグインのファイル欠落であると確定できる。

旧バージョンへ戻す具体的な手順

旧バージョンへ戻す具体的な手順

管理画面にアクセスできるかどうかで手順が変わる。ここでは先に全体フローを確認し、それぞれの詳細を説明する。

STEP 1 配布ページから1.3.1のZIPをダウンロードする
STEP 2 FTP・SFTPで wp-content/plugins/ へ接続する
STEP 3 既存プラグインフォルダを旧版で上書きする
STEP 4 キャッシュを削除し、サイトと管理画面を確認する

ロールバックの基本手順を示した。それぞれの詳細は次項で解説する。

公式配布ページから1.3.1のZIPを入手する

WordPress.orgのプラグインページを開き、下部にある詳細表示(Advanced View)から過去の版を選べる。画面下部のバージョン選択で1.3.1を指定し、ZIPをダウンロードする。ローカルに展開して、includes/GelatoConfig.phpが含まれていることをこの段階で確認しておくと安心だ。

FTP・SFTPでプラグインフォルダを置き換える

FTP・SFTPクライアントでサーバーに接続し、wp-content/plugins/ の該当プラグインフォルダを開く。既存のフォルダをいったん別名にリネームして退避し、展開した1.3.1のフォルダをアップロードする。リネーム後に新しいフォルダを置くと、サイト上では1.3.1が読み込まれる。

管理画面に入れないときの一時的な復旧

サイト全体が落ちて管理画面にも入れない場合は、FTP・SFTPで該当プラグインのフォルダをリネームして無効化する。これでサイトが表示されるようになれば、管理画面にログインして旧版ZIPをアップロードできる。自動更新が走る環境では、復旧前に更新を止めておくのが確実だ。

キャッシュを削除して反映を確認する

旧版への置き換え後は、サイトのキャッシュプラグインとブラウザのキャッシュを削除する。サーバー側キャッシュを使っている場合はそれもクリアする。その後、フロントと管理画面の両方が表示され、プラグイン設定が1.3.1に戻っていることを確認する。

require_once行の削除や空ファイルでは直らない理由

require_once行の削除や空ファイルでは直らない理由
誤った対処 行の削除 → クラスが見つからず別のエラーが発生する
誤った対処 空ファイルの作成 → 同じくクラス未定義で停止する
正しい対処 旧版1.3.1へ戻す → 欠落ファイルが揃い正常動作

部分的なコード修正では別のエラーへ移るだけで、旧版への切り戻しが最短の解決になる。

GelatoConfigクラスは複数のファイルから参照されている

1.3.2のコードはGelatoConfigクラスに依存する構造になっている。require_once行を消すとファイル読み込みは通っても、その後でクラスのプロパティやメソッドを呼ぶ箇所がエラーになる。空ファイルを作ってもクラス定義がないため、PHPは同じ理由で停止する。問題の本質は設定ファイルの有無ではなく、配布物からクラス定義ごと抜け落ちている点にある。

誤った修正をした場合のリスク

プラグイン本体を直接書き換えると、将来の更新で上書きされ、変更が失われる。また、クラス定義を部分的に再現できたとしても、決済処理など他の機能に影響が出るおそれがある。商用サイトでは旧版へ戻す方法が最も安全だ。開発元が修正版を配信するまでは、1.3.1に留めて更新を保留する。

再発を防ぐために更新前に確認したいこと

再発を防ぐために更新前に確認したいこと

ステージング環境で先に更新を試す

本番サイトへそのまま更新を適用せず、コピー環境(ステージング)でプラグイン更新を実行する。更新後にフロントと管理画面、主要な導線を一通り確認し、エラーがないことを確かめてから本番へ反映する。ステージング環境が用意できない場合は、更新前にフルバックアップを取っておく。

更新前に旧版のZIPを確保しておく

プラグインは自動更新で最新版だけが残り、旧版の入手経路が分からなくなることがある。今回のように最新版が壊れているケースでは、更新前に利用中のバージョンのZIPをダウンロードして保管しておくと速やかに戻せる。プラグインページの詳細表示からダウンロードできる。

更新直後に異常を検知したらすぐに切り戻す

サイトを更新した直後は、必ずトップページと管理画面、問い合わせフォームなど主要機能を開いて確認する。重大なエラーが出た場合は、原因調査より先に旧版へ戻すのが先決だ。ログの確認はその後で行い、開発元の修正版が出るまで更新を保留する。

よくある質問

プラグインを1.3.2に更新したのに管理画面に入れません。どうすればいいですか

FTP・SFTPでwp-content/plugins/ の中にある該当プラグインのフォルダをリネームして無効化する。これで管理画面に入れるようになったら、旧版1.3.1のZIPをアップロードして再び有効化する。

旧版の1.3.1はどこでダウンロードできますか

WordPress.orgのプラグインページにある詳細表示(Advanced View)から過去の版を選んでダウンロードできる。今回のような更新直後の不具合に備え、普段から利用中のバージョンのZIPを手元に保管しておくのが有効だ。

require_once行を削除してもサイトは戻らないのでしょうか

戻らない。削除すると次の段階でGelatoConfigクラスが見つからないエラーに変わる。空のファイルを置いてもクラス定義がないため解消しない。旧版へ戻すのが最短の対処だ。

プラグイン1.3.2に自動更新されないようにするには

該当プラグインの自動更新をオフにするか、サイト全体の自動更新設定でプラグイン更新を手動に切り替える。ただし修正版が公開された場合は、手動で更新を適用する必要がある。

サイトが重大なエラー画面のままの場合は、メールは届きますか

WordPressがサイト管理者へ復旧用リンク付きのメールを送ることが多い。メールが届かない場合は、FTP・SFTPでプラグインを無効化して管理画面への導線を確保する。

この記事のポイント

  • 1.3.2では必須ファイルincludes/GelatoConfig.phpが欠落している
  • 行の削除や空ファイルではエラーの種類が変わるだけで直らない
  • 旧版1.3.1へ戻すのが最短の対処だ
  • 旧版ZIPはプラグインページの詳細表示から入手できる
  • 更新前にはバックアップと旧版の確保、ステージングでの確認を行っておく
佐々木 太陽

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

メッセージを残す