반응형
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');
언급URL : https://stackoverflow.com/questions/30726299/wordpress-how-to-override-function-get-order-report-data-from-wc-admin-report
반응형
'programing' 카테고리의 다른 글
각도로 HTML 텍스트 이스케이프JS 지시어 (0) | 2023.03.05 |
---|---|
스프링 부트부터 스태틱html을 사용하려면 어떻게 해야 하나요? (0) | 2023.03.05 |
AngularJS에 의해 생성된 선택 목록에 대한 사전 선택 방법은 무엇입니까? (0) | 2023.03.05 |
WordPress의 플러그인 기능 재정의 (0) | 2023.03.05 |
Jest URL.create ObjectURL이 함수가 아닙니다. (0) | 2023.03.05 |