diff --git a/Block/Checkout/LayoutProcessor.php b/Block/Checkout/LayoutProcessor.php index 2b246de..7f9dc4f 100644 --- a/Block/Checkout/LayoutProcessor.php +++ b/Block/Checkout/LayoutProcessor.php @@ -106,12 +106,12 @@ public function modifyStreetUiComponents($addressResult) $lineCount = 0; while($lineCount < 4){ - + $lineNumber = $lineCount+1; if(isset($addressResult['street']['children'][$lineCount])){ $label = $this->addressLineHelper->getLineLabel($lineNumber); - + if ( $this->addressLineHelper->isLineEnabled($lineNumber)) { $addressResult['street']['children'][$lineCount]['label'] = $label; $addressResult['street']['children'][$lineCount]['additionalClasses'] = 'experius-address-line-one'; @@ -125,6 +125,4 @@ public function modifyStreetUiComponents($addressResult) return $addressResult; } - - } diff --git a/Helper/Data.php b/Helper/Data.php index a152100..629c972 100644 --- a/Helper/Data.php +++ b/Helper/Data.php @@ -81,7 +81,7 @@ public function getValidationClassesForLine($lineNumber) return $validationClassesString; } - public function getValidationClassesAsArrayForLine($lineNumber) + public function getValidationClassesAsArrayForLine($lineNumber) { $group = "experius_address_lines/experius_address_line{$lineNumber}"; @@ -102,9 +102,29 @@ public function getValidationClassesAsArrayForLine($lineNumber) if($this->isLineRequired($lineNumber)){ $validationClassesArray['required-entry'] = 1; } + if ($this->getEnablePOBoxRule()) { + $validationClassesArray = $this->getPOBoxRule($validationClassesArray); + } + $this->_logger->debug(print_r($validationClassesArray, true)); return $validationClassesArray; } + public function getEnablePOBoxRule() + { + return !$this->getModuleConfig("shipping_po_box", "experius_address_lines"); + } + + public function getPOValidationRegex() + { + return '/^parcel.*|^locker.*|^box.*|.*po\s*box.*|.*p[\.\s]o\.?\sbox.*/i'; + } + + public function getPOBoxRule($existingClasses) + { + $existingClasses['po-box-validation'] = true; + return $existingClasses; + } + /** * Return form attribute IDs by form code * diff --git a/README.md b/README.md index da1a816..60c39ff 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -**Experius Address Lines,** +**Experius Address Lines** Adds labels to address lines and adds configuration per address line. @@ -8,6 +8,8 @@ Configuration Per Line - Label - Validation Classes +Also has an option for disabling PO Boxes in the address + Stores > Configuration > Customers > Customer Configuration > Address Lines **Screenshots** diff --git a/etc/adminhtml/system.xml b/etc/adminhtml/system.xml old mode 100755 new mode 100644 index 0b717d7..358cacc --- a/etc/adminhtml/system.xml +++ b/etc/adminhtml/system.xml @@ -105,6 +105,10 @@ Necessary for registrion page and address edit. + + + Magento\Config\Model\Config\Source\Yesno + diff --git a/etc/config.xml b/etc/config.xml old mode 100755 new mode 100644 index 6018499..2b09530 --- a/etc/config.xml +++ b/etc/config.xml @@ -1,5 +1,6 @@ - + @@ -31,6 +32,7 @@ + 1 diff --git a/etc/module.xml b/etc/module.xml old mode 100755 new mode 100644 diff --git a/view/frontend/layout/customer_account_create.xml b/view/frontend/layout/customer_account_create.xml old mode 100755 new mode 100644 diff --git a/view/frontend/layout/customer_address_form.xml b/view/frontend/layout/customer_address_form.xml old mode 100755 new mode 100644 diff --git a/view/frontend/requirejs-config.js b/view/frontend/requirejs-config.js new file mode 100644 index 0000000..4199e60 --- /dev/null +++ b/view/frontend/requirejs-config.js @@ -0,0 +1,9 @@ +var config = { + config: { + mixins: { + 'Magento_Ui/js/lib/validation/validator': { + 'Experius_AddressLines/js/validator-mixin': true + } + } + } +}; \ No newline at end of file diff --git a/view/frontend/templates/experius/customer/address/edit.phtml b/view/frontend/templates/experius/customer/address/edit.phtml index 8a7d5be..4344a31 100644 --- a/view/frontend/templates/experius/customer/address/edit.phtml +++ b/view/frontend/templates/experius/customer/address/edit.phtml @@ -55,7 +55,10 @@
-
+ helper('Experius\AddressLines\Helper\Data')->getEnablePOBoxRule()): ?> +
PO Boxes not allowed
+ +
@@ -178,3 +181,20 @@ } } + +helper('Experius\AddressLines\Helper\Data')->getEnablePOBoxRule()): ?> + + diff --git a/view/frontend/templates/experius/customer/form/register.phtml b/view/frontend/templates/experius/customer/form/register.phtml index 87971be..eafa07d 100644 --- a/view/frontend/templates/experius/customer/form/register.phtml +++ b/view/frontend/templates/experius/customer/form/register.phtml @@ -78,7 +78,10 @@
-
+ helper('Experius\AddressLines\Helper\Data')->getEnablePOBoxRule()): ?> +
PO Boxes not allowed
+ +
@@ -194,7 +197,9 @@ + getShowAddressFields()): ?>