{"id":366835,"date":"2026-10-16T12:40:22","date_gmt":"2026-10-16T12:40:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pizzapilot\/"},"modified":"2026-10-16T12:40:00","modified_gmt":"2026-10-16T12:40:00","slug":"pizzapilot","status":"publish","type":"plugin","link":"https:\/\/yor.wordpress.org\/plugins\/pizzapilot\/","author":4159735,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.3","stable_tag":"1.2.3","tested":"7.1.3","requires":"6.3","requires_php":"7.2","requires_plugins":null,"header_name":"PizzaPilot","header_author":"Elliott Richmond","header_description":"PizzaPilot is designed to help small pizzerias set up time slot-based ordering and delivery radius checks within WooCommerce. It includes a basic frontend and backend interface for order management during kitchen hours","assets_banners_color":"a2cbb5","last_updated":"2026-10-16 12:40:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/pizzapilotpro.com","header_author_uri":"https:\/\/elliottrichmond.co.uk\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":23,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.3":{"tag":"1.2.3","author":"erichmond","date":"2026-10-16 12:40:00","revision":3750421}},"upgrade_notice":{"1.2.3":"<p>Readme and plugin header updates only. No change to plugin behaviour.<\/p>","1.2.2":"<p>&quot;Mark Completed&quot; on the Kitchen Orders page now also completes the WooCommerce order, which may send the customer&#039;s order-completed email. Also fixes the Kitchen Orders date filter on non-HPOS stores and meets WordPress.org guidelines. No change to checkout.<\/p>","1.2.1":"<p>Bug fix release. Prevents block checkout accepting an order with no delivery time, restores the Kitchen Orders page for stores on classic checkout, makes the kitchen Pro notice dismissable, corrects the stored same-day delivery setting, and fixes tooltip styling on the Delivery settings tab.<\/p>","1.2.0":"<p>Adds the Delivery Postcode Checker block and a refactored, conditionally-enqueued public asset pipeline.<\/p>","1.0.0":"<p>Initial release of PizzaPilot.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3750536,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3750536,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3750536,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3750536,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"pizzapilot\/delivery-checker":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"pizzapilot\/delivery-checker","version":"1.0.0","title":"Delivery Postcode Checker","category":"woocommerce","icon":"location","description":"A button that opens a postcode checker modal so customers can verify if you deliver to their area.","keywords":["pizza","delivery","postcode","checker"],"textdomain":"pizzapilot","supports":{"html":false,"align":["left","center","right"],"color":{"background":true,"text":true,"link":false,"__experimentalDefaultControls":{"background":true,"text":true}},"spacing":{"margin":true,"padding":true}},"editorScript":"file:.\/edit.js","viewScript":["pizzapilot-postcode-api","file:.\/view.js"],"style":"file:.\/style.css"}},"tagged_versions":["1.2.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3750536,"resolution":"1","location":"assets","locale":"","width":1327,"height":1024},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3750536,"resolution":"2","location":"assets","locale":"","width":1329,"height":957},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3750536,"resolution":"3","location":"assets","locale":"","width":959,"height":589}},"screenshots":{"1":"Kitchen Orders page showing orders grouped by time slot","2":"Settings page with delivery configuration","3":"Checkout with delivery type and time slot selection"}},"plugin_section":[],"plugin_tags":[13827,10561,65549,54863,286],"plugin_category":[45],"plugin_contributors":[85929],"plugin_business_model":[],"class_list":["post-366835","plugin","type-plugin","status-publish","hentry","plugin_tags-delivery","plugin_tags-ordering","plugin_tags-pizza","plugin_tags-time-slots","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-erichmond","plugin_committers-erichmond"],"banners":{"banner":"https:\/\/ps.w.org\/pizzapilot\/assets\/banner-772x250.png?rev=3750536","banner_2x":"https:\/\/ps.w.org\/pizzapilot\/assets\/banner-1544x500.png?rev=3750536","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pizzapilot\/assets\/icon-128x128.png?rev=3750536","icon_2x":"https:\/\/ps.w.org\/pizzapilot\/assets\/icon-256x256.png?rev=3750536","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pizzapilot\/assets\/screenshot-1.png?rev=3750536","caption":"Kitchen Orders page showing orders grouped by time slot"},{"src":"https:\/\/ps.w.org\/pizzapilot\/assets\/screenshot-2.png?rev=3750536","caption":"Settings page with delivery configuration"},{"src":"https:\/\/ps.w.org\/pizzapilot\/assets\/screenshot-3.png?rev=3750536","caption":"Checkout with delivery type and time slot selection"}],"raw_content":"<!--section=description-->\n<p>PizzaPilot helps local pizzerias manage delivery and collection orders through WooCommerce with time slot-based scheduling.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Time Slot Ordering<\/strong> \u2014 Auto-generated 30-minute delivery slots for today, shown at checkout<\/li>\n<li><strong>Delivery Radius Checker<\/strong> \u2014 Validates customer postcodes against your delivery area using postcodes.io (UK postcodes, free, no API key)<\/li>\n<li><strong>Kitchen Order View<\/strong> \u2014 Admin dashboard showing today's orders grouped by time slot with completion toggles<\/li>\n<li><strong>WooCommerce Integration<\/strong> \u2014 Works with both classic and block checkout, supports HPOS<\/li>\n<li><strong>Delivery &amp; Collection<\/strong> \u2014 Customers choose delivery or collection at checkout; out-of-range postcodes fall back to collection only<\/li>\n<\/ul>\n\n<p>PizzaPilot uses the WooCommerce Additional Checkout Fields API for seamless integration with the checkout flow.<\/p>\n\n<p><strong>PizzaPilot Pro<\/strong> extends the free version with future date ordering, slot capacity limits, recurring slot templates, interactive Mapbox delivery maps with What3Words, drag-and-drop kitchen UI, and more. <a href=\"https:\/\/pizzapilotpro.com\/pricing\/\">Learn more<\/a>.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to postcodes.io, a free UK postcode lookup service run by Ideal Postcodes, to convert UK postcodes into geographic coordinates. This is required to calculate the distance between your store and a customer's address, which is how the delivery radius check works.<\/p>\n\n<p><strong>What is sent, and when:<\/strong><\/p>\n\n<ul>\n<li>A single UK postcode is sent to <code>https:\/\/api.postcodes.io\/postcodes\/{postcode}<\/code> each time a delivery radius check runs. No other customer data (name, address, email, order contents) is transmitted.<\/li>\n<li>This happens when a customer enters a postcode at checkout, when a customer uses the Delivery Postcode Checker block, and when your configured store postcode is looked up for the distance calculation.<\/li>\n<li>Results are cached in WordPress transients so that repeat lookups of the same postcode do not re-contact the service.<\/li>\n<\/ul>\n\n<p>No API key or account is required, and the plugin sends no data to the service unless a postcode check is actually performed.<\/p>\n\n<ul>\n<li>Service: https:\/\/postcodes.io\/<\/li>\n<li>Licence and data sources: https:\/\/postcodes.io\/docs\/licences<\/li>\n<li>Terms of service: https:\/\/terms.ideal-postcodes.co.uk<\/li>\n<li>Privacy policy: https:\/\/terms.ideal-postcodes.co.uk\/website\/privacy.html<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>pizzapilot<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>WooCommerce must be installed and active<\/li>\n<li>Go to PizzaPilot &gt; Settings to configure your delivery postcode, radius, and slot times<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20woocommerce%3F\"><h3>Does this plugin require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. PizzaPilot requires WooCommerce 8.9 or later to be installed and active. Slot selection is built on\nWooCommerce's Additional Checkout Fields API, which is not available in earlier releases. On an older\nWooCommerce the plugin will load but the checkout fields will not be registered.<\/p><\/dd>\n<dt id=\"how%20are%20delivery%20slots%20generated%3F\"><h3>How are delivery slots generated?<\/h3><\/dt>\n<dd><p>Slots are auto-generated in 30-minute intervals between your configured start and end times for today. Slots that have already passed are automatically hidden.<\/p><\/dd>\n<dt id=\"how%20does%20the%20delivery%20radius%20work%3F\"><h3>How does the delivery radius work?<\/h3><\/dt>\n<dd><p>You enter your store's postcode and a maximum delivery radius (km or miles). Customer postcodes are checked against this radius using the postcodes.io API and Haversine distance calculation. Customers outside the radius can only select \"Collection\".<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20the%20woocommerce%20block%20checkout%3F\"><h3>Does this work with the WooCommerce block checkout?<\/h3><\/dt>\n<dd><p>Yes. PizzaPilot uses the WooCommerce Additional Checkout Fields API, which works with both the classic shortcode checkout and the block-based checkout.<\/p><\/dd>\n<dt id=\"can%20customers%20order%20for%20future%20dates%3F\"><h3>Can customers order for future dates?<\/h3><\/dt>\n<dd><p>The free version supports same-day ordering only. Future date scheduling is available in PizzaPilot Pro.<\/p><\/dd>\n<dt id=\"does%20it%20support%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Does it support HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes. PizzaPilot declares HPOS compatibility and uses WooCommerce order methods for all meta operations.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Changed: the Plugin URI now points to pizzapilotpro.com, the official PizzaPilot site.<\/li>\n<li>Improved: the External Services section now names the operator of postcodes.io (Ideal Postcodes) and links to its terms of service and privacy policy.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Changed: \"Mark Completed\" on the Kitchen Orders page now also sets the WooCommerce order status to Completed, and the order drops out of the kitchen view. Unmarking it returns the order to Processing. The kitchen view now lists only Processing and On hold orders.<\/li>\n<li>Changed: the Advanced settings tab now describes same-day ordering in plain text with a link to PizzaPilot Pro, instead of showing a checkbox that could not be changed.<\/li>\n<li>Improved: admin JavaScript now loads only on the WooCommerce order edit screens, from its own file rather than inline.<\/li>\n<li>Improved: all inline styles moved into the plugin's stylesheets.<\/li>\n<li>Fixed: a PHP notice (\"Order properties should not be accessed directly\") logged each time an order was opened in the admin.<\/li>\n<li>Fixed: on stores not using WooCommerce's High-Performance Order Storage, the Kitchen Orders page ignored the date and could list open orders from other days. It now shows only today's orders on both storage types, without logging a notice.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fixed: on block checkout, an order could be placed with no delivery time when the shop had no slots available. WooCommerce rejects a select field with an empty options list, so the Delivery Time field was never registered and nothing validated it. A placeholder option now keeps the field registered and blocks checkout until a real slot is available.<\/li>\n<li>Fixed: the Kitchen Orders page showed \"No orders for today\" on stores using classic checkout. The query ordered on the block checkout's meta key, which excluded every order that stored its slot under the classic key. Slot grouping is unchanged; the groups were already sorted in PHP.<\/li>\n<li>Fixed: the \"Pro: Custom time slots\" hint on the Delivery settings tab ran on into its own tooltip text, because no stylesheet defined the tooltip classes. The tooltip now reveals on hover and keyboard focus, and honours reduced-motion preferences.<\/li>\n<li>Fixed: the \"Upgrade to PizzaPilot Pro\" notice on the Kitchen Orders screen could not be dismissed. The dismiss link never reached its handler, so the notice returned on every page load.<\/li>\n<li>Fixed: saving the Advanced settings tab recorded same-day delivery as switched off, even though the setting is shown as on and cannot be changed without PizzaPilot Pro. Sites that later installed Pro could find future-date ordering unexpectedly enabled.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: \"Delivery Postcode Checker\" block (woocommerce category) \u2014 icon-trigger modal that lets customers verify delivery to their postcode. Background and text colour controls in the block sidebar.<\/li>\n<li>New: pizzapilot_delivery_checker_block_strings filter for overriding the block's user-facing copy.<\/li>\n<li>Improved: postcode-check AJAX extracted to a shared helper (pizzapilot-postcode-api.js) reused by checkout and the new block.<\/li>\n<li>Improved: public scripts only load on cart, checkout, or pages where they are needed \u2014 no longer enqueued site-wide.<\/li>\n<li>Improved: WordPress-Extra PHPCS pass \u2014 zero errors, zero warnings.<\/li>\n<li>Removed: empty public stylesheet placeholder.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Time slot-based ordering at WooCommerce checkout<\/li>\n<li>Delivery radius validation via postcodes.io<\/li>\n<li>Kitchen order view with completion toggles<\/li>\n<li>HPOS compatibility<\/li>\n<li>WooCommerce block and classic checkout support<\/li>\n<\/ul>","raw_excerpt":"Slot-based delivery and collection ordering for WooCommerce. Built for local pizzerias.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/366835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=366835"}],"author":[{"embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/erichmond"}],"wp:attachment":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=366835"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=366835"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=366835"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=366835"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=366835"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=366835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}