WordPress как на ладони
WordPress темы и плагины за 250 рублей wordpress jino

Как ограничить права редактирования таксономии?

Столкнулся с проблемой невозможности редактирования термина таксономии (встроенная категория постов).

Администратор не может редактировать вновь созданные категории (ранее созданные можно)
Не срабатывает edit_term в term.php.

Не понятно почему одни категории можно редактировать, а другие нет

Версия WP 4.8 + Woocommerce 3.1

0
2 месяца назад
  • 0

    Посмотреть как создаются кастомные посты, вероятно там и стоят какие то ограничения, либо если там указаны подобные параметры, убрать совсем что бы ВордПресс сам разрулил.

    Так же можно воспользоватся плагином User Roles или аналогичным (https://wordpress.org/plugins/user-role-editor/) что бы выставить нужные права если из нет.

    shostakmaksim 2 месяца назад

    Как выяснилось ошибка возникла при обновлении WordPress или Woocommerce.
    В таблицах термов появились "мусорные записи". Я их почистил и теперь могу создавать и редактировать новые категории как для продуктов Woocommerce, так и категории WordPress
    Но вопрос остался как ограничить права редактирования таксономии для пользователей, которые их не создавали? По типу записей и страниц.
    Как описано https://wp-kama.ru/function/current_user_can

    if( current_user_can('edit_term', $term_id) ){
    	echo '<a href="'. get_edit_term_link( $term_id ) .'">Редакт.</a>';
    }

    Где в базе хранится связка, что пользователь может редактировать терм с таким id?

    Kama 2 месяца назад

    В WP нет привязки к юзеру который создавал термин. ID коздателя нигде не сохраняется, как например с постами... Поэтому право edit_term мало чем отличается от edit_terms оно только првоеряет наличие указанного термина и его таксономии... Если нужно проверять кто создавал термин, то для этого нужно сначала сохранить ID создателя кудато, а потом через хук прицепиться на првоерку этого права и првоерять этот ID...

    shostakmaksim 2 месяца назад

    У меня некорректно отрабатывал шаблон term.php (wp-admin)

    if ( ! in_array( $taxonomy, get_taxonomies( array( 'show_ui' => true ) ) ) ||
    	 ! current_user_can( 'edit_term', $tag->term_id )
    ) {
    	wp_die(
    		'<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' .
    		'<p>' . __( 'Sorry, you are not allowed to edit this item.' ) . '</p>',
    		403
    	);
    }

    Не могу понять почему созданные ранее категории можно редактировать, а при попытке редактирования вновь созданных, выдается Вордпрессовское предупреждение

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация