커스텀 필드 추가 방법

결제 페이지에 원하는 입력 항목을 추가하고, 커스텀 코드를 추가하여 해당 값을 우커머스 주문 메타와 주문 메모에 저장하는 방법에 대해 설명합니다.

샘플 코드 활용하여 커스텀 필드 추가하기 #

  1. 입력 항목 추가 #

    pgall-for-woocommerce/templates/checkout/pafw/payment-fields.php 경로에 있는 파일을 차일드 테마/woocommerce/checkout/pafw로 복사합니다.
    복사한 파일에 커스텀 필드를 추가합니다. (샘플 코드 참고)
    위치 : <p class=”form-row form-row-wide mshop_addr_title mshop-enable-kr”>를 찾아 해당 p태그의 위 또는 아래에 추가합니다.
    참고 : * order_title : 정보입력 / order_amount : 금액

    <p class="form-row form-row-wide mshop-enable-kr" id="custom_field_1">
        <label for="custom_field_1" class=""><?php _e('커스텀 필드 #1','##PKGNAME##'); ?></abbr></label>
        <span class="woocommerce-input-wrapper">
            <input type="email" class="input-text " name="custom_field_1" id="custom_field_1" placeholder="">
        </span>
    </p>
  2. 입력한 값을 주문에 저장하는 커스텀 코드 #

    커스텀 필드의 값이 주문 메모에 저장이 되도록 차일드 테마의 functions.php에 추가합니다. (샘플 코드 참고)

    function custom_update_simple_pay_order( $order_id, $data ) {
    $order = wc_get_order( $order_id );
    $order->update_meta_data( '_custom_field_1', pafw_get( $_REQUEST, 'custom_field_1' ) );
    $order->update_meta_data( '_custom_field_2', pafw_get( $_REQUEST, 'custom_field_2' ) );
    $order->add_order_note( sprintf( 'CUSTOM FIELD #1 : %s, CUSTOM FIELD #2 : %s', pafw_get( $_REQUEST, 'custom_field_1' ), pafw_get( $_REQUEST, 'custom_field_2' ) ) );
    }
    add_action( 'woocommerce_checkout_update_order_meta', 'custom_update_simple_pay_order', 10, 2 );

동작 확인 #

위 샘플 코드를 그대로 추가하면, 아래 이미지와 같은 내용을 확인할 수 있습니다.