반응형
woocommerce_order_status_hooks 후크: 오래된 상태와 새로운 상태를 유지하시겠습니까?
WooCommerce 후크를 사용하여 주문의 이전 상태와 새 상태를 가져오려면 어떻게 해야 합니까?woocommerce_order_status_changed
?
이건 내 코드인데$order_id
채워져 있습니다.
add_action('woocommerce_order_status_changed','woo_order_status_change_custom');
function woo_order_status_change_custom($order_id,$old_status,$new_status) {
//order ID is filled
//old_status and new_status never
//tested by logging the parameters
}
이제 다음 코드를 사용하여 새 상태를 쉽게 얻을 수 있습니다.
$order = new WC_Order( $order_id );
$orderstatus = $order->status;
하지만 어떻게 하면 이전 주문 상태를 알 수 있을까요?$old_status
비어있나요?
wc 훅을 찾다가 이 포스트를 발견했습니다.파라미터가 설정되지 않은 이유는 add_action 함수에 인수가 없기 때문입니다.이 함수는 기본적으로 하나의 매개 변수만 사용합니다.이 세 가지를 모두 사용하려면 다음을 사용해야 합니다.
add_action('woocommerce_order_status_changed', 'woo_order_status_change_custom', 10, 3);
그10
는 Wordpress의 액션에 대한 기본 순서입니다.마지막 인수는 Wordpress가 커스텀액션에 전달해야 하는 파라미터의 수입니다.
add_action 호출 끝에 NUMBER 매개 변수를 추가하지 않았기 때문입니다.올바른 행은 다음과 같습니다.
add_action('woocommerce_order_status_changed','woo_order_status_change_custom', 10, 3);
"10, 3"은 "3개의 파라미터를 콜백 함수로 전송하고 싶다"를 의미합니다.디폴트로는 송신되는 파라미터(order_id)는 1개뿐입니다.
이 코드를 사용해 보세요.제 말에 따르면 당신의 의견을 바탕으로 작동해야 합니다.
add_action( 'save_post', 'wpse63478_save' );
function wpse63478_save() {
if(!current_user_can('manage_options'))
return false;
if(!is_admin())
return false;
if($_REQUEST['post_type'] != 'shop_order')
return false;
if($_REQUEST['post_ID']!='')
{
$orderId = $_REQUEST['post_ID'];
$order = new WC_Order( $orderId );
$currentStatus = $order->status;
$requestedStautus = $_REQUEST['order_status'];
if ( $requestedStautus== 'on-hold' and $currentStatus == 'completed') {
//Do your work here
}
}
}
언급URL : https://stackoverflow.com/questions/46090181/woocommerce-order-status-changed-hook-getting-old-and-new-status
반응형
'programing' 카테고리의 다른 글
polylang 플러그인의 기본 언어가 작동하지 않음 (0) | 2023.02.24 |
---|---|
AngularJS - ngRepeat 필터링 결과 참조를 얻는 방법 (0) | 2023.02.24 |
텍스트 붙여넣기 시 이상한 메시지 (0) | 2023.02.24 |
새 Net Core 3.0 Json을 사용하여 null인 경우 속성 무시 (0) | 2023.02.24 |
각도 재료 ng클릭 이상한 테두리 강조 표시 (0) | 2023.02.24 |