Translate WordPress sites with automatic AI translation into 110+ languages. Multilingual SEO, WooCommerce compatible, 110k+ sites.
Category Scores
Top Issues by Category
maintainability124
security16
i18n7
supply_chain2
repo_compliance1
Issues Details
152 issues found in latest scan
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$button_services".
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "active_plugins".
Function "register_block_type()" requires WordPress 5.0.0, but your plugin minimum supported version is WordPress 4.5.0.
$_GET['_wpnonce'] not unslashed before sanitization. Use wp_unslash() or similar
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "create_block_weglot_menu_block_init".
A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders.
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$error_message'.
Resource version not set in call to wp_enqueue_script(). This means new versions of the script may not always be loaded due to browser caching.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DGWT_WCAS_ALTERNATIVE_SEARCH_ENDPOINT".
trigger_error() found. Debug code should not normally be used in production.
In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "Context_Weglot".
Processing form data without nonce verification.
Editor blocks must define "apiVersion" 3 or higher in block.json for WordPress 7.0+ iframe editor compatibility.
Short PHP opening tag used with echo; expected "<?php echo esc_js ..." but found "<?= esc_js ..."
Found call to wp_enqueue_script() with external resource. Offloading scripts to your servers or any remote service is disallowed.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$name_filter".
Scripts must be registered/enqueued via wp_enqueue_script()
Plugin name "Translate WordPress with Weglot - Multilingual AI Translation" is different from the name declared in plugin header "Weglot Translate".
The "/vendor" directory using composer exists, but "composer.json" file is missing.
Tested up to: 6.9 < 7.0. The "Tested up to" value in your plugin is not set to the current version of WordPress. This means your plugin will not show up in searches, as we require plugins to be compatible and documented as tested up to the most recent version of WordPress.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$button_services". | 59 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "active_plugins". | 16 |
| wp_function_not_compatible_with_requires_wp | ERROR | Function "register_block_type()" requires WordPress 5.0.0, but your plugin minimum supported version is WordPress 4.5.0. | 11 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET['_wpnonce'] not unslashed before sanitization. Use wp_unslash() or similar | 10 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "create_block_weglot_menu_block_init". | 9 |
| WordPress.WP.I18n.MissingTranslatorsComment | ERROR | A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders. | 6 |
| WordPress.Security.EscapeOutput.ExceptionNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$error_message'. | 4 |
| WordPress.WP.EnqueuedResourceParameters.MissingVersion | WARNING | Resource version not set in call to wp_enqueue_script(). This means new versions of the script may not always be loaded due to browser caching. | 4 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 4 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DGWT_WCAS_ALTERNATIVE_SEARCH_ENDPOINT". | 3 |
| WordPress.PHP.DevelopmentFunctions.error_log_trigger_error | WARNING | trigger_error() found. Debug code should not normally be used in production. | 3 |
| WordPress.WP.EnqueuedResourceParameters.NotInFooter | WARNING | In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header. | 3 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "Context_Weglot". | 2 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 2 |
| block_api_version_too_low | ERROR | Editor blocks must define "apiVersion" 3 or higher in block.json for WordPress 7.0+ iframe editor compatibility. | 2 |
| hidden_files | ERROR | Hidden files are not permitted. | 2 |
| library_core_files | ERROR | Library files that are already in the WordPress core are not permitted. | 2 |
| Generic.PHP.DisallowShortOpenTag.EchoFound | ERROR | Short PHP opening tag used with echo; expected "<?php echo esc_js ..." but found "<?= esc_js ..." | 1 |
| PluginCheck.CodeAnalysis.EnqueuedResourceOffloading.OffloadedContent | ERROR | Found call to wp_enqueue_script() with external resource. Offloading scripts to your servers or any remote service is disallowed. | 1 |
| WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$name_filter". | 1 |
| WordPress.WP.EnqueuedResources.NonEnqueuedScript | ERROR | Scripts must be registered/enqueued via wp_enqueue_script() | 1 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to esc_html_e(). | 1 |
| mismatched_plugin_name | WARNING | Plugin name "Translate WordPress with Weglot - Multilingual AI Translation" is different from the name declared in plugin header "Weglot Translate". | 1 |
| missing_composer_json_file | WARNING | The "/vendor" directory using composer exists, but "composer.json" file is missing. | 1 |
| outdated_tested_upto_header | ERROR | Tested up to: 6.9 < 7.0. The "Tested up to" value in your plugin is not set to the current version of WordPress. This means your plugin will not show up in searches, as we require plugins to be compatible and documented as tested up to the most recent version of WordPress. | 1 |
Latest Snapshot
Findings
152
Errors
37
Warnings
115
Score History
First score snapshot
First scan completed Jun 20, 2026
v5.5 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v5.5
35
Latest
- Findings
- 152
- Errors
- 37
- Warnings
- 115
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 35 | 152 | 37 | 115 | v5.5 | 2.0.0 | 2026.06-mvp-static-v2 |