PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.2.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.2.1
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 / Products / ProductsController.php
surecart / app / src / Controllers / Admin / Products Last commit date
ProductScriptsController.php 3 years ago ProductsController.php 3 years ago ProductsListTable.php 3 years ago
ProductsController.php
76 lines
1 <?php
2
3 namespace SureCart\Controllers\Admin\Products;
4
5 use SureCart\Controllers\Admin\AdminController;
6 use SureCart\Models\Product;
7 use SureCartCore\Responses\RedirectResponse;
8 use SureCart\Controllers\Admin\Products\ProductsListTable;
9
10 /**
11 * Handles product admin requests.
12 */
13 class ProductsController extends AdminController {
14
15 /**
16 * Products index.
17 */
18 public function index() {
19 $table = new ProductsListTable();
20 $table->prepare_items();
21 $this->withHeader(
22 [
23 'products' => [
24 'title' => __( 'Products', 'surecart' ),
25 ],
26 ]
27 );
28 return \SureCart::view( 'admin/products/index' )->with( [ 'table' => $table ] );
29 }
30
31 /**
32 * Edit a product.
33 */
34 public function edit() {
35 // enqueue needed script.
36 add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( ProductScriptsController::class, 'enqueue' ) );
37 // return view.
38 return '<div id="app"></div>';
39 }
40
41 /**
42 * Change the archived attribute in the model
43 *
44 * @param \SureCartCore\Requests\RequestInterface $request Request.
45 * @return void
46 */
47 public function toggleArchive( $request ) {
48 $product = Product::find( $request->query( 'id' ) );
49
50 if ( is_wp_error( $product ) ) {
51 wp_die( implode( ' ', array_map( 'esc_html', $product->get_error_messages() ) ) );
52 }
53
54 $updated = $product->update(
55 [
56 'archived' => ! (bool) $product->archived,
57 ]
58 );
59
60 if ( is_wp_error( $updated ) ) {
61 wp_die( implode( ' ', array_map( 'esc_html', $updated->get_error_messages() ) ) );
62 }
63
64 \SureCart::flash()->add(
65 'success',
66 $updated->archived ? __( 'Product archived.', 'surecart' ) : __( 'Product restored.', 'surecart' )
67 );
68
69 return $this->redirectBack( $request );
70 }
71
72 public function redirectBack( $request ) {
73 return ( new RedirectResponse( $request ) )->back();
74 }
75 }
76