Repository: go-playground/validator (go)

Issue:
Required behaviour changed for time.Time
- [X] I have looked at the documentation [here](https://pkg.go.dev/github.com/go-playground/validator/v10#section-documentation) first?
- [X] I have looked at the examples provided that may showcase my question [here](/_examples)?

### Package version eg. v9, v10: 

v10.15.2

### Issue, Question or Enhancement:

A zero `time.Time` passes the `required` validation in v10.15.2 but not in v10.15.1. Adding in `WithRequiredStructEnabled` to the `New()` func does enable the test to pass but I'm not sure if I should make this code change in our codebase; should the default behaviour have changed between these minor releases?

I've provided a sample test that passes in v10.15.1 but fails in v10.15.2.

### Code sample, to showcase or reproduce:

```go
func TestTimeRequired(t *testing.T) {
	validate := New()
	validate.RegisterTagNameFunc(func(fld reflect.StructField) string {
		name := strings.SplitN(fld.Tag.Get("json"), ",", 2)[0]

		if name == "-" {
			return ""
		}

		return name
	})

	type TestTime struct {
		Time time.Time `validate:"required"`
	}

	var testTime TestTime

	err := validate.Struct(&testTime)
	NotEqual(t, err, nil)
	AssertError(t, err.(ValidationErrors), "TestTime.Time", "TestTime.Time", "Time", "Time", "required")
}
```


Pull request description:
fix edge case
## Fixes Or Enhances

Fixes #1162 by not skipping the `required` for non nested structs accidentally introduced in last release.

Patch:
diff --git a/validator.go b/validator.go
index 2cae8f7..342c4ec 100644
--- a/validator.go
+++ b/validator.go
@@ -173,7 +173,7 @@ func (v *validate) traverseField(ctx context.Context, parent reflect.Value, curr
 		// structs. Since it's basically nonsensical to use `required` with a non-pointer struct
 		// are explicitly skipping the required validation for it. This WILL be removed in the
 		// next major version.
-		if !v.v.requiredStructEnabled && ct != nil && ct.tag == requiredTag {
+		if isNestedStruct && !v.v.requiredStructEnabled && ct != nil && ct.tag == requiredTag {
 			ct = ct.next
 		}
 	}


Test patch:
diff --git a/validator_test.go b/validator_test.go
index 1dfa85c..09ff1df 100644
--- a/validator_test.go
+++ b/validator_test.go
@@ -13534,3 +13534,26 @@ func TestNestedStructValidation(t *testing.T) {
 		})
 	}
 }
+
+func TestTimeRequired(t *testing.T) {
+	validate := New()
+	validate.RegisterTagNameFunc(func(fld reflect.StructField) string {
+		name := strings.SplitN(fld.Tag.Get("json"), ",", 2)[0]
+
+		if name == "-" {
+			return ""
+		}
+
+		return name
+	})
+
+	type TestTime struct {
+		Time time.Time `validate:"required"`
+	}
+
+	var testTime TestTime
+
+	err := validate.Struct(&testTime)
+	NotEqual(t, err, nil)
+	AssertError(t, err.(ValidationErrors), "TestTime.Time", "TestTime.Time", "Time", "Time", "required")
+}