PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.0
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 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 10 months ago AffiliationPayoutsListTable.php 1 year ago AffiliationPayoutsScriptsController.php 2 years ago
AffiliationPayoutsController.php
141 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 'report_url' => SURECART_REPORTS_URL . 'payouts',
29 )
30 );
31
32 $this->withNotices(
33 array(
34 'processing' => __( 'Affiliate payout marked processing.', 'surecart' ),
35 'completed' => __( 'Affiliate payout marked completed.', 'surecart' ),
36 'deleted' => __( 'Affiliate payout deleted.', 'surecart' ),
37 )
38 );
39
40 return \SureCart::view( 'admin/affiliation-payouts/index' )->with( [ 'table' => $table ] );
41 }
42
43 /**
44 * Edit an affiliate payout.
45 *
46 * @param \SureCartCore\Http\Request $request Request object.
47 *
48 * @return string
49 */
50 public function edit( $request ) {
51 // enqueue needed script.
52 add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( AffiliationPayoutsScriptsController::class, 'enqueue' ) );
53
54 $this->preloadPaths(
55 [
56 '/wp/v2/users/me',
57 '/wp/v2/types?context=view',
58 '/wp/v2/types?context=edit',
59 '/surecart/v1/affiliation_payouts/' . $request->query( 'id' ) . '?context=edit',
60 ]
61 );
62
63 // return view.
64 return '<div id="app"></div>';
65 }
66
67 /**
68 * Export affiliate payouts.
69 *
70 * @param \SureCartCore\Http\Request $request Request object.
71 *
72 * @return string
73 */
74 public function export( $request ) {
75 add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( AffiliationPayoutsScriptsController::class, 'enqueue' ) );
76
77 $this->preloadPaths(
78 [
79 '/wp/v2/users/me?context=edit',
80 '/wp/v2/types?context=view',
81 '/wp/v2/types?context=edit',
82 '/surecart/v1/affiliation_payouts/' . $request->query( 'id' ) . '?context=edit',
83 ]
84 );
85
86 // return view.
87 return '<div id="app"></div>';
88 }
89
90 /**
91 * Delete an affiliate payout.
92 *
93 * @param \SureCartCore\Http\Request $request Request object.
94 *
95 * @return \SureCartCore\Responses\RedirectResponse
96 */
97 public function delete( $request ) {
98 $deleted = Payout::delete( $request->query( 'id' ) );
99
100 if ( is_wp_error( $deleted ) ) {
101 wp_die( implode( ' ', array_map( 'esc_html', $deleted->get_error_messages() ) ) );
102 }
103
104 return \SureCart::redirect()->to( add_query_arg( array( 'deleted' => true ), \SureCart::getUrl()->index( 'affiliate-payouts' ) ) );
105 }
106
107 /**
108 * Complete an affiliate payout.
109 *
110 * @param \SureCartCore\Http\Request $request Request object.
111 *
112 * @return \SureCartCore\Responses\RedirectResponse
113 */
114 public function complete( $request ) {
115 $completed = Payout::complete( $request->query( 'id' ) );
116
117 if ( is_wp_error( $completed ) ) {
118 wp_die( implode( ' ', array_map( 'esc_html', $completed->get_error_messages() ) ) );
119 }
120
121 return \SureCart::redirect()->to( add_query_arg( array( 'completed' => true ), \SureCart::getUrl()->index( 'affiliate-payouts' ) ) );
122 }
123
124 /**
125 * Make an affiliate payout processing.
126 *
127 * @param \SureCartCore\Http\Request $request Request object.
128 *
129 * @return \SureCartCore\Responses\RedirectResponse
130 */
131 public function makeProcessing( $request ) {
132 $processed = Payout::make_processing( $request->query( 'id' ) );
133
134 if ( is_wp_error( $processed ) ) {
135 wp_die( implode( ' ', array_map( 'esc_html', $processed->get_error_messages() ) ) );
136 }
137
138 return \SureCart::redirect()->to( add_query_arg( array( 'processing' => true ), \SureCart::getUrl()->index( 'affiliate-payouts' ) ) );
139 }
140 }
141