---
title: "How to Create a Manual Payment Link or Review-Based Payment Method"
description: "This guide is for stores that want to **review the order first**, then **send a payment link manually** to the customer — for example via email, Wise, PayPal, or Stripe Payment Links. > **Important:** The customer should **not** be asked to provide the payment link. You…"
url: "https://wpruby.com/knowledgebase/how-to-create-a-manual-payment-link-or-review-based-payment-method/"
updated: "2026-07-07"
category: WooCommerce Custom Payment Gateway Pro
---

# How to Create a Manual Payment Link or Review-Based Payment Method

This guide is for stores that want to **review the order first**, then **send a payment link manually** to the customer — for example via email, Wise, PayPal, or Stripe Payment Links.

> **Important:** The customer should **not** be asked to provide the payment link. You (the store owner) send the link after reviewing the order.

This workflow is different from the **Manual Payment Link** template, which displays a payment link to customers at checkout. For review-first workflows, use **Start from scratch** or customize a gateway so payment details are not shown until you send them.

---

Table of Contents

 [Toggle](#)

- [Recommended approach](#Recommended_approach)
- [Step 1: Create the gateway](#Step_1_Create_the_gateway)
- [Step 2: Enable and name the gateway](#Step_2_Enable_and_name_the_gateway)
- [Step 3: Customer message](#Step_3_Customer_message)
- [Step 4: Customer note](#Step_4_Customer_note)
- [Step 5: Order status](#Step_5_Order_status)
- [Step 6: Recommended checkout fields](#Step_6_Recommended_checkout_fields)
- [Step 7: What not to collect](#Step_7_What_not_to_collect)
- [Step 8: Optional API notification](#Step_8_Optional_API_notification)
- [Step 9: Test the workflow](#Step_9_Test_the_workflow)
- [Copy-paste example text](#Copy-paste_example_text)
- [Manual Payment Link template vs. this workflow](#Manual_Payment_Link_template_vs_this_workflow)

## Recommended approach

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#recommended-approach](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#recommended-approach)

1. Customer places order with your custom gateway.
2. Order is held for review (**On hold** or **Pending payment**).
3. You review the order in WooCommerce admin.
4. You send the payment link to the customer by email or your usual channel.
5. You mark the order paid when payment is confirmed.

---

## Step 1: Create the gateway

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-1-create-the-gateway](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-1-create-the-gateway)

1. Go to **WooCommerce → Settings → Custom Payment Gateways**.
2. Choose **Start from scratch** (recommended for this workflow).
3. Name the gateway (for example, `Payment Link After Review`).
4. Click **Configure**.

> Do **not** use the Manual Payment Link template if you want to send the link yourself after review. That template shows payment links to customers at checkout.

---

## Step 2: Enable and name the gateway

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-2-enable-and-name-the-gateway](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-2-enable-and-name-the-gateway)

1. Check **Enable Custom Payment**.
2. Turn on **Enable Debug Mode** for testing.
3. **Method Title:** `Request Payment Link` (or similar)

---

## Step 3: Customer message

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-3-customer-message](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-3-customer-message)

Explain that payment happens after you review the order:

```php
Complete your order now. We will review your order and email a secure payment link within 1 business day. Your order will be processed after payment is received.
```

---

## Step 4: Customer note

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-4-customer-note](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-4-customer-note)

Shown after checkout on the thank-you page:

```php
Thank you for your order. Our team is reviewing your order now. You will receive a payment link by email shortly. If you have questions, contact us at sales@yourstore.com.
```

---

## Step 5: Order status

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-5-order-status](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-5-order-status)

Choose a status that reflects pending review and payment:

| Status | When to use |
| --- | --- |
| **On hold** | Default choice — order needs review before payment |
| **Pending payment** | Emphasizes that payment is still required |

Both are supported. **On hold** is a common choice for manual review workflows.

---

## Step 6: Recommended checkout fields

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-6-recommended-checkout-fields](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-6-recommended-checkout-fields)

Collect information you need to review the order and send the correct payment link. **Do not** add fields for payment links, card numbers, or wallet addresses.

| Field type | Field label | Required | Purpose |
| --- | --- | --- | --- |
| Text | Company name | No | Identify business customers |
| Email | Billing contact email | Yes | Where to send the payment link |
| Text | Purchase order number | No | Internal reference |

Optional:

| Field type | Field label | Purpose |
| --- | --- | --- |
| Textarea | Order notes | Special instructions from customer |

---

## Step 7: What not to collect

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-7-what-not-to-collect](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-7-what-not-to-collect)

**Do not** add checkout fields for:

- Payment link URLs
- Credit card numbers, expiry dates, or CVV/CVC codes
- Bank account passwords
- Full card details of any kind

The store owner provides payment instructions **after** review — not the customer at checkout.

If you see an admin warning about merchant-owned fields (payment links, bank details, QR codes), move that information to gateway settings or your manual follow-up process instead of customer input fields.

---

## Step 8: Optional API notification

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-8-optional-api-notification](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-8-optional-api-notification)

If you want your team notified when an order needs review, enable **API requests** and POST order data to a webhook (Zapier, Make, or your internal system).

Example **Extra API Parameters**:

| Key | Value |
| --- | --- |
| `workflow` | `payment_link_review` |

See [Sending Payment Data to an External API](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/api-requests.md).

---

## Step 9: Test the workflow

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-9-test-the-workflow](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#step-9-test-the-workflow)

1. With **Enable Debug Mode** on, log in as an administrator.
2. Place a test order using your gateway.
3. Confirm:
   - No payment link is shown at checkout
   - Order status is **On hold** (or **Pending payment**)
   - Checkout fields are saved on the order
   - Customer note appears on the thank-you page
4. Manually send a test payment link to yourself.
5. Turn off debug mode when ready for customers.

---

## Copy-paste example text

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#copy-paste-example-text](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#copy-paste-example-text)

**Customer Message**

```php
Place your order now. We will review it and send you a secure payment link by email. Your order will be fulfilled after payment is confirmed.
```

**Customer Note**

```php
Thank you for your order. We are reviewing your request and will email a payment link within 1 business day. Please check your inbox (and spam folder) for our message.
```

---

## Manual Payment Link template vs. this workflow

[https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#manual-payment-link-template-vs-this-workflow](https://github.com/wsenjer/woocommerce-custom-payment-gateway/blob/docs-cursor/docs/payment-link-or-manual-review-setup.md#manual-payment-link-template-vs-this-workflow)

|  | Manual Payment Link template | Review-first workflow (this guide) |
| --- | --- | --- |
| Payment link at checkout | Yes — shown in Payment details | No — you send it later |
| Best for | Fixed hosted links (Wise, PayPal.me) | Custom approval before payment |
| Customer provides link | No | No |

Choose the approach that matches how your store operates.

---
