<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[체크박스에서 디폴트로 체크되게 하는 방법]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/36465</link>
		<description><![CDATA[<p>안녕하세요?</p>

<p> </p>

<p>회원 가입 시 몇가지를 선택하려는 옵션을 넣으려고 합니다.</p>

<p>그래서 아래와 같은 코드를 만들었는데요.</p>

<p>여기서</p>

<p>1) 자동으로 체크되어서 보이게 하고 싶rh,</p>

<p>2) 여기에서 class 지정하려면  어디에다 class명을 넣어야 할까요?  기존 인터넷에서 찾을 수 있는 포맷이 아니라서 웹서핑이 도움이 안되는군요.</p>

<p>어떻게 해야할까요&gt;</p>

<pre>
<code class="language-php">		'iconic-register-checkboxes-option' =&gt; array(
			'type'     =&gt; 'checkboxes',
			
	
			'label'    =&gt; __( '가입 선택 동의 사항', 'iconic' ),
			'options'  =&gt; array(

				1 =&gt; __( '[선택] 마케팅 정보 제공 동의', 'iconic' ),	
				2 =&gt; __( '[선택] 새로운 서비스를 위한 제3자 개인 정보 제공 동의', 'iconic' ),				
			),
			'required' =&gt; false,
		),
</code></pre>

<p> </p>

<p>인터넷을 찾아보니 아래 명령을 사용할 수 있다고하는데요. 어디다 이를 넣어야할지 모르겠습니다.</p>

<pre>
<code>checked="checked"</code></pre>]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[안녕하세요?

말씀해주신대로 적용해 보니 잘 적용됩니다. 

깊이 감사드립니다.  ]]></title>
			<link>https://www.cosmosfarm.com/threads/document/36528</link>
			<description><![CDATA[<p>안녕하세요?</p>

<p>말씀해주신대로 적용해 보니 잘 적용됩니다. </p>

<p>깊이 감사드립니다.  </p>]]></description>
			<author>꿈꾸는섬</author>
			<pubDate>Tue, 03 Sep 2019 03:00:52 +0000</pubDate>
			<category>PHP 프로그래밍</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요.

추가하신 플러그인을 활용해서 체크박스에 기본적으로 체크를 하시려면

우선, 수정하신 ...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/36523</link>
			<description><![CDATA[<p>안녕하세요.</p>

<p>추가하신 플러그인을 활용해서 체크박스에 기본적으로 체크를 하시려면</p>

<p>우선, 수정하신 코드는 원래 상태로 복구해보시겠어요?</p>

<p>키($key)가 iconic-register-checkboxes-required인 체크박스를 모두 체크되게 하시려면</p>

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

<pre>
<code class="language-php">'iconic-register-checkboxes-required' =&gt; array(
	'type'     =&gt; 'checkboxes', 'checked',
	
	'label'    =&gt; __( '가입 필수 동의 사항', 'iconic' ),
	'options'  =&gt; array(
		1 =&gt; __( '[필수] 만 14세 이상 확인', 'iconic' ),
		2 =&gt; __( '[필수] &lt;a href="https://ownergolf.net/privacy-policy/" target="_blank"&gt;개인보호정책&lt;/a&gt; 및 &lt;a href="https://ownergolf.net/terms-of-service/" target="_blank"&gt;이용 약관&lt;/a&gt; 동의', 'iconic' ),

		3 =&gt; __( '[필수] 사용 경험 강화를 위한 &lt;a href="https://ownergolf.net/위치-정보-이용-정책/" target="_blank"&gt;위치 정보 이용&lt;/a&gt; 동의', 'iconic' ),		
		4 =&gt; __( '[필수] 서비스 관련 메일/SMS 등 &lt;a href="https://ownergolf.net/커뮤니케이션-정책/" target="_blank"&gt;커뮤니케이션&lt;/a&gt; 동의', 'iconic' ),							
	),
	'required' =&gt; true,
),</code></pre>

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

<pre>
<code class="language-php">'iconic-register-checkboxes-required' =&gt; array(
	'type'     =&gt; 'checkboxes', 'checked',
	
	'label'    =&gt; __( '가입 필수 동의 사항', 'iconic' ),
	'options'  =&gt; array(
		1 =&gt; __( '[필수] 만 14세 이상 확인', 'iconic' ),
		2 =&gt; __( '[필수] &lt;a href="https://ownergolf.net/privacy-policy/" target="_blank"&gt;개인보호정책&lt;/a&gt; 및 &lt;a href="https://ownergolf.net/terms-of-service/" target="_blank"&gt;이용 약관&lt;/a&gt; 동의', 'iconic' ),

		3 =&gt; __( '[필수] 사용 경험 강화를 위한 &lt;a href="https://ownergolf.net/위치-정보-이용-정책/" target="_blank"&gt;위치 정보 이용&lt;/a&gt; 동의', 'iconic' ),		
		4 =&gt; __( '[필수] 서비스 관련 메일/SMS 등 &lt;a href="https://ownergolf.net/커뮤니케이션-정책/" target="_blank"&gt;커뮤니케이션&lt;/a&gt; 동의', 'iconic' ),							
	),
	'required' =&gt; true,
	'value' =&gt; array(1, 2, 3, 4)
),</code></pre>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Tue, 03 Sep 2019 00:48:38 +0000</pubDate>
			<category>PHP 프로그래밍</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요?

문외한이라 조금만 문법과 혀익이 달라져도 응용하는데 애를 먹네요.

알려주신 페이지를 ...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/36517</link>
			<description><![CDATA[<p>안녕하세요?</p>

<p>문외한이라 조금만 문법과 혀익이 달라져도 응용하는데 애를 먹네요.</p>

<p>알려주신 페이지를 참고해서 아래와 같이 코드를 추가했는데요. </p>

<p>에러가 나면서 작동하비 않네요.</p>

<p>죄송지만 어디를 봐야하는지 알려부실 수 있을까요?</p>

<p> </p>

<p>저는 iconic-register-checkboxes-required 필드의 체크박스를모두 체크하고 싶었기 때문에 iconic-register-checkboxes-required 필드가 시작되기전에 </p>

<p>"$checked = $checkout-&gt;get_value( 'iconic-register-checkboxes-required' ) ? $checkout-&gt;get_value( 'iconic-register-checkboxes-required' ) : 1,"를 넣고</p>

<p>그 필드 맨 마지막에  $checked ),를 추가했습니다.</p>

<pre>
<code class="language-php">function iconic_get_account_fields() {


	return apply_filters( 'iconic_account_fields', array(

		'account_first_name'                 =&gt; array(
			'type'                 =&gt; 'text',
            'class'                =&gt; array('account_first_name'),			
			'label'                =&gt; __( '이름', 'iconic' ),
            'placeholder'          =&gt; __( '성+이름 추천해요', 'iconic' ),			
			'hide_in_account'      =&gt; false,
			'hide_in_admin'        =&gt; false,
			'hide_in_checkout'     =&gt; false,
			'hide_in_registration' =&gt; false,
			'required'             =&gt; true,
		),

		'user_phone'                 =&gt; array(
			'type'                 =&gt; 'tel',
			'label'                =&gt; __( '전화번호', 'iconic' ),
            'placeholder'          =&gt; __( '주연락 휴대 전화번호', 'iconic' ),			
			'hide_in_account'      =&gt; false,
			'hide_in_admin'        =&gt; false,
			'hide_in_checkout'     =&gt; false,
			'hide_in_registration' =&gt; false,
			'required'             =&gt; true,
		),		


		'iconic-register-region-select'     =&gt; array(
           'type'    =&gt; 'select',
           'class'   =&gt; array('iconic-register-region-select'), 	           
      
           'label'   =&gt; __( '활동지역 선택', 'iconic' ),
           'options' =&gt; array(
 //              '' =&gt; __( '서울시', 'iconic' ),
               1  =&gt; __( '서울시', 'iconic' ),
               2  =&gt; __( '인천시', 'iconic' ),
               3  =&gt; __( '경기도 북부', 'iconic' ),
               4  =&gt; __( '경기도 남부', 'iconic' ),
               5  =&gt; __( '충북', 'iconic' ),
               6  =&gt; __( '충남', 'iconic' ),
               7  =&gt; __( '경북', 'iconic' ),
               8  =&gt; __( '경남', 'iconic' ),
               9  =&gt; __( '전북', 'iconic' ),
               10  =&gt; __( '전남', 'iconic' ), 
               11  =&gt; __( '제주', 'iconic' ),                          
		    ),
			'required' =&gt; false,
		),

		'iconic-register-ability-select'     =&gt; array(
           'type'    =&gt; 'select',
           'class'   =&gt; array('iconic-register-ability-select'), 	             
          
           'label'   =&gt; __( '골프수준 선택', 'iconic' ),
           'options' =&gt; array(
 //              '' =&gt; __( '90이상', 'iconic' ),

               2  =&gt; __( '90이상', 'iconic' ),
               1  =&gt; __( '100이상', 'iconic' ),
               3  =&gt; __( '80이상', 'iconic' ),
               4  =&gt; __( '70대', 'iconic' ),                        
		    ),
			'required' =&gt; false,
		),

        $checked = $checkout-&gt;get_value( 'iconic-register-checkboxes-required' ) ? $checkout-&gt;get_value( 'iconic-register-checkboxes-required' ) : 1,

		'iconic-register-checkboxes-required' =&gt; array(
			'type'     =&gt; 'checkboxes', 
            'class'    =&gt; array('iconic-register-checkboxes-required'), 			
			'label'    =&gt; __( '가입 필수 동의 사항', 'iconic' ),
			'options'  =&gt; array(
				1 =&gt; __( '[필수] 만 14세 이상 확인', 'iconic' ),
				2 =&gt; __( '[필수] &lt;a href="https://ownergolf.net/privacy-policy/" target="_blank"&gt;개인보호정책&lt;/a&gt; 및 &lt;a href="https://ownergolf.net/terms-of-service/" target="_blank"&gt;이용 약관&lt;/a&gt; 동의', 'iconic' ),

				3 =&gt; __( '[필수] 사용 경험 강화를 위한 &lt;a href="https://ownergolf.net/위치-정보-이용-정책/" target="_blank"&gt;위치 정보 이용&lt;/a&gt; 동의', 'iconic' ),		
				4 =&gt; __( '[필수] 서비스 관련 메일/SMS 등 &lt;a href="https://ownergolf.net/커뮤니케이션-정책/" target="_blank"&gt;커뮤니케이션&lt;/a&gt; 동의', 'iconic' ),							
			),
			'required' =&gt; true, 

		), $checked ),

		'iconic-register-checkboxes-option' =&gt; array(
			'type'     =&gt; 'checkboxes', 'checked',
			
            'class'    =&gt; array('iconic-register-checkboxes-option'), 		
			'label'    =&gt; __( '가입 선택 동의 사항', 'iconic' ),
			'options'  =&gt; array(

				1 =&gt; __( '[선택] 마케팅 정보 제공 &lt;a href="https://ownergolf.net/커뮤니케이션-정책/" target="_blank"&gt;메일/SMS 등 수신&lt;/a&gt; 동의', 'iconic' ),	
				2 =&gt; __( '[선택] 새로운 서비스를 위한 &lt;a href="https://ownergolf.net/제3자-개인-정보-제공-정책/" target="_blank"&gt;제3자 개인 정보 제공&lt;/a&gt; 동의', 'iconic' ),				
			),
			'required' =&gt; false,
		),

	) );
}</code></pre>

<p>감사합니다.</p>

<p> </p>]]></description>
			<author>꿈꾸는섬</author>
			<pubDate>Mon, 02 Sep 2019 11:52:46 +0000</pubDate>
			<category>PHP 프로그래밍</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요~^^

올려주신 코드를 확인해보니

우커머스 플러그인 woocommerce_form_field 함수를 활용하...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/36507</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>올려주신 코드를 확인해보니</p>

<p>우커머스 플러그인 woocommerce_form_field 함수를 활용하고 있는 듯합니다.</p>

<p>woocommerce_form_field 함수를 활용해서 체크박스를 추가할 때</p>

<p>페이지 로드 시 체크되도록 하는 방법은</p>

<p>아래의 링크를 참고해보시겠어요?</p>

<p><a href="https://wordpress.stackexchange.com/questions/108553/woocommerce-checkout-page-custom-checkbox-ticked" target="_blank">https://wordpress.stackexchange.com/questions/108553/woocommerce-checkout-page-custom-checkbox-ticked</a></p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Mon, 02 Sep 2019 06:31:28 +0000</pubDate>
			<category>PHP 프로그래밍</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요?

1. 위 질문에서 코드를 인용했지만 checkbox 형식입니다.

   다만 일반적으로 보는 방식...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/36491</link>
			<description><![CDATA[<p>안녕하세요?</p>

<p>1. 위 질문에서 코드를 인용했지만 checkbox 형식입니다.</p>

<p>   다만 일반적으로 보는 방식이 아니라서 checked를 러디에 넣어야 하는지를 몰라서 질문한 것입니다.</p>

<p>2. 별로 플러그인으로 만들지 않았습니다.  맨 아래 코드를 인용할께요.</p>

<p>   다른 질문에서도 참고가 되는 내용입니다.</p>

<p>   아래 코드를 적용했습니다.</p>

<pre>
<code class="language-php">&lt;?php
/*
Plugin Name: WooCommerce Custom Account Fields
Plugin URI: https://iconicwp.com/blog/the-ultimate-guide-to-adding-custom-woocommerce-user-account-fields/
Description: Add custom WooCommerce user account fields.
Author: Iconic
Version: 1.0.0
Author URI: https://iconicwp.com/products/
*/

/**
 * Get additional account fields.
 *
 * @return array
 */
function iconic_get_account_fields() {
	return apply_filters( 'iconic_account_fields', array(
		'first_name'                 =&gt; array(
			'type'                 =&gt; 'text',
			'label'                =&gt; __( '이름', 'iconic' ),
            'placeholder'          =&gt; __( '성+이름 추천해요', 'iconic' ),			
			'hide_in_account'      =&gt; false,
			'hide_in_admin'        =&gt; false,
			'hide_in_checkout'     =&gt; false,
			'hide_in_registration' =&gt; false,
			'required'             =&gt; true,
		),

		'user_phone'                 =&gt; array(
			'type'                 =&gt; 'tel',
			'label'                =&gt; __( '전화번호', 'iconic' ),
            'placeholder'          =&gt; __( '주연락 휴대 전화번호', 'iconic' ),			
			'hide_in_account'      =&gt; false,
			'hide_in_admin'        =&gt; false,
			'hide_in_checkout'     =&gt; false,
			'hide_in_registration' =&gt; false,
			'required'             =&gt; true,
		),		


		'iconic-register-region-select'     =&gt; array(
           'type'    =&gt; 'select',
           'class'   =&gt; 'iconic-register-region-select',           
           'label'   =&gt; __( '활동지역 선택', 'iconic' ),
           'options' =&gt; array(
 //              '' =&gt; __( '서울시', 'iconic' ),
               1  =&gt; __( '서울시', 'iconic' ),
               2  =&gt; __( '인천시', 'iconic' ),
               3  =&gt; __( '경기도 북부', 'iconic' ),
               4  =&gt; __( '경기도 남부', 'iconic' ),
               5  =&gt; __( '충북', 'iconic' ),
               6  =&gt; __( '충남', 'iconic' ),
               7  =&gt; __( '경북', 'iconic' ),
               8  =&gt; __( '경남', 'iconic' ),
               9  =&gt; __( '전북', 'iconic' ),
               10  =&gt; __( '전남', 'iconic' ), 
               11  =&gt; __( '제주', 'iconic' ),                          
		    ),
			'required' =&gt; false,
		),

		'iconic-register-ability-select'     =&gt; array(
           'type'    =&gt; 'select',
           'class'   =&gt; 'iconic-register-ability-select',             
           'label'   =&gt; __( '골프수준 선택', 'iconic' ),
           'options' =&gt; array(
 //              '' =&gt; __( '90이상', 'iconic' ),

               2  =&gt; __( '90이상', 'iconic' ),
               1  =&gt; __( '100이상', 'iconic' ),
               3  =&gt; __( '80이상', 'iconic' ),
               4  =&gt; __( '70대', 'iconic' ),                        
		    ),
			'required' =&gt; false,
		),

		'iconic-register-checkboxes-required' =&gt; array(
			'type'     =&gt; 'checkboxes', 'checked',
			
			'label'    =&gt; __( '가입 필수 동의 사항', 'iconic' ),
			'options'  =&gt; array(
				1 =&gt; __( '[필수] 만 14세 이상 확인', 'iconic' ),
				2 =&gt; __( '[필수] &lt;a href="https://ownergolf.net/privacy-policy/" target="_blank"&gt;개인보호정책&lt;/a&gt; 및 &lt;a href="https://ownergolf.net/terms-of-service/" target="_blank"&gt;이용 약관&lt;/a&gt; 동의', 'iconic' ),

				3 =&gt; __( '[필수] 사용 경험 강화를 위한 &lt;a href="https://ownergolf.net/위치-정보-이용-정책/" target="_blank"&gt;위치 정보 이용&lt;/a&gt; 동의', 'iconic' ),		
				4 =&gt; __( '[필수] 서비스 관련 메일/SMS 등 &lt;a href="https://ownergolf.net/커뮤니케이션-정책/" target="_blank"&gt;커뮤니케이션&lt;/a&gt; 동의', 'iconic' ),							
			),
			'required' =&gt; true,
		),

		'iconic-register-checkboxes-option' =&gt; array(
			'type'     =&gt; 'checkboxes', 'checked',
			
	
			'label'    =&gt; __( '가입 선택 동의 사항', 'iconic' ),
			'options'  =&gt; array(

				1 =&gt; __( '[선택] 마케팅 정보 제공 &lt;a href="https://ownergolf.net/커뮤니케이션-정책/" target="_blank"&gt;메일/SMS 등 수신&lt;/a&gt; 동의', 'iconic' ),	
				2 =&gt; __( '[선택] 새로운 서비스를 위한 &lt;a href="https://ownergolf.net/제3자-개인-정보-제공-정책/" target="_blank"&gt;제3자 개인 정보 제공&lt;/a&gt; 동의', 'iconic' ),				
			),
			'required' =&gt; false,
		),

	) );
}

/**
 * Add post values to account fields if set.
 * @param array $fields
 * @return array
 */
function iconic_add_post_data_to_account_fields( $fields ) {
	if ( empty( $_POST ) ) {
		return $fields;
	}

	foreach ( $fields as $key =&gt; $field_args ) {
		if ( empty( $_POST[ $key ] ) ) {
			$fields[ $key ]['value'] = '';
			continue;
		}

		$fields[ $key ]['value'] = $_POST[ $key ];
	}

	return $fields;
}

add_filter( 'iconic_account_fields', 'iconic_add_post_data_to_account_fields', 10, 1 );

/**
 * Add fields to registration form and account area.
 */
function iconic_print_user_frontend_fields() {
	$fields            = iconic_get_account_fields();
	$is_user_logged_in = is_user_logged_in();

	foreach ( $fields as $key =&gt; $field_args ) {
		$value = null;

		if ( ! iconic_is_field_visible( $field_args ) ) {
			continue;
		}

		if ( $is_user_logged_in ) {
			$user_id = iconic_get_edit_user_id();
			$value   = iconic_get_userdata( $user_id, $key );
		}

		$value = isset( $field_args['value'] ) ? $field_args['value'] : $value;

		woocommerce_form_field( $key, $field_args, $value );
	}
}

add_action( 'woocommerce_register_form', 'iconic_print_user_frontend_fields', 10 ); // register form
add_action( 'woocommerce_edit_account_form', 'iconic_print_user_frontend_fields', 10 ); // my account

/**
 * Get user data.
 *
 * @param $user_id
 * @param $key
 *
 * @return mixed|string
 */
function iconic_get_userdata( $user_id, $key ) {
	if ( ! iconic_is_userdata( $key ) ) {
		return get_user_meta( $user_id, $key, true );
	}

	$userdata = get_userdata( $user_id );

	if ( ! $userdata || ! isset( $userdata-&gt;{$key} ) ) {
		return '';
	}

	return $userdata-&gt;{$key};
}

/**
 * Modify checkboxes/radio fields.
 *
 * @param $field
 * @param $key
 * @param $args
 * @param $value
 *
 * @return string
 */
function iconic_form_field_modify( $field, $key, $args, $value ) {
	ob_start();
	iconic_print_list_field( $key, $args, $value );
	$field = ob_get_clean();

	if ( $args['return'] ) {
		return $field;
	} else {
		echo $field;
	}
}

add_filter( 'woocommerce_form_field_checkboxes', 'iconic_form_field_modify', 10, 4 );
add_filter( 'woocommerce_form_field_radio', 'iconic_form_field_modify', 10, 4 );

/**
 * Get currently editing user ID (frontend account/edit profile/edit other user).
 *
 * @return int
 */
function iconic_get_edit_user_id() {
	return isset( $_GET['user_id'] ) ? (int) $_GET['user_id'] : get_current_user_id();
}

/**
 * Print a list field (checkboxes|radio).
 *
 * @param string $key
 * @param array  $field_args
 * @param mixed  $value
 */
function iconic_print_list_field( $key, $field_args, $value = null ) {
	$value = empty( $value ) &amp;&amp; $field_args['type'] === 'checkboxes' ? array() : $value;
	?&gt;
	&lt;div class="form-row"&gt;
		&lt;?php if ( ! empty( $field_args['label'] ) ) { ?&gt;
			&lt;label&gt;
				&lt;?php echo $field_args['label']; ?&gt;
				&lt;?php if ( ! empty( $field_args['required'] ) ) { ?&gt;
					&lt;abbr class="required" title="&lt;?php echo esc_attr__( 'required', 'woocommerce' ); ?&gt;"&gt;*&lt;/abbr&gt;
				&lt;?php } ?&gt;
			&lt;/label&gt;
		&lt;?php } ?&gt;
		&lt;ul&gt;
			&lt;?php foreach ( $field_args['options'] as $option_value =&gt; $option_label ) {
				$id         = sprintf( '%s_%s', $key, sanitize_title_with_dashes( $option_label ) );
				$option_key = $field_args['type'] === 'checkboxes' ? sprintf( '%s[%s]', $key, $option_value ) : $key;
				$type       = $field_args['type'] === 'checkboxes' ? 'checkbox' : $field_args['type'];
				$checked    = $field_args['type'] === 'checkboxes' ? in_array( $option_value, $value ) : $option_value == $value;
				?&gt;
				&lt;li&gt;
					&lt;label for="&lt;?php echo esc_attr( $id ); ?&gt;"&gt;
						&lt;input type="&lt;?php echo esc_attr( $type ); ?&gt;" id="&lt;?php echo esc_attr( $id ); ?&gt;" name="&lt;?php echo esc_attr( $option_key ); ?&gt;" value="&lt;?php echo esc_attr( $option_value ); ?&gt;" &lt;?php checked( $checked ); ?&gt;&gt;
						&lt;?php echo $option_label; ?&gt;
					&lt;/label&gt;
				&lt;/li&gt;
			&lt;?php } ?&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;?php
}

/**
 * Save registration fields.
 *
 * @param int $customer_id
 */
function iconic_save_account_fields( $customer_id ) {
	$fields         = iconic_get_account_fields();
	$sanitized_data = array();

	foreach ( $fields as $key =&gt; $field_args ) {
		if ( ! iconic_is_field_visible( $field_args ) ) {
			continue;
		}

		$sanitize = isset( $field_args['sanitize'] ) ? $field_args['sanitize'] : 'wc_clean';
		$value    = isset( $_POST[ $key ] ) ? call_user_func( $sanitize, $_POST[ $key ] ) : '';

		if ( iconic_is_userdata( $key ) ) {
			$sanitized_data[ $key ] = $value;
			continue;
		}

		update_user_meta( $customer_id, $key, $value );
	}

	if ( ! empty( $sanitized_data ) ) {
		$sanitized_data['ID'] = $customer_id;
		wp_update_user( $sanitized_data );
	}
}

add_action( 'woocommerce_created_customer', 'iconic_save_account_fields' ); // register/checkout
add_action( 'personal_options_update', 'iconic_save_account_fields' ); // edit own account admin
add_action( 'edit_user_profile_update', 'iconic_save_account_fields' ); // edit other account
add_action( 'woocommerce_save_account_details', 'iconic_save_account_fields' ); // edit WC account

/**
 * Is this field core user data.
 *
 * @param $key
 *
 * @return bool
 */
function iconic_is_userdata( $key ) {
	$userdata = array(
		'user_pass',
		'user_login',
		'user_nicename',
		'user_url',
		'user_phone',
		'user_email',
		'display_name',
		'nickname',
		'first_name',
		'last_name',
		'description',
		'rich_editing',
		'user_registered',
		'role',
		'jabber',
		'aim',
		'yim',
		'show_admin_bar_front',
	);

	return in_array( $key, $userdata );
}

/**
 * Is field visible.
 *
 * @param $field_args
 *
 * @return bool
 */
function iconic_is_field_visible( $field_args ) {
	$visible = true;
	$action  = filter_input( INPUT_POST, 'action' );

	if ( is_admin() &amp;&amp; ! empty( $field_args['hide_in_admin'] ) ) {
		$visible = false;
	} elseif ( ( is_account_page() || $action === 'save_account_details' ) &amp;&amp; is_user_logged_in() &amp;&amp; ! empty( $field_args['hide_in_account'] ) ) {
		$visible = false;
	} elseif ( ( is_account_page() || $action === 'save_account_details' ) &amp;&amp; ! is_user_logged_in() &amp;&amp; ! empty( $field_args['hide_in_registration'] ) ) {
		$visible = false;
	} elseif ( is_checkout() &amp;&amp; ! empty( $field_args['hide_in_checkout'] ) ) {
		$visible = false;
	}

	return $visible;
}

/**
 * Add fields to admin area.
 */
function iconic_print_user_admin_fields() {
	$fields = iconic_get_account_fields();
	?&gt;
	&lt;h2&gt;&lt;?php _e( 'Additional Information', 'iconic' ); ?&gt;&lt;/h2&gt;
	&lt;table class="form-table" id="iconic-additional-information"&gt;
		&lt;tbody&gt;
		&lt;?php foreach ( $fields as $key =&gt; $field_args ) { ?&gt;
			&lt;?php
			if ( ! iconic_is_field_visible( $field_args ) ) {
				continue;
			}

			$user_id = iconic_get_edit_user_id();
			$value   = iconic_get_userdata( $user_id, $key );
			?&gt;
			&lt;tr&gt;
				&lt;th&gt;
					&lt;label for="&lt;?php echo $key; ?&gt;"&gt;&lt;?php echo $field_args['label']; ?&gt;&lt;/label&gt;
				&lt;/th&gt;
				&lt;td&gt;
					&lt;?php $field_args['label'] = false; ?&gt;
					&lt;?php woocommerce_form_field( $key, $field_args, $value ); ?&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
		&lt;?php } ?&gt;
		&lt;/tbody&gt;
	&lt;/table&gt;
	&lt;?php
}

add_action( 'show_user_profile', 'iconic_print_user_admin_fields', 30 ); // admin: edit profile
add_action( 'edit_user_profile', 'iconic_print_user_admin_fields', 30 ); // admin: edit other users

/**
 * Validate fields on frontend.
 *
 * @param WP_Error $errors
 *
 * @return WP_Error
 */
function iconic_validate_user_frontend_fields( $errors ) {
	$fields = iconic_get_account_fields();

	foreach ( $fields as $key =&gt; $field_args ) {
		if ( empty( $field_args['required'] ) ) {
			continue;
		}

		if ( ! isset( $_POST['register'] ) &amp;&amp; ! empty( $field_args['hide_in_account'] ) ) {
			continue;
		}

		if ( isset( $_POST['register'] ) &amp;&amp; ! empty( $field_args['hide_in_registration'] ) ) {
			continue;
		}

		if ( empty( $_POST[ $key ] ) ) {
			$message = sprintf( __( '%s is a required field.', 'iconic' ), '&lt;strong&gt;' . $field_args['label'] . '&lt;/strong&gt;' );
			$errors-&gt;add( $key, $message );
		}
	}

	return $errors;
}

add_filter( 'woocommerce_registration_errors', 'iconic_validate_user_frontend_fields', 10 );
add_filter( 'woocommerce_save_account_details_errors', 'iconic_validate_user_frontend_fields', 10 );

/**
 * Show fields at checkout.
 */
function iconic_checkout_fields( $checkout_fields ) {
	$fields = iconic_get_account_fields();

	foreach ( $fields as $key =&gt; $field_args ) {
		if ( ! iconic_is_field_visible( $field_args ) ) {
			continue;
		}

		// Make sure our fields have a default priority so
		// no error is thrown when sorting them.
		$field_args['priority'] = isset( $field_args['priority'] ) ? $field_args['priority'] : 0;

		$checkout_fields['account'][ $key ] = $field_args;
	}

	// Default password field has no priority which throws an
	// error when it tries to order the fields by priority.
	if ( ! empty( $checkout_fields['account']['account_password'] ) &amp;&amp; ! isset( $checkout_fields['account']['account_password']['priority'] ) ) {
		$checkout_fields['account']['account_password']['priority'] = 0;
	}

	return $checkout_fields;
}

add_filter( 'woocommerce_checkout_fields', 'iconic_checkout_fields', 10, 1 );</code></pre>

<p> </p>]]></description>
			<author>꿈꾸는섬</author>
			<pubDate>Mon, 02 Sep 2019 03:00:04 +0000</pubDate>
			<category>PHP 프로그래밍</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요~^^

회원가입 페이지는 별도로 만드신 건지요?

워드프레스 사이트에서 플러그인을 활용해서...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/36477</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>회원가입 페이지는 별도로 만드신 건지요?</p>

<p>워드프레스 사이트에서 플러그인을 활용해서 회원가입 페이지를 만드셨다면</p>

<p>어떤 플러그인을 사용 중이신지도 알려주시겠어요?</p>

<p> </p>

<p>checked 속성은 html 태그 중 input 타입이 chexkbox인 태그에 적용하실 수 있습니다.</p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Mon, 02 Sep 2019 01:05:52 +0000</pubDate>
			<category>PHP 프로그래밍</category>
		</item>
			</channel>
</rss>