PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.0-beta1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.0-beta1
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 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 / Upsells / UpsellsController.php
surecart / app / src / Controllers / Admin / Upsells Last commit date
UpsellScriptsController.php 2 years ago UpsellsController.php 2 years ago UpsellsListTable.php 2 years ago
UpsellsController.php
115 lines
1 <?php
2
3 namespace SureCart\Controllers\Admin\Upsells;
4
5 use SureCart\Controllers\Admin\AdminController;
6 use SureCart\Models\UpsellFunnel;
7 use SureCartCore\Responses\RedirectResponse;
8
9 /**
10 * Handles upsell admin requests.
11 */
12 class UpsellsController extends AdminController {
13
14 /**
15 * Bumps index.
16 */
17 public function index() {
18 $table = new UpsellsListTable();
19 $table->prepare_items();
20 $this->withHeader(
21 array(
22 'breadcrumbs' => [
23 'upsells' => [
24 'title' => __( 'Upsell Funnels', 'surecart' ),
25 ],
26 ],
27 )
28 );
29 return \SureCart::view( 'admin/upsell-funnels/index' )->with( [ 'table' => $table ] );
30 }
31
32 /**
33 * Edit
34 */
35 public function edit( $request ) {
36 // enqueue needed script.
37 add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( UpsellScriptsController::class, 'enqueue' ) );
38
39 $upsell = null;
40
41 if ( $request->query( 'id' ) ) {
42 $upsell = UpsellFunnel::with()->find( $request->query( 'id' ) );
43
44 if ( is_wp_error( $upsell ) ) {
45 wp_die( implode( ' ', array_map( 'esc_html', $upsell->get_error_messages() ) ) );
46 }
47 }
48
49 $this->preloadPaths(
50 [
51 '/wp/v2/users/me',
52 '/wp/v2/types?context=view',
53 '/wp/v2/types?context=edit',
54 // '/surecart/v1/upsell_funnels/' . $request->query( 'id' ) . '?context=edit',
55 ]
56 );
57
58 // Add View Upsell link.
59 add_action(
60 'admin_bar_menu',
61 function( $wp_admin_bar ) use ( $upsell ) {
62 $wp_admin_bar->add_node(
63 [
64 'id' => 'view-upsell-page',
65 'title' => __( 'View Upsell', 'surecart' ),
66 'href' => esc_url( $upsell->permalink ?? '#' ),
67 'meta' => [
68 'class' => empty( $upsell->permalink ) ? 'hidden' : '',
69 ],
70 ]
71 );
72 },
73 99
74 );
75
76 // return view.
77 return '<div id="app"></div>';
78 }
79
80 /**
81 * Change the archived attribute in the model
82 *
83 * @param \SureCartCore\Requests\RequestInterface $request Request.
84 *
85 * @return \SureCartCore\Responses\RedirectResponse
86 */
87 public function toggleEnabled( $request ) {
88 $funnel = UpsellFunnel::find( $request->query( 'id' ) );
89 $status = $request->query( 'status' ) ?? 'active';
90
91 if ( is_wp_error( $funnel ) ) {
92 wp_die( implode( ' ', array_map( 'esc_html', $funnel->get_error_messages() ) ) );
93 }
94
95 $updated = $funnel->update(
96 [
97 'enabled' => ! (bool) $funnel->enabled,
98 ]
99 );
100
101 if ( is_wp_error( $updated ) ) {
102 wp_die( implode( ' ', array_map( 'esc_html', $updated->get_error_messages() ) ) );
103 }
104
105 \SureCart::flash()->add(
106 'success',
107 $updated->enabled ? __( 'Funnel enabled.', 'surecart' ) : __( 'Funnel disabled.', 'surecart' )
108 );
109
110 return \SureCart::redirect()->to(
111 esc_url_raw( add_query_arg( 'status', $status, admin_url( 'admin.php?page=sc-upsell-funnels' ) ) )
112 );
113 }
114 }
115