우커머스 – 계정 페이지에서 성 필드 제거하기

우커머스 2.6 버전의 내 계정에 계정 상세 페이지가 추가되었습니다. 국내에서는 “성” 필드를 따로 사용하지 않기 때문에 어색해 보입니다. 우커머스의 템플릿 파일을 이용하는데, 액션이나 필터를 통해서는 필드 편집이 불가능하게 되어 있습니다. 필드 중 “성” 필드를 제거하는 방법에 대해 안내해드립니다.

우커머스 호완 테마를 사용하고 있다면, 우커머스의 기본 템플릿을 테마로 복사하여 수정했을 수 있습니다. 테마의 woocommerce/myaccount/form-edit-account.php 파일을 아래와 같이 수정합니다.

수정 전

<!-- wp:paragraph -->
<p>&lt;p class="woocommerce-FormRow woocommerce-FormRow--first form-row form-row-first"><br>&lt;label for="account_first_name">&lt;?php _e( 'First name', 'woocommerce' ); ?> &lt;span class="required">*&lt;/span>&lt;/label><br>&lt;input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_first_name" id="account_first_name" value="&lt;?php echo esc_attr( $user->first_name ); ?>" /><br>&lt;/p><br>&lt;p class="woocommerce-FormRow woocommerce-FormRow--last form-row form-row-last"><br>&lt;label for="account_last_name">&lt;?php _e( 'Last name', 'woocommerce' ); ?> &lt;span class="required">*&lt;/span>&lt;/label><br>&lt;input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_last_name" id="account_last_name" value="&lt;?php echo esc_attr( $user->last_name ); ?>" /><br>&lt;/p><br>&lt;div class="clear">&lt;/div></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&lt;p class="woocommerce-FormRow woocommerce-FormRow--wide form-row form-row-wide"><br>&lt;label for="account_email">&lt;?php _e( 'Email address', 'woocommerce' ); ?> &lt;span class="required">*&lt;/span>&lt;/label><br>&lt;input type="email" class="woocommerce-Input woocommerce-Input--email input-text" name="account_email" id="account_email" value="&lt;?php echo esc_attr( $user->user_email ); ?>" /><br>&lt;/p></p>
<!-- /wp:paragraph -->

수정 후

<p class="woocommerce-FormRow woocommerce-FormRow--first form-row form-row-wide">
<label for="account_first_name"><?php _e( 'First name', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_first_name" id="account_first_name" value="<?php echo esc_attr( $user->first_name ); ?>" />
</p>
<div class="clear"></div>

<p class="woocommerce-FormRow woocommerce-FormRow--wide form-row form-row-wide">
<label for="account_email"><?php _e( 'Email address', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="email" class="woocommerce-Input woocommerce-Input--email input-text" name="account_email" id="account_email" value="<?php echo esc_attr( $user->user_email ); ?>" />
</p>

만약 테마에 woocommerce/myaccount/form-edit-account.php 파일이 없을 경우에는 우커머스의 템플릿 파일 wp-content/plugins/woocommerce/templates/myaccount/form-edit-account.php을 복사한 다음 위와 같이 수정하십시오.

“성” 필드가 필수 입력 항목으로 되어 있어서 필수 입력 항목 중 “성” 필드를 제외시켜야 합니다. 테마의 functions.php 파일에 다음 내용을 추가하십시오.

add_filter('woocommerce_save_account_details_required_fields', 'woocommerce_save_account_details_required_fields', 10, 1);
function woocommerce_save_account_details_required_fields($fields = array()) {
unset($fields['account_last_name']);
return $fields;
}

위와 같이 코드를 수정하면 “성” 필드를 제거할 수 있고, 저장 시 “성” 필드에 대한 필수 입력 여부도 체크하지 않습니다.