Automattic\WooCommerce\Internal\ProductDownloads\ApprovedDirectories\Admin

SyncUI::add_tools()publicWC 1.0

Adds Approved Directory list-related entries to the tools page.

Method of the class: SyncUI{}

No Hooks.

Return

Array.

Usage

$SyncUI = new SyncUI();
$SyncUI->add_tools( $tools ): array;
$tools(array) (required)
Admin tool definitions.

SyncUI::add_tools() code WC 8.7.0

public function add_tools( array $tools ): array {
	$sync = wc_get_container()->get( Synchronize::class );

	if ( ! $sync->in_progress() ) {
		// Provide tools to trigger a fresh scan (migration) and to clear the Approved Directories list.
		$tools['approved_directories_sync'] = array(
			'name'             => __( 'Synchronize approved download directories', 'woocommerce' ),
			'desc'             => __( 'Updates the list of Approved Product Download Directories. Note that triggering this tool does not impact whether the Approved Download Directories list is enabled or not.', 'woocommerce' ),
			'button'           => __( 'Update', 'woocommerce' ),
			'callback'         => array( $this, 'trigger_sync' ),
			'requires_refresh' => true,
		);

		$tools['approved_directories_clear'] = array(
			'name'             => __( 'Empty the approved download directories list', 'woocommerce' ),
			'desc'             => __( 'Removes all existing entries from the Approved Product Download Directories list.', 'woocommerce' ),
			'button'           => __( 'Clear', 'woocommerce' ),
			'callback'         => array( $this, 'clear_existing_entries' ),
			'requires_refresh' => true,
		);
	} else {
		// Or if a scan (migration) is already in progress, offer a means of cancelling it.
		$tools['cancel_directories_scan'] = array(
			'name'     => __( 'Cancel synchronization of approved directories', 'woocommerce' ),
			'desc'     => sprintf(
			/* translators: %d is an integer between 0-100 representing the percentage complete of the current scan. */
				__( 'The Approved Product Download Directories list is currently being synchronized with the product catalog (%d%% complete). If you need to, you can cancel it.', 'woocommerce' ),
				$sync->get_progress()
			),
			'button'   => __( 'Cancel', 'woocommerce' ),
			'callback' => array( $this, 'cancel_sync' ),
		);
	}

	return $tools;
}