Я разрабатываю собственную конечную точку REST API в WordPress, чтобы программно добавлять продукт WooCommerce Booking в корзину. Однако я сталкиваюсь с проблемами, когда значение корзины пустое, а попытки добавить продукт для бронирования возвращают ложный результат.
Подробности конфигурации:
function register_person_types_endpoint()
{
register_rest_route('custom-api/v1', '/products', array(
'methods' => 'POST',
'callback' => 'save_bookable_product',
'permission_callback' => '__return_true',
));
}
add_action('rest_api_init', 'register_person_types_endpoint');
// save bookable product
function save_bookable_product()
{
$response = [];
$product_id = 215;
try {
$product = wc_get_product($product_id);
$booking_data = [
'start_date' => strtotime('2024-11-15 00:00:00'),
'end_date' => strtotime('2024-11-16 23:59:59'),
'cost' => 540,
'resource_id' => '',
];
if (! WC()->session) {
WC()->session = new WC_Session_Handler();
WC()->session->init();
}
if (! WC()->session->has_session()) {
WC()->session->set_customer_session_cookie(true);
}
if (! WC()->cart) {
WC()->cart = new WC_Cart();
}
if (! WC()->customer) {
WC()->customer = new WC_Customer(0);
}
$booking_item = WC()->cart->add_to_cart($product->get_id(), 1, 0, [], ['booking' => $booking_data]);
if ($booking_item) {
$response = rest_ensure_response(["message" => "Booking created", 'booking_item' => $booking_item, "saved_booking_data" => $booking_data]);
} else {
$response = rest_ensure_response([
"status" => "Failed",
"message" => 'Product with id ' . $product->get_id() . ' does not saved in the cart.',
'product' => $product->get_price(),
'booking_item' => $booking_item
]);
$response->set_status(400);
}
} catch (\Throwable $th) {
$response = rest_ensure_response(["message" => "Error cached", 'error' => $th->getMessage(), "stack_trace" => $th->getTraceAsString()]);
$response->set_status(500);
}
return $response;
}
Предпринятые шаги:
Подтверждено, что продукт бронирования опубликован и правильно настроен.
Убедился, что плагины WooCommerce и Bookings активированы.
Инициализировал сеанс и корзину вручную в моей пользовательской конечной точке.
-Проверил, что передаваемый Product_id действителен и соответствует продукт для бронирования.
Дополнительная информация:
Конечная точка вызывается через Postman и браузер.
Я разрабатываю собственную конечную точку REST API в WordPress, чтобы программно добавлять продукт WooCommerce Booking в корзину. Однако я сталкиваюсь с проблемами, когда значение корзины пустое, а попытки добавить продукт для бронирования возвращают ложный результат. Подробности конфигурации: [list] [*]Версия WooCommerce: 9.3.3 [*]Версия WooCommerce Bookings: 1.15.11 [*]Версия WordPress: 6.6.2 [/list] Попытка кода: [code]function register_person_types_endpoint() { register_rest_route('custom-api/v1', '/products', array( 'methods' => 'POST', 'callback' => 'save_bookable_product', 'permission_callback' => '__return_true', )); } add_action('rest_api_init', 'register_person_types_endpoint');
// save bookable product function save_bookable_product() { $response = []; $product_id = 215;
Я изучаю WordPress и хочу создать пользовательскую конечную точку API REST, которая возвращает данные JSON. Я читаю о функции Register_Rest_Route () , но я не уверен, где можно было бы правильно его протестировать. Крюк, но когда я посещаю URL...
Я изучаю WordPress и хочу создать пользовательскую конечную точку API REST, которая возвращает данные JSON. Я читаю о функции Register_Rest_Route () , но я не уверен, где можно было бы правильно его протестировать. Крюк, но когда я посещаю URL...
Итак, я свежее, и я строю свое резюме. Но, видя изменения в промышленности, я в замешательстве, как то, какие проекты все еще узнаваемы в промышленности.
упоминает о таких проектах, как система управления железными дорогами или некоторая система...
Итак, я свежее, и я строю свое резюме. Но, видя изменения в промышленности, я в замешательстве, как то, какие проекты все еще узнаваемы в промышленности.
упоминает о таких проектах, как система управления железными дорогами или некоторая система...
Я искал мобильный продукт, который имеет тип Asus Zenfone 5 в веб -сайте flipkart.com , поиск отображает многие продукты. Я выбрал первый продукт и добавил его в корзину.