All in One Webmaster - Version 13.1

Version Description

  • Favicon icon changed
  • Compatibility with WP 4.8.1
Download this release

Release Info

Developer Crunchify
Plugin Icon 128x128 All in One Webmaster
Version 13.1
Comparing to
See all releases

Code changes from version 10.0 to 13.1

all-in-one-webmaster-premium.php CHANGED
@@ -9,13 +9,13 @@
9
* @author Crunchify
10
* @license GPL-2.0+
11
* @link https://crunchify.com/all-in-one-webmaster/
12
- * @copyright 2012-15 Crunchify, LLC. All rights reserved.
13
- *
14
* @wordpress-plugin
15
* Plugin Name: All in One Webmaster
16
* Plugin URI: https://crunchify.com/all-in-one-webmaster/
17
* Description: All in One Webmaster is the best webmaster plugin for WordPress that adds Meta-Tags and Scripts to your Site's Header and Footer Section automatically without changing any of your themes file and without slowing down your site.
18
- * Version: 10.0
19
* Author: Crunchify
20
* Author URI: https://crunchify.com/
21
* Text Domain: all-in-one-webmaster
@@ -32,53 +32,53 @@
32
* Setup plugin.
33
*/
34
class aiow_premium {
35
-
36
/**
37
* Plugin version, used for cache-busting of style and script file references.
38
*
39
* @since 1.0.0
40
- *
41
* @var string
42
*/
43
- protected $version = '10.0';
44
-
45
/**
46
* The name of the plugin.
47
*
48
* @since 1.0.0
49
- *
50
* @var string
51
*/
52
protected $plugin_name = 'All in One Webmaster';
53
-
54
/**
55
* Unique plugin identifier.
56
*
57
* @since 1.0.0
58
- *
59
* @var string
60
*/
61
protected $plugin_slug = 'all-in-one-webmaster';
62
-
63
/**
64
* Plugin textdomain.
65
*
66
* @since 1.0.0
67
- *
68
* @var string
69
*/
70
protected $domain = 'aiow';
71
-
72
/**
73
* Only instance of object.
74
*/
75
private static $instance = null;
76
-
77
/**
78
* Creates or returns an instance of this class.
79
*
80
* @since 9.0
81
- *
82
* @return aiow_premium A single instance of this class.
83
*/
84
public static function get_instance() {
@@ -87,38 +87,38 @@ class aiow_premium {
87
}
88
return self::$instance;
89
}
90
-
91
/**
92
* Initiate plugin.
93
*
94
* @since 9.0
95
*/
96
private function __construct() {
97
-
98
// Output Analytics
99
$analytics = get_option ( 'aiow_premium_options' );
100
add_action ( 'wp_footer', array (
101
$this,
102
- 'aiow_premium_footer'
103
), 1000 );
104
add_action ( 'wp_head', array (
105
$this,
106
- 'aiow_premium_header'
107
), 2 );
108
-
109
// Settings page
110
add_action ( 'admin_menu', array (
111
$this,
112
- 'aiow_premium_menupage'
113
) );
114
-
115
// Settings page
116
add_action ( 'admin_menu', array (
117
$this,
118
- 'aiow_premium_load_css_js'
119
) );
120
}
121
-
122
/**
123
* Get all Header Meta Tags
124
*
@@ -127,23 +127,23 @@ class aiow_premium {
127
public function aiow_premium_header() {
128
$google_wm = get_option ( 'all_in_one_premium_google_webmaster' );
129
$pinterest_wm = get_option ( 'all_in_one_premium_pinterest' );
130
-
131
$yandex_wm = get_option ( 'all_in_one_premium_yandex_webmaster' );
132
$alexa_wm = get_option ( 'all_in_one_premium_alexa_webmaster' );
133
$bcatalog_wm = get_option ( 'all_in_one_premium_bcatalog_webmaster' );
134
$fbinsights_wm = get_option ( 'all_in_one_premium_fbinsights_webmaster' );
135
$fbinsights_wm_pageid = get_option ( 'all_in_one_premium_fbinsights_webmaster_pageid' );
136
$fbinsights_wm_appid = get_option ( 'all_in_one_premium_fbinsights_webmaster_appid' );
137
-
138
$bing_wm = get_option ( 'all_in_one_premium_bing_webmaster' );
139
$google_an = get_option ( 'all_in_one_premium_google_analytics' );
140
$quantcast_an = get_option ( 'all_in_one_premium_quantcast_analytics' );
141
-
142
$google_authorship_profile = get_option ( 'all_in_one_premium_google_authorship_profile' );
143
$google_authorship_page = get_option ( 'all_in_one_premium_google_authorship_page' );
144
-
145
$favicon_icon = get_option ( 'all_in_one_premium_favicon' );
146
-
147
$head_section = get_option ( 'all_in_one_premium_head_section' );
148
echo "\n";
149
echo "<!-- All in One Webmaster plugin by Crunchify.com -->";
@@ -159,17 +159,17 @@ class aiow_premium {
159
$pinterest_wm_meta = '<meta name="p:domain_verify" content="' . $pinterest_wm . '" /> ';
160
echo $pinterest_wm_meta . "\n";
161
}
162
-
163
if (! ($yandex_wm == "")) {
164
$yandex_wm_meta = '<meta name="yandex-verification" content="' . $yandex_wm . '" /> ';
165
echo $yandex_wm_meta . "\n";
166
}
167
-
168
if (! ($bing_wm == "")) {
169
$bing_wm_meta = '<meta name="msvalidate.01" content="' . $bing_wm . '" />';
170
echo $bing_wm_meta . "\n";
171
}
172
-
173
if (! ($alexa_wm == "")) {
174
$alexa_wm_meta = '<meta name="alexaVerifyID" content="' . $alexa_wm . '" />';
175
echo $alexa_wm_meta . "\n";
@@ -182,7 +182,7 @@ class aiow_premium {
182
$fbinsights_wm_meta = '<meta property="fb:admins" content="' . $fbinsights_wm . '" />';
183
echo $fbinsights_wm_meta . "\n";
184
}
185
-
186
if (! ($fbinsights_wm_pageid == "")) {
187
$fbinsights_wm_meta = '<meta property="fb:page_id" content="' . $fbinsights_wm_pageid . '" />';
188
echo $fbinsights_wm_meta . "\n";
@@ -191,7 +191,7 @@ class aiow_premium {
191
$fbinsights_wm_meta = '<meta property="fb:app_id" content="' . $fbinsights_wm_appid . '" />';
192
echo $fbinsights_wm_meta . "\n";
193
}
194
-
195
if (! ($google_an == "")) {
196
echo '<script>' . "\n";
197
echo '(function(i,s,o,g,r,a,m){i[\'GoogleAnalyticsObject\']=r;i[r]=i[r]||function(){' . "\n";
@@ -202,14 +202,14 @@ class aiow_premium {
202
echo 'ga(\'send\', \'pageview\');' . "\n";
203
echo '</script>' . "\n";
204
}
205
-
206
if (! ($quantcast_an == "")) {
207
echo '<script type="text/javascript">' . "\n";
208
echo '_qoptions={qacct:"' . $quantcast_an . '"};' . "\n";
209
echo '</script>' . "\n";
210
echo '<script type="text/javascript" src="http://edge.quantserve.com/quant.js"></script>' . "\n";
211
}
212
-
213
if (! ($google_authorship_profile == "")) {
214
$google_authorship_profile_meta = '<link rel="author" href="' . $google_authorship_profile . '">';
215
echo $google_authorship_profile_meta . "\n";
@@ -219,15 +219,15 @@ class aiow_premium {
219
$google_authorship_page_meta = '<link rel="publisher" href="' . $google_authorship_page . '">';
220
echo $google_authorship_page_meta . "\n";
221
}
222
-
223
if (! ($favicon_icon == "")) {
224
$favicon_meta = '<link rel="Shortcut Icon" href="' . $favicon_icon . '" type="image/x-icon">';
225
echo $favicon_meta . "\n";
226
}
227
-
228
echo "<!-- /All in One Webmaster plugin -->\n\n";
229
}
230
-
231
/**
232
* Output Footer Scripts
233
*
@@ -236,47 +236,47 @@ class aiow_premium {
236
public function aiow_premium_footer() {
237
$clicky_an = get_option ( 'all_in_one_premium_clicky_analytics' );
238
$compete_an = get_option ( 'all_in_one_premium_compete_analytics' );
239
-
240
$footer_section = get_option ( 'all_in_one_premium_footer_section' );
241
$sitemeter_an = get_option ( 'all_in_one_premium_sitemeter_analytics' );
242
$google_tag_manager = get_option ( 'all_in_one_premium_google_tag_manager' );
243
-
244
if (! ($footer_section == "")) {
245
echo $footer_section . "\n";
246
}
247
-
248
if (! ($clicky_an == "")) {
249
echo '<script src="http://static.getclicky.com/js" type="text/javascript"></script>' . "\n";
250
echo '<script type="text/javascript">clicky.init(' . $clicky_an . ');</script>' . "\n";
251
}
252
-
253
if (! ($compete_an == "")) {
254
echo '<script type="text/javascript">' . "\n";
255
echo '__compete_code = \'' . $compete_an . '\';' . "\n";
256
echo '(function () { var s = document.createElement(\'script\'),d = document.getElementsByTagName(\'head\')[0] || document.getElementsByTagName(\'body\')[0],t = \'https:\' == document.location.protocol ? \'https://c.compete.com/bootstrap/\' : \'http://c.compete.com/bootstrap/\'; s.src = t + __compete_code + \'/bootstrap.js\'; s.type = \'text/javascript\'; s.async = \'async\'; if (d) { d.appendChild(s); }}());' . "\n";
257
echo '</script>' . "\n";
258
}
259
-
260
if (! ($sitemeter_an == "")) {
261
echo '<script type="text/javascript" src="' . $sitemeter_an . '"></script>' . "\n";
262
}
263
-
264
if (! ($google_tag_manager == "")) {
265
-
266
echo '<noscript><iframe src="//www.googletagmanager.com/ns.html?id=' . $google_tag_manager . '" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>' . "\n";
267
echo '<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({\'gtm.start\':new Date().getTime(),event:\'gtm.js\'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!=\'dataLayer\'?\'&l=\'+l:\'\';j.async=true;j.src= \'//www.googletagmanager.com/gtm.js?id=\'+i+dl;f.parentNode.insertBefore(j,f); })(window,document,\'script\',\'dataLayer\',\'' . $google_tag_manager . '\');</script>' . "\n";
268
}
269
-
270
$all_in_one_premium_banner1 = get_option ( 'all_in_one_premium_banner' );
271
}
272
-
273
/**
274
* Register All Menus.
275
*
276
* @since 9.0
277
*/
278
public function aiow_premium_menupage() {
279
- add_menu_page ( 'All in One Webmaster', 'AIO Webmaster', 'manage_options', 'aiow-premium', 'all_in_one_premium_webmaster_webmaster_page', plugins_url ( 'all-in-one-webmaster/images/favicon.ico' ), 6 );
280
add_submenu_page ( 'aiow-premium', 'Webmaster Tools', 'Webmaster Options', 'manage_options', 'aiow-premium', 'all_in_one_premium_webmaster_webmaster_page' );
281
add_submenu_page ( 'aiow-premium', 'Analytics Tools', 'Analytics Options', 'manage_options', 'aiow-premium-analytics', 'all_in_one_premium_webmaster_analytics_page' );
282
add_submenu_page ( 'aiow-premium', 'Google Authorship', 'Google Authorship', 'manage_options', 'aiow-premium-google-authorship', 'all_in_one_premium_webmaster_google_authorship_page' );
@@ -284,7 +284,7 @@ class aiow_premium {
284
add_submenu_page ( 'aiow-premium', 'Sitemap Tools', 'Sitemap Options', 'manage_options', 'aiow-premium-sitemap', 'all_in_one_premium_webmaster_sitemap_page' );
285
add_submenu_page ( 'aiow-premium', 'Misc Tools', 'Misc Options', 'manage_options', 'aiow-premium-misc', 'all_in_one_premium_webmaster_misc_page' );
286
}
287
-
288
/**
289
* Load CSS and JS.
290
*
@@ -294,10 +294,10 @@ class aiow_premium {
294
wp_enqueue_script ( 'jquery' ); // Enque Default jQuery
295
wp_enqueue_script ( 'jquery-ui-core' ); // Enque Default jQuery UI Core
296
wp_enqueue_script ( 'jquery-ui-tabs' ); // Enque Default jQuery UI Tabs
297
-
298
wp_register_script ( 'aiow-plugin-script', plugins_url ( '/js/aiow-premium.js', __FILE__ ) );
299
wp_enqueue_script ( 'aiow-plugin-script' );
300
-
301
wp_register_style ( 'aiow-plugin-css', plugins_url ( '/css/aiow-premium.css', __FILE__ ) );
302
wp_enqueue_style ( 'aiow-plugin-css' );
303
}
@@ -344,18 +344,18 @@ add_option ( 'all_in_one_premium_xml_sitemap', '1' );
344
function all_in_one_premium_webmaster_sitemap_submit($sitemap_URL1, $search_engine, $OKmessage, $NOmessage) {
345
$DONE_MSG = 'DONE';
346
$NOPE_MSG = 'NOPE';
347
-
348
$pingurl = $search_engine . $sitemap_URL1;
349
$source = @file_get_contents ( $pingurl );
350
-
351
if ($source != false) {
352
-
353
$source = strip_tags ( $source );
354
$source = "WEBMASTER" . $source;
355
-
356
$isOKmessage = stripos ( $source, $OKmessage );
357
$isNOmessage = stripos ( $source, $NOmessage );
358
-
359
if (($isOKmessage != false) && ($isNOmessage == false)) {
360
$finalMessage = $DONE_MSG . $OKmessage;
361
}
@@ -370,7 +370,7 @@ function all_in_one_premium_webmaster_sitemap_submit($sitemap_URL1, $search_engi
370
}
371
return array (
372
$source,
373
- $finalMessage
374
);
375
}
376
@@ -385,49 +385,49 @@ function all_in_one_premium_save_all_options() {
385
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
386
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
387
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
388
-
389
- update_option ( 'sitemap_URL', ( string ) $_POST ['sitemap_URL'] );
390
- $sitemap_URL1 = get_option ( 'sitemap_URL' );
391
-
392
$show_sitemap = '';
393
$last3 = substr ( $sitemap_URL1, - 1, 3 );
394
$last5 = substr ( $sitemap_URL1, - 1, 5 );
395
$check1 = "xml";
396
$icon_url = get_bloginfo ( 'wpurl' );
397
-
398
if ($sitemap_URL1 == "") {
399
$show_sitemap .= '<div id="message" class="updated fade"><p>' . "Oops!! Blank field. Please provide sitemap URL" . '<br /><br /> Sitemap must ends with .xml or .xml.gz';
400
$show_sitemap .= '</p></div>';
401
- }
402
403
else {
404
$webmasterlink = array (
405
-
406
'goo' => array (
407
'webmaster_engine' => 'Google',
408
'search_engine' => 'http://www.google.com/webmasters/sitemaps/ping?sitemap=',
409
'OKmessage' => 'Sitemap Notification Received',
410
- 'NOmessage' => 'Bad Request'
411
),
412
-
413
'bin' => array (
414
'webmaster_engine' => 'Bing',
415
'search_engine' => 'http://www.bing.com/webmaster/ping.aspx?siteMap=',
416
'OKmessage' => 'Thanks for submitting your sitemap',
417
- 'NOmessage' => 'Bad Request'
418
- )
419
);
420
-
421
$show_sitemap .= '<div id="message" class="updated fade"><p>';
422
-
423
foreach ( $webmasterlink as $siln => $myArray1 ) {
424
$webmaster_engine = $myArray1 ['webmaster_engine'];
425
$search_engine = $myArray1 ['search_engine'];
426
$OKmessage = $myArray1 ['OKmessage'];
427
$NOmessage = $myArray1 ['NOmessage'];
428
-
429
list ( $source, $finalMessage ) = all_in_one_premium_webmaster_sitemap_submit ( $sitemap_URL1, $search_engine, $OKmessage, $NOmessage );
430
-
431
$statusTag = substr ( $finalMessage, 0, 4 );
432
if ($statusTag == 'DONE') {
433
$icon = '<img border="0" src="' . $icon_url . '/wp-content/plugins/all-in-one-webmaster/images/yes.jpg" /> ';
@@ -448,7 +448,7 @@ function all_in_one_premium_save_all_options() {
448
}
449
echo $show_sitemap;
450
}
451
-
452
/*
453
* Since 9.0 Header Footer Section Submission
454
*/
@@ -457,13 +457,13 @@ function all_in_one_premium_save_all_options() {
457
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
458
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
459
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
460
-
461
update_option ( 'all_in_one_premium_head_section', stripslashes_deep ( ( string ) $_POST ['all_in_one_premium_head_section'] ) );
462
update_option ( 'all_in_one_premium_footer_section', stripslashes_deep ( ( string ) $_POST ['all_in_one_premium_footer_section'] ) );
463
echo '<div id="message" class="updated fade"><p><strong>Header/Footer Settings Updated.</strong></p></div>';
464
echo '</strong>';
465
}
466
-
467
/*
468
* Since 9.0 Analytics Section Submission
469
*/
@@ -472,17 +472,17 @@ function all_in_one_premium_save_all_options() {
472
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
473
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
474
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
475
-
476
- update_option ( 'all_in_one_premium_google_analytics', ( string ) $_POST ['all_in_one_premium_google_analytics'] );
477
- update_option ( 'all_in_one_premium_clicky_analytics', ( string ) $_POST ['all_in_one_premium_clicky_analytics'] );
478
- update_option ( 'all_in_one_premium_compete_analytics', ( string ) $_POST ['all_in_one_premium_compete_analytics'] );
479
- update_option ( 'all_in_one_premium_quantcast_analytics', ( string ) $_POST ['all_in_one_premium_quantcast_analytics'] );
480
- update_option ( 'all_in_one_premium_sitemeter_analytics', stripslashes_deep ( ( string ) $_POST ['all_in_one_premium_sitemeter_analytics'] ) );
481
-
482
echo '<div id="message" class="updated fade"><p><strong>Analytics Settings Updated.</strong></p></div>';
483
echo '</strong>';
484
}
485
-
486
/*
487
* Since 9.0 Google Authorship Section Submission
488
*/
@@ -491,14 +491,14 @@ function all_in_one_premium_save_all_options() {
491
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
492
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
493
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
494
-
495
- update_option ( 'all_in_one_premium_google_authorship_profile', ( string ) $_POST ['all_in_one_premium_google_authorship_profile'] );
496
- update_option ( 'all_in_one_premium_google_authorship_page', ( string ) $_POST ['all_in_one_premium_google_authorship_page'] );
497
-
498
echo '<div id="message" class="updated fade"><p><strong>Google Authorship Settings Updated.</strong></p></div>';
499
echo '</strong>';
500
}
501
-
502
/*
503
* Since 9.0 Misc Section Submission
504
*/
@@ -507,13 +507,13 @@ function all_in_one_premium_save_all_options() {
507
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
508
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
509
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
510
-
511
- update_option ( 'all_in_one_premium_favicon', ( string ) $_POST ["all_in_one_premium_favicon"] );
512
-
513
echo '<div id="message" class="updated fade"><p><strong>Misc Options Updated.</strong></p></div>';
514
echo '</strong>';
515
}
516
-
517
/*
518
* Since 9.1 XML Sitemap Generation Options Setting
519
*/
@@ -522,13 +522,13 @@ function all_in_one_premium_save_all_options() {
522
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
523
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
524
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
525
-
526
$priority = array ();
527
$excl_array = array (
528
'option_page',
529
'action',
530
'_wpnonce',
531
- '_wp_http_referer'
532
);
533
foreach ( $_POST as $i => $v ) {
534
if (! in_array ( $i, $excl_array ))
@@ -546,7 +546,7 @@ function all_in_one_premium_save_all_options() {
546
echo '<div id="message" class="updated fade"><p><strong>Sitemap Options Updated. <br>Your Sitemap file is created in the site root directory.</strong></p></div>';
547
echo '</strong>';
548
}
549
-
550
/*
551
* Since 9.0 Webmaster Section Submission
552
*/
@@ -555,18 +555,18 @@ function all_in_one_premium_save_all_options() {
555
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
556
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
557
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
558
-
559
- update_option ( 'all_in_one_premium_google_webmaster', ( string ) $_POST ["all_in_one_premium_google_webmaster"] );
560
- update_option ( 'all_in_one_premium_pinterest', ( string ) $_POST ["all_in_one_premium_pinterest"] );
561
- update_option ( 'all_in_one_premium_yandex_webmaster', ( string ) $_POST ["all_in_one_premium_yandex_webmaster"] );
562
- update_option ( 'all_in_one_premium_google_tag_manager', ( string ) $_POST ["all_in_one_premium_google_tag_manager"] );
563
- update_option ( 'all_in_one_premium_alexa_webmaster', ( string ) $_POST ["all_in_one_premium_alexa_webmaster"] );
564
- update_option ( 'all_in_one_premium_bcatalog_webmaster', ( string ) $_POST ["all_in_one_premium_bcatalog_webmaster"] );
565
- update_option ( 'all_in_one_premium_bing_webmaster', ( string ) $_POST ["all_in_one_premium_bing_webmaster"] );
566
- update_option ( 'all_in_one_premium_fbinsights_webmaster', ( string ) $_POST ["all_in_one_premium_fbinsights_webmaster"] );
567
- update_option ( 'all_in_one_premium_fbinsights_webmaster_pageid', ( string ) $_POST ["all_in_one_premium_fbinsights_webmaster_pageid"] );
568
- update_option ( 'all_in_one_premium_fbinsights_webmaster_appid', ( string ) $_POST ["all_in_one_premium_fbinsights_webmaster_appid"] );
569
-
570
echo '<div id="message" class="updated fade"><p><strong>Webmaster Settings Updated.</strong></p></div>';
571
echo '</strong>';
572
}
@@ -652,4 +652,4 @@ function aiow_premium_init() {
652
}
653
add_action ( 'plugins_loaded', 'aiow_premium_init' );
654
655
- ?>
9
* @author Crunchify
10
* @license GPL-2.0+
11
* @link https://crunchify.com/all-in-one-webmaster/
12
+ * @copyright 2017 Crunchify, LLC. All rights reserved.
13
+ *
14
* @wordpress-plugin
15
* Plugin Name: All in One Webmaster
16
* Plugin URI: https://crunchify.com/all-in-one-webmaster/
17
* Description: All in One Webmaster is the best webmaster plugin for WordPress that adds Meta-Tags and Scripts to your Site's Header and Footer Section automatically without changing any of your themes file and without slowing down your site.
18
+ * Version: 13.1
19
* Author: Crunchify
20
* Author URI: https://crunchify.com/
21
* Text Domain: all-in-one-webmaster
32
* Setup plugin.
33
*/
34
class aiow_premium {
35
+
36
/**
37
* Plugin version, used for cache-busting of style and script file references.
38
*
39
* @since 1.0.0
40
+ *
41
* @var string
42
*/
43
+ protected $version = '13.1';
44
+
45
/**
46
* The name of the plugin.
47
*
48
* @since 1.0.0
49
+ *
50
* @var string
51
*/
52
protected $plugin_name = 'All in One Webmaster';
53
+
54
/**
55
* Unique plugin identifier.
56
*
57
* @since 1.0.0
58
+ *
59
* @var string
60
*/
61
protected $plugin_slug = 'all-in-one-webmaster';
62
+
63
/**
64
* Plugin textdomain.
65
*
66
* @since 1.0.0
67
+ *
68
* @var string
69
*/
70
protected $domain = 'aiow';
71
+
72
/**
73
* Only instance of object.
74
*/
75
private static $instance = null;
76
+
77
/**
78
* Creates or returns an instance of this class.
79
*
80
* @since 9.0
81
+ *
82
* @return aiow_premium A single instance of this class.
83
*/
84
public static function get_instance() {
87
}
88
return self::$instance;
89
}
90
+
91
/**
92
* Initiate plugin.
93
*
94
* @since 9.0
95
*/
96
private function __construct() {
97
+
98
// Output Analytics
99
$analytics = get_option ( 'aiow_premium_options' );
100
add_action ( 'wp_footer', array (
101
$this,
102
+ 'aiow_premium_footer'
103
), 1000 );
104
add_action ( 'wp_head', array (
105
$this,
106
+ 'aiow_premium_header'
107
), 2 );
108
+
109
// Settings page
110
add_action ( 'admin_menu', array (
111
$this,
112
+ 'aiow_premium_menupage'
113
) );
114
+
115
// Settings page
116
add_action ( 'admin_menu', array (
117
$this,
118
+ 'aiow_premium_load_css_js'
119
) );
120
}
121
+
122
/**
123
* Get all Header Meta Tags
124
*
127
public function aiow_premium_header() {
128
$google_wm = get_option ( 'all_in_one_premium_google_webmaster' );
129
$pinterest_wm = get_option ( 'all_in_one_premium_pinterest' );
130
+
131
$yandex_wm = get_option ( 'all_in_one_premium_yandex_webmaster' );
132
$alexa_wm = get_option ( 'all_in_one_premium_alexa_webmaster' );
133
$bcatalog_wm = get_option ( 'all_in_one_premium_bcatalog_webmaster' );
134
$fbinsights_wm = get_option ( 'all_in_one_premium_fbinsights_webmaster' );
135
$fbinsights_wm_pageid = get_option ( 'all_in_one_premium_fbinsights_webmaster_pageid' );
136
$fbinsights_wm_appid = get_option ( 'all_in_one_premium_fbinsights_webmaster_appid' );
137
+
138
$bing_wm = get_option ( 'all_in_one_premium_bing_webmaster' );
139
$google_an = get_option ( 'all_in_one_premium_google_analytics' );
140
$quantcast_an = get_option ( 'all_in_one_premium_quantcast_analytics' );
141
+
142
$google_authorship_profile = get_option ( 'all_in_one_premium_google_authorship_profile' );
143
$google_authorship_page = get_option ( 'all_in_one_premium_google_authorship_page' );
144
+
145
$favicon_icon = get_option ( 'all_in_one_premium_favicon' );
146
+
147
$head_section = get_option ( 'all_in_one_premium_head_section' );
148
echo "\n";
149
echo "<!-- All in One Webmaster plugin by Crunchify.com -->";
159
$pinterest_wm_meta = '<meta name="p:domain_verify" content="' . $pinterest_wm . '" /> ';
160
echo $pinterest_wm_meta . "\n";
161
}
162
+
163
if (! ($yandex_wm == "")) {
164
$yandex_wm_meta = '<meta name="yandex-verification" content="' . $yandex_wm . '" /> ';
165
echo $yandex_wm_meta . "\n";
166
}
167
+
168
if (! ($bing_wm == "")) {
169
$bing_wm_meta = '<meta name="msvalidate.01" content="' . $bing_wm . '" />';
170
echo $bing_wm_meta . "\n";
171
}
172
+
173
if (! ($alexa_wm == "")) {
174
$alexa_wm_meta = '<meta name="alexaVerifyID" content="' . $alexa_wm . '" />';
175
echo $alexa_wm_meta . "\n";
182
$fbinsights_wm_meta = '<meta property="fb:admins" content="' . $fbinsights_wm . '" />';
183
echo $fbinsights_wm_meta . "\n";
184
}
185
+
186
if (! ($fbinsights_wm_pageid == "")) {
187
$fbinsights_wm_meta = '<meta property="fb:page_id" content="' . $fbinsights_wm_pageid . '" />';
188
echo $fbinsights_wm_meta . "\n";
191
$fbinsights_wm_meta = '<meta property="fb:app_id" content="' . $fbinsights_wm_appid . '" />';
192
echo $fbinsights_wm_meta . "\n";
193
}
194
+
195
if (! ($google_an == "")) {
196
echo '<script>' . "\n";
197
echo '(function(i,s,o,g,r,a,m){i[\'GoogleAnalyticsObject\']=r;i[r]=i[r]||function(){' . "\n";
202
echo 'ga(\'send\', \'pageview\');' . "\n";
203
echo '</script>' . "\n";
204
}
205
+
206
if (! ($quantcast_an == "")) {
207
echo '<script type="text/javascript">' . "\n";
208
echo '_qoptions={qacct:"' . $quantcast_an . '"};' . "\n";
209
echo '</script>' . "\n";
210
echo '<script type="text/javascript" src="http://edge.quantserve.com/quant.js"></script>' . "\n";
211
}
212
+
213
if (! ($google_authorship_profile == "")) {
214
$google_authorship_profile_meta = '<link rel="author" href="' . $google_authorship_profile . '">';
215
echo $google_authorship_profile_meta . "\n";
219
$google_authorship_page_meta = '<link rel="publisher" href="' . $google_authorship_page . '">';
220
echo $google_authorship_page_meta . "\n";
221
}
222
+
223
if (! ($favicon_icon == "")) {
224
$favicon_meta = '<link rel="Shortcut Icon" href="' . $favicon_icon . '" type="image/x-icon">';
225
echo $favicon_meta . "\n";
226
}
227
+
228
echo "<!-- /All in One Webmaster plugin -->\n\n";
229
}
230
+
231
/**
232
* Output Footer Scripts
233
*
236
public function aiow_premium_footer() {
237
$clicky_an = get_option ( 'all_in_one_premium_clicky_analytics' );
238
$compete_an = get_option ( 'all_in_one_premium_compete_analytics' );
239
+
240
$footer_section = get_option ( 'all_in_one_premium_footer_section' );
241
$sitemeter_an = get_option ( 'all_in_one_premium_sitemeter_analytics' );
242
$google_tag_manager = get_option ( 'all_in_one_premium_google_tag_manager' );
243
+
244
if (! ($footer_section == "")) {
245
echo $footer_section . "\n";
246
}
247
+
248
if (! ($clicky_an == "")) {
249
echo '<script src="http://static.getclicky.com/js" type="text/javascript"></script>' . "\n";
250
echo '<script type="text/javascript">clicky.init(' . $clicky_an . ');</script>' . "\n";
251
}
252
+
253
if (! ($compete_an == "")) {
254
echo '<script type="text/javascript">' . "\n";
255
echo '__compete_code = \'' . $compete_an . '\';' . "\n";
256
echo '(function () { var s = document.createElement(\'script\'),d = document.getElementsByTagName(\'head\')[0] || document.getElementsByTagName(\'body\')[0],t = \'https:\' == document.location.protocol ? \'https://c.compete.com/bootstrap/\' : \'http://c.compete.com/bootstrap/\'; s.src = t + __compete_code + \'/bootstrap.js\'; s.type = \'text/javascript\'; s.async = \'async\'; if (d) { d.appendChild(s); }}());' . "\n";
257
echo '</script>' . "\n";
258
}
259
+
260
if (! ($sitemeter_an == "")) {
261
echo '<script type="text/javascript" src="' . $sitemeter_an . '"></script>' . "\n";
262
}
263
+
264
if (! ($google_tag_manager == "")) {
265
+
266
echo '<noscript><iframe src="//www.googletagmanager.com/ns.html?id=' . $google_tag_manager . '" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>' . "\n";
267
echo '<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({\'gtm.start\':new Date().getTime(),event:\'gtm.js\'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!=\'dataLayer\'?\'&l=\'+l:\'\';j.async=true;j.src= \'//www.googletagmanager.com/gtm.js?id=\'+i+dl;f.parentNode.insertBefore(j,f); })(window,document,\'script\',\'dataLayer\',\'' . $google_tag_manager . '\');</script>' . "\n";
268
}
269
+
270
$all_in_one_premium_banner1 = get_option ( 'all_in_one_premium_banner' );
271
}
272
+
273
/**
274
* Register All Menus.
275
*
276
* @since 9.0
277
*/
278
public function aiow_premium_menupage() {
279
+ add_menu_page ( 'All in One Webmaster', 'AIO Webmaster', 'manage_options', 'aiow-premium', 'all_in_one_premium_webmaster_webmaster_page', plugins_url ( 'all-in-one-webmaster/images/favicon.png' ), 6 );
280
add_submenu_page ( 'aiow-premium', 'Webmaster Tools', 'Webmaster Options', 'manage_options', 'aiow-premium', 'all_in_one_premium_webmaster_webmaster_page' );
281
add_submenu_page ( 'aiow-premium', 'Analytics Tools', 'Analytics Options', 'manage_options', 'aiow-premium-analytics', 'all_in_one_premium_webmaster_analytics_page' );
282
add_submenu_page ( 'aiow-premium', 'Google Authorship', 'Google Authorship', 'manage_options', 'aiow-premium-google-authorship', 'all_in_one_premium_webmaster_google_authorship_page' );
284
add_submenu_page ( 'aiow-premium', 'Sitemap Tools', 'Sitemap Options', 'manage_options', 'aiow-premium-sitemap', 'all_in_one_premium_webmaster_sitemap_page' );
285
add_submenu_page ( 'aiow-premium', 'Misc Tools', 'Misc Options', 'manage_options', 'aiow-premium-misc', 'all_in_one_premium_webmaster_misc_page' );
286
}
287
+
288
/**
289
* Load CSS and JS.
290
*
294
wp_enqueue_script ( 'jquery' ); // Enque Default jQuery
295
wp_enqueue_script ( 'jquery-ui-core' ); // Enque Default jQuery UI Core
296
wp_enqueue_script ( 'jquery-ui-tabs' ); // Enque Default jQuery UI Tabs
297
+
298
wp_register_script ( 'aiow-plugin-script', plugins_url ( '/js/aiow-premium.js', __FILE__ ) );
299
wp_enqueue_script ( 'aiow-plugin-script' );
300
+
301
wp_register_style ( 'aiow-plugin-css', plugins_url ( '/css/aiow-premium.css', __FILE__ ) );
302
wp_enqueue_style ( 'aiow-plugin-css' );
303
}
344
function all_in_one_premium_webmaster_sitemap_submit($sitemap_URL1, $search_engine, $OKmessage, $NOmessage) {
345
$DONE_MSG = 'DONE';
346
$NOPE_MSG = 'NOPE';
347
+
348
$pingurl = $search_engine . $sitemap_URL1;
349
$source = @file_get_contents ( $pingurl );
350
+
351
if ($source != false) {
352
+
353
$source = strip_tags ( $source );
354
$source = "WEBMASTER" . $source;
355
+
356
$isOKmessage = stripos ( $source, $OKmessage );
357
$isNOmessage = stripos ( $source, $NOmessage );
358
+
359
if (($isOKmessage != false) && ($isNOmessage == false)) {
360
$finalMessage = $DONE_MSG . $OKmessage;
361
}
370
}
371
return array (
372
$source,
373
+ $finalMessage
374
);
375
}
376
385
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
386
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
387
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
388
+
389
+ update_option ( 'sitemap_URL', ( string ) sanitize_text_field($_POST ["sitemap_URL"] ));
390
+ $sitemap_URL1 = esc_url(get_option ( 'sitemap_URL' ));
391
+
392
$show_sitemap = '';
393
$last3 = substr ( $sitemap_URL1, - 1, 3 );
394
$last5 = substr ( $sitemap_URL1, - 1, 5 );
395
$check1 = "xml";
396
$icon_url = get_bloginfo ( 'wpurl' );
397
+
398
if ($sitemap_URL1 == "") {
399
$show_sitemap .= '<div id="message" class="updated fade"><p>' . "Oops!! Blank field. Please provide sitemap URL" . '<br /><br /> Sitemap must ends with .xml or .xml.gz';
400
$show_sitemap .= '</p></div>';
401
+ }
402
403
else {
404
$webmasterlink = array (
405
+
406
'goo' => array (
407
'webmaster_engine' => 'Google',
408
'search_engine' => 'http://www.google.com/webmasters/sitemaps/ping?sitemap=',
409
'OKmessage' => 'Sitemap Notification Received',
410
+ 'NOmessage' => 'Bad Request'
411
),
412
+
413
'bin' => array (
414
'webmaster_engine' => 'Bing',
415
'search_engine' => 'http://www.bing.com/webmaster/ping.aspx?siteMap=',
416
'OKmessage' => 'Thanks for submitting your sitemap',
417
+ 'NOmessage' => 'Bad Request'
418
+ )
419
);
420
+
421
$show_sitemap .= '<div id="message" class="updated fade"><p>';
422
+
423
foreach ( $webmasterlink as $siln => $myArray1 ) {
424
$webmaster_engine = $myArray1 ['webmaster_engine'];
425
$search_engine = $myArray1 ['search_engine'];
426
$OKmessage = $myArray1 ['OKmessage'];
427
$NOmessage = $myArray1 ['NOmessage'];
428
+
429
list ( $source, $finalMessage ) = all_in_one_premium_webmaster_sitemap_submit ( $sitemap_URL1, $search_engine, $OKmessage, $NOmessage );
430
+
431
$statusTag = substr ( $finalMessage, 0, 4 );
432
if ($statusTag == 'DONE') {
433
$icon = '<img border="0" src="' . $icon_url . '/wp-content/plugins/all-in-one-webmaster/images/yes.jpg" /> ';
448
}
449
echo $show_sitemap;
450
}
451
+
452
/*
453
* Since 9.0 Header Footer Section Submission
454
*/
457
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
458
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
459
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
460
+
461
update_option ( 'all_in_one_premium_head_section', stripslashes_deep ( ( string ) $_POST ['all_in_one_premium_head_section'] ) );
462
update_option ( 'all_in_one_premium_footer_section', stripslashes_deep ( ( string ) $_POST ['all_in_one_premium_footer_section'] ) );
463
echo '<div id="message" class="updated fade"><p><strong>Header/Footer Settings Updated.</strong></p></div>';
464
echo '</strong>';
465
}
466
+
467
/*
468
* Since 9.0 Analytics Section Submission
469
*/
472
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
473
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
474
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
475
+
476
+ update_option ( 'all_in_one_premium_google_analytics', ( string ) sanitize_text_field($_POST ['all_in_one_premium_google_analytics'] ));
477
+ update_option ( 'all_in_one_premium_clicky_analytics', ( string ) sanitize_text_field($_POST ['all_in_one_premium_clicky_analytics'] ));
478
+ update_option ( 'all_in_one_premium_compete_analytics', ( string ) sanitize_text_field($_POST ['all_in_one_premium_compete_analytics'] ));
479
+ update_option ( 'all_in_one_premium_quantcast_analytics', ( string ) sanitize_text_field($_POST ['all_in_one_premium_quantcast_analytics'] ));
480
+ update_option ( 'all_in_one_premium_sitemeter_analytics', stripslashes_deep ( ( string ) sanitize_text_field($_POST ['all_in_one_premium_sitemeter_analytics'] )));
481
+
482
echo '<div id="message" class="updated fade"><p><strong>Analytics Settings Updated.</strong></p></div>';
483
echo '</strong>';
484
}
485
+
486
/*
487
* Since 9.0 Google Authorship Section Submission
488
*/
491
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
492
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
493
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
494
+
495
+ update_option ( 'all_in_one_premium_google_authorship_profile', stripslashes_deep (( string ) sanitize_text_field($_POST ['all_in_one_premium_google_authorship_profile'] )));
496
+ update_option ( 'all_in_one_premium_google_authorship_page',stripslashes_deep ( ( string ) sanitize_text_field($_POST ['all_in_one_premium_google_authorship_page'] )));
497
+
498
echo '<div id="message" class="updated fade"><p><strong>Google Authorship Settings Updated.</strong></p></div>';
499
echo '</strong>';
500
}
501
+
502
/*
503
* Since 9.0 Misc Section Submission
504
*/
507
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
508
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
509
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
510
+
511
+ update_option ( 'all_in_one_premium_favicon', stripslashes_deep (( string ) sanitize_text_field($_POST ["all_in_one_premium_favicon"] )));
512
+
513
echo '<div id="message" class="updated fade"><p><strong>Misc Options Updated.</strong></p></div>';
514
echo '</strong>';
515
}
516
+
517
/*
518
* Since 9.1 XML Sitemap Generation Options Setting
519
*/
522
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
523
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
524
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
525
+
526
$priority = array ();
527
$excl_array = array (
528
'option_page',
529
'action',
530
'_wpnonce',
531
+ '_wp_http_referer'
532
);
533
foreach ( $_POST as $i => $v ) {
534
if (! in_array ( $i, $excl_array ))
546
echo '<div id="message" class="updated fade"><p><strong>Sitemap Options Updated. <br>Your Sitemap file is created in the site root directory.</strong></p></div>';
547
echo '</strong>';
548
}
549
+
550
/*
551
* Since 9.0 Webmaster Section Submission
552
*/
555
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
556
if (! wp_verify_nonce ( $_POST ['my_aiowz_update_setting'], 'aiowz-update-setting' ))
557
die ( "Hmm .. looks like you didn't send any credentials.. No CSRF for you! " );
558
+
559
+ update_option ( 'all_in_one_premium_google_webmaster', ( string ) sanitize_text_field($_POST ["all_in_one_premium_google_webmaster"] ));
560
+ update_option ( 'all_in_one_premium_pinterest', ( string ) sanitize_text_field($_POST ["all_in_one_premium_pinterest"] ));
561
+ update_option ( 'all_in_one_premium_yandex_webmaster', ( string ) sanitize_text_field($_POST ["all_in_one_premium_yandex_webmaster"] ));
562
+ update_option ( 'all_in_one_premium_google_tag_manager', ( string ) sanitize_text_field($_POST ["all_in_one_premium_google_tag_manager"] ));
563
+ update_option ( 'all_in_one_premium_alexa_webmaster', ( string ) sanitize_text_field($_POST ["all_in_one_premium_alexa_webmaster"] ));
564
+ update_option ( 'all_in_one_premium_bcatalog_webmaster', ( string ) sanitize_text_field($_POST ["all_in_one_premium_bcatalog_webmaster"] ));
565
+ update_option ( 'all_in_one_premium_bing_webmaster', ( string ) sanitize_text_field($_POST ["all_in_one_premium_bing_webmaster"] ));
566
+ update_option ( 'all_in_one_premium_fbinsights_webmaster', ( string ) sanitize_text_field($_POST ["all_in_one_premium_fbinsights_webmaster"] ));
567
+ update_option ( 'all_in_one_premium_fbinsights_webmaster_pageid', ( string ) sanitize_text_field($_POST ["all_in_one_premium_fbinsights_webmaster_pageid"] ));
568
+ update_option ( 'all_in_one_premium_fbinsights_webmaster_appid', ( string ) sanitize_text_field($_POST ["all_in_one_premium_fbinsights_webmaster_appid"] ));
569
+
570
echo '<div id="message" class="updated fade"><p><strong>Webmaster Settings Updated.</strong></p></div>';
571
echo '</strong>';
572
}
652
}
653
add_action ( 'plugins_loaded', 'aiow_premium_init' );
654
655
+ ?>
images/favicon.ico DELETED
Binary file
images/favicon.png ADDED
Binary file
pages/aiow-premium-webmaster.php CHANGED
@@ -67,8 +67,6 @@ require_once (dirname ( __FILE__ ) . '/aiow-premium-header.php');
67
</td>
68
</tr>
69
70
- <!-- Since 10.1 -- Google Tag Manager -->
71
-
72
<tr valign="top">
73
<th scope="row" style="width: 32%;"><label>6) <b>Google Tag Manager</b></label><?=$new_icon?></th>
74
<td><input id="styled" name="all_in_one_premium_google_tag_manager"
67
</td>
68
</tr>
69
70
<tr valign="top">
71
<th scope="row" style="width: 32%;"><label>6) <b>Google Tag Manager</b></label><?=$new_icon?></th>
72
<td><input id="styled" name="all_in_one_premium_google_tag_manager"
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
Contributors: Crunchify
3
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8ZF6WATLYFELQ
4
Tags: All in One Webmaster, Webmaster, Pinterest, SEO, Google, Bing, Google Analytics, Alexa, Blog Central, Quantcast, Facebook Insights, Search Engine Optimization, JQuery, ToolTips, Crunchify Premium Plugin, All in One Webmaster
5
- Requires at least: 4.4
6
- Tested up to: 4.7
7
- Stable tag: 10.0
8
9
Sitemap submission to Google & Bing. Webmaster option 4 Google,Bing,Facebook,etc. Analytics option 4 Google, Quantcast, Clicky, Compete
10
@@ -95,6 +95,20 @@ Subscribe to <a href="https://twitter.com/Crunchify">Twitter</a> and <a href="ht
95
96
== Changelog ==
97
98
= 10.0 =
99
* Compatibility with upcoming WP release 4.7
100
2
Contributors: Crunchify
3
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8ZF6WATLYFELQ
4
Tags: All in One Webmaster, Webmaster, Pinterest, SEO, Google, Bing, Google Analytics, Alexa, Blog Central, Quantcast, Facebook Insights, Search Engine Optimization, JQuery, ToolTips, Crunchify Premium Plugin, All in One Webmaster
5
+ Requires at least: 4.5
6
+ Tested up to: 4.8.1
7
+ Stable tag: 13.1
8
9
Sitemap submission to Google & Bing. Webmaster option 4 Google,Bing,Facebook,etc. Analytics option 4 Google, Quantcast, Clicky, Compete
10
95
96
== Changelog ==
97
98
+ = 13.1 =
99
+ * Favicon icon changed
100
+ * Compatibility with WP 4.8.1
101
+
102
+ = 13.0 =
103
+ * Fixed broken link.
104
+ * Compatibility with WP 4.8
105
+
106
+ = 12.0 =
107
+ * Security update. Thanks Touhid Shaikh for reporting bug.
108
+
109
+ = 11.0 =
110
+ * Compatibility with upcoming WP release 4.7.2
111
+
112
= 10.0 =
113
* Compatibility with upcoming WP release 4.7
114