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/wp-inclu...
File: rest-api.php
if ( empty( $api_root ) ) {
[1000] Fix | Delete
return;
[1001] Fix | Delete
}
[1002] Fix | Delete
[1003] Fix | Delete
printf( '<link rel="https://api.w.org/" href="%s" />', esc_url( $api_root ) );
[1004] Fix | Delete
[1005] Fix | Delete
$resource = rest_get_queried_resource_route();
[1006] Fix | Delete
[1007] Fix | Delete
if ( $resource ) {
[1008] Fix | Delete
printf(
[1009] Fix | Delete
'<link rel="alternate" title="%1$s" type="application/json" href="%2$s" />',
[1010] Fix | Delete
_x( 'JSON', 'REST API resource link name' ),
[1011] Fix | Delete
esc_url( rest_url( $resource ) )
[1012] Fix | Delete
);
[1013] Fix | Delete
}
[1014] Fix | Delete
}
[1015] Fix | Delete
[1016] Fix | Delete
/**
[1017] Fix | Delete
* Sends a Link header for the REST API.
[1018] Fix | Delete
*
[1019] Fix | Delete
* @since 4.4.0
[1020] Fix | Delete
*/
[1021] Fix | Delete
function rest_output_link_header() {
[1022] Fix | Delete
if ( headers_sent() ) {
[1023] Fix | Delete
return;
[1024] Fix | Delete
}
[1025] Fix | Delete
[1026] Fix | Delete
$api_root = get_rest_url();
[1027] Fix | Delete
[1028] Fix | Delete
if ( empty( $api_root ) ) {
[1029] Fix | Delete
return;
[1030] Fix | Delete
}
[1031] Fix | Delete
[1032] Fix | Delete
header( sprintf( 'Link: <%s>; rel="https://api.w.org/"', sanitize_url( $api_root ) ), false );
[1033] Fix | Delete
[1034] Fix | Delete
$resource = rest_get_queried_resource_route();
[1035] Fix | Delete
[1036] Fix | Delete
if ( $resource ) {
[1037] Fix | Delete
header(
[1038] Fix | Delete
sprintf(
[1039] Fix | Delete
'Link: <%1$s>; rel="alternate"; title="%2$s"; type="application/json"',
[1040] Fix | Delete
sanitize_url( rest_url( $resource ) ),
[1041] Fix | Delete
_x( 'JSON', 'REST API resource link name' )
[1042] Fix | Delete
),
[1043] Fix | Delete
false
[1044] Fix | Delete
);
[1045] Fix | Delete
}
[1046] Fix | Delete
}
[1047] Fix | Delete
[1048] Fix | Delete
/**
[1049] Fix | Delete
* Checks for errors when using cookie-based authentication.
[1050] Fix | Delete
*
[1051] Fix | Delete
* WordPress' built-in cookie authentication is always active
[1052] Fix | Delete
* for logged in users. However, the API has to check nonces
[1053] Fix | Delete
* for each request to ensure users are not vulnerable to CSRF.
[1054] Fix | Delete
*
[1055] Fix | Delete
* @since 4.4.0
[1056] Fix | Delete
*
[1057] Fix | Delete
* @global mixed $wp_rest_auth_cookie
[1058] Fix | Delete
*
[1059] Fix | Delete
* @param WP_Error|mixed $result Error from another authentication handler,
[1060] Fix | Delete
* null if we should handle it, or another value if not.
[1061] Fix | Delete
* @return WP_Error|mixed|bool WP_Error if the cookie is invalid, the $result, otherwise true.
[1062] Fix | Delete
*/
[1063] Fix | Delete
function rest_cookie_check_errors( $result ) {
[1064] Fix | Delete
if ( ! empty( $result ) ) {
[1065] Fix | Delete
return $result;
[1066] Fix | Delete
}
[1067] Fix | Delete
[1068] Fix | Delete
global $wp_rest_auth_cookie;
[1069] Fix | Delete
[1070] Fix | Delete
/*
[1071] Fix | Delete
* Is cookie authentication being used? (If we get an auth
[1072] Fix | Delete
* error, but we're still logged in, another authentication
[1073] Fix | Delete
* must have been used).
[1074] Fix | Delete
*/
[1075] Fix | Delete
if ( true !== $wp_rest_auth_cookie && is_user_logged_in() ) {
[1076] Fix | Delete
return $result;
[1077] Fix | Delete
}
[1078] Fix | Delete
[1079] Fix | Delete
// Determine if there is a nonce.
[1080] Fix | Delete
$nonce = null;
[1081] Fix | Delete
[1082] Fix | Delete
if ( isset( $_REQUEST['_wpnonce'] ) ) {
[1083] Fix | Delete
$nonce = $_REQUEST['_wpnonce'];
[1084] Fix | Delete
} elseif ( isset( $_SERVER['HTTP_X_WP_NONCE'] ) ) {
[1085] Fix | Delete
$nonce = $_SERVER['HTTP_X_WP_NONCE'];
[1086] Fix | Delete
}
[1087] Fix | Delete
[1088] Fix | Delete
if ( null === $nonce ) {
[1089] Fix | Delete
// No nonce at all, so act as if it's an unauthenticated request.
[1090] Fix | Delete
wp_set_current_user( 0 );
[1091] Fix | Delete
return true;
[1092] Fix | Delete
}
[1093] Fix | Delete
[1094] Fix | Delete
// Check the nonce.
[1095] Fix | Delete
$result = wp_verify_nonce( $nonce, 'wp_rest' );
[1096] Fix | Delete
[1097] Fix | Delete
if ( ! $result ) {
[1098] Fix | Delete
add_filter( 'rest_send_nocache_headers', '__return_true', 20 );
[1099] Fix | Delete
return new WP_Error( 'rest_cookie_invalid_nonce', __( 'Cookie check failed' ), array( 'status' => 403 ) );
[1100] Fix | Delete
}
[1101] Fix | Delete
[1102] Fix | Delete
// Send a refreshed nonce in header.
[1103] Fix | Delete
rest_get_server()->send_header( 'X-WP-Nonce', wp_create_nonce( 'wp_rest' ) );
[1104] Fix | Delete
[1105] Fix | Delete
return true;
[1106] Fix | Delete
}
[1107] Fix | Delete
[1108] Fix | Delete
/**
[1109] Fix | Delete
* Collects cookie authentication status.
[1110] Fix | Delete
*
[1111] Fix | Delete
* Collects errors from wp_validate_auth_cookie for use by rest_cookie_check_errors.
[1112] Fix | Delete
*
[1113] Fix | Delete
* @since 4.4.0
[1114] Fix | Delete
*
[1115] Fix | Delete
* @see current_action()
[1116] Fix | Delete
* @global mixed $wp_rest_auth_cookie
[1117] Fix | Delete
*/
[1118] Fix | Delete
function rest_cookie_collect_status() {
[1119] Fix | Delete
global $wp_rest_auth_cookie;
[1120] Fix | Delete
[1121] Fix | Delete
$status_type = current_action();
[1122] Fix | Delete
[1123] Fix | Delete
if ( 'auth_cookie_valid' !== $status_type ) {
[1124] Fix | Delete
$wp_rest_auth_cookie = substr( $status_type, 12 );
[1125] Fix | Delete
return;
[1126] Fix | Delete
}
[1127] Fix | Delete
[1128] Fix | Delete
$wp_rest_auth_cookie = true;
[1129] Fix | Delete
}
[1130] Fix | Delete
[1131] Fix | Delete
/**
[1132] Fix | Delete
* Collects the status of authenticating with an application password.
[1133] Fix | Delete
*
[1134] Fix | Delete
* @since 5.6.0
[1135] Fix | Delete
* @since 5.7.0 Added the `$app_password` parameter.
[1136] Fix | Delete
*
[1137] Fix | Delete
* @global WP_User|WP_Error|null $wp_rest_application_password_status
[1138] Fix | Delete
* @global string|null $wp_rest_application_password_uuid
[1139] Fix | Delete
*
[1140] Fix | Delete
* @param WP_Error $user_or_error The authenticated user or error instance.
[1141] Fix | Delete
* @param array $app_password The Application Password used to authenticate.
[1142] Fix | Delete
*/
[1143] Fix | Delete
function rest_application_password_collect_status( $user_or_error, $app_password = array() ) {
[1144] Fix | Delete
global $wp_rest_application_password_status, $wp_rest_application_password_uuid;
[1145] Fix | Delete
[1146] Fix | Delete
$wp_rest_application_password_status = $user_or_error;
[1147] Fix | Delete
[1148] Fix | Delete
if ( empty( $app_password['uuid'] ) ) {
[1149] Fix | Delete
$wp_rest_application_password_uuid = null;
[1150] Fix | Delete
} else {
[1151] Fix | Delete
$wp_rest_application_password_uuid = $app_password['uuid'];
[1152] Fix | Delete
}
[1153] Fix | Delete
}
[1154] Fix | Delete
[1155] Fix | Delete
/**
[1156] Fix | Delete
* Gets the Application Password used for authenticating the request.
[1157] Fix | Delete
*
[1158] Fix | Delete
* @since 5.7.0
[1159] Fix | Delete
*
[1160] Fix | Delete
* @global string|null $wp_rest_application_password_uuid
[1161] Fix | Delete
*
[1162] Fix | Delete
* @return string|null The Application Password UUID, or null if Application Passwords was not used.
[1163] Fix | Delete
*/
[1164] Fix | Delete
function rest_get_authenticated_app_password() {
[1165] Fix | Delete
global $wp_rest_application_password_uuid;
[1166] Fix | Delete
[1167] Fix | Delete
return $wp_rest_application_password_uuid;
[1168] Fix | Delete
}
[1169] Fix | Delete
[1170] Fix | Delete
/**
[1171] Fix | Delete
* Checks for errors when using application password-based authentication.
[1172] Fix | Delete
*
[1173] Fix | Delete
* @since 5.6.0
[1174] Fix | Delete
*
[1175] Fix | Delete
* @global WP_User|WP_Error|null $wp_rest_application_password_status
[1176] Fix | Delete
*
[1177] Fix | Delete
* @param WP_Error|null|true $result Error from another authentication handler,
[1178] Fix | Delete
* null if we should handle it, or another value if not.
[1179] Fix | Delete
* @return WP_Error|null|true WP_Error if the application password is invalid, the $result, otherwise true.
[1180] Fix | Delete
*/
[1181] Fix | Delete
function rest_application_password_check_errors( $result ) {
[1182] Fix | Delete
global $wp_rest_application_password_status;
[1183] Fix | Delete
[1184] Fix | Delete
if ( ! empty( $result ) ) {
[1185] Fix | Delete
return $result;
[1186] Fix | Delete
}
[1187] Fix | Delete
[1188] Fix | Delete
if ( is_wp_error( $wp_rest_application_password_status ) ) {
[1189] Fix | Delete
$data = $wp_rest_application_password_status->get_error_data();
[1190] Fix | Delete
[1191] Fix | Delete
if ( ! isset( $data['status'] ) ) {
[1192] Fix | Delete
$data['status'] = 401;
[1193] Fix | Delete
}
[1194] Fix | Delete
[1195] Fix | Delete
$wp_rest_application_password_status->add_data( $data );
[1196] Fix | Delete
[1197] Fix | Delete
return $wp_rest_application_password_status;
[1198] Fix | Delete
}
[1199] Fix | Delete
[1200] Fix | Delete
if ( $wp_rest_application_password_status instanceof WP_User ) {
[1201] Fix | Delete
return true;
[1202] Fix | Delete
}
[1203] Fix | Delete
[1204] Fix | Delete
return $result;
[1205] Fix | Delete
}
[1206] Fix | Delete
[1207] Fix | Delete
/**
[1208] Fix | Delete
* Adds Application Passwords info to the REST API index.
[1209] Fix | Delete
*
[1210] Fix | Delete
* @since 5.6.0
[1211] Fix | Delete
*
[1212] Fix | Delete
* @param WP_REST_Response $response The index response object.
[1213] Fix | Delete
* @return WP_REST_Response
[1214] Fix | Delete
*/
[1215] Fix | Delete
function rest_add_application_passwords_to_index( $response ) {
[1216] Fix | Delete
if ( ! wp_is_application_passwords_available() ) {
[1217] Fix | Delete
return $response;
[1218] Fix | Delete
}
[1219] Fix | Delete
[1220] Fix | Delete
$response->data['authentication']['application-passwords'] = array(
[1221] Fix | Delete
'endpoints' => array(
[1222] Fix | Delete
'authorization' => admin_url( 'authorize-application.php' ),
[1223] Fix | Delete
),
[1224] Fix | Delete
);
[1225] Fix | Delete
[1226] Fix | Delete
return $response;
[1227] Fix | Delete
}
[1228] Fix | Delete
[1229] Fix | Delete
/**
[1230] Fix | Delete
* Retrieves the avatar URLs in various sizes.
[1231] Fix | Delete
*
[1232] Fix | Delete
* @since 4.7.0
[1233] Fix | Delete
*
[1234] Fix | Delete
* @see get_avatar_url()
[1235] Fix | Delete
*
[1236] Fix | Delete
* @param mixed $id_or_email The avatar to retrieve a URL for. Accepts a user ID, Gravatar MD5 hash,
[1237] Fix | Delete
* user email, WP_User object, WP_Post object, or WP_Comment object.
[1238] Fix | Delete
* @return (string|false)[] Avatar URLs keyed by size. Each value can be a URL string or boolean false.
[1239] Fix | Delete
*/
[1240] Fix | Delete
function rest_get_avatar_urls( $id_or_email ) {
[1241] Fix | Delete
$avatar_sizes = rest_get_avatar_sizes();
[1242] Fix | Delete
[1243] Fix | Delete
$urls = array();
[1244] Fix | Delete
foreach ( $avatar_sizes as $size ) {
[1245] Fix | Delete
$urls[ $size ] = get_avatar_url( $id_or_email, array( 'size' => $size ) );
[1246] Fix | Delete
}
[1247] Fix | Delete
[1248] Fix | Delete
return $urls;
[1249] Fix | Delete
}
[1250] Fix | Delete
[1251] Fix | Delete
/**
[1252] Fix | Delete
* Retrieves the pixel sizes for avatars.
[1253] Fix | Delete
*
[1254] Fix | Delete
* @since 4.7.0
[1255] Fix | Delete
*
[1256] Fix | Delete
* @return int[] List of pixel sizes for avatars. Default `[ 24, 48, 96 ]`.
[1257] Fix | Delete
*/
[1258] Fix | Delete
function rest_get_avatar_sizes() {
[1259] Fix | Delete
/**
[1260] Fix | Delete
* Filters the REST avatar sizes.
[1261] Fix | Delete
*
[1262] Fix | Delete
* Use this filter to adjust the array of sizes returned by the
[1263] Fix | Delete
* `rest_get_avatar_sizes` function.
[1264] Fix | Delete
*
[1265] Fix | Delete
* @since 4.4.0
[1266] Fix | Delete
*
[1267] Fix | Delete
* @param int[] $sizes An array of int values that are the pixel sizes for avatars.
[1268] Fix | Delete
* Default `[ 24, 48, 96 ]`.
[1269] Fix | Delete
*/
[1270] Fix | Delete
return apply_filters( 'rest_avatar_sizes', array( 24, 48, 96 ) );
[1271] Fix | Delete
}
[1272] Fix | Delete
[1273] Fix | Delete
/**
[1274] Fix | Delete
* Parses an RFC3339 time into a Unix timestamp.
[1275] Fix | Delete
*
[1276] Fix | Delete
* @since 4.4.0
[1277] Fix | Delete
*
[1278] Fix | Delete
* @param string $date RFC3339 timestamp.
[1279] Fix | Delete
* @param bool $force_utc Optional. Whether to force UTC timezone instead of using
[1280] Fix | Delete
* the timestamp's timezone. Default false.
[1281] Fix | Delete
* @return int|false Unix timestamp on success, false on failure.
[1282] Fix | Delete
*/
[1283] Fix | Delete
function rest_parse_date( $date, $force_utc = false ) {
[1284] Fix | Delete
if ( $force_utc ) {
[1285] Fix | Delete
$date = preg_replace( '/[+-]\d+:?\d+$/', '+00:00', $date );
[1286] Fix | Delete
}
[1287] Fix | Delete
[1288] Fix | Delete
$regex = '#^\d{4}-\d{2}-\d{2}[Tt ]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}(?::\d{2})?)?$#';
[1289] Fix | Delete
[1290] Fix | Delete
if ( ! preg_match( $regex, $date, $matches ) ) {
[1291] Fix | Delete
return false;
[1292] Fix | Delete
}
[1293] Fix | Delete
[1294] Fix | Delete
return strtotime( $date );
[1295] Fix | Delete
}
[1296] Fix | Delete
[1297] Fix | Delete
/**
[1298] Fix | Delete
* Parses a 3 or 6 digit hex color (with #).
[1299] Fix | Delete
*
[1300] Fix | Delete
* @since 5.4.0
[1301] Fix | Delete
*
[1302] Fix | Delete
* @param string $color 3 or 6 digit hex color (with #).
[1303] Fix | Delete
* @return string|false Color value on success, false on failure.
[1304] Fix | Delete
*/
[1305] Fix | Delete
function rest_parse_hex_color( $color ) {
[1306] Fix | Delete
$regex = '|^#([A-Fa-f0-9]{3}){1,2}$|';
[1307] Fix | Delete
if ( ! preg_match( $regex, $color, $matches ) ) {
[1308] Fix | Delete
return false;
[1309] Fix | Delete
}
[1310] Fix | Delete
[1311] Fix | Delete
return $color;
[1312] Fix | Delete
}
[1313] Fix | Delete
[1314] Fix | Delete
/**
[1315] Fix | Delete
* Parses a date into both its local and UTC equivalent, in MySQL datetime format.
[1316] Fix | Delete
*
[1317] Fix | Delete
* @since 4.4.0
[1318] Fix | Delete
*
[1319] Fix | Delete
* @see rest_parse_date()
[1320] Fix | Delete
*
[1321] Fix | Delete
* @param string $date RFC3339 timestamp.
[1322] Fix | Delete
* @param bool $is_utc Whether the provided date should be interpreted as UTC. Default false.
[1323] Fix | Delete
* @return array|null {
[1324] Fix | Delete
* Local and UTC datetime strings, in MySQL datetime format (Y-m-d H:i:s),
[1325] Fix | Delete
* null on failure.
[1326] Fix | Delete
*
[1327] Fix | Delete
* @type string $0 Local datetime string.
[1328] Fix | Delete
* @type string $1 UTC datetime string.
[1329] Fix | Delete
* }
[1330] Fix | Delete
*/
[1331] Fix | Delete
function rest_get_date_with_gmt( $date, $is_utc = false ) {
[1332] Fix | Delete
/*
[1333] Fix | Delete
* Whether or not the original date actually has a timezone string
[1334] Fix | Delete
* changes the way we need to do timezone conversion.
[1335] Fix | Delete
* Store this info before parsing the date, and use it later.
[1336] Fix | Delete
*/
[1337] Fix | Delete
$has_timezone = preg_match( '#(Z|[+-]\d{2}(:\d{2})?)$#', $date );
[1338] Fix | Delete
[1339] Fix | Delete
$date = rest_parse_date( $date );
[1340] Fix | Delete
[1341] Fix | Delete
if ( empty( $date ) ) {
[1342] Fix | Delete
return null;
[1343] Fix | Delete
}
[1344] Fix | Delete
[1345] Fix | Delete
/*
[1346] Fix | Delete
* At this point $date could either be a local date (if we were passed
[1347] Fix | Delete
* a *local* date without a timezone offset) or a UTC date (otherwise).
[1348] Fix | Delete
* Timezone conversion needs to be handled differently between these two cases.
[1349] Fix | Delete
*/
[1350] Fix | Delete
if ( ! $is_utc && ! $has_timezone ) {
[1351] Fix | Delete
$local = gmdate( 'Y-m-d H:i:s', $date );
[1352] Fix | Delete
$utc = get_gmt_from_date( $local );
[1353] Fix | Delete
} else {
[1354] Fix | Delete
$utc = gmdate( 'Y-m-d H:i:s', $date );
[1355] Fix | Delete
$local = get_date_from_gmt( $utc );
[1356] Fix | Delete
}
[1357] Fix | Delete
[1358] Fix | Delete
return array( $local, $utc );
[1359] Fix | Delete
}
[1360] Fix | Delete
[1361] Fix | Delete
/**
[1362] Fix | Delete
* Returns a contextual HTTP error code for authorization failure.
[1363] Fix | Delete
*
[1364] Fix | Delete
* @since 4.7.0
[1365] Fix | Delete
*
[1366] Fix | Delete
* @return int 401 if the user is not logged in, 403 if the user is logged in.
[1367] Fix | Delete
*/
[1368] Fix | Delete
function rest_authorization_required_code() {
[1369] Fix | Delete
return is_user_logged_in() ? 403 : 401;
[1370] Fix | Delete
}
[1371] Fix | Delete
[1372] Fix | Delete
/**
[1373] Fix | Delete
* Validate a request argument based on details registered to the route.
[1374] Fix | Delete
*
[1375] Fix | Delete
* @since 4.7.0
[1376] Fix | Delete
*
[1377] Fix | Delete
* @param mixed $value
[1378] Fix | Delete
* @param WP_REST_Request $request
[1379] Fix | Delete
* @param string $param
[1380] Fix | Delete
* @return true|WP_Error
[1381] Fix | Delete
*/
[1382] Fix | Delete
function rest_validate_request_arg( $value, $request, $param ) {
[1383] Fix | Delete
$attributes = $request->get_attributes();
[1384] Fix | Delete
if ( ! isset( $attributes['args'][ $param ] ) || ! is_array( $attributes['args'][ $param ] ) ) {
[1385] Fix | Delete
return true;
[1386] Fix | Delete
}
[1387] Fix | Delete
$args = $attributes['args'][ $param ];
[1388] Fix | Delete
[1389] Fix | Delete
return rest_validate_value_from_schema( $value, $args, $param );
[1390] Fix | Delete
}
[1391] Fix | Delete
[1392] Fix | Delete
/**
[1393] Fix | Delete
* Sanitize a request argument based on details registered to the route.
[1394] Fix | Delete
*
[1395] Fix | Delete
* @since 4.7.0
[1396] Fix | Delete
*
[1397] Fix | Delete
* @param mixed $value
[1398] Fix | Delete
* @param WP_REST_Request $request
[1399] Fix | Delete
* @param string $param
[1400] Fix | Delete
* @return mixed
[1401] Fix | Delete
*/
[1402] Fix | Delete
function rest_sanitize_request_arg( $value, $request, $param ) {
[1403] Fix | Delete
$attributes = $request->get_attributes();
[1404] Fix | Delete
if ( ! isset( $attributes['args'][ $param ] ) || ! is_array( $attributes['args'][ $param ] ) ) {
[1405] Fix | Delete
return $value;
[1406] Fix | Delete
}
[1407] Fix | Delete
$args = $attributes['args'][ $param ];
[1408] Fix | Delete
[1409] Fix | Delete
return rest_sanitize_value_from_schema( $value, $args, $param );
[1410] Fix | Delete
}
[1411] Fix | Delete
[1412] Fix | Delete
/**
[1413] Fix | Delete
* Parse a request argument based on details registered to the route.
[1414] Fix | Delete
*
[1415] Fix | Delete
* Runs a validation check and sanitizes the value, primarily to be used via
[1416] Fix | Delete
* the `sanitize_callback` arguments in the endpoint args registration.
[1417] Fix | Delete
*
[1418] Fix | Delete
* @since 4.7.0
[1419] Fix | Delete
*
[1420] Fix | Delete
* @param mixed $value
[1421] Fix | Delete
* @param WP_REST_Request $request
[1422] Fix | Delete
* @param string $param
[1423] Fix | Delete
* @return mixed
[1424] Fix | Delete
*/
[1425] Fix | Delete
function rest_parse_request_arg( $value, $request, $param ) {
[1426] Fix | Delete
$is_valid = rest_validate_request_arg( $value, $request, $param );
[1427] Fix | Delete
[1428] Fix | Delete
if ( is_wp_error( $is_valid ) ) {
[1429] Fix | Delete
return $is_valid;
[1430] Fix | Delete
}
[1431] Fix | Delete
[1432] Fix | Delete
$value = rest_sanitize_request_arg( $value, $request, $param );
[1433] Fix | Delete
[1434] Fix | Delete
return $value;
[1435] Fix | Delete
}
[1436] Fix | Delete
[1437] Fix | Delete
/**
[1438] Fix | Delete
* Determines if an IP address is valid.
[1439] Fix | Delete
*
[1440] Fix | Delete
* Handles both IPv4 and IPv6 addresses.
[1441] Fix | Delete
*
[1442] Fix | Delete
* @since 4.7.0
[1443] Fix | Delete
*
[1444] Fix | Delete
* @param string $ip IP address.
[1445] Fix | Delete
* @return string|false The valid IP address, otherwise false.
[1446] Fix | Delete
*/
[1447] Fix | Delete
function rest_is_ip_address( $ip ) {
[1448] Fix | Delete
$ipv4_pattern = '/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/';
[1449] Fix | Delete
[1450] Fix | Delete
if ( ! preg_match( $ipv4_pattern, $ip ) && ! WpOrg\Requests\Ipv6::check_ipv6( $ip ) ) {
[1451] Fix | Delete
return false;
[1452] Fix | Delete
}
[1453] Fix | Delete
[1454] Fix | Delete
return $ip;
[1455] Fix | Delete
}
[1456] Fix | Delete
[1457] Fix | Delete
/**
[1458] Fix | Delete
* Changes a boolean-like value into the proper boolean value.
[1459] Fix | Delete
*
[1460] Fix | Delete
* @since 4.7.0
[1461] Fix | Delete
*
[1462] Fix | Delete
* @param bool|string|int $value The value being evaluated.
[1463] Fix | Delete
* @return bool Returns the proper associated boolean value.
[1464] Fix | Delete
*/
[1465] Fix | Delete
function rest_sanitize_boolean( $value ) {
[1466] Fix | Delete
// String values are translated to `true`; make sure 'false' is false.
[1467] Fix | Delete
if ( is_string( $value ) ) {
[1468] Fix | Delete
$value = strtolower( $value );
[1469] Fix | Delete
if ( in_array( $value, array( 'false', '0' ), true ) ) {
[1470] Fix | Delete
$value = false;
[1471] Fix | Delete
}
[1472] Fix | Delete
}
[1473] Fix | Delete
[1474] Fix | Delete
// Everything else will map nicely to boolean.
[1475] Fix | Delete
return (bool) $value;
[1476] Fix | Delete
}
[1477] Fix | Delete
[1478] Fix | Delete
/**
[1479] Fix | Delete
* Determines if a given value is boolean-like.
[1480] Fix | Delete
*
[1481] Fix | Delete
* @since 4.7.0
[1482] Fix | Delete
*
[1483] Fix | Delete
* @param bool|string $maybe_bool The value being evaluated.
[1484] Fix | Delete
* @return bool True if a boolean, otherwise false.
[1485] Fix | Delete
*/
[1486] Fix | Delete
function rest_is_boolean( $maybe_bool ) {
[1487] Fix | Delete
if ( is_bool( $maybe_bool ) ) {
[1488] Fix | Delete
return true;
[1489] Fix | Delete
}
[1490] Fix | Delete
[1491] Fix | Delete
if ( is_string( $maybe_bool ) ) {
[1492] Fix | Delete
$maybe_bool = strtolower( $maybe_bool );
[1493] Fix | Delete
[1494] Fix | Delete
$valid_boolean_values = array(
[1495] Fix | Delete
'false',
[1496] Fix | Delete
'true',
[1497] Fix | Delete
'0',
[1498] Fix | Delete
'1',
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function