PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.24.2
GiveWP – Donation Plugin and Fundraising Platform v2.24.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 / Subscriptions / Migrations / CreateSubscriptionTables.php
give / src / Subscriptions / Migrations Last commit date
AddPaymentModeToSubscriptionTable.php 3 years ago CreateSubscriptionTables.php 4 years ago
CreateSubscriptionTables.php
77 lines
1 <?php
2
3 namespace Give\Subscriptions\Migrations;
4
5 use Give\Framework\Database\DB;
6 use Give\Framework\Database\Exceptions\DatabaseQueryException;
7 use Give\Framework\Migrations\Contracts\Migration;
8 use Give\Framework\Migrations\Exceptions\DatabaseMigrationException;
9
10 class CreateSubscriptionTables extends Migration
11 {
12 public static function id()
13 {
14 return 'create_subscription_tables';
15 }
16
17 public function run()
18 {
19 global $wpdb;
20
21 $charset_collate = $wpdb->get_charset_collate();
22 $subscriptionTableName = "{$wpdb->prefix}give_subscriptions";
23 $metaTableName = "{$wpdb->prefix}give_subscriptionmeta";
24
25 try {
26 DB::delta(
27 "
28 CREATE TABLE `$subscriptionTableName` (
29 `id` bigint(20) NOT NULL AUTO_INCREMENT,
30 `customer_id` bigint(20) NOT NULL,
31 `period` varchar(20) NOT NULL,
32 `frequency` bigint(20) NOT NULL DEFAULT '1',
33 `initial_amount` decimal(18,10) NOT NULL,
34 `recurring_amount` decimal(18,10) NOT NULL,
35 `recurring_fee_amount` decimal(18,10) NOT NULL,
36 `bill_times` bigint(20) NOT NULL,
37 `transaction_id` varchar(60) NOT NULL,
38 `parent_payment_id` bigint(20) NOT NULL,
39 `product_id` bigint(20) NOT NULL,
40 `created` datetime NOT NULL,
41 `expiration` datetime NOT NULL,
42 `status` varchar(20) NOT NULL,
43 `profile_id` varchar(60) NOT NULL,
44 `notes` longtext NOT NULL,
45 PRIMARY KEY (`id`),
46 KEY `profile_id` (`profile_id`),
47 KEY `customer` (`customer_id`),
48 KEY `transaction` (`transaction_id`),
49 KEY `customer_and_status` (`customer_id`,`status`)
50 ) $charset_collate;
51 "
52 );
53
54 DB::delta(
55 "
56 CREATE TABLE `$metaTableName` (
57 `meta_id` bigint(20) NOT NULL AUTO_INCREMENT,
58 `subscription_id` bigint(20) NOT NULL,
59 `meta_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL,
60 `meta_value` longtext COLLATE utf8mb4_unicode_520_ci,
61 PRIMARY KEY (`meta_id`),
62 KEY `subscription_id` (`subscription_id`),
63 KEY `meta_key` (`meta_key`(191))
64 ) $charset_collate;
65 "
66 );
67 } catch (DatabaseQueryException $exception) {
68 throw new DatabaseMigrationException('An error occurred creating the subscription tables', 0, $exception);
69 }
70 }
71
72 public static function timestamp()
73 {
74 return strtotime('2022-03-30');
75 }
76 }
77