GSpeech TTS – WordPress Text To Speech Plugin

Free WordPress Text to Speech plugin with AI voices. Add an audio player to WordPress posts, pages and WooCommerce products to improve accessibility.

v3.21.2Creative-SolutionsUpdated Added 3k+ installs94% rating100% support resolved
27
Score
842
Errors
332
Warnings
+0
Change

Category Scores

Security0
Repo89
Performance100
Maintainability19

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

1,174 findings

Security

792

12 issue groups

Maintainability

289

11 issue groups

I18n

79

2 issue groups

ERRORSecurityOutput Not EscapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$admin_display_link'.624
Category
Security
Occurrences
624
Severity
error

Sample message

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

WARNINGMaintainabilityNon Prefixed Variable FoundGlobal variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$agent".213
Category
Maintainability
Occurrences
213
Severity
warning

Sample message

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

ERRORI18nText Domain MismatchMismatched text domain. Expected 'gspeech' but got ' '.77
Category
I18n
Occurrences
77
Severity
error

Sample message

Mismatched text domain. Expected 'gspeech' but got ' '.

ERRORSecurityUnsafe Printing FunctionAll output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.71
Category
Security
Occurrences
71
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.20
Category
Maintainability
Occurrences
20
Severity
warning

Sample message

Use of a direct database call is discouraged.

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

Sample message

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

ERRORSecurityNot PreparedUse placeholders and $wpdb->prepare(); found $prepared18
Category
Security
Occurrences
18
Severity
error

Sample message

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

WARNINGSecurityRecommendedProcessing form data without nonce verification.18
Category
Security
Occurrences
18
Severity
warning

Sample message

Processing form data without nonce verification.

ERRORSecurityUnescaped DBParameterUnescaped parameter $prepared used in $wpdb->query()\n$prepared assigned unsafely at line 196.17
Category
Security
Occurrences
17
Severity
error

Sample message

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

WARNINGSecurityInput Not SanitizedDetected usage of a non-sanitized input variable: $_GET[$this->prefix . '_admin_notice_ignore']17
Category
Security
Occurrences
17
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_GET[$this->prefix . '_admin_notice_ignore']

Show 15 more
WARNINGSecurityMissing Unslash15
Category
Security
Occurrences
15
Severity
warning

Sample message

$_GET[$this->prefix . '_admin_notice_ignore'] not unslashed before sanitization. Use wp_unslash() or similar

WARNINGMaintainabilityNot In Footer10
Category
Maintainability
Occurrences
10
Severity
warning

Sample message

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.

ERRORMaintainabilitydate date5
Category
Maintainability
Occurrences
5
Severity
error

Sample message

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

WARNINGSecurityInput Not Validated5
Category
Security
Occurrences
5
Severity
warning

Sample message

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

ERRORMaintainabilitycurl curl setopt5
Category
Maintainability
Occurrences
5
Severity
error

Sample message

Using cURL functions is highly discouraged. Use wp_remote_get() instead.

ERRORMaintainabilitywp function not compatible with requires wp5
Category
Maintainability
Occurrences
5
Severity
error

Sample message

Function "wp_add_inline_script()" requires WordPress 4.5.0, but your plugin minimum supported version is WordPress 3.5.0.

ERRORMaintainabilityNon Enqueued Script4
Category
Maintainability
Occurrences
4
Severity
error

Sample message

Scripts must be registered/enqueued via wp_enqueue_script()

ERRORMaintainabilitystrip tags strip tags3
Category
Maintainability
Occurrences
3
Severity
error

Sample message

strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.

WARNINGMaintainabilityMissing Version3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

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.

WARNINGSecurityUnescaped DBParameter2
Category
Security
Occurrences
2
Severity
warning

Sample message

Unescaped parameter $table used in $wpdb->get_col()\n$table assigned unsafely at line 130.

WARNINGSecurityInterpolated Not Prepared2
Category
Security
Occurrences
2
Severity
warning

Sample message

Use placeholders and $wpdb->prepare(); found interpolated variable {$table} at "SHOW COLUMNS FROM `{$table}`"

WARNINGSecuritywp redirect wp redirect2
Category
Security
Occurrences
2
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.

ERRORI18nMissing Translators Comment2
Category
I18n
Occurrences
2
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.

ERRORSecurityregister setting Missing1
Category
Security
Occurrences
1
Severity
error

Sample message

Sanitization missing for register_setting().

WARNINGMaintainabilityNon Prefixed Class Found1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "GSpeeech_Processor".

Score History

First score snapshot

v3.21.2

27

Latest

Findings
1,174
Errors
842
Warnings
332
Check
2.0.0

Related Plugins

100
100
Better Aria Label Support

5k+ active installs

99
Accessibility by AudioEye

1k+ active installs

95
Dark Mode for WP Dashboard

2k+ active installs

94