PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.8.4
Independent Analytics – WordPress Analytics Plugin v2.8.4
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / Ecommerce / SureCart_Cron_Job.php
independent-analytics / IAWP / Ecommerce Last commit date
SureCart_Cron_Job.php 1 year ago SureCart_Order.php 1 year ago SureCart_Store.php 1 year ago WooCommerce_Order.php 1 year ago WooCommerce_Referrer_Meta_Box.php 1 year ago WooCommerce_Status_Manager.php 1 year ago
SureCart_Cron_Job.php
58 lines
1 <?php
2
3 namespace IAWP\Ecommerce;
4
5 use IAWP\Cron_Job;
6 use IAWPSCOPED\Illuminate\Support\Collection;
7 /** @internal */
8 class SureCart_Cron_Job extends Cron_Job
9 {
10 protected $name = 'iawp_surecart_event_syncing';
11 protected $interval = 'five_minutes';
12 public function should_execute_handler() : bool
13 {
14 return \IAWPSCOPED\iawp()->is_surecart_support_enabled();
15 }
16 public function handle() : void
17 {
18 $last_seen_event_at = \get_option('iawp_last_seen_surecart_event_at', \time());
19 $events = new Collection();
20 $page = 1;
21 while (\true) {
22 // If an event is older than the last one we've seen, then we have all the events we need
23 if ($events->isNotEmpty() && $events->last()->created_at < $last_seen_event_at) {
24 break;
25 }
26 if (!\class_exists('\\SureCart\\Models\\Event')) {
27 break;
28 }
29 $page_of_events = \SureCart\Models\Event::where(['type' => ['refund.succeeded', 'purchase.created'], 'limit' => 100, 'page' => $page])->get();
30 if (\is_wp_error($page_of_events) || \count($page_of_events) === 0) {
31 break;
32 }
33 $events = $events->concat($page_of_events);
34 $page = $page + 1;
35 }
36 if ($events->isNotEmpty()) {
37 \update_option('iawp_last_seen_surecart_event_at', $events->first()->created_at);
38 }
39 $events = $events->filter(function ($event) use($last_seen_event_at) {
40 return $event->created_at > $last_seen_event_at;
41 });
42 $events->filter(function ($event) {
43 return $event->type === 'refund.succeeded';
44 })->map(function ($event) {
45 return $event->data->object->charge;
46 })->unique()->each(function ($charge_id) {
47 \IAWP\Ecommerce\SureCart_Order::update_order_using_charge_id($charge_id);
48 });
49 $events->filter(function ($event) {
50 return $event->type === 'purchase.created';
51 })->map(function ($event) {
52 return $event->data->object->initial_order;
53 })->unique()->each(function ($order_id) {
54 \IAWP\Ecommerce\SureCart_Order::update_order_using_order_id($order_id);
55 });
56 }
57 }
58