[ 'title' => '预约成功!', 'message' => "预约成功!\n\n" . "客户:{customer_name}\n" . "手机号:{phone}\n" . "车牌号:{car_number}\n" . "车型:{car_model}\n" . "\n" . "预约时间:{start_time}\n" . "服务项目:{package_name}\n" . "服务时长:{duration}分钟\n" . "总价:{total_price}元\n" . "\n" . "感谢您的预约!" ], // 详细模板 'detailed' => [ 'title' => '【张老师撸车工作室】预约确认', 'message' => "尊敬的 {customer_name} 先生/女士:\n\n" . "恭喜您,您的洗车预约已成功确认!\n\n" . "🔹 客户信息:\n" . " - 姓名:{customer_name}\n" . " - 手机号:{phone}\n" . " - 车牌号:{car_number}\n" . " - 车型:{car_model}\n" . " - 会员类型:{member_type}\n" . "\n" . "🔹 预约详情:\n" . " - 预约时间:{date} {time_range}\n" . " - 服务项目:{package_name}\n" . " - 自定义服务:{custom_services}\n" . " - 服务时长:{duration}分钟\n" . " - 总价:¥{total_price}\n" . " - 支付状态:{payment_status}\n" . "\n" . "🔹 备注信息:\n" . " {notes}\n" . "\n" . "🔹 温馨提示:\n" . " 1. 请提前10分钟到达洗车地点\n" . " 2. 如需改期或取消,请至少提前2小时联系我们\n" . " 3. 联系电话:138-0013-8000\n" . "\n" . "感谢您选择张老师撸车工作室!\n" . "祝您用车愉快!🚗✨" ], // 简洁模板 'simple' => [ 'title' => '预约确认', 'message' => "{customer_name},您的洗车预约已确认:\n" . "时间:{start_time}\n" . "项目:{package_name}\n" . "总价:{total_price}元\n" . "如需调整请联系我们。" ] ]; /** * 生成预约信息 * @param array $booking_data 预约数据数组 * @param string $template_name 使用的模板名称 * @return string 生成的预约信息 */ function generateBookingMessage($booking_data, $template_name = 'basic') { global $booking_templates; // 检查模板是否存在 if (!isset($booking_templates[$template_name])) { $template_name = 'basic'; // 默认使用基本模板 } $template = $booking_templates[$template_name]['message']; // 定义替换字段 $replacements = [ '{customer_name}' => $booking_data['customer_name'] ?? '未知客户', '{phone}' => $booking_data['phone'] ?? '未提供', '{car_model}' => $booking_data['car_model'] ?? '未提供', '{car_number}' => $booking_data['car_number'] ?? '未提供', '{member_type}' => $booking_data['member_type'] ?? '普通客户', '{package_name}' => $booking_data['package_name'] ?? '未选择套餐', '{custom_services}' => $booking_data['custom_services'] ?? '无', '{start_time}' => $booking_data['start_time'] ?? '未设置', '{end_time}' => $booking_data['end_time'] ?? '未设置', '{date}' => $booking_data['date'] ?? (isset($booking_data['start_time']) ? date('Y年m月d日', strtotime($booking_data['start_time'])) : '未设置'), '{time_range}' => $booking_data['time_range'] ?? (isset($booking_data['start_time'], $booking_data['end_time']) ? date('H:i', strtotime($booking_data['start_time'])) . ' - ' . date('H:i', strtotime($booking_data['end_time'])) : '未设置'), '{duration}' => $booking_data['duration'] ?? '未设置', '{total_price}' => $booking_data['total_price'] ?? '0.00', '{notes}' => $booking_data['notes'] ?? '无', '{status}' => $booking_data['status'] ?? '未确认', '{payment_status}' => $booking_data['payment_status'] ?? '未支付', '{source}' => $booking_data['source'] ?? '未知', '{created_at}' => $booking_data['created_at'] ?? date('Y-m-d H:i:s') ]; // 替换模板中的占位符 $message = str_replace(array_keys($replacements), array_values($replacements), $template); return $message; } /** * 获取指定模板的标题 * @param string $template_name 模板名称 * @return string 模板标题 */ function getTemplateTitle($template_name = 'basic') { global $booking_templates; if (isset($booking_templates[$template_name])) { return $booking_templates[$template_name]['title']; } return $booking_templates['basic']['title']; } /** * 获取所有可用的模板名称 * @return array 模板名称数组 */ function getAvailableTemplates() { global $booking_templates; return array_keys($booking_templates); } /** * 示例用法: * 1. 包含此文件:require_once 'booking_template.php'; * 2. 准备预约数据: * $booking_data = [ * 'customer_name' => '张三', * 'phone' => '138-0013-8000', * 'car_model' => '特斯拉 Model 3', * 'car_number' => '京A12345', * 'member_type' => 'VIP会员', * 'package_name' => '精致洗车套餐', * 'start_time' => '2023-10-01 10:00:00', * 'end_time' => '2023-10-01 11:00:00', * 'duration' => 60, * 'total_price' => '128.00', * 'notes' => '车顶上有行李架,请小心清洗', * 'status' => '已确认', * 'payment_status' => '已付款', * 'source' => '微信' * ]; * 3. 生成预约信息: * $message = generateBookingMessage($booking_data, 'detailed'); * 4. 输出或使用生成的信息: * echo $message; */ ?>