DrPlugin

Transactional emails

Updated November 3, 2026

See which emails ReleaseCart sends to buyers, set the sender, and change the email templates from your theme.

The emails ReleaseCart sends

ReleaseCart sends two emails on its own, with no setup. The header, the footer and the subject show your site title from Settings → General.

Purchase receipt

ReleaseCart sends the receipt once per order, after the order completes. Its subject reads "Your Store: your receipt for order #12", with your site title and the order number. It holds:

  • the order number and date
  • a table of items with their quantity and total
  • the subtotal, any discount with its code, and the order total
  • every license key the order created, with its product
  • download links for the files the order includes

The download links in the email stay valid for 72 hours from when the email is sent. The links on the store's own receipt, the Purchase Confirmation block, last 6 hours.

The purchase receipt email with the items table, the order total and the license key

License delivery

This email carries one license key on its own. ReleaseCart sends it only for a key created after the receipt has gone out. In a normal checkout the keys exist before the receipt is built, so they are in the receipt and this email is not sent.

Its subject reads "Your Store: your license key for Product name". It holds the key, the product, the expiry date when the license has one, and the order's download links, valid for 72 hours.

ReleaseCart Pro adds more emails, such as cart recovery emails and failed payment notices.

When emails are sent

ReleaseCart does not send mail during checkout or while it handles the Stripe webhook. When an order completes, it queues a releasecart_job_send_email job in Action Scheduler, which ships with ReleaseCart. The job sends the email the next time Action Scheduler runs its queue, so the receipt can arrive a little after the payment.

Each receipt goes out once per order, and each license delivery email once per license, even if the job runs twice. ReleaseCart marks an email as sent only after wp_mail() accepts it. When the job runs, the receipt is skipped if the order is no longer Completed or Partially refunded.

Email settings

Open ReleaseCart → Settings → Emails, change the settings and click Save changes.

Setting Default What it does
From name Empty, which uses the site title The sender name on ReleaseCart emails.
From address Empty, which uses the site admin email address The sender address on ReleaseCart emails.
Send purchase receipts On Sends the receipt after a completed purchase.
Send license delivery emails On Sends a key that was created after the receipt went out.

An email you switch off sends nothing and writes no log entry.

The settings sit under the emails key of the releasecart_settings option as from_name, from_address, enabled_purchase_receipt and enabled_license_delivery.

Change the email templates

Each email body is a PHP template. To change one, copy it from the plugin into a releasecart/emails/ folder in your theme and edit the copy.

Template Plugin file Theme copy
Purchase receipt templates/emails/purchase-receipt.php releasecart/emails/purchase-receipt.php
License delivery templates/emails/license-delivery.php releasecart/emails/license-delivery.php
Shared header templates/emails/header.php releasecart/emails/header.php
Shared footer templates/emails/footer.php releasecart/emails/footer.php

ReleaseCart looks in the child theme, then the parent theme, then the plugin. Each template gets one $data array, and the default templates list its keys at the top. Your copy must escape every value it prints.

If a template is missing or throws an error, the email is not sent and ReleaseCart logs the failure. Check the log after you add a theme copy.

The subject lines and the template text are translatable strings in the releasecart text domain. Developers can add template folders with the releasecart_email_template_paths filter and add attachments with releasecart_email_attachments.

Delivery

ReleaseCart sends every email through wp_mail(), with an HTML body and a plain-text copy for text-only mail clients. The plain-text copy writes out each link address. If you use an SMTP plugin for the rest of your site, it handles ReleaseCart mail too.

Check whether an email was sent

  1. Open Tools → Scheduled Actions and search for releasecart_job_send_email. A pending action has not run yet, and a failed one shows its log. A completed action does not prove the email went out, because the job catches send errors and records them in the log table (step 2).
  2. Look in the releasecart_logs database table, with your table prefix in front. A sent email is a row of type email, such as "Sent purchase_receipt email to Email address, shown when JavaScript runs." A failed send is a row of type error with the reason, such as a missing template or wp_mail() returning false. No admin screen shows this table, so use a database tool.
  3. Check that Send purchase receipts is on.
  4. If you use an SMTP plugin, check its log too. ReleaseCart only knows that wp_mail() accepted the message, not that it reached the inbox.

Common questions

Why did a buyer get a license key in a separate email?

The key was created after the receipt had already gone out, so ReleaseCart sent it in a license delivery email. If a key is missing from both emails, check on the License keys and activations page whether the license was created.

The links last 72 hours from when the email was sent. The buyer can get fresh links from their customer dashboard.

Can I change the email wording without a theme copy?

Only through translation. The sender name and address are settings, and everything else in the body comes from the templates.