Почему важно интегрировать платежные системы в LearnPress
Для любой обучающей платформы на WordPress с использованием LearnPress прием оплат — ключевой момент. Правильная интеграция платежных систем позволяет обеспечить удобство для пользователей и автоматизировать процесс продажи курсов. В LearnPress есть базовые возможности оплаты, но для реальных проектов часто требуется подключать дополнительные платежные шлюзы, чтобы расширить список доступных вариантов оплаты и повысить конверсию.
В этой статье мы рассмотрим, как добавить и настроить популярные платежные системы в LearnPress, включая оплату через Яндекс.Кассу, Robokassa, а также более универсальные решения через WooCommerce. Также приведем примеры кода для кастомизации процесса оплаты.
Подключение платежных систем через официальные и сторонние плагины
Платежные шлюзы для LearnPress: базовые возможности и расширения
LearnPress из коробки поддерживает несколько платежных систем, но они не всегда подходят для российского рынка. Чтобы расширить список доступных платежей, воспользуйтесь специализированными плагинами:
- Плагин интеграции Яндекс.Кассы для LearnPress — позволяет принимать оплату через Яндекс.Деньги, карты и другие методы;
- Плагин Robokassa для LearnPress — популярное решение для приема платежей с автоматической проверкой статуса;
- Интеграция через WooCommerce — универсальный способ добавить множество платежных шлюзов за счет обширной экосистемы WooCommerce.
Каждый из этих вариантов имеет свои преимущества и особенности настройки. Рассмотрим пример добавления Яндекс.Кассы.
Пример: настройка Яндекс.Кассы для LearnPress
После установки и активации плагина интеграции с Яндекс.Кассой перейдите в настройки LearnPress > Платежные системы. Включите Яндекс.Кассу и заполните ключи API, полученные в личном кабинете Яндекс.Кассы.
Обязательно настройте URL для уведомлений — он должен принимать POST-запросы с данными об оплате и обновлять статус заказа.
add_action('learnpress_yandex_kassa_payment_callback', 'learnpressru_handle_yandex_payment_callback');
function learnpressru_handle_yandex_payment_callback() {
$order_id = $_POST['orderNumber'];
$status = $_POST['orderStatus'];
if ($status === 'success') {
learnpress_update_order_status($order_id, 'completed');
}
}Таким образом, при успешной оплате курс автоматически становится доступен студенту.
Интеграция LearnPress с WooCommerce для расширенных возможностей оплаты
Почему стоит использовать WooCommerce
Если вам необходимо предложить студентам множество вариантов оплаты — от банковских карт до электронных кошельков и даже платежей через мобильные приложения, то интеграция LearnPress с WooCommerce станет отличным решением. WooCommerce поддерживает сотни платежных шлюзов и имеет мощный функционал для управления заказами.
Для интеграции установите плагин LearnPress WooCommerce Payment Methods (или аналогичный), который связывает курсы и продукты WooCommerce.
Пример настройки оплаты курса через WooCommerce
1. Создайте курс в LearnPress без цены (бесплатный) или с пометкой, что оплата будет через WooCommerce.
2. Создайте товар в WooCommerce, который соответствует курсу, и укажите цену и методы оплаты.
3. Свяжите курс и товар с помощью плагина интеграции. Теперь, когда пользователь оформляет заказ через WooCommerce, после успешной оплаты курс в LearnPress автоматически активируется.
add_action('woocommerce_order_status_completed', 'learnpressru_woocommerce_order_completed');
function learnpressru_woocommerce_order_completed($order_id) {
$order = wc_get_order($order_id);
foreach ($order->get_items() as $item) {
$product_id = $item->get_product_id();
$course_id = learnpress_get_course_by_product($product_id);
if ($course_id) {
$user_id = $order->get_user_id();
learnpress_enroll_student($user_id, $course_id);
}
}
}Эта функция автоматически записывает пользователя на курс после оплаты товара WooCommerce.
Кастомизация и расширение платежного процесса в LearnPress
Добавление своих полей и проверок в платежную форму
Иногда необходимо добавить дополнительные поля в платежную форму LearnPress — например, номер договора, комментарии или возможность выбрать способ доставки сертификата.
Для этого используйте фильтры и хуки LearnPress:
add_action('learnpress_checkout_form_before_payment', 'learnpressru_add_custom_checkout_field');
function learnpressru_add_custom_checkout_field() {
echo '<p><label for="contract_number">Номер договора:</label><input type="text" name="contract_number" id="contract_number" /></p>';
}
add_action('learnpress_checkout_process', 'learnpressru_validate_custom_checkout_field');
function learnpressru_validate_custom_checkout_field() {
if (empty($_POST['contract_number'])) {
learn_press_add_error('contract_number', 'Пожалуйста, укажите номер договора.');
}
}
add_action('learnpress_checkout_update_order_meta', 'learnpressru_save_custom_checkout_field');
function learnpressru_save_custom_checkout_field($order_id) {
if (!empty($_POST['contract_number'])) {
update_post_meta($order_id, '_contract_number', sanitize_text_field($_POST['contract_number']));
}
}Так вы расширите стандартную форму оплаты и сможете использовать эти данные в дальнейшем для отчетов или интеграции с CRM.
Обработка ошибок и логирование платежей
Для надежной работы платежей важно логировать все события, связанные с оплатой, особенно ошибки. Это поможет быстро выявить проблемы и повысить стабильность сервиса.
Создайте простой логгер:
function learnpressru_log_payment_event($message) {
if (WP_DEBUG === true) {
error_log('[LearnPressPayment] ' . $message);
}
}Вызывайте эту функцию в обработчиках платежей при получении уведомлений или ошибках.
Выводы и рекомендации по выбору платежных систем для LearnPress
Для российских проектов чаще всего подходят Яндекс.Касса и Robokassa — они поддерживают множество способов оплаты и имеют понятный API. Если же нужна международная аудитория, то интеграция с WooCommerce и его платежными шлюзами даст максимальную гибкость.
Используйте плагины из надежных источников, например, с WPShop.ru, где есть проверенные решения с поддержкой и обновлениями.
Не забывайте тестировать платежи в режиме песочницы перед запуском на живом сайте, а также добавлять логирование и обработку ошибок для устойчивой работы платформы.