LLMS_Post_Model::export()

Trigger an export download of the given post type


Return Return

(void)


Top ↑

Source Source

File: includes/abstracts/abstract.llms.post.model.php

	public function export() {
		// If post type doesn't support exporting don't proceed.
		if ( ! $this->is_exportable() ) {
			return;
		}

		$title = str_replace( ' ', '-', $this->get( 'title' ) );
		$title = preg_replace( '/[^a-zA-Z0-9-]/', '', $title );

		/**
		 * Filters the export file name
		 *
		 * @since Unknown
		 *
		 * @param string          $title     The exported file name. Doesn't include the extension.
		 * @param LLMS_Post_Model $llms_post The LLMS_Post_Model instance.
		 */
		$filename = apply_filters( 'llms_post_model_export_filename', $title . '_' . current_time( 'Ymd' ), $this );

		header( 'Content-type: application/json' );
		header( 'Content-Disposition: attachment; filename="' . $filename . '.json"' );
		header( 'Pragma: no-cache' );
		header( 'Expires: 0' );

		$this->allowed_post_tags_set();

		add_filter( 'llms_post_model_to_array_add_extras', '__return_true', 99 );
		$arr = $this->toArray();
		remove_filter( 'llms_post_model_to_array_add_extras', '__return_true', 99 );

		$arr['_generator'] = 'LifterLMS/Single' . ucwords( $this->model_post_type ) . 'Exporter';
		$arr['_source']    = get_site_url();
		$arr['_version']   = llms()->version;

		ksort( $arr );

		echo json_encode( $arr );

		$this->allowed_post_tags_unset();

		die();

	}

Top ↑

Changelog Changelog

Changelog
Version Description
4.8.0 Made sure extra data are added to the posts model array representation during export.
3.3.0
3.19.2 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.