Setting Up WooCommerce for Digital Downloads

Here’s how to configure WooCommerce digital downloads end-to-end: Download methods, secure file links, limits/expiry, and large-file delivery. If you’re using (or searching for) a WooCommerce digital downloads plugin, this guide also shows what core WooCommerce already handles and where add-ons can help.

How do I set up WooCommerce for selling digital downloads? Give me a detailed, step-by-step guide.

Step-by-step setup

  1. Install WooCommerce → run the setup wizard (currency, payments).
  2. Choose download method (WooCommerce → Settings → Products → Downloadable products):
    • Force downloads (PHP) — simple and secure for small/medium files.
    • X-Accel-Redirect / X-Sendfile — fastest/most reliable if your server supports it.
    • Redirect only — least secure (avoid for paid files).
  3. Add a product (Products → Add New):
    • Check Virtual and Downloadable.
    • In Downloadable files, click Add file, attach/upload the file, and give it a customer-friendly name.
    • Set Download limit and Expiry (recommended).
  4. Access rules (same settings page):
    • Enable Grant access to downloadable products after payment.
    • Optionally Require login to download to prevent link sharing.
  5. Email links → ensure the Completed order email is enabled (WooCommerce → Settings → Emails) and includes the download links.
  6. Test a full order (use a $0 test item or sandbox gateway) to verify the file link works.

Protect file URLs (.htaccess example)

Block direct access to files in a protected folder if you’re using Apache:

<FilesMatch "\.(zip|pdf|mp3|mp4)$">
  Order Allow,Deny
  Deny from all
</FilesMatch>

Prefer Force downloads or X-Accel/X-Sendfile so WooCommerce serves files without exposing their true path.

Which plugins should I use for WooCommerce digital downloads?

Recommended plugins (when core isn’t enough)

WooCommerce vs. EDD (don’t mix them)

WooCommerce is great if you sell physical and digital products or already use its ecosystem. Easy Digital Downloads (EDD) is a separate platform aimed at digital-only stores—use it instead of WooCommerce for pure digital catalogs, not alongside it on the same products: Easy Digital Downloads.

Tip: stick with core WooCommerce features where possible (Forced Downloads or X-Sendfile/X-Accel), then add the smallest plugin set that solves your specific need (freebie bypass, tracking, memberships, or subscriptions).

My files are large and downloads time out or stop at 100MB. How do I make WooCommerce digital downloads more reliable?

Large files & reliability

  • Use X-Accel-Redirect / X-Sendfile when available (offloads delivery to the web server instead of PHP).
  • Host files on object storage/CDN and serve via secure URLs when file sizes are very large.
  • Bump server limits (hosting panel or php.ini): max_execution_time, memory_limit, client_max_body_size (Nginx), LimitRequestBody (Apache).
  • Keep filenames simple (no spaces/special chars) and avoid very long paths.
  • Test with a real order; confirm links in the “Completed order” email download fully on desktop + mobile.

Nginx X-Accel example

location /protected-downloads/ {
    internal;
    alias /var/www/protected-downloads/;
}

Then store files in /protected-downloads/ and let WooCommerce map download requests to that internal location.

Can I offer free digital downloads without checkout?

Free downloads (no checkout)

  1. Core option: create a $0 Virtual + Downloadable product and allow “Grant access after payment” (orders auto-complete in many setups).
  2. Frictionless option: use a dedicated “free downloads” add-on to bypass cart/checkout and deliver a secure link directly.
  3. Still secure links: keep Force downloads enabled and set limits/expiry even for free files.

Tip: capture an email before download if you want to build an audience, or keep it truly one-click for promo files.

Need human WordPress help?

WP Assistant is a free tool created by Atiba Software, a WordPress design and development company located in Nashville, TN. If you need more personalized WordPress assistance let us know, and we’ll get back to you ASAP!