{"id":385742,"date":"2026-10-28T00:13:31","date_gmt":"2026-10-28T00:13:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/catpro-category-organizer-for-woocommerce\/"},"modified":"2026-10-28T00:13:15","modified_gmt":"2026-10-28T00:13:15","slug":"netmagic-category-manager-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/netmagic-category-manager-for-woocommerce\/","author":23482622,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.12","stable_tag":"1.5.12","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"NetMagic Category Manager for WooCommerce","header_author":"netmagic","header_description":"Category management tool for WooCommerce stores with large or complex category structures.","assets_banners_color":"","last_updated":"2026-10-28 00:13:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/woocatpro.com","header_author_uri":"https:\/\/profiles.wordpress.org\/netmagic","rating":0,"author_block_rating":0,"active_installs":0,"downloads":71,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.12":{"tag":"1.5.12","author":"netmagic","date":"2026-10-28 00:13:15","revision":3769698}},"upgrade_notice":{"1.5.9":"<p>Adds Audit Log (C11 Pro). Creates catpro_audit_log table on activation. No breaking changes.<\/p>","1.5.8":"<p>Adds Bulk Name Mapper (C9 Pro). No breaking changes, no database migration required.<\/p>","1.5.7":"<p>Adds Feed Source Lock (C7 Pro). No breaking changes, no database migration required.<\/p>","1.5.6":"<p>Adds Ghost Category Detector (C5 Pro). No breaking changes, no database migration required.<\/p>","1.5.5":"<p>Adds Structural Lock (C4a Pro). No breaking changes, no database migration required.<\/p>","1.5.4":"<p>Adds bulk lock\/unlock (C4b) and ZIP batch image import (C2b). No breaking changes, no database migration.<\/p>","1.5.3":"<p>Adds Campaign Profiles (Pro) with shortcode support. No breaking changes, no database migration.<\/p>","1.5.2":"<p>Adds manual category lock (Pro). No breaking changes.<\/p>","1.5.1":"<p>Plugin renamed. No functionality changes.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.12"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Category Manager overview","2":"Excel import with preview","3":"Category search in product editor","4":"Settings page"}},"plugin_section":[],"plugin_tags":[125072,610,43298,6590,286],"plugin_category":[45,57],"plugin_contributors":[289084],"plugin_business_model":[],"class_list":["post-385742","plugin","type-plugin","status-publish","hentry","plugin_tags-bulk-import","plugin_tags-categories","plugin_tags-category-manager","plugin_tags-excel","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-taxonomy","plugin_contributors-netmagic","plugin_committers-netmagic"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/netmagic-category-manager-for-woocommerce.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>NetMagic Category Manager adds a dedicated category management page to WooCommerce, making it easier to work with large or complex category structures.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Category search box in the product editor<\/li>\n<li>Category manager with hide\/show controls per category<\/li>\n<li>Bulk import from Excel (.xlsx) \u2014 hierarchical or flat format, up to 10 levels deep<\/li>\n<li>Export all categories to Excel for editing and re-import<\/li>\n<li>Drag &amp; drop category reordering<\/li>\n<li>Auto-hide empty categories (optional)<\/li>\n<li>Category duplication<\/li>\n<li>Sub-category creation<\/li>\n<li>Bulk delete<\/li>\n<li>Product count displayed per category<\/li>\n<li>Works with standard WordPress\/WooCommerce \u2014 no external services required<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/catpro-category-manager-for-woocommerce<\/code> directory, or install directly through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>WooCommerce must be installed and active.<\/li>\n<li>Navigate to Products \u2192 Category Manager to get started.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20woocommerce%3F\"><h3>Does this plugin require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes, WooCommerce must be installed and active. The plugin declares this dependency via the <code>Requires Plugins<\/code> header.<\/p><\/dd>\n<dt id=\"how%20many%20categories%20can%20i%20import%20at%20once%3F\"><h3>How many categories can I import at once?<\/h3><\/dt>\n<dd><p>You can import categories up to 10 levels deep. The depth limit is configurable in the plugin settings.<\/p><\/dd>\n<dt id=\"can%20i%20export%20my%20existing%20categories%3F\"><h3>Can I export my existing categories?<\/h3><\/dt>\n<dd><p>Yes. On the Import page, click \"Download existing categories for editing\" to export all categories to an Excel file. You can edit it and re-import.<\/p><\/dd>\n<dt id=\"does%20hiding%20a%20category%20affect%20its%20url%3F\"><h3>Does hiding a category affect its URL?<\/h3><\/dt>\n<dd><p>No. Hidden categories are only excluded from WooCommerce shop listings and widgets. The category page itself remains accessible by its URL.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.10<\/h4>\n\n<ul>\n<li>Fixed: Inline <\/li>\n<li>Updated: SheetJS vendor library updated from 0.18.5 to 0.20.3<\/li>\n<li>Improved: Category Manager JS extracted to external file assets\/js\/nm-category-manager.js<\/li>\n<li>Improved: JS localization object renamed to nmcm for consistency with NetMagic naming convention<\/li>\n<\/ul>\n\n<h4>1.5.9<\/h4>\n\n<ul>\n<li>Added: C11 \u2014 Undo Log \/ Audit Trail (Pro) \u2014 every CatPro action is logged to a dedicated DB table (catpro_audit_log)<\/li>\n<li>Circular buffer: keeps the last 500 entries; oldest are automatically purged when the limit is exceeded<\/li>\n<li>Logged actions: rename, hide, show, delete, lock, unlock, struct_lock, struct_unlock, feed_source_set, feed_source_clear, name_map_apply, bulk actions<\/li>\n<li>Admin page (Products \u2192 \ud83d\udccb Audit Log) with filters: action type, user, date, free-text search<\/li>\n<li>Colour-coded rows by severity: red for deletes, amber for hides\/locks, blue for renames<\/li>\n<li>Each row shows: timestamp, action badge, category name + ID, before value, after value, user login<\/li>\n<li>Paginated display (50 entries per page) with direct category edit link when the category still exists<\/li>\n<li>Clear log button (site admins only) with confirmation prompt<\/li>\n<\/ul>\n\n<h4>1.5.8<\/h4>\n\n<ul>\n<li>Added: C9 \u2014 Bulk Name Mapper (Pro) \u2014 rename categories in bulk using configurable rules; nothing is hardcoded to any language or vendor<\/li>\n<li>Two complementary rename strategies: prefix stripping (e.g. strip \"HAFFNER - \" from all matching names) and an exact name\u2192name mapping table<\/li>\n<li>Prefix list is fully configurable in the new Name Mapper admin page \u2014 add any number of prefixes, in any language<\/li>\n<li>Exact name map supports manual entry or upload of a CSV\/XLSX file (two columns: old name \u2192 new name)<\/li>\n<li>Preview page shows all proposed renames before applying \u2014 each row has an Include checkbox so individual changes can be deselected<\/li>\n<li>Apply step respects struct-locked categories \u2014 those are silently skipped<\/li>\n<li>Exact name map takes priority over prefix stripping when both rules would match the same category<\/li>\n<li>Longest prefix wins when multiple configured prefixes would match the same name<\/li>\n<li>New submenu entry: Products \u2192 \ud83d\udd24 Name Mapper<\/li>\n<\/ul>\n\n<h4>1.5.7<\/h4>\n\n<ul>\n<li>Added: C7 \u2014 Feed Source Lock (Pro) \u2014 assign an external feed source label to any category; feed-owned categories are automatically struct-locked<\/li>\n<li>Feed source names are fully configurable in Settings (no hardcoded values) \u2014 add as many sources as needed (SellGate, MyFeed, Partner B, etc.)<\/li>\n<li>Per-category dropdown in the Category Manager to assign\/clear the feed source inline<\/li>\n<li>Bulk actions: assign any configured feed source or clear feed source for selected categories<\/li>\n<li>Feed source badge (\ud83d\udce1 blue) displayed next to the category name in the Manager table<\/li>\n<li>New Settings card: \"Feed Sources\" \u2014 define slug + display label pairs with live slug preview<\/li>\n<li>Stored as term meta <code>catpro_feed_source<\/code>; struct lock is set automatically when a source is assigned<\/li>\n<\/ul>\n\n<h4>1.5.6<\/h4>\n\n<ul>\n<li>Added: C5 \u2014 Ghost Category Detector (Pro) \u2014 new admin page listing all categories with zero products in their entire subtree<\/li>\n<li>Ghost categories can be bulk-hidden or bulk-deleted directly from the page<\/li>\n<li>Recursive product count engine added to CatPro_Helpers (<code>get_all_recursive_counts()<\/code>) \u2014 walks the full category tree, not just direct children<\/li>\n<li>Struct-locked categories are protected from ghost-delete<\/li>\n<li>New submenu entry: Products \u2192 \ud83d\udc7b Ghost Detector<\/li>\n<\/ul>\n\n<h4>1.5.5<\/h4>\n\n<ul>\n<li>Added: C4a \u2014 Structural Lock (Pro) \u2014 individually lock categories against rename, delete, move (drag\/reparent) and adding child categories<\/li>\n<li>Structural lock is separate from the C1 auto-hide lock; stored as <code>catpro_struct_locked<\/code> term meta<\/li>\n<li>Locked rows show an amber \ud83c\udfdb\ufe0f Struct Lock badge and highlight; Edit\/Subcategory\/Delete buttons are disabled per row<\/li>\n<li>Toggle button per row + bulk Struct Lock \/ Struct Unlock in the bulk actions dropdown<\/li>\n<li>Server-side guards in rename, delete, create-child and change-parent AJAX handlers<\/li>\n<\/ul>\n\n<h4>1.5.4<\/h4>\n\n<ul>\n<li>Added: C4b \u2014 Bulk lock\/unlock (Pro) \u2014 lock or unlock multiple categories at once via the bulk actions dropdown<\/li>\n<li>Added: C2b \u2014 ZIP batch image import (Pro) \u2014 upload a ZIP file where image filenames match category slugs to auto-assign thumbnails<\/li>\n<li>Images are sideloaded into the Media Library and assigned as WooCommerce category thumbnails (thumbnail_id)<\/li>\n<\/ul>\n\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Added: C3 Campaign Profiles (Pro feature) \u2014 save and load category hide\/show states as named profiles<\/li>\n<li>Added: <code>[catpro_profile name=\"slug\"]<\/code> shortcode \u2014 applies a profile on any page (campaign landing pages, seasonal promos)<\/li>\n<li>Added: <code>[catpro_profile name=\"slug\" show_list=\"yes\" columns=\"3\"]<\/code> \u2014 also renders a visual category grid<\/li>\n<li>Added: Shortcode copy helper in the Category Manager admin UI<\/li>\n<li>Added: Admin bar notice when a profile shortcode is active on a page<\/li>\n<li>Profiles stored in wp_options (no database migration required)<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Added: C1 manual category lock (Pro feature) \u2014 protect individual categories from auto-hide<\/li>\n<li>Locked categories display a \ud83d\udd12 badge and blue highlight in the Category Manager<\/li>\n<li>Lock state stored in term meta (no database migration required)<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Renamed plugin to NetMagic Category Manager for WooCommerce<\/li>\n<li>Updated text domain to netmagic-category-manager-for-woocommerce<\/li>\n<li>Removed bundled translation files (now served via translate.wordpress.org)<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>All features are now available without restrictions<\/li>\n<li>Fixed: hidden categories no longer cause 404 errors on their own pages<\/li>\n<li>Removed trialware \/ locked-feature code<\/li>\n<li>Improved: inline scripts and styles moved to wp_enqueue system<\/li>\n<li>Added: Requires Plugins header for WooCommerce dependency<\/li>\n<li>Added: sanitize_callback for all registered settings<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added unified export\/import format<\/li>\n<li>Added inline category editing<\/li>\n<li>Added drag &amp; drop reordering<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added SheetJS local bundling<\/li>\n<li>Added auto-hide visual indicator<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Organize and manage WooCommerce product categories \u2014 search, hide, bulk import from Excel, reorder, and more.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/385742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=385742"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/netmagic"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=385742"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=385742"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=385742"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=385742"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=385742"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=385742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}