我想在我的多卖家Magento网站上更新卖家的群组ID。
function becomesellerAction() {
$adminApproval = Mage::getStoreConfig('marketplace/admin_approval_seller_registration/need_approval');
$approval = 0;
if ($adminApproval == 1) {
$approval = 0;
} else {
$approval = 1;
}
$getGroupId = Mage::helper('marketplace')->getGroupId();
Mage::log($getGroupId,null,'logthis.log');
$customer = Mage::getSingleton("customer/session")->getCustomer();
$customer->setGroupId($getGroupId)->save();
在日志中,我确实看到$ getGroupId = 4这就是我想要的。但是数据库继续具有默认值1.基本上,这不是将值保存到数据库。需要保存的数据库中的表是'customer_entity'。
我尝试使用直接查询:
$resource = Mage::getSingleton('core/resource');
$writeConnection = $resource->getConnection('core_write');
$getGroupId = Mage::helper('marketplace')->getGroupId();
$email = $customer->getEmail();
$query = "UPDATE customer_entity SET group_id = '{$getGroupId}' WHERE email = '{$email}'";
Mage::log($query, null,'query.log');
$writeConnection->query($query);
这适用于所有环境。
奇怪的是,原始代码在我的本地工作正常但不在测试或生产中(本地是WAMP,prod / test是Apache / Linux)。
指出我在这里做错了什么?当这样的save()操作失败时是否会创建一个日志?