Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Install script ran successfully
Server metrics [RAM: ▲0.00MB] [CPU: ▼1.47ms] Passed 4 tests
A check of server-side resources used by Wirecard WooCommerce Extension
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.46 ▲0.00 | 39.94 ▲2.60 |
Dashboard /wp-admin | 3.31 ▲0.00 | 44.68 ▼3.03 |
Posts /wp-admin/edit.php | 3.36 ▲0.00 | 44.28 ▼4.22 |
Add New Post /wp-admin/post-new.php | 5.89 ▲0.00 | 89.35 ▼0.57 |
Media Library /wp-admin/upload.php | 3.23 ▲0.00 | 36.21 ▲1.93 |
Server storage [IO: ▲7.70MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
The plugin installed successfully
Filesystem: 886 new files
Database: no new tables, 6 new options
New WordPress options |
---|
can_compress_scripts |
widget_recent-comments |
widget_theysaidso_widget |
theysaidso_admin_options |
db_upgraded |
widget_recent-posts |
Browser metrics Passed 4 tests
A check of browser resources used by Wirecard WooCommerce Extension
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,800 ▲65 | 14.48 ▼0.28 | 1.71 ▼0.13 | 45.02 ▲2.95 |
Dashboard /wp-admin | 2,209 ▲17 | 5.85 ▲0.86 | 97.07 ▼14.20 | 41.68 ▼7.70 |
Posts /wp-admin/edit.php | 2,092 ▲3 | 2.04 ▲0.04 | 36.11 ▼4.67 | 32.20 ▼3.32 |
Add New Post /wp-admin/post-new.php | 1,537 ▲4 | 23.34 ▼0.02 | 678.23 ▼18.52 | 61.54 ▲8.47 |
Media Library /wp-admin/upload.php | 1,388 ▼0 | 4.20 ▲0.04 | 92.82 ▼11.74 | 41.52 ▼5.94 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
The following items require your attention
- This plugin did not uninstall successfully, leaving 6 options in the database
- widget_recent-comments
- can_compress_scripts
- db_upgraded
- widget_recent-posts
- widget_theysaidso_widget
- theysaidso_admin_options
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Even though everything seems fine, this is not an exhaustive test
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 take a closer look at the following
- 4× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/wirecard-woocommerce-extension/vendor/whichbrowser/parser/bin/update-profiles.php
- > /wp-content/plugins/wirecard-woocommerce-extension/vendor/whichbrowser/parser/bin/update-chrome.php
- > /wp-content/plugins/wirecard-woocommerce-extension/vendor/whichbrowser/parser/bin/update-browser-ids.php
- > /wp-content/plugins/wirecard-woocommerce-extension/vendor/wirecard/extension-credentials-module/example/example_with_facade.php
- 419× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractHandler' not found in wp-content/plugins/wirecard-woocommerce-extension/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php:26
- > PHP Fatal error
Uncaught Error: Interface 'Wirecard\\PaymentSdk\\Response\\ResponseDataInterface' not found in wp-content/plugins/wirecard-woocommerce-extension/vendor/wirecard/payment-sdk-php/src/Response/XmlResponseData.php:22
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\GroupHandler' not found in wp-content/plugins/wirecard-woocommerce-extension/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php:20
- > PHP Fatal error
Uncaught Error: Interface 'Monolog\\Formatter\\FormatterInterface' not found in wp-content/plugins/wirecard-woocommerce-extension/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php:21
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Promise\\TaskQueueInterface' not found in wp-content/plugins/wirecard-woocommerce-extension/vendor/guzzlehttp/promises/src/TaskQueue.php:13
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/wirecard-woocommerce-extension/vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php:25
- > PHP Fatal error
Uncaught Error: Class 'Wirecard\\PaymentSdk\\Response\\Response' not found in wp-content/plugins/wirecard-woocommerce-extension/vendor/wirecard/payment-sdk-php/src/Response/InteractionResponse.php:22
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/wirecard-woocommerce-extension/vendor/guzzlehttp/psr7/src/NoSeekStream.php:9
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/wirecard-woocommerce-extension/vendor/guzzlehttp/psr7/src/BufferStream.php:14
- > PHP Fatal error
Uncaught Error: Class 'Http\\Message\\Encoding\\FilteredStream' not found in wp-content/plugins/wirecard-woocommerce-extension/vendor/php-http/message/src/Encoding/GzipDecodeStream.php:13
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Everything seems fine on the user side
Optimizations
Plugin configuration 86% 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
Attributes that need to be fixed:
- Tags: There are too many tags (23 tag instead of maximum 10)
wirecard-woocommerce-extension/woocommerce-wirecard-payment-gateway.php 77% from 13 tests
The main PHP script in "Wirecard WooCommerce Extension" version 3.3.4 is automatically included on every request by WordPress
The following require your attention:
- Git Repository: Please remove the Git repository from this plugin
- Requires at least: Required version must be the same as the one declared in readme.txt ("5.0.3" instead of "3.3.4")
- Main file name: It is recommended to name the main PHP file as the plugin slug ("wirecard-woocommerce-extension.php" instead of "woocommerce-wirecard-payment-gateway.php")
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of file extensions present in this plugin and a short test that no dangerous files are bundled with this plugin
Good job! No executable or dangerous file extensions detected110,046 lines of code in 816 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 691 | 12,812 | 25,260 | 93,985 |
PO File | 12 | 3,404 | 6,576 | 6,000 |
Markdown | 44 | 2,216 | 0 | 5,427 |
JSON | 37 | 10 | 0 | 3,449 |
JavaScript | 3 | 77 | 315 | 478 |
YAML | 12 | 37 | 21 | 242 |
XML | 10 | 11 | 4 | 220 |
CSS | 3 | 24 | 19 | 167 |
XSD | 1 | 4 | 0 | 55 |
Dockerfile | 1 | 8 | 0 | 10 |
make | 1 | 4 | 0 | 9 |
Bourne Shell | 1 | 1 | 0 | 4 |
PHP code 50% from 2 tests
This plugin's cyclomatic complexity and code structure detailed below
These items need your attention
- Cyclomatic complexity of methods has to be reduced to less than 100 (currently 107)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.38 |
Average class complexity | 11.27 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 479.00 |
Average method complexity | 2.94 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 107.00 |
Code structure | ||
---|---|---|
Namespaces | 90 | |
Interfaces | 58 | |
Traits | 41 | |
Classes | 501 | |
▷ Abstract classes | 17 | 3.39% |
▷ Concrete classes | 484 | 96.61% |
▷ Final classes | 82 | 16.94% |
Methods | 3,323 | |
▷ Static methods | 250 | 7.52% |
▷ Public methods | 2,481 | 74.66% |
▷ Protected methods | 301 | 9.06% |
▷ Private methods | 541 | 16.28% |
Functions | 394 | |
▷ Named functions | 138 | 35.03% |
▷ Anonymous functions | 256 | 64.97% |
Constants | 614 | |
▷ Global constants | 53 | 8.63% |
▷ Class constants | 561 | 91.37% |
▷ Public constants | 561 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
12 PNG files occupy 0.04MB with 0.01MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/images/ideal.png | 2.45KB | 1.48KB | ▼ 39.75% |
assets/images/invoice.png | 1.00KB | 0.98KB | ▼ 2.15% |
assets/images/sofortbanking.png | 1.60KB | 0.68KB | ▼ 57.68% |
assets/images/masterpass.png | 2.13KB | 1.56KB | ▼ 27.03% |
assets/images/paypal.png | 2.76KB | 2.02KB | ▼ 26.80% |