PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.4
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.4
4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 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.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / vendor / woocommerce / action-scheduler / classes / migration / BatchFetcher.php
surecart / vendor / woocommerce / action-scheduler / classes / migration Last commit date
ActionMigrator.php 1 year ago ActionScheduler_DBStoreMigrator.php 1 year ago BatchFetcher.php 3 years ago Config.php 3 years ago Controller.php 3 years ago DryRun_ActionMigrator.php 3 years ago DryRun_LogMigrator.php 3 years ago LogMigrator.php 3 years ago Runner.php 3 years ago Scheduler.php 3 years ago
BatchFetcher.php
86 lines
1 <?php
2
3
4 namespace Action_Scheduler\Migration;
5
6
7 use ActionScheduler_Store as Store;
8
9 /**
10 * Class BatchFetcher
11 *
12 * @package Action_Scheduler\Migration
13 *
14 * @since 3.0.0
15 *
16 * @codeCoverageIgnore
17 */
18 class BatchFetcher {
19 /** var ActionScheduler_Store */
20 private $store;
21
22 /**
23 * BatchFetcher constructor.
24 *
25 * @param ActionScheduler_Store $source_store Source store object.
26 */
27 public function __construct( Store $source_store ) {
28 $this->store = $source_store;
29 }
30
31 /**
32 * Retrieve a list of actions.
33 *
34 * @param int $count The number of actions to retrieve
35 *
36 * @return int[] A list of action IDs
37 */
38 public function fetch( $count = 10 ) {
39 foreach ( $this->get_query_strategies( $count ) as $query ) {
40 $action_ids = $this->store->query_actions( $query );
41 if ( ! empty( $action_ids ) ) {
42 return $action_ids;
43 }
44 }
45
46 return [];
47 }
48
49 /**
50 * Generate a list of prioritized of action search parameters.
51 *
52 * @param int $count Number of actions to find.
53 *
54 * @return array
55 */
56 private function get_query_strategies( $count ) {
57 $now = as_get_datetime_object();
58 $args = [
59 'date' => $now,
60 'per_page' => $count,
61 'offset' => 0,
62 'orderby' => 'date',
63 'order' => 'ASC',
64 ];
65
66 $priorities = [
67 Store::STATUS_PENDING,
68 Store::STATUS_FAILED,
69 Store::STATUS_CANCELED,
70 Store::STATUS_COMPLETE,
71 Store::STATUS_RUNNING,
72 '', // any other unanticipated status
73 ];
74
75 foreach ( $priorities as $status ) {
76 yield wp_parse_args( [
77 'status' => $status,
78 'date_compare' => '<=',
79 ], $args );
80 yield wp_parse_args( [
81 'status' => $status,
82 'date_compare' => '>=',
83 ], $args );
84 }
85 }
86 }