Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
Install script ran successfully
Server metrics [RAM: ▲1.41MB] [CPU: ▲15.63ms] Passed 4 tests
Analyzing server-side resources used by Directory Listings WordPress plugin - uListing
This plugin does not affect your website's performance
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.79 ▲1.33 | 56.08 ▲13.07 |
Dashboard /wp-admin | 4.77 ▲1.47 | 69.42 ▲17.94 |
Posts /wp-admin/edit.php | 4.83 ▲1.47 | 74.01 ▲23.32 |
Add New Post /wp-admin/post-new.php | 7.50 ▲1.61 | 100.25 ▲10.34 |
Media Library /wp-admin/upload.php | 4.61 ▲1.38 | 57.94 ▲21.16 |
Add New Plan /wp-admin/post-new.php?post_type=stm_pricing_plans | 4.79 | 61.69 |
Settings /wp-admin/admin.php?page=settings-page | 4.65 | 52.60 |
/wp-admin/admin.php?page=stm_user_plans_edit | 4.66 | 48.95 |
Status /wp-admin/admin.php?page=status-page | 4.60 | 50.73 |
Listings /wp-admin/edit.php?post_type=listing | 4.76 | 58.66 |
Regions /wp-admin/edit-tags.php?taxonomy=listing-region&post_type=listing | 4.69 | 55.34 |
Upgrade /wp-admin/admin.php?page=ulisting-upgrade | 4.71 | 227.17 |
Saved Searches /wp-admin/admin.php?page=saved-searches-page | 4.60 | 54.21 |
Demo Import /wp-admin/admin.php?page=demo-import-page | 4.60 | 45.59 |
/wp-admin/admin.php?page=stm_user_plans_view | 4.58 | 45.55 |
Server storage [IO: ▲14.65MB] [DB: ▲0.04MB] Passed 3 tests
How much does this plugin use your filesystem and database?
There were no storage issued detected upon installing this plugin
Filesystem: 1,182 new files
Database: 14 new tables, 25 new options
New tables |
---|
wp_ulisting_search |
wp_ulisting_listing_type_relationships |
wp_ulisting_user_plan_meta |
wp_ulisting_attribute_term_relationships |
wp_ulisting_listing_attribute_relationships |
wp_ulisting_attribute_relationsh_meta |
wp_ulisting_payment |
wp_ulisting_payment_meta |
wp_ulisting_listing_user_relations |
wp_ulisting_listing_plan |
... |
New WordPress options |
---|
stm_current_map_type |
ulisting-version |
theysaidso_admin_options |
ulisting_installed |
ulisting_demo_import_redirect |
widget_recent-comments |
widget_theysaidso_widget |
ulisting_listing_cron_time |
stm_current_map_api_key |
ulisting_category_limit |
... |
Browser metrics Passed 4 tests
A check of browser resources used by Directory Listings WordPress plugin - uListing
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,668 ▲897 | 23.17 ▲8.74 | 205.42 ▲203.20 | 44.11 ▲2.24 |
Dashboard /wp-admin | 2,618 ▲427 | 7.62 ▲2.74 | 162.98 ▲62.53 | 96.88 ▲56.79 |
Posts /wp-admin/edit.php | 2,543 ▲457 | 5.19 ▲3.15 | 69.62 ▲29.88 | 37.84 ▼0.75 |
Add New Post /wp-admin/post-new.php | 1,929 ▲415 | 21.32 ▲3.80 | 723.65 ▲30.06 | 210.62 ▲155.85 |
Media Library /wp-admin/upload.php | 1,690 ▲299 | 6.35 ▲2.18 | 93.62 ▼7.87 | 106.00 ▲61.98 |
Add New Plan /wp-admin/post-new.php?post_type=stm_pricing_plans | 2,374 | 8.47 | 169.78 | 102.48 |
Settings /wp-admin/admin.php?page=settings-page | 3,184 | 9.53 | 182.24 | 67.37 |
/wp-admin/admin.php?page=stm_user_plans_edit | 1,551 | 10.11 | 94.62 | 35.19 |
Status /wp-admin/admin.php?page=status-page | 1,517 | 10.24 | 103.74 | 43.27 |
Listings /wp-admin/edit.php?post_type=listing | 1,996 | 5.63 | 77.57 | 100.62 |
Regions /wp-admin/edit-tags.php?taxonomy=listing-region&post_type=listing | 2,490 | 10.70 | 166.19 | 184.35 |
Upgrade /wp-admin/admin.php?page=ulisting-upgrade | 1,430 | 6.78 | 74.59 | 50.60 |
Saved Searches /wp-admin/admin.php?page=saved-searches-page | 1,583 | 10.49 | 98.80 | 50.43 |
Demo Import /wp-admin/admin.php?page=demo-import-page | 1,494 | 10.12 | 104.65 | 35.78 |
/wp-admin/admin.php?page=stm_user_plans_view | 993 | 4.03 | 29.60 | 29.63 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.04MB] 50% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
It is recommended to fix the following
- The uninstall procedure failed, leaving 14 tables in the database
- wp_ulisting_attribute_term_relationships
- wp_ulisting_attribute_relationsh_meta
- wp_ulisting_listing_attribute_relationships
- wp_ulisting_user_plan
- wp_ulisting_listing_plan
- wp_ulisting_payment
- wp_ulisting_search
- wp_ulisting_page_statistics
- wp_ulisting_listing_type_relationships
- wp_ulisting_listing_user_relations
- ...
- This plugin does not fully uninstall, leaving 25 options in the database
- uListing_inserted_blog
- ulisting_demo_import_redirect
- widget_recent-posts
- widget_recent-comments
- ulisting_canceled
- ulisting_listing_cron_time
- ulisting-db-version
- theysaidso_admin_options
- ulisting-saved-searches-install
- ulisting-version
- ...
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Smoke test failed, please fix the following
- > GET request to /wp-admin/admin.php?page=stm_user_plans_view
- > Notice in wp-content/plugins/ulisting/includes/lib/pricing-plan/includes/classes/StmUserPlan.php+160
Undefined variable: user_plan
- > GET request to /wp-admin/admin.php?page=stm_user_plans_view
- > Notice in wp-content/plugins/ulisting/includes/lib/pricing-plan/views/admin/user_plan/view.php+15
Trying to get property 'id' of non-object
- > GET request to /wp-admin/admin.php?page=stm_user_plans_view
- > Error in wp-content/plugins/ulisting/includes/lib/pricing-plan/views/admin/user_plan/view.php+23
Uncaught Error: Call to a member function getUser() on null in wp-content/plugins/ulisting/includes/lib/pricing-plan/views/admin/user_plan/view.php:23
Stack trace:
#0 wp-content/plugins/ulisting/includes/functions.php(37): include()
#1 wp-content/plugins/ulisting/includes/lib/pricing-plan/includes/classes/StmUserPlan.php(160): ulisting_render_template()
#2 wp-includes/class-wp-hook.php(310): uListing\Lib\PricingPlan\Classes\StmUserPlan->render_index_view()
#3 wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters()
#4 wp-includes/plugin.php(517): WP_Hook->do_action()
#5 wp-admin/admin.php(259): do_action()
#6 {main}
thrown
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
Almost there! Just fix the following items
- 12× GET requests to PHP files return non-empty strings (only 10 are shown):
- > /wp-content/plugins/ulisting/includes/lib/stripe/templates/stripe/stripe-form.php
- > /wp-content/plugins/ulisting/templates/listing/ulisting-category.php
- > /wp-content/plugins/ulisting/includes/lib/stripe/includes/classes/vender/stripe-php/build.php
- > /wp-content/plugins/ulisting/templates/email/saved-searches/notification-saved-searches-listing-list.php
- > /wp-content/plugins/ulisting/templates/components/fields/search.php
- > /wp-content/plugins/ulisting/templates/listing/ulisting-feature.php
- > /wp-content/plugins/ulisting/includes/admin/views/notices/pro_popup.php
- > /wp-content/plugins/ulisting/includes/lib/paypal-standard/templates/paypal-form.php
- > /wp-content/plugins/ulisting/templates/region/region-list-short-code.php
- > /wp-content/plugins/ulisting/templates/email/saved-searches/notification-saved-searches.php
- 586× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Warning
Use of undefined constant ULISTING_URL - assumed 'ULISTING_URL' (this will throw an Error in a future version of PHP) in wp-content/plugins/ulisting/includes/lib/stripe/stripe.php on line 3
- > PHP Fatal error
Uncaught Error: Class 'uListing\\Lib\\PricingPlan\\Classes\\StmUserPlan' not found in wp-content/plugins/ulisting/templates/account/my-plans/detail.php:11
- > PHP Fatal error
Uncaught Error: Class 'UlistingResponse' not found in wp-content/plugins/ulisting/includes/classes/vendor/wp-router/responses/class-wp-redirect-response.php:3
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/ulisting/includes/lib/stripe/includes/classes/vender/stripe-php/lib/EphemeralKey.php:18
- > PHP Fatal error
Uncaught Error: Class 'PayPal\\Common\\PayPalModel' not found in wp-content/plugins/ulisting/includes/lib/paypal/includes/classes/vender/paypal/rest-api-sdk-php/lib/PayPal/Api/TemplateData.php:36
- > PHP Warning
require_once(ULISTING_PATH/includes/lib/paypal/includes/classes/vender/autoload.php): failed to open stream: No such file or directory in wp-content/plugins/ulisting/includes/lib/paypal/autoload.php on line 2
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/ulisting/includes/lib/stripe/includes/classes/vender/stripe-php/lib/Subscription.php:35
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/ulisting/templates/profile/profile_form/style_1.php on line 3
- > PHP Fatal error
Uncaught Error: Class 'uListing\\Classes\\Vendor\\StmBaseModel' not found in wp-content/plugins/ulisting/includes/classes/StmComment.php:8
- > PHP Warning
Use of undefined constant ULISTING_PATH_LIB_PAYPAL_STANDARD - assumed 'ULISTING_PATH_LIB_PAYPAL_STANDARD' (this will throw an Error in a future version of PHP) in wp-content/plugins/ulisting/includes/lib/paypal-standard/autoload.php on line 2
- > PHP Warning
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
These are user-side errors you should fix
- > GET request to /wp-admin/post-new.php?post_type=stm_pricing_plans
- > Network (severe)
1/api/pricing-plan/form-data?pricing_plan_id=11 - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/admin.php?page=settings-page
- > Console-api (warning) in wp-content/plugins/ulisting/assets/js/admin/dist/app.js?ver=2.1.5+1:94364
Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props
- > GET request to /wp-admin/edit-tags.php?taxonomy=listing-region&post_type=listing
- > Console-api (severe) in unknown
https://maps.googleapis.com/maps/api/js?key=&libraries=places&callback=vueGoogleMapsInit 153:248 "You are using this API without a key. See https://developers.google.com/maps/documentation/javascript/error-messages?utm_source=maps_js&utm_medium=degraded&utm_campaign=billing#api-key-and-billing-errors"
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 94% from 16 tests
You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
These attributes need to be fixed:
- Screenshots: Add descriptions for screenshots #1, #10, #11, #12, #13, #14, #15, #16, #2, #3, #4, #5, #6, #7, #8, #9 in ulisting/assets to your readme.txt
ulisting/uListing.php 85% from 13 tests
The primary PHP file in "Directory Listings WordPress plugin - uListing" version 2.1.5 is used by WordPress to initiate all plugin functionality
Please take the time to fix the following:
- Main file name: It is recommended to name the main PHP file as the plugin slug ("ulisting.php" instead of "uListing.php")
- Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 207 characters long)
Code Analysis 5% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
These items require your attention
- Even if your plugin relies on executable files (for example a companion app), never distribute executable files with your plugin
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
- ☣ wp-content/plugins/ulisting/includes/lib/stripe/includes/classes/vender/stripe-php/data/ca-certificates.crt
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 613 | 8,795 | 25,105 | 54,015 |
JavaScript | 351 | 3,369 | 1,332 | 26,441 |
SVG | 15 | 0 | 0 | 24,064 |
CSS | 40 | 1,641 | 245 | 17,241 |
Markdown | 5 | 334 | 0 | 892 |
JSON | 5 | 0 | 0 | 205 |
XML | 2 | 8 | 0 | 64 |
HTML | 1 | 0 | 0 | 1 |
PHP code Passed 2 tests
An overview of cyclomatic complexity and code structure
There were no cyclomatic complexity issued detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.33 |
Average class complexity | 12.35 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 624.00 |
Average method complexity | 2.19 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 92.00 |
Code structure | ||
---|---|---|
Namespaces | 38 | |
Interfaces | 8 | |
Traits | 9 | |
Classes | 375 | |
▷ Abstract classes | 15 | 4.00% |
▷ Concrete classes | 360 | 96.00% |
▷ Final classes | 1 | 0.28% |
Methods | 3,727 | |
▷ Static methods | 1,027 | 27.56% |
▷ Public methods | 3,534 | 94.82% |
▷ Protected methods | 93 | 2.50% |
▷ Private methods | 100 | 2.68% |
Functions | 128 | |
▷ Named functions | 72 | 56.25% |
▷ Anonymous functions | 56 | 43.75% |
Constants | 466 | |
▷ Global constants | 29 | 6.22% |
▷ Class constants | 437 | 93.78% |
▷ Public constants | 437 | 100.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
59 PNG files occupy 0.64MB with 0.19MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/img/ulisting-logo-header.png | 2.76KB | 2.26KB | ▼ 18.12% |
includes/lib/stripe/assets/images/stripe.png | 3.19KB | 2.52KB | ▼ 21.17% |
assets/img/title.png | 2.64KB | 0.72KB | ▼ 72.86% |
assets/img/compare.png | 3.56KB | 2.23KB | ▼ 37.47% |
assets/img/socials/instagram.png | 1.25KB | 1.28KB | 0.00% |