{"id":332487,"date":"2026-07-11T06:01:47","date_gmt":"2026-07-11T06:01:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/snap-mega-menu-builder\/"},"modified":"2026-10-01T06:14:57","modified_gmt":"2026-10-01T06:14:57","slug":"beplus-visual-mega-nav","status":"publish","type":"plugin","link":"https:\/\/cor.wordpress.org\/plugins\/beplus-visual-mega-nav\/","author":15226952,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.0.25","stable_tag":"0.0.25","tested":"7.1.3","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Beplus Visual Mega Navigation","header_author":"Beplusthemes","header_description":"A Gutenberg-powered visual mega navigation builder for WordPress. Build rich mega menus visually using the block editor.","assets_banners_color":"cec9c0","last_updated":"2026-10-01 06:14:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/miketropi\/beplus-visual-mega-nav","header_author_uri":"https:\/\/beplusthemes.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":521,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.0.10":{"tag":"0.0.10","author":"miketropi","date":"2026-07-24 13:56:19","revision":3621379},"0.0.11":{"tag":"0.0.11","author":"miketropi","date":"2026-07-31 14:31:13","revision":3630120},"0.0.12":{"tag":"0.0.12","author":"miketropi","date":"2026-08-04 01:46:24","revision":3633591},"0.0.13":{"tag":"0.0.13","author":"miketropi","date":"2026-08-12 09:33:52","revision":3643118},"0.0.25":{"tag":"0.0.25","author":"miketropi","date":"2026-10-01 06:14:57","revision":3722477},"0.0.7":{"tag":"0.0.7","author":"miketropi","date":"2026-07-11 06:01:36","revision":3603636},"0.0.8":{"tag":"0.0.8","author":"miketropi","date":"2026-07-13 01:59:22","revision":3605326},"0.0.9":{"tag":"0.0.9","author":"miketropi","date":"2026-07-15 06:12:42","revision":3608292}},"upgrade_notice":{"0.0.25":"<p>Adds the Menu List and Menu Item blocks plus new panel width and position settings. Existing mega menus keep working without changes.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3605326,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3605326,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3605326,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3605326,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"beplus-visual-mega-nav\/tab-container":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/tab-container","title":"Tab Container","category":"beplus-vmn","description":"Organize mega menu content with tabs. Switch between vertical sidebar or horizontal top-nav layout.","keywords":["tab","tabs","mega menu","vertical tabs","horizontal tabs"],"textdomain":"beplus-visual-mega-nav","icon":"table-row-after","style":"file:.\/style.css","editorStyle":["file:.\/editor.css","file:.\/style.css"],"editorScript":"file:..\/..\/build\/blocks.js","render":"file:.\/render.php","supports":{"html":false,"anchor":false,"reusable":false,"multiple":true,"className":false,"inserter":true,"align":["wide","full"]},"attributes":{"layoutMode":{"type":"string","default":"vertical"},"indicatorColor":{"type":"string","default":""},"enableAnimation":{"type":"boolean","default":false},"animationStyle":{"type":"string","default":"sequential"},"scrollAnimationStyle":{"type":"string","default":"sequential"}}},"beplus-visual-mega-nav\/menu-item":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/menu-item","title":"Menu Item","category":"beplus-vmn","description":"Mega menu navigation item with automatic current-page detection and active state styling.","keywords":["menu","link","navigation","item","mega menu"],"textdomain":"beplus-visual-mega-nav","icon":"list-view","style":"file:.\/style.css","editorStyle":["file:.\/editor.css","file:.\/style.css"],"render":"file:.\/render.php","editorScript":"file:..\/..\/build\/blocks.js","usesContext":["beplus-visual-mega-nav\/activeStyle","beplus-visual-mega-nav\/activeBgColor","beplus-visual-mega-nav\/activeTextColor","beplus-visual-mega-nav\/activeFontWeight","beplus-visual-mega-nav\/hoverBgColor","beplus-visual-mega-nav\/hoverTextColor","beplus-visual-mega-nav\/highlightCurrent","beplus-visual-mega-nav\/previewActive","beplus-visual-mega-nav\/itemPaddingVertical","beplus-visual-mega-nav\/itemPaddingHorizontal"],"supports":{"html":false,"anchor":false,"reusable":false,"multiple":true,"className":true,"spacing":{"padding":false,"margin":false},"typography":{"fontSize":false,"lineHeight":false,"fontWeight":false}},"attributes":{"label":{"type":"string","default":""},"url":{"type":"string","default":""},"id":{"type":"number","default":0},"kind":{"type":"string","default":""},"type":{"type":"string","default":""},"opensInNewTab":{"type":"boolean","default":false},"rel":{"type":"string","default":""},"isCustomLink":{"type":"boolean","default":false},"badge":{"type":"string","default":""},"badgePosition":{"type":"string","default":"top"},"badgeBgColor":{"type":"string","default":"#f59e0b"},"badgeTextColor":{"type":"string","default":"#ffffff"},"highlightCurrent":{"type":"boolean","default":true},"activeStyle":{"type":"string","default":"background"},"activeBgColor":{"type":"string","default":""},"activeTextColor":{"type":"string","default":""},"activeFontWeight":{"type":"string","default":"700"},"hoverBgColor":{"type":"string","default":""},"hoverTextColor":{"type":"string","default":""}}},"beplus-visual-mega-nav\/menu-list":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/menu-list","title":"Menu List","category":"beplus-vmn","description":"Navigation list for mega menus with an 'Add Item' button, current-page detection, and active highlight styling.","keywords":["menu","list","navigation","links","mega menu"],"textdomain":"beplus-visual-mega-nav","icon":"list-view","style":"file:.\/style.css","editorStyle":["file:.\/editor.css","file:.\/style.css"],"render":"file:.\/render.php","editorScript":"file:..\/..\/build\/blocks.js","supports":{"html":false,"anchor":false,"reusable":false,"multiple":true,"className":true,"color":{"text":true,"background":true},"spacing":{"padding":true,"margin":true},"typography":{"fontSize":true,"lineHeight":true}},"attributes":{"itemGap":{"type":"number","default":4},"highlightCurrent":{"type":"boolean","default":true},"activeStyle":{"type":"string","default":"background"},"activeBgColor":{"type":"string","default":""},"activeTextColor":{"type":"string","default":""},"activeFontWeight":{"type":"string","default":"700"},"hoverBgColor":{"type":"string","default":""},"hoverTextColor":{"type":"string","default":""},"previewActive":{"type":"boolean","default":false},"paddingVertical":{"type":"number","default":0},"paddingHorizontal":{"type":"number","default":0},"itemPaddingVertical":{"type":"number","default":7},"itemPaddingHorizontal":{"type":"number","default":12},"enableAnimation":{"type":"boolean","default":false},"animationStyle":{"type":"string","default":"sequential"},"scrollAnimationStyle":{"type":"string","default":"sequential"}},"providesContext":{"beplus-visual-mega-nav\/activeStyle":"activeStyle","beplus-visual-mega-nav\/activeBgColor":"activeBgColor","beplus-visual-mega-nav\/activeTextColor":"activeTextColor","beplus-visual-mega-nav\/activeFontWeight":"activeFontWeight","beplus-visual-mega-nav\/hoverBgColor":"hoverBgColor","beplus-visual-mega-nav\/hoverTextColor":"hoverTextColor","beplus-visual-mega-nav\/highlightCurrent":"highlightCurrent","beplus-visual-mega-nav\/previewActive":"previewActive","beplus-visual-mega-nav\/itemPaddingVertical":"itemPaddingVertical","beplus-visual-mega-nav\/itemPaddingHorizontal":"itemPaddingHorizontal"}},"beplus-visual-mega-nav\/hero-artwork-dock":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/hero-artwork-dock","title":"Hero Artwork Dock","category":"beplus-vmn","icon":"cover-image","description":"Content container with a decorative artwork layer docked to the bottom edge. Cards overlap with mouse tracking and idle float animation.","keywords":["hero","artwork","dock","parallax","mega menu"],"textdomain":"beplus-visual-mega-nav","attributes":{"enabled":{"type":"boolean","default":true},"artworkHeight":{"type":"number","default":300},"visiblePercentage":{"type":"number","default":50},"overlap":{"type":"number","default":30},"hoverMotion":{"type":"boolean","default":true},"floatingAnimation":{"type":"boolean","default":true},"perspectiveStrength":{"type":"number","default":800},"cards":{"type":"array","default":[{"id":"card-1","imageId":0,"imageUrl":"","width":180,"rotation":-8,"depth":0},{"id":"card-2","imageId":0,"imageUrl":"","width":200,"rotation":-4,"depth":1},{"id":"card-3","imageId":0,"imageUrl":"","width":260,"rotation":0,"depth":2},{"id":"card-4","imageId":0,"imageUrl":"","width":200,"rotation":4,"depth":1},{"id":"card-5","imageId":0,"imageUrl":"","width":180,"rotation":8,"depth":0}]}},"supports":{"html":false,"anchor":false,"reusable":false,"multiple":true,"className":false,"align":["wide","full"],"spacing":{"padding":true,"margin":true},"color":{"background":true,"text":true}},"style":"file:.\/style.css","editorStyle":["file:.\/editor.css","file:.\/style.css"],"editorScript":"file:..\/..\/build\/blocks.js","render":"file:.\/render.php","viewScript":"file:.\/view.js"},"beplus-visual-mega-nav\/blog-list":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/blog-list","title":"Blog List","category":"beplus-vmn","icon":"list-view","description":"Clean, minimal recent posts list designed for mega menu dropdowns. Compact layout with soft animations.","keywords":["blog","posts","recent","list","mega menu"],"textdomain":"beplus-visual-mega-nav","attributes":{"postsToShow":{"type":"number","default":5},"showThumbnail":{"type":"boolean","default":true},"showDate":{"type":"boolean","default":true},"showCategory":{"type":"boolean","default":false},"showExcerpt":{"type":"boolean","default":false},"showAuthor":{"type":"boolean","default":false},"orderBy":{"type":"string","default":"date"},"order":{"type":"string","default":"DESC"},"categories":{"type":"array","default":[]}},"supports":{"html":false,"anchor":false,"reusable":false,"multiple":true,"className":false,"spacing":{"padding":true,"margin":true}},"style":"file:.\/style.css","editorStyle":["file:.\/editor.css","file:.\/style.css"],"viewScript":"file:.\/view.js","render":"file:.\/render.php","editorScript":"file:..\/..\/build\/blocks.js"},"beplus-visual-mega-nav\/product-list":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/product-list","title":"Product List","category":"beplus-vmn","icon":"cart","description":"Display WooCommerce products with flexible filtering. Filter by category, tag, product IDs, featured products, or on-sale items.","keywords":["product","woocommerce","shop","list","mega menu"],"textdomain":"beplus-visual-mega-nav","attributes":{"postsToShow":{"type":"number","default":4},"orderBy":{"type":"string","default":"date"},"order":{"type":"string","default":"DESC"},"filterBy":{"type":"string","default":"all"},"productCategories":{"type":"array","default":[]},"productTags":{"type":"array","default":[]},"productIds":{"type":"string","default":""},"showImage":{"type":"boolean","default":true},"showPrice":{"type":"boolean","default":true},"showRating":{"type":"boolean","default":false},"showAddToCart":{"type":"boolean","default":false}},"supports":{"html":false,"anchor":false,"reusable":false,"multiple":true,"className":false,"spacing":{"padding":true,"margin":true}},"style":"file:.\/style.css","editorStyle":["file:.\/editor.css","file:.\/style.css"],"render":"file:.\/render.php","editorScript":"file:..\/..\/build\/blocks.js"},"beplus-visual-mega-nav\/beplus-header":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/beplus-header","title":"BePlus Header","category":"header","icon":"table-row-before","description":"Outer header container with sticky positioning, scroll effects, and per-instance mobile breakpoint.","keywords":["header","sticky","navigation","beplus"],"textdomain":"beplus-visual-mega-nav","attributes":{"instanceId":{"type":"string","default":""},"mobileBreakpoint":{"type":"number","default":782},"sticky":{"type":"boolean","default":false},"scrollEffect":{"type":"string","default":"none"},"transparentTop":{"type":"boolean","default":false},"gridColumns":{"type":"string","default":"auto 1fr"},"scrollBgColor":{"type":"string","default":""}},"providesContext":{"beplus-visual-mega-nav\/instanceId":"instanceId","beplus-visual-mega-nav\/mobileBreakpoint":"mobileBreakpoint","beplus-visual-mega-nav\/sticky":"sticky"},"supports":{"spacing":{"blockGap":true,"padding":true,"margin":false},"color":{"background":true,"text":true},"align":["wide","full"]},"render":"file:.\/render.php","viewScript":"file:.\/view.js","style":"file:.\/style.css","editorStyle":"file:.\/editor.css","editorScript":"file:..\/..\/build\/blocks.js"},"beplus-visual-mega-nav\/nav-toggle":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/nav-toggle","title":"Nav Toggle","category":"header","ancestor":["beplus-visual-mega-nav\/beplus-header"],"icon":"menu","description":"Hamburger button that opens the mobile navigation overlay below the breakpoint.","keywords":["hamburger","toggle","menu","mobile","beplus"],"textdomain":"beplus-visual-mega-nav","attributes":{"iconStyle":{"type":"string","default":"lines-3"},"label":{"type":"string","default":""},"labelVisible":{"type":"boolean","default":false}},"usesContext":["beplus-visual-mega-nav\/overlayId","beplus-visual-mega-nav\/instanceId","beplus-visual-mega-nav\/mobileBreakpoint"],"supports":{"html":false,"spacing":{"padding":true,"margin":true}},"render":"file:.\/render.php","style":"file:.\/style.css","editorStyle":"file:.\/editor.css","editorScript":"file:..\/..\/build\/blocks.js"},"beplus-visual-mega-nav\/quote":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/quote","title":"Quote","category":"beplus-vmn","icon":"format-quote","description":"Testimonial carousel with word-by-word text animation. Clean editorial design for mega menu panels.","keywords":["quote","testimonial","carousel","mega menu"],"textdomain":"beplus-visual-mega-nav","attributes":{"quotes":{"type":"array","default":[{"avatar":{"id":0,"url":""},"name":"","position":"","text":""},{"avatar":{"id":0,"url":""},"name":"","position":"","text":""},{"avatar":{"id":0,"url":""},"name":"","position":"","text":""}]},"transitionSpeed":{"type":"number","default":400},"autoPlay":{"type":"boolean","default":true},"autoPlayInterval":{"type":"number","default":5000},"textAnimation":{"type":"boolean","default":true},"showArrows":{"type":"boolean","default":true},"showDots":{"type":"boolean","default":true},"quoteFontFamily":{"type":"string","default":""},"quoteTextColor":{"type":"string","default":""},"quoteTextSize":{"type":"string","default":""}},"supports":{"html":false,"anchor":false,"reusable":false,"multiple":true,"className":false,"spacing":{"padding":true,"margin":true}},"style":"file:.\/style.css","editorStyle":["file:.\/editor.css","file:.\/style.css"],"viewScript":"file:.\/view.js","render":"file:.\/render.php","editorScript":"file:..\/..\/build\/blocks.js"},"beplus-visual-mega-nav\/product-card":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/product-card","title":"Product Card","category":"beplus-vmn","icon":"cover-image","description":"Display WooCommerce products in a card carousel with stacked deck animation. Swipe through products with smooth GSAP-powered transitions.","keywords":["product","woocommerce","carousel","card","mega menu"],"textdomain":"beplus-visual-mega-nav","attributes":{"postsToShow":{"type":"number","default":6,"minimum":3,"maximum":20},"filterBy":{"type":"string","default":"all"},"productCategories":{"type":"array","default":[]},"productTags":{"type":"array","default":[]},"productIds":{"type":"string","default":""},"showPrice":{"type":"boolean","default":true},"showRating":{"type":"boolean","default":false},"showAddToCart":{"type":"boolean","default":true},"showTitle":{"type":"boolean","default":true},"autoplay":{"type":"boolean","default":false},"autoplayDelay":{"type":"number","default":3000},"cardWidth":{"type":"number","default":320,"minimum":180},"imageRatio":{"type":"string","default":"auto","enum":["auto","16-9","4-3","1-1"]}},"supports":{"html":false,"anchor":false,"reusable":false,"multiple":true,"className":false,"spacing":{"padding":true,"margin":true}},"style":"file:.\/style.css","editorStyle":["file:.\/editor.css","file:.\/style.css"],"render":"file:.\/render.php","editorScript":"file:..\/..\/build\/blocks.js","viewScript":"file:.\/view.js"},"beplus-visual-mega-nav\/nav-menu-area":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/nav-menu-area","title":"Menu Area","category":"header","parent":["beplus-visual-mega-nav\/beplus-navigation"],"icon":"list-view","description":"Renders a classic WordPress menu using the existing mega menu engine.","keywords":["menu","navigation","classic menu","beplus"],"textdomain":"beplus-visual-mega-nav","attributes":{"menuId":{"type":"number","default":0}},"usesContext":["beplus-visual-mega-nav\/instanceId"],"supports":{"html":false,"spacing":{"padding":true},"typography":{"fontSize":true,"lineHeight":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true,"__experimentalFontStyle":true,"__experimentalTextTransform":true,"__experimentalLetterSpacing":true}},"render":"file:.\/render.php","style":"file:.\/style.css","editorScript":"file:..\/..\/build\/blocks.js"},"beplus-visual-mega-nav\/tab-panel":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/tab-panel","title":"Tab Panel","category":"beplus-vmn","parent":["beplus-visual-mega-nav\/tab-container"],"description":"A single tab panel for use inside the Tab Container block.","keywords":["tab","panel","mega menu"],"textdomain":"beplus-visual-mega-nav","icon":"category","style":"file:.\/style.css","editorStyle":"file:.\/editor.css","render":"file:.\/render.php","editorScript":"file:..\/..\/build\/blocks.js","supports":{"html":false,"anchor":false,"reusable":false,"multiple":true,"className":false},"attributes":{"tabLabel":{"type":"string","default":""},"tabSubLabel":{"type":"string","default":""},"tabIcon":{"type":"string","default":""},"tabIconColor":{"type":"string","default":""}}},"beplus-visual-mega-nav\/beplus-navigation":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beplus-visual-mega-nav\/beplus-navigation","title":"BePlus Navigation","category":"header","parent":["beplus-visual-mega-nav\/beplus-header","core\/group","core\/column"],"icon":"menu","description":"Flexible navigation container that hosts a classic menu and hamburger toggle.","keywords":["navigation","menu","nav","beplus"],"textdomain":"beplus-visual-mega-nav","attributes":{"overlayId":{"type":"string","default":""},"mobileBreakpoint":{"type":"number","default":782}},"usesContext":["beplus-visual-mega-nav\/instanceId","beplus-visual-mega-nav\/mobileBreakpoint"],"providesContext":{"beplus-visual-mega-nav\/overlayId":"overlayId"},"supports":{"layout":{"type":"flex","allowJustification":true,"allowVerticalAlignment":true},"spacing":{"blockGap":true,"padding":true}},"render":"file:.\/render.php","style":"file:.\/style.css","editorStyle":"file:.\/editor.css","editorScript":"file:..\/..\/build\/blocks.js"}},"tagged_versions":["0.0.10","0.0.11","0.0.12","0.0.13","0.0.25","0.0.7","0.0.8","0.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3605326,"resolution":"1","location":"assets","locale":"","width":1675,"height":913},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3605326,"resolution":"2","location":"assets","locale":"","width":1671,"height":914},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3605326,"resolution":"3","location":"assets","locale":"","width":1161,"height":871},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3605326,"resolution":"4","location":"assets","locale":"","width":1693,"height":954},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3605326,"resolution":"5","location":"assets","locale":"","width":1672,"height":993},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3605326,"resolution":"6","location":"assets","locale":"","width":1029,"height":785}},"screenshots":{"1":"A mega menu panel with four navigation columns, opened on the front end.","2":"A store panel with a featured column and a links column, including badges for support and address details.","3":"The <strong>Mega Menu<\/strong> link added to the actions of a top-level menu item on <strong>Appearance \u2192 Menus<\/strong>.","4":"The <strong>Content Builder<\/strong> tab with the Import template popover, listing built-in templates and the JSON file upload.","5":"Building panel content in the block editor, with the block settings sidebar.","6":"The <strong>BePlus Header Inline \u2014 Logo \/ Menu \/ Toggle<\/strong> pattern in the Site Editor."}},"plugin_section":[],"plugin_tags":[148857,148076,6276,138806,1753],"plugin_category":[43],"plugin_contributors":[256392,245475],"plugin_business_model":[],"class_list":["post-332487","plugin","type-plugin","status-publish","hentry","plugin_tags-block-editor","plugin_tags-gutenberg","plugin_tags-mega-menu","plugin_tags-menu-builder","plugin_tags-navigation","plugin_category-customization","plugin_contributors-bearsthemes","plugin_contributors-miketropi","plugin_committers-bearsthemes","plugin_committers-miketropi"],"banners":{"banner":"https:\/\/ps.w.org\/beplus-visual-mega-nav\/assets\/banner-772x250.png?rev=3605326","banner_2x":"https:\/\/ps.w.org\/beplus-visual-mega-nav\/assets\/banner-1544x500.png?rev=3605326","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/beplus-visual-mega-nav\/assets\/icon-128x128.png?rev=3605326","icon_2x":"https:\/\/ps.w.org\/beplus-visual-mega-nav\/assets\/icon-256x256.png?rev=3605326","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/beplus-visual-mega-nav\/assets\/screenshot-1.jpg?rev=3605326","caption":"A mega menu panel with four navigation columns, opened on the front end."},{"src":"https:\/\/ps.w.org\/beplus-visual-mega-nav\/assets\/screenshot-2.jpg?rev=3605326","caption":"A store panel with a featured column and a links column, including badges for support and address details."},{"src":"https:\/\/ps.w.org\/beplus-visual-mega-nav\/assets\/screenshot-3.jpg?rev=3605326","caption":"The <strong>Mega Menu<\/strong> link added to the actions of a top-level menu item on <strong>Appearance \u2192 Menus<\/strong>."},{"src":"https:\/\/ps.w.org\/beplus-visual-mega-nav\/assets\/screenshot-4.jpg?rev=3605326","caption":"The <strong>Content Builder<\/strong> tab with the Import template popover, listing built-in templates and the JSON file upload."},{"src":"https:\/\/ps.w.org\/beplus-visual-mega-nav\/assets\/screenshot-5.jpg?rev=3605326","caption":"Building panel content in the block editor, with the block settings sidebar."},{"src":"https:\/\/ps.w.org\/beplus-visual-mega-nav\/assets\/screenshot-6.jpg?rev=3605326","caption":"The <strong>BePlus Header Inline \u2014 Logo \/ Menu \/ Toggle<\/strong> pattern in the Site Editor."}],"raw_content":"<!--section=description-->\n<p>Beplus Visual Mega Navigation adds a Gutenberg-powered mega menu builder to <strong>Appearance \u2192 Menus<\/strong>. A top-level (<code>depth-0<\/code>) menu item can get a visual panel designed with the block editor instead of a plain sub-menu, and the panel is rendered on the front end by a menu walker that keeps keyboard and screen-reader behaviour intact.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Visual builder<\/strong> \u2014 design panel content with the block editor: columns, headings, images, buttons, lists, and the plugin's navigation blocks.<\/li>\n<li><strong>Per-item settings<\/strong> \u2014 enable or disable the panel, panel width, custom width, panel position, and open animation for each top-level menu item.<\/li>\n<li><strong>Starter templates<\/strong> \u2014 apply a ready-made layout from the template store, import a JSON file, or export the current design.<\/li>\n<li><strong>Block patterns<\/strong> \u2014 the <strong>BePlus Header Inline \u2014 Logo \/ Menu \/ Toggle<\/strong> pattern is available in the Site Editor for block themes.<\/li>\n<li><strong>Root-level only<\/strong> \u2014 only top-level menu items can host a mega panel.<\/li>\n<li><strong>Accessible front end<\/strong> \u2014 the front-end script manages <code>aria-haspopup<\/code>, <code>aria-expanded<\/code>, and <code>aria-controls<\/code>; Escape closes an open panel and moving focus out of the panel closes it.<\/li>\n<li><strong>Theme friendly<\/strong> \u2014 panel markup uses <code>beplus-vmn-*<\/code> classes and <code>--beplus-vmn-mega-*<\/code> CSS custom properties, and the width mode is exposed as <code>has-mega-menu--{width}<\/code> on the menu item.<\/li>\n<li><strong>Nothing extra in the database<\/strong> \u2014 settings and content are stored in <code>nav_menu_item<\/code> post meta, and the legacy <code>_jemented_megamenu_*<\/code> keys are still read on migrated sites.<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.0 or higher.<\/li>\n<li>PHP 8.0 or higher.<\/li>\n<li>WooCommerce \u2014 optional, required by the <strong>Product List<\/strong> and <strong>Product Card<\/strong> blocks.<\/li>\n<li>Node.js \u2014 development builds only; the required version is pinned in <code>.nvmrc<\/code> (currently 24).<\/li>\n<\/ul>\n\n<h4>Getting started<\/h4>\n\n<ol>\n<li>Go to <strong>Appearance \u2192 Menus<\/strong> and open (or create) a menu.<\/li>\n<li>Click <strong>Mega Menu<\/strong> on a top-level menu item. The <strong>Mega Menu Builder<\/strong> opens for that item only.<\/li>\n<li>On the <strong>Settings<\/strong> tab, turn on <strong>Enable Mega Menu<\/strong> and choose the panel width, position, and open animation.<\/li>\n<li>Switch to the <strong>Content Builder<\/strong> tab and build the panel with the block editor.<\/li>\n<li>Use <strong>Import<\/strong> or <strong>Export<\/strong> in the modal header to apply a starter template or download the current design as JSON.<\/li>\n<li>Click <strong>Save<\/strong>.<\/li>\n<\/ol>\n\n<h4>Mega menu templates<\/h4>\n\n<p>Templates are JSON files discovered from these locations. When the same slug exists in more than one place, the last location wins.<\/p>\n\n<ul>\n<li><strong>Plugin<\/strong> \u2014 <code>beplus-visual-mega-nav\/templates\/*.json<\/code> (lowest priority).<\/li>\n<li><strong>Parent theme<\/strong> \u2014 <code>{theme}\/mega-menu-templates\/*.json<\/code>.<\/li>\n<li><strong>Child theme<\/strong> \u2014 <code>{child-theme}\/mega-menu-templates\/*.json<\/code> (highest priority).<\/li>\n<\/ul>\n\n<p>Built-in templates:<\/p>\n\n<ul>\n<li><code>featured-with-links<\/code> \u2014 Featured + Links.<\/li>\n<li><code>mega-4-columns<\/code> \u2014 4 Columns.<\/li>\n<li><code>blog-and-quote-2-cols<\/code> \u2014 Quotes + blog list.<\/li>\n<li><code>hero-artwork-3-cols<\/code> \u2014 Hero Artwork 3 cols.<\/li>\n<\/ul>\n\n<p>A theme file with the same slug as a plugin template replaces the plugin version in the <strong>Import<\/strong> dropdown. Exported files use the same format, so you can drop an export into <code>mega-menu-templates\/<\/code> and add a <code>slug<\/code> to publish it in the store.<\/p>\n\n<h4>Template file format<\/h4>\n\n<p>Each template is a single JSON object:<\/p>\n\n<pre><code>{\n  \"slug\": \"my-custom-menu\",\n  \"title\": \"My Custom Menu\",\n  \"description\": \"Optional short description shown in the Import dropdown.\",\n  \"version\": \"1.0.0\",\n  \"settings\": {\n    \"width\": \"full\",\n    \"customWidth\": 1200,\n    \"position\": \"item-left\",\n    \"bgColor\": \"\",\n    \"animation\": \"fade\"\n  },\n  \"content\": \"Serialized block markup\"\n}\n<\/code><\/pre>\n\n<p>Fields:<\/p>\n\n<ul>\n<li><code>slug<\/code> \u2014 used as the filename (<code>{slug}.json<\/code>); falls back to the filename without <code>.json<\/code>.<\/li>\n<li><code>title<\/code> \u2014 label shown in the Import dropdown.<\/li>\n<li><code>description<\/code> \u2014 optional text shown under the title.<\/li>\n<li><code>version<\/code> \u2014 template metadata only.<\/li>\n<li><code>settings<\/code> \u2014 optional panel settings applied with the template.<\/li>\n<li><code>content<\/code> \u2014 <strong>required<\/strong>, serialized block markup in the same format that is saved to the menu item.<\/li>\n<\/ul>\n\n<p>Panel settings keys:<\/p>\n\n<ul>\n<li><code>width<\/code> \u2014 <code>full<\/code> or <code>custom<\/code>.<\/li>\n<li><code>customWidth<\/code> \u2014 panel width in pixels when <code>width<\/code> is <code>custom<\/code> (200\u20132400, default 780).<\/li>\n<li><code>position<\/code> \u2014 <code>item-left<\/code>, <code>item-center<\/code>, or <code>screen-center<\/code> (used with a custom width).<\/li>\n<li><code>bgColor<\/code> \u2014 panel background color as a hex value.<\/li>\n<li><code>animation<\/code> \u2014 <code>fade<\/code>, <code>slide<\/code>, or <code>none<\/code>.<\/li>\n<\/ul>\n\n<p>Template content is sanitized on load with the same rules as saved mega menu content, so only blocks from the allowed list below are kept.<\/p>\n\n<h4>Included blocks<\/h4>\n\n<p>Core blocks available in the Content Builder: Columns, Column, Group, Row, Stack, Heading, Paragraph, List, List item, Image, Buttons, Button, Separator, Spacer, Cover, Page List, Shortcode, and Custom HTML.<\/p>\n\n<p>Blocks added by this plugin:<\/p>\n\n<ul>\n<li><strong>Menu List<\/strong> and <strong>Menu Item<\/strong> \u2014 navigation lists with current-page detection, active state styling, and badges.<\/li>\n<li><strong>Link Item<\/strong> \u2014 single navigation link with an optional description and badge.<\/li>\n<li><strong>Tab Container<\/strong> and <strong>Tab Panel<\/strong> \u2014 tabbed mega menu content, vertical sidebar or horizontal top bar.<\/li>\n<li><strong>BePlus Header<\/strong> and <strong>BePlus Navigation<\/strong> \u2014 header container with sticky and scroll effects, plus a classic menu with hamburger toggle.<\/li>\n<li><strong>Menu Area<\/strong> \u2014 renders a classic WordPress menu inside the panel using the mega menu engine.<\/li>\n<li><strong>Nav Toggle<\/strong> \u2014 hamburger button that opens the mobile navigation overlay.<\/li>\n<li><strong>Hero Artwork Dock<\/strong>, <strong>Blog List<\/strong>, <strong>Quote<\/strong>, <strong>Product List<\/strong>, and <strong>Product Card<\/strong> \u2014 content blocks for promotional panels.<\/li>\n<\/ul>\n\n<p>Third-party blocks appear in the Content Builder once they are registered, and you can allow them with the <code>beplus_vmn_allowed_blocks<\/code> filter.<\/p>\n\n<h4>REST API<\/h4>\n\n<p>The admin screen uses these routes. All of them require the <code>edit_theme_options<\/code> capability.<\/p>\n\n<ul>\n<li><code>GET \/wp-json\/beplus-visual-mega-nav\/v1\/item\/{id}<\/code> \u2014 read <code>enabled<\/code>, <code>settings<\/code>, and <code>content<\/code> for a menu item.<\/li>\n<li><code>POST \/wp-json\/beplus-visual-mega-nav\/v1\/item\/{id}<\/code> \u2014 save <code>enabled<\/code>, <code>settings<\/code>, and <code>content<\/code>.<\/li>\n<li><code>GET \/wp-json\/beplus-visual-mega-nav\/v1\/templates<\/code> \u2014 list template summaries (slug, title, description, source).<\/li>\n<li><code>GET \/wp-json\/beplus-visual-mega-nav\/v1\/templates\/{slug}<\/code> \u2014 load one template, including <code>settings<\/code> and <code>content<\/code>.<\/li>\n<\/ul>\n\n<h4>Developer hooks<\/h4>\n\n<p>Filters provided by the plugin:<\/p>\n\n<ul>\n<li><code>beplus_vmn_locations<\/code> \u2014 theme locations that use the mega menu walker (default <code>primary<\/code>, <code>main-menu<\/code>, <code>header<\/code>).<\/li>\n<li><code>beplus_vmn_apply_walker<\/code> \u2014 force the walker on or off for a given <code>wp_nav_menu()<\/code> call; return <code>true<\/code> or <code>false<\/code>.<\/li>\n<li><code>beplus_vmn_allowed_blocks<\/code> \u2014 block names allowed in the Content Builder.<\/li>\n<li><code>beplus_vmn_template_directories<\/code> \u2014 template scan directories, keyed by source label.<\/li>\n<li><code>beplus_vmn_templates<\/code> \u2014 template list returned to the admin UI, keyed by slug.<\/li>\n<li><code>beplus_vmn_template_data<\/code> \u2014 a single template before it is returned by the REST API.<\/li>\n<li><code>beplus_vmn_template_part_content<\/code> \u2014 markup of a bundled block pattern before it is registered.<\/li>\n<li><code>beplus_vmn_link_item_attributes<\/code> \u2014 Link Item block attributes before rendering.<\/li>\n<li><code>beplus_vmn_link_item_render_markup<\/code> \u2014 rendered Link Item HTML.<\/li>\n<li><code>beplus_vmn_link_item_badge_variants<\/code> \u2014 allowed badge variant slugs.<\/li>\n<\/ul>\n\n<p>Example: adding a custom block to the Content Builder.<\/p>\n\n<pre><code>add_filter( 'beplus_vmn_allowed_blocks', function ( array $blocks ): array {\n    $blocks[] = 'my-plugin\/featured-card';\n    return $blocks;\n} );\n<\/code><\/pre>\n\n<p>Example: adding a template directory.<\/p>\n\n<pre><code>add_filter( 'beplus_vmn_template_directories', function ( array $directories ): array {\n    $directories['my-plugin'] = plugin_dir_path( __FILE__ ) . 'mega-menu-templates';\n    return $directories;\n} );\n<\/code><\/pre>\n\n<h4>Data storage<\/h4>\n\n<p>Each menu item stores three meta values on the <code>nav_menu_item<\/code> post:<\/p>\n\n<ul>\n<li><code>_beplus_vmn_enabled<\/code> \u2014 whether the item renders a mega panel.<\/li>\n<li><code>_beplus_vmn_settings<\/code> \u2014 JSON string with the panel settings listed above.<\/li>\n<li><code>_beplus_vmn_content<\/code> \u2014 serialized block markup.<\/li>\n<\/ul>\n\n<h4>Development<\/h4>\n\n<ul>\n<li><code>npm run start<\/code> \u2014 watch admin assets.<\/li>\n<li><code>npm run build<\/code> \u2014 production build into <code>build\/<\/code>.<\/li>\n<li><code>composer check<\/code> \u2014 PHP lint, PHPCS, PHPStan.<\/li>\n<li><code>npm run check:js<\/code> \u2014 ESLint and Stylelint.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New Plugin<\/strong>, search for <strong>Beplus Visual Mega Navigation<\/strong>, then click <strong>Install Now<\/strong> and <strong>Activate<\/strong>.<\/li>\n<li>Alternatively, download the plugin ZIP, go to <strong>Plugins \u2192 Add New Plugin \u2192 Upload Plugin<\/strong>, choose the file, and click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Open <strong>Appearance \u2192 Menus<\/strong>, add or edit a top-level menu item, and click <strong>Mega Menu<\/strong>.<\/li>\n<\/ol>\n\n<p>From a source checkout, run <code>composer install<\/code>, <code>npm install<\/code>, and <code>npm run build<\/code> inside the plugin folder before activating it.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20mega%20menu%20work%20on%20sub-menu%20items%3F\"><h3>Does the mega menu work on sub-menu items?<\/h3><\/dt>\n<dd><p>No. Mega panels are root-level only \u2014 the <strong>Mega Menu<\/strong> button is added to top-level (<code>depth-0<\/code>) menu items.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20my%20theme%27s%20menu%20location%3F\"><h3>How do I add my theme's menu location?<\/h3><\/dt>\n<dd><p>The panel walker runs for the <code>primary<\/code>, <code>main-menu<\/code>, and <code>header<\/code> theme locations. Add your own location with the <code>beplus_vmn_locations<\/code> filter:<\/p>\n\n<pre><code>add_filter( 'beplus_vmn_locations', function ( array $locations ): array {\n    $locations[] = 'your-theme-location';\n    return $locations;\n} );\n<\/code><\/pre><\/dd>\n<dt id=\"can%20i%20use%20my%20own%20blocks%20in%20the%20content%20builder%3F\"><h3>Can I use my own blocks in the Content Builder?<\/h3><\/dt>\n<dd><p>Yes. Register the block, then allow it with the <code>beplus_vmn_allowed_blocks<\/code> filter:<\/p>\n\n<pre><code>add_filter( 'beplus_vmn_allowed_blocks', function ( array $blocks ): array {\n    $blocks[] = 'my-plugin\/featured-card';\n    return $blocks;\n} );\n<\/code><\/pre><\/dd>\n<dt id=\"where%20is%20the%20mega%20menu%20content%20stored%3F\"><h3>Where is the mega menu content stored?<\/h3><\/dt>\n<dd><p>In post meta on the menu item itself: <code>_beplus_vmn_enabled<\/code>, <code>_beplus_vmn_settings<\/code>, and <code>_beplus_vmn_content<\/code>. Nothing is copied into other posts or options.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20mega%20menus%20if%20i%20deactivate%20the%20plugin%3F\"><h3>What happens to my mega menus if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>Nothing is deleted. Deactivating removes the editor and the front-end panel rendering; reactivating restores them with the saved content.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20block%20theme%3F\"><h3>Do I need a block theme?<\/h3><\/dt>\n<dd><p>No. The builder works with classic themes and block themes. Block themes additionally get the <strong>BePlus Header Inline<\/strong> pattern in the Site Editor.<\/p><\/dd>\n<dt id=\"why%20is%20the%20product%20list%20or%20product%20card%20block%20empty%3F\"><h3>Why is the Product List or Product Card block empty?<\/h3><\/dt>\n<dd><p>Those two blocks read WooCommerce data and show a notice when WooCommerce is not active. Install and activate WooCommerce, then add products to the panel.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.0.25<\/h4>\n\n<ul>\n<li>New <strong>Menu List<\/strong> and <strong>Menu Item<\/strong> blocks with current-page detection, active states, and badges.<\/li>\n<li>New panel settings: default and custom panel width, plus panel position (aligned with the menu item, centered on the menu item, or centered on the screen).<\/li>\n<li>Panel markup now exposes <code>data-width<\/code>, <code>data-custom-width<\/code>, <code>data-position<\/code>, and width modifier classes for theme styling.<\/li>\n<li>Fixed mega menu panels not loading correctly on some menus.<\/li>\n<\/ul>\n\n<h4>0.0.13<\/h4>\n\n<ul>\n<li>New starter templates: <strong>Quotes + blog list<\/strong> and <strong>Hero Artwork 3 cols<\/strong>.<\/li>\n<li>Added GitHub contribution and release automation.<\/li>\n<\/ul>\n\n<h4>0.0.12<\/h4>\n\n<ul>\n<li>New <strong>Product List<\/strong> and <strong>Product Card<\/strong> blocks for WooCommerce, using GSAP for the stacked deck animation.<\/li>\n<li>Updated the Quote block.<\/li>\n<\/ul>\n\n<h4>0.0.11<\/h4>\n\n<ul>\n<li>New <strong>Hero Artwork Dock<\/strong> and <strong>Blog List<\/strong> blocks; reworked <strong>BePlus Navigation<\/strong> and <strong>BePlus Header<\/strong>.<\/li>\n<li>Fixed the ordering of the Hero Artwork block.<\/li>\n<li>Resolved JavaScript, CSS, and PHP lint errors in the Quote block.<\/li>\n<\/ul>\n\n<h4>0.0.10<\/h4>\n\n<ul>\n<li>Fixed some PHP issues.<\/li>\n<li>Improved the backend editor.<\/li>\n<li>Fixed the theme header hover mega menu and menu walker handling when a <code>WP_Term<\/code> object is passed.<\/li>\n<\/ul>\n\n<h4>0.0.9<\/h4>\n\n<ul>\n<li>New <strong>Block<\/strong> tab in the mega menu modal for improved block management.<\/li>\n<\/ul>\n\n<h4>0.0.7<\/h4>\n\n<ul>\n<li>Fixed WordPress.org review feedback and classic menu rendering in the <strong>Menu Area<\/strong> block.<\/li>\n<\/ul>\n\n<h4>0.0.6<\/h4>\n\n<ul>\n<li>New <strong>BePlus Header<\/strong> block and the <strong>BePlus Header Inline<\/strong> pattern.<\/li>\n<li>WordPress.org plugin check fixes and code quality tooling.<\/li>\n<\/ul>\n\n<h4>0.0.5<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Build mega menu panels visually with the WordPress block editor: per-item settings, starter templates, and accessible front-end output.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/332487","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=332487"}],"author":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bearsthemes"}],"wp:attachment":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=332487"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=332487"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=332487"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=332487"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=332487"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=332487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}