<?php
declare(strict_types=1);
namespace App\EventSubscriber;
use App\Entity\Addressing\Address;
use Sylius\Component\Core\Model\CustomerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
class CustomerAddressSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
FormEvents::SUBMIT => 'onSubmit',
];
}
public function onSubmit(FormEvent $event): void
{
$customer = $event->getData();
if (!$customer instanceof CustomerInterface) {
return;
}
$address = $customer->getDefaultAddress();
if ($address instanceof Address) {
$address->setFirstName($customer->getFirstName());
$address->setLastName($customer->getLastName());
$address->setPhoneNumber($customer->getPhoneNumber());
}
}
}