72% logo-scheduler-great-for-holidays-events-and-more

Code Review | Logo Scheduler - Great for holidays, events, and more

WordPress plugin Logo Scheduler - Great for holidays, events, and more scored72%from 54 tests.

About plugin

  • Plugin page: logo-scheduler-gr...
  • Plugin version: 1.2.3
  • PHP version: 7.4.16
  • WordPress compatibility: 4.9.10-6.4
  • WordPress version: 6.3.1
  • First release: Nov 8, 2019
  • Latest release: Jul 26, 2023
  • Number of updates: 15
  • Update frequency: every 93.3 days
  • Top authors: kizinko (100%)

Code review

54 tests

User reviews

1 review

Install metrics

100+ active /1,820 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
This plugin's installer ran successfully

Server metrics [RAM: ▲0.25MB] [CPU: ▲0.72ms] Passed 4 tests

This is a short check of server-side resources used by Logo Scheduler - Great for holidays, events, and more
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /3.70 ▲0.2443.76 ▼0.48
Dashboard /wp-admin3.61 ▲0.3047.00 ▼1.16
Posts /wp-admin/edit.php3.66 ▲0.3051.87 ▲6.85
Add New Post /wp-admin/post-new.php6.12 ▲0.2491.41 ▲2.12
Media Library /wp-admin/upload.php3.46 ▲0.2438.10 ▲2.40
Logo Scheduler /wp-admin/options-general.php?page=amwnlogos3.4534.82

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

Filesystem and database footprint
There were no storage issued detected upon installing this plugin
Filesystem: 47 new files
Database: no new tables, 6 new options
New WordPress options
can_compress_scripts
widget_theysaidso_widget
theysaidso_admin_options
widget_recent-comments
db_upgraded
widget_recent-posts

Browser metrics Passed 4 tests

An overview of browser requirements for Logo Scheduler - Great for holidays, events, and more
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,896 ▲13913.97 ▼0.386.30 ▲4.2043.02 ▼3.48
Dashboard /wp-admin2,215 ▲275.90 ▲0.02106.91 ▼0.1538.63 ▼5.02
Posts /wp-admin/edit.php2,098 ▲92.15 ▲0.1051.73 ▲15.8644.93 ▲9.33
Add New Post /wp-admin/post-new.php1,519 ▼017.67 ▼5.71682.20 ▲12.4851.80 ▼12.34
Media Library /wp-admin/upload.php1,394 ▲64.21 ▼0.0494.53 ▼11.2340.65 ▼8.39
Logo Scheduler /wp-admin/options-general.php?page=amwnlogos1,1363.3451.1527.96

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
These items require your attention
  • This plugin did not uninstall successfully, leaving 6 options in the database
    • db_upgraded
    • widget_theysaidso_widget
    • widget_recent-posts
    • widget_recent-comments
    • theysaidso_admin_options
    • can_compress_scripts

Smoke tests 25% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
These server-side errors were triggered
    • > GET request to /wp-admin/options-general.php?page=amwnlogos
    • > Notice in wp-content/plugins/logo-scheduler-great-for-holidays-events-and-more/inc/admin/class-admin.php+165
    Undefined variable: attachments
    • > GET request to /wp-admin/options-general.php?page=amwnlogos
    • > Notice in wp-content/plugins/logo-scheduler-great-for-holidays-events-and-more/inc/admin/class-admin.php+167
    Undefined variable: retina_attachments
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=amwnlogos
    • > Notice in wp-content/plugins/logo-scheduler-great-for-holidays-events-and-more/inc/admin/class-admin.php+467
    Undefined index: attributes
  • 7 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=amwnlogos
    • > Notice in wp-content/plugins/logo-scheduler-great-for-holidays-events-and-more/inc/admin/class-admin.php+544
    Undefined index: helper
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=amwnlogos
    • > Notice in wp-content/plugins/logo-scheduler-great-for-holidays-events-and-more/inc/admin/class-admin.php+549
    Undefined index: supplemental
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=amwnlogos
    • > Notice in wp-content/plugins/logo-scheduler-great-for-holidays-events-and-more/inc/admin/class-admin.php+465
    Undefined index: placeholder
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=amwnlogos
    • > Notice in wp-content/plugins/logo-scheduler-great-for-holidays-events-and-more/inc/admin/class-admin.php+510
    Undefined index: id

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
Please fix the following
  • 1× GET requests to PHP files return non-empty strings:
    • > /wp-content/plugins/logo-scheduler-great-for-holidays-events-and-more/inc/frontend/views/amwnlogos-public-display.php
  • 3× PHP files trigger server-side errors or warnings when accessed directly:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _e() in wp-content/plugins/logo-scheduler-great-for-holidays-events-and-more/inc/admin/views/search-list-table-display.php:8
    • > PHP Fatal error
      Uncaught Error: Call to undefined function current_user_can() in wp-content/plugins/logo-scheduler-great-for-holidays-events-and-more/inc/admin/views/search-list-table-bulk-download.php:8
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _e() in wp-content/plugins/logo-scheduler-great-for-holidays-events-and-more/inc/admin/views/amwnlogos-admin-display.php:18

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
No browser issues were found

Optimizations

Plugin configuration 90% from 29 tests

readme.txt Passed 16 tests

Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
5 plugin tags: scheduler, holidays, holiday, logo, schedule

logo-scheduler-great-for-holidays-events-and-more/scheduled-logos.php 77% from 13 tests

The main file in "Logo Scheduler - Great for holidays, events, and more" v. 1.2.3 serves as a complement to information provided in readme.txt and as the entry point to the plugin
Please make the necessary changes and fix the following:
  • Main file name: The principal plugin file should be the same as the plugin slug ("logo-scheduler-great-for-holidays-events-and-more.php" instead of "scheduled-logos.php")
  • Text Domain: Since WordPress version 4.6 the text domain is optional; if specified, it must be the same as the plugin slug
  • Description: 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 | There should be no dangerous file extensions present in any WordPress plugin
Success! There were no dangerous files found in this plugin2,092 lines of code in 33 files:
LanguageFilesBlank linesComment linesLines of code
PHP244601,2901,818
JavaScript336101193
CSS4182076
JSON2005

PHP code Passed 2 tests

Cyclomatic complexity and code structure are the fingerprint of this plugin
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.42
Average class complexity21.15
▷ Minimum class complexity1.00
▷ Maximum class complexity124.00
Average method complexity3.40
▷ Minimum method complexity1.00
▷ Maximum method complexity21.00
Code structure
Namespaces6
Interfaces0
Traits0
Classes13
▷ Abstract classes00.00%
▷ Concrete classes13100.00%
▷ Final classes00.00%
Methods110
▷ Static methods65.45%
▷ Public methods8274.55%
▷ Protected methods2119.09%
▷ Private methods76.36%
Functions4
▷ Named functions250.00%
▷ Anonymous functions250.00%
Constants7
▷ Global constants7100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
PNG images were not found in this plugin