Solución al Visual Composer en WordPress 4.5

Si usas el famoso Visual Composer para tu WordPress, quizás te haya dejado de funcionar luego de la actualización a la versión 4.5

Aquí te enseño como solucionarlo.

Visual composer no funciona con wordpress 4.5

Este gran problema que sufren miles de sitios web, viene derivado de la actualización 4.5 de WordPress.

Si no has actualizado el plugin (ya sea porque no quieres o no puedes), habrás notado que, o bien el editor de entradas y paginas ya no funciona, o si funciona pero no permite agregar elementos.

SI EL EDITOR APARECE EN BLANCO

Si el editor te aparece en blanco, el problema es que requiere al menos de 64mb de memoria limite de PHP.

Esto lo puedes ver en el cPanel de tu hosting, precisamente en la variable «memory_limit» dentro de la configuración de PHP.

Si quieres intentar incrementar la memoria, puede probar esto.

Si no tienes muchos conocimientos, habla directamente con tu proveedor de hosting y pídele que te suban el limite al menos a 64 mb.

SI EL EDITOR FUNCIONA PERO NO AGREGA ELEMENTOS

Si este es tu caso y te fijas en la consola de Javascript en el inspector de codigo del Chrome (boton derecho en la pagina > Inspeccionar), veras que el error es:

Uncaught TypeError: $template.get is not a function

Este es un error javascript, puntualmente del archivo ubicado en:

wp-content/plugins/js_composer/assets/js/dist/backend.min.js

SOLUCIÓN:

Para solucionar este problema, debes editar el archivo backend.min.js (sino lo encuentras edita composer-view.js), buscando las siguientes lineas:

html2element:function (html) {
 var attributes = {}, 
 $template;
 if (_.isString(html)) {
 this.template = _.template(html);
 $template = $(this.template(this.model.toJSON()).trim());
 } else {
 this.template = html; 
 $template = html;
 }
 _.each($template.get(0).attributes, function (attr) {
 attributes[attr.name] = attr.value;
 }); 
 this.$el.attr(attributes).html($template.html());
 this.setContent();
 this.renderContent();
},

 

Y modificarlas por estas:

html2element:function (html) {
 var attributes = {}, 
 $template;
 if (_.isString(html)) {
 this.template = _.template(html);
 } else {
 try {
 this.template = _.template(html()); 
 } catch (err) {
 this.template = html;
 } 
 } 
 $template = $(this.template(this.model.toJSON()).trim());
 _.each($template.get(0).attributes, function (attr) {
 attributes[attr.name] = attr.value;
 }); 
 this.$el.attr(attributes).html($template.html());
 this.setContent();
 this.renderContent();
 },

Te recuerdo que uses un editor de texto plano como Notepad, TextEdit, SublimeText o similares.

Si se te complica editar el archivo backend.min.js porque el código está comprimido, puedes descomprimirlo primero en el siguiente sitio www.unminify.com

Luego tomas el código descomprimido que te devuelve ese sitio, lo reemplazas en el archivo JS, y luego modificas la parte mencionada anteriormente. Guardas y lo subes (sin comprimir, no hay problema)

De esta forma volverá a funcionar el editor del Visual Composer de Bakery.

A mi me funcionó!

Espero tus comentarios aquí debajo   🙂

Videotutorial de Bootstrap

 

Cursos de desarrollo web:

[featured_products per_page="12" columns="4"]

Diseñador y Programador Web Full-Stack especializado en PHP / MySQL / Laravel / Wordpress / HTML5 / CSS3 / JS.

16 thoughts on “Solución al Visual Composer en WordPress 4.5

  1. Estefanía Reply

    Hola, Cristian.
    Mi problema es que se me queda bloqueado el editor y me aparece un mensaje encima (imposible de cerrar) que me obliga a actualizar. ¿Sabes si estos trucos geniales que das corrigen también mi problema?
    Gracias por compartir tus conocimientos!!

  2. Estefanía Reply

    Hola, Cristian.
    Parece que lo acabo de solucionar, pero el archivo que hay que modificar es el composer-view.js. Corrígelo si quieres en tu post. Lo he probado y por ahora funciona!! Wow, la actualización me desconfiguraba el diseño de casi todas mis webs!!
    No me aparecía ningún número (o no sé porque no soy programadora), es un popup que dice que debo de actualizar a la nueva versión. Tiene un link a los que la comercializan y es transparente (se ve el editor detrás).
    Gracias por la rápida respuesta, por tu interés y por darme las nociones de cómo solucionarlo.

    1. Cristian Carrera Post author Reply

      Supongo que te refieras a que quieres URL friendly.
      Debes trabajar con el archivo htaccess pero debes saber un poco de programación de servidores.

  3. Ariel Rivilli Reply

    Hola, como estás, se ve que algo cambia pero no me lo resuelve, me aparece todo en código y no me deja la edición del visual composer, Yo reemplace esto bien
    html2element:function (html) {
    var attributes = {},
    $template;
    if (_.isString(html)) {
    this.template = _.template(html);
    } else {
    try {
    this.template = _.template(html());
    } catch (err) {
    this.template = html;
    }
    }
    $template = $(this.template(this.model.toJSON()).trim());
    _.each($template.get(0).attributes, function (attr) {
    attributes[attr.name] = attr.value;
    });
    this.$el.attr(attributes).html($template.html());
    this.setContent();
    this.renderContent();
    },

    Ahora me da un error en la línea siguiente la cual tiene este código
    return this.$el.attr(«data-model-id», this.model.get(«id»)), this.$el.data(«model», this.model), this
    },

    1. Cristian Carrera Post author Reply

      Ariel, los errores de Javascript son un tanto complejos de solucionar. Habria que ver en la consola del navegador que error te esta dando.

  4. Ariel Rivilli Reply

    Buenas…. tanto renegar logre solucionar, desintale y subi la versión 5 que viene en la ultima versión del theme que utilizo con es el fortuna, ni el theme ni el plugins es pago por si les sirve de ayuda, la versión 5.0 me funciono.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.