/var/www/html_us/wp-content/plugins/elementor/modules/favorites/controller.php


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,
            ],
        ] );
    }
}