File "contact-form-properties.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/contact-form-7/modules/sendinblue/contact-form-properties.php
File size: 6.56 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

add_filter('wpcf7_contact_form_properties', 'wpcf7_sendinblue_register_property', 10, 2);
function wpcf7_sendinblue_register_property($properties, $contact_form)
{
    $service = WPCF7_Sendinblue::get_instance();
    if (!$service->is_active()) {
        return $properties;
    }
    $properties += array('sendinblue' => array());
    return $properties;
}
add_action('wpcf7_save_contact_form', 'wpcf7_sendinblue_save_contact_form', 10, 3);
function wpcf7_sendinblue_save_contact_form($contact_form, $args, $context)
{
    $service = WPCF7_Sendinblue::get_instance();
    if (!$service->is_active()) {
        return;
    }
    $prop = isset($_POST['wpcf7-sendinblue']) ? (array) $_POST['wpcf7-sendinblue'] : array();
    $prop = wp_parse_args($prop, array('enable_contact_list' => false, 'contact_lists' => array(), 'enable_transactional_email' => false, 'email_template' => 0));
    $prop['contact_lists'] = array_map('absint', $prop['contact_lists']);
    $prop['email_template'] = absint($prop['email_template']);
    $contact_form->set_properties(array('sendinblue' => $prop));
}
add_filter('wpcf7_editor_panels', 'wpcf7_sendinblue_editor_panels', 10, 1);
function wpcf7_sendinblue_editor_panels($panels)
{
    $service = WPCF7_Sendinblue::get_instance();
    if (!$service->is_active()) {
        return $panels;
    }
    $contact_form = WPCF7_ContactForm::get_current();
    $prop = wp_parse_args($contact_form->prop('sendinblue'), array('enable_contact_list' => false, 'contact_lists' => array(), 'enable_transactional_email' => false, 'email_template' => 0));
    $editor_panel = function () use($prop, $service) {
        $description = sprintf(esc_html(__("You can set up the Sendinblue integration here. For details, see %s.", 'contact-form-7')), wpcf7_link(__('https://contactform7.com/sendinblue-integration/', 'contact-form-7'), __('Sendinblue integration', 'contact-form-7')));
        $lists = $service->get_lists();
        $templates = $service->get_templates();
        ?>
<h2><?php 
        echo esc_html(__('Sendinblue', 'contact-form-7'));
        ?></h2>

<fieldset>
	<legend><?php 
        echo $description;
        ?></legend>

	<table class="form-table" role="presentation">
		<tbody>
			<tr class="<?php 
        echo $prop['enable_contact_list'] ? '' : 'inactive';
        ?>">
				<th scope="row">
		<?php 
        echo esc_html(__('Contact lists', 'contact-form-7'));
        ?>
				</th>
				<td>
					<fieldset>
						<legend class="screen-reader-text">
		<?php 
        echo esc_html(__('Contact lists', 'contact-form-7'));
        ?>
						</legend>
						<label for="wpcf7-sendinblue-enable-contact-list">
							<input type="checkbox" name="wpcf7-sendinblue[enable_contact_list]" id="wpcf7-sendinblue-enable-contact-list" value="1" <?php 
        checked($prop['enable_contact_list']);
        ?> />
		<?php 
        echo esc_html(__("Add form submitters to your contact lists", 'contact-form-7'));
        ?>
						</label>
					</fieldset>
				</td>
			</tr>
			<tr>
				<th scope="row"></th>
				<td>
					<fieldset>
		<?php 
        if ($lists) {
            echo sprintf('<legend>%1$s</legend>', esc_html(__('Select lists to which contacts are added:', 'contact-form-7')));
            echo '<ul>';
            foreach ($lists as $list) {
                echo sprintf('<li><label><input %1$s /> %2$s</label></li>', wpcf7_format_atts(array('type' => 'checkbox', 'name' => 'wpcf7-sendinblue[contact_lists][]', 'value' => $list['id'], 'checked' => in_array($list['id'], $prop['contact_lists']) ? 'checked' : '')), esc_html($list['name']));
            }
            echo '</ul>';
        } else {
            echo sprintf('<legend>%1$s</legend>', esc_html(__('You have no contact list yet.', 'contact-form-7')));
        }
        ?>
					</fieldset>
		<?php 
        echo sprintf('<p><a %1$s>%2$s <span class="screen-reader-text">%3$s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a></p>', wpcf7_format_atts(array('href' => 'https://my.sendinblue.com/lists', 'target' => '_blank', 'rel' => 'external noreferrer noopener')), esc_html(__('Manage your contact lists', 'contact-form-7')), esc_html(__('(opens in a new tab)', 'contact-form-7')));
        ?>
				</td>
			</tr>
			<tr class="<?php 
        echo $prop['enable_transactional_email'] ? '' : 'inactive';
        ?>">
				<th scope="row">
		<?php 
        echo esc_html(__('Welcome email', 'contact-form-7'));
        ?>
				</th>
				<td>
					<fieldset>
						<legend class="screen-reader-text">
		<?php 
        echo esc_html(__('Welcome email', 'contact-form-7'));
        ?>
						</legend>
						<label for="wpcf7-sendinblue-enable-transactional-email">
							<input type="checkbox" name="wpcf7-sendinblue[enable_transactional_email]" id="wpcf7-sendinblue-enable-transactional-email" value="1" <?php 
        checked($prop['enable_transactional_email']);
        ?> />
		<?php 
        echo esc_html(__("Send a welcome email to new contacts", 'contact-form-7'));
        ?>
						</label>
					</fieldset>
				</td>
			</tr>
			<tr>
				<th scope="row"></th>
				<td>
					<fieldset>
		<?php 
        if ($templates) {
            echo sprintf('<legend>%1$s</legend>', esc_html(__('Select an email template:', 'contact-form-7')));
            echo '<select name="wpcf7-sendinblue[email_template]">';
            echo sprintf('<option %1$s>%2$s</option>', wpcf7_format_atts(array('value' => 0, 'selected' => 0 === $prop['email_template'] ? 'selected' : '')), esc_html(__('&mdash; Select &mdash;', 'contact-form-7')));
            foreach ($templates as $template) {
                echo sprintf('<option %1$s>%2$s</option>', wpcf7_format_atts(array('value' => $template['id'], 'selected' => $prop['email_template'] === $template['id'] ? 'selected' : '')), esc_html($template['name']));
            }
            echo '</select>';
        } else {
            echo sprintf('<legend>%1$s</legend>', esc_html(__('You have no active email template yet.', 'contact-form-7')));
        }
        ?>
					</fieldset>
		<?php 
        echo sprintf('<p><a %1$s>%2$s <span class="screen-reader-text">%3$s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a></p>', wpcf7_format_atts(array('href' => 'https://my.sendinblue.com/camp/lists/template', 'target' => '_blank', 'rel' => 'external noreferrer noopener')), esc_html(__('Manage your email templates', 'contact-form-7')), esc_html(__('(opens in a new tab)', 'contact-form-7')));
        ?>
				</td>
			</tr>
		</tbody>
	</table>
</fieldset>
<?php 
    };
    $panels += array('sendinblue-panel' => array('title' => __('Sendinblue', 'contact-form-7'), 'callback' => $editor_panel));
    return $panels;
}