*/ class Amp_WP_Notice_Bar { /** * Initialize the class and set its properties. * * @since 1.4.0 */ public function __construct() { // Filter -> Add Notice Bar Settings Tab add_filter('amp_wp_settings_tab_menus', array($this, 'amp_wp_add_notice_bar_tab') ); // Action -> Display Notice Bar Settings add_action('amp_wp_settings_tab_section', array($this, 'amp_wp_add_notice_bar_settings') ); // Action -> Save Notice Bar Settings add_action('amp_wp_save_setting_sections', array($this, 'amp_wp_save_notice_bar_settings') ); } /** * Add Notice Bar Settings Tab * * @since 1.4.0 * * @param array $tabs Settings Tab * @return array $tabs Merge array of Settings Tab with Notice Bar & GDPR Tab. */ public function amp_wp_add_notice_bar_tab($tabs) { $tabs['notice-bar'] = __('Notice Bar', 'amp-wp'); return $tabs; } /** * Display Notice Bar Settings * * This function is used to display stored Notice Bar settings. * * @since 1.4.0 */ public function amp_wp_add_notice_bar_settings() { // Get Notice Bar Values $noticebar_switch = ''; $noticebar_consent = ''; $noticebar_accept_button_text = ''; if( get_option('amp_wp_noticebar_settings') ) { $amp_wp_noticebar_settings = get_option('amp_wp_noticebar_settings'); $noticebar_switch = ( isset( $amp_wp_noticebar_settings['noticebar_switch'] ) && !empty( $amp_wp_noticebar_settings['noticebar_switch'] ) ) ? $amp_wp_noticebar_settings['noticebar_switch'] : ''; $noticebar_consent = ( isset( $amp_wp_noticebar_settings['consent'] ) && !empty( $amp_wp_noticebar_settings['consent'] ) ) ? $amp_wp_noticebar_settings['consent'] : ''; $noticebar_accept_button_text = ( isset( $amp_wp_noticebar_settings['accept_button_text'] ) && !empty( $amp_wp_noticebar_settings['accept_button_text'] ) ) ? $amp_wp_noticebar_settings['accept_button_text'] : array(); } // Load View require_once AMP_WP_DIR_PATH . 'admin/partials/settings/amp-wp-admin-notice-bar.php'; } /** * Save Notice Bar Settings * * @since 1.4.0 */ public function amp_wp_save_notice_bar_settings() { $amp_wp_noticebar_settings = filter_input_array( INPUT_POST ); if( $amp_wp_noticebar_settings ) : foreach( $amp_wp_noticebar_settings as $key => $value ) { if( strstr( $key, 'noticebar_settings' ) ) { if( isset( $value['noticebar_switch'] ) ) { $value['noticebar_switch'] = 1; } update_option( sanitize_key( $key ), $value ); } } endif; remove_theme_mod( 'amp-wp-notifications' ); remove_theme_mod( 'amp-wp-notifications-text' ); remove_theme_mod( 'amp-wp-notifications-accept-button-text' ); } } new Amp_WP_Notice_Bar();