Uname: Linux premium72.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
Software: LiteSpeed
PHP version: 8.2.29 [ PHP INFO ] PHP os: Linux
Server Ip: 198.54.125.95
Your Ip: 216.73.216.164
User: matican (532) | Group: matican (531)
Safe Mode: OFF
Disable Function:
NONE

name : Settings.php
<?php

/**
 * @copyright Copyright (c) 2009-2022 ThemeCatcher (https://www.themecatcher.net)
 */
class Quform_Settings
{
    /**
     * @var Quform_Options
     */
    protected $options;

    /**
     * @var Quform_Permissions
     */
    protected $permissions;

    /**
     * @var Quform_ScriptLoader
     */
    protected $scriptLoader;

    /**
     * @param Quform_Options      $options
     * @param Quform_Permissions  $permissions
     * @param Quform_ScriptLoader $scriptLoader
     */
    public function __construct(Quform_Options $options, Quform_Permissions $permissions, Quform_ScriptLoader $scriptLoader)
    {
        $this->options = $options;
        $this->permissions = $permissions;
        $this->scriptLoader = $scriptLoader;
    }

    /**
     * Handle saving the settings page via Ajax
     */
    public function save()
    {
        $this->validateSaveRequest();

        $options = json_decode(stripslashes($_POST['options']), true);

        if ( ! is_array($options)) {
            wp_send_json(array(
                'type'    => 'error',
                'message' => __('Bad request', 'quform')
            ));
        }

        $options = $this->sanitizeOptions($options);

        if (array_key_exists('permissions', $options)) {
            if (is_array($options['permissions'])) {
                $this->permissions->update($options['permissions']);
            }

            unset($options['permissions']);
        }

        $this->options->set($options);

        $this->scriptLoader->generateFiles();

        do_action('quform_settings_saved', $this->options);

        wp_send_json(array(
            'type' => 'success'
        ));
    }

    /**
     * Validate the request to save the settings
     */
    protected function validateSaveRequest()
    {
        if ( ! Quform::isPostRequest() || ! isset($_POST['options']) || ! is_string($_POST['options'])) {
            wp_send_json(array(
                'type' => 'error',
                'message' => __('Bad request', 'quform')
            ));
        }

        if ( ! current_user_can('quform_settings')) {
            wp_send_json(array(
                'type' => 'error',
                'message' => __('Insufficient permissions', 'quform')
            ));
        }

        if ( ! check_ajax_referer('quform_save_settings', false, false)) {
            wp_send_json(array(
                'type' => 'error',
                'message' => __('Nonce check failed', 'quform')
            ));
        }
    }

    /**
     * Sanitize the given options and return them
     *
     * @param   array  $options
     * @return  array  $options
     */
    protected function sanitizeOptions(array $options)
    {
        if (array_key_exists('defaultEmailAddress', $options)) {
            $options['defaultEmailAddress'] = is_string($options['defaultEmailAddress']) ? sanitize_email($options['defaultEmailAddress']) : get_bloginfo('admin_email');
        }

        if (array_key_exists('defaultEmailName', $options)) {
            $options['defaultEmailName'] = is_string($options['defaultEmailName']) ? sanitize_text_field($options['defaultEmailName']) : '';
        }

        if (array_key_exists('defaultFromEmailAddress', $options)) {
            $options['defaultFromEmailAddress'] = is_string($options['defaultFromEmailAddress']) ? sanitize_email($options['defaultFromEmailAddress']) : 'wordpress@' . preg_replace('/^www./', '', Quform::get($_SERVER, 'SERVER_NAME'));
        }

        if (array_key_exists('defaultFromEmailName', $options)) {
            $options['defaultFromEmailName'] = is_string($options['defaultFromEmailName']) ? sanitize_text_field($options['defaultFromEmailName']) : '';
        }

        if (array_key_exists('locale', $options)) {
            $options['locale'] = is_string($options['locale']) ? sanitize_text_field($options['locale']) : 'en-US';
        }

        if (array_key_exists('dateFormatJs', $options)) {
            $options['dateFormatJs'] = is_string($options['dateFormatJs']) ? sanitize_text_field($options['dateFormatJs']) : '';
        }

        if (array_key_exists('timeFormatJs', $options)) {
            $options['timeFormatJs'] = is_string($options['timeFormatJs']) ? sanitize_text_field($options['timeFormatJs']) : '';
        }

        if (array_key_exists('dateFormat', $options)) {
            $options['dateFormat'] = is_string($options['dateFormat']) ? sanitize_text_field($options['dateFormat']) : '';
        }

        if (array_key_exists('timeFormat', $options)) {
            $options['timeFormat'] = is_string($options['timeFormat']) ? sanitize_text_field($options['timeFormat']) : '';
        }

        if (array_key_exists('rtl', $options)) {
            $options['rtl'] = is_string($options['rtl']) ? sanitize_text_field($options['rtl']) : '';
        }

        if (array_key_exists('recaptchaSiteKey', $options)) {
            $options['recaptchaSiteKey'] = is_string($options['recaptchaSiteKey']) ? sanitize_text_field($options['recaptchaSiteKey']) : '';
        }

        if (array_key_exists('recaptchaSecretKey', $options)) {
            $options['recaptchaSecretKey'] = is_string($options['recaptchaSecretKey']) ? sanitize_text_field($options['recaptchaSecretKey']) : '';
        }

        if (array_key_exists('hcaptchaSiteKey', $options)) {
            $options['hcaptchaSiteKey'] = is_string($options['hcaptchaSiteKey']) ? sanitize_text_field($options['hcaptchaSiteKey']) : '';
        }

        if (array_key_exists('hcaptchaSecretKey', $options)) {
            $options['hcaptchaSecretKey'] = is_string($options['hcaptchaSecretKey']) ? sanitize_text_field($options['hcaptchaSecretKey']) : '';
        }

        if (array_key_exists('turnstileSiteKey', $options)) {
            $options['turnstileSiteKey'] = is_string($options['turnstileSiteKey']) ? sanitize_text_field($options['turnstileSiteKey']) : '';
        }

        if (array_key_exists('turnstileSecretKey', $options)) {
            $options['turnstileSecretKey'] = is_string($options['turnstileSecretKey']) ? sanitize_text_field($options['turnstileSecretKey']) : '';
        }

        if (array_key_exists('customCss', $options)) {
            $options['customCss'] = is_string($options['customCss']) ? wp_strip_all_tags($options['customCss']) : '';
        }

        if (array_key_exists('customCssTablet', $options)) {
            $options['customCssTablet'] = is_string($options['customCssTablet']) ? wp_strip_all_tags($options['customCssTablet']) : '';
        }

        if (array_key_exists('customCssPhone', $options)) {
            $options['customCssPhone'] = is_string($options['customCssPhone']) ? wp_strip_all_tags($options['customCssPhone']) : '';
        }

        if (array_key_exists('customJs', $options)) {
            $options['customJs'] = is_string($options['customJs']) ? $options['customJs'] : '';
        }

        if (array_key_exists('loadScripts', $options)) {
            $options['loadScripts'] = is_string($options['loadScripts']) ? sanitize_text_field($options['loadScripts']) : 'always';
        }

        if (array_key_exists('loadScriptsCustom', $options)) {
            $options['loadScriptsCustom'] = is_array($options['loadScriptsCustom']) ? $options['loadScriptsCustom'] : array();
        }

        if (array_key_exists('disabledStyles', $options)) {
            $options['disabledStyles'] = is_array($options['disabledStyles']) ? $options['disabledStyles'] : array(
                'fontAwesome' => false,
                'select2' => false,
                'qtip' => false,
                'fancybox' => false,
                'fancybox2' => false,
                'fancybox3' => false,
                'magnificPopup' => false
            );
        }

        if (array_key_exists('disabledScripts', $options)) {
            $options['disabledScripts'] = is_array($options['disabledScripts']) ? $options['disabledScripts'] : array(
                'fileUpload' => false,
                'scrollTo' => false,
                'select2' => false,
                'qtip' => false,
                'fancybox' => false,
                'fancybox2' => false,
                'fancybox3' => false,
                'magnificPopup' => false,
                'infieldLabels' => false,
                'datepicker' => false,
                'timepicker' => false
            );
        }

        if (array_key_exists('combineCss', $options)) {
            $options['combineCss'] = is_bool($options['combineCss']) ? $options['combineCss'] : true;
        }

        if (array_key_exists('combineJs', $options)) {
            $options['combineJs'] = is_bool($options['combineJs']) ? $options['combineJs'] : true;
        }

        if (array_key_exists('popupEnabled', $options)) {
            $options['popupEnabled'] = is_bool($options['popupEnabled']) ? $options['popupEnabled'] : false;
        }

        if (array_key_exists('popupScript', $options)) {
            $options['popupScript'] = is_string($options['popupScript']) ? sanitize_text_field($options['popupScript']) : 'fancybox-2';
        }

        if (array_key_exists('rawFix', $options)) {
            $options['rawFix'] = is_bool($options['rawFix']) ? $options['rawFix'] : false;
        }

        if (array_key_exists('scrollOffset', $options)) {
            $options['scrollOffset'] = is_string($options['scrollOffset']) && is_numeric($options['scrollOffset']) ? (string) (float) $options['scrollOffset'] : '50';
        }

        if (array_key_exists('scrollSpeed', $options)) {
            $options['scrollSpeed'] = is_string($options['scrollSpeed']) && is_numeric($options['scrollSpeed']) ? (string) (float) $options['scrollSpeed'] : '800';
        }

        if (array_key_exists('allowAllFileTypes', $options)) {
            $options['allowAllFileTypes'] = is_bool($options['allowAllFileTypes']) ? $options['allowAllFileTypes'] : false;
        }

        if (array_key_exists('showEditLink', $options)) {
            $options['showEditLink'] = is_bool($options['showEditLink']) ? $options['showEditLink'] : true;
        }

        if (array_key_exists('csrfProtection', $options)) {
            $options['csrfProtection'] = is_bool($options['csrfProtection']) ? $options['csrfProtection'] : true;
        }

        if (array_key_exists('supportPageCaching', $options)) {
            $options['supportPageCaching'] = is_bool($options['supportPageCaching']) ? $options['supportPageCaching'] : true;
        }

        if (array_key_exists('toolbarMenu', $options)) {
            $options['toolbarMenu'] = is_bool($options['toolbarMenu']) ? $options['toolbarMenu'] : true;
        }

        if (array_key_exists('dashboardWidget', $options)) {
            $options['dashboardWidget'] = is_bool($options['dashboardWidget']) ? $options['dashboardWidget'] : true;
        }

        if (array_key_exists('insertFormButton', $options)) {
            $options['insertFormButton'] = is_bool($options['insertFormButton']) ? $options['insertFormButton'] : true;
        }

        if (array_key_exists('preventFouc', $options)) {
            $options['preventFouc'] = is_bool($options['preventFouc']) ? $options['preventFouc'] : false;
        }

        if (array_key_exists('secureApiRequests', $options)) {
            $options['secureApiRequests'] = is_bool($options['secureApiRequests']) ? $options['secureApiRequests'] : true;
        }

        if (array_key_exists('saveEntries', $options)) {
            $options['saveEntries'] = is_bool($options['saveEntries']) ? $options['saveEntries'] : true;
        }

        if (array_key_exists('saveIpAddresses', $options)) {
            $options['saveIpAddresses'] = is_bool($options['saveIpAddresses']) ? $options['saveIpAddresses'] : true;
        }

        if (array_key_exists('referralEnabled', $options)) {
            $options['referralEnabled'] = is_bool($options['referralEnabled']) ? $options['referralEnabled'] : false;
        }

        if (array_key_exists('referralText', $options)) {
            $options['referralText'] = is_string($options['referralText']) ? wp_kses_post($options['referralText']) : __('Powered by Quform', 'quform');
        }

        if (array_key_exists('referralLink', $options)) {
            $options['referralLink'] = is_string($options['referralLink']) ? sanitize_text_field($options['referralLink']) : '';
        }

        return $options;
    }

    /**
     * Handle the Ajax request to rebuild the feature cache and custom CSS
     */
    public function rebuildScriptCache()
    {
        if ( ! current_user_can('quform_settings')) {
            wp_send_json(array(
                'type'    => 'error',
                'message' => __('Insufficient permissions', 'quform')
            ));
        }

        if ( ! check_ajax_referer('quform_rebuild_script_cache', false, false)) {
            wp_send_json(array(
                'type'    => 'error',
                'message' => __('Nonce check failed', 'quform')
            ));
        }

        $this->scriptLoader->rebuildScriptCache();

        wp_send_json(array(
            'type'    => 'success'
        ));
    }

    /**
     * Handle the request to enable the popup script
     */
    public function enablePopup()
    {
        $this->options->set('popupEnabled', true);
        $this->scriptLoader->rebuildScriptCache();
        exit;
    }

    /**
     * Handle the request to search posts via Ajax
     */
    public function searchPosts()
    {
        $this->validateSearchPostsRequest();

        $search = sanitize_text_field(wp_unslash($_GET['search']));
        $results = array();

        foreach (Quform::searchPosts($search) as $post) {
            $results[] = array('id' => $post->ID, 'text' => $post->post_title);
        }

        wp_send_json(array(
            'type' => 'success',
            'results' => $results
        ));
    }

    /**
     * Validate the request to search posts via Ajax
     */
    protected function validateSearchPostsRequest()
    {
        if ( ! Quform::isGetRequest() || ! isset($_GET['search']) || ! is_string($_GET['search'])) {
            wp_send_json(array(
                'type'    => 'error',
                'message' => __('Bad request', 'quform')
            ));
        }

        if ( ! current_user_can('quform_settings')) {
            wp_send_json(array(
                'type'    => 'error',
                'message' => __('Insufficient permissions', 'quform')
            ));
        }

        if ( ! check_ajax_referer('quform_settings_search_posts', false, false)) {
            wp_send_json(array(
                'type'    => 'error',
                'message' => __('Nonce check failed', 'quform')
            ));
        }
    }
}
© 2025 XylotrechusZ