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.../trunk/classes/Utils
File: Upgrades.php
if ( empty( $upgrade_id ) ) {
[500] Fix | Delete
return false;
[501] Fix | Delete
}
[502] Fix | Delete
[503] Fix | Delete
$completed_upgrades = $this->get_completed_upgrades();
[504] Fix | Delete
[505] Fix | Delete
return in_array( $upgrade_id, $completed_upgrades, true );
[506] Fix | Delete
}
[507] Fix | Delete
[508] Fix | Delete
/**
[509] Fix | Delete
* Conditional function to see if there are upgrades available.
[510] Fix | Delete
*
[511] Fix | Delete
* @return bool
[512] Fix | Delete
*/
[513] Fix | Delete
public function has_uncomplete_upgrades() {
[514] Fix | Delete
return (bool) count( $this->get_uncompleted_upgrades() );
[515] Fix | Delete
}
[516] Fix | Delete
[517] Fix | Delete
/**
[518] Fix | Delete
* Returns array of uncompleted upgrades.
[519] Fix | Delete
*
[520] Fix | Delete
* This doesn't return an upgrade if:
[521] Fix | Delete
* - It was previously complete.
[522] Fix | Delete
* - If any false values in the upgrades $rules array are found.
[523] Fix | Delete
*
[524] Fix | Delete
* @return array
[525] Fix | Delete
*/
[526] Fix | Delete
public function get_uncompleted_upgrades() {
[527] Fix | Delete
$required_upgrades = $this->get_routines();
[528] Fix | Delete
[529] Fix | Delete
foreach ( $required_upgrades as $upgrade_id => $upgrade ) {
[530] Fix | Delete
// If the upgrade has already completed or one of the rules failed remove it from the list.
[531] Fix | Delete
if ( $this->has_completed_upgrade( $upgrade_id ) || in_array( false, $upgrade['rules'], true ) ) {
[532] Fix | Delete
unset( $required_upgrades[ $upgrade_id ] );
[533] Fix | Delete
}
[534] Fix | Delete
}
[535] Fix | Delete
[536] Fix | Delete
return $required_upgrades;
[537] Fix | Delete
}
[538] Fix | Delete
[539] Fix | Delete
/**
[540] Fix | Delete
* Handles Ajax for processing a upgrade upgrade/que request.
[541] Fix | Delete
*/
[542] Fix | Delete
public function process_upgrade_request() {
[543] Fix | Delete
[544] Fix | Delete
$upgrade_id = isset( $_REQUEST['upgrade_id'] ) ? sanitize_key( $_REQUEST['upgrade_id'] ) : false;
[545] Fix | Delete
[546] Fix | Delete
if ( ! $upgrade_id && ! $this->has_uncomplete_upgrades() ) {
[547] Fix | Delete
wp_send_json_error(
[548] Fix | Delete
[
[549] Fix | Delete
'error' => __( 'A batch process ID must be present to continue.', 'popup-maker' ),
[550] Fix | Delete
]
[551] Fix | Delete
);
[552] Fix | Delete
}
[553] Fix | Delete
[554] Fix | Delete
// Nonce.
[555] Fix | Delete
if ( ! check_ajax_referer( 'pum_upgrade_ajax_nonce', 'nonce' ) ) {
[556] Fix | Delete
wp_send_json_error(
[557] Fix | Delete
[
[558] Fix | Delete
'error' => __( 'You do not have permission to initiate this request. Contact an administrator for more information.', 'popup-maker' ),
[559] Fix | Delete
]
[560] Fix | Delete
);
[561] Fix | Delete
}
[562] Fix | Delete
[563] Fix | Delete
if ( ! $upgrade_id ) {
[564] Fix | Delete
$upgrade_id = $this->get_current_upgrade_id();
[565] Fix | Delete
}
[566] Fix | Delete
[567] Fix | Delete
$step = ! empty( $_REQUEST['step'] ) ? absint( $_REQUEST['step'] ) : 1;
[568] Fix | Delete
[569] Fix | Delete
/**
[570] Fix | Delete
* Instantiate the upgrade class.
[571] Fix | Delete
*
[572] Fix | Delete
* @var PUM_Interface_Batch_Process|PUM_Interface_Batch_PrefetchProcess $upgrade
[573] Fix | Delete
*/
[574] Fix | Delete
$upgrade = $this->get_upgrade( $upgrade_id, $step );
[575] Fix | Delete
[576] Fix | Delete
if ( false === $upgrade ) {
[577] Fix | Delete
wp_send_json_error(
[578] Fix | Delete
[
[579] Fix | Delete
'error' => sprintf( __( '%s is an invalid batch process ID.', 'popup-maker' ), esc_html( $upgrade_id ) ),
[580] Fix | Delete
]
[581] Fix | Delete
);
[582] Fix | Delete
}
[583] Fix | Delete
[584] Fix | Delete
/**
[585] Fix | Delete
* Garbage collect any old temporary data in the case step is 1.
[586] Fix | Delete
* Here to prevent case ajax passes step 1 without resetting process counts.
[587] Fix | Delete
*/
[588] Fix | Delete
$first_step = $step < 2;
[589] Fix | Delete
[590] Fix | Delete
if ( $first_step ) {
[591] Fix | Delete
$upgrade->finish();
[592] Fix | Delete
}
[593] Fix | Delete
[594] Fix | Delete
$using_prefetch = ( $upgrade instanceof PUM_Interface_Batch_PrefetchProcess );
[595] Fix | Delete
[596] Fix | Delete
// Handle pre-fetching data.
[597] Fix | Delete
if ( $using_prefetch ) {
[598] Fix | Delete
// Initialize any data needed to process a step.
[599] Fix | Delete
$data = isset( $_REQUEST['form'] ) ? sanitize_key( $_REQUEST['form'] ) : [];
[600] Fix | Delete
[601] Fix | Delete
$upgrade->init( $data );
[602] Fix | Delete
$upgrade->pre_fetch();
[603] Fix | Delete
}
[604] Fix | Delete
[605] Fix | Delete
/** @var int|string|WP_Error $step */
[606] Fix | Delete
$step = $upgrade->process_step();
[607] Fix | Delete
[608] Fix | Delete
if ( ! is_wp_error( $step ) ) {
[609] Fix | Delete
$response_data = [
[610] Fix | Delete
'step' => $step,
[611] Fix | Delete
'next' => null,
[612] Fix | Delete
];
[613] Fix | Delete
[614] Fix | Delete
// Finish and set the status flag if done.
[615] Fix | Delete
if ( 'done' === $step ) {
[616] Fix | Delete
$response_data['done'] = true;
[617] Fix | Delete
$response_data['message'] = $upgrade->get_message( 'done' );
[618] Fix | Delete
[619] Fix | Delete
// Once all calculations have finished, run cleanup.
[620] Fix | Delete
$upgrade->finish();
[621] Fix | Delete
[622] Fix | Delete
// Set the upgrade complete.
[623] Fix | Delete
pum_set_upgrade_complete( $upgrade_id );
[624] Fix | Delete
[625] Fix | Delete
if ( $this->has_uncomplete_upgrades() ) {
[626] Fix | Delete
// Since the other was complete return the next (now current) upgrade_id.
[627] Fix | Delete
$response_data['next'] = $this->get_current_upgrade_id();
[628] Fix | Delete
}
[629] Fix | Delete
} else {
[630] Fix | Delete
$response_data['done'] = false;
[631] Fix | Delete
$response_data['message'] = $first_step ? $upgrade->get_message( 'start' ) : '';
[632] Fix | Delete
$response_data['percentage'] = $upgrade->get_percentage_complete();
[633] Fix | Delete
}
[634] Fix | Delete
[635] Fix | Delete
wp_send_json_success( $response_data );
[636] Fix | Delete
} else {
[637] Fix | Delete
wp_send_json_error( $step );
[638] Fix | Delete
}
[639] Fix | Delete
}
[640] Fix | Delete
[641] Fix | Delete
/**
[642] Fix | Delete
* Returns the first key in the uncompleted upgrades.
[643] Fix | Delete
*
[644] Fix | Delete
* @return string|null
[645] Fix | Delete
*/
[646] Fix | Delete
public function get_current_upgrade_id() {
[647] Fix | Delete
$upgrades = $this->get_uncompleted_upgrades();
[648] Fix | Delete
[649] Fix | Delete
reset( $upgrades );
[650] Fix | Delete
[651] Fix | Delete
return key( $upgrades );
[652] Fix | Delete
}
[653] Fix | Delete
[654] Fix | Delete
/**
[655] Fix | Delete
* Returns the current upgrade.
[656] Fix | Delete
*
[657] Fix | Delete
* @return bool|PUM_Interface_Batch_PrefetchProcess|PUM_Interface_Batch_Process
[658] Fix | Delete
*/
[659] Fix | Delete
public function get_current_upgrade() {
[660] Fix | Delete
$upgrade_id = $this->get_current_upgrade_id();
[661] Fix | Delete
[662] Fix | Delete
return $this->get_upgrade( $upgrade_id );
[663] Fix | Delete
}
[664] Fix | Delete
[665] Fix | Delete
/**
[666] Fix | Delete
* Gets the upgrade process object.
[667] Fix | Delete
*
[668] Fix | Delete
* @param string $upgrade_id
[669] Fix | Delete
* @param int $step
[670] Fix | Delete
*
[671] Fix | Delete
* @return bool|PUM_Interface_Batch_Process|PUM_Interface_Batch_PrefetchProcess
[672] Fix | Delete
*/
[673] Fix | Delete
public function get_upgrade( $upgrade_id = '', $step = 1 ) {
[674] Fix | Delete
$upgrade = $this->registry->get( $upgrade_id );
[675] Fix | Delete
[676] Fix | Delete
if ( ! $upgrade ) {
[677] Fix | Delete
return false;
[678] Fix | Delete
}
[679] Fix | Delete
[680] Fix | Delete
$class = isset( $upgrade['class'] ) ? sanitize_text_field( $upgrade['class'] ) : '';
[681] Fix | Delete
$class_file = isset( $upgrade['file'] ) ? $upgrade['file'] : '';
[682] Fix | Delete
[683] Fix | Delete
if ( ! class_exists( $class ) && ! empty( $class_file ) && file_exists( $class_file ) ) {
[684] Fix | Delete
require_once $class_file;
[685] Fix | Delete
} else {
[686] Fix | Delete
wp_send_json_error(
[687] Fix | Delete
[
[688] Fix | Delete
'error' => sprintf( __( 'An invalid file path is registered for the %1$s batch process handler.', 'popup-maker' ), "<code>{$upgrade_id}</code>" ),
[689] Fix | Delete
]
[690] Fix | Delete
);
[691] Fix | Delete
}
[692] Fix | Delete
[693] Fix | Delete
if ( empty( $class ) || ! class_exists( $class ) ) {
[694] Fix | Delete
wp_send_json_error(
[695] Fix | Delete
[
[696] Fix | Delete
'error' => sprintf( __( '%1$s is an invalid handler for the %2$s batch process. Please try again.', 'popup-maker' ), "<code>{$class}</code>", "<code>{$upgrade_id}</code>" ),
[697] Fix | Delete
]
[698] Fix | Delete
);
[699] Fix | Delete
}
[700] Fix | Delete
[701] Fix | Delete
/**
[702] Fix | Delete
* @var PUM_Interface_Batch_Process|PUM_Interface_Batch_PrefetchProcess
[703] Fix | Delete
*/
[704] Fix | Delete
return new $class( $step );
[705] Fix | Delete
}
[706] Fix | Delete
[707] Fix | Delete
/**
[708] Fix | Delete
* Add upgrades tab to tools page if there are upgrades available.
[709] Fix | Delete
*
[710] Fix | Delete
* @param array $tabs
[711] Fix | Delete
*
[712] Fix | Delete
* @return array
[713] Fix | Delete
*/
[714] Fix | Delete
public function tools_page_tabs( $tabs = [] ) {
[715] Fix | Delete
[716] Fix | Delete
if ( $this->has_uncomplete_upgrades() ) {
[717] Fix | Delete
$tabs['upgrades'] = __( 'Upgrades', 'popup-maker' );
[718] Fix | Delete
}
[719] Fix | Delete
[720] Fix | Delete
return $tabs;
[721] Fix | Delete
}
[722] Fix | Delete
[723] Fix | Delete
/**
[724] Fix | Delete
* Renders upgrade form on the tools page upgrade tab.
[725] Fix | Delete
*/
[726] Fix | Delete
public function tools_page_tab_content() {
[727] Fix | Delete
if ( ! $this->has_uncomplete_upgrades() ) {
[728] Fix | Delete
_e( 'No upgrades currently required.', 'popup-maker' );
[729] Fix | Delete
[730] Fix | Delete
return;
[731] Fix | Delete
}
[732] Fix | Delete
[733] Fix | Delete
// Enqueue admin JS for the batch processor.
[734] Fix | Delete
wp_enqueue_script( 'pum-admin-batch' );
[735] Fix | Delete
wp_enqueue_style( 'pum-admin-batch' );
[736] Fix | Delete
[737] Fix | Delete
$this->render_upgrade_notice();
[738] Fix | Delete
$this->render_form();
[739] Fix | Delete
}
[740] Fix | Delete
}
[741] Fix | Delete
[742] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function