511 lines
28 KiB
PHP
511 lines
28 KiB
PHP
<?php
|
|
|
|
// Exit if accessed directly
|
|
if ( !defined( 'ABSPATH' ) ) exit;
|
|
|
|
if( class_exists('UM') ){
|
|
|
|
class wpForo_UM {
|
|
|
|
private static $instance;
|
|
|
|
static public function instance() {
|
|
if ( is_null( self::$instance ) ) {
|
|
self::$instance = new self();
|
|
}
|
|
return self::$instance;
|
|
}
|
|
|
|
function __construct() {
|
|
add_action('wpforo_after_init', array( $this, 'init' ));
|
|
add_action('wp_enqueue_scripts', array($this, 'um_frontend_enqueue'), 100 );
|
|
}
|
|
|
|
function init() {
|
|
$this->um_init();
|
|
if( wpforo_feature('um_forum_tab') ){
|
|
add_filter('um_profile_tabs', array($this, 'um_tabs'), 999 );
|
|
add_filter('um_user_profile_tabs', array($this, 'um_tabs'), 998 );
|
|
add_filter('um_user_profile_tabs', array($this, 'um_user_tabs'), 999 );
|
|
add_action('um_profile_content_foro_default', array($this, 'um_default_tab_content') );
|
|
add_action('um_profile_content_foro_topics', array($this, 'um_user_topics') );
|
|
add_action('um_profile_content_foro_replies', array($this, 'um_user_replies') );
|
|
add_action('um_profile_content_foro_favorites', array($this, 'um_user_favorites') );
|
|
add_action('um_profile_content_foro_subscriptions', array($this, 'um_user_subscriptions') );
|
|
}
|
|
if( wpforo_feature('profile') === 4 ){
|
|
add_filter('wpforo_member_profile_url', array($this, 'um_profile_url'), 10, 3 );
|
|
}
|
|
if( wpforo_feature('um_notification') && class_exists( 'UM_Notifications_API') ) {
|
|
add_filter('um_notifications_core_log_types', array($this, 'um_notification_types'), 500, 1 );
|
|
add_filter('um_notifications_get_icon', array($this, 'um_notification_icon'), 10, 2 );
|
|
add_action('wpforo_after_add_post', array($this, 'um_add_notification'), 10, 2 );
|
|
add_action('wpforo_post_status_update', array($this, 'um_notification_on_post_status_change'), 10, 2 );
|
|
}
|
|
}
|
|
|
|
function um_init(){
|
|
|
|
$options = get_option( 'um_options' );
|
|
|
|
if( wpfkey($options, 'profile_tab_foro') ||
|
|
wpfkey($options, 'log_wpforo_user_reply')
|
|
){
|
|
if( !empty( $options ) ){
|
|
//Set default options for Tab Settings
|
|
$tab_options = array( 'profile_tab_foro' => 1, 'profile_tab_foro_privacy' => 0 );
|
|
foreach( $tab_options as $key => $value ) {
|
|
if(!isset($options[$key])) $options[$key] = $value;
|
|
}
|
|
//Set default options for Notification Settings
|
|
$notification_options = array();
|
|
$notification_options['wpforo_user_reply'] = array(
|
|
'title' => __('User leaves a reply to wpForo topic', 'wpforo'),
|
|
'template' => '<strong>{member}</strong> has <strong>replied</strong> to a topic you started on the forum.',
|
|
'account_desc' => __('When a member replies to one of my forum topics', 'wpforo')
|
|
);
|
|
$notification_options['wpforo_user_reply_to_reply'] = array(
|
|
'title' => __('User replied to wpForo post', 'wpforo'),
|
|
'template' => '<strong>{member}</strong> has <strong>replied</strong> to your post on the forum.',
|
|
'account_desc' => __('When a member replies to one of my post in forum topics', 'wpforo')
|
|
);
|
|
foreach( $notification_options as $type => $note ) {
|
|
if(!isset($options['log_' . $type])) $options['log_' . $type] = 1;
|
|
if(!isset( $options['log_' . $type . '_template'])) $options['log_' . $type . '_template'] = $note['template'];
|
|
}
|
|
update_option( 'um_options', $options );
|
|
}
|
|
}
|
|
}
|
|
|
|
function um_tabs( $tabs ) {
|
|
$user_id = um_user('ID');
|
|
if( $user_id ){
|
|
$member = wpforo_member( $user_id );
|
|
$topics = 0; $posts = 0; $likes = 0; $subscriptions = 0;
|
|
if( wpfval( $member, 'stat' ) ){
|
|
if( wpfval($member, 'stat', 'topics') ) $topics = $member['stat']['topics'];
|
|
if( wpfval($member, 'stat', 'posts') ) $posts = $member['stat']['posts'];
|
|
if( wpfval($member, 'stat', 'likes') ) $likes = $member['stat']['likes'];
|
|
}
|
|
$args = array('userid' => $user_id);
|
|
$subs = WPF()->sbscrb->get_subscribes( $args);
|
|
if( !empty($subs) ) $subscriptions = count($subs);
|
|
$tabs['foro'] = array(
|
|
'name' => wpforo_phrase('Forums', false),
|
|
'icon' => 'um-faicon-comments',
|
|
'subnav' => array(
|
|
'topics' => wpforo_phrase('Topics Started', false) . '<span>' . intval($topics) . '</span>',
|
|
'replies' => wpforo_phrase('Replies Created', false) . '<span>' . intval($posts) . '</span>',
|
|
'favorites' => wpforo_phrase('Liked Posts', false) . '<span>' . intval($likes) . '</span>',
|
|
'subscriptions' => wpforo_phrase('Subscriptions', false) . '<span>' . intval($subscriptions) . '</span>',
|
|
),
|
|
'subnav_default' => 'topics'
|
|
);
|
|
}
|
|
return $tabs;
|
|
}
|
|
|
|
function um_user_tabs( $tabs ) {
|
|
if( wpfval($tabs, 'foro','subnav_default') &&
|
|
wpfval($tabs, 'foro', 'subnav', $tabs['foro']['subnav_default'])
|
|
) {
|
|
$i = 0;
|
|
if ( isset( $tabs['foro']['subnav'] ) ) {
|
|
foreach( $tabs['foro']['subnav'] as $id => $data ) {
|
|
$i++;
|
|
if ( $i == 1 ) {
|
|
$tabs['foro']['subnav_default'] = $id;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return $tabs;
|
|
}
|
|
|
|
function um_default_tab_content( $args ) {
|
|
$this->um_user_topics( $args );
|
|
}
|
|
|
|
function um_user_topics( $args ) {
|
|
$user_id = um_user('ID');
|
|
if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
|
|
$paged = (isset($paged) && $paged) ? $paged : 1;
|
|
$args = array(
|
|
'offset' => ($paged - 1) * WPF()->current_object['items_per_page'],
|
|
'row_count' => WPF()->current_object['items_per_page'],
|
|
'userid' => $user_id,
|
|
'orderby' => 'modified',
|
|
'check_private' => true
|
|
);
|
|
$activities = WPF()->topic->get_topics( $args, $items_count);
|
|
?>
|
|
<div id="wpforo-topics" class="wpforo-activity">
|
|
<h3 class="wpf-activity-head"><?php wpforo_phrase('Forum Topics Started'); ?></h3>
|
|
<?php if(empty($activities)) : ?>
|
|
<p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
|
|
<?php else: ?>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
<?php $bg = FALSE; foreach( $activities as $activity ) : ?>
|
|
<tr>
|
|
<td class="wpf-activity-title">
|
|
<span class="dashicons dashicons-admin-comments"></span>
|
|
<?php
|
|
$topic = wpforo_topic($activity['topicid']);
|
|
if( !empty($topic)){ $topic_url = $topic['url']; $topic_title = $topic['title']; if(!$topic_url) $topic_url = '#'; if(!$topic_title) $topic_title = wpforo_phrase('Topic link');
|
|
?><a href="<?php echo esc_url($topic_url) ?>" class="wpf-item-title"><?php echo $topic_title ?></a><?php
|
|
}
|
|
if( wpfval($topic, 'forumid') ){
|
|
$forum = wpforo_forum($topic['forumid']); $forum_url = $forum['url']; $forum_title = $forum['title']; if(!$forum_url) $forum_url = '#'; if(!$forum_title) $forum_url = wpforo_phrase('Forum link');
|
|
?><p style="font-style: italic"><span><?php echo wpforo_phrase('in forum', false) ?></span> <a href="<?php echo esc_url($forum_url) ?>"><?php echo $forum_title ?></a></p><?php
|
|
}
|
|
?>
|
|
</td>
|
|
<td class="wpf-activity-users">
|
|
<?php $members = WPF()->topic->members($topic['topicid'], 3); ?>
|
|
<?php if(!empty($members)): foreach( $members as $member ): ?>
|
|
<?php if(!empty($member)): ?>
|
|
<a href="<?php echo um_user_profile_url($member['ID']) ?>" title="<?php echo esc_attr(um_get_display_name($member['ID'])); ?>"><?php echo WPF()->member->avatar($member, 'alt="'.esc_attr($member['display_name']).'"', 30) ?></a>
|
|
<?php endif; ?>
|
|
<?php endforeach; endif; ?>
|
|
</td>
|
|
<td class="wpf-activity-posts">
|
|
<?php echo $activity['posts']; ?> <?php wpforo_phrase('posts'); ?>
|
|
</td>
|
|
<td class="wpf-activity-date"><?php wpforo_date($topic['created']); ?></td>
|
|
</tr>
|
|
<?php endforeach ?>
|
|
</table>
|
|
<div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, null, false ); ?></div>
|
|
<div style="clear: both"></div>
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php
|
|
|
|
}
|
|
|
|
function um_user_replies( $args ) {
|
|
$user_id = um_user('ID');
|
|
if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
|
|
$paged = (isset($paged) && $paged) ? $paged : 1;
|
|
$args = array(
|
|
'offset' => ($paged - 1) * WPF()->current_object['items_per_page'],
|
|
'row_count' => WPF()->current_object['items_per_page'],
|
|
'userid' => $user_id,
|
|
'orderby' => '`created` DESC',
|
|
'check_private' => true
|
|
);
|
|
$activities = WPF()->post->get_posts( $args, $items_count);
|
|
?>
|
|
<div id="wpforo-posts" class="wpforo-activity">
|
|
<h3 class="wpf-activity-head"><?php wpforo_phrase('Forum Replies Created'); ?></h3>
|
|
<?php if(empty($activities)) : ?>
|
|
<p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
|
|
<?php else: ?>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
<?php $bg = FALSE; foreach( $activities as $activity ) : ?>
|
|
<tr>
|
|
<td class="wpf-activity-title">
|
|
<span class="dashicons dashicons-format-chat"></span>
|
|
<?php
|
|
$post = wpforo_post($activity['postid']);
|
|
if( !empty($post)){ $post_url = $post['url']; $post_title = $post['title']; if(!$post_url) $post_url = '#'; if(!$post_title) $post_title = wpforo_phrase('Post link');
|
|
?><a href="<?php echo esc_url($post_url) ?>" class="wpf-item-title"><?php echo $post_title ?></a><?php
|
|
}
|
|
?>
|
|
<?php if(wpfval($post, 'body')): ?>
|
|
<p class="wpf-post-excerpt" style="font-style: italic">
|
|
<?php
|
|
$body = wpforo_content_filter( $post['body'] );
|
|
$body = preg_replace('#\[attach\][^\[\]]*\[\/attach\]#is', '', strip_shortcodes(strip_tags($body)));
|
|
wpforo_text($body, 200);
|
|
?>
|
|
</p>
|
|
<?php endif; ?>
|
|
</td>
|
|
<td class="wpf-activity-forum">
|
|
<?php
|
|
if( wpfval($post, 'forumid') ){
|
|
$forum = wpforo_forum($post['forumid']); $forum_url = $forum['url']; $forum_title = $forum['title']; if(!$forum_url) $forum_url = '#'; if(!$forum_title) $forum_url = wpforo_phrase('Forum link');
|
|
?><p style="font-style: italic"><span><?php echo wpforo_phrase('in forum', false) ?></span> <a href="<?php echo esc_url($forum_url) ?>"><?php echo $forum_title ?></a></p><?php
|
|
}
|
|
?>
|
|
</td>
|
|
<td class="wpf-activity-date"><?php wpforo_date($post['created']); ?></td>
|
|
</tr>
|
|
<?php endforeach ?>
|
|
</table>
|
|
<div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, null, false ); ?></div>
|
|
<div style="clear: both"></div>
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
function um_user_favorites( $args ) {
|
|
$user_id = um_user('ID');
|
|
if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
|
|
$paged = (isset($paged) && $paged) ? $paged : 1;
|
|
$args = array(
|
|
'userid' => $user_id,
|
|
'offset' => ($paged - 1) * WPF()->current_object['items_per_page'],
|
|
'row_count' => WPF()->current_object['items_per_page'],
|
|
'var' => 'postid'
|
|
);
|
|
$activities = WPF()->post->get_liked_posts( $args, $items_count);
|
|
?>
|
|
<div id="wpforo-liked-posts" class="wpforo-activity">
|
|
<h3 class="wpf-activity-head"><?php wpforo_phrase('Liked Forum Posts'); ?></h3>
|
|
<?php if(empty($activities)) : ?>
|
|
<p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
|
|
<?php else: ?>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
<?php $bg = FALSE; foreach( $activities as $postid ) : ?>
|
|
<tr>
|
|
<td class="wpf-activity-title">
|
|
<span class="dashicons dashicons-thumbs-up"></span>
|
|
<?php
|
|
$post = wpforo_post($postid);
|
|
if( !empty($post)){ $post_url = $post['url']; $post_title = $post['title']; if(!$post_url) $post_url = '#'; if(!$post_title) $post_title = wpforo_phrase('Post link');
|
|
?><a href="<?php echo esc_url($post_url) ?>" class="wpf-item-title"><?php echo $post_title ?></a><?php
|
|
}
|
|
?>
|
|
<?php if(wpfval($post, 'body')): ?>
|
|
<p class="wpf-post-excerpt" style="font-style: italic">
|
|
<?php
|
|
$body = wpforo_content_filter( $post['body'] );
|
|
$body = preg_replace('#\[attach\][^\[\]]*\[\/attach\]#is', '', strip_shortcodes(strip_tags($body)));
|
|
wpforo_text($body, 200);
|
|
?>
|
|
</p>
|
|
<?php endif; ?>
|
|
</td>
|
|
<td class="wpf-activity-forum">
|
|
<?php
|
|
if( wpfval($post, 'forumid') ){
|
|
$forum = wpforo_forum($post['forumid']); $forum_url = $forum['url']; $forum_title = $forum['title']; if(!$forum_url) $forum_url = '#'; if(!$forum_title) $forum_url = wpforo_phrase('Forum link');
|
|
?><p style="font-style: italic"><span><?php echo wpforo_phrase('in forum', false) ?></span> <a href="<?php echo esc_url($forum_url) ?>"><?php echo $forum_title ?></a></p><?php
|
|
}
|
|
?>
|
|
</td>
|
|
<td class="wpf-activity-date"><?php wpforo_date($post['created']); ?></td>
|
|
</tr>
|
|
<?php endforeach ?>
|
|
</table>
|
|
<div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, null, false ); ?></div>
|
|
<div style="clear: both"></div>
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
function um_user_subscriptions( $args ) {
|
|
$user_id = um_user('ID');
|
|
if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
|
|
$paged = (isset($paged) && $paged) ? $paged : 1;
|
|
$args = array(
|
|
'offset' => ($paged - 1) * WPF()->current_object['items_per_page'],
|
|
'row_count' => WPF()->current_object['items_per_page'],
|
|
'userid' => $user_id,
|
|
'order' => 'DESC'
|
|
);
|
|
$activities = WPF()->sbscrb->get_subscribes( $args, $items_count);
|
|
?>
|
|
<div id="wpforo-subscriptions" class="wpforo-activity">
|
|
<h3 class="wpf-activity-head"><?php wpforo_phrase('Forum Subscriptions'); ?></h3>
|
|
<?php if(empty($activities)) : ?>
|
|
<p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
|
|
<?php else: ?>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
<?php $bg = FALSE; foreach( $activities as $activity ) : ?>
|
|
<tr>
|
|
<td class="wpf-activity-title">
|
|
<span class="dashicons <?php echo ($activity['type'] == 'forum') ? 'dashicons-category' : 'dashicons-admin-comments' ; ?>"></span>
|
|
<?php
|
|
if( in_array($activity['type'], array('forum', 'forum-topic')) ){
|
|
$item = wpforo_forum($activity['itemid']);
|
|
$item_url = $item['url'];
|
|
}elseif($activity['type'] == 'topic'){
|
|
$item = wpforo_topic($activity['itemid']);
|
|
$item_url = $item['url'];
|
|
}elseif ( in_array($activity['type'], array('forums', 'forums-topics')) ){
|
|
$item = array('title' => wpforo_phrase('All ' . $activity['type'], false));
|
|
$item_url = '#';
|
|
}
|
|
if(empty($item)) continue;
|
|
?>
|
|
<a href="<?php echo esc_url($item_url) ?>" class="wpf-item-title"><?php echo esc_html($item['title']) ?></a>
|
|
</td>
|
|
<?php if( wpforo_is_owner($user_id) ) : ?>
|
|
<td class="wpf-activity-unsb"><a href="<?php echo esc_url(WPF()->sbscrb->get_unsubscribe_link($activity['confirmkey'])) ?>"><?php wpforo_phrase('Unsubscribe'); ?></a></td>
|
|
<?php else : ?>
|
|
<td></td>
|
|
<?php endif; ?>
|
|
</tr>
|
|
<?php endforeach ?>
|
|
</table>
|
|
<div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, null, false ); ?></div>
|
|
<div style="clear: both"></div>
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
function um_profile_url( $url = '', $member = array(), $template = 'profile' ){
|
|
if( !wpforo_is_admin() && wpfval($member, 'ID') ){
|
|
$user_domain = $this->um_profile_permalink( $member['ID'] );
|
|
if( isset($user_domain) ){
|
|
$user_domain = ( $user_domain ) ? $user_domain : get_author_posts_url( $member['ID'] );
|
|
$user_domain = strtok( $user_domain, '?');
|
|
$tabs = wpforo_feature('um_forum_tab');
|
|
if( $user_domain && $tabs ){
|
|
if( $template == 'account' ){
|
|
$url = $user_domain . '?profiletab=main&um_action=edit';
|
|
}
|
|
elseif( $template == 'activity' ){
|
|
$url = $user_domain . '?profiletab=foro';
|
|
}
|
|
elseif( $template == 'subscriptions' ){
|
|
$url = $user_domain . '?profiletab=foro&subnav=subscriptions';
|
|
}
|
|
elseif( $template == 'profile' ) {
|
|
$url = $user_domain;
|
|
}
|
|
} else {
|
|
$url = $user_domain;
|
|
}
|
|
}
|
|
}
|
|
if( isset($user_domain) ){
|
|
return apply_filters('wpforo_um_member_profile_url', $url, $member, $template);
|
|
} else{
|
|
return $url;
|
|
}
|
|
}
|
|
|
|
function um_profile_permalink( $user_id ){
|
|
if( !$user_id ) return false;
|
|
$permalink_base = UM()->options()->get( 'permalink_base' );
|
|
$slug = get_user_meta( $user_id, "um_user_profile_url_slug_{$permalink_base}", true );
|
|
if ( empty( $slug ) ) {
|
|
if ( $permalink_base != 'user_login' ) {
|
|
$slug = get_user_meta( $user_id, "um_user_profile_url_slug_user_login", true );
|
|
}
|
|
if ( empty( $slug ) ) {
|
|
return false;
|
|
}
|
|
}
|
|
$um = get_option('um_options');
|
|
$page_id = ( wpfval($um, 'core_user') ) ? $um['core_user'] : '';
|
|
$profile_url = get_permalink( $page_id );
|
|
$profile_url = apply_filters( 'um_localize_permalink_filter', $profile_url, $page_id );
|
|
if ( get_option('permalink_structure') ) {
|
|
$profile_url = trailingslashit( untrailingslashit( $profile_url ) );
|
|
$profile_url = $profile_url . strtolower( $slug ). '/';
|
|
} else {
|
|
$profile_url = add_query_arg( 'um_user', strtolower( $slug ), $profile_url );
|
|
}
|
|
return ! empty( $profile_url ) ? $profile_url : '';
|
|
}
|
|
|
|
function um_notification_types( $array ){
|
|
$array['wpforo_user_reply'] = array(
|
|
'title' => __('User leaves a reply to wpForo topic', 'wpforo'),
|
|
'template' => __('<strong>{member}</strong> has <strong>replied</strong> to a topic you started on the forum.', 'wpforo'),
|
|
'account_desc' => __('When a member replies to one of my forum topics', 'wpforo')
|
|
);
|
|
$array['wpforo_user_reply_to_reply'] = array(
|
|
'title' => __('User replied to wpForo post', 'wpforo'),
|
|
'template' => __('<strong>{member}</strong> has <strong>replied</strong> to your post on the forum.', 'wpforo'),
|
|
'account_desc' => __('When a member replies to one of my post in forum topics', 'wpforo')
|
|
);
|
|
return $array;
|
|
}
|
|
|
|
function um_notification_icon( $output, $type ) {
|
|
if ( $type == 'wpforo_user_reply' ) {
|
|
$output = '<i class="um-faicon-comments" style="color: #43A6DF"></i>';
|
|
}
|
|
if ( $type == 'wpforo_user_reply_to_reply' ) {
|
|
$output = '<i class="um-faicon-comment" style="color: #43A6DF"></i>';
|
|
}
|
|
return $output;
|
|
}
|
|
|
|
function um_add_notification( $post = array(), $topic = array() ) {
|
|
|
|
//Get reply data
|
|
if( !wpfval($post,'postid') ) return;
|
|
if( !wpfval($topic,'topicid') ) return;
|
|
|
|
//Don't notify if a new reply is unapproved
|
|
if( wpfval($post,'status') ) return false;
|
|
if( wpfval($post, 'is_first_post')) return false;
|
|
|
|
//Get author information
|
|
$author_id = $post['userid'];
|
|
$topic_author_id = $topic['userid'];
|
|
$reply_to_item_author_id = 0;
|
|
um_fetch_user( $author_id );
|
|
|
|
// Hierarchical replies
|
|
if ( wpfval($post, 'parentid') ) {
|
|
$reply_to_item_author_id = wpforo_post( $post['parentid'], 'userid' );
|
|
}
|
|
|
|
// Notify the topic author if not the current reply author
|
|
if ( $author_id != $topic_author_id ) {
|
|
$vars['photo'] = um_get_avatar_url( get_avatar( $author_id, 40 ) );
|
|
$vars['member'] = um_user('display_name');
|
|
$vars['notification_uri'] = esc_url_raw( $post['posturl'] );
|
|
UM()->Notifications_API()->api()->store_notification( $topic_author_id, 'wpforo_user_reply', $vars );
|
|
}
|
|
// Notify the immediate reply author if not the current reply author
|
|
|
|
if( $reply_to_item_author_id &&
|
|
wpfval($post, 'parentid') &&
|
|
$author_id != $reply_to_item_author_id &&
|
|
$topic_author_id != $reply_to_item_author_id )
|
|
{
|
|
$vars['photo'] = um_get_avatar_url( get_avatar( $author_id, 40 ) );
|
|
$vars['member'] = um_user('display_name');
|
|
$vars['notification_uri'] = esc_url_raw( $post['posturl'] );
|
|
UM()->Notifications_API()->api()->store_notification( $reply_to_item_author_id, 'wpforo_user_reply_to_reply', $vars );
|
|
}
|
|
|
|
}
|
|
|
|
function um_notification_on_post_status_change( $reply_id, $status = 0 ) {
|
|
if( !$reply_id || !wpforo_feature('um_notification') ) return;
|
|
$post = WPF()->post->get_post($reply_id);
|
|
$post['status'] = $status;
|
|
$post['posturl'] = WPF()->post->get_post_url( $post['postid'] );
|
|
if( wpfval($post,'topicid') ) {
|
|
$topic = WPF()->topic->get_topic($post['topicid']);
|
|
} else {
|
|
return false;
|
|
}
|
|
if( !$status ){
|
|
$this->um_add_notification( $post, $topic );
|
|
}
|
|
}
|
|
|
|
function um_frontend_enqueue(){
|
|
if (is_rtl()) {
|
|
wp_register_style('wpforo-um-rtl', WPFORO_TEMPLATE_URL . '/integration/ultimate-member/style-rtl.css', false, WPFORO_VERSION );
|
|
wp_enqueue_style('wpforo-um-rtl');
|
|
}
|
|
else{
|
|
wp_register_style('wpforo-um', WPFORO_TEMPLATE_URL . '/integration/ultimate-member/style.css', false, WPFORO_VERSION );
|
|
wp_enqueue_style('wpforo-um');
|
|
}
|
|
if(!is_wpforo_page()){
|
|
wp_enqueue_style( 'dashicons' );
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
$WPFUM = new wpForo_UM();
|
|
|
|
}
|