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.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 / AutoFees / AutoFeesController.php
surecart / app / src / Controllers / Admin / AutoFees Last commit date
AutoFeesController.php 5 months ago AutoFeesListTable.php 1 week ago AutoFeesScriptsController.php 5 months ago
AutoFeesController.php
135 lines
1 <?php
2
3 namespace SureCart\Controllers\Admin\AutoFees;
4
5 use SureCart\Controllers\Admin\AdminController;
6 use SureCart\Controllers\Admin\AutoFees\AutoFeesListTable;
7 use SureCart\Controllers\Admin\AutoFees\AutoFeesScriptsController;
8 use SureCart\Models\AutoFee;
9
10 /**
11 * Handles auto fees admin requests.
12 */
13 class AutoFeesController extends AdminController {
14 /**
15 * Auto Fees index.
16 */
17 public function index() {
18 $table = new AutoFeesListTable();
19 $table->prepare_items();
20 $this->withHeader(
21 array(
22 'breadcrumbs' => [
23 'auto_fee' => [
24 'title' => __( 'Dynamic Pricing', 'surecart' ),
25 ],
26 ],
27 )
28 );
29
30 \SureCart::notices()->add(
31 [
32 'name' => 'auto_fees_getting_started',
33 'type' => 'info',
34 'title' => esc_html__( 'What is dynamic pricing?', 'surecart' ),
35 'text' => sprintf(
36 '<p>%s</p> <p><a href="%s" target="_blank" rel="noopener noreferrer">%s</a></p>',
37 __( 'Dynamic pricing allows you to automatically discount or add fees to your products in checkout based on a variety of factors. Some popular use cases include "buy one, get one free" discounts, free shipping minimums, subscription renewal discounts. Get started by creating your first dynamic price.', 'surecart' ),
38 'https://surecart.com/docs/dynamic-pricing/',
39 __( 'Learn More ↗', 'surecart' )
40 ),
41 ]
42 );
43
44 $this->withNotices(
45 array(
46 'deleted' => __( 'Dynamic Price deleted.', 'surecart' ),
47 )
48 );
49
50 return \SureCart::view( 'admin/auto-fees/index' )->with(
51 [
52 'table' => $table,
53 ]
54 );
55 }
56
57 /**
58 * Edit
59 *
60 * @param \SureCartCore\Requests\RequestInterface $request Request.
61 *
62 * @return string
63 */
64 public function edit( $request ) {
65 // enqueue needed script.
66 add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( AutoFeesScriptsController::class, 'enqueue' ) );
67
68 $this->preloadPaths(
69 [
70 '/wp/v2/users/me',
71 '/wp/v2/types?context=view',
72 '/wp/v2/types?context=edit',
73 '/surecart/v1/auto_fees/' . $request->query( 'id' ) . '?context=edit',
74 ]
75 );
76
77 // return view.
78 return '<div id="app"></div>';
79 }
80
81 /**
82 * Change the active state of the model.
83 *
84 * @param \SureCartCore\Requests\RequestInterface $request Request.
85 *
86 * @return \SureCartCore\Responses\RedirectResponse
87 */
88 public function toggleActive( $request ) {
89 $auto_fee = AutoFee::find( $request->query( 'id' ) );
90 $status = $request->query( 'status' ) ?? 'active';
91
92 if ( is_wp_error( $auto_fee ) ) {
93 wp_die( implode( ' ', array_map( 'esc_html', $auto_fee->get_error_messages() ) ) );
94 }
95
96 $updated = $auto_fee->update(
97 [
98 'enabled' => ! (bool) $auto_fee->enabled,
99 ]
100 );
101
102 if ( is_wp_error( $updated ) ) {
103 wp_die( implode( ' ', array_map( 'esc_html', $updated->get_error_messages() ) ) );
104 }
105
106 \SureCart::flash()->add(
107 'success',
108 $updated->active ? __( 'Dynamic Price enabled.', 'surecart' ) : __( 'Dynamic Price disabled.', 'surecart' )
109 );
110
111 return \SureCart::redirect()->to(
112 esc_url_raw( add_query_arg( [ 'status' => $status ], \SureCart::getUrl()->index( 'auto-fees' ) ) )
113 );
114 }
115
116 /**
117 * Delete a dynamic price.
118 *
119 * @param \SureCartCore\Http\Request $request Request object.
120 *
121 * @return \SureCartCore\Responses\RedirectResponse
122 */
123 public function delete( $request ) {
124 $deleted = AutoFee::delete( $request->query( 'id' ) );
125
126 if ( is_wp_error( $deleted ) ) {
127 wp_die( implode( ' ', array_map( 'esc_html', $deleted->get_error_messages() ) ) );
128 }
129
130 return \SureCart::redirect()->to(
131 esc_url_raw( add_query_arg( [ 'deleted' => true ], \SureCart::getUrl()->index( 'auto-fees' ) ) )
132 );
133 }
134 }
135