PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.7.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.7.1
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 / app / src / Models / Collection.php
surecart / app / src / Models Last commit date
Blocks 1 year ago Concerns 1 year ago Traits 1 year ago AbandonedCheckout.php 1 year ago AbandonedCheckoutProtocol.php 3 years ago Account.php 3 years ago AccountPortalSession.php 3 years ago Activation.php 1 year ago Affiliation.php 1 year ago AffiliationProduct.php 1 year ago AffiliationProtocol.php 2 years ago AffiliationRequest.php 1 year ago ApiToken.php 3 years ago BalanceTransaction.php 1 year ago Brand.php 3 years ago BulkAction.php 2 years ago Bump.php 1 year ago BuyLink.php 2 years ago CancellationAct.php 1 year ago CancellationReason.php 3 years ago Charge.php 1 year ago Checkout.php 1 year ago Click.php 1 year ago Collection.php 2 years ago CommissionStructure.php 2 years ago Component.php 3 years ago Coupon.php 1 year ago Customer.php 1 year ago CustomerLink.php 3 years ago CustomerNotificationProtocol.php 3 years ago CustomerPortalProtocol.php 1 year ago DatabaseModel.php 1 year ago Discount.php 1 year ago DisplayCurrency.php 1 year ago Download.php 3 years ago Event.php 3 years ago Export.php 2 years ago ExternalApiModel.php 1 year ago Fee.php 1 year ago Form.php 3 years ago Fulfillment.php 1 year ago FulfillmentItem.php 1 year ago GalleryItem.php 1 year ago GalleryItemAttachment.php 1 year ago GalleryItemMedia.php 1 year ago GalleryItemProductMedia.php 1 year ago IncomingWebhook.php 1 year ago Integration.php 2 years ago IntegrationCatalog.php 1 year ago Invoice.php 1 year ago License.php 1 year ago LineItem.php 1 year ago ManualPaymentMethod.php 1 year ago Media.php 1 year ago Model.php 1 year ago ModelInterface.php 3 years ago Order.php 1 year ago OrderProtocol.php 3 years ago PaymentFailure.php 1 year ago PaymentInstrument.php 1 year ago PaymentIntent.php 1 year ago PaymentMethod.php 1 year ago Payout.php 1 year ago PayoutGroup.php 2 years ago Period.php 1 year ago PlatformFee.php 1 year ago PortalSession.php 3 years ago Price.php 1 year ago Processor.php 1 year ago Product.php 1 year ago ProductCollection.php 1 year ago ProductGroup.php 1 year ago ProductMedia.php 1 year ago Promotion.php 1 year ago ProvisionalAccount.php 2 years ago Purchase.php 2 years ago Referral.php 1 year ago ReferralItem.php 2 years ago Refund.php 1 year ago RefundItem.php 1 year ago RegisteredWebhook.php 2 years ago ReturnItem.php 2 years ago ReturnReason.php 2 years ago ReturnRequest.php 1 year ago ServiceFee.php 1 year ago ShippingChoice.php 1 year ago ShippingMethod.php 3 years ago ShippingProfile.php 3 years ago ShippingProtocol.php 3 years ago ShippingRate.php 3 years ago ShippingZone.php 3 years ago Statistic.php 3 years ago Subscription.php 1 year ago SubscriptionProtocol.php 3 years ago TaxOverride.php 2 years ago TaxProtocol.php 3 years ago TaxRegistration.php 1 year ago TaxZone.php 3 years ago Upload.php 3 years ago Upsell.php 1 year ago UpsellFunnel.php 1 year ago User.php 2 years ago Variant.php 1 year ago VariantOption.php 2 years ago VariantOptionValue.php 1 year ago VariantValue.php 2 years ago VerificationCode.php 3 years ago Webhook.php 1 year ago WebhookRegistration.php 2 years ago
Collection.php
169 lines
1 <?php
2 namespace SureCart\Models;
3
4 /**
5 * Stores a collection of items.
6 */
7 class Collection {
8 /**
9 * Keeps track of booted models
10 *
11 * @var array
12 */
13 protected static $booted = [];
14
15 /**
16 * Stores the collection data
17 *
18 * @var StdClass
19 */
20 protected $attributes;
21
22 /**
23 * Model constructor
24 *
25 * @param object $collection Optional attributes.
26 */
27 public function __construct( $collection ) {
28 $this->attributes = (object) $collection;
29 }
30
31 /**
32 * Get the called class name
33 *
34 * @return string
35 */
36 public static function getCalledClassName() {
37 return str_replace( '\\', '_', get_called_class() );
38 }
39
40 /**
41 * Get the total.
42 *
43 * @return string
44 */
45 public function total() {
46 return $this->pagination->count ?? 0;
47 }
48
49 /**
50 * Get the total pages.
51 *
52 * @return string
53 */
54 public function totalPages() {
55 return ceil( ( $this->pagination->count ?? 0 ) / ( $this->pagination->limit ?? 1 ) );
56 }
57
58 /**
59 * Does this collection have a next page?
60 *
61 * @return boolean
62 */
63 public function hasNextPage() {
64 $seen = $this->pagination->page * $this->pagination->limit;
65 return $this->pagination->count > $seen;
66 }
67
68 /**
69 * Does this collection have a previous page?
70 *
71 * @return boolean
72 */
73 public function hasPreviousPage() {
74 return $this->pagination->page > 1;
75 }
76
77 /**
78 * Get a specific attribute
79 *
80 * @param string $key Attribute name.
81 *
82 * @return mixed
83 */
84 public function getAttribute( $key ) {
85 $attribute = null;
86
87 if ( $this->hasAttribute( $key ) ) {
88 $attribute = $this->attributes->$key;
89 }
90
91 return $attribute;
92 }
93
94 /**
95 * Does it have the attribute
96 *
97 * @param string $key Attribute key.
98 *
99 * @return boolean
100 */
101 public function hasAttribute( $key ) {
102 return property_exists( $this->attributes, $key );
103 }
104
105 /**
106 * Get the attribute
107 *
108 * @param string $key Attribute name.
109 *
110 * @return mixed
111 */
112 public function __get( $key ) {
113 return $this->getAttribute( $key );
114 }
115
116 /**
117 * Set the attribute
118 *
119 * @param string $key Attribute name.
120 * @param mixed $value Value of attribute.
121 *
122 * @return void
123 */
124 public function __set( $key, $value ) {
125 $this->setAttribute( $key, $value );
126 }
127
128 /**
129 * Determine if the given attribute exists.
130 *
131 * @param mixed $offset Name.
132 * @return bool
133 */
134 public function offsetExists( $offset ) {
135 return ! is_null( $this->getAttribute( $offset ) );
136 }
137
138 /**
139 * Get the value for a given offset.
140 *
141 * @param mixed $offset Name.
142 * @return mixed
143 */
144 public function offsetGet( $offset ) {
145 return $this->getAttribute( $offset );
146 }
147
148 /**
149 * Set the value for a given offset.
150 *
151 * @param mixed $offset Name.
152 * @param mixed $value Value.
153 * @return void
154 */
155 public function offsetSet( $offset, $value ) {
156 $this->setAttribute( $offset, $value );
157 }
158
159 /**
160 * Forward call to method
161 *
162 * @param string $method Method to call.
163 * @param mixed $params Method params.
164 */
165 public function __call( $method, $params ) {
166 return call_user_func_array( [ $this, $method ], $params );
167 }
168 }
169