Buen día
Tengo varios checkbox al finalizar la compra, pero uno de ellos es opcional, como podría yo saber si este opcional fue marcado o no por el usuario??
gracias de antemano.
Contenido solo visible a usuarios registrados
Hola Josep.
como añadiste esos Check ?
No los veo en la pagina de finalizar compra:
Si puedes añadirlos y nos indicas como los añadiste seria de ayuda.
Un saludo
Vale, ahora creo podrá verlo, no se por qué no se mostraba, al final he logrado añadir la política opcional que deseo con el siguiente código (que he encontrado y adaptado), pero me sale separado el checkbox
del resto, cómo podría hacer para mostrarlo seguido del resto
el cod es el siguiente:
// Añadir un campo checkbox al checkout y al anadir_estado_pedido_enviado_a_estados
add_action( 'woocommerce_review_order_before_submit', 'anadir_campo_checkbox_checkout' );
function anadir_campo_checkbox_checkout() {
echo '<div id="campo-envio-instrucciones">';
woocommerce_form_field( 'cliente_quiere_instrucciones', array(
'type' => 'checkbox',
'class' => array('input-checkbox'),
'label' => __('He llegit i accepto les condicions de la <a href="https://escolaemergencies.cat/politica-de-drets-dimatge/" target="_blank">Política de drets d’imatge.</a>'),
), WC()->checkout->get_value( 'cliente_quiere_instrucciones' ) );
echo '</div>';
}
// Guardar el campo del checkout en los meta del pedido, cuando se ha checkeado el checkbox
add_action( 'woocommerce_checkout_update_order_meta', 'actualizar_meta_campo_checkout_instrucciones', 10, 1 );
function actualizar_meta_campo_checkout_instrucciones( $order_id ) {
if ( ! empty( $_POST['cliente_quiere_instrucciones'] ) )
update_post_meta( $order_id, 'cliente_quiere_instrucciones', $_POST['cliente_quiere_instrucciones'] );
}
// Mostrar el resultado del campo checkout en el admin del pedido
add_action( 'woocommerce_admin_order_data_after_billing_address', 'mostrar_campo_checkout_detalles_pedido_admin', 10, 1 );
function mostrar_campo_checkout_detalles_pedido_admin( $order ){
$cliente_quiere_instrucciones = get_post_meta( $order->get_id(), 'cliente_quiere_instrucciones', true );
if( $cliente_quiere_instrucciones == 1 ) {
echo '<p><strong>¿Accepta les polítiques d imatge?: </strong> <span style="color:red;">SI</span></p>';
} else {
echo '<p><strong>¿Accepta les polítiques d imatge?: </strong> <span style="color:black;">NO</span></p>';
}
}
Hola Josep.
Prueba con lo siguiente:
.woocommerce form .form-row::before, .woocommerce-page form .form-row::before {
display:none;
}
Puedes añadirlo en apariencia -> Personalizar -> CSS Adicional
Un saludo
@pepesoler muchísimas gracias, ha funcionado a la perfección, como siempre usted de gran ayuda.
Hola Josep.
Genial !!! me alegra que lo solucionaras.
Cualquier consulta que tengas no dudes en comunicarlo.
Cerramos el tema.
un saludo