Sh3ll
OdayForums


Server : LiteSpeed
System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
User : claqxcrl ( 523)
PHP Version : 8.1.32
Disable Function : NONE
Directory :  /home/claqxcrl/anfangola.com/wp-content/plugins/wp-post-author/includes/rating/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/claqxcrl/anfangola.com/wp-content/plugins/wp-post-author/includes/rating/awpa-rating.php
<?php
defined('ABSPATH') or die('No script kiddies please!'); // prevent direct access

class AWPARating
{
    public $rating_enable_post_type = array();
    public $rating = array();
    public $enable_per_post = false;
    public $awpa_post_rating_title;

    public function __construct()
    {
       
        $rating = get_option('awpa_pro_rating_settings');
        $this->rating = $rating;
        if (!empty($rating['post_types'])) {
            foreach ($rating['post_types'] as $key => $post_type) {
                if ($post_type['value']) {
                    array_push($this->rating_enable_post_type, $post_type['name']);
                }
            }
        }
        if ($rating && $rating['enable_pro_rating']) {
            foreach ($rating['post_types'] as $key => $post_type) {
                if (filter_var($post_type['value'], FILTER_VALIDATE_BOOLEAN)) {
                    add_action('add_meta_boxes', array($this, 'awpa_add_rating_metabox'), 10, 1);
                    add_action('admin_enqueue_scripts', array($this, 'awpa_rating_review_metabox_register_scripts'));
                    add_action('save_post', array($this, 'awpa_pro_rating_review_save_metabox'), 10, 1);
                    add_filter('the_content', array($this, 'awpa_pro_rating_review_on_post_content'), 10, 1);
                    // add_filter('the_content', array($this, 'awpa_pro_rating_review_on_post_content_by_author'), 10, 1);
                }
            }
        }
        add_shortcode('awpa-rating-review', array($this, 'awpa_rating_review'));
       
        //to add on frontend post
        add_action('wp_enqueue_scripts', array($this, 'awpa_pro_rating_review_enqueue_style'));
        
    }

   

    
    public function awpa_add_rating_metabox()
    {
        add_meta_box(
            'awpa-rating',
            __('Post Rating Review', 'wp-post-author'),
            array($this, 'awpa_add_rating_metaboxes'),
            $this->rating_enable_post_type,
            'side',
            'high'
        );
    }
    public function awpa_add_rating_metaboxes($post)
    {
       
        $rating = json_encode($this->rating);
        $rating_checkbox_value = get_post_meta($post->ID, 'awpa_rating_review_enable', true);
        $checked = ($rating_checkbox_value=='true' || $rating_checkbox_value =='' ) ? 'checked' : '';
        $rating_checkbox_title = get_post_meta($post->ID, 'awpa_post_rating_title', true);      
        
        $rating_checkbox_title = isset($this->rating['rating_heading']) ? $this->rating['rating_heading'] : __('Love it or Not? Let us know!', 'wp-post-author');
            
        
    
        ?>
        <div class='awpa-checkbox-field'>
            <label for="awpa_rating_review_enable">
            <?php echo  esc_html('Enable Rating Review','wp-post-author')?>
            <input type="checkbox" name="awpa_rating_review_enable" id="custom_checkbox" value="true" <?php echo $checked; ?> />
            </label>
        </div>
        <div class='awpa-field'>
            <label for="awpa_post_rating_title">
            <!-- <?php //echo  esc_html('Title:','wp-post-author')?> -->
            <!-- <input type="text" name="awpa_post_rating_title" id="custom_input" value="<?php //echo esc_attr($rating_checkbox_title); ?>" /> -->
            <!-- <?php //echo esc_attr($rating_checkbox_title); ?> -->
            </label>
             <!-- Add a nonce field for security -->
           <?php  wp_nonce_field('rating_metabox_nonce', 'rating_metabox_nonce');?>
        </div>    
        <div id="awpa-rating-feature" rating="<?php echo esc_attr($rating); ?>"></div>
        <!-- <input type="hidden" id="awpa_rating_review_enable" name="awpa_rating_review_enable" /> -->
        <input type="hidden" id="awpa_post_rating_type" name="awpa_post_rating_type" />
        <!-- <input type="hidden" id="awpa_post_rating_title" name="awpa_post_rating_title" /> -->
<?php
    }
    public function awpa_rating_review_metabox_register_scripts()
    {
        $post_type = get_post_type();
        if ($post_type == 'post') {
            wp_enqueue_script('awpa-rating-review', AWPA_PLUGIN_URL . 'assets/dist/awpa_rating_review.build.js', array(), AWPA_VERSION, true);
            $this->localize_script_dynamic('awpa_rating_review');
        }
    }
    public function awpa_pro_rating_review_enqueue_style()
    {
        $post_type = get_post_type();
        if (in_array($post_type,  $this->rating_enable_post_type)) {
            wp_enqueue_script(
                'awpa-pro-rating-review-frontend',
                AWPA_PLUGIN_URL . 'assets/dist/awpa_rating_review_frontend.build.js',
                array('wp-i18n', 'wp-blocks', 'wp-api-fetch'),
                AWPA_VERSION,
                true
            );

             $this->localize_script_dynamic('awpa_pro_rating_review_frontend');
        }

        wp_enqueue_script(
            'awpa-single-rating-variation-frontend',
            AWPA_PLUGIN_URL . 'assets/dist/single_post_star.build.js',
            array(),
            AWPA_VERSION,
            true
        );

        wp_enqueue_script(
            'awpa-author-rating-variation-frontend',
            AWPA_PLUGIN_URL . 'assets/dist/author_post_star.build.js',
            array(),
            AWPA_VERSION,
            true
        );


       
    }
    public function localize_script_dynamic($value)
    {
        global $post;
        $post_id = $post ? $post->ID : 0;
        $rating = get_option('awpa_pro_rating_settings');
        $rating_review ='';
        if(isset($rating['rating_review'])){
            $rating_review = $rating['rating_review'];
        }
        $awpa_post_global_type = get_post_meta($post_id, 'awpa_post_global_type', true);
        $awpa_post_rating_type = get_post_meta($post_id, 'awpa_post_rating_type', true);
        $query_string = $awpa_post_rating_type &&  $awpa_post_rating_type != 'global_type' ?  $awpa_post_rating_type : $rating_review;
        $review_type = "awpa_pro_post_" . $query_string . "_rating_review";
        $this->enable_per_post = get_post_meta($post_id, 'awpa_rating_review_enable', true);
        $this->awpa_post_rating_title = get_post_meta($post_id, 'awpa_post_rating_title', true);
        $rating_review_meta = get_post_meta($post_id, $review_type, true);
      
        wp_localize_script(
            str_replace('_', '-', $value),
            $value,
            array(
                'rating' => $rating,
                'post_id' => $post_id,
                'has_rating_review' => $rating_review_meta ? true : false,
                'rating_review_meta' => json_encode($rating_review_meta),
                'rating_review_enable' => ($this->enable_per_post==''||$this->enable_per_post=='true')?'true':'false',
                'rating_title' => $this->awpa_post_rating_title,
                'logged_in' => is_user_logged_in(),
                'is_admin' => is_admin(),
                'enable_per_post' => ($this->enable_per_post==''||$this->enable_per_post=='true')?'true':'false',
                'awpa_post_rating_type' => $awpa_post_rating_type,
                'post_has_global_type' => $awpa_post_global_type == 'global_type' ? 'true' : 'false',
                'current_user_id' => get_current_user_id()
            )
        );
    }

    public function awpa_pro_rating_review_save_metabox($post_id)
    {
        if (!current_user_can('edit_post', $post_id)) {
            return;
        }

         // Verify the nonce field for security
        
        if (!isset($_POST['rating_metabox_nonce']) || !wp_verify_nonce($_POST['rating_metabox_nonce'], 'rating_metabox_nonce')) {
            return;
        }
        
        $rating_check_box = isset($_POST['awpa_rating_review_enable'])?'true':'false';
        
        //$title =  sanitize_text_field($_POST['awpa_post_rating_title']);
        //$title = $rating_checkbox_title;
        update_post_meta($post_id, 'awpa_rating_review_enable',  $rating_check_box);
        //update_post_meta($post_id, 'awpa_post_rating_title',$title);
        $awpa_post_rating_type = isset($_POST['awpa_post_rating_type']) ? $_POST['awpa_post_rating_type'] : 0;
        
        if ($awpa_post_rating_type) {
             update_post_meta($post_id, 'awpa_post_rating_type', $awpa_post_rating_type);
        }
        
    }
    public function awpa_rating_review($attributes)
    {
        return "<div class='awpa-rating-review' id='awpa-rating-review-render'></div>";
    }

    public function awpa_pro_rating_review_on_post_content($content)
    {
        global $post;
        $rating = get_option('awpa_pro_rating_settings');
        $rating_review ='';
        if(isset($rating['rating_review'])){
            $rating_review = $rating['rating_review'];
        }
        $awpa_post_global_type = get_post_meta($post->ID, 'awpa_post_global_type', true);
        $awpa_post_rating_type = get_post_meta($post->ID, 'awpa_post_rating_type', true);
        $query_string = $awpa_post_rating_type &&  $awpa_post_rating_type != 'global_type' ?  $awpa_post_rating_type : $rating_review;
        $star_type = '';
        if($query_string =='5_star'){
            $star_type = 5;
        }elseif ($query_string == '3_star'){
            $star_type = 3;
        }elseif($query_string == '10_star'){
            $star_type = 10;
        }
        $review_type = "awpa_pro_post_" . $query_string . "_rating_review";
        if (is_single() && in_the_loop() && is_main_query()) {
            $rating_settings = get_option('awpa_pro_rating_settings');
            if ($rating_settings['bottom_post_content']) {
                $custom_content = do_shortcode('[awpa-rating-review]');
                $content .= $custom_content;
                
                
            }
            
            
        }
        return $content;
    }
    
}

$awpaRating = new AWPARating();

ZeroDay Forums Mini