HEX
Server: Apache
System: Linux gains.arrowcloudlinux.com 4.18.0-553.69.1.lve.el8.x86_64 #1 SMP Wed Aug 13 19:53:59 UTC 2025 x86_64
User: mbkashyap (2642)
PHP: 8.1.33
Disabled: allow_url_include, show_source, symlink, system, passthru, exec, popen, pclose, proc_open, proc_terminate,proc_get_status, proc_close, proc_nice, allow_url_fopen, shell-exec, shell_exec, fpassthru, base64_encodem, escapeshellcmd, escapeshellarg, crack_check,crack_closedict, crack_getlastmessage, crack_opendict, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, dl, escap, phpinfo
Upload Files
File: /home/mbkashyap/public_html/wp-content/plugins/bizmaster-core/admin/Layouts/Ajax.php
<?php
namespace Wowaddons\Admin\Layouts;

use \Wowaddons\Helpers\Utils as Utils;

defined('ABSPATH')||exit;

class Ajax{

    public function __construct(){
        if(!defined('WP_DEBUG') || WP_DEBUG == false){
            error_reporting(0);
        }
        add_action('wp_ajax_wowaddons_get_layouts', [$this, 'get_layouts']);
        if(defined('ELEMENTOR_VERSION') && version_compare( ELEMENTOR_VERSION, '2.2.8', '>' )){
            add_action('elementor/ajax/register_actions', array($this, 'register_ajax_actions'), 20);
        }else{
            add_action('wp_ajax_elementor_get_template_data', array($this, 'get_template_data'), -1);
        }
    }

    public function get_layouts(){
        isset($_GET['tab'])||exit();
        $query = array_merge(
            [
                'action' => 'get_layouts',
                'tab' => (empty($_GET['tab']) ? 'wowaddons_page' : $_GET['tab']),
            ]
        );
        $request_url = WOWADDONS_API_SERVER_URL. '?' .http_build_query($query);

        $response = wp_remote_get(
            $request_url,
            [
                'timeout'=>120,
                'httpversion'=>'1.1'
            ]
        );

        if($response['body'] != ''){
            echo Utils::kses($response['body']);
            exit;
        }
    }
    public function get_layout_data(){
        $actions =! isset($_POST['actions']) ? '' : $_POST['actions'];
        $actions = json_decode(stripslashes($actions), true);
        $template_data = reset($actions);
        $query = array_merge(
            [
                'action' => 'get_layout_data',
                'id' => $template_data['data']['template_id'],
            ]
        );
        $request_url = WOWADDONS_API_SERVER_URL. '?' .http_build_query($query);
        $response = wp_remote_get(
            $request_url,
            [
                'timeout'=>120,
                'httpversion'=>'1.1'
            ]
        );
        $content = json_decode($response['body'], true);
        $content = $this->prepare_layout_ids($content);
        $content = $this->prepare_layout_content($content, 'on_import');
        return $content;
    }
    public function register_ajax_actions($ajax){
        if(!isset($_POST['actions'])){
            return;
        }
        $actions = json_decode(stripslashes($_REQUEST['actions']), true);
        if( !$actions){
            return;
        }
        $data = false;
        foreach($actions as $id => $action_data){
            if(!isset($action_data['get_template_data'])){
                $data = $action_data;
            }
        }

        if( !$data ||
            !isset($data['data']) ||
            !isset($data['data']['source'])){
            return;
        }
        $source=$data['data']['source'];
        if( !in_array($source, WOWADDONS_API_SOURCE)){
            return;
        }
        $ajax->register_ajax_action('get_template_data',function($data){
            return $this->get_layout_data();
        });
    }
    protected function prepare_layout_ids($content){
        return \Elementor\Plugin::$instance->db->iterate_data($content,function($element){
            $element['id']=\Elementor\Utils::generate_random_string();
            return $element;
        });
    }
    protected function prepare_layout_content($content,$method){
        return \Elementor\Plugin::$instance->db->iterate_data($content,function($element_data)use($method){
            $element=\Elementor\Plugin::$instance->elements_manager->create_element_instance($element_data);
            if(!$element){
                return null;
            }
            return $this->prepare_layout_element($element,$method);
        });
    }
    protected function prepare_layout_element($element,$method){
        $element_data = $element->get_data();
        if(method_exists($element,$method)){
            $element_data = $element->{$method}($element_data);
        }

        foreach($element->get_controls()as $control){
            $control_class = \ELementor\Plugin::$instance->controls_manager->get_control($control['type']);
            if(!$control_class){
                return $element_data;
            }
            if(method_exists($control_class, $method)){
                $element_data['settings'][$control['name']] = $control_class->{$method}($element->get_settings($control['name']),$control);
            }
        }
        return $element_data;
    }
}