PBULKiT – Bulk Edit WooCommerce Products Security & Risk Analysis

wordpress.org/plugins/ithemeland-woo-bulk-product-editor-lite

Stop wasting hours editing products one by one. Bulk edit thousands of WooCommerce products, variations, and prices in minutes.

1K active installs v4.0.6 PHP 8.0.3+ WP 4.4+ Updated Jan 6, 2026
bulk-edit-productsproduct-editorwoocommerce-bulk-editwoocommerce-bulk-product-editingwoocommerce-editor
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is PBULKiT – Bulk Edit WooCommerce Products Safe to Use in 2026?

Generally Safe

Score 100/100

PBULKiT – Bulk Edit WooCommerce Products has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 2mo ago
Risk Assessment

This plugin exhibits a mixed security posture. On the positive side, it demonstrates strong practices regarding output escaping, ensuring that all user-generated content is properly sanitized before being displayed, which is crucial for preventing cross-site scripting (XSS) attacks. The high percentage of SQL queries using prepared statements is also a significant strength, mitigating the risk of SQL injection vulnerabilities. Furthermore, the absence of known historical vulnerabilities suggests a history of responsible development or diligent patching.

However, there are notable concerns. The presence of 77 AJAX handlers, with one handler lacking authentication checks, presents a direct and exploitable attack vector. This unprotected entry point could allow unauthorized users to trigger sensitive actions. The taint analysis revealing 4 high-severity flows with unsanitized paths is another critical red flag, indicating potential vulnerabilities that could lead to data leakage or unauthorized access, despite the overall low number of flows analyzed. The use of the `unserialize` function 18 times is also a potential risk if not handled with extreme care, as it can lead to deserialization vulnerabilities if untrusted data is passed to it.

In conclusion, while the plugin has commendable security practices in place, particularly with output escaping and prepared SQL statements, the identified unprotected AJAX handler and high-severity taint flows represent significant risks that require immediate attention. The lack of historical vulnerabilities is a positive indicator, but it does not negate the immediate threats identified in the static and taint analysis.

Key Concerns

  • Unprotected AJAX handler found
  • High severity taint flows found
  • Use of unserialize function
Vulnerabilities
None known

PBULKiT – Bulk Edit WooCommerce Products Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 16, 2026

PBULKiT – Bulk Edit WooCommerce Products Code Analysis

Dangerous Functions
18
Raw SQL Queries
6
52 prepared
Unescaped Output
7
2243 escaped
Nonce Checks
90
Capability Checks
3
File Operations
2
External Requests
4
Bundled Libraries
1

Dangerous Functions Found

unserialize$selected = isset($this->value) ? unserialize($this->value) : null;classes\product_table\RowHandler.php:334
unserialize$children_ids = (!empty(unserialize($this->value))) ? implode(',', unserialize($this->value)) : '';classes\product_table\RowHandler.php:403
unserialize$children_ids = (!empty(unserialize($this->value))) ? implode(',', unserialize($this->value)) : '';classes\product_table\RowHandler.php:403
unserialize$checked_ids = !is_array($this->value) ? unserialize($this->value) : $this->value;classes\product_table\RowHandler.php:577
unserialize$yith_badge = (!empty($post_meta['_yith_wcbm_product_meta'][0])) ? unserialize($post_meta['_yith_wcbclasses\repositories\Product.php:350
unserialize$field = unserialize($item->field);classes\services\history\HistoryRedoService.php:98
unserialize$item->new_value = is_serialized($item->new_value) ? unserialize($item->new_value) : $item->new_valuclasses\services\history\HistoryRedoService.php:99
unserialize$field = unserialize($item->field);classes\services\history\HistoryRedoService.php:194
unserialize$item->new_value = is_serialized($item->new_value) ? unserialize($item->new_value) : $item->new_valuclasses\services\history\HistoryRedoService.php:195
unserialize$value_item = is_serialized($value_item) ? unserialize($value_item) : $value_item;classes\services\history\HistoryRedoService.php:262
unserialize$item->prev_value = is_serialized($item->prev_value) ? unserialize($item->prev_value) : $item->prev_classes\services\history\HistoryUndoService.php:128
unserialize$field = unserialize($item->field);classes\services\history\HistoryUndoService.php:133
unserialize$item->prev_value = is_serialized($item->prev_value) ? unserialize($item->prev_value) : $item->prev_classes\services\history\HistoryUndoService.php:227
unserialize$field = unserialize($item->field);classes\services\history\HistoryUndoService.php:234
unserialize$value_item = is_serialized($value_item) ? unserialize($value_item) : $value_item;classes\services\history\HistoryUndoService.php:264
unserializeif (is_array(unserialize($history->fields)) && !empty(unserialize($history->fields))) {views\history\history_items.php:32
unserializeif (is_array(unserialize($history->fields)) && !empty(unserialize($history->fields))) {views\history\history_items.php:32
unserializeforeach (unserialize($history->fields) as $field) {views\history\history_items.php:33

Bundled Libraries

Select2

SQL Query Safety

90% prepared58 total queries

Output Escaping

100% escaped2250 total outputs
Data Flows
13 unsanitized

Data Flow Analysis

13 flows13 with unsanitized paths
print_script (classes\controllers\Woocommerce_Bulk_Edit.php:59)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
1 unprotected

PBULKiT – Bulk Edit WooCommerce Products Attack Surface

Entry Points77
Unprotected1

AJAX Handlers 77

authwp_ajax_wcbe_add_meta_keys_by_product_idclasses\controllers\WCBEL_Ajax.php:54
authwp_ajax_wcbe_column_manager_add_fieldclasses\controllers\WCBEL_Ajax.php:55
authwp_ajax_wcbe_column_manager_get_fields_for_editclasses\controllers\WCBEL_Ajax.php:56
authwp_ajax_wcbe_products_filterclasses\controllers\WCBEL_Ajax.php:57
authwp_ajax_wcbe_save_filter_presetclasses\controllers\WCBEL_Ajax.php:58
authwp_ajax_wcbe_product_editclasses\controllers\WCBEL_Ajax.php:59
authwp_ajax_wcbe_get_products_nameclasses\controllers\WCBEL_Ajax.php:60
authwp_ajax_wcbe_create_new_productclasses\controllers\WCBEL_Ajax.php:61
authwp_ajax_wcbe_get_attribute_valuesclasses\controllers\WCBEL_Ajax.php:62
authwp_ajax_wcbe_get_attribute_values_for_deleteclasses\controllers\WCBEL_Ajax.php:63
authwp_ajax_wcbe_get_attribute_values_for_attachclasses\controllers\WCBEL_Ajax.php:64
authwp_ajax_wcbe_get_product_variationsclasses\controllers\WCBEL_Ajax.php:65
authwp_ajax_wcbe_get_product_variations_for_attachclasses\controllers\WCBEL_Ajax.php:66
authwp_ajax_wcbe_set_products_variationsclasses\controllers\WCBEL_Ajax.php:67
authwp_ajax_wcbe_delete_products_variationsclasses\controllers\WCBEL_Ajax.php:68
authwp_ajax_wcbe_delete_productsclasses\controllers\WCBEL_Ajax.php:69
authwp_ajax_wcbe_untrash_productsclasses\controllers\WCBEL_Ajax.php:70
authwp_ajax_wcbe_empty_trashclasses\controllers\WCBEL_Ajax.php:71
authwp_ajax_wcbe_duplicate_productclasses\controllers\WCBEL_Ajax.php:72
authwp_ajax_wcbe_add_product_taxonomyclasses\controllers\WCBEL_Ajax.php:73
authwp_ajax_wcbe_add_product_attributeclasses\controllers\WCBEL_Ajax.php:74
authwp_ajax_wcbe_load_filter_profileclasses\controllers\WCBEL_Ajax.php:75
authwp_ajax_wcbe_delete_filter_profileclasses\controllers\WCBEL_Ajax.php:76
authwp_ajax_wcbe_save_column_profileclasses\controllers\WCBEL_Ajax.php:77
authwp_ajax_wcbe_get_text_editor_contentclasses\controllers\WCBEL_Ajax.php:78
authwp_ajax_wcbe_history_filterclasses\controllers\WCBEL_Ajax.php:79
authwp_ajax_wcbe_history_undoclasses\controllers\WCBEL_Ajax.php:80
authwp_ajax_wcbe_history_redoclasses\controllers\WCBEL_Ajax.php:81
authwp_ajax_wcbe_change_count_per_pageclasses\controllers\WCBEL_Ajax.php:82
authwp_ajax_wcbe_filter_profile_change_use_alwaysclasses\controllers\WCBEL_Ajax.php:83
authwp_ajax_wcbe_get_default_filter_profile_productsclasses\controllers\WCBEL_Ajax.php:84
authwp_ajax_wcbe_get_taxonomy_parent_select_boxclasses\controllers\WCBEL_Ajax.php:85
authwp_ajax_wcbe_get_product_dataclasses\controllers\WCBEL_Ajax.php:86
authwp_ajax_wcbe_get_product_by_idsclasses\controllers\WCBEL_Ajax.php:87
authwp_ajax_wcbe_get_product_filesclasses\controllers\WCBEL_Ajax.php:88
authwp_ajax_wcbe_add_new_file_itemclasses\controllers\WCBEL_Ajax.php:89
authwp_ajax_wcbe_variation_attachingclasses\controllers\WCBEL_Ajax.php:90
authwp_ajax_wcbe_sort_by_columnclasses\controllers\WCBEL_Ajax.php:91
authwp_ajax_wcbe_clear_filter_dataclasses\controllers\WCBEL_Ajax.php:92
authwp_ajax_wcbe_get_product_badge_idsclasses\controllers\WCBEL_Ajax.php:93
authwp_ajax_wcbe_get_product_ithemeland_badgeclasses\controllers\WCBEL_Ajax.php:94
authwp_ajax_wcbe_get_yikes_custom_product_tabsclasses\controllers\WCBEL_Ajax.php:95
authwp_ajax_wcbe_add_yikes_saved_tabclasses\controllers\WCBEL_Ajax.php:96
authwp_ajax_wcbe_get_product_gallery_imagesclasses\controllers\WCBEL_Ajax.php:97
authwp_ajax_wcbe_get_it_wc_role_pricesclasses\controllers\WCBEL_Ajax.php:98
authwp_ajax_wcbe_get_it_wc_dynamic_pricing_selected_rolesclasses\controllers\WCBEL_Ajax.php:99
authwp_ajax_wcbe_get_it_wc_dynamic_pricing_all_fieldsclasses\controllers\WCBEL_Ajax.php:100
authwp_ajax_wcbe_history_change_pageclasses\controllers\WCBEL_Ajax.php:101
authwp_ajax_wcbe_get_product_custom_field_filesclasses\controllers\WCBEL_Ajax.php:102
authwp_ajax_wcbe_add_custom_field_file_itemclasses\controllers\WCBEL_Ajax.php:103
authwp_ajax_wcbe_bulk_edit_add_custom_field_file_itemclasses\controllers\WCBEL_Ajax.php:104
authwp_ajax_wcbe_get_usersclasses\controllers\WCBEL_Ajax.php:105
authwp_ajax_wcbe_get_bulk_new_tabs_contentclasses\controllers\WCBEL_Ajax.php:106
authwp_ajax_wcbe_get_bulk_edit_tabs_contentclasses\controllers\WCBEL_Ajax.php:107
authwp_ajax_wcbe_get_filter_form_tabs_contentclasses\controllers\WCBEL_Ajax.php:108
authwp_ajax_wcbe_get_taxonomy_termsclasses\controllers\WCBEL_Ajax.php:109
authwp_ajax_wcbe_get_more_variationsclasses\controllers\WCBEL_Ajax.php:110
authwp_ajax_wcbe_get_meta_fields_contentclasses\controllers\WCBEL_Ajax.php:111
authwp_ajax_wcbe_get_column_manager_contentclasses\controllers\WCBEL_Ajax.php:112
authwp_ajax_wcbe_get_filter_profile_contentclasses\controllers\WCBEL_Ajax.php:113
authwp_ajax_wcbe_get_column_profile_contentclasses\controllers\WCBEL_Ajax.php:114
authwp_ajax_wcbe_get_product_authorclasses\controllers\WCBEL_Ajax.php:115
authwp_ajax_wcbe_get_product_taxonomy_termsclasses\controllers\WCBEL_Ajax.php:116
authwp_ajax_wcbe_get_acf_taxonomy_termsclasses\controllers\WCBEL_Ajax.php:117
authwp_ajax_wcbe_get_product_attribute_termsclasses\controllers\WCBEL_Ajax.php:118
authwp_ajax_wcbe_get_manage_variation_attributes_contentclasses\controllers\WCBEL_Ajax.php:119
authwp_ajax_wcbe_is_processingclasses\controllers\WCBEL_Ajax.php:120
authwp_ajax_wcbe_background_process_force_stopclasses\controllers\WCBEL_Ajax.php:121
authwp_ajax_wcbe_background_process_clear_complete_messageclasses\controllers\WCBEL_Ajax.php:122
authwp_ajax_wcbe_background_process_clear_tasks_countclasses\controllers\WCBEL_Ajax.php:123
authwp_ajax_wcbe_column_manager_add_fieldclasses\controllers\WCBEL_Ajax.php:124
authwp_ajax_wcbe_add_meta_keys_manualclasses\controllers\WCBEL_Ajax.php:125
authwp_ajax_wcbe_add_acf_meta_fieldclasses\controllers\WCBEL_Ajax.php:126
authwp_ajax_wcbe_add_schedule_jobclasses\services\scheduler\Product_Scheduler.php:41
authwp_ajax_wcbe_get_schedule_jobsclasses\services\scheduler\Product_Scheduler.php:42
authwp_ajax_wcbe_schedule_get_current_timeclasses\services\scheduler\Scheduler.php:43
authwp_ajax_wcbel_ithemeland_onboarding_pluginframework\onboarding\Onboarding.php:24
WordPress Hooks 36
filtersafe_style_cssclasses\bootstrap\WCBEL.php:49
actionadmin_menuclasses\bootstrap\WCBEL.php:55
actionadmin_enqueue_scriptsclasses\bootstrap\WCBEL.php:56
filterposts_whereclasses\bootstrap\WCBEL_Custom_Queries.php:20
filterposts_whereclasses\bootstrap\WCBEL_Custom_Queries.php:21
filterposts_joinclasses\bootstrap\WCBEL_Custom_Queries.php:118
filterwcbe_column_fieldsclasses\bootstrap\WCBEL_Meta_Fields.php:23
filterwcbe_column_fieldsclasses\bootstrap\WCBEL_Meta_Fields.php:24
filterit_black_friday_bannerclasses\bootstrap\WCBEL_Top_Banners.php:26
actionadmin_noticesclasses\bootstrap\WCBEL_Top_Banners.php:30
actionadmin_post_wcbel_black_friday_banner_dismissclasses\bootstrap\WCBEL_Top_Banners.php:31
actionadmin_post_wcbe_column_manager_new_presetclasses\controllers\WCBEL_Post.php:29
actionadmin_post_wcbe_column_manager_edit_presetclasses\controllers\WCBEL_Post.php:30
actionadmin_post_wcbe_column_manager_delete_presetclasses\controllers\WCBEL_Post.php:31
actionadmin_post_wcbe_load_column_profileclasses\controllers\WCBEL_Post.php:32
actionadmin_post_wcbe_settingsclasses\controllers\WCBEL_Post.php:33
actionadmin_post_wcbe_export_productsclasses\controllers\WCBEL_Post.php:34
actionadmin_post_wcbe_save_column_profileclasses\controllers\WCBEL_Post.php:35
actionadmin_post_wcbe_variation_attachingclasses\controllers\WCBEL_Post.php:36
filterwcbe_top_navigation_buttonsclasses\controllers\Woocommerce_Bulk_Edit.php:43
filterwcbe_footer_view_filesclasses\controllers\Woocommerce_Bulk_Edit.php:44
filterwcbe_column_fieldsclasses\repositories\Column.php:40
filterwcbe_column_fieldsclasses\repositories\Column.php:47
filterwcbe_column_fieldsclasses\repositories\Column.php:54
filterwcbe_column_fieldsclasses\repositories\Column.php:61
filterwcbe_column_fieldsclasses\repositories\Column.php:68
filterwcbe_column_fieldsclasses\repositories\Column.php:75
filterwcbe_column_fieldsclasses\repositories\Column.php:82
filtercron_schedulesclasses\services\scheduler\Scheduler.php:31
actionadmin_enqueue_scriptsclasses\services\scheduler\Scheduler.php:32
actionadmin_initframework\analytics\AnalyticsTracker.php:22
actioninitframework\analytics\AnalyticsTracker.php:23
actioninitithemeland-woo-bulk-product-editor-lite.php:55
actionbefore_woocommerce_initithemeland-woo-bulk-product-editor-lite.php:58
actionplugins_loadedithemeland-woo-bulk-product-editor-lite.php:64
actionadmin_noticesviews\alerts\woocommerce_required.php:14
Maintenance & Trust

PBULKiT – Bulk Edit WooCommerce Products Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedJan 6, 2026
PHP min version8.0.3
Downloads27K

Community Trust

Rating84/100
Number of ratings5
Active installs1K
Developer Profile

PBULKiT – Bulk Edit WooCommerce Products Developer Profile

ithemelandco

8 plugins · 4K total installs

94
trust score
Avg Security Score
100/100
Avg Patch Time
8 days
View full developer profile
Detection Fingerprints

How We Detect PBULKiT – Bulk Edit WooCommerce Products

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/css/style-core.css/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/css/bootstrap.min.css/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/css/select2.min.css/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/css/style.css/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/bootstrap.min.js/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/select2.min.js/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/custom.js/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/wcbel-vue.js+3 more
Script Paths
/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/bootstrap.min.js/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/select2.min.js/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/custom.js/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/wcbel-vue.js/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/wcbel-app.js/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/wcbel-app-mixins.js+1 more
Version Parameters
/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/css/style-core.css?ver=/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/css/bootstrap.min.css?ver=/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/css/select2.min.css?ver=/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/css/style.css?ver=/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/bootstrap.min.js?ver=/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/select2.min.js?ver=/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/custom.js?ver=/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/wcbel-vue.js?ver=/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/wcbel-app.js?ver=/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/wcbel-app-mixins.js?ver=/wp-content/plugins/ithemeland-woo-bulk-product-editor-lite/assets/js/wcbel-app-settings.js?ver=

HTML / DOM Fingerprints

CSS Classes
wcbel-icon-go-pro
Data Attributes
data-wcbe-options
JS Globals
WCBEL_URLWCBEL_VERSIONwcbel_config
REST Endpoints
/wp-json/wcbel/v1/search
FAQ

Frequently Asked Questions about PBULKiT – Bulk Edit WooCommerce Products