1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
|
<?php
abstract class WPCF7_WelcomePanelColumn {
abstract protected function icon(); abstract protected function title(); abstract protected function content();
public function print_content() { $icon = sprintf( '<span class="dashicons dashicons-%s" aria-hidden="true"></span>', esc_attr( $this->icon() ) );
$title = sprintf( '<h3>%1$s %2$s</h3>', $icon, $this->title() );
$content = $this->content();
if ( is_array( $content ) ) { $content = implode( "\n\n", $content ); }
$content = wp_kses_post( $content ); $content = wptexturize( $content ); $content = convert_chars( $content ); $content = wpautop( $content );
echo "\n"; echo '<div class="welcome-panel-column">'; echo $title; echo $content; echo '</div>'; } }
class WPCF7_WelcomePanelColumn_AntiSpam extends WPCF7_WelcomePanelColumn {
protected function icon() { return 'shield'; }
protected function title() { return esc_html( __( "Getting spammed? You have protection.", 'contact-form-7' ) ); }
protected function content() { return array( esc_html( __( "Spammers target everything; your contact forms are not an exception. Before you get spammed, protect your contact forms with the powerful anti-spam features Contact Form 7 provides.", 'contact-form-7' ) ), sprintf( /* translators: links labeled 1: 'Akismet', 2: 'reCAPTCHA', 3: 'disallowed list' */ esc_html( __( 'Contact Form 7 supports spam-filtering with %1$s. Intelligent %2$s blocks annoying spambots. Plus, using %3$s, you can block messages containing specified keywords or those sent from specified IP addresses.', 'contact-form-7' ) ), wpcf7_link( __( 'https://contactform7.com/spam-filtering-with-akismet/', 'contact-form-7' ), __( 'Akismet', 'contact-form-7' ) ), wpcf7_link( __( 'https://contactform7.com/recaptcha/', 'contact-form-7' ), __( 'reCAPTCHA', 'contact-form-7' ) ), wpcf7_link( __( 'https://contactform7.com/comment-blacklist/', 'contact-form-7' ), __( 'disallowed list', 'contact-form-7' ) ) ), ); } }
class WPCF7_WelcomePanelColumn_Donation extends WPCF7_WelcomePanelColumn {
protected function icon() { return 'megaphone'; }
protected function title() { return esc_html( __( "Contact Form 7 needs your support.", 'contact-form-7' ) ); }
protected function content() { return array( esc_html( __( "It is hard to continue development and support for this plugin without contributions from users like you.", 'contact-form-7' ) ), sprintf( /* translators: %s: link labeled 'making a donation' */ esc_html( __( 'If you enjoy using Contact Form 7 and find it useful, please consider %s.', 'contact-form-7' ) ), wpcf7_link( __( 'https://contactform7.com/donate/', 'contact-form-7' ), __( 'making a donation', 'contact-form-7' ) ) ), esc_html( __( "Your donation will help encourage and support the plugin’s continued development and better user support.", 'contact-form-7' ) ), ); } }
class WPCF7_WelcomePanelColumn_Flamingo extends WPCF7_WelcomePanelColumn {
protected function icon() { return 'editor-help'; }
protected function title() { return esc_html( __( "Before you cry over spilt mail…", 'contact-form-7' ) ); }
protected function content() { return array( esc_html( __( "Contact Form 7 does not store submitted messages anywhere. Therefore, you may lose important messages forever if your mail server has issues or you make a mistake in mail configuration.", 'contact-form-7' ) ), sprintf( /* translators: %s: link labeled 'Flamingo' */ esc_html( __( 'Install a message storage plugin before this happens to you. %s saves all messages through contact forms into the database. Flamingo is a free WordPress plugin created by the same author as Contact Form 7.', 'contact-form-7' ) ), wpcf7_link( __( 'https://contactform7.com/save-submitted-messages-with-flamingo/', 'contact-form-7' ), __( 'Flamingo', 'contact-form-7' ) ) ), ); } }
class WPCF7_WelcomePanelColumn_Integration extends WPCF7_WelcomePanelColumn {
protected function icon() { return 'superhero-alt'; }
protected function title() { return esc_html( __( "You have strong allies to back you up.", 'contact-form-7' ) ); }
protected function content() { return array( sprintf( /* translators: 1: link labeled 'Sendinblue', 2: link labeled 'Constant Contact' */ esc_html( __( 'Your contact forms will become more powerful and versatile by integrating them with external APIs. With CRM and email marketing services, you can build your own contact lists (%1$s and %2$s).', 'contact-form-7' ) ), wpcf7_link( __( 'https://contactform7.com/sendinblue-integration/', 'contact-form-7' ), __( 'Sendinblue', 'contact-form-7' ) ), wpcf7_link( __( 'https://contactform7.com/constant-contact-integration/', 'contact-form-7' ), __( 'Constant Contact', 'contact-form-7' ) ) ), sprintf( /* translators: 1: link labeled 'reCAPTCHA', 2: link labeled 'Stripe' */ esc_html( __( 'With help from cloud-based machine learning, anti-spam services will protect your forms (%1$s). Even payment services are natively supported (%2$s).', 'contact-form-7' ) ), wpcf7_link( __( 'https://contactform7.com/recaptcha/', 'contact-form-7' ), __( 'reCAPTCHA', 'contact-form-7' ) ), wpcf7_link( __( 'https://contactform7.com/stripe-integration/', 'contact-form-7' ), __( 'Stripe', 'contact-form-7' ) ) ), ); } }
function wpcf7_welcome_panel() { $columns = array();
$flamingo_is_active = defined( 'FLAMINGO_VERSION' );
$sendinblue_is_active = false;
if ( class_exists( 'WPCF7_Sendinblue' ) and $sendinblue = WPCF7_Sendinblue::get_instance() ) { $sendinblue_is_active = $sendinblue->is_active(); }
if ( $flamingo_is_active and $sendinblue_is_active ) { $columns[] = new WPCF7_WelcomePanelColumn_AntiSpam(); $columns[] = new WPCF7_WelcomePanelColumn_Donation(); } elseif ( $flamingo_is_active ) { $columns[] = new WPCF7_WelcomePanelColumn_Integration(); $columns[] = new WPCF7_WelcomePanelColumn_AntiSpam(); } elseif ( $sendinblue_is_active ) { $columns[] = new WPCF7_WelcomePanelColumn_Flamingo(); $columns[] = new WPCF7_WelcomePanelColumn_AntiSpam(); } else { $columns[] = new WPCF7_WelcomePanelColumn_Flamingo(); $columns[] = new WPCF7_WelcomePanelColumn_Integration(); }
$classes = 'wpcf7-welcome-panel';
$vers = (array) get_user_meta( get_current_user_id(), 'wpcf7_hide_welcome_panel_on', true );
if ( wpcf7_version_grep( wpcf7_version( 'only_major=1' ), $vers ) ) { $classes .= ' hidden'; }
?> <div id="wpcf7-welcome-panel" class="<?php echo esc_attr( $classes ); ?>"> <?php wp_nonce_field( 'wpcf7-welcome-panel-nonce', 'welcomepanelnonce', false ); ?> <a class="welcome-panel-close" href="<?php echo esc_url( menu_page_url( 'wpcf7', false ) ); ?>"><?php echo esc_html( __( 'Dismiss', 'contact-form-7' ) ); ?></a>
<div class="welcome-panel-content"> <div class="welcome-panel-column-container"> <?php
foreach ( $columns as $column ) { $column->print_content(); }
?> </div> </div> </div> <?php }
add_action( 'wp_ajax_wpcf7-update-welcome-panel', 'wpcf7_admin_ajax_welcome_panel', 10, 0 );
function wpcf7_admin_ajax_welcome_panel() { check_ajax_referer( 'wpcf7-welcome-panel-nonce', 'welcomepanelnonce' );
$vers = get_user_meta( get_current_user_id(), 'wpcf7_hide_welcome_panel_on', true );
if ( empty( $vers ) or ! is_array( $vers ) ) { $vers = array(); }
if ( empty( $_POST['visible'] ) ) { $vers[] = wpcf7_version( 'only_major=1' ); } else { $vers = array_diff( $vers, array( wpcf7_version( 'only_major=1' ) ) ); }
$vers = array_unique( $vers );
update_user_meta( get_current_user_id(), 'wpcf7_hide_welcome_panel_on', $vers );
wp_die( 1 ); }
add_filter( 'screen_settings', 'wpcf7_welcome_panel_screen_settings', 10, 2 );
function wpcf7_welcome_panel_screen_settings( $screen_settings, $screen ) {
if ( 'toplevel_page_wpcf7' !== $screen->id ) { return $screen_settings; }
$vers = (array) get_user_meta( get_current_user_id(), 'wpcf7_hide_welcome_panel_on', true );
$checkbox_id = 'wpcf7-welcome-panel-show'; $checked = ! in_array( wpcf7_version( 'only_major=1' ), $vers );
$checkbox = sprintf( '<input %s />', wpcf7_format_atts( array( 'id' => $checkbox_id, 'type' => 'checkbox', 'checked' => $checked ? 'checked' : null, ) ) );
$screen_settings .= sprintf( ' <fieldset class="wpcf7-welcome-panel-options"> <legend>%1$s</legend> <label for="%2$s">%3$s %4$s</label> </fieldset>', esc_html( __( 'Welcome panel', 'contact-form-7' ) ), esc_attr( $checkbox_id ), $checkbox, esc_html( __( 'Show welcome panel', 'contact-form-7' ) ) );
return $screen_settings; }
|