HEX
Server: LiteSpeed
System: Linux melbournecleaninggroup 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: www-data (33)
PHP: 7.3.33-1+focal
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/html/wp-content/plugins/acf-extended/includes/modules/form/actions/user.php
<?php

if(!defined('ABSPATH'))
    exit;

if(!class_exists('acfe_form_user')):

class acfe_form_user{
    
    function __construct(){
    
        add_filter('acfe/form/actions',                                             array($this, 'add_action'));
        
        /*
         * Form
         */
        add_filter('acfe/form/load/user',                                           array($this, 'load'),       10, 3);
        add_action('acfe/form/validation/user',                                     array($this, 'validation'), 10, 3);
        add_action('acfe/form/make/user',                                           array($this, 'make'),       10, 3);
        add_action('acfe/form/submit/user',                                         array($this, 'submit'),     10, 5);
        
        /*
         * Admin
         */
        add_filter('acf/prepare_field/name=acfe_form_user_save_meta',               array(acfe()->acfe_form, 'map_fields'));
        add_filter('acf/prepare_field/name=acfe_form_user_load_meta',               array(acfe()->acfe_form, 'map_fields'));
        
        add_filter('acf/prepare_field/name=acfe_form_user_save_login_user',         array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_save_login_pass',         array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_save_login_remember',     array(acfe()->acfe_form, 'map_fields_deep'));
        
        add_filter('acf/prepare_field/name=acfe_form_user_save_target',             array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_load_source',             array(acfe()->acfe_form, 'map_fields_deep'));
        
        add_filter('acf/prepare_field/name=acfe_form_user_save_email',              array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_save_username',           array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_save_password',           array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_save_first_name',         array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_save_last_name',          array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_save_nickname',           array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_save_display_name',       array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_save_website',            array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_save_description',        array(acfe()->acfe_form, 'map_fields_deep'));
        add_filter('acf/prepare_field/name=acfe_form_user_save_role',               array(acfe()->acfe_form, 'map_fields_deep'));
        
        add_filter('acf/prepare_field/name=acfe_form_user_map_email',               array(acfe()->acfe_form, 'map_fields_deep_no_custom'));
        add_filter('acf/prepare_field/name=acfe_form_user_map_username',            array(acfe()->acfe_form, 'map_fields_deep_no_custom'));
        add_filter('acf/prepare_field/name=acfe_form_user_map_password',            array(acfe()->acfe_form, 'map_fields_deep_no_custom'));
        add_filter('acf/prepare_field/name=acfe_form_user_map_first_name',          array(acfe()->acfe_form, 'map_fields_deep_no_custom'));
        add_filter('acf/prepare_field/name=acfe_form_user_map_last_name',           array(acfe()->acfe_form, 'map_fields_deep_no_custom'));
        add_filter('acf/prepare_field/name=acfe_form_user_map_nickname',            array(acfe()->acfe_form, 'map_fields_deep_no_custom'));
        add_filter('acf/prepare_field/name=acfe_form_user_map_display_name',        array(acfe()->acfe_form, 'map_fields_deep_no_custom'));
        add_filter('acf/prepare_field/name=acfe_form_user_map_website',             array(acfe()->acfe_form, 'map_fields_deep_no_custom'));
        add_filter('acf/prepare_field/name=acfe_form_user_map_description',         array(acfe()->acfe_form, 'map_fields_deep_no_custom'));
        add_filter('acf/prepare_field/name=acfe_form_user_map_role',                array(acfe()->acfe_form, 'map_fields_deep_no_custom'));
        
        add_filter('acf/prepare_field/name=acfe_form_user_save_target',             array($this, 'prepare_choices'), 5);
        add_filter('acf/prepare_field/name=acfe_form_user_load_source',             array($this, 'prepare_choices'), 5);
        
        add_action('acf/render_field/name=acfe_form_user_advanced_load',            array($this, 'advanced_load'));
        add_action('acf/render_field/name=acfe_form_user_advanced_save_args',       array($this, 'advanced_save_args'));
        add_action('acf/render_field/name=acfe_form_user_advanced_save',            array($this, 'advanced_save'));
        
    }
    
    function load($form, $current_post_id, $action){
        
        // Form
        $form_name = acf_maybe_get($form, 'name');
        $form_id = acf_maybe_get($form, 'ID');
        
        // Action
        $user_action = get_sub_field('acfe_form_user_action');
	
	    // Bail early if Log user
	    if($user_action === 'log_user')
		    return $form;
        
        // Load values
        $load_values = get_sub_field('acfe_form_user_load_values');
        $load_meta = get_sub_field('acfe_form_user_load_meta');
        
        // Load values
        if(!$load_values)
            return $form;
	
	    $_user_id = get_sub_field('acfe_form_user_load_source');
        $_email = get_sub_field('acfe_form_user_map_email');
        $_username = get_sub_field('acfe_form_user_map_username');
        $_password = get_sub_field('acfe_form_user_map_password');
        $_first_name = get_sub_field('acfe_form_user_map_first_name');
        $_last_name = get_sub_field('acfe_form_user_map_last_name');
        $_nickname = get_sub_field('acfe_form_user_map_nickname');
        $_display_name = get_sub_field('acfe_form_user_map_display_name');
        $_website = get_sub_field('acfe_form_user_map_website');
        $_description = get_sub_field('acfe_form_user_map_description');
        $_role = get_sub_field('acfe_form_user_map_role');
        
        // Map {field:name} {get_field:name} {query_var:name}
        $_user_id = acfe_form_map_field_value_load($_user_id, $current_post_id, $form);
	    $_email = acfe_form_map_field_value_load($_email, $current_post_id, $form);
	    $_username = acfe_form_map_field_value_load($_username, $current_post_id, $form);
	    $_password = acfe_form_map_field_value_load($_password, $current_post_id, $form);
	    $_first_name = acfe_form_map_field_value_load($_first_name, $current_post_id, $form);
	    $_last_name = acfe_form_map_field_value_load($_last_name, $current_post_id, $form);
	    $_nickname = acfe_form_map_field_value_load($_nickname, $current_post_id, $form);
	    $_display_name = acfe_form_map_field_value_load($_display_name, $current_post_id, $form);
	    $_website = acfe_form_map_field_value_load($_website, $current_post_id, $form);
	    $_description = acfe_form_map_field_value_load($_description, $current_post_id, $form);
	    $_role = acfe_form_map_field_value_load($_role, $current_post_id, $form);
        
        $_user_id = apply_filters('acfe/form/load/user_id',                      $_user_id, $form, $action);
        $_user_id = apply_filters('acfe/form/load/user_id/form=' . $form_name,   $_user_id, $form, $action);
        
        if(!empty($action))
            $_user_id = apply_filters('acfe/form/load/user_id/action=' . $action, $_user_id, $form, $action);
        
        // Invalid User ID
        if(!$_user_id)
            return $form;
        
        $user_data = get_userdata($_user_id);
        
        // Check if userdata has been found
        if(!$user_data)
            return $form;
        
        // Email
        if(acf_is_field_key($_email)){
            
            $key = array_search($_email, $load_meta);
            
            if($key !== false)
                unset($load_meta[$key]);
	
	        $form['map'][$_email]['value'] = $user_data->user_email;
            
        }
        
        // Username
        if(acf_is_field_key($_username)){
            
            $key = array_search($_username, $load_meta);
            
            if($key !== false)
                unset($load_meta[$key]);
	
	        $form['map'][$_username]['value'] = $user_data->user_login;
	        $form['map'][$_username]['maxlength'] = 60;
            
        }
        
        // Password
        if(acf_is_field_key($_password)){
            
            $key = array_search($_password, $load_meta);
            
            if($key !== false)
                unset($load_meta[$key]);
	
	        //$form['map'][$_password]['value'] = $user_data->user_pass;
            
        }
        
        // First name
        if(acf_is_field_key($_first_name)){
            
            $key = array_search($_first_name, $load_meta);
            
            if($key !== false)
                unset($load_meta[$key]);
	
	        $form['map'][$_first_name]['value'] = $user_data->first_name;
            
        }
        
        // Last name
        if(acf_is_field_key($_last_name)){
            
            $key = array_search($_last_name, $load_meta);
            
            if($key !== false)
                unset($load_meta[$key]);
	
	        $form['map'][$_last_name]['value'] = $user_data->last_name;
            
        }
        
        // Nickname
        if(acf_is_field_key($_nickname)){
            
            $key = array_search($_nickname, $load_meta);
            
            if($key !== false)
                unset($load_meta[$key]);
	
	        $form['map'][$_nickname]['value'] = $user_data->nickname;
            
        }
        
        // Display name
        if(acf_is_field_key($_display_name)){
            
            $key = array_search($_display_name, $load_meta);
            
            if($key !== false)
                unset($load_meta[$key]);
	
	        $form['map'][$_display_name]['value'] = $user_data->display_name;
            
        }
        
        // Website
        if(acf_is_field_key($_website)){
            
            $key = array_search($_website, $load_meta);
            
            if($key !== false)
                unset($load_meta[$key]);
	
	        $form['map'][$_website]['value'] = $user_data->website;
            
        }
        
        // Description
        if(acf_is_field_key($_description)){
            
            $key = array_search($_description, $load_meta);
            
            if($key !== false)
                unset($load_meta[$key]);
	
	        $form['map'][$_description]['value'] = $user_data->description;
            
        }
        
        // Role
        if(acf_is_field_key($_role)){
            
            $key = array_search($_role, $load_meta);
            
            if($key !== false)
                unset($load_meta[$key]);
	
	        $form['map'][$_role]['value'] = implode(', ', $user_data->roles);
            
        }
        
        // Load others values
        if(!empty($load_meta)){
            
            foreach($load_meta as $field_key){
    
                $field = acf_get_field($field_key);
    
                if(!$field)
                    continue;
    
                if($field['type'] === 'clone' && $field['display'] === 'seamless'){
        
                    $sub_fields = acf_get_value('user_' . $_user_id, $field);
        
                    foreach($sub_fields as $sub_field_key => $value){
            
                        $form['map'][$sub_field_key]['value'] = $value;
            
                    }
        
                }else{
        
                    $form['map'][$field_key]['value'] = acf_get_value('user_' . $_user_id, $field);
        
                }
                
            }
            
        }
        
        return $form;
        
    }
    
    function validation($form, $current_post_id, $action){
        
        // Action
        $user_action = get_sub_field('acfe_form_user_action');
        
        if($user_action !== 'log_user')
            return;
        
        // Form
        $form_name = acf_maybe_get($form, 'name');
        $form_id = acf_maybe_get($form, 'ID');

        // Fields
	    $data = array(
            'type'  => get_sub_field('acfe_form_user_log_type'),
            'login' => get_sub_field('acfe_form_user_save_login_user'),
            'pass'  => get_sub_field('acfe_form_user_save_login_pass'),
        );
	
	    $data['login'] = acfe_form_map_field_value($data['login'], $current_post_id, $form);
	    $data['pass'] = acfe_form_map_field_value($data['pass'], $current_post_id, $form);
	
	    $login = false;
	    $pass = false;
        
        // Email
        if(!empty($data['login'])){
            
            $login = $data['login'];
            
        }
        
        // Password
        if(!empty($data['pass'])){
            
            $pass = $data['pass'];
            
        }
        
        $pass = wp_specialchars_decode($pass);
        
        if(empty($login) || empty($pass)){
            
            acfe_add_validation_error('', 'An error has occured. Please try again');
            return;
            
        }
        
        // Email
        if($data['type'] === 'email'){
            
            $this->validate_user_login('email', $login, $pass);
            
        }
        
        // Username
        elseif($data['type'] === 'username'){
            
            $this->validate_user_login('username', $login, $pass);
            
        }
        
        // Email || Username
        elseif($data['type'] === 'email_username'){
            
            // Email
            if(is_email($login)){
                
                $this->validate_user_login('email', $login, $pass);
            
            // Username
            }else{
                
                $this->validate_user_login('username', $login, $pass);
                
            }
            
        }
        
    }
    
    function validate_user_login($type = 'email', $login, $pass){
        
        if($type === 'email'){
            
            $login = sanitize_email($login);
            
            if(empty($login) || !is_email($login)){
                
                acfe_add_validation_error('', 'Invalid e-mail');
                return;
                
            }
            
            $user = get_user_by('email', $login);
            
            if(!$user || !wp_check_password($pass, $user->data->user_pass, $user->ID)){
                
                acfe_add_validation_error('', 'Invalid e-mail or password');
                return;
                
            }
            
        }elseif($type === 'username'){
            
            $login = sanitize_user($login);
            
            if(empty($login)){
                
                acfe_add_validation_error('', 'Invalid username');
                return;
                
            }
            
            $user = get_user_by('login', $login);
            
            if(!$user || !wp_check_password($pass, $user->data->user_pass, $user->ID)){
                
                acfe_add_validation_error('', 'Invalid username or password');
                return;
                
            }
            
        }
        
    }
    
    function make($form, $current_post_id, $action){
        
        // Form
        $form_name = acf_maybe_get($form, 'name');
        $form_id = acf_maybe_get($form, 'ID');
    
        // Prepare
        $prepare = true;
        $prepare = apply_filters('acfe/form/prepare/user',                          $prepare, $form, $current_post_id, $action);
        $prepare = apply_filters('acfe/form/prepare/user/form=' . $form_name,       $prepare, $form, $current_post_id, $action);
    
        if(!empty($action))
            $prepare = apply_filters('acfe/form/prepare/user/action=' . $action,    $prepare, $form, $current_post_id, $action);
    
        if($prepare === false)
            return;
        
        // Action
        $user_action = get_sub_field('acfe_form_user_action');
	
	    // Load values
	    $load_values = get_sub_field('acfe_form_user_load_values');
        
        // Pre-process
        $_description_group = get_sub_field('acfe_form_user_save_description_group');
        $_description = $_description_group['acfe_form_user_save_description'];
        $_description_custom = $_description_group['acfe_form_user_save_description_custom'];
        
        if($_description === 'custom')
            $_description = $_description_custom;
	
	    $map = array();
	
	    if($load_values){
		
		    // Mapping
		    $map = array(
			    'user_email'   => get_sub_field( 'acfe_form_user_map_email' ),
			    'user_login'   => get_sub_field( 'acfe_form_user_map_username' ),
			    'user_pass'    => get_sub_field( 'acfe_form_user_map_password' ),
			    'first_name'   => get_sub_field( 'acfe_form_user_map_first_name' ),
			    'last_name'    => get_sub_field( 'acfe_form_user_map_last_name' ),
			    'nickname'     => get_sub_field( 'acfe_form_user_map_nickname' ),
			    'display_name' => get_sub_field( 'acfe_form_user_map_display_name' ),
			    'user_url'     => get_sub_field( 'acfe_form_user_map_website' ),
			    'description'  => get_sub_field( 'acfe_form_user_map_description' ),
			    'role'         => get_sub_field( 'acfe_form_user_map_role' ),
		    );
		
	    }
        
        // Fields
        $fields = array(
            'target'            => get_sub_field('acfe_form_user_save_target'),
            
            'login_type'        => get_sub_field('acfe_form_user_log_type'),
            'login_user'        => get_sub_field('acfe_form_user_save_login_user'),
            'login_pass'        => get_sub_field('acfe_form_user_save_login_pass'),
            'login_remember'    => get_sub_field('acfe_form_user_save_login_remember'),
            
            'user_email'        => get_sub_field('acfe_form_user_save_email'),
            'user_login'        => get_sub_field('acfe_form_user_save_username'),
            'user_pass'         => get_sub_field('acfe_form_user_save_password'),
            'first_name'        => get_sub_field('acfe_form_user_save_first_name'),
            'last_name'         => get_sub_field('acfe_form_user_save_last_name'),
            'nickname'          => get_sub_field('acfe_form_user_save_nickname'),
            'display_name'      => get_sub_field('acfe_form_user_save_display_name'),
            'user_url'          => get_sub_field('acfe_form_user_save_website'),
            'description'       => $_description,
            'role'              => get_sub_field('acfe_form_user_save_role'),
        );
        
        $data = acfe_form_map_vs_fields($map, $fields, $current_post_id, $form);
        
        // args
        $args = array();
        
        // Insert user
        $_user_id = 0;
        
        // Insert || Update
        if($user_action === 'insert_user' || $user_action === 'update_user'){
            
            // Update user
            if($user_action === 'update_user'){
                
                $_user_id = $data['target'];
                
                // Invalid User ID
                if(!$_user_id)
                    return;
                
                // ID
                $args['ID'] = $_user_id;
                
            }
            
            // Email
            if(!empty($data['user_email'])){
	
	            if(is_array($data['user_email']))
		            $data['user_email'] = acfe_array_to_string($data['user_email']);
                
                $args['user_email'] = $data['user_email'];
                
            }
            
            // Username
            if(!empty($data['user_login'])){
	
	            if(is_array($data['user_login']))
		            $data['user_login'] = acfe_array_to_string($data['user_login']);
                
                $args['user_login'] = $data['user_login'];
                
            }
            
            // Password
            if(!empty($data['user_pass'])){
	
	            if(is_array($data['user_pass']))
		            $data['user_pass'] = acfe_array_to_string($data['user_pass']);
                
                $args['user_pass'] = $data['user_pass'];
                
            }
            
            // First name
            if(!empty($data['first_name'])){
	
	            if(is_array($data['first_name']))
		            $data['first_name'] = acfe_array_to_string($data['first_name']);
                
                $args['first_name'] = $data['first_name'];
                
            }
            
            // Last name
            if(!empty($data['last_name'])){
	
	            if(is_array($data['last_name']))
		            $data['last_name'] = acfe_array_to_string($data['last_name']);
                
                $args['last_name'] = $data['last_name'];
                
            }
            
            // Nickname
            if(!empty($data['nickname'])){
	
	            if(is_array($data['nickname']))
		            $data['nickname'] = acfe_array_to_string($data['nickname']);
                
                $args['nickname'] = $data['nickname'];
                
            }
            
            // Display name
            if(!empty($data['display_name'])){
	
	            if(is_array($data['display_name']))
		            $data['display_name'] = acfe_array_to_string($data['display_name']);
                
                $args['display_name'] = $data['display_name'];
                
            }
            
            // Website
            if(!empty($data['user_url'])){
	
	            if(is_array($data['user_url']))
		            $data['user_url'] = acfe_array_to_string($data['user_url']);
                
                $args['user_url'] = $data['user_url'];
                
            }
            
            // Description
            if(!empty($data['description'])){
	
	            if(is_array($data['description']))
		            $data['description'] = acfe_array_to_string($data['description']);
                
                $args['description'] = $data['description'];
                
            }
            
            // Role
            if(!empty($data['role'])){
	
	            if(is_array($data['role']))
		            $data['role'] = acfe_array_to_string($data['role']);
                
                $args['role'] = $data['role'];
                
            }
            
            $args = apply_filters('acfe/form/submit/user_args',                     $args, $user_action, $form, $action);
            $args = apply_filters('acfe/form/submit/user_args/form=' . $form_name,  $args, $user_action, $form, $action);
            
            if(!empty($action))
                $args = apply_filters('acfe/form/submit/user_args/action=' . $action, $args, $user_action, $form, $action);
	
	        if($args === false)
		        return false;
            
            // Insert User
            if($user_action === 'insert_user'){
                
                // Bail early if no e-mail
                if(!isset($args['user_email']))
                    return false;
                
                // No login? Fallback to e-mail
	            if(!isset($args['user_login']))
	                $args['user_login'] = $args['user_email'];
	            
	            // No password? Fallback to generated password
	            if(!isset($args['user_pass']))
		            $args['user_pass'] = wp_generate_password(8, false);
                
            }
            
            // Insert User
            if($user_action === 'insert_user'){
                
                $_insert_user = wp_insert_user($args);
                
            }
            
            // Update User
            elseif($user_action === 'update_user'){
                
                $_insert_user = wp_update_user($args);
                
                if(!is_wp_error($_insert_user)){
                
                    $_user_id = $_insert_user;
                    
                    // Update User Login + Nicename
                    if(acf_maybe_get($args, 'user_login')){
                        
                        // Sanitize
                        $sanitized_user_login = sanitize_user($args['user_login'], true);
                        
                        // Filter
                        $pre_user_login = apply_filters('pre_user_login', $sanitized_user_login);
                        
                        // Trim
                        $user_login = trim($pre_user_login);
                        
                        $error = false;
                        
                        if(empty($user_login)){
                            
                            $error = new WP_Error('empty_user_login', __('Cannot create a user with an empty login name.'));
                            
                        }elseif(mb_strlen($user_login) > 60){
                            
                            $error = new WP_Error('user_login_too_long', __('Username may not be longer than 60 characters.'));
                            
                        }
                        
                        if(username_exists($user_login)){
                            
                            $error = new WP_Error('existing_user_login', __('Sorry, that username already exists!'));
                            
                        }
                        
                        $user_nicename = sanitize_user($user_login, true);
                        
                        if(mb_strlen($user_nicename) > 50){
                            
                            $error = new WP_Error('user_nicename_too_long', __('Nicename may not be longer than 50 characters.'));
                            
                        }
                        
                        $user_nicename = sanitize_title($user_nicename);
                        
                        $user_nicename = apply_filters('pre_user_nicename', $user_nicename);
                        
                        if(!is_wp_error($error)){
                        
                            global $wpdb;
                            
                            $wpdb->update($wpdb->users, 
                                array(
                                    'user_login'    => $user_login,
                                    'user_nicename' => $user_nicename,
                                ), 
                                array(
                                    'ID' => $_user_id
                                )
                            );
                        
                        }
                        
                    }
                    
                }
                
            }
        
        }
        
        // Log User
        elseif($user_action === 'log_user'){
            
            $_insert_user = false;
	
	        $_login_user = false;
	        $_login_pass = false;
            $_login_remember = false;
            
            // Email
            if(!empty($data['login_user'])){
                
                $_login_user = $data['login_user'];
                
            }
            
            // Password
            if(!empty($data['login_pass'])){
                
                $_login_pass = $data['login_pass'];
                
            }
            
            // Remember me
            if(!empty($data['login_remember'])){
	
	            $_login_remember = $data['login_remember'];
             
            }

            $_login_pass = wp_specialchars_decode($_login_pass);
            
            // Email
            if($data['login_type'] === 'email'){
                
                $_login_user = sanitize_email($_login_user);
                $user = get_user_by('email', $_login_user);
                
            }
            
            // Username
            elseif($data['login_type'] === 'username'){
                
                $_login_user = sanitize_user($_login_user);
                $user = get_user_by('login', $_login_user);
                
            }
            
            // Email || Username
            elseif($data['login_type'] === 'email_username'){
                
                // Email
                if(is_email($_login_user)){
                    
                    $user = get_user_by('email', $_login_user);
                
                // Username
                }else{
                    
                    $user = get_user_by('login', $_login_user);
                    
                }
                
            }
	
	        $_login_remember = boolval($_login_remember);
            
            // Login
            $_insert_user = wp_signon(array(
                'user_login'    => $user->user_login,
                'user_password' => $_login_pass,
                'remember'      => $_login_remember
            ), is_ssl());
            
            // User Error
            if(is_wp_error($_insert_user))
                return;
            
            $_insert_user = $_insert_user->ID;
            
        }
        
        // User Error
        if(is_wp_error($_insert_user))
            return;
        
        $_user_id = $_insert_user;
        
        // Save meta
        do_action('acfe/form/submit/user',                     $_user_id, $user_action, $args, $form, $action);
        do_action('acfe/form/submit/user/form=' . $form_name,  $_user_id, $user_action, $args, $form, $action);
        
        if(!empty($action))
            do_action('acfe/form/submit/user/action=' . $action, $_user_id, $user_action, $args, $form, $action);
        
    }
    
    function submit($_user_id, $user_action, $args, $form, $action){
    
        // Form name
        $form_name = acf_maybe_get($form, 'name');
    
        // Get user array
        $user_object = get_user_by('ID', $_user_id);
    
        if(isset($user_object->data)){
        
            // return array
            $user = json_decode(json_encode($user_object->data), true);
        
            $user_object_meta = get_user_meta($user['ID']);
        
            $user_meta = array();
        
            foreach($user_object_meta as $k => $v){
            
                if(!isset($v[0]))
                    continue;
            
                $user_meta[$k] = $v[0];
            
            }
        
            $user_array = array_merge($user, $user_meta);
        
            $user_array['permalink'] = get_author_posts_url($_user_id);
            $user_array['admin_url'] = admin_url('user-edit.php?user_id=' . $_user_id);
        
            // Replace the hash password with the real password
            if(acf_maybe_get($args, 'user_pass')){
            
                $user_array['user_pass'] = $args['user_pass'];
            
            }
    
            // Deprecated
            $user_array = apply_filters_deprecated("acfe/form/query_var/user",                    array($user_array, $_user_id, $user_action, $args, $form, $action), '0.8.7.5', "acfe/form/output/user");
            $user_array = apply_filters_deprecated("acfe/form/query_var/user/form={$form_name}",  array($user_array, $_user_id, $user_action, $args, $form, $action), '0.8.7.5', "acfe/form/output/user/form={$form_name}");
            $user_array = apply_filters_deprecated("acfe/form/query_var/user/action={$action}",   array($user_array, $_user_id, $user_action, $args, $form, $action), '0.8.7.5', "acfe/form/output/user/action={$action}");
    
            // Output
            $user_array = apply_filters("acfe/form/output/user",                                       $user_array, $_user_id, $user_action, $args, $form, $action);
            $user_array = apply_filters("acfe/form/output/user/form={$form_name}",                     $user_array, $_user_id, $user_action, $args, $form, $action);
            $user_array = apply_filters("acfe/form/output/user/action={$action}",                      $user_array, $_user_id, $user_action, $args, $form, $action);
            
            // Old Query var
            $query_var = acfe_form_unique_action_id($form, 'user');
            
            if(!empty($action))
                $query_var = $action;
            
            set_query_var($query_var, $user_array);
            // ------------------------------------------------------------
            
            // Action Output
            $actions = get_query_var('acfe_form_actions', array());
    
            $actions['user'] = $user_array;
            
            if(!empty($action))
                $actions[$action] = $user_array;
            
            set_query_var('acfe_form_actions', $actions);
            // ------------------------------------------------------------
        
        }
        
        // Meta save
        $save_meta = get_sub_field('acfe_form_user_save_meta');
        
        if(!empty($save_meta)){
            
            $meta = acfe_form_filter_meta($save_meta, $_POST['acf']);
            
            if(!empty($meta)){
                
                // Backup original acf post data
                $acf = $_POST['acf'];
                
                // Save meta fields
                acf_save_post('user_' . $_user_id, $meta);
                
                // Restore original acf post data
                $_POST['acf'] = $acf;
            
            }
            
        }
        
    }
    
    /**
     *  User: Select2 Choices
     */
    function prepare_choices($field){
        
        $field['choices']['current_user'] = 'Current User';
        $field['choices']['current_post_author'] = 'Current Post Author';
        
        if(acf_maybe_get($field, 'value')){
            
            $field_type = acf_get_field_type('user');
            
            // Clean value into an array of IDs.
            $user_ids = array_map('intval', acf_array($field['value']));
            
            // Find users in database (ensures all results are real).
            $users = acf_get_users(array(
                'include' => $user_ids
            ));
            
            // Append.
            if($users){
                
                foreach($users as $user){
                    $field['choices'][$user->ID] = $field_type->get_result($user, $field);
                }
                
            }
        
        }
        
        return $field;
        
    }
    
    function advanced_load($field){
        
        $form_name = 'my_form';
        
        if(acf_maybe_get($field, 'value'))
            $form_name = get_field('acfe_form_name', $field['value']);
        
        ?>You may use the following hooks:<br /><br />
<pre>
add_filter('acfe/form/load/user_id', 'my_form_user_values_source', 10, 3);
add_filter('acfe/form/load/user_id/form=<?php echo $form_name; ?>', 'my_form_user_values_source', 10, 3);
add_filter('acfe/form/load/user_id/action=my-user-action', 'my_form_user_values_source', 10, 3);
</pre>
<br />
<pre>
/*
 * @int     $user_id  User ID used as source
 * @array   $form     The form settings
 * @string  $action   The action alias name
 */
add_filter('acfe/form/load/user_id/form=<?php echo $form_name; ?>', 'my_form_user_values_source', 10, 3);
function my_form_user_values_source($user_id, $form, $action){
    
    /*
     * Retrieve Form Setting
     */
    if($form['custom_key'] === 'custom_value'){

        // Force to load values from the User ID 12
        $user_id = 12;
        
    }
    
    return $user_id;
    
}
</pre><?php
        
    }
    
    function advanced_save_args($field){
        
        $form_name = 'my_form';
        
        if(acf_maybe_get($field, 'value'))
            $form_name = get_field('acfe_form_name', $field['value']);
        
        ?>You may use the following hooks:<br /><br />
<?php acfe_highlight(); ?>
add_filter('acfe/form/submit/user_args', 'my_form_user_args', 10, 4);
add_filter('acfe/form/submit/user_args/form=<?php echo $form_name; ?>', 'my_form_user_args', 10, 4);
add_filter('acfe/form/submit/user_args/action=my-user-action', 'my_form_user_args', 10, 4);<?php acfe_highlight(); ?>
<br />
<?php acfe_highlight(); ?>
/*
 * @array   $args    The generated user arguments
 * @string  $type    Action type: 'insert_user' or 'update_user'
 * @array   $form    The form settings
 * @string  $action  The action alias name
 */
add_filter('acfe/form/submit/user_args/form=<?php echo $form_name; ?>', 'my_form_user_args', 10, 4);
function my_form_user_args($args, $type, $form, $action){
    
    // Change First Name if the Action Type is 'insert_user'
    if($type === 'insert_user'){
        
        $args['first_name'] = 'My name';
        
    }

    /*
     * Get the form input value named 'my_field'
     * This is the value entered by the user during the form submission
     */
    $my_field = get_field('my_field');

    if($my_field === 'Company'){
    
        // Change First Name
        $args['first_name'] = 'My name';

    }

    /*
     * Get previous Post Action output
     */
    $prev_post_action = acfe_form_get_action('post');
    
    if(!empty($prev_post_action)){
    
        if($prev_post_action['post_title'] === 'Company'){
        
            // Change First Name
            $args['first_name'] = 'My name';
        
        }

    }
    
    // Do not save User
    // return false;
    
    return $args;
    
}<?php acfe_highlight(); ?>
        
        <?php
        
    }
    
    function advanced_save($field){
        
        $form_name = 'my_form';
        
        if(acf_maybe_get($field, 'value'))
            $form_name = get_field('acfe_form_name', $field['value']);
        
        ?>You may use the following hooks:<br /><br />
<?php acfe_highlight(); ?>
add_action('acfe/form/submit/user', 'my_form_user_save', 10, 5);
add_action('acfe/form/submit/user/form=<?php echo $form_name; ?>', 'my_form_user_save', 10, 5);
add_action('acfe/form/submit/user/action=my-user-action', 'my_form_user_save', 10, 5);<?php acfe_highlight(); ?>
<br />
<?php acfe_highlight(); ?>
/*
 * @int     $user_id  The targeted user ID
 * @string  $type     Action type: 'insert_user' or 'update_user'
 * @array   $args     The generated user arguments
 * @array   $form     The form settings
 * @string  $action   The action alias name
 *
 * Note: At this point the user is already saved into the database
 */
add_action('acfe/form/submit/user/form=<?php echo $form_name; ?>', 'my_form_user_save', 10, 5);
function my_form_user_save($user_id, $type, $args, $form, $action){

    /*
     * Get the form input value named 'my_field'
     * This is the value entered by the user during the form submission
     */
    $my_field = get_field('my_field');

    if($my_field === 'Company'){

        // do_something();

    }

    /*
     * Get previous Post Action output
     */
    $prev_post_action = acfe_form_get_action('post');

    if(!empty($prev_post_action)){
    
        if($prev_post_action['post_title'] === 'Company'){
            
            // do_something();
            
        }

    }
    
}<?php acfe_highlight(); ?>
        
        <?php
        
    }
    
    function add_action($layouts){
        
        $layouts['layout_user'] = array(
            'key' => 'layout_user',
            'name' => 'user',
            'label' => 'User action',
            'display' => 'row',
            'sub_fields' => array(
        
                /*
                 * Layout: User Action
                 */
                array(
                    'key' => 'field_acfe_form_user_tab_action',
                    'label' => 'Action',
                    'name' => '',
                    'type' => 'tab',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                        'data-no-preference' => true,
                    ),
                    'acfe_permissions' => '',
                    'placement' => 'top',
                    'endpoint' => 0,
                ),
                array(
                    'key' => 'field_acfe_form_user_action',
                    'label' => 'Action',
                    'name' => 'acfe_form_user_action',
                    'type' => 'radio',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                        'insert_user'   => 'Create user',
                        'update_user'   => 'Update user',
                        'log_user'      => 'Log user',
                    ),
                    'default_value' => 'insert_post',
                ),
                array(
                    'key' => 'field_acfe_form_user_custom_alias',
                    'label' => 'Action name',
                    'name' => 'acfe_form_custom_alias',
                    'type' => 'acfe_slug',
                    'instructions' => '(Optional) Target this action using hooks.',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                        'data-instruction-placement' => 'field'
                    ),
                    'acfe_permissions' => '',
                    'default_value' => '',
                    'placeholder' => 'User',
                    'prepend' => '',
                    'append' => '',
                    'maxlength' => '',
                ),
        
                /*
                 * Layout: User Login
                 */
                array(
                    'key' => 'field_acfe_form_user_tab_login',
                    'label' => 'Login',
                    'name' => '',
                    'type' => 'tab',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'placement' => 'top',
                    'endpoint' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '==',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_log_type',
                    'label' => 'Login type',
                    'name' => 'acfe_form_user_log_type',
                    'type' => 'radio',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                        'email'             => 'E-mail',
                        'username'          => 'Username',
                        'email_username'    => 'E-mail or username',
                    ),
                    'allow_null' => 0,
                    'other_choice' => 0,
                    'default_value' => 'email',
                    'layout' => 'vertical',
                    'return_format' => 'value',
                    'save_other_choice' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '==',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_save_login_user',
                    'label' => 'Login',
                    'name' => 'acfe_form_user_save_login_user',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '==',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_save_login_pass',
                    'label' => 'Password',
                    'name' => 'acfe_form_user_save_login_pass',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '==',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_save_login_remember',
                    'label' => 'Remember me',
                    'name' => 'acfe_form_user_save_login_remember',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '==',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
        
                /*
                 * Layout: User Save
                 */
                array(
                    'key' => 'field_acfe_form_user_tab_save',
                    'label' => 'Save',
                    'name' => '',
                    'type' => 'tab',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'placement' => 'top',
                    'endpoint' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_save_target',
                    'label' => 'Target',
                    'name' => 'acfe_form_user_save_target',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '==',
                                'value' => 'update_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                        'data-instruction-placement' => 'field'
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => 'current_user',
                    'allow_null' => 0,
                    'multiple' => 0,
                    'ui' => 1,
                    'ajax' => 0,
                    'return_format' => 'value',
                    'placeholder' => '',
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                ),
                array(
                    'key' => 'field_acfe_form_user_save_email',
                    'label' => 'Email',
                    'name' => 'acfe_form_user_save_email',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_email',
                                'operator' => '==empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_email_message',
                    'label' => 'Email',
                    'name' => 'acfe_form_user_map_email_message',
                    'type' => 'acfe_dynamic_message',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_email',
                                'operator' => '!=empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_save_username',
                    'label' => 'Username',
                    'name' => 'acfe_form_user_save_username',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_username',
                                'operator' => '==empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_username_message',
                    'label' => 'Username',
                    'name' => 'acfe_form_user_map_username_message',
                    'type' => 'acfe_dynamic_message',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_username',
                                'operator' => '!=empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_save_password',
                    'label' => 'Password',
                    'name' => 'acfe_form_user_save_password',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                        'generate_password' => 'Generate password',
                    ),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_password',
                                'operator' => '==empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_password_message',
                    'label' => 'Password',
                    'name' => 'acfe_form_user_map_password_message',
                    'type' => 'acfe_dynamic_message',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_password',
                                'operator' => '!=empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_save_first_name',
                    'label' => 'First name',
                    'name' => 'acfe_form_user_save_first_name',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_first_name',
                                'operator' => '==empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_first_name_message',
                    'label' => 'First name',
                    'name' => 'acfe_form_user_map_first_name_message',
                    'type' => 'acfe_dynamic_message',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_first_name',
                                'operator' => '!=empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_save_last_name',
                    'label' => 'Last name',
                    'name' => 'acfe_form_user_save_last_name',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(),
                    'default_value' => array(),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_last_name',
                                'operator' => '==empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_last_name_message',
                    'label' => 'Last name',
                    'name' => 'acfe_form_user_map_last_name_message',
                    'type' => 'acfe_dynamic_message',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_last_name',
                                'operator' => '!=empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_save_nickname',
                    'label' => 'Nickname',
                    'name' => 'acfe_form_user_save_nickname',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_nickname',
                                'operator' => '==empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_nickname_message',
                    'label' => 'Nickname',
                    'name' => 'acfe_form_user_map_nickname_message',
                    'type' => 'acfe_dynamic_message',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_nickname',
                                'operator' => '!=empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_save_display_name',
                    'label' => 'Display name',
                    'name' => 'acfe_form_user_save_display_name',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_display_name',
                                'operator' => '==empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_display_name_message',
                    'label' => 'Display name',
                    'name' => 'acfe_form_user_map_display_name_message',
                    'type' => 'acfe_dynamic_message',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_display_name',
                                'operator' => '!=empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_save_website',
                    'label' => 'Website',
                    'name' => 'acfe_form_user_save_website',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_website',
                                'operator' => '==empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_website_message',
                    'label' => 'Website',
                    'name' => 'acfe_form_user_map_website_message',
                    'type' => 'acfe_dynamic_message',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_website',
                                'operator' => '!=empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_save_description_group',
                    'label' => 'Description',
                    'name' => 'acfe_form_user_save_description_group',
                    'type' => 'group',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_description',
                                'operator' => '==empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'layout' => 'block',
                    'acfe_seamless_style' => true,
                    'acfe_group_modal' => 0,
                    'sub_fields' => array(
                        array(
                            'key' => 'field_acfe_form_user_save_description',
                            'label' => '',
                            'name' => 'acfe_form_user_save_description',
                            'type' => 'select',
                            'instructions' => '',
                            'required' => 0,
                            'conditional_logic' => 0,
                            'wrapper' => array(
                                'width' => '',
                                'class' => '',
                                'id' => '',
                            ),
                            'acfe_permissions' => '',
                            'choices' => array(
                                'custom' => 'WYSIWYG Editor',
                            ),
                            'default_value' => array(
                            ),
                            'allow_null' => 1,
                            'multiple' => 0,
                            'ui' => 1,
                            'return_format' => 'value',
                            'placeholder' => 'Default',
                            'ajax' => 0,
                            'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                            'allow_custom' => 1,
                        ),
                        array(
                            'key' => 'field_acfe_form_user_save_description_custom',
                            'label' => '',
                            'name' => 'acfe_form_user_save_description_custom',
                            'type' => 'wysiwyg',
                            'instructions' => '',
                            'required' => 1,
                            'conditional_logic' => array(
                                array(
                                    array(
                                        'field' => 'field_acfe_form_user_save_description',
                                        'operator' => '==',
                                        'value' => 'custom',
                                    ),
                                ),
                            ),
                            'wrapper' => array(
                                'width' => '',
                                'class' => '',
                                'id' => '',
                            ),
                            'acfe_permissions' => '',
                            'default_value' => '',
                            'tabs' => 'all',
                            'toolbar' => 'full',
                            'media_upload' => 1,
                            'delay' => 0,
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_description_message',
                    'label' => 'Description',
                    'name' => 'acfe_form_user_map_description_message',
                    'type' => 'acfe_dynamic_message',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_description',
                                'operator' => '!=empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_save_role',
                    'label' => 'Role',
                    'name' => 'acfe_form_user_save_role',
                    'type' => 'acfe_user_roles',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_role',
                                'operator' => '==empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'user_role' => '',
                    'field_type' => 'select',
                    'default_value' => '',
                    'allow_null' => 1,
                    'placeholder' => 'Default',
                    'multiple' => 0,
                    'ui' => 1,
                    'choices' => array(
                    ),
                    'ajax' => 0,
                    'layout' => '',
                    'toggle' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                ),
                array(
                    'key' => 'field_acfe_form_user_map_role_message',
                    'label' => 'Role',
                    'name' => 'acfe_form_user_map_role_message',
                    'type' => 'acfe_dynamic_message',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_map_role',
                                'operator' => '!=empty',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_save_meta',
                    'label' => 'Save ACF fields',
                    'name' => 'acfe_form_user_save_meta',
                    'type' => 'checkbox',
                    'instructions' => 'Choose which ACF fields should be saved to this user',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'allow_custom' => 0,
                    'default_value' => array(
                    ),
                    'layout' => 'vertical',
                    'toggle' => 1,
                    'return_format' => 'value',
                    'save_custom' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
        
                /*
                 * Layout: User Load
                 */
                array(
                    'key' => 'acfe_form_user_tab_load',
                    'label' => 'Load',
                    'name' => '',
                    'type' => 'tab',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'placement' => 'top',
                    'endpoint' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_load_values',
                    'label' => 'Load Values',
                    'name' => 'acfe_form_user_load_values',
                    'type' => 'true_false',
                    'instructions' => 'Fill inputs with values',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'message' => '',
                    'default_value' => 0,
                    'ui' => 1,
                    'ui_on_text' => '',
                    'ui_off_text' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_load_source',
                    'label' => 'Source',
                    'name' => 'acfe_form_user_load_source',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                        'data-instruction-placement' => 'field'
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => 'current_user',
                    'allow_null' => 0,
                    'multiple' => 0,
                    'ui' => 1,
                    'ajax' => 0,
                    'return_format' => 'value',
                    'placeholder' => '',
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                ),
        
                array(
                    'key' => 'field_acfe_form_user_map_email',
                    'label' => 'Email',
                    'name' => 'acfe_form_user_map_email',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_username',
                    'label' => 'Username',
                    'name' => 'acfe_form_user_map_username',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_password',
                    'label' => 'Password',
                    'name' => 'acfe_form_user_map_password',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_first_name',
                    'label' => 'First name',
                    'name' => 'acfe_form_user_map_first_name',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_last_name',
                    'label' => 'Last name',
                    'name' => 'acfe_form_user_map_last_name',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_nickname',
                    'label' => 'Nickname',
                    'name' => 'acfe_form_user_map_nickname',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_display_name',
                    'label' => 'Display name',
                    'name' => 'acfe_form_user_map_display_name',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_website',
                    'label' => 'Website',
                    'name' => 'acfe_form_user_map_website',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_description',
                    'label' => 'Description',
                    'name' => 'acfe_form_user_map_description',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_map_role',
                    'label' => 'Role',
                    'name' => 'acfe_form_user_map_role',
                    'type' => 'select',
                    'instructions' => '',
                    'required' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'default_value' => array(
                    ),
                    'allow_null' => 1,
                    'multiple' => 0,
                    'ui' => 1,
                    'return_format' => 'value',
                    'placeholder' => 'Default',
                    'ajax' => 0,
                    'search_placeholder' => 'Enter a custom value or template tag. (See "Cheatsheet" tab)',
                    'allow_custom' => 1,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                            array(
                                'field' => 'field_acfe_form_user_action',
                                'operator' => '!=',
                                'value' => 'log_user',
                            ),
                        ),
                    ),
                ),
                array(
                    'key' => 'field_acfe_form_user_load_meta',
                    'label' => 'Load ACF fields',
                    'name' => 'acfe_form_user_load_meta',
                    'type' => 'checkbox',
                    'instructions' => 'Choose which ACF fields should have their values loaded',
                    'required' => 0,
                    'conditional_logic' => array(
                        array(
                            array(
                                'field' => 'field_acfe_form_user_load_values',
                                'operator' => '==',
                                'value' => '1',
                            ),
                        ),
                    ),
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'choices' => array(
                    ),
                    'allow_custom' => 0,
                    'default_value' => array(
                    ),
                    'layout' => 'vertical',
                    'toggle' => 1,
                    'return_format' => 'value',
                    'save_custom' => 0,
                ),
        
        
                /*
                 * Layout: User Advanced
                 */
                array(
                    'key' => 'field_acfe_form_user_tab_advanced',
                    'label' => 'Code',
                    'name' => '',
                    'type' => 'tab',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                    'placement' => 'top',
                    'endpoint' => 0,
                ),
                array(
                    'key' => 'field_acfe_form_user_advanced_load',
                    'label' => 'Change values source',
                    'name' => 'acfe_form_user_advanced_load',
                    'type' => 'acfe_dynamic_message',
                    'value' => isset($_REQUEST['post']) ? $_REQUEST['post'] : '',
                    'instructions' => 'Alter the user ID where meta values are loaded from',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_advanced_save_args',
                    'label' => 'Change user arguments',
                    'name' => 'acfe_form_user_advanced_save_args',
                    'type' => 'acfe_dynamic_message',
                    'value' => isset($_REQUEST['post']) ? $_REQUEST['post'] : '',
                    'instructions' => 'Alter the user arguments before database insert/update',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
                array(
                    'key' => 'field_acfe_form_user_advanced_save',
                    'label' => 'Add custom action on user save',
                    'name' => 'acfe_form_user_advanced_save',
                    'type' => 'acfe_dynamic_message',
                    'value' => isset($_REQUEST['post']) ? $_REQUEST['post'] : '',
                    'instructions' => 'This action allows you to hook in before or after the meta data have been saved',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array(
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'acfe_permissions' => '',
                ),
            ),
            'min' => '',
            'max' => '',
        );
        
        return $layouts;
        
    }
    
}

new acfe_form_user();

endif;