Woocommerce REST-API Konflikt mit functions-Snippet

Vielleicht hilft es dem ein oder anderen – oder mir, falls ich nochmal dieses Problem haben sollte 😉

Ausgangssituation

Ich wollte ein Programm (in diesem Fall easybill) an meinen Woocommerce-Shop anbinden. Obwohl die Verbindung erfolgreich hergestellt wurde, konnten keine Details der Bestellungen über die API abgerufen werden.

Was die Fehlersuche etwas kompliziert machte: Die iOS Woocommerce-App hatte keine Probleme damit, auf den Shop und die Bestellungen zuzugreifen. Scheinbar nutzt die App eine andere Abfrage, die ich aber leider nicht nachvollziehen konnte.

Woocommerce REST-API Ausgabe

Ich mache die Abfrage der Bestelldaten nach folgendem Muster (https://example.com/wc-api/v2/orders?consumer_key=ck_XYZ123&consumer_secret=cs_XYZ123). Woocommerce gab mir daraufhin immer nur folgende Ausgabe zurück:

{
orders: [ ]
}

Das Problem

Mehr oder weniger schnell stellte sich heraus, das irgendetwas an meinem Custom-Theme das Problem auslöste. Nachdem ich das Problem einkreisen konnte, ging es eigentlich schnell: Zunächst leerte ich meine komplette functions.php – und siehe da, die API-Ausgabe funktioniert! So habe ich mich dann Stück für Stück durch die einzelnen Snippets gearbeitet, bis ich den Übeltäter gefunden habe:

// hide passwordprotected posts in search
add_action( 'pre_get_posts', 'prefix_exclude_password_protected_posts' );
functionprefix_exclude_password_protected_posts( $query ) {
     if ( ! $query->is_singular() && ! is_admin() ) {
         $query->set( 'has_password', false );
     }
}

Dieses Snippet verhindert, dass Posts in den Suchergebnissen ausgegeben werden, wenn diese Posts durch ein Passwort geschützt sind. Leider habe ich aktuell noch keine Alternative zu diesem Snippet gefunden und werde es deshalb komplett entfernen, da ich auf die API von Woocommerce angewiesen bin.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.