Как сделать отсрочку оплаты в LearnPress

В учебных онлайн-платформах, построенных на LearnPress, иногда возникает потребность предоставить пользователям возможность отсрочить оплату за курс. Это удобно для организаций, которые хотят сначала предоставить доступ к материалам, а оплату принять позже, или для студентов, которым нужен небольшой период для оплаты. В этой статье мы подробно разберём, как реализовать механизм отсрочки оплаты в LearnPress с примерами кода и рекомендациями по использованию плагинов.

Почему отсрочка оплаты полезна в LearnPress

Отсрочка оплаты увеличивает гибкость и лояльность студентов. Вместо того чтобы терять клиентов из-за немедленной необходимости оплаты, вы создаёте комфортные условия, позволяющие начать обучение, а оплатить позже. Такая практика часто используется в корпоративном обучении и образовательных учреждениях.

Однако стандартный функционал LearnPress не предусматривает такую возможность. Поэтому потребуется доработать процесс оформления заказа и оплаты.

Варианты реализации отсрочки оплаты в LearnPress

Как правило, отсрочку оплаты можно реализовать двумя способами:

  • Через модификацию процесса оформления заказа — добавляем новый статус заказа и меняем логику обработки.
  • С помощью сторонних плагинов, расширяющих платежные возможности LearnPress.

Рассмотрим первый способ с примером кода, а в конце статьи кратко познакомимся с плагинами, которые могут помочь.

Как добавить статус «Отсроченная оплата» в LearnPress

Для начала нужно зарегистрировать новый статус заказа, который будет обозначать, что оплата ещё не произведена, но доступ к курсу открыт.

add_filter('learn-press/order_statuses', 'learnpress_add_delayed_payment_status');
function learnpress_add_delayed_payment_status($statuses) {
    $statuses['delayed'] = __('Отсроченная оплата', 'learnpress');
    return $statuses;
}

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

Изменяем логику оформления заказа для отсрочки оплаты

Следующий шаг — добавить опцию выбора способа оплаты «Отсрочка» на странице оформления заказа. Для этого используем хук, добавляющий наш способ оплаты.

add_filter('learn-press/payment-methods', 'learnpress_add_delayed_payment_method');
function learnpress_add_delayed_payment_method($methods) {
    $methods['delayed'] = array(
        'title'       => __('Оплата позже', 'learnpress'),
        'description' => __('Начать курс сейчас, оплатить позже', 'learnpress'),
        'handler'     => 'LP_Gateway_Delayed',
    );
    return $methods;
}

class LP_Gateway_Delayed {
    public function __construct() {
        // Здесь можно инициализировать необходимые параметры
    }

    public function process_payment($order_id) {
        $order = learn_press_get_order($order_id);
        // Устанавливаем статус заказа как delayed
        $order->update_status('delayed');
        // Предоставляем доступ к курсу
        $order->set_payment_method('delayed');
        $order->save();
        // Перенаправляем на страницу благодарности
        return array(
            'result'   => 'success',
            'redirect' => $order->get_thankyou_page()
        );
    }
}

Этот класс и фильтр добавляют новый способ оплаты, который сразу переводит заказ в статус «Отсроченная оплата» и даёт доступ к курсу.

Ограничения и безопасность при отсрочке оплаты

Важно понимать, что предоставление доступа до оплаты несёт риски. Необходимо:

  • Отслеживать просроченные платежи и при необходимости блокировать доступ.
  • Отправлять напоминания о необходимости оплаты.
  • Обеспечить возможность администратору вручную изменять статус и отменять доступ.

Для реализации автоматического контроля можно использовать WP Cron и дополнительные функции, которые будут проверять статус заказов с отсрочкой.

Пример функции проверки просроченных заказов

function learnpress_check_delayed_payments() {
    $args = array(
        'post_type'   => 'lp_order',
        'post_status' => 'lp-delayed',
        'date_query' => array(
            'before' => date('Y-m-d', strtotime('-7 days')),
        ),
        'fields'      => 'ids',
    );
    $orders = get_posts($args);

    foreach ($orders as $order_id) {
        $order = learn_press_get_order($order_id);
        // Блокируем доступ или уведомляем администратора
        $order->update_status('cancelled');
        // Отправляем уведомление пользователю
        wp_mail($order->get_user()->user_email, 'Оплата просрочена', 'Срок оплаты вашего курса истёк. Доступ заблокирован.');
    }
}
add_action('learnpress_daily_event', 'learnpress_check_delayed_payments');

Данный код можно запускать раз в сутки через Cron и контролировать просроченные оплаты.

Использование плагинов для отсрочки оплаты в LearnPress

Если вы не хотите писать код самостоятельно, обратите внимание на следующие плагины:

  • My Popup — можно использовать для показа уведомлений и напоминаний об оплате.
  • Плагины для расширения платежных шлюзов, например, поддерживающие частичные платежи или отложенные платежи.
  • Clearfy Pro — для оптимизации процессов и управления статусами заказов.

Подключение таких расширений значительно упростит работу и позволит избежать ошибок при доработке.

Заключение

Отсрочка оплаты в LearnPress — полезный функционал, который можно реализовать как собственными силами через добавление статусов и новых методов оплаты, так и с помощью готовых решений. Главное — не забывать о безопасности и контроле доступа, чтобы избежать потерь и недоразумений.

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

⭐⭐⭐⭐⭐
Как автоматизировать обновление курсов в LearnPress: практическое руководство
26.11.2025
Решение проблемы необновления статусов возврата платежа WooCommerce в LearnPress
12.05.2026
Кастомизация страницы курса в LearnPress с помощью хуков и фильтров
25.12.2025
Как запретить регистрацию учащихся с одинаковым email в LearnPress
12.01.2026
Как создать автоответы в LearnPress для автоматизации обратной связи
29.11.2025
×
Quizle
Привлекайте, конвертируйте, зарабатывайте!
-15%

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

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