На странице создания заказа есть вход для поиска клиента.
Этот вход ищет клиента по полям: 'user_login', 'user_url', 'user_email', 'user_nicename', 'display_name'
Это информация, представленная здесь:
сор-содержание / плагины / WooCommerce / включает / данных-магазины / класс-туалет-клиент-данных store.php
public function search_customers( $term, $limit = '' ) {
$results = apply_filters( 'woocommerce_customer_pre_search_customers', false, $term, $limit );
if ( is_array( $results ) ) {
return $results;
}
error_log('search_customers NEXT STEP!!!');
$query = new WP_User_Query(
apply_filters(
'woocommerce_customer_search_customers', array(
'search' => '*' . esc_attr( $term ) . '*',
'search_columns' => array( 'user_login', 'user_url', 'user_email', 'user_nicename', 'display_name' ),
'fields' => 'ID',
'number' => $limit,
), $term, $limit, 'main_query'
)
);
$query2 = new WP_User_Query(
apply_filters(
'woocommerce_customer_search_customers', array(
'fields' => 'ID',
'number' => $limit,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'first_name',
'value' => $term,
'compare' => 'LIKE',
),
array(
'key' => 'last_name',
'value' => $term,
'compare' => 'LIKE',
),
),
), $term, $limit, 'meta_query'
)
);
error_log('search_customers - WHAT IS IT?');
$results = wp_parse_id_list( array_merge( (array) $query->get_results(), (array) $query2->get_results() ) );
if ( $limit && count( $results ) > $limit ) {
$results = array_slice( $results, 0, $limit );
}
return $results;
}
Мой вопрос: как я могу добавить свой собственный столбец в search_columns? Мне нужно добавить столбец "billing_phone" там.
В ходе эксперимента я изменил в функции search_customers (...) $ query такой:
$query = new WP_User_Query(
apply_filters(
'woocommerce_customer_search_customers', array(
'search' => '*' . esc_attr( $term ) . '*',
'search_columns' => array( 'user_login', 'user_url', 'user_email', 'user_nicename', 'display_name', 'billing_phone' ),
'fields' => 'ID',
'number' => $limit,
), $term, $limit, 'main_query'
)
);
Это не очень хороший способ, но я не знаю, как я могу сделать это другим.
Но в любом случае это "исправление" не работает.
Как добавить свой собственный столбец для поиска клиентов? Могу ли я искать клиента по другому столбцу, а затем представить его в search_customers (...)?