PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.4.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.4.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 / packages / blocks / Controllers / PaymentMethodController.php
surecart / packages / blocks / Controllers Last commit date
BaseController.php 3 years ago ChargeController.php 3 years ago CustomerController.php 3 years ago DownloadController.php 3 years ago InvoiceController.php 3 years ago OrderController.php 3 years ago PaymentMethodController.php 3 years ago SubscriptionController.php 3 years ago UserController.php 3 years ago
PaymentMethodController.php
151 lines
1 <?php
2 namespace SureCartBlocks\Controllers;
3
4 use SureCart\Models\Component;
5 use SureCart\Models\Processor;
6 use SureCart\Models\User;
7
8 /**
9 * Payment method block controller class.
10 */
11 class PaymentMethodController extends BaseController {
12 /**
13 * List all payment methods.
14 *
15 * @param array $attributes Block attributes.
16 * @param string $content Block content.
17 *
18 * @return function
19 */
20 public function index( $attributes, $content ) {
21 if ( ! is_user_logged_in() ) {
22 return false;
23 }
24
25 return wp_kses_post(
26 Component::tag( 'sc-payment-methods-list' )
27 ->id( 'sc-customer-payment-methods-list' )
28 ->with(
29 [
30 'isCustomer' => User::current()->isCustomer(),
31 'query' => [
32 'customer_ids' => array_values( User::current()->customerIds() ),
33 'page' => 1,
34 'per_page' => 100,
35 'reusable' => true,
36 ],
37 ]
38 )->render( $attributes['title'] ? "<span slot='heading'>" . $attributes['title'] . '</span>' : '' )
39 );
40 }
41
42 /**
43 * Show a view to add a payment method.
44 *
45 * @return string
46 */
47 public function create() {
48 if ( empty( User::current()->customerId( $this->isLiveMode() ? 'live' : 'test' ) ) ) {
49 ob_start(); ?>
50 <sc-alert type="info" open>
51 <?php if ( $this->isLiveMode() && ! empty( User::current()->customerId( 'test' ) ) ) { ?>
52 <?php esc_html_e( 'You are not a live mode customer.', 'surecart' ); ?>
53 <div style="margin-top:0.5em;">
54 <sc-button href="<?php echo esc_url( add_query_arg( [ 'live_mode' => 'false' ] ) ); ?>" type="info" size="small">
55 <?php esc_html_e( 'Switch to test mode.', 'surecart' ); ?>
56 </sc-button>
57 </div>
58 <?php } elseif ( ! $this->isLiveMode() && ! empty( User::current()->customerId( 'live' ) ) ) { ?>
59 <?php esc_html_e( 'You are not a test mode customer.', 'surecart' ); ?>
60 <div style="margin-top:0.5em;">
61 <sc-button href="<?php echo esc_url( add_query_arg( [ 'live_mode' => false ] ) ); ?>" type="info" size="small">
62 <?php esc_html_e( 'Switch to live mode.', 'surecart' ); ?>
63 </sc-button>
64 </div>
65 <?php } else { ?>
66 <?php esc_html_e( 'You are not currently a customer.', 'surecart' ); ?>
67 <?php } ?>
68 </sc-alert>
69 <?php
70 return ob_get_clean();
71 }
72
73 $applicable_processors = array_filter(
74 Processor::get() ?? [],
75 function( $processor ) {
76 return $processor->live_mode === $this->isLiveMode() && $processor->recurring_enabled;
77 }
78 );
79
80 $processor_names = array_filter(
81 array_values(
82 array_map(
83 function( $processor ) {
84 return $processor->processor_type;
85 },
86 $applicable_processors ?? []
87 )
88 )
89 );
90
91 if ( empty( $processor_names ) ) {
92 return '<sc-alert type="info" open>' . __( 'You cannot currently add a payment method. Please contact us for support.', 'surecart' ) . '</sc-alert>';
93 }
94
95 $success_url = esc_url( $_GET['success_url'] ?? home_url( add_query_arg( [ 'tab' => $this->getTab() ], remove_query_arg( array_keys( $_GET ) ) ) ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
96
97 ob_start();
98 ?>
99
100 <sc-spacing style="--spacing: var(--sc-spacing-large)">
101 <sc-breadcrumbs>
102 <sc-breadcrumb href="<?php echo esc_url( add_query_arg( [ 'tab' => $this->getTab() ], remove_query_arg( array_keys( $_GET ) ) ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended ?>">
103 <?php esc_html_e( 'Dashboard', 'surecart' ); ?>
104 </sc-breadcrumb>
105 <sc-breadcrumb>
106 <?php esc_html_e( 'Add Payment Method', 'surecart' ); ?>
107 </sc-breadcrumb>
108 </sc-breadcrumbs>
109
110 <sc-heading>
111 <?php esc_html_e( 'Add Payment Method', 'surecart' ); ?>
112 <?php echo ! $this->isLiveMode() ? '<sc-tag type="warning" slot="end">' . esc_html__( 'Test Mode', 'surecart' ) . '</sc-tag>' : ''; ?>
113 </sc-heading>
114
115 <sc-toggles collapsible="false" theme="container" accordion>
116 <?php if ( in_array( 'stripe', $processor_names ) ) : ?>
117 <sc-toggle class="sc-stripe-toggle" show-control shady borderless>
118 <span slot="summary" class="sc-payment-toggle-summary">
119 <sc-flex>
120 <sc-icon name="credit-card" style="font-size:24px"></sc-icon>
121 <span><?php esc_html_e( 'Credit Card', 'surecart' ); ?></span>
122 </sc-flex>
123 </span>
124 <sc-stripe-add-method
125 success-url="<?php echo esc_url( $success_url ); ?>"
126 live-mode="<?php echo esc_attr( $this->isLiveMode() ? 'true' : 'false' ); ?>"
127 customer-id="<?php echo esc_attr( User::current()->customerId( $this->isLiveMode() ? 'live' : 'test' ) ); ?>">
128 </sc-stripe-add-method>
129 </sc-toggle>
130 <?php endif; ?>
131
132 <?php if ( in_array( 'paypal', $processor_names ) ) : ?>
133 <sc-toggle class="sc-paypal-toggle" show-control shady borderless>
134 <span slot="summary" class="sc-payment-toggle-summary">
135 <sc-icon name="paypal" style="width: 80px; font-size: 24px"></sc-icon>
136 </span>
137 <sc-paypal-add-method
138 success-url="<?php echo esc_url( home_url( add_query_arg( [ 'tab' => $this->getTab() ], remove_query_arg( array_keys( $_GET ) ) ) ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended ?>"
139 live-mode="<?php echo esc_attr( $this->isLiveMode() ? 'true' : 'false' ); ?>"
140 currency="<?php echo esc_attr( \SureCart::account()->currency ); ?>"
141 customer-id="<?php echo esc_attr( User::current()->customerId( $this->isLiveMode() ? 'live' : 'test' ) ); ?>">
142 </sc-paypal-add-method>
143 </sc-toggle>
144 <?php endif; ?>
145 </sc-toggles>
146 </sc-spacing>
147 <?php
148 return ob_get_clean();
149 }
150 }
151