Ich erstelle ein Plugin, das einem Haupt-Plugin zusätzliche Funktionen hinzufügt. Idealerweise sollte im Verwaltungsbildschirm der Plugins der Link "Aktivieren" deaktiviert und ein Inline-Hinweis hinzugefügt werden, der den Benutzer auffordert, das Haupt-Plugin zuerst zu installieren und zu aktivieren, bevor er das aktuelle Plugin verwenden kann.
plugin-development
kosinix
quelle
quelle
if (is_plugin_active('path/to/plugin.php')) { // Do something }
Antworten:
Danke für die Antworten Jungs. Obwohl beide Antworten mich auf den richtigen Weg brachten, funktionierte keiner sofort. Also teile ich meine Lösungen unten.
Methode 1 - register_activation_hook verwenden:
Erstelle das Parent Plugin in der Datei plugins / parent-plugin / parent-plugin.php:
Erstellen Sie das Child Plugin in der Datei plugins / child-plugin / child-plugin.php:
Beachten Sie, dass ich
deactivate_plugins( $plugin );
aus irgendeinem Grund nicht benutze, es funktioniert nicht. Deshalb habe ich wp_die verwendet, um die Aktivierungsumleitung abzubrechen und den Benutzer zu informieren.Vorteil:
Nachteile:
Methode 2 - Verwenden von admin_init und admin_notices
Erstelle das Parent Plugin in der Datei plugins / parent-plugin / parent-plugin.php:
Erstellen Sie das Child Plugin in der Datei plugins / child-plugin / child-plugin.php:
Vorteil:
Nachteil:
Bei meiner Frage zum Deaktivieren des Aktivierungslinks könnte ich Folgendes verwenden:
Es stellte sich jedoch als äußerst unpraktisch heraus, da es KEINEN Platz gibt, um diesen Code zu platzieren. Ich konnte es nicht auf das übergeordnete Plugin setzen, da das übergeordnete Plugin aktiv sein sollte, damit dieser Code ausgeführt wird. Gehört mit Sicherheit nicht zu child plugin oder functions.php. Also verschrotte ich diese Idee.
quelle
Probieren Sie es aus, es ist kommentiert, damit Sie es besser verstehen.
Wenn dies einen Fehler auslöst, können Sie auch die 'Option' von 'myplugin' markieren und auf false oder nicht aktiviert setzen.
quelle
Beide Lösungsvorschläge weisen Mängel auf.
Methode 1: Wie bereits erwähnt, wird der Bildschirm wp_die () STILL angezeigt, wenn das übergeordnete Plugin und das untergeordnete Plugin gleichzeitig mithilfe der Kontrollkästchen im Verwaltungsbildschirm des Plugins aktiviert werden.
Methode 2: In einigen Anwendungsfällen ist es nicht gut, da 'admin_init' nach 'plugins_loaded' ( https://codex.wordpress.org/Plugin_API/Action_Reference ) und nach dem Deinstallations-Hook ( https: // codex) ausgeführt wird. wordpress.org/Function_Reference/register_uninstall_hook ). Wenn das Add-On beispielsweise bei der Deinstallation Code ausführen soll, unabhängig davon, ob das übergeordnete Plug-In aktiv ist oder nicht, funktioniert dieser Ansatz NICHT.
Lösung:
Zunächst müssen wir den folgenden Code an das Ende der Haupt-PHP-Datei des übergeordneten Plugins anhängen:
Dadurch wird ein Ereignis / Signal an alle Abonnenten gesendet, das besagt, dass das Core-Plugin geladen wurde.
Die Klasse des Add-Ons sollte dann folgendermaßen aussehen:
Ich hoffe es hilft :)
quelle
Ich denke, Sie brauchen die TGM-Plugin-Aktivierung .
quelle