Sid Gifari File Manager
🏠 Root
/
home
/
genremedia08
/
thepassage.overlookedtracks.com
/
wp-content9
/
plugins
/
bp-better-messages
/
addons
/
Editing: onesignal.php
<?php defined( 'ABSPATH' ) || exit; if ( ! class_exists( 'Better_Messages_OneSignal' ) ) { class Better_Messages_OneSignal { public static function instance() { static $instance = null; if (null === $instance) { $instance = new Better_Messages_OneSignal(); } return $instance; } public function __construct(){ add_filter( 'better_messages_bulk_pushs', array( $this, 'send_bulk_pushs' ), 10, 4 ); add_filter( 'better_messages_send_onesignal_push', array( $this, 'send_pushs' ), 10, 7 ); add_filter( 'better_messages_3rd_party_push_active', '__return_true' ); add_filter( 'better_messages_push_active', '__return_false' ); add_filter( 'better_messages_push_message_in_settings', array( $this, 'push_message_in_settings' ) ); add_filter( 'bp_better_messages_script_variable', array( $this, 'add_onesignal_script_variable' ) ); add_action( 'rest_api_init', array( $this, 'rest_api_init' ) ); add_action( 'wp_footer', array( $this, 'frontend_script' ), 99999 ); } public function frontend_script(){ if( ! wp_script_is( 'better-messages' ) || ! is_user_logged_in() ) return; $is_dev = defined( 'BM_DEV' ); $suffix = ( $is_dev ? '' : '.min' ); $url = Better_Messages()->url . "addons/onesignal/sub-update{$suffix}.js"; echo '<script src="' . $url . '?ver=0.2"></script>'; } public function rest_api_init() { register_rest_route('better-messages/v1', '/oneSignal/updateSubscription', array( 'methods' => 'POST', 'callback' => array($this, 'update_subscription'), 'permission_callback' => array( Better_Messages_Rest_Api(), 'is_user_authorized' ) )); } public function update_subscription( WP_REST_Request $request ) { $user_id = Better_Messages()->functions->get_current_user_id(); if ($user_id <= 0) { return new WP_Error('onesignal_error', 'User ID is required', array('status' => 400)); } if (class_exists('OneSignal')) { $onesignal_wp_settings = OneSignal::get_onesignal_settings(); $onesignal_app_id = $onesignal_wp_settings['app_id']; $onesignal_auth_key = $onesignal_wp_settings['app_rest_api_key']; $subscription_id = (string) $request->get_param('subscription_id'); if ( ! $subscription_id ) { return new WP_Error('onesignal_error', 'Subscription ID is required', array('status' => 400)); } $onesignal_post_url = "https://api.onesignal.com/apps/{$onesignal_app_id}/subscriptions/{$subscription_id}/user/identity"; $fields = [ 'identity' => [ 'external_id' => (string)$user_id ] ]; $request = array( 'method' => 'PATCH', 'headers' => array( 'content-type' => 'application/json;charset=utf-8', 'Authorization' => 'Basic ' . $onesignal_auth_key, ), 'body' => wp_json_encode($fields), 'timeout' => 3, ); $response = wp_remote_request($onesignal_post_url, $request); if (is_wp_error($response)) { return new WP_Error('onesignal_error', $response->get_error_message(), array('status' => 500)); } return [ 'user_id' => $user_id, 'subscription_id' => $subscription_id, ]; } if( defined('ONESIGNAL_VERSION_V3' ) ) { $apiKey = get_option('OneSignalWPSetting')['app_rest_api_key'] ?? ''; if( $apiKey === '' ) return false; $onesignal_app_id = get_option('OneSignalWPSetting')['app_id']; $subscription_id = (string) $request->get_param('subscription_id'); if ( ! $subscription_id ) { return new WP_Error('onesignal_error', 'Subscription ID is required', array('status' => 400)); } $onesignal_post_url = "https://api.onesignal.com/apps/{$onesignal_app_id}/subscriptions/{$subscription_id}/user/identity"; $fields = [ 'identity' => [ 'external_id' => (string)$user_id ] ]; $request = array( 'method' => 'PATCH', 'headers' => array( 'content-type' => 'application/json;charset=utf-8', 'Authorization' => 'Key ' . $apiKey, ), 'body' => wp_json_encode($fields), 'timeout' => 3, ); $response = wp_remote_request($onesignal_post_url, $request); if ( is_wp_error( $response ) ) { return new WP_Error('onesignal_error', $response->get_error_message(), array('status' => 500)); } return [ 'user_id' => $user_id, 'subscription_id' => $subscription_id, ]; } return false; } public function add_onesignal_script_variable( $script_variable ){ if( is_user_logged_in() ){ $script_variable['oneSignal'] = '1'; } return $script_variable; } public function send_bulk_pushs( $pushs, $all_recipients, $notification, $message ) { if( class_exists('OneSignal_Admin') && class_exists('OneSignal') ) { $onesignal_wp_settings = OneSignal::get_onesignal_settings(); if ($onesignal_wp_settings['app_id'] === '' || $onesignal_wp_settings['app_rest_api_key'] === '') return $pushs; $image = $notification['icon']; $fields = array( 'app_id' => $onesignal_wp_settings['app_id'], 'chrome_web_icon' => $image, 'chrome_web_badge' => $image, 'firefox_icon' => $image, 'headings' => ['en' => stripslashes_deep(wp_specialchars_decode($notification['title']))], 'url' => $notification['data']['url'], 'contents' => ['en' => stripslashes_deep(wp_specialchars_decode($notification['body']))], ); $pushs = [ 'onesignal_api_key' => $onesignal_wp_settings['app_rest_api_key'], 'user_ids' => array_map('strval', $all_recipients), 'fields' => $fields ]; } else if( defined('ONESIGNAL_VERSION_V3' ) ){ $apiKey = get_option('OneSignalWPSetting')['app_rest_api_key'] ?? ''; if( $apiKey === '' ) return $pushs; $image = $notification['icon']; $fields = array( 'app_id' => get_option('OneSignalWPSetting')['app_id'], 'chrome_web_icon' => $image, 'chrome_web_badge' => $image, 'firefox_icon' => $image, 'headings' => ['en' => stripslashes_deep(wp_specialchars_decode($notification['title']))], 'url' => $notification['data']['url'], 'contents' => ['en' => stripslashes_deep(wp_specialchars_decode($notification['body']))], ); $pushs = [ 'onesignal_api_key' => $apiKey, 'user_ids' => array_map('strval', $all_recipients), 'fields' => $fields ]; } return $pushs; } public function send_pushs( $result, $user_id, $notification, $type, $thread_id, $message_id, $sender_id ){ if( class_exists('OneSignal_Admin') && class_exists('OneSignal') ) { $onesignal_wp_settings = OneSignal::get_onesignal_settings(); if ($onesignal_wp_settings['app_id'] === '' || $onesignal_wp_settings['app_rest_api_key'] === '') return $result; $onesignal_auth_key = $onesignal_wp_settings['app_rest_api_key']; $image = $notification['icon']; $fields = array( 'app_id' => $onesignal_wp_settings['app_id'], 'chrome_web_icon' => $image, 'chrome_web_badge' => $image, 'firefox_icon' => $image, 'headings' => ['en' => stripslashes_deep(wp_specialchars_decode($notification['title']))], 'url' => $notification['data']['url'], 'contents' => ['en' => stripslashes_deep(wp_specialchars_decode($notification['body']))], ); return [ 'onesignal_api_key' => $onesignal_auth_key, 'user_ids' => array_map('strval', [$user_id]), 'fields' => $fields ]; } else if( defined('ONESIGNAL_VERSION_V3' ) ){ $apiKey = get_option('OneSignalWPSetting')['app_rest_api_key'] ?? ''; if( $apiKey === '' ) return $result; $image = $notification['icon']; $fields = array( 'app_id' => get_option('OneSignalWPSetting')['app_id'], 'chrome_web_icon' => $image, 'chrome_web_badge' => $image, 'firefox_icon' => $image, 'headings' => ['en' => stripslashes_deep(wp_specialchars_decode($notification['title']))], 'url' => $notification['data']['url'], 'contents' => ['en' => stripslashes_deep(wp_specialchars_decode($notification['body']))], ); return [ 'onesignal_api_key' => $apiKey, 'user_ids' => array_map('strval', [$user_id]), 'fields' => $fields ]; } return $result; } public function push_message_in_settings( $message ){ $message = '<p style="color: #0c5460;background-color: #d1ecf1;border: 1px solid #d1ecf1;padding: 15px;line-height: 24px;max-width: 550px;">'; $message .= sprintf(_x('The OneSignal WordPress plugin integration is active and will be used, this option do not need to be enabled.', 'Settings page', 'bp-better-messages'), 'https://www.better-messages.com/docs/integrations/onesignal/'); $message .= '</p>'; return $message; } } }
Save
Cancel