훅을 이용하여 원하는 상황에 맞게 커스텀하여 이용할 수 있습니다.

커스텀 코드를 참고하여 /wp-content/themes/차일드 테마/functions.php 에 추가합니다.

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

mnp_custom_order_data #

  1. 설명 #

    네이버페이 주문 등록 시 커스텀 정보를 추가할 수 있습니다.
    추가된 커스텀 정보는 네이버페이 주문 완료 후 주문 생성시 주문 메타로 자동 저장됩니다.
    주문 메타에 저장될때 키값은 ‘_’ + 키값으로 저장됩니다. 예를 들어, 커스텀 정보의 키값이 “param1″인 경우, 주문 메타에 저장될때의 키값은 “_param1″으로 저장됩니다.

  2. 사용 방법 #

    add_filter( 'mnp_custom_order_data', 'my_mnp_custom_order_data' );
  3. 예제 #

    add_filter( 'mnp_custom_order_data', 'my_mnp_custom_order_data' );
    
    /**
     * @param array $order_data
     *
     * @return mixed
     */
    function my_mnp_custom_order_data( $order_data ) {
        $order_data['param1'] = 'value1';
    
        return $order_data;
    }

mnp_before_create_npay_order, mnp_after_create_npay_order #

  1. 설명 #

    고객이 네이버페이로 결제시 결제내역이 가맹점에 콜백으로 전달됩니다.
    콜백을 수신한 후 네이버페이 결제건에 대한 우커머스 주문을 생성할때 호출됩니다.

  2. 사용 방법 #

    add_action( 'mnp_before_create_npay_order', 'my_mnp_before_create_npay_order');
    add_action( 'mnp_after_create_npay_order', 'my_mnp_after_create_npay_order', 10, 2);
  3. 예제 #

    add_action( 'mnp_before_create_npay_order', 'my_mnp_before_create_npay_order' );
    
    /**
     * @param array $npay_orders
     */
    function my_mnp_before_create_npay_order( $npay_orders ) {
        /** Do something.... */
    }
    
    add_action( 'mnp_after_create_npay_order', 'my_mnp_after_create_npay_order', 10, 2 );
    
    /**
     * @param WC_Order $order
     * @param array $npay_orders
     */
    function my_mnp_after_create_npay_order( $order, $npay_orders ) {
        if ( $order && ! empty( $npay_orders ) ) {
            $params     = array();
            $npay_order = $npay_orders[0];
            if ( property_exists( $npay_order->ProductOrder, 'MerchantCustomCode2' ) ) {
    
                parse_str( $npay_order->ProductOrder->MerchantCustomCode2, $params );
         
                /** $params 배열에 mnp_custom_order_data 필터로 추가한 값들이 저장됩니다. */
            }
        }
    }

mnp_before_refresh_npay_order, mnp_after_refresh_npay_order #

  1. 설명 #

    우커머스 주문 상세 화면에서 “주문정보 새로고침” 버튼 클릭 시, 네이버페이의 최신 주문 정보를 기반으로 우커머스 주문을 갱신합니다.
    주문 정보를 갱신할 때 호출됩니다.

  2. 사용 방법 #

    add_action( 'mnp_before_refresh_npay_order', 'my_mnp_before_refresh_npay_order');
    add_action( 'mnp_after_refresh_npay_order', 'my_mnp_after_refresh_npay_order', 10, 2);
  3. 예제 #

    add_action( 'mnp_before_refresh_npay_order', 'my_mnp_before_refresh_npay_order' );
    
    /**
     * @param WC_Order $order
     */
    function my_mnp_before_create_npay_order( $order ) {
        /** Do something.... */
    }
    
    add_action( 'mnp_after_refresh_npay_order', 'my_mnp_after_refresh_npay_order', 10, 2 );
    
    /**
     * @param WC_Order $order
     * @param array $npay_orders
     */
    function my_mnp_after_create_npay_order( $order, $npay_orders ) {
    if ( $order && ! empty( $npay_orders ) ) {
            $params     = array();
            $npay_order = $npay_orders[0];
            if ( property_exists( $npay_order->ProductOrder, 'MerchantCustomCode2' ) ) {
    
                parse_str( $npay_order->ProductOrder->MerchantCustomCode2, $params );
         
                /** $params 배열에 mnp_custom_order_data 필터로 추가한 값들이 저장됩니다. */
            }
        }
    }

mnp_before_checkout_cart, mnp_after_checkout_cart #

  1. 설명 #

    장바구니 화면에서 네이버페이 구매 버튼 클릭 시 호출됩니다.
    장바구니 아이템에 대한 검증 및 추가 처리가 필요한 경우 이용할 수 있습니다.

  2. 사용 방법 #

    add_action( 'mnp_before_checkout_cart', 'my_mnp_before_checkout_cart');
    add_action( 'mnp_after_checkout_cart', 'my_mnp_after_checkout_cart');
  3. 예제 #

    add_action( 'mnp_before_checkout_cart', 'my_mnp_before_checkout_cart' );
    
    function my_mnp_before_checkout_cart() {
        $cart_items = WC()->cart->get_cart();
        /** Do something.... */
    }
    
    add_action( 'mnp_after_checkout_cart', 'my_mnp_after_checkout_cart' );
    
    function my_mnp_after_checkout_cart() {
        $cart_items = WC()->cart->get_cart();
        /** Do something.... */
    }

mnp_order_status_for_processing #

  1. 설명 #

    네이버페이에서 결제 후 주문 상태를 변경할 수 있습니다.

  2. 사용 방법 #

    add_filter( 'mnp_order_status_for_processing', 'change_mnp_order_status_for_processing', 10, 2 );
  3. 예제 #

    function change_mnp_order_status_for_processing( $order_status, $order ) {
        // 변경할 주문상태를 지정합니다.
        return 'order-received';
    }
    
    add_filter( 'mnp_order_status_for_processing', 'change_mnp_order_status_for_processing', 10, 2 );