Edit File by line
/home/zeestwma/richards.../wp-inclu...
File: user.php
* @return bool Whether the update was successful.
[1500] Fix | Delete
*/
[1501] Fix | Delete
function wp_update_user_counts( $network_id = null ) {
[1502] Fix | Delete
global $wpdb;
[1503] Fix | Delete
[1504] Fix | Delete
if ( ! is_multisite() && null !== $network_id ) {
[1505] Fix | Delete
_doing_it_wrong(
[1506] Fix | Delete
__FUNCTION__,
[1507] Fix | Delete
sprintf(
[1508] Fix | Delete
/* translators: %s: $network_id */
[1509] Fix | Delete
__( 'Unable to pass %s if not using multisite.' ),
[1510] Fix | Delete
'<code>$network_id</code>'
[1511] Fix | Delete
),
[1512] Fix | Delete
'6.0.0'
[1513] Fix | Delete
);
[1514] Fix | Delete
}
[1515] Fix | Delete
[1516] Fix | Delete
$query = "SELECT COUNT(ID) as c FROM $wpdb->users";
[1517] Fix | Delete
if ( is_multisite() ) {
[1518] Fix | Delete
$query .= " WHERE spam = '0' AND deleted = '0'";
[1519] Fix | Delete
}
[1520] Fix | Delete
[1521] Fix | Delete
$count = $wpdb->get_var( $query );
[1522] Fix | Delete
[1523] Fix | Delete
return update_network_option( $network_id, 'user_count', $count );
[1524] Fix | Delete
}
[1525] Fix | Delete
[1526] Fix | Delete
/**
[1527] Fix | Delete
* Schedules a recurring recalculation of the total count of users.
[1528] Fix | Delete
*
[1529] Fix | Delete
* @since 6.0.0
[1530] Fix | Delete
*/
[1531] Fix | Delete
function wp_schedule_update_user_counts() {
[1532] Fix | Delete
if ( ! is_main_site() ) {
[1533] Fix | Delete
return;
[1534] Fix | Delete
}
[1535] Fix | Delete
[1536] Fix | Delete
if ( ! wp_next_scheduled( 'wp_update_user_counts' ) && ! wp_installing() ) {
[1537] Fix | Delete
wp_schedule_event( time(), 'twicedaily', 'wp_update_user_counts' );
[1538] Fix | Delete
}
[1539] Fix | Delete
}
[1540] Fix | Delete
[1541] Fix | Delete
/**
[1542] Fix | Delete
* Determines whether the site has a large number of users.
[1543] Fix | Delete
*
[1544] Fix | Delete
* The default criteria for a large site is more than 10,000 users.
[1545] Fix | Delete
*
[1546] Fix | Delete
* @since 6.0.0
[1547] Fix | Delete
*
[1548] Fix | Delete
* @param int|null $network_id ID of the network. Defaults to the current network.
[1549] Fix | Delete
* @return bool Whether the site has a large number of users.
[1550] Fix | Delete
*/
[1551] Fix | Delete
function wp_is_large_user_count( $network_id = null ) {
[1552] Fix | Delete
if ( ! is_multisite() && null !== $network_id ) {
[1553] Fix | Delete
_doing_it_wrong(
[1554] Fix | Delete
__FUNCTION__,
[1555] Fix | Delete
sprintf(
[1556] Fix | Delete
/* translators: %s: $network_id */
[1557] Fix | Delete
__( 'Unable to pass %s if not using multisite.' ),
[1558] Fix | Delete
'<code>$network_id</code>'
[1559] Fix | Delete
),
[1560] Fix | Delete
'6.0.0'
[1561] Fix | Delete
);
[1562] Fix | Delete
}
[1563] Fix | Delete
[1564] Fix | Delete
$count = get_user_count( $network_id );
[1565] Fix | Delete
[1566] Fix | Delete
/**
[1567] Fix | Delete
* Filters whether the site is considered large, based on its number of users.
[1568] Fix | Delete
*
[1569] Fix | Delete
* @since 6.0.0
[1570] Fix | Delete
*
[1571] Fix | Delete
* @param bool $is_large_user_count Whether the site has a large number of users.
[1572] Fix | Delete
* @param int $count The total number of users.
[1573] Fix | Delete
* @param int|null $network_id ID of the network. `null` represents the current network.
[1574] Fix | Delete
*/
[1575] Fix | Delete
return apply_filters( 'wp_is_large_user_count', $count > 10000, $count, $network_id );
[1576] Fix | Delete
}
[1577] Fix | Delete
[1578] Fix | Delete
//
[1579] Fix | Delete
// Private helper functions.
[1580] Fix | Delete
//
[1581] Fix | Delete
[1582] Fix | Delete
/**
[1583] Fix | Delete
* Sets up global user vars.
[1584] Fix | Delete
*
[1585] Fix | Delete
* Used by wp_set_current_user() for back compat. Might be deprecated in the future.
[1586] Fix | Delete
*
[1587] Fix | Delete
* @since 2.0.4
[1588] Fix | Delete
*
[1589] Fix | Delete
* @global string $user_login The user username for logging in
[1590] Fix | Delete
* @global WP_User $userdata User data.
[1591] Fix | Delete
* @global int $user_level The level of the user
[1592] Fix | Delete
* @global int $user_ID The ID of the user
[1593] Fix | Delete
* @global string $user_email The email address of the user
[1594] Fix | Delete
* @global string $user_url The url in the user's profile
[1595] Fix | Delete
* @global string $user_identity The display name of the user
[1596] Fix | Delete
*
[1597] Fix | Delete
* @param int $for_user_id Optional. User ID to set up global data. Default 0.
[1598] Fix | Delete
*/
[1599] Fix | Delete
function setup_userdata( $for_user_id = 0 ) {
[1600] Fix | Delete
global $user_login, $userdata, $user_level, $user_ID, $user_email, $user_url, $user_identity;
[1601] Fix | Delete
[1602] Fix | Delete
if ( ! $for_user_id ) {
[1603] Fix | Delete
$for_user_id = get_current_user_id();
[1604] Fix | Delete
}
[1605] Fix | Delete
$user = get_userdata( $for_user_id );
[1606] Fix | Delete
[1607] Fix | Delete
if ( ! $user ) {
[1608] Fix | Delete
$user_ID = 0;
[1609] Fix | Delete
$user_level = 0;
[1610] Fix | Delete
$userdata = null;
[1611] Fix | Delete
$user_login = '';
[1612] Fix | Delete
$user_email = '';
[1613] Fix | Delete
$user_url = '';
[1614] Fix | Delete
$user_identity = '';
[1615] Fix | Delete
return;
[1616] Fix | Delete
}
[1617] Fix | Delete
[1618] Fix | Delete
$user_ID = (int) $user->ID;
[1619] Fix | Delete
$user_level = (int) $user->user_level;
[1620] Fix | Delete
$userdata = $user;
[1621] Fix | Delete
$user_login = $user->user_login;
[1622] Fix | Delete
$user_email = $user->user_email;
[1623] Fix | Delete
$user_url = $user->user_url;
[1624] Fix | Delete
$user_identity = $user->display_name;
[1625] Fix | Delete
}
[1626] Fix | Delete
[1627] Fix | Delete
/**
[1628] Fix | Delete
* Creates dropdown HTML content of users.
[1629] Fix | Delete
*
[1630] Fix | Delete
* The content can either be displayed, which it is by default, or retrieved by
[1631] Fix | Delete
* setting the 'echo' argument to false. The 'include' and 'exclude' arguments
[1632] Fix | Delete
* are optional; if they are not specified, all users will be displayed. Only one
[1633] Fix | Delete
* can be used in a single call, either 'include' or 'exclude', but not both.
[1634] Fix | Delete
*
[1635] Fix | Delete
* @since 2.3.0
[1636] Fix | Delete
* @since 4.5.0 Added the 'display_name_with_login' value for 'show'.
[1637] Fix | Delete
* @since 4.7.0 Added the 'role', 'role__in', and 'role__not_in' parameters.
[1638] Fix | Delete
* @since 5.9.0 Added the 'capability', 'capability__in', and 'capability__not_in' parameters.
[1639] Fix | Delete
* Deprecated the 'who' parameter.
[1640] Fix | Delete
*
[1641] Fix | Delete
* @param array|string $args {
[1642] Fix | Delete
* Optional. Array or string of arguments to generate a drop-down of users.
[1643] Fix | Delete
* See WP_User_Query::prepare_query() for additional available arguments.
[1644] Fix | Delete
*
[1645] Fix | Delete
* @type string $show_option_all Text to show as the drop-down default (all).
[1646] Fix | Delete
* Default empty.
[1647] Fix | Delete
* @type string $show_option_none Text to show as the drop-down default when no
[1648] Fix | Delete
* users were found. Default empty.
[1649] Fix | Delete
* @type int|string $option_none_value Value to use for `$show_option_none` when no users
[1650] Fix | Delete
* were found. Default -1.
[1651] Fix | Delete
* @type string $hide_if_only_one_author Whether to skip generating the drop-down
[1652] Fix | Delete
* if only one user was found. Default empty.
[1653] Fix | Delete
* @type string $orderby Field to order found users by. Accepts user fields.
[1654] Fix | Delete
* Default 'display_name'.
[1655] Fix | Delete
* @type string $order Whether to order users in ascending or descending
[1656] Fix | Delete
* order. Accepts 'ASC' (ascending) or 'DESC' (descending).
[1657] Fix | Delete
* Default 'ASC'.
[1658] Fix | Delete
* @type int[]|string $include Array or comma-separated list of user IDs to include.
[1659] Fix | Delete
* Default empty.
[1660] Fix | Delete
* @type int[]|string $exclude Array or comma-separated list of user IDs to exclude.
[1661] Fix | Delete
* Default empty.
[1662] Fix | Delete
* @type bool|int $multi Whether to skip the ID attribute on the 'select' element.
[1663] Fix | Delete
* Accepts 1|true or 0|false. Default 0|false.
[1664] Fix | Delete
* @type string $show User data to display. If the selected item is empty
[1665] Fix | Delete
* then the 'user_login' will be displayed in parentheses.
[1666] Fix | Delete
* Accepts any user field, or 'display_name_with_login' to show
[1667] Fix | Delete
* the display name with user_login in parentheses.
[1668] Fix | Delete
* Default 'display_name'.
[1669] Fix | Delete
* @type int|bool $echo Whether to echo or return the drop-down. Accepts 1|true (echo)
[1670] Fix | Delete
* or 0|false (return). Default 1|true.
[1671] Fix | Delete
* @type int $selected Which user ID should be selected. Default 0.
[1672] Fix | Delete
* @type bool $include_selected Whether to always include the selected user ID in the drop-
[1673] Fix | Delete
* down. Default false.
[1674] Fix | Delete
* @type string $name Name attribute of select element. Default 'user'.
[1675] Fix | Delete
* @type string $id ID attribute of the select element. Default is the value of `$name`.
[1676] Fix | Delete
* @type string $class Class attribute of the select element. Default empty.
[1677] Fix | Delete
* @type int $blog_id ID of blog (Multisite only). Default is ID of the current blog.
[1678] Fix | Delete
* @type string $who Deprecated, use `$capability` instead.
[1679] Fix | Delete
* Which type of users to query. Accepts only an empty string or
[1680] Fix | Delete
* 'authors'. Default empty (all users).
[1681] Fix | Delete
* @type string|string[] $role An array or a comma-separated list of role names that users
[1682] Fix | Delete
* must match to be included in results. Note that this is
[1683] Fix | Delete
* an inclusive list: users must match *each* role. Default empty.
[1684] Fix | Delete
* @type string[] $role__in An array of role names. Matched users must have at least one
[1685] Fix | Delete
* of these roles. Default empty array.
[1686] Fix | Delete
* @type string[] $role__not_in An array of role names to exclude. Users matching one or more
[1687] Fix | Delete
* of these roles will not be included in results. Default empty array.
[1688] Fix | Delete
* @type string|string[] $capability An array or a comma-separated list of capability names that users
[1689] Fix | Delete
* must match to be included in results. Note that this is
[1690] Fix | Delete
* an inclusive list: users must match *each* capability.
[1691] Fix | Delete
* Does NOT work for capabilities not in the database or filtered
[1692] Fix | Delete
* via {@see 'map_meta_cap'}. Default empty.
[1693] Fix | Delete
* @type string[] $capability__in An array of capability names. Matched users must have at least one
[1694] Fix | Delete
* of these capabilities.
[1695] Fix | Delete
* Does NOT work for capabilities not in the database or filtered
[1696] Fix | Delete
* via {@see 'map_meta_cap'}. Default empty array.
[1697] Fix | Delete
* @type string[] $capability__not_in An array of capability names to exclude. Users matching one or more
[1698] Fix | Delete
* of these capabilities will not be included in results.
[1699] Fix | Delete
* Does NOT work for capabilities not in the database or filtered
[1700] Fix | Delete
* via {@see 'map_meta_cap'}. Default empty array.
[1701] Fix | Delete
* }
[1702] Fix | Delete
* @return string HTML dropdown list of users.
[1703] Fix | Delete
*/
[1704] Fix | Delete
function wp_dropdown_users( $args = '' ) {
[1705] Fix | Delete
$defaults = array(
[1706] Fix | Delete
'show_option_all' => '',
[1707] Fix | Delete
'show_option_none' => '',
[1708] Fix | Delete
'hide_if_only_one_author' => '',
[1709] Fix | Delete
'orderby' => 'display_name',
[1710] Fix | Delete
'order' => 'ASC',
[1711] Fix | Delete
'include' => '',
[1712] Fix | Delete
'exclude' => '',
[1713] Fix | Delete
'multi' => 0,
[1714] Fix | Delete
'show' => 'display_name',
[1715] Fix | Delete
'echo' => 1,
[1716] Fix | Delete
'selected' => 0,
[1717] Fix | Delete
'name' => 'user',
[1718] Fix | Delete
'class' => '',
[1719] Fix | Delete
'id' => '',
[1720] Fix | Delete
'blog_id' => get_current_blog_id(),
[1721] Fix | Delete
'who' => '',
[1722] Fix | Delete
'include_selected' => false,
[1723] Fix | Delete
'option_none_value' => -1,
[1724] Fix | Delete
'role' => '',
[1725] Fix | Delete
'role__in' => array(),
[1726] Fix | Delete
'role__not_in' => array(),
[1727] Fix | Delete
'capability' => '',
[1728] Fix | Delete
'capability__in' => array(),
[1729] Fix | Delete
'capability__not_in' => array(),
[1730] Fix | Delete
);
[1731] Fix | Delete
[1732] Fix | Delete
$defaults['selected'] = is_author() ? get_query_var( 'author' ) : 0;
[1733] Fix | Delete
[1734] Fix | Delete
$parsed_args = wp_parse_args( $args, $defaults );
[1735] Fix | Delete
[1736] Fix | Delete
$query_args = wp_array_slice_assoc(
[1737] Fix | Delete
$parsed_args,
[1738] Fix | Delete
array(
[1739] Fix | Delete
'blog_id',
[1740] Fix | Delete
'include',
[1741] Fix | Delete
'exclude',
[1742] Fix | Delete
'orderby',
[1743] Fix | Delete
'order',
[1744] Fix | Delete
'who',
[1745] Fix | Delete
'role',
[1746] Fix | Delete
'role__in',
[1747] Fix | Delete
'role__not_in',
[1748] Fix | Delete
'capability',
[1749] Fix | Delete
'capability__in',
[1750] Fix | Delete
'capability__not_in',
[1751] Fix | Delete
)
[1752] Fix | Delete
);
[1753] Fix | Delete
[1754] Fix | Delete
$fields = array( 'ID', 'user_login' );
[1755] Fix | Delete
[1756] Fix | Delete
$show = ! empty( $parsed_args['show'] ) ? $parsed_args['show'] : 'display_name';
[1757] Fix | Delete
if ( 'display_name_with_login' === $show ) {
[1758] Fix | Delete
$fields[] = 'display_name';
[1759] Fix | Delete
} else {
[1760] Fix | Delete
$fields[] = $show;
[1761] Fix | Delete
}
[1762] Fix | Delete
[1763] Fix | Delete
$query_args['fields'] = $fields;
[1764] Fix | Delete
[1765] Fix | Delete
$show_option_all = $parsed_args['show_option_all'];
[1766] Fix | Delete
$show_option_none = $parsed_args['show_option_none'];
[1767] Fix | Delete
$option_none_value = $parsed_args['option_none_value'];
[1768] Fix | Delete
[1769] Fix | Delete
/**
[1770] Fix | Delete
* Filters the query arguments for the list of users in the dropdown.
[1771] Fix | Delete
*
[1772] Fix | Delete
* @since 4.4.0
[1773] Fix | Delete
*
[1774] Fix | Delete
* @param array $query_args The query arguments for get_users().
[1775] Fix | Delete
* @param array $parsed_args The arguments passed to wp_dropdown_users() combined with the defaults.
[1776] Fix | Delete
*/
[1777] Fix | Delete
$query_args = apply_filters( 'wp_dropdown_users_args', $query_args, $parsed_args );
[1778] Fix | Delete
[1779] Fix | Delete
$users = get_users( $query_args );
[1780] Fix | Delete
[1781] Fix | Delete
$output = '';
[1782] Fix | Delete
if ( ! empty( $users ) && ( empty( $parsed_args['hide_if_only_one_author'] ) || count( $users ) > 1 ) ) {
[1783] Fix | Delete
$name = esc_attr( $parsed_args['name'] );
[1784] Fix | Delete
if ( $parsed_args['multi'] && ! $parsed_args['id'] ) {
[1785] Fix | Delete
$id = '';
[1786] Fix | Delete
} else {
[1787] Fix | Delete
$id = $parsed_args['id'] ? " id='" . esc_attr( $parsed_args['id'] ) . "'" : " id='$name'";
[1788] Fix | Delete
}
[1789] Fix | Delete
$output = "<select name='{$name}'{$id} class='" . $parsed_args['class'] . "'>\n";
[1790] Fix | Delete
[1791] Fix | Delete
if ( $show_option_all ) {
[1792] Fix | Delete
$output .= "\t<option value='0'>$show_option_all</option>\n";
[1793] Fix | Delete
}
[1794] Fix | Delete
[1795] Fix | Delete
if ( $show_option_none ) {
[1796] Fix | Delete
$_selected = selected( $option_none_value, $parsed_args['selected'], false );
[1797] Fix | Delete
$output .= "\t<option value='" . esc_attr( $option_none_value ) . "'$_selected>$show_option_none</option>\n";
[1798] Fix | Delete
}
[1799] Fix | Delete
[1800] Fix | Delete
if ( $parsed_args['include_selected'] && ( $parsed_args['selected'] > 0 ) ) {
[1801] Fix | Delete
$found_selected = false;
[1802] Fix | Delete
$parsed_args['selected'] = (int) $parsed_args['selected'];
[1803] Fix | Delete
[1804] Fix | Delete
foreach ( (array) $users as $user ) {
[1805] Fix | Delete
$user->ID = (int) $user->ID;
[1806] Fix | Delete
if ( $user->ID === $parsed_args['selected'] ) {
[1807] Fix | Delete
$found_selected = true;
[1808] Fix | Delete
}
[1809] Fix | Delete
}
[1810] Fix | Delete
[1811] Fix | Delete
if ( ! $found_selected ) {
[1812] Fix | Delete
$selected_user = get_userdata( $parsed_args['selected'] );
[1813] Fix | Delete
if ( $selected_user ) {
[1814] Fix | Delete
$users[] = $selected_user;
[1815] Fix | Delete
}
[1816] Fix | Delete
}
[1817] Fix | Delete
}
[1818] Fix | Delete
[1819] Fix | Delete
foreach ( (array) $users as $user ) {
[1820] Fix | Delete
if ( 'display_name_with_login' === $show ) {
[1821] Fix | Delete
/* translators: 1: User's display name, 2: User login. */
[1822] Fix | Delete
$display = sprintf( _x( '%1$s (%2$s)', 'user dropdown' ), $user->display_name, $user->user_login );
[1823] Fix | Delete
} elseif ( ! empty( $user->$show ) ) {
[1824] Fix | Delete
$display = $user->$show;
[1825] Fix | Delete
} else {
[1826] Fix | Delete
$display = '(' . $user->user_login . ')';
[1827] Fix | Delete
}
[1828] Fix | Delete
[1829] Fix | Delete
$_selected = selected( $user->ID, $parsed_args['selected'], false );
[1830] Fix | Delete
$output .= "\t<option value='$user->ID'$_selected>" . esc_html( $display ) . "</option>\n";
[1831] Fix | Delete
}
[1832] Fix | Delete
[1833] Fix | Delete
$output .= '</select>';
[1834] Fix | Delete
}
[1835] Fix | Delete
[1836] Fix | Delete
/**
[1837] Fix | Delete
* Filters the wp_dropdown_users() HTML output.
[1838] Fix | Delete
*
[1839] Fix | Delete
* @since 2.3.0
[1840] Fix | Delete
*
[1841] Fix | Delete
* @param string $output HTML output generated by wp_dropdown_users().
[1842] Fix | Delete
*/
[1843] Fix | Delete
$html = apply_filters( 'wp_dropdown_users', $output );
[1844] Fix | Delete
[1845] Fix | Delete
if ( $parsed_args['echo'] ) {
[1846] Fix | Delete
echo $html;
[1847] Fix | Delete
}
[1848] Fix | Delete
return $html;
[1849] Fix | Delete
}
[1850] Fix | Delete
[1851] Fix | Delete
/**
[1852] Fix | Delete
* Sanitizes user field based on context.
[1853] Fix | Delete
*
[1854] Fix | Delete
* Possible context values are: 'raw', 'edit', 'db', 'display', 'attribute' and 'js'. The
[1855] Fix | Delete
* 'display' context is used by default. 'attribute' and 'js' contexts are treated like 'display'
[1856] Fix | Delete
* when calling filters.
[1857] Fix | Delete
*
[1858] Fix | Delete
* @since 2.3.0
[1859] Fix | Delete
*
[1860] Fix | Delete
* @param string $field The user Object field name.
[1861] Fix | Delete
* @param mixed $value The user Object value.
[1862] Fix | Delete
* @param int $user_id User ID.
[1863] Fix | Delete
* @param string $context How to sanitize user fields. Looks for 'raw', 'edit', 'db', 'display',
[1864] Fix | Delete
* 'attribute' and 'js'.
[1865] Fix | Delete
* @return mixed Sanitized value.
[1866] Fix | Delete
*/
[1867] Fix | Delete
function sanitize_user_field( $field, $value, $user_id, $context ) {
[1868] Fix | Delete
$int_fields = array( 'ID' );
[1869] Fix | Delete
if ( in_array( $field, $int_fields, true ) ) {
[1870] Fix | Delete
$value = (int) $value;
[1871] Fix | Delete
}
[1872] Fix | Delete
[1873] Fix | Delete
if ( 'raw' === $context ) {
[1874] Fix | Delete
return $value;
[1875] Fix | Delete
}
[1876] Fix | Delete
[1877] Fix | Delete
if ( ! is_string( $value ) && ! is_numeric( $value ) ) {
[1878] Fix | Delete
return $value;
[1879] Fix | Delete
}
[1880] Fix | Delete
[1881] Fix | Delete
$prefixed = str_contains( $field, 'user_' );
[1882] Fix | Delete
[1883] Fix | Delete
if ( 'edit' === $context ) {
[1884] Fix | Delete
if ( $prefixed ) {
[1885] Fix | Delete
[1886] Fix | Delete
/** This filter is documented in wp-includes/post.php */
[1887] Fix | Delete
$value = apply_filters( "edit_{$field}", $value, $user_id );
[1888] Fix | Delete
} else {
[1889] Fix | Delete
[1890] Fix | Delete
/**
[1891] Fix | Delete
* Filters a user field value in the 'edit' context.
[1892] Fix | Delete
*
[1893] Fix | Delete
* The dynamic portion of the hook name, `$field`, refers to the prefixed user
[1894] Fix | Delete
* field being filtered, such as 'user_login', 'user_email', 'first_name', etc.
[1895] Fix | Delete
*
[1896] Fix | Delete
* @since 2.9.0
[1897] Fix | Delete
*
[1898] Fix | Delete
* @param mixed $value Value of the prefixed user field.
[1899] Fix | Delete
* @param int $user_id User ID.
[1900] Fix | Delete
*/
[1901] Fix | Delete
$value = apply_filters( "edit_user_{$field}", $value, $user_id );
[1902] Fix | Delete
}
[1903] Fix | Delete
[1904] Fix | Delete
if ( 'description' === $field ) {
[1905] Fix | Delete
$value = esc_html( $value ); // textarea_escaped?
[1906] Fix | Delete
} else {
[1907] Fix | Delete
$value = esc_attr( $value );
[1908] Fix | Delete
}
[1909] Fix | Delete
} elseif ( 'db' === $context ) {
[1910] Fix | Delete
if ( $prefixed ) {
[1911] Fix | Delete
/** This filter is documented in wp-includes/post.php */
[1912] Fix | Delete
$value = apply_filters( "pre_{$field}", $value );
[1913] Fix | Delete
} else {
[1914] Fix | Delete
[1915] Fix | Delete
/**
[1916] Fix | Delete
* Filters the value of a user field in the 'db' context.
[1917] Fix | Delete
*
[1918] Fix | Delete
* The dynamic portion of the hook name, `$field`, refers to the prefixed user
[1919] Fix | Delete
* field being filtered, such as 'user_login', 'user_email', 'first_name', etc.
[1920] Fix | Delete
*
[1921] Fix | Delete
* @since 2.9.0
[1922] Fix | Delete
*
[1923] Fix | Delete
* @param mixed $value Value of the prefixed user field.
[1924] Fix | Delete
*/
[1925] Fix | Delete
$value = apply_filters( "pre_user_{$field}", $value );
[1926] Fix | Delete
}
[1927] Fix | Delete
} else {
[1928] Fix | Delete
// Use display filters by default.
[1929] Fix | Delete
if ( $prefixed ) {
[1930] Fix | Delete
[1931] Fix | Delete
/** This filter is documented in wp-includes/post.php */
[1932] Fix | Delete
$value = apply_filters( "{$field}", $value, $user_id, $context );
[1933] Fix | Delete
} else {
[1934] Fix | Delete
[1935] Fix | Delete
/**
[1936] Fix | Delete
* Filters the value of a user field in a standard context.
[1937] Fix | Delete
*
[1938] Fix | Delete
* The dynamic portion of the hook name, `$field`, refers to the prefixed user
[1939] Fix | Delete
* field being filtered, such as 'user_login', 'user_email', 'first_name', etc.
[1940] Fix | Delete
*
[1941] Fix | Delete
* @since 2.9.0
[1942] Fix | Delete
*
[1943] Fix | Delete
* @param mixed $value The user object value to sanitize.
[1944] Fix | Delete
* @param int $user_id User ID.
[1945] Fix | Delete
* @param string $context The context to filter within.
[1946] Fix | Delete
*/
[1947] Fix | Delete
$value = apply_filters( "user_{$field}", $value, $user_id, $context );
[1948] Fix | Delete
}
[1949] Fix | Delete
}
[1950] Fix | Delete
[1951] Fix | Delete
if ( 'user_url' === $field ) {
[1952] Fix | Delete
$value = esc_url( $value );
[1953] Fix | Delete
}
[1954] Fix | Delete
[1955] Fix | Delete
if ( 'attribute' === $context ) {
[1956] Fix | Delete
$value = esc_attr( $value );
[1957] Fix | Delete
} elseif ( 'js' === $context ) {
[1958] Fix | Delete
$value = esc_js( $value );
[1959] Fix | Delete
}
[1960] Fix | Delete
[1961] Fix | Delete
// Restore the type for integer fields after esc_attr().
[1962] Fix | Delete
if ( in_array( $field, $int_fields, true ) ) {
[1963] Fix | Delete
$value = (int) $value;
[1964] Fix | Delete
}
[1965] Fix | Delete
[1966] Fix | Delete
return $value;
[1967] Fix | Delete
}
[1968] Fix | Delete
[1969] Fix | Delete
/**
[1970] Fix | Delete
* Updates all user caches.
[1971] Fix | Delete
*
[1972] Fix | Delete
* @since 3.0.0
[1973] Fix | Delete
*
[1974] Fix | Delete
* @param object|WP_User $user User object or database row to be cached
[1975] Fix | Delete
* @return void|false Void on success, false on failure.
[1976] Fix | Delete
*/
[1977] Fix | Delete
function update_user_caches( $user ) {
[1978] Fix | Delete
if ( $user instanceof WP_User ) {
[1979] Fix | Delete
if ( ! $user->exists() ) {
[1980] Fix | Delete
return false;
[1981] Fix | Delete
}
[1982] Fix | Delete
[1983] Fix | Delete
$user = $user->data;
[1984] Fix | Delete
}
[1985] Fix | Delete
[1986] Fix | Delete
wp_cache_add( $user->ID, $user, 'users' );
[1987] Fix | Delete
wp_cache_add( $user->user_login, $user->ID, 'userlogins' );
[1988] Fix | Delete
wp_cache_add( $user->user_nicename, $user->ID, 'userslugs' );
[1989] Fix | Delete
[1990] Fix | Delete
if ( ! empty( $user->user_email ) ) {
[1991] Fix | Delete
wp_cache_add( $user->user_email, $user->ID, 'useremail' );
[1992] Fix | Delete
}
[1993] Fix | Delete
}
[1994] Fix | Delete
[1995] Fix | Delete
/**
[1996] Fix | Delete
* Cleans all user caches.
[1997] Fix | Delete
*
[1998] Fix | Delete
* @since 3.0.0
[1999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function