Jock On Air Now (JOAN)

The ultimate radio station scheduling plugin. Manage DJs, display current shows, and engage your audience with real-time on-air information.

v6.1.3ganddserUpdated Added 400 installs76% rating
38
Score
121
Errors
224
Warnings
+1
Change

Category Scores

Security0
Repo100
Performance100
Maintainability67

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

345 findings

Security

237

12 issue groups

Maintainability

92

9 issue groups

I18n

16

3 issue groups

ERRORSecurityOutput is not escapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$args['after_title']'.62
Category
Security
Occurrences
62
Severity
error

Sample message

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

WARNINGSecurityInput is not validatedDetected usage of a possibly undefined superglobal array index: $_POST['ad_id']. Check that the array index exists before using it.39
Category
Security
Occurrences
39
Severity
warning

Sample message

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

WARNINGSecurityRequest data is not unslashed$_COOKIE[$this->cookie_name] not unslashed before sanitization. Use wp_unslash() or similar37
Category
Security
Occurrences
37
Severity
warning

Sample message

$_COOKIE[$this->cookie_name] not unslashed before sanitization. Use wp_unslash() or similar

WARNINGMaintainabilityerror log error logerror_log() found. Debug code should not normally be used in production.33
Category
Maintainability
Occurrences
33
Severity
warning

Sample message

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

ERRORSecurityUnsafe printing functionAll output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.30
Category
Security
Occurrences
30
Severity
error

Sample message

All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.

WARNINGMaintainabilityDirect QueryUse of a direct database call is discouraged.21
Category
Maintainability
Occurrences
21
Severity
warning

Sample message

Use of a direct database call is discouraged.

WARNINGSecurityMissing nonce verificationProcessing form data without nonce verification.21
Category
Security
Occurrences
21
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGMaintainabilityNo CachingDirect database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().19
Category
Maintainability
Occurrences
19
Severity
warning

Sample message

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

WARNINGSecurityInput is not sanitizedDetected usage of a non-sanitized input variable: $_GET['_joan_nonce']18
Category
Security
Occurrences
18
Severity
warning

Sample message

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

WARNINGSecurityInterpolated SQL is not preparedUse placeholders and $wpdb->prepare(); found interpolated variable $current_table at "DROP TABLE IF EXISTS $current_table"12
Category
Security
Occurrences
12
Severity
warning

Sample message

Use placeholders and $wpdb->prepare(); found interpolated variable $current_table at "DROP TABLE IF EXISTS $current_table"

Show 14 more
WARNINGSecurityDatabase parameter is not escaped11
Category
Security
Occurrences
11
Severity
warning

Sample message

Unescaped parameter $current_table used in $wpdb->query()\n$current_table assigned unsafely at line 307.

ERRORMaintainabilitydate date10
Category
Maintainability
Occurrences
10
Severity
error

Sample message

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

ERRORI18nNon Singular String Literal Text9
Category
I18n
Occurrences
9
Severity
error

Sample message

The $text parameter must be a single text string literal. Found: $original

ERRORI18nMissing Translators Comment5
Category
I18n
Occurrences
5
Severity
error

Sample message

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.

WARNINGMaintainabilitySchema Change3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

Attempting a database schema change is discouraged.

ERRORSecuritySQL query is not prepared3
Category
Security
Occurrences
3
Severity
error

Sample message

Use placeholders and $wpdb->prepare(); found $query

WARNINGMaintainabilityerror log print r3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

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

WARNINGI18nDiscouraged text-domain loading2
Category
I18n
Occurrences
2
Severity
warning

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.

ERRORSecurityDatabase parameter is not escaped2
Category
Security
Occurrences
2
Severity
error

Sample message

Unescaped parameter $query used in $wpdb->get_results()\n$query assigned unsafely at line 60.

WARNINGMaintainabilityNon-prefixed hook name1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "wp_ajax_show_time_curd".

WARNINGSecurityNonce verification recommended1
Category
Security
Occurrences
1
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecuritywp redirect wp redirect1
Category
Security
Occurrences
1
Severity
warning

Sample message

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.

WARNINGMaintainabilitymismatched plugin name1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Plugin name "Jock On Air Now (JOAN)" is different from the name declared in plugin header "JOAN - Jock On Air Now".

WARNINGMaintainabilityupgrade notice limit1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

The upgrade notice for "6.0.0" exceeds the limit of 300 characters.

External Connections

Potential connections found in static code analysis.

8 domains

Outbound calls

15

External assets

0

Incoming endpoints

15

Notable Domains

i.ibb.co4 · outbound
musidek.com1 · outbound
netchoiceradio.com1 · outbound
vouscast.com1 · outbound

Platform / Reference Domains

w3.org2 · platform/reference
gnu.org1 · platform/reference

External Asset Domains

No external asset domains detected.

Incoming Endpoints

wp_ajax_nopriv_joan_switch_languagepublic

wp_ajax

wp_ajax_nopriv_joan_widget_refreshpublic

wp_ajax

wp_ajax_nopriv_show_time_curdpublic

wp_ajax

Admin AJAX endpoints12
wp_ajax_joan_dismiss_integration_noticeauthenticated

wp_ajax

wp_ajax_joan_dismiss_premium_adauthenticated

wp_ajax

wp_ajax_joan_schedule_createauthenticated

wp_ajax

wp_ajax_joan_schedule_deleteauthenticated

wp_ajax

wp_ajax_joan_schedule_readauthenticated

wp_ajax

wp_ajax_joan_schedule_save_allauthenticated

wp_ajax

wp_ajax_joan_schedule_updateauthenticated

wp_ajax

wp_ajax_joan_switch_languageauthenticated

wp_ajax

wp_ajax_joan_toggle_schedule_statusauthenticated

wp_ajax

wp_ajax_joan_track_ad_clickauthenticated

wp_ajax

wp_ajax_joan_widget_refreshauthenticated

wp_ajax

wp_ajax_show_time_curdauthenticated

wp_ajax

Score History

2 score snapshots

+1
1007550250Jun 25, 2026, 10:03 PM UTC Score 37/100 Plugin v6.1.2 Plugin Check 2.0.0 123 errors, 224 warningsJun 26, 2026, 11:25 PM UTC Score 38/100 Plugin v6.1.3 Plugin Check 2.0.0 121 errors, 224 warningsJun 25, 2026Jun 26, 2026

v6.1.3

38

Latest

Findings
345
Errors
121
Warnings
224
Check
2.0.0

v6.1.2

37

Score

Findings
347
Errors
123
Warnings
224
Check
2.0.0

Relationship Map

Author, categories, issues, domains, and nearby plugins.

35 nodes

Related Plugins