Задать вопрос
@mr_firuzinho

Как добавить или дописать функцию?

Помогите мне пожалуйста, есть код добавления объекта в закладки:
if ( ! function_exists( 'cs_addto_usermeta_carosel' ) ) :
	function cs_addto_usermeta_carosel() {
		$user = cs_get_user_id();
		if(isset($user) && $user <> ''){
			if(isset($_POST['post_id']) && $_POST['post_id'] <> ''){

				$cs_wishlist = cs_get_user_meta();
				$cs_wishlist = (isset($cs_wishlist) and is_array($cs_wishlist)) ? $cs_wishlist : array();
				if ( isset ( $cs_wishlist ) && in_array( $_POST['post_id'] , $cs_wishlist )) {
					$post_id = array();
					$post_id[] = $_POST['post_id'];
					$cs_wishlist = array_diff( $post_id , $cs_wishlist );
					cs_update_user_meta( $cs_wishlist );
					echo '<i class="icon-star-o"></i>'; 
					die();
				}

				$cs_wishlist = array();
				$cs_wishlist =  get_user_meta(cs_get_user_id(),'cs-directory-wishlist', true);
					$cs_wishlist[] = $_POST['post_id'];
					$cs_wishlist = array_unique($cs_wishlist);
					update_user_meta(cs_get_user_id(),'cs-directory-wishlist',$cs_wishlist);
					$user_watchlist = get_user_meta(cs_get_user_id(),'cs-directory-wishlist', true);

					$cs_icon = '<i class="icon-star2"></i>';
					$cs_pop_msg = '<div class="outerwrapp-layer">'.__('Added to Favourite','directory').'</div>';

					$cs_html = array(
									'icon' => $cs_icon,
									'msg' => $cs_pop_msg,
							   );
					$cs_json = json_encode($cs_html);
					echo $cs_json;
				}
		} else {
			_e('You have to login first.','directory');
		}
		die();  
	}
endif;

add_action("wp_ajax_cs_addto_usermeta_carosel", "cs_addto_usermeta_carosel");
add_action("wp_ajax_nopriv_cs_addto_usermeta_carosel", "cs_addto_usermeta_carosel");

Объект добавляется в закладки, лишь когда пользователь зарегистрировался, мне нужно чтобы эта функция срабатывала лишь для определенных ролей. Например я хочу запретить эту функцию для роли подписчика.Очень прошу помочь.
  • Вопрос задан
  • 182 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
function cs_addto_usermeta_carosel() {
$user_data = get_userdata( get_current_user_id() );
if( 'subscriber' === $user_data->roles[0] ) 
wp_die();
/** Остальной код **/
}


так же вот это вот экшен, он лишний в вашем случае
add_action("wp_ajax_nopriv_cs_addto_usermeta_carosel", "cs_addto_usermeta_carosel");


Но вообще использовать роли пользователей напрямую, это не очень удобно, гораздо удобнее пользовать сразу возможности
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@newobj
Что представляют из себя роли?? как Вы их храните?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽