HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //proc/self/cwd/wp-content/plugins/wp-sheet-editor-premium/modules/init.php
<?php

if (!class_exists('WP_Sheet_Editor_CORE_Modules_Init')) {

	class WP_Sheet_Editor_CORE_Modules_Init {

		var $product_directory = null;
		var $freemius_instance = null;

		function __construct($product_directory, $freemius_instance = null, $auto_init = true) {
			$this->product_directory = $product_directory;
			$this->freemius_instance = $freemius_instance;

			if ($auto_init) {
				$priority = strpos($product_directory, 'wp-sheet-editor') !== false ? 1 : 10;
				add_filter('vg_sheet_editor/modules/list', array($this, 'filter_disallowed_modules_on_editor_page'), $priority);
				$this->init(array('wp-sheet-editor'));
				add_action('plugins_loaded', array($this, 'init'));
			}
		}

		public function get_editor_page_key() {
			$out = false;
			if (isset($_GET['page']) && strpos($_GET['page'], 'vgse-bulk-edit-') !== false) {
				$out = str_replace('vgse-bulk-edit-', '', $_GET['page']);
			}
			return apply_filters('vg_sheet_editor/modules_init/editor_page_key', $out);
		}

		function filter_disallowed_modules_on_editor_page($directories) {
			$package_settings = $this->get_package();
			$current_editor_key = $this->get_editor_page_key();
			if ($current_editor_key && is_object($this->freemius_instance) && !empty($package_settings) && !empty($package_settings['vgEditorKeys']) && in_array($current_editor_key, $package_settings['vgEditorKeys'], true)) {

				$directories = $this->freemius_instance->can_use_premium_code__premium_only() ? array_merge($package_settings['sheetEditorModules']['free'], $package_settings['sheetEditorModules']['pro']) : $package_settings['sheetEditorModules']['free'];
			}

			return $directories;
		}

		function get_package() {

			$plugin_slug = basename($this->product_directory);
			$package_file = WP_PLUGIN_DIR . '/' . $plugin_slug . '/package.json';
			$package_settings = (file_exists($package_file)) ? json_decode(file_get_contents($package_file), true) : array();
			return $package_settings;
		}

		/**
		 * Get all modules in the folder
		 * @return array
		 */
		function get_modules_list() {
			$directories = glob($this->product_directory . '/modules/*', GLOB_ONLYDIR);

			if (!empty($directories)) {
				$directories = array_map('basename', $directories);
			}
			$plugin_slug = basename($this->product_directory);
			$package_settings = $this->get_package();

			if (!empty($package_settings['sheetEditorModules'])) {
				// If we're developing locally and the package.json file exists, only load the defined modules
				$directories = array_intersect($directories, array_merge($package_settings['sheetEditorModules']['free'], $package_settings['sheetEditorModules']['pro']));

				// If we're developing locally and the package.json file exists, only load the allowed modules according to the freemius license
				if (is_object($this->freemius_instance) && !$this->freemius_instance->can_use_premium_code__premium_only()) {
					$directories = array_intersect($directories, $package_settings['sheetEditorModules']['free']);
				}
			}

			$parent_plugin_slug = str_replace(array('-premium'), '', $plugin_slug);
			$directories = apply_filters('vg_sheet_editor/modules/' . $parent_plugin_slug . '/list', $directories);
			return apply_filters('vg_sheet_editor/modules/list', $directories, $parent_plugin_slug);
		}

		function init($modules = array()) {

			if (empty($modules)) {
				$modules = $this->get_modules_list();
			}
			if (empty($modules)) {
				return;
			}

			// Load all modules
			foreach ($modules as $module) {
				$paths = array($this->product_directory . "/modules/$module/$module.php");
				if ($module === 'wp-sheet-editor') {
					$paths[] = $this->product_directory . "/modules/$module/dev/$module.php";
				}

				foreach ($paths as $path) {
					if (file_exists($path)) {
						require_once $path;
					}
				}
			}

			$plugin_inc_files = glob(untrailingslashit($this->product_directory) . '/inc/*.php');
			$inc_files = array_merge(glob(untrailingslashit(__DIR__) . '/*.php'), $plugin_inc_files, glob(untrailingslashit($this->product_directory) . '/inc/integrations/*.php'));
			foreach ($inc_files as $inc_file) {
				if (!is_file($inc_file)) {
					continue;
				}

				require_once $inc_file;
			}

			// Not like register_uninstall_hook(), you do NOT have to use a static function.
		//	$this->freemius_instance->add_action('after_uninstall', array($this, 'on_uninstall'));
		}

		function on_uninstall() {
			do_action('vg_sheet_editor/on_uninstall', $this->product_directory, $this->freemius_instance);
		}

		function __set($name, $value) {
			$this->$name = $value;
		}

		function __get($name) {
			return $this->$name;
		}

	}

}