EC-CUBE4で会員登録完了時にポイントを付与する方法です。
サンプルコードは以下のとおりです。
会員登録完了時に1000ポイント付与しています。
<?php namespace Customize\EventSubscriber; use Doctrine\ORM\EntityManagerInterface; use Eccube\Entity\Customer; use Eccube\Event\EventArgs; use Symfony\Component\EventDispatcher\EventSubscriberInterface; class EntryPointSubscriber implements EventSubscriberInterface { /** * @var EntityManagerInterface */ private $entityManager; public function __construct(EntityManagerInterface $entityManager) { $this->entityManager = $entityManager; } public function onFrontEntryActivateComplete(EventArgs $event) { $Customer = $event->getArgument("Customer"); if($Customer instanceof Customer) { // 会員登録完了時に1000ポイント付与 $Customer->setPoint(1000); $this->entityManager->persist($Customer); $this->entityManager->flush(); } } public static function getSubscribedEvents() { return [ 'front.entry.activate.complete' => 'onFrontEntryActivateComplete', ]; } }
はじめまして!
普段はワードプレスphpコーディング制作がメインのEC-CUBE初心者です。
現在EC-CUBE4(4.0.3)を使用中なのですが、こちらのコードはどこに書き込めばいいのでしょうか…。
お手数ですがご教示お願いしたく思います。
app/Customize/EventSubscriberディレクトリ内にEntryPointSubscriber.phpというファイル名で設置してください。
実装できました!
感動です!!!
素敵なコード大変助かりました。本当にありがとうございました!!m(_ _)m