Agregue campos de pago personalizados debajo de los términos y condiciones en Woocommerce

2 minutos de lectura

avatar de usuario
Max Loyd

He creado un sitio de comercio electrónico utilizando Woocommerce. Me gustaría agregar dos casillas de verificación más debajo de los términos y condiciones. He buscado en todas partes una solución que funcione y lo único que encontré es un complemento comercial.

¿Cómo agregar campos de pago personalizados (2 casillas de verificación) debajo de los términos y condiciones mediante programación?

Ubicación de la captura de pantalla de términos y condiciones:

Las dos casillas debajo de los términos y condiciones

  • No creo que PHP sea la solución. Es posible que pueda modificar la plantilla de los términos. Debería echar un vistazo a la procedencia de este contenido e intentar anular la plantilla. Si no está en una plantilla, puede estar conectado a un ‘gancho’.

    – ikdekker

    14 de febrero de 2018 a las 9:14

  • Busqué en Internet y vi que había una manera de agregarlo en la plantilla que hice, pero no funcionó.

    –Max Loyd

    14 de febrero de 2018 a las 13:47

  • @LoicTheAztec Sí, acabo de hacer eso.

    –Max Loyd

    25 de febrero de 2018 a las 10:18

  • La primera función enganchada muestra los 2 campos de pago adicionales
  • La segunda función enganchada verificará que ambas casillas de verificación estén “seleccionadas” para permitir el pago, mostrando un aviso de error personalizado si no…

El código:

add_action('woocommerce_checkout_before_terms_and_conditions', 'checkout_additional_checkboxes');
function checkout_additional_checkboxes( ){
    $checkbox1_text = __( "My first checkbox text", "woocommerce" );
    $checkbox2_text = __( "My Second checkbox text", "woocommerce" );
    ?>
    <p class="form-row custom-checkboxes">
        <label class="woocommerce-form__label checkbox custom-one">
            <input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="custom_one" > <span><?php echo  $checkbox1_text; ?></span> <span class="required">*</span>
        </label>
        <label class="woocommerce-form__label checkbox custom-two">
            <input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="custom_two" > <span><?php echo  $checkbox2_text; ?></span> <span class="required">*</span>
        </label>
    </p>
    <?php
}

add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');

function my_custom_checkout_field_process() {
    // Check if set, if its not set add an error.
    if ( ! $_POST['custom_one'] )
        wc_add_notice( __( 'You must accept "My first checkbox".' ), 'error' );
    if ( ! $_POST['custom_two'] )
        wc_add_notice( __( 'You must accept "My second checkbox".' ), 'error' );
}

El código va en el archivo function.php de su tema secundario activo (tema activo).

Probado y funciona.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

¿Ha sido útil esta solución?