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():
| Metode | Atbloķē |
|---|---|
supports_whois_privacy(): bool | WHOIS privātuma opcija produkta iestatījumos |
enable_whois_privacy(string $domain_name): array | Automātiski iespējo privātumu reģistrācijas laikā |
get_dns_records(string $domain_name): array | Klienta DNS skata cilne |
add_dns_record(string $domain_name, array $record_data): array | Klients var pievienot DNS ierakstus |
update_dns_record(string $domain, string $record_id, array $record_data): array | Klients var rediģēt DNS ierakstus |
delete_dns_record(string $domain, string $record_id, array $data): array | Klients var dzēst DNS ierakstus |
update_nameservers(string $domain_name, array $nameservers): array | Nameserver pārvaldība |
get_epp_code(string $domain_name): array | Domēna pārcelšana (izejošā) |
transfer_domain(string $domain, string $auth_code, array $registrant_info, array $options): array | Domē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.