File ManagerCurrent Directory: wp-content/plugins/wpforms/src/Pro/Forms/Fields/LayoutLinux appserver-0d5e4f1e-php-cc8da225320a42ba9b7d66cba40b1f03 6.6.123+ #1 SMP PREEMPT_DYNAMIC Wed Mar 11 09:04:28 UTC 2026 x86_64Edit File: Notifications.php <?php namespace WPForms\Pro\Forms\Fields\Layout; use WPForms\Pro\Forms\Fields\Layout\Helpers as LayoutHelpers; use WPForms\Emails\Notifications as EmailNotifications; /** * Layout field's Notifications class. * * @since 1.9.0 */ class Notifications extends \WPForms\Pro\Forms\Fields\Base\Notifications { /** * Current field notification type. * * @since 1.9.3 * * @var string */ protected $field_type = 'layout'; /** * Ignore the field if it is part of the layout field. * * @since 1.9.1 * * @param bool|mixed $ignore Whether to ignore the field. * @param array $field Field data. * @param array $form_data Form data. * * @return bool */ public function notifications_field_ignored( $ignore, array $field, array $form_data ): bool { $ignore = (bool) $ignore; if ( empty( $field['id'] ) || strpos( $field['id'], '_' ) ) { return $ignore; } if ( empty( $form_data['fields'] ) ) { return $ignore; } if ( wpforms_conditional_logic_fields()->field_is_hidden( $form_data, $field['id'] ) ) { return true; } $layout_fields = LayoutHelpers::get_layout_fields( $form_data['fields'] ); foreach ( $layout_fields as $layout_field ) { $fields = LayoutHelpers::get_layout_all_field_ids( $layout_field ); if ( in_array( (int) $field['id'], $fields, true ) ) { return true; } } return $ignore; } /** * Get the layout field HTML markup. * * @since 1.9.0 * @deprecated 1.9.3 * * @param string|mixed $message Field message. * @param array $field Field data. * @param bool $show_empty_fields Whether to display empty fields in the email. * @param array $other_fields List of field types. * @param array $form_data Form data. * @param array $fields List of submitted fields. * @param EmailNotifications $notifications Notifications instance. * * @return string */ public function get_layout_field_html( $message, array $field, bool $show_empty_fields, array $other_fields, array $form_data, array $fields, EmailNotifications $notifications ): string { _deprecated_function( __METHOD__, '1.9.3 of the WPForms plugin', __CLASS__ . '::get_field_html()' ); return $this->get_field_html( $message, $field, $show_empty_fields, $other_fields, $form_data, $fields, $notifications ); } /** * Get the layout field plain text markup. * * @since 1.9.0 * @deprecated 1.9.3 * * @param string|mixed $message Field message. * @param array $field Field data. * @param bool $show_empty_fields Whether to display empty fields in the email. * @param array $form_data Form data. * @param array $fields List of submitted fields. * @param EmailNotifications $notifications Notifications instance. * * @return string */ public function get_layout_field_plain( $message, array $field, bool $show_empty_fields, array $form_data, array $fields, EmailNotifications $notifications ): string { _deprecated_function( __METHOD__, '1.9.3 of the WPForms plugin', __CLASS__ . '::get_field_plain()' ); return $this->get_field_plain( $message, $field, $show_empty_fields, $form_data, $fields, $notifications ); } /** * Get field markup for an email. * * @since 1.9.3 * * @return string */ protected function get_html_message(): string { $layout_content = isset( $this->field['display'] ) && $this->field['display'] === 'rows' ? $this->get_rows() : $this->get_columns(); if ( wpforms_is_empty_string( $layout_content ) ) { return ''; } if ( ! isset( $this->field['label'] ) ) { return $layout_content; } return $this->get_header( $this->field['label'] ) . $layout_content; } /** * Get field markup for an email in compact mode. * * @since 1.9.3 * * @return string */ protected function get_plain_message(): string { $layout_content = isset( $this->field['display'] ) && $this->field['display'] === 'rows' ? $this->get_plain_rows() : $this->get_plain_columns(); if ( wpforms_is_empty_string( $layout_content ) ) { return ''; } if ( ! isset( $this->field['label'] ) ) { return $layout_content; } return $this->get_header( $this->field['label'] ) . $layout_content; } /** * Get the layout field rows markup in plain text mode. * * @since 1.9.3 * * @return string */ private function get_plain_rows(): string { $rows = isset( $this->field['columns'] ) && is_array( $this->field['columns'] ) ? LayoutHelpers::get_row_data( $this->field ) : []; if ( empty( $rows ) ) { return ''; } $fields_message = ''; foreach ( $rows as $row ) { foreach ( $row as $column ) { if ( isset( $column['field'], $this->form_data['fields'][ $column['field'] ] ) ) { $fields_message .= $this->get_subfield_message( $this->form_data['fields'][ $column['field'] ] ); } } } return $fields_message; } /** * Get the layout field columns markup in plain text mode. * * @since 1.9.3 * * @return string */ private function get_plain_columns(): string { if ( ! isset( $this->field['columns'] ) ) { return ''; } $fields_message = ''; foreach ( $this->field['columns'] as $column ) { if ( ! isset( $column['fields'] ) ) { continue; } foreach ( $column['fields'] as $child_field_id ) { if ( isset( $this->form_data['fields'][ $child_field_id ] ) ) { $fields_message .= $this->get_subfield_message( $this->form_data['fields'][ $child_field_id ] ); } } } return $fields_message; } /** * Get the layout field rows markup. * * @since 1.9.3 * * @return string */ private function get_rows(): string { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh, Generic.Metrics.NestingLevel.MaxExceeded $rows = isset( $this->field['columns'] ) && is_array( $this->field['columns'] ) ? LayoutHelpers::get_row_data( $this->field ) : []; if ( empty( $rows ) ) { return ''; } $is_layout_empty = true; ob_start(); ?> <tr class="wpforms-layout-table wpforms-layout-table-display-columns"> <td> <table class="wpforms-layout-table-row"> <?php foreach ( $rows as $row ) : ?> <tr> <?php foreach ( $row as $column ) : ?> <td style="width: <?php echo esc_attr( wpforms_get_column_width( $column ) ); ?>%"> <?php if ( isset( $column['field'], $this->form_data['fields'][ $column['field'] ] ) ) : ?> <table class="wpforms-layout-table-cell wpforms-width-<?php echo esc_attr( $column['width_preset'] ?? 50 ); ?>"> <?php $field_message = $this->get_subfield_message( $this->form_data['fields'][ $column['field'] ] ); if ( ! wpforms_is_empty_string( $field_message ) ) { $is_layout_empty = false; } echo $field_message; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> </table> <?php endif; ?> </td> <?php endforeach; ?> </tr> <?php endforeach; ?> </table> </td> </tr> <?php if ( $is_layout_empty ) { ob_end_clean(); return ''; } return ob_get_clean(); } /** * Get the layout field columns markup. * * @since 1.9.3 * * @return string */ private function get_columns(): string { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh, Generic.Metrics.NestingLevel.MaxExceeded if ( ! isset( $this->field['columns'] ) ) { return ''; } $is_layout_empty = true; ob_start(); ?> <tr class="wpforms-layout-table wpforms-layout-table-display-columns"> <td> <table class="wpforms-layout-table-row"> <tr> <?php foreach ( $this->field['columns'] as $column ) : ?> <td style="width: <?php echo esc_attr( wpforms_get_column_width( $column ) ); ?>%"> <?php if ( isset( $column['fields'] ) ) : ?> <table class="wpforms-layout-table-cell wpforms-width-<?php echo esc_attr( $column['width_preset'] ?? 50 ); ?>"> <?php foreach ( $column['fields'] as $child_field_id ) : ?> <?php if ( isset( $this->form_data['fields'][ $child_field_id ] ) ) : ?> <?php $field_message = $this->get_subfield_message( $this->form_data['fields'][ $child_field_id ] ); if ( ! wpforms_is_empty_string( $field_message ) ) { $is_layout_empty = false; } echo $field_message; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> <?php endif; ?> <?php endforeach; ?> </table> <?php endif; ?> </td> <?php endforeach; ?> </tr> </table> </td> </tr> <?php if ( $is_layout_empty ) { ob_end_clean(); return ''; } return ob_get_clean(); } } Upload File Directory Listing NameTypeSizeActions.. (Parent Directory)DirBuilder.phpFile2.95 KB Rename | Delete | EditField.phpFile3.50 KB Rename | Delete | EditFrontend.phpFile2.22 KB Rename | Delete | EditHelpers.phpFile7.30 KB Rename | Delete | EditNotifications.phpFile8.74 KB Rename | Delete | EditProcess.phpFile989.00 B Rename | Delete | Edit