apwu banners
class Apwu_Banners_Admin {
public function __construct() {
add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
add_action( 'admin_init', array( $this, 'init_settings' ) );
}
public function add_admin_menu() {
add_menu_page(
esc_html__( 'APWU Banners', 'apwu-banners' ),
esc_html__( 'APWU Banners', 'apwu-banners' ),
'manage_options',
'apwu-banners',
array( $this, 'banners_page_layout' ),
'dashicons-slides',
99
);
}
public function init_settings() {
register_setting(
'apwu_banners',
'apwu_banners'
);
add_settings_section(
'apwu_banners_section',
'',
false,
'apwu_banners'
);
add_settings_field(
'banner_headline',
__( 'Main headline', 'apwu-banners' ),
array( $this, 'render_banner_headline_field' ),
'apwu_banners',
'apwu_banners_section'
);
add_settings_field(
'banner_subhead',
__( 'Subhead', 'apwu-banners' ),
array( $this, 'render_banner_subhead_field' ),
'apwu_banners',
'apwu_banners_section'
);
add_settings_field(
'button_one_link',
__( 'Button one link', 'apwu-banners' ),
array( $this, 'render_button_one_link_field' ),
'apwu_banners',
'apwu_banners_section'
);
add_settings_field(
'button_two_link',
__( 'Button two link', 'apwu-banners' ),
array( $this, 'render_button_two_link_field' ),
'apwu_banners',
'apwu_banners_section'
);
add_settings_field(
'banner_image',
__( 'Banner image', 'apwu-banners' ),
array( $this, 'render_banner_image_field' ),
'apwu_banners',
'apwu_banners_section'
);
}
public function banners_page_layout() {
// Check required user capability
if ( !current_user_can( 'manage_options' ) ) {
wp_die( esc_html__( 'You do not have sufficient permissions to access this page.', 'apwu-banners' ) );
}
// Admin Page Layout
echo '<div class="wrap">' . "n";
echo ' <h1>' . get_admin_page_title() . '</h1>' . "n";
echo ' <form action="options.php" method="post">' . "n";
settings_fields( 'apwu_banners' );
do_settings_sections( 'apwu_banners' );
submit_button();
echo ' </form>' . "n";
echo '</div>' . "n";
}
function render_banner_headline_field() {
// Retrieve data from the database.
$options = get_option( 'apwu_banners' );
// Set default value.
$value = isset( $options['banner_headline'] ) ? $options['banner_headline'] : '';
// Field output.
echo '<input type="text" name="apwu_banners[banner_headline]" class="regular-text banner_headline_field" placeholder="' . esc_attr__( 'Enter headline ...', 'apwu-banners' ) . '" value="' . esc_attr( $value ) . '">';
echo '<p class="description">' . __( 'Add main headline text.', 'apwu-banners' ) . '</p>';
}
function render_banner_subhead_field() {
// Retrieve data from the database.
$options = get_option( 'apwu_banners' );
// Set default value.
$value = isset( $options['banner_subhead'] ) ? $options['banner_subhead'] : '';
// Field output.
echo '<input type="text" name="apwu_banners[banner_subhead]" class="regular-text banner_subhead_field" placeholder="' . esc_attr__( 'Enter subhead ...', 'apwu-banners' ) . '" value="' . esc_attr( $value ) . '">';
echo '<p class="description">' . __( 'Enter subhead text.', 'apwu-banners' ) . '</p>';
}
function render_button_one_link_field() {
// Retrieve data from the database.
$options = get_option( 'apwu_banners' );
// Set default value.
$value = isset( $options['button_one_link'] ) ? $options['button_one_link'] : '';
// Field output.
echo '<input type="url" name="apwu_banners[button_one_link]" class="regular-text button_one_link_field" placeholder="' . esc_attr__( '', 'apwu-banners' ) . '" value="' . esc_attr( $value ) . '">';
echo '<p class="description">' . __( 'Enter URL for button one.', 'apwu-banners' ) . '</p>';
}
function render_button_two_link_field() {
// Retrieve data from the database.
$options = get_option( 'apwu_banners' );
// Set default value.
$value = isset( $options['button_two_link'] ) ? $options['button_two_link'] : '';
// Field output.
echo '<input type="url" name="apwu_banners[button_two_link]" class="regular-text button_two_link_field" placeholder="' . esc_attr__( '', 'apwu-banners' ) . '" value="' . esc_attr( $value ) . '">';
echo '<p class="description">' . __( 'Enter URL for button two.', 'apwu-banners' ) . '</p>';
}
function render_banner_image_field() {
// Retrieve data from the database.
$options = get_option( 'apwu_banners' );
// Set default value.
$value = isset( $options['banner_image'] ) ? $options['banner_image'] : '';
// Field output.
echo '<input type="text" name="apwu_banners[banner_image]" class="regular-text banner_image_field" placeholder="' . esc_attr__( '', 'apwu-banners' ) . '" value="' . esc_attr( $value ) . '">';
echo '<p class="description">' . __( 'Select an image.', 'apwu-banners' ) . '</p>';
}
}
new Apwu_Banners_Admin;