hryvinskyi / magento2-quote-address-validator
N/A
1.0.4.2
2024-08-09 11:01 UTC
Requires
- php: ~7.3.0||~7.4.0||~8.0||~8.1||~8.2||~8.3
- magento/framework: *
- magento/module-quote: *
README
概述
《Hryvinskyi_QuoteAddressValidator》模块为Magento 2中的报价地址提供验证。它允许管理员配置正则表达式模式和错误消息来验证各种地址字段,如姓氏和街道。
安装
- Composer 安装
composer require hryvinskyi/magento2-quote-address-validator
- 启用模块
php bin/magento module:enable Hryvinskyi_QuoteAddressValidator
- 清除缓存
php bin/magento cache:clean
配置
- 导航到
商店 > 配置 > 安全 > 报价地址验证。
- 配置以下字段
- 启用: 将其设置为
是
以启用模块。 - 验证类型: 选择要应用于地址字段的验证类型。
通过正则表达式验证
- 使用正则表达式模式验证地址字段。通过停用词验证
- 使用停用词列表验证地址字段。通过停用词和正则表达式验证
- 使用停用词列表和正则表达式验证地址字段。
- 启用名字验证 将其设置为
是
以启用名字字段的验证。 - 名字停用词: 输入用于验证名字字段的停用词列表。
- 名字正则表达式: 输入用于验证名字字段的正则表达式。
- 名字错误消息: 输入当名字字段不匹配模式时显示的错误消息。
- 启用姓氏验证 将其设置为
是
以启用姓氏字段的验证。 - 姓氏停用词: 输入用于验证姓氏字段的停用词列表。
- 姓氏正则表达式: 输入用于验证姓氏字段的正则表达式。
- 姓氏错误消息: 输入当姓氏字段不匹配模式时显示的错误消息。
- 启用街道验证 将其设置为
是
以启用街道字段的验证。 - 街道停用词: 输入用于验证街道字段的停用词列表。
- 街道正则表达式: 输入用于验证街道字段的正则表达式。
- 街道错误消息: 输入当街道字段不匹配模式时显示的错误消息。
- 启用: 将其设置为
命令行界面
该模块提供了一个命令行界面(CLI)来验证报价地址。要使用CLI,请运行以下命令
php bin/magento hryvinskyi:quote-address-validator:check-existing-addresses
此命令将验证所有现有的报价地址并显示任何发现的错误。这对于检测地址和名称中的特定国家错误以及更改验证的正则表达式模式很有用。
示例正则表达式模式
- 名字正则表达式:
/^([\p{L}0-9$€£¥¢%&?!()@_:;,'+\s\-\.\*\/\\\\]{1,50})$/u
- 姓氏正则表达式:
/^([\p{L}0-9$€£¥¢%&?!()@_:;,'+\s\-\.\*\/\\\\]{1,50})$/u
- 街道正则表达式:
/^([\p{L}0-9$€£¥¢%&?!()@_:;,'+\s\-\.\*\/\\\\]*)$/u
正则表达式说明
^
: 断言字符串的开始位置[\p{L}0-9$€£¥¢%&?!()@_:;,'+\s\-\.\*\/\\\\]
: 允许字符集\p{L}
: 在正则表达式模式中,它将匹配任何在Unicode中被认为是字母的字符。0-9
: 任何数字。&
: 和号。#
: 锁定符号。$
: 美元符号。€
: 欧元符号。£
: 英镑符号。¥
: 日元符号。¢
: 分币符号。%
: 百分比符号。?
: 问号。!
: 惊叹号。(
: 开放括号。)
: 关闭括号。@
: at符号。_
: 下划线。:
: 冒号。;
: 分号。,
: 逗号。'
:撇号。+
:加号。\s
:任何空白字符(空格、制表符、换行符)。\-
:连字符。(注意,连字符需要转义,因为它在正则表达式中是特殊字符。)\.
:句号。(注意,句号需要转义,因为它在正则表达式中是特殊字符。)\*
:匹配前一个元素出现零次或多次。\/
:正斜杠。(注意,斜杠需要转义,因为它在正则表达式中是特殊字符。)\\\\
:反斜杠(在PHP字符串和正则表达式中,双反斜杠用于转义反斜杠本身)。
*
:匹配前一个元素出现零次或多次。{1,50}
:匹配前一个元素出现1到50次。$
:断言位于字符串的末尾位置。u
:修饰符:将模式视为UTF-8,对于正确的Unicode匹配是必要的。
注意
仅为了正确显示错误信息,增加了对\Magento\Quote\Model\BillingAddressManagement
的优先级。(在assign
方法中添加了对LocalizedException
的捕获)