HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.2.34
System: Linux atalantini.com 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64
User: root (0)
PHP: 7.2.34
Disabled: NONE
Upload Files
File: //opt/plugins/comments-like-dislike/inc/classes/cld-admin.php
<?php

defined( 'ABSPATH' ) or die( 'No script kiddies please!!' );

if ( !class_exists( 'CLD_Admin' ) ) {

    class CLD_Admin extends CLD_Library {

        function __construct() {
            parent::__construct();
            add_action( 'admin_menu', array( $this, 'cld_admin_menu' ) );

            /**
             * Plugin Settings link in plugins screen
             *
             */
            add_filter( 'plugin_action_links_' . CLD_BASENAME, array( $this, 'add_setting_link' ) );

            /**
             * Settings save action
             */
            add_action( 'wp_ajax_cld_settings_save_action', array( $this, 'save_settings' ) );
            add_action( 'wp_ajax_nopriv_cld_settings_save_action', array( $this, 'no_permission' ) );

            /**
             * Settings restore action
             */
            add_action( 'wp_ajax_cld_settings_restore_action', array( $this, 'restore_settings' ) );
            add_action( 'wp_ajax_nopriv_cld_settings_restore_action', array( $this, 'no_permission' ) );

            /**
             * Add like dislike columns in comments section
             *
             * @since 1.0.5
             */
            add_filter( 'manage_edit-comments_columns', array( $this, 'add_like_dislike_column' ) );

            /**
             * Display Like Dislike count in each column
             *
             * @since 1.0.5
             */
            add_filter( 'manage_comments_custom_column', array( $this, 'display_like_dislike_values' ), 10, 2 );
        }

        function cld_admin_menu() {
            add_comments_page( __( 'Comments Like Dislike', 'comments-like-dislike' ), __( 'Comments Like Dislike', 'comments-like-dislike' ), 'manage_options', 'comments-like-dislike', array( $this, 'cld_settings' ) );
        }

        function cld_settings() {
            include(CLD_PATH . 'inc/views/backend/settings.php');
        }

        function save_settings() {
            if ( isset( $_POST['_wpnonce'] ) && wp_verify_nonce( $_POST['_wpnonce'], 'cld-backend-ajax-nonce' ) ) {
                $_POST = stripslashes_deep( $_POST );
                parse_str( $_POST['settings_data'], $settings_data );
                foreach ( $settings_data['cld_settings'] as $key => $val ) {
                    $cld_settings[$key] = array_map( 'sanitize_text_field', $val );
                }
                /**
                 * Fires before storing the settings array into database
                 *
                 * @param type array $settings_data - before sanitization
                 * @param type array $cld_settings - after sanitization
                 *
                 * @since 1.0.0
                 */
                do_action( 'cld_before_save_settings', $settings_data, $cld_settings );

                /**
                 * Filters the settings stored in the database
                 *
                 * @param type array $cld_settings
                 *
                 * @since 1.0.0
                 */
                update_option( 'cld_settings', apply_filters( 'cld_settings', $cld_settings ) );
                die( __( 'Settings saved successfully', CLD_TD ) );
            } else {
                die( 'No script kiddies please!!' );
            }
        }

        function no_permission() {
            die( 'No script kiddies please!!' );
        }

        function restore_settings() {
            $default_settings = $this->get_default_settings();
            update_option( 'cld_settings', $default_settings );
            die( __( 'Settings restored successfully.Redirecting...', CLD_TD ) );
        }

        /**
         * Adds settings link
         *
         * @since 1.0.0
         */
        function add_setting_link( $links ) {
            $settings_link = array(
                '<a href="' . admin_url( 'edit-comments.php?page=comments-like-dislike' ) . '">' . __( 'Settings', CLD_TD ) . '</a>',
            );
            return array_merge( $links, $settings_link );
        }

        function add_like_dislike_column( $columns ) {
            $cld_settings = $this->cld_settings;
            if ( empty( $cld_settings['basic_settings']['hide_like_dislike_admin'] ) ) {
                $columns['cld_like_column'] = __( 'Likes', 'comments-like-dislike' );
                $columns['cld_dislike_column'] = __( 'Dislikes', 'comments-like-dislike' );
            }
            return $columns;
        }

        function display_like_dislike_values( $column, $comment_id ) {
            if ( 'cld_like_column' == $column ) {
                $like_count = get_comment_meta( $comment_id, 'cld_like_count', true );
                if ( empty( $like_count ) ) {
                    $like_count = 0;
                }
                echo $like_count;
            }
            if ( 'cld_dislike_column' == $column ) {
                $dislike_count = get_comment_meta( $comment_id, 'cld_dislike_count', true );
                if ( empty( $dislike_count ) ) {
                    $dislike_count = 0;
                }
                echo $dislike_count;
            }
        }

    }

    new CLD_Admin();
}