File "shortpixel-plugin-request.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/shortpixel-image-optimiser/class/view/shortpixel-plugin-request.php
File size: 4.57 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

class ShortPixelPluginRequest
{
    private $url;
    private $data = array('server' => array(), 'user' => array(), 'wordpress' => array('deactivated_plugin' => array()));
    private $plugin_file = '';
    private $allow_tracking = 0;
    public $request_successful = false;
    function __construct($_plugin_file, $url, $args)
    {
        $this->url = $url;
        $this->allow_tracking = !$args['anonymous'];
        $this->plugin_file = $_plugin_file;
        $this->data['unique'] = md5(home_url() . get_bloginfo('admin_email'));
        $this->data['key'] = $args['key'];
        $this->data['wordpress']['deactivated_plugin']['uninstall_reason'] = $args['reason'];
        $this->data['wordpress']['deactivated_plugin']['uninstall_details'] = $args['details'];
        $this->_collect_data();
        $this->request_successful = $this->_send_request();
    }
    private function _collect_data()
    {
        $current_plugin = get_plugin_data($this->plugin_file);
        $this->data['wordpress']['deactivated_plugin']['slug'] = $current_plugin['TextDomain'];
        $this->data['wordpress']['deactivated_plugin']['name'] = $current_plugin['Name'];
        $this->data['wordpress']['deactivated_plugin']['version'] = $current_plugin['Version'];
        $this->data['wordpress']['deactivated_plugin']['author'] = $current_plugin['AuthorName'];
        if ($this->allow_tracking) {
            $this->_collect_user_data();
        }
    }
    private function _collect_wordpress_data()
    {
        $this->data['wordpress']['locale'] = get_bloginfo('version') >= 4.7 ? get_user_locale() : get_locale();
        $this->data['wordpress']['wp_version'] = get_bloginfo('version');
        $this->data['wordpress']['multisite'] = is_multisite();
        $this->data['wordpress']['themes'] = $this->get_themes();
        $this->data['wordpress']['plugins'] = $this->get_plugins();
    }
    private function _collect_server_data()
    {
        $this->data['server']['server'] = isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : '';
        $this->data['server']['php_version'] = phpversion();
        $this->data['server']['url'] = home_url();
    }
    private function _collect_user_data()
    {
        $admin = get_user_by('email', get_bloginfo('admin_email'));
        if (!$admin) {
            $this->data['user']['email'] = '';
            $this->data['user']['first_name'] = '';
            $this->data['user']['last_name'] = '';
        } else {
            $this->data['user']['email'] = get_bloginfo('admin_email');
            $this->data['user']['first_name'] = $admin->first_name;
            $this->data['user']['last_name'] = $admin->last_name;
        }
    }
    private function get_themes()
    {
        $theme = wp_get_theme();
        return array('installed' => $this->_get_installed_themes(), 'active' => array('slug' => get_stylesheet(), 'name' => $theme->get('Name'), 'version' => $theme->get('Version'), 'author' => $theme->get('Author')));
    }
    private function _get_installed_themes()
    {
        $installed = wp_get_themes();
        $theme = get_stylesheet();
        $arr = array();
        foreach ($installed as $slug => $info) {
            if ($slug === $theme) {
                continue;
            }
            $arr[$slug] = array('slug' => $slug, 'name' => $info->get('Name'), 'version' => $info->get('Version'), 'author' => $info->get('Author'));
        }
        return $arr;
    }
    private function get_plugins()
    {
        if (!function_exists('get_plugins')) {
            include ABSPATH . '/wp-admin/includes/plugin.php';
        }
        $plugins = get_plugins();
        $option = get_option('active_plugins', array());
        $active = array();
        $installed = array();
        foreach ($plugins as $id => $info) {
            if (in_array($id, $active)) {
                continue;
            }
            $id = explode('/', $id);
            $id = ucwords(str_replace('-', ' ', $id[0]));
            $installed[] = $id;
        }
        foreach ($option as $id) {
            $id = explode('/', $id);
            $id = ucwords(str_replace('-', ' ', $id[0]));
            $active[] = $id;
        }
        return array('installed' => $installed, 'active' => $active);
    }
    private function _send_request()
    {
        $request = wp_remote_post($this->url, array('method' => 'POST', 'timeout' => 20, 'redirection' => 5, 'httpversion' => '1.1', 'blocking' => true, 'body' => $this->data, 'user-agent' => 'MT/EPSILON-CUSTOMER-TRACKING/' . esc_url(home_url())));
        if (is_wp_error($request)) {
            return false;
        }
        return true;
    }
}