Попробуйте что-то вроде этого:
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, похоже, имеет побочные эффекты.См. Выше.
РЕДАКТИРОВАТЬ: включить исправления для потомков.