【问题标题】:Programmatically setting a custom customer attribute以编程方式设置自定义客户属性
【发布时间】:2013-05-26 13:15:07
【问题描述】:

是否可以以编程方式设置自定义客户属性的值?我已经在互联网上搜索了这个问题的答案,但无济于事:(。

我知道您可以使用此方法访问一个:

$customer = Mage::getSingleton('customer/session')->getCustomer();
$measurements_taken = $customer->getResource()->getAttribute('measurements_taken')->getFrontend()->getValue($customer);

但我不太确定如何设置此属性的值。我尝试了以下方法:

$customer = Mage::getSingleton('customer/session')->getCustomer();
$customer->setMeasurementsTaken('TO_CHECK');
$customer->saveAttribute($customer,'measurements_taken');

但它会抛出一个错误,说明方法无效。

【问题讨论】:

  • 请完成错误.......................

标签: magento attributes custom-attributes


【解决方案1】:

进行更新后,

$customer->save();

$customer->setMeasurementsTaken('TO_CHECK')->save();

【讨论】:

  • 这对他的错误“关于无效方法的错误说明”无济于事......
  • @Bixi 怎么会没有帮助? Mage_Customer_Model_Session::getCustomer() 返回一个Mage_Customer_Model_Customer 的实例,它没有有一个saveAttribute() 方法,但有一个save() 方法。
  • 我试过了,它没有抛出任何错误!但是,它并没有改变后端属性的值:(
  • @NateTheGreatt 您可能需要根据本地配置设置一些额外的范围相关信息。您可以在Mage_Customer_Model_Resource_Customer::_beforeSave() 中调试它
  • 我意识到这是一个下拉选择属性!将其更改为文本字段属性就像一个魅力:)。但是,为了知识,你知道如何更改下拉选择属性吗?
猜你喜欢
  • 2016-06-12
  • 2015-11-22
  • 2014-10-24
  • 2012-08-20
  • 1970-01-01
  • 1970-01-01
  • 2017-08-05
  • 1970-01-01
  • 2021-04-17
相关资源
最近更新 更多