# elementor/4.3.0-beta3/modules/mcp/abilities/utils/document-mutation-save.php

Elementor Website Builder – more than just a page builder, version 4.3.0-beta3. 39 lines.

- Page: https://pluginprobe.com/plugins/elementor/4.3.0-beta3/code/modules/mcp/abilities/utils/document-mutation-save.php
- Raw: https://pluginprobe.com/plugins/elementor/4.3.0-beta3/raw/modules/mcp/abilities/utils/document-mutation-save.php
- Modified: 2026-09-08T11:16:58+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elementor/4.3.0-beta3/code/modules/mcp/abilities/utils/document-mutation-save.php#L10-L20`.

```php
<?php

namespace Elementor\Modules\Mcp\Abilities\Utils;

use Elementor\Core\Base\Document;
use Elementor\Core\Utils\Document\Document_Mutator;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

class Document_Mutation_Save {

	/**
	 * @return Document|\WP_Error
	 */
	public static function elements_preserving_live_status(
		Document_Mutator $mutator,
		Document $document,
		array $elements
	) {
		$result = $mutator->save_as_draft( $document, $elements, true );

		if ( is_wp_error( $result ) ) {
			return $result;
		}

		if ( ! $result instanceof Document ) {
			return new \WP_Error(
				'elementor_save_failed',
				__( 'Could not save document.', 'elementor' ),
				[ 'status' => \WP_Http::INTERNAL_SERVER_ERROR ]
			);
		}

		return $result;
	}
}

```
