From d18dd7fc3f69a8e8935ae37b3cc61f642f04ebcf Mon Sep 17 00:00:00 2001
From: Bart Jaskulski <bjaskulski@protonmail.com>
Date: Tue, 19 Jul 2022 03:20:43 +0200
Subject: [PATCH] feat: sort fields in JsonRenderer

---
 src/Renderer/JsonNormalizedRenderer.php | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/Renderer/JsonNormalizedRenderer.php b/src/Renderer/JsonNormalizedRenderer.php
index 008168a..da9e1f8 100644
--- a/src/Renderer/JsonNormalizedRenderer.php
+++ b/src/Renderer/JsonNormalizedRenderer.php
@@ -2,6 +2,7 @@
 
 namespace WPDesk\Forms\Renderer;
 
+use WPDesk\Forms\Field;
 use WPDesk\Forms\FieldProvider;
 use WPDesk\Forms\FieldRenderer;
 
@@ -20,7 +21,14 @@ class JsonNormalizedRenderer implements FieldRenderer {
 	 */
 	public function render_fields( FieldProvider $provider, array $fields_data, string $name_prefix = '' ): array {
 		$rendered_fields = [];
-		foreach ( $provider->get_fields() as $field ) {
+		$fields          = $provider->get_fields();
+		usort(
+			$fields,
+			static function ( Field $a, Field $b ) {
+				return $a->get_priority() <=> $b->get_priority();
+			}
+		);
+		foreach ( $fields as $field ) {
 			$rendered = [];
 			foreach ( $field->get_attributes() as $key => $attribute ) {
 				$rendered[ $key ] = $attribute;
-- 
GitLab