Benchmarks
Plugin footprint 40% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
These installer errors require your attention
- Install procedure had errors
- > Error in wp-content/plugins/cartboss/classes/class-cartboss-utils.php+217
Uncaught Error: Call to undefined function wc_coupons_enabled() in wp-content/plugins/cartboss/classes/class-cartboss-utils.php:217
Stack trace:
#0 wp-content/plugins/cartboss/includes/class-cartboss-activator.php(19): Cartboss_Utils::enable_coupons()
#1 wp-content/plugins/cartboss/cartboss.php(57): Cartboss_Activator::activate()
#2 wp-includes/class-wp-hook.php(310): activate_cartboss()
#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/includes/plugin.php(693): do_action()
Server metrics [RAM: ▼0.00MB] [CPU: ▼8.27ms] Passed 4 tests
An overview of server-side resources used by SMS Abandoned Cart Recovery ✦ CartBoss
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.47 ▲0.01 | 38.52 ▼1.46 |
Dashboard /wp-admin | 3.31 ▼0.03 | 41.83 ▼21.62 |
Posts /wp-admin/edit.php | 3.36 ▲0.01 | 44.37 ▼2.32 |
Add New Post /wp-admin/post-new.php | 5.89 ▲0.01 | 87.53 ▼7.66 |
Media Library /wp-admin/upload.php | 3.23 ▲0.00 | 33.71 ▼0.40 |
Server storage [IO: ▲1.90MB] [DB: ▲0.07MB] Passed 3 tests
Input-output and database impact of this plugin
This plugin installed successfully
Filesystem: 404 new files
Database: 2 new tables, 19 new options
New tables |
---|
wp_cb_consumed_session_tokens |
wp_cb_carts |
New WordPress options |
---|
cb_marketing_checkbox_label |
cb_api_key |
widget_theysaidso_widget |
cb_marketing_checkbox_enabled |
db_upgraded |
cb_latest_version |
cb_is_valid_api_key |
cb_ignored_roles |
theysaidso_admin_options |
cb_has_balance |
... |
Browser metrics Passed 4 tests
This is an overview of browser requirements for SMS Abandoned Cart Recovery ✦ CartBoss
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,800 ▲54 | 13.22 ▼1.53 | 4.62 ▲2.79 | 43.54 ▲0.12 |
Dashboard /wp-admin | 2,206 ▲18 | 5.86 ▲0.01 | 106.54 ▼10.75 | 39.55 ▼2.94 |
Posts /wp-admin/edit.php | 2,089 ▼0 | 2.07 ▲0.08 | 38.84 ▲2.72 | 34.22 ▼2.62 |
Add New Post /wp-admin/post-new.php | 1,533 ▲4 | 23.27 ▲4.92 | 649.23 ▲19.57 | 50.76 ▼10.36 |
Media Library /wp-admin/upload.php | 1,388 ▼3 | 4.43 ▲0.26 | 95.78 ▼4.68 | 41.77 ▼2.01 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.07MB] 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 2 tables in the database
- wp_cb_carts
- wp_cb_consumed_session_tokens
- Zombie WordPress options were found after uninstall: 19 options
- cb_has_balance
- widget_recent-comments
- cb_balance
- cb_cron_timestamp
- cb_last_sync_at
- cb_marketing_checkbox_enabled
- cb_phone_on_top
- theysaidso_admin_options
- cb_ignored_roles
- cb_last_ping_at
- ...
Smoke tests 50% 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 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please take a closer look at the following
- 1× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/cartboss/public/partials/cartboss-public-display.php
- 147× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'Symfony\\Component\\Serializer\\Encoder\\DecoderInterface' not found in wp-content/plugins/cartboss/vendor/symfony/serializer/Encoder/ContextAwareDecoderInterface.php:19
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\Serializer\\Exception\\UnexpectedValueException' not found in wp-content/plugins/cartboss/vendor/symfony/serializer/Exception/PartialDenormalizationException.php:17
- > PHP Fatal error
Uncaught Error: Interface 'League\\Uri\\IPv4Calculators\\IPv4Calculator' not found in wp-content/plugins/cartboss/vendor/league/uri-components/src/IPv4Calculators/GMPCalculator.php:32
- > PHP Fatal error
Uncaught Error: Class 'League\\Uri\\Components\\Component' not found in wp-content/plugins/cartboss/vendor/league/uri-components/src/Components/Fragment.php:28
- > PHP Fatal error
Uncaught Error: Interface 'League\\Uri\\Contracts\\UriInterface' not found in wp-content/plugins/cartboss/vendor/league/uri/src/Uri.php:74
- > PHP Fatal error
Uncaught Error: Interface 'Symfony\\Component\\PropertyInfo\\PropertyDescriptionExtractorInterface' not found in wp-content/plugins/cartboss/vendor/symfony/property-info/Extractor/PhpDocExtractor.php:32
- > PHP Fatal error
Uncaught Error: Interface 'Symfony\\Component\\String\\Inflector\\InflectorInterface' not found in wp-content/plugins/cartboss/vendor/symfony/string/Inflector/EnglishInflector.php:14
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\PropertyAccess\\Exception\\AccessException' not found in wp-content/plugins/cartboss/vendor/symfony/property-access/Exception/NoSuchIndexException.php:19
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\Serializer\ormalizer\\AbstractObjectNormalizer' not found in wp-content/plugins/cartboss/vendor/symfony/serializer/Normalizer/ObjectNormalizer.php:29
- > PHP Fatal error
Uncaught Error: Interface 'Stringable' not found in wp-content/plugins/cartboss/vendor/symfony/polyfill-php80/PhpToken.php:19
- > PHP Fatal error
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 93% from 29 tests
readme.txt 88% from 16 tests
The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
These attributes need your attention:
- Screenshots: These screenshots need descriptions #1, #2, #3, #4, #5 in cartboss/assets to your readme.txt
- Requires php: Version format is invalid
cartboss/cartboss.php Passed 13 tests
The main file in "SMS Abandoned Cart Recovery ✦ CartBoss" v. 4.0.2 serves as a complement to information provided in readme.txt and as the entry point to the plugin
95 characters long description:
Send abandoned cart notifications, offer discounts and special offers - all with text messages.
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
Success! There were no dangerous files found in this plugin40,179 lines of code in 372 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 317 | 6,302 | 12,326 | 36,250 |
JSON | 20 | 0 | 0 | 2,024 |
Markdown | 21 | 510 | 0 | 1,196 |
JavaScript | 7 | 84 | 23 | 475 |
XSD | 1 | 14 | 0 | 94 |
CSS | 3 | 15 | 7 | 73 |
YAML | 2 | 15 | 0 | 64 |
SVG | 1 | 0 | 0 | 3 |
PHP code Passed 2 tests
This plugin's cyclomatic complexity and code structure detailed below
There were no cyclomatic complexity issued detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.50 |
Average class complexity | 13.74 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 173.00 |
Average method complexity | 3.31 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 64.00 |
Code structure | ||
---|---|---|
Namespaces | 41 | |
Interfaces | 64 | |
Traits | 5 | |
Classes | 227 | |
▷ Abstract classes | 13 | 5.73% |
▷ Concrete classes | 214 | 94.27% |
▷ Final classes | 65 | 30.37% |
Methods | 1,859 | |
▷ Static methods | 386 | 20.76% |
▷ Public methods | 1,544 | 83.06% |
▷ Protected methods | 55 | 2.96% |
▷ Private methods | 260 | 13.99% |
Functions | 120 | |
▷ Named functions | 82 | 68.33% |
▷ Anonymous functions | 38 | 31.67% |
Constants | 471 | |
▷ Global constants | 14 | 2.97% |
▷ Class constants | 457 | 97.03% |
▷ Public constants | 345 | 75.49% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
3 PNG files occupy 0.11MB with 0.04MB in potential savings
Potential savings
Compression of 3 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/assets/logo.png | 46.33KB | 26.92KB | ▼ 41.90% |
admin/assets/phone-on-top.png | 24.71KB | 12.73KB | ▼ 48.50% |
admin/assets/marketing-consent.png | 40.87KB | 27.90KB | ▼ 31.72% |