PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.14.2
GiveWP – Donation Plugin and Fundraising Platform v4.14.2
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / EventTickets / Migrations / AddAmountColumnToEventTicketsTable.php
give / src / EventTickets / Migrations Last commit date
AddAmountColumnToEventTicketsTable.php 1 year ago CreateEventTicketTypesTable.php 2 years ago CreateEventTicketsTable.php 2 years ago CreateEventsTable.php 2 years ago
AddAmountColumnToEventTicketsTable.php
96 lines
1 <?php
2
3 namespace Give\EventTickets\Migrations;
4
5 use Give\Framework\Database\Exceptions\DatabaseQueryException;
6 use Give\Framework\Migrations\Contracts\Migration;
7 use Give\Framework\Migrations\Exceptions\DatabaseMigrationException;
8
9 /**
10 * @since 3.20.0
11 */
12 class AddAmountColumnToEventTicketsTable extends Migration
13 {
14 /**
15 * @inheritdoc
16 *
17 * @since 3.20.0
18 */
19 public static function id()
20 {
21 return 'give-events-add-amount-column-to-events-tickets-table';
22 }
23
24 /**
25 * @since 3.20.0
26 */
27 public static function title()
28 {
29 return 'Add "amount" column to give_event_tickets table';
30 }
31
32 /**
33 * @inheritdoc
34 *
35 * @since 3.20.0
36 */
37 public static function timestamp()
38 {
39 return strtotime('2022-03-18 12:00:00');
40 }
41
42 /**
43 * @inheritdoc
44 *
45 * @since 3.20.0
46 *
47 * @throws DatabaseMigrationException
48 */
49 public function run()
50 {
51 global $wpdb;
52
53 $eventTicketsTable = $wpdb->give_event_tickets;
54 $eventTicketTypesTable = $wpdb->give_event_ticket_types;
55
56 $this->addAmountColumn($wpdb, $eventTicketsTable);
57 $this->migrateTicketPrices($wpdb, $eventTicketsTable, $eventTicketTypesTable);
58 }
59
60 /**
61 * @since 3.20.0
62 *
63 * @throws DatabaseMigrationException
64 */
65 private function addAmountColumn($wpdb, $eventTicketsTable)
66 {
67 $sql = "ALTER TABLE $eventTicketsTable
68 ADD COLUMN amount INT UNSIGNED NOT NULL AFTER donation_id";
69
70 try {
71 maybe_add_column($eventTicketsTable, 'amount', $sql);
72 } catch (DatabaseQueryException $exception) {
73 throw new DatabaseMigrationException("An error occurred while adding the amount column to the $eventTicketsTable table", 0, $exception);
74 }
75 }
76
77 /**
78 * @since 3.20.0
79 *
80 * @throws DatabaseMigrationException
81 */
82 private function migrateTicketPrices($wpdb, $eventTicketsTable, $eventTicketTypesTable)
83 {
84 $sql = "UPDATE $eventTicketsTable eventTickets
85 JOIN $eventTicketTypesTable evenTicketTypes
86 ON eventTickets.ticket_type_id = evenTicketTypes.id
87 SET eventTickets.amount = evenTicketTypes.price";
88
89 try {
90 $wpdb->query($sql);
91 } catch (DatabaseQueryException $exception) {
92 throw new DatabaseMigrationException("An error occurred while migrating data to the amount column in the $eventTicketsTable table", 0, $exception);
93 }
94 }
95 };
96