2016-04-02 22 views
8

Có thể truy cập các trường tùy chỉnh cho các đơn đặt hàng, sản phẩm, khách hàng qua API REST WooCommerce không? Nếu không phải là nguyên bản, thì những bổ sung hoặc giải pháp hoặc hack là ra có mà làm việc? Cảm ơn!Các trường tùy chỉnh API REST của WooCommerce

+0

Bạn đặc biệt đang cố gắng làm điều gì không được đề cập trong [tài liệu] của họ (https://woothemes.github.io/woocommerce-rest-api-docs/)? Điều đó sẽ tạo ra một câu hỏi cụ thể hơn. – helgatheviking

+0

Các trường tùy chỉnh thường được bổ sung bởi các plugin khác chẳng hạn như các loại đơn đặt hàng. Hoặc nếu tôi muốn tạo trường tùy chỉnh cho một đơn đặt hàng bằng cách sử dụng cuộc gọi API. – Amjad

+1

Bạn cần khai thác mã trong các tệp 'plugins/woocommerce/includes/api/*. Php', tìm đúng hành động hoặc móc lọc và sử dụng nó. Ví dụ: khi WooCommerce tạo một đơn hàng qua API, sau khi tạo thứ tự, nó cung cấp móc sau 'do_action ('woocommerce_api_create_order', $ order-> id, $ data, $ this);' trong móc đó bạn có quyền truy cập vào '$ data' đã được gửi, bạn có thể trích xuất các giá trị trường tùy chỉnh của bạn và xử lý nó. –

Trả lời

10

Trả lời câu hỏi của riêng tôi:

Có thể sử dụng như sau: (sử dụng API v3 legacy)

Để gửi các lĩnh vực tùy chỉnh lại cho máy chủ: (Đối với đơn đặt hàng)

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

Để truy xuất các trường tùy chỉnh từ máy chủ, hãy sử dụng bộ lọc này với điểm đến của bạn:

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

Điều này cũng phù hợp với Sản phẩm.

+0

Bạn có thể trỏ đến tài liệu nơi tài liệu này được ghi chép hay không. Tôi đang chiến đấu cùng một vấn đề và khá nhiều ở một kết thúc chết. –

+0

Nó không được ghi trên các trang API WooCommerce. Tôi đã nhận được câu trả lời từ các vấn đề github của họ. Trường này là trường meta ẩn. Nếu bạn có một câu hỏi cụ thể, bạn có thể hỏi tại đây. – Amjad

+0

Chúng tôi có Phân loại tùy chỉnh 'Trạng thái' được chỉ định cho từng sản phẩm mà tôi muốn nhận được với API Rest nhưng tôi không biết cách tạo chuỗi truy vấn để lấy lại dữ liệu –

0

Như đã đề cập trong nhận xét sau khi WooCommerce tạo đơn đặt hàng qua API, nó sẽ kích hoạt móc woocommerce_api_create_order, bạn có thể tận dụng nó.

Thêm đoạn mã sau vào file functions.php của theme bạn

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 

} 

Tương tự nhìn vào mã trong plugins/woocommerce/includes/api/*.php file, tìm ra hành động phù hợp hoặc móc lọc cho các điểm cuối và sử dụng nó.

+0

Để hiểu cấu trúc cơ sở dữ liệu, hãy xem [lược đồ WooCommerce] (https://github.com/woocommerce/woocommerce/wiki/Database-Description) và [giản đồ WordPress] (https://codex.wordpress.org/images /2/25/WP4.4.2-ERD.png). Siêu dữ liệu WordPress cho phép các cặp khóa/giá trị tùy chỉnh. –

Các vấn đề liên quan