# Email Notifications

WCPOS gives you per-email control over which WooCommerce notification emails fire for POS orders, separate from your site-wide WooCommerce email settings. You can also notify the **cashier** who processed the sale.

The settings live on the **Checkout** screen — go to **WP Admin > POS > Settings > Checkout**. Email controls sit above the Order Status and Payment Gateways sections.

About POS order emails

WooCommerce's default email triggers don't always fire cleanly on POS orders, because POS uses custom statuses like *POS - Open* and *POS - Partial* that WooCommerce doesn't know about. WCPOS manually re-triggers the New Order email when an order transitions out of one of these statuses into Completed, Processing, or On Hold — so you reliably get a notification regardless of the path the order took through checkout.

## The three email groups[​](#the-three-email-groups "Directe link naar The three email groups")

Each group has a **master toggle** at the top. When the toggle is on, a checkbox list appears underneath letting you enable or disable each individual email type. When the toggle is off, none of those emails are sent for POS orders (regardless of the per-email checkboxes).

### Admin emails[​](#admin-emails "Directe link naar Admin emails")

*"WooCommerce admin notification emails for POS orders"* — **on by default.**

Sent to the address(es) configured in **WooCommerce → Settings → Emails → (email type) → Recipient(s)**.

| Email               | Default   | Sent when                                               |
| ------------------- | --------- | ------------------------------------------------------- |
| **New order**       | ✓ Checked | A POS order moves into Processing / Completed / On Hold |
| **Cancelled order** | ✓ Checked | A POS order is cancelled                                |
| **Failed order**    | ✓ Checked | A POS order fails (gateway error, etc.)                 |

### Customer emails[​](#customer-emails "Directe link naar Customer emails")

*"WooCommerce customer notification emails for POS orders"* — **on by default.**

Sent to the customer's billing email — only fires for orders with an attached customer (skipped silently for Guest sales).

| Email                | Default   | Sent when                                 |
| -------------------- | --------- | ----------------------------------------- |
| **Order on hold**    | ✓ Checked | A POS order goes to On Hold               |
| **Processing order** | ✓ Checked | A POS order goes to Processing            |
| **Completed order**  | ✓ Checked | A POS order is completed                  |
| **Refunded order**   | ✓ Checked | A POS order is refunded (full or partial) |
| **Failed order**     | ✓ Checked | A POS order fails                         |

### Cashier emails[​](#cashier-emails "Directe link naar Cashier emails")

*"Send new order notification to the cashier who processed the POS order"* — **off by default.**

| Email         | Default                                | Sent when                                |
| ------------- | -------------------------------------- | ---------------------------------------- |
| **New order** | ✓ Checked *(when master toggle is on)* | A POS order is completed by that cashier |

WCPOS identifies the cashier from the order's `_pos_user` meta (the WP user logged into the till) and pulls their account email. If the cashier email is the same as the admin email — for example, a single-owner store where the same person is both admin and cashier — WCPOS **de-duplicates** the recipient so you don't get the email twice.

The admin and cashier toggles operate **independently** — turning one off doesn't affect the other.

## Common scenarios[​](#common-scenarios "Directe link naar Common scenarios")

Stop the inbox getting flooded by busy days

Turn **Admin emails → New order** off if your shop runs 50+ sales a day and the admin doesn't need a notification for every one. Keep **Cancelled order** and **Failed order** on — those are the ones you actually want to know about.

For revenue tracking, the [Reports](/nl/reports/.md) screen is a better tool than counting New Order emails anyway.

Send notifications only to the cashier on duty, not the admin

Turn **Admin emails** master toggle off, and **Cashier emails** master toggle on. The cashier who completes each sale gets the New Order email at their personal account address, and the admin inbox stays clean.

This works well for multi-cashier stores where the owner doesn't want to be in the loop on every transaction.

Disable customer emails for in-store sales

Tourist-heavy stores, market stalls, and quick-serve cafes often don't want to email customers a receipt — they already have the printed one. Turn the **Customer emails** master toggle off and no Processing / Completed / Refunded emails will go out for POS sales.

This leaves the customer-facing emails for your online orders untouched, since those run through standard WooCommerce (not the POS path).

Keep customer emails on, but not the 'Processing' one

If your POS orders complete instantly (cash + card-present), the customer gets a *Processing* email *and* a *Completed* email within the same second. Uncheck **Processing order** in the Customer emails list to drop the redundant one.

I upgraded from before v1.8.9 and my old single 'Enable emails' switch is gone

The single on/off switch from earlier versions has been replaced by the three-group structure above. WCPOS transparently migrates your old setting — if you previously had emails off, all three master toggles are off; if you had them on, the Admin and Customer master toggles are on and Cashier is off (the new default).

You don't need to do anything; the migration runs automatically when you open the Checkout settings page after upgrading.

## Developer hooks[​](#developer-hooks "Directe link naar Developer hooks")

For programmatic control beyond the UI, the following WordPress filters are available:

| Filter                                   | Purpose                                    |
| ---------------------------------------- | ------------------------------------------ |
| `woocommerce_pos_admin_email_enabled`    | Override the admin master toggle           |
| `woocommerce_pos_customer_email_enabled` | Override the customer master toggle        |
| `woocommerce_pos_admin_emails`           | Filter the list of enabled admin emails    |
| `woocommerce_pos_customer_emails`        | Filter the list of enabled customer emails |

Cashier notifications are wired up via WooCommerce's existing `woocommerce_email_recipient_new_order` filter, so per-recipient overrides (e.g. CC'ing additional addresses) work the same way they do for any WooCommerce email.

## Related Documentation[​](#related-documentation "Directe link naar Related Documentation")

* [Checkout Settings](/nl/settings/wp-admin/checkout.md) — payment gateways and order status on the same settings page
* [Orders](/nl/orders/.md) — view POS orders that have been processed
* [Cashier Access](/nl/settings/wp-admin/access.md) — which WordPress users can sign in as cashiers
