PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.2.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.2.0
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 / Checkout.php

Checkout.php in SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments 1.2.0, at app/src/Models/Checkout.php

103 lines 2.1 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\HasCustomer;
6 use SureCart\Models\Traits\HasSubscriptions;
7 use SureCart\Models\LineItem;
8 use SureCart\Models\Traits\CanFinalize;
9 use SureCart\Models\Traits\HasDiscount;
10 use SureCart\Models\Traits\HasPaymentIntent;
11 use SureCart\Models\Traits\HasPaymentMethod;
12 use SureCart\Models\Traits\HasProcessorType;
13 use SureCart\Models\Traits\HasPurchases;
14 use SureCart\Models\Traits\HasShippingAddress;
15
16 /**
17 * Order model
18 */
19 class Checkout extends Model {
20 use HasCustomer,
21 HasSubscriptions,
22 HasDiscount,
23 HasShippingAddress,
24 HasPaymentIntent,
25 HasPaymentMethod,
26 HasPurchases,
27 CanFinalize,
28 HasProcessorType;
29
30 /**
31 * Rest API endpoint
32 *
33 * @var string
34 */
35 protected $endpoint = 'checkouts';
36
37 /**
38 * Object name
39 *
40 * @var string
41 */
42 protected $object_name = 'checkout';
43
44 /**
45 * Need to pass the processor type on create
46 *
47 * @param array $attributes Optional attributes.
48 * @param string $type stripe, paypal, etc.
49 */
50 public function __construct( $attributes = [], $type = '' ) {
51 $this->processor_type = $type;
52 parent::__construct( $attributes );
53 }
54
55 /**
56 * Set the product attribute
57 *
58 * @param object $value Product properties.
59 * @return void
60 */
61 public function setLineItemsAttribute( $value ) {
62 $this->setCollection( 'line_items', $value, LineItem::class );
63 }
64
65 /**
66 * Finalize the session for checkout.
67 *
68 * @return $this|\WP_Error
69 */
70 protected function manuallyPay() {
71 if ( $this->fireModelEvent( 'manually_paying' ) === false ) {
72 return false;
73 }
74
75 if ( empty( $this->attributes['id'] ) ) {
76 return new \WP_Error( 'not_saved', 'Please create the checkout session.' );
77 }
78
79 $finalized = \SureCart::request(
80 $this->endpoint . '/' . $this->attributes['id'] . '/manually_pay/',
81 [
82 'method' => 'PATCH',
83 'query' => $this->query,
84 'body' => [
85 $this->object_name => $this->getAttributes(),
86 ],
87 ]
88 );
89
90 if ( is_wp_error( $finalized ) ) {
91 return $finalized;
92 }
93
94 $this->resetAttributes();
95
96 $this->fill( $finalized );
97
98 $this->fireModelEvent( 'manually_paid' );
99
100 return $this;
101 }
102 }
103