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.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 1 year ago UpsellsController.php 1 year ago UpsellsListTable.php 1 year ago
UpsellsController.php
116 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 'report_url' => SURECART_REPORTS_URL . 'upsells',
28 )
29 );
30 return \SureCart::view( 'admin/upsell-funnels/index' )->with( [ 'table' => $table ] );
31 }
32
33 /**
34 * Edit
35 */
36 public function edit( $request ) {
37 // enqueue needed script.
38 add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( UpsellScriptsController::class, 'enqueue' ) );
39
40 $upsell = null;
41
42 if ( $request->query( 'id' ) ) {
43 $upsell = UpsellFunnel::with()->find( $request->query( 'id' ) );
44
45 if ( is_wp_error( $upsell ) ) {
46 wp_die( implode( ' ', array_map( 'esc_html', $upsell->get_error_messages() ) ) );
47 }
48 }
49
50 $this->preloadPaths(
51 [
52 '/wp/v2/users/me',
53 '/wp/v2/types?context=view',
54 '/wp/v2/types?context=edit',
55 // '/surecart/v1/upsell_funnels/' . $request->query( 'id' ) . '?context=edit',
56 ]
57 );
58
59 // Add View Upsell link.
60 add_action(
61 'admin_bar_menu',
62 function( $wp_admin_bar ) use ( $upsell ) {
63 $wp_admin_bar->add_node(
64 [
65 'id' => 'view-upsell-page',
66 'title' => __( 'View Upsell', 'surecart' ),
67 'href' => esc_url( $upsell->permalink ?? '#' ),
68 'meta' => [
69 'class' => empty( $upsell->permalink ) ? 'hidden' : '',
70 ],
71 ]
72 );
73 },
74 99
75 );
76
77 // return view.
78 return '<div id="app"></div>';
79 }
80
81 /**
82 * Change the archived attribute in the model
83 *
84 * @param \SureCartCore\Requests\RequestInterface $request Request.
85 *
86 * @return \SureCartCore\Responses\RedirectResponse
87 */
88 public function toggleEnabled( $request ) {
89 $funnel = UpsellFunnel::find( $request->query( 'id' ) );
90 $status = $request->query( 'status' ) ?? 'active';
91
92 if ( is_wp_error( $funnel ) ) {
93 wp_die( implode( ' ', array_map( 'esc_html', $funnel->get_error_messages() ) ) );
94 }
95
96 $updated = $funnel->update(
97 [
98 'enabled' => ! (bool) $funnel->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->enabled ? __( 'Funnel enabled.', 'surecart' ) : __( 'Funnel disabled.', 'surecart' )
109 );
110
111 return \SureCart::redirect()->to(
112 esc_url_raw( add_query_arg( 'status', $status, admin_url( 'admin.php?page=sc-upsell-funnels' ) ) )
113 );
114 }
115 }
116