Server IP : 192.158.238.246 / Your IP : 18.117.167.132 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/jenniferflocom/public_html/wp-content/plugins/give/src/Log/Migrations/ |
Upload File : |
<?php namespace Give\Log\Migrations; use Give\Framework\Database\DB; use Give\Framework\Migrations\Contracts\Migration; use Give\Log\Helpers\LegacyLogsTable; use Give\Log\Helpers\LogTypeHelper; use Give\Log\LogFactory; use Give_Updates; class MigrateExistingLogs extends Migration { /** * @var LogTypeHelper */ private $logTypeHelper; /** * @var LegacyLogsTable */ private $legacyLogsTable; /** * MigrateExistingLogs constructor. * * @param LogTypeHelper $logTypeHelper * @param LegacyLogsTable $legacyLogsTable */ public function __construct( LogTypeHelper $logTypeHelper, LegacyLogsTable $legacyLogsTable ) { $this->logTypeHelper = $logTypeHelper; $this->legacyLogsTable = $legacyLogsTable; } /** * Register background update. * * @since 2.10.0 * * @param Give_Updates $give_updates * */ public function register($give_updates) { $give_updates->register( [ 'id' => self::id(), 'version' => '2.10.0', 'callback' => [$this, 'run'], ] ); } /** * @return string */ public static function id() { return 'migrate_existing_logs'; } /** * @return string */ public static function title() { return esc_html__('Migrate existing logs to give_log table', 'give'); } /** * @return int */ public static function timestamp() { return strtotime('2021-01-28 13:00'); } /** * @inheritDoc * * @since 2.21.2 Migration should complete when log table does not exist. */ public function run() { global $wpdb; // Check if legacy table exist if ( ! $this->legacyLogsTable->exist()) { give_set_upgrade_complete(self::id()); return; } $logs_table = "{$wpdb->prefix}give_logs"; $logmeta_table = "{$wpdb->prefix}give_logmeta"; $give_updates = Give_Updates::get_instance(); $perBatch = 500; $offset = ($give_updates->step - 1) * $perBatch; $result = DB::get_results( DB::prepare( "SELECT * FROM {$logs_table} LIMIT %d OFFSET %d", $perBatch, $offset ) ); $totalLogs = DB::get_var("SELECT COUNT(id) FROM {$logs_table}"); if ($result) { $give_updates->set_percentage( $totalLogs, $give_updates->step * $perBatch ); foreach ($result as $log) { $context = []; // Add old data as a context $context['log_date'] = $log->log_date; $context['log_content'] = $log->log_content; // Get old log meta $logsMeta = DB::get_results( DB::prepare("SELECT * FROM {$logmeta_table} WHERE log_id = %d", $log->ID) ); if ($logsMeta) { foreach ($logsMeta as $logMeta) { $context[$logMeta->meta_key] = $logMeta->meta_value; } } // Get new type and category $data = $this->logTypeHelper->getDataFromType($log->log_type); try { LogFactory::make( $data['type'], $log->log_title, $data['category'], 'Log Migration', $context )->save(); } catch (\Exception $exception) { $give_updates->__pause_db_update(true); update_option('give_upgrade_error', 1, false); } } } else { give_set_upgrade_complete(self::id()); } } }