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; } } }