Columns.php
744 Bytes
<?php
namespace ACA\WC\Service;
use AC\ListScreen;
use AC\Registerable;
class Columns implements Registerable
{
private $config;
private $list_screen_key;
public function __construct(string $list_screen_key, array $config)
{
$this->list_screen_key = $list_screen_key;
$this->config = $config;
}
public function register(): void
{
add_action('ac/column_types', [$this, 'register_columns']);
}
public function register_columns(ListScreen $list_screen): void
{
if ($this->list_screen_key === $list_screen->get_key()) {
foreach ($this->config as $column) {
$list_screen->register_column_type(new $column());
}
}
}
}