[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fqpNK8Tu7P52wITSY8iHk8MMIA9Dmwr5uYuB5Gdg83ak":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":29,"last_vuln_date":30,"fetched_at":31,"vulnerabilities":32,"developer":60,"crawl_stats":38,"alternatives":68,"analysis":166,"fingerprints":500},"if-menu","If Menu – Visibility control for Menus","0.19.2","Andrei","https:\u002F\u002Fprofiles.wordpress.org\u002Fandreiigna\u002F","\u003Cp>Control what menu items your site’s visitors see, with visibility rules. Here are a few examples:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Display a menu item only if \u003Ccode>User is logged in\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Hide menus if \u003Ccode>Device is mobile\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Display menus only for \u003Ccode>Admins and Editors\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Hide Login or Register links for \u003Ccode>Logged in Users\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Display menus for \u003Ccode>Users from US or UK\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Display menus only for \u003Ccode>Customers with active membership\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Display menus for visitors browsing with \u003Ccode>Language English or Spanish\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>After the plugin is enabled, each menu item will have a new option “Change menu item visibility” which will enable the selection of visibility rules.\u003C\u002Fp>\n\u003Cp>Check the examples in screenshots or try it here \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> \u003Ca href=\"https:\u002F\u002Fdemos.layered.store\" rel=\"nofollow ugc\">demos.layered.store\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Basic set of visibility rules\n\u003Cul>\n\u003Cli>User state \u003Ccode>User is logged in\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>User roles \u003Ccode>Admin\u003C\u002Fcode> \u003Ccode>Editor\u003C\u002Fcode> \u003Ccode>Author\u003C\u002Fcode> etc\u003C\u002Fli>\n\u003Cli>Page type \u003Ccode>Front page\u003C\u002Fcode> \u003Ccode>Single page\u003C\u002Fcode> \u003Ccode>Single post\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Is Archive page (year, category, search results, etc)\u003C\u002Fli>\n\u003Cli>Visitor device \u003Ccode>Is Mobile\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Advanced visibility rules – requires \u003Ca href=\"https:\u002F\u002Flayered.store\u002Fplugins\u002Fmore-visibility-rules\" rel=\"nofollow ugc\">More Visibility Rules Add-on\u003C\u002Fa>\n\u003Cul>\n\u003Cli>Visitor location – detect visitor’s Country\u003C\u002Fli>\n\u003Cli>Visitor language – detect visitor’s selected Language\u003C\u002Fli>\n\u003Cli>WooCommerce Subscriptions – Display menus for users with active subscription\u003C\u002Fli>\n\u003Cli>WooCommerce Memberships – Display menus for customers with active membership plans\u003C\u002Fli>\n\u003Cli>Groups – Detect if users are in specific groups\u003C\u002Fli>\n\u003Cli>WishList Member – Detect the users’ membership level\u003C\u002Fli>\n\u003Cli>Restrict Content Pro – Detect the users’ subscription level\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Multiple rules – mix multiple rules for a menu item visibility\n\u003Cul>\n\u003Cli>show if \u003Ccode>User is logged in\u003C\u002Fcode> AND \u003Ccode>Device is mobile\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>show if \u003Ccode>User is Admin\u003C\u002Fcode> AND \u003Ccode>Is front page\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Support for \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fif-menu\u002F#how%20can%20i%20add%20a%20custom%20visibility%20rule%20for%20menu%20items%3F\" rel=\"ugc\">adding your custom rules\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Display tailored menu items to each visitor with visibility rules",60000,1091591,82,130,"2024-12-05T12:43:00.000Z","6.7.5","","6.0",[20,21,22,23,24],"hide","menu","roles","rules","visibility","https:\u002F\u002Flayered.store\u002Fplugins\u002Fif-menu","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fif-menu.0.19.2.zip",91,2,0,"2024-12-06 00:00:00","2026-03-15T15:16:48.613Z",[33,48],{"id":34,"url_slug":35,"title":36,"description":37,"plugin_slug":4,"theme_slug":38,"affected_versions":39,"patched_in_version":6,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":30,"updated_date":44,"references":45,"days_to_patch":47},"CVE-2024-7894","if-menu-missing-authorization-to-license-key-update","If Menu \u003C= 0.19.1 - Missing Authorization to License Key Update","The If Menu plugin for WordPress is vulnerable to unauthorized modification of the plugin's license key due to a missing capability check on the 'actions' function in versions up to, and including, 0.19.1. This makes it possible for unauthenticated attackers to modify delete or modify the license key.",null,"\u003C=0.19.1","medium",5.3,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:N\u002FI:L\u002FA:N","Missing Authorization","2024-12-07 01:45:53",[46],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fff6ebf45-4617-44dd-94d8-28aa8bc1609b?source=api-prod",1,{"id":49,"url_slug":50,"title":51,"description":52,"plugin_slug":4,"theme_slug":38,"affected_versions":53,"patched_in_version":54,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":55,"updated_date":56,"references":57,"days_to_patch":59},"CVE-2022-41698","if-menu-missing-authorization-to-admin-settings-modification","If Menu \u003C= 0.16.3 - Missing Authorization to Admin Settings Modification","The If Menu plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the 'action' function in versions up to, and including, 0.16.3. This makes it possible for unauthenticated attackers to modify admin settings.","\u003C=0.16.3","0.17","2023-03-22 00:00:00","2024-01-22 19:56:02",[58],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F3b5fc0ac-7a33-48da-8b0f-566b9eb0f17f?source=api-prod",307,{"slug":61,"display_name":7,"profile_url":8,"plugin_count":62,"total_installs":63,"avg_security_score":64,"avg_patch_time_days":65,"trust_score":66,"computed_at":67},"andreiigna",3,61100,89,154,71,"2026-04-04T06:45:15.722Z",[69,87,112,132,150],{"slug":70,"name":71,"version":72,"author":7,"author_profile":8,"description":73,"short_description":74,"active_installs":75,"downloaded":76,"rating":77,"num_ratings":78,"last_updated":79,"tested_up_to":80,"requires_at_least":17,"requires_php":81,"tags":82,"homepage":84,"download_link":85,"security_score":86,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"if-widget","If Widget – Visibility control for Widgets","0.5","\u003Cp>With \u003Ca href=\"https:\u002F\u002Flayered.market\u002Fplugins\u002Fif-widget\" rel=\"nofollow ugc\">If Widget\u003C\u002Fa> you can control on which pages widgets are shown. Show or hide widgets with custom visibility rules (no PHP or technical knowledge required).\u003C\u002Fp>\n\u003Cp>The plugin is easy to use, each widget will have a new option “Show widget only if” which will enable the selection of visibility rules (example in Screenshots). Visibility rules can be combined with \u003Ccode>AND\u003C\u002Fcode>\u002F\u003Ccode>OR\u003C\u002Fcode> to create even more personalised visibility options.\u003C\u002Fp>\n\u003Ch4>Examples\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Display a widget only if \u003Cstrong>User is logged in\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Hide widgets if \u003Cstrong>Is mobile device\u003C\u002Fstrong> \u003Ccode>OR\u003C\u002Fcode> \u003Cstrong>Visitor is from US\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Display widgets only for \u003Cstrong>Admins and Editors\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Hide Login or Register widgets for \u003Cstrong>Logged in Users\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Show widget only for \u003Cstrong>Admins\u003C\u002Fstrong> \u003Ccode>AND\u003C\u002Fcode> \u003Cstrong>Is not mobile device\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Visibility Rules\u003C\u002Fh4>\n\u003Cp>These are the visibility rules you can add for widgets:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>User state: \u003Ccode>User is logged in\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>User role: \u003Ccode>User is Admin or Editor\u003C\u002Fcode> (plus all the available roles)\u003C\u002Fli>\n\u003Cli>User registration: \u003Ccode>User registration is allowed\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Post type: \u003Ccode>Current post type is Post or Product\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Page type: \u003Ccode>Current page is Front Page or Blog Page\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>URL: \u003Ccode>Current URL starts\u002Fends with \"this-page\"\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>URL: \u003Ccode>Current URL contains with \"keyword\"\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Device detection: \u003Ccode>Is mobile device\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Visitor location: \u003Ccode>Visitor is from US or Spain\u003C\u002Fcode> ✱\u003C\u002Fli>\n\u003Cli>Visitor language: \u003Ccode>Visitor language is English or Spanish\u003C\u002Fcode> ✱\u003C\u002Fli>\n\u003Cli>Third-party plugin integrations: \u003Ccode>Show if user is in Group \"Group Name\"\u003C\u002Fcode>, \u003Ccode>Show if user has Subscription \"Example Subscription\"\u003C\u002Fcode> and more ✱\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>More Visibility Rules Add-on\u003C\u002Fh4>\n\u003Cp>The paid Add-on provides more visibility rules and priority support.\u003Cbr \u002F>\n\u003Cstrong>Visibility Rules\u003C\u002Fstrong>: unlock all visibility rules like: visitor location, membership status, user groups and more. A few examples are marked with ✱ above.\u003Cbr \u002F>\n\u003Cstrong>Support\u003C\u002Fstrong>: get one-on-one email support for any questions you may have about installing and configuring our plugins.\u003Cbr \u002F>\nGet \u003Ca href=\"https:\u002F\u002Flayered.market\u002Fplugins\u002Fmore-visibility-rules\" rel=\"nofollow ugc\">More Visibility Rules\u003C\u002Fa>.\u003C\u002Fp>\n","Control what widgets your site’s visitors see, with custom visibility rules",1000,14504,88,9,"2021-01-18T10:49:00.000Z","5.6.17","5.6",[20,22,23,24,83],"widget","https:\u002F\u002Flayered.market\u002Fplugins\u002Fif-widget","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fif-widget.zip",85,{"slug":88,"name":89,"version":90,"author":91,"author_profile":92,"description":93,"short_description":94,"active_installs":95,"downloaded":96,"rating":13,"num_ratings":97,"last_updated":98,"tested_up_to":99,"requires_at_least":100,"requires_php":101,"tags":102,"homepage":108,"download_link":109,"security_score":110,"vuln_count":47,"unpatched_count":29,"last_vuln_date":111,"fetched_at":31},"different-menus-in-different-pages","Different Menu in Different Pages – Conditional Menu","2.4.5","recorp","https:\u002F\u002Fprofiles.wordpress.org\u002Frecorp\u002F","\u003Cp>\u003Cstrong>Different Menu in Different Pages\u003C\u002Fstrong> lets you control menu visibility with flexible conditional rules.\u003Cbr \u002F>\nDisplay unique navigation menus based on \u003Cstrong>pages, posts, categories, tags, templates, user roles, devices,\u003C\u002Fstrong> and more — creating a fully personalized user experience.\u003C\u002Fp>\n\u003Cp>For example:\u003Cbr \u002F>\n– Show one menu on your homepage and a different one on product pages.\u003Cbr \u002F>\n– Display menus only for logged-in users or specific user roles.\u003Cbr \u002F>\n– Assign menus dynamically by URL patterns, post types, or page templates.\u003C\u002Fp>\n\u003Ch3>🎯 Key Features\u003C\u002Fh3>\n\u003Cp>✓ Show menus to \u003Cstrong>logged-in\u003C\u002Fstrong>, \u003Cstrong>logged-out\u003C\u002Fstrong>, or \u003Cstrong>all\u003C\u002Fstrong> users.\u003Cbr \u002F>\n✓ Restrict menus by \u003Cstrong>user roles\u003C\u002Fstrong> or exclude certain roles.\u003Cbr \u002F>\n✓ Insert dynamic data in menu items using shortcodes:\u003Cbr \u002F>\n      {username}, \u003Ccode>{display_name}\u003C\u002Fcode>, \u003Ccode>{first_name}\u003C\u002Fcode>, \u003Ccode>{last_name}\u003C\u002Fcode>, \u003Ccode>{nickname}\u003C\u002Fcode>, \u003Ccode>{email}\u003C\u002Fcode>, \u003Ccode>{avatar}\u003C\u002Fcode> (with size options).\u003Cbr \u002F>\n✓ Create \u003Cstrong>unlimited conditional menus\u003C\u002Fstrong> from the settings page.\u003Cbr \u002F>\n✓ Assign menus by \u003Cstrong>exact URL\u003C\u002Fstrong>, \u003Cstrong>page ID\u003C\u002Fstrong>, \u003Cstrong>slug\u003C\u002Fstrong>, or \u003Cstrong>URL pattern\u003C\u002Fstrong> (\u003Ccode>%keyword%\u003C\u002Fcode>).\u003Cbr \u002F>\n✓ Assign menus to \u003Cstrong>special pages\u003C\u002Fstrong> (Home, Front Page, Blog, 404, Search).\u003Cbr \u002F>\n✓ Support for \u003Cstrong>RTL\u003C\u002Fstrong> (right-to-left) layouts.\u003Cbr \u002F>\n✓ Duplicate any existing menu using the \u003Cstrong>Menu Duplicator\u003C\u002Fstrong> tool.\u003Cbr \u002F>\n✓ Modern AJAX-based interface for fast settings updates.\u003C\u002Fp>\n\u003Ch3>🌟 Pro Features\u003C\u002Fh3>\n\u003Cp>The \u003Cstrong>Pro version\u003C\u002Fstrong> includes even more control and flexibility:\u003C\u002Fp>\n\u003Cp>✓ Assign menus for \u003Cstrong>specific devices\u003C\u002Fstrong> (desktop, mobile, tablet) or \u003Cstrong>operating systems\u003C\u002Fstrong> (Android, iOS).\u003Cbr \u002F>\n✓ Create \u003Cstrong>multilingual or country-specific\u003C\u002Fstrong> menus (no extra plugins needed).\u003Cbr \u002F>\n✓ Quick \u003Cstrong>search filter\u003C\u002Fstrong> for settings.\u003Cbr \u002F>\n✓ Assign menus directly from the \u003Cstrong>post\u002Fpage editor\u003C\u002Fstrong>.\u003Cbr \u002F>\n✓ \u003Cstrong>Backup & Restore\u003C\u002Fstrong> menu rules easily.\u003Cbr \u002F>\n✓ Temporarily \u003Cstrong>disable\u003C\u002Fstrong> a menu without deleting it.\u003Cbr \u002F>\n✓ \u003Cstrong>Unlimited conditional menus\u003C\u002Fstrong> support.\u003Cbr \u002F>\n✓ \u003Cstrong>Elementor header\u002Ffooter\u003C\u002Fstrong> navigation compatibility.\u003C\u002Fp>\n\u003Cp>👉 \u003Cstrong>Upgrade to the Pro version\u003C\u002Fstrong> for advanced functionality at \u003Ca href=\"https:\u002F\u002Fmyrecorp.com\" rel=\"nofollow ugc\">myrecorp.com\u003C\u002Fa>.\u003C\u002Fp>\n","Easily assign different menus to pages, posts, user roles, devices, and custom URLs using advanced conditional menu visibility rules.",4000,62783,20,"2025-10-19T13:10:00.000Z","6.8.5","5.1","5.4",[103,104,105,106,107],"conditional-menu","different-menu","menu-visibility","navigation","user-roles","https:\u002F\u002Fmyrecorp.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdifferent-menus-in-different-pages.2.4.5.zip",99,"2024-04-29 00:00:00",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":75,"downloaded":120,"rating":121,"num_ratings":62,"last_updated":122,"tested_up_to":99,"requires_at_least":123,"requires_php":124,"tags":125,"homepage":130,"download_link":131,"security_score":121,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"menu-by-user-roles","Menu By User Roles","2.0.4","kahnu044","https:\u002F\u002Fprofiles.wordpress.org\u002Fkahnu044\u002F","\u003Cp>Menu By User Roles is a WordPress plugin that allows you to control the visibility of menu items based on user roles. You can assign specific user roles to each menu item, ensuring that only users with those roles can see and access the corresponding links.\u003C\u002Fp>\n\u003Cp>For more information and usage instructions, visit the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkahnu044\u002Fmenu-by-user-roles\" rel=\"nofollow ugc\">GitHub Repository\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support and inquiries, please \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkahnu044\u002Fmenu-by-user-roles\u002Fissues\" rel=\"nofollow ugc\">open an issue on GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is released under the GPL-2.0+ License. See \u003Ccode>LICENSE\u003C\u002Fcode> for more information.\u003C\u002Fp>\n\u003Ch3>Author\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkahnu044\" rel=\"nofollow ugc\">Kahnu Charan Swain\u003C\u002Fa>\u003C\u002Fp>\n","Menu By User Roles allows you to control the visibility of menu items based on user roles.",8453,100,"2025-10-02T15:41:00.000Z","5.0","7.0",[126,127,128,129,107],"access-control","role-based-menus","site-navigation","tags-menu-visibility","https:\u002F\u002Fgithub.com\u002Fkahnu044\u002Fmenu-by-user-roles","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmenu-by-user-roles.2.0.4.zip",{"slug":133,"name":134,"version":135,"author":136,"author_profile":137,"description":138,"short_description":139,"active_installs":140,"downloaded":141,"rating":121,"num_ratings":62,"last_updated":142,"tested_up_to":143,"requires_at_least":144,"requires_php":145,"tags":146,"homepage":148,"download_link":149,"security_score":121,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"menu-visibility-control","Menu Visibility Control","1.0.9","Davis Simiyu Wanyonyi","https:\u002F\u002Fprofiles.wordpress.org\u002Fdavisw3\u002F","\u003Cp>\u003Cstrong>Menu Visibility Control\u003C\u002Fstrong> is a lightweight, privacy-friendly WordPress plugin that lets you decide exactly \u003Cstrong>who sees each menu item\u003C\u002Fstrong>, directly inside the WordPress menu editor.\u003C\u002Fp>\n\u003Cp>No settings pages.\u003Cbr \u002F>\nNo lock-in.\u003Cbr \u002F>\nNo performance overhead.\u003C\u002Fp>\n\u003Cp>Everything is managed where it belongs: \u003Cstrong>Appearance \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Menus\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch3>👁️ Visibility Options Per Menu Item\u003C\u002Fh3>\n\u003Cp>You can control visibility based on:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>👥 Everyone\u003C\u002Fli>\n\u003Cli>🔒 Logged-in users\u003C\u002Fli>\n\u003Cli>🚪 Logged-out users\u003C\u002Fli>\n\u003Cli>🧩 Specific user roles (Administrator, Editor, Subscriber, etc.)\u003C\u002Fli>\n\u003Cli>📱 Device type (Desktop \u002F Tablet \u002F Mobile)\u003C\u002Fli>\n\u003Cli>📄 Specific pages (auto-detected list)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>All conditions are optional and safely combined.\u003C\u002Fp>\n\u003Ch3>💡 Perfect For\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Membership and community websites\u003C\u002Fli>\n\u003Cli>Client dashboards and intranets\u003C\u002Fli>\n\u003Cli>Multi-role WordPress sites\u003C\u002Fli>\n\u003Cli>Sites with mobile-specific navigation\u003C\u002Fli>\n\u003Cli>Blogs that need different menus for visitors vs members\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🔧 Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Native integration with \u003Cstrong>Appearance \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Menus\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Works with \u003Cstrong>any theme or page builder\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Role-based menu visibility\u003C\u002Fli>\n\u003Cli>Device-based menu visibility\u003C\u002Fli>\n\u003Cli>Page-specific menu visibility\u003C\u002Fli>\n\u003Cli>Auto-hidden UI (only shows options when enabled)\u003C\u002Fli>\n\u003Cli>Secure (nonces, sanitization, strict validation)\u003C\u002Fli>\n\u003Cli>Performance-optimized (runs only during menu rendering)\u003C\u002Fli>\n\u003Cli>100% free, open-source, and donation-supported\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🧠 Why Use Menu Visibility Control?\u003C\u002Fh3>\n\u003Cp>Unlike large menu or membership plugins, this plugin:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Uses \u003Cstrong>only WordPress core hooks\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Stores \u003Cstrong>minimal metadata\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Is compatible with caching, multilingual sites, and block themes\u003C\u002Fli>\n\u003Cli>Does not track users or collect data\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>It does one thing — and does it well.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Need help or want to share feedback?\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Visit the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fmenu-visibility-control\u002F\" rel=\"ugc\">support forum\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Leave a \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fmenu-visibility-control\u002Freviews\u002F#new-post\" rel=\"ugc\">review\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Support development via \u003Ca href=\"https:\u002F\u002Fknowledge.buzz\u002Fdonate\" rel=\"nofollow ugc\">donation\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the \u003Cstrong>GPL v2 or later\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>You are free to use, modify, and redistribute it under the same license.\u003C\u002Fp>\n\u003Cp>Code is Poetry. ❤️\u003C\u002Fp>\n","Control WordPress menu item visibility based on login status, user roles, device type, or specific pages — lightweight and theme-agnostic.",200,954,"2026-01-05T13:40:00.000Z","6.9.4","5.8","7.2",[147,21,106,22,24],"conditional","https:\u002F\u002Fknowledge.buzz\u002Fmenu-visibility-control","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmenu-visibility-control.1.0.9.zip",{"slug":151,"name":152,"version":153,"author":154,"author_profile":155,"description":156,"short_description":157,"active_installs":158,"downloaded":159,"rating":29,"num_ratings":29,"last_updated":160,"tested_up_to":16,"requires_at_least":123,"requires_php":124,"tags":161,"homepage":163,"download_link":164,"security_score":165,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"hide-menu-items-by-role","Hide Menu Items by Role","1.0.1","Mahfuzur Rahman","https:\u002F\u002Fprofiles.wordpress.org\u002Fmahfuzurwp\u002F","\u003Cp>This plugin allows you to hide menu items based on user roles. You can select which user roles should not be able to see each menu item when you create or edit a menu item.\u003C\u002Fp>\n\u003Cp>The plugin hides the menu items using fillters provided by the WP core which means we are not using any JavaScript or JQuery.\u003C\u002Fp>\n","A simple WordPress plugin to hide menu items based on user roles.",70,1846,"2024-12-01T06:47:00.000Z",[162,21,106,22,107],"hide-menu-items","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fhide-menu-items-by-role","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhide-menu-items-by-role.1.0.1.zip",92,{"attackSurface":167,"codeSignals":265,"taintFlows":422,"riskAssessment":485,"analyzedAt":499},{"hooks":168,"ajaxHandlers":254,"restRoutes":255,"shortcodes":263,"cronEvents":264,"entryPointCount":47,"unprotectedCount":47},[169,175,179,184,190,194,198,202,206,208,212,216,220,223,228,231,234,238,241,245,249,252],{"type":170,"name":171,"callback":172,"file":173,"line":174},"action","rest_api_init","If_Menu::restApi","if-menu.php",23,{"type":170,"name":176,"callback":177,"file":173,"line":178},"admin_enqueue_scripts","If_Menu::admin_init",26,{"type":170,"name":180,"callback":181,"priority":182,"file":173,"line":183},"wp_update_nav_menu_item","If_Menu::wp_update_nav_menu_item",10,27,{"type":185,"name":186,"callback":187,"priority":188,"file":173,"line":189},"filter","wp_edit_nav_menu_walker","If_Menu::customWalker",500,31,{"type":170,"name":191,"callback":192,"file":173,"line":193},"wp_nav_menu_item_custom_fields","If_Menu::menu_item_fields",34,{"type":170,"name":195,"callback":196,"file":173,"line":197},"wp_nav_menu_item_custom_title","If_Menu::menu_item_title",35,{"type":170,"name":199,"callback":200,"file":173,"line":201},"admin_footer","If_Menu::adminFooter",36,{"type":185,"name":203,"callback":204,"file":173,"line":205},"wp_get_nav_menu_items","If_Menu::wp_get_nav_menu_items",39,{"type":185,"name":203,"callback":204,"file":173,"line":207},42,{"type":170,"name":209,"callback":210,"file":173,"line":211},"wp_enqueue_scripts","If_Menu::addAssets",43,{"type":170,"name":213,"callback":214,"file":173,"line":215},"admin_notices","closure",387,{"type":170,"name":217,"callback":218,"file":173,"line":219},"plugins_loaded","If_Menu::init",396,{"type":170,"name":217,"callback":221,"file":173,"line":222},"Layered\\IfMenu\\Admin::start",397,{"type":170,"name":224,"callback":225,"file":226,"line":227},"admin_init","actions","src\\Admin.php",11,{"type":170,"name":229,"callback":21,"file":226,"line":230},"admin_menu",12,{"type":170,"name":176,"callback":232,"file":226,"line":233},"assets",13,{"type":185,"name":235,"callback":236,"file":237,"line":62},"if_menu_conditions","if_menu_basic_conditions","src\\conditions-basic.php",{"type":185,"name":235,"callback":239,"file":240,"line":62},"ifMenuAdvancedConditions","src\\conditions-multiple-options.php",{"type":185,"name":242,"callback":243,"file":244,"line":230},"user_ip","if_menu_user_ip","src\\user-info.php",{"type":185,"name":246,"callback":247,"file":244,"line":248},"user_country_code","if_menu_user_country_code_woocommerce",40,{"type":185,"name":246,"callback":250,"file":244,"line":251},"if_menu_user_country_code_headers",41,{"type":185,"name":246,"callback":253,"file":244,"line":207},"if_menu_user_country_code_metaapis",[],[256],{"namespace":257,"route":258,"methods":259,"callback":214,"permissionCallback":261,"file":173,"line":262},"if-menu\u002Fv1","\u002Fdid-you-made-this-request",[260],"GET","__return_true",357,[],[],{"dangerousFunctions":266,"sqlUsage":267,"outputEscaping":269,"fileOperations":29,"externalRequests":28,"nonceChecks":47,"capabilityChecks":28,"bundledLibraries":418},[],{"prepared":29,"raw":29,"locations":268},[],{"escaped":140,"rawEcho":77,"locations":270},[271,274,276,278,280,281,283,284,286,289,290,292,294,296,297,299,301,303,304,306,308,309,311,313,314,316,318,319,321,323,324,326,328,329,331,333,334,336,337,339,341,343,344,346,348,350,352,353,356,357,359,360,362,364,366,368,370,371,373,375,376,378,379,380,382,384,385,387,388,389,391,392,393,395,396,397,399,401,402,403,405,406,408,410,412,414,415,417],{"file":173,"line":272,"context":273},177,"raw output",{"file":173,"line":275,"context":273},208,{"file":173,"line":277,"context":273},218,{"file":173,"line":279,"context":273},237,{"file":173,"line":279,"context":273},{"file":173,"line":282,"context":273},251,{"file":226,"line":207,"context":273},{"file":226,"line":285,"context":273},122,{"file":287,"line":288,"context":273},"src\\if-menu-nav-menu-4.5.php",81,{"file":287,"line":288,"context":273},{"file":287,"line":291,"context":273},86,{"file":287,"line":293,"context":273},97,{"file":287,"line":295,"context":273},110,{"file":287,"line":285,"context":273},{"file":287,"line":298,"context":273},129,{"file":287,"line":300,"context":273},132,{"file":287,"line":302,"context":273},134,{"file":287,"line":302,"context":273},{"file":287,"line":305,"context":273},139,{"file":287,"line":307,"context":273},141,{"file":287,"line":307,"context":273},{"file":287,"line":310,"context":273},145,{"file":287,"line":312,"context":273},147,{"file":287,"line":312,"context":273},{"file":287,"line":315,"context":273},151,{"file":287,"line":317,"context":273},152,{"file":287,"line":317,"context":273},{"file":287,"line":320,"context":273},157,{"file":287,"line":322,"context":273},159,{"file":287,"line":322,"context":273},{"file":287,"line":325,"context":273},163,{"file":287,"line":327,"context":273},165,{"file":287,"line":327,"context":273},{"file":287,"line":330,"context":273},169,{"file":287,"line":332,"context":273},171,{"file":287,"line":332,"context":273},{"file":287,"line":335,"context":273},199,{"file":287,"line":140,"context":273},{"file":287,"line":338,"context":273},209,{"file":287,"line":340,"context":273},210,{"file":287,"line":342,"context":273},213,{"file":287,"line":342,"context":273},{"file":287,"line":345,"context":273},214,{"file":287,"line":347,"context":273},215,{"file":287,"line":349,"context":273},216,{"file":287,"line":351,"context":273},217,{"file":287,"line":277,"context":273},{"file":354,"line":355,"context":273},"src\\if-menu-nav-menu-4.7.php",73,{"file":354,"line":355,"context":273},{"file":354,"line":358,"context":273},78,{"file":354,"line":64,"context":273},{"file":354,"line":361,"context":273},102,{"file":354,"line":363,"context":273},114,{"file":354,"line":365,"context":273},121,{"file":354,"line":367,"context":273},124,{"file":354,"line":369,"context":273},126,{"file":354,"line":369,"context":273},{"file":354,"line":372,"context":273},131,{"file":354,"line":374,"context":273},133,{"file":354,"line":374,"context":273},{"file":354,"line":377,"context":273},137,{"file":354,"line":305,"context":273},{"file":354,"line":305,"context":273},{"file":354,"line":381,"context":273},143,{"file":354,"line":383,"context":273},144,{"file":354,"line":383,"context":273},{"file":354,"line":386,"context":273},149,{"file":354,"line":315,"context":273},{"file":354,"line":315,"context":273},{"file":354,"line":390,"context":273},155,{"file":354,"line":320,"context":273},{"file":354,"line":320,"context":273},{"file":354,"line":394,"context":273},161,{"file":354,"line":325,"context":273},{"file":354,"line":325,"context":273},{"file":354,"line":398,"context":273},189,{"file":354,"line":400,"context":273},190,{"file":354,"line":335,"context":273},{"file":354,"line":140,"context":273},{"file":354,"line":404,"context":273},203,{"file":354,"line":404,"context":273},{"file":354,"line":407,"context":273},204,{"file":354,"line":409,"context":273},205,{"file":354,"line":411,"context":273},206,{"file":354,"line":413,"context":273},207,{"file":354,"line":275,"context":273},{"file":416,"line":288,"context":273},"src\\if-menu-nav-menu.php",{"file":416,"line":377,"context":273},[419],{"name":420,"version":38,"knownCves":421},"Select2",[],[423,440,449,458,466,477],{"entryPoint":424,"graph":425,"unsanitizedCount":47,"severity":40},"start_el (src\\if-menu-nav-menu-4.5.php:26)",{"nodes":426,"edges":437},[427,432],{"id":428,"type":429,"label":430,"file":287,"line":431},"n0","source","$_GET",59,{"id":433,"type":434,"label":435,"file":287,"line":288,"wp_function":436},"n1","sink","echo() [XSS]","echo",[438],{"from":428,"to":433,"sanitized":439},false,{"entryPoint":441,"graph":442,"unsanitizedCount":47,"severity":40},"start_el (src\\if-menu-nav-menu-4.7.php:26)",{"nodes":443,"edges":447},[444,446],{"id":428,"type":429,"label":430,"file":354,"line":445},56,{"id":433,"type":434,"label":435,"file":354,"line":355,"wp_function":436},[448],{"from":428,"to":433,"sanitized":439},{"entryPoint":450,"graph":451,"unsanitizedCount":47,"severity":457},"\u003Cif-menu-nav-menu-4.5> (src\\if-menu-nav-menu-4.5.php:0)",{"nodes":452,"edges":455},[453,454],{"id":428,"type":429,"label":430,"file":287,"line":431},{"id":433,"type":434,"label":435,"file":287,"line":288,"wp_function":436},[456],{"from":428,"to":433,"sanitized":439},"low",{"entryPoint":459,"graph":460,"unsanitizedCount":47,"severity":457},"\u003Cif-menu-nav-menu-4.7> (src\\if-menu-nav-menu-4.7.php:0)",{"nodes":461,"edges":464},[462,463],{"id":428,"type":429,"label":430,"file":354,"line":445},{"id":433,"type":434,"label":435,"file":354,"line":355,"wp_function":436},[465],{"from":428,"to":433,"sanitized":439},{"entryPoint":467,"graph":468,"unsanitizedCount":29,"severity":457},"start_el (src\\if-menu-nav-menu.php:26)",{"nodes":469,"edges":474},[470,472],{"id":428,"type":429,"label":430,"file":416,"line":471},54,{"id":433,"type":434,"label":435,"file":416,"line":473,"wp_function":436},76,[475],{"from":428,"to":433,"sanitized":476},true,{"entryPoint":478,"graph":479,"unsanitizedCount":29,"severity":457},"\u003Cif-menu-nav-menu> (src\\if-menu-nav-menu.php:0)",{"nodes":480,"edges":483},[481,482],{"id":428,"type":429,"label":430,"file":416,"line":471},{"id":433,"type":434,"label":435,"file":416,"line":473,"wp_function":436},[484],{"from":428,"to":433,"sanitized":476},{"summary":486,"deductions":487},"The \"if-menu\" plugin version 0.19.2 exhibits a mixed security posture. While it demonstrates good practices in areas like SQL query handling and a lack of dangerous functions, significant concerns arise from its attack surface and output sanitization. The presence of a single unprotected REST API route is a critical vulnerability, directly exposing functionality to unauthenticated users. This is further exacerbated by the taint analysis revealing unsanitized paths, indicating a potential for attackers to manipulate data flow within the plugin. The plugin's vulnerability history, though currently showing no unpatched issues, reveals past medium-severity vulnerabilities, with a common theme of missing authorization. This pattern suggests recurring authorization flaws.  Overall, the plugin has strengths in its internal code handling but suffers from critical external exposure points and ongoing challenges with proper authorization and sanitization. The unprotected REST API is the most pressing issue that requires immediate attention.",[488,490,493,496],{"reason":489,"points":182},"Unprotected REST API route",{"reason":491,"points":492},"Flows with unsanitized paths (Taint Analysis)",8,{"reason":494,"points":495},"Output escaping is not fully proper (69%)",5,{"reason":497,"points":498},"Past medium vulnerabilities (Missing Authorization)",4,"2026-03-16T17:17:09.919Z",{"wat":501,"direct":515},{"assetPaths":502,"generatorPatterns":508,"scriptPaths":509,"versionParams":510},[503,504,505,506,507],"\u002Fwp-content\u002Fplugins\u002Fif-menu\u002Fassets\u002Fif-menu-site.css","\u002Fwp-content\u002Fplugins\u002Fif-menu\u002Fassets\u002Fselect2.min.css","\u002Fwp-content\u002Fplugins\u002Fif-menu\u002Fassets\u002Fif-menu.css","\u002Fwp-content\u002Fplugins\u002Fif-menu\u002Fassets\u002Fselect2.min.js","\u002Fwp-content\u002Fplugins\u002Fif-menu\u002Fassets\u002Fif-menu.js",[],[507],[511,512,513,514],"if-menu.css?ver=","if-menu.js?ver=","select2.min.css?ver=","select2.min.js?ver=",{"cssClasses":516,"htmlComments":522,"htmlAttributes":523,"restEndpoints":526,"jsGlobals":527,"shortcodeOutput":529},[517,518,519,520,521],"if-menu-peek","if-menu-enable","if-menu-conditions","if-menu-dialog-premium","if-menu-dialog-btn",[],[524,525],"data-tooltip","data-action",[],[528],"IfMenu",[]]