1

我正在开发一个废弃的购物车模块,当用户单击 url 时,需要将购物车数据替换到 url 中。我能够将购物车对象放入变量中,并且还能够获取 url。现在的问题是,当用户单击该 url 时,它仅显示存储 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;
    }

现在我如何将购物车对象替换为 url,以便用户不必手动添加产品。

我在用

Joomla 2.5.8

php 5.4.3

Virtuemart 2.0.14

4

1 回答 1

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
    // .
    // .
}

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

于 2013-05-30T22:42:47.817 回答