Skip to content

Comments

POS Bookings: Fix cash button offset and loading state for free orders#16719

Merged
joshheald merged 2 commits intotrunkfrom
joshheald/WOOMOB-2262-pos-booking-pay-fixes
Feb 24, 2026
Merged

POS Bookings: Fix cash button offset and loading state for free orders#16719
joshheald merged 2 commits intotrunkfrom
joshheald/WOOMOB-2262-pos-booking-pay-fixes

Conversation

@joshheald
Copy link
Contributor

@joshheald joshheald commented Feb 24, 2026

Closes: WOOMOB-2262

Description

Two fixes for POS bookings payments:

  1. Fix cash payment button offset — The bookings fullscreen cover inherits floatingControlAreaSize from the dashboard, causing the collect cash view to add bottom padding for floating controls that aren't visible in bookings. This overrides the environment value to .zero in the bookings cover.

  2. Skip "Loading order" for free bookings — When a booking has a zero total, the card payment state stays .idle and the reader stays .connected, causing the "Loading order" spinner to show indefinitely. This skips the loading view when isZeroTotal is true.

Test Steps

Cash button offset:

  1. Open POS with bookings enabled
  2. Open a booking and tap "Collect payment"
  3. With a card reader connected, tap "Cash payment"
  4. Dismiss the keyboard
  5. Verify the "Mark payment as complete" button is not offset from the bottom, as if floating controls were present.

Check the main payment flow as well – there, the button should still be offset from the buttons.

Free order loading:

  1. Open POS with bookings enabled and a card reader connected
  2. Open a free booking (total = $0.00) and tap "Collect payment"
  3. Verify the "Loading order" spinner is only shown for a short time, and then hidden.

You can only create a free, but "unpaid" booking in wp-admin – from the frontend, they're marked as paid by the checkout. It requires a free booking product. So... this is quite an edge case!

Note that the keyboard button on iOS 18 sometimes puts a small safearea when it's hidden, and sometimes doesn't. We respect that when the safearea's available.

Screenshots

payment-fixes.mp4

  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

The bookings fullscreen cover inherits the floatingControlAreaSize
environment value from the dashboard, causing the cash payment view
to add bottom padding for floating controls that aren't visible.
Override the value to .zero in the bookings cover.
When a booking has a zero total, the card payment state stays idle
and the reader stays connected, causing the "Loading order" spinner
to show indefinitely. Pass isZeroTotal to skip the loading view
for free orders.
@joshheald joshheald added this to the 24.2 milestone Feb 24, 2026
@wpmobilebot
Copy link
Collaborator

App Icon📲 You can test the changes from this Pull Request in WooCommerce iOS Prototype by scanning the QR code below to install the corresponding build.

App NameWooCommerce iOS Prototype
Build Numberpr16719-eaa0ffe
Version24.1
Bundle IDcom.automattic.alpha.woocommerce
Commiteaa0ffe
Installation URL5nv32k90tvfs8
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@joshheald joshheald marked this pull request as ready for review February 24, 2026 11:30
@wpmobilebot
Copy link
Collaborator

🤖 Build Failure Analysis

This build has failures. Claude has analyzed them - check the build annotations for details.

@iamgabrielma iamgabrielma self-assigned this Feb 24, 2026
Copy link
Contributor

@iamgabrielma iamgabrielma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verify the "Mark payment as complete" button is not offset from the bottom, as if floating controls were present.

Nice catch!

@joshheald joshheald merged commit 9cfefc8 into trunk Feb 24, 2026
41 checks passed
@joshheald joshheald deleted the joshheald/WOOMOB-2262-pos-booking-pay-fixes branch February 24, 2026 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants