67% pixelyoursite

Code Review | PixelYourSite - Your smart PIXEL (TAG) Manager

WordPress plugin PixelYourSite - Your smart PIXEL (TAG) Manager scored67%from 54 tests.

About plugin

  • Plugin page: pixelyoursite
  • Plugin version: 9.4.7.1
  • PHP compatiblity: 5.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.4-6.3
  • WordPress version: 6.3.1
  • First release: Nov 26, 2015
  • Latest release: Oct 24, 2023
  • Number of updates: 439
  • Update frequency: every 6.6 days
  • Top authors: PixelYourSite (100%)

Code review

54 tests

User reviews

207 reviews

Install metrics

400,000+ active /8,821,283 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
This plugin's installer ran successfully

Server metrics [RAM: ▲3.13MB] [CPU: ▲21.70ms] Passed 4 tests

Server-side resources used by PixelYourSite - Your smart PIXEL (TAG) Manager
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /6.59 ▲3.1361.14 ▲23.61
Dashboard /wp-admin6.43 ▲3.1367.25 ▲18.57
Posts /wp-admin/edit.php6.48 ▲3.1267.87 ▲23.72
Add New Post /wp-admin/post-new.php9.03 ▲3.13110.48 ▲22.29
Media Library /wp-admin/upload.php6.36 ▲3.1356.39 ▲22.31
Dashboard /wp-admin/admin.php?page=pixelyoursite6.6051.80
UTM Builder /wp-admin/admin.php?page=pixelyoursite_utm6.3448.54
System Report /wp-admin/admin.php?page=pixelyoursite_report6.3447.60

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

A short overview of filesystem and database impact
The plugin installed successfully
Filesystem: 1,625 new files
Database: no new tables, 7 new options
New WordPress options
widget_recent-comments
theysaidso_admin_options
widget_theysaidso_widget
widget_recent-posts
can_compress_scripts
db_upgraded
pys_core

Browser metrics Passed 4 tests

A check of browser resources used by PixelYourSite - Your smart PIXEL (TAG) Manager
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,155 ▲39413.85 ▼0.5119.26 ▲17.6515.27 ▼25.07
Dashboard /wp-admin2,424 ▲2445.60 ▼0.0687.59 ▲2.2997.55 ▲58.95
Posts /wp-admin/edit.php2,351 ▲2482.15 ▲0.1240.07 ▲5.1749.73 ▲11.22
Add New Post /wp-admin/post-new.php6,763 ▲5,23722.79 ▼0.39859.46 ▲210.4950.53 ▼0.33
Media Library /wp-admin/upload.php1,641 ▲2414.18 ▼0.0199.46 ▼11.2684.95 ▲37.74
Dashboard /wp-admin/admin.php?page=pixelyoursite6,1942.4656.2289.54
UTM Builder /wp-admin/admin.php?page=pixelyoursite_utm1,2052.2132.1657.13
System Report /wp-admin/admin.php?page=pixelyoursite_report1,2582.2230.9252.38

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

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
Please fix the following items
  • This plugin did not uninstall successfully, leaving 7 options in the database
    • widget_recent-comments
    • widget_recent-posts
    • widget_theysaidso_widget
    • pys_core
    • can_compress_scripts
    • db_upgraded
    • theysaidso_admin_options

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
Even though everything seems fine, this is not an exhaustive test

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
The following issues need your attention
  • 5× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/pixelyoursite/vendor/glenscott/url-normalizer/test-client.php
    • > /wp-content/plugins/pixelyoursite/modules/facebook/PYSServerEventHelper.php
    • > /wp-content/plugins/pixelyoursite/modules/facebook/facebook-server-async-task.php
    • > /wp-content/plugins/pixelyoursite/includes/views/html-popovers.php
    • > /wp-content/plugins/pixelyoursite/modules/head_footer/views/html-variables-help.php
  • 1374× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'PYS_PRO_GLOBAL\\PYS_PRO_GLOBAL\\FacebookAds\\Object\\AbstractCrudObject' not found in wp-content/plugins/pixelyoursite/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CanvasTemplate.php:40
    • > PHP Fatal error
      Uncaught Error: Class 'PYS_PRO_GLOBAL\\FacebookAds\\Enum\\AbstractEnum' not found in wp-content/plugins/pixelyoursite/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/TargetingGeoLocationPlaceFields.php:38
    • > PHP Fatal error
      Uncaught Error: Class 'PYS_PRO_GLOBAL\\FacebookAds\\Enum\\AbstractEnum' not found in wp-content/plugins/pixelyoursite/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/CommerceOrderStateValues.php:38
    • > PHP Fatal error
      Uncaught Error: Class 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AbstractObject' not found in wp-content/plugins/pixelyoursite/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCampaignIssuesInfo.php:42
    • > PHP Fatal error
      Uncaught Error: Class 'PYS_PRO_GLOBAL\\FacebookAds\\Enum\\AbstractEnum' not found in wp-content/plugins/pixelyoursite/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CommerceSettingsFields.php:38
    • > PHP Fatal error
      Uncaught Error: Class 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AbstractCrudObject' not found in wp-content/plugins/pixelyoursite/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessAssetGroup.php:46
    • > PHP Fatal error
      Uncaught Error: Class 'PYS_PRO_GLOBAL\\FacebookAds\\Enum\\AbstractEnum' not found in wp-content/plugins/pixelyoursite/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/ProfileTypeValues.php:38
    • > PHP Fatal error
      Uncaught Error: Class 'PYS_PRO_GLOBAL\\FacebookAds\\Enum\\AbstractEnum' not found in wp-content/plugins/pixelyoursite/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAsyncRequestSetNotificationModeValues.php:38
    • > PHP Fatal error
      Uncaught Error: Class 'PYS_PRO_GLOBAL\\FacebookAds\\Enum\\AbstractEnum' not found in wp-content/plugins/pixelyoursite/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WhatsAppBusinessAccountFields.php:38
    • > PHP Fatal error
      Uncaught Error: Class 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AbstractObject' not found in wp-content/plugins/pixelyoursite/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCampaignLearningStageInfo.php:42

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine on the user side

Optimizations

Plugin configuration 83% from 29 tests

readme.txt 94% from 16 tests

Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
These attributes need to be fixed:
  • Tags: There are too many tags (16 tag instead of maximum 10)
The official readme.txt is a good inspiration

pixelyoursite/facebook-pixel-master.php 69% from 13 tests

The main PHP script in "PixelYourSite - Your smart PIXEL (TAG) Manager" version 9.4.7.1 is automatically included on every request by WordPress
Please make the necessary changes and fix the following:
  • Main file name: It is recommended to name the main PHP file as the plugin slug ("pixelyoursite.php" instead of "facebook-pixel-master.php")
  • Text Domain: Since WordPress version 4.6 the text domain is optional; if specified, it must be the same as the plugin slug
  • Description: Please keep the plugin description shorter than 140 characters (currently 575 characters long)
  • Requires at least: Required version must be the same as the one declared in readme.txt ("3.0.1" instead of "4.4")

Code Analysis 5% from 3 tests

File types 0% from 1 test

🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Almost there! Just fix the following issues
  • Do not include executable or dangerous files in your plugin
    • .crt - Security Certificate in Firefox, IE, Chrome, Safari
      • wp-content/plugins/pixelyoursite/vendor_prefix/facebook/php-business-sdk/fb_ca_chain_bundle.crt
98,978 lines of code in 1,605 files:
LanguageFilesBlank linesComment linesLines of code
PHP1,57617,58554,65092,903
SVG1002,671
JavaScript85642132,268
JSON13730714
CSS3734272
Markdown3600136
XML10014

PHP code Passed 2 tests

An overview of cyclomatic complexity and code structure
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.18
Average class complexity4.07
▷ Minimum class complexity1.00
▷ Maximum class complexity193.00
Average method complexity1.94
▷ Minimum method complexity1.00
▷ Maximum method complexity63.00
Code structure
Namespaces40
Interfaces41
Traits6
Classes1,475
▷ Abstract classes110.75%
▷ Concrete classes1,46499.25%
▷ Final classes392.66%
Methods4,866
▷ Static methods1,15423.72%
▷ Public methods4,09084.05%
▷ Protected methods54811.26%
▷ Private methods2284.69%
Functions343
▷ Named functions21462.39%
▷ Anonymous functions12937.61%
Constants9,729
▷ Global constants60.06%
▷ Class constants9,72399.94%
▷ Public constants9,71299.89%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Using a strong compression for your PNG files is a great way to speed-up your plugin
10 PNG files occupy 0.03MB with 0.01MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
dist/images/facebook-small-square.png3.21KB1.46KB▼ 54.48%
dist/images/microsoft-small-square.png0.26KB0.20KB▼ 21.59%
dist/images/logo-original.png13.64KB7.24KB▼ 46.92%
dist/images/google-ads-square-small.png4.01KB2.38KB▼ 40.56%
dist/images/favicon.png0.48KB0.46KB▼ 5.45%