PluginProbe ʕ •ᴥ•ʔ
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager / 2.2.2
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager v2.2.2
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 / classes / field.php
flexible-checkout-fields / classes Last commit date
views 6 years ago activation-tracker.php 6 years ago class-flexible-checkout-fields-plugin.php 6 years ago display-options.php 6 years ago field-options.php 6 years ago field.php 6 years ago filed-validation.php 6 years ago index.php 6 years ago myaccount-edit-address.php 6 years ago myaccount-filed-processor.php 6 years ago settings.php 6 years ago tracker.php 6 years ago user-profile.php 6 years ago
field.php
127 lines
1 <?php
2
3 /**
4 * Class Flexible_Checkout_Fields_Field
5 */
6 class Flexible_Checkout_Fields_Field {
7
8 const FIELD_TYPE = 'type';
9 const FIELD_CUSTOM_FIELD = 'custom_field';
10 const FIELD_VISIBLE = 'visible';
11
12 const FIELD_TYPE_EXCLUDE_IN_ADMIN = 'exclude_in_admin';
13 const FIELD_TYPE_EXCLUDE_FOR_USER = 'exclude_for_user';
14
15 /**
16 * Field data.
17 *
18 * @var array
19 */
20 private $field_data;
21
22 /**
23 * Plugin.
24 *
25 * @var Flexible_Checkout_Fields_Plugin
26 */
27 private $plugin;
28
29 /**
30 * Flexible_Checkout_Fields_Field constructor.
31 *
32 * @param array $field_data Field data.
33 * @param Flexible_Checkout_Fields_Plugin $plugin Plugin.
34 */
35 public function __construct( array $field_data, $plugin ) {
36 $this->plugin = $plugin;
37 $this->field_data = $field_data;
38 }
39
40 /**
41 * Get field types from plugin.
42 *
43 * @return array
44 */
45 private function get_field_types_from_plugin() {
46 return $this->plugin->get_fields();
47 }
48
49 /**
50 * Get field type settings.
51 *
52 * @return array
53 */
54 private function get_field_type_settings() {
55 $default_values = array(
56 self::FIELD_TYPE_EXCLUDE_IN_ADMIN => false,
57 self::FIELD_TYPE_EXCLUDE_FOR_USER => false,
58 );
59 $field_types = $this->get_field_types_from_plugin();
60 if ( isset( $this->field_data[ self::FIELD_TYPE ] ) && isset( $field_types[ $this->field_data[ self::FIELD_TYPE ] ] ) ) {
61 $field_type_settings = $field_types[ $this->field_data[ self::FIELD_TYPE ] ];
62 $field_type_settings = array_merge( $default_values, $field_type_settings );
63 return $field_type_settings;
64 }
65 return $default_values;
66 }
67
68 /**
69 * Is visible?
70 *
71 * @return bool
72 */
73 public function is_custom_field() {
74 if ( isset( $this->field_data[ self::FIELD_CUSTOM_FIELD ] ) && 1 === intval( $this->field_data[ self::FIELD_CUSTOM_FIELD ] ) ) {
75 return true;
76 }
77 return false;
78 }
79
80 /**
81 * Is visible?
82 *
83 * @return bool
84 */
85 public function is_visible() {
86 if ( isset( $this->field_data[ self::FIELD_VISIBLE ] ) && 0 === intval( $this->field_data[ self::FIELD_VISIBLE ] ) ) {
87 return false;
88 }
89 return true;
90 }
91
92 /**
93 * Is field excluded for user?
94 * Field is excluded from user when is custom field and is not visible or field type is excluded for user.
95 *
96 * @return bool
97 */
98 public function is_field_excluded_for_user() {
99 if ( ! $this->is_custom_field() ) {
100 return false;
101 }
102 $field_type_settings = $this->get_field_type_settings();
103 if ( true === $field_type_settings[ self::FIELD_TYPE_EXCLUDE_FOR_USER ] ) {
104 return true;
105 }
106 return false;
107 }
108
109 /**
110 * Is field excluded in admin?
111 *
112 * @return bool
113 */
114 public function is_field_excluded_in_admin() {
115 if ( ! $this->is_custom_field() ) {
116 return false;
117 }
118 $field_type_settings = $this->get_field_type_settings();
119 if ( true === $field_type_settings[ self::FIELD_TYPE_EXCLUDE_IN_ADMIN ] ) {
120 return true;
121 }
122 return false;
123 }
124
125
126 }
127