web/wp-content/plugins/acf-extended/includes/modules/form/module-form-action-user.php (1,747 lines of code) (raw):

<?php if(!defined('ABSPATH')){ exit; } if(!class_exists('acfe_module_form_action_user')): class acfe_module_form_action_user extends acfe_module_form_action{ public $errors; /** * initialize */ function initialize(){ $this->name = 'user'; $this->title = __('User action', 'acfe'); $this->item = array( 'action' => 'user', 'type' => 'insert_user', // insert_user | update_user | log_user 'name' => '', 'validation' => true, 'login' => array( 'type' => '', 'user' => '', 'pass' => '', 'remember' => '', ), 'save' => array( 'target' => '', 'user_email' => '', 'user_login' => '', 'user_pass' => '', 'first_name' => '', 'last_name' => '', 'nickname' => '', 'display_name' => '', 'user_url' => '', 'description' => '', 'role' => '', 'log_user' => false, 'acf_fields' => array(), ), 'load' => array( 'source' => '', 'user_email' => '', 'user_login' => '', 'user_pass' => '', 'first_name' => '', 'last_name' => '', 'nickname' => '', 'display_name' => '', 'user_url' => '', 'description' => '', 'role' => '', 'acf_fields' => array(), ), ); $this->fields = array('user_email', 'user_login', 'user_pass', 'first_name', 'last_name', 'nickname', 'display_name', 'user_url', 'description', 'role'); } /** * load_action * * acfe/form/load_user:9 * * @param $form * @param $action * * @return mixed */ function load_action($form, $action){ // check source if(!$action['load']['source']){ return $form; } // apply template tags acfe_apply_tags($action['load']['source'], array('context' => 'load', 'format' => false)); // vars $load = $action['load']; $user_id = acf_extract_var($load, 'source'); $user_role = acf_extract_var($load, 'role'); $acf_fields = acf_extract_var($load, 'acf_fields'); $acf_fields = acf_get_array($acf_fields); $acf_fields_exclude = array(); // filters $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); $user_id = apply_filters("acfe/form/load_user_id/action={$action['name']}", $user_id, $form, $action); // bail early if no source if(!$user_id){ return $form; } // get source user $user = get_user_by('ID', $user_id); // no user found if(!$user){ return $form; } /** * load user fields * * $load = array( * user_email => 'field_655af3dd3bd56' * user_login => 'field_655af3dd3bd56' * user_pass => 'field_655af3dd3bd56' * first_name => '' * last_name => '' * ) */ foreach($load as $user_field => $field_key){ // check field is not hidden and has no value set in 'acfe/form/load_form' if(acf_maybe_get($form['map'], $field_key) !== false && !isset($form['map'][ $field_key ]['value'])){ // check key exists in WP_User and is field key if(in_array($user_field, $this->fields) && !empty($field_key) && is_string($field_key) && acf_is_field_key($field_key)){ // add field to excluded list $acf_fields_exclude[] = $field_key; // exclude password if($user_field === 'user_pass'){ continue; } // assign user field as value $form['map'][ $field_key ]['value'] = $user->{$user_field}; } } } // load user role if(!empty($user_role) && is_string($user_role) && acf_is_field_key($user_role)){ // field key $field_key = $user_role; // check field is not hidden and has no value set in 'acfe/form/load_form' if(acf_maybe_get($form['map'], $field_key) !== false && !isset($form['map'][ $field_key ]['value'])){ // add field to excluded list $acf_fields_exclude[] = $field_key; // get roles $form['map'][ $field_key ]['value'] = $user->roles; } } // load acf values $form = $this->load_acf_values($form, "user_{$user_id}", $acf_fields, $acf_fields_exclude); // return return $form; } /** * setup_action * * @param $action * @param $form * * @return mixed */ function setup_action($action, $form){ // switch type switch($action['type']){ // insert user case 'insert_user':{ // tags context $opt = array('context' => 'save'); $opt_fmt = array('context' => 'save', 'format' => false); // apply tags acfe_apply_tags($action['save']['target'], $opt_fmt); acfe_apply_tags($action['save']['log_user'], $opt_fmt); acfe_apply_tags($action['save']['user_email'], $opt_fmt); acfe_apply_tags($action['save']['user_login'], $opt_fmt); acfe_apply_tags($action['save']['user_pass'], $opt_fmt); acfe_apply_tags($action['save']['first_name'], $opt_fmt); acfe_apply_tags($action['save']['last_name'], $opt_fmt); acfe_apply_tags($action['save']['nickname'], $opt_fmt); acfe_apply_tags($action['save']['display_name'], $opt_fmt); acfe_apply_tags($action['save']['user_url'], $opt_fmt); acfe_apply_tags($action['save']['description'], $opt); acfe_apply_tags($action['save']['role'], $opt_fmt); // sanitize password $action['save']['user_pass'] = wp_specialchars_decode($action['save']['user_pass']); // fallback login to email if missing if(empty($action['save']['user_login'])){ $action['save']['user_login'] = $action['save']['user_email']; } // sanitize login $action['save']['user_login'] = sanitize_user($action['save']['user_login'], true); $action['save']['user_login'] = apply_filters('pre_user_login', $action['save']['user_login']); $action['save']['user_login'] = trim($action['save']['user_login']); break; } // update user case 'update_user':{ // tags context $opt = array('context' => 'save'); $opt_fmt = array('context' => 'save', 'format' => false); // apply tags acfe_apply_tags($action['save']['target'], $opt_fmt); acfe_apply_tags($action['save']['log_user'], $opt_fmt); acfe_apply_tags($action['save']['user_email'], $opt_fmt); acfe_apply_tags($action['save']['user_login'], $opt_fmt); acfe_apply_tags($action['save']['user_pass'], $opt_fmt); acfe_apply_tags($action['save']['first_name'], $opt_fmt); acfe_apply_tags($action['save']['last_name'], $opt_fmt); acfe_apply_tags($action['save']['nickname'], $opt_fmt); acfe_apply_tags($action['save']['display_name'], $opt_fmt); acfe_apply_tags($action['save']['user_url'], $opt_fmt); acfe_apply_tags($action['save']['description'], $opt); acfe_apply_tags($action['save']['role'], $opt_fmt); // sanitize password $action['save']['user_pass'] = wp_specialchars_decode($action['save']['user_pass']); // check user login is filled if(!empty($action['save']['user_login'])){ // sanitize $action['save']['user_login'] = sanitize_user($action['save']['user_login'], true); $action['save']['user_login'] = apply_filters('pre_user_login', $action['save']['user_login']); $action['save']['user_login'] = trim($action['save']['user_login']); } break; } // log user case 'log_user':{ // tags opt $opt = array('context' => 'save', 'format' => false); // apply tags acfe_apply_tags($action['login']['type'], $opt); acfe_apply_tags($action['login']['user'], $opt); acfe_apply_tags($action['login']['pass'], $opt); acfe_apply_tags($action['login']['remember'], $opt); // sanitize password $action['login']['pass'] = wp_specialchars_decode($action['login']['pass']); // switch login type switch($action['login']['type']){ // email case 'email':{ $action['login']['user'] = sanitize_email($action['login']['user']); break; } // username case 'username':{ $action['login']['user'] = sanitize_user($action['login']['user']); break; } // email or username case 'email_username':{ // email if(is_email($action['login']['user'])){ $action['login']['user'] = sanitize_email($action['login']['user']); // username }else{ $action['login']['user'] = sanitize_user($action['login']['user']); } break; } } break; } } // return return $action; } /** * validate_action * * acfe/form/validate_user:9 * * @param $form * @param $action */ function validate_action($form, $action){ // check built-in validation if(empty($action['validation'])){ return false; } // errors $errors = array( 'empty_user_pass' => __('An error has occured. Please try again', 'acfe'), 'invalid_email' => __('Invalid e-mail', 'acfe'), 'invalid_email_password' => __('Invalid e-mail or password', 'acfe'), 'invalid_username' => __('Invalid username', 'acfe'), 'invalid_username_password' => __('Invalid username or password', 'acfe'), 'used_email' => __('E-mail address is already used', 'acfe'), 'used_username' => __('Username is already used', 'acfe'), 'long_username' => __('Username may not be longer than 60 characters.'), ); // filters $errors = apply_filters("acfe/form/validate_user_errors", $errors, $form, $action); $errors = apply_filters("acfe/form/validate_user_errors/form={$form['name']}", $errors, $form, $action); $errors = apply_filters("acfe/form/validate_user_errors/action={$action['name']}", $errors, $form, $action); // apply tags $action = $this->setup_action($action, $form); // switch type switch($action['type']){ // insert user case 'insert_user':{ // check user login input is filled if(!empty($action['save']['user_login'])){ // login too long if(mb_strlen($action['save']['user_login']) > 60){ return acfe_add_validation_error('', $errors['long_username']); // login already exists // note: username_exists() returns user ID if exists }elseif(username_exists($action['save']['user_login'])){ return acfe_add_validation_error('', $errors['used_username']); } // illegal login $illegal_logins = (array) apply_filters('illegal_user_logins', array()); if(in_array(strtolower($action['save']['user_login']), array_map('strtolower', $illegal_logins), true)){ return acfe_add_validation_error('', $errors['invalid_username']); } } // empty email if(empty($action['save']['user_email']) || !is_email($action['save']['user_email'])){ return acfe_add_validation_error('', $errors['invalid_email']); // email exists }elseif(email_exists($action['save']['user_email'])){ return acfe_add_validation_error('', $errors['used_email']); } break; } // update user case 'update_user':{ // check user login input is filled if(!empty($action['save']['user_login'])){ // login too long if(mb_strlen($action['save']['user_login']) > 60){ return acfe_add_validation_error('', $errors['long_username']); // login already exists // note: username_exists() returns user ID if exists }elseif(username_exists($action['save']['user_login']) && username_exists($action['save']['user_login']) !== (int) $action['save']['target']){ return acfe_add_validation_error('', $errors['used_username']); } // illegal login $illegal_logins = (array) apply_filters('illegal_user_logins', array()); if(in_array(strtolower($action['save']['user_login']), array_map('strtolower', $illegal_logins), true)){ return acfe_add_validation_error('', $errors['invalid_username']); } } // check user email input is filled if(!empty($action['save']['user_email'])){ // invalid email if(!is_email($action['save']['user_email'])){ return acfe_add_validation_error('', $errors['invalid_email']); // email already exists // note: email_exists() returns user ID if exists }elseif(email_exists($action['save']['user_email']) && email_exists($action['save']['user_email']) !== (int) $action['save']['target']){ return acfe_add_validation_error('', $errors['used_email']); } } break; } // log user case 'log_user':{ // vars $login = $action['login']['user']; $pass = $action['login']['pass']; // empty login or pass if(empty($login) || empty($pass)){ return acfe_add_validation_error('', $errors['empty_user_pass']); } // switch login type switch($action['login']['type']){ // email case 'email':{ // already sanitized if(empty($login) || !is_email($login)){ return acfe_add_validation_error('', $errors['invalid_email']); } // get user $user = get_user_by('email', $login); if(!$user || !wp_check_password($pass, $user->data->user_pass, $user->ID)){ return acfe_add_validation_error('', $errors['invalid_email_password']); } break; } // username case 'username':{ // already sanitized if(empty($login)){ return acfe_add_validation_error('', $errors['invalid_username']); } // get user $user = get_user_by('login', $login); if(!$user || !wp_check_password($pass, $user->data->user_pass, $user->ID)){ return acfe_add_validation_error('', $errors['invalid_username_password']); } break; } // email username case 'email_username':{ // email if(is_email($login)){ // already sanitized if(empty($login)){ return acfe_add_validation_error('', $errors['invalid_email']); } // get user $user = get_user_by('email', $login); if(!$user || !wp_check_password($pass, $user->data->user_pass, $user->ID)){ return acfe_add_validation_error('', $errors['invalid_email_password']); } // username }else{ // already sanitized if(empty($login)){ return acfe_add_validation_error('', $errors['invalid_username']); } // get user $user = get_user_by('login', $login); if(!$user || !wp_check_password($pass, $user->data->user_pass, $user->ID)){ return acfe_add_validation_error('', $errors['invalid_username_password']); } } break; } } break; } } } /** * prepare_action * * acfe/form/prepare_user:9 * * @param $action * @param $form * * @return mixed */ function prepare_action($action, $form){ // return return $action; } /** * make_action * * acfe/form/make_user:9 * * @param $form * @param $action */ function make_action($form, $action){ // insert/update/log user $process = $this->process($form, $action); // validate if(!$process){ return; } // process vars $user_id = $process['user_id']; $args = $process['args']; // output $this->generate_output($user_id, $args, $form, $action); // acf values $this->save_acf_fields("user_{$user_id}", $action); // hooks do_action("acfe/form/submit_user", $user_id, $args, $form, $action); do_action("acfe/form/submit_user/form={$form['name']}", $user_id, $args, $form, $action); do_action("acfe/form/submit_user/action={$action['name']}", $user_id, $args, $form, $action); } /** * process * * @param $form * @param $action * * @return array|false */ function process($form, $action){ // apply tags $action = $this->setup_action($action, $form); // switch action type switch($action['type']){ // insert/update user case 'insert_user': case 'update_user':{ return $this->insert_user($form, $action); } // log user case 'log_user':{ return $this->log_user($form, $action); } } return false; } /** * insert_user * * @param $form * @param $action * * @return array|false */ function insert_user($form, $action){ $args = array(); $save = $action['save']; $user_id = (int) acf_extract_var($save, 'target'); // update user if($action['type'] === 'update_user'){ // stop action if(!$user_id){ return false; } // set user to update $args['ID'] = $user_id; } // construct user arguments foreach($save as $user_field => $value){ // name, slug, taxonomy, parent etc... if(in_array($user_field, $this->fields) && !acf_is_empty($value)){ $args[ $user_field ] = $value; } } // filters $args = apply_filters("acfe/form/submit_user_args", $args, $form, $action); $args = apply_filters("acfe/form/submit_user_args/form={$form['name']}", $args, $form, $action); $args = apply_filters("acfe/form/submit_user_args/action={$action['name']}", $args, $form, $action); // bail early if($args === false){ return false; } // switch action type switch($action['type']){ // insert user case 'insert_user':{ // fallback for empty password // this should exist, but can be manually deleted within filter above // and throw a notice if(!isset($args['user_pass'])){ $args['user_pass'] = ''; } // insert user $user_id = wp_insert_user($args); // validate if(!$user_id || is_wp_error($user_id)){ return false; } // log user once created if($action['save']['log_user']){ // catch auth setcookie // and assign $_COOKIE so we don't need to reload the page add_action('set_auth_cookie', array($this, 'set_auth_cookie')); add_action('set_logged_in_cookie', array($this, 'set_logged_in_cookie')); wp_clear_auth_cookie(); wp_set_current_user($user_id); wp_set_auth_cookie($user_id); remove_action('set_auth_cookie', array($this, 'set_auth_cookie')); remove_action('set_logged_in_cookie', array($this, 'set_logged_in_cookie')); } break; } // update user case 'update_user':{ // update user $user_id = wp_update_user($args); // validate if(!$user_id || is_wp_error($user_id)){ return false; } // manually update login & nicename // we must use $wpdb->update() here because WP doesn't allow to change user login if(!empty($args['user_login']) && $args['user_login'] !== get_userdata($user_id)->user_login){ // user_login is already sanitized in setup_action() // prepare nicename $user_nicename = mb_substr($args['user_login'], 0, 50); // max 50 chars $user_nicename = sanitize_title($user_nicename); $user_nicename = apply_filters('pre_user_nicename', $user_nicename); // global wpdb global $wpdb; // manual update // this logout the user (because user_login is changed) $wpdb->update($wpdb->users, array( 'user_login' => $args['user_login'], // login 'user_nicename' => $user_nicename, // url ), array( 'ID' => $user_id ) ); // we must re-log the user // catch auth setcookie // and assign $_COOKIE so we don't need to reload the page add_action('set_auth_cookie', array($this, 'set_auth_cookie')); add_action('set_logged_in_cookie', array($this, 'set_logged_in_cookie')); // we must clear cache since the user is updated above clean_user_cache($user_id); wp_clear_auth_cookie(); wp_set_current_user($user_id); wp_set_auth_cookie($user_id); remove_action('set_auth_cookie', array($this, 'set_auth_cookie')); remove_action('set_logged_in_cookie', array($this, 'set_logged_in_cookie')); } break; } } return array( 'user_id' => $user_id, 'args' => $args ); } /** * log_user * * @param $form * @param $action * * @return array|false */ function log_user($form, $action){ $user = false; // switch login type switch($action['login']['type']){ // email case 'email':{ $user = get_user_by('email', $action['login']['user']); break; } // username case 'username':{ $user = get_user_by('login', $action['login']['user']); break; } // email or username case 'email_username':{ $field = is_email($action['login']['user']) ? 'email' : 'login'; $user = get_user_by($field, $action['login']['user']); break; } } // validate if(!$user){ return false; } // prepare arguments $args = array( 'user_login' => $user->user_login, 'user_password' => $action['login']['pass'], 'remember' => boolval($action['login']['remember']) ); // catch auth setcookie // and assign $_COOKIE so we don't need to reload the page add_action('set_auth_cookie', array($this, 'set_auth_cookie')); add_action('set_logged_in_cookie', array($this, 'set_logged_in_cookie')); // signon $user = wp_signon($args, is_ssl()); remove_action('set_auth_cookie', array($this, 'set_auth_cookie')); remove_action('set_logged_in_cookie', array($this, 'set_logged_in_cookie')); // validate if(!$user || is_wp_error($user)){ return false; } // setup user for is_user_logged_in() wp_set_current_user($user->ID); // return return array( 'user_id' => $user->ID, 'args' => $args ); } /** * generate_output * * @param $user_id * @param $args * @param $form * @param $action */ function generate_output($user_id, $args, $form, $action){ // user object $user = $this->get_user_array($user_id); // replace hashed password with real password if(acf_maybe_get($args, 'user_pass')){ $user['user_pass'] = $args['user_pass']; } // filters $user = apply_filters("acfe/form/submit_user_output", $user, $args, $form, $action); $user = apply_filters("acfe/form/submit_user_output/form={$form['name']}", $user, $args, $form, $action); $user = apply_filters("acfe/form/submit_user_output/action={$action['name']}", $user, $args, $form, $action); // action output $this->set_action_output($user, $action); } /** * get_user_array * * @param $user_id * * @return array|false */ function get_user_array($user_id){ // bail early if user id is 0 if(!$user_id){ return false; } // user object $user = get_user_by('ID', $user_id); // validate if(!$user){ return false; } // cast as array $user = (array) $user->data; // user meta $user_meta = get_user_meta($user_id); foreach($user_meta as $k => $v){ if(isset($v[0])){ $user[ $k ] = $v[0]; } } // additional fields $user['permalink'] = get_author_posts_url($user_id); $user['admin_url'] = admin_url("user-edit.php?user_id=$user_id"); // return return $user; } /** * set_auth_cookie * * @param $cookie * * @return void */ function set_auth_cookie($cookie){ $cookie_name = is_ssl() ? SECURE_AUTH_COOKIE : AUTH_COOKIE; $_COOKIE[ $cookie_name ] = $cookie; } /** * set_logged_in_cookie * * @param $cookie * * @return void */ function set_logged_in_cookie($cookie){ $_COOKIE[ LOGGED_IN_COOKIE ] = $cookie; } /** * prepare_load_action * * acfe/module/prepare_load_action * * @param $action * * @return array */ function prepare_load_action($action){ // login loop foreach(array_keys($action['login']) as $k){ $action["login_{$k}"] = $action['login'][ $k ]; } // save loop foreach(array_keys($action['save']) as $k){ $action["save_{$k}"] = $action['save'][ $k ]; } // groups $keys = array( 'save' => array( 'target' => function($value){return !empty($value) && is_numeric($value);}, 'description' => function($value){return acfe_is_html(nl2br($value));}, ), 'load' => array( 'source' => function($value){return !empty($value) && is_numeric($value);}, ) ); foreach($keys as $parent => $row){ foreach($row as $key => $callback){ // save: target $value = $action[ $parent ][ $key ]; $action["{$parent}_{$key}_group"]["{$parent}_{$key}"] = $value; $action["{$parent}_{$key}_group"]["{$parent}_{$key}_custom"] = ''; if(call_user_func_array($callback, array($value))){ $action["{$parent}_{$key}_group"]["{$parent}_{$key}"] = 'custom'; $action["{$parent}_{$key}_group"]["{$parent}_{$key}_custom"] = $value; } } } // load loop $load_active = false; foreach(array_keys($action['load']) as $k){ $action["load_{$k}"] = $action['load'][ $k ]; if(!empty($action['load'][ $k ])){ $load_active = true; } } $action['load_active'] = $load_active; // cleanup unset($action['action']); unset($action['login']); unset($action['save']); unset($action['load']); return $action; } /** * prepare_save_action * * acfe/module/prepare_save_action * * @param $action * @param $item * * @return mixed */ function prepare_save_action($action){ $save = $this->item; // general $save['type'] = $action['type']; $save['name'] = $action['name']; $save['validation'] = $action['validation']; // login loop foreach(array_keys($save['login']) as $k){ // taxonomy => save_taxonomy if(acf_maybe_get($action, "login_{$k}")){ $save['login'][ $k ] = $action["login_{$k}"]; } } // save loop foreach(array_keys($save['save']) as $k){ // taxonomy => save_taxonomy if(acf_maybe_get($action, "save_{$k}")){ $save['save'][ $k ] = $action["save_{$k}"]; } } // groups $keys = array( 'save' => array('target', 'description'), 'load' => array('source'), ); foreach($keys as $parent => $row){ foreach($row as $key){ $group = $action["{$parent}_{$key}_group"]; $save[ $parent ][ $key ] = $group[ $key ]; if($group[ $key ] === 'custom'){ $save[ $parent ][ $key ] = $group["{$key}_custom"]; } } } // check load switch activated if($action['load_active']){ // load loop foreach(array_keys($save['load']) as $k){ // taxonomy => load_taxonomy if(acf_maybe_get($action, "load_{$k}")){ $value = $action["load_{$k}"]; $save['load'][ $k ] = $value; // assign to save array when field_key if(isset($save['save'][ $k ]) && !empty($value) && is_string($value) && acf_is_field_key($value)){ $save['save'][ $k ] = "{field:$value}"; } } } } // save: target if($action['type'] === 'update_user' && empty($save['save']['target'])){ $save['save']['target'] = '{user}'; } // load: source if($action['load_active'] && empty($save['load']['source'])){ $save['load']['source'] = '{user}'; } return $save; } /** * prepare_action_for_export * * @param $action * * @return mixed */ function prepare_action_for_export($action){ if($action['type'] === 'log_user'){ unset($action['save']); unset($action['load']); }else{ unset($action['login']); if($action['type'] === 'insert_user'){ unset($action['save']['target']); } if(empty($action['load']['source'])){ unset($action['load']); } } return $action; } /** * register_layout * * @param $layout * * @return array */ function register_layout($layout){ return array( /** * documentation */ array( 'key' => 'field_doc', 'label' => '', 'name' => '', 'type' => 'acfe_dynamic_render', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'render' => function(){ echo '<a href="https://www.acf-extended.com/features/modules/dynamic-forms/user-action" target="_blank">' . __('Documentation', 'acfe') . '</a>'; } ), /** * action */ array( 'key' => 'field_tab_action', 'label' => __('Action', 'acfe'), 'name' => '', 'type' => 'tab', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-no-preference' => true, ), 'placement' => 'top', 'endpoint' => 0, ), array( 'key' => 'field_type', 'label' => __('Action', 'acfe'), 'name' => 'type', 'type' => 'radio', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array( 'insert_user' => __('Create user', 'acfe'), 'update_user' => __('Update user', 'acfe'), 'log_user' => __('Log user', 'acfe'), ), 'default_value' => 'insert_user', ), array( 'key' => 'field_validation', 'label' => __('Validation', 'acfe'), 'name' => 'validation', 'type' => 'true_false', 'instructions' => __('(Optional) Automatically validate fields', 'acfe'), 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-instruction-placement' => 'field' ), 'message' => __('Built-in validation', 'acfe'), 'default_value' => 0, 'ui' => false, 'ui_on_text' => '', 'ui_off_text' => '', 'conditional_logic' => array(), ), array( 'key' => 'field_name', 'label' => __('Action name', 'acfe'), 'name' => 'name', 'type' => 'acfe_slug', 'instructions' => __('(Optional) Target this action using hooks.', 'acfe'), 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-instruction-placement' => 'field' ), 'default_value' => '', 'placeholder' => __('User', 'acfe'), 'prepend' => '', 'append' => '', 'maxlength' => '', ), /** * log */ array( 'key' => 'field_tab_login', 'label' => __('Login', 'acfe'), 'name' => '', 'type' => 'tab', 'instructions' => '', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'type', 'operator' => '==', 'value' => 'log_user', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-no-preference' => true, ), 'placement' => 'top', 'endpoint' => 0, ), array( 'key' => 'field_login_type', 'label' => __('Login type', 'acfe'), 'name' => 'login_type', 'type' => 'radio', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array( 'email' => __('E-mail', 'acfe'), 'username' => __('Username', 'acfe'), 'email_username' => __('E-mail or username', 'acfe'), ), 'allow_null' => 0, 'other_choice' => 0, 'default_value' => '', 'layout' => 'vertical', 'return_format' => 'value', 'save_other_choice' => 0, 'conditional_logic' => array(), ), array( 'key' => 'field_login_user', 'label' => __('Login', 'acfe'), 'name' => 'login_user', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_login_pass', 'label' => __('Password', 'acfe'), 'name' => 'login_pass', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_login_remember', 'label' => __('Remember me', 'acfe'), 'name' => 'login_remember', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), /** * save */ array( 'key' => 'field_tab_save', 'label' => __('Save', 'acfe'), 'name' => '', 'type' => 'tab', 'instructions' => '', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'type', 'operator' => '!=', 'value' => 'log_user', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-no-preference' => true, ), 'placement' => 'top', 'endpoint' => 0, ), array( 'key' => 'field_save_target_group', 'label' => __('Target', 'acfe'), 'name' => 'save_target_group', 'type' => 'group', 'instructions' => '', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'type', 'operator' => '==', 'value' => 'update_user', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'layout' => 'block', 'acfe_seamless_style' => true, 'acfe_group_modal' => 0, 'sub_fields' => array( array( 'key' => 'field_save_target', 'label' => '', 'name' => 'target', 'type' => 'select', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array( '{user}' => __('Current User', 'acfe'), '{post:post_author}' => __('Current Post Author', 'acfe'), 'custom' => __('User Selector', 'acfe'), ), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax' ), array( 'key' => 'field_save_target_custom', 'label' => '', 'name' => 'target_custom', 'type' => 'user', 'instructions' => '', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'field_save_target', 'operator' => '==', 'value' => 'custom', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'return_format' => 'id', 'default_value' => '', ), ), ), array( 'key' => 'field_save_user_email', 'label' => __('Email', 'acfe'), 'name' => 'save_user_email', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_save_user_login', 'label' => __('Username', 'acfe'), 'name' => 'save_user_login', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_save_user_pass', 'label' => __('Password', 'acfe'), 'name' => 'save_user_pass', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array( '{generate_password}' => __('Generate Password', 'acfe') ), 'default_value' => array( ), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_save_first_name', 'label' => __('First name', 'acfe'), 'name' => 'save_first_name', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_save_last_name', 'label' => __('Last name', 'acfe'), 'name' => 'save_last_name', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_save_nickname', 'label' => __('Nickname', 'acfe'), 'name' => 'save_nickname', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_save_display_name', 'label' => __('Display name', 'acfe'), 'name' => 'save_display_name', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_save_user_url', 'label' => __('Website', 'acfe'), 'name' => 'save_user_url', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_save_description_group', 'label' => __('Description', 'acfe'), 'name' => 'save_description_group', 'type' => 'group', 'instructions' => '', 'required' => 0, 'conditional_logic' => array(), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'layout' => 'block', 'acfe_seamless_style' => true, 'acfe_group_modal' => 0, 'sub_fields' => array( array( 'key' => 'field_save_description', 'label' => '', 'name' => 'description', 'type' => 'select', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array( 'custom' => __('Content Editor', 'acfe'), ), 'default_value' => array( ), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_save_description_custom', 'label' => '', 'name' => 'description_custom', 'type' => 'wysiwyg', 'instructions' => '', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'field_save_description', 'operator' => '==', 'value' => 'custom', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'default_value' => '', 'tabs' => 'all', 'toolbar' => 'full', 'media_upload' => 1, 'delay' => 0, ), ), ), array( 'key' => 'field_save_role', 'label' => __('Role', 'acfe'), 'name' => 'save_role', 'type' => 'acfe_user_roles', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'user_role' => '', 'field_type' => 'select', 'default_value' => '', 'allow_null' => 1, 'placeholder' => __('Default', 'acfe'), 'multiple' => 0, 'ui' => 1, 'choices' => array(), 'ajax' => 1, 'layout' => '', 'toggle' => 0, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'conditional_logic' => array(), 'ajax_action' => 'acfe/form/map_field_ajax', ), array( 'key' => 'field_save_log_user', 'label' => __('Log user', 'acfe'), 'name' => 'save_log_user', 'type' => 'true_false', 'instructions' => __('Log user once created', 'acfe'), 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'message' => '', 'default_value' => 0, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', 'conditional_logic' => array( array( array( 'field' => 'type', 'operator' => '==', 'value' => 'insert_user', ), ), ), ), array( 'key' => 'field_save_acf_fields', 'label' => __('Save ACF fields', 'acfe'), 'name' => 'save_acf_fields', 'type' => 'checkbox', 'instructions' => __('Which ACF fields should be saved as metadata', 'acfe'), 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'allow_custom' => 0, 'default_value' => array(), 'layout' => 'vertical', 'toggle' => 0, 'return_format' => 'value', 'save_custom' => 0, 'conditional_logic' => array(), ), /** * load */ array( 'key' => 'field_tab_load', 'label' => __('Load', 'acfe'), 'name' => '', 'type' => 'tab', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-no-preference' => true, ), 'placement' => 'top', 'endpoint' => 0, 'conditional_logic' => array( array( array( 'field' => 'type', 'operator' => '!=', 'value' => 'log_user', ), ), ), ), array( 'key' => 'field_load_active', 'label' => __('Load Values', 'acfe'), 'name' => 'load_active', 'type' => 'true_false', 'instructions' => __('Fill inputs with values', 'acfe'), 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_permissions' => '', 'message' => '', 'default_value' => 0, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', 'conditional_logic' => array(), ), array( 'key' => 'field_load_source_group', 'label' => __('Source', 'acfe'), 'name' => 'load_source_group', 'type' => 'group', 'instructions' => '', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'layout' => 'block', 'acfe_seamless_style' => true, 'acfe_group_modal' => 0, 'sub_fields' => array( array( 'key' => 'field_load_source', 'label' => '', 'name' => 'source', 'type' => 'select', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array( '{user}' => __('Current User', 'acfe'), '{post:post_author}' => __('Current Post Author', 'acfe'), 'custom' => __('User Selector', 'acfe'), ), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('Default', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a custom value/template tag.', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax' ), array( 'key' => 'field_load_source_custom', 'label' => '', 'name' => 'source_custom', 'type' => 'user', 'instructions' => '', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'field_load_source', 'operator' => '==', 'value' => 'custom', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'return_format' => 'id', 'default_value' => '', ) ), ), array( 'key' => 'field_load_user_email', 'label' => __('Email', 'acfe'), 'name' => 'load_user_email', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-related-field' => 'field_save_user_email' ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('None', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a field key', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax', 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), ), array( 'key' => 'field_load_user_login', 'label' => __('Username', 'acfe'), 'name' => 'load_user_login', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-related-field' => 'field_save_user_login' ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('None', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a field key', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax', 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), ), array( 'key' => 'field_load_user_pass', 'label' => __('Password', 'acfe'), 'name' => 'load_user_pass', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-related-field' => 'field_save_user_pass' ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('None', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a field key', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax', 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), ), array( 'key' => 'field_load_first_name', 'label' => __('First name', 'acfe'), 'name' => 'load_first_name', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-related-field' => 'field_save_first_name' ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('None', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a field key', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax', 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), ), array( 'key' => 'field_load_last_name', 'label' => __('Last name', 'acfe'), 'name' => 'load_last_name', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-related-field' => 'field_save_last_name' ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('None', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a field key', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax', 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), ), array( 'key' => 'field_load_nickname', 'label' => __('Nickname', 'acfe'), 'name' => 'load_nickname', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-related-field' => 'field_save_nickname' ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('None', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a field key', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax', 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), ), array( 'key' => 'field_load_display_name', 'label' => __('Display name', 'acfe'), 'name' => 'load_display_name', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-related-field' => 'field_save_display_name' ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('None', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a field key', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax', 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), ), array( 'key' => 'field_load_user_url', 'label' => __('Website', 'acfe'), 'name' => 'load_user_url', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-related-field' => 'field_save_user_url' ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('None', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a field key', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax', 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), ), array( 'key' => 'field_load_description', 'label' => __('Description', 'acfe'), 'name' => 'load_description', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-related-field' => 'field_save_description' ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('None', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a field key', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax', 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), ), array( 'key' => 'field_load_role', 'label' => __('Role', 'acfe'), 'name' => 'load_role', 'type' => 'select', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-related-field' => 'field_save_role' ), 'choices' => array(), 'default_value' => array(), 'allow_null' => 1, 'multiple' => 0, 'ui' => 1, 'return_format' => 'value', 'placeholder' => __('None', 'acfe'), 'ajax' => 1, 'search_placeholder' => __('Select a field or enter a field key', 'acfe'), 'allow_custom' => 1, 'ajax_action' => 'acfe/form/map_field_ajax', 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), ), array( 'key' => 'field_load_acf_fields', 'label' => __('Load ACF fields', 'acfe'), 'name' => 'load_acf_fields', 'type' => 'checkbox', 'instructions' => __('Select which ACF fields should have their values loaded', 'acfe'), 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'field_load_active', 'operator' => '==', 'value' => '1', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'choices' => array(), 'allow_custom' => 0, 'default_value' => array(), 'layout' => 'vertical', 'toggle' => 0, 'return_format' => 'value', 'save_custom' => 0, ), ); } } acfe_register_form_action_type('acfe_module_form_action_user'); endif;