[wp-trac] [WordPress Trac] #32814: Custom Menu Widget should show newly added menus in Customizer

WordPress Trac noreply at wordpress.org
Wed Jul 8 14:30:36 UTC 2015


#32814: Custom Menu Widget should show newly added menus in Customizer
------------------------------------+------------------------------
 Reporter:  adamsilverstein         |       Owner:  adamsilverstein
     Type:  defect (bug)            |      Status:  assigned
 Priority:  high                    |   Milestone:  4.3
Component:  Customize               |     Version:  trunk
 Severity:  normal                  |  Resolution:
 Keywords:  dev-feedback has-patch  |     Focuses:  javascript
------------------------------------+------------------------------

Comment (by adamsilverstein):

 Working on the saving of new menus selected in custom menu widgets while
 the first part on #32841 gets resolved.

 Replying to [comment:17 westonruter]:
 > @adamsilverstein I've done a review of the changes:
 >
 > I think the addition of `_resetCustomMenuWidgets` will no longer be
 needed with the pending patch made to #32841. The menus rendered in Custom
 Menu widgets weren't getting properly refreshed, and this I believe I've
 resolved in the patch on that ticket. Merely changing a menu or menu item
 should be all that is needed to trigger a menu to refresh. Please try
 merging that patch into yours, and see if it works as expected without
 `_resetCustomMenuWidgets` being active.
 >
 > I commented this on the [https://github.com/xwp/wordpress-
 develop/pull/98/files PR], but when a Custom Menu widget is saved which
 had selected a new menu… I don't think this is currently persisting the
 newly-inserted menu ID in the widget settings. In other words, if you
 create a menu (without saving), assign it to a Custom Menu widget, and
 then Save… you have it update the UI to select the proper nav menu ID, but
 if you then reload the Customizer and re-examine the widget, it seems like
 it would still be trying to reference the placeholder nav menu?
 >
 > I think the widget update needs to be handled on the server instead:
 when inserting a new nav menu, I think during the `customize_save` action
 we need to check if any Custom Menu widgets are referencing the
 placeholder ID, and then at that time make sure that all of these widgets
 get updated to reference the newly inserted term ID. And then the JS-value
 settings can be sent back in the `customize_save_response` filter: there
 can be a `data.custom_menu_widget_updates` just like we're including
 `data.nav_menu_updates`, and then for each
 `data.custom_menu_widget_updates` it can update the settings with those
 values, and then clear out the dirty state.
 >
 > Lastly, I think that `WP_Customize_Nav_Menus::filter_nav_menu_object()`
 is duplicating the functionality of
 `WP_Customize_Nav_Menu_Setting::preview()`. I'm not clear why this is
 needed. Could you clarify?

--
Ticket URL: <https://core.trac.wordpress.org/ticket/32814#comment:25>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list