Es gibt zahlreiche WordPress-Themes im Netz, die auf dem Plugin Visual Composer von WPBakery aufsetzen. So auch das von mir hier genutzt Theme Newsmag von TagDiv sowie dessen Brüderchen Newspaper. Mit dem Visual Composer lassen sich Seiten und Beiträge mit einer aufwändigeren Formatierung wie beispielsweise Spalten oder Blöcken recht leicht umsetzen und mit einer grafischen Oberfläche gestalten. Die Autoren dieser meist kommerziellen Themes legen das WordPress-Plugin dem Theme mitsamt einer Lizenz für dieses bei, sodass man sich bei der Installation des Themes nicht weiter um den Visual Composer kümmern muss. In der Praxis stören dann allerdings unnötige Update-Hinweise sowie Aufforderungen zum Registrieren des Plugins.

Nach der Installation eines „Visual-Composer-Themes“ meldet sich dieses Add-on immer wieder im WordPress-Backend mit dem Wunsch aktiviert zu werden: Hola! Please activate your copy of Visual Composer to receive automatic updates. Diesem Wunsch muss und kann man jedoch nur nachkommen, wenn man das kommerzielle Plugin direkt kauft und nicht — wie bei den TagDiv-Templates — die Lizenz über ein Theme bekommen hat. Die Meldung über das „X“ am Ende der Zeile wegzuklicken schafft für eine Weile Ruhe, doch löscht man (wie ich) beim beenden des Browsers sämtliche Cookies, dann kommt die Meldung spätestens beim nächsten Login in das Backend wieder auf den Schirm.

Das in viele WordPress-Themes integrierte Plugin Visual Composer nervt andauernd mit dem Wunsch aktiviert zu werden.
Das in viele WordPress-Themes integrierte Plugin Visual Composer nervt andauernd mit dem Wunsch aktiviert zu werden.
Mit dem Plugin "My Custom Functions" lassen sich sehr leicht eigene Funktionen in WordPress einbauen.
Mit dem Plugin „My Custom Functions“ lassen sich sehr leicht eigene Funktionen in WordPress einbauen.

Ruhe bekommt man nur, wenn man dafür sorgt, dass der Cookie dauerhaft erhalten bleibt. Daher ist es in meinen Augen sinnvoller sich eine kleine WordPress-Funktion zu bauen, die den Cookie beim Laden des Backends automatisch in den Browser schreibt. Dazu fügt man die folgenden zwei Zeilen am Ende der Datei functions.php des gerade aktiven WordPress-Themes ein. Im Fall von Newsmag findet man diese entsprechend im Verzeichnis wp-content/themes/Newsmag. Dabei sollte man beachten, dass man diese Datei beim Aktualisieren des Themes in der Regel überschreibt. Ich baue die Zeilen daher über das Plugin My Custom Functions ein. Auf diesem Weg erspart man sich das Editieren des Themes, sodass die Änderungen bei Updates oder einem Wechsel des Themes erhalten bleiben.

setcookie('vchideactivationmsg', '1', strtotime('+3 years'), '/');
setcookie('vchideactivationmsg_vc11', (defined('WPB_VC_VERSION') ? WPB_VC_VERSION : '1'), strtotime('+3 years'), '/');

Vielleicht noch einen Tick eleganter ist es ein kleines Snippet als WordPress-Plugin zu erstellen. Ein Beispiel dafür findet sich bei Stanislav Khromov, einem Webentwickler beim schwedischen Aftonbladet. Das von ihm erstellte „Stop Visual Composer Activation Nag“-Plugin (den Code findet ihr im nächsten Kasten) speichert ihr als stop-vc-nag.php im Verzeichnis wp-content/plugins eurer WordPress-Installation ab. Danach öffnet ihr das Backend eures Blogs und aktiviert das neue Plugin in den Einstellungen. Beide Lösungen führen zum Ziel: Ihr werdet nie mehr die Aktivierungsmeldung sehen, ohne dass man direkt am Theme oder am Visual Composer etwas ändern müsste. Die Lösung bleibt also auch bei Updates erhalten.

<?php
/*
Plugin Name: Stop Visual Composer Activation Nag
Plugin URI:
Description:
Version: 2016.04.26
Author: khromov
Author URI: http://snippets.khromov.se
License: GPL2
*/
 
add_action('admin_init', function()
{
    if(is_admin()) {
        setcookie('vchideactivationmsg', '1', strtotime('+3 years'), '/');
        setcookie('vchideactivationmsg_vc11', (defined('WPB_VC_VERSION') ? WPB_VC_VERSION : '1'), strtotime('+3 years'), '/');
    }
});

Ein weiterer störender Punkt beim Einsatz von Visual-Composer-Themes ist der Update-Hinweis des Plugins. Da man ja bei diesen Themes den Visual Composer über das Theme bezieht, lässt sich dieser nicht über die WordPress-Updates aktualisieren. Für Updates ist der Autor des jeweiligen Themes verantwortlich, dieser testet in der Regel sein Theme auf Kompatibilität zu einer neuen Version des Visual Composers, packt diese mit in den Theme-Ordner und veröffentlicht dann eine neue Version seines Themes zusammen mit einer neuen Version des Visual Composers. Direkt nach einem Theme-Update ist dann so auch der Visual Composer Up-to-date, nach ein paar Tagen oder Wochen hinkt das lokale Plugin jedoch wieder hinterher und man muss so lange mit der Update-Meldung leben, bis der Theme-Autor wieder nachlegt.

Beinhaltet das Theme bereits eine Lizenz für den Visual Composer, so muss/kann man das Plugin nicht auf diesem Weg aktualisieren.
Beinhaltet das Theme bereits eine Lizenz für den Visual Composer, so muss/kann man das Plugin nicht auf diesem Weg aktualisieren.

Aber auch hier lässt sich wieder relativ leicht Abhilfe schaffen — die Lösung lässt sich dabei auch auf andere Plugins übertragen, die man von der Aktualisierung ausklammern möchte (weil die aktuelle Version eventuell etwas verschlimmbessert hat). Dazu braucht es erneut einen Eintrag in die functions.php des aktuell genutzten Themes. Im Fall von Newsmag also wieder im Ordner wp-content/themes/Newsmag eurer WordPress-Installation. Dort fügt ihr am dann Ende die Zeilen aus dem folgenden Listing ein. Wieder als Tipp: Mit dem Plugin My Custom Functions lässt sich dieser Eintrag vornehmen, ohne dass man die Theme-Datei selbst bearbeiten muss. So bleibt die Änderung auch im Falle eines Updates unangetastet.

function filter_plugin_updates( $value ) {
    unset( $value->response['js_composer/js_composer.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

Möchtet ihr ein anderes Plugin als den Visual Composer von den Updates (und somit den Update-Meldung) ausnehmen, dann ändert ihr einfach den Pfad mitsamt dem Dateinamen des Plugins in der Unset-Zeile (hier im Beispiel in der zweiten Zeile). Am Ende sollte der Visual Composer nun endlich Ruhe geben: Ihr müsstet jetzt vom Wunsch aktiviert und aktualisiert zu werden in Zukunft verschont bleiben. Achtet beim Einspielen eines Theme-Updates nun aber darauf, dass ihr eventuell auch den Visual Composer von Hand aktualisieren müsst. Vergesst ihr das, drohen Inkompatibilitäten mit dem Theme oder gar Sicherheitslücken durch den Visual Composer.

1 Kommentar

  1. decent solution but I found that adding this instead to your functions.php file works better:

    $_COOKIE[‘vchideactivationmsg_vc11’] = WPB_VC_VERSION;

    that way the message won’t even show up the first time and you don’t have to rely on setting a cookie.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein