columns = [ self::COLUMN_MAIL_ID => __( 'ID', 'wp-mail-logging' ), self::COLUMN_TIMESTAMP => __( 'Time', 'wp-mail-logging' ), self::COLUMN_HOST => __( 'Host', 'wp-mail-logging' ), self::COLUMN_RECEIVER => __( 'Receiver', 'wp-mail-logging' ), self::COLUMN_SUBJECT => __( 'Subject', 'wp-mail-logging' ), self::COLUMN_ATTACHMENTS => __( 'Attachments', 'wp-mail-logging' ), self::COLUMN_ERROR => __( 'Error', 'wp-mail-logging' ), ]; } /** * @param $column_name * @return IColumn */ public function getColumnRenderer( $column_name ) { switch ($column_name) { case self::COLUMN_TIMESTAMP: return new TimestampColumn(); case self::COLUMN_ATTACHMENTS: return new AttachmentsColumn(); case self::COLUMN_ERROR: return new ErrorColumn(); case self::COLUMN_SUBJECT: return new SubjectColumn(); default: return new GenericColumn($column_name); } } public function getColumns() { if ( empty( $this->columns ) ) { $this->setupColumns(); } return $this->columns; } public function getColumnNames() { return array_keys($this->columns); } public function getTranslationForColumn($column_name) { return $this->getColumns()[$column_name]; } }