{"id":327927,"date":"2026-07-22T09:46:49","date_gmt":"2026-07-22T09:46:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/playard-sports-facility-booking\/"},"modified":"2026-07-23T12:39:35","modified_gmt":"2026-07-23T12:39:35","slug":"playard","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/playard\/","author":22020053,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.0.2","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Playard \u2014 Sports Facility Booking System for Courts, Fields, Pitches, Venues and More","header_author":"Masum Ahmad","header_description":"Sports facility booking plugin. Let customers book fields, courts, and pitches directly from your WordPress website \u2014 no SaaS, full control.","assets_banners_color":"e9ecf6","last_updated":"2026-07-23 12:39:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/devmasum52\/playard","header_author_uri":"https:\/\/masumahmad.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":99,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"masum52","date":"2026-07-22 18:28:28"},"1.0.1":{"tag":"1.0.1","author":"masum52","date":"2026-07-23 04:32:23"},"1.0.2":{"tag":"1.0.2","author":"masum52","date":"2026-07-23 08:04:54"},"1.0.3":{"tag":"1.0.3","author":"masum52","date":"2026-07-23 12:39:35"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3619065,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3619065,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3619067,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"playard\/book-now-button":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"playard\/book-now-button","version":"1.0.0","title":"Book Now Button","category":"playard","icon":"tickets-alt","description":"A prominent call-to-action button that sends visitors to your booking page.","keywords":["book","cta","button","booking","playard"],"textdomain":"playard","attributes":{"label":{"type":"string","default":"Book a Field"},"url":{"type":"string","default":""},"size":{"type":"string","default":"large"},"align":{"type":"string","default":"center"},"style":{"type":"string","default":"primary"},"openModal":{"type":"boolean","default":false},"fieldId":{"type":"string","default":""},"bgColor":{"type":"string","default":""},"textColor":{"type":"string","default":""},"borderRadius":{"type":"number","default":0},"fullWidth":{"type":"boolean","default":false}},"supports":{"html":false,"align":false},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"playard\/field-list":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"playard\/field-list","version":"1.0.0","title":"Field List","category":"playard","icon":"grid-view","description":"Display active sports fields as a flexible grid of bookable cards.","keywords":["fields","courts","sports","listing","playard"],"textdomain":"playard","attributes":{"columns":{"type":"number","default":3},"cardStyle":{"type":"string","default":"card"},"showPhoto":{"type":"boolean","default":true},"showSports":{"type":"boolean","default":true},"showPrice":{"type":"boolean","default":true},"showDescription":{"type":"boolean","default":false},"showButton":{"type":"boolean","default":true},"buttonText":{"type":"string","default":"Book Now"},"buttonStyle":{"type":"string","default":"primary"},"bookingPage":{"type":"string","default":""},"buttonAction":{"type":"string","default":"link"},"imgHeight":{"type":"string","default":"medium"},"cardRadius":{"type":"string","default":"soft"},"cardShadow":{"type":"string","default":"soft"},"spacing":{"type":"string","default":"normal"},"titleSize":{"type":"number","default":0},"cardBg":{"type":"string","default":""},"cardBorderColor":{"type":"string","default":""},"titleColor":{"type":"string","default":""},"priceColor":{"type":"string","default":""},"badgeBg":{"type":"string","default":""},"badgeColor":{"type":"string","default":""}},"supports":{"html":false,"align":["wide","full"]},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"playard\/booking-widget":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"playard\/booking-widget","version":"1.0.0","title":"Playard Booking Calendar","category":"playard","icon":"calendar","description":"Full booking calendar \u2014 customers pick a field, date, time slots and checkout without leaving your page.","keywords":["booking","calendar","sports","field","court","playard"],"textdomain":"playard","attributes":{"fieldIds":{"type":"string","default":""},"theme":{"type":"string","default":"light"},"showFieldStep":{"type":"boolean","default":true},"accentColor":{"type":"string","default":""},"compactMode":{"type":"boolean","default":false}},"supports":{"html":false,"align":["wide","full"],"multiple":false},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"playard\/facility-info":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"playard\/facility-info","version":"1.0.0","title":"Facility Info","category":"playard","icon":"location-alt","description":"Display facility name, address, phone, email and opening hours.","keywords":["facility","info","address","hours","contact","playard"],"textdomain":"playard","attributes":{"showAddress":{"type":"boolean","default":true},"showPhone":{"type":"boolean","default":true},"showEmail":{"type":"boolean","default":false},"showHours":{"type":"boolean","default":true},"layout":{"type":"string","default":"horizontal"},"bgColor":{"type":"string","default":""},"borderColor":{"type":"string","default":""},"iconBg":{"type":"string","default":""},"iconColor":{"type":"string","default":""},"titleColor":{"type":"string","default":""},"textColor":{"type":"string","default":""},"labelColor":{"type":"string","default":""}},"supports":{"html":false,"align":["wide"]},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"playard\/my-bookings":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"playard\/my-bookings","title":"My Bookings","description":"Shows a customer's booking history. Customers log in via OTP or password.","category":"playard","icon":"calendar-alt","keywords":["playard","bookings","customer","portal","my bookings"],"supports":{"html":false,"reusable":false},"editorScript":"file:.\/index.js"},"playard\/facility-map":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"playard\/facility-map","version":"1.0.0","title":"Facility Map","category":"playard","icon":"location-alt","description":"Embed an interactive Google Maps location for your sports facility.","keywords":["map","location","google","address","facility","playard"],"textdomain":"playard","attributes":{"height":{"type":"number","default":420},"zoom":{"type":"number","default":15},"rounded":{"type":"boolean","default":true},"showCard":{"type":"boolean","default":true},"showPhone":{"type":"boolean","default":true},"showAddress":{"type":"boolean","default":true}},"supports":{"html":false,"align":["wide","full"]},"editorScript":"file:.\/index.js","render":"file:.\/render.php"}},"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3619065,"resolution":"1","location":"assets","locale":"","width":3096,"height":1722},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3619065,"resolution":"10","location":"assets","locale":"","width":3096,"height":1720},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3619065,"resolution":"11","location":"assets","locale":"","width":3158,"height":1746},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3619065,"resolution":"12","location":"assets","locale":"","width":3016,"height":1704},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3619065,"resolution":"13","location":"assets","locale":"","width":3094,"height":1718},"screenshot-14.png":{"filename":"screenshot-14.png","revision":3619065,"resolution":"14","location":"assets","locale":"","width":3094,"height":1718},"screenshot-15.png":{"filename":"screenshot-15.png","revision":3619065,"resolution":"15","location":"assets","locale":"","width":2472,"height":1494},"screenshot-16.png":{"filename":"screenshot-16.png","revision":3619065,"resolution":"16","location":"assets","locale":"","width":2242,"height":1430},"screenshot-17.png":{"filename":"screenshot-17.png","revision":3619065,"resolution":"17","location":"assets","locale":"","width":2234,"height":1718},"screenshot-18.png":{"filename":"screenshot-18.png","revision":3619065,"resolution":"18","location":"assets","locale":"","width":1858,"height":1780},"screenshot-19.png":{"filename":"screenshot-19.png","revision":3619065,"resolution":"19","location":"assets","locale":"","width":2380,"height":1484},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3619065,"resolution":"2","location":"assets","locale":"","width":3094,"height":1722},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3619065,"resolution":"3","location":"assets","locale":"","width":3094,"height":1714},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3619065,"resolution":"4","location":"assets","locale":"","width":3092,"height":1700},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3619065,"resolution":"5","location":"assets","locale":"","width":3182,"height":1806},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3619065,"resolution":"6","location":"assets","locale":"","width":3096,"height":1736},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3619065,"resolution":"7","location":"assets","locale":"","width":3100,"height":1710},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3619065,"resolution":"8","location":"assets","locale":"","width":3094,"height":1716},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3619065,"resolution":"9","location":"assets","locale":"","width":3092,"height":1710}},"screenshots":{"1":"Booking widget \u2014 5-step flow on the frontend","2":"Admin dashboard \u2014 today's stats and bookings","3":"Booking calendar \u2014 day\/week\/month view","4":"Walk-in booking slide-over panel","5":"Customer portal \u2014 My Bookings","6":"Settings \u2014 Payment Settings with Stripe","7":"Customers \u2014 full customer list with bookings and lifetime spend","8":"Customer profile \u2014 booking history, stats and status breakdown","9":"Fields \u2014 manage all courts, pitches and fields","10":"Edit field \u2014 name, description, sports, capacity and slot duration","11":"Facility Setup \u2014 branding, opening hours, timezone and date format","12":"Team \u2014 add staff members with scoped access","13":"Reports \u2014 booking trends chart with completed and cancelled breakdown","14":"Payment Settings \u2014 gateways, currency and cancellation rules","15":"Booking widget \u2014 Step 1: select a field","16":"Booking widget \u2014 Step 2: pick a date on the availability calendar","17":"Booking widget \u2014 Step 3: pick a time slot","18":"Booking widget \u2014 Step 4: enter details and confirm","19":"Customer portal \u2014 book a new slot from the account area"}},"plugin_section":[],"plugin_tags":[269,249270,722,4776,58700],"plugin_category":[40,45],"plugin_contributors":[267200,272931],"plugin_business_model":[],"class_list":["post-327927","plugin","type-plugin","status-publish","hentry","plugin_tags-booking","plugin_tags-court-booking","plugin_tags-reservation","plugin_tags-sports","plugin_tags-sports-club","plugin_category-calendar-and-events","plugin_category-ecommerce","plugin_contributors-masum52","plugin_contributors-mohiuddinomran","plugin_committers-masum52"],"banners":{"banner":"https:\/\/ps.w.org\/playard\/assets\/banner-772x250.png?rev=3619067","banner_2x":"https:\/\/ps.w.org\/playard\/assets\/banner-1544x500.png?rev=3619065","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/playard\/assets\/icon-256x256.png?rev=3619065","icon_2x":"https:\/\/ps.w.org\/playard\/assets\/icon-256x256.png?rev=3619065","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-1.png?rev=3619065","caption":"Booking widget \u2014 5-step flow on the frontend"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-2.png?rev=3619065","caption":"Admin dashboard \u2014 today's stats and bookings"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-3.png?rev=3619065","caption":"Booking calendar \u2014 day\/week\/month view"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-4.png?rev=3619065","caption":"Walk-in booking slide-over panel"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-5.png?rev=3619065","caption":"Customer portal \u2014 My Bookings"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-6.png?rev=3619065","caption":"Settings \u2014 Payment Settings with Stripe"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-7.png?rev=3619065","caption":"Customers \u2014 full customer list with bookings and lifetime spend"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-8.png?rev=3619065","caption":"Customer profile \u2014 booking history, stats and status breakdown"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-9.png?rev=3619065","caption":"Fields \u2014 manage all courts, pitches and fields"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-10.png?rev=3619065","caption":"Edit field \u2014 name, description, sports, capacity and slot duration"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-11.png?rev=3619065","caption":"Facility Setup \u2014 branding, opening hours, timezone and date format"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-12.png?rev=3619065","caption":"Team \u2014 add staff members with scoped access"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-13.png?rev=3619065","caption":"Reports \u2014 booking trends chart with completed and cancelled breakdown"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-14.png?rev=3619065","caption":"Payment Settings \u2014 gateways, currency and cancellation rules"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-15.png?rev=3619065","caption":"Booking widget \u2014 Step 1: select a field"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-16.png?rev=3619065","caption":"Booking widget \u2014 Step 2: pick a date on the availability calendar"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-17.png?rev=3619065","caption":"Booking widget \u2014 Step 3: pick a time slot"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-18.png?rev=3619065","caption":"Booking widget \u2014 Step 4: enter details and confirm"},{"src":"https:\/\/ps.w.org\/playard\/assets\/screenshot-19.png?rev=3619065","caption":"Customer portal \u2014 book a new slot from the account area"}],"raw_content":"<!--section=description-->\n<p>Playard is a complete sports facility booking and reservation system for WordPress. Turn any WordPress site into a self-hosted booking platform for football pitches, badminton courts, cricket grounds, tennis courts, futsal turfs, basketball courts, and any bookable field or venue \u2014 with real-time slot availability, online Stripe payments, and instant confirmation.<\/p>\n\n<p>No SaaS fees. No monthly subscription. No platform lock-in. You own the plugin, the data, and the customer relationship.<\/p>\n\n<p>Facility owners install it once, add their fields, and customers pick a field, choose a slot and sport, enter their details, pay online or on arrival, and get instant confirmation \u2014 all without leaving your website. It's a modern, mobile-first alternative to spreadsheets, phone bookings, and expensive booking SaaS platforms.<\/p>\n\n<p>Whether you need sports venue booking for a single court or hourly slot booking across a busy multi-sport complex, Playard handles court and pitch hire from availability to payment in one place.<\/p>\n\n<p>\ud83d\udc49 <a href=\"https:\/\/wordpress.org\/support\/plugin\/playard\/\">Support &amp; questions<\/a>\n\ud83d\udc49 <a href=\"https:\/\/masumahmad.com\/playard\/\">Feature requests &amp; bug reports<\/a>\n\ud83d\udc49 <a href=\"https:\/\/masumahmad.com\/contact\/\">Contact the developer<\/a><\/p>\n\n<h4>Best for<\/h4>\n\n<p>Playard fits any time-slot based sports venue or facility rental business:<\/p>\n\n<ul>\n<li>Football \/ soccer turf and 5-a-side pitch booking<\/li>\n<li>Badminton court booking<\/li>\n<li>Cricket ground and net booking<\/li>\n<li>Tennis court reservation<\/li>\n<li>Futsal, basketball, and volleyball court booking<\/li>\n<li>Padel and squash court booking<\/li>\n<li>Swimming pool lane booking<\/li>\n<li>Community sports centres and indoor arenas<\/li>\n<li>Gym, fitness centre, and training ground hire<\/li>\n<li>Multi-sport complexes and indoor arenas<\/li>\n<li>Sports academy and coaching session booking<\/li>\n<li>Training ground and practice pitch hire<\/li>\n<li>Golf bay and driving range booking<\/li>\n<li>Table tennis, snooker and pool table booking<\/li>\n<li>School, college and university sports facilities<\/li>\n<li>Climbing walls and skating rinks<\/li>\n<li>Community sports centre slot booking<\/li>\n<li>Any hourly, slot-based venue or facility rental<\/li>\n<\/ul>\n\n<h4>Booking Widget<\/h4>\n\n<ul>\n<li>5-step booking flow: Field \u2192 Date \u2192 Slot+Sport \u2192 Customer Details \u2192 Confirmation<\/li>\n<li>Real-time slot availability \u2014 refreshes every 30 seconds<\/li>\n<li>Multi-slot selection \u2014 book 1h, 2h, 3h etc. by clicking consecutive slots<\/li>\n<li>Stripe card payment (embedded, 3DS support)<\/li>\n<li>Cash \/ pay on arrival option<\/li>\n<li>Add to Google Calendar, Apple Calendar, or iCal on confirmation<\/li>\n<li>Embed anywhere with <code>[playard]<\/code> shortcode or Gutenberg block<\/li>\n<li>Any button can open the booking modal with <code>data-playard-modal-trigger=\"1\"<\/code><\/li>\n<\/ul>\n\n<h4>Customer Portal<\/h4>\n\n<ul>\n<li>Phone OTP login \u2014 silent account creation on first booking<\/li>\n<li>Email + password login with forgot-password flow<\/li>\n<li>One-time code (OTP) login via email<\/li>\n<li>Profile management: name, email, phone, avatar photo<\/li>\n<li>Booking history with upcoming and past tabs<\/li>\n<li>Booking detail modal \u2014 view full details for any booking<\/li>\n<li>Download Receipt as PDF or Print directly from the booking detail modal<\/li>\n<li>Cancel bookings from the portal (configurable cancellation policy)<\/li>\n<li>\"\u25cf Live\" badge during active slots \u2014 cancel button hidden while playing<\/li>\n<li>Responsive design: desktop sidebar layout, mobile stacked layout<\/li>\n<\/ul>\n\n<h4>Admin Dashboard<\/h4>\n\n<ul>\n<li>Today's stats: bookings, revenue, pending count, new customers<\/li>\n<li>Bookings list with filters (field, status, payment, sport) and per-page selector<\/li>\n<li>Calendar view: Day \/ Week \/ Month<\/li>\n<li>Walk-in booking: slide-over panel with slot grid, customer search, payment options<\/li>\n<li>Booking status: pending \u2192 confirmed \u2192 running \u2192 completed; no-show; cancelled<\/li>\n<li>Auto-complete: WP-Cron marks past bookings completed every 5 minutes<\/li>\n<li>No-show marking after slot end time passes<\/li>\n<li>Reschedule: change date, time, or field<\/li>\n<li>Customer list with search, avatar, booking count, total spend<\/li>\n<li>Reports: Revenue, Booking Trends, Sport Breakdown, Occupancy Rate per Field<\/li>\n<li>Occupancy report: see how much of each field's available capacity is being used<\/li>\n<li>Export data: select any combination of Bookings, Customers, Revenue, Trends, Sport, Occupancy and download as individual CSVs or a single ZIP archive<\/li>\n<li>Email log: view all outgoing notification emails<\/li>\n<li>Onboarding wizard: 5-step first-run setup (facility \u2192 field \u2192 payment)<\/li>\n<\/ul>\n\n<h4>Fields &amp; Facilities<\/h4>\n\n<ul>\n<li>Unlimited fields \u2014 no artificial limit on free plan<\/li>\n<li>Unlimited sports per field<\/li>\n<li>Per-field slot duration, buffer time, min\/max advance booking<\/li>\n<li>Photo gallery per field<\/li>\n<li>Manual date\/time blocking<\/li>\n<li>Grid or list view toggle in admin<\/li>\n<\/ul>\n\n<h4>Payments<\/h4>\n\n<ul>\n<li>Stripe: embedded card form, test + live mode, webhook auto-confirmation<\/li>\n<li>Stripe walk-in payment link: admin creates booking \u2192 Stripe Checkout link emailed to customer<\/li>\n<li>Auto Stripe refund on admin cancel (based on cancellation policy) \u2014 free feature<\/li>\n<li>Cash \/ Pay on Arrival: instant booking, mark paid later<\/li>\n<\/ul>\n\n<h4>Email Notifications<\/h4>\n\n<ul>\n<li>Booking confirmation (customer)<\/li>\n<li>Payment receipt (customer)<\/li>\n<li>Day-before reminder (customer)<\/li>\n<li>Same-day reminder (customer)<\/li>\n<li>Cancellation notification (customer)<\/li>\n<li>New booking alert (owner)<\/li>\n<li>Owner cancellation alert (owner)<\/li>\n<li>Set password invitation (new customer)<\/li>\n<li>Welcome email (on registration)<\/li>\n<li>Walk-in Stripe payment link email<\/li>\n<\/ul>\n\n<h4>Gutenberg Blocks<\/h4>\n\n<ul>\n<li><strong>Playard Field List<\/strong> \u2014 card or list layout; color pickers; shadow, radius, spacing controls; modal or link button<\/li>\n<li><strong>Playard Booking Calendar<\/strong> \u2014 inline booking widget embed; field filter, compact mode<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to external services in specific, optional situations. No data is sent unless the relevant feature is configured and used.<\/p>\n\n<ol>\n<li><p><strong>Stripe<\/strong> \u2014 Used only when the facility owner enters their own Stripe API keys and a customer chooses to pay by card. Card details are sent directly to Stripe to create a payment intent, confirm payment, create a Checkout session, or issue a refund. The plugin never stores card numbers. Data is sent to Stripe only at the moment of payment or refund.<\/p>\n\n<ul>\n<li>Service: Stripe, Inc. \u2014 https:\/\/stripe.com<\/li>\n<li>Terms of Service: https:\/\/stripe.com\/legal<\/li>\n<li>Privacy Policy: https:\/\/stripe.com\/privacy<\/li>\n<\/ul><\/li>\n<li><p><strong>OpenStreetMap Nominatim<\/strong> \u2014 Used only when the facility owner saves their facility address, to convert that address into map coordinates (geocoding). Only the owner-entered address is sent. This happens at the moment the address is saved.<\/p>\n\n<ul>\n<li>Service: OpenStreetMap Foundation \u2014 https:\/\/nominatim.openstreetmap.org<\/li>\n<li>Usage Policy: https:\/\/operations.osmfoundation.org\/policies\/nominatim\/<\/li>\n<li>Privacy Policy: https:\/\/wiki.osmfoundation.org\/wiki\/Privacy_Policy<\/li>\n<\/ul><\/li>\n<li><p><strong>Google Maps (embed)<\/strong> \u2014 Used only by the optional \"Facility Map\" block, which embeds a public Google Maps iframe showing the owner-entered facility address. No API key is used and no personal data is sent beyond the public address shown on the map.<\/p>\n\n<ul>\n<li>Service: Google LLC \u2014 https:\/\/maps.google.com<\/li>\n<li>Terms of Service: https:\/\/policies.google.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<p>The plugin is fully functional without any external service. Cash \/ Pay-on-Arrival booking works with no third-party connection.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>playard<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate via <strong>Plugins \u2192 Installed Plugins<\/strong><\/li>\n<li>Complete the onboarding wizard (opens automatically on first activation)<\/li>\n<li>Add at least one field to enable the booking widget<\/li>\n<li>Add <code>[playard]<\/code> shortcode to any page, or use the <strong>Playard Booking Calendar<\/strong> block<\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.0 or higher<\/li>\n<li>PHP 8.0 or higher<\/li>\n<li>MySQL 5.7+ or MariaDB 10.4+<\/li>\n<li>An SMTP plugin is recommended for reliable email delivery<\/li>\n<\/ul>\n\n<h4>Stripe Setup<\/h4>\n\n<ol>\n<li>Go to <strong>Playard \u2192 Settings \u2192 Payment Settings \u2192 Stripe \u2192 Manage<\/strong><\/li>\n<li>Select <strong>Test<\/strong> or <strong>Live<\/strong> mode<\/li>\n<li>Enter your Publishable Key and Secret Key<\/li>\n<li>Copy the Webhook URL shown and add it in your Stripe Dashboard (Developers \u2192 Webhooks)<\/li>\n<li>Enable these webhook events: <code>payment_intent.succeeded<\/code>, <code>payment_intent.payment_failed<\/code>, <code>charge.refunded<\/code><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20there%20a%20limit%20on%20how%20many%20fields%20i%20can%20add%3F\"><h3>Is there a limit on how many fields I can add?<\/h3><\/dt>\n<dd><p>No. The free version supports unlimited fields and unlimited sports per field.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20stripe%3F\"><h3>Does it work without Stripe?<\/h3><\/dt>\n<dd><p>Yes. You can use Cash \/ Pay on Arrival as the only payment method. Stripe is optional.<\/p><\/dd>\n<dt id=\"can%20customers%20cancel%20their%20own%20bookings%3F\"><h3>Can customers cancel their own bookings?<\/h3><\/dt>\n<dd><p>Yes. Cancellations can be enabled or disabled from Settings \u2192 Cancellation. You can also configure a refund policy (full refund, partial, time-based, or none).<\/p><\/dd>\n<dt id=\"are%20stripe%20refunds%20automatic%3F\"><h3>Are Stripe refunds automatic?<\/h3><\/dt>\n<dd><p>Yes. When an admin cancels a Stripe-paid booking, the refund is issued automatically based on the cancellation policy you configured. No manual Stripe action needed. This is a free feature.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20the%20booking%20form%20on%20any%20page%3F\"><h3>Can I embed the booking form on any page?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>[playard]<\/code> shortcode, or add the <strong>Playard Booking Calendar<\/strong> Gutenberg block to any page or post.<\/p><\/dd>\n<dt id=\"can%20i%20create%20bookings%20on%20behalf%20of%20walk-in%20customers%3F\"><h3>Can I create bookings on behalf of walk-in customers?<\/h3><\/dt>\n<dd><p>Yes. Click <strong>+ New Walk-in Booking<\/strong> on the Bookings page. You can search for existing customers or create a new one, select slots from a visual grid, and choose Cash, Already Paid, or Stripe payment link.<\/p><\/dd>\n<dt id=\"does%20playard%20work%20with%20my%20wordpress%20theme%3F\"><h3>Does Playard work with my WordPress theme?<\/h3><\/dt>\n<dd><p>Yes. The booking widget uses full CSS isolation and a system font stack \u2014 it will not inherit or break your theme styles.<\/p><\/dd>\n<dt id=\"what%20is%20the%20playard_staff%20role%3F\"><h3>What is the playard_staff role?<\/h3><\/dt>\n<dd><p>A restricted admin role that can access Bookings, Dashboard, and Customers \u2014 but not Settings or Facility. Staff users are redirected directly to the Playard dashboard on login.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20for%20football%20turf%20booking%3F\"><h3>Can I use it for football turf booking?<\/h3><\/dt>\n<dd><p>Yes. Football and 5-a-side turf booking is a core use case. Add a field for your turf, set its sport to football, choose a slot duration, and customers book by the hour with real-time availability and online or on-arrival payment.<\/p><\/dd>\n<dt id=\"does%20it%20handle%20cricket%20ground%20and%20net%20booking%3F\"><h3>Does it handle cricket ground and net booking?<\/h3><\/dt>\n<dd><p>Yes. Add a field for your cricket ground or practice net and assign the cricket sport. Each field has its own pricing, slot length, photos, and availability grid, so grounds and nets can be booked separately.<\/p><\/dd>\n<dt id=\"can%20i%20take%20badminton%20or%20squash%20court%20bookings%3F\"><h3>Can I take badminton or squash court bookings?<\/h3><\/dt>\n<dd><p>Yes. Create one field per court and set the sport to badminton or squash. Each court gets its own real-time availability, and customers pick a court, date, and slot in a few taps.<\/p><\/dd>\n<dt id=\"does%20it%20work%20for%20padel%20and%20pickleball%20courts%3F\"><h3>Does it work for padel and pickleball courts?<\/h3><\/dt>\n<dd><p>Yes. Any court-based sport works. Add the sport to the field and take slot-based bookings \u2014 there is no restriction on which sports you can offer.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20for%20a%20multi-sport%20complex%3F\"><h3>Can I use this for a multi-sport complex?<\/h3><\/dt>\n<dd><p>Yes. Add unlimited fields, each with its own sport, pricing, and slot rules. Customers choose the field first, so one site can run football, cricket, tennis, badminton, and more side by side.<\/p><\/dd>\n<dt id=\"can%20i%20run%20more%20than%20one%20sports%20facility%20from%20one%20site%3F\"><h3>Can I run more than one sports facility from one site?<\/h3><\/dt>\n<dd><p>The plugin uses a single facility profile (name, opening hours, timezone) with unlimited fields under it. If your locations share branding and hours, add them all as fields. Running fully separate facilities with different settings from one site is not supported in the free version.<\/p><\/dd>\n<dt id=\"does%20it%20work%20for%20a%20sports%20academy%20taking%20coaching%20sessions%3F\"><h3>Does it work for a sports academy taking coaching sessions?<\/h3><\/dt>\n<dd><p>Yes, as time-slot bookings. Add a field for the coaching space or pitch, set the sport, and customers book and pay for the slot. Note that Playard books and charges for slots \u2014 it does not manage coach rosters or recurring lesson plans.<\/p><\/dd>\n<dt id=\"can%20i%20book%20golf%20bays%20or%20driving%20range%20slots%3F\"><h3>Can I book golf bays or driving range slots?<\/h3><\/dt>\n<dd><p>Yes. Add each bay as its own field and take hourly or custom-length slot bookings. Set the field's sport to golf and customers reserve a bay just like any other slot.<\/p><\/dd>\n<dt id=\"can%20staff%20take%20bookings%20at%20the%20counter%3F\"><h3>Can staff take bookings at the counter?<\/h3><\/dt>\n<dd><p>Yes. Assign the playard_staff role to counter staff \u2014 they can access Bookings, Dashboard, and Customers, but not Settings or Facility. Use the walk-in booking panel to create a booking, search for or add the customer, pick slots from a visual grid, and take cash, mark as already paid, or send a Stripe payment link.<\/p><\/dd>\n<dt id=\"does%20it%20work%20if%20my%20customers%20do%20not%20have%20email%20addresses%3F\"><h3>Does it work if my customers do not have email addresses?<\/h3><\/dt>\n<dd><p>Yes. Customers can log in and book using phone OTP, so an email address is optional. Email is only needed if you want to send email receipts and reminders, or offer email + password login.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Notification UI\/UX improvement \u2014 third-party plugin notices no longer appear on Playard admin screens.<\/li>\n<li>Added feature request, bug report, and developer contact links.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Housekeeping: readme and plugin listing refinements.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Updated plugin title and listing metadata.<\/li>\n<li>Added plugin icon, banner and screenshots.<\/li>\n<li>Minor admin UI and onboarding refinements.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>5-step booking widget (Field, Date, Slot+Sport, Details, Confirmation)<\/li>\n<li>Stripe payment with embedded Elements and webhook auto-confirmation<\/li>\n<li>Cash \/ Pay on Arrival option<\/li>\n<li>Auto Stripe refund on admin cancel (free)<\/li>\n<li>Walk-in booking with Stripe payment link<\/li>\n<li>Customer portal with phone OTP, email+password, forgot-password<\/li>\n<li>Customer profile stats, booking detail modal, download receipt PDF, print receipt<\/li>\n<li>OTP countdown timer with resend<\/li>\n<li>Admin dashboard, calendar (day\/week\/month), bookings list<\/li>\n<li>Walk-in booking slide-over panel (slot grid, customer search)<\/li>\n<li>Auto-complete cron (past bookings marked completed every 5 min)<\/li>\n<li>No-show marking<\/li>\n<li>Customer management with notes<\/li>\n<li>Revenue, Booking Trends, Sport Breakdown, and Occupancy Rate reports<\/li>\n<li>Export data: select Bookings, Customers, or any report \u2014 single CSV or ZIP archive<\/li>\n<li>Email log (searchable, filterable)<\/li>\n<li>Report settings (timezone, default range, week start)<\/li>\n<li>Settings: Cancellation, Payments (Stripe\/Cash), Currency, Auth, Reports<\/li>\n<li>Facility setup: name, logo, timezone, date\/time format<\/li>\n<li>Staff role (playard_staff)<\/li>\n<li>Gutenberg blocks: Field List, Booking Calendar<\/li>\n<li>Full REST API<\/li>\n<li>Onboarding wizard (5 steps)<\/li>\n<\/ul>","raw_excerpt":"Sports facility booking &amp; reservation plugin for WordPress. Book courts, pitches and fields online with Stripe payments \u2014 no SaaS, you own it.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/327927","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=327927"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/masum52"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=327927"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=327927"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=327927"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=327927"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=327927"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=327927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}