【EC-CUBE4】会員登録完了時にポイントを付与する方法

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',
        ];
    }
}

 

3件のコメント

  1. はじめまして!
    普段はワードプレスphpコーディング制作がメインのEC-CUBE初心者です。
    現在EC-CUBE4(4.0.3)を使用中なのですが、こちらのコードはどこに書き込めばいいのでしょうか…。
    お手数ですがご教示お願いしたく思います。

  2. app/Customize/EventSubscriberディレクトリ内にEntryPointSubscriber.phpというファイル名で設置してください。

  3. 実装できました!
    感動です!!!
    素敵なコード大変助かりました。本当にありがとうございました!!m(_ _)m

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

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