If you resell Zinn® hosting, this plugin connects your own WordPress site to your reseller account so your customers never have to leave it.
It has three parts and
they are separate switches. Turn on only what you need — nothing that is switched off loads any code, registers any hook or enqueues any stylesheet.
1. Domain search
Put
[zinn_domain_search] on any page. A visitor types a name, and the results come back live. Once your reseller key is set they come from your own domain account with your own prices on them; before that, the search already works against the public catalogue and its prices.
- No JavaScript at all. The form is a plain search that works with scripting off, is crawlable, and produces a shareable result URL.
- Three honest answers, not two. Available, already registered, and "we could not check" — because when no registrar can be reached, telling a visitor a name is taken makes them abandon a name that may well be free.
- Results are cached for five minutes so a busy page does not hammer the registry.
Attributes:
[zinn_domain_search placeholder="Find your domain" button="Search" tlds="com,co.uk,io"]
tlds accepts up to five extensions. Leave it out and the default set is used.
2. Panel link
Put
[zinn_panel_link] anywhere a signed-in customer will see it — a My Account page is the usual home. It renders a single link that takes them straight into their hosting panel, already signed in.
The sign-in link is minted
when the link is clicked, not when the page is rendered, so it never sits in a page cache and never reaches a crawler. It is single-use and expires within minutes.
[zinn_panel_link label="Manage my hosting"]
3. WooCommerce provisioning
Sell hosting as an ordinary WooCommerce product, take the money through your own gateway into your own account, and hosting is set up the moment the order is paid.
- Set the Zinn® product line on the product's Inventory tab, or set one default for the whole shop in the plugin settings.
- The customer's chosen hostname is read from the order item's
zinn_domain meta — set it from your own domain field, or from the domain search above.
- A returning customer's second order lands under the same client account, not a second one.
- Every call is idempotent, so a gateway retry or an order moved from Processing to Completed can never provision twice.
- If provisioning fails, the reason is written to the order as a note and shown in a panel on the order screen — never only to a PHP log where nobody would find it.
1.7.6
- MCP tools for AI connector directories: tool descriptions state only what each tool does (no references to other tools); every tool that takes input declares it; list results reach MCP clients as objects.
1.7.5
- Serbian: quotation marks are now „…“ throughout, as the Serbian WordPress translation team writes them.
1.7.4
- Translations follow each language's WordPress.org translation team style guide: its quotation marks, spacing before punctuation, apostrophes and ellipsis, and the forms of address it uses.
1.7.3
- Japanese follows the WordPress.org Japanese team's style guide: a half-width space around Latin text, half-width colons and question marks.
1.7.2
- New: two wp-config.php switches for the Zinn Digital® panel. define( 'ZINN_RESELLER_PROMO', false ); removes the panel (dashboard widget, settings block and footer), and define( 'ZINN_RESELLER_PROMO_HOSTING_URL', 'https://…' ); points its hosting offer at another https address.
1.7.1
- Security: the AI-app sign-in (MCP OAuth) checks a client's metadata address more strictly before fetching it (a public web address only, a limit per address, and a refused address remembered).
1.7.0
- AI apps such as Claude and ChatGPT can connect by signing in (OAuth 2.1) — no application password needed; every MCP tool declares whether it is read-only or destructive.
1.6.2
- Every bundled translation is redone with the current Google model: each locale in its own script (Serbian in Cyrillic), in the register its WordPress translation team uses, with the original spacing, placeholders and entities preserved.
1.6.1
- AI agents (MCP) and REST: list and create clients, put them on plans, list, create, suspend and unsuspend their sites through your reseller account — from AI apps, administrators only. On by default; switch under Reseller Toolkit → AI agents (MCP).
1.6.0
- On sites hosted by Zinn Digital®, this plugin is now installed from WordPress.org, so it updates from WordPress.org like any directory plugin. No change to what it does.
1.5.0
- White label: the domain search and the "Manage my hosting" link no longer show our name to your visitors — neutral class names, form fields and stylesheet handle, and the stylesheet is inlined instead of linked from the plugin folder. Old search links and panel links keep working.
1.4.0
- Smaller download: the editable translation sources (.po) are no longer shipped; WordPress only ever loads the compiled .mo and .l10n.php files, which are unchanged.
1.3.0
- Updates install whenever you click Update, even months later: the download link is fetched fresh at install time instead of expiring in WordPress's saved update data.
1.2.10
- Security hardening: the design-token stylesheet validates every component id and strips anything that could close the inline style.
1.2.9
- WooCommerce provisioning no longer writes "No Zinn® API key is configured" onto orders that are not hosting; the settings screen says domain search already works before a key is set; readme and screenshot captions corrected; listed on WordPress.org.
1.2.8
- A neutral plugin description. The installation steps and the missing-key message now point at the real settings screen, Zinn Digital® → Reseller Toolkit, and describe its status panel as it is. Its "Open my Zinn® dashboard" button opened a page that does not exist; it now opens API keys.
1.2.7
- Translations: a word written in the wrong alphabet (for example a Korean word inside a Malayalam sentence, or an Urdu word ending a Punjabi one) is corrected in every language that had one. Each affected string was translated again and checked.
1.2.6
- Tested up to: 7.1 — the major version only, as WordPress.org's Plugin Check requires (7.1.1 was refused as invalid_tested_upto_minor).
1.2.5
- Tested up to WordPress 7.1.1.
1.2.4
- In a right-to-left admin language, the Zinn Digital® menu entry showed its trademark symbol on the wrong side of the name. The name is now isolated so it reads correctly in Arabic, Hebrew, Persian, Pashto and Urdu.
1.2.3
- The admin screens' styles and scripts are now enqueued through WordPress rather than printed into the page, so they can be dequeued, deferred or optimised by your site like any other asset — and they still work on a site whose security policy forbids inline code.
1.2.2
- Translations: every string this plugin's admin shows is now translated in every bundled language. A few strings the machine translator refused were shipping in English; they are now translated by hand.
1.2.1
- Hardening: a settings rule can no longer be mistaken for a PHP function with the same name. The same shared settings code is what stopped Zinn® Translate saving its settings. Nothing about how this plugin behaves changes.
1.2.0
The domain-search widget can be styled — four presets and eight colours and sizes you can override — and the settings screen now tells you whether anything is actually switched on.
1.1.3
- Documented two API requests the plugin has always made and the readme did not mention: creating the site after an order is paid, and minting the one-time hosting-panel sign-in link.
1.1.2
1.1.0
- Added the Zinn® panel: links to Zinn Digital® hosting, the Zinn® marketplace, Zinn Hub® and this plugin's user guide, from inside the WordPress admin.
1.0.0
- First release: domain search, panel sign-in link, and WooCommerce provisioning.