Php 无法再在Magento 1.4.2.0中添加注册字段

Php 无法再在Magento 1.4.2.0中添加注册字段,php,magento,magento-1.4,e-commerce,Php,Magento,Magento 1.4,E Commerce,我以前使用过这个教程 它一直有效,但自从我升级到Magento 1.4.2.0后,它就不再有效了。我添加的属性不再像以前那样显示在后端的“客户信息”选项卡下,并且不会保存。不过,这些属性可以很好地安装到数据库中。我认为config.xml部分可能已经更改,但我将其与core customer one进行了对比,属性显示方式相同: <flavour><create>1</create><update>1</update></flav

我以前使用过这个教程

它一直有效,但自从我升级到Magento 1.4.2.0后,它就不再有效了。我添加的属性不再像以前那样显示在后端的“客户信息”选项卡下,并且不会保存。不过,这些属性可以很好地安装到数据库中。我认为config.xml部分可能已经更改,但我将其与core customer one进行了对比,属性显示方式相同:

<flavour><create>1</create><update>1</update></flavour>
11
自上一个1.4.2测试版以来,一定发生了一些变化,因为它当时运行良好。如果有人有任何想法,我将不胜感激,我终于可以睡一觉了!提前谢谢

试试这个:


我一直在努力解决这个问题,直到我找到了答案。从1.4.2开始,要在管理员的客户表单中显示的属性必须在表customer\u form\u attribute中。
您可以通过升级在模块的设置中添加它们,代码如下:

$eavConfig = Mage::getSingleton('eav/config');
$attribute = $eavConfig->getAttribute('customer', 'your_attributes_code');
$attribute->setData('used_in_forms', array('adminhtml_customer'));
$attribute->save();

希望对您有所帮助。

以上提示非常有用,谢谢David

使新属性可保存在前端(注册和编辑) 只需按如下方式展开$attribute->setData的第二个参数数组:

$eavConfig = Mage::getSingleton('eav/config');
$attribute = $eavConfig->getAttribute('customer', 'flavour');
$attribute->setData('used_in_forms',   array('customer_account_edit',
                                             'customer_account_create',
                                             'adminhtml_customer'));
$attribute->save();
之后,您将在customer_form_属性表中找到3个新条目,而不是一个

如果您想在更改之前和之后进行测试,只需插入

Mage::log('attrib:'(字符串)$attribute->getAttributeCode())


在app/code/core/Mage/Customer/Model/Form.php中的第371行之后,您将在Mage系统日志中看到所有使用的属性。(适用于mage 1.4.2.0)

供大家参考,他们删除了社区版中显示所有自定义属性的“特殊代码”。我使用企业版,考虑到节省成本,我们正在考虑社区版。这是我们必须克服的障碍之一


没有回答这个问题,但可能解释了为什么他们将其从免费版中删除。主题中完全没有显示它们的代码。

谢谢您的回复。我也试过这个,不幸的是它也不起作用。我不知道是什么改变了这一切…太好了!非常感谢,这些字段现在显示在后端。但我仍然无法获取字段以在前端保存值。你能做到这一点吗?如果在后端输入,它们将保存,但在注册页面上创建客户时不会保存。实际上,客户没有填写我的属性,它不会出现在前端表单中,它是由观察者设置的。我输入的代码是查看管理员表单中的输入:如果您查看customer_form_属性表,您将看到还有其他可能的值,也许您必须添加前端表单的值。谢谢David,我想您为我指明了正确的方向!如果我找到了我的最终解决方案,我会发布。。