/var/www/html/wp-content/plugins/elementor/modules/wp-rest/classes/elementor-user-meta.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
<?php

namespace Elementor\Modules\WpRest\Classes;

if ( ! 
defined'ABSPATH' ) ) {
    exit; 
// Exit if accessed directly.
}

class 
Elementor_User_Meta {

    private function 
get_meta_config(): array {
        return [
            
'elementor_introduction' => [
                
'schema' => [
                    
'description' => 'Elementor user meta data',
                    
'type' => 'object',
                    
'properties' => [
                        
'ai_get_started' => [
                            
'type' => 'boolean',
                        ],
                    ],
                    
'additionalProperties' => true,
                    
'context' => [ 'view''edit' ],
                ],
            ],
        ];
    }

    public function 
register(): void {
        foreach ( 
$this->get_meta_config() as $key => $config ) {
            
$config['get_callback'] = function( $user$field_name$request ) {
                return 
get_user_meta$user['id'], $field_nametrue );
            };

            
$config['update_callback'] = function( $meta_value\WP_User $user$field_name$request ) {
                if ( 
'PATCH' === $request->get_method() ) {
                    
$existing get_user_meta$user->ID$field_nametrue );
                    if ( 
is_array$existing ) && is_array$meta_value ) ) {
                        
$meta_value array_merge$existing$meta_value );
                    }
                }

                return 
update_user_meta$user->ID$field_name$meta_value );
            };

            
register_rest_field'user'$key$config );
        }
    }
}