PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.2.5
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.2.5
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 / PaymentMethod.php
PaymentMethod.php
65 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace SureCart\Models;
3
4 use SureCart\Models\Traits\HasCustomer;
5 use SureCart\Models\Traits\HasPaymentIntent;
6
7 /**
8 * Payment intent model.
9 */
10 class PaymentMethod extends Model {
11 use HasCustomer, HasPaymentIntent;
12
13 /**
14 * Rest API endpoint
15 *
16 * @var string
17 */
18 protected $endpoint = 'payment_methods';
19
20 /**
21 * Object name
22 *
23 * @var string
24 */
25 protected $object_name = 'payment_method';
26
27 /**
28 * Detach from a customer.
29 *
30 * @return $this|\WP_Error
31 */
32 protected function detach() {
33 if ( $this->fireModelEvent( 'detaching' ) === false ) {
34 return false;
35 }
36
37 if ( empty( $this->attributes['id'] ) ) {
38 return new \WP_Error( 'not_saved', 'Please create the payment method.' );
39 }
40
41 $detached = \SureCart::request(
42 $this->endpoint . '/' . $this->attributes['id'] . '/detach/',
43 [
44 'method' => 'PATCH',
45 'query' => $this->query,
46 'body' => [
47 $this->object_name => $this->getAttributes(),
48 ],
49 ]
50 );
51
52 if ( is_wp_error( $detached ) ) {
53 return $detached;
54 }
55
56 $this->resetAttributes();
57
58 $this->fill( $detached );
59
60 $this->fireModelEvent( 'detached' );
61
62 return $this;
63 }
64 }
65