403Webshell
Server IP : 198.54.115.198  /  Your IP : 216.73.216.142
Web Server : LiteSpeed
System : Linux server192.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User : seatpheu ( 1569)
PHP Version : 8.1.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/seatpheu/public_html/phsarichiba/wp-content/plugins/jetpack/_inc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/seatpheu/public_html/phsarichiba/wp-content/plugins/jetpack/_inc/site-switcher-endpoint.php
<?php
/**
 * Site Switcher REST API Endpoint
 * Jetpack-only endpoint for fetching compact sites list
 *
 * @package automattic/jetpack
 */

use Automattic\Jetpack\Connection\Client;
use Automattic\Jetpack\Connection\Manager as Connection_Manager;

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

/**
 * Register REST API endpoint to fetch compact sites list from WordPress.com
 */
function jetpack_site_switcher_register_rest_routes() {
	register_rest_route(
		'jetpack/v4',
		'/sites/compact',
		array(
			'methods'             => WP_REST_Server::READABLE,
			'callback'            => 'jetpack_site_switcher_get_sites',
			'permission_callback' => 'jetpack_site_switcher_permission_check',
		)
	);
}

/**
 * Check if the current user is connected to WordPress.com
 *
 * @return bool True if user is connected, false otherwise
 */
function jetpack_site_switcher_permission_check() {
	if ( ! is_user_logged_in() ) {
		return false;
	}

	$connection_manager = new Connection_Manager();
	return $connection_manager->is_user_connected();
}
add_action( 'rest_api_init', 'jetpack_site_switcher_register_rest_routes' );

/**
 * Fetch compact sites list from WordPress.com API
 *
 * @return WP_REST_Response|WP_Error
 */
function jetpack_site_switcher_get_sites() {
	$response = Client::wpcom_json_api_request_as_user(
		'/me/sites/compact',
		'v1.1',
		array( 'method' => 'GET' ),
		null,
		'rest'
	);

	if ( is_wp_error( $response ) ) {
		return new WP_Error(
			'jetpack_site_switcher_request_failed',
			sprintf(
				/* translators: %s: Error message from the API request */
				__( 'Failed to connect to WordPress.com: %s', 'jetpack' ),
				$response->get_error_message()
			),
			array( 'status' => 500 )
		);
	}

	$response_code = wp_remote_retrieve_response_code( $response );
	if ( 200 !== $response_code ) {
		return new WP_Error(
			'jetpack_site_switcher_api_error',
			sprintf(
				/* translators: %d: HTTP status code */
				__( 'WordPress.com API returned error (HTTP %d)', 'jetpack' ),
				$response_code
			),
			array( 'status' => $response_code )
		);
	}

	$body = json_decode( wp_remote_retrieve_body( $response ), true );

	if ( ! isset( $body['sites'] ) ) {
		return new WP_Error(
			'jetpack_site_switcher_invalid_response',
			__( 'WordPress.com API response missing sites data', 'jetpack' ),
			array( 'status' => 500 )
		);
	}

	return rest_ensure_response( $body );
}

Youez - 2016 - github.com/yon3zu
LinuXploit