Разный текст уведомления для разного статуса заказа — различия между версиями
Материал из Umicms
Mad grant (обсуждение | вклад) |
Mad grant (обсуждение | вклад) |
(нет различий)
|
Версия 15:36, 3 апреля 2014
Актуально для версии 2.9.6
Задача
Сделать для разных статусов разный текст письма-уведомления клиенту.
Решение
Решить задачу в xslt шаблоне письма можно с помощью <xsl:if> в связке XPath функции contains(), ниже дан пример шаблона.
Пример
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://i18n/constants.dtd:file">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="utf-8" method="html" indent="yes" />
<!-- Уведомления клиенту об изменениях статуса заказа -->
<xsl:template match="status_notification">
<xsl:text>Ваш заказ #</xsl:text>
<xsl:text> </xsl:text>
<xsl:value-of select="order_number" />
<!-- Начало условий по статусу -->
<xsl:choose>
<!-- Уведомления о статусе заказа -->
<xsl:when test="contains(status, 'поступил в обработку')">
был получен
</xsl:when>
<xsl:when test="contains(status, 'отменён')">
был отменен =(
</xsl:when>
<xsl:when test="contains(status, 'отклонён')">
был отклонен =(
</xsl:when>
<xsl:when test="contains(status, 'доставляется')">
доставляется
</xsl:when>
<xsl:when test="contains(status, 'готов')">
готов
</xsl:when>
<xsl:when test="contains(status, 'принят')">
принят
</xsl:when>
<xsl:when test="contains(status, 'оплачивается')">
оплачивается
</xsl:when>
<xsl:when test="contains(status, 'редактируется')">
редактируется
</xsl:when>
<!-- Уведомления о статусе оплаты -->
<xsl:when test="contains(status, 'ожидает оплаты')">
ожидает платы
</xsl:when>
<xsl:when test="contains(status, 'оплачен')">
был оплачен
</xsl:when>
<xsl:when test="contains(status, 'обновлен: оплата подтверждена')">
был обновлен, оплата подтверждена
</xsl:when>
<xsl:when test="contains(status, 'обновлен: оплата отклонена')">
был обновлен, оплата отклонена
</xsl:when>
<!-- Уведомления о статусе доставки -->
<xsl:when test="contains(status, 'ожидает отгрузки')">
ожидает отгрузки
</xsl:when>
<xsl:when test="contains(status, 'доставляется')">
отправлен
</xsl:when>
<xsl:when test="contains(status, 'доставлен')">
доставлен
</xsl:when>
</xsl:choose>
<!-- Конец условий по статусу -->
<xsl:text>Посмотреть историю заказов вы можете в своем </xsl:text>
<a href="http://{domain}/emarket/personal/">
<xsl:text>личном кабинете</xsl:text>
</a>.
</xsl:template>
<!-- Уведомление клиенту в случае оплаты квитанцией -->
<xsl:template match="status_notification_receipt">
<xsl:text>Ваш заказ #</xsl:text>
<xsl:value-of select="order_number" />
<xsl:text> </xsl:text>
<xsl:value-of select="status" />
<br/><br/>
<xsl:text>Посмотреть историю заказов вы можете в своем </xsl:text>
<a href="http://{domain}/emarket/personal/">
<xsl:text>личном кабинете</xsl:text>
</a>.
<br/><br/>
<xsl:text>Квитанцию на оплату вы можете получить, перейдя по </xsl:text>
<a href="http://{domain}/emarket/receipt/{order_id}/{receipt_signature}/">
<xsl:text>этой ссылке</xsl:text>
</a>.
</xsl:template>
<!-- Уведомления менеджеру о новом заказе -->
<xsl:template match="neworder_notification">
<xsl:text>Поступил новый заказ #</xsl:text>
<xsl:value-of select="order_number" />
<xsl:text> (</xsl:text>
<a href="http://{domain}/admin/emarket/order_edit/{order_id}/">
<xsl:text>Просмотр</xsl:text>
</a>
<xsl:text>)</xsl:text><br/><br/>
<xsl:text>Способ оплаты: </xsl:text>
<xsl:value-of select="payment_type" /><br/>
<xsl:text>Статус оплаты: </xsl:text>
<xsl:value-of select="payment_status" /><br/>
<xsl:text>Сумма оплаты: </xsl:text>
<xsl:value-of select="price" /><br/>
</xsl:template>
</xsl:stylesheet>
Уникальный для статуса текст нужно вставлять между тегами <xsl:when>.