2010-12-28 6 views
3

Ich habe dieses Tutorial zuvor für adding registration fields to the Magento registration page verwendet.Kann keine Registrierungsfelder in Magento 1.4.2.0 hinzufügen

Es hat immer funktioniert, aber seit ich auf Magento 1.4.2.0 aktualisiert habe, tut es nicht mehr. Die Attribute, die ich hinzufüge, werden nicht mehr wie zuvor im Tab "Kundeninformationen" im Backend angezeigt und nicht gespeichert. Die Attribute installieren sich jedoch in der Datenbank gut. Ich dachte, vielleicht der config.xml Teil geändert hatte, aber ich habe es gegen die einen Kern Kunden und die Attribute sind Schweller die gleiche Art und Weise gezeigt:

<flavour><create>1</create><update>1</update></flavour> 

Etwas muss seit der letzten 1.4.2 Beta geändert hat, weil es funktionierte Fein dann. Wenn jemand Ideen hat, würde es sehr geschätzt und ich könnte endlich schlafen! Danke im Voraus!

Antwort

4

ich mit dieser einige Zeit zu kämpfen haben, bis ich es herausgefunden. Seit 1.4.2 müssen die Attribute, die im Kundenformular des Administrators angezeigt werden, in der Tabelle customer_form_attribute enthalten sein.
Sie können sie mit einem Upgrade in Ihrem Moduls Setup hinzufügen, mit diesem Code:

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

Hoffnung, das hilft.

+0

großartig! Vielen Dank, die Felder erscheinen jetzt im Backend. Ich kann die Felder immer noch nicht abrufen, um den Wert im Frontend zu speichern. Konnten Sie das schaffen? Sie werden gespeichert, wenn sie im Backend eingegeben werden. Sie werden jedoch nicht gespeichert, wenn der Kunde auf der Registrierungsseite erstellt wird. – Justin

+0

tatsächlich ist mein Attribut nicht vom Kunden ausgefüllt, es erscheint nicht in den Frontend-Formularen, es ist von einem Beobachter eingerichtet.Der Code, den ich einstelle, sieht die Eingabe in den Formularen des Administrators: Wenn Sie in die Tabelle customer_form_attribute schauen, sehen Sie, dass andere Werte möglich sind, vielleicht müssen Sie den Wert des Frontend-Formulars hinzufügen. – OSdave

+0

Danke David, ich glaube du hast mich in die richtige Richtung weisen lassen! Ich werde meine endgültige Lösung veröffentlichen, wenn und wenn ich es herausfinden .. – Justin

2

Sehr nützliche Hinweise oben, danke David!

Um die neuen Attribute speicherbare in Frontend zu machen (registrieren und bearbeiten) erweitern gerade den zweiten Parameter Array von $ Attribut-> setData wie folgt aus:

$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(); 

Danach werden Sie 3 neue Einträge finden Sie im Handbuch Tabelle "customer_form_attribute" anstelle von "one"

Wenn Sie dies testen möchten, vor und nach dieser Änderung, legen Sie einfach

Mage :: log ('attrib:' (string) $ Attribut-> getAttributeCode().);

nach Zeile 371 in App/Code/Kern/Mage/Customer/Model/Form.php und Sie werden alle verwendeten Attribute in der Magier-Systemprotokoll sehen. (gültig für Magier 1.4.2.0)

+0

Sie schlagen mich dazu! Vielen Dank! – Justin

0

FYI alle, sie entfernten den 'speziellen Code' in der Community Edition, der alle benutzerdefinierten Attribute anzeigt. Ich benutze Unternehmen und wir erwogen Community-Edition aufgrund der Einsparungen. Dies ist eine der Hürden, die wir überwinden müssen.

Beantwortet die Frage nicht, sondern erklärt wahrscheinlich, warum sie es aus der kostenlosen Edition entfernt haben. Der Code, um sie anzuzeigen, fehlt vollständig aus dem Thema.

Verwandte Themen