<<<<<<< Updated upstream Hello, {$first_name} {$last_name}!"; } else { $html = "

Hello, {$first_name} {$last_name}!

"; } if (isset($tg_user['photo_url'])) { $photo_url = htmlspecialchars($tg_user['photo_url']); $html .= ""; } $html .= "

Log out

"; } else { $bot_username = BOT_USERNAME; $html = ''; } if(!is_user_logged_in()) { echo $html; } } add_action( 'wp_ajax_ontelegramauth', 'onTelegramAuth' ); add_action( 'wp_ajax_nopriv_ontelegramauth', 'onTelegramAuth' ); function onTelegramAuth(){ $tg_id = $_POST['userid']; $tg_username = $_POST['username']; $user = get_users( array( 'meta_key' => 'tg_account', 'meta_value' => $tg_id ) ); // $user = get_users( // array( // 'meta_key' => 'tg_username', // 'meta_value' => $tg_username // ) // ); // Генерация пароля $alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@#!()'; $pass = array(); $alphaLength = strlen($alphabet) - 1; for ($i = 0; $i < 12; $i++) { $n = rand(0, $alphaLength); $pass[] = $alphabet[$n]; } $pass = implode($pass); if($user) { $user_login = $user[0]->data->user_login; $user_id = get_user_by( 'login', $user_login )->ID; wp_set_password( $pass, get_user_by( 'login', $user_login )->ID ); wp_signon( array( 'user_login' => $user_login, 'user_password' => $pass, 'remember' => 'on', ) ); } else { $user_id = wp_create_user( $tg_username, $pass, ''); add_user_meta( $user_id, 'tg_account', $tg_id); add_user_meta( $user_id, 'tg_username', $tg_username); wp_update_user( [ 'ID' => $user_id, 'first_name' => $_POST['fname'], 'last_name' => $_POST['lname'] ] ); wp_set_auth_cookie( $user_id, true ); } } add_action( 'wp_ajax_linktelegram', 'linkTelegram' ); add_action( 'wp_ajax_nopriv_linktelegram', 'linkTelegram' ); function linkTelegram(){ $tg_id = $_POST['userid']; $user_id = get_current_user_id(); add_user_meta( $user_id, 'tg_account', $tg_id); wp_update_user( [ 'ID' => $user_id, 'first_name' => $_POST['fname'], 'last_name' => $_POST['lname'] ] ); } add_action( 'wp_ajax_email_link', 'emailLink' ); add_action( 'wp_ajax_nopriv_email_link', 'emailLink' ); function emailLink(){ $email = $_POST['email']; $user_id = get_current_user_id(); if(email_exists($email)){ header("Content-Type: application/json"); echo json_encode(array( 'error' => esc_html__( 'Email is already registered', 'woodmart' ) )); exit(); } else { wp_update_user( [ 'ID' => $user_id, 'user_email' => $email ] ); } } // Добавляем колонку Telegram в список пользователей add_filter('manage_users_columns', 'add_tg_account_column'); function add_tg_account_column($columns) { $columns['tg_username'] = 'Telegram'; return $columns; } // Заполняем колонку данными add_filter('manage_users_custom_column', 'add_tg_account_column_content', 10, 3); function add_tg_account_column_content($value, $column_name, $user_id) { if ('tg_username' == $column_name) { $tg_account = get_user_meta($user_id, 'tg_username', true); if ($tg_account) { return '@' . esc_html($tg_account) . ''; } return 'не указан'; } return $value; } // Делаем колонку сортируемой add_filter('manage_users_sortable_columns', 'make_tg_account_column_sortable'); function make_tg_account_column_sortable($columns) { $columns['tg_username'] = 'tg_username'; return $columns; } // Обрабатываем сортировку add_action('pre_get_users', 'handle_tg_account_sorting'); function handle_tg_account_sorting($query) { if (!is_admin() || !$query->is_main_query()) { return; } if ('tg_username' === $query->get('orderby')) { $query->set('meta_key', 'tg_username'); $query->set('orderby', 'meta_value'); } } ?>