PluginProbe ʕ •ᴥ•ʔ
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI / 2.0.4
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI v2.0.4
3.5.2 3.5.1 3.5.0 3.4.8 3.4.7 3.4.6 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5.1 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.10 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.6.1 1.6.7 1.7.0 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.2 1.7.2.1 1.7.2.2 1.7.3 1.7.4 1.7.5 1.7.5.1 1.7.5.2 1.7.6 1.7.7 1.7.7.1 1.7.7.2 1.7.8 1.7.9 1.8.0 1.8.0.1 1.8.1 1.8.2 1.8.2.1 1.8.2.2 1.8.2.3 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.0.1 1.9.1 1.9.2 1.9.3 1.9.4 1.9.4.1 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.0.1 2.0.1 2.0.2 2.0.3 2.0.3.1 2.0.4 2.0.4.1 2.0.5 2.0.6 2.0.7 2.0.8 2.0.8.1 2.0.9 3.0.0 3.0.0.1 3.0.1 3.0.2 3.0.3 3.0.3.1 3.0.4 3.0.4.1 3.0.4.2 3.0.5 3.0.5.1 3.0.5.2 3.0.6 3.0.6.1 3.0.7.1 3.0.8 3.0.8.1 3.0.9 3.0.9.1 3.0.9.2 3.0.9.3 3.0.9.4 3.0.9.5 3.1.0 3.1.1 3.1.2 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3.0 3.4.0 3.4.1 3.4.2 3.4.2.1 3.4.3 3.4.4 3.4.5 trunk 1.0 1.0.1 1.0.2 1.0.3
everest-forms / includes / admin / views / html-admin-page-entries-view.php
everest-forms / includes / admin / views Last commit date
html-admin-page-addons.php 2 years ago html-admin-page-builder.php 2 years ago html-admin-page-entries-view.php 3 years ago html-admin-page-export.php 3 years ago html-admin-page-form-templates.php 3 years ago html-admin-page-import.php 3 years ago html-admin-page-tools-logs.php 4 years ago html-admin-page-tools.php 5 years ago html-admin-settings.php 7 years ago html-deactivation-popup.php 3 years ago html-notice-allow-usage.php 2 years ago html-notice-custom.php 6 years ago html-notice-php-deprecation.php 3 years ago html-notice-review.php 2 years ago html-notice-survey.php 4 years ago html-notice-update.php 6 years ago html-notice-updated.php 6 years ago html-notice-updating.php 6 years ago
html-admin-page-entries-view.php
306 lines
1 <?php
2 /**
3 * Admin View: Entries
4 *
5 * @package EverestForms/Admin/Entries/Views
6 */
7
8 defined( 'ABSPATH' ) || exit;
9
10 $form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : 0; // phpcs:ignore WordPress.Security.NonceVerification
11 $entry_id = isset( $_GET['view-entry'] ) ? absint( $_GET['view-entry'] ) : 0; // phpcs:ignore WordPress.Security.NonceVerification
12 $entry = evf_get_entry( $entry_id, true );
13 $form_data = evf()->form->get( $form_id, array( 'content_only' => true ) );
14 $hide_empty = isset( $_COOKIE['everest_forms_entry_hide_empty'] ) && 'true' === $_COOKIE['everest_forms_entry_hide_empty'];
15 $trash_link = wp_nonce_url(
16 add_query_arg(
17 array(
18 'trash' => $entry_id,
19 ),
20 admin_url( 'admin.php?page=evf-entries&amp;form_id=' . $form_id )
21 ),
22 'trash-entry'
23 );
24
25 $form_entries = evf_get_entries_by_form_id( $form_id, '', '', true );
26 $form_entries = array_map(
27 function( $el ) {
28 return $el['entry_id'];
29 },
30 $form_entries
31 );
32
33 $entry_index = array_search( $entry_id, $form_entries ); //phpcs:ignore
34 $prev_entry = '';
35 $next_entry = '';
36 $prev_entry_url = '#';
37 $next_entry_url = '#';
38
39 if ( false !== $entry_index ) {
40 if ( isset( $form_entries[ $entry_index - 1 ] ) ) {
41 $prev_entry = $form_entries[ $entry_index - 1 ];
42 $prev_entry_url = admin_url( sprintf( 'admin.php?page=evf-entries&amp;form_id=%d&amp;view-entry=%d', $form_id, $prev_entry ) );
43 }
44
45 if ( isset( $form_entries[ $entry_index + 1 ] ) ) {
46 $next_entry = $form_entries[ $entry_index + 1 ];
47 $next_entry_url = admin_url( sprintf( 'admin.php?page=evf-entries&amp;form_id=%d&amp;view-entry=%d', $form_id, $next_entry ) );
48 }
49
50 $next_entry = isset( $form_entries[ $entry_index + 1 ] ) ? $form_entries[ $entry_index + 1 ] : '';
51 }
52
53 ?>
54 <div class="wrap everest-forms">
55 <h1 class="wp-heading-inline"><?php esc_html_e( 'View Entry', 'everest-forms' ); ?></h1>
56 <a href="<?php echo esc_url( admin_url( 'admin.php?page=evf-entries&amp;form_id=' . $form_id ) ); ?>" class="page-title-action"><?php esc_html_e( 'Back to All Entries', 'everest-forms' ); ?></a>
57 <hr class="wp-header-end">
58 <?php do_action( 'everest_forms_view_entries_notices' ); ?>
59 <div class="everest-forms-entry">
60 <div id="poststuff">
61 <div id="post-body" class="metabox-holder columns-2">
62 <!-- Entry Fields metabox -->
63 <div id="evf-entry-nav-buttons">
64 <a class="button" id="evf-prev-entry-button" href="<?php echo esc_url( $prev_entry_url ); ?>" <?php echo empty( $prev_entry ) ? esc_attr( 'disabled=disabled' ) : ''; ?> >
65 <?php esc_html_e( 'Previous', 'everest-forms' ); ?>
66 </a>
67 <a class="button" id="evf-next-entry-button" href="<?php echo esc_url( $next_entry_url ); ?>" <?php echo empty( $next_entry ) ? esc_attr( 'disabled=disabled' ) : ''; ?> >
68 <?php esc_html_e( 'Next', 'everest-forms' ); ?>
69 </a>
70 </div>
71 <div id="post-body-content" style="position: relative;">
72 <div id="everest-forms-entry-fields" class="stuffbox">
73 <h2 class="hndle">
74 <?php do_action( 'everest_forms_before_entry_details_hndle', $entry ); ?>
75 <span>
76 <?php
77 /* translators: %s: Entry ID */
78 printf( esc_html__( '%1$s: Entry #%2$s', 'everest-forms' ), esc_html( _draft_or_post_title( $form_id ) ), absint( $entry_id ) );
79 ?>
80 </span>
81 <?php do_action( 'everest_forms_after_entry_details_hndle', $entry ); ?>
82 <a href="#" class="everest-forms-empty-field-toggle">
83 <?php $hide_empty ? esc_html_e( 'Show Empty Fields', 'everest-forms' ) : esc_html_e( 'Hide Empty Fields', 'everest-forms' ); ?>
84 </a>
85 </h2>
86 <div class="inside">
87 <table class="wp-list-table widefat fixed striped posts">
88 <tbody>
89 <?php
90 $entry_meta = apply_filters( 'everest_forms_entry_single_data', $entry->meta, $entry, $form_data );
91
92 if ( empty( $entry_meta ) ) {
93 // Whoops, no fields! This shouldn't happen under normal use cases.
94 echo '<p class="no-fields">' . esc_html__( 'This entry does not have any fields.', 'everest-forms' ) . '</p>';
95 } else {
96 // Display the fields and their values.
97 foreach ( $entry_meta as $meta_key => $meta_value ) {
98 // Check if hidden fields exists.
99 if ( in_array( $meta_key, apply_filters( 'everest_forms_hidden_entry_fields', array() ), true ) ) {
100 continue;
101 }
102
103 $meta_value = is_serialized( $meta_value ) ? $meta_value : wp_strip_all_tags( $meta_value );
104
105 // Check for empty serialized value.
106 if ( is_serialized( $meta_value ) ) {
107 $raw_meta_val = unserialize( $meta_value ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_unserialize
108 if ( preg_match( '/dropdown_/', $meta_key ) && empty( $raw_meta_val[0] ) ) {
109 $meta_value = '';
110 } elseif ( ! preg_match( '/dropdown_/', $meta_key ) && empty( $raw_meta_val['label'][0] ) ) {
111 $meta_value = '';
112 }
113 }
114
115 if ( evf_is_json( $meta_value ) ) {
116 $meta_value = json_decode( $meta_value, true );
117 $meta_value = $meta_value['value'];
118 }
119
120 $field_value = apply_filters( 'everest_forms_html_field_value', $meta_value, $entry_meta[ $meta_key ], $entry_meta, 'entry-single' );
121 $field_class = is_string( $field_value ) && ( '(empty)' === wp_strip_all_tags( $field_value ) || '' === $field_value ) ? ' empty' : '';
122 $field_style = $hide_empty && empty( $field_value ) ? 'display:none;' : '';
123 $correct_answers = false;
124
125 // Field name.
126 echo '<tr class="everest-forms-entry-field field-name' . esc_attr( $field_class ) . '" style="' . esc_attr( $field_style ) . '"><th>';
127
128 $value = evf_get_form_data_by_meta_key( $form_id, $meta_key, json_decode( $entry->fields ) );
129
130 if ( $value ) {
131 if ( apply_filters( 'everest_forms_html_field_label', false ) ) {
132 $correct_answers = apply_filters( 'everest_forms_single_entry_label', $value, $meta_key, $field_value );
133 } else {
134 echo '<strong>' . esc_html( make_clickable( $value ) ) . '</strong>';
135 }
136 } else {
137 echo '<strong>' . esc_html__( 'Field ID', 'everest-forms' ) . '</strong>';
138 }
139
140 echo '</th></tr>';
141
142 // Field value.
143 echo '<tr class="everest-forms-entry-field field-value' . esc_attr( $field_class ) . '" style="' . esc_attr( $field_style ) . '"><td>';
144
145 if ( ! empty( $field_value ) || is_numeric( $field_value ) ) {
146 if ( is_serialized( $field_value ) ) {
147 $field_value = maybe_unserialize( $field_value );
148 $field_label = isset( $field_value['label'] ) ? $field_value['label'] : $field_value;
149
150 if ( ! empty( $field_label ) && is_array( $field_label ) ) {
151 foreach ( $field_label as $field => $value ) {
152 $answer_class = '';
153 if ( $correct_answers ) {
154 if ( in_array( $value, $correct_answers, true ) ) {
155 $answer_class = 'correct_answer';
156 } else {
157 $answer_class = 'wrong_answer';
158 }
159 }
160 echo '<span class="list ' . esc_attr( $answer_class ) . '">' . esc_html( wp_strip_all_tags( $value ) ) . '</span>';
161 }
162 } else {
163 echo nl2br( make_clickable( $field_label ) ); // @codingStandardsIgnoreLine
164 }
165 } else {
166 if ( $correct_answers && false !== $correct_answers ) {
167 if ( in_array( $field_value, $correct_answers, true ) ) {
168 $answer_class = 'correct_answer';
169 } else {
170 $answer_class = 'wrong_answer';
171 }
172 echo '<span class="list ' . esc_attr( $answer_class ) . '">' . esc_html( wp_strip_all_tags( $field_value ) ) . '</span>';
173 } else {
174 echo nl2br( make_clickable( $field_value ) ); // @codingStandardsIgnoreLine
175 }
176 }
177 } else {
178 esc_html_e( 'Empty', 'everest-forms' );
179 }
180
181 echo '</td></tr>';
182 }
183 }
184 ?>
185 </tbody>
186 </table>
187 </div>
188 </div>
189
190 <?php do_action( 'everest_forms_entry_details_content', $entry, $form_id ); ?>
191 </div>
192 <!-- Entry Details metabox -->
193 <div id="postbox-container-1" class="postbox-container">
194 <div id="everest-forms-entry-details" class="stuffbox">
195 <h2><?php esc_html_e( 'Entry Details', 'everest-forms' ); ?></h2>
196 <div class="inside">
197 <div id="submitbox" class="submitbox">
198 <div class="everest-forms-entry-details-meta">
199 <p class="everest-forms-entry-id">
200 <span class="dashicons dashicons-admin-network"></span>
201 <?php esc_html_e( 'Entry ID:', 'everest-forms' ); ?>
202 <strong><?php echo absint( $entry_id ); ?></strong>
203 </p>
204
205 <p class="everest-forms-entry-date">
206 <span class="dashicons dashicons-calendar"></span>
207 <?php esc_html_e( 'Submitted:', 'everest-forms' ); ?>
208 <strong><?php echo esc_html( date_i18n( esc_html__( 'M j, Y @ g:ia', 'everest-forms' ), strtotime( $entry->date_created ) + ( get_option( 'gmt_offset' ) * 3600 ) ) ); ?> </strong>
209 </p>
210
211 <?php if ( ! empty( $entry->date_modified ) ) : ?>
212 <p class="everest-forms-entry-modified">
213 <span class="dashicons dashicons-calendar"></span>
214 <?php esc_html_e( 'Modified:', 'everest-forms' ); ?>
215 <strong><?php echo esc_html( date_i18n( esc_html__( 'M j, Y @ g:ia', 'everest-forms' ), strtotime( $entry->date_modified ) + ( get_option( 'gmt_offset' ) * 3600 ) ) ); ?> </strong>
216 </p>
217 <?php endif; ?>
218
219 <?php if ( ! empty( $entry->user_id ) && 0 !== $entry->user_id ) : ?>
220 <p class="everest-forms-entry-user">
221 <span class="dashicons dashicons-admin-users"></span>
222 <?php
223 esc_html_e( 'User:', 'everest-forms' );
224 $user = get_userdata( $entry->user_id );
225 $user_name = ! empty( $user->display_name ) ? $user->display_name : $user->user_login;
226 // phpcs:ignore WordPress.WP.GlobalVariablesOverride
227 $user_url = add_query_arg(
228 array(
229 'user_id' => absint( $user->ID ),
230 ),
231 admin_url( 'user-edit.php' )
232 );
233 ?>
234 <strong><a href="<?php echo esc_url( $user_url ); ?>"><?php echo esc_html( $user_name ); ?></a></strong>
235 </p>
236 <?php endif; ?>
237
238 <?php if ( ! empty( $entry->user_ip_address ) ) : ?>
239 <p class="everest-forms-entry-ip">
240 <span class="dashicons dashicons-location"></span>
241 <?php esc_html_e( 'User IP:', 'everest-forms' ); ?>
242 <strong><?php echo esc_html( $entry->user_ip_address ); ?></strong>
243 </p>
244 <?php endif; ?>
245
246 <?php if ( ! empty( $entry->referer ) ) : ?>
247 <p class="everest-forms-entry-referer">
248 <span class="dashicons dashicons-admin-links"></span>
249 <?php esc_html_e( 'Referer Link:', 'everest-forms' ); ?>
250 <strong><a href="<?php echo esc_url( $entry->referer ); ?>" target="_blank"><?php esc_html_e( 'View', 'everest-forms' ); ?></a></strong>
251 </p>
252 <?php endif; ?>
253
254 <?php if ( apply_filters( 'everest_forms_entry_details_sidebar_details_status', false, $entry, $form_data ) ) : ?>
255 <p class="everest-forms-entry-status">
256 <span class="dashicons dashicons-category"></span>
257 <?php esc_html_e( 'Status:', 'everest-forms' ); ?>
258 <strong><?php echo ! empty( $entry->status ) ? esc_html( ucwords( sanitize_text_field( $entry->status ) ) ) : esc_html__( 'Completed', 'everest-forms' ); ?></strong>
259 </p>
260 <?php endif; ?>
261
262 <?php do_action( 'everest_forms_entry_details_sidebar_details', $entry, $entry_meta, $form_data ); ?>
263 </div>
264
265 <?php if ( current_user_can( 'everest_forms_edit_entry', $entry->entry_id ) || current_user_can( 'everest_forms_delete_entry', $entry->entry_id ) ) : ?>
266 <div id="major-publishing-actions">
267 <?php do_action( 'everest_forms_entry_details_sidebar_action', $entry, $form_data ); ?>
268 <?php if ( current_user_can( 'everest_forms_delete_entry', $entry->entry_id ) ) : ?>
269 <div id="delete-action">
270 <a class="submitdelete" aria-label="<?php echo esc_attr__( 'Move to trash', 'everest-forms' ); ?>" href="<?php echo esc_url( $trash_link ); ?>"><?php esc_html_e( 'Move to trash', 'everest-forms' ); ?></a>
271 </div>
272 <?php endif; ?>
273 <div class="clear"></div>
274 </div>
275 <?php endif; ?>
276 </div>
277 </div>
278 </div>
279 <?php do_action( 'everest_forms_after_entry_details', $entry, $entry_meta, $form_data ); ?>
280 </div>
281 </div>
282 </div>
283 </div>
284 </div>
285 <!-- Toggle displaying empty fields. -->
286 <script type="text/javascript">
287 jQuery( document ).on( 'click', '#everest-forms-entry-fields .everest-forms-empty-field-toggle', function( event ) {
288 event.preventDefault();
289
290 // Handle cookie.
291 if ( wpCookies.get( 'everest_forms_entry_hide_empty' ) === 'true' ) {
292
293 // User was hiding empty fields, so now display them.
294 wpCookies.remove( 'everest_forms_entry_hide_empty' );
295 jQuery( this ).text( 'Hide Empty Fields' );
296 } else {
297
298 // User was seeing empty fields, so now hide them.
299 wpCookies.set( 'everest_forms_entry_hide_empty', 'true', 2592000 ); // 1month.
300 jQuery( this ).text( 'Show Empty Fields' );
301 }
302
303 jQuery( '.everest-forms-entry-field.empty' ).toggle();
304 });
305 </script>
306