Invoices, quotes, PDFs and payments inside WordPress. Unlimited documents, PayPal, credit notes, statements and a REST API — free.
Prioritized issue groups from the latest Plugin Check scan
Maintainability
1,658
13 issue groups
Security
640
10 issue groups
Performance
5
1 issue group
I18n
1
1 issue group
Sample message
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$a".
Sample message
Processing form data without nonce verification.
Sample message
$_GET['auto_download_pdf'] not unslashed before sanitization. Use wp_unslash() or similar
Sample message
Processing form data without nonce verification.
Sample message
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$aria_describedby'.
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
Detected usage of a non-sanitized input variable: $_FILES[$field]['error']
Sample message
Detected usage of meta_query, possible slow query.
Sample message
error_log() found. Debug code should not normally be used in production.
Sample message
Unescaped parameter $count_sql used in $wpdb->get_row()\n$count_sql assigned unsafely at line 425.
Sample message
var_export() found. Debug code should not normally be used in production.
Sample message
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$is_quote ? 'easy_invoice_quote_totals_after_tax' : 'easy_invoice_invoice_totals_after_tax'".
Sample message
Setting `suppress_filters` to `true` is prohibited.
Sample message
Detected usage of meta_value, possible slow query.
Sample message
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "_easy_invoice_emit_toast_script".
Sample message
Detected usage of a possibly undefined superglobal array index: $_FILES['payment_proof']['error']. Check that the array index exists before using it.
Sample message
Use placeholders and $wpdb->prepare(); found interpolated variable $option_placeholders at "SELECT COUNT(*) FROM {$wpdb->options} WHERE option_name IN ($option_placeholders)"
Sample message
It is not necessary to prepare a query which doesn't use variable replacement.
Sample message
Detected usage of meta_key, possible slow query.
Sample message
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "save_post_easy_invoice".
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
The use of function set_time_limit() is discouraged
Sample message
Attempting a database schema change is discouraged.
Sample message
Replacement variables found, but no valid placeholders found in the query.
Potential connections found in static code analysis.
Outbound calls
215
External assets
0
Incoming endpoints
85
No external asset domains detected.
admin_post
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
admin_post
admin_post
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
wp_ajax
60 more hidden
6 score snapshots
v2.4.1
24
Latest
v2.3.8
24
Score
| Scan | Score | Findings | Errors | Warnings | Plugin | Check |
|---|---|---|---|---|---|---|
| Latest | 24 | 2,309 | 117 | 2,192 | v2.4.1 | 2.1.0 |
| 24 | 3,379 | 1,366 | 2,013 | v2.3.8 | 2.1.0 |
Author, categories, issues, domains, and nearby plugins.