*/ class Amp_WP_GDPR { /** * Initialize the class and set its properties. * * @since 1.4.0 */ public function __construct() { // Filter -> Add GDPR Settings Tab add_filter('amp_wp_settings_tab_menus', array($this, 'amp_wp_add_gdpr_tab') ); // Action -> Display GDPR Settings add_action('amp_wp_settings_tab_section', array($this, 'amp_wp_add_gdpr_settings') ); // Action -> Save GDPR Settings add_action('amp_wp_save_setting_sections', array($this, 'amp_wp_save_gdpr_settings') ); } /** * Add GDPR 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_gdpr_tab($tabs) { $tabs['gdpr'] = __('GDPR', 'amp-wp'); return $tabs; } /** * Display GDPR Settings * * This function is used to display stored Notice Bar & GDPR settings. * * @since 1.1.0 */ public function amp_wp_add_gdpr_settings() { // Get GDPR Values $gdpr_switch = ''; $gdpr_headline_text = ''; $gdpr_message = ''; $gdpr_accept_button_text = ''; $gdpr_reject_button_text = ''; $gdpr_for_more_privacy_info = ''; $gdpr_privacy_page = 0; $gdpr_privacy_page_button_text = ''; if( get_option('amp_wp_gdpr_settings') ) { $amp_wp_gdpr_settings = get_option('amp_wp_gdpr_settings'); $gdpr_switch = ( isset( $amp_wp_gdpr_settings['gdpr_switch'] ) && !empty( $amp_wp_gdpr_settings['gdpr_switch'] ) ) ? $amp_wp_gdpr_settings['gdpr_switch'] : ''; $gdpr_headline_text = ( isset( $amp_wp_gdpr_settings['headline_text'] ) && !empty( $amp_wp_gdpr_settings['headline_text'] ) ) ? $amp_wp_gdpr_settings['headline_text'] : ''; $gdpr_message = ( isset( $amp_wp_gdpr_settings['gdpr_message'] ) && !empty( $amp_wp_gdpr_settings['gdpr_message'] ) ) ? $amp_wp_gdpr_settings['gdpr_message'] : ''; $gdpr_accept_button_text = ( isset( $amp_wp_gdpr_settings['gdpr_accept_button_text'] ) && !empty( $amp_wp_gdpr_settings['gdpr_accept_button_text'] ) ) ? $amp_wp_gdpr_settings['gdpr_accept_button_text'] : ''; $gdpr_reject_button_text = ( isset( $amp_wp_gdpr_settings['gdpr_reject_button_text'] ) && !empty( $amp_wp_gdpr_settings['gdpr_reject_button_text'] ) ) ? $amp_wp_gdpr_settings['gdpr_reject_button_text'] : ''; $gdpr_for_more_privacy_info = ( isset( $amp_wp_gdpr_settings['gdpr_for_more_privacy_info'] ) && !empty( $amp_wp_gdpr_settings['gdpr_for_more_privacy_info'] ) ) ? $amp_wp_gdpr_settings['gdpr_for_more_privacy_info'] : ''; $gdpr_privacy_page = ( isset( $amp_wp_gdpr_settings['gdpr_privacy_page'] ) && !empty( $amp_wp_gdpr_settings['gdpr_privacy_page'] ) ) ? $amp_wp_gdpr_settings['gdpr_privacy_page'] : 0; $gdpr_privacy_page_button_text = ( isset( $amp_wp_gdpr_settings['gdpr_privacy_page_button_text'] ) && !empty( $amp_wp_gdpr_settings['gdpr_privacy_page_button_text'] ) ) ? $amp_wp_gdpr_settings['gdpr_privacy_page_button_text'] : ''; } // Set Arguments for Dropdown Pages $args = array( 'depth' => 0, 'child_of' => 0, 'selected' => $gdpr_privacy_page, 'echo' => 1, 'name' => 'amp_wp_gdpr_settings[gdpr_privacy_page]', 'id' => 'gdpr_privacy_page', // string 'class' => 'amp-wp-select', // string 'show_option_none' => amp_wp_translation_get( 'select-the-privacy-page' ), // string 'show_option_no_change' => null, // string 'option_none_value' => null, // string ); // Load View require_once AMP_WP_DIR_PATH . 'admin/partials/settings/amp-wp-admin-gdpr.php'; } /** * Save GDPR Settings * * @since 1.4.0 */ public function amp_wp_save_gdpr_settings() { $amp_wp_gdpr_settings = filter_input_array( INPUT_POST ); if( $amp_wp_gdpr_settings ) : foreach( $amp_wp_gdpr_settings as $key => $value ) { if( strstr( $key, 'gdpr_settings' ) ) { if( isset( $value['gdpr_switch'] ) ) { $value['gdpr_switch'] = 1; } update_option( sanitize_key( $key ), $value ); } } endif; remove_theme_mod( 'amp-wp-gdpr-compliance' ); remove_theme_mod( 'amp-wp-gdpr-compliance-headline-text' ); remove_theme_mod( 'amp-wp-gdpr-compliance-textarea' ); remove_theme_mod( 'amp-wp-gdpr-compliance-accept-button-text' ); remove_theme_mod( 'amp-wp-gdpr-compliance-reject-button-text' ); remove_theme_mod( 'amp-wp-gdpr-compliance-settings-text' ); remove_theme_mod( 'amp-wp-gdpr-compliance-for-more-privacy-info' ); remove_theme_mod( 'amp-wp-gdpr-compliance-select-privacy-page' ); remove_theme_mod( 'amp-wp-gdpr-compliance-privacy-page-button-text' ); } } new Amp_WP_GDPR();