[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fSKUOEUnNt3_U_u3llTqkRCDS_X-h3I4FlFLCni26hBo":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":16,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":34,"analysis":136,"fingerprints":322},"wp-favorite-posts-extended","WP Favorite Posts Extended","1.6.2","avrilmaomao","https:\u002F\u002Fprofiles.wordpress.org\u002Favrilmaomao\u002F","\u003Cp>This plugin is based on “WP Favorite Posts”,and extends json api to provide access for mobile apps.\u003Cbr \u002F>\nThree methods are provided:\u003Cbr \u002F>\nwpfp\u002Fadd\u003Cbr \u002F>\n     postid: required\u003Cbr \u002F>\n     cookie: optional\u003Cbr \u002F>\nwpfp\u002Fremove\u003Cbr \u002F>\n    postid：required\u003Cbr \u002F>\n    cookie：optional\u003Cbr \u002F>\nwpfp\u002Flists\u003Cbr \u002F>\n    cookie ：optional\u003Cbr \u002F>\nThe cookie param is the same as “JSON API USER” plugin used.\u003C\u002Fp>\n\u003Cp>These methods support users not logged,if the client side can receive and send cookies.\u003C\u002Fp>\n\u003Cp>code can be found at: https:\u002F\u002Fgithub.com\u002Favrilmaomao\u002Fwp-favorite-posts-extended\u003C\u002Fp>\n","wp-favorite-posts, reading list, post list, post lists, lists Requires at least: 3.5 Tested up to: 4.0 Stable tag: 0.1 Based on plugin \"WP Favor &hellip;",20,3836,80,1,"2014-11-06T07:16:00.000Z","",[18,19,20,21,22],"favorite","favorite-posts","favorites","favourite","posts","https:\u002F\u002Fgithub.com\u002Favrilmaomao\u002Fwp-favorite-posts-extended","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-favorite-posts-extended.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},30,84,"2026-04-04T16:09:50.521Z",[35,59,78,97,119],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":45,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":50,"tags":51,"homepage":54,"download_link":55,"security_score":56,"vuln_count":57,"unpatched_count":26,"last_vuln_date":58,"fetched_at":28},"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,100,15,"2026-01-09T08:29:00.000Z","6.9.4","4.8","5.4.0",[52,19,20,53],"accessibility","likes","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmy-favorites\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmy-favorites.1.4.4.zip",99,2,"2024-10-14 00:00:00",{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":26,"downloaded":67,"rating":26,"num_ratings":26,"last_updated":16,"tested_up_to":68,"requires_at_least":69,"requires_php":70,"tags":71,"homepage":16,"download_link":76,"security_score":45,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":77},"jiali-user-bookmarks","Jiali User Bookmarks","1.0.1","Mahyar","https:\u002F\u002Fprofiles.wordpress.org\u002Fmrgrad\u002F","\u003Cp>Jiali User Bookmarks is a lightweight and developer-friendly WordPress plugin that allows users to save posts for later reading.\u003Cbr \u002F>\nYou can choose the wording that best fits your site — “Bookmark”, “Save”, or “Favorite”.\u003Cbr \u002F>\nIt’s fully AJAX-powered for a seamless user experience — no page reloads required.\u003C\u002Fp>\n\u003Cp>Perfect for blogs, news sites, tutorials, or any content-rich site where readers may want to come back to specific articles later.\u003C\u002Fp>\n\u003Ch3>🚀 Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>📑 One-click Bookmark \u002F Save \u002F Favorite button for posts  \u003C\u002Fli>\n\u003Cli>🎨 Custom styles — easily override the button styles with your own CSS  \u003C\u002Fli>\n\u003Cli>📋 Display bookmarks using flexible shortcodes  \u003C\u002Fli>\n\u003Cli>⚡ AJAX-powered (no page reloads)  \u003C\u002Fli>\n\u003Cli>🔐 Works only for logged-in users (for personalization & security)  \u003C\u002Fli>\n\u003Cli>📊 Display bookmark counts and lists dynamically  \u003C\u002Fli>\n\u003Cli>🧩 Shortcode support for easy placement in page builders, templates, or loops  \u003C\u002Fli>\n\u003Cli>🧼 Lightweight, extendable, and developer-friendly (uses WordPress standards)  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🛠️ Developer Notes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Coded with WordPress best practices (escaping, nonce validation, cache support)  \u003C\u002Fli>\n\u003Cli>Compatible with block themes and classic themes\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by \u003Ca href=\"https:\u002F\u002Fmahyarerad.com\" rel=\"nofollow ugc\">Mahyar Rad\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under GPLv2 or later.\u003C\u002Fp>\n","Let your visitors easily bookmark, save, or favorite posts! Lightweight, AJAX-powered plugin to boost user engagement and interactivity. 📑✨",192,"6.8.5","5.0","7.2",[72,73,20,74,75],"ajax","bookmarks","reading-list","save-posts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjiali-user-bookmarks.1.0.1.zip","2026-03-15T10:48:56.248Z",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":26,"downloaded":86,"rating":26,"num_ratings":26,"last_updated":87,"tested_up_to":68,"requires_at_least":88,"requires_php":89,"tags":90,"homepage":16,"download_link":96,"security_score":45,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"techvoot-favourites-for-woocommerce","Techvoot Favourites for WooCommerce","1.0.0","Techvoot Solutions","https:\u002F\u002Fprofiles.wordpress.org\u002Ftechvootsolutions\u002F","\u003Cp>\u003Cstrong>Customer Favourites for WooCommerce\u003C\u002Fstrong> helps customers quickly reorder their most frequently purchased items by allowing them to save products as Favourites.\u003C\u002Fp>\n\u003Cp>This plugin adds a \u003Cstrong>“Save to Favourites”\u003C\u002Fstrong> button to each product page and a \u003Cstrong>“My Favourites”\u003C\u002Fstrong> page where users can view and manage their saved products.\u003C\u002Fp>\n\u003Cp>Upon activation, the plugin \u003Cstrong>automatically creates a “My Favourites” page\u003C\u002Fstrong> with the \u003Ccode>[tvwf_user_favourites]\u003C\u002Fcode> shortcode, which displays the current logged-in user’s Favourite products.\u003Cbr \u002F>\nAlternatively, administrators can \u003Cstrong>manually insert the shortcode on any page\u003C\u002Fstrong> to show the user’s favourites list wherever it fits the site’s layout best.\u003C\u002Fp>\n\u003Ch3>🛍️ Frontend Features:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Logged-in users can save\u002Fremove products as Favourites.\u003C\u002Fli>\n\u003Cli>Adds a “Save to Favourites” button on each WooCommerce product page.\u003C\u002Fli>\n\u003Cli>Favourite products persist even after placing an order.\u003C\u002Fli>\n\u003Cli>Automatically creates a “My Favourites” page showing saved products using a shortcode.\u003C\u002Fli>\n\u003Cli>“My Favourites” page displays saved products.\u003C\u002Fli>\n\u003Cli>Admins can insert the \u003Ccode>[tvwf_user_favourites]\u003C\u002Fcode> shortcode on any other page if desired.\u003C\u002Fli>\n\u003Cli>Favourite products persist even after placing an order.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>⚙️ Backend Features:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>New admin section to manage Favourites per user.\u003C\u002Fli>\n\u003Cli>View a list of each user’s Favourite products.\u003C\u002Fli>\n\u003Cli>Admins can manually add or remove products from a user’s Favourites list.\u003C\u002Fli>\n\u003Cli>Accessible directly from the WordPress Users list screen via a new “Favourites” button beside each user.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>📦 Use Cases:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Perfect for B2B shops or customers who frequently reorder the same items.\u003C\u002Fli>\n\u003Cli>Simplifies the ordering experience for returning customers.\u003C\u002Fli>\n\u003C\u002Ful>\n","Lets WooCommerce customers save products as Favourites for quick reordering, with admin tools to manage each user's saved products.",247,"2025-05-13T14:30:00.000Z","6.5","7.4",[91,92,93,94,95],"customer-favorites","favourites","products","reorder","woocommerce","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftechvoot-favourites-for-woocommerce.1.0.0.zip",{"slug":20,"name":98,"version":99,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":104,"downloaded":105,"rating":106,"num_ratings":107,"last_updated":108,"tested_up_to":68,"requires_at_least":109,"requires_php":110,"tags":111,"homepage":114,"download_link":115,"security_score":116,"vuln_count":117,"unpatched_count":14,"last_vuln_date":118,"fetched_at":28},"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","3.8","5.4",[112,18,20,113,53],"bookmark","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":120,"name":121,"version":122,"author":123,"author_profile":124,"description":125,"short_description":126,"active_installs":127,"downloaded":128,"rating":45,"num_ratings":117,"last_updated":129,"tested_up_to":48,"requires_at_least":69,"requires_php":89,"tags":130,"homepage":16,"download_link":135,"security_score":45,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"hivepress-favorites","HivePress Favorites","1.2.2","HivePress","https:\u002F\u002Fprofiles.wordpress.org\u002Fhivepress\u002F","\u003Cp>HivePress Favorites is an extension for \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fhivepress\u002F\" rel=\"ugc\">HivePress\u003C\u002Fa> plugin. It allows users to keep a list of favorite listings.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Flistinghive.hivepress.io\u002F\" rel=\"nofollow ugc\">Demo\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fhelp.hivepress.io\u002F\" rel=\"nofollow ugc\">Docs\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fcommunity.hivepress.io\u002F\" rel=\"nofollow ugc\">Support\u003C\u002Fa>\u003C\u002Fp>\n","Allow users to keep a list of favorite listings.",8000,76738,"2026-02-12T23:10:00.000Z",[131,132,20,133,134],"classifieds","directory","hivepress","listings","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhivepress-favorites.1.2.2.zip",{"attackSurface":137,"codeSignals":187,"taintFlows":274,"riskAssessment":309,"analyzedAt":321},{"hooks":138,"ajaxHandlers":179,"restRoutes":180,"shortcodes":181,"cronEvents":186,"entryPointCount":14,"unprotectedCount":26},[139,145,150,154,158,162,166,170,174],{"type":140,"name":141,"callback":142,"file":143,"line":144},"action","wp_loaded","wp_favorite_posts","wp-favorite-posts.php",55,{"type":146,"name":147,"callback":148,"file":143,"line":149},"filter","the_content","wpfp_content_filter",310,{"type":140,"name":151,"callback":152,"file":143,"line":153},"wp_print_scripts","wpfp_add_js_script",322,{"type":140,"name":155,"callback":156,"file":143,"line":157},"wp_print_styles","wpfp_wp_print_styles",328,{"type":140,"name":159,"callback":160,"file":143,"line":161},"activate_wp-favorite-posts\u002Fwp-favorite-posts.php","wpfp_init",355,{"type":140,"name":163,"callback":164,"file":143,"line":165},"admin_menu","wpfp_config_page",363,{"type":146,"name":167,"callback":168,"file":143,"line":169},"json_api_controllers","add_wpfp_controller",477,{"type":146,"name":171,"callback":172,"file":143,"line":173},"json_api_wpfp_controller_path","wpfp_controller_path",485,{"type":140,"name":175,"callback":176,"file":177,"line":178},"widgets_init","wpfp_widget_init","wpfp-widgets.php",97,[],[],[182],{"tag":183,"callback":184,"file":143,"line":185},"wp-favorite-posts","wpfp_shortcode_func",315,[],{"dangerousFunctions":188,"sqlUsage":189,"outputEscaping":192,"fileOperations":26,"externalRequests":26,"nonceChecks":26,"capabilityChecks":14,"bundledLibraries":273},[],{"prepared":190,"raw":26,"locations":191},3,[],{"escaped":14,"rawEcho":193,"locations":194},41,[195,198,200,202,204,206,208,210,213,214,216,217,219,220,221,223,225,227,229,231,233,235,237,239,241,243,245,248,250,252,254,256,258,259,260,262,263,265,267,269,271],{"file":143,"line":196,"context":197},166,"raw output",{"file":143,"line":199,"context":197},229,{"file":143,"line":201,"context":197},446,{"file":143,"line":203,"context":197},453,{"file":143,"line":205,"context":197},454,{"file":143,"line":207,"context":197},455,{"file":143,"line":209,"context":197},461,{"file":211,"line":212,"context":197},"wpfp-admin.php",94,{"file":211,"line":107,"context":197},{"file":211,"line":215,"context":197},133,{"file":211,"line":215,"context":197},{"file":211,"line":218,"context":197},134,{"file":211,"line":218,"context":197},{"file":211,"line":218,"context":197},{"file":211,"line":222,"context":197},144,{"file":211,"line":224,"context":197},156,{"file":211,"line":226,"context":197},203,{"file":211,"line":228,"context":197},207,{"file":211,"line":230,"context":197},210,{"file":211,"line":232,"context":197},216,{"file":211,"line":234,"context":197},219,{"file":211,"line":236,"context":197},222,{"file":211,"line":238,"context":197},225,{"file":211,"line":240,"context":197},228,{"file":211,"line":242,"context":197},231,{"file":211,"line":244,"context":197},234,{"file":246,"line":247,"context":197},"wpfp-page-template.php",13,{"file":246,"line":249,"context":197},28,{"file":246,"line":251,"context":197},44,{"file":246,"line":253,"context":197},49,{"file":177,"line":255,"context":197},10,{"file":177,"line":257,"context":197},11,{"file":177,"line":247,"context":197},{"file":177,"line":249,"context":197},{"file":177,"line":261,"context":197},33,{"file":177,"line":144,"context":197},{"file":177,"line":264,"context":197},56,{"file":177,"line":266,"context":197},67,{"file":177,"line":268,"context":197},82,{"file":177,"line":270,"context":197},87,{"file":272,"line":255,"context":197},"wpfp-your-favs-widget.php",[],[275,293],{"entryPoint":276,"graph":277,"unsanitizedCount":14,"severity":292},"wpfp_die_or_go (wp-favorite-posts.php:106)",{"nodes":278,"edges":289},[279,284],{"id":280,"type":281,"label":282,"file":143,"line":283},"n0","source","$_SERVER['HTTP_REFERER']",118,{"id":285,"type":286,"label":287,"file":143,"line":283,"wp_function":288},"n1","sink","wp_redirect() [Open Redirect]","wp_redirect",[290],{"from":280,"to":285,"sanitized":291},false,"medium",{"entryPoint":294,"graph":295,"unsanitizedCount":190,"severity":292},"\u003Cwp-favorite-posts> (wp-favorite-posts.php:0)",{"nodes":296,"edges":306},[297,298,299,302],{"id":280,"type":281,"label":282,"file":143,"line":283},{"id":285,"type":286,"label":287,"file":143,"line":283,"wp_function":288},{"id":300,"type":281,"label":301,"file":143,"line":270},"n2","$_REQUEST (x2)",{"id":303,"type":286,"label":304,"file":143,"line":196,"wp_function":305},"n3","echo() [XSS]","echo",[307,308],{"from":280,"to":285,"sanitized":291},{"from":300,"to":303,"sanitized":291},{"summary":310,"deductions":311},"The wp-favorite-posts-extended plugin v1.6.2 presents a mixed security posture. On the positive side, it demonstrates strong practices by not making external HTTP requests, not performing file operations, and utilizing prepared statements for all its SQL queries. The absence of known CVEs and a clean vulnerability history is also a significant strength, suggesting a generally well-maintained codebase.\n\nHowever, the static analysis reveals several concerning areas. A critical weakness is the extremely low percentage (2%) of properly escaped output. This indicates a high risk of Cross-Site Scripting (XSS) vulnerabilities, as user-supplied data is likely being rendered directly in the browser without sufficient sanitization. Furthermore, the presence of two taint flows with unsanitized paths, while not rated as critical or high, warrants attention as it suggests potential pathways for malicious input to be processed insecurely. The lack of nonce checks, despite having only one entry point, is another oversight that could be exploited in conjunction with other vulnerabilities.\n\nIn conclusion, while the plugin avoids common pitfalls like raw SQL or unprotected AJAX endpoints, the significant output escaping deficiency and the identified taint flows pose a considerable risk. The clean vulnerability history is encouraging, but the current static analysis findings suggest immediate attention is needed to address potential XSS and insecure data handling. Improvements in output escaping are paramount to strengthening its security.",[312,315,318],{"reason":313,"points":314},"Low percentage of properly escaped output",12,{"reason":316,"points":317},"Taint flows with unsanitized paths detected",8,{"reason":319,"points":320},"No nonce checks implemented",5,"2026-03-16T23:08:49.364Z",{"wat":323,"direct":335},{"assetPaths":324,"generatorPatterns":330,"scriptPaths":331,"versionParams":332},[325,326,327,328,329],"\u002Fwp-content\u002Fplugins\u002Fwp-favorite-posts-extended\u002Fcss\u002Fwpfp-style.css","\u002Fwp-content\u002Fplugins\u002Fwp-favorite-posts-extended\u002Fjs\u002Fwpfp-script.js","\u002Fwp-content\u002Fplugins\u002Fwp-favorite-posts-extended\u002Fi\u002Floading.gif","\u002Fwp-content\u002Fplugins\u002Fwp-favorite-posts-extended\u002Fi\u002Fadd.png","\u002Fwp-content\u002Fplugins\u002Fwp-favorite-posts-extended\u002Fi\u002Fremove.png",[],[326],[333,334],"wp-favorite-posts-extended\u002Fcss\u002Fwpfp-style.css?ver=","wp-favorite-posts-extended\u002Fjs\u002Fwpfp-script.js?ver=",{"cssClasses":336,"htmlComments":342,"htmlAttributes":343,"restEndpoints":346,"jsGlobals":347,"shortcodeOutput":349},[337,338,339,340,341],"wpfp-span","wpfp-link","wpfp-widget","wpfp-most-favorited","wpfp-list-title",[],[344,345],"data-postid","data-action",[],[348],"wpfp_ajaxurl",[350,351],"[wpfp-list-favorites]","[wpfp-most-favorited]"]