protected function fetch_metadata() {
		// If no meta_type found, don't do anything, leave
		// and return an empty array.
		if ( ! $this->meta_type ) {
			return array();
		}

		// Get raw metadata of this object.
		// The meta type is defined by {$this->meta_type} - 'post' by default,
		// and it can be "term", dependent your object you working for.
		$raw_metadata = get_metadata( $this->meta_type, $this->get_id() );

		$metadata = [];

		// Loop through raw metadata and setup object metadata.
		foreach ( $raw_metadata as $meta_key => $meta_values ) {
			if ( in_array( $meta_key, [ '_edit_lock', '_edit_last' ] ) ) {
				continue;
			}

			// AweBooking work only with single meta.
			// So just try unserialize the first value.
			$metadata[ $meta_key ] = maybe_unserialize( $meta_values[0] );
		}

		return $metadata;
	}