우커머스 – 계정 페이지에서 성 필드 제거하기
우커머스 2.6 버전의 내 계정에 계정 상세 페이지가 추가되었습니다. 국내에서는 “성” 필드를 따로 사용하지 않기 때문에 어색해 보입니다. 우커머스의 템플릿 파일을 이용하는데, 액션이나 필터를 통해서는 필드 편집이 불가능하게 되어 있습니다. 필드 중 “성” 필드를 제거하는 방법에 대해 안내해드립니다.
우커머스 호완 테마를 사용하고 있다면, 우커머스의 기본 템플릿을 테마로 복사하여 수정했을 수 있습니다. 테마의 woocommerce/myaccount/form-edit-account.php
파일을 아래와 같이 수정합니다.
수정 전
<!-- wp:paragraph -->
<p><p class="woocommerce-FormRow woocommerce-FormRow--first form-row form-row-first"><br><label for="account_first_name"><?php _e( 'First name', 'woocommerce' ); ?> <span class="required">*</span></label><br><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 ); ?>" /><br></p><br><p class="woocommerce-FormRow woocommerce-FormRow--last form-row form-row-last"><br><label for="account_last_name"><?php _e( 'Last name', 'woocommerce' ); ?> <span class="required">*</span></label><br><input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_last_name" id="account_last_name" value="<?php echo esc_attr( $user->last_name ); ?>" /><br></p><br><div class="clear"></div></p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p><p class="woocommerce-FormRow woocommerce-FormRow--wide form-row form-row-wide"><br><label for="account_email"><?php _e( 'Email address', 'woocommerce' ); ?> <span class="required">*</span></label><br><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 ); ?>" /><br></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;
}
위와 같이 코드를 수정하면 “성” 필드를 제거할 수 있고, 저장 시 “성” 필드에 대한 필수 입력 여부도 체크하지 않습니다.