' . esc_html__( 'Вход на сайт соответствует 406-ФЗ', 'propusk' ) . '
';
echo '
' . esc_html__( 'Посетители входят и регистрируются по российскому номеру телефона или через российский сервис (VK ID, Яндекс ID). Кнопки уже стоят на странице входа WordPress.', 'propusk' ) . '
';
} else {
echo '
' . esc_html__( 'Настройте хотя бы один способ входа', 'propusk' ) . '
';
echo '
' . esc_html__( 'С 1 декабря 2023 года владельцы сайтов должны пускать пользователей из России только по российскому номеру телефона, через Госуслуги, Единую биометрическую систему или российскую систему входа — например, VK ID и Яндекс ID. Регистрация только по почте закону не соответствует.', 'propusk' ) . '
' . wp_kses_post( __( 'Профиль пользователя — раздел «Вход на сайт»: привязать телефон, VK ID или Яндекс ID к аккаунту и отвязать.', 'propusk' ) ) . '
';
echo '
';
self::pro_note( __( 'Pro добавляет вход через MAX, личный кабинет и оформление заказа WooCommerce, второй шаг входа для администраторов и журнал входов.', 'propusk' ) );
PRPS_Admin::card_close();
PRPS_Admin::card_open( __( 'Что требует закон', 'propusk' ), '', array( 'icon' => 'dashicons-info-outline' ) );
echo '
' . esc_html__( 'Федеральный закон № 406-ФЗ от 31.07.2023, изменивший закон № 149-ФЗ «Об информации», с 1 декабря 2023 года разрешает владельцам сайтов авторизовать пользователей из России только одним из способов:', 'propusk' ) . '
';
echo '
';
echo '
' . esc_html__( 'по номеру телефона российского оператора — плагин присылает код в SMS или просит позвонить на бесплатный номер;', 'propusk' ) . '
' . esc_html__( 'через российскую информационную систему с проверенными пользователями — VK ID, Яндекс ID, MAX.', 'propusk' ) . '
';
echo '
';
echo '
' . esc_html__( 'С 7 июля 2026 года за вход через иностранные сервисы (Google, Apple ID, иностранная почта) действуют штрафы по статье 13.55 КоАП: для организаций — от 500 000 до 700 000 рублей, для должностных лиц — от 30 000 до 50 000 рублей.', 'propusk' ) . '
';
echo '
' . esc_html__( 'Плагин не даёт юридических гарантий. Уже зарегистрированным по почте пользователям предложите привязать телефон или VK ID в профиле.', 'propusk' ) . '
';
PRPS_Admin::card_close();
}
/* ---------------------------------------------------------------------
* Телефон
* ------------------------------------------------------------------- */
public static function phone() {
$s = PRPS_Settings::all();
$providers = PRPS_Phone::providers();
PRPS_Admin::form_open( 'phone' );
PRPS_Admin::card_open( __( 'Вход по номеру телефона', 'propusk' ), __( 'Посетитель вводит российский номер и подтверждает его кодом из SMS или звонком. Если аккаунта с таким номером нет, он создаётся автоматически.', 'propusk' ), array( 'icon' => 'dashicons-smartphone' ) );
self::toggle( 'phone', $s['phone'], __( 'Включить вход по номеру телефона', 'propusk' ) );
echo '
' . esc_html__( 'Латиницей, до 11 символов. Имя нужно согласовать в личном кабинете SMS.ru. Пусто — отправитель по умолчанию.', 'propusk' ) . '
';
echo '
';
/**
* Поля настроек провайдеров дополнений.
*
* @param array $s Настройки.
*/
do_action( 'prps/provider_fields', $s );
PRPS_Admin::card_close();
PRPS_Admin::card_open( __( 'Код и защита от перебора', 'propusk' ), '', array( 'icon' => 'dashicons-lock' ) );
echo '
';
echo '
';
echo '';
echo '
' . wp_kses_post( __( '{code} — код (обязательно), {site} — адрес сайта. Чем короче текст, тем дешевле SMS: 70 знаков кириллицы — одно сообщение.', 'propusk' ) ) . '
';
echo '
';
echo '
' . esc_html__( 'Ограничения в час', 'propusk' ) . '
';
/* translators: %s: поле ввода числа */
echo '
' . sprintf( esc_html__( 'Не больше %s кодов на один номер', 'propusk' ), '' ) . '
'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- число приведено к int.
/* translators: %s: поле ввода числа */
echo '
' . sprintf( esc_html__( 'Не больше %s кодов с одного IP-адреса', 'propusk' ), '' ) . '
'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- число приведено к int.
echo '
' . esc_html__( 'Защищает баланс от накрутки. Повторно отправить код можно через минуту, код действует 5 минут, на ввод даётся 5 попыток.', 'propusk' ) . '
';
echo '
';
PRPS_Admin::card_close();
PRPS_Admin::form_close();
}
/* ---------------------------------------------------------------------
* VK ID и Яндекс ID
* ------------------------------------------------------------------- */
public static function social() {
$s = PRPS_Settings::all();
PRPS_Admin::form_open( 'social' );
PRPS_Admin::card_open( 'VK ID', __( 'Вход через аккаунт ВКонтакте, Одноклассников или Mail.ru. Плагин получает имя, почту и подтверждённый телефон пользователя.', 'propusk' ), array( 'icon' => 'dashicons-id' ) );
self::toggle( 'vk', $s['vk'], __( 'Включить вход через VK ID', 'propusk' ) );
echo '
' . esc_html__( 'Как подключить', 'propusk' ) . '
';
echo '';
echo '
' . wp_kses_post( __( 'Откройте кабинет VK ID для бизнеса и создайте приложение типа «Веб».', 'propusk' ) ) . '
';
echo '
' . esc_html__( 'Укажите базовый домен сайта и добавьте доверенный Redirect URL — адрес ниже. В разделе «Доступы» включите почту и телефон.', 'propusk' ) . '
';
echo '
' . esc_html__( 'Скопируйте ID приложения в поле ниже и сохраните. Защищённый ключ не нужен: плагин использует PKCE.', 'propusk' ) . '
' . esc_html__( 'На сайте выключены постоянные ссылки, поэтому адрес возврата содержит параметр. Если включите постоянные ссылки, адрес изменится — обновите его в настройках VK ID и Яндекс ID.', 'propusk' ) . '
';
}
self::pro_note( __( 'Pro добавляет вход через мессенджер MAX: посетитель нажимает кнопку, бот подтверждает номер телефона — без SMS и без оплаты.', 'propusk' ) );
PRPS_Admin::form_close();
}
/* ---------------------------------------------------------------------
* Регистрация и вход
* ------------------------------------------------------------------- */
public static function login() {
$s = PRPS_Settings::all();
PRPS_Admin::form_open( 'login' );
PRPS_Admin::card_open( __( 'Регистрация', 'propusk' ), '', array( 'icon' => 'dashicons-admin-users' ) );
self::toggle( 'register', $s['register'], __( 'Создавать аккаунт при первом входе', 'propusk' ), __( 'Если выключить, войти смогут только пользователи, которые уже есть на сайте и привязали телефон или VK ID.', 'propusk' ) );
self::toggle( 'link_email', $s['link_email'], __( 'Узнавать пользователей по почте', 'propusk' ), __( 'Вход через VK ID или Яндекс ID попадёт в существующий аккаунт с той же почтой. Аккаунты редакторов и администраторов так не связываются — только вручную из профиля.', 'propusk' ) );
echo '
';
self::radio( 'email_register', 'off', $s['email_register'], __( 'Отключить', 'propusk' ), __( 'Форма регистрации WordPress покажет только телефон, VK ID и Яндекс ID. Рекомендуется для 406-ФЗ.', 'propusk' ) );
self::radio( 'email_register', 'keep', $s['email_register'], __( 'Оставить рядом с новыми способами', 'propusk' ), __( 'Регистрация только по почте не соответствует закону для пользователей из России.', 'propusk' ) );
if ( ! get_option( 'users_can_register' ) ) {
/* translators: %s: ссылка на настройки */
echo '
' . wp_kses_post( sprintf( __( 'Флажок «Любой может зарегистрироваться» в общих настройках выключен — новые аккаунты не создаются. Войти смогут только пользователи, которые уже есть на сайте.', 'propusk' ), esc_url( admin_url( 'options-general.php' ) ) ) ) . '
';
}
echo '
';
echo '
' . esc_html__( 'Только роли без прав на изменение сайта: подписчик, покупатель магазина. Если в настройках WordPress роль по умолчанию выше, новым пользователям дадим «Подписчика».', 'propusk' ) . '
' . esc_html__( 'Вход по логину и паролю', 'propusk' ) . '
';
self::radio( 'password_login', 'all', $s['password_login'], __( 'Разрешить всем', 'propusk' ), __( 'Пользователи, зарегистрированные раньше, по-прежнему входят по паролю.', 'propusk' ) );
self::radio( 'password_login', 'admins', $s['password_login'], __( 'Только администраторам и редакторам', 'propusk' ), __( 'Остальные входят по телефону, через VK ID или Яндекс ID. Форма пароля на странице входа скрыта за ссылкой «Вход для администратора».', 'propusk' ) );
echo '
';
echo '
';
echo '
' . esc_html__( 'Пусто — на страницу, с которой пришёл посетитель; если её нет — в консоль для авторов и на главную для остальных.', 'propusk' ) . '
';
echo '
';
self::pro_note( __( 'Pro добавляет второй шаг входа для администраторов (код на телефон) и журнал входов с IP-адресами.', 'propusk' ) );
PRPS_Admin::card_close();
PRPS_Admin::form_close();
}
}