[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fwTnGO62cuEQ5PAevQqM3yiExcnIMpyuQBRcIlB5spYs":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":21,"download_link":22,"security_score":23,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26,"vulnerabilities":27,"developer":28,"crawl_stats":25,"alternatives":35,"analysis":75,"fingerprints":688},"wp-petfinder","WP Petfinder","0.8","Alex Raven","https:\u002F\u002Fprofiles.wordpress.org\u002Fesiteq\u002F","\u003Cp>WP Petfinder plugin was designed to integrate Petfinder.com database with your WordPress site via Petfinder API v2. It will be useful for pet shelters and volunteers to help Pets to get adopted.\u003C\u002Fp>\n\u003Ch3>Shortcodes\u003C\u002Fh3>\n\u003Cp>[pf_search_form]\u003C\u002Fp>\n\u003Cp>Displays Pet search form. Available options:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>location\u003C\u002Fstrong>: default location. For this option, you can use: city, state; latitude,longitude; or postal code. Example: [pf_search_form location=”33025″].\u003C\u002Fp>\n\u003Cp>\u003Cstrong>type\u003C\u002Fstrong>: default animal type. Possible values: dog, cat and more (refer to https:\u002F\u002Fwww.petfinder.com\u002Fdevelopers\u002Fv2\u002Fdocs\u002F#get-animal-types).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>gender\u003C\u002Fstrong>: default gender. Possible values: male, female.\u003C\u002Fp>\n\u003Cp>[pf_search_results]\u003C\u002Fp>\n\u003Cp>Displays search results. Available options:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>cache\u003C\u002Fstrong>: set cache expiration time in seconds. Default value is 86400 seconds (24 hours). To disable caching (not recommended), set \u003Cstrong>cache=1\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>location\u003C\u002Fstrong>: display animals from specific location. For this option, you can use: city, state; latitude,longitude; or postal code. Example: [pf_search_form location=”33025″]. This option will override value set in URL variable.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>type\u003C\u002Fstrong>: animal type.  Possible values: dog, cat and more (refer to https:\u002F\u002Fwww.petfinder.com\u002Fdevelopers\u002Fv2\u002Fdocs\u002F#get-animal-types). This option will override value set in URL variable.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>gender\u003C\u002Fstrong>: display animals of specific gender. Possible values: male, female. This option will override value set in URL variable.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>shelter_id\u003C\u002Fstrong>: display animals from shelter with specific ID. If \u003Cstrong>shelter_id\u003C\u002Fstrong> is set, any \u003Cstrong>location\u003C\u002Fstrong> value will be ignored. Example: [pf_search_results shelter_id=”NY606″]\u003C\u002Fp>\n\u003Cp>\u003Cstrong>size\u003C\u002Fstrong>: display animals of specific size. Possible values: small, medium, large, xlarge. This option will override value set in URL variable.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>view\u003C\u002Fstrong>: display animals as \u003Cstrong>grid\u003C\u002Fstrong> or \u003Cstrong>list\u003C\u002Fstrong>. This option will override value set in URL variable.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>status\u003C\u002Fstrong>: display animals with specific status. Values: adoptable, adopted.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>sort\u003C\u002Fstrong>: sorting order. Values: recent, -recent, distance, -distance, random. Default is recent.\u003C\u002Fp>\n\u003Cp>[pf_details]\u003C\u002Fp>\n\u003Cp>Displays animal details. After setting the page, go to plugin options and choose it in Animal details page drop down list. The page with animal details will be automatically created on first plugin activation.\u003C\u002Fp>\n\u003Ch3>Widgets\u003C\u002Fh3>\n\u003Ch4>WPPF Animals From Shelter\u003C\u002Fh4>\n\u003Cp>Widget that displays animals. Its output is similar to \u003Cstrong>[pf_search_results]\u003C\u002Fstrong> shortcode (you can also use shortcode in a widget). Available options:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Shelter ID\u003C\u002Fstrong>: display animals from specific shelter. Optional.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Number of animals\u003C\u002Fstrong>: display specified number of animals (1 to 10). Default is 1.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Animal type\u003C\u002Fstrong>: display specified animal type. By default, displays all animal types.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>IDs\u003C\u002Fstrong>: display animals with specified IDs (IDs can be taken from Petfinder.com). Example: 12345, 432546.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Template\u003C\u002Fstrong>: display widget using selected template.\u003C\u002Fp>\n\u003Ch4>WPPF Search Form\u003C\u002Fh4>\n\u003Cp>Works similar to [pf_search_form] shortcode (you can use shortcode instead of a widget). Available options:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Shelter ID\u003C\u002Fstrong>: display animals from specific shelter.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Animal Name\u003C\u002Fstrong>: search for animal by name.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Location\u003C\u002Fstrong>: search for animals in specified location (see \u003Cstrong>location\u003C\u002Fstrong> field from shortcode for options).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Type\u003C\u002Fstrong>: search for animals of specific type.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Gender\u003C\u002Fstrong>: search for animals of specific gender.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Breed\u003C\u002Fstrong>: search for animals of specific breed (list is available when Type is selected).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Size\u003C\u002Fstrong>: search for animals of specific size.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Hide fields\u003C\u002Fstrong>: hide specific fields from search form. Values can be any combination of the following (comma separated): name, location, type, breed, size.\u003C\u002Fp>\n\u003Ch3>Plugin options\u003C\u002Fh3>\n\u003Cp>Options are available under WP Petfinder menu.\u003C\u002Fp>\n\u003Ch4>General Options\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Petfinder API key\u003C\u002Fstrong>, \u003Cstrong>Petfinder API secret\u003C\u002Fstrong>: you can find these values under your account at Petfinder.com. Please set these keys first, otherwise plugin won’t work.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>WP Petfinder Cache\u003C\u002Fstrong>: will significantly speed up API calls by caching results using local database. If you are using third party caching plugins such as WP Total Cache, Redis Object Catche, etc – you can turn this option Off. Otherwise keep it On.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Turn Off permalinks\u003C\u002Fstrong>: enable it, if you are getting empty page instead of animal details page.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Search Results page\u003C\u002Fstrong>: users will be redirected to this page when they click Submit in search form (both shortcode and widget). If page is not set, it will use current page for search results.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Animal details page\u003C\u002Fstrong>: users will be redirected to this page when they click animal profile in search results.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Cat adoption page\u003C\u002Fstrong>: redirect to this page if user clicks \u003Cstrong>Adopt me\u003C\u002Fstrong> button on cat’s page. Can be the same as below.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Dog adoption page\u003C\u002Fstrong>: redirect to this page if user clicks \u003Cstrong>Adopt me\u003C\u002Fstrong> button on dog’s page. Can be the same as above.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Detail page title\u003C\u002Fstrong>: rewrite page title (for seo). Default: [name] – [gender] [age] [type]\u003C\u002Fp>\n\u003Ch4>Look & Feel\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>WP Petfinder Icon\u003C\u002Fstrong>: you can choose between cat and dog icons that will be displayed in Admin menu.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Custom CSS\u003C\u002Fstrong>: you can put your CSS here to override plugin’s styles. Plugin’s styles are located in css\u002Fwp-petfinder.css.\u003C\u002Fp>\n\u003Ch3>Actions\u003C\u002Fh3>\n\u003Cp>wppf_before_search_form, wppf_after_search_form, wppf_before_search_results, wppf_after_search_results, wppf_animal_gallery\u003C\u002Fp>\n\u003Ch3>Donate\u003C\u002Fh3>\n\u003Cp>My name is Alex and I am a volunteer that helps stray cats. This plugin will always be free for everyone. If you want to support plugin’s development and help animals, you can donate some amount via PayPal by clicking Donation link.\u003C\u002Fp>\n","WP Petfinder plugin was designed to integrate Petfinder.com database with your Wordpress site via Petfinder API v2. It will be useful for pet shelters &hellip;",30,2129,100,1,"2022-01-29T07:13:00.000Z","5.3.21","4.0","5.6",[20],"petfinder","https:\u002F\u002Fwp.esiteq.com\u002Fwp-petfinder\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-petfinder.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":29,"display_name":7,"profile_url":8,"plugin_count":30,"total_installs":31,"avg_security_score":32,"avg_patch_time_days":11,"trust_score":33,"computed_at":34},"esiteq",2,50,93,89,"2026-04-04T18:28:33.171Z",[36,58],{"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":47,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":51,"tags":52,"homepage":54,"download_link":55,"security_score":56,"vuln_count":14,"unpatched_count":24,"last_vuln_date":57,"fetched_at":26},"petfinder-listings","List Petfinder Pets","1.1.5","bridgetwes","https:\u002F\u002Fprofiles.wordpress.org\u002Fbridgetwes\u002F","\u003Cp>Petfinder is a free site where shelters and rescues can post pets for adoption. The List Petfinder Pets plugin takes advantage of the Petfinder API to list your available pets on your website.  All you need is your Petfinder shelter id and free Petfinder API v2.0 API key and secret.\u003C\u002Fp>\n\u003Cp>The List Petfinder Pets plugin allows you to:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Display all your shelter’s Petfinder pets on your own website\u003C\u002Fli>\n\u003Cli>Display a featured or random pet from Petfinder in a widget\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Sign up to be notified when the Petfinder plugin is updated\u003C\u002Fh4>\n\u003Cp>You can sign up to receive notices when this plugin is updated or other important changes here: (https:\u002F\u002Funboxinteractive.com\u002Fpetfinder-plugin-email-list\u002F)\u003C\u002Fp>\n\u003Ch4>Demos\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmidwestigrescue.com\u002Fadoption\u002Favailable-igs-in-missouri-and-kansas\u002F\" rel=\"nofollow ugc\">Midwest Italian Greyhound Rescue\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Shortcode\u003C\u002Fh4>\n\u003Cp>[shelter_list] displays a list of pets from your shelter. You must enter your shelter ID, Petfinder v2.0 API key and secret on the List Petfinder Pets’ settings page for this shortcode to work. You may also need to edit your Petfinder settings to enable sharing your data with third parties. See Petfinder settings under Frequently Asked Questions below.\u003Cbr \u002F>\nOptional attributes for shortcode are:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>shelter_id – Allows you to list adoptable pets from a shelter different from the shelter id defined in your List Petfinder Pets Settings.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>breed – If you wish to list only one breed on a page, or leave blank\u002Fdon’t set to get all breeds. Note: adding ! before breed to exclude breeds was removed when plugin was updated to support Petfinder API v2.0 in version 1.0.13.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>count – The maximum number of pets to return. Defaults to 75 and must be a number.  Petfinder API v2.0 added ability to filter before retrieving results so you can set the count to the real number you want to list on the page now. Max returned is 100.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>page – Which page of pets to return. If you have over 100 pets, or want to break up your pets into multiple pages, you can put the shortcode on multiple pages, each with a different page number. You’ll need to add a link to each page so your users can navigate between pages. \u003Cstrong>NOTE: Don’t set ‘sort_by’ parameter when using page. Sorting only sorts the pets returned on the current page. Petfinder does not provide a way to sort by pet’s name. It can only sort by recent and distance in the initial call. I sort by name after the results are returned so it won’t work with paging.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>animal – Type of animal. Value should be one of the following or blank\u002Fdon’t set to get all: Dog, Cat, Rabbit, Small & Furry, Horse, Bird, Scales, Fins & Other, Barnyard.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>include_info – Value should be set to “yes” or “no”; default is “yes”. If set to “yes”, Breeds, Spayed\u002FNeutered, Up-to-date with routine shots, Housebroken, kid safe, cat safe, dog safe, special needs are displayed in list below photo thumbnails. Each list item has a different CSS class so you can hide any you do not want to show.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>css_class – Set your own class name on div containing all pets. The default value is ‘pets’. This allows you to control the styles separately on different pages.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>status –  For backwards compatability values can be one of [A, H, P, X], and new values of [adoptable, adopted, found]. Petfinder API V1 used: ‘A’ = adoptable, ‘H’ = hold, ‘P’ = pending, ‘X’ = adopted\u002Fremoved. Petfinder API V2 only accepts adoptable, adopted, and found, so values of H and P switch to adoptable now.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>sort_by – Value can be: newest, last_updated or name. Value can also be set globally in Petfinder Settings.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>age – Accepts values of: baby, young, adult, or senior. Can separate with commas to display pets that match more than one age group. If not set, will display pets from all age groups.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Note – parameter include_mixes was removed with Petfinder API v2.0 in plugin version 1.0.13\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Note – parameter contact was removed with version 1.0.19.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example:\u003Cbr \u002F>\n[shelter_list breed=”Italian Greyhound”] – other breeds are not displayed\u003C\u002Fp>\n\u003Cp>Example: [shelter_list count=20 page=1] and on another page [shelter_list count=20 page=2] – would list the first 20 pets on page with first shortcode, and the 2nd 20 pets on page with second shortcode.\u003C\u002Fp>\n\u003Cp>Example using all attributes: [shelter_list shelter_id=”WI185″ breed=”Italian Greyhound” count=75 page=2 animal=”Dog” include_info=”no” css_class=”cats” status=”adoptable” sort_by=”newest” age=”baby”]\u003C\u002Fp>\n\u003Cp>You can also list a single pet with the following shortcode\u003Cbr \u002F>\n[get_pet pet_id=”numeric value”]\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>pet_id – Required. You can get this id from the pet’s Petfinder URL. URL will look like the following: https:\u002F\u002Fwww.petfinder.com\u002Fdog\u002Fnanook-45732995\u002Fmo\u002Fkansas-city\u002Fmissouri-kansas-ig-rescue-mo306\u002F – 45732995 is the pet_id.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>css_class – Set your own class name on div containing single pet. The default value is ‘pets’. This allows you to control the styles separately on different pages.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>include_info – Value should be set to “yes” or “no”; default is “yes”. If set to “yes”, Breeds, Spayed\u002FNeutered, Up-to-date with routine shots, Housebroken, kid safe, cat safe, dog safe, special needs are displayed in list below photo thumbnails. Each list item has a different CSS class so you can hide any you do not want to show.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example using all attributes: [get_pet pet_id=”23367571″ include_info=”no” css_class=”cats”]\u003C\u002Fp>\n\u003Ch4>Widget\u003C\u002Fh4>\n\u003Cp>Add the List Petfinder Pets Featured Pet widget under Appearance -> Widgets.  After adding the widget to a widget area you can set a featured pet id to display a featured pet, or leave blank to display a random pet from your shelter.\u003Cbr \u002F>\nFeatured Pet Widget Settings:\u003C\u002Fp>\n\u003Cp>Featured Pet ID – You can get this id from the pet’s Petfinder URL. URL will look like the following: https:\u002F\u002Fwww.petfinder.com\u002Fdog\u002Fnanook-45732995\u002Fmo\u002Fkansas-city\u002Fmissouri-kansas-ig-rescue-mo306\u002F?referrer_id=cca97ef9-e23d-4d0b-b29d-52afa8f7d70e  – 45732995 is the pet id.\u003C\u002Fp>\n\u003Cp>Your Listing Page URL – The page where your shortcode [shelter_list] can be found. If this is set, your featured pet will link directly to this pet on your shelter list page. (Optional)\u003C\u002Fp>\n\u003Cp>Featured Pet Image Size – The size of the Featured Pet image. (Required)\u003C\u002Fp>\n\u003Cp>Featured Pet PDF Link – If you would like to create a PDF with more information about your Featured Pet. Link to the PDF uploaded separately through WordPress’ Media here.\u003C\u002Fp>\n\u003Ch3>Filters\u003C\u002Fh3>\n\u003Cp>Need to change your pets’ description? Perhaps you want to remove\u002Freplace special characters that are not displaying correctly, or want to add a paragraph to the end of all pets’ descriptions? You can do so with the following filter. Add it to your functions.php file. The filter name is petf_replace_description and it acts on all pets’ descriptions.\u003C\u002Fp>\n\u003Cp>function replace_pet_description( $description ) {\u003Cbr \u002F>\n    return $description . ” Add me to end of all pets’ descriptions”;\u003Cbr \u002F>\n}\u003Cbr \u002F>\nadd_filter( ‘petf_replace_description’, ‘replace_pet_description’ );\u003C\u002Fp>\n","The List Petfinder Pets plugin takes advantage of the Petfinder API to list your available pets on your website.",400,15876,96,11,"2024-11-13T17:00:00.000Z","6.7.5","3.0","",[53,20],"adoptable-pets","https:\u002F\u002Funboxinteractive.com\u002Fpetfinder-plugin-email-list\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpetfinder-listings.1.1.5.zip",92,"2022-02-21 00:00:00",{"slug":59,"name":60,"version":61,"author":62,"author_profile":63,"description":64,"short_description":65,"active_installs":24,"downloaded":66,"rating":24,"num_ratings":24,"last_updated":67,"tested_up_to":68,"requires_at_least":17,"requires_php":51,"tags":69,"homepage":51,"download_link":74,"security_score":23,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26},"pf404-for-petfinder","PF404 for PetFinder","0.1.0","brohar","https:\u002F\u002Fprofiles.wordpress.org\u002Fbrohar\u002F","\u003Cp>PF404 for PetFinder will replace your generic 404 page and replace it with animals available for adoption.  You can select between dogs, cats, birds, reptiles, horses, small and fury, and even barnyard animals.  Configure the page heading and contents of your 404 pages within the plugin settings page.\u003Cbr \u002F>\nThis plugin does require a free PetFinder API key.\u003Cbr \u002F>\nThis plugin or plugin developer is not affiliated with PetFinder.com.\u003C\u002Fp>\n","Overrides your 404 page template and shows dogs, cats, and other animals in need of new homes and available for adoption.",1168,"2017-07-07T19:45:00.000Z","4.8.28",[70,71,72,20,73],"404","not-found","page-not-found","pets","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpf404-for-petfinder.zip",{"attackSurface":76,"codeSignals":244,"taintFlows":554,"riskAssessment":674,"analyzedAt":687},{"hooks":77,"ajaxHandlers":224,"restRoutes":229,"shortcodes":230,"cronEvents":242,"entryPointCount":243,"unprotectedCount":14},[78,83,86,88,91,94,97,100,103,107,110,114,117,120,125,129,132,136,140,143,147,151,155,159,164,166,169,173,175,179,183,187,191,195,200,203,207,211,214,218,221],{"type":79,"name":80,"callback":80,"file":81,"line":82},"action","init","inc\\class-wp-petfinder.php",48,{"type":79,"name":84,"callback":84,"file":81,"line":85},"plugins_loaded",49,{"type":79,"name":87,"callback":87,"file":81,"line":31},"admin_menu",{"type":79,"name":89,"callback":89,"file":81,"line":90},"widgets_init",51,{"type":79,"name":92,"callback":92,"priority":13,"file":81,"line":93},"wp_enqueue_scripts",52,{"type":79,"name":95,"callback":95,"file":81,"line":96},"wppf_before_search_results",53,{"type":79,"name":98,"callback":98,"file":81,"line":99},"wppf_after_search_results",54,{"type":79,"name":101,"callback":101,"file":81,"line":102},"wppf_animal_gallery",55,{"type":104,"name":105,"callback":105,"file":81,"line":106},"filter","the_content",56,{"type":104,"name":108,"callback":108,"file":81,"line":109},"document_title_parts",57,{"type":104,"name":111,"callback":111,"priority":112,"file":81,"line":113},"the_title",10,58,{"type":79,"name":115,"callback":115,"file":81,"line":116},"admin_notices",59,{"type":79,"name":118,"callback":118,"file":81,"line":119},"wp_head",60,{"type":79,"name":121,"callback":122,"file":123,"line":124},"after_setup_theme","vp_tgm_ac_check","inc\\vafpress-framework\\bootstrap.php",73,{"type":79,"name":126,"callback":127,"file":123,"line":128},"tgmpa_register","vp_tgm_ac_vafpress_check",79,{"type":79,"name":80,"callback":130,"file":123,"line":131},"vp_metabox_enqueue",144,{"type":79,"name":133,"callback":134,"file":123,"line":135},"current_screen","vp_sg_enqueue",145,{"type":79,"name":137,"callback":138,"file":123,"line":139},"admin_enqueue_scripts","vp_enqueue_scripts",146,{"type":79,"name":133,"callback":141,"file":123,"line":142},"vp_sg_init_buttons",147,{"type":104,"name":144,"callback":145,"priority":112,"file":123,"line":146},"clean_url","vp_ace_script_attributes",148,{"type":79,"name":148,"callback":149,"file":123,"line":150},"admin_footer","vp_post_dummy_editor",193,{"type":104,"name":152,"callback":153,"file":123,"line":154},"wp_default_editor","anonymous",227,{"type":79,"name":80,"callback":156,"file":157,"line":158},"register_fields","inc\\vafpress-framework\\classes\\metabox.php",43,{"type":79,"name":160,"callback":161,"file":162,"line":163},"vp_option_first_activation","initial_db_setup","inc\\vafpress-framework\\classes\\option.php",81,{"type":79,"name":87,"callback":165,"file":162,"line":13},"register_menu_page",{"type":79,"name":115,"callback":167,"file":162,"line":168},"dev_mode_notice",162,{"type":79,"name":133,"callback":170,"file":171,"line":172},"init_mce_plugin","inc\\vafpress-framework\\classes\\shortcodegenerator.php",47,{"type":79,"name":148,"callback":174,"file":171,"line":113},"print_modal",{"type":104,"name":176,"callback":177,"file":171,"line":178},"mce_external_plugins","add_buttons",288,{"type":104,"name":180,"callback":181,"file":171,"line":182},"mce_buttons","register_buttons",289,{"type":104,"name":184,"callback":185,"file":171,"line":186},"wp_fullscreen_buttons","fullscreen_buttons",290,{"type":104,"name":188,"callback":189,"file":171,"line":190},"admin_print_styles","print_styles",291,{"type":79,"name":137,"callback":192,"file":193,"line":194},"register_caller","inc\\vafpress-framework\\classes\\wp\\enqueuer.php",27,{"type":79,"name":196,"callback":197,"file":198,"line":199},"admin_head","_global_head","inc\\vafpress-framework\\includes\\wpalchemy\\MetaBox.php",21,{"type":79,"name":148,"callback":201,"file":198,"line":202},"_global_foot",22,{"type":79,"name":204,"callback":205,"file":198,"line":206},"admin_init","_init",475,{"type":79,"name":208,"callback":209,"priority":112,"file":198,"line":210},"import_post_meta","_import",477,{"type":104,"name":212,"callback":153,"file":198,"line":213},"output",537,{"type":79,"name":215,"callback":216,"file":198,"line":217},"save_post","_save",547,{"type":79,"name":196,"callback":219,"priority":47,"file":198,"line":220},"_head",587,{"type":79,"name":148,"callback":222,"priority":47,"file":198,"line":223},"_foot",589,[225],{"action":226,"nopriv":227,"callback":226,"hasNonce":227,"hasCapCheck":227,"file":123,"line":228},"vp_ajax_wrapper",false,103,[],[231,234,237,240],{"tag":232,"callback":232,"file":81,"line":233},"pf_search_form",44,{"tag":235,"callback":235,"file":81,"line":236},"pf_search_results",45,{"tag":238,"callback":238,"file":81,"line":239},"pf_details",46,{"tag":241,"callback":241,"file":81,"line":172},"pf_animal",[],5,{"dangerousFunctions":245,"sqlUsage":253,"outputEscaping":259,"fileOperations":389,"externalRequests":423,"nonceChecks":423,"capabilityChecks":420,"bundledLibraries":550},[246,250],{"fn":247,"file":81,"line":248,"context":249},"unserialize",448,"return unserialize($row['contents']);",{"fn":251,"file":123,"line":154,"context":252},"create_function","add_filter( 'wp_default_editor', create_function('', 'return \"tinymce\";') );",{"prepared":254,"raw":14,"locations":255},6,[256],{"file":257,"line":202,"context":258},"inc\\vafpress-framework\\classes\\wp\\user.php","$wpdb->get_results() with variable interpolation",{"escaped":260,"rawEcho":261,"locations":262},350,169,[263,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,313,315,316,318,320,322,324,326,328,329,331,333,335,336,337,339,341,343,345,347,350,352,355,357,359,360,363,365,367,368,370,372,374,376,378,380,382,384,386,388,390,391,393,394,396,398,399,401,402,403,405,406,408,409,411,412,413,415,416,417,419,421,424,425,426,428,430,431,433,434,435,437,438,440,441,442,443,445,447,449,451,452,453,454,455,456,458,459,461,462,464,465,467,468,470,472,473,475,476,477,479,480,482,484,485,487,488,489,491,492,495,497,499,501,503,505,507,509,510,512,513,514,515,516,518,519,521,523,525,527,529,530,531,532,533,535,536,537,539,541,544,545,546,548],{"file":81,"line":264,"context":265},122,"raw output",{"file":81,"line":267,"context":265},795,{"file":81,"line":269,"context":265},797,{"file":81,"line":271,"context":265},1251,{"file":81,"line":273,"context":265},1268,{"file":81,"line":275,"context":265},1391,{"file":81,"line":277,"context":265},1548,{"file":81,"line":279,"context":265},1583,{"file":81,"line":281,"context":265},1604,{"file":81,"line":283,"context":265},1612,{"file":123,"line":285,"context":265},136,{"file":287,"line":109,"context":265},"inc\\vafpress-framework\\classes\\metabox\\alchemy.php",{"file":287,"line":289,"context":265},399,{"file":287,"line":291,"context":265},403,{"file":287,"line":293,"context":265},407,{"file":157,"line":295,"context":265},472,{"file":157,"line":297,"context":265},476,{"file":157,"line":299,"context":265},480,{"file":162,"line":301,"context":265},243,{"file":162,"line":303,"context":265},283,{"file":162,"line":305,"context":265},344,{"file":162,"line":307,"context":265},378,{"file":162,"line":309,"context":265},505,{"file":171,"line":311,"context":265},187,{"file":171,"line":311,"context":265},{"file":171,"line":314,"context":265},189,{"file":171,"line":314,"context":265},{"file":171,"line":317,"context":265},196,{"file":171,"line":319,"context":265},198,{"file":171,"line":321,"context":265},204,{"file":171,"line":323,"context":265},208,{"file":171,"line":325,"context":265},211,{"file":171,"line":327,"context":265},244,{"file":171,"line":327,"context":265},{"file":171,"line":330,"context":265},245,{"file":171,"line":332,"context":265},246,{"file":171,"line":334,"context":265},250,{"file":171,"line":334,"context":265},{"file":171,"line":334,"context":265},{"file":171,"line":338,"context":265},251,{"file":171,"line":340,"context":265},299,{"file":171,"line":342,"context":265},300,{"file":171,"line":344,"context":265},303,{"file":171,"line":346,"context":265},304,{"file":348,"line":349,"context":265},"inc\\vafpress-framework\\classes\\util\\profiler.php",12,{"file":348,"line":351,"context":265},13,{"file":353,"line":354,"context":265},"inc\\vafpress-framework\\classes\\util\\res.php",86,{"file":353,"line":356,"context":265},88,{"file":358,"line":102,"context":265},"inc\\vafpress-framework\\classes\\util\\text.php",{"file":358,"line":109,"context":265},{"file":361,"line":362,"context":265},"inc\\vafpress-framework\\classes\\wp\\util.php",35,{"file":198,"line":364,"context":265},629,{"file":198,"line":366,"context":265},769,{"file":198,"line":283,"context":265},{"file":198,"line":369,"context":265},1651,{"file":198,"line":371,"context":265},1731,{"file":198,"line":373,"context":265},1782,{"file":198,"line":375,"context":265},1892,{"file":198,"line":377,"context":265},1923,{"file":198,"line":379,"context":265},1954,{"file":198,"line":381,"context":265},1979,{"file":198,"line":383,"context":265},2033,{"file":198,"line":385,"context":265},2699,{"file":387,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\checkbox.php",{"file":387,"line":389,"context":265},7,{"file":387,"line":47,"context":265},{"file":392,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\checkimage.php",{"file":392,"line":47,"context":265},{"file":395,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\codeeditor.php",{"file":395,"line":397,"context":265},3,{"file":395,"line":254,"context":265},{"file":400,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\color.php",{"file":400,"line":397,"context":265},{"file":400,"line":389,"context":265},{"file":404,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\date.php",{"file":404,"line":243,"context":265},{"file":407,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\fontawesome.php",{"file":407,"line":112,"context":265},{"file":410,"line":397,"context":265},"inc\\vafpress-framework\\views\\control\\html.php",{"file":410,"line":243,"context":265},{"file":410,"line":254,"context":265},{"file":410,"line":414,"context":265},8,{"file":410,"line":112,"context":265},{"file":410,"line":349,"context":265},{"file":418,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\multiselect.php",{"file":418,"line":420,"context":265},9,{"file":422,"line":423,"context":265},"inc\\vafpress-framework\\views\\control\\notebox.php",4,{"file":422,"line":254,"context":265},{"file":422,"line":11,"context":265},{"file":422,"line":427,"context":265},31,{"file":429,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\radiobutton.php",{"file":429,"line":47,"context":265},{"file":432,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\radioimage.php",{"file":432,"line":389,"context":265},{"file":432,"line":47,"context":265},{"file":436,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\select.php",{"file":436,"line":112,"context":265},{"file":439,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\slider.php",{"file":439,"line":397,"context":265},{"file":439,"line":397,"context":265},{"file":439,"line":254,"context":265},{"file":444,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\sorter.php",{"file":444,"line":446,"context":265},14,{"file":444,"line":448,"context":265},18,{"file":450,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\template_control_head.php",{"file":450,"line":397,"context":265},{"file":450,"line":423,"context":265},{"file":450,"line":243,"context":265},{"file":450,"line":254,"context":265},{"file":450,"line":420,"context":265},{"file":457,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\textarea.php",{"file":457,"line":243,"context":265},{"file":460,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\textbox.php",{"file":460,"line":243,"context":265},{"file":463,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\toggle.php",{"file":463,"line":414,"context":265},{"file":466,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\upload.php",{"file":466,"line":349,"context":265},{"file":469,"line":14,"context":265},"inc\\vafpress-framework\\views\\control\\wpeditor.php",{"file":469,"line":471,"context":265},15,{"file":469,"line":448,"context":265},{"file":474,"line":243,"context":265},"inc\\vafpress-framework\\views\\option\\menu.php",{"file":474,"line":420,"context":265},{"file":474,"line":47,"context":265},{"file":478,"line":397,"context":265},"inc\\vafpress-framework\\views\\option\\section.php",{"file":478,"line":414,"context":265},{"file":481,"line":30,"context":265},"inc\\vafpress-framework\\views\\option\\set.php",{"file":481,"line":483,"context":265},20,{"file":481,"line":202,"context":265},{"file":481,"line":486,"context":265},33,{"file":481,"line":233,"context":265},{"file":481,"line":99,"context":265},{"file":481,"line":490,"context":265},77,{"file":481,"line":128,"context":265},{"file":493,"line":494,"context":265},"inc\\widgets\\animals-from-shelter.php",41,{"file":493,"line":496,"context":265},42,{"file":493,"line":498,"context":265},90,{"file":493,"line":500,"context":265},91,{"file":493,"line":502,"context":265},111,{"file":504,"line":194,"context":265},"inc\\widgets\\search-form.php",{"file":504,"line":506,"context":265},28,{"file":504,"line":508,"context":265},38,{"file":504,"line":498,"context":265},{"file":511,"line":494,"context":265},"inc\\widgets\\widget-animals-from-shelter.php",{"file":511,"line":496,"context":265},{"file":511,"line":498,"context":265},{"file":511,"line":500,"context":265},{"file":511,"line":502,"context":265},{"file":517,"line":96,"context":265},"templates\\animal-details.php",{"file":517,"line":109,"context":265},{"file":517,"line":520,"context":265},61,{"file":522,"line":423,"context":265},"templates\\animal-gallery-slick.php",{"file":522,"line":524,"context":265},25,{"file":526,"line":423,"context":265},"templates\\search-results-empty.php",{"file":528,"line":423,"context":265},"templates\\search-results-pager-normal.php",{"file":528,"line":112,"context":265},{"file":528,"line":112,"context":265},{"file":528,"line":351,"context":265},{"file":528,"line":448,"context":265},{"file":534,"line":243,"context":265},"templates\\search-results-pager-small.php",{"file":534,"line":349,"context":265},{"file":534,"line":351,"context":265},{"file":534,"line":538,"context":265},16,{"file":534,"line":540,"context":265},23,{"file":542,"line":543,"context":265},"templates\\search-results.php",17,{"file":542,"line":448,"context":265},{"file":542,"line":172,"context":265},{"file":547,"line":254,"context":265},"templates\\widgets\\search-form.php",{"file":547,"line":549,"context":265},34,[551],{"name":552,"version":25,"knownCves":553},"Select2",[],[555,572,633,642,652,666],{"entryPoint":556,"graph":557,"unsanitizedCount":14,"severity":571},"animal_gender_options (inc\\class-wp-petfinder.php:1244)",{"nodes":558,"edges":569},[559,564],{"id":560,"type":561,"label":562,"file":81,"line":563},"n0","source","$_GET",1250,{"id":565,"type":566,"label":567,"file":81,"line":271,"wp_function":568},"n1","sink","echo() [XSS]","echo",[570],{"from":560,"to":565,"sanitized":227},"medium",{"entryPoint":573,"graph":574,"unsanitizedCount":423,"severity":571},"\u003Cclass-wp-petfinder> (inc\\class-wp-petfinder.php:0)",{"nodes":575,"edges":622},[576,578,581,585,587,590,592,595,599,604,607,610,613,617,620],{"id":560,"type":561,"label":577,"file":81,"line":142},"$_SERVER['REQUEST_URI']",{"id":565,"type":566,"label":579,"file":81,"line":142,"wp_function":580},"update_option() [Settings Manipulation]","update_option",{"id":582,"type":561,"label":583,"file":81,"line":584},"n2","$_SERVER",596,{"id":586,"type":566,"label":567,"file":81,"line":271,"wp_function":568},"n3",{"id":588,"type":561,"label":589,"file":81,"line":563},"n4","$_GET (x5)",{"id":591,"type":566,"label":567,"file":81,"line":271,"wp_function":568},"n5",{"id":593,"type":561,"label":583,"file":81,"line":594},"n6",1198,{"id":596,"type":597,"label":598,"file":81,"line":594},"n7","transform","→ cache_get()",{"id":600,"type":566,"label":601,"file":81,"line":602,"wp_function":603},"n8","query() [SQLi]",453,"query",{"id":605,"type":561,"label":583,"file":81,"line":606},"n9",1204,{"id":608,"type":597,"label":609,"file":81,"line":606},"n10","→ cache_set()",{"id":611,"type":566,"label":601,"file":81,"line":612,"wp_function":603},"n11",426,{"id":614,"type":561,"label":615,"file":81,"line":616},"n12","$_GET (x4)",1379,{"id":618,"type":597,"label":619,"file":81,"line":616},"n13","→ invalid_id()",{"id":621,"type":566,"label":567,"file":81,"line":275,"wp_function":568},"n14",[623,625,626,627,628,629,630,631,632],{"from":560,"to":565,"sanitized":624},true,{"from":582,"to":586,"sanitized":624},{"from":588,"to":591,"sanitized":624},{"from":593,"to":596,"sanitized":227},{"from":596,"to":600,"sanitized":624},{"from":605,"to":608,"sanitized":227},{"from":608,"to":611,"sanitized":624},{"from":614,"to":618,"sanitized":227},{"from":618,"to":621,"sanitized":227},{"entryPoint":634,"graph":635,"unsanitizedCount":14,"severity":641},"admin_notices (inc\\class-wp-petfinder.php:132)",{"nodes":636,"edges":639},[637,638],{"id":560,"type":561,"label":577,"file":81,"line":142},{"id":565,"type":566,"label":579,"file":81,"line":142,"wp_function":580},[640],{"from":560,"to":565,"sanitized":227},"low",{"entryPoint":643,"graph":644,"unsanitizedCount":24,"severity":641},"\u003Csearch-form> (templates\\search-form.php:0)",{"nodes":645,"edges":650},[646,649],{"id":560,"type":561,"label":647,"file":648,"line":389},"$_GET['location']","templates\\search-form.php",{"id":565,"type":566,"label":567,"file":648,"line":389,"wp_function":568},[651],{"from":560,"to":565,"sanitized":624},{"entryPoint":653,"graph":654,"unsanitizedCount":30,"severity":665},"vp_ajax_wrapper (inc\\vafpress-framework\\bootstrap.php:107)",{"nodes":655,"edges":663},[656,659],{"id":560,"type":561,"label":657,"file":123,"line":658},"$_POST (x2)",109,{"id":565,"type":566,"label":660,"file":123,"line":661,"wp_function":662},"call_user_func_array() [RCE]",118,"call_user_func_array",[664],{"from":560,"to":565,"sanitized":227},"high",{"entryPoint":667,"graph":668,"unsanitizedCount":30,"severity":665},"\u003Cbootstrap> (inc\\vafpress-framework\\bootstrap.php:0)",{"nodes":669,"edges":672},[670,671],{"id":560,"type":561,"label":657,"file":123,"line":658},{"id":565,"type":566,"label":660,"file":123,"line":661,"wp_function":662},[673],{"from":560,"to":565,"sanitized":227},{"summary":675,"deductions":676},"The wp-petfinder plugin version 0.8 exhibits a mixed security posture. While it demonstrates good practices such as a high percentage of prepared SQL statements and a decent number of capability checks, several concerning areas require attention. The presence of an unprotected AJAX handler significantly increases the attack surface, as it's a direct entry point without any authentication or authorization mechanisms. Furthermore, the taint analysis revealing flows with unsanitized paths, specifically two of high severity, indicates potential vulnerabilities where user-supplied data could be improperly handled, leading to unintended consequences. The plugin's clean vulnerability history is a positive sign, suggesting a lack of known exploitable flaws. However, this should not be a cause for complacency, especially given the identified code signals and taint analysis results. The use of dangerous functions like 'unserialize' and 'create_function' also presents inherent risks if not handled with extreme care and robust validation. Overall, while the plugin is not currently known to be compromised, the identified code and taint analysis issues warrant remediation to improve its security.",[677,679,681,683,685],{"reason":678,"points":112},"Unprotected AJAX handler",{"reason":680,"points":471},"High severity taint flows (2)",{"reason":682,"points":414},"Dangerous function: unserialize",{"reason":684,"points":414},"Dangerous function: create_function",{"reason":686,"points":243},"Unsanitized paths in taint flows (5)","2026-03-16T22:25:23.489Z",{"wat":689,"direct":698},{"assetPaths":690,"generatorPatterns":693,"scriptPaths":694,"versionParams":695},[691,692],"\u002Fwp-content\u002Fplugins\u002Fwp-petfinder\u002Fassets\u002Fcss\u002Ffrontend.css","\u002Fwp-content\u002Fplugins\u002Fwp-petfinder\u002Fassets\u002Fjs\u002Ffrontend.js",[],[692],[696,697],"wp-petfinder\u002Fassets\u002Fcss\u002Ffrontend.css?ver=","wp-petfinder\u002Fassets\u002Fjs\u002Ffrontend.js?ver=",{"cssClasses":699,"htmlComments":702,"htmlAttributes":703,"restEndpoints":705,"jsGlobals":706,"shortcodeOutput":708},[700,701],"wppf-button","wppf-button-adopt",[],[704],"data-animal-id",[],[707],"wppf_params",[709,710,711,712],"[pf_search_form]","[pf_search_results]","[pf_details]","[pf_animal]"]