PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.1
Elementor Website Builder – more than just a page builder v4.0.1
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / modules / design-system-sync / classes / controller.php

controller.php in Elementor Website Builder – more than just a page builder 4.0.1, at modules/design-system-sync/classes/controller.php

49 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Modules\DesignSystemSync\Classes;
4
5 use Exception;
6 use WP_REST_Server;
7 use WP_REST_Response;
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit;
11 }
12
13 class Controller {
14 const API_NAMESPACE = 'elementor/v1';
15 const API_BASE = 'design-system-sync';
16 const HTTP_CREATED = 201;
17 const HTTP_INTERNAL_SERVER_ERROR = 500;
18
19 public function register_hooks() {
20 add_action( 'rest_api_init', [ $this, 'register_routes' ] );
21 }
22
23 public function register_routes() {
24 register_rest_route( self::API_NAMESPACE, '/' . self::API_BASE . '/stylesheet', [
25 'methods' => WP_REST_Server::CREATABLE,
26 'callback' => [ $this, 'generate' ],
27 'permission_callback' => [ $this, 'has_permission' ],
28 ] );
29 }
30
31 public function generate(): WP_REST_Response {
32 try {
33 $stylesheet = new Stylesheet_Manager();
34 $result = $stylesheet->generate();
35
36 return new WP_REST_Response( $result, self::HTTP_CREATED );
37 } catch ( Exception $e ) {
38 return new WP_REST_Response(
39 [ 'message' => $e->getMessage() ],
40 self::HTTP_INTERNAL_SERVER_ERROR
41 );
42 }
43 }
44
45 public function has_permission(): bool {
46 return current_user_can( 'edit_posts' );
47 }
48 }
49