Documentation · Phone Guard
Phone Guard User Guide
Phone Guard makes sure Apple Pay and Google Pay orders in WooCommerce arrive with a delivery phone number. This guide covers every feature and every setting.
Version 1.0.2
Contents
- How Phone Guard works
- Requirements
- Installation, trial and licence
- Quick start (5 minutes)
- What your customers see at checkout
- Server-side enforcement
- Where the phone number is saved
- Post-purchase recovery
- Managing orders
- Emails
- The Overview page: status, results and diagnostics
- Settings reference
- Styling and customisation
- Translations and multilingual shops
- Privacy and data
- Troubleshooting
- FAQ
- Developer reference
- Changelog
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
- Download the plugin zip from your account.
- In WordPress go to Plugins → Add New → Upload Plugin, choose the zip, then click Install Now and Activate.
- 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)
- Check the diagnostics. Go to Typhoon → Phone Guard → Overview. Under Diagnostics, confirm your checkout type and payment gateway are detected.
- 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.
- Match your brand. On Appearance, set the bar and button colours.
- Check the wording. On Text, adjust any messages you’d like to change. The defaults work for most shops.
- Place a test order. Using Apple Pay or Google Pay (Stripe test mode is fine), check that:
- the buttons are locked until you add a number;
- the order shows the number as Shipping phone (and Billing phone, if the wallet didn’t supply one);
- 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:
- normal card payments (unless you choose All payments through supported gateways);
- orders using an exempt shipping method;
- orders that don’t need shipping.
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:
- 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.
- 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):
- The number is stored on the order as pending. The order’s phone fields aren’t changed yet.
- A private order note records it.
- You receive the Phone number received email.
- 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).
| 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.phpemails/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.potfile 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.
- 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.
- On Overview → Diagnostics, check that the gateway is detected and the checkout type is correct.
- Check that the chosen shipping method isn’t exempt and the cart contains shippable products.
- If you use an optimisation plugin that delays or combines JavaScript, exclude
typhoon-phone-guardscripts (andintlTelInput) from delaying and combining. - 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.
- Turn on Debug log and place a test Apple Pay or Google Pay order.
- 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_enabledtsol_pg_should_guardtsol_pg_checkout_modetsol_pg_express_selectorstsol_pg_adapterstsol_pg_express_requesttsol_pg_order_needs_phonetsol_pg_cart_needs_phonetsol_pg_order_needs_recoverytsol_pg_recovery_statusestsol_pg_recovery_email_idstsol_pg_validate_phonetsol_pg_phone_before_savetsol_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.