WPPizza – A Restaurant Plugin


  • Conceived for Pizza Delivery Businesses, but flexible enough to serve any restaurant type.

  • Maintain your restaurant menu online and accept cash on delivery orders.

  • Set categories, multiple prices per item and descriptions.

  • Several layouts inbuilt(Default, Responsive, Grid).

  • New order notifications.

  • Opening/Closing times per day.

  • Allow tips/gratuities.

  • Simple discounts.

  • Multiple taxrates.

  • Order reports.

  • Multilingual Frontend (just update labels in admin settings page and/or widget as required). WPML compatible.

  • Multisite enabled.

  • Keeps track of your online orders.

  • Shortcode enabled. (see complete shortcode list)

  • Many other additional options inbuilt.

To see the plugin in action with different themes try it at demo.wp-pizza.com

If you wish to allow your customers to add additional ingredients to any given menu item, have a look at the premium «WPPizza Add Ingredients» extension

Premium extensions available:

Additional payment gateways to process credit card payments instead of just «Cash on Delivery»

Translations provided by:

  • Italien: Silvia Palandri
  • Hebrew: Yair10 [הלב בניית אתרים ]
  • Dutch: Jelmer
  • Spanish: Andrew Kurtis at WebHostingHub
  • German: Franz Rufnak, Witali Opfer

Many, many thanks guys and girls.

Note: As the plugin gets updated over time and has some other strings and features added, the translations above (and future ones) are likely to have some not-yet-translated strings. If you wish, feel free to provide any of those missing and I will update the translations accordingly.

If you want to contribute your own translation, feel free to send me your files and I will be more than happy to include them.

Demo Icons:

Please note that the icons used in the demo installation are iconarchive.com icons and not for commercial use.
If you do wish to use any icon from this set commercially, please follow this link to purchase it.

Allergen/Foodtype Icons (credit where credit is due):

Allergen/Foodtype Icons – though modified and with the exceptions stated below – are courtesy of icon-icons.com
Foodtype Vegetarian/Vegan Icons courtesy of vectorstock.com
Halal/Kosher Icons specifically created for this plugin.
Note: Allergen/Foodtype Icons included with this plugin can be used on your site ‘as is’ and without any attribution

Loading Icon:

«Double Ring» Loading Icon SVG (v3.13+) generated at loading.io


  • Frontend
  • Frontend (Different Theme) - minicart only
  • Frontend - Grid Layout
  • Frontend - Order Page
  • Frontend - Thank You Page
  • Frontend - Purchase History (registered user)
  • Admin - Menu items - quick edit
  • Admin - Global Settings (excerpt)
  • Admin - Order Settings (excerpt)
  • Admin - Opening Times
  • Admin - Additives
  • Admin - Layout (excerpt)
  • Admin - Localization (excerpt)
  • Admin - Registered customers
  • Admin - Tools
  • Admin - Tools (GDPR)
  • Admin - Access Rights
  • Admin - Order Form
  • Admin - Sales Reports
  • Admin - Widget



  1. Download the plugin and upload the entire wppizza folder to the /wp-content/plugins/ directory.
    Alternatively you can download and install WPPizza using the built in WordPress plugin installer.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. You will find all configuration and menu options in your administration sidebar

Things to do on first install

For consistency, this document has now moved to the following location :
** I strongly encourage you to read it **


Please note:
Although all options, menu items and menu categories get deleted from the database along with the table that holds any orders you may have received, you will manually have to delete any additional pages (such as the order page for example) that have been created as i have no way of knowing if you are using this page elsewhere or have changed the content/name of it.
The same goes for the 3 example icons that come with this plugin as they might be in use elsewhere.


General Faq’s

for consistency and manageability the faq’s have been moved to https://docs.wp-pizza.com/faqs/


please refer to https://docs.wp-pizza.com/shortcodes/

How can I submit a bug, ask for help or request a new feature?


12 de abril de 2021
I tested a lot of others plugins and themes, this is the best. It should also have the table reservation extension, because many restaurants would like their customers to book with the menu already filled out.
26 de mayo de 2020
This plug-in has helped save my clients business as they move from a full-service restaurant to take-out and delivery during the pandemic. We were able to roll out a fully functional online ordering system with ease and at minimal expense. Easy for the client to use and customizations for just about everything. The few questions I've had or glitches I've encountered were addressed almost immediately through the forum or by email, with great solutions and - when needed - plugin updates rolled out next day. This is one of the best business-changing plugins I've used. I highly recommend it. And best of all, try it out the free version to work out the integrations and designs so you can be sure it works well with your site. Thank you Oliver!
3 de abril de 2020
Thanks a lot for this plugin! I installed it for two restaurants next door - they had to switch to delivery and take-away from one day to the other (corona virus restrictions). With your plugin and just a few hours of configuration and testing, they are now (hopefully) able to survive economically during the corona crisis. Your plugin is awesome!
28 de febrero de 2019
Our requirements were an elegant and fully customizable room service ordering system for our 5-star boutique hotel... and WP-Pizza delivered! 😉 The interface is super clean and offers our guests a great user experience. Support is amazing. Do not be deceived by the name, WP-Pizza is a very powerful and versatile tool for anyone selling anything where a seamless and great user experience is key. This is not Woocommerce's strong suit.
26 de diciembre de 2017
Yesterday i deliver my first customer website with wppizza and several addons: wppizza (Basic) and payd addons: wppizza-add-ingredients, wppizza-delivery-by-postcode, wppizza-gateway-paypal, wppizza-google-cloudprint and wppizza-pickup-prices. All addons working like a charm! not one did not do as expected and none have problems! And most of all, there was always the developer Oliver who offered help with any questions. Thanks Oliver!
Leer todas las 53 reseñas

Colaboradores y desarrolladores

«WPPizza – A Restaurant Plugin» es un software de código abierto. Las siguientes personas han colaborado con este plugin.


Traduce «WPPizza – A Restaurant Plugin» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios

* New: allow to run distinct js functions when shop status changes from open to closed (and vice versa)
* Fix: some potential php notices eliminated
* Tweak: added css classes for some elements
* Tweak: added distinct array keys to parameters passed on to ‘wppizza_filter_transaction_details’ filter
* Tweak: added ‘chosen’ js to admin openingtimes selects
* Tweak: tidyup array keys when saving custom opening times
* Tweak: allow stale orders cronjob to have its ‘delete by payment status’ query filtered (‘wppizza_remove_stale_order_entries_payment_status’)
* Tweak: added global wppizza_is_delivery() (alternative to wppizza_is_pickup()), wppizza_get_shop_status() (currently open or closed and next change due), wppizza_get_openingtimes() (for the next x days) helper functions
* Tweak: Allow all ajax results to be filtered before returning
11th May 2021

* Tweak: Make sure «Always open shop for UserID» does not display potentially erroneous message on checkout for non-loggedin users. Updated related verbiage.
* Tweak: Replace allergen and food type sprite .pngs with higher quality, scalable .svgs.
* Tweak: Made allergen icons display slightly smaller in page footer
* Tweak: Removed some superflous legacy images
* Tweak: Some potential ‘undefined’ object message in browser console eliminated
* Fix: Any «Layout -> Additional Styles» enabled were lost when updating plugin
7th April 2021

* Update: Reload orderpage – if applicable – via ajax instead of full page reload (Backwards compatible with gateways/plugins that do not support this yet)
* Dev Note: This will affect any payment gateways that do not redirect. If you have developed your own, non-redirecting gateway, contact me.
* Fix: Milk/Lactose allergy icon not displayed
* Fix: (Edegcases) Select first available gateway on order page if already selected gateway by a customer was disabled by admin during the order
* Tweak: using added/dedicated loader.svg instead of WP’s tinymce loader.gif
* Tweak: Minor «payment methods» css adjustments to help consistency across themes
* Tweak: Loading image removed too early in some setups
* Tweak: Enabled «I am using a caching plugin» as default for new installs and updated associated verbiage.
* Tweak: Prevent some superflous db entries into orders table
* Tweak: Ensure to always ignore user id of 0 when using «Always open shop for UserID»
* Tweak: Some minor code tidyups
* Dev: Allow ‘autocomplete’ attribute to be added to customer input fields programatically
* Dev: Added helpers ‘wppizza_is_cancelpage()’ [wppizza_is_cancelled() – as alias] and ‘wppizza_is_thankyoupage()’ [wppizza_is_thankyou() – as alias]
* Dev: Added globally available js wppizzaGetCheckout() to allow dynamic ajax replacement/update of form on checkout page
17th March 2021

* For the moment, reverting to reloading of order page instead of ajax replace (introduced in 3.12.20) as it may break some other 3rd party plugins behaviour
12th February 2021

* Fix: Some potential php notices eliminated
* Fix: Added admin css custom stylesheets were not being read/enqueued
* Fix: Some gateway setting potentially got lost when updating/saving license keys
* Fix: Make sure spinner elements in minicart and maincart have unique id’s
* Fix: Stop WP complaining in healthcheck due to usage of php sessions
* Fix: Make sure get_selected_gateway() and is_pickup() return the correct results immediately on changing of value
* Tweak: Set some sensible default values for not yet defined common gateway parameters
* Tweak: Some minor verbiage update in admin
* Tweak: Minor css tweaks to help consistency across themes
* Tweak: Replace order page by ajax (instead of reloading page entirely) when switching from pickup to delivery and vice versa
* Tweak: Immediately updating cart when using spinner up/down arrows (i.e single quantity increments)
* Tweak: Wrapping gateway label in span
* Added: filter ‘wppizza_format_price_auto’ to display prices without trailing zeros (instead of fixed decimals with rounding)
* Added: apply ‘term_description’ filter for wppizza category descriptions (allows shortcodes in descriptions for example)
* Added: ‘delete_order’ attribute added to [wppizza_admin type=’admin_orderhistory’] shortcode (delete order privileges required)
* Dev: A little more consistency in some naming conventions
* Dev: Added wppizza_default_gateway() helper function
* Dev: Make sure to convert entities in quickedit links ‘onclick’ events
* Dev: Make order parameters passed on to json cart (wppizzaCartJson) filterable. Additionally including selected gateway id.
12th February 2021

* Readme updated
* Tweak: some more error tracing details added in a few places
28th December 2020

* Tested with WP 5.6
* Fix: Order notifications (emails etc) might erroneously be marked as prepaid for COD type orders – updating the plugin is strongly advised because of this !
* Fix: Categories might not be displayed in «WPPizza->Category» page when adding a new category via the post edit screen
* Fix: Some more (inconsequential) php notices eliminated
* Update: very minor css tweaks
07th December 2020

* Added: Option to also allow for quantity update in minicart (WPPizza-> Order Settings -> Item and Cart Updates and Amendments)
19th November 2020

* Added: Filter to set plaintext templates max characters per line (alongside the already available global constant)
* Added: Allow for arbitrary footer text in print templates too
* Added: Shortcodes to display (most) wppizza options eg. [wppizza type=»options» page=»localization» parameter=»contains_additives»]
* Added: Action Hook(s) before and after getting print template markup
* Update: Minor tidyup in some places / minor css tweaks
* Update: Better handling of very loooooong lines in plaintext templates
* Update: .pot files
* Fix: Cart/Order Item remove button (if enabled) not alwasy following set position settings
09th November 2020

* Fix: Added missing js trigger for admin refund status update
10th September 2020

* Added: Choice of standard allergens (with optional icons) under «WPPizza->Additives»
* Added: Choice of some common foodtypes (with optional icons) under «WPPizza->Additives»
* Added: pt_BR, pt_PT localization
* Updated: various other localization po/mo files
* Tweak: do not change navigation menu title of order page (if displayed in navigation menu) on order completion/cancellation etc
* Tweak: Minor css updates (SKU related – if used)
* Tweak: Default initial reports range to last 30 Days
* Fix: Some more potential phpnotices eliminated
28th August 2020

* Added: Optionally allow to add percentage selection to tips on checkout (WPPizza -> Order Settings)
* Tweak: A bit more consistency in a few text strings, to eliminate some superflous text strings in any translations
* Fix: Make sure to also add #wppizza-cart-json data if minicart is enabled only without the main cart being displayed
26th June 2020

* Fix: Templates sections – though saved in the right order – not displayed in the right order in WPPizza->Templates
* Fix: Todays orders totals not shown in admin dashboard widget
* Fix: decode entities in address search url [wppizza_admin type=’admin_orderhistory’] shortcode
* Tweak: Make address search url [wppizza_admin type=’admin_orderhistory’] filterable
* Tweak: Allow for multiple user id or ip address for testing things even when shop is naturally closed (WPPizza->Tools)
* Tweak: Minor css tweak in thank you page for ‘label’ elements
21st June 2020

* Tweak/Maintenenace: reduce memory consumption for «WPPizza -> Reports» page as well as admin dashboard widget
* Tweak/Maintenenace: repair serialization errors – if any – in reports data of orders (might be required for some old/legacy orders)
10th June 2020

* Added: Search by email, transaction id, order id in «Wppizza-> Order History»
* Added: Allow query for transaction id in ‘wppizza_get_orders()’ function
* Fix: Some edgecase phpnotices eliminated
* Tweak: Updated some verbiage in admin
* Tweak: Added postid as parameter to ‘wppizza_filter_quick_edit_link_functions’ and ‘wppizza_filter_save_quick_edit_data’ filter
* Tweak: Capture some more data in error logs
4th June 2020

* Tweak: Deleted some unused files
* Added: Allow dates of custom opening times to repeat yearly
* Added: Display minimum order value in minicart cartdetails if not reached
* Fix: Some scripts were unnecessarily enqueued on checkout if cart is empty (also eliminates some potential false positive error emails )
26th May 2020

* Note: Apologies for the flurry of updates in the last few days – am trying to solve an edge-case, non-reproducable issue that seems to exist when using mobile devices with gateways that offer inline (as opposed to redirect) payments
* Tweak: In line with the above, make some more js functions run later
18th May 2020

* Tweak: make some javascript functions run later for more reliability with certain payment methods
* Fix: Firefox might throw an event = undefined error, stopping orders from being submitted
* Fix: «View Details» of some premium wppizza plugins might have shown information of another plugin
18th May 2020

* Tweak: update to the handling of premium plugin updates availability (gateways might not have updated)
15th May 2020

* Fix: In some edge cases (non-redirecting gateways) loading screen might not have been removed on checkout when updating cart quantities
14th May 2020

* Fix: Some more php notices eliminated
* Fix: Added missing ‘supports_refunds’ boolean parameter for gateways when used with certain action hook priorities
* Fix: Moved ‘wppizza_filter_showorder_on_thankyou’ filter to a more useful and better place
* Fix: Make sure «size» meta data gets saved with menu items (posts) if sizes-id == 0
* Tweak: Make sure to not enqueue scripts unnecessarily on checkout if shop is closed (also eliminates some potential false positive «10005» type errors )
* Added: Allow shop to be forced open for a specific user id or ip address for testing things even when shop is naturally closed (WPPizza->Tools)
14th May 2020

* Fix: some more possible php notices eliminated
* Tweak: more robust handling of premium plugin updates availability
* Tweak: make quickedit link filterable
* Tweak: streamlined the js in a couple of places
* Added: added a few more targetable css classes in a select few places
* Added: Add «Post ID» info before quickedit link
* Added: current blog id to localized js variables
* Added: do_action after post meta data has been updated/saved (‘wppizza_after_update_meta_data’)
* Added: hidden field (#wppizza-cart-json) with json data containing current cart values accessible in any js
* Added: some globally available helper functions for convenience (‘wppizza_is_ajax’, ‘wppizza_maybe_switch_blog’, ‘wppizza_maybe_restore_blog’)
11th May 2020

* Added: global helper ‘wppizza_format_minor_currency’
* Added: A little bit more info in systools, making display of constant filterable
1st May 2020

* Added: Optional display of «empty cart» button in minicart
* Added: Breakdown of tax rates/values in ‘detailed’ reports export
* Added: Helper function (‘wppizza_reports_data’) to allow retrieval of export csv data outside of admin reports page
* Fix: In some circumstances 2 clicks of submit button were needed to arraive at final confirmation page (if used). (caused by v3.12 update)
* Fix: Potential tax fractions rounding issue (if rounding up) due by php precisions in edge cases
* Fix: Possible php notices eliminated in some action hooks
24th April 2020

* Fix: some more potential php notices eliminated
* Fix: added missing 2nd and 3rd parameter to applied ‘widget_title’ filter
* Added: Allow selection of non-thumbnail image sizes for wppizza menu items featured images (Wppizza->Layout) plus adding ‘wppizza_filter_featured_image_size’ for even more granular control
* Added: Some globally available helper functions (wppizza_get_wordpress_image_sizes)
* Added: (as yet unused) Ajax function to update customer/userdata on checkout page
* Added: Allow 3rd party plugins to interrupt the checkout process via js/ajax right after clicking submit/pay buttons (mainly for timesensitive plugins)
* Tweak: Allow for query on ‘mail_sent’ (to shop) in wppizza_get_orders
* Tweak: Allow orders to be recovered (from WPPizza->Orderhistory->Failed) even when email to shop failed. Allow also to always complete orders even if email to shop failed (WPPizza->Tools). Prepay orders only.
* Tweak: Some slight performance improvements in a few places
* Tweak: Slight improvements as to how any potential order errors are being displayed in the frontend.
* Tweak: (Admin) Some minor verbiage updates
* Tweak: (Admin) ensure validity of dates in datepicker (where used)
* Tweak: General TidyUp in a few of places, removing unused parameters, long since deprecated filters and so forth
16th April 2020

3.10.x – 3.11.x
* changelogs for versions 3.10.x to 3.11.x moved to /wppizza/changelogs/

3.7 – 3.9.6
* changelogs for versions 3.7 to 3.9.6 moved to /wppizza/changelogs/

3.2 – 3.6.6
* changelogs for versions 3.2 to 3.6.6 moved to /wppizza/changelogs/

3.0 – 3.1.7
* changelogs for versions 3.0 to 3.1.7 moved to /wppizza/changelogs/

1.0 –
* changelogs for versions up to 3.0 can be found in /wppizza/changelogs/