View file File name : class.jetpack-core-api-widgets-endpoints.php Content :<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName /** * Interact with a specific widget via the REST API. * Currently only supports the Milestone widget. * * @package automattic/jetpack */ /** * Widget information getter endpoint. */ class Jetpack_Core_API_Widget_Endpoint { /** * Get information about a widget that is supported by this endpoint. * * @since 5.5.0 * * @param WP_REST_Request $request { * Array of parameters received by request. * * @type string $id Widget id. * } * * @return WP_REST_Response|WP_Error A REST response if the request was served successfully, otherwise an error. */ public function process( $request ) { $widget_base = _get_widget_id_base( $request['id'] ); $widget_id = (int) substr( $request['id'], strlen( $widget_base ) + 1 ); switch ( $widget_base ) { case 'milestone_widget': $instances = get_option( 'widget_milestone_widget', array() ); if ( class_exists( 'Milestone_Widget' ) && is_active_widget( false, $widget_base . '-' . $widget_id, $widget_base ) && isset( $instances[ $widget_id ] ) ) { $instance = $instances[ $widget_id ]; $widget = new Milestone_Widget(); return $widget->get_widget_data( $instance ); } } return new WP_Error( 'not_found', esc_html__( 'The requested widget was not found.', 'jetpack' ), array( 'status' => 404 ) ); } /** * Check that the current user has permissions to view widget information. * For the currently supported widget there are no permissions required. * * @since 5.5.0 * * @return bool */ public function can_request() { return true; } }