Этот ввод ищет клиента по полям: «user_login», «user_url», «user_email», «user_nicename», «display_name»
Эта информация присутствует здесь:
wp-content/plugins/woocommerce/includes/data-stores/ class-wc-customer-data-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_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(...)?
Подробнее здесь: https://stackoverflow.com/questions/520 ... ling-email
Мобильная версия