Support » Allgemeine Fragen » Eigene Funktion zeitgesteuert ausführen liefert keine Werte

  • Gelöst nukleuz

    (@nukleuz)


    Hallo zusammen,

    das ist mein erster Beitrag und hoffe, dass mir jemand helfen kann.
    Ich entwickle ein eigenes Plugin, welches Infos von WordPress an meine Hausautomation sendet. Die Services in die Cloud funktionieren reibungslos.

    Ich habe eine eigene Funktion, die mir Infos zu Updates liefert, und zwar die Anzahl der anstehenden Updates (bekannt aus dem Backend/Admin).

    function send_count_updates_to_iobroker() { 
        
        $updates = wp_get_update_data();
        
        //Generate text if title is empty/null
        if ( empty($updates['title'] )) {
            $updatesTitle = "No updates available";
        } else {
            $updatesTitle = $updates['title'];
        }
        
        $datum_uhrzeit = datum_uhrzeit();
    
        $serviceURL = get_option( 'iob_iot_service_url_count_updates' );
        $data = wp_json_encode( (object) array( 
            'plugins'         => $updates['counts']['plugins'],
            'themes'          => $updates['counts']['themes'],
            'wordpress'       => $updates['counts']['wordpress'],
            'translations'    => $updates['counts']['translations'],
            'total'           => $updates['counts']['total'],
            'title'           => $updatesTitle,
            'timestamp'       => $datum_uhrzeit
        ), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES );
        
        $response = wp_remote_post( $serviceURL . $data );
        
        return $response;
    }

    Diese Funktion wird in einem Intervall von 5 Minuten zum Testen zeitgesteuert aufgerufen. Das die Funktion ausgeführt wird sehe ich an dem Zeitstempel.

    Dennoch erhalte ich immer 0 Werte zurück.

    Hier mal das JSON:
    {"plugins":0,"themes":0,"wordpress":0,"translations":0,"total":0,"title":"No updates available","timestamp":"05.10.2021 - 09:35:01 Uhr"}

    Andere Funktionen die ich teste werden korrekt übermittelt.
    Aktuell stehen zwei Updates an.

    Lasse ich mir die Funktion im Admin ausgeben erhalte ich diese Ausgabe:

    Plugins: 2
    Themes: 0
    Wordpress: 0
    Translations: 0
    Total: 2
    Title: 2 Plugin-Aktualisierungen

    Kann mir jemand sagen, ob ich noch etwas – eine Datei oder ähnlich – einbinden muss?

    Stehe auf dem Schlauch…

    Danke und Grüße,

    nukleuz

    • Dieses Thema wurde geändert vor 2 Jahren, 5 Monaten von nukleuz.
Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Hallo und willkommen im Support-Forum.

    Wir möchten hier Anwendern/-innen Anwendungs-Support zu WordPress und den Themes und Plugins, die im WordPress-Verzeichnis kostenlos angeboten werden, anbieten. Für Fragen zur Programmierung bist du bei https://wordpress.stackexchange.com besser aufgehoben.

    Programmier-Fragen sind aber grundsätzlich schwer zu beantworten, wenn sie aus dem Zusammenhang gerissen werden. Wir wissen z.B. nicht, durch was die Funktion send_count_updates_to_iobroker() aufgerufen wird, bzw. an welchen Hook sie gebunden ist. Grundsätzlich sollte aber var_dump( $updates ); den Inhalt des Array mit den Updates ausgeben.

    Thread-Starter nukleuz

    (@nukleuz)

    Ok, dann werde ich es dort versuchen.
    Vielen Dank für die Info.

    Beste Grüße,

    nukleuz

    evtl. kannst du dir aber auch die Arbeit sparen. Das Plugin Mail On Update liefert entsprechende Infos. Das Plugin ist mit 20KB leichtgewichtig. Wir setzen das Plugin auf verschiedenen Kundenseiten ein.

    Thread-Starter nukleuz

    (@nukleuz)

    Danke für den Hinweis – schaue mir mal den Quellcode an… Da ich selber ein Plugin schreibe möchte ich nicht abhängig von einem Anderen sein.

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Das Thema „Eigene Funktion zeitgesteuert ausführen liefert keine Werte“ ist für neue Antworten geschlossen.