custom/plugins/OkeonlineKejeDeliveryAddress/src/OkeonlineKejeDeliveryAddress.php line 13

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Okeonline\KejeDeliveryAddress;
  3. use Shopware\Core\Checkout\Customer\Aggregate\CustomerAddress\CustomerAddressEntity;
  4. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository;
  5. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter;
  7. use Shopware\Core\Framework\Plugin;
  8. use Shopware\Core\Framework\Plugin\Context\ActivateContext;
  9. use Shopware\Core\Framework\Uuid\Uuid;
  10. class OkeonlineKejeDeliveryAddress extends Plugin
  11. {
  12.     public function activate(ActivateContext $activateContext): void
  13.     {
  14.         parent::activate($activateContext);
  15.         $this->setupCustomerAddressSourceRelation($activateContext);
  16.     }
  17.     private function setupCustomerAddressSourceRelation(ActivateContext $activateContext): void
  18.     {
  19.         /** @var EntityRepository $customerAddressRepository */
  20.         $customerAddressRepository $this->container->get('customer_address.repository');
  21.         /** @var EntityRepository $customerAddressSourceRepository */
  22.         $customerAddressSourceRepository $this->container->get('oo_customer_address_source.repository');
  23.         $critera = new Criteria();
  24.         $critera->addFilter(new EqualsFilter('customerAddressSource.source'null));
  25.         $customerAddressResult $customerAddressRepository->search($critera$activateContext->getContext());
  26.         if($customerAddressResult->count() > 0)
  27.         {
  28.             $sources = [];
  29.             foreach ($customerAddressResult->getEntities() as $entity) {
  30.                 /** @var CustomerAddressEntity $entity */
  31.                 $sources[] = [
  32.                     'id' => Uuid::randomHex(),
  33.                     'customerAddressId' => $entity->getId(),
  34.                     'source' => 'default'
  35.                 ];
  36.             }
  37.             $customerAddressSourceRepository->create($sources$activateContext->getContext());
  38.         }
  39.     }
  40. }