EC-CUBE Lab
produced by Cajiya
EC-CUBEに関するカスタマイズ方法やトラブルへの対処方法を発信

マイページの注文履歴に決済処理中の注文を表示させるカスタマイズ方法

公開日: 2025年09月23日 | 更新日: 2025年11月01日
注文履歴(マイページ) EC-CUBE 4.2系 / Symfony 5.4

要望や症状

EC-CUBEのマイページにおいて、お客様が決済処理中の注文を確認できないという要望があります。

理由や原因

EC-CUBE 4系では、マイページのご注文履歴で決済処理中や購入処理中の注文を自動的に非表示にする仕様になっています。

そのため、マイページのご注文履歴では、決済処理中(OrderStatus::PENDING、id:7)の注文が表示されません。管理画面の受注一覧では該当のコードを修正することで表示可能ですが、フロント画面のマイページでは表示されない状態となっています。

解決策

MypageControllerの処理で有効化されている「incomplete_order_status_hidden」フィルターを無効化し、決済処理中の注文も表示されるようにカスタマイズします。

1. EventListenerクラスの作成

src/Customize/EventListener/MypageEventListener.phpを作成します。

<?php

namespace Customize\EventListener;

use Eccube\Event\EccubeEvents;
use Eccube\Event\EventArgs;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Doctrine\ORM\EntityManagerInterface;

class MypageEventListener implements EventSubscriberInterface
{
    /**
     * @var EntityManagerInterface
     */
    private $entityManager;

    public function __construct(EntityManagerInterface $entityManager)
    {
        $this->entityManager = $entityManager;
    }

    /**
     * @return array
     */
    public static function getSubscribedEvents()
    {
        return [
            EccubeEvents::FRONT_MYPAGE_MYPAGE_INDEX_SEARCH => 'onMypageIndexSearch',
        ];
    }

    /**
     * マイページ注文履歴の検索処理でフィルターを無効化
     *
     * @param EventArgs $event
     */
    public function onMypageIndexSearch(EventArgs $event)
    {
        // 決済処理中の注文を非表示にするフィルターを無効化
        $filters = $this->entityManager->getFilters();
        if ($filters->isEnabled('incomplete_order_status_hidden')) {
            $filters->disable('incomplete_order_status_hidden');
        }
    }
}

2. サービス定義の追加

app/config/eccube/services.yamlにEventListenerを登録します。

services:
    Customize\EventListener\MypageEventListener:
        tags:
            - { name: kernel.event_subscriber }
        arguments:
            - '@doctrine.orm.entity_manager'

3. キャッシュクリア

設定を反映させるため、管理画面の「コンテンツ管理」→「キャッシュ管理」からキャッシュをクリアします。

注意事項

このカスタマイズにより、決済が完了していない注文もお客様に表示されるようになります。お客様が混乱しないよう、注文ステータスの表示を分かりやすくするなど、UI面での配慮も併せて検討することをお勧めします。

免責事項

本記事に掲載しているコードや手順は、執筆時点での情報および特定の環境下での動作確認に基づいています。 EC-CUBEのバージョン、サーバー環境、導入済みプラグインとの競合などにより、予期せぬ不具合が発生する可能性があります。

本記事の内容を実行した結果、生じた損害(データの消失、サイトの停止、機会損失など)について、当サイトおよび管理者は一切の責任を負いかねます。 実装にあたっては、必ずバックアップを取得し、検証環境(テスト環境)での動作確認を行った上で、ご自身の責任において実施してください。

この記事は参考になりましたか?

著者プロフィール: 株式会社カジヤ

当社はWeb業界の専門家として、培った経験や技術、自社事業を通して得た知見を土台に、 お客様の事業の成長を後押しすることを提供価値として活動する、Web事業の成長支援会社です。 EC-CUBE公式のパートナー制度「EC-CUBE インテグレートパートナー」に登録してしており、上位11%にあたる「ゴールドランク」に認定された実績があり、新しい通販サイトの構築から、カスタマイズ、リニューアルまで幅広く対応します。

注文履歴(マイページ) の関連記事

注文履歴(マイページ) 表示/テンプレート調整 EC-CUBE 4系全般
マイページの注文履歴の表示件数を変更するカスタマイズ方法

マイページの注文履歴一覧において、デフォルトでは10件を超えるとページネーションが表示されます。 ...

👍 0 / 👎 0 2025年09月23日

EC-CUBE 4.2系 / Symfony 5.4 の関連記事

メール通知 メール送信不具合 EC-CUBE 4.2系 / Symfony 5.4
XServerでのメール送信設定における環境変数設定エラーの解消方法

XServerでメール送信を行う際に、MAILER_URL環境変数を設定してもメールが送信されない問...

👍 0 / 👎 0 2025年10月12日
商品 EC-CUBE 4.2系 / Symfony 5.4 Twig改修
商品画像の登録枚数の上限数を変更する方法

EC-CUBE 4.2系の管理画面で商品登録を行う際、商品画像が10枚までしか登録できない制限があり...

👍 0 / 👎 0 2025年10月12日
商品 EC-CUBE 4.2系 / Symfony 5.4 サービス/コントローラ拡張
商品登録画面のフリーエリアでTwig構文を使用可能にするカスタマイズ方法

商品登録画面のフリーエリアでTwig構文を使用した画像パスを入力すると、保存時に構文がHTMLエスケ...

👍 0 / 👎 0 2025年09月24日
会員登録 EC-CUBE 4.2系 / Symfony 5.4 設定変更
会員パスワードの文字制限を変更する方法

EC-CUBE 4.2.0で会員パスワードの文字制限を変更したいという要望があります。 デフォ...

👍 0 / 👎 0 2025年09月23日
ログイン・ログアウト EC-CUBE 4.2系 / Symfony 5.4 設定変更
自動ログインの有効期限を1時間から変更する方法

EC-CUBE 4.2系では、会員ログイン時に「次回から自動的にログインする」をチェックして自動ログ...

👍 0 / 👎 0 2025年09月23日