我正在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');
我的模板文件路径为:mymodule/views/templates/front/payment.tpl
payment.tpl 包含:
<script src="http://easternbank.test.gateway.com/checkout.js" data-complete="{$dataCompleteURL}" type="text/javascript"> </script>
问题在于在我的本地主机上它运行良好。我在脚本标签中获得了data-complete URL。但是当我在测试服务器上安装模块时,我没有获得data-complete URL。
任何帮助或建议都将受到赞赏。
提前致谢。
更新
我发现问题出在“src”中的“https”。如果src URL以https开头,则无法理解为什么data-complete会消失。没有https就可以。
当我查看以下代码在src中有https的源代码时,我会得到:
<script src="http://easternbank.test.gateway.com/checkout.js" data-complete="{$dataCompleteURL}" type="text/javascript"> </script>
data-complete属性消失了。但是当我查看没有“https”的src脚本的源代码时,我可以看到data-complete属性。
我找不到原因。
或者,我可以在payment.php控制器中添加JavaScript:
$this->context->controller->addJS(($this->_path).'js/checkout.js');
但是我不知道如何在addJS函数中传递数据属性。