=== Obydullah Restaurant Core ===
Contributors: obydullah
Donate link: https://obydullah.com
Tags: restaurant, menu, reservations, custom post types, booking
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 1.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: obydullah-restaurant-core

Core functionality for restaurant websites: custom post types, menu builder, reservations, and admin dashboard.

== Description ==

Obydullah Restaurant Core is a purpose-built WordPress plugin that gives restaurant websites everything they need behind the scenes. It registers custom post types, custom taxonomies, meta boxes, and a custom database table so you can manage hero sliders, menus, testimonials, opening hours, reservations, and more, all from the WordPress admin.

It is the official companion plugin for the [Obydullah Restaurant](https://wordpress.org/themes/obydullah-restaurant/) theme but works independently with any restaurant theme.

= What It Manages =

* **Hero Slider** — Create and reorder featured banner slides with titles, subtitles, and images.
* **Chef's Specials** — A single spotlight post for showcasing a signature dish with description and image.
* **Menu Items** — Individual menu entries with subtitles, prices, and a hierarchical Menu Category taxonomy for grouping (Starters, Mains, Desserts, etc.).
* **Menu Area** — A single post for managing the menu section's introductory text.
* **Testimonials** — Customer reviews with quotes, names, and roles.
* **Testimonial Area** — A single post for section-level settings.
* **Opening Hours** — A repeatable day/time table with a note field, managed through a custom admin interface.
* **Table Reservations** — An AJAX-powered booking form backed by a custom `wp_obirc_bookings` database table, with an admin list table for viewing, sorting, filtering, and bulk-deleting entries.
* **Footer Settings** — Centralised footer management: logo text, tagline, social media URLs, quick links (repeatable), contact info, and copyright.
* **About Page** — Chef story, philosophy, and a repeatable slider with title, subtitle, and Media Library background images.
* **Contact Page** — Address, phone, email, Google Maps embed URL, and Contact Form 7 shortcode with auto-detection.

= Why a Custom Plugin =

Restaurant websites have very specific content needs. Instead of stuffing everything into theme options or relying on five different plugins, Obydullah Restaurant Core provides a single, focused plugin that handles all restaurant-specific content management. Each section maps to a dedicated WordPress post type, so content is managed through the familiar post editor, not a proprietary panel.

= Key Technical Details =

* **10 Custom Post Types** — Hero Slider, Chef's Special, Menu Item, Menu Area, Testimonial, Testimonial Area, Opening Hours, About Page, Contact Page, and Footer.
* **1 Custom Taxonomy** — Menu Category (hierarchical, for grouping menu items).
* **Custom Database Table** — `wp_obirc_bookings` for structured reservation storage with `dbDelta()` lifecycle management.
* **Admin Dashboard** — A central card-based dashboard for quick navigation to every section.
* **Single-Instance Enforcement** — Seven post types are automatically limited to one entry. Creating a new post redirects to the existing edit screen.
* **Security** — All form submissions and AJAX requests use nonce verification. Database queries use `$wpdb->prepare()`.
* **Input Sanitisation** — Consistent use of `sanitize_text_field`, `sanitize_email`, `sanitize_textarea_field`, `esc_html`, `esc_attr`, and `esc_url`.
* **Translation Ready** — All user-facing strings use `__()` and `esc_html_e()` with the `obydullah-restaurant-core` text domain.
* **Zero Front-End Dependencies** — The plugin handles admin-side content management only. All front-end rendering is handled by the theme.

= Built With =

* Native WordPress Custom Post Types and Taxonomies
* Custom Meta Boxes with per-section save handlers
* `WP_List_Table` for the reservations admin table
* jQuery for repeater field add/remove/reindex
* WordPress Media Library integration for image selection
* `$wpdb->prepare()` and `dbDelta()` for database operations

= Links =

* [GitHub Repository](https://github.com/shaik-obydullah/obydullah-restaurant-core-wordpress-plugin)
* [Live Project Page](https://obydullah.com/project/obydullah-restaurant-core-wordpress-plugin)
* [Companion Theme](https://wordpress.org/themes/obydullah-restaurant/)

== Installation ==

= From WordPress.org =

1. Go to **Plugins > Add New** in your WordPress admin.
2. Search for **Obydullah Restaurant Core**.
3. Click **Install Now**, then **Activate**.
4. Navigate to the **Restaurant Core** menu in your admin sidebar to access the dashboard.

= Manual Installation =

1. Download the plugin from [WordPress.org](https://wordpress.org/plugins/obydullah-restaurant-core/) or [GitHub](https://github.com/shaik-obydullah/obydullah-restaurant-core-wordpress-plugin).
2. Upload the `obydullah-restaurant-core` folder to `/wp-content/plugins/`.
3. Activate through **Plugins** in the WordPress admin.
4. Navigate to the **Restaurant Core** menu in your admin sidebar.

= After Activation =

* A new top-level menu called **Restaurant Core** appears in the admin sidebar with a dashboard linking to every section.
* Custom post type menu items (Hero Slider, Menu Items, Testimonials, etc.) are also available directly.
* The reservations table is created automatically on activation and removed on uninstall.

== Frequently Asked Questions ==

= Is this plugin required for the Obydullah Restaurant theme? =

Yes, it is recommended for full functionality. The theme reads data from the custom post types this plugin registers. Without it, sections like the hero slider, menu, testimonials, and reservation form will have no content to display.

= Does it work with other themes? =

Yes. The plugin registers standard custom post types and taxonomies that any theme can query. You may need to adjust your theme templates to match the post type slugs and meta field keys used by this plugin.

= Does it include a reservation system? =

Yes. It includes an AJAX-powered reservation form with nonce verification and server-side validation. Bookings are stored in a custom database table (`wp_obirc_bookings`) and managed through an admin list table with sorting, filtering, and bulk delete. The front-end form itself is rendered by the theme.

= What fields does the reservation form collect? =

Name, email, phone number, party size, date, time, and optional notes.

= Can I create multiple hero slides? =

Yes. The Hero Slider post type supports multiple entries. Each slide has a title, subtitle, and featured image. Ordering is controlled via page attributes.

= Which post types are limited to a single entry? =

Chef's Special, Menu Area, Testimonial Area, Opening Hours, Footer, About Page, and Contact Page. If you try to create a new post when one already exists, you will be redirected to edit the existing one.

= Does it include front-end styles or scripts? =

No. The plugin is purely a content management layer. All front-end rendering is handled by the theme.

= How do I report bugs or contribute? =

Visit the [GitHub repository](https://github.com/shaik-obydullah/obydullah-restaurant-core-wordpress-plugin) to open issues or submit pull requests.

== Screenshots ==

1. Admin dashboard with quick-access cards for every section
2. Hero Slider post type with slide management
3. Menu Items with category taxonomy and price fields
4. Opening Hours repeater interface
5. Reservations admin list table with sorting and bulk actions
6. Footer settings with repeatable quick links
7. About Page with Media Library image slider

== Changelog ==

= 1.0.1 =
* Tested up to WordPress 7.1, requires PHP 8.0 or higher

= 1.0.0 =
* Initial release
* Custom post types: Hero Slider, Chef's Special, Menu Item, Menu Area, Testimonial, Testimonial Area, Opening Hours, Footer, About Page, Contact Page
* Custom taxonomy: Menu Category
* Custom database table for table reservations with AJAX submission
* Admin list table for reservations with sorting, filtering, and bulk delete
* Central admin dashboard with section cards
* Single-instance enforcement for 7 post types
* Repeater fields for Opening Hours, Footer quick links, and About Page slider
* Contact Form 7 auto-detection helper
* Translation-ready with text domain `obydullah-restaurant-core`

== Upgrade Notice ==

= 1.0.1 =
Compatibility updates for WordPress 7.1 and PHP 8.0+.

= 1.0.0 =
Initial release of Obydullah Restaurant Core.

