Как использовать REST API в LearnPress для автоматизации

LearnPress — один из самых популярных плагинов для создания онлайн-курсов на WordPress. Для разработчиков и администраторов важна возможность автоматизировать процессы и интегрировать LearnPress с внешними системами, например, CRM, LMS или аналитическими платформами. Для этого LearnPress предоставляет REST API, который позволяет работать с курсами, уроками, пользователями и заказами через HTTP-запросы.

Что такое REST API в LearnPress и зачем он нужен

REST API (Representational State Transfer Application Programming Interface) — это стандартный способ взаимодействия с данными сайта через HTTP. В LearnPress REST API открывает доступ к основным сущностям LMS: курсам, урокам, заданиям, студентам, заказам и прочему.

Использование REST API позволяет:

  • Автоматизировать создание и обновление курсов и уроков без захода в админку.
  • Интегрировать LearnPress с внешними сервисами (CRM, email-рассылки, аналитика).
  • Создавать кастомные мобильные приложения и фронтенды, использующие данные LearnPress.
  • Собирать статистику и отчеты по обучению в реальном времени.

Таким образом, REST API расширяет возможности LearnPress вне рамок WordPress и открывает новые сценарии использования.

Как включить и настроить REST API в LearnPress

По умолчанию REST API в LearnPress доступен, но для работы с защищенными эндпоинтами требуется авторизация. Для начала убедитесь, что на вашем сайте включен REST API WordPress (он включен по умолчанию с версии 4.7).

Для авторизации рекомендуется использовать OAuth, JWT или базовую авторизацию с помощью Application Passwords, которые появились в WordPress 5.6.

Пример настройки базовой авторизации через Application Password

1. В админке WordPress зайдите в профиль пользователя, под которым будете делать запросы.

2. Найдите раздел Application Passwords и создайте новый пароль для API.

3. При отправке запросов используйте базовую авторизацию с логином пользователя и сгенерированным паролем.

Основные эндпоинты REST API LearnPress

LearnPress расширяет стандартный WP REST API своими маршрутами. Ниже перечислены основные из них:

  • GET /wp-json/learnpress/v1/courses — получить список курсов.
  • GET /wp-json/learnpress/v1/courses/{id} — получить данные конкретного курса.
  • POST /wp-json/learnpress/v1/courses — создать новый курс (требуется авторизация).
  • PUT /wp-json/learnpress/v1/courses/{id} — обновить курс.
  • DELETE /wp-json/learnpress/v1/courses/{id} — удалить курс.
  • GET /wp-json/learnpress/v1/users — получить список пользователей LearnPress.
  • GET /wp-json/learnpress/v1/orders — получить список заказов.

Эндпоинты покрывают основные сущности системы, что позволяет управлять всем процессом обучения и продаж через API.

Примеры использования REST API LearnPress на PHP

Рассмотрим пример простого скрипта на PHP, который создаёт новый курс через REST API LearnPress.

<?php
$site_url = 'https://your-site.ru';
$username = 'admin';
$app_password = 'generated-application-password';

$data = [
    'title' => 'Новый курс через API',
    'content' => 'Описание курса, созданного через REST API',
    'status' => 'publish',
    'price' => 1990
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $site_url . '/wp-json/learnpress/v1/courses');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $app_password);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

$response = curl_exec($ch);
if(curl_errno($ch)) {
    echo 'Ошибка запроса: ' . curl_error($ch);
} else {
    $result = json_decode($response, true);
    print_r($result);
}
curl_close($ch);
?>

В этом примере происходит авторизация через базовую аутентификацию с Application Password и отправляется POST-запрос на создание курса с нужными параметрами.

Как программно получить список курсов и фильтровать их

Для получения списка курсов с фильтрацией по цене, категории или статусу используйте GET-запрос с параметрами. Например, получить опубликованные курсы по цене ниже 3000 рублей:

GET /wp-json/learnpress/v1/courses?price_max=3000&status=publish

Пример запроса на PHP с фильтрацией по категории:

<?php
$category_slug = 'web-design';

$response = wp_remote_get($site_url . '/wp-json/learnpress/v1/courses?category=' . $category_slug);
if (is_wp_error($response)) {
    echo 'Ошибка запроса';
} else {
    $courses = json_decode(wp_remote_retrieve_body($response), true);
    foreach ($courses as $course) {
        echo 'Курс: ' . $course['title'] . "\n";
    }
}
?>

Расширение REST API LearnPress своими эндпоинтами

Если стандартных API недостаточно, можно добавить свои маршруты. Для этого используйте хук rest_api_init и функцию register_rest_route. Ниже пример создания эндпоинта, возвращающего количество учеников на курсе.

add_action('rest_api_init', function () {
    register_rest_route('learnpress/v1', '/course-students/(?P<id>\d+)', [
        'methods' => 'GET',
        'callback' => 'learnpress_get_course_students_count',
        'permission_callback' => function () {
            return current_user_can('read');
        }
    ]);
});

function learnpress_get_course_students_count($request) {
    $course_id = $request['id'];
    $students = learnpress_get_enrolled_users($course_id); // Встроенная функция LearnPress
    return ['course_id' => $course_id, 'students_count' => count($students)];
}

Такой подход позволяет создавать кастомные API для интеграции под специфические задачи и сервисы.

Полезные плагины для работы с REST API в LearnPress и WordPress

Для удобства разработки и тестирования REST API рекомендуем использовать следующие плагины:

  • WP REST API Controller — позволяет управлять доступом к полям и эндпоинтам API через админку.
  • JWT Authentication for WP REST API — добавляет поддержку JWT авторизации для безопасного доступа.
  • Postman (внешний инструмент) — удобный клиент для тестирования и отладки API-запросов.

Для расширения функционала LearnPress с помощью REST API эти инструменты значительно облегчат вашу работу.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как создать собственный тип вопроса для Quizle в LearnPress
15.03.2026
Как сделать автоматический резерв курсов в LearnPress на WordPress
02.04.2026
Решение проблемы неотображения корзины WooCommerce при интеграции с LearnPress
15.05.2026
Как сделать отсрочку просмотра уроков в LearnPress: практическое решение
18.03.2026
Как сделать автосохранение прогресса курса в LearnPress на WordPress
31.01.2026
×
Quizle
Привлекайте, конвертируйте, зарабатывайте!
-15%

на премиум плагин WordPress

Получить скидку ⋙