* @license GPL-3.0
* @copyright Barn2 Media Ltd
*/
class Admin_Controller implements Registerable, Service {
private $plugin;
private $settings_page;
public function __construct( Plugin $plugin ) {
$this->plugin = $plugin;
$this->settings_page = new Settings_Page( $plugin );
}
public function register() {
// Extra links on Plugins page
add_filter( 'plugin_action_links_' . $this->plugin->get_basename(), [ $this, 'add_settings_link' ] );
add_filter( 'plugin_row_meta', [ $this, 'add_pro_version_link' ], 10, 2 );
// Admin scripts
add_action( 'admin_enqueue_scripts', [ $this, 'settings_page_scripts' ] );
$this->settings_page->register();
}
public function add_settings_link( $links ) {
array_unshift(
$links,
sprintf(
'%2$s',
esc_url( $this->plugin->get_settings_page_url() ),
esc_html__( 'Settings', 'posts-data-table' )
)
);
return $links;
}
public function add_pro_version_link( $links, $file ) {
if ( $file === $this->plugin->get_basename() ) {
$links[] = sprintf(
'%2$s',
esc_url( 'https://barn2.com/wordpress-plugins/posts-table-pro/?utm_source=settings&utm_medium=settings&utm_campaign=settingsinline&utm_content=ptss-ptp' ),
esc_html__( 'Pro Version', 'posts-data-table' )
);
}
return $links;
}
public function settings_page_scripts( $hook ) {
if ( 'settings_page_posts_table_search_sort' === $hook ) {
$suffix = Util::get_script_suffix();
wp_enqueue_style( 'ptss-admin', plugins_url( "assets/css/admin/posts-data-table-admin{$suffix}.css", $this->plugin->get_file() ), [], $this->plugin->get_version() );
}
}
}