2016-04-02 19 views
8

Ist ist möglich, benutzerdefinierte Felder für Bestellungen, Produkte, Kunden über WooCommerce REST-API zugreifen? Wenn nicht nativ, welche Plugins oder Workarounds oder Hacks gibt es da draußen, die funktionieren? Vielen Dank!WooCommerce REST API Benutzerdefinierte Felder

+0

Was Sie gesagt, das zu tun versuchen, ist nicht durch ihre [Dokumentation] (https://woothemes.github.io/woocommerce-rest-api-docs/) abgedeckt? Das würde eine spezifischere Frage stellen. – helgatheviking

+0

Benutzerdefinierte Felder, die normalerweise von anderen Plugins hinzugefügt werden, z. B. Auftragsarten. Oder wenn ich ein benutzerdefiniertes Feld für einen Auftrag mithilfe eines API-Aufrufs erstellen möchte. – Amjad

+1

Sie müssen den Code in 'plugins/WooCommerce/includes/api/*. Php' Dateien graben, die richtige Aktion oder Filterhaken finden und verwenden. Für zB: wenn WooCommerce einen Auftrag über die API, nach dem Erstellen der Bestellung bietet die folgenden Haken 'do_action (‚woocommerce_api_create_order‘, $ order-> id, $ data, $ this) erstellt;' in diesem Haken haben Sie Zugriff auf die '$ data', das gesendet wurde, können Sie Ihre benutzerdefinierten Feldwerte extrahieren und verarbeiten. –

Antwort

10

Beantwortung meiner Frage:

Es ist möglich, mit dem folgenden: (mit v3 Legacy-API)

benutzerdefinierte Felder an den Server zurück zu verschicken: (für Bestellungen)

{ 
    "order_meta": { 
    "key": "value" 
    } 
} 

Um benutzerdefinierte Felder vom Server abzurufen, verwenden Sie diesen Filter mit Ihrem Endpunkt:

http://www.example.com/wc-api/v3/orders?filter[meta]=true 

Dies funktioniert auch für Produkte.

+0

Können Sie auf die Dokumentation zeigen, wo dies dokumentiert ist. Ich kämpfe mit dem gleichen Problem und bin ziemlich am Ende. –

+0

Es ist nicht auf WooCommerce API-Seiten dokumentiert. Ich habe die Antwort von ihren Github-Problemen bekommen. Dieses Feld ist ein verstecktes Meta-Feld. Wenn Sie eine bestimmte Frage haben, können Sie hier fragen. – Amjad

+0

Wir haben eine benutzerdefinierte Taxonomie 'status' jedem Produkt zugeordnet, die ich mit dem Rest-API erhalten möchten, aber ich weiß nicht, wie die Query-String zu konstruieren, um –

0

Wie im Kommentar erwähnt, nachdem WooCommerce eine Bestellung über die API erstellt hat, wird es woocommerce_api_create_order haken, können Sie davon Gebrauch machen.

Fügen Sie den folgenden Code zu Ihrem Thema der functions.php Datei

add_action('woocommerce_api_create_order', 'my_woocommerce_api_create_order', 10, 2); 

function my_woocommerce_api_create_order($order_id, $data) { 

    // $data contains the data was posted, add code to extract the required 
    // fields and process it as required 

} 

den Code anschauen Ähnlich in plugins/woocommerce/includes/api/*.php Dateien, die geeignete Aktion oder Filterhaken für den Endpunkt und verwenden Sie es finden.

+0

Um die Datenbankstruktur zu verstehen, finden Sie in das [WooCommerce Schema] (https://github.com/woocommerce/woocommerce/wiki/Database-Description) und das [Wordpress-Schema] (https://codex.wordpress.org/images /2/25/WP4.4.2-ERD.png). WordPress-Metadaten ermöglichen benutzerdefinierte Schlüssel/Wert-Paare. –

Verwandte Themen