Able Player, accessible HTML5 media player
This plug-in uses Able Player, an open-source fully-accessible cross-browser HTML5 media player, to embed audio or video within your WordPress page. Instructions for Use There are currently three ways to add an Able Player instance to a WordPress site: Go to Settings > Able Player > Settings and enable the options to use Able Player for all video, audio, and playlists. Able Player will automatically replace MediaElement.js or the default WordPress video/audio blocks with Able Player. Go to Settings > Able Player > Shortcodes to generate an [ableplayer] shortcode. Enter or paste any valid HTML5 Able Player code into your web page. Full documentation is available on the Able Player project page on GitHub. Using the media rewriting in option #1, Able Player will replace any audio or video block. Any tracks added to that block will be automatically handled, giving you support for all the standard Able Player features: captions, navigable transcripts, subtitles, chapters, and audio description. Using option #2, you can create Able Player shortcodes that support most of the basic Able Player features, with support for Vimeo, YouTube, or local video. Option #3 supports the full scope of Able Player features. The [ableplayer] shortcode The [ableplayer] shortcode supports the following attributes. Required attributes (one of these) youtube-id – 11-character YouTube ID or YouTube URL. vimeo-id – Vimeo ID or URL. media-id – An attachment ID for a media file in your WordPress media library or the URL to a hosted video. Additional Player Content captions – Attachment ID or URL to .vtt captions file. Optional pipe separator for language code and label. subtitles – Attachment ID or URL to .vtt subtitles file. Optional pipe separator for language code and label. chapters – Attachment ID or URL to .vtt chapters file. Optional pipe separator for language code and label. descriptions – Attachment ID or URL to .vtt audio descriptions file. Optional pipe separator for language code and label. youtube-desc-id – YouTube URL or ID of a described version of the video youtube-sign-src – YouTube URL or ID of a sign language interpreted accompanying video vimeo-desc-id – Vimeo URL or ID of a described version of the video All captions, subtitles, chapters, and descriptions tracks must be in .vtt format. The shortcode only supports a single set of values for each type of data; to add multiple tracks of the same type you can use the Video block or add custom HTML. Either an attachment ID or a URL for your track .vtt is required; you can optionally add a language code and a custom label: captions="/path/to/file.vtt|es|Español" By default, the language will be your WordPress installation language, with the labels “Captions”, “Subtitles”, “Chapters” or “Audio Description”. Player Options youtube-nocookie – “true” or “false” (use “true” to embed YouTube untracked, for added privacy) autoplay – “true” or “false” (default is “false”) loop – “true” or “false” (default is “false”) playsinline – “true” or “false” (default is “true”). By setting to “false”, some devices (e.g., iPhones) will play the video in their own media player rather than in Able Player. hidecontrols – “true” or “false” (default is “false”). Set to “true” to enable the player controls to fade away during playback. They will appear again if the user hovers over the player or pressing a key, and they are always accessible to screen reader users. poster – the URL of a poster image, displayed before the user presses Play width – a value in pixels (by default, the player will be sized to fit its container) height – a value in pixels (by default, the height of the player will be in proportion to the width) heading – The HTML heading level (1-6) of the visually hidden “Media Player” heading that precedes the player (for the benefit of screen reader users). If omitted, a heading level will be intelligently assigned based on context. speed – “animals” or “arrows” (default is “animals”) start – start time at which to start playing the media, in seconds. Some browsers do not support this. volume – “0” to “10” (default is “7” to avoid overpowering screen reader audio). Some browsers do not support this. seekinterval – number of seconds to forward/rewind with the Forward and Rewind buttons. If omitted, the interval will be intelligently assigned based on length of the video. nowplaying – “true” or “false” to include a “Selected Track” section within the media player (default is “false”). transcript-div – ID attribute of a target element that will contain the video transcript id – a unique id for the player (if omitted, one will be automatically assigned) Examples Example 1 This example uses HTML to add an audio player to the page, with one source (an MP3 file). html Example 2 This example uses HTML to add a video player to the page, with one source (an MP4 file) and four tracks (for captions, descriptions, and chapters in English; and subtitles in Spanish). html Example 3 This example uses the shortcode to add a video player to the page, with one source (an MP4 file) and four tracks (for captions, descriptions, and chapters in English; and subtitles in Spanish). All sources are fetched as WordPress media attachments. html [ableplayer poster="21" media-id="24" captions="25|en|English" subtitles="26|es|Español" descriptions="27" chapters="28"] Example 4 This example uses a shortcode to add a YouTube player to the page, with two versions of the video, one with audio description and the other without (the user can toggle between the two versions using the D button). [ableplayer youtube-id="XXXXXXXXXXX" youtube-desc-id="YYYYYYYYYYY"] Example 5 This example uses a shortcode to add a Vimeo player to the page, with two versions of the video, one with audio description and the other without (the user can toggle between the two versions using the D button). [ableplayer vimeo-id="XXXXXXXXX" vimeo-desc-id="YYYYYYYYY"] The Able Player plugin was originally created by Terrill Thompson.
Top keywords
- player33×3.42%
- video17×1.76%
- able16×1.66%
- able player16×1.66%
- id14×1.45%
- url12×1.24%
- audio11×1.14%
- default11×1.14%
- false11×1.14%
- example10×1.04%
- add9×0.93%
- captions9×0.93%
Bitron Right of Withdrawal
From 19 June 2026, EU member states require every consumer-facing online shop to provide an online withdrawal function — not just static information, but a continuously available electronic interface where the consumer can declare intent to withdraw, and from which the shop sends an automatic confirmation on a durable medium. In Hungary the same rule applies through the amendment of Government Decree 45/2014. Bitron Right of Withdrawal delivers exactly that, accessibly. What the plugin does A continuously available, accessible withdrawal form — embeddable via the [bitrow_form] shortcode or the Withdrawal Form Gutenberg block, so it drops into any classic-editor page, a block-built layout, or a page builder that handles either. Tight WooCommerce integration: the form is surfaced to logged-in customers as a Withdrawal item in their My Account menu, but only while they have at least one order still inside the window — so a customer with nothing eligible doesn’t see a dead link. A withdrawal link is automatically attached to WooCommerce’s customer order emails (processing, completed, invoice) while the window is open — a discreet text link (not a prominent button) to avoid accidental clicks. Its position in the email (top, after the order details, or bottom — bottom by default) and both the surrounding message text and the link label are configurable under Settings → Email. HTML and plain-text variants, with a filter to extend the list of carrier emails. Guest and logged-in customer paths. A logged-in customer sees a select of their own in-window orders. For guests, optional email verification: with the free OneCode Login plugin active, the guest proves they own their email with a one-time code, and the form then loads that email’s orders just like for a logged-in customer — closing the gap where anyone who knew an order number and the billing email could file on someone else’s behalf. When email verification is not in force, an unverified guest is never shown any order data: instead of looking up an order, they file a free-text withdrawal declaration (no order is matched server-side, no line items or totals are disclosed), which is recorded flagged as unverified for the shop to match by hand. Order data is therefore only ever shown to logged-in or email-verified customers. Item-level partial withdrawal. After the customer picks an order, they tick exactly which line items (and quantities) they want to withdraw from — the form is not all-or-nothing. Bank-account capture for non-card payments. When the original gateway can’t refund automatically (e.g. cash on delivery, bank transfer), the customer enters a Hungarian IBAN or domestic GIRO account number — validated client- and server-side with MOD-97 / CDV checks — so the shop has everything to wire the refund manually. Customizable form copy and brand colors. An optional intro paragraph above the form and the submit-button colors (background + text) are configurable from Settings → Form, with a live WCAG contrast meter that announces the ratio as you type so a custom brand color cannot quietly drop below AA. An “advanced” panel additionally exposes the form body text, wrapper background, and input/fieldset border colors for themes that need the form to blend in — these three are not contrast-checked and carry an explicit “you own the contrast” warning. The same values can be overridden per-instance through [bitrow_form] shortcode attributes or the block’s Inspector panel. Automatic confirmation email to the customer (durable medium) and notification to the shop admin, with editable subject and body templates for both — empty fields fall back to safe i18n defaults so the plugin is functional out of the box. The admin notification recipient is a configurable email address (defaults to the site administration email); leave it empty to switch admin notifications off. Optional business-customer exclusion: because the right of withdrawal is a consumer right, shops that also sell to VAT-registered businesses can switch the online form off for orders carrying a business marker (e.g. a VAT-number checkout field). Business buyers are shown a contact pointer instead; consumer orders are unaffected. It’s a technical filter, not legal advice. Per-product and per-category withdrawal exemptions for the CRD §16 / 45-2014 §29 carve-outs (perishables, custom-made, sealed digital downloads, etc.). The withdrawal form still shows exempted items inside an eligible order so the customer sees what they bought, but the quantity input is locked at zero with a visible “Not eligible for withdrawal” badge; orders that consist entirely of exempt items are blocked at step 1 with a contact pointer. A separate Settings → Exclusions tab manages the lists with searchable autocompletes. Exclusion type split — excluded by law vs waivable. The exclusion settings separate two legally distinct cases: “excluded by law” items (perishables, custom-made, opened sealed goods) where the right never applies and no customer action is involved, and “waivable” items where the right exists but the customer can expressly give it up. Each case has its own product and category pickers; existing exclusions keep behaving as “by law”. Checkout withdrawal waiver. For waivable goods (typically digital content), the shop can show a consent checkbox at checkout through which the customer expressly waives the right of withdrawal for the affected items. It appears only when the cart actually contains a waivable item, works on both the classic shortcode checkout and the block-based (Store API) checkout, can be optional or mandatory, and records the consent on the order as evidence (timestamp, IP, a fingerprint of the statement text, the covered products and the mode). Off by default; enable and word it under Settings → Exclusions. “Withdrawals” hub in the customer’s My Account area — a single durable, log-in-gated landing page for everything withdrawal-related: a one-click button to start a new declaration (when the form page is configured), plus the full list of past declarations submitted from the account (reference number, date, order link, items, refund preference, status). The menu item appears only when the customer has at least one past record OR an order still inside the withdrawal window; the list itself is privacy-scoped to the customer’s own account email and never reveals records filed under a different email. Minimal record-keeping with unique BITROW-XXXXXX references for evidentiary value, plus a per-record detail page in the admin. Admin can mark a record as closed (and reopen it) once the case is resolved, with timestamp and the closing user recorded — keeps the working list focused on what’s still pending. Withdrawal status on the order screen. When an order has an associated withdrawal, the WooCommerce order-edit screen shows a “Right of withdrawal” panel with the withdrawal’s status and a direct link to its record. Optional withdrawal column on the orders list. A Settings → General switch (off by default) adds a column to the WooCommerce orders list flagging which orders have a withdrawal and its status (a dash when none). HPOS- and legacy-orders compatible. WCAG 2.1 AA accessibility throughout — programmatic labels, focus management, live regions, sufficient contrast. GDPR integration with WordPress’ personal data export and erase tools, plus a suggested paragraph for the Privacy Policy Guide. Compatibility The plugin integrates with WooCommerce orders. It declares HPOS (High-Performance Order Storage) compatibility and uses the WooCommerce CRUD API throughout. WooCommerce is referenced for compatibility only — the trademark is not used in the plugin name or slug. Important — what this plugin does NOT do This is a technical tool, not legal advice, and does not by itself guarantee legal compliance. The plugin does not generate Terms of Service text, privacy-policy text, or other legal content — those must be prepared by your own lawyer. The confirmation email contains only a factual acknowledgement (received, when, with which ID, what content); any “what happens next” wording is the shop operator’s own policy and must come from you. The plugin records each withdrawal and notifies you, but it does not issue refunds automatically. Refunds remain a deliberate admin action through WooCommerce’s standard refund interface. Privacy The plugin stores only what is necessary to acknowledge and document the withdrawal: name, email, order reference, optional note, timestamps and a unique identifier. No IP address is stored in plain text. On plugin removal the stored records are kept by default (so an accidental deactivation cannot destroy evidence); a setting lets you opt in to deletion at uninstall. Pro version The free plugin covers the full legal compliance core on its own. Bitron Right of Withdrawal Pro adds a convenience and automation layer on top, for shops that process withdrawals regularly: One-click WooCommerce refund — issue the refund straight from the withdrawal record, instead of re-entering it by hand in WooCommerce. Status management and history — a richer status workflow (received, in progress, goods returned, refunded, rejected) with a full audit trail of who changed what and when. Automation rules — define rules that act on incoming withdrawals automatically (status transitions, notifications), so routine cases handle themselves. Custom form fields — add your own fields to the withdrawal form and store them on the record. Searchable admin + CSV export — find any declaration fast and export the list for accounting or reporting. Webhooks — push withdrawal events to your CRM, ERP or any external system in real time. REST API — read and manage withdrawal records programmatically from your own integrations. The Pro plugin is standalone: it contains the full compliance core plus the convenience layer, so you install it instead of the free plugin, not alongside it. Pro adds convenience, not extra compliance — the free plugin already makes you compliant. Learn more and see pricing