{"id":315896,"date":"2026-09-24T12:53:48","date_gmt":"2026-09-24T12:53:48","guid":{"rendered":"https:\/\/en-ca.wordpress.org\/plugins\/appointments-booking-for-square\/"},"modified":"2026-09-24T13:19:55","modified_gmt":"2026-09-24T13:19:55","slug":"appointments-booking-for-square","status":"publish","type":"plugin","link":"https:\/\/pe.wordpress.org\/plugins\/appointments-booking-for-square\/","author":11154855,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.5","stable_tag":"1.0.5","tested":"7.1.2","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"Appointments Booking for Square","header_author":"square-appointment-wp.com","header_description":"Embed your Square Appointments booking flow on your WordPress pages with a shortcode. Services, team members and availability load live from Square, and every booking is created in your Square account.","assets_banners_color":"fbf8f2","last_updated":"2026-09-24 13:19:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/square-appointment-wp.com\/documentations\/","header_author_uri":"https:\/\/square-appointment-wp.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":53,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"vinvin27","date":"2026-09-24 12:53:28","revision":3711310},"1.0.5":{"tag":"1.0.5","author":"vinvin27","date":"2026-09-24 13:19:55","revision":3711367}},"upgrade_notice":{"1.0.5":"<p>The plugin is now available in French, German, Spanish and Italian.<\/p>","1.0.4":"<p>Service descriptions and other widget texts no longer take the theme&#039;s font size.<\/p>","1.0.3":"<p>Changes from the WordPress.org plugin review. The shortcode is now [absq_booking].<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3711310,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3711310,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3711310,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3711310,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.4","1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3711310,"resolution":"1","location":"assets","locale":"","width":1816,"height":1360},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3711310,"resolution":"2","location":"assets","locale":"","width":1860,"height":954},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3711310,"resolution":"3","location":"assets","locale":"","width":1856,"height":2716},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3711310,"resolution":"4","location":"assets","locale":"","width":1856,"height":836}},"screenshots":{"1":"The booking widget with the Card theme.","2":"The Square Classic theme.","3":"Settings: Square connection and widget content.","4":"The shortcode builder."}},"plugin_section":[],"plugin_tags":[8132,269,416,268,2672],"plugin_category":[40],"plugin_contributors":[125441,282510],"plugin_business_model":[],"class_list":["post-315896","plugin","type-plugin","status-publish","hentry","plugin_tags-appointments","plugin_tags-booking","plugin_tags-calendar","plugin_tags-scheduling","plugin_tags-square","plugin_category-calendar-and-events","plugin_contributors-vinvin27","plugin_contributors-wpsquare","plugin_committers-vinvin27"],"banners":{"banner":"https:\/\/ps.w.org\/appointments-booking-for-square\/assets\/banner-772x250.png?rev=3711310","banner_2x":"https:\/\/ps.w.org\/appointments-booking-for-square\/assets\/banner-1544x500.png?rev=3711310","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/appointments-booking-for-square\/assets\/icon-128x128.png?rev=3711310","icon_2x":"https:\/\/ps.w.org\/appointments-booking-for-square\/assets\/icon-256x256.png?rev=3711310","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/appointments-booking-for-square\/assets\/screenshot-1.png?rev=3711310","caption":"The booking widget with the Card theme."},{"src":"https:\/\/ps.w.org\/appointments-booking-for-square\/assets\/screenshot-2.png?rev=3711310","caption":"The Square Classic theme."},{"src":"https:\/\/ps.w.org\/appointments-booking-for-square\/assets\/screenshot-3.png?rev=3711310","caption":"Settings: Square connection and widget content."},{"src":"https:\/\/ps.w.org\/appointments-booking-for-square\/assets\/screenshot-4.png?rev=3711310","caption":"The shortcode builder."}],"raw_content":"<!--section=description-->\n<p><strong>Appointments Booking for Square<\/strong> puts your Square Appointments booking flow on your own WordPress pages with one shortcode. Clients book without leaving your website, and every appointment is created in your Square account, exactly like a booking made on Square's own booking page.<\/p>\n\n<p>Nothing to re-enter: services, prices, durations, team members, opening hours and intake questions are read live from Square. You keep managing everything in your Square Dashboard.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Four-step booking flow<\/strong>: service \u2192 option \u2192 date and time \u2192 contact details.<\/li>\n<li><strong>Live Square data<\/strong>: services, variations, team members and availability for the location you choose.<\/li>\n<li><strong>Square intake questions<\/strong>: the customer questions you set up in Square Appointments are asked at checkout.<\/li>\n<li><strong>Every Square Appointments plan<\/strong>: connect with a personal access token (Plus and Premium) or with OAuth and your own Square application (required for the free plan).<\/li>\n<li><strong>Two themes<\/strong>: Card and Square Classic, with your accent color and your theme's fonts.<\/li>\n<li><strong>Shortcode builder<\/strong>: pick a service or a team member by name and copy the shortcode.<\/li>\n<li><strong>Several widgets per page<\/strong>, each with its own preselection.<\/li>\n<li><strong>Terms and cancellation policy<\/strong>: optional terms checkbox with a pop-up, and your Square cancellation policy at checkout.<\/li>\n<li><strong>Built-in protection<\/strong>: security token, anti-spam field and per-visitor limits on the booking form.<\/li>\n<li><strong>Sandbox mode<\/strong> to test with Square's sandbox before going live.<\/li>\n<li><strong>Five languages<\/strong>: English, French, German, Spanish and Italian, for the booking widget and the settings. The widget follows the site language.<\/li>\n<li><strong>Clean uninstall<\/strong>: every option and cached value is removed.<\/li>\n<\/ul>\n\n<h4>Shortcode<\/h4>\n\n<pre><code>[absq_booking]\n<\/code><\/pre>\n\n<p>Optional attributes:<\/p>\n\n<ul>\n<li><code>service_id<\/code> \u2014 open a specific service (Square catalog item ID).<\/li>\n<li><code>staff_id<\/code> \u2014 book with a specific team member.<\/li>\n<li><code>theme<\/code> \u2014 <code>card<\/code> or <code>square-classic<\/code> for this page only.<\/li>\n<\/ul>\n\n<p>Example: <code>[absq_booking service_id=\"SERVICE_ID\" staff_id=\"TEAM_MEMBER_ID\" theme=\"square-classic\"]<\/code><\/p>\n\n<p>The shortcode builder in <strong>Settings \u2192 Square Booking<\/strong> fills in the IDs for you.<\/p>\n\n<h4>Pro and Tracking editions<\/h4>\n\n<p>The paid editions, available on <a href=\"https:\/\/square-appointment-wp.com\/\">square-appointment-wp.com<\/a>, add Square payments (card on file or pay in full), more themes with fonts and colors, custom step labels, custom intake questions and multisite. The Tracking edition also sends every booking to Google Ads and Meta as a conversion.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to Square, a third-party service, to show your services and availability and to create bookings. It does not work without a Square account.<\/p>\n\n<p><strong>Square API<\/strong> \u2014 <code>connect.squareup.com<\/code> (production) or <code>connect.squareupsandbox.com<\/code> (sandbox mode)<\/p>\n\n<ul>\n<li>When: when a visitor opens a page with the booking widget, when they pick a service or a date, and when they confirm a booking; also when an administrator tests the connection or uses the shortcode builder.<\/li>\n<li>What is sent: your access token, location ID and the requested service, team member and dates. When a visitor books: their first and last name, email, phone number, appointment note, intake answers and the selected time.<\/li>\n<li>Square terms of service: https:\/\/squareup.com\/legal\/general\/ua<\/li>\n<li>Square privacy notice: https:\/\/squareup.com\/legal\/general\/privacy<\/li>\n<\/ul>\n\n<p><strong>Square OAuth<\/strong> \u2014 <code>connect.squareup.com\/oauth2<\/code> or <code>connect.squareupsandbox.com\/oauth2<\/code><\/p>\n\n<ul>\n<li>When: only if you choose the OAuth connection. The administrator is sent to Square to authorize the application; tokens are then exchanged and refreshed once a day.<\/li>\n<li>What is sent: your Square application ID and secret, the authorization code and the refresh token.<\/li>\n<\/ul>\n\n<p><strong>Your terms page<\/strong> \u2014 the URL you enter in <strong>Terms page URL<\/strong><\/p>\n\n<ul>\n<li>When: when a visitor opens the terms pop-up (cached for 12 hours). A page on your own site is read directly without any request.<\/li>\n<li>What is sent: a standard HTTP request to that URL.<\/li>\n<\/ul>\n\n<p>The plugin does not send data to square-appointment-wp.com or any other service.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin from <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Go to <strong>Settings \u2192 Square Booking<\/strong>.<\/li>\n<li>Connect Square: paste a personal access token, or choose OAuth and connect your own Square application.<\/li>\n<li>Enter your Square <strong>Location ID<\/strong> and save.<\/li>\n<li>Add <code>[absq_booking]<\/code> to any page.<\/li>\n<\/ol>\n\n<p>Step-by-step guides: <a href=\"https:\/\/square-appointment-wp.com\/documentations\/\">documentation<\/a>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20square%20plan%20do%20i%20need%3F\"><h3>Which Square plan do I need?<\/h3><\/dt>\n<dd><p>Any Square Appointments plan, including the free plan. Plus and Premium can use a personal access token. The free plan requires the OAuth connection with your own Square application, which takes about five minutes to create in the Square Developer Dashboard.<\/p><\/dd>\n<dt id=\"is%20this%20an%20official%20square%20product%3F\"><h3>Is this an official Square product?<\/h3><\/dt>\n<dd><p>No. It is an independent plugin that uses Square's public APIs. Square is a trademark of Block, Inc.<\/p><\/dd>\n<dt id=\"where%20do%20i%20find%20my%20location%20id%3F\"><h3>Where do I find my Location ID?<\/h3><\/dt>\n<dd><p>In the Square Developer Dashboard, open your application and go to <strong>Locations<\/strong>. Copy the ID of the business location that takes appointments.<\/p><\/dd>\n<dt id=\"do%20bookings%20appear%20in%20square%3F\"><h3>Do bookings appear in Square?<\/h3><\/dt>\n<dd><p>Yes. Each booking is created in your Square account with the client's details and intake answers, and appears in your Square Dashboard and calendar.<\/p><\/dd>\n<dt id=\"can%20i%20test%20without%20real%20bookings%3F\"><h3>Can I test without real bookings?<\/h3><\/dt>\n<dd><p>Yes. Enable <strong>Sandbox mode<\/strong> and connect a Square sandbox application. No real appointments are created.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%20or%20page%20builder%3F\"><h3>Does it work with my theme or page builder?<\/h3><\/dt>\n<dd><p>The shortcode works in the block editor, classic editor, widgets and page builders. The widget protects its own styles from theme CSS and uses your theme's fonts.<\/p><\/dd>\n<dt id=\"how%20do%20i%20report%20an%20issue%3F\"><h3>How do I report an issue?<\/h3><\/dt>\n<dd><p>Use the support forum on WordPress.org. Turning on the debug log in <strong>Settings \u2192 Square Booking \u2192 Tools<\/strong> helps us see what Square answered.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>French, German, Spanish and Italian translations of the widget and the settings.<\/li>\n<li>Prices and calendar dates follow the site language.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Service descriptions, team member names, price notes and the confirmation text keep the widget's size instead of the theme's body text size.<\/li>\n<li>The selected day in the calendar stays readable when the pointer is over it.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Changes requested during the plugin review.<\/li>\n<li>The shortcode is now <code>[absq_booking]<\/code>.<\/li>\n<li>The public booking REST route declares its permission callback explicitly.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Unique <code>absq<\/code> prefix for every class, function, option, transient, constant, REST route and AJAX action; text domain matches the slug.<\/li>\n<li>All output escaped, all input sanitized and validated; nonces and capability checks on every form, AJAX and admin action.<\/li>\n<li>No remote assets: the widget uses the site theme fonts; no inline scripts or styles printed.<\/li>\n<li>No license check or external updater; updates come from WordPress.org only.<\/li>\n<li>The debug log is stored in the database (last 200 lines, personal data removed) instead of a file.<\/li>\n<li>External services documented in this readme.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>First submission.<\/li>\n<\/ul>","raw_excerpt":"Embed your Square Appointments booking flow on your WordPress pages. Services, team and availability load live from Square.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/315896","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=315896"}],"author":[{"embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vinvin27"}],"wp:attachment":[{"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=315896"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=315896"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=315896"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=315896"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=315896"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=315896"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}