File "update-config.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/powerpack-elements/includes/updater/update-config.php
File size: 9.42 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

use PowerpackElements\Classes\PP_Admin_Settings;
define('POWERPACK_SL_URL', 'https://powerpackelements.com');
define('POWERPACK_ITEM_NAME', 'PowerPack Pro for Elementor');
define('POWERPACK_LICENSE_PAGE', 'powerpack-settings');
if (!class_exists('PP_SL_Plugin_Updater')) {
    include dirname(__FILE__) . '/class-pp-plugin-updater.php';
}
function pp_get_license_key()
{
    return defined('PP_ELEMENTS_LICENSE_KEY') ? PP_ELEMENTS_LICENSE_KEY : trim(get_option('pp_license_key'));
}
function pp_plugin_updater()
{
    $license_key = pp_get_license_key();
    $updater = new PP_SL_Plugin_Updater(POWERPACK_SL_URL, POWERPACK_ELEMENTS_PATH . '/powerpack-elements.php', array('version' => POWERPACK_ELEMENTS_VER, 'license' => $license_key, 'item_name' => POWERPACK_ITEM_NAME, 'author' => 'IdeaBox Creations', 'beta' => false));
}
add_action('admin_init', 'pp_plugin_updater', 0);
function pp_sanitize_license($new)
{
    $old = pp_get_license_key();
    if ($old && $old != $new) {
        delete_option('pp_license_status');
    }
    return $new;
}
function pp_do_license_action($action)
{
    if (!in_array($action, array('activate_license', 'deactivate_license'))) {
        return;
    }
    $license = pp_get_license_key();
    $api_params = array('edd_action' => $action, 'license' => $license, 'item_name' => urlencode(POWERPACK_ITEM_NAME), 'url' => network_home_url());
    $response = wp_remote_post(POWERPACK_SL_URL, array('timeout' => 15, 'sslverify' => false, 'body' => $api_params));
    return $response;
}
function pp_activate_license()
{
    if (!isset($_POST['pp_license_activate'])) {
        return;
    }
    if (!check_admin_referer('pp_license_activate_nonce', 'pp_license_activate_nonce')) {
        return;
    }
    $response = pp_do_license_action('activate_license');
    if (is_wp_error($response) || 200 !== wp_remote_retrieve_response_code($response)) {
        if (is_wp_error($response)) {
            $message = $response->get_error_message();
        } else {
            $code = wp_remote_retrieve_response_code($response);
            $response_msg = wp_remote_retrieve_response_message($response);
            if (403 === $code) {
                $message = __('An error occurred while activating license. The request is getting blocked by a security plugin or security settings on server.', 'powerpack');
            } else {
                $message = sprintf(__('An error occurred, please try again. Status: %1$s %2$s', 'powerpack'), $code, $response_msg);
            }
        }
    } else {
        $license_data = json_decode(wp_remote_retrieve_body($response));
        if (false === $license_data->success) {
            $message = pp_get_license_error($license_data);
        }
    }
    if (!empty($message)) {
        $base_url = PP_Admin_Settings::get_form_action();
        $redirect = add_query_arg(array('sl_activation' => 'false', 'message' => urlencode($message)), $base_url);
        wp_redirect($redirect);
        exit;
    }
    update_option('pp_license_status', $license_data->license);
    wp_redirect(PP_Admin_Settings::get_form_action());
    exit;
}
add_action('admin_init', 'pp_activate_license');
function pp_deactivate_license()
{
    if (!isset($_POST['pp_license_deactivate'])) {
        return;
    }
    if (!check_admin_referer('pp_license_deactivate_nonce', 'pp_license_deactivate_nonce')) {
        return;
    }
    $response = pp_do_license_action('deactivate_license');
    if (is_wp_error($response) || 200 !== wp_remote_retrieve_response_code($response)) {
        if (is_wp_error($response)) {
            $message = $response->get_error_message();
        } else {
            $code = wp_remote_retrieve_response_code($response);
            $response_msg = wp_remote_retrieve_response_message($response);
            if (403 === $code) {
                $message = __('An error occurred while deactivating license. The request is getting blocked by a security plugin or security settings on server.', 'powerpack');
            } else {
                $message = sprintf(__('An error occurred, please try again. Status: %1$s %2$s', 'powerpack'), $code, $response_msg);
            }
        }
        $base_url = PP_Admin_Settings::get_form_action();
        $redirect = add_query_arg(array('sl_activation' => 'false', 'message' => urlencode($message)), $base_url);
        wp_redirect($redirect);
        exit;
    }
    $license_data = json_decode(wp_remote_retrieve_body($response));
    if ($license_data->license == 'deactivated') {
        delete_option('pp_license_status');
    }
    wp_redirect(PP_Admin_Settings::get_form_action('&sl_status=' . $license_data->license));
    exit;
}
add_action('admin_init', 'pp_deactivate_license');
function pp_check_license()
{
    global $wp_version;
    $license = pp_get_license_key();
    $api_params = array('edd_action' => 'check_license', 'license' => $license, 'item_name' => urlencode(POWERPACK_ITEM_NAME), 'url' => home_url());
    $response = wp_remote_post(POWERPACK_SL_URL, array('timeout' => 15, 'sslverify' => false, 'body' => $api_params));
    if (is_wp_error($response)) {
        return false;
    }
    $license_data = json_decode(wp_remote_retrieve_body($response));
    return $license_data;
}
function pp_in_plugin_update_message($plugin_data, $response)
{
    $data = pp_check_license();
    if ('valid' !== $data->license) {
        ?>
		<style>
		tr[data-plugin="<?php 
        echo POWERPACK_ELEMENTS_BASE;
        ?>"] .update-message {
			padding: 0;
		}
		tr[data-plugin="<?php 
        echo POWERPACK_ELEMENTS_BASE;
        ?>"] .update-message p:first-of-type {
			border-bottom: 1px solid #ffb922;
			padding-bottom: 8px;
			padding-left: 12px;
		}
		tr[data-plugin="<?php 
        echo POWERPACK_ELEMENTS_BASE;
        ?>"] .pp-update-message {
			padding: 5px 15px;
		}
		tr[data-plugin="<?php 
        echo POWERPACK_ELEMENTS_BASE;
        ?>"] .pp-update-message:before {
			display: none !important;
		}
		tr[data-plugin="<?php 
        echo POWERPACK_ELEMENTS_BASE;
        ?>"] .pp-update-message + p:empty{
			display: none;
		}
		tr[data-plugin="<?php 
        echo POWERPACK_ELEMENTS_BASE;
        ?>"] .pp-buy-button {
			text-decoration: none;
			font-weight: bold;
		}
		</style>
		<?php 
        $main_msg = sprintf(__('Please activate the license to enable automatic updates for this plugin. License status: %s', 'powerpack'), $data->license);
        $message = '';
        $message .= '<p class="pp-update-message">';
        $message .= __('<strong>UPDATE UNAVAILABLE!</strong>', 'powerpack');
        $message .= '&nbsp;&nbsp;';
        $message .= $main_msg;
        $message .= ' <a href="' . POWERPACK_SL_URL . '" class="pp-buy-button" target="_blank">';
        $message .= __('Buy Now', 'powerpack');
        $message .= ' &raquo;</a>';
        $message .= '</p>';
        echo $message;
    }
}
add_action('in_plugin_update_message-' . POWERPACK_ELEMENTS_BASE, 'pp_in_plugin_update_message', 1, 2);
function pp_get_license_error($license_data)
{
    $message = '';
    switch ($license_data->error) {
        case 'expired':
            $message = sprintf(__('Your license key expired on %s.', 'powerpack'), date_i18n(get_site_option('date_format'), strtotime($license_data->expires, current_time('timestamp'))));
            break;
        case 'revoked':
            $message = __('Your license key has been disabled.', 'powerpack');
            break;
        case 'missing':
            $message = __('Invalid license.', 'powerpack');
            break;
        case 'invalid':
        case 'site_inactive':
            $message = __('Your license is not active for this URL.', 'powerpack');
            break;
        case 'item_name_mismatch':
            $message = sprintf(__('This appears to be an invalid license key for %s.', 'powerpack'), POWERPACK_ITEM_NAME);
            break;
        case 'no_activations_left':
            $message = __('Your license key has reached its activation limit.', 'powerpack');
            break;
        default:
            $message = sprintf(__('An error occurred, please try again. Status: %s', 'powerpack'), $license_data->error);
            break;
    }
    return $message;
}
function pp_admin_notices()
{
    $start_el = '<div class="notice error" style="background: #fbfbfb; border-top: 1px solid #eee; border-right: 1px solid #eee;"><p>';
    $end_el = '</p></div>';
    if (isset($_GET['sl_activation']) && !empty($_GET['message'])) {
        switch ($_GET['sl_activation']) {
            case 'false':
                $message = urldecode($_GET['message']);
                echo $start_el;
                echo $message;
                echo $end_el;
                break;
            case 'true':
            default:
                break;
        }
    }
    if (current_user_can('update_plugins')) {
        $license_data = get_transient('powerpack_elements_license_data');
        if (!$license_data) {
            $license_data = pp_check_license();
            set_transient('powerpack_elements_license_data', $license_data, 12 * HOUR_IN_SECONDS);
        }
        if (is_object($license_data) && 'expired' === $license_data->license) {
            $settings = PP_Admin_Settings::get_settings();
            $admin_label = PP_Admin_Settings::get_admin_label();
            if ('off' === $settings['hide_wl_settings'] && 'off' === $settings['hide_plugin']) {
                echo $start_el;
                echo $admin_label . ': ' . pp_get_license_error($license_data);
                echo $end_el;
            }
        }
    }
}
add_action('admin_notices', 'pp_admin_notices', 10);