PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.22.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.22.1
4.7.2 4.7.1 4.7.0 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 All 281 releases
surecart / app / src / Models / Period.php
Period.php
71 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SureCart\Models;
4
5 use SureCart\Models\Traits\HasCheckout;
6 use SureCart\Models\Traits\HasPrice;
7 use SureCart\Models\Traits\HasSubscription;
8
9 /**
10 * Period model
11 */
12 class Period extends Model {
13 use HasSubscription, HasCheckout, HasPrice;
14
15 /**
16 * Rest API endpoint
17 *
18 * @var string
19 */
20 protected $endpoint = 'periods';
21
22 /**
23 * Object name
24 *
25 * @var string
26 */
27 protected $object_name = 'period';
28
29 /**
30 * Restore a subscription
31 *
32 * @param string $id Model id.
33 * @return $this|\WP_Error
34 */
35 protected function retryPayment( $id = null ) {
36 if ( $id ) {
37 $this->setAttribute( 'id', $id );
38 }
39
40 if ( $this->fireModelEvent( 'retrying_payment' ) === false ) {
41 return false;
42 }
43
44 if ( empty( $this->attributes['id'] ) ) {
45 return new \WP_Error( 'not_saved', 'Please create the period.' );
46 }
47
48 $restored = \SureCart::request(
49 $this->endpoint . '/' . $this->attributes['id'] . '/retry_payment/',
50 [
51 'method' => 'PATCH',
52 'query' => $this->query,
53 ]
54 );
55
56 if ( is_wp_error( $restored ) ) {
57 return $restored;
58 }
59
60 $this->resetAttributes();
61
62 $this->fill( $restored );
63
64 $this->fireModelEvent( 'payment_retry_success' );
65
66 return $this;
67 }
68
69 }
70
71