diff --git a/class/class-mainwp-backup.php b/class/class-mainwp-backup.php
index d0c9316..6bbf3c0 100644
--- a/class/class-mainwp-backup.php
+++ b/class/class-mainwp-backup.php
@@ -203,29 +203,7 @@ class MainWP_Backup {
if ( $zipRes ) {
$nodes = glob( ABSPATH . '*' );
if ( ! $includeCoreFiles ) {
- $coreFiles = array(
- 'favicon.ico',
- 'index.php',
- 'license.txt',
- 'readme.html',
- 'wp-activate.php',
- 'wp-app.php',
- 'wp-blog-header.php',
- 'wp-comments-post.php',
- 'wp-config.php',
- 'wp-config-sample.php',
- 'wp-cron.php',
- 'wp-links-opml.php',
- 'wp-load.php',
- 'wp-login.php',
- 'wp-mail.php',
- 'wp-pass.php',
- 'wp-register.php',
- 'wp-settings.php',
- 'wp-signup.php',
- 'wp-trackback.php',
- 'xmlrpc.php',
- );
+ $coreFiles = $this->get_core_files();
foreach ( $nodes as $key => $node ) {
if ( MainWP_Helper::starts_with( $node, ABSPATH . WPINC ) ) {
unset( $nodes[ $key ] );
@@ -282,6 +260,32 @@ class MainWP_Backup {
return false;
}
+ private function get_core_files(){
+ return array(
+ 'favicon.ico',
+ 'index.php',
+ 'license.txt',
+ 'readme.html',
+ 'wp-activate.php',
+ 'wp-app.php',
+ 'wp-blog-header.php',
+ 'wp-comments-post.php',
+ 'wp-config.php',
+ 'wp-config-sample.php',
+ 'wp-cron.php',
+ 'wp-links-opml.php',
+ 'wp-load.php',
+ 'wp-login.php',
+ 'wp-mail.php',
+ 'wp-pass.php',
+ 'wp-register.php',
+ 'wp-settings.php',
+ 'wp-signup.php',
+ 'wp-trackback.php',
+ 'xmlrpc.php',
+ );
+ }
+
public function add_config(){
global $wpdb;
$plugins = array();
diff --git a/class/class-mainwp-child-back-up-wordpress.php b/class/class-mainwp-child-back-up-wordpress.php
index 8ddbed4..6592dac 100644
--- a/class/class-mainwp-child-back-up-wordpress.php
+++ b/class/class-mainwp-child-back-up-wordpress.php
@@ -75,7 +75,7 @@ class MainWP_Child_Back_Up_WordPress {
return $value;
}
- public function action() {
+ public function action() { // phpcs:ignore -- ignore complex method notice.
$information = array();
if ( ! self::is_activated() ) {
$information['error'] = 'NO_BACKUPWORDPRESS';
@@ -578,7 +578,7 @@ class MainWP_Child_Back_Up_WordPress {
if ( $files ) {
$this->render_table_files( $files, $schedule, $directory, $root_dir, $new_version, $site_size, $is_size_calculated );
}
- ?>
+ ?>
@@ -631,24 +631,24 @@ class MainWP_Child_Back_Up_WordPress {
}
private function render_table_files( $files, $schedule, $directory, $root_dir, $new_version, $site_size, $is_size_calculated ){
- ?>
-
-
- render_table_header_files( $root_dir, $directory, $schedule, $new_version, $site_size, $is_size_calculated );
- ?>
-
-
- render_table_body_files( $files, $schedule, $root_dir, $new_version, $site_size, $is_size_calculated );
- ?>
-
-
-
+
+
+ render_table_header_files( $root_dir, $directory, $schedule, $new_version, $site_size, $is_size_calculated );
+ ?>
+
+
+ render_table_body_files( $files, $schedule, $root_dir, $new_version, $site_size, $is_size_calculated );
+ ?>
+
+
+
+ ?>
|
|
@@ -720,7 +720,7 @@ class MainWP_Child_Back_Up_WordPress {
$file ) {
$is_excluded = false;
diff --git a/class/class-mainwp-child-pagespeed.php b/class/class-mainwp-child-pagespeed.php
index 0887c25..9feafda 100644
--- a/class/class-mainwp-child-pagespeed.php
+++ b/class/class-mainwp-child-pagespeed.php
@@ -158,7 +158,7 @@ class MainWP_Child_Pagespeed {
return $information;
}
- public function save_settings() {
+ public function save_settings() { // phpcs:ignore -- ignore complex method notice.
$current_values = get_option( 'gpagespeedi_options' );
$checkstatus = apply_filters( 'gpi_check_status', false );
if ( $checkstatus ) {
@@ -403,7 +403,7 @@ class MainWP_Child_Pagespeed {
);
}
- public static function get_filter_options( $restrict_type = 'all' ) {
+ public static function get_filter_options( $restrict_type = 'all' ) { // phpcs:ignore -- ignore complex method notice, third party credit.
$types = array();
$gpi_options = get_option( 'gpagespeedi_options' );
diff --git a/class/class-mainwp-child-posts.php b/class/class-mainwp-child-posts.php
index 2a48b6b..859248c 100644
--- a/class/class-mainwp-child-posts.php
+++ b/class/class-mainwp-child-posts.php
@@ -50,12 +50,13 @@ class MainWP_Child_Posts {
}
public function get_recent_posts_int( $status, $pCount, $type = 'post', &$allPosts, $extra = null ) {
+
$args = array(
'post_status' => $status,
'suppress_filters' => false,
'post_type' => $type,
);
-
+
$tokens = array();
if ( is_array( $extra ) && isset( $extra['tokens'] ) ) {
$tokens = $extra['tokens'];
@@ -68,26 +69,11 @@ class MainWP_Child_Posts {
}
}
$tokens = array_flip( $tokens );
-
+
if ( 0 !== $pCount ) {
$args['numberposts'] = $pCount;
}
- /*
- *
- * Credits
- *
- * Plugin-Name: Yoast SEO
- * Plugin URI: https://yoast.com/wordpress/plugins/seo/#utm_source=wpadmin&utm_medium=plugin&utm_campaign=wpseoplugin
- * Author: Team Yoast
- * Author URI: https://yoast.com/
- * Licence: GPL v3
- *
- * The code is used for the MainWP WordPress SEO Extension
- * Extension URL: https://mainwp.com/extension/wordpress-seo/
- *
- */
-
$wp_seo_enabled = false;
if ( isset( $_POST['WPSEOEnabled'] ) && $_POST['WPSEOEnabled'] ) {
if ( is_plugin_active( 'wordpress-seo/wp-seo.php' ) && class_exists( 'WPSEO_Link_Column_Count' ) && class_exists( 'WPSEO_Meta' ) ) {
@@ -96,83 +82,99 @@ class MainWP_Child_Posts {
}
$posts = get_posts( $args );
+
if ( is_array( $posts ) ) {
if ( $wp_seo_enabled ) {
$post_ids = array();
foreach ( $posts as $post ) {
$post_ids[] = $post->ID;
}
+
+ /*
+ *
+ * Credits
+ *
+ * Plugin-Name: Yoast SEO
+ * Plugin URI: https://yoast.com/wordpress/plugins/seo/#utm_source=wpadmin&utm_medium=plugin&utm_campaign=wpseoplugin
+ * Author: Team Yoast
+ * Author URI: https://yoast.com/
+ * Licence: GPL v3
+ *
+ * The code is used for the MainWP WordPress SEO Extension
+ * Extension URL: https://mainwp.com/extension/wordpress-seo/
+ *
+ */
$link_count = new WPSEO_Link_Column_Count();
$link_count->set( $post_ids );
}
foreach ( $posts as $post ) {
- $outPost = array();
- $outPost['id'] = $post->ID;
- $outPost['post_type'] = $post->post_type;
- $outPost['status'] = $post->post_status;
- $outPost['title'] = $post->post_title;
- $outPost['comment_count'] = $post->comment_count;
- if ( isset( $extra['where_post_date'] ) && ! empty( $extra['where_post_date'] ) ) {
- $outPost['dts'] = strtotime( $post->post_date_gmt );
- } else {
- $outPost['dts'] = strtotime( $post->post_modified_gmt );
- }
-
- if ( 'future' == $post->post_status ) {
- $outPost['dts'] = strtotime( $post->post_date_gmt );
- }
-
- $usr = get_user_by( 'id', $post->post_author );
- $outPost['author'] = ! empty( $usr ) ? $usr->user_nicename : 'removed';
- $categoryObjects = get_the_category( $post->ID );
- $categories = '';
- foreach ( $categoryObjects as $cat ) {
- if ( '' !== $categories ) {
- $categories .= ', ';
- }
- $categories .= $cat->name;
- }
- $outPost['categories'] = $categories;
-
- $tagObjects = get_the_tags( $post->ID );
- $tags = '';
- if ( is_array( $tagObjects ) ) {
- foreach ( $tagObjects as $tag ) {
- if ( '' !== $tags ) {
- $tags .= ', ';
- }
- $tags .= $tag->name;
- }
- }
- $outPost['tags'] = $tags;
-
- if ( is_array( $tokens ) ) {
- if ( isset( $tokens['[post.url]'] ) ) {
- $outPost['[post.url]'] = get_permalink( $post->ID );
- }
- if ( isset( $tokens['[post.website.url]'] ) ) {
- $outPost['[post.website.url]'] = get_site_url();
- }
- if ( isset( $tokens['[post.website.name]'] ) ) {
- $outPost['[post.website.name]'] = get_bloginfo( 'name' );
- }
- }
-
- if ( $wp_seo_enabled ) {
- $post_id = $post->ID;
+ $outPost = $this->get_out_post( $post, $extra, $tokens );
+ if ( $wp_seo_enabled ) {
$outPost['seo_data'] = array(
- 'count_seo_links' => $link_count->get( $post_id, 'internal_link_count' ),
- 'count_seo_linked' => $link_count->get( $post_id, 'incoming_link_count' ),
- 'seo_score' => \MainWP_WordPress_SEO::instance()->parse_column_score( $post_id ),
- 'readability_score' => \MainWP_WordPress_SEO::instance()->parse_column_score_readability( $post_id ),
+ 'count_seo_links' => $link_count->get( $post->ID, 'internal_link_count' ),
+ 'count_seo_linked' => $link_count->get( $post->ID, 'incoming_link_count' ),
+ 'seo_score' => \MainWP_WordPress_SEO::instance()->parse_column_score( $post->ID ),
+ 'readability_score' => \MainWP_WordPress_SEO::instance()->parse_column_score_readability( $post->ID ),
);
}
-
$allPosts[] = $outPost;
}
}
}
+
+ private function get_out_post( $post, $extra, $tokens ){
+ $outPost = array();
+ $outPost['id'] = $post->ID;
+ $outPost['post_type'] = $post->post_type;
+ $outPost['status'] = $post->post_status;
+ $outPost['title'] = $post->post_title;
+ $outPost['comment_count'] = $post->comment_count;
+ if ( isset( $extra['where_post_date'] ) && ! empty( $extra['where_post_date'] ) ) {
+ $outPost['dts'] = strtotime( $post->post_date_gmt );
+ } else {
+ $outPost['dts'] = strtotime( $post->post_modified_gmt );
+ }
+ if ( 'future' == $post->post_status ) {
+ $outPost['dts'] = strtotime( $post->post_date_gmt );
+ }
+
+ $usr = get_user_by( 'id', $post->post_author );
+ $outPost['author'] = ! empty( $usr ) ? $usr->user_nicename : 'removed';
+ $categoryObjects = get_the_category( $post->ID );
+ $categories = '';
+ foreach ( $categoryObjects as $cat ) {
+ if ( '' !== $categories ) {
+ $categories .= ', ';
+ }
+ $categories .= $cat->name;
+ }
+ $outPost['categories'] = $categories;
+
+ $tagObjects = get_the_tags( $post->ID );
+ $tags = '';
+ if ( is_array( $tagObjects ) ) {
+ foreach ( $tagObjects as $tag ) {
+ if ( '' !== $tags ) {
+ $tags .= ', ';
+ }
+ $tags .= $tag->name;
+ }
+ }
+ $outPost['tags'] = $tags;
+ if ( is_array( $tokens ) ) {
+ if ( isset( $tokens['[post.url]'] ) ) {
+ $outPost['[post.url]'] = get_permalink( $post->ID );
+ }
+ if ( isset( $tokens['[post.website.url]'] ) ) {
+ $outPost['[post.website.url]'] = get_site_url();
+ }
+ if ( isset( $tokens['[post.website.name]'] ) ) {
+ $outPost['[post.website.name]'] = get_bloginfo( 'name' );
+ }
+ }
+ return $outPost;
+ }
public function get_all_posts() {
$post_type = ( isset( $_POST['post_type'] ) ? $_POST['post_type'] : 'post' );
@@ -659,62 +661,20 @@ class MainWP_Child_Posts {
private function create_post( $new_post, $post_custom, $post_category, $post_featured_image, $upload_dir, $post_tags, $others = array() ) {
- global $current_user;
-
/**
* Hook: `mainwp_before_post_update`
*
* Runs before creating or updating a post via MainWP dashboard.
*
- * @param array $new_post – Post data array.
- * @param array $post_custom – Post custom meta data.
- * @param string $post_category – Post categories.
- * @param string $post_tags – Post tags.
+ * @param array $new_post – Post data array.
+ * @param array $post_custom – Post custom meta data.
+ * @param string $post_category – Post categories.
+ * @param string $post_tags – Post tags.
*/
-
- do_action( 'mainwp_before_post_update', $new_post, $post_custom, $post_category, $post_tags );
-
- $this->create_wp_rocket( $post_custom );
-
- // current user may be connected admin or alternative admin.
- $current_uid = $current_user->ID;
- // Set up a new post (adding addition information).
-
- $post_author = isset( $new_post['post_author'] ) ? $new_post['post_author'] : $current_uid;
-
- if ( isset( $new_post['custom_post_author'] ) && ! empty( $new_post['custom_post_author'] ) ) {
- $_author = get_user_by( 'login', $new_post['custom_post_author'] );
- if ( ! empty( $_author ) ) {
- $new_post['post_author'] = $_author->ID;
- } else {
- $new_post['post_author'] = $current_uid;
- }
- unset( $new_post['custom_post_author'] );
- }
-
- $post_author = ! empty( $post_author ) ? $post_author : $current_uid;
- $new_post['post_author'] = $post_author;
-
- // post plus extension process.
- $is_post_plus = isset( $post_custom['_mainwp_post_plus'] ) ? true : false;
-
- $wp_error = null;
-
- if ( $is_post_plus ) {
- if ( isset( $new_post['post_date_gmt'] ) && ! empty( $new_post['post_date_gmt'] ) && '0000-00-00 00:00:00' != $new_post['post_date_gmt'] ) {
- $post_date_timestamp = strtotime( $new_post['post_date_gmt'] ) + get_option( 'gmt_offset' ) * 60 * 60;
- $new_post['post_date'] = date( 'Y-m-d H:i:s', $post_date_timestamp ); // phpcs:ignore -- local time.
- }
- }
-
+ do_action( 'mainwp_before_post_update', $new_post, $post_custom, $post_category, $post_tags );
$edit_post_id = 0;
-
- if ( isset( $post_custom['_mainwp_edit_post_id'] ) && $post_custom['_mainwp_edit_post_id'] ) {
- $edit_post_id = current( $post_custom['_mainwp_edit_post_id'] );
- } elseif ( isset( $new_post['ID'] ) && $new_post['ID'] ) {
- $edit_post_id = $new_post['ID'];
- }
-
+ $is_post_plus = false;
+ $this->set_post_custom_data( $new_post, $post_custom, $post_tags, $edit_post_id, $is_post_plus );
require_once ABSPATH . 'wp-admin/includes/post.php';
if ( $edit_post_id ) {
$user_id = wp_check_post_lock( $edit_post_id );
@@ -724,28 +684,16 @@ class MainWP_Child_Posts {
return array( 'error' => $error );
}
}
-
- $check_image_existed = false;
- if ( $edit_post_id ) {
- $check_image_existed = true; // if editing post then will check if image existed.
- }
-
+ $check_image_existed = $edit_post_id ? true : false; // if editing post then will check if image existed.
$this->create_found_images( $new_post, $upload_dir, $check_image_existed );
$this->create_has_shortcode_gallery( $new_post );
-
if ( $is_post_plus ) {
$this->create_post_plus( $new_post, $post_custom );
}
-
- if ( isset( $post_tags ) && '' !== $post_tags ) {
- $new_post['tags_input'] = $post_tags;
- }
-
// Save the post to the WP.
remove_filter( 'content_save_pre', 'wp_filter_post_kses' ); // to fix brake scripts or html.
- $post_status = $new_post['post_status'];
- $new_post['post_status'] = 'auto-draft'; // child reports: to logging as created post.
-
+ $post_status = $new_post['post_status']; // save post_status.
+ $new_post['post_status'] = 'auto-draft'; // to fix reports: to logging as created post.
// update post.
if ( $edit_post_id ) {
// check if post existed.
@@ -754,10 +702,9 @@ class MainWP_Child_Posts {
$new_post['ID'] = $edit_post_id;
}
$new_post['post_status'] = $post_status; // child reports: to logging as update post.
- }
-
+ }
+ $wp_error = null;
$new_post_id = wp_insert_post( $new_post, $wp_error );
-
// Show errors if something went wrong.
if ( is_wp_error( $wp_error ) ) {
return $wp_error->get_error_message();
@@ -765,7 +712,6 @@ class MainWP_Child_Posts {
if ( empty( $new_post_id ) ) {
return array( 'error' => 'Empty post id' );
}
-
if ( ! $edit_post_id ) {
wp_update_post(
array(
@@ -774,14 +720,11 @@ class MainWP_Child_Posts {
)
);
}
-
$this->update_post_data( $new_post_id, $post_custom, $post_category, $post_featured_image, $check_image_existed, $is_post_plus );
-
// unlock if edit post.
if ( $edit_post_id ) {
update_post_meta( $edit_post_id, '_edit_lock', '' );
}
-
$permalink = get_permalink( $new_post_id );
$ret['success'] = true;
$ret['link'] = $permalink;
@@ -789,6 +732,48 @@ class MainWP_Child_Posts {
return $ret;
}
+ private function set_post_custom_data( &$new_post, $post_custom, $post_tags, &$edit_post_id, &$is_post_plus ){
+
+ global $current_user;
+
+ $this->create_wp_rocket( $post_custom );
+
+ // current user may be connected admin or alternative admin.
+ $current_uid = $current_user->ID;
+
+ // Set up a new post (adding addition information).
+
+ $new_post['post_author'] = isset( $new_post['post_author'] ) && ! empty( $new_post['post_author'] )? $new_post['post_author'] : $current_uid;
+
+ if ( isset( $new_post['custom_post_author'] ) && ! empty( $new_post['custom_post_author'] ) ) {
+ $_author = get_user_by( 'login', $new_post['custom_post_author'] );
+ if ( ! empty( $_author ) ) {
+ $new_post['post_author'] = $_author->ID;
+ }
+ unset( $new_post['custom_post_author'] );
+ }
+
+ // post plus extension process.
+ $is_post_plus = isset( $post_custom['_mainwp_post_plus'] ) ? true : false;
+
+ if ( $is_post_plus ) {
+ if ( isset( $new_post['post_date_gmt'] ) && ! empty( $new_post['post_date_gmt'] ) && '0000-00-00 00:00:00' != $new_post['post_date_gmt'] ) {
+ $post_date_timestamp = strtotime( $new_post['post_date_gmt'] ) + get_option( 'gmt_offset' ) * 60 * 60;
+ $new_post['post_date'] = date( 'Y-m-d H:i:s', $post_date_timestamp ); // phpcs:ignore -- local time.
+ }
+ }
+
+ if ( isset( $post_tags ) && '' !== $post_tags ) {
+ $new_post['tags_input'] = $post_tags;
+ }
+
+ if ( isset( $post_custom['_mainwp_edit_post_id'] ) && $post_custom['_mainwp_edit_post_id'] ) {
+ $edit_post_id = current( $post_custom['_mainwp_edit_post_id'] );
+ } elseif ( isset( $new_post['ID'] ) && $new_post['ID'] ) {
+ $edit_post_id = $new_post['ID'];
+ }
+ }
+
private function update_post_data( $new_post_id, $post_custom, $post_category, $post_featured_image, $check_image_existed, $is_post_plus ){
$seo_ext_activated = false;
diff --git a/class/class-mainwp-child-staging.php b/class/class-mainwp-child-staging.php
index e550ad4..ae152c9 100644
--- a/class/class-mainwp-child-staging.php
+++ b/class/class-mainwp-child-staging.php
@@ -74,7 +74,7 @@ class MainWP_Child_Staging {
return $this->get_overview();
}
- public function action() {
+ public function action() { // phpcs:ignore -- ignore complex method notice.
if ( ! $this->is_plugin_installed ) {
mainwp_child_helper()->write( array( 'error' => __( 'Please install WP Staging plugin on child website', 'mainwp-child' ) ) );
}
diff --git a/class/class-mainwp-child-stats.php b/class/class-mainwp-child-stats.php
index 1f3a614..aac5dc1 100644
--- a/class/class-mainwp-child-stats.php
+++ b/class/class-mainwp-child-stats.php
@@ -94,49 +94,12 @@ class MainWP_Child_Stats {
add_filter( 'default_option_active_plugins', array( &$this, 'default_option_active_plugins' ) );
add_filter( 'option_active_plugins', array( &$this, 'default_option_active_plugins' ) );
+ $premiumPlugins = array();
+ $premiumThemes = array();
+
// First check for new premium updates.
- $this->check_premium_updates();
-
- $informationPremiumUpdates = apply_filters( 'mwp_premium_update_notification', array() );
- $premiumPlugins = array();
- $premiumThemes = array();
- if ( is_array( $informationPremiumUpdates ) ) {
- $premiumUpdates = array();
- $informationPremiumUpdatesLength = count( $informationPremiumUpdates );
- for ( $i = 0; $i < $informationPremiumUpdatesLength; $i ++ ) {
- if ( ! isset( $informationPremiumUpdates[ $i ]['new_version'] ) ) {
- continue;
- }
- $slug = ( isset( $informationPremiumUpdates[ $i ]['slug'] ) ? $informationPremiumUpdates[ $i ]['slug'] : $informationPremiumUpdates[ $i ]['Name'] );
-
- if ( 'plugin' === $informationPremiumUpdates[ $i ]['type'] ) {
- $premiumPlugins[] = $slug;
- } elseif ( 'theme' === $informationPremiumUpdates[ $i ]['type'] ) {
- $premiumThemes[] = $slug;
- }
-
- $new_version = $informationPremiumUpdates[ $i ]['new_version'];
-
- unset( $informationPremiumUpdates[ $i ]['old_version'] );
- unset( $informationPremiumUpdates[ $i ]['new_version'] );
-
- if ( ! isset( $information['premium_updates'] ) ) {
- $information['premium_updates'] = array();
- }
-
- $information['premium_updates'][ $slug ] = $informationPremiumUpdates[ $i ];
- $information['premium_updates'][ $slug ]['update'] = (object) array(
- 'new_version' => $new_version,
- 'premium' => true,
- 'slug' => $slug,
- );
- if ( ! in_array( $slug, $premiumUpdates ) ) {
- $premiumUpdates[] = $slug;
- }
- }
- MainWP_Helper::update_option( 'mainwp_premium_updates', $premiumUpdates );
- }
-
+ $this->check_premium_updates( $information, $premiumPlugins, $premiumThemes );
+
remove_filter( 'default_option_active_plugins', array( &$this, 'default_option_active_plugins' ) );
remove_filter( 'option_active_plugins', array( &$this, 'default_option_active_plugins' ) );
@@ -381,7 +344,7 @@ class MainWP_Child_Stats {
}
}
- private function check_premium_updates() {
+ private function check_premium_updates( &$information, &$premiumPlugins, &$premiumThemes ) {
// First check for new premium updates.
$update_check = apply_filters( 'mwp_premium_update_check', array() );
if ( ! empty( $update_check ) ) {
@@ -393,8 +356,48 @@ class MainWP_Child_Stats {
}
}
}
- }
+
+ $informationPremiumUpdates = apply_filters( 'mwp_premium_update_notification', array() );
+ $premiumPlugins = array();
+ $premiumThemes = array();
+ if ( is_array( $informationPremiumUpdates ) ) {
+ $premiumUpdates = array();
+ $informationPremiumUpdatesLength = count( $informationPremiumUpdates );
+ for ( $i = 0; $i < $informationPremiumUpdatesLength; $i ++ ) {
+ if ( ! isset( $informationPremiumUpdates[ $i ]['new_version'] ) ) {
+ continue;
+ }
+ $slug = ( isset( $informationPremiumUpdates[ $i ]['slug'] ) ? $informationPremiumUpdates[ $i ]['slug'] : $informationPremiumUpdates[ $i ]['Name'] );
+ if ( 'plugin' === $informationPremiumUpdates[ $i ]['type'] ) {
+ $premiumPlugins[] = $slug;
+ } elseif ( 'theme' === $informationPremiumUpdates[ $i ]['type'] ) {
+ $premiumThemes[] = $slug;
+ }
+
+ $new_version = $informationPremiumUpdates[ $i ]['new_version'];
+
+ unset( $informationPremiumUpdates[ $i ]['old_version'] );
+ unset( $informationPremiumUpdates[ $i ]['new_version'] );
+
+ if ( ! isset( $information['premium_updates'] ) ) {
+ $information['premium_updates'] = array();
+ }
+
+ $information['premium_updates'][ $slug ] = $informationPremiumUpdates[ $i ];
+ $information['premium_updates'][ $slug ]['update'] = (object) array(
+ 'new_version' => $new_version,
+ 'premium' => true,
+ 'slug' => $slug,
+ );
+ if ( ! in_array( $slug, $premiumUpdates ) ) {
+ $premiumUpdates[] = $slug;
+ }
+ }
+ MainWP_Helper::update_option( 'mainwp_premium_updates', $premiumUpdates );
+ }
+ }
+
private function stats_plugin_update( $premiumPlugins ) {
$results = array();
diff --git a/class/class-mainwp-child-timecapsule.php b/class/class-mainwp-child-timecapsule.php
index e5adea1..a1fa233 100644
--- a/class/class-mainwp-child-timecapsule.php
+++ b/class/class-mainwp-child-timecapsule.php
@@ -58,7 +58,7 @@ class MainWP_Child_Timecapsule {
}
- public function action() {
+ public function action() { // phpcs:ignore -- ignore complex method notice.
if ( ! $this->is_plugin_installed ) {
mainwp_child_helper()->write( array( 'error' => 'Please install WP Time Capsule plugin on child website' ) );
}
diff --git a/class/class-mainwp-child-updates.php b/class/class-mainwp-child-updates.php
index f006011..d29bc3a 100644
--- a/class/class-mainwp-child-updates.php
+++ b/class/class-mainwp-child-updates.php
@@ -44,9 +44,34 @@ class MainWP_Child_Updates {
if ( ! defined( 'DOING_CRON' ) ) {
define( 'DOING_CRON', true );
}
-
+
MainWP_Helper::get_wp_filesystem();
+
+ $this->include_updates();
+ $information = array();
+ $information['upgrades'] = array();
+ $mwp_premium_updates_todo = array();
+ $mwp_premium_updates_todo_slugs = array();
+ $premiumUpgrader = false;
+
+ if ( isset( $_POST['type'] ) && 'plugin' === $_POST['type'] ) {
+ $this->upgrade_plugin( $information, $mwp_premium_updates_todo, $mwp_premium_updates_todo_slugs, $premiumUpgrader );
+ } elseif ( isset( $_POST['type'] ) && 'theme' === $_POST['type'] ) {
+ $this->upgrade_theme( $information, $mwp_premium_updates_todo, $mwp_premium_updates_todo_slugs, $premiumUpgrader );
+ } else {
+ MainWP_Helper::error( __( 'Invalid request!', 'mainwp-child' ) );
+ }
+
+ if ( count( $mwp_premium_updates_todo ) > 0 ) {
+ $this->update_premiums_todo( $information, $premiumUpgrader, $mwp_premium_updates_todo, $mwp_premium_updates_todo_slugs );
+ }
+
+ $information['sync'] = MainWP_Child_Stats::get_instance()->get_site_stats( array(), false );
+ mainwp_child_helper()->write( $information );
+ }
+
+ private function include_updates(){
include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php';
if ( file_exists( ABSPATH . '/wp-admin/includes/screen.php' ) ) {
@@ -61,86 +86,289 @@ class MainWP_Child_Updates {
include_once ABSPATH . '/wp-admin/includes/file.php';
include_once ABSPATH . '/wp-admin/includes/plugin.php';
include_once ABSPATH . '/wp-admin/includes/plugin-install.php';
-
- $information = array();
- $information['upgrades'] = array();
- $mwp_premium_updates_todo = array();
- $mwp_premium_updates_todo_slugs = array();
-
- if ( isset( $_POST['type'] ) && 'plugin' === $_POST['type'] ) {
- $this->upgrade_plugin( $information, $mwp_premium_updates_todo, $mwp_premium_updates_todo_slugs );
- } elseif ( isset( $_POST['type'] ) && 'theme' === $_POST['type'] ) {
- $this->upgrade_theme( $information, $mwp_premium_updates_todo, $mwp_premium_updates_todo_slugs );
- } else {
- MainWP_Helper::error( __( 'Invalid request!', 'mainwp-child' ) );
- }
-
- if ( count( $mwp_premium_updates_todo ) > 0 ) {
- // Upgrade via WP.
- // @see wp-admin/update.php.
- $result = $premiumUpgrader->bulk_upgrade( $mwp_premium_updates_todo_slugs );
- if ( ! empty( $result ) ) {
- foreach ( $result as $plugin => $info ) {
- if ( ! empty( $info ) ) {
- $information['upgrades'][ $plugin ] = true;
-
- foreach ( $mwp_premium_updates_todo as $key => $update ) {
- $slug = ( isset( $update['slug'] ) ? $update['slug'] : $update['Name'] );
- }
- }
- }
- }
-
- // Upgrade via callback.
- foreach ( $mwp_premium_updates_todo as $update ) {
- $slug = ( isset( $update['slug'] ) ? $update['slug'] : $update['Name'] );
-
- if ( isset( $update['url'] ) ) {
- $installer = new \WP_Upgrader();
- $result = $installer->run(
- array(
- 'package' => $update['url'],
- 'destination' => ( 'plugin' === $update['type'] ? WP_PLUGIN_DIR : WP_CONTENT_DIR . '/themes' ),
- 'clear_destination' => true,
- 'clear_working' => true,
- 'hook_extra' => array(),
- )
- );
- $information['upgrades'][ $slug ] = ( ! is_wp_error( $result ) && ! empty( $result ) );
- } elseif ( isset( $update['callback'] ) ) {
- if ( is_array( $update['callback'] ) && isset( $update['callback'][0] ) && isset( $update['callback'][1] ) ) {
- $update_result = call_user_func(
- array(
- $update['callback'][0],
- $update['callback'][1],
- )
- );
- $information['upgrades'][ $slug ] = $update_result && true;
- } elseif ( is_string( $update['callback'] ) ) {
- $update_result = call_user_func( $update['callback'] );
- $information['upgrades'][ $slug ] = $update_result && true;
- } else {
- $information['upgrades'][ $slug ] = false;
- }
- } else {
- $information['upgrades'][ $slug ] = false;
- }
- }
- }
-
- $information['sync'] = MainWP_Child_Stats::get_instance()->get_site_stats( array(), false );
- mainwp_child_helper()->write( $information );
}
- private function upgrade_plugin( &$information, &$mwp_premium_updates_todo, &$mwp_premium_updates_todo_slugs ) {
+ private function upgrade_plugin( &$information, &$mwp_premium_updates_todo, &$mwp_premium_updates_todo_slugs, &$premiumUpgrader ) {
- include_once ABSPATH . '/wp-admin/includes/update.php';
+ include_once ABSPATH . '/wp-admin/includes/update.php';
if ( null !== $this->filterFunction ) {
add_filter( 'pre_site_transient_update_plugins', $this->filterFunction, 99 );
}
- $plugins = explode( ',', urldecode( $_POST['list'] ) );
+ $plugins = explode( ',', urldecode( $_POST['list'] ) );
+ $this->to_support_some_premiums_updates( $plugins );
+
+ global $wp_current_filter;
+ $wp_current_filter[] = 'load-plugins.php'; // phpcs:ignore -- to custom plugin installation.
+ wp_update_plugins();
+
+ // trick to prevent some premium plugins re-create update info.
+ remove_all_filters( 'pre_set_site_transient_update_plugins' );
+
+ // support cached premium plugins update info, hooking in the bulk_upgrade().
+ add_filter( 'pre_site_transient_update_plugins', array( $this, 'set_cached_update_plugins' ) );
+
+ $information['plugin_updates'] = get_plugin_updates();
+
+ $plugins = explode( ',', urldecode( $_POST['list'] ) );
+ $premiumPlugins = array();
+ $premiumUpdates = get_option( 'mainwp_premium_updates' );
+ if ( is_array( $premiumUpdates ) ) {
+ $newPlugins = array();
+ foreach ( $plugins as $plugin ) {
+ if ( in_array( $plugin, $premiumUpdates ) ) {
+ $premiumPlugins[] = $plugin;
+ } else {
+ $newPlugins[] = $plugin;
+ }
+ }
+ $plugins = $newPlugins;
+ }
+
+ if ( count( $plugins ) > 0 ) {
+ $this->to_update_plugins( $information, $plugins );
+ }
+
+ remove_filter( 'pre_site_transient_update_plugins', array( $this, 'set_cached_update_plugins' ), 10 );
+ delete_site_transient( 'mainwp_update_plugins_cached' ); // fix cached update info.
+
+ if ( count( $premiumPlugins ) > 0 ) {
+ $mwp_premium_updates = apply_filters( 'mwp_premium_perform_update', array() );
+ if ( is_array( $mwp_premium_updates ) && is_array( $premiumPlugins ) ) {
+ foreach ( $premiumPlugins as $premiumPlugin ) {
+ foreach ( $mwp_premium_updates as $key => $update ) {
+ $slug = ( isset( $update['slug'] ) ? $update['slug'] : $update['Name'] );
+ if ( 0 === strcmp( $slug, $premiumPlugin ) ) {
+ $mwp_premium_updates_todo[ $key ] = $update;
+ $mwp_premium_updates_todo_slugs[] = $premiumPlugin;
+ }
+ }
+ }
+ }
+ unset( $mwp_premium_updates );
+ // to fix update of Yithemes premiums plugins that hooked to upgrader_pre_download.
+ $url = 'update.php?action=update-selected&plugins=' . rawurlencode( implode( ',', $plugins ) );
+ $nonce = 'bulk-update-plugins';
+ $premiumUpgrader = new \Plugin_Upgrader( new \Bulk_Plugin_Upgrader_Skin( compact( 'nonce', 'url' ) ) );
+ }
+
+ if ( count( $plugins ) <= 0 && count( $premiumPlugins ) <= 0 ) {
+ MainWP_Helper::error( __( 'Invalid request!', 'mainwp-child' ) );
+ }
+
+ if ( null !== $this->filterFunction ) {
+ remove_filter( 'pre_site_transient_update_plugins', $this->filterFunction, 99 );
+ }
+ }
+
+ private function to_update_plugins( &$information, $plugins ){
+ $failed = true;
+ // to fix update of Yithemes premiums plugins that hooked to upgrader_pre_download.
+ $url = 'update.php?action=update-selected&plugins=' . rawurlencode( implode( ',', $plugins ) );
+ $nonce = 'bulk-update-plugins';
+
+ $upgrader = new \Plugin_Upgrader( new \Bulk_Plugin_Upgrader_Skin( compact( 'nonce', 'url' ) ) );
+ $result = $upgrader->bulk_upgrade( $plugins );
+
+ if ( ! empty( $result ) ) {
+ foreach ( $result as $plugin => $info ) {
+ if ( empty( $info ) ) {
+
+ $information['upgrades'][ $plugin ] = false;
+ // try to fix if that is premiums update.
+ $api = apply_filters( 'plugins_api', false, 'plugin_information', array( 'slug' => $plugin ) );
+
+ if ( ! is_wp_error( $api ) && ! empty( $api ) ) {
+ if ( isset( $api->download_link ) ) {
+ $res = $upgrader->install( $api->download_link );
+ if ( ! is_wp_error( $res ) && ! ( is_null( $res ) ) ) {
+ $information['upgrades'][ $plugin ] = true;
+ }
+ }
+ }
+ } else {
+ $information['upgrades'][ $plugin ] = true;
+ }
+ }
+ $failed = false;
+ }
+
+ if ( $failed ) {
+ MainWP_Helper::error( __( 'Invalid request!', 'mainwp-child' ) );
+ }
+ }
+
+ private function upgrade_theme( &$information, &$mwp_premium_updates_todo, &$mwp_premium_updates_todo_slugs, &$premiumUpgrader ) {
+
+ $last_update = get_site_transient( 'update_themes' );
+
+ include_once ABSPATH . '/wp-admin/includes/update.php';
+ if ( null !== $this->filterFunction ) {
+ add_filter( 'pre_site_transient_update_themes', $this->filterFunction, 99 );
+ }
+
+ wp_update_themes();
+ include_once ABSPATH . '/wp-admin/includes/theme.php';
+
+ // to support cached premium themes update info, hooking in the bulk_upgrade().
+ add_filter( 'pre_site_transient_update_themes', array( $this, 'set_cached_update_themes' ) );
+
+ $information['theme_updates'] = $this->upgrade_get_theme_updates();
+ $themes = explode( ',', $_POST['list'] );
+ $premiumThemes = array();
+ $premiumUpdates = get_option( 'mainwp_premium_updates' );
+ if ( is_array( $premiumUpdates ) ) {
+ $newThemes = array();
+ foreach ( $themes as $theme ) {
+ if ( in_array( $theme, $premiumUpdates ) ) {
+ $premiumThemes[] = $theme;
+ } else {
+ $newThemes[] = $theme;
+ }
+ }
+ $themes = $newThemes;
+ }
+
+ if ( count( $themes ) > 0 ) {
+ $this->to_upgrade_themes( $information, $themes, $last_update );
+ }
+
+ remove_filter( 'pre_site_transient_update_themes', array( $this, 'set_cached_update_themes' ), 10 );
+ delete_site_transient( 'mainwp_update_themes_cached' ); // fix cached update info.
+
+ if ( count( $premiumThemes ) > 0 ) {
+ $mwp_premium_updates = apply_filters( 'mwp_premium_perform_update', array() );
+ $mwp_premium_updates_todo = array();
+ $mwp_premium_updates_todo_slugs = array();
+ if ( is_array( $premiumThemes ) && is_array( $mwp_premium_updates ) ) {
+ foreach ( $premiumThemes as $premiumTheme ) {
+ foreach ( $mwp_premium_updates as $key => $update ) {
+ $slug = ( isset( $update['slug'] ) ? $update['slug'] : $update['Name'] );
+ if ( 0 === strcmp( $slug, $premiumTheme ) ) {
+ $mwp_premium_updates_todo[ $key ] = $update;
+ $mwp_premium_updates_todo_slugs[] = $slug;
+ }
+ }
+ }
+ }
+ unset( $mwp_premium_updates );
+ $premiumUpgrader = new \Theme_Upgrader( new \Bulk_Theme_Upgrader_Skin( compact( 'nonce', 'url' ) ) );
+ }
+ if ( count( $themes ) <= 0 && count( $premiumThemes ) <= 0 ) {
+ MainWP_Helper::error( __( 'Invalid request!', 'mainwp-child' ) );
+ }
+
+ if ( null !== $this->filterFunction ) {
+ remove_filter( 'pre_site_transient_update_themes', $this->filterFunction, 99 );
+ }
+ }
+
+ private function to_upgrade_themes( &$information, $themes, $last_update ){
+ $addFilterToFixUpdate_optimizePressTheme = false;
+ if ( in_array( 'optimizePressTheme', $themes ) ) {
+ $addFilterToFixUpdate_optimizePressTheme = true;
+ add_filter( 'site_transient_update_themes', array( $this, 'hook_fix_optimize_press_theme_update' ), 99 );
+ }
+
+ if ( null !== $this->filterFunction ) {
+ remove_filter( 'pre_site_transient_update_plugins', $this->filterFunction, 99 );
+ }
+
+ $last_update2 = get_site_transient( 'update_themes' );
+ set_site_transient( 'update_themes', $last_update );
+
+ $failed = true;
+ $upgrader = new \Theme_Upgrader( new \Bulk_Theme_Upgrader_Skin( compact( 'nonce', 'url' ) ) );
+ $result = $upgrader->bulk_upgrade( $themes );
+ if ( ! empty( $result ) ) {
+ foreach ( $result as $theme => $info ) {
+ if ( empty( $info ) ) {
+ $information['upgrades'][ $theme ] = false;
+ } else {
+ $information['upgrades'][ $theme ] = true;
+ }
+ }
+ $failed = false;
+ }
+
+ if ( $failed ) {
+ MainWP_Helper::error( __( 'Invalid request!', 'mainwp-child' ) );
+ }
+
+ if ( null !== $this->filterFunction ) {
+ add_filter( 'pre_site_transient_update_themes', $this->filterFunction, 99 );
+ }
+
+ set_site_transient( 'update_themes', $last_update2 );
+
+ if ( $addFilterToFixUpdate_optimizePressTheme ) {
+ remove_filter(
+ 'site_transient_update_themes',
+ array(
+ $this,
+ 'hook_fix_optimize_press_theme_update',
+ ),
+ 99
+ );
+ }
+ }
+
+ private function update_premiums_todo( &$information, $premiumUpgrader, $mwp_premium_updates_todo, $mwp_premium_updates_todo_slugs ){
+ // Upgrade via WP.
+ // @see wp-admin/update.php.
+ $result = $premiumUpgrader->bulk_upgrade( $mwp_premium_updates_todo_slugs );
+ if ( ! empty( $result ) ) {
+ foreach ( $result as $plugin => $info ) {
+ if ( ! empty( $info ) ) {
+ $information['upgrades'][ $plugin ] = true;
+
+ foreach ( $mwp_premium_updates_todo as $key => $update ) {
+ $slug = ( isset( $update['slug'] ) ? $update['slug'] : $update['Name'] );
+ }
+ }
+ }
+ }
+
+ // Upgrade via callback.
+ foreach ( $mwp_premium_updates_todo as $update ) {
+ $slug = ( isset( $update['slug'] ) ? $update['slug'] : $update['Name'] );
+
+ if ( isset( $update['url'] ) ) {
+ $installer = new \WP_Upgrader();
+ $result = $installer->run(
+ array(
+ 'package' => $update['url'],
+ 'destination' => ( 'plugin' === $update['type'] ? WP_PLUGIN_DIR : WP_CONTENT_DIR . '/themes' ),
+ 'clear_destination' => true,
+ 'clear_working' => true,
+ 'hook_extra' => array(),
+ )
+ );
+ $information['upgrades'][ $slug ] = ( ! is_wp_error( $result ) && ! empty( $result ) );
+ } elseif ( isset( $update['callback'] ) ) {
+ if ( is_array( $update['callback'] ) && isset( $update['callback'][0] ) && isset( $update['callback'][1] ) ) {
+ $update_result = call_user_func(
+ array(
+ $update['callback'][0],
+ $update['callback'][1],
+ )
+ );
+ $information['upgrades'][ $slug ] = $update_result && true;
+ } elseif ( is_string( $update['callback'] ) ) {
+ $update_result = call_user_func( $update['callback'] );
+ $information['upgrades'][ $slug ] = $update_result && true;
+ } else {
+ $information['upgrades'][ $slug ] = false;
+ }
+ } else {
+ $information['upgrades'][ $slug ] = false;
+ }
+ }
+ }
+
+ private function to_support_some_premiums_updates( $plugins ){
+
if ( in_array( 'backupbuddy/backupbuddy.php', $plugins ) ) {
if ( isset( $GLOBALS['ithemes_updater_path'] ) ) {
if ( ! class_exists( 'Ithemes_Updater_Settings' ) ) {
@@ -160,212 +388,9 @@ class MainWP_Child_Updates {
include_once plugin_dir_path( __FILE__ ) . '../../smart-manager-for-wp-e-commerce/pro/upgrade.php';
}
}
-
- global $wp_current_filter;
- $wp_current_filter[] = 'load-plugins.php'; // phpcs:ignore -- to custom plugin installation.
- wp_update_plugins();
-
- // trick to prevent some premium plugins re-create update info.
- remove_all_filters( 'pre_set_site_transient_update_plugins' );
-
- // support cached premium plugins update info, hooking in the bulk_upgrade().
- add_filter( 'pre_site_transient_update_plugins', array( $this, 'set_cached_update_plugins' ) );
-
- $information['plugin_updates'] = get_plugin_updates();
-
- $plugins = explode( ',', urldecode( $_POST['list'] ) );
- $premiumPlugins = array();
- $premiumUpdates = get_option( 'mainwp_premium_updates' );
- if ( is_array( $premiumUpdates ) ) {
- $newPlugins = array();
- foreach ( $plugins as $plugin ) {
- if ( in_array( $plugin, $premiumUpdates ) ) {
- $premiumPlugins[] = $plugin;
- } else {
- $newPlugins[] = $plugin;
- }
- }
- $plugins = $newPlugins;
- }
-
- if ( count( $plugins ) > 0 ) {
- $failed = true;
- // to fix update of Yithemes premiums plugins that hooked to upgrader_pre_download.
- $url = 'update.php?action=update-selected&plugins=' . rawurlencode( implode( ',', $plugins ) );
- $nonce = 'bulk-update-plugins';
-
- $upgrader = new \Plugin_Upgrader( new \Bulk_Plugin_Upgrader_Skin( compact( 'nonce', 'url' ) ) );
- $result = $upgrader->bulk_upgrade( $plugins );
-
- if ( ! empty( $result ) ) {
- foreach ( $result as $plugin => $info ) {
- if ( empty( $info ) ) {
-
- $information['upgrades'][ $plugin ] = false;
- // try to fix if that is premiums update.
- $api = apply_filters( 'plugins_api', false, 'plugin_information', array( 'slug' => $plugin ) );
-
- if ( ! is_wp_error( $api ) && ! empty( $api ) ) {
- if ( isset( $api->download_link ) ) {
- $res = $upgrader->install( $api->download_link );
- if ( ! is_wp_error( $res ) && ! ( is_null( $res ) ) ) {
- $information['upgrades'][ $plugin ] = true;
- }
- }
- }
- } else {
- $information['upgrades'][ $plugin ] = true;
- }
- }
- $failed = false;
- }
-
- if ( $failed ) {
- MainWP_Helper::error( __( 'Invalid request!', 'mainwp-child' ) );
- }
- }
-
- remove_filter( 'pre_site_transient_update_plugins', array( $this, 'set_cached_update_plugins' ), 10 );
- delete_site_transient( 'mainwp_update_plugins_cached' ); // fix cached update info.
-
- if ( count( $premiumPlugins ) > 0 ) {
- $mwp_premium_updates = apply_filters( 'mwp_premium_perform_update', array() );
- if ( is_array( $mwp_premium_updates ) && is_array( $premiumPlugins ) ) {
- foreach ( $premiumPlugins as $premiumPlugin ) {
- foreach ( $mwp_premium_updates as $key => $update ) {
- $slug = ( isset( $update['slug'] ) ? $update['slug'] : $update['Name'] );
- if ( 0 === strcmp( $slug, $premiumPlugin ) ) {
- $mwp_premium_updates_todo[ $key ] = $update;
- $mwp_premium_updates_todo_slugs[] = $premiumPlugin;
- }
- }
- }
- }
- unset( $mwp_premium_updates );
- $premiumUpgrader = new \Plugin_Upgrader( new \Bulk_Plugin_Upgrader_Skin( compact( 'nonce', 'url' ) ) );
- }
-
- if ( count( $plugins ) <= 0 && count( $premiumPlugins ) <= 0 ) {
- MainWP_Helper::error( __( 'Invalid request!', 'mainwp-child' ) );
- }
-
- if ( null !== $this->filterFunction ) {
- remove_filter( 'pre_site_transient_update_plugins', $this->filterFunction, 99 );
- }
+
}
-
- private function upgrade_theme( &$information, &$mwp_premium_updates_todo, &$mwp_premium_updates_todo_slugs ) {
-
- $last_update = get_site_transient( 'update_themes' );
-
- include_once ABSPATH . '/wp-admin/includes/update.php';
- if ( null !== $this->filterFunction ) {
- add_filter( 'pre_site_transient_update_themes', $this->filterFunction, 99 );
- }
-
- wp_update_themes();
- include_once ABSPATH . '/wp-admin/includes/theme.php';
-
- // to support cached premium themes update info, hooking in the bulk_upgrade().
- add_filter( 'pre_site_transient_update_themes', array( $this, 'set_cached_update_themes' ) );
-
- $information['theme_updates'] = $this->upgrade_get_theme_updates();
- $themes = explode( ',', $_POST['list'] );
- $premiumThemes = array();
- $premiumUpdates = get_option( 'mainwp_premium_updates' );
- if ( is_array( $premiumUpdates ) ) {
- $newThemes = array();
- foreach ( $themes as $theme ) {
- if ( in_array( $theme, $premiumUpdates ) ) {
- $premiumThemes[] = $theme;
- } else {
- $newThemes[] = $theme;
- }
- }
- $themes = $newThemes;
- }
-
- if ( count( $themes ) > 0 ) {
- $addFilterToFixUpdate_optimizePressTheme = false;
- if ( in_array( 'optimizePressTheme', $themes ) ) {
- $addFilterToFixUpdate_optimizePressTheme = true;
- add_filter( 'site_transient_update_themes', array( $this, 'hook_fix_optimize_press_theme_update' ), 99 );
- }
-
- if ( null !== $this->filterFunction ) {
- remove_filter( 'pre_site_transient_update_plugins', $this->filterFunction, 99 );
- }
-
- $last_update2 = get_site_transient( 'update_themes' );
- set_site_transient( 'update_themes', $last_update );
-
- $failed = true;
- $upgrader = new \Theme_Upgrader( new \Bulk_Theme_Upgrader_Skin( compact( 'nonce', 'url' ) ) );
- $result = $upgrader->bulk_upgrade( $themes );
- if ( ! empty( $result ) ) {
- foreach ( $result as $theme => $info ) {
- if ( empty( $info ) ) {
- $information['upgrades'][ $theme ] = false;
- } else {
- $information['upgrades'][ $theme ] = true;
- }
- }
- $failed = false;
- }
-
- if ( $failed ) {
- MainWP_Helper::error( __( 'Invalid request!', 'mainwp-child' ) );
- }
-
- if ( null !== $this->filterFunction ) {
- add_filter( 'pre_site_transient_update_themes', $this->filterFunction, 99 );
- }
-
- set_site_transient( 'update_themes', $last_update2 );
-
- if ( $addFilterToFixUpdate_optimizePressTheme ) {
- remove_filter(
- 'site_transient_update_themes',
- array(
- $this,
- 'hook_fix_optimize_press_theme_update',
- ),
- 99
- );
- }
- }
-
- remove_filter( 'pre_site_transient_update_themes', array( $this, 'set_cached_update_themes' ), 10 );
- delete_site_transient( 'mainwp_update_themes_cached' ); // fix cached update info.
-
- if ( count( $premiumThemes ) > 0 ) {
- $mwp_premium_updates = apply_filters( 'mwp_premium_perform_update', array() );
- $mwp_premium_updates_todo = array();
- $mwp_premium_updates_todo_slugs = array();
- if ( is_array( $premiumThemes ) && is_array( $mwp_premium_updates ) ) {
- foreach ( $premiumThemes as $premiumTheme ) {
- foreach ( $mwp_premium_updates as $key => $update ) {
- $slug = ( isset( $update['slug'] ) ? $update['slug'] : $update['Name'] );
- if ( 0 === strcmp( $slug, $premiumTheme ) ) {
- $mwp_premium_updates_todo[ $key ] = $update;
- $mwp_premium_updates_todo_slugs[] = $slug;
- }
- }
- }
- }
- unset( $mwp_premium_updates );
-
- $premiumUpgrader = new \Theme_Upgrader( new \Bulk_Theme_Upgrader_Skin( compact( 'nonce', 'url' ) ) );
- }
- if ( count( $themes ) <= 0 && count( $premiumThemes ) <= 0 ) {
- MainWP_Helper::error( __( 'Invalid request!', 'mainwp-child' ) );
- }
-
- if ( null !== $this->filterFunction ) {
- remove_filter( 'pre_site_transient_update_themes', $this->filterFunction, 99 );
- }
- }
-
+
public function upgrade_get_theme_updates() {
$themeUpdates = get_theme_updates();
$newThemeUpdates = array();
diff --git a/class/class-mainwp-client-report.php b/class/class-mainwp-client-report.php
index a3e991f..83dcf83 100644
--- a/class/class-mainwp-client-report.php
+++ b/class/class-mainwp-client-report.php
@@ -458,7 +458,7 @@ class MainWP_Client_Report {
return $token_values;
}
- private function get_other_tokens_count( $records, $connector, $context, $action, &$skip_records, &$backups_created_time_to_fix ){
+ private function get_other_tokens_count( $records, $connector, $context, $action, &$skip_records, &$backups_created_time_to_fix ){ // phpcs:ignore -- ignore complex method notice.
$count = 0;
foreach ( $records as $record ) {
@@ -585,7 +585,7 @@ class MainWP_Client_Report {
return $this->get_section_loop_records( $records, $tokens, $connector, $context, $action, $skip_records );
}
- public function get_section_loop_records( $records, $tokens, $connector, $context, $action, $skip_records ) {
+ public function get_section_loop_records( $records, $tokens, $connector, $context, $action, $skip_records ) { // phpcs:ignore -- ignore complex method notice.
$loops = array();
$loop_count = 0;
@@ -687,7 +687,7 @@ class MainWP_Client_Report {
$data = 'roles';
}
- $tok_value = $this->get_section_loop_token_value( $record, $data, $context, $token );
+ $tok_value = $this->get_section_token_value( $record, $data, $context, $token );
$token_values[ $token ] = $tok_value;
@@ -699,7 +699,7 @@ class MainWP_Client_Report {
return $token_values;
}
- public function get_section_loop_token_value( $record, $data, $context, $token ) {
+ public function get_section_token_value( $record, $data, $context, $token ) { // phpcs:ignore -- ignore complex method notice.
$tok_value = '';
switch ( $data ) {
case 'ID':
diff --git a/class/class-mainwp-custom-post-type.php b/class/class-mainwp-custom-post-type.php
index 293e122..9ea2573 100755
--- a/class/class-mainwp-custom-post-type.php
+++ b/class/class-mainwp-custom-post-type.php
@@ -216,64 +216,24 @@ class MainWP_Custom_Post_Type {
// Insert post meta.
if ( ! empty( $data['postmeta'] ) && is_array( $data['postmeta'] ) ) {
- foreach ( $data['postmeta'] as $key ) {
- if ( isset( $key['meta_key'] ) && isset( $key['meta_value'] ) ) {
- if ( $is_woocomerce ) {
- if ( '_sku' == $key['meta_key'] ) {
- if ( ! wc_product_has_unique_sku( $post_id, $key['meta_value'] ) ) {
- return array( 'error' => __( 'Product SKU must be unique', $this->plugin_translate ) );
- }
- }
-
- if ( '_product_image_gallery' == $key['meta_key'] ) {
- $product_image_gallery = array();
- if ( isset( $data['extras']['woocommerce']['product_images'] ) ) {
- foreach ( $data['extras']['woocommerce']['product_images'] as $product_image ) {
- try {
- $upload_featured_image = MainWP_Utility::upload_image( $product_image, array(), $check_image_existed );
-
- if ( null !== $upload_featured_image ) {
- $product_image_gallery[] = $upload_featured_image['id'];
- } else {
- return array( 'error' => __( 'Cannot add product image', $this->plugin_translate ) );
- }
- } catch ( \Exception $e ) {
- continue;
- }
- }
- $key['meta_value'] = implode( $product_image_gallery, ',' );
- } else {
- continue;
- }
- }
- }
-
- if ( '_thumbnail_id' == $key['meta_key'] ) {
- if ( isset( $data['extras']['featured_image'] ) ) {
- try {
- $upload_featured_image = MainWP_Utility::upload_image( $data['extras']['featured_image'], array(), $check_image_existed );
-
- if ( null !== $upload_featured_image ) {
- $key['meta_value'] = $upload_featured_image['id'];
- } else {
- return array( 'error' => __( 'Cannot add featured image', $this->plugin_translate ) );
- }
- } catch ( \Exception $e ) {
- continue;
- }
- } else {
- continue;
- }
- }
-
- $meta_value = maybe_unserialize( $key['meta_value'] );
- if ( add_post_meta( $post_id, $key['meta_key'], $meta_value ) === false ) {
- return array( 'error' => __( 'Error when adding post meta', $this->plugin_translate ) . ' `' . esc_html( $key['meta_key'] ) . '`' );
- }
- }
- }
+ $ret = $this->insert_postmeta( $post_id, $data, $check_image_existed, $is_woocomerce );
+ if ( true !== $ret )
+ return $ret;
}
+
+ $ret = $this->insert_custom_data( $post_id, $data );
+
+ if ( true !== $ret )
+ return $ret;
+ return array(
+ 'success' => 1,
+ 'post_id' => $post_id,
+ );
+ }
+
+ private function insert_custom_data( $post_id, $data ){
+
// MainWP Categories.
if ( ! empty( $data['categories'] ) && is_array( $data['categories'] ) ) {
// Contains wp_create_categories.
@@ -331,10 +291,66 @@ class MainWP_Custom_Post_Type {
}
}
}
+ return true;
+ }
+
+ private function insert_postmeta( $post_id, $data, $check_image_existed, $is_woocomerce ){
+ foreach ( $data['postmeta'] as $key ) {
+ if ( isset( $key['meta_key'] ) && isset( $key['meta_value'] ) ) {
+ if ( $is_woocomerce ) {
+ if ( '_sku' == $key['meta_key'] ) {
+ if ( ! wc_product_has_unique_sku( $post_id, $key['meta_value'] ) ) {
+ return array( 'error' => __( 'Product SKU must be unique', $this->plugin_translate ) );
+ }
+ }
- return array(
- 'success' => 1,
- 'post_id' => $post_id,
- );
+ if ( '_product_image_gallery' == $key['meta_key'] ) {
+ $product_image_gallery = array();
+ if ( isset( $data['extras']['woocommerce']['product_images'] ) ) {
+ foreach ( $data['extras']['woocommerce']['product_images'] as $product_image ) {
+ try {
+ $upload_featured_image = MainWP_Utility::upload_image( $product_image, array(), $check_image_existed );
+
+ if ( null !== $upload_featured_image ) {
+ $product_image_gallery[] = $upload_featured_image['id'];
+ } else {
+ return array( 'error' => __( 'Cannot add product image', $this->plugin_translate ) );
+ }
+ } catch ( \Exception $e ) {
+ continue;
+ }
+ }
+ $key['meta_value'] = implode( $product_image_gallery, ',' );
+ } else {
+ continue;
+ }
+ }
+ }
+
+ if ( '_thumbnail_id' == $key['meta_key'] ) {
+ if ( isset( $data['extras']['featured_image'] ) ) {
+ try {
+ $upload_featured_image = MainWP_Utility::upload_image( $data['extras']['featured_image'], array(), $check_image_existed );
+
+ if ( null !== $upload_featured_image ) {
+ $key['meta_value'] = $upload_featured_image['id'];
+ } else {
+ return array( 'error' => __( 'Cannot add featured image', $this->plugin_translate ) );
+ }
+ } catch ( \Exception $e ) {
+ continue;
+ }
+ } else {
+ continue;
+ }
+ }
+
+ $meta_value = maybe_unserialize( $key['meta_value'] );
+ if ( add_post_meta( $post_id, $key['meta_key'], $meta_value ) === false ) {
+ return array( 'error' => __( 'Error when adding post meta', $this->plugin_translate ) . ' `' . esc_html( $key['meta_key'] ) . '`' );
+ }
+ }
+ }
+ return true;
}
}
diff --git a/class/class-tar-archiver.php b/class/class-tar-archiver.php
index 1006009..76b49b8 100644
--- a/class/class-tar-archiver.php
+++ b/class/class-tar-archiver.php
@@ -469,7 +469,7 @@ class Tar_Archiver {
protected $gcCnt = 0;
protected $cnt = 0;
- private function add_file( $path, $entryName ) {
+ private function add_file( $path, $entryName ) { // phpcs:ignore -- ignore complex method notice.
if ( ( '.' == basename( $path ) ) || ( '..' == basename( $path ) ) ) {
return false;
}
@@ -1140,7 +1140,7 @@ class Tar_Archiver {
return false;
}
- public function extract_to( $to ) {
+ public function extract_to( $to ) { // phpcs:ignore -- ignore complex method notice.
/** @var $wp_filesystem WP_Filesystem_Base */
global $wp_filesystem;