WPCS – WordPress Currency Switcher Professional

WordPress Currency Switcher Professional - a WordPress plugin that allows switching price currencies on your site with real-time rate conversion!

v1.3.2RealMag777Updated Added 900 installs82% rating
29
Score
84
Errors
358
Warnings
+0
Change

Category Scores

Security0
Repo89
Performance96
Maintainability29

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

442 findings

Maintainability

242

16 issue groups

Security

152

5 issue groups

I18n

38

3 issue groups

Performance

4

1 issue group

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

Sample message

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

WARNINGSecurityNonce verification recommendedProcessing form data without nonce verification.43
Category
Security
Occurrences
43
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityRequest data is not unslashed$_COOKIE[$this->cookie_name] not unslashed before sanitization. Use wp_unslash() or similar36
Category
Security
Occurrences
36
Severity
warning

Sample message

$_COOKIE[$this->cookie_name] not unslashed before sanitization. Use wp_unslash() or similar

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.35
Category
I18n
Occurrences
35
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.

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

Sample message

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

WARNINGSecurityInput is not sanitizedDetected usage of a non-sanitized input variable: $_GET['currency']30
Category
Security
Occurrences
30
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_GET['currency']

WARNINGMaintainabilityNot In FooterIn 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.16
Category
Maintainability
Occurrences
16
Severity
warning

Sample message

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.

ERRORSecurityOutput is not escapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<a href='{$support_link}' target='_blank'>"'.11
Category
Security
Occurrences
11
Severity
error

Sample message

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<a href='{$support_link}' target='_blank'>"'.

ERRORMaintainabilitycurl curl setoptUsing cURL functions is highly discouraged. Use wp_remote_get() instead.10
Category
Maintainability
Occurrences
10
Severity
error

Sample message

Using cURL functions is highly discouraged. Use wp_remote_get() instead.

ERRORMaintainabilityunlink unlinkunlink() is discouraged. Use wp_delete_file() to delete a file.5
Category
Maintainability
Occurrences
5
Severity
error

Sample message

unlink() is discouraged. Use wp_delete_file() to delete a file.

Show 15 more
WARNINGPerformancePost Not In exclude4
Category
Performance
Occurrences
4
Severity
warning

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.

ERRORMaintainabilityShort PHP open tag found3
Category
Maintainability
Occurrences
3
Severity
error

Sample message

Short PHP opening tag used with echo; expected "<?php echo $link ..." but found "<?= $link ..."

ERRORMaintainabilitydate date3
Category
Maintainability
Occurrences
3
Severity
error

Sample message

date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.

ERRORMaintainabilityMissing direct file access protection3
Category
Maintainability
Occurrences
3
Severity
error

Sample message

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

ERRORMaintainabilitycurl curl close2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

Using cURL functions is highly discouraged. Use wp_remote_get() instead.

ERRORMaintainabilitycurl curl exec2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

Using cURL functions is highly discouraged. Use wp_remote_get() instead.

ERRORMaintainabilitycurl curl init2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

Using cURL functions is highly discouraged. Use wp_remote_get() instead.

ERRORI18nNon Singular String Literal Text2
Category
I18n
Occurrences
2
Severity
error

Sample message

The $text parameter must be a single text string literal. Found: 'Error unpacking: ' . $e->getMessage()

WARNINGMaintainabilitytrademarked term2
Category
Maintainability
Occurrences
2
Severity
warning

Sample message

The plugin name includes a restricted term. Your chosen plugin name - "WPCS - WordPress Currency Switcher Professional" - contains the restricted term "wordpress" which cannot be used at all in your plugin name.

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.

ERRORMaintainabilityOffloaded Content1
Category
Maintainability
Occurrences
1
Severity
error

Sample message

Offloading images, js, css, and other scripts to your servers or any remote service is disallowed.

WARNINGMaintainabilityslow db query meta value1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Detected usage of meta_value, possible slow query.

WARNINGMaintainabilityNon-prefixed function1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: &quot;get_time_zone&quot;.

WARNINGMaintainabilityNon-prefixed hook name1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: &quot;woocs_bank_polski_table&quot;.

ERRORMaintainabilityfile system operations mkdir1
Category
Maintainability
Occurrences
1
Severity
error

Sample message

File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: mkdir().

External Connections

Potential connections found in static code analysis.

53 domains

Outbound calls

170

External assets

5

Incoming endpoints

23

Notable Domains

en.wikipedia.org16 · outbound
getharvest.com12 · outbound
wp-currency.com5 · outbound
dev.maxmind.com4 · outbound
bulk-editor.com3 · outbound

Platform / Reference Domains

github.com48 · platform/reference
w3.org4 · platform/reference
wordpress.org3 · platform/reference

External Asset Domains

pluginus.net14 · asset + outbound
youtube.com3 · asset + outbound

Incoming Endpoints

wp_ajax_nopriv_wpcs_convert_currencypublic

wp_ajax

wp_ajax_nopriv_wpcs_get_prices_htmlpublic

wp_ajax

wp_ajax_nopriv_wpcs_rates_current_currencypublic

wp_ajax

wp_ajax_nopriv_wpcs_set_cookiepublic

wp_ajax

wp_ajax_nopriv_wpcs_set_currency_ajaxpublic

wp_ajax

Admin AJAX endpoints17
wp_ajax_wpcs_manage_alertauthenticated

wp_ajax

wp_ajax_{$slug}_dismiss_rate_alertauthenticated

wp_ajax

wp_ajax_{$slug}_later_rate_alertauthenticated

wp_ajax

wp_ajax_wpcs_add_currenciesauthenticated

wp_ajax

wp_ajax_wpcs_convert_currencyauthenticated

wp_ajax

wp_ajax_wpcs_download_geoip_dbauthenticated

wp_ajax

wp_ajax_wpcs_get_prices_htmlauthenticated

wp_ajax

wp_ajax_wpcs_get_rateauthenticated

wp_ajax

wp_ajax_wpcs_rates_current_currencyauthenticated

wp_ajax

wp_ajax_wpcs_recalculate_order_dataauthenticated

wp_ajax

wp_ajax_wpcs_save_etalonauthenticated

wp_ajax

wp_ajax_wpcs_sd_createauthenticated

wp_ajax

5 more hidden

Score History

First score snapshot

v1.3.2

29

Latest

Findings
442
Errors
84
Warnings
358
Check
2.0.0

Relationship Map

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

37 nodes

Related Plugins