d2185889 by Jeff Balicki

done

1 parent 53a071bb
Showing 57 changed files with 1247 additions and 5 deletions
No preview for this file type
No preview for this file type
1 Hello,
2 <br><br>
3 Thanks for purchasing our product.
4 <br><br>
5 You can read the documentation here <strong><a href="https://ninjateam.org/contact-form-7-multi-step-pro-doc/">Contact Form 7 Multi-step Pro Documentation</a></strong>
6 <br><br>
7 If you have any problems or questions, live chat with us at <strong><a href="https://m.me/ninjateam.org">Our Facebook page</a></strong> or submit a ticket at <strong><a href="https://ninja.ticksy.com/">Our Support Portal</a></strong>
8 <br><br>
9 Best regards,<br>
10 Tommy<br>
11 Ninja Team Support
...\ No newline at end of file ...\ No newline at end of file
1 This theme or plugin is comprised of two parts.
2
3 (1) the PHP code and integrated HTML are licensed under the General Public
4 License (GPL). You will find a copy of the GPL in the same directory as this
5 text file.
6
7 (2) All other parts, but not limited to the CSS code, images, and design are
8 licensed according to the terms of your purchased license.
9
10 Read more about licensing here: http://themeforest.net/licenses
1 <svg width="14px" height="14px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
2 <metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
3 <g><path d="M500,10C229.4,10,10,229.4,10,500s219.4,490,490,490s490-219.4,490-490S770.6,10,500,10z M500,920C268,920,80,732,80,500S268,80,500,80s420,188,420,420S732,920,500,920z M500,220c-81.7,0-150.5,56.2-169.6,132c-5.5,21.8,10.8,43,33.2,43h1.3c15.9,0,29.4-10.8,33.4-26.3C410,323.5,451.1,290,500,290c57.9,0,105,47.1,105,105c0,37.4-20.1,72.2-52.5,91l0,0l0,0c-26,15.1-48,37.4-63.5,64.4c-8.3,14.4-14.4,29.9-18.5,45.9c-5.6,22.2,11,43.6,33.9,43.6l0,0c16,0,30.1-10.8,33.9-26.5c7-28,24.8-52.8,49.2-66.9l0,0l0,0C641.4,515.4,675,457.3,675,395C675,298.5,596.5,220,500,220z M500,710L500,710c19.4,0,35,15.6,35,35l0,0c0,19.4-15.6,35-35,35l0,0c-19.4,0-35-15.6-35-35l0,0C465,725.6,480.6,710,500,710z"/></g>
4 </svg>
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
1 .wpcf7-form{
2 position: relative;
3 /* border : 1px solid #eaeaea; */
4 overflow: hidden;
5 }
6 .wpcf7-form .fieldset-cf7mls{
7 border: none;
8 background: none;
9 }
10 .wpcf7 form.sent .wpcf7-response-output {
11 display: block;
12 }
13 .cf7mls-btns .cf7mls_next.action-button, .cf7mls-btns .cf7mls_back.action-button {
14 margin: 25px 0px 26px;
15 padding: 13px 20px;
16 }
17 .cf7mls_next.action-button {
18 background-color: #0073aa;
19 border: 0 none;
20 border-radius: 3px;
21 color: #ffffff;
22 cursor: pointer;
23 font-weight: bold;
24 margin: 25px 0px 26px;
25 padding: 13px 5px;
26 min-width: 100px;
27 position: relative;
28 }
29 .cf7mls_back.action-button {
30 background-color: #e3e3e3;
31 border: 0 none;
32 border-radius: 3px;
33 color: #23282d;
34 cursor: pointer;
35 font-weight: bold;
36 margin: 16px 0px 26px;
37 padding: 13px 5px;
38 min-width: 100px;
39 position: relative;
40 }
41 .fieldset-cf7mls .wpcf7-form-control.wpcf7-cf7mls_preview_step {
42 background-color: #27ae60;
43 border: 0 none;
44 border-radius: 3px;
45 color: white;
46 cursor: pointer;
47 font-weight: bold;
48 margin: 26px 0px 32px;
49 padding: 13px 5px;
50 min-width: 100px;
51 position: relative;
52 }
53 .cf7mls_back.action-button {
54 margin-right: 10px;
55 float: left;
56 }
57
58 .cf7mls_next.action-button:hover,
59 .cf7mls_back.action-button:hover,
60 .fieldset-cf7mls .wpcf7-form-control.wpcf7-cf7mls_preview_step:hover {
61 opacity: 0.8;
62 }
63 .fieldset-cf7mls .cf7mls_back{
64 float: left;
65 }
66 .fieldset-cf7mls .cf7mls_next {
67 float: right;
68 }
69
70 form.cf7mls input.wpcf7-form-control.wpcf7-submit {
71 border-radius: 3px;
72 padding: 13px 29px;
73 font-weight: bold;
74 margin: 16px 0px 26px;
75 float: right;
76 /* background-color: #0073aa; */
77 /* color: #ffffff; */
78 }
79
80 form.cf7mls input.wpcf7-form-control.wpcf7-submit:hover {
81 opacity: 0.8;
82 }
83
84
85 .cf7mls_reviewing_overlay {
86 position: fixed;
87 left: 0;
88 top: 0;
89 right: 0;
90 bottom: 0;
91 background-color: rgba(0, 0, 0, 0.8);
92 z-index: 100;
93 display: none;
94 }
95
96 form.wpcf7-form.cf7mls_reviewing {
97 position: relative;
98 z-index: 999999;
99 background-color: #fff;
100 }
101 form.wpcf7-form.cf7mls_reviewing:before{
102 content: '';
103 position: absolute;
104 background: rgba(0,0,0,0.8);
105 width: 100000px;
106 height: 100000px;
107 left: -30000px;
108 top: -30000px;
109 z-index: 1;
110 }
111 form.wpcf7-form.cf7mls_reviewing > *{
112 position: relative;
113 z-index: 3;
114 }
115 form.wpcf7-form.cf7mls_reviewing .cf7mls_close_preview {
116 cursor: pointer;
117 position: absolute;
118 top: 10px;
119 right: 0;
120 }
121 form.wpcf7-form.cf7mls_reviewing:after{
122 content: '';
123 position: absolute;
124 top: -5px;
125 left: -20px;
126 right: -20px;
127 bottom: -10px;
128 background: #ffffff;
129 z-index: 2;
130 }
131 /*
132 * Animation
133 */
134 /*
135 button.cf7mls_btn:not(.disabled):before {
136 content: '';
137 position: absolute;
138 right: 10px;
139 top: 50%;
140 margin-top: -11px;
141 width: 20px;
142 height: 20px;
143 border: 4px solid;
144 border-left-color: transparent;
145 border-radius: 50%;
146 filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
147 opacity: 0;
148 -moz-transition-duration: 0.5s;
149 -o-transition-duration: 0.5s;
150 -webkit-transition-duration: 0.5s;
151 transition-duration: 0.5s;
152 -moz-transition-property: opacity;
153 -o-transition-property: opacity;
154 -webkit-transition-property: opacity;
155 transition-property: opacity;
156 -moz-animation-duration: 1s;
157 -webkit-animation-duration: 1s;
158 animation-duration: 1s;
159 -moz-animation-iteration-count: infinite;
160 -webkit-animation-iteration-count: infinite;
161 animation-iteration-count: infinite;
162 -moz-animation-name: rotate;
163 -webkit-animation-name: rotate;
164 animation-name: rotate;
165 -moz-animation-timing-function: linear;
166 -webkit-animation-timing-function: linear;
167 animation-timing-function: linear;
168 }
169 button.cf7mls_btn:not(.disabled):after {
170 content: '';
171 display: inline-block;
172 height: 100%;
173 width: 0px;
174 -moz-transition-delay: 0.5s;
175 -o-transition-delay: 0.5s;
176 -webkit-transition-delay: 0.5s;
177 transition-delay: 0.5s;
178 -moz-transition-duration: 0.75s;
179 -o-transition-duration: 0.75s;
180 -webkit-transition-duration: 0.75s;
181 transition-duration: 0.75s;
182 -moz-transition-property: width;
183 -o-transition-property: width;
184 -webkit-transition-property: width;
185 transition-property: width;
186 }
187 button.cf7mls_btn:not(.disabled).sending {
188 pointer-events: none;
189 cursor: not-allowed;
190 }
191 button.cf7mls_btn:not(.disabled).sending:not(.expand) {
192 text-align: left;
193 }
194 button.cf7mls_btn:not(.disabled).sending:before {
195 -moz-transition-delay: 0.5s;
196 -o-transition-delay: 0.5s;
197 -webkit-transition-delay: 0.5s;
198 transition-delay: 0.5s;
199 -moz-transition-duration: 1s;
200 -o-transition-duration: 1s;
201 -webkit-transition-duration: 1s;
202 transition-duration: 1s;
203 filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false);
204 opacity: 1;
205 }
206 button.cf7mls_btn:not(.disabled).sending:after {
207 -moz-transition-delay: 0s;
208 -o-transition-delay: 0s;
209 -webkit-transition-delay: 0s;
210 transition-delay: 0s;
211 width: 20px;
212 }
213
214 @keyframes rotate {
215 0% {
216 -moz-transform: rotate(0deg);
217 -ms-transform: rotate(0deg);
218 -webkit-transform: rotate(0deg);
219 transform: rotate(0deg);
220 }
221 100% {
222 -moz-transform: rotate(360deg);
223 -ms-transform: rotate(360deg);
224 -webkit-transform: rotate(360deg);
225 transform: rotate(360deg);
226 }
227 }
228 */
229 .cf7mls_next.action-button img {
230 display: none;
231 width: 20px;
232 position: relative;
233 margin-left: 5px;
234 vertical-align: middle;
235 }
236 .cf7mls_next.action-button.sending img {
237 display: inline-block;
238 }
239 .cf7mls_next.action-button:focus,
240 .cf7mls_back.action-button:focus {
241 outline: none;
242 }
243 .fieldset-cf7mls-wrapper{
244 position: relative;
245 overflow: hidden;
246 }
247 .fieldset-cf7mls-wrapper .fieldset-cf7mls{
248 width: 100%;
249 opacity: 0;
250 visibility: hidden;
251 -webkit-transition: all 800ms cubic-bezier(0.680, 0, 0.265, 1); /* older webkit */
252 -webkit-transition: all 800ms cubic-bezier(0.680, -0.550, 0.265, 1.550);
253 -moz-transition: all 800ms cubic-bezier(0.680, -0.550, 0.265, 1.550);
254 -o-transition: all 800ms cubic-bezier(0.680, -0.550, 0.265, 1.550);
255 transition: all 800ms cubic-bezier(0.680, -0.550, 0.265, 1.550); /* easeInOutBack */
256
257 -webkit-transition-timing-function: cubic-bezier(0.680, 0, 0.265, 1); /* older webkit */
258 -webkit-transition-timing-function: cubic-bezier(0.680, -0.550, 0.265, 1.550);
259 -moz-transition-timing-function: cubic-bezier(0.680, -0.550, 0.265, 1.550);
260 -o-transition-timing-function: cubic-bezier(0.680, -0.550, 0.265, 1.550);
261 transition-timing-function: cubic-bezier(0.680, -0.550, 0.265, 1.550); /* easeInOutBack */
262 }
263 .cf7mls-no-moving-animation .fieldset-cf7mls-wrapper .fieldset-cf7mls {
264 transition: none;
265 }
266 .fieldset-cf7mls-wrapper .cf7mls_back_fs{
267 position: absolute;
268 left: 0;
269 top: 15px;
270 transform: translate(-110%,0);
271 -webkit-transform: translate(-110%,0);
272 -moz-transform: translate(-110%,0);
273 }
274 .fieldset-cf7mls-wrapper .cf7mls_current_fs ~ .fieldset-cf7mls{
275 position: absolute;
276 left: 0;
277 top: 15px;
278 transform: translate(110%,0);
279 -webkit-transform: translate(110%,0);
280 -moz-transform: translate(110%,0);
281 }
282 .wpcf7-form .cf7mls_progress_bar ~ .fieldset-cf7mls-wrapper fieldset {
283 padding-top: 0px;
284 margin-top: 0px;
285 padding-bottom: 2px;
286 margin-bottom: 20px;
287 }
288 .fieldset-cf7mls-wrapper .cf7mls_current_fs{
289 opacity: 1;
290 visibility: visible;
291 display: block;
292 position: relative;
293 }
294 .fieldset-cf7mls.cf7mls_preview_fs {
295 height: auto;
296 overflow: visible;
297 opacity: 1;
298 visibility: visible;
299 transform: translate(0,0);
300 -webkit-transform: translate(0,0);
301 -moz-transform: translate(0,0);
302 position: relative;
303 }
304 .fieldset-cf7mls-wrapper .wpcf7-not-valid-tip {
305 font-size: 13px;
306 }
307 .fieldset-cf7mls-wrapper div.wpcf7-validation-errors {
308 border: none;
309 display: block !important;
310 color: #f00;
311 font-size: 13px;
312 padding-left: 0px;
313 margin-left: 0px;
314 }
315 .fieldset-cf7mls-wrapper div.wpcf7-validation-errors .wpcf7-icon-wraning {
316 display: block;
317 float: left;
318 margin-right: 8px;
319 margin-top: 2px;
320 fill: #f00;
321 }
322 .fieldset-cf7mls-wrapper .fieldset-cf7mls span.ajax-loader {
323 position: absolute;
324 right: 39px;
325 margin-top: 33px;
326 }
327 @media only screen and (max-width: 767px) {
328 .fieldset-cf7mls input[type="radio"],
329 .fieldset-cf7mls input[type="checkbox"]{
330 width: auto;
331 }
332
333 .fieldset-cf7mls input, .wpcf7-form .fieldset-cf7mls textarea{
334 width: 100%;
335 }
336 }
1 <svg version="1.1" id="loader-1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2 width="40px" height="40px" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve">
3 <path fill="#fff" d="M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z">
4 <animateTransform attributeType="xml"
5 attributeName="transform"
6 type="rotate"
7 from="0 25 25"
8 to="360 25 25"
9 dur="0.9s"
10 repeatCount="indefinite"/>
11 </path>
12 </svg>
1 Dec 23, 2021 - Version 2.6.8
2 - Fixed: Progress bar RTL
3
4 Dec 9, 2021 - Version 2.6.7
5 - Fixed: Break contact form layout
6 - Fixed: No validation for hidden field
7
8 Dec 1, 2021 – Version 2.6.6
9 – Fixed: Contact form handling properties (CF7 version >= 5.5.3)
10
11 Jun 28, 2021 - Version 2.6.5
12 - Fixed: Check step name is array or object when load form
13
14 May 28, 2021 - Version 2.6.4
15 - Fixed: Error Recall tag
16
17 May 17, 2021 - Version 2.6.3
18 - Updated: Display date of Recall tag
19
20 Apr 23, 2021 - Version 2.6.2
21 - Fixed: Button color
22 - Fixed: Form validation
23
24 Mar 15, 2021 - Version 2.6.1
25 - Fixed: Double click on Next button
26
27 Mar 1, 2021 – Version 2.6
28 - Improved: Admin UI
29 - Changed: Njt Answer tag to Recall tag
30 - Fixed: Error validate upload file since CF7 5.4
31
32 Nov 13, 2020 – Version 2.5.5
33 - Fixed: Next button in WPBakery
34 - Fixed: File upload validation
35 - Removed: Form border
36
37 Sep 9, 2020 – Version 2.5.4
38 - Fixed: Event click Allow Choose Step
39 - Fixed: CSS of color board
40 - Fixed: CSS text Select Option
41 - Fixed: Sanitize some fields
42 - Fixed: Split of undefined
43 - Fixed: CSS of Submit button only affected if its form has steps
44
45 Aug 14, 2020 - Version 2.5.3
46 - Fixed: Error with WordPress 5.5
47
48 Aug 13, 2020 - Version 2.5.2
49 - Fixed: Compatible with Moana - Contact Form 7 Builder
50
51 Jul 23, 2020 – Version 2.5.1
52 - Changed: Slogan
53 - Removed: Unused files
54
55 Jun 8, 2020 – Version 2.5
56 - Added: New layout
57 - Added: Styles for progress bar
58 - Added: Color for progress bar
59 - Added: Transition effects for steps
60 - Added: Progress percent bar
61 - Added: Live preview for progress bar
62 - Fixed: Some bugs
63
64 Jun 27, 2019 – Version 2.3
65 - Fixed: Error message for checkboxes
66 - Fixed: Checkboxes with use_label_element
67
68 May 28, 2019 – Version 2.2
69 - Added: Turn on/off for scroll animation
70
71 Apr 26, 2019 – Version 2.1
72 - Added: Name for checkbox field (-cbmls) (e.g: checkbox-123-cbmls)
73 - Fixed: Njt Answer for default option of radio button
74
75 Nov 5, 2018 – Version 2.0.1
76 - Added: Add class “current” into present steps
77 - Improved: CSS style
78 - Fixed: Some bugs
79
80 Nov 2, 2018 – Version 2.0
81 - Added: Scroll to top of form when pressed “Next”, “Back”
82 - Improved: CSS style
83 - Fixed: Red border of required fields missing
84 - Fixed: Some bugs
85
86 Jun 6, 2018 – Version 1.9.9.6
87 - Improved: CSS style
88 - Fixed: Some bugs
89
90 Feb 21, 2018 – Version 1.9.9.5
91 - Added: WordPress Hooks
92
93 Jun 25, 2017 – Version 1.9.9.4
94 - Fixed: Compatible with contact form 7 version 4.8
95
96 Apr 20, 2017 – Version 1.9.9.3
97 - Added: Display what user has filled in the form
98
99 Mar 3, 2017 – Version 1.9.9.2
100 - Added: Preview Button
101
102 Mar 3, 2017 – Version 1.9.9.1
103 - Removed more deprecated functions
104
105 Feb 25, 2017 – Version 1.9.9
106 - Change last button's background color, text color in admin panel
107 - Removed WPCF7_Shortcode
108 - Fixed small bugs
109
110 Feb 13, 2017 – Version 1.9.8
111 - Change last button's title in admin panel
112
113 Jan 2, 2017 – Version 1.9.7
114 - Remove wpcf7_add_shortcode
115
116 Jan 1, 2017 – Version 1.9.6
117 - Added: Some js functions, save user’s information every step (work with "Contact Form 7 Database")
118 - Fixed: Some small bugs
119
120 Oct 31, 2016 – Version 1.9.5
121 - Fixed: Fix js bug with some hosts
122
123 Sep 20, 2016 – Version 1.9.4
124 - Added: Some hooks for developers, fix changing button's background color.
125
126 Sep 14, 2016 – Version 1.9.3
127 - Fixed: Fix bug with multi forms
128
129 Aug 6, 2016 – Version 1.9.2
130 - Fixed: Fix small bug
131
132 Jul 16, 2016 – Version 1.9.1
133 - Fixed: Conflict with Visual Composer
134
135 Apr 7, 2016 – Version 1.9
136 - Added: Press Enter to submit
137
138 Apr 1, 2016- Version 1.7
139 - Added: Loading animation
140 - Fixed: Auto p
141 - Fixed: Validation with select
142 - Fixed: Acceptance tags
143
144 Mar 28, 2016 – Version 1.6
145 - Fixed: Validation
146
147 Mar 24, 2016 – Version 1.5
148 - Added: POT file for translate
149
150 Mar 23, 2016 – Version 1.4
151 - Added: Language translate
152
153 Mar 22, 2016 – Version 1.3
154 - Fixed: CSS
155
156 Mar 20, 2016 – Version 1.2
157 - Fixed: Translate default text in CF7 Message tab
158
159 Mar 17, 2016 – Version 1.1
160 - Fixed: JS conflict
161
162 Mar 7, 2016 – Version 1.0
163 - Version 1.0 Initial Release
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 Plugin Name: Contact Form 7 Multi Step Pro
4 Plugin URI: http://ninjateam.org
5 Description: Break your long form into user-friendly steps.
6 Version: 2.6.8
7 Author: NinjaTeam
8 Author URI: http://ninjateam.org
9 */
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit;
12 }
13
14 // if (!defined('WPCF7_AUTOP')) {
15 // define('WPCF7_AUTOP', false);
16 // }
17 define( 'CF7MLS_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
18 define( 'CF7MLS_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
19 define( 'CF7MLS_NTA_VERSION', '2.6.8' );
20
21 // load text domain
22 require_once CF7MLS_PLUGIN_DIR . '/inc/I18n.php';
23 // CF7DB
24 require_once CF7MLS_PLUGIN_DIR . '/inc/cf7db.php';
25 // backend
26 require_once CF7MLS_PLUGIN_DIR . '/inc/admin/init.php';
27 require_once CF7MLS_PLUGIN_DIR . '/inc/admin/settings.php';
28 require_once CF7MLS_PLUGIN_DIR . '/inc/admin/review.php';
29 // frontend
30 require_once CF7MLS_PLUGIN_DIR . '/inc/frontend/init.php';
31 require_once CF7MLS_PLUGIN_DIR . '/inc/frontend/validation.php';
32
1 <?php
2 if ( ! class_exists( 'NjtCF7MLSI18n' ) ) {
3 class NjtCF7MLSI18n {
4
5 public function __construct() {
6 $this->doHooks();
7 }
8
9 private function doHooks() {
10 add_action( 'plugins_loaded', array( $this, 'cf7mlsLoadTextdomain' ) );
11 }
12 public function cf7mlsLoadTextdomain() {
13 load_plugin_textdomain( 'cf7mls', false, plugin_basename( CF7MLS_PLUGIN_DIR ) . '/languages/' );
14 }
15 }
16 new NjtCF7MLSI18n();
17 }
18
1 <?php
2 if ( ! class_exists( 'NjtCF7MLSReview' ) ) {
3 class NjtCF7MLSReview {
4
5 public function __construct() {
6 $this->doHooks();
7 }
8
9 private function doHooks() {
10 add_action( 'wp_ajax_cf7mls_save_review', array( $this, 'cf7mls_save_review' ) );
11
12 $option = get_option( 'cf7mls_review' );
13 if ( time() >= (int) $option && $option !== '0' ) {
14 add_action( 'admin_notices', array( $this, 'give_review' ) );
15 }
16 }
17
18 public function checkNonce( $nonce ) {
19 if ( ! wp_verify_nonce( $nonce, 'cf7mls_review_nonce' ) ) {
20 wp_send_json_error( array( 'status' => 'Wrong nonce validate!' ) );
21 exit();
22 }
23 }
24
25 public function hasField( $field, $request ) {
26 return isset( $request[ $field ] ) ? sanitize_text_field( $request[ $field ] ) : null;
27 }
28
29 public function cf7mls_save_review() {
30 if ( count( $_REQUEST ) ) {
31 $nonce = $this->hasField( 'nonce', $_REQUEST );
32 $field = $this->hasField( 'field', $_REQUEST );
33
34 $this->checkNonce( $nonce );
35
36 if ( $field == 'later' ) {
37 update_option( 'cf7mls_review', time() + 3 * 60 * 60 * 24 ); // After 3 days show
38 } elseif ( $field == 'alreadyDid' ) {
39 update_option( 'cf7mls_review', 0 );
40 }
41 wp_send_json_success();
42 }
43 wp_send_json_error( array( 'message' => 'Update fail!' ) );
44 }
45
46 public function give_review() {
47 if ( function_exists( 'get_current_screen' ) ) {
48 if ( get_current_screen()->id == 'dashboard' || get_current_screen()->id == 'toplevel_page_wpcf7' || strpos( get_current_screen()->id, 'contact_page_wpcf7' ) !== false || get_current_screen()->id == 'upload' || get_current_screen()->id == 'plugins' ) {
49 ?>
50 <div class="notice notice-success is-dismissible" id="njt-cf7mls-review">
51 <h3 style="margin: 1em 0;"><?php _e( 'Give Contact Form 7 Multi Step Pro a review', 'cf7mls' ); ?></h3>
52 <p>
53 <?php _e( 'Thank you for choosing Contact Form 7 Multi Step Pro. We hope you love it. Could you take a couple of seconds posting a nice review to share your happy experience?', 'cf7mls' ); ?>
54 </p>
55 <p>
56 <?php _e( 'We will be forever grateful. Thank you in advance ;)', 'cf7mls' ); ?>
57 </p>
58 <p>
59 <a href="javascript:;" data="rateNow" class="button button-primary" style="margin-right: 5px"><?php _e( 'Rate now', 'cf7mls' ); ?></a>
60 <a href="javascript:;" data="later" class="button" style="margin-right: 5px"><?php _e( 'Later', 'cf7mls' ); ?></a>
61 <a href="javascript:;" data="alreadyDid" class="button"><?php _e( 'Already did', 'cf7mls' ); ?></a>
62 </p>
63 </div>
64 <script>
65 jQuery(document).ready(function () {
66 jQuery("#njt-cf7mls-review a").on("click", function () {
67 var thisElement = this;
68 var fieldValue = jQuery(thisElement).attr("data");
69 var proLink = "https://codecanyon.net/item/contact-form-7-multistep/reviews/15232990";
70 var freeLink = "https://wordpress.org/support/plugin/cf7-multi-step/reviews/?filter=5#new-post";
71 var hidePopup = false;
72 if (fieldValue == "rateNow") {
73 window.open(proLink, "_blank");
74 } else {
75 hidePopup = true;
76 }
77
78 jQuery
79 .ajax({
80 dataType: 'json',
81 url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
82 type: "post",
83 data: {
84 action: "cf7mls_save_review",
85 field: fieldValue,
86 nonce: '<?php echo wp_create_nonce( 'cf7mls_review_nonce' ); ?>',
87 },
88 })
89 .done(function (result) {
90 if (result.success) {
91 if (hidePopup == true) {
92 jQuery("#njt-cf7mls-review").hide("slow");
93 }
94 } else {
95 console.log("Error", result.message);
96 if (hidePopup == true) {
97 jQuery("#njt-cf7mls-review").hide("slow");
98 }
99 }
100 })
101 .fail(function (res) {
102 console.log(res.responseText);
103
104 if (hidePopup == true) {
105 jQuery("#njt-cf7mls-review").hide("slow");
106 }
107 });
108 });
109 });
110 </script>
111 <?php
112 }
113 }
114 }
115 }
116 new NjtCF7MLSReview();
117 }
118
1 <?php
2
3 if ( ! defined( 'ABSPATH' ) ) {
4 exit;
5 }
6 function cf7mls_is_active_cf7db() {
7 return defined( 'CF7D_FILE' );
8 }
9 if ( cf7mls_is_active_cf7db() ) {
10 add_filter( 'cf7d_no_save_fields', 'cf7mls_cf7d_no_save_fields' );
11 function cf7mls_cf7d_no_save_fields( $fields ) {
12 // $fields[] = '_cf7mls_db_form_data_id';
13 $fields[] = '_wpnonce';
14 $fields[] = 'cf7mls_back';
15 $fields[] = 'cf7mls_next';
16
17 return $fields;
18 }
19
20 /*
21 * Remove user's informations every steps
22 */
23 add_action( 'cf7d_after_insert_db', 'cf7mls_cf7d_after_insert_db', 10, 3 );
24 function cf7mls_cf7d_after_insert_db( $contact_form, $form_id, $data_id ) {
25 global $wpdb;
26 $data_id_be_delete = $wpdb->get_results( 'SELECT `value` FROM ' . $wpdb->prefix . "cf7_data_entry WHERE `cf7_id` = '" . $form_id . "' AND `name` = '_cf7mls_db_form_data_id'" );
27 if ( isset( $data_id_be_delete[0] ) ) {
28 $data_id_be_delete = $data_id_be_delete[0]->value;
29 // delele data_id
30 $wpdb->delete( $wpdb->prefix . 'cf7_data', array( 'id' => $data_id_be_delete ) );
31 // delete entry
32 $wpdb->delete(
33 $wpdb->prefix . 'cf7_data_entry',
34 array(
35 'cf7_id' => $form_id,
36 'data_id' => $data_id_be_delete,
37 )
38 );
39 $wpdb->delete(
40 $wpdb->prefix . 'cf7_data_entry',
41 array(
42 'cf7_id' => $form_id,
43 'name' => '_cf7mls_db_form_data_id',
44 )
45 );
46 }
47 }
48
49 // No save fields cf7mls_step-1, cf7mls_step-2,... before when install to database
50 add_filter( 'cf7d_posted_data', 'cf7mls_cf7d_posted_data', 10, 1 );
51 function cf7mls_cf7d_posted_data( $contact_form ) {
52 $pattern = '/cf7mls_step-/i';
53 foreach ( $contact_form as $k => $v ) {
54 if ( preg_match( $pattern, $k ) ) {
55 unset( $contact_form[ $k ] );
56 }
57 }
58 return $contact_form;
59 }
60 }
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if ( ! class_exists( 'NjtCF7MLSValidation' ) ) {
3 class NjtCF7MLSValidation {
4
5 public function __construct() {
6 $this->doHooks();
7 }
8
9 private function doHooks() {
10 add_action( 'wp_ajax_cf7mls_validation', array( $this, 'cf7mls_validation_callback' ) );
11 add_action( 'wp_ajax_nopriv_cf7mls_validation', array( $this, 'cf7mls_validation_callback' ) );
12 }
13 public function cf7mls_validation_callback() {
14 global $wpdb;
15 if ( isset( $_POST['_wpcf7'] ) ) {
16 $id = (int) $_POST['_wpcf7'];
17 $unit_tag = wpcf7_sanitize_unit_tag( $_POST['_wpcf7_unit_tag'] );
18
19 $spam = false;
20 if ( $contact_form = wpcf7_contact_form( $id ) ) {
21 $items = array(
22 'mailSent' => false,
23 'into' => '#' . $unit_tag,
24 'captcha' => null,
25 );
26 /* Begin validation */
27 require_once WPCF7_PLUGIN_DIR . '/includes/validation.php';
28 $result = new WPCF7_Validation();
29
30 $tags = $contact_form->scan_form_tags(
31 array(
32 'feature' => '! file-uploading',
33 )
34 );
35
36 foreach ( $tags as $tag ) {
37 $type = $tag->type;
38 $result = apply_filters( "wpcf7_validate_{$type}", $result, $tag );
39 }
40 $result = apply_filters( 'wpcf7_validate', $result, $tags );
41
42 $invalid_fields = $result->get_invalid_fields();
43 $upload_files = $this->unship_uploaded_files( $contact_form );
44 $success = false;
45 $invalid_fields_return = array_merge( $result->get_invalid_fields(), $upload_files['invalid_fields'] );
46 if ( false === $result->is_valid() ) {
47 $success = $result->is_valid();
48 } else {
49 $success = $upload_files['valid'];
50 }
51 $return = array(
52 'success' => $success,
53 'invalid_fields' => $invalid_fields_return,
54 );
55 if ( $return['success'] == false ) {
56 $messages = $contact_form->prop( 'messages' );
57 $return['message'] = $messages['validation_error'];
58 if ( empty( $return['message'] ) ) {
59 $default_messages = wpcf7_messages();
60 $return['message'] = $default_messages['validation_error']['default'];
61 }
62 } else {
63 $return['message'] = '';
64 }
65 if ( cf7mls_is_active_cf7db() ) {
66 if ( get_post_meta( $id, '_cf7mls_db_save_every_step', true ) == 'yes' ) {
67 $_cf7mls_db_form_data_id = ( isset( $_POST['_cf7mls_db_form_data_id'] ) ? intval( $_POST['_cf7mls_db_form_data_id'] ) : '' );
68 if ( empty( $_cf7mls_db_form_data_id ) ) {
69 $wpdb->insert( $wpdb->prefix . 'cf7_data', array( 'created' => date( 'Y-m-d H:i:s' ) ), array( '%s' ) );
70 $_cf7mls_db_form_data_id = $wpdb->insert_id;
71 }
72
73 /*
74 * Insert / update to database
75 */
76 $contact_form = cf7d_get_posted_data( $contact_form );
77
78 // Modify $contact_form
79 $contact_form = apply_filters( 'cf7d_modify_form_before_insert_data', $contact_form );
80 $tags = $contact_form->scan_form_tags(
81 array(
82 'feature' => '! file-uploading',
83 )
84 );
85
86 $posted_data = $_POST;
87 $posted_data = $this->cf7mls_cf7d_add_more_fields( $posted_data );
88
89 foreach ( $tags as $k => $v ) {
90 if ( isset( $posted_data[ $v['name'] ] ) ) {
91 $posted_data[ $v['name'] ] = $this->cf7mls_sanitize_posted_data( $posted_data[ $v['name'] ] );
92 } else {
93 unset( $posted_data[ $v['name'] ] );
94 }
95 }
96 // install to database
97 $cf7d_no_save_fields = cf7d_no_save_fields();
98 foreach ( $posted_data as $k => $v ) {
99 if ( in_array( $k, $cf7d_no_save_fields ) ) {
100 continue;
101 } else {
102 if ( is_array( $v ) ) {
103 $v = implode( "\n", $v );
104 }
105 $check_existing = $wpdb->get_results( 'SELECT `id` FROM ' . $wpdb->prefix . 'cf7_data_entry WHERE `cf7_id` = ' . (int) $id . ' AND `data_id` = ' . (int) $_cf7mls_db_form_data_id . " AND `name` = '" . $k . "'" );
106 if ( count( $check_existing ) > 0 ) {
107 /* Update */
108 $data = array(
109 'name' => $k,
110 'value' => $v,
111 );
112 $data_format = array( '%s', '%s' );
113 $where = array(
114 'cf7_id' => (int) $id,
115 'data_id' => (int) $_cf7mls_db_form_data_id,
116 );
117 $where_format = array( '%d', '%d' );
118 $wpdb->update( $wpdb->prefix . 'cf7_data_entry', $data, $where, $data_format, $where_format );
119 } else {
120 /* Insert */
121 $data = array(
122 'cf7_id' => (int) $id,
123 'data_id' => (int) $_cf7mls_db_form_data_id,
124 'name' => $k,
125 'value' => $v,
126 );
127 $format = array( '%d', '%d', '%s', '%s' );
128 $wpdb->insert( $wpdb->prefix . 'cf7_data_entry', $data, $format );
129 }
130 }
131 }
132 $return['_cf7mls_db_form_data_id'] = (int) $_cf7mls_db_form_data_id;
133 }
134 }
135 $json = json_encode( $return );
136 exit( $json );
137 }
138 }
139 }
140 public function cf7mls_sanitize_posted_data( $value ) {
141 if ( is_array( $value ) ) {
142 $value = array_map( 'cf7mls_sanitize_posted_data', $value );
143 } elseif ( is_string( $value ) ) {
144 $value = wp_check_invalid_utf8( $value );
145 $value = wp_kses_no_null( $value );
146 }
147 return $value;
148 }
149 public function cf7mls_cf7d_add_more_fields( $posted_data ) {
150 // time
151 $posted_data['submit_time'] = date( 'Y-m-d H:i:s' );
152 // ip
153 $posted_data['submit_ip'] = ( isset( $_SERVER['X_FORWARDED_FOR'] ) ) ? $_SERVER['X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
154 // user id
155 $posted_data['submit_user_id'] = 0;
156 if ( function_exists( 'is_user_logged_in' ) && is_user_logged_in() ) {
157 $current_user = wp_get_current_user(); // WP_User
158 $posted_data['submit_user_id'] = $current_user->ID;
159 }
160 return $posted_data;
161 }
162 private function unship_uploaded_files( $contact_form ) {
163 $file_result = new WPCF7_Validation();
164
165 $file_tags = $contact_form->scan_form_tags(
166 array(
167 'feature' => 'file-uploading',
168 )
169 );
170
171 foreach ( $file_tags as $tag ) {
172 if ( false != $tag->is_required() ) {
173 $file = isset( $_FILES[ $tag->name ] ) ? $_FILES[ $tag->name ] : null;
174 $args = array(
175 'tag' => $tag,
176 'name' => $tag->name,
177 'required' => $tag->is_required(),
178 'filetypes' => $tag->get_option( 'filetypes' ),
179 'limit' => $tag->get_limit_option(),
180 );
181
182 $new_files = wpcf7_unship_uploaded_file( $file, $args );
183
184 $file_result = apply_filters(
185 "wpcf7_validate_{$tag->type}",
186 $file_result,
187 $tag,
188 array(
189 'uploaded_files' => $new_files,
190 )
191 );
192 }
193 }
194
195 $file_invalid_fields = $file_result->get_invalid_fields();
196 return array(
197 'valid' => $file_result->is_valid(),
198 'invalid_fields' => $file_invalid_fields,
199 );
200 }
201 }
202 new NjtCF7MLSValidation();
203 }
204
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1 <?php
2 /**
3 * The template for displaying the footer
4 *
5 * Contains the closing of the #content div and all content after
6 *
7 * @package Understrap
8 */
9
10 // Exit if accessed directly.
11 defined( 'ABSPATH' ) || exit;
12
13 $container = get_theme_mod( 'understrap_container_type' );
14 ?>
15
16 <?php get_template_part( 'sidebar-templates/sidebar', 'footerfull' ); ?>
17
18 <div class="wrapper" id="wrapper-footer">
19
20 <div class="<?php echo esc_attr( $container ); ?>">
21
22 <div class="row">
23
24 <div class="col-md-12">
25
26 <footer class="site-footer" id="colophon">
27
28 <div class="site-info">
29
30 <?php dynamic_sidebar( 'footerfull' ); ?>
31
32 </div><!-- .site-info -->
33
34 </footer><!-- #colophon -->
35
36 </div><!--col end -->
37
38 </div><!-- row end -->
39
40 </div><!-- container end -->
41
42 </div><!-- wrapper end -->
43
44 </div><!-- #page we need this extra closing tag here -->
45
46 <?php wp_footer(); ?>
47
48 </body>
49
50 </html>
51
...@@ -87,3 +87,42 @@ function understrap_child_customize_controls_js() { ...@@ -87,3 +87,42 @@ function understrap_child_customize_controls_js() {
87 ); 87 );
88 } 88 }
89 add_action( 'customize_controls_enqueue_scripts', 'understrap_child_customize_controls_js' ); 89 add_action( 'customize_controls_enqueue_scripts', 'understrap_child_customize_controls_js' );
90
91
92 add_filter( 'wpcf7_validate_email*', 'custom_email_confirmation_validation_filter', 20, 2 );
93
94 function custom_email_confirmation_validation_filter( $result, $tag ) {
95 if ( 'confirm-email' == $tag->name ) {
96 $your_email = isset( $_POST['your-email'] ) ? trim( $_POST['your-email'] ) : '';
97 $your_email_confirm = isset( $_POST['confirm-email'] ) ? trim( $_POST['confirm-email'] ) : '';
98
99 if ( $your_email != $your_email_confirm ) {
100 $result->invalidate( $tag, "Are you sure this is the correct address?" );
101 }
102 }
103
104 return $result;
105 }
106
107 function get_template_directory_child() {
108 $directory_template = get_template_directory_uri();
109 $directory_child = str_replace('understrap', '', $directory_template) . 'child-understrap';
110
111 return $directory_child;
112 }
113
114 function filter_wpcf7_response_output( $output ){
115 // Replace Success CSS Class
116
117 $output = str_replace( ' wpcf7-mail-sent-ok', ' alert alert-success', $output );
118 return $output;
119 }
120 add_filter( 'wpcf7_form_response_output', 'filter_wpcf7_response_output', 10, 1 );
121
122
123 add_filter("wpcf7_ajax_json_echo", function ($response, $result) {
124
125 $response["message"] = '';
126 return $response;
127
128 },10,2);
......
...@@ -28,13 +28,14 @@ if ( ! function_exists( 'understrap_scripts' ) ) { ...@@ -28,13 +28,14 @@ if ( ! function_exists( 'understrap_scripts' ) ) {
28 } 28 }
29 29
30 $css_version = $theme_version . '.' . filemtime( get_template_directory() . $theme_styles ); 30 $css_version = $theme_version . '.' . filemtime( get_template_directory() . $theme_styles );
31 wp_enqueue_style( 'fonts', get_template_directory_uri() .'fonts/fonts.css', array(), $css_version ); 31 wp_enqueue_style( 'fonts', get_stylesheet_directory_uri() .'/fonts/fonts.css', array(), $css_version );
32 wp_enqueue_style( 'understrap-styles', get_template_directory_uri() . $theme_styles, array(), $css_version ); 32 wp_enqueue_style( 'understrap-styles', get_template_directory_uri() . $theme_styles, array(), $css_version );
33 33
34 wp_enqueue_script( 'jquery' ); 34 wp_enqueue_script( 'jquery' );
35 35
36 $js_version = $theme_version . '.' . filemtime( get_template_directory() . $theme_scripts ); 36 $js_version = $theme_version . '.' . filemtime( get_template_directory() . $theme_scripts );
37 wp_enqueue_script( 'understrap-scripts', get_template_directory_uri() . $theme_scripts, array(), $js_version, true ); 37 wp_enqueue_script( 'understrap-scripts', get_template_directory_uri() . $theme_scripts, array(), $js_version, true );
38 wp_enqueue_script( 'custom-javascript', get_stylesheet_directory_uri() .'/js/custom-javascript.js', array(), $js_version, true );
38 if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { 39 if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
39 wp_enqueue_script( 'comment-reply' ); 40 wp_enqueue_script( 'comment-reply' );
40 } 41 }
......
1 // Add your custom JS here.
2 jQuery( document ).ready(function($) {
3
4 $(document).on("click","#register-here",function() {
5 $('.wp-block-group.register').toggle();
6 $('.numbers-second .wp-block-column:first-child a.wp-block-button__link').toggleClass('rotated');
7 });
8
9 $('.wpcf7-form-control-wrap').each(function( index ) {
10 $(this).parent().addClass($(this).attr('class').split(' ')[1]);
11 });
12
13 document.addEventListener( 'wpcf7mailsent', function( event ) {
14 if ( '36' == event.detail.contactFormId ) {
15 console.log('wpcf7submit');
16 $('.fieldset-cf7mls-wrapper').remove();
17 $('.cf7mls_progress_bar').remove();
18 $('.thank-you').show();
19 }
20 }, false );
21
22 });
...\ No newline at end of file ...\ No newline at end of file
1 <svg xmlns="http://www.w3.org/2000/svg" width="25.052" height="15.19" viewBox="0 0 25.052 15.19">
2 <path id="Path_734" data-name="Path 734" d="M23.855,189.961c.868.879,1.72,1.75,2.582,2.612q3.1,3.1,6.21,6.192a1.393,1.393,0,0,0,2.058,0c.394-.4.8-.8,1.2-1.2a1.364,1.364,0,0,0-.008-2.042q-2.793-2.792-5.584-5.585-2.708-2.711-5.413-5.424a1.511,1.511,0,0,0-1.013-.483,1.442,1.442,0,0,0-1.114.481q-2.089,2.1-4.18,4.191-2.844,2.847-5.69,5.692c-.387.387-.776.773-1.161,1.162a1.356,1.356,0,0,0,.014,2q.594.592,1.186,1.186a1.391,1.391,0,0,0,2.088,0l5.037-5.018,3.648-3.632C23.748,190.062,23.785,190.028,23.855,189.961Z" transform="translate(-11.305 -184.028)" fill="#fff"/>
3 </svg>
1 <svg xmlns="http://www.w3.org/2000/svg" width="170.599" height="35.509" viewBox="0 0 170.599 35.509">
2 <g id="Group_1051" data-name="Group 1051" transform="translate(-1130.401 -2344)">
3 <g id="Group_1050" data-name="Group 1050">
4 <g id="Component_29_7" data-name="Component 29 – 7" transform="translate(1130.401 2344)">
5 <path id="Path_1300" data-name="Path 1300" d="M443.182,471.342v35.509h35.509V471.342Zm24.407,14.342q.009.221.009.444a9.76,9.76,0,0,1-15.025,8.225,6.952,6.952,0,0,0,5.081-1.422,3.434,3.434,0,0,1-3.206-2.383,3.443,3.443,0,0,0,1.55-.06,3.434,3.434,0,0,1-2.754-3.366v-.042a3.427,3.427,0,0,0,1.556.429,3.44,3.44,0,0,1-1.063-4.584,9.745,9.745,0,0,0,7.074,3.587,3.434,3.434,0,0,1,5.848-3.131,6.854,6.854,0,0,0,2.18-.831,3.443,3.443,0,0,1-1.509,1.9,6.828,6.828,0,0,0,1.971-.541A6.953,6.953,0,0,1,467.589,485.684Z" transform="translate(-443.182 -471.342)" fill="#fff"/>
6 </g>
7 <g id="Component_30_7" data-name="Component 30 – 7" transform="translate(1175.431 2344)">
8 <path id="Path_1301" data-name="Path 1301" d="M488.212,471.342v35.509h35.509V471.342Zm21.442,14.927-.192,2.5H506.9v8.681h-3.237v-8.681h-1.726v-2.5h1.726v-1.678a4.478,4.478,0,0,1,.557-2.588,3.07,3.07,0,0,1,2.68-1.258,10.872,10.872,0,0,1,3.1.31l-.432,2.558a5.825,5.825,0,0,0-1.391-.208c-.671,0-1.272.241-1.272.912v1.952Z" transform="translate(-488.212 -471.342)" fill="#fff"/>
9 </g>
10 <g id="Component_31_7" data-name="Component 31 – 7" transform="translate(1220.461 2344)">
11 <path id="Path_1302" data-name="Path 1302" d="M594.311,492.316l5.467-3.211-5.467-3.212Z" transform="translate(-578.273 -471.342)" fill="#fff"/>
12 <path id="Path_1303" data-name="Path 1303" d="M578.273,471.342v35.509h35.509V471.342Zm26.613,20.74a2.819,2.819,0,0,1-2.878,2.879H591.063a2.819,2.819,0,0,1-2.876-2.879V486.11a2.817,2.817,0,0,1,2.876-2.878h10.945a2.819,2.819,0,0,1,2.878,2.878Z" transform="translate(-578.273 -471.342)" fill="#fff"/>
13 </g>
14 <g id="Component_32_7" data-name="Component 32 – 7" transform="translate(1265.491 2344)">
15 <path id="Path_1304" data-name="Path 1304" d="M623.3,471.342v35.509h35.509V471.342Zm14.62,24.273h-3.256V485.2h3.256Zm-1.711-11.722h-.024a1.807,1.807,0,0,1-1.942-1.8,1.984,1.984,0,1,1,1.966,1.8Zm14.734,11.722h-3.691v-5.391c0-1.411-.577-2.374-1.847-2.374a1.863,1.863,0,0,0-1.762,1.276,2.4,2.4,0,0,0-.08.851v5.638h-3.657s.048-9.551,0-10.418h3.657v1.634a3.337,3.337,0,0,1,3.25-1.735c2.312,0,4.13,1.5,4.13,4.726Z" transform="translate(-623.303 -471.342)" fill="#fff"/>
16 </g>
17 </g>
18 </g>
19 </svg>
1 // Add your custom JS here.
...\ No newline at end of file ...\ No newline at end of file
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
9 9
10 // Any additional imported files // 10 // Any additional imported files //
11 @import "theme/child_theme"; // <------- Add your styles into this file 11 @import "theme/child_theme"; // <------- Add your styles into this file
12 @import "theme/numbers"; // <------- Add your styles into this file 12 @import "theme/numbers";
13 @import "theme/footer"; // <------- Add your styles into this file
13 @import "assets/understrap/theme/colors"; // <-------- This creates the necessary bootstrap color classes. 14 @import "assets/understrap/theme/colors"; // <-------- This creates the necessary bootstrap color classes.
14 @import "assets/understrap/theme/blocks"; // <-------- This adds Bootstrap styles to blocks. 15 @import "assets/understrap/theme/blocks"; // <-------- This adds Bootstrap styles to blocks.
15 @import "assets/understrap/theme/contact-form7"; // <-------- Contact Form 7 - Bootstrap 4 support 16 @import "assets/understrap/theme/contact-form7"; // <-------- Contact Form 7 - Bootstrap 4 support
...\ No newline at end of file ...\ No newline at end of file
......
1 #wrapper-footer{
2 background-color:#012169;
3 height: 273px;
4 @media screen and (max-width: 768px) {
5 height: 245px;
6 }
7 a{
8 color: #fff;
9 }
10 }
11
12 .footer-widget{
13 p{
14 position: relative;
15 right: 0px;
16 text-align: right;
17 margin-top:0px;
18 color: #fff;
19 @media screen and (max-width: 768px) {
20 text-align: left;
21 }
22 }
23 }
24 div.social{
25
26 position: relative;
27 right: 0px;
28 top:40px;
29 width: 300px;
30 display: block;
31 float: right;
32 @media screen and (max-width: 768px) {
33 float: left;
34 }
35
36 }
37 ul.social {
38 list-style-position: inside;
39 text-align: right;
40 margin-top:0px ;
41 margin-bottom: 0rem !important;
42 @media screen and (max-width: 768px) {
43 text-align: left;
44 padding-left:0px !important;
45 margin-bottom: 0.7rem !important;
46 }
47 li {
48 display: inline-block;
49
50 a {
51 -webkit-transition: none !important;
52 transition: none !important;
53 display: inline-block;
54 width: 36px !important;
55 height: 36px !important;
56 background:url(/wp-content/themes/understrap-child/src/images/social.svg) no-repeat;
57 text-indent: 100%;
58 white-space: nowrap;
59 overflow: hidden;
60 background-size: 400%;
61 box-shadow: none !important;
62 border: solid 0px #4A4E4F;
63 background-color: transparent !important;
64 margin-top:0px ;
65 margin-bottom: 0rem;
66
67 }
68
69 a.twitter-icon {
70
71 background-position: 0% 0%;
72
73 &:hover {
74 opacity: 0.5;
75 }
76
77 &:active {
78 opacity: 0.5;
79 }
80
81 &:focus {
82 opacity: 0.5;
83 }
84
85 }
86
87 a.instagram-icon {
88
89 background-position: 33% 0%;
90
91 &:hover {
92 opacity: 0.5;
93 }
94
95 &:active {
96 opacity: 0.5;
97 }
98
99 &:focus {
100 opacity: 0.5;
101 }
102 }
103
104 a.facebook-icon {
105
106 background-position: 66% 0%;
107
108 &:hover {
109 opacity: 0.5;
110 }
111
112 &:active {
113 opacity: 0.5;
114 }
115
116 &:focus {
117 opacity: 0.5;
118 }
119 }
120
121 a.linkedin-icon {
122
123
124 background-position: 100% 0%;
125
126 &:hover {
127 opacity: 0.5;
128 }
129
130 &:active {
131 opacity: 0.5;
132 }
133
134 &:focus {
135 opacity: 0.5;
136 }
137 }
138 }
139 }
...\ No newline at end of file ...\ No newline at end of file
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
5 Author: the Understrap Contributors 5 Author: the Understrap Contributors
6 Author URI: https://github.com/understrap/understrap-child/graphs/contributors 6 Author URI: https://github.com/understrap/understrap-child/graphs/contributors
7 Template: understrap 7 Template: understrap
8 Version: 1.1.0 8 Version: 1.1.02
9 License: GNU General Public License v2 or later 9 License: GNU General Public License v2 or later
10 License URI: http://www.gnu.org/licenses/gpl-2.0.html 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html
11 Text Domain: understrap-child 11 Text Domain: understrap-child
......
...@@ -22,7 +22,7 @@ $container = get_theme_mod( 'understrap_container_type' ); ...@@ -22,7 +22,7 @@ $container = get_theme_mod( 'understrap_container_type' );
22 22
23 <div class="row"> 23 <div class="row">
24 24
25 <?php dynamic_sidebar( 'footerfull' ); ?> 25
26 26
27 </div> 27 </div>
28 28
......