【问题标题】:Magento 1.9 add parameter to add to cart urlMagento 1.9 添加参数以添加到购物车 url
【发布时间】:2015-03-04 14:36:00
【问题描述】:

我正在安装 Magento 1.9,它必须具有直接结帐以及添加到购物车按钮。两者之间的主要(也是唯一)区别是直接结帐链接应该跳过购物车并在单击时重定向到结帐。 我使用this code 来实现功能,如您所见,这里有a comment

“我需要做的就是将参数 /checkout/ 放到 url 中”。 快把我逼疯了。

所以这是检查,在观察者文件中

if (Mage::app()->getRequest()->getParam('checkout')) {

看起来很简单,但我一直在努力寻找答案,并在网上搜索如何以这种检查返回 true 的方式“addParam”。

这是我想要此功能的表单(操作):

<form action="<?php echo $this->helper('checkout/cart')->getAddUrl($_product) ?>checkout/" method="post" id="product_addtocart_form" <?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>

如您所见,我将 /checkout/ 手动添加到 url,当您查看浏览器指向的 url 时,它会起作用,即:

<form action="example.com/checkout/cart/add/uenc/aHR0cDovL2JrZm9vdHdlYXIuaHlwZXJub2RlLmlvL21hbi9yb2NvLmh0bWw,/product/5651/form_key/Zs9uAOj8oTuQFAbj/checkout/" method="post" id="product_addtocart_form" <input="" type="hidden" name="sid" value="checkout">

但它不起作用,看起来检查功能没有“看到”它。 我认为这有一个最简单的答案,但正如我所说,它已经让我好几天了。有什么想法吗?

也许将 if 语句更改为检查“checkout”是否在被调用的 url 中?

2016 年更新:在同样的情况下,我发现自己需要更改此解决方案以跟踪原因。我现在所做的(与this question 相关)是放置默认的“添加到购物车”按钮,并添加了另一个(默认)按钮,该按钮带有 jQ​​uery onClick 函数,将 url 设置为正确的 add-to-cart-URL变量产品的选择。 使用 AJAX 我检查 URL 是否被正确调用,如果是,则重定向到结帐。一个更简单的解决方案。

【问题讨论】:

    标签: php magento


    【解决方案1】:

    您的问题是您正在检查键“结帐”的解析参数,但 Magento 实际上已将参数存储为0 =&gt; 'checkout'。我建议改用此代码:

    模板

    $this->getAddToCartUrl($_product, array('checkout' => true))
    

    观察者

    $observer->getRequest()->getParam('checkout')
    

    确保在测试时清除/禁用缓存。

    【讨论】:

    • 谢谢!你的逻辑让我添加了正确的参数。虽然我也使用了我的一些代码。我还发现(对我感到羞耻)一个参数用花哨的引号而不是常规引号括起来。我最终用于表单:&lt;?php echo $this-&gt;helper('checkout/cart')-&gt;getAddUrl($_product, array('checkout' =&gt; true)) ?&gt; 并用于检查:if (Mage::app()-&gt;getRequest()-&gt;getParam('checkout')) 我添加了一个}else{语句.现在它起作用了。我永远感激不尽!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 2012-08-27
    • 2014-02-25
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多