Storage.php 730 Bytes
<?php declare( strict_types=1 );

namespace ACP\ConditionalFormat\Service;

use AC\ListScreen;
use AC\Registerable;
use ACP\ConditionalFormat\RulesRepositoryFactory;

final class Storage implements Registerable {

	/**
	 * @var RulesRepositoryFactory
	 */
	private $rules_repository_factory;

	public function __construct( RulesRepositoryFactory $rules_repository_factory ) {
		$this->rules_repository_factory = $rules_repository_factory;
	}

	public function register(): void {
		add_action( 'acp/list_screen/deleted', [ $this, 'list_screen_deleted' ] );
	}

	public function list_screen_deleted( ListScreen $list_screen ): void {
		$this->rules_repository_factory->create( $list_screen->get_id() )->remove_for_all_users();
	}

}