Тема - представлять ценность для других контроллер на основе существующих кнопку "Отправить"
Я использую PrestaShop 1.7 и хотел бы добиться следующего :
Я добавляю причину возврата при возврате продукта, которая по умолчанию PrestaShop не имеет такой функции.
На данный момент я хотел бы получить значение из моего файла модуля TPL. Я создал выпадающий список, который позволяет пользователю выбрать свой вариант. Затем я хотел бы нажать это значение на AdminOrdersController, поскольку кнопка cancelProduct инициирует контроллер.
Модель:
public function hookDisplayAdminOrder($params)
{
return $this->display(__FILE__, 'views/templates/admin/refund_reason.tpl');
}
TPL:
<div class="panel">
<div class="panel-heading">
<i class="icon-money"></i>
Pick A Reason For Refunding
</div>
<select name="refund_reason" style="width: 300px;">
<option value="0"></option>
<option value="1">Out of stock</option>
<option value="2">Incorrect product sent to user</option>
<option value="3">Defective/faulty product</option>
<option value="4">Poor quality on receipt (dirty, poor stitching etc)</option>
<option value="5">Looks different from image on website</option>
<option value="6">Size does not fit user</option>
<option value="7">Change of mind</option>
<option value="8">No indication/Others</option>
</select>
После того, как администратор нажал кнопку возврата продукта, он инициирует следующее :
elseif (Tools::isSubmit('cancelProduct') && isset($order)) {
// retrieve user input here
}
Я создал модуль, который использует hook hookActionProductCancel для добавления дополнительной функции, как только кнопка вызывается тоже, он отправляет обратно суммы возврата в соответствующий банк через API.
Итак, может ли кто-нибудь указать, как я могу захватить пользовательский ввод, поскольку я не понимаю, как отправить форму, поскольку кнопка cancelProduct вызывает другой контроллер.
Для других модулей, которые я создал, форма будет действовать на контроллер модуля, и я возьму с getValue. Но в этом случае он использует существующую кнопку, и я понятия не имею, как нажать ее на AdminOrdersController.
Ответы - Тема - представлять ценность для других контроллер на основе существующих кнопку "Отправить" / PrestaShop - Submitting Value to Other Controller Based on Existing Submit Button

08.05.2019 08:51:40
Наиболее элегантным решением и UX-дружественным для ритейлера было бы обрабатывать пользовательский ввод с помощью вызова Ajax.
Я на самом деле разработал нечто подобное для магазина PrestaShop:
Эта работа:
- Добавьте идентификатор в
refund_reason
ввода refund_reason - В вашем.TPL-файл или через отдельный JS-файл, который вы включаете, используйте jQuery, чтобы поймать отправку формы, вызванную
cancelProduct
В вашем
var input = $('<input>').attr('type', 'hidden').attr('name', 'refund_reason').val($('#refund_reason').val()); $('form').append(input);
просто извлеките значение сhookActionProductCancel()
илиTools::getValue('refund_reason')



