programing

wc_admin_report에서 get_order_report_data 함수를 덮어쓰는 방법을 Word press 합니다.

shortcode 2023. 3. 5. 21:41
반응형

wc_admin_report에서 get_order_report_data 함수를 덮어쓰는 방법을 Word press 합니다.

의 일부를 변경하고 싶다.get_order_report_data()안에서 기능하다class-wc-admin-report.php핵심을 건드리지 않고요.

주문 상태 필터를 변경하고 싶습니다.

$query['where']  = "
            WHERE   posts.post_type     = 'shop_order'
            AND     posts.post_status   = 'publish'
            AND     tax.taxonomy        = 'shop_order_status'
            AND     term.slug           IN ('" . implode( "','", apply_filters( 'woocommerce_reports_order_statuses', array( 'completed', 'processing', 'on-hold' ) ) ) . "')
            ";

그리고 나는 용어를 바꾸고 싶다. 향해 돌진하다.custom_status.

플러그인이나 그 비슷한 걸로 어떻게 해야 할지 모르겠어요.

이 질문은 약간 혼란스러워 보이지만, 여기 저의 최선의 해석이 있습니다.

쿼리에 캡처할 사용자 지정 상태를 추가하려면 다음과 같은 필터 함수를 작성합니다.

function woocommerce_reports_order_statuses_filter( $order_status ){
    $order_status[] = 'custom_status';
    return $order_status;
}
add_filter( 'woocommerce_reports_order_statuses', 'woocommerce_reports_order_statuses_filter' );

나중에 함수에서 해당 배열의 모든 상태는 실제 쿼리 문자열의 값에 'wc-'가 추가됩니다.따라서 해당 접두사를 사용하려면 상태가 필요합니다.또는... 이후 필터를 사용하여 쿼리 문자열을 수정할 수 있습니다.

function woocommerce_reports_get_order_report_query_filter( $query ){
    $custom_status = 'custom_status';
    $query['where'] = substr_replace( $query['where'], $custom_status , strpos( $query['where'], 'wc-' . $custom_status), strlen('wc-' . $custom_status)  );
    return $query;
}
add_filter( 'woocommerce_reports_get_order_report_query', 'woocommerce_reports_get_order_report_query_filter' );

이 필터 코드가 모두 테마에 추가됩니다.functions.php또는 커스텀 플러그인 코드.

필터는 여기에 적용되어 있습니다.이것에 의해, 다음의 항목을 변경할 수 있습니다.term.slug마음대로 하세요.

커스텀 플러그인(또는 기능).필터를 추가합니다.

function override_order_report_data_terms($slug_array) {
    return array('custom_status');
}
add_filter('woocommerce_reports_order_statuses', 'override_order_report_data_terms');

자세한 내용은 Codex를 참조하십시오.

언급URL : https://stackoverflow.com/questions/30726299/wordpress-how-to-override-function-get-order-report-data-from-wc-admin-report

반응형