Files
stemcell/app/code/Stemcell/Customer/Model/Validator/Name.php
T
2026-09-15 10:26:34 +08:00

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;
}
}