PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.3
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 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 / Controllers / Admin / AffiliationPayouts / AffiliationPayoutsController.php
surecart / app / src / Controllers / Admin / AffiliationPayouts Last commit date
AffiliationPayoutsController.php 2 years ago AffiliationPayoutsListTable.php 1 year ago AffiliationPayoutsScriptsController.php 2 years ago
AffiliationPayoutsController.php
140 lines
1 <?php
2
3 namespace SureCart\Controllers\Admin\AffiliationPayouts;
4
5 use SureCart\Controllers\Admin\AdminController;
6 use SureCart\Models\Payout;
7
8 /**
9 * Handles affiliate payout admin routes.
10 */
11 class AffiliationPayoutsController extends AdminController {
12
13 /**
14 * Affiliate Payout index.
15 */
16 public function index() {
17 $table = new AffiliationPayoutsListTable();
18 $table->prepare_items();
19
20 $this->withHeader(
21 array(
22 'breadcrumbs' => [
23 'affiliate_payouts' => [
24 'title' => __( 'Affiliate Payouts', 'surecart' ),
25 ],
26 ],
27 'suffix' => '<sc-button href="' . esc_url( admin_url( 'admin.php?page=sc-affiliate-payouts&action=export' ) ) . '" type="primary">' . __( 'Export Payouts', 'surecart' ) . '</sc-button>',
28 )
29 );
30
31 $this->withNotices(
32 array(
33 'processing' => __( 'Affiliate payout marked processing.', 'surecart' ),
34 'completed' => __( 'Affiliate payout marked completed.', 'surecart' ),
35 'deleted' => __( 'Affiliate payout deleted.', 'surecart' ),
36 )
37 );
38
39 return \SureCart::view( 'admin/affiliation-payouts/index' )->with( [ 'table' => $table ] );
40 }
41
42 /**
43 * Edit an affiliate payout.
44 *
45 * @param \SureCartCore\Http\Request $request Request object.
46 *
47 * @return string
48 */
49 public function edit( $request ) {
50 // enqueue needed script.
51 add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( AffiliationPayoutsScriptsController::class, 'enqueue' ) );
52
53 $this->preloadPaths(
54 [
55 '/wp/v2/users/me',
56 '/wp/v2/types?context=view',
57 '/wp/v2/types?context=edit',
58 '/surecart/v1/affiliation_payouts/' . $request->query( 'id' ) . '?context=edit',
59 ]
60 );
61
62 // return view.
63 return '<div id="app"></div>';
64 }
65
66 /**
67 * Export affiliate payouts.
68 *
69 * @param \SureCartCore\Http\Request $request Request object.
70 *
71 * @return string
72 */
73 public function export( $request ) {
74 add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( AffiliationPayoutsScriptsController::class, 'enqueue' ) );
75
76 $this->preloadPaths(
77 [
78 '/wp/v2/users/me?context=edit',
79 '/wp/v2/types?context=view',
80 '/wp/v2/types?context=edit',
81 '/surecart/v1/affiliation_payouts/' . $request->query( 'id' ) . '?context=edit',
82 ]
83 );
84
85 // return view.
86 return '<div id="app"></div>';
87 }
88
89 /**
90 * Delete an affiliate payout.
91 *
92 * @param \SureCartCore\Http\Request $request Request object.
93 *
94 * @return \SureCartCore\Responses\RedirectResponse
95 */
96 public function delete( $request ) {
97 $deleted = Payout::delete( $request->query( 'id' ) );
98
99 if ( is_wp_error( $deleted ) ) {
100 wp_die( implode( ' ', array_map( 'esc_html', $deleted->get_error_messages() ) ) );
101 }
102
103 return \SureCart::redirect()->to( add_query_arg( array( 'deleted' => true ), \SureCart::getUrl()->index( 'affiliate-payouts' ) ) );
104 }
105
106 /**
107 * Complete an affiliate payout.
108 *
109 * @param \SureCartCore\Http\Request $request Request object.
110 *
111 * @return \SureCartCore\Responses\RedirectResponse
112 */
113 public function complete( $request ) {
114 $completed = Payout::complete( $request->query( 'id' ) );
115
116 if ( is_wp_error( $completed ) ) {
117 wp_die( implode( ' ', array_map( 'esc_html', $completed->get_error_messages() ) ) );
118 }
119
120 return \SureCart::redirect()->to( add_query_arg( array( 'completed' => true ), \SureCart::getUrl()->index( 'affiliate-payouts' ) ) );
121 }
122
123 /**
124 * Make an affiliate payout processing.
125 *
126 * @param \SureCartCore\Http\Request $request Request object.
127 *
128 * @return \SureCartCore\Responses\RedirectResponse
129 */
130 public function makeProcessing( $request ) {
131 $processed = Payout::make_processing( $request->query( 'id' ) );
132
133 if ( is_wp_error( $processed ) ) {
134 wp_die( implode( ' ', array_map( 'esc_html', $processed->get_error_messages() ) ) );
135 }
136
137 return \SureCart::redirect()->to( add_query_arg( array( 'processing' => true ), \SureCart::getUrl()->index( 'affiliate-payouts' ) ) );
138 }
139 }
140