Description
Ask your visitors for their details before a PDF downloads. You build the form, each request arrives in your inbox, and the file is handed out through a signed link that expires, so the link someone forwards stops working instead of living forever.
Add your PDF catalogs, coupons or price lists, and drop a download button anywhere with a shortcode or a data attribute on any existing button.
Download form
- A form opens when a visitor clicks a download button, and the PDF opens once they send it
- Build it yourself with the basic fields: name, email, text, paragraph, number, dropdown, single choice, checkboxes, and a consent checkbox that links to your privacy policy
- Reorder fields by dragging or with the keyboard, mark them required, add help text, and see a live preview as you edit
- Write your own title, introduction, button label and thank-you message, and pick the button colors
- Each request arrives by email with every answer, and replying writes straight to the visitor
- Spam protection: a hidden trap field, a limit per visitor and optional Cloudflare Turnstile
- Accessible dialog: keyboard focus stays inside, Esc closes it, and errors are announced next to each field
- Works with page caching, and uses your theme’s font so it matches your site
Protected downloads
- Add as many PDF catalogs as you like, one at a time
- Every PDF is stored in a private folder with an unguessable name and served only through a signed link that stops working after 30 minutes
- Shortcode
[catr_download_button id="123"], plus adata-catr-catalog="123"attribute for any button or link - Native WordPress admin screens, and a download button that inherits your theme’s style
Free and Pro
This plugin is complete on its own: it protects your PDFs and emails you every request. Catalog Rocket Pro is a separate commercial add-on that works on top of it and adds:
- Leads: every request saved in a list you can search and export to CSV, and sent to several people or to a different inbox for each catalog
- Metrics: downloads, requests and conversion rate for each catalog, and the campaign every lead came from
- More fields: phone with country code and validation, website, date, country and state, hidden campaign fields, headings, fields that show up depending on an answer, and two-column layouts
- Ways to ask: an optional form, the file sent to the visitor’s email, returning visitors remembered, and a different form or mode for each catalog
- Your brand: every color, rounded corners, Google Fonts served from your own site, field styles, your logo, a blurred backdrop, and a form that slides in from the side or rises from the bottom on phones
- Big catalogs: PDFs larger than your hosting allows, bulk import, catalog export, and your own link duration
Catalog Rocket Pro can be tried free for 14 days, and its forms can be tried in a live demo.
External services
This plugin can use Cloudflare Turnstile to tell people from bots on the download form. It is off by default and only runs when you enter your own Turnstile site key and secret key under Catalogs Settings.
When it is on, the page with the form loads Turnstile’s script from Cloudflare (challenges.cloudflare.com), which runs its check in the visitor’s browser. When the form is sent, your site sends Cloudflare the check’s answer and the visitor’s IP address to confirm the result. Cloudflare’s terms of service and privacy policy apply.
No other data leaves your site: the answers to the form are sent by email from your own server.
Screenshots



Installation
- Install the plugin from Plugins Add New, or upload the
templates-rocket-catalog-managerfolder to/wp-content/plugins/. - Activate it.
- Go to Catalogs to add your first PDF catalog.
- Place a button with the shortcode
[catr_download_button id="X"](replace X with the catalog ID), or adddata-catr-catalog="X"to any existing button. - Adjust the form under Catalogs Download form.
FAQ
-
Where do the visitor’s answers go?
-
To your inbox. Each request arrives by email at the address you choose under Catalogs Download form, or at the site admin email, and replying to it writes to the visitor. This plugin does not store the answers in your database. Catalog Rocket Pro keeps them in a list you can search and export.
-
Can I skip the form for some catalogs?
-
In this plugin the form is on or off for the whole site. Catalog Rocket Pro lets you choose for each catalog: a form, an optional form, the file sent by email, or no form at all.
-
Does the form work with page caching?
-
Yes. The download request does not depend on a token printed in the page, so cached pages keep working. Bots are stopped by a hidden trap field, a limit of 10 requests every 10 minutes per visitor and, if you add your keys, Cloudflare Turnstile.
-
I updated from an earlier version. Did anything change for my visitors?
-
Only the link duration. On sites that already had catalogs, the form starts switched off and downloads work as before, through links that now always last 30 minutes. Turn the form on under Catalogs Download form when you are ready.
-
Is there a limit on the number of PDFs?
-
No. Add as many catalogs as you like.
-
Are the PDF files really protected?
-
Yes, both the link and the file. Every download is handed out as an HMAC-signed link that stops working after 30 minutes, so a link that gets forwarded or posted somewhere is dead by the time anyone else opens it.
Every PDF you add is stored in a private folder with an unguessable name, so the only way in is through a valid link. A PDF you add with Upload PDF never has a public URL. A PDF you pick from the Media Library is copied into the private folder, and the original stays in the Media Library with its normal URL; the catalog row marks it as a Public copy, with a button to remove it.
-
Does it work with my page builder?
-
Yes. Use the shortcode, or add
data-catr-catalog="ID"to any button or link from your theme or page builder. -
The shortcode outputs a plain button that inherits your active theme’s button styling, so it matches the rest of your site. Add your own CSS class with the
classattribute if you want.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Protected PDF Downloads – Download Form, Lead Capture & Expiring Links” is open source software. The following people have contributed to this plugin.
ContributorsInterested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.2.0.1
- Fixed: the download form opens above everything else on the page. A cookie notice or a chat button could cover its button until the visitor dealt with them. Older browsers without popover support keep the previous behavior.
1.2.0
- New: a download form. Visitors fill it in before a catalog downloads, and each request arrives by email with every answer. Replying writes to the visitor.
- New: form builder under Catalogs Download form, with the basic field types, drag-and-drop or keyboard ordering, required fields, help text, your own texts and button color, and a live preview.
- New: spam protection for the form, with a hidden trap field, a per-visitor limit and optional Cloudflare Turnstile. A new setting says whether the site sits behind a proxy such as Cloudflare, so the limit counts real visitors.
- On sites that already had catalogs, the form starts switched off, so downloads work as before until you turn it on.
- Changed: download links now always last 30 minutes. The download counter, bulk import, the catalog list export and the link duration setting are now part of Catalog Rocket Pro.
- The download script no longer loads jQuery on your pages.
- Fixed: “View PDF” on the Catalogs screen did not open PDFs that were uploaded, or whose public copy was removed. It now opens every catalog through a signed link. The “Copy URL” button, which copied a file name or the public copy’s address, is gone; the shortcode and the attribute are still one click to copy.
- Fixed: editing a catalog whose PDF was uploaded turned its file name “catalog.pdf” into “http://catalog.pdf”. File names changed that way are repaired on update. The files themselves were never affected.
- If a cached page was built before the form was turned on, a click on a download button now asks to reload the page instead of reporting empty fields.
- Fixed: after a site moves to another server, downloads keep working. Each PDF is found under the new uploads folder and its record is repaired; “Remove public copy” and deleting a catalog find the file there too.
1.1.20.1
- Fixed: if Catalog Rocket Pro 1.0.21.1 or later was deleted with the choice to keep your catalogs, deleting the free edition afterwards now keeps them too.
- Fixed: deleting the free edition while Catalog Rocket Pro is installed no longer resets the link expiry setting the two editions share.
- Tested with WordPress 7.1.
1.1.20
- Fixed: on catalogs created before 1.1.19, “Remove public copy” deleted the Media Library file the catalog was still using, so its download stopped working. The file is now copied into the private folder first, and if that copy cannot be made, nothing is deleted.
1.1.19
- PDFs you upload are now stored privately, in a folder with an unguessable name, and served only through the signed link. Until now the file kept the public URL it had in your Media Library.
- “Upload PDF” now uploads straight into that private store, so no public copy is ever created.
- Importing from the Media Library still works: the file is copied into the private store and the catalog row tells you a public copy is left behind, with a button to remove it when you choose. Nothing is deleted on your behalf.
- Uploads are checked to be real PDFs, not just files named .pdf.
- Deleting a catalog now also removes its private file.
1.1.18
- Fixed: on sites with page caching, the download button could stop working until the cache was cleared. The button no longer relies on a security token that expires inside the cached page. Downloads are still served through the same signed, expiring links.
1.1.17
- Added a Settings link to the plugin’s row on the Plugins screen for quicker access.
1.1.16
- Added a dismissible upgrade banner on the Catalogs screen that highlights Catalog Rocket Pro’s lead capture. “Not now” hides it for two weeks.
1.1.15
- Improved the review request with clearer choices (leave a review / not now / already did) and a support link.
1.1.14
- Creating a catalog now correctly says “Catalog created” (it previously said “updated”).
- Actions that fail (save, delete, load) now show an error instead of doing nothing silently, and the list no longer gets stuck on “Loading…”.
- Bulk import: the “Create” button is hidden when nothing is pending (no “Create 0 catalogs”), and the queue is locked while it runs.
- The download button is hardened against double-clicks (which could open duplicate tabs), and the download counter only counts a real, served file.
1.1.13
- Updated “Tested up to” to WordPress 7.0.
1.1.12
- Hardened downloads: signed-link handling now enforces strict path containment and fails closed if a file resolves outside the protected catalog folder.
- Added compatibility guards so the plugin degrades safely instead of erroring on unexpected environments.
- Schema migration now runs automatically on update to keep the catalogs table current.
- Improved multisite compatibility.
- Fixed: “Tested up to” now reports a valid WordPress version.
1.1.11
- Fixed: on some browsers the catalog download could be blocked by the pop-up blocker; the download now opens reliably.
1.1.1
- Added a friendly review request after two weeks of use.
1.1.0
- Added an in-plugin overview of Catalog Rocket Pro features on the Catalogs screen.
1.0.0
- Initial release.
