/** * 会員登録画面. * * @param Application $app * @param Request $request * @return \Symfony\Component\HttpFoundation\Response */ public function index(Application $app, Request $request) { if ($app->isGranted('ROLE_USER')) { log_info('認証済のためログイン処理をスキップ'); return $app->redirect($app->url('mypage')); } /** @var $Customer \Eccube\Entity\Customer */ $Customer = $app['eccube.repository.customer']->newCustomer(); /* @var $builder \Symfony\Component\Form\FormBuilderInterface */ $builder = $app['form.factory']->createBuilder('entry', $Customer); $event = new EventArgs(array('builder' => $builder, 'Customer' => $Customer), $request); $app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_ENTRY_INDEX_INITIALIZE, $event); /* @var $form \Symfony\Component\Form\FormInterface */ $form = $builder->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { switch ($request->get('mode')) { case 'confirm': log_info('会員登録確認開始'); $builder->setAttribute('freeze', true); $form = $builder->getForm(); $form->handleRequest($request); log_info('会員登録確認完了'); return $app->render('Entry/confirm.twig', array('form' => $form->createView())); case 'complete': log_info('会員登録開始'); $Customer->setSalt($app['eccube.repository.customer']->createSalt(5))->setPassword($app['eccube.repository.customer']->encryptPassword($app, $Customer))->setSecretKey($app['eccube.repository.customer']->getUniqueSecretKey($app)); $CustomerAddress = new \Eccube\Entity\CustomerAddress(); $CustomerAddress->setFromCustomer($Customer); $app['orm.em']->persist($Customer); $app['orm.em']->persist($CustomerAddress); $app['orm.em']->flush(); log_info('会員登録完了'); $event = new EventArgs(array('form' => $form, 'Customer' => $Customer, 'CustomerAddress' => $CustomerAddress), $request); $app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_ENTRY_INDEX_COMPLETE, $event); $activateUrl = $app->url('entry_activate', array('secret_key' => $Customer->getSecretKey())); /** @var $BaseInfo \Eccube\Entity\BaseInfo */ $BaseInfo = $app['eccube.repository.base_info']->get(); $activateFlg = $BaseInfo->getOptionCustomerActivate(); // 仮会員設定が有効な場合は、確認メールを送信し完了画面表示. if ($activateFlg) { // メール送信 $app['eccube.service.mail']->sendCustomerConfirmMail($Customer, $activateUrl); if ($event->hasResponse()) { return $event->getResponse(); } log_info('仮会員登録完了画面へリダイレクト'); return $app->redirect($app->url('entry_complete')); // 仮会員設定が無効な場合は認証URLへ遷移させ、会員登録を完了させる. } else { log_info('本会員登録画面へリダイレクト'); return $app->redirect($activateUrl); } } } return $app->render('Entry/index.twig', array('form' => $form->createView())); }
public function index(Application $app, Request $request, $id = null) { $app['orm.em']->getFilters()->enable('incomplete_order_status_hidden'); // 編集 if ($id) { $Customer = $app['orm.em']->getRepository('Eccube\\Entity\\Customer')->find($id); if (is_null($Customer)) { throw new NotFoundHttpException(); } // 編集用にデフォルトパスワードをセット $previous_password = $Customer->getPassword(); $Customer->setPassword($app['config']['default_password']); // 新規登録 } else { $Customer = $app['eccube.repository.customer']->newCustomer(); $CustomerAddress = new \Eccube\Entity\CustomerAddress(); $Customer->setBuyTimes(0); $Customer->setBuyTotal(0); } // 会員登録フォーム $builder = $app['form.factory']->createBuilder('admin_customer', $Customer); $event = new EventArgs(array('builder' => $builder, 'Customer' => $Customer), $request); $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_CUSTOMER_EDIT_INDEX_INITIALIZE, $event); $form = $builder->getForm(); if ('POST' === $request->getMethod()) { $form->handleRequest($request); if ($form->isValid()) { log_info('会員登録開始', array($Customer->getId())); if ($Customer->getId() === null) { $Customer->setSalt($app['eccube.repository.customer']->createSalt(5)); $Customer->setSecretKey($app['eccube.repository.customer']->getUniqueSecretKey($app)); $CustomerAddress->setName01($Customer->getName01())->setName02($Customer->getName02())->setKana01($Customer->getKana01())->setKana02($Customer->getKana02())->setCompanyName($Customer->getCompanyName())->setZip01($Customer->getZip01())->setZip02($Customer->getZip02())->setZipcode($Customer->getZip01() . $Customer->getZip02())->setPref($Customer->getPref())->setAddr01($Customer->getAddr01())->setAddr02($Customer->getAddr02())->setTel01($Customer->getTel01())->setTel02($Customer->getTel02())->setTel03($Customer->getTel03())->setFax01($Customer->getFax01())->setFax02($Customer->getFax02())->setFax03($Customer->getFax03())->setDelFlg(Constant::DISABLED)->setCustomer($Customer); $app['orm.em']->persist($CustomerAddress); } if ($Customer->getPassword() === $app['config']['default_password']) { $Customer->setPassword($previous_password); } else { if ($Customer->getSalt() === null) { $Customer->setSalt($app['eccube.repository.customer']->createSalt(5)); } $Customer->setPassword($app['eccube.repository.customer']->encryptPassword($app, $Customer)); } $app['orm.em']->persist($Customer); $app['orm.em']->flush(); log_info('会員登録完了', array($Customer->getId())); $event = new EventArgs(array('form' => $form, 'Customer' => $Customer), $request); $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_CUSTOMER_EDIT_INDEX_COMPLETE, $event); $app->addSuccess('admin.customer.save.complete', 'admin'); return $app->redirect($app->url('admin_customer_edit', array('id' => $Customer->getId()))); } else { $app->addError('admin.customer.save.failed', 'admin'); } } return $app->render('Customer/edit.twig', array('form' => $form->createView(), 'Customer' => $Customer)); }
/** * @param \Eccube\Entity\Customer $Customer * @param null $id * @return \Eccube\Entity\CustomerAddress|mixed * @throws \Doctrine\ORM\NoResultException * @throws \Doctrine\ORM\NonUniqueResultException */ public function findOrCreateByCustomerAndId(\Eccube\Entity\Customer $Customer, $id = null) { if (!$id) { $CustomerAddress = new \Eccube\Entity\CustomerAddress(); $CustomerAddress->setCustomer($Customer)->setDelFlg(0); } else { $qb = $this->createQueryBuilder('od')->andWhere('od.Customer = :Customer AND od.id = :id')->setParameters(array('Customer' => $Customer, 'id' => $id)); $CustomerAddress = $qb->getQuery()->getSingleResult(); } return $CustomerAddress; }
/** * Index * * @param Application $app * @return \Symfony\Component\HttpFoundation\RedirectResponse */ public function index(Application $app, Request $request) { /** @var $Customer \Eccube\Entity\Customer */ $Customer = $app['eccube.repository.customer']->newCustomer(); /* @var $builder \Symfony\Component\Form\FormBuilderInterface */ $builder = $app['form.factory']->createBuilder('entry', $Customer); /* @var $form \Symfony\Component\Form\FormInterface */ $form = $builder->getForm(); if ('POST' === $request->getMethod()) { $form->handleRequest($request); if ($form->isValid()) { switch ($request->get('mode')) { case 'confirm': $builder->setAttribute('freeze', true); $form = $builder->getForm(); $form->handleRequest($request); return $app['twig']->render('Entry/confirm.twig', array('form' => $form->createView())); break; case 'complete': $Customer->setSalt($app['eccube.repository.customer']->createSalt(5)); $Customer->setPassword($app['eccube.repository.customer']->encryptPassword($app, $Customer)); $Customer->setSecretKey($app['orm.em']->getRepository('Eccube\\Entity\\Customer')->getUniqueSecretKey($app)); $CustomerAddress = new \Eccube\Entity\CustomerAddress(); $CustomerAddress->setName01($Customer->getName01())->setName02($Customer->getName02())->setKana01($Customer->getKana01())->setKana02($Customer->getKana02())->setCompanyName($Customer->getCompanyName())->setZip01($Customer->getZip01())->setZip02($Customer->getZip02())->setZipcode($Customer->getZip01() . $Customer->getZip02())->setPref($Customer->getPref())->setAddr01($Customer->getAddr01())->setAddr02($Customer->getAddr02())->setTel01($Customer->getTel01())->setTel02($Customer->getTel02())->setTel03($Customer->getTel03())->setFax01($Customer->getFax01())->setFax02($Customer->getFax02())->setFax03($Customer->getFax03())->setDelFlg(Constant::DISABLED)->setCustomer($Customer); $app['orm.em']->persist($Customer); $app['orm.em']->persist($CustomerAddress); $app['orm.em']->flush(); $activateUrl = $app->url('entry_activate', array('secret_key' => $Customer->getSecretKey())); /** @var $BaseInfo \Eccube\Entity\BaseInfo */ $BaseInfo = $app['eccube.repository.base_info']->get(); $activateFlg = $BaseInfo->getOptionCustomerActivate(); // 仮会員設定が有効な場合は、確認メールを送信し完了画面表示. if ($activateFlg) { // メール送信 $app['eccube.service.mail']->sendCustomerConfirmMail($Customer, $activateUrl); return $app->redirect($app->url('entry_complete')); // 仮会員設定が無効な場合は認証URLへ遷移させ、会員登録を完了させる. } else { return $app->redirect($activateUrl); } } } } return $app['view']->render('Entry/index.twig', array('form' => $form->createView())); }
public function index(Application $app, Request $request, $id = null) { // 編集 if ($id) { $Customer = $app['orm.em']->getRepository('Eccube\\Entity\\Customer')->find($id); if (is_null($Customer)) { throw new NotFoundHttpException(); } // 編集用にデフォルトパスワードをセット $previous_password = $Customer->getPassword(); $Customer->setPassword($app['config']['default_password']); // 新規登録 } else { $Customer = $app['eccube.repository.customer']->newCustomer(); $CustomerAddress = new \Eccube\Entity\CustomerAddress(); } // 会員登録フォーム $form = $app['form.factory']->createBuilder('admin_customer', $Customer)->getForm(); if ('POST' === $request->getMethod()) { $form->handleRequest($request); if ($form->isValid()) { if ($Customer->getId() === null) { $Customer->setSalt($app['orm.em']->getRepository('Eccube\\Entity\\Customer')->createSalt(5)); $Customer->setSecretKey($app['orm.em']->getRepository('Eccube\\Entity\\Customer')->getUniqueSecretKey($app)); $CustomerAddress->setName01($Customer->getName01())->setName02($Customer->getName02())->setKana01($Customer->getKana01())->setKana02($Customer->getKana02())->setCompanyName($Customer->getCompanyName())->setZip01($Customer->getZip01())->setZip02($Customer->getZip02())->setZipcode($Customer->getZip01() . $Customer->getZip02())->setPref($Customer->getPref())->setAddr01($Customer->getAddr01())->setAddr02($Customer->getAddr02())->setTel01($Customer->getTel01())->setTel02($Customer->getTel02())->setTel03($Customer->getTel03())->setFax01($Customer->getFax01())->setFax02($Customer->getFax02())->setFax03($Customer->getFax03())->setDelFlg(Constant::DISABLED)->setCustomer($Customer); $app['orm.em']->persist($CustomerAddress); } if ($Customer->getPassword() === $app['config']['default_password']) { $Customer->setPassword($previous_password); } else { $Customer->setPassword($app['orm.em']->getRepository('Eccube\\Entity\\Customer')->encryptPassword($app, $Customer)); } $app['orm.em']->persist($Customer); $app['orm.em']->flush(); $app->addSuccess('admin.customer.save.complete', 'admin'); return $app->redirect($app->url('admin_customer_edit', array('id' => $Customer->getId()))); } } return $app->render('Customer/edit.twig', array('form' => $form->createView(), 'Customer' => $Customer)); }
/** * お届け先の設定(非会員でも使用する) */ public function shippingEdit(Application $app, Request $request) { $cartService = $app['eccube.service.cart']; // カートチェック if (!$cartService->isLocked()) { // カートが存在しない、カートがロックされていない時はエラー return $app->redirect($app->url('cart')); } $Order = $app['eccube.repository.order']->findOneBy(array('pre_order_id' => $app['eccube.service.cart']->getPreOrderId())); $shippings = $Order->getShippings(); // 会員の場合、お届け先情報を新規登録 if ($app->isGranted('IS_AUTHENTICATED_FULLY')) { $builder = $app['form.factory']->createBuilder('shopping_shipping'); } else { // 非会員の場合、お届け先を追加 $builder = $app['form.factory']->createBuilder('shopping_shipping', $shippings[0]); } $form = $builder->getForm(); if ('POST' === $request->getMethod()) { $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); // 会員の場合、お届け先情報を新規登録 if ($app->isGranted('IS_AUTHENTICATED_FULLY')) { $customerAddress = new \Eccube\Entity\CustomerAddress(); $customerAddress->setCustomer($app->user())->setName01($data['name01'])->setName02($data['name02'])->setKana01($data['kana01'])->setKana02($data['kana02'])->setCompanyName($data['company_name'])->setTel01($data['tel01'])->setTel02($data['tel02'])->setTel03($data['tel03'])->setZip01($data['zip01'])->setZip02($data['zip02'])->setZipCode($data['zip01'] . $data['zip02'])->setPref($data['pref'])->setAddr01($data['addr01'])->setAddr02($data['addr02'])->setDelFlg(Constant::DISABLED); $app['orm.em']->persist($customerAddress); } foreach ($shippings as $shipping) { $shipping->setName01($data['name01'])->setName02($data['name02'])->setKana01($data['kana01'])->setKana02($data['kana02'])->setCompanyName($data['company_name'])->setTel01($data['tel01'])->setTel02($data['tel02'])->setTel03($data['tel03'])->setZip01($data['zip01'])->setZip02($data['zip02'])->setZipCode($data['zip01'] . $data['zip02'])->setPref($data['pref'])->setAddr01($data['addr01'])->setAddr02($data['addr02']); } // 配送先を更新 $app['orm.em']->flush(); return $app->redirect($app->url('shopping')); } } return $app->render('Shopping/shipping_edit.twig', array('form' => $form->createView())); }