Skip to main content

Pielāgotas reģistratora integrācijas izveide

Domain Seller addon izmanto Integration Registry modeli. Katrs reģistrators ir PHP klase, kas implementē Domain_Selling_Capability un reģistrē sevi, izmantojot wu_domain_seller_register_capabilities action hook.

Šajā ceļvedī parādīts, kā pieslēgt pielāgotu reģistratoru.

Interfeiss

Jūsu klasei jāimplementē WP_Ultimo\Integrations\Capabilities\Domain_Selling_Capability un jāpaplašina WP_Ultimo\Integrations\Base_Capability_Module.

Obligātās metodes:

namespace My\Plugin\Capabilities;

use WP_Ultimo\Integrations\Base_Capability_Module;
use WP_Ultimo\Integrations\Capabilities\Domain_Selling_Capability;

class My_Registrar_Selling extends Base_Capability_Module implements Domain_Selling_Capability {

// --- Required identity methods (from Base_Capability_Module) ---

public function get_capability_id(): string {
return 'domain-selling'; // always 'domain-selling'
}

public function get_title(): string {
return __('Domain Selling', 'my-plugin');
}

public function get_explainer_lines(): array {
return [
'will' => [__('Enable domain registration via My Registrar.', 'my-plugin')],
'will_not' => [],
];
}

// --- Core required methods (from Domain_Selling_Capability) ---

/** Pull all available TLDs and wholesale pricing. */
public function sync_tlds(): array { ... }

/** Check availability of $domain_name across $tlds. */
public function search_domains(string $domain_name, array $tlds = []): array { ... }

/** Get wholesale price for a TLD for N years. */
public function get_domain_pricing(string $tld, int $years = 1): array { ... }

/** Register a domain. Returns ['success' => true, 'expiry_date' => '...'] on success. */
public function register_domain(string $domain_name, array $registrant_info, int $years = 1): array { ... }

/** Renew a domain for N years. */
public function renew_domain(string $domain_name, int $years = 1): array { ... }

/** Get registration status, expiry date, nameservers. */
public function get_domain_info(string $domain_name): array { ... }

/** Test API credentials and connectivity. */
public function test_connection(): array { ... }
}

Izvēles metodes

Implementējiet tās, lai atbloķētu papildu funkcijas. Addon nosaka atbalstu, izmantojot method_exists():

MetodeAtbloķē
supports_whois_privacy(): boolWHOIS privātuma opcija produkta iestatījumos
enable_whois_privacy(string $domain_name): arrayAutomātiski iespējo privātumu reģistrācijas laikā
get_dns_records(string $domain_name): arrayKlienta DNS skata cilne
add_dns_record(string $domain_name, array $record_data): arrayKlients var pievienot DNS ierakstus
update_dns_record(string $domain, string $record_id, array $record_data): arrayKlients var rediģēt DNS ierakstus
delete_dns_record(string $domain, string $record_id, array $data): arrayKlients var dzēst DNS ierakstus
update_nameservers(string $domain_name, array $nameservers): arrayNameserver pārvaldība
get_epp_code(string $domain_name): arrayDomēna pārcelšana (izejošā)
transfer_domain(string $domain, string $auth_code, array $registrant_info, array $options): arrayDomēna pārcelšana (ienākošā)

Atgrieztās vērtības konvencija

Visas metodes atgriež masīvu, kurā vismaz ir success atslēga:

// Success
return ['success' => true, 'data' => [...]];

// Failure
return ['success' => false, 'message' => 'Human-readable error'];

Jūsu capability reģistrēšana

Reģistrējiet savu klasi, izmantojot wu_domain_seller_register_capabilities action:

add_action('wu_domain_seller_register_capabilities', function(\WP_Ultimo\Integrations\Integration_Registry $registry) {
$registry->add_capability('my-registrar', new \My\Plugin\Capabilities\My_Registrar_Selling());
});

Pirmais add_capability() arguments ir provider ID — mazajiem burtiem rakstīts slug, ko izmanto, lai identificētu jūsu reģistratoru iestatījumos, produkta konfigurācijā un žurnālu kanālos. Izmantojiet kaut ko unikālu (piemēram, jūsu uzņēmuma slug).


Akreditācijas datu lauku pievienošana vednim

Lai ļautu administratoriem ievadīt akreditācijas datus, izmantojot iestatīšanas vedni, reģistrējiet savu integrāciju:

add_action('wu_domain_seller_register_integrations', function(\WP_Ultimo\Integrations\Integration_Registry $registry) {
$registry->add_integration('my-registrar', [
'name' => __('My Registrar', 'my-plugin'),
'fields' => [
[
'id' => 'my_registrar_api_key',
'label' => __('API Key', 'my-plugin'),
'type' => 'text',
],
[
'id' => 'my_registrar_api_secret',
'label' => __('API Secret', 'my-plugin'),
'type' => 'password',
],
],
]);
});

Akreditācijas dati tiek glabāti kā tīkla opcijas, izmantojot lauku ID kā atslēgas. Iegūstiet tos savā capability klasē ar wu_get_setting('my_registrar_api_key').


Hooki darbībām pēc reģistrācijas

Izmantojiet šīs darbības, lai aktivizētu webhookus, provisioningu, paziņojumus vai CRM atjauninājumus:

// After successful domain registration
add_action('wu_domain_registration_completed', function($payment, $registration_data, $result) {
// $registration_data: domain_name, provider_id, years, expiry_date, customer_id
// $result: raw registrar response
my_crm_update_domain($registration_data['domain_name'], $registration_data['customer_id']);
}, 10, 3);

// After registration failure
add_action('wu_domain_registration_failed', function($payment, $registration_data, $error_message) {
my_alert_team("Domain registration failed: {$registration_data['domain_name']}{$error_message}");
}, 10, 3);

// After successful renewal
add_action('wu_domain_renewal_completed', function($payment, $renewal_data, $result) {
// Update your billing system, send a receipt, etc.
}, 10, 3);

// After renewal failure
add_action('wu_domain_renewal_failed', function($payment, $renewal_data, $error_message) {
// Alert, retry logic, etc.
}, 10, 3);

// After domain transfer completes
add_action('wu_domain_transfer_completed', function($domain, $transfer_data) {
// $domain is a WP_Ultimo\Models\Domain object
}, 10, 2);

// After SES DKIM verification (if SES integration is active)
add_action('wu_domain_ses_verified', function($domain) {
// $domain is a WP_Ultimo\Models\Domain object
});

Žurnālfiksēšana

Rakstiet savā pakalpojumu sniedzējam specifiskajā žurnāla kanālā, izmantojot wu_log_add():

wu_log_add('domain-seller-my-registrar', "Registered {$domain_name} successfully", 'info');
wu_log_add('domain-seller-my-registrar', "Registration failed: {$error}", 'error');

Žurnāli parādās sadaļā Tīkla administrēšana › Ultimate Multisite › Žurnāli › domain-seller-my-registrar.