PluginProbe
weForms – Easy Drag & Drop Contact Form Builder For WordPress / 1.4.3
weForms – Easy Drag & Drop Contact Form Builder For WordPress v1.4.3
1.6.7 1.6.8 1.6.9 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.18 1.6.19 1.6.2 1.6.20 1.6.21 1.6.22 1.6.23 1.6.24 1.6.25 1.6.26 1.6.27 1.6.28 1.6.3 1.6.4 1.6.5 1.6.6 All 74 releases
weforms / includes / class-frontend-form.php

class-frontend-form.php in weForms – Easy Drag & Drop Contact Form Builder For WordPress 1.4.3, at includes/class-frontend-form.php

182 lines 5.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * The frontend form class
5 */
6 class WeForms_Frontend_Form {
7
8 public function __construct() {
9 add_shortcode( 'weforms', [ $this, 'render_shortcode' ] );
10 }
11
12 /**
13 * Show form error
14 *
15 * @param string $message
16 * @param string $type
17 *
18 * @return string
19 */
20 public function show_error( $message, $type = 'info' ) {
21 return sprintf( '<div class="wpuf-%s">%s</div>', $type, $message );
22 }
23
24 /**
25 * Render contact form shortcode
26 *
27 * @param array $atts
28 * @param string $contents
29 *
30 * @return string
31 */
32 public function render_shortcode( $atts, $contents = '' ) {
33 extract( shortcode_atts( [ 'id' => 0 ], $atts ) );
34
35 weforms()->scripts->enqueue_frontend();
36
37 ob_start();
38
39 $form = weforms()->form->get( $id );
40
41 if ( !$form->id ) {
42 return $this->show_error( __( 'The form couldn\'t be found.', 'weforms' ) );
43 }
44
45 $is_open = $form->is_submission_open();
46
47 if ( is_wp_error( $is_open ) ) {
48 return $this->show_error( $is_open->get_error_message() );
49 }
50
51 $this->render_form( $form, $atts );
52
53 return ob_get_clean();
54 }
55
56 /**
57 * Render the form
58 *
59 * @param \WeForms_Form $form
60 *
61 * @return void
62 */
63 public function render_form( $form, $atts ) {
64 $form_fields = $form->get_fields();
65 $form_settings = $form->get_settings();
66 $show_credit = weforms_get_settings( 'credit', false );
67 $formid = 'weforms-' . $form->id;
68 $use_theme_css = isset( $form_settings['use_theme_css'] ) ? $form_settings['use_theme_css'] : 'wpuf-style';
69
70 if ( isset( $atts['modal'] ) && 'true' == $atts['modal'] ) {
71 wp_enqueue_script( 'weforms-modal-js', WEFORMS_ASSET_URI . '/modal/jquery.modal.js', [ 'jquery', 'weforms-form' ], false, false );
72 wp_enqueue_style( 'weforms_modal_styles', WEFORMS_ASSET_URI . '/modal/jquery.modal.css' );
73
74 $modal_class = 'modal';
75 $modal_id = 'modal-form';
76 $modal_style = 'style="display:none"';
77 } else {
78 $modal_class = $modal_id = $modal_style = '';
79 } ?>
80
81 <script type="text/javascript">
82 if ( typeof wpuf_conditional_items === 'undefined' ) {
83 window.wpuf_conditional_items = [];
84 }
85
86 if ( typeof wpuf_plupload_items === 'undefined' ) {
87 window.wpuf_plupload_items = [];
88 }
89
90 if ( typeof wpuf_map_items === 'undefined' ) {
91 window.wpuf_map_items = [];
92 }
93 </script>
94
95 <form class="wpuf-form-add <?php echo esc_attr( $formid ); ?> <?php echo esc_attr( $modal_class ); ?> <?php echo
96 esc_attr( $use_theme_css ); ?>" action="" method="post" <?php echo esc_attr( $modal_style ); ?> id="<?php echo
97 esc_attr($modal_id); ?>">
98
99 <ul class="wpuf-form form-label-<?php echo esc_attr( $form_settings['label_position'] ); ?>">
100
101 <?php
102 /**
103 * @since 1.1.0
104 */
105 do_action( 'weforms_form_fields_top', $form, $form_fields );
106
107 weforms()->fields->render_fields( $form_fields, $form->id, $atts );
108
109 /*
110 * @since 1.1.1
111 */
112 do_action( 'weforms_form_fields_before_submit_button', $form, $form_fields, $form_settings );
113
114 $this->submit_button( $form->id, $form_settings );
115
116 /*
117 * @since 1.1.0
118 */
119 do_action( 'weforms_form_fields_bottom', $form, $form_fields ); ?>
120 </ul>
121
122 </form>
123
124 <?php
125 if ( isset( $atts['modal'] ) && 'true' == esc_attr( $atts['modal'] ) ) {
126 if ( isset( $atts['link'] ) ) {
127 printf( wp_kses_post( '<p><a href="#modal-form" rel="modal:open">%s</a></p>', $atts['link'] ) );
128 } else {
129 if ( isset( $atts['button'] ) ) {
130 $button_text = $atts['button'];
131 } else {
132 $button_text = esc_html_e( 'Open Form', 'weforms' );
133 }
134 printf( wp_kses_post( '<p><button><a href="#modal-form" rel="modal:open">%s</a></button></p>', $button_text ) );
135 }
136 }
137
138 if ( $show_credit ) {
139 printf( '<em>' . wp_kses_post( 'Powered by <a href="%s" target="_blank">weForms</a>', 'weforms' ) . '</em>', 'https://wordpress.org/plugins/weforms/' );
140 }
141
142 weforms_track_form_view( $form->id );
143 }
144
145 /**
146 * Render submit button
147 *
148 * @param int $form_id
149 * @param array $form_settings
150 *
151 * @return void
152 */
153 public function submit_button( $form_id, $form_settings ) {
154 ?>
155 <li class="wpuf-submit">
156 <div class="wpuf-label">
157 &nbsp;
158 </div>
159
160 <?php esc_attr( wp_nonce_field( 'wpuf_form_add' ) ); ?>
161
162 <input type="hidden" name="form_id" value="<?php echo esc_attr( $form_id ); ?>">
163 <input type="hidden" name="page_id" value="<?php echo get_the_ID(); ?>">
164 <input type="hidden" name="action" value="weforms_frontend_submit">
165
166 <?php
167 if ( isset( $form_settings['show_frontend_report'] ) && $form_settings['show_frontend_report'] ) { ?>
168 <input type="hidden" name="weforms-front-report" value="yes">
169 <?php } else { ?>
170 <input type="hidden" name="weforms-front-report" value="no">
171 <?php } ?>
172
173 <?php do_action( 'weforms_submit_btn', $form_id, $form_settings ); ?>
174
175 <input type="submit" class="weforms_submit_btn wpuf_submit_<?php echo esc_attr( $form_id ); ?>" name="submit" value="<?php echo
176 esc_attr( $form_settings['submit_text'] ); ?>" />
177
178 </li>
179 <?php
180 }
181 }
182