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(); }