Avisos
Vaciar todo

[Resuelto] Evitar que Contact Form 7 cargue en cada visita  

Página 1 / 4
 
José Javier
 José Javier
Nuevo usuario

Para mejorar la velocidad de mi web, me han comentado que puedo cambiar algo dentro de contact form 7 para que no cargue en cada visita si no solo cuando sea necesario.

Me dan este link con información Contenido solo visible a usuarios registrados

Respondido : 06/12/2019 5:33 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

La idea sería que sólo cargues los estilos y scripts de contact form al cargar la página de contacto.
El código usualmente lo agregas en el archivo functions.php de tu theme.

Contenido solo visible a usuarios registrados

Saludos.

Respondido : 06/12/2019 5:43 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

José Javier
 José Javier
Nuevo usuario

Hola Jhon; muchas gracias me queda mucho mas claro, una cosa mas, esto podría hacerlo directamente introduciendo el codigo atraves de añadir un nuevo codigo con el plug in Code Snippets, y poniendo en etiquetas al final, functions, php?

Respondido : 06/12/2019 6:29 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Supongo que te refieres a este plugin:
https://wordpress.org/plugins/code-snippets/

Si, efectivamente puesde usarlo sin problemas ya que el código usa Hooks, sin embargo sólo será necesario correr el código en el front-end del sitio (ver imagen adjunta de la documentación del plugin)

Saludos.

Respondido : 06/12/2019 8:25 pm

Diana
 Diana
Usuario eminente

Buenos días! También me gustaría evitar que Contact Form cargue en cada visita de mi tienda online para mejorar su velocidad. He leído el post, pero me surgen algunas dudas. A ver si me las podéis resolver si no es molestia.

De todas las posibilidades que hay, yo quiero que automáticamente, a través del código, detecte en qué páginas hay formulario (/contacto, registro de cliente nuevo, compra, etc.)  ¿Solo tengo que introducir un código? ¿Cuál sería?

Y segundo, ¿solo tengo que introducirlo exclusivamente en el functions.php? ¿En qué lugar exacto? Porque introduje uno al final del todo a modo de prueba y me petó la web

Url de mi sitio: https://www.tutiendadealfombras.com/

GRACIAS!!!

Respondido : 17/02/2020 10:47 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Diana.

Lo primero sería añadir el siguiente código al final del archivo functions.php paar que no cargue los archivo JS y CSS de Contact

add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );

 

El siguiente paso sería indicar en qué páginas quieres que carguen esos archivos:

Un ejemplo sería el siguiente:

function deregister_cf7_js() {
if ( !is_page(array( 'contacto', 'presupuesto', 'index' ) )) {
wp_deregister_script( 'contact-form-7');
}
}
add_action( 'wp_print_scripts', 'deregister_cf7_js' );

function deregister_ct7_styles() {
if ( !is_page(array( 'contacto', 'presupuesto', 'index' ) )) {
wp_deregister_style( 'contact-form-7');
}
}
add_action( 'wp_print_styles', 'deregister_ct7_styles');

 

Tienes que modificar el slug  por el de las páginas donde quieres que carguen " if ( !is_page(array( 'contacto', 'presupuesto', 'index' )

Lo tienes que hacer tanto para los JS como para los CSS " function deregister_cf7_js()  " " function deregister_ct7_styles() "

El slug lo puedes localizar editando las páginas donde tienes los formularios:

 

slug pagina wp

 

 

Los dos códigos que te indique puedes añadirlos al final del archivo functions.php

Un saludo

Respondido : 17/02/2020 12:09 pm

Cursos Gratuitos WordPress

Diana
 Diana
Usuario eminente

Muchas gracias, Pepe!!!! Perdona mi torpeza, pero me surgen algunas cuestiones

a) ¿El código lo tengo que añadir al final de la última } del archivo functions.php?

b) ¿Quedaría así?

}
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
function deregister_cf7_js() {
if ( !is_page(array( 'contacto', 'presupuesto', 'index' ) )) {
wp_deregister_script( 'contact-form-7');
}
}
add_action( 'wp_print_scripts', 'deregister_cf7_js' );
function deregister_ct7_styles() {
if ( !is_page(array( 'contacto', 'presupuesto', 'index' ) )) {
wp_deregister_style( 'contact-form-7');
}
}
add_action( 'wp_print_styles', 'deregister_ct7_styles');

c) El problema de los slugs, es que al ser tienda online creo que hay algunas páginas que no son "editables", sino que van por .php (como registro de nuevo usuario, carrito de la compra, etc...) ¿Si me falta algún slugs qué puede pasar? ¿No había una opción de código que detectaba automáticamente las páginas que tenían ContactForm o algo así?

Disculpa mi torpeza de nuevo. Gracias por todo!
Respondido : 17/02/2020 6:32 pm
Diana
 Diana
Usuario eminente

Perdona. Corrijo. Mi archivo functions.php actualmente termina así:

add_action( 'wp_enqueue_scripts', 'DLVJ_enqueue_scripts', 30 );

Respondido : 17/02/2020 6:34 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Agrega el código simplemente a partir de la siguiente línea

PD: En tu código anterior hay una llave que no tiene inicio, no se si es un error al copiar el código pero no debería ir ya que no forma parte del código

}

Saludos.

Respondido : 17/02/2020 7:16 pm
Diana
 Diana
Usuario eminente

Mil gracias. ¿Entonces debería quedar así?

add_action( 'wp_enqueue_scripts', 'DLVJ_enqueue_scripts', 30 ); ((este es la última línea del archivo actual))
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
function deregister_cf7_js() {
if ( !is_page(array( 'contacto**', 'presupuesto**', 'index**' ) )) {
wp_deregister_script( 'contact-form-7');
}
}
add_action( 'wp_print_scripts', 'deregister_cf7_js' );
function deregister_ct7_styles() {
if ( !is_page(array( 'contacto**', 'presupuesto**', 'index**' ) )) {
wp_deregister_style( 'contact-form-7');
}
}
add_action( 'wp_print_styles', 'deregister_ct7_styles');
Respondido : 17/02/2020 9:16 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Diana
 Diana
Usuario eminente

Una última cosa (perdonad mi ignorancia)

Una duda sobre los slugs, ¿los posts del blog que tengan permitidos la opción de dejar comentarios también hay que indicar su url una a una? ¿Y para los pots que introduzca en un futuro?

Respondido : 17/02/2020 9:42 pm
Bulmaro
 Bulmaro
Soporte CMS Webempresa Moderator

@albaalfombrasbaldomero-es

Hola,

Todo parece ser correcto, solo que no entiendo por qué agregas los ** aquí:

Respondido por: @albaalfombrasbaldomero-es

if ( !is_page(array( 'contacto**', 'presupuesto**', 'index**' ) )) {

Respondido por: @albaalfombrasbaldomero-es

 

Una duda sobre los slugs, ¿los posts del blog que tengan permitidos la opción de dejar comentarios también hay que indicar su url una a una? ¿Y para los pots que introduzca en un futuro?

Sí, es correcto. Ya que el script que estás insertando valida mediante un arreglo o lista de slugs de posts y paginas permitidas si los scripts de Contact Form deben o no cargarse. 

Saludos 🙂

Respondido : 17/02/2020 10:19 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Diana
 Diana
Usuario eminente

Gracias a todos! Me siguen surgiendo algunas dudas. Perdonad las molestias. 

Os cuento:

Los *** los he colocado porque sé que los slugs esos tendría que cambiarlos

Pero la cuestión es: para https://tutiendadealfombras.com/envio-y-devoluciones/#login-popup ¿qué slug tendría que poner?

Y por último, ¿los comentarios, registros de nuevos usuarios... van también por contact form? ¿O simplemente es el de /contacto? Es que poner los slugs de los artículos de mi blog, uno a uno, es un trabajazo.

Gracias!

Respondido : 18/02/2020 8:32 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Diana.

Solo tienes que indicar en qué páginas quieres que carguen, es decir solo añade los slug  de las páginas donde tienes algún formulario de Contact Form.

En la página que indicas no hay ningún formulario a si que no tienes que añadir nada.

Si repasas la contestación que te di antes veras que primero añadimos dos lineas de código:

add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );


Estos códigos lo que hacen es que no carguen los archivos en ninguna página, es decir, si solo dejas esos códigos los formularios cargarian sin estilos y para que caguen añadimos el los siguientes bloques que de código, uno para los archivos JS

function deregister_cf7_js()

 

y otro para los archivos CSS

function deregister_ct7_styles()

En esos bloques es donde tienes que añadir los slug de las páginas que sí que tienen algún formulario de Contact Form.

 

¿los comentarios, registros de nuevos usuarios... van también por contact form?

En principio no, solo tienes que ir a Contacto y ver los formularios que tienes creados, esos serian los que tienes que añadir.

 

Un saludo

 

Respondido : 18/02/2020 9:18 am

Diana
 Diana
Usuario eminente

¡¡Muchas gracias a todos!! Así ha quedado el código (pegado al final del todo). ¿Estaría todo correcto, verdad?

add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
function deregister_cf7_js() {
if ( !is_page(array( 'contacto', 'finalizar-compra-2', 'mi-cuenta' ) )) {
wp_deregister_script( 'contact-form-7');
}
}
add_action( 'wp_print_scripts', 'deregister_cf7_js' );
function deregister_ct7_styles() {
if ( !is_page(array( 'contacto', 'finalizar-compra-2', 'mi-cuenta' ) )) {
wp_deregister_style( 'contact-form-7');
}
}
add_action( 'wp_print_styles', 'deregister_ct7_styles');

Respondido : 18/02/2020 10:36 am
Página 1 / 4