Avisos
Vaciar todo

Colocar checkbox para recibir facturas en papel en la página de "Finalizar compra" en WooCommerce

4 Respuestas
3 Usuarios
0 Reactions
16 Visitas
Respuestas: 213
Estimable Member
Topic starter
 

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


 
Respondido : 26/11/2020 11:06 am
Pepe
 Pepe
Respuestas: 41121
Illustrious Member Admin
 

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


 
Respondido : 26/11/2020 11:38 am
Respuestas: 213
Estimable Member
Topic starter
 

@pepesoler

Parece que queda muy bien Pepe. Gracias.

Un abrazo virtual 😀 


 
Respondido : 26/11/2020 11:51 am
Karen Rios
Respuestas: 18675
Illustrious Member Moderator
 

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 😊 


 
Respondido : 26/11/2020 11:56 am