PluginProbe
Tiered Pricing Table for WooCommerce / 8.0.2
Tiered Pricing Table for WooCommerce v8.0.2
8.0.2 7.1.7 7.1.5 7.1.4 7.1.1 6.5.0 6.4.0 6.1.0 trunk 1.0 1.1 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2 2.2.3 2.3.0 2.3.1 2.3.2 2.3.3 All 91 releases
tier-pricing-table / src / Addons / GlobalTieredPricing / CPT / Form / FormTab.php

FormTab.php in Tiered Pricing Table for WooCommerce 8.0.2, at src/Addons/GlobalTieredPricing/CPT/Form/FormTab.php

297 lines 8.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php namespace TierPricingTable\Addons\GlobalTieredPricing\CPT\Form;
2
3 use TierPricingTable\Addons\GlobalTieredPricing\GlobalPricingRule;
4 use TierPricingTable\Core\ServiceContainerTrait;
5
6 abstract class FormTab {
7
8 use ServiceContainerTrait;
9
10 /**
11 * Form
12 *
13 * @var Form
14 */
15 protected $form;
16
17 public function __construct( Form $form ) {
18 $this->form = $form;
19 }
20
21 abstract public function getId();
22
23 abstract public function getTitle();
24
25 abstract public function getDescription();
26
27 abstract public function getIcon(): string;
28
29 abstract public function render( GlobalPricingRule $pricingRule );
30
31 public function renderRadioOptions( $args = array(), $inline = false ) {
32 ?>
33 <div class="tiered-pricing-form-block">
34 <label for="tpt_tiered_pricing_type">
35 <?php echo esc_html( $args['title'] ); ?>
36 </label>
37 <div style="min-height: 25px">
38 <?php if ( $inline ) : ?>
39
40 <?php foreach ( $args['options'] as $optionId => $optionLabel ) : ?>
41 <span style="margin-right:15px">
42 <label style="margin:0; float:none; font-size: 12px;">
43 <input style="margin-right:3px;"
44 type="radio"
45 name="<?php echo esc_attr( $args['id'] ); ?>"
46 value="<?php echo esc_attr( $optionId ); ?>"
47 <?php checked( $optionId, $args['value'] ); ?>
48 >
49 <?php echo esc_html( $optionLabel ); ?>
50 </label>
51 </span>
52 <?php endforeach; ?>
53
54 <?php else : ?>
55 <ul style="margin:0">
56 <?php foreach ( $args['options'] as $optionId => $optionLabel ) : ?>
57 <li style="margin-bottom: 10px">
58 <label style="margin:0;float:none;font-size: 12px;">
59 <input style="margin-right:3px;"
60 type="radio"
61 name="<?php echo esc_attr( $args['id'] ); ?>"
62 value="<?php echo esc_attr( $optionId ); ?>"
63 <?php checked( $optionId, $args['value'] ); ?>
64 >
65 <?php echo esc_html( $optionLabel ); ?>
66 </label>
67 </li>
68 <?php endforeach; ?>
69 </ul>
70 <?php endif; ?>
71 </div>
72
73 </div>
74 <?php
75 }
76
77 public function renderCheckbox( $args = array() ) {
78
79 $args = wp_parse_args( $args, array(
80 'title' => '',
81 'id' => '',
82 'value' => '',
83 'label' => '',
84 'description' => '',
85 ) );
86
87 ?>
88 <div class="tiered-pricing-form-block">
89 <label for="tpt_tiered_pricing_type">
90 <?php echo esc_html( $args['title'] ); ?>
91 </label>
92 <div style="min-height: 25px">
93 <label style="margin:0; float:none; font-size: 12px;">
94 <input style="margin-right:3px;"
95 type="checkbox"
96 name="<?php echo esc_attr( $args['id'] ); ?>"
97 value="<?php echo esc_attr( $args['value'] ); ?>"
98 <?php checked( $args['value'] ); ?>
99 >
100 <?php echo esc_html( $args['label'] ); ?>
101 </label>
102 </div>
103
104 <?php if ( $args['description'] ) : ?>
105 <p class="description" style="margin:0">
106 <?php echo esc_html( $args['description'] ); ?>
107 </p>
108 <?php endif; ?>
109 </div>
110 <?php
111 }
112
113 public function renderSectionTitle( $sectionTitle, $args = array() ) {
114
115 $args = wp_parse_args( $args, array(
116 'description' => '',
117 'only_for_premium' => false,
118 ) );
119
120 ?>
121
122 <div class="tpt-global-pricing-title">
123 <?php echo esc_attr( $sectionTitle ); ?>
124 <?php
125 if ( $args['description'] ) {
126 echo wc_help_tip( $args['description'] );
127 }
128
129 if ( $args['only_for_premium'] && ! tpt_fs()->can_use_premium_code() ) {
130 ?>
131 <a href="<?php echo esc_attr( tpt_fs_activation_url() ); ?>" target="_blank" style="text-decoration: none; margin-left: 5px;
132 vertical-align: text-top;">
133 <span style="
134 border: 1px solid #d63638;
135 color: #d63638;
136 padding: 3px 8px;
137 border-radius: 3px;
138 letter-spacing: normal;
139 font-weight: 500;
140 font-size: 12px;">
141 <?php esc_html_e( 'Premium feature', 'tier-pricing-table' ); ?>
142 </span>
143 </a>
144 <span>•</span>
145 <a href="<?php echo esc_attr( tpt_fs_activation_url() ); ?>"
146 target="_blank"
147 style="letter-spacing: normal; font-weight: normal; font-size: 13px;">
148 <?php esc_html_e( 'Upgrade plan', 'tier-pricing-table' ); ?>
149 </a>
150 <?php
151 }
152
153 if ( isset( $args['subtitle'] ) ) {
154 ?>
155 <div style="font-size: 12px; color: #666; margin-top: 5px;">
156 <?php echo esc_html( $args['subtitle'] ); ?>
157 </div>
158 <?php
159 }
160 ?>
161 </div>
162 <?php
163 }
164
165 public function renderSelect( $args = array() ) {
166
167 $args = wp_parse_args( $args, array(
168 'title' => '',
169 'id' => '',
170 'value' => '',
171 'options' => array(),
172 'description' => '',
173 'disabled' => false,
174 ) );
175
176 ?>
177 <div class="tiered-pricing-form-block">
178 <label for="<?php echo esc_attr( $args['id'] ); ?>">
179 <?php echo esc_html( $args['title'] ); ?>
180 </label>
181 <div style="min-height: 25px">
182 <select name="<?php echo esc_attr( $args['id'] ); ?>" id="<?php echo esc_attr( $args['id'] ); ?>" <?php disabled( $args['disabled'] ); ?>>
183 <?php foreach ( $args['options'] as $optionValue => $optionLabel ) : ?>
184 <option value="<?php echo esc_attr( $optionValue ); ?>" <?php selected( $args['value'], $optionValue ); ?>>
185 <?php echo esc_html( $optionLabel ); ?>
186 </option>
187 <?php endforeach; ?>
188 </select>
189 </div>
190
191 <?php if ( $args['description'] ) : ?>
192 <p class="description" style="margin:0">
193 <?php echo esc_html( $args['description'] ); ?>
194 </p>
195 <?php endif; ?>
196 </div>
197 <?php
198 }
199
200 public function renderSelect2( $args = array() ) {
201
202 $args = wp_parse_args( $args, array(
203 'id' => '',
204 'search_action' => '',
205 'value' => '',
206 'options' => null,
207 'placeholder' => '',
208 'multiple' => true,
209 'width' => '100%',
210 'description' => '',
211 'desc_tip' => true,
212 'minimum_input_length' => 1,
213 'css_class' => 'wc-product-search',
214 ) );
215
216 ?>
217 <div class="tiered-pricing-form-block">
218 <label for="<?php echo esc_attr( $args['id'] ); ?>">
219 <?php echo esc_html( $args['label'] ); ?>
220 </label>
221
222 <select class="<?php echo esc_attr( $args['css_class'] ); ?>" <?php echo esc_attr( $args['multiple'] ? 'multiple="multiple"' : '' ); ?>
223 style="width: <?php echo esc_attr( $args['width'] ); ?>"
224 id="<?php echo esc_attr( $args['id'] ); ?>"
225 name="<?php echo esc_attr( $args['multiple'] ? $args['id'] . '[]' : $args['id'] ); ?>"
226 data-placeholder="<?php echo esc_attr( $args['placeholder'] ); ?>"
227 data-action="<?php echo esc_attr( $args['search_action'] ); ?>"
228 data-minimum_input_length="<?php echo esc_attr( $args['minimum_input_length'] ); ?>">
229 >
230
231 <?php if ( $args['options'] ) : ?>
232
233 <?php foreach ( $args['options'] as $optionId => $label ) : ?>
234 <option
235 <?php selected( in_array( $optionId, $args['value'] ) ); ?>
236 value="<?php echo esc_attr( $optionId ); ?>">
237 <?php echo esc_attr( $label ); ?>
238 </option>
239 <?php endforeach; ?>
240
241 <?php else : ?>
242
243 <?php foreach ( $args['value'] as $optionId => $label ) : ?>
244 <option selected
245 value="<?php echo esc_attr( $optionId ); ?>">
246 <?php echo esc_attr( $label ); ?>
247 </option>
248 <?php endforeach; ?>
249 <?php endif; ?>
250 </select>
251
252 <?php if ( $args['description'] ) : ?>
253 <?php if ( $args['desc_tip'] ) : ?>
254 <?php echo wp_kses_post( wc_help_tip( $args['description'] ) ); ?>
255 <?php elseif ( is_callable( $args['description'] ) ): ?>
256 <?php call_user_func( $args['description'] ); ?>
257 <?php else : ?>
258 <p class="description" style="margin:0">
259 <?php echo esc_html( $args['description'] ); ?>
260 </p>
261 <?php endif; ?>
262 <?php endif; ?>
263 </div>
264 <?php
265 }
266
267 public function renderHint( $hint, $args = array() ) {
268
269 $args = wp_parse_args( $args, array(
270 'only_for_new_rules' => false,
271 'show_icon' => true,
272 'custom_class' => '',
273 ) );
274
275 if ( ! $hint ) {
276 return;
277 }
278
279 if ( $args['only_for_new_rules'] && ! $this->form->isNewRule() ) {
280 return;
281 }
282
283 ?>
284 <div class="tpt-global-pricing-rule-hint <?php echo esc_attr( $args['custom_class'] ); ?>">
285 <?php if ( $args['show_icon'] ) : ?>
286 <div class="tpt-global-pricing-rule-hint__icon">
287 <span class="dashicons dashicons-editor-help"></span>
288 </div>
289 <?php endif; ?>
290 <div class="tpt-global-pricing-rule-hint__content">
291 <?php echo wp_kses_post( $hint ); ?>
292 </div>
293 </div>
294 <?php
295 }
296 }
297