1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
<?php
namespace Elementor\Modules\Favorites;
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. }
use Elementor\Data\V2\Base\Controller as Controller_Base; use Elementor\Plugin;
class Controller extends Controller_Base {
public function get_name() { return 'favorites'; }
public function create_item( $request ) { $module = $this->get_module(); $type = $request->get_param( 'id' ); $favorite = $request->get_param( 'favorite' );
$module->update( $type, $favorite, $module::ACTION_MERGE );
return $module->get( $type ); }
public function delete_item( $request ) { $module = $this->get_module(); $type = $request->get_param( 'id' ); $favorite = $request->get_param( 'favorite' );
$module->update( $type, $favorite, $module::ACTION_DELETE );
return $module->get( $type ); }
public function create_item_permissions_check( $request ) { return current_user_can( 'edit_posts' ); }
public function delete_item_permissions_check( $request ) { return $this->create_item_permissions_check( $request ); }
/** * Get the favorites module instance. * * @return Module */ protected function get_module() { return Plugin::instance()->modules_manager->get_modules( 'favorites' ); }
public function register_endpoints() { $this->index_endpoint->register_item_route( \WP_REST_Server::CREATABLE, [ 'id_arg_type_regex' => '[\w]+', 'id' => [ 'description' => 'Type of favorites.', 'type' => 'string', 'required' => true, ], 'favorite' => [ 'description' => 'The favorite slug to create.', 'type' => 'string', 'required' => true, ], ] );
$this->index_endpoint->register_item_route( \WP_REST_Server::DELETABLE, [ 'id_arg_type_regex' => '[\w]+', 'id' => [ 'description' => 'Type of favorites.', 'type' => 'string', 'required' => true, ], 'favorite' => [ 'description' => 'The favorite slug to delete.', 'type' => 'string', 'required' => true, ], ] ); } }
|