Ejemplo n.º 1
0
 /**
  * Validate item config
  *
  * @since 0.3.0
  *
  * @access protected
  *
  * @param array $data Item config
  *
  * @return bool|array Item config array if valid, false if not.
  */
 protected static function validate_config($data)
 {
     if (!isset($data['created'])) {
         $data['created'] = current_time('mysql');
     }
     if (!isset($data['IP'])) {
         $data['IP'] = ingot_get_ip();
     }
     if (!isset($data['uID'])) {
         $data['uID'] = get_current_user_id();
     }
     if (!isset($data['slug'])) {
         $data['slug'] = self::get_slug();
     }
     if (!isset($data['used'])) {
         $data['used'] = 0;
     }
     if (isset($data['click_test_ID'])) {
         $data['click_test_ID'] = absint($data['click_test_ID']);
     } else {
         $data['click_test_ID'] = 0;
     }
     if ($data['click_test_ID']) {
         $test = test::read($data['click_test_ID']);
         if (!is_array($test)) {
             $data['click_test_ID'] = 0;
         }
     }
     if (isset($data['click_url'])) {
         $data['click_url'] = esc_url_raw($data['click_url']);
     } else {
         $data['click_url'] = '';
     }
     if (!isset($data['ingot_ID'])) {
         $data['ingot_ID'] = self::find_ingot_id($data['uID'], $data['IP']);
     }
     $data['used'] = (bool) $data['used'];
     $data['used'] = (int) $data['used'];
     foreach (self::required() as $key) {
         if (!isset($data[$key])) {
             return new \WP_Error('ingot-session-crud-validation-fail', '', array('fail-key' => $key, 'data' => $data));
         }
     }
     $allowed = array_merge(self::required(), self::needed());
     foreach ($data as $key => $datum) {
         if (!in_array($key, $allowed)) {
             unset($data[$key]);
         } elseif (is_numeric($datum)) {
             $data[$key] = (string) $datum;
         }
     }
     return $data;
 }