WholesaleX – B2B & Wholesale Plugin for WooCommerce with Wholesale Prices

Best WooCommerce wholesale plugin with features like b2b wholesale prices, wholesale order form, tiered pricing, catalog mode, dynamic pricing, etc!

v2.4.2WPXPOUpdated Added 2k+ installs100% rating50% support resolved
38
Score
40
Errors
180
Warnings
+0
Change

Category Scores

Security0
Repo100
Performance98
Maintainability64

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

220 findings

Security

106

10 issue groups

Maintainability

84

10 issue groups

I18n

28

4 issue groups

Performance

1

1 issue group

WARNINGMaintainabilityNon-prefixed global variableGlobal variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$admin_users".38
Category
Maintainability
Occurrences
38
Severity
warning

Sample message

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$admin_users".

WARNINGSecurityMissing nonce verificationProcessing form data without nonce verification.30
Category
Security
Occurrences
30
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityInput is not sanitizedDetected usage of a non-sanitized input variable: $_FILES[$field['name']]25
Category
Security
Occurrences
25
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_FILES[$field['name']]

WARNINGSecurityRequest data is not unslashed$_GET['exported_ids'] not unslashed before sanitization. Use wp_unslash() or similar23
Category
Security
Occurrences
23
Severity
warning

Sample message

$_GET['exported_ids'] not unslashed before sanitization. Use wp_unslash() or similar

WARNINGMaintainabilityNon-prefixed hook nameHook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "active_plugins".17
Category
Maintainability
Occurrences
17
Severity
warning

Sample message

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "active_plugins".

ERRORI18nText Domain MismatchMismatched text domain. Expected 'wholesalex' but got 'woocommerce'.16
Category
I18n
Occurrences
16
Severity
error

Sample message

Mismatched text domain. Expected 'wholesalex' but got 'woocommerce'.

WARNINGSecurityInput is not validatedDetected usage of a possibly undefined superglobal array index: $_FILES[$field['name']]['name']. Check that the array index exists before using it.9
Category
Security
Occurrences
9
Severity
warning

Sample message

Detected usage of a possibly undefined superglobal array index: $_FILES[$field['name']]['name']. Check that the array index exists before using it.

ERRORI18nMissing Translators CommentA 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.9
Category
I18n
Occurrences
9
Severity
error

Sample message

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.

WARNINGMaintainabilityslow db query meta keyDetected usage of meta_key, possible slow query.7
Category
Maintainability
Occurrences
7
Severity
warning

Sample message

Detected usage of meta_key, possible slow query.

WARNINGMaintainabilityslow db query meta queryDetected usage of meta_query, possible slow query.7
Category
Maintainability
Occurrences
7
Severity
warning

Sample message

Detected usage of meta_query, possible slow query.

Show 15 more
WARNINGSecurityNonce verification recommended7
Category
Security
Occurrences
7
Severity
warning

Sample message

Processing form data without nonce verification.

ERRORSecurityOutput is not escaped6
Category
Security
Occurrences
6
Severity
error

Sample message

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$free_item_quantity'.

WARNINGMaintainabilityslow db query meta value5
Category
Maintainability
Occurrences
5
Severity
warning

Sample message

Detected usage of meta_value, possible slow query.

WARNINGMaintainabilityMissing Version4
Category
Maintainability
Occurrences
4
Severity
warning

Sample 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.

ERRORMaintainabilityNot Allowed3
Category
Maintainability
Occurrences
3
Severity
error

Sample message

Use of heredoc syntax (<<<) is not allowed; use standard strings or inline HTML instead

ERRORSecuritySQL query is not prepared3
Category
Security
Occurrences
3
Severity
error

Sample message

Use placeholders and $wpdb->prepare(); found $is_search_has_numeric

ERRORI18nMissing Arg Domain2
Category
I18n
Occurrences
2
Severity
error

Sample message

Missing $domain parameter in function call to esc_html_x().

WARNINGI18nDiscouraged text-domain loading1
Category
I18n
Occurrences
1
Severity
warning

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.

WARNINGSecurityDatabase parameter is not escaped1
Category
Security
Occurrences
1
Severity
warning

Sample message

Unescaped parameter $sql used in $wpdb-&gt;query()\n$sql assigned unsafely at line 1033.

WARNINGSecurityReplacements Wrong Number1
Category
Security
Occurrences
1
Severity
warning

Sample message

Incorrect number of replacements passed to $wpdb-&gt;prepare(). Found 1 replacement parameters, expected 4.

WARNINGMaintainabilityNon-prefixed class1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: &quot;Aelia_Integration_Helper&quot;.

WARNINGSecuritywp redirect wp redirect1
Category
Security
Occurrences
1
Severity
warning

Sample message

wp_redirect() found. Using wp_safe_redirect(), along with the &quot;allowed_redirect_hosts&quot; filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.

ERRORMaintainabilityparse url parse url1
Category
Maintainability
Occurrences
1
Severity
error

Sample message

parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.

WARNINGPerformancePost Not In post not in1
Category
Performance
Occurrences
1
Severity
warning

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.

WARNINGMaintainabilitymismatched plugin name1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Plugin name "WholesaleX - B2B & Wholesale Plugin for WooCommerce with Wholesale Prices" is different from the name declared in plugin header "WholesaleX".

External Connections

Not analyzed yet.

Score History

First score snapshot

v2.4.2

38

Latest

Findings
220
Errors
40
Warnings
180
Check
2.0.0

Relationship Map

Author, categories, issues, domains, and nearby plugins.

29 nodes

Related Plugins