[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fBOUXty4LsxUYDp5da86bNZDDc0gaCLVKESTZ74tU1Cc":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":29,"last_vuln_date":30,"fetched_at":31,"vulnerabilities":32,"developer":89,"crawl_stats":38,"alternatives":97,"analysis":198,"fingerprints":711},"host-webfonts-local","OMGF | GDPR\u002FDSGVO Compliant, Faster Google Fonts. Easy.","6.1.4","Daan van den Bergh","https:\u002F\u002Fprofiles.wordpress.org\u002Fdaanvandenbergh\u002F","\u003Cp>\u003Cstrong>OMGF can be downloaded for free without any paid subscription from \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fhost-webfonts-local\u002F\" rel=\"ugc\">the official WordPress repository\u003C\u002Fa>.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>How could using fonts via Google’s service possibly run afoul of GDPR? The fact of the matter is that, when a font is requested by the user’s browser, their IP is logged by Google and used for analytics.\u003Cbr \u002F>\n  — Lifehacker\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cstrong>Leverage Browser Cache\u003C\u002Fstrong>, \u003Cstrong>reduce DNS lookups\u002Frequests\u003C\u002Fstrong>, \u003Cstrong>reduce Cumulative Layout Shift\u003C\u002Fstrong> and make your Google Fonts \u003Cstrong>100% GDPR compliant\u003C\u002Fstrong> with OMGF!\u003C\u002Fp>\n\u003Cp>OMGF is written with performance and user-friendliness in mind. It uses the Google Fonts API to automatically cache the fonts your theme and plugins use to \u003Cstrong>minimize DNS requests\u003C\u002Fstrong> and speed up your WordPress website.\u003C\u002Fp>\n\u003Ch4>How Does It Work?\u003C\u002Fh4>\n\u003Cp>After installing and configuring the plugin, OMGF will automatically start looking for Google Fonts whenever a page is requested on your website.\u003C\u002Fp>\n\u003Cp>All Google Fonts are listed in the \u003Cstrong>Optimize Local Fonts\u003C\u002Fstrong> section of OMGF’s settings screen. There, you can choose to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>Preload\u003C\u002Fem> fonts to \u003Cstrong>reduce Cumulative Layout Shift\u003C\u002Fstrong> above the fold,\u003C\u002Fli>\n\u003Cli>\u003Cem>Unload\u003C\u002Fem> fonts that’re not used by you, your theme and\u002For plugins,\u003C\u002Fli>\n\u003Cli>Set a \u003Cem>Fallback Font Stack\u003C\u002Fem> (OMGF Pro required), to further \u003Cstrong>reduce Cumulative Layout Shift\u003C\u002Fstrong>, or\u003C\u002Fli>\n\u003Cli>\u003Cem>Replace\u003C\u002Fem> (OMGF Pro required) font-families with system fonts to \u003Cstrong>speed up loading times\u003C\u002Fstrong>!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Other Features include\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>The \u003Cstrong>integrated Google Fonts checker\u003C\u002Fstrong> notifies you if a plugin or your theme has added Google Fonts (e.g. after an update) it can’t process.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Variable Fonts\u003C\u002Fstrong> support,\u003C\u002Fli>\n\u003Cli>Automatically \u003Cstrong>Remove unused subsets\u003C\u002Fstrong> to reduce the size of the CSS stylesheet up to 90%!\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Remove Resource Hints\u003C\u002Fstrong> (preload, preconnect, dns-prefetch) pointing to \u003Ccode>fonts.googleapis.com\u003C\u002Fcode> or\u003Cbr \u002F>\n  fonts.gstatic.com,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Ensure text remains visible during webfont load\u003C\u002Fstrong> by forcing the \u003Cem>font-display\u003C\u002Fem> attribute to your Google Fonts,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Ensure text remains visible during webfont load\u003C\u002Fstrong> by forcing the \u003Cem>font-display\u003C\u002Fem> attribute to all your other fonts! (\u003Cbr \u002F>\nOMGF Pro required),\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Additional Features in OMGF Pro\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Run the \u003Cstrong>Google Fonts checker\u003C\u002Fstrong> in the frontend (for all users) to \u003Cstrong>organically check for present external Google Fonts\u003C\u002Fstrong> throughout your site.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smart Preload\u003C\u002Fstrong> automatically configures which fonts should be preloaded i.e., loaded early to reduce Cumulative Layout Shift, Largest Contentful Paint and \u003Ca href=\"https:\u002F\u002Fdaan.dev\u002Fblog\u002Fhow-to\u002Fensure-text-remains-visible-during-webfont-load\u002F\" rel=\"nofollow ugc\">Ensure Text Remains Visible During Webfont Load\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Automatically configures itself to make sure all externally hosted Google Fonts on your site are hosted locally. OMGF Pro supports:\n\u003Cul>\n\u003Cli>\u003Ccode>@font-face\u003C\u002Fcode> and \u003Ccode>@import\u003C\u002Fcode> statements inside \u003Cstrong>inline \u003Ccode>\u003Cstyle>\u003C\u002Fcode> blocks\u003C\u002Fstrong>,\u003C\u002Fli>\n\u003Cli>\u003Ccode>@font-face\u003C\u002Fcode> and \u003Ccode>@import\u003C\u002Fcode> statements inside \u003Cstrong>local stylesheets\u003C\u002Fstrong> loaded by e.g. your theme and\u002For plugins,\u003C\u002Fli>\n\u003Cli>\u003Ccode>@font-face\u003C\u002Fcode> and \u003Ccode>@import\u003C\u002Fcode> statements inside \u003Cstrong>externally hosted stylesheets\u003C\u002Fstrong> loaded by your theme and\u002For\u003Cbr \u002F>\nplugins,\u003C\u002Fli>\n\u003Cli>Web Font Loader (\u003Ccode>webfont.js\u003C\u002Fcode>),\u003C\u002Fli>\n\u003Cli>Async Google Fonts (loaded using JS)\u003C\u002Fli>\n\u003Cli>Material Icons.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multisite\u003C\u002Fstrong> and \u003Cstrong>WPML\u003C\u002Fstrong> support.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Whitelabel stylesheets\u003C\u002Fstrong>, which removes branding and comments from the stylesheets to further reduce the size.\u003C\u002Fli>\n\u003Cli>Modify your fonts’ \u003Ccode>src: url()\u003C\u002Fcode> attribute to fully integrate with your configuration,\n\u003Cul>\n\u003Cli>Use this to serve fonts and the stylesheets from your CDN, or\u003C\u002Fli>\n\u003Cli>To serve fonts from an alternative path (e.g. when you’re using Security through Obscurity plugins like WP Hide,\u003Cbr \u002F>\netc.), or\u003C\u002Fli>\n\u003Cli>Anything you like!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer Mode\u003C\u002Fstrong>, which allows you to easily migrate between Development, Staging\u002FTesting, Acceptance and Production\u003Cbr \u002F>\nenvironments.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>\u003Ca href=\"https:\u002F\u002Fdaan.dev\u002Fwordpress\u002Fomgf-pro\u002F\" rel=\"nofollow ugc\">Purchase OMGF Pro\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdaan.dev\u002Fdocs\u002Fomgf-pro\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdaan.dev\u002Fdocs\u002Fomgf-pro\u002Ftested-themes-plugins\u002F\" rel=\"nofollow ugc\">Tested Plugins & Themes\u003C\u002Fa>\u003C\u002Fem>\u003C\u002Fp>\n","OMGF automagically caches the Google Fonts used by your theme\u002Fplugins locally. No configuration (or brains) required!",300000,9201522,94,211,"2026-02-23T18:53:00.000Z","6.9.4","5.9","7.3",[20,21,22,23,24],"cache","dsgvo","fonts","gdpr","google","https:\u002F\u002Fdaan.dev\u002Fwordpress\u002Fomgf\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhost-webfonts-local.6.1.4.zip",96,4,0,"2024-01-02 00:00:00","2026-03-15T15:16:48.613Z",[33,49,65,79],{"id":34,"url_slug":35,"title":36,"description":37,"plugin_slug":4,"theme_slug":38,"affected_versions":39,"patched_in_version":40,"severity":41,"cvss_score":42,"cvss_vector":43,"vuln_type":44,"published_date":30,"updated_date":45,"references":46,"days_to_patch":48},"CVE-2023-6600","omgf-gdprdsgvo-compliant-faster-google-fonts-easy-missing-authorization-to-unauthenticated-directory-deletion-and-cross-","OMGF | GDPR\u002FDSGVO Compliant, Faster Google Fonts. Easy. \u003C= 5.7.9 - Missing Authorization to Unauthenticated Directory Deletion and Cross-Site Scripting","The OMGF | GDPR\u002FDSGVO Compliant, Faster Google Fonts. Easy. plugin for WordPress is vulnerable to unauthorized modification of data and Stored Cross-Site Scripting due to a missing capability check on the update_settings() function hooked via admin_init in all versions up to, and including, 5.7.9. This makes it possible for unauthenticated attackers to update the plugin's settings which can be used to inject Cross-Site Scripting payloads and delete entire directories. PLease note there were several attempted patched, and we consider 5.7.10 to be the most sufficiently patched.",null,"\u003C=5.7.9","5.7.10","high",8.6,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:L\u002FI:L\u002FA:H","Missing Authorization","2024-07-29 21:36:20",[47],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F4e835b97-c066-4e8f-b99f-1a930105af0c?source=api-prod",210,{"id":50,"url_slug":51,"title":52,"description":53,"plugin_slug":4,"theme_slug":38,"affected_versions":54,"patched_in_version":55,"severity":56,"cvss_score":57,"cvss_vector":58,"vuln_type":59,"published_date":60,"updated_date":61,"references":62,"days_to_patch":64},"CVE-2021-25021","omgf-authenticated-admin-arbitrary-folder-deletion-via-path-traversal","OMGF \u003C= 4.5.11 - Authenticated (Admin+) Arbitrary Folder Deletion via Path Traversal","The OMGF | Host Google Fonts Locally WordPress plugin before 4.5.12 does not validate the cache directory setting, allowing high privilege users to use a path traversal vector and delete arbitrary folders when uninstalling the plugin","\u003C=4.5.11","4.5.12","medium",4.9,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:H\u002FUI:N\u002FS:U\u002FC:N\u002FI:H\u002FA:N","Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","2021-12-01 00:00:00","2024-01-22 19:56:02",[63],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Ff6c71e38-5ac3-46f1-8292-a49c6e44f1d8?source=api-prod",783,{"id":66,"url_slug":67,"title":68,"description":69,"plugin_slug":4,"theme_slug":38,"affected_versions":70,"patched_in_version":71,"severity":41,"cvss_score":72,"cvss_vector":73,"vuln_type":74,"published_date":75,"updated_date":61,"references":76,"days_to_patch":78},"CVE-2021-24639","omgf-subscriber-arbitrary-filefolder-deletion","OMGF \u003C= 4.5.3 - Subscriber+ Arbitrary File\u002FFolder Deletion","The OMGF WordPress plugin before 4.5.4 does not enforce path validation, authorisation and CSRF checks in the omgf_ajax_empty_dir AJAX action, which allows any authenticated users to delete arbitrary files or folders on the server.","\u003C=4.5.3","4.5.4",8.1,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:U\u002FC:N\u002FI:H\u002FA:H","Improper Access Control","2021-08-23 00:00:00",[77],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F3a00980c-2d27-4363-acad-ed9d1e7e37b2?source=api-prod",883,{"id":80,"url_slug":81,"title":82,"description":83,"plugin_slug":4,"theme_slug":38,"affected_versions":70,"patched_in_version":71,"severity":84,"cvss_score":85,"cvss_vector":86,"vuln_type":59,"published_date":75,"updated_date":61,"references":87,"days_to_patch":78},"CVE-2021-24638","omgf-unauthenticated-path-traversal-in-rest-api","OMGF \u003C= 4.5.3 - Unauthenticated Path Traversal in REST API","The OMGF WordPress plugin before 4.5.4 does not escape or validate the handle parameter of the REST API, which allows unauthenticated users to perform path traversal and overwrite arbitrary CSS file with Google Fonts CSS, or download fonts uploaded on Google Fonts website.","critical",9.1,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:N\u002FI:H\u002FA:H",[88],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fb90640d2-d6f4-4c3b-8e9b-038d57f5fd6f?source=api-prod",{"slug":90,"display_name":7,"profile_url":8,"plugin_count":91,"total_installs":92,"avg_security_score":93,"avg_patch_time_days":94,"trust_score":95,"computed_at":96},"daanvandenbergh",3,311000,93,597,74,"2026-04-04T21:48:23.260Z",[98,120,139,158,176],{"slug":99,"name":100,"version":101,"author":102,"author_profile":103,"description":104,"short_description":105,"active_installs":106,"downloaded":107,"rating":108,"num_ratings":109,"last_updated":110,"tested_up_to":16,"requires_at_least":111,"requires_php":112,"tags":113,"homepage":117,"download_link":118,"security_score":119,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"disable-remove-google-fonts","Disable and Remove Google Fonts | GDPR & DSGVO friendly","1.8.2","fontsplugin","https:\u002F\u002Fprofiles.wordpress.org\u002Ffontsplugin\u002F","\u003Cp>Improve frontend performance by disabling \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Folympus-google-fonts\u002F\" rel=\"ugc\">Google Fonts\u003C\u002Fa> loaded by themes and plugins.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Looking to Host Google Fonts locally? Check out \u003Ca href=\"https:\u002F\u002Ffontsplugin.com\u002Fdrgf-upgrade\u002F\" rel=\"nofollow ugc\">Fonts Plugin Pro\u003C\u002Fa>.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>While this plugin removes Google Fonts from as many themes and plugins as possible, some require additional steps, we have detailed those here: \u003Ca href=\"https:\u002F\u002Ffontsplugin.com\u002Fremove-disable-google-fonts\u002F\" rel=\"nofollow ugc\">Remove Google Fonts from WordPress\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>After installing this plugin, clear your website cache and test your site using the free \u003Ca href=\"https:\u002F\u002Ffontsplugin.com\u002Fgoogle-fonts-checker\" rel=\"nofollow ugc\">Google Fonts Checker\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>New “Check Google Fonts” Feature\u003C\u002Fh4>\n\u003Cp>This plugin now includes a new “Check Google Fonts” feature. This feature allows you to check if Google Fonts are being loaded on your website. It does this by capturing the full HTML of the current page and checking for Google Fonts references.\u003C\u002Fp>\n\u003Cp>To use this feature, simply click the “Check Google Fonts” button in the admin bar. This will open a new window\u002Ftab with the results.\u003C\u002Fp>\n\u003Cp>The results will show you:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The number of Google Fonts that are being loaded\u003C\u002Fli>\n\u003Cli>The URLs of the Google Fonts that are being loaded\u003C\u002Fli>\n\u003Cli>The source of the Google Fonts that are being loaded\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Plugin Compatibility\u003C\u002Fh4>\n\u003Cp>This plugin will work with all WordPress themes and has been specifically tested with the following:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Twenty Twelve\u003C\u002Fli>\n\u003Cli>Twenty Thirteen\u003C\u002Fli>\n\u003Cli>Twenty Fourteen\u003C\u002Fli>\n\u003Cli>Twenty Fifteen\u003C\u002Fli>\n\u003Cli>Twenty Sixteen\u003C\u002Fli>\n\u003Cli>Twenty Seventeen\u003C\u002Fli>\n\u003Cli>Twenty Nineteen\u003C\u002Fli>\n\u003Cli>Twenty Twenty\u003C\u002Fli>\n\u003Cli>Twenty Twenty-One\u003C\u002Fli>\n\u003Cli>Twenty Twenty-Two\u003C\u002Fli>\n\u003Cli>Twenty Twenty-Three\u003C\u002Fli>\n\u003Cli>Twenty Twenty-Four\u003C\u002Fli>\n\u003Cli>Twenty Twenty-Five\u003C\u002Fli>\n\u003Cli>Acabado\u003C\u002Fli>\n\u003Cli>Avada\u003C\u002Fli>\n\u003Cli>Blocksy\u003C\u002Fli>\n\u003Cli>ColorMag\u003C\u002Fli>\n\u003Cli>Divi Extra\u003C\u002Fli>\n\u003Cli>Enfold\u003C\u002Fli>\n\u003Cli>GeneratePress\u003C\u002Fli>\n\u003Cli>Hestia\u003C\u002Fli>\n\u003Cli>Hueman\u003C\u002Fli>\n\u003Cli>JupiterX\u003C\u002Fli>\n\u003Cli>Kadence\u003C\u002Fli>\n\u003Cli>Neve\u003C\u002Fli>\n\u003Cli>OnePress\u003C\u002Fli>\n\u003Cli>Shapely\u003C\u002Fli>\n\u003Cli>Stackable\u003C\u002Fli>\n\u003Cli>Storefront\u003C\u002Fli>\n\u003Cli>Sydney\u003C\u002Fli>\n\u003Cli>Vantage\u003C\u002Fli>\n\u003Cli>Zerif Lite\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>It will also remove Google Fonts loaded by the following plugins:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Divi\u003C\u002Fli>\n\u003Cli>Redux\u003C\u002Fli>\n\u003Cli>MailPoet\u003C\u002Fli>\n\u003Cli>Elementor\u003C\u002Fli>\n\u003Cli>GroovyMenu\u003C\u002Fli>\n\u003Cli>Kadence Blocks\u003C\u002Fli>\n\u003Cli>Beaver Builder\u003C\u002Fli>\n\u003Cli>Revolution Slider\u003C\u002Fli>\n\u003Cli>Ajax Search Lite & Pro\u003C\u002Fli>\n\u003Cli>WPBakery (Visual Composer)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>As well as improving page load speed, removing Google Font references can also aid with GDPR and DSGVO compliance.\u003C\u002Fp>\n\u003Ch4>Bugs\u003C\u002Fh4>\n\u003Cp>If you find an issue with this plugin, please let us know \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fdisable-remove-google-fonts#new-post\" rel=\"ugc\">here\u003C\u002Fa>!\u003C\u002Fp>\n\u003Ch4>Contributions\u003C\u002Fh4>\n\u003Cp>Anyone is welcome to contribute to this plugin.\u003C\u002Fp>\n\u003Cp>There are various ways you can contribute:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Raise an \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fdisable-remove-google-fonts#new-post\" rel=\"ugc\">Issue\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Translate the Disable and Remove Google Fonts plugin into \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fdisable-remove-google-fonts\u002F\" rel=\"nofollow ugc\">different languages\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Provide feedback and suggestions on \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fdisable-remove-google-fonts#new-post\" rel=\"ugc\">enhancements\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Fol>\n","Improve frontend performance by disabling Google Fonts. GDPR and DSGVO friendly.",100000,2840912,90,46,"2026-01-19T16:05:00.000Z","4.8","",[114,21,23,115,116],"disable-google-fonts","google-fonts","optimize","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdisable-remove-google-fonts\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdisable-remove-google-fonts.1.8.2.zip",100,{"slug":121,"name":122,"version":123,"author":124,"author_profile":125,"description":126,"short_description":127,"active_installs":128,"downloaded":129,"rating":27,"num_ratings":130,"last_updated":131,"tested_up_to":132,"requires_at_least":133,"requires_php":134,"tags":135,"homepage":112,"download_link":137,"security_score":138,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"selfhost-google-fonts","Self-Hosted Google Fonts","1.0.1","asadkn","https:\u002F\u002Fprofiles.wordpress.org\u002Fasadkn\u002F","\u003Cp>An easy way to self-host all your Google Fonts for increased Privacy or to meet a law requirement.\u003Cbr \u002F>\nTheme and plugin authors are often unwilling to offer a self-hosted method and it’s quite laborious to download and upload each of the required font.\u003C\u002Fp>\n\u003Cp>This plugin makes it all easy. It will scan all CSS on your site and automagically download and host on your server the necessary Google Web Fonts.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How it works:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Converts all Google Font enqueues to locally hosted CSS files.\u003C\u002Fli>\n\u003Cli>Scans and converts any inline style tags using @imports for fonts.\u003C\u002Fli>\n\u003Cli>Processes all the local CSS files that weren’t properly enqueued (bad authors?).\u003C\u002Fli>\n\u003Cli>While doing so, downloads all the required Google Fonts to your server.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatic self-hosted fonts with no effort.\u003C\u002Fli>\n\u003Cli>Compatible with all themes and plugins.\u003C\u002Fli>\n\u003Cli>Supports IE9+ and all modern browsers.\u003C\u002Fli>\n\u003Cli>Optimized code benchmarked for performance.\u003C\u002Fli>\n\u003Cli>Built-in cache for processing.\u003C\u002Fli>\n\u003Cli>Compatible with cache plugins and Autoptimize.\u003C\u002Fli>\n\u003Cli>API and hooks for theme & plugin authors.\u003C\u002Fli>\n\u003Cli>Uses unicode-range for optimized fonts when using multiple subsets. Google officially does this too, but other solutions for downloading fonts don’t support this.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Dev Notes\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cem>Cache\u003C\u002Fem>: The most common reason for a failure. If you have a cache plugin, clear the caches.\u003C\u002Fp>\n\u003Cp>It will not work with JS solutions like WebFont Loader. If you’re a developer, you can still use this plugin’s API to get the needed CSS and files to convert your WebFont Loader. I will post instructions on support forums if there’s interest.\u003C\u002Fp>\n","Automatically self-host all the Google Fonts on your site. Plug and play.",30000,152694,40,"2018-06-15T05:34:00.000Z","4.9.29","4.0","5.4",[21,23,115,136],"typography","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fselfhost-google-fonts.zip",85,{"slug":140,"name":141,"version":142,"author":143,"author_profile":144,"description":145,"short_description":146,"active_installs":147,"downloaded":148,"rating":119,"num_ratings":149,"last_updated":150,"tested_up_to":16,"requires_at_least":151,"requires_php":152,"tags":153,"homepage":156,"download_link":157,"security_score":119,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"yabe-webfont","Yabe Webfont – Use Custom Fonts, Google Fonts or Adobe Fonts","1.0.98","Sua","https:\u002F\u002Fprofiles.wordpress.org\u002Fsuabahasa\u002F","\u003Ch3>Yabe Webfont: the #1 Self-hosted Google Fonts and Custom Fonts Manager for WordPress\u003C\u002Fh3>\n\u003Cp>Yabe Webfont is a GDPR-friendly font WordPress plugin made for designers and developers that is advanced, easy to use, and intuitive to give you complete control over your fonts and typography in WordPress.\u003C\u002Fp>\n\u003Ch3>FEATURES\u003C\u002Fh3>\n\u003Cp>Yabe Webfont is packed full of features designed to streamline your workflow. Some of our favorites are:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>GDPR \u002F DSGVO friendly\u003C\u002Fstrong>: You can import\u002Fself-host Google Fonts files from your server through your WordPress admin page. Fewer reasons to worry about GDPR \u002F DSGVO compliance.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Google Fonts and Adobe Fonts ready\u003C\u002Fstrong>: Start using any available fonts on Google Fonts and Adobe Fonts.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Fonts\u003C\u002Fstrong>: A dedicated custom fonts manager for WordPress. The central place to manage all your fonts and typography.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Easy to use\u003C\u002Fstrong>: Add custom fonts to your WordPress site with a simple and intuitive interface. No coding knowledge is needed. You can upload the font files using the WordPress media uploader. No FTP is required.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fine-tuning\u003C\u002Fstrong>: Complete control over your fonts and typography. On 90% of use cases, the default one is good to go.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Lightweight and blazingly fast\u003C\u002Fstrong>: The font management system uses WordPress REST API and a modern JavaScript framework for an instant, responsive user experience. The front page cache ensures fast loading and reduces database queries.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Variable Fonts support\u003C\u002Fstrong>: The format allows a single font file to contain multiple stylistic variations.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multisite support\u003C\u002Fstrong>: The plugin is compatible with WordPress Multisite (Activate the plugin on the site level).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>SEAMLESS INTEGRATION\u003C\u002Fh3>\n\u003Cp>The font must be available for use across different platforms. Yabe Webfont is famous for seamlessly integrating with the most popular visual\u002Fpage builders:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbuilderius.io\u002F?referral=afdfca82c8\" rel=\"nofollow ugc\">Builderius\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fclassic-editor\u002F\" rel=\"ugc\">Classic Editor\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbe.elementor.com\u002Fvisit\u002F?bta=209150&brand=elementor\" rel=\"nofollow ugc\">Elementor\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgeneratepress.com\u002F?ref=7954\" rel=\"nofollow ugc\">GeneratePress\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fgutenberg\" rel=\"ugc\">Gutenberg Blocks and Site Editor\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fkadencewp.com\" rel=\"nofollow ugc\">Kadence WP\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fpinegrow.com\u002Fwordpress\" rel=\"nofollow ugc\">Pinegrow\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.wpbeaverbuilder.com\u002F\" rel=\"nofollow ugc\">Beaver Builder\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fcreativethemes.com\u002Fblocksy\" rel=\"nofollow ugc\">Blocksy\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbreakdance.com\u002Fref\u002F165\u002F\" rel=\"nofollow ugc\">Breakdance\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbricksbuilder.io\u002F\" rel=\"nofollow ugc\">Bricks\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fcwicly.com\u002F?ref=suabahasa\" rel=\"nofollow ugc\">Cwicly\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.elegantthemes.com\u002Faffiliates\u002Fidevaffiliate.php?id=47622\" rel=\"nofollow ugc\">Divi\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fetchwp.com\" rel=\"nofollow ugc\">Etch\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fslingblocks\u002F\" rel=\"ugc\">FunnelKit\u002FSlingBlocks\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgreenshiftwp.com\u002F\" rel=\"nofollow ugc\">Greenshift\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Foxygenbuilder.com\u002F\" rel=\"nofollow ugc\">Oxygen\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.sliderrevolution.com\u002F\" rel=\"nofollow ugc\">Slider Revolution\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwpspectra.com\u002F\" rel=\"nofollow ugc\">Spectra\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fyellowpencil.waspthemes.com\u002F\" rel=\"nofollow ugc\">YellowPencil\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzionbuilder.io\u002F\" rel=\"nofollow ugc\">Zion Builder\u003C\u002Fa> \u003Cstrong>[Pro]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Visit \u003Ca href=\"https:\u002F\u002Fwebfont.yabe.land\" rel=\"nofollow ugc\">our website\u003C\u002Fa> for more information.\u003C\u002Fp>\n\u003Ch4>Love Yabe Webfont?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Purchase the \u003Ca href=\"https:\u002F\u002Fwebfont.yabe.land\" rel=\"nofollow ugc\">Pro version\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Join our \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Fgroups\u002F1142662969627943\" rel=\"nofollow ugc\">Facebook Group\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Or rate us on \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fyabe-webfont\u002Freviews\u002F?filter=5\u002F#new-post\" rel=\"ugc\">WordPress\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Image by \u003Ca href=\"https:\u002F\u002Fwww.flaticon.com\u002Ffree-icon\u002Fwindmill_5137991?related_id=5137991\" rel=\"nofollow ugc\">Freepik\u003C\u002Fa> on Flaticon\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FuMj0x0ucnOw?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FA0JZzEVIUzQ?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n","Easy self-host Google Fonts, Adobe Fonts support, or upload custom fonts in WordPress. Integrated into the most popular themes and page builders.",5000,26241,25,"2026-02-05T15:37:00.000Z","6.0","7.4",[154,155,21,23,115],"adobe-fonts","custom-fonts","https:\u002F\u002Fwebfont.yabe.land","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fyabe-webfont.1.0.98.zip",{"slug":159,"name":160,"version":161,"author":162,"author_profile":163,"description":164,"short_description":165,"active_installs":106,"downloaded":166,"rating":167,"num_ratings":168,"last_updated":169,"tested_up_to":170,"requires_at_least":171,"requires_php":152,"tags":172,"homepage":112,"download_link":175,"security_score":119,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"local-google-fonts","Local Google Fonts","0.24.0","EverPress","https:\u002F\u002Fprofiles.wordpress.org\u002Feverpress\u002F","\u003Cp>Host your used Google fonts on your server and make your site more GDPR compliant 💯.\u003C\u002Fp>\n\u003Cp>About 50 mio\u003Ca href=\"https:\u002F\u002Ftrends.builtwith.com\u002Fwebsitelist\u002FGoogle-Font-API\" rel=\"nofollow ugc\">*\u003C\u002Fa> sites use Google Fonts and in January 2022 a German court has ruled that using Google Fonts is a violation of Europe’s GDPR (General Data Protection Regulation).\u003C\u002Fp>\n\u003Cp>more on \u003Ca href=\"https:\u002F\u002Fwptavern.com\u002Fgerman-court-fines-website-owner-for-violating-the-gdpr-by-using-google-hosted-fonts\" rel=\"nofollow ugc\">wptavern.com\u003C\u002Fa>.\u003C\u002Fp>\n","Host your used Google fonts on your server and make your site more GDPR compliant 💯.",786291,92,83,"2025-05-01T18:50:00.000Z","6.8.5","4.6",[173,22,23,24,174],"font","googlefonts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flocal-google-fonts.0.24.0.zip",{"slug":177,"name":178,"version":179,"author":180,"author_profile":181,"description":182,"short_description":183,"active_installs":184,"downloaded":185,"rating":119,"num_ratings":186,"last_updated":187,"tested_up_to":188,"requires_at_least":189,"requires_php":190,"tags":191,"homepage":193,"download_link":194,"security_score":195,"vuln_count":196,"unpatched_count":29,"last_vuln_date":197,"fetched_at":31},"embed-google-fonts","Embed Google Fonts","3.1.1","Adrian","https:\u002F\u002Fprofiles.wordpress.org\u002Fadrian2k7\u002F","\u003Cp>Embed Google Fonts tries to automatically replace registered Google Fonts from themes and plugins with local versions, directly loaded from your own server.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Contribute\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoewe-io\u002Fembed-google-fonts\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fmoewe-io\u002Fembed-google-fonts\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Notes\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The first request might be very slow, as fonts are downloaded and cached the first time they are requested.\u003C\u002Fli>\n\u003Cli>This doesn’t automatically replace all your Google fonts with local versions. If a plugin\u002Ftheme doesn’t use WordPress wp_enqueue_style it probably won’t work.\u003C\u002Fli>\n\u003Cli>Loaded fonts are not optimized, means, the whole font including all subsets is loaded\u003C\u002Fli>\n\u003Cli>See FAQ for instructions to use locally hosted fonts directly and avoid using Heroku\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Thank you:\u003C\u002Fstrong> Fonts are downloaded using: \u003Ca href=\"https:\u002F\u002Fgwfh.mranftl.com\u002Ffonts\" rel=\"nofollow ugc\">https:\u002F\u002Fgwfh.mranftl.com\u002Ffonts\u003C\u002Fa>\u003C\u002Fp>\n","Embed Google Fonts tries to automatically replace registered Google Fonts from themes and plugin with local versions, directly loaded from your own se &hellip;",6000,50599,12,"2024-05-02T08:28:00.000Z","6.5.8","6.5.2","8.0",[192,23,115],"embed","https:\u002F\u002Fgithub.com\u002Fmoewe-io\u002Fembed-google-fonts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fembed-google-fonts.3.1.1.zip",91,1,"2024-04-29 00:00:00",{"attackSurface":199,"codeSignals":542,"taintFlows":699,"riskAssessment":700,"analyzedAt":710},{"hooks":200,"ajaxHandlers":516,"restRoutes":538,"shortcodes":539,"cronEvents":540,"entryPointCount":541,"unprotectedCount":29},[201,207,211,214,219,225,230,236,240,244,248,251,254,257,261,265,269,272,276,280,284,288,289,293,296,298,301,303,306,308,311,313,315,317,318,321,324,327,329,332,336,341,346,351,355,359,362,366,369,372,375,379,382,385,387,391,394,397,400,403,407,411,416,420,425,427,430,433,436,439,442,445,449,451,453,455,458,461,463,467,469,473,476,479,481,483,486,488,493,497,501,504,508,510,513],{"type":202,"name":203,"callback":204,"file":205,"line":206},"action","_admin_menu","init_admin","src\\Admin\\Actions.php",28,{"type":202,"name":208,"callback":209,"file":205,"line":210},"admin_init","do_optimize",29,{"type":202,"name":208,"callback":212,"file":205,"line":213},"update_settings",30,{"type":202,"name":215,"callback":216,"priority":217,"file":205,"line":218},"omgf_pre_update_setting_cache_keys","clean_stale_cache",10,32,{"type":220,"name":221,"callback":222,"file":223,"line":224},"filter","omgf_clean_up_instructions","closure","src\\Admin\\Ajax.php",131,{"type":220,"name":226,"callback":227,"file":228,"line":229},"http_request_args","verify_ssl","src\\Admin\\Optimize.php",61,{"type":202,"name":231,"callback":232,"priority":233,"file":234,"line":235},"omgf_advanced_settings_content","do_before",20,"src\\Admin\\Settings\\Advanced.php",34,{"type":202,"name":231,"callback":237,"priority":238,"file":234,"line":239},"do_cache_dir",50,37,{"type":202,"name":231,"callback":241,"priority":242,"file":234,"line":243},"do_promo_white_label_css",60,38,{"type":202,"name":231,"callback":245,"priority":246,"file":234,"line":247},"do_promo_dtap",70,39,{"type":202,"name":231,"callback":249,"priority":250,"file":234,"line":130},"do_promo_fonts_source_url",80,{"type":202,"name":231,"callback":252,"priority":108,"file":234,"line":253},"do_legacy_mode",41,{"type":202,"name":231,"callback":255,"priority":119,"file":234,"line":256},"do_compatibility",42,{"type":202,"name":231,"callback":258,"priority":259,"file":234,"line":260},"do_auto_config_subsets",110,43,{"type":202,"name":231,"callback":262,"priority":263,"file":234,"line":264},"do_used_subsets",120,44,{"type":202,"name":231,"callback":266,"priority":267,"file":234,"line":268},"do_disable_admin_bar_menu",130,45,{"type":202,"name":231,"callback":270,"priority":271,"file":234,"line":109},"do_debug_mode",140,{"type":202,"name":231,"callback":273,"priority":274,"file":234,"line":275},"do_download_log",150,47,{"type":202,"name":231,"callback":277,"priority":278,"file":234,"line":279},"do_uninstall",160,48,{"type":202,"name":231,"callback":281,"priority":282,"file":234,"line":283},"do_after",200,51,{"type":220,"name":285,"callback":286,"file":287,"line":247},"omgf_optimize_settings_content","do_promo","src\\Admin\\Settings\\Builder.php",{"type":220,"name":231,"callback":286,"file":287,"line":130},{"type":202,"name":290,"callback":291,"priority":233,"file":292,"line":213},"omgf_help_content","do_content","src\\Admin\\Settings\\Help.php",{"type":202,"name":285,"callback":294,"priority":233,"file":295,"line":130},"open_task_manager","src\\Admin\\Settings\\Optimize.php",{"type":202,"name":285,"callback":232,"priority":297,"file":295,"line":253},21,{"type":202,"name":285,"callback":299,"priority":300,"file":295,"line":256},"render_warnings",23,{"type":202,"name":285,"callback":302,"priority":149,"file":295,"line":260},"render_status",{"type":202,"name":285,"callback":304,"priority":305,"file":295,"line":264},"do_google_fonts_checker",27,{"type":202,"name":285,"callback":307,"priority":210,"file":295,"line":268},"do_test_mode",{"type":202,"name":285,"callback":309,"priority":310,"file":295,"line":109},"do_cache_management",31,{"type":202,"name":285,"callback":281,"priority":312,"file":295,"line":275},33,{"type":202,"name":285,"callback":314,"priority":235,"file":295,"line":279},"close_task_manager",{"type":202,"name":285,"callback":316,"priority":130,"file":295,"line":238},"do_optimize_fonts_container",{"type":202,"name":285,"callback":232,"priority":238,"file":295,"line":283},{"type":202,"name":285,"callback":319,"priority":242,"file":295,"line":320},"do_display_option",52,{"type":202,"name":285,"callback":322,"priority":246,"file":295,"line":323},"do_promo_apply_font_display_globally",53,{"type":202,"name":285,"callback":325,"priority":250,"file":295,"line":326},"do_promo_auto_preload",54,{"type":202,"name":285,"callback":281,"priority":108,"file":295,"line":328},55,{"type":202,"name":285,"callback":330,"priority":119,"file":295,"line":331},"do_optimize_fonts_contents",56,{"type":202,"name":285,"callback":333,"priority":334,"file":295,"line":335},"close_optimize_fonts_container",300,57,{"type":202,"name":337,"callback":338,"file":339,"line":340},"admin_menu","create_menu","src\\Admin\\Settings.php",204,{"type":220,"name":342,"callback":343,"priority":344,"file":339,"line":345},"admin_footer_text","footer_text_left",99,216,{"type":220,"name":347,"callback":348,"priority":349,"file":339,"line":350},"update_footer","footer_text_right",11,217,{"type":202,"name":352,"callback":353,"priority":29,"file":339,"line":354},"omgf_settings_tab","optimize_fonts_tab",220,{"type":202,"name":352,"callback":356,"priority":357,"file":339,"line":358},"advanced_settings_tab",2,221,{"type":202,"name":352,"callback":360,"priority":28,"file":339,"line":361},"help_tab",223,{"type":202,"name":363,"callback":364,"priority":29,"file":339,"line":365},"omgf_settings_content","optimize_fonts_content",226,{"type":202,"name":363,"callback":367,"priority":357,"file":339,"line":368},"advanced_settings_content",227,{"type":202,"name":363,"callback":370,"priority":91,"file":339,"line":371},"help_content",228,{"type":202,"name":208,"callback":373,"file":339,"line":374},"register_settings",244,{"type":220,"name":376,"callback":377,"file":378,"line":238},"all_plugins","maybe_display_premium_update_notice","src\\Admin\\Updates.php",{"type":220,"name":380,"callback":381,"priority":217,"file":378,"line":283},"wp_get_update_data","maybe_add_update_count",{"type":220,"name":383,"callback":384,"file":378,"line":320},"site_transient_update_plugins","maybe_add_to_update_list",{"type":220,"name":383,"callback":386,"file":378,"line":323},"force_update",{"type":202,"name":388,"callback":389,"file":390,"line":109},"admin_enqueue_scripts","enqueue_admin_scripts","src\\Admin.php",{"type":202,"name":392,"callback":393,"file":390,"line":275},"admin_notices","print_notices",{"type":220,"name":395,"callback":396,"file":390,"line":326},"alloptions","force_optimized_fonts_from_db",{"type":202,"name":398,"callback":399,"priority":217,"file":390,"line":328},"update_option_omgf_cache_keys","clean_up_cache",{"type":202,"name":401,"callback":402,"priority":217,"file":390,"line":331},"update_option_omgf_settings","maybe_show_stale_cache_notice",{"type":202,"name":404,"callback":405,"file":406,"line":260},"rest_api_init","register_routes","src\\API\\AdminbarMenu.php",{"type":220,"name":408,"callback":409,"priority":217,"file":410,"line":243},"vc_get_vc_grid_data_response","parse_vc_grid_data","src\\Compatibility\\VisualComposer.php",{"type":202,"name":412,"callback":413,"file":414,"line":415},"plugins_loaded","load_global_plugin_compatibility_fixes","src\\Compatibility.php",36,{"type":202,"name":417,"callback":418,"file":419,"line":264},"init","set_upgrade_notice","src\\DB\\Migrate\\V600.php",{"type":220,"name":421,"callback":422,"priority":423,"file":424,"line":305},"content_url","force_ssl",1000,"src\\Filters.php",{"type":220,"name":426,"callback":422,"priority":423,"file":424,"line":206},"home_url",{"type":220,"name":428,"callback":429,"file":424,"line":210},"omgf_optimize_user_agent","maybe_do_legacy_mode",{"type":220,"name":431,"callback":432,"file":424,"line":213},"pre_update_option_omgf_optimized_fonts","base64_decode_optimized_fonts",{"type":220,"name":434,"callback":435,"file":424,"line":310},"omgf_do_not_load_frontend_assets","maybe_load_frontend_assets",{"type":202,"name":417,"callback":437,"priority":238,"file":438,"line":213},"init_frontend","src\\Frontend\\Actions.php",{"type":202,"name":440,"callback":441,"priority":423,"file":438,"line":310},"admin_bar_menu","add_admin_bar_item",{"type":202,"name":443,"callback":444,"file":438,"line":218},"wp_enqueue_scripts","maybe_add_frontend_assets",{"type":220,"name":446,"callback":447,"file":448,"line":415},"omgf_frontend_process_fonts_set","maybe_modify_id","src\\Frontend\\Compatibility\\CategorySliderPro.php",{"type":220,"name":446,"callback":447,"file":450,"line":415},"src\\Frontend\\Compatibility\\ConvertPro.php",{"type":220,"name":446,"callback":447,"priority":217,"file":452,"line":247},"src\\Frontend\\Compatibility\\Divi.php",{"type":220,"name":446,"callback":447,"priority":217,"file":454,"line":247},"src\\Frontend\\Compatibility\\Elementor.php",{"type":220,"name":456,"callback":457,"priority":217,"file":454,"line":130},"omgf_frontend_process_parse_links","validate_link_element",{"type":220,"name":459,"callback":460,"priority":217,"file":454,"line":253},"omgf_frontend_process_invalid_request","validate_request",{"type":220,"name":446,"callback":447,"priority":217,"file":462,"line":415},"src\\Frontend\\Compatibility\\Fruitful.php",{"type":220,"name":464,"callback":465,"priority":349,"file":466,"line":109},"groovy_menu_final_output","parse","src\\Frontend\\Compatibility\\GroovyMenu.php",{"type":220,"name":446,"callback":447,"file":468,"line":415},"src\\Frontend\\Compatibility\\LogoCarouselPro.php",{"type":220,"name":470,"callback":471,"priority":217,"file":472,"line":415},"omgf_frontend_process_fonts_set_href","maybe_replace_href","src\\Frontend\\Compatibility\\Mesmerize.php",{"type":220,"name":474,"callback":475,"priority":186,"file":472,"line":239},"style_loader_tag","maybe_remove_data_attribute",{"type":220,"name":477,"callback":465,"priority":349,"file":478,"line":109},"wordpress_prepare_output","src\\Frontend\\Compatibility\\SmartSlider3.php",{"type":220,"name":456,"callback":457,"priority":217,"file":480,"line":235},"src\\Frontend\\Compatibility\\WPTT.php",{"type":220,"name":459,"callback":460,"priority":217,"file":480,"line":482},35,{"type":202,"name":412,"callback":484,"file":485,"line":415},"load_plugin_compatibility_fixes","src\\Frontend\\Compatibility.php",{"type":202,"name":412,"callback":487,"file":485,"line":239},"load_theme_compatibility_fixes",{"type":220,"name":489,"callback":490,"file":491,"line":492},"omgf_optimize_url","decode_url","src\\Frontend\\Filters.php",24,{"type":202,"name":494,"callback":495,"priority":91,"file":496,"line":274},"wp_head","add_preloads","src\\Frontend\\Process.php",{"type":202,"name":498,"callback":499,"priority":91,"file":496,"line":500},"template_redirect","maybe_buffer_output",151,{"type":202,"name":502,"callback":499,"priority":91,"file":496,"line":503},"login_init",152,{"type":220,"name":505,"callback":506,"priority":349,"file":496,"line":507},"omgf_buffer_output","remove_resource_hints",157,{"type":220,"name":505,"callback":465,"file":496,"line":509},161,{"type":220,"name":505,"callback":511,"file":496,"line":512},"add_success_message",164,{"type":202,"name":412,"callback":514,"file":515,"line":310},"do_migrate_db","src\\Plugin.php",[517,523,526,529,532,535],{"action":518,"nopriv":519,"callback":520,"hasNonce":521,"hasCapCheck":521,"file":223,"line":522},"omgf_hide_notice",false,"hide_notice",true,26,{"action":524,"nopriv":519,"callback":525,"hasNonce":521,"hasCapCheck":521,"file":223,"line":305},"omgf_remove_stylesheet_from_db","remove_stylesheet_from_db",{"action":527,"nopriv":519,"callback":528,"hasNonce":521,"hasCapCheck":521,"file":223,"line":206},"omgf_refresh_cache","refresh_cache",{"action":530,"nopriv":519,"callback":531,"hasNonce":521,"hasCapCheck":521,"file":223,"line":210},"omgf_empty_dir","empty_directory",{"action":533,"nopriv":519,"callback":534,"hasNonce":521,"hasCapCheck":521,"file":223,"line":213},"omgf_download_log","download_log",{"action":536,"nopriv":519,"callback":537,"hasNonce":521,"hasCapCheck":521,"file":223,"line":310},"omgf_delete_log","delete_log",[],[],[],6,{"dangerousFunctions":543,"sqlUsage":544,"outputEscaping":546,"fileOperations":186,"externalRequests":541,"nonceChecks":696,"capabilityChecks":697,"bundledLibraries":698},[],{"prepared":29,"raw":29,"locations":545},[],{"escaped":547,"rawEcho":548,"locations":549},242,81,[550,554,556,557,559,560,562,564,566,568,570,572,574,576,577,579,581,584,586,587,589,591,592,593,594,596,598,600,602,604,606,608,610,611,613,614,615,616,617,619,620,622,623,624,626,627,629,631,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,675,677,679,681,683,685,687,689,690,692,694],{"file":551,"line":552,"context":553},"src\\Admin\\Dashboard.php",103,"raw output",{"file":551,"line":555,"context":553},132,{"file":551,"line":512,"context":553},{"file":551,"line":558,"context":553},178,{"file":551,"line":350,"context":553},{"file":551,"line":561,"context":553},232,{"file":551,"line":563,"context":553},248,{"file":551,"line":565,"context":553},250,{"file":551,"line":567,"context":553},265,{"file":551,"line":569,"context":553},283,{"file":551,"line":571,"context":553},402,{"file":551,"line":573,"context":553},545,{"file":551,"line":575,"context":553},561,{"file":551,"line":575,"context":553},{"file":551,"line":578,"context":553},571,{"file":551,"line":580,"context":553},588,{"file":582,"line":583,"context":553},"src\\Admin\\Notice.php",87,{"file":582,"line":585,"context":553},89,{"file":234,"line":242,"context":553},{"file":234,"line":588,"context":553},254,{"file":234,"line":590,"context":553},261,{"file":292,"line":256,"context":553},{"file":292,"line":275,"context":553},{"file":292,"line":229,"context":553},{"file":292,"line":595,"context":553},64,{"file":292,"line":597,"context":553},65,{"file":292,"line":599,"context":553},68,{"file":292,"line":601,"context":553},69,{"file":292,"line":603,"context":553},72,{"file":292,"line":605,"context":553},73,{"file":292,"line":607,"context":553},76,{"file":292,"line":609,"context":553},77,{"file":292,"line":250,"context":553},{"file":292,"line":612,"context":553},84,{"file":292,"line":585,"context":553},{"file":292,"line":167,"context":553},{"file":292,"line":93,"context":553},{"file":292,"line":13,"context":553},{"file":292,"line":618,"context":553},98,{"file":292,"line":119,"context":553},{"file":292,"line":621,"context":553},101,{"file":292,"line":621,"context":553},{"file":295,"line":601,"context":553},{"file":295,"line":625,"context":553},71,{"file":295,"line":267,"context":553},{"file":295,"line":628,"context":553},136,{"file":295,"line":630,"context":553},213,{"file":295,"line":345,"context":553},{"file":295,"line":633,"context":553},256,{"file":295,"line":635,"context":553},258,{"file":295,"line":637,"context":553},264,{"file":295,"line":639,"context":553},288,{"file":295,"line":641,"context":553},291,{"file":295,"line":643,"context":553},302,{"file":295,"line":645,"context":553},303,{"file":295,"line":647,"context":553},304,{"file":295,"line":649,"context":553},306,{"file":295,"line":651,"context":553},313,{"file":295,"line":653,"context":553},314,{"file":295,"line":655,"context":553},316,{"file":295,"line":657,"context":553},320,{"file":295,"line":659,"context":553},322,{"file":295,"line":661,"context":553},329,{"file":295,"line":663,"context":553},331,{"file":295,"line":665,"context":553},351,{"file":295,"line":667,"context":553},353,{"file":295,"line":669,"context":553},368,{"file":295,"line":671,"context":553},371,{"file":295,"line":673,"context":553},374,{"file":295,"line":673,"context":553},{"file":295,"line":676,"context":553},382,{"file":295,"line":678,"context":553},493,{"file":295,"line":680,"context":553},513,{"file":295,"line":682,"context":553},520,{"file":339,"line":684,"context":553},257,{"file":339,"line":686,"context":553},349,{"file":339,"line":688,"context":553},350,{"file":339,"line":665,"context":553},{"file":339,"line":691,"context":553},405,{"file":339,"line":693,"context":553},421,{"file":339,"line":695,"context":553},426,7,15,[],[],{"summary":701,"deductions":702},"The plugin 'host-webfonts-local' v6.1.4 exhibits a mixed security posture. On the positive side, the static analysis shows strong adherence to secure coding practices regarding SQL queries, with 100% using prepared statements. The presence of nonce and capability checks on all identified AJAX entry points is also a significant strength, indicating an effort to protect against common WordPress vulnerabilities. Furthermore, the taint analysis reported no critical or high severity flows, suggesting that direct data manipulation vulnerabilities are not immediately apparent in this version.\n\nHowever, several concerns warrant attention. The vulnerability history reveals a significant number of past CVEs, with one critical and two high severity vulnerabilities reported. The common types of these past vulnerabilities, including Missing Authorization, Improper Access Control, and Path Traversal, are serious and often indicate fundamental flaws in how the plugin handles user input and accesses files. While there are currently no unpatched CVEs, the recurring nature of these vulnerability types in its history suggests a potential for similar issues to re-emerge if not addressed comprehensively. The fact that 75% of output is properly escaped, while good, still leaves room for potential cross-site scripting (XSS) vulnerabilities in the remaining 25% of outputs, especially if those outputs handle user-supplied data.\n\nIn conclusion, while the current version demonstrates improvements in direct code-level security for SQL and AJAX endpoints, the plugin's past vulnerability history, particularly concerning authorization and path traversal, presents a notable risk. The 25% of unescaped output is a minor concern but should be monitored. The plugin's strengths lie in its prepared SQL statements and authentication checks on entry points, but its historical pattern of critical security flaws necessitates cautious use and ongoing vigilance.",[703,705,707],{"reason":704,"points":233},"Historically significant number of critical\u002Fhigh CVEs",{"reason":706,"points":697},"Recurring past vulnerability types (Auth, Path Traversal)",{"reason":708,"points":709},"25% of output not properly escaped",5,"2026-03-16T17:02:55.430Z",{"wat":712,"direct":721},{"assetPaths":713,"generatorPatterns":716,"scriptPaths":717,"versionParams":718},[714,715],"\u002Fwp-content\u002Fplugins\u002Fhost-webfonts-local\u002Fassets\u002Fcss\u002Fomgf-admin.css","\u002Fwp-content\u002Fplugins\u002Fhost-webfonts-local\u002Fassets\u002Fjs\u002Fomgf-admin.js",[],[715],[719,720],"host-webfonts-local\u002Fassets\u002Fcss\u002Fomgf-admin.css?ver=","host-webfonts-local\u002Fassets\u002Fjs\u002Fomgf-admin.js?ver=",{"cssClasses":722,"htmlComments":723,"htmlAttributes":726,"restEndpoints":727,"jsGlobals":728,"shortcodeOutput":729},[],[724,725],"\u003C!-- OMGF: Optimized Google Fonts -->","\u003C!-- OMGF: Stylesheets -->",[],[],[],[]]