PluginProbe ʕ •ᴥ•ʔ
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager / trunk
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager vtrunk
4.1.39 4.1.38 trunk 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.3.3 1.4 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.10 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 1.9.2 1.9.3 2.0.0 2.0.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.4 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.4.10 2.4.11 2.4.12 2.4.13 2.4.14 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.6.0 2.7.0 2.7.1 2.8.0 2.9.0 2.9.1 2.9.2 3.0.0 3.0.1 3.0.10 3.0.11 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.3.0 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.10 3.5.11 3.5.12 3.5.13 3.5.14 3.5.15 3.5.16 3.5.17 3.5.18 3.5.19 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9 3.6.0 4.0.0 4.1.0 4.1.1 4.1.10 4.1.11 4.1.12 4.1.13 4.1.14 4.1.15 4.1.16 4.1.17 4.1.18 4.1.19 4.1.2 4.1.20 4.1.21 4.1.22 4.1.23 4.1.24 4.1.25 4.1.26 4.1.27 4.1.28 4.1.29 4.1.3 4.1.30 4.1.31 4.1.32 4.1.34 4.1.35 4.1.36 4.1.37 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9
flexible-checkout-fields / src / Field / FieldData.php
flexible-checkout-fields / src / Field Last commit date
Type 1 week ago FieldData.php 1 week ago FieldTemplateLoader.php 1 week ago FieldTranslator.php 1 week ago Types.php 1 week ago
FieldData.php
61 lines
1 <?php
2
3 namespace WPDesk\FCF\Free\Field;
4
5 use WPDesk\FCF\Free\Field\Type\DefaultType;
6 use WPDesk\FCF\Free\Settings\Option\OptionInterface;
7
8 /**
9 * Generates field data based on options for field type.
10 */
11 class FieldData {
12
13 /**
14 * Returns parsed data for field.
15 *
16 * @param array $field_settings Settings of field.
17 * @param bool $is_decode Is it decoding (used saved settings) data instead of encoding (for settings save).
18 *
19 * @return array Data of field.
20 */
21 public static function get_field_data( array $field_settings, bool $is_decode = true ): array {
22 $field_data = [];
23 $option_objects = self::get_field_options( $field_settings );
24
25 if ( ! $option_objects ) {
26 return $field_data;
27 }
28
29 $field_data['name'] = $field_settings['name'];
30 foreach ( $option_objects as $field_option ) {
31 $field_data = $field_option[ ( $is_decode ) ? 'update_field_callback' : 'save_field_callback' ](
32 $field_data,
33 $field_settings
34 );
35 }
36 return $field_data;
37 }
38
39 /**
40 * Returns list of option objects.
41 *
42 * @param array $field_settings Settings of field.
43 *
44 * @return OptionInterface[] List of options.
45 */
46 public static function get_field_options( array $field_settings ): array {
47 $field_types = apply_filters( 'flexible_checkout_fields/field_types', [] );
48 foreach ( $field_types as $field_type ) {
49 if ( in_array( $field_settings['name'], $field_type['reserved_field_names'], true ) ) {
50 return $field_type['options'];
51 }
52 }
53 foreach ( $field_types as $field_type ) {
54 if ( isset( $field_settings['type'] ) && ( $field_settings['type'] === $field_type['type'] ) ) {
55 return $field_type['options'];
56 }
57 }
58 return $field_types[ DefaultType::FIELD_TYPE ]['options'] ?? [];
59 }
60 }
61