File "class-wc-helper-compat.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/includes/admin/helper/class-wc-helper-compat.php
File size: 4.81 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

if (!defined('ABSPATH')) {
    exit;
}
class WC_Helper_Compat
{
    public static function load()
    {
        add_action('woocommerce_helper_loaded', array(__CLASS__, 'helper_loaded'));
    }
    public static function helper_loaded()
    {
        remove_action('admin_notices', 'woothemes_updater_notice');
        add_action('admin_menu', array(__CLASS__, 'admin_menu'));
        if (empty($GLOBALS['woothemes_updater'])) {
            return;
        }
        self::remove_actions();
        self::migrate_connection();
        self::deactivate_plugin();
    }
    public static function remove_actions()
    {
        remove_action('network_admin_notices', array($GLOBALS['woothemes_updater']->admin, 'maybe_display_activation_notice'));
        remove_action('admin_notices', array($GLOBALS['woothemes_updater']->admin, 'maybe_display_activation_notice'));
        remove_action('network_admin_menu', array($GLOBALS['woothemes_updater']->admin, 'register_settings_screen'));
        remove_action('admin_menu', array($GLOBALS['woothemes_updater']->admin, 'register_settings_screen'));
    }
    public static function migrate_connection()
    {
        if (WC_Helper_Options::get('did-migrate')) {
            return;
        }
        $auth = WC_Helper_Options::get('auth');
        if (!empty($auth)) {
            return;
        }
        WC_Helper::log('Attempting oauth/migrate');
        WC_Helper_Options::update('did-migrate', true);
        $master_key = get_option('woothemes_helper_master_key');
        if (empty($master_key)) {
            WC_Helper::log('Master key not found, aborting');
            return;
        }
        $request = WC_Helper_API::post('oauth/migrate', array('body' => array('home_url' => home_url(), 'master_key' => $master_key)));
        if (is_wp_error($request) || wp_remote_retrieve_response_code($request) !== 200) {
            WC_Helper::log('Call to oauth/migrate returned a non-200 response code');
            return;
        }
        $request_token = json_decode(wp_remote_retrieve_body($request));
        if (empty($request_token)) {
            WC_Helper::log('Call to oauth/migrate returned an empty token');
            return;
        }
        $request = WC_Helper_API::post('oauth/access_token', array('body' => array('request_token' => $request_token, 'home_url' => home_url(), 'migrate' => true)));
        if (is_wp_error($request) || wp_remote_retrieve_response_code($request) !== 200) {
            WC_Helper::log('Call to oauth/access_token returned a non-200 response code');
            return;
        }
        $access_token = json_decode(wp_remote_retrieve_body($request), true);
        if (empty($access_token)) {
            WC_Helper::log('Call to oauth/access_token returned an invalid token');
            return;
        }
        WC_Helper_Options::update('auth', array('access_token' => $access_token['access_token'], 'access_token_secret' => $access_token['access_token_secret'], 'site_id' => $access_token['site_id'], 'user_id' => null, 'updated' => time()));
        if (!WC_Helper::_flush_authentication_cache()) {
            WC_Helper::log('Could not obtain connected user info in migrate_connection');
            WC_Helper_Options::update('auth', array());
            return;
        }
    }
    public static function deactivate_plugin()
    {
        include_once ABSPATH . 'wp-admin/includes/plugin.php';
        if (!function_exists('deactivate_plugins')) {
            return;
        }
        if (is_plugin_active('woothemes-updater/woothemes-updater.php')) {
            deactivate_plugins('woothemes-updater/woothemes-updater.php');
            add_action('pre_current_active_plugins', array(__CLASS__, 'plugin_deactivation_notice'));
        }
    }
    public static function plugin_deactivation_notice()
    {
        ?>
		<div id="message" class="error is-dismissible">
			<p><?php 
        printf(__('The WooCommerce Helper plugin is no longer needed. <a href="%s">Manage subscriptions</a> from the extensions tab instead.', 'woocommerce'), esc_url(admin_url('admin.php?page=wc-addons&section=helper')));
        ?></p>
		</div>
		<?php 
    }
    public static function admin_menu()
    {
        $master_key = get_option('woothemes_helper_master_key');
        if (empty($master_key)) {
            return;
        }
        $auth = WC_Helper_Options::get('auth');
        if (!empty($auth['user_id'])) {
            return;
        }
        add_dashboard_page(__('WooCommerce Helper', 'woocommerce'), __('WooCommerce Helper', 'woocommerce'), 'manage_options', 'woothemes-helper', array(__CLASS__, 'render_compat_menu'));
    }
    public static function render_compat_menu()
    {
        $helper_url = add_query_arg(array('page' => 'wc-addons', 'section' => 'helper'), admin_url('admin.php'));
        include WC_Helper::get_view_filename('html-helper-compat.php');
    }
}
WC_Helper_Compat::load();