diff --git a/Tests/Integration/Features/FeatureHelperMethodsTest.php b/Tests/Integration/Features/FeatureHelperMethodsTest.php
index 200002a7030de80a7ae454b87c128e7b41077bb4..0374f815cb569c8c4d83c795a2cd2d6ef3dd530a 100644
--- a/Tests/Integration/Features/FeatureHelperMethodsTest.php
+++ b/Tests/Integration/Features/FeatureHelperMethodsTest.php
@@ -3,6 +3,7 @@ namespace calderawp\CalderaFormsQuery\Tests\Integration\Features;
 
 
 use calderawp\CalderaFormsQuery\CreatesSelectQueries;
+use calderawp\CalderaFormsQuery\Delete\DeleteQueryBuilder;
 use calderawp\CalderaFormsQuery\Features\FeatureContainer;
 use calderawp\CalderaFormsQuery\Tests\Integration\IntegrationTestCase;
 use calderawp\CalderaFormsQuery\Tests\Traits\CanCreateEntryWithEmailField;
@@ -119,4 +120,42 @@ class FeatureHelperMethodsTest extends IntegrationTestCase
 		$this->assertTrue( 0 < count( $results ) );
 
 	}
+
+	/**
+	 * Test deleting all entries for a specific user
+	 *
+	 * @covers FeatureContainer::deleteByUserId()
+	 */
+	public function testDeleteByUserId()
+	{
+		$container = $this->containerFactory();
+		//Create one entry for unknown user
+		$this->createEntryWithEmail( rand(). 'email.com' );
+
+		//Create two entries for a known user.
+		$email = 'nom@noms.noms';
+		$userId = $this->factory()->user->create(
+			[ 'user_email' => $email ]
+		);
+		wp_set_current_user( $userId );
+		$this->createEntryWithEmail( $email );
+		$this->createEntryWithEmail( $email );
+
+		//Delete messages for known user
+		$container->deleteByUserId($userId);
+
+		//Expect no entry  results when querying by known user
+		$results = $container->selectByUserId($userId);
+		$this->assertSame(0, count($results));
+
+
+		//Expect no entry value results when querying by known user
+		$results = $container->selectByFieldValue(
+			$this->getEmailFieldSlug(),
+			$email
+		);
+		$this->assertSame(0, count($results));
+
+
+	}
 }
\ No newline at end of file
diff --git a/Tests/Unit/Features/FeatureContainerTest.php b/Tests/Unit/Features/FeatureContainerTest.php
index 82c21510a3c398e6b5a026e8f1c28fdc01430dda..9a106637ef11a08bd1c249593929d663d8069779 100644
--- a/Tests/Unit/Features/FeatureContainerTest.php
+++ b/Tests/Unit/Features/FeatureContainerTest.php
@@ -3,7 +3,6 @@
 
 namespace calderawp\CalderaFormsQuery\Tests\Unit\Features;
 
-
 use calderawp\CalderaContainers\Service\Container as TheServiceContainer;
 use calderawp\CalderaFormsQuery\Features\DoesQueries;
 use calderawp\CalderaFormsQuery\Features\FeatureContainer;
@@ -25,8 +24,8 @@ class FeatureContainerTest extends TestCase
 	{
 		$serviceContainer = new TheServiceContainer();
 		$container = new FeatureContainer($serviceContainer, $this->getWPDB());
-		$this->assertTrue( is_object( $serviceContainer->make( MySqlBuilder::class ) ) );
-		$this->assertTrue( is_object( $container->getBuilder() ) );
+		$this->assertTrue(is_object($serviceContainer->make(MySqlBuilder::class)));
+		$this->assertTrue(is_object($container->getBuilder()));
 
 		$this->assertTrue(
 			is_a(
@@ -36,10 +35,9 @@ class FeatureContainerTest extends TestCase
 		);
 
 		$this->assertEquals(
-			$serviceContainer->make( MySqlBuilder::class ),
+			$serviceContainer->make(MySqlBuilder::class),
 			$container->getBuilder()
 		);
-
 	}
 
 	/**
@@ -61,7 +59,7 @@ class FeatureContainerTest extends TestCase
 		);
 
 		$this->assertEquals(
-			$serviceContainer->make( Queries::class ),
+			$serviceContainer->make(Queries::class),
 			$container->getQueries()
 		);
 	}
@@ -77,7 +75,8 @@ class FeatureContainerTest extends TestCase
 		$container = $this->containerFactory();
 
 		//Select entry
-		$this->assertEquals( $this->entryTableName(),
+		$this->assertEquals(
+			$this->entryTableName(),
 			$container
 				->getQueries()
 				->entrySelect()
@@ -85,7 +84,8 @@ class FeatureContainerTest extends TestCase
 		);
 
 		//Select entry value
-		$this->assertEquals( $this->entryValueTableName(),
+		$this->assertEquals(
+			$this->entryValueTableName(),
 			$container
 				->getQueries()
 				->entryValuesSelect()
@@ -93,7 +93,8 @@ class FeatureContainerTest extends TestCase
 		);
 
 		//Delete entry
-		$this->assertEquals( $this->entryTableName(),
+		$this->assertEquals(
+			$this->entryTableName(),
 			$container
 				->getQueries()
 				->entryDelete()
@@ -101,12 +102,12 @@ class FeatureContainerTest extends TestCase
 		);
 
 		//Delete entry values
-		$this->assertEquals( $this->entryValueTableName(),
+		$this->assertEquals(
+			$this->entryValueTableName(),
 			$container
 				->getQueries()
 				->entryValueDelete()
 				->getTableName()
 		);
 	}
-
-}
\ No newline at end of file
+}
diff --git a/Tests/Unit/TestCase.php b/Tests/Unit/TestCase.php
index df3ec4c9a29900e67d6fc4550e7d9789446c29c9..713fa951e119cd25ae5d12296c794425561b56f5 100755
--- a/Tests/Unit/TestCase.php
+++ b/Tests/Unit/TestCase.php
@@ -19,6 +19,4 @@ abstract class TestCase extends FrameworkTestCase
 {
 	//Factories go in this trait so they are share with integration tests
 	use HasFactories;
-
-
 }
diff --git a/src/CanCollectResults.php b/src/CanCollectResults.php
index 33b5b78d8cecce47907560c0e7a01dd44a7f1a98..6136d2cf609daa383864860c0cfcbac60bd03138 100644
--- a/src/CanCollectResults.php
+++ b/src/CanCollectResults.php
@@ -3,7 +3,6 @@
 
 namespace calderawp\CalderaFormsQuery;
 
-
 trait CanCollectResults
 {
 	/**
@@ -67,4 +66,4 @@ trait CanCollectResults
 	{
 		$this->entryValueGenerator->resetQuery();
 	}
-}
\ No newline at end of file
+}
diff --git a/src/Delete/EntryValues.php b/src/Delete/EntryValues.php
index f189a6bbb6b58a803e26218353d43486176681cf..71840a0abef78f3687e5437f32e6a3b5b5a328e3 100644
--- a/src/Delete/EntryValues.php
+++ b/src/Delete/EntryValues.php
@@ -30,8 +30,7 @@ class EntryValues extends DeleteQueryBuilder
 	 */
 	public function deleteByEntryIds(array $entryIds)
 	{
-		return $this->in($entryIds,'entry_id');
-
+		return $this->in($entryIds, 'entry_id');
 	}
 
 	/**
diff --git a/src/Exceptions/Exception.php b/src/Exceptions/Exception.php
index 6303effeab98c12c0ff0e2952cd18e09a3cc7180..9e5fee139bb16288ba2a854833b8cd64f3bc06c7 100644
--- a/src/Exceptions/Exception.php
+++ b/src/Exceptions/Exception.php
@@ -5,4 +5,4 @@ namespace calderawp\CalderaFormsQuery\Exceptions;
 class Exception extends \Exception
 {
 
-}
\ No newline at end of file
+}
diff --git a/src/Features/DoesQueries.php b/src/Features/DoesQueries.php
index 43699bd5a6e6dd692a7df2ebc02478cd048dea32..000231cfb3f8c4a2ac9eeddeda35f9239b2ce67e 100644
--- a/src/Features/DoesQueries.php
+++ b/src/Features/DoesQueries.php
@@ -3,8 +3,7 @@
 
 namespace calderawp\CalderaFormsQuery\Features;
 
-
 interface DoesQueries
 {
 
-}
\ No newline at end of file
+}
diff --git a/src/Features/FeatureContainer.php b/src/Features/FeatureContainer.php
index efb7d1dc423cf11264cb63f51ad283bda5b0b97f..54b046b3b20f1ff97c2319ff5389bc37987ffed5 100644
--- a/src/Features/FeatureContainer.php
+++ b/src/Features/FeatureContainer.php
@@ -3,7 +3,6 @@
 
 namespace calderawp\CalderaFormsQuery\Features;
 
-
 use calderawp\CalderaContainers\Container;
 use calderawp\CalderaContainers\Interfaces\ServiceContainer;
 
@@ -35,7 +34,7 @@ class FeatureContainer extends Container
 	 * @param ServiceContainer $serviceContainer
 	 * @param \wpdb $wpdb
 	 */
-	public function __construct(ServiceContainer $serviceContainer, \wpdb $wpdb )
+	public function __construct(ServiceContainer $serviceContainer, \wpdb $wpdb)
 	{
 
 		$this->serviceContainer = $serviceContainer;
@@ -49,11 +48,11 @@ class FeatureContainer extends Container
 	protected function bindServices()
 	{
 		//@TODO move these to service provider classes
-		$this->serviceContainer->singleton( MySqlBuilder::class, function(){
+		$this->serviceContainer->singleton(MySqlBuilder::class, function () {
 			return new MySqlBuilder();
 		});
 
-		$this->serviceContainer->bind( SelectQueries::class, function (){
+		$this->serviceContainer->bind(SelectQueries::class, function () {
 			//@TODO Factory
 			return new SelectQueries(
 				new EntrySelect(
@@ -68,7 +67,7 @@ class FeatureContainer extends Container
 			);
 		});
 
-		$this->serviceContainer->bind( DeleteQueries::class, function (){
+		$this->serviceContainer->bind(DeleteQueries::class, function () {
 			//@TODO Factory
 			return new DeleteQueries(
 				new EntryDelete(
@@ -83,14 +82,14 @@ class FeatureContainer extends Container
 			);
 		});
 
-		$this->serviceContainer->singleton( Queries::class, function(){
+		$this->serviceContainer->singleton(Queries::class, function () {
 			return new Queries(
 				$this
 					->serviceContainer
-					->make( SelectQueries::class ),
+					->make(SelectQueries::class),
 				$this
 					->serviceContainer
-					->make(DeleteQueries::class )
+					->make(DeleteQueries::class)
 			);
 		});
 	}
@@ -104,7 +103,7 @@ class FeatureContainer extends Container
 	{
 		return $this
 			->serviceContainer
-			->make( MySqlBuilder::class );
+			->make(MySqlBuilder::class);
 	}
 
 	/**
@@ -116,7 +115,7 @@ class FeatureContainer extends Container
 	{
 		return $this
 			->serviceContainer
-			->make( Queries::class );
+			->make(Queries::class);
 	}
 
 	/**
@@ -131,7 +130,7 @@ class FeatureContainer extends Container
 			->getQueries()
 			->entrySelect()
 			->queryByUserId($userId);
-		return $this->collectResults( $this->select( $query ) );
+		return $this->collectResults($this->select($query));
 	}
 
 	/**
@@ -143,7 +142,7 @@ class FeatureContainer extends Container
 	 *
 	 * @return array
 	 */
-	public function selectByFieldValue($fieldSlug, $fieldValue, $have = true )
+	public function selectByFieldValue($fieldSlug, $fieldValue, $have = true)
 	{
 
 		$type = $have ? 'equals' : 'notEquals';
@@ -152,21 +151,19 @@ class FeatureContainer extends Container
 			->entryValuesSelect()
 			->queryByFieldValue($fieldSlug, $fieldValue, $type, 'AND', [
 				'entry_id'
-			] );
-		$results = $this->select( $queryForEntryValues );
-		if( empty( $results ) || 0 >= count( $results )){
+			]);
+		$results = $this->select($queryForEntryValues);
+		if (empty($results) || 0 >= count($results)) {
 			return [];
 		}
-		foreach ( $results as &$result ){
-			$result = $result->entry_id;
-		}
+		$results = $this->reduceResultsToEntryId($results);
 
 		$queryForValues = $this
 			->getQueries()
 			->entrySelect()
 			->queryByEntryIds($results);
 
-		return $this->collectResults( $this->select( $queryForValues ) );
+		return $this->collectResults($this->select($queryForValues));
 	}
 
 	/**
@@ -175,13 +172,13 @@ class FeatureContainer extends Container
 	 * @param array $entryIds Entry Ids to delete
 	 * @return $this
 	 */
-	public function deleteByEntryIds(array$entryIds)
+	public function deleteByEntryIds(array $entryIds)
 	{
 		$this->delete(
 			$this
-			->getQueries()
-			->entryDelete()
-			->deleteByEntryIds($entryIds)
+				->getQueries()
+				->entryDelete()
+				->deleteByEntryIds($entryIds)
 		);
 		$this->delete(
 			$this->getQueries()
@@ -192,6 +189,37 @@ class FeatureContainer extends Container
 		return $this;
 	}
 
+	/**
+	 * Delete all entries and entry values by user ID
+	 *
+	 * @param int $userId
+	 */
+	public function deleteByUserId($userId)
+	{
+
+		$entries = $this->select(
+			$this
+			->getQueries()
+			->entrySelect()
+			->queryByUserId($userId)
+		);
+		if (!empty($entries)) {
+			$ids = $this->reduceResultsToEntryId($entries, 'id');
+			$this->delete(
+				$this
+					->getQueries()
+					->entryDelete()
+					->deleteByEntryIds($ids)
+			);
+			$this->delete(
+				$this
+					->getQueries()
+					->entryValueDelete()
+					->deleteByEntryIds($ids)
+			);
+		}
+	}
+
 	/**
 	 * @return string
 	 */
@@ -218,7 +246,6 @@ class FeatureContainer extends Container
 	{
 		$results = [];
 		foreach ($entriesValues as $entry) {
-
 			$entry = new \Caldera_Forms_Entry_Entry($entry);
 			$query = $this
 				->getQueries()
@@ -261,8 +288,8 @@ class FeatureContainer extends Container
 	private function select(SelectQueryBuilder $query)
 	{
 		return $this
-				->getQueries()
-				->select($query);
+			->getQueries()
+			->select($query);
 	}
 
 	/**
@@ -274,9 +301,19 @@ class FeatureContainer extends Container
 	private function delete(DeleteQueryBuilder $query)
 	{
 		return $this->
-			getQueries()
+		getQueries()
 			->delete($query);
 	}
 
-
-}
\ No newline at end of file
+	/**
+	 * @param $results
+	 * @return array
+	 */
+	private function reduceResultsToEntryId($results,$colum='entry_id')
+	{
+		foreach ($results as &$result) {
+			$result = $result->$colum;
+		}
+		return $results;
+	}
+}
diff --git a/src/Features/Queries.php b/src/Features/Queries.php
index 0cd720419959bfda14413b63f729bbf2b07fbebd..f6a09736ef06b6fb1c720e27a61984ff63f8f738 100644
--- a/src/Features/Queries.php
+++ b/src/Features/Queries.php
@@ -43,7 +43,7 @@ class Queries implements DoesQueries
 	 * @param SelectQueryBuilder $query
 	 * @return \stdClass[]
 	 */
-	public function select( SelectQueryBuilder $query )
+	public function select(SelectQueryBuilder $query)
 	{
 		return $this
 			->selectQueries
@@ -56,7 +56,7 @@ class Queries implements DoesQueries
 	 * @param DeleteQueryBuilder $query
 	 * @return \stdClass[]
 	 */
-	public function delete( DeleteQueryBuilder $query )
+	public function delete(DeleteQueryBuilder $query)
 	{
 		return $this
 			->deleteQueries
diff --git a/src/QueryBuilder.php b/src/QueryBuilder.php
index 6f47af1bcd4f29135589c412b33051ac1342da30..1a731cfad41a45ded8d61c6447b8c365c325f9f2 100644
--- a/src/QueryBuilder.php
+++ b/src/QueryBuilder.php
@@ -100,7 +100,7 @@ abstract class QueryBuilder implements CreatesSqlQueries
 	{
 		$values = $this->getBuilder()->getValues();
 		foreach ($values as $identifier => $value) {
-			if (is_array( $value ) || is_object( $value ) ) {
+			if (is_array($value) || is_object($value)) {
 				continue;
 			} else {
 				$values[$identifier] = $this->surroundValue($value);
diff --git a/src/Select/Entry.php b/src/Select/Entry.php
index c1fea3098c3ec62f2596cc4a9158612ea4c9e98d..4ececde6ec6d8520f463e409d76415b3baa82edd 100644
--- a/src/Select/Entry.php
+++ b/src/Select/Entry.php
@@ -55,6 +55,4 @@ class Entry extends SelectQueryBuilder
 	{
 		return $this->is('user_id', $userId);
 	}
-
-
 }
diff --git a/src/Select/EntryValues.php b/src/Select/EntryValues.php
index a4fa43ab618217cb7cf5228b12a4b29a76081c16..a367a36e716c1ec24ddb335624dd4029fe3d64fb 100644
--- a/src/Select/EntryValues.php
+++ b/src/Select/EntryValues.php
@@ -35,10 +35,10 @@ class EntryValues extends SelectQueryBuilder
 	 */
 	public function queryByFieldValue($fieldSlug, $fieldValue, $type = 'equals', $whereOperator = 'AND', $columns = [])
 	{
-		if( ! empty( $columns ) ){
+		if (! empty($columns)) {
 			$this
 				->getSelectQuery()
-				->setColumns( $columns );
+				->setColumns($columns);
 		}
 		switch ($type) {
 			case 'equals':
diff --git a/src/Select/SelectQueryBuilder.php b/src/Select/SelectQueryBuilder.php
index 9c066243732a78d22a0296f6ddd744dff57c645a..b4a50284c73c73c8cbff1d88f103b3cd5e8f6ff2 100644
--- a/src/Select/SelectQueryBuilder.php
+++ b/src/Select/SelectQueryBuilder.php
@@ -59,5 +59,4 @@ abstract class SelectQueryBuilder extends QueryBuilder implements DoesSelectQuer
 	{
 		$this->selectQuery = new \NilPortugues\Sql\QueryBuilder\Manipulation\Select($this->getTableName());
 	}
-
 }
diff --git a/src/SelectQueries.php b/src/SelectQueries.php
index 1cc6aeb9f141fbd5a9f82af9edf4d823ef9f5781..c22c3ca29c1357e7ef0087556c15566fd9607f9b 100644
--- a/src/SelectQueries.php
+++ b/src/SelectQueries.php
@@ -77,6 +77,4 @@ class SelectQueries implements CreatesSelectQueries
 	{
 		$this->entryValueGenerator->resetQuery();
 	}
-
-
 }