ColumnInstantiate.php 780 Bytes
<?php

namespace ACA\MetaBox\Service;

use AC;
use ACA\MetaBox\Column;
use ACA\MetaBox\RelationshipRepository;

final class ColumnInstantiate implements AC\Registerable {

	/**
	 * @var RelationshipRepository
	 */
	private $relationship_repository;

	public function __construct( RelationshipRepository $relationship_repository ) {
		$this->relationship_repository = $relationship_repository;
	}

	public function register() {
		add_action( 'ac/list_screen/column_created', [ $this, 'configure_column' ], 10 );
	}

	public function configure_column( AC\Column $column ) {
		if ( $column instanceof Column\Relation ) {
			$relationship = $this->relationship_repository->get_by_column( $column );

			if ( $relationship ) {
				$column->set_relation( $relationship );
			}
		}
	}

}