Exemple #1
0
     $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();
     }
 }