56% wp-letsencrypt-ssl

Code Review | WP Encryption - One Click Free SSL Certificate & SSL / HTTPS Redirect to Force HTTPS, SSL Score

WordPress plugin WP Encryption - One Click Free SSL Certificate & SSL / HTTPS Redirect to Force HTTPS, SSL Score scored56%from 54 tests.

About plugin

  • Plugin page: wp-letsencrypt-ssl
  • Plugin version: 6.4.0
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.2-6.4
  • WordPress version: 6.3.1
  • First release: Nov 4, 2019
  • Latest release: Nov 14, 2023
  • Number of updates: 449
  • Update frequency: every 3.3 days
  • Top authors: gowebsmarty (100%)

Code review

54 tests

User reviews

960 reviews

Install metrics

60,000+ active /1,858,590 total downloads

Benchmarks

Plugin footprint 64% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
The plugin installed gracefully, with no errors

Server metrics [RAM: ▲5.56MB] [CPU: ▲22.13ms] 50% from 4 tests

This is a short check of server-side resources used by WP Encryption - One Click Free SSL Certificate & SSL / HTTPS Redirect to Force HTTPS, SSL Score
The following require your attention
  • CPU: The total CPU usage must kept under 500.00ms (currently 976.94ms on /wp-admin/admin.php?page=wp_encryption_log)
  • Extra RAM: Extra memory usage should kept under 5MB (currently 5.56MB on /wp-admin/admin.php?page=wp_encryption_faq)
PageMemory (MB)CPU Time (ms)
Home /9.19 ▲5.7379.86 ▲38.32
Dashboard /wp-admin9.21 ▲5.8773.95 ▲12.11
Posts /wp-admin/edit.php9.21 ▲5.8676.26 ▲24.96
Add New Post /wp-admin/post-new.php10.67 ▲4.78117.23 ▲14.24
Media Library /wp-admin/upload.php9.21 ▲5.9869.19 ▲37.21
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius9.2160.92
How-To Videos /wp-admin/admin.php?page=wp_encryption_howto_videos9.2160.49
Debug log /wp-admin/admin.php?page=wp_encryption_log9.21976.94
FAQ /wp-admin/admin.php?page=wp_encryption_faq9.2162.06

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

A short overview of filesystem and database impact
This plugin installed successfully
Filesystem: 253 new files
Database: no new tables, 12 new options
New WordPress options
wple_opts
can_compress_scripts
wple_have_cpanel
theysaidso_admin_options
fs_debug_mode
wple_version
db_upgraded
widget_recent-posts
widget_theysaidso_widget
fs_accounts
...

Browser metrics Passed 4 tests

WP Encryption - One Click Free SSL Certificate & SSL / HTTPS Redirect to Force HTTPS, SSL Score: an overview of browser usage
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,854 ▲10714.36 ▼0.291.77 ▲0.1532.09 ▼10.71
Dashboard /wp-admin2,256 ▲755.78 ▼0.1189.45 ▼20.8690.17 ▲49.28
Posts /wp-admin/edit.php2,162 ▲592.06 ▲0.0437.77 ▲0.5038.56 ▲6.60
Add New Post /wp-admin/post-new.php1,564 ▲3821.65 ▼1.64783.47 ▲86.7638.79 ▼17.78
Media Library /wp-admin/upload.php1,452 ▲494.29 ▲0.09108.64 ▲12.4175.69 ▲34.29
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius1,1101.8230.1727.20
How-To Videos /wp-admin/admin.php?page=wp_encryption_howto_videos3,67130.221,034.2095.21
Debug log /wp-admin/admin.php?page=wp_encryption_log8712.1028.1634.66
FAQ /wp-admin/admin.php?page=wp_encryption_faq1,0572.1028.6935.36

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

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
These items require your attention
  • This plugin cannot be uninstalled
    • > Notice in wp-content/plugins/wp-letsencrypt-ssl/freemius/includes/class-freemius.php+8486
    Undefined property: stdClass::$plugins
  • This plugin does not fully uninstall, leaving 10 options in the database
    • widget_recent-posts
    • db_upgraded
    • can_compress_scripts
    • theysaidso_admin_options
    • fs_accounts
    • widget_theysaidso_widget
    • fs_debug_mode
    • wple_opts
    • fs_active_plugins
    • widget_recent-comments

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
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
Almost there! Just fix the following items
  • 1× PHP files output non-empty strings when accessed directly via GET requests:
    • > /wp-content/plugins/wp-letsencrypt-ssl/wp-letsencrypt.php
  • 25× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'WPLEClient\\Exceptions\\LEException' not found in wp-content/plugins/wp-letsencrypt-ssl/lib/Exceptions/LEFunctionsException.php:38
    • > PHP Warning
      require_once(WPLE_DIRadmin/le_admin_page_wrapper.php): failed to open stream: No such file or directory in wp-content/plugins/wp-letsencrypt-ssl/admin/le_admin_pages.php on line 27
    • > PHP Warning
      require_once(WPLE_DIRclasses/le-advanced-scanner.php): failed to open stream: No such file or directory in wp-content/plugins/wp-letsencrypt-ssl/classes/le-scanner.php on line 12
    • > PHP Warning
      Use of undefined constant WPLE_DIR - assumed 'WPLE_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/wp-letsencrypt-ssl/classes/le-scanner.php on line 12
    • > PHP Fatal error
      require_once(): Failed opening required 'WPLE_DIRadmin/le_admin_page_wrapper.php' (include_path='.:/usr/share/php') in wp-content/plugins/wp-letsencrypt-ssl/admin/le_admin_pages.php on line 27
    • > PHP Fatal error
      Uncaught Error: Class 'WPLEClient\\Exceptions\\LEException' not found in wp-content/plugins/wp-letsencrypt-ssl/lib/Exceptions/LEOrderException.php:38
    • > PHP Warning
      Use of undefined constant WPLE_DIR - assumed 'WPLE_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/wp-letsencrypt-ssl/admin/le_admin_page_wrapper.php on line 27
    • > PHP Fatal error
      require_once(): Failed opening required 'WPLE_DIRclasses/le-trait.php' (include_path='.:/usr/share/php') in wp-content/plugins/wp-letsencrypt-ssl/classes/le-subdir-challenge.php on line 27
    • > PHP Warning
      Use of undefined constant WPLE_DIR - assumed 'WPLE_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/wp-letsencrypt-ssl/admin/le_admin_pages.php on line 27
    • > PHP Warning
      require_once(WPLE_DIRclasses/le-core.php): failed to open stream: No such file or directory in wp-content/plugins/wp-letsencrypt-ssl/admin/le_handlers.php on line 3

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
No browser errors were detected

Optimizations

Plugin configuration 90% from 29 tests

readme.txt Passed 16 tests

The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
9 plugin tags: force https, free ssl, ssl, ssl certificate, https redirect...

wp-letsencrypt-ssl/wp-letsencrypt.php 77% from 13 tests

The entry point to "WP Encryption - One Click Free SSL Certificate & SSL / HTTPS Redirect to Force HTTPS, SSL Score" version 6.4.0 is a PHP file that has certain tags in its header comment area
Please take the time to fix the following:
  • Main file name: Name the main plugin file the same as the plugin slug ("wp-letsencrypt-ssl.php" instead of "wp-letsencrypt.php")
  • Description: Please don't use more than 140 characters for the plugin description (currently 203 characters long)
  • Domain Path: The domain path points to a folder that does not exist ("/languages")

Code Analysis 3% from 3 tests

File types 0% from 1 test

🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Please make sure to remedy the following
  • Do not include executable or dangerous files in your plugin
    • .crt - Security Certificate in Firefox, IE, Chrome, Safari
      • wp-content/plugins/wp-letsencrypt-ssl/cabundle/ca.crt
43,137 lines of code in 175 files:
LanguageFilesBlank linesComment linesLines of code
PHP1538,97819,29839,050
CSS15562423,294
JavaScript6120109792
JSON1001

PHP code 50% from 2 tests

Cyclomatic complexity and code structure are the fingerprint of this plugin
Please tend to the following items
  • Cyclomatic complexity of classes has to be reduced to less than 1000 (currently 3,073)
Cyclomatic complexity
Average complexity per logical line of code0.60
Average class complexity71.53
▷ Minimum class complexity1.00
▷ Maximum class complexity3,073.00
Average method complexity4.70
▷ Minimum method complexity1.00
▷ Maximum method complexity94.00
Code structure
Namespaces3
Interfaces0
Traits0
Classes77
▷ Abstract classes22.60%
▷ Concrete classes7597.40%
▷ Final classes00.00%
Methods1,489
▷ Static methods25517.13%
▷ Public methods1,06571.52%
▷ Protected methods221.48%
▷ Private methods40227.00%
Functions110
▷ Named functions10494.55%
▷ Anonymous functions65.45%
Constants178
▷ Global constants10760.11%
▷ Class constants7139.89%
▷ Public constants71100.00%

Plugin size 50% from 2 tests

Image compression 50% from 2 tests

It is recommended to compress PNG files in your plugin to minimize bandwidth usage
28 PNG files occupy 0.70MB with 0.45MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
admin/assets/cookieless-analytics.png8.42KB3.86KB▼ 54.19%
admin/assets/warning.png3.58KB1.47KB▼ 58.89%
admin/assets/goviral-logo.png5.99KB2.02KB▼ 66.32%
admin/assets/icon.png2.13KB0.25KB▼ 88.47%
admin/assets/Install.png26.06KB12.64KB▼ 51.51%