Ich habe ein Plugin auf WordPress.org verteilt, das ziemlich beliebt ist. Ich muss die Unterstützung für PHP 5.2 einstellen und möchte zumindest die Unterstützung für PHP 5.2 einstellen, aber wenn ich das Minimum an PHP 5.4 erreichen könnte, wären späte statische Bindungen und nützliche Abschlüsse großartig.
Bevor Sie PHP7 sagen, denken Sie daran, dass das Plugin nur über 100.000 Websites ausführt. Für alle WordPress-Sites sind 10% der Sites auf PHP 5.3 oder niedriger. Ich riskiere nicht, 10.000 Websites zu beschädigen.
Wir werden einen PHP-Mindestversionsheader hinzufügen , aber dies macht auf programmatischer Ebene noch nichts.
Ich suche nach dem richtigen Muster, um Aktualisierungen meines Plugins dauerhaft kurzzuschließen, es sei denn, die PHP-Versionsanforderung ist festgelegt. Hat jemand eine kugelsichere Möglichkeit, dies zu tun?
quelle
F ** k die Ludditen;)
Obwohl ich die Frage nicht direkt beantworte, ist meine eigene Erfahrung beim Verschieben eines halbpopulären Plugins von 5.2 auf 5.3, dass es viel weniger Reibung gibt, als Sie es von den Nutzungsstatistiken von wordpress.org erwarten können, und diese Reibungen können normalerweise leicht von der Websitebesitzer.
Und natürlich verdienen Leute, die direkte Änderungen an Produktionsstandorten vornehmen, einfach alles, was sie bekommen;)
In gewisser Weise verletzen Sie die Benutzer mehr, als ihnen zu helfen, es sei denn, Sie können einen auffälligen Hinweis auf die Inkompatibilität geben, da sie ohne einen solchen Hinweis keinen Anreiz erhalten, ihre Serverumgebung zu aktualisieren, und dies nicht wissen Erhalten Sie niemals neue Funktionen oder Sicherheitsupdates.
quelle
Ich denke, es kann getan werden.
Ich benutze diesen Prozess, um bei der Plugin-Aktivierung nach der Mindestversion zu suchen. Sie können eine Variation davon verwenden, um dies während eines Upgrades zu überprüfen (obwohl ich denke, dass ein Upgrade auf eine neue Version, die diesen Code enthält, dazu führen würde, dass das Plugin deaktiviert wird).
Der Code zum Überprüfen der Mindestversionen:
.... und dann dies, um das Plugin zu deaktivieren, wenn die Versionen nicht den Anforderungen entsprechen (Funktion wird falsch zurückgegeben)
Dann zeige ich eine Admin-Nachricht an, um sie wissen zu lassen, dass das Plugin deaktiviert wurde:
Wo die
show_notice
Funktion eine abweisbare Administratorbenachrichtigung anzeigt.Funktioniert gut.
Bearbeitet, um hinzuzufügen
Was ist, wenn Sie Code in Ihr Plugin einfügen, um das Plugin-Upgrade zu blockieren (etwa: /programming/17897044/wordpress-how-to-disable-plugin-update ).
Die neue Version des Plugins verfügt über einen Pre-Load-Stub. Es wird eine Überprüfung der PHP-Version durchgeführt. Wenn OK, laden Sie den Rest des Plugins. Wenn nicht, laden Sie den Rest des Plugins nicht. Code im Pre-Load-Stub funktioniert in allen PHP-Versionen.
Der Pre-Stub enthält keinen PHP 7x-Code, sodass die Vorverarbeitung des Stubs keinen Fehler verursacht. Der Pre-Stub deaktiviert das Plugin auch mit etwas ähnlichem wie meiner ursprünglichen Antwort.
Wenn die PHP-Version 7x ist, lädt der Pre-Load-Stub den Rest des Plugins. Und Bob ist dein Onkel.
quelle