programing

주문 업데이트를 위한 우커머스 후크

muds 2023. 10. 3. 11:39
반응형

주문 업데이트를 위한 우커머스 후크

여러분 좋은 아침입니다.제목에 쓰여 있듯이 주문이 업데이트되면 기능을 실행하려고 합니다.보다 구체적으로 주문 페이지(admin side)의 사용자 정의 필드를 변경한 후 저장할 때 이 기능을 실행하고자 합니다.

주문이 완료되거나 상태가 업데이트되는 시점을 확인하는 것이 아니라 이 필드가 업데이트되는 시점을 확인하는 것입니다.

현재 사용중입니다.woocommerce_process_shop_order_meta갈고리인데 안 되는 것 같아요.

조언 좀 해주세요.
감사해요!

-- 편집 --

woocommerce_process_shop_order_meta사용하기에 적합한 후크입니다. 이 후크로 인해 함수에 오류가 발생했습니다. 따라서 관리 페이지에서 업데이트 순서를 클릭한 후 함수를 실행해야 하는 경우 이것이 올바른 방법입니다.

편집에 써있는 것처럼.woocommerce_process_shop_order_meta는 주문이 업데이트될 때 함수 또는 응답을 트리거하려는 경우 사용할 수 있는 올바른 후크입니다.

결국 제가 사용하게 됐습니다.save_post_shop_orderhook. 다음 이벤트에서 호출됩니다.

  • 주문 작성(고객 체크아웃 프로세스 및 관리자 모두)
  • 단일 주문 업데이트
  • 대량 상태 업데이트
  • 질서를 무너뜨리기
  • 주문을 취소하기

주문 업데이트만 보려면 주문 외 유형의 게시물을 걸러내고 다음과 같이 생성물을 게시해야 합니다.

add_action (
    'save_post_shop_order',
    function (int $postId, \WP_Post $post, bool $update): void
    {
        // Ignore order (post) creation
        if ($update !== true) {
            return;
        }

        // Here comes your code...
    },
    10,
    3
);

woocommerce_after_order_object_save먼저 좋은 선택인 것처럼 보였지만, 제 경험으로는 한 번의 주문 업데이트로 3번 실행됩니다(플러그인 없이 간단한 공장 설치).처음 2회 실행 당시에는 주문 데이터가 최신 상태도 아니었으므로(업데이트 전 상태), 이 후크는 쓸모가 없습니다.

언급URL : https://stackoverflow.com/questions/36647343/woocommerce-hook-for-order-update

반응형