Linux 软件免费装
Banner图

Ultimate Downloadable Products for WooCommerce

开发者 ethereumicoio
freemius
更新时间 2026年11月7日 18:52
捐献地址: 去捐款
PHP版本: 8.1 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

woocommerce easy digital downloads downloads digital downloads downloadable products file preview

下载

2.0.0 1.3.1 4.0.0 4.2.0 1.3.0 1.1.0 1.3.3 1.3.4 2.1.0 1.0.0 1.2.0 3.0.0 1.3.5 3.1.0 3.2.0 2.2.0 3.2.1 3.3.0

详情介绍:

Ultimate Downloadable Products shows the files inside a downloadable product before the buyer pays: the list of what is in the download, with the file type, the size and a count, on the product page itself. It works on WooCommerce or Easy Digital Downloads. The name still says WooCommerce because that is where the plugin started and its wordpress.org history lives under this slug, but the platform is a runtime choice, not a requirement: activate the plugin on a shop running either of the two and the download list appears on its product pages. When both are active, WooCommerce is used. This plugin is ideal to sell digital products to show customers what they will get after a purchase. https://youtu.be/QVs3kOco3SE
It can be a valuable addition to your NFT selling store with the NFT WordPress Plugin Kit!

安装:

屏幕截图:

  • Settings: the unlock email, image thumbnails, media samples and archive formats
  • Blurred image thumbnails (Professional)
  • Variable downloadable product: the A2 variation lists its own files (Professional)
  • Variable downloadable product: the A5 variation lists its own files (Professional)
  • ZIP archive contents, expanded folder by folder (Professional)
  • ISO disc image contents, expanded in place (Professional)
  • The `[ultimate-downloadable-list]` shortcode inside a product description
  • The `Downloads preview` product-data tab: thumbnail overrides per product and per download (Professional)
  • Audio download: a short sample played in the downloads list (Professional)
  • Video download: the blurred poster of a short sample (Professional)
  • Video download: the sample opened in a modal window (Professional)
  • Document download: the first page of a PDF as the preview image (Professional)
  • The `Preview` column of the `Downloads preview` panel, with the samples readiness line (Professional)
  • The Server capabilities table: green for the tools this server has, red for the ones it misses (Professional)
  • The settings screen in the Free build: the Professional preview settings are visible, disabled, with an upgrade hint (Free)
  • The release schedule in the Professional build: one schedule for the product and one per file, in the `Unlocks` column of the downloads grid (Professional)
  • The product `Downloads` block in the Free build: `Unlock downloads after (days)`, with the two Professional controls visible, disabled and linked to the upgrade (Free)
  • My Account downloads: a file that has not unlocked yet reads `Available in 7 days` instead of a link, next to one that has
  • What a customer gets when a download is refused before its date: a `403` page that says when the file unlocks and where to go next
  • Download protection on a server that ignores the rule: the red `not protected` badge and the reason, then two separate things — the `.htaccess` rule file the plugin manages, and, under its own heading, the server configuration you paste by hand, with the nginx directive and where inside the `server { … }` block it goes (Free)
  • The same preview settings on a marketplace vendor's own product form: the seller's two uploaded files and, under them, the thumbnail width and blur of the product plus one row per file (Professional)
  • The `Downloadable files (UDP)` block in the block editor: the live preview of the product's files on the canvas and the block's five settings in the sidebar (Free)
  • The same block rendered by a block theme on the front end: three columns of cards, each with its thumbnail or its file-type icon, the name and the size, in a block-theme page with no shortcode anywhere in the content (Free)
  • Download analytics: how often the shop's previews were opened and their samples played, in total and over the last 30 days (Professional)
  • The same download list on an Easy Digital Downloads download: one labelled group per price option, `Standard` and `Extended`, with the files each option includes and their sizes measured on disk (Free)
  • The release schedule on Easy Digital Downloads: the receipt a buyer lands on after paying, where each file carries `Available in 5 days` under its link — the sentence is the plugin's, EDD prints the links itself (Free)

常见问题:

Does it work with Easy Digital Downloads?

Yes. Since 4.0.0 the plugin shows the download list on Easy Digital Downloads' own download pages as well as on WooCommerce product pages, and the Professional previews (thumbnails, archive contents, audio/video/document samples) work on both. What changed is the activation rule: the plugin no longer declares a hard WooCommerce dependency and no longer refuses to activate without it, because the platform is now picked at runtime — WooCommerce when it is active, Easy Digital Downloads when it is the one that is active.

Can I run WooCommerce and Easy Digital Downloads on the same site?

Please don't: the plugin works with one shop platform per site. On a site where both are active it uses WooCommerce and leaves Easy Digital Downloads alone, which means EDD downloads get no file list, no previews, no per-product settings and no release schedule. The plugin does not break anything in that state — it prints one admin notice naming the platform it is using and what the other one loses, so the situation is visible instead of silent. Deactivate the platform you are not selling with.

What happens if neither WooCommerce nor Easy Digital Downloads is active?

The plugin activates, does nothing on the front end, and prints one admin notice in the dashboard naming the platforms it can work with and linking to the plugins screen. The settings and diagnostics screens keep working, so the notice is not the only place to read the state: wp udp status says Platform: none.

Why do EDD price options appear as several lists?

Because that is how Easy Digital Downloads stores files. A download with variable prices has files attached to a price option, and a file whose condition is all belongs to every option — so EDD itself considers it part of each price, and the plugin prints it under each one, exactly as EDD would hand it out. WooCommerce variable products behave the same way: one list per variation.

Are per-file preview settings kept when I reorder EDD files?

Yes. On Easy Digital Downloads a file has no id of its own, so a per-file setting is attached to the file's condition plus the file itself, never to its row number. Adding, removing or reordering files in the EDD download keeps every setting with the file it was made for.

What is the shortcode?

[ultimate-downloadable-list] prints the download list of the product being displayed. The Downloads tab renders the same list, so the tab and the shortcode never disagree.

Does it work with variable products?

Yes, in the PRO version: each downloadable variation is listed under its own name.

Can I use the shortcode or the block in a block theme?

Yes, both. The block needs no shortcode at all in a single-product template and is the expected way in the site editor; the shortcode still works inside a block template, and outside the loop with product_id. Both render the same list.

Is there an API for a headless storefront?

Yes: GET /wp-json/wc/v3/products/{id}/downloads returns the five public fields of each file. See the REST section above — a scheduled file comes back without its download_url, exactly as it would be hidden on the product page.

How do I see which previews customers actually open?

In the PRO version every preview opened and every sample played is counted per product. WooCommerce → Download analytics lists them with the last 30 days per product, wp udp stats (with the product id) prints one product's counters, and wp udp status prints one summary line. The counts are a plain product meta row, so they survive an update of the plugin, and a preview being opened is never a download: the counters say what was looked at, not what was bought.

Does this stop a customer from downloading before the date?

Yes, for the shop's own download link. Until the unlock instant WooCommerce's download URL answers 403 with a page that says when the file opens and links back to My Account, and the My Account list shows "Available in N days" as text instead of a link. A refused attempt costs the customer nothing: it does not consume a download, does not appear in the download log, does not change the remaining count, and a media or range request (Range: bytes=...) is refused the same way instead of being served in slices. What the plugin controls is the link WooCommerce hands out — the file itself is the next question.

Can a customer download a file before the date?

Not through the shop; and on a protected server, not by copying the file URL either. The plugin writes a rule that blocks direct requests to wp-content/uploads/woocommerce_uploads/, checks once a day that the rule really works, and shows the result on its settings screen. On servers that ignore .htaccess (nginx, most CDNs) the plugin cannot write the rule: it shows you the exact snippet to paste and keeps a warning in your dashboard until the check passes. Use "Force downloads" rather than "Redirect only" — the redirect method hands the file URL to the browser by design, so no rule can protect it. This is not encryption: a file that was already downloaded stays downloaded.

Why did the unlock email arrive late?

The unlock email is a WP-Cron event scheduled for the unlock instant, and WP-Cron runs when somebody visits the site. If DISABLE_WP_CRON is set in wp-config.php and no system cron calls wp-cron.php, the event stays pending in the cron option — it is late, never lost, and it goes out with the next cron run whenever that happens. So that a waiting customer is not made to wait for a cron run, the same check also runs on the My Account downloads page: the mail leaves the first time the customer looks there, at most once an hour per site. Two switches have to be on: "Email the customer when a download unlocks" in the plugin settings, and the "Download ready" email in WooCommerce → Settings → Emails. Turn either off and the schedule still works, silently.

Do I need WooCommerce Subscriptions?

Only for the subscription-aware lock, which is a Professional feature. Without WooCommerce Subscriptions the plugin never looks at subscriptions and a schedule counts from the order. With it, a file stays locked while the subscription is on hold, cancelled or expired, and a renewal does not restart the schedule: the delay counts from the subscription's start, not from the last payment. Verified against WooCommerce Subscriptions 7.6.0.

Why are my image thumbnails missing?

The GD PHP module is required to generate them. The settings screen ends with a Server capabilities report, and wp udp status prints the same matrix from WP-CLI — both are the first thing to check.

What do the audio, video and document previews need?

Audio samples need both the ffmpeg and the ffprobe commands, and video samples need them too; without both, audio and video downloads keep the file type icon, the file size and the file count. Document page images need poppler-utils (the pdftoppm command) or the Imagick PHP extension built with its PDF delegate; when only pdftotext is available the download shows a text excerpt instead of an image. Documents are PDF only — DOCX, ODT and other office formats keep the file type icon row, because rendering them would need a separate office suite on the server. The samples are also bounded on purpose: the file must be stored under wp-content (a remote download is never sampled), and a source shorter than the sample length plus ten seconds is never sampled, because the sample would be the product. Generation runs in the background, so a freshly saved product may show icons until WP-Cron catches up; wp udp previews media generates the samples from WP-CLI, and the product panel's readiness line says how many are still pending. The settings screen and wp udp status report which of these tools this server actually has.

What are the requirements?

PHP 8.1 or newer, WordPress 6.0 or newer, and either WooCommerce 7.0 or newer or Easy Digital Downloads 3.7.2 or newer (the version this release was tested against; 3.6 and earlier are not verified). Thumbnails need the GD module, the RAR and ISO formats need the matching PHP modules (see below). Audio, video and document previews need extra command line tools — see the preview question above.

Why does the plugin need to write a file to my uploads folder?

Because the link is not the only way to a file. WooCommerce keeps downloads in wp-content/uploads/woocommerce_uploads/, which your web server serves without PHP — no plugin hook is in that path, so a copied URL would work no matter what the schedule says. On an Apache-compatible server (Apache, LiteSpeed) the plugin therefore adds its own marked block to the .htaccess in that folder, adds an index.php there when the folder has none, and on uninstall removes exactly its own block. Lines it did not write are never touched: a php_value directive or a hotlink rule your host put there survives verbatim. Files stored on a remote host or a CDN are not in that folder and are not covered.

What if my server is nginx?

nginx ignores .htaccess, and the plugin does not write server configuration it does not own. The settings screen shows the exact snippet for nginx — location ^~ /wp-content/uploads/woocommerce_uploads/ { deny all; }, or internal; when you use X-Sendfile / X-Accel-Redirect — plus the Caddy and the IIS web.config versions, and it keeps a warning in your dashboard until the check passes. That warning is printed by Ultimate Downloadable Products for WooCommerce itself, because it is this plugin's own daily check that produced it — it is not a WordPress or WooCommerce notice. After saving the snippet, reload the web server and press "Check again".

Why is the warning still there after I added the rule?

Because the plugin believes a measurement, not the file it wrote. Once a day — and every time you press "Check again" — it puts a small temporary .txt file into the downloads folder and requests it over HTTP. 403 or 404 means protected; a 200 or a redirect means a browser can still fetch the file; a timeout, a 401 or a server error means it could not verify, and "could not verify" is never shown as protected. So if the warning survives, one of three things is true: the web server was not reloaded, it is not reading that file, or the site cannot reach itself over HTTP. The same state is written to the WooCommerce log and printed by wp udp status.

Are the downloads protected behind a CDN?

Partly, and the plugin says so where it matters. The rule protects the origin folder. A copy a CDN has already cached keeps being served from the CDN's own URL until that cache is purged — the rule cannot purge it. A file stored on a remote host (a CDN URL in the product's download row) was never in the uploads folder, so no rule on your server applies to it at all; the settings screen names such a file when your shop has one.

How to configure server to support RAR, 7z or ISO?

Follow recommendations from this guide please. Contact the PRO version support for help.

更新日志:

4.2.0 4.0.0 3.3.0 3.2.1 3.2.0 3.1.0 3.0.0 2.2.0 2.1.0 2.0.0 1.3.5 1.3.4 1.3.3 1.3.2 1.3.1 1.3.0 1.2.0 1.1.0 1.0.0