Unlimited appointments, booking calendars, and notifications. Powerful appointment booking plugin and booking system. Start scheduling for free today!
Category Scores
Top Issues by Category
security873
i18n424
maintainability262
Issues Details
1,698 issues found in latest scan
Mismatched text domain. Expected 'simply-schedule-appointments' but got 'elementor'.
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$actions'.
Processing form data without nonce verification.
$_COOKIE['health-check-disable-plugins'] not unslashed before sanitization. Use wp_unslash() or similar
Detected usage of a non-sanitized input variable: $_COOKIE['health-check-disable-plugins']
Use placeholders and $wpdb->prepare(); found interpolated variable $author_ids at " AND `%i` IN( SELECT ID FROM $wpdb->posts WHERE post_author = $author_ids ) "
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
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.
Detected usage of a possibly undefined superglobal array index: $_GET['ssa_nonce']. Check that the array index exists before using it.
wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
Short PHP opening tag used with echo; expected "<?php echo ! ..." but found "<?= ! ..."
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"$fetch_fields must be an array"'.
Unescaped parameter $appointment_meta_table used in $wpdb->query()\n$appointment_meta_table assigned unsafely at line 2347.
All output should be run through an escaping function (like echo esc_html_x() or echo esc_attr_x()), found '_ex'.
Unescaped parameter $confirm_query used in $wpdb->get_results()\n$confirm_query assigned unsafely at line 1001.
error_log() found. Debug code should not normally be used in production.
Replacement variables found, but no valid placeholders found in the query.
rand() is discouraged. Use the far less predictable wp_rand() instead.
The $text parameter must be a single text string literal. Found: $default_all_display_setting
Stylesheets must be registered/enqueued via wp_enqueue_style()
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'simply-schedule-appointments' but got 'elementor'. | 327 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$actions'. | 248 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 162 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_COOKIE['health-check-disable-plugins'] not unslashed before sanitization. Use wp_unslash() or similar | 90 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_COOKIE['health-check-disable-plugins'] | 88 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $author_ids at " AND `%i` IN( SELECT ID FROM $wpdb->posts WHERE post_author = $author_ids ) " | 75 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 69 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 67 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $args | 52 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to __(). | 44 |
| WordPress.WP.I18n.MissingTranslatorsComment | ERROR | 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. | 38 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_GET['ssa_nonce']. Check that the array index exists before using it. | 33 |
| WordPress.Security.SafeRedirect.wp_redirect_wp_redirect | WARNING | wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed. | 29 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 28 |
| WordPress.DateTime.RestrictedFunctions.date_date | ERROR | date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead. | 26 |
| Generic.PHP.DisallowShortOpenTag.EchoFound | ERROR | Short PHP opening tag used with echo; expected "<?php echo ! ..." but found "<?= ! ..." | 25 |
| WordPress.Security.EscapeOutput.ExceptionNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"$fetch_fields must be an array"'. | 24 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $appointment_meta_table used in $wpdb->query()\n$appointment_meta_table assigned unsafely at line 2347. | 21 |
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like echo esc_html_x() or echo esc_attr_x()), found '_ex'. | 18 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | ERROR | Unescaped parameter $confirm_query used in $wpdb->get_results()\n$confirm_query assigned unsafely at line 1001. | 17 |
| WordPress.PHP.DevelopmentFunctions.error_log_error_log | WARNING | error_log() found. Debug code should not normally be used in production. | 17 |
| WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare | WARNING | Replacement variables found, but no valid placeholders found in the query. | 16 |
| WordPress.WP.AlternativeFunctions.rand_rand | ERROR | rand() is discouraged. Use the far less predictable wp_rand() instead. | 16 |
| WordPress.WP.I18n.NonSingularStringLiteralText | ERROR | The $text parameter must be a single text string literal. Found: $default_all_display_setting | 15 |
| WordPress.WP.EnqueuedResources.NonEnqueuedStylesheet | ERROR | Stylesheets must be registered/enqueued via wp_enqueue_style() | 14 |
Latest Snapshot
Findings
1,698
Errors
960
Warnings
738
Score History
First score snapshot
First scan completed Jun 20, 2026
v1.6.12.2 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v1.6.12.2
25
Latest
- Findings
- 1,698
- Errors
- 960
- Warnings
- 738
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 25 | 1,698 | 960 | 738 | v1.6.12.2 | 2.0.0 | 2026.06-mvp-static-v2 |