e. * * @since 0.2.0 * @since-jetpack 4.4.0 * * @param \WP_REST_Request $request The request sent to the WP REST API. * * @return \WP_REST_Response|WP_Error */ public static function start_fresh_connection( $request ) { /** * Fires when Users have requested through Identity Crisis for the connection to be reset. * Should be used to disconnect any connections and reset options. * * @since 0.2.0 */ do_action( 'jetpack_idc_disconnect' ); $connection = new Connection_Manager(); $result = $connection->try_registration( true ); // early return if site registration fails. if ( ! $result || is_wp_error( $result ) ) { return rest_ensure_response( $result ); } $redirect_uri = $request->get_param( 'redirect_uri' ) ? admin_url( $request->get_param( 'redirect_uri' ) ) : null; /** * Filters the connection url that users should be redirected to for re-establishing their connection. * * @since 0.2.0 * * @param \WP_REST_Response|WP_Error $connection_url Connection URL user should be redirected to. */ return apply_filters( 'jetpack_idc_authorization_url', rest_ensure_response( $connection->get_authorization_url( null, $redirect_uri ) ) ); } /** * Verify that user can mitigate an identity crisis. * * @since 0.2.0 * @since-jetpack 4.4.0 * * @return true|WP_Error True if the user has capability 'jetpack_disconnect', an error object otherwise. */ public static function identity_crisis_mitigation_permission_check() { if ( current_user_can( 'jetpack_disconnect' ) ) { return true; } $error_msg = esc_html__( 'You do not have the correct user permissions to perform this action. Please contact your site admin if you think this is a mistake.', 'jetpack-idc' ); return new WP_Error( 'invalid_user_permission_identity_crisis', $error_msg, array( 'status' => rest_authorization_required_code() ) ); } /** * Endpoint for fetching the existing secret. * * @return WP_Error|\WP_REST_Response */ public static function fetch_url_secret() { $secret = new URL_Secret(); if ( ! $secret->exists() ) { return new WP_Error( 'missing_url_secret', esc_html__( 'URL secret does not exist.', 'jetpack-idc' ) ); } return rest_ensure_response( array( 'code' => 'success', 'data' => array( 'secret' => $secret->get_secret(), 'expires_at' => $secret->get_expires_at(), ), ) ); } /** * Verify url_secret create/fetch permissions (valid blog token authentication). * * @return true|WP_Error */ public static function url_secret_permission_check() { return Rest_Authentication::is_signed_with_blog_token() ? true : new WP_Error( 'invalid_user_permission_identity_crisis', esc_html__( 'You do not have the correct user permissions to perform this action.', 'jetpack-idc' ), array( 'status' => rest_authorization_required_code() ) ); } }
Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, class "Automattic\Jetpack\IdentityCrisis\REST_Endpoints" not found in /htdocs/mamirka.com/wp-includes/class-wp-hook.php:324 Stack trace: #0 /htdocs/mamirka.com/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #1 /htdocs/mamirka.com/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #2 /htdocs/mamirka.com/wp-includes/rest-api.php(593): do_action('rest_api_init', Object(WP_REST_Server)) #3 /htdocs/mamirka.com/wp-includes/rest-api.php(417): rest_get_server() #4 /htdocs/mamirka.com/wp-includes/class-wp-hook.php(324): rest_api_loaded(Object(WP)) #5 /htdocs/mamirka.com/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #6 /htdocs/mamirka.com/wp-includes/plugin.php(565): WP_Hook->do_action(Array) #7 /htdocs/mamirka.com/wp-includes/class-wp.php(418): do_action_ref_array('parse_request', Array) #8 /htdocs/mamirka.com/wp-includes/class-wp.php(813): WP->parse_request('') #9 /htdocs/mamirka.com/wp-includes/functions.php(1336): WP->main('') #10 /htdocs/mamirka.com/wp-blog-header.php(16): wp() #11 /htdocs/mamirka.com/index.php(17): require('/htdocs/mamirka...') #12 {main} thrown in /htdocs/mamirka.com/wp-includes/class-wp-hook.php on line 324