72% gg-woo-feed

Code Review | GG Woo Feed for WooCommerce Shopping Feed on Google Facebook and Other Channels

WordPress plugin GG Woo Feed for WooCommerce Shopping Feed on Google Facebook and Other Channels scored72%from 54 tests.

About plugin

  • Plugin page: gg-woo-feed
  • Plugin version: 1.2.4
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.4-6.2
  • WordPress version: 6.3.1
  • First release: Apr 15, 2020
  • Latest release: Jul 4, 2023
  • Number of updates: 48
  • Update frequency: every 24.5 days
  • Top authors: gutengeek (100%)

Code review

54 tests

User reviews

10 reviews

Install metrics

3,000+ active /11,820 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
Installer ran successfully

Server metrics [RAM: ▲0.07MB] [CPU: ▼10.63ms] Passed 4 tests

This is a short check of server-side resources used by GG Woo Feed for WooCommerce Shopping Feed on Google Facebook and Other Channels
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /3.54 ▲0.0836.85 ▼5.27
Dashboard /wp-admin3.38 ▲0.0450.00 ▼18.02
Posts /wp-admin/edit.php3.49 ▲0.1450.41 ▲0.69
Add New Post /wp-admin/post-new.php5.98 ▲0.0986.30 ▼19.92
Media Library /wp-admin/upload.php3.30 ▲0.0844.34 ▲7.07
Manage Feeds /wp-admin/admin.php?page=gg-woo-feed-feeds3.3436.28
Google Status /wp-admin/admin.php?page=gg-woo-feed-google-status3.3336.40
Google Merchant Sync /wp-admin/admin.php?page=gg-woo-feed-google-sync3.2732.86
Add New Feed /wp-admin/admin.php?page=gg-woo-feed-add-feed3.4735.68
System Info /wp-admin/admin.php?page=gg-woo-feed-system3.3341.22
Settings /wp-admin/admin.php?page=gg-woo-feed-settings3.4238.47

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

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

Browser metrics Passed 4 tests

A check of browser resources used by GG Woo Feed for WooCommerce Shopping Feed on Google Facebook and Other Channels
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,881 ▲13513.36 ▼1.022.05 ▲0.1845.32 ▲4.38
Dashboard /wp-admin2,260 ▲695.17 ▲0.25110.33 ▲4.4040.78 ▼2.77
Posts /wp-admin/edit.php2,148 ▲622.33 ▲0.3139.38 ▲1.6134.91 ▲1.51
Add New Post /wp-admin/post-new.php1,559 ▲4523.33 ▲5.86679.36 ▼20.5152.77 ▲3.86
Media Library /wp-admin/upload.php1,445 ▲604.38 ▲0.1598.15 ▼15.7346.23 ▼3.81
Manage Feeds /wp-admin/admin.php?page=gg-woo-feed-feeds1,0652.2736.8327.86
Google Status /wp-admin/admin.php?page=gg-woo-feed-google-status8391.9627.7927.70
Google Merchant Sync /wp-admin/admin.php?page=gg-woo-feed-google-sync8941.8827.6135.55
Add New Feed /wp-admin/admin.php?page=gg-woo-feed-add-feed7491.9223.2123.15
System Info /wp-admin/admin.php?page=gg-woo-feed-system1,0701.8828.3030.03
Settings /wp-admin/admin.php?page=gg-woo-feed-settings9552.2037.2329.09

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
  • This plugin does not fully uninstall, leaving 7 options in the database
    • widget_recent-comments
    • theysaidso_admin_options
    • can_compress_scripts
    • recovery_mode_email_last_sent
    • widget_theysaidso_widget
    • widget_recent-posts
    • db_upgraded

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/admin.php?page=gg-woo-feed-add-feed
    • > Error in wp-content/plugins/gg-woo-feed/inc/Core/functions.php+194
    Uncaught Error: Call to undefined function wc_get_price_decimal_separator() in wp-content/plugins/gg-woo-feed/inc/Core/functions.php:194
    Stack trace:
    #0 wp-content/plugins/gg-woo-feed/inc/Admin/view/add-feed.php(16): gg_woo_feed_parse_feed_queries()
    #1 wp-content/plugins/gg-woo-feed/inc/Admin/Admin.php(311): require_once('/var/www/wordpr...')
    #2 wp-includes/class-wp-hook.php(310): GG_Woo_Feed\Admin\Admin->render_add_new_feed()
    #3 wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters()
    #4 wp-includes/plugin.php(517): WP_Hook->do_action()
    #5 wp-admin/admin.php(259): do_action()
    #6 {main}
    thrown

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
Almost there! Just fix the following items
  • 484× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'Google_Model' not found in wp-content/plugins/gg-woo-feed/vendor/google/apiclient-services/src/Google/Service/ShoppingContent/HolidaysHoliday.php:18
    • > PHP Fatal error
      Uncaught Error: Class 'Google\\Auth\\CredentialsLoader' not found in wp-content/plugins/gg-woo-feed/vendor/google/auth/src/Credentials/AppIdentityCredentials.php:57
    • > PHP Fatal error
      Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/gg-woo-feed/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php:21
    • > PHP Fatal error
      Uncaught Error: Class 'Monolog\\Handler\\MailHandler' not found in wp-content/plugins/gg-woo-feed/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php:22
    • > PHP Fatal error
      Uncaught Error: Class 'Google_Model' not found in wp-content/plugins/gg-woo-feed/vendor/google/apiclient-services/src/Google/Service/ShoppingContent/CustomerReturnReason.php:18
    • > PHP Fatal error
      Uncaught Error: Class 'Google_Model' not found in wp-content/plugins/gg-woo-feed/vendor/google/apiclient-services/src/Google/Service/ShoppingContent/AccountStatusAccountLevelIssue.php:18
    • > PHP Fatal error
      Uncaught Error: Class 'Google_Model' not found in wp-content/plugins/gg-woo-feed/vendor/google/apiclient-services/src/Google/Service/ShoppingContent/OrderinvoicesCreateRefundInvoiceResponse.php:18
    • > PHP Fatal error
      Uncaught Error: Class 'Google_Collection' not found in wp-content/plugins/gg-woo-feed/vendor/google/apiclient-services/src/Google/Service/ShoppingContent/OrderShipment.php:18
    • > PHP Fatal error
      Uncaught Error: Class 'Google_Model' not found in wp-content/plugins/gg-woo-feed/vendor/google/apiclient-services/src/Google/Service/ShoppingContent/OrderReportTransaction.php:18
    • > PHP Fatal error
      Uncaught Error: Class 'Google_Model' not found in wp-content/plugins/gg-woo-feed/vendor/google/apiclient-services/src/Google/Service/ShoppingContent/PosInventoryRequest.php:18

User-side errors 0% from 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Please fix the following browser errors
    • > GET request to /wp-admin/admin.php?page=gg-woo-feed-add-feed
    • > Console-api (warning) in unknown
    /wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-mouse,jquery-ui-sortable&ver=6.3.1 1:28609 "jQuery.Deferred exception: ClipboardJS is not defined" "ReferenceError: ClipboardJS is not defined\n at Object.copyInit (/wp-content/plugins/gg-woo-feed/assets/js/admin.js?ver=1.2.4:103:11)\n at HTMLDocument.init (/wp-content/plugins/gg-woo-feed/assets/js/admin.js?ver=1.2.4:11:29)\n at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-mouse,jquery-ui-sortable&ver=6.3.1:2:26990)\n at t (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-mouse,jquery-ui-sortable&ver=6.3.1:2:27292)" undefined
    • > GET request to /wp-admin/admin.php?page=gg-woo-feed-add-feed
    • > Javascript (severe) in unknown
    /wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-mouse,jquery-ui-sortable&ver=6.3.1 1:28721 Uncaught ReferenceError: ClipboardJS is not defined

Optimizations

Plugin configuration 90% from 29 tests

readme.txt 88% 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
Attributes that require attention:
  • Tags: Please reduce the number of tags, currently 11 tag instead of maximum 10
  • Screenshots: These screenshots need descriptions #1, #2, #3, #4, #5, #6, #7, #8 in gg-woo-feed/assets to your readme.txt
The official readme.txt might help

gg-woo-feed/gg-woo-feed.php 92% from 13 tests

Analyzing the main PHP file in "GG Woo Feed for WooCommerce Shopping Feed on Google Facebook and Other Channels" version 1.2.4
It is important to fix the following:
  • Requires at least: Required version must be the same as the one declared in readme.txt ("4.9" instead of "4.4")

Code Analysis 97% from 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
No dangerous file extensions were detected88,520 lines of code in 817 files:
LanguageFilesBlank linesComment linesLines of code
PHP68011,16337,08969,175
JavaScript712,69588110,817
Markdown401,83005,214
CSS64641191,925
JSON14001,297
YAML26043
SVG10019
XML10011
Dockerfile18010
make1409

PHP code 50% from 2 tests

An short overview of logical lines of code, cyclomatic complexity, and other code metrics
These items need your attention
  • Please reduce cyclomatic complexity of methods to less than 100 (currently 106)
Cyclomatic complexity
Average complexity per logical line of code0.35
Average class complexity13.02
▷ Minimum class complexity1.00
▷ Maximum class complexity632.00
Average method complexity2.47
▷ Minimum method complexity1.00
▷ Maximum method complexity106.00
Code structure
Namespaces52
Interfaces34
Traits10
Classes580
▷ Abstract classes142.41%
▷ Concrete classes56697.59%
▷ Final classes142.47%
Methods5,137
▷ Static methods2444.75%
▷ Public methods4,59789.49%
▷ Protected methods2564.98%
▷ Private methods2845.53%
Functions219
▷ Named functions10547.95%
▷ Anonymous functions11452.05%
Constants372
▷ Global constants318.33%
▷ Class constants34191.67%
▷ Public constants32294.43%

Plugin size Passed 2 tests

Image compression Passed 2 tests

It is recommended to compress PNG files in your plugin to minimize bandwidth usage
No PNG files were detected