public function clear() {
		$keys = array_merge(
			$this->get_table_keys(),
			$this->get_wp_object_keys()
		);

		foreach ( $keys as $key ) {
			try {
				$this->set_attribute( $key, null );
			} catch ( Exception $e ) {
				// We won't clear out guarded attributes.
				if ( ! ( $e instanceof GuardedPropertyException ) ) {
					throw $e;
				}
			}
		}

		return $this;
	}