Hunter Black Hat SEO
Server:LiteSpeed
System:Linux raton.hozzt.com 4.18.0-553.144.1.lve.el8.x86_64 #1 SMP Thu Jul 16 08:31:06 UTC 2026 x86_64
User:altinkayamarble (1260)
PHP:7.4.33
Disabled:symlink, show_source, system, virtual, shell_exec,passthru, exec, popen, proc_open, proc_close, proc_nice, proc_terminate,proc_get_status, pfsockopen,allow_url_fopen, posix_getpwuid, eval,posix_setsid, posix_mkfifo, posix_setpgid,posix_setuid, posix_uname,posix_kill,apache_child_terminate, apache_setenv,define_syslog_variables,escapeshellarg, escapeshellcmd, leak, dl, fp, fput,ftp_connect, ftp_exec,ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist,highlight_file, ini_alter, ini_get_all, ini_restore, inject_code
Upload Files
File: /home/altinkayamarble/www/wp-content/plugins/elementor/core/upgrade/custom-tasks-manager.php
<?php
namespace Elementor\Core\Upgrade;

use Elementor\Core\Base\Background_Task_Manager;
use Elementor\Plugin;

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

class Custom_Tasks_Manager extends Background_Task_Manager {
	const TASKS_OPTION_KEY = 'elementor_custom_tasks';

	const QUERY_LIMIT = 100;

	public function get_name() {
		return 'custom-task-manager';
	}

	public function get_action() {
		return 'custom_task_manger';
	}

	public function get_plugin_name() {
		return 'elementor';
	}

	public function get_plugin_label() {
		return esc_html__( 'Elementor', 'elementor' );
	}

	public function get_task_runner_class() {
		return Task::class;
	}

	public function get_query_limit() {
		return self::QUERY_LIMIT;
	}

	protected function start_run() {
		$custom_tasks_callbacks = $this->get_custom_tasks();

		if ( empty( $custom_tasks_callbacks ) ) {
			return;
		}

		$task_runner = $this->get_task_runner();

		foreach ( $custom_tasks_callbacks as $callback ) {
			$task_runner->push_to_queue( [
				'callback' => $callback,
			] );
		}

		$this->clear_tasks_requested_to_run();

		Plugin::$instance->logger->get_logger()->info( 'Elementor custom task(s) process has been queued.', [
			'meta' => [ $custom_tasks_callbacks ],
		] );

		$task_runner->save()->dispatch();
	}

	public function get_tasks_class() {
		return Custom_Tasks::class;
	}

	public function get_tasks_requested_to_run() {
		return get_option( self::TASKS_OPTION_KEY, [] );
	}

	public function clear_tasks_requested_to_run() {
		return update_option( self::TASKS_OPTION_KEY, [], false );
	}

	public function add_tasks_requested_to_run( $tasks = [] ) {
		$current_tasks = $this->get_tasks_requested_to_run();
		$current_tasks = array_merge( $current_tasks, $tasks );

		update_option( self::TASKS_OPTION_KEY, $current_tasks, false );
	}

	private function get_custom_tasks() {
		$tasks_requested_to_run = $this->get_tasks_requested_to_run();

		$tasks_class = $this->get_tasks_class();
		$tasks_reflection = new \ReflectionClass( $tasks_class );

		$callbacks = [];

		foreach ( $tasks_reflection->getMethods() as $method ) {
			$method_name = $method->getName();

			if ( in_array( $method_name, $tasks_requested_to_run, true ) ) {
				$callbacks[] = [ $tasks_class, $method_name ];
			}
		}

		return $callbacks;
	}

	public function __construct() {
		$task_runner = $this->get_task_runner();

		if ( $task_runner->is_running() ) {
			return;
		}

		$this->start_run();
	}
}