textdomain_mismatch
textdomain mismatch
A translation or text-domain pattern does not match WordPress internationalization expectations.
Why It Shows Up
Plugin Check found missing text domains, mismatched domains, missing translator comments, variable-only strings, placeholder issues, or deprecated translation loading patterns.
Why It Matters
Translation issues make the plugin harder to localize and can break strings for non-English WordPress users.
How to Fix
- Use the plugin slug as the text domain unless the plugin intentionally declares a different one.
- Keep translatable strings literal and move variables into placeholders.
- Add translator comments before strings with placeholders or ambiguous context.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #801 | Bopo – WooCommerce Product Bundle Builder | 66 | 137 | 135 | 1k+ | Text Domain Mismatch | ||
| #802 | Custom Posts Per Page Reloaded | 66 | 40 | 3 | 700 | Text Domain Mismatch | ||
| #803 | IranDargah Payment Gateway for Woocommerce | 66 | 66 | 26 | 400 | Text Domain Mismatch | ||
| #804 | Shortcode for Current Date | 66 | 27 | 12 | 10k+ | Text Domain Mismatch | ||
| #805 | TAO Schedule Update | 66 | 37 | 11 | 2k+ | Text Domain Mismatch | ||
| #806 | User Profile Picture | 66 | 9 | 8 | 4k+ | Missing nonce verification | ||
| #807 | Breadcrumbs Divi Module | 67 | 44 | 38 | 10k+ | Text Domain Mismatch | ||
| #808 | Editoria11y Accessibility Checker | 67 | 69 | 55 | 1k+ | Text Domain Mismatch | ||
| #809 | GravityExport Lite for Gravity Forms | 67 | 48 | 14 | 10k+ | Output is not escaped | ||
| #810 | Hide Page And Post Title | 67 | 11 | 8 | 40k+ | Output is not escaped | ||
| #811 | Kraken.io Image Optimizer – Compress, Convert to WebP & AVIF, Resize & Bulk Optimize | 67 | 293 | 80 | 9k+ | Text Domain Mismatch | ||
| #812 | Mosaic Gallery – Advanced Gallery | 67 | 45 | 79 | 3k+ | Non-prefixed global variable | ||
| #813 | Printful Integration for WooCommerce | 67 | 218 | 76 | 50k+ | Text Domain Mismatch | ||
| #814 | WP Forms + Sprout Invoices – Easy Invoice & Quote Submissions | 67 | 40 | 12 | 400 | Text Domain Mismatch | ||
| #815 | Payment Gateway for Cpay with WooCommerce | 67 | 67 | 26 | 400 | wp function not compatible with requires wp | ||
| #816 | ACF: Yandex Maps Field | 68 | 73 | 10 | 800 | Text Domain Mismatch | ||
| #817 | Book Previewer for Woocommerce | 68 | 23 | 40 | 1k+ | Non-prefixed global variable | ||
| #818 | Expire Sticky Posts | 68 | 16 | 8 | 1k+ | Text Domain Mismatch | ||
| #819 | Featured Video for WooCommerce | 68 | 40 | 13 | 700 | Text Domain Mismatch | ||
| #820 | Free Assets Library – Openverse/Pixabay 600+ Million Images | 68 | 44 | 36 | 4k+ | Text Domain Mismatch | ||
| #821 | Guestplan Booking Widget | 68 | 43 | 6 | 1k+ | Text Domain Mismatch | ||
| #822 | Mailster Contact Form 7 | 68 | 35 | 20 | 1k+ | Text Domain Mismatch | ||
| #823 | POS Entegratör – Gurmehub Ödeme Eklentisi | 68 | 1,321 | 69 | 1k+ | Text Domain Mismatch | ||
| #824 | Custom Form Builder, Contact Forms, Payment Forms, Surveys, Polls | 68 | 21 | 18 | 900 | Output is not escaped | ||
| #825 | Smartarget – Chat Buttons & Engagement Apps | 68 | 31 | 11 | 1k+ | Non Singular String Literal Domain | ||
| #826 | WP and Divi Icons | 68 | 201 | 56 | 2k+ | wp function not compatible with requires wp | ||
| #827 | YaySwatches – Variation Swatches for WooCommerce | 68 | 281 | 14 | 1k+ | Text Domain Mismatch | ||
| #828 | WP Wand – Unlimited Content Generation using AI – for OpenAI, Claude, Openrouter and Deepseek | 69 | 452 | 25 | 1k+ | Text Domain Mismatch | ||
| #829 | Automatic Domain Changer | 69 | 37 | 14 | 10k+ | Text Domain Mismatch | ||
| #830 | Chatway Live Chat – AI Chatbot, Customer Support, FAQ & Helpdesk Customer Service & Chat Buttons | 69 | 22 | 24 | 30k+ | Text Domain Mismatch | ||
| #831 | Contact Form 7: Accessible Defaults | 69 | 3 | 28 | 5k+ | Nonce verification recommended | ||
| #832 | Custom Field For WP Job Manager | 69 | 16 | 54 | 900 | Non-prefixed global variable | ||
| #833 | Easy Auto Reload – Auto Refresh | 69 | 37 | 12 | 1k+ | Text Domain Mismatch | ||
| #834 | Hand Talk | 69 | 34 | 4 | 400 | Output is not escaped | ||
| #835 | Search & Filter | 69 | 21 | 28 | 50k+ | Input is not sanitized | ||
| #836 | Private Store for WooCommerce B2B & Wholesale by B2BKing | 70 | 86 | 8 | 600 | Text Domain Mismatch | ||
| #837 | BestPrice Analytics Integration | 70 | 35 | 10 | 1k+ | Text Domain Mismatch | ||
| #838 | Lead info with country for Contact Form 7 | 70 | 25 | 28 | 3k+ | Text Domain Mismatch | ||
| #839 | Free Gift Product For WooCommerce | 70 | 9 | 77 | 800 | Non-prefixed global variable | ||
| #840 | Ghost | 70 | 25 | 12 | 600 | Output is not escaped | ||
| #841 | PipraPay Gateway | 70 | 11 | 6 | 400 | Output is not escaped | ||
| #842 | Portfolio Post Type | 70 | 7 | 11 | 50k+ | Nonce verification recommended | ||
| #843 | Export Users With Meta | 70 | 13 | 13 | 2k+ | Direct Query | ||
| #844 | Related Products for WooCommerce | 70 | 12 | 12 | 3k+ | Setting is missing a sanitization callback | ||
| #845 | Quick Buy For Woocommerce | 70 | 105 | 22 | 1k+ | Text Domain Mismatch | ||
| #846 | WP Image Borders | 70 | 47 | 6 | 2k+ | Text Domain Mismatch | ||
| #847 | Privyr CRM – Instant Lead Alerts for Contact Forms | 71 | 2 | 25 | 4k+ | Non-prefixed function | ||
| #848 | WPGraphQL Smart Cache | 71 | 87 | 9 | 7k+ | Text Domain Mismatch | ||
| #849 | Cloudinary – Deliver Images and Videos at Scale | 72 | 691 | 134 | 5k+ | Text Domain Mismatch | ||
| #850 | Dashboard Wordcount | 72 | 30 | 7 | 500 | Output is not escaped |