Elliot

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

17 сообщений в этой теме

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

У меня нет знаний 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;
}

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, Elliot сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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;

}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(
    [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
        )

)

Это?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, petroff сказал:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, Elliot сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, petroff сказал:

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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;

	}

}

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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;

	}

}

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

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

Поделиться сообщением


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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 - вкладка отображается всем пользователям.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ещё вариант:

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

 

Elliot понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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;
}

 

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

Поделиться сообщением


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу