예제 #1
0
/**
 * 
 * Disparar E-mails
 * @param int $id comment id
 * @param int $comment_parent
 * @param int $comment_post
 * @param string $tipo
 */
function delibera_mailer_mailer($id, $comment_parent, $comment_post, $tipo = 'reply')
{
    require ABSPATH . WPINC . '/pluggable.php';
    add_filter('wp_mail_content_type', create_function('', 'return "text/html"; '));
    $comment = get_comment($id);
    $post = get_post($comment_post);
    $comment_parent = get_comment($comment_parent);
    if ($post->post_status == 'publish') {
        $options_plugin_delibera = delibera_get_config();
        if ($options_plugin_delibera["reposta-por-email"] == "N") {
            return false;
        }
        $subject_default = htmlspecialchars_decode($options_plugin_delibera["mailer_{$tipo}_assunto"]);
        $mensage_default = '';
        $users = get_users();
        if (!is_array($users)) {
            $users = array();
        }
        $seguiram = delibera_get_quem_seguiu($post->ID, 'ids');
        foreach ($users as $user) {
            if (user_can($user->ID, 'votar') && isset($user->user_email)) {
                $segue = array_search($user->ID, $seguiram);
                $user_notificacoes = get_user_meta($user->ID, 'delibera_resposta_email', true);
                if ($user_notificacoes == "N" && !$segue) {
                    continue;
                } else {
                    $mensage_tmp = $mensage_default;
                    $subject_tmp = $subject_default;
                    if (function_exists('qtrans_enableLanguage')) {
                        $lang = get_user_meta($user->ID, 'user_idioma', true);
                        if (strlen($lang) == 0) {
                            $lang = defined('WPLANG') && strlen(WPLANG) > 0 ? WPLANG : get_locale();
                        }
                        if (array_key_exists("mailer_{$tipo}-{$lang}", $options_plugin_delibera)) {
                            $mensage_tmp = htmlspecialchars_decode($options_plugin_delibera["mailer_{$tipo}-{$lang}"]) . delibera_notificar_get_mensagem_link($post);
                        }
                        if (array_key_exists("mailer_{$tipo}_assunto-{$lang}", $options_plugin_delibera)) {
                            $subject_tmp = htmlspecialchars_decode($options_plugin_delibera["mailer_{$tipo}_assunto-{$lang}"]);
                        }
                    }
                    $key = delibera_mailer_generateKey($user->ID, $id, get_current_blog_id());
                    $from = $options_plugin_delibera['delibera_mailer_from'];
                    $from_server = $options_plugin_delibera['delibera_mailer_from_server'];
                    $header = $headers = 'From: ' . $from . "\r\n" . 'Reply-To: ' . $key . '@' . $from_server . "\r\n" . 'X-Mailer: PHP/' . phpversion();
                    wp_mail($user->user_email, $subject_tmp . ' ' . get_the_title($comment_post), $mensage_tmp . get_comment_text($id), $header);
                }
            }
        }
    }
}
예제 #2
0
function delibera_notificar_representantes($mensage, $tipo, $post = false, $users = false, $link = false)
{
    require ABSPATH . WPINC . '/pluggable.php';
    add_filter('wp_mail_content_type', create_function('', 'return "text/html"; '));
    if ($post === false) {
        $post = get_post();
    }
    if (is_numeric($post)) {
        $post = get_post($post);
    }
    if ($post->post_status == 'publish') {
        $options_plugin_delibera = delibera_get_config();
        if ($options_plugin_delibera["notificacoes"] == "N" || !array_key_exists("{$tipo}-enabled", $options_plugin_delibera) || $options_plugin_delibera["{$tipo}-enabled"] == "N") {
            return false;
        }
        $subject_default = htmlspecialchars_decode($options_plugin_delibera["{$tipo}_assunto"]);
        $mensage_default = htmlspecialchars_decode($options_plugin_delibera[$tipo]) . $mensage . delibera_notificar_get_mensagem_link($post, $link);
        if (!is_array($users)) {
            $users = get_users();
        }
        if (!is_array($users)) {
            $users = array();
        }
        $autor_id = get_current_user_id();
        $seguiram = delibera_get_quem_seguiu($post->ID, 'ids');
        foreach ($users as $user) {
            if (user_can($user->ID, 'votar') && isset($user->user_email) && $user->ID != $autor_id) {
                $segue = array_search($user->ID, $seguiram);
                $user_notificacoes = get_user_meta($user->ID, 'delibera_notificacoes_email', true);
                if (!$segue && ($user_notificacoes == "N" || get_user_meta($user->ID, "{$tipo}-enabled", true) == "N")) {
                    continue;
                }
                $mensage_tmp = $mensage_default;
                $subject_tmp = $subject_default;
                $lang = get_user_meta($user->ID, 'user_idioma', true);
                if (strlen($lang) == 0) {
                    $lang = defined('WPLANG') && strlen(WPLANG) > 0 ? WPLANG : get_locale();
                }
                if (array_key_exists("{$tipo}-{$lang}", $options_plugin_delibera)) {
                    $mensage_tmp = htmlspecialchars_decode($options_plugin_delibera["{$tipo}-{$lang}"]) . $mensage;
                }
                if (array_key_exists("{$tipo}_assunto-{$lang}", $options_plugin_delibera)) {
                    $subject_tmp = htmlspecialchars_decode($options_plugin_delibera["{$tipo}_assunto-{$lang}"]);
                }
                $subject_tmp = delibera_notificar_replace_vars($subject_tmp, $user, $post);
                $mensage_tmp = delibera_notificar_replace_vars($mensage_tmp, $user, $post);
                wp_mail($user->user_email, $subject_tmp, $mensage_tmp);
            }
        }
    }
}