[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fG3a79B5iwp41kQ6wUFhIOBlbePvHcLzNNSD0LFvmnEk":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":29,"last_vuln_date":30,"fetched_at":31,"vulnerabilities":32,"developer":48,"crawl_stats":38,"alternatives":51,"analysis":152,"fingerprints":544},"memsource-connector","Phrase TMS Integration for WordPress","4.7.9","Phrase","https:\u002F\u002Fprofiles.wordpress.org\u002Fmemsource\u002F","\u003Cp>We’re transforming language technology, opening the door to global business so you can reach more people, make deeper connections, and drive growth. Phrase is the leading translation management system, offering a comprehensive suite of translation tools that’s intuitive to use and simple to integrate so you can focus on forming deeper connections with people across cultures. We help organizations like Uber, Shopify, Volkswagen, and thousands of others accelerate their global growth by giving people the content they need, in the language they speak.\u003C\u002Fp>\n\u003Cp>At Phrase, we:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Use the latest technology to translate more efficiently and accurately, supporting 500+ languages, 50+ file types, and 30+ machine translation engines.\u003C\u002Fli>\n\u003Cli>Manage massive volumes of translation with advanced automation, machine learning, and AI features to deliver resonant content that reflects your message, regardless of its language.\u003C\u002Fli>\n\u003Cli>Make localization an essential driver of business growth with the only vendor-neutral provider on the market that offers a complete translation management solution and software localization platform for developers.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Seamlessly translate your WordPress posts, pages, tags, categories, and custom post types\u003C\u002Fli>\n\u003Cli>Automatically send content for translation and track translation progress without leaving WordPress\u003C\u002Fli>\n\u003Cli>Compatible with a wide range of WordPress plugins including Avada, Divi, Elementor, Gutenberg, Yoast SEO, SEOPress, WPBakery Page Builder and Avia\u003C\u002Fli>\n\u003Cli>Boost productivity and reduce costs with AI-powered machine translation. Phrase TMS supports 30+ machine translation engines and automatically selects the optimal engine for your content.\u003C\u002Fli>\n\u003Cli>Live In-context Preview gives translators proper context while they’re working. Translators can see exactly how their translations will look on the page, reducing feedback loops and improving translation quality\u003C\u002Fli>\n\u003Cli>After building a custom shortcode in a third party plugin, add it to your WordPress site with our shortcode editor and translate shortcode content.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The Phrase TMS Integration supports both WPML and MultilingualPress.\u003C\u002Fp>\n\u003Cp>The integration is available with the Ultimate and Enterprise Phrase TMS plans. \u003Ca href=\"https:\u002F\u002Fphrase.com\u002Fdemo\u002F\" rel=\"nofollow ugc\">Contact us\u003C\u002Fa> for licensing information, or to schedule a demo.\u003C\u002Fp>\n","We’re transforming language technology, opening the door to global business so you can reach more people, make deeper connections, and drive growth.",300,56596,80,4,"2026-02-16T10:25:00.000Z","6.7.5","4.9","7.4",[20,21,22,23,24],"localisation","localization","phrase","translation","wpml","https:\u002F\u002Fsupport.phrase.com\u002Fhc\u002Fen-us\u002Farticles\u002F5709657294620","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmemsource-connector.zip",99,1,0,"2026-01-16 15:33:38","2026-03-15T15:16:48.613Z",[33],{"id":34,"url_slug":35,"title":36,"description":37,"plugin_slug":4,"theme_slug":38,"affected_versions":39,"patched_in_version":40,"severity":41,"cvss_score":42,"cvss_vector":43,"vuln_type":44,"published_date":30,"updated_date":45,"references":46,"days_to_patch":28},"CVE-2025-12168","phrase-tms-integration-for-wordpress-missing-authorization-to-authenticated-subscriber-log-deletion","Phrase TMS Integration for WordPress \u003C= 4.7.5 - Missing Authorization to Authenticated (Subscriber+) Log Deletion","The Phrase TMS Integration for WordPress plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the 'wp_ajax_delete_log' AJAX endpoint in all versions up to, and including, 4.7.5. This makes it possible for authenticated attackers, with Subscriber-level access and above, to delete log files.",null,"\u003C=4.7.5","4.7.6","medium",4.3,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:U\u002FC:N\u002FI:L\u002FA:N","Missing Authorization","2026-01-17 04:34:02",[47],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F396f2426-7bc4-4221-bc48-920bec5af6e5?source=api-prod",{"slug":49,"display_name":7,"profile_url":8,"plugin_count":28,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":28,"trust_score":27,"computed_at":50},"memsource","2026-04-04T13:57:32.467Z",[52,71,90,112,133],{"slug":53,"name":54,"version":55,"author":56,"author_profile":57,"description":58,"short_description":59,"active_installs":60,"downloaded":61,"rating":62,"num_ratings":28,"last_updated":63,"tested_up_to":16,"requires_at_least":64,"requires_php":64,"tags":65,"homepage":68,"download_link":69,"security_score":70,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"easy-translate","WPC Simple Translate","1.2.4","Planet Studio","https:\u002F\u002Fprofiles.wordpress.org\u002Fplanetstudio\u002F","\u003Cp>WPC Simple Translate allows you to translate multilingual WordPress site.\u003C\u002Fp>\n\u003Cp>It’s allows you to translate texts in places where other popular plugins usually have difficulty translating and you have to duplicate and keep the same slider, form, gallery, page builders widgets… in different languages.\u003C\u002Fp>\n\u003Cp>Easy translate helps you to translate everything despite of themes or plugins specifications.\u003C\u002Fp>\n\u003Cp>Currently it is working with Polylang and WPML plugins using plugins just for detecting frontend language.\u003C\u002Fp>\n\u003Cp>Features\u003Cbr \u002F>\nEasy to use\u003Cbr \u002F>\nFully compatible with all themes and plugins\u003Cbr \u002F>\nAbility to translate dynamic strings added by WordPress, plugins and themes.\u003Cbr \u002F>\nYou can use as many languages as you want.\u003Cbr \u002F>\nIt is easy to use, just put your texts in bellow format\u003C\u002Fp>\n","Translate texts in content, slider, form, gallery, page builders widgets... in different languages.  [:en]Hello[:fr]Bonjour[:]",70,3836,20,"2025-05-01T16:41:00.000Z","5.4",[20,21,66,23,67],"multilingual","translators","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-translate.1.2.4.zip",100,{"slug":72,"name":73,"version":74,"author":75,"author_profile":76,"description":77,"short_description":78,"active_installs":79,"downloaded":80,"rating":29,"num_ratings":29,"last_updated":81,"tested_up_to":82,"requires_at_least":83,"requires_php":68,"tags":84,"homepage":88,"download_link":89,"security_score":70,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"glotpress-notify","GlotPress Notify","1.0.1","webaware","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebaware\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fglotpress.trac.wordpress.org\u002Fwiki\u002FGlotPress\" rel=\"nofollow ugc\">GlotPress\u003C\u002Fa> is a great free tool for localising your plugins and themes. When translators add new translations to GlotPress, they don’t always tell you. If your GlotPress installation is paired with a WordPress installation, this plugin gives you an easy way to find out what’s waiting for approval:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>list the projects and languages with strings waiting for approval\u003C\u002Fli>\n\u003Cli>subscribe to email notifications for individual projects\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Admins, validators, and translators can all view strings waiting for approval and receive notification emails. End the guessing game.\u003C\u002Fp>\n\u003Ch4>Translations\u003C\u002Fh4>\n\u003Cp>Many thanks to the generous efforts of our translators:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Dutch (nl-NL) — \u003Ca href=\"https:\u002F\u002Fribwhost.nl\u002F\" rel=\"nofollow ugc\">Sander Keuzenkamp\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>French (fr-FR) — \u003Ca href=\"http:\u002F\u002Fwww.eticweb.ca\u002F\" rel=\"nofollow ugc\">Hugo Catellier\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you’d like to help out by translating this plugin, please \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fglotpress-notify\" rel=\"nofollow ugc\">sign up for an account and dig in\u003C\u002Fa>. Yes, it’s GlotPress.\u003C\u002Fp>\n\u003Ch3>Contributions\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fglotpress-notify\" rel=\"nofollow ugc\">Translate into your preferred language\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwebaware\u002Fglotpress-notify\" rel=\"nofollow ugc\">Fork me on GitHub\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","notify WordPress users when new GlotPress translations strings are awaiting review",10,4468,"2025-12-14T04:03:00.000Z","6.9.4","3.7",[85,86,20,21,87],"glotpress","language","translations","http:\u002F\u002Fshop.webaware.com.au\u002Fdownloads\u002Fglotpress-notify\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fglotpress-notify.1.0.1.zip",{"slug":91,"name":92,"version":93,"author":94,"author_profile":95,"description":96,"short_description":97,"active_installs":98,"downloaded":99,"rating":100,"num_ratings":101,"last_updated":102,"tested_up_to":82,"requires_at_least":103,"requires_php":104,"tags":105,"homepage":107,"download_link":108,"security_score":109,"vuln_count":110,"unpatched_count":29,"last_vuln_date":111,"fetched_at":31},"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,94,2921,"2026-02-23T09:13:00.000Z","6.2","7.2",[86,21,66,106,23],"translate","https:\u002F\u002Fpolylang.pro","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpolylang.3.7.8.zip",93,3,"2025-10-28 00:00:00",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":120,"downloaded":121,"rating":122,"num_ratings":123,"last_updated":124,"tested_up_to":82,"requires_at_least":125,"requires_php":126,"tags":127,"homepage":131,"download_link":132,"security_score":70,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"performant-translations","Performant Translations","1.2.0","Pascal Birchler","https:\u002F\u002Fprofiles.wordpress.org\u002Fswissspidy\u002F","\u003Cp>Making internationalization\u002Flocalization in WordPress faster than ever before.\u003C\u002Fp>\n\u003Ch3>Disclaimer about WordPress 6.5\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Attention:\u003C\u002Fstrong> most functionality of this plugin has been merged into WordPress 6.5! You might not need it anymore.\u003C\u002Fp>\n\u003Cp>\u003Cem>However\u003C\u002Fem>, this plugin is still relevant for cases where language packs are not downloaded from WordPress.org but somewhere else, for example if you are developing your own plugins or using commercial plugins.\u003C\u002Fp>\n\u003Cp>The Performant Translations plugin converts the translation files of those plugins to the new file format introduced in WordPress 6.5, to really optimize them for speed.\u003C\u002Fp>\n\u003Ch3>What this plugin does\u003C\u002Fh3>\n\u003Cp>This project uses a new approach to handle translation files in WordPress, making localization blazing fast.\u003C\u002Fp>\n\u003Cp>An \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fcore\u002F2023\u002F07\u002F24\u002Fi18n-performance-analysis\u002F\" rel=\"nofollow ugc\">in-depth i18n performance analysis\u003C\u002Fa> showed that localized WordPress sites load significantly slower than a site without translations.\u003C\u002Fp>\n\u003Cp>With this plugin’s new approach to localization, this overhead is massively reduced, making your site fast again. It does so by converting \u003Ccode>.mo\u003C\u002Fcode> translation files to \u003Ccode>.php\u003C\u002Fcode> files.\u003C\u002Fp>\n\u003Cp>If your site is using a language other than English (US), you should see immediate speed improvements simply by activating this plugin.\u003C\u002Fp>\n","Making internationalization\u002Flocalization in WordPress faster than ever before.",40000,192704,98,16,"2025-12-05T10:38:00.000Z","6.5","7.0",[128,129,21,130,23],"i18n","internationalization","performance","https:\u002F\u002Fgithub.com\u002Fswissspidy\u002Fperformant-translations","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fperformant-translations.1.2.0.zip",{"slug":134,"name":135,"version":136,"author":137,"author_profile":138,"description":139,"short_description":140,"active_installs":141,"downloaded":142,"rating":143,"num_ratings":70,"last_updated":144,"tested_up_to":82,"requires_at_least":145,"requires_php":146,"tags":147,"homepage":149,"download_link":150,"security_score":122,"vuln_count":28,"unpatched_count":29,"last_vuln_date":151,"fetched_at":31},"wp-multilang","WP Multilang – Translation and Multilingual Plugin","2.4.26","Magazine3","https:\u002F\u002Fprofiles.wordpress.org\u002Fmagazine3\u002F","\u003Cp>WP Multilang is a multilingual plugin for WordPress.\u003C\u002Fp>\n\u003Cp>Translations of post types, taxonomies, meta fields, options, text fields in miltimedia files, menus, titles and text fields in widgets.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F\" rel=\"nofollow ugc\">Home\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">Help & Tech Support\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F#features\" rel=\"nofollow ugc\">Premium Features\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>New Features of the plugin WP Multilang\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Support full site editor for block based themes\u003C\u002Fli>\n\u003Cli>Support block based widgets\u003C\u002Fli>\n\u003Cli>Support different feature image for each language\u003C\u002Fli>\n\u003Cli>Support Smart Custom Fields Plugin\u003C\u002Fli>\n\u003Cli>Auto Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-auto-translate-your-website-contents-using-wp-multilang\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Support URL Slug Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-translate-url-slugs-with-selective-languages\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Support Base Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-translate-taxonomy-bases-such-as-categories-and-tags-into-selective-languages-using-the-base-translation-option\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Export and import content in XLIFF or xml format to translate outside\u003C\u002Fli>\n\u003Cli>Activate Multilingual Support for Post Types\u003C\u002Fli>\n\u003Cli>Support Auto URL Slug Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-translate-url-slugs-with-selective-languages\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features of the plugin WP Multilang\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>100% free.\u003C\u002Fli>\n\u003Cli>Translation at PHP.\u003C\u002Fli>\n\u003Cli>Compatible with REST.\u003C\u002Fli>\n\u003Cli>Support configuration for translate multidimensional arrays in options, meta fields, post content.\u003C\u002Fli>\n\u003Cli>Support multisite.\u003C\u002Fli>\n\u003Cli>Support WordPress in sub-folder.\u003C\u002Fli>\n\u003Cli>Separate menu items, posts, terms, widgets, comments per language.\u003C\u002Fli>\n\u003Cli>Many filters for dynamic applying translation settings.\u003C\u002Fli>\n\u003Cli>No duplicate posts, terms, menus, widgets.\u003C\u002Fli>\n\u003Cli>No sub-domain for each language version.\u003C\u002Fli>\n\u003Cli>No additional tables in database.\u003C\u002Fli>\n\u003Cli>Possibility set many languages with one localization. For example, for localization in the region.\u003C\u002Fli>\n\u003Cli>Possibility to set custom locale for html(If installed locale is en_US, you can set locale like: en, en-UK, en-AU etc. Without installation another localization)\u003C\u002Fli>\n\u003Cli>Possibility for add new languages for any user with capability \u003Ccode>manage_options\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Exist the role “Translator” for editing posts, terms. It can not publish or delete.\u003C\u002Fli>\n\u003Cli>No limits by languages or by possibilities.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>WP Multilang compatible with plugins\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Elementor ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-build-a-multilingual-site-with-elementor-using-wp-multilang\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Divi Builder ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-build-a-multilingual-site-with-divi-builder-using-wp-multilang\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>ACF, ACF Pro\u003C\u002Fli>\n\u003Cli>WooCommerce\u003C\u002Fli>\n\u003Cli>WooCommerce Customizer\u003C\u002Fli>\n\u003Cli>Gutenberg\u003C\u002Fli>\n\u003Cli>Yoast Seo\u003C\u002Fli>\n\u003Cli>SEOPress \u003C\u002Fli>\n\u003Cli>Contact Form 7 (added mail tag [_language] for send user language in mail)\u003C\u002Fli>\n\u003Cli>WPBakery Visual Composer\u003C\u002Fli>\n\u003Cli>Page Builder by SiteOrigin\u003C\u002Fli>\n\u003Cli>NextGEN Gallery\u003C\u002Fli>\n\u003Cli>All in One SEO Pack\u003C\u002Fli>\n\u003Cli>MailChimp for WordPress\u003C\u002Fli>\n\u003Cli>Newsletter\u003C\u002Fli>\n\u003Cli>Maps Builder\u003C\u002Fli>\n\u003Cli>Max Mega Menu\u003C\u002Fli>\n\u003Cli>MasterSlider\u003C\u002Fli>\n\u003Cli>WP-PageNavi\u003C\u002Fli>\n\u003Cli>BuddyPress\u003C\u002Fli>\n\u003Cli>Meta Slider\u003C\u002Fli>\n\u003Cli>TablePress\u003C\u002Fli>\n\u003Cli>Download Monitor (Redefine templates for links in your theme and translate link texts)\u003C\u002Fli>\n\u003Cli>Better Search\u003C\u002Fli>\n\u003Cli>Rank Math SEO (thanks for @pratikmts)\u003C\u002Fli>\n\u003Cli>WPGraphQL (Add lang to the query parameters in URL. Eg: lang=en)\u003C\u002Fli>\n\u003Cli>Smart Custom Fields\u003C\u002Fli>\n\u003Cli>Team – Team Members Showcase Plugin\u003C\u002Fli>\n\u003Cli>Schema & Structured Data for WP & AMP\u003C\u002Fli>\n\u003Cli>Forminator Forms\u003C\u002Fli>\n\u003Cli>Gravity Forms\u003C\u002Fli>\n\u003Cli>Ultimate Member Form\u003C\u002Fli>\n\u003Cli>Oxygen Builder\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Advance Woocommerce Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Send emails in customer’s selected language\u003C\u002Fli>\n\u003Cli>REST API Support\u003C\u002Fli>\n\u003Cli>Import and export products in customer’s selected language\u003C\u002Fli>\n\u003Cli>Translate products (simple products, variable products, grouped products), categories, tags, global attributes\u003C\u002Fli>\n\u003Cli>Cart synchronization across multiple languages \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Manage translation settings via json.\u003C\u002Fp>\n\u003Cp>Add in the root of your theme or plugin file \u003Ccode>wpm-config.json\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Sample configurations can be viewed in config files in folder ‘configs’ in root the plugin.\u003C\u002Fp>\n\u003Cp>Configuration is updated after switching theme, enable or update any plugins.\u003C\u002Fp>\n\u003Cp>The plugin has filters for dynamic application configuration for translate.\u003C\u002Fp>\n\u003Cp>For turn off translation, set \u003Ccode>null\u003C\u002Fcode> into the desired configuration.\u003Cbr \u002F>\nFor example, you must turn off translation for a post type \u003Ccode>post\u003C\u002Fcode>.\u003Cbr \u002F>\nThere are two ways:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>In json.\u003Cbr \u002F>\nCreate in root of a theme or a plugin file \u003Ccode>wpm-config.json\u003C\u002Fcode> with:\u003Cbr \u002F>\n    {\u003Cbr \u002F>\n           “post_types”: {\u003Cbr \u002F>\n             “post”: null\u003Cbr \u002F>\n           }\u003Cbr \u002F>\n         }\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Through the filter.\u003Cbr \u002F>\nAdd in functions.php\u003Cbr \u002F>\n    add_filter( ‘wpm_post_post_config’, ‘__return_null’ );\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>To enable translation pass an empty array in php \u003Ccode>array()\u003C\u002Fcode> or empty object in json \u003Ccode>{}\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Supports translation multidimensional array of options, meta fields and post_content.\u003Cbr \u002F>\nSupports the removal of established localizations.\u003Cbr \u002F>\nSupports translation via GET parameter. Add in the GET parameter \u003Ccode>lang\u003C\u002Fcode> code desired language.\u003Cbr \u002F>\nSupports clean database of translations when removing the plugin. Translations are only removed from the built-in tables.\u003Cbr \u002F>\nSupports import term translations from qTranslate(by Soft79).\u003Cbr \u002F>\nSupports automatically redirect to the user’s browser language, if he visits for the first time.\u003C\u002Fp>\n\u003Cp>Ideal for developers.\u003C\u002Fp>\n\u003Cp>For display language switcher in any place add the code to your template \u003Ccode>if ( function_exists ( 'wpm_language_switcher' ) ) wpm_language_switcher ();\u003C\u002Fcode>\u003Cbr \u002F>\nFunction accepts two parameters:\u003Cbr \u002F>\n$type – ‘list’, ‘dropdown’, ‘select’. Default – ‘list’.\u003Cbr \u002F>\n$show – ‘flag’, ‘name’, ‘both’. Default – ‘both’.\u003C\u002Fp>\n\u003Cp>Or using the shortcode \u003Ccode>wpm_lang_switcher\u003C\u002Fcode>. It accept two not necessary parameters ‘type’ and ‘show’.\u003C\u002Fp>\n\u003Cp>Available features for translation:\u003Cbr \u002F>\n    wpm_translate_url( $url, $language = ” ); – translate url\u003Cbr \u002F>\n    wpm_translate_string( $string, $language = ” ); – translate multilingual string\u003Cbr \u002F>\n    wpm_translate_value( $value, $language = ” ); – translate multidimensional array with multilingual strings\u003C\u002Fp>\n\u003Cp>Update translation occurs at PHP. Therefore plugin has high adaptability, compatibility and easily integrates with other plugins. This is what distinguishes it among similar.\u003C\u002Fp>\n\u003Cp>Available translation html tags by JS for strings what do not have WP filters before output.\u003C\u002Fp>\n\u003Cp>Add your tags in config:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\"admin_html_tags\": {\n    \"admin_screen_id\": {\n      \"attribute\": [\n        \"selector\"\n      ]\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Where:\u003Cbr \u002F>\n    admin_screen_id – admin screen id.\u003Cbr \u002F>\n    attribute – attribute what need to translate. Available ‘text’ – for translate text node, ‘value’ – for translate form values. Or other tag attribute, like ‘title’, ‘alt’.\u003Cbr \u002F>\n    selector – css selector for search needed tag. Each selector is a new array item.\u003C\u002Fp>\n\u003Cp>If You need to add translation for multidimentional array for repeated elements You can use custom tag ‘wpm_each’ for set config to each element in array.\u003Cbr \u002F>\nExample, add config for each item ‘title’ in custom post field array:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\"post_fields\": {\n    \"custom_field\": {\n      \"wpm_each\": {\n        \"title\": {}\n      }\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For set translation uses the syntax:\u003Cbr \u002F>\n    [:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:]\u003C\u002Fp>\n\u003Cp>Added shortcode for translate text in any place:\u003Cbr \u002F>\n    [wpm_translate][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]\u003C\u002Fp>\n\u003Cp>If You translate text in established language, add lang parameter:\u003Cbr \u002F>\n    [wpm_translate lang=”de”][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]\u003C\u002Fp>\n\u003Cp>Support translating from syntax qTranslate, qTranslate-X, WPGlobus etc.\u003C\u002Fp>\n\u003Cp>Compatible with REST-API.\u003Cbr \u002F>\nSupport transfer the required translation through option \u003Ccode>lang\u003C\u002Fcode> in the GET request to REST.\u003Cbr \u002F>\nHas the ability to keep recording the target language through the transmission parameter \u003Ccode>lang\u003C\u002Fcode> in the request.\u003C\u002Fp>\n\u003Ch3>Migration from qTranslate-X\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Before installing\u002Funinstalling, make database backup.\u003C\u002Fli>\n\u003Cli>Deactivate qTranslate-X.\u003C\u002Fli>\n\u003Cli>Install and activate WP Multilang.\u003C\u002Fli>\n\u003Cli>Create in root of your theme file ‘wpm-config.json’.\u003C\u002Fli>\n\u003Cli>Add all needed post types, taxonomies, options, fields to ‘wpm-config.json’. Setting from qTranslate-X not importing.\u003C\u002Fli>\n\u003Cli>Import term names from qTranslate.\u003C\u002Fli>\n\u003Cli>Check that everything is okay.\u003C\u002Fli>\n\u003Cli>If everything is okay, remove qTranslate-X. If not, make screenshots of errors, restore database from backup and add support issue with your screenshots and description of errors.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Warning\u003C\u002Fh3>\n\u003Cp>Not compatible with:\u003Cbr \u002F>\n– WP Maintenance\u003C\u002Fp>\n\u003Ch3>Known issues\u003C\u002Fh3>\n\u003Cp>Function ‘get_page_by_title’ not working, because in title field are stored titles for all languages. Use function ‘wpm_get_page_by_title( $title )’ as solution.\u003C\u002Fp>\n\u003Cp>NOTE: Because plugins have different ways of storing data, WP Multilang is not compatible with every single plugin out-of-the-box (mostly page builders). This may result in texts not being translatable or translations not being saved. Most of these issues can be resolved using the integration options (wpm-config.json or filters) of WP Multilang.\u003C\u002Fp>\n\u003Cp>Please try WP Multilang in a test-environment before activating it on an existing production site and always make a backup before activating!\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F\" rel=\"nofollow ugc\">Home\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">Help & Tech Support\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F\" rel=\"nofollow ugc\">Premium\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>We try our best to provide support on WordPress.org forums. However, We have a special \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">community support\u003C\u002Fa> where you can ask us questions and get help about your WP Multilang related questions. Delivering a good user experience means a lot to us and so we try our best to reply each and every question that gets asked.\u003C\u002Fp>\n\u003Ch3>Bug Reports\u003C\u002Fh3>\n\u003Cp>Bug reports for WP Multilang are \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fahmedkaludi\u002Fwp-multilang\u002Fissues\" rel=\"nofollow ugc\">welcomed on GitHub\u003C\u002Fa>. Please note GitHub is not a support forum, and issues that aren’t properly qualified as bugs will be closed.\u003C\u002Fp>\n","Multilingual plugin for WordPress. Go Multilingual in minutes with full WordPress support. Translate your site easily with this localization plugin.",10000,249839,86,"2026-02-18T13:52:00.000Z","4.7","5.6.20",[21,148,66,106,23],"multilanguage","https:\u002F\u002Fgithub.com\u002Fahmedkaludi\u002Fwp-multilang","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-multilang.2.4.26.zip","2025-06-05 00:00:00",{"attackSurface":153,"codeSignals":289,"taintFlows":402,"riskAssessment":529,"analyzedAt":543},{"hooks":154,"ajaxHandlers":271,"restRoutes":286,"shortcodes":287,"cronEvents":288,"entryPointCount":110,"unprotectedCount":28},[155,161,165,169,173,176,180,184,188,192,196,199,203,207,211,214,218,222,226,230,234,237,242,247,252,256,260,264,268],{"type":156,"name":157,"callback":158,"priority":79,"file":159,"line":160},"action","wpmu_new_blog","memsource_plugin_activate_new_blog","memsource.php",49,{"type":156,"name":162,"callback":163,"priority":28,"file":159,"line":164},"plugins_loaded","memsource_plugin_upgrade",50,{"type":156,"name":166,"callback":167,"file":159,"line":168},"admin_enqueue_scripts","memsource_enqueue_resources",51,{"type":156,"name":170,"callback":171,"file":159,"line":172},"network_admin_menu","memsource_plugin_setup_menu",55,{"type":156,"name":174,"callback":171,"file":159,"line":175},"admin_menu",58,{"type":156,"name":177,"callback":178,"file":159,"line":179},"admin_action_save_connector_options","memsource_save_connector_options",65,{"type":156,"name":181,"callback":182,"file":159,"line":183},"admin_action_set_debug_mode","memsource_set_debug_mode",66,{"type":156,"name":185,"callback":186,"file":159,"line":187},"admin_action_download_logs","memsource_download_logs",67,{"type":156,"name":189,"callback":190,"file":159,"line":191},"admin_action_add_update_short_code","addOrUpdateShortcodeEndpoint",68,{"type":156,"name":193,"callback":194,"file":159,"line":195},"admin_action_delete_short_code","deleteShortcodeEndpoint",69,{"type":156,"name":197,"callback":198,"file":159,"line":60},"admin_action_add_update_block","storeBlockFormSubmit",{"type":156,"name":200,"callback":201,"file":159,"line":202},"admin_action_edit_blocks","editBlocksFormSubmit",71,{"type":156,"name":204,"callback":205,"file":159,"line":206},"admin_action_delete_block","deleteBlockFormSubmit",72,{"type":156,"name":208,"callback":209,"file":159,"line":210},"admin_post_memsource_language_mapping_form","formSubmit",73,{"type":156,"name":212,"callback":209,"file":159,"line":213},"admin_post_memsource_content_settings_form",74,{"type":156,"name":215,"callback":216,"file":159,"line":217},"rest_api_init","memsource_rest_routes",75,{"type":156,"name":219,"callback":220,"file":159,"line":221},"delete_post","memsource_delete_post",76,{"type":156,"name":223,"callback":224,"file":159,"line":225},"delete_post_meta","memsource_delete_post_meta",77,{"type":156,"name":227,"callback":228,"file":159,"line":229},"wpml_translation_update","memsource_translation_language_change",78,{"type":156,"name":231,"callback":232,"file":159,"line":233},"registered_post_type","memsource_registered_post_type",79,{"type":156,"name":235,"callback":236,"file":159,"line":13},"registered_taxonomy","memsource_registered_taxonomy",{"type":238,"name":239,"callback":240,"priority":79,"file":159,"line":241},"filter","plugin_action_links","memsource_plugin_action_links",81,{"type":238,"name":243,"callback":244,"priority":79,"file":245,"line":246},"wp_kses_allowed_html","allowStyleTag","src\\Service\\Content\\AbstractPostService.php",218,{"type":238,"name":248,"callback":249,"file":250,"line":251},"pre_get_posts","addQueryFilters","src\\Service\\FilterService.php",17,{"type":238,"name":253,"callback":254,"file":250,"line":255},"posts_where","filterByLanguage",25,{"type":238,"name":248,"callback":257,"file":258,"line":259},"showPreview","src\\Utils\\PreviewUtils.php",13,{"type":238,"name":261,"callback":262,"priority":79,"file":258,"line":263},"posts_results","setPostPublished",26,{"type":238,"name":265,"callback":266,"file":258,"line":267},"comments_open","__return_false",44,{"type":238,"name":269,"callback":266,"file":258,"line":270},"pings_open",45,[272,277,282],{"action":273,"nopriv":274,"callback":275,"hasNonce":274,"hasCapCheck":274,"file":159,"line":276},"generate_token",false,"memsource_generate_token",62,{"action":278,"nopriv":274,"callback":279,"hasNonce":280,"hasCapCheck":280,"file":159,"line":281},"zip_and_email_log","memsource_zip_and_email_log",true,63,{"action":283,"nopriv":274,"callback":284,"hasNonce":280,"hasCapCheck":280,"file":159,"line":285},"delete_log","memsource_delete_log",64,[],[],[],{"dangerousFunctions":290,"sqlUsage":301,"outputEscaping":320,"fileOperations":79,"externalRequests":29,"nonceChecks":400,"capabilityChecks":400,"bundledLibraries":401},[291,295,299],{"fn":292,"file":293,"line":187,"context":294},"unserialize","src\\Service\\CustomFields\\CustomFieldsDecodeService.php","return @unserialize(base64_decode(trim($matches[0][1])));",{"fn":292,"file":296,"line":297,"context":298},"src\\Service\\ExternalPlugin\\AcfPlugin.php",39,"$decodedMetaValue = unserialize($metaValue);",{"fn":292,"file":296,"line":175,"context":300},"$elementorData = unserialize($json[1]);",{"prepared":297,"raw":302,"locations":303},5,[304,307,311,313,316],{"file":159,"line":305,"context":306},160,"$wpdb->get_col() with variable interpolation",{"file":308,"line":309,"context":310},"src\\Service\\BlockService.php",216,"$wpdb->get_results() with variable interpolation",{"file":312,"line":281,"context":310},"src\\Service\\DatabaseService.php",{"file":312,"line":314,"context":315},92,"$wpdb->query() with variable interpolation",{"file":317,"line":318,"context":319},"src\\Service\\Migrate\\SchemaService.php",137,"$wpdb->get_var() with variable interpolation",{"escaped":62,"rawEcho":267,"locations":321},[322,325,327,329,332,334,335,337,339,340,342,344,347,349,350,351,352,353,355,357,359,361,362,364,366,368,370,372,374,376,378,380,381,383,385,386,388,390,392,393,394,395,397,398],{"file":159,"line":323,"context":324},235,"raw output",{"file":159,"line":326,"context":324},332,{"file":159,"line":328,"context":324},344,{"file":330,"line":331,"context":324},"src\\Controller\\ContentController.php",256,{"file":333,"line":13,"context":324},"src\\Page\\AdvancedPage.php",{"file":333,"line":70,"context":324},{"file":333,"line":336,"context":324},115,{"file":333,"line":338,"context":324},157,{"file":333,"line":305,"context":324},{"file":333,"line":341,"context":324},191,{"file":333,"line":343,"context":324},192,{"file":345,"line":346,"context":324},"src\\Page\\BlockPage.php",40,{"file":345,"line":348,"context":324},61,{"file":345,"line":179,"context":324},{"file":345,"line":191,"context":324},{"file":345,"line":217,"context":324},{"file":345,"line":27,"context":324},{"file":345,"line":354,"context":324},113,{"file":345,"line":356,"context":324},142,{"file":345,"line":358,"context":324},165,{"file":360,"line":27,"context":324},"src\\Page\\ConnectorPage.php",{"file":360,"line":336,"context":324},{"file":360,"line":363,"context":324},219,{"file":360,"line":365,"context":324},238,{"file":360,"line":367,"context":324},263,{"file":360,"line":369,"context":324},281,{"file":360,"line":371,"context":324},328,{"file":360,"line":373,"context":324},337,{"file":375,"line":346,"context":324},"src\\Page\\CustomFieldsPage.php",{"file":375,"line":377,"context":324},53,{"file":375,"line":379,"context":324},54,{"file":375,"line":202,"context":324},{"file":375,"line":382,"context":324},89,{"file":375,"line":384,"context":324},97,{"file":375,"line":70,"context":324},{"file":375,"line":387,"context":324},104,{"file":389,"line":60,"context":324},"src\\Page\\LanguageMappingPage.php",{"file":391,"line":297,"context":324},"src\\Page\\ShortcodePage.php",{"file":391,"line":168,"context":324},{"file":391,"line":183,"context":324},{"file":391,"line":225,"context":324},{"file":391,"line":396,"context":324},84,{"file":391,"line":109,"context":324},{"file":245,"line":399,"context":324},147,2,[],[403,419,428,440,453,463,471,490,504,521],{"entryPoint":404,"graph":405,"unsanitizedCount":400,"severity":41},"renderPage (src\\Page\\AdvancedPage.php:22)",{"nodes":406,"edges":417},[407,412],{"id":408,"type":409,"label":410,"file":333,"line":411},"n0","source","$_GET (x2)",126,{"id":413,"type":414,"label":415,"file":333,"line":338,"wp_function":416},"n1","sink","echo() [XSS]","echo",[418],{"from":408,"to":413,"sanitized":274},{"entryPoint":420,"graph":421,"unsanitizedCount":110,"severity":41},"renderPage (src\\Page\\CustomFieldsPage.php:27)",{"nodes":422,"edges":426},[423,425],{"id":408,"type":409,"label":424,"file":375,"line":270},"$_GET (x3)",{"id":413,"type":414,"label":415,"file":375,"line":379,"wp_function":416},[427],{"from":408,"to":413,"sanitized":274},{"entryPoint":429,"graph":430,"unsanitizedCount":28,"severity":41},"formSubmit (src\\Page\\CustomFieldsPage.php:134)",{"nodes":431,"edges":438},[432,435],{"id":408,"type":409,"label":433,"file":375,"line":434},"$_POST['referer']",146,{"id":413,"type":414,"label":436,"file":375,"line":434,"wp_function":437},"wp_redirect() [Open Redirect]","wp_redirect",[439],{"from":408,"to":413,"sanitized":274},{"entryPoint":441,"graph":442,"unsanitizedCount":14,"severity":41},"\u003CCustomFieldsPage> (src\\Page\\CustomFieldsPage.php:0)",{"nodes":443,"edges":450},[444,445,446,448],{"id":408,"type":409,"label":424,"file":375,"line":270},{"id":413,"type":414,"label":415,"file":375,"line":379,"wp_function":416},{"id":447,"type":409,"label":433,"file":375,"line":434},"n2",{"id":449,"type":414,"label":436,"file":375,"line":434,"wp_function":437},"n3",[451,452],{"from":408,"to":413,"sanitized":274},{"from":447,"to":449,"sanitized":274},{"entryPoint":454,"graph":455,"unsanitizedCount":400,"severity":41},"formSubmit (src\\Page\\LanguageMappingPage.php:93)",{"nodes":456,"edges":461},[457,460],{"id":408,"type":409,"label":458,"file":389,"line":459},"$_POST['referer'] (x2)",111,{"id":413,"type":414,"label":436,"file":389,"line":459,"wp_function":437},[462],{"from":408,"to":413,"sanitized":274},{"entryPoint":464,"graph":465,"unsanitizedCount":400,"severity":41},"\u003CLanguageMappingPage> (src\\Page\\LanguageMappingPage.php:0)",{"nodes":466,"edges":469},[467,468],{"id":408,"type":409,"label":458,"file":389,"line":459},{"id":413,"type":414,"label":436,"file":389,"line":459,"wp_function":437},[470],{"from":408,"to":413,"sanitized":274},{"entryPoint":472,"graph":473,"unsanitizedCount":28,"severity":489},"memsource_save_connector_options (memsource.php:239)",{"nodes":474,"edges":486},[475,478,481],{"id":408,"type":409,"label":476,"file":159,"line":477},"$_POST['insert-status']",253,{"id":413,"type":479,"label":480,"file":159,"line":477},"transform","→ updateInsertStatus()",{"id":447,"type":414,"label":482,"file":483,"line":484,"wp_function":485},"update_option() [Settings Manipulation]","src\\Service\\OptionsService.php",117,"update_option",[487,488],{"from":408,"to":413,"sanitized":274},{"from":413,"to":447,"sanitized":274},"low",{"entryPoint":491,"graph":492,"unsanitizedCount":28,"severity":489},"memsource_set_debug_mode (memsource.php:270)",{"nodes":493,"edges":501},[494,497,499],{"id":408,"type":409,"label":495,"file":159,"line":496},"$_POST",286,{"id":413,"type":479,"label":498,"file":159,"line":496},"→ setLogFilePath()",{"id":447,"type":414,"label":482,"file":483,"line":500,"wp_function":485},214,[502,503],{"from":408,"to":413,"sanitized":274},{"from":413,"to":447,"sanitized":274},{"entryPoint":505,"graph":506,"unsanitizedCount":400,"severity":489},"\u003Cmemsource> (memsource.php:0)",{"nodes":507,"edges":516},[508,509,510,511,512,514],{"id":408,"type":409,"label":476,"file":159,"line":477},{"id":413,"type":479,"label":480,"file":159,"line":477},{"id":447,"type":414,"label":482,"file":483,"line":484,"wp_function":485},{"id":449,"type":409,"label":495,"file":159,"line":496},{"id":513,"type":479,"label":498,"file":159,"line":496},"n4",{"id":515,"type":414,"label":482,"file":483,"line":500,"wp_function":485},"n5",[517,518,519,520],{"from":408,"to":413,"sanitized":274},{"from":413,"to":447,"sanitized":274},{"from":449,"to":513,"sanitized":274},{"from":513,"to":515,"sanitized":274},{"entryPoint":522,"graph":523,"unsanitizedCount":400,"severity":489},"\u003CAdvancedPage> (src\\Page\\AdvancedPage.php:0)",{"nodes":524,"edges":527},[525,526],{"id":408,"type":409,"label":410,"file":333,"line":411},{"id":413,"type":414,"label":415,"file":333,"line":338,"wp_function":416},[528],{"from":408,"to":413,"sanitized":274},{"summary":530,"deductions":531},"The memsource-connector plugin v4.7.9 exhibits a mixed security posture. While a significant majority of its SQL queries utilize prepared statements and there are no identified critical or high severity taint flows, several areas raise concerns.  The presence of one AJAX handler without authentication checks presents a direct attack vector. Furthermore, the use of the dangerous 'unserialize' function, combined with only 31% of output properly escaped, suggests potential vulnerabilities related to data handling and injection if untrusted data is processed.  The plugin's vulnerability history, while showing no currently unpatched CVEs, does indicate a past medium severity vulnerability, which could imply an ongoing risk of such issues if best practices are not consistently maintained.  The plugin benefits from a relatively small attack surface and a lack of bundled libraries, but the identified unprotected entry point and the 'unserialize' function are notable weaknesses that require attention.",[532,534,537,540],{"reason":533,"points":79},"AJAX handler without authentication check",{"reason":535,"points":536},"Presence of dangerous unserialize function",8,{"reason":538,"points":539},"Low percentage of properly escaped output",6,{"reason":541,"points":542},"Vulnerability history with medium severity CVE",7,"2026-03-16T19:58:36.317Z",{"wat":545,"direct":556},{"assetPaths":546,"generatorPatterns":550,"scriptPaths":551,"versionParams":552},[547,548,549],"\u002Fwp-content\u002Fplugins\u002Fmemsource-connector\u002Fcss\u002Fmemsource.css","\u002Fwp-content\u002Fplugins\u002Fmemsource-connector\u002Fjs\u002Fmemsource.js","\u002Fwp-content\u002Fplugins\u002Fmemsource-connector\u002Fjs\u002Fclipboard.min.js",[],[548,549],[553,554,555],"memsource-connector\u002Fcss\u002Fmemsource.css?ver=","memsource-connector\u002Fjs\u002Fmemsource.js?ver=","memsource-connector\u002Fjs\u002Fclipboard.min.js?ver=",{"cssClasses":557,"htmlComments":559,"htmlAttributes":561,"restEndpoints":563,"jsGlobals":565,"shortcodeOutput":567},[558],"memsource-admin-page",[560],"\u003C!-- memsource admin page -->",[562],"data-memsource-shortcode-id",[564],"\u002Fwp-json\u002Fmemsource\u002Fv1",[566],"memsourceAjax",[568],"[memsource_form]"]