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-conte.../plugins/popup-ma.../classes/Extensio...
File: Updater.php
if ( $data['slug'] !== $this->slug ) {
[500] Fix | Delete
return;
[501] Fix | Delete
}
[502] Fix | Delete
[503] Fix | Delete
// Don't allow a plugin to ping itself.
[504] Fix | Delete
if ( trailingslashit( home_url() ) === $this->api_url ) {
[505] Fix | Delete
return false;
[506] Fix | Delete
}
[507] Fix | Delete
[508] Fix | Delete
if ( $this->request_recently_failed() ) {
[509] Fix | Delete
return false;
[510] Fix | Delete
}
[511] Fix | Delete
[512] Fix | Delete
return $this->get_version_from_remote();
[513] Fix | Delete
}
[514] Fix | Delete
[515] Fix | Delete
/**
[516] Fix | Delete
* Determines if a request has recently failed.
[517] Fix | Delete
*
[518] Fix | Delete
* @since 1.9.1
[519] Fix | Delete
*
[520] Fix | Delete
* @return bool
[521] Fix | Delete
*/
[522] Fix | Delete
private function request_recently_failed() {
[523] Fix | Delete
$failed_request_details = get_option( $this->failed_request_cache_key );
[524] Fix | Delete
[525] Fix | Delete
// Request has never failed.
[526] Fix | Delete
if ( empty( $failed_request_details ) || ! is_numeric( $failed_request_details ) ) {
[527] Fix | Delete
return false;
[528] Fix | Delete
}
[529] Fix | Delete
[530] Fix | Delete
/*
[531] Fix | Delete
* Request previously failed, but the timeout has expired.
[532] Fix | Delete
* This means we're allowed to try again.
[533] Fix | Delete
*/
[534] Fix | Delete
if ( time() > $failed_request_details ) {
[535] Fix | Delete
delete_option( $this->failed_request_cache_key );
[536] Fix | Delete
[537] Fix | Delete
return false;
[538] Fix | Delete
}
[539] Fix | Delete
[540] Fix | Delete
return true;
[541] Fix | Delete
}
[542] Fix | Delete
[543] Fix | Delete
/**
[544] Fix | Delete
* Logs a failed HTTP request for this API URL.
[545] Fix | Delete
* We set a timestamp for 1 hour from now. This prevents future API requests from being
[546] Fix | Delete
* made to this domain for 1 hour. Once the timestamp is in the past, API requests
[547] Fix | Delete
* will be allowed again. This way if the site is down for some reason we don't bombard
[548] Fix | Delete
* it with failed API requests.
[549] Fix | Delete
*
[550] Fix | Delete
* @see EDD_SL_Plugin_Updater::request_recently_failed
[551] Fix | Delete
*
[552] Fix | Delete
* @since 1.9.1
[553] Fix | Delete
*/
[554] Fix | Delete
private function log_failed_request() {
[555] Fix | Delete
update_option( $this->failed_request_cache_key, strtotime( '+1 hour' ) );
[556] Fix | Delete
}
[557] Fix | Delete
[558] Fix | Delete
/**
[559] Fix | Delete
* If available, show the changelog for sites in a multisite install.
[560] Fix | Delete
*/
[561] Fix | Delete
public function show_changelog() {
[562] Fix | Delete
// phpcs:disable WordPress.Security.NonceVerification.Recommended
[563] Fix | Delete
[564] Fix | Delete
if ( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' !== $_REQUEST['edd_sl_action'] ) {
[565] Fix | Delete
return;
[566] Fix | Delete
}
[567] Fix | Delete
[568] Fix | Delete
if ( empty( $_REQUEST['plugin'] ) ) {
[569] Fix | Delete
return;
[570] Fix | Delete
}
[571] Fix | Delete
[572] Fix | Delete
if ( empty( $_REQUEST['slug'] ) || $this->slug !== $_REQUEST['slug'] ) {
[573] Fix | Delete
return;
[574] Fix | Delete
}
[575] Fix | Delete
[576] Fix | Delete
// phpcs:enable WordPress.Security.NonceVerification.Recommended
[577] Fix | Delete
[578] Fix | Delete
if ( ! current_user_can( 'update_plugins' ) ) {
[579] Fix | Delete
wp_die( esc_html__( 'You do not have permission to install plugin updates', 'popup-maker' ), esc_html__( 'Error', 'popup-maker' ), [ 'response' => 403 ] );
[580] Fix | Delete
}
[581] Fix | Delete
[582] Fix | Delete
$version_info = $this->get_repo_api_data();
[583] Fix | Delete
if ( isset( $version_info->sections ) ) {
[584] Fix | Delete
$sections = $this->convert_object_to_array( $version_info->sections );
[585] Fix | Delete
if ( ! empty( $sections['changelog'] ) ) {
[586] Fix | Delete
echo '<div style="background:#fff;padding:10px;">' . wp_kses_post( $sections['changelog'] ) . '</div>';
[587] Fix | Delete
}
[588] Fix | Delete
}
[589] Fix | Delete
[590] Fix | Delete
exit;
[591] Fix | Delete
}
[592] Fix | Delete
[593] Fix | Delete
/**
[594] Fix | Delete
* Gets the current version information from the remote site.
[595] Fix | Delete
*
[596] Fix | Delete
* @return array|false
[597] Fix | Delete
*/
[598] Fix | Delete
private function get_version_from_remote() {
[599] Fix | Delete
$api_params = [
[600] Fix | Delete
'edd_action' => 'get_version',
[601] Fix | Delete
'license' => ! empty( $this->api_data['license'] ) ? $this->api_data['license'] : '',
[602] Fix | Delete
'item_name' => isset( $this->api_data['item_name'] ) ? $this->api_data['item_name'] : false,
[603] Fix | Delete
'item_id' => isset( $this->api_data['item_id'] ) ? $this->api_data['item_id'] : false,
[604] Fix | Delete
'version' => isset( $this->api_data['version'] ) ? $this->api_data['version'] : false,
[605] Fix | Delete
'slug' => $this->slug,
[606] Fix | Delete
'author' => $this->api_data['author'],
[607] Fix | Delete
'url' => home_url(),
[608] Fix | Delete
'beta' => $this->beta,
[609] Fix | Delete
'php_version' => phpversion(),
[610] Fix | Delete
'wp_version' => get_bloginfo( 'version' ),
[611] Fix | Delete
];
[612] Fix | Delete
[613] Fix | Delete
/**
[614] Fix | Delete
* Filters the parameters sent in the API request.
[615] Fix | Delete
*
[616] Fix | Delete
* @param array $api_params The array of data sent in the request.
[617] Fix | Delete
* @param array $this->api_data The array of data set up in the class constructor.
[618] Fix | Delete
* @param string $this->plugin_file The full path and filename of the file.
[619] Fix | Delete
*/
[620] Fix | Delete
$api_params = apply_filters( 'edd_sl_plugin_updater_api_params', $api_params, $this->api_data, $this->plugin_file );
[621] Fix | Delete
[622] Fix | Delete
$request = wp_remote_post(
[623] Fix | Delete
$this->api_url,
[624] Fix | Delete
[
[625] Fix | Delete
'timeout' => 15,
[626] Fix | Delete
'sslverify' => $this->verify_ssl(),
[627] Fix | Delete
'body' => $api_params,
[628] Fix | Delete
]
[629] Fix | Delete
);
[630] Fix | Delete
[631] Fix | Delete
if ( is_wp_error( $request ) || ( 200 !== wp_remote_retrieve_response_code( $request ) ) ) {
[632] Fix | Delete
$this->log_failed_request();
[633] Fix | Delete
[634] Fix | Delete
return false;
[635] Fix | Delete
}
[636] Fix | Delete
[637] Fix | Delete
$request = json_decode( wp_remote_retrieve_body( $request ) );
[638] Fix | Delete
[639] Fix | Delete
if ( $request && isset( $request->sections ) ) {
[640] Fix | Delete
$request->sections = maybe_unserialize( $request->sections );
[641] Fix | Delete
} else {
[642] Fix | Delete
$request = false;
[643] Fix | Delete
}
[644] Fix | Delete
[645] Fix | Delete
if ( $request && isset( $request->banners ) ) {
[646] Fix | Delete
$request->banners = maybe_unserialize( $request->banners );
[647] Fix | Delete
}
[648] Fix | Delete
[649] Fix | Delete
if ( $request && isset( $request->icons ) ) {
[650] Fix | Delete
$request->icons = maybe_unserialize( $request->icons );
[651] Fix | Delete
}
[652] Fix | Delete
[653] Fix | Delete
if ( ! empty( $request->sections ) ) {
[654] Fix | Delete
foreach ( $request->sections as $key => $section ) {
[655] Fix | Delete
$request->$key = (array) $section;
[656] Fix | Delete
}
[657] Fix | Delete
}
[658] Fix | Delete
[659] Fix | Delete
return $request;
[660] Fix | Delete
}
[661] Fix | Delete
[662] Fix | Delete
/**
[663] Fix | Delete
* Get the version info from the cache, if it exists.
[664] Fix | Delete
*
[665] Fix | Delete
* @param string $cache_key Cache key.
[666] Fix | Delete
* @return object
[667] Fix | Delete
*/
[668] Fix | Delete
public function get_cached_version_info( $cache_key = '' ) {
[669] Fix | Delete
[670] Fix | Delete
if ( empty( $cache_key ) ) {
[671] Fix | Delete
$cache_key = $this->get_cache_key();
[672] Fix | Delete
}
[673] Fix | Delete
[674] Fix | Delete
$cache = get_option( $cache_key );
[675] Fix | Delete
[676] Fix | Delete
// Cache is expired.
[677] Fix | Delete
if ( empty( $cache['timeout'] ) || time() > $cache['timeout'] ) {
[678] Fix | Delete
return false;
[679] Fix | Delete
}
[680] Fix | Delete
[681] Fix | Delete
// We need to turn the icons into an array, thanks to WP Core forcing these into an object at some point.
[682] Fix | Delete
$cache['value'] = json_decode( $cache['value'] );
[683] Fix | Delete
if ( ! empty( $cache['value']->icons ) ) {
[684] Fix | Delete
$cache['value']->icons = (array) $cache['value']->icons;
[685] Fix | Delete
}
[686] Fix | Delete
[687] Fix | Delete
return $cache['value'];
[688] Fix | Delete
[689] Fix | Delete
}
[690] Fix | Delete
[691] Fix | Delete
/**
[692] Fix | Delete
* Adds the plugin version information to the database.
[693] Fix | Delete
*
[694] Fix | Delete
* @param string $value Value.
[695] Fix | Delete
* @param string $cache_key Cache key.
[696] Fix | Delete
*/
[697] Fix | Delete
public function set_version_info_cache( $value = '', $cache_key = '' ) {
[698] Fix | Delete
[699] Fix | Delete
if ( empty( $cache_key ) ) {
[700] Fix | Delete
$cache_key = $this->get_cache_key();
[701] Fix | Delete
}
[702] Fix | Delete
[703] Fix | Delete
$data = [
[704] Fix | Delete
'timeout' => strtotime( '+3 hours', time() ),
[705] Fix | Delete
'value' => wp_json_encode( $value ),
[706] Fix | Delete
];
[707] Fix | Delete
[708] Fix | Delete
update_option( $cache_key, $data, 'no' );
[709] Fix | Delete
[710] Fix | Delete
// Delete the duplicate option.
[711] Fix | Delete
delete_option( 'edd_api_request_' . md5( maybe_serialize( $this->slug . $this->api_data['license'] . $this->beta ) ) );
[712] Fix | Delete
}
[713] Fix | Delete
[714] Fix | Delete
/**
[715] Fix | Delete
* Returns if the SSL of the store should be verified.
[716] Fix | Delete
*
[717] Fix | Delete
* @since 1.6.13
[718] Fix | Delete
* @return bool
[719] Fix | Delete
*/
[720] Fix | Delete
private function verify_ssl() {
[721] Fix | Delete
return (bool) apply_filters( 'edd_sl_api_request_verify_ssl', true, $this );
[722] Fix | Delete
}
[723] Fix | Delete
[724] Fix | Delete
/**
[725] Fix | Delete
* Gets the unique key (option name) for a plugin.
[726] Fix | Delete
*
[727] Fix | Delete
* @since 1.9.0
[728] Fix | Delete
* @return string
[729] Fix | Delete
*/
[730] Fix | Delete
private function get_cache_key() {
[731] Fix | Delete
$string = $this->slug . $this->api_data['license'] . $this->beta;
[732] Fix | Delete
[733] Fix | Delete
return 'edd_sl_' . md5( maybe_serialize( $string ) );
[734] Fix | Delete
}
[735] Fix | Delete
[736] Fix | Delete
}
[737] Fix | Delete
[738] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function