<?php declare(strict_types=1);
namespace Uandi\EFB\Storefront\Subscriber;
use Shopware\Core\Checkout\Customer\Event\CustomerSetDefaultShippingAddressEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Uandi\EFB\Storefront\Service\ActiveAddressService;
class CustomerSetDefaultAddressSubscriber implements EventSubscriberInterface
{
private ActiveAddressService $activeAddressService;
public static function getSubscribedEvents(): array
{
return [
CustomerSetDefaultShippingAddressEvent::class => 'onCustomerDefaultShippingAddressSet'
];
}
public function __construct(ActiveAddressService $activeAddressService)
{
$this->activeAddressService = $activeAddressService;
}
public function onCustomerDefaultShippingAddressSet(CustomerSetDefaultShippingAddressEvent $event)
{
$context = $event->getSalesChannelContext();
if ($this->activeAddressService->isActiveAddress($event->getCustomer()->getDefaultShippingAddressId(), $context)) {
$this->activeAddressService->changeActiveAddress($event->getAddressId(), $context);
}
}
}