Uname:Linux server.rehabsharif.com 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64

Base Dir : /home/nobi37te/public_html

User : nobi37te


403WebShell
403Webshell
Server IP : 172.67.134.116  /  Your IP : 216.73.217.22
Web Server : Apache
System : Linux server.rehabsharif.com 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64
User : nobi37te ( 1003)
PHP Version : 8.2.33
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/nobi37te/public_html/wp-content/plugins/nitropack/classes/Integration/Plugin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/nobi37te/public_html/wp-content/plugins/nitropack/classes/Integration/Plugin/Elementor.php
<?php

namespace NitroPack\Integration\Plugin;

class Elementor {

	const STAGE = "late";

	public static function isActive() {
		$activePlugins = apply_filters('active_plugins', get_option('active_plugins'));
		if (defined('ELEMENTOR_PRO_VERSION') || in_array( 'elementor-pro/elementor-pro.php', $activePlugins )) {
			return true;
		}
		if (defined('ELEMENTOR_VERSION') || in_array( 'elementor/elementor.php', $activePlugins )) {
			return true;
		}
		return false;
	}

	public function init($stage) {
		if ( ! self::isActive() ) {
			return;
		}

		add_action( 'save_post', array($this, 'purge_cache_on_custom_code_snippet_update'), 10, 3 );
		add_action( 'elementor/document/after_save', array($this, 'purge_on_kit_update'), 10, 2 );

		// Add AJAX handler for Elementor Tools page cache clearing
		add_action( 'wp_ajax_nitropack_elementor_clear_cache', array($this, 'ajax_clear_cache') );
	}

	public function purge_cache_on_custom_code_snippet_update( $post_id, $post, $update ) {

		if ( 'elementor_snippet' !== $post->post_type || defined('DOING_AUTOSAVE') && DOING_AUTOSAVE || 'auto-draft' === $post->post_status ) {
			return;
		}

		if( strpos( wp_get_raw_referer(), 'post-new' ) > 0 ) {

			if ( empty( $_POST['code'] ) ) {
				return;
			}

			/* If new snippet is added */
			nitropack_sdk_invalidate(NULL, NULL, 'Elementor Custom Code Snippet Added');
		} else {

			/* If old snippet is Updated */
			nitropack_sdk_invalidate(NULL, NULL, 'Elementor Custom Code Snippet Updated');
		}
	}

	/**
	 * Handle Global Settings Updates Only (Document of type Kit)
	 * Hook: 'elementor/document/after_save'
	 */
	public function purge_on_kit_update( $document, $data ) {
		// Check if the document being saved is a "Kit" (Global Settings)
		// We strictly check the class name or type to ensure it's not a normal page.
		$is_kit = (
			$document instanceof \Elementor\Core\Kits\Documents\Kit ||
			$document->get_type() === 'kit'
		);

		if (! $is_kit) {
			return;
		}

		$active_kit_id = \Elementor\Plugin::$instance->kits_manager->get_active_id();

		if ( $document->get_id() != $active_kit_id ) {
			return;
		}

		if ( function_exists('nitropack_sdk_purge') && nitropack_sdk_purge( NULL, NULL, 'Light purge, because of Elementor Settings/CSS Update', \NitroPack\SDK\PurgeType::LIGHT_PURGE ) ) {
			\NitroPack\WordPress\NitroPack::getInstance()->getLogger()->notice('Light purge, because of Elementor Settings/CSS Update');
		}
	}

	/**
	 * AJAX handler for clearing NitroPack cache from Elementor Tools page
	 * Triggered when user clicks Clear Cache button on Elementor Tools admin page
	 * Hook: 'wp_ajax_nitropack_elementor_clear_cache'
	 */
	public function ajax_clear_cache() {
		// Verify nonce for security
		check_ajax_referer( 'nitropack_elementor_clear_cache', 'nonce' );

		// Check user permissions (same as Elementor's manage_options requirement)
		if ( ! current_user_can( 'manage_options' ) ) {
			wp_send_json_error( array( 'message' => 'Permission denied' ) );
			return;
		}

		try {
			// Execute NitroPack light purge
			if ( function_exists('nitropack_sdk_purge') ) {
				$result = nitropack_sdk_purge(
					NULL,
					NULL,
					'Light purge triggered from Elementor Tools Clear Cache',
					\NitroPack\SDK\PurgeType::LIGHT_PURGE
				);

				if ( $result ) {
					// Log success
					\NitroPack\WordPress\NitroPack::getInstance()
						->getLogger()
						->notice('Light purge triggered from Elementor Tools Clear Cache');

					wp_send_json_success( array( 'message' => 'NitroPack cache cleared successfully' ) );
				} else {
					wp_send_json_error( array( 'message' => 'NitroPack cache clearing failed' ) );
				}
			} else {
				wp_send_json_error( array( 'message' => 'NitroPack SDK not available' ) );
			}
		} catch ( \Exception $e ) {
			// Log error
			\NitroPack\WordPress\NitroPack::getInstance()
				->getLogger()
				->error('Error clearing NitroPack cache from Elementor Tools: ' . $e->getMessage());

			wp_send_json_error( array( 'message' => 'Error clearing cache: ' . $e->getMessage() ) );
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit