WP Manifestindependent plugin directory
manifest / integrations / zunnesco-domains

Zunnesco Domains

Zunnesco Domains Core: Laravel control plane plus WordPress client

by zunnesco-dev · github.com/teray234/zunnesco-domains · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/teray234/zunnesco-domains/archive/refs/heads/main.zip

Readme

Zunnesco Domains

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

Read the full README on GitHub →