배송지 목록의 미리보기 정보 변경하기

본 매뉴얼은 엠샵 주소 체크아웃 플러그인을 통해 직접 생성하신 청구지 필드가 DIY 체크아웃의 배송지 목록에서 보이지 않는 경우 대처 방법에 대해 설명합니다.
차일드 테마의 functions.php 파일에 아래 커스텀 코드를 추가해 주시기 바랍니다.

/wp-contnet/theme/이용중인 차일드 테마/functions.php 경로에 아래 커스텀 코드를 추가합니다.

(주의) 본 테마에 적용할 경우, 추후 테마 업데이트 시 작업한 내역이 삭제되므로 차일드 테마에 작업하는 것을 권장드립니다.
본 테마에 작업하실 경우 테마 업데이트 전 반드시 커스텀 작업 내역을 백업 후 업데이트 해주시기 바랍니다.

샘플 코드들에서는 billing_sample 이라는 필드에 입력된 값을 배송지 목록의 상단 부분에 출력되도록 구성되어 있습니다.

실제 코드 적용 시에는 billing_sample 대신 직접 추가하신 필드의 아이디 값을 추가해주시기 바랍니다.

예시 : 이미지와 같이 커스텀 필드를 추가한 경우, billing_sample 영역에 job_type을 추가합니다.

function custom_msaddr_billing_address_book_formatted( $address, $billing ) {
    $address = array_merge( $address,
        array(
            //추가하신 필드 중, 배송지 목록에서 미리 보여질 정보의 필드 아이디를 입력합니다.
            'billing_sample'    => $billing['billing_sample'],
        )
    );
    return $address;
}
add_filter( 'msaddr_billing_address_book_formatted_address', 'custom_msaddr_billing_address_book_formatted', 10, 2);
function custom_formatted_address_replacements( $replacements, $args ) {
    //위에서 정한 필드값을 리턴시켜줍니다.
    $billing_sample = ! empty( $args['billing_sample'] ) ? $args['billing_sample'] : '';

    $replacements['{billing_sample}'] = $billing_sample;

    return $replacements;
}
add_filter( 'woocommerce_formatted_address_replacements', 'custom_formatted_address_replacements', 10, 2 );
function custom_change_us_address_format( $formats ) {
    if ( apply_filters( 'msaddr_is_address_book', false ) ) {
        //배송지 목록에서 보여질 포맷을 정합니다.
        $formats[ 'KR' ] = "<div class='shipping-info'>{billing_sample}<p class='name'>\n{name}</p><p class='phone'><span class='phone'>{phone}</span><span class='email'>{email}</span></p><p class='address'>({postcode}) {address_1}{address_2}{city}{state}{country}</p><<div>;"
    } else if ( ! is_admin() ) {
        $formats[ 'KR' ] = "{name}\n{company}\n{address_1}\n{address_2}\n{city}\n{state}\n{postcode}\n{country}\n{shipping_phone}\n{shipping_email}";
    }
    return $formats;
}
add_filter( 'woocommerce_localisation_address_formats', 'custom_change_us_address_format' );