我尝试从magento重写核心文件.不知何故,它不会覆盖代码.我尝试覆盖函数getProduct().
Tipfix /座/产品/ View.php
<?php
class WP_Tipfix_Block_Catalog_Product_View extends Mage_Catalog_Block_Product_View
{
public function getProduct()
{
if (!Mage::registry('product') && $this->getProductId()) {
$product = Mage::getModel('catalog/product')->load($this->getProductId());
Mage::register('product', $product);
}
//return Mage::registry('product');
}
}
Run Code Online (Sandbox Code Playgroud)
Tipfix的/ etc/config.xml中
<blocks>
<WP_Tipfix>
<class>WP_Tipfix_Block</class>
</WP_Tipfix>
<catalog>
<rewrite>
<product_view>WP_Tipfix_Block_Catalog_Product_View</product_view>
</rewrite>
</catalog>
</blocks>
Run Code Online (Sandbox Code Playgroud)
我知道我做错了什么.
克.莱克斯
我想将客人订单链接到Magento中的现有帐户.有人知道我必须在哪些表上更改哪些字段才能完成此操作?
可能有更简单的方法吗?
我尝试在购物车中添加额外的产品.我为此创建了一个观察者.
<?php
class WP_Plugadapter_Model_Observer
{
public function hookToControllerActionPostDispatch($observer)
{
if($observer->getEvent()->getControllerAction()->getFullActionName() == 'checkout_cart_add')
{
Mage::dispatchEvent("add_to_cart_after", array('request' => $observer->getControllerAction()->getRequest()));
}
}
public function hookToAddToCartAfter($observer)
{
$request = $observer->getEvent()->getRequest()->getParams();
$_product = Mage::getModel('catalog/product')->load($request['product']);
$extra_functions = $_product->getExtra_functions();
if(!empty($extra_functions)){
$extra_functions = explode(',', $extra_functions);
if(array_search('121', $extra_functions)){
$cart = Mage::getSingleton('checkout/cart');
$cart->addProduct(10934, 1);
$cart->save();
if (!$cart->getQuote()->getHasError()){
Mage::log("Product ADD TO CART is added to cart.");
}else{
Mage::log("BOEM");
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我检查我的系统日志时,我看到以下日志消息.产品添加到购物车已添加到购物车.
我不知道我做错了什么.当脚本独立加载时,它运行正常.例如:
<?php
include_once '../app/Mage.php';
Mage::app();
umask(0);
$session = Mage::getSingleton('core/session', array('name'=>'frontend'));
$cart = Mage::getSingleton('checkout/cart');
$cart->addProduct(10934, 1);
$cart->save(); …Run Code Online (Sandbox Code Playgroud)