<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[WP-Members 를 3.20 으로 업데이트 했더니 충돌 발생]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/24443</link>
		<description><![CDATA[<p><img alt="" src="https://yadong.news/wp-content/uploads/2018/07/bandicam-2018-07-10-11-02-40-905.jpg" style="height:1001px;" /><img alt="" src="https://yadong.news/wp-content/uploads/2018/07/bandicam-2018-07-10-11-02-07-232.jpg" style="height:1001px;" /></p>

<p>사진과 같이 필수정보 반드시 입력 옵션을 체크하면 계속 리다이렉트되어 정보 업데이트로 넘어가고 있습니다.</p>

<p>필수정보를 입력을 하였음에도 계속 리다이렉트 되더군요 무엇때문인지.. 시정해주세요</p>]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[안녕하세요~^^

WP Members 플러그인이 업데이트 되면서 username 필드를 필수로 설정한 듯합니다.

FTP...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/24450</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>WP Members 플러그인이 업데이트 되면서 username 필드를 필수로 설정한 듯합니다.</p>

<p>FTP로 접속해서 /wp-content/plugins/cosmosfarm-members/class/Cosmosfarm_Members.class.php 파일에</p>

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

<pre>
<code class="language-php">public function register_data($fields, $toggle){
	$option = get_cosmosfarm_members_option();
	if($toggle == 'new'){
		if($option-&gt;allow_email_login){
			if(is_multisite()){
				$fields['username'] = sanitize_user($fields['user_email']);
			}

			$user_nicename = isset($_POST['user_nicename']) ? sanitize_user($_POST['user_nicename']) : '';
			$display_name = isset($_POST['display_name']) ? sanitize_user($_POST['display_name']) : '';
			$nickname = isset($_POST['nickname']) ? sanitize_user($_POST['nickname']) : '';

			$user_email = explode('@', $fields['user_email']);
			$display = reset($user_email);
			$display = sanitize_user($display);

			$fields['user_nicename'] = $user_nicename ? $user_nicename : $display;
			$fields['display_name'] = $display_name ? $display_name : $display;
			$fields['nickname'] = $nickname ? $nickname : $display;
		}
	}
	else if($toggle == 'edit'){
		unset($fields['username']);
	}
	return $fields;
}</code></pre>

<p>아래의 코드로 교체해보시겠어요?</p>

<pre>
<code class="language-php">public function register_data($fields, $toggle){
	$option = get_cosmosfarm_members_option();
	if($toggle == 'new'){
		if($option-&gt;allow_email_login){
			
			add_action('user_register', array($this, 'user_register_allow_email_login'));
			
			$user_nicename = isset($_POST['user_nicename']) ? sanitize_user($_POST['user_nicename']) : '';
			$display_name = isset($_POST['display_name']) ? sanitize_user($_POST['display_name']) : '';
			$nickname = isset($_POST['nickname']) ? sanitize_user($_POST['nickname']) : '';

			$user_email = explode('@', $fields['user_email']);
			$display = reset($user_email);
			$display = sanitize_user($display);

			$fields['user_nicename'] = $user_nicename ? $user_nicename : $display;
			$fields['display_name'] = $display_name ? $display_name : $display;
			$fields['nickname'] = $nickname ? $nickname : $display;
		}
	}
	else if($toggle == 'edit'){
		unset($fields['username']);
	}
	return $fields;
}

public function user_register_allow_email_login($user_id){
	$user = get_userdata($user_id);
	if(!$user-&gt;username){
		add_user_meta($user_id, 'username', $user-&gt;user_email, true);
	}
}</code></pre>

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

<pre>
<code class="language-php">foreach($wpmem_fields as $meta_key=&gt;$field){
	if($field['required'] &amp;&amp; !in_array($meta_key, array('password', 'confirm_password', 'password_confirm'))){
		if($meta_key == 'confirm_email') $meta_key = 'user_email';
		if(!$current_user-&gt;{$meta_key}){
			echo '&lt;script&gt;alert("'.__('Please enter the required information.', 'cosmosfarm-members').'");&lt;/script&gt;';
			echo "&lt;script&gt;window.location.href='{$profile_url}';&lt;/script&gt;";
			return;
		}
	}
}</code></pre>

<p>아래의 코드로 교체해보시겠어요?</p>

<pre>
<code class="language-php">$meta_arr = $option-&gt;allow_email_login ? array('username', 'password', 'confirm_password', 'password_confirm') : array('password', 'confirm_password', 'password_confirm');
foreach($wpmem_fields as $meta_key=&gt;$field){
	if($field['required'] &amp;&amp; !in_array($meta_key, $meta_arr)){
		if($meta_key == 'confirm_email') $meta_key = 'user_email';
		if(!$current_user-&gt;{$meta_key}){
			echo '&lt;script&gt;alert("'.__('Please enter the required information.', 'cosmosfarm-members').'");&lt;/script&gt;';
			echo "&lt;script&gt;window.location.href='{$profile_url}';&lt;/script&gt;";
			return;
		}
	}
}</code></pre>

<p>빠른 시일 내에 업데이트에 반영하도록 하겠습니다.</p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Tue, 10 Jul 2018 05:44:26 +0000</pubDate>
			<category>KBoard</category>
		</item>
				<item>
			<title><![CDATA[3.20에서 username 필드키가 추가되었다는데 이것때문인가요?]]></title>
			<link>https://www.cosmosfarm.com/threads/document/24447</link>
			<description><![CDATA[<p>3.20에서 username 필드키가 추가되었다는데 이것때문인가요?</p>]]></description>
			<author>아리랑</author>
			<pubDate>Tue, 10 Jul 2018 02:48:28 +0000</pubDate>
			<category>KBoard</category>
		</item>
			</channel>
</rss>