Hola a todos. Tengo una web en pruebas en un subdominio "prueba.unifilomedia.net" Me gustaría saber cómo puedo añadir una casilla de verificación de "He leído y acepto la Política de Privacidad" en la página de "Mi cuenta" para el registro de clientes en WooCommerce. Gracias de antemano.
Un saludo 🙂
Hola Carmen,
Para añadir una casilla adicional en el registro de woocoommerce prueba lo siguiente.
Primero asegúrate tienes creada tu pagina donde muestran las políticas y privacidad de tu sitio web, luego de esto ingresa al apartado Woocoommerce -> Avanzado y configura esta pagina como la de tus políticas.
Una vez realices esto debes ingresar en tu cPanel -> Administrador de archivos -> public_html
Una vez dentro ingresa a la carpeta donde tienes el sitio web y luego ubica el directorio wp-content/themes/tu_tema/function.php
Edita el archivo y abajo del todo pegas el siguiente código.
/** Casilla adicional verificación, woocoommerce*/
//Agregar checkbox para terminos y condiciones
add_action( 'woocommerce_register_form', 'add_terms_and_conditions_to_registration', 20 );
function add_terms_and_conditions_to_registration() {
if ( wc_get_page_id( 'terms' ) > 0 && is_account_page() ) {
?>
<p class="form-row terms wc-terms-and-conditions">
<label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox">
<input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="terms" <?php checked( apply_filters( 'woocommerce_terms_is_checked_default', isset( $_POST['terms'] ) ), true ); ?> id="terms" /> <span><?php printf( __( 'I’ve read and accept the <a href="%s" target="_blank" class="woocommerce-terms-and-conditions-link">Terminos & Condiciones</a>', 'woocommerce' ), esc_url( wc_get_page_permalink( 'terms' ) ) ); ?></span> <span class="required">*</span>
</label>
<input type="hidden" name="terms-field" value="1" />
</p>
<?php
}
}
// Validar el checkbox como requerido
add_action( 'woocommerce_register_post', 'terms_and_conditions_validation', 20, 3 );
function terms_and_conditions_validation( $username, $email, $validation_errors ) {
if ( ! isset( $_POST['terms'] ) )
$validation_errors->add( 'terms_error', __( 'Terms and condition are not checked!', 'woocommerce' ) );
return $validation_errors;
}
Guarda los cambios y comprueba si ya visualizas el checkbox de términos y condiciones para tu registro
PD: Recuerda mantener una copia de seguridad de tu sitio web siempre que realices estos cambios de esta forma si se genera un error puedes restaurar tu sitio web.
-> https://www.webempresa.com/blog/copias-de-seguridad-desde-el-panel-de-hosting-cpanel.html
Un Saludo
Hola Karen. El problema es que al hacer esto me cambia las "Condiciones de Venta" por la "Política de Privacidad" y entonces en "Finalizar compra" el enlace de "Condiciones de Compra" va a "Política de Privacidad". En la página de "Mi cuenta" me sale la casilla, pero el resultado es un poco chapucero porque el enlace indica "Terminos & Condiciones" pero lleva a la "Política de Privacidad" y además sale en inglés. Te adjunto la captura. A ver qué puedo hacer.
Un saludo 🙂
Hola Carmen,
Disculpa si no logre comprender bien la consulta, entiendo que deseas modificar los textos para que indiquen política de privacidad.
Para esto prueba eliminar el código anterior y añadir el siguiente
/** Casilla adicional verificación, woocoommerce*/
//Agregar checkbox para terminos y condiciones
add_action( 'woocommerce_register_form', 'add_terms_and_conditions_to_registration', 20 );
function add_terms_and_conditions_to_registration() {
if ( wc_get_page_id( 'terms' ) > 0 && is_account_page() ) {
?>
<p class="form-row terms wc-terms-and-conditions">
<label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox">
<input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="terms" <?php checked( apply_filters( 'woocommerce_terms_is_checked_default', isset( $_POST['terms'] ) ), true ); ?> id="terms" /> <span><?php printf( __( 'He leído y acepto la <a href="%s" target="_blank" class="woocommerce-terms-and-conditions-link">Política de Privacidad</a>', 'woocommerce' ), esc_url( wc_get_page_permalink( 'terms' ) ) ); ?></span> <span class="required">*</span>
</label>
<input type="hidden" name="terms-field" value="1" />
</p>
<?php
}
}
// Validar el checkbox como requerido
add_action( 'woocommerce_register_post', 'terms_and_conditions_validation', 20, 3 );
function terms_and_conditions_validation( $username, $email, $validation_errors ) {
if ( ! isset( $_POST['terms'] ) )
$validation_errors->add( 'terms_error', __( 'Terms and condition are not checked!', 'woocommerce' ) );
return $validation_errors;
}
El resultado debe ser algo como esto
Comprueba si con esto logras modificar lo que necesitas.
Un Saludo
Estimada Karen. No tengo nada que disculpar y sí mucho que agradecer. Discúlpame tú a mi, te estoy mareando con tanta casilla. Voy a probar lo que me dices. Muchísimas gracias otra vez.
Un saludo:)
Hola Karen. A ver cómo te digo esto. A primera vista está todo bien, pero.... El enlace me lleva a la página de "Condiciones de Venta" (la función que utilizas es "add_terms_and_conditions_to_registration"). Habría que utilizar el equivalente para la "Política de Privacidad" ¿no? Gracias de antemano.
Un saludo 🙂
Hola Carmen.
sustituye el código por el siguiente:
//Agregar checkbox para terminos y condiciones
add_action( 'woocommerce_register_form', 'add_terms_and_conditions_to_registration', 20 );
function add_terms_and_conditions_to_registration() {
if ( wc_get_page_id( 'terms' ) > 0 && is_account_page() ) {
?>
<p class="form-row terms wc-terms-and-conditions">
<label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox">
<input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="terms" <?php checked( apply_filters( 'woocommerce_terms_is_checked_default', isset( $_POST['terms'] ) ), true ); ?> id="terms" /> <span><?php printf( __( 'He leído y acepto la <a href="https://prueba.unifilomedia.net/politica-privacidad/" target="_blank" >Política de Privacidad</a>', 'woocommerce' ), esc_url( wc_get_page_permalink( 'terms' ) ) ); ?></span> <span class="required">*</span>
</label>
<input type="hidden" name="terms-field" value="1" />
</p>
<?php
}
}
// Validar el checkbox como requerido
add_action( 'woocommerce_register_post', 'terms_and_conditions_validation', 20, 3 );
function terms_and_conditions_validation( $username, $email, $validation_errors ) {
if ( ! isset( $_POST['terms'] ) )
$validation_errors->add( 'terms_error', __( 'Terms and condition are not checked!', 'woocommerce' ) );
return $validation_errors;
}
Lo único que hemos realizado a sido indicarle la URL de la página
<a href="https://prueba.unifilomedia.net/politica-privacidad/" target="_blank" >Política de Privacidad</a>
Un saludo
Hola Pepe. Nos estamos liando con las políticas y las casillas. No quiero una check box para "Terminos y Condiciones" en la página de registro. Quiero una check box para "Política de Privacidad" en la página de registro. Gracias de antemano.
Un saludo 🙂
Hola Carmen.
probaste a modificar el código como et indique ?
Cambiamos la URL para que enlace a la política de privacidad:
<a href="https://prueba.unifilomedia.net/politica-privacidad/" target="_blank" >Política de Privacidad</a>
El código es el mismo para uno que para otro, solo cambia el link del enlace.
un saludo
Hola Carmen,
Entiendo, el código que te suministro Pepe realiza el procedimiento que deseas
Te permite añadir la casilla para las políticas de privacidad que tengas en tu sitio web, el resultado al añadirlo será el siguiente
Si haces clic en el enlace de políticas de privacidad te lleva directamente a la pagina que tienes asignada con este fin.
Prueba agregarlos y nos comentas como ha ido todo.
Un Saludo
Hola. Disculpar. ¿Dónde tengo que modificar la url? Gracias de antemano
Un saludo 🙂
Hola Carmen.
Solo tienes que eliminar el codigo que te pasó antes y sustituirlo por el que te indique.
El archivo es functions.php que se encuentra dentro de la carpeta de tu plantilla.
Si no tienes el código añadido, solo tienes que copiarlo y pegarlo en ese archivo.
Un saludo
Hola chicos. ¡Funciona perfectamente! Disculpar. Me había liado porque anteriormente coloqué un script que era para colocar la casilla de verificación de "He leído y acepto la "Política de Privacidad"" en la página de finalizar compra y ahí sí, la función hacía referencia a la Política de Privacidad y no hubo que cambiar nada. En este caso como la función es "add_terms_and_conditions_to_registration" pensé que os había liado yo. Pero ya lo entiendo. Realmente la función es la misma, lo único que importa son los parámetros que introduzcas. Perdonar que os de tanto la lata pero para mí es muy importante comprender bien lo que hago. Gracias otra vez.
Un saludo 🙂
Hola Carmen,
Enhorabuena lograste modificarlo, no te preocupes siempre estamos encantados de poder ayudarte.
Con esto podemos dar el tema como solucionado.
Escríbenos si tienes otras consultas.
Un Saludo 😊