PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.29.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.29.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 / Web / CollectionPageController.php
surecart / app / src / Controllers / Web Last commit date
.gitkeep 3 years ago BasePageController.php 2 years ago BuyPageController.php 2 years ago CheckoutFormsController.php 2 years ago CollectionPageController.php 2 years ago DashboardController.php 2 years ago ProductPageController.php 2 years ago PurchaseController.php 3 years ago SubscriptionsController.php 3 years ago UpsellPageController.php 2 years ago WebhookController.php 2 years ago
CollectionPageController.php
99 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace SureCart\Controllers\Web;
6
7 use SureCart\Models\Form;
8
9 /**
10 * Handles Frontend Collection Pages.
11 */
12 class CollectionPageController extends BasePageController {
13 /**
14 * Show the product collection page.
15 *
16 * @param \SureCartCore\Requests\RequestInterface $request Request.
17 * @param \SureCartCore\View $view View.
18 *
19 * @return function
20 */
21 public function show( $request, $view ) {
22 // get the collection from the query var.
23 $collection_page_id = get_query_var( 'sc_collection_page_id' );
24
25 // fetch the collection by id/slug.
26 $this->model = \SureCart\Models\ProductCollection::with( [ 'image' ] )->find( $collection_page_id );
27 if ( is_wp_error( $this->model ) ) {
28 return $this->handleError( $this->model );
29 }
30
31 // slug changed or we are using the id, redirect.
32 if ( $this->model->slug !== $collection_page_id ) {
33 return \SureCart::redirect()->to( $this->model->permalink );
34 }
35
36 set_query_var( 'sc_collection_page_id', $this->model->id );
37
38 // add the filters.
39 $this->filters();
40
41 // handle block theme.
42 if ( wp_is_block_theme() ) {
43 global $_wp_current_template_content;
44 $_wp_current_template_content = $this->model->template->content ?? '';
45 }
46
47 // include the default view.
48 include $view;
49
50 return \SureCart::response();
51 }
52
53 /**
54 * Handle filters.
55 *
56 * @return void
57 */
58 public function filters(): void {
59 parent::filters();
60
61 // add edit product collection link.
62 add_action( 'admin_bar_menu', [ $this, 'addEditCollectionLink' ], 99 );
63
64 // add data needed for collection to load.
65 add_filter(
66 'surecart-components/scData',
67 function( $data ) {
68 $form = \SureCart::forms()->getDefault();
69
70 $data['collection_data'] = [
71 'collection' => $this->model,
72 'form' => $form,
73 'mode' => Form::getMode( $form->ID ),
74 'checkout_link' => \SureCart::pages()->url( 'checkout' ),
75 ];
76
77 return $data;
78 }
79 );
80 }
81
82 /**
83 * Add edit product collection link.
84 *
85 * @param \WP_Admin_Bar $wp_admin_bar Admin bar.
86 *
87 * @return void
88 */
89 public function addEditCollectionLink( $wp_admin_bar ): void {
90 $wp_admin_bar->add_node(
91 [
92 'id' => 'edit-collection',
93 'title' => __( 'Edit Product Collection', 'surecart' ),
94 'href' => esc_url( \SureCart::getUrl()->edit( 'product_collections', $this->model->id ) ),
95 ]
96 );
97 }
98 }
99