PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.19.4
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.19.4
4.7.2 4.7.1 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
110 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 [
22 'upsells' => [
23 'title' => __( 'Upsell Funnels', 'surecart' ),
24 ],
25 ]
26 );
27 return \SureCart::view( 'admin/upsell-funnels/index' )->with( [ 'table' => $table ] );
28 }
29
30 /**
31 * Edit
32 */
33 public function edit( $request ) {
34 // enqueue needed script.
35 add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( UpsellScriptsController::class, 'enqueue' ) );
36
37 $upsell = null;
38
39 if ( $request->query( 'id' ) ) {
40 $upsell = UpsellFunnel::with()->find( $request->query( 'id' ) );
41
42 if ( is_wp_error( $upsell ) ) {
43 wp_die( implode( ' ', array_map( 'esc_html', $upsell->get_error_messages() ) ) );
44 }
45 }
46
47 $this->preloadPaths(
48 [
49 '/wp/v2/users/me',
50 '/wp/v2/types?context=view',
51 '/wp/v2/types?context=edit',
52 // '/surecart/v1/upsell_funnels/' . $request->query( 'id' ) . '?context=edit',
53 ]
54 );
55
56 // Add View Upsell link.
57 add_action(
58 'admin_bar_menu',
59 function( $wp_admin_bar ) use ( $upsell ) {
60 $wp_admin_bar->add_node(
61 [
62 'id' => 'view-upsell-page',
63 'title' => __( 'View Upsell', 'surecart' ),
64 'href' => esc_url( $upsell->permalink ?? '#' ),
65 'meta' => [
66 'class' => empty( $upsell->permalink ) ? 'hidden' : '',
67 ],
68 ]
69 );
70 },
71 99
72 );
73
74 // return view.
75 return '<div id="app"></div>';
76 }
77
78 /**
79 * Change the archived attribute in the model
80 *
81 * @param \SureCartCore\Requests\RequestInterface $request Request.
82 *
83 * @return \SureCartCore\Responses\RedirectResponse
84 */
85 public function toggleEnabled( $request ) {
86 $funnel = UpsellFunnel::find( $request->query( 'id' ) );
87
88 if ( is_wp_error( $funnel ) ) {
89 wp_die( implode( ' ', array_map( 'esc_html', $funnel->get_error_messages() ) ) );
90 }
91
92 $updated = $funnel->update(
93 [
94 'enabled' => ! (bool) $funnel->enabled,
95 ]
96 );
97
98 if ( is_wp_error( $updated ) ) {
99 wp_die( implode( ' ', array_map( 'esc_html', $updated->get_error_messages() ) ) );
100 }
101
102 \SureCart::flash()->add(
103 'success',
104 $updated->enabled ? __( 'Funnel enabled.', 'surecart' ) : __( 'Funnel disabled.', 'surecart' )
105 );
106
107 return ( new RedirectResponse( $request ) )->back();
108 }
109 }
110