Ahora en Bolivia esta de moda hacer negocios en linea. Y una de las opciones que tenemos para hacer un «markerplace» es sin duda WooCommerce.
Pero lamentablemente este plugin de wordpress no se ajusta a los requerimiento de datos que necesitemos, en este tutorial tratare de ayudarles a como agregar campos adiciones a la pagina de pago de WooCommerce. (creo)

¿Que es la pagina de pago?
Es la pagina mas importante dentro de un eCommerce tanto para el vendedor y el cliente. Los clientes tienen que proporcionar información personal, detalles de facturación y sobretodo el método de pago.
Si en ese proceso hay un error, el cliente no podrá realizar la compra del producto, así que debemos tener el buen funcionamiento de nuestro sitio.
Sin embargo, al ser una solución gratuita, WooCommerce no le da la oportunidad de personalizar su página de pago desde la configuración. Entonces, ¿cómo vas a hacer eso?
Agregar campo adicional a la página de pago de Woocommerce
Este método agrega e campo personalizado a la pagina de pago utilizando código que compartiré a continuación.
Esto deben colocar en el archivo function.php de su plantilla.
/* add billing fields and others */ add_action('woocommerce_before_order_notes', 'add_payments_info'); function add_payments_info( $checkout ){ echo ' ' . __('Información adicional') . ' ';woocommerce_form_field( 'DNI', array(
'type' => 'text',
'class' => array('form-row-wide'),
'label' => __('Identificación'),
'placeholder' => __('Ej: 6262625'),
'required' => true,
), $checkout->get_value( 'DNI' ));
}
Este campo en particular ira arriba de las notas de compras. Justo este codigo es el codigo se encarga de esto: woocommerce_before_order_notes El resto son campos «normales» para agregar campo al formulario de WooCommerce.
Pero justo abajo agregamos esto:
/* save info and update form whit the new fields */ add_action( 'woocommerce_checkout_update_meta', 'update_payments_fields'); function update_payments_fields( $order_id ) { if ( ! empty( $_POST['DNI'] ) ) { update_post_meta($order_id, 'woo_dni', sanitize_text_field($_POST['DNI'] ) ); } }
Esta ultima parte, guarda todo los datos ademas del nuevo campo que hemos agregado.