Increase engagement and drive more repeat traffic to your WordPress site with push notifications. Now a WordPress VIP Gold Partner.
Category Scores
Top Issues by Category
security64
maintainability32
i18n19
Issues Details
117 issues found in latest scan
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"oneSignal_options['serviceWorkerParam'] = { scope: '$swScope' };\n"'.
$_POST[$field] not unslashed before sanitization. Use wp_unslash() or similar
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "admin_files".
Mismatched text domain. Expected 'onesignal-free-web-push-notifications' but got 'onesignal'.
Processing form data without nonce verification.
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$is_migrated".
error_log() found. Debug code should not normally be used in production.
Detected usage of a non-sanitized input variable: $_POST['onesignal_v3_metabox_nonce']
Detected usage of a possibly undefined superglobal array index: $_POST['onesignal_notification_custom_content']. Check that the array index exists before using it.
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.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.
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.
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.
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fclose().
Scripts must be registered/enqueued via wp_enqueue_script()
The $text parameter must be a single text string literal. Found: $label
Your plugin has a different license declared in the readme file and plugin header. Please update your readme with a valid GPL license identifier.
Plugin name "OneSignal - Web Push Notifications" is different from the name declared in plugin header "OneSignal Push Notifications".
One or more tags were ignored. Please limit your plugin to 5 tags.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"oneSignal_options['serviceWorkerParam'] = { scope: '$swScope' };\n"'. | 26 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_POST[$field] not unslashed before sanitization. Use wp_unslash() or similar | 20 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "admin_files". | 11 |
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'onesignal-free-web-push-notifications' but got 'onesignal'. | 10 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 8 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to __(). | 6 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$is_migrated". | 5 |
| WordPress.PHP.DevelopmentFunctions.error_log_error_log | WARNING | error_log() found. Debug code should not normally be used in production. | 5 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_POST['onesignal_v3_metabox_nonce'] | 5 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_POST['onesignal_notification_custom_content']. Check that the array index exists before using it. | 4 |
| 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. | 3 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 3 |
| WordPress.WP.AlternativeFunctions.parse_url_parse_url | ERROR | parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead. | 2 |
| 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. | 2 |
| 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. | 1 |
| WordPress.WP.AlternativeFunctions.file_system_operations_fclose | ERROR | File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fclose(). | 1 |
| WordPress.WP.EnqueuedResources.NonEnqueuedScript | ERROR | Scripts must be registered/enqueued via wp_enqueue_script() | 1 |
| WordPress.WP.I18n.NonSingularStringLiteralText | ERROR | The $text parameter must be a single text string literal. Found: $label | 1 |
| license_mismatch | ERROR | Your plugin has a different license declared in the readme file and plugin header. Please update your readme with a valid GPL license identifier. | 1 |
| mismatched_plugin_name | WARNING | Plugin name "OneSignal - Web Push Notifications" is different from the name declared in plugin header "OneSignal Push Notifications". | 1 |
| readme_parser_warnings_too_many_tags | WARNING | One or more tags were ignored. Please limit your plugin to 5 tags. | 1 |
Latest Snapshot
Findings
117
Errors
53
Warnings
64
Score History
First score snapshot
First scan completed
v3.9.0 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
v3.9.0
38
Latest
- Findings
- 117
- Errors
- 53
- Warnings
- 64
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Latest | 38 | 117 | 53 | 64 | v3.9.0 | 2.0.0 | 2026.06-mvp-static-v2 |