2023-05-13 00:33:13 +03:00
< ? php
2024-06-16 16:42:46 +03:00
get_header ();
?>
2023-05-13 00:33:13 +03:00
< div id = " content " >
< h1 id = " mainpage-title " > Подписка на рассылку </ h1 >
< div id = " fulltext " >
2025-03-02 02:36:19 +03:00
< ? php echo handle_subscription_confirmation (); ?>
</ div >
</ div >
2023-05-13 00:33:13 +03:00
2025-03-02 02:36:19 +03:00
< ? php get_footer ();
2023-05-13 00:33:13 +03:00
2025-03-02 02:36:19 +03:00
function handle_subscription_confirmation () {
2023-05-13 00:33:13 +03:00
2025-03-02 02:36:19 +03:00
global $wpdb ;
$html = '' ;
2025-03-02 02:42:38 +03:00
$err = '<p class="re-error">Н е можем подтвердить ваши данные. Пожалуйста, повторите попытку.</p>' ;
2023-05-13 00:33:13 +03:00
2025-03-02 02:36:19 +03:00
// Режим подтверждения подписки
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 );
2023-05-13 00:33:13 +03:00
2025-03-02 02:36:19 +03:00
$html .= ' < p > Спасибо , мы включили Ваш e - mail !</ p >
< p > Наши письма могут оказаться в разделе " Рассылки " Вашего почтового приложения или сайта .</ p > ' ;
return $html ;
}
2023-05-13 00:33:13 +03:00
2025-03-02 02:36:19 +03:00
// Поле 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' ];
2025-03-02 02:42:38 +03:00
wp_mail ( $to , $subject , $message , $headers );
2025-03-02 02:36:19 +03:00
$html .= ' < p > Благодарим за интерес к нашему изданию !</ p >
< p > Н а Вашу почту отправлено письмо для подтверждения подписки .</ p > ' ;
} else {
}
} else {
return $err ;
}
} else {
return $err ;
}
return $html ;
}