77% best-woocommerce-feed

Code Review | Product Feed Manager – WooCommerce to Google Shopping, Social Catalogs, and 170+ Popular Marketplaces

WordPress plugin Product Feed Manager – WooCommerce to Google Shopping, Social Catalogs, and 170+ Popular Marketplaces scored77%from 54 tests.

About plugin

  • Plugin page: best-woocommerce-...
  • Plugin version: 7.3.19
  • PHP compatiblity: 7.3+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.7-6.4
  • WordPress version: 6.3.1
  • First release: Feb 6, 2017
  • Latest release: Nov 30, 2023
  • Number of updates: 491
  • Update frequency: every 5.1 days
  • Top authors: rextheme (100%)

Code review

54 tests

User reviews

159 reviews

Install metrics

10,000+ active /469,379 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
The plugin installed successfully, without throwing any errors or notices

Server metrics [RAM: ▼0.01MB] [CPU: ▼6.68ms] Passed 4 tests

A check of server-side resources used by Product Feed Manager – WooCommerce to Google Shopping, Social Catalogs, and 170+ Popular Marketplaces
No issues were detected with server-side resource usage
PageMemory (MB)CPU Time (ms)
Home /3.46 ▲0.0033.68 ▼7.67
Dashboard /wp-admin3.31 ▼0.0444.22 ▼16.83
Posts /wp-admin/edit.php3.36 ▲0.0044.36 ▲0.71
Add New Post /wp-admin/post-new.php5.89 ▲0.0088.88 ▼2.94
Media Library /wp-admin/upload.php3.23 ▲0.0034.49 ▲4.26

Server storage [IO: ▲11.99MB] [DB: ▲0.07MB] Passed 3 tests

Filesystem and database footprint
No storage issues were detected
Filesystem: 1,393 new files
Database: no new tables, 6 new options
New WordPress options
db_upgraded
widget_recent-posts
theysaidso_admin_options
widget_recent-comments
widget_theysaidso_widget
can_compress_scripts

Browser metrics Passed 4 tests

Checking browser requirements for Product Feed Manager – WooCommerce to Google Shopping, Social Catalogs, and 170+ Popular Marketplaces
Normal browser usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,790 ▲4314.21 ▲0.091.61 ▼0.1035.46 ▼8.17
Dashboard /wp-admin2,195 ▲175.63 ▼0.0490.56 ▼18.6742.67 ▲1.32
Posts /wp-admin/edit.php2,097 ▼31.96 ▼0.0138.82 ▼2.4534.04 ▼4.36
Add New Post /wp-admin/post-new.php1,526 ▼423.44 ▲0.29583.27 ▼7.4967.57 ▲17.71
Media Library /wp-admin/upload.php1,400 ▼04.15 ▼0.0495.10 ▼6.9340.37 ▼2.10

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
Please fix the following items
  • This plugin did not uninstall successfully, leaving 6 options in the database
    • theysaidso_admin_options
    • can_compress_scripts
    • db_upgraded
    • widget_theysaidso_widget
    • widget_recent-comments
    • widget_recent-posts

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Even though no errors were found, this is by no means an exhaustive test

SRP 0% 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
  • 46× PHP files output text when accessed directly (only 10 are shown):
    • > /wp-content/plugins/best-woocommerce-feed/admin/assets/icon/icon-svg/ceneo.php
    • > /wp-content/plugins/best-woocommerce-feed/admin/assets/icon/icon-svg/rakuten.php
    • > /wp-content/plugins/best-woocommerce-feed/admin/assets/icon/icon-svg/pinterest.php
    • > /wp-content/plugins/best-woocommerce-feed/admin/assets/icon/icon-svg/bestprice.php
    • > /wp-content/plugins/best-woocommerce-feed/admin/assets/icon/icon-svg/heureka.php
    • > /wp-content/plugins/best-woocommerce-feed/admin/assets/icon/icon-svg/idealo.php
    • > /wp-content/plugins/best-woocommerce-feed/admin/assets/icon/icon-svg/feed-row-reset-icon.php
    • > /wp-content/plugins/best-woocommerce-feed/admin/assets/icon/icon-svg/click-here.php
    • > /wp-content/plugins/best-woocommerce-feed/admin/assets/icon/icon-svg/icon-question.php
    • > /wp-content/plugins/best-woocommerce-feed/admin/assets/icon/icon-svg/remove.php
  • 932× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'RexFeed\\Google\\Model' not found in wp-content/plugins/best-woocommerce-feed/includes/library/google/apiclient-services/src/ShoppingContent/AccounttaxCustomBatchRequestEntry.php:20
    • > PHP Fatal error
      Uncaught Error: Class 'RexFeed\\Google\\Model' not found in wp-content/plugins/best-woocommerce-feed/includes/library/google/apiclient-services/src/ShoppingContent/TestOrderLineItem.php:20
    • > PHP Fatal error
      Uncaught Error: Class 'Rex_Feed_Abstract_Template' not found in wp-content/plugins/best-woocommerce-feed/admin/feed-templates/class-rex-feed-template-pepperjam.php:19
    • > PHP Fatal error
      Uncaught Error: Class 'Rex_Feed_Abstract_Template' not found in wp-content/plugins/best-woocommerce-feed/admin/feed-templates/class-rex-feed-template-go_banana.php:19
    • > PHP Fatal error
      Uncaught Error: Interface 'RexFeed\\Monolog\\Formatter\\FormatterInterface' not found in wp-content/plugins/best-woocommerce-feed/includes/library/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php:22
    • > PHP Fatal error
      Uncaught Error: Interface 'RexFeed\\Monolog\\Processor\\ProcessorInterface' not found in wp-content/plugins/best-woocommerce-feed/includes/library/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php:19
    • > PHP Fatal error
      Uncaught Error: Class 'RexFeed\\Monolog\\Handler\\GroupHandler' not found in wp-content/plugins/best-woocommerce-feed/includes/library/monolog/monolog/src/Monolog/Handler/FallbackGroupHandler.php:24
    • > PHP Fatal error
      Uncaught Error: Class 'RexFeed\\Google\\Model' not found in wp-content/plugins/best-woocommerce-feed/includes/library/google/apiclient-services/src/ShoppingContent/TimePeriod.php:20
    • > PHP Fatal error
      Uncaught Error: Class 'RexFeed\\Google\\Model' not found in wp-content/plugins/best-woocommerce-feed/includes/library/google/apiclient-services/src/ShoppingContent/OrdersCustomBatchRequestEntryRefundItemShipping.php:20
    • > PHP Fatal error
      Uncaught Error: Class 'RexFeed\\Google\\Model' not found in wp-content/plugins/best-woocommerce-feed/includes/library/google/apiclient-services/src/ShoppingContent/LocalinventoryCustomBatchResponseEntry.php:20

User-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
There were no browser issues found

Optimizations

Plugin configuration 86% 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 your attention:
  • Tags: Too many tags (40 tag instead of maximum 10); only the first 5 tags are used in your directory listing
You can take inspiration from this readme.txt

best-woocommerce-feed/rex-product-feed.php 77% from 13 tests

The main PHP script in "Product Feed Manager – WooCommerce to Google Shopping, Social Catalogs, and 170+ Popular Marketplaces" version 7.3.19 is automatically included on every request by WordPress
It is important to fix the following:
  • 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 188 characters long)
  • Main file name: It is recommended to name the main PHP file as the plugin slug ("best-woocommerce-feed.php" instead of "rex-product-feed.php")

Code Analysis 97% from 3 tests

File types Passed 1 test

🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Good job! No executable or dangerous file extensions detected142,076 lines of code in 1,311 files:
LanguageFilesBlank linesComment linesLines of code
PHP1,26912,16664,419116,790
CSS72407410,627
PO File163,2483,6088,728
JavaScript115134773,124
SVG5002,683
JSON300124

PHP code 50% from 2 tests

An short overview of logical lines of code, cyclomatic complexity, and other code metrics
Please fix the following
  • Please reduce cyclomatic complexity of methods to less than 100 (currently 246)
Cyclomatic complexity
Average complexity per logical line of code0.34
Average class complexity9.39
▷ Minimum class complexity1.00
▷ Maximum class complexity740.00
Average method complexity2.14
▷ Minimum method complexity1.00
▷ Maximum method complexity246.00
Code structure
Namespaces112
Interfaces50
Traits10
Classes1,131
▷ Abstract classes110.97%
▷ Concrete classes1,12099.03%
▷ Final classes393.48%
Methods8,709
▷ Static methods4625.30%
▷ Public methods7,27583.53%
▷ Protected methods7758.90%
▷ Private methods6597.57%
Functions240
▷ Named functions8635.83%
▷ Anonymous functions15464.17%
Constants807
▷ Global constants232.85%
▷ Class constants78497.15%
▷ Public constants74795.28%

Plugin size Passed 2 tests

Image compression Passed 2 tests

It is recommended to compress PNG files in your plugin to minimize bandwidth usage
11 compressed PNG files occupy 0.27MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
admin/assets/icon/video-overlays.png75.40KB30.64KB▼ 59.36%
admin/assets/icon/rating.png0.66KB0.67KB0.00%
admin/assets/icon/star-rating.png0.58KB0.60KB0.00%
admin/assets/icon/hero-bg.png68.20KB75.01KB0.00%
admin/assets/icon/call-to-actions.png73.62KB80.87KB0.00%