ProCourse Memberships 💸

@Steven Большое спасибо за этот ответ, он очень полезен.

Похоже, что пользовательские поля решают большинство моих проблем. Я использую плагин Teaser и нашёл рабочее решение для типов членства на основе возможностей этого плагина.

Я посмотрел таблицу (спаска Google Translate!) и вижу, что через ProCourse можно иметь несколько уровней членства с разной стоимостью, верно? Если да, то я могу просто создать дополнительное членство, предоставляющее точно такой же доступ, но по более низкой цене. Мы достаточно небольшая группа, чтобы использовать это как решение, и кто-то будет вручную следить за тем, чтобы для этих пользователей существовало «основное» членство.

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

Ошибка: VM193:1 POST https://sandbox.example.com/memberships/checkout/submit-payment 500

Всё настроено для работы в режиме live. Есть какие-то идеи?

Это настоящий отладочный лог Discourse.

Плагин успешно работает на моем сайте для ежемесячных подписок.

Однако есть ли возможность взимать плату с пользователей за публикацию одной темы/сообщения, вместо предоставления им ежемесячного доступа?

Работаем над настройкой, и у меня возник вопрос. Если я установлю членство на 12 месяцев для группы «Bronze», будет ли членство в этой группе удалено по истечении этого срока? Предупреждает ли система пользователя о том, что это произошло или вот-вот произойдет?

Привет!

Я несколько раз перечитал это и снова попробовал демо-сайт. Думаю, я разобрался со своей путаницей в процессе регистрации и оформления членства.

Вот что, как я понимаю, мне нужно сделать:

Примечание: мой сайт полностью платный, бесплатного тарифа нет.

  1. У меня есть статическая продающая страница (вне Discourse) с формой заявки. Если заявка одобрена (ручной процесс), я отправлю приглашение присоединиться изнутри Discourse.

  2. Новый пользователь регистрируется и получает новую учётную запись в Discourse.

  3. Новый пользователь входит в Discourse и видит… пустой форум, кроме одной темы о «создании членства» [возможно, именно здесь пригодится pro-course-static-page, и я смогу разместить статическую страницу с вариантами оплаты?].

  4. В этой теме [или на статической странице] есть два варианта: ежемесячная подписка и годовая подписка. Каждая ссылка или кнопка ведёт на страницу членства, которую я создал в плагине Procourse.

  5. Новый пользователь завершает оплату и добавляется в группу «Участники», которая имеет доступ ко всему форуму.

Думаю, я на правильном пути. Но пункты 3 и 4 вызывают у меня сомнения. Не упускаю ли я более простой или очевидный путь?

P.S. — Я думал, что страница оплаты будет идти первой, до создания новой учётной записи. Необходимость сначала создать учётную запись стала для меня большим психологическим барьером, но я понимаю, почему это так. Думаю, да. :slight_smile:

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

Вам, вероятно, будет лучше сделать что-то подобное: заблокировать Discourse, но использовать WP Discourse для единого входа (SSO) и плагин Paid Memberships Pro для ограничения доступа к сообществу. Для ваших пользователей весь процесс будет происходить более плавно.

Вы можете посмотреть это для справки:

1 лайк

Спасибо, @justin, я посмотрю. Форум не пуст (у меня там уже несколько месяцев есть небольшая группа), но я понимаю вашу точку зрения. Ценю ваше мнение.

Можно спросить, почему вы выбрали такой путь? Бывает ли так, что заявка отклоняется?

Я спрашиваю, потому что основную часть ваших проблем можно решить, если этот этап можно пропустить.

1 лайк

Привет, Джо,

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

Я могу изменить процесс так, чтобы люди сразу попадали на страницу регистрации, а затем, после вступления, задавать им те же вопросы в рамках онбординга. Это сработает, так как в данном случае я уже много рассказывал о том, чего ожидать, ещё до регистрации.

Один вопрос: если я выберу такой путь, смогу ли я отправлять их сразу на страницу подписки для участников (где они оформляют подписку и производят оплату), а уже затем создавать их учётную запись в Discourse? Или порядок остаётся прежним: сначала создать учётную запись, а затем выбрать тарифный план?

Я бы объединил это с плагином Custom Wizard. С помощью этого плагина вы можете собирать любую необходимую информацию при регистрации, а после отправки формы перенаправлять пользователя на страницу оплаты членства. Таким образом, весь процесс будет единым.Лично я предпочитаю этот подход вместо использования Paid Memberships Pro. PMPro может отлично работать, пока вы не начнете пытаться синхронизировать групповые членства в обоих направлениях. Это возможно, но, судя по моему опыту, настройка не такая простая, а надежность не всегда гарантирована.

Когда я использовал PMP на своем сайте с синхронизацией групп, у меня никогда не возникало проблем, но правда в том, что для его корректной работы требуется определенный технический опыт. Вне зависимости от личных предпочтений, оба варианта являются жизнеспособными, каждый со своими преимуществами и недостатками. @madbaker, надеемся, мы помогли вам приблизиться к принятию решения!

@joebuhlig @justin Большое спасибо за это. Теперь я вижу более ясный путь.

1 лайк

@joebuhlig @justin Привет! Решил вернуться к этому вопросу…

Мне удалось успешно настроить плагин Custom Wizard при регистрации. Он вызывает статическую страницу, где новый пользователь может выбрать вариант подписки (ежемесячный или годовой).

У меня в плагине подписок настроено два уровня, и через статическую страницу пользователь попадает на правильную страницу подписки. Отлично.

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

  • Я внимательно изучил документацию по интеграции со Stripe на сайте сообщества Procourse. Кажется, что всё настроено верно, но очевидно, что это не так. :slight_smile:

  • Перепроверил валюты в плагине и в Stripe (обе USD), API-ключи и секрет вебхука. Всё в тестовом режиме.

  • Создал уровень для разового платежа, на случай если проблема в модели подписки (изменений нет).

  • Проверил логи в Stripe, но там нет записи о попытке вызова (ничего в логе).

Есть ли способ проверить логи в Discourse, чтобы увидеть, какой вызов пытается совершить система?

Я готов опубликовать вопрос на Marketplace за помощью, но если я смогу понять, что именно пытается сделать плагин, это хотя бы облегчит процесс. Я упростил процесс регистрации до минимума, но решения так и нет, хотя согласно документации всё должно быть довольно просто. (Знаменитые последние слова!)

Я провёл дополнительное расследование и в отчаянии попробовал несколько дополнительных шагов:

  • пересобрал приложение и запустил discourse-doctor, чтобы убедиться в отсутствии ошибок;
  • удалил и пересоздал уровни членства в плагине procourse-membership, используя тестовые ключи Stripe.

Когда я включаю уровни, я вижу новые планы продуктов (тестовая версия) в Stripe. Ура!
Но когда я перехожу на страницу оплаты для этих уровней, страница отображается, но поля ввода данных кредитной карты не загружаются. Спиннер крутится бесконечно.

Проверка логов ошибок Discourse и логов ошибок Stripe не дала результатов. Записей ни в одном из логов нет.

Тогда я подумал: может быть, проблема в «тестовом режиме»? Внёс следующие изменения:

  • заменил тестовые ключи и вебхуки на продакшн-ключи и вебхуки;
  • пересоздал уровни членства внутри плагина и включил их;
  • новые продукты/планы появились в Stripe в продакшн-среде. Ура!

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

Активности в логах Stripe или в логах ошибок Discourse нет.

=== Эврика! ===

Ах, всё-таки разобрался.

Для работы оплаты требуется скрипт — js.stripe.com/v3. Он блокировался как ошибка безопасности. Я добавил этот скрипт в белый список, и теперь всё работает быстро и отлично.

Очень важная деталь, кстати. Я проверял логи приложения, но если бы четыре дня назад я просто нажал F12 и проверил консоль, это сэкономило бы кучу времени. :face_with_head_bandage:

7 лайков

Что происходит, когда, например, истекает 30-дневная подписка? Что видит подписчик? Как он может продлить подписку?

Также, как отменить подписку?

5 лайков

привет @john12, ты нашёл решение? у меня возникла та же проблема

Я тоже об этом задумываюсь.

Кроме того, что происходит, когда пользователь присоединяется (и оплачивает), а затем отменяет подписку? Прекращается ли её действие сразу или после истечения оплаченного месяца?

3 лайка

В итоге я перешел на Memberful. Намного лучше.