Skip to content
weLabsweLabsStorefront Playbook
Live demoQuickstart

Store admin

Emails and background jobs

Edit the six customer emails the Companion plugin adds to WooCommerce, make sure they are delivered, and keep its scheduled jobs running on time.

The storefront never sends email itself. Account emails (verification, password reset, security alerts) and back-in-stock alerts are sent by WordPress through six standard WooCommerce emails that the Companion plugin adds. Some work, such as sending restock alerts or tidying old data, runs in the background on a schedule. This page covers both.

  • Set the Storefront URL under StoreFront → Settings → General. Every link in these emails points to the storefront. Without it, they fall back to WordPress’s API, which answers with raw JSON instead of a page. See Connect the storefront.
  • Make sure your site can actually deliver email (see below). New customers must verify their email address before they can sign in, so a site that cannot send mail locks new customers out.
WooCommerceSettingsEmails

All six appear in WooCommerce’s email list alongside its own emails, and use your WooCommerce email header, footer and colours. Each is sent to the shopper; there is no recipient to set.

Email When it is sent Default subject Default heading
Email verification A customer registers on the storefront, or asks for the verification email again. The link lasts 24 hours. Verify your email address for {site_title} Confirm your email address
Security alert A stolen sign-in session is suspected (a session token was reused), so the customer is signed out of every device. Security alert for your {site_title} account Suspicious activity detected
Password reset A customer uses “Forgot password” on the storefront. The link lasts 1 hour. Reset your {site_title} password Password reset request
Back-in-stock sign-up: verify email A guest asks to be told when a product is back. The link lasts 24 hours. Signed-in customers don’t get this email. Confirm your back-in-stock alert for {product_name} Confirm your email address
Back-in-stock sign-up: confirmed The guest clicks the confirmation link. Mentions the customer account created for them, if one was. You are on the list for {product_name} We will let you know
Back in stock The product is restocked. Shows the product image, the chosen options and the current price, with a Shop now button. {product_name} is back in stock! Good news — it is back
  1. Go to WooCommerce → Settings → Emails.
  2. Click Manage (or the email’s name) next to the email.
  3. Change the fields you need, then click Save changes.
Setting What it does Default
Enable/Disable Sends or stops this email. Enabled
Subject The subject line. Leave blank to use the default shown above. Blank
Email heading The heading inside the email. Leave blank to use the default. Blank
Additional content Extra text below the main content. See the caution below. Blank
Email type Plain text, HTML or multipart. HTML
Cc(s) / Bcc(s) Extra recipients. Only shown when WooCommerce’s improved email feature is on. Blank

In the subject and heading you can use WooCommerce’s usual placeholders: {site_title}, {site_address}, {site_url} and {store_email}. The three back-in-stock emails also accept {product_name}.

The main wording of each email is in a template file. A developer can override it the usual WooCommerce way, by copying the plugin’s template into the WordPress theme as woocommerce/emails/rsc-*.php (for example rsc-back-in-stock.php). The theme’s copy is used instead of the plugin’s.

WordPress sends mail with the server’s basic mail function by default, and many hosts either block it or land it in spam. For a live store:

  1. Install an SMTP or transactional-email plugin and connect it to a mail service. If you already use the Brevo plugin for the newsletter, it can also send your site’s email.
  2. Use a sender address on your own domain, and add the SPF and DKIM records your mail service asks for.
  3. Send a test email from the SMTP plugin.
  4. Register a test account on the storefront and confirm the verification email arrives and its button opens the storefront.

The Companion plugin schedules a few jobs of its own. None needs any setup, and you will rarely need to look at them.

Job How often What it does
rsc_backfill_brand_primary_category Daily Works out each brand’s main category (from up to 50 of its products) for the brands page’s category badges and filter.
rsc_rebuild_trending_categories Daily, plus once shortly after first install Ranks categories by items sold in the last 30 days, for the home page’s trending categories.
rsc_stock_notifications_cleanup Daily Deletes guest stock-alert sign-ups that were never confirmed, after the number of days set on the Stock alerts tab.
rsc_contact_entries_cleanup Daily Permanently deletes contact entries that have been in the Trash for more than 30 days.
rsc_review_media_cleanup Daily Deletes review photos and videos uploaded more than a day ago but never submitted (up to 100 per run).
rsc_send_stock_notifications Once per restocked product Sends back-in-stock emails, in batches of 50, after the send delay.
rsc_seo_sync_batch When you click Sync SEO Fills SEO blanks between the plugin and Yoast SEO or Rank Math, 500 items per batch.

The daily jobs run through WordPress’s scheduler (WP-Cron). The one-off batch jobs run through Action Scheduler, which comes with WooCommerce, so you can watch them under WooCommerce → Status → Scheduled Actions (groups rsc-stock-notifications and rsc-seo-sync).

Deactivating the plugin unschedules its daily jobs; they are scheduled again when it is next active.

WordPress’s built-in scheduler only runs when someone loads a WordPress page. With a headless store, shoppers visit the storefront, not WordPress, so WordPress may see few visits and jobs can run late. That matters most for back-in-stock emails, which shoppers expect promptly.

The fix is a real cron job: your server calls WordPress’s scheduler on a timer. Most hosts let you add one in their control panel. A developer or your host can:

  1. Add this line to wp-config.php, so WordPress stops relying on visits:

    define( 'DISABLE_WP_CRON', true );
  2. Add a server cron job that runs WordPress’s scheduler every few minutes, for example with WP-CLI:

    Terminal window
    */5 * * * * cd /path/to/wordpress && wp cron event run --due-now > /dev/null 2>&1

    or, without WP-CLI, by requesting wp-cron.php:

    Terminal window
    */5 * * * * curl -s https://your-wordpress-site.example/wp-cron.php?doing_wp_cron > /dev/null 2>&1
  3. After a day, check WooCommerce → Status → Scheduled Actions for past-due actions. There should be none waiting.

To fill in the brands page’s category badges straight away on a new store, rather than waiting for the daily job, a developer can run it once:

Terminal window
wp cron event run rsc_backfill_brand_primary_category
Symptom Likely cause Fix
Email buttons open a page of raw JSON The Storefront URL is not set. Set it under StoreFront → Settings → General.
Customers never receive verification emails The site cannot deliver mail, or the email is disabled. Set up SMTP and check WooCommerce → Settings → Emails.
Restock emails arrive hours late WP-Cron only runs on WordPress visits. Set up a real cron job.
Many past-due actions in Scheduled Actions The scheduler is not running often enough. Set up a real cron job.
Customers got two restock emails WooCommerce’s experimental back-in-stock feature is also on. Remove WOOCOMMERCE_BIS_ALPHA_ENABLED from wp-config.php.
Brand cards show no category The daily brand job has not run yet. Wait a day, or run the job once with WP-CLI.
Storefront Playbook · Built by weLabsFeaturesFAQTalk to us