Konstruado de Propra Registrar-Integriĝo
La Domain Seller aldonaĵo uzas ŝablonon de Integration Registry. Ĉiu registrar estas PHP-klaso kiu efektivigas Domain_Selling_Capability kaj registras sin per la ago-hoko wu_domain_seller_register_capabilities.
Ĉi tiu gvidilo montras kiel konekti propran registrar.
La interfaco
Via klaso devas efektivigi WP_Ultimo\Integrations\Capabilities\Domain_Selling_Capability kaj etendi WP_Ultimo\Integrations\Base_Capability_Module.
Bezonataj metodoj:
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 { ... }
}
Nedevigaj metodoj
Efektivigu ĉi tiujn por malŝlosi pliajn funkciojn. La aldonaĵo detektas subtenon per method_exists():
| Metodo | Malŝlosas |
|---|---|
supports_whois_privacy(): bool | WHOIS-privateca opcio en produktaj agordoj |
enable_whois_privacy(string $domain_name): array | Auto-enables privacy at registration |
get_dns_records(string $domain_name): array | Customer DNS view tab |
add_dns_record(string $domain_name, array $record_data): array | Customer can add DNS records |
update_dns_record(string $domain, string $record_id, array $record_data): array | Customer can edit DNS records |
delete_dns_record(string $domain, string $record_id, array $data): array | Customer can delete DNS records |
update_nameservers(string $domain_name, array $nameservers): array | Nameserver management |
get_epp_code(string $domain_name): array | Domain transfer (outgoing) |
transfer_domain(string $domain, string $auth_code, array $registrant_info, array $options): array | Domain transfer (incoming) |
Konvencio pri revenvaloro
Ĉiuj metodoj revenigas tabelon kun minimume ŝlosilo success:
// Success
return ['success' => true, 'data' => [...]];
// Failure
return ['success' => false, 'message' => 'Human-readable error'];
Registrado de via kapablo
Registru vian klason uzante la agon wu_domain_seller_register_capabilities:
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());
});
La unua argumento al add_capability() estas la provider ID — minusklula slug uzata por identigi vian registrar en agordoj, produkta agordo, kaj protokolaj kanaloj. Uzu ion unikan (ekz., la slug de via kompanio).
Aldono de akreditilaj kampoj al la asistanto
Por permesi al administrantoj enigi akreditilojn per la agorda asistanto, registru vian integriĝon:
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',
],
],
]);
});
Akreditiloj estas konservataj kiel retaj opcioj uzante la kampajn ID-ojn kiel ŝlosilojn. Reakiru ilin en via kapabla klaso per wu_get_setting('my_registrar_api_key').
Hok
oj por post-registradaj agoj
Uzu ĉi tiujn agojn por ekigi webhooks, proviziadon, sciigojn, aŭ CRM-ĝisdatigojn:
// 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
});
Protokolado
Skribu al via provizanto-specifa protokola kanalo uzante 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');
Protokoloj aperas sub Reta administrado › Ultimate Multisite › Protokoloj › domain-seller-my-registrar.