Pregunta

Estoy tratando de hacer una lista desplegable de selección de grupo en la página de registro de clientes Magento trabajo. He hecho todo lo siguiente:

inserta el código siguiente en plantilla / persistente / cliente / forma / register.phtml:

<label for="group_id" style='margin-top:15px;'><?php echo $this->__('Which group do you belong to? (select "Pet Owner" if you are uncertain)') ?><span class="required">*</span></label>
            <div style='clear:both'><p style='color:red;'>Note: DVM/DACVO and Institution accounts require administrative approval.</p></div>
            <div class="input-box" style='margin-bottom:10px;'>
                    <select style='border:1px solid gray;' name="group_id" id="group_id" title="<?php echo $this->__('Group') ?>" class="validate-group required-entry input-text" />
                        <?php $groups = Mage::helper('customer')->getGroups()->toOptionArray(); ?>
                        <?php foreach($groups as $group){ ?>
                            <?php if ($group['label']=="Pet Owner" || $group['label']=="DVM / DACVO" || $group['label']=="Institution"){?>
                                <option value="<?php print $group['value'] ?>"><?php print $group['label'] ?></option>
                            <?php } ?>
                        <?php } ?>
                    </select>
                    </div>

A continuación, el siguiente en /app/code/local/Mage/Customer/controllers/AccountController.php en el createPostAction ():

$customer->setGroupId($this->getRequest()->getPost('group_id')); 

Finalmente, el siguiente en /app/code/local/Mage/Customer/etc/config.xml donde se añadió Identificación del grupo:

  <fieldsets>
            <customer_account>
                <prefix>
                    <create>1</create>
                    <update>1</update>
                    <name>1</name>
                </prefix>
                <firstname>
                    <create>1</create>
                    <update>1</update>
                    <name>1</name>
                </firstname>
                <middlename>
                    <create>1</create>
                    <update>1</update>
                    <name>1</name>
                </middlename>
                <lastname>
                    <create>1</create>
                    <update>1</update>
                    <name>1</name>
                </lastname>
                <suffix>
                    <create>1</create>
                    <update>1</update>
                    <name>1</name>
                </suffix>
                <email>
                    <create>1</create>
                    <update>1</update>
                </email>
                <password>
                    <create>1</create>
                </password>
                <confirmation>
                    <create>1</create>
                </confirmation>
                <dob>
                    <create>1</create>
                    <update>1</update>
                </dob>
                <group_id><create>1</create><update>1</update></group_id>
                <taxvat>
                    <create>1</create>
                    <update>1</update>
                </taxvat>
                <gender>
                    <create>1</create>
                    <update>1</update>
                </gender>
            </customer_account>

I han probado varias veces y todavía está siendo añadido a cada cliente como el grupo de clientes de forma predeterminada. Se puede ver lo que estoy haciendo mal?

¿Fue útil?

Solución

Definiciones clase controlador son no cargado a través del cargador automático. Es un error común pensar que las definiciones de clase del controlador están sujetas a la misma orden de carga codepool como todos los de la otra tipos de marcas

Por lo tanto, la razón de su código no se está ejecutando es porque no se ha implementado un mecanismo adecuado control de reescritura. Usted tendrá que añadir un directorio bajo el frontName customer y crear una definición de clase adecuada (e incluir manualmente la AccountController el original); ver https://stackoverflow.com/a/9350848/833795 para una aplicación exacta.

Nota que hay un API previsto (sentido clásico) para este (ref used_in_forms atributo del cliente y los valores relacionados; por ejemplo, vat_id ).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top