Plugin Bereinigung - Plugin vollständig deinstallieren

Geändert am Wed, 31 Jan 2024 um 10:47 AM

INHALTSVERZEICHNIS


In Ausnahmefällen ist es sinnvoll ein Plugin vollständig zu deinstallieren, beispielsweise wenn bei einer Installation oder einem Update etwas schiefgelaufen ist.


Bitte versuche zuerst dein Plugin über das Backend zu deinstallieren. Oftmals reicht dies schon aus. Falls das allerdings nicht funktioniert ist es nötig das Plugin manuell aus dem Shop zu entfernen.


Plugin über Backend deinstallieren

Der einfachste Weg ein Plugin zu entfernen ist es, dieses über das JTL-Shop Backend zu deinstallieren. Dies funktioniert mit Hilfe des Safemodes sogar, wenn das Backend sonst nicht mehr aufrufbar wäre.


Safemode


Um den Safemode zu benutzen muss man an die URL nur den Parameter ?safemode=on anhängen. Also beispielsweise dein-shop.de/admin?safemode=on. 


Weitere Infos zum Safemode: https://guide.jtl-software.de/jtl-shop/systemverwaltung/faq-zu-jtl-shop/


Der Safemode bewirkt, dass im Shopbackend installierte Plugins nicht geladen werden und somit das Shopbackend bei einem fehlerhaften Plugin wieder funktioniert.

Dann ist auch eine Deinstallation möglich.


Plugin manuell entfernen


Führe diese Schritte nur aus, wenn du weißt was du tust. Alle Änderungen an der Datenbank oder der Dateistruktur deines Shops führst du auf deinen eigene Gefahr hin durch.


Wenn eine Deinstallation über das Shopbackend nicht möglich ist, ist es nötig das Plugin manuell zu entfernen.

Hierfür muss im ersten Schritt der Plugin-Ordner gelöscht werden.


Dieser liegt unter: 

  •  Shop 4 unter includes/plugins/dein_plugin_ordner
  •  Shop 5 unter plugins/dein_plugin_ordner

Im zweiten Schritt sollte alle Datenbanktabellen entfernt werden, welche zu dem jeweiligen Plugin gehören

  • Shop 4 heißen diese xplugin_dein_plugin
  • Shop 5 heißten diese ws5_dein_plugin

Im letzten Schritt müssen nun noch alle Einträge, welche das Plugin in Shoptabellen geschrieben hat entfernt werden. Dies kann von Plugin zu Plugin unterschiedlich sein. 

Wichtig für die Bereinigung der Datenbank ist die kPlugin-ID des entsprechenden Plugins. Diese kann aus der tplugin-Tabelle abgelesen werden


Beispiel SQL Script


Wir haben ein SQL-Skript, welches dir einen guten Anhaltspunkt bieten kann, in welchen Tabellen noch Daten des Plugins sein können. 


Bitte dieses Script nur als Beispiel sehen und als Anhaltspunkt nutzen, wenn du ausreichende Kenntnisse in SQL hast


Hier muss nur die kPlugin ID entsprechend angepasst werden.


SET @kPlugin = 0;
DELETE FROM `texportformateinstellungen` where `kExportformat` IN (SELECT `kExportformat` FROM `texportformat` WHERE kPlugin = @kPlugin);
DELETE FROM `texportformatqueuebearbeitet` where `kExportformat` IN (SELECT `kExportformat` FROM `texportformat` WHERE kPlugin = @kPlugin);
DELETE FROM `texportqueue` where `kExportformat` IN (SELECT `kExportformat` FROM `texportformat` WHERE kPlugin = @kPlugin);
DELETE FROM `tlinksprache` where `kLink` IN (SELECT `kLink` FROM `tlink` WHERE kPlugin = @kPlugin);
DELETE FROM `tpluginsprachvariablesprache` where `kPluginSprachvariable` IN (SELECT `kPluginSprachvariable` FROM `tpluginsprachvariable` WHERE kPlugin = @kPlugin);
DELETE FROM `temailvorlagesprache` where `kEmailvorlage` IN (SELECT `kEmailvorlage` FROM `temailvorlage` WHERE kPlugin = @kPlugin);
DELETE FROM `temailvorlagespracheoriginal` where `kEmailvorlage` IN (SELECT `kEmailvorlage` FROM `temailvorlage` WHERE kPlugin = @kPlugin);
DELETE FROM `tpluginemailvorlageeinstellungen` where `kEmailvorlage` IN (SELECT `kEmailvorlage` FROM `temailvorlage` WHERE kPlugin = @kPlugin);
DELETE FROM `temailvorlageeinstellungen` where `kEmailvorlage` IN (SELECT `kEmailvorlage` FROM `temailvorlage` WHERE kPlugin = @kPlugin);
DELETE FROM `tplugineinstellungenconfwerte` where `kPluginEinstellungenConf` IN (SELECT `kPluginEinstellungenConf` FROM `tplugineinstellungenconf` WHERE kPlugin = @kPlugin);
DELETE FROM `tadminwidgets` WHERE kPlugin = @kPlugin;
DELETE FROM `tcheckboxfunktion` WHERE kPlugin = @kPlugin;
DELETE FROM `temailvorlage` WHERE kPlugin = @kPlugin;
DELETE FROM `texportformat` WHERE kPlugin = @kPlugin;
DELETE FROM `tlink` WHERE kPlugin = @kPlugin;
DELETE FROM `topcblueprint` WHERE kPlugin = @kPlugin;
DELETE FROM `topcportlet` WHERE kPlugin = @kPlugin;
DELETE FROM `tplugin` WHERE kPlugin = @kPlugin;
DELETE FROM `tplugin_resources` WHERE kPlugin = @kPlugin;
DELETE FROM `tpluginadminmenu` WHERE kPlugin = @kPlugin;
DELETE FROM `tplugincustomtabelle` WHERE kPlugin = @kPlugin;
DELETE FROM `tplugineinstellungen` WHERE kPlugin = @kPlugin;
DELETE FROM `tplugineinstellungenconf` WHERE kPlugin = @kPlugin;
DELETE FROM `tpluginhook` WHERE kPlugin = @kPlugin;
DELETE FROM `tpluginlinkdatei` WHERE kPlugin = @kPlugin;
DELETE FROM `tpluginsprachvariable` WHERE kPlugin = @kPlugin;
DELETE FROM `tpluginsprachvariablecustomsprache` WHERE kPlugin = @kPlugin;
DELETE FROM `tplugintemplate` WHERE kPlugin = @kPlugin;
DELETE FROM `tpluginuninstall` WHERE kPlugin = @kPlugin;
DELETE FROM `tpluginzahlungsartklasse` WHERE kPlugin = @kPlugin;
DELETE FROM `tspezialseite` WHERE kPlugin = @kPlugin;

Mit den folgenden Befehlen werden die von den Plugins angelegten Zahlungsarten entfernt


DELETE FROM `tversandartzahlungsart` WHERE kZahlungsart IN (SELECT kZahlungsart FROM tzahlungsart WHERE cModulId LIKE CONCAT('%_', @kPlugin, '_%'));

DELETE FROM `tzahlungsartsprache` where kZahlungsart IN (SELECT kZahlungsart FROM tzahlungsart WHERE cModulId LIKE CONCAT('%_', @kPlugin, '_%'));

DELETE FROM `tzahlungsart` WHERE cModulId LIKE CONCAT('%_', @kPlugin, '_%');

Zusätzlich müssen dann noch alle Tabellen gelöscht werden, die vom Plugin erstellt wurden. 


Hier sehr vorsichtig sein, denn wenn die falschen Tabellen gelöscht werden, kann es andere Plugins oder den Shop selbst lahmlegen!


Diese folgen generell folgendem Muster: "xplugin_{PluginId}_{Tabellen Name}".

Für das Plugin Mollie sieht beispielsweise eine Plugin Tabelle so aus: "xplugin_ws5_mollie_orders".



Tags: