[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f9nLvflMw09iF0gEwy2XQRI570LopL4upG86caJH62ME":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":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":38,"analysis":150,"fingerprints":216},"wp-truncate-content","WP Truncate Content","1.0","crea8xion","https:\u002F\u002Fprofiles.wordpress.org\u002Feyouthace\u002F","\u003Cp>A plugin that truncate and hide longer content but retains its html for search engine optimization. Good for longer content post and pages that wanted only to show partially visible content but does hide all the content for SEO.\u003Cbr \u002F>\nAfter the plugin has been activated, you will see an icon on the WP Editor labeled Truncate Content. If clicked it will display a popup modal box which has an option for you to customize.\u003C\u002Fp>\n\u003Cp>Note : put your long content inside the shortcode e.g. [truncate_content] Content Here….. [\u002Ftruncate_content]\u003C\u002Fp>\n\u003Cp>Any errors or bugs you find please use the support forum.\u003C\u002Fp>\n\u003Cp>If you find this plugin helpful, we appreciate if you give us your review.\u003C\u002Fp>\n","A plugin that truncate and hide longer content but retains its html for search engine optimization. Good for longer content post and pages that wanted &hellip;",10,1574,80,2,"2014-06-14T01:27:00.000Z","3.9.40","3.8","",[20,21,22,23,24],"content-hidden","hide-content","partially-display-content","truncate-content","visible-content","http:\u002F\u002Fcrea8xion.com\u002Ffeatures\u002Ftruncate-content\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-truncate-content.zip",85,0,null,"2026-03-15T14:54:45.397Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":34,"avg_security_score":27,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"eyouthace",210,30,84,"2026-04-05T19:13:20.594Z",[39,63,87,111,130],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":49,"num_ratings":50,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":18,"tags":54,"homepage":59,"download_link":60,"security_score":36,"vuln_count":14,"unpatched_count":28,"last_vuln_date":61,"fetched_at":62},"show-hidecollapse-expand","Show-Hide \u002F Collapse-Expand","1.3.0","buntegiraffe","https:\u002F\u002Fprofiles.wordpress.org\u002Fbuntegiraffe\u002F","\u003Cp>\u003Cstrong>Live Demo:\u003C\u002Fstrong>\u003Cbr \u002F>\nSee live demo of our plugin at \u003Ca href=\"http:\u002F\u002Fshowhide.bunte-giraffe.de\" title=\"http:\u002F\u002Fshowhide.bunte-giraffe.de\" rel=\"nofollow ugc\">showhide.bunte-giraffe.de\u003C\u002Fa>. User: demo, password: demo.\u003C\u002Fp>\n\u003Cp>Show-Hide \u002F Collapse-Expand allows you to easily manage the amount of content shown to user upon entering your website. It will free your pages from clutter and give your website a stylish minimalistic look and feel. You will find it handy for grouping content, composing FAQs, collapsing long lists and expanding them on click, providing hidden answers to questions, organizing your widgets more efficiently, and lots more. Inserting a shortcode is done via a handy tinyMCE button in your WordPress Editor. You will configure the look of your button\u002Fhyperlink on the fly and will be able to change it later using the provided shortcode parameters. Why don’t you give it a try?\u003C\u002Fp>\n\u003Cp>Please feel free to post your questions in the support threads of this plugin, we will be glad to help you with any issues.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Ch4>\u003Cstrong>Main features\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Show\u002FHide ANY content*\u003C\u002Fli>\n\u003Cli>Collapse\u002FExpand using jQuery Effects (blind, fold, highlight, slide)\u003C\u002Fli>\n\u003Cli>Set custom animation speed\u003C\u002Fli>\n\u003Cli>Add your custom JS functions to onclick events \u003C\u002Fli>\n\u003Cli>Collapse\u002FExpand lists\u003C\u002Fli>\n\u003Cli>Easily add FAQs\u003C\u002Fli>\n\u003Cli>Add hidden answers to quizzes (answer opens on button click)\u003C\u002Fli>\n\u003Cli>Collapse widgets to declutter sidebars\u003C\u002Fli>\n\u003Cli>Save space on pages by grouping the content under expandable headings\u003C\u002Fli>\n\u003Cli>Use hyperlinks or stylish pure-css buttons\u003C\u002Fli>\n\u003Cli>Style every link\u002Fbutton individually\u003C\u002Fli>\n\u003Cli>Make button stick to the end of the expanded content\u003C\u002Fli>\n\u003Cli>Use icons for your buttons or in front of your links\u003C\u002Fli>\n\u003Cli>Nest up to 3 levels of collapsible content\u003C\u002Fli>\n\u003Cli>Easily customize the settings and insert the shortcode with a TinyMCE button\u003C\u002Fli>\n\u003Cli>Use in sidebars by inserting the shortcode with needed parameters\u003C\u002Fli>\n\u003Cli>Regular updates\u003C\u002Fli>\n\u003Cli>Great support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fblockquote>\n\u003Cul>\n\u003Cli>We tested our plugin thoroughly, but if you have issues with any type of content, please let us know in the support thread.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>We used Best CSS Button Generator \u003Ca href=\"http:\u002F\u002Fwww.bestcssbuttongenerator.com\" title=\"http:\u002F\u002Fwww.bestcssbuttongenerator.com\" rel=\"nofollow ugc\">http:\u002F\u002Fwww.bestcssbuttongenerator.com\u003C\u002Fa> for our sleek pure-css buttons.\u003C\u002Fp>\n","Save space on your pages, posts, sidebars. Hide the content before user clicks to see it. Collapse long lists, create FAQs & more.",10000,158340,92,20,"2023-03-19T20:44:00.000Z","6.1.10","4.2",[55,56,57,21,58],"collapse","expand","faq","show-content","http:\u002F\u002Fshowhide.bunte-giraffe.de","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fshow-hidecollapse-expand.1.3.0.zip","2023-01-04 00:00:00","2026-03-15T15:16:48.613Z",{"slug":64,"name":65,"version":66,"author":67,"author_profile":68,"description":69,"short_description":70,"active_installs":71,"downloaded":72,"rating":73,"num_ratings":74,"last_updated":75,"tested_up_to":76,"requires_at_least":77,"requires_php":18,"tags":78,"homepage":83,"download_link":84,"security_score":85,"vuln_count":14,"unpatched_count":28,"last_vuln_date":86,"fetched_at":62},"anonymous-restricted-content","Anonymous Restricted Content","1.6.6","taras.sych","https:\u002F\u002Fprofiles.wordpress.org\u002Fcayenne\u002F","\u003Cp>This plugin is as simple as you expected!\u003Cbr \u002F>\nAnd it support latest WordPress Gutenberg editor now!\u003C\u002Fp>\n\u003Cp>Mark the content you want to hide as restricted with just a checkbox – and it’s done!\u003C\u002Fp>\n\u003Cp>In case anonymous user will try to get access to restricted page or post – it will be redirected to WordPress Login page first.\u003Cbr \u002F>\nOr you can specify the exact URL (internal or external) to redirect anonymous users to.\u003C\u002Fp>\n\u003Cp>After successful authorization, user is redirected back to the requested page.\u003C\u002Fp>\n\u003Cp>Also, it hides restricted posts from Archive and Categories pages, RSS feed and from Latest Comments\u002FPosts widgets!\u003C\u002Fp>\n","Simple but yet effective plugin to hide selected posts and pages from anonymous users.",1000,26605,86,9,"2024-11-18T12:11:00.000Z","6.7.5","5.3",[79,80,21,81,82],"access-control","content-control","restrict-anonymous","restricted-access","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fanonymous-restricted-content\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fanonymous-restricted-content.1.6.6.zip",91,"2024-11-20 00:00:00",{"slug":88,"name":89,"version":90,"author":91,"author_profile":92,"description":93,"short_description":94,"active_installs":71,"downloaded":95,"rating":96,"num_ratings":97,"last_updated":98,"tested_up_to":99,"requires_at_least":100,"requires_php":101,"tags":102,"homepage":18,"download_link":107,"security_score":108,"vuln_count":109,"unpatched_count":28,"last_vuln_date":110,"fetched_at":62},"responsive-block-control","Responsive Block Control – Hide blocks based on display width","1.3.2","landwire","https:\u002F\u002Fprofiles.wordpress.org\u002Flandwire\u002F","\u003Cp>Responsive Block Control adds responsive toggles to a “Visibility” panel of the block editor, to show or hide blocks according to screen width.\u003C\u002Fp>\n\u003Ch3>Security\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Version 1.3.1 resolves a stored cross‑site scripting (XSS) vulnerability (CVE‑2025‑62135) affecting earlier versions (\u003C= 1.2.9).\u003C\u002Fstrong>\u003Cbr \u002F>\nUsers with contributor access or higher should update immediately.\u003C\u002Fp>\n\u003Cp>If you discover a security vulnerability, please report it responsibly to: security@saschapaukner.de\u003C\u002Fp>\n\u003Ch4>Limitations\u003C\u002Fh4>\n\u003Cp>Does not work with the Classic Block, Widget Block or Widget Area Block [‘core\u002Ffreeform’, ‘core\u002Flegacy-widget’, ‘core\u002Fwidget-area’], as the those blocks do not support block attributes. Does also not work with the HTML Block [‘core\u002Fhtml’] inside the Widget Screen, as this one also does not support block attributes there.\u003C\u002Fp>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Ch4>Override existing breakpoints\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>function override_responsive_block_control_breakpoints($break_points) {\n     $break_points['base'] = 0;\n     $break_points['mobile'] = 400;\n     $break_points['tablet'] = 800;\n     $break_points['desktop'] = 1000;\n     $break_points['wide'] = 1600;\n\n     return $break_points;\n }\n\n add_filter('responsive_block_control_breakpoints', 'override_responsive_block_control_breakpoints');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Provide custom CSS\u003C\u002Fh4>\n\u003Cp>You can provide your own CSS rules per breakpoint using the new filter responsive_block_control_custom_css_rules.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter('responsive_block_control_custom_css_rules', function($rules) {\n    return [\n        'mobile'  => 'display: none !important;',\n        'tablet'  => 'display: none !important;',\n        'desktop' => 'display: none !important;',\n        'wide'    => 'display: none !important;',\n    ];\n});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Stop css output completely\u003C\u002Fh4>\n\u003Cpre>\u003Ccode> function override_responsive_block_control_add_css() {\n      return false;\n  }\n  add_filter('responsive_block_control_breakpoints', 'override_responsive_block_control_add_css');\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Responsive Block Control adds responsive toggles to a \"Visibility\" panel of the block editor, to show or hide blocks according to screen width.",14054,100,4,"2026-02-21T22:00:00.000Z","6.9.4","5.2","7.4",[103,21,104,105,106],"block","responsive","visibility","width","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fresponsive-block-control.1.3.2.zip",99,1,"2025-12-31 00:00:00",{"slug":112,"name":113,"version":114,"author":115,"author_profile":116,"description":117,"short_description":118,"active_installs":71,"downloaded":119,"rating":13,"num_ratings":74,"last_updated":120,"tested_up_to":99,"requires_at_least":121,"requires_php":18,"tags":122,"homepage":127,"download_link":128,"security_score":108,"vuln_count":109,"unpatched_count":28,"last_vuln_date":129,"fetched_at":62},"restrict-for-elementor","Restrict for Elementor","1.1.2","Restrict","https:\u002F\u002Fprofiles.wordpress.org\u002Frestrict\u002F","\u003Cp>The \u003Ca href=\"https:\u002F\u002Frestrict.io\u002Frestrict-for-elementor?utm_source=wordpress.org&utm_medium=plugin-page&utm_campaign=rsc_el\" title=\"Restricted for Elementor\" rel=\"nofollow ugc\">Restrict for Elementor\u003C\u002Fa> makes it easy for you to control and protect access to your \u003Ca href=\"https:\u002F\u002Felementor.com\u002F\" title=\"Free WordPress Website Builder\" rel=\"nofollow ugc\">Elementor-powered website\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>You can restrict, show and hide widgets, sections and columns to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Logged in users and guests\u003C\u002Fli>\n\u003Cli>Users with a specific role (administrator, editor, author, subscriber, etc)\u003C\u002Fli>\n\u003Cli>Users with a specific meta key and value\u003C\u002Fli>\n\u003Cli>Users with a specific \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FRoles_and_Capabilities\" title=\"WordPress Roles and Capabilities\" rel=\"nofollow ugc\">capability\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Author of a post \u002F page\u003C\u002Fli>\n\u003Cli>Visitor’s country or continent – integration with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgeoip-detect\u002F\" title=\"Geolocation IP Detection\" rel=\"ugc\">Geolocation IP Detection\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Premium version integrations and available criteria for content restrictions and other features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Alternative Content – display Elementor template or HTML \u002F formatted text in place of restricted section, column or a widget\u003C\u002Fli>\n\u003Cli>White Label – by adding just one line to your wp-config.php like this \u003Cstrong>define(‘RSC_EL_PLUGIN_TITLE’, ‘My Restriction Plugin’);\u003C\u002Fstrong> the whole plugin will become white labeled and ready for your clients.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwoocommerce.com\u002F\" rel=\"nofollow ugc\">WooCommerce\u003C\u002Fa> users – who made any purchase\u003C\u002Fli>\n\u003Cli>WooCommerce users – who purchased a specific product\u003C\u002Fli>\n\u003Cli>WooCommerce users – who purchased a specific product variation\u003C\u002Fli>\n\u003Cli>Restrict for Elementor also integrates with \u003Ca href=\"https:\u002F\u002Fwoocommerce.com\u002Fproducts\u002Fwoocommerce-subscriptions\u002F\" rel=\"nofollow ugc\">WooCommerce Subscription\u003C\u002Fa> addon which allows you to show \u002F hide content for clients with an active subscription.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Feasydigitaldownloads.com\u002F\" rel=\"nofollow ugc\">Easy Digital Downloads\u003C\u002Fa> users – who purchased any Easy Digital Downloads product\u003C\u002Fli>\n\u003Cli>Easy Digital Downloads users – who purchased a specific Easy Digital Downloads product\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftickera.com\u002F\" rel=\"nofollow ugc\">Tickera\u003C\u002Fa> users – who purchased any ticket\u003C\u002Fli>\n\u003Cli>Tickera users – who purchased a specific ticket type\u003C\u002Fli>\n\u003Cli>Tickera users – who purchased a ticket for a specific event\u003C\u002Fli>\n\u003C\u002Ful>\n","Show or hide Elementor sections, columns and widgets with ease using many different criteria",14083,"2026-02-14T10:23:00.000Z","4.3",[123,21,124,125,126],"elementor","restrict","restricted-content","woocommerce","https:\u002F\u002Frestrict.io\u002Frestrict-for-elementor","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frestrict-for-elementor.1.1.2.zip","2024-06-05 13:10:13",{"slug":131,"name":132,"version":133,"author":134,"author_profile":135,"description":136,"short_description":137,"active_installs":71,"downloaded":138,"rating":96,"num_ratings":74,"last_updated":139,"tested_up_to":140,"requires_at_least":141,"requires_php":142,"tags":143,"homepage":148,"download_link":149,"security_score":96,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":62},"visibility-control-for-learndash","Visibility Control for LearnDash","1.7","Pankaj Agrawal","https:\u002F\u002Fprofiles.wordpress.org\u002Fliveaspankaj\u002F","\u003Cp>Visibility Control for \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fr\u002Flearndash\u002Fwp_vcl_plugin_page\" rel=\"nofollow ugc\">LearnDash\u003C\u002Fa> helps you hide messages and content for specific criterion anywhere on your WordPress page.\u003C\u002Fp>\n\u003Cp>You can show\u002Fhide HTML elements, menus, and other details based on:\u003Cbr \u002F>\n1. User’s access to a particular, any or all \u003Cstrong>LearnDash Course\u003C\u002Fstrong>, Or\u003Cbr \u002F>\n2. User’s access to a particular, any or all \u003Cstrong>LearnDash Group\u003C\u002Fstrong>, Or\u003Cbr \u002F>\n3. User is \u003Cstrong>Logged In\u003C\u002Fstrong> or \u003Cstrong>Logged Out\u003C\u002Fstrong>.\u003Cbr \u002F>\n4. User’s role.\u003C\u002Fp>\n\u003Cp>You simply need to add a CSS class to your element div or span. As explained here:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Example:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Login\u002FLogout Status:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>To show the element\u002Fmenu item to a logged-in user, add this CSS class: \u003Cstrong>visible_to_logged_in\u003C\u002Fstrong> OR  \u003Cstrong>hidden_to_logged_out\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To hide the element\u002Fmenu item from a logged-in user, add this CSS class: \u003Cstrong>visible_to_logged_out\u003C\u002Fstrong> OR  \u003Cstrong>hidden_to_logged_in\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For user’s role:\u003Cbr \u002F>\n* To show the element\u002Fmenu item to a user will role administrator, add this CSS class: \u003Cstrong>visible_to_role_administrator\u003C\u002Fstrong> OR \u003Cstrong>hidden_to_role_administrator\u003C\u002Fstrong>\u003Cbr \u002F>\n* Note: To show an element to multiple specific roles only, you need add the element multiple times, one for each role. To hide an element\u002Fmenu from specific multiple roles only you can add the element once add multiple classes to the same element.\u003C\u002Fp>\n\u003Cp>For all the courses:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>To show the element\u002Fmenu item to user with access to all the Courses, add this CSS class: \u003Cstrong>visible_to_course_all\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To hide the element\u002Fmenu item from user with access to all the Courses, add this CSS class: \u003Cstrong>hidden_to_course_all\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To show the element\u002Fmenu item to users not enrolled in any Course, add this CSS class: \u003Cstrong>visible_to_course_none\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To hide the element\u002Fmenu item from users not enrolled in any Course, add this CSS class: \u003Cstrong>hidden_to_course_none\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For a specific course, if Course ID is 123:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>To show the element\u002Fmenu item to user with access to above Course, add this CSS class: \u003Cstrong>visible_to_course_123\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To hide the element\u002Fmenu item from user with access to above Course, add this CSS class: \u003Cstrong>hidden_to_course_123\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For users with access to at least one course:\u003Cbr \u002F>\n* Add this CSS class: \u003Cstrong>hidden_to_course_none\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>For a course completion status, if Course ID is 123:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>To show the element\u002Fmenu item to user who completed above course, add this CSS class: \u003Cstrong>visible_to_course_complete_123\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To hide the element\u002Fmenu item from user who completed above course, add this CSS class: \u003Cstrong>hidden_to_course_complete_123\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To show the element\u002Fmenu item to user who has not completed above course, add this CSS class: \u003Cstrong>visible_to_course_incomplete_123\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To hide the element\u002Fmenu item from user who has not completed above course, add this CSS class: \u003Cstrong>hidden_to_course_incomplete_123\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For all the groups:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>To show the element\u002Fmenu item to user with access to all the groups, add this CSS class: \u003Cstrong>visible_to_group_all\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To hide the element\u002Fmenu item from user with access to all the groups, add this CSS class: \u003Cstrong>hidden_to_group_all\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To show the element\u002Fmenu item to users not enrolled in any group, add this CSS class: \u003Cstrong>visible_to_group_none\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To hide the element\u002Fmenu item from users not enrolled in any group, add this CSS class: \u003Cstrong>hidden_to_group_none\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For a specific group, if Group ID is 123:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>To show the element\u002Fmenu item to user with access to above Group, add this CSS class: \u003Cstrong>visible_to_group_123\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>To hide the element\u002Fmenu item from user with access to above Group, add this CSS class: \u003Cstrong>hidden_to_group_123\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For users with access to at least one group:\u003Cbr \u002F>\n* Add this CSS class: \u003Cstrong>hidden_to_group_none\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Mechanism of Functioning\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Multiple CSS Classes:\u003C\u002Fstrong> If multiple visibility control classes are added, ALL of them must meet the criterion to keep the element visible. If any one of them hides the element, it will be hidden. For example: visible_to_group_123 visible_to_group_124 will show the element only to those who have access to both groups.\u003C\u002Fli>\n\u003Cli>Hidden data\u002Felements reaches the browser. Though user’s do not see it.\u003C\u002Fli>\n\u003Cli>CSS is added to the page for all CSS elements that needs to be hidden based on above rules.\u003C\u002Fli>\n\u003Cli>After page is loaded. These elements are removed from page using jQuery (if available), so it won’t be available even on Inspect.\u003C\u002Fli>\n\u003Cli>Elements rendered after the page load are hidden but not removed from DOM\u002Fpage.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Future Development\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Depending on the interest in this feature, we will decide on adding a shortcode and\u002For a Gutenberg Block to achieve this feature.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Other Visibility Control Plugins:\u003C\u002Fstrong>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Flearndash-visibility-control\u002F\" rel=\"nofollow ugc\">Visibility Control for LearnDash LMS\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fvisibility-control-for-wp-courseware\u002F\" rel=\"nofollow ugc\">Visibility Control for WP Courseware LMS\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fvisibility-control-for-learnpress\u002F\" rel=\"nofollow ugc\">Visibility Control for LearnPress LMS\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fvisibility-controlfor-lifterlms\u002F\" rel=\"nofollow ugc\">Visibility Control for LifterLMS\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fvisibility-control-for-tutorlms\u002F\" rel=\"nofollow ugc\">Visibility Control for TutorLMS\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fvisibility-control-for-masterstudy\u002F\" rel=\"nofollow ugc\">Visibility Control for MasterStudyLMS\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fvisibility-control-for-sensei\u002F\" rel=\"nofollow ugc\">Visibility Control for Sensei LMS\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fwoocommerce-visibility-control\u002F\" rel=\"nofollow ugc\">Visibility Control for WooCommerce\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Related Plugins for LearnDash LMS:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanual-completions-for-learndash\u002F\" rel=\"nofollow ugc\">Manual Completions for LearnDash LMS\u003C\u002Fa>\u003Cbr \u002F>\n* \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fmanage-enrollment-for-learndash\u002F\" rel=\"nofollow ugc\">Manage Enrollment for LearnDash LMS\u003C\u002Fa>\u003Cbr \u002F>\n* \u003Ca href=\"https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Fautocomplete-learndash-lessons-and-topics\u002F\" rel=\"nofollow ugc\">Autocomplete LearnDash Lessons and Topics\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>It is pretty similar to this plugin and having same features, it allows controlling the visibility of HTML elements based user’s purchase of a particular WooCommerce Product or Variation.\u003C\u002Fp>\n","Visibility Control for LearnDash helps you hide messages and content for specific criterion anywhere on your WordPress page.",14109,"2025-09-11T07:23:00.000Z","6.8.5","4.0","5.6",[144,145,21,146,147],"elearning","hide","learndash","lms","https:\u002F\u002Fwww.nextsoftwaresolutions.com\u002Flearndash-visibility-control","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fvisibility-control-for-learndash.zip",{"attackSurface":151,"codeSignals":188,"taintFlows":206,"riskAssessment":207,"analyzedAt":215},{"hooks":152,"ajaxHandlers":180,"restRoutes":181,"shortcodes":182,"cronEvents":187,"entryPointCount":109,"unprotectedCount":28},[153,159,163,167,172,176],{"type":154,"name":155,"callback":156,"file":157,"line":158},"action","admin_init","hc_shortcode_button","class\\shortcode-gen.php",15,{"type":160,"name":161,"callback":162,"file":157,"line":35},"filter","mce_external_plugins","hc_add_buttons",{"type":160,"name":164,"callback":165,"file":157,"line":166},"mce_buttons","hc_register_buttons",31,{"type":154,"name":168,"callback":169,"priority":11,"file":170,"line":171},"wp_enqueue_scripts","enqueue_wp_styles","class\\wp-truncate-class.php",36,{"type":154,"name":173,"callback":174,"priority":13,"file":170,"line":175},"wp_footer","enqueue_footer_script",37,{"type":154,"name":177,"callback":178,"priority":11,"file":170,"line":179},"admin_enqueue_scripts","admin_wp_styles",39,[],[],[183],{"tag":184,"callback":185,"file":170,"line":186},"truncate_content","the_shortcode",33,[],{"dangerousFunctions":189,"sqlUsage":190,"outputEscaping":192,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":14,"bundledLibraries":205},[],{"prepared":28,"raw":28,"locations":191},[],{"escaped":109,"rawEcho":193,"locations":194},5,[195,197,199,201,203],{"file":170,"line":96,"context":196},"raw output",{"file":170,"line":198,"context":196},101,{"file":170,"line":200,"context":196},103,{"file":170,"line":202,"context":196},104,{"file":170,"line":204,"context":196},107,[],[],{"summary":208,"deductions":209},"The wp-truncate-content plugin v1.0, based on this static analysis, exhibits a generally good security posture in several key areas. The absence of direct SQL queries (all are prepared), file operations, and external HTTP requests, along with no recorded vulnerabilities, suggests a developer who is mindful of common security pitfalls. The limited attack surface, consisting solely of one shortcode and no unprotected AJAX handlers or REST API routes, is also a positive indicator. However, a significant concern arises from the output escaping. With only 17% of outputs properly escaped, there is a substantial risk of Cross-Site Scripting (XSS) vulnerabilities, especially if user-supplied data is processed and rendered without adequate sanitization. The lack of nonce checks is another potential area of weakness, although its impact is mitigated by the absence of unprotected AJAX or REST API endpoints. The two capability checks, while present, should be thoroughly reviewed to ensure they are robust and correctly implemented.",[210,213],{"reason":211,"points":212},"Low output escaping rate (17%)",8,{"reason":214,"points":193},"No nonce checks present","2026-03-16T23:34:56.619Z",{"wat":217,"direct":225},{"assetPaths":218,"generatorPatterns":220,"scriptPaths":221,"versionParams":223},[219],"\u002Fwp-content\u002Fplugins\u002Fwp-truncate-content\u002Fassets\u002Fcss\u002Fadmin.css",[],[222],"\u002Fwp-content\u002Fplugins\u002Fwp-truncate-content\u002Fassets\u002Fjs\u002Freadmore.min.js",[224],"wp-truncate-content\u002Fassets\u002Fjs\u002Freadmore.min.js?ver=",{"cssClasses":226,"htmlComments":228,"htmlAttributes":229,"restEndpoints":232,"jsGlobals":233,"shortcodeOutput":236},[227],"hide_content",[],[230,231],"data-readmore-expand","data-readmore-text",[],[234,235],"jQuery","$",[237],"\u003Cdiv id=\"hide_content\""]