File: /mnt/data/dreamstour-wp/wp-content/plugins/dreams-tour/templates/forget-password.php
<?php
/**
* Template Name: Forget Password Template
*
* Custom template for sending password reset links.
*
* @package Dreamstour
*/
$error_message = '';
$success_message = '';
$__method = isset($_SERVER['REQUEST_METHOD']) ? strtoupper( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_METHOD'] ) ) ) : '';
if ('POST' === $__method && isset($_POST['reset_password_nonce']) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['reset_password_nonce'] ) ), 'reset_password_nonce')) {
$email = sanitize_email( wp_unslash( $_POST['email'] ) );
$user = get_user_by('email', $email);
if ($user) {
$forgot_page_id =dreamstour_fl_framework_getoptions('header_changepass_link');
$change_password_page = get_permalink( $forgot_page_id ) ;
$reset_key = get_password_reset_key($user);
if (!is_wp_error($reset_key)) {
// $reset_link = esc_url(add_query_arg([
// 'action' => 'rp',
// 'key' => $reset_key,
// 'login' => rawurlencode($user->user_login),
// ], wp_login_url()));
// Build reset link with key & login
$reset_link = esc_url(add_query_arg([
'key' => $reset_key,
'login' => rawurlencode($user->user_login),
], $change_password_page));
// Base email content with placeholders
$email_content = '
<p>Hi {user_name},</p>
<p>We received a request to reset your password. If you requested this change, please click the link below to reset your password:</p>
<div style="text-align:center;margin:20px 0;">
<a href="{reset_link}" style="background-color:#0073e6;color:#fff;padding:12px 20px;border-radius:5px;text-decoration:none;font-weight:bold;">Reset Password</a>
</div>
<p>If you did not request a password reset, please ignore this email.</p>
<p>Thank you.</p>';
// Replace placeholders
$email_content = str_replace('{user_name}', $user->display_name, $email_content);
$email_content = str_replace('{reset_link}', $reset_link, $email_content);
// Build full email wrapper
$message = '<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body { font-family: Arial, sans-serif; color:#333; line-height:1.6; }
.container { max-width:600px; margin:0 auto; padding:20px; background:#f9f9f9; border:1px solid #ddd; }
.content { background:#fff; padding:20px; border-radius:5px; }
.footer { margin-top:30px; text-align:center; color:#999; font-size:12px; }
</style>
</head>
<body>
<div class="container">
<div class="content">' . $email_content . '</div>
<div class="footer">© ' . date("Y") . ' ' . get_bloginfo('name') . '. All rights reserved.</div>
</div>
</body>
</html>';
// Email headers
$from_email = get_bloginfo('admin_email');
$headers = [
'Content-Type: text/html; charset=UTF-8',
'From: ' . get_bloginfo('name') . ' <' . $from_email . '>',
];
// Subject
$subject = __('Password Reset Request', 'dreamstour');
// Send email (custom wrapper or fallback to wp_mail)
if (function_exists('dreamstour_send_email')) {
dreamstour_send_email($email, $subject, $message, $headers);
} else {
wp_mail($email, $subject, $message, $headers);
}
$success_message = '<p class="text-success"><i class="isax isax-tick-circle5 me-1"></i>Reset Password Sent to “'.$email.'”</p>';
} else {
$error_message = __('Could not generate a reset link. Please try again later.', 'dreamstour');
}
// } else {
// $error_message = __('Password reset email is disabled.', 'dreamstour');
// }
} else {
$error_message = __('Email is not registered. Please enter a valid email address.', 'dreamstour');
}
}
// Get logo URLs
$main_logo_url = '';
$logo_dark_url = '';
if ( in_array( 'redux-framework/redux-framework.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ), true ) ) {
$main_logo = dreamstour_fl_framework_getoptions( 'frontend_logo' );
if ( ! empty( $main_logo ) && isset( $main_logo['url'] ) ) {
$main_logo_url = $main_logo['url'];
}
$logo_dark = dreamstour_fl_framework_getoptions( 'logo_dark' );
if ( ! empty( $logo_dark ) && isset( $logo_dark['url'] ) ) {
$logo_dark_url = $logo_dark['url'];
}
} else {
$main_logo_url = get_template_directory_uri() . '/assets/images/logo.svg';
$logo_dark_url = get_template_directory_uri() . '/assets/images/logo-dark.svg';
}
$sign_page_id = dreamstour_fl_framework_getoptions( 'header_login_link' );
$sign_page_url = ! empty( $sign_page_id ) ? get_permalink( $sign_page_id ) : site_url( '/' );
get_template_part( 'templates/header/header', 'none' );
?>
<div class="bg-light-2001">
<!-- Main Wrapper -->
<div class="main-wrapper authentication-wrapper">
<div class="container-fuild">
<div class="w-100 overflow-hidden position-relative flex-wrap d-block vh-100">
<div class="row justify-content-center align-items-center vh-100 overflow-auto flex-wrap ">
<div class="col-xxl-4 col-lg-6 col-md-6 col-11 mx-auto">
<div class="p-4 text-center">
<img src="<?php echo esc_url( $logo_dark_url ); ?>" alt="<?php esc_attr_e( 'Logo', 'dreamstour' ); ?>" class="img-fluid">
</div>
<div class="card authentication-card">
<div class="card-header">
<div class="text-center">
<h5 class="mb-1"><?php esc_html_e('Forgot Password', 'dreamstour'); ?></h5>
<p><?php esc_html_e('Reset Your DreamsTour Password', 'dreamstour'); ?></p>
</div>
</div>
<div class="card-body">
<form action="" method="post" >
<?php wp_nonce_field('reset_password_nonce', 'reset_password_nonce'); ?>
<?php wp_nonce_field( 'dreams_tour_login', 'dreams_tour_login_nonce' ); ?>
<?php if (!empty($error_message)) : ?>
<div class="alert alert-danger mb-3"><strong>Error:</strong> <?php echo wp_kses_post($error_message); ?></div>
<?php endif; ?>
<div class="mb-3">
<label class="form-label"><?php _e('Email', 'dreamstour'); ?></label>
<div class="input-icon">
<span class="input-icon-addon">
<i class="isax isax-message"></i>
</span>
<input type="text" class="form-control form-control-lg" name="email" placeholder="<?php esc_attr_e('Enter email', 'dreamstour'); ?>" required>
</div>
</div>
<?php if (!empty($success_message)) : ?>
<div class="mb-4">
<?php echo wp_kses_post($success_message); ?>
</div>
<?php endif; ?>
<div class="mb-3">
<button type="submit" class="btn btn-xl btn-primary d-flex align-items-center justify-content-center w-100"><?php esc_html_e('Reset Password', 'dreamstour'); ?><i class="isax isax-arrow-right-3 ms-2"></i></button>
</div>
<div class="d-flex justify-content-center">
<p class="fs-14"><?php esc_html_e('Remember Password ?', 'dreamstour'); ?> <a href="<?php echo esc_url( $sign_page_url ); ?>" class="link-primary fw-medium"><?php echo get_the_title($sign_page_id); ?></a></p>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="coprright-footer">
<div class="fs-14">
<?php
$cr = dreamstour_fl_framework_getoptions( 'footer_copyright_text' );
if ( ! empty( $cr ) ) {
echo wp_kses_post( $cr );
}
?>
</div>
</div>
</div>
<!-- /Main Wrapper -->
<!-- Cursor -->
<div class="xb-cursor tx-js-cursor">
<div class="xb-cursor-wrapper">
<div class="xb-cursor--follower xb-js-follower"></div>
</div>
</div>
<!-- /Cursor -->
</div>
<?php get_template_part( 'templates/footer/footer', 'none' ); ?>