PluginProbe
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor / 3.9.9
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor v3.9.9
4.0.3 4.0.2 4.0.1 4.0.0 3.16.6 3.16.5 3.16.4 3.16.3 3.16.2 3.16.1 3.16.0 3.15.9 3.9.9 3.9.5 3.9.6 3.9.7 3.9.8 1.1.7 1.1.8 1.1.9 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 All 341 releases
profile-builder / front-end / default-fields / select2 / select2.php

select2.php in User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor 3.9.9, at front-end/default-fields/select2/select2.php

153 lines 7.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /*
4 * Handle field output.
5 *
6 * @param string $output Contains the HTML to display the select2 field.
7 * @param string $form_location
8 * @param array $field
9 * @param integer $user_id
10 * @param array $field_check_errors
11 * @param array $request_data
12 * @return string Filtered output of the HTML to display the select2 field.
13 */
14 function wppb_select2_display_handler($output, $form_location, $field, $user_id, $field_check_errors, $request_data)
15 {
16 if ($field['field'] == 'Select2') {
17 wp_enqueue_script('wppb_sl2_lib_js', WPPB_PLUGIN_URL . 'assets/js/select2/select2.min.js', array('jquery'));
18 wp_enqueue_style('wppb_sl2_lib_css', WPPB_PLUGIN_URL . 'assets/css/select2/select2.min.css');
19
20 wp_enqueue_script( 'wppb_sl2_js', WPPB_PLUGIN_URL.'front-end/default-fields/select2/select2.js', array('jquery'), PROFILE_BUILDER_VERSION, true );
21 wp_enqueue_style( 'wppb_sl2_css', WPPB_PLUGIN_URL.'front-end/default-fields/select2/select2.css', false, PROFILE_BUILDER_VERSION );
22
23
24 $field['labels'] = apply_filters('wppb_select2_labels', $field['labels'], $form_location, $field, $user_id, $field_check_errors, $request_data);
25 $field['options'] = apply_filters('wppb_select2_options', $field['options'], $form_location, $field, $user_id, $field_check_errors, $request_data);
26 $arguments = apply_filters('wppb_select2_arguments', array(), $form_location, $field);
27
28 $item_title = apply_filters('wppb_' . $form_location . '_select2_custom_field_' . $field['id'] . '_item_title', wppb_icl_t('plugin profile-builder-pro', 'custom_field_' . $field['id'] . '_title_translation', $field['field-title'], true));
29 $item_description = wppb_icl_t('plugin profile-builder-pro', 'custom_field_' . $field['id'] . '_description_translation', $field['description'], true);
30 $item_option_labels = wppb_icl_t('plugin profile-builder-pro', 'custom_field_' . $field['id'] . '_labels_translation', $field['labels'], true);
31
32 $select2_labels = apply_filters('wppb_select2_labels_array', explode(',', $item_option_labels));
33 $select2_values = apply_filters('wppb_select2_options_array', explode(',', $field['options']));
34
35 $extra_attr = apply_filters('wppb_extra_attribute', '', $field, $form_location);
36
37 if ($form_location != 'register')
38 $input_value = ((wppb_user_meta_exists($user_id, $field['meta-name']) != null) ? esc_attr(stripslashes(get_user_meta($user_id, $field['meta-name'], true))) : $field['default-option']);
39 else
40 $input_value = (!empty($field['default-option']) ? esc_attr(trim($field['default-option'])) : '');
41
42 $input_value = (isset($request_data[wppb_handle_meta_name($field['meta-name'])]) ? esc_attr(stripslashes(trim($request_data[wppb_handle_meta_name($field['meta-name'])]))) : $input_value);
43
44 if ($form_location != 'back_end') {
45 $error_mark = (($field['required'] == 'Yes') ? '<span class="wppb-required" title="' . wppb_required_field_error($field["field-title"]) . '">*</span>' : '');
46
47 if (array_key_exists($field['id'], $field_check_errors))
48 $error_mark = '<img src="' . WPPB_PLUGIN_URL . 'assets/images/pencil_delete.png" title="' . wppb_required_field_error($field["field-title"]) . '"/>';
49
50 $output = '
51 <label for="' . esc_attr($field['meta-name']) . '">' . $item_title . $error_mark . '</label>
52 <select name="' . esc_attr($field['meta-name']) . '" id="' . esc_attr($field['meta-name']) . '" class="custom_field_select2" ' . $extra_attr . ' data-wppb-select2-arguments=\'' . json_encode($arguments) . '\'>';
53
54 $extra_select_option = apply_filters('wppb_extra_select_option', '', $field, $item_title);
55 if (!empty($extra_select_option)) {
56 $output .= $extra_select_option;
57 }
58
59 foreach ($select2_values as $key => $value) {
60 $output .= '<option value="' . esc_attr(trim($value)) . '" class="custom_field_select2_option ' . apply_filters('wppb_fields_extra_css_class', '', $field) . '" ';
61
62 if ($input_value === trim($value))
63 $output .= ' selected';
64
65 $output .= '>' . ((!isset($select2_labels[$key]) || !$select2_labels[$key]) ? esc_attr(trim($select2_values[$key])) : esc_attr(trim($select2_labels[$key]))) . '</option>';
66 }
67
68 $output .= '
69 </select>';
70 if (!empty($item_description))
71 $output .= '<span class="wppb-description-delimiter">' . $item_description . '</span>';
72
73 } else {
74 $item_title = (($field['required'] == 'Yes') ? $item_title . ' <span class="description">(' . __('required', 'profile-builder') . ')</span>' : $item_title);
75 $output = '
76 <table class="form-table wppb-select2">
77 <tr>
78 <th><label for="' . esc_attr($field['meta-name']) . '">' . $item_title . '</label></th>
79 <td>
80 <select name="' . esc_attr($field['meta-name']) . '" class="custom_field_select2" id="' . esc_attr($field['meta-name']) . '" ' . $extra_attr . ' data-wppb-select2-arguments=\'' . json_encode($arguments) . '\'>';
81
82 foreach ($select2_values as $key => $value) {
83 $output .= '<option value="' . esc_attr(trim($value)) . '" class="custom_field_select2_option" ';
84
85 if ($input_value === trim($value))
86 $output .= ' selected';
87
88 $output .= '>' . ((!isset($select2_labels[$key]) || !$select2_labels[$key]) ? esc_attr(trim($select2_values[$key])) : esc_attr(trim($select2_labels[$key]))) . '</option>';
89 }
90
91 $output .= '</select>
92 <span class="description">' . $item_description . '</span>
93 </td>
94 </tr>
95 </table>';
96 }
97
98 return apply_filters('wppb_' . $form_location . '_select2_custom_field_' . $field['id'], $output, $form_location, $field, $user_id, $field_check_errors, $request_data, $input_value);
99 }
100 }
101
102 add_filter('wppb_output_form_field_select2', 'wppb_select2_display_handler', 10, 6);
103 add_filter('wppb_admin_output_form_field_select2', 'wppb_select2_display_handler', 10, 6);
104
105 /*
106 * Handle field save.
107 *
108 * @since 1.0.0
109 *
110 * @param array $field
111 * @param integer $user_id
112 * @param array $request_data
113 * @param string $form_location
114 */
115 function wppb_select2_save_value($field, $user_id, $request_data, $form_location)
116 {
117 if ($field['field'] == 'Select2') {
118 if (isset($request_data[wppb_handle_meta_name($field['meta-name'])]))
119 update_user_meta($user_id, sanitize_text_field($field['meta-name']), sanitize_text_field($request_data[wppb_handle_meta_name($field['meta-name'])]));
120 }
121 }
122
123 add_action('wppb_save_form_field', 'wppb_select2_save_value', 10, 4);
124 add_action('wppb_backend_save_form_field', 'wppb_select2_save_value', 10, 4);
125
126 /*
127 * Handle field validation.
128 *
129 * @since 1.0.0
130 *
131 * @param string $message
132 * @param array $field
133 * @param array $request_data
134 * @param $form_location
135 * @return string Message to display on field validation
136 */
137 function wppb_select2_check_value($message, $field, $request_data, $form_location)
138 {
139 if ($field['field'] == 'Select2') {
140 if ($field['required'] == 'Yes') {
141 if ((isset($request_data[wppb_handle_meta_name($field['meta-name'])]) && (trim($request_data[wppb_handle_meta_name($field['meta-name'])]) == '')) || !isset($request_data[wppb_handle_meta_name($field['meta-name'])])) {
142 return wppb_required_field_error($field["field-title"]);
143 }
144 }
145 }
146
147 return $message;
148 }
149
150 add_filter('wppb_check_form_field_select2', 'wppb_select2_check_value', 10, 4);
151
152
153