【EC-CUBE4】注文処理完了後に遷移するページを購入完了画面から別のページに変更する方法

EC-CUBE4で注文処理完了後に遷移するページを購入完了画面から別のページに変更する方法です。

今回は注文処理完了後にトップページへページ遷移するようカスタマイズしています。

サンプルコードは以下のとおりです。

<?php


namespace Customize\Controller;


use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;

class ShoppingController extends \Eccube\Controller\ShoppingController
{
    /**
     * 注文処理完了後に遷移するページを購入完了画面からトップページに変更
     *
     * @Route("/shopping/checkout", name="shopping_checkout", methods={"POST"})
     * @Template("Shopping/confirm.twig")
     *
     * @param Request $request
     * @return \Eccube\Service\PurchaseFlow\PurchaseFlowResult|RedirectResponse|\Symfony\Component\HttpFoundation\Response
     */
    public function checkout(Request $request)
    {
        $response = parent::checkout($request);

        if ($response instanceof RedirectResponse) {
            switch ($response->getTargetUrl()) {
                // 注文処理時
                case $this->generateUrl("shopping_complete"):
                    // トップページへリダイレクトさせる
                    $response->setTargetUrl($this->generateUrl("homepage"));
                    break;
            }
        }

        return $response;
    }
}

 

お気軽にコメントをどうぞ

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください