# WordPress & WooCommerce

Server-side integrations with explicit payment confirmation and safe retries.

> Installable developer-preview plugin, not a WordPress.org marketplace listing. Complete a store-specific acceptance test before taking live payments.

## Install the plugin

[Download Atlas Pay for WordPress · ZIP](https://dashboard.atlaspay.sh/downloads/atlas-pay-wordpress-0.1.0.zip)

1.  Use an HTTPS WordPress site with PHP 8.0+ and WordPress 6.5+. For cart checkout, install WooCommerce. The plugin includes classic checkout and Checkout Blocks support.
2.  Go to Plugins → Add New → Upload Plugin. Upload the ZIP and activate Atlas Pay.
3.  Open WooCommerce → Settings → Payments → Atlas Pay. Copy the website and webhook URLs shown there.
4.  In Atlas Pay → Developers, create a key for that website and callback, with all six permissions. Save the secret API key and signing secret.
5.  Paste the secrets into the gateway settings, or define `ATLAS_PAY_SECRET_KEY` and `ATLAS_PAY_WEBHOOK_SECRET` in protected `wp-config.php`. Enable the gateway and save.

Keys stay on your WordPress server. No card data passes through WordPress or Atlas Pay; checkout is hosted by Stripe. Order amount, currency, reference, optional billing email, and return URLs are sent to Atlas Pay and Stripe.

## Payment links without WooCommerce

Insert a shortcode with a genuine Stripe-hosted link created in Atlas Pay. This displays a link; it does not provide WooCommerce order tracking.

```text
[atlas_pay url="https://buy.stripe.com/YOUR_LINK" label="Pay with Atlas Pay"]
```

## Orders, refunds & recovery

The gateway uses the WooCommerce order total, including tax/shipping/discounts, and checks amount, currency, reference, and mode before calling payment completion. Refreshing checkout reuses the pending session. A processing payment remains on hold. Changed order totals require reconciliation before a replacement order.

Use WooCommerce’s refund action for full or partial refunds. A pending refund is not reported as successful; review its Atlas Pay status before retrying or recording a manual refund. Callback refund updates add order notes but do not create local refund records automatically. Direct Stripe refunds require manual reconciliation.

Signed callbacks are the primary confirmation path. WooCommerce Action Scheduler also retries status checks up to 48 times. Ensure scheduled actions run reliably, including during low traffic. Recovery after the retry window is an operator responsibility.

## Before enabling it for customers

Test both checkout types you use, virtual and physical fulfillment, currency precision, duplicate checkout requests, delayed payments, refunds, callback rejection, retries, and key rotation. Review the full README inside the ZIP and the [launch checklist](https://dashboard.atlaspay.sh/docs/testing).

This version does not support WooCommerce Subscriptions, saved payment methods, manual capture, or automatic tax calculation. Store currency and merchant eligibility remain subject to Stripe.

---

Source: [Atlas Pay — WordPress & WooCommerce](https://dashboard.atlaspay.sh/docs/wordpress)

Prepared by Kyle Campbell
