RiPro-V5主题(原RiPro-V2升级版)是开发者油条打造的一款高性能WordPress虚拟资源商城主题,以其强大的功能、极快的速度和现代化的设计深受用户喜爱。虽然主题本身功能已经相当完善,但很多用户仍希望根据自身需求进行个性化扩展。今天我们就来分享如何为RiPro-V5主题增加工单邮件通知功能。
功能概述
通过以下修改,您将实现:
- 新工单提交时自动发送邮件通知管理员
- 管理员回复工单后自动通知工单提交者
实现步骤
一、新增工单提交通知(管理员接收)
- 打开主题目录:
ripro-v5/inc/template-ajax.php - 定位到935行附近,
工单提交成功,客服会尽快处理这段代码之前 - 插入以下代码:
// --- 邮件发送给管理员 ---
$admin_email = get_option('admin_email');
$subject = '新工单提交通知 - ' . get_bloginfo('name');
$ticket_url = admin_url('admin.php?page=zb-admin-page-ticket&action=edit&id='.$insert_id);
$body = '
<div style="font-family: Arial, sans-serif; background-color: #f9f9f9; padding: 20px;">
<div style="max-width: 600px; margin: auto; background: #ffffff; border-radius: 8px; overflow: hidden; box-shadow: 0 0 10px rgba(0,0,0,0.1);">
<div style="background: #2271b1; color: white; padding: 15px 20px; font-size: 18px;">
新工单提交通知
</div>
<div style="padding: 20px; color: #333;">
<p>管理员您好:</p>
<p>您的网站 <strong>'.get_bloginfo('name').'</strong> 有新工单提交:</p>
<div style="background: #f4f4f4; padding: 15px; border-radius: 5px; margin: 15px 0;">
<p><strong>标题:</strong>'.esc_html($title).'</p>
<p><strong>类型:</strong>'.esc_html(ZB_Ticket::get_type($type)).'</p>
<p><strong>提交时间:</strong>'.date('Y-m-d H:i:s').'</p>
</div>
<p>请点击下方按钮查看并处理工单。</p>
<p style="text-align: center; margin: 30px 0;">
<a href="'.esc_url($ticket_url).'" style="background: #2271b1; color: #fff; padding: 10px 20px; text-decoration: none; border-radius: 4px;">处理工单</a>
</p>
<p style="color: #888; font-size: 12px;">如果按钮无法点击,请复制以下链接到浏览器打开:<br>
'.esc_url($ticket_url).'</p>
</div>
<div style="background: #f1f1f1; color: #666; text-align: center; padding: 10px; font-size: 12px;">
此邮件由 '.get_bloginfo('name').' 系统自动发送
</div>
</div>
</div>
';
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail($admin_email, $subject, $body, $headers);
二、新增工单回复通知(用户接收)
- 打开主题目录:
ripro-v5/admin/page/ticket-edit.php - 找到40行左右的代码块
- 替换原有if代码段为以下内容:
if (ZB_Ticket::update($updata, ['id' => $Data->id])) {
$message = '工单更新成功';
$Data = ZB_Ticket::get($ticket_id);
$creator = get_user_by('ID', $Data->creator_id);
if ($creator && !empty($creator->user_email)) {
$to = $creator->user_email;
$subject = sprintf(__('您的工单有新的回复 - %s', 'DZ-Nine'), get_bloginfo('name'));
$ticket_url = site_url('/user/ticket/?action=view&id=' . $Data->id);
$body = '
<div style="font-family: Arial, sans-serif; background-color: #f9f9f9; padding: 20px;">
<div style="max-width: 600px; margin: auto; background: #ffffff; border-radius: 8px; overflow: hidden; box-shadow: 0 0 10px rgba(0,0,0,0.1);">
<div style="background: #2271b1; color: white; padding: 15px 20px; font-size: 18px;">
' . esc_html__('工单更新通知', 'DZ-Nine') . '
</div>
<div style="padding: 20px; color: #333;">
<p>' . sprintf(esc_html__('您好,%s:', 'DZ-Nine'), '<strong>' . esc_html($creator->user_login) . '</strong>') . '</p>
<p>' . sprintf(esc_html__('您提交的工单 %s 有新的回复:', 'DZ-Nine'), '<strong>《' . esc_html($Data->title) . '》</strong>') . '</p>
<div style="background: #f4f4f4; padding: 10px; border-radius: 5px; margin: 15px 0;">
' . wpautop(wp_kses_post($Data->reply_content)) . '
</div>
<p>' . esc_html__('请点击下方按钮查看详细内容。', 'DZ-Nine') . '</p>
<p style="text-align: center; margin: 30px 0;">
<a href="' . esc_url($ticket_url) . '" style="background: #2271b1; color: #fff; padding: 10px 20px; text-decoration: none; border-radius: 4px;">' . esc_html__('查看工单', 'DZ-Nine') . '</a>
</p>
<p style="color: #888; font-size: 12px;">' . esc_html__('如果按钮无法点击,请复制以下链接到浏览器打开:', 'DZ-Nine') . '<br>
' . esc_url($ticket_url) . '</p>
</div>
<div style="background: #f1f1f1; color: #666; text-align: center; padding: 10px; font-size: 12px;">
' . sprintf(esc_html__('此邮件由 %s 系统自动发送,请勿直接回复。', 'DZ-Nine'), get_bloginfo('name')) . '
</div>
</div>
</div>
';
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail($to, $subject, $body, $headers);
}
} else {
$message = '工单更新失败';
}
测试与验证
完成上述修改后,您可以:
- 在前台提交一个新工单测试(会发送通知到管理员邮箱)
- 在后台回复一个工单测试(会发送通知到工单创建者邮箱)
重要提醒
⚠️ 维护建议:上述修改是直接对父主题进行的,当主题更新时这些修改可能会被覆盖。为了长期维护方便,建议:
- 通过子主题方式实现这些功能扩展(需要子主题版本代码的可以在下方留言)
- 或者将修改后的文件做好备份,主题更新后重新应用这些修改
通过增加邮件通知功能,您可以显著提升工单系统的响应效率,让管理员和用户都能及时获知工单状态变化,从而提供更好的客户支持体验。
