PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.9.22
Shortcodes and extra features for Phlox theme v2.9.22
2.17.21 2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / includes / elements / contact-form.php
auxin-elements / includes / elements Last commit date
about-widget.php 4 years ago accordion-widget.php 4 years ago accordion.php 4 years ago attachment-url.php 4 years ago audio.php 4 years ago before-after.php 4 years ago button.php 4 years ago code.php 4 years ago contact-box.php 4 years ago contact-form.php 4 years ago custom-list.php 4 years ago divider.php 4 years ago dropcap.php 4 years ago facebook.php 4 years ago flickr.php 4 years ago gallery.php 4 years ago general-element-fields.php 4 years ago gmap.php 4 years ago highlight.php 4 years ago image.php 4 years ago instagram-feed.php 4 years ago latest-items.php 4 years ago latest-posts-slider.php 4 years ago popular-posts-widget.php 4 years ago products-grid.php 4 years ago quote.php 4 years ago recent-posts-grid-carousel.php 3 years ago recent-posts-land-style.php 4 years ago recent-posts-masonry.php 4 years ago recent-posts-tiles-carousel.php 3 years ago recent-posts-tiles.php 4 years ago recent-posts-timeline.php 4 years ago recent-posts-widget.php 4 years ago recent-products.php 3 years ago related-posts.php 8 years ago sample-element.php 4 years ago search.php 4 years ago socials-list.php 4 years ago staff.php 4 years ago tab-widget.php 4 years ago tabs.php 4 years ago testimonial.php 4 years ago text.php 3 years ago touch-slider.php 4 years ago video.php 4 years ago
contact-form.php
249 lines
1 <?php
2 /**
3 * Contact form element
4 *
5 *
6 * @package Auxin
7 * @license LICENSE.txt
8 * @author averta
9 * @link http://phlox.pro/
10 * @copyright (c) 2010-2022 averta
11 */
12
13 function auxin_get_contact_form_master_array( $master_array ) {
14
15 $master_array['aux_contact_form'] = array(
16 'name' => __('Contact Form', 'auxin-elements' ),
17 'auxin_output_callback' => 'auxin_widget_contact_form_callback',
18 'base' => 'aux_contact_form',
19 'description' => __('It adds a contact form element.', 'auxin-elements' ),
20 'class' => 'aux-widget-contact-form',
21 'show_settings_on_create' => true,
22 'weight' => 1,
23 'is_widget' => true,
24 'is_shortcode' => true,
25 'is_vc' => true,
26 'category' => THEME_NAME,
27 'group' => '',
28 'admin_enqueue_js' => '',
29 'admin_enqueue_css' => '',
30 'front_enqueue_js' => '',
31 'front_enqueue_css' => '',
32 'icon' => 'aux-element aux-pb-icons-contact-form',
33 'custom_markup' => '',
34 'js_view' => '',
35 'html_template' => '',
36 'deprecated' => '',
37 'content_element' => '',
38 'as_parent' => '',
39 'as_child' => '',
40 'params' => array(
41 array(
42 'heading' => __('Title','auxin-elements' ),
43 'description' => __('Contact form title, leave it empty if you don`t need title.', 'auxin-elements'),
44 'param_name' => 'title',
45 'type' => 'textfield',
46 'value' => '',
47 'holder' => 'textfield',
48 'class' => 'title',
49 'admin_label' => false,
50 'dependency' => '',
51 'weight' => '',
52 'group' => '' ,
53 'edit_field_class' => ''
54 ),
55 array(
56 'heading' => __('Email','auxin-elements' ),
57 'description' => __('Email address of message\'s recipient', 'auxin-elements' ),
58 'param_name' => 'email',
59 'type' => 'textfield',
60 'value' => '',
61 'holder' => '',
62 'class' => 'email',
63 'admin_label' => false,
64 'dependency' => '',
65 'weight' => '',
66 'group' => '' ,
67 'edit_field_class' => ''
68 ),
69 array(
70 'heading' => __('Contact form type','auxin-elements' ),
71 'description' => __('Specifies contact form element\'s type. Whether to use built-in form or Contact Form 7.', 'auxin-elements' ),
72 'param_name' => 'type',
73 'type' => 'dropdown',
74 'value' => array(
75 'phlox' => __('Phlox Contact Form', 'auxin-elements' ),
76 'cf7' => __('Contact Form 7 plugin', 'auxin-elements' ),
77 ),
78 'def_value' => 'phlox',
79 'holder' => '',
80 'class' => 'width',
81 'admin_label' => true,
82 'weight' => '',
83 'group' => '' ,
84 'edit_field_class' => ''
85 ),
86 array(
87 'heading' => __('Contact form 7 shortcode','auxin-elements' ),
88 'description' => __('Put one of your Contact form 7 shortcodes that you created.','auxin-elements' ),
89 'param_name' => 'cf7_shortcode',
90 'type' => 'textfield',
91 'value' => '',
92 'holder' => '',
93 'class' => 'cf7_shortcode',
94 'admin_label' => false,
95 'dependency' => array(
96 'element' => 'type',
97 'value' => 'cf7'
98 ),
99 'weight' => '',
100 'group' => '' ,
101 'edit_field_class' => ''
102 ),
103 array(
104 'heading' => __('Extra class name','auxin-elements' ),
105 'description' => __('If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.', 'auxin-elements' ),
106 'param_name' => 'extra_classes',
107 'type' => 'textfield',
108 'value' => '',
109 'holder' => '',
110 'class' => 'extra_classes',
111 'admin_label' => false,
112 'weight' => '',
113 'group' => '' ,
114 'edit_field_class' => ''
115 )
116 ),
117
118 );
119
120 return $master_array;
121 }
122
123 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_contact_form_master_array', 10, 1 );
124
125 /**
126 * The front-end output of this element is returned by the following function
127 *
128 * @param array $atts The array containing the parsed values from shortcode, it should be same as defined params above.
129 * @param string $shortcode_content The shorcode content
130 * @return string The output of element markup
131 */
132 function auxin_widget_contact_form_callback( $atts, $shortcode_content = null ){
133
134 // Defining default attributes
135 $default_atts = array(
136 'title' => '', // header title
137 'size' => '33', // section size
138 'email' => '',
139 'type' => 'phlox',
140 'cf7_shortcode' => '',
141
142 'extra_classes' => '',
143 'custom_el_id' => '',
144 'base_class' => 'aux-widget-contact-form' // base class name for container
145 );
146
147 $result = auxin_get_widget_scafold( $atts, $default_atts, $shortcode_content );
148 extract( $result['parsed_atts'] );
149
150
151 if( empty( $wcf7 ) && isset( $_POST['formSubmitted'] ) ) {
152
153 if(trim($_POST['cName']) === '' ) {
154 $nameError = __('Please enter your name.', 'auxin-elements' );
155 $hasError = true;
156 } else {
157 $name = trim( sanitize_text_field( $_POST['cName'] ) );
158 }
159
160 if( trim($_POST['cEmail']) === '' ) {
161 $emailError = __('Please enter your email address.', 'auxin-elements' );
162 $hasError = true;
163 } elseif (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", trim($_POST['cEmail']))) {
164 $emailError = __('You entered an invalid email address.', 'auxin-elements' );
165 $hasError = true;
166 } else {
167 $cEmail = trim( sanitize_email( $_POST['cEmail'] ) );
168 }
169
170
171 $url = trim( sanitize_text_field( $_POST['cURL'] ) );
172
173
174 if(trim($_POST['cComment']) === '' ) {
175 $commentError = __('Please enter a message.', 'auxin-elements' );
176 $hasError = true;
177 } else {
178 if(function_exists('stripslashes')) {
179 $comment = stripslashes( trim( sanitize_text_field( $_POST['cComment'] ) ) );
180 } else {
181 $comment = trim( sanitize_text_field( $_POST['cComment'] ) );
182 }
183 }
184
185 if(!isset($hasError)) {
186 $emailTo = $email;
187 if (!isset($emailTo) || empty($emailTo) ){
188 $emailTo = get_option('admin_email');
189 }
190 $subject = 'From '.$name.' ['.$cEmail.'] ';
191 $body = "Name: $name \n\nEmail: $cEmail \n\nWebsite: $url \n\nMessage: $comment";
192 $headers = 'From: '.$name.' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
193
194 wp_mail($emailTo, $subject, $body, $headers);
195 $emailSent = true;
196 }
197 }
198
199 ob_start();
200
201 // widget header ------------------------------
202 echo wp_kses_post( $result['widget_header'] );
203 echo wp_kses_post( $result['widget_title'] );
204 ?>
205 <div class="aux-col-wrapper aux-no-gutter">
206 <!-- @TODO - The output for element here -->
207
208 <?php if( $type == "phlox" ){ ?>
209
210 <?php if(isset($hasError) ) { ?>
211 <p style="color:#B2950E" >
212 <span id="info"><?php esc_html_e("sorry, some problems occured with your form submission:", 'auxin-elements' ); ?>
213 <?php
214 if(isset($nameError )) echo '<br/>- '. esc_html( $nameError );
215 if(isset($emailError)) echo '<br/>- '. esc_html( $emailError );
216 if(isset($commentError)) echo '<br/>- '. esc_html( $commentError );
217 ?>
218 </span>
219 </p>
220 <?php } ?>
221
222 <form action="<?php the_permalink(); ?>" id="contactForm" class="aux-contact-form" method="post" >
223 <input type="text" name="cName" id="cName" placeholder="Name" required >
224 <input type="email" name="cEmail" id="cEmail" placeholder="E-Mail" required >
225 <input type="text" name="cURL" id="cURL" placeholder="Website" >
226 <textarea name="cComment" id="cComment" placeholder="Message" required></textarea>
227 <input type="submit" id="submit" class="submit" value="<?php esc_attr_e('Submit', 'auxin-elements' ); ?>" >
228
229 <?php if(isset($emailSent) && $emailSent == true) { ?>
230 <p style="color:#598527;"><i class="icon-ok" style="margin:5px;"></i><span id="info"><?php esc_html_e("Thanks for your Message. Your message sent successfully.", 'auxin-elements' ); ?></span></p>
231 <?php } ?>
232
233 <input type="hidden" name="formSubmitted" id="formSubmitted" value="true" />
234 </form>
235
236 <?php } else {
237 echo do_shortcode($cf7_shortcode);
238 } ?>
239
240
241 </div><!-- aux-col-wrapper -->
242 <?php
243 // widget footer ------------------------------
244 echo wp_kses_post( $result['widget_footer'] );
245
246 return ob_get_clean();
247 }
248
249