PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.2
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.2
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 / packages / blocks-next / build / blocks / product-page / view.php
surecart / packages / blocks-next / build / blocks / product-page Last commit date
block.json 1 year ago index.asset.php 1 month ago index.js 1 month ago style-index-rtl.css 1 year ago style-index.css 1 year ago view.php 1 year ago
view.php
80 lines
1 <?php
2
3 use SureCart\Models\Blocks\ProductPageBlock;
4
5 $query = new WP_Query(
6 apply_filters(
7 'surecart_product_page_query_args',
8 [
9 'post_type' => 'sc_product',
10 'posts_per_page' => 1,
11 'post__in' => [ $attributes['product_post_id'] ?? get_the_ID() ],
12 'post_status' => $attributes['post_statuses'] ?? [ 'publish' ],
13 ]
14 )
15 );
16 ?>
17
18 <?php
19 while ( $query->have_posts() ) {
20 $query->the_post();
21
22 $controller = new ProductPageBlock();
23 $state = $controller->state();
24 $context = $controller->context();
25 wp_interactivity_state( 'surecart/product-page', $state );
26
27 $block_instance = $block->parsed_block;
28
29 // Set the block name to one that does not correspond to an existing registered block.
30 // This ensures that for the inner instances of the Post Template block, we do not render any block supports.
31 $block_instance['blockName'] = 'core/null';
32 $product_post_id = get_the_ID();
33 $product_post_type = get_post_type();
34 $filter_block_context = static function ( $context ) use ( $product_post_id, $product_post_type ) {
35 $context['postType'] = $product_post_type;
36 $context['postId'] = $product_post_id;
37 return $context;
38 };
39 $change_thumbnail_size = static function ( $size, $post_id ) use ( $product_post_id ) {
40 if ( $post_id === $product_post_id ) {
41 return apply_filters( 'surecart/product-list/thumbnail-cover-size', 'large', $post_id );
42 }
43 return $size;
44 };
45 // Use an early priority to so that other 'render_block_context' filters have access to the values.
46 add_filter( 'render_block_context', $filter_block_context, 1 );
47 add_filter( 'post_thumbnail_size', $change_thumbnail_size, 1, 2 );
48 // Render the inner blocks of the Post Template block with `dynamic` set to `false` to prevent calling
49 // `render_callback` and ensure that no wrapper markup is included.
50 $block_content = ( new WP_Block( $block_instance ) )->render( array( 'dynamic' => false ) );
51 remove_filter( 'render_block_context', $filter_block_context, 1 );
52 remove_filter( 'post_thumbnail_size', $change_thumbnail_size, 1 );
53 // Wrap the render inner blocks in a `li` element with the appropriate post classes.
54 $post_classes = implode( ' ', get_post_class( 'wp-block-post' ) );
55 ?>
56 <form
57 <?php
58 echo wp_kses_data(
59 get_block_wrapper_attributes(
60 [
61 'data-sc-block-id' => 'product-page',
62 ]
63 )
64 );
65 ?>
66 <?php
67 echo wp_kses_data( wp_interactivity_data_wp_context( $context ) );
68 ?>
69 data-wp-interactive='{ "namespace": "surecart/product-page" }'
70 data-wp-on--submit="callbacks.handleSubmit"
71 data-wp-init="callbacks.init"
72 >
73 <?php echo do_blocks( $block_content ); // phpcs:ignore WordPress.Security.EscapeOutput ?>
74 </form>
75
76 <?php
77 }
78 ?>
79
80 <?php wp_reset_postdata(); ?>