[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fYWkS4LO9Kp92H9_vbwAuoV6TERe7GvzTYnmGYm5dyUM":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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":37,"analysis":158,"fingerprints":355},"oxy-howto-maker","Oxyplug Howto Maker","2.2.0","Oxyplug Team","https:\u002F\u002Fprofiles.wordpress.org\u002Foxyplug\u002F","\u003Cp>Create Step-by-Step HowTo Guides – Transform your instructions into clear, organized tutorials, perfect for DIY projects that help your readers accomplish tasks efficiently.\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.oxyplug.com\u002Fproducts\u002Foxyplug-howto\u002Fhow-to-repot-your-plants\u002F?utm_source=description-tab&utm_medium=wp-repo&utm_campaign=oxyplug-howto-maker\" rel=\"nofollow ugc\">Oxyplug HowTo Maker Demo\u003C\u002Fa>\u003C\u002Fp>\n","Create Step-by-Step HowTo Guides",10,4745,0,"2025-04-09T09:11:00.000Z","6.8.5","4.9","7.4",[19,20,21,22,23],"diy","how-to","howto","oxy","steps","https:\u002F\u002Fwww.oxyplug.com\u002Fproducts\u002Foxyplug-howto\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Foxy-howto-maker.2.2.0.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":26,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"oxyplug",5,830,30,94,"2026-04-05T02:38:39.209Z",[38,62,88,108,134],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":60,"download_link":61,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"varnish-http-purge","Proxy Cache Purge","5.7.0","Danila Vershinin","https:\u002F\u002Fprofiles.wordpress.org\u002Fdvershinin\u002F","\u003Cp>\u003Cstrong>This plugin \u003Cem>does not\u003C\u002Fem> install nor configure a cache proxy. It acts as an interface with such services.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>One common method of caching content for websites is via the use of reverse proxy caching. Common examples of this are \u003Ca href=\"https:\u002F\u002Fwww.varnish-cache.org\u002F\" rel=\"nofollow ugc\">Varnish\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwww.nginx.org\u002F\" rel=\"nofollow ugc\">NGINX\u003C\u002Fa>. These systems allow a website to update content and have the visitor’s experience cached without the need for complex plugins storing the files locally and using up a user’s disk space.\u003C\u002Fp>\n\u003Cp>A reverse proxy cache is installed in front of a server and reviews requests. If the page being requested is already cached, it delivers the cached content. Otherwise it generates the page and the cache on demand.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>The Proxy Cache Purge plugin sends a request to delete (aka flush) the cached data of a page or post every time it’s modified.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Cp>When content on a site is updated by WordPress, the plugin reaches out to the proxy cache service with the URL of the page, requesting the cache be deleted.\u003C\u002Fp>\n\u003Cp>Not all pages are deleted from the cache on every change. For example, when a post, page, or custom post type is edited, or a new comment is added, \u003Cem>only\u003C\u002Fem> the following pages will purge:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The front page\u003C\u002Fli>\n\u003Cli>The post\u002Fpage edited\u003C\u002Fli>\n\u003Cli>Any categories, tags, and\u002For custom taxonomies associated with the page\u003C\u002Fli>\n\u003Cli>Related feeds\u003C\u002Fli>\n\u003Cli>Associated JSON API pages\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>In addition, your \u003Cem>entire\u003C\u002Fem> cache will be deleted on the following actions:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Changing themes\u003C\u002Fli>\n\u003Cli>Pressing the \u003Cstrong>Empty Cache\u003C\u002Fstrong> button on the toolbar\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Plugins can hook into the purge actions as well, to filter their own events to trigger a purge.\u003C\u002Fp>\n\u003Cp>On a multisite network using subfolders, only \u003Cstrong>network admins\u003C\u002Fstrong> can purge the main site.\u003C\u002Fp>\n\u003Ch4>Development Mode\u003C\u002Fh4>\n\u003Cp>If you’re working on a site and need to turn off caching in one of two ways:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Add \u003Ccode>define( 'VHP_DEVMODE', true );\u003C\u002Fcode> to your \u003Ccode>wp-config.php\u003C\u002Fcode> file\u003C\u002Fli>\n\u003Cli>Go to Proxy Cache -> Settings and enable Debug Mode for 24 hours at a time\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>That will break cache on page loads. It is \u003Cem>not\u003C\u002Fem> recommended for production!\u003C\u002Fp>\n\u003Ch4>Cache Tags (BETA)\u003C\u002Fh4>\n\u003Cp>As of version 5.4.0, Proxy Cache Purge includes an \u003Cstrong>optional Cache Tags \u002F Surrogate Keys purge mode\u003C\u002Fstrong>. This feature is marked as \u003Cstrong>BETA\u003C\u002Fstrong> and is disabled by default.\u003C\u002Fp>\n\u003Cp>When enabled, the plugin:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Adds cache-tag headers to WordPress responses (for example, tagging pages by post ID, post type, taxonomy terms, author, and archives).\u003C\u002Fli>\n\u003Cli>Uses tag-based purges instead of individual URL purges when content is updated, which can reduce purge traffic and improve consistency on complex sites.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Requirements:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A proxy cache that supports Cache Tags \u002F Surrogate Keys and advertises this via standard \u003Ccode>Surrogate-Capability\u003C\u002Fcode> headers (for example, \u003Ccode>Surrogate-Capability: vhp=\"Surrogate\u002F1.0 tags\u002F1\"\u003C\u002Fcode>).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>How to enable:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Go to \u003Cstrong>Proxy Cache \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Purge Method\u003C\u002Fstrong> and check \u003Cstrong>“Use Cache Tags (Surrogate Keys)”\u003C\u002Fstrong>. The checkbox is only enabled when your cache tells WordPress it supports tags (or when you explicitly enable it via a define).\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Alternatively, you can force-enable or force-disable detection via \u003Ccode>wp-config.php\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cp>define( ‘VHP_VARNISH_TAGS’, true );  \u002F\u002F Force treat cache as tag-capable\u003Cbr \u002F>\ndefine( ‘VHP_VARNISH_TAGS’, false ); \u002F\u002F Force treat cache as not tag-capable\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Because this feature depends on your cache configuration, it is recommended that you test it carefully in staging before enabling it on production.\u003C\u002Fp>\n\u003Ch4>Background Purging with WP-Cron\u003C\u002Fh4>\n\u003Cp>On busy sites, sending many PURGE requests directly from admin requests can slow things down. When you define \u003Ccode>DISABLE_WP_CRON\u003C\u002Fcode> as \u003Ccode>true\u003C\u002Fcode> in \u003Ccode>wp-config.php\u003C\u002Fcode> (because you are running a real system cron that calls \u003Ccode>wp-cron.php\u003C\u002Fcode>), Proxy Cache Purge automatically switches to an asynchronous mode:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purge requests (both URL-based and tag-based, when Cache Tags are enabled) are collected into a small per-site queue.\u003C\u002Fli>\n\u003Cli>The queue is processed by WP-Cron in the background, keeping your admin and content-editing actions responsive even when many URLs or tags must be invalidated.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Object-cache purges (the “Purge Database Cache” option) remain synchronous and are not affected by this behaviour. The Proxy Cache settings page and Site Health integration expose basic queue status so you can verify that background purging is healthy; if the queue appears large or very old, check that your system cron is correctly invoking WordPress cron.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Important: Cron Frequency and Cache Freshness\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>When using background purging, the frequency of your system cron determines how quickly cache invalidations are processed. The longer the interval between cron runs, the longer visitors may see stale content after updates.\u003C\u002Fp>\n\u003Cp>For minimal stale content, run your system cron every minute:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>* * * * * \u002Fusr\u002Fbin\u002Fphp \u002Fvar\u002Fwww\u002Fhtml\u002Fwp-cron.php\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>If you can tolerate slightly longer delays, every 2-5 minutes is also acceptable. However, running cron less frequently (e.g., every 15 minutes) means cache purges may be delayed by that amount after content changes.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Note:\u003C\u002Fstrong> Scheduled posts are handled specially. When a scheduled post is published via WP-Cron, the cache is purged synchronously within the same cron run, ensuring immediate cache invalidation without waiting for the next cron execution.\u003C\u002Fp>\n\u003Cp>For detailed instructions on setting up a proper Linux-based WordPress cron, see: \u003Ca href=\"https:\u002F\u002Fwww.getpagespeed.com\u002Fweb-apps\u002Fwordpress\u002Fwordpress-cron-optimization\" rel=\"nofollow ugc\">WordPress Cron Optimization\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Disabling Background Purging\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>If you have \u003Ccode>DISABLE_WP_CRON\u003C\u002Fcode> defined but do not want background purging (for example, on low-traffic sites where immediate purges are preferred), you can force-disable cron-based purging by adding this to your \u003Ccode>wp-config.php\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define( 'VHP_DISABLE_CRON_PURGING', true );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>With this constant set, all cache purges will execute immediately during the request, regardless of the \u003Ccode>DISABLE_WP_CRON\u003C\u002Fcode> setting.\u003C\u002Fp>\n\u003Ch3>WP-CLI\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Purge\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Purge commands let you empty the cache.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wp varnish purge\u003C\u002Fcode> – Flush the entire site cache (equivalent to clicking “Empty Cache” in admin)\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge --all\u003C\u002Fcode> – Explicitly flush the entire site cache\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge \u003Curl>\u003C\u002Fcode> – Flush cache for a specific URL and all content below it (wildcard)\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge \u003Curl> --url-only\u003C\u002Fcode> – Flush cache for only the exact URL specified (no wildcard)\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge --tag=\u003Ctag>\u003C\u002Fcode> – Flush cache by tag (requires Cache Tags mode to be enabled)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Examples:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wp varnish purge\u003C\u002Fcode> – Purge entire site\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge --all\u003C\u002Fcode> – Same as above, more explicit\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge https:\u002F\u002Fexample.com\u002Fhello-world\u002F\u003C\u002Fcode> – Purge this URL and everything below it\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge https:\u002F\u002Fexample.com\u002Fhello-world\u002F --url-only\u003C\u002Fcode> – Purge only this exact URL\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge https:\u002F\u002Fexample.com\u002Fwp-content\u002Fthemes\u002F --wildcard\u003C\u002Fcode> – Purge all theme files\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge --tag=p-123\u003C\u002Fcode> – Purge all pages tagged with post ID 123\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge --tag=pt-post\u003C\u002Fcode> – Purge all cached pages of post type “post”\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Debug\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Debugging can help you figure out why your cache isn’t working as well as it could. The default is for your home page, but you can pass any URL on your domain.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wp varnish debug [\u003Curl>]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Available parameters:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>[--include-headers]\u003C\u002Fcode> —  Include headers in debug check output\u003C\u002Fli>\n\u003Cli>\u003Ccode>[--include-grep]\u003C\u002Fcode> — Grep active theme and plugin directories for common issues\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>DevMode\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Development mode allows you to disable the cache, temporarily.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wp varnish devmode [\u003Cactivate|deactivate|toggle>]\u003C\u002Fcode> – Change development mode state\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Async purge queue (cron-mode)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>When you define \u003Ccode>DISABLE_WP_CRON\u003C\u002Fcode> as \u003Ccode>true\u003C\u002Fcode> and run a real system cron for WordPress, Proxy Cache Purge can move heavy purge work into a small background queue that is processed by WP‑Cron.\u003C\u002Fp>\n\u003Cp>You can inspect and manage that queue via WP‑CLI:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wp varnish queue status\u003C\u002Fcode> – show whether cron-mode is active, if a full purge is queued, counts of queued URLs\u002Ftags, and the last queue run time.\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish queue process\u003C\u002Fcode> – process any items currently in the queue (useful to run after deploys or cache‑sensitive operations).\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish queue clear\u003C\u002Fcode> – clear the queue without sending any PURGE requests.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>These commands do not replace your normal WordPress cron (you still need a cron entry that calls \u003Ccode>wp cron event run --due-now\u003C\u002Fcode> or hits \u003Ccode>wp-cron.php\u003C\u002Fcode>), but they give you a simple operational handle when using cron‑mode.\u003C\u002Fp>\n\u003Ch4>Understanding Purge Behavior\u003C\u002Fh4>\n\u003Cp>There are different types of cache purges, and they behave differently:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Manual Purges (Admin Bar)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>“Purge Cache (All Pages)”\u003C\u002Fstrong> – Sends a single regex purge request to invalidate the entire cache. Always executes immediately.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“Purge Cache (this page)”\u003C\u002Fstrong> – Purges only the exact URL you’re viewing. Always executes immediately.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Manual purges are always immediate, even when background cron-mode is enabled. This is intentional: when you click a button, you expect immediate results.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Automatic Purges (Post Save\u002FUpdate)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>When you save or update a post, the plugin automatically purges:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The post’s URL\u003C\u002Fli>\n\u003Cli>The homepage\u003C\u002Fli>\n\u003Cli>Category archive pages\u003C\u002Fli>\n\u003Cli>Tag archive pages\u003C\u002Fli>\n\u003Cli>Author archive page\u003C\u002Fli>\n\u003Cli>Date-based archives\u003C\u002Fli>\n\u003Cli>RSS feeds\u003C\u002Fli>\n\u003Cli>Related REST API endpoints\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This can be 20-50+ URLs depending on your site structure. When cron-mode is enabled, these automatic purges are queued and processed in the background to avoid slowing down the post editor.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Difference\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>  Action\u003Cbr \u002F>\n  URLs Purged\u003Cbr \u002F>\n  Uses Cron Queue?\u003C\u002Fp>\n\u003Cp>  “Purge Cache (All Pages)”\u003Cbr \u002F>\n  1 (regex)\u003Cbr \u002F>\n  No – always immediate\u003C\u002Fp>\n\u003Cp>  “Purge Cache (this page)”\u003Cbr \u002F>\n  1\u003Cbr \u002F>\n  No – always immediate\u003C\u002Fp>\n\u003Cp>  Post save\u002Fupdate\u003Cbr \u002F>\n  20-50+\u003Cbr \u002F>\n  Yes (if cron-mode enabled)\u003C\u002Fp>\n\u003Cp>If you need to immediately purge all URLs related to a specific post (not just the post URL), save the post – the automatic purge will handle all related URLs.\u003C\u002Fp>\n","Automatically empty proxy cached content when your site is modified.",40000,2164070,88,26,"2026-03-13T00:00:00.000Z","6.3.8","5.0","5.6",[55,56,57,58,59],"cache","nginx","proxy","purge","varnish","https:\u002F\u002Fgithub.com\u002Fdvershinin\u002Fvarnish-http-purge","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fvarnish-http-purge.5.7.0.zip",{"slug":63,"name":64,"version":65,"author":66,"author_profile":67,"description":68,"short_description":69,"active_installs":70,"downloaded":71,"rating":72,"num_ratings":73,"last_updated":74,"tested_up_to":75,"requires_at_least":76,"requires_php":17,"tags":77,"homepage":83,"download_link":84,"security_score":85,"vuln_count":86,"unpatched_count":13,"last_vuln_date":87,"fetched_at":28},"ip2location-country-blocker","IP2Location Country Blocker","2.41.2","IP2Location","https:\u002F\u002Fprofiles.wordpress.org\u002Fip2location\u002F","\u003Cp>\u003Cem>This plugin will NOT work if any cache plugin is enabled.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>This plugin enables user to block unwanted traffic from accessing your frontend (blog pages) or backend (admin area) by countries or proxy servers. It helps to reduce spam and unwanted sign ups easily by preventing unwanted visitors from browsing a particular page or entire website.\u003C\u002Fp>\n\u003Cp>Key Features\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Allow you to block the access from multiple countries.\u003C\u002Fli>\n\u003Cli>Allow you to block the access by country grouping, such as EU, APAC, and so on.\u003C\u002Fli>\n\u003Cli>Allow you to block the access from anonymous proxies.\u003C\u002Fli>\n\u003Cli>Allow you to block the access by IP ranges.\u003C\u002Fli>\n\u003Cli>Allow you to whitelist the crawler, for example, Google, Bing, Yandex, and so on, to index your pages (SEO friendly).\u003C\u002Fli>\n\u003Cli>Supports IPv4 and IPv6\u003C\u002Fli>\n\u003Cli>Default to 403 error (Permission Denied) display\u003C\u002Fli>\n\u003Cli>Allow you to customize your own 403 page.\u003C\u002Fli>\n\u003Cli>Send you an email notification if some one is trying to access your admin area.\u003C\u002Fli>\n\u003Cli>Provide you statistical report of traffics blocked.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin supports both IP2Location BIN data and web service for IP geolocation lookup. If you would like to use the IP2Location geolocation BIN data, you can easily download and update the BIN data via the plugin settings page. Alternatively, you can also download and update the BIN data file manually using the below links:\u003C\u002Fp>\n\u003Cp>IP Geolocation file download:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Flite.ip2location.com\" title=\"IP2Location LITE database\" rel=\"nofollow ugc\">IP2Location & IP2Proxy LITE database (Free)\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fip2location.com\" title=\"IP2Location commercial database\" rel=\"nofollow ugc\">IP2Location & IP2Proxy Commercial database (Comprehensive)\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>To use the IP2Location IP geolocation web service (REST API) for geolocation, you’ll need to register an account at \u003Ca href=\"https:\u002F\u002Fwww.ip2location.io\" title=\"IP2Location.io IP Geolocation API\" rel=\"nofollow ugc\">IP2Location.io IP Geolocation API\u003C\u002Fa>. A free plan is available.\u003C\u002Fp>\n\u003Ch4>More Information\u003C\u002Fh4>\n\u003Cp>Please visit us at \u003Ca href=\"https:\u002F\u002Fwww.ip2location.com\" title=\"https:\u002F\u002Fwww.ip2location.com\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.ip2location.com\u003C\u002Fa>\u003C\u002Fp>\n","Blocks unwanted visitors from accessing your frontend (blog pages) or backend (admin area) by countries or proxy servers.",30000,1626215,84,124,"2025-12-03T07:19:00.000Z","6.9.4","4.6",[78,79,80,81,82],"block-country","block-proxy","ip-address","ip2location","redirection","https:\u002F\u002Fip2location.com\u002Fresources\u002Fwordpress-ip2location-country-blocker","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fip2location-country-blocker.2.41.2.zip",93,9,"2025-02-21 19:56:54",{"slug":89,"name":90,"version":91,"author":90,"author_profile":92,"description":93,"short_description":94,"active_installs":95,"downloaded":96,"rating":26,"num_ratings":97,"last_updated":98,"tested_up_to":15,"requires_at_least":99,"requires_php":17,"tags":100,"homepage":106,"download_link":107,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"core-framework","Core Framework","1.9.3","https:\u002F\u002Fprofiles.wordpress.org\u002Fcoreframework\u002F","\u003Cp>Hey there! If you’re tinkering with WordPress and have a knack for making sites look just right, you might like what we’ve cooked up with Core Framework. It’s like a Swiss Army knife for your CSS woes but way easier to use and with a lot more fun involved.\u003C\u002Fp>\n\u003Ch3>What’s Cooking?\u003C\u002Fh3>\n\u003Cp>✅ \u003Cstrong>Make It Yours\u003C\u002Fstrong>: Ever felt boxed in by CSS frameworks? We get it. That’s why we made Core Framework as customizable as a build-your-own pizza. You start with our base (which is pretty awesome on its own), and then add, tweak, or remove anything you don’t need. It’s all about making it fit your project like a glove.\u003C\u002Fp>\n\u003Cp>✅ \u003Cstrong>Play Well with Others\u003C\u002Fstrong>: Whether you’re team Gutenberg, all about Bricks, or an Oxygen fan, we’ve got your back. Core Framework slides right into your workflow, making it that much smoother to sprinkle your design magic everywhere.\u003C\u002Fp>\n\u003Cp>✅ \u003Cstrong>A Dash of This, A Dash of That\u003C\u002Fstrong>: Organize your colors, manage those borders, and set your typography scale just right. We’re all about making the tedious tasks a piece of cake, so you can focus on the fun parts of design.\u003C\u002Fp>\n\u003Cp>✅ \u003Cstrong>Components Galore\u003C\u002Fstrong>: Reusable components are your best friends. Buttons, input styles, cards – you name it, we help you keep it all neat and tidy, ready to be reused whenever you need them.\u003C\u002Fp>\n\u003Cp>✅ \u003Cstrong>Join the Club\u003C\u002Fstrong>: With over 4,000 buddies already in the Core Framework family, you’re in good company. Our \u003Ca href=\"https:\u002F\u002Fcoreframework.com\u002Fmarketplace\" rel=\"nofollow ugc\">marketplace\u003C\u002Fa> is like a treasure chest of our ecosystem, full of add-ons, UI kits, and templates. Plus, you’re more than welcome to contribute as an author!\u003C\u002Fp>\n\u003Ch3>Who’s It For?\u003C\u002Fh3>\n\u003Cp>From solo freelancers to big-time agencies, if you’re crafting websites, you’ll feel right at home with Core Framework. It’s all about making your life a bit easier and a lot more creative.\u003C\u002Fp>\n\u003Ch3>Easy Peasy Setup\u003C\u002Fh3>\n\u003Cp>Getting started is as simple as installing any WordPress plugin. Find Core Framework in your dashboard, hit “Save” after making changes, and voila! The framework is live on your site.\u003C\u002Fp>\n\u003Cp>Learn more about all settings in our \u003Ca href=\"https:\u002F\u002Fdocs.coreframework.com\u002F\" rel=\"nofollow ugc\">documentation\u003C\u002Fa> portal.\u003C\u002Fp>\n\u003Ch3>Customize to Your Heart’s Content\u003C\u002Fh3>\n\u003Cp>Inside Core Framework, everything can be tweaked. Colors, classes, variables – mix and match them to create something that’s uniquely yours.\u003C\u002Fp>\n\u003Ch3>Need a Hand?\u003C\u002Fh3>\n\u003Cp>Our support crew is here for you via Intercom on our site, and our docs are always available for a quick how-to or when you’re in the mood for some light reading.\u003C\u002Fp>\n\u003Cp>Simply contact us at any time using the Intercom at the \u003Ca href=\"https:\u002F\u002Fcoreframework.com\u002F\" rel=\"nofollow ugc\">Core Framework\u003C\u002Fa> website or in our Facebook community \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Fgroups\u002Fcoreframework\" rel=\"nofollow ugc\">group\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Keeping It Fresh\u003C\u002Fh3>\n\u003Cp>We’re always rolling out updates and staying on top of WordPress changes to make sure you’ve got the smoothest ride possible.\u003C\u002Fp>\n\u003Cp>Find out about every Core Framework update in our \u003Ca href=\"https:\u002F\u002Fdocs.coreframework.com\u002Fchangelog\u002Fchangelog\" rel=\"nofollow ugc\">changelog\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>From Friends You Trust\u003C\u002Fh3>\n\u003Cp>Brought to you by the folks behind \u003Ca href=\"https:\u002F\u002Fmotion.page\u002F\" rel=\"nofollow ugc\">Motion.page\u003C\u002Fa>, we’ve been around the block and we’re here to stay. We love hearing from our users, so don’t be shy!\u003C\u002Fp>\n\u003Ch3>Come On In, The Water’s Fine\u003C\u002Fh3>\n\u003Cp>Core Framework isn’t just about making sites look pretty (although it does that pretty well). It’s about enjoying the process, exploring new possibilities, and being part of a community that gets it. So, why not give it a whirl?\u003C\u002Fp>\n","Say hello to Core Framework - a FREE modular CSS framework platform.",10000,142407,41,"2026-01-19T15:04:00.000Z","6.0",[101,102,103,104,105],"bricks","css","framework","oxygen","stylesheet","https:\u002F\u002Fcoreframework.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcore-framework.1.9.3.zip",{"slug":109,"name":110,"version":111,"author":112,"author_profile":113,"description":114,"short_description":115,"active_installs":116,"downloaded":117,"rating":118,"num_ratings":119,"last_updated":120,"tested_up_to":75,"requires_at_least":121,"requires_php":122,"tags":123,"homepage":129,"download_link":130,"security_score":131,"vuln_count":132,"unpatched_count":13,"last_vuln_date":133,"fetched_at":28},"wp-multi-step-checkout","Multi-Step Checkout for WooCommerce","2.34","SilkyPress","https:\u002F\u002Fprofiles.wordpress.org\u002Fdiana_burduja\u002F","\u003Cp>Create a better user experience by splitting the checkout process in several steps. This will also improve your conversion rate.\u003C\u002Fp>\n\u003Cp>The plugin was made with the use of the WooCommerce standard templates. This ensure that it should work with most the themes out there. Nevertheless, if you find that something isn’t properly working, let us know in the Support forum.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Sleak design\u003C\u002Fli>\n\u003Cli>Mobile friendly\u003C\u002Fli>\n\u003Cli>Responsive layout\u003C\u002Fli>\n\u003Cli>Adjust the main color to your theme\u003C\u002Fli>\n\u003Cli>Inherit the form and buttons design from your theme\u003C\u002Fli>\n\u003Cli>Keyboard navigation\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Available translations\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>German\u003C\u002Fli>\n\u003Cli>French\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Tags: multistep checkout, multi-step-checkout, woocommerce, checkout, shop checkout, checkout steps, checkout wizard, checkout style, checkout page\u003C\u002Fp>\n","Split the different sections of the default WooCommerce checkout page into multiple steps. Allow your customers a faster and easier checkout process.",8000,425606,90,49,"2025-12-02T12:06:00.000Z","3.0.1","5.2.4",[124,125,126,127,128],"checkout-steps","multi-step-checkout","multistep-checkout","shop-checkout","woocommerce","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-multi-step-checkout\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-multi-step-checkout.2.34.zip",99,1,"2025-12-15 00:00:00",{"slug":135,"name":136,"version":137,"author":138,"author_profile":139,"description":140,"short_description":141,"active_installs":142,"downloaded":143,"rating":144,"num_ratings":145,"last_updated":146,"tested_up_to":75,"requires_at_least":147,"requires_php":17,"tags":148,"homepage":153,"download_link":154,"security_score":155,"vuln_count":156,"unpatched_count":13,"last_vuln_date":157,"fetched_at":28},"mediavine-create","Create","2.1.1","mischiefmarmot","https:\u002F\u002Fprofiles.wordpress.org\u002Fmischiefmarmot\u002F","\u003Ch4>Recipes, guides, and lists — for creators who care about their craft.\u003C\u002Fh4>\n\u003Cp>Create gives you everything you need to publish recipes, how-to guides, and lists — with correct Schema.org markup, fast page loads, and an editor that stays out of your way. Whether you’re sharing recipes, DIY tutorials, travel guides, crochet patterns, game walkthroughs, or curated round-ups, Create handles the structured content so you can focus on creating.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>One plugin. Three card types. Full schema support.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Recipes\u003C\u002Fstrong> — Granular ingredient editing, free nutrition calculator, video embeds, and built-in importers for 10+ recipe plugins\u003C\u002Fli>\n\u003Cli>\u003Cstrong>How-to guides\u003C\u002Fstrong> — Step-by-step instructions with materials lists, photos, and video for any kind of tutorial or guide\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Lists and round-ups\u003C\u002Fstrong> — Showcase links, images, and products with bulk import and drag-and-drop ordering\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>New Independent Ownership\u003C\u002Fh4>\n\u003Cp>In mid-2025, Create was \u003Ca href=\"https:\u002F\u002Fcreate.studio\u002Fhello\" rel=\"nofollow ugc\">purchased\u003C\u002Fa> from Mediavine by John-Michael, one of the plugin’s founding developers. Create is now fully independent and continues to be actively developed at \u003Ca href=\"https:\u002F\u002Fcreate.studio\" rel=\"nofollow ugc\">Create Studio\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Why Create?\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Fast by default\u003C\u002Fstrong> — Lightweight JavaScript and optimized bundling so your cards don’t slow down your pages\u003C\u002Fp>\n\u003Cp>\u003Cstrong>SEO built in\u003C\u002Fstrong> — Recipe, HowTo, and ItemList JSON-LD generated automatically with one-click schema validation\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Looks like your site\u003C\u002Fstrong> — Seven card themes that inherit your fonts and colors, including Editorial and Modern Elegant\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Ad-ready themes\u003C\u002Fstrong> — Optimized card layouts with configurable ad slot placements\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Gutenberg and Classic Editor\u003C\u002Fstrong> — Full block editor support with live preview, plus shortcode fallback\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Built-in importers\u003C\u002Fstrong> — Switch from WP Recipe Maker, Tasty, EasyRecipe, and 8 other plugins without a separate download\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Free nutrition calculator\u003C\u002Fstrong> — Automatic nutrition data powered by \u003Ca href=\"https:\u002F\u002Fapi-ninjas.com\u002Fapi\u002Fnutrition\" rel=\"nofollow ugc\">API Ninjas\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Modern editor experience\u003C\u002Fstrong> — Keyboard shortcuts throughout the app, simple workflows, and unobtrusive customization options designed for how \u003Cem>you\u003C\u002Fem> actually work\u003C\u002Fp>\n\u003Ch4>Premium Features\u003C\u002Fh4>\n\u003Cp>Upgrade through \u003Ca href=\"https:\u002F\u002Fcreate.studio\" rel=\"nofollow ugc\">Create Studio\u003C\u002Fa> to unlock:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Interactive Mode\u003C\u002Fstrong> — Turns your cards into a hands-free cooking companion with interactive checklists so readers can check off ingredients and steps as they go\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Adjustable Servings and Unit Conversion\u003C\u002Fstrong> — Readers scale ingredient quantities and convert between metric and imperial\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Premium themes\u003C\u002Fstrong> — Editorial and Modern Elegant card designs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Review management\u003C\u002Fstrong> — Reader reviews with featured review blocks and response tools\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk list tools\u003C\u002Fstrong> — Paste URLs to bulk-import list items, plus inline bulk editing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Products in Lists\u003C\u002Fstrong> — Add product items for affiliate placements\u003C\u002Fli>\n\u003C\u002Ful>\n","Complete tool for creating and publishing recipes and other schema types on your site.",6000,269419,82,18,"2026-03-05T15:40:00.000Z","6.5",[20,149,150,151,152],"nutrition","recipe","recipe-card","schema","https:\u002F\u002Fcreate.studio\u002Fplugin","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmediavine-create.zip",95,4,"2024-08-12 00:00:00",{"attackSurface":159,"codeSignals":208,"taintFlows":249,"riskAssessment":342,"analyzedAt":354},{"hooks":160,"ajaxHandlers":204,"restRoutes":205,"shortcodes":206,"cronEvents":207,"entryPointCount":13,"unprotectedCount":13},[161,167,171,175,178,182,186,189,193,197,202],{"type":162,"name":163,"callback":164,"file":165,"line":166},"action","plugins_loaded","init_lang","index.php",38,{"type":162,"name":168,"callback":169,"file":165,"line":170},"init","fill_config_error",51,{"type":162,"name":172,"callback":173,"file":165,"line":174},"admin_menu","add_menu",52,{"type":162,"name":168,"callback":176,"file":165,"line":177},"save_settings",54,{"type":162,"name":179,"callback":180,"priority":132,"file":165,"line":181},"add_meta_boxes","create_metabox",55,{"type":162,"name":183,"callback":184,"priority":11,"file":165,"line":185},"save_post","save_metaboxes",56,{"type":162,"name":187,"callback":187,"file":165,"line":188},"admin_notices",57,{"type":162,"name":190,"callback":191,"file":165,"line":192},"wp_enqueue_scripts","add_assets",58,{"type":162,"name":194,"callback":195,"file":165,"line":196},"admin_enqueue_scripts","add_admin_assets",59,{"type":198,"name":199,"callback":200,"priority":11,"file":165,"line":201},"filter","plugin_action_links","modify_plugin_actions",60,{"type":162,"name":183,"callback":184,"priority":11,"file":165,"line":203},1351,[],[],[],[],{"dangerousFunctions":209,"sqlUsage":210,"outputEscaping":212,"fileOperations":32,"externalRequests":13,"nonceChecks":247,"capabilityChecks":132,"bundledLibraries":248},[],{"prepared":13,"raw":13,"locations":211},[],{"escaped":213,"rawEcho":214,"locations":215},229,15,[216,219,221,223,225,227,229,231,233,235,237,239,241,243,245],{"file":165,"line":217,"context":218},320,"raw output",{"file":165,"line":220,"context":218},326,{"file":165,"line":222,"context":218},332,{"file":165,"line":224,"context":218},338,{"file":165,"line":226,"context":218},344,{"file":165,"line":228,"context":218},350,{"file":165,"line":230,"context":218},356,{"file":165,"line":232,"context":218},734,{"file":165,"line":234,"context":218},763,{"file":165,"line":236,"context":218},785,{"file":165,"line":238,"context":218},864,{"file":165,"line":240,"context":218},929,{"file":165,"line":242,"context":218},989,{"file":165,"line":244,"context":218},1142,{"file":165,"line":246,"context":218},1245,2,[],[250,283,313],{"entryPoint":251,"graph":252,"unsanitizedCount":247,"severity":282},"oxy_howto_maker_settings_page (index.php:214)",{"nodes":253,"edges":277},[254,259,265,268,272],{"id":255,"type":256,"label":257,"file":165,"line":258},"n0","source","$_GET",217,{"id":260,"type":261,"label":262,"file":165,"line":263,"wp_function":264},"n1","sink","update_option() [Settings Manipulation]",221,"update_option",{"id":266,"type":256,"label":257,"file":165,"line":267},"n2",279,{"id":269,"type":270,"label":271,"file":165,"line":267},"n3","transform","→ css_to_array()",{"id":273,"type":261,"label":274,"file":165,"line":275,"wp_function":276},"n4","fopen() [File Access]",538,"fopen",[278,280,281],{"from":255,"to":260,"sanitized":279},false,{"from":266,"to":269,"sanitized":279},{"from":269,"to":273,"sanitized":279},"medium",{"entryPoint":284,"graph":285,"unsanitizedCount":132,"severity":282},"save_settings (index.php:395)",{"nodes":286,"edges":307},[287,290,294,296,298,299,302],{"id":255,"type":256,"label":288,"file":165,"line":289},"$_POST (x2)",400,{"id":260,"type":261,"label":291,"file":165,"line":292,"wp_function":293},"file_put_contents() [File Write]",403,"file_put_contents",{"id":266,"type":256,"label":295,"file":165,"line":289},"$_POST",{"id":269,"type":261,"label":262,"file":165,"line":297,"wp_function":264},405,{"id":273,"type":256,"label":295,"file":165,"line":292},{"id":300,"type":270,"label":301,"file":165,"line":292},"n5","→ modify_css()",{"id":303,"type":261,"label":304,"file":165,"line":305,"wp_function":306},"n6","file_get_contents() [SSRF\u002FLFI]",495,"file_get_contents",[308,310,311,312],{"from":255,"to":260,"sanitized":309},true,{"from":266,"to":269,"sanitized":309},{"from":273,"to":300,"sanitized":279},{"from":300,"to":303,"sanitized":279},{"entryPoint":314,"graph":315,"unsanitizedCount":247,"severity":282},"\u003Cindex> (index.php:0)",{"nodes":316,"edges":334},[317,318,319,320,321,322,323,324,326,328,330,332],{"id":255,"type":256,"label":257,"file":165,"line":258},{"id":260,"type":261,"label":262,"file":165,"line":263,"wp_function":264},{"id":266,"type":256,"label":288,"file":165,"line":289},{"id":269,"type":261,"label":291,"file":165,"line":292,"wp_function":293},{"id":273,"type":256,"label":295,"file":165,"line":289},{"id":300,"type":261,"label":262,"file":165,"line":297,"wp_function":264},{"id":303,"type":256,"label":257,"file":165,"line":267},{"id":325,"type":270,"label":271,"file":165,"line":267},"n7",{"id":327,"type":261,"label":274,"file":165,"line":275,"wp_function":276},"n8",{"id":329,"type":256,"label":295,"file":165,"line":292},"n9",{"id":331,"type":270,"label":301,"file":165,"line":292},"n10",{"id":333,"type":261,"label":304,"file":165,"line":305,"wp_function":306},"n11",[335,336,337,338,339,340,341],{"from":255,"to":260,"sanitized":309},{"from":266,"to":269,"sanitized":309},{"from":273,"to":300,"sanitized":309},{"from":303,"to":325,"sanitized":279},{"from":325,"to":327,"sanitized":279},{"from":329,"to":331,"sanitized":279},{"from":331,"to":333,"sanitized":279},{"summary":343,"deductions":344},"The 'oxy-howto-maker' v2.2.0 plugin exhibits a generally strong security posture based on the provided static analysis. The absence of any known CVEs and the plugin's clean vulnerability history are positive indicators.  The code analysis reveals a well-implemented approach to SQL queries, with 100% using prepared statements, and a high rate of output escaping (94%).  The limited attack surface, with no AJAX handlers, REST API routes, shortcodes, or cron events, further contributes to its security.  \n\nHowever, there are a few areas that warrant attention.  The taint analysis indicates three flows with unsanitized paths, which, while not classified as critical or high severity in this instance, represent a potential concern.  Furthermore, the plugin performs five file operations, and while not explicitly flagged as insecure, this is an area where vulnerabilities can sometimes emerge if not handled with extreme care.  The presence of only two nonce checks and one capability check for the observed code signals suggests that authentication and authorization might not be as robustly implemented across all potential interaction points if the attack surface were larger. \n\nIn conclusion, 'oxy-howto-maker' v2.2.0 appears to be a secure plugin with a strong focus on fundamental security practices like prepared statements and output escaping. The lack of historical vulnerabilities reinforces this. The primary areas for improvement lie in ensuring all identified taint flows are thoroughly sanitized and in potentially strengthening authentication\u002Fauthorization mechanisms if the plugin's functionality expands in the future. The file operations should also be monitored for secure implementation.",[345,347,349,352],{"reason":346,"points":86},"Taint flows with unsanitized paths",{"reason":348,"points":247},"File operations performed",{"reason":350,"points":351},"Limited nonce checks",3,{"reason":353,"points":351},"Limited capability checks","2026-03-17T01:01:05.278Z",{"wat":356,"direct":367},{"assetPaths":357,"generatorPatterns":361,"scriptPaths":362,"versionParams":363},[358,359,360],"\u002Fwp-content\u002Fplugins\u002Foxy-howto-maker\u002Fassets\u002Fcss\u002Foxy-howto-maker.css","\u002Fwp-content\u002Fplugins\u002Foxy-howto-maker\u002Fassets\u002Fcss\u002Fcustom\u002Foxy-howto-maker-custom.css","\u002Fwp-content\u002Fplugins\u002Foxy-howto-maker\u002Fassets\u002Fjs\u002Foxy-howto-maker.js",[],[360],[364,365,366],"oxy-howto-maker\u002Fassets\u002Fcss\u002Foxy-howto-maker.css?ver=","oxy-howto-maker\u002Fassets\u002Fcss\u002Fcustom\u002Foxy-howto-maker-custom.css?ver=","oxy-howto-maker\u002Fassets\u002Fjs\u002Foxy-howto-maker.js?ver=",{"cssClasses":368,"htmlComments":371,"htmlAttributes":372,"restEndpoints":374,"jsGlobals":375,"shortcodeOutput":377},[369,370],"oxy-howto-maker-block","oxy-howto-maker-step",[],[373],"data-oxy-howto-maker-step-id",[],[376],"oxy_howto_maker_data",[378],"[oxy_howto_maker]"]