=== 3pm11am Rental Property Booking Launcher ===
Contributors: rcyarrlow
Tags: rental booking, property booking, appointment booking, booking popup, saas booking
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 1.1.12
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Adds a configurable booking launcher for rental property booking pages hosted on 3pm11am.com.

== Description ==
3pm11am Rental Property Booking Launcher adds a floating button to your WordPress site that opens a rental property booking page hosted on your connected booking platform. Configure the launcher, connect your account, and choose whether the booking page opens in a modal iframe or a new tab.

This plugin is not a standalone booking application. It connects your WordPress site to the remote 3pm11am booking platform, where booking logic, availability, pricing, and reservation processing are handled.

To use this plugin, you must have a 3pm11am account and an active subscription. The 3pm11am service is paid, and a 14-day free trial is available for evaluation.

Learn more:
- Website: https://3pm11am.com
- Pricing: https://3pm11am.com/pricing

== External Services ==
This plugin connects to the 3pm11am.com booking service to enable account connection and booking launch flows.

Service requirements and costs:
- A 3pm11am account is required.
- The booking service requires a paid subscription after the trial period.
- A 14-day free trial is available.
- Pricing details: https://3pm11am.com/pricing

When connecting your account:
- The plugin redirects the admin user to the 3pm11am.com OAuth authorization page.
- After authorization, the plugin sends the authorization code, client ID, client secret, and redirect URI to the 3pm11am.com token endpoint to exchange for access tokens.

When connected:
- The plugin calls the 3pm11am.com properties endpoint using the access token to fetch available properties.
- On the public site, the launcher opens the 3pm11am.com-hosted booking page in a modal iframe or a new tab, depending on the plugin setting.
- In the WordPress admin "Launch preview" panel, the plugin requests a page snapshot from WordPress.com mShots (`https://s.wordpress.com/mshots/v1/`) using your homepage URL or verified specific page URL so the saved launcher background can be previewed.
- If "Mobile QR code" is enabled, the plugin loads a QR image from QR-Server (`https://api.qrserver.com/v1/create-qr-code/`) with the booking URL encoded in the `data` query parameter so visitors can scan and open booking on mobile.

Service provider:
- 3pm11am.com
- Terms of Service: https://3pm11am.com/legal/terms
- Privacy Policy: https://3pm11am.com/legal/privacy
- Optional preview snapshot provider in wp-admin: WordPress.com mShots
- WordPress.com / Automattic Privacy Policy: https://automattic.com/privacy/
- Optional QR provider when QR setting is enabled: QR-Server (goQR.me)
- QR-Server API docs: https://goqr.me/api/

== Installation ==
1. Upload the `3pm11am-rental-property-booking-launcher` folder to `/wp-content/plugins/`.
2. Activate the plugin in the WordPress admin.
3. Go to 3pm11am Rental Property Booking Launcher and enter your booking platform URL and OAuth credentials.
4. Connect your account and configure the launcher display settings.

== Frequently Asked Questions ==
= Does this plugin process bookings locally? =
No. All booking logic runs on the external booking platform.

= What if embedding is blocked by security headers? =
Choose "New tab" mode or use the fallback link in the modal.

= Where can I get support? =
Support is provided via the plugin support forum on WordPress.org.

== Changelog ==
= 1.1.12 =
* Reduced the admin Launch preview frame by 10% and centered it within the settings card to prevent overflow.
* Kept the preview at a fixed 16:9 desktop aspect ratio.

= 1.1.11 =
* Changed the admin Launch preview frame to a fixed 16:9 desktop aspect ratio.
* Updated preview snapshot sizing so the saved page screenshot fills the preview area cleanly.
* Reduced the preview frame size and centered it within the settings card to prevent overflow.

= 1.1.10 =
* Improved the admin Launch preview panel to load a live snapshot of the saved homepage or verified specific page after settings are saved.
* Added cache-busting preview refresh after saving settings so the background updates immediately.
* Added WordPress.com mShots disclosure for the admin preview snapshot service.

= 1.1.9 =
* Added a new "Specific page URL" display scope for showing the booking launcher on one verified page only.
* Added URL testing in plugin settings so only reachable page URLs on the same site can be saved.
* Refreshed the packaged release ZIP and related setup documentation.

= 1.1.7 =
* Added optional "Mobile QR code" toggle in plugin settings.
* Added QR panel below the launcher button when enabled.
* Updated launcher behavior so phone/tablet users always open booking in a new tab instead of iframe.

= 1.1.6 =
* Updated plugin compatibility metadata for WordPress 7.0.
* Bumped stable tag and plugin version to 1.1.6.

= 1.1.5 =
* Aligned plugin branding and internal prefixes with the approved WordPress.org slug.
* Added backward-compatible option migration for previously saved plugin settings.
* Updated launcher message handling to support legacy and current event names.
* Added uninstall cleanup for the new option key.

= 1.1.2 =
* Simplified plugin menu labeling in wp-admin.
* Locked booking platform base URL to the official 3pm11am endpoint.
* Updated default base URL to https://3pm11am.com.

= 1.1.1 =
* Updated widget URLs to use the dedicated `/widget/wordpress` endpoint.

= 1.1.0 =
* Added HTTPS callback validation for OAuth when using non-local booking hosts.
* Improved OAuth failure messaging for insecure callback configuration.

= 1.0.0 =
* First stable tagged release for WordPress.org.

= 0.1.1 =
* Updated release metadata for WordPress.org submission.
* Added external service disclosures and links.
* Improved output escaping in admin preview and launcher icon rendering.

= 0.1.0 =
* Initial MVP release with floating launcher, OAuth connect, and basic settings.
