10% noprofeedorg

Code Review | noprofeed.org

WordPress plugin noprofeed.org scored 10% from 54 tests.

About plugin

  • Plugin page: noprofeedorg
  • Plugin version: 1.2.1
  • PHP version: 7.4.16
  • WordPress compatibility: 2.8+
  • WordPress version: 6.3.1
  • First release: Jul 1, 2011
  • Latest release: May 5, 2014
  • Number of updates: 22
  • Update frequency: every 48.9 days
  • Top authors: camaleo (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active / 2,293 total downloads

Benchmarks

Plugin footprint 40% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Please fix the following installer errors
  • Install procedure validation failed for this plugin
    • > Deprecated in wp-content/plugins/noprofeedorg/class.noprofeed.php+921
    Methods with the same name as their class will not be constructors in a future version of PHP; noprofeed_FRONTEND has a deprecated constructor

Server metrics [RAM: ▼1.48MB] [CPU: ▼50.87ms] Passed 4 tests

Server-side resources used by noprofeed.org
No issues were detected with server-side resource usage
PageMemory (MB)CPU Time (ms)
Home /2.51 ▼0.956.35 ▼33.27
Dashboard /wp-admin2.53 ▼0.787.98 ▼41.04
Posts /wp-admin/edit.php2.53 ▼0.838.78 ▼39.87
Add New Post /wp-admin/post-new.php2.53 ▼3.368.43 ▼89.30
Media Library /wp-admin/upload.php2.53 ▼0.709.47 ▼29.34
noprofeed.org /wp-admin/options-general.php?page=noprofeed.org_settings2.538.70

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

Input-output and database impact of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 51 new files
Database: 1 new table, 22 new options
New tables
wp_noprofeed_cache
New WordPress options
nop_wid_feedStyle_3D
nop_wid_feedStyle_bgcolor
nop_wid_height
nop_wid_width
widget_theysaidso_widget
nop_wid_db_version
nop_wid_feedShowOrgDonate
nop_wid_widthSizeDisplay_value
nop_wid_feedStyle_textcolor
nop_wid_feeds2show
...

Browser metrics Passed 4 tests

Checking browser requirements for noprofeed.org
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,947 ▲21213.46 ▼0.903.79 ▲2.0946.43 ▲9.12
Dashboard /wp-admin2,325 ▲1375.18 ▲0.28103.74 ▼2.5644.94 ▲4.13
Posts /wp-admin/edit.php2,104 ▲182.15 ▲0.1134.96 ▼3.2731.24 ▼1.79
Add New Post /wp-admin/post-new.php1,524 ▲521.06 ▼2.12647.58 ▼18.3254.52 ▼3.18
Media Library /wp-admin/upload.php1,400 ▲154.26 ▲0.0593.73 ▼7.6043.53 ▼1.97
noprofeed.org /wp-admin/options-general.php?page=noprofeed.org_settings1,5631.9336.2539.24

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
You still need to fix the following
  • Uninstall procedure had uncaught errors
    • > Deprecated in wp-content/plugins/noprofeedorg/class.noprofeed.php+921
    Methods with the same name as their class will not be constructors in a future version of PHP; noprofeed_FRONTEND has a deprecated constructor
  • Zombie WordPress options were found after uninstall: 7 options
    • theysaidso_admin_options
    • db_upgraded
    • widget_theysaidso_widget
    • can_compress_scripts
    • widget_noprofeed-widget
    • widget_recent-comments
    • widget_recent-posts

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 errors were triggered by the plugin
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Deprecated in wp-content/plugins/noprofeedorg/class.noprofeed.php+921
    Methods with the same name as their class will not be constructors in a future version of PHP; noprofeed_FRONTEND has a deprecated constructor
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Deprecated in wp-content/plugins/noprofeedorg/class.noprofeed.php+957
    Methods with the same name as their class will not be constructors in a future version of PHP; noprofeed_BACKEND has a deprecated constructor
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Deprecated in wp-content/plugins/noprofeedorg/class.noprofeed.php+1022
    Methods with the same name as their class will not be constructors in a future version of PHP; noprofeed_widget has a deprecated constructor
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+364
    Undefined property: noprofeed_BACKEND::$add_plugin_links
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-includes/plugin.php+1004
    Undefined offset: 0
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > User deprecated in wp-includes/functions.php+5546
    The called constructor method for WP_Widget class in noprofeed_widget is deprecated since version 4.3.0! Use __construct() instead.
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+578
    Undefined index: btn
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Warning in wp-content/plugins/noprofeedorg/class.noprofeed.php+872
    fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Warning in wp-content/plugins/noprofeedorg/class.noprofeed.php+872
    fsockopen(): unable to connect to noprofeed.org:80 (php_network_getaddresses: getaddrinfo failed: Name or service not known)
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+99
    unserialize(): Error at offset 0 of 79 bytes
  • 2 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Warning in wp-content/plugins/noprofeedorg/class.noprofeed.php+274
    Use of undefined constant WPLANG - assumed 'WPLANG' (this will throw an Error in a future version of PHP)
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+430
    Undefined index: nop_wid_widthSizeDisplay_value
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+431
    Undefined index: nop_wid_feedReadMore
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+432
    Undefined index: nop_wid_feedShowOrg
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+433
    Undefined index: nop_wid_feedShowOrgDonate
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+434
    Undefined index: nop_wid_width
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+435
    Undefined index: nop_wid_height
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+436
    Undefined index: nop_wid_feeds2show
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+437
    Undefined index: nop_wid_feedHeight
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+459
    Undefined index: nop_wid_feedFilter_lang_en
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+459
    Undefined index: nop_wid_feedFilter_lang_fr
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+459
    Undefined index: nop_wid_feedFilter_lang_de
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+459
    Undefined index: nop_wid_feedFilter_lang_it
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+459
    Undefined index: nop_wid_feedFilter_lang_pt
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+459
    Undefined index: nop_wid_feedFilter_lang_es
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_A&W
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_CHI
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_D&G
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_DIR
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_EDM
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_EDU
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_E&C
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_FAM
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_HEA
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_HUR
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_HAS
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_SND
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_SPO
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_TEC
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+464
    Undefined index: nop_wid_feedFilter_category_WOM
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+469
    Undefined index: nop_wid_feedFilter_region_AFR
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+469
    Undefined index: nop_wid_feedFilter_region_ASI
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+469
    Undefined index: nop_wid_feedFilter_region_SAM
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+469
    Undefined index: nop_wid_feedFilter_region_CHI
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+469
    Undefined index: nop_wid_feedFilter_region_EUR
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+469
    Undefined index: nop_wid_feedFilter_region_MEA
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+469
    Undefined index: nop_wid_feedFilter_region_NAM
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+469
    Undefined index: nop_wid_feedFilter_region_OCE
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+469
    Undefined index: nop_wid_feedFilter_region_RUS
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+472
    Undefined index: nop_wid_feedStyle_textcolor
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+473
    Undefined index: nop_wid_feedStyle_linkscolor
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+474
    Undefined index: nop_wid_feedStyle_bgcolor
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+475
    Undefined index: nop_wid_feedStyle_bordcolor
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Notice in wp-content/plugins/noprofeedorg/class.noprofeed.php+846
    Undefined variable: error

SRP 50% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following
  • 6× PHP files trigger server errors when accessed directly:
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/noprofeedorg/inc/shared-functions.php on line 7
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/noprofeedorg/class.noprofeed.php:1022
    • > PHP Notice
      Undefined index: ajax in wp-content/plugins/noprofeedorg/inc/mc/inc/store-address.php on line 41
    • > PHP Fatal error
      Uncaught Error: Call to undefined function __() in wp-content/plugins/noprofeedorg/inc/sample_widget.php:3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function plugins_url() in wp-content/plugins/noprofeedorg/noprofeed.php:78
    • > PHP Notice
      Trying to get property 'base_prefix' of non-object in wp-content/plugins/noprofeedorg/noprofeed.php on line 41

User-side errors 0% from 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
Please fix the following browser errors
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Network (severe)
    http://noprofeed.org/favicon.ico - Failed to load resource: net::ERR_NAME_NOT_RESOLVED
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Network (severe)
    http://wp39.lan/wp-content/plugins/noprofeedorg/img/widget-shadow.png - Failed to load resource: net::ERR_NAME_NOT_RESOLVED
    • > GET request to /wp-admin/options-general.php?page=noprofeed.org_settings
    • > Network (severe)
    http://wp39.lan/wp-content/plugins/noprofeedorg/img/bg-pattern.png - Failed to load resource: net::ERR_NAME_NOT_RESOLVED

Optimizations

Plugin configuration 83% from 29 tests

readme.txt 75% from 16 tests

It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
Attributes that require attention:
  • Screenshots: Add images for these screenshots: #1 (The plugin settings allow to configure the widget graphical look like, for example: width, colour of each element, how many feeds and what type of content to show, etc. Changing the options will immediately reflect the sample widget look so you can easily configure the widget before publishing it.), #2 (When adding the widget you can change its title), #3 (Example of how the widget looks like on the default home page)
  • Tested up to: The plugin version is formatted incorrectly
  • Donate link: Please fix this invalid url: ""
  • Tags: There are too many tags (14 tag instead of maximum 10)
You can look at the official readme.txt

noprofeedorg/noprofeed.php 92% from 13 tests

The main file in "noprofeed.org" v. 1.2.1 serves as a complement to information provided in readme.txt and as the entry point to the plugin
Please make the necessary changes and fix the following:
  • Main file name: Please rename the main PHP file in this plugin to the plugin slug ("noprofeedorg.php" instead of "noprofeed.php")

Code Analysis Passed 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
No dangerous file extensions were detected7,505 lines of code in 28 files:
LanguageFilesBlank linesComment linesLines of code
PHP81,1762,1413,286
JavaScript106626263,260
CSS74034458
PO File2123150330
HTML1231171

PHP code Passed 2 tests

An overview of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity issues
Cyclomatic complexity
Average complexity per logical line of code0.23
Average class complexity20.50
▷ Minimum class complexity1.00
▷ Maximum class complexity79.00
Average method complexity2.19
▷ Minimum method complexity1.00
▷ Maximum method complexity40.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes8
▷ Abstract classes00.00%
▷ Concrete classes8100.00%
▷ Final classes00.00%
Methods130
▷ Static methods00.00%
▷ Public methods130100.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions18
▷ Named functions18100.00%
▷ Anonymous functions00.00%
Constants31
▷ Global constants31100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size 0% from 2 tests

Image compression 0% from 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
16 PNG files occupy 0.75MB with 0.33MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
screenshot-2.png114.41KB39.44KB▼ 65.52%
screenshot-1.png189.29KB59.91KB▼ 68.35%
(invalid) img/--none--.png0.00KB0.00KB0.00%
img/support-us-button.png11.45KB4.44KB▼ 61.26%
img/widget-shadow.png4.63KB3.49KB▼ 24.58%