Contents

Section 1

How Phone Guard works

Apple Pay and Google Pay are fast, but they often don’t give WooCommerce a phone number. Google Pay usually shares none, and Apple Pay only shares one if the customer’s wallet has it and the gateway asks for it. Phone Guard closes that gap in three layers:

Layer When What happens
1. Checkout guard Before payment The Apple Pay / Google Pay buttons are locked behind a bar. The customer adds a phone number, the buttons unlock, and they pay as normal.
2. Server-side enforcement While the order is created If an express payment arrives with no phone number (for example because a script was blocked), the order is stopped with a clear message.
3. Recovery After payment If an order still has no phone, the customer is asked on the order confirmation page and in the order email. You can also request a number from the orders list.

📷 SCREENSHOT-01 Checkout with express buttons locked. — replace with screenshot

Section 2

Requirements

  • WordPress 6.4 or newer
  • WooCommerce 8.9 or newer
  • PHP 7.4 or newer
  • One of these payment plugins, with Apple Pay and/or Google Pay (express checkout) enabled:
  • WooCommerce Stripe Gateway (the official plugin by WooCommerce)
  • WooPayments
  • Classic (shortcode) checkout or the WooCommerce Checkout block. Phone Guard detects which one you use.

Phone Guard works with High-Performance Order Storage (HPOS) and with the older post-based order storage.

Section 3

Installation, trial and licence

Install

  1. Download the plugin zip from your account.
  2. In WordPress go to Plugins → Add New → Upload Plugin, choose the zip, then click Install Now and Activate.
  3. A new Typhoon menu appears in the admin sidebar. Phone Guard lives under Typhoon → Phone Guard.

Start the free trial or activate a licence

When you first activate the plugin you’re asked to start the 10-day free trial (no credit card needed) or enter a licence key. Until one of these is done, Phone Guard doesn’t guard your checkout, and a notice in the dashboard reminds you.

  • During the trial, the Overview page shows how many days are left. Three days before the end, a reminder appears in the dashboard.
  • To buy or renew, use the Manage licence button on the Overview page.

If a licence expires

Phone Guard is built to fail open: when a licence expires, the guard, enforcement and recovery simply switch off. Your checkout keeps working exactly like standard WooCommerce, so you never lose a sale because of licensing. Your settings and order data are kept, and everything resumes when you renew.

If your site briefly can’t reach the licence server, Phone Guard keeps working for up to 7 days while it retries.

WooCommerce.com Marketplace version

If you bought Phone Guard on WooCommerce.com, WooCommerce handles your subscription and updates through WooCommerce → Extensions → My Subscriptions. There’s no separate licence key.

Section 4

Quick start (5 minutes)

  1. Check the diagnostics. Go to Typhoon → Phone Guard → Overview. Under Diagnostics, confirm your checkout type and payment gateway are detected.
  2. Exempt pickup if you offer it. Go to General → Exempt shipping methods and add Local pickup if customers collecting in person don’t need to give a phone.
  3. Match your brand. On Appearance, set the bar and button colours.
  4. Check the wording. On Text, adjust any messages you’d like to change. The defaults work for most shops.
  5. Place a test order. Using Apple Pay or Google Pay (Stripe test mode is fine), check that:
  6. the buttons are locked until you add a number;
  7. the order shows the number as Shipping phone (and Billing phone, if the wallet didn’t supply one);
  8. a private order note says the number was collected by Phone Guard.

Important: if your payment plugin also shows Apple Pay / Google Pay buttons on product or cart pages, read Express buttons on product and cart pages before going live.

Section 5

What your customers see at checkout

The locked bar

When the checkout loads, Phone Guard finds the Apple Pay / Google Pay buttons and covers them with a bar that reads “Add your phone number to pay with express checkout”. A hint above it explains why: “Please provide your phone number for delivery arrangements.” Both texts can be changed in Settings → Text.

The bar is neutral on purpose: it doesn’t reproduce Apple or Google logos, which keeps you in line with their brand rules. The real buttons show faintly through it; Bar opacity controls how much.

While locked, the real buttons can’t be clicked or reached with the keyboard.

📷 SCREENSHOT-01 — replace with screenshot

Adding the number

Clicking (or tapping, or pressing Enter/Space on) the bar opens a phone field:

  • Wide screens: the field opens inside the bar, next to the label.
  • Phones and narrow columns: a drawer slides open below the bar.

The layout follows the space available and changes live if the screen is resized or rotated. The switch point is set by Mobile layout below.

The field has a country picker (flag and dialling code). It’s preselected from the customer’s checkout country, or from your store country, depending on Default country. Customers can type the number the way they usually write it (for example 07700 900123), and it’s saved in the international format (+447700900123).

📷 SCREENSHOT-02 Desktop · [SCREENSHOT-04] Mobile — replace with screenshot

Confirming

The customer presses the arrow button or Enter:

  • Invalid number: an error appears under the field (“Please enter a valid phone number.”) and nothing is saved.
  • Valid number: it’s saved to the customer’s session, the bar disappears and the payment buttons unlock. The hint changes to “Delivery phone saved: +44 7700 900123 · Change”.

If the checkout’s own billing phone field is empty, Phone Guard fills it in too.

📷 SCREENSHOT-03 — replace with screenshot

Changing or cancelling

  • Change re-opens the field and locks the buttons again until the new number is saved.
  • Escape, or clicking the bar label, closes the field. If a number was already saved, it’s kept.

Shortcuts that unlock automatically

  • Refreshing the page: if the customer already saved a number in this visit, the buttons stay unlocked.
  • Typing in the checkout form: if the customer types a valid phone number into the normal billing phone field, the express buttons unlock automatically as they leave the field.

When the guard doesn’t appear

  • The customer’s device doesn’t offer Apple Pay or Google Pay, so there are no express buttons to guard.
  • The chosen shipping method is exempt, such as local pickup.
  • The cart only has virtual or downloadable products, which don’t need a phone.
  • Phone Guard is switched off, or the licence isn’t active.

Accessibility

  • The bar is a real button with the right screen-reader labels, and it works with Enter and Space.
  • Errors and the saved confirmation are announced to screen readers.
  • The real payment buttons are removed from the keyboard tab order while locked.
  • Animations are turned off for visitors who have “reduce motion” enabled.

Section 6

Server-side enforcement

The on-page guard handles almost every order, but pages can fail: a blocked script, an optimisation plugin, a theme conflict or an old cached page. Enforcement is the safety net.

When an express payment reaches your server, Phone Guard checks for a phone number from any source: the guard, the wallet, or the checkout form. If there’s none, the order is stopped and the customer sees “Please add a phone number for delivery before paying with express checkout.” The message can be changed in Settings → Text.

Enforcement never applies to:

Every stopped checkout is counted on the Overview page as “Express checkouts stopped until a phone was given”.

Express buttons on product and cart pages

Phone Guard puts the lock on the checkout page. Stripe and WooPayments can also show Apple Pay / Google Pay buttons on product pages and in the cart. Because those pages have no phone field, an express payment started there without a phone number will be stopped by enforcement.

Choose one of these:

  1. Recommended: in your payment plugin’s express checkout settings (WooCommerce Stripe Gateway or WooPayments), find where Apple Pay / Google Pay buttons are shown and select Checkout only, unticking Product page and Cart. The exact menu names vary between gateway versions.
  2. Keep the buttons on product and cart pages, and turn off Server-side enforcement. Orders from those pages may then arrive without a phone and are handled by recovery.

Section 7

Where the phone number is saved

When an order is created, Phone Guard writes the saved number into the order using WooCommerce’s own fields, so it shows in the normal places: the order screen, emails, packing slips and courier integrations.

Field Default Setting
Shipping phone Always set to the collected number Order data → Shipping phone
Billing phone Set only if the wallet didn’t supply one Order data → Billing phone
Private order note “Phone Guard: phone number +44… collected before express checkout.” Order data → Order note

The number stays in the customer’s session until payment succeeds. If a wallet payment fails and the customer tries again, they don’t have to re-enter it.

Section 8

Post-purchase recovery

Some orders can still arrive without a phone number, for example those placed before Phone Guard was installed, from product-page buttons with enforcement off, or from customers whose browser blocked scripts. Recovery asks those customers for a number after they’ve paid.

An order is offered recovery when:

  • it has no billing or shipping phone;
  • it’s Processing, On hold or Completed;
  • it ships to the customer and isn’t exempt.

On the order confirmation (thank-you) page

A box appears at the top of the page: “Add a phone number for delivery”, with a phone field and a Save phone number button.

📷 SCREENSHOT-05 — replace with screenshot

After saving, the customer sees “Thank you — we’ve received your phone number. +44 7700 900123”.

  • By default the number is then locked. The customer can’t change it, and they see a note: “Our team will use this number for your delivery. If it is wrong, please contact us.” This means you only review one number per order.
  • To let customers correct it until you apply it, switch on Customer changes.

📷 SCREENSHOT-06 — replace with screenshot

The page is protected by WooCommerce’s own order key, which is part of the order confirmation link. For guest orders, WooCommerce may ask the customer to confirm their email address before showing the page. The form also works without JavaScript, and each visitor is limited to 10 attempts per hour.

In the order email

The customer’s Processing, On hold and Completed order emails include a short box: “We don’t have a phone number for delivery. Please add one here:” with a link to the same form. The box only appears when the order is actually missing a number.

What happens to a submitted number

By default (review first):

  1. The number is stored on the order as pending. The order’s phone fields aren’t changed yet.
  2. A private order note records it.
  3. You receive the Phone number received email.
  4. You open the order, check the number, and choose Order actions → Apply pending phone number.

With Auto-apply switched on, the number is written straight to the order’s phone fields and you’re still emailed.

Once an order has a phone number, the recovery box and the email link stop appearing.

Section 9

Managing orders

Phone column

WooCommerce → Orders gets a Phone column:

Shows Meaning
The phone number The order has a phone.
Missing (red) The order needs a phone and doesn’t have one.
Pending review (yellow) The customer submitted a number; hover to see it.
– The order doesn’t need a phone (for example virtual products or local pickup).

📷 SCREENSHOT-07 — replace with screenshot

Filter

Use the Any phone status dropdown above the list to show only orders with a Phone missing, Phone pending review, or either (Missing or pending). Then click Filter.

Bulk “request phone number”

Select orders, then choose Bulk actions → Request phone number by email. Phone Guard emails each selected order that’s missing a number and skips the rest (orders that already have a number, are pending review, or have no email address). A notice tells you how many emails were sent and how many orders were skipped.

Single order screen

  • Phone Guard box (sidebar): shows the phone and where it came from (collected at checkout, added by the customer after purchase, or applied by an admin), or Phone missing / Pending review. It also shows whether the order was paid with express checkout and when a phone was last requested.
  • Order actions:
  • Request phone number from customer emails the customer a link to add their number.
  • Apply pending phone number (+44…) writes the submitted number to the order.

If you type a phone number into the order yourself and click Update, the Missing flag clears automatically.

📷 SCREENSHOT-08 — replace with screenshot

Section 10

Emails

Phone Guard adds two emails to WooCommerce → Settings → Emails. There you can switch each one on or off and edit its subject, heading and extra content, just like WooCommerce’s own emails. They use your WooCommerce email design (logo, colours, footer).

Email Sent to When Default subject
Phone number request Customer You use Request phone number (single or bulk) Please add a phone number for your {site_title} order #{order_number}
Phone number received Shop (site admin email by default) A customer submits a number after purchase [{site_title}]: Phone number received for order #{order_number}
  • Change who gets “Phone number received”: open it in WooCommerce → Settings → Emails and fill in Recipient(s). You can enter several addresses, separated by commas.
  • Customise the design: use Copy file to theme on the email’s settings page, or copy these files into your theme:
  • emails/tsol-pg-request-phone.php
  • emails/tsol-pg-admin-phone-received.php
  • and their emails/plain/ versions

The copies go in yourtheme/woocommerce/.

📷 SCREENSHOT-09 — replace with screenshot

Section 11

The Overview page: status, results and diagnostics

Typhoon → Phone Guard → Overview

📷 SCREENSHOT-10 — replace with screenshot

Status

  • Phone Guard: Active, or Inactive (switched off, or the licence isn’t active).
  • Licence: Trial, Active, Expired or Not activated, with the number of trial days left and a Manage licence button.

Results

This month and last month, counted on your site only:

Counter Meaning
Express orders with a phone collected by Phone Guard Paid express orders whose phone came from the guard
Express checkouts stopped until a phone was given Times enforcement stopped a phone-less express payment
Numbers recovered after purchase Orders where the customer added a number after paying
Phone requests emailed to customers Request emails sent from the order screen or in bulk

It also shows how many orders currently need a phone number, with a link to the filtered orders list. The same results appear in a Phone Guard — this month widget on the WordPress dashboard.

Diagnostics

This section is useful when setting up, and when contacting support:

  • Checkout type: Checkout block or Classic.
  • Supported gateway: which gateway was detected, and its version.
  • Server validation:
  • Full (libphonenumber) checks number ranges and mobile vs landline.
  • Basic checks length and country code only, and the Mobile numbers only option isn’t available.
  • Build, WooCommerce version and Order storage (HPOS or Posts).

Section 12

Settings reference

All settings are under Typhoon → Phone Guard. Each tab has its own Save Changes button, and saving one tab never changes the others.

General

Setting Default What it does
Phone Guard (Enable) On Master switch. When off, the guard, enforcement, recovery and order tools are all disabled and checkout behaves as standard WooCommerce.
Server-side enforcement On Rejects express payments that arrive without a phone number. See section 6. Turn it off if you only want post-purchase recovery, or if you keep express buttons on product/cart pages.
Enforcement applies to Express payments only Express payments only (recommended) applies only to Apple Pay / Google Pay. All payments through supported gateways also covers card payments through Stripe / WooPayments. Use the second option only if Diagnostics and a test order show express payments aren’t being detected on your site.
Exempt shipping methods None Orders using only these shipping methods don’t need a phone: no guard, no enforcement, no recovery. Typical use: Local pickup.

📷 SCREENSHOT-11 — replace with screenshot

Validation

Setting Default What it does
Default country Customer’s checkout country Which country is preselected in the country picker, and how numbers typed without +code are read. Customer’s checkout country falls back to your store country. Store base country always uses your store’s country. A fixed country uses the one you pick below.
Fixed country United Kingdom Used when Default country is A fixed country.
Accepted phone countries All countries Limit the picker and validation to these countries. For example, if you only deliver in the UK and Ireland, add those two.
Mobile numbers only Off Rejects landline numbers. Useful if your courier sends SMS updates. Needs full validation (see Diagnostics).

Order data

Setting Default What it does
Shipping phone On Saves the collected number as the order’s shipping phone.
Billing phone Only if the wallet did not supply one Only if the wallet did not supply one keeps a wallet’s billing phone. Always overwrite replaces it with the collected number. Never leaves the billing phone alone. If both writes are off, the number still goes into the billing phone, so it’s never lost.
Order note On Adds a private order note each time Phone Guard saves a number, saying where it came from.

Recovery

Setting Default What it does
Thank-you page On Shows the “Add a phone number for delivery” box on the order confirmation page for orders without a phone.
Order emails On Adds the “add your phone number” link to the customer’s Processing, On hold and Completed emails for orders without a phone.
Customer changes Off Off: a submitted number is shown but locked; the customer sees the “contact us” note. On: the customer can change it until you apply it.
Auto-apply Off Off: submitted numbers wait for you to review and apply them. On: they’re written to the order immediately, and you’re still emailed.

Text

Every customer-facing message can be changed here. If you empty a field and save, it stays empty. To get a default back, paste in the default text shown below.

Setting Where it appears Default
Hint above the buttons Above the express buttons Please provide your phone number for delivery arrangements.
Locked bar text On the locked bar Add your phone number to pay with express checkout
Phone field label Bar label when the field is open; recovery form Delivery phone
Phone field placeholder Inside the empty field (empty: shows an example number for the chosen country)
Confirm button (screen readers) Read aloud for the arrow button Save phone number
Invalid number message Under the field Please enter a valid phone number.
Save failed message If saving fails (for example, network) We couldn’t save your number. Please try again.
Saved message Hint after saving, followed by the number Delivery phone saved:
“Change” link After the saved number Change
Checkout rejection message When enforcement stops an order Please add a phone number for delivery before paying with express checkout.
Recovery box title Thank-you page box; email button Add a phone number for delivery
Recovery box text Thank-you page box; request email We don’t have a phone number for this order. Our delivery team may need to contact you — please add one below.
Recovery thank-you message After submitting on the thank-you page Thank you — we’ve received your phone number.
Note under a locked number Under a submitted number when changes are off Our team will use this number for your delivery. If it is wrong, please contact us.
Order email line Box in customer order emails We don’t have a phone number for delivery. Please add one here:

Appearance

Setting Default What it does
Bar background #111827 (near-black) Colour of the locked bar and the mobile drawer.
Bar text #ffffff Text and icon colour on the bar.
Accent (confirm button) #2563eb (blue) Confirm button, links, hint border, focus outline, request-email button.
Hint background #eff6ff (light blue) Background of the hint and of the thank-you box.
Corner radius 4 px Roundness of the bar, drawer, hint and field (0–32 px). Match your theme’s buttons.
Bar opacity 0.94 Below 1, the real buttons show faintly through the locked bar (0.6–1). While the field is open, the bar is always fully solid.
Mobile layout below 560 px If the buttons’ area is narrower than this, the field opens in a drawer; if wider, inside the bar. This is measured on the buttons’ area, not the whole screen, so two-column checkouts work correctly.

📷 SCREENSHOT-12 — replace with screenshot

Advanced

Setting Default What it does
Express buttons selector (empty: automatic) The CSS selector of the element that holds the Apple Pay / Google Pay buttons, for example #wc-stripe-express-checkout-element. Only fill this in if the guard doesn’t appear because a gateway update or your theme changed the page.
Compatibility mode Off Shows a plain phone field above the buttons instead of the overlay. The buttons stay locked (dimmed) until a valid number is saved. Try this if the overlay looks wrong with your theme.
Debug log Off Writes detection and capture details to WooCommerce → Status → Logs (source: typhoon-phone-guard) and to the browser console. Turn it on while testing or when support asks, then off again.

Section 13

Styling and customisation

CSS custom properties

For finer control, add CSS to Appearance → Customize → Additional CSS or to your theme:

:root {
  --tsol-pg-bar-bg: #0f2744;      /* bar and drawer background */
  --tsol-pg-bar-text: #ffffff;    /* bar text */
  --tsol-pg-bar-opacity: 1;       /* 0.6–1 */
  --tsol-pg-accent: #2e7d32;      /* confirm button, links, focus */
  --tsol-pg-hint-bg: #e8f1fb;     /* hint and thank-you box background */
  --tsol-pg-hint-text: #0f2744;   /* hint text */
  --tsol-pg-radius: 8px;          /* corner radius */
  --tsol-pg-error: #b91c1c;       /* error text */
  --tsol-pg-font-size: 15px;      /* base size of the guard */
}

The phone fields always keep a white background with dark text, whatever your theme does to inputs, so the number stays readable.

Template overrides

Copy these files into your theme to change the markup:

File Copy to
Thank-you box: templates/recovery/form.php yourtheme/woocommerce/typhoon-phone-guard/recovery/form.php
Emails: templates/emails/*.php yourtheme/woocommerce/emails/ (or use Copy file to theme in the email settings)

Keep the class names and hidden fields in the recovery form, or submitting the form will stop working.

Section 14

Translations and multilingual shops

  • The plugin is translation-ready (text domain typhoon-phone-guard), with a .pot file in /languages. Use Loco Translate or Poedit to translate the admin and default texts.
  • The messages you edit under Settings → Text are saved in the database. With WPML or Polylang they appear under String Translation (group admin_texts_tsol_pg_settings), so you can translate them per language.

Section 15

Privacy and data

  • Phone numbers are stored only in your WooCommerce orders, in the standard phone fields. Pending numbers are stored on the order until you apply them.
  • During checkout, the number is kept in the customer’s WooCommerce session and removed after successful payment.
  • The Results counters are simple monthly totals stored on your site. Nothing is sent to Typhoon Solutions. The licence check (own-site version) exchanges only licence information with the licensing service.
  • Numbers are collected for delivery of the order. Mention delivery contact in your privacy policy as you would for the normal checkout phone field.
  • WooCommerce’s own personal data export and erasure tools include order phone fields.

Uninstalling (deleting the plugin, not just deactivating it) removes Phone Guard’s settings, statistics and email settings. Phone numbers already saved to orders stay, because they belong to the orders.

Section 16

Troubleshooting

The guard doesn’t appear on the checkout.

  1. Check that you see Apple Pay / Google Pay buttons at all. Use Safari with a card in Apple Wallet, or Chrome signed in with Google Pay; the guard only appears where buttons are shown.
  2. On Overview → Diagnostics, check that the gateway is detected and the checkout type is correct.
  3. Check that the chosen shipping method isn’t exempt and the cart contains shippable products.
  4. If you use an optimisation plugin that delays or combines JavaScript, exclude typhoon-phone-guard scripts (and intlTelInput) from delaying and combining.
  5. If your theme or gateway renders the buttons in an unusual element, set Advanced → Express buttons selector, or turn on Compatibility mode.

Express orders are stopped even though the customer added a number. Turn on Debug log, place a test order and check WooCommerce → Status → Logs → typhoon-phone-guard. Send the log to support. As a temporary measure you can turn off Server-side enforcement; the guard and recovery keep working.

Express payments from product or cart pages are being stopped. See Express buttons on product and cart pages.

Express orders still arrive without a phone. Check the order’s Phone Guard box: Paid with express checkout should appear. If it doesn’t, your gateway version may send express payments differently.

  1. Turn on Debug log and place a test Apple Pay or Google Pay order.
  2. Contact support with the log. Meanwhile, Enforcement applies to → All payments through supported gateways is a safe fallback, if your normal checkout already requires a phone.

The overlay looks wrong with my theme (size, position, colours). Adjust the colours and radius on Appearance, or use the CSS variables. If the layout itself breaks, turn on Compatibility mode.

Customers aren’t receiving the request email, or I’m not receiving “Phone number received”. Check that the email is enabled in WooCommerce → Settings → Emails, and check its recipient. If other WooCommerce emails also don’t arrive, set up an SMTP plugin.

“Mobile numbers only” doesn’t reject landlines. Overview → Diagnostics → Server validation must show Full (libphonenumber). If it shows Basic, download the latest plugin zip from your account and reinstall.

The thank-you box doesn’t appear. It only appears for orders with no phone number, in the Processing, On hold or Completed status, that ship to the customer. Block themes with a custom order confirmation template must include WooCommerce’s order confirmation blocks.

Section 17

FAQ

Does it change my normal card checkout? No. Card checkouts follow WooCommerce’s own phone field setting (WooCommerce → Settings → General for classic checkout, or the Checkout block’s field settings).

Why not just make the wallet ask for a phone number? Google Pay usually doesn’t share a phone with the store at all, and Apple Pay doesn’t always. Phone Guard asks before the wallet opens, so it works with both.

Does it slow down the checkout? No. The country picker only loads when a customer clicks the bar.

Can I use it without the lock and only recover numbers afterwards? Yes. Use Compatibility mode for a lighter look, or rely on recovery: turn off Server-side enforcement, and use the thank-you box, email link and request emails.

Which gateways are supported? WooCommerce Stripe Gateway and WooPayments. PayPal Payments and Square are on the roadmap.

Is it GDPR friendly? Numbers are stored only in your orders and used for delivery, and no data leaves your site. See Privacy.

How many sites can I use it on? Depending on your plan: 1, 5 or 20 sites. Check your licence account for how local and staging sites are counted.

Section 18

Developer reference

Filters:

  • tsol_pg_features_enabled
  • tsol_pg_should_guard
  • tsol_pg_checkout_mode
  • tsol_pg_express_selectors
  • tsol_pg_adapters
  • tsol_pg_express_request
  • tsol_pg_order_needs_phone
  • tsol_pg_cart_needs_phone
  • tsol_pg_order_needs_recovery
  • tsol_pg_recovery_statuses
  • tsol_pg_recovery_email_ids
  • tsol_pg_validate_phone
  • tsol_pg_phone_before_save
  • tsol_pg_settings_schema

Actions:

  • tsol_pg_phone_applied( $order, $phone, $source )
  • tsol_pg_phone_recovered( $order, $phone, $result )
  • tsol_pg_checkout_rejected( $payment_method )

Order meta:

Key Contains
_tsol_pg_source guard, recovered or admin
_tsol_pg_express Gateway id, for express payments
_tsol_pg_pending_phone The customer-submitted number awaiting review
_tsol_pg_missing missing or pending
_tsol_pg_requested_at Timestamp of the last request email

Examples:

// Don't ask for a phone on orders marked for collection by another plugin.
add_filter( 'tsol_pg_order_needs_phone', function ( $needs, $order ) {
    return $order->get_meta( '_collection_point' ) ? false : $needs;
}, 10, 2 );

// Send every captured number to your courier's API.
add_action( 'tsol_pg_phone_applied', function ( $order, $phone, $source ) {
    // my_courier_update_contact( $order->get_id(), $phone );
}, 10, 3 );

Section 19

Changelog

1.0.2 – A number submitted after purchase is shown but locked until the shop applies it (new setting: Recovery → Customer changes). – Submitted numbers are shown in international format.

1.0.1 – The phone field keeps a white background and dark text when the theme restyles focused inputs. – Clearer, bordered phone field on the order confirmation page.

1.0.0 – First release.

Still stuck?

Send us your WordPress, WooCommerce and Phone Guard versions (from the plugin’s Overview page) and what you’re seeing. We aim to reply within one business day.