Haroop Webagency team BICTOR

원격 및 파견 개발팀분들을 위한 하룹소속 개발자전용 빅터 오픈소스 커뮤니티입니다

이곳은 하룹 개발팀 소속 직원들에 전체 개발기술력 및 전체 평균 능력치 강화를 위한, 빅터팀 리드개발자들에 오픈소스 개발 커뮤니티 공간입니다, 만약 고객이시라면 여기를 이용해주세요.

제목
순수 워드프레스로 구축한 우커머스 order 개발방법 문의드립니다
작성자
제이
작성일
2022-10-11 13:19
조회
31
답변완료
우커머스에서 주문정보를 가져오려하는데, 직접 코드를 짜서 플러그인을 만들어보려고 합니다.
혹시 오더를 어떻게 개발해야하는지 알려주실수있으실까요?
전체 6

  • 2022-10-11 14:32

    순수 워드프레스에 우커머스라면 이전에는 foreach등 php와 wpdb를 이용해서 코드를 다 만들어 가져왔지만 wc_oder나 wc_abstract_oder를 이용하시면 매우 쉽게 컨트롤 하실 수 있습니다.

    $order = wc_get_order( $order_id );

    $order_id = $order->get_id(); // Get the order ID
    $parent_id = $order->get_parent_id(); // Get the parent order ID (for subscriptions…)

    $user_id = $order->get_user_id(); // Get the costumer ID
    $user = $order->get_user(); // Get the WP_User object

    $order_status = $order->get_status(); // Get the order status (see the conditional method has_status() below)
    $currency = $order->get_currency(); // Get the currency used
    $payment_method = $order->get_payment_method(); // Get the payment method ID
    $payment_title = $order->get_payment_method_title(); // Get the payment method title
    $date_created = $order->get_date_created(); // Get date created (WC_DateTime object)
    $date_modified = $order->get_date_modified(); // Get date modified (WC_DateTime object)

    $billing_country = $order->get_billing_country(); // Customer billing country

    만약 if를 사용하고 싶으시다면

    if ( $order->has_status('completed') ) {
    // 이곳에 원하시는 코딩을 하시면 됩니다.
    }

    감사합니다^^


    • 2022-10-11 16:51

      와우 감사합니다ㅠㅠ 많은 도움이 되었습니다, 근데 혹시 주문 데이터 속성값들도 가져올수있을까요?
      아니면 SQL로 직접 select를 하나하나 만들어서 가져와야할까요?ㅠ


  • 2022-10-11 17:34

    주문데이터 속성은 굳이 wpdb나 sql코드를 안짜셔도 아래와 같이 바로 가져오셔서 사용하실 수 있습니다^^;

    $order = wc_get_order( $order_id );
    $order_data = $order->get_data();
    $order_id = $order_data['id'];
    $order_parent_id = $order_data['parent_id'];
    $order_status = $order_data['status'];
    $order_currency = $order_data['currency'];
    $order_version = $order_data['version'];
    $order_payment_method = $order_data['payment_method'];
    $order_payment_method_title = $order_data['payment_method_title'];
    $order_payment_method = $order_data['payment_method'];
    $order_payment_method = $order_data['payment_method'];
    $order_date_created = $order_data['date_created']->date('Y-m-d H:i:s');
    $order_date_modified = $order_data['date_modified']->date('Y-m-d H:i:s');

    $order_timestamp_created = $order_data['date_created']->getTimestamp();
    $order_timestamp_modified = $order_data['date_modified']->getTimestamp();
    $order_discount_total = $order_data['discount_total'];
    $order_discount_tax = $order_data['discount_tax'];
    $order_shipping_total = $order_data['shipping_total'];
    $order_shipping_tax = $order_data['shipping_tax'];
    $order_total = $order_data['total'];
    $order_total_tax = $order_data['total_tax'];
    $order_customer_id = $order_data['customer_id'];

    $order_billing_first_name = $order_data['billing']['first_name'];
    $order_billing_last_name = $order_data['billing']['last_name'];
    $order_billing_company = $order_data['billing']['company'];
    $order_billing_address_1 = $order_data['billing']['address_1'];
    $order_billing_address_2 = $order_data['billing']['address_2'];
    $order_billing_city = $order_data['billing']['city'];
    $order_billing_state = $order_data['billing']['state'];
    $order_billing_postcode = $order_data['billing']['postcode'];
    $order_billing_country = $order_data['billing']['country'];
    $order_billing_email = $order_data['billing']['email'];
    $order_billing_phone = $order_data['billing']['phone'];
    $order_shipping_first_name = $order_data['shipping']['first_name'];
    $order_shipping_last_name = $order_data['shipping']['last_name'];
    $order_shipping_company = $order_data['shipping']['company'];
    $order_shipping_address_1 = $order_data['shipping']['address_1'];
    $order_shipping_address_2 = $order_data['shipping']['address_2'];
    $order_shipping_city = $order_data['shipping']['city'];
    $order_shipping_state = $order_data['shipping']['state'];
    $order_shipping_postcode = $order_data['shipping']['postcode'];
    $order_shipping_country = $order_data['shipping']['country'];

    감사합니다, 막상 출력시켜보시면, 바로 이해하실거에요^^


    • 2022-10-11 18:13

      와ㅠㅠ 너무 감사드립니다ㅠㅠ 근데 함수쪽에서 막히는 부분이 있어서,ㅠㅠ 마지막으로 한번 만 더 도와주실 수 있으실까요?ㅠㅠ
      혹시 wc_oder_item_product나 wc_oder_item 함수를 이용해서 oder항목들을 가져오고 데이터를 출력시킬려면 어떻게 해야할까요???ㅠㅠㅠ


  • 2022-10-11 18:41

    안녕하세요 제이님, 무슨 말씀이신지 이해되었습니다, 아래부분 펑션에 출력시키고, 확인해보시겠어요?

    $order = wc_get_order($order_id);
    foreach ($order->get_items() as $item_key => $item ):
    $item_id = $item->get_id();
    $product = $item->get_product(); // Get the WC_Product object
    $product_id = $item->get_product_id(); // the Product id
    $variation_id = $item->get_variation_id(); // the Variation id
    $item_type = $item->get_type(); // Type of the order item ("line_item")
    $item_name = $item->get_name(); // Name of the product
    $quantity = $item->get_quantity();
    $tax_class = $item->get_tax_class();
    $line_subtotal = $item->get_subtotal(); // Line subtotal (non discounted)
    $line_subtotal_tax = $item->get_subtotal_tax(); // Line subtotal tax (non discounted)
    $line_total = $item->get_total(); // Line total (discounted)
    $line_total_tax = $item->get_total_tax(); // Line total tax (discounted)
    $item_data = $item->get_data();
    $product_name = $item_data['name'];
    $product_id = $item_data['product_id'];
    $variation_id = $item_data['variation_id'];
    $quantity = $item_data['quantity'];
    $tax_class = $item_data['tax_class'];
    $line_subtotal = $item_data['subtotal'];
    $line_subtotal_tax = $item_data['subtotal_tax'];
    $line_total = $item_data['total'];
    $line_total_tax = $item_data['total_tax'];

    $product = $item->get_product(); // Get the WC_Product object
    $product_type = $product->get_type();
    $product_sku = $product->get_sku();
    $product_price = $product->get_price();
    $stock_quantity = $product->get_stock_quantity();
    endforeach;


    • 2022-10-11 20:26

      와....... 진짜..... 최고십니다........ㅠㅠㅠㅠㅠ 나머지는 알아서 다 처리해놓겠습니다!! 너무 감사드립니다 ㅠㅠㅠㅠㅠㅠ