• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Plugins / Agregar campos adicionales de usuario en la página de pedido de WooCommerce

Agregar campos adicionales de usuario en la página de pedido de WooCommerce

[ 18 junio 2024 ] [ Autor: Jhon Marreros Guzmán ][ Plugins - Intermedio] [ ]

funcionalidad woocommerce

Suscríbete a DecodeCMS:  

En un artículo anterior habíamos visto cómo agregar campos adicionales al perfil de usuario, sin embargo en algunos casos es posible que necesitemos recolectar información adicional del usuario directamente en el proceso de compra.

 

Resultado Final

Al final queremos obtener algo similar a lo que se muestra en la siguiente imagen:

Campo adicional pedido WooCommerce

 

Generalidades

Nos gustaría obtener un dato adicional obligatorio de la profesión del usuario, para esto recolectaremos este dato al momento de que realizará el proceso de compra.

 

Código para agregar un campo adicional en la página de pedido

El siguiente código agrega un campo adicional de «profesión» en el formulario de pedido, y guarda el dato como parte de la metadata del usuario.

Si quieres mostrar o editar este dato adicional en el perfil de usuario, puedes revisar el siguiente artículo: Agregar campos adicionales al perfil de usuario

// Crear el campo personalizado en la página de pago llamado profesión
add_action( 'woocommerce_after_order_notes', 'create_custom_checkout_field' );
function create_custom_checkout_field( $checkout ) {

	echo '<div class="custom_checkout_field">';
	echo '<h3>Campos adicionales</h3>';

	woocommerce_form_field( 'profesion', [
		'type'     => 'text',
		'required' => 'true',
		'label'    => __( 'Profesión' )
	],
		$checkout->get_value( 'profesion' )
	);

	echo '</div>';
}

// Validar el campo personalizado
add_action( 'woocommerce_checkout_process', 'validate_custom_checkout_field' );
function validate_custom_checkout_field() {
	if ( ! $_POST['profesion'] || empty( $_POST['profesion'] ) ) {
		wc_add_notice( __( 'Se requiere ingresar la profesión' ), 'error' );
	}
}

// Guardar el campo personalizado en los datos del usuario
add_action( 'woocommerce_checkout_order_processed', 'save_custom_checkout_field' );
function save_custom_checkout_field( $order_id ) {
	// Get user_id from order
	$order   = wc_get_order( $order_id );
	$user_id = $order->get_user_id();

	if ( $user_id && $_POST['profesion'] ) {
		update_user_meta( $user_id, 'profesion', sanitize_text_field( $_POST['profesion'] ) );
	}
}

En el código anterior:

  • Utilizamos el hook woocommerce_after_order_notes para agregar contenido al formulario de pedido
  • Para crear el campo adicional usamos una función de WooCommerce woocommerce_form_field, aunque también podría hacerse con HTML directamente
  • Al ser el campo obligatorio es recomendable emitir algún mensaje de error si el campo no se ha llenado, por lo que usamos el hook woocommerce_checkout_process para hacer esta comprobación
  • finalmente para guardar el dato del nuevo campo usamos el hook woocommerce_checkout_order_processed, guardamos el dato como metadatada del usuario con la función update_user_meta()

 

Conclusión

Como has podido comprobar, puedes usar código para añadir directamente campos adicionales que necesites como información adicional de tus usuarios al momento de comprar y evitar el uso de un plugin adicional.

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Cambiar el estado de pedidos de WooCommerce a través de códigoCambiar el estado de pedidos de WooCommerce a través de código
  • Ocultar compra de ciertos productos en WooCommerceOcultar compra de ciertos productos en WooCommerce
  • Registrar usuarios sólo para la compra de ciertos productos en WooCommerceRegistrar usuarios sólo para la compra de ciertos productos en WooCommerce
  • Agregar campos adicionales al perfil de usuarioAgregar campos adicionales al perfil de usuario
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (2 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Pedro

    26 junio, 2024

    Te dejo mi voto de 5 estrellas, estos tutoriales siempre me vienen bien para las tiendas online.

    • Jhon Marreros Guzmán

      5 septiembre, 2024

      Gracias!!

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Omnisend
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad SEO social woocommerce

Populares

Crear usuario Administrador de WordPress desde la Base de Datos

Cómo modificar una plantilla de WooCommerce

Agregar redes sociales en la cabecera de WordPress

Comprar productos de la misma categoría en WooCommerce

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2026 Todos los derechos reservados