File "class-pum-admin-upgrade-routine.php"

Full Path: /home/tekvhqgl/public_html/wp-content/plugins/popup-maker/includes/admin/upgrades/class-pum-admin-upgrade-routine.php
File size: 2.15 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * Upgrade Routine Class
 *
 * @package     PUM
 * @subpackage  Admin/Upgrades
 * @copyright   Copyright (c) 2023, Code Atlantic LLC
 * @license     http://opensource.org/licenses/gpl-3.0.php GNU Public License
 * @since       1.4
 */

// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class PUM_Admin_Upgrade_Routine
 */
class PUM_Admin_Upgrade_Routine {

	/**
	 * Describe the upgrade routine.
	 *
	 * @return string
	 */
	public static function description() {
		return '';
	}

	/**
	 * Run the upgrade routine.
	 *
	 * @return void
	 */
	public static function run() {
	}

	/**
	 * Properly redirects or returns redirect url if DOING_AJAX.
	 *
	 * @param string $redirect
	 */
	public static function redirect( $redirect = '' ) {
		wp_safe_redirect( $redirect );
		exit;
	}

	/**
	 * Generate the next step ajax response or redirect.
	 */
	public static function next_step() {

		$upgrades = PUM_Admin_Upgrades::instance();

		$upgrades->step_up();

		if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
			echo wp_json_encode(
				[
					'status' => sprintf( __( 'Step %1$d of approximately %2$d running', 'popup-maker' ), $upgrades->get_arg( 'step' ), $upgrades->get_arg( 'steps' ) ),
					'next'   => $upgrades->get_args(),
				]
			);
			exit;
		} else {
			$redirect = add_query_arg( $upgrades->get_args(), admin_url() );
			self::redirect( $redirect );
		}

	}

	public static function done() {

		$upgrades = PUM_Admin_Upgrades::instance();

		delete_option( 'pum_doing_upgrade' );

		$upgrades->set_upgrade_complete( $upgrades->current_routine() );

		$upgrades->set_pum_db_ver( $upgrades->get_arg( 'pum-upgrade' ) );

		$next_routine = $upgrades->next_routine();

		if ( $upgrades->has_upgrades() && $next_routine && $upgrades->get_upgrade( $next_routine ) ) {
			if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {

				$upgrades->set_arg( 'step', 1 );
				$upgrades->set_arg( 'completed', 0 );
				$upgrades->set_arg( 'pum-upgrade', $next_routine );

				echo wp_json_encode(
					[
						'status' => sprintf( '<strong>%s</strong>', $upgrades->get_upgrade( $next_routine ) ),
						'next'   => $upgrades->get_args(),
					]
				);
				exit;
			}
		}

	}
}