account/contact-detail

Chi tiết một yêu cầu hỗ trợ và các phản hồi.

Ngoài những biến dưới đây, slot này còn nhận toàn bộ biến toàn cục.

Biến của trang

Biến Kiểu Mô tả Từ phiên bản
contact Contact Yêu cầu hỗ trợ đang xem, kèm lịch sử trả lời. 1.0
error string | null Thông báo lỗi khi gửi phản hồi thất bại. 1.0

Mã đầy đủ

Toàn bộ tệp account/contact-detail.html của bộ giao diện mặc định. Chép về templates/<bộ giao diện của bạn>/account/contact-detail.html rồi sửa theo ý muốn.

{%- comment -%}
  /tai-khoan/lien-he/{id} — MỘT tin nhắn khách đã gửi. Chỉ đọc.

  Từ 1.1 không còn hội thoại: `contact.body` là nội dung, `contact.messages`
  đã bị bỏ, và không còn form trả lời. Tính năng hội thoại thuộc về module
  ticket trong tương lai.

  ⚠️ `contact.body` do KHÁCH nhập và API trả về đúng như đã gõ. Liquid KHÔNG tự
     escape, nên mọi giá trị người dùng nhập đều phải qua `| escape`.
  ⚠️ Mảng rỗng là TRUTHY trong Liquid — chặn `attachments` bằng `.size > 0`.
  ⚠️ KHÔNG hiển thị `is_spam` / `spam_score`: đó là thông tin nội bộ của nhân
     viên, và cho khách thấy điểm spam của chính họ vừa vô ích vừa xúc phạm.
{%- endcomment -%}

{%- assign ct_status = contact.status | default: '' -%}

<div class="container page-content">
  <div class="account-layout">
    {% assign active_page = 'contacts' %}
    {% include 'account/_sidebar' %}
    <div class="account-main">
      <a href="/tai-khoan/lien-he" class="back-link">← Quay lại</a>
      <h1 class="page-title">{{ contact.title | escape }}</h1>
      <span class="badge badge--{{ ct_status }}">
        {% if ct_status == 'handled' %}Đã xử lý{% elsif ct_status == 'new' %}Mới{% else %}{{ ct_status | escape }}{% endif %}
      </span>

      {% if error %}<div class="alert alert--error">{{ error | escape }}</div>{% endif %}

      <div class="message">
        <p class="message__body" style="white-space:pre-line">{{ contact.body | escape }}</p>
        <p class="message__meta">{{ contact.created_at | date: '%d/%m/%Y %H:%M' }}</p>
      </div>

      {% if contact.attachments.size > 0 %}
        <ul class="attachments">
          {% for a in contact.attachments %}
            <li>
              <a href="{{ a.url }}" target="_blank" rel="noreferrer noopener">{{ a.original_name | escape }}</a>
            </li>
          {% endfor %}
        </ul>
      {% endif %}
    </div>
  </div>
</div>