File "JsonNormalizedRenderer.php"
Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/flexible-shipping-pro/vendor_prefixed/wpdesk/wp-forms/src/Renderer/JsonNormalizedRenderer.php
File size: 2.28 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace FSProVendor\WPDesk\Forms\Renderer;
use FSProVendor\WPDesk\Forms\FieldProvider;
use FSProVendor\WPDesk\Forms\FieldRenderer;
/**
* Can render form fields as JSON.
*
* @package WPDesk\Forms\Renderer
*/
class JsonNormalizedRenderer implements \FSProVendor\WPDesk\Forms\FieldRenderer
{
/**
* @param FieldProvider $provider
* @param array $fields_data
* @param string $name_prefix
*
* @return array Normalized fields with data.
*/
public function render_fields(\FSProVendor\WPDesk\Forms\FieldProvider $provider, array $fields_data, $name_prefix = '')
{
$rendered_fields = [];
foreach ($provider->get_fields() as $field) {
$rendered = ['name' => $field->get_name(), 'template' => $field->get_template_name(), 'multiple' => $field->is_multiple(), 'disabled' => $field->is_disabled(), 'readonly' => $field->is_readonly(), 'required' => $field->is_required(), 'prefix' => $name_prefix, 'value ' => isset($fields_data[$field->get_name()]) ? $fields_data[$field->get_name()] : $field->get_default_value()];
if ($field->has_classes()) {
$rendered['class'] = $field->get_classes();
}
if ($field->has_description()) {
$rendered['description'] = $field->get_description();
}
if ($field->has_description_tip()) {
$rendered['description_tip'] = $field->get_description_tip();
}
if ($field->has_label()) {
$rendered['label'] = $field->get_label();
}
if ($field->has_placeholder()) {
$rendered['placeholder'] = $field->get_placeholder();
}
$options = $field->get_possible_values();
if ($options) {
$rendered['options'] = $options;
}
if ($field->has_data()) {
$data = $field->get_data();
$rendered['data'] = [];
foreach ($data as $data_name => $data_value) {
$rendered['data'][] = ['name' => $data_name, 'value' => $data_value];
}
}
if (\json_encode($rendered) !== \false) {
$rendered_fields[] = $rendered;
}
}
return $rendered_fields;
}
}