"Fake Update Notification" - wie?

  • Hallo zusammen,

    ich möchte zu Testzwecken eine Plugin Update Notification faken. Mein Plugin ist noch nicht im Repository, daher scheidet ein einfaches "Ändere Versionsnummer und mache das" aus. Sinn ist, die Update-Notfication zu unterdrücken, wenn keine Serial vorhanden.

    Hierbei bin ich auf den Filter "site_transient_update_plugins" gestossen.

    Lasse ich mir den Value ausgeben, wirft er folgendes aus:

    Zitat


    ["akismet/akismet.php"]=> object(stdClass)#7746 (6) { ["id"]=> string(2) "15" ["slug"]=> string(7) "akismet" ["plugin"]=> string(19) "akismet/akismet.php" ["new_version"]=> string(5) "3.1.8" ["url"]=> string(38) "https://wordpress.org/plugins/akismet/" ["package"]=> string(56) "https://downloads.wordpress.org/plugin/akismet.3.1.8.zip" }

    Es müsste doch jetzt möglich sein, auch mein Plugin zum Value "hinzuzufügen"?

    Ich bekomme es auch hin, wenn ich zum Value ein Array hinzufüge, zumindest zeigt er mir dann 13 statt vorher 12 zu updatenden Plugins an. Allerdings nicht auf der Plugin-Seite - da steht unter meinem Plugin gar nix und der Link "Zum Aktualisieren verfügbar" zum Anzeigen "nur" der zu aktualisierenden Plugins zählt weiterhin 12.
    Ich vermute, dass ich ein Array "Name meines Plugin" mit den 6 oben angezeigten Angaben übergeben muss.

    Die Frage ist nur: wie mache ich das? Hab da jetzt 2 h rumprobiert, und bekomme es nicht hin :-(. Hat jemand von Euch eine Idee, wie ich das machen muss?

    Einmal editiert, zuletzt von Azrael_0815 (28. März 2016 um 11:12)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren


  • Mein Plugin ist noch nicht im Repository, daher scheidet ein einfaches "Ändere Versionsnummer und mache das" aus.

    Warum sollte dies nicht ausreichen? Sorry - aber nicht jeder veröffentlicht seine Plugins bei WordPress und unterzieht sich der drotigen Schikane.

    Für Plugins steht dir pre_set_site_transient_update_plugins zur Verfügung

    PHP
    add_filter( 'pre_set_site_transient_update_plugins', 'dein_plugin_check_for_update' );

    Mit offenen Augen träumen

  • Danke, aber ich habe es mittlerweile in der functions.php hinbekommen :-)

    add_filter('site_transient_update_plugins', 'remove_update_notification');
    function remove_update_notification($value) {

    //var_dump($value->response['akismet/akismet.php']);
    $amazonbox=new stdClass();
    $amazonbox->id="23";
    $amazonbox->slug="amazonbox";
    $amazonbox->plugin="amazonbox/amazonbox.php";
    $amazonbox->new_version="1.3";
    $amazonbox->url="https://wordpress.org/plugins/akismet/";
    $amazonbox->package="https://downloads.wordpress.org/plugin/akismet.3.1.8.zip";

    $fake=array("amazonbox/amazonbox.php"=>$amazonbox);
    $value->response=array_merge($value->response,$fake);
    //var_dump($value->response);

    return $value;

    }

    Jetzt gelingt es mir nur nicht, die Update-Notification im Plugin selbst wieder abzustellen. Hast Du auch da eine Idee?

  • Danke, aber ich habe es mittlerweile in der functions.php hinbekommen :-)

    add_filter( 'pre_set_site_transient_update_plugins' hat in der functions.php nicht wirklich etwas verloren. und ich schreibe von
    pre_set_site_transient_update_plugins
    und nicht von
    site_transient_update_plugins



    add_filter('site_transient_update_plugins', 'remove_update_notification');
    function remove_update_notification($value) {


    warum remove? ich denke du möchtest dein Plugin(!) updaten und automatisch auf dritten Seiten pflegen?

    wenn du wirklich etwas deaktivieren möchtest - kannst du dieses Plugin verwenden
    https://de.wordpress.org/plugins/disable-wordpress-updates/


    Versions Nummern und Pfade im Script ... cool... und nicht pflegbar.


    Jetzt gelingt es mir nur nicht, die Update-Notification im Plugin selbst wieder abzustellen. Hast Du auch da eine Idee?


    keine Ahnung, was du vor hast ... suchst du:
    // set_site_transient( 'update_plugins', null );

    oder verwende einen der Hocks aus dem o.g. Plugin...

    Mit offenen Augen träumen

  • Ich sagte ja, es ist ein Test für mich, rein um zu sehen, ob meine Idee, Updates nur dann zuzulassen, wenn eine Serial vorhanden und aktiv ist, machbar ist. Ich hatte das mittlerweile hinbekommen, die Update-Notification hinzubekommen (per functions.php), diese liess sich per Plugin aber nicht ausschalten. Aber auch das habe ich mittlerweile hinbekommen: functions.php war ne blöde Idee, ich "fake" das "verfügbare" Update jetzt direkt im Plugin, schaue dann, ob Serial da und aktiv oder nicht, und wenn nein, lösche ich das kurz vorher eingefügte Update wieder aus der Liste der verfügbaren Updates.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!