Вставка переменных оплаты в шаблон письма при заказе, вопрос ?

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

mihalanius M
Аватара
mihalanius M
Возраст: 50
Репутация: 2
Сообщения: 21
Зарегистрирован: 12.03.2017
С нами: 7 лет

Сообщение #1 mihalanius » 12.03.2018, 10:35

Сразу прошу прощения у администратора форума, но у меня мало знаний и потому спрашиваю у знающих людей.
Вопрос вот в чем:
Модули оплаты стандартные в движке не нужны, все платежи по разным системам будут в ручном режиме,
Редактирование способов оплаты сделал: там указаны номера кошельков куда человеку надо оплатить, но я хочу вставить тотже самый текст в шаблон пиьсма которое после оформления улетает к клиенту, чтобы он не метался и на почтке у него сразу уже были реквизиты для оплаты.
Подскажите какая переменная отвечает за текст оплаты в форме Детали оплаты:
из какого файла взять код переменной ?
чтобы можно было вставить код в шаблон письма и все, просто текст разны у способов на яндекс киви карту и др.
прицепляю картинку чтоб понятно было. Заранее всем спасибо!
Вложения
3.png

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #2 OkayCMS » 12.03.2018, 14:39

Судя по скрину, у вас ещё первая версия OkayCMS, там файл отвечающий за верстку письма находится по адресу design/okay_shop/html/email_order.tpl

mihalanius M
Аватара
mihalanius M
Возраст: 50
Репутация: 2
Сообщения: 21
Зарегистрирован: 12.03.2017
С нами: 7 лет

Сообщение #3 mihalanius » 12.03.2018, 15:29

OkayCMS писал(а):Судя по скрину, у вас ещё первая версия OkayCMS, там файл отвечающий за верстку письма находится по адресу design/okay_shop/html/email_order.tpl
Да я остановился на этой версии - так как в новых не работает много чего - хотя должно и что тому причиной неизвестно - старые версии отлично работают! Спасибо за интересый продукт, очень интересно с ним время проводить ))
email_order.tpl - да я знаю про этот файлик - просто хотел вставить в него код (переменную ) которая выводит текст в Детали оплаты:
хочу вставить этот же текст чтоб он в письме был - но не могу найти какой код вставить в email_order.tpl
Делал по принципу исключений логики - так как не спец.
1. в переводах нашел - значение Детали оплаты: - order_payment_details
стал искать код с этим названием в файле order.tpl
чтобы вставить его в email_order.tpl - пока не вышло - что то не так делаю. ))

я нашел это {$lang->order_payment_details}
и попытался вставить в email_order.tpl

sergeevizh
sergeevizh
Репутация: 17
Сообщения: 151
Зарегистрирован: 16.10.2016
С нами: 7 лет 5 месяцев

Сообщение #4 sergeevizh » 12.03.2018, 21:41

Было бы неплохо, конечно, выводить не только описание выбранного способа оплаты в тело письма клиенту.
Но и саму кнопку чтобы клиент мог не возвращаясь на сайт нажав на кнопку пройти процедуру оплаты.

Vanger M
Vanger M
Репутация: 5
Сообщения: 31
Зарегистрирован: 08.06.2016
С нами: 7 лет 9 месяцев

Сообщение #5 Vanger » 12.04.2021, 02:27

Да, было бы неплохо выводить инфо в письме (клиенту и админу) о выбранном способе оплаты и доставки
доставка выводится через {$delivery->name|escape}, а вот оплата перепробовал разные варианты - пока никак (видимо надо еще доработка в других файлах - Notify.php)
/backend/design/html/email/email_order_admin.tpl
/design/okay_shop/html/email/email_order.tpl

BRN M
BRN M
Репутация: 2
Сообщения: 1
Зарегистрирован: 25.04.2021
С нами: 2 года 11 месяцев

Сообщение #6 BRN » 25.04.2021, 15:11

Чтобы вывести в письме информацию об оплате нужно в шаблон email_order.tpl передать переменную с этими данными.
Для этого нужно в файл Okay/Core/Notify.php добавить несколько строк.
Открываем файл и после строки

Код: Выделить всё

namespace Okay\Core;

вставляем строку

Код: Выделить всё

use Okay\Entities\PaymentsEntity;

после строк

Код: Выделить всё

/** @var CurrenciesEntity $currenciesEntity */
$currenciesEntity = $this->entityFactory->get(CurrenciesEntity::class);

вставляем

Код: Выделить всё

/** @var PaymentsEntity $paymentsEntity */
$paymentsEntity = $this->entityFactory->get(PaymentsEntity::class);

после строк

Код: Выделить всё

// Способ доставки
$delivery = $deliveriesEntity->get($order->delivery_id);
$this->design->assign('delivery', $delivery);

вставляем

Код: Выделить всё

// Способ оплаты
$payment_method = $paymentsEntity->get((int)$order->payment_method_id);
$this->design->assign('payment_method', $payment_method);

Сохраняем файл. Теперь в шаблоне email_order.tpl доступны переменные {$payment_method->description} и {$payment_method->name}
Однако у меня возник другой вопрос, при обновлении cms файл Notify.php может быть перезаписан и данные правки исчезнут, есть ли способ вносить изменения в системные файлы другим способом?

nyc-xp
nyc-xp
Репутация: 3
Сообщения: 59
Зарегистрирован: 26.02.2021
С нами: 3 года 1 месяц

Сообщение #7 nyc-xp » 16.05.2021, 22:15

BRN писал(а):Чтобы вывести в письме информацию об оплате нужно в шаблон email_order.tpl передать переменную с этими данными.
Для этого нужно в файл Okay/Core/Notify.php добавить несколько строк.
Открываем файл и после строки

Код: Выделить всё

namespace Okay\Core;

вставляем строку

Код: Выделить всё

use Okay\Entities\PaymentsEntity;

после строк

Код: Выделить всё

/** @var CurrenciesEntity $currenciesEntity */
$currenciesEntity = $this->entityFactory->get(CurrenciesEntity::class);

вставляем

Код: Выделить всё

/** @var PaymentsEntity $paymentsEntity */
$paymentsEntity = $this->entityFactory->get(PaymentsEntity::class);

после строк

Код: Выделить всё

// Способ доставки
$delivery = $deliveriesEntity->get($order->delivery_id);
$this->design->assign('delivery', $delivery);

вставляем

Код: Выделить всё

// Способ оплаты
$payment_method = $paymentsEntity->get((int)$order->payment_method_id);
$this->design->assign('payment_method', $payment_method);

Сохраняем файл. Теперь в шаблоне email_order.tpl доступны переменные {$payment_method->description} и {$payment_method->name}
Однако у меня возник другой вопрос, при обновлении cms файл Notify.php может быть перезаписан и данные правки исчезнут, есть ли способ вносить изменения в системные файлы другим способом?

На v.4.0.3 работает! Спасибо Вам!

zyxer M
zyxer M
Возраст: 32
Репутация: 77
Сообщения: 419
Зарегистрирован: 03.02.2016
С нами: 8 лет 1 месяц
Откуда: Днепр

Сообщение #8 zyxer » 19.05.2021, 13:46

Добавил это в будущую версию окая
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS


Название раздела: Предложения по улучшению OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Предложения по улучшению OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 10 гостей