Автоплатежи с повтором — это удобный способ автоматически списывать деньги с клиента по расписанию без его участия. Такая схема востребована для подписок, членских взносов, аренды и других сервисов с периодическими платежами. В этой статье подробно разберём, как создать автоплатёж с повтором в WordPress, используя плагины и кастомный код.
Выбор платежного плагина для автоплатежей с повтором
Первый шаг — выбрать подходящий плагин для организации повторяющихся платежей. Вот несколько популярных вариантов с поддержкой автоплатежей:
- WooCommerce Subscriptions — мощный плагин для создания подписок, автоматического списания и управления ими.
- Paid Memberships Pro — подходит для сайтов с членскими программами и регулярными взносами.
- WP Simple Pay Pro — удобен для простых повторяющихся платежей через Stripe.
Если вы хотите не использовать сторонние решения, можно реализовать автоплатеж с повтором с помощью кастомного кода и API платежных систем, например, Яндекс.Касса, Stripe или PayPal.
Настройка WooCommerce Subscriptions для автоплатежей
WooCommerce Subscriptions — это один из самых популярных и функциональных способов реализовать автоплатежи с повтором. Вот основные шаги настройки:
- Установите и активируйте плагин WooCommerce Subscriptions.
- Создайте продукт с типом «Подписка», задайте период повторения (например, ежемесячно, еженедельно).
- Настройте платежный шлюз, поддерживающий автоплатежи (например, Stripe или PayPal).
- Проверьте работу автоплатежей, оформив тестовую подписку.
Плагин автоматически создаст расписание списаний, уведомления и позволит управлять подписками из админки.
Создание кастомного автоплатежа с повтором через 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.