Benchmarks
Plugin footprint 23% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
The following installer errors require your attention
- The plugin did not install without errors
- > Notice in wp-content/plugins/jsp-store-locator/public/class_jsp_store_locator_public.php+12
Undefined index: map_type
Server metrics [RAM: ▼1.66MB] [CPU: ▼48.25ms] Passed 4 tests
A check of server-side resources used by JSP Store Locator
This plugin does not affect your website's performance
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 2.33 ▼1.13 | 5.29 ▼35.28 |
Dashboard /wp-admin | 2.35 ▼0.96 | 6.68 ▼42.84 |
Posts /wp-admin/edit.php | 2.35 ▼1.01 | 7.47 ▼39.39 |
Add New Post /wp-admin/post-new.php | 2.35 ▼3.54 | 7.58 ▼75.49 |
Media Library /wp-admin/upload.php | 2.35 ▼0.88 | 5.99 ▼29.60 |
Configuration /wp-admin/admin.php?page=jspsl-configuration | 2.35 | 7.29 |
Import/Export (Pro) /wp-admin/admin.php?page=jspsl-import-export | 2.35 | 8.66 |
JSP Store Locator /wp-admin/admin.php?page=jspsl-plugin | 2.35 | 5.87 |
Add New Categories /wp-admin/admin.php?page=jspsl-add-new-categories | 2.35 | 8.12 |
Search Hit (Pro) /wp-admin/admin.php?page=jspsl-search-hit | 2.35 | 6.03 |
Branch Hit (Pro) /wp-admin/admin.php?page=jspsl-branch-hit | 2.35 | 7.11 |
Manage Stores /wp-admin/admin.php?page=jspsl-manage-stores | 2.35 | 6.05 |
Add New Store /wp-admin/admin.php?page=jspsl-add-new-store | 2.35 | 6.97 |
Google Places (Pro) /wp-admin/admin.php?page=jspsl-google-places | 2.35 | 5.80 |
Categories /wp-admin/admin.php?page=jspsl-categories | 2.35 | 7.37 |
Server storage [IO: ▲13.43MB] [DB: ▲0.02MB] Passed 3 tests
Input-output and database impact of this plugin
This plugin installed successfully
Filesystem: 68 new files
Database: 5 new tables, 6 new options
New tables |
---|
wp_jsp_store_categories |
wp_jsp_map_language |
wp_jsp_mapstyle |
wp_jsp_configuration_table |
wp_jsp_stores |
New WordPress options |
---|
can_compress_scripts |
theysaidso_admin_options |
widget_theysaidso_widget |
widget_recent-comments |
db_upgraded |
widget_recent-posts |
Browser metrics Passed 4 tests
This is an overview of browser requirements for JSP Store Locator
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,859 ▲102 | 13.26 ▼1.36 | 1.74 ▼0.31 | 39.95 ▼9.12 |
Dashboard /wp-admin | 2,268 ▲80 | 4.84 ▼0.09 | 103.74 ▼4.92 | 38.74 ▼0.36 |
Posts /wp-admin/edit.php | 2,148 ▲59 | 1.99 ▼0.03 | 36.30 ▲0.26 | 35.02 ▲1.91 |
Add New Post /wp-admin/post-new.php | 1,581 ▲48 | 23.28 ▲0.04 | 603.12 ▼84.06 | 48.42 ▼14.79 |
Media Library /wp-admin/upload.php | 1,450 ▲62 | 4.18 ▼0.04 | 96.42 ▼19.60 | 40.02 ▼7.07 |
Configuration /wp-admin/admin.php?page=jspsl-configuration | 1,271 | 1.71 | 25.93 | 25.67 |
Import/Export (Pro) /wp-admin/admin.php?page=jspsl-import-export | 903 | 2.04 | 23.34 | 35.37 |
JSP Store Locator /wp-admin/admin.php?page=jspsl-plugin | 1,133 | 1.71 | 25.75 | 31.21 |
Add New Categories /wp-admin/admin.php?page=jspsl-add-new-categories | 850 | 2.06 | 24.01 | 24.95 |
Search Hit (Pro) /wp-admin/admin.php?page=jspsl-search-hit | 836 | 2.06 | 25.09 | 21.98 |
Branch Hit (Pro) /wp-admin/admin.php?page=jspsl-branch-hit | 839 | 2.06 | 24.35 | 20.93 |
Manage Stores /wp-admin/admin.php?page=jspsl-manage-stores | 1,133 | 1.71 | 25.69 | 31.20 |
Add New Store /wp-admin/admin.php?page=jspsl-add-new-store | 1,167 | 2.19 | 26.25 | 28.24 |
Google Places (Pro) /wp-admin/admin.php?page=jspsl-google-places | 896 | 2.04 | 25.33 | 31.15 |
Categories /wp-admin/admin.php?page=jspsl-categories | 1,046 | 2.07 | 26.22 | 29.80 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.02MB] 25% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
Please fix the following items
- This plugin cannot be uninstalled
- > Notice in wp-content/plugins/jsp-store-locator/public/class_jsp_store_locator_public.php+12
Undefined index: map_type
- Zombie tables were found after uninstall: 5 tables
- wp_jsp_store_categories
- wp_jsp_map_language
- wp_jsp_configuration_table
- wp_jsp_stores
- wp_jsp_mapstyle
- This plugin did not uninstall successfully, leaving 6 options in the database
- theysaidso_admin_options
- db_upgraded
- widget_recent-comments
- can_compress_scripts
- widget_theysaidso_widget
- widget_recent-posts
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 errors were triggered by the plugin
- 10 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=jspsl-categories
- > Notice in wp-content/plugins/jsp-store-locator/public/class_jsp_store_locator_public.php+12
Undefined index: map_type
- 10 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=jspsl-categories
- > User notice in wp-includes/functions.php+5905
Function 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 custom_style handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
- > GET request to /wp-admin/admin.php?page=jspsl-add-new-store
- > Notice in wp-content/plugins/jsp-store-locator/admin/class_jsp_store_locator_admin.php+304
Undefined property: stdClass::$CATEGORY_ID
- > GET request to /wp-admin/admin.php?page=jspsl-add-new-store
- > Notice in wp-content/plugins/jsp-store-locator/admin/class_jsp_store_locator_admin.php+368
Undefined property: stdClass::$CONTACT_PERSON
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=jspsl-add-new-store
- > Notice in wp-content/plugins/jsp-store-locator/admin/class_jsp_store_locator_admin.php+380
Undefined variable: config
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=jspsl-add-new-store
- > Notice in wp-content/plugins/jsp-store-locator/admin/class_jsp_store_locator_admin.php+380
Trying to get property 'GENDER' of non-object
- > GET request to /wp-admin/admin.php?page=jspsl-add-new-store
- > Notice in wp-content/plugins/jsp-store-locator/admin/class_jsp_store_locator_admin.php+390
Undefined property: stdClass::$EMAIL
- > GET request to /wp-admin/admin.php?page=jspsl-add-new-store
- > Notice in wp-content/plugins/jsp-store-locator/admin/class_jsp_store_locator_admin.php+402
Undefined property: stdClass::$WEBSITE
- > GET request to /wp-admin/admin.php?page=jspsl-add-new-store
- > Notice in wp-content/plugins/jsp-store-locator/admin/class_jsp_store_locator_admin.php+410
Undefined property: stdClass::$CONTACT_NUMBER
- > GET request to /wp-admin/admin.php?page=jspsl-add-new-store
- > Notice in wp-content/plugins/jsp-store-locator/admin/class_jsp_store_locator_admin.php+418
Undefined property: stdClass::$DESCRIPTION
- > GET request to /wp-admin/admin.php?page=jspsl-add-new-store
- > Notice in wp-content/plugins/jsp-store-locator/admin/class_jsp_store_locator_admin.php+430
Undefined property: stdClass::$FACEBOOK
- > GET request to /wp-admin/admin.php?page=jspsl-add-new-store
- > Notice in wp-content/plugins/jsp-store-locator/admin/class_jsp_store_locator_admin.php+438
Undefined property: stdClass::$TWITTER
SRP 0% from 2 tests
🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please take a closer look at the following
- 1× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/jsp-store-locator/public/class_jsp_store_locator_public.php
- 4× PHP files trigger server errors when accessed directly:
- > PHP Warning
Use of undefined constant PLUGIN_PATH - assumed 'PLUGIN_PATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/jsp-store-locator/admin/css/class_jsp_store_locator_admin_bk.php on line 3
- > PHP Warning
require_once(PLUGIN_PATHadmin/class_List_Table.php): failed to open stream: No such file or directory in wp-content/plugins/jsp-store-locator/admin/css/class_jsp_store_locator_admin_bk.php on line 3
- > PHP Fatal error
require_once(): Failed opening required 'PLUGIN_PATHadmin/class_List_Table.php' (include_path='.:/usr/share/php') in wp-content/plugins/jsp-store-locator/admin/css/class_jsp_store_locator_admin_bk.php on line 3
- > PHP Fatal error
Uncaught Error: Call to undefined function plugin_dir_path() in wp-content/plugins/jsp-store-locator/jsp-store-locator.php:14
- > PHP Warning
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
There were no browser issues found
Optimizations
Plugin configuration 96% from 29 tests
readme.txt Passed 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
5 plugin tags: geotagging, regional maps, maps locations, street maps, map directions
jsp-store-locator/jsp-store-locator.php 92% from 13 tests
The principal PHP file in "JSP Store Locator" v. 1.0 is loaded by WordPress automatically on each request
The following require your attention:
- Description: Please don't use more than 140 characters for the plugin description (currently 280 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 plugin6,958 lines of code in 21 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
CSS | 8 | 1,647 | 134 | 3,428 |
PHP | 8 | 2,106 | 87 | 3,101 |
JavaScript | 5 | 127 | 97 | 429 |
PHP code Passed 2 tests
A short review of cyclomatic complexity and code structure
Everything seems fine, there were no complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.25 |
Average class complexity | 27.75 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 60.00 |
Average method complexity | 3.67 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 36.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 8 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 8 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 80 | |
▷ Static methods | 2 | 2.50% |
▷ Public methods | 79 | 98.75% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 1 | 1.25% |
Functions | 2 | |
▷ Named functions | 2 | 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 50% from 2 tests
Image compression 50% from 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
17 PNG files occupy 1.51MB with 0.80MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
images/pointer.png | 0.96KB | 0.86KB | ▼ 11.34% |
images/delete.png | 0.71KB | 0.46KB | ▼ 34.79% |
images/theme2.png | 3.09KB | 0.60KB | ▼ 80.64% |
screenshot-2.png | 239.80KB | 99.24KB | ▼ 58.62% |
images/pointertheme3.png | 2.87KB | 0.57KB | ▼ 80.22% |