Charitable – Donation Plugin for WordPress – Fundraising with Recurring Donations & More

The best WordPress donation plugin. Create fundraising donation forms, accept recurring donations, easy donor management, add crowdfunding, and more.

v1.8.11.2Syed BalkhiUpdated Added 10k+ installs98% rating100% support resolved
26
Score
97
Errors
270
Warnings
+0
Change

Category Scores

Security0
Repo100
Performance94
Maintainability9

Top Issues by Category

maintainability214
security118
i18n16
performance3

Issues Details

367 issues found in latest scan

WARNING47
WordPress.PHP.DevelopmentFunctions.error_log_error_log

error_log() found. Debug code should not normally be used in production.

WARNING35
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

WARNING30
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

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

WARNING27
WordPress.WP.EnqueuedResourceParameters.NotInFooter

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.

WARNING23
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

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

ERROR22
missing_direct_file_access_protection

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

ERROR18
wp_function_not_compatible_with_requires_wp

Function "get_block_wrapper_attributes()" requires WordPress 5.6.0, but your plugin minimum supported version is WordPress 5.0.0.

WARNING17
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING17
WordPress.DB.DirectDatabaseQuery.NoCaching

Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().

ERROR16
WordPress.Security.EscapeOutput.OutputNotEscaped

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

ERROR16
WordPress.WP.I18n.MissingTranslatorsComment

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.

WARNING13
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

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

WARNING10
WordPress.DB.SlowDBQuery.slow_db_query_meta_key

Detected usage of meta_key, possible slow query.

WARNING9
WordPress.DB.SlowDBQuery.slow_db_query_meta_value

Detected usage of meta_value, possible slow query.

WARNING8
WordPress.DB.PreparedSQL.InterpolatedNotPrepared

Use placeholders and $wpdb->prepare(); found interpolated variable {$campaigns_table} at "SELECT COUNT(*) FROM {$campaigns_table} WHERE %d = %d"

WARNING8
WordPress.DB.SlowDBQuery.slow_db_query_meta_query

Detected usage of meta_query, possible slow query.

ERROR8
WordPress.Security.EscapeOutput.ExceptionNotEscaped

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

ERROR6
WordPress.WP.AlternativeFunctions.file_system_operations_fclose

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

WARNING5
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $campaigns_table used in $wpdb->get_var()\n$campaigns_table assigned unsafely at line 401.

ERROR3
WordPress.DateTime.RestrictedFunctions.date_date

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

WARNING3
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

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

ERROR3
WordPress.WP.AlternativeFunctions.file_system_operations_fopen

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

WARNING3
WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude

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.

ERROR2
PluginCheck.CodeAnalysis.WriteFile.PluginDirectoryWrite

Plugin folders are deleted when upgraded. Do not save data to the plugin folder using unzip_file(). Detected usage of constant WP_PLUGIN_DIR. Use wp_upload_dir() to get the uploads directory path or save to the database instead.

WARNING2
WordPress.PHP.DevelopmentFunctions.error_log_set_error_handler

set_error_handler() found. Debug code should not normally be used in production.

Latest Snapshot

Findings

367

Errors

97

Warnings

270

Score History

First score snapshot

First scan completed

v1.8.11.2 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

v1.8.11.2

26

Latest

Findings
367
Errors
97
Warnings
270
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins