Могу ли я сделать текст видимым в профиле пользователя, если он просматривает свой собственный профиль, но скрыть его, если его просматривает кто-то другой? - PullRequest
1 голос
/ 25 января 2020

Я использую плагин BuddyPress с плагином WP-Job-Manager для моего сайта. Я также использую другой плагин под названием BP-job-manager для отображения резюме пользователей в их профилях Buddypress. К сожалению, плагин BP-Job-manager немного глючит и не поддерживается.

В настоящее время, если пользователь вошел в систему и зашел в свой профиль, он может щелкнуть вкладку «Резюме», и там есть текст с указанием " Ваше резюме можно просмотреть, отредактировать или удалить ниже. " и внизу у них есть возможность просматривать, редактировать или удалять свои собственные резюме, когда они наводят на него курсор.

Если пользователь вошел в систему и выбрал просмотр профиля другого пользователя, он также может просмотреть резюме других пользователей, но они это делают. не иметь возможности редактировать или удалять чужое резюме, но текст «Ваше резюме может быть просмотрено, отредактировано или удалено ниже». все еще виден.

Вот как это выглядит, когда я его проверяю:

https://prnt.sc/qskqbd

Я временно использовал это CSS для скрыть это от всех:

#resume-manager-candidate-dashboard > p {
    display: none;
}

Но я все еще хотел, чтобы это было видно, если пользователь просматривает свой собственный профиль, поскольку функции для редактирования и удаления его резюме все еще там.

Я сталкивался функция is_user_logged_in () онлайн, и я нашел пример:

/**
 * Give a personalized message for logged in users and a generic one for anonymous visitors
 */
function wpdocs_personal_message_when_logged_in() {
    if ( is_user_logged_in() ) {
        $current_user = wp_get_current_user();
        printf( 'Personal Message For %s!', esc_html( $current_user->user_firstname ) );
    } else {
        echo( 'Non-Personalized Message!' );
    }
}
add_action( 'loop_start', 'wpdocs_personal_message_when_logged_in' );

Мне было интересно, можно ли изменить этот код, например, после $current_user = wp_get_current_user(); есть ли что-нибудь, что можно добавить, чтобы проверить, является ли текущий пользователь такой же, как пользователь, чей профиль просматривается?

... и затем echo текст "Ваше резюме можно просмотреть, отредактировать или удалить ниже." если пользователь такой же?

... а затем else текст "Ваше резюме можно просмотреть, отредактировать или удалить ниже." скрыто.

Мне просто интересно, есть ли способ сделать все это в php?

Спасибо

Ответы [ 2 ]

1 голос
/ 27 января 2020

Поскольку вы используете BuddyPress , может быть полезна функция bp_is_my_profile .

Измените свой код на следующий, и он будет работать так, как вы хотите.

if (is_user_logged_in() && bp_is_my_profile()) {
   $current_user = wp_get_current_user();
   printf( 'Personal Message For %s!', esc_html( $current_user->user_firstname ) );
}
0 голосов
/ 26 января 2020

Пример:

<?php
$checkuser = $_SESSION[userid];
if($current_user = $checkuser){
echo 'THIS IS INFORMATIONS';
}else{
echo 'Nothing to see';
}?>

Пожалуйста, предоставьте больше информации о вашей проблеме. поэтому мы смотрим на это вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...