我已覆盖Mage_Tax_model_Calculation::getRate
,因此我不想为某些客户征税。我没有特别的客户课。在magento中获取Mage_Tax_Model_Calculation :: getRate中的客户
我有一个自定义字段在我的客户模型,这是我想检查我可以载入我的客户模型后,如果该字段的值我不含税他,否则我叫parent::getRate($request)
是它有可能在功能中得到。
我已覆盖Mage_Tax_model_Calculation::getRate
,因此我不想为某些客户征税。我没有特别的客户课。在magento中获取Mage_Tax_Model_Calculation :: getRate中的客户
我有一个自定义字段在我的客户模型,这是我想检查我可以载入我的客户模型后,如果该字段的值我不含税他,否则我叫parent::getRate($request)
是它有可能在功能中得到。
尝试是这样的:
function getRate($request) {
// find a customer ID
$admin_session = Mage::getSingleton('adminhtml/session_quote');
if($admin_session) {
if($admin_session->getCustomerId()) {
$customer_id = $admin_session->getCustomerId();
}
} else {
$customer_id = Mage::getSingleton("customer/session")->getCustomerId();
}
// find customer attr
if($customer_id) {
$customer = Mage::getModel("customer/customer")->load($customer_id);
if($customer->getSomeColumnValue()) {
return 0;
}
}
// fallthrough
return parent::getRate($request);
}
希望帮助!
谢谢, 乔
编辑:好点;)
翻翻adminhtml代码,它似乎比正常的客户代码几乎没什么用处。我希望打个电话给Mage :: register,但那没有发生。我发现了一个可能的解决方案,但在Magento中加载会话似乎有副作用。往上看。
重新编辑:将您的修复程序纳入后人。
尝试使用此方法加载当前登录的用户:
$session = Mage::getSingleton('customer/session');
$customer = Mage::getModel('customer/customer')->load($session->getCustomerId());
$customValue = $customer->getCustomFieldName();
干杯, JD
谢谢,这可以在客户订购时起作用,但管理员也有可能为客户订购。 – 2010-11-05 12:48:55
谢谢,这会在客户订购时起作用,但管理员也有可能为客户订购。 – 2010-11-05 12:48:29
谢谢,它的工作。除了一个小错误。第二,如果($ admin_session && $ admin_session-> getCustomerId())' '这个测试打破了测试 两个如此平坦如果admin_session为true,我们不会尝试加载'customer/session' – 2010-11-05 14:23:37
好想法:) – 2010-11-05 18:33:52