PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 3.4.1
ShopBuilder – WooCommerce Builder For Elementor v3.4.1
3.4.2 3.4.1 3.4.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 All 63 releases
shopbuilder / templates / elementor / general / grid / grid-layout2.php

grid-layout2.php in ShopBuilder – WooCommerce Builder For Elementor 3.4.1, at templates/elementor/general/grid/grid-layout2.php

202 lines 5.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Template: Grid Layout 2.
4 *
5 * @package RadiusTheme\SB
6 */
7
8 /**
9 * Template variables:
10 *
11 * @var $grid string
12 * @var $class string
13 * @var $p_id int
14 * @var $img_args array
15 * @var $p_link string
16 * @var $items array
17 * @var $rating_args array
18 * @var $add_to_cart string
19 * @var $title_tag string
20 * @var $hover_btn_text string
21 * @var $excerpt_limit string
22 * @var $excerpt string
23 * @var $title_class string
24 * @var $title_link bool
25 * @var $title string
26 * @var $badge_class string
27 * @var $action_btn_preset string
28 * @var $action_btn_position string
29 * @var $swatch_position string
30 * @var $swatch_type string
31 * @var $has_attributes bool
32 * @var $raw_settings array
33 */
34
35 use RadiusTheme\SB\Helpers\Fns;
36
37 // Do not allow directly accessing this file.
38 if ( ! defined( 'ABSPATH' ) ) {
39 exit( 'This script cannot be accessed directly.' );
40 }
41
42 global $product;
43
44 $classes = esc_attr( $grid ) . ' ' . esc_attr( $class );
45 $swatch_title_class = $has_attributes && in_array( 'swatches', $items, true ) && 'title' === $swatch_position ? ' title-with-swatch' : '';
46 $swatch_price_class = $has_attributes && in_array( 'swatches', $items, true ) && 'price' === $swatch_position ? ' price-with-swatch' : '';
47 ?>
48
49 <div <?php wc_product_class( $classes, $product ); ?> data-id="<?php echo absint( $p_id ); ?>">
50 <?php
51 /**
52 * Before product items hook.
53 */
54 do_action( 'rtsb/before/shop/product/item' );
55 ?>
56
57 <div class="rtsb-grid-item">
58 <div class="rtsb-product-img">
59 <?php
60 /**
61 * Before product image hook.
62 */
63 do_action( 'rtsb/before/shop/product/image' );
64
65 /**
66 * Product image hook.
67 *
68 * @hooked RadiusTheme\SB\Controllers\Hooks\ActionHooks::render_image 10
69 */
70 do_action( 'rtsb/shop/product/image', $img_args, $raw_settings );
71
72 /**
73 * Sale Badge.
74 */
75 if ( ! empty( $p_sale ) ) {
76 ?>
77 <div class="rtsb-promotion">
78 <?php
79 Fns::get_badge_html( $p_sale, $badge_class );
80 ?>
81 </div>
82 <?php
83 }
84
85 /**
86 * Action buttons above image.
87 */
88 Fns::print_html( Fns::get_formatted_action_buttons( $items, $add_to_cart, $action_btn_preset, $action_btn_position, 'top' ) );
89
90 /**
91 * After product image hook.
92 */
93 do_action( 'rtsb/after/shop/product/image', $raw_settings );
94 ?>
95 </div><!-- .rtsb-product-img -->
96
97 <div class="rtsb-product-content">
98 <?php
99 /**
100 * Before product content hook.
101 */
102 do_action( 'rtsb/before/shop/product/content' );
103
104 /**
105 * Product Rating.
106 */
107 if ( in_array( 'rating', $items, true ) ) {
108 Fns::get_product_rating_html( $rating_args );
109 }
110
111 /**
112 * Product Price.
113 */
114 if ( in_array( 'price', $items, true ) ) {
115 $has_price_html = '' !== trim( (string) $product->get_price_html() );
116 $has_price_swatch = in_array( 'swatches', $items, true ) && 'price' === $swatch_position;
117
118 if ( $has_price_html || $has_price_swatch ) {
119 ?>
120 <div class="product-price<?php echo esc_attr( $swatch_price_class ); ?>">
121 <?php if ( $has_price_html ) : ?>
122 <div class="price-wrapper">
123 <?php
124 woocommerce_template_single_price();
125 ?>
126 </div>
127 <?php endif; ?>
128 <?php
129 if ( $has_price_swatch ) {
130 Fns::get_product_swatches( $swatch_type );
131 }
132 ?>
133 </div>
134 <?php
135 }
136 }
137
138 /**
139 * Before product title hook.
140 */
141 do_action( 'rtsb/before/shop/product/title' );
142
143 /**
144 * After product title hook.
145 */
146 do_action( 'rtsb/after/shop/product/title' );
147
148 /**
149 * Action buttons after content.
150 */
151 Fns::print_html( Fns::get_formatted_action_buttons( $items, $add_to_cart, $action_btn_preset, $action_btn_position, 'bottom' ) );
152
153 /**
154 * After product content hook.
155 */
156 do_action( 'rtsb/after/shop/product/content', $raw_settings );
157
158 /**
159 * Product Title.
160 */
161 if ( in_array( 'title', $items, true ) ) {
162 ?>
163 <div class="product-title-with-btn">
164 <div class="rtsb-product-title-wrapper <?php echo esc_attr( $swatch_title_class ); ?>">
165 <<?php Fns::print_validated_html_tag( $title_tag ); ?> class="<?php echo esc_attr( $title_class ); ?>">
166 <?php
167 if ( $title_link ) {
168 ?>
169 <a class="woocommerce-LoopProduct-link" href="<?php echo esc_url( $p_link ); ?>"><?php Fns::print_html( $title ); ?></a>
170 <?php
171 } else {
172 Fns::print_html( $title );
173 }
174 ?>
175 </<?php Fns::print_validated_html_tag( $title_tag ); ?>>
176 </div>
177 <div class="btn-wrap">
178 <a class="woocommerce-LoopProduct-link rtsb-text-btn" href="<?php echo esc_url( $p_link ); ?>">
179 <span class="text"><?php echo esc_html( $hover_btn_text ); ?></span>
180
181 <?php
182 if ( ! empty( $hover_btn_icon ) ) {
183 Fns::print_html( $hover_btn_icon, true );
184 }
185 ?>
186 </a>
187 </div>
188 </div>
189 <?php
190 }
191 ?>
192 </div><!-- .rtsb-product-content -->
193 </div><!-- .rtsb-grid-item -->
194
195 <?php
196 /**
197 * After product item hook.
198 */
199 do_action( 'rtsb/after/shop/product/item' );
200 ?>
201 </div><!-- .rtsb-product -->
202