
Large button style with file size and extension icon.
Quick Download Button lets you add professional download buttons anywhere on your WordPress site with minimal effort. Whether you are sharing PDFs, music, software, videos, or archives, every aspect of the button — style, colour, icon, countdown, and access rules — is controlled from a clean settings panel or a single shortcode.
Seven button styles
Countdown timer and popup modal
Set a wait time in seconds before the download starts. During the countdown an animated spinner and optional message keep the visitor informed.
Add a popup modal to display any content while the countdown runs — AdSense, banner ads, custom HTML, shortcodes, or any other embed code. You control whether the visitor can dismiss the popup early or whether it stays until the download fires automatically.
Full feature list
[quick_download_button_group] shortcode — place multiple buttons side by side with gap, alignment, and stack-on-mobile controlsSupported file types for automatic icon display:
pdf, `mp3`, `mov`, `zip`, `txt`, `doc`, `xml`, `mp4`, `ppt`, `htm`, `html`, `ps`, `tex`, `csv`, `xlsx`, `pptx`, `js`, `css`, `php`, and common images (`png`, `gif`, `jpg`, `jpeg`, `bmp`).
Developer-friendly
The plugin exposes several action and filter hooks so add-on plugins can extend it without editing core files:
qdb_editor_localize_data — add data to the Gutenberg editor scriptqdb_localize_script_data — add data to the frontend scriptqdb_shortcode_atts — modify parsed shortcode attributesqdb_user_can_access — override or extend the access checkqdb_button_data_atts — inject extra data-* attributes onto the button elementqdb_shortcode_output — filter the final button HTML before output[quick_download_button title="Download" url="https://yoursite.com/wp-content/uploads/file.pdf"]
[quick_download_button title="Download" url_external="https://example.com/file.zip" open_new_window="true"]
[quick_download_button title="Download" url_external="https://example.com/file.zip" wait="15" msg="Please wait 15 seconds..."]
The popup content goes between the opening and closing shortcode tags. It can include HTML, shortcodes, or ad embed code.
[quick_download_button title="Download" url_external="https://example.com/file.zip" wait="15"]<h3>Sponsored by Example Co.</h3><p>Check out our latest offer.</p>[/quick_download_button]
To prevent the visitor from closing the popup before the download starts:
[quick_download_button title="Download" url_external="https://example.com/file.zip" wait="15" popup_closable="0"]Ad or message here[/quick_download_button]
[quick_download_button_group alignment="center" gap="16"]
[quick_download_button title="Download v1.0" url_external="https://example.com/v1.zip"]
[quick_download_button title="Download v2.0" url_external="https://example.com/v2.zip"]
[/quick_download_button_group]<h3>More Shortcode Examples</h3>
Auto-calculate file size (file must be in your WordPress uploads folder)
[quick_download_button file_size="1" title="Download" url="https://yoursite.com/wp-content/uploads/file.pdf"]
Manual file size (works with any URL, including external)
[quick_download_button file_size="14.5 MB" title="Download" url_external="https://example.com/file.zip"]
Hide the file extension icon
[quick_download_button title="Download" extension="0" url="https://yoursite.com/wp-content/uploads/file.pdf"]
Show file extension icon and text label
[quick_download_button title="Download" extension="1" extension_text="1" url="https://yoursite.com/wp-content/uploads/file.pdf"]
Change button style
[quick_download_button button_type="pill" title="Download Now" url_external="https://example.com/file.zip"]
Available values: large, mid, small, basic, pill, card, ghost
Custom colours
[quick_download_button button_type="ghost" color_bg="#0073aa" color_font="#ffffff" panel_color="#f0f8ff" title="Download Now" url_external="https://example.com/file.zip"]
Custom border
[quick_download_button button_type="small" border_width="2" border_style="solid" border_color="#333333" border_radius="9" title="Download" url_external="https://example.com/file.zip"]
Change icon colour (dark/light)
[quick_download_button button_type="large" color_icon_dark="false" color_bg="#000000" color_font="#ffffff" title="Download" url_external="https://example.com/file.zip"]
Place icon on the right
[quick_download_button icon_position="right" title="Download" url_external="https://example.com/file.zip"]
Restrict to logged-in users
[quick_download_button user_must_be="loggedin" title="Members Only Download" url_external="https://example.com/file.zip"]
Restrict to a specific role
[quick_download_button user_must_be="subscriber" title="Download" url_external="https://example.com/file.zip"]
Countdown with file size and message
[quick_download_button button_type="basic" wait="10" msg="Your download will begin shortly..." file_size="40 MB" title="Download Now" url_external="https://example.com/file.zip"]
Button alignment
[quick_download_button align="center" title="Download" url_external="https://example.com/file.zip"]
Stacked button group, mobile-friendly
[quick_download_button_group layout="stack" alignment="left" gap="8"]
[quick_download_button title="Windows" url_external="https://example.com/app-win.zip"]
[quick_download_button title="macOS" url_external="https://example.com/app-mac.zip"]
[quick_download_button title="Linux" url_external="https://example.com/app-linux.tar.gz"]
[/quick_download_button_group]<h3>For Developers: Using in a Theme or Template File</h3>
echo do_shortcode('[quick_download_button title="Download" url="https://yoursite.com/wp-content/uploads/file.pdf"]');<h3>Shortcode Attributes Reference</h3>
Attribute
Description
Default
Example value
`title`
Button label text
`”Download”`
`”Download Now”`
`url`
URL of a file in your WordPress uploads folder
—
`”https://yoursite.com/wp-content/uploads/file.pdf”`
`url_external`
URL of a file hosted outside WordPress
—
`”https://example.com/file.zip”`
`file_size`
`”1″` auto-detects size; any other value is displayed as-is
—
`”1″` or `”14.5 MB”`
`extension`
Show (`”1″`) or hide (`”0″`) the file type icon
`”1″`
`”0″`
`extension_text`
Also show the extension as text next to the icon
`”0″`
`”1″`
`open_new_window`
Open link in a new tab
`”false”`
`”true”`
`wait`
Seconds before the download starts
`0`
`”15″`
`msg`
Message shown during the countdown
`”Please wait…”`
`”Loading…”`
`button_type`
Button style
`”large”`
`large` / `mid` / `small` / `basic` / `pill` / `card` / `ghost`
`color_bg`
Button background colour
—
`”#ffc107″`
`panel_color`
Panel/card background colour (pill, card, ghost styles)
—
`”#f0f8ff”`
`color_font`
Button text colour
—
`”#ffffff”`
`color_icon_dark`
Use dark icon (`”true”`) or light icon (`”false”`)
`”true”`
`”false”`
`icon_id`
Built-in download icon
`”default”`
`default` / `cloud` / `circle` / `file-dl` / `inbox` / `save` / `bolt` / `folder` / `archive` / `info` / `chip`
`file_size_icon_id`
Built-in file size icon
`”folder”`
same set as `icon_id`
`icon_position`
Icon side of the button label
`”left”`
`”right”`
`border_width`
Border thickness in pixels
—
`”2″`
`border_style`
CSS border style
—
`”solid”`
`border_color`
Border colour
—
`”#333333″`
`border_radius`
Corner rounding in pixels
—
`”9″`
`align`
Button alignment on the page
—
`left` / `center` / `right`
`padding`
Vertical padding in pixels
—
`”12″`
`user_must_be`
Restrict access by role or login
—
`”loggedin”` / `”subscriber”`
`validate_msg`
Error message shown when access is denied
—
`”Members only.”`
`popup_closable`
Allow (`”1″`) or prevent (`”0″`) dismissing the popup before countdown ends
—
`”1″`
The popup_content is passed as enclosed shortcode content (between the opening and closing tags), not as an attribute. This allows unrestricted HTML, ad code, and nested shortcodes.
Attribute
Description
Default
Example value
`layout`
`”horizontal”` (side by side) or `”stack”` (column)
`”horizontal”`
`”stack”`
`stack_on_mobile`
Automatically stack buttons vertically on small screens
`”true”`
`”false”`
`alignment`
Justify the buttons within the row
`”left”`
`left` / `center` / `right`
`gap`
Gap between buttons in pixels
`”12″`
`”20″`
If Quick Download Button saves you time and you’d like to support its development, buy me a coffee. Thank you!
To report issues or contribute, visit the GitHub repository.