PluginProbe
YayMail – WooCommerce Email Customizer / 4.4.1
YayMail – WooCommerce Email Customizer v4.4.1
4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 trunk 1.9.6 2.1.4 2.1.5 3.2.2 3.2.6 3.2.7.1 3.2.8.1 3.2.9 3.3 3.3.1 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4 3.4.1 All 57 releases
yaymail / templates / elements / order-progress.php

order-progress.php in YayMail – WooCommerce Email Customizer 4.4.1, at templates/elements/order-progress.php

104 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 defined( 'ABSPATH' ) || exit;
4
5 use YayMail\Utils\TemplateHelpers;
6
7 if ( empty( $args['element'] ) ) {
8 return;
9 }
10
11 $element = $args['element'];
12 $data = $element['data'];
13 $render_data = isset( $args['render_data'] ) && is_array( $args['render_data'] ) ? $args['render_data'] : [];
14
15 $steps = isset( $data['steps'] ) && is_array( $data['steps'] ) ? $data['steps'] : [];
16 if ( empty( $steps ) ) {
17 return;
18 }
19
20 $current_step_index = isset( $data['current_step_index'] ) ? (int) $data['current_step_index'] : 0;
21
22 /**
23 * Filter to resolve the active step index based on WooCommerce order status.
24 *
25 * Return null to keep the manual value from the element settings.
26 *
27 * @param int|null $resolved_step_index Resolved index.
28 * @param WC_Order|null $wc_order WooCommerce order instance (if available).
29 * @param array $element Element data.
30 */
31 $wc_order = isset( $render_data['order'] ) ? $render_data['order'] : null;
32 $resolved_step_index = apply_filters( 'yaymail_order_progress_step_index', null, $wc_order, $element );
33 if ( null !== $resolved_step_index ) {
34 $current_step_index = (int) $resolved_step_index;
35 }
36
37 $current_step_index = max( 0, min( $current_step_index, count( $steps ) - 1 ) );
38
39 $align = 'center';
40
41 $display_style = isset( $data['display_style'] ) ? (string) $data['display_style'] : 'step_marker';
42
43 $wrapper_style = TemplateHelpers::get_style(
44 [
45 'word-break' => 'break-word',
46 'text-align' => $align,
47 'background-color' => $data['background_color'] ?? '#ffffff',
48 'padding' => TemplateHelpers::get_spacing_value( isset( $data['padding'] ) ? $data['padding'] : [] ),
49 ]
50 );
51
52 $table_style = TemplateHelpers::get_style(
53 [
54 'width' => '100%',
55 'table-layout' => 'auto',
56 'border-collapse' => 'collapse',
57 'border-spacing' => 0,
58 'mso-table-lspace' => '0pt',
59 'mso-table-rspace' => '0pt',
60 ]
61 );
62
63 $connector_height = (int) ( $data['connector_height'] ?? 2 );
64 $connector_height = max( 1, min( $connector_height, 10 ) );
65 $connector_active_color = TemplateHelpers::replace_color_paths(
66 (string) ( $data['connector_active_color'] ?? '#000000' )
67 );
68 $connector_inactive_color = TemplateHelpers::replace_color_paths(
69 (string) ( $data['connector_inactive_color'] ?? '#E5E5E5' )
70 );
71
72 $icon_size = (int) ( $data['icon_size'] ?? 18 );
73 $icon_size = max( 10, min( $icon_size, 80 ) );
74
75 $label_font_size = (int) ( $data['label_font_size'] ?? 14 );
76 $label_font_size = max( 8, min( $label_font_size, 24 ) );
77
78 $label_font_family = TemplateHelpers::get_font_family_value(
79 ! empty( $data['font_family'] ) ? $data['font_family'] : YAYMAIL_DEFAULT_FAMILY
80 );
81
82 // Backward compatible fallbacks (older versions used global label colors + per-step label_color override).
83 // Use opinionated defaults close to design: dark text for active, grey for inactive.
84 $legacy_label_active_color = $data['label_active_color'] ?? '#111827';
85 $legacy_label_inactive_color = $data['label_inactive_color'] ?? '#9CA3AF';
86
87 ob_start();
88 ?>
89 <?php
90 switch ( $display_style ) {
91 case 'filled_bar':
92 include __DIR__ . '/order-progress/variants/filled-bar.php';
93 break;
94 case 'step_marker':
95 default:
96 include __DIR__ . '/order-progress/variants/step-marker.php';
97 break;
98 }
99 ?>
100 <?php
101 $element_content = ob_get_clean();
102
103 TemplateHelpers::wrap_element_content( $element_content, $element, $wrapper_style );
104