WP Meta SEO - Version 3.7.7

Version Description

  • Add : Add actions and filters for developers
Download this release

Release Info

Developer JoomUnited
Plugin Icon 128x128 WP Meta SEO
Version 3.7.7
Comparing to
See all releases

Code changes from version 3.7.6 to 3.7.7

inc/class.metaseo-admin.php CHANGED
@@ -1303,6 +1303,13 @@ class MetaSeoAdmin
1303
  }
1304
 
1305
  $circliful = ceil(100 * ($check) / 7);
 
 
 
 
 
 
 
1306
  wp_send_json(array('circliful' => $circliful, 'output' => $output, 'check' => $check));
1307
  }
1308
 
@@ -1428,6 +1435,14 @@ class MetaSeoAdmin
1428
  );
1429
  remove_action('post_updated', array('MetaSeoBrokenLinkTable', 'updatePost'));
1430
  wp_update_post($my_post);
 
 
 
 
 
 
 
 
1431
  wp_send_json(array('status' => true));
1432
  }
1433
  }
@@ -1451,6 +1466,14 @@ class MetaSeoAdmin
1451
  }
1452
  if (isset($_POST['page_id']) && isset($_POST['index'])) {
1453
  update_post_meta($_POST['page_id'], '_metaseo_metaindex', $_POST['index']);
 
 
 
 
 
 
 
 
1454
  wp_send_json(array('status' => true));
1455
  }
1456
  wp_send_json(array('status' => false));
@@ -1473,6 +1496,15 @@ class MetaSeoAdmin
1473
  }
1474
  if (isset($_POST['page_id']) && isset($_POST['follow'])) {
1475
  update_post_meta((int) $_POST['page_id'], '_metaseo_metafollow', $_POST['follow']);
 
 
 
 
 
 
 
 
 
1476
  wp_send_json(array('status' => true));
1477
  }
1478
  wp_send_json(array('status' => false));
@@ -1495,6 +1527,13 @@ class MetaSeoAdmin
1495
  }
1496
  if (isset($_POST['link_id'])) {
1497
  $this->doUpdateFollow($_POST['link_id'], $_POST['follow']);
 
 
 
 
 
 
 
1498
  wp_send_json(array('status' => true));
1499
  }
1500
  wp_send_json(array('status' => false));
@@ -1528,6 +1567,15 @@ class MetaSeoAdmin
1528
  $follow = 1;
1529
  foreach ($_POST['linkids'] as $linkId) {
1530
  $this->doUpdateFollow($linkId, $follow);
 
 
 
 
 
 
 
 
 
1531
  }
1532
  break;
1533
 
@@ -1543,6 +1591,15 @@ class MetaSeoAdmin
1543
  } else {
1544
  $this->doUpdateFollow($link->id, $follow);
1545
  $i ++;
 
 
 
 
 
 
 
 
 
1546
  }
1547
  }
1548
 
@@ -1556,6 +1613,15 @@ class MetaSeoAdmin
1556
 
1557
  foreach ($_POST['linkids'] as $linkId) {
1558
  $this->doUpdateFollow($linkId, $follow);
 
 
 
 
 
 
 
 
 
1559
  }
1560
  break;
1561
 
@@ -1571,6 +1637,15 @@ class MetaSeoAdmin
1571
  } else {
1572
  $this->doUpdateFollow($link->id, $follow);
1573
  $i ++;
 
 
 
 
 
 
 
 
 
1574
  }
1575
  }
1576
  break;
@@ -2289,6 +2364,19 @@ class MetaSeoAdmin
2289
  $postID = intval($_POST['postid']);
2290
  $value = trim($_POST['value']);
2291
  $response->msg = esc_html__('Modification was saved', 'wp-meta-seo');
 
 
 
 
 
 
 
 
 
 
 
 
 
2292
  if ($metakey === 'metatitle') {
2293
  if (!update_post_meta($postID, '_metaseo_metatitle', $value)) {
2294
  $response->updated = false;
@@ -2740,10 +2828,11 @@ class MetaSeoAdmin
2740
  );
2741
 
2742
  /**
2743
- * Filter: 'metaseo_manage_options_capability'
2744
- * - Allow changing the capability users need to view the settings pages
 
2745
  *
2746
- * @api string unsigned The capability
2747
  */
2748
  $manage_options_cap = apply_filters('metaseo_manage_options_capability', 'manage_options');
2749
 
@@ -3406,11 +3495,37 @@ class MetaSeoAdmin
3406
  $i_info_url = pathinfo($attachment->guid);
3407
  switch ($_POST['mtype']) {
3408
  case 'image_alt':
3409
- update_post_meta($attachment->ID, '_wp_attachment_image_alt', $i_info_url['filename']);
 
 
 
 
 
 
 
 
 
 
 
 
3410
  break;
3411
 
3412
  case 'image_title':
3413
- wp_update_post(array('ID' => $attachment->ID, 'post_title' => $i_info_url['filename']));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3414
  break;
3415
  }
3416
  }
@@ -3439,7 +3554,21 @@ class MetaSeoAdmin
3439
  if (!empty($mposts_empty_alt)) {
3440
  foreach ($mposts_empty_alt as $post) {
3441
  $i_info_url = pathinfo($post->guid);
3442
- update_post_meta($post->ID, '_wp_attachment_image_alt', $i_info_url['filename']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3443
  }
3444
  } else {
3445
  wp_send_json(false);
@@ -3450,7 +3579,21 @@ class MetaSeoAdmin
3450
  if (!empty($mposts_empty_title)) {
3451
  foreach ($mposts_empty_title as $post) {
3452
  $i_info_url = pathinfo($post->guid);
3453
- wp_update_post(array('ID' => $post->ID, 'post_title' => $i_info_url['filename']));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3454
  }
3455
  } else {
3456
  wp_send_json(false);
@@ -3545,7 +3688,21 @@ class MetaSeoAdmin
3545
  $mposts = $m_newquery->get_posts();
3546
  if (!empty($mposts)) {
3547
  foreach ($mposts as $post) {
3548
- update_post_meta($post->ID, '_metaseo_metatitle', $post->post_title);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3549
  }
3550
  wp_send_json(true);
3551
  } else {
1303
  }
1304
 
1305
  $circliful = ceil(100 * ($check) / 7);
1306
+ /**
1307
+ * Reload analytics
1308
+ *
1309
+ * @param integer Post ID
1310
+ * @param array All the datas
1311
+ */
1312
+ do_action('wpms_reload_analytics', $_POST['datas']['post_id'], $_POST['datas']);
1313
  wp_send_json(array('circliful' => $circliful, 'output' => $output, 'check' => $check));
1314
  }
1315
 
1435
  );
1436
  remove_action('post_updated', array('MetaSeoBrokenLinkTable', 'updatePost'));
1437
  wp_update_post($my_post);
1438
+ /**
1439
+ * Update link title
1440
+ *
1441
+ * @param integer Link ID
1442
+ * @param string Link meta title
1443
+ * @param integer Post ID
1444
+ */
1445
+ do_action('wpms_update_link_title', $_POST['link_id'], $_POST['meta_title'], $link_detail->source_id);
1446
  wp_send_json(array('status' => true));
1447
  }
1448
  }
1466
  }
1467
  if (isset($_POST['page_id']) && isset($_POST['index'])) {
1468
  update_post_meta($_POST['page_id'], '_metaseo_metaindex', $_POST['index']);
1469
+ /**
1470
+ * Update index/noindex for robots meta tag of a page
1471
+ *
1472
+ * @param integer Page ID
1473
+ * @param string Page meta index
1474
+ * @param integer Page index value
1475
+ */
1476
+ do_action('wpms_update_page_index', $_POST['page_id'], '_metaseo_metaindex', $_POST['index']);
1477
  wp_send_json(array('status' => true));
1478
  }
1479
  wp_send_json(array('status' => false));
1496
  }
1497
  if (isset($_POST['page_id']) && isset($_POST['follow'])) {
1498
  update_post_meta((int) $_POST['page_id'], '_metaseo_metafollow', $_POST['follow']);
1499
+
1500
+ /**
1501
+ * Update follow/nofollow for robots meta tag of a page
1502
+ *
1503
+ * @param integer Page ID
1504
+ * @param string Page meta follow
1505
+ * @param integer Page follow value
1506
+ */
1507
+ do_action('wpms_update_page_follow', $_POST['page_id'], '_metaseo_metafollow', $_POST['follow']);
1508
  wp_send_json(array('status' => true));
1509
  }
1510
  wp_send_json(array('status' => false));
1527
  }
1528
  if (isset($_POST['link_id'])) {
1529
  $this->doUpdateFollow($_POST['link_id'], $_POST['follow']);
1530
+ /**
1531
+ * Update follow/nofollow for rel attribute of a link
1532
+ *
1533
+ * @param integer Link ID
1534
+ * @param integer Link follow
1535
+ */
1536
+ do_action('wpms_update_link_follow', $_POST['link_id'], $_POST['follow']);
1537
  wp_send_json(array('status' => true));
1538
  }
1539
  wp_send_json(array('status' => false));
1567
  $follow = 1;
1568
  foreach ($_POST['linkids'] as $linkId) {
1569
  $this->doUpdateFollow($linkId, $follow);
1570
+ /**
1571
+ * Update follow/nofollow for rel attribute of a link
1572
+ *
1573
+ * @param integer Link ID
1574
+ * @param integer Link follow
1575
+ *
1576
+ * @ignore Hook already documented
1577
+ */
1578
+ do_action('wpms_update_link_follow', $linkId, $follow);
1579
  }
1580
  break;
1581
 
1591
  } else {
1592
  $this->doUpdateFollow($link->id, $follow);
1593
  $i ++;
1594
+ /**
1595
+ * Update follow/nofollow for rel attribute of a link
1596
+ *
1597
+ * @param integer Link ID
1598
+ * @param integer Link follow
1599
+ *
1600
+ * @ignore Hook already documented
1601
+ */
1602
+ do_action('wpms_update_link_follow', $link->id, $follow);
1603
  }
1604
  }
1605
 
1613
 
1614
  foreach ($_POST['linkids'] as $linkId) {
1615
  $this->doUpdateFollow($linkId, $follow);
1616
+ /**
1617
+ * Update follow/nofollow for rel attribute of a link
1618
+ *
1619
+ * @param integer Link ID
1620
+ * @param integer Link follow
1621
+ *
1622
+ * @ignore Hook already documented
1623
+ */
1624
+ do_action('wpms_update_link_follow', $linkId, $follow);
1625
  }
1626
  break;
1627
 
1637
  } else {
1638
  $this->doUpdateFollow($link->id, $follow);
1639
  $i ++;
1640
+ /**
1641
+ * Update follow/nofollow for rel attribute of a link
1642
+ *
1643
+ * @param integer Link ID
1644
+ * @param integer Link follow
1645
+ *
1646
+ * @ignore Hook already documented
1647
+ */
1648
+ do_action('wpms_update_link_follow', $link->id, $follow);
1649
  }
1650
  }
1651
  break;
2364
  $postID = intval($_POST['postid']);
2365
  $value = trim($_POST['value']);
2366
  $response->msg = esc_html__('Modification was saved', 'wp-meta-seo');
2367
+
2368
+ /**
2369
+ * Filter before update meta for post/page
2370
+ *
2371
+ * @param string Meta value
2372
+ * @param integer Post ID
2373
+ * @param string Meta key
2374
+ * @param array Extra informations
2375
+ *
2376
+ * @return string
2377
+ */
2378
+ $value = apply_filters('wpms_update_content_meta', $value, $postID, $metakey, array('source'=>'update_meta'));
2379
+
2380
  if ($metakey === 'metatitle') {
2381
  if (!update_post_meta($postID, '_metaseo_metatitle', $value)) {
2382
  $response->updated = false;
2828
  );
2829
 
2830
  /**
2831
+ * Allow changing the capability users need to view the settings pages
2832
+ *
2833
+ * @api string Default capability
2834
  *
2835
+ * @return string
2836
  */
2837
  $manage_options_cap = apply_filters('metaseo_manage_options_capability', 'manage_options');
2838
 
3495
  $i_info_url = pathinfo($attachment->guid);
3496
  switch ($_POST['mtype']) {
3497
  case 'image_alt':
3498
+ $value = $i_info_url['filename'];
3499
+ /**
3500
+ * Filter before update meta for image
3501
+ *
3502
+ * @param string Meta value
3503
+ * @param integer Image ID
3504
+ * @param string Meta key
3505
+ * @param array Extra informations
3506
+ *
3507
+ * @return string
3508
+ */
3509
+ $value = apply_filters('wpms_update_image_meta', $value, $attachment->ID, '_wp_attachment_image_alt', array('source'=>'bulk_copy_alt'));
3510
+ update_post_meta($attachment->ID, '_wp_attachment_image_alt', $value);
3511
  break;
3512
 
3513
  case 'image_title':
3514
+ $value = $i_info_url['filename'];
3515
+ /**
3516
+ * Filter before update meta for image
3517
+ *
3518
+ * @param string Meta value
3519
+ * @param integer Image ID
3520
+ * @param string Post title field name
3521
+ * @param array Extra informations
3522
+ *
3523
+ * @return string
3524
+ *
3525
+ * @ignore Hook already documented
3526
+ */
3527
+ $value = apply_filters('wpms_update_image_meta', $value, $attachment->ID, 'post_title', array('source'=>'bulk_copy_title'));
3528
+ wp_update_post(array('ID' => $attachment->ID, 'post_title' => $value));
3529
  break;
3530
  }
3531
  }
3554
  if (!empty($mposts_empty_alt)) {
3555
  foreach ($mposts_empty_alt as $post) {
3556
  $i_info_url = pathinfo($post->guid);
3557
+ $value = $i_info_url['filename'];
3558
+ /**
3559
+ * Filter before update meta for image
3560
+ *
3561
+ * @param string Meta value
3562
+ * @param integer Image ID
3563
+ * @param string Meta key
3564
+ * @param array Extra informations
3565
+ *
3566
+ * @return string
3567
+ *
3568
+ * @ignore Hook already documented
3569
+ */
3570
+ $value = apply_filters('wpms_update_image_meta', $value, $post->ID, '_wp_attachment_image_alt', array('source'=>'bulk_copy_alt'));
3571
+ update_post_meta($post->ID, '_wp_attachment_image_alt', $value);
3572
  }
3573
  } else {
3574
  wp_send_json(false);
3579
  if (!empty($mposts_empty_title)) {
3580
  foreach ($mposts_empty_title as $post) {
3581
  $i_info_url = pathinfo($post->guid);
3582
+ $value = $i_info_url['filename'];
3583
+ /**
3584
+ * Filter before update meta for image
3585
+ *
3586
+ * @param string Meta value
3587
+ * @param integer Image ID
3588
+ * @param string Post title field name
3589
+ * @param array Extra informations
3590
+ *
3591
+ * @return string
3592
+ *
3593
+ * @ignore Hook already documented
3594
+ */
3595
+ $value = apply_filters('wpms_update_image_meta', $value, $post->ID, 'post_title', array('source'=>'bulk_copy_title'));
3596
+ wp_update_post(array('ID' => $post->ID, 'post_title' => $value));
3597
  }
3598
  } else {
3599
  wp_send_json(false);
3688
  $mposts = $m_newquery->get_posts();
3689
  if (!empty($mposts)) {
3690
  foreach ($mposts as $post) {
3691
+ $value = $post->post_title;
3692
+ /**
3693
+ * Filter before update meta for post/page
3694
+ *
3695
+ * @param string Meta value
3696
+ * @param integer Post ID
3697
+ * @param string Meta key
3698
+ * @param array Extra informations
3699
+ *
3700
+ * @return string
3701
+ *
3702
+ * @ignore Hook already documented
3703
+ */
3704
+ $value = apply_filters('wpms_update_content_meta', $value, $post->ID, '_metaseo_metatitle', array('source'=>'copy_title'));
3705
+ update_post_meta($post->ID, '_metaseo_metatitle', $value);
3706
  }
3707
  wp_send_json(true);
3708
  } else {
inc/class.metaseo-broken-link-table.php CHANGED
@@ -1673,6 +1673,10 @@ class MetaSeoBrokenLinkTable extends WP_List_Table
1673
 
1674
  $link_settings['wpms_lastRun_scanlink'] = time();
1675
  update_option('wpms_link_settings', $link_settings);
 
 
 
 
1676
  wp_send_json(array('status' => true));
1677
  }
1678
 
@@ -1847,6 +1851,11 @@ class MetaSeoBrokenLinkTable extends WP_List_Table
1847
  $wpms_nonce = $_POST['wpms_nonce'];
1848
  }
1849
 
 
 
 
 
 
1850
  do_action('wpms_add_custom_redirect', $wpms_nonce);
1851
  wp_send_json(array('status' => true, 'message' => esc_html__('Done!', 'wp-meta-seo')));
1852
  }
1673
 
1674
  $link_settings['wpms_lastRun_scanlink'] = time();
1675
  update_option('wpms_link_settings', $link_settings);
1676
+ /**
1677
+ * Scan link
1678
+ */
1679
+ do_action('wpms_scan_link');
1680
  wp_send_json(array('status' => true));
1681
  }
1682
 
1851
  $wpms_nonce = $_POST['wpms_nonce'];
1852
  }
1853
 
1854
+ /**
1855
+ * Add custom redirect
1856
+ *
1857
+ * @param string nonce
1858
+ */
1859
  do_action('wpms_add_custom_redirect', $wpms_nonce);
1860
  wp_send_json(array('status' => true, 'message' => esc_html__('Done!', 'wp-meta-seo')));
1861
  }
inc/class.metaseo-google-analytics.php CHANGED
@@ -74,7 +74,11 @@ class MetaSeoGoogleAnalytics
74
 
75
  if (isset($uri_parts[3])) {
76
  $uri = '/' . $uri_parts[3];
77
- // allow URL correction before sending an API request
 
 
 
 
78
  $filter = apply_filters('wpmsga_backenditem_uri', $uri);
79
  $lastchar = substr($filter, - 1);
80
 
74
 
75
  if (isset($uri_parts[3])) {
76
  $uri = '/' . $uri_parts[3];
77
+ /**
78
+ * Allow URL correction before sending an API request
79
+ *
80
+ * @param string URL
81
+ */
82
  $filter = apply_filters('wpmsga_backenditem_uri', $uri);
83
  $lastchar = substr($filter, - 1);
84
 
inc/class.metaseo-image-list-table.php CHANGED
@@ -1349,28 +1349,53 @@ class MetaSeoImageListTable extends WP_List_Table
1349
  );
1350
 
1351
  if ($meta_type !== 'alt_text') {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1352
  $data = array('ID' => $post_id, $aliases[$meta_type] => $meta_value);
1353
  if (wp_update_post($data)) {
1354
  $response->updated = true;
1355
  $response->msg = $label . esc_html__(' was saved', 'wp-meta-seo');
1356
  }
1357
  } else {
1358
- update_post_meta($post_id, $aliases[$meta_type], $meta_value);
1359
- $response->updated = true;
1360
- $response->msg = $label . esc_html__(' was saved', 'wp-meta-seo');
1361
- }
 
 
 
 
 
 
 
 
 
1362
 
1363
- if ($meta_type === 'alt_text') {
1364
  $settings = get_option('_metaseo_settings');
1365
  if (!isset($settings['metaseo_overridemeta']) || (!empty($settings['metaseo_overridemeta'])
1366
  && (int) $settings['metaseo_overridemeta'] === 1)) {
1367
  // call function auto override in content
1368
-
1369
  self::autoUpdatePostContent($post_id, $meta_type, $meta_value);
1370
  $response->type = 'auto_override';
1371
  $response->pid = $post_id;
1372
  $response->imgname = $_POST['img_name'];
1373
  }
 
 
 
1374
  }
1375
  } else {
1376
  $response->msg = esc_html__('There is a problem when update image meta!', 'wp-meta-seo');
@@ -1611,6 +1636,13 @@ class MetaSeoImageListTable extends WP_List_Table
1611
  update_post_meta($postID, '_wp_attached_file', $newFileName);
1612
  update_post_meta($postID, '_wp_attachment_metadata', $attached_metadata);
1613
 
 
 
 
 
 
 
 
1614
  $response->updated = true;
1615
  $response->msg = esc_html__('Image name was changed', 'wp-meta-seo');
1616
  } else {
1349
  );
1350
 
1351
  if ($meta_type !== 'alt_text') {
1352
+ /**
1353
+ * Filter before update meta for image
1354
+ *
1355
+ * @param string Meta value
1356
+ * @param integer Image ID
1357
+ * @param string Field name
1358
+ * @param array Extra informations
1359
+ *
1360
+ * @return string
1361
+ *
1362
+ * @ignore Hook already documented
1363
+ */
1364
+ $meta_value = apply_filters('wpms_update_image_meta', $meta_value, $post_id, $aliases[$meta_type], array('source'=>'ajax_update'));
1365
+
1366
  $data = array('ID' => $post_id, $aliases[$meta_type] => $meta_value);
1367
  if (wp_update_post($data)) {
1368
  $response->updated = true;
1369
  $response->msg = $label . esc_html__(' was saved', 'wp-meta-seo');
1370
  }
1371
  } else {
1372
+ /**
1373
+ * Filter before update meta for image
1374
+ *
1375
+ * @param string Meta value
1376
+ * @param integer Image ID
1377
+ * @param string Field name
1378
+ * @param array Extra informations
1379
+ *
1380
+ * @return string
1381
+ *
1382
+ * @ignore Hook already documented
1383
+ */
1384
+ $meta_value = apply_filters('wpms_update_image_meta', $meta_value, $post_id, $aliases[$meta_type], array('source'=>'ajax_update'));
1385
 
1386
+ update_post_meta($post_id, $aliases[$meta_type], $meta_value);
1387
  $settings = get_option('_metaseo_settings');
1388
  if (!isset($settings['metaseo_overridemeta']) || (!empty($settings['metaseo_overridemeta'])
1389
  && (int) $settings['metaseo_overridemeta'] === 1)) {
1390
  // call function auto override in content
 
1391
  self::autoUpdatePostContent($post_id, $meta_type, $meta_value);
1392
  $response->type = 'auto_override';
1393
  $response->pid = $post_id;
1394
  $response->imgname = $_POST['img_name'];
1395
  }
1396
+
1397
+ $response->updated = true;
1398
+ $response->msg = $label . esc_html__(' was saved', 'wp-meta-seo');
1399
  }
1400
  } else {
1401
  $response->msg = esc_html__('There is a problem when update image meta!', 'wp-meta-seo');
1636
  update_post_meta($postID, '_wp_attached_file', $newFileName);
1637
  update_post_meta($postID, '_wp_attachment_metadata', $attached_metadata);
1638
 
1639
+ /**
1640
+ * Update image name
1641
+ *
1642
+ * @param integer Image ID
1643
+ * @param string Image new name
1644
+ */
1645
+ do_action('wpms_update_image_name', $postID, $newFileName);
1646
  $response->updated = true;
1647
  $response->msg = esc_html__('Image name was changed', 'wp-meta-seo');
1648
  } else {
inc/class.metaseo-sitemap.php CHANGED
@@ -1109,6 +1109,15 @@ class MetaSeoSitemap
1109
  chmod(ABSPATH, 0755);
1110
  }
1111
 
 
 
 
 
 
 
 
 
 
1112
  if (is_multisite()) {
1113
  $home_url = preg_replace(
1114
  '/[^a-zA-ZА-Яа-я0-9\s]/',
@@ -2397,8 +2406,12 @@ ORDER BY p.post_date DESC', array($post_type)));
2397
  }
2398
  }
2399
 
2400
- // Don't ping if blog is not public.
2401
- do_action('wpms_submit_sitemap');
 
 
 
 
2402
  wp_send_json(array('status' => true, 'message' => 'success'));
2403
  }
2404
 
@@ -2573,6 +2586,12 @@ ORDER BY p.post_date DESC', array($post_type)));
2573
 
2574
  update_option('_metaseo_settings_sitemap', $settings_sitemap);
2575
 
 
 
 
 
 
 
2576
  wp_send_json(true);
2577
  }
2578
  }
1109
  chmod(ABSPATH, 0755);
1110
  }
1111
 
1112
+ /**
1113
+ * Filter run before save sitemap to xml file
1114
+ *
1115
+ * @param object The current xml object
1116
+ *
1117
+ * @return object
1118
+ */
1119
+ $xml = apply_filters('wpms_save_sitemap_xml', $xml);
1120
+
1121
  if (is_multisite()) {
1122
  $home_url = preg_replace(
1123
  '/[^a-zA-ZА-Яа-я0-9\s]/',
2406
  }
2407
  }
2408
 
2409
+ /**
2410
+ * Regenerate sitemaps
2411
+ *
2412
+ * @param array Sitemap settings
2413
+ */
2414
+ do_action('wpms_regenerate_sitemaps', $this->settings_sitemap);
2415
  wp_send_json(array('status' => true, 'message' => 'success'));
2416
  }
2417
 
2586
 
2587
  update_option('_metaseo_settings_sitemap', $settings_sitemap);
2588
 
2589
+ /**
2590
+ * Save sitemap settings
2591
+ *
2592
+ * @param array Sitemap settings
2593
+ */
2594
+ do_action('wpms_save_sitemap_settings', $settings_sitemap);
2595
  wp_send_json(true);
2596
  }
2597
  }
languages/wp-meta-seo-en_US.mo CHANGED
Binary file
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: JoomUnited
3
  Tags: google, webmaster tools, keywords, meta, meta description, meta keywords, meta title, robots meta, search engine optimization, seo, wordpress seo, yahoo, image optimization, image resize, custom post seo, redirect, redirection, 301, broken link
4
  Requires at least: 4.0
5
  Tested up to: 4.9.8
6
- Stable tag: 3.7.6
7
  Requires PHP: 5.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -277,13 +277,16 @@ Yes WP Meta SEO is compatible with Gutenberg editor since 3.7 version.
277
 
278
  == Changelog ==
279
 
 
 
 
280
  = 3.7.6 =
281
  * Fix : Redirect to home page when WPMS Addon is not activated
282
 
283
  = 3.7.5 =
284
  * Fix : Warning returned on frontend
285
  * Fix : Load Dashboard widget content using ajax method (large amount of data)
286
- * Fix : PHP warning in redirect URL interface
287
 
288
  = 3.7.4 =
289
  * Fix : Update alt meta for Elementor image in content
3
  Tags: google, webmaster tools, keywords, meta, meta description, meta keywords, meta title, robots meta, search engine optimization, seo, wordpress seo, yahoo, image optimization, image resize, custom post seo, redirect, redirection, 301, broken link
4
  Requires at least: 4.0
5
  Tested up to: 4.9.8
6
+ Stable tag: 3.7.7
7
  Requires PHP: 5.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
277
 
278
  == Changelog ==
279
 
280
+ = 3.7.7 =
281
+ * Add : Add actions and filters for developers
282
+
283
  = 3.7.6 =
284
  * Fix : Redirect to home page when WPMS Addon is not activated
285
 
286
  = 3.7.5 =
287
  * Fix : Warning returned on frontend
288
  * Fix : Load Dashboard widget content using ajax method (large amount of data)
289
+ * Fix : PHP warning in redirect URL interface
290
 
291
  = 3.7.4 =
292
  * Fix : Update alt meta for Elementor image in content
wp-meta-seo.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: WP Meta SEO
5
  * Plugin URI: http://www.joomunited.com/wordpress-products/wp-meta-seo
6
  * Description: WP Meta SEO is a plugin for WordPress to fill meta for content, images and main SEO info in a single view.
7
- * Version: 3.7.6
8
  * Text Domain: wp-meta-seo
9
  * Domain Path: /languages
10
  * Author: JoomUnited
@@ -90,7 +90,7 @@ if (!defined('WPMSEO_VERSION')) {
90
  /**
91
  * Plugin version
92
  */
93
- define('WPMSEO_VERSION', '3.7.6');
94
  }
95
 
96
  if (!defined('WPMS_CLIENTID')) {
4
  * Plugin Name: WP Meta SEO
5
  * Plugin URI: http://www.joomunited.com/wordpress-products/wp-meta-seo
6
  * Description: WP Meta SEO is a plugin for WordPress to fill meta for content, images and main SEO info in a single view.
7
+ * Version: 3.7.7
8
  * Text Domain: wp-meta-seo
9
  * Domain Path: /languages
10
  * Author: JoomUnited
90
  /**
91
  * Plugin version
92
  */
93
+ define('WPMSEO_VERSION', '3.7.7');
94
  }
95
 
96
  if (!defined('WPMS_CLIENTID')) {