public static function get_sent()
 {
     $per_page = mmg()->setting()->per_page;
     $paged = mmg()->get('mpaged', 1);
     $offset = ($paged - 1) * $per_page;
     $total_pages = ceil(self::count_all() / $per_page);
     mmg()->global['conversation_total_pages'] = $total_pages;
     $messages = MM_Message_Model::model()->find_by_attributes(array('send_from' => get_current_user_id()));
     $ids = array();
     foreach ($messages as $message) {
         $ids[] = $message->conversation_id;
     }
     $ids = array_unique(array_filter($ids));
     if (empty($ids)) {
         return array();
     }
     $model = new MM_Conversation_Model();
     global $wpdb;
     $sql = "SELECT conversation.id FROM " . $model->get_table() . " conversation\r\n                INNER JOIN " . MM_Message_Status_Model::model()->get_table() . " mstat ON mstat.conversation_id=conversation.id\r\n                WHERE mstat.status IN (" . implode(',', array(MM_Message_Status_Model::STATUS_READ, MM_Message_Status_Model::STATUS_UNREAD)) . ")\r\n                AND conversation.id IN (" . implode(',', $ids) . ") AND site_id=%d\r\n                GROUP BY conversation.id ORDER BY conversation.date_created DESC LIMIT %d,%d";
     $sql = $wpdb->prepare($sql, get_current_blog_id(), $offset, $per_page);
     $ids = $wpdb->get_col($sql);
     if (empty($ids)) {
         return array();
     }
     $models = $model->find_all_by_ids($ids, false, false, 'date_created DESC');
     return $models;
 }
 function _reply_message($conv_id, $message_id, $user_id, $model)
 {
     //load conversation
     $conversation = MM_Conversation_Model::model()->find($conv_id);
     $conversation->status = MM_Message_Status_Model::STATUS_UNREAD;
     //we will add new message to this conversation
     $conversation->save();
     //update users from this conversation, now save the message
     $m = new MM_Message_Model();
     $m->import($model->export());
     $m->send_to = $user_id;
     $m->conversation_id = $conversation->id;
     $m->status = MM_Message_Model::UNREAD;
     $mess = MM_Message_Model::model()->find($message_id);
     if (!empty($m->reply_to)) {
         if (!is_numeric($m->reply_to)) {
             wp_send_json(array('status' => 'fail', 'errors' => $model->get_errors()));
             exit;
         }
         $title = $m->subject;
         $description = $m->content;
         $price = $m->reply_to;
         $product_html = get_custom_order_button($title, $description, $price);
     }
     if (empty($m->subject)) {
         $m->subject = __("Re:", mmg()->domain) . ' ' . $mess->subject;
     }
     if (isset($product_html)) {
         $m->subject = __('You have new estimates!', 'artgorae');
         $m->content = __('You have new estimates!', 'artgorae') . '<br/><br/>' . $product_html;
     }
     $m->save();
     //update status for send to
     $status = MM_Message_Status_Model::model()->find_one_with_attributes(array('conversation_id' => $conversation->id, 'user_id' => $user_id));
     if (is_object($status)) {
         $status->status = MM_Message_Status_Model::STATUS_UNREAD;
         $status->save();
     }
     //update index
     $conversation->update_index($m->id);
     do_action('mm_message_sent', $m);
 }