2016-04-02 21 views
8

Czy można uzyskać dostęp do pól niestandardowych dla zamówień, produktów, klientów za pośrednictwem interfejsu API REST WooCommerce? Jeśli nie, to jakie pluginy, obejścia lub hacki działają? Dzięki!WooCommerce REST API Niestandardowe pola

+0

Co konkretnie próbujesz zrobić, nie jest objęte ich dokumentacją (https://woothemes.github.io/woocommerce-rest-api-docs/)? To stanowiłoby bardziej szczegółowe pytanie. – helgatheviking

+0

Niestandardowe pola zwykle dodawane przez inne wtyczki, na przykład typy zamówień. Lub jeśli chcę utworzyć niestandardowe pole dla zamówienia za pomocą wywołania API. – Amjad

+1

Będziesz musiał wykopać kod w plikach 'plugins/woocommerce/includes/api/*. Php', znaleźć odpowiednią akcję lub hak filtra i użyć go. Na przykład: gdy WooCommerce tworzy zamówienie za pośrednictwem interfejsu API, po utworzeniu zamówienia oferuje następujący hook 'do_action (' woocommerce_api_create_order ', $ order-> id, $ data, $ this); 'w tym haczyku masz dostęp do "$ data", które zostało wysłane, możesz wyodrębnić własne wartości pól i przetworzyć je. –

Odpowiedz

10

Odpowiadając na moje własne pytanie:

Jest to możliwe przy użyciu następujących: (używając v3 starszych API)

Aby wysłać pól niestandardowych do serwera: (w przypadku zleceń)

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

Aby pobrać niestandardowe pola z serwera, użyj tego filtra z punktem końcowym:

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

Działa to również dla produktów.

+0

Czy możesz wskazać dokumenty, w których jest to udokumentowane. Walczę z tym samym problemem i jestem praktycznie w ślepym zaułku. –

+0

Nie jest to udokumentowane na stronach interfejsu API WooCommerce. Dostałem odpowiedź od ich problemów z github. To pole jest ukrytym polem meta. Jeśli masz konkretne pytanie, możesz zapytać tutaj. – Amjad

+0

Mamy niestandardową taksonomię "Status" przypisaną do każdego produktu, który chciałbym uzyskać za pomocą interfejsu API Rest, ale nie wiem, jak skonstruować ciąg zapytania w celu odzyskania danych. –

0

Jak wspomniano w komentarzu po tym, jak WooCommerce utworzy zamówienie za pośrednictwem interfejsu API, uruchomi się hak woocommerce_api_create_order, możesz z niego skorzystać.

Dodaj następujący kod do pliku functions.php motywu za

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 

} 

Podobnie spojrzeć na kod w plugins/woocommerce/includes/api/*.php plików, znaleźć odpowiednie działania lub hak filtra dla punktu końcowego i używać go.

+0

Aby zrozumieć strukturę bazy danych, zobacz [Schemat WooCommerce] (https://github.com/woocommerce/woocommerce/wiki/Database-Description) i [Schemat WordPress] (https://codex.wordpress.org/images /2/25/WP4.4.2-ERD.png). Metadane WordPress umożliwiają tworzenie niestandardowych par klucz/wartość. –