如何检查用户是否在Prestashop的结帐页面

时间:2014-12-09 23:58:12

标签: php smarty prestashop

我想检查用户是否在结帐页面,所以我尝试了以下内容:

{if $page_name = 'cart'}
...
{/if}

除了“购物车”之外,我还尝试过“结帐”,“订购”等。

显然它不起作用。

我正在尝试编辑header.tpl,而对于记录我正在使用一页结帐。

任何人都可以帮助我朝正确的方向发展吗?

4 个答案:

答案 0 :(得分:1)

更改' ='到' =='

            HttpRequestMessage httpRequest = new HttpRequestMessage();
            httpRequest.Method = HttpMethod.Post;
            httpRequest.RequestUri = URL;
            httpRequest.Content = formContent ;

            response  =await client.SendAsync(httpRequest);

答案 1 :(得分:0)

我认为

{if $page_name == 'order-opc'}

应该为您提供单页结帐页面。

*已修改的答案可以将=更改为==,抱歉...

答案 2 :(得分:0)

对于正在寻找此问题答案的其他人

您可以在header.phtml文件

中编写以下代码
{if $page_name != 'order'}

    <!-- your output -->

                {/if}

答案 3 :(得分:0)

我的工作解决方案在prestashop 1.7.2.0购物车页面

转到\ controllers \ front \ CartController.php

找到代码

if (count($presented_cart['products']) > 0) {
    $this->setTemplate('checkout/cart');
} else {
    $this->context->smarty->assign([
        'allProductsLink' => $this->context->link->getCategoryLink(Configuration::get('PS_HOME_CATEGORY')),
    ]);
    $this->setTemplate('checkout/cart-empty');
}

添加行($ this-&gt; context-&gt; smarty-&gt; assign(['cart_detect'=&gt; 1]);)如下所示:

if (count($presented_cart['products']) > 0) {
    $this->setTemplate('checkout/cart');
    $this->context->smarty->assign(['cart_detect' => 1]);
} else {
    $this->context->smarty->assign([
        'allProductsLink' => $this->context->link->getCategoryLink(Configuration::get('PS_HOME_CATEGORY')),
    ]);
    $this->setTemplate('checkout/cart-empty');
}

在您的模板中,您可以使用新变量“cart_detect”,如下所示:

{if !isset($cart_detect)}

     {*if not a cart*}

{/if}