PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.17.14
Shortcodes and extra features for Phlox theme v2.17.14
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 1 year ago accordion-widget.php 1 year ago accordion.php 1 year ago attachment-url.php 1 year ago audio.php 1 year ago before-after.php 1 year ago button.php 1 year ago code.php 1 year ago contact-box.php 1 year ago contact-form.php 1 year ago custom-list.php 6 months ago divider.php 1 year ago dropcap.php 1 year ago facebook.php 1 year ago flickr.php 1 year ago gallery.php 1 year ago gmap.php 1 year ago highlight.php 1 year ago image.php 1 year ago instagram-feed.php 1 year ago latest-posts-slider.php 1 year ago popular-posts-widget.php 1 year ago products-grid.php 1 year ago quote.php 1 year ago recent-posts-grid-carousel.php 1 year ago recent-posts-land-style.php 1 year ago recent-posts-masonry.php 1 year ago recent-posts-tiles-carousel.php 1 year ago recent-posts-tiles.php 1 year ago recent-posts-timeline.php 1 year ago recent-posts-widget.php 1 year ago recent-products.php 1 year ago related-posts.php 8 years ago sample-element.php 1 year ago search.php 1 year ago socials-list.php 1 year ago staff.php 1 year ago tab-widget.php 1 year ago tabs.php 1 year ago testimonial.php 1 year ago text.php 1 year ago touch-slider.php 1 year ago video.php 1 year 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-2025 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