Exemple #1
0
 /**
  * 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;
 }