As a role of thumb, you should not extend widgets that you do not control unless their author specifically gave guidance on how to do that. Extending is somewhat easier on the PHP side, but it is hard(er) to extend UI with JS if facilities were not put in place in advance.
A safer (at least from ease of development perspective) way is to “fork” the widget code. Take the code, make whatever modification you need to it, and call the widget a new name, or depending on your needs you can override the “official” name (unregister the original, and register yours under the same handle).
This will mean that with each new version of WC you will need to make sure that you do not need to update your code to reflect a change in the “original” widget, but most likely you would have needed to do that even if you were just “extending”.
Related Posts:
- Update widget form after drag-and-drop (WP save bug)
- How do register_sidebar() and get_sidebar() work together?
- Widgets vs. Theme Mods
- Widgets not working in Customizr but working in Appearance
- Get the sidebar ID in which the current widget was dropped
- How Can A Widget With Only One Instance Be Defined?
- How to exclude certain widget from showing up on home/front page? [duplicate]
- Customise search form in the Widget
- Schedule cron event from widget
- How to Register and Display Widget for Custom taxonomy
- register_sidebar ‘after_widget’ on custom-built widgets not implementing, caused nested widgets
- Add ‘Right Now’ widget to custom dashboard
- Count widgets of a certain type
- Widget Javascript code (ajax)
- Custom widget select options needs to stay selected after save
- Custom Widget form function common elements
- Updating Widget options in custom install.php
- Modify a theme to insert custom widgets?
- How did I enable atom feeds in a fresh WP3 install?
- Child Theme – how to add new widget on a specific place?
- Warning: Creating default object… when altering Customize panels
- Adding custom field in all widgets, but at the top of the form, in admin area
- How do I change the markup only of a built-in widget?
- Is it possible to make widget return only data (eg, array)?
- Allow a Widget to be used one time only?
- Search widget will search everything in the site, how to limit to only search gallery name
- Disable widgets in customizer for sidebar
- Unable to edit the “customize” section and the “widget” section is populating unknown code
- Choose sidebars column in widgets.php page [closed]
- Can’t receive $args[ ] to my custom widget
- Organizing the position of widgetized areas in the backend
- how to convert Html block to dynamic widget?
- I’d like to move the Widgets Panel to the bottom of the list in Customizer
- Create small dashboard widget
- Widgets won’t save
- Customizing the Widget content markup
- Widget title markup in register_sidebar
- Sticky menu for WP custom menubars
- How to append custom text to the output of ‘categories widget’?
- Customise the Category Widget
- What’s the right way to share data between widgets?
- Customize Widget Navigation
- Add custom border across footer widget area
- Customize section does not show my widget areas
- Widget recent comment filter by post meta_value
- How could I change contact details in the footer?
- Make Widget appear on Dashboard
- How to narrow the area between buttons on Helium theme sidebar? [closed]
- How to hide or remove a custom widget area when empty
- Execute function with jQuery if widget added or removed?
- Still desperate about multiple TinyMCEs in widgets – is there any good solution to this yet?
- Custom Admin Section
- How to define active widget with js in a customizer
- Confused about customising widgets
- Special characters showing in fallback font
- customize footer widgets area
- How do I include the sidebar (with Widgets) in a custom theme?
- Hover Hide-Visible Additional CSS not working in WordPress website, but shows properly in Customize window
- Add a custom field for sorting the products in a specific category WOOCOMMERCE – Second try
- Need help with friendly URL’s in WordPress
- Complex widget form UI – examples and best practices
- How to add checkbox and radio button in Profile Page
- Can I disable the auto complete?
- How does the default recent posts widget work with cache?
- Add new section to “Right Now” widget
- Custom Login and Registration form in Ajax
- Changing editor-style.css style
- Customize the WordPress Default Gallery Output
- Allow non-admins to access the Customize theme page
- Query post for ‘selected category’ in archive.php
- Multiple Images/ Slider with custom post [single.php] [closed]
- REQUIRED: Could not find wp_link_pages. See: wp_link_pages by Theme Checker
- problem in uploading attachment to custom directory
- How to update theme from localhost to online site
- Is it necessary to use Timthumb in WordPress 2.9+?
- How to show wp.me shortlink underneath each post?
- Change admin avatar only (without Gravatar or plugin)?
- How do I change the element using a custom function?
- Is it necessary to prefix theme_mod, section id and panel id in the customizer?
- Create a custom admin panel
- Translate custom template with WPML
- Is it possible to add custom badges to product attributes conditionally, based on custom field?
- I want to embed mystream video in my wordpress site
- Current menu item highlights wrong
- Measure time in ONLY HOUR format
- How can error pages be customized
- Displaying Child Page’s Information
- adding a custom time class to in theme twenty sixteen
- SAving PHP in custom wordpress option field
- Does WordPress support template resources/custom fields
- Change default “Apply Changes To” radio option when editing images
- Remove Twenty Twelve themes responsiveness in Internet Explorer
- Looking for a way to take readers to random post when clicking a link
- Custom Import with taxonomies
- Consolidate ‘add-to-cart’ buttons into one ‘add-all-to-cart’ button
- Update to WordPress 4.9.2, but have heavily customized theme
- Storing form data into wordpress database [closed]
- Add fields to edit in custom widget
- Display Published Posts Count for Time Period
- How to create a second Super Admin or Super User via MySQL DB