我现在已经挣扎了2个小时,一直在寻找解决方案。
我正在使用Zen-Cart安装,我决定抛出一些动态横幅。基本上我使用jQuery.get()从banner1.php加载一个URL - banner1.php有一些网址(这是产品页面)的数组,它从数组中回传一个随机网址。
随后jQuery加载了随机URL,然后我使用jQuery.load()函数加载产品图片,产品价格和产品名称。
所有这一切都很好,但问题是看起来load()函数干扰了我的Zen-Cart“重定向”功能。假设您正在查看产品,我们将其称为“产品A” - 您决定通过单击“登录”按钮从该页面登录 - 您将进入登录页面,输入您的登录详细信息,然后点击“提交”。标准结果是,如果您已成功登录,则会返回“产品A”页面。但是使用我的小动态jQuery横幅混合,而不是重定向回“产品A”,它加载jQuery.load()用于生成随机横幅的一个页面。我有3个横幅,每个都动态加载一个随机网址,但这里是横幅1的示例:
<script type="text/javascript">
$.get("banner1.php", function(getbannerlink1) {
$( document ).ready(function() {
$("#banner1").load(getbannerlink1+ " #globalproductimage");
$('#banner1name').load(getbannerlink1+ " #productName", function(result) {
var banner1text = $('#banner1name').html();
banner1text = jQuery(banner1text).text();
$("#banner1name").html(banner1text);
});
$('#banner1price').load(getbannerlink1+ " #productPrices", function(result) {
var banner1prices = $('#banner1price').html();
banner1prices = jQuery(banner1prices ).text();
$("#banner1price").html(banner1prices );
});
var bannerlink1 = $("<a>").attr("href", getbannerlink1);
$("#banner1name").wrap(bannerlink1);
$("#banner1price").wrap(bannerlink1);
$("#banner1").wrap(bannerlink1);
});
});
</script>
事情是,一旦客户登录,我不太关心错误的重定向,当客户一次实际结账时,问题也会发生最令人失望。例如,如果他们要在购物篮中放置产品,请单击Checkout按钮,然后要求他们登录,一旦他们登录,而不是继续使用标准购物车功能将他们带到结帐的第一步进程,它将它们重定向到动态横幅已加载的其中一个页面。我不知道如何解决这个问题,我尝试了一些奇怪的事情无济于事。为了参考,可能需要这个,这是在登录后处理重定向的Zen-Cart功能:
if (sizeof($_SESSION['navigation']->snapshot) > 0) {
// $back = sizeof($_SESSION['navigation']->path)-2;
//if (isset($_SESSION['navigation']->path[$back]['page'])) {
// if (sizeof($_SESSION['navigation']->path)-2 > 0) {
$origin_href = zen_href_link($_SESSION['navigation']->snapshot['page'], zen_array_to_string($_SESSION['navigation']->snapshot['get'], array(zen_session_name())), $_SESSION['navigation']->snapshot['mode']);
// $origin_href = zen_back_link_only(true);
$_SESSION['navigation']->clear_snapshot();
zen_redirect($origin_href);
} else {
zen_redirect(zen_href_link(FILENAME_DEFAULT, '', $request_type));
}
请帮忙!也许有一种更简单的方法我应该这样做:/
我注意到它加载的页面始终是jQuery.load()加载的最后一个标题。就像我提到的那样,总共有3个横幅,所以如果Banner 2的价格是最后一个要加载的价格,那就是在重定向中加载的URL。
编辑: banner1.php(这只是从数组中生成一个随机url,但目前出于测试目的,我在数组中只有一个URL):
<?php
$strings = array('http://example.com/index.php?main_page=product_info&cPath=3&products_id=104');
echo $strings[array_rand($strings)];
?>
答案 0 :(得分:0)
横幅页面似乎正在设置快照href。我假设您在设置会话导航快照的横幅网址中包含了一些Zen购物车库。您可以设置一些内容来忽略快照的URL。
添加横幅代码可能有助于解决此问题。
虽然我不推荐它,但您可以添加逻辑,以便在登录后不会重定向到某些页面。