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
Odpowiedz
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.
Czy możesz wskazać dokumenty, w których jest to udokumentowane. Walczę z tym samym problemem i jestem praktycznie w ślepym zaułku. –
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
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. –
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.
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ść. –
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
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
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. –