Opened 4 years ago
#55587 new defect (bug)
Customize preview removes URL query parameters of the same name and keeps only the last one
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Awaiting Review | Priority: | normal |
| Severity: | major | Version: | |
| Component: | Customize | Keywords: | |
| Focuses: | Cc: |
Description
It seems that when the customizer is rebuilding some of the URLs on the page if there are multiple query parameters of the same name/key (an array) in the URL, it only keeps the last one and removes the others.
For example, while in Customizer, if you add a menu item with a custom link of /my-page/?myvar[]=A&myvar[]=B the URL of the menu for the preview is rewritten to /my-page/?myvar[]=B&customize_changeset_uuid=..., losing myvar[]=A.
This is also happening to the URL of the page itself (the preview's IFRAME src) when for example there is a form with a multi-select field submitted. Assume we have the form below on /my-page/:
<form method="get" action="/my-page/">
<select name="myfield[]" multiple="multiple">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
<input type="submit" value="Apply Filters">
</form>
If you select A and B and C and submit the form, it is expected that that page refreshes with the new URL of /my-page/?myfield[]=A&myfield[]=B&myfield[]=C&customize_changeset_uuid=..., however, I am seeing the following URL instead with the A and B values lost in the preview's IFRAME src: /my-page/?myfield[]=C&customize_changeset_uuid=...