PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.3
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 1 year ago CollectionTag.php 1 year ago CollectionTags.php 1 year ago Media.php 1 year ago PriceChoiceTemplate.php 1 year ago PriceChooser.php 1 year ago PriceData.php 1 year ago Product.php 1 year ago ProductCard.php 1 year ago ProductData.php 1 year ago Quantity.php 1 year ago SaleBadge.php 1 year ago SelectedPriceAdHocAmount.php 1 year ago VariantPill.php 1 year 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 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', '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