PostNL for WooCommerce Security & Risk Analysis

wordpress.org/plugins/woo-postnl

The official PostNL plugin allows you to automate your e-commerce order process. Covering shipping services from PostNL Netherlands and Belgium.

3K active installs v5.9.4 PHP 7.4+ WP 6.7+ Updated Feb 17, 2026
labelspostnlshippingwoocommerce
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is PostNL for WooCommerce Safe to Use in 2026?

Generally Safe

Score 100/100

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

No known CVEs Updated 1mo ago
Risk Assessment

The "woo-postnl" plugin version 5.9.4 exhibits a generally strong security posture with a significant number of positive indicators. The absence of known CVEs, including any currently unpatched vulnerabilities, is a very positive sign, suggesting a history of secure development and prompt patching if issues have arisen. The code analysis reveals excellent practices in handling SQL queries, with 100% using prepared statements, and a high rate of output escaping (96%). The limited number of file operations and external HTTP requests, along with a relatively low number of entry points, also contributes to a reduced attack surface.

However, there are a few areas that warrant attention. The presence of one REST API route lacking permission callbacks presents a direct security concern, as it could potentially be accessed and manipulated by unauthorized users. While the overall attack surface is small, this single unprotected entry point is significant. The static analysis indicates a total of 15 entry points, with one of them being unprotected. This means that while the majority of entry points are secured, there is a single weakness that could be exploited.

In conclusion, "woo-postnl" v5.9.4 is commendably secure based on the provided data. The robust handling of SQL and output, coupled with a clean vulnerability history, are significant strengths. The primary concern is the single unprotected REST API route, which should be addressed. Addressing this would further enhance an already strong security profile.

Key Concerns

  • REST API route without permission callback
Vulnerabilities
None known

PostNL for WooCommerce Security Vulnerabilities

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

PostNL for WooCommerce Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
12
301 escaped
Nonce Checks
10
Capability Checks
4
File Operations
8
External Requests
3
Bundled Libraries
1

Bundled Libraries

TCPDF

Output Escaping

96% escaped313 total outputs
Attack Surface
1 unprotected

PostNL for WooCommerce Attack Surface

Entry Points15
Unprotected1

AJAX Handlers 13

authwp_ajax_postnl_set_checkout_post_datasrc\Checkout_Blocks\Extend_Block_Core.php:66
noprivwp_ajax_postnl_set_checkout_post_datasrc\Checkout_Blocks\Extend_Block_Core.php:67
noprivwp_ajax_get_postnl_user_infosrc\Frontend\Fill_In_With_Postnl_Handler.php:53
authwp_ajax_get_postnl_user_infosrc\Frontend\Fill_In_With_Postnl_Handler.php:54
authwp_ajax_postnl_create_labelsrc\Order\Bulk.php:76
authwp_ajax_postnl_order_save_formsrc\Order\Single.php:41
noprivwp_ajax_postnl_order_save_formsrc\Order\Single.php:42
authwp_ajax_postnl_order_delete_datasrc\Order\Single.php:44
noprivwp_ajax_postnl_order_delete_datasrc\Order\Single.php:45
authwp_ajax_postnl_activate_return_functionsrc\Order\Single.php:49
noprivwp_ajax_postnl_activate_return_functionsrc\Order\Single.php:50
authwp_ajax_postnl_send_smart_return_emailsrc\Order\Single.php:52
noprivwp_ajax_postnl_send_smart_return_emailsrc\Order\Single.php:53

REST API Routes 1

POST/wp-json/postnl/v1/get-redirect-urisrc\Frontend\Fill_In_With_Postnl.php:193

Shortcodes 1

[print_fill_in_with_postnl_button] src\Frontend\Fill_In_With_Postnl.php:43
WordPress Hooks 99
actionplugins_loadedpostnl-for-woocommerce.php:60
actionwoocommerce_store_api_checkout_update_order_from_requestsrc\Checkout_Blocks\Extend_Block_Core.php:41
actioninitsrc\Checkout_Blocks\Extend_Block_Core.php:52
actionwoocommerce_cart_calculate_feessrc\Checkout_Blocks\Extend_Block_Core.php:53
filterwoocommerce_package_ratessrc\Checkout_Blocks\Extend_Block_Core.php:54
actionwoocommerce_store_api_cart_errorssrc\Checkout_Blocks\Extend_Block_Core.php:61
actioninitsrc\Checkout_Blocks\Extend_Block_Core.php:98
actioninitsrc\Checkout_Blocks\Extend_Store_Endpoint.php:43
filterwoocommerce_checkout_posted_datasrc\Frontend\Base.php:104
actionwoocommerce_checkout_update_order_metasrc\Frontend\Base.php:105
actionwoocommerce_checkout_update_order_metasrc\Frontend\Base.php:106
actionwoocommerce_checkout_update_order_metasrc\Frontend\Base.php:107
actionwoocommerce_checkout_update_order_metasrc\Frontend\Base.php:108
filterpostnl_frontend_checkout_tabsrc\Frontend\Base.php:109
actionpostnl_checkout_contentsrc\Frontend\Base.php:110
filterwoocommerce_email_order_meta_fieldssrc\Frontend\Base.php:111
filterwoocommerce_default_address_fieldssrc\Frontend\Checkout_Fields.php:48
filterwoocommerce_get_country_localesrc\Frontend\Checkout_Fields.php:51
filterwoocommerce_country_locale_field_selectorssrc\Frontend\Checkout_Fields.php:52
actionwp_enqueue_scriptssrc\Frontend\Container.php:55
actionwoocommerce_review_order_after_shippingsrc\Frontend\Container.php:57
actionwoocommerce_cart_calculate_feessrc\Frontend\Container.php:58
filterwoocommerce_update_order_review_fragmentssrc\Frontend\Container.php:60
filterwoocommerce_cart_shipping_method_full_labelsrc\Frontend\Container.php:61
filterwoocommerce_package_ratessrc\Frontend\Container.php:64
filterwoocommerce_cart_shipping_packagessrc\Frontend\Container.php:67
actionwp_headsrc\Frontend\Fill_In_With_Postnl.php:44
filterrender_blocksrc\Frontend\Fill_In_With_Postnl.php:45
actionrest_api_initsrc\Frontend\Fill_In_With_Postnl.php:46
actionwp_enqueue_scriptssrc\Frontend\Fill_In_With_Postnl.php:47
actiontemplate_redirectsrc\Frontend\Fill_In_With_Postnl_Handler.php:55
actionadmin_noticessrc\Main.php:103
actionbefore_woocommerce_initsrc\Main.php:110
actionbefore_woocommerce_initsrc\Main.php:111
actionadmin_noticessrc\Main.php:114
actioninitsrc\Main.php:120
filterwoocommerce_shipping_methodssrc\Main.php:121
actioninitsrc\Main.php:203
actioninitsrc\Main.php:204
filterwoocommerce_locate_templatesrc\Main.php:207
filterwoocommerce_email_classessrc\Main.php:209
actionblock_categories_allsrc\Main.php:212
filterplugin_row_metasrc\Main.php:214
actionwoocommerce_blocks_checkout_block_registrationsrc\Main.php:438
filterbulk_actions-edit-shop_ordersrc\Order\Bulk.php:34
filterhandle_bulk_actions-edit-shop_ordersrc\Order\Bulk.php:35
filterhandle_bulk_actions-edit-shop_ordersrc\Order\Bulk.php:36
filterbulk_actions-woocommerce_page_wc-orderssrc\Order\Bulk.php:46
filterhandle_bulk_actions-woocommerce_page_wc-orderssrc\Order\Bulk.php:47
filterhandle_bulk_actions-woocommerce_page_wc-orderssrc\Order\Bulk.php:56
actionadmin_enqueue_scriptssrc\Order\Bulk.php:66
actionadmin_footersrc\Order\Bulk.php:67
actionadmin_footersrc\Order\Bulk.php:68
filterpostnl_order_meta_box_fieldssrc\Order\Bulk.php:69
actionadmin_noticessrc\Order\Bulk.php:72
actioninitsrc\Order\Bulk.php:73
filterwoocommerce_admin_order_actionssrc\Order\Bulk.php:77
filtermanage_edit-shop_order_columnssrc\Order\OrdersList.php:28
filtermanage_woocommerce_page_wc-orders_columnssrc\Order\OrdersList.php:29
actionmanage_shop_order_posts_custom_columnsrc\Order\OrdersList.php:32
actionmanage_woocommerce_page_wc-orders_custom_columnsrc\Order\OrdersList.php:33
filtermanage_edit-shop_order_columnssrc\Order\OrdersList.php:36
filtermanage_woocommerce_page_wc-orders_columnssrc\Order\OrdersList.php:37
actionmanage_shop_order_posts_custom_columnsrc\Order\OrdersList.php:40
actionmanage_woocommerce_page_wc-orders_custom_columnsrc\Order\OrdersList.php:41
filtermanage_edit-shop_order_columnssrc\Order\OrdersList.php:44
filtermanage_woocommerce_page_wc-orders_columnssrc\Order\OrdersList.php:45
actionmanage_shop_order_posts_custom_columnsrc\Order\OrdersList.php:48
actionmanage_woocommerce_page_wc-orders_custom_columnsrc\Order\OrdersList.php:49
filtermanage_edit-shop_order_sortable_columnssrc\Order\OrdersList.php:52
actionpre_get_postssrc\Order\OrdersList.php:55
filtermanage_edit-shop_order_columnssrc\Order\OrdersList.php:59
filtermanage_woocommerce_page_wc-orders_columnssrc\Order\OrdersList.php:60
actionmanage_shop_order_posts_custom_columnsrc\Order\OrdersList.php:63
actionmanage_woocommerce_page_wc-orders_custom_columnsrc\Order\OrdersList.php:64
filterposts_joinsrc\Order\OrdersList.php:226
filterposts_orderbysrc\Order\OrdersList.php:236
filterwoocommerce_admin_shipping_fieldssrc\Order\Single.php:33
filterwoocommerce_admin_billing_fieldssrc\Order\Single.php:34
filterwoocommerce_order_formatted_shipping_addresssrc\Order\Single.php:35
filterwoocommerce_order_formatted_billing_addresssrc\Order\Single.php:36
actionadmin_enqueue_scriptssrc\Order\Single.php:38
actionadd_meta_boxessrc\Order\Single.php:39
actioninitsrc\Order\Single.php:47
actionwoocommerce_after_order_itemmetasrc\Order\Single.php:55
actionwoocommerce_block_template_area_product-form_after_add_block_product-shipping-dimensionssrc\Product\Product_Editor.php:25
actionwoocommerce_block_template_area_product-form_after_add_block_product-variation-shipping-dimensionssrc\Product\Product_Editor.php:26
actionwoocommerce_product_options_shippingsrc\Product\Single.php:146
actionwoocommerce_process_product_metasrc\Product\Single.php:147
actionwoocommerce_variation_options_pricingsrc\Product\Single.php:148
actionwoocommerce_save_product_variationsrc\Product\Single.php:149
actionadmin_enqueue_scriptssrc\Product\Single.php:150
actionwoocommerce_before_product_object_savesrc\Product\Single.php:151
filterwoocommerce_get_sections_shippingsrc\Shipping_Method\Fill_In_With_PostNL_Settings.php:24
filterwoocommerce_get_settings_shippingsrc\Shipping_Method\Fill_In_With_PostNL_Settings.php:25
actionadmin_enqueue_scriptssrc\Shipping_Method\Fill_In_With_PostNL_Settings.php:26
filterwoocommerce_admin_settings_sanitize_optionsrc\Shipping_Method\Fill_In_With_PostNL_Settings.php:27
actionadmin_enqueue_scriptssrc\Shipping_Method\PostNL.php:60
filterwoocommerce_order_data_store_cpt_get_orders_querysrc\Updater\Order.php:44
Maintenance & Trust

PostNL for WooCommerce Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 17, 2026
PHP min version7.4
Downloads143K

Community Trust

Rating52/100
Number of ratings41
Active installs3K
Developer Profile

PostNL for WooCommerce Developer Profile

PostNL

2 plugins · 3K total installs

91
trust score
Avg Security Score
96/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect PostNL 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/woo-postnl/assets/css/fe-checkout.css
Script Paths
/wp-content/plugins/woo-postnl/assets/js/fe-checkout.js
Version Parameters
woo-postnl/assets/css/fe-checkout.css?ver=woo-postnl/assets/js/fe-checkout.js?ver=

HTML / DOM Fingerprints

CSS Classes
postnl-shipping-options
Data Attributes
data-postnl-settings
JS Globals
postnlParams
REST Endpoints
/wp-json/postnl-shipping/v1/checkout
FAQ

Frequently Asked Questions about PostNL for WooCommerce