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