/** * Determine the type of the current optin(s) needed. * * @return array Array of current in use types in form of type => theme */ static function determine_type() { $types = array_keys(Prompt_Optins::types()); $themes = array_keys(Prompt_Optins::themes()); $options = self::optins_options(); $current_types = array(); foreach ($types as $type) { $field = "optins_{$type}_enable"; if ($options[$field]) { $theme_key = "optins_{$type}_theme"; $theme = $options[$theme_key]; $current_types[$type] = $theme; } } return $current_types; }
/** * @since 1.4.0 * * @param array $new_data * @param array $old_data * @return array */ function validate($new_data, $old_data) { $valid_data = $this->validate_checkbox_fields($new_data, $old_data, array('optins_popup_enable', 'optins_popup_admin_test', 'optins_bottom_enable', 'optins_topbar_enable', 'optins_inpost_enable')); if (isset($new_data['optins_popup_type'])) { if (array_key_exists($new_data['optins_popup_type'], Prompt_Optins::popup_bottom_trigger_options())) { $valid_data['optins_popup_type'] = $new_data['optins_popup_type']; } } if (isset($new_data['optins_popup_time'])) { $valid_data['optins_popup_time'] = intval($new_data['optins_popup_time']); } if (isset($new_data['optins_bottom_type'])) { if (array_key_exists($new_data['optins_bottom_type'], Prompt_Optins::popup_bottom_trigger_options())) { $valid_data['optins_bottom_type'] = $new_data['optins_bottom_type']; } } if (isset($new_data['optins_bottom_time'])) { $valid_data['optins_bottom_time'] = intval($new_data['optins_bottom_time']); } if (isset($new_data['optins_inpost_ids'])) { if ('all' == $new_data['optins_inpost_ids']) { $valid_data['optins_inpost_ids'] = $new_data['optins_inpost_ids']; } else { $_maybe = $new_data['optins_inpost_ids']; $_maybe = preg_replace('/[^,;0-9]|[,;]$/s', '', $_maybe); if ($_maybe) { $haz_comma = strpos($_maybe, ','); if ($haz_comma) { if (0 < intval($_maybe)) { if (preg_match('/^\\d+(?:,\\d+)*$/', $_maybe)) { $valid_data['optins_inpost_ids'] = explode(',', $_maybe); } } else { $valid_data['optins_inpost_ids'] = array($_maybe); } } } } } $types = array_keys(Prompt_Optins::types()); $themes = array_keys(Prompt_Optins::themes()); foreach ($types as $type) { $field = "optins_{$type}_theme"; if (isset($new_data[$field])) { if (in_array($new_data[$field], $themes)) { $valid_data[$field] = $new_data[$field]; } } $field = "optins_{$type}_title"; if (isset($new_data[$field])) { $valid_data[$field] = wp_strip_all_tags($new_data[$field]); } $field = "optins_{$type}_desc"; if (isset($new_data[$field])) { $valid_data[$field] = balanceTags(strip_tags($new_data[$field], '<a><strong><em><ul><ol><li><img><p><h2><h3><h4>')); } $field = "optins_{$type}_image"; if (isset($new_data[$field])) { $valid_data[$field] = intval($new_data[$field]); } } return $valid_data; }