Formulario de pedido de la tienda virtual de Herves-Vida

Formulario de pedido de la tienda virtual de Herves-Vida

En ¿Cómo añadir un campo NIF o CIF a WooCommerce 2.0? os explicamos cómo añadir un campo NIF/CIF a WooCommerce, y el código funciona perfectamente en WooCommerce 2.0, pero al haberse publicado la nueva versión 2.1, ha dejado de funcionar. Por ello abrimos esta nueva entrada con el nuevo código, al que en realidad sólo hay que cambiarle dos líneas y añadirle una nueva función, para que todos aquellos que decidan continuar con WooCommerce 2.0 puedan seguir usando el código antiguo, y los que ya habéis actualizado a WooCommerce 2.1, podáis utilizar este nuevo que hoy os proponemos.

Esta vez no vamos a entrar a detallar el código, ya que el que necesite conocer a fondo cada función puede hacerlo en la anterior entrada.

Al igual que en las funciones anteriores, vamos a añadir el siguiente código PHP al archivo functions.php de nuestra plantilla o hijo de la plantilla:

Copiar al portapapeles

Tras modificarlo y guardarlo, veremos que los errores y problemas que nos habían aparecido con WooCommerce 2.1 desaparecerán.

Esperamos que os resulte útil y que nos aviséis de los posibles problemas que os aparezcan para ir actualizando el código cuando sea necesario.

Artículos relacionados

Comentarios

Suscríbete
Notificar de
guest
35 Comentarios
Más antiguos
Más recientes Más votados
Vincent
Vincent
9 de abril de 2014 0:04

Hola, muchas gracias por este aporte. Tengo una duda donde se incluye este codigo, al final o donde del archivo del functions.php y tambien si funciona con la última versión de woocommerce 2.1.6.
Muchas gracias de antemano.

Art Project Group
Art Project Group
9 de abril de 2014 6:56
Responder a  Vincent

Da igual dónde lo coloques, mientras lo coloques en el archivo functions.php, y si, es 100% funcional para todas las versiones de WooCommerce 2.1.x publicadas hasta ahora.

Un saludo.

John Dante Lopez Paredes
John Dante Lopez Paredes
25 de abril de 2014 23:06

Hola, tengo una duda y disculpen la molestia, pero en cual functions.php va el código, el de WP o en el woocommerce, gracias de antemano

Art Project Group
Art Project Group
25 de abril de 2014 23:41

Ni en uno, ni en otro, en el del tema (plantilla), o tema hijo (child).

pacor
pacor
6 de mayo de 2014 13:53

gracias por el aporte, mi pregunta es que necesito que el campo cif sea obligatorio, he puesto en el codigo «true» en vez de «False» y me aparece bien pero el problema es al ir a realizar el pago y no pongo nada en el campo me sale un error en vez de salirme ningun mensaje de que tengo que rellenar el campo. Donde se encuentran estos mensajes o como crees que lo puedo solucionar?

gracias de antemano por la ayuda.

Art Project Group
Art Project Group
19 de mayo de 2014 14:07
Responder a  pacor

Buenas tardes. Acabamos de hacer la prueba y funciona perfectamente, si dejas el campo NIF/CIF en blanco te sale este mensaje de error:
CIF/NIF es un campo requerido.

En cuanto, a de donde sale ese mensaje de error, sale del archivo class-wc-checkout.php, en la carpeta includes de WooCommerce, concretamente de la línea 500, y es editable desde la traducción del propio WooCommerce con algún plugin del estilo a Codestyling Localization.

Si te sale cualquier otra cosa, es posible que tu plantilla no esté bien configurada para WooCommerce 2.1 o que tengas algún tipo de problema con AJAX, ya que el error que se muestra es generado por una consulta AJAX.

Esperamos haberte servido de ayuda.

Un saludo.

Art Project Group
Art Project Group
9 de mayo de 2014 18:33
Responder a  pacor

A ver si sacamos un poco de tiempo y lo probamos, ya que teoricamente funciona, al menos en las pruebas que hemos hecho en el pasado funcionar, funcionaba, aunque también es verdad que fueron sobre WooCommerce 2.0. En cuanto tengamos alguna novedad te respondemos por esta misma vía.

Gracias por el aviso.

black_mamba
black_mamba
6 de mayo de 2014 18:53

Seria interesante ciertamente implementar eso que comentas

Max
Max
14 de mayo de 2014 18:37

Muy buen aporte! Lo he estado probando y funciona correctamente. Solo tengo una duda, en qué sitio de la base de datos guarda el cif/nif del cliente?

Art Project Group
Art Project Group
14 de mayo de 2014 18:43
Responder a  Max

En la misma tabla donde se guardan todos los demás metacampos de WordPress, en la tabla wp_postmeta.

Un saludo.

Enrique
Enrique
4 de junio de 2014 11:28

No me funciona, me da el error:

Parse error: syntax error, unexpected ‘$campos’ (T_VARIABLE) in C:\xampp\htdocs\WordPress\wp-content\themes\mommerce\functions.php on line 19

¿Cómo podría solucionarlo?

Art Project Group
Art Project Group
5 de junio de 2014 9:11
Responder a  Enrique

Confirma si tienes instalado WooCommerce 2.1.x, ya que este código funciona perfectamente, confirmado por cientos de instalaciones.

Un saludo.

manuel
manuel
10 de junio de 2014 12:19

Antes de nada agradeceros este codigo. Está genial.
Pero creo que tiene un fallito o yo hice algo mal…

Si tu creas un pedido de manera manual desde el panel de administrador, seleccionas un cliente que tiene el campo CIF cubierto, y luego le das a «cargar dirección de facturación» el formulario se autorellena… MENOS EN EL CAMPO DEL NIF… :(

jejeje seguro que es una pijada que se soluciona muy facilmente… pero a mi se me escapa por ahora como arreglarlo.
Si le encontráis una solucion… SERIA PERFECTO… MUCHAS GRACIAS. :)

Un saludo a tod@s.

Art Project Group
Art Project Group
10 de junio de 2014 15:46
Responder a  manuel

En realidad no es ninguna ‘pijada’, ya que hay que modificar los archivos meta-boxes.js y class-wc-ajax.php para que WooCommerce soportara los campos añadidos manualmente, lo que implica que cuando actualices tu WooCommerce, las modificaciones resultarían inútiles. Aún utilizando el filtro woocommerce_found_customer_details, no tendría mucho sentido sin crear un nuevo JavaScript para controlar el evento click del botón.

Por otro lado, efectivamente el campo NIF/CIF se come todo lo que sea texto, ya que no tiene ningún filtro. Puedes probar a añadirle el argumento custom_attributes en el array, e introducirle un array con el atributo pattern y una expresión regular que haga lo que necesitas.

Un saludo.

manuel
manuel
10 de junio de 2014 16:03
Responder a  Art Project Group

Lamentablemente mis conocimientos no llegan tanto en programación… y menos en woocomerce (vengo de otras plataformas, pero en esta soy novatillo). Solo lo comenté por si era algo fácil de modificar. Si no pues se copia manualmente este dato de la ficha del cliente y listo.

Muchisimas gracias por vuestra atención :)

manuel
manuel
10 de junio de 2014 12:28

y por cierto… otro detalle también a tener en cuenta sería una posible validación de los datos que se introducen en ese campo… porque he comprobado que puedes meter cualquier dato… sin letra, con letra… INCLUSO TODO LETRAS jajajajaja la verdad es que el código está muy bien, pero yo le he encontrado un par de cosillas que igual se pueden retocar…

Un saludo!!!

Marc
Marc
13 de junio de 2014 21:54

Hola,

utilizo este código sin problema alguno, pero después de que woocommerce se haya actualizado a la última versión (2.1.11) los campos del formulario de compra salen en ingles, los únicos que salen en español son los campos de NIF y Codigo postal.

Puede deberse al código indicado arriba o es cosa de woocommerce?

Muchas gracias y saludos.

Art Project Group
Art Project Group
14 de junio de 2014 9:50
Responder a  Marc

Es un bug de WooCommerce 2.1.11.

extruendo
extruendo
20 de junio de 2014 1:01

Hola, estoy intentando que el nuevo campo solo aparezca en el formulario de «dirección de envió», pero no logro hacerlo.
que línea tendría que eliminar?

Art Project Group
Art Project Group
20 de junio de 2014 7:36
Responder a  extruendo

Hay que omitir todo lo relacionado con los campos billing y mantener todo lo relacionado con los campos shipping.

Un saludo.

thegrip
thegrip
31 de agosto de 2014 11:27

Hola, funciona perfectamente. Una consulta, si se tiene el plugin PDF Invoice para generar la factura en PDF como hago para que me aparezca en el PDF generado. El campo es _billing_nif. Lo intento así
export->order->id,’_billing_nif’,true); ?>
pero no sale nada.
Gracias, un saludo.

Art Project Group
Art Project Group
31 de agosto de 2014 16:33
Responder a  thegrip

En principio no hay que hacer nada, debería incluirlo de forma automática.

Si continúas con problemas, recuerda nuestra Soporte técnico.

Un saludo.

irene
irene
12 de septiembre de 2014 10:09

Muchas gracias!!
Funciona perfectamente!!
Me habeis salvado de un marrón al que le estaba dando vueltas desde hace unos días.
Muchas gracias!!

irene
irene
18 de septiembre de 2014 9:41

hola!!
Tengo un problemilla no me funciona que el campo CIF sea obligatorio. Tengo WooCommerce Versión 2.1.12 . y mi THEME en MyStile. No se como solucionarlo porque decís que os funciona a todos pero en mi caso si no lo relleno no pasa nada, ni da error ni nada, se puede seguir con la compra. Alguna sugerencia??

irene
irene
18 de septiembre de 2014 9:51

Hola de nuevo!!
Repasando los comentarios he conseguido la respuesta para solucionarlo.
He puesto en la función :
function campos_de_direccion($campos) {
‘required’ => true,
Perdonar mi torpeza pero soy novatilla en estas cosillas.
Lo pongo por si hay gente como yo que no se entera mucho de la fiesta.
Muchas gracias de todas maneras.
Un saludo.

power
power
15 de agosto de 2015 22:07

Tendrían que actualizar el orden de los campos esta ultima versión de woocomerce Versión 2.4.4 salen desordenados hay algo que cambiado en woocommerce que no queda como por ejemplo hasta versión anterior a esta a partir de esta versión tanto formulario de finalizar compra como cuenta del usuario los campos no salen organizados como estaban.

Art Project Group
Art Project Group
26 de agosto de 2015 16:05
Responder a  power

Ya lo tienes solucionado en ¿Cómo añadir un campo NIF o CIF con validación a WooCommerce 2.4?.

Gracias por el aviso.

Un saludo.

Art Project Group
Art Project Group
26 de agosto de 2015 14:35
Responder a  power

Lo revisamos y actualizamos lo antes posible.

Un saludo.

David
David
16 de septiembre de 2015 15:47

Hola.
Funciona en WooCommerce 2.2.x. Tenía la duda.
Gracias por el código.

Saludos.

Art Project Group
Art Project Group
16 de septiembre de 2015 18:06
Responder a  David

Si. Este código ha funcionado sin problemas hasta la versión 2.3 inclusive.

Un saludo.

David
David
17 de septiembre de 2015 13:30

Hola de nuevo,
La opción de hacer el campo CIF/NIF obligatorio no funciona. Tengo WooCommerce 2.2.X. He puesto el valor ‘true’ en ‘required’ => true. Después he realizado una prueba no rellenando dicho campo y al pinchar en «Siguiente», me ha llevado a la página de pago… ¿No me estaré dejando algo?.
Saludos,

Art Project Group
Art Project Group
17 de septiembre de 2015 14:40
Responder a  David

Seguro que algo no estás haciendo bien ya que el código publicado es totalmente funcional.

Un saludo.

David
David
17 de septiembre de 2015 15:13
Responder a  Art Project Group

Acabo de darme cuenta que la validación de los campos obligatorios sucede después de elegir la opción de pago.
He dejado todos los campos vacíos, he pinchado en «siguiente», me ha llevado a la opción de pago, he elegido «transferencia bancaria», «siguiente», me aparece el producto con el coste final, he pinchado en «Realizar pedido» y acto seguido he sido redirigido a la página del formulario donde se me han mostrado los campos que son requeridos ?¿ Que funcionamiento más raro, no?
Este mensaje se debería de mostrar antes de llevarte a la página de pago… Lo dejo como un «mal menor», dado que el CIF es uno de los campos requeridos también.
Saludos

Ricardo
Ricardo
28 de enero de 2021 16:44

No funcionan los botones para ver el código posteando en redes :/

Productos y servicios

Últimas publicaciones

Últimos comentarios

¡Suscríbete!

Lista de correos de APG

PROTECCIÓN DE DATOS: De conformidad con las normativas de protección de datos, le facilitamos la siguiente información del tratamiento: (+)

  • Responsable: Art Project Group.
  • Fines del tratamiento: dar respuesta a las consultas o cualquier tipo de petición que sea realizada por el usuario a través de cualquiera de las formas de contacto que se ponen a su disposición en la página web. Envío de comunicaciones de productos o servicios (con su consentimiento).
  • Derechos que le asisten: acceso, rectificación, portabilidad, supresión, limitación y oposición. Más información sobre el tratamiento en los Política de Privacidad.

¡Lo que contamos en !

Acaba de publicarse #WordPress 7.0: más visual, más rápido y preparado para la IA

Conectores IA integrados
Nuevas superposiciones de navegación
Patrones más fáciles de editar
Revisiones visuales bloque por bloque
Mejor rendimiento y accesibilidad

De momento lo dejamos en espera

20 de mayo de 2026

A partir de #WooCommerce 10.9 se incluirá WooCommerce Additional Variation Images en el core lo que permitirá gestionar galerías en las variaciones de forma nativa.

Gran noticia que se suma a la iniciativa de incluir WooCommerce Brands en la versión 9.4.

¡Este es el camino!

20 de mayo de 2026 | 1