统一邮件模板系统:添加 blacklist_spam_notify 和 username_change_notify 配置,重构相关文件使用统一接口

This commit is contained in:
User
2026-03-13 23:45:09 +08:00
parent f36f6c8ed9
commit 24b35232b4
3 changed files with 116 additions and 164 deletions

View File

@@ -31,118 +31,17 @@ function argon_send_username_change_notify_email($comment, $original_username, $
return false;
}
// 获取 AI 配置信息
$provider = get_option('argon_ai_summary_provider', 'openai');
$model = get_option('argon_ai_summary_model', '');
$provider_names = [
'openai' => 'OpenAI',
'anthropic' => 'Anthropic',
'deepseek' => 'DeepSeek',
'qianwen' => '通义千问',
'wenxin' => '文心一言',
'doubao' => '豆包',
'kimi' => 'Kimi',
'zhipu' => '智谱',
'siliconflow' => 'SiliconFlow'
];
$provider_display = isset($provider_names[$provider]) ? $provider_names[$provider] : $provider;
// 获取邮件设置
$settings = argon_get_email_settings();
// 构建邮件内容
$email_subject = sprintf(__('您在「%s」的评论用户名已被修改', 'argon'), wp_trim_words($post->post_title, 20));
$email_body = '
<div style="background: #f8f9fa; padding: 32px 24px; border-radius: 8px; margin: 24px 0;">
<h2 style="margin: 0 0 16px 0; color: #32325d; font-size: 20px; font-weight: 600;">
' . __('用户名变更通知', 'argon') . '
</h2>
<p style="margin: 0 0 16px 0; color: #525f7f; font-size: 15px; line-height: 1.6;">
' . sprintf(__('您好,%s', 'argon'), '<strong>' . esc_html($original_username) . '</strong>') . '
</p>
<p style="margin: 0 0 16px 0; color: #525f7f; font-size: 15px; line-height: 1.6;">
' . sprintf(
__('您在文章「<a href="%s" style="color: %s; text-decoration: none;">%s</a>」发表的评论已成功提交,但系统检测到您的用户名可能不符合规范。', 'argon'),
esc_url(get_permalink($post->ID)),
$settings['theme_color'],
esc_html($post->post_title)
) . '
</p>
</div>
<div style="background: #fff3cd; border-left: 4px solid #ffc107; padding: 16px 20px; margin: 24px 0; border-radius: 4px;">
<p style="margin: 0 0 8px 0; color: #856404; font-size: 14px; font-weight: 600;">
' . __('AI 检测结果', 'argon') . '
</p>
<p style="margin: 0; color: #856404; font-size: 14px; line-height: 1.6;">
' . esc_html($reason) . '
</p>
</div>
<div style="background: #f8f9fa; padding: 24px; border-radius: 8px; margin: 24px 0;">
<table style="width: 100%; border-collapse: collapse;">
<tr>
<td style="padding: 8px 0; color: #8898aa; font-size: 14px; width: 100px;">
' . __('原用户名', 'argon') . '
</td>
<td style="padding: 8px 0; color: #32325d; font-size: 14px; font-weight: 500;">
<del>' . esc_html($original_username) . '</del>
</td>
</tr>
<tr>
<td style="padding: 8px 0; color: #8898aa; font-size: 14px;">
' . __('新用户名', 'argon') . '
</td>
<td style="padding: 8px 0; color: ' . $settings['theme_color'] . '; font-size: 14px; font-weight: 600;">
' . esc_html($new_username) . '
</td>
</tr>
</table>
</div>
<div style="background: #e3f2fd; padding: 16px 20px; margin: 24px 0; border-radius: 4px; border-left: 4px solid #2196f3;">
<p style="margin: 0 0 8px 0; color: #1565c0; font-size: 14px; font-weight: 600;">
' . __('温馨提示', 'argon') . '
</p>
<p style="margin: 0; color: #1976d2; font-size: 14px; line-height: 1.6;">
' . __('您的评论内容正常,仅用户名被自动修改。今后发表评论时,请使用符合规范的用户名。', 'argon') . '
</p>
</div>
<div style="margin: 32px 0; text-align: center;">
<a href="' . esc_url(get_permalink($post->ID) . '#comment-' . $comment->comment_ID) . '"
style="display: inline-block; padding: 12px 32px; background: ' . $settings['theme_color'] . '; color: #fff; text-decoration: none; border-radius: 4px; font-size: 15px; font-weight: 500;">
' . __('查看您的评论', 'argon') . '
</a>
</div>
<div style="margin-top: 32px; padding-top: 24px; border-top: 1px solid #e3e8ee;">
<p style="margin: 0 0 8px 0; color: #8898aa; font-size: 13px;">
' . __('检测信息', 'argon') . '
</p>
<table style="width: 100%; font-size: 12px; color: #8898aa;">
<tr>
<td style="padding: 4px 0;">' . __('AI 模型', 'argon') . ':</td>
<td style="padding: 4px 0;">' . esc_html($provider_display) . ' - ' . esc_html($model) . '</td>
</tr>
<tr>
<td style="padding: 4px 0;">' . __('识别码', 'argon') . ':</td>
<td style="padding: 4px 0; font-family: monospace;">' . esc_html($detection_code) . '</td>
</tr>
<tr>
<td style="padding: 4px 0;">' . __('检测时间', 'argon') . ':</td>
<td style="padding: 4px 0;">' . current_time('Y-m-d H:i:s') . '</td>
</tr>
</table>
</div>
';
// 渲染完整邮件
$html = argon_render_email($email_body, ['subject' => $email_subject]);
// 准备模板变量
$vars = array(
'post_title' => $post->post_title,
'post_url' => get_permalink($post->ID),
'original_username' => $original_username,
'new_username' => $new_username,
'ai_reason' => $reason,
'ai_detection_code' => $detection_code,
'comment_url' => get_comment_link($comment),
);
// 发送邮件
return send_mail($comment->comment_author_email, $email_subject, $html);
return argon_send_email($comment->comment_author_email, 'username_change_notify', $vars);
}