Задать вопрос
@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 Оценить Комментировать
Решения вопроса 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
Что представляют из себя роли?? как Вы их храните?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы