10% web2application

Code Review | Web2application Convert your website to android and IOS apps with push notifications

WordPress plugin Web2application Convert your website to android and IOS apps with push notifications scored 10% from 54 tests.

About plugin

  • Plugin page: web2application
  • Plugin version: 4.0
  • PHP version: 7.4.16
  • WordPress compatibility: 4.0-5.8
  • WordPress version: 5.9.2
  • First release: Jan 19, 2018
  • Latest release: Jan 21, 2022
  • Number of updates: 86
  • Update frequency: every 17.0 days
  • Top authors: tzin111 (100%)

Code review

54 tests

User reviews

4 reviews

Install metrics

300+ active / 10,989 total downloads

Benchmarks

Plugin footprint 57% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
The following installer errors require your attention
  • Install procedure validation failed for this plugin
    • > Notice in wp-content/plugins/web2application/web2application.php+472
    Trying to access array offset on value of type bool

Server metrics [RAM: ▼2.41MB] [CPU: ▼352.22ms] Passed 4 tests

Server-side resources used by Web2application Convert your website to android and IOS apps with push notifications
No issues were detected with server-side resource usage
PageMemory (MB)CPU Time (ms)
Home /1.95 ▼1.565.40 ▼52.83
Dashboard /wp-admin1.97 ▼1.434.73 ▼28.49
Posts /wp-admin/edit.php1.97 ▼1.676.01 ▼30.35
Add New Post /wp-admin/post-new.php1.97 ▼5.007.89 ▼1,269.70
Media Library /wp-admin/upload.php1.97 ▼1.324.31 ▼55.99
Web2application site /wp-admin/admin.php?page=Web2apllication-main-21.974.95
Send Push /wp-admin/admin.php?page=send-push1.975.44
Tab Menu Links /wp-admin/admin.php?page=web2application-tab-menus1.975.31
Marketing Tools /wp-admin/admin.php?page=web2application-marketing-tools1.974.68
Web Push Settings /wp-admin/admin.php?page=web2application-web-push-settings1.974.67
Premium Settings /wp-admin/admin.php?page=web2application-premium-settings1.976.45
Web2apllication /wp-admin/admin.php?page=Web2apllication-main1.974.92

Server storage [IO: ▲1.07MB] [DB: ▲0.00MB] 67% from 3 tests

Analyzing filesystem and database footprints of this plugin
Please fix the following
  • The plugin illegally modified 1 file (0.04KB) outside of "wp-content/plugins/web2application/" and "wp-content/uploads/"
    • (new file) web2app-id
Filesystem: 42 new files
Database: no new tables, no new options

Browser metrics Passed 4 tests

This is an overview of browser requirements for Web2application Convert your website to android and IOS apps with push notifications
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,849 ▲9515.91 ▼0.026.60 ▼0.162.87 ▲0.28
Dashboard /wp-admin2,979 ▲1215.99 ▼0.14120.62 ▼24.67157.40 ▼62.86
Posts /wp-admin/edit.php2,776 ▲823.25 ▲0.0265.44 ▼0.44142.54 ▼1.62
Add New Post /wp-admin/post-new.php1,766 ▲5520.80 ▼0.58439.32 ▼39.27206.19 ▲43.63
Media Library /wp-admin/upload.php1,786 ▲885.53 ▲0.02142.38 ▲6.85198.19 ▲5.61
Web2application site /wp-admin/admin.php?page=Web2apllication-main-21,3528.03346.10142.12
Send Push /wp-admin/admin.php?page=send-push1,7515.4491.36122.48
Tab Menu Links /wp-admin/admin.php?page=web2application-tab-menus9,2688.42200.38296.70
Marketing Tools /wp-admin/admin.php?page=web2application-marketing-tools1,3582.5457.37131.04
Web Push Settings /wp-admin/admin.php?page=web2application-web-push-settings1,7564.5972.25163.51
Premium Settings /wp-admin/admin.php?page=web2application-premium-settings2,2313.1169.49191.03
Web2apllication /wp-admin/admin.php?page=Web2apllication-main1,2542.3955.40145.98

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

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
It is recommended to fix the following
  • Uninstall procedure had uncaught errors
    • > Notice in wp-content/plugins/web2application/web2application.php+472
    Trying to access array offset on value of type bool

Smoke tests 25% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
These errors were triggered by the plugin
  • 43 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=Web2apllication-main
    • > Notice in wp-content/plugins/web2application/includes/web2application-settings.php+72
    Trying to access array offset on value of type bool
  • 119 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=Web2apllication-main
    • > User deprecated in wp-includes/functions.php+5600
    has_cap was called with an argument that is deprecated since version 2.0.0! Usage of user levels is deprecated. Use capabilities instead.
  • 83 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+311
    Undefined variable: row
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=send-push
    • > Notice in wp-content/plugins/web2application/includes/web2application-sendpush-screen.php+191
    Trying to get property 'app_paied' of non-object
  • 3 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+5
    Constant WP_DEBUG already defined
    • > GET request to /wp-admin/admin.php?page=web2application-tab-menus
    • > Notice in wp-content/plugins/web2application/includes/web2application-tab-menus.php+296
    Undefined variable: app_menu_background
    • > GET request to /wp-admin/admin.php?page=web2application-tab-menus
    • > Notice in wp-content/plugins/web2application/includes/web2application-tab-menus.php+302
    Undefined variable: app_menu_link_color
    • > GET request to /wp-admin/admin.php?page=web2application-tab-menus
    • > Notice in wp-content/plugins/web2application/includes/web2application-tab-menus.php+338
    Trying to get property 'app_menu_background' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-tab-menus
    • > Notice in wp-content/plugins/web2application/includes/web2application-tab-menus.php+343
    Trying to get property 'app_menu_link_color' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-tab-menus
    • > Notice in wp-content/plugins/web2application/includes/web2application-tab-menus.php+348
    Trying to get property 'app_menu_unselected_link_color' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-tab-menus
    • > Notice in wp-content/plugins/web2application/includes/web2application-tab-menus.php+357
    Trying to get property 'app_menu_is_rtl' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-tab-menus
    • > Notice in wp-content/plugins/web2application/includes/web2application-tab-menus.php+368
    Trying to get property 'push_history_tab' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-tab-menus
    • > Notice in wp-content/plugins/web2application/includes/web2application-tab-menus.php+375
    Trying to get property 'push_history_title' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-tab-menus
    • > Notice in wp-content/plugins/web2application/includes/web2application-tab-menus.php+458
    Undefined variable: app_paied
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-tab-menus
    • > Notice in wp-content/plugins/web2application/includes/web2application-tab-menus.php+458
    Undefined variable: menu_count
    • > GET request to /wp-admin/admin.php?page=web2application-tab-menus
    • > Notice in wp-content/plugins/web2application/includes/web2application-tab-menus.php+456
    Undefined variable: base_url
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-marketing-tools
    • > Notice in wp-content/plugins/web2application/includes/web2application-marketing-tools.php+176
    Trying to get property 'android_store_url' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-marketing-tools
    • > Notice in wp-content/plugins/web2application/includes/web2application-marketing-tools.php+177
    Trying to get property 'apple_store_url' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-marketing-tools
    • > Notice in wp-content/plugins/web2application/includes/web2application-marketing-tools.php+178
    Trying to get property 'android_pack_name' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-marketing-tools
    • > Notice in wp-content/plugins/web2application/includes/web2application-marketing-tools.php+201
    Trying to get property 'offers' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-marketing-tools
    • > Warning in wp-content/plugins/web2application/includes/web2application-marketing-tools.php+201
    Invalid argument supplied for foreach()
  • 18 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-web-push-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-web-push-settings.php+273
    Undefined variable: push
  • 6 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-web-push-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-web-push-settings.php+204
    Trying to get property 'web_alert_type' of non-object
  • 3 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-web-push-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-web-push-settings.php+212
    Trying to get property 'web_alert_title' of non-object
  • 3 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-web-push-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-web-push-settings.php+215
    Trying to get property 'web_alert_desc' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-web-push-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-web-push-settings.php+162
    Trying to get property 'web_alert_icon' of non-object
  • 3 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-web-push-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-web-push-settings.php+220
    Trying to get property 'web_alert_button' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-web-push-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-web-push-settings.php+208
    Trying to get property 'display_icon' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-web-push-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-web-push-settings.php+269
    Trying to get property 'fb_server_key' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-web-push-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-web-push-settings.php+273
    Trying to get property 'webapp_key' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+114
    Trying to get property 'signup_form' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+125
    Trying to get property 'allow_landscape' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+136
    Trying to get property 'allow_zoom' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+147
    Trying to get property 'support_deep_link' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+161
    Trying to get property 'form_label_title' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+165
    Trying to get property 'form_label_desc' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+169
    Trying to get property 'form_label_name' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+173
    Trying to get property 'form_label_email' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+177
    Trying to get property 'form_label_phone' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+181
    Trying to get property 'form_label_birth' of non-object
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+185
    Trying to get property 'form_label_submit' of non-object
  • 36 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+236
    Trying to get property 'push_sound' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+254
    Trying to get property 'remember_password' of non-object
  • 3 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+266
    Trying to get property 'open_to_browser' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+277
    Trying to get property 'disable_no_internet' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+288
    Trying to get property 'disable_webview_cache' of non-object
  • 3 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+300
    Trying to get property 'allow_progress_bar' of non-object
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Notice in wp-content/plugins/web2application/includes/web2application-premium-settings.php+311
    Trying to get property 'disable_pull_to_refresh' of non-object

SRP 50% from 2 tests

🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Please fix the following items
  • 2× PHP files output non-empty strings when accessed directly via GET requests:
    • > /wp-content/plugins/web2application/includes/web2application-sendpush-screen.php
    • > /wp-content/plugins/web2application/includes/web2application-premium-settings.php

User-side errors 0% from 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Please fix the following user-side errors
    • > GET request to /wp-admin/admin.php?page=web2application-premium-settings
    • > Network (severe)
    https://web2application.com/w2a/user/push_sounds/ - Failed to load resource: the server responded with a status of 404 ()

Optimizations

Plugin configuration 93% 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:
  • Tags: There are too many tags (13 tag instead of maximum 10)
  • Screenshots: These screenshots do not have images: #1 ("Web2application" send push page), #2 (Send push notifications and web push from your WordPress admin), #3 (Add tab menu to your android and iOS apps from your WordPress admin), #4 (Get QRcode that will help your users to download your android and iOS apps), #5 (Special offers for your Android and iOS users only), #6 (Premium setting screen - part 1), #7 (Premium setting screen - part 2), #8 (Web push notification settings), #9 (Plugin settings)
The official readme.txt is a good inspiration

web2application/web2application.php Passed 13 tests

The main PHP file in "Web2application Convert your website to android and IOS apps with push notifications" ver. 4.0 adds more information about the plugin and also serves as the entry point for this plugin
126 characters long description:
Convert your WordPress site into native mobile Android & iOS apps, Enjoy sending push notifications and more advanced features

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
No dangerous file extensions were detected4,462 lines of code in 25 files:
LanguageFilesBlank linesComment linesLines of code
PHP167416063,798
CSS52548351
JavaScript23558207
SVG184096
HTML10010

PHP code Passed 2 tests

Analyzing cyclomatic complexity and code structure
Although this was not an exhaustive test, there were no cyclomatic complexity issues detected
Cyclomatic complexity
Average complexity per logical line of code0.42
Average class complexity75.00
▷ Minimum class complexity7.00
▷ Maximum class complexity241.00
Average method complexity3.82
▷ Minimum method complexity1.00
▷ Maximum method complexity27.00
Code structure
Namespaces2
Interfaces0
Traits0
Classes4
▷ Abstract classes00.00%
▷ Concrete classes4100.00%
▷ Final classes00.00%
Methods101
▷ Static methods7776.24%
▷ Public methods9695.05%
▷ Protected methods32.97%
▷ Private methods21.98%
Functions44
▷ Named functions3170.45%
▷ Anonymous functions1329.55%
Constants11
▷ Global constants11100.00%
▷ Class constants00.00%
▷ Public constants00.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
3 PNG files occupy 0.09MB with 0.06MB in potential savings
Potential savings
Compression of 3 random PNG files using pngquant
FileSize - originalSize - compressedSavings
img/logo.png17.17KB5.35KB▼ 68.86%
includes/img/logo.png17.17KB5.35KB▼ 68.86%
screenshot-1.png53.00KB20.97KB▼ 60.43%