File: /home/globfdxw/www/wp-content/plugins/wpforms-pdf/src/Builder/Settings/Templates.php
<?php
namespace WPFormsPDF\Builder\Settings;
use WPFormsPDF\Builder\FormBuilder;
use WPFormsPDF\Templates\Templates as TemplatesData;
/**
* Class Template handles template settings for PDF form builder.
*
* @since 1.0.0
*/
class Templates {
/**
* Templates data.
*
* @since 1.0.0
*
* @var TemplatesData
*/
private $templates_data;
/**
* PDF ID.
*
* @since 1.0.0
*
* @var int|string
*/
private $pdf_id;
/**
* Settings.
*
* @since 1.0.0
*
* @var object
*/
private $settings;
/**
* Builder.
*
* @since 1.0.0
*
* @var FormBuilder
*/
private $builder;
/**
* Constructor.
*
* @since 1.0.0
*
* @param int|string $pdf_id PDF ID.
* @param object $settings Settings object.
*/
public function __construct( $pdf_id, object $settings ) {
$this->builder = wpforms_pdf()->form_builder;
$this->templates_data = wpforms_pdf()->templates;
$this->pdf_id = $pdf_id;
$this->settings = $settings;
$this->hooks();
}
/**
* Hooks.
*
* @since 1.0.0
*/
private function hooks(): void {
add_action( 'wpforms_builder_print_footer_scripts', [ $this, 'builder_footer_scripts' ] );
}
/**
* Output Email Template modal.
*
* @since 1.0.0
*/
public function builder_footer_scripts(): void {
static $rendered = false;
if ( $rendered ) {
return;
}
$rendered = true;
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo wpforms_render(
WPFORMS_PDF_PATH . 'templates/view-all-templates-modal',
[],
true
);
}
/**
* Get a template settings group.
*
* @since 1.0.0
*
* @return string
*/
public function get_settings_group(): string {
$template = wpforms_panel_field(
'select',
'pdfs',
'template_category',
$this->settings->form_data,
esc_html__( 'Category', 'wpforms-pdf' ),
[
'options' => $this->get_categories_options(),
'default' => 'notification',
'subsection' => $this->pdf_id,
'parent' => 'settings',
'class' => 'col-half wpforms-pdf-template-category',
],
false
);
$template .= wpforms_panel_field(
'select',
'pdfs',
'template_style',
$this->settings->form_data,
esc_html__( 'Style', 'wpforms-pdf' ),
[
'options' => $this->get_templates_options(),
'default' => 'notification-modern',
'subsection' => $this->pdf_id,
'parent' => 'settings',
'class' => 'col-half wpforms-pdf-template-style',
],
false
);
$template .= $this->builder->get_custom_entity_settings( $this->pdf_id, 'template', $this->settings->form_data );
$template .= '<div class="wpforms-pdf-text-settings">';
$template_style = $this->get_current_option_value( 'template_style', 'notification' );
$theme = $this->get_current_option_value( 'theme', 'creamsicle' );
$template .= $this->get_template_settings_fields( $template_style, $theme );
$template .= '</div>';
return wpforms_panel_fields_group(
$template,
[
'title' => esc_html__( 'Template', 'wpforms-pdf' ),
'description' => sprintf(
'%s <a class="wpforms-pdf-all-templates-modal" href="#">%s</a>',
esc_html__( 'Choose a premade template or create your own by customizing the appearance.', 'wpforms-pdf' ),
esc_html__( 'View All Templates', 'wpforms-pdf' )
),
'group' => 'settings_pdf_template',
'class' => 'wpforms-pdf-template-group',
'default' => 'opened',
'borders' => [ 'top' ],
'unfoldable' => true,
],
false
);
}
/**
* Get current option value.
*
* @since 1.0.0
*
* @param string $option_slug Option slug.
* @param mixed $default_value Default value.
*
* @return string
*/
private function get_current_option_value( string $option_slug, $default_value = '' ): string {
$options = $this->settings->form_data['settings']['pdfs'][ $this->pdf_id ] ?? [];
return $options[ $option_slug ] ?? $default_value;
}
/**
* Get template settings fields.
*
* @since 1.0.0
*
* @param string $template_slug Template slug.
* @param string $theme_slug Theme slug.
*
* @return string
*/
public function get_template_settings_fields( string $template_slug, string $theme_slug ): string {
$fields = '';
$template_settings = wpforms_pdf()->templates->get_template( $template_slug, $theme_slug );
$template_texts = $template_settings['text'] ?? [];
foreach ( array_keys( $template_texts ) as $field_slug ) {
$fields .= $this->get_panel_field( $field_slug, $template_texts );
}
return $fields;
}
/**
* Get panel field function arguments for text fields.
*
* @since 1.0.0
*
* @param string $field_slug Field slug.
* @param array $template_texts Template texts.
*
* @return array|null
*/
private function get_panel_field_text_args( string $field_slug, array $template_texts ): ?array {
$default_value = wp_unslash( $template_texts[ $field_slug ] ?? '' );
// The existing value should remain the same. The actual value is stored in the template data.
$existing_value = $default_value;
$fields = [
'content' => [
'textarea',
'pdfs',
'content',
'{form_data}',
esc_html__( 'Content', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'paragraph_1' => [
'textarea',
'pdfs',
'paragraph_1',
'{form_data}',
esc_html__( 'Paragraph', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'business_address' => [
'text',
'pdfs',
'business_address',
'{form_data}',
esc_html__( 'Business Address', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'business_email' => [
'text',
'pdfs',
'business_email',
'{form_data}',
esc_html__( 'Business Email', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'business_phone' => [
'text',
'pdfs',
'business_phone',
'{form_data}',
esc_html__( 'Business Phone', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'signature_type' => [
'select',
'pdfs',
'signature_type',
'{form_data}',
esc_html__( 'Signature Type', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'options' => [
'text' => esc_html__( 'Text', 'wpforms-pdf' ),
'image' => esc_html__( 'Image', 'wpforms-pdf' ),
],
],
],
'signature_text' => [
'text',
'pdfs',
'signature_text',
'{form_data}',
esc_html__( 'Signature Text', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'signature_url' => [
'image_upload',
'pdfs',
'signature',
'{form_data}',
esc_html__( 'Signature Image', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'hidden_fields' => [ 'position' ],
],
],
'signature_subheading' => [
'text',
'pdfs',
'signature_subheading',
'{form_data}',
esc_html__( 'Signature Subheading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'date' => [
'text',
'pdfs',
'date',
'{form_data}',
esc_html__( 'Date', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'date_subheading' => [
'text',
'pdfs',
'date_subheading',
'{form_data}',
esc_html__( 'Date Subheading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'heading_1' => [
'text',
'pdfs',
'heading_1',
'{form_data}',
esc_html__( 'Heading 1', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'heading_2' => [
'text',
'pdfs',
'heading_2',
'{form_data}',
esc_html__( 'Heading 2', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'heading_3' => [
'text',
'pdfs',
'heading_3',
'{form_data}',
esc_html__( 'Heading 3', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'header_address' => [
'text',
'pdfs',
'header_address',
'{form_data}',
esc_html__( 'Header Address', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'header_address_2' => [
'text',
'pdfs',
'header_address_2',
'{form_data}',
esc_html__( 'Header Address 2', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'header_email' => [
'text',
'pdfs',
'header_email',
'{form_data}',
esc_html__( 'Header Email', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'header_phone' => [
'text',
'pdfs',
'header_phone',
'{form_data}',
esc_html__( 'Header Phone', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'billing_heading' => [
'text',
'pdfs',
'billing_heading',
'{form_data}',
esc_html__( 'Billing Heading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'billing_content' => [
'textarea',
'pdfs',
'billing_content',
'{form_data}',
esc_html__( 'Billing Content', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'details_heading' => [
'text',
'pdfs',
'details_heading',
'{form_data}',
esc_html__( 'Details Heading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'details_content' => [
'textarea',
'pdfs',
'details_content',
'{form_data}',
esc_html__( 'Details Content', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'terms_heading' => [
'text',
'pdfs',
'terms_heading',
'{form_data}',
esc_html__( 'Terms Heading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'terms_content' => [
'textarea',
'pdfs',
'terms_content',
'{form_data}',
esc_html__( 'Terms Content', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'payment_heading' => [
'text',
'pdfs',
'payment_heading',
'{form_data}',
esc_html__( 'Payment Heading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'payment_content' => [
'textarea',
'pdfs',
'payment_content',
'{form_data}',
esc_html__( 'Payment Content', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'invoice_number_heading' => [
'text',
'pdfs',
'invoice_number_heading',
'{form_data}',
esc_html__( 'Invoice Number Heading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'invoice_number' => [
'text',
'pdfs',
'invoice_number',
'{form_data}',
esc_html__( 'Invoice Number', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'business_name' => [
'text',
'pdfs',
'business_name',
'{form_data}',
esc_html__( 'Business Name', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'tax_heading' => [
'text',
'pdfs',
'tax_heading',
'{form_data}',
esc_html__( 'Tax Number Heading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'tax_id' => [
'text',
'pdfs',
'tax_id',
'{form_data}',
esc_html__( 'Tax Number', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'date_heading' => [
'text',
'pdfs',
'date_heading',
'{form_data}',
esc_html__( 'Date Heading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'due_date_heading' => [
'text',
'pdfs',
'due_date_heading',
'{form_data}',
esc_html__( 'Due Date Heading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'due_date' => [
'text',
'pdfs',
'due_date',
'{form_data}',
esc_html__( 'Due Date', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'posted_date_heading' => [
'text',
'pdfs',
'posted_date_heading',
'{form_data}',
esc_html__( 'Date Posted Heading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'posted_date' => [
'text',
'pdfs',
'posted_date',
'{form_data}',
esc_html__( 'Date Posted', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'signature_show' => [
'toggle',
'pdfs',
'signature_show',
'{form_data}',
esc_html__( 'Show Signature', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
],
],
'badge_show' => [
'toggle',
'pdfs',
'badge_show',
'{form_data}',
esc_html__( 'Show Badge', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
],
],
'badge_year' => [
'text',
'pdfs',
'badge_year',
'{form_data}',
esc_html__( 'Badge Year', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'badge_subheading' => [
'text',
'pdfs',
'badge_subheading',
'{form_data}',
esc_html__( 'Badge Subheading', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
'cname' => [
'text',
'pdfs',
'cname',
'{form_data}',
esc_html__( 'Name', 'wpforms-pdf' ),
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $existing_value,
'class' => 'col-two-thirds',
'input_class' => 'wpforms-smart-tags-enabled',
'smarttags' => [ 'type' => 'all' ],
],
],
];
return $fields[ $field_slug ] ?? null;
}
/**
* Get panel field function arguments for color fields.
*
* @since 1.0.0
*
* @param string $field_slug Field slug.
* @param array $template_texts Template texts.
*
* @return array|null
*/
private function get_panel_field_color_args( string $field_slug, array $template_texts ): ?array {
if ( strpos( $field_slug, '_color' ) === false ) {
return null;
}
$text_field_slug = str_replace( '_color', '', $field_slug );
$text_field_args = $this->get_panel_field_text_args( $text_field_slug, $template_texts );
if ( ! $text_field_args || $text_field_args[0] === 'textarea' ) {
return null;
}
$default_value = wp_unslash( $template_texts[ $field_slug ] ?? '' );
return [
'color',
'pdfs',
$field_slug,
'{form_data}',
'',
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_value,
'value' => $default_value,
'class' => 'col-third',
],
];
}
/**
* Get the panel field.
*
* @since 1.0.0
*
* @param string $field_slug Field slug.
* @param array $template_texts Template texts.
*
* @return string
*/
private function get_panel_field( string $field_slug, array $template_texts ): string {
$field_color_args = $this->get_panel_field_color_args( $field_slug, $template_texts );
$field_text_args = $this->get_panel_field_text_args( $field_slug, $template_texts );
// Return an empty string if the field does not exist.
if ( empty( $field_color_args ) && empty( $field_text_args ) ) {
return '';
}
$field_args = $field_color_args ?? $field_text_args;
// Add the form data to the field arguments array.
$field_args[3] = $this->settings->form_data;
// Add `false` as the last argument to the field arguments array.
$field_args[] = false;
// Textarea field is generated differently.
if ( $field_args[0] === 'textarea' ) {
return $this->get_richtext_field( $field_slug, $field_args, $template_texts );
}
return wpforms_panel_field( ...$field_args );
}
/**
* Get richtext field (textarea).
*
* @since 1.0.0
*
* @param string $field_slug Field slug.
* @param array $field_args Panel field args.
* @param array $template_texts Template texts.
*
* @return string
*/
private function get_richtext_field( string $field_slug, array $field_args, array $template_texts ): string {
$default_value = $template_texts[ $field_slug ] ?? '';
$existing_value = $default_value;
$default_color_value = $template_texts[ $field_slug . '_color' ] ?? '';
$existing_color_value = $default_color_value;
$richtext_args = [
'default' => $default_value,
'value' => $existing_value,
'location' => 'pdfs',
'class' => 'wpforms-panel-field-tinymce',
'input_class' => 'wpforms-pdf-tinymce-smarttags',
'smarttags' => [ 'type' => 'all' ],
'tinymce' => [
'editor_height' => '200',
],
];
$field_args[5] = array_merge( $field_args[5], $richtext_args );
// Generate the richtext field.
$field = wpforms_panel_field( ...$field_args );
// Generate the color field.
$field_color = wpforms_panel_field(
'color',
'pdfs',
$field_slug . '_color',
$this->settings->form_data,
'',
[
'parent' => 'settings',
'subsection' => $this->pdf_id,
'default' => $default_color_value,
'value' => $existing_color_value,
'class' => '',
],
false
);
return sprintf(
'
<div class="wpforms-pdf-richtext-and-color wpforms-pdf-%1$s-and-color">
%2$s
%3$s
</div>
',
esc_attr( $field_slug ),
$field,
$field_color
);
}
/**
* Get templates options.
*
* @since 1.0.0
*
* @return array
*/
private function get_templates_options(): array {
$options = [];
$template_category = $this->get_current_option_value( 'template_category', 'notification' );
foreach ( $this->get_templates() as $template_id => $template ) {
if ( $template['category'] !== $template_category ) {
continue;
}
$options[ $template_id ] = $template['title'];
}
return $options;
}
/**
* Get categories options.
*
* @since 1.0.0
*
* @return array
*/
private function get_categories_options(): array {
return array_map(
static function ( $category ) {
return $category['title'];
},
$this->get_categories()
);
}
/**
* Get templates data.
*
* @since 1.0.0
*
* @return array Templates data.
*/
private function get_templates(): array {
return $this->templates_data->get_all_templates();
}
/**
* Get categories data.
*
* @since 1.0.0
*
* @return array Categories data.
*/
private function get_categories(): array {
return $this->templates_data->get_categories();
}
}