$emailSubject = get_option('carrental_reservation_email_subject_' . $lang); if ($emailSubject == '') { $emailSubject = get_option('carrental_reservation_email_subject_en_GB'); } } else { $emailBody = get_option('carrental_reservation_email_en_GB'); $emailSubject = get_option('carrental_reservation_email_subject_en_GB'); } if (!empty($emailBody)) { $data = $wpdb->get_row($wpdb->prepare('SELECT * FROM `' . CarRental::$db['booking'] . '` WHERE MD5(CONCAT(`id_order`, %s, `email`)) = %s LIMIT 1', CarRental::$hash_salt, $payment_id), ARRAY_A); if ($data) { $theme_options = unserialize(get_option('carrental_theme_options')); if (isset($theme_options['date_format'])) { // reformat dates $data['enter_date'] = date(CarRental::date_format_php($theme_options['date_format'], 'auto'), strtotime($data['enter_date'])); $data['return_date'] = date(CarRental::date_format_php($theme_options['date_format'], 'auto'), strtotime($data['return_date'])); } $emailBody = str_replace('[CustomerName]', $data['first_name'] . " " . $data['last_name'], $emailBody); $emailBody = str_replace('[ReservationDetails]', $data['vehicle'] . ', ' . $data['enter_date'] . ' (' . $data['enter_loc'] . ') - ' . $data['return_date'] . ' (' . $data['return_loc'] . ')', $emailBody); $emailBody = str_replace('[ReservationNumber]', $data['id_order'], $emailBody); $emailBody = str_replace('[ReservationLink]', home_url() . '?page=carrental&summary=' . $payment_id, $emailBody); $emailBody = str_replace('[ReservationLinkStart]', '<a href="' . home_url() . '?page=carrental&summary=' . $payment_id . '">', $emailBody); $emailBody = str_replace('[ReservationLinkEnd]', '</a>', $emailBody); $emailBody = str_replace('[customer_comment]', $data['comment'], $emailBody); $emailBody = '<html><body>' . $emailBody . '</body></html>'; $emailBody = nl2br($emailBody); $recipient = $data['email']; if ($emailSubject == '') { $subject = "Reservation confirmation #" . $data['id_order']; } else { $subject = $emailSubject;
/** * Resend confirmation email */ public static function resend_email($id_booking, $email_type = 'carrental_reservation_email') { global $wpdb; try { $data = $wpdb->get_row($wpdb->prepare('SELECT * FROM `' . CarRental::$db['booking'] . '` WHERE `id_booking` = %d', $id_booking), ARRAY_A); // Send e-mail if (isset($data['lng']) && !empty($data['lng'])) { $emailBody = get_option($email_type . '_' . $data['lng']); $emailSubject = get_option($email_type . '_subject_' . $data['lng']); if ($emailBody == '') { $emailBody = get_option($email_type . '_en_GB'); } if ($emailSubject == '') { $emailSubject = get_option($email_type . '_subject_en_GB'); } } else { $emailBody = get_option($email_type . '_en_GB'); $emailSubject = get_option($email_type . '_subject_en_GB'); } $prices = $wpdb->get_results($wpdb->prepare('SELECT * FROM `' . CarRental::$db['booking_prices'] . '` WHERE `id_booking` = %d', $id_booking)); $total_amount = 0; foreach ($prices as $key => $val) { $total_amount += number_format($val->price, 2, '.', ''); } if (!empty($emailBody)) { $date_diff = abs(strtotime($data['return_date']) - strtotime($data['enter_date'])); $diff_days = intval($date_diff / 86400); $diff_hours = intval($date_diff % 86400 / 3600); $diff_minutes = intval($date_diff % 86400 / 60); if ($diff_days >= 1 && ($diff_hours > 0 || $diff_minutes > 0)) { ++$diff_days; // If you pass by 30 minutes and more, it 1 day more } $theme_options = unserialize(get_option('carrental_theme_options')); if (isset($theme_options['date_format'])) { // reformat dates $date_from = date(CarRental::date_format_php($theme_options['date_format'], 'auto'), strtotime($data['enter_date'])); $date_to = date(CarRental::date_format_php($theme_options['date_format'], 'auto'), strtotime($data['return_date'])); } if ($data) { $order_id = md5($data['id_order'] . CarRental::$hash_salt . $data['email']); $emailBody = str_replace('[CustomerName]', $data['first_name'] . " " . $data['last_name'], $emailBody); $emailBody = str_replace('[ReservationDetails]', $data['vehicle'] . ', ' . $date_from . ' (' . $data['enter_loc'] . ') - ' . $date_to . ' (' . $data['return_loc'] . ')', $emailBody); $emailBody = str_replace('[ReservationNumber]', $data['id_order'], $emailBody); $emailBody = str_replace('[ReservationLink]', home_url() . '?page=carrental&summary=' . $order_id, $emailBody); $emailBody = str_replace('[ReservationLinkStart]', '<a href="' . home_url() . '?page=carrental&summary=' . $order_id . '">', $emailBody); $emailBody = str_replace('[ReservationLinkEnd]', '</a>', $emailBody); $emailBody = str_replace('[Car]', $data['vehicle'], $emailBody); $emailBody = str_replace('[pickupdate]', $date_from, $emailBody); $emailBody = str_replace('[dropoffdate]', $date_to, $emailBody); $emailBody = str_replace('[pickup_location]', $data['enter_loc'], $emailBody); $emailBody = str_replace('[dropoff_location]', $data['return_loc'], $emailBody); $emailBody = str_replace('[total_payment]', round($total_amount, 2), $emailBody); $emailBody = str_replace('[rate]', round($total_amount / $diff_days, 2), $emailBody); $emailBody = str_replace('[rental_days]', $diff_days, $emailBody); $emailBody = '<html><body>' . $emailBody . '</body></html>'; $emailBody = nl2br($emailBody); $recipient = $data['email']; if ($emailSubject == '') { $subject = "Reservation confirmation #" . $data['id_order']; } else { $subject = $emailSubject; $subject = str_replace('[CustomerName]', $data['first_name'] . " " . $data['last_name'], $subject); $subject = str_replace('[ReservationDetails]', $data['vehicle'] . ', ' . $date_from . ' (' . $data['enter_loc'] . ') - ' . $date_to . ' (' . $data['return_loc'] . ')', $subject); $subject = str_replace('[ReservationNumber]', $data['id_order'], $subject); $subject = str_replace('[ReservationLink]', home_url() . '?page=carrental&summary=' . $order_id, $subject); $subject = str_replace('[ReservationLinkStart]', '<a href="' . home_url() . '?page=carrental&summary=' . $order_id . '">', $subject); $subject = str_replace('[ReservationLinkEnd]', '</a>', $subject); $subject = str_replace('[Car]', $data['vehicle'], $subject); $subject = str_replace('[pickupdate]', $date_from, $subject); $subject = str_replace('[dropoffdate]', $date_to, $subject); $subject = str_replace('[pickup_location]', $data['enter_loc'], $subject); $subject = str_replace('[dropoff_location]', $data['return_loc'], $subject); $subject = str_replace('[total_payment]', round($total_amount, 2), $subject); $subject = str_replace('[rate]', round($total_amount / $diff_days, 2), $subject); $subject = str_replace('[rental_days]', $diff_days, $subject); } $company = unserialize(get_option('carrental_company_info')); $email = isset($company['email']) && !empty($company['email']) ? $company['email'] : 'admin@' . $_SERVER['SERVER_NAME']; $name = isset($company['name']) && !empty($company['name']) ? $company['name'] : 'Car Rental WP Plugin'; add_filter('wp_mail_content_type', create_function('', 'return "text/html"; ')); add_filter('wp_mail_from', create_function('', 'return "' . $email . '"; ')); add_filter('wp_mail_from_name', create_function('', 'return "' . $name . '"; ')); $attachments = array(); $attachments = apply_filters('carrental_email_attachments', $attachments, $data['id_order']); $res = wp_mail($recipient, $subject, $emailBody, '', $attachments); return true; } } } catch (Exception $e) { return $e->getMessage(); } }