PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.5.13
Shortcodes and extra features for Phlox theme v2.5.13
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 6 years ago accordion-widget.php 6 years ago accordion.php 6 years ago attachment-url.php 6 years ago audio.php 6 years ago before-after.php 6 years ago button.php 6 years ago code.php 6 years ago contact-box.php 6 years ago contact-form.php 6 years ago custom-list.php 6 years ago divider.php 6 years ago dropcap.php 6 years ago facebook.php 6 years ago flickr.php 6 years ago gallery.php 6 years ago general-element-fields.php 6 years ago gmap.php 6 years ago highlight.php 6 years ago image.php 6 years ago instagram-feed.php 6 years ago latest-items.php 8 years ago latest-posts-slider.php 6 years ago popular-posts-widget.php 6 years ago quote.php 6 years ago recent-posts-grid-carousel.php 6 years ago recent-posts-land-style.php 6 years ago recent-posts-masonry.php 6 years ago recent-posts-tiles-carousel.php 6 years ago recent-posts-tiles.php 6 years ago recent-posts-timeline.php 6 years ago recent-posts-widget.php 6 years ago recent-products.php 6 years ago related-posts.php 8 years ago sample-element.php 6 years ago search.php 6 years ago socials-list.php 6 years ago staff.php 6 years ago tab-widget.php 6 years ago tabs.php 6 years ago testimonial.php 6 years ago text.php 6 years ago touch-slider.php 6 years ago video.php 6 years ago
contact-form.php
250 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-2020 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_so' => true,
26 'is_vc' => true,
27 'category' => THEME_NAME,
28 'group' => '',
29 'admin_enqueue_js' => '',
30 'admin_enqueue_css' => '',
31 'front_enqueue_js' => '',
32 'front_enqueue_css' => '',
33 'icon' => 'aux-element aux-pb-icons-contact-form',
34 'custom_markup' => '',
35 'js_view' => '',
36 'html_template' => '',
37 'deprecated' => '',
38 'content_element' => '',
39 'as_parent' => '',
40 'as_child' => '',
41 'params' => array(
42 array(
43 'heading' => __('Title','auxin-elements' ),
44 'description' => __('Contact form title, leave it empty if you don`t need title.', 'auxin-elements'),
45 'param_name' => 'title',
46 'type' => 'textfield',
47 'value' => '',
48 'holder' => 'textfield',
49 'class' => 'title',
50 'admin_label' => false,
51 'dependency' => '',
52 'weight' => '',
53 'group' => '' ,
54 'edit_field_class' => ''
55 ),
56 array(
57 'heading' => __('Email','auxin-elements' ),
58 'description' => __('Email address of message\'s recipient', 'auxin-elements' ),
59 'param_name' => 'email',
60 'type' => 'textfield',
61 'value' => '',
62 'holder' => '',
63 'class' => 'email',
64 'admin_label' => false,
65 'dependency' => '',
66 'weight' => '',
67 'group' => '' ,
68 'edit_field_class' => ''
69 ),
70 array(
71 'heading' => __('Contact form type','auxin-elements' ),
72 'description' => __('Specifies contact form element\'s type. Whether to use built-in form or Contact Form 7.', 'auxin-elements' ),
73 'param_name' => 'type',
74 'type' => 'dropdown',
75 'value' => array(
76 'phlox' => __('Phlox Contact Form', 'auxin-elements' ),
77 'cf7' => __('Contact Form 7 plugin', 'auxin-elements' ),
78 ),
79 'def_value' => 'phlox',
80 'holder' => '',
81 'class' => 'width',
82 'admin_label' => true,
83 'weight' => '',
84 'group' => '' ,
85 'edit_field_class' => ''
86 ),
87 array(
88 'heading' => __('Contact form 7 shortcode','auxin-elements' ),
89 'description' => __('Put one of your Contact form 7 shortcodes that you created.','auxin-elements' ),
90 'param_name' => 'cf7_shortcode',
91 'type' => 'textfield',
92 'value' => '',
93 'holder' => '',
94 'class' => 'cf7_shortcode',
95 'admin_label' => false,
96 'dependency' => array(
97 'element' => 'type',
98 'value' => 'cf7'
99 ),
100 'weight' => '',
101 'group' => '' ,
102 'edit_field_class' => ''
103 ),
104 array(
105 'heading' => __('Extra class name','auxin-elements' ),
106 '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' ),
107 'param_name' => 'extra_classes',
108 'type' => 'textfield',
109 'value' => '',
110 'holder' => '',
111 'class' => 'extra_classes',
112 'admin_label' => false,
113 'weight' => '',
114 'group' => '' ,
115 'edit_field_class' => ''
116 )
117 ),
118
119 );
120
121 return $master_array;
122 }
123
124 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_contact_form_master_array', 10, 1 );
125
126 /**
127 * The front-end output of this element is returned by the following function
128 *
129 * @param array $atts The array containing the parsed values from shortcode, it should be same as defined params above.
130 * @param string $shortcode_content The shorcode content
131 * @return string The output of element markup
132 */
133 function auxin_widget_contact_form_callback( $atts, $shortcode_content = null ){
134
135 // Defining default attributes
136 $default_atts = array(
137 'title' => '', // header title
138 'size' => '33', // section size
139 'email' => '',
140 'type' => 'phlox',
141 'cf7_shortcode' => '',
142
143 'extra_classes' => '',
144 'custom_el_id' => '',
145 'base_class' => 'aux-widget-contact-form' // base class name for container
146 );
147
148 $result = auxin_get_widget_scafold( $atts, $default_atts, $shortcode_content );
149 extract( $result['parsed_atts'] );
150
151
152 if( empty( $wcf7 ) && isset( $_POST['formSubmitted'] ) ) {
153
154 if(trim($_POST['cName']) === '' ) {
155 $nameError = __('Please enter your name.', 'auxin-elements' );
156 $hasError = true;
157 } else {
158 $name = trim($_POST['cName']);
159 }
160
161 if( trim($_POST['cEmail']) === '' ) {
162 $emailError = __('Please enter your email address.', 'auxin-elements' );
163 $hasError = true;
164 } elseif (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", trim($_POST['cEmail']))) {
165 $emailError = __('You entered an invalid email address.', 'auxin-elements' );
166 $hasError = true;
167 } else {
168 $cEmail = trim($_POST['cEmail']);
169 }
170
171
172 $url = trim($_POST['cURL']);
173
174
175 if(trim($_POST['cComment']) === '' ) {
176 $commentError = __('Please enter a message.', 'auxin-elements' );
177 $hasError = true;
178 } else {
179 if(function_exists('stripslashes')) {
180 $comment = stripslashes(trim($_POST['cComment']));
181 } else {
182 $comment = trim($_POST['cComment']);
183 }
184 }
185
186 if(!isset($hasError)) {
187 $emailTo = $email;
188 if (!isset($emailTo) || empty($emailTo) ){
189 $emailTo = get_option('admin_email');
190 }
191 $subject = 'From '.$name.' ['.$cEmail.'] ';
192 $body = "Name: $name \n\nEmail: $cEmail \n\nWebsite: $url \n\nMessage: $comment";
193 $headers = 'From: '.$name.' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
194
195 wp_mail($emailTo, $subject, $body, $headers);
196 $emailSent = true;
197 }
198 }
199
200 ob_start();
201
202 // widget header ------------------------------
203 echo $result['widget_header'];
204 echo $result['widget_title'];
205 ?>
206 <div class="aux-col-wrapper aux-no-gutter">
207 <!-- @TODO - The output for element here -->
208
209 <?php if( $type == "phlox" ){ ?>
210
211 <?php if(isset($hasError) ) { ?>
212 <p style="color:#B2950E" >
213 <span id="info"><?php _e("sorry, some problems occured with your form submission:", 'auxin-elements' ); ?>
214 <?php
215 if(isset($nameError )) echo '<br/>- '.$nameError;
216 if(isset($emailError)) echo '<br/>- '.$emailError;
217 if(isset($commentError)) echo '<br/>- '.$commentError;
218 ?>
219 </span>
220 </p>
221 <?php } ?>
222
223 <form action="<?php the_permalink(); ?>" id="contactForm" class="aux-contact-form" method="post" >
224 <input type="text" name="cName" id="cName" placeholder="Name" required >
225 <input type="email" name="cEmail" id="cEmail" placeholder="E-Mail" required >
226 <input type="text" name="cURL" id="cURL" placeholder="Website" >
227 <textarea name="cComment" id="cComment" placeholder="Message" required></textarea>
228 <input type="submit" id="submit" class="submit" value="<?php esc_attr_e('Submit', 'auxin-elements' ); ?>" >
229
230 <?php if(isset($emailSent) && $emailSent == true) { ?>
231 <p style="color:#598527;"><i class="icon-ok" style="margin:5px;"></i><span id="info"><?php _e("Thanks for your Message. Your message sent successfully.", 'auxin-elements' ); ?></span></p>
232 <?php } ?>
233
234 <input type="hidden" name="formSubmitted" id="formSubmitted" value="true" />
235 </form>
236
237 <?php } else {
238 echo do_shortcode($cf7_shortcode);
239 } ?>
240
241
242 </div><!-- aux-col-wrapper -->
243 <?php
244 // widget footer ------------------------------
245 echo $result['widget_footer'];
246
247 return ob_get_clean();
248 }
249
250