PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.0-beta1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.0-beta1
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 / app / src / Integrations / Bricks / Elements / PriceData.php
surecart / app / src / Integrations / Bricks / Elements Last commit date
BuyButton.php 2 years ago CollectionTag.php 2 years ago CollectionTags.php 2 years ago Media.php 2 years ago PriceChoiceTemplate.php 2 years ago PriceChooser.php 2 years ago PriceData.php 2 years ago Product.php 2 years ago ProductCard.php 2 years ago ProductData.php 2 years ago Quantity.php 2 years ago SaleBadge.php 2 years ago SelectedPriceAdHocAmount.php 2 years ago VariantPill.php 2 years ago VariantPills.php 2 years 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 data', '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', 'bricks' ),
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', 'bricks' ),
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