PluginProbe
Tiered Pricing Table for WooCommerce / 6.1.0
Tiered Pricing Table for WooCommerce v6.1.0
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 6.1.0, at src/Addons/GlobalTieredPricing/CPT/Form/FormTab.php

254 lines 7.2 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 background: #d63638;
135 color: #fff;
136 padding: 3px 8px;
137 border-radius: 3px;
138 letter-spacing: normal;
139 font-weight: 500;
140 font-size: 10px;">
141 <?php esc_html_e( 'Premium feature', 'tier-pricing-table' ); ?>
142 </span>
143 </a>
144 <span style="margin-left:6px;">•</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 </div>
154 <?php
155 }
156
157 public function renderSelect2( $args = array() ) {
158
159 $args = wp_parse_args( $args, array(
160 'id' => '',
161 'search_action' => '',
162 'value' => '',
163 'options' => null,
164 'placeholder' => '',
165 'multiple' => true,
166 'width' => '100%',
167 'description' => '',
168 'desc_tip' => true,
169 'minimum_input_length' => 1,
170 'css_class' => 'wc-product-search',
171 ) );
172
173 ?>
174 <div class="tiered-pricing-form-block">
175 <label for="<?php echo esc_attr( $args['id'] ); ?>">
176 <?php echo esc_html( $args['label'] ); ?>
177 </label>
178
179 <select class="<?php echo esc_attr( $args['css_class'] ); ?>" <?php echo esc_attr( $args['multiple'] ? 'multiple="multiple"' : '' ); ?>
180 style="width: <?php echo esc_attr( $args['width'] ); ?>"
181 id="<?php echo esc_attr( $args['id'] ); ?>"
182 name="<?php echo esc_attr( $args['multiple'] ? $args['id'] . '[]' : $args['id'] ); ?>"
183 data-placeholder="<?php echo esc_attr( $args['placeholder'] ); ?>"
184 data-action="<?php echo esc_attr( $args['search_action'] ); ?>"
185 data-minimum_input_length="<?php echo esc_attr( $args['minimum_input_length'] ); ?>">
186 >
187
188 <?php if ( $args['options'] ) : ?>
189
190 <?php foreach ( $args['options'] as $optionId => $label ) : ?>
191 <option
192 <?php selected( in_array( $optionId, $args['value'] ) ); ?>
193 value="<?php echo esc_attr( $optionId ); ?>">
194 <?php echo esc_attr( $label ); ?>
195 </option>
196 <?php endforeach; ?>
197
198 <?php else : ?>
199
200 <?php foreach ( $args['value'] as $optionId => $label ) : ?>
201 <option selected
202 value="<?php echo esc_attr( $optionId ); ?>">
203 <?php echo esc_attr( $label ); ?>
204 </option>
205 <?php endforeach; ?>
206 <?php endif; ?>
207 </select>
208
209 <?php if ( $args['description'] ) : ?>
210 <?php if ( $args['desc_tip'] ) : ?>
211 <?php echo wp_kses_post( wc_help_tip( $args['description'] ) ); ?>
212 <?php elseif ( is_callable( $args['description'] ) ): ?>
213 <?php call_user_func( $args['description'] ); ?>
214 <?php else : ?>
215 <p class="description" style="margin:0">
216 <?php echo esc_html( $args['description'] ); ?>
217 </p>
218 <?php endif; ?>
219 <?php endif; ?>
220 </div>
221 <?php
222 }
223
224 public function renderHint( $hint, $args = array() ) {
225
226 $args = wp_parse_args( $args, array(
227 'only_for_new_rules' => false,
228 'show_icon' => true,
229 'custom_class' => '',
230 ) );
231
232 if ( ! $hint ) {
233 return;
234 }
235
236 if ( $args['only_for_new_rules'] && ! $this->form->isNewRule() ) {
237 return;
238 }
239
240 ?>
241 <div class="tpt-global-pricing-rule-hint <?php echo esc_attr( $args['custom_class'] ); ?>">
242 <?php if ( $args['show_icon'] ) : ?>
243 <div class="tpt-global-pricing-rule-hint__icon">
244 <span class="dashicons dashicons-editor-help"></span>
245 </div>
246 <?php endif; ?>
247 <div class="tpt-global-pricing-rule-hint__content">
248 <?php echo wp_kses_post( $hint ); ?>
249 </div>
250 </div>
251 <?php
252 }
253 }
254