Sid Gifari File Manager
🏠 Root
/
home
/
genremedia08
/
thepassage.overlookedtracks.com
/
wp-content9
/
plugins
/
bp-better-messages
/
inc
/
Editing: shortcodes.php
<?php defined( 'ABSPATH' ) || exit; class Better_Messages_Shortcodes { public static function instance() { // Store the instance locally to avoid private static replication static $instance = null; // Only run these methods if they haven't been run previously if ( null === $instance ) { $instance = new Better_Messages_Shortcodes; $instance->setup_actions(); } // Always return the instance return $instance; // The last metroid is in captivity. The galaxy is at peace. } public function setup_actions(){ add_shortcode( 'bp_better_messages_unread_counter', array( $this, 'unread_counter_shortcode' ) ); add_shortcode( 'better_messages_unread_counter', array( $this, 'unread_counter_shortcode' ) ); add_shortcode( 'bp_better_messages_my_messages_url', array( $this, 'bp_better_messages_url' ) ); add_shortcode( 'better_messages_my_messages_url', array( $this, 'bp_better_messages_url' ) ); add_shortcode( 'bp_better_messages_pm_button', array( $this, 'bp_better_messages_pm_button' ) ); add_shortcode( 'better_messages_pm_button', array( $this, 'bp_better_messages_pm_button' ) ); add_shortcode( 'bp_better_messages', array( $this, 'bp_better_messages' ) ); add_shortcode( 'better_messages', array( $this, 'bp_better_messages' ) ); /** * Premium buttons */ add_shortcode( 'bp_better_messages_mini_chat_button', array( $this, 'bp_better_messages_mini_chat_button' ) ); add_shortcode( 'better_messages_mini_chat_button', array( $this, 'bp_better_messages_mini_chat_button' ) ); add_shortcode( 'bp_better_messages_video_call_button', array( $this, 'bp_better_messages_video_call_button' ) ); add_shortcode( 'better_messages_video_call_button', array( $this, 'bp_better_messages_video_call_button' ) ); add_shortcode( 'bp_better_messages_audio_call_button', array( $this, 'bp_better_messages_audio_call_button' ) ); add_shortcode( 'better_messages_audio_call_button', array( $this, 'bp_better_messages_audio_call_button' ) ); add_shortcode( 'better_messages_single_conversation', array( $this, 'better_messages_single_conversation' ) ); add_shortcode( 'better_messages_user_conversation', array( $this, 'better_messages_user_conversation' ) ); add_shortcode( 'better_messages_live_chat_button', array( $this, 'better_messages_live_chat_button' ) ); } function esc_brackets($text = ''){ return str_replace( [ "[" , "]" ] , [ "[" , "]" ] , $text ); } public function better_messages_live_chat_button($args){ $class = 'bm-lc-button'; $attrs = ''; $alt = ''; $text = __('Live Chat', 'bp-better-messages'); $type = 'link'; if( isset( $args['class'] ) ) { $class .= ' ' . $args['class']; } if( isset( $args['type']) && $args['type'] === 'button' ){ $type = 'button'; } if( isset( $args['text'] ) ) { $text = $args['text']; } if( isset( $args['alt'] ) ) { $alt = $args['alt']; } if( isset( $args['subject'] ) ) { $attrs .= ' data-subject="' . urlencode($args['subject']) . '"'; } if( isset( $args['target'] ) ) { $attrs .= ' target="' . esc_attr( $args['target'] ) . '"'; } if( isset( $args['unique_tag'] ) ) { $attrs .= ' data-bm-unique-key="' . urlencode($args['unique_tag']) . '"'; } if( isset( $args['object_id'] ) ) { $attrs .= ' data-bm-object-id="' . intval($args['object_id']) . '"'; } if( $alt !== '' ){ $attrs .= ' title="' . esc_html( $alt ) . '"'; } if( isset( $args['user_id'] ) ) { $user_id = (int) $args['user_id']; } else { $user_id = (int) Better_Messages()->functions->get_member_id(); } if( Better_Messages()->functions->get_current_user_id() === $user_id ){ $class .= ' bm-self-button'; } $link = '#'; if( ! is_user_logged_in() ) { $link = Better_Messages()->functions->get_link(Better_Messages()->functions->get_current_user_id()); if( ! Better_Messages()->guests->guest_access_enabled() ){ $attrs .= ' onclick="event.preventDefault(); location.href = \'' . $link . '\'; "'; } } Better_Messages()->enqueue_css(); if( $type === 'button'){ return '<button class="' . esc_attr($class) . '" data-user-id="' . $user_id . '" ' . $attrs . '><span class="bm-button-text">' . wp_kses($text, ['i' => [ 'class' => [] ]]) . '</span></button>'; } else { return '<a class="' . esc_attr($class) . '" data-user-id="' . $user_id . '" ' . $attrs . '><span class="bm-button-text">' . wp_kses($text, ['i' => [ 'class' => [] ]]) . '</span></a>'; } } public function better_messages_single_conversation( $args ){ if( ! is_user_logged_in() && ! Better_Messages()->guests->guest_access_enabled() ) { return Better_Messages()->functions->render_login_form(); } $thread_id = intval( $args['thread_id'] ); $thread = Better_Messages()->functions->get_thread( $thread_id ); if( $thread ) { return Better_Messages()->functions->get_conversation_layout($thread_id); } else { return '<p>' . __('Conversation not exists', 'bp-better-messages') . '</p>'; } } public function better_messages_user_conversation( $args ) { if( ! is_user_logged_in() && ! Better_Messages()->guests->guest_access_enabled() ) { return Better_Messages()->functions->render_login_form(); } if( isset( $args['user_id'] ) ) { $user_id = (int) $args['user_id']; } else { $user_id = (int) Better_Messages()->functions->get_member_id(); } $initialHeight = (int) apply_filters( 'bp_better_messages_max_height', Better_Messages()->settings['messagesHeight'] ); return '<div class="bp-messages-single-thread-wrap" style="height: ' . $initialHeight . 'px" data-user-id="' . $user_id . '">' . Better_Messages()->functions->container_placeholder() . '</div>'; } public function bp_better_messages( $args ){ ob_start(); if( ! is_user_logged_in() && ! Better_Messages()->guests->guest_access_enabled() ){ echo Better_Messages()->functions->render_login_form(); } else { echo Better_Messages()->functions->get_page( $args ); } return ob_get_clean(); } public function bp_better_messages_pm_button( $args ){ $class = 'bpbm-pm-button'; $target = ''; $text = __('Private Message', 'bp-better-messages'); $subject = ''; $message = ''; $fast = true; $return_url = false; if( isset( $args['class'] ) ) { $class .= ' ' . $args['class']; } if( isset( $args['target'] ) ) { $target .= ' target="' . esc_attr( $args['target'] ) . '"'; } if( isset( $args['text'] ) ) { $text = $args['text']; } if( isset( $args['subject'] ) ) { $subject = urlencode($args['subject']); } if( isset( $args['message'] ) ) { $message = urlencode($args['message']); } if( isset( $args['fast_start'] ) && $args['fast_start'] === '0' ) { $fast = false; } if( isset( $args['url_only'] ) && $args['url_only'] === '1' ) { $return_url = true; } if( isset( $args['user_id'] ) ) { $user_id = (int) $args['user_id']; } else { $user_id = (int) Better_Messages()->functions->get_member_id(); } if( ! Better_Messages()->functions->is_user_exists( $user_id ) ) return ''; if( $user_id === Better_Messages()->functions->get_current_user_id() ) $class .= ' bm-self-button'; $args = [ 'to' => $user_id ]; $base_url = Better_Messages()->functions->get_link( Better_Messages()->functions->get_current_user_id() ); if( Better_Messages()->settings['fastStart'] == '1' && $fast ){ $args['bm-fast-start'] = '1'; $class .= ' bm-fast-start'; } if( ! empty( $subject ) ){ $args['subject'] = $subject; } if( ! empty( $message ) ){ $args['message'] = $message; } $attributes = ''; if( isset( $args['subject'] ) ) { $attributes .= ' data-bm-subject="' . $args['subject'] . '"'; } if( isset( $args['unique_tag'] ) ) { $attributes .= ' data-bm-unique-key="' . urlencode($args['unique_tag']) . '"'; } if( isset($args['bm-fast-start']) && $args['bm-fast-start'] ){ $link = add_query_arg( $args, $base_url ); } else { $link = Better_Messages()->functions->add_hash_arg('new-conversation', $args, $base_url); } if( $return_url ) { return $link; } Better_Messages()->enqueue_css(); return '<a href="' . esc_url($link) . '" class="' . esc_attr($class) . '"' . $target . ' data-user-id="' . $user_id. '"' . $attributes . '><span class="bm-button-text">' . esc_attr($text) . '</span></a>'; } public function bp_better_messages_video_call_button( $args ){ $class = 'bpbm-pm-button video-call'; $target = ''; $text = __('Video Call', 'bp-better-messages'); $return_url = false; if( isset( $args['class'] ) ) { $class .= ' ' . $args['class']; } if( isset( $args['target'] ) ) { $target .= ' target="' . esc_attr( $args['target'] ) . '"'; } if( isset( $args['text'] ) ) { $text = $args['text']; } if( isset( $args['url_only'] ) && $args['url_only'] === '1' ) { $return_url = true; } if( isset( $args['user_id'] ) ) { $user_id = (int) $args['user_id']; } else { $user_id = (int) Better_Messages()->functions->get_member_id(); } if( $user_id === Better_Messages()->functions->get_current_user_id() ) $class .= ' bm-self-button'; if( ! Better_Messages()->functions->is_user_exists( $user_id ) ) return ''; $args = [ 'fast-call' => '', 'to' => $user_id, 'type' => 'video' ]; $base_url = Better_Messages()->functions->get_link( Better_Messages()->functions->get_current_user_id() ); $link = add_query_arg( $args, $base_url ); if( $return_url ) { return $link; } Better_Messages()->enqueue_css(); return '<a href="' . esc_url($link) . '" class="' . esc_attr($class) . '" data-user-id="' . $user_id . '"><span class="bm-button-text">' . esc_attr($text) . '</span></a>'; } public function bp_better_messages_audio_call_button( $args ){ $class = 'bpbm-pm-button audio-call'; $text = __('Audio Call', 'bp-better-messages'); $return_url = false; if( isset( $args['class'] ) ) { $class .= ' ' . $args['class']; } if( isset( $args['text'] ) ) { $text = $args['text']; } if( isset( $args['url_only'] ) && $args['url_only'] === '1' ) { $return_url = true; } if( isset( $args['user_id'] ) ) { $user_id = (int) $args['user_id']; } else { $user_id = (int) Better_Messages()->functions->get_member_id(); } if( $user_id === Better_Messages()->functions->get_current_user_id() ) $class .= ' bm-self-button'; if( ! Better_Messages()->functions->is_user_exists( $user_id ) ) return ''; $args = [ 'fast-call' => '', 'to' => $user_id, 'type' => 'audio' ]; $base_url = Better_Messages()->functions->get_link(Better_Messages()->functions->get_current_user_id()); $link = add_query_arg( $args, $base_url ); if( $return_url ) { return $link; } Better_Messages()->enqueue_css(); return '<a href="' . esc_url($link) . '" class="' . esc_attr($class) . '" data-user-id="' . $user_id . '"><span class="bm-button-text">' . esc_attr($text) . '</span></a>'; } public function bp_better_messages_mini_chat_button( $args ){ if (Better_Messages()->settings['miniChatsEnable'] !== '1') { return ''; } $class = 'bpbm-pm-button open-mini-chat'; $text = __('Private Message', 'bp-better-messages'); if( isset( $args['class'] ) ) { $class .= ' ' . $args['class']; } if( isset( $args['text'] ) ) { $text = $args['text']; } if( isset( $args['user_id'] ) ) { $user_id = (int) $args['user_id']; } else { $user_id = (int) Better_Messages()->functions->get_member_id(); } if( $user_id === Better_Messages()->functions->get_current_user_id() ) $class .= ' bm-self-button'; if( ! Better_Messages()->functions->is_user_exists( $user_id ) ) return ''; $attributes = ''; if( isset( $args['subject'] ) ) { $attributes .= ' data-bm-subject="' . urlencode($args['subject']) . '"'; } if( isset( $args['unique_tag'] ) ) { $attributes .= ' data-bm-unique-key="' . urlencode($args['unique_tag']) . '"'; } $link = '#'; if( ! is_user_logged_in() ) { $link = Better_Messages()->functions->get_link(Better_Messages()->functions->get_current_user_id()); } Better_Messages()->enqueue_css(); return '<a href="' . esc_url($link) . '" class="' . esc_attr($class) . '" data-user-id="' . $user_id . '" '. $attributes. '><span class="bm-button-text">' . esc_attr($text) . '</span></a>'; } public function bp_better_messages_url(){ if( ! is_user_logged_in() ){ return ''; } return Better_Messages()->functions->get_link( Better_Messages()->functions->get_current_user_id() ); } function unread_counter_shortcode( $args ) { if( ! is_user_logged_in() ){ return ''; } $hide_when_no_messages = false; $preserve_space = false; if( isset( $args['hide_when_no_messages'] ) && $args['hide_when_no_messages'] === '1' ) { $hide_when_no_messages = true; } if( isset( $args['preserve_space'] ) && $args['preserve_space'] === '1' ) { $preserve_space = true; } $classes = ['bp-better-messages-unread', 'bpbmuc']; if( $hide_when_no_messages ){ $classes[] = 'bpbmuc-hide-when-null'; } if( $preserve_space ){ $classes[] = 'bpbmuc-preserve-space'; } $class = implode(' ', $classes ); if( Better_Messages()->settings['mechanism'] !== 'websocket'){ $unread = Better_Messages()->functions->get_total_threads_for_user( Better_Messages()->functions->get_current_user_id(), 'unread' ); return '<span class="' . $class . '" data-count="' . $unread . '">' . $unread . '</span>'; } else { return '<span class="' . $class . '" data-count="0">0</span>'; } } } function Better_Messages_Shortcodes() { return Better_Messages_Shortcodes::instance(); }
Save
Cancel