WP_REST_Server::CREATABLE, 'callback' => [ $this, 'generate' ], 'permission_callback' => [ $this, 'has_permission' ], ] ); } public function generate(): WP_REST_Response { try { $stylesheet = new Stylesheet_Manager(); $result = $stylesheet->generate(); if ( null === $result ) { return new WP_REST_Response( null, self::HTTP_NO_CONTENT ); } return new WP_REST_Response( $result, self::HTTP_CREATED ); } catch ( Exception $e ) { return new WP_REST_Response( [ 'message' => $e->getMessage() ], self::HTTP_INTERNAL_SERVER_ERROR ); } } public function has_permission(): bool { return current_user_can( 'edit_posts' ); } }