<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[회원가입시 역할role 변경 질문]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/55657</link>
		<description><![CDATA[<pre>
<code class="language-php">add_filter('wpmem_register_form_rows', 'wpmem_register_form_rows_20201020', 10, 2);
function wpmem_register_form_rows_20201020($rows, $toggle){
	$members_type = isset($_GET['regtype']) ? sanitize_text_field($_GET['regtype']) : '';
	if($members_type == '1'){
		// 업로더일 때 실행됩니다.
		unset($rows['user']);
	}
	else if(!$members_type || $members_type == '2'){
		// 일반사용자일 때 billing_phone 필드 삭제합니다.
		unset($rows['producer']);
	}
	
	return $rows;
}

add_filter('pre_option_default_role', 'my_default_registration_role');
function my_default_registration_role($default_role){

    if(isset($_POST['producer']) &amp;&amp; $_POST['producer'] == 'type1'){
		// 업로더일 때 실행됩니다.
		return 'producer';
	}
    else if(isset($_POST['user']) &amp;&amp; $_POST['user'] == 'type2'){
		// 일반사용자일 때 실행됩니다.
		return 'user';

    }
}</code></pre>

<p>wp-members 필드에서</p>

<p>메타키 : producer , value : type1 , type : hidden</p>

<p>메타키 : user , value : type2 , type : hidden</p>

<p>위와 같이 설정해두어</p>

<p> </p>

<p>&amp;regtype=1 인 회원가입 페이지의 경우에는</p>

<p>메타키 : user , value : type2 , type : hidden 이 부분을 unset하고</p>

<p>메타키 : producer , value : type1 , type : hidden 이 부분만 POST 값으로 받아 if문에 일치하게 하여</p>

<p>role을 producer로 바꾸려는데</p>

<p> </p>

<p>일단 unset이 먹히지가 않습니다.</p>

<p>일반 텍스트 필드는 unset이 잘 먹히는데 hidden 타입은 안먹히네요 왜그런걸까요?</p>

<p> </p>

<p>더 좋은 방법이 있으시다면 조언 부탁드립니다 :)</p>]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[다음 글

https://www.cosmosfarm.com/threads/document/55700]]></title>
			<link>https://www.cosmosfarm.com/threads/document/55708</link>
			<description><![CDATA[<p>다음 글</p>

<p><a href="https://www.cosmosfarm.com/threads/document/55700" target="_blank">https://www.cosmosfarm.com/threads/document/55700</a></p>]]></description>
			<author>스레드봇</author>
			<pubDate>Wed, 13 Oct 2021 00:34:20 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[올려주신 내용만으로는 정확한 원인을 파악하기 어렵습니다.

$_POST 변수에 producer가 넘어오는지 확...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/55706</link>
			<description><![CDATA[<p>올려주신 내용만으로는 정확한 원인을 파악하기 어렵습니다.</p>

<p>$_POST 변수에 producer가 넘어오는지 확인해보시고</p>

<p>$_POST['producer'] 값이 type1인지 확인해보시겠어요?</p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Wed, 13 Oct 2021 00:32:57 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[감사합니다.

&amp;amp;regtype=1 인 회원가입 페이지에서

user 필드가 성공적으로 지워졌습니다.

여...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/55666</link>
			<description><![CDATA[<p>감사합니다.</p>

<p>&amp;regtype=1 인 회원가입 페이지에서</p>

<p>user 필드가 성공적으로 지워졌습니다.</p>

<p>여전히 기본 역할로 가입이되네요</p>

<p> </p>

<pre>
<code class="language-php">add_filter('pre_option_default_role', 'wpmem_registration_role_20211009');
function wpmem_registration_role_20211009($default_role){

    $default_role = 'producer';
	return $default_role;
}</code></pre>

<p>혹시나해서 위의 코드로 변경해보았는데</p>

<p>이때는 producer로 잘 가입이됩니다.</p>

<pre>
<code class="language-php">if(isset($_POST['producer']) &amp;&amp; $_POST['producer'] == 'type1'){
		// 업로더일 때 실행됩니다.
		$default_role = 'producer';
	}</code></pre>

<p>이 부분이 안되는거같은데 왜 그럴까요..?</p>]]></description>
			<author>JohnLegend</author>
			<pubDate>Fri, 08 Oct 2021 20:30:39 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요~^^

wpmem_register_form_rows 필터에서 hidden 태그가 unset되지 않는 건

WP-Members 플러...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/55659</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>wpmem_register_form_rows 필터에서 hidden 태그가 unset되지 않는 건</p>

<p>WP-Members 플러그인에서 그렇게 설정하고 있기 때문입니다.</p>

<p> </p>

<p>대신 wpmem_register_fields_arr 필터를 활용해보는 건 어떨까요?</p>

<p>예제 코드는 아래와 같습니다.</p>

<pre>
<code class="language-php">add_filter('wpmem_register_fields_arr', 'wpmem_register_fields_arr_20211008', 10, 2);
function wpmem_register_fields_arr_20211008($wpmem_fields, $tag){
	$members_type = isset($_GET['regtype']) ? sanitize_text_field($_GET['regtype']) : '';
	if($members_type == '1'){
		// 업로더일 때 실행됩니다.
		unset($wpmem_fields['user']);
	}
	else if(!$members_type || $members_type == '2'){
		// 일반사용자일 때 billing_phone 필드 삭제합니다.
		unset($wpmem_fields['producer']);
	}
	return $wpmem_fields;
}</code></pre>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Fri, 08 Oct 2021 01:12:50 +0000</pubDate>
			<category>워드프레스</category>
		</item>
			</channel>
</rss>