构建自定义注册商集成
Domain Seller 附加组件使用了 集成注册表 (Integration Registry) 模式。每个注册商都是一个实现了 Domain_Selling_Capability 接口的 PHP 类,并通过 wu_domain_seller_register_capabilities action hook 进行注册。
本指南将展示如何接入自定义的注册商。
接口要求
您的类必须实现 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 {
// --- 必需的身份识别方法 (来自 Base_Capability_Module) ---
public function get_capability_id(): string {
return 'domain-selling'; // 始终为 'domain-selling'
}
public function get_title(): string {
return __('Domain Selling', 'my-plugin');
}
public function get_explainer_lines(): array {
return [
'will' => [__('通过 My Registrar 启用域名注册。', 'my-plugin')],
'will_not' => [],
];
}
// --- 核心必需方法 (来自 Domain_Selling_Capability) ---
/** 拉取所有可用的 TLD 和批发定价。 */
public function sync_tlds(): array { ... }
/** 检查 $domain_name 在 $tlds 中的可用性。 */
public function search_domains(string $domain_name, array $tlds = []): array { ... }
/** 获取 TLD N 年的批发价格。 */
public function get_domain_pricing(string $tld, int $years = 1): array { ... }
/** 注册域名。成功时返回 ['success' => true, 'expiry_date' => '...']。 */
public function register_domain(string $domain_name, array $registrant_info, int $years = 1): array { ... }
/** 续费域名 N 年。 */
public function renew_domain(string $domain_name, int $years = 1): array { ... }
/** 获取域名信息,包括注册状态、到期日期、域名服务器。 */
public function get_domain_info(string $domain_name): array { ... }
/** 测试 API 凭证和连接性。 */
public function test_connection(): array { ... }
}
可选方法
实现这些方法可以解锁额外的功能。附加组件通过 method_exists() 来检测支持情况:
| 方法 | 解锁的功能 |
|---|---|
supports_whois_privacy(): bool | 产品设置中的 WHOIS 隐私选项 |
enable_whois_privacy(string $domain_name): array | 注册时自动启用隐私保护 |
get_dns_records(string $domain_name): array | 客户 DNS 视图标签页 |
add_dns_record(string $domain_name, array $record_data): array | 客户可以添加 DNS 记录 |
update_dns_record(string $domain, string $record_id, array $record_data): array | 客户可以编辑 DNS 记录 |
delete_dns_record(string $domain, string $record_id, array $data): array | 客户可以删除 DNS 记录 |
update_nameservers(string $domain_name, array $nameservers): array | 域名服务器管理 |
get_epp_code(string $domain_name): array | 域名转出(Outgoing) |
transfer_domain(string $domain, string $auth_code, array $registrant_info, array $options): array | 域名转入(Incoming) |