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