如何将购物车数据替换为url?

时间:2013-05-30 04:46:15

标签: php url-rewriting joomla2.5 session-variables virtuemart

我正在处理一个废弃的购物车模块,当用户点击网址时,需要将购物车数据替换为网址。我能够将cart对象放入变量并且还能够获取url。现在问题是,当用户点击该网址时,它只显示该网址所在的网页...如何更换购物车数据,以便购物车在用户点击时也应保持原样(例如,如果购物车有两个产品比用户经过长时间点击url后发送给他们的推车还有两个产品,因此用户无需再次手动添加产品。

//To Get Cart Object
$cart = VirtueMartCart::getCart();

//To Store Cart data into database
$d=json_encode($cart);

// Function to get url
function curPageURL()
    {
         $pageURL = 'http';
         if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
         $pageURL .= "://";
         if ($_SERVER["SERVER_PORT"] != "80")
         {
         $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
         }
         else
         {
          $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
         }
            return $pageURL;
    }
    {
        echo curPageURL();
        exit;
    }

现在我如何将购物车对象替换为网址,以便用户无需手动添加产品。

我正在使用

Joomla 2.5.8

Php 5.4.3

Virtuemart 2.0.14

1 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,您只需将购物车添加到URL作为查询变量即可。尝试类似:

//To Get Cart Object
$cart = VirtueMartCart::getCart();

//To Store Cart data into database
$d=json_encode($cart);

$url = curPageUrl() . '&cart=' . $d;

如果您希望链接设置购物车价值,您需要在页面加载时检查查询字符串中的购物车变量,并使用以下内容初始化购物车:

$app = JFactory::getApplication();
$imp = $app->input;
$cart = $imp->get('cart','')
if($cart!=''){
    $cart = json_decode($cart);
    // initialize the VirtualMartCart from the $cart variable
    // .
    // .
}

要记住的一件事是,如果您使用模块处理查询字符串并初始化可能由显示在同一页面上的其他组件使用的购物车,则可能会出现几个问题。