Jah*_*lam 14 javascript php prestashop prestashop-1.6
我正在PrestaShop 1.6中开发自定义支付模块.我的前端控制器路径是:mymodule/controllers/front/payment.php
payment.php包含:
$this->context->smarty->assign(array(
'dataCompleteURL' => Tools::getShopDomainSsl(true, true) . __PS_BASE_URI__.'index.php?fc=module&module=mymodule&controller=callback&cart='.$cartID));
$this->setTemplate('payment.tpl');Run Code Online (Sandbox Code Playgroud)
我的模板文件路径是:
mymodule/views/templates/front/payment.tpl
payment.tpl包含:
<script src="http://easternbank.test.gateway.com/checkout.js" data-complete="{$dataCompleteURL}" type="text/javascript"> </script>Run Code Online (Sandbox Code Playgroud)
问题是在我的localhost中工作正常.我在脚本标记中获得了数据完整的URL.但是当我在我的测试服务器中安装模块时,我没有得到数据完整的URL.
任何帮助或建议将不胜感激.
提前致谢.
UPDATE
我发现问题是脚本标记的"src"中的"https".我无法理解为什么如果src URL以https开头,数据完成就会消失.没有https就可以了.
当我在浏览器中查看源代码时,在src中使用https查看以下代码,我得到:
<script src="http://easternbank.test.gateway.com/checkout.js" data-complete="{$dataCompleteURL}" type="text/javascript"> </script>Run Code Online (Sandbox Code Playgroud)
data-complete属性消失了.但是当我使用没有"https"的src查看脚本的源代码时,我得到了data-complete属性.
我找不到原因.
或者 我可以使用以下命令在payment.php控制器中添加javascript:
$this->context->controller->addJS(($this->_path).'js/checkout.js');Run Code Online (Sandbox Code Playgroud)
但我不知道如何在addJS函数中传递数据属性.
最后我找到了解决方案.这对我来说似乎很奇怪.因为我在prestashop中只对BO进行了以下更改:
而已.我的问题解决了.
顺便说一下,我从这个问题中学到了一些东西:我应该在prestashop后台尝试过所有可能的配置选项.
我不认为这个选项可以解决这类问题.但它是.所以尝试一切可能的方法应该是解决问题的关键公式,尽管这似乎与有关的问题背景无关.
| 归档时间: |
|
| 查看次数: |
650 次 |
| 最近记录: |