Я хотел бы расширить api woocommerce rest, включив в него данные плагина расширения «бронирование». В настоящее время это расширение не имеет конечных точек по умолчанию, предоставляемых остальным API.
Пока что я создал плагин и добавил следующий код;
add_filter( 'woocommerce_rest_prepare_product', 'custom_data');
function custom_data($response, $object) {
if( empty( $response->data ) )
return $response;
$response->data['meta_data'] = get_post_meta( $object[ID], 'availability', true);
return $response;
}
Когда я вызываю конечную точку /products
, только данные по умолчанию, выделенные woocommerce, по-прежнему называются моим маленьким дополнением, которое не может быть найдено.
Я даже не знаю, где найти вышеуказанный фильтр, поскольку я только что увидел это на веб-странице и попытался заставить его делать то, что я хотел, не знаю, является ли это правильным направлением для спуска. Веб-страница: https://francescocarlucci.com/woocommerce/woocommerce-api-custom-data-default-endpoints/#more-96
Выше я пытался расширить api, но я также решил попробовать создать настраиваемую конечную точку, чтобы увидеть, могу ли я получить желаемый результат, но до сих пор я только что создал конечную точку, которая вызывает, но я понятия не имею, что написать для получения данные, которые я хочу.
пользовательский код конечной точки:
function register_custom_route() {
register_rest_route( 'ce/v1', '/bookable',
array(
'methods' => 'GET',
'callback' => 'get_bookable'
)
);
}
function get_bookable( ) {
return array( 'custom' => 'woocommerce here' );
//What code do I write here :(
}
Могу ли я добиться желаемого одним из вышеперечисленных методов? Я новичок в разработке, и я знаком с javascript, а не с PHP, поэтому мне нужно использовать остальные api, поскольку я хотел бы использовать wordpress / woocommerce как безголовый cms.
Пока что пример туалета, к которому я пришел, был показан по этому вопросу Создание WooCommerce Пользовательский API