# WP-Food

## Restaurant Menu & Food ordering

- Latest update: 06 February 2021
- By: ExThemes

Thank you for purchasing my plugin. If you have any questions that are beyond the scope of this help file, please feel free to email via support page contact form here. Thanks so much!

### Introduction

WP-Food is a WordPress plugin that helps restaurant owners to create restaurant menu and manage food orders online. With the rise of online ordering services, this plugin is simple way to introduce food menu, customers only need 3 steps for a delicious meal: choice food -> Order -> Enjoy. It works properly with non WooCommerce and WooCommerce. In addition, with WooCommerce integration, customers can have payment online easily and restaurant owners also view orders online report everyday, every month. By this WP-Food plugin you can display all menu information with any styles, layouts and anywhere via shortcodes.

##### Features list

- 10+ Food Styles support
- Online Food ordering and manager
- Online Food ordering via WooCommerce
- Quick ordering food support
- Fully responsive and mobile ready.
- Unlimited WP-Food anywhere.
- Support with many columns(2, 3, 4, 5)
- WP-Food with Grid, List, Table, Carousel(Slider view)
- Admin create Food and manage order easily
- Support email to admin and customer after order
- Able to enable recaptcha v2 when checkout
- Support select food by location
- Ajax load more, pagination, popup food info
- Support setting minimum amount
- Add admin review food(Food rating)
- Support open closing time order
- Work properly with non Woocommerce and Woocommerce integration
- Unlimited WP-Food Color. You can set color for all or each style
- Support category - allows you create menu category, you can show all menu items or show by category
- Single Food support
- Custom food info
- Food images gallery
- Unlimited customize with font, color
- Visual Composer support
- Supper easy configuration
- And more …

### Installation

##### The Full Package includes these following files and folders:

- Documentation folder - Contain this document
- Installation Files folder - Contain installable file plugin
  - wp-food.zip folder - WordPress Plugin Installation file

##### Install via Wordpress admin

1. Login to WordPress Admin
2. In the left menu panel go to Plugins > Add New > Upload to install plugin
3. Click Upload
4. Browse your download package to select installation files
5. Click Install Now button
6. Once it's uploaded, click the Activate link

##### Install via FTP Account

1. Use your FTP software to browse to wp-content/plugins folder to install plugin
2. Extract the installation files to their corresponding folders, for example wp-food.zip to wp-food and upload to server
3. Once it's uploaded, go to your WordPress Admin, browse to Plugins > Installed Plugins
4. Click the Activate link

##### Update

1. Deactive "WP-Food" plugin by going to Plugins > Deactive "WP-Food" plugin
2. Delete older version by clicking on Delete link. Confirm to delete.
3. Update and re-install new version.

### Install Sample Data

To install sample data as seen on our demo page, following these steps
Make sure you have installed WP-Food plugins
Step 1. Go to Tools > Import, then click on Wordpress
Step 2. If it is not yet installed before, you have to install it. On the popup window, click on "Install Now"
Step 3. After installed successfully, click on Activate Plugin & Run Importer
Step 4. Browse for FULL_DOWNLOAD_PACKET/installation/wp-food/sample-data/sample-data.xml (or download it here) and click Upload File and Import.
Step 5. After uploaded, the confirmation page appears. Check the Download and import file attachments option and click Submit. If you have trouble with importing (it might breaks in the middle due to long execution time), try again with this option Unchecked!
Step 6. OK, done!

### Creating Food

1. Go To Wordpress Admin > Food > Add New Food

2. Set a title, description, featured image and required field about food

3. Display

### Edit Food information detail

1. Go To Wordpress Admin > Food

2. Click title to edit each food, after edit press update button to finish

### Integrate Woocommerce

1. Go To Wordpress Admin > Food -> Setting -> General -> Food ordering via -> Woocommerce

2. Create food and integrate with woocommerce

### Creating, Editing Menus(Category)

#### Create menu

Go To Wordpress Admin > Food > Menus > Input name, slug, description and press Add new menu button

#### Edit menu

1. Click name of menu to edit menu detail

2. Hover name of menu to quick edit menu detail

3. Click count of each menu to view list food in this menu

4. Hover name of food to quick edit menu

### Manage Location

#### Create Location

Go To Wordpress Admin > Food > Locations > Input name, slug, description and press Add new Location button

#### Edit Location

1. Click name of Location to edit Location detail

2. Hover name of Location to quick edit Location detail

3. Click count of each Location to view list food in this Location

4. Hover name of food to quick edit location

5. Display

### Manage Order

#### View and Edit Order

1. Click email of order to view and edit order detail

2. Edit order information(note: when you change Order Status, email notification will be sent automatic to customer)

#### Create Order

Go To Wordpress Admin > Food > Order > Add new Order

### Shortcode

##### You could use Shortcode builder feature to generate shortcode instead using default shortcode

##### WP-Food shortcode also has supported: Visual Composer, Elementor and SiteOrigin page builder so you could use those page builder to config shortcode

##### Food Grid

Food Grid is a shortcode for displaying food on grid.

[ex_food_grid style="" column="" count="" menu_filter ="" order_cat="" on_sale="" posts_per_page="" ids="" cat="" page_navi="" number_excerpt="" cart_enable ="" order="" orderby="" meta_key="" hide_ftall="" active_filter=""]

- style - Select number style(Default 1)
  - Food grid - stye start 1 to 4 (example style="1")
- column - A number of items to show per line, start 2 to 5. Default 2(Note: with grid style 3 only support 2 and 3 column)
- count - A number items will be showed. Default total items(Example: you have 23 foods but you only want to display 20 foods, you can set count="20")
- posts_per_page - relates param page_navi
  - page_navi="loadmore", posts_per_page is number of items to add in the end after event load more (Example page_navi="loadmore" posts_per_page="3" - show 3 items in the end after click button load more)
  - page_navi="" (Pagination), posts_per_page is number of items to show per page(Example page_navi="" posts_per_page="3" - show 3 items in per page).
- ids - List of IDs to query, separated by a comma(example ids="1,2,3")
- cat - List of category ids (or slug), separated by a comma(example cat="fastfood" or cat="1")
- menu_filter - Show category food filter(Default hidden)
  - menu_filter="hide"
  - menu_filter="show"
- hide_ftall – Hide 'All' Filter, Select 'yes' to disable 'All' filter
  - hide_ftall=""
  - hide_ftall="yes"
- active_filter – Active special menu filter instead of "All", enter slug of category to active
- order_cat - Show category food filter with custom order(Default no custom order)
  - order_cat="", not apply custom order
  - order_cat="yes" , apply custom order
- on_sale - Select items on sale(Default "")
  - on_sale="",
  - on_sale="yes" , apply select items on sale
- page_navi - type of display(load more event or pagination) refer with param posts_per_page(Default Pagination)
  - page_navi="loadmore", add items in the end after event load more
  - page_navi="" ,Pagination
- number_excerpt - Enter number of excerpt to show(Default 10), example number_excerpt="20"
- cart_enable - Enable cart icon or not(Default yes)
  - cart_enable="yes", enable
  - cart_enable="no" ,not enable
- order - Order ascending (order="ASC") or descending (order="DESC")
- orderby - Choose order condition
  - 'date' - Order by date.
  - 'ID' - Order by post id. Note the captialization.
  - 'author' - Order by author.
  - 'title' - Order by title.
  - 'name' - Order by post name (post slug).
  - 'modified' - Order by last modified date.
  - 'parent' - Order by post/page parent id.
  - 'rand' - Random order.
  - 'menu_order' - Order by Page Order. Used most often for Pages (Order field in the Edit Page Attributes box) and for Attachments (the integer fields in the Insert / Upload Media Gallery dialog), but could be used for any post type with distinct 'menu_order' values (they all default to 0).
  - 'meta_value' - Note that a 'meta_key=keyname' must also be present in the query. Note also that the sorting will be alphabetical which is fine for strings (i.e. words), but can be unexpected for numbers (e.g. 1, 3, 34, 4, 56, 6, etc, rather than 1, 3, 4, 6, 34, 56 as you might naturally expect). Use 'meta_value_num' instead for numeric values.
  - 'meta_value_num' - Order by numeric meta value (available with Version 2.8). Also note that a 'meta_key=keyname' must also be present in the query. This value allows for numerical sorting as noted above in 'meta_value'.
  - 'post__in' - Preserve post ID order given in the ids array
  - 'none' - No order
- meta_key - Enter custom field key, Show posts associated with a certain custom field

##### Example: Style 2 (3 columns) with Category and Pagination(click here to view detail demo)

[ex_food_grid style="2" column="3" count="9" menu_filter ="show" posts_per_page="3"]

##### Food list

Food list is a shortcode for displaying food on listing .

[ex_food_list style="" count="" menu_filter ="" order_cat="" on_sale="" menu_pos="" posts_per_page="" ids="" cat="" page_navi="" number_excerpt="" cart_enable ="" orderby="" meta_key="" hide_ftall="" active_filter=""]

- style - Select number style start 1 to 3(example style="1")
- count - A number items will be showed. Default total items(Example: you have 23 foods but you only want to display 20 foods, you can set count="20")
- posts_per_page - relates param page_navi
  - page_navi="loadmore", posts_per_page is number of items to add in the end after event load more (Example page_navi="loadmore" posts_per_page="3" - show 3 items in the end after click button load more)
  - page_navi="" (Pagination), posts_per_page is number of items to show per page(Example page_navi="" posts_per_page="3" - show 3 items in per page).
- ids - List of IDs to query, separated by a comma(example ids="1,2,3")
- cat - List of category ids (or slug), separated by a comma(example cat="fastfood" or cat="1")
- menu_filter - Show category food filter(Default hidden)
  - menu_filter="hide"
  - menu_filter="show"
- hide_ftall – Hide 'All' Filter, Select 'yes' to disable 'All' filter
  - hide_ftall=""
  - hide_ftall="yes"
- active_filter – Active special menu filter instead of "All", enter slug of category to active
- order_cat - Show category food filter with custom order(Default no custom order)
  - order_cat="", not apply custom order
  - order_cat="yes" , apply custom order
- on_sale - Select items on sale(Default "")
  - on_sale="",
  - on_sale="yes" , apply select items on sale
- menu_pos - Position of category box(Default top)
  - menu_pos="top", Show category in top
  - menu_pos="left", Show category in left side
- page_navi - type of display(load more event or pagination) refer with param posts_per_page
  - page_navi="loadmore", add items in the end after event load more
  - page_navi="" ,Pagination
- cart_enable - Enable cart icon or not(Default yes)
  - cart_enable="yes", enable
  - cart_enable="no" ,not enable
- number_excerpt - Enter number of excerpt to show(Default 10), example number_excerpt="20"
- order - Order ascending (order="ASC") or descending (order="DESC")
- orderby - Choose order condition
  - 'date' - Order by date.
  - 'ID' - Order by post id. Note the captialization.
  - 'author' - Order by author.
  - 'title' - Order by title.
  - 'name' - Order by post name (post slug).
  - 'modified' - Order by last modified date.
  - 'parent' - Order by post/page parent id.
  - 'rand' - Random order.
  - 'menu_order' - Order by Page Order. Used most often for Pages (Order field in the Edit Page Attributes box) and for Attachments (the integer fields in the Insert / Upload Media Gallery dialog), but could be used for any post type with distinct 'menu_order' values (they all default to 0).
  - 'meta_value' - Note that a 'meta_key=keyname' must also be present in the query. Note also that the sorting will be alphabetical which is fine for strings (i.e. words), but can be unexpected for numbers (e.g. 1, 3, 34, 4, 56, 6, etc, rather than 1, 3, 4, 6, 34, 56 as you might naturally expect). Use 'meta_value_num' instead for numeric values.
  - 'meta_value_num' - Order by numeric meta value (available with Version 2.8). Also note that a 'meta_key=keyname' must also be present in the query. This value allows for numerical sorting as noted above in 'meta_value'.
  - 'post__in' - Preserve post ID order given in the ids array
  - 'none' - No order
- meta_key - Enter custom field key, Show posts associated with a certain custom field

##### Example: List style 1 with Category and Load more(click here to view detail demo)

[ex_food_list count="10" posts_per_page="5" page_navi="loadmore" menu_filter="show"]

##### Food Table

Food Table is a shortcode for displaying food on table .

[ex_food_table style="" count="" menu_filter ="" order_cat="" on_sale="" live_sort="" posts_per_page="" ids="" cat="" page_navi="" number_excerpt="" cart_enable ="" order="" orderby="" meta_key="" hide_ftall="" active_filter=""]

- style - Select number style(Default 1)
  - Food table - only have style 1 (example style="1")
- count - A number items will be showed. Default total items(Example: you have 23 foods but you only want to display 20 foods, you can set count="20")
- posts_per_page - relates param page_navi
  - page_navi="loadmore", posts_per_page is number of items to add in the end after event load more (Example page_navi="loadmore" posts_per_page="3" - show 3 items in the end after click button load more)
  - page_navi="" (Pagination), posts_per_page is number of items to show per page(Example page_navi="" posts_per_page="3" - show 3 items in per page).
- ids - List of IDs to query, separated by a comma(example ids="1,2,3")
- cat - List of category ids (or slug), separated by a comma(example cat="fastfood" or cat="1")
- menu_filter - Show category food filter(Default hidden)
  - menu_filter="hide"
  - menu_filter="show"
- hide_ftall – Hide 'All' Filter, Select 'yes' to disable 'All' filter
  - hide_ftall=""
  - hide_ftall="yes"
- active_filter – Active special menu filter instead of "All", enter slug of category to active
- order_cat - Show category food filter with custom order(Default no custom order)
  - order_cat="", not apply custom order
  - order_cat="yes" , apply custom order
- on_sale - Select items on sale(Default "")
  - on_sale="",
  - on_sale="yes" , apply select items on sale
- live_sort - Show or hide sort(Default hidden)
  - live_sort="" - hide
  - live_sort="1" - show
- page_navi - type of display(load more event or pagination) refer with param posts_per_page(Default Pagination)
  - page_navi="loadmore", add items in the end after event load more
  - page_navi="" ,Pagination
- number_excerpt - Enter number of excerpt to show(Default 10), example number_excerpt="20"
- cart_enable - Enable cart icon or not(Default yes)
  - cart_enable="yes", enable
  - cart_enable="no" ,not enable
- order - Order ascending (order="ASC") or descending (order="DESC")
- orderby - Choose order condition
  - 'date' - Order by date.
  - 'ID' - Order by post id. Note the captialization.
  - 'author' - Order by author.
  - 'title' - Order by title.
  - 'name' - Order by post name (post slug).
  - 'modified' - Order by last modified date.
  - 'parent' - Order by post/page parent id.
  - 'rand' - Random order.
  - 'menu_order' - Order by Page Order. Used most often for Pages (Order field in the Edit Page Attributes box) and for Attachments (the integer fields in the Insert / Upload Media Gallery dialog), but could be used for any post type with distinct 'menu_order' values (they all default to 0).
  - 'meta_value' - Note that a 'meta_key=keyname' must also be present in the query. Note also that the sorting will be alphabetical which is fine for strings (i.e. words), but can be unexpected for numbers (e.g. 1, 3, 34, 4, 56, 6, etc, rather than 1, 3, 4, 6, 34, 56 as you might naturally expect). Use 'meta_value_num' instead for numeric values.
  - 'meta_value_num' - Order by numeric meta value (available with Version 2.8). Also note that a 'meta_key=keyname' must also be present in the query. This value allows for numerical sorting as noted above in 'meta_value'.
  - 'post__in' - Preserve post ID order given in the ids array
  - 'none' - No order
- meta_key - Enter custom field key, Show posts associated with a certain custom field

##### Example: Table style with Live Sort and Pagination(click here to view detail demo)

[ex_food_table count="10" posts_per_page="5" live_sort="1"]

##### Food Carousel

Food Carousel is a shortcode for displaying food on slider .

[ex_food_carousel style="" count="" slidesshow="" slidesscroll="" ids="" cat="" on_sale="" number_excerpt="" orderby="" meta_key="" autoplay="" autoplayspeed="" loading_effect="" infinite="" cart_enable ="" ]

- style - Select number style start 1 to 4(example style="1")
- count - A number items will be showed. Default total items(Example: you have 23 foods but you only want to display 20 foods, you can set count="20")
- slidesshow - number items per slide (Default:3)
- slidesscroll - number of slides to scroll at a time (Default = slidesshow)
- ids - List of IDs to query, separated by a comma(example ids="1,2,3")
- cat - List of category ids (or slug), separated by a comma(example cat="fastfood" or cat="1")
- on_sale - Select items on sale(Default "")
  - on_sale="",
  - on_sale="yes" , apply select items on sale
- number_excerpt - Enter number of excerpt to show(Default 10), example number_excerpt="20"
- order - Order ascending (order="ASC") or descending (order="DESC")
- orderby - Choose order condition
  - 'date' - Order by date.
  - 'ID' - Order by post id. Note the captialization.
  - 'author' - Order by author.
  - 'title' - Order by title.
  - 'name' - Order by post name (post slug).
  - 'modified' - Order by last modified date.
  - 'parent' - Order by post/page parent id.
  - 'rand' - Random order.
  - 'menu_order' - Order by Page Order. Used most often for Pages (Order field in the Edit Page Attributes box) and for Attachments (the integer fields in the Insert / Upload Media Gallery dialog), but could be used for any post type with distinct 'menu_order' values (they all default to 0).
  - 'meta_value' - Note that a 'meta_key=keyname' must also be present in the query. Note also that the sorting will be alphabetical which is fine for strings (i.e. words), but can be unexpected for numbers (e.g. 1, 3, 34, 4, 56, 6, etc, rather than 1, 3, 4, 6, 34, 56 as you might naturally expect). Use 'meta_value_num' instead for numeric values.
  - 'meta_value_num' - Order by numeric meta value (available with Version 2.8). Also note that a 'meta_key=keyname' must also be present in the query. This value allows for numerical sorting as noted above in 'meta_value'.
  - 'post__in' - Preserve post ID order given in the ids array
  - 'none' - No order
- meta_key - Enter custom field key, Show posts associated with a certain custom field
- autoplay - Auto next slide or not
  - autoplay="" - not auto
  - autoplay="1" - auto
- autoplayspeed - Autoplay Speed in milliseconds. Default:3000, it work only autoplay="1"(example autoplay="1" autoplayspeed="1000")
- loading_effect - Enable or disable effect when loading
  - loading_effect="" - no effect
  - loading_effect="1" - apply effect
- infinite - Infinite loop sliding ( go to first item when end loop)
  - infinite="" - not infinite
  - infinite="yes" - infinite
- cart_enable - Enable cart icon or not(Default yes)
  - cart_enable="yes", enable
  - cart_enable="no" ,not enable

##### Example: Carousel style 2 with 3 items visible, Auto play(1 seconds) and Infinite( go to first item when end loop) click here to view detail demo

[ex_food_carousel style="2" count="6" slidesshow="3" autoplay="1" autoplayspeed="1000" loading_effect="1" infinite="yes"]

##### Food Cart

Food Cart is a shortcode for displaying food on Cart(This shortcode for cart page, you can choice any page and add this shortcode to that page, just setting that page to cart page, refer Advance setting)

[exfood_cart]

##### Food Mini Cart

Food Mini Cart is a shortcode for displaying food on Cart with small size, you can add it to any place or any widget replace for cart icon

[ex_food_minicart]

##### Food Checkout

Food Checkout is a shortcode for displaying checkout info(This shortcode for checkout page, you can choice any page and add this shortcode to that page, just setting that page to checkout page, refer Advance setting)

[exfood_checkout]

##### Food Location

Food Location is a shortcode for displaying Location selection.

[exfood_sllocation]

##### User Dashboard

User Dashboard is a shortcode to allow user can login to their account and view their order and manage address.

[ex_food_user]

### Shortcode builder

1. Go to Food > Shortcode builder

2. Config shortcode option as you wan to show > Click Publish button

With Selection Tyle has 4 items(Grid,Table,List, Carousel) please refer Short code document for more detail about each param

3. Copy shortcode and paste it into your post, page, or text widget content

### General Setting

1. Go to Food > Setting

2. Display

### Advanced Settings

1. Go to Food > Settings > Advanced

Advanced Opening closing time ( This option only visible in verion 2.3)

Advanced Time delivery ( This option only visible in verion 2.6)

2. How to create recaptcha(only support recaptcha v2)

Go to https://www.google.com/recaptcha/admin/create to set up recaptcha

### Payments Settings

1. Go to Food > Settings > Payment

2. Select Enabled to enable payment

3. Setup payment information

Requirements:
A PayPal Business account – go to PayPal.com to sign up or log in to your existing account

### Translation

The plugin is translation ready, please follow the steps bellow:

### Customize

To edit template of food element you just copy folder "templates" in the folder "plugins/wp-food/" to your theme folder and change name to "wp-food" and you can customise it as you want

### Sources and Credits

I've used the following images, icons or other files as listed.

- Free Photos - by Pixabay
- CMB2 - GPL V2 License
- Slick - MIT License

Once again, thank you so much for purchasing this plugin. As I said at the beginning, I'd be glad to help you if you have any questions relating to this plugin. No guarantees, but I'll do my best to assist. If you have a more general question relating to the plugin on Codecanyon, you might consider visiting the forums and asking your question in the "Item Discussion" section.

ExThemes