function delibera_notificar_replace_vars($subject, $user, $postReport)
{
    global $post;
    if (!is_object($postReport)) {
        $postReport = get_post($postReport);
    }
    $post = $postReport;
    $opt = delibera_get_config();
    $author = get_user_by('id', $post->post_author);
    $subject = str_ireplace("{first_name}", $user->user_firstname, $subject);
    $subject = str_ireplace("{last_name}", $user->user_lastname, $subject);
    $subject = str_ireplace("{display_name}", $user->display_name, $subject);
    $subject = str_ireplace("{post_title}", $post->post_title, $subject);
    $subject = str_ireplace("{post_url}", delibera_notificar_get_mensagem_link($post), $subject);
    $subject = str_ireplace("{report_deadline}", $opt['dias_relatoria'], $subject);
    $subject = str_ireplace("{reporter_election}", $opt['dias_votacao_relator'], $subject);
    $subject = str_ireplace("{validation_days}", $opt['dias_validacao'], $subject);
    $subject = str_ireplace("{discuss_days}", $opt['dias_validacao'], $subject);
    $subject = str_ireplace("{election_days}", $opt['dias_votacao'], $subject);
    $subject = str_ireplace("{post_author}", $author->user_firstname, $subject);
    $subject = str_ireplace("{post_content}", get_the_content(), $subject);
    $subject = str_ireplace("{post_excerpt}", get_the_excerpt(), $subject);
    $campos = delibera_get_user_campos_form_registro();
    if ($campos > 0) {
        foreach ($campos as $campo) {
            $valor_replace = "";
            if ($campo['novo'] == true) {
                switch ($campo['tipo_painel']) {
                    case 'DropDown':
                        $valores = array();
                        if (is_array($campo['dados']) && count($campo['dados']) > 0) {
                            $valores = $campo['dados'];
                        } elseif (is_string($campo['dados']) && function_exists($campo['dados'])) {
                            $param = $campo['dados_param'] ? $campo['dados_param'] : array();
                            $ret = call_user_func($campo['dados'], $param);
                            if (is_array($ret) && count($ret) > 0) {
                                $valores = $ret;
                            }
                        }
                        foreach ($valores as $valor => $desc) {
                            if (strtolower(get_user_meta($user->ID, $campo['id'], true)) === strtolower($valor)) {
                                $valor_replace = $desc;
                            }
                        }
                        break;
                    case 'CheckBox':
                        $valor = true;
                        if (is_array($campo['dados']) && count($campo['dados']) > 0) {
                            $keys = array_keys($campo['dados']);
                            $valor = $keys[0];
                        } elseif (is_string($campo['dados']) && function_exists($campo['dados'])) {
                            $param = $campo['dados_param'] ? $campo['dados_param'] : array();
                            $ret = call_user_func($campo['dados'], $param);
                            if (is_array($ret) && count($ret) > 0) {
                                $keys = array_keys($ret);
                                $valor = $keys[0] == 0 ? $ret[0] : $keys[0];
                            } elseif (is_string($ret)) {
                                $valor = $ret;
                            }
                        }
                        if (strtolower(get_user_meta($user->ID, $campo['id'], true)) === strtolower($valor)) {
                            $valor_replace = __("Sim", 'delibera');
                        } else {
                            $valor_replace = __("Não", 'delibera');
                        }
                        break;
                    case 'Texto':
                    default:
                        $valor_replace = get_user_meta($user->ID, $campo['id'], true);
                        break;
                }
            }
            $subject = str_ireplace("{" . $campo['id'] . "}", $valor_replace, $subject);
        }
    }
    return $subject;
}
function delibera_profile_update($user_id)
{
    $campos = delibera_get_user_campos_form_registro();
    foreach ($campos as $campo) {
        switch ($campo['tipo_painel']) {
            case 'CheckBox':
                $valor = false;
                if (array_key_exists($campo['id'], $_POST)) {
                    $valor = $_POST[$campo['id']];
                } else {
                    if (is_array($campo['dados']) && count($campo['dados']) == 2) {
                        $keys = array_keys($campo['dados']);
                        $valor = $keys[1];
                    } elseif (is_string($campo['dados']) && function_exists($campo['dados'])) {
                        $param = $campo['dados_param'] ? $campo['dados_param'] : array();
                        $ret = call_user_func($campo['dados'], $param);
                        if (is_array($ret) && count($ret) == 2) {
                            $keys = array_keys($ret);
                            $valor = $keys[0] == 0 ? $ret[1] : $keys[1];
                        }
                    }
                }
                update_user_meta($user_id, $campo['id'], $valor);
                break;
            default:
                if (array_key_exists($campo['id'], $_POST)) {
                    update_user_meta($user_id, $campo['id'], $_POST[$campo['id']]);
                }
                break;
        }
    }
}