[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f57eFTWqYOtqv62bkV8hRc9kzwo7XQj2QqYd2LBV04q8":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":22,"download_link":23,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":35,"analysis":139,"fingerprints":221},"cs-likes-counter","CS Likes Counter","1.0.6","Yaroslav Popov","https:\u002F\u002Fprofiles.wordpress.org\u002Fedcreater\u002F","\u003Cp>Counter allows you to count the likes and dislikes.\u003C\u002Fp>\n\u003Cp>Counting is carried out using AJAX.\u003C\u002Fp>\n\u003Cp>Limitation of cheating over IP (from one IP can vote with 10 minutes intervals).\u003C\u002Fp>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Cp>Simply place the template single.php function call inside the loop\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php while(have_post()) : the_post(); ?>\n    \u003C?php echo CS_Likes::show_buttons_like(); ?>\n\u003C?php endwhile; ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Or use ID of post, if function call outside the loop\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php echo CS_Likes::show_buttons_like($post_id); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>To obtain the number of likes, use the function:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php $likes_count = CS_Likes::get_post_likes($post_id); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>To obtain the number of dislikes, use the function:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php $dislikes_count = CS_Likes::get_post_dislikes($post_id); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Show multiple Likes Counter on your website.",100,6169,2,"2018-11-12T15:28:00.000Z","4.7.32","3.9","",[19,20,21],"dislikes","likes","likes-counter","http:\u002F\u002Fcodesweet.ru\u002Fcs-likes-counter\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcs-likes-counter.1.0.6.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":11,"avg_security_score":24,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},"edcreater",1,30,84,"2026-04-04T14:01:54.128Z",[36,55,80,100,122],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":46,"num_ratings":31,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":17,"tags":50,"homepage":53,"download_link":54,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"express-it","Express It","1.0.2","ahsanic","https:\u002F\u002Fprofiles.wordpress.org\u002Fahsanic\u002F","\u003Cp>Express it is a plugin which adds like\u002Fdislike button to your post. Readers can like\u002Fdislike your post and it will save the ratings to the database. Likes are saved to your website with the help of PHP cookies. Unfortunately if reader is using incognito browser or has his cookies turned of, plugin will not save reader preference, but it will update the like\u002Fdislike in the database.\u003C\u002Fp>\n","Express it adds like\u002Fdislike button to your post. It lets your reader like\u002Fdislike your post, to let you know how they feel about your post.",10,1948,80,"2019-03-14T22:11:00.000Z","5.1.22","4.0",[51,19,37,52,20],"dislike-button","like-button","http:\u002F\u002Fahsansajjad.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fexpress-it.zip",{"slug":56,"name":57,"version":58,"author":59,"author_profile":60,"description":61,"short_description":62,"active_installs":63,"downloaded":64,"rating":65,"num_ratings":66,"last_updated":67,"tested_up_to":68,"requires_at_least":69,"requires_php":70,"tags":71,"homepage":75,"download_link":76,"security_score":77,"vuln_count":78,"unpatched_count":31,"last_vuln_date":79,"fetched_at":27},"favorites","Favorites","2.3.6","Kyle Phillips","https:\u002F\u002Fprofiles.wordpress.org\u002Fkylephillips\u002F","\u003Cp>\u003Cstrong>Why Favorites?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Favorites is designed for end users and theme developers. It provides an easy-to-use API for adding favorite button functionality to any post type.\u003C\u002Fp>\n\u003Cp>The plugin can provide a way to save favorites, likes, bookmarks, or any other similar types of data with its customizable button text.\u003C\u002Fp>\n\u003Cp>Visit \u003Ca href=\"http:\u002F\u002Ffavoriteposts.com\" rel=\"nofollow ugc\">favoriteposts.com\u003C\u002Fa> for a full list of available template functions and shortcodes.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Use with Any Post Type\u003C\u002Fstrong> – Enable or disable favorite functionality per post type while automatically adding a favorite button before and\u002For after the content. Or, use the included functions to display the button anywhere in your template.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Available for All Users\u003C\u002Fstrong> – Don’t want to hide functionality behind a login? Favorites includes an option to save anonymous users’ favorites by either Session or Cookie. Logged-In users’ favorites are also saved as user meta\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Designed for Developers\u003C\u002Fstrong> – Favorites works great out-of-the-box for beginners, but a full set of template functions unlocks just about any sort of custom functionality developers may need. Favorites outputs the minimum amount of markup needed, putting the style and control in your hands.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>GDPR\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>As of version 2.2, a setting is provided to help comply with GDPR standards. To enable this setting, visit Settings > Favorites > Users, and check the field under “User Cookie Consent.” When this setting is enabled, the content saved under the setting displays in a modal window, and the user must agree to the terms you provide before favorite cookies can be saved. Note: There is no language provided by default. This should be supplied by a qualified attorney or legal entity. Once the user has approved or denied cookies, that is saved in the “simplefavorites” cookie along with the timestamp of approval or denial. If the site is part of a multi-site installation, the setting will carry through to all sites.\u003C\u002Fp>\n\u003Cp>If your site already has a cookie compliance solution in place, there are two document-level jQuery events that may be triggered in order to approve or deny cookies in the background.\u003C\u002Fp>\n\u003Cp>To approve the use of cookies, trigger the event “favorites-user-consent-approved”. To deny the use of cookies, trigger the event “favorites-user-consent-denied”.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Multisite Compatible\u003C\u002Fstrong> – As of version 1.1.0, Favorites is multisite compatible. User favorites are saved on a site\u002Fblog basis, and may be retrieved and displayed across sites.\u003C\u002Fp>\n\u003Cp>For more information visit \u003Ca href=\"http:\u002F\u002Ffavoriteposts.com\" rel=\"nofollow ugc\">favoriteposts.com\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Important: Favorites requires WordPress version 3.8 or higher, and PHP version 5.4 or higher.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Favorite Button\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The favorite button can be added automatically to the content by enabling specific post types in the plugin settings. It may also be added to template files or through the content editor using the included functions or shortcodes. The post id may be left blank in all cases if inside the loop. The site id parameter is optional, for use in multisite installations (defaults to current site).\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Get function:\u003C\u002Fstrong> \u003Ccode>get_favorites_button($post_id, $site_id)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Print function:\u003C\u002Fstrong> \u003Ccode>the_favorites_button($post_id, $site_id)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode:\u003C\u002Fstrong> \u003Ccode>[favorite_button post_id=\"\" site_id=\"\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Favorite Count (by Post)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Total favorites for each post are saved as a simple integer. If a user unfavorites a post, this count is updated. Anonymous users’ favorites count towards the total by default, but may be disabled via the plugin settings. The post id may be left blank in all cases if inside the loop.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Get function:\u003C\u002Fstrong> \u003Ccode>get_favorites_count($post_id)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Print function:\u003C\u002Fstrong> \u003Ccode>the_favorites_count($post_id)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode:\u003C\u002Fstrong> \u003Ccode>[favorite_count post_id=\"\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Favorite Count (by User)\u003C\u002Fstrong>\u003Cbr \u002F>\nDisplays the total number of favorites a user has favorited. Template functions accept the same filters parameter as the user favorites functions.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Get function:\u003C\u002Fstrong> \u003Ccode>get_user_favorites_count($user_id, $site_id, $filters)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Print function:\u003C\u002Fstrong> \u003Ccode>the_user_favorites_count($user_id, $site_id, $filters)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode:\u003C\u002Fstrong> \u003Ccode>[user_favorites user_id=\"\" site_id=\"\" post_types=\"\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>User Favorites\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>User favorites are stored as an array of post ids. Logged-in users’ favorites are stored as a custom user meta field, while anonymous users’ favorites are stored in either the session or browser cookie (configurable in the plugin settings). If the user id parameter is omitted, the favorites default to the current user. The site id parameter is optional, for use in multisite installations (defaults to current site).\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Get function (returns array of IDs):\u003C\u002Fstrong> \u003Ccode>get_user_favorites($user_id, $site_id)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Get function (returns html list):\u003C\u002Fstrong> \u003Ccode>get_user_favorites_list($user_id, $site_id, $include_links, $filters, $include_button, $include_thumbnails = false, $thumbnail_size = 'thumbnail', $include_excerpt = false)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Print function (prints an html list):\u003C\u002Fstrong> \u003Ccode>the_user_favorites_list($user_id, $site_id, $include_links, $filters, $include_button, $include_thumbnails = false, $thumbnail_size = 'thumbnail', $include_excerpt = false)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode (prints an html list, with the option of omitting links):\u003C\u002Fstrong> `[user_favorites user_id=”” include_links=”true” site_id=”” include_buttons=”false” post_types=”post” include_thumbnails=”false” thumbnail_size=”thumbnail” include_excerpt=”false”]\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>List Users Who Have Favorited a Post\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Display a list of users who have favorited a specific post. If the user id parameter is omitted, the favorites default to the current user. The site id parameter is optional, for use in multisite installations (defaults to current site). The get function returns an array of user objects.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Get function (returns array of User Objects):\u003C\u002Fstrong> \u003Ccode>get_users_who_favorited_post($post_id, $site_id)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Print function (prints an html list):\u003C\u002Fstrong> \u003Ccode>the_users_who_favorited_post($post_id = null, $site_id = null, $separator = 'list', $include_anonymous = true, $anonymous_label = 'Anonymous Users', $anonymous_label_single = 'Anonymous User')\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode (prints an html list):\u003C\u002Fstrong> `[post_favorites post_id=”” site_id=”” separator=”list” include_anonymous=”true” anonymous_label=”Anonymous Users” anonymous_label_single=”Anonymous User”]\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Clear Favorites Button\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Displays a button that allows users to clear all of their favorites.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Get function:\u003C\u002Fstrong> \u003Ccode>get_clear_favorites_button($site_id, $text)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Print function:\u003C\u002Fstrong> \u003Ccode>the_clear_favorites_button($site_id, $text)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode:\u003C\u002Fstrong> `[clear_favorites_button site_id=”” text=”Clear Favorites”]\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Favorite Count (Across all Posts)\u003C\u002Fstrong>\u003Cbr \u002F>\nDisplays the total number of favorites for a given site.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Get function:\u003C\u002Fstrong> \u003Ccode>get_total_favorites_count($site_id)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Print function:\u003C\u002Fstrong> \u003Ccode>the_total_favorites_count($site_id)\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n","Favorites for any post type. Easily add favoriting\u002Fliking, wishlists, or any other similar functionality using the developer-friendly API.",10000,293250,92,132,"2025-04-10T17:30:00.000Z","6.8.5","3.8","5.4",[72,73,56,74,20],"bookmark","favorite","like","http:\u002F\u002Ffavoriteposts.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffavorites.2.3.6.zip",71,4,"2025-07-21 00:00:00",{"slug":81,"name":82,"version":83,"author":84,"author_profile":85,"description":86,"short_description":87,"active_installs":88,"downloaded":89,"rating":90,"num_ratings":91,"last_updated":92,"tested_up_to":93,"requires_at_least":94,"requires_php":17,"tags":95,"homepage":98,"download_link":99,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"roses-like-this","Like This","1.6.2","RosemarieP","https:\u002F\u002Fprofiles.wordpress.org\u002Frosemariep\u002F","\u003Cp>A simple ‘I like this’ plugin inspired by the facebook ‘like’ functionality.  For visitors who don’t want to bother with commenting.\u003C\u002Fp>\n","A simple 'I like this' plugin inspired by the facebook 'like' functionality.",2000,139425,98,7,"2017-11-28T13:03:00.000Z","3.6.1","3.0",[96,20,97],"karma","post","http:\u002F\u002Fr.osey.me\u002Fcode\u002FlikeThis","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Froses-like-this.zip",{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":11,"num_ratings":110,"last_updated":111,"tested_up_to":112,"requires_at_least":113,"requires_php":114,"tags":115,"homepage":118,"download_link":119,"security_score":120,"vuln_count":13,"unpatched_count":25,"last_vuln_date":121,"fetched_at":27},"my-favorites","My Favorites","1.4.4","Takashi Matsuyama","https:\u002F\u002Fprofiles.wordpress.org\u002Ftakashimatsuyama\u002F","\u003Cp>Save user’s favorite posts and list them.\u003Cbr \u002F>\nThis plugin is simple. You can save the user’s favorite posts just a install and display them anywhere you want with just a shortcode.\u003Cbr \u002F>\nThe logged-in user’s data is saved in the user meta. Other user’s data is saved to Web Storage (localStorage).\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Shortcode:\u003C\u002Fstrong> \u003Ccode>[ccc_my_favorite_select_button post_id=\"\" style=\"\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode:\u003C\u002Fstrong> \u003Ccode>[ccc_my_favorite_list_menu slug=\"\" text=\"\" style=\"\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode:\u003C\u002Fstrong> \u003Ccode>[ccc_my_favorite_list_results class=\"\" style=\"\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For pages with a shortcode for list view ([ccc_my_favorite_list_results]).\u003C\u002Fp>\n\u003Cp>“Load More” is displayed with “posts_per_page”.\u003Cbr \u002F>\nIt will be displayed when the user has more favorite posts than “posts_per_page”.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Shortcode:\u003C\u002Fstrong> \u003Ccode>[ccc_my_favorite_list_results posts_per_page=\"10\"]\u003C\u002Fcode> default is 100 posts.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can display the post’s “excerpt”.\u003Cbr \u002F>\nThis value is the char length.\u003Cbr \u002F>\nIf not needed, use “no excerpt” or “0”.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Shortcode:\u003C\u002Fstrong> \u003Ccode>[ccc_my_favorite_list_results excerpt=\"30\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you want, you can change the code for list view yourself.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Shortcode:\u003C\u002Fstrong> \u003Ccode>[ccc_my_favorite_list_custom_template style=\"\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For pages with a shortcode for custom list view ([ccc_my_favorite_list_custom_template]).\u003Cbr \u002F>\nAdd the function (\u003Ccode>function ccc_my_favorite_list_custom_template( $my_favorite_post_id ) { }\u003C\u002Fcode>) for your list view to \u003Ccode>your-theme\u002Ffunctions.php\u003C\u002Fcode>.\u003Cbr \u002F>\n    $my_favorite_post_id is array.\u003Cbr \u002F>\n    style=”none” excludes the default CSS for the list.\u003C\u002Fp>\n\u003Cp>Detailed usage is under preparation.\u003C\u002Fp>\n\u003Ch3>Discover More\u003C\u002Fh3>\n\u003Cp>This plugin is \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftakashi-matsuyama\u002Fmy-favorites\" rel=\"nofollow ugc\">developed on GitHub\u003C\u002Fa>\u003C\u002Fp>\n","Save user's favorite posts and list them.",1000,17149,15,"2026-01-09T08:29:00.000Z","6.9.4","4.8","5.4.0",[116,117,56,20],"accessibility","favorite-posts","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmy-favorites\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmy-favorites.1.4.4.zip",99,"2024-10-14 00:00:00",{"slug":123,"name":124,"version":125,"author":126,"author_profile":127,"description":128,"short_description":129,"active_installs":130,"downloaded":131,"rating":90,"num_ratings":132,"last_updated":133,"tested_up_to":134,"requires_at_least":49,"requires_php":17,"tags":135,"homepage":137,"download_link":138,"security_score":65,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"solid-post-likes","Solid Post Likes","1.0.8","oacstudio","https:\u002F\u002Fprofiles.wordpress.org\u002Foacstudio\u002F","\u003Cp>This plugin enables you to add a customizable like button to all post types. It supports all custom post types and all WooCommerce product types. Post comments are also supported.\u003C\u002Fp>\n\u003Cp>This button uses the same button for like and dislike. It has been tested with all major page builders.\u003C\u002Fp>\n\u003Cp>Scroll down for demo site link.\u003C\u002Fp>\n\u003Ch3>Feature list\u003C\u002Fh3>\n\u003Ch3>Scope:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Support for all post types.\u003C\u002Fli>\n\u003Cli>Enable\u002FDisable likes per post type.\u003C\u002Fli>\n\u003Cli>Enable\u002FDisable like text and counter.\u003C\u002Fli>\n\u003Cli>Like \u002F Unlike feature on the same button.\u003C\u002Fli>\n\u003Cli>WooCommerce supported.\u003C\u002Fli>\n\u003Cli>Supports all WooCommerce product types (i.e. WooCommerce Subscriptions, WooCommerce Bookings)\u003C\u002Fli>\n\u003Cli>Post comments supported.\u003C\u002Fli>\n\u003Cli>Post comments on custom post types supported.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Design:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>29 icons available for like and dislike.\u003C\u002Fli>\n\u003Cli>Choose different icon for like and dislike.\u003C\u002Fli>\n\u003Cli>Uses Icomoon for Icons.\u003C\u002Fli>\n\u003Cli>Choose different text for like and dislike.\u003C\u002Fli>\n\u003Cli>Set any text for like and unlike.\u003C\u002Fli>\n\u003Cli>Set any icon for like and unlike.\u003C\u002Fli>\n\u003Cli>Control icon and text size.\u003C\u002Fli>\n\u003Cli>Control icon and text color.\u003C\u002Fli>\n\u003Cli>Set icon and text padding to position each element as needed.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Shortcodes:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Free placement of like button via shortcodes.\u003C\u002Fli>\n\u003Cli>Like button shortcode [oacsspl] accepts post_id as argument.\u003C\u002Fli>\n\u003Cli>Show user liked posts via shortcode.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Developer:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Use custom hook for posts.\u003C\u002Fli>\n\u003Cli>Use custom hook for WooCommerce likes.\u003C\u002Fli>\n\u003Cli>Caching support for all full page caching plugins.\u003C\u002Fli>\n\u003Cli>Ajax based like loading.\u003C\u002Fli>\n\u003Cli>Filter available for custom content before and after button.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>More:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>User post like are shown in backend user profile. Useful for admins.\u003C\u002Fli>\n\u003Cli>Disable Likes via post ID.\u003C\u002Fli>\n\u003Cli>Set or remove likes manually.\u003C\u002Fli>\n\u003Cli>Visitors likes can like as well.\u003C\u002Fli>\n\u003Cli>Shows on single posts only.\u003C\u002Fli>\n\u003Cli>Zero configuration required. Just activate and go.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Compatibility:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Compatible with all themes that use WordPress the_content (should be almost all!)\u003C\u002Fli>\n\u003Cli>Multisite compatible.\u003C\u002Fli>\n\u003Cli>WPML compatible.\u003C\u002Fli>\n\u003Cli>Tested with all major page builders.\u003C\u002Fli>\n\u003Cli>Ready for localization .mo \u002F .po included.\u003C\u002Fli>\n\u003Cli>Works great on phones and tablets.\u003C\u002Fli>\n\u003Cli>All major browsers supported Chrome, Firefox, Safari, Opera, Edge, and Internet Explorer\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Known Incompatibilities:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>The Twenty Twenty-Three Default WordPress Theme does not work with the comment likes. Post likes work.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Documentation and Support\u003C\u002Fh3>\n\u003Cp>More documentation:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Foacstudio.de\u002Fknowledgebase-category\u002Fsolid-post-likes\u002Finstallation\" rel=\"nofollow ugc\">https:\u002F\u002Foacstudio.de\u002Fknowledgebase-category\u002Fsolid-post-likes\u002Finstallation\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Demo site: \u003Ca href=\"https:\u002F\u002Fspl-demo.oacstudio.de\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fspl-demo.oacstudio.de\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>user: demo@oacstudio.de\u003Cbr \u002F>\npass: demo@oacstudio.de1\u003C\u002Fp>\n","A like button for all post types. Solid and simple.",600,10310,8,"2024-07-24T09:17:00.000Z","6.5.8",[74,52,136],"post-likes","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsolid-post-likes","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsolid-post-likes.1.0.8.zip",{"attackSurface":140,"codeSignals":176,"taintFlows":196,"riskAssessment":214,"analyzedAt":220},{"hooks":141,"ajaxHandlers":160,"restRoutes":173,"shortcodes":174,"cronEvents":175,"entryPointCount":78,"unprotectedCount":25},[142,148,152,156],{"type":143,"name":144,"callback":145,"file":146,"line":147},"action","add_meta_boxes","add_cs_likes_box","cs-likes-counter.php",36,{"type":143,"name":149,"callback":150,"file":146,"line":151},"save_post","save_cs_likes_box",37,{"type":143,"name":153,"callback":154,"file":146,"line":155},"wp_enqueue_scripts","enqueue_scripts",39,{"type":143,"name":157,"callback":158,"file":146,"line":159},"init","cs_likes_localise",42,[161,166,168,171],{"action":162,"nopriv":163,"callback":162,"hasNonce":164,"hasCapCheck":163,"file":146,"line":165},"set_like_post",false,true,25,{"action":162,"nopriv":164,"callback":162,"hasNonce":164,"hasCapCheck":163,"file":146,"line":167},26,{"action":169,"nopriv":163,"callback":169,"hasNonce":164,"hasCapCheck":163,"file":146,"line":170},"set_dislike_post",27,{"action":169,"nopriv":164,"callback":169,"hasNonce":164,"hasCapCheck":163,"file":146,"line":172},28,[],[],[],{"dangerousFunctions":177,"sqlUsage":178,"outputEscaping":180,"fileOperations":25,"externalRequests":25,"nonceChecks":194,"capabilityChecks":13,"bundledLibraries":195},[],{"prepared":25,"raw":25,"locations":179},[],{"escaped":25,"rawEcho":181,"locations":182},5,[183,186,188,190,192],{"file":146,"line":184,"context":185},104,"raw output",{"file":146,"line":187,"context":185},105,{"file":146,"line":189,"context":185},107,{"file":146,"line":191,"context":185},108,{"file":146,"line":193,"context":185},321,3,[],[197],{"entryPoint":198,"graph":199,"unsanitizedCount":25,"severity":213},"\u003Ccs-likes-counter> (cs-likes-counter.php:0)",{"nodes":200,"edges":211},[201,206],{"id":202,"type":203,"label":204,"file":146,"line":205},"n0","source","$_POST",226,{"id":207,"type":208,"label":209,"file":146,"line":193,"wp_function":210},"n1","sink","echo() [XSS]","echo",[212],{"from":202,"to":207,"sanitized":164},"low",{"summary":215,"deductions":216},"The cs-likes-counter v1.0.6 plugin exhibits a generally strong security posture with no recorded vulnerabilities or critical code signals. The static analysis shows no dangerous functions, no raw SQL queries, and no external HTTP requests, all of which are positive indicators. The presence of nonce and capability checks on its AJAX handlers is also commendable, suggesting an effort to protect against common attack vectors.\n\nHowever, a significant concern arises from the complete lack of output escaping across all identified output points. This weakness represents a substantial risk, as it makes the plugin vulnerable to Cross-Site Scripting (XSS) attacks. Even with protected entry points, unsanitized output can lead to malicious code execution within the context of a user's browser when viewing content that displays likes or related data. The absence of any recorded vulnerabilities historically might suggest a lack of active exploitation or that past versions did not have this specific flaw, but it does not mitigate the present risk.\n\nIn conclusion, while the plugin avoids several common pitfalls and has a clean vulnerability history, the critical flaw of unescaped output significantly degrades its security. This makes it a target for XSS attacks, necessitating immediate attention to implement proper output sanitization for all dynamic content displayed to users.",[217],{"reason":218,"points":219},"Unescaped output",20,"2026-03-16T21:07:21.015Z",{"wat":222,"direct":235},{"assetPaths":223,"generatorPatterns":228,"scriptPaths":229,"versionParams":230},[224,225,226,227],"\u002Fwp-content\u002Fplugins\u002Fcs-likes-counter\u002Fjs\u002Fjquery-notice\u002Fjquery.notice.css","\u002Fwp-content\u002Fplugins\u002Fcs-likes-counter\u002Fjs\u002Fjquery-notice\u002Fjquery.notice.js","\u002Fwp-content\u002Fplugins\u002Fcs-likes-counter\u002Fcss\u002Fcslikes.css","\u002Fwp-content\u002Fplugins\u002Fcs-likes-counter\u002Fjs\u002Fdefault.js",[],[225,227],[231,232,233,234],"cs-likes-counter\u002Fjs\u002Fjquery-notice\u002Fjquery.notice.css?ver=","cs-likes-counter\u002Fjs\u002Fjquery-notice\u002Fjquery.notice.js?ver=","cs-likes-counter\u002Fcss\u002Fcslikes.css?ver=","cs-likes-counter\u002Fjs\u002Fdefault.js?ver=",{"cssClasses":236,"htmlComments":238,"htmlAttributes":239,"restEndpoints":243,"jsGlobals":245,"shortcodeOutput":247},[237],"cs-likes-dislikes-wrapper",[],[240,241,242],"id=\"cs_likes_box\"","id=\"post_likes\"","id=\"post_dislikes\"",[244],"\u002Fwp-json\u002Fcs-likes-counter\u002Fv1\u002F...",[246],"cslikes",[]]