@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");

Объект добавляется в закладки, лишь когда пользователь зарегистрировался, мне нужно чтобы эта функция срабатывала лишь для определенных ролей. Например я хочу запретить эту функцию для роли подписчика.Очень прошу помочь.
  • Вопрос задан
  • 181 просмотр
Решения вопроса 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
Что представляют из себя роли?? как Вы их храните?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽