From 11ba0dd57b58e2e7f083a436dc59cf62a398d780 Mon Sep 17 00:00:00 2001 From: Lakshyajeet Singh Goyal Date: Mon, 7 Jul 2025 16:40:00 +0530 Subject: [PATCH 1/3] fix: return if nav menu parentControl is not found --- src/js/_enqueues/wp/customize/nav-menus.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/js/_enqueues/wp/customize/nav-menus.js b/src/js/_enqueues/wp/customize/nav-menus.js index f193d5463bfe4..ada72b2e0337f 100644 --- a/src/js/_enqueues/wp/customize/nav-menus.js +++ b/src/js/_enqueues/wp/customize/nav-menus.js @@ -1631,7 +1631,7 @@ * Shows or hides buttons based on the location of the menu item. * * @param {Object} itemToRefresh The menu item that might need its advanced accessibility buttons refreshed - * + * * @since 6.6.0 */ refreshAdvancedAccessibilityOfItem: function( itemToRefresh ) { @@ -1711,7 +1711,7 @@ } control.renderContent(); control.deferred.embedded.resolve(); // This triggers control.ready(). - + // Mark all menu items as unprocessed. $( 'button.item-edit' ).data( 'needs_accessibility_refresh', true ); }, @@ -1790,7 +1790,7 @@ control.moveRight(); control.params.depth += 1; } - + moveBtn.focus(); // Re-focus after the container was moved. // Mark all menu items as unprocessed. @@ -2421,6 +2421,9 @@ } parentControl = api.control( 'nav_menu_item[' + settingValue.menu_item_parent + ']' ); + if ( ! parentControl ) { + return; + } // Make this control the parent of all the following siblings. _( siblingControls ).chain().slice( realPosition ).each(function( siblingControl, i ) { From a37183441f06f27d4bf81532a46eea6af18fdeac Mon Sep 17 00:00:00 2001 From: Lakshyajeet Singh Goyal Date: Wed, 9 Jul 2025 12:52:59 +0530 Subject: [PATCH 2/3] fix: when changing depth set child menu parent to 0 if it doesn't exist --- src/js/_enqueues/wp/customize/nav-menus.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/js/_enqueues/wp/customize/nav-menus.js b/src/js/_enqueues/wp/customize/nav-menus.js index ada72b2e0337f..6d366eb116010 100644 --- a/src/js/_enqueues/wp/customize/nav-menus.js +++ b/src/js/_enqueues/wp/customize/nav-menus.js @@ -2422,6 +2422,11 @@ parentControl = api.control( 'nav_menu_item[' + settingValue.menu_item_parent + ']' ); if ( ! parentControl ) { + control.setting.set( + $.extend({}, control.setting(), { + menu_item_parent: 0, + }) + ); return; } From 96b535728f74c04237362972046b494008596c23 Mon Sep 17 00:00:00 2001 From: Lakshyajeet Singh Goyal Date: Wed, 27 Aug 2025 13:02:18 +0530 Subject: [PATCH 3/3] docs: update docblock comment for `refreshAdvancedAccessibilityOfItem` --- src/js/_enqueues/wp/customize/nav-menus.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/_enqueues/wp/customize/nav-menus.js b/src/js/_enqueues/wp/customize/nav-menus.js index 6d366eb116010..c8905c6385bf0 100644 --- a/src/js/_enqueues/wp/customize/nav-menus.js +++ b/src/js/_enqueues/wp/customize/nav-menus.js @@ -1630,9 +1630,9 @@ * Refreshes advanced accessibility buttons for one menu item. * Shows or hides buttons based on the location of the menu item. * - * @param {Object} itemToRefresh The menu item that might need its advanced accessibility buttons refreshed - * * @since 6.6.0 + * + * @param {Object} itemToRefresh The menu item that might need its advanced accessibility buttons refreshed */ refreshAdvancedAccessibilityOfItem: function( itemToRefresh ) { // Only refresh accessibility when necessary.