Orderable – WordPress Restaurant Online Ordering System and Food Ordering Plugin Security & Risk Analysis

wordpress.org/plugins/orderable

Take your restaurant/food business online with the online ordering system plugin for WordPress, Orderable.

6K active installs v1.20.1 PHP 7.4+ WP 5.4+ Updated Feb 19, 2026
food-deliveryfood-menufood-orderingrestaurantrestaurant-menu
75
B · Generally Safe
CVEs total1
Unpatched1
Last CVEFeb 18, 2026
Download
Safety Verdict

Is Orderable – WordPress Restaurant Online Ordering System and Food Ordering Plugin Safe to Use in 2026?

Mostly Safe

Score 75/100

Orderable – WordPress Restaurant Online Ordering System and Food Ordering Plugin is generally safe to use. 1 past CVE were resolved. Keep it updated.

1 known CVE 1 unpatched Last CVE: Feb 18, 2026Updated 1mo ago
Risk Assessment

The "orderable" plugin v1.20.1 exhibits a mixed security posture. While it demonstrates good practices with a high percentage of prepared SQL statements and properly escaped output, significant concerns remain. The presence of an unprotected AJAX handler represents a direct attack vector that could be exploited if not properly secured by application-level logic or user roles. Additionally, the plugin has a history of known vulnerabilities, including a high-severity unpatched CVE. This pattern suggests a recurring issue with security, particularly concerning authorization, which is a critical aspect of web application security. The limited taint analysis and absence of critical or high-severity unsanitized flows are positive indicators, but they do not negate the risks posed by the exposed entry point and historical vulnerabilities. Overall, while the code quality shows effort in areas like output escaping, the plugin's security is compromised by the unpatched CVE and the unprotected AJAX handler, necessitating immediate attention.

Key Concerns

  • Unprotected AJAX handler
  • Unpatched High Severity CVE
  • Bundled library (Select2) - potential for outdated vulnerabilities
Vulnerabilities
1

Orderable – WordPress Restaurant Online Ordering System and Food Ordering Plugin Security Vulnerabilities

CVEs by Year

1 CVE in 2026 · unpatched
2026
Patched Has unpatched

Severity Breakdown

High
1

1 total CVE

CVE-2026-0974high · 8.8Missing Authorization

Orderable <= 1.20.0 - Missing Authorization to Authenticated (Subscriber+) Arbitrary Plugin Installation

Feb 18, 2026Unpatched
Code Analysis
Analyzed Mar 16, 2026

Orderable – WordPress Restaurant Online Ordering System and Food Ordering Plugin Code Analysis

Dangerous Functions
0
Raw SQL Queries
6
34 prepared
Unescaped Output
81
698 escaped
Nonce Checks
9
Capability Checks
2
File Operations
3
External Requests
1
Bundled Libraries
1

Bundled Libraries

Select2

SQL Query Safety

85% prepared40 total queries

Output Escaping

90% escaped779 total outputs
Data Flows
All sanitized

Data Flow Analysis

7 flows
dismiss (inc\class-admin-notices.php:29)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
1 unprotected

Orderable – WordPress Restaurant Online Ordering System and Food Ordering Plugin Attack Surface

Entry Points4
Unprotected1

AJAX Handlers 1

authwp_ajax_orderable_previewinc\modules\layouts\class-layouts.php:37

Shortcodes 3

[orderable_add_to_cart] inc\class-shortcodes.php:19
[orderable] inc\modules\layouts\class-layouts.php:84
[orderable-open-hours] inc\modules\timings\class-timings.php:46
WordPress Hooks 199
actionadmin_noticesinc\class-admin-notices.php:22
actionadmin_initinc\class-admin-notices.php:23
filterorderable_get_group_datainc\class-ajax.php:128
actionwoocommerce_checkout_order_processedinc\class-ask-review.php:27
actionadmin_noticesinc\class-ask-review.php:28
actionadmin_initinc\class-ask-review.php:29
actionwp_enqueue_scriptsinc\class-assets.php:18
actionadmin_enqueue_scriptsinc\class-assets.php:19
filterbody_classinc\class-assets.php:20
actionwp_enqueue_scriptsinc\class-compat-flux-checkout.php:26
actioninitinc\class-compat-flux-checkout.php:27
actionflux_checkout_order_reviewinc\class-compat-flux-checkout.php:61
filtersafe_style_cssinc\class-helpers.php:155
filterwoocommerce_format_price_rangeinc\class-products.php:18
filterwoocommerce_product_is_visibleinc\class-products.php:19
actiontemplate_redirectinc\class-products.php:20
filterwoocommerce_cart_item_permalinkinc\class-products.php:21
filterwoocommerce_product_query_tax_queryinc\class-products.php:22
filterget_terms_argsinc\class-products.php:23
filterwp_sitemaps_posts_query_argsinc\class-products.php:24
filterwp_sitemaps_taxonomies_query_argsinc\class-products.php:25
filterorderable_add_to_cart_button_argsinc\class-products.php:26
filterwoocommerce_add_to_cart_fragmentsinc\class-products.php:27
filterorderable_main_classinc\class-products.php:28
actionwoocommerce_cart_item_removedinc\class-products.php:30
filterget_terms_argsinc\class-products.php:226
filterwoocommerce_add_to_cart_fragmentsinc\class-products.php:1058
actionadmin_initinc\class-settings.php:39
actioninitinc\class-settings.php:40
actioninitinc\class-settings.php:42
actionadmin_menuinc\class-settings.php:43
filterorderable_default_settingsinc\class-settings.php:44
filterwpsf_register_settings_orderableinc\class-settings.php:45
filterwpsf_register_settings_orderableinc\class-settings.php:46
filtericonic_onboard_save_orderable_resultinc\class-settings.php:47
filterwpsf_title_orderableinc\class-settings.php:48
actionwpsf_after_title_orderableinc\class-settings.php:49
actionwpsf_after_tab_links_orderableinc\class-settings.php:50
actionadmin_enqueue_scriptsinc\class-settings.php:51
actionproduct_cat_add_form_fieldsinc\class-settings.php:54
actionproduct_cat_edit_form_fieldsinc\class-settings.php:55
actioncreated_terminc\class-settings.php:56
actionedit_terminc\class-settings.php:57
actionorderable_admin_assets_enqueuedinc\class-settings.php:60
filterorderable_admin_script_depsinc\class-settings.php:61
filterorderable_skip_core_cross_sells_selected_pluginsinc\class-settings.php:1111
actionorderable_after_create_custom_tablesinc\database\class-database.php:24
actionorderable_upgrade_database_routineinc\database\tables\class-location-locations-table.php:20
actionorderable_upgrade_database_routineinc\database\tables\class-location-time-slots-table.php:20
actionwp_enqueue_scriptsinc\integrations\woocommerce-points-and-rewards\class-integration-woocommerce-points-and-rewards.php:26
actionorderable_side_menu_before_product_options_wrapperinc\integrations\woocommerce-points-and-rewards\class-integration-woocommerce-points-and-rewards.php:27
actionwoocommerce_widget_shopping_cart_totalinc\integrations\woocommerce-points-and-rewards\class-integration-woocommerce-points-and-rewards.php:28
actionorderable_before_product_actionsinc\integrations\woocommerce-points-and-rewards\class-integration-woocommerce-points-and-rewards.php:29
filterwoocommerce_available_variationinc\integrations\woocommerce-points-and-rewards\class-integration-woocommerce-points-and-rewards.php:31
filterorderable_valid_admin_pagesinc\modules\addons\class-addons.php:18
actionadmin_menuinc\modules\addons\class-addons.php:19
filterwpsf_register_settings_orderableinc\modules\checkout\class-checkout.php:18
actionwoocommerce_checkout_processinc\modules\checkout\class-checkout.php:21
filterorderable_valid_admin_pagesinc\modules\custom-order-status\class-custom-order-status.php:18
actionadmin_menuinc\modules\custom-order-status\class-custom-order-status.php:19
filterorderable_default_settingsinc\modules\drawer\class-drawer-settings.php:23
filterwpsf_register_settings_orderableinc\modules\drawer\class-drawer-settings.php:24
filterorderable_settings_validateinc\modules\drawer\class-drawer-settings.php:25
actioninitinc\modules\drawer\class-drawer-settings.php:26
actionwp_footerinc\modules\drawer\class-drawer.php:20
filterwoocommerce_add_to_cart_fragmentsinc\modules\drawer\class-drawer.php:21
filterwoocommerce_add_to_cart_fragmentsinc\modules\drawer\class-drawer.php:22
filterwoocommerce_add_to_cart_fragmentsinc\modules\drawer\class-drawer.php:23
filterwoocommerce_cart_item_permalinkinc\modules\drawer\class-drawer.php:24
filterwc_get_templateinc\modules\drawer\class-drawer.php:25
actioninitinc\modules\layouts\class-layouts-blocks.php:18
actioninitinc\modules\layouts\class-layouts.php:28
actioninitinc\modules\layouts\class-layouts.php:29
filtermanage_orderable_layouts_posts_columnsinc\modules\layouts\class-layouts.php:30
actionmanage_orderable_layouts_posts_custom_columninc\modules\layouts\class-layouts.php:31
actionload-post.phpinc\modules\layouts\class-layouts.php:32
actionload-post-new.phpinc\modules\layouts\class-layouts.php:33
actionsave_postinc\modules\layouts\class-layouts.php:34
actionadmin_enqueue_scriptsinc\modules\layouts\class-layouts.php:35
filterorderable_is_settings_pageinc\modules\layouts\class-layouts.php:36
filterorderable_admin_noticesinc\modules\layouts\class-layouts.php:38
actionadmin_enqueue_scriptsinc\modules\live-view\class-live-view.php:21
actionadmin_enqueue_scriptsinc\modules\live-view\class-live-view.php:22
filterheartbeat_receivedinc\modules\live-view\class-live-view.php:23
actionadmin_footerinc\modules\live-view\class-live-view.php:24
actionadmin_footerinc\modules\live-view\class-live-view.php:25
actionrestrict_manage_postsinc\modules\live-view\class-live-view.php:26
actionrestrict_manage_postsinc\modules\live-view\class-live-view.php:27
actionwoocommerce_order_list_table_restrict_manage_ordersinc\modules\live-view\class-live-view.php:29
actionwoocommerce_order_list_table_restrict_manage_ordersinc\modules\live-view\class-live-view.php:30
actionadmin_menuinc\modules\live-view\class-live-view.php:31
actioninitinc\modules\live-view\class-live-view.php:32
actioncurrent_screeninc\modules\live-view\class-live-view.php:33
filterwoocommerce_order_data_store_cpt_get_orders_queryinc\modules\live-view\class-live-view.php:142
actioninitinc\modules\location\admin\class-location-admin.php:18
actioncurrent_screeninc\modules\location\admin\class-location-admin.php:19
actionadmin_menuinc\modules\location\admin\class-location-admin.php:20
actionadmin_enqueue_scriptsinc\modules\location\admin\class-location-admin.php:21
actionadmin_enqueue_scriptsinc\modules\location\admin\class-location-admin.php:22
filterorderable_onboard_settings_savedinc\modules\location\admin\class-location-admin.php:23
filterorderable_valid_admin_pagesinc\modules\location\admin\class-location-admin.php:25
actionorderable_location_save_datainc\modules\location\admin\meta-boxes\class-location-holidays-meta-box.php:23
filterorderable_location_get_save_datainc\modules\location\admin\meta-boxes\class-location-holidays-meta-box.php:25
actionorderable_location_save_datainc\modules\location\admin\meta-boxes\class-location-open-hours-meta-box.php:23
filterorderable_location_get_save_datainc\modules\location\admin\meta-boxes\class-location-open-hours-meta-box.php:25
filterorderable_location_get_save_datainc\modules\location\admin\meta-boxes\class-location-order-options-meta-box.php:23
filterorderable_location_get_save_datainc\modules\location\admin\meta-boxes\class-location-store-address-meta-box.php:23
actionorderable_location_save_datainc\modules\location\admin\meta-boxes\class-location-store-services-meta-box.php:25
filterorderable_location_get_save_datainc\modules\location\admin\meta-boxes\class-location-store-services-meta-box.php:27
filterorderable_location_service_datesinc\modules\location\class-location-single.php:64
filterwoocommerce_no_shipping_available_htmlinc\modules\location\class-location-single.php:1236
actionwoocommerce_before_checkout_forminc\modules\location\class-location-single.php:1244
filterorderable_settingsinc\modules\location\class-location.php:20
filtericonic_ww_endpointsinc\modules\location\class-location.php:507
actionorderable_before_time_slots_table_endinc\modules\location\zones\class-location-zones-admin.php:19
actionadmin_footerinc\modules\location\zones\class-location-zones-admin.php:20
actionadmin_footerinc\modules\location\zones\class-location-zones-admin.php:21
actionorderable_before_save_service_hoursinc\modules\location\zones\class-location-zones-admin.php:22
actionorderable_location_service_hour_insertedinc\modules\location\zones\class-location-zones-admin.php:23
actionorderable_location_service_hour_updatedinc\modules\location\zones\class-location-zones-admin.php:24
filterwoocommerce_package_ratesinc\modules\location\zones\class-location-zones.php:19
filterwoocommerce_no_shipping_available_htmlinc\modules\location\zones\class-location-zones.php:20
filterwpsf_register_settings_orderableinc\modules\notifications\class-notifications.php:18
actionwp_loadedinc\modules\order-reminders\class-order-reminders.php:93
filterwpsf_register_settings_orderableinc\modules\order-reminders\class-order-reminders.php:95
actionwp_enqueue_scriptsinc\modules\order-reminders\class-order-reminders.php:106
actionwpinc\modules\order-reminders\class-order-reminders.php:107
actionwoocommerce_order_details_after_order_tableinc\modules\order-reminders\class-order-reminders.php:108
actionwoocommerce_payment_completeinc\modules\order-reminders\class-order-reminders.php:110
actionwoocommerce_thankyouinc\modules\order-reminders\class-order-reminders.php:111
filterwoocommerce_order_data_store_cpt_get_orders_queryinc\modules\order-reminders\class-order-reminders.php:114
filterwoocommerce_get_order_item_totalsinc\modules\order-reminders\class-order-reminders.php:115
filterorderable_location_service_dates_ignore_needs_shippinginc\modules\order-reminders\class-order-reminders.php:449
filterorderable_valid_admin_pagesinc\modules\product-labels\class-product-labels.php:18
actionadmin_menuinc\modules\product-labels\class-product-labels.php:19
filterwpsf_register_settings_orderableinc\modules\receipt-layouts\class-receipt-layouts.php:29
actioninitinc\modules\receipt-layouts\class-receipt-layouts.php:35
actioninitinc\modules\receipt-layouts\class-receipt-layouts.php:36
actionadmin_initinc\modules\receipt-layouts\class-receipt-layouts.php:37
actionenqueue_block_editor_assetsinc\modules\receipt-layouts\class-receipt-layouts.php:38
actionenqueue_block_editor_assetsinc\modules\receipt-layouts\class-receipt-layouts.php:39
actioncurrent_screeninc\modules\receipt-layouts\class-receipt-layouts.php:40
actioncurrent_screeninc\modules\receipt-layouts\class-receipt-layouts.php:42
actionadmin_print_footer_scripts-woocommerce_page_wc-ordersinc\modules\receipt-layouts\class-receipt-layouts.php:43
actionadmin_print_footer_scripts-post.phpinc\modules\receipt-layouts\class-receipt-layouts.php:44
actionadmin_enqueue_scriptsinc\modules\receipt-layouts\class-receipt-layouts.php:45
actionadmin_print_stylesinc\modules\receipt-layouts\class-receipt-layouts.php:46
filterblock_categories_allinc\modules\receipt-layouts\class-receipt-layouts.php:48
filterallowed_block_types_allinc\modules\receipt-layouts\class-receipt-layouts.php:49
filterrest_dispatch_requestinc\modules\receipt-layouts\class-receipt-layouts.php:50
filtershould_load_remote_block_patternsinc\modules\receipt-layouts\class-receipt-layouts.php:51
filterpost_row_actionsinc\modules\receipt-layouts\class-receipt-layouts.php:52
filterwoocommerce_admin_order_preview_get_order_detailsinc\modules\receipt-layouts\class-receipt-layouts.php:53
actionrestrict_manage_postsinc\modules\services\class-services-order.php:18
actionwoocommerce_order_list_table_restrict_manage_ordersinc\modules\services\class-services-order.php:19
actionpre_get_postsinc\modules\services\class-services-order.php:20
filterwoocommerce_shop_order_list_table_prepare_items_query_argsinc\modules\services\class-services-order.php:21
filtermanage_edit-shop_order_columnsinc\modules\services\class-services-order.php:22
actionmanage_shop_order_posts_custom_columninc\modules\services\class-services-order.php:23
filterorderable_get_order_date_timeinc\modules\services\class-services-order.php:24
actionwoocommerce_before_order_object_saveinc\modules\services\class-services-order.php:25
actionadmin_initinc\modules\services\class-services-order.php:28
filterorderable_valid_admin_pagesinc\modules\table-ordering\class-table-ordering.php:18
actionadmin_menuinc\modules\table-ordering\class-table-ordering.php:19
filterorderable_valid_admin_pagesinc\modules\timed-products\class-timed-products.php:18
actionadmin_menuinc\modules\timed-products\class-timed-products.php:19
actioninitinc\modules\timings\class-timings-blocks.php:18
filterorderable_upcoming_open_hoursinc\modules\timings\class-timings-blocks.php:20
actionwoocommerce_review_order_after_shippinginc\modules\timings\class-timings-checkout.php:18
actionwoocommerce_checkout_processinc\modules\timings\class-timings-checkout.php:19
actionwoocommerce_checkout_update_order_metainc\modules\timings\class-timings-checkout.php:20
filterwoocommerce_order_button_htmlinc\modules\timings\class-timings-checkout.php:21
actionadmin_enqueue_scriptsinc\modules\timings\class-timings-order.php:18
actionadmin_footerinc\modules\timings\class-timings-order.php:19
filterwoocommerce_get_order_item_totalsinc\modules\timings\class-timings-order.php:20
actionwoocommerce_admin_order_data_after_billing_addressinc\modules\timings\class-timings-order.php:21
filtermanage_edit-shop_order_columnsinc\modules\timings\class-timings-order.php:22
filtermanage_edit-shop_order_sortable_columnsinc\modules\timings\class-timings-order.php:23
actionmanage_shop_order_posts_custom_columninc\modules\timings\class-timings-order.php:24
actionpre_get_postsinc\modules\timings\class-timings-order.php:25
filterwoocommerce_shop_order_list_table_prepare_items_query_argsinc\modules\timings\class-timings-order.php:26
filterwoocommerce_orders_table_query_clausesinc\modules\timings\class-timings-order.php:27
actionrestrict_manage_postsinc\modules\timings\class-timings-order.php:28
actionwoocommerce_order_list_table_restrict_manage_ordersinc\modules\timings\class-timings-order.php:29
actionwoocommerce_admin_order_preview_startinc\modules\timings\class-timings-order.php:30
filterwoocommerce_admin_order_preview_get_order_detailsinc\modules\timings\class-timings-order.php:31
actionadmin_initinc\modules\timings\class-timings-order.php:34
filterwoocommerce_shop_order_list_table_sortable_columnsinc\modules\timings\class-timings-order.php:499
actioninitinc\modules\timings\class-timings.php:21
filterwpsf_register_settings_orderableinc\modules\tip\class-tip.php:18
actioninitorderable.php:36
actionplugins_loadedorderable.php:37
actionactivated_pluginorderable.php:40
actionbefore_woocommerce_initorderable.php:43
actionwoocommerce_blocks_loadedorderable.php:52
actionadmin_noticesorderable.php:67
actionadmin_noticesorderable.php:78
actionwoocommerce_blocks_checkout_block_registrationorderable.php:247
actionwoocommerce_store_api_checkout_update_order_from_requestorderable.php:257
Maintenance & Trust

Orderable – WordPress Restaurant Online Ordering System and Food Ordering Plugin Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 19, 2026
PHP min version7.4
Downloads139K

Community Trust

Rating92/100
Number of ratings40
Active installs6K
Developer Profile

Orderable – WordPress Restaurant Online Ordering System and Food Ordering Plugin Developer Profile

Orderable

1 plugin · 6K total installs

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

How We Detect Orderable – WordPress Restaurant Online Ordering System and Food Ordering Plugin

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/orderable/assets/css/frontend.css/wp-content/plugins/orderable/assets/css/frontend.css?ver=/wp-content/plugins/orderable/assets/js/frontend.js/wp-content/plugins/orderable/assets/js/frontend.js?ver=
Script Paths
/wp-content/plugins/orderable/assets/js/frontend.js
Version Parameters
orderable/assets/css/frontend.css?ver=orderable/assets/js/frontend.js?ver=

HTML / DOM Fingerprints

CSS Classes
orderable-sectionorderable-contentorderable-blockorderable-product-blockorderable-product-singleorderable-grid-productorderable-archive-productorderable-add-to-cart-form+41 more
HTML Comments
<!-- Start Orderable product block --><!-- End Orderable product block --><!-- Start Orderable add to cart form --><!-- End Orderable add to cart form -->+10 more
Data Attributes
data-product-iddata-product-variation-id
JS Globals
window.OrderableAssetswindow.OrderableFrontendwindow.OrderableProductswindow.OrderableCart
REST Endpoints
/wp-json/orderable/v1/cart/add/wp-json/orderable/v1/cart/remove/wp-json/orderable/v1/cart/update/wp-json/orderable/v1/cart/clear/wp-json/orderable/v1/products/wp-json/orderable/v1/products/(?P<id>\d+)/wp-json/orderable/v1/checkout/order-date/wp-json/orderable/v1/checkout/order-time
Shortcode Output
[orderable_products][orderable_product][orderable_cart]
FAQ

Frequently Asked Questions about Orderable – WordPress Restaurant Online Ordering System and Food Ordering Plugin