LLMS_Admin_Post_Table_Certificates
Customize display of the certificate post tables.
Contents
Source Source
File: includes/admin/post-types/post-tables/class-llms-admin-post-table-certificates.php
class LLMS_Admin_Post_Table_Certificates {
use LLMS_Trait_Award_Templates_Post_List_Table;
use LLMS_Trait_User_Engagement_Type;
/**
* Query string variable used to identify the migration action.
*
* @var string
*/
const MIGRATE_ACTION = 'llms-migrate-legacy-certificate';
/**
* Constructor
*
* @since 6.0.0
*
* @return void
*/
public function __construct() {
$this->engagement_type = 'certificate';
$this->award_template_row_actions(); // defined in LLMS_Trait_Award_Templates_Post_List_Table.
if ( ! llms_is_block_editor_supported_for_certificates() ) {
return;
}
$post_types = array( 'llms_certificate', 'llms_my_certificate' );
if ( in_array( llms_filter_input( INPUT_GET, 'post_type' ), $post_types, true ) ) {
add_filter( 'display_post_states', array( $this, 'add_states' ), 20, 2 );
add_filter( 'post_row_actions', array( $this, 'add_actions' ), 20, 2 );
}
if ( 1 === (int) llms_filter_input( INPUT_GET, self::MIGRATE_ACTION, FILTER_SANITIZE_NUMBER_INT ) ) {
add_filter( 'llms_certificate_template_version', array( $this, 'upgrade_template' ), 10 );
}
add_filter( 'manage_llms_my_certificate_posts_columns', array( $this, 'mod_cols' ), 10, 1 );
}
/**
* Add post row actions.
*
* @since 6.0.0
*
* @param array $actions Array of post row actions.
* @param WP_Post $post Post object for the row.
* @return array
*/
public function add_actions( $actions, $post ) {
$cert = llms_get_certificate( $post, true );
if ( 1 === $cert->get_template_version() ) {
$url = esc_url( add_query_arg( self::MIGRATE_ACTION, 1, get_edit_post_link( $post ) ) );
$actions[ self::MIGRATE_ACTION ] = '<a href="' . $url . '">' . __( 'Migrate legacy certificate', 'lifterlms' ) . '</a>';
}
return $actions;
}
/**
* Add state information denoting the usage of the legacy template.
*
* @since 6.0.0
* @since 6.2.0 Made sure to only process certificates.
*
* @param string[] $states Array of post states.
* @param WP_Post $post Post object.
* @return string[]
*/
public function add_states( $states, $post ) {
$cert = llms_get_certificate( $post, true );
if ( $cert && 1 === $cert->get_template_version() ) {
$states['llms-legacy-template'] = __( 'Legacy', 'lifterlms' );
}
return $states;
}
/**
* Modify the columns list for the `llms_my_certificate` post type.
*
* @since 6.0.0
*
* @param array $cols Array of columns.
* @return array
*/
public function mod_cols( $cols ) {
unset( $cols['author'] );
return $cols;
}
/**
* Callback function for `llms_certificate_template_version` forcing an upgrade to version 2.
*
* @since 6.0.0
*
* @param integer $version Current template version.
* @return integer
*/
public function upgrade_template( $version ) {
return 2;
}
}
Expand full source code Collapse full source code View on GitHub
Methods Methods
- __construct — Constructor
- add_actions — Add post row actions.
- add_states — Add state information denoting the usage of the legacy template.
- mod_cols — Modify the columns list for the `llms_my_certificate` post type.
- upgrade_template — Callback function for `llms_certificate_template_version` forcing an upgrade to version 2.
Changelog Changelog
| Version | Description |
|---|---|
| 6.0.0 | Introduced. |