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