first commit
This commit is contained in:
@@ -0,0 +1,330 @@
|
||||
<?php defined('ABSPATH') or exit;
|
||||
/** @var MC4WP_Integration $integration */
|
||||
/** @var array $opts */
|
||||
?>
|
||||
<div id="mc4wp-admin" class="wrap mc4wp-settings">
|
||||
|
||||
<p class="mc4wp-breadcrumbs">
|
||||
<span class="prefix"><?php echo esc_html__('You are here: ', 'mailchimp-for-wp'); ?></span>
|
||||
<a href="<?php echo esc_url(admin_url('admin.php?page=mailchimp-for-wp')); ?>">Mailchimp for WordPress</a> ›
|
||||
<a href="<?php echo esc_url(admin_url('admin.php?page=mailchimp-for-wp-integrations')); ?>"><?php echo esc_html__('Integrations', 'mailchimp-for-wp'); ?></a> ›
|
||||
<span class="current-crumb"><strong><?php echo esc_html($integration->name); ?></strong></span>
|
||||
</p>
|
||||
|
||||
<div class="mc4wp-row">
|
||||
|
||||
<!-- Main Content -->
|
||||
<div class="main-content mc4wp-col">
|
||||
|
||||
<h1 class="mc4wp-page-title">
|
||||
<?php printf(esc_html__('%s integration', 'mailchimp-for-wp'), esc_html($integration->name)); ?>
|
||||
</h1>
|
||||
|
||||
<h2 style="display: none;"></h2>
|
||||
<?php settings_errors(); ?>
|
||||
|
||||
<div id="notice-additional-fields" class="notice notice-warning" style="display: none;">
|
||||
<p><?php echo esc_html__('The selected Mailchimp lists require non-default fields, which may prevent this integration from working.', 'mailchimp-for-wp'); ?></p>
|
||||
<p><?php echo sprintf(wp_kses(__('Please ensure you <a href="%1$s">configure the plugin to send all required fields</a> or <a href="%2$s">log into your Mailchimp account</a> and make sure only the email & name fields are marked as required fields for the selected list(s).', 'mailchimp-for-wp'), array( 'a' => array( 'href' => array() ) )), 'https://www.mc4wp.com/kb/send-additional-fields-from-integrations/#utm_source=wp-plugin&utm_medium=mailchimp-for-wp&utm_campaign=integrations-page', 'https://admin.mailchimp.com/lists/'); ?></p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<?php echo esc_html($integration->description); ?>
|
||||
</p>
|
||||
|
||||
<!-- Settings form -->
|
||||
<form method="post" action="<?php echo admin_url('options.php'); ?>">
|
||||
<?php settings_fields('mc4wp_integrations_settings'); ?>
|
||||
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Runs just before integration settings are outputted in admin.
|
||||
*
|
||||
* @since 3.0
|
||||
*
|
||||
* @param MC4WP_Integration $integration
|
||||
* @param array $opts
|
||||
* @ignore
|
||||
*/
|
||||
|
||||
do_action('mc4wp_admin_before_integration_settings', $integration, $opts);
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
do_action('mc4wp_admin_before_' . $integration->slug . '_integration_settings', $integration, $opts);
|
||||
?>
|
||||
|
||||
<table class="form-table">
|
||||
|
||||
<?php
|
||||
if ($integration->has_ui_element('enabled')) {
|
||||
?>
|
||||
<tr valign="top">
|
||||
<th scope="row"><?php echo esc_html__('Enabled?', 'mailchimp-for-wp'); ?></th>
|
||||
<td class="nowrap integration-toggles-wrap">
|
||||
<label><input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][enabled]" value="1" <?php checked($opts['enabled'], 1); ?> /> <?php echo esc_html__('Yes', 'mailchimp-for-wp'); ?></label>
|
||||
<label><input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][enabled]" value="0" <?php checked($opts['enabled'], 0); ?> /> <?php echo esc_html__('No', 'mailchimp-for-wp'); ?></label>
|
||||
<p class="description"><?php echo sprintf(esc_html__('Enable the %s integration? This will add a sign-up checkbox to the form.', 'mailchimp-for-wp'), $integration->name); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
$config = array(
|
||||
'element' => 'mc4wp_integrations[' . $integration->slug . '][enabled]',
|
||||
'value' => '1',
|
||||
'hide' => false,
|
||||
);
|
||||
?>
|
||||
<tbody class="integration-toggled-settings" data-showif="<?php echo esc_attr(json_encode($config)); ?>">
|
||||
|
||||
<?php
|
||||
if ($integration->has_ui_element('implicit')) {
|
||||
?>
|
||||
<tr valign="top">
|
||||
<th scope="row"><?php echo esc_html__('Implicit?', 'mailchimp-for-wp'); ?></th>
|
||||
<td class="nowrap">
|
||||
<label><input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][implicit]" value="1" <?php checked($opts['implicit'], 1); ?> /> <?php echo esc_html__('Yes', 'mailchimp-for-wp'); ?></label>
|
||||
<label><input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][implicit]" value="0" <?php checked($opts['implicit'], 0); ?> /> <?php echo esc_html__('No', 'mailchimp-for-wp'); ?> <?php echo '<em>', esc_html__('(recommended)', 'mailchimp-for-wp'), '</em>'; ?>
|
||||
</label>
|
||||
<p class="description">
|
||||
<?php
|
||||
echo esc_html__('Select "yes" if you want to subscribe people without asking them explicitly.', 'mailchimp-for-wp');
|
||||
echo '<br />';
|
||||
|
||||
echo sprintf(
|
||||
wp_kses(
|
||||
__('<strong>Warning: </strong> enabling this may affect your <a href="%s">GDPR compliance</a>.', 'mailchimp-for-wp'),
|
||||
array(
|
||||
'a' => array( 'href' => array() ),
|
||||
'strong' => array(),
|
||||
)
|
||||
),
|
||||
'https://www.mc4wp.com/kb/gdpr-compliance/#utm_source=wp-plugin&utm_medium=mailchimp-for-wp&utm_campaign=integrations-page'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
if ($integration->has_ui_element('lists')) {
|
||||
?>
|
||||
<?php // hidden input to make sure a value is sent to the server when no checkboxes were selected ?>
|
||||
<input type="hidden" name="mc4wp_integrations[<?php echo $integration->slug; ?>][lists][]" value="" />
|
||||
<tr valign="top">
|
||||
<th scope="row"><?php echo esc_html__('Mailchimp Lists', 'mailchimp-for-wp'); ?></th>
|
||||
<?php
|
||||
if (! empty($lists)) {
|
||||
echo '<td>';
|
||||
echo '<ul style="margin-bottom: 20px; max-height: 300px; overflow-y: auto;">';
|
||||
foreach ($lists as $list) {
|
||||
echo '<li><label>';
|
||||
echo sprintf('<input type="checkbox" name="mc4wp_integrations[%s][lists][]" value="%s" class="mc4wp-list-input" %s> ', $integration->slug, $list->id, checked(in_array($list->id, $opts['lists'], true), true, false));
|
||||
echo esc_html($list->name);
|
||||
echo '</label></li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
|
||||
echo '<p class="description">';
|
||||
echo esc_html__('Select the list(s) to which people who check the checkbox should be subscribed.', 'mailchimp-for-wp');
|
||||
echo '</p>';
|
||||
echo '</td>';
|
||||
} else {
|
||||
echo '<td>', sprintf(wp_kses(__('No lists found, <a href="%s">are you connected to Mailchimp</a>?', 'mailchimp-for-wp'), array( 'a' => array( 'href' => array() ) )), esc_url(admin_url('admin.php?page=mailchimp-for-wp'))), '</td>';
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
<?php
|
||||
} // end if UI has lists
|
||||
?>
|
||||
|
||||
<?php
|
||||
if ($integration->has_ui_element('label')) {
|
||||
$config = array(
|
||||
'element' => 'mc4wp_integrations[' . $integration->slug . '][implicit]',
|
||||
'value' => 0,
|
||||
);
|
||||
?>
|
||||
<tr valign="top" data-showif="<?php echo esc_attr(json_encode($config)); ?>">
|
||||
<th scope="row"><label for="mc4wp_checkbox_label"><?php echo esc_html__('Checkbox label text', 'mailchimp-for-wp'); ?></label></th>
|
||||
<td>
|
||||
<input type="text" class="widefat" id="mc4wp_checkbox_label" name="mc4wp_integrations[<?php echo $integration->slug; ?>][label]" value="<?php echo esc_attr($opts['label']); ?>" required />
|
||||
<p class="description"><?php printf(esc_html__('HTML tags like %s are allowed in the label text.', 'mailchimp-for-wp'), '<code>' . esc_html('<strong><em><a>') . '</code>'); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
} // end if UI label
|
||||
?>
|
||||
|
||||
|
||||
<?php
|
||||
if ($integration->has_ui_element('precheck')) {
|
||||
$config = array(
|
||||
'element' => 'mc4wp_integrations[' . $integration->slug . '][implicit]',
|
||||
'value' => 0,
|
||||
);
|
||||
?>
|
||||
<tr valign="top" data-showif="<?php echo esc_attr(json_encode($config)); ?>">
|
||||
<th scope="row"><?php echo esc_html__('Pre-check the checkbox?', 'mailchimp-for-wp'); ?></th>
|
||||
<td class="nowrap">
|
||||
<label><input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][precheck]" value="1" <?php checked($opts['precheck'], 1); ?> /> <?php echo esc_html__('Yes', 'mailchimp-for-wp'); ?></label>
|
||||
<label><input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][precheck]" value="0" <?php checked($opts['precheck'], 0); ?> /> <?php echo esc_html__('No', 'mailchimp-for-wp'); ?> <?php echo '<em>' . __('(recommended)', 'mailchimp-for-wp') . '</em>'; ?></label>
|
||||
<p class="description">
|
||||
<?php
|
||||
echo esc_html__('Select "yes" if the checkbox should be pre-checked.', 'mailchimp-for-wp');
|
||||
echo '<br />';
|
||||
echo sprintf(
|
||||
wp_kses(
|
||||
__('<strong>Warning: </strong> enabling this may affect your <a href="%s">GDPR compliance</a>.', 'mailchimp-for-wp'),
|
||||
array(
|
||||
'a' => array( 'href' => array() ),
|
||||
'strong' => array(),
|
||||
)
|
||||
),
|
||||
'https://www.mc4wp.com/kb/gdpr-compliance/#utm_source=wp-plugin&utm_medium=mailchimp-for-wp&utm_campaign=integrations-page'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<?php
|
||||
} // end if UI precheck
|
||||
?>
|
||||
|
||||
<?php
|
||||
if ($integration->has_ui_element('css')) {
|
||||
$config = array(
|
||||
'element' => 'mc4wp_integrations[' . $integration->slug . '][implicit]',
|
||||
'value' => 0,
|
||||
);
|
||||
?>
|
||||
<tr valign="top" data-showif="<?php echo esc_attr(json_encode($config)); ?>">
|
||||
<th scope="row"><?php echo esc_html__('Load some default CSS?', 'mailchimp-for-wp'); ?></th>
|
||||
<td class="nowrap">
|
||||
<label><input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][css]" value="1" <?php checked($opts['css'], 1); ?> />‏ <?php echo esc_html__('Yes', 'mailchimp-for-wp'); ?></label>
|
||||
<label><input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][css]" value="0" <?php checked($opts['css'], 0); ?> />‏ <?php echo esc_html__('No', 'mailchimp-for-wp'); ?></label>
|
||||
<p class="description"><?php echo esc_html__('Select "yes" if the checkbox appears in a weird place.', 'mailchimp-for-wp'); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
} // end if UI css
|
||||
?>
|
||||
|
||||
<?php
|
||||
if ($integration->has_ui_element('double_optin')) {
|
||||
?>
|
||||
<tr valign="top">
|
||||
<th scope="row"><?php echo esc_html__('Double opt-in?', 'mailchimp-for-wp'); ?></th>
|
||||
<td class="nowrap">
|
||||
<label>
|
||||
<input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][double_optin]" value="1" <?php checked($opts['double_optin'], 1); ?> />‏
|
||||
<?php echo esc_html__('Yes', 'mailchimp-for-wp'); ?>
|
||||
</label>
|
||||
<label>
|
||||
<input type="radio" id="mc4wp_checkbox_double_optin_0" name="mc4wp_integrations[<?php echo $integration->slug; ?>][double_optin]" value="0" <?php checked($opts['double_optin'], 0); ?> />‏
|
||||
<?php echo esc_html__('No', 'mailchimp-for-wp'); ?>
|
||||
</label>
|
||||
<p class="description">
|
||||
<?php echo esc_html__('Select "yes" if you want people to confirm their email address before being subscribed (recommended)', 'mailchimp-for-wp'); ?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
} // end if UI double_optin
|
||||
?>
|
||||
|
||||
<?php
|
||||
if ($integration->has_ui_element('update_existing')) {
|
||||
?>
|
||||
<tr valign="top">
|
||||
<th scope="row"><?php echo esc_html__('Update existing subscribers?', 'mailchimp-for-wp'); ?></th>
|
||||
<td class="nowrap">
|
||||
<label>
|
||||
<input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][update_existing]" value="1" <?php checked($opts['update_existing'], 1); ?> />‏
|
||||
<?php echo esc_html__('Yes', 'mailchimp-for-wp'); ?>
|
||||
</label>
|
||||
<label>
|
||||
<input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][update_existing]" value="0" <?php checked($opts['update_existing'], 0); ?> />‏
|
||||
<?php echo esc_html__('No', 'mailchimp-for-wp'); ?>
|
||||
</label>
|
||||
<p class="description"><?php echo esc_html__('Select "yes" if you want to update existing subscribers with the data that is sent.', 'mailchimp-for-wp'); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
} // end if UI update_existing
|
||||
?>
|
||||
|
||||
<?php
|
||||
if ($integration->has_ui_element('replace_interests')) {
|
||||
$config = array(
|
||||
'element' => 'mc4wp_integrations[' . $integration->slug . '][update_existing]',
|
||||
'value' => 1,
|
||||
);
|
||||
?>
|
||||
<tr valign="top" data-showif="<?php echo esc_attr(json_encode($config)); ?>">
|
||||
<th scope="row"><?php echo esc_html__('Replace interest groups?', 'mailchimp-for-wp'); ?></th>
|
||||
<td class="nowrap">
|
||||
<label>
|
||||
<input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][replace_interests]" value="1" <?php checked($opts['replace_interests'], 1); ?> />‏
|
||||
<?php echo esc_html__('Yes', 'mailchimp-for-wp'); ?>
|
||||
</label>
|
||||
<label>
|
||||
<input type="radio" name="mc4wp_integrations[<?php echo $integration->slug; ?>][replace_interests]" value="0" <?php checked($opts['replace_interests'], 0); ?> />‏
|
||||
<?php echo esc_html__('No', 'mailchimp-for-wp'); ?>
|
||||
</label>
|
||||
<p class="description">
|
||||
<?php echo esc_html__('Select "no" if you want to add the selected interests to any previously selected interests when updating a subscriber.', 'mailchimp-for-wp'); ?>
|
||||
<?php echo sprintf('<a href="%s" target="_blank">' . esc_html__('What does this do?', 'mailchimp-for-wp') . '</a>', 'https://www.mc4wp.com/kb/what-does-replace-groupings-mean/#utm_source=wp-plugin&utm_medium=mailchimp-for-wp&utm_campaign=integrations-page'); ?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
} // end if UI replace_interests
|
||||
?>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Runs right after integration settings are outputted (before the submit button).
|
||||
*
|
||||
* @param MC4WP_Integration $integration
|
||||
* @param array $opts
|
||||
* @ignore
|
||||
*/
|
||||
do_action('mc4wp_admin_after_integration_settings', $integration, $opts);
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
do_action('mc4wp_admin_after_' . $integration->slug . '_integration_settings', $integration, $opts);
|
||||
?>
|
||||
|
||||
<?php
|
||||
if (count($integration->get_ui_elements()) > 0) {
|
||||
submit_button();
|
||||
}
|
||||
?>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="mc4wp-sidebar mc4wp-col">
|
||||
<?php require MC4WP_PLUGIN_DIR . '/includes/views/parts/admin-sidebar.php'; ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,142 @@
|
||||
<?php defined('ABSPATH') or exit;
|
||||
/** @var MC4WP_Integration_Fixture[] $enabled_integrations */
|
||||
/** @var MC4WP_Integration_Fixture[] $available_integrations */
|
||||
/** @var MC4WP_Integration_Fixture $integration */
|
||||
function _mc4wp_integrations_table_row($integration)
|
||||
{
|
||||
?>
|
||||
<tr style="
|
||||
<?php
|
||||
if (! $integration->is_installed()) {
|
||||
echo 'opacity: 0.6;';
|
||||
}
|
||||
?>
|
||||
">
|
||||
|
||||
<!-- Integration Name -->
|
||||
<td>
|
||||
|
||||
<?php
|
||||
if ($integration->is_installed()) {
|
||||
echo sprintf('<strong><a href="%s" title="%s">%s</a></strong>', esc_attr(add_query_arg(array( 'integration' => $integration->slug ))), esc_html__('Configure this integration', 'mailchimp-for-wp'), $integration->name);
|
||||
} else {
|
||||
echo $integration->name;
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
</td>
|
||||
<td class="desc">
|
||||
<?php
|
||||
echo esc_html($integration->description);
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
if ($integration->enabled && $integration->is_installed()) {
|
||||
echo '<span class="mc4wp-status positive">', esc_html__('Active', 'mailchimp-for-wp'), '</span>';
|
||||
} elseif ($integration->is_installed()) {
|
||||
echo '<span class="mc4wp-status neutral">', esc_html__('Inactive', 'mailchimp-for-wp'), '</span>';
|
||||
} else {
|
||||
echo '<span>', esc_html__('Not installed', 'mailchimp-for-wp'), '</span>';
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Render a table with integrations
|
||||
*
|
||||
* @param $integrations
|
||||
* @ignore
|
||||
*/
|
||||
function _mc4wp_integrations_table($integrations)
|
||||
{
|
||||
?>
|
||||
<table class="mc4wp-table widefat striped">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo esc_html__('Name', 'mailchimp-for-wp'); ?></th>
|
||||
<th><?php echo esc_html__('Description', 'mailchimp-for-wp'); ?></th>
|
||||
<th><?php echo esc_html__('Status', 'mailchimp-for-wp'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
<?php
|
||||
// active & enabled integrations first
|
||||
foreach ($integrations as $integration) {
|
||||
if ($integration->is_installed() && $integration->enabled) {
|
||||
_mc4wp_integrations_table_row($integration);
|
||||
}
|
||||
}
|
||||
|
||||
// active & disabled integrations next
|
||||
foreach ($integrations as $integration) {
|
||||
if ($integration->is_installed() && ! $integration->enabled) {
|
||||
_mc4wp_integrations_table_row($integration);
|
||||
}
|
||||
}
|
||||
|
||||
// rest
|
||||
foreach ($integrations as $integration) {
|
||||
if (! $integration->is_installed()) {
|
||||
_mc4wp_integrations_table_row($integration);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<div id="mc4wp-admin" class="wrap mc4wp-settings">
|
||||
|
||||
<p class="mc4wp-breadcrumbs">
|
||||
<span class="prefix"><?php echo esc_html__('You are here: ', 'mailchimp-for-wp'); ?></span>
|
||||
<a href="<?php echo admin_url('admin.php?page=mailchimp-for-wp'); ?>">Mailchimp for WordPress</a> ›
|
||||
<span class="current-crumb"><strong><?php echo esc_html__('Integrations', 'mailchimp-for-wp'); ?></strong></span>
|
||||
</p>
|
||||
|
||||
<div class="mc4wp-row">
|
||||
|
||||
<!-- Main Content -->
|
||||
<div class="mc4wp-col mc4wp-col-4">
|
||||
|
||||
<h1 class="mc4wp-page-title">Mailchimp for WordPress: <?php echo esc_html__('Integrations', 'mailchimp-for-wp'); ?></h1>
|
||||
|
||||
<h2 style="display: none;"></h2>
|
||||
<?php settings_errors(); ?>
|
||||
|
||||
<p>
|
||||
<?php echo esc_html__('The table below shows all available integrations.', 'mailchimp-for-wp'); ?>
|
||||
<?php echo esc_html__('Click on the name of an integration to edit all settings specific to that integration.', 'mailchimp-for-wp'); ?>
|
||||
</p>
|
||||
|
||||
<form action="<?php echo admin_url('options.php'); ?>" method="post">
|
||||
|
||||
<?php settings_fields('mc4wp_integrations_settings'); ?>
|
||||
|
||||
<h3><?php echo esc_html__('Integrations', 'mailchimp-for-wp'); ?></h3>
|
||||
<?php _mc4wp_integrations_table($integrations); ?>
|
||||
|
||||
<p><?php echo esc_html__('Greyed out integrations will become available after installing & activating the corresponding plugin.', 'mailchimp-for-wp'); ?></p>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="mc4wp-sidebar mc4wp-col">
|
||||
<?php require MC4WP_PLUGIN_DIR . '/includes/views/parts/admin-sidebar.php'; ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user