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.../public_h.../wp-inclu...
File: functions.php
wp_cache_set( 'last_changed', $time, $group );
[8000] Fix | Delete
[8001] Fix | Delete
/**
[8002] Fix | Delete
* Fires after a cache group `last_changed` time is updated.
[8003] Fix | Delete
* This may occur multiple times per page load and registered
[8004] Fix | Delete
* actions must be performant.
[8005] Fix | Delete
*
[8006] Fix | Delete
* @since 6.3.0
[8007] Fix | Delete
*
[8008] Fix | Delete
* @param string $group The cache group name.
[8009] Fix | Delete
* @param int $time The new last changed time.
[8010] Fix | Delete
* @param int|false $previous_time The previous last changed time. False if not previously set.
[8011] Fix | Delete
*/
[8012] Fix | Delete
do_action( 'wp_cache_set_last_changed', $group, $time, $previous_time );
[8013] Fix | Delete
[8014] Fix | Delete
return $time;
[8015] Fix | Delete
}
[8016] Fix | Delete
[8017] Fix | Delete
/**
[8018] Fix | Delete
* Sends an email to the old site admin email address when the site admin email address changes.
[8019] Fix | Delete
*
[8020] Fix | Delete
* @since 4.9.0
[8021] Fix | Delete
*
[8022] Fix | Delete
* @param string $old_email The old site admin email address.
[8023] Fix | Delete
* @param string $new_email The new site admin email address.
[8024] Fix | Delete
* @param string $option_name The relevant database option name.
[8025] Fix | Delete
*/
[8026] Fix | Delete
function wp_site_admin_email_change_notification( $old_email, $new_email, $option_name ) {
[8027] Fix | Delete
$send = true;
[8028] Fix | Delete
[8029] Fix | Delete
// Don't send the notification to the default 'admin_email' value.
[8030] Fix | Delete
if ( 'you@example.com' === $old_email ) {
[8031] Fix | Delete
$send = false;
[8032] Fix | Delete
}
[8033] Fix | Delete
[8034] Fix | Delete
/**
[8035] Fix | Delete
* Filters whether to send the site admin email change notification email.
[8036] Fix | Delete
*
[8037] Fix | Delete
* @since 4.9.0
[8038] Fix | Delete
*
[8039] Fix | Delete
* @param bool $send Whether to send the email notification.
[8040] Fix | Delete
* @param string $old_email The old site admin email address.
[8041] Fix | Delete
* @param string $new_email The new site admin email address.
[8042] Fix | Delete
*/
[8043] Fix | Delete
$send = apply_filters( 'send_site_admin_email_change_email', $send, $old_email, $new_email );
[8044] Fix | Delete
[8045] Fix | Delete
if ( ! $send ) {
[8046] Fix | Delete
return;
[8047] Fix | Delete
}
[8048] Fix | Delete
[8049] Fix | Delete
/* translators: Do not translate OLD_EMAIL, NEW_EMAIL, SITENAME, SITEURL: those are placeholders. */
[8050] Fix | Delete
$email_change_text = __(
[8051] Fix | Delete
'Hi,
[8052] Fix | Delete
[8053] Fix | Delete
This notice confirms that the admin email address was changed on ###SITENAME###.
[8054] Fix | Delete
[8055] Fix | Delete
The new admin email address is ###NEW_EMAIL###.
[8056] Fix | Delete
[8057] Fix | Delete
This email has been sent to ###OLD_EMAIL###
[8058] Fix | Delete
[8059] Fix | Delete
Regards,
[8060] Fix | Delete
All at ###SITENAME###
[8061] Fix | Delete
###SITEURL###'
[8062] Fix | Delete
);
[8063] Fix | Delete
[8064] Fix | Delete
$email_change_email = array(
[8065] Fix | Delete
'to' => $old_email,
[8066] Fix | Delete
/* translators: Site admin email change notification email subject. %s: Site title. */
[8067] Fix | Delete
'subject' => __( '[%s] Admin Email Changed' ),
[8068] Fix | Delete
'message' => $email_change_text,
[8069] Fix | Delete
'headers' => '',
[8070] Fix | Delete
);
[8071] Fix | Delete
[8072] Fix | Delete
// Get site name.
[8073] Fix | Delete
$site_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
[8074] Fix | Delete
[8075] Fix | Delete
/**
[8076] Fix | Delete
* Filters the contents of the email notification sent when the site admin email address is changed.
[8077] Fix | Delete
*
[8078] Fix | Delete
* @since 4.9.0
[8079] Fix | Delete
*
[8080] Fix | Delete
* @param array $email_change_email {
[8081] Fix | Delete
* Used to build wp_mail().
[8082] Fix | Delete
*
[8083] Fix | Delete
* @type string $to The intended recipient.
[8084] Fix | Delete
* @type string $subject The subject of the email.
[8085] Fix | Delete
* @type string $message The content of the email.
[8086] Fix | Delete
* The following strings have a special meaning and will get replaced dynamically:
[8087] Fix | Delete
* - ###OLD_EMAIL### The old site admin email address.
[8088] Fix | Delete
* - ###NEW_EMAIL### The new site admin email address.
[8089] Fix | Delete
* - ###SITENAME### The name of the site.
[8090] Fix | Delete
* - ###SITEURL### The URL to the site.
[8091] Fix | Delete
* @type string $headers Headers.
[8092] Fix | Delete
* }
[8093] Fix | Delete
* @param string $old_email The old site admin email address.
[8094] Fix | Delete
* @param string $new_email The new site admin email address.
[8095] Fix | Delete
*/
[8096] Fix | Delete
$email_change_email = apply_filters( 'site_admin_email_change_email', $email_change_email, $old_email, $new_email );
[8097] Fix | Delete
[8098] Fix | Delete
$email_change_email['message'] = str_replace( '###OLD_EMAIL###', $old_email, $email_change_email['message'] );
[8099] Fix | Delete
$email_change_email['message'] = str_replace( '###NEW_EMAIL###', $new_email, $email_change_email['message'] );
[8100] Fix | Delete
$email_change_email['message'] = str_replace( '###SITENAME###', $site_name, $email_change_email['message'] );
[8101] Fix | Delete
$email_change_email['message'] = str_replace( '###SITEURL###', home_url(), $email_change_email['message'] );
[8102] Fix | Delete
[8103] Fix | Delete
wp_mail(
[8104] Fix | Delete
$email_change_email['to'],
[8105] Fix | Delete
sprintf(
[8106] Fix | Delete
$email_change_email['subject'],
[8107] Fix | Delete
$site_name
[8108] Fix | Delete
),
[8109] Fix | Delete
$email_change_email['message'],
[8110] Fix | Delete
$email_change_email['headers']
[8111] Fix | Delete
);
[8112] Fix | Delete
}
[8113] Fix | Delete
[8114] Fix | Delete
/**
[8115] Fix | Delete
* Returns an anonymized IPv4 or IPv6 address.
[8116] Fix | Delete
*
[8117] Fix | Delete
* @since 4.9.6 Abstracted from `WP_Community_Events::get_unsafe_client_ip()`.
[8118] Fix | Delete
*
[8119] Fix | Delete
* @param string $ip_addr The IPv4 or IPv6 address to be anonymized.
[8120] Fix | Delete
* @param bool $ipv6_fallback Optional. Whether to return the original IPv6 address if the needed functions
[8121] Fix | Delete
* to anonymize it are not present. Default false, return `::` (unspecified address).
[8122] Fix | Delete
* @return string The anonymized IP address.
[8123] Fix | Delete
*/
[8124] Fix | Delete
function wp_privacy_anonymize_ip( $ip_addr, $ipv6_fallback = false ) {
[8125] Fix | Delete
if ( empty( $ip_addr ) ) {
[8126] Fix | Delete
return '0.0.0.0';
[8127] Fix | Delete
}
[8128] Fix | Delete
[8129] Fix | Delete
// Detect what kind of IP address this is.
[8130] Fix | Delete
$ip_prefix = '';
[8131] Fix | Delete
$is_ipv6 = substr_count( $ip_addr, ':' ) > 1;
[8132] Fix | Delete
$is_ipv4 = ( 3 === substr_count( $ip_addr, '.' ) );
[8133] Fix | Delete
[8134] Fix | Delete
if ( $is_ipv6 && $is_ipv4 ) {
[8135] Fix | Delete
// IPv6 compatibility mode, temporarily strip the IPv6 part, and treat it like IPv4.
[8136] Fix | Delete
$ip_prefix = '::ffff:';
[8137] Fix | Delete
$ip_addr = preg_replace( '/^\[?[0-9a-f:]*:/i', '', $ip_addr );
[8138] Fix | Delete
$ip_addr = str_replace( ']', '', $ip_addr );
[8139] Fix | Delete
$is_ipv6 = false;
[8140] Fix | Delete
}
[8141] Fix | Delete
[8142] Fix | Delete
if ( $is_ipv6 ) {
[8143] Fix | Delete
// IPv6 addresses will always be enclosed in [] if there's a port.
[8144] Fix | Delete
$left_bracket = strpos( $ip_addr, '[' );
[8145] Fix | Delete
$right_bracket = strpos( $ip_addr, ']' );
[8146] Fix | Delete
$percent = strpos( $ip_addr, '%' );
[8147] Fix | Delete
$netmask = 'ffff:ffff:ffff:ffff:0000:0000:0000:0000';
[8148] Fix | Delete
[8149] Fix | Delete
// Strip the port (and [] from IPv6 addresses), if they exist.
[8150] Fix | Delete
if ( false !== $left_bracket && false !== $right_bracket ) {
[8151] Fix | Delete
$ip_addr = substr( $ip_addr, $left_bracket + 1, $right_bracket - $left_bracket - 1 );
[8152] Fix | Delete
} elseif ( false !== $left_bracket || false !== $right_bracket ) {
[8153] Fix | Delete
// The IP has one bracket, but not both, so it's malformed.
[8154] Fix | Delete
return '::';
[8155] Fix | Delete
}
[8156] Fix | Delete
[8157] Fix | Delete
// Strip the reachability scope.
[8158] Fix | Delete
if ( false !== $percent ) {
[8159] Fix | Delete
$ip_addr = substr( $ip_addr, 0, $percent );
[8160] Fix | Delete
}
[8161] Fix | Delete
[8162] Fix | Delete
// No invalid characters should be left.
[8163] Fix | Delete
if ( preg_match( '/[^0-9a-f:]/i', $ip_addr ) ) {
[8164] Fix | Delete
return '::';
[8165] Fix | Delete
}
[8166] Fix | Delete
[8167] Fix | Delete
// Partially anonymize the IP by reducing it to the corresponding network ID.
[8168] Fix | Delete
if ( function_exists( 'inet_pton' ) && function_exists( 'inet_ntop' ) ) {
[8169] Fix | Delete
$ip_addr = inet_ntop( inet_pton( $ip_addr ) & inet_pton( $netmask ) );
[8170] Fix | Delete
if ( false === $ip_addr ) {
[8171] Fix | Delete
return '::';
[8172] Fix | Delete
}
[8173] Fix | Delete
} elseif ( ! $ipv6_fallback ) {
[8174] Fix | Delete
return '::';
[8175] Fix | Delete
}
[8176] Fix | Delete
} elseif ( $is_ipv4 ) {
[8177] Fix | Delete
// Strip any port and partially anonymize the IP.
[8178] Fix | Delete
$last_octet_position = strrpos( $ip_addr, '.' );
[8179] Fix | Delete
$ip_addr = substr( $ip_addr, 0, $last_octet_position ) . '.0';
[8180] Fix | Delete
} else {
[8181] Fix | Delete
return '0.0.0.0';
[8182] Fix | Delete
}
[8183] Fix | Delete
[8184] Fix | Delete
// Restore the IPv6 prefix to compatibility mode addresses.
[8185] Fix | Delete
return $ip_prefix . $ip_addr;
[8186] Fix | Delete
}
[8187] Fix | Delete
[8188] Fix | Delete
/**
[8189] Fix | Delete
* Returns uniform "anonymous" data by type.
[8190] Fix | Delete
*
[8191] Fix | Delete
* @since 4.9.6
[8192] Fix | Delete
*
[8193] Fix | Delete
* @param string $type The type of data to be anonymized.
[8194] Fix | Delete
* @param string $data Optional. The data to be anonymized. Default empty string.
[8195] Fix | Delete
* @return string The anonymous data for the requested type.
[8196] Fix | Delete
*/
[8197] Fix | Delete
function wp_privacy_anonymize_data( $type, $data = '' ) {
[8198] Fix | Delete
[8199] Fix | Delete
switch ( $type ) {
[8200] Fix | Delete
case 'email':
[8201] Fix | Delete
$anonymous = 'deleted@site.invalid';
[8202] Fix | Delete
break;
[8203] Fix | Delete
case 'url':
[8204] Fix | Delete
$anonymous = 'https://site.invalid';
[8205] Fix | Delete
break;
[8206] Fix | Delete
case 'ip':
[8207] Fix | Delete
$anonymous = wp_privacy_anonymize_ip( $data );
[8208] Fix | Delete
break;
[8209] Fix | Delete
case 'date':
[8210] Fix | Delete
$anonymous = '0000-00-00 00:00:00';
[8211] Fix | Delete
break;
[8212] Fix | Delete
case 'text':
[8213] Fix | Delete
/* translators: Deleted text. */
[8214] Fix | Delete
$anonymous = __( '[deleted]' );
[8215] Fix | Delete
break;
[8216] Fix | Delete
case 'longtext':
[8217] Fix | Delete
/* translators: Deleted long text. */
[8218] Fix | Delete
$anonymous = __( 'This content was deleted by the author.' );
[8219] Fix | Delete
break;
[8220] Fix | Delete
default:
[8221] Fix | Delete
$anonymous = '';
[8222] Fix | Delete
break;
[8223] Fix | Delete
}
[8224] Fix | Delete
[8225] Fix | Delete
/**
[8226] Fix | Delete
* Filters the anonymous data for each type.
[8227] Fix | Delete
*
[8228] Fix | Delete
* @since 4.9.6
[8229] Fix | Delete
*
[8230] Fix | Delete
* @param string $anonymous Anonymized data.
[8231] Fix | Delete
* @param string $type Type of the data.
[8232] Fix | Delete
* @param string $data Original data.
[8233] Fix | Delete
*/
[8234] Fix | Delete
return apply_filters( 'wp_privacy_anonymize_data', $anonymous, $type, $data );
[8235] Fix | Delete
}
[8236] Fix | Delete
[8237] Fix | Delete
/**
[8238] Fix | Delete
* Returns the directory used to store personal data export files.
[8239] Fix | Delete
*
[8240] Fix | Delete
* @since 4.9.6
[8241] Fix | Delete
*
[8242] Fix | Delete
* @see wp_privacy_exports_url
[8243] Fix | Delete
*
[8244] Fix | Delete
* @return string Exports directory.
[8245] Fix | Delete
*/
[8246] Fix | Delete
function wp_privacy_exports_dir() {
[8247] Fix | Delete
$upload_dir = wp_upload_dir();
[8248] Fix | Delete
$exports_dir = trailingslashit( $upload_dir['basedir'] ) . 'wp-personal-data-exports/';
[8249] Fix | Delete
[8250] Fix | Delete
/**
[8251] Fix | Delete
* Filters the directory used to store personal data export files.
[8252] Fix | Delete
*
[8253] Fix | Delete
* @since 4.9.6
[8254] Fix | Delete
* @since 5.5.0 Exports now use relative paths, so changes to the directory
[8255] Fix | Delete
* via this filter should be reflected on the server.
[8256] Fix | Delete
*
[8257] Fix | Delete
* @param string $exports_dir Exports directory.
[8258] Fix | Delete
*/
[8259] Fix | Delete
return apply_filters( 'wp_privacy_exports_dir', $exports_dir );
[8260] Fix | Delete
}
[8261] Fix | Delete
[8262] Fix | Delete
/**
[8263] Fix | Delete
* Returns the URL of the directory used to store personal data export files.
[8264] Fix | Delete
*
[8265] Fix | Delete
* @since 4.9.6
[8266] Fix | Delete
*
[8267] Fix | Delete
* @see wp_privacy_exports_dir
[8268] Fix | Delete
*
[8269] Fix | Delete
* @return string Exports directory URL.
[8270] Fix | Delete
*/
[8271] Fix | Delete
function wp_privacy_exports_url() {
[8272] Fix | Delete
$upload_dir = wp_upload_dir();
[8273] Fix | Delete
$exports_url = trailingslashit( $upload_dir['baseurl'] ) . 'wp-personal-data-exports/';
[8274] Fix | Delete
[8275] Fix | Delete
/**
[8276] Fix | Delete
* Filters the URL of the directory used to store personal data export files.
[8277] Fix | Delete
*
[8278] Fix | Delete
* @since 4.9.6
[8279] Fix | Delete
* @since 5.5.0 Exports now use relative paths, so changes to the directory URL
[8280] Fix | Delete
* via this filter should be reflected on the server.
[8281] Fix | Delete
*
[8282] Fix | Delete
* @param string $exports_url Exports directory URL.
[8283] Fix | Delete
*/
[8284] Fix | Delete
return apply_filters( 'wp_privacy_exports_url', $exports_url );
[8285] Fix | Delete
}
[8286] Fix | Delete
[8287] Fix | Delete
/**
[8288] Fix | Delete
* Schedules a `WP_Cron` job to delete expired export files.
[8289] Fix | Delete
*
[8290] Fix | Delete
* @since 4.9.6
[8291] Fix | Delete
*/
[8292] Fix | Delete
function wp_schedule_delete_old_privacy_export_files() {
[8293] Fix | Delete
if ( wp_installing() ) {
[8294] Fix | Delete
return;
[8295] Fix | Delete
}
[8296] Fix | Delete
[8297] Fix | Delete
if ( ! wp_next_scheduled( 'wp_privacy_delete_old_export_files' ) ) {
[8298] Fix | Delete
wp_schedule_event( time(), 'hourly', 'wp_privacy_delete_old_export_files' );
[8299] Fix | Delete
}
[8300] Fix | Delete
}
[8301] Fix | Delete
[8302] Fix | Delete
/**
[8303] Fix | Delete
* Cleans up export files older than three days old.
[8304] Fix | Delete
*
[8305] Fix | Delete
* The export files are stored in `wp-content/uploads`, and are therefore publicly
[8306] Fix | Delete
* accessible. A CSPRN is appended to the filename to mitigate the risk of an
[8307] Fix | Delete
* unauthorized person downloading the file, but it is still possible. Deleting
[8308] Fix | Delete
* the file after the data subject has had a chance to delete it adds an additional
[8309] Fix | Delete
* layer of protection.
[8310] Fix | Delete
*
[8311] Fix | Delete
* @since 4.9.6
[8312] Fix | Delete
*/
[8313] Fix | Delete
function wp_privacy_delete_old_export_files() {
[8314] Fix | Delete
$exports_dir = wp_privacy_exports_dir();
[8315] Fix | Delete
if ( ! is_dir( $exports_dir ) ) {
[8316] Fix | Delete
return;
[8317] Fix | Delete
}
[8318] Fix | Delete
[8319] Fix | Delete
require_once ABSPATH . 'wp-admin/includes/file.php';
[8320] Fix | Delete
$export_files = list_files( $exports_dir, 100, array( 'index.php' ) );
[8321] Fix | Delete
[8322] Fix | Delete
/**
[8323] Fix | Delete
* Filters the lifetime, in seconds, of a personal data export file.
[8324] Fix | Delete
*
[8325] Fix | Delete
* By default, the lifetime is 3 days. Once the file reaches that age, it will automatically
[8326] Fix | Delete
* be deleted by a cron job.
[8327] Fix | Delete
*
[8328] Fix | Delete
* @since 4.9.6
[8329] Fix | Delete
*
[8330] Fix | Delete
* @param int $expiration The expiration age of the export, in seconds.
[8331] Fix | Delete
*/
[8332] Fix | Delete
$expiration = apply_filters( 'wp_privacy_export_expiration', 3 * DAY_IN_SECONDS );
[8333] Fix | Delete
[8334] Fix | Delete
foreach ( (array) $export_files as $export_file ) {
[8335] Fix | Delete
$file_age_in_seconds = time() - filemtime( $export_file );
[8336] Fix | Delete
[8337] Fix | Delete
if ( $expiration < $file_age_in_seconds ) {
[8338] Fix | Delete
unlink( $export_file );
[8339] Fix | Delete
}
[8340] Fix | Delete
}
[8341] Fix | Delete
}
[8342] Fix | Delete
[8343] Fix | Delete
/**
[8344] Fix | Delete
* Gets the URL to learn more about updating the PHP version the site is running on.
[8345] Fix | Delete
*
[8346] Fix | Delete
* This URL can be overridden by specifying an environment variable `WP_UPDATE_PHP_URL` or by using the
[8347] Fix | Delete
* {@see 'wp_update_php_url'} filter. Providing an empty string is not allowed and will result in the
[8348] Fix | Delete
* default URL being used. Furthermore the page the URL links to should preferably be localized in the
[8349] Fix | Delete
* site language.
[8350] Fix | Delete
*
[8351] Fix | Delete
* @since 5.1.0
[8352] Fix | Delete
*
[8353] Fix | Delete
* @return string URL to learn more about updating PHP.
[8354] Fix | Delete
*/
[8355] Fix | Delete
function wp_get_update_php_url() {
[8356] Fix | Delete
$default_url = wp_get_default_update_php_url();
[8357] Fix | Delete
[8358] Fix | Delete
$update_url = $default_url;
[8359] Fix | Delete
if ( false !== getenv( 'WP_UPDATE_PHP_URL' ) ) {
[8360] Fix | Delete
$update_url = getenv( 'WP_UPDATE_PHP_URL' );
[8361] Fix | Delete
}
[8362] Fix | Delete
[8363] Fix | Delete
/**
[8364] Fix | Delete
* Filters the URL to learn more about updating the PHP version the site is running on.
[8365] Fix | Delete
*
[8366] Fix | Delete
* Providing an empty string is not allowed and will result in the default URL being used. Furthermore
[8367] Fix | Delete
* the page the URL links to should preferably be localized in the site language.
[8368] Fix | Delete
*
[8369] Fix | Delete
* @since 5.1.0
[8370] Fix | Delete
*
[8371] Fix | Delete
* @param string $update_url URL to learn more about updating PHP.
[8372] Fix | Delete
*/
[8373] Fix | Delete
$update_url = apply_filters( 'wp_update_php_url', $update_url );
[8374] Fix | Delete
[8375] Fix | Delete
if ( empty( $update_url ) ) {
[8376] Fix | Delete
$update_url = $default_url;
[8377] Fix | Delete
}
[8378] Fix | Delete
[8379] Fix | Delete
return $update_url;
[8380] Fix | Delete
}
[8381] Fix | Delete
[8382] Fix | Delete
/**
[8383] Fix | Delete
* Gets the default URL to learn more about updating the PHP version the site is running on.
[8384] Fix | Delete
*
[8385] Fix | Delete
* Do not use this function to retrieve this URL. Instead, use {@see wp_get_update_php_url()} when relying on the URL.
[8386] Fix | Delete
* This function does not allow modifying the returned URL, and is only used to compare the actually used URL with the
[8387] Fix | Delete
* default one.
[8388] Fix | Delete
*
[8389] Fix | Delete
* @since 5.1.0
[8390] Fix | Delete
* @access private
[8391] Fix | Delete
*
[8392] Fix | Delete
* @return string Default URL to learn more about updating PHP.
[8393] Fix | Delete
*/
[8394] Fix | Delete
function wp_get_default_update_php_url() {
[8395] Fix | Delete
return _x( 'https://wordpress.org/support/update-php/', 'localized PHP upgrade information page' );
[8396] Fix | Delete
}
[8397] Fix | Delete
[8398] Fix | Delete
/**
[8399] Fix | Delete
* Prints the default annotation for the web host altering the "Update PHP" page URL.
[8400] Fix | Delete
*
[8401] Fix | Delete
* This function is to be used after {@see wp_get_update_php_url()} to display a consistent
[8402] Fix | Delete
* annotation if the web host has altered the default "Update PHP" page URL.
[8403] Fix | Delete
*
[8404] Fix | Delete
* @since 5.1.0
[8405] Fix | Delete
* @since 5.2.0 Added the `$before` and `$after` parameters.
[8406] Fix | Delete
* @since 6.4.0 Added the `$display` parameter.
[8407] Fix | Delete
*
[8408] Fix | Delete
* @param string $before Markup to output before the annotation. Default `<p class="description">`.
[8409] Fix | Delete
* @param string $after Markup to output after the annotation. Default `</p>`.
[8410] Fix | Delete
* @param bool $display Whether to echo or return the markup. Default `true` for echo.
[8411] Fix | Delete
*
[8412] Fix | Delete
* @return string|void
[8413] Fix | Delete
*/
[8414] Fix | Delete
function wp_update_php_annotation( $before = '<p class="description">', $after = '</p>', $display = true ) {
[8415] Fix | Delete
$annotation = wp_get_update_php_annotation();
[8416] Fix | Delete
[8417] Fix | Delete
if ( $annotation ) {
[8418] Fix | Delete
if ( $display ) {
[8419] Fix | Delete
echo $before . $annotation . $after;
[8420] Fix | Delete
} else {
[8421] Fix | Delete
return $before . $annotation . $after;
[8422] Fix | Delete
}
[8423] Fix | Delete
}
[8424] Fix | Delete
}
[8425] Fix | Delete
[8426] Fix | Delete
/**
[8427] Fix | Delete
* Returns the default annotation for the web hosting altering the "Update PHP" page URL.
[8428] Fix | Delete
*
[8429] Fix | Delete
* This function is to be used after {@see wp_get_update_php_url()} to return a consistent
[8430] Fix | Delete
* annotation if the web host has altered the default "Update PHP" page URL.
[8431] Fix | Delete
*
[8432] Fix | Delete
* @since 5.2.0
[8433] Fix | Delete
*
[8434] Fix | Delete
* @return string Update PHP page annotation. An empty string if no custom URLs are provided.
[8435] Fix | Delete
*/
[8436] Fix | Delete
function wp_get_update_php_annotation() {
[8437] Fix | Delete
$update_url = wp_get_update_php_url();
[8438] Fix | Delete
$default_url = wp_get_default_update_php_url();
[8439] Fix | Delete
[8440] Fix | Delete
if ( $update_url === $default_url ) {
[8441] Fix | Delete
return '';
[8442] Fix | Delete
}
[8443] Fix | Delete
[8444] Fix | Delete
$annotation = sprintf(
[8445] Fix | Delete
/* translators: %s: Default Update PHP page URL. */
[8446] Fix | Delete
__( 'This resource is provided by your web host, and is specific to your site. For more information, <a href="%s" target="_blank">see the official WordPress documentation</a>.' ),
[8447] Fix | Delete
esc_url( $default_url )
[8448] Fix | Delete
);
[8449] Fix | Delete
[8450] Fix | Delete
return $annotation;
[8451] Fix | Delete
}
[8452] Fix | Delete
[8453] Fix | Delete
/**
[8454] Fix | Delete
* Gets the URL for directly updating the PHP version the site is running on.
[8455] Fix | Delete
*
[8456] Fix | Delete
* A URL will only be returned if the `WP_DIRECT_UPDATE_PHP_URL` environment variable is specified or
[8457] Fix | Delete
* by using the {@see 'wp_direct_php_update_url'} filter. This allows hosts to send users directly to
[8458] Fix | Delete
* the page where they can update PHP to a newer version.
[8459] Fix | Delete
*
[8460] Fix | Delete
* @since 5.1.1
[8461] Fix | Delete
*
[8462] Fix | Delete
* @return string URL for directly updating PHP or empty string.
[8463] Fix | Delete
*/
[8464] Fix | Delete
function wp_get_direct_php_update_url() {
[8465] Fix | Delete
$direct_update_url = '';
[8466] Fix | Delete
[8467] Fix | Delete
if ( false !== getenv( 'WP_DIRECT_UPDATE_PHP_URL' ) ) {
[8468] Fix | Delete
$direct_update_url = getenv( 'WP_DIRECT_UPDATE_PHP_URL' );
[8469] Fix | Delete
}
[8470] Fix | Delete
[8471] Fix | Delete
/**
[8472] Fix | Delete
* Filters the URL for directly updating the PHP version the site is running on from the host.
[8473] Fix | Delete
*
[8474] Fix | Delete
* @since 5.1.1
[8475] Fix | Delete
*
[8476] Fix | Delete
* @param string $direct_update_url URL for directly updating PHP.
[8477] Fix | Delete
*/
[8478] Fix | Delete
$direct_update_url = apply_filters( 'wp_direct_php_update_url', $direct_update_url );
[8479] Fix | Delete
[8480] Fix | Delete
return $direct_update_url;
[8481] Fix | Delete
}
[8482] Fix | Delete
[8483] Fix | Delete
/**
[8484] Fix | Delete
* Displays a button directly linking to a PHP update process.
[8485] Fix | Delete
*
[8486] Fix | Delete
* This provides hosts with a way for users to be sent directly to their PHP update process.
[8487] Fix | Delete
*
[8488] Fix | Delete
* The button is only displayed if a URL is returned by `wp_get_direct_php_update_url()`.
[8489] Fix | Delete
*
[8490] Fix | Delete
* @since 5.1.1
[8491] Fix | Delete
*/
[8492] Fix | Delete
function wp_direct_php_update_button() {
[8493] Fix | Delete
$direct_update_url = wp_get_direct_php_update_url();
[8494] Fix | Delete
[8495] Fix | Delete
if ( empty( $direct_update_url ) ) {
[8496] Fix | Delete
return;
[8497] Fix | Delete
}
[8498] Fix | Delete
[8499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function