2

我正在尝试构建一个 JQuery .post() 调用,该调用将从 getQuote 模型中删除用户优惠券......我的问题是它不会出错,也不会删除代码。这是我正在做的事情:

<?php

$mageFilename =  $_SERVER['DOCUMENT_ROOT'] . '/app/Mage.php';

require_once $mageFilename;
Mage::setIsDeveloperMode(false);
umask(0);
Mage::app('admin');

$session = Mage::getSingleton('checkout/session');
$quote = $session->getQuote();
$error = "fail";


if (isset($_POST['rem_coup'])) { 

    Mage::getSingleton("checkout/session")->setData("coupon_code","");

    //Apply the coupon to quote incase there is already a product in the cart or a quote is already generated
    Mage::getSingleton('checkout/cart')->getQuote()->setCouponCode("")->collectTotals()->save();

   $error = "success";
}

echo $error;

?>

当然它会返回“成功”,但不会删除代码。

这是完整的“removeFromCart.php”文件。我只需要一个简单的“从购物车中删除优惠券代码”脚本,我可以通过 jQuery .post() 调用远程使用它。我究竟做错了什么?

4

2 回答 2

1

我其实想通了...

<?php
$mageFilename =  $_SERVER['DOCUMENT_ROOT'] . '/app/Mage.php';

require_once $mageFilename;
Mage::setIsDeveloperMode(true);
umask(0);
Mage::app('*******_english');


$error = "fail";

if (isset($_GET['rem_coup'])) { 
        Mage::getSingleton('core/session', array('name'=>'frontend'));
        Mage::helper('checkout/cart')->getQuote()->setData('coupon_code','')->save();  
        $error = "success";
}
?>

@ Slayer Birden——你基本上是对的。我需要获取核心/会话。但是,对于我的结帐/购物车,我Mage::helper也不需要Mage::getSingleton。这是 Ajax 调用的工作版本。

于 2012-10-18T22:56:50.943 回答
1

由于您使用单独的脚本来处理 Magento,因此您需要正确启动会话才能使用 Magento 的会话。尝试在之后插入下一个代码Mage::app()

Mage::getSingleton('core/session', array('name' => 'frontend'))->start();
于 2012-10-18T21:46:35.263 回答