1, 'provider' => 'smsru', 'phone_mode' => 'sms', // sms — код в SMS, call — посетитель звонит на бесплатный номер. 'smsru_key' => '', 'smsru_from' => '', 'sms_text' => __( 'Код для входа на сайт {site}: {code}', 'propusk' ), 'code_length' => 4, 'limit_phone' => 3, 'limit_ip' => 10, // VK ID и Яндекс ID. 'vk' => 0, 'vk_client_id' => '', 'yandex' => 0, 'ya_client_id' => '', 'ya_secret' => '', // Регистрация и вход. 'register' => 1, // Создавать аккаунт при первом входе. 'email_register' => 'off', // off — регистрация только по телефону, VK ID или Яндекс ID; keep — оставить обычную. 'password_login' => 'all', // all — по паролю могут все; admins — только администраторы. 'link_email' => 1, // Привязывать вход через VK ID / Яндекс ID к аккаунту с той же почтой. 'role' => '', // Роль новых пользователей; пусто — «Роль по умолчанию» из настроек WordPress. 'redirect' => '', 'wp_login' => 1, // Показывать на странице входа WordPress. ); /** * Значения по умолчанию. Дополнения добавляют свои ключи. * * @param array $defaults Настройки. */ return apply_filters( 'prps/settings_defaults', $defaults ); } public static function all() { if ( null === self::$cache ) { $stored = get_option( self::OPTION, array() ); self::$cache = array_merge( self::defaults(), is_array( $stored ) ? $stored : array() ); } return self::$cache; } public static function get( $key ) { $all = self::all(); return $all[ $key ] ?? null; } public static function update( array $settings ) { update_option( self::OPTION, $settings, false ); self::$cache = null; } /** Включённые способы входа, которые настроены и готовы к работе: ключ => подпись кнопки. */ public static function methods() { $s = self::all(); $methods = array(); if ( $s['phone'] && PRPS_Phone::ready() ) { $methods['phone'] = __( 'По номеру телефона', 'propusk' ); } if ( $s['vk'] && '' !== $s['vk_client_id'] ) { $methods['vk'] = __( 'VK ID', 'propusk' ); } if ( $s['yandex'] && '' !== $s['ya_client_id'] && '' !== $s['ya_secret'] ) { $methods['yandex'] = __( 'Яндекс ID', 'propusk' ); } /** * Способы входа. Pro добавляет вход через MAX. * * @param array $methods Ключ => подпись. */ return (array) apply_filters( 'prps/methods', $methods ); } }