Server IP : 192.64.112.168 / Your IP : 18.219.110.54 Web Server : Apache System : Linux nc-ph-2300-85.bluforrest.com 4.18.0-513.9.1.el8_9.x86_64 #1 SMP Sat Dec 2 05:23:44 EST 2023 x86_64 User : expressoneac ( 1128) PHP Version : 8.0.30 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/expressoneac/www/wp-content/themes/woodmart/inc/modules/layouts/admin/ |
Upload File : |
<?php /** * Import class file. * * @package Woodmart */ namespace XTS\Modules\Layouts; use Elementor\Plugin; use WOODMART_Vctemplates; use XTS\Elementor\Elementor; use XTS\Elementor\XTS_Library_Source; /** * Import class. */ class Import { /** * Post ID. */ private $post_id; /** * Layout type. */ private $layout_type; /** * Predefined name. */ private $predefined_name; /** * Current page builder. */ private $current_builder; /** * Construct. */ public function __construct( $post_id, $layout_type, $predefined_name ) { $this->post_id = $post_id; $this->layout_type = $layout_type; $this->predefined_name = $predefined_name; $this->current_builder = woodmart_get_current_page_builder(); if ( 'wpb' === $this->current_builder ) { $this->run_wpb(); } else { $this->run_elementor(); } } /** * Run Elementor import. */ private function run_elementor() { Elementor::get_instance()->files_include(); $elementor_library = new XTS_Library_Source(); add_filter( 'elementor/files/allow_unfiltered_upload', '__return_true' ); $data = json_decode( $this->get_data(), true ); $data = $elementor_library->replace_elements_ids_public( $data ); $data = $elementor_library->process_export_import_content_public( $data, 'on_import' ); $document = Plugin::$instance->documents->get( $this->post_id ); if ( $document ) { $data = $document->get_elements_raw_data( $data, true ); } update_post_meta( $this->post_id, '_elementor_data', wp_slash( wp_json_encode( $data ) ) ); update_post_meta( $this->post_id, '_elementor_edit_mode', 'builder' ); update_post_meta( $this->post_id, '_elementor_template_layout_type', 'wp-post' ); update_post_meta( $this->post_id, '_elementor_version', '3.5.5' ); } /** * Run WPB import. */ private function run_wpb() { $vc_templates = new WOODMART_Vctemplates(); $data = json_decode( $this->get_data(), true ); $config = json_decode( $this->get_config(), true ); $new_data = $vc_templates->get_content( $data[0], $config ); wp_update_post( [ 'ID' => $this->post_id, 'post_content' => $new_data, ] ); } /** * Get images config. */ public function get_config() { ob_start(); $path = WOODMART_THEMEROOT . '/inc/modules/layouts/admin/predefined/' . $this->layout_type . '/' . $this->predefined_name . '/' . $this->current_builder . '/config.json'; if ( file_exists( $path ) ) { include_once $path; } return ob_get_clean(); } /** * Get layout data. */ public function get_data() { ob_start(); include_once WOODMART_THEMEROOT . '/inc/modules/layouts/admin/predefined/' . $this->layout_type . '/' . $this->predefined_name . '/' . $this->current_builder . '/data.json'; return ob_get_clean(); } }