Мощный плагин PayPal для WordPress добавляет онлайн-формы PayPal на ваш сайт. Получайте мгновенные платежи от своих клиентов после отправки формы, даже если у них нет учетной записи PayPal.

Версия плагина: 3.09
 
WordPress плагин Formidable PayPal Standard

Особенности плагина

Кнопка "Отправить" в ваших электронных формах отправляет клиента и его данные о покупке на страницу оплаты PayPal. Оказавшись там, они делают выбор: использовать учетную запись PayPal или кредитную карту. Настройте единовременные или периодические платежи по подписке в кратчайшие сроки.

Спецификации:

Дата выхода: 11-10-2017
Дата обновления: 30-08-2019
Тип расширения: Платный
Лицензия: GPL
Тематика: Интернет-коммерция для Formidable Forms
Совместимость: W5.x
Включает в себя: Плагин
Языковые пакеты: Английский
Разработчик: Formidable Forms

Рейтинг:
4.4876033057851 1 1 1 1 1 (Оценок: 242)
4.4876033057851 242

Скачивание по подписке!

Вам необходимо авторизоваться на сайте и приобрести клубную подписку!

Поделись с друзьями!

 

Руководство по настройке Formidable PayPal Standard для платежных форм

Formidable PayPal Standard нужен не для обычной контактной формы, а для сценариев, где форма WordPress должна собрать данные пользователя, рассчитать или принять сумму, отправить человека на оплату в PayPal и затем правильно обработать результат. В этом руководстве разберём не только включение add-on, но и то, как связать поля формы, PayPal-действие, IPN-уведомления, статусы записей и последующие действия сайта.

Обложка руководства по Formidable PayPal Standard для платежных форм WordPress
Главная логика руководства: форма собирает данные, Formidable PayPal Standard отправляет пользователя в PayPal, а сайт ждёт подтверждение платежа.

Материал рассчитан на владельца сайта, вебмастера или разработчика, который уже понимает, зачем нужна платежная форма, но хочет безопасно довести её до рабочего состояния. Мы отдельно разберём подготовку, тестовый режим, выбор суммы, разницу между разовой оплатой, пожертвованием и подпиской, а также проверку IPN, потому что именно этот участок чаще всего ломает автоматические действия после оплаты.

Верхнее описание продукта на странице обычно отвечает на вопрос, что это за add-on. Здесь задача другая - дать практическую карту внедрения. После чтения вы должны понимать, какие настройки проверить до запуска, где искать ошибку, если пользователь оплатил, а запись не обновилась, и когда лучше выбрать Stripe, WooCommerce или другой платежный инструмент.

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

Что именно делает PayPal-действие внутри Formidable Forms

Formidable PayPal Standard работает как платежное действие формы. Пользователь заполняет поля на сайте, нажимает отправку, после чего add-on формирует переход в PayPal с нужной суммой, названием позиции, валютой и адресами возврата. После завершения оплаты PayPal отправляет уведомление на сайт, а Formidable может изменить поле в записи или запустить другое действие, если оно настроено на событие успешной оплаты.

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

Не стоит воспринимать Formidable PayPal Standard как замену полноценному магазину. Он лучше подходит для оплаты заявки, услуги, взноса, пожертвования, бронирования, регистрации на событие или простой продажи через форму. Если нужны корзина, склад, налоги, доставка, купоны и статусы заказов, удобнее смотреть в сторону WooCommerce или отдельной платежной платформы.

Где такой подход особенно полезен

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

  • Платная регистрация на вебинар, мастер-класс, консультацию или офлайн-мероприятие.
  • Форма пожертвования с фиксированными вариантами суммы и полем для комментария.
  • Оплата членского взноса или регулярной поддержки через подписку.
  • Простая форма заказа услуги, где администратор должен видеть детали заявки в Entries.
  • Публикация пользовательского материала только после подтверждения оплаты.

Кому add-on может не подойти

Если посетитель должен платить картой прямо на сайте без перехода в PayPal, стоит заранее сравнить этот вариант со Stripe Forms или PayPal Checkout-решениями. Если нужны сложные товарные правила, скидки, остатки и доставка, форма быстро превратится в самодельный магазин. Если требуется современный встроенный кошелёк с Apple Pay, Google Pay или локальными методами оплаты, PayPal Standard может оказаться слишком простым и зависимым от возможностей аккаунта PayPal.

Практическое правило: если главная сущность у вас запись формы, используйте Formidable PayPal Standard; если главная сущность заказ с товарами и доставкой, начинайте с магазина.

Что проверить перед установкой и включением оплаты

Платёжная форма затрагивает несколько систем сразу: WordPress, Formidable Forms, PayPal, почтовые уведомления, кеш, firewall, права администратора и иногда тему. Поэтому подготовка важнее, чем кажется. Ошибка в обычной форме означает потерянную заявку, а ошибка в платежной форме может оставить оплату без статуса или отправить пользователя на неправильную страницу возврата.

Карта подготовки сайта перед установкой Formidable PayPal Standard
Перед запуском платежной формы проверьте зависимости, тестовый режим, IPN-доступность и страницы возврата.

Платформа и зависимости

Базовый Formidable Forms доступен в каталоге WordPress.org, но PayPal add-on относится к платным возможностям экосистемы Formidable. Официальная документация указывает, что для доступа к add-on нужен подходящий уровень Formidable Forms Premium. На странице WordPress.org можно проверить текущие требования базового плагина к версии WordPress и PHP, но для конкретного add-on важнее сверяться с документацией Formidable и changelog, потому что платежные дополнения развиваются отдельно.

Перед установкой убедитесь, что на сайте уже есть:

  • Рабочий Formidable Forms Premium и доступ к разделу Formidable в админ-панели.
  • PayPal Business account, потому что настройка IPN и получение платежей требуют бизнес-функций аккаунта.
  • Страница успешной оплаты и страница отмены, которые не закрыты паролем, режимом обслуживания или правилами кеша.
  • Понимание, какая форма будет принимать оплату, какие поля определяют сумму и что должно произойти после успешного платежа.
  • Доступ к настройкам firewall или хостинга, если IPN-запросы PayPal будут блокироваться.

Данные, которые нельзя оставлять на потом

До включения PayPal-действия решите, где будет храниться статус оплаты. Официальная документация Formidable предлагает создать поле вроде Payment status с вариантами Pending и Completed, скрыть его от пользователя и обновлять после оплаты через блок After Payment. Это простой способ видеть в записи не только сам факт отправки формы, но и результат обработки PayPal.

Также заранее подготовьте названия вариантов оплаты. Если сумма зависит от выбора пользователя, удобнее использовать Dropdown или Radio Button с отдельными сохранёнными значениями. В видимой части формы можно показать человеку понятный вариант, а в сохранённом значении держать сумму или код варианта, который затем использует действие PayPal.

Кеш, безопасность и доступность IPN

IPN - это серверное уведомление PayPal о событии платежа. Оно не зависит от того, вернулся ли пользователь на сайт после оплаты. Если firewall, защита от ботов, режим обслуживания или правила хостинга блокируют запрос PayPal к WordPress, сайт может принять запись формы, пользователь может оплатить, но статус внутри Formidable не изменится.

Для Formidable важен URL вида /wp-admin/admin-ajax.php?action=frm_payments_paypal_ipn. Документация советует открыть его из браузера, когда вы не авторизованы. Пустая страница считается нормальным признаком доступности endpoint. Если вместо этого вы видите страницу запрета, редирект на вход, ошибку firewall или HTML-страницу кеша, проблему надо решать до боевого запуска.

Проверяйте IPN до первой настоящей оплаты. Тестовая успешная отправка формы без IPN не доказывает, что автоматические действия после оплаты сработают.

Первичное подключение PayPal и IPN

После активации add-on основной путь начинается в глобальных настройках Formidable. Документация указывает раздел FormidableGlobal SettingsPayPal. Там задаётся PayPal email и окружение. Для реального сайта окружение должно быть Live, для проверки без настоящих платежей - Testing с sandbox-аккаунтами PayPal.

Эта настройка не заменяет параметры конкретной формы. Глобальный PayPal email и окружение задают базовое подключение, а PayPal action внутри формы определяет сумму, тип платежа, валюту, название позиции, URL возврата и поведение после оплаты. Если вы настроили только глобальный экран, но не добавили action в форме, пользователь не будет отправлен в PayPal.

Как включить IPN в PayPal

В PayPal Business account нужно включить Instant payment notifications. В документации Formidable описан путь через Account SettingsNotificationsInstant payment notifications. PayPal попросит notification URL, но Formidable подчёркивает важный нюанс: введённый URL будет не главным, потому что Formidable PayPal переопределяет его своим IPN endpoint. Смысл этого шага - включить получение IPN-сообщений в аккаунте.

По документации PayPal IPN сообщает о событиях платежей, включая полученные платежи, pending/completed/denied статусы, подписки, возвраты и споры. Эти уведомления не синхронны с переходом пользователя обратно на сайт. Иногда сообщение приходит с задержкой или повторяется, пока сервер не подтвердит получение. Поэтому в логике формы нельзя считать страницу возврата единственным доказательством успешной оплаты.

Sandbox без ложной уверенности

Для тестов PayPal использует sandbox-аккаунты: business email как продавец и personal email как покупатель. В Formidable нужно выбрать Testing, указать Business Sandbox email в глобальных настройках и в PayPal action конкретной формы. Затем тестовый пользователь оплачивает через Personal Sandbox account.

Есть нюанс: официальная документация Formidable указывает, что опция удержания email-уведомлений до получения оплаты не срабатывает в тестовом режиме PayPal. Поэтому sandbox полезен для проверки перехода, суммы, IPN и обновления статуса, но не все боевые сценарии уведомлений будут вести себя один в один. Для финального запуска нужен аккуратный реальный тест на минимальной сумме или внутренний контроль первых платежей.

Мини-проверка после глобального подключения

  1. Откройте FormidableGlobal SettingsPayPal и сохраните PayPal email.
  2. Проверьте, что окружение соответствует задаче: Testing для sandbox или Live для боевого сайта.
  3. Включите IPN в PayPal Business account.
  4. Откройте IPN endpoint Formidable в неавторизованном браузере и убедитесь, что нет блокировки.
  5. Включите логирование IPN на время тестов, если нужно диагностировать получение уведомлений.

Настройка PayPal-действия в конкретной форме

Самая важная часть настройки находится не в глобальном экране, а внутри формы. Откройте форму, перейдите в SettingsActions & Notifications и добавьте действие PayPal. Именно оно решает, когда пользователь уйдёт в PayPal, какую сумму увидит, какая валюта будет передана и что изменится в записи после подтверждения оплаты.

Аннотированный экран настройки PayPal action в Formidable PayPal Standard
Ключевые зоны PayPal action: название позиции, сумма, тип платежа, валюта, возвраты и блок After Payment.

Название позиции и PayPal email

Item Name виден на стороне PayPal и в платёжной квитанции. Для фиксированного продукта можно написать понятное название услуги. Если форма принимает разные варианты, можно подставить значение поля формы. Важно не передавать туда внутренний технический код, который будет непонятен покупателю.

PayPal Email должен соответствовать аккаунту, который принимает платежи. Ошибка в email может привести к pending-статусу или ситуации, когда платеж ушёл не туда, куда ожидал администратор. Если на сайте несколько валют или несколько получателей, лучше не пытаться спрятать всё в одном действии. Создайте несколько PayPal actions и включайте их условной логикой.

Amount: фиксированная сумма или значение поля

Поле суммы можно задать вручную через Set Amount или связать с полем формы. Для простой формы пожертвования часто достаточно фиксированных вариантов. Для формы заказа удобнее использовать отдельные значения в Dropdown или Radio Button: посетитель видит понятную подпись, а Formidable использует сохранённое значение для расчёта.

Здесь важно не путать цену, текст варианта и итоговую сумму. Если у варианта есть отдельное значение, оно должно быть уникальным. Если несколько вариантов имеют одну цену, добавьте уникальный текст перед числом, чтобы потом понимать, какой вариант выбрал пользователь. В расчётах Formidable может использовать числовую часть сохранённого значения, но для администратора полезно сохранять и смысл выбора.

Payment Type: разовая оплата, donation или subscription

В PayPal action доступны разные типы платежа. One-time Payment подходит для разовой покупки, взноса или регистрации. Donation логичен для благотворительных форм и добровольной поддержки. Subscription запускает повторяющуюся оплату с настройкой периода. Выбор типа влияет не только на текст, но и на дальнейшую логику проверки: у подписки есть последующие платежи, а у разовой оплаты - один основной платёж.

Не включайте подписку только потому, что она выглядит “профессиональнее”. Если услуга не требует регулярного списания, подписка усложнит поддержку, отмены и коммуникацию с пользователем. Лучше выбрать простой разовый платеж и отдельно объяснить условия в тексте формы.

Return URL и Cancel URL

Return URL ведёт пользователя после обработки оплаты, а Cancel URL - если он отменил процесс. Эти страницы должны быть понятными и не должны выдавать ложный статус. Страница успешного возврата может сказать, что платёж отправлен на обработку и подтверждение будет учтено после уведомления PayPal. Это честнее, чем сразу писать “оплата подтверждена”, потому что фактическое обновление записи зависит от IPN.

Conditional Logic для сложных форм

Если форма принимает и бесплатные, и платные заявки, PayPal action должен запускаться только при платном выборе. В Formidable это делается через Conditional Logic внутри действия. Например, действие с разовой оплатой срабатывает, когда поле Payment option равно “Разовая оплата”, а действие подписки - когда то же поле равно “Подписка”.

При нескольких действиях проверяйте условия особенно внимательно. Две активные PayPal actions без взаимно исключающих правил могут создать путаницу. Наоборот, слишком строгие условия могут не отправить пользователя в PayPal вообще. После изменения условий всегда делайте тест: один сценарий, где действие должно сработать, и один сценарий, где оно не должно сработать.

Статус оплаты, запись формы и действия после PayPal

Пользовательская форма и платежная система живут в разных ритмах. Запись формы появляется сразу после отправки, а подтверждение оплаты приходит отдельно. Если не продумать связь между ними, администратор будет видеть отправленные заявки, но не понимать, какие из них оплачены, какие ждут подтверждения, а какие отменены.

Поток данных от формы к PayPal и обратно в статус оплаты Formidable
Платёжная запись должна пройти путь от отправки формы до IPN-подтверждения и обновления поля статуса.

Как хранить статус в записи

Практичный вариант - добавить в форму служебное поле Payment status, сделать его видимым только администратору и поставить начальное значение Pending. Затем в PayPal action открыть блок After Payment и добавить правило: когда Payment Status равен Completed, записать в это поле значение completed.

Такой подход удобен для ручной проверки. Администратор открывает Entries и видит, какие заявки прошли оплату. Также этот статус можно использовать в Views, письмах, экспорте или внутренней обработке. Главное - не давать посетителю управлять этим полем на публичной форме. Если поле отображается в HTML и пользователь может подменить значение, смысл проверки теряется.

Запуск email, регистрации или публикации после оплаты

Formidable позволяет настраивать действия формы и выбирать, когда они срабатывают. Для платежной формы особенно важен вариант Successful PayPal payment. Если письмо, регистрация пользователя, подписка на рассылку или публикация поста должны происходить только после оплаты, действие должно быть в той же форме и должно запускаться после успешного PayPal payment, а не сразу при создании записи.

Например, форма принимает платную публикацию материала. Сначала запись и будущий пост сохраняются как черновик. После IPN с успешной оплатой блок After Payment меняет служебное поле статуса, а связанное действие публикации или email запускается только по событию успешной оплаты. Это защищает сайт от ситуации, когда неоплаченный пользователь получает доступ к результату сразу после отправки формы.

Что считать корректным результатом

  • В Entries есть новая запись с данными пользователя и начальным статусом ожидания.
  • После оплаты появляется IPN-событие или лог, если логирование включено.
  • Служебное поле статуса меняется на значение успешной оплаты.
  • Действия, завязанные на успешную оплату, запускаются только после подтверждения PayPal.
  • Отмена оплаты не должна выдавать пользователю доступ к платному результату.

Страница возврата не равна подтверждённому платежу. Для автоматических действий ориентируйтесь на IPN и статус внутри записи, а не только на то, что пользователь вернулся с PayPal.

Подписки, пожертвования и разные валюты без путаницы

Formidable PayPal Standard поддерживает не только разовый платёж. В официальной документации описаны сценарии подписки, пожертвования, выбор между recurring и non-recurring платежами, а также разные валюты через несколько PayPal actions с условной логикой. Это сильная возможность, но она же быстро усложняет форму.

Схема выбора типа платежа и валюты в Formidable PayPal Standard
Если форма поддерживает разные типы оплаты, каждое PayPal-действие должно иметь собственное условие запуска.

Подписка с периодом и пробным сроком

Для подписки в PayPal action выбирается Subscription, затем настраивается Repeat Every. Если нужен пробный период, можно включить trial-настройки: сумму пробного периода и его длительность. Также документация упоминает возможность повторной попытки для последующих неуспешных платежей подписки. При этом неудачная первая попытка оплаты при переходе в PayPal не считается тем же самым, что сбой последующего регулярного списания.

Перед запуском подписки продумайте поддержку пользователя: где он увидит условия, как отменить регулярную оплату, как администратор поймёт, что подписка активна, и что делать при неуспешном последующем платеже. PayPal Standard помогает создать recurring profile, но не заменяет полноценный кабинет подписчика с управлением всеми состояниями.

Один выбор - два PayPal actions

Если пользователь выбирает между разовой оплатой и подпиской, удобнее создать два PayPal actions. Первое называется, например, One-time payment, использует One-time Payment и запускается только при выборе разового варианта. Второе использует Subscription и запускается только при выборе подписки. Так форма остаётся читаемой, а каждое действие отвечает за свой тип платежа.

Та же логика работает для разных валют. Если сайт принимает USD и CAD, создаются отдельные PayPal actions с разной валютой и разными условиями. Если одновременно выбираются и валюта, и тип платежа, условия должны проверять оба поля: например, currency равно USD и frequency равно Subscription. Это снижает риск, что пользователь выбрал одну валюту, а действие отправило другую.

Пожертвование и свободная сумма

Для пожертвований важнее всего прозрачность. Если сумма фиксированная, используйте понятные radio-варианты. Если сумма вводится вручную, добавьте валидацию минимального значения и понятный placeholder. PayPal action должен получать числовую сумму, а не текстовую подпись. После теста проверьте, что в PayPal отображается правильная сумма и что в записи Formidable сохраняется исходный выбор пользователя.

Когда не стоит усложнять форму

Если у вас всего один товар или одна услуга, не добавляйте сложную развилку только “на будущее”. Чем больше PayPal actions и условий, тем больше сценариев нужно тестировать. Начинайте с простого рабочего платежа, а подписки, валюты и дополнительные действия добавляйте только после того, как базовый поток стабильно проходит от формы до статуса оплаты.

Практический пример: платная запись на мероприятие

Разберём реалистичный сценарий: сайт принимает заявки на платный мастер-класс. Нужно собрать имя, email, тип билета, количество мест и комментарий, отправить пользователя в PayPal, а после оплаты отметить запись как оплаченную и отправить администратору письмо. Это хороший пример, потому что он использует поля формы, расчёт суммы, PayPal action, IPN и действие после успешной оплаты.

Пошаговый сценарий формы платной записи через Formidable PayPal Standard
Практический путь: пользователь выбирает билет, отправляет форму, оплачивает в PayPal, а администратор видит подтверждённую запись.

Цель и подготовка

Цель - получить форму, где пользователь выбирает билет “Стандарт” или “Расширенный”, указывает количество мест, оплачивает итог через PayPal и не получает подтверждение участия до успешного платежа. Перед настройкой должны быть активны Formidable Forms Premium и PayPal add-on, включён IPN в PayPal, подготовлены страницы возврата и отмены.

Поля формы

Создайте форму с полями Name, Email, Ticket type, Quantity, Total, Payment status и, если нужно, Comment. Для Ticket type используйте Radio Button или Dropdown. Если цена зависит от варианта, включите separate values и храните числовую цену в сохранённом значении. Поле Payment status сделайте служебным, видимым только администратору, со стартовым значением Pending.

Итоговую сумму можно рассчитывать через поля Formidable, если ваш набор полей это поддерживает. Важно, чтобы PayPal action получал сумму больше нуля. Официальная диагностика Formidable прямо указывает: если Total равен 0, пользователь не будет отправлен в PayPal.

Действия формы

  1. Откройте SettingsActions & Notifications и добавьте PayPal.
  2. В Item Name укажите название мероприятия или подставьте поле с типом билета.
  3. В Amount выберите рассчитанное поле суммы или задайте фиксированную сумму для простого билета.
  4. В Payment Type выберите One-time Payment.
  5. Укажите валюту, Return URL и Cancel URL.
  6. В After Payment настройте смену Payment status на completed при успешной оплате.
  7. Откройте email-действие для администратора и выберите запуск после Successful PayPal payment, если письмо должно уходить только после оплаты.

Проверка результата

Сначала пройдите сценарий в sandbox. Выберите билет, отправьте форму, убедитесь, что сумма в PayPal совпадает с расчётом, оплатите тестовым buyer account и дождитесь обновления записи. Затем откройте Entries и проверьте, что статус изменился, а письмо после оплаты ушло только один раз. Отдельно протестируйте отмену: пользователь должен попасть на страницу отмены, а запись не должна выглядеть как оплаченная.

Нюанс, который часто пропускают

Если вы меняете поля суммы после того, как PayPal action уже настроен, перепроверьте привязку поля в действии. В сложных формах легко удалить поле, заменить его новым и забыть, что PayPal action всё ещё смотрит на старый идентификатор. Симптом будет странным: форма выглядит правильно, но переход в PayPal не происходит или сумма передаётся неверно.

Практичные идеи применения на разных сайтах

Платёжная форма полезна не только для простой продажи. Formidable PayPal Standard раскрывается там, где сайт должен сначала получить структурированные данные, а оплату принять как один из этапов процесса. Ниже - идеи, которые опираются на подтверждённые возможности: поля Formidable, расчёт суммы, PayPal action, подписки, условную логику и действия после успешного платежа.

Идеи применения Formidable PayPal Standard для заявок, пожертвований и подписок
Сценарии отличаются не картинкой в форме, а тем, что происходит после подтверждения оплаты.

Некоммерческий сайт: пожертвование с понятным назначением

Форма может спросить имя, email, назначение пожертвования и сумму. Если сумма фиксированная, используйте варианты с separate values; если свободная, добавьте проверку минимального значения. После успешной оплаты можно отправить письмо администратору или обновить служебный статус записи. Проверка результата - запись с данными донора есть, платёж подтверждён, письмо не отправлено до IPN.

Образовательный проект: платная запись на занятие

Для курса или мастер-класса форма собирает участника, выбранную дату, тариф и количество мест. PayPal action берёт итоговую сумму, а после оплаты администратор получает подтверждение. Если мест ограниченное количество, не полагайтесь только на PayPal add-on: дополнительно продумайте лимит записей или ручную сверку, потому что платежное действие само по себе не является системой управления местами.

Контентный сайт: публикация после оплаты

Formidable умеет работать с действиями создания постов, а документация PayPal описывает сценарий, где пост остаётся черновиком до завершения платежа. Это подходит для платного размещения объявления, заявки в каталог или пользовательской публикации. Ключевая проверка - неоплаченная отправка не должна становиться публичной, а успешный IPN должен менять статус только у связанной записи.

Сервисный бизнес: заявка плюс предоплата

Форма может собрать детали услуги, адрес, желаемое время и предоплату. PayPal закрывает платёж, а Formidable сохраняет контекст заявки. Здесь особенно важно не обещать автоматическое бронирование, если расписание ведётся вручную. Страница возврата должна объяснять, что заявка принята и будет подтверждена после проверки оплаты и доступности времени.

Проверка перед запуском: как понять, что всё работает

Перед публикацией формы недостаточно один раз нажать Submit. Нужна мини-приёмка, где вы проверяете каждый путь: успешную оплату, отмену, нулевую сумму, условную логику, статус записи, email после оплаты и IPN-доступность. Такой список кажется длинным, но он экономит больше времени, чем разбор жалобы “деньги списались, а доступ не открылся”.

Проверка формы на сайте

  1. Откройте страницу формы в обычном режиме, не из предпросмотра конструктора.
  2. Заполните все обязательные поля и проверьте, что итоговая сумма видна и больше нуля.
  3. Отправьте форму и убедитесь, что переход ведёт именно в PayPal, а не на страницу подтверждения без оплаты.
  4. Сравните сумму, валюту и название позиции на стороне PayPal с тем, что выбрал пользователь.
  5. Завершите тестовую оплату и дождитесь обновления записи в Entries.
  6. Проверьте, что email, регистрация, публикация или другое действие запустилось только после успешной оплаты.

Проверка отмены и отказа

Отмена не менее важна, чем успех. Пользователь может закрыть PayPal, вернуться по Cancel URL или не завершить платеж. В этих случаях запись формы может существовать, но статус должен оставаться ожидающим или неоплаченным. Если письмо администратору уже ушло как “оплачено”, значит действие стоит на неверном триггере.

Проверка IPN и логов

На время тестирования включите логирование IPN в FormidableGlobal SettingsPayPal, если такая опция доступна в вашей версии. После тестовой оплаты откройте лог и проверьте, что PayPal действительно достучался до сайта. Если лог пустой, не спешите менять поля формы. Сначала проверьте IPN endpoint, firewall, режим сайта, кеш и настройки PayPal Business account.

Контрольный список для администратора после публикации

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

Первые несколько платежей лучше сверять вручную: запись формы, статус, сумма, PayPal receipt, письмо администратору и страница, на которую вернулся пользователь. Если в проекте есть бухгалтерия, менеджер мероприятий или редактор публикаций, заранее объясните им разницу между “заявка отправлена” и “оплата подтверждена”. Для платежных форм это не мелочь, а рабочий статус, от которого зависит доступ к услуге или публикации.

Лучший тест - это не “форма отправилась”, а “запись получила правильный статус после IPN, а зависимые действия сработали один раз и в нужный момент”.

Безопасные улучшения и аккуратные доработки

Для Formidable PayPal Standard не стоит писать большие хаки. Платежный поток лучше держать ближе к официальной логике: поля формы, PayPal action, After Payment, IPN и штатные действия Formidable. Но есть небольшие улучшения, которые могут быть полезны и не требуют правки ядра WordPress, плагина или темы.

Сохранять transaction ID в служебное поле

Официальная документация Formidable PayPal описывает hook frm_payment_paypal_ipn и показывает, что в данных IPN доступны платежные переменные, запись и объект payment. Если вам нужно хранить идентификатор транзакции в отдельном поле записи, можно сделать маленький snippet через Code Snippets или файл дочерней темы. Он должен работать только для конкретной формы и только после подтверждённой оплаты.

Ниже пример структуры. Замените 123 на ID формы, а 456 на ID скрытого или administrator-only поля, куда вы хотите записывать receipt ID. Перед применением сделайте резервную копию и проверьте на тестовой форме.

add_action( 'frm_payment_paypal_ipn', 'jf_store_paypal_receipt_id' );

function jf_store_paypal_receipt_id( $args ) {
    $target_form_id = 123;
    $receipt_field_id = 456;

    if ( empty( $args['entry'] ) || (int) $args['entry']->form_id !== $target_form_id ) {
        return;
    }

    if ( empty( $args['pay_vars']['completed'] ) || empty( $args['pay_vars']['receipt_id'] ) ) {
        return;
    }

    FrmEntryMeta::update_entry_meta(
        $args['entry']->id,
        $receipt_field_id,
        null,
        sanitize_text_field( $args['pay_vars']['receipt_id'] )
    );
}

Проверка простая: пройти тестовую оплату, открыть запись в Entries и убедиться, что поле содержит идентификатор. Откат - отключить snippet и удалить значение из тестовых записей, если оно больше не нужно. Не расширяйте этот код до смены ролей, публикации материалов или выдачи доступа, пока не проверите весь поток IPN и не поймёте последствия.

Не пускать пользователя к служебным полям

Статус оплаты, receipt ID, внутренний тариф, служебный код валюты и другие контрольные поля должны быть скрыты от посетителя штатными средствами Formidable. Если поле нужно только администратору, используйте настройки видимости. Если поле всё же попадает в публичную разметку, не считайте его надёжным источником истины.

Согласовать текст формы со страницами возврата

Маленькое, но важное улучшение - написать честные тексты. На кнопке формы, в описании перед оплатой и на странице возврата объясните, что пользователь будет перенаправлен в PayPal, а подтверждение зависит от обработки платежа. Это снижает число обращений в поддержку, особенно если IPN иногда приходит с задержкой.

Почему оплата или статус не срабатывает и как искать причину

Диагностику Formidable PayPal Standard лучше вести по цепочке: форма отправилась, сумма больше нуля, PayPal action сработал, пользователь ушёл в PayPal, платеж завершён, PayPal отправил IPN, сайт принял IPN, запись изменилась, зависимые действия запустились. Если пропустить одно звено, можно лечить не ту часть системы.

Диагностическая карта ошибок Formidable PayPal Standard и IPN
Для платежных форм полезнее идти от симптома к проверке, а не менять все настройки сразу.

Форма отправляется, но пользователь не попадает в PayPal

Симптом: после отправки пользователь остаётся на сайте или видит обычное подтверждение формы, а PayPal не открывается. Первая причина из официальной диагностики - итоговая сумма равна нулю. PayPal action не должен запускаться при Total 0. Вторая частая причина - Conditional Logic в действии не совпадает с выбранными значениями поля.

Что проверить

  • Откройте запись тестовой отправки и посмотрите фактическое значение суммы.
  • Проверьте, что PayPal action включён, а не поставлен на паузу.
  • Сравните условия действия с реальными значениями Dropdown или Radio Button.
  • Если поле суммы было заменено, заново выберите его в PayPal action.

Исправление обычно сводится к корректному полю суммы или упрощению условий. Если после правки всё работает, не добавляйте новые действия поверх старых - сначала удалите или отключите ошибочный вариант, чтобы не получить двойную логику.

Оплата прошла, но статус в записи не изменился

Этот симптом почти всегда связан с IPN или блоком After Payment. Проверьте, включены ли IPN в PayPal, доступен ли endpoint admin-ajax.php?action=frm_payments_paypal_ipn для внешнего запроса и не мешает ли firewall. Документация Formidable советует открыть endpoint без авторизации: пустая страница - хороший признак, блокировка или редирект - проблема.

Если IPN приходит, но поле не меняется, проверьте правило в After Payment: выбран ли статус Completed, правильное ли поле обновляется, нет ли опечатки в значении. Если вы используете кастомный код на frm_payment_paypal_ipn, временно отключите его и повторите тест. Пользовательские snippets могут менять запись раньше или позже ожидаемого момента.

В debug log есть INVALID или pending reason

Formidable рекомендует при IPN Response from PayPal Server: INVALID открыть историю IPN в PayPal и проверить статусы уведомлений. Если в логе встречается pending_reason=unilateral, документация связывает это с email, который не подтверждён или не зарегистрирован в PayPal. В таком случае бессмысленно править дизайн формы - нужно сверить PayPal email и состояние аккаунта.

Письма не отправляются так, как ожидалось

Сначала отделите письма Formidable от писем PayPal. Formidable может запускать email action после успешной оплаты, если действие настроено на правильный триггер. PayPal, по документации Formidable, отправляет notice о failure для recurring payments, но не обязательно для каждого незавершённого initial или one-time платежа. Поэтому не строите логику поддержки на ожидании письма от PayPal о каждом неуспешном разовом платеже.

Если письмо Formidable должно уходить после оплаты, убедитесь, что оно находится в той же форме и использует событие Successful PayPal payment. Если письмо должно уходить сразу после заявки, оно может использовать обычное создание записи, но тогда в тексте нельзя писать, что оплата уже подтверждена.

Глобальные настройки не сохраняются

В community-вопросах встречается ситуация, когда пользователь не мог сохранить изменения в глобальных PayPal settings и одновременно не видел новые IPN logs. Такой симптом может указывать не на сам PayPal action, а на права записи, конфликт админ-панели, security plugin или проблему сайта. Начните с проверки прав администратора, ошибок в консоли браузера, server log и временного отключения конфликтующих security/cache-плагинов на тестовой копии.

Гостевая оплата не видна пользователю

Если вы ожидаете оплату без PayPal-аккаунта, проверьте настройки PayPal Business account. В документации Formidable путь описан через seller tools и website preferences, где включается PayPal account optional. При этом доступность гостевой оплаты может зависеть от страны, аккаунта и политики PayPal, поэтому не обещайте её как абсолютную возможность без проверки на вашем аккаунте.

Вопросы, которые обычно возникают перед запуском PayPal-формы

Можно ли использовать Formidable PayPal Standard без PayPal Business account?

Для рабочей настройки ориентируйтесь на PayPal Business account. Документация Formidable описывает подключение через PayPal Business и настройку IPN в аккаунте продавца. Если у вас личный аккаунт или аккаунт с ограничениями, сначала проверьте доступность нужных seller tools в самом PayPal.

Почему запись формы создаётся до оплаты?

Это нормальная логика: форма сначала сохраняет данные, затем отправляет пользователя в PayPal, а подтверждение приходит отдельным IPN-сообщением. Поэтому служебный статус должен начинаться как ожидание оплаты и меняться только после успешного платежа.

Можно ли запускать email только после оплаты?

Да, если email action находится в той же форме и настроен на запуск после Successful PayPal payment. Если письмо стоит на обычном создании записи, оно уйдёт до подтверждения оплаты.

Что делать, если нужен и разовый платёж, и подписка?

Создайте отдельные PayPal actions для каждого типа и включайте их условной логикой по выбору пользователя. Не пытайтесь одним действием покрыть разные типы платежа, если условия отличаются.

Можно ли принимать разные валюты в одной форме?

Официальная документация описывает такой сценарий через несколько PayPal actions с разными валютами и условиями. Проверьте каждый вариант отдельно: валюта, сумма, return/cancel URL и статус после оплаты.

Почему в тестовом режиме не всё работает как на боевом сайте?

Sandbox нужен для безопасной проверки перехода, суммы и IPN. Но Formidable отдельно отмечает, что удержание email-уведомлений до оплаты не срабатывает в PayPal test mode. Финальная проверка должна учитывать это отличие.

Можно ли стилизовать PayPal checkout внутри сайта?

Нет в том смысле, в котором стилизуется сама форма Formidable. PayPal Standard перенаправляет пользователя на PayPal, поэтому внешний вид платежного шага определяется PayPal и настройками аккаунта. Вы можете улучшить форму до перехода и страницы возврата после него.

Что выбрать, если PayPal Standard кажется слишком ограниченным?

Если важна оплата картой прямо на сайте, смотрите Stripe Forms или современный PayPal Checkout в другом form builder. Если нужна корзина, доставка и полноценные заказы, лучше рассматривать WooCommerce. Если же нужна оплата именно после формы, Formidable PayPal Standard остаётся уместным вариантом.

Когда Formidable PayPal Standard будет удачным выбором

Этот add-on стоит использовать, когда форма является центральной частью процесса: пользователь должен оставить структурированные данные, выбрать вариант, получить рассчитанную сумму и оплатить через PayPal. Он особенно полезен для заявок, пожертвований, платной регистрации, простых услуг, пользовательских публикаций после оплаты и сценариев, где администратору важны Entries в Formidable.

Перед запуском проверьте не только внешний вид формы, но и всю цепочку: сумма больше нуля, PayPal action срабатывает по правильному условию, IPN доступен, статус записи обновляется, зависимые действия запускаются после оплаты, а страницы возврата не вводят пользователя в заблуждение. Если эта цепочка проходит без ручных исправлений, форму можно аккуратно выводить на сайт.

Когда всё готово к тестированию на вашей установке WordPress, можно получить версию для WordPress и пройти настройку сначала на копии сайта или в sandbox-режиме. Для боевого запуска оставьте IPN-логирование на первые проверки, не удаляйте тестовые записи до сверки и заранее подготовьте короткую инструкцию для администратора, как отличать ожидающую оплату от подтверждённой.

Если проект будет развиваться, возвращайтесь к настройке постепенно. Сначала доведите до стабильности один платёжный сценарий, затем добавляйте подписку, несколько валют, публикацию после оплаты или дополнительные уведомления. Такой порядок проще поддерживать: при новой ошибке вы точно знаете, какая часть цепочки была изменена последней, и можете откатить только её, не ломая уже проверенную форму.

Автор: Редакция JoomFox.org

Вы не зарегистрированы, чтобы оставлять комментарии.