[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f81qtQGvqZ7yLZOQHkux7DclRSUQPW7TFY2ZyGLZ4zKg":3},{"slug":4,"name":5,"version":6,"author":4,"author_profile":7,"description":8,"short_description":9,"active_installs":10,"downloaded":11,"rating":10,"num_ratings":10,"last_updated":12,"tested_up_to":13,"requires_at_least":14,"requires_php":15,"tags":16,"homepage":12,"download_link":22,"security_score":23,"vuln_count":10,"unpatched_count":10,"last_vuln_date":24,"fetched_at":25,"vulnerabilities":26,"developer":27,"crawl_stats":24,"alternatives":32,"analysis":122,"fingerprints":1917},"wpmmcc","WPMMCC","0.1.1","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpmmcc\u002F","\u003Cp>WPMMCC is a powerful multilingual plugin that helps you create and manage multilingual WordPress websites. It supports both directory-based URLs (example.com\u002Fen\u002F, example.com\u002Fzh\u002F) and WordPress Multisite configurations.\u003C\u002Fp>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Content Translation\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatic translation of posts, pages, and custom post types\u003C\u002Fli>\n\u003Cli>Support for multiple translation providers (Google, DeepL, Baidu, Youdao, OpenAI)\u003C\u002Fli>\n\u003Cli>Bulk translation with progress tracking\u003C\u002Fli>\n\u003Cli>Translation rules for fine-grained control\u003C\u002Fli>\n\u003Cli>Field-level translation configuration\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Theme Translation\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Scan theme files for translatable strings\u003C\u002Fli>\n\u003Cli>Automatic translation of theme text\u003C\u002Fli>\n\u003Cli>Support for PHP, JavaScript, Twig templates\u003C\u002Fli>\n\u003Cli>Database string scanning\u003C\u002Fli>\n\u003Cli>Theme template tags support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Site Group Management\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Organize sites into language groups\u003C\u002Fli>\n\u003Cli>Directory-based multilingual structure\u003C\u002Fli>\n\u003Cli>Multisite network support\u003C\u002Fli>\n\u003Cli>Main site and child site configuration\u003C\u002Fli>\n\u003Cli>Per-group translation settings\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>SEO & URL Management\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatic hreflang tag generation\u003C\u002Fli>\n\u003Cli>Canonical URL management\u003C\u002Fli>\n\u003Cli>Multilingual XML sitemaps\u003C\u002Fli>\n\u003Cli>URL localization for directory sites\u003C\u002Fli>\n\u003Cli>SEO plugin compatibility\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Task Queue System\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Background processing for large translations\u003C\u002Fli>\n\u003Cli>Action Scheduler integration\u003C\u002Fli>\n\u003Cli>Task progress monitoring\u003C\u002Fli>\n\u003Cli>Retry mechanism for failed tasks\u003C\u002Fli>\n\u003Cli>Configurable batch processing\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Use Cases\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Create a multilingual corporate website\u003C\u002Fli>\n\u003Cli>Build an international e-commerce store\u003C\u002Fli>\n\u003Cli>Manage a multilingual blog network\u003C\u002Fli>\n\u003Cli>Localize WordPress themes\u003C\u002Fli>\n\u003Cli>Translate existing content to new languages\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 5.0 or higher\u003C\u002Fli>\n\u003Cli>PHP 7.2 or higher\u003C\u002Fli>\n\u003Cli>MySQL 5.7 or MariaDB 10.2\u003C\u002Fli>\n\u003Cli>PHP extensions: openssl, json, mbstring, curl\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to third-party translation and AI services to provide translation functionality. No data is sent to any service until you explicitly configure and use that translation provider. Below is a list of all external services used:\u003C\u002Fp>\n\u003Ch4>Google Translate API\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C\u002Fstrong>: Automatic translation of content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent\u003C\u002Fstrong>: Text content to be translated, source and target language codes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When\u003C\u002Fstrong>: When user initiates translation using Google as the provider\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: https:\u002F\u002Ftranslation.googleapis.com\u002Flanguage\u002Ftranslate\u002Fv2\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service\u003C\u002Fstrong>: https:\u002F\u002Fcloud.google.com\u002Fterms\u002Fservice-terms\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>DeepL API\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C\u002Fstrong>: Automatic translation of content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent\u003C\u002Fstrong>: Text content to be translated, source and target language codes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When\u003C\u002Fstrong>: When user initiates translation using DeepL as the provider\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: https:\u002F\u002Fapi.deepl.com\u002Fv2\u002Ftranslate or https:\u002F\u002Fapi-free.deepl.com\u002Fv2\u002Ftranslate\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service\u003C\u002Fstrong>: https:\u002F\u002Fwww.deepl.com\u002Fpro-license\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: https:\u002F\u002Fwww.deepl.com\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Baidu Translate API\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C\u002Fstrong>: Automatic translation of content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent\u003C\u002Fstrong>: Text content to be translated, source and target language codes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When\u003C\u002Fstrong>: When user initiates translation using Baidu as the provider\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: https:\u002F\u002Ffanyi-api.baidu.com\u002Fapi\u002Ftrans\u002Fvip\u002Ftranslate\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service\u003C\u002Fstrong>: https:\u002F\u002Ffanyi-api.baidu.com\u002Fdoc\u002F5\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: https:\u002F\u002Ffanyi-api.baidu.com\u002Fdoc\u002F21\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Youdao Translate API\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C\u002Fstrong>: Automatic translation of content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent\u003C\u002Fstrong>: Text content to be translated, source and target language codes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When\u003C\u002Fstrong>: When user initiates translation using Youdao as the provider\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: https:\u002F\u002Fopenapi.youdao.com\u002Fapi\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service\u003C\u002Fstrong>: https:\u002F\u002Fai.youdao.com\u002Fdoc.s#guide\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: https:\u002F\u002Fai.youdao.com\u002Fdoc.s\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>OpenAI API (or compatible)\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C\u002Fstrong>: AI-powered translation using large language models\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent\u003C\u002Fstrong>: Text content to be translated with translation prompts\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When\u003C\u002Fstrong>: When user initiates translation using LLM provider\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: Configurable (default: https:\u002F\u002Fapi.openai.com\u002Fv1\u002Fchat\u002Fcompletions)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service\u003C\u002Fstrong>: https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fterms-of-use\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fprivacy-policy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>: Users must configure their own API keys for these services. API keys are stored encrypted using AES-256 encryption in your database and are never logged or exposed in plain text.\u003C\u002Fp>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>WPMMCC respects your privacy and handles data responsibly:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Translation Data\u003C\u002Fstrong>: Content sent to translation providers is processed according to each provider’s privacy policy\u003C\u002Fli>\n\u003Cli>\u003Cstrong>API Keys\u003C\u002Fstrong>: Stored encrypted in your database, never transmitted except to the respective provider\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No Tracking\u003C\u002Fstrong>: The plugin does not track usage or send data to our servers\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Local Processing\u003C\u002Fstrong>: All other operations are performed locally on your server\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For more information, please review the privacy policies of your chosen translation providers.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>WPMMCC uses the following open-source libraries:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Action Scheduler (ASRunner 3.9.99-wpmmcc) – Consolidated build based on Action Scheduler 3.9.0, prefixed tables (\u003Ccode>wpmmcc_actionscheduler_*\u003C\u002Fcode>), defers to external Action Scheduler instances (e.g. WooCommerce) when present.\u003C\u002Fli>\n\u003Cli>WordPress Coding Standards – Code quality\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Documentation: \u003Ca href=\"https:\u002F\u002Fwww.wpmm.cc\u002Fdocs\" rel=\"nofollow ugc\">Plugin Documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Contributing\u003C\u002Fh3>\n\u003Cp>We welcome contributions! Please see our GitHub repository for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Bug reports\u003C\u002Fli>\n\u003Cli>Feature requests\u003C\u002Fli>\n\u003Cli>Pull requests\u003C\u002Fli>\n\u003Cli>Translation contributions\u003C\u002Fli>\n\u003C\u002Ful>\n","Multilingual solution for WordPress with automatic translation and site group management.",0,128,"","6.9.4","5.0","7.2",[17,18,19,20,21],"localization","multilingual","multisite","seo","translation","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwpmmcc.0.1.1.zip",100,null,"2026-03-15T10:48:56.248Z",[],{"slug":4,"display_name":4,"profile_url":7,"plugin_count":28,"total_installs":10,"avg_security_score":23,"avg_patch_time_days":29,"trust_score":30,"computed_at":31},1,30,94,"2026-04-04T16:23:57.997Z",[33,52,69,86,101],{"slug":34,"name":35,"version":36,"author":37,"author_profile":38,"description":39,"short_description":40,"active_installs":41,"downloaded":42,"rating":23,"num_ratings":28,"last_updated":43,"tested_up_to":44,"requires_at_least":45,"requires_php":12,"tags":46,"homepage":48,"download_link":49,"security_score":50,"vuln_count":10,"unpatched_count":10,"last_vuln_date":24,"fetched_at":51},"buddypress-extended-profile-translation","BuddyPress Extended Profile Translation","1.0","Markus Echterhoff","https:\u002F\u002Fprofiles.wordpress.org\u002Fmechter\u002F","\u003Cp>If you have made your BuddyPress multilingual by installing it on a multisite WordPress with a different language for each site, you will find that the extended profile field names are available in only one language. Activate this plugin on any of your localized sub-sites (or network activate), go to\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Dashboard -> Users -> XProfile Translation\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>and translate the profile field names and descriptions to your liking. This plugin is BP_ENABLE_MULTIBLOG compatible.\u003C\u002Fp>\n","Multilingual Extended Profiles in multisite BuddyPress",10,3403,"2018-12-09T18:44:00.000Z","5.0.25","3.6",[47,17,18,19,21],"buddypress","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fbuddypress-extended-profile-translation\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypress-extended-profile-translation.1.0.zip",85,"2026-03-15T15:16:48.613Z",{"slug":53,"name":54,"version":55,"author":56,"author_profile":57,"description":58,"short_description":59,"active_installs":41,"downloaded":60,"rating":23,"num_ratings":61,"last_updated":62,"tested_up_to":63,"requires_at_least":64,"requires_php":12,"tags":65,"homepage":67,"download_link":68,"security_score":50,"vuln_count":10,"unpatched_count":10,"last_vuln_date":24,"fetched_at":51},"zanto","Zanto WP Translation (For Multisites)","0.3.4","Ayebare Mucunguzi Brooks","https:\u002F\u002Fprofiles.wordpress.org\u002Fbrooksx\u002F","\u003Cp>Zanto WP Translation enables you to convert blogs in a multisite into translations of each other. It provides a language switcher to switch between the different translations\u003Cbr \u002F>\nof  pages, posts, categories, custom types and custom taxonomies. The plugin keeps track of what has been translated and what has not and provides an intuitive interface\u003Cbr \u002F>\nthat allows you to carry out translation. The number of languages you can run are unlimited. Get more WordPress multilingual, Localization and Internationalization addons from here\u003Cbr \u002F>\n\u003Ca title=\"WordPress translation, localization and Internationalization addons\" href=\"http:\u002F\u002Fshop.zanto.org\" rel=\"nofollow ugc\">multilingual addons\u003C\u002Fa> or keep up to-date with the best Internationalization and\u003Cbr \u002F>\nlocalization practices at \u003Ca title=\"WordPress translation, localization and Internationalization\" href=\"http:\u002F\u002Fzanto.org\" rel=\"nofollow ugc\">zanto.org\u002Fblog\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Demo and Documentation\u003C\u002Fh4>\n\u003Cp>\u003Ca title=\"Demo\" href=\"http:\u002F\u002Flang1.zanto.org\" rel=\"nofollow ugc\">zanto.org\u002FDemo\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Translation of posts, categories, custom taxonomies, custom types.\u003C\u002Fli>\n\u003Cli>Browser Language re-direct  i.e re-direct users to their preferred language in their browser language settings.\u003C\u002Fli>\n\u003Cli>An easily customizable language switcher.\u003C\u002Fli>\n\u003Cli>Ability to use custom made Language switcher themes.\u003C\u002Fli>\n\u003Cli>Add a language parameter to the URL for SEO purposes\u003C\u002Fli>\n\u003Cli>Ability to create multiple translation networks within the same multisite. i.e blog A is a translation of Blog B and C. Blog X a translation of blog Z, while all blogs are in the same multisite.\u003C\u002Fli>\n\u003Cli>Different languages for both the front and back end.\u003C\u002Fli>\n\u003Cli>Each admin will have his admin language preferences stored\u003C\u002Fli>\n\u003Cli>Over 60 in-built languages and flags.\u003C\u002Fli>\n\u003Cli>Ability for users to add their own native languages i.e from the ones not included.\u003C\u002Fli>\n\u003Cli>Integrated support for domain mapping plugin\u003C\u002Fli>\n\u003Cli>Translated posts highlighting to prevent double translation\u003C\u002Fli>\n\u003Cli>Copy posts data from one blog to the translation area\u003C\u002Fli>\n\u003Cli>A translation editor to translate all posts from one blog to all others without switching between blogs. (Additional Translation Manager plugin required)\u003C\u002Fli>\n\u003Cli>Create and Manage translators from a single blog. Translators have their own dashboard. (Additional Translation Manager plugin required)\u003C\u002Fli>\n\u003Cli>Assign Translations to individual translators.(Additional Translation Manager plugin required)\u003C\u002Fli>\n\u003Cli>Export and Import XLIFF translations for posts taxonomies, comments, custom fields. (Additional Translation Manager plugin required)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Tutorials\u003C\u002Fh4>\n\u003Cp>Learn how to use Zanto WP Translation plugin with these tutorials\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Finstalling-zanto\u002F\" rel=\"nofollow ugc\">Installation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Flanguage-url-formats\u002F\" rel=\"nofollow ugc\">Language Url formats\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Fbrowser-language-re-direct\u002F\" rel=\"nofollow ugc\">Browser Language Redirect\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Flanguage-switcher-custom-flags\u002F\" rel=\"nofollow ugc\">Custom flags for your language switcher\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Fcreating-a-custom-language-switcher-theme\u002F\" rel=\"nofollow ugc\">Creating a custom language switcher theme\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Fsharing-users-across-the-wordpress-network\u002F\" rel=\"nofollow ugc\">Sharing users across the translation network\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Many more to come!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Translations\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>The french translation shall be ready soon for both the site and plugin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Please \u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fcontact\" rel=\"nofollow ugc\">let us know\u003C\u002Fa> if you would like to contribute a translation.\u003C\u002Fp>\n","Zanto WP Translation helps you run a multilingual site by providing linkage between content in blogs of different languages in a WordPress multisite.",19545,12,"2015-03-30T18:52:00.000Z","4.1.42","3.0",[66,17,18,19,21],"language-switcher","http:\u002F\u002Fzanto.org\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fzanto.0.3.4.zip",{"slug":70,"name":71,"version":72,"author":73,"author_profile":74,"description":75,"short_description":76,"active_installs":10,"downloaded":77,"rating":23,"num_ratings":28,"last_updated":12,"tested_up_to":78,"requires_at_least":79,"requires_php":15,"tags":80,"homepage":84,"download_link":85,"security_score":23,"vuln_count":10,"unpatched_count":10,"last_vuln_date":24,"fetched_at":25},"lugath","Lugath Translate","1.0.1","Lugath","https:\u002F\u002Fprofiles.wordpress.org\u002Flugath\u002F","\u003Ch3>What is Lugath\u003C\u002Fh3>\n\u003Cp>Lugath is a developer-friendly, AI-based translation plugin that allows you to localize your WordPress website effortlessly. With instant translations, SSR-compatible proxy mode, and full REST API access. Even for SPAs, JAMstack sites, and React-based frontends (CRA).\u003C\u002Fp>\n\u003Ch3>Translate your site globally in seconds\u003C\u002Fh3>\n\u003Cp>Lugath helps you turn your WordPress website into a multilingual experience — instantly. Whether you’re running a simple blog or a complex, headless architecture with React or CRA, Lugath brings seamless AI translation and real-time rendering to the table.\u003C\u002Fp>\n\u003Cp>It’s designed for developers, marketers, and SEO experts alike — combining power and simplicity with clean HTML output and maximum performance.\u003C\u002Fp>\n\u003Ch3>Why Lugath?\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Built for performance\u003C\u002Fstrong>\u003Cbr \u002F>\nLugath uses proxy-based translation with zero configuration, rendering translated HTML server-side. This means faster load times, better SEO, and zero layout shifts on load.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>SSR + SPA compatible\u003C\u002Fstrong>\u003Cbr \u002F>\nWorks out of the box with modern JavaScript frontends like Create React App (CRA), Next.js, or any SPA setup. Lugath offers REST endpoints for tight frontend integration.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>No code required\u003C\u002Fstrong>\u003Cbr \u002F>\nYou don’t have to modify templates or wrap content in special tags. Lugath handles translation on-the-fly using your site’s rendered HTML.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>SEO-friendly by design\u003C\u002Fstrong>\u003Cbr \u002F>\nEvery translated page is crawlable and indexable. With clean URLs and proper structure, Lugath helps you rank in every language you speak.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Instant global reach\u003C\u002Fstrong>\u003Cbr \u002F>\nDon’t settle for a single market. Go global and unlock multilingual traffic using automated translation powered by leading AI providers.\u003C\u002Fp>\n\u003Ch3>How to Get an API Key\u003C\u002Fh3>\n\u003Cp>To use Lugath Translate, you need an API key. Follow these steps to obtain your API key:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Go to \u003Ca href=\"https:\u002F\u002Fapp.lugath.com\" rel=\"nofollow ugc\">https:\u002F\u002Fapp.lugath.com\u003C\u002Fa> and create a new account.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>In the menu, navigate to the “Website” section and click the “Connect” button.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Enter your website name.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Select WordPress as your website technology\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Select the original language of your website.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Choose the target languages you want to translate into.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Enter your website domain.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Once completed, you will see the generated Integration key. Copy it.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Paste the Integration key into the “Lugath” settings in your WordPress admin panel.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Visit your website and check if the language switcher appears in the bottom right corner.\u003C\u002Fstrong>\u003Cbr \u002F>\nIf the switcher is visible, the script is correctly loaded.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>\u003Cstrong>Enabling Server-Side Rendering (SSR)\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>If you want to enable \u003Cstrong>server-side rendering (SSR)\u003C\u002Fstrong>:\u003Cbr \u002F>\n1. \u003Cstrong>Go to \u003Ca href=\"https:\u002F\u002Fapp.lugath.com\" rel=\"nofollow ugc\">https:\u002F\u002Fapp.lugath.com\u003C\u002Fa> and open your website settings.\u003C\u002Fstrong>\u003Cbr \u002F>\n2. \u003Cstrong>Navigate to the “General” tab under “Site Settings.”\u003C\u002Fstrong>\u003Cbr \u002F>\n3. \u003Cstrong>Enable the “Server-Side Rendering” option.\u003C\u002Fstrong>\u003Cbr \u002F>\n4. \u003Cstrong>Go to “Lugath” settings in your WordPress admin panel.\u003C\u002Fstrong>\u003Cbr \u002F>\n5. \u003Cstrong>Enable server-side redirection\u003C\u002Fstrong>\u003Cbr \u002F>\n6. \u003Cstrong>Then select the langauges from Proxy Redirect Language List\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Once enabled, translated pages will be stored and served via Lugath’s CDN.\u003C\u002Fp>\n","Lugath uses AI to make your WordPress site multilingual in minutes — with client and server-side rendering (SSR) support and zero coding required.",287,"6.8.5","5.6",[17,81,82,21,83],"localization-plugin","multilingual-seo","translation-plugin","https:\u002F\u002Flugath.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flugath.1.0.1.zip",{"slug":87,"name":88,"version":72,"author":89,"author_profile":90,"description":91,"short_description":92,"active_installs":10,"downloaded":93,"rating":10,"num_ratings":10,"last_updated":94,"tested_up_to":13,"requires_at_least":95,"requires_php":96,"tags":97,"homepage":99,"download_link":100,"security_score":23,"vuln_count":10,"unpatched_count":10,"last_vuln_date":24,"fetched_at":51},"translatecraft-manual-translation","TranslateCraft – Manual Translation","6amtech","https:\u002F\u002Fprofiles.wordpress.org\u002F6amtech\u002F","\u003Cp>TranslateCraft breaks down language barriers without the complexity of automated scripts. By letting you translate your content manually, ensuring your message stays natural and contextually correct. With intuitive language switching, SEO-friendly URLs, and total administrative control, TranslateCraft empowers you to scale your global reach while maintaining the highest standards of content quality.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Flexible Language Management\u003C\u002Fstrong> – Add, remove, and configure translation languages with custom URL slugs.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk Language Localization\u003C\u002Fstrong> – Generate post duplicates for multiple languages in a single action from the list table action row.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Draft-Safe Duplication Workflow\u003C\u002Fstrong> – New duplicates are saved as drafts to prevent accidental publishing.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Full Content Coverage\u003C\u002Fstrong> – Localize posts, pages, and custom post types without limitations.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smart Blog Filtering\u003C\u002Fstrong> – Display only language-matched content on the blog page.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Language Switcher Options\u003C\u002Fstrong> – Provide seamless language switching via Elementor widget, native switcher, or shortcode.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clean & SEO-Friendly URLs\u003C\u002Fstrong> – Use readable language-based URLs compatible with WordPress permalinks.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Built-In SEO Localization\u003C\u002Fstrong> – Automatically handles hreflang, canonical URLs, and Open Graph locales.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SEO Plugin Compatibility\u003C\u002Fstrong> – Works smoothly with Yoast SEO, Rank Math, AIOSEO & SEOPress.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Content-Safe by Design\u003C\u002Fstrong> – Translations are preserved as drafts during language deselection or plugin uninstall.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>User Language Preference Memory\u003C\u002Fstrong> – Automatically shows the site in the user’s language on the first visit. If the language is changed, the choice is remembered for future visits.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Lightweight & WordPress-Native\u003C\u002Fstrong> – Optimized for performance and integrates cleanly with core WordPress.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Benefits\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Reach a Wider Audience\u003C\u002Fstrong> – Serve your content in multiple languages and connect with visitors from different regions without duplicating your site.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Save Time on Duplications\u003C\u002Fstrong> – Create multiple language versions quickly with bulk localization and one-click workflows from the list table.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Stay in Full Control\u003C\u002Fstrong> – Draft-first post duplications ensure nothing goes live before it’s ready, giving editors confidence and control.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Keep Content Organized\u003C\u002Fstrong> – Clearly track which languages are translated and avoid mixed-language posts on blogs and archives.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Deliver a Better User Experience\u003C\u002Fstrong> – Let visitors switch languages easily and automatically return to their preferred language.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Protect Your SEO\u003C\u002Fstrong> – Clean URLs, correct hreflang tags, and language-aware canonical tags prevent duplicate content issues.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Work with Your Existing SEO Setup\u003C\u002Fstrong> – Seamlessly integrates with popular SEO plugins without conflicts or manual fixes.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Prevent Content Loss\u003C\u002Fstrong> – Translations are never deleted accidentally, even when languages are removed or the plugin is uninstalled.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Scale Without Performance Issues\u003C\u002Fstrong> – Lightweight, WordPress-native design keeps your site fast and stable.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Build Global Trust\u003C\u002Fstrong> – Present a professional, localized experience that feels natural to users in every language.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How It Works\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>“TranslateCraft” Top-Level Menu – “Language Selection”\u003C\u002Fstrong> – Select the languages which will be available to authors and editors for translation.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“TranslateCraft” Top-Level Menu – “Change Language Slug”\u003C\u002Fstrong> – By default, ISO 639-1 codes are used (e.g., yoursite.com\u002Far\u002Fabout for Arabic). You may customize these slugs as needed.\u003Cbr \u002F>\n\u003Cstrong>Note:\u003C\u002Fstrong> Refresh your permalinks after updating any slug.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“TranslateCraft” Top-Level Menu – “Change Language Switcher Visibility”\u003C\u002Fstrong> – Enable or disable the language switcher, control its position, or use a shortcode to place the switcher anywhere on your site.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“Translate” Action Row Button\u003C\u002Fstrong> – Found in the posts, pages, and custom post type lists table. This button duplicates selected content for manual translation. It displays all configured languages, marks already translated versions, and prevents accidental duplication.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Draft-Based Duplication\u003C\u002Fstrong> – New duplicates are saved as drafts by default, allowing you to review and edit content safely before publishing.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic Language Linking\u003C\u002Fstrong> – Duplicated posts are automatically linked to the original content, keeping all versions connected and organized.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Frontend Language Switching\u003C\u002Fstrong> – Visitors can toggle languages via the native switcher, an Elementor widget, or a shortcode, ensuring they always land on the correct version of the current page.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>User Preferred Language\u003C\u002Fstrong> – On the first visit, the plugin detects the browser language and serves the translated version if available. If a visitor manually switches language, their preference is saved in local storage for future visits.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SEO & URL Handling (Automatic)\u003C\u002Fstrong> – TranslateCraft automatically manages language-based URLs, hreflang tags, canonical URLs, and Open Graph locales with no manual configuration required.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Language-Aware Content Display\u003C\u002Fstrong> – Once a blog page is translated and permalinks are refreshed, it will display only posts translated into that language, preventing mixed-language content from appearing.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Language Deselection Handling\u003C\u002Fstrong> – If a language is deselected in settings, its translated posts are automatically set to “Draft” and cannot be published until the language is reactivated.\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Plugin Uninstallation\u003C\u002Fstrong> – During uninstallation, users are given two choices.\u003Cbr \u002F>\n“Keep plugin data and pages as draft” saves all preferred languages and settings related to the plugin, and keeps the translated posts as drafts for later use.\u003Cbr \u002F>\n“Remove plugin data and keep pages as draft” removes all plugin-related data and only keeps the posts as drafts.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong> – Permalink Structure must be set to “post name” or “custom structure” to use the plugin.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","TranslateCraft helps websites expand reach by managing localized content, so visitors browse in the language they understand best.",139,"2026-02-23T03:05:00.000Z","6.5","7.4",[17,98,18,82,21],"manual-translation","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ftranslatecraft-manual-translation\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftranslatecraft-manual-translation.1.0.1.zip",{"slug":102,"name":103,"version":104,"author":105,"author_profile":106,"description":107,"short_description":108,"active_installs":109,"downloaded":110,"rating":30,"num_ratings":111,"last_updated":112,"tested_up_to":13,"requires_at_least":113,"requires_php":15,"tags":114,"homepage":117,"download_link":118,"security_score":119,"vuln_count":120,"unpatched_count":10,"last_vuln_date":121,"fetched_at":51},"polylang","Polylang","3.7.8","Chouby","https:\u002F\u002Fprofiles.wordpress.org\u002Fchouby\u002F","\u003Cp>With Polylang fully integrated to WordPress and using only its built-in core features (taxonomies), keep steady performances on your site and create a multilingual site featuring from just one extra language to 10 or more depending on your needs. There is no limit in the number of languages added and WordPress’ language packs are automatically downloaded when ready.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cp>Depending on the type of site you have built or are planning to build, a combination of plugins from the list below might be of interest.\u003Cbr \u002F>\nAll plugins include a wizard allowing to setup them in just a few clicks.\u003C\u002Fp>\n\u003Ch3>Polylang\u003C\u002Fh3>\n\u003Cp>Polylang and \u003Ca href=\"https:\u002F\u002Fpolylang.pro\" rel=\"nofollow ugc\">Polylang Pro\u003C\u002Fa> share the same core providing features such as:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Translating posts, pages, media, categories, post tags, custom post types and taxonomies, RSS feeds; RTL scripts are supported.\u003C\u002Fli>\n\u003Cli>The language is either set by the language code in URL, or you can use a different sub-domain or domain per language.\u003C\u002Fli>\n\u003Cli>Automatic copy of categories, post tags and other metas when creating a new post or page translation.\u003C\u002Fli>\n\u003Cli>Translating classic menus and classic widgets. Also accessible with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffse-classic\u002F\" rel=\"ugc\">Site Editor Classic Features\u003C\u002Fa> in block themes.\u003C\u002Fli>\n\u003Cli>Customizable language switcher available as a classic widget or a classic navigation menu item.\u003C\u002Fli>\n\u003Cli>Compatibility with Yoast SEO.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Polylang Pro\u003C\u002Fh3>\n\u003Cp>Helps optimizing the time spent translating your site with some very useful extra features such as:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Better integration in the new Block Editor.\u003C\u002Fli>\n\u003Cli>Language switcher available as a block.\u003C\u002Fli>\n\u003Cli>Language options available in the widget block editor.\u003C\u002Fli>\n\u003Cli>Template parts translatable in the site editor (FSE).\u003C\u002Fli>\n\u003Cli>Duplicate and\u002For synchronize content across post translations.\u003C\u002Fli>\n\u003Cli>Improved compatibility with other plugins such as \u003Ca href=\"https:\u002F\u002Fpolylang.pro\u002Fdoc\u002Fworking-with-acf-pro\u002F\" rel=\"nofollow ugc\">ACF Pro\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Share the same URL slug for posts or terms across languages.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fpolylang.pro\u002Fdoc\u002Ftranslating-urls-slugs\u002F\" rel=\"nofollow ugc\">Translate URL slugs\u003C\u002Fa> for categories, author bases, custom post types and more…\u003C\u002Fli>\n\u003Cli>Machine translation with DeepL.\u003C\u002Fli>\n\u003Cli>Export and import of content in XLIFF format for outsourced professional translation.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Access to a Premium Support for personalized assistance.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Polylang for WooCommerce\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fpolylang.pro\u002Fdownloads\u002Fpolylang-for-woocommerce\u002F\" rel=\"nofollow ugc\">Add-on\u003C\u002Fa> for the compatibility with WooCommerce which provides features such as:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Translating WooCommerce pages (shop, check-out, cart, my account), product categories and global attribute terms directly in the WooCommerce interface.\u003C\u002Fli>\n\u003Cli>Translating WooCommerce e-mails and sending them to customers in their language.\u003C\u002Fli>\n\u003Cli>Products metadata synchronization.\u003C\u002Fli>\n\u003Cli>Compatibility with the native WooCommerce CSV import & export tool.\u003C\u002Fli>\n\u003Cli>Compatibility with popular plugins such as WooCommerce Subscriptions, Product Bundles, WooCommerce Bookings, Shipment Tracking and more.\u003C\u002Fli>\n\u003Cli>Ability to use the WooCommerce REST API (available with Polylang Pro).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Access to a Premium Support for personalized assistance.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Our other free plugins\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwpml-to-polylang\u002F\" rel=\"ugc\">WPML to Polylang\u003C\u002Fa> allows migrating from WPML to Polylang.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffse-classic\u002F\" rel=\"ugc\">Site Editor Classic Features\u003C\u002Fa> allows to use classic widgets (including the Polylang language switcher) and menus in the site editor (FSE).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cp>Thanks a lot to all translators who \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fpolylang\" rel=\"nofollow ugc\">help translating Polylang\u003C\u002Fa>.\u003Cbr \u002F>\nThanks a lot to \u003Ca href=\"http:\u002F\u002Fwww.alexlopez.rocks\u002F\" rel=\"nofollow ugc\">Alex Lopez\u003C\u002Fa> for the design of the logo.\u003Cbr \u002F>\nMost of the flags included with Polylang are coming from \u003Ca href=\"http:\u002F\u002Ffamfamfam.com\u002F\" rel=\"nofollow ugc\">famfamfam\u003C\u002Fa> and are public domain.\u003Cbr \u002F>\nWherever third party code has been used, credit has been given in the code’s comments.\u003C\u002Fp>\n","Go multilingual in a simple and efficient way. Keep writing posts and taxonomy terms as usual while defining their languages all at once.",800000,25784629,2921,"2026-02-23T09:13:00.000Z","6.2",[115,17,18,116,21],"language","translate","https:\u002F\u002Fpolylang.pro","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpolylang.3.7.8.zip",93,3,"2025-10-28 00:00:00",{"attackSurface":123,"codeSignals":791,"taintFlows":1081,"riskAssessment":1907,"analyzedAt":1916},{"hooks":124,"ajaxHandlers":697,"restRoutes":763,"shortcodes":771,"cronEvents":788,"entryPointCount":789,"unprotectedCount":790},[125,131,134,139,144,148,152,156,160,164,168,172,176,180,184,188,193,197,200,202,204,209,211,216,220,222,227,231,235,239,245,248,252,256,259,263,268,271,274,278,281,283,287,290,293,296,299,301,304,306,309,313,317,320,322,324,325,327,328,330,334,337,339,341,343,344,349,351,355,359,363,366,370,373,376,380,382,386,389,393,396,399,403,406,411,415,418,421,425,429,433,437,438,442,446,449,451,453,455,457,460,463,468,472,474,477,480,483,485,488,493,496,499,503,506,509,513,516,518,521,525,528,532,536,539,543,547,550,554,557,561,564,567,570,572,576,580,584,588,592,596,598,601,604,607,610,614,618,621,624,628,631,634,637,641,643,645,648,652,653,655,658,662,666,670,673,674,677,680,684,688,692,694,695],{"type":126,"name":127,"callback":128,"priority":28,"file":129,"line":130},"action","plugins_loaded","initialize_latest_version","includes\\asrunner\\action-scheduler.php",36,{"type":126,"name":127,"callback":132,"priority":10,"file":129,"line":133},"wpmmcc_asrunner_register_3_dot_9_dot_99_wpmmcc",39,{"type":126,"name":135,"callback":136,"priority":28,"file":137,"line":138},"init","closure","includes\\asrunner\\classes\\abstracts\\ActionScheduler.php",156,{"type":126,"name":140,"callback":141,"priority":41,"file":142,"line":143},"action_scheduler_canceled_action","log_canceled_action","includes\\asrunner\\classes\\abstracts\\ActionScheduler_Logger.php",65,{"type":126,"name":145,"callback":146,"priority":41,"file":142,"line":147},"action_scheduler_begin_execute","log_started_action",66,{"type":126,"name":149,"callback":150,"priority":41,"file":142,"line":151},"action_scheduler_after_execute","log_completed_action",67,{"type":126,"name":153,"callback":154,"priority":41,"file":142,"line":155},"action_scheduler_failed_execution","log_failed_action",68,{"type":126,"name":157,"callback":158,"priority":41,"file":142,"line":159},"action_scheduler_failed_action","log_timed_out_action",69,{"type":126,"name":161,"callback":162,"priority":41,"file":142,"line":163},"action_scheduler_unexpected_shutdown","log_unexpected_shutdown",70,{"type":126,"name":165,"callback":166,"priority":41,"file":142,"line":167},"action_scheduler_reset_action","log_reset_action",71,{"type":126,"name":169,"callback":170,"priority":41,"file":142,"line":171},"action_scheduler_execution_ignored","log_ignored_action",72,{"type":126,"name":173,"callback":174,"priority":41,"file":142,"line":175},"action_scheduler_failed_fetch_action","log_failed_fetch_action",73,{"type":126,"name":177,"callback":178,"priority":41,"file":142,"line":179},"action_scheduler_failed_to_schedule_next_instance","log_failed_schedule_next_instance",74,{"type":126,"name":181,"callback":182,"priority":41,"file":142,"line":183},"action_scheduler_bulk_cancel_actions","bulk_log_cancel_actions",75,{"type":126,"name":185,"callback":186,"file":142,"line":187},"action_scheduler_stored_action","log_stored_action",82,{"type":126,"name":189,"callback":190,"file":191,"line":192},"shutdown","handle_unexpected_shutdown","includes\\asrunner\\classes\\ActionScheduler_FatalErrorMonitor.php",45,{"type":126,"name":194,"callback":195,"priority":10,"file":191,"line":196},"action_scheduler_before_execute","track_current_action",46,{"type":126,"name":149,"callback":198,"priority":10,"file":191,"line":199},"untrack_action",47,{"type":126,"name":169,"callback":198,"priority":10,"file":191,"line":201},48,{"type":126,"name":153,"callback":198,"priority":10,"file":191,"line":203},49,{"type":205,"name":206,"callback":207,"file":208,"line":163},"filter","cron_schedules","add_wp_cron_schedule","includes\\asrunner\\classes\\ActionScheduler_QueueRunner.php",{"type":126,"name":189,"callback":210,"file":208,"line":119},"maybe_dispatch_async_request",{"type":126,"name":212,"callback":213,"priority":41,"file":214,"line":215},"action_scheduler_before_schema_update","update_schema_5_0","includes\\asrunner\\classes\\schema\\ActionScheduler_StoreSchema.php",41,{"type":126,"name":127,"callback":217,"file":218,"line":219},"on_plugins_loaded","includes\\class-plugin.php",62,{"type":126,"name":135,"callback":135,"file":218,"line":221},63,{"type":126,"name":223,"callback":224,"file":225,"line":226},"admin_menu","register_menu","src\\Admin\\AdminService.php",76,{"type":126,"name":228,"callback":229,"file":225,"line":230},"admin_enqueue_scripts","enqueue_assets",77,{"type":126,"name":232,"callback":233,"file":225,"line":234},"admin_notices","render_admin_notices",78,{"type":126,"name":236,"callback":237,"file":225,"line":238},"admin_post_wpmmcc_ml_toggle_logging","handle_logging_toggle",79,{"type":205,"name":240,"callback":241,"priority":242,"file":243,"line":244},"post_link","filter_post_link",20,"src\\Admin\\Hooks\\AdminFrontendLinkHooks.php",59,{"type":205,"name":246,"callback":241,"priority":242,"file":243,"line":247},"page_link",60,{"type":205,"name":249,"callback":250,"priority":242,"file":243,"line":251},"get_comment_link","filter_comment_link",61,{"type":126,"name":253,"callback":254,"file":255,"line":219},"restrict_manage_comments","render_site_filter","src\\Admin\\Hooks\\CommentListHooks.php",{"type":205,"name":257,"callback":258,"priority":41,"file":255,"line":221},"comments_clauses","filter_comments_clauses",{"type":126,"name":260,"callback":261,"file":255,"line":262},"admin_head-edit-comments.php","add_filter_styles",64,{"type":205,"name":264,"callback":265,"priority":41,"file":266,"line":267},"wpmcc_before_create_site","check_directory_conflict","src\\Admin\\Hooks\\DirectoryConflictHooks.php",57,{"type":205,"name":269,"callback":270,"priority":41,"file":266,"line":247},"wpmu_new_blog","check_wp_site_conflict",{"type":205,"name":272,"callback":273,"priority":41,"file":266,"line":221},"wpmmcc_before_save_site_group","check_group_directory_conflict",{"type":205,"name":275,"callback":276,"file":277,"line":167},"bulk_actions-upload","register_action","src\\Admin\\Hooks\\MediaBulkActions.php",{"type":205,"name":279,"callback":280,"priority":41,"file":277,"line":171},"handle_bulk_actions-upload","handle_action",{"type":126,"name":232,"callback":282,"file":277,"line":175},"render_notices",{"type":205,"name":284,"callback":285,"priority":242,"file":286,"line":221},"attachment_fields_to_edit","add_translation_fields","src\\Admin\\Hooks\\MediaEditHooks.php",{"type":126,"name":288,"callback":289,"file":286,"line":147},"admin_footer-post.php","add_translation_switcher_script",{"type":126,"name":291,"callback":292,"file":286,"line":151},"admin_head-post.php","add_translation_switcher_styles",{"type":126,"name":294,"callback":254,"priority":41,"file":295,"line":143},"restrict_manage_posts","src\\Admin\\Hooks\\MediaListHooks.php",{"type":126,"name":297,"callback":298,"file":295,"line":155},"pre_get_posts","apply_site_filter",{"type":205,"name":284,"callback":300,"priority":41,"file":295,"line":167},"add_attachment_site_field",{"type":205,"name":302,"callback":303,"priority":41,"file":295,"line":171},"attachment_fields_to_save","save_attachment_site_field",{"type":126,"name":305,"callback":261,"file":295,"line":183},"admin_head-upload.php",{"type":126,"name":307,"callback":308,"file":295,"line":230},"admin_footer-upload.php","inject_toolbar_site_filter",{"type":126,"name":232,"callback":310,"file":311,"line":312},"maybe_render_notice","src\\Admin\\Hooks\\NetworkStatusNotices.php",56,{"type":205,"name":314,"callback":315,"file":316,"line":167},"bulk_actions-edit-post","register_bulk_action","src\\Admin\\Hooks\\PostBulkActions.php",{"type":205,"name":318,"callback":319,"priority":41,"file":316,"line":171},"handle_bulk_actions-edit-post","handle_bulk_action",{"type":205,"name":321,"callback":315,"file":316,"line":179},"bulk_actions-edit-page",{"type":205,"name":323,"callback":319,"priority":41,"file":316,"line":183},"handle_bulk_actions-edit-page",{"type":126,"name":232,"callback":282,"file":316,"line":226},{"type":126,"name":294,"callback":254,"priority":41,"file":326,"line":147},"src\\Admin\\Hooks\\PostListHooks.php",{"type":126,"name":297,"callback":298,"file":326,"line":159},{"type":126,"name":329,"callback":261,"file":326,"line":171},"admin_head-edit.php",{"type":205,"name":331,"callback":332,"priority":41,"file":333,"line":221},"get_term","filter_term_for_admin","src\\Admin\\Hooks\\TermAdminDisplayHooks.php",{"type":205,"name":335,"callback":276,"file":336,"line":167},"bulk_actions-edit-category","src\\Admin\\Hooks\\TermBulkActions.php",{"type":205,"name":338,"callback":280,"priority":41,"file":336,"line":171},"handle_bulk_actions-edit-category",{"type":205,"name":340,"callback":276,"file":336,"line":179},"bulk_actions-edit-post_tag",{"type":205,"name":342,"callback":280,"priority":41,"file":336,"line":183},"handle_bulk_actions-edit-post_tag",{"type":126,"name":232,"callback":282,"file":336,"line":230},{"type":126,"name":345,"callback":346,"priority":347,"file":348,"line":230},"category_add_form_fields","render_add_form_selector",5,"src\\Admin\\Hooks\\TermListHooks.php",{"type":126,"name":350,"callback":346,"priority":347,"file":348,"line":234},"post_tag_add_form_fields",{"type":126,"name":352,"callback":353,"priority":41,"file":348,"line":354},"restrict_manage_terms","render_filter_selector",81,{"type":126,"name":356,"callback":357,"file":348,"line":358},"admin_footer-edit-tags.php","inject_filter_selector_fallback",84,{"type":126,"name":360,"callback":361,"priority":41,"file":348,"line":362},"create_term","save_term_site_id",87,{"type":126,"name":364,"callback":361,"priority":41,"file":348,"line":365},"edit_term",88,{"type":126,"name":367,"callback":368,"priority":41,"file":348,"line":369},"category_edit_form_fields","render_edit_form_selector",91,{"type":126,"name":371,"callback":368,"priority":41,"file":348,"line":372},"post_tag_edit_form_fields",92,{"type":205,"name":374,"callback":298,"priority":41,"file":348,"line":375},"get_terms_args",95,{"type":205,"name":377,"callback":378,"priority":41,"file":348,"line":379},"get_terms","expand_terms_with_translations",98,{"type":205,"name":377,"callback":381,"file":348,"line":23},"sanitize_terms_for_display",{"type":205,"name":383,"callback":384,"file":348,"line":385},"manage_edit-category_columns","add_site_column",103,{"type":205,"name":387,"callback":384,"file":348,"line":388},"manage_edit-post_tag_columns",104,{"type":205,"name":390,"callback":391,"priority":41,"file":348,"line":392},"manage_category_custom_column","render_site_column",105,{"type":205,"name":394,"callback":391,"priority":41,"file":348,"line":395},"manage_post_tag_custom_column",106,{"type":126,"name":397,"callback":261,"file":348,"line":398},"admin_head-edit-tags.php",108,{"type":126,"name":400,"callback":401,"file":402,"line":262},"add_meta_boxes","add_meta_box","src\\Admin\\MetaBoxes\\PostSiteMetaBox.php",{"type":126,"name":404,"callback":405,"priority":41,"file":402,"line":151},"save_post","save_meta_box",{"type":126,"name":407,"callback":408,"file":409,"line":410},"admin_post_wpmmcc_ml_save_vendor","handle_save_vendor","src\\Admin\\Pages\\ApiVendorsPage.php",178,{"type":126,"name":412,"callback":413,"file":414,"line":251},"admin_post_wpmmcc_ml_save_global_settings","handle_save","src\\Admin\\Pages\\GlobalSettingsPage.php",{"type":126,"name":416,"callback":417,"file":414,"line":219},"admin_post_wpmmcc_ml_cleanup_logs","handle_cleanup_logs",{"type":126,"name":419,"callback":420,"file":414,"line":221},"admin_post_wpmmcc_ml_save_plugin_language","handle_save_language",{"type":126,"name":422,"callback":413,"file":423,"line":424},"admin_post_wpmmcc_ml_save_llm_model","src\\Admin\\Pages\\LlmPage.php",50,{"type":126,"name":426,"callback":427,"file":423,"line":428},"admin_post_wpmmcc_ml_delete_llm_model","handle_delete",51,{"type":126,"name":430,"callback":431,"file":423,"line":432},"admin_init","handle_bulk_actions_init",52,{"type":126,"name":434,"callback":413,"file":435,"line":436},"admin_post_wpmmcc_ml_save_settings","src\\Admin\\Pages\\SettingsPage.php",58,{"type":126,"name":416,"callback":417,"file":435,"line":244},{"type":126,"name":439,"callback":440,"file":441,"line":215},"admin_post_wpmmcc_ml_save_group","handle_save_group","src\\Admin\\Pages\\SiteGroupsPage.php",{"type":126,"name":443,"callback":444,"file":441,"line":445},"admin_post_wpmmcc_ml_delete_group","handle_delete_group",42,{"type":126,"name":447,"callback":280,"file":448,"line":203},"admin_post_wpmmcc_ml_task_cancel","src\\Admin\\Pages\\TaskListPage.php",{"type":126,"name":450,"callback":280,"file":448,"line":424},"admin_post_wpmmcc_ml_task_run",{"type":126,"name":452,"callback":280,"file":448,"line":428},"admin_post_wpmmcc_ml_task_retry",{"type":126,"name":454,"callback":280,"file":448,"line":432},"admin_post_wpmmcc_ml_task_delete",{"type":126,"name":228,"callback":456,"file":448,"line":436},"enqueue_scripts",{"type":126,"name":458,"callback":427,"file":459,"line":159},"admin_post_wpmmcc_ml_delete_relation","src\\Admin\\Pages\\TranslationManagementPage.php",{"type":126,"name":461,"callback":462,"file":459,"line":163},"admin_post_wpmmcc_ml_bulk_delete_relations","handle_bulk_delete",{"type":126,"name":464,"callback":465,"file":466,"line":467},"admin_post_wpmmcc_ml_save_rule","handle_save_rule","src\\Admin\\Pages\\TranslationRulesPage.php",112,{"type":126,"name":469,"callback":470,"file":466,"line":471},"admin_post_wpmmcc_ml_delete_rule","handle_delete_rule",113,{"type":126,"name":430,"callback":431,"file":466,"line":473},116,{"type":126,"name":135,"callback":475,"file":476,"line":199},"register_rewrite","src\\Core\\SitemapService.php",{"type":205,"name":478,"callback":479,"file":476,"line":201},"query_vars","register_query_vars",{"type":126,"name":481,"callback":482,"file":476,"line":203},"template_redirect","maybe_render_sitemap",{"type":126,"name":135,"callback":484,"priority":242,"file":476,"line":424},"maybe_flush_rewrite_once",{"type":205,"name":486,"callback":487,"priority":41,"file":476,"line":428},"redirect_canonical","maybe_disable_canonical_for_sitemap",{"type":126,"name":135,"callback":489,"priority":490,"file":491,"line":492},"init_action_scheduler",11,"src\\Infrastructure\\Providers\\TaskProvider.php",28,{"type":126,"name":494,"callback":495,"file":491,"line":221},"rest_api_init","register_rest_routes",{"type":126,"name":135,"callback":497,"priority":41,"file":498,"line":221},"register_admin_service","src\\Infrastructure\\ServiceProvider.php",{"type":126,"name":500,"callback":501,"priority":347,"file":502,"line":362},"wp_head","output_head_links","src\\PublicSite\\FrontendService.php",{"type":126,"name":504,"callback":229,"file":502,"line":505},"wp_enqueue_scripts",115,{"type":126,"name":135,"callback":507,"file":502,"line":508},"register_shortcodes",119,{"type":126,"name":481,"callback":510,"priority":242,"file":511,"line":512},"maybe_redirect_trailing_segment","src\\PublicSite\\Hooks\\CanonicalFallbackHooks.php",43,{"type":205,"name":514,"callback":515,"priority":41,"file":511,"line":196},"do_redirect_guess_404_permalink","filter_guess_404_permalink",{"type":205,"name":486,"callback":517,"priority":41,"file":511,"line":203},"filter_redirect_canonical",{"type":205,"name":519,"callback":520,"priority":41,"file":511,"line":432},"old_slug_redirect_url","filter_old_slug_redirect_url",{"type":205,"name":522,"callback":523,"priority":242,"file":524,"line":215},"get_post_metadata","filter_media_meta","src\\PublicSite\\Hooks\\MediaFrontendHooks.php",{"type":205,"name":526,"callback":527,"priority":242,"file":524,"line":445},"wp_get_attachment_caption","filter_caption",{"type":205,"name":529,"callback":530,"file":531,"line":512},"the_title","filter_title","src\\PublicSite\\Hooks\\PostContentHooks.php",{"type":205,"name":533,"callback":534,"file":531,"line":535},"the_content","filter_content",44,{"type":205,"name":537,"callback":538,"file":531,"line":192},"get_the_excerpt","filter_excerpt",{"type":126,"name":297,"callback":540,"priority":41,"file":541,"line":542},"filter_posts_query","src\\PublicSite\\Hooks\\QueryFilterHooks.php",130,{"type":205,"name":544,"callback":545,"priority":41,"file":541,"line":546},"posts_where","filter_posts_where",131,{"type":205,"name":544,"callback":548,"priority":41,"file":541,"line":549},"filter_related_posts_where",132,{"type":205,"name":551,"callback":552,"priority":41,"file":541,"line":553},"get_next_post_where","filter_adjacent_post_where",133,{"type":205,"name":555,"callback":552,"priority":41,"file":541,"line":556},"get_previous_post_where",134,{"type":205,"name":558,"callback":559,"file":541,"line":560},"widget_archives_args","filter_widget_query_args",135,{"type":205,"name":562,"callback":559,"file":541,"line":563},"widget_posts_args",136,{"type":205,"name":374,"callback":565,"priority":41,"file":541,"line":566},"filter_terms_query",147,{"type":205,"name":568,"callback":559,"file":541,"line":569},"widget_comments_args",158,{"type":205,"name":257,"callback":258,"priority":41,"file":541,"line":571},159,{"type":205,"name":573,"callback":574,"priority":41,"file":541,"line":575},"get_usernumposts","filter_author_post_count",160,{"type":205,"name":577,"callback":578,"priority":242,"file":541,"line":579},"wpseo_breadcrumb_links","filter_yoast_breadcrumbs",174,{"type":205,"name":581,"callback":582,"priority":242,"file":541,"line":583},"rank_math\u002Ffrontend\u002Fbreadcrumb\u002Fitems","filter_rankmath_breadcrumbs",177,{"type":205,"name":585,"callback":586,"priority":242,"file":541,"line":587},"term_link","verify_term_belongs_to_site",180,{"type":205,"name":589,"callback":590,"priority":242,"file":541,"line":591},"get_the_categories","filter_post_categories",183,{"type":205,"name":593,"callback":594,"file":595,"line":372},"document_title_parts","filter_document_title","src\\PublicSite\\Hooks\\SeoMetaHooks.php",{"type":126,"name":500,"callback":597,"priority":28,"file":595,"line":375},"output_meta_description",{"type":205,"name":599,"callback":600,"file":595,"line":379},"pre_get_document_title","filter_pre_document_title",{"type":205,"name":331,"callback":602,"priority":242,"file":603,"line":215},"filter_term","src\\PublicSite\\Hooks\\TermFrontendHooks.php",{"type":205,"name":605,"callback":606,"priority":242,"file":603,"line":445},"term_name","filter_term_name",{"type":205,"name":608,"callback":609,"priority":242,"file":603,"line":512},"term_description","filter_term_description",{"type":205,"name":611,"callback":612,"file":613,"line":187},"dynamic_sidebar_params","capture_widget_params","src\\PublicSite\\Hooks\\ThemeDynamicHooks.php",{"type":205,"name":615,"callback":616,"file":613,"line":617},"wp_nav_menu_objects","filter_menu_items",83,{"type":205,"name":619,"callback":620,"file":613,"line":358},"widget_title","filter_widget_title",{"type":205,"name":622,"callback":623,"file":613,"line":50},"gettext","filter_gettext",{"type":205,"name":240,"callback":625,"file":626,"line":627},"localize_post_link","src\\PublicSite\\Hooks\\UrlLocalizationHooks.php",144,{"type":205,"name":246,"callback":629,"file":626,"line":630},"localize_page_link",145,{"type":205,"name":632,"callback":633,"priority":242,"file":626,"line":138},"script_loader_src","normalize_core_asset_url",{"type":205,"name":635,"callback":633,"priority":242,"file":626,"line":636},"style_loader_src",157,{"type":205,"name":638,"callback":639,"priority":242,"file":626,"line":640},"comment_post_redirect","localize_comment_redirect",168,{"type":205,"name":615,"callback":616,"file":626,"line":642},179,{"type":205,"name":533,"callback":644,"file":626,"line":587},"filter_content_urls",{"type":205,"name":646,"callback":644,"file":626,"line":647},"widget_text",181,{"type":205,"name":649,"callback":650,"priority":41,"file":651,"line":133},"rewrite_rules_array","filter_rewrite_rules","src\\PublicSite\\RewriteRulesManager.php",{"type":205,"name":478,"callback":479,"file":651,"line":445},{"type":126,"name":135,"callback":654,"priority":10,"file":651,"line":512},"register_public_query_var",{"type":126,"name":656,"callback":657,"file":651,"line":196},"wpmmcc_sites_updated","flush_rewrite_rules",{"type":126,"name":659,"callback":660,"priority":10,"file":661,"line":492},"parse_request","clear_cache","src\\PublicSite\\SiteContext.php",{"type":205,"name":663,"callback":664,"priority":242,"file":661,"line":665},"home_url","filter_home_url",482,{"type":126,"name":153,"callback":667,"priority":41,"file":668,"line":669},"anonymous","src\\Scheduling\\ActivationTestRunner.php",481,{"type":126,"name":135,"callback":671,"priority":347,"file":672,"line":436},"bootstrap","src\\Scheduling\\TaskQueue.php",{"type":126,"name":494,"callback":495,"file":672,"line":244},{"type":126,"name":153,"callback":675,"priority":41,"file":672,"line":676},"handle_failed_execution",198,{"type":126,"name":140,"callback":678,"file":672,"line":679},"handle_canceled_action",199,{"type":205,"name":681,"callback":682,"file":672,"line":683},"action_scheduler_queue_runner_batch_size","filter_batch_size",200,{"type":205,"name":685,"callback":686,"file":672,"line":687},"action_scheduler_queue_runner_concurrent_batches","filter_concurrent_batches",201,{"type":205,"name":689,"callback":690,"file":672,"line":691},"action_scheduler_queue_runner_time_limit","filter_time_limit",202,{"type":126,"name":659,"callback":660,"priority":10,"file":693,"line":492},"src\\Sites\\SiteContext.php",{"type":205,"name":663,"callback":664,"priority":242,"file":693,"line":665},{"type":126,"name":232,"callback":136,"file":696,"line":445},"wpmmcc.php",[698,704,709,713,716,720,723,726,729,733,736,739,742,746,750,754,756,760],{"action":699,"nopriv":700,"callback":701,"hasNonce":702,"hasCapCheck":702,"file":703,"line":219},"wpmmcc_bulk_translate",false,"handle_bulk_translate",true,"src\\Admin\\Ajax\\BulkTranslationAjaxHandler.php",{"action":705,"nopriv":700,"callback":706,"hasNonce":700,"hasCapCheck":700,"file":707,"line":708},"wpmmcc_ml_list_seo_fields","ajax_list_fields","src\\Admin\\Pages\\SeoFieldsPage.php",37,{"action":710,"nopriv":700,"callback":711,"hasNonce":700,"hasCapCheck":700,"file":707,"line":712},"wpmmcc_ml_scan_seo_fields","ajax_scan_fields",38,{"action":714,"nopriv":700,"callback":715,"hasNonce":700,"hasCapCheck":700,"file":707,"line":133},"wpmmcc_ml_add_seo_field","ajax_add_field",{"action":717,"nopriv":700,"callback":718,"hasNonce":700,"hasCapCheck":700,"file":707,"line":719},"wpmmcc_ml_remove_seo_field","ajax_remove_field",40,{"action":721,"nopriv":700,"callback":722,"hasNonce":700,"hasCapCheck":700,"file":707,"line":215},"wpmmcc_ml_toggle_seo_field","ajax_toggle_field",{"action":724,"nopriv":700,"callback":725,"hasNonce":702,"hasCapCheck":702,"file":441,"line":512},"wpmmcc_ml_check_group_name","ajax_check_group_name",{"action":727,"nopriv":700,"callback":728,"hasNonce":702,"hasCapCheck":702,"file":441,"line":535},"wpmmcc_ml_check_group_directory","ajax_check_group_directory",{"action":730,"nopriv":700,"callback":731,"hasNonce":702,"hasCapCheck":702,"file":732,"line":167},"wpmmcc_ml_site_save","ajax_save_site","src\\Admin\\Pages\\SiteListPage.php",{"action":734,"nopriv":700,"callback":735,"hasNonce":702,"hasCapCheck":702,"file":732,"line":171},"wpmmcc_ml_site_delete","ajax_delete_site",{"action":737,"nopriv":700,"callback":738,"hasNonce":702,"hasCapCheck":702,"file":732,"line":175},"wpmmcc_ml_site_update_field","ajax_update_site_field",{"action":740,"nopriv":700,"callback":741,"hasNonce":702,"hasCapCheck":702,"file":732,"line":179},"wpmmcc_ml_site_translate","ajax_translate_site_field",{"action":743,"nopriv":700,"callback":744,"hasNonce":702,"hasCapCheck":702,"file":448,"line":745},"wpmmcc_trigger_queue","handle_trigger_queue",55,{"action":747,"nopriv":700,"callback":748,"hasNonce":702,"hasCapCheck":702,"file":749,"line":354},"wpmmcc_ml_theme_manual_save","ajax_save_manual_translation","src\\Admin\\Pages\\ThemeTranslationPage.php",{"action":751,"nopriv":700,"callback":752,"hasNonce":700,"hasCapCheck":700,"file":753,"line":708},"wpmmcc_ml_get_translation_fields","ajax_get_fields","src\\Admin\\Pages\\TranslationFieldsPage.php",{"action":755,"nopriv":700,"callback":722,"hasNonce":700,"hasCapCheck":700,"file":753,"line":712},"wpmmcc_ml_toggle_translation_field",{"action":757,"nopriv":700,"callback":758,"hasNonce":702,"hasCapCheck":702,"file":466,"line":759},"wpmmcc_ml_test_rule","handle_test_rule",114,{"action":761,"nopriv":700,"callback":762,"hasNonce":702,"hasCapCheck":702,"file":466,"line":505},"wpmmcc_ml_check_rule_name","handle_check_rule_name",[764],{"namespace":765,"route":766,"methods":767,"callback":769,"permissionCallback":770,"file":672,"line":221},"wpmmcc\u002Fv1","\u002Fqueue\u002Ftrigger",[768],"POST","handle_rest_trigger","verify_trigger_permission",[772,774,777,780,782,785],{"tag":773,"callback":136,"file":502,"line":642},"wpmmcc_ml_site_group_type",{"tag":775,"callback":136,"file":502,"line":776},"wpmmcc_ml_current_language",186,{"tag":778,"callback":136,"file":502,"line":779},"wpmmcc_ml_canonical",193,{"tag":781,"callback":136,"file":502,"line":683},"wpmmcc_ml_hreflang",{"tag":783,"callback":136,"file":502,"line":784},"wpmmcc_ml_language_switcher",207,{"tag":786,"callback":136,"file":502,"line":787},"wpmmcc_ml_language_items",232,[],25,7,{"dangerousFunctions":792,"sqlUsage":798,"outputEscaping":923,"fileOperations":1078,"externalRequests":28,"nonceChecks":712,"capabilityChecks":1079,"bundledLibraries":1080},[793],{"fn":794,"file":795,"line":796,"context":797},"unserialize","includes\\asrunner\\classes\\data-stores\\ActionScheduler_DBStore.php",432,"$schedule = unserialize( $data->schedule );",{"prepared":799,"raw":155,"locations":800},397,[801,804,807,809,811,813,815,817,820,822,825,827,829,831,833,835,836,837,838,840,842,843,845,846,847,850,851,853,854,855,856,858,859,860,863,864,865,866,868,870,872,874,876,877,878,880,881,884,886,888,891,893,896,898,901,902,903,905,906,907,909,911,913,914,916,918,920,921],{"file":795,"line":802,"context":803},708,"$wpdb->get_results() with variable interpolation",{"file":795,"line":805,"context":806},1280,"$wpdb->query() with variable interpolation",{"file":214,"line":11,"context":808},"$wpdb->get_col() with variable interpolation",{"file":414,"line":810,"context":806},762,{"file":707,"line":812,"context":803},215,{"file":435,"line":814,"context":806},273,{"file":476,"line":816,"context":803},412,{"file":818,"line":819,"context":808},"src\\Database\\Cleaner.php",102,{"file":818,"line":821,"context":806},122,{"file":823,"line":789,"context":824},"src\\Database\\Migrations\\AddCanonicalRedirectToSiteGroups.php","$wpdb->get_row() with variable interpolation",{"file":823,"line":826,"context":806},32,{"file":828,"line":61,"context":808},"src\\Database\\Migrations\\AddEntryIdToThemeTranslationsTable.php",{"file":828,"line":830,"context":806},14,{"file":828,"line":832,"context":806},15,{"file":828,"line":834,"context":806},19,{"file":828,"line":789,"context":803},{"file":828,"line":312,"context":803},{"file":828,"line":436,"context":806},{"file":839,"line":834,"context":806},"src\\Database\\Migrations\\AddQpsToLlmModels.php",{"file":841,"line":130,"context":806},"src\\Database\\Migrations\\AddThemeNameToThemeTranslationsTable.php",{"file":841,"line":745,"context":803},{"file":841,"line":844,"context":803},89,{"file":841,"line":819,"context":806},{"file":841,"line":759,"context":806},{"file":848,"line":849,"context":824},"src\\Database\\Migrations\\UpdateSiteGroupsDirectoryNullable.php",13,{"file":848,"line":834,"context":806},{"file":852,"line":832,"context":808},"src\\Database\\Migrations\\UpdateSitesTableV2.php",{"file":852,"line":789,"context":806},{"file":852,"line":492,"context":808},{"file":852,"line":29,"context":806},{"file":852,"line":857,"context":806},34,{"file":852,"line":712,"context":806},{"file":852,"line":445,"context":803},{"file":861,"line":29,"context":862},"src\\Database\\Migrations\\UpdateTasksTableForScheduler.php","$wpdb->get_var() with variable interpolation",{"file":861,"line":826,"context":806},{"file":861,"line":192,"context":862},{"file":861,"line":199,"context":806},{"file":867,"line":244,"context":808},"src\\Database\\Migrator.php",{"file":869,"line":591,"context":808},"src\\Infrastructure\\Activator.php",{"file":869,"line":871,"context":808},206,{"file":869,"line":873,"context":808},231,{"file":875,"line":183,"context":806},"src\\Infrastructure\\Deactivator.php",{"file":875,"line":226,"context":806},{"file":875,"line":238,"context":808},{"file":875,"line":879,"context":806},101,{"file":875,"line":819,"context":806},{"file":882,"line":883,"context":803},"src\\Settings\\SettingsRepository.php",109,{"file":885,"line":379,"context":803},"src\\Sites\\SiteGroupRepository.php",{"file":885,"line":887,"context":808},355,{"file":889,"line":890,"context":824},"src\\Sites\\SiteRepository.php",414,{"file":889,"line":892,"context":803},477,{"file":894,"line":895,"context":808},"src\\Tasks\\TaskRepository.php",798,{"file":894,"line":897,"context":862},824,{"file":899,"line":900,"context":806},"uninstall.php",97,{"file":899,"line":395,"context":806},{"file":899,"line":883,"context":806},{"file":899,"line":904,"context":806},110,{"file":899,"line":471,"context":806},{"file":899,"line":759,"context":806},{"file":899,"line":908,"context":806},117,{"file":899,"line":910,"context":806},118,{"file":899,"line":912,"context":806},121,{"file":899,"line":821,"context":806},{"file":899,"line":915,"context":806},125,{"file":899,"line":917,"context":806},126,{"file":899,"line":919,"context":806},146,{"file":899,"line":566,"context":806},{"file":899,"line":922,"context":808},150,{"escaped":924,"rawEcho":119,"locations":925},1375,[926,929,931,932,934,936,938,940,942,944,946,949,951,953,955,957,959,960,962,964,966,968,970,972,974,975,976,978,980,981,982,983,984,985,986,987,988,989,990,991,993,996,998,999,1001,1003,1005,1006,1008,1009,1011,1013,1015,1017,1019,1020,1021,1022,1023,1024,1026,1027,1029,1031,1033,1035,1036,1037,1038,1040,1041,1043,1045,1047,1049,1050,1051,1052,1054,1056,1058,1059,1061,1063,1065,1066,1067,1068,1070,1072,1074,1075,1076],{"file":927,"line":354,"context":928},"scripts\\add_log_channels.php","raw output",{"file":927,"line":930,"context":928},86,{"file":927,"line":362,"context":928},{"file":225,"line":933,"context":928},409,{"file":225,"line":935,"context":928},410,{"file":225,"line":937,"context":928},415,{"file":225,"line":939,"context":928},416,{"file":225,"line":941,"context":928},494,{"file":225,"line":943,"context":928},510,{"file":225,"line":945,"context":928},689,{"file":947,"line":948,"context":928},"src\\Admin\\Components\\SiteSelector.php",297,{"file":255,"line":950,"context":928},99,{"file":311,"line":952,"context":928},96,{"file":348,"line":954,"context":928},225,{"file":402,"line":956,"context":928},154,{"file":402,"line":958,"context":928},155,{"file":409,"line":679,"context":928},{"file":409,"line":961,"context":928},236,{"file":409,"line":963,"context":928},238,{"file":409,"line":965,"context":928},243,{"file":414,"line":967,"context":928},318,{"file":414,"line":969,"context":928},325,{"file":414,"line":971,"context":928},327,{"file":414,"line":973,"context":928},329,{"file":423,"line":379,"context":928},{"file":423,"line":904,"context":928},{"file":423,"line":977,"context":928},357,{"file":423,"line":979,"context":928},451,{"file":423,"line":979,"context":928},{"file":423,"line":979,"context":928},{"file":423,"line":979,"context":928},{"file":707,"line":354,"context":928},{"file":707,"line":930,"context":928},{"file":707,"line":365,"context":928},{"file":707,"line":372,"context":928},{"file":707,"line":904,"context":928},{"file":707,"line":467,"context":928},{"file":707,"line":821,"context":928},{"file":707,"line":917,"context":928},{"file":707,"line":992,"context":928},127,{"file":994,"line":995,"context":928},"src\\Admin\\Pages\\SitemapPage.php",137,{"file":997,"line":119,"context":928},"src\\Admin\\Pages\\SitesPage.php",{"file":997,"line":904,"context":928},{"file":997,"line":1000,"context":928},124,{"file":997,"line":1002,"context":928},129,{"file":1004,"line":436,"context":928},"src\\Admin\\Pages\\TasksPage.php",{"file":1004,"line":251,"context":928},{"file":1007,"line":30,"context":928},"src\\Admin\\Pages\\ThemePage.php",{"file":1007,"line":900,"context":928},{"file":749,"line":1010,"context":928},290,{"file":749,"line":1012,"context":928},305,{"file":749,"line":1014,"context":928},446,{"file":749,"line":1016,"context":928},1173,{"file":749,"line":1018,"context":928},1177,{"file":753,"line":151,"context":928},{"file":753,"line":175,"context":928},{"file":753,"line":226,"context":928},{"file":753,"line":992,"context":928},{"file":753,"line":640,"context":928},{"file":753,"line":1025,"context":928},171,{"file":459,"line":904,"context":928},{"file":466,"line":1028,"context":928},244,{"file":466,"line":1030,"context":928},245,{"file":1032,"line":844,"context":928},"src\\Admin\\Tables\\LlmModelTable.php",{"file":1034,"line":1000,"context":928},"src\\Admin\\Tables\\TaskListTable.php",{"file":1034,"line":917,"context":928},{"file":1034,"line":553,"context":928},{"file":1034,"line":560,"context":928},{"file":1034,"line":1039,"context":928},138,{"file":1034,"line":93,"context":928},{"file":1034,"line":1042,"context":928},140,{"file":1034,"line":1044,"context":928},170,{"file":1034,"line":1046,"context":928},172,{"file":1034,"line":1048,"context":928},175,{"file":1034,"line":583,"context":928},{"file":1034,"line":642,"context":928},{"file":1034,"line":591,"context":928},{"file":1034,"line":1053,"context":928},185,{"file":1034,"line":1055,"context":928},187,{"file":1034,"line":1057,"context":928},203,{"file":1034,"line":784,"context":928},{"file":1034,"line":1060,"context":928},213,{"file":1034,"line":1062,"context":928},214,{"file":1064,"line":556,"context":928},"src\\Admin\\Tables\\TranslationRelationTable.php",{"file":1064,"line":563,"context":928},{"file":1064,"line":138,"context":928},{"file":1064,"line":569,"context":928},{"file":1064,"line":1069,"context":928},162,{"file":1064,"line":1071,"context":928},166,{"file":1064,"line":1073,"context":928},169,{"file":1064,"line":776,"context":928},{"file":1064,"line":1055,"context":928},{"file":1077,"line":821,"context":928},"src\\Admin\\Tables\\TranslationRulesTable.php",8,53,[],[1082,1105,1116,1130,1138,1147,1157,1166,1175,1185,1193,1203,1212,1223,1234,1252,1270,1292,1305,1342,1358,1385,1396,1407,1418,1454,1489,1500,1519,1593,1608,1627,1673,1684,1711,1758,1775,1791,1802,1815,1826,1849,1862,1884,1897],{"entryPoint":1083,"graph":1084,"unsanitizedCount":1103,"severity":1104},"search_box (src\\Admin\\Tables\\LlmModelTable.php:72)",{"nodes":1085,"edges":1100},[1086,1090,1095,1098],{"id":1087,"type":1088,"label":1089,"file":1032,"line":354},"n0","source","$_REQUEST['orderby']",{"id":1091,"type":1092,"label":1093,"file":1032,"line":354,"wp_function":1094},"n1","sink","echo() [XSS]","echo",{"id":1096,"type":1088,"label":1097,"file":1032,"line":358},"n2","$_REQUEST['order']",{"id":1099,"type":1092,"label":1093,"file":1032,"line":358,"wp_function":1094},"n3",[1101,1102],{"from":1087,"to":1091,"sanitized":700},{"from":1096,"to":1099,"sanitized":700},2,"medium",{"entryPoint":1106,"graph":1107,"unsanitizedCount":1103,"severity":1104},"search_box (src\\Admin\\Tables\\TranslationRulesTable.php:105)",{"nodes":1108,"edges":1113},[1109,1110,1111,1112],{"id":1087,"type":1088,"label":1089,"file":1077,"line":759},{"id":1091,"type":1092,"label":1093,"file":1077,"line":759,"wp_function":1094},{"id":1096,"type":1088,"label":1097,"file":1077,"line":908},{"id":1099,"type":1092,"label":1093,"file":1077,"line":908,"wp_function":1094},[1114,1115],{"from":1087,"to":1091,"sanitized":700},{"from":1096,"to":1099,"sanitized":700},{"entryPoint":1117,"graph":1118,"unsanitizedCount":10,"severity":1129},"handle_logging_toggle (src\\Admin\\AdminService.php:458)",{"nodes":1119,"edges":1127},[1120,1123],{"id":1087,"type":1088,"label":1121,"file":225,"line":1122},"$_POST",465,{"id":1091,"type":1092,"label":1124,"file":225,"line":1125,"wp_function":1126},"update_option() [Settings Manipulation]",467,"update_option",[1128],{"from":1087,"to":1091,"sanitized":702},"low",{"entryPoint":1131,"graph":1132,"unsanitizedCount":10,"severity":1129},"\u003CAdminService> (src\\Admin\\AdminService.php:0)",{"nodes":1133,"edges":1136},[1134,1135],{"id":1087,"type":1088,"label":1121,"file":225,"line":1122},{"id":1091,"type":1092,"label":1124,"file":225,"line":1125,"wp_function":1126},[1137],{"from":1087,"to":1091,"sanitized":702},{"entryPoint":1139,"graph":1140,"unsanitizedCount":10,"severity":1129},"handle_save_language (src\\Admin\\Pages\\GlobalSettingsPage.php:208)",{"nodes":1141,"edges":1145},[1142,1143],{"id":1087,"type":1088,"label":1121,"file":414,"line":812},{"id":1091,"type":1092,"label":1124,"file":414,"line":1144,"wp_function":1126},226,[1146],{"from":1087,"to":1091,"sanitized":702},{"entryPoint":1148,"graph":1149,"unsanitizedCount":10,"severity":1129},"handle_save (src\\Admin\\Pages\\GlobalSettingsPage.php:635)",{"nodes":1150,"edges":1155},[1151,1153],{"id":1087,"type":1088,"label":1121,"file":414,"line":1152},684,{"id":1091,"type":1092,"label":1124,"file":414,"line":1154,"wp_function":1126},685,[1156],{"from":1087,"to":1091,"sanitized":702},{"entryPoint":1158,"graph":1159,"unsanitizedCount":10,"severity":1129},"\u003CGlobalSettingsPage> (src\\Admin\\Pages\\GlobalSettingsPage.php:0)",{"nodes":1160,"edges":1164},[1161,1163],{"id":1087,"type":1088,"label":1162,"file":414,"line":812},"$_POST (x2)",{"id":1091,"type":1092,"label":1124,"file":414,"line":1144,"wp_function":1126},[1165],{"from":1087,"to":1091,"sanitized":702},{"entryPoint":1167,"graph":1168,"unsanitizedCount":10,"severity":1129},"render_list (src\\Admin\\Pages\\SiteGroupsPage.php:70)",{"nodes":1169,"edges":1173},[1170,1172],{"id":1087,"type":1088,"label":1171,"file":441,"line":226},"$_GET",{"id":1091,"type":1092,"label":1093,"file":441,"line":560,"wp_function":1094},[1174],{"from":1087,"to":1091,"sanitized":702},{"entryPoint":1176,"graph":1177,"unsanitizedCount":10,"severity":1129},"render (src\\Admin\\Pages\\SitemapPage.php:62)",{"nodes":1178,"edges":1183},[1179,1181],{"id":1087,"type":1088,"label":1180,"file":994,"line":508},"$_GET (x2)",{"id":1091,"type":1092,"label":1093,"file":994,"line":1182,"wp_function":1094},182,[1184],{"from":1087,"to":1091,"sanitized":702},{"entryPoint":1186,"graph":1187,"unsanitizedCount":10,"severity":1129},"\u003CSitemapPage> (src\\Admin\\Pages\\SitemapPage.php:0)",{"nodes":1188,"edges":1191},[1189,1190],{"id":1087,"type":1088,"label":1180,"file":994,"line":508},{"id":1091,"type":1092,"label":1093,"file":994,"line":1182,"wp_function":1094},[1192],{"from":1087,"to":1091,"sanitized":702},{"entryPoint":1194,"graph":1195,"unsanitizedCount":10,"severity":1129},"render_chain_view (src\\Admin\\Pages\\TaskListPage.php:736)",{"nodes":1196,"edges":1201},[1197,1199],{"id":1087,"type":1088,"label":1171,"file":448,"line":1198},737,{"id":1091,"type":1092,"label":1093,"file":448,"line":1200,"wp_function":1094},778,[1202],{"from":1087,"to":1091,"sanitized":702},{"entryPoint":1204,"graph":1205,"unsanitizedCount":10,"severity":1129},"render (src\\Admin\\Pages\\TranslationManagementPage.php:80)",{"nodes":1206,"edges":1210},[1207,1209],{"id":1087,"type":1088,"label":1208,"file":459,"line":930},"$_GET (x3)",{"id":1091,"type":1092,"label":1093,"file":459,"line":563,"wp_function":1094},[1211],{"from":1087,"to":1091,"sanitized":702},{"entryPoint":1213,"graph":1214,"unsanitizedCount":1103,"severity":1129},"\u003CLlmModelTable> (src\\Admin\\Tables\\LlmModelTable.php:0)",{"nodes":1215,"edges":1220},[1216,1217,1218,1219],{"id":1087,"type":1088,"label":1089,"file":1032,"line":354},{"id":1091,"type":1092,"label":1093,"file":1032,"line":354,"wp_function":1094},{"id":1096,"type":1088,"label":1097,"file":1032,"line":358},{"id":1099,"type":1092,"label":1093,"file":1032,"line":358,"wp_function":1094},[1221,1222],{"from":1087,"to":1091,"sanitized":700},{"from":1096,"to":1099,"sanitized":700},{"entryPoint":1224,"graph":1225,"unsanitizedCount":1103,"severity":1129},"\u003CTranslationRulesTable> (src\\Admin\\Tables\\TranslationRulesTable.php:0)",{"nodes":1226,"edges":1231},[1227,1228,1229,1230],{"id":1087,"type":1088,"label":1089,"file":1077,"line":759},{"id":1091,"type":1092,"label":1093,"file":1077,"line":759,"wp_function":1094},{"id":1096,"type":1088,"label":1097,"file":1077,"line":908},{"id":1099,"type":1092,"label":1093,"file":1077,"line":908,"wp_function":1094},[1232,1233],{"from":1087,"to":1091,"sanitized":700},{"from":1096,"to":1099,"sanitized":700},{"entryPoint":1235,"graph":1236,"unsanitizedCount":120,"severity":1251},"\u003CTermListHooks> (src\\Admin\\Hooks\\TermListHooks.php:0)",{"nodes":1237,"edges":1248},[1238,1241,1244],{"id":1087,"type":1088,"label":1239,"file":348,"line":1240},"$_POST (x3)",990,{"id":1091,"type":1242,"label":1243,"file":348,"line":1240},"transform","→ find()",{"id":1096,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},"get_row() [SQLi]","src\\Translation\\TranslationRuleRepository.php","get_row",[1249,1250],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},"high",{"entryPoint":1253,"graph":1254,"unsanitizedCount":28,"severity":1251},"render_form (src\\Admin\\Pages\\LlmPage.php:387)",{"nodes":1255,"edges":1266},[1256,1259,1261,1263,1264],{"id":1087,"type":1088,"label":1257,"file":423,"line":1258},"$_GET (x4)",392,{"id":1091,"type":1092,"label":1093,"file":423,"line":1260,"wp_function":1094},435,{"id":1096,"type":1088,"label":1171,"file":423,"line":1262},396,{"id":1099,"type":1242,"label":1243,"file":423,"line":1262},{"id":1265,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},"n4",[1267,1268,1269],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"entryPoint":1271,"graph":1272,"unsanitizedCount":1103,"severity":1251},"handle_save (src\\Admin\\Pages\\LlmPage.php:489)",{"nodes":1273,"edges":1287},[1274,1276,1277,1278,1280,1282],{"id":1087,"type":1088,"label":1121,"file":423,"line":1275},548,{"id":1091,"type":1242,"label":1243,"file":423,"line":1275},{"id":1096,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},{"id":1099,"type":1088,"label":1121,"file":423,"line":1279},554,{"id":1265,"type":1242,"label":1281,"file":423,"line":1279},"→ exists_model()",{"id":1283,"type":1092,"label":1284,"file":1285,"line":937,"wp_function":1286},"n5","get_var() [SQLi]","src\\Translation\\LlmModelRepository.php","get_var",[1288,1289,1290,1291],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"from":1265,"to":1283,"sanitized":700},{"entryPoint":1293,"graph":1294,"unsanitizedCount":28,"severity":1251},"handle_delete (src\\Admin\\Pages\\LlmPage.php:667)",{"nodes":1295,"edges":1302},[1296,1298,1300],{"id":1087,"type":1088,"label":1171,"file":423,"line":1297},683,{"id":1091,"type":1242,"label":1299,"file":423,"line":1297},"→ count_by_model()",{"id":1096,"type":1092,"label":1284,"file":1246,"line":1301,"wp_function":1286},359,[1303,1304],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"entryPoint":1306,"graph":1307,"unsanitizedCount":1341,"severity":1251},"\u003CLlmPage> (src\\Admin\\Pages\\LlmPage.php:0)",{"nodes":1308,"edges":1331},[1309,1310,1311,1312,1313,1314,1315,1317,1319,1321,1323,1325,1327,1329],{"id":1087,"type":1088,"label":1257,"file":423,"line":1258},{"id":1091,"type":1092,"label":1093,"file":423,"line":1260,"wp_function":1094},{"id":1096,"type":1088,"label":1171,"file":423,"line":1262},{"id":1099,"type":1242,"label":1243,"file":423,"line":1262},{"id":1265,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},{"id":1283,"type":1088,"label":1121,"file":423,"line":1275},{"id":1316,"type":1242,"label":1243,"file":423,"line":1275},"n6",{"id":1318,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},"n7",{"id":1320,"type":1088,"label":1121,"file":423,"line":1279},"n8",{"id":1322,"type":1242,"label":1281,"file":423,"line":1279},"n9",{"id":1324,"type":1092,"label":1284,"file":1285,"line":937,"wp_function":1286},"n10",{"id":1326,"type":1088,"label":1171,"file":423,"line":1297},"n11",{"id":1328,"type":1242,"label":1299,"file":423,"line":1297},"n12",{"id":1330,"type":1092,"label":1284,"file":1246,"line":1301,"wp_function":1286},"n13",[1332,1333,1334,1335,1336,1337,1338,1339,1340],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"from":1283,"to":1316,"sanitized":700},{"from":1316,"to":1318,"sanitized":700},{"from":1320,"to":1322,"sanitized":700},{"from":1322,"to":1324,"sanitized":700},{"from":1326,"to":1328,"sanitized":700},{"from":1328,"to":1330,"sanitized":700},4,{"entryPoint":1343,"graph":1344,"unsanitizedCount":28,"severity":1251},"render_form (src\\Admin\\Pages\\SiteGroupsPage.php:218)",{"nodes":1345,"edges":1354},[1346,1348,1350,1352,1353],{"id":1087,"type":1088,"label":1208,"file":441,"line":1347},233,{"id":1091,"type":1092,"label":1093,"file":441,"line":1349,"wp_function":1094},302,{"id":1096,"type":1088,"label":1171,"file":441,"line":1351},237,{"id":1099,"type":1242,"label":1243,"file":441,"line":1351},{"id":1265,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},[1355,1356,1357],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"entryPoint":1359,"graph":1360,"unsanitizedCount":120,"severity":1251},"handle_save_group (src\\Admin\\Pages\\SiteGroupsPage.php:547)",{"nodes":1361,"edges":1378},[1362,1363,1365,1367,1369,1371,1372,1374,1376],{"id":1087,"type":1088,"label":1121,"file":441,"line":1154},{"id":1091,"type":1242,"label":1364,"file":441,"line":1154},"→ exists_name()",{"id":1096,"type":1092,"label":1284,"file":1246,"line":1366,"wp_function":1286},338,{"id":1099,"type":1088,"label":1121,"file":441,"line":1368},697,{"id":1265,"type":1242,"label":1370,"file":441,"line":1368},"→ exists_directory()",{"id":1283,"type":1092,"label":1284,"file":885,"line":943,"wp_function":1286},{"id":1316,"type":1088,"label":1121,"file":441,"line":1373},707,{"id":1318,"type":1242,"label":1375,"file":441,"line":1373},"→ is_main_site_assigned()",{"id":1320,"type":1092,"label":1284,"file":885,"line":1377,"wp_function":1286},400,[1379,1380,1381,1382,1383,1384],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"from":1265,"to":1283,"sanitized":700},{"from":1316,"to":1318,"sanitized":700},{"from":1318,"to":1320,"sanitized":700},{"entryPoint":1386,"graph":1387,"unsanitizedCount":28,"severity":1251},"handle_delete_group (src\\Admin\\Pages\\SiteGroupsPage.php:781)",{"nodes":1388,"edges":1393},[1389,1390,1392],{"id":1087,"type":1088,"label":1171,"file":441,"line":895},{"id":1091,"type":1242,"label":1391,"file":441,"line":895},"→ count_children_by_group()",{"id":1096,"type":1092,"label":1284,"file":889,"line":1046,"wp_function":1286},[1394,1395],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"entryPoint":1397,"graph":1398,"unsanitizedCount":28,"severity":1251},"ajax_check_group_name (src\\Admin\\Pages\\SiteGroupsPage.php:830)",{"nodes":1399,"edges":1404},[1400,1402,1403],{"id":1087,"type":1088,"label":1121,"file":441,"line":1401},844,{"id":1091,"type":1242,"label":1364,"file":441,"line":1401},{"id":1096,"type":1092,"label":1284,"file":1246,"line":1366,"wp_function":1286},[1405,1406],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"entryPoint":1408,"graph":1409,"unsanitizedCount":28,"severity":1251},"ajax_check_group_directory (src\\Admin\\Pages\\SiteGroupsPage.php:855)",{"nodes":1410,"edges":1415},[1411,1413,1414],{"id":1087,"type":1088,"label":1121,"file":441,"line":1412},875,{"id":1091,"type":1242,"label":1370,"file":441,"line":1412},{"id":1096,"type":1092,"label":1284,"file":885,"line":943,"wp_function":1286},[1416,1417],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"entryPoint":1419,"graph":1420,"unsanitizedCount":790,"severity":1251},"\u003CSiteGroupsPage> (src\\Admin\\Pages\\SiteGroupsPage.php:0)",{"nodes":1421,"edges":1442},[1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1438,1440],{"id":1087,"type":1088,"label":1257,"file":441,"line":226},{"id":1091,"type":1092,"label":1093,"file":441,"line":560,"wp_function":1094},{"id":1096,"type":1088,"label":1171,"file":441,"line":1351},{"id":1099,"type":1242,"label":1243,"file":441,"line":1351},{"id":1265,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},{"id":1283,"type":1088,"label":1162,"file":441,"line":1154},{"id":1316,"type":1242,"label":1364,"file":441,"line":1154},{"id":1318,"type":1092,"label":1284,"file":1246,"line":1366,"wp_function":1286},{"id":1320,"type":1088,"label":1162,"file":441,"line":1368},{"id":1322,"type":1242,"label":1370,"file":441,"line":1368},{"id":1324,"type":1092,"label":1284,"file":885,"line":943,"wp_function":1286},{"id":1326,"type":1088,"label":1121,"file":441,"line":1373},{"id":1328,"type":1242,"label":1375,"file":441,"line":1373},{"id":1330,"type":1092,"label":1284,"file":885,"line":1377,"wp_function":1286},{"id":1437,"type":1088,"label":1171,"file":441,"line":895},"n14",{"id":1439,"type":1242,"label":1391,"file":441,"line":895},"n15",{"id":1441,"type":1092,"label":1284,"file":889,"line":1046,"wp_function":1286},"n16",[1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"from":1283,"to":1316,"sanitized":700},{"from":1316,"to":1318,"sanitized":700},{"from":1320,"to":1322,"sanitized":700},{"from":1322,"to":1324,"sanitized":700},{"from":1326,"to":1328,"sanitized":700},{"from":1328,"to":1330,"sanitized":700},{"from":1437,"to":1439,"sanitized":700},{"from":1439,"to":1441,"sanitized":700},{"entryPoint":1455,"graph":1456,"unsanitizedCount":1341,"severity":1251},"render (src\\Admin\\Pages\\SiteListPage.php:85)",{"nodes":1457,"edges":1480},[1458,1459,1460,1461,1462,1464,1468,1470,1472,1474,1476,1478],{"id":1087,"type":1088,"label":1171,"file":732,"line":385},{"id":1091,"type":1242,"label":1243,"file":732,"line":385},{"id":1096,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},{"id":1099,"type":1088,"label":1171,"file":732,"line":398},{"id":1265,"type":1242,"label":1463,"file":732,"line":398},"→ all_by_group()",{"id":1283,"type":1092,"label":1465,"file":889,"line":1466,"wp_function":1467},"get_results() [SQLi]",223,"get_results",{"id":1316,"type":1088,"label":1171,"file":732,"line":1469},141,{"id":1318,"type":1242,"label":1471,"file":732,"line":1469},"→ render_filter_bar()",{"id":1320,"type":1092,"label":1093,"file":732,"line":1473,"wp_function":1094},993,{"id":1322,"type":1088,"label":1171,"file":732,"line":1475},142,{"id":1324,"type":1242,"label":1477,"file":732,"line":1475},"→ render_table()",{"id":1326,"type":1092,"label":1093,"file":732,"line":1479,"wp_function":1094},1035,[1481,1482,1483,1484,1485,1486,1487,1488],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"from":1265,"to":1283,"sanitized":700},{"from":1316,"to":1318,"sanitized":700},{"from":1318,"to":1320,"sanitized":700},{"from":1322,"to":1324,"sanitized":700},{"from":1324,"to":1326,"sanitized":700},{"entryPoint":1490,"graph":1491,"unsanitizedCount":120,"severity":1251},"ajax_translate_site_field (src\\Admin\\Pages\\SiteListPage.php:291)",{"nodes":1492,"edges":1497},[1493,1495,1496],{"id":1087,"type":1088,"label":1239,"file":732,"line":1494},312,{"id":1091,"type":1242,"label":1243,"file":732,"line":1494},{"id":1096,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},[1498,1499],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"entryPoint":1501,"graph":1502,"unsanitizedCount":1103,"severity":1251},"ajax_delete_site (src\\Admin\\Pages\\SiteListPage.php:416)",{"nodes":1503,"edges":1514},[1504,1506,1507,1508,1510,1512],{"id":1087,"type":1088,"label":1121,"file":732,"line":1505},429,{"id":1091,"type":1242,"label":1243,"file":732,"line":1505},{"id":1096,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},{"id":1099,"type":1088,"label":1121,"file":732,"line":1509},439,{"id":1265,"type":1242,"label":1511,"file":732,"line":1509},"→ resequence_sort_order()",{"id":1283,"type":1092,"label":1465,"file":889,"line":1513,"wp_function":1467},533,[1515,1516,1517,1518],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"from":1265,"to":1283,"sanitized":700},{"entryPoint":1520,"graph":1521,"unsanitizedCount":1592,"severity":1251},"\u003CSiteListPage> (src\\Admin\\Pages\\SiteListPage.php:0)",{"nodes":1522,"edges":1573},[1523,1526,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1544,1546,1548,1550,1552,1554,1557,1560,1563,1566,1569],{"id":1087,"type":1088,"label":1524,"file":732,"line":1525},"$_POST (x13)",424,{"id":1091,"type":1092,"label":1093,"file":732,"line":1527,"wp_function":1094},985,{"id":1096,"type":1088,"label":1171,"file":732,"line":369},{"id":1099,"type":1092,"label":1093,"file":732,"line":1473,"wp_function":1094},{"id":1265,"type":1088,"label":1171,"file":732,"line":385},{"id":1283,"type":1242,"label":1243,"file":732,"line":385},{"id":1316,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},{"id":1318,"type":1088,"label":1171,"file":732,"line":398},{"id":1320,"type":1242,"label":1463,"file":732,"line":398},{"id":1322,"type":1092,"label":1465,"file":889,"line":1466,"wp_function":1467},{"id":1324,"type":1088,"label":1171,"file":732,"line":1469},{"id":1326,"type":1242,"label":1471,"file":732,"line":1469},{"id":1328,"type":1092,"label":1093,"file":732,"line":1473,"wp_function":1094},{"id":1330,"type":1088,"label":1171,"file":732,"line":1475},{"id":1437,"type":1242,"label":1477,"file":732,"line":1475},{"id":1439,"type":1092,"label":1093,"file":732,"line":1479,"wp_function":1094},{"id":1441,"type":1088,"label":1543,"file":732,"line":1494},"$_POST (x8)",{"id":1545,"type":1242,"label":1243,"file":732,"line":1494},"n17",{"id":1547,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},"n18",{"id":1549,"type":1088,"label":1121,"file":732,"line":1509},"n19",{"id":1551,"type":1242,"label":1511,"file":732,"line":1509},"n20",{"id":1553,"type":1092,"label":1465,"file":889,"line":1513,"wp_function":1467},"n21",{"id":1555,"type":1088,"label":1162,"file":732,"line":1556},"n22",566,{"id":1558,"type":1242,"label":1559,"file":732,"line":1556},"n23","→ find_main_by_group()",{"id":1561,"type":1092,"label":1245,"file":889,"line":1562,"wp_function":1247},"n24",444,{"id":1564,"type":1088,"label":1121,"file":732,"line":1565},"n25",1169,{"id":1567,"type":1242,"label":1568,"file":732,"line":1565},"n26","→ unset_main()",{"id":1570,"type":1092,"label":1571,"file":889,"line":1152,"wp_function":1572},"n27","query() [SQLi]","query",[1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":702},{"from":1265,"to":1283,"sanitized":700},{"from":1283,"to":1316,"sanitized":700},{"from":1318,"to":1320,"sanitized":700},{"from":1320,"to":1322,"sanitized":700},{"from":1324,"to":1326,"sanitized":700},{"from":1326,"to":1328,"sanitized":700},{"from":1330,"to":1437,"sanitized":700},{"from":1437,"to":1439,"sanitized":700},{"from":1441,"to":1545,"sanitized":700},{"from":1545,"to":1547,"sanitized":700},{"from":1549,"to":1551,"sanitized":700},{"from":1551,"to":1553,"sanitized":700},{"from":1555,"to":1558,"sanitized":700},{"from":1558,"to":1561,"sanitized":700},{"from":1564,"to":1567,"sanitized":700},{"from":1567,"to":1570,"sanitized":700},16,{"entryPoint":1594,"graph":1595,"unsanitizedCount":28,"severity":1251},"render_logs_view (src\\Admin\\Pages\\TaskListPage.php:328)",{"nodes":1596,"edges":1604},[1597,1598,1600,1602,1603],{"id":1087,"type":1088,"label":1171,"file":448,"line":973},{"id":1091,"type":1092,"label":1093,"file":448,"line":1599,"wp_function":1094},438,{"id":1096,"type":1088,"label":1171,"file":448,"line":1601},334,{"id":1099,"type":1242,"label":1243,"file":448,"line":1601},{"id":1265,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},[1605,1606,1607],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"entryPoint":1609,"graph":1610,"unsanitizedCount":28,"severity":1251},"\u003CTaskListPage> (src\\Admin\\Pages\\TaskListPage.php:0)",{"nodes":1611,"edges":1622},[1612,1613,1614,1617,1619,1620,1621],{"id":1087,"type":1088,"label":1180,"file":448,"line":973},{"id":1091,"type":1092,"label":1093,"file":448,"line":1599,"wp_function":1094},{"id":1096,"type":1088,"label":1615,"file":448,"line":1616},"$_REQUEST",803,{"id":1099,"type":1092,"label":1284,"file":448,"line":1618,"wp_function":1286},1067,{"id":1265,"type":1088,"label":1171,"file":448,"line":1601},{"id":1283,"type":1242,"label":1243,"file":448,"line":1601},{"id":1316,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},[1623,1624,1625,1626],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":702},{"from":1265,"to":1283,"sanitized":700},{"from":1283,"to":1316,"sanitized":700},{"entryPoint":1628,"graph":1629,"unsanitizedCount":1341,"severity":1251},"render (src\\Admin\\Pages\\ThemeTranslationPage.php:107)",{"nodes":1630,"edges":1662},[1631,1633,1635,1638,1640,1642,1644,1647,1649,1651,1653,1654,1656,1658,1660,1661],{"id":1087,"type":1088,"label":1632,"file":749,"line":908},"$_REQUEST (x3)",{"id":1091,"type":1092,"label":1093,"file":749,"line":1634,"wp_function":1094},353,{"id":1096,"type":1088,"label":1636,"file":749,"line":1637},"$_GET (x5)",163,{"id":1099,"type":1092,"label":1093,"file":749,"line":1639,"wp_function":1094},354,{"id":1265,"type":1088,"label":1615,"file":749,"line":1641},218,{"id":1283,"type":1242,"label":1643,"file":749,"line":1641},"→ list_by_site()",{"id":1316,"type":1092,"label":1465,"file":1645,"line":1646,"wp_function":1467},"src\\Theme\\Caching\\ThemeTranslationRepository.php",551,{"id":1318,"type":1088,"label":1615,"file":749,"line":1648},219,{"id":1320,"type":1242,"label":1650,"file":749,"line":1648},"→ count_by_site()",{"id":1322,"type":1092,"label":1284,"file":1645,"line":1652,"wp_function":1286},600,{"id":1324,"type":1088,"label":1615,"file":749,"line":1466},{"id":1326,"type":1242,"label":1655,"file":749,"line":1466},"→ last_updated()",{"id":1328,"type":1092,"label":1284,"file":1645,"line":1657,"wp_function":1286},668,{"id":1330,"type":1088,"label":1171,"file":749,"line":1659},282,{"id":1437,"type":1242,"label":1243,"file":749,"line":1659},{"id":1439,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},[1663,1664,1665,1666,1667,1668,1669,1670,1671,1672],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":702},{"from":1265,"to":1283,"sanitized":700},{"from":1283,"to":1316,"sanitized":700},{"from":1318,"to":1320,"sanitized":700},{"from":1320,"to":1322,"sanitized":700},{"from":1324,"to":1326,"sanitized":700},{"from":1326,"to":1328,"sanitized":700},{"from":1330,"to":1437,"sanitized":700},{"from":1437,"to":1439,"sanitized":700},{"entryPoint":1674,"graph":1675,"unsanitizedCount":28,"severity":1251},"handle_edit_submission (src\\Admin\\Pages\\ThemeTranslationPage.php:912)",{"nodes":1676,"edges":1681},[1677,1679,1680],{"id":1087,"type":1088,"label":1121,"file":749,"line":1678},922,{"id":1091,"type":1242,"label":1243,"file":749,"line":1678},{"id":1096,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},[1682,1683],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"entryPoint":1685,"graph":1686,"unsanitizedCount":120,"severity":1251},"ajax_save_manual_translation (src\\Admin\\Pages\\ThemeTranslationPage.php:968)",{"nodes":1687,"edges":1704},[1688,1690,1691,1692,1694,1696,1698,1700,1702],{"id":1087,"type":1088,"label":1121,"file":749,"line":1689},1001,{"id":1091,"type":1242,"label":1243,"file":749,"line":1689},{"id":1096,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},{"id":1099,"type":1088,"label":1121,"file":749,"line":1693},1050,{"id":1265,"type":1242,"label":1695,"file":749,"line":1693},"→ find_by_entry()",{"id":1283,"type":1092,"label":1245,"file":1645,"line":1697,"wp_function":1247},347,{"id":1316,"type":1088,"label":1121,"file":749,"line":1699},1094,{"id":1318,"type":1242,"label":1701,"file":749,"line":1699},"→ find_by_source()",{"id":1320,"type":1092,"label":1465,"file":1703,"line":1069,"wp_function":1467},"src\\Translation\\TranslationRelationRepository.php",[1705,1706,1707,1708,1709,1710],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"from":1265,"to":1283,"sanitized":700},{"from":1316,"to":1318,"sanitized":700},{"from":1318,"to":1320,"sanitized":700},{"entryPoint":1712,"graph":1713,"unsanitizedCount":41,"severity":1251},"\u003CThemeTranslationPage> (src\\Admin\\Pages\\ThemeTranslationPage.php:0)",{"nodes":1714,"edges":1741},[1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1733,1734,1735,1736,1737,1738,1739,1740],{"id":1087,"type":1088,"label":1632,"file":749,"line":908},{"id":1091,"type":1092,"label":1093,"file":749,"line":1634,"wp_function":1094},{"id":1096,"type":1088,"label":1636,"file":749,"line":1637},{"id":1099,"type":1092,"label":1093,"file":749,"line":1639,"wp_function":1094},{"id":1265,"type":1088,"label":1615,"file":749,"line":1641},{"id":1283,"type":1242,"label":1643,"file":749,"line":1641},{"id":1316,"type":1092,"label":1465,"file":1645,"line":1646,"wp_function":1467},{"id":1318,"type":1088,"label":1615,"file":749,"line":1648},{"id":1320,"type":1242,"label":1650,"file":749,"line":1648},{"id":1322,"type":1092,"label":1284,"file":1645,"line":1652,"wp_function":1286},{"id":1324,"type":1088,"label":1615,"file":749,"line":1466},{"id":1326,"type":1242,"label":1655,"file":749,"line":1466},{"id":1328,"type":1092,"label":1284,"file":1645,"line":1657,"wp_function":1286},{"id":1330,"type":1088,"label":1171,"file":749,"line":1659},{"id":1437,"type":1242,"label":1243,"file":749,"line":1659},{"id":1439,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},{"id":1441,"type":1088,"label":1732,"file":749,"line":1678},"$_POST (x4)",{"id":1545,"type":1242,"label":1243,"file":749,"line":1678},{"id":1547,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},{"id":1549,"type":1088,"label":1121,"file":749,"line":1693},{"id":1551,"type":1242,"label":1695,"file":749,"line":1693},{"id":1553,"type":1092,"label":1245,"file":1645,"line":1697,"wp_function":1247},{"id":1555,"type":1088,"label":1121,"file":749,"line":1699},{"id":1558,"type":1242,"label":1701,"file":749,"line":1699},{"id":1561,"type":1092,"label":1465,"file":1703,"line":1069,"wp_function":1467},[1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":702},{"from":1265,"to":1283,"sanitized":700},{"from":1283,"to":1316,"sanitized":700},{"from":1318,"to":1320,"sanitized":700},{"from":1320,"to":1322,"sanitized":700},{"from":1324,"to":1326,"sanitized":700},{"from":1326,"to":1328,"sanitized":700},{"from":1330,"to":1437,"sanitized":700},{"from":1437,"to":1439,"sanitized":700},{"from":1441,"to":1545,"sanitized":700},{"from":1545,"to":1547,"sanitized":700},{"from":1549,"to":1551,"sanitized":700},{"from":1551,"to":1553,"sanitized":700},{"from":1555,"to":1558,"sanitized":700},{"from":1558,"to":1561,"sanitized":700},{"entryPoint":1759,"graph":1760,"unsanitizedCount":28,"severity":1251},"\u003CTranslationManagementPage> (src\\Admin\\Pages\\TranslationManagementPage.php:0)",{"nodes":1761,"edges":1770},[1762,1763,1764,1765,1767,1768,1769],{"id":1087,"type":1088,"label":1208,"file":459,"line":930},{"id":1091,"type":1092,"label":1093,"file":459,"line":563,"wp_function":1094},{"id":1096,"type":1088,"label":1171,"file":459,"line":930},{"id":1099,"type":1092,"label":1284,"file":459,"line":1766,"wp_function":1286},499,{"id":1265,"type":1088,"label":1171,"file":459,"line":958},{"id":1283,"type":1242,"label":1463,"file":459,"line":958},{"id":1316,"type":1092,"label":1465,"file":889,"line":1466,"wp_function":1467},[1771,1772,1773,1774],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":702},{"from":1265,"to":1283,"sanitized":700},{"from":1283,"to":1316,"sanitized":700},{"entryPoint":1776,"graph":1777,"unsanitizedCount":28,"severity":1251},"render_form (src\\Admin\\Pages\\TranslationRulesPage.php:373)",{"nodes":1778,"edges":1787},[1779,1781,1783,1785,1786],{"id":1087,"type":1088,"label":1257,"file":466,"line":1780},382,{"id":1091,"type":1092,"label":1093,"file":466,"line":1782,"wp_function":1094},469,{"id":1096,"type":1088,"label":1171,"file":466,"line":1784},386,{"id":1099,"type":1242,"label":1243,"file":466,"line":1784},{"id":1265,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},[1788,1789,1790],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"entryPoint":1792,"graph":1793,"unsanitizedCount":28,"severity":1251},"handle_save_rule (src\\Admin\\Pages\\TranslationRulesPage.php:692)",{"nodes":1794,"edges":1799},[1795,1797,1798],{"id":1087,"type":1088,"label":1121,"file":466,"line":1796},827,{"id":1091,"type":1242,"label":1364,"file":466,"line":1796},{"id":1096,"type":1092,"label":1284,"file":1246,"line":1366,"wp_function":1286},[1800,1801],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"entryPoint":1803,"graph":1804,"unsanitizedCount":28,"severity":1251},"handle_delete_rule (src\\Admin\\Pages\\TranslationRulesPage.php:909)",{"nodes":1805,"edges":1812},[1806,1808,1810],{"id":1087,"type":1088,"label":1171,"file":466,"line":1807},932,{"id":1091,"type":1242,"label":1809,"file":466,"line":1807},"→ count_by_rule()",{"id":1096,"type":1092,"label":1284,"file":889,"line":1811,"wp_function":1286},192,[1813,1814],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"entryPoint":1816,"graph":1817,"unsanitizedCount":28,"severity":1251},"handle_check_rule_name (src\\Admin\\Pages\\TranslationRulesPage.php:1061)",{"nodes":1818,"edges":1823},[1819,1821,1822],{"id":1087,"type":1088,"label":1121,"file":466,"line":1820},1078,{"id":1091,"type":1242,"label":1364,"file":466,"line":1820},{"id":1096,"type":1092,"label":1284,"file":1246,"line":1366,"wp_function":1286},[1824,1825],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"entryPoint":1827,"graph":1828,"unsanitizedCount":1341,"severity":1251},"\u003CTranslationRulesPage> (src\\Admin\\Pages\\TranslationRulesPage.php:0)",{"nodes":1829,"edges":1841},[1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840],{"id":1087,"type":1088,"label":1257,"file":466,"line":1780},{"id":1091,"type":1092,"label":1093,"file":466,"line":1782,"wp_function":1094},{"id":1096,"type":1088,"label":1171,"file":466,"line":1784},{"id":1099,"type":1242,"label":1243,"file":466,"line":1784},{"id":1265,"type":1092,"label":1245,"file":1246,"line":879,"wp_function":1247},{"id":1283,"type":1088,"label":1162,"file":466,"line":1796},{"id":1316,"type":1242,"label":1364,"file":466,"line":1796},{"id":1318,"type":1092,"label":1284,"file":1246,"line":1366,"wp_function":1286},{"id":1320,"type":1088,"label":1171,"file":466,"line":1807},{"id":1322,"type":1242,"label":1809,"file":466,"line":1807},{"id":1324,"type":1092,"label":1284,"file":889,"line":1811,"wp_function":1286},[1842,1843,1844,1845,1846,1847,1848],{"from":1087,"to":1091,"sanitized":702},{"from":1096,"to":1099,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"from":1283,"to":1316,"sanitized":700},{"from":1316,"to":1318,"sanitized":700},{"from":1320,"to":1322,"sanitized":700},{"from":1322,"to":1324,"sanitized":700},{"entryPoint":1850,"graph":1851,"unsanitizedCount":28,"severity":1251},"maybe_redirect_trailing_segment (src\\PublicSite\\Hooks\\CanonicalFallbackHooks.php:60)",{"nodes":1852,"edges":1859},[1853,1855,1857],{"id":1087,"type":1088,"label":1854,"file":511,"line":759},"$_SERVER",{"id":1091,"type":1242,"label":1856,"file":511,"line":759},"→ try_guess_similar_slug()",{"id":1096,"type":1092,"label":1284,"file":511,"line":1858,"wp_function":1286},352,[1860,1861],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"entryPoint":1863,"graph":1864,"unsanitizedCount":1341,"severity":1251},"\u003CCanonicalFallbackHooks> (src\\PublicSite\\Hooks\\CanonicalFallbackHooks.php:0)",{"nodes":1865,"edges":1878},[1866,1868,1869,1870,1871,1872,1874,1876],{"id":1087,"type":1088,"label":1867,"file":511,"line":50},"$_SERVER (x2)",{"id":1091,"type":1092,"label":1284,"file":511,"line":1858,"wp_function":1286},{"id":1096,"type":1088,"label":1854,"file":511,"line":759},{"id":1099,"type":1242,"label":1856,"file":511,"line":759},{"id":1265,"type":1092,"label":1284,"file":511,"line":1858,"wp_function":1286},{"id":1283,"type":1088,"label":1854,"file":511,"line":1873},299,{"id":1316,"type":1242,"label":1875,"file":511,"line":1873},"→ find_post_by_path()",{"id":1318,"type":1092,"label":1284,"file":511,"line":1877,"wp_function":1286},440,[1879,1880,1881,1882,1883],{"from":1087,"to":1091,"sanitized":700},{"from":1096,"to":1099,"sanitized":700},{"from":1099,"to":1265,"sanitized":700},{"from":1283,"to":1316,"sanitized":700},{"from":1316,"to":1318,"sanitized":700},{"entryPoint":1885,"graph":1886,"unsanitizedCount":28,"severity":1251},"\u003CSiteContext> (src\\PublicSite\\SiteContext.php:0)",{"nodes":1887,"edges":1894},[1888,1890,1892],{"id":1087,"type":1088,"label":1854,"file":661,"line":1889},422,{"id":1091,"type":1242,"label":1891,"file":661,"line":1889},"→ find_by_path()",{"id":1096,"type":1092,"label":1245,"file":889,"line":1893,"wp_function":1247},419,[1895,1896],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"entryPoint":1898,"graph":1899,"unsanitizedCount":28,"severity":1251},"\u003CSiteContext> (src\\Sites\\SiteContext.php:0)",{"nodes":1900,"edges":1904},[1901,1902,1903],{"id":1087,"type":1088,"label":1854,"file":693,"line":1889},{"id":1091,"type":1242,"label":1891,"file":693,"line":1889},{"id":1096,"type":1092,"label":1245,"file":889,"line":1893,"wp_function":1247},[1905,1906],{"from":1087,"to":1091,"sanitized":700},{"from":1091,"to":1096,"sanitized":700},{"summary":1908,"deductions":1909},"The wpmmcc v0.1.1 plugin exhibits a mixed security posture. While it demonstrates strong adherence to several security best practices, such as a high percentage of prepared SQL statements and properly escaped output, it also presents notable areas of concern. The presence of 18 AJAX handlers, with a significant 7 lacking authentication checks, creates a substantial attack surface that could be exploited by unauthenticated users. Furthermore, the taint analysis revealed 31 high-severity flows with unsanitized paths, indicating potential for attackers to inject malicious data that is not properly validated or cleaned before being processed. The plugin's vulnerability history is clean, with no recorded CVEs, which is a positive sign suggesting the developers may have a proactive approach to security or that the plugin has not been a target. However, the direct evidence of potential vulnerabilities within the code analysis, particularly the unprotected AJAX endpoints and high-severity unsanitized taint flows, outweighs the clean history and indicates a moderate to high risk. The use of `unserialize` is also a potential concern, especially if user-controlled data is being unserialized without stringent validation.",[1910,1912,1914],{"reason":1911,"points":1078},"Unprotected AJAX handlers",{"reason":1913,"points":61},"High severity unsanitized taint flows",{"reason":1915,"points":347},"Use of unserialize function","2026-03-17T05:55:22.324Z",{"wat":1918,"direct":1927},{"assetPaths":1919,"generatorPatterns":1922,"scriptPaths":1923,"versionParams":1924},[1920,1921],"\u002Fwp-content\u002Fplugins\u002Fwpmmcc\u002Fassets\u002Fjs\u002Fwpmmcc-admin.js","\u002Fwp-content\u002Fplugins\u002Fwpmmcc\u002Fassets\u002Fcss\u002Fwpmmcc-admin.css",[],[1920],[1925,1926],"wpmmcc\u002Fassets\u002Fcss\u002Fwpmmcc-admin.css?ver=","wpmmcc\u002Fassets\u002Fjs\u002Fwpmmcc-admin.js?ver=",{"cssClasses":1928,"htmlComments":1941,"htmlAttributes":1944,"restEndpoints":1946,"jsGlobals":1949,"shortcodeOutput":1951},[1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940],"wpmmcc-admin-page","wpmmcc-settings-page","wpmmcc-site-groups-page","wpmmcc-translation-rules-page","wpmmcc-theme-page","wpmmcc-theme-translation-page","wpmmcc-sitemap-page","wpmmcc-translation-fields-page","wpmmcc-translation-management-page","wpmmcc-seo-fields-page","wpmmcc-tasks-page","wpmmcc-sites-page",[1942,1943],"\u003C!-- WPMMCC Logging Configuration -->","\u003C!-- WPMMCC admin notices -->",[1945],"data-wpmmcc-action",[1947,1948],"\u002Fwp-json\u002Fwpmmcc\u002Fv1\u002Fbulk-translate","\u002Fwp-json\u002Fwpmmcc\u002Fv1\u002Fsave-settings",[1950],"wpmmcc_admin_params",[]]