HEX
Server: LiteSpeed
System: Linux vps30244.sdns.vn 3.10.0-1160.21.1.el7.x86_64 #1 SMP Tue Mar 16 18:28:22 UTC 2021 x86_64
User: admin (1001)
PHP: 7.4.30
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open
Upload Files
File: /home/hcb48/public_html/wp-content/plugins/wpdiscuz/forms/wpdFormAttr/Field/CookiesConsent.php
<?php

namespace wpdFormAttr\Field;

class CookiesConsent extends Field {

    private $cookiesConsent;

    protected function dashboardForm() {
        ?>
        <div class="wpd-field-body" style="display: <?php echo $this->display; ?>">
            <div class="wpd-field-option wpdiscuz-item">
                <input class="wpd-field-type" type="hidden" value="<?php echo $this->type; ?>" name="<?php echo $this->fieldInputName; ?>[type]" />
                <label><?php _e('Name', 'wpdiscuz'); ?>:</label> 
                <input class="wpd-field-name" type="text" value="<?php echo $this->fieldData['name']; ?>" name="<?php echo $this->fieldInputName; ?>[name]" required />
            </div>
            <div class="wpd-field-option">
                <label><?php _e('Description', 'wpdiscuz'); ?>:</label> 
                <input type="text" value="<?php echo $this->fieldData['desc']; ?>" name="<?php echo $this->fieldInputName; ?>[desc]" />
                <p class="wpd-info"><?php _e('Field specific short description or some rule related to inserted information.', 'wpdiscuz'); ?></p>
            </div>
            <div class="wpd-field-option">
                <label><?php _e('Checkbox Label', 'wpdiscuz'); ?>:</label>
                <textarea required="required" type="text" name="<?php echo $this->fieldInputName; ?>[label]"  style="height: 75px;width:100%"><?php echo $this->fieldData['label']; ?></textarea>
            </div>
            <div style="clear:both;"></div>
        </div>
        <?php
    }

    public function editCommentHtml($key, $value, $data, $comment) {
        
    }

    public function frontFormHtml($name, $args, $options, $currentUser, $uniqueId, $isMainForm) {
        if ($currentUser->exists()) {
            return;
        }
        $hasDesc = $args['desc'] ? true : false;
        $commenter = wp_get_current_commenter();
        $consent = empty($commenter['comment_author_email']) ? '' : ' checked="checked"';
        ?>
        <div class="wpdiscuz-item wpd-field-group wpd-field-checkbox wpd-field-cookies-consent wpd-field-single <?php echo $name, '-wrapper', ($hasDesc ? ' wpd-has-desc' : ''); ?>">
            <div class="wpd-field-group-title">
                <div class="wpd-item">
                    <input id="<?php echo $name . '-1_' . $uniqueId; ?>" name="<?php echo $name; ?>" type="checkbox" value="1" <?php echo $consent; ?> class="<?php echo $name; ?> wpd-field wpd-cookies-checkbox" />
                    <label class="wpd-field-label wpd-cursor-pointer" for="<?php echo $name . '-1_' . $uniqueId; ?>"><?php echo $args['label']; ?></label>
                </div>
            </div>
            <?php if ($args['desc']) { ?>
                <div class="wpd-field-desc">
                    <i class="far fa-question-circle" aria-hidden="true"></i><span><?php echo $args['desc']; ?></span>
                </div>
            <?php } ?>
        </div>
        <?php
    }

    public function frontHtml($value, $args) {
        
    }

    public function validateFieldData($fieldName, $args, $options, $currentUser) {
        $this->cookiesConsent = filter_input(INPUT_POST, $fieldName, FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);
        if ($this->cookiesConsent === false) {
            $past = time() - YEAR_IN_SECONDS;
            setcookie('comment_author_' . COOKIEHASH, ' ', $past, '/', COOKIE_DOMAIN);
            setcookie('comment_author_email_' . COOKIEHASH, ' ', $past, '/', COOKIE_DOMAIN);
            setcookie('comment_author_url_' . COOKIEHASH, ' ', $past, '/', COOKIE_DOMAIN);
        }
    }

    public function sanitizeFieldData($data) {
        $cleanData = array();
        $cleanData['type'] = $data['type'];
        if (isset($data['name'])) {
            $name = trim(strip_tags($data['name']));
            $cleanData['name'] = $name ? $name : $this->fieldDefaultData['name'];
        }
        if (isset($data['desc'])) {
            $cleanData['desc'] = trim($data['desc']);
        }
        if (isset($data['label'])) {
            $cleanData['label'] = trim($data['label']);
        }
        return wp_parse_args($cleanData, $this->fieldDefaultData);
    }

    protected function initDefaultData() {
        $this->fieldDefaultData = array(
            'name' => 'Cookies Consent',
            'label' => __('Save my data for the next time I comment'),
            'desc' => 'Save my name, email, and website in this browser cookies for the next time I comment.',
            'required' => '0',
            'show_for_guests' => '1',
            'show_for_users' => '0',
            'is_show_on_comment' => '0',
            'is_show_sform' => '1',
            'no_insert_meta' => '1'
        );
        //  add_action('wpdiscuz_before_save_commentmeta', array($this, 'beforeSaveCommentmeta'));
    }

    public function beforeSaveCommentmeta($comment) {
        if ($this->cookiesConsent === false) {
            $past = time() - YEAR_IN_SECONDS;
            setcookie('comment_author_' . COOKIEHASH, ' ', $past, '/', COOKIE_DOMAIN);
            setcookie('comment_author_email_' . COOKIEHASH, ' ', $past, '/', COOKIE_DOMAIN);
            setcookie('comment_author_url_' . COOKIEHASH, ' ', $past, '/', COOKIE_DOMAIN);
        }
    }

}