AP_Update_Helper::migrate_reputations()
Description #
Migrate migration data to new table.
Source #
File: admin/update.php
public function migrate_reputations() { $tasks = $this->get_tasks(); if ( $tasks['reputations'] ) { return; } global $wpdb; if ( ! $this->meta_table_exists ) { $options = get_option( 'anspress_updates', [] ); $options['reputations'] = true; update_option( 'anspress_updates', $options ); $this->send( true, 'reputations', __( 'Successfully migrated all reputations', 'anspress-question-answer' ), true ); } global $wpdb; $old_reputations = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}ap_meta WHERE apmeta_type = 'reputation' LIMIT 200" ); // DB call okay, Db cache okay. $total_reputations = $wpdb->get_var( 'SELECT FOUND_ROWS()' ); // DB call okay, Db cache okay. $fetched = $wpdb->num_rows; if ( empty( $old_reputations ) ) { $options = get_option( 'anspress_updates', [] ); $options['reputations'] = true; update_option( 'anspress_updates', $options ); $this->send( true, 'reputations', __( 'Successfully migrated all reputations', 'anspress-question-answer' ), true ); } $apmeta_to_delete = []; foreach ( (array) $old_reputations as $rep ) { $event = $this->replace_old_reputation_event( $rep->apmeta_param ); ap_insert_reputation( $event, $rep->apmeta_actionid, $rep->apmeta_userid ); $apmeta_to_delete[] = $rep->apmeta_id; // Delete user meta. delete_user_meta( $rep->apmeta_userid, 'ap_reputation' ); // @codingStandardsIgnoreLine. } // Delete all migrated data. $apmeta_to_delete = sanitize_comma_delimited( $apmeta_to_delete, 'int' ); $wpdb->query( "DELETE FROM {$wpdb->prefix}ap_meta WHERE apmeta_id IN ({$apmeta_to_delete})" ); // DB call okay, Db cache okay. $this->send( true, 'reputations', sprintf( __( 'Migrated reputation... %1$d out of %2$d', 'anspress-question-answer' ), $fetched, $total_reputations ), true ); }
Expand full source code Collapse full source code View on GitHub: admin/update.php:326
Add your comment