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/google-review.php
<?php

class Dipi_Google_Review
{

    const API_URL = 'https://maps.googleapis.com/maps/api/place';

    private $api_key;
    private $place_id;

    public function __construct($config)
    {
        if (is_array($config)) {
            $this->set_api_key($config['api_key']);
            $this->set_place_id($config['place_id']);
        }
    }

    public function set_api_key($api_key)
    {
        $this->api_key = $api_key;
    }

    public function get_api_key()
    {
        return $this->api_key;
    }

    public function set_place_id($place_id)
    {
        $this->place_id = $place_id;
    }

    public function get_place_id()
    {
        return $this->place_id;
    }

    public 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 = add_query_arg(
            [
                'placeid' => $this->get_place_id(),
                'key'     => $this->get_api_key()
            ],
            self::API_URL . '/details/json'
        );

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

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

            $reviews = $response->result->reviews;

            if (count($reviews) > 0) {

                $stats = [];

                $numreturned = count($reviews);

                foreach ($reviews as $review) {

                    if (empty($review->text)) continue;

                    $review_profile_photo_url = $review->profile_photo_url;
                    $review_name = $review->author_name;
                    $review_text = $review->text;
                    $review_time = $review->time;
                    $review_rating = $review->rating;

                    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 = 'created_time_stamp' 
                            AND meta_value != {$review_time}
                            AND post_id != %d
                            ORDER BY RAND() 
                            LIMIT 1";

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

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

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

                    $author_id = wp_insert_user($userdata);

                    if (empty($checktime)) {
                        $stats[] = [
                            'post_title' => $review_name,
                            'post_content' => wp_kses_post($review_text),
                            'post_type' => 'dipi_testimonial',
                            'post_status' => 'publish',
                            'post_author' => $author_id,
                            'meta_input' => [
                                'profile_image' => esc_attr($review_profile_photo_url),
                                'testimonial_name' => esc_attr($review_name),
                                'testimonial_star' => esc_attr($review_rating),
                                'testimonial_type' => 'google',
                                'created_time_stamp' => esc_attr($review_time)
                            ]
                        ];
                    }
                }

                $i = 0;
                $insertnum = 0;

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

                $msg = sprintf(
                    __('%1$s Google 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_google_reviews_hook', 'dipi_save_google_reviews_hook');
function dipi_save_google_reviews_hook()
{
    $dipi_google_place_id = get_option('dipi_google_place_id');
    $dipi_google_api_key = get_option('dipi_google_api_key');

    $g_api = new Dipi_Google_Review([
        'place_id' => $dipi_google_place_id,
        'api_key' => $dipi_google_api_key
    ]);

    $g_api->save_reviews();
}

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

Youez - 2016 - github.com/yon3zu
LinuXploit