Jump to content

Не понимаю как к Функции прикрутить права групп пользователей Wordpress


Recommended Posts

Здравствуйте друзья!

У меня нет знаний php и я это стараюсь компенсировать гуглом, но гугл не особо мне помог...

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

Но увы, облазил очень много сайтов по WP и все четно, помогите пожалуйста.

add_filter('rcl_tab','edit_you_author_tab_data');
function edit_you_author_tab_data($data){
    if($data['id']!='you_author') return $data;
    $data['public'] = 1;
    return $data;
}

Заранее спасибо!

Link to post
Share on other sites
1 минуту назад, Elliot сказал:

Эта функция выводит вкладку в личном кабинете, метка вкладки you_author а что под $data я не знаю(

ну так выведи на экран

function edit_you_author_tab_data($data){

	echo '<pre>';
    print_r($data);
    echo '</pre>';

    if($data['id']!='you_author') return $data;
    $data['public'] = 1;
    return $data;

}

 

Link to post
Share on other sites
(
    [id] => you_author
    [name] => You author?
    [public] => 0
    [icon] => fa-question-circle
    [output] => menu
    [custom-tab] => 1
    [content] => Array
        (
            [0] => Array
                (
                    [id] => subtab-1
                    [name] => You author?
                    [icon] => fa-question-circle
                    [callback] => Array
                        (
                            [name] => rcl_custom_tab_content
                            [args] => Array
                                (
                                    [0] => Хотите стать автором?
                                )

                        )

                )

        )

    [supports] => Array
        (
            [0] => cache
            [1] => ajax
        )

)

Это?

Link to post
Share on other sites
9 минут назад, petroff сказал:

@Elliot, вот чесно, забудь про wp и wp-recall. Смотри в сторону dle и блого-социальных движков

Я это все уже проходил, путного с вп ничего не получится 

Конечно не по теме, но т.е. какие блого-социальные движки вы посоветуете? А дле, честно, он мне так же горько не нравиться как и дрюпал, может сейчас версии по лучше, но для меня он какой-то деревянный, Имхо...

Link to post
Share on other sites
4 минуты назад, Elliot сказал:

Конечно не по теме, но т.е. какие блого-социальные движки вы посоветуете? А дле, честно, он мне так же горько не нравиться как и дрюпал, может сейчас версии по лучше, но для меня он какой-то деревянный, Имхо...

MODx наверное, altocms, livestreet. Блин, но везде конечно php нужно знать хотя бы чуть выше уровня чайника

Link to post
Share on other sites
2 минуты назад, petroff сказал:

MODx наверное, altocms, livestreet. Блин, но везде конечно php нужно знать хотя бы чуть выше уровня чайника

Говорят, php можно выучить за две недели, я бы учил, и не задавал тупых вопросов... Но где найти уроки строго от А до Я? Я искал, и что в итоге, такое ощущение, что выкладывают те, кто вообще не знают что это такое, типа уроки от Ж до Б.... все вперемешку, учишь то, что еще рано учить и т.д.

На счет CMS, Livestreet там не немного знаний php нужно, а нормально так, ну естественно зависит от задачи но т.е. MODx пробовал, но как-то не пошло.

ЗЫ. когда знаешь php, то скорее всего выбор движка - вопрос не актуален)) 

Link to post
Share on other sites
30 минут назад, Elliot сказал:

Это?

function edit_you_author_tab_data($data){

    if($data['id']!='you_author') return $data;
    else {
	
	global $current_user;

	if( is_author( $current_user->id ) )
	$data['public'] = 0;
	else
	$data['public'] = 1;

	return $data;

	}

}

Как-то так думаю, сложно что-то говорить когда доков по ВП нет нормальных

Link to post
Share on other sites
8 минут назад, gefard сказал:

function edit_you_author_tab_data($data){

    if($data['id']!='you_author') return $data;
    else {
	
	global $current_user;

	if( is_author( $current_user->id ) )
	$data['public'] = 0;
	else
	$data['public'] = 1;

	return $data;

	}

}

Как-то так думаю, сложно что-то говорить когда доков по ВП нет нормальных

К сожалению, вкладка отображается для всех в том числе и гостям(

Link to post
Share on other sites
  • VIP
add_filter( 'rcl_tab', 'edit_you_author_tab_data' );
function edit_you_author_tab_data( $data ) {

	// Если наша вкладка с id = you_author
	if ( $data['id'] === 'you_author' ) {
		// Если пользователь имеет роль = автор
		if ( current_user_can( 'author' ) ) {
			$data['public'] = 0;
		}
		// Если пользователь НЕ автор
		else {
			$data['public'] = 1;
		}
	}

	return $data;
}

Если не сработало, то поменяйте 0 и 1 местами, так как я не особо понял, что в каком случае означает, лишь догадка.

Link to post
Share on other sites
12 часа назад, campusboy сказал:

add_filter( 'rcl_tab', 'edit_you_author_tab_data' );
function edit_you_author_tab_data( $data ) {

	// Если наша вкладка с id = you_author
	if ( $data['id'] === 'you_author' ) {
		// Если пользователь имеет роль = автор
		if ( current_user_can( 'author' ) ) {
			$data['public'] = 0;
		}
		// Если пользователь НЕ автор
		else {
			$data['public'] = 1;
		}
	}

	return $data;
}

Если не сработало, то поменяйте 0 и 1 местами, так как я не особо понял, что в каком случае означает, лишь догадка.

$data['public'] = 0; - приватная вкладка, отображается только пользователю в личном кабинете, параметр 1 - вкладка отображается всем пользователям.

Ваш вариант не сработал, отображается всем ролям, не зависимо от этого параметра...

Link to post
Share on other sites
  • VIP

Ещё вариант:

add_filter( 'rcl_pre_output_tab', 'edit_you_author_tab_data' );
function edit_you_author_tab_data( $data ) {
    // Если наша вкладка с id = you_author
    if ( $data['id'] === 'you_author' ) {
        // Если пользователь имеет роль = автор
        if ( current_user_can( 'author' ) ) {
            unset($data);
            return;
        }
    }
 
    return $data;
}

 

Link to post
Share on other sites
2 часа назад, campusboy сказал:

Ещё вариант:


add_filter( 'rcl_pre_output_tab', 'edit_you_author_tab_data' );
function edit_you_author_tab_data( $data ) {
    // Если наша вкладка с id = you_author
    if ( $data['id'] === 'you_author' ) {
        // Если пользователь имеет роль = автор
        if ( current_user_can( 'author' ) ) {
            unset($data);
            return;
        }
    }
 
    return $data;
}

 

Спасибо, все работает как надо ;)

Link to post
Share on other sites
В 22.04.2018 в 0:08 AM, Elliot сказал:

Говорят, php можно выучить за две недели, я бы учил, и не задавал тупых вопросов... Но где найти уроки строго от А до Я? Я искал, и что в итоге, такое ощущение, что выкладывают те, кто вообще не знают что это такое, типа уроки от Ж до Б.... все вперемешку, учишь то, что еще рано учить и т.д.

На счет CMS, Livestreet там не немного знаний php нужно, а нормально так, ну естественно зависит от задачи но т.е. MODx пробовал, но как-то не пошло.

ЗЫ. когда знаешь php, то скорее всего выбор движка - вопрос не актуален)) 

Выучить php за 2 недели?) мда... Кто Вам такую чушь сказал. Хорошо допустим вы поняли основные моменты, типа переменных, циклов (foreach, for, while) Вы поняли как выводить содержимое (echo, var_dump, print_r), ок, массивы тоже разобрали, хорошо Вы поняли что такое функции и как туда передавать аргумент и тп. Но дальше то пойдет ООП, PDO, работа с базой данных и выборкой + логика + все возможные функции php, как минимум пол года уйдет по одной простой причине что Вы не сможете все узнать из мануала а только поймете по практике.  

Тут по мимо php Вам придется учить sql плотно, да и еще все cms работают на своих подходах к обращению к базам и тп.

Когда знаешь php начинаешь учить фреймворки. И тогда во многом забываешь что такое WP, drupal, joomla и тп, у тебя все на MVC и разноситься за считанные часы, а логику уже пишешь под себя ничего лишнего, никакого мусора и тп

Link to post
Share on other sites
4 часа назад, kuzovbmw сказал:

Выучить php за 2 недели?) мда... Кто Вам такую чушь сказал. Хорошо допустим вы поняли основные моменты, типа переменных, циклов (foreach, for, while) Вы поняли как выводить содержимое (echo, var_dump, print_r), ок, массивы тоже разобрали, хорошо Вы поняли что такое функции и как туда передавать аргумент и тп. Но дальше то пойдет ООП, PDO, работа с базой данных и выборкой + логика + все возможные функции php, как минимум пол года уйдет по одной простой причине что Вы не сможете все узнать из мануала а только поймете по практике.  

Тут по мимо php Вам придется учить sql плотно, да и еще все cms работают на своих подходах к обращению к базам и тп.

Когда знаешь php начинаешь учить фреймворки. И тогда во многом забываешь что такое WP, drupal, joomla и тп, у тебя все на MVC и разноситься за считанные часы, а логику уже пишешь под себя ничего лишнего, никакого мусора и тп

Ну вот)) т.е. читал такое, что реально выучить, но походу врали))

Вот сейчас я ищу материалы по php но все как бы с середины начинается, смысл учить то, что не понимаешь...

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...