<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[페이지 접근제한 기능 관련 버그(?) - 코스모스팜 회원관리 플러그인]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/61336</link>
		<description><![CDATA[<p><strong>1. 정확한 제품 또는 플러그인 이름</strong></p>

<p>회원관리 플러그인</p>

<p> </p>

<p><strong>2. 상세 내용</strong></p>

<p>특정 회원 Role역할만 접근 가능하도록 페이지 접근제한 설정함에도 불구하고 페이지 레이아웃이나 내용이 보이는 문제</p>

<p>비로그인일 경우 로그인하라는 알림창이 뜨면서 접근이 제한되지만,<br />
로그인 사용자이면서 해당 권한이 없는 경우임에도 페이지 접근 시 컨텐츠가 보이는 문제가 발생합니다.</p>

<p> </p>

<p><strong>3. 확인 가능한 상세 페이지 주소</strong></p>

<p>https://metamind.kr/courses/beginner/lessons/beginner1/topic/beginner1-1/</p>

<p><a href="https://imgur.com/a/tAUtDLf" target="_blank">https://imgur.com/a/tAUtDLf</a><br />
권한이 없는 로그인한 회원이 접근했을 때<br />
자세히 보시면 강의 영상 플레이어 밑에 조그맣게 권한이 없다고만 표시될 뿐입니다.</p>

<p> </p>]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[코스모스팜 회원관리 플러그인을 최신버전으로 업데이트하니까 수정했던 플러그인 php파일이 초기화되었...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/61584</link>
			<description><![CDATA[<p>코스모스팜 회원관리 플러그인을 최신버전으로 업데이트하니까 수정했던 플러그인 php파일이 초기화되었습니다.</p>

<p>혹시 위와 같은 코드로 자식 테마의 function.php에 적용하려면 어떻게 해야 할까요?</p>

<p>아래와 같이 적용해봤는데 오류가 납니다.</p>

<pre>
<code>add_filter('cosmosfarm_members_page_restriction', 'metamind_page_restriction');
function metamind_page_restriction() {
		if($page_restriction){
			if(!is_user_logged_in()){
				if($option-&gt;page_restriction_redirect == '1'){
					?&gt;
					&lt;script&gt;
					(function(){
						if(confirm("&lt;?php echo esc_js($page_restriction_login_message)?&gt;")){
							window.location.href=&lt;?php echo wp_json_encode(esc_url_raw(wp_login_url($_SERVER['REQUEST_URI'])))?&gt;;
						}
						else{
							window.location.href=&lt;?php echo wp_json_encode(esc_url_raw($referer_url))?&gt;;
						}
					})();
					&lt;/script&gt;
					&lt;?php
					exit;
				}
				else if($option-&gt;page_restriction_redirect == '2'){
					echo '&lt;script&gt;window.location.href="' . wp_login_url($_SERVER['REQUEST_URI']) . '";&lt;/script&gt;';
					exit;
				}
				else if($option-&gt;page_restriction_redirect == '3'){
					?&gt;
					&lt;script&gt;
					(function(){
						if(confirm("&lt;?php echo esc_js($page_restriction_login_message)?&gt;")){
							window.location.href=&lt;?php echo wp_json_encode(esc_url_raw(wp_registration_url()))?&gt;;
						}
						else{
							window.location.href=&lt;?php echo wp_json_encode(esc_url_raw($referer_url))?&gt;;
						}
					})();
					&lt;/script&gt;
					&lt;?php
					exit;
				}
				else if($option-&gt;page_restriction_redirect == '4'){
					echo '&lt;script&gt;window.location.href="' . wp_registration_url() . '";&lt;/script&gt;';
					exit;
				}
				else{
					$_REQUEST['redirect_to'] = $_SERVER['REQUEST_URI'];
					if(has_excerpt()){
						$content = wpautop(get_the_excerpt());
						$content .= wpmem_inc_regmessage('page_restriction', $page_restriction_message) . wpmem_inc_login('page_restriction');
					}
					else{
						$content = wpmem_inc_regmessage('page_restriction', $page_restriction_message) . wpmem_inc_login('page_restriction');
					}
					$content = apply_filters('cosmosfarm_members_page_restriction_content', $content, 'page_restriction');
				}
			}
			else{
				$current_user = wp_get_current_user();
				$restriction_roles = get_post_meta($post-&gt;ID, 'cosmosfarm_members_page_restriction_roles', true);
				
				$this_restriction = true;
				foreach($current_user-&gt;roles as $role){
					if(in_array($role, $restriction_roles)){
						$this_restriction = false;
						break;
					}
				}
				
				if($this_restriction){
					$_REQUEST['redirect_to'] = $_SERVER['REQUEST_URI'];
					if(has_excerpt()){
						$content = wpautop(get_the_excerpt());
						$content .= wpmem_inc_regmessage('page_restriction_permission', $page_restriction_permission_message);
					}
					else{
						?&gt;
						&lt;script&gt;
						alert('권한이 없습니다!!! 관리자에게 문의하세요.');
						window.history.go(-1);
						&lt;/script&gt;
						&lt;?php
						$content = wpmem_inc_regmessage('page_restriction_permission', $page_restriction_permission_message);
					}
					$content = apply_filters('cosmosfarm_members_page_restriction_content', $content, 'page_restriction');
				}
			}
		}
  }</code></pre>

<p> </p>]]></description>
			<author>메타마인드</author>
			<pubDate>Sat, 15 Oct 2022 03:32:19 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[추가적인 문제까지 완벽하게 해결했습니다!

다행히 코드도 계속 보다 보니 구조가 눈에 보이네요.

스...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/61403</link>
			<description><![CDATA[<p>추가적인 문제까지 완벽하게 해결했습니다!</p>

<p>다행히 코드도 계속 보다 보니 구조가 눈에 보이네요.</p>

<p>스크립트 구문 위치가 잘못됐었습니다.</p>

<p> </p>

<p>최종 수정 코드입니다.</p>

<p> </p>

<pre>
<code>			else{
				$current_user = wp_get_current_user();
				$restriction_roles = get_post_meta($post-&gt;ID, 'cosmosfarm_members_page_restriction_roles', true);
				
				$this_restriction = true;
					foreach($current_user-&gt;roles as $role){
						if(in_array($role, $restriction_roles)){
							$this_restriction = false;
							break;
						}
					}

				if($this_restriction){
					$_REQUEST['redirect_to'] = $_SERVER['REQUEST_URI'];
					if(has_excerpt()){
						$content = wpautop(get_the_excerpt());
						$content .= wpmem_inc_regmessage('page_restriction_permission', $page_restriction_permission_message);
					}
					else{
						?&gt;
						&lt;script&gt;
						alert('권한이 없습니다!!! 관리자에게 문의하세요.');
						window.history.go(-1);
						&lt;/script&gt;
						&lt;?php
						$content = wpmem_inc_regmessage('page_restriction_permission', $page_restriction_permission_message);
					}
					$content = apply_filters('cosmosfarm_members_page_restriction_content', $content, 'page_restriction');
				}
			}</code></pre>

<p> </p>]]></description>
			<author>메타마인드</author>
			<pubDate>Sat, 01 Oct 2022 05:04:48 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[아 그런데 이렇게 하니까 또 다른 문제점이 나오네요.

역할 '변경'이 아닌, 역할 '추가'로 부여된 역할...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/61402</link>
			<description><![CDATA[<p>아 그런데 이렇게 하니까 또 다른 문제점이 나오네요.</p>

<p>역할 '변경'이 아닌, 역할 '추가'로 부여된 역할에 대해선 페이지 접근권한이 적용되질 않습니다.</p>

<p>즉, 기본 역할이 '구독자'이고, 상품을 구매하여 '유료회원'이라는 역할이 추가되었다면,</p>

<p>구독자와 유료회원 두 개의 역할을 갖게 되는데,</p>

<p>이 경우 구독자에 대한 권한만 갖는 것처럼 되어서 유료회원만 들어갈 수 있는 페이지가 들어가지지 않습니다.</p>

<p>그래서 기본 역할을 아예 유료회원으로 변경하니 잘 들어가지구요.</p>

<p> </p>

<p>역할 추가로 얻은 역할에 대해선 어떻게 권한 적용이 되게 할 수 있을까요?ㅠㅠ</p>]]></description>
			<author>메타마인드</author>
			<pubDate>Sat, 01 Oct 2022 03:23:15 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[해결했습니다!

그냥 테마 fuction.php에 추가하지 않고, Cosmosfarm_Members.class.php에서 restrictio...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/61401</link>
			<description><![CDATA[<p>해결했습니다!</p>

<p>그냥 테마 fuction.php에 추가하지 않고, Cosmosfarm_Members.class.php에서 restriction_roles 항목을 찾아서 다음의 코드를 수정했습니다.</p>

<p>수정 전</p>

<p> </p>

<pre>
<code>			else{
				$current_user = wp_get_current_user();
				$restriction_roles = get_post_meta($post-&gt;ID, 'cosmosfarm_members_page_restriction_roles', true);
				
				$this_restriction = true;
				foreach($current_user-&gt;roles as $role){
					if(in_array($role, $restriction_roles)){
						$this_restriction = false;
						break;
					}
				
				if($this_restriction){
					$_REQUEST['redirect_to'] = $_SERVER['REQUEST_URI'];
					if(has_excerpt()){
						$content = wpautop(get_the_excerpt());
						$content .= wpmem_inc_regmessage('page_restriction_permission', $page_restriction_permission_message);
					}
					else{
						$content = wpmem_inc_regmessage('page_restriction_permission', $page_restriction_permission_message);
					}
					$content = apply_filters('cosmosfarm_members_page_restriction_content', $content, 'page_restriction');
				}
			}</code></pre>

<p> </p>

<p>수정 후</p>

<pre>
<code>			else{
				$current_user = wp_get_current_user();
				$restriction_roles = get_post_meta($post-&gt;ID, 'cosmosfarm_members_page_restriction_roles', true);
				
				$this_restriction = true;
				foreach($current_user-&gt;roles as $role){
					if(in_array($role, $restriction_roles)){
						$this_restriction = false;
						break;
					}
					else {
						?&gt;
						&lt;script&gt;
						alert('권한이 없습니다!!! 관리자에게 문의하세요');
						window.history.go(-1);
						&lt;/script&gt;
						&lt;?php
					}
				}
				
				if($this_restriction){
					$_REQUEST['redirect_to'] = $_SERVER['REQUEST_URI'];
					if(has_excerpt()){
						$content = wpautop(get_the_excerpt());
						$content .= wpmem_inc_regmessage('page_restriction_permission', $page_restriction_permission_message);
					}
					else{
						$content = wpmem_inc_regmessage('page_restriction_permission', $page_restriction_permission_message);
					}
					$content = apply_filters('cosmosfarm_members_page_restriction_content', $content, 'page_restriction');
				}
			}</code></pre>

<p> </p>

<p> </p>

<p>이상... 코드 한번도 배우지 않은 까막눈이 며칠간 삽질하며 얻어낸 해결책이었습니다. ㅎ</p>

<p>혹시라도 고칠 점이 있다면 꼭 말씀해주세요. 감사합니다.</p>]]></description>
			<author>메타마인드</author>
			<pubDate>Sat, 01 Oct 2022 03:05:03 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[로그아웃 상태 시 접근제한은 문제가 없는 터라, 해당 부분의 코드를 지우고 접속해보니 로그인까지는 ...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/61399</link>
			<description><![CDATA[<p>로그아웃 상태 시 접근제한은 문제가 없는 터라, 해당 부분의 코드를 지우고 접속해보니 로그인까지는 가능해졌습니다.</p>

<p>다만 권한이 없을 때 부분의 코드를 어떻게 수정해야 할지 모르겠습니다.</p>

<p>이제 로그인은 되지만 전체공개 상태의 다른 모든 페이지에 접근 시 여전히 권한이 없다고 뜹니다.</p>]]></description>
			<author>메타마인드</author>
			<pubDate>Fri, 30 Sep 2022 15:34:29 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[코드 입력하니까 다른 페이지로 접근이 안 되고 계속 리다이렉트 설정한 페이지로 리디렉션됩니다.

로...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/61389</link>
			<description><![CDATA[<p>코드 입력하니까 다른 페이지로 접근이 안 되고 계속 리다이렉트 설정한 페이지로 리디렉션됩니다.</p>

<p>로그인 페이지로도 안 들어가지고 오직 우커머스 장바구니 페이지만 들어가지네요.</p>

<p>관리자 계정만 정상작동합니다.</p>]]></description>
			<author>메타마인드</author>
			<pubDate>Fri, 30 Sep 2022 04:28:06 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[코스모스팜에서 제공되는 기능은 the_content 필터를 사용하기 때문에

내용이 표시될 때 동작하여 side...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/61379</link>
			<description><![CDATA[<p>코스모스팜에서 제공되는 기능은 the_content 필터를 사용하기 때문에</p>

<p>내용이 표시될 때 동작하여 side_bar 부분에서는 동작하지 않을 수 있습니다.</p>

<p> </p>

<p>아래 코드를 적절히 수정하여 테마 functions.php에</p>

<p>입력해보시겠어요?</p>

<pre>
<code>add_action('template_redirect', function(){
	$post = get_post();
	$option = get_cosmosfarm_members_option();
	
	$restriction_roles = get_post_meta($post-&gt;ID, 'cosmosfarm_members_page_restriction_roles', true);
	
	if($restriction_roles){
		if(is_user_logged_in()){
			$user_id    = get_current_user_id();
			$user_meta  = get_userdata($user_id);
			$user_roles = $user_meta-&gt;roles;
			
			foreach($restriction_roles as $role_name){
				if(in_array($role_name, $user_roles)){
					return true;
				}
				else{
					wp_redirect('/'); // 권한 없을 때 이동할 페이지 url
				};
			}
		}
		else{
			wp_redirect('/'); // 로그아웃 상태 시 이동할 페이지 url
		}
		exit;
	}
});</code></pre>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Fri, 30 Sep 2022 02:20:56 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[앗 해결된 줄 알았는데 아직 완벽하게 해결되진 않았습니다.

권한이 없는 회원이 접근했을 때, 비디오 ...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/61363</link>
			<description><![CDATA[<p>앗 해결된 줄 알았는데 아직 완벽하게 해결되진 않았습니다.</p>

<p>권한이 없는 회원이 접근했을 때, 비디오 플레이어는 이제 보이지 않는데 레이아웃은 여전히 보이고 있습니다.</p>

<p><a href="https://imgur.com/a/vzzMrDx">https://imgur.com/a/vzzMrDx</a></p>

<p> </p>

<p>아래 이미지처럼 아예 없는 페이지라고 뜨게 할 순 없나요? 이건 다른 해외의 페이지 접근제한 플러그인을 사용한 겁니다.<br />
<a href="https://imgur.com/a/lKHGYWh">https://imgur.com/a/lKHGYWh</a></p>]]></description>
			<author>메타마인드</author>
			<pubDate>Tue, 27 Sep 2022 14:18:51 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[코드 수정했더니 해결되었습니다. 감사합니다.^^

한 가지만 더 여쭐게요.
부모 페이지를 접근제한하면 ...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/61360</link>
			<description><![CDATA[<p>코드 수정했더니 해결되었습니다. 감사합니다.^^</p>

<p>한 가지만 더 여쭐게요.<br />
부모 페이지를 접근제한하면 자동으로 그 아래 자식 페이지까지 싹 다 접근제한 되게 할 수 없을까요? 자식 페이지가 너무 많아서 일일이 설정하려니 버겁습니다.</p>

<p>예를 들면,<br />
부모 페이지: /courses/beginner<br />
자식 페이지1: /courses/beginner/lessons/beginner1<br />
자식 페이지2: /courses/beginner/lessons/beginner2<br />
자식 페이지3: /courses/beginner/lessons/beginner3<br />
.......</p>

<p>이런 식입니다.</p>]]></description>
			<author>메타마인드</author>
			<pubDate>Tue, 27 Sep 2022 12:16:15 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요~^^

정확한 원인은 파악해보아야 알겠지만

실행 순서의 문제가 아닌가 하는 추측이 됩니다....]]></title>
			<link>https://www.cosmosfarm.com/threads/document/61344</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>정확한 원인은 파악해보아야 알겠지만</p>

<p>실행 순서의 문제가 아닌가 하는 추측이 됩니다.</p>

<p> </p>

<p>cosmosfarm-members/class/Cosmosfarm_Members.class.php 파일 내에서</p>

<pre>
<code>add_filter('the_content', array($this, 'page_restriction'), 10, 1);</code></pre>

<p>코드를 찾아서</p>

<pre>
<code>add_filter('the_content', array($this, 'page_restriction'), 999, 1);</code></pre>

<p>로 변경하신 다음에도 같은 문제가 발생하는지 확인해보시겠어요?</p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Tue, 27 Sep 2022 01:53:13 +0000</pubDate>
			<category>워드프레스</category>
		</item>
			</channel>
</rss>