PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.5.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.5.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 / app / src / Integrations / Bricks / Elements / PriceData.php
surecart / app / src / Integrations / Bricks / Elements Last commit date
BuyButton.php 3 months ago CartMenuIcon.php 5 months ago CollectionTag.php 1 year ago CollectionTags.php 1 year ago Media.php 1 year ago PriceChoiceTemplate.php 1 year ago PriceChooser.php 4 months ago PriceData.php 1 year ago Product.php 4 months ago ProductCard.php 10 months ago ProductContent.php 10 months ago ProductData.php 1 year ago ProductLineItemNote.php 10 months ago ProductQuickAddButton.php 10 months ago ProductReviewAverageRatingStars.php 4 months ago ProductReviewAverageRatingValue.php 4 months ago ProductReviewBreakdown.php 4 months ago ProductReviewContent.php 4 months ago ProductReviewList.php 2 months ago ProductReviewRating.php 4 months ago ProductReviewTotalRating.php 4 months ago ProductReviews.php 4 months ago Quantity.php 10 months ago SaleBadge.php 1 year ago SelectedPriceAdHocAmount.php 1 year ago VariantPill.php 6 months ago VariantPills.php 1 year ago
PriceData.php
197 lines
1 <?php
2
3 namespace SureCart\Integrations\Bricks\Elements;
4
5 use SureCart\Integrations\Bricks\Concerns\ConvertsBlocks;
6
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit; // Exit if accessed directly.
9 }
10
11
12 /**
13 * Selected Price element.
14 */
15 class PriceData extends \Bricks\Element {
16 use ConvertsBlocks; // we have to use a trait since we can't extend the surecart class.
17
18 /**
19 * Element category.
20 *
21 * @var string
22 */
23 public $category = 'SureCart Elements';
24
25 /**
26 * Element icon.
27 *
28 * @var string
29 */
30 public $icon = 'ti-receipt';
31
32 /**
33 * Element name.
34 *
35 * @var string
36 */
37 public $name = 'surecart-price-data';
38
39 /**
40 * Element block name.
41 *
42 * @var string
43 */
44 public function get_label() {
45 return esc_html__( 'Price Data', 'surecart' );
46 }
47
48 /**
49 * Set controls.
50 *
51 * @return void
52 */
53 public function set_controls() {
54 $this->controls['meta'] = [
55 'tab' => 'content',
56 'type' => 'repeater',
57 'titleProperty' => 'dynamicData',
58 'placeholder' => esc_html__( 'Product Pricing', 'surecart' ),
59 'fields' => [
60 'dynamicData' => [
61 'label' => esc_html__( 'Dynamic data', 'surecart' ),
62 'type' => 'text',
63 ],
64 ],
65 'default' => [
66 [
67 'dynamicData' => '{sc_price_name}',
68 'id' => \Bricks\Helpers::generate_random_id( false ),
69 ],
70 [
71 'dynamicData' => '{sc_price_amount}',
72 'id' => \Bricks\Helpers::generate_random_id( false ),
73 ],
74 [
75 'dynamicData' => '{sc_price_trial}',
76 'id' => \Bricks\Helpers::generate_random_id( false ),
77 ],
78 [
79 'dynamicData' => '{sc_price_setup_fee}',
80 'id' => \Bricks\Helpers::generate_random_id( false ),
81 ],
82 ],
83 ];
84
85 $this->controls['direction'] = [
86 'tab' => 'content',
87 'label' => esc_html__( 'Direction', 'surecart' ),
88 'type' => 'direction',
89 'css' => [
90 [
91 'property' => 'flex-direction',
92 'selector' => '',
93 ],
94 ],
95 'inline' => true,
96 ];
97
98 $this->controls['direction'] = [
99 'tab' => 'content',
100 'label' => esc_html__( 'Direction', 'surecart' ),
101 'type' => 'direction',
102 'css' => [
103 [
104 'property' => 'flex-direction',
105 'selector' => '',
106 ],
107 ],
108 'inline' => true,
109 ];
110
111 $this->controls['justifyContent'] = [
112 'label' => esc_html__( 'Align main axis', 'surecart' ),
113 'tooltip' => [
114 'content' => 'justify-content',
115 'position' => 'top-left',
116 ],
117 'type' => 'justify-content',
118 'css' => [
119 [
120 'property' => 'justify-content',
121 ],
122 ],
123 ];
124
125 $this->controls['alignItems'] = [
126 'label' => esc_html__( 'Align cross axis', 'surecart' ),
127 'tooltip' => [
128 'content' => 'align-items',
129 'position' => 'top-left',
130 ],
131 'type' => 'align-items',
132 'css' => [
133 [
134 'property' => 'align-items',
135 ],
136 ],
137 ];
138
139 $this->controls['gutter'] = [
140 'tab' => 'content',
141 'label' => esc_html__( 'Gap', 'surecart' ),
142 'type' => 'number',
143 'units' => true,
144 'css' => [
145 [
146 'property' => 'gap',
147 'selector' => '',
148 ],
149 ],
150 'placeholder' => 5,
151 'default' => 5,
152 ];
153 }
154
155
156 /**
157 * Render element.
158 *
159 * @return void
160 */
161 public function render() {
162 $settings = $this->settings;
163
164 if ( empty( $settings['meta'] ) ) {
165 return $this->render_element_placeholder(
166 [
167 'title' => esc_html__( 'No price data selected.', 'surecart' ),
168 ]
169 );
170 }
171
172 global $post;
173
174 $post_id = $this->post_id;
175 $post = get_post( $post_id ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
176 $meta_data = [];
177
178 foreach ( $settings['meta'] as $index => $meta ) {
179 $meta_html = '';
180
181 if ( ! empty( $meta['dynamicData'] ) ) {
182 $meta_html .= bricks_render_dynamic_data( $meta['dynamicData'], $post_id );
183 }
184
185 $meta_data[] = $meta_html;
186 }
187
188 $this->set_attribute( '_root', 'class', 'post-meta' );
189
190 echo "<div {$this->render_attributes( '_root' )}>"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
191
192 echo join( '', $meta_data ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
193
194 echo '</div>';
195 }
196 }
197