function acf_update_user_setting($name, $value) { // get current user id $user_id = get_current_user_id(); // get user settings $settings = get_user_meta($user_id, 'acf_user_settings', false); // find settings if (isset($settings[0])) { $settings = $settings[0]; } else { $settings = array(); } // delete setting (allow 0 to save) if (acf_is_empty($value)) { unset($settings[$name]); // append setting } else { $settings[$name] = $value; } // update user data return update_metadata('user', $user_id, 'acf_user_settings', $settings); }
function format_value($value, $post_id, $field) { // bail early if no value if (empty($value) || empty($field['sub_fields'])) { return false; } // loop over rows foreach (array_keys($value) as $i) { // loop through sub fields foreach (array_keys($field['sub_fields']) as $j) { // get sub field $sub_field = $field['sub_fields'][$j]; // bail ealry if no name (tab) if (acf_is_empty($sub_field['name'])) { continue; } // extract value $sub_value = acf_extract_var($value[$i], $sub_field['key']); // update $sub_field name $sub_field['name'] = "{$field['name']}_{$i}_{$sub_field['name']}"; // format value $sub_value = acf_format_value($sub_value, $post_id, $sub_field); // append to $row $value[$i][$sub_field['_name']] = $sub_value; } } // return return $value; }
function format_value($value, $post_id, $field) { // bail early if no value if (empty($value) || empty($field['layouts'])) { return false; } // populate $layouts $layouts = array(); foreach (array_keys($field['layouts']) as $i) { // get layout $layout = $field['layouts'][$i]; // append to $layouts $layouts[$layout['name']] = $layout['sub_fields']; } // loop over rows foreach (array_keys($value) as $i) { // get layout name $l = $value[$i]['acf_fc_layout']; // bail early if layout deosnt exist if (empty($layouts[$l])) { continue; } // get layout $layout = $layouts[$l]; // loop through sub fields foreach (array_keys($layout) as $j) { // get sub field $sub_field = $layout[$j]; // bail ealry if no name (tab) if (acf_is_empty($sub_field['name'])) { continue; } // extract value $sub_value = acf_extract_var($value[$i], $sub_field['key']); // update $sub_field name $sub_field['name'] = "{$field['name']}_{$i}_{$sub_field['name']}"; // format value $sub_value = acf_format_value($sub_value, $post_id, $sub_field); // append to $row $value[$i][$sub_field['_name']] = $sub_value; } } // return return $value; }
function format_value_single($value, $post_id, $field) { // bail ealry if is empty if (acf_is_empty($value)) { return $value; } // vars $label = acf_maybe_get($field['choices'], $value, $value); // value if ($field['return_format'] == 'value') { // do nothing // label } elseif ($field['return_format'] == 'label') { $value = $label; // array } elseif ($field['return_format'] == 'array') { $value = array('value' => $value, 'label' => $label); } // return return $value; }