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