我有条款和条件链接并添加了 Fancybox,但是当您单击链接时,它会显示整个网页,而不仅仅是花式框容器中的内容。
链接格式为 site/online-store/au/content/3-terms-and-conditions-of-use?content_only=1
但是 content_only=1 似乎没有做任何事情?
我有条款和条件链接并添加了 Fancybox,但是当您单击链接时,它会显示整个网页,而不仅仅是花式框容器中的内容。
链接格式为 site/online-store/au/content/3-terms-and-conditions-of-use?content_only=1
但是 content_only=1 似乎没有做任何事情?
问题是此链接正在从 https 页面加载非 https 内容。
要修复它,请编辑 controllers/front/ParentOrderController.php
$this->link_conditions = $this->context->link->getCMSLink($cms, $cms->link_rewrite, false);
并将最后一个参数更改为 true 以强制使用 https
$this->link_conditions = $this->context->link->getCMSLink($cms, $cms->link_rewrite, true);
这适用于 PrestaShop 1.6.x/1.7.x 并将在 Fancybox 中打开 ToS
在您的控制器中:
$cms = new CMS(Configuration::get('PS_CONDITIONS_CMS_ID'), $this->context->language->id);
$conditions_link = $this->context->link->getCMSLink($cms, $cms->link_rewrite).'?content_only=1';
$this->addJqueryPlugin(array('fancybox'));
$this->context->smarty->assign(['conditions_link' => $conditions_link]);
然后,在您的 .tpl 文件中:
<a class="fancybox-tos" href="{$conditions_link}">{l s='Terms of service' d='Shop.Theme.Checkout'}</a>
最后,在您的 .js 文件中:
$(document).ready(function() {
$('.fancybox-tos').fancybox({
type: 'iframe',
autoDimensions: false,
autoSize: false,
width: 600,
height: 'auto',
helpers: {
overlay: {
locked: false
}
}
});
});
我希望这有帮助!
问题是因为您加载的 CMS 没有所需的参数。因此,条件在
/controllers/front/CmsController.php
if (Configuration::get('PS_SSL_ENABLED') && Tools::getValue('content_only') && $id_cms && Validate::isLoadedObject($this->cms) && in_array($id_cms, array((int)Configuration::get('PS_CONDITIONS_CMS_ID'), (int)Configuration::get('LEGAL_CMS_ID_REVOCATION'))))
{
$this->ssl = true;
}
返回假。只需将其替换为
$this->ssl = true;
田...