Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-inclu...
File: class-wp-user-query.php
foreach ( $capability__not_in as $cap ) {
[500] Fix | Delete
if ( in_array( $cap, $role_caps, true ) ) {
[501] Fix | Delete
$role__not_in[] = $role;
[502] Fix | Delete
break;
[503] Fix | Delete
}
[504] Fix | Delete
}
[505] Fix | Delete
}
[506] Fix | Delete
[507] Fix | Delete
$role__in = array_merge( $role__in, $capability__in );
[508] Fix | Delete
$role__not_in = array_merge( $role__not_in, $capability__not_in );
[509] Fix | Delete
[510] Fix | Delete
$roles = array_unique( $roles );
[511] Fix | Delete
$role__in = array_unique( $role__in );
[512] Fix | Delete
$role__not_in = array_unique( $role__not_in );
[513] Fix | Delete
[514] Fix | Delete
// Support querying by capabilities added directly to users.
[515] Fix | Delete
if ( $blog_id && ! empty( $capabilities ) ) {
[516] Fix | Delete
$capabilities_clauses = array( 'relation' => 'AND' );
[517] Fix | Delete
[518] Fix | Delete
foreach ( $capabilities as $cap ) {
[519] Fix | Delete
$clause = array( 'relation' => 'OR' );
[520] Fix | Delete
[521] Fix | Delete
$clause[] = array(
[522] Fix | Delete
'key' => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
[523] Fix | Delete
'value' => '"' . $cap . '"',
[524] Fix | Delete
'compare' => 'LIKE',
[525] Fix | Delete
);
[526] Fix | Delete
[527] Fix | Delete
if ( ! empty( $caps_with_roles[ $cap ] ) ) {
[528] Fix | Delete
foreach ( $caps_with_roles[ $cap ] as $role ) {
[529] Fix | Delete
$clause[] = array(
[530] Fix | Delete
'key' => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
[531] Fix | Delete
'value' => '"' . $role . '"',
[532] Fix | Delete
'compare' => 'LIKE',
[533] Fix | Delete
);
[534] Fix | Delete
}
[535] Fix | Delete
}
[536] Fix | Delete
[537] Fix | Delete
$capabilities_clauses[] = $clause;
[538] Fix | Delete
}
[539] Fix | Delete
[540] Fix | Delete
$role_queries[] = $capabilities_clauses;
[541] Fix | Delete
[542] Fix | Delete
if ( empty( $this->meta_query->queries ) ) {
[543] Fix | Delete
$this->meta_query->queries[] = $capabilities_clauses;
[544] Fix | Delete
} else {
[545] Fix | Delete
// Append the cap query to the original queries and reparse the query.
[546] Fix | Delete
$this->meta_query->queries = array(
[547] Fix | Delete
'relation' => 'AND',
[548] Fix | Delete
array( $this->meta_query->queries, array( $capabilities_clauses ) ),
[549] Fix | Delete
);
[550] Fix | Delete
}
[551] Fix | Delete
[552] Fix | Delete
$this->meta_query->parse_query_vars( $this->meta_query->queries );
[553] Fix | Delete
}
[554] Fix | Delete
[555] Fix | Delete
if ( $blog_id && ( ! empty( $roles ) || ! empty( $role__in ) || ! empty( $role__not_in ) || is_multisite() ) ) {
[556] Fix | Delete
$role_queries = array();
[557] Fix | Delete
[558] Fix | Delete
$roles_clauses = array( 'relation' => 'AND' );
[559] Fix | Delete
if ( ! empty( $roles ) ) {
[560] Fix | Delete
foreach ( $roles as $role ) {
[561] Fix | Delete
$roles_clauses[] = array(
[562] Fix | Delete
'key' => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
[563] Fix | Delete
'value' => '"' . $role . '"',
[564] Fix | Delete
'compare' => 'LIKE',
[565] Fix | Delete
);
[566] Fix | Delete
}
[567] Fix | Delete
[568] Fix | Delete
$role_queries[] = $roles_clauses;
[569] Fix | Delete
}
[570] Fix | Delete
[571] Fix | Delete
$role__in_clauses = array( 'relation' => 'OR' );
[572] Fix | Delete
if ( ! empty( $role__in ) ) {
[573] Fix | Delete
foreach ( $role__in as $role ) {
[574] Fix | Delete
$role__in_clauses[] = array(
[575] Fix | Delete
'key' => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
[576] Fix | Delete
'value' => '"' . $role . '"',
[577] Fix | Delete
'compare' => 'LIKE',
[578] Fix | Delete
);
[579] Fix | Delete
}
[580] Fix | Delete
[581] Fix | Delete
$role_queries[] = $role__in_clauses;
[582] Fix | Delete
}
[583] Fix | Delete
[584] Fix | Delete
$role__not_in_clauses = array( 'relation' => 'AND' );
[585] Fix | Delete
if ( ! empty( $role__not_in ) ) {
[586] Fix | Delete
foreach ( $role__not_in as $role ) {
[587] Fix | Delete
$role__not_in_clauses[] = array(
[588] Fix | Delete
'key' => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
[589] Fix | Delete
'value' => '"' . $role . '"',
[590] Fix | Delete
'compare' => 'NOT LIKE',
[591] Fix | Delete
);
[592] Fix | Delete
}
[593] Fix | Delete
[594] Fix | Delete
$role_queries[] = $role__not_in_clauses;
[595] Fix | Delete
}
[596] Fix | Delete
[597] Fix | Delete
// If there are no specific roles named, make sure the user is a member of the site.
[598] Fix | Delete
if ( empty( $role_queries ) ) {
[599] Fix | Delete
$role_queries[] = array(
[600] Fix | Delete
'key' => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
[601] Fix | Delete
'compare' => 'EXISTS',
[602] Fix | Delete
);
[603] Fix | Delete
}
[604] Fix | Delete
[605] Fix | Delete
// Specify that role queries should be joined with AND.
[606] Fix | Delete
$role_queries['relation'] = 'AND';
[607] Fix | Delete
[608] Fix | Delete
if ( empty( $this->meta_query->queries ) ) {
[609] Fix | Delete
$this->meta_query->queries = $role_queries;
[610] Fix | Delete
} else {
[611] Fix | Delete
// Append the cap query to the original queries and reparse the query.
[612] Fix | Delete
$this->meta_query->queries = array(
[613] Fix | Delete
'relation' => 'AND',
[614] Fix | Delete
array( $this->meta_query->queries, $role_queries ),
[615] Fix | Delete
);
[616] Fix | Delete
}
[617] Fix | Delete
[618] Fix | Delete
$this->meta_query->parse_query_vars( $this->meta_query->queries );
[619] Fix | Delete
}
[620] Fix | Delete
[621] Fix | Delete
if ( ! empty( $this->meta_query->queries ) ) {
[622] Fix | Delete
$clauses = $this->meta_query->get_sql( 'user', $wpdb->users, 'ID', $this );
[623] Fix | Delete
$this->query_from .= $clauses['join'];
[624] Fix | Delete
$this->query_where .= $clauses['where'];
[625] Fix | Delete
[626] Fix | Delete
if ( $this->meta_query->has_or_relation() ) {
[627] Fix | Delete
$this->query_fields = 'DISTINCT ' . $this->query_fields;
[628] Fix | Delete
}
[629] Fix | Delete
}
[630] Fix | Delete
[631] Fix | Delete
// Sorting.
[632] Fix | Delete
$qv['order'] = isset( $qv['order'] ) ? strtoupper( $qv['order'] ) : '';
[633] Fix | Delete
$order = $this->parse_order( $qv['order'] );
[634] Fix | Delete
[635] Fix | Delete
if ( empty( $qv['orderby'] ) ) {
[636] Fix | Delete
// Default order is by 'user_login'.
[637] Fix | Delete
$ordersby = array( 'user_login' => $order );
[638] Fix | Delete
} elseif ( is_array( $qv['orderby'] ) ) {
[639] Fix | Delete
$ordersby = $qv['orderby'];
[640] Fix | Delete
} else {
[641] Fix | Delete
// 'orderby' values may be a comma- or space-separated list.
[642] Fix | Delete
$ordersby = preg_split( '/[,\s]+/', $qv['orderby'] );
[643] Fix | Delete
}
[644] Fix | Delete
[645] Fix | Delete
$orderby_array = array();
[646] Fix | Delete
foreach ( $ordersby as $_key => $_value ) {
[647] Fix | Delete
if ( ! $_value ) {
[648] Fix | Delete
continue;
[649] Fix | Delete
}
[650] Fix | Delete
[651] Fix | Delete
if ( is_int( $_key ) ) {
[652] Fix | Delete
// Integer key means this is a flat array of 'orderby' fields.
[653] Fix | Delete
$_orderby = $_value;
[654] Fix | Delete
$_order = $order;
[655] Fix | Delete
} else {
[656] Fix | Delete
// Non-integer key means this the key is the field and the value is ASC/DESC.
[657] Fix | Delete
$_orderby = $_key;
[658] Fix | Delete
$_order = $_value;
[659] Fix | Delete
}
[660] Fix | Delete
[661] Fix | Delete
$parsed = $this->parse_orderby( $_orderby );
[662] Fix | Delete
[663] Fix | Delete
if ( ! $parsed ) {
[664] Fix | Delete
continue;
[665] Fix | Delete
}
[666] Fix | Delete
[667] Fix | Delete
if ( 'nicename__in' === $_orderby || 'login__in' === $_orderby ) {
[668] Fix | Delete
$orderby_array[] = $parsed;
[669] Fix | Delete
} else {
[670] Fix | Delete
$orderby_array[] = $parsed . ' ' . $this->parse_order( $_order );
[671] Fix | Delete
}
[672] Fix | Delete
}
[673] Fix | Delete
[674] Fix | Delete
// If no valid clauses were found, order by user_login.
[675] Fix | Delete
if ( empty( $orderby_array ) ) {
[676] Fix | Delete
$orderby_array[] = "user_login $order";
[677] Fix | Delete
}
[678] Fix | Delete
[679] Fix | Delete
$this->query_orderby = 'ORDER BY ' . implode( ', ', $orderby_array );
[680] Fix | Delete
[681] Fix | Delete
// Limit.
[682] Fix | Delete
if ( isset( $qv['number'] ) && $qv['number'] > 0 ) {
[683] Fix | Delete
if ( $qv['offset'] ) {
[684] Fix | Delete
$this->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['offset'], $qv['number'] );
[685] Fix | Delete
} else {
[686] Fix | Delete
$this->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['number'] * ( $qv['paged'] - 1 ), $qv['number'] );
[687] Fix | Delete
}
[688] Fix | Delete
}
[689] Fix | Delete
[690] Fix | Delete
$search = '';
[691] Fix | Delete
if ( isset( $qv['search'] ) ) {
[692] Fix | Delete
$search = trim( $qv['search'] );
[693] Fix | Delete
}
[694] Fix | Delete
[695] Fix | Delete
if ( $search ) {
[696] Fix | Delete
$leading_wild = ( ltrim( $search, '*' ) !== $search );
[697] Fix | Delete
$trailing_wild = ( rtrim( $search, '*' ) !== $search );
[698] Fix | Delete
if ( $leading_wild && $trailing_wild ) {
[699] Fix | Delete
$wild = 'both';
[700] Fix | Delete
} elseif ( $leading_wild ) {
[701] Fix | Delete
$wild = 'leading';
[702] Fix | Delete
} elseif ( $trailing_wild ) {
[703] Fix | Delete
$wild = 'trailing';
[704] Fix | Delete
} else {
[705] Fix | Delete
$wild = false;
[706] Fix | Delete
}
[707] Fix | Delete
if ( $wild ) {
[708] Fix | Delete
$search = trim( $search, '*' );
[709] Fix | Delete
}
[710] Fix | Delete
[711] Fix | Delete
$search_columns = array();
[712] Fix | Delete
if ( $qv['search_columns'] ) {
[713] Fix | Delete
$search_columns = array_intersect( $qv['search_columns'], array( 'ID', 'user_login', 'user_email', 'user_url', 'user_nicename', 'display_name' ) );
[714] Fix | Delete
}
[715] Fix | Delete
if ( ! $search_columns ) {
[716] Fix | Delete
if ( str_contains( $search, '@' ) ) {
[717] Fix | Delete
$search_columns = array( 'user_email' );
[718] Fix | Delete
} elseif ( is_numeric( $search ) ) {
[719] Fix | Delete
$search_columns = array( 'user_login', 'ID' );
[720] Fix | Delete
} elseif ( preg_match( '|^https?://|', $search ) && ! ( is_multisite() && wp_is_large_network( 'users' ) ) ) {
[721] Fix | Delete
$search_columns = array( 'user_url' );
[722] Fix | Delete
} else {
[723] Fix | Delete
$search_columns = array( 'user_login', 'user_url', 'user_email', 'user_nicename', 'display_name' );
[724] Fix | Delete
}
[725] Fix | Delete
}
[726] Fix | Delete
[727] Fix | Delete
/**
[728] Fix | Delete
* Filters the columns to search in a WP_User_Query search.
[729] Fix | Delete
*
[730] Fix | Delete
* The default columns depend on the search term, and include 'ID', 'user_login',
[731] Fix | Delete
* 'user_email', 'user_url', 'user_nicename', and 'display_name'.
[732] Fix | Delete
*
[733] Fix | Delete
* @since 3.6.0
[734] Fix | Delete
*
[735] Fix | Delete
* @param string[] $search_columns Array of column names to be searched.
[736] Fix | Delete
* @param string $search Text being searched.
[737] Fix | Delete
* @param WP_User_Query $query The current WP_User_Query instance.
[738] Fix | Delete
*/
[739] Fix | Delete
$search_columns = apply_filters( 'user_search_columns', $search_columns, $search, $this );
[740] Fix | Delete
[741] Fix | Delete
$this->query_where .= $this->get_search_sql( $search, $search_columns, $wild );
[742] Fix | Delete
}
[743] Fix | Delete
[744] Fix | Delete
if ( ! empty( $include ) ) {
[745] Fix | Delete
// Sanitized earlier.
[746] Fix | Delete
$ids = implode( ',', $include );
[747] Fix | Delete
$this->query_where .= " AND $wpdb->users.ID IN ($ids)";
[748] Fix | Delete
} elseif ( ! empty( $qv['exclude'] ) ) {
[749] Fix | Delete
$ids = implode( ',', wp_parse_id_list( $qv['exclude'] ) );
[750] Fix | Delete
$this->query_where .= " AND $wpdb->users.ID NOT IN ($ids)";
[751] Fix | Delete
}
[752] Fix | Delete
[753] Fix | Delete
// Date queries are allowed for the user_registered field.
[754] Fix | Delete
if ( ! empty( $qv['date_query'] ) && is_array( $qv['date_query'] ) ) {
[755] Fix | Delete
$date_query = new WP_Date_Query( $qv['date_query'], 'user_registered' );
[756] Fix | Delete
$this->query_where .= $date_query->get_sql();
[757] Fix | Delete
}
[758] Fix | Delete
[759] Fix | Delete
/**
[760] Fix | Delete
* Fires after the WP_User_Query has been parsed, and before
[761] Fix | Delete
* the query is executed.
[762] Fix | Delete
*
[763] Fix | Delete
* The passed WP_User_Query object contains SQL parts formed
[764] Fix | Delete
* from parsing the given query.
[765] Fix | Delete
*
[766] Fix | Delete
* @since 3.1.0
[767] Fix | Delete
*
[768] Fix | Delete
* @param WP_User_Query $query Current instance of WP_User_Query (passed by reference).
[769] Fix | Delete
*/
[770] Fix | Delete
do_action_ref_array( 'pre_user_query', array( &$this ) );
[771] Fix | Delete
}
[772] Fix | Delete
[773] Fix | Delete
/**
[774] Fix | Delete
* Executes the query, with the current variables.
[775] Fix | Delete
*
[776] Fix | Delete
* @since 3.1.0
[777] Fix | Delete
*
[778] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[779] Fix | Delete
*/
[780] Fix | Delete
public function query() {
[781] Fix | Delete
global $wpdb;
[782] Fix | Delete
[783] Fix | Delete
if ( ! did_action( 'plugins_loaded' ) ) {
[784] Fix | Delete
_doing_it_wrong(
[785] Fix | Delete
'WP_User_Query::query',
[786] Fix | Delete
sprintf(
[787] Fix | Delete
/* translators: %s: plugins_loaded */
[788] Fix | Delete
__( 'User queries should not be run before the %s hook.' ),
[789] Fix | Delete
'<code>plugins_loaded</code>'
[790] Fix | Delete
),
[791] Fix | Delete
'6.1.1'
[792] Fix | Delete
);
[793] Fix | Delete
}
[794] Fix | Delete
[795] Fix | Delete
$qv =& $this->query_vars;
[796] Fix | Delete
[797] Fix | Delete
// Do not cache results if more than 3 fields are requested.
[798] Fix | Delete
if ( is_array( $qv['fields'] ) && count( $qv['fields'] ) > 3 ) {
[799] Fix | Delete
$qv['cache_results'] = false;
[800] Fix | Delete
}
[801] Fix | Delete
[802] Fix | Delete
/**
[803] Fix | Delete
* Filters the users array before the query takes place.
[804] Fix | Delete
*
[805] Fix | Delete
* Return a non-null value to bypass WordPress' default user queries.
[806] Fix | Delete
*
[807] Fix | Delete
* Filtering functions that require pagination information are encouraged to set
[808] Fix | Delete
* the `total_users` property of the WP_User_Query object, passed to the filter
[809] Fix | Delete
* by reference. If WP_User_Query does not perform a database query, it will not
[810] Fix | Delete
* have enough information to generate these values itself.
[811] Fix | Delete
*
[812] Fix | Delete
* @since 5.1.0
[813] Fix | Delete
*
[814] Fix | Delete
* @param array|null $results Return an array of user data to short-circuit WP's user query
[815] Fix | Delete
* or null to allow WP to run its normal queries.
[816] Fix | Delete
* @param WP_User_Query $query The WP_User_Query instance (passed by reference).
[817] Fix | Delete
*/
[818] Fix | Delete
$this->results = apply_filters_ref_array( 'users_pre_query', array( null, &$this ) );
[819] Fix | Delete
[820] Fix | Delete
if ( null === $this->results ) {
[821] Fix | Delete
// Beginning of the string is on a new line to prevent leading whitespace. See https://core.trac.wordpress.org/ticket/56841.
[822] Fix | Delete
$this->request =
[823] Fix | Delete
"SELECT {$this->query_fields}
[824] Fix | Delete
{$this->query_from}
[825] Fix | Delete
{$this->query_where}
[826] Fix | Delete
{$this->query_orderby}
[827] Fix | Delete
{$this->query_limit}";
[828] Fix | Delete
$cache_value = false;
[829] Fix | Delete
$cache_key = $this->generate_cache_key( $qv, $this->request );
[830] Fix | Delete
$cache_group = 'user-queries';
[831] Fix | Delete
if ( $qv['cache_results'] ) {
[832] Fix | Delete
$cache_value = wp_cache_get( $cache_key, $cache_group );
[833] Fix | Delete
}
[834] Fix | Delete
if ( false !== $cache_value ) {
[835] Fix | Delete
$this->results = $cache_value['user_data'];
[836] Fix | Delete
$this->total_users = $cache_value['total_users'];
[837] Fix | Delete
} else {
[838] Fix | Delete
[839] Fix | Delete
if ( is_array( $qv['fields'] ) ) {
[840] Fix | Delete
$this->results = $wpdb->get_results( $this->request );
[841] Fix | Delete
} else {
[842] Fix | Delete
$this->results = $wpdb->get_col( $this->request );
[843] Fix | Delete
}
[844] Fix | Delete
[845] Fix | Delete
if ( isset( $qv['count_total'] ) && $qv['count_total'] ) {
[846] Fix | Delete
/**
[847] Fix | Delete
* Filters SELECT FOUND_ROWS() query for the current WP_User_Query instance.
[848] Fix | Delete
*
[849] Fix | Delete
* @since 3.2.0
[850] Fix | Delete
* @since 5.1.0 Added the `$this` parameter.
[851] Fix | Delete
*
[852] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[853] Fix | Delete
*
[854] Fix | Delete
* @param string $sql The SELECT FOUND_ROWS() query for the current WP_User_Query.
[855] Fix | Delete
* @param WP_User_Query $query The current WP_User_Query instance.
[856] Fix | Delete
*/
[857] Fix | Delete
$found_users_query = apply_filters( 'found_users_query', 'SELECT FOUND_ROWS()', $this );
[858] Fix | Delete
[859] Fix | Delete
$this->total_users = (int) $wpdb->get_var( $found_users_query );
[860] Fix | Delete
}
[861] Fix | Delete
[862] Fix | Delete
if ( $qv['cache_results'] ) {
[863] Fix | Delete
$cache_value = array(
[864] Fix | Delete
'user_data' => $this->results,
[865] Fix | Delete
'total_users' => $this->total_users,
[866] Fix | Delete
);
[867] Fix | Delete
wp_cache_add( $cache_key, $cache_value, $cache_group );
[868] Fix | Delete
}
[869] Fix | Delete
}
[870] Fix | Delete
}
[871] Fix | Delete
[872] Fix | Delete
if ( ! $this->results ) {
[873] Fix | Delete
return;
[874] Fix | Delete
}
[875] Fix | Delete
if (
[876] Fix | Delete
is_array( $qv['fields'] ) &&
[877] Fix | Delete
isset( $this->results[0]->ID )
[878] Fix | Delete
) {
[879] Fix | Delete
foreach ( $this->results as $result ) {
[880] Fix | Delete
$result->id = $result->ID;
[881] Fix | Delete
}
[882] Fix | Delete
} elseif ( 'all_with_meta' === $qv['fields'] || 'all' === $qv['fields'] ) {
[883] Fix | Delete
if ( function_exists( 'cache_users' ) ) {
[884] Fix | Delete
cache_users( $this->results );
[885] Fix | Delete
}
[886] Fix | Delete
[887] Fix | Delete
$r = array();
[888] Fix | Delete
foreach ( $this->results as $userid ) {
[889] Fix | Delete
if ( 'all_with_meta' === $qv['fields'] ) {
[890] Fix | Delete
$r[ $userid ] = new WP_User( $userid, '', $qv['blog_id'] );
[891] Fix | Delete
} else {
[892] Fix | Delete
$r[] = new WP_User( $userid, '', $qv['blog_id'] );
[893] Fix | Delete
}
[894] Fix | Delete
}
[895] Fix | Delete
[896] Fix | Delete
$this->results = $r;
[897] Fix | Delete
}
[898] Fix | Delete
}
[899] Fix | Delete
[900] Fix | Delete
/**
[901] Fix | Delete
* Retrieves query variable.
[902] Fix | Delete
*
[903] Fix | Delete
* @since 3.5.0
[904] Fix | Delete
*
[905] Fix | Delete
* @param string $query_var Query variable key.
[906] Fix | Delete
* @return mixed
[907] Fix | Delete
*/
[908] Fix | Delete
public function get( $query_var ) {
[909] Fix | Delete
if ( isset( $this->query_vars[ $query_var ] ) ) {
[910] Fix | Delete
return $this->query_vars[ $query_var ];
[911] Fix | Delete
}
[912] Fix | Delete
[913] Fix | Delete
return null;
[914] Fix | Delete
}
[915] Fix | Delete
[916] Fix | Delete
/**
[917] Fix | Delete
* Sets query variable.
[918] Fix | Delete
*
[919] Fix | Delete
* @since 3.5.0
[920] Fix | Delete
*
[921] Fix | Delete
* @param string $query_var Query variable key.
[922] Fix | Delete
* @param mixed $value Query variable value.
[923] Fix | Delete
*/
[924] Fix | Delete
public function set( $query_var, $value ) {
[925] Fix | Delete
$this->query_vars[ $query_var ] = $value;
[926] Fix | Delete
}
[927] Fix | Delete
[928] Fix | Delete
/**
[929] Fix | Delete
* Used internally to generate an SQL string for searching across multiple columns.
[930] Fix | Delete
*
[931] Fix | Delete
* @since 3.1.0
[932] Fix | Delete
*
[933] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[934] Fix | Delete
*
[935] Fix | Delete
* @param string $search Search string.
[936] Fix | Delete
* @param string[] $columns Array of columns to search.
[937] Fix | Delete
* @param bool $wild Whether to allow wildcard searches. Default is false for Network Admin, true for single site.
[938] Fix | Delete
* Single site allows leading and trailing wildcards, Network Admin only trailing.
[939] Fix | Delete
* @return string
[940] Fix | Delete
*/
[941] Fix | Delete
protected function get_search_sql( $search, $columns, $wild = false ) {
[942] Fix | Delete
global $wpdb;
[943] Fix | Delete
[944] Fix | Delete
$searches = array();
[945] Fix | Delete
$leading_wild = ( 'leading' === $wild || 'both' === $wild ) ? '%' : '';
[946] Fix | Delete
$trailing_wild = ( 'trailing' === $wild || 'both' === $wild ) ? '%' : '';
[947] Fix | Delete
$like = $leading_wild . $wpdb->esc_like( $search ) . $trailing_wild;
[948] Fix | Delete
[949] Fix | Delete
foreach ( $columns as $column ) {
[950] Fix | Delete
if ( 'ID' === $column ) {
[951] Fix | Delete
$searches[] = $wpdb->prepare( "$column = %s", $search );
[952] Fix | Delete
} else {
[953] Fix | Delete
$searches[] = $wpdb->prepare( "$column LIKE %s", $like );
[954] Fix | Delete
}
[955] Fix | Delete
}
[956] Fix | Delete
[957] Fix | Delete
return ' AND (' . implode( ' OR ', $searches ) . ')';
[958] Fix | Delete
}
[959] Fix | Delete
[960] Fix | Delete
/**
[961] Fix | Delete
* Returns the list of users.
[962] Fix | Delete
*
[963] Fix | Delete
* @since 3.1.0
[964] Fix | Delete
*
[965] Fix | Delete
* @return array Array of results.
[966] Fix | Delete
*/
[967] Fix | Delete
public function get_results() {
[968] Fix | Delete
return $this->results;
[969] Fix | Delete
}
[970] Fix | Delete
[971] Fix | Delete
/**
[972] Fix | Delete
* Returns the total number of users for the current query.
[973] Fix | Delete
*
[974] Fix | Delete
* @since 3.1.0
[975] Fix | Delete
*
[976] Fix | Delete
* @return int Number of total users.
[977] Fix | Delete
*/
[978] Fix | Delete
public function get_total() {
[979] Fix | Delete
return $this->total_users;
[980] Fix | Delete
}
[981] Fix | Delete
[982] Fix | Delete
/**
[983] Fix | Delete
* Parses and sanitizes 'orderby' keys passed to the user query.
[984] Fix | Delete
*
[985] Fix | Delete
* @since 4.2.0
[986] Fix | Delete
*
[987] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[988] Fix | Delete
*
[989] Fix | Delete
* @param string $orderby Alias for the field to order by.
[990] Fix | Delete
* @return string Value to used in the ORDER clause, if `$orderby` is valid.
[991] Fix | Delete
*/
[992] Fix | Delete
protected function parse_orderby( $orderby ) {
[993] Fix | Delete
global $wpdb;
[994] Fix | Delete
[995] Fix | Delete
$meta_query_clauses = $this->meta_query->get_clauses();
[996] Fix | Delete
[997] Fix | Delete
$_orderby = '';
[998] Fix | Delete
if ( in_array( $orderby, array( 'login', 'nicename', 'email', 'url', 'registered' ), true ) ) {
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function