Jump to content
Elliot

Не понимаю как к Функции прикрутить права групп пользователей 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;
}

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

Share this post


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

еще актуально, решения не нашел(

Что $data содержит? Дамп в студию.

Share this post


Link to post
Share on other sites

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

Share this post


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;

}

 

Share this post


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
        )

)

Это?

Share this post


Link to post
Share on other sites

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

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

Share this post


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

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

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

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

Share this post


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

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

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

Share this post


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

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

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

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

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

Share this post


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;

	}

}

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

Share this post


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;

	}

}

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

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

Share this post


Link to post
Share on other sites
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 местами, так как я не особо понял, что в каком случае означает, лишь догадка.

Share this post


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 - вкладка отображается всем пользователям.

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

Share this post


Link to post
Share on other sites

Ещё вариант:

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;
}

 

Share this post


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;
}

 

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

Share this post


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 и разноситься за считанные часы, а логику уже пишешь под себя ничего лишнего, никакого мусора и тп

Share this post


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 но все как бы с середины начинается, смысл учить то, что не понимаешь...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...