<?php
get_header();
?>

<div id="content">    

    <h1 id="mainpage-title">Подписка на рассылку</h1> 
    <div id="fulltext">
        <?php echo handle_subscription_confirmation(); ?>
    </div>    
    
</div>    


<?php get_footer();

function handle_subscription_confirmation() {
    
    global $wpdb;
    $html = '';
    $err = '<p class="re-error">Не можем подтвердить ваши данные. Пожалуйста, повторите попытку.</p>';

    // Режим подтверждения подписки
    if (isset($_GET['id'])) {
        $sanitized_id = sanitize_text_field($_GET['id']);
        $sql_update = $wpdb->prepare("UPDATE {$wpdb->prefix}subusers SET status = 1 WHERE hash = %s", $sanitized_id);
        $wpdb->query($sql_update);

        $html .= '<p>Спасибо, мы включили Ваш e-mail!</p>
                  <p>Наши письма могут оказаться в разделе "Рассылки" Вашего почтового приложения или сайта.</p>';
        return $html;
    }

 

    // Поле mytext должно быть пустым
    if (!empty($_POST['mytext'])) {
        return $err;
    }


    // Проверка nonce
    if (!isset($_POST['subscription_nonce']) || !wp_verify_nonce($_POST['subscription_nonce'], 'subscription_form_nonce')) {
        return $err;
    }

    // Проверка hash адреса
    //if (!isset($_POST['addrhash']) || $_POST['addrhash'] !== adddr_hash()) {
    //    return $err;
    //}
    // Основная обработка подписки
    if (isset($_POST['email'])) {
        if (!isset($_POST['re_num']) || !isset($_POST['re_code'])) {
            return $err;
        }
        
        $user_answer = (int)$_POST['re_num'];
        $expected_hash = hash_hmac('sha256', $user_answer, FRM_KEY);

        if ($_POST['re_code'] === $expected_hash) {
            $email = strtolower(trim($_POST['email']));
            $email = sanitize_email($email);

            if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
                $hash = md5('775+' . $email);
                $date_insert = current_time('mysql');

                $wpdb->insert(
                    "{$wpdb->prefix}subusers",
                    [
                        'mail' => $email,
                        'status' => 0,
                        'hash' => $hash,
                        'date' => $date_insert
                    ],
                    ['%s', '%d', '%s', '%s']
                );

                $hash_link = home_url('/subscript?id=' . $hash);
                $to = $email;
                $subject = 'Подписка на рассылку ВиЖ';
                $message = "Здравствуйте!\n\nДля подтверждения подписки на нашу рассылку перейдите по ссылке ниже\n$hash_link.\n\nЕсли вы не отправляли заявку, просто проигнорируйте это письмо.";
                $headers = ['Content-Type: text/plain; charset=UTF-8'];

                wp_mail($to, $subject, $message, $headers);

                $html .= '<p>Благодарим за интерес к нашему изданию!</p>
                          <p>На Вашу почту отправлено письмо для подтверждения подписки.</p>';
            } else {
                
            }
        } else {
            return $err;
        }
    } else {
        return $err;
    }
    
    return $html;
}
