Как создать автоплатёж с повтором в WordPress

Автоплатежи с повтором — это удобный способ автоматически списывать деньги с клиента по расписанию без его участия. Такая схема востребована для подписок, членских взносов, аренды и других сервисов с периодическими платежами. В этой статье подробно разберём, как создать автоплатёж с повтором в WordPress, используя плагины и кастомный код.

Выбор платежного плагина для автоплатежей с повтором

Первый шаг — выбрать подходящий плагин для организации повторяющихся платежей. Вот несколько популярных вариантов с поддержкой автоплатежей:

  • WooCommerce Subscriptions — мощный плагин для создания подписок, автоматического списания и управления ими.
  • Paid Memberships Pro — подходит для сайтов с членскими программами и регулярными взносами.
  • WP Simple Pay Pro — удобен для простых повторяющихся платежей через Stripe.

Если вы хотите не использовать сторонние решения, можно реализовать автоплатеж с повтором с помощью кастомного кода и API платежных систем, например, Яндекс.Касса, Stripe или PayPal.

Настройка WooCommerce Subscriptions для автоплатежей

WooCommerce Subscriptions — это один из самых популярных и функциональных способов реализовать автоплатежи с повтором. Вот основные шаги настройки:

  1. Установите и активируйте плагин WooCommerce Subscriptions.
  2. Создайте продукт с типом «Подписка», задайте период повторения (например, ежемесячно, еженедельно).
  3. Настройте платежный шлюз, поддерживающий автоплатежи (например, Stripe или PayPal).
  4. Проверьте работу автоплатежей, оформив тестовую подписку.

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

Создание кастомного автоплатежа с повтором через WP Cron и Stripe API

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

Шаг 1. Создаём функцию для списания платежа

function wppay_process_recurring_payment($user_id, $amount) {
    // Получаем данные клиента Stripe из мета пользователя
    $stripe_customer_id = get_user_meta($user_id, '_stripe_customer_id', true);
    if (!$stripe_customer_id) {
        return false; // Нет клиента Stripe
    }

    // Подключаем Stripe SDK
    \Stripe\Stripe::setApiKey('sk_test_...');

    try {
        // Создаём платеж
        $paymentIntent = \Stripe\PaymentIntent::create([
            'amount' => $amount * 100, // В центах
            'currency' => 'rub',
            'customer' => $stripe_customer_id,
            'payment_method_types' => ['card'],
            'off_session' => true,
            'confirm' => true,
        ]);
        return true;
    } catch (Exception $e) {
        error_log('Ошибка автоплатежа: ' . $e->getMessage());
        return false;
    }
}

Шаг 2. Регистрируем WP Cron для повторения

add_action('wppay_recurring_payment_event', 'wppay_handle_recurring_payments');

function wppay_handle_recurring_payments() {
    $users = get_users(['meta_key' => '_wppay_recurring_enabled', 'meta_value' => '1']);
    foreach ($users as $user) {
        $amount = get_user_meta($user->ID, '_wppay_recurring_amount', true);
        wppay_process_recurring_payment($user->ID, floatval($amount));
    }
}

if (!wp_next_scheduled('wppay_recurring_payment_event')) {
    // Запускаем раз в сутки
    wp_schedule_event(time(), 'daily', 'wppay_recurring_payment_event');
}

Обработка ошибок и уведомления

Очень важно обрабатывать ошибки при автоплатежах и уведомлять администратора и клиента. Например, если платеж не прошёл из-за недостатка средств или ошибки карты, можно отправить письмо с просьбой обновить данные.

Добавим пример отправки письма клиенту при ошибке:

function wppay_notify_payment_failure($user_id, $error_message) {
    $user = get_userdata($user_id);
    if (!$user) return;

    $to = $user->user_email;
    $subject = 'Ошибка автоматического платежа';
    $message = "Здравствуйте, \nПри попытке списания средств произошла ошибка:\n" . $error_message . "\nПожалуйста, обновите платежные данные.";

    wp_mail($to, $subject, $message);
}

Полезные плагины для управления автоплатежами

Для удобства и расширения возможностей можно использовать дополнительные плагины:

  • Clearfy Pro — оптимизация и безопасность, поможет защитить платежные страницы.
  • Expert Review — для сбора отзывов и повышения доверия к платежам.
  • WPCommunity — управление пользователями и их подписками.

Все эти решения доступны на WPSHOP.ru.

Выводы и рекомендации

Автоплатежи с повтором — это сложный, но необходимый функционал для многих сайтов на WordPress. Использование готовых плагинов значительно упрощает задачу, но при необходимости можно сделать кастомную реализацию с помощью WP Cron и API платежных систем. Главное — тщательно тестировать работу автоплатежей, обрабатывать ошибки и уведомлять пользователей.

Если хотите быстро и надёжно запустить автоплатежи с повтором, рекомендуем рассмотреть WooCommerce Subscriptions или WP Simple Pay Pro.

WooCommerce: устранение проблемы отсутствия подтверждения платежа при оплате картой
25.05.2026
Как создать индивидуальный платежный шлюз в WordPress
11.01.2026
Как отладить проблемы с платежными API в WordPress
04.03.2026
Использование OTP (одноразового пароля) для подтверждения платежей в WordPress
15.04.2026
WooCommerce: как разрешить оплату в разных валютах с проверкой и настройкой
21.04.2026