Appointment Hour Booking is a plugin for creating booking forms for appointments with a start time and a defined duration within a schedule.
Category Scores
Top Issues by Category
maintainability845
security602
Issues Details
1,515 issues found in latest scan
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$Apphb_Signature_obj".
Processing form data without nonce verification.
$_GET[$key] not unslashed before sanitization. Use wp_unslash() or similar
Detected usage of a possibly undefined superglobal array index: $_GET['sbmi']. Check that the array index exists before using it.
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Processing form data without nonce verification.
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "APHOURBK_ELEMENTOR_EDIT_MODE".
Function "esc_textarea()" requires WordPress 3.1.0, but your plugin minimum supported version is WordPress 3.0.5.
The $text parameter must be a single text string literal. Found: $button_label
Resource version not set in call to wp_enqueue_script(). This means new versions of the script may not always be loaded due to browser caching.
Unescaped parameter $cond used in $wpdb->get_results()\n$cond assigned unsafely at line 58.
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "_js2PhpTime".
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.
rand() is discouraged. Use the far less predictable wp_rand() instead.
Use placeholders and $wpdb->prepare(); found $events_query
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
Scripts must be registered/enqueued via wp_enqueue_script()
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$dataoutput'.
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "Apphb_Signature".
Version parameter is not explicitly set or has been set to an equivalent of "false" for wp_enqueue_script; This means that the WordPress core version will be used which is not recommended for plugin or theme development.
Detected usage of a non-sanitized input variable: $_GET["page"]
Stylesheets must be registered/enqueued via wp_enqueue_style()
Short URL detected (goo.gl). Use full URLs instead of URL shorteners.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$Apphb_Signature_obj". | 374 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 255 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET[$key] not unslashed before sanitization. Use wp_unslash() or similar | 118 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_GET['sbmi']. Check that the array index exists before using it. | 91 |
| 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. | 90 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 87 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 79 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 74 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "APHOURBK_ELEMENTOR_EDIT_MODE". | 49 |
| wp_function_not_compatible_with_requires_wp | ERROR | Function "esc_textarea()" requires WordPress 3.1.0, but your plugin minimum supported version is WordPress 3.0.5. | 42 |
| WordPress.WP.I18n.NonSingularStringLiteralText | ERROR | The $text parameter must be a single text string literal. Found: $button_label | 39 |
| WordPress.WP.EnqueuedResourceParameters.MissingVersion | WARNING | Resource version not set in call to wp_enqueue_script(). This means new versions of the script may not always be loaded due to browser caching. | 37 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $cond used in $wpdb->get_results()\n$cond assigned unsafely at line 58. | 27 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "_js2PhpTime". | 24 |
| WordPress.WP.EnqueuedResourceParameters.NotInFooter | WARNING | 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. | 19 |
| WordPress.WP.AlternativeFunctions.rand_rand | ERROR | rand() is discouraged. Use the far less predictable wp_rand() instead. | 18 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $events_query | 13 |
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'. | 12 |
| WordPress.WP.EnqueuedResources.NonEnqueuedScript | ERROR | Scripts must be registered/enqueued via wp_enqueue_script() | 9 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$dataoutput'. | 8 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "Apphb_Signature". | 5 |
| WordPress.WP.EnqueuedResourceParameters.NoExplicitVersion | ERROR | Version parameter is not explicitly set or has been set to an equivalent of "false" for wp_enqueue_script; This means that the WordPress core version will be used which is not recommended for plugin or theme development. | 5 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET["page"] | 4 |
| WordPress.WP.EnqueuedResources.NonEnqueuedStylesheet | ERROR | Stylesheets must be registered/enqueued via wp_enqueue_style() | 4 |
| PluginCheck.CodeAnalysis.ShortURL.Found | WARNING | Short URL detected (goo.gl). Use full URLs instead of URL shorteners. | 3 |
Latest Snapshot
Findings
1,515
Errors
261
Warnings
1,254
Score History
First score snapshot
First scan completed Jun 20, 2026
v1.5.84 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v1.5.84
25
Latest
- Findings
- 1,515
- Errors
- 261
- Warnings
- 1,254
- 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,515 | 261 | 1,254 | v1.5.84 | 2.0.0 | 2026.06-mvp-static-v2 |