diff --git a/blocks/mobile-subscript.php b/blocks/mobile-subscript.php index 35d70de..c608346 100644 --- a/blocks/mobile-subscript.php +++ b/blocks/mobile-subscript.php @@ -1,14 +1,18 @@ +
Спасибо, мы включили Ваш e-mail!
-Наши письма могут оказаться в разделе "Рассылки" Вашего почтового приложения или сайта.
'; - - -} - -elseif( !isset($_POST['mytext']) || $_POST['mytext'] !== ''){ // поле должно быть пустым - заполнить может только бот - echo 'Не можем подтвердить ваши данные. Пожалуйста, повторите попытку.
'; -} - -elseif ( !isset($_POST['subscription_nonce']) || !wp_verify_nonce($_POST['subscription_nonce'], 'subscription_form_nonce') ) { - echo ('Неверный запрос. Пожалуйста, повторите попытку.
'); -} - -elseif( !isset($_POST['addrhash']) || $_POST['addrhash'] !== adddr_hash() ){ - echo 'Не можем опеределить ваши данные. Пожалуйста, повторите попытку.
'; -} - -elseif (isset($_POST['email'])) { - - - - $email = strtolower(trim($_POST['email'])); - $email = sanitize_text_field($email); - - if (filter_var($email, FILTER_VALIDATE_EMAIL)) { - - $hash = md5('775+'.$email); - $date_insert = date('Y-m-d H:i:s'); - - $add_sub_sql = "INSERT INTO {$wpdb->prefix}subusers (mail, status, hash, date) VALUES ('$email', '0', '$hash', '$date_insert')"; + +На Вашу почту отправлено письмо для подтверждения подписки.
'; - +function handle_subscription_confirmation() { - } else { ?> + global $wpdb; + $html = ''; + $err = 'Не можем подтвердить ваши данные. Пожалуйста, повторите попытку.
'; -Мы не можем добавить Вас в нашу рассылку.
-Адрес электронной почты недействительный.
- - } + // Режим подтверждения подписки + 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 .= 'Спасибо, мы включили Ваш e-mail!
+Наши письма могут оказаться в разделе "Рассылки" Вашего почтового приложения или сайта.
'; + 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 .= 'Благодарим за интерес к нашему изданию!
+На Вашу почту отправлено письмо для подтверждения подписки.
'; + } else { + + } + } else { + return $err; + } + } else { + return $err; + } - - - - - +$ihash = add_hash_frm();?> +