10% ppv-live-webcams

Code Review | Paid Videochat Turnkey Site - HTML5 PPV Live Webcams

WordPress plugin Paid Videochat Turnkey Site - HTML5 PPV Live Webcams scored10%from 54 tests.

About plugin

  • Plugin page: ppv-live-webcams
  • Plugin version: 6.8.11
  • PHP compatiblity: 7.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.1-6.3
  • WordPress version: 6.3.1
  • First release: Mar 3, 2015
  • Latest release: Nov 16, 2023
  • Number of updates: 761
  • Update frequency: every 4.2 days
  • Top authors: videowhisper (100%)

Code review

54 tests

User reviews

18 reviews

Install metrics

60+ active /83,495 total downloads

Benchmarks

Plugin footprint 39% 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
  • This plugin did not install gracefully
    • > Notice in wp-content/plugins/ppv-live-webcams/inc/options.php+630
    unserialize(): Error at offset 241 of 1673 bytes

Server metrics [RAM: ▲5.32MB] [CPU: ▼15.47ms] 75% from 4 tests

An overview of server-side resources used by Paid Videochat Turnkey Site - HTML5 PPV Live Webcams
The following require your attention
  • Extra RAM: The extra memory usage should kept under 5MB (currently 5.32MB on /wp-admin/admin.php?page=live-webcams-streams)
PageMemory (MB)CPU Time (ms)
Home /9.32 ▲5.8652.00 ▲12.63
Dashboard /wp-admin9.34 ▲6.0051.15 ▼10.22
Posts /wp-admin/edit.php9.34 ▲5.9849.75 ▼3.22
Add New Post /wp-admin/post-new.php9.34 ▲3.4546.30 ▼61.07
Media Library /wp-admin/upload.php9.34 ▲6.1152.46 ▲21.03
Settings /wp-admin/admin.php?page=live-webcams9.3447.14
Documentation /wp-admin/admin.php?page=live-webcams-doc9.5360.93
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=webcam9.5365.07
Room Setup /wp-admin/admin.php?page=live-webcams-setup9.5360.41
Session Reports /wp-admin/admin.php?page=live-webcams-reports9.5371.10
Payouts /wp-admin/admin.php?page=live-webcams-payouts9.5357.70
All Webcams /wp-admin/edit.php?post_type=webcam9.5365.95
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=webcam9.5359.07
APF Optimizer /wp-admin/admin.php?page=live-webcams-apf9.5362.38
Stream Sessions /wp-admin/admin.php?page=live-webcams-streams9.5359.84

Server storage [IO: ▲16.72MB] [DB: ▲0.07MB] 67% from 3 tests

How much does this plugin use your filesystem and database?
Please fix the following
  • Illegal file modification detected: 1 file (0.56KB) outside of "wp-content/plugins/ppv-live-webcams/" and "wp-content/uploads/"
    • (modified) .htaccess
Filesystem: 549 new files
Database: 6 new tables, 11 new options
New tables
wp_vw_vmls_sessions
wp_vw_vmls_payouts
wp_vw_vmls_chatlog
wp_vw_vmls_actions
wp_vw_vmls_messages
wp_vw_vmls_private
New WordPress options
userAccessTime
VWliveWebcamsOptions
widget_theysaidso_widget
theysaidso_admin_options
db_upgraded
widget_recent-posts
can_compress_scripts
category_children
VWliveWebcams_requirements
widget_recent-comments
...

Browser metrics Passed 4 tests

Paid Videochat Turnkey Site - HTML5 PPV Live Webcams: an overview of browser usage
Normal browser usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,112 ▲35014.38 ▲0.112.16 ▲0.4742.71 ▲2.53
Dashboard /wp-admin2,414 ▲2405.66 ▲0.0298.90 ▲3.8450.05 ▲4.68
Posts /wp-admin/edit.php2,317 ▲2172.15 ▲0.2042.97 ▲1.2042.13 ▲3.73
Add New Post /wp-admin/post-new.php6,437 ▲4,90825.83 ▲2.80935.57 ▲296.8762.15 ▲9.61
Media Library /wp-admin/upload.php1,616 ▲2194.30 ▲0.11100.85 ▼0.3447.24 ▲0.45
Settings /wp-admin/admin.php?page=live-webcams1,3721.7626.8338.74
Documentation /wp-admin/admin.php?page=live-webcams-doc1,3911.7926.1538.34
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=webcam1,5352.2730.3537.09
Room Setup /wp-admin/admin.php?page=live-webcams-setup9831.6628.9232.55
Session Reports /wp-admin/admin.php?page=live-webcams-reports1,3454.69239.83163.41
Payouts /wp-admin/admin.php?page=live-webcams-payouts1,0981.7928.5833.97
All Webcams /wp-admin/edit.php?post_type=webcam1,4682.1334.2034.69
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=webcam1,6682.2831.5341.82
APF Optimizer /wp-admin/admin.php?page=live-webcams-apf1,0821.8125.7937.11
Stream Sessions /wp-admin/admin.php?page=live-webcams-streams9791.6827.1334.48

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

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
It is recommended to fix the following
  • Zombie tables detected upon uninstall: 6 tables
    • wp_vw_vmls_messages
    • wp_vw_vmls_chatlog
    • wp_vw_vmls_sessions
    • wp_vw_vmls_actions
    • wp_vw_vmls_payouts
    • wp_vw_vmls_private
  • This plugin did not uninstall successfully, leaving 11 options in the database
    • category_children
    • VWliveWebcamsOptions
    • widget_recent-comments
    • theysaidso_admin_options
    • userAccessTime
    • widget_recent-posts
    • db_upgraded
    • vmls_db_version
    • VWliveWebcams_requirements
    • can_compress_scripts
    • ...

Smoke tests 25% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Almost there, just fix the following server-side errors
  • 19 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=live-webcams-streams
    • > Notice in wp-content/plugins/ppv-live-webcams/inc/options.php+630
    unserialize(): Error at offset 241 of 1673 bytes
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=live-webcams-setup
    • > Notice in wp-content/plugins/ppv-live-webcams/inc/options.php+9063
    Undefined variable: post

SRP 0% from 2 tests

🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please take a closer look at the following
  • 1× GET requests to PHP files return non-empty strings:
    • > /wp-content/plugins/ppv-live-webcams/server/translate.php
  • 14× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'DeepL\\DeepLException' not found in wp-content/plugins/ppv-live-webcams/server/vendor/deeplcom/deepl-php/src/ConnectionException.php:12
    • > PHP Fatal error
      Uncaught Error: Class 'DeepL\otFoundException' not found in wp-content/plugins/ppv-live-webcams/server/vendor/deeplcom/deepl-php/src/GlossaryNotFoundException.php:12
    • > PHP Fatal error
      Uncaught Error: Class 'DeepL\\DeepLException' not found in wp-content/plugins/ppv-live-webcams/server/vendor/deeplcom/deepl-php/src/DocumentNotReadyException.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'DeepL\\DeepLTestBase' not found in wp-content/plugins/ppv-live-webcams/server/vendor/deeplcom/deepl-php/tests/TranslateDocumentTest.php:9
    • > PHP Fatal error
      Uncaught Error: Class 'DeepL\\DeepLTestBase' not found in wp-content/plugins/ppv-live-webcams/server/vendor/deeplcom/deepl-php/tests/GlossaryTest.php:9
    • > PHP Fatal error
      Uncaught Error: Class 'DeepL\\DeepLException' not found in wp-content/plugins/ppv-live-webcams/server/vendor/deeplcom/deepl-php/src/DocumentTranslationException.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'DeepL\\DeepLTestBase' not found in wp-content/plugins/ppv-live-webcams/server/vendor/deeplcom/deepl-php/tests/TranslateTextTest.php:9
    • > PHP Fatal error
      Uncaught Error: Class 'DeepL\\DeepLException' not found in wp-content/plugins/ppv-live-webcams/server/vendor/deeplcom/deepl-php/src/NotFoundException.php:12
    • > PHP Fatal error
      Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/ppv-live-webcams/server/vendor/deeplcom/deepl-php/tests/DeepLTestBase.php:12
    • > PHP Fatal error
      Uncaught Error: Interface 'DeepL\\LoggerInterface' not found in wp-content/plugins/ppv-live-webcams/server/vendor/deeplcom/deepl-php/tests/TestLogger.php:9

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 88% from 16 tests

It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
These attributes need to be fixed:
  • Screenshots: These screenshots have no corresponding images in /assets: #1 (HTML5 Video Call - Client View), #2 (HTML5 Video Conference - Split Screen), #3 (Browse Live Experts - AJAX Live Updates), #4 (Role selection on signup: performer, client (customizable).), #5 (Private Video Call Room Setup), #6 (HTML5 Videochat Streaming Settings), #7 (Paid Questions / Messages), #8 (Old Legacy App: Video Messenger application: advanced multi private videochats.), #9 (Old Legacy App: Performer, application view), #10 (Old Legacy App: Client, application view), #11 (Old Legacy App: Tip performer.)
  • Tags: Too many tags (18 tag instead of maximum 10); only the first 5 tags are used in your directory listing
The official readme.txt might help

ppv-live-webcams/ppv-live-webcams.php 92% from 13 tests

The principal PHP file in "Paid Videochat Turnkey Site - HTML5 PPV Live Webcams" v. 6.8.11 is loaded by WordPress automatically on each request
Please make the necessary changes and fix the following:
  • Description: Please don't use more than 140 characters for the plugin description (currently 802 characters long)

Code Analysis 95% from 3 tests

File types Passed 1 test

🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
Success! There were no dangerous files found in this plugin82,789 lines of code in 141 files:
LanguageFilesBlank linesComment linesLines of code
PHP528,7174,27628,519
PO File116,4467,10821,247
SVG602418,181
JavaScript421,8641,83410,505
CSS131555062,645
LESS315016777
Markdown61900612
XML360111
JSON300109
YAML111676
Dockerfile1107

PHP code 0% from 2 tests

Analyzing logical lines of code, cyclomatic complexity, and other code metrics
Please fix the following
  • Class cyclomatic complexity should be reduced to less than 1000 (currently 1,880)
  • Please reduce cyclomatic complexity of methods to less than 100 (currently 681)
Cyclomatic complexity
Average complexity per logical line of code0.50
Average class complexity130.07
▷ Minimum class complexity1.00
▷ Maximum class complexity1,880.00
Average method complexity13.41
▷ Minimum method complexity1.00
▷ Maximum method complexity681.00
Code structure
Namespaces4
Interfaces1
Traits5
Classes37
▷ Abstract classes00.00%
▷ Concrete classes37100.00%
▷ Final classes12.70%
Methods458
▷ Static methods28161.35%
▷ Public methods43695.20%
▷ Protected methods30.66%
▷ Private methods194.15%
Functions23
▷ Named functions28.70%
▷ Anonymous functions2191.30%
Constants69
▷ Global constants57.25%
▷ Class constants6492.75%
▷ Public constants5789.06%

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
244 PNG files occupy 1.17MB with 0.56MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
scripts/jtable/themes/flick/images/ui-icons_454545_256x240.png6.92KB4.18KB▼ 39.61%
videowhisper/templates/messenger/i_ublock.png2.59KB1.59KB▼ 38.84%
videowhisper/templates/messenger/i_close.png2.85KB0.14KB▼ 94.99%
videowhisper/templates/messenger/button_bk.png1.22KB0.44KB▼ 64.21%
scripts/jtable/themes/lightcolor/close.png1.19KB1.22KB0.00%