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;
}
}
