---
title: Conditional Logic
description: "## Overview Conditional Logic allows you to control when your custom email messages are displayed based on specific order, customer, and product attributes. Instead of showing the same message to every customer, you can create dynamic rules that determine whether…"
url: "https://smartproductemails.com/documentation/conditional-logic/"
updated: "2026-01-22"
category: SPE PRO Documentation
---

# Conditional Logic

## Overview

Conditional Logic allows you to control when your custom email messages are displayed based on specific order, customer, and product attributes. Instead of showing the same message to every customer, you can create dynamic rules that determine whether a message should appear based on conditions you define.

### What You Can Do with Conditional Logic

- Show messages only to returning customers
- Hide messages for orders under a certain value
- Display different content based on payment method
- Target customers who order from specific product categories
- Create VIP-only communications for high-value orders
- Customize messaging based on shipping method

---

## Accessing Conditional Logic

1. Open any product in WooCommerce
2. Navigate to the **Product Data** section
3. Find the desired order status tab (Processing, Completed, On Hold, or Refunded)
4. Click the **Customize Email** button to open the message editor
5. Select a message card from the list
6. Click the **Conditional Logic** button (randomize icon) in the message card's action buttons

A side panel will slide in from the right where you can configure your rules.

![](https://smartproductemails.com/wp-content/uploads/2026/01/SPE-Screenshot-ConditionalLogicPanel-1024x478.png)

---

## How It Works

Conditional Logic uses a rule-based system with three main components:

| Component | Purpose |
| --- | --- |
| **Mode** | Determines what happens when rules match (Show or Hide) |
| **Match Type** | Determines how multiple rules are evaluated (AND or OR) |
| **Rules** | The individual conditions that are checked |

---

## Mode: Show vs Hide

When configuring conditional logic, you first choose what happens when your rules match:

### Show Message Mode

The message is displayed **only when** the conditions are met.

**Example:**

- Rule: Order Total > $100
- Result: Message only appears for orders over $100

### Hide Message Mode

The message is hidden **when** the conditions are met (displayed otherwise).

**Example:**

- Rule: Customer Type = New
- Result: Message is hidden for new customers, shown to returning customers

### Choosing the Right Mode

| Scenario | Recommended Mode |
| --- | --- |
| Show special content for VIP customers | Show Message |
| Hide "spend more" reminder when threshold met | Hide Message |
| Display category-specific care instructions | Show Message |
| Remove first-time buyer message for returning customers | Hide Message |

---

## Match Type: All vs Any

When you have multiple rules, you choose how they should be evaluated:

### All Rules (AND)

Every rule must be true for the condition to match. This is more restrictive.

**Example with two rules:**

- Rule 1: Order Total > $100
- Rule 2: Customer Type = Returning

**Result:** Message shows only for returning customers who spent over $100. Both conditions must be met.

### Any Rule (OR)

At least one rule must be true for the condition to match. This is more permissive.

**Example with two rules:**

- Rule 1: Order Total > $100
- Rule 2: Customer Type = Returning

**Result:** Message shows for any order over $100 OR any returning customer. Only one condition needs to be met.

---

## Available Conditions

### Order Conditions

| Condition | Operators | Description |
| --- | --- | --- |
| **Order Total** | Greater than, Less than, Equals, Between | The total order amount including shipping and taxes |
| **Order Subtotal** | Greater than, Less than, Equals, Between | The order amount before shipping and taxes |
| **Item Count** | Greater than, Less than, Equals | The number of items in the order |

### Customer Conditions

| Condition | Operators | Description |
| --- | --- | --- |
| **Customer Type** | Equals, Not Equals | Whether the customer is New or Returning |
| **Customer Order Count** | Greater than, Less than, Equals | Total number of orders the customer has placed |
| **Customer Role** | Equals, Not Equals | The WordPress user role (e.g., Subscriber, Customer, Wholesale) |

### Product Conditions

| Condition | Operators | Description |
| --- | --- | --- |
| **Product Category** | Contains, Does Not Contain | Whether the order contains products from a specific category |
| **Product Tag** | Contains, Does Not Contain | Whether the order contains products with a specific tag |

### Payment & Shipping Conditions

| Condition | Operators | Description |
| --- | --- | --- |
| **Payment Method** | Equals, Not Equals | The payment method used (e.g., Credit Card, PayPal) |
| **Shipping Method** | Equals, Not Equals | The shipping method selected (e.g., Flat Rate, Free Shipping) |

---

## Creating Rules

### Adding a Rule

1. Click **Add Rule** to create a new condition
2. Select a **Rule Type** from the dropdown
3. Choose an **Operator** (options vary by rule type)
4. Enter or select a **Value**
5. Repeat to add additional rules as needed
6. Click **Save Rules** to apply

### Removing a Rule

Click the red **Remove** button (trash icon) on the rule row to remove it.

### Clearing All Rules

Click **Clear All** at the bottom of the panel to remove all rules and disable conditional logic for that message.

---

## Visual Indicator

Messages with active conditional logic display a **gradient border** (blue to purple) and an **icon** in the top-right corner of the message card. This makes it easy to identify which messages have rules configured at a glance.

![](https://smartproductemails.com/wp-content/uploads/2026/01/SPE-Screenshot-ConditionalLogic-MessageCard.png)

---

## Practical Use Cases

### 1. VIP Customer Thank You

Show a special thank you message only to returning customers who spend over $200.

**Configuration:**

- Mode: **Show Message**
- Match: **All Rules (AND)**
- Rules:
  - Customer Type **Equals** Returning
  - Order Total **Greater than** 200

### 2. First-Time Buyer Welcome

Show a welcome message with discount code for new customers on their first purchase.

**Configuration:**

- Mode: **Show Message**
- Match: **All Rules (AND)**
- Rules:
  - Customer Type **Equals** New
  - Customer Order Count **Equals** 1

### 3. Free Shipping Reminder

Hide the "spend more for free shipping" message when the customer already qualifies.

**Configuration:**

- Mode: **Hide Message**
- Match: **Any Rule (OR)**
- Rules:
  - Order Total **Greater than** 75
  - Shipping Method **Equals** Free Shipping

### 4. Category-Specific Care Instructions

Show care instructions only for orders containing clothing items.

**Configuration:**

- Mode: **Show Message**
- Match: **Any Rule (OR)**
- Rules:
  - Product Category **Contains** Clothing
  - Product Category **Contains** Textiles

### 5. Wholesale Customer Communication

Show wholesale-specific pricing information only to wholesale customers.

**Configuration:**

- Mode: **Show Message**
- Match: **All Rules (AND)**
- Rules:
  - Customer Role **Equals** Wholesale Customer

### 6. High-Value Order Appreciation

Show an extra appreciation message for large orders.

**Configuration:**

- Mode: **Show Message**
- Match: **All Rules (AND)**
- Rules:
  - Order Total **Greater than** 500
  - Item Count **Greater than** 5

### 7. Payment Method Instructions

Show bank transfer instructions only for orders using that payment method.

**Configuration:**

- Mode: **Show Message**
- Match: **All Rules (AND)**
- Rules:
  - Payment Method **Equals** Bank Transfer

### 8. Local Pickup Information

Show store pickup details only for local pickup orders.

**Configuration:**

- Mode: **Show Message**
- Match: **All Rules (AND)**
- Rules:
  - Shipping Method **Equals** Local Pickup

---

## Tips & Best Practices

### Start Simple

Begin with one or two rules and test before adding complexity. It's easier to troubleshoot simple rule sets.

### Test Different Scenarios

Place test orders with different:

- Order amounts
- Customer types (new vs returning)
- Products from different categories
- Payment methods
- Shipping methods

Verify your rules work as expected in each scenario.

### Consider Both Modes

Sometimes it's easier to define when to **hide** a message rather than when to **show** it. Think about which approach requires fewer rules.

### Document Your Logic

Use descriptive message titles so you remember what each message is for and what conditions apply. For example: "VIP Thank You (Orders > $200)" or "Care Instructions (Clothing Only)".

### Avoid Conflicting Rules

When using **All Rules (AND)**, make sure your rules don't contradict each other. For example, "Order Total = 100" AND "Order Total = 200" will never match.

### Keep Rules Maintainable

If you find yourself creating many complex rules, consider whether you need separate messages instead of one message with many conditions.

---

## Troubleshooting

### Message Not Appearing When Expected

1. **Verify Mode is correct** — Check if Show or Hide is set appropriately
2. **Check Match Type** — Should it be "Any" (OR) instead of "All" (AND)?
3. **Confirm condition values** — Are the numbers and selections correct?
4. **Test the specific scenario** — Place an order that should match your rules

### Message Appearing When It Shouldn't

1. **Review all rules** — With "Any Rule (OR)", only one rule needs to match
2. **Consider Hide mode** — Should you be using Hide instead of Show?
3. **Check for broad conditions** — Rules like "Order Total > 0" will match almost everything

### Rules Not Saving

1. **Complete all fields** — All three fields (Rule Type, Operator, Value) must be filled
2. **Click Save Rules** — Changes must be saved before closing the panel
3. **Update the product** — Click "Update" on the product page to persist all changes

### Visual Indicator Not Showing

The gradient border only appears after:

1. Rules are saved in the panel
2. At least one valid rule exists
3. The panel is closed

---

## Combining with Other Features

### With Multiple Messages

You can apply different conditional logic to different messages on the same product. For example:

- Message 1: Care instructions (Show for Clothing category)
- Message 2: VIP discount (Show for orders > $200)
- Message 3: Review request (Show for returning customers)

### With Different Order Statuses

Conditional logic works independently for each order status. You can have:

- Processing: Show setup guide for new customers
- Completed: Show review request for returning customers
- Refunded: Show alternative product suggestions for all customers

### With Dynamic Content Tags

Conditional logic determines **if** a message shows. Dynamic tags personalize **what** the message says. Use both together for highly targeted, personalized communications.

---

## Summary

| Feature | Description |
| --- | --- |
| **Purpose** | Control when messages appear based on order/customer attributes |
| **Access** | Customize Email → Select Message → Conditional Logic button |
| **Modes** | Show Message (display when rules match) or Hide Message (hide when rules match) |
| **Match Types** | All Rules (AND) or Any Rule (OR) |
| **Rule Count** | Unlimited rules per message |
| **Conditions** | 10 condition types covering orders, customers, products, payment, and shipping |

Conditional Logic gives you precise control over your email communications, ensuring customers receive only the most relevant information for their specific situation.
