WPForms — один из самых популярных плагинов для создания форм в WordPress. Многие используют его для сбора заявок, регистрации и опросов, но часто возникает задача принимать оплату прямо через форму. В этой статье разберём, как правильно подключить WPForms к платежным системам, чтобы принимать платежи на сайте без лишних сложностей.
Почему стоит интегрировать WPForms с платежными системами
Интеграция WPForms с платёжными шлюзами позволяет:
- Принимать оплату за услуги или товары прямо на сайте без перенаправления;
- Автоматически получать уведомления о платеже и обрабатывать данные клиента;
- Упрощать процесс оформления заказа для пользователей;
- Повысить конверсию за счёт удобства и скорости оплаты.
WPForms поддерживает несколько популярных платежных систем через официальные дополнения (Addons), а также можно реализовать кастомные интеграции с помощью Webhook и API.
Поддерживаемые платежные системы и официальные дополнения
Среди официальных Addons для WPForms есть:
- Stripe Addon — для приёма платежей с банковских карт через Stripe;
- PayPal Standard Addon — для приёма платежей через PayPal;
- Authorize.Net Addon — для интеграции с Authorize.Net;
- Square Addon — для приёма платежей через Square.
Каждый из этих плагинов позволяет создавать платежные формы с минимальными настройками. Для примера рассмотрим настройку Stripe.
Настройка Stripe в WPForms
1. Установите и активируйте WPForms Stripe Addon. Скачать его можно с https://wpshop.ru/product/wpforms-stripe-addon/?utm_source=wpform.ru&utm_medium=article&utm_campaign=kak-podklyuchit-wpforms-k-platezhnym-sistemam-v-wordpress
2. В админке WordPress перейдите в WPForms > Настройки > Платежи и подключите Stripe, введя публичный и секретный ключи, которые можно получить в личном кабинете Stripe.
3. Создайте новую форму или отредактируйте существующую, добавьте платежные поля: «Кредитная карта», «Сумма» и другие необходимые.
4. В настройках формы включите Stripe и укажите необходимые параметры: валюту, описание платежа и т.д.
5. Сохраните форму и вставьте её на страницу с помощью шорткода или блока WPForms.
Пример кода для кастомной обработки платежа через Stripe API
Иногда требуется более гибкая интеграция. Ниже пример функции для обработки платежа через Stripe в WPForms с использованием хука wpformru_handle_stripe_payment:
function wpformru_handle_stripe_payment($entry, $form_data) {
$token = sanitize_text_field($_POST['stripeToken']);
$amount = intval($entry['fields']['payment_amount']);
\Stripe\Stripe::setApiKey('sk_test_your_secret_key');
try {
$charge = \Stripe\Charge::create([
'amount' => $amount * 100, // в центах
'currency' => 'usd',
'description' => 'Оплата с сайта',
'source' => $token,
]);
// Можно сохранить статус платежа в метаданных формы
update_post_meta($entry['id'], '_payment_status', $charge->status);
} catch (Exception $e) {
// Логируем ошибку
error_log('Stripe Payment Error: ' . $e->getMessage());
wp_die('Платёж не прошёл, попробуйте позже.');
}
}
add_action('wpforms_process_complete', 'wpformru_handle_stripe_payment', 10, 2);В этом примере после отправки формы происходит вызов функции, которая берёт токен карты и сумму из полей формы, создаёт платёж в Stripe и сохраняет статус.
Интеграция WPForms с PayPal через Webhook
PayPal Standard Addon работает через перенаправление, что не всегда удобно. Можно настроить Webhook для автоматической обработки платежей без перезагрузки.
Для этого:
- В админке WPForms создайте форму с кнопкой «Оплатить через PayPal»;
- Настройте Webhook URL в аккаунте PayPal, который будет принимать уведомления о платеже;
- Создайте обработчик Webhook в WordPress, который обновит статус заявки при успешном платеже.
Пример простого обработчика Webhook:
function wpformru_handle_paypal_webhook() {
$payload = file_get_contents('php://input');
$data = json_decode($payload, true);
if (!empty($data['invoice']) && $data['payment_status'] === 'Completed') {
$entry_id = intval($data['invoice']);
update_post_meta($entry_id, '_payment_status', 'completed');
}
http_response_code(200);
exit;
}
add_action('init', function() {
if ($_SERVER['REQUEST_URI'] === '/paypal-webhook') {
wpformru_handle_paypal_webhook();
}
});URL /paypal-webhook нужно указать в настройках PayPal IPN (Instant Payment Notification).
Советы по безопасности и тестированию платежных форм
При работе с платежами крайне важно соблюдать меры безопасности:
- Используйте HTTPS на сайте для шифрования данных;
- Храните ключи API в защищённых настройках, не в открытом коде;
- Проверяйте валидность и целостность данных, полученных от платежных систем;
- Тестируйте интеграцию в тестовом режиме (sandbox) платежных систем;
- Ведите логи ошибок и попыток оплаты для анализа проблем.
WPForms и его дополнения позволяют упростить работу, но ответственность за корректность и безопасность всегда остаётся на разработчике и администраторе сайта.
Альтернативные плагины для оплаты в WordPress
Если WPForms по каким-то причинам не подходит, можно рассмотреть другие варианты:
- Gravity Forms — с мощными дополнениями для Stripe, PayPal и др.;
- Formidable Forms — поддерживает оплату и сложные вычисления;
- WooCommerce — если нужна полноценная корзина и магазин.
Но для простых платежных форм WPForms с официальными Addons — самый быстрый и надёжный вариант.
Где скачать WPForms и платёжные дополнения
Все официальные Addons для WPForms доступны на сайте WPShop по ссылкам с UTM метками: