我对magento购物车有疑问。
无法发送标头;标题已经发送/homepages/14/d412931110/htdocs/shop/app/code/local/BTS/Checkout/Model/Observer.php,第91行
报告:
a:5:{i:0;s:137:"Cannot send headers; headers already sent in /homepages/14/d412931110/htdocs/shop/app/code/local/BTS/Checkout/Model/Observer.php, line 91";i:1;s:1601:"#0 /homepages/14/d412931110/htdocs/shop/lib/Zend/Controller/Response/Abstract.php(148): Zend_Controller_Response_Abstract->canSendHeaders(true)
#1 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Controller/Response/Http.php(105): Zend_Controller_Response_Abstract->setRedirect('http://www.puet...', 302)
#2 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Controller/Varien/Action.php(672): Mage_Core_Controller_Response_Http->setRedirect('http://www.puet...')
#3 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Checkout/controllers/CartController.php(92): Mage_Core_Controller_Varien_Action->_redirect('checkout/cart')
#4 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Checkout/controllers/CartController.php(225): Mage_Checkout_CartController->_goBack()
#5 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Controller/Varien/Action.php(420): Mage_Checkout_CartController->addAction()
#6 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('add')
#7 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#8 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Model/App.php(349): Mage_Core_Controller_Varien_Front->dispatch()
#9 /homepages/14/d412931110/htdocs/shop/app/Mage.php(640): Mage_Core_Model_App->run(Array)
#10 /homepages/14/d412931110/htdocs/shop/index.php(80): Mage::run('', 'store')
#11 {main}";s:3:"url";s:83:"/index.php/checkout/cart/add/uenc/aHR0cDovL3d3dy5wdWV0emNoZW4uY29tLw,,/product/229/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";}
请问有什么解决方案吗?
答案 0 :(得分:1)
请检查您的文件可能是您离开
回声, Zend_Debug :: dump(), 的print_r()强>
如果您对这些进行评论,那么您可以;面对“无法发送标题;标题已发送”问题
如果问题仍未解决,则将文件顶部的空格留下
所以请两个选项,你将解决你自己的问题
由于 Jayram Prajapati
答案 1 :(得分:0)
感谢您的回答!
echo
中没有Zend_Debug::dump()
,print_r()
,observer.php
。
这是内容:
class BTS_Checkout_Model_Observer {
private $_shippingCode = 'royalmail';
private $_country = 'DE';
public function addShipping($params = null) {
if (Mage::registry('checkout_addShipping')) {
Mage::unregister('checkout_addShipping');
return;
}
Mage::register('checkout_addShipping',true);
$cart = Mage::getSingleton('checkout/cart');
$quote = $cart->getQuote();
if ($quote->getCouponCode() != '') {
$c = Mage::getResourceModel('salesrule/rule_collection');
$c->getSelect()->where("code=?", $quote->getCouponCode());
foreach ($c->getItems() as $item) { $coupon = $item; }
if ($coupon->getSimpleFreeShipping() > 0) {
$quote->getShippingAddress()->setShippingMethod($this->_shippingCode)->save();
return true;
}
}
try {
$method = $quote->getShippingAddress()->getShippingMethod();
if ($method) return; // don't overwrite what's already there if we have one set already
if ($quote->getShippingAddress()->getCountryId() == '') {
$quote->getShippingAddress()->setCountryId($this->_country);
}
$quote->getShippingAddress()->setCollectShippingRates(true);
$quote->getShippingAddress()->collectShippingRates();
$rates = $quote->getShippingAddress()->getAllShippingRates();
$allowed_rates = array();
foreach ($rates as $rate) {
array_push($allowed_rates,$rate->getCode());
}
if (!in_array($this->_shippingCode,$allowed_rates) && count($allowed_rates) > 0) {
$shippingCode = $allowed_rates[0];
}
if (!empty($shippingCode)) {
$address = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress();
if ($address->getCountryId() == '') $address->setCountryId($this->_country);
if ($address->getCity() == '') $address->setCity('');
if ($address->getPostcode() == '') $address->setPostcode('');
if ($address->getRegionId() == '') $address->setRegionId('');
if ($address->getRegion() == '') $address->setRegion('');
$address->setShippingMethod($this->_shippingCode)->setCollectShippingRates(true);
Mage::getSingleton('checkout/session')->getQuote()->save();
} else {
$address = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress();
if ($address->getCountryId() == '') $address->setCountryId($this->_country);
if ($address->getCity() == '') $address->setCity('');
if ($address->getPostcode() == '') $address->setPostcode('');
if ($address->getRegionId() == '') $address->setRegionId('');
if ($address->getRegion() == '') $address->setRegion('');
$address->setShippingMethod($this->_shippingCode)->setCollectShippingRates(true);
Mage::getSingleton('checkout/session')->getQuote()->save();
}
Mage::getSingleton('checkout/session')->resetCheckout();
}
catch (Mage_Core_Exception $e) {
Mage::getSingleton('checkout/session')->addError($e->getMessage());
}
catch (Exception $e) {
Mage::getSingleton('checkout/session')->addException($e, Mage::helper('checkout')->__('Load customer quote error'));
}
}
public function getQuote() {
if (empty($this->_quote)) {
$this->_quote = Mage::getSingleton('checkout/session')->getQuote();
}
return $this->_quote;
}
}
感谢您的帮助!