우커머스 성 이름 순서변경, 쓸데없는거 빼기

워드프레스에서 결제를 위해선 우커머스 플러그인을 사용하는게 가장 쉬운 방법인데, 외국애들이 쓰는거라 이름,성 순서로 되어있다. 게다가 입력정보도 한국 정서와 많이 다르고.

나같은 경우는 결제만 되면 되고 다른 정보는 필요없기에 다 없애려고 하는데, 한국 PG사 결제정책상 이메일이랑 폰번호는 꼭 필요하다고 한다. 그래서 그것만 남겨두기 위해서 자식테마의 functions.php 파일을 좀 수정을 했다.

//성이름으로 순서 변경
add_filter( 'woocommerce_checkout_fields' , 'hj_reorder_woocommerce_fields');
function hj_reorder_woocommerce_fields($fields){
$fields2['billing']['billing_last_name'] = $fields['billing']['billing_last_name'];
$fields2['billing']['billing_first_name'] = $fields['billing']['billing_first_name'];
$fields2['billing']['billing_phone'] = $fields['billing']['billing_phone'];
$fields2['billing']['billing_email'] = $fields['billing']['billing_email'];
$fields2['billing']['billing_company'] = $fields['billing']['billing_company'];
$fields2['billing']['billing_address_1'] = $fields['billing']['billing_address_1'];
$fields2['billing']['billing_address_2'] = $fields['billing']['billing_address_2'];
$fields2['billing']['billing_city'] = $fields['billing']['billing_city'];
$fields2['billing']['billing_postcode'] = $fields['billing']['billing_postcode'];
$fields2['billing']['billing_country'] = $fields['billing']['billing_country'];
$fields2['order'] = $fields['order'];

return $fields2;
}

자식테마 functions.php 에 이 코드를 추가하면 이름과 성 순서가 변경된다.
그리고 $fields2 를 받아서 안보이게 하고 싶은 것들은 이렇게.

// 결제시 폰번호말고 나머지것들 삭제
add_filter( 'woocommerce_checkout_fields' , 'woo_remove_billing_checkout_fields1');
function woo_remove_billing_checkout_fields1( $fields2) {
  global $woocommerce;
    
    $products = $woocommerce->cart->get_cart();
    if(woo_cart_has_virtual_product()) {
      
      unset($fields2['billing']['billing_company']);
      unset($fields2['billing']['billing_address_1']);
      unset($fields2['billing']['billing_address_2']);
      unset($fields2['billing']['billing_city']);
      unset($fields2['billing']['billing_postcode']);
      unset($fields2['billing']['billing_country']);
      unset($fields2['billing']['billing_state']);
//       unset($fields2['billing']['billing_phone']);
      unset($fields2['billing']['billing_address_2']);
      unset($fields2['billing']['billing_postcode']);
      unset($fields2['billing']['billing_company']);
      unset($fields2['billing']['billing_city']);
    }
    
    return $fields2;
};

사실 우커머스 플러그인을 직접 수정하면 훨씬 쉽고 간편하지만 그럼 업데이트 될때마다 수정해야 하는 번거로움이 생긴다.
그렇다고 결제 문제니까 보안상 업뎃안할수도 없고.

그건 그렇고 자식테마 functions.php 에 php테그를 닫으니 작동이 안되는 함수들이 생긴다. 왜그러지.ㅋ
아는게 별로 없으니까 사소한 문제 하나 발생해도 시간이 꽤 걸린다.ㅠㅠ

“우커머스 성 이름 순서변경, 쓸데없는거 빼기”의 2개의 생각

  1. Edit Account 페이지에서 last_name 을 unset 시키는 법을 혹시 아시는지요? 검색해봐도 체크아웃 페이지만 올라와 있어서 난감하네요.

의견을 남겨주세용