53 lines
1.3 KiB
PHP
53 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Stemcell\Customer\Model\Validator;
|
|
|
|
use Magento\Customer\Model\Customer;
|
|
use Magento\Framework\App\ObjectManager;
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
class Name extends \Magento\Customer\Model\Validator\Name
|
|
{
|
|
protected const PATTERN_NAME = '/^(?:[\p{L}\p{M}\p{P}\s\d]){1,255}+$/u';
|
|
|
|
/**
|
|
* Validate name fields.
|
|
*
|
|
* @param Customer $customer
|
|
* @return bool
|
|
*/
|
|
public function isValid($customer)
|
|
{
|
|
if (!$this->isValidName($customer->getFirstname())) {
|
|
parent::_addMessages([['firstname' => 'First Name is not valid!']]);
|
|
}
|
|
|
|
if (!$this->isValidName($customer->getLastname())) {
|
|
parent::_addMessages([['lastname' => 'Last Name is not valid!']]);
|
|
}
|
|
|
|
if (!$this->isValidName($customer->getMiddlename())) {
|
|
parent::_addMessages([['middlename' => 'Middle Name is not valid!']]);
|
|
}
|
|
|
|
return count($this->_messages) == 0;
|
|
}
|
|
|
|
/**
|
|
* Check if name field is valid.
|
|
*
|
|
* @param string|null $nameValue
|
|
* @return bool
|
|
*/
|
|
protected function isValidName($nameValue)
|
|
{
|
|
if ($nameValue != null) {
|
|
if (preg_match(self::PATTERN_NAME, $nameValue, $matches)) {
|
|
return $matches[0] == $nameValue;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|