Get better WordPress login security; add two-factor authentication (2FA) for all your users with this easy-to-use plugin.
Prioritized issue groups from the latest Plugin Check scan
Maintainability
564
13 issue groups
Security
384
9 issue groups
I18n
12
3 issue groups
Sample message
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$admin".
Sample message
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "WP_2FA_PREFIX . 'actions_check'".
Sample message
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$att_stmt['alg']'.
Sample message
Processing form data without nonce verification.
Sample message
Processing form data without nonce verification.
Sample message
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "admin_print_styles".
Sample message
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Sample message
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$badge_context_attr'.
Sample message
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "WP_2FA_BASE".
Sample message
$_POST['_wpnonce'] not unslashed before sanitization. Use wp_unslash() or similar
Sample message
Detected usage of a non-sanitized input variable: $_POST['email_address']
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
A function call to esc_html__() 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.
Sample message
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "check_ssl".
Sample message
Use placeholders and $wpdb->prepare(); found $select
Sample message
Missing $domain parameter in function call to __().
Sample message
Unescaped parameter $limit used in $wpdb->get_results()\n$limit assigned unsafely at line 76.
Sample message
Detected usage of a possibly undefined superglobal array index: $_REQUEST['redirect_to']. Check that the array index exists before using it.
Sample message
The plugin name includes a restricted term. Your chosen plugin name - "WP 2FA - Two-factor authentication for WordPress" - contains the restricted term "wordpress" which cannot be used at all in your plugin name.
Sample message
Function "str_starts_with()" requires WordPress 5.9.0, but your plugin minimum supported version is WordPress 5.5.0.
Sample message
Use of heredoc syntax (<<<) is not allowed; use standard strings or inline HTML instead
Sample message
strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.
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
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "EDD_SL_Plugin_Updater".
Potential connections found in static code analysis.
Outbound calls
277
External assets
3
Incoming endpoints
20
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
wp_ajax
6 more hidden
3 score snapshots
v4.1.0
25
Latest
v4.0.0
25
Score
| Scan | Score | Findings | Errors | Warnings | Plugin | Check |
|---|---|---|---|---|---|---|
| Latest | 25 | 972 | 255 | 717 | v4.1.0 | 2.0.0 |
| 25 | 999 | 283 | 716 | v4.0.0 | 2.0.0 |
Author, categories, issues, domains, and nearby plugins.