HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/zaklada/wp-content/plugins/coming-soon/app/render-csp-mm.php
<?php
/**
 * Render Pages
 */


class seedprod_lite_Render
{

    /**
     * Instance of this class.
     *
     * @since    1.0.0
     *
     * @var      object
     */
    protected static $instance = null;
    private $path = null;

    public function __construct()
    {

        // exit if preview
        if (!empty($_GET['post_type']) && !empty($_GET['preview']) && $_GET['post_type'] == 'seedprod' && $_GET['preview'] =='true') {
            return false;
        }
      
        if (!seedprod_lite_cu('none')) {
            $ts = get_option('seedprod_settings');
            if (!empty($ts)) {
                $seedprod_settings = json_decode($ts, true);
                if (!empty($seedprod_settings)) {
                    extract($seedprod_settings);
                }
            } else {
                return false;
            }


            // Actions & Filters if the landing page is active or being previewed
            if (!empty($seedprod_settings['enable_coming_soon_mode']) || !empty($seedprod_settings['enable_maintenance_mode'])) {
                if (function_exists('bp_is_active')) {
                    add_action('template_redirect', array(&$this,'render_comingsoon_page'), 9);
                } else {
                    $priority = 10;
                    if (function_exists('tve_frontend_enqueue_scripts')) {
                        $priority = 8;
                    }
                    // FreshFramework
                    if (class_exists('ffFrameworkVersionManager')) {
                        $priority = 1;
                    }
                    // Seoframwork
                    if (function_exists('the_seo_framework_pre_load')) {
                        $priority = 1;
                    }
                    // jetpack subscribe
                    if (isset($_REQUEST['jetpack_subscriptions_widget'])) {
                        $priority = 11;
                    }
                    
                    // show legacy versions if we need to
                    #TODO Check if coming soon mode or mm mode and import settings
                    $seedprod_show_csp4 = get_option('seedprod_show_csp4');
                    $seedprod_show_cspv5 = get_option('seedprod_show_cspv5');
                    if($seedprod_show_cspv5){
                        require_once(SEEDPROD_PLUGIN_PATH.'app/backwards/cspv5-functions.php');
                        add_action('template_redirect', 'seedprod_lite_cspv5_render_comingsoon_page', $priority);
                    }elseif($seedprod_show_csp4){
                        require_once(SEEDPROD_PLUGIN_PATH.'app/backwards/csp4-functions.php');
                        add_action('template_redirect', 'seedprod_lite_csp4_render_comingsoon_page', $priority);
                    }else{
                        add_action('template_redirect', array(&$this,'render_comingsoon_page'), $priority);
                    }

                    add_action('admin_bar_menu', 'seedprod_lite_admin_bar_menu', 999);
                }
                add_action('init', array( &$this, 'remove_ngg_print_scripts' ));
            }
        }

        // enable /disable coming soon/maintenanace mode
        add_action('init', array(&$this,'csp_mm_api'));
    }

    /**
     * Return an instance of this class.
     */
    public static function get_instance()
    {

        // If the single instance hasn't been set, set it now.
        if (null == self::$instance) {
            self::$instance = new self;
        }

        return self::$instance;
    }

    public function remove_ngg_print_scripts()
    {
        if (class_exists('C_Photocrati_Resource_Manager')) {
            remove_all_actions('wp_print_footer_scripts', 1);
        }
    }




    /**
     *  coming soon mode/maintence mode api
     *   mode 0 /disable 1/ coming soon mode 2/maintenance mode
     *  curl http://wordpress.dev/?seed_cspv5_token=4b51fd72-69b7-4796-8d24-f3499c2ec44b&seed_cspv5_mode=1
     */
    public function csp_mm_api()
    {
        $seedprod_api_key= '';
        if (defined('SEEDPROD_API_KEY')) {
            $seedprod_api_key = SEEDPROD_API_KEY;
        }
        if (empty($seedprod_api_key)) {
            $seedprod_api_key = get_option('seedprod_api_key');
        }
        if (!empty($seedprod_api_key)) {
            if (isset($_REQUEST['seedprod_token']) && $_REQUEST['seedprod_token'] == $seedprod_api_key) {
                if (isset($_REQUEST['seedprod_mode'])) {
                    $mode = $_REQUEST['seedprod_mode'];
                    $ts = get_option('seedprod_settings');
                    $seedprod_settings = json_decode($ts, true);


                    if (!empty($seedprod_settings)) {
                        if ($mode == 0) {
                      
                            echo '0';
                            $seedprod_settings['enable_coming_soon_mode'] = false;
                            $seedprod_settings['enable_maintenance_mode'] = false;
                       
                        } elseif ($mode == 1) {
                        
                            echo '1';
                            $seedprod_settings['enable_coming_soon_mode'] = true;
                            $seedprod_settings['enable_maintenance_mode'] = false;
                        
                        } elseif ($mode == 2) {
                          
                            echo '2';
                            $seedprod_settings['enable_coming_soon_mode'] = false;
                            $seedprod_settings['enable_maintenance_mode'] = true;
                      
                        }

                        update_option('seedprod_settings', json_encode($seedprod_settings));
                        exit();
                    }
                }
            }
        }
    }



      


    /**
     * Display the coming soon/ maintenance mode page
     */
    public function render_comingsoon_page()
    {

        // Top Level Settings
        $ts = get_option('seedprod_settings');
        $seedprod_settings = json_decode($ts);
        
        // Page Info
        $page_id = 0;

        //Get Coming Soon Page Id
        if (!empty($seedprod_settings->enable_coming_soon_mode)) {
            $page_id = get_option('seedprod_coming_soon_page_id');
        } elseif (!empty($seedprod_settings->enable_maintenance_mode)) {
            $page_id = get_option('seedprod_maintenance_mode_page_id');
        }

        if (empty($page_id)) {
            wp_die('Your Coming Soon or Maintenance page needs to be setup.');
        }
            

        // Get Page
        global $wpdb;
        $tablename = $wpdb->prefix . 'posts';
        $sql = "SELECT * FROM $tablename WHERE id= %d";
        $safe_sql = $wpdb->prepare($sql, absint($page_id));
        $page = $wpdb->get_row($safe_sql);

        $settings = json_decode($page->post_content_filtered);

        // redirect mode
        $enable_redirect_mode = false;
        $redirect_url = $settings->redirect_url;
        if(!empty($settings->redirect_mode)){
            $enable_redirect_mode = true;
        }
        if(empty($redirect_url)){
            $enable_redirect_mode = false;
        }


        // Exit if a custom login page
        if (!empty($settings->disable_default_excluded_urls)) {
            if (preg_match("/login|admin|dashboard|account/i", $_SERVER['REQUEST_URI']) > 0) {
                return false;
            }
        }

       
        //Exit if wysija double opt-in
        if (isset($emaillist) &&  $emaillist == 'wysija' && preg_match("/wysija/i", $_SERVER['REQUEST_URI']) > 0) {
            return false;
        }

        if (isset($emaillist) &&  $emaillist == 'mailpoet' && preg_match("/mailpoet/i", $_SERVER['REQUEST_URI']) > 0) {
            return false;
        }

        if (isset($emaillist) &&  $emaillist == 'mymail' && preg_match("/confirm/i", $_SERVER['REQUEST_URI']) > 0) {
            return false;
        }



        //Limit access by role
        if (!empty($settings->access_by_role) && !isset($_COOKIE['wp-seedprod-bypass'])) {
            foreach ($settings->access_by_role as $v) {
                $v = str_replace(' ', '', strtolower($v));
                if ($v == 'anyoneloggedin' && is_user_logged_in()) {
                    return false;
                }
                if (current_user_can($v)) {
                    return false;
                }
            }
        } elseif (is_user_logged_in()) {
            return false;
        }
        

         
        // Finally check if we should show the coming soon page.
        // do not cache this page
        if(!defined('DONOTCACHEPAGE')) {
            define('DONOTCACHEPAGE', true);
        }
        if(!defined('DONOTCDN')) {
            define('DONOTCDN', true);
        }
        if(!defined('DONOTCACHEDB')) {
            define('DONOTCACHEDB', true);
        }
        if(!defined('DONOTMINIFY')) {
            define('DONOTMINIFY', true);
        }
        if(!defined('DONOTCACHEOBJECT')) {
            define('DONOTCACHEOBJECT', true);
        }
        nocache_headers();

        // set headers
        if (!empty($seedprod_settings->enable_maintenance_mode)) {
            if (empty($settings)) {
                echo __("Please create your Maintenance Page in the plugin settings.", "seedprod-coming-soon-pro");
                exit();
            }
            header('HTTP/1.1 503 Service Temporarily Unavailable');
            header('Status: 503 Service Temporarily Unavailable');
            header('Retry-After: 86400'); // retry in a day
        } elseif (!empty($enable_redirect_mode)) {
            if (!empty($redirect_url)) {
                wp_redirect($redirect_url);
                exit;
            } else {
                echo __("Please create enter your redirect url in the plugin settings.", "seedprod-coming-soon-pro");
                exit();
            }
        } else {
            if (empty($settings)) {
                echo __("Please create your Coming Soon Page in the plugin settings.", "seedprod-coming-soon-pro");
                exit();
            }
            header("HTTP/1.1 200 OK");

        }

        if (is_feed()) {
            header('Content-Type: text/html; charset=UTF-8');
        }


       

        // keep for backwards compatability
        $upload_dir = wp_upload_dir();
        if (is_multisite()) {
            $path = $upload_dir['baseurl'].'/seedprod/'.get_current_blog_id().'/template-'.$page_id.'/index.php';
        } else {
            $path = $upload_dir['basedir'].'/seedprod/template-'.$page_id.'/index.php';
        }

        if (!empty($page->html) && 1 == 0) {
            echo $page->html;
        } else {
            if (file_exists($path)) {
                require_once($path);
            } else {
                require_once(SEEDPROD_PLUGIN_PATH.'resources/views/seedprod-preview.php');
            }
        }

        exit();
    }
}