示例#1
0
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);
}
示例#2
0
 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;
 }
示例#4
0
 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;
 }