Viewing 8 replies - 1 through 8 (of 8 total)
  • I have the same problem, I thought I broke something, but it turns out the problem is in the plugin.

    Please help me fix it

    жаль что до сих пор не решили данную проблему. Сам плагин однозначно хороший!

    Line 216 in comment-reply-email.php should be changed from esc_attr to esc_html:

    $mail_message = esc_html( $this->options[‘mail_message’] );

    corypratt – Did as you wrote. https://i.imgur.com/C1lsA4i.png A critical error occurred on the site and the site stopped opening. https://i.imgur.com/GkS8657.png

    ZLC

    (@kindnessville)

    The entire ‘mailer’ function in the plugin code needs to be replaced by the following:

    function mailer($id, $parent_id, $comment_post_id) {
        global $wpdb, $user_ID, $userdata;
    
        $post = get_post($comment_post_id);
    
        if (empty($post)) {
            unset($post);
            return false;
        }
    
        if ($this->options['mail_notify'] == 'admin') {
            $cap = $wpdb->prefix . 'capabilities';
            if ((strtolower((string) array_shift(array_keys((array)($userdata->$cap)))) !== 'administrator') && ((int)$post->post_author !== (int)$user_ID)) {
                unset($post, $cap);
                return false;
            }
        }
    
        $pc = get_comment($parent_id);
        if (empty($pc)) {
            unset($pc);
            return false;
        }
    
        if (intval($pc->comment_mail_notify) === 0 && ($this->options['mail_notify'] === 'parent_uncheck' || $this->options['mail_notify'] === 'parent_check')) {
            unset($pc);
            return false;
        }
    
        $parent_email = trim($pc->comment_author_email);
    
        if (empty($parent_email) || !is_email($parent_email)) {
            unset($pc, $parent_email);
            return false;
        }
    
        $cc = get_comment($id);
        if (empty($cc)) {
            unset($pc, $cc);
            return false;
        }
    
        if ($cc->comment_approved != '1') {
            unset($pc, $cc);
            return false;
        }
    
        if ($parent_email === trim($cc->comment_author_email)) { //Do not send email if you reply to your own comments
            unset($pc, $cc);
            return false;
        }
    
        $mail_subject = sanitize_text_field($this->options['mail_subject']);
        $mail_subject = str_replace('[blogname]', get_option('blogname'), $mail_subject);
        $mail_subject = str_replace('[postname]', $post->post_title, $mail_subject);
    
        $mail_message = wpautop($this->options['mail_message']);
        $mail_message = str_replace('[pc_date]', mysql2date(get_option('date_format'), $pc->comment_date), $mail_message);
        $mail_message = str_replace('[pc_content]', $pc->comment_content, $mail_message);
        $mail_message = str_replace('[pc_author]', $pc->comment_author, $mail_message);
    
        $mail_message = str_replace('[cc_author]', $cc->comment_author, $mail_message);
        $mail_message = str_replace('[cc_date]', mysql2date(get_option('date_format'), $cc->comment_date), $mail_message);
        $mail_message = str_replace('[cc_url]', esc_url($cc->comment_url), $mail_message);
        $mail_message = str_replace('[cc_content]', $cc->comment_content, $mail_message);
    
        $mail_message = str_replace('[blogname]', get_option('blogname'), $mail_message);
        $mail_message = str_replace('[blogurl]', esc_url(get_option('home')), $mail_message);
        $mail_message = str_replace('[postname]', $post->post_title, $mail_message);
    
        $permalink = get_comment_link($parent_id);
        $mail_message = str_replace('[commentlink]', esc_url($permalink), $mail_message);
    
        $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
        $from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
    
        $mail_headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
    
        unset($wp_email, $from, $post, $pc, $cc, $cap, $permalink);
    
        $mail_message = convert_smilies($mail_message);
    
        $mail_message = apply_filters('comment_notification_text', $mail_message, $id);
        $mail_subject = apply_filters('comment_notification_subject', $mail_subject, $id);
        $mail_headers = apply_filters('comment_notification_headers', $mail_headers, $id);
    
        wp_mail($parent_email, $mail_subject, $mail_message, $mail_headers);
        unset($mail_subject, $parent_email, $mail_message, $mail_headers);
    
        return true;
    }

    I can confirm that the fix in v1.1 of this plugin is to replace this line:

    $mailContent = esc_attr($this->options['mail_message']);

    With this:

    $mailContent = wpautop($this->options['mail_message']);

    Here: https://plugins.trac.wordpress.org/browser/comment-reply-email/tags/1.1/comment-reply-email.php#L218

    And also replace this line:

    <textarea name="mail_message" id="mail_message" cols="100%" rows="10" ><?php echo esc_attr($this->options['mail_message']); ?></textarea>

    With this:

    <textarea name="mail_message" id="mail_message" cols="100%" rows="10" ><?php echo esc_html($this->options['mail_message']); ?></textarea>

    Here: https://plugins.trac.wordpress.org/browser/comment-reply-email/tags/1.1/comment-reply-email.php#L342

    Plugin Contributor Yin Zhongzhen

    (@zeroneit)

    Hi, Everybody.

    Please check a new released version.

    There was an issue with the HTML code view directly in email content starting from version 1.0.4. This problem arose during the implementation of a security update.

    I fixed plugin code.

    Regards,

    Yin.

Viewing 8 replies - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.