בויען אַ אייגענע ר עגיסטראַטאָר־אינטעגראַציע
דער דאָמיין־פארקויפער־אַדאָן ניצט אַן אינטעגראַציע־רעגיסטרי מוסטער. יעדער רעגיסטראַטאָר איז אַ PHP קלאַס וואָס אימפּלאַמענטירט Domain_Selling_Capability און רעגיסטרירט זיך דורך דעם wu_domain_seller_register_capabilities אַקציע־הוק.
דער וועגווײַזער ווײַזט ווי אַרײַנצובינדן אַן אייגענעם רעגיסטראַטאָר.
דער צובינד
אייער קלאַס מוז אימפּלאַמענטירן WP_Ultimo\Integrations\Capabilities\Domain_Selling_Capability און פֿאַרברייטערן WP_Ultimo\Integrations\Base_Capability_Module.
נויטיקע מעטאָדן:
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 { ... }
}
אָפּציאָנעלע מעטאָדן
אימפּלאַמענטירט די כּדי אויפֿצושליסן נאָך פֿעיִקייטן. דער אַדאָן דערקענט שטיצע דורך method_exists():
| מעטאָד | שליסט אויף |
|---|---|
supports_whois_privacy(): bool | WHOIS פּריוואַטקייט־אָפּציע אין פּראָדוקט־איינשטעלונגען |
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) |
קאָנווענץ פֿאַר צוריקגעבן־ווערט
אַלע מעטאָדן געבן צוריק אַן array מיט לכל־הפּחות אַ success שליסל:
// Success
return ['success' => true, 'data' => [...]];
// Failure
return ['success' => false, 'message' => 'Human-readable error'];
רעגיסטרירן אייער פֿעיִקייט
רעגיסטרירט אייער קלאַס ניצנדיק די 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());
});
דער ערשטער אַרגומענט צו add_capability() איז דער צושטעלער־ID — אַ קליינער slug וואָס ווערט געניצט צו אידענטיפֿיצירן אייער רעגיסטראַטאָר אין איינשטעלונגען, פּראָדוקט־קאָנפֿיגוראַציע, און לאָג־קאַנאַלן. ניצט עפּעס אייגנאַרטיקעס (למשל, אייער פֿירמע־slug).
צולייגן צוטריט־דאַטן־פעלדער צום וויזאַרד
כּדי צו לאָזן אַדמינים אַרײַנגעבן צוטריט־דאַטן דורך דעם איינשטעל־וויזאַרד, רעגיסטרירט אייער אינטעגראַציע:
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',
],
],
]);
});
צוטריט־דאַטן ווערן אויפֿגעהיט ווי נעץ־אָפּציעס ניצנדיק די פעלד־IDס ווי שליסלען. באַקומען זיי אין אייער פֿעיִקייט־קלאַס מיט wu_get_setting('my_registrar_api_key').
הוקס פֿאַר אַקציעס נאָך רעגיסטראַציע
ניצט די אַקציעס צו אויסלייזן וועבהוקס, צושטעלונג, מעלדונגען, אָדער CRM דערהײַנטיקונגען:
// 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
});
לאָגירן
שרײַבט צו אייער צושטעלער־ספּעציפֿישן לאָג־קאַנאַל ניצנדיק 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');
לאָגס דערשײַנען אונטער Network Admin › Ultimate Multisite › לאָגס › domain-seller-my-registrar.