Всем доброе время суток, с WordPress дружу не долго, такое же время дружу и с php. Возникла потребность дописать не большей функционал к старому плагину. Дана функция secure_invite_user_registered которая начисляет балы за регистрацию(по приглашению) по такому принципу если человек А пригласил человека Б ему даются 5 балов, если человек Б приглашает человека В, то человеку А даются 3 бала и т.д Хочу отследить и вывести эту цепочку по именам, чтоб видно было пользователю А имя человека Б которого он пригласил, а так же было видно имя пользователя человека В которого пригласил человек Б Вот функция которая это дело делает Код (PHP): function secure_invite_user_registered($user_id) { // get the email of the new user $user = get_userdata($user_id); $email = $user->user_email; // save the invite code, if one is set if ($_SESSION["invite_code"] != ""){ update_user_meta($user_id, "secure_invite_invitation_code", $_SESSION["invite_code"]); } // check if this is an invited email address $invited = secure_invites_is_valid_email($email); if ($invited) { // get the id of the level 1 inviter $inviterid_1 = secure_invite_get_inviter_id($email); // increase the level 1 inviter points by 5 $points_1 = (int)secure_invite_get_user_meta($inviterid_1, "secure_invite_points"); update_user_meta($inviterid_1, "secure_invite_points", ($points_1+10)); // get the inviter 1 email $inviter_1 = get_userdata($inviterid_1); $email_1 = $inviter_1->user_email; // get the id of the level 2 inviter $inviterid_2 = secure_invite_get_inviter_id($email_1); // if they were invited if ($inviterid_2 != "") { // increase the level 2 inviter points by 2 $points_2 = (int)secure_invite_get_user_meta($inviterid_2, "secure_invite_points"); update_user_meta($inviterid_2, "secure_invite_points", ($points_2+2)); // get the inviter 2 email $inviter_2 = get_userdata($inviterid_2); $email_2 = $inviter_2->user_email; // get the id of the level 3 inviter $inviterid_3 = secure_invite_get_inviter_id($email_2); // if they were invited if ($inviterid_3 != "") { // increase the level 3 inviter points by 1 $points_3 = (int)secure_invite_get_user_meta($inviterid_3, "secure_invite_points"); update_user_meta($inviterid_3, "secure_invite_points", ($points_3+1)); } } } return $user_id; } С плагином шел shortcode который выводит только имя пользователя который его пригласил. Пробовал дописывать проверки с верхней функции в этот шоркткод думал так отследить, но не вышло, навертел непонятно что) Была еще идея вмести с начислениями этих балов в отдельную таблицу заносить имя, а потом с этой таблицы выводить. Вот этот шоркод: Код (PHP): function secure_invite_myinviter_shortcode($atts, $content="") { extract(shortcode_atts(array( 'id' => null ), $atts)); if ($id == null) { global $current_user; $email = $current_user->user_email; } else { $user = get_userdata($id); $email = $user->user_email; } if ($email) { global $wpdb; $sql = $wpdb->prepare("select u.display_name from {$wpdb->users} u inner join " . secure_invite_prefix() . "invitations i on i.user_id = u.id where i.invited_email = %s;", $email); return $wpdb->get_var($sql); } } Я не прошу написать за меня (хотя было бы не плохо), я прошу чтоб вы подсказали как это сделать, знаю, что вроде все дано, но не хватает знаний этим воспользоваться) Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.