Skip to content

Commit 3e38118

Browse files
committed
#7241: No option to start with blank option for prefix and suffix in checkout.
- replace usage of empty string for optional value with space so that the knockout.js picks up the optional values
1 parent fce3afe commit 3e38118

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

app/code/Magento/Customer/Block/Widget/Name.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,11 @@ public function getPrefixOptions()
106106
$prefixOptions = $this->options->getNamePrefixOptions();
107107

108108
if ($this->getObject() && !empty($prefixOptions)) {
109-
$oldPrefix = $this->escapeHtml(trim($this->getObject()->getPrefix()));
110-
$prefixOptions[$oldPrefix] = $oldPrefix;
109+
$prefixOption = $this->getObject()->getPrefix();
110+
$oldPrefix = $this->escapeHtml(trim($prefixOption));
111+
if ($prefixOption !== null && !isset($prefixOptions[$oldPrefix]) && !isset($prefixOptions[$prefixOption])) {
112+
$prefixOptions[$oldPrefix] = $oldPrefix;
113+
}
111114
}
112115
return $prefixOptions;
113116
}
@@ -161,8 +164,11 @@ public function getSuffixOptions()
161164
{
162165
$suffixOptions = $this->options->getNameSuffixOptions();
163166
if ($this->getObject() && !empty($suffixOptions)) {
164-
$oldSuffix = $this->escapeHtml(trim($this->getObject()->getSuffix()));
165-
$suffixOptions[$oldSuffix] = $oldSuffix;
167+
$suffixOption = $this->getObject()->getSuffix();
168+
$oldSuffix = $this->escapeHtml(trim($suffixOption));
169+
if ($suffixOption !== null && !isset($suffixOptions[$oldSuffix]) && !isset($suffixOptions[$suffixOption])) {
170+
$suffixOptions[$oldSuffix] = $oldSuffix;
171+
}
166172
}
167173
return $suffixOptions;
168174
}

app/code/Magento/Customer/Model/Options.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,14 @@ private function prepareNamePrefixSuffixOptions($options, $isOptional = false)
9292
}
9393
$result = [];
9494
$options = explode(';', $options);
95-
if ($isOptional && trim(current($options))) {
96-
array_unshift($options, '');
97-
}
9895
foreach ($options as $value) {
9996
$value = $this->escaper->escapeHtml(trim($value));
10097
$result[$value] = $value;
10198
}
99+
if ($isOptional && trim(current($options))) {
100+
$result = array_merge([' ' => ' '], $result);
101+
}
102+
102103
return $result;
103104
}
104105
}

0 commit comments

Comments
 (0)