EC-CUBE4で対応状況を注文取消し(キャンセル)したときに何かするプラグインを作る方法です。
まずは以下のコマンドでプラグインの雛形を作ります。
プラグインコードはなんでも良いのですが、今回は「CancelStatus」にしてください。
bin/console eccube:plugin:generate
注文取消し時に何かするイベントを登録
自動生成されたプラグイン一式内にServiceディレクトリを作り、以下のOrderStateMachine.phpファイルを設置して下さい。
<?php namespace Plugin\CancelStatus\Service; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Eccube\Service\PurchaseFlow\PurchaseContext; // SymfonyのWorkflowコンポーネントのイベントを使用します。 use Symfony\Component\Workflow\Event\Event; /** * @author Akira Kurozumi <info@a-zumi.net> */ class OrderStateMachine implements EventSubscriberInterface { public static function getSubscribedEvents(): array { return [ 'workflow.order.transition.cancel' => [['cancel']], ]; } /** * 対応状況が注文取消しに変わったときの処理 * * @param Event $event */ public function cancel(Event $event) { // 注文取消しになった受注データ $Order = $event->getSubject()->getOrder(); // 注文取消しになった会員データ $Customer = $Order->getCustomer(); } }
cancelメソッドに処理したいことを書けば完成です。
プラグインをインストール・有効化すると動作します。
このプラグインのファイル一式はこちら。