/** * Save settings * * @since 2.0.0 */ public function save_plugin_settings() { if (!empty($_POST) && !empty($_POST['tab'])) { if (!wp_verify_nonce($_POST['_wpnonce'], 'tab-' . $_POST['tab'])) { die(__('Security check.', $this->plugin_slug)); } // DO SOME SANITIZATIONS $tab = $_POST['tab']; switch ($tab) { case 'general': $_POST['options']['general']['status'] = (int) $_POST['options']['general']['status']; if (!empty($_POST['options']['general']['status']) && $_POST['options']['general']['status'] == 1) { $_POST['options']['general']['status_date'] = date('Y-m-d H:i:s'); } $_POST['options']['general']['bypass_bots'] = (int) $_POST['options']['general']['bypass_bots']; $_POST['options']['general']['backend_role'] = !empty($_POST['options']['general']['backend_role']) ? $_POST['options']['general']['backend_role'] : array(); $_POST['options']['general']['frontend_role'] = !empty($_POST['options']['general']['frontend_role']) ? $_POST['options']['general']['frontend_role'] : array(); $_POST['options']['general']['meta_robots'] = (int) $_POST['options']['general']['meta_robots']; $_POST['options']['general']['redirection'] = esc_url($_POST['options']['general']['redirection']); if (!empty($_POST['options']['general']['exclude'])) { $exclude_array = explode("\n", $_POST['options']['general']['exclude']); // we need to be sure that empty lines will not be saved $_POST['options']['general']['exclude'] = array_filter(array_map('trim', $exclude_array)); } else { $_POST['options']['general']['exclude'] = array(); } $_POST['options']['general']['notice'] = (int) $_POST['options']['general']['notice']; $_POST['options']['general']['admin_link'] = (int) $_POST['options']['general']['admin_link']; // delete cache when is already activated, when is activated and when is deactivated if (isset($this->plugin_settings['general']['status']) && isset($_POST['options']['general']['status']) && ($this->plugin_settings['general']['status'] == 1 && in_array($_POST['options']['general']['status'], array(0, 1)) || $this->plugin_settings['general']['status'] == 0 && $_POST['options']['general']['status'] == 1)) { $this->delete_cache(); } break; case 'design': $custom_css = array(); // CONTENT & CUSTOM CSS $_POST['options']['design']['title'] = sanitize_text_field($_POST['options']['design']['title']); $_POST['options']['design']['heading'] = sanitize_text_field($_POST['options']['design']['heading']); if (!empty($_POST['options']['design']['heading_color'])) { $_POST['options']['design']['heading_color'] = sanitize_text_field($_POST['options']['design']['heading_color']); $custom_css['heading_color'] = '.wrap h1 { color: ' . $_POST['options']['design']['heading_color'] . '; }'; } add_filter('safe_style_css', array($this, 'add_safe_style_css')); // add before we save $_POST['options']['design']['text'] = wp_kses_post($_POST['options']['design']['text']); remove_filter('safe_style_css', array($this, 'add_safe_style_css')); // remove after we save if (!empty($_POST['options']['design']['text_color'])) { $_POST['options']['design']['text_color'] = sanitize_text_field($_POST['options']['design']['text_color']); $custom_css['text_color'] = '.wrap h2 { color: ' . $_POST['options']['design']['text_color'] . '; }'; } // BACKGROUND & CUSTOM CSS if (!empty($_POST['options']['design']['bg_type'])) { $_POST['options']['design']['bg_type'] = sanitize_text_field($_POST['options']['design']['bg_type']); if ($_POST['options']['design']['bg_type'] == 'color' && !empty($_POST['options']['design']['bg_color'])) { $_POST['options']['design']['bg_color'] = sanitize_text_field($_POST['options']['design']['bg_color']); $custom_css['bg_color'] = 'body { background-color: ' . $_POST['options']['design']['bg_color'] . '; }'; } if ($_POST['options']['design']['bg_type'] == 'custom' && !empty($_POST['options']['design']['bg_custom'])) { $_POST['options']['design']['bg_custom'] = esc_url($_POST['options']['design']['bg_custom']); $custom_css['bg_url'] = '.background { background: url(' . $_POST['options']['design']['bg_custom'] . ') no-repeat center top fixed; background-size: cover; }'; } if ($_POST['options']['design']['bg_type'] == 'predefined' && !empty($_POST['options']['design']['bg_predefined'])) { $_POST['options']['design']['bg_predefined'] = sanitize_text_field($_POST['options']['design']['bg_predefined']); $custom_css['bg_url'] = '.background { background: url(' . esc_url(WPMM_URL . 'assets/images/backgrounds/' . $_POST['options']['design']['bg_predefined']) . ') no-repeat center top fixed; background-size: cover; }'; } } $_POST['options']['design']['custom_css'] = $custom_css; // delete cache when is activated if (!empty($this->plugin_settings['general']['status']) && $this->plugin_settings['general']['status'] == 1) { $this->delete_cache(); } break; case 'modules': $custom_css = array(); // COUNTDOWN & CUSTOM CSS $_POST['options']['modules']['countdown_status'] = (int) $_POST['options']['modules']['countdown_status']; $_POST['options']['modules']['countdown_start'] = sanitize_text_field($_POST['options']['modules']['countdown_start']); $_POST['options']['modules']['countdown_details'] = array_map('trim', $_POST['options']['modules']['countdown_details']); $_POST['options']['modules']['countdown_details']['days'] = isset($_POST['options']['modules']['countdown_details']['days']) && is_numeric($_POST['options']['modules']['countdown_details']['days']) ? $_POST['options']['modules']['countdown_details']['days'] : 0; $_POST['options']['modules']['countdown_details']['hours'] = isset($_POST['options']['modules']['countdown_details']['hours']) && is_numeric($_POST['options']['modules']['countdown_details']['hours']) ? $_POST['options']['modules']['countdown_details']['hours'] : 1; $_POST['options']['modules']['countdown_details']['minutes'] = isset($_POST['options']['modules']['countdown_details']['minutes']) && is_numeric($_POST['options']['modules']['countdown_details']['minutes']) ? $_POST['options']['modules']['countdown_details']['minutes'] : 0; if (!empty($_POST['options']['modules']['countdown_color'])) { $_POST['options']['modules']['countdown_color'] = sanitize_text_field($_POST['options']['modules']['countdown_color']); $custom_css['countdown_color'] = '.wrap .countdown span { color: ' . $_POST['options']['modules']['countdown_color'] . '; }'; } // SUBSCRIBE & CUSTOM CSS $_POST['options']['modules']['subscribe_status'] = (int) $_POST['options']['modules']['subscribe_status']; $_POST['options']['modules']['subscribe_text'] = sanitize_text_field($_POST['options']['modules']['subscribe_text']); if (!empty($_POST['options']['modules']['subscribe_text_color'])) { $_POST['options']['modules']['subscribe_text_color'] = sanitize_text_field($_POST['options']['modules']['subscribe_text_color']); $custom_css['subscribe_text_color'] = '.wrap h3, .wrap .subscribe_wrapper { color: ' . $_POST['options']['modules']['subscribe_text_color'] . '; }'; } // SOCIAL NETWORKS $_POST['options']['modules']['social_status'] = (int) $_POST['options']['modules']['social_status']; $_POST['options']['modules']['social_target'] = (int) $_POST['options']['modules']['social_target']; $_POST['options']['modules']['social_github'] = sanitize_text_field($_POST['options']['modules']['social_github']); $_POST['options']['modules']['social_dribbble'] = sanitize_text_field($_POST['options']['modules']['social_dribbble']); $_POST['options']['modules']['social_twitter'] = sanitize_text_field($_POST['options']['modules']['social_twitter']); $_POST['options']['modules']['social_facebook'] = sanitize_text_field($_POST['options']['modules']['social_facebook']); $_POST['options']['modules']['social_pinterest'] = sanitize_text_field($_POST['options']['modules']['social_pinterest']); $_POST['options']['modules']['social_google+'] = sanitize_text_field($_POST['options']['modules']['social_google+']); $_POST['options']['modules']['social_linkedin'] = sanitize_text_field($_POST['options']['modules']['social_linkedin']); // CONTACT $_POST['options']['modules']['contact_status'] = (int) $_POST['options']['modules']['contact_status']; $_POST['options']['modules']['contact_email'] = sanitize_text_field($_POST['options']['modules']['contact_email']); $_POST['options']['modules']['contact_effects'] = sanitize_text_field($_POST['options']['modules']['contact_effects']); // GOOGLE ANALYTICS $_POST['options']['modules']['ga_status'] = (int) $_POST['options']['modules']['ga_status']; $_POST['options']['modules']['ga_code'] = wpmm_sanitize_ga_code($_POST['options']['modules']['ga_code']); $_POST['options']['modules']['custom_css'] = $custom_css; // delete cache when is activated if (!empty($this->plugin_settings['general']['status']) && $this->plugin_settings['general']['status'] == 1) { $this->delete_cache(); } break; } $this->plugin_settings[$tab] = $_POST['options'][$tab]; update_option('wpmm_settings', $this->plugin_settings); } }
/** * Google Analytics code * * @since 2.0.7 */ public function google_analytics_code() { // check if module is activated and code exists if (empty($this->plugin_settings['modules']['ga_status']) || $this->plugin_settings['modules']['ga_status'] != 1 || empty($this->plugin_settings['modules']['ga_code'])) { return false; } // sanitize code $ga_code = wpmm_sanitize_ga_code($this->plugin_settings['modules']['ga_code']); if (empty($ga_code)) { return false; } // show google analytics javascript snippet include_once WPMM_VIEWS_PATH . 'google-analytics.php'; }