PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.0-dev5
Elementor Website Builder – more than just a page builder v4.0.0-dev5
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / app / modules / import-export-customization / data / routes / import.php

import.php in Elementor Website Builder – more than just a page builder 4.0.0-dev5, at app/modules/import-export-customization/data/routes/import.php

81 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\App\Modules\ImportExportCustomization\Data\Routes;
3
4 use Elementor\App\Modules\ImportExportCustomization\Module as ImportExportCustomizationModule;
5 use Elementor\Plugin;
6 use Elementor\App\Modules\ImportExportCustomization\Data\Response;
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit; // Exit if accessed directly.
10 }
11
12 class Import extends Base_Route {
13
14 protected function get_route(): string {
15 return 'import';
16 }
17
18 protected function get_method(): string {
19 return \WP_REST_Server::CREATABLE;
20 }
21
22 protected function callback( $request ): \WP_REST_Response {
23 /**
24 * @var $module ImportExportCustomizationModule
25 */
26 $module = Plugin::$instance->app->get_component( 'import-export-customization' );
27
28 try {
29 $session = $request->get_param( 'session' );
30
31 if ( empty( $session ) ) {
32 return Response::error( 'missing_session_id', 'Session ID is required.' );
33 }
34
35 $settings = [
36 'include' => $request->get_param( 'include' ),
37 'customization' => $request->get_param( 'customization' ),
38 ];
39
40 $import = $module->import_kit( $session, $settings, true );
41
42 Plugin::$instance->logger->get_logger()->info(
43 sprintf( 'Selected import runners via REST API: %1$s',
44 implode( ', ', $import['runners'] ?? [] )
45 )
46 );
47
48 return Response::success( $import );
49
50 } catch ( \Error |\Exception $e ) {
51 Plugin::$instance->logger->get_logger()->error( $e->getMessage(), [
52 'meta' => [
53 'trace' => $e->getTraceAsString(),
54 ],
55 ] );
56
57 if ( $module->is_third_party_class( $e->getTrace()[0]['class'] ) ) {
58 return Response::error( ImportExportCustomizationModule::THIRD_PARTY_ERROR, $e->getMessage() );
59 }
60
61 return Response::error( $e->getMessage(), 'import_error' );
62 }
63 }
64
65 protected function get_args(): array {
66 return [
67 'session' => [
68 'type' => 'string',
69 'description' => 'Session ID for import operations',
70 'required' => true,
71 ],
72 'settings' => [
73 'type' => 'object',
74 'description' => 'Import settings',
75 'required' => false,
76 'default' => [],
77 ],
78 ];
79 }
80 }
81