public static function build_map_array()
 {
     $lead_fields = Leads_Field_Map::get_lead_fields();
     $field_map = array();
     $field_map[''] = 'No Mapping';
     // default empty
     foreach ($lead_fields as $key => $field) {
         $label = $field['label'];
         $key = $field['key'];
         $field_map[$key] = $label;
     }
     return $field_map;
 }
function wpleads_save_user_fields($post_id)
{
    global $post;
    if (!isset($post) || isset($_POST['split_test'])) {
        return;
    }
    if ($post->post_type == 'revision' || 'trash' == get_post_status($post_id)) {
        return;
    }
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE || isset($_POST['post_type']) && $_POST['post_type'] == 'revision') {
        return;
    }
    if ($post->post_type == 'wp-lead') {
        $Leads_Field_Map = new Leads_Field_Map();
        $wpleads_user_fields = $Leads_Field_Map->get_lead_fields();
        foreach ($wpleads_user_fields as $key => $field) {
            $old = get_post_meta($post_id, $field['key'], true);
            if (isset($_POST[$field['key']])) {
                $new = $_POST[$field['key']];
                if (is_array($new)) {
                    //echo $field['name'];exit;
                    array_filter($new);
                    $new = implode(';', $new);
                    update_post_meta($post_id, $field['key'], $new);
                } else {
                    if (isset($new) && $new != $old) {
                        update_post_meta($post_id, $field['key'], $new);
                        if ($field['key'] == 'wpleads_email_address') {
                            $args = array('ID' => $post_id, 'post_title' => $new);
                            wp_update_post($args);
                        }
                    } else {
                        if ('' == $new && $old) {
                            delete_post_meta($post_id, $field['key'], $old);
                        }
                    }
                }
            }
        }
    }
}
 /**
  *    Gets mapped field data for this lead provide and sets it into static variable
  */
 public static function get_mapped_fields()
 {
     global $post;
     $fields = array();
     $mapped_fields = Leads_Field_Map::get_lead_fields();
     $mapped_fields = Leads_Field_Map::prioritize_lead_fields($mapped_fields);
     foreach ($mapped_fields as $key => $field) {
         $fields[$field['key']] = $field;
         /* Get related meta value if exists */
         $fields[$field['key']]['value'] = get_post_meta($post->ID, $mapped_fields[$key]['key'], true);
         /* Get default mapped value if meta value does not exists */
         if (!$fields[$field['key']]['value'] && isset($mapped_fields[$key]['default'])) {
             $fields[$field['key']]['value'] = $mapped_fields[$key]['default'];
         } elseif (!isset($fields[$field['key']]['value'])) {
             $fields[$field['key']]['value'] = "";
         }
     }
     self::$mapped_fields = $fields;
 }