Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Installer ran successfully
Server metrics [RAM: ▼1.89MB] [CPU: ▼317.95ms] Passed 4 tests
Analyzing server-side resources used by PassKit Manager
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 1.74 ▼0.98 | 5.10 ▼20.92 |
Dashboard /wp-admin | 1.76 ▼1.29 | 4.97 ▼38.20 |
Posts /wp-admin/edit.php | 1.76 ▼1.34 | 4.81 ▼43.79 |
Add New Post /wp-admin/post-new.php | 1.76 ▼3.67 | 5.44 ▼1,155.34 |
Media Library /wp-admin/upload.php | 1.76 ▼1.24 | 5.01 ▼34.47 |
Update pass /wp-admin/admin.php?page=passkit-manager/inc/passkit-update-pass-admin-page.php | 1.76 | 5.14 |
Settings /wp-admin/admin.php?page=passkit-manager/inc/passkit-settings-admin-page.php | 1.76 | 6.03 |
Templates /wp-admin/admin.php?page=passkit-manager/inc/passkit-templates-admin-page.php | 1.76 | 6.38 |
Issue new pass /wp-admin/admin.php?page=passkit-manager/inc/passkit-issue-new-pass-admin-page.php | 1.76 | 4.92 |
Pass records /wp-admin/admin.php?page=passkit-manager/inc/passkit-pass-records-admin-page.php | 1.76 | 4.48 |
Template settings /wp-admin/admin.php?page=passkit-manager/inc/passkit-template-settings-admin-page.php | 1.76 | 6.00 |
Server storage [IO: ▲0.09MB] [DB: ▲0.00MB] Passed 3 tests
Input-output and database impact of this plugin
The plugin installed successfully
Filesystem: 14 new files
Database: 1 new table, no new options
New tables |
---|
wp_passkit_manager_templates |
Browser metrics Passed 4 tests
Checking browser requirements for PassKit Manager
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,682 ▲100 | 15.88 ▲0.36 | 9.11 ▲1.86 | 48.53 ▲2.97 |
Dashboard /wp-admin | 2,953 ▲103 | 5.94 ▲0.09 | 130.21 ▼0.11 | 136.11 ▲26.41 |
Posts /wp-admin/edit.php | 2,737 ▲31 | 2.62 ▼0.07 | 62.32 ▼2.96 | 86.92 ▼9.27 |
Add New Post /wp-admin/post-new.php | 1,872 ▲19 | 17.72 ▼1.45 | 358.65 ▼20.19 | 108.26 ▲2.42 |
Media Library /wp-admin/upload.php | 1,746 ▼26 | 5.02 ▼0.02 | 125.15 ▼31.42 | 128.50 ▲10.57 |
Update pass /wp-admin/admin.php?page=passkit-manager/inc/passkit-update-pass-admin-page.php | 1,017 | 2.08 | 51.68 | 60.55 |
Settings /wp-admin/admin.php?page=passkit-manager/inc/passkit-settings-admin-page.php | 1,068 | 2.09 | 49.87 | 57.52 |
Templates /wp-admin/admin.php?page=passkit-manager/inc/passkit-templates-admin-page.php | 1,018 | 2.08 | 51.87 | 58.42 |
Issue new pass /wp-admin/admin.php?page=passkit-manager/inc/passkit-issue-new-pass-admin-page.php | 1,014 | 2.05 | 52.93 | 53.71 |
Pass records /wp-admin/admin.php?page=passkit-manager/inc/passkit-pass-records-admin-page.php | 1,025 | 2.05 | 55.96 | 53.11 |
Template settings /wp-admin/admin.php?page=passkit-manager/inc/passkit-template-settings-admin-page.php | 1,017 | 2.06 | 52.46 | 53.11 |
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
- Uninstall procedure had uncaught errors
- > User notice in wp-includes/functions.php+5663
wp_enqueue_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the passkit_style handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Almost there, just fix the following server-side errors
- 6 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-template-settings-admin-page.php
- > User notice in wp-includes/functions.php+5663
wp_enqueue_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the passkit_style handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
- 6 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-template-settings-admin-page.php
- > User deprecated in wp-includes/functions.php+5586
contextual_help is deprecated since version 3.3.0! Use get_current_screen()->add_help_tab(), get_current_screen()->remove_help_tab() instead.
- 6 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-template-settings-admin-page.php
- > Deprecated in wp-includes/class-wp-hook.php+303
Non-static method pkManagerPluginOptions::passkit_manager_plugin_help() should not be called statically
- 6 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-template-settings-admin-page.php
- > User deprecated in wp-includes/functions.php+5221
screen_icon is deprecated since version 3.8.0 with no alternative available.
- 6 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-template-settings-admin-page.php
- > User deprecated in wp-includes/functions.php+5221
get_screen_icon is deprecated since version 3.8.0 with no alternative available.
- 3 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-pass-records-admin-page.php
- > Notice in wp-content/plugins/passkit-manager/inc/passkit-pass-records-admin-page.php+8
Undefined index: template_id
- 5 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-template-settings-admin-page.php
- > Notice in wp-content/plugins/passkit-manager/inc/passkit-template-settings-admin-page.php+7
Undefined index: t
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-settings-admin-page.php
- > Notice in wp-content/plugins/passkit-manager/inc/passkit-settings-admin-page.php+19
Trying to access array offset on value of type bool
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-templates-admin-page.php
- > Warning in wp-content/plugins/passkit-manager/inc/passkit-templates-admin-page.php+193
Declaration of Templates_List_Table::prepare_items($pk) should be compatible with WP_List_Table::prepare_items()
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-template-settings-admin-page.php
- > Notice in wp-content/plugins/passkit-manager/inc/passkit-template-settings-admin-page.php+7
Undefined index: id
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-pass-records-admin-page.php
- > Warning in wp-content/plugins/passkit-manager/inc/passkit-pass-records-admin-page.php+204
Declaration of Passes_List_Table::prepare_items($pk) should be compatible with WP_List_Table::prepare_items()
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please take a closer look at the following
- 1× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/passkit-manager/inc/passkit-help-admin-page.php
- 7× PHP files trigger server errors when accessed directly:
- > PHP Fatal error
Uncaught Error: Call to undefined function screen_icon() in wp-content/plugins/passkit-manager/inc/passkit-update-pass-admin-page.php:4
- > PHP Fatal error
Uncaught Error: Call to undefined function wp_enqueue_style() in wp-content/plugins/passkit-manager/passkit-manager.php:47
- > PHP Fatal error
Uncaught Error: Call to undefined function screen_icon() in wp-content/plugins/passkit-manager/inc/passkit-settings-admin-page.php:3
- > PHP Fatal error
Uncaught Error: Call to undefined function screen_icon() in wp-content/plugins/passkit-manager/inc/passkit-pass-records-admin-page.php:4
- > PHP Fatal error
Uncaught Error: Call to undefined function screen_icon() in wp-content/plugins/passkit-manager/inc/passkit-templates-admin-page.php:4
- > PHP Fatal error
Uncaught Error: Call to undefined function screen_icon() in wp-content/plugins/passkit-manager/inc/passkit-issue-new-pass-admin-page.php:4
- > PHP Fatal error
Uncaught Error: Call to undefined function screen_icon() in wp-content/plugins/passkit-manager/inc/passkit-template-settings-admin-page.php:4
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
Please fix the following browser errors
- 6 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=passkit-manager/inc/passkit-template-settings-admin-page.php
- > Network (severe)
wp-content/plugins/passkit_manager/css/style.css?ver=5.8.1 - Failed to load resource: the server responded with a status of 404 (Not Found)
Optimizations
Plugin configuration Passed 29 tests
readme.txt Passed 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
9 plugin tags: passbook, boarding passes, coupons, etickets, passkit...
passkit-manager/passkit-manager.php Passed 13 tests
"PassKit Manager" version 1.0's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
109 characters long description:
"PassKit Manager" plugin by PassKit Inc, can be used to manage PassKit templates & passes for Apple Passbook.
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
Good job! No executable or dangerous file extensions detected1,320 lines of code in 10 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 9 | 301 | 901 | 1,310 |
CSS | 1 | 1 | 0 | 10 |
PHP code Passed 2 tests
Analyzing logical lines of code, cyclomatic complexity, and other code metrics
Everything seems fine, there were no complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.39 |
Average class complexity | 37.75 |
▷ Minimum class complexity | 4.00 |
▷ Maximum class complexity | 99.00 |
Average method complexity | 4.20 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 30.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 4 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 4 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 46 | |
▷ Static methods | 7 | 15.22% |
▷ Public methods | 42 | 91.30% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 4 | 8.70% |
Functions | 1 | |
▷ Named functions | 1 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 3 | |
▷ Global constants | 3 | 100.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
Plugin size Passed 1 test
Image compression Passed 1 test
All PNG images should be compressed to minimize bandwidth usage for end users
2 compressed PNG files occupy 0.00MB
Potential savings
Compression of 2 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
img/passkit-icon32x32.png | 1.51KB | 1.40KB | ▼ 7.42% |
img/passkit-icon-bw32x32.png | 0.59KB | 1.00KB | 0.00% |