give_event_tickets; $eventTicketTypesTable = $wpdb->give_event_ticket_types; $this->addAmountColumn($wpdb, $eventTicketsTable); $this->migrateTicketPrices($wpdb, $eventTicketsTable, $eventTicketTypesTable); } /** * @since 3.20.0 * * @throws DatabaseMigrationException */ private function addAmountColumn($wpdb, $eventTicketsTable) { $sql = "ALTER TABLE $eventTicketsTable ADD COLUMN amount INT UNSIGNED NOT NULL AFTER donation_id"; try { maybe_add_column($eventTicketsTable, 'amount', $sql); } catch (DatabaseQueryException $exception) { throw new DatabaseMigrationException("An error occurred while adding the amount column to the $eventTicketsTable table", 0, $exception); } } /** * @since 3.20.0 * * @throws DatabaseMigrationException */ private function migrateTicketPrices($wpdb, $eventTicketsTable, $eventTicketTypesTable) { $sql = "UPDATE $eventTicketsTable eventTickets JOIN $eventTicketTypesTable evenTicketTypes ON eventTickets.ticket_type_id = evenTicketTypes.id SET eventTickets.amount = evenTicketTypes.price"; try { $wpdb->query($sql); } catch (DatabaseQueryException $exception) { throw new DatabaseMigrationException("An error occurred while migrating data to the amount column in the $eventTicketsTable table", 0, $exception); } } };