This needs to be implemented at the widget code level for which the code in the question you start with is not a good match.
The easiest way might be to decouple the widget content editing and the widget placement. You can set up a specific page in which it is possible to manage the content of the widget, and set the access level to that page to one which editor has. This way all the admin has to do is to place the widget at the sidebar and the editor can change the content without admin’s intervention.
Related Posts:
- Give Editor Access To Sidebar
- Role that can edit only widgets, not other theme options
- prevent custom widget file names from showing in Appearance > Editor
- Show modal only to some roles
- Show editor widgets only on pages that use a specific template?
- How can I use the built in WordPress “browse link” functionality?
- Modifying the default search widget
- Prevent widgets removal
- How to build widget with arrays inside arrays?
- How do I save data from submitted form from widget
- Why Can’t wp_editor Be Used in a Custom Widget?
- Add New Footer Widget Area with Limited Options?
- Add div class to only one widget
- How to use control_callback when creating a widget via functions.php or plugin?
- Disable default WordPress widgets in sidebar
- Updating to Version 4.5 bumped my “main sidebar” widget out of place
- How can I delete all inactive widgets?
- Adding classes to dynamic sidebar
- Need help adding additional controls to a custom widget
- Why do none of my widgets have a title?
- Defer Code in Widgets – Page Speed
- Where are widget configurations stored?
- Bolding specific word(s)/parts of widget title
- Adding a widget to a string of HTML
- How to add a class to a link in text editor
- WordPress widget new instance creates content duplicates
- Remove the widgets tab from theme customizer
- Remove/Add widgets from/to the Available Widgets pool
- Remove/Unregister or hide a widget added by a plugin
- Check if widget is active
- Radio buttons in widget not saving
- How can I apply css styling to the current day in the calendar widget
- How to check if a widget has no title
- AJAX Contact Form Issue
- Including PHP files doesn’t work outside of Localhost
- Display sidebar only if it has content
- Restrict other Admins from using Editor in Admin Panel
- Excluding specific widgets from default sidebar class
- How to truncate titles in Recent Posts widget?
- Can WordPress Read Its Own RSS Feed?
- Can’t see widget areas in my customizer
- Display custom widget, added as a shortcode in the correct place
- Debug errors on sidebar
- Dynamic sidebar based on category
- Widget textarea input gets formatted
- Show widget differently depending on if it’s in the sidebar or footer
- Get posts after today (upcoming events)
- How to pass data from page to widget functions?
- Adding a rich text editor to a widget – specifically CKEditor
- Make nav-menus.php available for editor
- Widget page is missing from menu and default widgets are not showing
- wp_editor in widget breaks after save (no buttons and visual tab broken)
- How to use a dropdown to populate a list of post from CPT
- Fire on widgets_init only on dashboard
- Access Customizer widget instance form
- Allow shortcode for custom widget
- Registering a stylesheet inside my WordPress widget
- is_tax() not working in Widget Logic [closed]
- How to position custom dashboard widgets on side column
- One register_sidebar function works, the other doesn’t?
- Modify WordPress widgets Screen
- How to set default post editor based on role?
- What does apply_filters() do exactly? [duplicate]
- How do I remove/reset all current widgets from the database?
- Change Woocommerce Product Categories Widget ‘Title’ based on Product Category
- Why isn’t my custom widget outputting any content?
- Make single widget area top level in 4.0 Customize Panel
- Sidebar widgets – dynamic CSS : problem with widget-title
- widget not displayed
- Dynamically creating multiple widgets from Mustache templates
- How to customize wordpress sidebar widget
- Jquery checkbox -show posts with checked tags
- Plugin: Front-end Editor – User role specific editable content?
- changing the style of sidebar
- Vimeo Feed gived dead link with RSS widget?
- Preset Widgets ONLY after site is initially created
- How to translate widget titles in 2021 theme?
- Is it possible to add a preview to custom developed Widget?
- How to change widget title in wordpress version 5.8.1?
- why the code html apear in this widget in footer
- A checkbox Option for description in Widget
- My widgets do not save
- Handling dozens of sidebars
- Remove default WordPress widgets
- Disable wordpress widget automatically on error
- Can I add a widget to the of my site?
- Widget dynamically add new input field
- How to show widget in frontend?
- Registering multiple copies of a widget
- How do I stop out of stock items from appearing on my WooCommerce site when using the Layered Nav widget [closed]
- Single Widget Multi Sidebar
- An issue with register_sidebar and the admin interface
- page url in shortcode
- iframe/embed vid in text widget loads outside container and moves around when scrolling the page?
- Widget on home page displays wrong time compared to same widget on inside pages
- Widgets in PHP files?
- Text Widget Not Working
- Sample widget code which get data(1-5 record) from Wp_Admin panel and display to Homepage(WordPress Custom Theme)
- Widget block editor: Unable to collect checkbox values inside widget update() method
- Theme Widget Area Defaults