app/Customize/EventSubscriber/Admin/OrderEditCustomerSearchSubscriber.php line 39

Open in your IDE?
  1. <?php
  2. namespace Customize\EventSubscriber\Admin;
  3. use Customize\Repository\UserRepository;
  4. use Eccube\Entity\Customer;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Eccube\Event\{
  7.     EccubeEvents,
  8.     EventArgs
  9. };
  10. class OrderEditCustomerSearchSubscriber implements EventSubscriberInterface
  11. {
  12.     /**
  13.      * @var UserRepository
  14.      */
  15.     private $userRepository;
  16.     /**
  17.      * @param UserRepository $userRepository
  18.      */
  19.     public function __construct(UserRepository $userRepository)
  20.     {
  21.         $this->userRepository $userRepository;
  22.     }
  23.     /**
  24.      * @return array<string, array<int, string|int>>
  25.      */
  26.     public static function getSubscribedEvents(): array
  27.     {
  28.         return [
  29.             EccubeEvents::ADMIN_ORDER_EDIT_SEARCH_CUSTOMER_BY_ID_COMPLETE => ['onAdminOrderEditSearchCustomerByIdComplete'1],
  30.         ];
  31.     }
  32.     public function onAdminOrderEditSearchCustomerByIdComplete(EventArgs $event): void
  33.     {
  34.         $data $event->getArgument('data');
  35.         /** @var Customer $Customer */
  36.         $Customer $event->getArgument('Customer');
  37.         // APIからデータを取得
  38.         $user $this->userRepository->get($Customer->getUserId());
  39.         $data['user_id'] = $user->getUserId();
  40.         $data['kana01'] = $user->getKana01();
  41.         $data['kana02'] = $user->getKana02();
  42.         $data['postal_code'] = $user->getPostalCode();
  43.         $data['pref'] = is_null($user->getPref()) ? null $user->getPref()->getId();
  44.         $data['addr01'] = $user->getAddr01();
  45.         $data['addr02'] = $user->getAddr02();
  46.         $data['email'] = $user->getEmail();
  47.         $data['phone_number'] = $user->getPhoneNumber();
  48.         $data['company_name'] = $user->getCompanyName();
  49.         $data['company_phone_number'] = $user->getCompanyPhoneNumber();
  50.         $data['birth'] = $user->getBirth();
  51.         $data['religions'] = $user->getReligions();
  52.         $data['religion_other'] = $user->getReligionOther();
  53.         $data['buddhist_sects'] = $user->getBuddhistSects();
  54.         $data['buddhist_sect_other'] = $user->getBuddhistSectOther();
  55.         $data['emergency_contact'] = [
  56.             'name01' => $user->getEmergencyContact() ? $user->getEmergencyContact()->getName01() : null,
  57.             'name02' => $user->getEmergencyContact() ? $user->getEmergencyContact()->getName02() : null,
  58.             'kana01' => $user->getEmergencyContact() ? $user->getEmergencyContact()->getKana01() : null,
  59.             'kana02' => $user->getEmergencyContact() ? $user->getEmergencyContact()->getKana02() : null,
  60.             'phone_number' => $user->getEmergencyContact() ? $user->getEmergencyContact()->getPhoneNumber() : null,
  61.             'postal_code' => $user->getEmergencyContact() ? $user->getEmergencyContact()->getPostalCode() : null,
  62.             'pref' => $user->getEmergencyContact() && $user->getEmergencyContact()->getPref() ? $user->getEmergencyContact()->getPref()->getId() : null,
  63.             'addr01' => $user->getEmergencyContact() ? $user->getEmergencyContact()->getAddr01() : null,
  64.             'addr02' => $user->getEmergencyContact() ? $user->getEmergencyContact()->getAddr02() : null,
  65.             'relation' => $user->getEmergencyContact() && $user->getEmergencyContact()->getRelationship() ? $user->getEmergencyContact()->getRelationship()->getId() : null,
  66.             'relation_other' => $user->getEmergencyContact() ? $user->getEmergencyContact()->getRelationshipOther() : null,
  67.         ];
  68.         // データを更新
  69.         $event->setArgument('data'$data);
  70.     }
  71. }