Local Pickup for WooCommerce Security & Risk Analysis

wordpress.org/plugins/local-pickup-for-woocommerce

Simplify your WooCommerce shipping with the Local Pickup plugin. Define pickup locations easily, offering convenient options for your customers.

900 active installs v1.1.1 PHP 7.2+ WP 5.0+ Updated Feb 3, 2025
locallocal-pickuppickupshiping-methodwoocommerce
92
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Local Pickup for WooCommerce Safe to Use in 2026?

Generally Safe

Score 92/100

Local Pickup for WooCommerce has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 1yr ago
Risk Assessment

The plugin "local-pickup-for-woocommerce" v1.1.2 exhibits a mixed security posture. On the positive side, it demonstrates good practices by utilizing prepared statements for all SQL queries and has a high percentage of properly escaped output. The absence of known vulnerabilities and critical taint flows is also a strong indicator of a well-maintained codebase in those areas. The plugin also performs file operations and external HTTP requests, which are not inherently risky but warrant careful review in a full audit.

However, a significant concern arises from the substantial attack surface consisting of 15 AJAX handlers, all of which lack authentication checks. This means any unauthenticated user could potentially interact with these endpoints, opening the door for various attacks if the handlers themselves are not meticulously secured against malicious input. While nonce checks are present for these AJAX handlers, their absence of authentication checks is a critical oversight. The presence of bundled libraries like Freemius v1.0 also necessitates verifying that these are kept up-to-date to avoid potential vulnerabilities within them.

Overall, the plugin's lack of historical vulnerabilities is encouraging, but the unprotected AJAX endpoints represent a substantial and immediate risk that needs to be addressed. The plugin's strengths lie in its handling of database interactions and output sanitization, but its security posture is significantly weakened by the large, unprotected attack surface.

Key Concerns

  • AJAX handlers without authentication checks
  • Bundled Freemius v1.0 library
Vulnerabilities
None known

Local Pickup for WooCommerce Security Vulnerabilities

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

Local Pickup for WooCommerce Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
1 prepared
Unescaped Output
82
599 escaped
Nonce Checks
15
Capability Checks
2
File Operations
4
External Requests
4
Bundled Libraries
2

Bundled Libraries

Select2Freemius1.0

SQL Query Safety

100% prepared1 total queries

Output Escaping

88% escaped681 total outputs
Attack Surface
15 unprotected

Local Pickup for WooCommerce Attack Surface

Entry Points15
Unprotected15

AJAX Handlers 15

authwp_ajax_dslpfw_plugin_setup_wizard_submitincludes\class-local-pickup-woocommerce.php:262
authwp_ajax_dslpfw_change_status_from_listincludes\class-local-pickup-woocommerce.php:268
authwp_ajax_dslpfw_json_search_productsincludes\class-local-pickup-woocommerce.php:270
authwp_ajax_dslpfw_export_pickup_locations_actionincludes\class-local-pickup-woocommerce.php:272
authwp_ajax_dslpfw_import_pickup_locations_actionincludes\class-local-pickup-woocommerce.php:273
authwp_ajax_dslpfw_set_cart_item_handlingincludes\class-local-pickup-woocommerce.php:357
noprivwp_ajax_dslpfw_set_cart_item_handlingincludes\class-local-pickup-woocommerce.php:358
authwp_ajax_dslpfw_set_package_handlingincludes\class-local-pickup-woocommerce.php:360
noprivwp_ajax_dslpfw_set_package_handlingincludes\class-local-pickup-woocommerce.php:361
authwp_ajax_dslpfw_set_package_items_handlingincludes\class-local-pickup-woocommerce.php:363
noprivwp_ajax_dslpfw_set_package_items_handlingincludes\class-local-pickup-woocommerce.php:364
authwp_ajax_dslpfw_get_pickup_location_appointment_dataincludes\class-local-pickup-woocommerce.php:366
noprivwp_ajax_dslpfw_get_pickup_location_appointment_dataincludes\class-local-pickup-woocommerce.php:367
authwp_ajax_dslpfw_get_pickup_location_opening_hours_listincludes\class-local-pickup-woocommerce.php:369
noprivwp_ajax_dslpfw_get_pickup_location_opening_hours_listincludes\class-local-pickup-woocommerce.php:370
WordPress Hooks 67
filterposts_whereadmin\class-local-pickup-woocommerce-admin.php:1103
actionwoocommerce_checkout_create_order_line_itemincludes\class-local-pickup-woocommerce-order-items.php:63
actionwoocommerce_checkout_create_order_shipping_itemincludes\class-local-pickup-woocommerce-order-items.php:65
actionwoocommerce_checkout_update_order_metaincludes\class-local-pickup-woocommerce-order-items.php:67
filterwoocommerce_hidden_order_itemmetaincludes\class-local-pickup-woocommerce-order-items.php:70
filterwoocommerce_order_hide_shipping_addressincludes\class-local-pickup-woocommerce-orders.php:41
filterwoocommerce_customer_taxable_addressincludes\class-local-pickup-woocommerce-orders.php:44
actionwoocommerce_order_details_after_order_table_itemsincludes\class-local-pickup-woocommerce-orders.php:47
actionwoocommerce_email_after_order_tableincludes\class-local-pickup-woocommerce-orders.php:48
filterwoocommerce_cart_shipping_packagesincludes\class-local-pickup-woocommerce-packges.php:29
filterwoocommerce_shipping_packagesincludes\class-local-pickup-woocommerce-packges.php:32
actionwoocommerce_cart_emptiedincludes\class-local-pickup-woocommerce-session.php:43
filterwoocommerce_shipping_chosen_methodincludes\class-local-pickup-woocommerce-shipping.php:80
filterplugin_row_metaincludes\class-local-pickup-woocommerce.php:125
filterwoocommerce_shipping_methodsincludes\class-local-pickup-woocommerce.php:132
actiondslpfw_wc_shipping_ds_local_pickup_initincludes\class-local-pickup-woocommerce.php:134
actionbefore_woocommerce_initincludes\class-local-pickup-woocommerce.php:136
actioninitincludes\class-local-pickup-woocommerce.php:138
actionconnect/beforeincludes\class-local-pickup-woocommerce.php:140
actionconnect/afterincludes\class-local-pickup-woocommerce.php:141
filterhide_account_tabsincludes\class-local-pickup-woocommerce.php:144
actionafter_account_detailsincludes\class-local-pickup-woocommerce.php:145
actionhide_billing_and_payments_infoincludes\class-local-pickup-woocommerce.php:146
actionhide_freemius_powered_byincludes\class-local-pickup-woocommerce.php:147
filterplugin_iconincludes\class-local-pickup-woocommerce.php:148
actionplugins_loadedincludes\class-local-pickup-woocommerce.php:234
actionadmin_menuincludes\class-local-pickup-woocommerce.php:247
actionadmin_headincludes\class-local-pickup-woocommerce.php:248
filterset-screen-optionincludes\class-local-pickup-woocommerce.php:249
actionadmin_enqueue_scriptsincludes\class-local-pickup-woocommerce.php:256
actionadmin_enqueue_scriptsincludes\class-local-pickup-woocommerce.php:258
actionadmin_enqueue_scriptsincludes\class-local-pickup-woocommerce.php:259
filteradmin_footer_textincludes\class-local-pickup-woocommerce.php:260
actionadmin_initincludes\class-local-pickup-woocommerce.php:263
actioninitincludes\class-local-pickup-woocommerce.php:265
actionadmin_noticesincludes\class-local-pickup-woocommerce.php:266
filterwoocommerce_get_sections_shippingincludes\class-local-pickup-woocommerce.php:275
actioninitincludes\class-local-pickup-woocommerce.php:276
actionwoocommerce_before_order_itemmetaincludes\class-local-pickup-woocommerce.php:281
actionwoocommerce_product_options_shippingincludes\class-local-pickup-woocommerce.php:292
actionproduct_cat_add_form_fieldsincludes\class-local-pickup-woocommerce.php:299
actionproduct_cat_edit_form_fieldsincludes\class-local-pickup-woocommerce.php:300
actionwoocommerce_process_product_metaincludes\class-local-pickup-woocommerce.php:302
actioncreate_termincludes\class-local-pickup-woocommerce.php:304
actionedit_termincludes\class-local-pickup-woocommerce.php:311
actionadmin_noticesincludes\class-local-pickup-woocommerce.php:319
filterbulk_actions-edit-shop_orderincludes\class-local-pickup-woocommerce.php:321
filterbulk_actions-woocommerce_page_wc-ordersincludes\class-local-pickup-woocommerce.php:322
filterhandle_bulk_actions-edit-shop_orderincludes\class-local-pickup-woocommerce.php:324
filterhandle_bulk_actions-woocommerce_page_wc-ordersincludes\class-local-pickup-woocommerce.php:331
actionadmin_noticesincludes\class-local-pickup-woocommerce.php:339
actionwp_enqueue_scriptsincludes\class-local-pickup-woocommerce.php:351
actionwp_enqueue_scriptsincludes\class-local-pickup-woocommerce.php:352
actiontemplate_redirectincludes\class-local-pickup-woocommerce.php:375
actionwoocommerce_get_item_dataincludes\class-local-pickup-woocommerce.php:377
actionwoocommerce_get_item_dataincludes\class-local-pickup-woocommerce.php:386
filteroption_woocommerce_enable_shipping_calcincludes\class-local-pickup-woocommerce.php:394
filterwoocommerce_checkout_cart_item_quantityincludes\class-local-pickup-woocommerce.php:399
actionwoocommerce_after_shipping_rateincludes\class-local-pickup-woocommerce.php:407
filterwoocommerce_shipping_package_details_arrayincludes\class-local-pickup-woocommerce.php:415
actionwoocommerce_review_order_after_cart_contentsincludes\class-local-pickup-woocommerce.php:423
actionwoocommerce_cart_calculate_feesincludes\class-local-pickup-woocommerce.php:430
actionwoocommerce_after_checkout_validationincludes\class-local-pickup-woocommerce.php:432
filterwoocommerce_shipping_packagesincludes\class-local-pickup-woocommerce.php:439
filterwoocommerce_shipping_package_nameincludes\class-local-pickup-woocommerce.php:441
actionadmin_initlocal-pickup-for-woocommerce.php:200
filterwoocommerce_tax_roundpublic\class-local-pickup-woocommerce-public.php:931
Maintenance & Trust

Local Pickup for WooCommerce Maintenance & Trust

Maintenance Signals

WordPress version tested6.7.5
Last updatedFeb 3, 2025
PHP min version7.2
Downloads6K

Community Trust

Rating100/100
Number of ratings2
Active installs900
Developer Profile

Local Pickup for WooCommerce Developer Profile

dotsquares

37 plugins · 95K total installs

77
trust score
Avg Security Score
97/100
Avg Patch Time
470 days
View full developer profile
Detection Fingerprints

How We Detect Local Pickup for WooCommerce

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/local-pickup-for-woocommerce/admin/css/admin-style.css/wp-content/plugins/local-pickup-for-woocommerce/admin/js/admin-script.js/wp-content/plugins/local-pickup-for-woocommerce/public/css/public-style.css/wp-content/plugins/local-pickup-for-woocommerce/public/js/public-script.js
Script Paths
/wp-content/plugins/local-pickup-for-woocommerce/admin/js/admin-script.js/wp-content/plugins/local-pickup-for-woocommerce/public/js/public-script.js
Version Parameters
local-pickup-for-woocommerce/admin/css/admin-style.css?ver=local-pickup-for-woocommerce/admin/js/admin-script.js?ver=local-pickup-for-woocommerce/public/css/public-style.css?ver=local-pickup-for-woocommerce/public/js/public-script.js?ver=

HTML / DOM Fingerprints

CSS Classes
dslpfw-pickup-location-fielddslpfw-pickup-locations-list
Data Attributes
data-dslpfw-settings
JS Globals
dslpfw
FAQ

Frequently Asked Questions about Local Pickup for WooCommerce