PluginProbe
YayMail – WooCommerce Email Customizer / trunk
YayMail – WooCommerce Email Customizer vtrunk
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 3.4.2 3.4.3 All 55 releases
yaymail / templates / elements / column.php

column.php in YayMail – WooCommerce Email Customizer trunk, at templates/elements/column.php

105 lines 3.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 defined( 'ABSPATH' ) || exit;
3
4 use YayMail\Elements\ElementsLoader;
5 use YayMail\Utils\TemplateHelpers;
6 use YayMail\Utils\Helpers;
7
8 /**
9 * $args includes
10 * $element
11 * $render_data
12 * $is_nested
13 */
14 if ( empty( $args['element'] ) ) {
15 return;
16 }
17
18 $element = $args['element'];
19 $data = $element['data'];
20 $list_elements = $args['template']->get_elements();
21 $parent_element = TemplateHelpers::find_parent_element( $element['id'], $list_elements );
22 $row_avg_padding = $parent_element['data']['column_spacing'] ?? 0;
23 $total_columns = $parent_element['data']['amount_of_columns'] ?? 1;
24 $current_column_index = array_search( $element['id'], array_column( $parent_element['children'] ?? [], 'id' ), true );
25
26 if ( false === $current_column_index ) {
27 $current_column_index = 0;
28 }
29
30 $is_responsive_on_mobile = Helpers::is_true( $parent_element['data']['responsive_on_mobile'] ?? false );
31
32 $nested_column_style = '';
33 if ( isset( $parent_element['type'] ) && 'column_layout' === $parent_element['type'] ) {
34 $layout_data = $parent_element['data'];
35 $inner_radius = isset( $layout_data['inner_border_radius'] ) ? $layout_data['inner_border_radius'] : [];
36 $corners = TemplateHelpers::get_inner_column_border_radius(
37 $inner_radius,
38 (int) $total_columns,
39 (int) $current_column_index
40 );
41 $nested_props = [
42 'border-radius' => TemplateHelpers::get_border_radius_value( $corners, 'px' ),
43 'background-color' => $layout_data['inner_background_color'] ?? 'transparent',
44 ];
45 $has_inner_radius = ( $corners['top_left'] || $corners['top_right'] || $corners['bottom_right'] || $corners['bottom_left'] );
46 $nested_props['overflow'] = $has_inner_radius ? 'hidden' : 'visible';
47 $nested_column_style = TemplateHelpers::get_style( $nested_props );
48 }
49
50 $wrapper_style = TemplateHelpers::get_style(
51 array_merge(
52 [
53 'width' => "{$data['width']}%",
54 'max-width' => "{$data['width']}%",
55 'vertical-align' => $parent_element['data']['vertical_align'] ?? 'top',
56 ],
57 $current_column_index === 0 ? [
58 'padding-left' => '0',
59 'padding-right' => TemplateHelpers::get_dimension_value( $row_avg_padding / 2 ),
60 ] : [
61 'padding-right' => TemplateHelpers::get_dimension_value( $row_avg_padding / 4 ),
62 'padding-left' => TemplateHelpers::get_dimension_value( $row_avg_padding / 4 ),
63 ],
64 $total_columns - 1 === $current_column_index ? [
65 'padding-right' => '0',
66 'padding-left' => TemplateHelpers::get_dimension_value( $row_avg_padding / 2 ),
67 ] : [],
68 )
69 );
70
71 if ( isset( $data['border'] ) ) {
72 $wrapper_style .= TemplateHelpers::get_border_css_value( $data['border'] );
73 }
74
75 if ( '' !== $nested_column_style ) {
76 $wrapper_style .= $nested_column_style;
77 }
78 ?>
79
80 <style>
81 <?php if ( $is_responsive_on_mobile ) { ?>
82 @media only screen and (max-width: 400px) {
83 .yaymail-element-<?php echo esc_attr( $parent_element['id'] ); ?> .yaymail-customizer-element-column {
84 width: 100% !important;
85 display: block;
86 max-width: 100% !important;
87 }
88 }
89 <?php } ?>
90 </style>
91
92 <td class="yaymail-customizer-element-column" style="<?php echo esc_attr( $wrapper_style ); ?>">
93 <div class="yaymail-customizer-element-nested-column-content">
94 <?php
95 if ( ! empty( $element['children'] ) ) {
96 $args['is_nested'] = true;
97 ElementsLoader::render_elements(
98 $element['children'],
99 $args
100 );
101 }
102 ?>
103 </div>
104 </td>
105