Как сделать раздельную регистрацию на WordPress?

Ссылка скопирована
1 ответ

Как сделать регистрацию на WP с разными условиями: например есть подписчики, которые хотят приобрести услугу по 100 у.е. и подписчики, которые хотят услуги за 200 у.е.
Как сделать регистрацию для двух типов подписчиков?
Как ограничить количество подписчиков для первой и второй категории(отдельно на каждую по 100 человек)?

Дополнительные вопросы

Зачем Вам разная регистрация?

  • Есть задача продать мероприятие по разным ценам в зависимости от выбора услуг.
  • чекбокс лох/не лох.
  • Ответы:

    Регистрация всегда одна. А далее уже присваиваются роли по условиям.
    Можно расширить форму регистрации, добавив пункт выбора типа услуги и в зависимости от этого назначать роль пользователю.

    • Хороший вариант, а как это сделать?
    • Albert Chereshko, в смысле? Что "это"?
    • Как добавить тип услуги при регистрации?
    • Albert Chereshko, учись пользоваться поисковыми системами.
      Как добавить дополнительные поля в форму регистрац...

      Или готовые плагины.

    • Refguser, Благодарю тебя) иногда не хватает времени или мозгов, чтобы придумать правильный вопрос. В такие моменты нужна помощь друга.
    • Albert Chereshko, да, такое у всех бывает. Это нормально. Я это понял и направил в правильное русло. А дальше уже нужно самостоятельно гуглояндексить. Ключи ж для поиска уже есть.
      А тут, если чей-то ответ помог, стоит отметь его решением.
    Нужно решить такую задачу?

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

    Заказать помощь
    Лучший ответ
    1
    Ирина WP Ответ

    Раздельную регистрацию в WordPress лучше делать через роли, тарифы/планы или отдельное поле типа пользователя. Не нужно создавать две разные системы регистрации, если различается только стоимость услуги и лимит мест.

    Простая схема:

    1. Создать две роли: например client_100 и client_200.
    2. На форме регистрации добавить выбор тарифа.
    3. После регистрации назначать пользователю нужную роль.
    4. Перед регистрацией проверять, не достигнут ли лимит по выбранному типу.

    Проверка лимита по роли:

    function count_users_by_role_name($role) {
        $users = get_users([
            'role'   => $role,
            'fields' => 'ID',
        ]);
     
        return count($users);
    }

    function count_users_by_role_name($role) { $users = get_users([ 'role' => $role, 'fields' => 'ID', ]); return count($users); }

    Перед созданием пользователя:

    if ($selected_plan === '100' && count_users_by_role_name('client_100') >= 100) {
        return new WP_Error('limit_reached', 'Места для этого тарифа закончились.');
    }

    if ($selected_plan === '100' && count_users_by_role_name('client_100') >= 100) { return new WP_Error('limit_reached', 'Места для этого тарифа закончились.'); }

    Если регистрация связана с оплатой, лучше не назначать полноценную роль до оплаты. Сначала пользователь создаётся как pending/subscriber, после успешной оплаты получает нужную роль или доступ.

    Для готового решения можно использовать membership-плагины: Paid Memberships Pro, MemberPress, Restrict Content Pro, WooCommerce Memberships. Они уже умеют планы, оплату, ограничения доступа и лимиты можно доработать.

    Итог: делайте не «две регистрации», а один процесс с выбором плана, ролью/планом пользователя и проверкой лимита.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно