72% wp-notification-builder

Code Review | Wordpress Notification Builder

WordPress plugin Wordpress Notification Builder scored72%from 54 tests.

About plugin

  • Plugin page: wp-notification-b...
  • Plugin version: 1.0
  • PHP compatiblity: 5.2+
  • PHP version: 7.4.16
  • WordPress compatibility: 3.7-5.0.3
  • WordPress version: 6.3.1
  • First release: May 21, 2019
  • Latest release: May 21, 2019
  • Number of updates: 3
  • Update frequency: every 0.3 days
  • Top authors: maharishaq (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /416 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Install script ran successfully

Server metrics [RAM: ▲1.25MB] [CPU: ▲0.36ms] Passed 4 tests

An overview of server-side resources used by Wordpress Notification Builder
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /4.75 ▲1.2847.73 ▼4.61
Dashboard /wp-admin4.62 ▲1.2759.99 ▼4.96
Posts /wp-admin/edit.php4.66 ▲1.3061.78 ▲16.63
Add New Post /wp-admin/post-new.php7.14 ▲1.2586.94 ▼5.64
Media Library /wp-admin/upload.php4.45 ▲1.2249.64 ▲16.71

Server storage [IO: ▲4.69MB] [DB: ▲0.00MB] Passed 3 tests

A short overview of filesystem and database impact
There were no storage issued detected upon installing this plugin
Filesystem: 458 new files
Database: no new tables, 6 new options
New WordPress options
widget_recent-posts
theysaidso_admin_options
widget_recent-comments
can_compress_scripts
db_upgraded
widget_theysaidso_widget

Browser metrics Passed 4 tests

This is an overview of browser requirements for Wordpress Notification Builder
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,105 ▲35919.44 ▲5.056.56 ▲4.6638.77 ▼3.22
Dashboard /wp-admin2,400 ▲2129.73 ▲4.82210.41 ▲88.9642.87 ▲0.25
Posts /wp-admin/edit.php2,317 ▲2256.70 ▲4.72119.78 ▲84.1234.51 ▲4.83
Add New Post /wp-admin/post-new.php1,719 ▲18624.20 ▲0.69701.86 ▲46.3834.89 ▼15.21
Media Library /wp-admin/upload.php1,444 ▲567.28 ▲3.07134.05 ▲31.4341.91 ▲0.45
WP Notification /wp-admin/crb_carbon_fields_container_wp_notification.php260.440.1313.05

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
Please fix the following items
  • This plugin does not fully uninstall, leaving 6 options in the database
    • can_compress_scripts
    • widget_recent-posts
    • theysaidso_admin_options
    • db_upgraded
    • widget_recent-comments
    • widget_theysaidso_widget

Smoke tests 25% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Good news, no errors were detected

SRP 0% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
The following issues need your attention
  • 1× PHP files output text when accessed directly:
    • > /wp-content/plugins/wp-notification-builder/inc/option_fields/vendor/htmlburger/carbon-fields/templates/Exception/incorrect-syntax.php
  • 205× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Field\\Field' not found in wp-content/plugins/wp-notification-builder/inc/option_fields/vendor/htmlburger/carbon-fields/core/Field/Date_Field.php:8
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/wp-notification-builder/inc/option_fields/vendor/htmlburger/carbon-fields/templates/Container/post_meta.php:1
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/wp-notification-builder/inc/option_fields/vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Service\\Service' not found in wp-content/plugins/wp-notification-builder/inc/option_fields/vendor/htmlburger/carbon-fields/core/Service/Legacy_Storage_Service_v_1_5.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Container\\Condition\\Condition' not found in wp-content/plugins/wp-notification-builder/inc/option_fields/vendor/htmlburger/carbon-fields/core/Container/Condition/Blog_ID_Condition.php:8
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/wp-notification-builder/inc/option_fields/vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/wp-notification-builder/inc/option_fields/vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php:4
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/wp-notification-builder/inc/option_fields/vendor/htmlburger/carbon-fields/templates/Container/comment_meta.php:1
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/wp-notification-builder/inc/option_fields/vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Field\\Field' not found in wp-content/plugins/wp-notification-builder/inc/option_fields/vendor/htmlburger/carbon-fields/core/Field/Complex_Field.php:16

User-side errors 0% from 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
Please take a look at the following user-side issues
    • > GET request to /wp-admin/crb_carbon_fields_container_wp_notification.php
    • > Network (severe)
    wp-admin/crb_carbon_fields_container_wp_notification.php - Failed to load resource: the server responded with a status of 404 (Not Found)

Optimizations

Plugin configuration 90% from 29 tests

readme.txt Passed 16 tests

The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
5 plugin tags: notification builder, easy notification plugin, wp notification plugin, wordpress notification, wp notification builder

wp-notification-builder/index.php 77% from 13 tests

The main PHP script in "Wordpress Notification Builder" version 1.0 is automatically included on every request by WordPress
Please take the time to fix the following:
  • Requires at least: The required version number must match the one declared in readme.txt ("4.9" instead of "3.7")
  • Main file name: Even though not officially enforced, the main plugin file should be the same as the plugin slug ("wp-notification-builder.php" instead of "index.php")
  • Description: Please keep the plugin description shorter than 140 characters (currently 173 characters long)

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
There were no executable files found in this plugin74,272 lines of code in 435 files:
LanguageFilesBlank linesComment linesLines of code
JavaScript14015,91728,38559,713
PHP2392,5526,37910,576
PO File121,1321,6232,507
JSON800580
CSS28289127568
Markdown5610279
YAML27026
XML12023

PHP code Passed 2 tests

An overview of cyclomatic complexity and code structure
No cyclomatic complexity issues were detected for this plugin
Cyclomatic complexity
Average complexity per logical line of code0.25
Average class complexity5.04
▷ Minimum class complexity1.00
▷ Maximum class complexity50.00
Average method complexity1.98
▷ Minimum method complexity1.00
▷ Maximum method complexity18.00
Code structure
Namespaces25
Interfaces5
Traits0
Classes214
▷ Abstract classes136.07%
▷ Concrete classes20193.93%
▷ Final classes10.50%
Methods920
▷ Static methods818.80%
▷ Public methods73179.46%
▷ Protected methods18219.78%
▷ Private methods70.76%
Functions95
▷ Named functions2324.21%
▷ Anonymous functions7275.79%
Constants32
▷ Global constants721.88%
▷ Class constants2578.12%
▷ Public constants25100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

PNG files should be compressed to save space and minimize bandwidth usage
There were not PNG files found in your plugin