PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.87
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.87
51.1.87 51.1.86 51.1.84 51.1.85 51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 All 41 releases
← All changes | includes/widgets/Woo_Checkout_Steps/Woo_Checkout_Steps.php +28 -7 51.1.74 → 51.1.87 View file →
@@ -58,9 +58,9 @@
58 58 * @return string
59 59 */
60 60 public function get_icon(): string
61 61 {
62 - return 'eicon-editor-list-ol';
62 + return 'king-addons-icon king-addons-woo-checkout-steps';
63 63 }
64 64
65 65 /**
66 66 * Widget categories.
@@ -171,8 +171,9 @@
171 171 'prev_text',
172 172 [
173 173 'label' => esc_html__('Previous text', 'king-addons'),
174 174 'type' => Controls_Manager::TEXT,
175 + 'dynamic' => ['active' => true],
175 176 'default' => esc_html__('Previous', 'king-addons'),
176 177 'condition' => [
177 178 'show_nav' => 'yes',
178 179 ],
@@ -183,8 +184,9 @@
183 184 'next_text',
184 185 [
185 186 'label' => esc_html__('Next text', 'king-addons'),
186 187 'type' => Controls_Manager::TEXT,
188 + 'dynamic' => ['active' => true],
187 189 'default' => esc_html__('Next', 'king-addons'),
188 190 'condition' => [
189 191 'show_nav' => 'yes',
190 192 ],
@@ -224,8 +226,13 @@
224 226
225 227 $settings = $this->get_settings_for_display();
226 228 $steps = $settings['steps'] ?? [];
227 229 if (empty($steps)) {
230 + if (\Elementor\Plugin::$instance->editor->is_edit_mode()) {
231 + echo '<div class="king-addons-woo-builder-notice">'
232 + . esc_html__('Add at least one step, each pointing at a section of the checkout.', 'king-addons')
233 + . '</div>';
234 + }
228 235 return;
229 236 }
230 237
231 238 $scroll = (!empty($settings['scroll_to_section']) && 'yes' === $settings['scroll_to_section']) ? 'yes' : 'no';
@@ -230,20 +237,34 @@
230 237
231 238 $scroll = (!empty($settings['scroll_to_section']) && 'yes' === $settings['scroll_to_section']) ? 'yes' : 'no';
232 239 $auto_scroll = (!empty($settings['auto_scroll']) && 'yes' === $settings['auto_scroll']) ? 'yes' : 'no';
233 240 $show_nav = (!empty($settings['show_nav']) && 'yes' === $settings['show_nav']);
234 - $prev_text = $settings['prev_text'] ?? esc_html__('Previous', 'king-addons');
235 - $next_text = $settings['next_text'] ?? esc_html__('Next', 'king-addons');
241 + // ?: not ??: a cleared field is '' rather than null, which left the
242 + // navigation buttons unlabelled. The values are escaped at output, so
243 + // the fallbacks must not be pre-escaped.
244 + $prev_text = ($settings['prev_text'] ?? null) ?: __('Previous', 'king-addons');
245 + $next_text = ($settings['next_text'] ?? null) ?: __('Next', 'king-addons');
236 246
237 247 echo '<div class="ka-woo-checkout-steps-wrapper" data-enable-nav="' . ($show_nav ? 'true' : 'false') . '" data-auto-scroll="' . esc_attr($auto_scroll) . '">';
238 248 echo '<ol class="ka-woo-checkout-steps ka-woo-checkout-steps--pro" role="list" data-scroll-top="' . esc_attr($scroll) . '" data-prev-text="' . esc_attr($prev_text) . '" data-next-text="' . esc_attr($next_text) . '">';
239 - foreach ($steps as $index => $step) {
249 + $fallback_targets = [
250 + '.woocommerce-billing-fields',
251 + '.woocommerce-shipping-fields',
252 + '#payment',
253 + '.woocommerce-checkout-review-order-table',
254 + ];
255 + $step_i = 0;
256 + foreach ($steps as $step) {
240 257 $label = $step['label'] ?? '';
241 - $target = $step['target'] ?? '';
242 - echo '<li class="ka-woo-checkout-step" data-step="' . esc_attr((string) ($index + 1)) . '" data-target="' . esc_attr($target) . '">';
243 - echo '<span class="ka-woo-checkout-step__number">' . esc_html((string) ($index + 1)) . '</span>';
258 + $target = trim((string) ($step['target'] ?? ''));
259 + if ($target === '') {
260 + $target = $fallback_targets[$step_i] ?? '';
261 + }
262 + echo '<li class="ka-woo-checkout-step" data-step="' . esc_attr((string) ($step_i + 1)) . '" data-target="' . esc_attr($target) . '">';
263 + echo '<span class="ka-woo-checkout-step__number">' . esc_html((string) ($step_i + 1)) . '</span>';
244 264 echo '<span class="ka-woo-checkout-step__label">' . esc_html($label) . '</span>';
245 265 echo '</li>';
266 + $step_i++;
246 267 }
247 268 echo '</ol>';
248 269 if ($show_nav) {
249 270 echo '<div class="ka-woo-checkout-steps__nav">';