PluginProbe ʕ •ᴥ•ʔ
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI / 2.0.3
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI v2.0.3
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 / builder / class-evf-builder-settings.php
everest-forms / includes / admin / builder Last commit date
class-evf-builder-fields.php 2 years ago class-evf-builder-page.php 3 years ago class-evf-builder-settings.php 2 years ago
class-evf-builder-settings.php
785 lines
1 <?php
2 /**
3 * EverestForms Builder Settings
4 *
5 * @package EverestForms\Admin
6 * @since 1.2.0
7 */
8
9 defined( 'ABSPATH' ) || exit;
10
11 if ( class_exists( 'EVF_Builder_Settings', false ) ) {
12 return new EVF_Builder_Settings();
13 }
14
15 /**
16 * EVF_Builder_Settings class.
17 */
18 class EVF_Builder_Settings extends EVF_Builder_Page {
19
20 /**
21 * Constructor.
22 */
23 public function __construct() {
24 $this->id = 'settings';
25 $this->label = esc_html__( 'Settings', 'everest-forms' );
26 $this->sidebar = true;
27
28 add_action( 'everest_forms_settings_connections_email', array( $this, 'output_connections_list' ) );
29
30 add_filter( 'everest_forms_builder_settings_section', array( $this, 'add_custom_css_js_section' ), 11, 2 );
31 add_action( 'everest_forms_settings_panel_content', array( $this, 'add_custom_css_js_settings' ), 111, 1 );
32
33 parent::__construct();
34 }
35
36 /**
37 * Outputs the builder sidebar.
38 */
39 public function output_sidebar() {
40 $sections = apply_filters(
41 'everest_forms_builder_settings_section',
42 array(
43 'general' => esc_html__( 'General', 'everest-forms' ),
44 'email' => esc_html__( 'Email', 'everest-forms' ),
45 'security' => esc_html__( 'Anti-Spam and Security', 'everest-forms' ),
46 ),
47 $this->form_data
48 );
49
50 if ( ! empty( $sections ) ) {
51 foreach ( $sections as $slug => $section ) {
52 $this->add_sidebar_tab( $section, $slug );
53 do_action( 'everest_forms_settings_connections_' . $slug, $section );
54 }
55 }
56 }
57
58 /**
59 * Get form data
60 *
61 * @return array form data.
62 */
63 private function form_data() {
64 $form_data = array();
65
66 if ( ! empty( $_GET['form_id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
67 $form_data = evf()->form->get( absint( $_GET['form_id'] ), array( 'content_only' => true ) ); // phpcs:ignore WordPress.Security.NonceVerification
68 }
69
70 return $form_data;
71 }
72
73 /**
74 * Outputs the connection lists on sidebar.
75 */
76 public function output_connections_list() {
77 $form_data = $this->form_data();
78 $email = isset( $form_data['settings']['email'] ) ? $form_data['settings']['email'] : array();
79
80 if ( empty( $email ) ) {
81 $email['connection_1'] = array( 'connection_name' => __( 'Admin Notification', 'everest-forms' ) );
82 }
83
84 ?>
85 <div class="everest-forms-active-email">
86 <button class="everest-forms-btn everest-forms-btn-primary everest-forms-email-add" data-form_id="<?php echo isset( $_GET['form_id'] ) ? absint( sanitize_text_field( wp_unslash( $_GET['form_id'] ) ) ) : 0; // phpcs:ignore WordPress.Security.NonceVerification ?>" data-source="email" data-type="<?php echo esc_attr( 'connection' ); ?>">
87 <?php printf( esc_html__( 'Add New Email', 'everest-forms' ) ); ?>
88 </button>
89 <ul class="everest-forms-active-email-connections-list">
90 <?php if ( ! empty( $email ) ) { ?>
91 <h4><?php echo esc_html__( 'Email Notifications', 'everest-forms' ); ?> </h4>
92 <?php
93 }
94 if ( ! empty( $email ) ) {
95 foreach ( $email as $connection_id => $connection_data ) {
96 if ( preg_match( '/connection_/', $connection_id ) ) {
97 $connection_name = ! empty( $connection_data['connection_name'] ) ? $connection_data['connection_name'] : '';
98 if ( 'connection_1' !== $connection_id ) {
99 $remove_class = 'email-remove';
100 } else {
101 $remove_class = 'email-default-remove';
102 }
103 ?>
104 <li class="connection-list" data-connection-id="<?php echo esc_attr( $connection_id ); ?>">
105 <a class="user-nickname" href="#"><?php echo esc_html( $connection_name ); ?></a>
106 <a href="#"><span class="<?php echo esc_attr( $remove_class ); ?>"><?php esc_html_e( 'Remove', 'everest-forms' ); ?></a>
107 </li>
108 <?php
109 }
110 }
111 }
112 ?>
113 </ul>
114 </div>
115 <?php
116 }
117
118 /**
119 * Outputs the builder content.
120 */
121 public function output_content() {
122 $settings = isset( $this->form_data['settings'] ) ? $this->form_data['settings'] : array();
123
124 // --------------------------------------------------------------------//
125 // General
126 // --------------------------------------------------------------------//
127 echo '<div class="evf-content-section evf-content-general-settings">';
128 echo '<div class="evf-content-section-title">';
129 esc_html_e( 'General', 'everest-forms' );
130 echo '</div>';
131 everest_forms_panel_field(
132 'text',
133 'settings',
134 'form_title',
135 $this->form_data,
136 esc_html__( 'Form Name', 'everest-forms' ),
137 array(
138 'default' => isset( $this->form->post_title ) ? $this->form->post_title : '',
139 'tooltip' => esc_html__( 'Give a name to this form', 'everest-forms' ),
140 )
141 );
142 everest_forms_panel_field(
143 'textarea',
144 'settings',
145 'form_description',
146 $this->form_data,
147 esc_html__( 'Form description', 'everest-forms' ),
148 array(
149 'input_class' => 'short',
150 'default' => isset( $this->form->form_description ) ? $this->form->form_description : '',
151 'tooltip' => sprintf( esc_html__( 'Give the description to this form', 'everest-forms' ) ),
152 )
153 );
154 everest_forms_panel_field(
155 'textarea',
156 'settings',
157 'form_disable_message',
158 $this->form_data,
159 esc_html__( 'Form disabled message', 'everest-forms' ),
160 array(
161 'input_class' => 'short',
162 'default' => isset( $this->form->form_disable_message ) ? $this->form->form_disable_message : __( 'This form is disabled.', 'everest-forms' ),
163 'tooltip' => sprintf( esc_html__( 'Message that shows up if the form is disabled.', 'everest-forms' ) ),
164 )
165 );
166 everest_forms_panel_field(
167 'textarea',
168 'settings',
169 'successful_form_submission_message',
170 $this->form_data,
171 esc_html__( 'Successful form submission message', 'everest-forms' ),
172 array(
173 'input_class' => 'short',
174 'default' => isset( $this->form->successful_form_submission_message ) ? $this->form->successful_form_submission_message : __( 'Thanks for contacting us! We will be in touch with you shortly', 'everest-forms' ),
175 /* translators: %1$s - general settings docs url */
176 'tooltip' => sprintf( esc_html__( 'Success message that shows up after submitting form. <a href="%1$s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/general-settings/#4-toc-title' ) ),
177 )
178 );
179 everest_forms_panel_field(
180 'checkbox',
181 'settings',
182 'submission_message_scroll',
183 $this->form_data,
184 __( 'Automatically scroll to the submission message', 'everest-forms' ),
185 array(
186 'default' => '1',
187 )
188 );
189
190 echo '<div class="everest-forms-border-container"><h4 class="everest-forms-border-container-title">' . esc_html__( 'Submission Redirection', 'everest-forms' ) . '</h4>';
191
192 everest_forms_panel_field(
193 'select',
194 'settings',
195 'redirect_to',
196 $this->form_data,
197 esc_html__( 'Redirect To', 'everest-forms' ),
198 array(
199 'default' => 'same',
200 /* translators: %1$s - general settings docs url */
201 'tooltip' => sprintf( esc_html__( 'Choose where to redirect after form submission. <a href="%s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/general-settings/#5-toc-title' ) ),
202 'options' => array(
203 'same' => esc_html__( 'Same Page', 'everest-forms' ),
204 'custom_page' => esc_html__( 'Custom Page', 'everest-forms' ),
205 'external_url' => esc_html__( 'External URL', 'everest-forms' ),
206 ),
207 )
208 );
209
210 everest_forms_panel_field(
211 'select',
212 'settings',
213 'custom_page',
214 $this->form_data,
215 esc_html__( 'Custom Page', 'everest-forms' ),
216 array(
217 'default' => '0',
218 'options' => $this->get_all_pages(),
219 )
220 );
221
222 everest_forms_panel_field(
223 'text',
224 'settings',
225 'external_url',
226 $this->form_data,
227 esc_html__( 'External URL', 'everest-forms' ),
228 array(
229 'default' => isset( $this->form->external_url ) ? $this->form->external_url : '',
230 )
231 );
232
233 everest_forms_panel_field(
234 'checkbox',
235 'settings',
236 'enable_redirect_query_string',
237 $this->form_data,
238 esc_html__( ' Append Query String', 'everest-forms' ),
239 array(
240 'default' => '0',
241 )
242 );
243
244 everest_forms_panel_field(
245 'text',
246 'settings',
247 'query_string',
248 $this->form_data,
249 esc_html__( 'Query String', 'everest-forms' ),
250 array(
251 'default' => isset( $settings['query_string'] ) ? $settings['query_string'] : '',
252 'class' => isset( $settings['enable_redirect_query_string'] ) && '1' === $settings['enable_redirect_query_string'] ? '' : 'everest-forms-hidden',
253 'smarttags' => array(
254 'type' => 'all',
255 'form_fields' => 'all',
256 ),
257 'after' => '<p class="desc">' . sprintf( esc_html__( 'Example: firstname= {field_id="name_ys0GeZISRs-1"}&email={field_id="email_LbH5NxasXM-2"}', 'everest-forms' ) ) . '</p>',
258 )
259 );
260
261 do_action( 'everest_forms_submission_redirection_settings', $this, 'submission_redirection' );
262 echo '</div>';
263
264 everest_forms_panel_field(
265 'select',
266 'settings',
267 'layout_class',
268 $this->form_data,
269 esc_html__( 'Layout Design', 'everest-forms' ),
270 array(
271 'default' => '0',
272 'tooltip' => esc_html__( 'Choose design template for the Form', 'everest-forms' ),
273 'options' => array(
274 'default' => esc_html__( 'Default', 'everest-forms' ),
275 'layout-two' => esc_html__( 'Classic Layout', 'everest-forms' ),
276 ),
277 )
278 );
279 everest_forms_panel_field(
280 'text',
281 'settings',
282 'form_class',
283 $this->form_data,
284 esc_html__( 'Form Class', 'everest-forms' ),
285 array(
286 'default' => isset( $this->form->form_class ) ? $this->form->form_class : '',
287 /* translators: %1$s - general settings docs url */
288 'tooltip' => sprintf( esc_html__( 'Enter CSS class names for the form wrapper. Multiple class names should be separated with spaces. <a href="%s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/general-settings/#7-toc-title' ) ),
289 )
290 );
291
292 do_action( 'everest_forms_field_required_indicators', $this->form_data, $settings );
293
294 echo '<div class="everest-forms-border-container"><h4 class="everest-forms-border-container-title">' . esc_html__( 'Submit Button', 'everest-forms' ) . '</h4>';
295 everest_forms_panel_field(
296 'text',
297 'settings',
298 'submit_button_text',
299 $this->form_data,
300 esc_html__( 'Submit button text', 'everest-forms' ),
301 array(
302 'default' => isset( $settings['submit_button_text'] ) ? $settings['submit_button_text'] : __( 'Submit', 'everest-forms' ),
303 'tooltip' => esc_html__( 'Enter desired text for submit button.', 'everest-forms' ),
304 )
305 );
306 everest_forms_panel_field(
307 'text',
308 'settings',
309 'submit_button_processing_text',
310 $this->form_data,
311 __( 'Submit button processing text', 'everest-forms' ),
312 array(
313 'default' => isset( $settings['submit_button_processing_text'] ) ? $settings['submit_button_processing_text'] : __( 'Processing&hellip;', 'everest-forms' ),
314 'tooltip' => esc_html__( 'Enter the submit button text that you would like the button to display while the form submission is processing.', 'everest-forms' ),
315 )
316 );
317 everest_forms_panel_field(
318 'text',
319 'settings',
320 'submit_button_class',
321 $this->form_data,
322 esc_html__( 'Submit button class', 'everest-forms' ),
323 array(
324 'default' => isset( $settings['submit_button_class'] ) ? $settings['submit_button_class'] : '',
325 'tooltip' => esc_html__( 'Enter CSS class names for submit button. Multiple class names should be separated with spaces.', 'everest-forms' ),
326 )
327 );
328 do_action( 'everest_forms_inline_submit_settings', $this, 'submit', 'connection_1' );
329 echo '</div>';
330 do_action( 'everest_forms_inline_integrations_settings', $this->form_data, $settings );
331 everest_forms_panel_field(
332 'checkbox',
333 'settings',
334 'ajax_form_submission',
335 $this->form_data,
336 esc_html__( 'Enable Ajax Form Submission', 'everest-forms' ),
337 array(
338 'default' => isset( $settings['ajax_form_submission'] ) ? $settings['ajax_form_submission'] : 0,
339 'tooltip' => esc_html__( 'Enables form submission without reloading the page.', 'everest-forms' ),
340 )
341 );
342 everest_forms_panel_field(
343 'checkbox',
344 'settings',
345 'disabled_entries',
346 $this->form_data,
347 esc_html__( 'Disable storing entry information', 'everest-forms' ),
348 array(
349 'default' => isset( $settings['disabled_entries'] ) ? $settings['disabled_entries'] : 0,
350 /* translators: %1$s - general settings docs url */
351 'tooltip' => sprintf( esc_html__( 'Disable storing form entries. <a href="%1$s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/general-settings/#13-toc-title' ) ),
352 )
353 );
354
355 do_action( 'everest_forms_inline_general_settings', $this );
356
357 echo '</div>';
358
359 // --------------------------------------------------------------------//
360 // Email
361 // --------------------------------------------------------------------//
362 $form_name = isset( $settings['form_title'] ) ? ' - ' . $settings['form_title'] : '';
363 if ( ! isset( $settings['email']['connection_1'] ) ) {
364 $settings['email']['connection_1'] = array( 'connection_name' => __( 'Admin Notification', 'everest-forms' ) );
365 $settings['email']['connection_1']['evf_to_email'] = isset( $settings['email']['evf_to_email'] ) ? $settings['email']['evf_to_email'] : '{admin_email}';
366 $settings['email']['connection_1']['evf_from_name'] = isset( $settings['email']['evf_from_name'] ) ? $settings['email']['evf_from_name'] : get_bloginfo( 'name', 'display' );
367 $settings['email']['connection_1']['evf_from_email'] = isset( $settings['email']['evf_from_email'] ) ? $settings['email']['evf_from_email'] : '{admin_email}';
368 $settings['email']['connection_1']['evf_reply_to'] = isset( $settings['email']['evf_reply_to'] ) ? $settings['email']['evf_reply_to'] : '';
369 /* translators: %s: Form Name */
370 $settings['email']['connection_1']['evf_email_subject'] = isset( $settings['email']['evf_email_subject'] ) ? $settings['email']['evf_email_subject'] : sprintf( esc_html__( 'New Form Entry %s', 'everest-forms' ), $form_name );
371 $settings['email']['connection_1']['evf_email_message'] = isset( $settings['email']['evf_email_message'] ) ? $settings['email']['evf_email_message'] : '{all_fields}';
372
373 $email_settings = array( 'attach_pdf_to_admin_email', 'show_header_in_attachment_pdf_file', 'conditional_logic_status', 'conditional_option', 'conditionals' );
374 foreach ( $email_settings as $email_setting ) {
375 $settings['email']['connection_1'][ $email_setting ] = isset( $settings['email'][ $email_setting ] ) ? $settings['email'][ $email_setting ] : '';
376 }
377
378 // Backward compatibility.
379 $unique_connection_id = sprintf( 'connection_%s', uniqid() );
380 if ( isset( $settings['email']['evf_send_confirmation_email'] ) && '1' === $settings['email']['evf_send_confirmation_email'] ) {
381 $settings['email'][ $unique_connection_id ] = array( 'connection_name' => esc_html__( 'User Notification', 'everest-forms' ) );
382
383 foreach ( $email_settings as $email_setting ) {
384 $settings['email'][ $unique_connection_id ][ $email_setting ] = isset( $settings['email'][ $email_setting ] ) ? $settings['email'][ $email_setting ] : '';
385 }
386 }
387 }
388
389 echo "<div class = 'evf-email-settings-wrapper'>";
390
391 foreach ( $settings['email'] as $connection_id => $connection ) :
392 if ( preg_match( '/connection_/', $connection_id ) ) {
393 // Backward Compatibility.
394 if ( isset( $settings['email']['enable_email_notification'] ) && '0' === $settings['email']['enable_email_notification'] ) {
395 $email_status = isset( $settings['email']['enable_email_notification'] ) ? $settings['email']['enable_email_notification'] : '1';
396 } else {
397 $email_status = isset( $settings['email'][ $connection_id ]['enable_email_notification'] ) ? $settings['email'][ $connection_id ]['enable_email_notification'] : '1';
398 }
399 $hidden_class = '1' !== $email_status ? 'everest-forms-hidden' : '';
400 $toggler_hide_class = isset( $toggler_hide_class ) ? 'style=display:none;' : '';
401 echo '<div class="evf-content-section evf-content-email-settings">';
402 echo '<div class="evf-content-section-title" ' . esc_attr( $toggler_hide_class ) . '>';
403 echo '<div class="evf-title">' . esc_html__( 'Email', 'everest-forms' ) . '</div>';
404 ?>
405 <div class="evf-toggle-section">
406 <label class="evf-toggle-switch">
407 <input type="hidden" name="settings[email][<?php echo esc_attr( $connection_id ); ?>][enable_email_notification]" value="0" class="widefat">
408 <input type="checkbox" name="settings[email][<?php echo esc_attr( $connection_id ); ?>][enable_email_notification]" value="1" data-connection-id="<?php echo esc_attr( $connection_id ); ?>" <?php echo checked( '1', $email_status, false ); ?> >
409 <span class="evf-toggle-switch-wrap"></span>
410 <span class="evf-toggle-switch-control"></span>
411 </label>
412 </div></div>
413 <?php
414
415 echo '<div class="evf-content-email-settings-inner ' . esc_attr( $hidden_class ) . '" data-connection_id=' . esc_attr( $connection_id ) . '>';
416
417 everest_forms_panel_field(
418 'text',
419 'email',
420 'connection_name',
421 $this->form_data,
422 '',
423 array(
424 'default' => isset( $settings['email'][ $connection_id ]['connection_name'] ) ? $settings['email'][ $connection_id ]['connection_name'] : __( 'Admin Notification', 'everest-forms' ),
425 'class' => 'everest-forms-email-name',
426 'parent' => 'settings',
427 'subsection' => $connection_id,
428 )
429 );
430
431 everest_forms_panel_field(
432 'text',
433 'email',
434 'evf_to_email',
435 $this->form_data,
436 esc_html__( 'To Address', 'everest-forms' ),
437 array(
438 'default' => isset( $settings['email'][ $connection_id ]['evf_to_email'] ) ? $settings['email'][ $connection_id ]['evf_to_email'] : '{admin_email}',
439 /* translators: %1$s - general settings docs url */
440 'tooltip' => sprintf( esc_html__( 'Enter the recipient\'s email address (comma separated) to receive form entry notifications. <a href="%s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/email-settings/#1-toc-title' ) ),
441 'smarttags' => array(
442 'type' => 'fields',
443 'form_fields' => 'email',
444 ),
445 'parent' => 'settings',
446 'subsection' => $connection_id,
447 )
448 );
449 if ( 'yes' === get_option( 'everest_forms_enable_email_copies' ) ) {
450 everest_forms_panel_field(
451 'text',
452 'email',
453 'evf_carboncopy',
454 $this->form_data,
455 esc_html__( 'Cc Address', 'everest-forms' ),
456 array(
457 'default' => isset( $settings['email'][ $connection_id ]['evf_carboncopy'] ) ? $settings['email'][ $connection_id ]['evf_carboncopy'] : '',
458 'tooltip' => esc_html__( 'Enter Cc recipient\'s email address (comma separated) to receive form entry notifications.', 'everest-forms' ),
459 'smarttags' => array(
460 'type' => 'fields',
461 'form_fields' => 'email',
462 ),
463 'parent' => 'settings',
464 'subsection' => $connection_id,
465 )
466 );
467 everest_forms_panel_field(
468 'text',
469 'email',
470 'evf_blindcarboncopy',
471 $this->form_data,
472 esc_html__( 'Bcc Address', 'everest-forms' ),
473 array(
474 'default' => isset( $settings['email'][ $connection_id ]['evf_blindcarboncopy'] ) ? $settings['email'][ $connection_id ]['evf_blindcarboncopy'] : '',
475 'tooltip' => esc_html__( 'Enter Bcc recipient\'s email address (comma separated) to receive form entry notifications.', 'everest-forms' ),
476 'smarttags' => array(
477 'type' => 'fields',
478 'form_fields' => 'email',
479 ),
480 'parent' => 'settings',
481 'subsection' => $connection_id,
482 )
483 );
484 }
485 everest_forms_panel_field(
486 'text',
487 'email',
488 'evf_from_name',
489 $this->form_data,
490 esc_html__( 'From Name', 'everest-forms' ),
491 array(
492 'default' => isset( $settings['email'][ $connection_id ]['evf_from_name'] ) ? $settings['email'][ $connection_id ]['evf_from_name'] : get_bloginfo( 'name', 'display' ),
493 /* translators: %1$s - general settings docs url */
494 'tooltip' => sprintf( esc_html__( 'Enter the From Name to be displayed in Email. <a href="%1$s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/email-settings/#2-toc-title' ) ),
495 'smarttags' => array(
496 'type' => 'all',
497 'form_fields' => 'all',
498 ),
499 'parent' => 'settings',
500 'subsection' => $connection_id,
501 )
502 );
503 everest_forms_panel_field(
504 'text',
505 'email',
506 'evf_from_email',
507 $this->form_data,
508 esc_html__( 'From Address', 'everest-forms' ),
509 array(
510 'default' => isset( $settings['email'][ $connection_id ]['evf_from_email'] ) ? $settings['email'][ $connection_id ]['evf_from_email'] : '{admin_email}',
511 /* translators: %1$s - general settings docs url */
512 'tooltip' => sprintf( esc_html__( 'Enter the Email address from which you want to send Email. <a href="%s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/email-settings/#3-toc-title' ) ),
513 'smarttags' => array(
514 'type' => 'fields',
515 'form_fields' => 'email',
516 ),
517 'parent' => 'settings',
518 'subsection' => $connection_id,
519 )
520 );
521 everest_forms_panel_field(
522 'text',
523 'email',
524 'evf_reply_to',
525 $this->form_data,
526 esc_html__( 'Reply To', 'everest-forms' ),
527 array(
528 'default' => isset( $settings['email'][ $connection_id ]['evf_reply_to'] ) ? $settings['email'][ $connection_id ]['evf_reply_to'] : '',
529 /* translators: %1$s - general settings docs url */
530 'tooltip' => sprintf( esc_html__( 'Enter the reply to email address where you want the email to be received when this email is replied. <a href="%1$s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/email-settings/#4-toc-title' ) ),
531 'smarttags' => array(
532 'type' => 'fields',
533 'form_fields' => 'email',
534 ),
535 'parent' => 'settings',
536 'subsection' => $connection_id,
537 )
538 );
539 everest_forms_panel_field(
540 'text',
541 'email',
542 'evf_email_subject',
543 $this->form_data,
544 esc_html__( 'Email Subject', 'everest-forms' ),
545 array(
546 /* translators: %s: Form Name */
547 'default' => isset( $settings['email'][ $connection_id ]['evf_email_subject'] ) ? $settings['email'][ $connection_id ]['evf_email_subject'] : sprintf( esc_html__( 'New Form Entry %s', 'everest-forms' ), $form_name ),
548 /* translators: %1$s - General Settings docs url */
549 'tooltip' => sprintf( esc_html__( 'Enter the subject of the email. <a href="%1$s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/email-settings/#5-toc-title' ) ),
550 'smarttags' => array(
551 'type' => 'all',
552 'form_fields' => 'all',
553 ),
554 'parent' => 'settings',
555 'subsection' => $connection_id,
556 )
557 );
558 // --------------------------------------------------------------------//
559 // Everest Forms AI Setting Section Start
560 // --------------------------------------------------------------------//
561 if ( ! empty( get_option( 'everest_forms_ai_api_key' ) ) ) {
562 everest_forms_panel_field(
563 'checkbox',
564 'email',
565 'enable_ai_email_prompt',
566 $this->form_data,
567 esc_html__( 'Enable Email Prompt', 'everest-forms' ),
568 array(
569 'default' => ! empty( $settings['email'][ $connection_id ]['enable_ai_email_prompt'] ) ? $settings['email'][ $connection_id ]['enable_ai_email_prompt'] : '0',
570 'class' => 'everest-forms-enable-email-prompt',
571 'tooltip' => sprintf( esc_html__( 'Check this option to enable the email message prompt. <a href="%s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/ai/#6-toc-title' ) ),
572 'parent' => 'settings',
573 'subsection' => $connection_id,
574 )
575 );
576 everest_forms_panel_field(
577 'textarea',
578 'email',
579 'evf_email_message_prompt',
580 $this->form_data,
581 esc_html__( 'Email Message Prompt', 'everest-forms' ),
582 array(
583 'default' => isset( $settings['email'][ $connection_id ]['evf_email_message_prompt'] ) ? $settings['email'][ $connection_id ]['evf_email_message_prompt'] : '',
584 'class' => isset( $settings['email'][ $connection_id ]['enable_ai_email_prompt'] ) && '1' === $settings['email'][ $connection_id ]['enable_ai_email_prompt'] ? 'evf-email-message-prompt' : 'evf-email-message-prompt everest-forms-hidden',
585 /* translators: %1$s - general settings docs url */
586 'tooltip' => sprintf( esc_html__( 'Enter the email message prompt. <a href="%1$s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/ai/#6-toc-title' ) ),
587 'smarttags' => array(
588 'type' => 'all',
589 'form_fields' => 'all',
590 ),
591 'parent' => 'settings',
592 'subsection' => $connection_id,
593 )
594 );
595 }
596 // --------------------------------------------------------------------//
597 // Everest Forms AI Setting Section End
598 // --------------------------------------------------------------------//
599 everest_forms_panel_field(
600 'tinymce',
601 'email',
602 'evf_email_message',
603 $this->form_data,
604 esc_html__( 'Email Message', 'everest-forms' ),
605 array(
606 'default' => isset( $settings['email'][ $connection_id ]['evf_email_message'] ) ? evf_string_translation( $this->form_data['id'], 'evf_email_message', $settings['email'][ $connection_id ]['evf_email_message'] ) : __( '{all_fields}', 'everest-forms' ),
607 /* translators: %1$s - general settings docs url */
608 'tooltip' => sprintf( esc_html__( 'Enter the message of the email. <a href="%1$s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/email-settings/#6-toc-title' ) ),
609 'smarttags' => array(
610 'type' => 'all',
611 'form_fields' => 'all',
612 ),
613 'parent' => 'settings',
614 'subsection' => $connection_id,
615 /* translators: %s - all fields smart tag. */
616 'after' => empty( get_option( 'everest_forms_ai_api_key' ) ) ? '<p class="desc">' . sprintf( esc_html__( 'To display all form fields, use the %s Smart Tag.', 'everest-forms' ), '<code>{all_fields}</code>' ) . '</p>' : '<p class="desc">' . sprintf( esc_html__( 'To display all form fields, use the %1$s Smart Tag. Use %2$s Smart Tag for AI-generated emails', 'everest-forms' ), '<code>{all_fields}</code>', '<code>{ai_email_response}</code>' ) . '</p>',
617 )
618 );
619
620 do_action( 'everest_forms_inline_email_settings', $this, $connection_id );
621
622 echo '</div></div>';
623 }
624
625 endforeach;
626
627 echo '</div>';
628 // --------------------------------------------------------------------//
629 // Spam Protection and Security
630 // --------------------------------------------------------------------//
631 echo '<div class="evf-content-section evf-content-security-settings">';
632 echo '<div class="evf-content-section-title">';
633 esc_html_e( 'Anti-Spam and Security', 'everest-forms' );
634 echo '</div>';
635 echo '<div class="everest-forms-border-container"><h4 class="everest-forms-border-container-title">' . esc_html__( 'Honeypot', 'everest-forms' ) . '</h4>';
636 everest_forms_panel_field(
637 'checkbox',
638 'settings',
639 'honeypot',
640 $this->form_data,
641 esc_html__( 'Enable anti-spam honeypot', 'everest-forms' ),
642 array(
643 'default' => '1',
644 )
645 );
646 do_action( 'everest_forms_inline_honeypot_settings', $this, 'honeypot', 'connection_1' );
647 echo '</div>';
648 if ( 'yes' === get_option( 'everest_forms_recaptcha_v2_invisible' ) ) {
649 $recaptcha_type = get_option( 'everest_forms_recaptcha_type', 'v2' );
650 $recaptcha_key = get_option( 'everest_forms_recaptcha_' . $recaptcha_type . '_invisible_site_key' );
651 $recaptcha_secret = get_option( 'everest_forms_recaptcha_' . $recaptcha_type . '_invisible_secret_key' );
652 } else {
653 $recaptcha_type = get_option( 'everest_forms_recaptcha_type', 'v2' );
654 $recaptcha_key = get_option( 'everest_forms_recaptcha_' . $recaptcha_type . '_site_key' );
655 $recaptcha_secret = get_option( 'everest_forms_recaptcha_' . $recaptcha_type . '_secret_key' );
656 }
657
658 switch ( $recaptcha_type ) {
659 case 'v2':
660 $recaptcha_label = esc_html__( 'Enable Google reCAPTCHA v2', 'everest-forms' );
661 break;
662
663 case 'v3':
664 $recaptcha_label = esc_html__( 'Enable Google reCAPTCHA v3', 'everest-forms' );
665 break;
666
667 case 'hcaptcha':
668 $recaptcha_label = esc_html__( 'Enable hCaptcha', 'everest-forms' );
669 break;
670
671 case 'turnstile':
672 $recaptcha_label = esc_html__( 'Enable Cloudflare Turnstile', 'everest-forms' );
673 break;
674 }
675 $recaptcha_label = 'yes' === get_option( 'everest_forms_recaptcha_v2_invisible' ) && 'v2' === $recaptcha_type ? esc_html__( 'Enable Google Invisible reCAPTCHA v2', 'everest-forms' ) : $recaptcha_label;
676 if ( ! empty( $recaptcha_key ) && ! empty( $recaptcha_secret ) ) {
677 echo '<div class="everest-forms-border-container"><h4 class="everest-forms-border-container-title">' . esc_html__( 'Captcha', 'everest-forms' ) . '</h4>';
678
679 everest_forms_panel_field(
680 'checkbox',
681 'settings',
682 'recaptcha_support',
683 $this->form_data,
684 $recaptcha_label,
685 array(
686 'default' => '0',
687 /* translators: %1$s - general settings docs url */
688 'tooltip' => sprintf( esc_html__( 'Enable reCaptcha. Make sure the site key and secret key is set in settings page. <a href="%s" target="_blank">Learn More</a>', 'everest-forms' ), esc_url( 'https://docs.everestforms.net/docs/how-to-integrate-google-recaptcha/#7-toc-title' ) ),
689 )
690 );
691
692 do_action( 'everest_forms_inline_captcha_settings', $this, 'captcha', 'connection_1' );
693 echo '</div>';
694 }
695 do_action( 'everest_forms_inline_security_settings', $this );
696 echo '</div>';
697
698 do_action( 'everest_forms_settings_panel_content', $this );
699 }
700
701 /**
702 * Add Custom CSS and JS menu item to the builder settings list.
703 *
704 * @param [array] $arr Setting Menu items list.
705 * @param [array] $form_data Form Data.
706 * @return array
707 */
708 public function add_custom_css_js_section( $arr, $form_data ) {
709
710 $arr['custom-css-js'] = esc_html__( 'Custom CSS and JS', 'everest-forms' );
711
712 return $arr;
713 }
714
715 /**
716 * Add Custom Css and Js settings section.
717 *
718 * @param [array] $form_data Form Data.
719 * @return void
720 */
721 public function add_custom_css_js_settings( $form_data ) {
722 // --------------------------------------------------------------------//
723 // Custom CSS and JS
724 // --------------------------------------------------------------------//
725 echo '<div class="evf-content-section evf-content-custom-css-js-settings">';
726 echo '<div class="evf-content-section-title">';
727 esc_html_e( 'Custom CSS and JS', 'everest-forms' );
728 echo '</div>';
729 echo '<div class="everest-forms-border-container"><h4 class="everest-forms-border-container-title">' . esc_html__( 'Custom CSS', 'everest-forms' ) . '</h4>';
730 everest_forms_panel_field(
731 'checkbox',
732 'settings',
733 'evf-enable-custom-css',
734 $this->form_data,
735 esc_html__( 'Enable Custom CSS', 'everest-forms' ),
736 array(
737 'default' => '0',
738 )
739 );
740 everest_forms_panel_field(
741 'textarea',
742 'settings',
743 'evf-custom-css',
744 $this->form_data,
745 esc_html__( 'Custom CSS', 'everest-forms' )
746 );
747 echo '</div>';
748 echo '<div class="everest-forms-border-container"><h4 class="everest-forms-border-container-title">' . esc_html__( 'Custom JS', 'everest-forms' ) . '</h4>';
749 everest_forms_panel_field(
750 'checkbox',
751 'settings',
752 'evf-enable-custom-js',
753 $this->form_data,
754 esc_html__( 'Enable Custom JS', 'everest-forms' ),
755 array(
756 'default' => '0',
757 )
758 );
759 everest_forms_panel_field(
760 'textarea',
761 'settings',
762 'evf-custom-js',
763 $this->form_data,
764 esc_html__( 'Custom JS', 'everest-forms' )
765 );
766 echo '</div>';
767
768 echo '</div>';
769 }
770
771 /**
772 * Get all pages.
773 */
774 public function get_all_pages() {
775 $pages = array();
776 foreach ( get_pages() as $page ) {
777 $pages[ $page->ID ] = $page->post_title;
778 }
779
780 return $pages;
781 }
782 }
783
784 return new EVF_Builder_Settings();
785