fix(email): complete mail settings and templates

This commit is contained in:
2026-09-04 12:06:42 +08:00
parent 4f8ab94fac
commit 4833053a5c
29 changed files with 716 additions and 426 deletions
-41
View File
@@ -87,13 +87,6 @@ class UserController extends ControllerBase {
'permission_callback' => [$this, 'check_permission'],
]);
// Mail templates (email content templates)
register_rest_route(self::API_NAMESPACE, '/settings/mail-templates', [
'methods' => ['GET', 'POST'],
'callback' => [$this, 'handle_mail_templates'],
'permission_callback' => [$this, 'check_permission'],
]);
register_rest_route(self::API_NAMESPACE, '/assets/settings', [
'methods' => ['GET', 'POST'],
'callback' => [$this, 'rest_handle_credit_settings'],
@@ -325,40 +318,6 @@ class UserController extends ControllerBase {
}
/**
* GET/POST /settings/mail-templates — 邮件内容模板
*/
public function handle_mail_templates(\WP_REST_Request $request): \WP_REST_Response {
$option_key = 'aksrt_mail_templates';
$fields = [
'welcome_subject', 'welcome_body',
'comment_notify_subject', 'comment_notify_body',
'comment_reply_subject', 'comment_reply_body',
'password_reset_subject', 'password_reset_body',
'email_verify_subject', 'email_verify_body',
];
if ($request->get_method() === 'GET') {
$stored = get_option($option_key, []);
if (!is_array($stored)) $stored = [];
$result = [];
foreach ($fields as $f) {
$result[$f] = sanitize_text_field((string) ($stored[$f] ?? ''));
}
return $this->success(['data' => $result]);
}
// POST
$params = $this->get_json_params($request);
$clean = [];
foreach ($fields as $f) {
$clean[$f] = wp_kses_post((string) ($params[$f] ?? ''));
}
update_option($option_key, $clean);
return $this->success(['message' => __('邮件模板已保存', 'aksrt')]);
}
public function rest_handle_credit_settings(\WP_REST_Request $request): \WP_REST_Response {
if ($request->get_method() === 'GET') {
$config = \AKSRT\Settings\CreditsRuntime::get_credit_settings();