WP Manifestindependent plugin directory
manifest / integrations / zunnesco-domains

Zunnesco Domains

Zunnesco Domains Core: Laravel control plane plus WordPress client

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/teray234/zunnesco-domains/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Search, register, connect, renew, secure, and resell customer domains from one automated platform.

This monorepo is Core 1.0.0:

  1. A Laravel control plane in control-plane/
  2. A WordPress client (zunnesco-domains.php + src/) that talks to the control plane through signed APIs, or runs locally in sandbox/demo mode when Laravel is not configured

Plugin URI: https://github.com/teray234/zunnesco-domains
Author: zunnesco-dev

This product is not trademark or legal advice. AI name suggestions are not trademark clearance and are not registration availability without live registrar verification. Zunnesco Hosting owns certificate install; Domains only coordinates SSL status and DNS challenge fields.

Core vs later editions

Core (this release) Delayed / later
Sandbox registrar (fully working, labeled not-live) Auctions
Search, register, transfer in/out, renew, lock Appraisals
Local DNS zone editor with versions + rollback + templates Automated brokerage
Connection wizard + portfolio + agency client assignment Broad EPP operation
HMAC-signed Laravel API Aftermarket marketplace product
Cloudflare / Namecheap / NameSilo / OpenSRS registrar stubs Unsupported TLD assumptions (never)
Cloudflare DNS + Route 53 stubs
RDAP-first monitoring stub Next module: Zunnesco Monitor

Ownership boundaries

  • Commerce owns cart, payments, taxes, refunds, and dunning.
  • Domains owns registrar orders, lifecycle, DNS, and ownership.
  • Registration: payment authorization → registrar submit → capture. If the registrar fails, the authorization is voided/refunded. An idempotency key is required.
  • Registrar and DNS provider are separate models. A domain can use Cloudflare DNS while registered at Namecheap.
  • Capabilities are detected via capabilities($tld) only. Unsupported TLD → unsupported, never fake available.
  • Lifecycle dates come from registrar/registry evidence fields. Grace/redemption dates are not invented.
  • Availability is never claimed without adapter verification. A domain is not reserved/owned until the registrar result confirms registration.
  • Money is integer minor units + ISO currency. First-year and renewal prices are snapshotted separately. Premium renewal is labeled. Negative margin requires an approval flag.

WordPress sandbox (no Laravel)

  1. Activate Zunnesco Domains.
  2. Open Domains → Search, enter a label (brandnew) or FQDN (brandnew.com).
  3. Supported sample TLDs: .com .io .app .net. Other TLDs return unsupported.
  4. Register from an available result. Until a registrar confirms, the domain is not treated as owned.
  5. Manage DNS (snapshot before publish, rollback, templates with additions/updates/conflicts/removals), transfers, renewals, connections, and agency client assignment.

Shortcodes: [zunnesco_domain_search] and [zunnesco_domains_portfolio].

REST: /wp-json/zunnesco-domains/v1/search|portfolio|dns/{id} (capability-checked).

Connection SDK:

$connection = zunnesco_domains()->connections()->create([
    'domain_id'   => $domainId,
    'target_type' => 'funnels.project',
    'target_id'   => $funnelId,
]);

Target modules supply records via zunnesco_domains/connection_records.

Point WordPress at Laravel

// wp-config.php
define( 'ZNDO_CONTROL_PLANE_URL', 'http://127.0.0.1:8000' );
define( 'ZNDO_CONTROL_PLANE_KEY', 'your-shared-secret' );

Or paste the same values in Domains → Settings. Credentials use zunnesco_vault() when present.

See control-plane/README.md for migrate/seed/artisan serve.

DNS rollback

Every publish writes a version snapshot first. On Domains → DNS, pick a version and Rollback. Templates preview additions, updates, conflicts, and removals before apply. MX changes and verification-record removals warn. Broken DNSSEC can make the domain unreachable; DNSSEC changes must be staged.

Tests

php tests/test-schema.php
cd control-plane && php tests/DomainSchemaTest.php
# after composer install:
cd control-plane && php artisan test

License

GPL-2.0-or-later