SEOPress - Version 3.5.6

Version Description

  • NEW Rank Math importer
  • FIX Notice in HTML sitemap
  • FIX Fatal Error with manual Product Schema if Brand isn't defined
Download this release

Release Info

Developer rainbowgeek
Plugin Icon 128x128 SEOPress
Version 3.5.6
Comparing to
See all releases

Code changes from version 3.5.5 to 3.5.6

assets/js/seopress-yoast-migrate.js CHANGED
@@ -96,4 +96,37 @@ jQuery(document).ready(function(){
96
  jQuery( '#seo-framework-migration-tool .spinner' ).css( "float", "none" );
97
  jQuery( '#seo-framework-migration-tool .log' ).html('');
98
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  });
96
  jQuery( '#seo-framework-migration-tool .spinner' ).css( "float", "none" );
97
  jQuery( '#seo-framework-migration-tool .log' ).html('');
98
  });
99
+
100
+ //RK
101
+ jQuery('#seopress-rk-migrate').on('click', function(e4) {
102
+ e4.preventDefault();
103
+ self.process_offset4( 0, self );
104
+ });
105
+ process_offset4 = function( offset4, self ) {
106
+ jQuery.ajax({
107
+ method : 'POST',
108
+ url : seopressAjaxMigrate.seopress_rk_migrate.seopress_rk_migration,
109
+ data : {
110
+ action: 'seopress_rk_migration',
111
+ offset4: offset4,
112
+ _ajax_nonce: seopressAjaxMigrate.seopress_rk_migrate.seopress_nonce,
113
+ },
114
+ success : function( data ) {
115
+ if( 'done' == data.data.offset4 ) {
116
+ jQuery('#seopress-rk-migrate').removeAttr("disabled");
117
+ jQuery( '.spinner' ).css( "visibility", "hidden" );
118
+ jQuery( '#rk-migration-tool .log' ).html('Migration completed!');
119
+ } else {
120
+ self.process_offset4( parseInt( data.data.offset4 ), self );
121
+ }
122
+ },
123
+ });
124
+ };
125
+
126
+ jQuery('#seopress-rk-migrate').on('click', function() {
127
+ jQuery(this).attr("disabled", "disabled");
128
+ jQuery( '#rk-migration-tool .spinner' ).css( "visibility", "visible" );
129
+ jQuery( '#rk-migration-tool .spinner' ).css( "float", "none" );
130
+ jQuery( '#rk-migration-tool .log' ).html('');
131
+ });
132
  });
inc/admin/admin.php CHANGED
@@ -784,6 +784,27 @@ class seopress_options
784
  </div><!-- .inside -->
785
  </div><!-- .postbox -->
786
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
787
  <div class="postbox section-tool">
788
  <h3><span><?php _e( 'Reset All Notices From Notifications Center', 'wp-seopress' ); ?></span></h3>
789
  <div class="inside">
784
  </div><!-- .inside -->
785
  </div><!-- .postbox -->
786
 
787
+ <!-- RK import tool -->
788
+ <div id="rk-migration-tool" class="postbox section-tool">
789
+ <h3><span><?php _e( 'Import posts and terms metadata from Rank Math', 'wp-seopress' ); ?></span></h3>
790
+ <div class="inside">
791
+ <p><?php _e( 'By clicking Migrate, we\'ll import:', 'wp-seopress' ); ?></p>
792
+ <ul>
793
+ <li><?php _e('Title tags','wp-seopress'); ?></li>
794
+ <li><?php _e('Meta description','wp-seopress'); ?></li>
795
+ <li><?php _e('Facebook Open Graph tags (title, description and image thumbnail)','wp-seopress'); ?></li>
796
+ <li><?php _e('Twitter tags (title, description and image thumbnail)','wp-seopress'); ?></li>
797
+ <li><?php _e('Meta Robots (noindex, nofollow, noarchive, noimageindex)','wp-seopress'); ?></li>
798
+ <li><?php _e('Canonical URL','wp-seopress'); ?></li>
799
+ <li><?php _e('Focus keywords','wp-seopress'); ?></li>
800
+ </ul>
801
+ <p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any Rank Math datas.', 'wp-seopress' ); ?></p>
802
+ <button id="seopress-rk-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
803
+ <span class="spinner"></span>
804
+ <div class="log"></div>
805
+ </div><!-- .inside -->
806
+ </div><!-- .postbox -->
807
+
808
  <div class="postbox section-tool">
809
  <h3><span><?php _e( 'Reset All Notices From Notifications Center', 'wp-seopress' ); ?></span></h3>
810
  <div class="inside">
inc/admin/ajax.php CHANGED
@@ -727,3 +727,170 @@ function seopress_seo_framework_migration() {
727
  }
728
  }
729
  add_action('wp_ajax_seopress_seo_framework_migration', 'seopress_seo_framework_migration');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
727
  }
728
  }
729
  add_action('wp_ajax_seopress_seo_framework_migration', 'seopress_seo_framework_migration');
730
+
731
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
732
+ //RK migration
733
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
734
+ function seopress_rk_migration() {
735
+ check_ajax_referer( 'seopress_rk_migrate_nonce', $_POST['_ajax_nonce'], true );
736
+
737
+ if (current_user_can('manage_options') && is_admin()) {
738
+
739
+ if ( isset( $_POST['offset4']) && isset( $_POST['offset4'] )) {
740
+ $offset4 = absint($_POST['offset4']);
741
+ }
742
+
743
+ global $wpdb;
744
+ $table_name = $wpdb->prefix . 'posts';
745
+ $count_query = $wpdb->get_results( "SELECT * FROM $table_name" );
746
+ $total_count_posts = $wpdb->num_rows;
747
+
748
+ $increment = 200;
749
+ global $post;
750
+
751
+ if ($offset4 > $total_count_posts) {
752
+ wp_reset_query();
753
+
754
+ $args = array(
755
+ //'number' => $increment,
756
+ 'hide_empty' => false,
757
+ //'offset' => $offset4,
758
+ 'fields' => 'ids',
759
+ );
760
+ $rk_query_terms = get_terms($args);
761
+
762
+ if ($rk_query_terms) {
763
+ foreach ($rk_query_terms as $term_id) {
764
+ if (get_term_meta($term_id, 'rank_math_title', true) !='') { //Import title tag
765
+ update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, 'rank_math_title', true));
766
+ }
767
+ if (get_term_meta($term_id, 'rank_math_description', true) !='') { //Import title desc
768
+ update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, 'rank_math_description', true));
769
+ }
770
+ if (get_term_meta($term_id, 'rank_math_facebook_title', true) !='') { //Import Facebook Title
771
+ update_term_meta($term_id, '_seopress_social_fb_title', get_term_meta($term_id, 'rank_math_facebook_title', true));
772
+ }
773
+ if (get_term_meta($term_id, 'rank_math_facebook_description', true) !='') { //Import Facebook Desc
774
+ update_term_meta($term_id, '_seopress_social_fb_desc', get_term_meta($term_id, 'rank_math_facebook_description', true));
775
+ }
776
+ if (get_term_meta($term_id, 'rank_math_facebook_image', true) !='') { //Import Facebook Image
777
+ update_term_meta($term_id, '_seopress_social_fb_img', get_term_meta($term_id, 'rank_math_facebook_image', true));
778
+ }
779
+ if (get_term_meta($term_id, 'rank_math_twitter_title', true) !='') { //Import Twitter Title
780
+ update_term_meta($term_id, '_seopress_social_twitter_title', get_term_meta($term_id, 'rank_math_twitter_title', true));
781
+ }
782
+ if (get_term_meta($term_id, 'rank_math_twitter_description', true) !='') { //Import Twitter Desc
783
+ update_term_meta($term_id, '_seopress_social_twitter_desc', get_term_meta($term_id, 'rank_math_twitter_description', true));
784
+ }
785
+ if (get_term_meta($term_id, 'rank_math_twitter_image', true) !='') { //Import Twitter Image
786
+ update_term_meta($term_id, '_seopress_social_twitter_img', get_term_meta($term_id, 'rank_math_twitter_image', true));
787
+ }
788
+ if (get_term_meta($term_id, 'rank_math_robots', true) !='') { //Import Robots NoIndex, NoFollow, NoOdp, NoImageIndex, NoArchive, NoSnippet
789
+ $rank_math_robots = get_term_meta($term_id, 'rank_math_robots', true);
790
+
791
+ if (in_array('noindex', $rank_math_robots)) {
792
+ update_term_meta($term_id, '_seopress_robots_index', "yes");
793
+ }
794
+ if (in_array('nofollow', $rank_math_robots)) {
795
+ update_term_meta($term_id, '_seopress_robots_follow', "yes");
796
+ }
797
+ if (in_array('noodp', $rank_math_robots)) {
798
+ update_term_meta($term_id, '_seopress_robots_odp', "yes");
799
+ }
800
+ if (in_array('noimageindex', $rank_math_robots)) {
801
+ update_term_meta($term_id, '_seopress_robots_imageindex', "yes");
802
+ }
803
+ if (in_array('noarchive', $rank_math_robots)) {
804
+ update_term_meta($term_id, '_seopress_robots_archive', "yes");
805
+ }
806
+ if (in_array('nosnippet', $rank_math_robots)) {
807
+ update_term_meta($term_id, '_seopress_robots_snippet', "yes");
808
+ }
809
+ }
810
+ if (get_term_meta($term_id, 'rank_math_canonical_url', true) !='') { //Import Canonical URL
811
+ update_term_meta($term_id, '_seopress_robots_canonical', get_term_meta($term_id, 'rank_math_canonical_url', true));
812
+ }
813
+ if (get_term_meta($term_id, 'rank_math_focus_keyword', true) !='') { //Import Focus Keywords
814
+ update_term_meta($term_id, '_seopress_analysis_target_kw', get_term_meta($term_id, 'rank_math_focus_keyword', true));
815
+ }
816
+
817
+
818
+ }
819
+ }
820
+ $offset4 = 'done';
821
+ wp_reset_query();
822
+ } else {
823
+ $args = array(
824
+ 'posts_per_page' => $increment,
825
+ 'post_type' => 'any',
826
+ 'post_status' => 'any',
827
+ 'offset' => $offset4,
828
+ );
829
+
830
+ $rk_query = get_posts( $args );
831
+
832
+ if ($rk_query) {
833
+ foreach ($rk_query as $post) {
834
+ if (get_post_meta($post->ID, 'rank_math_title', true) !='') { //Import title tag
835
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, 'rank_math_title', true));
836
+ }
837
+ if (get_post_meta($post->ID, 'rank_math_description', true) !='') { //Import meta desc
838
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, 'rank_math_description', true));
839
+ }
840
+ if (get_post_meta($post->ID, 'rank_math_facebook_title', true) !='') { //Import Facebook Title
841
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, 'rank_math_facebook_title', true));
842
+ }
843
+ if (get_post_meta($post->ID, 'rank_math_facebook_description', true) !='') { //Import Facebook Desc
844
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, 'rank_math_facebook_description', true));
845
+ }
846
+ if (get_post_meta($post->ID, 'rank_math_facebook_image', true) !='') { //Import Facebook Image
847
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, 'rank_math_facebook_image', true));
848
+ }
849
+ if (get_post_meta($post->ID, 'rank_math_twitter_title', true) !='') { //Import Twitter Title
850
+ update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, 'rank_math_twitter_title', true));
851
+ }
852
+ if (get_post_meta($post->ID, 'rank_math_twitter_description', true) !='') { //Import Twitter Desc
853
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, 'rank_math_twitter_description', true));
854
+ }
855
+ if (get_post_meta($post->ID, 'rank_math_twitter_image', true) !='') { //Import Twitter Image
856
+ update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, 'rank_math_twitter_image', true));
857
+ }
858
+ if (get_post_meta($post->ID, 'rank_math_robots', true) !='') { //Import Robots NoIndex, NoFollow, NoOdp, NoImageIndex, NoArchive, NoSnippet
859
+ $rank_math_robots = get_post_meta($post->ID, 'rank_math_robots', true);
860
+
861
+ if (in_array('noindex', $rank_math_robots)) {
862
+ update_post_meta($post->ID, '_seopress_robots_index', "yes");
863
+ }
864
+ if (in_array('nofollow', $rank_math_robots)) {
865
+ update_post_meta($post->ID, '_seopress_robots_follow', "yes");
866
+ }
867
+ if (in_array('noodp', $rank_math_robots)) {
868
+ update_post_meta($post->ID, '_seopress_robots_odp', "yes");
869
+ }
870
+ if (in_array('noimageindex', $rank_math_robots)) {
871
+ update_post_meta($post->ID, '_seopress_robots_imageindex', "yes");
872
+ }
873
+ if (in_array('noarchive', $rank_math_robots)) {
874
+ update_post_meta($post->ID, '_seopress_robots_archive', "yes");
875
+ }
876
+ if (in_array('nosnippet', $rank_math_robots)) {
877
+ update_post_meta($post->ID, '_seopress_robots_snippet', "yes");
878
+ }
879
+ }
880
+ if (get_post_meta($post->ID, 'rank_math_canonical_url', true) !='') { //Import Canonical URL
881
+ update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, 'rank_math_canonical_url', true));
882
+ }
883
+ if (get_post_meta($post->ID, 'rank_math_focus_keyword', true) !='') { //Import Focus Keywords
884
+ update_post_meta($post->ID, '_seopress_analysis_target_kw', get_post_meta($post->ID, 'rank_math_focus_keyword', true));
885
+ }
886
+ }
887
+ }
888
+ $offset4 += $increment;
889
+ }
890
+ $data = array();
891
+ $data['offset4'] = $offset4;
892
+ wp_send_json_success($data);
893
+ die();
894
+ }
895
+ }
896
+ add_action('wp_ajax_seopress_rk_migration', 'seopress_rk_migration');
inc/functions/sitemap/template-html-sitemap.php CHANGED
@@ -24,7 +24,7 @@ if (!empty($postslist)) {
24
  $content .= '</ul>'; // 0 means display all levels.
25
  } else {
26
  $content .= '<ul>';
27
- if ($cpt_key !='post') {//check if not Post cpt
28
  $content .= '<li><a href="'.get_post_type_archive_link($cpt_key).'">'.$obj->labels->name.'</a></li>';
29
  }
30
  foreach ( $postslist as $post ) {
24
  $content .= '</ul>'; // 0 means display all levels.
25
  } else {
26
  $content .= '<ul>';
27
+ if ($cpt_key !='post' && isset($obj->labels->name)) {//check if not Post cpt
28
  $content .= '<li><a href="'.get_post_type_archive_link($cpt_key).'">'.$obj->labels->name.'</a></li>';
29
  }
30
  foreach ( $postslist as $post ) {
readme.txt CHANGED
@@ -6,7 +6,7 @@ Tags: SEO, XML sitemap, meta title, open graph, content analysis, knowledge grap
6
  Requires at least: 4.6+
7
  Tested up to: 5.2
8
  Requires PHP: 5.4
9
- Stable tag: 3.5.5
10
  License: GPLv2 or later
11
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -163,6 +163,10 @@ Subscribe on <a href="https://www.seopress.org/" target="_blank">seopress.org</a
163
  44. Structured Data Types metaboxe in post, page, custom post type (PRO)
164
 
165
  == Changelog ==
 
 
 
 
166
  = 3.5.5 =
167
  * FIX Fatal errors
168
  * FIX Strings translation
6
  Requires at least: 4.6+
7
  Tested up to: 5.2
8
  Requires PHP: 5.4
9
+ Stable tag: 3.5.6
10
  License: GPLv2 or later
11
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
 
163
  44. Structured Data Types metaboxe in post, page, custom post type (PRO)
164
 
165
  == Changelog ==
166
+ = 3.5.6 =
167
+ * NEW Rank Math importer
168
+ * FIX Notice in HTML sitemap
169
+ * FIX Fatal Error with manual Product Schema if Brand isn't defined
170
  = 3.5.5 =
171
  * FIX Fatal errors
172
  * FIX Strings translation
seopress.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: SEOPress
4
  Plugin URI: https://www.seopress.org/
5
  Description: One of the best SEO Plugin for WordPress.
6
- Version: 3.5.5
7
  Author: Benjamin Denis
8
  Author URI: https://www.seopress.org/
9
  License: GPLv2
@@ -53,7 +53,7 @@ register_deactivation_hook(__FILE__, 'seopress_deactivation');
53
  ///////////////////////////////////////////////////////////////////////////////////////////////////
54
  //Define
55
  ///////////////////////////////////////////////////////////////////////////////////////////////////
56
- define( 'SEOPRESS_VERSION', '3.5.5' );
57
  define( 'SEOPRESS_AUTHOR', 'Benjamin Denis' );
58
 
59
  ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -163,6 +163,10 @@ function seopress_add_admin_options_scripts($hook) {
163
  'seopress_nonce' => wp_create_nonce('seopress_seo_framework_migrate_nonce'),
164
  'seopress_seo_framework_migration' => admin_url( 'admin-ajax.php'),
165
  ),
 
 
 
 
166
  );
167
  wp_localize_script( 'seopress-migrate-ajax', 'seopressAjaxMigrate', $seopress_migrate );
168
  }
3
  Plugin Name: SEOPress
4
  Plugin URI: https://www.seopress.org/
5
  Description: One of the best SEO Plugin for WordPress.
6
+ Version: 3.5.6
7
  Author: Benjamin Denis
8
  Author URI: https://www.seopress.org/
9
  License: GPLv2
53
  ///////////////////////////////////////////////////////////////////////////////////////////////////
54
  //Define
55
  ///////////////////////////////////////////////////////////////////////////////////////////////////
56
+ define( 'SEOPRESS_VERSION', '3.5.6' );
57
  define( 'SEOPRESS_AUTHOR', 'Benjamin Denis' );
58
 
59
  ///////////////////////////////////////////////////////////////////////////////////////////////////
163
  'seopress_nonce' => wp_create_nonce('seopress_seo_framework_migrate_nonce'),
164
  'seopress_seo_framework_migration' => admin_url( 'admin-ajax.php'),
165
  ),
166
+ 'seopress_rk_migrate' => array(
167
+ 'seopress_nonce' => wp_create_nonce('seopress_rk_migrate_nonce'),
168
+ 'seopress_rk_migration' => admin_url( 'admin-ajax.php'),
169
+ ),
170
  );
171
  wp_localize_script( 'seopress-migrate-ajax', 'seopressAjaxMigrate', $seopress_migrate );
172
  }