Give customers more flexibility and increase your bottom line with Payfast — one of South Africa’s most popular payment gateways.
Category Scores
Top Issues by Category
i18n90
maintainability42
security5
repo_compliance1
Issues Details
138 issues found in latest scan
Mismatched text domain. Expected 'woocommerce-payfast-gateway' but got 'woocommerce-gateway-payfast'.
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "PF_CURL".
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$active_plugin".
Processing form data without nonce verification.
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "WC_Gateway_PayFast".
The plugin name includes a restricted term. Your chosen plugin name - "WooCommerce Payfast Gateway" - contains the restricted term "woocommerce" which cannot be used within in your plugin name, unless your plugin name contains one of the allowed patterns: "for woocommerce", "with woocommerce", "using woocommerce", or "and woocommerce". The term must still not appear anywhere else in your name.
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.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "wc_payfast_privacy_eraser_subs_statuses".
Detected usage of a non-sanitized input variable: $_GET['key']
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Missing "License" in Plugin Header. Please update your Plugin Header with a valid GPLv2 (or later) compatible license.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'woocommerce-payfast-gateway' but got 'woocommerce-gateway-payfast'. | 89 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "PF_CURL". | 30 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$active_plugin". | 4 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 4 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "WC_Gateway_PayFast". | 3 |
| trademarked_term | WARNING | The plugin name includes a restricted term. Your chosen plugin name - "WooCommerce Payfast Gateway" - contains the restricted term "woocommerce" which cannot be used within in your plugin name, unless your plugin name contains one of the allowed patterns: "for woocommerce", "with woocommerce", "using woocommerce", or "and woocommerce". The term must still not appear anywhere else in your name. | 3 |
| PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound | WARNING | 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. | 1 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "wc_payfast_privacy_eraser_subs_statuses". | 1 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET['key'] | 1 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 1 |
| plugin_header_no_license | ERROR | Missing "License" in Plugin Header. Please update your Plugin Header with a valid GPLv2 (or later) compatible license. | 1 |
Latest Snapshot
Findings
138
Errors
91
Warnings
47
Score History
First score snapshot
First scan completed Jun 20, 2026
v1.7.6 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v1.7.6
85
Latest
- Findings
- 138
- Errors
- 91
- Warnings
- 47
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 85 | 138 | 91 | 47 | v1.7.6 | 2.0.0 | 2026.06-mvp-static-v2 |