Hola, por motivos legales tenemos que ofrecer al cliente la posibilidad de recibir sus facturas en papel. Me gustaría añadir una checkbox en la página de "Finalizar compra" en WooComerce "Deseo recibir mi factura en papel". Esto tendría que verse reflejado de alguna forma en el pedido del cliente en cuestión para actuar en consecuencia y saber qué facturas tengo que enviar por correo postal. ¿Cómo puedo hacerlo? Gracias de antemano.
Un saludo virtual 😀
Contenido solo visible a usuarios registrados
Hola Carmen.
Añade lo siguiente al archivo functions.php o si utilizas algún plugin paar añadir código lo añades en el plugin:
/**
* Añadir un checkbox al final de la página de finalizar compra
**/
add_action('woocommerce_after_order_notes', 'my_custom_checkout_field');
function my_custom_checkout_field( $checkout ) {
woocommerce_form_field( 'my_checkbox', array(
'type' => 'checkbox',
'class' => array('input-checkbox'),
'label' => __('Deseo recibir mi factura en papel'), // Pon el mensaje despues de la caja o checkbox
'required' => false, // Pon true si quieres que sea obligatorio y false para opcional
), $checkout->get_value( 'my_checkbox' ));
}
/**
* Acciones extras
**/
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');
function my_custom_checkout_field_process() {
global $woocommerce;
// Menaje de error si pusiste true.
if (!$_POST['my_checkbox'])
$woocommerce->add_error( __('Por favor completa el campo de...') ); // Cambia aquí el mensaje
}
/**
* Campo personalizado para el checkout
**/
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta');
function my_custom_checkout_field_update_order_meta( $order_id ) {
if ($_POST['my_checkbox']) update_post_meta( $order_id, 'Deseo recibir mi factura en papel', esc_attr($_POST['my_checkbox'])); // Cambia aquí el nombre del campo
}
Un saludo
Hola Carmen,
Enhorabuena ha funcionado como deseas, siempre encantados de poder ayudarte.
Coméntanos si con esto podemos dar el tema como solucionado
Un Saludo 😊