Esempio n. 1
0
 public function sendProductConversationMail($product_details = array(), $thread_id = 0, $key = 'NewComment', $message_id = 0, $reference_id = 0)
 {
     $thread_details_arr = MpProductComments::whereRaw("id = ?", array($thread_id))->first();
     if (count($product_details) == 0 || count($thread_details_arr) == 0) {
         return '';
     }
     $email_template = 'emails.mp_product.productCommentAddedNotify';
     /*
     switch($key)
     {
     	case 'NewComment':
     		$email_template .= 'requestNewMessage';
     		break;
     
     	case 'MessageOwnerReply':
     		$email_template .= 'requestMessageOwnerReply';
     		break;
     
     	case 'MessageUserReply':
     		$email_template .= 'requestMessageUserReply';
     		break;
     
     	case 'deleteThread':
     		$email_template .= 'requestDeleteThread';
     		break;
     
     	case 'deleteThreadReply':
     		$email_template .= 'requestDeleteThreadReply';
     		break;
     
     	default:
     		return '';
     }
     */
     $view_product_link = $this->getProductViewURL($product_details->id, $product_details);
     $thread_link = $view_product_link . '?thread=' . $thread_id;
     $message_details_arr = array();
     //To get user information
     $from_id = $this->logged_user_id;
     $to_id = $product_details['product_user_id'] == $from_id ? $thread_details_arr['user_id'] : $thread_details_arr['seller_id'];
     $from_user_details = CUtil::getUserDetails($from_id, 'all');
     $to_user_details = CUtil::getUserDetails($to_id, 'all');
     //To get seller details
     $owner_details = array();
     if ($from_id == $product_details['product_user_id']) {
         $owner_details = $from_user_details;
     } elseif ($to_id == $product_details['product_user_id']) {
         $owner_details = $to_user_details;
     } else {
         $owner_details = CUtil::getUserDetails($product_details['product_user_id'], 'all');
     }
     //To get commenter details
     $commenter_details = array();
     if ($from_id == $thread_details_arr['user_id']) {
         $commenter_details = $from_user_details;
     } elseif ($to_id == $thread_details_arr['user_id']) {
         $commenter_details = $to_user_details;
     } else {
         $commenter_details = CUtil::getUserDetails($thread_details_arr['user_id'], 'all');
     }
     $visibility_text = $thread_details_arr['visibility'] == "Public" ? "Public" : "Private";
     //Get replied message details
     $notes = $thread_details_arr['message'];
     if ($message_id > 0) {
         //To get message details if already not fetched..
         if (count($message_details_arr) == 0) {
             $message_details_arr = MpProductCommentReplies::whereRaw("id = ?", array($message_id))->first();
             if (count($message_details_arr) > 0) {
                 $notes = $message_details_arr['notes'];
                 if ($message_details_arr['visibility_status'] == 'Private') {
                     $visibility_text = trans('mp_product/viewProduct.private_msg_for');
                     $visibility_text .= $to_user_details['display_name'];
                     $visibility_text .= " By." . $from_user_details['display_name'];
                 }
             }
         }
     }
     //To assign mail data's..
     $mail_subject_lang = 'email.product_' . snake_case($key);
     $user_mail_sub = trans($mail_subject_lang . '_notify_user');
     $admin_mail_sub = trans($mail_subject_lang . '_notify_admin');
     //	$ack_mail_sub = trans($mail_subject_lang.'NotifyACK');
     $data_arr = array('product_title' => $product_details['product_name'], 'from_user_name' => $from_user_details['display_name'], 'to_user_name' => $to_user_details['display_name'], 'from_profile_url' => $from_user_details['profile_url'], 'to_profile_url' => $to_user_details['profile_url'], 'view_product_link' => $view_product_link, 'thread_link' => $thread_link, 'notes' => $notes, 'visibility' => $visibility_text, 'product_details' => $product_details, 'owner_details' => $owner_details, 'commenter_details' => $commenter_details, 'user_subject' => str_replace('VAR_PRODUCT_TITLE', $product_details['product_name'], $user_mail_sub), 'to_user_mail' => $to_user_details['email'], 'admin_subject' => str_replace('VAR_PRODUCT_TITLE', $product_details['product_name'], $admin_mail_sub), 'admin_email_template' => $email_template . 'ForAdmin', 'user_email_template' => $email_template . 'ForUser', 'key' => $key);
     //Mail to admin
     $mailer = new AgMailer();
     $data_arr['subject'] = $data_arr['admin_subject'];
     $mailer->sendAlertMail('product_comment', $data_arr['admin_email_template'], $data_arr);
     if (isset($to_user_details['email']) && $to_user_details['email'] != "" && $from_id != $to_id) {
         $data_arr['subject'] = $data_arr['user_subject'];
         $data_arr['to_email'] = $to_user_details['email'];
         $mailer->sendUserMail('product_comment', $data_arr['user_email_template'], $data_arr);
     }
 }
 public function populateProductComments($product_id, $thread_id = 0, $sort_by = 'recent')
 {
     //To get user request thread message/suggestion
     $query = MpProductComments::whereRaw('product_id = ? AND is_deleted = ? AND status = ? ', array($product_id, 0, 'Active'));
     if ($thread_id != 0) {
         $query->where('id', '=', $thread_id);
     }
     if ($sort_by == 'active') {
         $query->orderBy('total_replies', 'DESC');
     } else {
         $query->orderBy('last_updated', 'DESC');
     }
     return $query->paginate(Config::get("generalConfig.product_comment_per_page_list"));
 }