RiPro-V5主题自带工单系统 增加邮件通知功能

RiPro-V5主题(原RiPro-V2升级版)是开发者油条打造的一款高性能WordPress虚拟资源商城主题,以其强大的功能、极快的速度和现代化的设计深受用户喜爱。虽然主题本身功能已经相当完善,但很多用户仍希望根据自身需求进行个性化扩展。今天我们就来分享如何为RiPro-V5主题增加工单邮件通知功能。

功能概述

通过以下修改,您将实现:

  1. 新工单提交时自动发送邮件通知管理员
  2. 管理员回复工单后自动通知工单提交者

实现步骤

一、新增工单提交通知(管理员接收)

  1. 打开主题目录:ripro-v5/inc/template-ajax.php
  2. 定位到935行附近,工单提交成功,客服会尽快处理这段代码之前
  3. 插入以下代码:
// --- 邮件发送给管理员 ---
$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);

二、新增工单回复通知(用户接收)

  1. 打开主题目录:ripro-v5/admin/page/ticket-edit.php
  2. 找到40行左右的代码块
  3. 替换原有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 = '工单更新失败';
}

测试与验证

完成上述修改后,您可以:

  1. 在前台提交一个新工单测试(会发送通知到管理员邮箱)
  2. 在后台回复一个工单测试(会发送通知到工单创建者邮箱)

重要提醒

⚠️ 维护建议:上述修改是直接对父主题进行的,当主题更新时这些修改可能会被覆盖。为了长期维护方便,建议:

  1. 通过子主题方式实现这些功能扩展(需要子主题版本代码的可以在下方留言)
  2. 或者将修改后的文件做好备份,主题更新后重新应用这些修改

通过增加邮件通知功能,您可以显著提升工单系统的响应效率,让管理员和用户都能及时获知工单状态变化,从而提供更好的客户支持体验。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇