77% webd-woocommerce-product-excel-importer-bulk-edit

Code Review | Product Excel Import Export & Bulk Edit for WooCommerce

WordPress plugin Product Excel Import Export & Bulk Edit for WooCommerce scored77%from 54 tests.

About plugin

  • Plugin page: webd-woocommerce-...
  • Plugin version: 4.3
  • PHP compatiblity: 5.2.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 2.2-6.2
  • WordPress version: 6.3.1
  • First release: Nov 9, 2017
  • Latest release: Jul 13, 2023
  • Number of updates: 63
  • Update frequency: every 32.9 days
  • Top authors: taz_bambu (100%)

Code review

54 tests

User reviews

5 reviews

Install metrics

300+ active /15,572 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 gracefully, with no errors

Server metrics [RAM: ▲0.51MB] [CPU: ▼1.50ms] Passed 4 tests

An overview of server-side resources used by Product Excel Import Export & Bulk Edit for WooCommerce
This plugin has minimal impact on server resources
PageMemory (MB)CPU Time (ms)
Home /3.98 ▲0.5238.01 ▼3.85
Dashboard /wp-admin3.85 ▲0.5547.26 ▼1.78
Posts /wp-admin/edit.php3.90 ▲0.5550.00 ▼1.42
Add New Post /wp-admin/post-new.php6.39 ▲0.5097.14 ▲1.07
Media Library /wp-admin/upload.php3.71 ▲0.4839.97 ▲7.88
Product Excel Importer & Bulk Editing /wp-admin/admin.php?page=webd-woocommerce-product-excel-importer-bulk-edit3.6834.37
Product Excel Importer & Bulk Editing /wp-admin/edit.php?post_type=product&page=webd-woocommerce-product-excel-importer-bulk-edit3.6844.60

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

Filesystem and database footprint
There were no storage issued detected upon installing this plugin
Filesystem: 401 new files
Database: no new tables, 6 new options
New WordPress options
widget_recent-posts
theysaidso_admin_options
db_upgraded
can_compress_scripts
widget_theysaidso_widget
widget_recent-comments

Browser metrics Passed 4 tests

An overview of browser requirements for Product Excel Import Export & Bulk Edit for WooCommerce
Normal browser usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,856 ▲12113.36 ▼1.011.84 ▲0.1941.27 ▼9.00
Dashboard /wp-admin2,237 ▲495.08 ▼0.90107.34 ▲2.5040.66 ▲1.57
Posts /wp-admin/edit.php2,125 ▲362.29 ▲0.2740.58 ▼1.7336.49 ▲0.63
Add New Post /wp-admin/post-new.php1,543 ▲2423.21 ▲0.00672.22 ▼1.2036.26 ▼17.25
Media Library /wp-admin/upload.php1,422 ▲344.50 ▲0.2895.31 ▼8.6142.71 ▼1.10
Product Excel Importer & Bulk Editing /wp-admin/admin.php?page=webd-woocommerce-product-excel-importer-bulk-edit1,5089.71275.2940.70
Product Excel Importer & Bulk Editing /wp-admin/edit.php?post_type=product&page=webd-woocommerce-product-excel-importer-bulk-edit1,50310.03298.5935.30

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
Please fix the following items
  • This plugin does not fully uninstall, leaving 6 options in the database
    • db_upgraded
    • widget_recent-comments
    • theysaidso_admin_options
    • widget_recent-posts
    • widget_theysaidso_widget
    • can_compress_scripts

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Everything seems fine, however 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
Almost there! Just fix the following items
  • 5× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/markbaker/matrix/examples/test.php
    • > /wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/markbaker/complex/examples/testOperations.php
    • > /wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/markbaker/complex/examples/testFunctions.php
    • > /wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/markbaker/matrix/buildPhar.php
    • > /wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/markbaker/complex/examples/complexTest.php
  • 98× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Writer\\BaseWriter' not found in wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls.php:28
    • > PHP Fatal error
      Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\BestFit' not found in wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php:5
    • > PHP Fatal error
      Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Writer\\Pdf' not found in wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Pdf/Tcpdf.php:8
    • > PHP Fatal error
      Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\WriterPart' not found in wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php:22
    • > PHP Fatal error
      Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Reader\\BaseReader' not found in wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Csv.php:9
    • > PHP Fatal error
      Uncaught Error: Class 'Matrix\\Operators\\Operator' not found in wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/markbaker/matrix/classes/src/Operators/Subtraction.php:8
    • > PHP Fatal error
      Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Writer\\BaseWriter' not found in wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Html.php:28
    • > PHP Fatal error
      Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Writer\\Html' not found in wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Pdf.php:11
    • > PHP Fatal error
      Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\WriterPart' not found in wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/ContentTypes.php:11
    • > PHP Fatal error
      Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\BaseParserClass' not found in wp-content/plugins/webd-woocommerce-product-excel-importer-bulk-edit/Classes/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Styles.php:14

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
No browser issues were found

Optimizations

Plugin configuration 93% from 29 tests

readme.txt Passed 16 tests

The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
6 plugin tags: bulk product edit, product export, bulk edit, excel, product import...

webd-woocommerce-product-excel-importer-bulk-edit/webd-woocommerce-product-excel-importer-bulk-edit.php 85% from 13 tests

The primary PHP file in "Product Excel Import Export & Bulk Edit for WooCommerce" version 4.3 is used by WordPress to initiate all plugin functionality
Please make the necessary changes and fix the following:
  • Text Domain: The text domain follows the same naming rules as the plugin slug: lowercase characters and dashes
  • Requires at least: Required version must match the one declared in readme.txt ("3.0.1" instead of "2.2")

Code Analysis 95% 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
Success! There were no dangerous files found in this plugin64,580 lines of code in 340 files:
LanguageFilesBlank linesComment linesLines of code
PHP31513,22031,45360,434
Markdown942302,002
SVG100685
JSON600684
JavaScript29126370
CSS2387276
YAML314182
Bourne Again Shell16324
XML10023

PHP code 0% from 2 tests

Analyzing cyclomatic complexity and code structure
Please fix the following
  • Cyclomatic complexity of classes should be reduced to less than 1000 (currently 1,011)
  • Method cyclomatic complexity should be reduced to less than 100 (currently 387)
Cyclomatic complexity
Average complexity per logical line of code0.38
Average class complexity43.20
▷ Minimum class complexity1.00
▷ Maximum class complexity1,011.00
Average method complexity4.44
▷ Minimum method complexity1.00
▷ Maximum method complexity387.00
Code structure
Namespaces45
Interfaces10
Traits0
Classes232
▷ Abstract classes166.90%
▷ Concrete classes21693.10%
▷ Final classes00.00%
Methods3,000
▷ Static methods69023.00%
▷ Public methods2,30776.90%
▷ Protected methods852.83%
▷ Private methods60820.27%
Functions83
▷ Named functions6983.13%
▷ Anonymous functions1416.87%
Constants779
▷ Global constants20.26%
▷ Class constants77799.74%
▷ Public constants777100.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
5 PNG files occupy 0.20MB with 0.10MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
images/webd_woocommerce_product_excel_importer_bulk_edit.png74.02KB32.36KB▼ 56.28%
images/default.png14.13KB5.96KB▼ 57.80%
images/webdeveloping.png30.41KB16.21KB▼ 46.68%
images/webd_woocommerce_product_excel_importer_bulk_edit_pro.png79.44KB32.39KB▼ 59.23%
images/extendwp.png5.75KB3.37KB▼ 41.46%