我正在使用 PrestaShop 1.7 并希望实现以下目标:
我在产品返回时添加退款原因,默认情况下 PrestaShop 没有这样的功能。
目前,我想从我的模块 TPL 文件中获取一个值。我创建了一个下拉列表,让用户选择他们的选项。然后我想将该值推送到 AdminOrdersController,因为 cancelProduct 按钮正在启动 Controller 。
型号:
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 是从另一个 Controller 调用的。
对于我创建的其他模块,表单将作用于模块 Controller ,我将使用 getValue 获取。但是对于这种情况,它使用的是现有按钮,我不知道如何将它推送到 AdminOrdersController。
最佳答案
对于零售商而言,最优雅且用户体验友好的解决方案是通过 Ajax 调用处理用户输入。
我实际上为 PrestaShop 零售商开发了类似的东西:
这个有效:
refund_reason 添加一个 ID输入栏cancelProduct 触发的表单提交按钮将您的元素添加到表单中,方法如下:
var input = $('<input>').attr('type', 'hidden').attr('name', 'refund_reason').val($('#refund_reason').val());
$('form').append(input);
在你的hookActionProductCancel()方法,只需使用 Tools::getValue('refund_reason') 检索您的值或 $_POST['refund_reason']
关于php - PrestaShop - 根据现有提交按钮向其他 Controller 提交值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56044994/
我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr
我知道您通常应该在Rails中使用新建/创建和编辑/更新之间的链接,但我有一个情况需要其他东西。无论如何我可以实现同样的连接吗?我有一个模型表单,我希望它发布数据(类似于新View如何发布到创建操作)。这是我的表格prohibitedthisjobfrombeingsaved: 最佳答案 使用:url选项。=form_for@job,:url=>company_path,:html=>{:method=>:post/:put} 关于ruby-on-rails-rails:Howtomak
我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden
我有一个rubyonrails应用程序。我按照facebook的说明添加了一个像素。但是,要跟踪转化,Facebook要求您将页面置于达到预期结果时出现的转化中。即,如果我想显示客户已注册,我会将您注册后转到的页面作为成功对象进行跟踪。我的问题是,当客户注册时,在我的应用程序中没有登陆页面。该应用程序将用户带回主页。它在主页上显示了一条消息,所以我想看看是否有一种方法可以跟踪来自Controller操作而不是实际页面的转化。我需要计数的Action没有页面,它们是ControllerAction。是否有任何人都知道的关于如何执行此操作的gem、文档或最佳实践?这是进入布局文件的像素
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g
我有一个Controller,我想为这个Controller创建一个助手,我可以在不包含它的情况下使用它。我尝试像这样创建一个与Controller同名的助手classCars::EnginesController我创建的助手是moduleCars::EnginesHelperdefcheck_fuellogger.debug("chekingfuel")endend我得到的错误是undefinedlocalvariableormethod`check_fuel'for#有没有我遗漏的约定? 最佳答案 如果你真的想在Controll
我有一个名为Post的类,我需要能够适应以下场景:如果用户选择了一个类别,则只显示该类别的帖子如果用户选择了一种类型,则只显示该类型的帖子如果用户选择了一个类别和类型,则只显示该类别中该类型的帖子如果用户没有选择任何内容,则显示所有帖子我想知道我的Controller是否不可避免地会因大量条件语句而显得粗糙...这是我解决此问题的错误方法-有谁知道我如何才能做到这一点?classPostsController 最佳答案 您最好遵循“胖模型,瘦Controller”的惯例,这意味着您应该将这种逻辑放在模型本身中。Post类应该能够报告
让多条路线去同一条路的最优雅的方式是什么ControllerAction?我有:get'dashboard',to:'dashboard#index'get'dashboard/pending',to:'dashboard#index'get'dashboard/live',to:'dashboard#index'get'dashboard/sold',to:'dashboard#index'这很丑陋。有什么“更优雅”的建议吗?一个类轮的奖励积分。 最佳答案 为什么不只有一个路由和一个Controller操作,并根据传递给它的参数来
我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption