updated plugin AudioIgniter
version 2.0.0
This commit is contained in:
@ -0,0 +1,169 @@
|
||||
<?php
|
||||
/**
|
||||
* AudioIgniter_Admin_Page_Upsell class.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
class AudioIgniter_Admin_Page_Upsell {
|
||||
/**
|
||||
* Settings tabs.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $tabs = array();
|
||||
|
||||
/**
|
||||
* Settings page slug.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
protected static $page_slug = 'audioigniter-upsell';
|
||||
|
||||
/**
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function __construct() {
|
||||
add_action( 'admin_menu', array( $this, 'register' ) );
|
||||
|
||||
$this->tabs = array(
|
||||
'general' => array(
|
||||
'title' => _x( 'General', 'settings tab title', 'audioigniter' ),
|
||||
'callback' => array( $this, 'tab_general' ),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the page
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register() {
|
||||
$page_slug = 'edit.php?post_type=' . AudioIgniter()->post_type;
|
||||
add_submenu_page( $page_slug, __( 'AudioIgniter Settings', 'audioigniter' ), __( 'Go Pro!', 'audioigniter' ), 'manage_options', self::$page_slug, array( $this, 'render_page' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders the onboarding page.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function render_page() {
|
||||
$active_tab = isset( $_GET['tab'] ) ? sanitize_key( wp_unslash( $_GET['tab'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification
|
||||
if ( ! array_key_exists( $active_tab, $this->tabs ) ) {
|
||||
reset( $this->tabs );
|
||||
$active_tab = key( $this->tabs );
|
||||
}
|
||||
|
||||
?>
|
||||
<div class="wrap ai-settings-wrap">
|
||||
<h2 class="ai-settings-header-title">
|
||||
<?php esc_html_e( 'AudioIgniter Settings', 'audioigniter' ); ?>
|
||||
</h2>
|
||||
|
||||
<div class="ai-settings-main-wrap">
|
||||
|
||||
<div class="ai-settings-wp-notices">
|
||||
<hr class="wp-header-end">
|
||||
</div>
|
||||
|
||||
<div class="ai-settings-main">
|
||||
<?php $this->generate_tabs( $active_tab ); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the navigation tabs.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function generate_tabs( $active_tab ) {
|
||||
?>
|
||||
<div class="ai-settings-main-content-nav-header ai-settings-box">
|
||||
<div class="ai-settings-main-content-nav">
|
||||
<?php foreach ( $this->tabs as $tab => $tab_info ) : ?>
|
||||
<?php if ( empty( $tab_info['title'] ) ) {
|
||||
continue;
|
||||
} ?>
|
||||
<a href="<?php echo esc_url( $this->get_tab_url( $tab ) ); ?>" class="ai-settings-main-content-nav-link <?php echo esc_attr( $active_tab === $tab ? 'is-active' : '' ); ?>"><?php echo esc_html( $tab_info['title'] ); ?></a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ai-settings-main-content tab-content-<?php echo esc_attr( $active_tab ); ?>">
|
||||
<?php if ( is_callable( $this->tabs[ $active_tab ]['callback'] ) ) {
|
||||
call_user_func( $this->tabs[ $active_tab ]['callback'], $active_tab );
|
||||
} ?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function tab_general( $active_tab ) {
|
||||
$stats_enabled = false;
|
||||
|
||||
?>
|
||||
<form method="post" action="options.php">
|
||||
|
||||
<div style="border:1px solid black; padding: 50px 15px; background-color: white;">
|
||||
TODO: Leave disabled option below and write some upsell stuff. Maybe add images. Or replace everything with upsell info.
|
||||
</div>
|
||||
|
||||
<table class="form-table">
|
||||
<tr>
|
||||
<th scope="row"><label for="audioigniter_stats_enabled"><?php esc_html_e( 'Analytics', 'audioigniter' ); ?></label></th>
|
||||
<td>
|
||||
<label for="audioigniter_stats_enabled">
|
||||
<input disabled type="checkbox" id="upsell_stats_enabled" name="upsell_stats_enabled" value="1">
|
||||
<?php esc_html_e( 'Enable analytics', 'audioigniter' ); ?>
|
||||
</label>
|
||||
<p class="description" id="tagline-description">
|
||||
<?php esc_html_e( 'When disabled, no new events will be logged and processed into the database.', 'audioigniter' ); ?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<?php submit_button(); ?>
|
||||
|
||||
</form>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the setting page's URL.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function get_page_url() {
|
||||
return add_query_arg( array(
|
||||
'post_type' => 'ai_playlist',
|
||||
'page' => self::$page_slug,
|
||||
), admin_url( 'edit.php' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the URL of a specific tab.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function get_tab_url( $tab ) {
|
||||
return add_query_arg( array(
|
||||
'tab' => $tab,
|
||||
), $this->get_page_url() );
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user