71% miniorange-otp-verification

Code Review | Email Verification / SMS Verification / OTP Verification / OTP Authentication / WooCommerce Notification

WordPress plugin Email Verification / SMS Verification / OTP Verification / OTP Authentication / WooCommerce Notification scored71%from 54 tests.

About plugin

  • Plugin page: miniorange-otp-ve...
  • Plugin version: 5.0.5
  • PHP compatiblity: 5.3.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 2.0.0-6.4.1
  • WordPress version: 6.3.1
  • First release: Dec 18, 2015
  • Latest release: Nov 23, 2023
  • Number of updates: 232
  • Update frequency: every 12.5 days
  • Top authors: cyberlord92 (81.9%)shrikantniras (18.1%)

Code review

54 tests

User reviews

394 reviews

Install metrics

6,000+ active /307,257 total downloads

Benchmarks

Plugin footprint 82% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The plugin installed successfully, without throwing any errors or notices

Server metrics [RAM: ▲6.94MB] [CPU: ▲110.89ms] 50% from 4 tests

Server-side resources used by Email Verification / SMS Verification / OTP Verification / OTP Authentication / WooCommerce Notification
Please take the time to fix the following items
  • RAM: Total memory usage should be kept under 10MB (currently 10.84MB on /wp-admin/admin.php?page=mootppricing)
  • Extra RAM: Extra memory usage should kept under 5MB (currently 6.94MB on /wp-admin/admin.php?page=mootppricing)
PageMemory (MB)CPU Time (ms)
Home /10.19 ▲6.72143.43 ▲100.72
Dashboard /wp-admin10.30 ▲6.99153.72 ▲100.44
Posts /wp-admin/edit.php10.41 ▲7.05167.35 ▲121.70
Add New Post /wp-admin/post-new.php12.96 ▲7.07203.95 ▲120.70
Media Library /wp-admin/upload.php10.24 ▲7.00179.72 ▲144.35
Forms /wp-admin/admin.php?page=mosettings10.37158.97
WhatsApp /wp-admin/admin.php?page=mowhatsapp10.28145.82
Account Setup /wp-admin/admin.php?page=otpaccount10.26163.57
Transaction Report /wp-admin/admin.php?page=moreporting10.26143.19
Settings /wp-admin/admin.php?page=otpsettings10.43150.79
AddOns /wp-admin/admin.php?page=addon10.37148.30
Notifications /wp-admin/admin.php?page=monotifications10.32150.53
Gateway Settings /wp-admin/admin.php?page=mogateway10.27147.94
Licensing Plans /wp-admin/admin.php?page=mootppricing10.84164.30

Server storage [IO: ▲4.38MB] [DB: ▲0.01MB] Passed 3 tests

How much does this plugin use your filesystem and database?
There were no storage issued detected upon installing this plugin
Filesystem: 497 new files
Database: no new tables, 6 new options
New WordPress options
widget_recent-comments
db_upgraded
widget_recent-posts
theysaidso_admin_options
can_compress_scripts
widget_theysaidso_widget

Browser metrics Passed 4 tests

An overview of browser requirements for Email Verification / SMS Verification / OTP Verification / OTP Authentication / WooCommerce Notification
This plugin has a minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,084 ▲32213.73 ▼0.557.10 ▲5.5417.71 ▼25.81
Dashboard /wp-admin2,395 ▲2185.87 ▲0.26104.40 ▲4.0888.21 ▲42.47
Posts /wp-admin/edit.php2,324 ▲2242.51 ▲0.5748.66 ▲13.9743.44 ▲4.92
Add New Post /wp-admin/post-new.php1,882 ▲35621.03 ▼2.16712.25 ▲115.8030.72 ▼19.66
Media Library /wp-admin/upload.php1,618 ▲2184.42 ▲0.20118.11 ▲20.5895.04 ▲53.81
Forms /wp-admin/admin.php?page=mosettings2,0391.9536.22137.54
WhatsApp /wp-admin/admin.php?page=mowhatsapp1,6252.0044.4469.08
Account Setup /wp-admin/admin.php?page=otpaccount1,4211.9436.7670.29
Transaction Report /wp-admin/admin.php?page=moreporting1,6161.9748.2061.65
Settings /wp-admin/admin.php?page=otpsettings4,6853.2456.60114.52
AddOns /wp-admin/admin.php?page=addon2,6461.9643.2357.96
Notifications /wp-admin/admin.php?page=monotifications4,4316.10130.0581.03
Gateway Settings /wp-admin/admin.php?page=mogateway1,4981.9941.9167.68
Licensing Plans /wp-admin/admin.php?page=mootppricing6,9882.1351.1183.07

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
Please fix the following items
  • The uninstall procedure has failed, leaving 6 options in the database
    • widget_recent-posts
    • db_upgraded
    • widget_theysaidso_widget
    • widget_recent-comments
    • can_compress_scripts
    • theysaidso_admin_options

Smoke tests 25% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
These server-side errors were triggered
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=mowhatsapp
    • > request to
    • > Notice in wp-config.php+20
    Undefined index: REQUEST_METHOD

SRP 50% 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 fix the following
  • 25× PHP files trigger server errors when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'OTP\\Objects\\FormHandler' not found in wp-content/plugins/miniorange-otp-verification/handler/forms/class-mowpusermanagerform.php:31
    • > PHP Notice
      Trying to get property 'premium_tags' of non-object in wp-content/plugins/miniorange-otp-verification/notifications/wcsmsnotification/views/smsnotifications/wc-customer-sms-template.php on line 12
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/miniorange-otp-verification/views/general-settings.php:11
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/miniorange-otp-verification/views/forms/realestate7.php:8
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/miniorange-otp-verification/views/forms/memberpresssinglecheckoutform.php:11
    • > PHP Notice
      Trying to get property 'available_tags' of non-object in wp-content/plugins/miniorange-otp-verification/notifications/wcsmsnotification/views/smsnotifications/wc-customer-sms-template.php on line 11
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/miniorange-otp-verification/views/forms/userprofilemadeeasyregistrationform.php:11
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_html() in wp-content/plugins/miniorange-otp-verification/views/sms-notifications.php:17
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/miniorange-otp-verification/views/account/profile.php:12
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/miniorange-otp-verification/views/forms/ultimatememberprofileform.php:11

User-side errors 0% from 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
Please take a look at the following user-side issues
    • > GET request to /wp-admin/admin.php?page=moreporting
    • > Rendering (warning) in unknown
    /wp-admin/admin.php?page=moreporting 397 The specified value " 2023-11-24 10:05" does not conform to the required format. The format is "yyyy-MM-ddThh:mm" followed by optional ":ss" or ":ss.SSS".
    • > GET request to /wp-admin/admin.php?page=moreporting
    • > Rendering (warning) in unknown
    /wp-admin/admin.php?page=moreporting 415 The specified value " 2023-11-25 10:05" does not conform to the required format. The format is "yyyy-MM-ddThh:mm" followed by optional ":ss" or ":ss.SSS".

Optimizations

Plugin configuration 86% from 29 tests

readme.txt 94% from 16 tests

The readme.txt file uses markdown syntax to describe your plugin to the world
These attributes need your attention:
  • Tags: Please delete some tags, you are using 70 tag instead of maximum 10
You can look at the official readme.txt

miniorange-otp-verification/miniorange_validation_settings.php 77% from 13 tests

Analyzing the main PHP file in "Email Verification / SMS Verification / OTP Verification / OTP Authentication / WooCommerce Notification" version 5.0.5
You should first fix the following items:
  • Main file name: It is recommended to name the main PHP file as the plugin slug ("miniorange-otp-verification.php" instead of "miniorange_validation_settings.php")
  • Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 146 characters long)
  • Requires at least: The required version number must match the one declared in readme.txt ("3.5" instead of "2.0.0")

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | Executable files are considered dangerous and should not be included with any WordPress plugin
Success! There were no dangerous files found in this plugin43,672 lines of code in 429 files:
LanguageFilesBlank linesComment linesLines of code
PHP3425,09413,28235,331
PO File43,1204,8067,817
SVG3170312
JavaScript4670206
CSS5005
JSON1001

PHP code Passed 2 tests

This is a short overview of cyclomatic complexity and code structure for this plugin
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.35
Average class complexity18.24
▷ Minimum class complexity1.00
▷ Maximum class complexity84.00
Average method complexity2.60
▷ Minimum method complexity1.00
▷ Maximum method complexity35.00
Code structure
Namespaces17
Interfaces6
Traits1
Classes132
▷ Abstract classes53.79%
▷ Concrete classes12796.21%
▷ Final classes1914.96%
Methods1,556
▷ Static methods1147.33%
▷ Public methods1,03366.39%
▷ Protected methods956.11%
▷ Private methods42827.51%
Functions41
▷ Named functions3585.37%
▷ Anonymous functions614.63%
Constants572
▷ Global constants579.97%
▷ Class constants51590.03%
▷ Public constants515100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

It is recommended to compress PNG files in your plugin to minimize bandwidth usage
17 PNG files occupy 0.41MB with 0.14MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
includes/images/paypal.png7.45KB7.20KB▼ 3.36%
includes/images/donate.png7.18KB3.16KB▼ 55.95%
includes/images/mo_support_icon.png2.74KB1.64KB▼ 40.33%
includes/images/firebase.png2.13KB1.59KB▼ 25.13%
includes/images/logo.png2.84KB1.59KB▼ 44.03%