Guardar valor de checkbox
-
Buenas tardes. He colocado un checkbox en el archivo «functions.php» de mi child theme para que el cliente marque la casilla en caso de que quiera recibir la factura por correo electrónico. Quiero que me guarde el valor de esa casilla en la orden de compra. Es decir que si ha marcado la casilla tiene que mostrarme el mensaje «Deseo recibir la factura por correo electrónico». Esto último no lo consigo. A continuación pego el fragmento de código que estoy utilizando. Gracias de antemano.
Un saludo 🙂
»
/** * 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 por correo electrónico'), // 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. Lo he comentado porque el campo no es requerido y me daba error. /**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 por correo electrónico', esc_attr($_POST['my_checkbox'])); // Cambia aquí el nombre del campo }
«
Viendo 7 respuestas - de la 1 a la 7 (de un total de 7)
Viendo 7 respuestas - de la 1 a la 7 (de un total de 7)
- El debate ‘Guardar valor de checkbox’ está cerrado a nuevas respuestas.