por Manuel RomanEliminar campos obligatorios de registro en Prestashop5 (100%) 1 vote
Este problema surge cuando en alguna tienda online, no queremos que aparezcan algunos campos obligatorios de registro a nuevos usuarios (dirección, fecha de nacimiento, etc). Os propongo algunas soluciones para que las tengáis en cuenta.
- Este tutorial está pensado para Prestashop 1.6.
- Debes de realizar copia de todos los ficheros que modifiques (por si necesitas restaurar).
- El tutorial esta realizado para “registro en un solo paso”.
- Después de realizar los cambios debes de forzar compilación y borrar caché.
La primera opción para quitar campos obligatorios de registro en Prestashop es la forma más fácil aunque a veces no da resultado:
BackOffice -> Localización -> Países -> España (si es nuestro país) ->
Si en nuestro caso no necesitamos el NIF, marcamos NO en ¿Necesita el número de identificación fiscal?
Si no necesitamos mostrar la etiqueta IVA , también seleccionamos NO.
Qué hacer si queremos eliminar campos del formulario de Registro
Esta es la parte algo más complicada del proceso, ya que tendremos que tocar código y editar algunos ficheros en Prestashop, para ello:
- Tener copia de seguridad de los ficheros.
- Debes de realizarlo desde el FTP.
- Utilizar un editor de texto plano, como Notepad ++
- Hay varios ficheros con el mismo nombre (coger el fichero de la carpeta adecuada).
- Forzar compilación y “cruzar los dedos”.
En primer lugar tenemos que entender que Prestashop nos obliga por defecto a completar algunos campos, en mi caso he eliminado algunos campos obligatorios de registro, pero otros como “estado” o “país” los he dejado por defecto. Ya que pueden ser campos que necesite Prestashop “si o si” para el proceso de registro.
Buscamos el fichero “address.php” que se encuentra en classes/address.php, editamos:
publicstatic $definition = array('table'=>'address','primary'=>'id_address','fields'=> array('id_customer'=> array('type'=>self::TYPE_INT,'validate'=>'isNullOrUnsignedId','copy_post'=>false),'id_manufacturer'=> array('type'=>self::TYPE_INT,'validate'=>'isNullOrUnsignedId','copy_post'=>false),'id_supplier'=> array('type'=>self::TYPE_INT,'validate'=>'isNullOrUnsignedId','copy_post'=>false),'id_warehouse'=> array('type'=>self::TYPE_INT,'validate'=>'isNullOrUnsignedId','copy_post'=>false),'id_country'=> array('type'=>self::TYPE_INT,'validate'=>'isUnsignedId','required'=>true),'id_state'=> array('type'=>self::TYPE_INT,'validate'=>'isNullOrUnsignedId'),'alias'=> array('type'=>self::TYPE_STRING,'validate'=>'isGenericName','required'=>true,'size'=>32),'company'=> array('type'=>self::TYPE_STRING,'validate'=>'isGenericName','size'=>64),'lastname'=> array('type'=>self::TYPE_STRING,'validate'=>'isName','required'=>true,'size'=>32),'firstname'=> array('type'=>self::TYPE_STRING,'validate'=>'isName','required'=>true,'size'=>32),'vat_number'=> array('type'=>self::TYPE_STRING,'validate'=>'isGenericName'),'address1'=> array('type'=>self::TYPE_STRING,'validate'=>'isAddress','required'=>true,'size'=>128),'address2'=> array('type'=>self::TYPE_STRING,'validate'=>'isAddress','size'=>128),'postcode'=> array('type'=>self::TYPE_STRING,'validate'=>'isPostCode','size'=>12),'city'=> array('type'=>self::TYPE_STRING,'validate'=>'isCityName','required'=>true,'size'=>64),'other'=> array('type'=>self::TYPE_STRING,'validate'=>'isMessage','size'=>300),'phone'=> array('type'=>self::TYPE_STRING,'validate'=>'isPhoneNumber','size'=>32),'phone_mobile'=> array('type'=>self::TYPE_STRING,'validate'=>'isPhoneNumber','size'=>32),'dni'=> array('type'=>self::TYPE_STRING,'validate'=>'isDniLite','size'=>16),'deleted'=> array('type'=>self::TYPE_BOOL,'validate'=>'isBool','copy_post'=>false),'date_add'=> array('type'=>self::TYPE_DATE,'validate'=>'isDateFormat','copy_post'=>false),'date_upd'=> array('type'=>self::TYPE_DATE,'validate'=>'isDateFormat','copy_post'=>false),),);
Ahora vemos que hay algunas líneas que contienen el código ‘required’=>true,; pues eliminamos ese trozo de línea en los campos que no queremos que sea obligatorio. Os recuerdo que el campo “city” no lo deberíamos de tocar.
Después de esto tendrás que editar el archivo “order-opc-new-account.tpl” que se encuentra en themes/nombre de tu tema/ para que quitemos los campos que nos queramos que aparezcan en el formulario de registro (registro en un paso).
Si por ejemplo queremos quitar la segunda dirección en el registro de nuevos usuario tenemos que quitar esta línea de código en el archivo “order-opc-new-account.tpl” :
{elseif $field_name eq "address2"} <div class="text is_customer_param form-group"> <label for="address2">{l s='Address (Line 2)'}</label> <input type="text" class="text form-control validate" name="address2" id="address2" data-validate="isAddress" value="{if isset($guestInformations) && isset($guestInformations.address2) && isset($guestInformations) && isset($guestInformations.address2) && $guestInformations.address2}{$guestInformations.address2}{/if}" /> </div>
(Esta línea de código puede aparecer dos veces en el archivo, teniendo que eliminarla en los dos sitios)
Si esto no te ha funcionado, también puedes eliminar del archivo “authentication.tpl” las siguientes líneas, siguiendo el ejemplo:
{$dlv_all_fields.4='address2'}
y también la parte siguiente:
{elseif $field_name eq "address2"}<p class="text"><label for="address2">{l s='Address (Line 2)'}</label><input type="text"class="text" name="address2" id="address2" value="{if isset($smarty.post.address2)}{$smarty.post.address2}{/if}"/><span class="inline-infos">{l s='Apartment, suite, unit, building, floor, etc.'}</span></p>
Esta última modificación no la he puesto en práctica. Es una solución que aportan en el foro de Prestashop España, el cual invito a que visites.
Suscríbete y recibe toda la información en tu correo
Artículos y novedades sobre Marketing digital (SEO, redes sociales, cursos, eCommerce,…) Gratis y en tu correo.
Responsable Manuel Román usará la información que usted proporcione en este formulario para estar en contacto con usted y para enviarle actualizaciones y promociones. Por favor, háganos saber todos los medios por los cuales le gustaría saber de nosotros.
Puede cambiar de opinión en cualquier momento haciendo clic en el enlace desinscribir que hay en el pie de página de cualquier correo electrónico que reciba de nuestra parte, o poniéndose en contacto con nosotros al info@pilladoporlared.com. Trataremos su información con respeto. Para obtener más información acerca de nuestras prácticas de privacidad, visite nuestro sitio web. Al hacer clic a continuación, acepta que podamos procesar su información de acuerdo con estos términos..
Categorías eCommerceEtiquetas Prestashop
- Tóner Compatible abril 4, 2016 a las 7:06 pm Gracias por la información. Voy a probarlo en mi web. Es necesario actualizar cache etc.?Responder
- Irene septiembre 15, 2016 a las 6:01 pm Dónde hay que modificar para que sea obligatorio meter la Empresa y el NIF en el registro en la versión 1.6? En direcciones añado company como campo obligatorio pero no me hace nada.Por otro lado, hay que hacer alguna otra cosa para que aparezca en rojo y con el asterisco de obligatorio?Responder