[wp-trac] [WordPress Trac] #36944: Display server-sent Customizer setting validation errors before save is attempted
WordPress Trac
noreply at wordpress.org
Wed May 25 19:50:57 UTC 2016
#36944: Display server-sent Customizer setting validation errors before save is
attempted
--------------------------+-------------------
Reporter: westonruter | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: 4.6
Component: Customize | Version: trunk
Severity: normal | Keywords:
Focuses: |
--------------------------+-------------------
Following up on #34893.
At the moment, the setting validation errors that are returned by
`WP_Customize_Setting::validate()` are only displayed when a save is
attempted. This is the only situation where these errors are sent back
from the server, as part of the `customize_save_response`. However, now
that there is strict validation available in the Customizer, if a
validation error does happen when editing a setting, then the behavior is
for the Customizer preview to act as if the supplied setting does not
exist at all. This is a bad user experience because then their changes in
the preview just disappear. In this case, I should think it is unlikely
that the user would try to save their changes since they don't appear
properly in the preview, and thus the validation errors would never get
displayed to the user.
With transactions, this issue would be addressed by continually sending
the setting values to the server to amend the transaction, and in the
response the validation errors could be included, as noted in
[https://core.trac.wordpress.org/ticket/34893#comment:42 #34893 (comment
42)]:
> > - Selective refresh seems to revert to the previous setting value when
a setting is invalid. Perhaps we should do this but also keep it faded/in
an updating state to indicate that there is a problem with the current
setting (hence the previous value being used)?
>
> Yeah, the revert to the previous setting is a result of the invalid
settings now being (properly) rejected, and so they are treated as if they
weren't supplied at all. This would be true in both selective refresh and
full-page refresh. At the moment, it would be up to the control to display
the notification using JS to give feedback for why an update isn't
appearing, as currently PHP-supplied error notifications are currently
only being sent back upon attempted Save. However, with '''transactions'''
(#30937) each change to a setting would get submitted to the server via a
`PATCH` request, and so ''this'' is where I think we'd need to ultimately
provide this feedback for why a setting change isn't appearing in the
preview. I don't know if we should display any invalidity state inside the
preview itself.
In the mean time, without transactions in core, there needs to be an
alternate mechanism for giving early feedback on validation errors. I
suggest that we can send back the setting validation states whenever the
preview is refreshed or whenever a selecting refresh occurs.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/36944>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list