PluginProbe
weForms – Easy Drag & Drop Contact Form Builder For WordPress / 1.6.13
weForms – Easy Drag & Drop Contact Form Builder For WordPress v1.6.13
1.6.7 1.6.8 1.6.9 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.18 1.6.19 1.6.2 1.6.20 1.6.21 1.6.22 1.6.23 1.6.24 1.6.25 1.6.26 1.6.27 1.6.28 1.6.3 1.6.4 1.6.5 1.6.6 All 74 releases
weforms / includes / admin / class-promotion.php

class-promotion.php in weForms – Easy Drag & Drop Contact Form Builder For WordPress 1.6.13, at includes/admin/class-promotion.php

383 lines 12.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Promotional offer class
5 */
6 class WeForms_Admin_Promotion {
7
8 public function __construct() {
9 add_action( 'admin_notices', [ $this, 'promotional_offer' ] );
10 add_action( 'admin_notices', [ $this, 'weforms_review_notice_message' ] );
11 add_action( 'wp_ajax_weforms-dismiss-promotional-offer-notice', [ $this, 'dismiss_promotional_offer' ] );
12 add_action( 'wp_ajax_weforms-dismiss-review-notice', [ $this, 'dismiss_review_notice' ] );
13 }
14
15 /**
16 * Promotional offer notice
17 *
18 * @return void
19 *
20 * @since 1.2.6
21 */
22 public function promotional_offer() {
23 if ( !current_user_can( 'manage_options' ) ) {
24 return;
25 }
26
27 if ( class_exists( 'WeForms_Pro' ) ) {
28 return;
29 }
30
31 // check if it has already been dismissed
32 $offer_key = 'weforms_promotional_offer_notice';
33 $offer_start_date = strtotime( '2019-11-20 00:00:01' );
34 $offer_end_date = strtotime( '2019-12-04 23:59:00' );
35 $hide_notice = get_option( $offer_key, 'show' );
36
37 if ( 'hide' == $hide_notice ) {
38 return;
39 }
40
41 if ( $offer_start_date < current_time( 'timestamp' ) && current_time( 'timestamp' ) < $offer_end_date ) {
42 ?>
43 <div class="notice notice-success is-dismissible" id="weforms-bfcm-notice">
44 <div class="logo">
45 <img src="<?php echo esc_attr( WEFORMS_ASSET_URI ) . '/images/promo-logo.png' ?>" alt="weForms">
46 </div>
47 <div class="content">
48 <p>Biggest Sale of the year on this</p>
49
50 <h3><span class="highlight-green"> Black Friday &amp; </span>Cyber Monday</h3>
51 <p>Claim your discount on <span class="highlight-olive">weForms</span> till 4th December</p>
52 </div>
53 <div class="call-to-action">
54 <a target="_blank" href="https://wedevs.com/weforms/pricing?utm_campaign=black_friday_&_cyber_monday&utm_medium=banner&utm_source=plugin_dashboard">
55 <img src="<?php echo esc_attr( WEFORMS_ASSET_URI ) . '/images/promo-btn.png' ?>" alt="Btn">
56 </a>
57 <p>
58 <span class="highlight-green">Coupon: </span>
59 <span class="coupon-code">BFCM2019</span>
60 </p>
61 </div>
62 </div>
63
64 <style>
65 #weforms-bfcm-notice {
66 font-size: 14px;
67 border-left: none;
68 background: #398085;
69 color: #fff;
70 display: flex
71 }
72
73 #weforms-bfcm-notice .notice-dismiss:before {
74 color: #76E5FF;
75 }
76
77 #weforms-bfcm-notice .notice-dismiss:hover:before {
78 color: #b71c1c;
79 }
80
81 #weforms-bfcm-notice .logo {
82 text-align: center;
83 text-align: center;
84 margin: auto 50px;
85 }
86
87 #weforms-bfcm-notice .logo img {
88 width: 80%;
89 }
90
91 #weforms-bfcm-notice .highlight-green {
92 color: #72F3FB;
93 }
94
95 #weforms-bfcm-notice .highlight-olive {
96 color: #7CF5AA;
97 }
98
99 #weforms-bfcm-notice .content {
100 margin-top: 5px;
101 }
102
103 #weforms-bfcm-notice .content h3 {
104 color: #FFF;
105 margin: 12px 0 5px;
106 font-weight: normal;
107 font-size: 30px;
108 }
109
110 #weforms-bfcm-notice .content p {
111 margin-top: 12px;
112 padding: 0;
113 letter-spacing: .4px;
114 color: #ffffff;
115 font-size: 15px;
116 }
117
118 #weforms-bfcm-notice .call-to-action {
119 margin-left: 10%;
120 margin-top: 20px;
121 }
122
123 #weforms-bfcm-notice .call-to-action a:focus {
124 box-shadow: none;
125 }
126
127 #weforms-bfcm-notice .call-to-action p {
128 font-size: 16px;
129 color: #fff;
130 margin-top: 1px;
131 text-align: center;
132 }
133
134 #weforms-bfcm-notice .coupon-code {
135 -moz-user-select: all;
136 -webkit-user-select: all;
137 user-select: all;
138 }
139 </style>
140
141 <script type='text/javascript'>
142 jQuery('body').on('click', '#weforms-bfcm-notice .notice-dismiss', function (e) {
143 e.preventDefault();
144
145 wp.ajax.post('weforms-dismiss-promotional-offer-notice', {
146 dismissed: true,
147 _wpnonce: '<?php echo esc_attr ( wp_create_nonce( 'weforms' ) ); ?>'
148 });
149 });
150 </script>
151 <?php
152 }
153 }
154
155 /**
156 * @return void
157 *
158 **@since 1.3.5
159 */
160 public function weforms_review_notice_message() {
161 // Show only to Admins
162 if ( !current_user_can( 'manage_options' ) ) {
163 return;
164 }
165
166 $screen = get_current_screen();
167 if ( $screen && $screen->base && 'toplevel_page_weforms' !== $screen->base ) {
168 return;
169 }
170
171 $dismiss_notice = get_option( 'weforms_review_notice_dismiss', 'no' );
172 $activation_time = get_option( 'weforms_installed' );
173 $total_entries = weforms_count_entries();
174
175 $args = [
176 'order' => 'DESC',
177 'orderby' => 'post_date',
178 ];
179
180 $contact_forms = weforms()->form->get_forms( $args );
181 $form_published = count( $contact_forms['forms'] );
182
183 // check if it has already been dismissed
184 // and don't show notice in 45 days of installation, 3888000 = 45 Days in seconds
185 if ( 'yes' == $dismiss_notice ) {
186 return;
187 }
188
189 if (
190 ( time() - $activation_time < 3888000 )
191 && $total_entries < 25
192 && $form_published < 3
193 ) {
194 return;
195 } ?>
196 <div id="weforms-review-notice" class="weforms-review-notice updated notice">
197 <div class="weforms-review-top">
198 <p><img src="<?php echo esc_attr( WEFORMS_ASSET_URI ) . '/images/weforms-logo.png'; ?>" alt=""></p>
199 <div class="weforms-review-text">
200 <?php if ( $total_entries >= 25 ) : ?>
201 <h3><?php printf( __( 'Enjoying %sweForms%s?', 'weforms' ), '<strong>', '</strong>' ); ?></h3>
202 <p><?php
203 printf(
204 // translators: opening <a>tag, closing </a> tag.
205 __(
206 'Seems like you are getting a good response using weForms. Would you please show us a little love by rating us in the %sWordPress.org%s?',
207 'weforms'
208 ),
209 '<a href="https://wordpress.org/support/plugin/weforms/reviews/#postform" target="_blank"><strong>',
210 '</strong></a>'
211 ); ?></p>
212 <?php else: ?>
213 <h3><?php printf(
214 // translators: opening <strong> tag, closing </strong> tag.
215 __( 'Enjoying %sweForms%s?', 'weforms' ),
216 '<strong>',
217 '</strong>' ); ?></h3>
218 <p><?php
219 printf(
220 // translators: opening <a> tag, closing </a> tag
221 __(
222 'Hope that you had a neat and snappy experience with the tool. Would you please show us a little love by rating us in the %sWordPress.org%s?',
223 'weforms'
224 ),
225 '<a href="https://wordpress.org/support/plugin/weforms/reviews/#postform" target="_blank"><strong>',
226 '</strong></a>'
227 ); ?></p>
228 <?php endif; ?>
229 </div>
230 </div>
231 <div class="weforms-review-links">
232 <ul class="weforms-review-ul">
233 <li><a class="button-primary button" href="https://wordpress.org/support/plugin/weforms/reviews/#postform" target="_blank"><span
234 class="dashicons dashicons-external"></span><?php esc_html_e( 'Sure! I\'d love to!', 'weforms' ) ?>
235 </a></li>
236 <li><a href="#" class="button notice-dismiss"><span
237 class="dashicons dashicons-smiley"></span><?php esc_html_e( 'I\'ve already left a review', 'weforms' ) ?>
238 </a></li>
239 <li><a href="#" class="button notice-dismiss"><span
240 class="dashicons dashicons-dismiss"></span><?php esc_html_e( 'Never show again', 'weforms' ) ?>
241 </a>
242 </li>
243 </ul>
244 </div>
245 </div>
246 <style type="text/css">
247
248 #weforms-review-notice .notice-dismiss:before {
249 display: none;
250 }
251
252 #weforms-review-notice.weforms-review-notice {
253 background-color: #fff;
254 border-radius: 3px;
255 margin: 5px 0 15px;
256 }
257
258 #weforms-review-notice .weforms-review-top {
259 display: flex;
260 margin: 0.5em 0;
261 }
262
263 #weforms-review-notice .weforms-review-top > p {
264 padding-right: 15px;
265 }
266
267 #weforms-review-notice .weforms-review-thumbnail {
268 width: 114px;
269 float: left;
270 line-height: 80px;
271 text-align: center;
272 border-right: 4px solid transparent;
273 }
274
275 #weforms-review-notice .weforms-review-thumbnail img {
276 width: 60px;
277 vertical-align: middle;
278 }
279
280 #weforms-review-notice .weforms-review-text {
281 overflow: hidden;
282 }
283
284 #weforms-review-notice .weforms-review-text h3 {
285 font-size: 24px;
286 margin: 0 0 5px;
287 font-weight: 400;
288 line-height: 1.3;
289 }
290
291 #weforms-review-notice .weforms-review-links {
292 margin: 0.5em 0;
293 }
294
295 #weforms-review-notice .weforms-review-text p {
296 font-size: 13px;
297 margin: 0 0 5px;
298 }
299
300 #weforms-review-notice .weforms-review-ul {
301 margin: 0;
302 padding: 0;
303 }
304
305 #weforms-review-notice .weforms-review-ul li {
306 display: inline-block;
307 margin-right: 15px;
308 }
309
310 #weforms-review-notice .weforms-review-ul li a {
311 display: flex;
312 align-items: center;
313 justify-content: space-between;
314 text-decoration: none;
315 position: relative;
316 }
317
318 #weforms-review-notice .weforms-review-ul li a span {
319 margin-right: 10px;
320 }
321 </style>
322 <script type='text/javascript'>
323 jQuery('body').on('click', '#weforms-review-notice .notice-dismiss', function (e) {
324 e.preventDefault();
325 jQuery("#weforms-review-notice").hide();
326
327 wp.ajax.post('weforms-dismiss-review-notice', {
328 dismissed: true,
329 _wpnonce: '<?php echo esc_attr ( wp_create_nonce( 'weforms' ) ); ?>'
330 });
331 });
332 </script>
333 <?php
334 }
335
336 /**
337 * Dismiss promotion notice
338 *
339 * @return void
340 *
341 * @since 1.2.6
342 */
343 public function dismiss_promotional_offer() {
344 if( empty( $_POST['_wpnonce'] ) ) {
345 wp_send_json_error( __( 'Unauthorized operation', 'weforms' ) );
346 }
347
348 if ( ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) ), 'weforms' ) ) {
349 wp_send_json_error( __( 'Unauthorized operation', 'weforms' ) );
350 }
351
352 if ( ! isset( $_POST['reason_id'] ) ) {
353 wp_send_json_error();
354 }
355
356 if ( ! empty( $_POST['dismissed'] ) ) {
357 $offer_key = 'weforms_promotional_offer_notice';
358 update_option( $offer_key, 'hide' );
359 }
360 }
361
362 /**
363 * Dismiss review notice
364 *
365 * @return void
366 *
367 **@since 1.3.5
368 */
369 public function dismiss_review_notice() {
370 if( empty( $_POST['_wpnonce'] ) ) {
371 wp_send_json_error( __( 'Unauthorized operation', 'weforms' ) );
372 }
373
374 if ( ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) ), 'weforms' ) ) {
375 wp_send_json_error( __( 'Unauthorized operation', 'weforms' ) );
376 }
377
378 if ( ! empty( $_POST['dismissed'] ) ) {
379 update_option( 'weforms_review_notice_dismiss', 'yes' );
380 }
381 }
382 }
383