Dynamic Menu Product Categories automatically syncs WooCommerce product categories into selected WordPress menus. This fork adds modern compatibility checks, performance and security improvements, and a bulk import that preserves category hierarchy.
- Automatically sync product categories into selected navigation menus
- Bulk import of all existing product categories while preserving hierarchy
- Performance optimizations using WordPress object cache
- Rate limiting to avoid server overload during large updates
- Nonce and capability checks for secure admin operations
- Compatible with PHP 7.4+, WordPress 5.8+, WooCommerce 6.0+
- PHP 7.4 or newer
- WordPress 5.8 or newer
- WooCommerce 6.0 or newer
- Copy the
dynamic-menu-product-categoriesfolder to/wp-content/plugins/ - Activate the plugin from the WordPress admin Plugins screen
- Go to
Settings > Dynamic Menu Product Categoriesto configure
- Select one or more menus in the plugin settings and click Save Changes.
- The plugin will automatically sync categories as they are created/edited/deleted.
- To import all existing categories into the selected menus (preserves hierarchy):
- Go to
Settings > Dynamic Menu Product Categories - Select the menu(s) and save
- Click the Import All Categories button
- Go to
Notes:
- The bulk import will skip categories already present in the menu to avoid duplicates.
- For very large catalogs, perform the import on a staging server or during low-traffic windows.
See readme.txt for the detailed changelog. Highlights:
- Added bulk import feature (preserves parent-child hierarchy)
- Added PHP/WordPress/WooCommerce compatibility checks
- Implemented caching and rate-limiting
- Security and code modernisation
This plugin is distributed under the GNU General Public License v2 or later (GPL-2.0-or-later). See the LICENSE file.
- Pal Code — original developer (original WordPress.org release)
- abuayesh — listed contributor in original release
- Sepehr Zekavat — compatibility, security and bulk-import enhancements, README and packaging
If you run into issues, test on a staging environment first. For questions about this fork, open an issue on the GitHub repository where you publish this code.