403Webshell
Server IP : 195.130.67.5  /  Your IP : 216.73.217.127
Web Server : Microsoft-IIS/10.0
System : Windows NT WEBSERVER1 10.0 build 17763 (Windows Server 2016) i586
User : IUSR ( 0)
PHP Version : 7.4.19
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/inetpub/wwwroot/ia/wp-content/plugins/wordpress-popular-posts/src/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/inetpub/wwwroot/ia/wp-content/plugins/wordpress-popular-posts/src/Upgrader.php
<?php
/**
 * Handles plugin upgrades.
 *
 * @link       https://cabrerahector.com
 * @since      7.4.0
 *
 * @package    WordPressPopularPosts
 */

namespace WordPressPopularPosts;

use WordPressPopularPosts\Activation\Activator;
use WordPressPopularPosts\Helper;

class Upgrader {

    /**
     * Registers class hooks.
     *
     * @since   7.4.0
     */
    public function hooks()
    {
        add_action('init', [$this, 'upgrade_check']);
    }

    /**
     * Checks whether an upgrade is required.
     *
     * @since   2.4.0
     */
    public function upgrade_check()
    {
        $this->upgrade_site();
    }

    /**
     * Upgrades single site.
     *
     * @since   4.0.7
     */
    private function upgrade_site()
    {
        // Get WPP version
        $wpp_ver = get_option('wpp_ver');

        if ( ! $wpp_ver ) {
            add_option('wpp_ver', WPP_VERSION);
        } elseif ( version_compare($wpp_ver, WPP_VERSION, '<') ) {
            $this->upgrade();
        }
    }

    /**
     * On plugin upgrade, performs a number of actions: update WPP database tables structures (if needed),
     * run the setup wizard (if needed), and some other checks.
     *
     * @since   2.4.0
     * @access  private
     */
    private function upgrade()
    {
        $now = Helper::now();

        // Keep the upgrade process from running too many times
        $wpp_update = get_option('wpp_update');

        if ( $wpp_update ) {
            $from_time = strtotime($wpp_update);
            $to_time = strtotime($now);
            $difference_in_minutes = round(abs($to_time - $from_time)/60, 2);

            // Upgrade flag is still valid, abort
            if ( $difference_in_minutes <= 15 ) {
                return;
            }

            // Upgrade flag expired, delete it and continue
            delete_option('wpp_update');
        }

        // Upgrade flag
        add_option('wpp_update', $now);

        $this->update_db_tables($now);

        // Update WPP version
        update_option('wpp_ver', WPP_VERSION);
        // Remove upgrade flag
        delete_option('wpp_update');
    }

    /**
     * Updates plugin's database tables.
     *
     * @since  7.3.6
     * @access  private
     * @global  object  $wpdb
     */
    private function update_db_tables($now)
    {
        global $wpdb;

        // Set table name
        $prefix = $wpdb->prefix . 'popularposts';

        //phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching,WordPress.DB.DirectDatabaseQuery.SchemaChange

        // Update data table structure and indexes
        $dataFields = $wpdb->get_results(
            $wpdb->prepare("SHOW FIELDS FROM %i;", "{$prefix}data")
        );

        foreach ( $dataFields as $column ) {
            if ( 'day' == $column->Field ) {
                $wpdb->query(
                    $wpdb->prepare("ALTER TABLE %i ALTER COLUMN day DROP DEFAULT;", "{$prefix}data")
                );
            }

            if ( 'last_viewed' == $column->Field ) {
                $wpdb->query(
                    $wpdb->prepare("ALTER TABLE %i ALTER COLUMN last_viewed DROP DEFAULT;", "{$prefix}data")
                );
            }
        }

        // Update summary table structure and indexes
        $summaryFields = $wpdb->get_results(
            $wpdb->prepare("SHOW FIELDS FROM %i;", "{$prefix}summary")
        );

        foreach ( $summaryFields as $column ) {
            if ( 'last_viewed' == $column->Field ) {
                $wpdb->query(
                    $wpdb->prepare("ALTER TABLE %i CHANGE last_viewed view_datetime datetime NOT NULL, ADD KEY view_datetime (view_datetime);", "{$prefix}summary")
                );
            }

            if ( 'view_date' == $column->Field ) {
                $wpdb->query(
                    $wpdb->prepare("ALTER TABLE %i ALTER COLUMN view_date DROP DEFAULT;", "{$prefix}summary")
                );
            }

            if ( 'view_datetime' == $column->Field ) {
                $wpdb->query(
                    $wpdb->prepare("ALTER TABLE %i ALTER COLUMN view_datetime DROP DEFAULT;", "{$prefix}summary")
                );
            }
        }

        $summaryIndexes = $wpdb->get_results(
            $wpdb->prepare("SHOW INDEX FROM %i;", "{$prefix}summary")
        );

        foreach( $summaryIndexes as $index ) {
            if ( 'ID_date' == $index->Key_name ) {
                $wpdb->query(
                    $wpdb->prepare("ALTER TABLE %i DROP INDEX ID_date;", "{$prefix}summary")
                );
            }

            if ( 'last_viewed' == $index->Key_name ) {
                $wpdb->query(
                    $wpdb->prepare("ALTER TABLE %i DROP INDEX last_viewed;", "{$prefix}summary")
                );
            }
        }

        $transientsIndexes = $wpdb->get_results(
            $wpdb->prepare("SHOW INDEX FROM %i;", "{$prefix}transients")
        );
        $transientsHasTKeyIndex = false;

        foreach( $transientsIndexes as $index ) {
            if ( 'tkey' == $index->Key_name ) {
                $transientsHasTKeyIndex = true;
                break;
            }
        }

        if ( ! $transientsHasTKeyIndex ) {
            $wpdb->query(
                $wpdb->prepare("TRUNCATE TABLE %i;", "{$prefix}transients")
            );
            $wpdb->query(
                $wpdb->prepare("ALTER TABLE %i ADD UNIQUE KEY tkey (tkey);", "{$prefix}transients")
            );
        }

        // Validate the structure of the tables, create missing tables / fields if necessary
        Activator::track_new_site();

        // Check storage engine
        $storage_engine_data = $wpdb->get_var(
            $wpdb->prepare("SELECT `ENGINE` FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA`=%s AND `TABLE_NAME`=%s;", $wpdb->dbname, "{$prefix}data")
        );

        if ( 'InnoDB' != $storage_engine_data ) {
            $wpdb->query(
                $wpdb->prepare("ALTER TABLE %i ENGINE=InnoDB;", "{$prefix}data")
            );
        }

        $storage_engine_summary = $wpdb->get_var(
            $wpdb->prepare("SELECT `ENGINE` FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA`=%s AND `TABLE_NAME`=%s;", $wpdb->dbname, "{$prefix}summary")
        );

        if ( 'InnoDB' != $storage_engine_summary ) {
            $wpdb->query(
                $wpdb->prepare("ALTER TABLE %i ENGINE=InnoDB;", "{$prefix}summary")
            );
        }

        //phpcs:enable
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit