fix(email): complete mail settings and templates

This commit is contained in:
kate522 committed 2026-09-04 12:06:42 +08:00
1 parent 4f8ab94fac
commit 4833053a5c
29 files changed
+716 -426

No files matched your search

+4 -31
View File
@@ -23,12 +23,6 @@ class GlobalController extends ControllerBase {
* Register all routes for the global domain.
*/
public function register_routes(): void {
// Email / SMTP
register_rest_route(self::API_NAMESPACE, '/settings/mail', [
'methods' => ['GET', 'POST'],
'callback' => [$this, 'rest_handle_mail'],
'permission_callback' => [$this, 'check_permission'],
]);
register_rest_route(self::API_NAMESPACE, '/mail/test', [
'methods' => 'POST',
'callback' => [$this, 'rest_test_mail'],
@@ -175,30 +169,6 @@ class GlobalController extends ControllerBase {
return $this->success(['message' => 'CMS 功能已保存', 'cms_features' => \AKSRT\Settings\Settings::get_cms_features()]);
}
public function rest_handle_mail(\WP_REST_Request $request): \WP_REST_Response {
$option_key = 'aksrt_mail_config';
if ($request->get_method() === 'GET') {
$config = get_option($option_key, [
'smtp_host' => '',
'smtp_port' => 465,
'smtp_user' => '',
'smtp_pass' => '',
'smtp_secure' => 'ssl',
'from_email' => '',
'from_name' => '',
]);
return $this->success(['data' => $config, 'code' => 'success']);
}
$params = $this->get_json_params($request);
$current = get_option($option_key, []);
$merged = array_merge(is_array($current) ? $current : [], $params);
update_option($option_key, $merged);
return $this->success(['message' => '邮件配置已保存', 'code' => 'success']);
}
public function rest_test_mail(\WP_REST_Request $request): \WP_REST_Response {
$params = $this->get_json_params($request);
$to = sanitize_email($params['to'] ?? '');
@@ -206,7 +176,9 @@ class GlobalController extends ControllerBase {
return $this->error(__('请输入有效的邮箱地址', 'aksrt'));
}
$sent = wp_mail($to, __('AKSRT 邮件测试', 'aksrt'), __('如果你收到这封邮件,说明 SMTP 配置正确。', 'aksrt'));
$sent = class_exists('\\AKSRT\\Settings\\Mail')
? \AKSRT\Settings\Mail::send_test_email($to)
: false;
if ($sent) {
return $this->success(['message' => '测试邮件已发送']);
}
@@ -388,6 +360,7 @@ class GlobalController extends ControllerBase {
return ($a['sort_order'] ?? 0) <=> ($b['sort_order'] ?? 0);
});
update_option('aksrt_friend_links', $links);
do_action('aksrt_friend_link_submitted', $new_link);
return rest_ensure_response(['code' => 'success', 'data' => $new_link, 'message' => __('Friend link added.', 'aksrt')]);
}