@@ -45,6 +45,70 @@ public function test_filter_database_queries() {
4545 ], WooCommerce_Custom_Orders_Table_Filters::filter_database_queries ( $ args , [] ) );
4646 }
4747
48+ public function test_filter_database_queries_with_postmeta () {
49+ $ args = [
50+ 'meta_query ' => [
51+ 'relation ' => 'AND ' ,
52+ 'customer_emails ' => [
53+ 'key ' => '_billing_email ' ,
54+ 'value ' => [
'[email protected] ' ],
55+ 'compare ' => 'IN ' ,
56+ ],
57+ 'custom_key ' => [
58+ 'key ' => '_custom_meta_key ' ,
59+ 'value ' => 'value ' ,
60+ ],
61+ ],
62+ ];
63+
64+ $ this ->assertEquals ( [
65+ 'meta_query ' => $ args ['meta_query ' ],
66+ '_wc_has_meta_columns ' => true ,
67+ 'wc_order_meta_query ' => [
68+ [
69+ 'key ' => 'billing_email ' ,
70+ 'value ' => [
'[email protected] ' ],
71+ 'compare ' => 'IN ' ,
72+ '_old_key ' => '_billing_email ' ,
73+ ],
74+ ],
75+ 'meta_query ' => [
76+ 'relation ' => 'AND ' ,
77+ 'customer_emails ' => [
78+ 'key ' => '_billing_email ' ,
79+ 'value ' => [
'[email protected] ' ],
80+ 'compare ' => 'IN ' ,
81+ ],
82+ 'custom_key ' => [
83+ 'key ' => '_custom_meta_key ' ,
84+ 'value ' => 'value ' ,
85+ ],
86+ ],
87+ ], WooCommerce_Custom_Orders_Table_Filters::filter_database_queries ( $ args , [] ) );
88+ }
89+
90+ public function test_wc_get_orders_custom_meta_key () {
91+
92+ $ order = WC_Helper_Order::create_order ();
93+ $ order ->update_meta_data ( '_custom_meta_key ' , 'value ' );
94+ $ order ->save ();
95+
96+ add_filter ('woocommerce_order_data_store_cpt_get_orders_query ' , function ( $ query , $ query_vars ) {
97+ if ( ! empty ( $ query_vars ['_custom_meta_key ' ] ) ) {
98+ $ query ['meta_query ' ][] = array (
99+ 'key ' => '_custom_meta_key ' ,
100+ 'value ' => esc_attr ( $ query_vars ['_custom_meta_key ' ] ),
101+ );
102+ }
103+
104+ return $ query ;
105+ }, 100 , 2 );
106+
107+ $ orders = wc_get_orders ( array ( '_custom_meta_key ' => 'value ' ) );
108+
109+ $ this ->assertEquals ( 1 , count ($ orders ) );
110+ }
111+
48112 public function test_filter_database_queries_without_meta_queries () {
49113 $ this ->assertEquals ( [
50114 'foo ' => 'bar ' ,
0 commit comments