76% precios-bitcoin-criptomonedas

Code Review | Free plugin with prices of Bitcoin, Ethereum, Cryptocurrencies in Wordpress

WordPress plugin Free plugin with prices of Bitcoin, Ethereum, Cryptocurrencies in Wordpress scored76%from 54 tests.

About plugin

  • Plugin page: precios-bitcoin-c...
  • Plugin version: 2.2
  • PHP compatiblity: 7.1+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.2.3-6.0.2
  • WordPress version: 6.3.1
  • First release: Nov 28, 2019
  • Latest release: Sep 14, 2022
  • Number of updates: 40
  • Update frequency: every 25.6 days
  • Top authors: coinmotion (100%)

Code review

54 tests

User reviews

2 reviews

Install metrics

200+ active /12,012 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
The plugin installed successfully, without throwing any errors or notices

Server metrics [RAM: ▲0.07MB] [CPU: ▲32.42ms] Passed 4 tests

This is a short check of server-side resources used by Free plugin with prices of Bitcoin, Ethereum, Cryptocurrencies in Wordpress
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /3.55 ▲0.0968.24 ▲28.39
Dashboard /wp-admin3.37 ▲0.0783.20 ▲35.17
Posts /wp-admin/edit.php3.49 ▲0.13106.06 ▲55.03
Add New Post /wp-admin/post-new.php5.95 ▲0.07129.21 ▲31.52
Media Library /wp-admin/upload.php3.29 ▲0.0669.35 ▲34.59

Server storage [IO: ▲0.55MB] [DB: ▲0.00MB] Passed 3 tests

Filesystem and database footprint
No storage issues were detected
Filesystem: 72 new files
Database: no new tables, 12 new options
New WordPress options
widget_recent-comments
widget_coinmotion_widget_currency_conversor
can_compress_scripts
coinmotion_anchor
widget_coinmotion_widget_currency_details
widget_coinmotion_widget_0
db_upgraded
widget_coinmotion_widget_rate_period
widget_theysaidso_widget
theysaidso_admin_options
...

Browser metrics Passed 4 tests

Free plugin with prices of Bitcoin, Ethereum, Cryptocurrencies in Wordpress: an overview of browser usage
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,821 ▲8614.78 ▲0.491.79 ▼0.0436.55 ▼5.41
Dashboard /wp-admin2,220 ▲315.90 ▲0.96113.45 ▼5.3242.58 ▲0.84
Posts /wp-admin/edit.php2,103 ▲112.04 ▲0.0540.20 ▲0.5434.93 ▼2.66
Add New Post /wp-admin/post-new.php1,540 ▼123.22 ▲5.08653.32 ▲25.3847.24 ▲3.35
Media Library /wp-admin/upload.php1,396 ▲54.23 ▲0.0393.06 ▼5.7340.48 ▼1.59

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
  • This plugin did not uninstall successfully, leaving 6 options in the database
    • widget_recent-comments
    • widget_theysaidso_widget
    • db_upgraded
    • widget_recent-posts
    • can_compress_scripts
    • 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
The smoke test was a success, however most plugin functionality was not tested

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 fix the following
  • 1× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/precios-bitcoin-criptomonedas/coinmotion.php
  • 10× GET requests to PHP files trigger server-side errors or Error 500 responses:
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/precios-bitcoin-criptomonedas/includes/class.coinmotion_widget_currency_details.php:51
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/precios-bitcoin-criptomonedas/includes/class.coinmotion_widget_currency_conversor.php:39
    • > PHP Warning
      include_once(): Failed opening 'COINMOTION__PLUGIN_DIR/includes/class.coinmotion_values.php' for inclusion (include_path='.:/usr/share/php') in wp-content/plugins/precios-bitcoin-criptomonedas/admin/coinmotion.php on line 3
    • > PHP Warning
      Use of undefined constant COINMOTION__PLUGIN_DIR - assumed 'COINMOTION__PLUGIN_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/precios-bitcoin-criptomonedas/admin/coinmotion.php on line 3
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/precios-bitcoin-criptomonedas/includes/class.coinmotion_widget_0.php:2
    • > PHP Fatal error
      Uncaught Error: Call to undefined function coinmotion_get_widget_data() in wp-content/plugins/precios-bitcoin-criptomonedas/admin/coinmotion.php:7
    • > PHP Fatal error
      Uncaught Error: Call to undefined function __() in wp-content/plugins/precios-bitcoin-criptomonedas/includes/settings.php:6
    • > PHP Warning
      include_once(COINMOTION__PLUGIN_DIR/includes/class.coinmotion_values.php): failed to open stream: No such file or directory in wp-content/plugins/precios-bitcoin-criptomonedas/admin/coinmotion.php on line 3
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/precios-bitcoin-criptomonedas/includes/class.coinmotion_widget_rate_period.php:88
    • > PHP Fatal error
      Uncaught Error: Call to undefined function __() in wp-content/plugins/precios-bitcoin-criptomonedas/admin/sidebar.inc.php:5

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
No browser errors were detected

Optimizations

Plugin configuration 76% from 29 tests

readme.txt 88% from 16 tests

The readme.txt file uses markdown syntax to describe your plugin to the world
These attributes need to be fixed:
  • Screenshots: Add descriptions for screenshots #3, #4, #5, #6, #7 in precios-bitcoin-criptomonedas/assets to your readme.txt
  • Contributors: The plugin contributors field is not present
You can look at the official readme.txt

precios-bitcoin-criptomonedas/coinmotion.php 62% from 13 tests

"Free plugin with prices of Bitcoin, Ethereum, Cryptocurrencies in Wordpress" version 2.2's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
Please make the necessary changes and fix the following:
  • Domain Path: Please prefix the domain path with a forward slash character ("/languages")
  • Description: Keep the plugin description shorter than 140 characters (currently 149 characters long)
  • Domain Path: You should use only dashes and lowercase characters for the domain path ("languages")
  • Text Domain: Since WordPress version 4.6 the text domain is optional; if specified, it must be the same as the plugin slug
  • Main file name: Please rename the main PHP file in this plugin to the plugin slug ("precios-bitcoin-criptomonedas.php" instead of "coinmotion.php")

Code Analysis Passed 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
Everything looks great! No dangerous files found in this plugin6,207 lines of code in 43 files:
LanguageFilesBlank linesComment linesLines of code
PO File101,1911,6733,004
PHP153761712,862
SVG1627244
CSS115097
JavaScript1060

PHP code Passed 2 tests

Analyzing cyclomatic complexity and code structure
Everything seems fine, there were no complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.28
Average class complexity23.00
▷ Minimum class complexity5.00
▷ Maximum class complexity41.00
Average method complexity5.81
▷ Minimum method complexity1.00
▷ Maximum method complexity22.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes7
▷ Abstract classes00.00%
▷ Concrete classes7100.00%
▷ Final classes00.00%
Methods32
▷ Static methods39.38%
▷ Public methods2990.62%
▷ Protected methods00.00%
▷ Private methods39.38%
Functions42
▷ Named functions42100.00%
▷ Anonymous functions00.00%
Constants50
▷ Global constants3672.00%
▷ Class constants1428.00%
▷ Public constants14100.00%

Plugin size 50% from 2 tests

Image compression 50% from 2 tests

Using a strong compression for your PNG files is a great way to speed-up your plugin
1 PNG file occupies 0.00MB with 0.00MB in potential savings
Potential savings
Compression of 1 random PNG file using pngquant
FileSize - originalSize - compressedSavings
(invalid) admin/img/coinmotion-logo-small.png3.17KB0.00KB▼ 100.00%