HEX
Server: nginx/1.18.0
System: Linux iZj6c1ieg2jrpk1z5tzi19Z 6.3.9-1.el7.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 21 22:18:40 EDT 2023 x86_64
User: www (1001)
PHP: 8.2.4
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.cytocare.cn/wp-content/plugins/wedocs/wedocs.php
<?php
/*
Plugin Name: weDocs
Plugin URI: https://wedocs.co/
Description: A documentation plugin for WordPress
Version: 2.1.11
Author: weDevs
Author URI: https://wedocs.co/?utm_source=wporg&utm_medium=banner&utm_campaign=author-uri
License: GPL2
Text Domain: wedocs
Domain Path: /languages
*/

/*
 * Copyright (c) 2021 Tareq Hasan (email: tareq@wedevs.com). All rights reserved.
 *
 * Released under the GPL license
 * http://www.opensource.org/licenses/gpl-license.php
 *
 * This is an add-on for WordPress
 * http://wordpress.org/
 *
 * **********************************************************************
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 * **********************************************************************
 */

// don't call the file directly
use Appsero\Client;
use WeDevs\WeDocs\Capability;

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

require_once __DIR__ . '/vendor/autoload.php';
require_once plugin_dir_path(__FILE__) . 'assets/build/blocks/DocsGrid/render.php';

/**
 * WeDocs class.
 *
 * @class WeDocs The class that holds the entire WeDocs plugin
 */
final class WeDocs {

    /**
     * Plugin version.
     *
     * @var string
     */
    const VERSION = '2.1.11';

    /**
     * The plugin url.
     *
     * @var string
     */
    public $plugin_url;

    /**
     * The plugin path.
     *
     * @var string
     */
    public $plugin_path;

    /**
     * The theme directory path.
     *
     * @var string
     */
    public $theme_dir_path;

    /**
     * The post type name.
     *
     * @var string
     */
    private $post_type = 'docs';

    /**
     * Holds various class instances
     *
     * @var array
     */
    private $container = [];

    /**
     * Class constructor.
     */
    private function __construct() {
        $this->define_constants();
        $this->init_actions();

        register_activation_hook( __FILE__, [ $this, 'activate' ] );

        add_action( 'after_setup_theme', [ $this, 'init_classes' ] );

        $this->init_action_scheduler();
    }

    /**
     * Initializes the WeDocs() class.
     *
     * Checks for an existing WeDocs() instance
     * and if it doesn't find one, creates it.
     */
    public static function init() {
        static $instance = false;

        if ( ! $instance ) {
            $instance = new WeDocs();
        }

        return $instance;
    }

    /**
     * Define the required plugin constants
     *
     * @return void
     */
    public function define_constants() {
        define( 'WEDOCS_VERSION', self::VERSION );
        define( 'WEDOCS_FILE', __FILE__ );
        define( 'WEDOCS_PATH', __DIR__ );
        define( 'WEDOCS_URL', plugins_url( '', WEDOCS_FILE ) );
        define( 'WEDOCS_ASSETS', WEDOCS_URL . '/assets' );
        define( 'WEDOCS_PROMO_KEY', 'wedocs_promo_notices' );
        define( 'WEDOCS_PROMO_URL', 'https://raw.githubusercontent.com/weDevsOfficial/wedocs-util/refs/heads/master/promotion.json' );
        define( 'WEDOCS_LOGO_URL', WEDOCS_URL . '/assets/img/wedocs-icon-128x128.png' );
    }

    /**
     * Magic getter to bypass referencing plugin.
     *
     * @param $prop
     *
     * @return mixed
     */
    public function __get( $prop ) {
        if ( array_key_exists( $prop, $this->container ) ) {
            return $this->container[ $prop ];
        }

        return $this->{$prop};
    }

    /**
     * Initialize the plugin.
     *
     * @return void
     */
    public function init_actions() {
        $this->theme_dir_path = apply_filters( 'wedocs_theme_dir_path', 'wedocs/' );

        // Localize our plugin
        add_action( 'init', [ $this, 'localization_setup' ] );
        add_action('init', [$this, 'register_blocks']);

        // registeer our widget
        add_action( 'widgets_init', [ $this, 'register_widget' ] );
    }

    public function register_blocks() {
        // Register the DocsGrid block
        register_block_type(
            plugin_dir_path(__FILE__) . 'assets/build/blocks/DocsGrid',
            array(
                'render_callback' => 'render_wedocs_docs_grid'
            )
        );
    }

    /**
     * The plugin activation function.
     *
     * @since 1.3
     *
     * @return void
     */
    public function activate() {
        $installer = new WeDevs\WeDocs\Installer();
        $installer->run();

        // Set the redirect option to true when the plugin is activated.
        update_option( 'wedocs_activation_redirect', true );
    }

    /**
     * Initialize the classes.
     *
     * @since 1.4
     *
     * @return void
     */
    public function init_classes() {
        $this->container['post_type'] = new WeDevs\WeDocs\Post_Types();

        if ( is_admin() ) {
            $this->container['admin'] = new WeDevs\WeDocs\Admin();
        } else {
            $this->container['frontend'] = new WeDevs\WeDocs\Frontend();
        }

        if ( wp_doing_ajax() ) {
            $this->container['ajax'] = new WeDevs\WeDocs\Ajax();
        }

        $this->container['api']      = new WeDevs\WeDocs\API();
        $this->container['assets']   = new WeDevs\WeDocs\Assets();
        $this->container['migrate']  = new WeDevs\WeDocs\Admin\Migrate();
        $this->container['upgrader'] = new WeDevs\WeDocs\Upgrader\Upgrader();
        $this->container['capability'] = new Capability();
    }

    /**
     * Initialize plugin for localization.
     *
     * @uses load_plugin_textdomain()
     */
    public function localization_setup() {
        load_plugin_textdomain( 'wedocs', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
    }

    /**
     * Register the search widget.
     *
     * @return void
     */
    public function register_widget() {
        register_widget( 'WeDevs\WeDocs\Widget' );
    }

    /**
     * Get the plugin url.
     *
     * @return string
     */
    public function plugin_url() {
        if ( $this->plugin_url ) {
            return $this->plugin_url;
        }

        return $this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) );
    }

    /**
     * Get the plugin path.
     *
     * @return string
     */
    public function plugin_path() {
        if ( $this->plugin_path ) {
            return $this->plugin_path;
        }

        return $this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) );
    }

    /**
     * Initialize action scheduler.
     *
     * @since 2.0.0
     *
     * @return void
     */
    public function init_action_scheduler() {
        require_once( __DIR__ . '/vendor/woocommerce/action-scheduler/action-scheduler.php' );
    }

    /**
     * Get the template path.
     *
     * @return string
     */
    public function template_path() {
        return $this->plugin_path() . '/templates/';
    }

    /**
     * Get the theme directory path.
     *
     * @return string
     */
    public function theme_dir_path() {
        return $this->theme_dir_path;
    }
} // WeDocs

/**
 * Initialize the plugin.
 *
 * @return \WeDocs
 */
function wedocs() {
    return WeDocs::init();
}

// kick it off
wedocs();