40+ WooCommerce modules in one plugin: product labels, quick view, buy now, pre-orders, variation swatches, discount rules & more.
Prioritized issue groups from the latest Plugin Check scan
Maintainability
735
11 issue groups
Security
26
3 issue groups
Performance
4
2 issue groups
I18n
3
3 issue groups
Sample message
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$_comment".
Sample message
$_GET['module_id'] not unslashed before sanitization. Use wp_unslash() or similar
Sample message
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "woocommerce_add_to_cart_fragments".
Sample message
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Sample message
Use of a direct database call is discouraged.
Sample message
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Sample message
Unescaped parameter $create_sql used in $wpdb->query()\n$create_sql used without escaping.
Sample message
Function "wp_register_ability()" requires WordPress 6.9.0, but your plugin minimum supported version is WordPress 6.4.0.
Sample message
Using exclusionary parameters, like exclude, in calls to get_posts() should be done with caution, see https://wpvip.com/documentation/performance-improvements-by-removing-usage-of-post__not_in/ for more information.
Sample message
Using exclusionary parameters, like post__not_in, in calls to get_posts() should be done with caution, see https://wpvip.com/documentation/performance-improvements-by-removing-usage-of-post__not_in/ for more information.
Sample message
Library files that are already in the WordPress core are not permitted.
Sample message
load_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed.
Sample message
Attempting a database schema change is discouraged.
Sample message
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "YITH_Featured_Audio_Video_Init".
Sample message
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found 'wc_esc_json'.
Sample message
The $text parameter must be a single text string literal. Found: 'Copyright © aThemes ' . gmdate( 'Y' ) . '. All Rights Reserved.'
Sample message
Multiple placeholders in translatable strings should be ordered. Expected "%1$s, %2$s", but got "%s, %s" in 'Connect your WordPress site and Merchant to AI assistants like Claude, ChatGPT, Cursor, and more. Ask them to find submissions, build forms, or edit fields in plain English. No copy-pasting, no exports. Connect them with the free %s plugin. %s'.
Sample message
Your plugin has a different license declared in the readme file and plugin header. Please update your readme with a valid GPL license identifier.
Sample message
Plugin name "Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant" is different from the name declared in plugin header "Merchant".
Sample message
The "/vendor" directory using composer exists, but "composer.json" file is missing.
Potential connections found in static code analysis.
Outbound calls
276
External assets
0
Incoming endpoints
24
No external asset domains detected.
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
11 more hidden
2 score snapshots
v2.3.0
60
Latest
v2.2.8
60
Score
| Scan | Score | Findings | Errors | Warnings | Plugin | Check |
|---|---|---|---|---|---|---|
| Latest | 60 | 769 | 14 | 755 | v2.3.0 | 2.0.0 |
| 60 | 751 | 11 | 740 | v2.2.8 | 2.0.0 |
Author, categories, issues, domains, and nearby plugins.