PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.18.0
GiveWP – Donation Plugin and Fundraising Platform v2.18.0
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 / Revenue / Migrations / AddPastDonationsToRevenueTable.php
give / src / Revenue / Migrations Last commit date
AddPastDonationsToRevenueTable.php 4 years ago CreateRevenueTable.php 4 years ago RemoveRevenueForeignKeys.php 4 years ago
AddPastDonationsToRevenueTable.php
127 lines
1 <?php
2
3 namespace Give\Revenue\Migrations;
4
5 use Exception;
6 use Give\Framework\Migrations\Contracts\Migration;
7 use Give\Log\Log;
8 use Give\Revenue\Repositories\Revenue;
9 use Give\ValueObjects\Money;
10 use Give_Updates;
11 use WP_Query;
12
13 /**
14 * Class AddPastDonationToRevenueTable
15 *
16 * Use this table to migrated past donations data to revenue table.
17 * This data migration will perform in background.
18 *
19 * @package Give\Revenue\Migrations
20 *
21 * @since 2.9.0
22 */
23 class AddPastDonationsToRevenueTable extends Migration
24 {
25 /**
26 * Register background update.
27 *
28 * @since 2.9.0
29 *
30 * @param Give_Updates $give_updates
31 *
32 */
33 public function register($give_updates)
34 {
35 $give_updates->register(
36 [
37 'id' => self::id(),
38 'version' => '2.9.0',
39 'callback' => [$this, 'run'],
40 ]
41 );
42 }
43
44 /**
45 * @inheritdoc
46 */
47 public function run()
48 {
49 global $post;
50
51 /* @var Revenue $revenueRepository */
52 $revenueRepository = give(Revenue::class);
53 $give_updates = Give_Updates::get_instance();
54
55 $donations = new WP_Query(
56 [
57 'paged' => $give_updates->step,
58 'status' => 'any',
59 'order' => 'ASC',
60 'post_type' => ['give_payment'],
61 'posts_per_page' => 100,
62 ]
63 );
64
65 if ($donations->have_posts()) {
66 $give_updates->set_percentage($donations->found_posts, $give_updates->step * 100);
67
68 while ($donations->have_posts()) {
69 $donations->the_post();
70
71 if ($revenueRepository->isDonationExist($post->ID)) {
72 continue;
73 }
74
75 if ( ! ($amount = give()->payment_meta->get_meta($post->ID, '_give_cs_base_amount', true))) {
76 $amount = give_donation_amount($post->ID);
77 }
78
79 $revenueData = [
80 'donation_id' => $post->ID,
81 'form_id' => give_get_payment_form_id($post->ID),
82 'amount' => Money::of($amount, give_get_option('currency'))->getMinorAmount(),
83 ];
84
85 try {
86 $revenueRepository->insert($revenueData);
87 } catch (Exception $e) {
88 $give_updates->__pause_db_update(true);
89 update_option('give_upgrade_error', 1, false);
90
91 Log::error(
92 esc_html__('An error occurred inserting data into the revenue table', 'give'),
93 [
94 'source' => 'Revenue Migration',
95 'Data' => $revenueData,
96 'Error' => $e->getMessage(),
97 ]
98 );
99
100 wp_die();
101 }
102 }
103
104 wp_reset_postdata();
105 } else {
106 // Update Ran Successfully.
107 give_set_upgrade_complete(self::id());
108 }
109 }
110
111 /**
112 * @inheritdoc
113 */
114 public static function id()
115 {
116 return 'add-past-donation-data-to-revenue-table';
117 }
118
119 /**
120 * @inheritdoc
121 */
122 public static function timestamp()
123 {
124 return strtotime('2019-09-24');
125 }
126 }
127