BossBey File Manager
PHP:
8.2.30
OS:
Linux
User:
imagivibe
Root
/
home
/
imagivibe
/
www
/
wp-content
/
plugins
/
robin-image-optimizer
/
admin
/
ajax
📤 Upload
📝 New File
📁 New Folder
Close
Editing: meta-migrations.php
<?php /** * Ajax action to migrate old architecture based on post meta into new table. * * @see RIO_Process_Queue for further information. * * @version 1.0 */ // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) { exit; } add_action( 'wp_ajax_wrio_meta_migrations', 'wbcr_rio_migrate_postmeta_to_process_queue' ); /** * Migrating postmeta to newly created table. * * @since 1.3.0 * @see RIO_Process_Queue as referce for new table. */ function wbcr_rio_migrate_postmeta_to_process_queue() { global $wpdb; check_admin_referer( 'wrio-meta-migrations' ); if ( ! current_user_can( 'manage_options' ) ) { wp_die( - 1 ); } $error = (int) WRIO_Plugin::app()->request->post( 'error', 0 ); if ( $error ) { WRIO_Plugin::app()->logger->error( 'Previous migration was not completed due to an error.' ); } $limit = (int) WRIO_Plugin::app()->request->post( 'limit', 150 ); $processed_items = 0; WRIO_Plugin::app()->logger->info( 'Start meta migration. Limit ' . $limit ); WRIO_Plugin::app()->logger->memory_usage(); $attachments = wbcr_rio_get_meta_to_migrate(); if ( isset( $attachments->posts ) && ( $attachments_total = count( $attachments->posts ) ) > 0 ) { if ( $attachments_total < $limit ) { $limit = $attachments_total; } WRIO_Plugin::app()->logger->info( 'Finded ' . $attachments_total . ' attachments for migration.' ); if ( function_exists( 'wp_raise_memory_limit' ) ) { wp_raise_memory_limit( 'image' ); } WRIO_Plugin::app()->logger->memory_usage(); /** * @var WP_Post $attachment */ for ( $i = 0; $i < $limit; $i++ ) { $attachment = $attachments->posts[ $i ]; $post_meta = get_post_custom( $attachment->ID ); $extra_data = new RIO_Attachment_Extra_Data(); $is_backed_up = false; $original_size = 0; $final_size = 0; if ( isset( $post_meta['wio_backuped'][0] ) && $post_meta['wio_backuped'][0] ) { $is_backed_up = true; } if ( isset( $post_meta['wio_thumbnails_count'][0] ) ) { $extra_data->set_thumbnails_count( intval( $post_meta['wio_thumbnails_count'][0] ) ); } if ( isset( $post_meta['wio_original_size'][0] ) ) { $original_size = intval( $post_meta['wio_original_size'][0] ); } if ( isset( $post_meta['wio_optimized_size'][0] ) ) { $final_size = intval( $post_meta['wio_optimized_size'][0] ); } if ( isset( $post_meta['wio_original_main_size'][0] ) ) { $extra_data->set_original_main_size( intval( $post_meta['wio_original_main_size'][0] ) ); } if ( isset( $post_meta['wio_error'][0] ) ) { $extra_data->set_error( 'optimization' ); $extra_data->set_error_msg( $post_meta['wio_error'][0] ); } $level = 'normal'; if ( isset( $post_meta['wio_optimization_level'][0] ) && ! empty( $post_meta['wio_optimization_level'][0] ) ) { $level = $post_meta['wio_optimization_level'][0]; } $data = [ 'server_id' => null, 'object_id' => $attachment->ID, 'object_name' => $wpdb->posts, 'item_type' => 'attachment', 'result_status' => ! $final_size ? 'error' : 'success', 'processing_level' => $level, 'is_backed_up' => $is_backed_up, 'original_size' => $original_size, 'final_size' => $final_size, 'original_mime_type' => $attachment->post_mime_type, 'final_mime_type' => $attachment->post_mime_type, 'extra_data' => (string) $extra_data, 'created_at' => time(), ]; $format = [ '%s', '%d', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%s', '%s', '%s', '%d', ]; $rows_inserted = $wpdb->insert( RIO_Process_Queue::table_name(), $data, $format ); if ( $rows_inserted > 0 ) { ++$processed_items; $attachment_id = absint( $attachment->ID ); $wpdb->query( "DELETE FROM {$wpdb->postmeta} WHERE post_id='{$attachment_id}' AND meta_key LIKE 'wio_%'" ); } } $left_items = $attachments_total - $processed_items; // translators: %s is the number of items left to migrate $message = sprintf( __( 'left to migrate: %s items', 'robin-image-optimizer' ), $left_items ); $need_more_time = true; WRIO_Plugin::app()->logger->info( 'Succefull migrated ' . $processed_items . ' items.' ); } else { WRIO_Plugin::app()->logger->info( 'Succefull migrated all items. Finishing-up...' ); // Assumed to be 2 after 010105.php migration RIO_Process_Queue::update_db_version( 2 ); $need_more_time = false; $message = __( 'Finishing-up...', 'robin-image-optimizer' ); } WRIO_Plugin::app()->logger->memory_usage(); wp_send_json_success( [ 'need_more_time' => $need_more_time, 'message' => $message, ] ); }
Save
Cancel