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メソッドに処理したいことを書けば完成です。
プラグインをインストール・有効化すると動作します。
このプラグインのファイル一式はこちら。
