LLMS_Admin_Tool_Install_Forms

Admin tool to reinstall / revert user information forms to their default states


Source Source

File: includes/admin/tools/class-llms-admin-tool-install-forms.php

class LLMS_Admin_Tool_Install_Forms extends LLMS_Abstract_Admin_Tool {

	/**
	 * Tool ID.
	 *
	 * @var string
	 */
	protected $id = 'install-forms';

	/**
	 * Retrieve a description of the tool
	 *
	 * This is displayed on the right side of the tool's list before the button.
	 *
	 * @since 5.0.0
	 *
	 * @return string
	 */
	protected function get_description() {
		return __( 'Restores LifterLMS user information forms and reusable field blocks to their default versions. Caution: any existing form and field customizations will be lost!', 'lifterlms' );
	}

	/**
	 * Retrieve the tool's label
	 *
	 * The label is the tool's title. It's displayed in the left column on the tool's list.
	 *
	 * @since 5.0.0
	 *
	 * @return string
	 */
	protected function get_label() {
		return __( 'Reinstall User Forms', 'lifterlms' );
	}

	/**
	 * Retrieve the tool's button text
	 *
	 * @since 5.0.0
	 *
	 * @return string
	 */
	protected function get_text() {
		return __( 'Reinstall Forms', 'lifterlms' );
	}

	/**
	 * Retrieves a list of core reusable blocks ordered by their field ID.
	 *
	 * @since 5.0.0
	 *
	 * @return int[] List of the WP_Post IDs.
	 */
	public function get_reusable_blocks() {

		$query = new WP_Query(
			array(
				'posts_per_page' => -1,
				'no_found_rows'  => true,
				'post_type'      => 'wp_block',
				'meta_key'       => '_llms_field_id',
				'meta_compare'   => 'EXISTS',
				'orderby'        => 'meta_value',
			)
		);

		return wp_list_pluck( $query->posts, 'ID' );

	}

	/**
	 * Process the tool.
	 *
	 * Deletes all core reusable blocks and then recreates the core forms,
	 * which additionally recreates the core reusable blocks.
	 *
	 * @since 5.0.0
	 *
	 * @return boolean
	 */
	protected function handle() {

		// Retrieve original reusable blocks.
		$original_blocks = $this->get_reusable_blocks();

		// Delete them all.
		foreach ( $original_blocks as $id ) {
			wp_delete_post( $id, true );
		}

		// Recreate the forms (and the blocks).
		LLMS_Forms::instance()->install( true );

		return true;

	}

}


Top ↑

Methods Methods


Top ↑

Changelog Changelog

Changelog
Version Description
5.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

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