Auto Alt Text
This plugin implements the automatic creation of alt text for images uploaded to the media library. The alt text is generated at the time of uploading the image and it is also possible to generate the alt text for images already present in the media library. To generate the alt text, you can choose to use the artificial intelligence of OpenAI, Anthropic Claude, Google Gemini or Azure, or decide if you simply want to copy the title of the article where the image is uploaded or the name of the image. Clearly, using artificial intelligence will allow for a more accurate and useful alt texts. Features This plugin allows you to generate alt texts in the following ways: – using Openai APIs (the most recently released models and any other compatible model available on your account) – using Anthropic Claude API – using Google Gemini API – using Azure APIs for computational vision; – recovering the title of the image – recovering the title of the article in which the image is uploaded It can also fill in, on the fly, the missing alt texts of the images already published in your content, using the alt text stored in the media library. Getting Started After installing the plugin, click on the ‘Auto Alt Text’ menu item. Choice of Generation Method Select the Generation Method you prefer OpenAI’s APIs In your OpenAI account, retrieve the following data to enter on the options page: – API Key Once the API Key is saved, the list of the models available on your account is retrieved directly from OpenAI, so you can always choose among the up-to-date models. If the model you selected is retired by OpenAI, a notice is displayed in the administration area and the least expensive available model is used as a fallback until you choose a new one. Choose the model you want to use for generating the alt text. Enter a prompt for generating the alt text according to your needs. Claude Anthropic’s APIs In your Anthropic account, retrieve the following data to enter on the options page: – API Key Choose the model you want to use for generating the alt text. Enter a prompt for generating the alt text according to your needs. Google Gemini’s APIs In your Google AI Studio account, retrieve the following data to enter on the options page: – API Key Once the API Key is saved, the list of the models available on your account is retrieved directly from Google, so you can always choose among the up-to-date models. If the model you selected is retired by Google, a notice is displayed in the administration area and the least expensive available model is used as a fallback until you choose a new one. Choose the model you want to use for generating the alt text. Enter a prompt for generating the alt text according to your needs. Azure’s APIs On your Azure account, create a Computer Vision instance and retrieve the following data to enter on the options page: – Computer Vision API Key – Computer Vision Endpoint If you want to generate an alt text in English, save the options without filling in any other fields. If you want to generate an alt text in a different language, on your Azure account, create a Translator instance and retrieve the following data to enter on the options page: – Translator Instance API Key – Translator Instance Endpoint – Translator Instance Region After entering this data, save the options. Select the desired language and save the options again. Title of the article For this generation method, there are no options to set as the alt text will be generated by copying the title of the article in which the image is uploaded. In case the article is not uploaded as an attachment of an article, the “Title of the attachment” method will be used as a fallback. Title of the attachment For this generation method, there are no options to set as the alt text will be generated by copying the title of the image. Functioning Once the plugin is configured, each time an image is uploaded to the media library, an alt text will be automatically set based on the selected generation method. For images already in the media library, you can create bulk alt texts. Open the Media Library in the “list” view, select the images for which to generate the alt text, and choose the “Generate alt text” bulk action. (Depending on the number of images chosen and their weight, this may take some time.) You can also generate the alt text of a single image directly from the media library. Open the Media Library in “grid” mode, choose the image for which to generate the alt text, and click the “Generate alt text” button. In no time the alt text field will be overwritten by the generated description. Automatic alt text rendering in content Images that were inserted in your posts and pages before the alt text was generated keep the empty alt attribute saved in the content, even after the media library has been filled. By enabling the “Automatically render alt text in content” option, when a page is displayed the plugin looks at every image of the content and, for those without an alt text, it writes the alt text stored in the media library (when available). Images that already have an alt text are never touched, and your saved content is not modified in any way: the alt text is only added to the rendered HTML. The option is disabled by default and it is independent of the chosen generation method. Developers can also control this behaviour with two filters: aatxt_content_alt_text_enabled to skip the processing for a specific request, and aatxt_content_image_alt_text to filter the alt text before it is written into the image tag. WP-CLI If you prefer generating alt text in batch (e.g., to avoid processing in the Media Library UI), you can use WP-CLI. This is the recommended way to work on a large media library: the bulk action of the Media Library runs inside a single web request, so depending on your server settings (PHP max_execution_time, PHP-FPM request_terminate_timeout, web server or proxy timeouts) it can be interrupted before all the selected images have been processed. WP-CLI is not affected by those limits, shows a progress bar and can be resumed with --offset. Generate alt text for a list of attachment IDs: wp auto-alt-text generate --ids=123,456,789 Process all image attachments in batches: wp auto-alt-text generate --all --limit=200 --offset=0 wp auto-alt-text generate --all --limit=200 --offset=200 Dry run (no metadata updates): wp auto-alt-text generate --ids=123,456 --dry-run Force overwrite of existing alt text (even if “Keep existing alt text” is enabled): wp auto-alt-text generate --all --limit=200 --offset=0 --force Notice: If you choose one of the methods that involves the use of external APIs, the upload times for images in the media library might increase because it requires sending a request to the APIs, waiting for the external server to process, and waiting for a response. Logging If the generation of the alt text via AI is set, in case of errors, to avoid blocking the editorial work, the image is loaded anyway but without the alt text being compiled. When a call to the OpenAI, Anthropic, Gemini or Azure API fails, a record containing the error message is saved in a custom database table. In this case, the cause of the error can be seen on the Auto Alt Text -> Error log page. External Services This plugin uses the following external services alternatively: OpenAI Selecting the generation method “OpenAI’s APIs” will use the API services of OpenAI. This plugin does not collect any information from your OpenAI account. The data transmitted to OpenAI mainly consists of the image files uploaded to your website and the specified prompt. For accurate information on privacy and conditions of use, please consult the privacy policy and terms and conditions directly on the official website. It is also advisable to check the costs and usage statistics of the API service on the OpenAI website. Anthropic Claude Selecting the generation method “Anthropic’s APIs” will use the API services of Anthropic. This plugin does not collect any information from your Anthropic Claude account. The data transmitted to Anthropic Claude mainly consists of the image files uploaded to your website and the specified prompt. For accurate information on privacy and conditions of use, please consult the privacy policy, terms and conditions for consumers and terms and conditions for commercial directly on the official website. It is also advisable to check the costs and usage statistics of the API service on the Anthropic website. Google Gemini Selecting the generation method “Google Gemini’s APIs” will use the API services of Google Gemini. This plugin does not collect any information from your Google account. The data transmitted to Google mainly consists of the image files uploaded to your website and the specified prompt. For accurate information on privacy and conditions of use, please consult the privacy policy and terms of service directly on the official website. It is also advisable to check the costs and usage statistics of the API service on the Google AI website. Azure Selecting the “Azure’s APIs” generation method will use the API services of Microsoft Azure. This plugin does not collect any information from your Azure account. The data transmitted to Azure consists mainly of image files uploaded to your website. For accurate information on privacy and conditions of use, please directly consult the privacy policy and terms and conditions on the official website. It is also advisable to check the costs and usage statistics of the API service on the Microsoft Azure’s website. Encryption Constants We strongly recommend defining the new plugin-specific constants in your wp-config.php: define( 'AATXT_ENCRYPTION_KEY', 'a_random_string_of_at_least_64_characters' ); define( 'AATXT_ENCRYPTION_SALT', 'another_random_string_of_at_least_64_characters' ); You will find these two define(…) lines already generated for you on the Auto Alt Text » Options page – simply copy & paste them before the /* That's all, stop editing! Happy publishing. */ line in your wp-config.php. If you choose not to add them, the plugin will continue to work normally, but it will fall back to using your WordPress LOGGED_IN_KEY / LOGGED_IN_SALT, which may break if those salts are ever changed. Disclaimer Auto Alt Text is a plugin that helps users automatically generate Alt Texts of their images using AI services such as OpenAI’s ChatGPT or Microsoft Azure. Users need their own API key and must follow the rules set by the AI service they choose. By using Auto Alt Text, users agree to watch and manage AI-made content and address any issues or misuse. AI Engine developer and related parties are not responsible for any problems or losses caused by the use of the plugin or AI-generated content. Credits A big thank you to everyone who has improved this plugin with a pull request: joshuafredrickson – native WP-CLI support for batch alt text generation, and the Media Library bulk action redirect fix that preserves pagination and filters The full list is available on the contributors page. Contributions are welcome: feel free to open an issue or a pull request on GitHub.
Top keywords
- alt50×2.63%
- alt text44×2.31%
- text44×2.31%
- api19×1.00%
- image19×1.00%
- generate17×0.89%
- library15×0.79%
- media15×0.79%
- media library15×0.79%
- openai14×0.74%
- azure13×0.68%
- choose13×0.68%
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