Elementor\TemplateLibrary\Source_Base::process_export_import_data PHP Method

process_export_import_data() protected method

protected process_export_import_data ( array $data, string $method ) : mixed
$data array a set of elements
$method string (on_export|on_import)
return mixed
    protected function process_export_import_data($data, $method)
    {
        return Plugin::instance()->db->iterate_data($data, function ($element) use($method) {
            if ('widget' === $element['elType']) {
                $element_class = Plugin::instance()->widgets_manager->get_widget_types($element['widgetType']);
            } else {
                $element_class = Plugin::instance()->elements_manager->get_element_types($element['elType']);
            }
            // If the widget/element isn't exist, like a plugin that creates a widget but deactivated
            if (!$element_class) {
                return $element;
            }
            if (method_exists($element_class, $method)) {
                $element = $element_class->{$method}($element);
            }
            foreach ($element_class->get_controls() as $control) {
                $control_class = Plugin::instance()->controls_manager->get_control($control['type']);
                // If the control isn't exist, like a plugin that creates the control but deactivated
                if (!$control_class) {
                    return $element;
                }
                if (method_exists($control_class, $method)) {
                    $element['settings'][$control['name']] = $control_class->{$method}($element['settings'][$control['name']]);
                }
            }
            return $element;
        });
    }