public static function count_read($no_cache = false)
 {
     if (wp_cache_get('mm_count_read') == false || $no_cache == true) {
         $model = new MM_Conversation_Model();
         global $wpdb;
         $sql = "SELECT COUNT(DISTINCT conversation.id)\r\n                    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                    INNER JOIN {$wpdb->postmeta} meta ON meta.meta_key='_conversation_id' AND meta.meta_value=conversation.id\r\n                    INNER JOIN {$wpdb->postmeta} send_to ON send_to.meta_key='_send_to' AND send_to.post_id=meta.post_id\r\n                    WHERE mstat.user_id = %d AND mstat.status = %d AND mstat.type = %d AND send_to.meta_value = %d  AND site_id=%d";
         $sql = $wpdb->prepare($sql, get_current_user_id(), MM_Message_Status_Model::STATUS_READ, MM_Message_Status_Model::TYPE_CONVERSATION, get_current_user_id(), get_current_blog_id());
         $count = $wpdb->get_var($sql);
         wp_cache_set('mm_count_read', $count);
     }
     return wp_cache_get('mm_count_read');
 }
 function _send_message($user_id, $model)
 {
     //create new conservation
     $conservation = new MM_Conversation_Model();
     $conservation->status = MM_Message_Status_Model::STATUS_UNREAD;
     $conservation->save();
     //save message
     $m = new MM_Message_Model();
     $m->import($model->export());
     $m->send_to = $user_id;
     $m->conversation_id = $conservation->id;
     $m->status = MM_Message_Model::UNREAD;
     $m->save();
     //update index
     $conservation->update_index($m->id);
     do_action('mm_message_sent', $m);
     //update status
     $model = new MM_Message_Status_Model();
     $model->user_id = $user_id;
     $model->conversation_id = $conservation->id;
     $model->status = MM_Message_Status_Model::STATUS_UNREAD;
     $model->type = MM_Message_Status_Model::TYPE_CONVERSATION;
     $model->save();
     //we need both for each sender & reciver
     $model = new MM_Message_Status_Model();
     $model->user_id = get_current_user_id();
     $model->conversation_id = $conservation->id;
     //because we send so status should be read
     $model->status = MM_Message_Status_Model::STATUS_READ;
     $model->type = MM_Message_Status_Model::TYPE_CONVERSATION;
     $model->save();
 }