/** * Getter * * @param string $key Key to get. * @return mixed */ public function __get($key) { if ('page_template' == $key && $this->__isset($key)) { return get_post_meta($this->ID, '_wp_page_template', true); } if ('post_category' == $key) { return array(); } if ('tags_input' == $key) { return array(); } if ('ancestors' == $key) { return array(); } if ('post_title' == $key) { return $this->name; } if ('post_parent' == $key) { return $this->event; } $value = get_post_meta($this->ID, $key, true); if ($this->filter) { $value = btb_sanitize_time_field($key, $value, $this->ID, $this->filter); } return $value; }
/** * Sanitize every time field. * * If the context is 'raw', then the time object or array will get minimal * sanitization of the integer fields. * * @since 1.0.0 * * @see btb_sanitize_time_field($field, $value, $booking_id, $context = 'display') * * @param object|BTB_Time|array $time The time object or array. * @param string $context Optional. How to sanitize the time fields. Accepts 'raw', 'edit', 'db', 'attribute', 'js' or 'display'. Default 'display'. * @return object|BTB_Time|array The now sanitized BTB_Time object or array. */ function btb_sanitize_time($time, $context = 'display') { if (is_object($time)) { // Check if time already filtered for this context. if (isset($time->filter) && $context == $time->filter) { return $time; } if (!isset($time->ID)) { $time->ID = 0; } foreach (array_keys(get_object_vars($time)) as $field) { $time->{$field} = btb_sanitize_time_field($field, $time->{$field}, $time->ID, $context); } $time->filter = $context; } elseif (is_array($time)) { // Check if time already filtered for this context. if (isset($time['filter']) && $context == $time['filter']) { return $time; } if (!isset($time['ID'])) { $time['ID'] = 0; } foreach (array_keys($time) as $field) { $time[$field] = btb_sanitize_time_field($field, $time[$field], $time['ID'], $context); } $time['filter'] = $context; } return $time; }