Version Description
Download this release
Release Info
Developer | Icegram |
Plugin | Email Subscribers & Newsletters |
Version | 4.6.13 |
Comparing to | |
See all releases |
Code changes from version 4.6.12.1 to 4.6.13
- email-subscribers.php +3 -3
- lite/admin/class-email-subscribers-admin.php +61 -60
- lite/admin/class-ig-es-campaign-rules.php +36 -54
- lite/admin/css/campaign-rules.css +0 -163
- lite/admin/css/email-subscribers-admin.css +184 -6
- lite/admin/dist/main.css +1 -1
- lite/admin/dist/main.js +1 -1
- lite/admin/js/campaign-rules.js +0 -201
- lite/admin/js/email-subscribers-admin.js +1156 -22
- lite/admin/js/ig-es-workflows-variables.js +0 -170
- lite/admin/js/ig-es-workflows.js +0 -384
- lite/admin/js/subscribers.js +0 -349
- lite/includes/class-es-common.php +7 -4
- lite/includes/class-es-install.php +4 -0
- lite/includes/classes/class-es-campaign-report.php +2 -2
- lite/includes/classes/class-es-contacts-table.php +1 -1
- lite/includes/classes/class-es-import-subscribers.php +0 -2
- lite/includes/classes/class-es-newsletters.php +9 -4
- lite/includes/classes/class-es-post-notifications.php +0 -3
- lite/includes/classes/class-es-queue.php +110 -91
- lite/includes/classes/class-ig-es-background-process-helper.php +5 -2
- lite/includes/classes/class-ig-es-subscriber-query.php +46 -12
- lite/includes/db/class-es-db-campaigns.php +6 -0
- lite/includes/pro-features.php +55 -35
- lite/includes/upgrade/es-update-functions.php +53 -0
- lite/includes/workflows/actions/class-es-action-add-to-list.php +4 -1
- lite/includes/workflows/actions/class-es-action-delete-contact.php +5 -1
- lite/includes/workflows/actions/class-es-action-update-contact.php +4 -1
- lite/includes/workflows/admin/class-es-workflow-admin-ajax.php +9 -4
- lite/includes/workflows/admin/views/meta-box-trigger.php +11 -0
- lite/languages/email-subscribers.pot +258 -264
- readme.txt +9 -2
email-subscribers.php
CHANGED
@@ -3,11 +3,11 @@
|
|
3 |
* Plugin Name: Email Subscribers & Newsletters
|
4 |
* Plugin URI: https://www.icegram.com/
|
5 |
* Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
|
6 |
-
* Version: 4.6.
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
10 |
-
* Tested up to: 5.
|
11 |
* WC requires at least: 3.6.0
|
12 |
* WC tested up to: 4.9.2
|
13 |
* ES WOO: 7120515:9f4c7f8bb491260ef19edf9699db73e6
|
@@ -178,7 +178,7 @@ if ( 'premium' === $ig_es_plan ) {
|
|
178 |
/* ***************************** Initial Compatibility Work (End) ******************* */
|
179 |
|
180 |
if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
|
181 |
-
define( 'ES_PLUGIN_VERSION', '4.6.
|
182 |
}
|
183 |
|
184 |
// Plugin Folder Path.
|
3 |
* Plugin Name: Email Subscribers & Newsletters
|
4 |
* Plugin URI: https://www.icegram.com/
|
5 |
* Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
|
6 |
+
* Version: 4.6.13
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
10 |
+
* Tested up to: 5.7
|
11 |
* WC requires at least: 3.6.0
|
12 |
* WC tested up to: 4.9.2
|
13 |
* ES WOO: 7120515:9f4c7f8bb491260ef19edf9699db73e6
|
178 |
/* ***************************** Initial Compatibility Work (End) ******************* */
|
179 |
|
180 |
if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
|
181 |
+
define( 'ES_PLUGIN_VERSION', '4.6.13' );
|
182 |
}
|
183 |
|
184 |
// Plugin Folder Path.
|
lite/admin/class-email-subscribers-admin.php
CHANGED
@@ -155,45 +155,64 @@ class Email_Subscribers_Admin {
|
|
155 |
return;
|
156 |
}
|
157 |
|
|
|
|
|
158 |
wp_enqueue_script( $this->email_subscribers, plugin_dir_url( __FILE__ ) . 'js/email-subscribers-admin.js', array( 'jquery', 'jquery-ui-core', 'jquery-ui-tabs' ), $this->version, false );
|
159 |
|
160 |
$ig_es_js_data = array(
|
161 |
'security' => wp_create_nonce( 'ig-es-admin-ajax-nonce' ),
|
162 |
'i18n_data' => array(
|
|
|
163 |
'ajax_error_message' => __( 'An error has occured. Please try again later.', 'email-subscribers' ),
|
164 |
'broadcast_draft_success_message' => __( 'Broadcast saved as draft successfully.', 'email-subscribers' ),
|
165 |
'broadcast_draft_error_message' => __( 'An error has occured while saving the broadcast. Please try again later.', 'email-subscribers' ),
|
166 |
'broadcast_subject_empty_message' => __( 'Please add a broadcast subject before saving.', 'email-subscribers' ),
|
167 |
'empty_template_message' => __( 'Please add email body.', 'email-subscribers' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
),
|
|
|
169 |
);
|
170 |
|
171 |
wp_localize_script( $this->email_subscribers, 'ig_es_js_data', $ig_es_js_data );
|
172 |
|
173 |
-
$
|
174 |
-
|
175 |
-
if ( ES()->is_es_admin_screen( $page_prefix . '_page_es_workflows' ) ) {
|
176 |
|
177 |
if ( ! wp_script_is( 'clipboard', 'registered' ) ) {
|
178 |
wp_enqueue_script( 'clipboard', plugin_dir_url( __FILE__ ) . 'js/clipboard.js', array( 'jquery' ), '2.0.6', false );
|
179 |
}
|
180 |
|
181 |
-
wp_enqueue_script( $this->email_subscribers . '-workflows', plugin_dir_url( __FILE__ ) . 'js/ig-es-workflows.js', array( 'jquery', 'jquery-ui-datepicker' ), $this->version, false );
|
182 |
-
wp_enqueue_script( $this->email_subscribers . '-workflows-variables', plugin_dir_url( __FILE__ ) . 'js/ig-es-workflows-variables.js', array( 'jquery', 'clipboard' ), $this->version, false );
|
183 |
-
|
184 |
-
$workflows_data = array(
|
185 |
-
'security' => wp_create_nonce( 'ig-es-workflow-nonce' ),
|
186 |
-
'no_trigger_message' => __( 'Please select a trigger before saving the workflow.', 'email-subscribers' ),
|
187 |
-
'no_actions_message' => __( 'Please add some actions before saving the workflow.', 'email-subscribers' ),
|
188 |
-
'no_action_selected_message' => __( 'Please select an action that this workflow should perform before saving the workflow.', 'email-subscribers' ),
|
189 |
-
'trigger_change_message' => __( 'Changing the trigger will remove existing actions. Do you want to proceed anyway?.', 'email-subscribers' ),
|
190 |
-
'placeholder_copied_message' => __( 'Copied!', 'email-subscribers' ),
|
191 |
-
);
|
192 |
-
|
193 |
-
$workflows_data = array_merge( $workflows_data, ES_Workflow_Admin_Edit::get_workflow_data() );
|
194 |
-
|
195 |
-
wp_localize_script( $this->email_subscribers . '-workflows', 'ig_es_workflows_data', $workflows_data );
|
196 |
-
|
197 |
if ( ! function_exists( 'ig_es_wp_js_editor_admin_scripts' ) ) {
|
198 |
/**
|
199 |
* Include WP JS Editor library's main file. This file contains required functions to enqueue required js file which being used to create WordPress editor dynamcially.
|
@@ -203,45 +222,24 @@ class Email_Subscribers_Admin {
|
|
203 |
|
204 |
// Load required html/js for dynamic WordPress editor.
|
205 |
ig_es_wp_js_editor_admin_scripts();
|
206 |
-
} else if ( ES()->is_es_admin_screen( $page_prefix . '_page_es_subscribers' ) ) {
|
207 |
-
wp_enqueue_script( $this->email_subscribers . '-subscribers', plugin_dir_url( __FILE__ ) . 'js/subscribers.js', array( 'jquery', 'plupload-all' ), $this->version, false );
|
208 |
-
|
209 |
-
$subscribers_data = array(
|
210 |
-
'security' => wp_create_nonce( 'ig-es-admin-ajax-nonce' ),
|
211 |
-
'i18n' => array(
|
212 |
-
'select_status' => esc_html__( 'Please select the status for the importing contacts!', 'email-subscribers' ),
|
213 |
-
'select_email_column' => esc_html__( 'Please select the email address column!', 'email-subscribers' ),
|
214 |
-
'prepare_data' => esc_html__( 'Preparing Data', 'email-subscribers' ),
|
215 |
-
/* translators: %s: Upload progress */
|
216 |
-
'uploading' => esc_html__( 'Uploading...%s', 'email-subscribers' ),
|
217 |
-
/* translators: %s: Import progress */
|
218 |
-
'import_contacts' => esc_html__( 'Importing contacts...%s', 'email-subscribers' ),
|
219 |
-
/* translators: %s: Import failed svg icon */
|
220 |
-
'import_failed' => esc_html__( 'Import failed! %s', 'email-subscribers' ),
|
221 |
-
'no_windowclose' => esc_html__( 'Please do not close this window until it completes...', 'email-subscribers' ),
|
222 |
-
'prepare_import' => esc_html__( 'Preparing Import...', 'email-subscribers' ),
|
223 |
-
/* translators: 1. Imported contacts count 2. Total contacts count 3. Failed to import count 4. Memory usage */
|
224 |
-
'current_stats' => esc_html__( 'Currently %1$s of %2$s imported with %3$s errors. %4$s memory usage', 'email-subscribers' ),
|
225 |
-
/* translators: %s: Time left in minutes */
|
226 |
-
'estimate_time' => esc_html__( 'Estimate time left: %s minutes', 'email-subscribers' ),
|
227 |
-
/* translators: %s: Next attempt delaly time */
|
228 |
-
'continues_in' => esc_html__( 'Continues in %s seconds', 'email-subscribers' ),
|
229 |
-
'error_importing' => esc_html__( 'There was a problem during importing contacts. Please check the error logs for more information!', 'email-subscribers' ),
|
230 |
-
'confirm_import' => esc_html__( 'Do you really like to import these contacts?', 'email-subscribers' ),
|
231 |
-
/* translators: %s: Process complete svg icon */
|
232 |
-
'import_complete' => esc_html__( 'Import complete! %s', 'email-subscribers' ),
|
233 |
-
'onbeforeunloadimport' => esc_html__( 'You are currently importing subscribers! If you leave the page all pending subscribers don\'t get imported!', 'email-subscribers' ),
|
234 |
-
),
|
235 |
-
);
|
236 |
|
237 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
}
|
239 |
|
240 |
//timepicker
|
241 |
wp_register_script( $this->email_subscribers . '-timepicker', plugin_dir_url( __FILE__ ) . 'js/jquery.timepicker.js', array( 'jquery' ), ES_PLUGIN_VERSION, true );
|
242 |
wp_enqueue_script( $this->email_subscribers . '-timepicker' );
|
243 |
|
244 |
-
|
245 |
if ( ! empty( $get_page ) && 'es_dashboard' === $get_page || 'es_reports' === $get_page ) {
|
246 |
wp_enqueue_script( 'frappe-js', 'https://unpkg.com/frappe-charts@1.5.2/dist/frappe-charts.min.iife.js', array( 'jquery' ), $this->version, false );
|
247 |
}
|
@@ -632,22 +630,25 @@ class Email_Subscribers_Admin {
|
|
632 |
$list_id = ig_es_get_request_data( 'list_id', 0 );
|
633 |
$status = ig_es_get_request_data( 'status', 'all' );
|
634 |
$conditions = ig_es_get_request_data( 'conditions', array() );
|
|
|
635 |
|
636 |
if ( 0 == $list_id && empty( $conditions) ) {
|
637 |
return 0;
|
638 |
}
|
639 |
|
640 |
$response_data = array();
|
641 |
-
|
642 |
if ( ! empty( $conditions ) ) {
|
643 |
-
$
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
|
|
|
|
651 |
ob_start();
|
652 |
do_action( 'ig_es_campaign_show_conditions', $conditions );
|
653 |
$response_data['conditions_html'] = ob_get_clean();
|
155 |
return;
|
156 |
}
|
157 |
|
158 |
+
$get_page = ig_es_get_request_data( 'page' );
|
159 |
+
|
160 |
wp_enqueue_script( $this->email_subscribers, plugin_dir_url( __FILE__ ) . 'js/email-subscribers-admin.js', array( 'jquery', 'jquery-ui-core', 'jquery-ui-tabs' ), $this->version, false );
|
161 |
|
162 |
$ig_es_js_data = array(
|
163 |
'security' => wp_create_nonce( 'ig-es-admin-ajax-nonce' ),
|
164 |
'i18n_data' => array(
|
165 |
+
// Broadcast messages.
|
166 |
'ajax_error_message' => __( 'An error has occured. Please try again later.', 'email-subscribers' ),
|
167 |
'broadcast_draft_success_message' => __( 'Broadcast saved as draft successfully.', 'email-subscribers' ),
|
168 |
'broadcast_draft_error_message' => __( 'An error has occured while saving the broadcast. Please try again later.', 'email-subscribers' ),
|
169 |
'broadcast_subject_empty_message' => __( 'Please add a broadcast subject before saving.', 'email-subscribers' ),
|
170 |
'empty_template_message' => __( 'Please add email body.', 'email-subscribers' ),
|
171 |
+
'remove_conditions_message' => __( 'Do you really like to remove all conditions?', 'email-subscribers' ),
|
172 |
+
|
173 |
+
// Workflows messages.
|
174 |
+
'no_trigger_message' => __( 'Please select a trigger before saving the workflow.', 'email-subscribers' ),
|
175 |
+
'no_actions_message' => __( 'Please add some actions before saving the workflow.', 'email-subscribers' ),
|
176 |
+
'no_action_selected_message' => __( 'Please select an action that this workflow should perform before saving the workflow.', 'email-subscribers' ),
|
177 |
+
'trigger_change_message' => __( 'Changing the trigger will remove existing actions. Do you want to proceed anyway?.', 'email-subscribers' ),
|
178 |
+
'placeholder_copied_message' => __( 'Copied!', 'email-subscribers' ),
|
179 |
+
'delete_confirmation_message' => __( 'Are you sure?', 'email-subscribers' ),
|
180 |
+
|
181 |
+
// Import subscribers messages.
|
182 |
+
'select_status' => esc_html__( 'Please select the status for the importing contacts!', 'email-subscribers' ),
|
183 |
+
'select_email_column' => esc_html__( 'Please select the email address column!', 'email-subscribers' ),
|
184 |
+
'prepare_data' => esc_html__( 'Preparing Data', 'email-subscribers' ),
|
185 |
+
/* translators: %s: Upload progress */
|
186 |
+
'uploading' => esc_html__( 'Uploading...%s', 'email-subscribers' ),
|
187 |
+
/* translators: %s: Import progress */
|
188 |
+
'import_contacts' => esc_html__( 'Importing contacts...%s', 'email-subscribers' ),
|
189 |
+
/* translators: %s: Import failed svg icon */
|
190 |
+
'import_failed' => esc_html__( 'Import failed! %s', 'email-subscribers' ),
|
191 |
+
'no_windowclose' => esc_html__( 'Please do not close this window until it completes...', 'email-subscribers' ),
|
192 |
+
'prepare_import' => esc_html__( 'Preparing Import...', 'email-subscribers' ),
|
193 |
+
/* translators: 1. Imported contacts count 2. Total contacts count 3. Failed to import count 4. Memory usage */
|
194 |
+
'current_stats' => esc_html__( 'Currently %1$s of %2$s imported with %3$s errors. %4$s memory usage', 'email-subscribers' ),
|
195 |
+
/* translators: %s: Time left in minutes */
|
196 |
+
'estimate_time' => esc_html__( 'Estimate time left: %s minutes', 'email-subscribers' ),
|
197 |
+
/* translators: %s: Next attempt delaly time */
|
198 |
+
'continues_in' => esc_html__( 'Continues in %s seconds', 'email-subscribers' ),
|
199 |
+
'error_importing' => esc_html__( 'There was a problem during importing contacts. Please check the error logs for more information!', 'email-subscribers' ),
|
200 |
+
'confirm_import' => esc_html__( 'Do you really like to import these contacts?', 'email-subscribers' ),
|
201 |
+
/* translators: %s: Process complete svg icon */
|
202 |
+
'import_complete' => esc_html__( 'Import complete! %s', 'email-subscribers' ),
|
203 |
+
'onbeforeunloadimport' => esc_html__( 'You are currently importing subscribers! If you leave the page all pending subscribers don\'t get imported!', 'email-subscribers' ),
|
204 |
),
|
205 |
+
'is_pro' => ES()->is_pro(),
|
206 |
);
|
207 |
|
208 |
wp_localize_script( $this->email_subscribers, 'ig_es_js_data', $ig_es_js_data );
|
209 |
|
210 |
+
if ( 'es_workflows' === $get_page ) {
|
|
|
|
|
211 |
|
212 |
if ( ! wp_script_is( 'clipboard', 'registered' ) ) {
|
213 |
wp_enqueue_script( 'clipboard', plugin_dir_url( __FILE__ ) . 'js/clipboard.js', array( 'jquery' ), '2.0.6', false );
|
214 |
}
|
215 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
if ( ! function_exists( 'ig_es_wp_js_editor_admin_scripts' ) ) {
|
217 |
/**
|
218 |
* Include WP JS Editor library's main file. This file contains required functions to enqueue required js file which being used to create WordPress editor dynamcially.
|
222 |
|
223 |
// Load required html/js for dynamic WordPress editor.
|
224 |
ig_es_wp_js_editor_admin_scripts();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
225 |
|
226 |
+
// Localize additional required data for workflow functionality
|
227 |
+
$workflows_data = ES_Workflow_Admin_Edit::get_workflow_data();
|
228 |
+
wp_localize_script( $this->email_subscribers, 'ig_es_workflows_data', $workflows_data );
|
229 |
+
} else if ( 'es_subscribers' === $get_page ) {
|
230 |
+
|
231 |
+
$action = ig_es_get_request_data( 'action' );
|
232 |
+
if ( 'import' === $action ) {
|
233 |
+
// Library to handle CSV file upload.
|
234 |
+
wp_enqueue_script( 'plupload-all' );
|
235 |
+
}
|
236 |
}
|
237 |
|
238 |
//timepicker
|
239 |
wp_register_script( $this->email_subscribers . '-timepicker', plugin_dir_url( __FILE__ ) . 'js/jquery.timepicker.js', array( 'jquery' ), ES_PLUGIN_VERSION, true );
|
240 |
wp_enqueue_script( $this->email_subscribers . '-timepicker' );
|
241 |
|
242 |
+
|
243 |
if ( ! empty( $get_page ) && 'es_dashboard' === $get_page || 'es_reports' === $get_page ) {
|
244 |
wp_enqueue_script( 'frappe-js', 'https://unpkg.com/frappe-charts@1.5.2/dist/frappe-charts.min.iife.js', array( 'jquery' ), $this->version, false );
|
245 |
}
|
630 |
$list_id = ig_es_get_request_data( 'list_id', 0 );
|
631 |
$status = ig_es_get_request_data( 'status', 'all' );
|
632 |
$conditions = ig_es_get_request_data( 'conditions', array() );
|
633 |
+
$get_count = ig_es_get_request_data( 'get_count', 'no' );
|
634 |
|
635 |
if ( 0 == $list_id && empty( $conditions) ) {
|
636 |
return 0;
|
637 |
}
|
638 |
|
639 |
$response_data = array();
|
640 |
+
|
641 |
if ( ! empty( $conditions ) ) {
|
642 |
+
if ( 'yes' === $get_count ) {
|
643 |
+
$args = array(
|
644 |
+
'lists' => $list_id,
|
645 |
+
'conditions' => $conditions,
|
646 |
+
'status' => $status,
|
647 |
+
'return_count' => true,
|
648 |
+
);
|
649 |
+
$query = new IG_ES_Subscribers_Query();
|
650 |
+
$response_data['total'] = $query->run( $args );
|
651 |
+
}
|
652 |
ob_start();
|
653 |
do_action( 'ig_es_campaign_show_conditions', $conditions );
|
654 |
$response_data['conditions_html'] = ob_get_clean();
|
lite/admin/class-ig-es-campaign-rules.php
CHANGED
@@ -76,9 +76,9 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
76 |
$this->simple_operators = $this->get_simple_operators();
|
77 |
$this->string_operators = $this->get_string_operators();
|
78 |
$this->bool_operators = $this->get_bool_operators();
|
79 |
-
$this->campaign_rules =
|
80 |
|
81 |
-
add_action( 'ig_es_show_campaign_rules', array( $this, 'show_campaign_rules' ) );
|
82 |
add_action( 'ig_es_campaign_show_conditions', array( $this, 'show_conditions' ) );
|
83 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
|
84 |
}
|
@@ -87,38 +87,12 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
87 |
* Register the JavaScript for campaign rules.
|
88 |
*/
|
89 |
public function enqueue_scripts() {
|
90 |
-
|
91 |
-
global $wp_locale;
|
92 |
|
93 |
$current_page = ig_es_get_request_data( 'page' );
|
94 |
|
95 |
if ( in_array( $current_page, array( 'es_newsletters', 'es_sequence' ), true ) ) {
|
96 |
wp_register_script( 'alpine', plugins_url( '/js/alpine.js', __FILE__ ), array(), '2.8.0', false );
|
97 |
wp_enqueue_script( 'alpine' );
|
98 |
-
|
99 |
-
wp_register_script( 'ig-es-campaign-rules', plugins_url( '/js/campaign-rules.js', __FILE__ ), array(), ES_PLUGIN_VERSION, false );
|
100 |
-
wp_enqueue_script( 'ig-es-campaign-rules' );
|
101 |
-
|
102 |
-
$rules_data = array(
|
103 |
-
'security' => wp_create_nonce( 'ig-es-admin-ajax-nonce' ),
|
104 |
-
'i18n' => array(
|
105 |
-
'start_of_week' => get_option( 'start_of_week' ),
|
106 |
-
'next' => esc_html__( 'next', 'email-subscribers' ),
|
107 |
-
'prev' => esc_html__( 'prev', 'email-subscribers' ),
|
108 |
-
'day_names' => $wp_locale->weekday,
|
109 |
-
'day_names_min' => array_values( $wp_locale->weekday_abbrev ),
|
110 |
-
'month_names' => array_values( $wp_locale->month ),
|
111 |
-
'remove_conditions' => esc_html__( 'Do you really like to remove all conditions?', 'email-subscribers' ),
|
112 |
-
),
|
113 |
-
'is_pro' => ES()->is_pro(),
|
114 |
-
);
|
115 |
-
|
116 |
-
wp_localize_script( 'ig-es-campaign-rules', 'ig_es_rules_data', $rules_data );
|
117 |
-
}
|
118 |
-
|
119 |
-
if ( in_array( $current_page, array( 'es_newsletters', 'es_sequence', 'es_reports' ), true ) ) {
|
120 |
-
wp_register_style( 'ig-es-campaign-rules', plugins_url( '/css/campaign-rules.css', __FILE__ ), array(), ES_PLUGIN_VERSION, 'all' );
|
121 |
-
wp_enqueue_style( 'ig-es-campaign-rules' );
|
122 |
}
|
123 |
}
|
124 |
|
@@ -129,10 +103,16 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
129 |
*
|
130 |
* @since 4.6.11
|
131 |
*/
|
132 |
-
public function show_campaign_rules( $campaign_data = array() ) {
|
133 |
|
134 |
$current_page = ig_es_get_request_data( 'page' );
|
135 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
|
137 |
$conditions = array();
|
138 |
if ( ! empty( $campaign_data['meta'] ) ) {
|
@@ -141,12 +121,13 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
141 |
}
|
142 |
|
143 |
$args = array();
|
144 |
-
if ( '
|
145 |
$args = array(
|
146 |
'include_types' => array(
|
147 |
'newsletter'
|
148 |
),
|
149 |
'status' => array(
|
|
|
150 |
IG_ES_CAMPAIGN_STATUS_FINISHED
|
151 |
),
|
152 |
);
|
@@ -157,15 +138,19 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
157 |
),
|
158 |
);
|
159 |
}
|
|
|
|
|
|
|
|
|
160 |
$all_campaigns = ES()->campaigns_db->get_all_campaigns( $args );
|
161 |
-
|
|
|
162 |
if ( ! empty( $all_campaigns ) ) {
|
163 |
$all_campaigns_stati = array_column( $all_campaigns, 'status' );
|
164 |
}
|
165 |
|
166 |
$countries_data = ES_Geolocation::get_countries();
|
167 |
|
168 |
-
|
169 |
$input_name = 'es_newsletters' === $current_page ? 'broadcast_data[meta][list_conditions]' : 'seq_data[' . $campaign_id . '][list_conditions]';
|
170 |
|
171 |
$select_list_attr = ES()->is_pro() ? 'multiple="multiple"' : '';
|
@@ -182,7 +167,7 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
182 |
width: 100%!important;
|
183 |
}
|
184 |
</style>
|
185 |
-
<div class="ig-es-campaign-rules my-2" x-data="{ <?php echo esc_attr( $sidebar_id ); ?>: false }">
|
186 |
<label for="es-campaign-condition" class="text-sm font-medium leading-5 text-gray-700"><?php esc_html_e( 'Recipients', 'email-subscribers' ); ?>:</label>
|
187 |
<div class="ig-es-conditions-render-wrapper">
|
188 |
<?php
|
@@ -238,10 +223,9 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
238 |
<div class="h-full rounded-md" aria-hidden="true">
|
239 |
<div class="absolute inset-0 z-50">
|
240 |
<div class="foot pt-2 px-6 text-right">
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
</div>
|
245 |
<div class="ig-es-conditions px-6 h-full">
|
246 |
<div class="ig-es-condition-container"></div>
|
247 |
<div class="ig-es-conditions-wrap mt-1 mb-3 overflow-auto">
|
@@ -353,22 +337,20 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
353 |
</select>
|
354 |
</div>
|
355 |
<div class="ig-es-conditions-value-field" data-fields=",_sent,_sent__not_in,_open,_open__not_in,_click,_click__not_in,">
|
356 |
-
<?php if ( $all_campaigns ) : ?>
|
357 |
-
<?php foreach ( $value_arr as $k => $v ) : ?>
|
358 |
<div class="-mr-3">
|
359 |
-
<select name="<?php echo esc_attr( $input_name ); ?>[<?php echo esc_attr( $i ); ?>][<?php echo esc_attr( $j ); ?>][value][]" class="condition-value <?php echo esc_attr( $select_list_class ); ?>" <?php echo esc_attr( $select_list_attr ); ?>>
|
360 |
<option value="0"><?php echo esc_html__( 'Any campaign', 'email-subscribers' ); ?></option>
|
361 |
-
<?php
|
362 |
-
|
363 |
-
|
|
|
|
|
364 |
<option value="<?php echo esc_attr( $campaign['id'] ); ?>" <?php selected( $v, $campaign['id'] ); ?>><?php echo $campaign['name'] ? esc_html( $campaign['name'] ) : '[' . esc_html__( 'no title', 'email-subscribers' ) . '] (# ' . esc_attr( $campaign['id'] ) . ')'; ?></option>
|
|
|
365 |
<?php endforeach; ?>
|
|
|
366 |
</select>
|
367 |
</div>
|
368 |
-
<?php endforeach; ?>
|
369 |
-
<?php else : ?>
|
370 |
-
<p><?php esc_html_e( 'No campaigns available', 'email-subscribers' ); ?><input type="hidden" class="condition-value" disabled value="0" name="<?php echo esc_attr( $input_name ); ?>[<?php echo esc_attr( $i ); ?>][<?php echo esc_attr( $j ); ?>][value]"></p>
|
371 |
-
<?php endif; ?>
|
372 |
</div>
|
373 |
<div class="ig-es-conditions-value-field" data-fields=",_lists__not_in,_lists__in,">
|
374 |
<?php if ( $lists ) : ?>
|
@@ -407,6 +389,7 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
407 |
<!-- /End replace -->
|
408 |
</div>
|
409 |
</div>
|
|
|
410 |
</div>
|
411 |
</section>
|
412 |
</div>
|
@@ -522,7 +505,6 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
522 |
$closing_quote = esc_html_x( '”', 'closing curly double quote', 'email-subscribers' );
|
523 |
|
524 |
if ( isset( $this->campaign_rules['Campaign'][ $field ] ) ) {
|
525 |
-
$aggregate_campaign_keys = array_keys( $this->aggregate_campaigns );
|
526 |
if ( ! is_array( $value ) ) {
|
527 |
$value = array( $value );
|
528 |
}
|
@@ -582,11 +564,11 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
582 |
}
|
583 |
|
584 |
/**
|
585 |
-
* Get list of
|
586 |
*
|
587 |
-
* @return array List of
|
588 |
*/
|
589 |
-
|
590 |
|
591 |
$campaign_rules = array(
|
592 |
'List' => array(
|
@@ -744,7 +726,7 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
744 |
} else {
|
745 |
$name = $campaign['name'];
|
746 |
}
|
747 |
-
return $name;
|
748 |
}
|
749 |
|
750 |
/**
|
@@ -785,7 +767,7 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
|
|
785 |
*
|
786 |
* @return array $conditions_data
|
787 |
*/
|
788 |
-
public static function remove_empty_conditions
|
789 |
|
790 |
if ( ! empty( $conditions_data ) ) {
|
791 |
$list_conditions = $conditions_data;
|
76 |
$this->simple_operators = $this->get_simple_operators();
|
77 |
$this->string_operators = $this->get_string_operators();
|
78 |
$this->bool_operators = $this->get_bool_operators();
|
79 |
+
$this->campaign_rules = self::get_campaign_rules();
|
80 |
|
81 |
+
add_action( 'ig_es_show_campaign_rules', array( $this, 'show_campaign_rules' ), 10, 2 );
|
82 |
add_action( 'ig_es_campaign_show_conditions', array( $this, 'show_conditions' ) );
|
83 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
|
84 |
}
|
87 |
* Register the JavaScript for campaign rules.
|
88 |
*/
|
89 |
public function enqueue_scripts() {
|
|
|
|
|
90 |
|
91 |
$current_page = ig_es_get_request_data( 'page' );
|
92 |
|
93 |
if ( in_array( $current_page, array( 'es_newsletters', 'es_sequence' ), true ) ) {
|
94 |
wp_register_script( 'alpine', plugins_url( '/js/alpine.js', __FILE__ ), array(), '2.8.0', false );
|
95 |
wp_enqueue_script( 'alpine' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
}
|
98 |
|
103 |
*
|
104 |
* @since 4.6.11
|
105 |
*/
|
106 |
+
public function show_campaign_rules( $campaign_id = 0, $campaign_data = array() ) {
|
107 |
|
108 |
$current_page = ig_es_get_request_data( 'page' );
|
109 |
+
|
110 |
+
$campaign_type = '';
|
111 |
+
if ( 'es_newsletters' === $current_page ) {
|
112 |
+
$campaign_type = 'newsletter';
|
113 |
+
} else {
|
114 |
+
$campaign_type = 'sequence_message';
|
115 |
+
}
|
116 |
|
117 |
$conditions = array();
|
118 |
if ( ! empty( $campaign_data['meta'] ) ) {
|
121 |
}
|
122 |
|
123 |
$args = array();
|
124 |
+
if ( 'newsletter' === $campaign_type ) {
|
125 |
$args = array(
|
126 |
'include_types' => array(
|
127 |
'newsletter'
|
128 |
),
|
129 |
'status' => array(
|
130 |
+
IG_ES_CAMPAIGN_STATUS_QUEUED,
|
131 |
IG_ES_CAMPAIGN_STATUS_FINISHED
|
132 |
),
|
133 |
);
|
138 |
),
|
139 |
);
|
140 |
}
|
141 |
+
|
142 |
+
if ( ! empty( $campaign_id ) ) {
|
143 |
+
$args['campaigns_not_in'] = array( $campaign_id );
|
144 |
+
}
|
145 |
$all_campaigns = ES()->campaigns_db->get_all_campaigns( $args );
|
146 |
+
|
147 |
+
$lists = ES()->lists_db->get_list_id_name_map();
|
148 |
if ( ! empty( $all_campaigns ) ) {
|
149 |
$all_campaigns_stati = array_column( $all_campaigns, 'status' );
|
150 |
}
|
151 |
|
152 |
$countries_data = ES_Geolocation::get_countries();
|
153 |
|
|
|
154 |
$input_name = 'es_newsletters' === $current_page ? 'broadcast_data[meta][list_conditions]' : 'seq_data[' . $campaign_id . '][list_conditions]';
|
155 |
|
156 |
$select_list_attr = ES()->is_pro() ? 'multiple="multiple"' : '';
|
167 |
width: 100%!important;
|
168 |
}
|
169 |
</style>
|
170 |
+
<div class="ig-es-campaign-rules my-2" data-campaign-id="<?php echo esc_attr( $campaign_id ); ?>" data-campaign-type="<?php echo esc_attr( $campaign_type ); ?>" x-data="{ <?php echo esc_attr( $sidebar_id ); ?>: false }">
|
171 |
<label for="es-campaign-condition" class="text-sm font-medium leading-5 text-gray-700"><?php esc_html_e( 'Recipients', 'email-subscribers' ); ?>:</label>
|
172 |
<div class="ig-es-conditions-render-wrapper">
|
173 |
<?php
|
223 |
<div class="h-full rounded-md" aria-hidden="true">
|
224 |
<div class="absolute inset-0 z-50">
|
225 |
<div class="foot pt-2 px-6 text-right">
|
226 |
+
<div class="campaign-conditions-total-contacts">
|
227 |
+
<p class="inline font-medium text-base tracking-wide pr-2 text-gray-400"><?php esc_html_e( 'Total recipients', 'email-subscribers' ); ?>: </span> <span class="ig-es-total-contacts">–</span></div>
|
228 |
+
</div>
|
|
|
229 |
<div class="ig-es-conditions px-6 h-full">
|
230 |
<div class="ig-es-condition-container"></div>
|
231 |
<div class="ig-es-conditions-wrap mt-1 mb-3 overflow-auto">
|
337 |
</select>
|
338 |
</div>
|
339 |
<div class="ig-es-conditions-value-field" data-fields=",_sent,_sent__not_in,_open,_open__not_in,_click,_click__not_in,">
|
|
|
|
|
340 |
<div class="-mr-3">
|
341 |
+
<select name="<?php echo esc_attr( $input_name ); ?>[<?php echo esc_attr( $i ); ?>][<?php echo esc_attr( $j ); ?>][value][]" class="condition-value ig-es-campaign-select-field <?php echo esc_attr( $select_list_class ); ?>" <?php echo esc_attr( $select_list_attr ); ?>>
|
342 |
<option value="0"><?php echo esc_html__( 'Any campaign', 'email-subscribers' ); ?></option>
|
343 |
+
<?php if ( $all_campaigns ) : ?>
|
344 |
+
<?php foreach ( $value_arr as $k => $v ) : ?>
|
345 |
+
<?php
|
346 |
+
foreach ( $all_campaigns as $campaign ) :
|
347 |
+
?>
|
348 |
<option value="<?php echo esc_attr( $campaign['id'] ); ?>" <?php selected( $v, $campaign['id'] ); ?>><?php echo $campaign['name'] ? esc_html( $campaign['name'] ) : '[' . esc_html__( 'no title', 'email-subscribers' ) . '] (# ' . esc_attr( $campaign['id'] ) . ')'; ?></option>
|
349 |
+
<?php endforeach; ?>
|
350 |
<?php endforeach; ?>
|
351 |
+
<?php endif; ?>
|
352 |
</select>
|
353 |
</div>
|
|
|
|
|
|
|
|
|
354 |
</div>
|
355 |
<div class="ig-es-conditions-value-field" data-fields=",_lists__not_in,_lists__in,">
|
356 |
<?php if ( $lists ) : ?>
|
389 |
<!-- /End replace -->
|
390 |
</div>
|
391 |
</div>
|
392 |
+
<?php do_action( 'ig_es_upsell_campaign_rules'); ?>
|
393 |
</div>
|
394 |
</section>
|
395 |
</div>
|
505 |
$closing_quote = esc_html_x( '”', 'closing curly double quote', 'email-subscribers' );
|
506 |
|
507 |
if ( isset( $this->campaign_rules['Campaign'][ $field ] ) ) {
|
|
|
508 |
if ( ! is_array( $value ) ) {
|
509 |
$value = array( $value );
|
510 |
}
|
564 |
}
|
565 |
|
566 |
/**
|
567 |
+
* Get list of campaign rules
|
568 |
*
|
569 |
+
* @return array List of campaign rules
|
570 |
*/
|
571 |
+
public static function get_campaign_rules() {
|
572 |
|
573 |
$campaign_rules = array(
|
574 |
'List' => array(
|
726 |
} else {
|
727 |
$name = $campaign['name'];
|
728 |
}
|
729 |
+
return '<span class="campaign-name" data-campaign-id="' . esc_attr( $campaign_id ) . '">' . $name . '</span>';
|
730 |
}
|
731 |
|
732 |
/**
|
767 |
*
|
768 |
* @return array $conditions_data
|
769 |
*/
|
770 |
+
public static function remove_empty_conditions( $conditions_data = array() ) {
|
771 |
|
772 |
if ( ! empty( $conditions_data ) ) {
|
773 |
$list_conditions = $conditions_data;
|
lite/admin/css/campaign-rules.css
DELETED
@@ -1,163 +0,0 @@
|
|
1 |
-
.ig-es-conditions-wrap .ig-es-condition-group:after, .ig-es-conditions-wrap .ig-es-condition:after{
|
2 |
-
content: attr(data-operator);
|
3 |
-
position: absolute;
|
4 |
-
left: 320px;
|
5 |
-
padding: 3px 1px;
|
6 |
-
text-transform: uppercase;
|
7 |
-
color: #999;
|
8 |
-
font-size: 16px;
|
9 |
-
line-height: 1em;
|
10 |
-
z-index: 1;
|
11 |
-
bottom: -35px;
|
12 |
-
}
|
13 |
-
.ig-es-conditions-wrap .ig-es-condition:after{
|
14 |
-
background-color: #fff;
|
15 |
-
padding: 2px 10px;
|
16 |
-
font-size: 14px;
|
17 |
-
bottom: -10px;
|
18 |
-
left: 300px;
|
19 |
-
}
|
20 |
-
.ig-es-conditions-wrap .ig-es-condition-group:last-child:after, .ig-es-conditions-wrap .ig-es-condition:last-child:after, .ig-es-condition-container{
|
21 |
-
display: none;
|
22 |
-
}
|
23 |
-
.ig-es-conditions-wrap .ig-es-condition-group:last-child, .ig-es-conditions-wrap .ig-es-condition:last-child{
|
24 |
-
margin-bottom: 0;
|
25 |
-
}
|
26 |
-
.ig-es-conditions-wrap .ig-es-condition, .ig-es-conditions-wrap .ig-es-condition-empty{
|
27 |
-
border-bottom: 1px dotted #DFDFDF;
|
28 |
-
background-color: #fff;
|
29 |
-
position: relative;
|
30 |
-
}
|
31 |
-
|
32 |
-
.ig-es-conditions-wrap .ig-es-condition:last-child{
|
33 |
-
border-bottom: none;
|
34 |
-
}
|
35 |
-
|
36 |
-
.ig-es-conditions-field-fields, .ig-es-conditions-operator-fields, .ig-es-conditions-value-fields{
|
37 |
-
float: left;
|
38 |
-
max-width: 37%;
|
39 |
-
padding-right: 4px;
|
40 |
-
}
|
41 |
-
.rtl .ig-es-conditions-field-fields,.rtl .ig-es-conditions-operator-fields,.rtl .ig-es-conditions-value-fields{
|
42 |
-
float: right;
|
43 |
-
padding-right: 0px;
|
44 |
-
padding-left: 4px;
|
45 |
-
}
|
46 |
-
.ig-es-conditions-operator-fields{
|
47 |
-
max-width: 140px;
|
48 |
-
}
|
49 |
-
.ig-es-conditions-operator-field, .ig-es-conditions-value-field{
|
50 |
-
display: none;
|
51 |
-
}
|
52 |
-
.ig-es-conditions-operator-field.active, .ig-es-conditions-value-field.active{
|
53 |
-
display: block;
|
54 |
-
}
|
55 |
-
.ig-es-conditions-wrap select, .ig-es-conditions-wrap input{
|
56 |
-
max-width: 100%
|
57 |
-
}
|
58 |
-
.ig-es-conditions-wrap .ig-es-condition-empty{
|
59 |
-
background-color: none;
|
60 |
-
border: 1px dotted #DFDFDF;
|
61 |
-
text-align: center;
|
62 |
-
padding: 10px 0 10px;
|
63 |
-
}
|
64 |
-
.ig-es-conditions-wrap .remove-condition{
|
65 |
-
visibility: hidden;
|
66 |
-
}
|
67 |
-
|
68 |
-
.rtl .ig-es-conditions-wrap .remove-condition{
|
69 |
-
float: left;
|
70 |
-
}
|
71 |
-
|
72 |
-
.ig-es-conditions-wrap .ig-es-condition:hover .remove-condition{
|
73 |
-
visibility: visible;
|
74 |
-
}
|
75 |
-
|
76 |
-
/*.ig-es-conditions-wrap .add-or-condition{
|
77 |
-
position: absolute;
|
78 |
-
bottom: 12px;
|
79 |
-
z-index: 1;
|
80 |
-
}
|
81 |
-
*/
|
82 |
-
.ig-es-conditions-wrap .datepicker.condition-value{
|
83 |
-
width: 100px;
|
84 |
-
}
|
85 |
-
.ig-es-condition .ig-es-conditions-value-field p, .ig-es-condition .ig-es-conditions-value-field ul{
|
86 |
-
margin: 0;
|
87 |
-
}
|
88 |
-
.ig-es-condition-render span.ig-es-condition-type {
|
89 |
-
float: left;
|
90 |
-
padding-right: 4px;
|
91 |
-
}
|
92 |
-
.rtl .ig-es-condition-render span.ig-es-condition-type {
|
93 |
-
float: right;
|
94 |
-
padding-right: 0;
|
95 |
-
padding-left: 4px;
|
96 |
-
}
|
97 |
-
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:first-child{
|
98 |
-
display: inline-block;
|
99 |
-
}
|
100 |
-
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect .condition-value{
|
101 |
-
width: 180px;
|
102 |
-
}
|
103 |
-
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect a.ig-es-condition-add-multiselect, .ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:first-child span, .ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect a.ig-es-condition-remove-multiselect{
|
104 |
-
visibility: hidden;
|
105 |
-
}
|
106 |
-
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect a{
|
107 |
-
cursor: pointer;
|
108 |
-
}
|
109 |
-
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:hover a.ig-es-condition-remove-multiselect, .ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:last-child a.ig-es-condition-add-multiselect{
|
110 |
-
visibility: visible;
|
111 |
-
}
|
112 |
-
|
113 |
-
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:first-child a.ig-es-condition-remove-multiselect{
|
114 |
-
visibility: hidden !important;
|
115 |
-
}
|
116 |
-
|
117 |
-
div.ig-es-conditions-render-wrapper::after,
|
118 |
-
.ig-es-conditions-render-wrapper .ig-es-conditions-render::after {
|
119 |
-
content: '';
|
120 |
-
display: block;
|
121 |
-
clear: both;
|
122 |
-
}
|
123 |
-
|
124 |
-
.ig-es-conditions-render-wrapper .ig-es-conditions-render {
|
125 |
-
margin: 10px 0 10px 0;
|
126 |
-
padding: 5px 0 5px 8px;
|
127 |
-
border: 0.5px solid rgb(210, 214, 220);
|
128 |
-
border-radius: 0.25rem;
|
129 |
-
}
|
130 |
-
|
131 |
-
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:not(:first-child) {
|
132 |
-
margin-top:0.5rem;
|
133 |
-
}
|
134 |
-
.es-add-or-condition{
|
135 |
-
border: hsl(215,13.8%,54.1%);
|
136 |
-
color: rgb(75, 85, 99);
|
137 |
-
border: 1px solid hsl(215,13.8%,54.1%);
|
138 |
-
top:67px;
|
139 |
-
}
|
140 |
-
|
141 |
-
/*.es-report-description .ig-es-condition-render-group span, .es-report-description .ig-es-condition-render-group{
|
142 |
-
float:none !important;
|
143 |
-
clear:none !important;
|
144 |
-
}
|
145 |
-
|
146 |
-
.es-report-description .ig-es-condition-render-group, .es-report-description .ig-es-conditions-render{
|
147 |
-
display: inline-block !important;
|
148 |
-
font-weight:normal;
|
149 |
-
}*/
|
150 |
-
|
151 |
-
.email-subscribers_page_es_reports .ig-es-condition-render-group span, .email-subscribers_page_es_reports .ig-es-condition-type span, .email-subscribers_page_es_reports span.ig-es-condition-type{
|
152 |
-
font-weight: normal;
|
153 |
-
color: rgba(22, 30, 46, 1);
|
154 |
-
padding-right:1px;
|
155 |
-
}
|
156 |
-
|
157 |
-
.email-subscribers_page_es_reports .recipient-text {
|
158 |
-
position: absolute;
|
159 |
-
top: 12px;
|
160 |
-
}
|
161 |
-
|
162 |
-
|
163 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lite/admin/css/email-subscribers-admin.css
CHANGED
@@ -1613,12 +1613,6 @@ body[class*="_page_es_workflows"] #post-body .postbox .inside {
|
|
1613 |
}
|
1614 |
*/
|
1615 |
|
1616 |
-
|
1617 |
-
li.menu-top div.wp-menu-image img {
|
1618 |
-
border-style: none !important;
|
1619 |
-
display: inline;
|
1620 |
-
}
|
1621 |
-
|
1622 |
/** Broadcast New UI CSS */
|
1623 |
/* input[type="date"]::-webkit-inner-spin-button,
|
1624 |
input[type="date"]::-webkit-clear-button {
|
@@ -1915,3 +1909,187 @@ div.broadcast_side_content{
|
|
1915 |
.es-campaign-reports-table{
|
1916 |
padding-top: 0 !important;
|
1917 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1613 |
}
|
1614 |
*/
|
1615 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1616 |
/** Broadcast New UI CSS */
|
1617 |
/* input[type="date"]::-webkit-inner-spin-button,
|
1618 |
input[type="date"]::-webkit-clear-button {
|
1909 |
.es-campaign-reports-table{
|
1910 |
padding-top: 0 !important;
|
1911 |
}
|
1912 |
+
|
1913 |
+
#es_campaign_report tbody tr td.country_flag{
|
1914 |
+
font-size: 0;
|
1915 |
+
}
|
1916 |
+
|
1917 |
+
/* Campaign Rules CSS - Start */
|
1918 |
+
.ig-es-conditions-wrap .ig-es-condition-group:after, .ig-es-conditions-wrap .ig-es-condition:after{
|
1919 |
+
content: attr(data-operator);
|
1920 |
+
position: absolute;
|
1921 |
+
left: 320px;
|
1922 |
+
padding: 3px 1px;
|
1923 |
+
text-transform: uppercase;
|
1924 |
+
color: #999;
|
1925 |
+
font-size: 16px;
|
1926 |
+
line-height: 1em;
|
1927 |
+
z-index: 1;
|
1928 |
+
bottom: -35px;
|
1929 |
+
}
|
1930 |
+
.ig-es-conditions-wrap .ig-es-condition:after{
|
1931 |
+
background-color: #fff;
|
1932 |
+
padding: 2px 10px;
|
1933 |
+
font-size: 14px;
|
1934 |
+
bottom: -10px;
|
1935 |
+
left: 300px;
|
1936 |
+
}
|
1937 |
+
.ig-es-conditions-wrap .ig-es-condition-group:last-child:after, .ig-es-conditions-wrap .ig-es-condition:last-child:after, .ig-es-condition-container{
|
1938 |
+
display: none;
|
1939 |
+
}
|
1940 |
+
.ig-es-conditions-wrap .ig-es-condition-group:last-child, .ig-es-conditions-wrap .ig-es-condition:last-child{
|
1941 |
+
margin-bottom: 0;
|
1942 |
+
}
|
1943 |
+
.ig-es-conditions-wrap .ig-es-condition, .ig-es-conditions-wrap .ig-es-condition-empty{
|
1944 |
+
border-bottom: 1px dotted #DFDFDF;
|
1945 |
+
background-color: #fff;
|
1946 |
+
position: relative;
|
1947 |
+
}
|
1948 |
+
|
1949 |
+
.ig-es-conditions-wrap .ig-es-condition:last-child{
|
1950 |
+
border-bottom: none;
|
1951 |
+
}
|
1952 |
+
|
1953 |
+
.ig-es-conditions-field-fields, .ig-es-conditions-operator-fields, .ig-es-conditions-value-fields{
|
1954 |
+
float: left;
|
1955 |
+
max-width: 37%;
|
1956 |
+
padding-right: 4px;
|
1957 |
+
}
|
1958 |
+
.rtl .ig-es-conditions-field-fields,.rtl .ig-es-conditions-operator-fields,.rtl .ig-es-conditions-value-fields{
|
1959 |
+
float: right;
|
1960 |
+
padding-right: 0px;
|
1961 |
+
padding-left: 4px;
|
1962 |
+
}
|
1963 |
+
.ig-es-conditions-operator-fields{
|
1964 |
+
max-width: 140px;
|
1965 |
+
}
|
1966 |
+
.ig-es-conditions-operator-field, .ig-es-conditions-value-field{
|
1967 |
+
display: none;
|
1968 |
+
}
|
1969 |
+
.ig-es-conditions-operator-field.active, .ig-es-conditions-value-field.active{
|
1970 |
+
display: block;
|
1971 |
+
}
|
1972 |
+
.ig-es-conditions-wrap select, .ig-es-conditions-wrap input{
|
1973 |
+
max-width: 100%
|
1974 |
+
}
|
1975 |
+
.ig-es-conditions-wrap .ig-es-condition-empty{
|
1976 |
+
background-color: none;
|
1977 |
+
border: 1px dotted #DFDFDF;
|
1978 |
+
text-align: center;
|
1979 |
+
padding: 10px 0 10px;
|
1980 |
+
}
|
1981 |
+
.ig-es-conditions-wrap .remove-condition{
|
1982 |
+
visibility: hidden;
|
1983 |
+
}
|
1984 |
+
|
1985 |
+
.rtl .ig-es-conditions-wrap .remove-condition{
|
1986 |
+
float: left;
|
1987 |
+
}
|
1988 |
+
|
1989 |
+
.ig-es-conditions-wrap .ig-es-condition:hover .remove-condition{
|
1990 |
+
visibility: visible;
|
1991 |
+
}
|
1992 |
+
|
1993 |
+
/*.ig-es-conditions-wrap .add-or-condition{
|
1994 |
+
position: absolute;
|
1995 |
+
bottom: 12px;
|
1996 |
+
z-index: 1;
|
1997 |
+
}
|
1998 |
+
*/
|
1999 |
+
.ig-es-conditions-wrap .datepicker.condition-value{
|
2000 |
+
width: 100px;
|
2001 |
+
}
|
2002 |
+
.ig-es-condition .ig-es-conditions-value-field p, .ig-es-condition .ig-es-conditions-value-field ul{
|
2003 |
+
margin: 0;
|
2004 |
+
}
|
2005 |
+
.ig-es-condition-render span.ig-es-condition-type {
|
2006 |
+
float: left;
|
2007 |
+
padding-right: 2px;
|
2008 |
+
}
|
2009 |
+
.rtl .ig-es-condition-render span.ig-es-condition-type {
|
2010 |
+
float: right;
|
2011 |
+
padding-right: 0;
|
2012 |
+
padding-left: 4px;
|
2013 |
+
}
|
2014 |
+
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:first-child{
|
2015 |
+
display: inline-block;
|
2016 |
+
}
|
2017 |
+
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect .condition-value{
|
2018 |
+
width: 180px;
|
2019 |
+
}
|
2020 |
+
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect a.ig-es-condition-add-multiselect, .ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:first-child span, .ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect a.ig-es-condition-remove-multiselect{
|
2021 |
+
visibility: hidden;
|
2022 |
+
}
|
2023 |
+
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect a{
|
2024 |
+
cursor: pointer;
|
2025 |
+
}
|
2026 |
+
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:hover a.ig-es-condition-remove-multiselect, .ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:last-child a.ig-es-condition-add-multiselect{
|
2027 |
+
visibility: visible;
|
2028 |
+
}
|
2029 |
+
|
2030 |
+
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:first-child a.ig-es-condition-remove-multiselect{
|
2031 |
+
visibility: hidden !important;
|
2032 |
+
}
|
2033 |
+
|
2034 |
+
div.ig-es-conditions-render-wrapper::after,
|
2035 |
+
.ig-es-conditions-render-wrapper .ig-es-conditions-render::after {
|
2036 |
+
content: '';
|
2037 |
+
display: block;
|
2038 |
+
clear: both;
|
2039 |
+
}
|
2040 |
+
|
2041 |
+
.ig-es-conditions-render-wrapper .ig-es-conditions-render {
|
2042 |
+
margin: 10px 0 10px 0;
|
2043 |
+
padding: 5px 0 5px 8px;
|
2044 |
+
border: 0.5px solid rgb(210, 214, 220);
|
2045 |
+
border-radius: 0.25rem;
|
2046 |
+
}
|
2047 |
+
|
2048 |
+
.ig-es-conditions-wrap .ig-es-conditions-value-field-multiselect:not(:first-child) {
|
2049 |
+
margin-top:0.5rem;
|
2050 |
+
}
|
2051 |
+
.es-add-or-condition{
|
2052 |
+
border: hsl(215,13.8%,54.1%);
|
2053 |
+
color: rgb(75, 85, 99);
|
2054 |
+
border: 1px solid hsl(215,13.8%,54.1%);
|
2055 |
+
top:67px;
|
2056 |
+
}
|
2057 |
+
|
2058 |
+
/*.es-report-description .ig-es-condition-render-group span, .es-report-description .ig-es-condition-render-group{
|
2059 |
+
float:none !important;
|
2060 |
+
clear:none !important;
|
2061 |
+
}
|
2062 |
+
|
2063 |
+
.es-report-description .ig-es-condition-render-group, .es-report-description .ig-es-conditions-render{
|
2064 |
+
display: inline-block !important;
|
2065 |
+
font-weight:normal;
|
2066 |
+
}*/
|
2067 |
+
|
2068 |
+
body[class*="es_reports"] .ig-es-condition-render-group span,
|
2069 |
+
body[class*="es_reports"] .ig-es-condition-type span,
|
2070 |
+
body[class*="es_reports"] span.ig-es-condition-type{
|
2071 |
+
font-weight: normal;
|
2072 |
+
color: rgba(22, 30, 46, 1);
|
2073 |
+
padding-right:1px;
|
2074 |
+
}
|
2075 |
+
|
2076 |
+
body[class*="es_reports"] .recipient-text {
|
2077 |
+
position: absolute;
|
2078 |
+
top: 12px;
|
2079 |
+
}
|
2080 |
+
|
2081 |
+
/* Hide total contacts count on the sequence page */
|
2082 |
+
.es_sequences_wrapper .campaign-conditions-total-contacts {
|
2083 |
+
display:none;
|
2084 |
+
}
|
2085 |
+
|
2086 |
+
.es_sequences_wrapper .ig-es-conditions-render-wrapper, .es_sequences_wrapper .ig-es-campaign-rules{
|
2087 |
+
width:100%;
|
2088 |
+
}
|
2089 |
+
.es_sequences_wrapper .ig-es-conditions-render-wrapper .ig-es-conditions-render{
|
2090 |
+
border: none;
|
2091 |
+
margin:5px 0;
|
2092 |
+
}
|
2093 |
+
|
2094 |
+
/* Campaign Rules CSS - END */
|
2095 |
+
|
lite/admin/dist/main.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;border:0 solid #d2d6dc}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#a0aec0}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}a{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}img{border-width:0}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-input::-webkit-input-placeholder{color:#9fa6b2;opacity:1}.form-input::-moz-placeholder{color:#9fa6b2;opacity:1}.form-input::-ms-input-placeholder{color:#9fa6b2;opacity:1}.form-input::placeholder{color:#9fa6b2;opacity:1}.form-input:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-textarea::-webkit-input-placeholder{color:#9fa6b2;opacity:1}.form-textarea::-moz-placeholder{color:#9fa6b2;opacity:1}.form-textarea::-ms-input-placeholder{color:#9fa6b2;opacity:1}.form-textarea::placeholder{color:#9fa6b2;opacity:1}.form-textarea:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-multiselect:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;background-repeat:no-repeat;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;line-height:1.5;background-position:right .5rem center;background-size:1.5em 1.5em}.form-select::-ms-expand{color:#9fa6b2;border:none}@media not print{.form-select::-ms-expand{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-select:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-checkbox::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-negative:0;flex-shrink:0;height:1rem;width:1rem;color:#3f83f8;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.25rem}.form-checkbox:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-checkbox:checked:focus,.form-radio:checked{border-color:transparent}.form-radio:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-negative:0;flex-shrink:0;border-radius:100%;height:1rem;width:1rem;color:#3f83f8;background-color:#fff;border-color:#d2d6dc;border-width:1px}.form-radio:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-radio:checked:focus{border-color:transparent}.ig-es-primary-button,.ig-es-send-queue-emails{border-color:transparent;padding:.5rem 1rem;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.ig-es-primary-button,.ig-es-send-queue-emails,.ig-es-title-button,.wp-heading-inline+.page-title-action{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:.375rem;border-width:1px;font-size:.875rem;line-height:1.25rem;font-weight:500;--text-opacity:1;--bg-opacity:1;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.ig-es-title-button,.wp-heading-inline+.page-title-action{--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity));color:#374151;color:rgba(55,65,81,var(--text-opacity));background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));padding:.25rem .75rem}.wrap .wp-heading-inline+.page-title-action{margin-left:.5rem}.ig-es-title-button:hover,.wp-heading-inline+.page-title-action:hover{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity));--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity))}.ig-es-title-button:focus,.wp-heading-inline+.page-title-action:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45);--border-opacity:1;border-color:#a4cafe;border-color:rgba(164,202,254,var(--border-opacity))}.ig-es-primary-button:hover{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity));--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.ig-es-primary-button:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45)}.ig-es-imp-button{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important;-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important;border-radius:.375rem!important;border-width:1px!important;border-color:transparent!important;background-color:#fff!important;background-color:rgba(255,255,255,var(--bg-opacity))!important;font-size:.875rem!important;line-height:1.25rem!important;font-weight:500!important;background-color:#0e9f6e!important;background-color:rgba(14,159,110,var(--bg-opacity))!important;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform!important;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;-webkit-transition-duration:.15s!important;transition-duration:.15s!important}.ig-es-imp-button,.ig-es-imp-button:hover{--text-opacity:1!important;color:#fff!important;color:rgba(255,255,255,var(--text-opacity))!important;--bg-opacity:1!important}.ig-es-imp-button:hover{background-color:#31c48d!important;background-color:rgba(49,196,141,var(--bg-opacity))!important}.ig-es-imp-button:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(132,225,188,.45)!important;box-shadow:0 0 0 3px rgba(132,225,188,.45)!important}.ig-es-link-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:#ff5a1f;background-color:rgba(255,90,31,var(--bg-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.ig-es-link-button,.ig-es-link-button:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity));--bg-opacity:1}.ig-es-link-button:hover{background-color:#ff8a4c;background-color:rgba(255,138,76,var(--bg-opacity))}.ig-es-link-button:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(253,186,140,.45);box-shadow:0 0 0 3px rgba(253,186,140,.45)}.ig-es-action.js-open .ig-es-action__header{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity));--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity))}.form-input{--bg-opacity:1!important;background-color:#fff!important;background-color:rgba(255,255,255,var(--bg-opacity))!important;border-width:1px!important;border-radius:.375rem!important;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important;--border-opacity:1!important;border-color:#d2d6dc!important;border-color:rgba(210,214,220,var(--border-opacity))!important}.form-input:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important}.form-checkbox{content:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E")}.form-radio{content:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}.form-checkbox:checked,.form-radio:checked{--text-opacity:1!important;color:#5850ec!important;color:rgba(88,80,236,var(--text-opacity))!important}.form-select{font-size:.875rem!important;--border-opacity:1!important;border-color:#9fa6b2!important;border-color:rgba(159,166,178,var(--border-opacity))!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}.form-select:focus,input[type=number]:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;--border-opacity:1!important;border-color:#a4cafe!important;border-color:rgba(164,202,254,var(--border-opacity))!important}.es-check-toggle:checked~.es-mail-toggle-line{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.es-check-toggle:checked~.es-mail-toggle-dot{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));--transform-translate-x:100%}.es-mail-toggle-line{width:2.25rem;height:1.25rem;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity));-webkit-box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06);box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.es-mail-toggle-dot,.es-mail-toggle-line{display:block;--bg-opacity:1;border-radius:9999px}.es-mail-toggle-dot{width:.875rem;height:.875rem;margin-left:.25rem;position:absolute;top:0;bottom:0;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.es-mail-toggle-dot:focus-within{-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45)}[type=radio]:checked+.es-mailer-logo{-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));--transform-scale-x:1.1;--transform-scale-y:1.1;-webkit-box-shadow:0 0 3px 1px #5a67d8;box-shadow:0 0 3px 1px #5a67d8}[type=radio]:checked+.es-mailer-logo:hover{border-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.wp-core-ui .button,.wp-core-ui .button-secondary{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{font-size:.875rem;border-radius:.375rem;border-width:1px;line-height:1.25rem;font-weight:500;--text-opacity:1}.wp-core-ui .button-primary{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.wp-core-ui .button-primary:hover,.wp-core-ui .button:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.wp-core-ui .search-box input[name=s],.wp-core-ui select{border-radius:.375rem}.wp-core-ui #bulk-action-selector-top,.wp-core-ui #doaction,.wp-core-ui #doaction2,.wp-core-ui #filter-by-date,.wp-core-ui #post-query-submit,.wp-core-ui #poststuff select,.wp-core-ui #search-submit{cursor:pointer;line-height:1.25rem;--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity));background-color:transparent;font-size:.875rem}.wp-core-ui #search-submit{margin-left:.375rem}.es-add-or-condition:hover,.wp-core-ui #doaction2:hover .wp-core-ui #post-query-submit:hover,.wp-core-ui #doaction:hover,.wp-core-ui #search-submit:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));--border-opacity:1;border-color:#6b7280;border-color:rgba(107,114,128,var(--border-opacity))}.es-add-or-condition:focus,.wp-core-ui #doaction2:focus .wp-core-ui #post-query-submit:focus,.wp-core-ui #doaction:focus,.wp-core-ui #search-submit:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(159,166,178,.45);box-shadow:0 0 0 3px rgba(159,166,178,.45)}.es-items-lists table.fixed,.post-type-es_template table.fixed{margin-top:1rem;margin-bottom:1rem;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);border-radius:.5rem;overflow:hidden}.es-items-lists table.fixed tfoot td,.es-items-lists table.fixed tfoot th,.es-items-lists table.fixed thead td,.es-items-lists table.fixed thead th,.post-type-es_template table.fixed tfoot th,.post-type-es_template table.fixed thead td,.post-type-es_template table.fixed thead th{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity));font-weight:500;letter-spacing:.05em}.es-items-lists table.fixed tfoot th,.es-items-lists table.fixed thead th,.post-type-es_template table.fixed tfoot th,.post-type-es_template table.fixed thead th{padding-top:.5rem;padding-bottom:.5rem}.es-items-lists .widefat thead td input,.post-type-es_template .widefat thead td input{margin-right:1.5rem}.post-type-es_template .wrap{padding-top:1rem;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.post-type-es_template .wrap>h1{padding-top:0;font-weight:600;--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));line-height:2.25rem}.es-items-lists .striped>tbody tr,.post-type-es_template .striped>tbody tr{border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));padding-top:.5rem;padding-bottom:.5rem}.es-campaign-reports-table .striped>tbody tr{border-bottom-width:2px}.es-items-lists .striped>tbody>:nth-child(odd),.post-type-es_template .striped>tbody>:nth-child(odd){--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.es_onboard_email{padding:.25rem .75rem!important}.es_reports_table_header{border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));text-align:left;font-size:.875rem;line-height:1rem;font-weight:500;--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity));letter-spacing:.05em}.importing-progress,.progress{width:100%;height:2rem;--bg-opacity:1;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity));overflow:hidden;position:relative;text-align:right;line-height:1rem;margin-top:.375rem;border-radius:.25rem}.importing-progress span.bar,.progress span.bar{display:block;position:absolute;line-height:2.5rem;padding-top:.25rem;padding-bottom:.25rem;top:0;bottom:0;left:0;border-radius:.25rem;overflow:hidden;background-image:-webkit-gradient(linear,left top,right top,from(var(--gradient-color-stops)));background-image:linear-gradient(90deg,var(--gradient-color-stops));--gradient-from-color:#42389d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,56,157,0));--gradient-to-color:#6875f5;--bg-opacity:1;background-color:#8da2fb;background-color:rgba(141,162,251,var(--bg-opacity))}.space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--divide-opacity))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-50{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-gray-200{--bg-opacity:1;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity))}.bg-gray-300{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity))}.bg-gray-500{--bg-opacity:1;background-color:#6b7280;background-color:rgba(107,114,128,var(--bg-opacity))}.bg-red-50{--bg-opacity:1;background-color:#fdf2f2;background-color:rgba(253,242,242,var(--bg-opacity))}.bg-red-100{--bg-opacity:1;background-color:#fde8e8;background-color:rgba(253,232,232,var(--bg-opacity))}.bg-yellow-100{--bg-opacity:1;background-color:#fdf6b2;background-color:rgba(253,246,178,var(--bg-opacity))}.bg-green-100{--bg-opacity:1;background-color:#def7ec;background-color:rgba(222,247,236,var(--bg-opacity))}.bg-green-300{--bg-opacity:1;background-color:#84e1bc;background-color:rgba(132,225,188,var(--bg-opacity))}.bg-green-600{--bg-opacity:1;background-color:#057a55;background-color:rgba(5,122,85,var(--bg-opacity))}.bg-teal-50{--bg-opacity:1;background-color:#edfafa;background-color:rgba(237,250,250,var(--bg-opacity))}.bg-blue-50{--bg-opacity:1;background-color:#ebf5ff;background-color:rgba(235,245,255,var(--bg-opacity))}.bg-blue-300{--bg-opacity:1;background-color:#a4cafe;background-color:rgba(164,202,254,var(--bg-opacity))}.bg-indigo-200{--bg-opacity:1;background-color:#cddbfe;background-color:rgba(205,219,254,var(--bg-opacity))}.bg-indigo-500{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity))}.bg-indigo-600{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.bg-indigo-700{--bg-opacity:1;background-color:#5145cd;background-color:rgba(81,69,205,var(--bg-opacity))}.bg-indigo-800{--bg-opacity:1;background-color:#42389d;background-color:rgba(66,56,157,var(--bg-opacity))}.bg-pink-200{--bg-opacity:1;background-color:#fad1e8;background-color:rgba(250,209,232,var(--bg-opacity))}.group:focus .group-focus\:bg-gray-400,.group:hover .group-hover\:bg-gray-400{--bg-opacity:1;background-color:#9fa6b2;background-color:rgba(159,166,178,var(--bg-opacity))}.hover\:bg-gray-50:hover{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity))}.hover\:bg-green-500:hover{--bg-opacity:1;background-color:#0e9f6e;background-color:rgba(14,159,110,var(--bg-opacity))}.hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity))}.hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.focus\:bg-gray-50:focus{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-opacity-75{--bg-opacity:0.75}.border-collapse{border-collapse:collapse}.border-transparent{border-color:transparent}.border-gray-100{--border-opacity:1;border-color:#f4f5f7;border-color:rgba(244,245,247,var(--border-opacity))}.border-gray-200{--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.border-gray-300{--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#9fa6b2;border-color:rgba(159,166,178,var(--border-opacity))}.border-indigo-300{--border-opacity:1;border-color:#b4c6fc;border-color:rgba(180,198,252,var(--border-opacity))}.border-indigo-500{--border-opacity:1;border-color:#6875f5;border-color:rgba(104,117,245,var(--border-opacity))}.border-indigo-600{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity))}.hover\:border-gray-200:hover{--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.hover\:border-red-400:hover{--border-opacity:1;border-color:#f98080;border-color:rgba(249,128,128,var(--border-opacity))}.hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity))}.focus\:border-blue-300:focus{--border-opacity:1;border-color:#a4cafe;border-color:rgba(164,202,254,var(--border-opacity))}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-0{border-width:0}.border-2{border-width:2px}.border{border-width:1px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.grid{display:grid}.contents{display:contents}.hidden{display:none}.flex-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-col,.flex-row{-webkit-box-direction:normal}.flex-col{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.self-start{-ms-flex-item-align:start;align-self:flex-start}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-shrink-0{-ms-flex-negative:0;flex-shrink:0}.float-right{float:right}.float-left{float:left}.clearfix:after{content:"";display:table;clear:both}.font-sans{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-thin{font-weight:200}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-0{height:0}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-15{height:3.75rem}.h-20{height:5rem}.h-48{height:12rem}.h-auto{height:auto}.h-1\.5{height:.375rem}.h-2\.5{height:.625rem}.h-full{height:100%}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-9{line-height:2.25rem}.leading-none{line-height:1}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.m-4{margin:1rem}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mx-8{margin-left:2rem;margin-right:2rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.my-12{margin-top:3rem;margin-bottom:3rem}.mx-auto{margin-left:auto;margin-right:auto}.-my-4{margin-top:-1rem;margin-bottom:-1rem}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mt-3{margin-top:.75rem}.mr-3{margin-right:.75rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mt-5{margin-top:1.25rem}.ml-5{margin-left:1.25rem}.mt-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.mt-7{margin-top:1.75rem}.mb-7{margin-bottom:1.75rem}.ml-7{margin-left:1.75rem}.mt-8{margin-top:2rem}.mr-8{margin-right:2rem}.ml-8{margin-left:2rem}.mt-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mt-12{margin-top:3rem}.mb-12{margin-bottom:3rem}.ml-12{margin-left:3rem}.ml-14{margin-left:3.5rem}.mt-16{margin-top:4rem}.mr-16{margin-right:4rem}.ml-16{margin-left:4rem}.mt-0\.5{margin-top:.125rem}.mt-1\.5{margin-top:.375rem}.mr-1\.5{margin-right:.375rem}.mt-2\.5{margin-top:.625rem}.-mt-1{margin-top:-.25rem}.-mr-1{margin-right:-.25rem}.-mb-1{margin-bottom:-.25rem}.-mb-2{margin-bottom:-.5rem}.-mt-3{margin-top:-.75rem}.-mr-3{margin-right:-.75rem}.-mb-4{margin-bottom:-1rem}.-mt-5{margin-top:-1.25rem}.-ml-6{margin-left:-1.5rem}.-ml-8{margin-left:-2rem}.-mb-0\.5{margin-bottom:-.125rem}.-mt-1\.5{margin-top:-.375rem}.max-h-full{max-height:100%}.max-w-3xl{max-width:48rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.min-w-full{min-width:100%}.object-cover{-o-object-fit:cover;object-fit:cover}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-13{padding:3.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-12{padding-top:3rem;padding-bottom:3rem}.px-12{padding-left:3rem;padding-right:3rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.pt-1{padding-top:.25rem}.pr-1{padding-right:.25rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pr-2{padding-right:.5rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pt-3{padding-top:.75rem}.pr-3{padding-right:.75rem}.pb-3{padding-bottom:.75rem}.pl-3{padding-left:.75rem}.pt-4{padding-top:1rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pt-5{padding-top:1.25rem}.pb-5{padding-bottom:1.25rem}.pl-5{padding-left:1.25rem}.pt-6{padding-top:1.5rem}.pr-6{padding-right:1.5rem}.pb-6{padding-bottom:1.5rem}.pl-6{padding-left:1.5rem}.pt-7{padding-top:1.75rem}.pt-8{padding-top:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.pt-10{padding-top:2.5rem}.pl-10{padding-left:2.5rem}.pr-12{padding-right:3rem}.pb-12{padding-bottom:3rem}.pl-16{padding-left:4rem}.pt-0\.5{padding-top:.125rem}.pl-0\.5{padding-left:.125rem}.pt-1\.5{padding-top:.375rem}.pb-1\.5{padding-bottom:.375rem}.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{right:0;left:0}.inset-0,.inset-y-0{top:0;bottom:0}.top-0{top:0}.right-0{right:0}.left-0{left:0}.bottom-2{bottom:.5rem}.bottom-5{bottom:1.25rem}.top-8{top:2rem}.top-10{top:2.5rem}.top-20{top:5rem}.resize{resize:both}.shadow-xs{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05);box-shadow:0 0 0 1px rgba(0,0,0,.05)}.shadow-sm{-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.shadow{-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{-webkit-box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-lg{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.shadow-xl{-webkit-box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-inner{-webkit-box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06);box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.hover\:shadow-md:hover{-webkit-box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.focus\:shadow-lg:focus{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.focus\:shadow-outline:focus{-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45)}.focus\:shadow-outline-blue:focus{-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45)}.focus\:shadow-outline-red:focus{-webkit-box-shadow:0 0 0 3px rgba(248,180,180,.45);box-shadow:0 0 0 3px rgba(248,180,180,.45)}.focus\:shadow-outline-indigo:focus{-webkit-box-shadow:0 0 0 3px rgba(180,198,252,.45);box-shadow:0 0 0 3px rgba(180,198,252,.45)}.fill-current{fill:currentColor}.table-fixed{table-layout:fixed}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#d2d6dc;color:rgba(210,214,220,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity))}.text-gray-800{--text-opacity:1;color:#252f3f;color:rgba(37,47,63,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.text-red-400{--text-opacity:1;color:#f98080;color:rgba(249,128,128,var(--text-opacity))}.text-red-500{--text-opacity:1;color:#f05252;color:rgba(240,82,82,var(--text-opacity))}.text-red-600{--text-opacity:1;color:#e02424;color:rgba(224,36,36,var(--text-opacity))}.text-red-800{--text-opacity:1;color:#9b1c1c;color:rgba(155,28,28,var(--text-opacity))}.text-orange-400{--text-opacity:1;color:#ff8a4c;color:rgba(255,138,76,var(--text-opacity))}.text-orange-500{--text-opacity:1;color:#ff5a1f;color:rgba(255,90,31,var(--text-opacity))}.text-yellow-400{--text-opacity:1;color:#e3a008;color:rgba(227,160,8,var(--text-opacity))}.text-yellow-600{--text-opacity:1;color:#9f580a;color:rgba(159,88,10,var(--text-opacity))}.text-green-400{--text-opacity:1;color:#31c48d;color:rgba(49,196,141,var(--text-opacity))}.text-green-600{--text-opacity:1;color:#057a55;color:rgba(5,122,85,var(--text-opacity))}.text-green-800{--text-opacity:1;color:#03543f;color:rgba(3,84,63,var(--text-opacity))}.text-teal-400{--text-opacity:1;color:#16bdca;color:rgba(22,189,202,var(--text-opacity))}.text-teal-700{--text-opacity:1;color:#036672;color:rgba(3,102,114,var(--text-opacity))}.text-teal-800{--text-opacity:1;color:#05505c;color:rgba(5,80,92,var(--text-opacity))}.text-blue-400{--text-opacity:1;color:#76a9fa;color:rgba(118,169,250,var(--text-opacity))}.text-blue-500{--text-opacity:1;color:#3f83f8;color:rgba(63,131,248,var(--text-opacity))}.text-blue-700{--text-opacity:1;color:#1a56db;color:rgba(26,86,219,var(--text-opacity))}.text-blue-800{--text-opacity:1;color:#1e429f;color:rgba(30,66,159,var(--text-opacity))}.text-indigo-100{--text-opacity:1;color:#e5edff;color:rgba(229,237,255,var(--text-opacity))}.text-indigo-400{--text-opacity:1;color:#8da2fb;color:rgba(141,162,251,var(--text-opacity))}.text-indigo-500{--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.text-indigo-600{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.text-indigo-700{--text-opacity:1;color:#5145cd;color:rgba(81,69,205,var(--text-opacity))}.text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.group:hover .group-hover\:text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.group:hover .group-hover\:text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.group:focus .group-focus\:text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.group:focus .group-focus\:text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.hover\:text-gray-500:hover{--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity))}.hover\:text-gray-800:hover{--text-opacity:1;color:#252f3f;color:rgba(37,47,63,var(--text-opacity))}.hover\:text-gray-900:hover{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.hover\:text-blue-700:hover{--text-opacity:1;color:#1a56db;color:rgba(26,86,219,var(--text-opacity))}.hover\:text-indigo-500:hover{--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.focus\:text-gray-900:focus{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.active\:text-indigo-600:active{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.text-opacity-75{--text-opacity:0.75}.italic{font-style:italic}.not-italic{font-style:normal}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.underline{text-decoration:underline}.no-underline{text-decoration:none}.hover\:underline:hover{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.visible{visibility:visible}.whitespace-no-wrap{white-space:nowrap}.break-words{word-wrap:break-word;overflow-wrap:break-word}.break-all{word-break:break-all}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-0{width:0}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-12{width:3rem}.w-24{width:6rem}.w-40{width:10rem}.w-48{width:12rem}.w-56{width:14rem}.w-auto{width:auto}.w-1\.5{width:.375rem}.w-2\.5{width:.625rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-1\/12{width:8.333333%}.w-2\/12{width:16.666667%}.w-3\/12{width:25%}.w-4\/12{width:33.333333%}.w-5\/12{width:41.666667%}.w-9\/12{width:75%}.w-10\/12{width:83.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.w-screen{width:100vw}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.gap-8{grid-gap:2rem;gap:2rem}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.origin-top-right{-webkit-transform-origin:top right;transform-origin:top right}.scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.scale-100{--transform-scale-x:1;--transform-scale-y:1}.translate-x-0{--transform-translate-x:0}.-translate-x-full{--transform-translate-x:-100%}.transition-all{-webkit-transition-property:all;transition-property:all}.transition{-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform}.transition-opacity{-webkit-transition-property:opacity;transition-property:opacity}.ease-in{-webkit-transition-timing-function:cubic-bezier(.4,0,1,1);transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-75{-webkit-transition-duration:75ms;transition-duration:75ms}.duration-100{-webkit-transition-duration:.1s;transition-duration:.1s}.duration-150{-webkit-transition-duration:.15s;transition-duration:.15s}.duration-200{-webkit-transition-duration:.2s;transition-duration:.2s}.duration-300{-webkit-transition-duration:.3s;transition-duration:.3s}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes ping{75%,to{-webkit-transform:scale(2);transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{-webkit-transform:none;transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-ping{-webkit-animation:ping 1s cubic-bezier(0,0,.2,1) infinite;animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.animate-pulse{-webkit-animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@media (min-width:640px){.sm\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.sm\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.sm\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.sm\:rounded-md{border-radius:.375rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.sm\:grid{display:grid}.sm\:flex-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.sm\:items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.sm\:items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.sm\:h-10{height:2.5rem}.sm\:text-sm{font-size:.875rem}.sm\:text-2xl{font-size:1.5rem}.sm\:text-3xl{font-size:1.875rem}.sm\:leading-5{line-height:1.25rem}.sm\:leading-7{line-height:1.75rem}.sm\:leading-9{line-height:2.25rem}.sm\:my-0{margin-top:0;margin-bottom:0}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-7{margin-top:1.75rem;margin-bottom:1.75rem}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:my-12{margin-top:3rem;margin-bottom:3rem}.sm\:mt-0{margin-top:0}.sm\:ml-3{margin-left:.75rem}.sm\:ml-4{margin-left:1rem}.sm\:mt-5{margin-top:1.25rem}.sm\:max-w-lg{max-width:32rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-2{padding-left:.5rem;padding-right:.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:w-10{width:2.5rem}.sm\:w-32{width:8rem}.sm\:w-auto{width:auto}.sm\:w-1\/2{width:50%}.sm\:w-1\/3{width:33.333333%}.sm\:w-2\/3{width:66.666667%}.sm\:w-2\/4{width:50%}.sm\:w-full{width:100%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.md\:rounded-lg{border-radius:.5rem}.md\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.md\:items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.md\:items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.md\:justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.md\:text-base{font-size:1rem}.md\:mx-0{margin-left:0;margin-right:0}.md\:my-2{margin-top:.5rem;margin-bottom:.5rem}.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:mt-0{margin-top:0}.md\:ml-2{margin-left:.5rem}.md\:ml-4{margin-left:1rem}.md\:ml-8{margin-left:2rem}.md\:-mr-8{margin-right:-2rem}.md\:max-w-xl{max-width:36rem}.md\:max-w-5xl{max-width:64rem}.md\:p-2{padding:.5rem}.md\:p-6{padding:1.5rem}.md\:py-0{padding-top:0;padding-bottom:0}.md\:px-1{padding-left:.25rem;padding-right:.25rem}.md\:px-2{padding-left:.5rem;padding-right:.5rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:pb-2{padding-bottom:.5rem}.md\:pr-4{padding-right:1rem}.md\:pt-6{padding-top:1.5rem}.md\:shadow-xl{-webkit-box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.md\:w-3\/5{width:60%}}@media (min-width:1024px){.lg\:bg-transparent{background-color:transparent}.lg\:border-transparent{border-color:transparent}.lg\:rounded-full{border-radius:9999px}.lg\:block{display:block}.lg\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.lg\:inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.lg\:text-sm{font-size:.875rem}.lg\:text-lg{font-size:1.125rem}.lg\:my-0{margin-top:0;margin-bottom:0}.lg\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.lg\:my-24{margin-top:6rem;margin-bottom:6rem}.lg\:mx-auto{margin-left:auto;margin-right:auto}.lg\:ml-16{margin-left:4rem}.lg\:-mr-16{margin-right:-4rem}.lg\:max-w-3xl{max-width:48rem}.lg\:p-6{padding:1.5rem}.lg\:p-8{padding:2rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pt-2{padding-top:.5rem}.lg\:pb-2{padding-bottom:.5rem}.lg\:pl-2{padding-left:.5rem}.lg\:top-1\/2{top:50%}.lg\:shadow-none{-webkit-box-shadow:none;box-shadow:none}.lg\:w-40{width:10rem}.lg\:w-48{width:12rem}.lg\:w-1\/2{width:50%}.lg\:w-3\/5{width:60%}.lg\:w-3\/12{width:25%}.lg\:w-7\/12{width:58.333333%}}@media (min-width:1280px){.xl\:mx-7{margin-left:1.75rem;margin-right:1.75rem}.xl\:mr-0{margin-right:0}.xl\:ml-3{margin-left:.75rem}.xl\:ml-4{margin-left:1rem}.xl\:ml-20{margin-left:5rem}.xl\:ml-32{margin-left:8rem}.xl\:max-w-4xl{max-width:56rem}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:pb-4{padding-bottom:1rem}.xl\:top-1\/3{top:33.333333%}.xl\:w-1\/4{width:25%}.xl\:w-2\/5{width:40%}.xl\:w-3\/5{width:60%}.xl\:w-2\/12{width:16.666667%}.xl\:w-6\/12{width:50%}.xl\:w-7\/12{width:58.333333%}}
|
1 |
+
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;border:0 solid #d2d6dc}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#a0aec0}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}a{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}img{border-width:0}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-input::-webkit-input-placeholder{color:#9fa6b2;opacity:1}.form-input::-moz-placeholder{color:#9fa6b2;opacity:1}.form-input::-ms-input-placeholder{color:#9fa6b2;opacity:1}.form-input::placeholder{color:#9fa6b2;opacity:1}.form-input:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-textarea::-webkit-input-placeholder{color:#9fa6b2;opacity:1}.form-textarea::-moz-placeholder{color:#9fa6b2;opacity:1}.form-textarea::-ms-input-placeholder{color:#9fa6b2;opacity:1}.form-textarea::placeholder{color:#9fa6b2;opacity:1}.form-textarea:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-multiselect:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;background-repeat:no-repeat;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;line-height:1.5;background-position:right .5rem center;background-size:1.5em 1.5em}.form-select::-ms-expand{color:#9fa6b2;border:none}@media not print{.form-select::-ms-expand{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-select:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-negative:0;flex-shrink:0;height:1rem;width:1rem;color:#3f83f8;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.25rem}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-checkbox::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-checkbox:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-checkbox:checked:focus{border-color:transparent}.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-negative:0;flex-shrink:0;border-radius:100%;height:1rem;width:1rem;color:#3f83f8;background-color:#fff;border-color:#d2d6dc;border-width:1px}.form-radio:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-radio:checked:focus{border-color:transparent}li.menu-top div.wp-menu-image img{display:initial;border-style:none}.ig-es-primary-button,.ig-es-send-queue-emails{border-color:transparent;padding:.5rem 1rem;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.ig-es-primary-button,.ig-es-send-queue-emails,.ig-es-title-button,.wp-heading-inline+.page-title-action{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:.375rem;border-width:1px;font-size:.875rem;line-height:1.25rem;font-weight:500;--text-opacity:1;--bg-opacity:1;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.ig-es-title-button,.wp-heading-inline+.page-title-action{--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity));color:#374151;color:rgba(55,65,81,var(--text-opacity));background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));padding:.25rem .75rem}.wrap .wp-heading-inline+.page-title-action{margin-left:.5rem}.ig-es-title-button:hover,.wp-heading-inline+.page-title-action:hover{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity));--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity))}.ig-es-title-button:focus,.wp-heading-inline+.page-title-action:focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45);--border-opacity:1;border-color:#a4cafe;border-color:rgba(164,202,254,var(--border-opacity))}.ig-es-primary-button:hover{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity));--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.ig-es-primary-button:focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45)}.ig-es-imp-button{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important;-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important;border-radius:.375rem!important;border-width:1px!important;border-color:transparent!important;background-color:#fff!important;background-color:rgba(255,255,255,var(--bg-opacity))!important;font-size:.875rem!important;line-height:1.25rem!important;font-weight:500!important;background-color:#0e9f6e!important;background-color:rgba(14,159,110,var(--bg-opacity))!important;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform!important;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;-webkit-transition-duration:.15s!important;transition-duration:.15s!important}.ig-es-imp-button,.ig-es-imp-button:hover{--text-opacity:1!important;color:#fff!important;color:rgba(255,255,255,var(--text-opacity))!important;--bg-opacity:1!important}.ig-es-imp-button:hover{background-color:#31c48d!important;background-color:rgba(49,196,141,var(--bg-opacity))!important}.ig-es-imp-button:focus{outline:0!important;-webkit-box-shadow:0 0 0 3px rgba(132,225,188,.45)!important;box-shadow:0 0 0 3px rgba(132,225,188,.45)!important}.ig-es-link-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:#ff5a1f;background-color:rgba(255,90,31,var(--bg-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.ig-es-link-button,.ig-es-link-button:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity));--bg-opacity:1}.ig-es-link-button:hover{background-color:#ff8a4c;background-color:rgba(255,138,76,var(--bg-opacity))}.ig-es-link-button:focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(253,186,140,.45);box-shadow:0 0 0 3px rgba(253,186,140,.45)}.ig-es-action.js-open .ig-es-action__header{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity));--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity))}.form-input{--bg-opacity:1!important;background-color:#fff!important;background-color:rgba(255,255,255,var(--bg-opacity))!important;border-width:1px!important;border-radius:.375rem!important;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important;--border-opacity:1!important;border-color:#d2d6dc!important;border-color:rgba(210,214,220,var(--border-opacity))!important}.form-input:focus{outline:0!important;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important}.form-checkbox{content:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E")}.form-radio{content:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}.form-checkbox:checked,.form-radio:checked{--text-opacity:1!important;color:#5850ec!important;color:rgba(88,80,236,var(--text-opacity))!important}.form-select{font-size:.875rem!important;--border-opacity:1!important;border-color:#9fa6b2!important;border-color:rgba(159,166,178,var(--border-opacity))!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}.form-select:focus,input[type=number]:focus{outline:0!important;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;--border-opacity:1!important;border-color:#a4cafe!important;border-color:rgba(164,202,254,var(--border-opacity))!important}.es-check-toggle:checked~.es-mail-toggle-line{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.es-check-toggle:checked~.es-mail-toggle-dot{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));--transform-translate-x:100%}.es-mail-toggle-line{width:2.25rem;height:1.25rem;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity));-webkit-box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06);box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.es-mail-toggle-dot,.es-mail-toggle-line{display:block;--bg-opacity:1;border-radius:9999px}.es-mail-toggle-dot{width:.875rem;height:.875rem;margin-left:.25rem;position:absolute;top:0;bottom:0;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.es-mail-toggle-dot:focus-within{-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45)}[type=radio]:checked+.es-mailer-logo{-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));--transform-scale-x:1.1;--transform-scale-y:1.1;-webkit-box-shadow:0 0 3px 1px #5a67d8;box-shadow:0 0 3px 1px #5a67d8}[type=radio]:checked+.es-mailer-logo:hover{border-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.wp-core-ui .button,.wp-core-ui .button-secondary{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{font-size:.875rem;border-radius:.375rem;border-width:1px;line-height:1.25rem;font-weight:500;--text-opacity:1}.wp-core-ui .button-primary{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.wp-core-ui .button-primary:hover,.wp-core-ui .button:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.wp-core-ui .search-box input[name=s],.wp-core-ui select{border-radius:.375rem}.wp-core-ui #bulk-action-selector-top,.wp-core-ui #doaction,.wp-core-ui #doaction2,.wp-core-ui #filter-by-date,.wp-core-ui #post-query-submit,.wp-core-ui #poststuff select,.wp-core-ui #search-submit{cursor:pointer;line-height:1.25rem;--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity));background-color:transparent;font-size:.875rem}.wp-core-ui #search-submit{margin-left:.375rem}.es-add-or-condition:hover,.wp-core-ui #doaction2:hover .wp-core-ui #post-query-submit:hover,.wp-core-ui #doaction:hover,.wp-core-ui #search-submit:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));--border-opacity:1;border-color:#6b7280;border-color:rgba(107,114,128,var(--border-opacity))}.es-add-or-condition:focus,.wp-core-ui #doaction2:focus .wp-core-ui #post-query-submit:focus,.wp-core-ui #doaction:focus,.wp-core-ui #search-submit:focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(159,166,178,.45);box-shadow:0 0 0 3px rgba(159,166,178,.45)}.es-items-lists table.fixed,.post-type-es_template table.fixed{margin-top:1rem;margin-bottom:1rem;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);border-radius:.5rem;overflow:hidden}.es-items-lists table.fixed tfoot td,.es-items-lists table.fixed tfoot th,.es-items-lists table.fixed thead td,.es-items-lists table.fixed thead th,.post-type-es_template table.fixed tfoot th,.post-type-es_template table.fixed thead td,.post-type-es_template table.fixed thead th{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity));font-weight:500;letter-spacing:.05em}.es-items-lists table.fixed tfoot th,.es-items-lists table.fixed thead th,.post-type-es_template table.fixed tfoot th,.post-type-es_template table.fixed thead th{padding-top:.5rem;padding-bottom:.5rem}.es-items-lists .widefat thead td input,.post-type-es_template .widefat thead td input{margin-right:1.5rem}.post-type-es_template .wrap{padding-top:1rem;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.post-type-es_template .wrap>h1{padding-top:0;font-weight:600;--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));line-height:2.25rem}.es-items-lists .striped>tbody tr,.post-type-es_template .striped>tbody tr{border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));padding-top:.5rem;padding-bottom:.5rem}.es-campaign-reports-table .striped>tbody tr{border-bottom-width:2px}.es-items-lists .striped>tbody>:nth-child(odd),.post-type-es_template .striped>tbody>:nth-child(odd){--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.es_onboard_email{padding:.25rem .75rem!important}.es_reports_table_header{border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));text-align:left;font-size:.875rem;line-height:1rem;font-weight:500;--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity));letter-spacing:.05em}.importing-progress,.progress{width:100%;height:2rem;--bg-opacity:1;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity));overflow:hidden;position:relative;text-align:right;line-height:1rem;margin-top:.375rem;border-radius:.25rem}.importing-progress span.bar,.progress span.bar{display:block;position:absolute;line-height:2.5rem;padding-top:.25rem;padding-bottom:.25rem;top:0;bottom:0;left:0;border-radius:.25rem;overflow:hidden;background-image:-webkit-gradient(linear,left top,right top,from(var(--gradient-color-stops)));background-image:linear-gradient(90deg,var(--gradient-color-stops));--gradient-from-color:#42389d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,56,157,0));--gradient-to-color:#6875f5;--bg-opacity:1;background-color:#8da2fb;background-color:rgba(141,162,251,var(--bg-opacity))}.es_sequences_wrapper .ig-es-campaign-rules label{--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));font-weight:500;--text-opacity:0.75;font-size:.875rem;letter-spacing:.025em;line-height:1.5rem}.email-subscribers_page_es_workflows #ig_es_workflow_trigger select option:disabled{--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity))}.space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--divide-opacity))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-50{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-gray-200{--bg-opacity:1;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity))}.bg-gray-300{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity))}.bg-gray-500{--bg-opacity:1;background-color:#6b7280;background-color:rgba(107,114,128,var(--bg-opacity))}.bg-red-50{--bg-opacity:1;background-color:#fdf2f2;background-color:rgba(253,242,242,var(--bg-opacity))}.bg-red-100{--bg-opacity:1;background-color:#fde8e8;background-color:rgba(253,232,232,var(--bg-opacity))}.bg-yellow-100{--bg-opacity:1;background-color:#fdf6b2;background-color:rgba(253,246,178,var(--bg-opacity))}.bg-green-100{--bg-opacity:1;background-color:#def7ec;background-color:rgba(222,247,236,var(--bg-opacity))}.bg-green-300{--bg-opacity:1;background-color:#84e1bc;background-color:rgba(132,225,188,var(--bg-opacity))}.bg-green-600{--bg-opacity:1;background-color:#057a55;background-color:rgba(5,122,85,var(--bg-opacity))}.bg-teal-50{--bg-opacity:1;background-color:#edfafa;background-color:rgba(237,250,250,var(--bg-opacity))}.bg-blue-50{--bg-opacity:1;background-color:#ebf5ff;background-color:rgba(235,245,255,var(--bg-opacity))}.bg-blue-300{--bg-opacity:1;background-color:#a4cafe;background-color:rgba(164,202,254,var(--bg-opacity))}.bg-indigo-200{--bg-opacity:1;background-color:#cddbfe;background-color:rgba(205,219,254,var(--bg-opacity))}.bg-indigo-500{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity))}.bg-indigo-600{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.bg-indigo-700{--bg-opacity:1;background-color:#5145cd;background-color:rgba(81,69,205,var(--bg-opacity))}.bg-indigo-800{--bg-opacity:1;background-color:#42389d;background-color:rgba(66,56,157,var(--bg-opacity))}.bg-pink-200{--bg-opacity:1;background-color:#fad1e8;background-color:rgba(250,209,232,var(--bg-opacity))}.group:focus .group-focus\:bg-gray-400,.group:hover .group-hover\:bg-gray-400{--bg-opacity:1;background-color:#9fa6b2;background-color:rgba(159,166,178,var(--bg-opacity))}.hover\:bg-gray-50:hover{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity))}.hover\:bg-green-500:hover{--bg-opacity:1;background-color:#0e9f6e;background-color:rgba(14,159,110,var(--bg-opacity))}.hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity))}.hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.focus\:bg-gray-50:focus{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-opacity-75{--bg-opacity:0.75}.border-collapse{border-collapse:collapse}.border-transparent{border-color:transparent}.border-gray-100{--border-opacity:1;border-color:#f4f5f7;border-color:rgba(244,245,247,var(--border-opacity))}.border-gray-200{--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.border-gray-300{--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#9fa6b2;border-color:rgba(159,166,178,var(--border-opacity))}.border-indigo-300{--border-opacity:1;border-color:#b4c6fc;border-color:rgba(180,198,252,var(--border-opacity))}.border-indigo-500{--border-opacity:1;border-color:#6875f5;border-color:rgba(104,117,245,var(--border-opacity))}.border-indigo-600{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity))}.hover\:border-gray-200:hover{--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.hover\:border-red-400:hover{--border-opacity:1;border-color:#f98080;border-color:rgba(249,128,128,var(--border-opacity))}.hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity))}.focus\:border-blue-300:focus{--border-opacity:1;border-color:#a4cafe;border-color:rgba(164,202,254,var(--border-opacity))}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-0{border-width:0}.border-2{border-width:2px}.border{border-width:1px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.grid{display:grid}.contents{display:contents}.hidden{display:none}.flex-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-col,.flex-row{-webkit-box-direction:normal}.flex-col{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.self-start{-ms-flex-item-align:start;align-self:flex-start}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-shrink-0{-ms-flex-negative:0;flex-shrink:0}.float-right{float:right}.float-left{float:left}.clearfix:after{content:"";display:table;clear:both}.font-sans{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-thin{font-weight:200}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-0{height:0}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-15{height:3.75rem}.h-20{height:5rem}.h-48{height:12rem}.h-auto{height:auto}.h-1\.5{height:.375rem}.h-2\.5{height:.625rem}.h-full{height:100%}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-9{line-height:2.25rem}.leading-none{line-height:1}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.m-4{margin:1rem}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mx-8{margin-left:2rem;margin-right:2rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.my-12{margin-top:3rem;margin-bottom:3rem}.mx-auto{margin-left:auto;margin-right:auto}.-my-4{margin-top:-1rem;margin-bottom:-1rem}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mt-3{margin-top:.75rem}.mr-3{margin-right:.75rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mt-5{margin-top:1.25rem}.ml-5{margin-left:1.25rem}.mt-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.mt-7{margin-top:1.75rem}.mb-7{margin-bottom:1.75rem}.ml-7{margin-left:1.75rem}.mt-8{margin-top:2rem}.mr-8{margin-right:2rem}.ml-8{margin-left:2rem}.mt-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mt-12{margin-top:3rem}.mb-12{margin-bottom:3rem}.ml-12{margin-left:3rem}.ml-14{margin-left:3.5rem}.mt-16{margin-top:4rem}.mr-16{margin-right:4rem}.ml-16{margin-left:4rem}.mt-0\.5{margin-top:.125rem}.mt-1\.5{margin-top:.375rem}.mr-1\.5{margin-right:.375rem}.mt-2\.5{margin-top:.625rem}.-mt-1{margin-top:-.25rem}.-mr-1{margin-right:-.25rem}.-mb-1{margin-bottom:-.25rem}.-mb-2{margin-bottom:-.5rem}.-mt-3{margin-top:-.75rem}.-mr-3{margin-right:-.75rem}.-mb-4{margin-bottom:-1rem}.-mt-5{margin-top:-1.25rem}.-ml-6{margin-left:-1.5rem}.-ml-8{margin-left:-2rem}.-mb-0\.5{margin-bottom:-.125rem}.-mt-1\.5{margin-top:-.375rem}.max-h-full{max-height:100%}.max-w-3xl{max-width:48rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.min-w-full{min-width:100%}.object-cover{-o-object-fit:cover;object-fit:cover}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.focus\:outline-none:focus{outline:0}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-13{padding:3.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-12{padding-top:3rem;padding-bottom:3rem}.px-12{padding-left:3rem;padding-right:3rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.pt-1{padding-top:.25rem}.pr-1{padding-right:.25rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pr-2{padding-right:.5rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pt-3{padding-top:.75rem}.pr-3{padding-right:.75rem}.pb-3{padding-bottom:.75rem}.pl-3{padding-left:.75rem}.pt-4{padding-top:1rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pt-5{padding-top:1.25rem}.pb-5{padding-bottom:1.25rem}.pl-5{padding-left:1.25rem}.pt-6{padding-top:1.5rem}.pr-6{padding-right:1.5rem}.pb-6{padding-bottom:1.5rem}.pl-6{padding-left:1.5rem}.pt-7{padding-top:1.75rem}.pt-8{padding-top:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.pt-10{padding-top:2.5rem}.pl-10{padding-left:2.5rem}.pr-12{padding-right:3rem}.pb-12{padding-bottom:3rem}.pl-16{padding-left:4rem}.pt-0\.5{padding-top:.125rem}.pl-0\.5{padding-left:.125rem}.pt-1\.5{padding-top:.375rem}.pb-1\.5{padding-bottom:.375rem}.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{right:0;left:0}.inset-0,.inset-y-0{top:0;bottom:0}.top-0{top:0}.right-0{right:0}.left-0{left:0}.bottom-2{bottom:.5rem}.bottom-5{bottom:1.25rem}.top-8{top:2rem}.top-10{top:2.5rem}.top-20{top:5rem}.resize{resize:both}.shadow-xs{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05);box-shadow:0 0 0 1px rgba(0,0,0,.05)}.shadow-sm{-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.shadow{-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{-webkit-box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-lg{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.shadow-xl{-webkit-box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-inner{-webkit-box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06);box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.hover\:shadow-md:hover{-webkit-box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.focus\:shadow-lg:focus{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.focus\:shadow-outline:focus{-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45)}.focus\:shadow-outline-blue:focus{-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45)}.focus\:shadow-outline-red:focus{-webkit-box-shadow:0 0 0 3px rgba(248,180,180,.45);box-shadow:0 0 0 3px rgba(248,180,180,.45)}.focus\:shadow-outline-indigo:focus{-webkit-box-shadow:0 0 0 3px rgba(180,198,252,.45);box-shadow:0 0 0 3px rgba(180,198,252,.45)}.fill-current{fill:currentColor}.table-fixed{table-layout:fixed}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#d2d6dc;color:rgba(210,214,220,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity))}.text-gray-800{--text-opacity:1;color:#252f3f;color:rgba(37,47,63,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.text-red-400{--text-opacity:1;color:#f98080;color:rgba(249,128,128,var(--text-opacity))}.text-red-500{--text-opacity:1;color:#f05252;color:rgba(240,82,82,var(--text-opacity))}.text-red-600{--text-opacity:1;color:#e02424;color:rgba(224,36,36,var(--text-opacity))}.text-red-800{--text-opacity:1;color:#9b1c1c;color:rgba(155,28,28,var(--text-opacity))}.text-orange-400{--text-opacity:1;color:#ff8a4c;color:rgba(255,138,76,var(--text-opacity))}.text-orange-500{--text-opacity:1;color:#ff5a1f;color:rgba(255,90,31,var(--text-opacity))}.text-yellow-400{--text-opacity:1;color:#e3a008;color:rgba(227,160,8,var(--text-opacity))}.text-yellow-600{--text-opacity:1;color:#9f580a;color:rgba(159,88,10,var(--text-opacity))}.text-green-400{--text-opacity:1;color:#31c48d;color:rgba(49,196,141,var(--text-opacity))}.text-green-600{--text-opacity:1;color:#057a55;color:rgba(5,122,85,var(--text-opacity))}.text-green-800{--text-opacity:1;color:#03543f;color:rgba(3,84,63,var(--text-opacity))}.text-teal-400{--text-opacity:1;color:#16bdca;color:rgba(22,189,202,var(--text-opacity))}.text-teal-700{--text-opacity:1;color:#036672;color:rgba(3,102,114,var(--text-opacity))}.text-teal-800{--text-opacity:1;color:#05505c;color:rgba(5,80,92,var(--text-opacity))}.text-blue-400{--text-opacity:1;color:#76a9fa;color:rgba(118,169,250,var(--text-opacity))}.text-blue-500{--text-opacity:1;color:#3f83f8;color:rgba(63,131,248,var(--text-opacity))}.text-blue-700{--text-opacity:1;color:#1a56db;color:rgba(26,86,219,var(--text-opacity))}.text-blue-800{--text-opacity:1;color:#1e429f;color:rgba(30,66,159,var(--text-opacity))}.text-indigo-100{--text-opacity:1;color:#e5edff;color:rgba(229,237,255,var(--text-opacity))}.text-indigo-400{--text-opacity:1;color:#8da2fb;color:rgba(141,162,251,var(--text-opacity))}.text-indigo-500{--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.text-indigo-600{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.text-indigo-700{--text-opacity:1;color:#5145cd;color:rgba(81,69,205,var(--text-opacity))}.text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.group:hover .group-hover\:text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.group:hover .group-hover\:text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.group:focus .group-focus\:text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.group:focus .group-focus\:text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.hover\:text-gray-500:hover{--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity))}.hover\:text-gray-800:hover{--text-opacity:1;color:#252f3f;color:rgba(37,47,63,var(--text-opacity))}.hover\:text-gray-900:hover{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.hover\:text-blue-700:hover{--text-opacity:1;color:#1a56db;color:rgba(26,86,219,var(--text-opacity))}.hover\:text-indigo-500:hover{--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.focus\:text-gray-900:focus{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.active\:text-indigo-600:active{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.text-opacity-75{--text-opacity:0.75}.italic{font-style:italic}.not-italic{font-style:normal}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.underline{text-decoration:underline}.no-underline{text-decoration:none}.hover\:underline:hover{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.visible{visibility:visible}.whitespace-no-wrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-0{width:0}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-12{width:3rem}.w-24{width:6rem}.w-40{width:10rem}.w-48{width:12rem}.w-56{width:14rem}.w-auto{width:auto}.w-1\.5{width:.375rem}.w-2\.5{width:.625rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-1\/12{width:8.333333%}.w-2\/12{width:16.666667%}.w-3\/12{width:25%}.w-4\/12{width:33.333333%}.w-5\/12{width:41.666667%}.w-9\/12{width:75%}.w-10\/12{width:83.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.w-screen{width:100vw}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.gap-8{grid-gap:2rem;gap:2rem}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.origin-top-right{-webkit-transform-origin:top right;transform-origin:top right}.scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.scale-100{--transform-scale-x:1;--transform-scale-y:1}.translate-x-0{--transform-translate-x:0}.-translate-x-full{--transform-translate-x:-100%}.transition-all{-webkit-transition-property:all;transition-property:all}.transition{-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform}.transition-opacity{-webkit-transition-property:opacity;transition-property:opacity}.ease-in{-webkit-transition-timing-function:cubic-bezier(.4,0,1,1);transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-75{-webkit-transition-duration:75ms;transition-duration:75ms}.duration-100{-webkit-transition-duration:.1s;transition-duration:.1s}.duration-150{-webkit-transition-duration:.15s;transition-duration:.15s}.duration-200{-webkit-transition-duration:.2s;transition-duration:.2s}.duration-300{-webkit-transition-duration:.3s;transition-duration:.3s}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes ping{75%,to{-webkit-transform:scale(2);transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{-webkit-transform:none;transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-ping{-webkit-animation:ping 1s cubic-bezier(0,0,.2,1) infinite;animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.animate-pulse{-webkit-animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@media (min-width:640px){.sm\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.sm\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.sm\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.sm\:rounded-md{border-radius:.375rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.sm\:grid{display:grid}.sm\:flex-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.sm\:items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.sm\:items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.sm\:h-10{height:2.5rem}.sm\:text-sm{font-size:.875rem}.sm\:text-2xl{font-size:1.5rem}.sm\:text-3xl{font-size:1.875rem}.sm\:leading-5{line-height:1.25rem}.sm\:leading-7{line-height:1.75rem}.sm\:leading-9{line-height:2.25rem}.sm\:my-0{margin-top:0;margin-bottom:0}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-7{margin-top:1.75rem;margin-bottom:1.75rem}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:my-12{margin-top:3rem;margin-bottom:3rem}.sm\:mt-0{margin-top:0}.sm\:ml-3{margin-left:.75rem}.sm\:ml-4{margin-left:1rem}.sm\:mt-5{margin-top:1.25rem}.sm\:max-w-lg{max-width:32rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-2{padding-left:.5rem;padding-right:.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:w-10{width:2.5rem}.sm\:w-32{width:8rem}.sm\:w-auto{width:auto}.sm\:w-1\/2{width:50%}.sm\:w-1\/3{width:33.333333%}.sm\:w-2\/3{width:66.666667%}.sm\:w-2\/4{width:50%}.sm\:w-full{width:100%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.md\:rounded-lg{border-radius:.5rem}.md\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.md\:items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.md\:items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.md\:justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.md\:text-base{font-size:1rem}.md\:mx-0{margin-left:0;margin-right:0}.md\:my-2{margin-top:.5rem;margin-bottom:.5rem}.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:mt-0{margin-top:0}.md\:ml-2{margin-left:.5rem}.md\:ml-4{margin-left:1rem}.md\:ml-8{margin-left:2rem}.md\:-mr-8{margin-right:-2rem}.md\:max-w-xl{max-width:36rem}.md\:max-w-5xl{max-width:64rem}.md\:p-2{padding:.5rem}.md\:p-6{padding:1.5rem}.md\:py-0{padding-top:0;padding-bottom:0}.md\:px-1{padding-left:.25rem;padding-right:.25rem}.md\:px-2{padding-left:.5rem;padding-right:.5rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:pb-2{padding-bottom:.5rem}.md\:pr-4{padding-right:1rem}.md\:pt-6{padding-top:1.5rem}.md\:shadow-xl{-webkit-box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.md\:w-3\/5{width:60%}}@media (min-width:1024px){.lg\:bg-transparent{background-color:transparent}.lg\:border-transparent{border-color:transparent}.lg\:rounded-full{border-radius:9999px}.lg\:block{display:block}.lg\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.lg\:inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.lg\:text-sm{font-size:.875rem}.lg\:text-lg{font-size:1.125rem}.lg\:my-0{margin-top:0;margin-bottom:0}.lg\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.lg\:my-24{margin-top:6rem;margin-bottom:6rem}.lg\:mx-auto{margin-left:auto;margin-right:auto}.lg\:ml-16{margin-left:4rem}.lg\:-mr-16{margin-right:-4rem}.lg\:max-w-3xl{max-width:48rem}.lg\:p-6{padding:1.5rem}.lg\:p-8{padding:2rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pt-2{padding-top:.5rem}.lg\:pb-2{padding-bottom:.5rem}.lg\:pl-2{padding-left:.5rem}.lg\:top-1\/2{top:50%}.lg\:shadow-none{-webkit-box-shadow:none;box-shadow:none}.lg\:w-40{width:10rem}.lg\:w-48{width:12rem}.lg\:w-1\/2{width:50%}.lg\:w-3\/5{width:60%}.lg\:w-3\/12{width:25%}.lg\:w-7\/12{width:58.333333%}}@media (min-width:1280px){.xl\:mx-7{margin-left:1.75rem;margin-right:1.75rem}.xl\:mr-0{margin-right:0}.xl\:ml-3{margin-left:.75rem}.xl\:ml-4{margin-left:1rem}.xl\:ml-20{margin-left:5rem}.xl\:ml-32{margin-left:8rem}.xl\:max-w-4xl{max-width:56rem}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:pb-4{padding-bottom:1rem}.xl\:top-1\/3{top:33.333333%}.xl\:w-1\/4{width:25%}.xl\:w-2\/5{width:40%}.xl\:w-3\/5{width:60%}.xl\:w-2\/12{width:16.666667%}.xl\:w-6\/12{width:50%}.xl\:w-7\/12{width:58.333333%}}
|
lite/admin/dist/main.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(r){var n={};function o(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.m=r,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(r,n,function(e){return t[e]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,r){"use strict";r.r(t);
|
1 |
+
!function(r){var n={};function o(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.m=r,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(r,n,function(e){return t[e]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,r){"use strict";r.r(t);r(1)},function(e,t,r){}]);
|
lite/admin/js/campaign-rules.js
DELETED
@@ -1,201 +0,0 @@
|
|
1 |
-
jQuery(document).ready(function ($) {
|
2 |
-
|
3 |
-
"use strict"
|
4 |
-
ig_es_register_campaign_rules_js_events_handler();
|
5 |
-
|
6 |
-
});
|
7 |
-
|
8 |
-
function ig_es_register_campaign_rules_js_events_handler( conditions_elem ) {
|
9 |
-
if ( 'undefined' === typeof conditions_elem ) {
|
10 |
-
conditions_elem = jQuery('.ig-es-conditions');
|
11 |
-
}
|
12 |
-
jQuery.each(jQuery(conditions_elem), function () {
|
13 |
-
var _self = jQuery(this),
|
14 |
-
conditions = _self.find('.ig-es-conditions-wrap'),
|
15 |
-
groups = _self.find('.ig-es-condition-group'),
|
16 |
-
cond = _self.find('.ig-es-condition');
|
17 |
-
|
18 |
-
groups.eq(0).appendTo(_self.find('.ig-es-condition-container'));
|
19 |
-
|
20 |
-
_self
|
21 |
-
.on('click', '.add-condition', function () {
|
22 |
-
ig_es_add_and_condtion();
|
23 |
-
})
|
24 |
-
.on('click', '.add-or-condition', function () {
|
25 |
-
var cont = jQuery(this).parent(),
|
26 |
-
id = cont.find('.ig-es-condition').last().data('id'),
|
27 |
-
clone = cond.eq(0).clone();
|
28 |
-
|
29 |
-
clone.removeAttr('id').appendTo(cont).data('id', ++id);
|
30 |
-
jQuery.each(clone.find('input, select'), function () {
|
31 |
-
var _this = jQuery(this),
|
32 |
-
name = _this.attr('name');
|
33 |
-
_this.attr('name', name.replace(/\[\d+\]\[\d+\]/, '[' + cont.data('id') + '][' + id + ']')).prop('disabled', false);
|
34 |
-
if( jQuery(_this).hasClass('ig-es-campaign-rule-form-multiselect') ) {
|
35 |
-
jQuery(_this).ig_es_select2();
|
36 |
-
}
|
37 |
-
if( jQuery(_this).hasClass('condition-field')) {
|
38 |
-
ig_es_handle_list_condition();
|
39 |
-
}
|
40 |
-
});
|
41 |
-
clone.find('.condition-field').val('').focus();
|
42 |
-
cond = _self.find('.ig-es-condition');
|
43 |
-
});
|
44 |
-
|
45 |
-
jQuery('.remove-conditions').on('click', function () {
|
46 |
-
if (confirm(ig_es_rules_data.i18n.remove_conditions)) {
|
47 |
-
jQuery(conditions).empty();
|
48 |
-
jQuery('.ig-es-conditions-render-wrapper').empty();
|
49 |
-
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
50 |
-
}
|
51 |
-
return false;
|
52 |
-
});
|
53 |
-
conditions
|
54 |
-
.on('click', '.remove-condition', function () {
|
55 |
-
var c = jQuery(this).parent();
|
56 |
-
if (c.parent().find('.ig-es-condition').length == 1) {
|
57 |
-
c = c.parent();
|
58 |
-
}
|
59 |
-
c.slideUp(100, function () {
|
60 |
-
jQuery(this).remove();
|
61 |
-
ig_es_handle_list_condition();
|
62 |
-
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
63 |
-
});
|
64 |
-
})
|
65 |
-
.on('change', '.condition-field', function (event) {
|
66 |
-
|
67 |
-
var condition = jQuery(this).closest('.ig-es-condition'),
|
68 |
-
field = jQuery(this),
|
69 |
-
operator_field, value_field;
|
70 |
-
ig_es_show_operator_and_value_field(field);
|
71 |
-
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
72 |
-
})
|
73 |
-
.on('change', '.condition-operator', function () {
|
74 |
-
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
75 |
-
})
|
76 |
-
.on('change', '.condition-value', function () {
|
77 |
-
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
78 |
-
})
|
79 |
-
.on('click', '.ig-es-condition-add-multiselect', function () {
|
80 |
-
jQuery(this).parent().clone().insertAfter(jQuery(this).parent()).find('.condition-value').select().focus();
|
81 |
-
return false;
|
82 |
-
})
|
83 |
-
.on('click', '.ig-es-condition-remove-multiselect', function () {
|
84 |
-
jQuery(this).parent().remove();
|
85 |
-
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
86 |
-
return false;
|
87 |
-
})
|
88 |
-
.on('change', '.ig-es-conditions-value-field-multiselect > .condition-value', function () {
|
89 |
-
if (0 == jQuery(this).val() && jQuery(this).parent().parent().find('.condition-value').size() > 1) jQuery(this).parent().remove();
|
90 |
-
})
|
91 |
-
.find('.condition-field').prop('disabled', false).trigger('change');
|
92 |
-
|
93 |
-
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
94 |
-
|
95 |
-
// Add one list condition if there are no conditions.
|
96 |
-
if( 0 === jQuery(_self).find('.ig-es-conditions-wrap .ig-es-condition-group').length ) {
|
97 |
-
ig_es_add_default_list_condition();
|
98 |
-
} else {
|
99 |
-
jQuery(_self).find('.ig-es-conditions-wrap .ig-es-condition-group .condition-value').each(function(){
|
100 |
-
if( jQuery(this).hasClass('ig-es-campaign-rule-form-multiselect') ) {
|
101 |
-
jQuery(this).ig_es_select2();
|
102 |
-
}
|
103 |
-
});
|
104 |
-
}
|
105 |
-
|
106 |
-
function ig_es_add_and_condtion( condition_data ) {
|
107 |
-
let id = groups.length,
|
108 |
-
clone = groups.eq(0).clone();
|
109 |
-
|
110 |
-
clone.removeAttr('id').appendTo(conditions).data('id', id).show();
|
111 |
-
jQuery.each(clone.find('input, select'), function () {
|
112 |
-
let _this = jQuery(this);
|
113 |
-
name = _this.attr('name');
|
114 |
-
_this.attr('name', name.replace(/\[\d+\]/, '[' + id + ']')).prop('disabled', false);
|
115 |
-
|
116 |
-
if( jQuery(_this).hasClass('ig-es-campaign-rule-form-multiselect') ) {
|
117 |
-
jQuery(_this).ig_es_select2();
|
118 |
-
}
|
119 |
-
});
|
120 |
-
|
121 |
-
if ( 'undefined' === typeof condition_data ) {
|
122 |
-
condition_data = {
|
123 |
-
condition: '',
|
124 |
-
}
|
125 |
-
}
|
126 |
-
let condition_value = condition_data.condition;
|
127 |
-
let condition_field = clone.find('.condition-field');
|
128 |
-
jQuery(condition_field).val(condition_value).focus();
|
129 |
-
if ( '' !== condition_value ) {
|
130 |
-
ig_es_show_operator_and_value_field(condition_field);
|
131 |
-
}
|
132 |
-
groups = _self.find('.ig-es-condition-group');
|
133 |
-
cond = _self.find('.ig-es-condition');
|
134 |
-
ig_es_handle_list_condition();
|
135 |
-
}
|
136 |
-
|
137 |
-
function ig_es_handle_list_condition( selected_elem ) {
|
138 |
-
if ( ig_es_rules_data.is_pro ) {
|
139 |
-
return;
|
140 |
-
}
|
141 |
-
var condition_fields = jQuery('.ig-es-conditions-wrap .condition-field');
|
142 |
-
var list_rule_count = 0;
|
143 |
-
jQuery(condition_fields).each(function(){
|
144 |
-
var selected_rule = jQuery(this).val();
|
145 |
-
if ( '_lists__in' === selected_rule ) {
|
146 |
-
list_rule_count++;
|
147 |
-
}
|
148 |
-
});
|
149 |
-
var hide_list_rule = list_rule_count > 0;
|
150 |
-
var campaign_rules = jQuery('.ig-es-conditions-wrap .condition-field');
|
151 |
-
jQuery(campaign_rules).each(function(index,elem){
|
152 |
-
var list_rule_option = jQuery(this).find('option[value = "_lists__in"]');
|
153 |
-
var list_rule_text = jQuery(list_rule_option).text();
|
154 |
-
list_rule_text = list_rule_text.replace(' [PRO]','');
|
155 |
-
if ( 'undefined' !== typeof selected_elem ) {
|
156 |
-
if( hide_list_rule && ! ( jQuery(selected_elem)[0] === elem ) ) {
|
157 |
-
list_rule_text += ' [PRO]';
|
158 |
-
jQuery(list_rule_option).prop("selected", false).attr('disabled','disabled');
|
159 |
-
} else {
|
160 |
-
jQuery(list_rule_option).removeAttr('disabled');
|
161 |
-
}
|
162 |
-
} else {
|
163 |
-
if( index > 0 && hide_list_rule ) {
|
164 |
-
list_rule_text += ' [PRO]';
|
165 |
-
jQuery(list_rule_option).prop("selected", false).attr('disabled','disabled');
|
166 |
-
} else {
|
167 |
-
jQuery(list_rule_option).removeAttr('disabled');
|
168 |
-
}
|
169 |
-
}
|
170 |
-
jQuery(list_rule_option).text(list_rule_text);
|
171 |
-
});
|
172 |
-
}
|
173 |
-
|
174 |
-
function ig_es_add_default_list_condition() {
|
175 |
-
ig_es_add_and_condtion({ condition: '_lists__in' });
|
176 |
-
}
|
177 |
-
|
178 |
-
function ig_es_show_operator_and_value_field( field ) {
|
179 |
-
|
180 |
-
var condition = jQuery(field).closest('.ig-es-condition'),
|
181 |
-
operator_field, value_field;
|
182 |
-
|
183 |
-
condition.find('div.ig-es-conditions-value-field').removeClass('active').find('.condition-value').prop('disabled', true);
|
184 |
-
condition.find('div.ig-es-conditions-operator-field').removeClass('active').find('.condition-operator').prop('disabled', true);
|
185 |
-
|
186 |
-
value_field = condition.find('div.ig-es-conditions-value-field[data-fields*=",' + jQuery(field).val() + ',"]').addClass('active').find('.condition-value').prop('disabled', false);
|
187 |
-
operator_field = condition.find('div.ig-es-conditions-operator-field[data-fields*=",' + jQuery(field).val() + ',"]').addClass('active').find('.condition-operator').prop('disabled', false);
|
188 |
-
|
189 |
-
if (!value_field.length) {
|
190 |
-
value_field = condition.find('div.ig-es-conditions-value-field-default').addClass('active').find('.condition-value').prop('disabled', false);
|
191 |
-
}
|
192 |
-
if (!operator_field.length) {
|
193 |
-
operator_field = condition.find('div.ig-es-conditions-operator-field-default').addClass('active').find('.condition-operator').prop('disabled', false);
|
194 |
-
}
|
195 |
-
|
196 |
-
if ( jQuery(field).hasClass('condition-field') ) {
|
197 |
-
ig_es_handle_list_condition(field);
|
198 |
-
}
|
199 |
-
}
|
200 |
-
});
|
201 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lite/admin/js/email-subscribers-admin.js
CHANGED
@@ -312,19 +312,234 @@
|
|
312 |
|
313 |
|
314 |
// Broadcast Setttings
|
315 |
-
// Get count by list
|
316 |
$('#ig_es_campaign_submit_button').attr("disabled", true);
|
317 |
-
|
318 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
319 |
});
|
320 |
|
321 |
-
let update_contacts_counts_xhr;
|
322 |
$(document).on('ig_es_update_contacts_counts', function(e, data){
|
323 |
|
324 |
-
let condition_elem
|
325 |
let condition_container_elem = $(condition_elem).closest('.ig-es-campaign-rules');
|
326 |
-
let selected_list_id
|
327 |
-
|
|
|
328 |
let conditions = [],
|
329 |
groups = $(condition_elem).find('.ig-es-conditions-wrap > .ig-es-condition-group'),
|
330 |
i = 0;
|
@@ -362,23 +577,26 @@
|
|
362 |
// Return if no list or conditions selected.
|
363 |
if ( ! selected_list_id && 0 === conditions.length ) {
|
364 |
$('.ig_es_list_contacts_count').text(0);
|
365 |
-
$('.ig-es-conditions-render-wrapper').html('');
|
366 |
return;
|
367 |
}
|
368 |
|
|
|
|
|
369 |
// Update total count in lists
|
370 |
let params = {
|
371 |
action: 'count_contacts_by_list',
|
372 |
list_id: selected_list_id,
|
373 |
conditions: conditions,
|
374 |
-
status: 'subscribed'
|
|
|
375 |
};
|
376 |
|
377 |
-
if ( update_contacts_counts_xhr ) {
|
378 |
-
update_contacts_counts_xhr.abort();
|
379 |
}
|
380 |
|
381 |
-
update_contacts_counts_xhr = $.ajax({
|
382 |
method: 'POST',
|
383 |
url: ajaxurl,
|
384 |
async: true,
|
@@ -389,9 +607,9 @@
|
|
389 |
success: function (response) {
|
390 |
if (response !== '') {
|
391 |
response = JSON.parse(response);
|
392 |
-
if (response.hasOwnProperty('total')) {
|
393 |
-
|
394 |
-
|
395 |
$('#ig_es_total_contacts .ig_es_list_contacts_count').html(total);
|
396 |
$('#ig_es_total_recipients').html(total_recipients_text);
|
397 |
|
@@ -402,11 +620,19 @@
|
|
402 |
$('#ig_es_campaign_submit_button').attr("disabled", false);
|
403 |
}
|
404 |
}
|
|
|
405 |
if ( response.hasOwnProperty('conditions_html') ) {
|
406 |
-
|
407 |
-
|
408 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
409 |
}
|
|
|
410 |
if ( $(condition_container_elem).find('.ig-es-conditions-wrap .condition-field').length > 0 ) {
|
411 |
$(condition_container_elem).find('.remove-all-conditions-wrapper').removeClass('hidden');
|
412 |
} else {
|
@@ -417,7 +643,33 @@
|
|
417 |
}).always(function(){
|
418 |
$('#spinner-image').hide();
|
419 |
});;
|
420 |
-
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
421 |
|
422 |
jQuery(document).on('change', '#base_template_id', function () {
|
423 |
var template_id = $(this).val();
|
@@ -475,6 +727,8 @@
|
|
475 |
|
476 |
});
|
477 |
|
|
|
|
|
478 |
jQuery('.es-note-category-parent').trigger('change');
|
479 |
|
480 |
|
@@ -612,7 +866,7 @@
|
|
612 |
|
613 |
});
|
614 |
|
615 |
-
$('.wp-editor-boradcast, #edit-es-boradcast-body,#ig_es_broadcast_subject
|
616 |
|
617 |
// Trigger save event for content of wp_editor instances before processing it.
|
618 |
window.tinyMCE.triggerSave();
|
@@ -770,13 +1024,893 @@
|
|
770 |
});
|
771 |
|
772 |
|
|
|
|
|
773 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
774 |
});
|
775 |
|
776 |
})(jQuery);
|
777 |
|
778 |
function checkDelete() {
|
779 |
-
return confirm(
|
780 |
}
|
781 |
|
782 |
function ig_es_show_broadcast_preview_in_popup() {
|
@@ -849,4 +1983,4 @@ jQuery.fn.extend({
|
|
849 |
});
|
850 |
});
|
851 |
}
|
852 |
-
});
|
312 |
|
313 |
|
314 |
// Broadcast Setttings
|
|
|
315 |
$('#ig_es_campaign_submit_button').attr("disabled", true);
|
316 |
+
|
317 |
+
let update_contacts_counts_xhr = {};
|
318 |
+
let edited_campaign_data = {}; // Variable to hold campaign id and name of edited campaign which is used in showing updated options select campaign field and updated HTML for conditions.
|
319 |
+
jQuery(document).on('bind_campaign_rules_events', function( e, data ){
|
320 |
+
if ( 'undefined' !== typeof data && 'undefined' !== typeof data.conditions_elem ) {
|
321 |
+
conditions_elem = data.conditions_elem;
|
322 |
+
} else {
|
323 |
+
conditions_elem = jQuery('.ig-es-conditions');
|
324 |
+
}
|
325 |
+
|
326 |
+
jQuery.each(jQuery(conditions_elem), function () {
|
327 |
+
var _self = jQuery(this),
|
328 |
+
conditions = _self.find('.ig-es-conditions-wrap'),
|
329 |
+
groups = _self.find('.ig-es-condition-group'),
|
330 |
+
cond = _self.find('.ig-es-condition');
|
331 |
+
|
332 |
+
jQuery.each(edited_campaign_data,function(campaign_id, campaign_name){
|
333 |
+
let option = jQuery(conditions_elem).find('.ig-es-campaign-select-field option[value="' + campaign_id + '"]');
|
334 |
+
let option_exists = jQuery(option).length > 0;
|
335 |
+
let new_option = new Option(campaign_name, campaign_id, false, false);
|
336 |
+
// Add new option don't exists else update option's text
|
337 |
+
if( ! option_exists ){
|
338 |
+
jQuery(conditions_elem).find('.ig-es-campaign-select-field').append(new_option);
|
339 |
+
} else {
|
340 |
+
jQuery(option).text(campaign_name);
|
341 |
+
}
|
342 |
+
});
|
343 |
+
|
344 |
+
groups.eq(0).appendTo(_self.find('.ig-es-condition-container'));
|
345 |
+
|
346 |
+
_self
|
347 |
+
.on('click', '.add-condition', function () {
|
348 |
+
ig_es_add_and_condtion();
|
349 |
+
})
|
350 |
+
.on('click', '.add-or-condition', function () {
|
351 |
+
var cont = jQuery(this).parent(),
|
352 |
+
id = cont.find('.ig-es-condition').last().data('id'),
|
353 |
+
clone = cond.eq(0).clone();
|
354 |
+
|
355 |
+
clone.removeAttr('id').appendTo(cont).data('id', ++id);
|
356 |
+
jQuery.each(clone.find('input, select'), function () {
|
357 |
+
var _this = jQuery(this),
|
358 |
+
name = _this.attr('name');
|
359 |
+
// match and replace regex '][any digit][any digit]' with '][AND rule counter][OR rule counter]'
|
360 |
+
_this.attr('name', name.replace(/\]\[\d+\]\[\d+\]/, '][' + cont.data('id') + '][' + id + ']')).prop('disabled', false);
|
361 |
+
name = _this.attr('name');
|
362 |
+
if( jQuery(_this).hasClass('ig-es-campaign-rule-form-multiselect') ) {
|
363 |
+
jQuery(_this).ig_es_select2();
|
364 |
+
}
|
365 |
+
if( jQuery(_this).hasClass('condition-field')) {
|
366 |
+
ig_es_handle_list_condition();
|
367 |
+
}
|
368 |
+
});
|
369 |
+
clone.find('.condition-field').val('').trigger('focus');
|
370 |
+
cond = _self.find('.ig-es-condition');
|
371 |
+
});
|
372 |
+
|
373 |
+
jQuery(_self).closest('.ig-es-campaign-rules').find('.remove-conditions').on('click', function () {
|
374 |
+
if (confirm(ig_es_js_data.i18n_data.remove_conditions_message)) {
|
375 |
+
jQuery(conditions).empty();
|
376 |
+
jQuery(_self).closest('.ig-es-campaign-rules').find('.ig-es-conditions-render-wrapper').empty();
|
377 |
+
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
378 |
+
}
|
379 |
+
return false;
|
380 |
+
});
|
381 |
+
conditions
|
382 |
+
.on('click', '.remove-condition', function () {
|
383 |
+
var c = jQuery(this).parent();
|
384 |
+
if (c.parent().find('.ig-es-condition').length == 1) {
|
385 |
+
c = c.parent();
|
386 |
+
}
|
387 |
+
c.slideUp(100, function () {
|
388 |
+
jQuery(this).remove();
|
389 |
+
ig_es_handle_list_condition();
|
390 |
+
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
391 |
+
});
|
392 |
+
})
|
393 |
+
.on('change', '.condition-field', function (event) {
|
394 |
+
|
395 |
+
var condition = jQuery(this).closest('.ig-es-condition'),
|
396 |
+
field = jQuery(this),
|
397 |
+
operator_field, value_field;
|
398 |
+
ig_es_show_operator_and_value_field(field);
|
399 |
+
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
400 |
+
})
|
401 |
+
.on('change', '.condition-operator', function () {
|
402 |
+
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
403 |
+
})
|
404 |
+
.on('change', '.condition-value', function () {
|
405 |
+
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
406 |
+
})
|
407 |
+
.on('click', '.ig-es-condition-add-multiselect', function () {
|
408 |
+
jQuery(this).parent().clone().insertAfter(jQuery(this).parent()).find('.condition-value').select().trigger('focus');
|
409 |
+
return false;
|
410 |
+
})
|
411 |
+
.on('click', '.ig-es-condition-remove-multiselect', function () {
|
412 |
+
jQuery(this).parent().remove();
|
413 |
+
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
414 |
+
return false;
|
415 |
+
})
|
416 |
+
.on('change', '.ig-es-conditions-value-field-multiselect > .condition-value', function () {
|
417 |
+
if (0 == jQuery(this).val() && jQuery(this).parent().parent().find('.condition-value').size() > 1) jQuery(this).parent().remove();
|
418 |
+
})
|
419 |
+
.find('.condition-field').prop('disabled', false).trigger('change');
|
420 |
+
|
421 |
+
jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
|
422 |
+
|
423 |
+
// Add one list condition if there are no conditions.
|
424 |
+
if( 0 === jQuery(_self).find('.ig-es-conditions-wrap .ig-es-condition-group').length ) {
|
425 |
+
ig_es_add_default_list_condition();
|
426 |
+
} else {
|
427 |
+
jQuery(_self).find('.ig-es-conditions-wrap .ig-es-condition-group .condition-value').each(function(){
|
428 |
+
if( jQuery(this).hasClass('ig-es-campaign-rule-form-multiselect') ) {
|
429 |
+
jQuery(this).ig_es_select2();
|
430 |
+
}
|
431 |
+
});
|
432 |
+
}
|
433 |
+
|
434 |
+
function ig_es_add_and_condtion( condition_data ) {
|
435 |
+
let id = groups.length,
|
436 |
+
clone = groups.eq(0).clone();
|
437 |
+
|
438 |
+
clone.removeAttr('id').appendTo(conditions).data('id', id).show();
|
439 |
+
jQuery.each(clone.find('input, select'), function () {
|
440 |
+
let _this = jQuery(this);
|
441 |
+
name = _this.attr('name');
|
442 |
+
// match and replace regex '][any digit]' with '][id]' i.e. AND rule counter
|
443 |
+
_this.attr('name', name.replace(/\]\[\d+\]/, '][' + id + ']')).prop('disabled', false);
|
444 |
+
|
445 |
+
if( jQuery(_this).hasClass('ig-es-campaign-rule-form-multiselect') ) {
|
446 |
+
jQuery(_this).ig_es_select2();
|
447 |
+
}
|
448 |
+
});
|
449 |
+
|
450 |
+
if ( 'undefined' === typeof condition_data ) {
|
451 |
+
condition_data = {
|
452 |
+
condition: '',
|
453 |
+
}
|
454 |
+
}
|
455 |
+
let condition = condition_data.condition;
|
456 |
+
|
457 |
+
let condition_field = clone.find('.condition-field');
|
458 |
+
|
459 |
+
jQuery(condition_field).val(condition).trigger('focus');
|
460 |
+
|
461 |
+
if ( '' !== condition ) {
|
462 |
+
ig_es_show_operator_and_value_field(condition_field);
|
463 |
+
}
|
464 |
+
|
465 |
+
groups = _self.find('.ig-es-condition-group');
|
466 |
+
cond = _self.find('.ig-es-condition');
|
467 |
+
ig_es_handle_list_condition();
|
468 |
+
}
|
469 |
+
|
470 |
+
function ig_es_handle_list_condition( selected_elem ) {
|
471 |
+
if ( ig_es_js_data.is_pro ) {
|
472 |
+
return;
|
473 |
+
}
|
474 |
+
var condition_fields = jQuery('.ig-es-conditions-wrap .condition-field');
|
475 |
+
var list_rule_count = 0;
|
476 |
+
jQuery(condition_fields).each(function(){
|
477 |
+
var selected_rule = jQuery(this).val();
|
478 |
+
if ( '_lists__in' === selected_rule ) {
|
479 |
+
list_rule_count++;
|
480 |
+
}
|
481 |
+
});
|
482 |
+
var disable_list_rule = list_rule_count > 0;
|
483 |
+
var campaign_rules = jQuery('.ig-es-conditions-wrap .condition-field');
|
484 |
+
jQuery(campaign_rules).each(function(index,elem){
|
485 |
+
var list_rule_option = jQuery(this).find('option[value = "_lists__in"]');
|
486 |
+
var list_rule_text = jQuery(list_rule_option).text();
|
487 |
+
list_rule_text = list_rule_text.replace(' [PRO]','');
|
488 |
+
if ( 'undefined' !== typeof selected_elem ) {
|
489 |
+
if( disable_list_rule && ! ( jQuery(selected_elem)[0] === elem ) ) {
|
490 |
+
list_rule_text += ' [PRO]';
|
491 |
+
jQuery(list_rule_option).prop("selected", false).attr('disabled','disabled');
|
492 |
+
} else {
|
493 |
+
jQuery(list_rule_option).removeAttr('disabled');
|
494 |
+
}
|
495 |
+
} else {
|
496 |
+
if( index > 0 && disable_list_rule ) {
|
497 |
+
list_rule_text += ' [PRO]';
|
498 |
+
jQuery(list_rule_option).prop("selected", false).attr('disabled','disabled');
|
499 |
+
} else {
|
500 |
+
jQuery(list_rule_option).removeAttr('disabled');
|
501 |
+
}
|
502 |
+
}
|
503 |
+
jQuery(list_rule_option).text(list_rule_text);
|
504 |
+
});
|
505 |
+
}
|
506 |
+
|
507 |
+
function ig_es_add_default_list_condition() {
|
508 |
+
ig_es_add_and_condtion({ condition: '_lists__in' });
|
509 |
+
}
|
510 |
+
|
511 |
+
function ig_es_show_operator_and_value_field( field ) {
|
512 |
+
|
513 |
+
var condition = jQuery(field).closest('.ig-es-condition'),
|
514 |
+
operator_field, value_field;
|
515 |
+
|
516 |
+
condition.find('div.ig-es-conditions-value-field').removeClass('active').find('.condition-value').prop('disabled', true);
|
517 |
+
condition.find('div.ig-es-conditions-operator-field').removeClass('active').find('.condition-operator').prop('disabled', true);
|
518 |
+
|
519 |
+
value_field = condition.find('div.ig-es-conditions-value-field[data-fields*=",' + jQuery(field).val() + ',"]').addClass('active').find('.condition-value').prop('disabled', false);
|
520 |
+
operator_field = condition.find('div.ig-es-conditions-operator-field[data-fields*=",' + jQuery(field).val() + ',"]').addClass('active').find('.condition-operator').prop('disabled', false);
|
521 |
+
|
522 |
+
if (!value_field.length) {
|
523 |
+
value_field = condition.find('div.ig-es-conditions-value-field-default').addClass('active').find('.condition-value').prop('disabled', false);
|
524 |
+
}
|
525 |
+
if (!operator_field.length) {
|
526 |
+
operator_field = condition.find('div.ig-es-conditions-operator-field-default').addClass('active').find('.condition-operator').prop('disabled', false);
|
527 |
+
}
|
528 |
+
|
529 |
+
if ( jQuery(field).hasClass('condition-field') ) {
|
530 |
+
ig_es_handle_list_condition(field);
|
531 |
+
}
|
532 |
+
}
|
533 |
+
});
|
534 |
});
|
535 |
|
|
|
536 |
$(document).on('ig_es_update_contacts_counts', function(e, data){
|
537 |
|
538 |
+
let condition_elem = data.condition_elem;
|
539 |
let condition_container_elem = $(condition_elem).closest('.ig-es-campaign-rules');
|
540 |
+
let selected_list_id = $('#ig_es_broadcast_list_ids').val();
|
541 |
+
let campaign_id = $(condition_container_elem).data('campaign-id');
|
542 |
+
let campaign_type = $(condition_container_elem).data('campaign-type');
|
543 |
let conditions = [],
|
544 |
groups = $(condition_elem).find('.ig-es-conditions-wrap > .ig-es-condition-group'),
|
545 |
i = 0;
|
577 |
// Return if no list or conditions selected.
|
578 |
if ( ! selected_list_id && 0 === conditions.length ) {
|
579 |
$('.ig_es_list_contacts_count').text(0);
|
580 |
+
$(condition_container_elem).find('.ig-es-conditions-render-wrapper').html('');
|
581 |
return;
|
582 |
}
|
583 |
|
584 |
+
let get_count = 'newsletter' === campaign_type ? 'yes' : 'no'; // Get count only when on broadcast screen
|
585 |
+
|
586 |
// Update total count in lists
|
587 |
let params = {
|
588 |
action: 'count_contacts_by_list',
|
589 |
list_id: selected_list_id,
|
590 |
conditions: conditions,
|
591 |
+
status: 'subscribed',
|
592 |
+
get_count: get_count
|
593 |
};
|
594 |
|
595 |
+
if ( 'undefined' !== typeof update_contacts_counts_xhr && 'undefined' !== typeof update_contacts_counts_xhr[campaign_id] ) {
|
596 |
+
update_contacts_counts_xhr[campaign_id].abort();
|
597 |
}
|
598 |
|
599 |
+
update_contacts_counts_xhr[campaign_id] = $.ajax({
|
600 |
method: 'POST',
|
601 |
url: ajaxurl,
|
602 |
async: true,
|
607 |
success: function (response) {
|
608 |
if (response !== '') {
|
609 |
response = JSON.parse(response);
|
610 |
+
if (get_count && response.hasOwnProperty('total')) {
|
611 |
+
let total = response.total;
|
612 |
+
let total_recipients_text = "<div class='mt-1.5 py-2'><span class='font-medium text-base text-gray-700'><span class='ig_es_list_contacts_count'>" + total + "</span> <span class='text-base font-medium text-gray-700'></span><span class='font-normal text-sm text-gray-500'> recipients </span></div>";
|
613 |
$('#ig_es_total_contacts .ig_es_list_contacts_count').html(total);
|
614 |
$('#ig_es_total_recipients').html(total_recipients_text);
|
615 |
|
620 |
$('#ig_es_campaign_submit_button').attr("disabled", false);
|
621 |
}
|
622 |
}
|
623 |
+
$(condition_container_elem).find('.ig-es-conditions-render-wrapper').html('');
|
624 |
if ( response.hasOwnProperty('conditions_html') ) {
|
625 |
+
let conditions = $.parseHTML(response.conditions_html);
|
626 |
+
$(conditions).find('.campaign-name').each(function(){
|
627 |
+
let campaing_id = $(this).data('campaign-id');
|
628 |
+
if (edited_campaign_data.hasOwnProperty(campaing_id)) {
|
629 |
+
let campaing_name = edited_campaign_data[campaing_id];
|
630 |
+
$(this).text(campaing_name);
|
631 |
+
}
|
632 |
+
});
|
633 |
+
$(condition_container_elem).find('.ig-es-conditions-render-wrapper').append($(conditions));
|
634 |
}
|
635 |
+
|
636 |
if ( $(condition_container_elem).find('.ig-es-conditions-wrap .condition-field').length > 0 ) {
|
637 |
$(condition_container_elem).find('.remove-all-conditions-wrapper').removeClass('hidden');
|
638 |
} else {
|
643 |
}).always(function(){
|
644 |
$('#spinner-image').hide();
|
645 |
});;
|
646 |
+
});
|
647 |
+
|
648 |
+
// Add/update campaign option in select campaign rule
|
649 |
+
jQuery(document).on('ig_es_sequence_name_updated',function(e,seq_data){
|
650 |
+
let seq_id = seq_data.id;
|
651 |
+
let seq_name = seq_data.name;
|
652 |
+
let new_option = new Option(seq_name, seq_id, false, false);
|
653 |
+
edited_campaign_data[seq_id] = seq_name;
|
654 |
+
jQuery('.es_seq_right_wrapper:not([data-seq-id="' + seq_id + '"])').each(function(){
|
655 |
+
let current_seq_id = jQuery(this).data('seq-id');
|
656 |
+
|
657 |
+
// We are restricting admin to select sequence campaigns whose id is greater then current sequence id.
|
658 |
+
if ( current_seq_id > seq_id ) {
|
659 |
+
jQuery(this).find('.ig-es-campaign-select-field').each(function(){
|
660 |
+
let option = jQuery(this).find('option[value = ' + seq_id + ']');
|
661 |
+
let option_exists = jQuery(option).length > 0;
|
662 |
+
// Add new option don't exists else update option's text
|
663 |
+
if( ! option_exists ){
|
664 |
+
jQuery(this).append(new_option);
|
665 |
+
} else {
|
666 |
+
jQuery(option).text(seq_name);
|
667 |
+
}
|
668 |
+
jQuery(this).ig_es_select2().trigger('change');
|
669 |
+
});
|
670 |
+
}
|
671 |
+
});
|
672 |
+
});
|
673 |
|
674 |
jQuery(document).on('change', '#base_template_id', function () {
|
675 |
var template_id = $(this).val();
|
727 |
|
728 |
});
|
729 |
|
730 |
+
jQuery(document).trigger('bind_campaign_rules_events');
|
731 |
+
|
732 |
jQuery('.es-note-category-parent').trigger('change');
|
733 |
|
734 |
|
866 |
|
867 |
});
|
868 |
|
869 |
+
$('.wp-editor-boradcast, #edit-es-boradcast-body,#ig_es_broadcast_subject').on('change',function(event){
|
870 |
|
871 |
// Trigger save event for content of wp_editor instances before processing it.
|
872 |
window.tinyMCE.triggerSave();
|
1024 |
});
|
1025 |
|
1026 |
|
1027 |
+
// Workflow JS
|
1028 |
+
IG_ES_Workflows = {
|
1029 |
|
1030 |
+
$triggers_box: $('#ig_es_workflow_trigger'),
|
1031 |
+
$actions_box : $('#ig_es_workflow_actions'),
|
1032 |
+
$variables_box: $('#ig_es_workflow_variables'),
|
1033 |
+
$trigger_select: $('.js-trigger-select').first(),
|
1034 |
+
$actions_container: $('.ig-es-actions-container'),
|
1035 |
+
|
1036 |
+
init: function() {
|
1037 |
+
IG_ES_Workflows.init_triggers_box();
|
1038 |
+
IG_ES_Workflows.init_actions_box();
|
1039 |
+
IG_ES_Workflows.init_variables_box();
|
1040 |
+
IG_ES_Workflows.init_show_hide();
|
1041 |
+
IG_ES_Workflows.init_date_pickers();
|
1042 |
+
IG_ES_Workflows.init_workflow_status_switch();
|
1043 |
+
},
|
1044 |
+
|
1045 |
+
init_date_pickers: function() {
|
1046 |
+
$( '.ig-es-date-picker' ).datepicker({
|
1047 |
+
dateFormat: 'yy-mm-dd',
|
1048 |
+
numberOfMonths: 1,
|
1049 |
+
showButtonPanel: true
|
1050 |
+
});
|
1051 |
+
|
1052 |
+
let d = new Date();
|
1053 |
+
let n = d.getHours() + 1;
|
1054 |
+
$('.ig-es-time-picker').timepicker({
|
1055 |
+
timeFormat: 'H:mm',
|
1056 |
+
interval: 15,
|
1057 |
+
startTime: new Date(0,0,0,n,0,0),
|
1058 |
+
dynamic: true,
|
1059 |
+
dropdown: true,
|
1060 |
+
scrollbar: false,
|
1061 |
+
minTime: new Date(0,0,0,n,0,0)
|
1062 |
+
});
|
1063 |
+
},
|
1064 |
+
|
1065 |
+
init_workflow_status_switch: function() {
|
1066 |
+
$('.ig-es-switch.js-toggle-workflow-status').click(function(){
|
1067 |
+
|
1068 |
+
let $switch, state, new_state;
|
1069 |
+
|
1070 |
+
$switch = $(this);
|
1071 |
+
|
1072 |
+
if ( $switch.is('.ig-es-loading') ) {
|
1073 |
+
return;
|
1074 |
+
}
|
1075 |
+
|
1076 |
+
state = $switch.attr( 'data-ig-es-switch' );
|
1077 |
+
new_state = state === 'active' ? 'inactive' : 'active';
|
1078 |
+
|
1079 |
+
$switch.addClass('ig-es-loading');
|
1080 |
+
|
1081 |
+
$.post( ajaxurl, {
|
1082 |
+
action: 'ig_es_toggle_workflow_status',
|
1083 |
+
workflow_id: $switch.attr( 'data-workflow-id' ),
|
1084 |
+
new_state: new_state,
|
1085 |
+
security: ig_es_js_data.security,
|
1086 |
+
dataType: 'json'
|
1087 |
+
}, function( response ) {
|
1088 |
+
$switch.attr( 'data-ig-es-switch', new_state );
|
1089 |
+
$switch.removeClass('ig-es-loading');
|
1090 |
+
});
|
1091 |
+
|
1092 |
+
});
|
1093 |
+
},
|
1094 |
+
|
1095 |
+
/**
|
1096 |
+
* Show / hide logic with data attributes
|
1097 |
+
*/
|
1098 |
+
init_show_hide: function() {
|
1099 |
+
|
1100 |
+
let update = function( $el ) {
|
1101 |
+
let id = $el.data( 'ig-es-bind' );
|
1102 |
+
let value = $el.val();
|
1103 |
+
let is_checkbox = $el.is('input[type="checkbox"]');
|
1104 |
+
|
1105 |
+
$('[data-ig-es-show]').each(function() {
|
1106 |
+
if ( is_checkbox && $(this).data('ig-es-show') === id ) {
|
1107 |
+
if ( $el.is(':checked') ) {
|
1108 |
+
$(this).show();
|
1109 |
+
} else {
|
1110 |
+
$(this).hide();
|
1111 |
+
}
|
1112 |
+
} else {
|
1113 |
+
let logic = $(this).data('ig-es-show').split('=');
|
1114 |
+
|
1115 |
+
if ( logic[0] !== id ) {
|
1116 |
+
return;
|
1117 |
+
}
|
1118 |
+
|
1119 |
+
let possible_values = logic[1].split('|');
|
1120 |
+
|
1121 |
+
if ( possible_values.indexOf( value ) !== -1 ) {
|
1122 |
+
$(this).show();
|
1123 |
+
} else {
|
1124 |
+
$(this).hide();
|
1125 |
+
}
|
1126 |
+
}
|
1127 |
+
});
|
1128 |
+
|
1129 |
+
|
1130 |
+
$('[data-ig-es-hide]').each(function() {
|
1131 |
+
if ( is_checkbox && $(this).data('ig-es-hide') === id ) {
|
1132 |
+
if ( $el.is(':checked') ) {
|
1133 |
+
$(this).hide();
|
1134 |
+
} else {
|
1135 |
+
$(this).show();
|
1136 |
+
}
|
1137 |
+
} else {
|
1138 |
+
let logic = $(this).data('ig-es-hide').split('=');
|
1139 |
+
|
1140 |
+
if ( logic[0] !== id ) {
|
1141 |
+
return;
|
1142 |
+
}
|
1143 |
+
|
1144 |
+
let possible_values = logic[1].split('|');
|
1145 |
+
|
1146 |
+
if ( possible_values.indexOf( value ) !== -1 ) {
|
1147 |
+
$(this).hide();
|
1148 |
+
} else {
|
1149 |
+
$(this).show();
|
1150 |
+
}
|
1151 |
+
}
|
1152 |
+
});
|
1153 |
+
};
|
1154 |
+
|
1155 |
+
|
1156 |
+
$(document).on( 'change', '[data-ig-es-bind]', function() {
|
1157 |
+
update( $(this) );
|
1158 |
+
});
|
1159 |
+
|
1160 |
+
$('[data-ig-es-bind]').each(function() {
|
1161 |
+
update( $(this) );
|
1162 |
+
});
|
1163 |
+
|
1164 |
+
},
|
1165 |
+
|
1166 |
+
/**
|
1167 |
+
*
|
1168 |
+
*/
|
1169 |
+
init_triggers_box: function() {
|
1170 |
+
IG_ES_Workflows.$trigger_select.change(function(){
|
1171 |
+
IG_ES_Workflows.fill_trigger_fields( $(this).val() );
|
1172 |
+
IG_ES_Workflows.remove_actions();
|
1173 |
+
});
|
1174 |
+
},
|
1175 |
+
|
1176 |
+
/**
|
1177 |
+
* @param trigger_name
|
1178 |
+
*/
|
1179 |
+
fill_trigger_fields: function( trigger_name ) {
|
1180 |
+
|
1181 |
+
// Remove existing fields
|
1182 |
+
IG_ES_Workflows.$triggers_box.find('tr.ig-es-trigger-option').remove();
|
1183 |
+
|
1184 |
+
if ( trigger_name ) {
|
1185 |
+
|
1186 |
+
IG_ES_Workflows.$triggers_box.addClass('ig-es-loading');
|
1187 |
+
|
1188 |
+
let workflow_id = $('#workflow_id').val();
|
1189 |
+
$.ajax({
|
1190 |
+
url: ajaxurl,
|
1191 |
+
data: {
|
1192 |
+
action: 'ig_es_fill_trigger_fields',
|
1193 |
+
trigger_name: trigger_name,
|
1194 |
+
security: ig_es_js_data.security,
|
1195 |
+
workflow_id: workflow_id
|
1196 |
+
}
|
1197 |
+
})
|
1198 |
+
.done(function(response){
|
1199 |
+
|
1200 |
+
if ( ! response.success ) {
|
1201 |
+
return;
|
1202 |
+
}
|
1203 |
+
|
1204 |
+
ig_es_workflows_data.trigger = response.data.trigger;
|
1205 |
+
IG_ES_Workflows.refine_variables();
|
1206 |
+
|
1207 |
+
IG_ES_Workflows.$triggers_box.find('tbody').append( response.data.fields );
|
1208 |
+
IG_ES_Workflows.$triggers_box.removeClass('ig-es-loading');
|
1209 |
+
IG_ES_Workflows.$triggers_box.find('.js-trigger-description').html( '<p class="ig-es-field-description">' + response.data.trigger.description + '</p>' );
|
1210 |
+
});
|
1211 |
+
}
|
1212 |
+
},
|
1213 |
+
|
1214 |
+
/**
|
1215 |
+
*
|
1216 |
+
*/
|
1217 |
+
init_actions_box: function() {
|
1218 |
+
// Action select change
|
1219 |
+
$(document).on('change', '.js-action-select', function () {
|
1220 |
+
let $action = $(this).parents('.ig-es-action').first();
|
1221 |
+
IG_ES_Workflows.fill_action_fields( $action, $(this).val() );
|
1222 |
+
});
|
1223 |
+
|
1224 |
+
// Add new action
|
1225 |
+
$('.js-ig-es-add-action').click(function (e) {
|
1226 |
+
e.preventDefault();
|
1227 |
+
IG_ES_Workflows.add_new_action();
|
1228 |
+
});
|
1229 |
+
|
1230 |
+
$(document).on('click', '.js-edit-action, .ig-es-action__header', function (e) {
|
1231 |
+
e.preventDefault();
|
1232 |
+
e.stopImmediatePropagation();
|
1233 |
+
|
1234 |
+
let $action = $(this).parents('.ig-es-action').first();
|
1235 |
+
|
1236 |
+
if ($action.is('.js-open')) {
|
1237 |
+
IG_ES_Workflows.action_edit_close($action);
|
1238 |
+
} else {
|
1239 |
+
IG_ES_Workflows.action_edit_open($action);
|
1240 |
+
}
|
1241 |
+
});
|
1242 |
+
|
1243 |
+
// Delete action
|
1244 |
+
$(document).on('click', '.js-delete-action', function (e) {
|
1245 |
+
e.preventDefault();
|
1246 |
+
let $action = $(this).parents('.ig-es-action').first();
|
1247 |
+
IG_ES_Workflows.action_delete($action);
|
1248 |
+
});
|
1249 |
+
|
1250 |
+
$('#ig_es_workflow_save #publish').on('click', function(e){
|
1251 |
+
let trigger_name = $('.js-trigger-select').val();
|
1252 |
+
|
1253 |
+
if ( '' === trigger_name) {
|
1254 |
+
e.preventDefault();
|
1255 |
+
alert( ig_es_js_data.i18n_data.no_trigger_message );
|
1256 |
+
return;
|
1257 |
+
}
|
1258 |
+
|
1259 |
+
let actions = $('.ig-es-action:not([data-action-number=""]) .js-action-select');
|
1260 |
+
if ( 0 === $( actions ).length ) {
|
1261 |
+
e.preventDefault();
|
1262 |
+
alert( ig_es_js_data.i18n_data.no_actions_message );
|
1263 |
+
return;
|
1264 |
+
} else {
|
1265 |
+
$(actions).each(function() {
|
1266 |
+
let action_name = $(this).val();
|
1267 |
+
// Check if user have selected an action or not.
|
1268 |
+
if( '' === action_name ) {
|
1269 |
+
e.preventDefault();
|
1270 |
+
// Open the action accordion if is not already open.
|
1271 |
+
$(this).closest('.ig-es-action:not(.js-open)').find('.ig-es-action__header').trigger('click');
|
1272 |
+
alert( ig_es_js_data.i18n_data.no_action_selected_message );
|
1273 |
+
return false;
|
1274 |
+
}
|
1275 |
+
});
|
1276 |
+
}
|
1277 |
+
});
|
1278 |
+
},
|
1279 |
+
|
1280 |
+
add_new_action: function() {
|
1281 |
+
|
1282 |
+
let $new_action,
|
1283 |
+
action_number = IG_ES_Workflows.get_number_of_actions() + 1;
|
1284 |
+
|
1285 |
+
$('.js-ig-es-no-actions-message').hide();
|
1286 |
+
|
1287 |
+
$new_action = $('.ig-es-action-template .ig-es-action').clone();
|
1288 |
+
|
1289 |
+
IG_ES_Workflows.$actions_container.append($new_action);
|
1290 |
+
|
1291 |
+
$new_action.attr( 'data-action-number', action_number );
|
1292 |
+
|
1293 |
+
IG_ES_Workflows.action_edit_open($new_action);
|
1294 |
+
},
|
1295 |
+
|
1296 |
+
/**
|
1297 |
+
* @param $action
|
1298 |
+
*/
|
1299 |
+
action_delete: function( $action ) {
|
1300 |
+
$action.remove();
|
1301 |
+
},
|
1302 |
+
|
1303 |
+
action_edit_close: function( $action ) {
|
1304 |
+
|
1305 |
+
let action_number = $action.data('action-number');
|
1306 |
+
|
1307 |
+
$action.removeClass('js-open');
|
1308 |
+
$action.find('.ig-es-action__fields').slideUp(150);
|
1309 |
+
},
|
1310 |
+
|
1311 |
+
action_edit_open: function( $action ) {
|
1312 |
+
|
1313 |
+
let action_number = $action.data('action-number');
|
1314 |
+
|
1315 |
+
$action.addClass('js-open');
|
1316 |
+
$action.find('.ig-es-action__fields').slideDown(150);
|
1317 |
+
},
|
1318 |
+
|
1319 |
+
/**
|
1320 |
+
*
|
1321 |
+
*/
|
1322 |
+
fill_action_fields: function( $action, selected_action ) {
|
1323 |
+
|
1324 |
+
let action_number = $action.data('action-number');
|
1325 |
+
action_number = ( typeof action_number !== 'undefined' && action_number !== '' ) ? action_number : IG_ES_Workflows.get_number_of_actions() + 1;
|
1326 |
+
let $select = $action.find('.js-action-select');
|
1327 |
+
|
1328 |
+
let selected_trigger = $('.js-trigger-select').val();
|
1329 |
+
|
1330 |
+
IG_ES_Workflows.$actions_box.addClass('ig-es-loading');
|
1331 |
+
|
1332 |
+
// Remove existing fields
|
1333 |
+
$action.find('tr.ig-es-table__row:not([data-name="action_name"])').remove();
|
1334 |
+
|
1335 |
+
$.ajax({
|
1336 |
+
url: ajaxurl,
|
1337 |
+
data: {
|
1338 |
+
action: 'ig_es_fill_action_fields',
|
1339 |
+
action_name: selected_action,
|
1340 |
+
action_number: action_number,
|
1341 |
+
trigger_name: selected_trigger,
|
1342 |
+
security: ig_es_js_data.security
|
1343 |
+
}
|
1344 |
+
}).done(function(response){
|
1345 |
+
|
1346 |
+
$action.find('.ig-es-table tbody').append( response.data.fields );
|
1347 |
+
IG_ES_Workflows.$actions_box.removeClass('ig-es-loading');
|
1348 |
+
|
1349 |
+
// Fill select box name
|
1350 |
+
$select.attr('name', 'ig_es_workflow_data[actions]['+action_number+'][action_name]' );
|
1351 |
+
|
1352 |
+
// Pre fill title
|
1353 |
+
$action.find('.action-title').text( response.data.title );
|
1354 |
+
|
1355 |
+
$action.find('.js-action-description').html( response.data.description );
|
1356 |
+
|
1357 |
+
});
|
1358 |
+
|
1359 |
+
},
|
1360 |
+
|
1361 |
+
get_number_of_actions: function () {
|
1362 |
+
return $('.ig-es-action:not([data-action-number=""])').length;
|
1363 |
+
},
|
1364 |
+
|
1365 |
+
remove_actions: function() {
|
1366 |
+
let number_of_actions = IG_ES_Workflows.get_number_of_actions();
|
1367 |
+
if ( number_of_actions > 0 ) {
|
1368 |
+
let confirm_trigger_change = window.confirm( ig_es_js_data.i18n_data.trigger_change_message );
|
1369 |
+
if ( confirm_trigger_change ) {
|
1370 |
+
$('.ig-es-action:not([data-action-number=""])').remove();
|
1371 |
+
}
|
1372 |
+
}
|
1373 |
+
},
|
1374 |
+
|
1375 |
+
init_variables_box: function() {
|
1376 |
+
this.init_clipboard();
|
1377 |
+
|
1378 |
+
$(document.body).on( 'change keyup', '.ig-es-workflow-variable-parameter', this.update_preview_field );
|
1379 |
+
$(document.body).on( 'keypress', 'input.ig-es-workflow-variable-parameter', this.restrict_parameter_chars );
|
1380 |
+
|
1381 |
+
this.$variables_box.on( 'click', '.ig-es-workflow-variable', this.open_modal );
|
1382 |
+
this.$variables_box.on( 'click', '.ig-es-close-variable-info-popup', this.close_modal );
|
1383 |
+
|
1384 |
+
$(document).keydown(function(e) {
|
1385 |
+
if ( 27 === e.keyCode ) {
|
1386 |
+
IG_ES_Workflows.close_modal();
|
1387 |
+
}
|
1388 |
+
});
|
1389 |
+
|
1390 |
+
if ( ! ig_es_workflows_data.is_new ) {
|
1391 |
+
IG_ES_Workflows.refine_variables();
|
1392 |
+
}
|
1393 |
+
},
|
1394 |
+
|
1395 |
+
/**
|
1396 |
+
* Show or hide text var groups based on the selected trigger
|
1397 |
+
*/
|
1398 |
+
refine_variables: function() {
|
1399 |
+
|
1400 |
+
let trigger = ig_es_workflows_data.trigger;
|
1401 |
+
|
1402 |
+
$('.ig-es-variables-group').each(function( i, el ){
|
1403 |
+
|
1404 |
+
let group = $(el).data( 'ig-es-variable-group' );
|
1405 |
+
|
1406 |
+
if ( -1 === $.inArray( group, trigger.supplied_data_items ) ) {
|
1407 |
+
$(el).addClass('hidden');
|
1408 |
+
} else {
|
1409 |
+
$(el).removeClass('hidden');
|
1410 |
+
}
|
1411 |
+
});
|
1412 |
+
|
1413 |
+
let shown_group = $('.ig-es-variables-group:not(.hidden)');
|
1414 |
+
if ( 0 === shown_group.length ) {
|
1415 |
+
$('.js-ig-es-no-variables-message').show();
|
1416 |
+
} else {
|
1417 |
+
$('.js-ig-es-no-variables-message').hide();
|
1418 |
+
}
|
1419 |
+
},
|
1420 |
+
|
1421 |
+
/**
|
1422 |
+
*
|
1423 |
+
*/
|
1424 |
+
init_clipboard: function() {
|
1425 |
+
|
1426 |
+
var clipboard = new ClipboardJS('.ig-es-clipboard-btn', {
|
1427 |
+
text: function(trigger) {
|
1428 |
+
return $('#ig_es_workflow_variable_preview_field').text();
|
1429 |
+
}
|
1430 |
+
});
|
1431 |
+
|
1432 |
+
clipboard.on('success', function(e) {
|
1433 |
+
|
1434 |
+
$('.ig-es-clipboard-btn').html( ig_es_js_data.i18n_data.placeholder_copied_message );
|
1435 |
+
setTimeout(function(){
|
1436 |
+
IG_ES_Workflows.close_modal();
|
1437 |
+
}, 500 );
|
1438 |
+
});
|
1439 |
+
|
1440 |
+
},
|
1441 |
+
|
1442 |
+
|
1443 |
+
open_modal: function(){
|
1444 |
+
|
1445 |
+
var ajax_data = {
|
1446 |
+
action: 'ig_es_modal_variable_info',
|
1447 |
+
variable: $(this).text(),
|
1448 |
+
security: ig_es_js_data.security,
|
1449 |
+
};
|
1450 |
+
|
1451 |
+
$.post( ajaxurl, ajax_data, function( response ){
|
1452 |
+
$('#ig-es-variable-info-popup #ig-es-workflow-variable-info-body').html(response).show();
|
1453 |
+
IG_ES_Workflows.show_modal();
|
1454 |
+
IG_ES_Workflows.update_preview_field();
|
1455 |
+
});
|
1456 |
+
},
|
1457 |
+
|
1458 |
+
show_modal: function() {
|
1459 |
+
jQuery('#ig-es-variable-info-popup').show();
|
1460 |
+
},
|
1461 |
+
|
1462 |
+
close_modal: function() {
|
1463 |
+
$('#ig-es-variable-info-popup').hide('fast');
|
1464 |
+
},
|
1465 |
+
|
1466 |
+
|
1467 |
+
/**
|
1468 |
+
* Updates the variable preview text field
|
1469 |
+
*/
|
1470 |
+
update_preview_field: function() {
|
1471 |
+
|
1472 |
+
var $preview_field = $('#ig_es_workflow_variable_preview_field');
|
1473 |
+
var variable = $preview_field.data('variable');
|
1474 |
+
var parameters = [];
|
1475 |
+
|
1476 |
+
$('.ig-es-workflow-variable-parameter').each(function(){
|
1477 |
+
|
1478 |
+
var $param_row = $(this).parents('.ig-es-workflow-variables-parameter-row:first');
|
1479 |
+
|
1480 |
+
// Check 'show' logic
|
1481 |
+
if ( $param_row.data('parameter-show') ) {
|
1482 |
+
|
1483 |
+
var show_logic = $param_row.data('parameter-show').split('=');
|
1484 |
+
|
1485 |
+
var $condition_field = $('.ig-es-workflow-variable-parameter[name="' + show_logic[0] + '"]');
|
1486 |
+
|
1487 |
+
if ( $condition_field.length && $condition_field.val() == show_logic[1] ) {
|
1488 |
+
$param_row.show();
|
1489 |
+
} else {
|
1490 |
+
$param_row.hide();
|
1491 |
+
return; // don't add parameter to preview
|
1492 |
+
}
|
1493 |
+
}
|
1494 |
+
|
1495 |
+
var param = {
|
1496 |
+
name: $(this).attr('name'),
|
1497 |
+
required: $param_row.data('is-required'),
|
1498 |
+
value: $(this).val()
|
1499 |
+
};
|
1500 |
+
|
1501 |
+
parameters.push( param );
|
1502 |
+
});
|
1503 |
+
|
1504 |
+
var string = IG_ES_Workflows.generate_variable_string( variable, parameters );
|
1505 |
+
|
1506 |
+
$preview_field.text( string );
|
1507 |
+
},
|
1508 |
+
|
1509 |
+
|
1510 |
+
/**
|
1511 |
+
*
|
1512 |
+
* @param variable
|
1513 |
+
* @param parameters
|
1514 |
+
*/
|
1515 |
+
generate_variable_string: function( variable, parameters ) {
|
1516 |
+
|
1517 |
+
var string = '{{ ' + variable;
|
1518 |
+
|
1519 |
+
if ( parameters.length ) {
|
1520 |
+
var param_parts = [];
|
1521 |
+
|
1522 |
+
$.each( parameters, function( i, param ) {
|
1523 |
+
|
1524 |
+
if ( param.value ) {
|
1525 |
+
param_parts.push( param.name + ": '" + param.value + "'" );
|
1526 |
+
}
|
1527 |
+
else if ( param.required ) {
|
1528 |
+
param_parts.push( param.name + ": '...'" );
|
1529 |
+
}
|
1530 |
+
});
|
1531 |
+
|
1532 |
+
|
1533 |
+
if ( param_parts.length > 0 ) {
|
1534 |
+
string += ' | ';
|
1535 |
+
string += param_parts.join( ', ' );
|
1536 |
+
}
|
1537 |
+
}
|
1538 |
+
|
1539 |
+
return string + ' }}';
|
1540 |
+
},
|
1541 |
+
|
1542 |
+
|
1543 |
+
/**
|
1544 |
+
*
|
1545 |
+
* @param e
|
1546 |
+
*/
|
1547 |
+
restrict_parameter_chars: function(e) {
|
1548 |
+
|
1549 |
+
var restricted = [ 39, 123, 124, 125 ];
|
1550 |
+
|
1551 |
+
if ( $.inArray( e.which, restricted ) !== -1 ) {
|
1552 |
+
return false;
|
1553 |
+
}
|
1554 |
+
}
|
1555 |
+
|
1556 |
+
}
|
1557 |
+
|
1558 |
+
if ( 'undefined' !== typeof ig_es_workflows_data ) {
|
1559 |
+
IG_ES_Workflows.init();
|
1560 |
+
}
|
1561 |
+
|
1562 |
+
// Import Subscribers JS
|
1563 |
+
let importstatus = $('.es-import-step1 .import-status'),
|
1564 |
+
progress = $('#progress'),
|
1565 |
+
progressbar = progress.find('.bar'),
|
1566 |
+
importprogress = $('#importing-progress'),
|
1567 |
+
importprogressbar = importprogress.find('.bar'),
|
1568 |
+
import_percentage = importprogress.find('.import_percentage'),
|
1569 |
+
wpnonce = ig_es_js_data.security,
|
1570 |
+
importerrors = 0,
|
1571 |
+
importstarttime,
|
1572 |
+
importidentifier,
|
1573 |
+
|
1574 |
+
uploader_init = function () {
|
1575 |
+
let uploader = new plupload.Uploader(wpUploaderInit);
|
1576 |
+
|
1577 |
+
uploader.bind('Init', function (up) {
|
1578 |
+
let uploaddiv = $('#plupload-upload-ui');
|
1579 |
+
|
1580 |
+
if (up.features.dragdrop && !$(document.body).hasClass('mobile')) {
|
1581 |
+
uploaddiv.addClass('drag-drop');
|
1582 |
+
$('#drag-drop-area').bind('dragover.wp-uploader', function () { // dragenter doesn't fire right :(
|
1583 |
+
uploaddiv.addClass('drag-over');
|
1584 |
+
}).bind('dragleave.wp-uploader, drop.wp-uploader', function () {
|
1585 |
+
uploaddiv.removeClass('drag-over');
|
1586 |
+
});
|
1587 |
+
} else {
|
1588 |
+
uploaddiv.removeClass('drag-drop');
|
1589 |
+
$('#drag-drop-area').unbind('.wp-uploader');
|
1590 |
+
}
|
1591 |
+
|
1592 |
+
});
|
1593 |
+
|
1594 |
+
uploader.bind('FilesAdded', function (up, files) {
|
1595 |
+
$('#media-upload-error').html('');
|
1596 |
+
|
1597 |
+
setTimeout(function () {
|
1598 |
+
up.refresh();
|
1599 |
+
up.start();
|
1600 |
+
}, 1);
|
1601 |
+
|
1602 |
+
});
|
1603 |
+
|
1604 |
+
uploader.bind('BeforeUpload', function (up, file) {
|
1605 |
+
progress.removeClass('finished error hidden');
|
1606 |
+
importstatus.show().removeClass('text-red-600');
|
1607 |
+
importstatus.html('Uploading');
|
1608 |
+
});
|
1609 |
+
|
1610 |
+
uploader.bind('UploadFile', function (up, file) {});
|
1611 |
+
|
1612 |
+
uploader.bind('UploadProgress', function (up, file) {
|
1613 |
+
importstatus.show().removeClass('text-red-600');
|
1614 |
+
importstatus.html(sprintf(ig_es_js_data.i18n_data.uploading, file.percent + '%'));
|
1615 |
+
progressbar.stop().animate({
|
1616 |
+
'width': file.percent + '%'
|
1617 |
+
}, 100);
|
1618 |
+
});
|
1619 |
+
|
1620 |
+
uploader.bind('Error', function (up, err) {
|
1621 |
+
importstatus.show().addClass('text-red-600 text-base font-medium');
|
1622 |
+
importstatus.html(err.message);
|
1623 |
+
progress.addClass('error');
|
1624 |
+
up.refresh();
|
1625 |
+
});
|
1626 |
+
|
1627 |
+
uploader.bind('FileUploaded', function (up, file, response) {
|
1628 |
+
response = $.parseJSON(response.response);
|
1629 |
+
importidentifier = response.identifier;
|
1630 |
+
if (!response.success) {
|
1631 |
+
importstatus.html(response.message);
|
1632 |
+
progress.addClass('error');
|
1633 |
+
up.refresh();
|
1634 |
+
uploader.unbind('UploadComplete');
|
1635 |
+
}
|
1636 |
+
});
|
1637 |
+
|
1638 |
+
uploader.bind('UploadComplete', function (up, files) {
|
1639 |
+
importstatus.removeClass('text-red-600').html(ig_es_js_data.i18n_data.prepare_data);
|
1640 |
+
progress.addClass('finished');
|
1641 |
+
get_import_data();
|
1642 |
+
});
|
1643 |
+
|
1644 |
+
uploader.init();
|
1645 |
+
}
|
1646 |
+
|
1647 |
+
let get_import_data = function () {
|
1648 |
+
|
1649 |
+
progress.removeClass('finished error');
|
1650 |
+
|
1651 |
+
$.post( ajaxurl, {
|
1652 |
+
action: 'ig_es_get_import_data',
|
1653 |
+
identifier: importidentifier,
|
1654 |
+
security: wpnonce,
|
1655 |
+
dataType: 'json'
|
1656 |
+
}, function( response ) {
|
1657 |
+
progress.addClass('hidden');
|
1658 |
+
$(".es-import-step1").slideUp();
|
1659 |
+
$('.es-import-option').hide();
|
1660 |
+
$('.step2-body').html(response.html).parent().show();
|
1661 |
+
$('.step2-status,.step2-list').show();
|
1662 |
+
|
1663 |
+
importstatus.html('');
|
1664 |
+
});
|
1665 |
+
}
|
1666 |
+
|
1667 |
+
let start_import = function(e) {
|
1668 |
+
|
1669 |
+
e.preventDefault();
|
1670 |
+
|
1671 |
+
let is_email_field_set = false;
|
1672 |
+
let mapping_order = [];
|
1673 |
+
$('select[name="mapping_order[]"').each(function(){
|
1674 |
+
let mapped_field = $(this).val();
|
1675 |
+
mapping_order.push(mapped_field);
|
1676 |
+
if ( 'email' === mapped_field ) {
|
1677 |
+
is_email_field_set = true;
|
1678 |
+
}
|
1679 |
+
});
|
1680 |
+
|
1681 |
+
|
1682 |
+
if ( ! is_email_field_set ) {
|
1683 |
+
alert(ig_es_js_data.i18n_data.select_email_column);
|
1684 |
+
return false;
|
1685 |
+
}
|
1686 |
+
|
1687 |
+
let status = $('#es_email_status').val();
|
1688 |
+
if ( '' === status || '0' === status ) {
|
1689 |
+
alert(ig_es_js_data.i18n_data.select_status);
|
1690 |
+
return false;
|
1691 |
+
}
|
1692 |
+
|
1693 |
+
let list_id = $('#list_id').val();
|
1694 |
+
|
1695 |
+
if ( ! confirm(ig_es_js_data.i18n_data.confirm_import) ) {
|
1696 |
+
return false;
|
1697 |
+
}
|
1698 |
+
|
1699 |
+
let _this = $('.start-import').prop('disabled', true),
|
1700 |
+
loader = $('#import-ajax-loading').css({
|
1701 |
+
'display': 'inline-block'
|
1702 |
+
}),
|
1703 |
+
identifier = $('#identifier').val(),
|
1704 |
+
performance = $('#performance').is(':checked') ? 'yes' : 'no';
|
1705 |
+
|
1706 |
+
progress.removeClass('hidden');
|
1707 |
+
progressbar.stop().width(0);
|
1708 |
+
$('.es-import-step1').slideUp();
|
1709 |
+
$('.es-import-option').hide();
|
1710 |
+
$('.step2-body').html('<br><br>').parent().show();
|
1711 |
+
$('.step2-status,.step2-list, .es-import-processing ').hide();
|
1712 |
+
|
1713 |
+
importstarttime = new Date();
|
1714 |
+
|
1715 |
+
do_import(0, {
|
1716 |
+
identifier: identifier,
|
1717 |
+
mapping_order: mapping_order,
|
1718 |
+
list_id: list_id,
|
1719 |
+
status: status,
|
1720 |
+
performance: performance
|
1721 |
+
});
|
1722 |
+
|
1723 |
+
importstatus = $('.step2 .import-status');
|
1724 |
+
|
1725 |
+
importstatus.html(ig_es_js_data.i18n_data.prepare_import);
|
1726 |
+
|
1727 |
+
window.onbeforeunload = function () {
|
1728 |
+
return ig_es_js_data.i18n_data.onbeforeunloadimport;
|
1729 |
+
};
|
1730 |
+
}
|
1731 |
+
|
1732 |
+
let do_import = function(id, options) {
|
1733 |
+
let percentage = 0;
|
1734 |
+
importprogress.removeClass('hidden');
|
1735 |
+
$.ajax({
|
1736 |
+
type: 'POST',
|
1737 |
+
url: ajaxurl,
|
1738 |
+
dataType: 'json',
|
1739 |
+
data: {
|
1740 |
+
action: 'ig_es_do_import',
|
1741 |
+
id: id,
|
1742 |
+
options: options,
|
1743 |
+
security: wpnonce,
|
1744 |
+
},
|
1745 |
+
success: function( response ) {
|
1746 |
+
percentage = (Math.min(1, (response.imported + response.errors) / response.total) * 100);
|
1747 |
+
|
1748 |
+
$('.step2-body').html('<p class="pt-3 pb-2 text-sm text-gray-600">' + get_stats(response.f_imported, response.f_errors, response.f_total, percentage, response.memoryusage) + '</p>');
|
1749 |
+
$('.step2-status,.step2-list, .es-import-processing').hide();
|
1750 |
+
importerrors = 0;
|
1751 |
+
let finished = percentage >= 100;
|
1752 |
+
|
1753 |
+
if (response.success) {
|
1754 |
+
|
1755 |
+
if (!finished) do_import(id + 1, options);
|
1756 |
+
|
1757 |
+
importprogressbar.animate({
|
1758 |
+
'width': (percentage) + '%'
|
1759 |
+
}, {
|
1760 |
+
duration: 1000,
|
1761 |
+
easing: 'swing',
|
1762 |
+
queue: false,
|
1763 |
+
step: function (percentage) {
|
1764 |
+
importstatus.show().addClass('text-lg').html( sprintf(ig_es_js_data.i18n_data.import_contacts, '' ) );
|
1765 |
+
$('.import-instruction').html( ig_es_js_data.i18n_data.no_windowclose );
|
1766 |
+
import_percentage.html( Math.ceil(percentage) + '%' );
|
1767 |
+
},
|
1768 |
+
complete: function () {
|
1769 |
+
if (finished) {
|
1770 |
+
window.onbeforeunload = null;
|
1771 |
+
$('.import-instruction').hide();
|
1772 |
+
importprogress.addClass('finished');
|
1773 |
+
$('.step2-body').html(response.html).slideDown();
|
1774 |
+
$('.step2-status,.step2-list,.es-import-processing').hide();
|
1775 |
+
importstatus.addClass('text-xl');
|
1776 |
+
importstatus.html(sprintf(ig_es_js_data.i18n_data.import_complete,'<svg class=" w-6 h-6 inline-block text-indigo-600" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path></svg>'));
|
1777 |
+
}
|
1778 |
+
}
|
1779 |
+
});
|
1780 |
+
} else {
|
1781 |
+
import_error_handler(percentage, id, options);
|
1782 |
+
}
|
1783 |
+
},
|
1784 |
+
error: function(jqXHR, textStatus, errorThrown) {
|
1785 |
+
import_error_handler(percentage, id, options);
|
1786 |
+
}
|
1787 |
+
});
|
1788 |
+
}
|
1789 |
+
|
1790 |
+
let get_stats = function(imported, errors, total, percentage, memoryusage) {
|
1791 |
+
let timepast = new Date().getTime() - importstarttime.getTime(),
|
1792 |
+
timeleft = Math.ceil(((100 - percentage) * (timepast / percentage)) / 60000);
|
1793 |
+
|
1794 |
+
return sprintf(ig_es_js_data.i18n_data.current_stats, '<span class="font-medium">' + imported + '</span>', '<span class="font-medium">' + total + '</span>', '<span class="font-medium">' + errors + '</span>', '<span class="font-medium">' + memoryusage + '</span>') + '<br>' +
|
1795 |
+
sprintf(ig_es_js_data.i18n_data.estimate_time, timeleft);
|
1796 |
+
}
|
1797 |
+
|
1798 |
+
let import_error_handler = function(percentage, id, options) {
|
1799 |
+
importerrors++;
|
1800 |
+
if (importerrors >= 5) {
|
1801 |
+
|
1802 |
+
alert(ig_es_js_data.i18n_data.error_importing);
|
1803 |
+
importstatus.html(sprintf(ig_es_js_data.i18n_data.import_failed, '<svg class=" w-6 h-6 inline-block text-red-600" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>'));
|
1804 |
+
window.onbeforeunload = null;
|
1805 |
+
return;
|
1806 |
+
}
|
1807 |
+
|
1808 |
+
let i = importerrors * 5,
|
1809 |
+
str = '',
|
1810 |
+
errorint = setInterval(function () {
|
1811 |
+
if (i <= 0) {
|
1812 |
+
clearInterval(errorint);
|
1813 |
+
progress.removeClass('paused');
|
1814 |
+
do_import(id, options);
|
1815 |
+
} else {
|
1816 |
+
progress.addClass('paused');
|
1817 |
+
str = '<span class="error">' + sprintf(ig_es_js_data.i18n_data.continues_in, (i--)) + '</span>';
|
1818 |
+
}
|
1819 |
+
importstatus.html(sprintf(ig_es_js_data.i18n_data.import_contacts, str));
|
1820 |
+
}, 1000);
|
1821 |
+
}
|
1822 |
+
|
1823 |
+
let sprintf = function() {
|
1824 |
+
let a = Array.prototype.slice.call(arguments),
|
1825 |
+
str = a.shift(),
|
1826 |
+
total = a.length,
|
1827 |
+
reg;
|
1828 |
+
for (let i = 0; i < total; i++) {
|
1829 |
+
reg = new RegExp('%(' + (i + 1) + '\\$)?(s|d|f)');
|
1830 |
+
str = str.replace(reg, a[i]);
|
1831 |
+
}
|
1832 |
+
return str;
|
1833 |
+
}
|
1834 |
+
|
1835 |
+
let _ajax = function(action, data, callback, errorCallback) {
|
1836 |
+
|
1837 |
+
if ($.isFunction(data)) {
|
1838 |
+
if ($.isFunction(callback)) {
|
1839 |
+
errorCallback = callback;
|
1840 |
+
}
|
1841 |
+
callback = data;
|
1842 |
+
data = {};
|
1843 |
+
}
|
1844 |
+
$.ajax({
|
1845 |
+
type: 'POST',
|
1846 |
+
url: ajaxurl,
|
1847 |
+
data: $.extend({
|
1848 |
+
action: 'ig_es_' + action,
|
1849 |
+
security: wpnonce
|
1850 |
+
}, data),
|
1851 |
+
success: function (data, textStatus, jqXHR) {
|
1852 |
+
callback && callback.call(this, data, textStatus, jqXHR);
|
1853 |
+
},
|
1854 |
+
error: function (jqXHR, textStatus, errorThrown) {
|
1855 |
+
if (textStatus == 'error' && !errorThrown) return;
|
1856 |
+
if (console) console.error($.trim(jqXHR.responseText));
|
1857 |
+
errorCallback && errorCallback.call(this, jqXHR, textStatus, errorThrown);
|
1858 |
+
},
|
1859 |
+
dataType: "JSON"
|
1860 |
+
});
|
1861 |
+
}
|
1862 |
+
|
1863 |
+
if ( 'object' === typeof (wpUploaderInit) ) {
|
1864 |
+
uploader_init();
|
1865 |
+
}
|
1866 |
+
|
1867 |
+
$('#form_import_subscribers').on('submit', start_import );
|
1868 |
+
|
1869 |
+
$('#import_wordpress')
|
1870 |
+
.on('click', function () {
|
1871 |
+
|
1872 |
+
let selected_roles = [];
|
1873 |
+
$('#ig-es-wordpress-user-roles input[name="roles[]"]:checked').each(function(){
|
1874 |
+
let selected_role = $(this).val();
|
1875 |
+
selected_roles.push(selected_role);
|
1876 |
+
});
|
1877 |
+
_ajax('import_subscribers_upload_handler', {
|
1878 |
+
selected_roles: selected_roles
|
1879 |
+
}, function (response) {
|
1880 |
+
|
1881 |
+
if (response.success) {
|
1882 |
+
importidentifier = response.identifier;
|
1883 |
+
$('#wordpress-users').fadeOut();
|
1884 |
+
get_import_data();
|
1885 |
+
} else {
|
1886 |
+
importstatus.html(response.message);
|
1887 |
+
progress.addClass('error');
|
1888 |
+
}
|
1889 |
+
}, function () {
|
1890 |
+
|
1891 |
+
importstatus.html('Error');
|
1892 |
+
});
|
1893 |
+
|
1894 |
+
return false;
|
1895 |
+
});
|
1896 |
+
|
1897 |
+
$("input:radio[name='es-import-subscribers']").click(function() {
|
1898 |
+
let import_option = $(this).attr("value");
|
1899 |
+
if( "es-sync-wordpress-users" === import_option ){
|
1900 |
+
$(".es-sync-wordpress-users").show();
|
1901 |
+
$(".es-import-with-csv").hide();
|
1902 |
+
}
|
1903 |
+
else{
|
1904 |
+
$(".es-import-with-csv").show();
|
1905 |
+
$(".es-sync-wordpress-users").hide();
|
1906 |
+
}
|
1907 |
+
});
|
1908 |
});
|
1909 |
|
1910 |
})(jQuery);
|
1911 |
|
1912 |
function checkDelete() {
|
1913 |
+
return confirm( ig_es_js_data.i18n_data.delete_confirmation_message );
|
1914 |
}
|
1915 |
|
1916 |
function ig_es_show_broadcast_preview_in_popup() {
|
1983 |
});
|
1984 |
});
|
1985 |
}
|
1986 |
+
});
|
lite/admin/js/ig-es-workflows-variables.js
DELETED
@@ -1,170 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* IG_ES_Workflows Variables
|
3 |
-
*/
|
4 |
-
|
5 |
-
jQuery(function($) {
|
6 |
-
|
7 |
-
IG_ES_Workflows.Variables = {
|
8 |
-
|
9 |
-
$meta_box: $('#ig_es_workflow_variables'),
|
10 |
-
|
11 |
-
|
12 |
-
init: function(){
|
13 |
-
|
14 |
-
this.init_clipboard();
|
15 |
-
|
16 |
-
$(document.body).on( 'change keyup', '.ig-es-workflow-variable-parameter', this.update_preview_field );
|
17 |
-
$(document.body).on( 'keypress', 'input.ig-es-workflow-variable-parameter', this.restrict_parameter_chars );
|
18 |
-
|
19 |
-
this.$meta_box.on( 'click', '.ig-es-workflow-variable', this.open_modal );
|
20 |
-
this.$meta_box.on( 'click', '.ig-es-close-variable-info-popup', this.close_modal );
|
21 |
-
|
22 |
-
$(document).keydown(function(e) {
|
23 |
-
if ( 27 === e.keyCode ) {
|
24 |
-
IG_ES_Workflows.Variables.close_modal();
|
25 |
-
}
|
26 |
-
});
|
27 |
-
},
|
28 |
-
|
29 |
-
|
30 |
-
/**
|
31 |
-
*
|
32 |
-
*/
|
33 |
-
init_clipboard: function() {
|
34 |
-
|
35 |
-
var clipboard = new ClipboardJS('.ig-es-clipboard-btn', {
|
36 |
-
text: function(trigger) {
|
37 |
-
return $('#ig_es_workflow_variable_preview_field').text();
|
38 |
-
}
|
39 |
-
});
|
40 |
-
|
41 |
-
clipboard.on('success', function(e) {
|
42 |
-
|
43 |
-
$('.ig-es-clipboard-btn').html( ig_es_workflows_data.placeholder_copied_message );
|
44 |
-
setTimeout(function(){
|
45 |
-
IG_ES_Workflows.Variables.close_modal();
|
46 |
-
}, 500 );
|
47 |
-
});
|
48 |
-
|
49 |
-
},
|
50 |
-
|
51 |
-
|
52 |
-
open_modal: function(){
|
53 |
-
|
54 |
-
var ajax_data = {
|
55 |
-
action: 'ig_es_modal_variable_info',
|
56 |
-
variable: $(this).text(),
|
57 |
-
security: ig_es_workflows_data.security,
|
58 |
-
};
|
59 |
-
|
60 |
-
$.post( ajaxurl, ajax_data, function( response ){
|
61 |
-
$('#ig-es-variable-info-popup #ig-es-workflow-variable-info-body').html(response).show();
|
62 |
-
IG_ES_Workflows.Variables.show_modal();
|
63 |
-
IG_ES_Workflows.Variables.update_preview_field();
|
64 |
-
});
|
65 |
-
},
|
66 |
-
|
67 |
-
show_modal: function() {
|
68 |
-
jQuery('#ig-es-variable-info-popup').show();
|
69 |
-
},
|
70 |
-
|
71 |
-
close_modal: function() {
|
72 |
-
$('#ig-es-variable-info-popup').hide('fast');
|
73 |
-
},
|
74 |
-
|
75 |
-
|
76 |
-
/**
|
77 |
-
* Updates the variable preview text field
|
78 |
-
*/
|
79 |
-
update_preview_field: function() {
|
80 |
-
|
81 |
-
var $preview_field = $('#ig_es_workflow_variable_preview_field');
|
82 |
-
var variable = $preview_field.data('variable');
|
83 |
-
var parameters = [];
|
84 |
-
|
85 |
-
$('.ig-es-workflow-variable-parameter').each(function(){
|
86 |
-
|
87 |
-
var $param_row = $(this).parents('.ig-es-workflow-variables-parameter-row:first');
|
88 |
-
|
89 |
-
// Check 'show' logic
|
90 |
-
if ( $param_row.data('parameter-show') ) {
|
91 |
-
|
92 |
-
var show_logic = $param_row.data('parameter-show').split('=');
|
93 |
-
|
94 |
-
var $condition_field = $('.ig-es-workflow-variable-parameter[name="' + show_logic[0] + '"]');
|
95 |
-
|
96 |
-
if ( $condition_field.length && $condition_field.val() == show_logic[1] ) {
|
97 |
-
$param_row.show();
|
98 |
-
} else {
|
99 |
-
$param_row.hide();
|
100 |
-
return; // don't add parameter to preview
|
101 |
-
}
|
102 |
-
}
|
103 |
-
|
104 |
-
var param = {
|
105 |
-
name: $(this).attr('name'),
|
106 |
-
required: $param_row.data('is-required'),
|
107 |
-
value: $(this).val()
|
108 |
-
};
|
109 |
-
|
110 |
-
parameters.push( param );
|
111 |
-
});
|
112 |
-
|
113 |
-
var string = IG_ES_Workflows.Variables.generate_variable_string( variable, parameters );
|
114 |
-
|
115 |
-
$preview_field.text( string );
|
116 |
-
},
|
117 |
-
|
118 |
-
|
119 |
-
/**
|
120 |
-
*
|
121 |
-
* @param variable
|
122 |
-
* @param parameters
|
123 |
-
*/
|
124 |
-
generate_variable_string: function( variable, parameters ) {
|
125 |
-
|
126 |
-
var string = '{{ ' + variable;
|
127 |
-
|
128 |
-
if ( parameters.length ) {
|
129 |
-
var param_parts = [];
|
130 |
-
|
131 |
-
$.each( parameters, function( i, param ) {
|
132 |
-
|
133 |
-
if ( param.value ) {
|
134 |
-
param_parts.push( param.name + ": '" + param.value + "'" );
|
135 |
-
}
|
136 |
-
else if ( param.required ) {
|
137 |
-
param_parts.push( param.name + ": '...'" );
|
138 |
-
}
|
139 |
-
});
|
140 |
-
|
141 |
-
|
142 |
-
if ( param_parts.length > 0 ) {
|
143 |
-
string += ' | ';
|
144 |
-
string += param_parts.join( ', ' );
|
145 |
-
}
|
146 |
-
}
|
147 |
-
|
148 |
-
return string + ' }}';
|
149 |
-
},
|
150 |
-
|
151 |
-
|
152 |
-
/**
|
153 |
-
*
|
154 |
-
* @param e
|
155 |
-
*/
|
156 |
-
restrict_parameter_chars: function(e) {
|
157 |
-
|
158 |
-
var restricted = [ 39, 123, 124, 125 ];
|
159 |
-
|
160 |
-
if ( $.inArray( e.which, restricted ) !== -1 ) {
|
161 |
-
return false;
|
162 |
-
}
|
163 |
-
}
|
164 |
-
|
165 |
-
};
|
166 |
-
|
167 |
-
|
168 |
-
IG_ES_Workflows.Variables.init();
|
169 |
-
|
170 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lite/admin/js/ig-es-workflows.js
DELETED
@@ -1,384 +0,0 @@
|
|
1 |
-
(function($){
|
2 |
-
$(document).ready(function(){
|
3 |
-
IG_ES_Workflows = {
|
4 |
-
|
5 |
-
$triggers_box: $('#ig_es_workflow_trigger'),
|
6 |
-
$actions_box : $('#ig_es_workflow_actions'),
|
7 |
-
$trigger_select: $('.js-trigger-select').first(),
|
8 |
-
$actions_container: $('.ig-es-actions-container'),
|
9 |
-
|
10 |
-
init: function() {
|
11 |
-
IG_ES_Workflows.init_triggers_box();
|
12 |
-
IG_ES_Workflows.init_actions_box();
|
13 |
-
IG_ES_Workflows.init_variables_box();
|
14 |
-
IG_ES_Workflows.init_show_hide();
|
15 |
-
IG_ES_Workflows.init_date_pickers();
|
16 |
-
IG_ES_Workflows.init_workflow_status_switch();
|
17 |
-
},
|
18 |
-
|
19 |
-
init_date_pickers: function() {
|
20 |
-
$( '.ig-es-date-picker' ).datepicker({
|
21 |
-
dateFormat: 'yy-mm-dd',
|
22 |
-
numberOfMonths: 1,
|
23 |
-
showButtonPanel: true
|
24 |
-
});
|
25 |
-
|
26 |
-
let d = new Date();
|
27 |
-
let n = d.getHours() + 1;
|
28 |
-
$('.ig-es-time-picker').timepicker({
|
29 |
-
timeFormat: 'H:mm',
|
30 |
-
interval: 15,
|
31 |
-
startTime: new Date(0,0,0,n,0,0),
|
32 |
-
dynamic: true,
|
33 |
-
dropdown: true,
|
34 |
-
scrollbar: false,
|
35 |
-
minTime: new Date(0,0,0,n,0,0)
|
36 |
-
});
|
37 |
-
},
|
38 |
-
|
39 |
-
init_workflow_status_switch: function() {
|
40 |
-
$('.ig-es-switch.js-toggle-workflow-status').click(function(){
|
41 |
-
|
42 |
-
let $switch, state, new_state;
|
43 |
-
|
44 |
-
$switch = $(this);
|
45 |
-
|
46 |
-
if ( $switch.is('.ig-es-loading') ) {
|
47 |
-
return;
|
48 |
-
}
|
49 |
-
|
50 |
-
state = $switch.attr( 'data-ig-es-switch' );
|
51 |
-
new_state = state === 'active' ? 'inactive' : 'active';
|
52 |
-
|
53 |
-
$switch.addClass('ig-es-loading');
|
54 |
-
|
55 |
-
$.post( ajaxurl, {
|
56 |
-
action: 'ig_es_toggle_workflow_status',
|
57 |
-
workflow_id: $switch.attr( 'data-workflow-id' ),
|
58 |
-
new_state: new_state,
|
59 |
-
security: ig_es_workflows_data.security,
|
60 |
-
dataType: 'json'
|
61 |
-
}, function( response ) {
|
62 |
-
$switch.attr( 'data-ig-es-switch', new_state );
|
63 |
-
$switch.removeClass('ig-es-loading');
|
64 |
-
});
|
65 |
-
|
66 |
-
});
|
67 |
-
},
|
68 |
-
|
69 |
-
/**
|
70 |
-
* Show / hide logic with data attributes
|
71 |
-
*/
|
72 |
-
init_show_hide: function() {
|
73 |
-
|
74 |
-
let update = function( $el ) {
|
75 |
-
let id = $el.data( 'ig-es-bind' );
|
76 |
-
let value = $el.val();
|
77 |
-
let is_checkbox = $el.is('input[type="checkbox"]');
|
78 |
-
|
79 |
-
$('[data-ig-es-show]').each(function() {
|
80 |
-
if ( is_checkbox && $(this).data('ig-es-show') === id ) {
|
81 |
-
if ( $el.is(':checked') ) {
|
82 |
-
$(this).show();
|
83 |
-
} else {
|
84 |
-
$(this).hide();
|
85 |
-
}
|
86 |
-
} else {
|
87 |
-
let logic = $(this).data('ig-es-show').split('=');
|
88 |
-
|
89 |
-
if ( logic[0] !== id ) {
|
90 |
-
return;
|
91 |
-
}
|
92 |
-
|
93 |
-
let possible_values = logic[1].split('|');
|
94 |
-
|
95 |
-
if ( possible_values.indexOf( value ) !== -1 ) {
|
96 |
-
$(this).show();
|
97 |
-
} else {
|
98 |
-
$(this).hide();
|
99 |
-
}
|
100 |
-
}
|
101 |
-
});
|
102 |
-
|
103 |
-
|
104 |
-
$('[data-ig-es-hide]').each(function() {
|
105 |
-
if ( is_checkbox && $(this).data('ig-es-hide') === id ) {
|
106 |
-
if ( $el.is(':checked') ) {
|
107 |
-
$(this).hide();
|
108 |
-
} else {
|
109 |
-
$(this).show();
|
110 |
-
}
|
111 |
-
} else {
|
112 |
-
let logic = $(this).data('ig-es-hide').split('=');
|
113 |
-
|
114 |
-
if ( logic[0] !== id ) {
|
115 |
-
return;
|
116 |
-
}
|
117 |
-
|
118 |
-
let possible_values = logic[1].split('|');
|
119 |
-
|
120 |
-
if ( possible_values.indexOf( value ) !== -1 ) {
|
121 |
-
$(this).hide();
|
122 |
-
} else {
|
123 |
-
$(this).show();
|
124 |
-
}
|
125 |
-
}
|
126 |
-
});
|
127 |
-
};
|
128 |
-
|
129 |
-
|
130 |
-
$(document).on( 'change', '[data-ig-es-bind]', function() {
|
131 |
-
update( $(this) );
|
132 |
-
});
|
133 |
-
|
134 |
-
$('[data-ig-es-bind]').each(function() {
|
135 |
-
update( $(this) );
|
136 |
-
});
|
137 |
-
|
138 |
-
},
|
139 |
-
|
140 |
-
/**
|
141 |
-
*
|
142 |
-
*/
|
143 |
-
init_triggers_box: function() {
|
144 |
-
IG_ES_Workflows.$trigger_select.change(function(){
|
145 |
-
IG_ES_Workflows.fill_trigger_fields( $(this).val() );
|
146 |
-
IG_ES_Workflows.remove_actions();
|
147 |
-
});
|
148 |
-
},
|
149 |
-
|
150 |
-
/**
|
151 |
-
* @param trigger_name
|
152 |
-
*/
|
153 |
-
fill_trigger_fields: function( trigger_name ) {
|
154 |
-
|
155 |
-
// Remove existing fields
|
156 |
-
IG_ES_Workflows.$triggers_box.find('tr.ig-es-trigger-option').remove();
|
157 |
-
|
158 |
-
if ( trigger_name ) {
|
159 |
-
|
160 |
-
IG_ES_Workflows.$triggers_box.addClass('ig-es-loading');
|
161 |
-
|
162 |
-
let workflow_id = $('#workflow_id').val();
|
163 |
-
$.ajax({
|
164 |
-
url: ajaxurl,
|
165 |
-
data: {
|
166 |
-
action: 'ig_es_fill_trigger_fields',
|
167 |
-
trigger_name: trigger_name,
|
168 |
-
security: ig_es_workflows_data.security,
|
169 |
-
workflow_id: workflow_id
|
170 |
-
}
|
171 |
-
})
|
172 |
-
.done(function(response){
|
173 |
-
|
174 |
-
if ( ! response.success ) {
|
175 |
-
return;
|
176 |
-
}
|
177 |
-
|
178 |
-
ig_es_workflows_data.trigger = response.data.trigger;
|
179 |
-
IG_ES_Workflows.refine_variables();
|
180 |
-
|
181 |
-
IG_ES_Workflows.$triggers_box.find('tbody').append( response.data.fields );
|
182 |
-
IG_ES_Workflows.$triggers_box.removeClass('ig-es-loading');
|
183 |
-
IG_ES_Workflows.$triggers_box.find('.js-trigger-description').html( '<p class="ig-es-field-description">' + response.data.trigger.description + '</p>' );
|
184 |
-
});
|
185 |
-
}
|
186 |
-
},
|
187 |
-
|
188 |
-
/**
|
189 |
-
*
|
190 |
-
*/
|
191 |
-
init_actions_box: function() {
|
192 |
-
// Action select change
|
193 |
-
$(document).on('change', '.js-action-select', function () {
|
194 |
-
let $action = $(this).parents('.ig-es-action').first();
|
195 |
-
IG_ES_Workflows.fill_action_fields( $action, $(this).val() );
|
196 |
-
});
|
197 |
-
|
198 |
-
// Add new action
|
199 |
-
$('.js-ig-es-add-action').click(function (e) {
|
200 |
-
e.preventDefault();
|
201 |
-
IG_ES_Workflows.add_new_action();
|
202 |
-
});
|
203 |
-
|
204 |
-
$(document).on('click', '.js-edit-action, .ig-es-action__header', function (e) {
|
205 |
-
e.preventDefault();
|
206 |
-
e.stopImmediatePropagation();
|
207 |
-
|
208 |
-
let $action = $(this).parents('.ig-es-action').first();
|
209 |
-
|
210 |
-
if ($action.is('.js-open')) {
|
211 |
-
IG_ES_Workflows.action_edit_close($action);
|
212 |
-
} else {
|
213 |
-
IG_ES_Workflows.action_edit_open($action);
|
214 |
-
}
|
215 |
-
});
|
216 |
-
|
217 |
-
// Delete action
|
218 |
-
$(document).on('click', '.js-delete-action', function (e) {
|
219 |
-
e.preventDefault();
|
220 |
-
let $action = $(this).parents('.ig-es-action').first();
|
221 |
-
IG_ES_Workflows.action_delete($action);
|
222 |
-
});
|
223 |
-
|
224 |
-
$('#ig_es_workflow_save #publish').on('click', function(e){
|
225 |
-
let trigger_name = $('.js-trigger-select').val();
|
226 |
-
|
227 |
-
if ( '' === trigger_name) {
|
228 |
-
e.preventDefault();
|
229 |
-
alert( ig_es_workflows_data.no_trigger_message );
|
230 |
-
return;
|
231 |
-
}
|
232 |
-
|
233 |
-
let actions = $('.ig-es-action:not([data-action-number=""]) .js-action-select');
|
234 |
-
if ( 0 === $( actions ).length ) {
|
235 |
-
e.preventDefault();
|
236 |
-
alert( ig_es_workflows_data.no_actions_message );
|
237 |
-
return;
|
238 |
-
} else {
|
239 |
-
$(actions).each(function() {
|
240 |
-
let action_name = $(this).val();
|
241 |
-
// Check if user have selected an action or not.
|
242 |
-
if( '' === action_name ) {
|
243 |
-
e.preventDefault();
|
244 |
-
// Open the action accordion if is not already open.
|
245 |
-
$(this).closest('.ig-es-action:not(.js-open)').find('.ig-es-action__header').trigger('click');
|
246 |
-
alert( ig_es_workflows_data.no_action_selected_message );
|
247 |
-
return false;
|
248 |
-
}
|
249 |
-
});
|
250 |
-
}
|
251 |
-
});
|
252 |
-
},
|
253 |
-
|
254 |
-
add_new_action: function() {
|
255 |
-
|
256 |
-
let $new_action,
|
257 |
-
action_number = IG_ES_Workflows.get_number_of_actions() + 1;
|
258 |
-
|
259 |
-
$('.js-ig-es-no-actions-message').hide();
|
260 |
-
|
261 |
-
$new_action = $('.ig-es-action-template .ig-es-action').clone();
|
262 |
-
|
263 |
-
IG_ES_Workflows.$actions_container.append($new_action);
|
264 |
-
|
265 |
-
$new_action.attr( 'data-action-number', action_number );
|
266 |
-
|
267 |
-
IG_ES_Workflows.action_edit_open($new_action);
|
268 |
-
},
|
269 |
-
|
270 |
-
/**
|
271 |
-
* @param $action
|
272 |
-
*/
|
273 |
-
action_delete: function( $action ) {
|
274 |
-
$action.remove();
|
275 |
-
},
|
276 |
-
|
277 |
-
action_edit_close: function( $action ) {
|
278 |
-
|
279 |
-
let action_number = $action.data('action-number');
|
280 |
-
|
281 |
-
$action.removeClass('js-open');
|
282 |
-
$action.find('.ig-es-action__fields').slideUp(150);
|
283 |
-
},
|
284 |
-
|
285 |
-
action_edit_open: function( $action ) {
|
286 |
-
|
287 |
-
let action_number = $action.data('action-number');
|
288 |
-
|
289 |
-
$action.addClass('js-open');
|
290 |
-
$action.find('.ig-es-action__fields').slideDown(150);
|
291 |
-
},
|
292 |
-
|
293 |
-
/**
|
294 |
-
*
|
295 |
-
*/
|
296 |
-
fill_action_fields: function( $action, selected_action ) {
|
297 |
-
|
298 |
-
let action_number = $action.data('action-number');
|
299 |
-
action_number = ( typeof action_number !== 'undefined' && action_number !== '' ) ? action_number : IG_ES_Workflows.get_number_of_actions() + 1;
|
300 |
-
let $select = $action.find('.js-action-select');
|
301 |
-
|
302 |
-
let selected_trigger = $('.js-trigger-select').val();
|
303 |
-
|
304 |
-
IG_ES_Workflows.$actions_box.addClass('ig-es-loading');
|
305 |
-
|
306 |
-
// Remove existing fields
|
307 |
-
$action.find('tr.ig-es-table__row:not([data-name="action_name"])').remove();
|
308 |
-
|
309 |
-
$.ajax({
|
310 |
-
url: ajaxurl,
|
311 |
-
data: {
|
312 |
-
action: 'ig_es_fill_action_fields',
|
313 |
-
action_name: selected_action,
|
314 |
-
action_number: action_number,
|
315 |
-
trigger_name: selected_trigger,
|
316 |
-
security: ig_es_workflows_data.security
|
317 |
-
}
|
318 |
-
}).done(function(response){
|
319 |
-
|
320 |
-
$action.find('.ig-es-table tbody').append( response.data.fields );
|
321 |
-
IG_ES_Workflows.$actions_box.removeClass('ig-es-loading');
|
322 |
-
|
323 |
-
// Fill select box name
|
324 |
-
$select.attr('name', 'ig_es_workflow_data[actions]['+action_number+'][action_name]' );
|
325 |
-
|
326 |
-
// Pre fill title
|
327 |
-
$action.find('.action-title').text( response.data.title );
|
328 |
-
|
329 |
-
$action.find('.js-action-description').html( response.data.description );
|
330 |
-
|
331 |
-
});
|
332 |
-
|
333 |
-
},
|
334 |
-
|
335 |
-
get_number_of_actions: function () {
|
336 |
-
return $('.ig-es-action:not([data-action-number=""])').length;
|
337 |
-
},
|
338 |
-
|
339 |
-
remove_actions: function() {
|
340 |
-
let number_of_actions = IG_ES_Workflows.get_number_of_actions();
|
341 |
-
if ( number_of_actions > 0 ) {
|
342 |
-
let confirm_trigger_change = window.confirm( ig_es_workflows_data.trigger_change_message );
|
343 |
-
if ( confirm_trigger_change ) {
|
344 |
-
$('.ig-es-action:not([data-action-number=""])').remove();
|
345 |
-
}
|
346 |
-
}
|
347 |
-
},
|
348 |
-
|
349 |
-
init_variables_box: function() {
|
350 |
-
if ( ! ig_es_workflows_data.is_new ) {
|
351 |
-
IG_ES_Workflows.refine_variables();
|
352 |
-
}
|
353 |
-
},
|
354 |
-
|
355 |
-
/**
|
356 |
-
* Show or hide text var groups based on the selected trigger
|
357 |
-
*/
|
358 |
-
refine_variables: function() {
|
359 |
-
|
360 |
-
let trigger = ig_es_workflows_data.trigger;
|
361 |
-
|
362 |
-
$('.ig-es-variables-group').each(function( i, el ){
|
363 |
-
|
364 |
-
let group = $(el).data( 'ig-es-variable-group' );
|
365 |
-
|
366 |
-
if ( -1 === $.inArray( group, trigger.supplied_data_items ) ) {
|
367 |
-
$(el).addClass('hidden');
|
368 |
-
} else {
|
369 |
-
$(el).removeClass('hidden');
|
370 |
-
}
|
371 |
-
});
|
372 |
-
|
373 |
-
let shown_group = $('.ig-es-variables-group:not(.hidden)');
|
374 |
-
if ( 0 === shown_group.length ) {
|
375 |
-
$('.js-ig-es-no-variables-message').show();
|
376 |
-
} else {
|
377 |
-
$('.js-ig-es-no-variables-message').hide();
|
378 |
-
}
|
379 |
-
},
|
380 |
-
}
|
381 |
-
|
382 |
-
IG_ES_Workflows.init();
|
383 |
-
});
|
384 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lite/admin/js/subscribers.js
DELETED
@@ -1,349 +0,0 @@
|
|
1 |
-
jQuery(document).ready(function ($) {
|
2 |
-
"use strict"
|
3 |
-
|
4 |
-
let importstatus = $('.es-import-step1 .import-status'),
|
5 |
-
progress = $('#progress'),
|
6 |
-
progressbar = progress.find('.bar'),
|
7 |
-
importprogress = $('#importing-progress'),
|
8 |
-
importprogressbar = importprogress.find('.bar'),
|
9 |
-
import_percentage = importprogress.find('.import_percentage'),
|
10 |
-
wpnonce = ig_es_subscribers_data.security,
|
11 |
-
importerrors = 0,
|
12 |
-
importstarttime,
|
13 |
-
importidentifier,
|
14 |
-
|
15 |
-
uploader_init = function () {
|
16 |
-
let uploader = new plupload.Uploader(wpUploaderInit);
|
17 |
-
|
18 |
-
uploader.bind('Init', function (up) {
|
19 |
-
let uploaddiv = $('#plupload-upload-ui');
|
20 |
-
|
21 |
-
if (up.features.dragdrop && !$(document.body).hasClass('mobile')) {
|
22 |
-
uploaddiv.addClass('drag-drop');
|
23 |
-
$('#drag-drop-area').bind('dragover.wp-uploader', function () { // dragenter doesn't fire right :(
|
24 |
-
uploaddiv.addClass('drag-over');
|
25 |
-
}).bind('dragleave.wp-uploader, drop.wp-uploader', function () {
|
26 |
-
uploaddiv.removeClass('drag-over');
|
27 |
-
});
|
28 |
-
} else {
|
29 |
-
uploaddiv.removeClass('drag-drop');
|
30 |
-
$('#drag-drop-area').unbind('.wp-uploader');
|
31 |
-
}
|
32 |
-
|
33 |
-
});
|
34 |
-
|
35 |
-
uploader.bind('FilesAdded', function (up, files) {
|
36 |
-
$('#media-upload-error').html('');
|
37 |
-
|
38 |
-
setTimeout(function () {
|
39 |
-
up.refresh();
|
40 |
-
up.start();
|
41 |
-
}, 1);
|
42 |
-
|
43 |
-
});
|
44 |
-
|
45 |
-
uploader.bind('BeforeUpload', function (up, file) {
|
46 |
-
progress.removeClass('finished error hidden');
|
47 |
-
importstatus.show().removeClass('text-red-600');
|
48 |
-
importstatus.html('Uploading');
|
49 |
-
});
|
50 |
-
|
51 |
-
uploader.bind('UploadFile', function (up, file) {});
|
52 |
-
|
53 |
-
uploader.bind('UploadProgress', function (up, file) {
|
54 |
-
importstatus.show().removeClass('text-red-600');
|
55 |
-
importstatus.html(sprintf(ig_es_subscribers_data.i18n.uploading, file.percent + '%'));
|
56 |
-
progressbar.stop().animate({
|
57 |
-
'width': file.percent + '%'
|
58 |
-
}, 100);
|
59 |
-
});
|
60 |
-
|
61 |
-
uploader.bind('Error', function (up, err) {
|
62 |
-
importstatus.show().addClass('text-red-600 text-base font-medium');
|
63 |
-
importstatus.html(err.message);
|
64 |
-
progress.addClass('error');
|
65 |
-
up.refresh();
|
66 |
-
});
|
67 |
-
|
68 |
-
uploader.bind('FileUploaded', function (up, file, response) {
|
69 |
-
response = $.parseJSON(response.response);
|
70 |
-
importidentifier = response.identifier;
|
71 |
-
if (!response.success) {
|
72 |
-
importstatus.html(response.message);
|
73 |
-
progress.addClass('error');
|
74 |
-
up.refresh();
|
75 |
-
uploader.unbind('UploadComplete');
|
76 |
-
}
|
77 |
-
});
|
78 |
-
|
79 |
-
uploader.bind('UploadComplete', function (up, files) {
|
80 |
-
importstatus.removeClass('text-red-600').html(ig_es_subscribers_data.i18n.prepare_data);
|
81 |
-
progress.addClass('finished');
|
82 |
-
get_import_data();
|
83 |
-
});
|
84 |
-
|
85 |
-
uploader.init();
|
86 |
-
}
|
87 |
-
|
88 |
-
let get_import_data = function () {
|
89 |
-
|
90 |
-
progress.removeClass('finished error');
|
91 |
-
|
92 |
-
$.post( ajaxurl, {
|
93 |
-
action: 'ig_es_get_import_data',
|
94 |
-
identifier: importidentifier,
|
95 |
-
security: wpnonce,
|
96 |
-
dataType: 'json'
|
97 |
-
}, function( response ) {
|
98 |
-
progress.addClass('hidden');
|
99 |
-
$(".es-import-step1").slideUp();
|
100 |
-
$('.es-import-option').hide();
|
101 |
-
$('.step2-body').html(response.html).parent().show();
|
102 |
-
$('.step2-status,.step2-list').show();
|
103 |
-
|
104 |
-
importstatus.html('');
|
105 |
-
});
|
106 |
-
}
|
107 |
-
|
108 |
-
let start_import = function(e) {
|
109 |
-
|
110 |
-
e.preventDefault();
|
111 |
-
|
112 |
-
let is_email_field_set = false;
|
113 |
-
let mapping_order = [];
|
114 |
-
$('select[name="mapping_order[]"').each(function(){
|
115 |
-
let mapped_field = $(this).val();
|
116 |
-
mapping_order.push(mapped_field);
|
117 |
-
if ( 'email' === mapped_field ) {
|
118 |
-
is_email_field_set = true;
|
119 |
-
}
|
120 |
-
});
|
121 |
-
|
122 |
-
|
123 |
-
if ( ! is_email_field_set ) {
|
124 |
-
alert(ig_es_subscribers_data.i18n.select_email_column);
|
125 |
-
return false;
|
126 |
-
}
|
127 |
-
|
128 |
-
let status = $('#es_email_status').val();
|
129 |
-
if ( '' === status || '0' === status ) {
|
130 |
-
alert(ig_es_subscribers_data.i18n.select_status);
|
131 |
-
return false;
|
132 |
-
}
|
133 |
-
|
134 |
-
let list_id = $('#list_id').val();
|
135 |
-
|
136 |
-
if ( ! confirm(ig_es_subscribers_data.i18n.confirm_import) ) {
|
137 |
-
return false;
|
138 |
-
}
|
139 |
-
|
140 |
-
let _this = $('.start-import').prop('disabled', true),
|
141 |
-
loader = $('#import-ajax-loading').css({
|
142 |
-
'display': 'inline-block'
|
143 |
-
}),
|
144 |
-
identifier = $('#identifier').val(),
|
145 |
-
performance = $('#performance').is(':checked') ? 'yes' : 'no';
|
146 |
-
|
147 |
-
progress.removeClass('hidden');
|
148 |
-
progressbar.stop().width(0);
|
149 |
-
$('.es-import-step1').slideUp();
|
150 |
-
$('.es-import-option').hide();
|
151 |
-
$('.step2-body').html('<br><br>').parent().show();
|
152 |
-
$('.step2-status,.step2-list, .es-import-processing ').hide();
|
153 |
-
|
154 |
-
importstarttime = new Date();
|
155 |
-
|
156 |
-
do_import(0, {
|
157 |
-
identifier: identifier,
|
158 |
-
mapping_order: mapping_order,
|
159 |
-
list_id: list_id,
|
160 |
-
status: status,
|
161 |
-
performance: performance
|
162 |
-
});
|
163 |
-
|
164 |
-
importstatus = $('.step2 .import-status');
|
165 |
-
|
166 |
-
importstatus.html(ig_es_subscribers_data.i18n.prepare_import);
|
167 |
-
|
168 |
-
window.onbeforeunload = function () {
|
169 |
-
return ig_es_subscribers_data.i18n.onbeforeunloadimport;
|
170 |
-
};
|
171 |
-
}
|
172 |
-
|
173 |
-
let do_import = function(id, options) {
|
174 |
-
let percentage = 0;
|
175 |
-
importprogress.removeClass('hidden');
|
176 |
-
$.ajax({
|
177 |
-
type: 'POST',
|
178 |
-
url: ajaxurl,
|
179 |
-
dataType: 'json',
|
180 |
-
data: {
|
181 |
-
action: 'ig_es_do_import',
|
182 |
-
id: id,
|
183 |
-
options: options,
|
184 |
-
security: wpnonce,
|
185 |
-
},
|
186 |
-
success: function( response ) {
|
187 |
-
percentage = (Math.min(1, (response.imported + response.errors) / response.total) * 100);
|
188 |
-
|
189 |
-
$('.step2-body').html('<p class="pt-3 pb-2 text-sm text-gray-600">' + get_stats(response.f_imported, response.f_errors, response.f_total, percentage, response.memoryusage) + '</p>');
|
190 |
-
$('.step2-status,.step2-list, .es-import-processing').hide();
|
191 |
-
importerrors = 0;
|
192 |
-
let finished = percentage >= 100;
|
193 |
-
|
194 |
-
if (response.success) {
|
195 |
-
|
196 |
-
if (!finished) do_import(id + 1, options);
|
197 |
-
|
198 |
-
importprogressbar.animate({
|
199 |
-
'width': (percentage) + '%'
|
200 |
-
}, {
|
201 |
-
duration: 1000,
|
202 |
-
easing: 'swing',
|
203 |
-
queue: false,
|
204 |
-
step: function (percentage) {
|
205 |
-
importstatus.show().addClass('text-lg').html( sprintf(ig_es_subscribers_data.i18n.import_contacts, '' ) );
|
206 |
-
$('.import-instruction').html( ig_es_subscribers_data.i18n.no_windowclose );
|
207 |
-
import_percentage.html( Math.ceil(percentage) + '%' );
|
208 |
-
},
|
209 |
-
complete: function () {
|
210 |
-
if (finished) {
|
211 |
-
window.onbeforeunload = null;
|
212 |
-
$('.import-instruction').hide();
|
213 |
-
importprogress.addClass('finished');
|
214 |
-
$('.step2-body').html(response.html).slideDown();
|
215 |
-
$('.step2-status,.step2-list,.es-import-processing').hide();
|
216 |
-
importstatus.addClass('text-xl');
|
217 |
-
importstatus.html(sprintf(ig_es_subscribers_data.i18n.import_complete,'<svg class=" w-6 h-6 inline-block text-indigo-600" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path></svg>'));
|
218 |
-
}
|
219 |
-
}
|
220 |
-
});
|
221 |
-
} else {
|
222 |
-
import_error_handler(percentage, id, options);
|
223 |
-
}
|
224 |
-
},
|
225 |
-
error: function(jqXHR, textStatus, errorThrown) {
|
226 |
-
import_error_handler(percentage, id, options);
|
227 |
-
}
|
228 |
-
});
|
229 |
-
}
|
230 |
-
|
231 |
-
let get_stats = function(imported, errors, total, percentage, memoryusage) {
|
232 |
-
let timepast = new Date().getTime() - importstarttime.getTime(),
|
233 |
-
timeleft = Math.ceil(((100 - percentage) * (timepast / percentage)) / 60000);
|
234 |
-
|
235 |
-
return sprintf(ig_es_subscribers_data.i18n.current_stats, '<span class="font-medium">' + imported + '</span>', '<span class="font-medium">' + total + '</span>', '<span class="font-medium">' + errors + '</span>', '<span class="font-medium">' + memoryusage + '</span>') + '<br>' +
|
236 |
-
sprintf(ig_es_subscribers_data.i18n.estimate_time, timeleft);
|
237 |
-
}
|
238 |
-
|
239 |
-
let import_error_handler = function(percentage, id, options) {
|
240 |
-
importerrors++;
|
241 |
-
if (importerrors >= 5) {
|
242 |
-
|
243 |
-
alert(ig_es_subscribers_data.i18n.error_importing);
|
244 |
-
importstatus.html(sprintf(ig_es_subscribers_data.i18n.import_failed, '<svg class=" w-6 h-6 inline-block text-red-600" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>'));
|
245 |
-
window.onbeforeunload = null;
|
246 |
-
return;
|
247 |
-
}
|
248 |
-
|
249 |
-
let i = importerrors * 5,
|
250 |
-
str = '',
|
251 |
-
errorint = setInterval(function () {
|
252 |
-
if (i <= 0) {
|
253 |
-
clearInterval(errorint);
|
254 |
-
progress.removeClass('paused');
|
255 |
-
do_import(id, options);
|
256 |
-
} else {
|
257 |
-
progress.addClass('paused');
|
258 |
-
str = '<span class="error">' + sprintf(ig_es_subscribers_data.i18n.continues_in, (i--)) + '</span>';
|
259 |
-
}
|
260 |
-
importstatus.html(sprintf(ig_es_subscribers_data.i18n.import_contacts, str));
|
261 |
-
}, 1000);
|
262 |
-
}
|
263 |
-
|
264 |
-
let sprintf = function() {
|
265 |
-
let a = Array.prototype.slice.call(arguments),
|
266 |
-
str = a.shift(),
|
267 |
-
total = a.length,
|
268 |
-
reg;
|
269 |
-
for (let i = 0; i < total; i++) {
|
270 |
-
reg = new RegExp('%(' + (i + 1) + '\\$)?(s|d|f)');
|
271 |
-
str = str.replace(reg, a[i]);
|
272 |
-
}
|
273 |
-
return str;
|
274 |
-
}
|
275 |
-
|
276 |
-
let _ajax = function(action, data, callback, errorCallback) {
|
277 |
-
|
278 |
-
if ($.isFunction(data)) {
|
279 |
-
if ($.isFunction(callback)) {
|
280 |
-
errorCallback = callback;
|
281 |
-
}
|
282 |
-
callback = data;
|
283 |
-
data = {};
|
284 |
-
}
|
285 |
-
$.ajax({
|
286 |
-
type: 'POST',
|
287 |
-
url: ajaxurl,
|
288 |
-
data: $.extend({
|
289 |
-
action: 'ig_es_' + action,
|
290 |
-
security: wpnonce
|
291 |
-
}, data),
|
292 |
-
success: function (data, textStatus, jqXHR) {
|
293 |
-
callback && callback.call(this, data, textStatus, jqXHR);
|
294 |
-
},
|
295 |
-
error: function (jqXHR, textStatus, errorThrown) {
|
296 |
-
if (textStatus == 'error' && !errorThrown) return;
|
297 |
-
if (console) console.error($.trim(jqXHR.responseText));
|
298 |
-
errorCallback && errorCallback.call(this, jqXHR, textStatus, errorThrown);
|
299 |
-
},
|
300 |
-
dataType: "JSON"
|
301 |
-
});
|
302 |
-
}
|
303 |
-
|
304 |
-
if ( 'object' === typeof (wpUploaderInit) ) {
|
305 |
-
uploader_init();
|
306 |
-
}
|
307 |
-
|
308 |
-
$('#form_import_subscribers').on('submit', start_import );
|
309 |
-
|
310 |
-
$('#import_wordpress')
|
311 |
-
.on('click', function () {
|
312 |
-
|
313 |
-
let selected_roles = [];
|
314 |
-
$('#ig-es-wordpress-user-roles input[name="roles[]"]:checked').each(function(){
|
315 |
-
let selected_role = $(this).val();
|
316 |
-
selected_roles.push(selected_role);
|
317 |
-
});
|
318 |
-
_ajax('import_subscribers_upload_handler', {
|
319 |
-
selected_roles: selected_roles
|
320 |
-
}, function (response) {
|
321 |
-
|
322 |
-
if (response.success) {
|
323 |
-
importidentifier = response.identifier;
|
324 |
-
$('#wordpress-users').fadeOut();
|
325 |
-
get_import_data();
|
326 |
-
} else {
|
327 |
-
importstatus.html(response.message);
|
328 |
-
progress.addClass('error');
|
329 |
-
}
|
330 |
-
}, function () {
|
331 |
-
|
332 |
-
importstatus.html('Error');
|
333 |
-
});
|
334 |
-
|
335 |
-
return false;
|
336 |
-
});
|
337 |
-
|
338 |
-
$("input:radio[name='es-import-subscribers']").click(function() {
|
339 |
-
let import_option = $(this).attr("value");
|
340 |
-
if( "es-sync-wordpress-users" === import_option ){
|
341 |
-
$(".es-sync-wordpress-users").show();
|
342 |
-
$(".es-import-with-csv").hide();
|
343 |
-
}
|
344 |
-
else{
|
345 |
-
$(".es-import-with-csv").show();
|
346 |
-
$(".es-sync-wordpress-users").hide();
|
347 |
-
}
|
348 |
-
});
|
349 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lite/includes/class-es-common.php
CHANGED
@@ -1763,12 +1763,15 @@ class ES_Common {
|
|
1763 |
*
|
1764 |
* @return string
|
1765 |
*/
|
1766 |
-
public static function convert_timestamp_to_date( $timestamp ) {
|
1767 |
|
1768 |
-
|
1769 |
-
|
|
|
|
|
|
|
1770 |
|
1771 |
-
return gmdate(
|
1772 |
}
|
1773 |
|
1774 |
/**
|
1763 |
*
|
1764 |
* @return string
|
1765 |
*/
|
1766 |
+
public static function convert_timestamp_to_date( $timestamp, $format = '' ) {
|
1767 |
|
1768 |
+
if ( empty( $format ) ) {
|
1769 |
+
$convert_date_format = get_option( 'date_format' );
|
1770 |
+
$convert_time_format = get_option( 'time_format' );
|
1771 |
+
$format = $convert_date_format . ' ' . $convert_time_format;
|
1772 |
+
}
|
1773 |
|
1774 |
+
return gmdate( $format, $timestamp );
|
1775 |
}
|
1776 |
|
1777 |
/**
|
lite/includes/class-es-install.php
CHANGED
@@ -252,6 +252,10 @@ if ( ! class_exists( 'ES_Install' ) ) {
|
|
252 |
'ig_es_update_469_alter_wc_guests_table',
|
253 |
'ig_es_update_469_db_version',
|
254 |
),
|
|
|
|
|
|
|
|
|
255 |
|
256 |
);
|
257 |
|
252 |
'ig_es_update_469_alter_wc_guests_table',
|
253 |
'ig_es_update_469_db_version',
|
254 |
),
|
255 |
+
'4.6.13' => array(
|
256 |
+
'ig_es_migrate_4613_sequence_list_settings_into_campaign_rules',
|
257 |
+
'ig_es_update_4613_db_version',
|
258 |
+
)
|
259 |
|
260 |
);
|
261 |
|
lite/includes/classes/class-es-campaign-report.php
CHANGED
@@ -342,14 +342,14 @@ class ES_Campaign_Report extends ES_List_Table {
|
|
342 |
if ( IG_MESSAGE_OPEN === $action_type ) {
|
343 |
$view_activity_data[$contact_id]['opened'] = 'Viewed';
|
344 |
$view_activity_data[$contact_id]['status'] = 'Opened';
|
345 |
-
$view_activity_data[$contact_id]['opened_at'] = ! empty( $notification_action['created_at'] ) ? ES_Common::convert_timestamp_to_date( $notification_action['created_at'] ) : '' ;
|
346 |
|
347 |
$view_activity_data = apply_filters( 'additional_es_report_activity_data', $view_activity_data, $contact_id, $notification_action );
|
348 |
} elseif ( IG_MESSAGE_SENT === $action_type ) {
|
349 |
if ( empty( $view_activity_data[$contact_id]['status'] ) ) {
|
350 |
$view_activity_data[$contact_id]['status'] = 'Sent';
|
351 |
}
|
352 |
-
$view_activity_data[$contact_id]['sent_at'] = ! empty( $notification_action['created_at'] ) ? ES_Common::convert_timestamp_to_date( $notification_action['created_at'] ) : '' ;
|
353 |
}
|
354 |
|
355 |
}
|
342 |
if ( IG_MESSAGE_OPEN === $action_type ) {
|
343 |
$view_activity_data[$contact_id]['opened'] = 'Viewed';
|
344 |
$view_activity_data[$contact_id]['status'] = 'Opened';
|
345 |
+
$view_activity_data[$contact_id]['opened_at'] = ! empty( $notification_action['created_at'] ) ? ES_Common::convert_timestamp_to_date( $notification_action['created_at'], 'Y-m-d H:i:s' ) : '' ;
|
346 |
|
347 |
$view_activity_data = apply_filters( 'additional_es_report_activity_data', $view_activity_data, $contact_id, $notification_action );
|
348 |
} elseif ( IG_MESSAGE_SENT === $action_type ) {
|
349 |
if ( empty( $view_activity_data[$contact_id]['status'] ) ) {
|
350 |
$view_activity_data[$contact_id]['status'] = 'Sent';
|
351 |
}
|
352 |
+
$view_activity_data[$contact_id]['sent_at'] = ! empty( $notification_action['created_at'] ) ? ES_Common::convert_timestamp_to_date( $notification_action['created_at'], 'Y-m-d H:i:s' ) : '' ;
|
353 |
}
|
354 |
|
355 |
}
|
lite/includes/classes/class-es-contacts-table.php
CHANGED
@@ -867,7 +867,7 @@ class ES_Contacts_Table extends ES_List_Table {
|
|
867 |
* @since 4.0.0
|
868 |
*/
|
869 |
public function column_default( $item, $column_name ) {
|
870 |
-
$item = apply_filters( 'es_subscribers_col_data', $item, $column_name );
|
871 |
switch ( $column_name ) {
|
872 |
case 'lists':
|
873 |
return $this->get_lists_to_show( $item['id'] );
|
867 |
* @since 4.0.0
|
868 |
*/
|
869 |
public function column_default( $item, $column_name ) {
|
870 |
+
$item = apply_filters( 'es_subscribers_col_data', $item, $column_name, $this );
|
871 |
switch ( $column_name ) {
|
872 |
case 'lists':
|
873 |
return $this->get_lists_to_show( $item['id'] );
|
lite/includes/classes/class-es-import-subscribers.php
CHANGED
@@ -41,8 +41,6 @@ class ES_Import_Subscribers {
|
|
41 |
|
42 |
public function prepare_import_subscriber_form() {
|
43 |
|
44 |
-
global $is_IE, $is_opera;
|
45 |
-
|
46 |
if ( is_multisite() && ! is_upload_space_available() ) {
|
47 |
return;
|
48 |
}
|
41 |
|
42 |
public function prepare_import_subscriber_form() {
|
43 |
|
|
|
|
|
44 |
if ( is_multisite() && ! is_upload_space_available() ) {
|
45 |
return;
|
46 |
}
|
lite/includes/classes/class-es-newsletters.php
CHANGED
@@ -81,7 +81,7 @@ class ES_Newsletters {
|
|
81 |
$meta['list_conditions'] = IG_ES_Campaign_Rules::remove_empty_conditions( $meta['list_conditions'] );
|
82 |
}
|
83 |
|
84 |
-
$broadcast_data['meta']
|
85 |
|
86 |
self::es_send_email_callback( $broadcast_data );
|
87 |
|
@@ -175,7 +175,7 @@ class ES_Newsletters {
|
|
175 |
$lists = ES_Common::prepare_list_dropdown_options( $list_ids );
|
176 |
$from_email = ES_Common::get_ig_option( 'from_email' );
|
177 |
|
178 |
-
$broadcast_id = ! empty( $broadcast_data['id'] ) ? $broadcast_data['id'] :
|
179 |
$broadcast_from_name = ! empty( $broadcast_data['from_name'] ) ? $broadcast_data['from_name'] : get_option( 'ig_es_from_name' );
|
180 |
$broadcast_email = ! empty( $broadcast_data['from_email'] ) ? $broadcast_data['from_email'] : $from_email;
|
181 |
$broadcast_reply_to = ! empty( $broadcast_data['reply_to_email'] ) ? $broadcast_data['reply_to_email'] : $from_email;
|
@@ -386,7 +386,7 @@ class ES_Newsletters {
|
|
386 |
</div>
|
387 |
<div class="block py-2 mx-4 ">
|
388 |
<?php
|
389 |
-
do_action( 'ig_es_show_campaign_rules', $broadcast_data );
|
390 |
?>
|
391 |
<!-- Hidden field to detect whether admin has update campaign lists or not during editing of campaign -->
|
392 |
<input type="hidden" name="broadcast_data[existing_list_ids]" value="<?php echo esc_attr( $list_ids ); ?>">
|
@@ -737,6 +737,10 @@ class ES_Newsletters {
|
|
737 |
|
738 |
$broadcast_data = ig_es_get_request_data( 'broadcast_data', array(), false );
|
739 |
|
|
|
|
|
|
|
|
|
740 |
$broadcast_id = ! empty( $broadcast_data['id'] ) ? $broadcast_data['id'] : null;
|
741 |
$is_updating = ! empty( $broadcast_id ) ? true : false;
|
742 |
$list_id = ! empty( $broadcast_data['list_ids'] ) ? $broadcast_data['list_ids'] : '';
|
@@ -748,11 +752,12 @@ class ES_Newsletters {
|
|
748 |
$broadcast_data['status'] = ! empty( $broadcast_data['status'] ) ? 1 : 0;
|
749 |
$meta = ! empty( $broadcast_data['meta'] ) ? $broadcast_data['meta'] : array();
|
750 |
$meta['pre_header'] = ! empty( $broadcast_data['pre_header'] ) ? $broadcast_data['pre_header'] : '';
|
|
|
751 |
if ( ! empty( $meta['list_conditions'] ) ) {
|
752 |
$meta['list_conditions'] = IG_ES_Campaign_Rules::remove_empty_conditions( $meta['list_conditions'] );
|
753 |
}
|
754 |
-
$broadcast_data['meta'] = maybe_serialize( $meta );
|
755 |
|
|
|
756 |
$broadcast_data['type'] = 'newsletter';
|
757 |
$broadcast_data['name'] = $broadcast_data['subject'];
|
758 |
$broadcast_data['slug'] = sanitize_title( sanitize_text_field( $broadcast_data['name'] ) );
|
81 |
$meta['list_conditions'] = IG_ES_Campaign_Rules::remove_empty_conditions( $meta['list_conditions'] );
|
82 |
}
|
83 |
|
84 |
+
$broadcast_data['meta'] = maybe_serialize( $meta );
|
85 |
|
86 |
self::es_send_email_callback( $broadcast_data );
|
87 |
|
175 |
$lists = ES_Common::prepare_list_dropdown_options( $list_ids );
|
176 |
$from_email = ES_Common::get_ig_option( 'from_email' );
|
177 |
|
178 |
+
$broadcast_id = ! empty( $broadcast_data['id'] ) ? $broadcast_data['id'] : 0;
|
179 |
$broadcast_from_name = ! empty( $broadcast_data['from_name'] ) ? $broadcast_data['from_name'] : get_option( 'ig_es_from_name' );
|
180 |
$broadcast_email = ! empty( $broadcast_data['from_email'] ) ? $broadcast_data['from_email'] : $from_email;
|
181 |
$broadcast_reply_to = ! empty( $broadcast_data['reply_to_email'] ) ? $broadcast_data['reply_to_email'] : $from_email;
|
386 |
</div>
|
387 |
<div class="block py-2 mx-4 ">
|
388 |
<?php
|
389 |
+
do_action( 'ig_es_show_campaign_rules', $broadcast_id, $broadcast_data );
|
390 |
?>
|
391 |
<!-- Hidden field to detect whether admin has update campaign lists or not during editing of campaign -->
|
392 |
<input type="hidden" name="broadcast_data[existing_list_ids]" value="<?php echo esc_attr( $list_ids ); ?>">
|
737 |
|
738 |
$broadcast_data = ig_es_get_request_data( 'broadcast_data', array(), false );
|
739 |
|
740 |
+
/**
|
741 |
+
* To allow insert of new broadcast data,
|
742 |
+
* we are specifically setting $broadcast_id to null when id is empty in $broadcast_data
|
743 |
+
**/
|
744 |
$broadcast_id = ! empty( $broadcast_data['id'] ) ? $broadcast_data['id'] : null;
|
745 |
$is_updating = ! empty( $broadcast_id ) ? true : false;
|
746 |
$list_id = ! empty( $broadcast_data['list_ids'] ) ? $broadcast_data['list_ids'] : '';
|
752 |
$broadcast_data['status'] = ! empty( $broadcast_data['status'] ) ? 1 : 0;
|
753 |
$meta = ! empty( $broadcast_data['meta'] ) ? $broadcast_data['meta'] : array();
|
754 |
$meta['pre_header'] = ! empty( $broadcast_data['pre_header'] ) ? $broadcast_data['pre_header'] : '';
|
755 |
+
|
756 |
if ( ! empty( $meta['list_conditions'] ) ) {
|
757 |
$meta['list_conditions'] = IG_ES_Campaign_Rules::remove_empty_conditions( $meta['list_conditions'] );
|
758 |
}
|
|
|
759 |
|
760 |
+
$broadcast_data['meta'] = maybe_serialize( $meta );
|
761 |
$broadcast_data['type'] = 'newsletter';
|
762 |
$broadcast_data['name'] = $broadcast_data['subject'];
|
763 |
$broadcast_data['slug'] = sanitize_title( sanitize_text_field( $broadcast_data['name'] ) );
|
lite/includes/classes/class-es-post-notifications.php
CHANGED
@@ -364,9 +364,6 @@ class ES_Post_Notifications_Table {
|
|
364 |
</div>
|
365 |
</td>
|
366 |
</tr>
|
367 |
-
<?php
|
368 |
-
do_action( 'ig_es_show_campaign_rules', array() );
|
369 |
-
?>
|
370 |
<?php do_action( 'es_after_post_notification_template', $id ); ?>
|
371 |
<?php if ( ! $is_new ) { ?>
|
372 |
<tr class="border-b border-gray-100">
|
364 |
</div>
|
365 |
</td>
|
366 |
</tr>
|
|
|
|
|
|
|
367 |
<?php do_action( 'es_after_post_notification_template', $id ); ?>
|
368 |
<?php if ( ! $is_new ) { ?>
|
369 |
<tr class="border-b border-gray-100">
|
lite/includes/classes/class-es-queue.php
CHANGED
@@ -277,29 +277,44 @@ if ( ! class_exists( 'ES_Queue' ) ) {
|
|
277 |
|
278 |
$list_ids = $campaign['list_ids'];
|
279 |
|
280 |
-
$
|
281 |
-
|
282 |
-
$
|
283 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
|
|
|
285 |
$query_args = array(
|
286 |
-
'select'
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
'
|
291 |
-
'
|
292 |
-
'
|
293 |
-
'
|
|
|
|
|
|
|
294 |
);
|
295 |
|
296 |
-
|
|
|
|
|
|
|
|
|
|
|
297 |
|
298 |
// ES()->logger->info( '----------------------------Query Args (ig_es_contact_insert) ----------------------------' );
|
299 |
// ES()->logger->info( $query );
|
300 |
// ES()->logger->info( '----------------------------Query Args Complete (ig_es_contact_insert) ----------------------------' );
|
301 |
|
302 |
-
$results = $wpbd->get_results( $query, ARRAY_A );
|
303 |
|
304 |
// ES()->logger->info( 'Results: ' . print_r( $results, true ) );
|
305 |
|
@@ -534,87 +549,91 @@ if ( ! class_exists( 'ES_Queue' ) ) {
|
|
534 |
}
|
535 |
|
536 |
ES()->cron->set_last_hit();
|
|
|
|
|
537 |
|
538 |
-
$
|
539 |
-
|
540 |
-
$ig_queue_table = IG_QUEUE_TABLE;
|
541 |
-
$ig_campaigns_table = IG_CAMPAIGNS_TABLE;
|
542 |
-
|
543 |
-
$sql = 'SELECT queue.campaign_id, queue.contact_id, queue.count AS _count, queue.requeued AS _requeued, queue.options AS _options, queue.tags AS _tags, queue.priority AS _priority';
|
544 |
-
$sql .= " FROM $ig_queue_table AS queue";
|
545 |
-
$sql .= " LEFT JOIN $ig_campaigns_table AS campaigns ON campaigns.id = queue.campaign_id";
|
546 |
-
$sql .= ' WHERE queue.timestamp <= ' . (int) $micro_time . ' AND queue.sent_at = 0';
|
547 |
-
$sql .= ' AND (campaigns.status = 1)';
|
548 |
-
$sql .= ' ORDER BY queue.priority DESC';
|
549 |
-
|
550 |
-
// ES()->logger->info( 'Process Queue:' );
|
551 |
-
// ES()->logger->info( 'SQL: ' . $sql );
|
552 |
-
|
553 |
-
$notifications = $wpdb->get_results(
|
554 |
-
$wpdb->prepare(
|
555 |
-
"SELECT queue.campaign_id, queue.contact_id, queue.count AS _count, queue.requeued AS _requeued, queue.options AS _options, queue.tags AS _tags, queue.priority AS _priority
|
556 |
-
FROM {$wpdb->prefix}ig_queue AS queue
|
557 |
-
LEFT JOIN {$wpdb->prefix}ig_campaigns AS campaigns ON campaigns.id = queue.campaign_id
|
558 |
-
WHERE queue.timestamp <= %d AND queue.sent_at = 0
|
559 |
-
AND (campaigns.status = 1)
|
560 |
-
ORDER BY queue.priority DESC",
|
561 |
-
(int) $micro_time
|
562 |
-
),
|
563 |
-
ARRAY_A
|
564 |
-
);
|
565 |
-
|
566 |
-
if ( is_array( $notifications ) && count( $notifications ) > 0 ) {
|
567 |
-
$campaigns_notifications = array();
|
568 |
-
$contact_ids = array();
|
569 |
-
foreach ( $notifications as $notification ) {
|
570 |
-
$campaigns_notifications[ $notification['campaign_id'] ][] = $notification;
|
571 |
-
|
572 |
-
$contact_ids[] = $notification['contact_id'];
|
573 |
-
}
|
574 |
-
|
575 |
-
// We need unique ids
|
576 |
-
$contact_ids = array_unique( $contact_ids );
|
577 |
-
|
578 |
-
$contacts = ES()->contacts_db->get_details_by_ids( $contact_ids );
|
579 |
-
|
580 |
-
foreach ( $campaigns_notifications as $campaign_id => $notifications ) {
|
581 |
-
|
582 |
-
$campaign = ES()->campaigns_db->get( $campaign_id );
|
583 |
-
|
584 |
-
if ( ! empty( $campaign ) ) {
|
585 |
-
|
586 |
-
$content = $campaign['body'];
|
587 |
-
$subject = $campaign['subject'];
|
588 |
-
|
589 |
-
foreach ( $notifications as $notification ) {
|
590 |
-
|
591 |
-
$contact_id = $notification['contact_id'];
|
592 |
-
|
593 |
-
if ( ! empty( $contacts[ $contact_id ] ) ) {
|
594 |
-
|
595 |
-
$first_name = $contacts[ $contact_id ]['first_name'];
|
596 |
-
$last_name = $contacts[ $contact_id ]['last_name'];
|
597 |
-
$hash = $contacts[ $contact_id ]['hash'];
|
598 |
-
$email = $contacts[ $contact_id ]['email'];
|
599 |
-
$name = ES_Common::prepare_name_from_first_name_last_name( $first_name, $last_name );
|
600 |
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
613 |
|
614 |
-
|
|
|
|
|
|
|
|
|
615 |
|
616 |
-
//
|
617 |
-
$
|
|
|
|
|
618 |
}
|
619 |
}
|
620 |
}
|
277 |
|
278 |
$list_ids = $campaign['list_ids'];
|
279 |
|
280 |
+
$campaign = ES()->campaigns_db->get( $campaign_id );
|
281 |
+
|
282 |
+
$conditions = array();
|
283 |
+
if ( ! empty( $campaign ) && ! empty( $campaign['meta'] ) ) {
|
284 |
+
$campaign_meta = maybe_unserialize( $campaign['meta'] );
|
285 |
+
if ( ! empty( $campaign_meta['list_conditions'] ) ) {
|
286 |
+
$conditions = $campaign_meta['list_conditions'];
|
287 |
+
}
|
288 |
+
}
|
289 |
+
|
290 |
+
$conditions = ! empty( $meta['list_conditions'] ) ? $meta['list_conditions'] : array();
|
291 |
|
292 |
+
|
293 |
$query_args = array(
|
294 |
+
'select' => array(
|
295 |
+
'lists_subscribers.contact_id AS contact_id',
|
296 |
+
"UNIX_TIMESTAMP ( lists_subscribers.subscribed_at + INTERVAL $offset ) AS timestamp",
|
297 |
+
),
|
298 |
+
'sent__not_in' => array( $campaign_id ),
|
299 |
+
'queue__not_in' => array( $campaign_id ),
|
300 |
+
'lists' => $list_ids,
|
301 |
+
'conditions' => $conditions,
|
302 |
+
'having' => array( 'timestamp <= ' . ( $now + $queue_upfront ) ),
|
303 |
+
'orderby' => array( 'timestamp' ),
|
304 |
+
'groupby' => 'lists_subscribers.contact_id',
|
305 |
);
|
306 |
|
307 |
+
if ( $grace_period ) {
|
308 |
+
$query_args['having'][] = 'timestamp >= ' . ( $now - $grace_period );
|
309 |
+
}
|
310 |
+
|
311 |
+
$query = new IG_ES_Subscribers_Query();
|
312 |
+
$results = $query->run( $query_args );
|
313 |
|
314 |
// ES()->logger->info( '----------------------------Query Args (ig_es_contact_insert) ----------------------------' );
|
315 |
// ES()->logger->info( $query );
|
316 |
// ES()->logger->info( '----------------------------Query Args Complete (ig_es_contact_insert) ----------------------------' );
|
317 |
|
|
|
318 |
|
319 |
// ES()->logger->info( 'Results: ' . print_r( $results, true ) );
|
320 |
|
549 |
}
|
550 |
|
551 |
ES()->cron->set_last_hit();
|
552 |
+
|
553 |
+
$email_sending_limit = ES()->mailer->get_total_emails_send_now();
|
554 |
|
555 |
+
if ( $email_sending_limit > 0 ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
556 |
|
557 |
+
$micro_time = microtime( true );
|
558 |
+
|
559 |
+
// ES()->logger->info( 'Process Queue:' );
|
560 |
+
// ES()->logger->info( 'SQL: ' . $sql );
|
561 |
+
|
562 |
+
$notifications = $wpdb->get_results(
|
563 |
+
$wpdb->prepare(
|
564 |
+
"SELECT queue.campaign_id, queue.contact_id, queue.count AS _count, queue.requeued AS _requeued, queue.options AS _options, queue.tags AS _tags, queue.priority AS _priority
|
565 |
+
FROM {$wpdb->prefix}ig_queue AS queue
|
566 |
+
LEFT JOIN {$wpdb->prefix}ig_campaigns AS campaigns ON campaigns.id = queue.campaign_id
|
567 |
+
WHERE queue.timestamp <= %d AND queue.sent_at = 0
|
568 |
+
AND (campaigns.status = 1)
|
569 |
+
ORDER BY queue.priority DESC",
|
570 |
+
(int) $micro_time
|
571 |
+
),
|
572 |
+
ARRAY_A
|
573 |
+
);
|
574 |
+
|
575 |
+
$batch_start_time = time();
|
576 |
+
|
577 |
+
if ( is_array( $notifications ) && count( $notifications ) > 0 ) {
|
578 |
+
$campaigns_notifications = array();
|
579 |
+
$contact_ids = array();
|
580 |
+
foreach ( $notifications as $notification ) {
|
581 |
+
$campaigns_notifications[ $notification['campaign_id'] ][] = $notification;
|
582 |
+
|
583 |
+
$contact_ids[] = $notification['contact_id'];
|
584 |
+
}
|
585 |
+
|
586 |
+
// We need unique ids
|
587 |
+
$contact_ids = array_unique( $contact_ids );
|
588 |
+
|
589 |
+
$contacts = ES()->contacts_db->get_details_by_ids( $contact_ids );
|
590 |
+
|
591 |
+
foreach ( $campaigns_notifications as $campaign_id => $notifications ) {
|
592 |
+
|
593 |
+
$campaign = ES()->campaigns_db->get( $campaign_id );
|
594 |
+
|
595 |
+
if ( ! empty( $campaign ) ) {
|
596 |
+
|
597 |
+
$content = $campaign['body'];
|
598 |
+
$subject = $campaign['subject'];
|
599 |
+
|
600 |
+
foreach ( $notifications as $notification ) {
|
601 |
+
|
602 |
+
$contact_id = $notification['contact_id'];
|
603 |
+
|
604 |
+
if ( ! empty( $contacts[ $contact_id ] ) ) {
|
605 |
+
|
606 |
+
$first_name = $contacts[ $contact_id ]['first_name'];
|
607 |
+
$last_name = $contacts[ $contact_id ]['last_name'];
|
608 |
+
$hash = $contacts[ $contact_id ]['hash'];
|
609 |
+
$email = $contacts[ $contact_id ]['email'];
|
610 |
+
$name = ES_Common::prepare_name_from_first_name_last_name( $first_name, $last_name );
|
611 |
+
|
612 |
+
$merge_tags = array(
|
613 |
+
'name' => $name,
|
614 |
+
'first_name' => $first_name,
|
615 |
+
'last_name' => $last_name,
|
616 |
+
'email' => $email,
|
617 |
+
'guid' => $hash,
|
618 |
+
'dbid' => $contact_id,
|
619 |
+
'message_id' => 0,
|
620 |
+
'campaign_id' => $campaign_id,
|
621 |
+
);
|
622 |
+
|
623 |
+
$result = ES()->mailer->send( $subject, $content, $email, $merge_tags );
|
624 |
+
|
625 |
+
do_action( 'ig_es_message_sent', $contact_id, $campaign_id, 0 );
|
626 |
|
627 |
+
$email_sending_limit--;
|
628 |
+
|
629 |
+
// Email Sent now delete from queue now.
|
630 |
+
$this->db->delete_from_queue( $campaign_id, $contact_id );
|
631 |
+
}
|
632 |
|
633 |
+
// Check if email sending limit or time limit or memory limit has been reached.
|
634 |
+
if ( $email_sending_limit <= 0 || IG_ES_Background_Process_Helper::time_exceeded( $batch_start_time, 0.8 ) || IG_ES_Background_Process_Helper::memory_exceeded() ) {
|
635 |
+
break 2;
|
636 |
+
}
|
637 |
}
|
638 |
}
|
639 |
}
|
lite/includes/classes/class-ig-es-background-process-helper.php
CHANGED
@@ -110,14 +110,17 @@ if ( ! class_exists( 'IG_ES_Background_Process_Helper' ) ) {
|
|
110 |
* A timeout limit of 30s is common on shared hosting.
|
111 |
*
|
112 |
* @param string $start_time start timestamp.
|
|
|
113 |
*
|
114 |
* @return bool
|
115 |
*
|
116 |
* @since 4.6.3
|
|
|
|
|
117 |
*/
|
118 |
-
public static function time_exceeded( $start_time = 0 ) {
|
119 |
|
120 |
-
$finish = $start_time + ( self::get_time_limit() *
|
121 |
$return = false;
|
122 |
|
123 |
if ( time() >= $finish ) {
|
110 |
* A timeout limit of 30s is common on shared hosting.
|
111 |
*
|
112 |
* @param string $start_time start timestamp.
|
113 |
+
* @param float $fraction Time fraction.
|
114 |
*
|
115 |
* @return bool
|
116 |
*
|
117 |
* @since 4.6.3
|
118 |
+
*
|
119 |
+
* @since Added $fraction parameter
|
120 |
*/
|
121 |
+
public static function time_exceeded( $start_time = 0, $fraction = 0.6 ) {
|
122 |
|
123 |
+
$finish = $start_time + ( self::get_time_limit() * $fraction );
|
124 |
$return = false;
|
125 |
|
126 |
if ( time() >= $finish ) {
|
lite/includes/classes/class-ig-es-subscriber-query.php
CHANGED
@@ -14,16 +14,17 @@ class IG_ES_Subscribers_Query {
|
|
14 |
private $args = array();
|
15 |
|
16 |
private $defaults = array(
|
17 |
-
'select'
|
18 |
-
'join'
|
19 |
-
'status'
|
20 |
-
'status__not_in'
|
21 |
-
'where'
|
22 |
-
'having'
|
23 |
-
'orderby'
|
24 |
-
'order'
|
25 |
-
'
|
26 |
-
'
|
|
|
27 |
|
28 |
'return_ids' => false,
|
29 |
'return_count' => false,
|
@@ -104,7 +105,8 @@ class IG_ES_Subscribers_Query {
|
|
104 |
'_click_link',
|
105 |
'_click_link__not_in',
|
106 |
'_lists__in',
|
107 |
-
'_lists__not_in'
|
|
|
108 |
);
|
109 |
|
110 |
private static $_instance = null;
|
@@ -161,10 +163,21 @@ class IG_ES_Subscribers_Query {
|
|
161 |
if ( ! empty( $this->args['lists'] ) && is_string( $this->args['lists'] ) ) {
|
162 |
$this->args['lists'] = explode( ',', $this->args['lists'] );
|
163 |
}
|
164 |
-
|
|
|
|
|
|
|
165 |
|
166 |
$this->args = apply_filters( 'ig_es_subscriber_query_args', $this->args );
|
167 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
if ( $this->args['conditions'] ) {
|
169 |
$cond = array();
|
170 |
|
@@ -327,6 +340,7 @@ class IG_ES_Subscribers_Query {
|
|
327 |
|
328 |
$joins[] = "LEFT JOIN {$wpbd->prefix}ig_lists_contacts AS lists_subscribers ON subscribers.id = lists_subscribers.contact_id";
|
329 |
$wheres[] = "AND lists_subscribers.status IN( 'subscribed', 'confirmed' )";
|
|
|
330 |
|
331 |
if ( ! is_bool( $this->args['lists'] ) ) {
|
332 |
// unassigned members if NULL
|
@@ -345,6 +359,14 @@ class IG_ES_Subscribers_Query {
|
|
345 |
}
|
346 |
}
|
347 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
if ( $this->args['orderby'] && ! $this->args['return_count'] ) {
|
349 |
|
350 |
$ordering = isset( $this->args['order'][0] ) ? strtoupper( $this->args['order'][0] ) : 'ASC';
|
@@ -376,6 +398,16 @@ class IG_ES_Subscribers_Query {
|
|
376 |
$where = 'WHERE 1=1 ' . implode( "\n ", array_unique( $wheres ) );
|
377 |
}
|
378 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
379 |
$order = '';
|
380 |
if ( ! empty( $orders ) ) {
|
381 |
$order = 'ORDER BY ' . implode( ', ', array_unique( $orders ) );
|
@@ -385,6 +417,8 @@ class IG_ES_Subscribers_Query {
|
|
385 |
$sql .= ' ' . apply_filters( 'ig_es_subscriber_query_sql_from', $from, $this->args, $campaign_id ) . "\n";
|
386 |
$sql .= ' ' . apply_filters( 'ig_es_subscriber_query_sql_join', $join, $this->args, $campaign_id ) . "\n";
|
387 |
$sql .= ' ' . apply_filters( 'ig_es_subscriber_query_sql_where', $where, $this->args, $campaign_id ) . "\n";
|
|
|
|
|
388 |
$sql .= ' ' . apply_filters( 'ig_es_subscriber_query_sql_order', $order, $this->args, $campaign_id ) . "\n";
|
389 |
|
390 |
$sql = trim( $sql );
|
14 |
private $args = array();
|
15 |
|
16 |
private $defaults = array(
|
17 |
+
'select' => null,
|
18 |
+
'join' => null,
|
19 |
+
'status' => null,
|
20 |
+
'status__not_in' => null,
|
21 |
+
'where' => null,
|
22 |
+
'having' => null,
|
23 |
+
'orderby' => null,
|
24 |
+
'order' => null,
|
25 |
+
'groupby' => null,
|
26 |
+
'limit' => null,
|
27 |
+
'offset' => null,
|
28 |
|
29 |
'return_ids' => false,
|
30 |
'return_count' => false,
|
105 |
'_click_link',
|
106 |
'_click_link__not_in',
|
107 |
'_lists__in',
|
108 |
+
'_lists__not_in',
|
109 |
+
'_subscribed_before'
|
110 |
);
|
111 |
|
112 |
private static $_instance = null;
|
163 |
if ( ! empty( $this->args['lists'] ) && is_string( $this->args['lists'] ) ) {
|
164 |
$this->args['lists'] = explode( ',', $this->args['lists'] );
|
165 |
}
|
166 |
+
|
167 |
+
if ( $this->args['sent__not_in'] ) {
|
168 |
+
$this->add_condition( '_sent__not_in', '=', $this->id_parse( $this->args['sent__not_in'] ) );
|
169 |
+
}
|
170 |
|
171 |
$this->args = apply_filters( 'ig_es_subscriber_query_args', $this->args );
|
172 |
|
173 |
+
if ( ! empty( $this->args['queue__not_in'] ) ) {
|
174 |
+
$join = "LEFT JOIN {$wpbd->prefix}ig_queue AS queue ON subscribers.id = queue.contact_id";
|
175 |
+
if ( ! empty( $this->args['queue__not_in'] ) ) {
|
176 |
+
$join .= ' AND queue.campaign_id IN (' . implode( ',', array_filter( $this->args['queue__not_in'], 'is_numeric' ) ) . ')';
|
177 |
+
}
|
178 |
+
$joins[] = $join;
|
179 |
+
}
|
180 |
+
|
181 |
if ( $this->args['conditions'] ) {
|
182 |
$cond = array();
|
183 |
|
340 |
|
341 |
$joins[] = "LEFT JOIN {$wpbd->prefix}ig_lists_contacts AS lists_subscribers ON subscribers.id = lists_subscribers.contact_id";
|
342 |
$wheres[] = "AND lists_subscribers.status IN( 'subscribed', 'confirmed' )";
|
343 |
+
|
344 |
|
345 |
if ( ! is_bool( $this->args['lists'] ) ) {
|
346 |
// unassigned members if NULL
|
359 |
}
|
360 |
}
|
361 |
|
362 |
+
if ( ! empty( $this->args['queue__not_in'] ) ) {
|
363 |
+
$wheres[] = 'AND queue.contact_id IS NULL';
|
364 |
+
}
|
365 |
+
|
366 |
+
if ( $this->args['where'] ) {
|
367 |
+
$wheres[] = 'AND ( ' . implode( ' AND ', array_unique( $this->args['where'] ) ) . " )\n";
|
368 |
+
}
|
369 |
+
|
370 |
if ( $this->args['orderby'] && ! $this->args['return_count'] ) {
|
371 |
|
372 |
$ordering = isset( $this->args['order'][0] ) ? strtoupper( $this->args['order'][0] ) : 'ASC';
|
398 |
$where = 'WHERE 1=1 ' . implode( "\n ", array_unique( $wheres ) );
|
399 |
}
|
400 |
|
401 |
+
$groupby = '';
|
402 |
+
if ( ! empty( $this->args['groupby'] ) ) {
|
403 |
+
$groupby = 'GROUP BY ' . $this->args['groupby'] . '';
|
404 |
+
}
|
405 |
+
|
406 |
+
$having = '';
|
407 |
+
if ( ! empty( $this->args['having'] ) ) {
|
408 |
+
$having = 'HAVING ' . implode( ' AND ', array_unique( $this->args['having'] ) );
|
409 |
+
}
|
410 |
+
|
411 |
$order = '';
|
412 |
if ( ! empty( $orders ) ) {
|
413 |
$order = 'ORDER BY ' . implode( ', ', array_unique( $orders ) );
|
417 |
$sql .= ' ' . apply_filters( 'ig_es_subscriber_query_sql_from', $from, $this->args, $campaign_id ) . "\n";
|
418 |
$sql .= ' ' . apply_filters( 'ig_es_subscriber_query_sql_join', $join, $this->args, $campaign_id ) . "\n";
|
419 |
$sql .= ' ' . apply_filters( 'ig_es_subscriber_query_sql_where', $where, $this->args, $campaign_id ) . "\n";
|
420 |
+
$sql .= ' ' . apply_filters( 'ig_es_subscriber_query_sql_groupby', $groupby, $this->args, $campaign_id ) . "\n";
|
421 |
+
$sql .= ' ' . apply_filters( 'ig_es_subscriber_query_sql_having', $having, $this->args, $campaign_id ) . "\n";
|
422 |
$sql .= ' ' . apply_filters( 'ig_es_subscriber_query_sql_order', $order, $this->args, $campaign_id ) . "\n";
|
423 |
|
424 |
$sql = trim( $sql );
|
lite/includes/db/class-es-db-campaigns.php
CHANGED
@@ -800,6 +800,12 @@ class ES_DB_Campaigns extends ES_DB {
|
|
800 |
$status_placeholders = array_fill( 0, $status_count, '%d' );
|
801 |
$where .= $wpbd->prepare( ' AND status IN( ' . implode( ',', $status_placeholders ) . ' )', $args['status'] );
|
802 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
803 |
|
804 |
return $this->get_by_conditions( $where );
|
805 |
}
|
800 |
$status_placeholders = array_fill( 0, $status_count, '%d' );
|
801 |
$where .= $wpbd->prepare( ' AND status IN( ' . implode( ',', $status_placeholders ) . ' )', $args['status'] );
|
802 |
}
|
803 |
+
|
804 |
+
if ( ! empty( $args['campaigns_not_in'] ) ) {
|
805 |
+
$ids_count = count( $args['campaigns_not_in'] );
|
806 |
+
$ids_placeholders = array_fill( 0, $ids_count, '%d' );
|
807 |
+
$where .= $wpbd->prepare( ' AND id NOT IN( ' . implode( ',', $ids_placeholders ) . ' )', $args['campaigns_not_in'] );
|
808 |
+
}
|
809 |
|
810 |
return $this->get_by_conditions( $where );
|
811 |
}
|
lite/includes/pro-features.php
CHANGED
@@ -35,6 +35,7 @@ add_action( 'media_buttons', 'ig_es_upsell_add_attachment_feature' );
|
|
35 |
add_action( 'ig_es_subscriber_import_method_tab_heading', 'ig_es_upsell_existing_wp_user_import_feature' );
|
36 |
|
37 |
add_filter( 'ig_es_campaign_rules', 'ig_es_upsell_pro_campaign_rules' );
|
|
|
38 |
/**
|
39 |
* Promote SMTP mailer for free
|
40 |
*
|
@@ -199,7 +200,7 @@ function ig_es_add_upsale( $fields ) {
|
|
199 |
'disabled' => true,
|
200 |
/* translators: %s: Icegram Pricing page url with utm tracking */
|
201 |
'upgrade_title' => __( 'Track key insight behaviour with PRO', 'email-subscribers' ),
|
202 |
-
'upgrade_desc' => __( '
|
203 |
)
|
204 |
);
|
205 |
$general_fields = ig_es_array_insert_after( $general_fields, 'ig_es_track_email_opens', $track_link_click );
|
@@ -242,7 +243,7 @@ function ig_es_add_upsale( $fields ) {
|
|
242 |
'disabled' => true,
|
243 |
/* translators: %s: Icegram Pricing page url with utm tracking */
|
244 |
'upgrade_title' => __( 'Prevent spam attacks with PRO', 'email-subscribers' ),
|
245 |
-
'upgrade_desc' => __( '
|
246 |
);
|
247 |
|
248 |
$managed_blocked_domains['ig_es_enable_disposable_domains'] = array(
|
@@ -293,7 +294,7 @@ function ig_es_add_upsale( $fields ) {
|
|
293 |
'disabled' => true,
|
294 |
/* translators: %s: Icegram Pricing page url with utm tracking */
|
295 |
'upgrade_title' => __( 'Track subscribers IP addresses with PRO', 'email-subscribers' ),
|
296 |
-
'upgrade_desc' => __( 'Enable IP tracking
|
297 |
);
|
298 |
|
299 |
$fields['security_settings'] = array_merge( $fields['security_settings'], $track_ip_address );
|
@@ -665,6 +666,7 @@ function ig_es_workflows_integration_upsell () {
|
|
665 |
|
666 |
$plugin_integrations = array(
|
667 |
'WooCommerce',
|
|
|
668 |
'Contact Form 7',
|
669 |
'Easy Digital Downloads',
|
670 |
'Ninja Forms',
|
@@ -684,7 +686,7 @@ function ig_es_workflows_integration_upsell () {
|
|
684 |
<p class="text-sm leading-5 py-0.5 text-gray-500 group-hover:text-gray-900 group-focus:text-gray-900 transition ease-in-out duration-150">' . $plugin_name . '</p>
|
685 |
</div>', 'email-subscribers');
|
686 |
}
|
687 |
-
$upsell_message .= __('</div><br>
|
688 |
$upsell_info = array(
|
689 |
'upgrade_title' => __('Unlock plugin integrations with PRO', 'email-subscribers' ),
|
690 |
'pricing_url' => $pricing_url,
|
@@ -728,9 +730,9 @@ function ig_es_add_captcha_option( $form_data ) {
|
|
728 |
|
729 |
$pricing_url = ES_Common::get_utm_tracking_url( $utm_args );
|
730 |
$upsell_info = array(
|
731 |
-
'upgrade_title' => __('
|
732 |
'pricing_url' => $pricing_url,
|
733 |
-
'upsell_message' => __('
|
734 |
'cta_html' => false,
|
735 |
);
|
736 |
?>
|
@@ -783,19 +785,14 @@ function ig_es_additional_multilist_and_post_digest() {
|
|
783 |
<div class="flex-shrink-0 h-5 w-5 relative flex justify-center">
|
784 |
<span class="block h-1.5 w-1.5 mt-2.5 bg-gray-300 rounded-full group-hover:bg-gray-400 group-focus:bg-gray-400 transition ease-in-out duration-150"></span>
|
785 |
</div>
|
786 |
-
<p class="text-sm leading-5 py-0.5 text-gray-500 group-hover:text-gray-900 group-focus:text-gray-900 transition ease-in-out duration-150">
|
787 |
</div>
|
|
|
788 |
<div class="flex items-start space-x-3 -ml-8">
|
789 |
<div class="flex-shrink-0 h-5 w-5 relative flex justify-center">
|
790 |
<span class="block h-1.5 w-1.5 mt-2.5 bg-gray-300 rounded-full group-hover:bg-gray-400 group-focus:bg-gray-400 transition ease-in-out duration-150"></span>
|
791 |
</div>
|
792 |
-
<p class="text-sm leading-5 py-0.5 text-gray-500 group-hover:text-gray-900 group-focus:text-gray-900 transition ease-in-out duration-150">
|
793 |
-
</div>
|
794 |
-
<div class="flex items-start space-x-3 -ml-8">
|
795 |
-
<div class="flex-shrink-0 h-5 w-5 relative flex justify-center">
|
796 |
-
<span class="block h-1.5 w-1.5 mt-2.5 bg-gray-300 rounded-full group-hover:bg-gray-400 group-focus:bg-gray-400 transition ease-in-out duration-150"></span>
|
797 |
-
</div>
|
798 |
-
<p class="text-sm leading-5 py-0.5 text-gray-500 group-hover:text-gray-900 group-focus:text-gray-900 transition ease-in-out duration-150">Schedule your future campaigns now and feel the peace of mind with <span class="text-teal-800">Email Subscribers PRO</span>.
|
799 |
</p>
|
800 |
</div>' , 'email-subscribers'),
|
801 |
'cta_html' => false,
|
@@ -881,7 +878,7 @@ function ig_es_additional_options() {
|
|
881 |
$upsell_info = array(
|
882 |
'upgrade_title' => __('Reduce the possibility to land in spam with PRO', 'email-subscribers'),
|
883 |
'pricing_url' => $pricing_url,
|
884 |
-
'upsell_message' => __('
|
885 |
'cta_html' => false,
|
886 |
);
|
887 |
?>
|
@@ -995,9 +992,9 @@ function ig_es_view_additional_reports_data() {
|
|
995 |
|
996 |
$pricing_url = ES_Common::get_utm_tracking_url( $utm_args );
|
997 |
$upsell_info = array(
|
998 |
-
'upgrade_title' => __('
|
999 |
'pricing_url' => $pricing_url,
|
1000 |
-
'upsell_message' => __('
|
1001 |
'cta_html' => true,
|
1002 |
);
|
1003 |
?>
|
@@ -1547,44 +1544,44 @@ function ig_es_upsell_pro_campaign_rules( $campaign_rules = array() ) {
|
|
1547 |
|
1548 |
$pro_campaign_rules = array(
|
1549 |
'List' => array(
|
1550 |
-
|
1551 |
-
'name'
|
1552 |
'disabled' => true
|
1553 |
),
|
1554 |
),
|
1555 |
'Subscriber' => array(
|
1556 |
-
|
1557 |
-
'name'
|
1558 |
'disabled' => true
|
1559 |
),
|
1560 |
-
|
1561 |
-
'name'
|
1562 |
'disabled' => true
|
1563 |
),
|
1564 |
),
|
1565 |
'Campaign' => array(
|
1566 |
-
|
1567 |
-
'name'
|
1568 |
'disabled' => true
|
1569 |
),
|
1570 |
-
|
1571 |
-
'name'
|
1572 |
'disabled' => true
|
1573 |
),
|
1574 |
-
|
1575 |
-
'name'
|
1576 |
'disabled' => true
|
1577 |
),
|
1578 |
-
|
1579 |
-
'name'
|
1580 |
'disabled' => true
|
1581 |
),
|
1582 |
-
|
1583 |
-
'name'
|
1584 |
'disabled' => true
|
1585 |
),
|
1586 |
-
|
1587 |
-
'name'
|
1588 |
'disabled' => true
|
1589 |
),
|
1590 |
),
|
@@ -1593,5 +1590,28 @@ function ig_es_upsell_pro_campaign_rules( $campaign_rules = array() ) {
|
|
1593 |
$campaign_rules = array_merge_recursive( $campaign_rules, $pro_campaign_rules );
|
1594 |
}
|
1595 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1596 |
return $campaign_rules;
|
1597 |
}
|
35 |
add_action( 'ig_es_subscriber_import_method_tab_heading', 'ig_es_upsell_existing_wp_user_import_feature' );
|
36 |
|
37 |
add_filter( 'ig_es_campaign_rules', 'ig_es_upsell_pro_campaign_rules' );
|
38 |
+
add_action( 'ig_es_upsell_campaign_rules', 'ig_es_upsell_campaign_rules_message' );
|
39 |
/**
|
40 |
* Promote SMTP mailer for free
|
41 |
*
|
200 |
'disabled' => true,
|
201 |
/* translators: %s: Icegram Pricing page url with utm tracking */
|
202 |
'upgrade_title' => __( 'Track key insight behaviour with PRO', 'email-subscribers' ),
|
203 |
+
'upgrade_desc' => __( 'Enable Link Tracking, UTM tracking and understand customer behavior to plan your next campaign accordingly.', 'email-subscribers' )
|
204 |
)
|
205 |
);
|
206 |
$general_fields = ig_es_array_insert_after( $general_fields, 'ig_es_track_email_opens', $track_link_click );
|
243 |
'disabled' => true,
|
244 |
/* translators: %s: Icegram Pricing page url with utm tracking */
|
245 |
'upgrade_title' => __( 'Prevent spam attacks with PRO', 'email-subscribers' ),
|
246 |
+
'upgrade_desc' => __( 'Secure your list from known spam bot attacker domains, fake email addresses and bot signups.', 'email-subscribers' ),
|
247 |
);
|
248 |
|
249 |
$managed_blocked_domains['ig_es_enable_disposable_domains'] = array(
|
294 |
'disabled' => true,
|
295 |
/* translators: %s: Icegram Pricing page url with utm tracking */
|
296 |
'upgrade_title' => __( 'Track subscribers IP addresses with PRO', 'email-subscribers' ),
|
297 |
+
'upgrade_desc' => __( 'Enable IP tracking to store IP addresses and country name of subscribers. With this, you can target campaigns like Broadcasts, Sequences to subscribers from specific countries.', 'email-subscribers' ),
|
298 |
);
|
299 |
|
300 |
$fields['security_settings'] = array_merge( $fields['security_settings'], $track_ip_address );
|
666 |
|
667 |
$plugin_integrations = array(
|
668 |
'WooCommerce',
|
669 |
+
'YITH WooCommerce Wishlist',
|
670 |
'Contact Form 7',
|
671 |
'Easy Digital Downloads',
|
672 |
'Ninja Forms',
|
686 |
<p class="text-sm leading-5 py-0.5 text-gray-500 group-hover:text-gray-900 group-focus:text-gray-900 transition ease-in-out duration-150">' . $plugin_name . '</p>
|
687 |
</div>', 'email-subscribers');
|
688 |
}
|
689 |
+
$upsell_message .= __('</div><br>Avoid manual actions and make your workflow quick, simple and effortless by integrating popular WordPress plugins with Email Subscribers PRO.', 'email-subscribers');
|
690 |
$upsell_info = array(
|
691 |
'upgrade_title' => __('Unlock plugin integrations with PRO', 'email-subscribers' ),
|
692 |
'pricing_url' => $pricing_url,
|
730 |
|
731 |
$pricing_url = ES_Common::get_utm_tracking_url( $utm_args );
|
732 |
$upsell_info = array(
|
733 |
+
'upgrade_title' => __('Protect your subscription list now with PRO', 'email-subscribers'),
|
734 |
'pricing_url' => $pricing_url,
|
735 |
+
'upsell_message' => __('Get a gatekeeper like <b class="font-medium text-teal-800">Captcha</b> and prevent bot signups from your subscription form.', 'email-subscribers'),
|
736 |
'cta_html' => false,
|
737 |
);
|
738 |
?>
|
785 |
<div class="flex-shrink-0 h-5 w-5 relative flex justify-center">
|
786 |
<span class="block h-1.5 w-1.5 mt-2.5 bg-gray-300 rounded-full group-hover:bg-gray-400 group-focus:bg-gray-400 transition ease-in-out duration-150"></span>
|
787 |
</div>
|
788 |
+
<p class="text-sm leading-5 py-0.5 text-gray-500 group-hover:text-gray-900 group-focus:text-gray-900 transition ease-in-out duration-150">Want to send notification emails to more than one list? You can select multiple list with <b class="font-medium text-teal-800">Email Subscribers PRO.</b></p>
|
789 |
</div>
|
790 |
+
|
791 |
<div class="flex items-start space-x-3 -ml-8">
|
792 |
<div class="flex-shrink-0 h-5 w-5 relative flex justify-center">
|
793 |
<span class="block h-1.5 w-1.5 mt-2.5 bg-gray-300 rounded-full group-hover:bg-gray-400 group-focus:bg-gray-400 transition ease-in-out duration-150"></span>
|
794 |
</div>
|
795 |
+
<p class="text-sm leading-5 py-0.5 text-gray-500 group-hover:text-gray-900 group-focus:text-gray-900 transition ease-in-out duration-150">With post digest, improve post notification by sending one notification for multiple post, schedule it to what you feel is the best time and leave it on the plugin.
|
|
|
|
|
|
|
|
|
|
|
|
|
796 |
</p>
|
797 |
</div>' , 'email-subscribers'),
|
798 |
'cta_html' => false,
|
878 |
$upsell_info = array(
|
879 |
'upgrade_title' => __('Reduce the possibility to land in spam with PRO', 'email-subscribers'),
|
880 |
'pricing_url' => $pricing_url,
|
881 |
+
'upsell_message' => __('Build your brand, track your links with the help of Link tracking, UTM tracking and schedule your next broadcast accordingly. Also prevent your emails from landing into spam by checking its spam score'),
|
882 |
'cta_html' => false,
|
883 |
);
|
884 |
?>
|
992 |
|
993 |
$pricing_url = ES_Common::get_utm_tracking_url( $utm_args );
|
994 |
$upsell_info = array(
|
995 |
+
'upgrade_title' => __('Get campaign analytics with PRO', 'email-subscribers'),
|
996 |
'pricing_url' => $pricing_url,
|
997 |
+
'upsell_message' => __('Want to track some very useful statistics of your campaigns and improve your future campaign ? Upgrade to <b class="font-medium text-teal-800">Email Subscribers Pro</b> and measure the effectiveness of your campaigns. .', 'email-subscribers'),
|
998 |
'cta_html' => true,
|
999 |
);
|
1000 |
?>
|
1544 |
|
1545 |
$pro_campaign_rules = array(
|
1546 |
'List' => array(
|
1547 |
+
array(
|
1548 |
+
'name' => esc_html__( 'is not in List [PRO]', 'email-subscribers' ),
|
1549 |
'disabled' => true
|
1550 |
),
|
1551 |
),
|
1552 |
'Subscriber' => array(
|
1553 |
+
array(
|
1554 |
+
'name' => esc_html__( 'Email [PRO]', 'email-subscribers' ),
|
1555 |
'disabled' => true
|
1556 |
),
|
1557 |
+
array(
|
1558 |
+
'name' => esc_html__( 'Country [PRO]', 'email-subscribers' ),
|
1559 |
'disabled' => true
|
1560 |
),
|
1561 |
),
|
1562 |
'Campaign' => array(
|
1563 |
+
array(
|
1564 |
+
'name' => esc_html__( 'has received [PRO]', 'email-subscribers' ),
|
1565 |
'disabled' => true
|
1566 |
),
|
1567 |
+
array(
|
1568 |
+
'name' => esc_html__( 'has not received [PRO]', 'email-subscribers' ),
|
1569 |
'disabled' => true
|
1570 |
),
|
1571 |
+
array(
|
1572 |
+
'name' => esc_html__( 'has received and opened [PRO]', 'email-subscribers' ),
|
1573 |
'disabled' => true
|
1574 |
),
|
1575 |
+
array(
|
1576 |
+
'name' => esc_html__( 'has received but not opened [PRO]', 'email-subscribers' ),
|
1577 |
'disabled' => true
|
1578 |
),
|
1579 |
+
array(
|
1580 |
+
'name' => esc_html__( 'has received and clicked [PRO]', 'email-subscribers' ),
|
1581 |
'disabled' => true
|
1582 |
),
|
1583 |
+
array(
|
1584 |
+
'name' => esc_html__( 'has received and not clicked [PRO]', 'email-subscribers' ),
|
1585 |
'disabled' => true
|
1586 |
),
|
1587 |
),
|
1590 |
$campaign_rules = array_merge_recursive( $campaign_rules, $pro_campaign_rules );
|
1591 |
}
|
1592 |
|
1593 |
+
function ig_es_upsell_campaign_rules_message() {
|
1594 |
+
|
1595 |
+
if ( ES()->can_upsell_features( array( 'lite', 'starter', 'trial' ) ) ) {
|
1596 |
+
$utm_args = array(
|
1597 |
+
'utm_medium' => 'broadcast_campaign_rules'
|
1598 |
+
);
|
1599 |
+
|
1600 |
+
$pricing_url = ES_Common::get_utm_tracking_url( $utm_args );
|
1601 |
+
$upsell_info = array(
|
1602 |
+
'upgrade_title' => __('Send Broadcast to specific audience with PRO', 'email-subscribers'),
|
1603 |
+
'pricing_url' => $pricing_url,
|
1604 |
+
'upsell_message' => __('Now, you can select multiple lists and also filter your subscribers based on their country, emails and whether they have received, opened or clicked a specific campaign or not and then send Broadcast emails to them.', 'email-subscribers'),
|
1605 |
+
'cta_html' => false,
|
1606 |
+
);
|
1607 |
+
|
1608 |
+
?>
|
1609 |
+
<div class="block w-2/3 py-2 px-6 mt-2 ">
|
1610 |
+
<?php ES_Common::upsell_description_message_box( $upsell_info ); ?>
|
1611 |
+
</div>
|
1612 |
+
<?php
|
1613 |
+
}
|
1614 |
+
}
|
1615 |
+
|
1616 |
return $campaign_rules;
|
1617 |
}
|
lite/includes/upgrade/es-update-functions.php
CHANGED
@@ -1434,3 +1434,56 @@ function ig_es_update_469_db_version() {
|
|
1434 |
}
|
1435 |
|
1436 |
/* --------------------- ES 4.6.9(End)--------------------------- */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1434 |
}
|
1435 |
|
1436 |
/* --------------------- ES 4.6.9(End)--------------------------- */
|
1437 |
+
|
1438 |
+
/* --------------------- ES 4.6.13(Start)--------------------------- */
|
1439 |
+
|
1440 |
+
/**
|
1441 |
+
* Migrate sequence list settings into campaign rules
|
1442 |
+
*
|
1443 |
+
* @since 4.6.13
|
1444 |
+
*/
|
1445 |
+
function ig_es_migrate_4613_sequence_list_settings_into_campaign_rules() {
|
1446 |
+
|
1447 |
+
$args = array(
|
1448 |
+
'include_types' => array(
|
1449 |
+
'sequence_message'
|
1450 |
+
),
|
1451 |
+
);
|
1452 |
+
|
1453 |
+
$sequence_campaigns = ES()->campaigns_db->get_all_campaigns( $args );
|
1454 |
+
if ( ! empty( $sequence_campaigns ) ) {
|
1455 |
+
foreach ( $sequence_campaigns as $campaign ) {
|
1456 |
+
$campaign_id = $campaign['id'];
|
1457 |
+
$list_ids = $campaign['list_ids'];
|
1458 |
+
if ( ! empty( $campaign_id ) && ! empty( $list_ids ) ) {
|
1459 |
+
$list_ids = explode( ',', $list_ids );
|
1460 |
+
$campaign_meta = ! empty( $campaign['meta'] ) ? maybe_unserialize( $campaign['meta'] ) : array();
|
1461 |
+
if ( empty( $campaign_meta['list_conditions'] ) ) {
|
1462 |
+
$list_conditions = array();
|
1463 |
+
$list_conditions_data = array(
|
1464 |
+
'field' => '_lists__in',
|
1465 |
+
'operator' => 'is',
|
1466 |
+
'value' => array(),
|
1467 |
+
);
|
1468 |
+
foreach ( $list_ids as $index => $list_id ) {
|
1469 |
+
$list_conditions_data['value'][] = $list_id;
|
1470 |
+
}
|
1471 |
+
$list_conditions[][] = $list_conditions_data;
|
1472 |
+
$campaign_meta['list_conditions'] = $list_conditions;
|
1473 |
+
ES()->campaigns_db->update_campaign_meta( $campaign_id, $campaign_meta );
|
1474 |
+
}
|
1475 |
+
}
|
1476 |
+
}
|
1477 |
+
}
|
1478 |
+
}
|
1479 |
+
|
1480 |
+
/**
|
1481 |
+
* Update DB version
|
1482 |
+
*
|
1483 |
+
* @since 4.6.13
|
1484 |
+
*/
|
1485 |
+
function ig_es_update_4613_db_version() {
|
1486 |
+
ES_Install::update_db_version( '4.6.13' );
|
1487 |
+
}
|
1488 |
+
|
1489 |
+
/* --------------------- ES 4.6.13(End)--------------------------- */
|
lite/includes/workflows/actions/class-es-action-add-to-list.php
CHANGED
@@ -67,8 +67,11 @@ class ES_Action_Add_To_List extends ES_Workflow_Action {
|
|
67 |
if ( ! $data_type || ! $data_type->validate( $data_item ) ) {
|
68 |
continue;
|
69 |
}
|
70 |
-
|
|
|
71 |
$data = $data_type->get_data( $data_item );
|
|
|
|
|
72 |
$this->add_contact( $list_id, $data );
|
73 |
}
|
74 |
|
67 |
if ( ! $data_type || ! $data_type->validate( $data_item ) ) {
|
68 |
continue;
|
69 |
}
|
70 |
+
$data = array();
|
71 |
+
if ( is_callable( array( $data_type, 'get_data' ) ) ) {
|
72 |
$data = $data_type->get_data( $data_item );
|
73 |
+
}
|
74 |
+
if ( ! empty( $data['email'] ) ) {
|
75 |
$this->add_contact( $list_id, $data );
|
76 |
}
|
77 |
|
lite/includes/workflows/actions/class-es-action-delete-contact.php
CHANGED
@@ -47,7 +47,11 @@ class ES_Action_Delete_Contact extends ES_Workflow_Action {
|
|
47 |
continue;
|
48 |
}
|
49 |
|
50 |
-
$data
|
|
|
|
|
|
|
|
|
51 |
$email = ! empty( $data['email'] ) ? $data['email'] : '';
|
52 |
|
53 |
if ( ! empty( $email ) ) {
|
47 |
continue;
|
48 |
}
|
49 |
|
50 |
+
$data = array();
|
51 |
+
if ( is_callable( array( $data_type, 'get_data' ) ) ) {
|
52 |
+
$data = $data_type->get_data( $data_item );
|
53 |
+
}
|
54 |
+
|
55 |
$email = ! empty( $data['email'] ) ? $data['email'] : '';
|
56 |
|
57 |
if ( ! empty( $email ) ) {
|
lite/includes/workflows/actions/class-es-action-update-contact.php
CHANGED
@@ -45,7 +45,10 @@ class ES_Action_Update_Contact extends ES_Workflow_Action {
|
|
45 |
continue;
|
46 |
}
|
47 |
|
48 |
-
$data =
|
|
|
|
|
|
|
49 |
|
50 |
$user_id = ! empty( $data['wp_user_id'] ) ? $data['wp_user_id'] : 0;
|
51 |
|
45 |
continue;
|
46 |
}
|
47 |
|
48 |
+
$data = array();
|
49 |
+
if ( is_callable( array( $data_type, 'get_data' ) ) ) {
|
50 |
+
$data = $data_type->get_data( $data_item );
|
51 |
+
}
|
52 |
|
53 |
$user_id = ! empty( $data['wp_user_id'] ) ? $data['wp_user_id'] : 0;
|
54 |
|
lite/includes/workflows/admin/class-es-workflow-admin-ajax.php
CHANGED
@@ -47,7 +47,7 @@ class ES_Workflow_Admin_Ajax {
|
|
47 |
*/
|
48 |
public static function fill_trigger_fields() {
|
49 |
|
50 |
-
check_ajax_referer( 'ig-es-
|
51 |
|
52 |
$trigger_name = ig_es_get_request_data( 'trigger_name' );
|
53 |
$workflow_id = ig_es_get_request_data( 'workflow_id' );
|
@@ -88,7 +88,7 @@ class ES_Workflow_Admin_Ajax {
|
|
88 |
*/
|
89 |
public static function fill_action_fields() {
|
90 |
|
91 |
-
check_ajax_referer( 'ig-es-
|
92 |
|
93 |
$action_name = ig_es_get_request_data( 'action_name' );
|
94 |
$action_number = ig_es_get_request_data( 'action_number' );
|
@@ -127,7 +127,7 @@ class ES_Workflow_Admin_Ajax {
|
|
127 |
*/
|
128 |
public static function toggle_workflow_status() {
|
129 |
|
130 |
-
check_ajax_referer( 'ig-es-
|
131 |
|
132 |
$workflow = ES_Workflow_Factory::get( ig_es_get_request_data( 'workflow_id' ) );
|
133 |
$new_state = ig_es_get_request_data( 'new_state' );
|
@@ -145,9 +145,14 @@ class ES_Workflow_Admin_Ajax {
|
|
145 |
}
|
146 |
}
|
147 |
|
|
|
|
|
|
|
|
|
|
|
148 |
public static function modal_variable_info() {
|
149 |
|
150 |
-
check_ajax_referer( 'ig-es-
|
151 |
|
152 |
$variable = IG_ES_Variables::get_variable( ES_Clean::string( ig_es_get_request_data( 'variable' ) ) );
|
153 |
|
47 |
*/
|
48 |
public static function fill_trigger_fields() {
|
49 |
|
50 |
+
check_ajax_referer( 'ig-es-admin-ajax-nonce', 'security' );
|
51 |
|
52 |
$trigger_name = ig_es_get_request_data( 'trigger_name' );
|
53 |
$workflow_id = ig_es_get_request_data( 'workflow_id' );
|
88 |
*/
|
89 |
public static function fill_action_fields() {
|
90 |
|
91 |
+
check_ajax_referer( 'ig-es-admin-ajax-nonce', 'security' );
|
92 |
|
93 |
$action_name = ig_es_get_request_data( 'action_name' );
|
94 |
$action_number = ig_es_get_request_data( 'action_number' );
|
127 |
*/
|
128 |
public static function toggle_workflow_status() {
|
129 |
|
130 |
+
check_ajax_referer( 'ig-es-admin-ajax-nonce', 'security' );
|
131 |
|
132 |
$workflow = ES_Workflow_Factory::get( ig_es_get_request_data( 'workflow_id' ) );
|
133 |
$new_state = ig_es_get_request_data( 'new_state' );
|
145 |
}
|
146 |
}
|
147 |
|
148 |
+
/**
|
149 |
+
* Show vairable info modal
|
150 |
+
*
|
151 |
+
* @since 4.6.9
|
152 |
+
*/
|
153 |
public static function modal_variable_info() {
|
154 |
|
155 |
+
check_ajax_referer( 'ig-es-admin-ajax-nonce', 'security' );
|
156 |
|
157 |
$variable = IG_ES_Variables::get_variable( ES_Clean::string( ig_es_get_request_data( 'variable' ) ) );
|
158 |
|
lite/includes/workflows/admin/views/meta-box-trigger.php
CHANGED
@@ -46,6 +46,17 @@ if ( ! ES()->is_pro() ) {
|
|
46 |
'Order' => array(
|
47 |
'ig_es_wc_order_refunded' => __( 'WooCommerce Order Refunded', 'email-subscribers' ),
|
48 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
);
|
50 |
$trigger_list = array_merge_recursive( $trigger_list, $pro_trigger_list );
|
51 |
}
|
46 |
'Order' => array(
|
47 |
'ig_es_wc_order_refunded' => __( 'WooCommerce Order Refunded', 'email-subscribers' ),
|
48 |
),
|
49 |
+
'Wishlists' => array(
|
50 |
+
'ig_es_yith_wc_wishlist' => __( 'Wishlist Item On Sale (YITH Wishlists)', 'email-subscribers' ),
|
51 |
+
),
|
52 |
+
'Carts' => array(
|
53 |
+
'ig_es_wc_cart_abandoned' => __( 'Cart Abandoned', 'email-subscribers' ),
|
54 |
+
'ig_es_wc_cart_abandoned_registered_users' => __( 'Cart Abandoned - Registered Users Only', 'email-subscribers' ),
|
55 |
+
'ig_es_wc_cart_abandoned_guests_users' => __( 'Cart Abandoned - Guests Only', 'email-subscribers' ),
|
56 |
+
),
|
57 |
+
'User' => array(
|
58 |
+
'ig_es_user_role_changed' => __( 'User Role Changed', 'email-subscribers' ),
|
59 |
+
),
|
60 |
);
|
61 |
$trigger_list = array_merge_recursive( $trigger_list, $pro_trigger_list );
|
62 |
}
|
lite/languages/email-subscribers.pot
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
# This file is distributed under the same license as the Email Subscribers & Newsletters plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Email Subscribers & Newsletters 4.6.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/email-subscribers\n"
|
7 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"POT-Creation-Date: 2021-03-
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: email-subscribers\n"
|
@@ -71,120 +71,128 @@ msgstr ""
|
|
71 |
msgid "Connect to Icegram"
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
75 |
msgid "An error has occured. Please try again later."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
79 |
msgid "Broadcast saved as draft successfully."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
83 |
msgid "An error has occured while saving the broadcast. Please try again later."
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
87 |
msgid "Please add a broadcast subject before saving."
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
91 |
#: pro/pro-class-email-subscribers.php:480
|
92 |
msgid "Please add email body."
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
|
|
|
|
|
|
|
|
96 |
msgid "Please select a trigger before saving the workflow."
|
97 |
msgstr ""
|
98 |
|
99 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
100 |
msgid "Please add some actions before saving the workflow."
|
101 |
msgstr ""
|
102 |
|
103 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
104 |
msgid "Please select an action that this workflow should perform before saving the workflow."
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
108 |
msgid "Changing the trigger will remove existing actions. Do you want to proceed anyway?."
|
109 |
msgstr ""
|
110 |
|
111 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
112 |
msgid "Copied!"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
|
|
|
|
|
|
|
|
116 |
msgid "Please select the status for the importing contacts!"
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
120 |
msgid "Please select the email address column!"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
124 |
msgid "Preparing Data"
|
125 |
msgstr ""
|
126 |
|
127 |
#. translators: %s: Upload progress
|
128 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
129 |
msgid "Uploading...%s"
|
130 |
msgstr ""
|
131 |
|
132 |
#. translators: %s: Import progress
|
133 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
134 |
msgid "Importing contacts...%s"
|
135 |
msgstr ""
|
136 |
|
137 |
#. translators: %s: Import failed svg icon
|
138 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
139 |
msgid "Import failed! %s"
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
143 |
msgid "Please do not close this window until it completes..."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
147 |
msgid "Preparing Import..."
|
148 |
msgstr ""
|
149 |
|
150 |
#. translators: 1. Imported contacts count 2. Total contacts count 3. Failed to import count 4. Memory usage
|
151 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
152 |
msgid "Currently %1$s of %2$s imported with %3$s errors. %4$s memory usage"
|
153 |
msgstr ""
|
154 |
|
155 |
#. translators: %s: Time left in minutes
|
156 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
157 |
msgid "Estimate time left: %s minutes"
|
158 |
msgstr ""
|
159 |
|
160 |
#. translators: %s: Next attempt delaly time
|
161 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
162 |
msgid "Continues in %s seconds"
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
166 |
msgid "There was a problem during importing contacts. Please check the error logs for more information!"
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
170 |
msgid "Do you really like to import these contacts?"
|
171 |
msgstr ""
|
172 |
|
173 |
#. translators: %s: Process complete svg icon
|
174 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
175 |
msgid "Import complete! %s"
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
179 |
msgid "You are currently importing subscribers! If you leave the page all pending subscribers don't get imported!"
|
180 |
msgstr ""
|
181 |
|
182 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
183 |
#: lite/admin/partials/dashboard.php:57
|
184 |
msgid "Dashboard"
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
188 |
#: lite/admin/partials/dashboard.php:64
|
189 |
#: lite/includes/classes/class-es-contacts-table.php:219
|
190 |
#: lite/includes/pro-features.php:105
|
@@ -192,14 +200,14 @@ msgstr ""
|
|
192 |
msgid "Audience"
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
196 |
#: lite/includes/classes/class-es-forms-table.php:448
|
197 |
#: lite/includes/classes/class-es-lists-table.php:34
|
198 |
#: lite/includes/classes/class-es-lists-table.php:88
|
199 |
msgid "Lists"
|
200 |
msgstr ""
|
201 |
|
202 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
203 |
#: lite/includes/classes/class-es-form-widget.php:70
|
204 |
#: lite/includes/classes/class-es-forms-table.php:39
|
205 |
#: lite/includes/classes/class-es-forms-table.php:40
|
@@ -209,7 +217,7 @@ msgstr ""
|
|
209 |
msgid "Forms"
|
210 |
msgstr ""
|
211 |
|
212 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
213 |
#: lite/includes/classes/class-es-campaigns-table.php:109
|
214 |
#: lite/includes/classes/class-es-newsletters.php:245
|
215 |
#: lite/includes/classes/class-es-newsletters.php:251
|
@@ -219,11 +227,11 @@ msgstr ""
|
|
219 |
msgid "Campaigns"
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
223 |
msgid "Post Notifications"
|
224 |
msgstr ""
|
225 |
|
226 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
227 |
#: lite/includes/classes/class-es-campaigns-table.php:356
|
228 |
#: lite/includes/classes/class-es-newsletters.php:260
|
229 |
#: lite/includes/classes/class-es-reports-table.php:149
|
@@ -235,13 +243,13 @@ msgstr ""
|
|
235 |
msgid "Broadcast"
|
236 |
msgstr ""
|
237 |
|
238 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
239 |
#: lite/includes/classes/class-es-newsletters.php:419
|
240 |
#: lite/includes/classes/class-es-reports-table.php:472
|
241 |
msgid "Template Preview"
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
245 |
#: lite/includes/pro-features.php:110
|
246 |
#: lite/includes/workflows/admin/class-es-workflow-admin-edit.php:222
|
247 |
#: lite/includes/workflows/class-es-workflows-table.php:53
|
@@ -250,7 +258,7 @@ msgstr ""
|
|
250 |
msgid "Workflows"
|
251 |
msgstr ""
|
252 |
|
253 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
254 |
#: lite/admin/partials/dashboard.php:195
|
255 |
#: lite/includes/classes/class-es-campaign-report.php:17
|
256 |
#: lite/includes/classes/class-es-reports-table.php:17
|
@@ -264,268 +272,255 @@ msgstr ""
|
|
264 |
msgid "Reports"
|
265 |
msgstr ""
|
266 |
|
267 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
268 |
#: lite/admin/partials/dashboard.php:203
|
269 |
#: lite/includes/classes/class-es-admin-settings.php:119
|
270 |
msgid "Settings"
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
274 |
msgid "Go To Icegram"
|
275 |
msgstr ""
|
276 |
|
277 |
#. translators: 1. WordPress URL 2. Email Subscribers version 3. Icegram site URL
|
278 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
279 |
msgid "<span id=\"footer-thankyou\">Thank you for creating with <a href=\"%1$s\" target=\"_blank\">WordPress</a> | Email Subscribers <b>%2$s</b>. Developed by team <a href=\"%3$s\" target=\"_blank\">Icegram</a></span>"
|
280 |
msgstr ""
|
281 |
|
282 |
-
#: lite/admin/class-email-subscribers-admin.php:
|
283 |
msgid "Something went wrong"
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
287 |
-
msgid "next"
|
288 |
-
msgstr ""
|
289 |
-
|
290 |
-
#: lite/admin/class-ig-es-campaign-rules.php:107
|
291 |
-
msgid "prev"
|
292 |
-
msgstr ""
|
293 |
-
|
294 |
-
#: lite/admin/class-ig-es-campaign-rules.php:111
|
295 |
-
msgid "Do you really like to remove all conditions?"
|
296 |
-
msgstr ""
|
297 |
-
|
298 |
-
#: lite/admin/class-ig-es-campaign-rules.php:186
|
299 |
msgid "Recipients"
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
303 |
msgid "Add recipients"
|
304 |
msgstr ""
|
305 |
|
306 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
307 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
308 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
309 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
310 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
311 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
312 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
313 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
314 |
msgid "or"
|
315 |
msgstr ""
|
316 |
|
317 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
318 |
msgid "remove all"
|
319 |
msgstr ""
|
320 |
|
321 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
322 |
msgid "Campaign Rules"
|
323 |
msgstr ""
|
324 |
|
325 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
326 |
msgid "Save Rules"
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
330 |
msgid "Close panel"
|
331 |
msgstr ""
|
332 |
|
333 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
334 |
msgid "Total recipients"
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
338 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
339 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
340 |
msgid "and"
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
344 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
345 |
msgid "Add Condition"
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
349 |
msgid "remove condition"
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
353 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
354 |
msgid "Any campaign"
|
355 |
msgstr ""
|
356 |
|
357 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
358 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
359 |
msgid "no title"
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
363 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
364 |
-
msgid "
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
368 |
-
|
369 |
-
msgid "Any list"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
373 |
msgctxt "opening curly double quote"
|
374 |
msgid "“"
|
375 |
msgstr ""
|
376 |
|
377 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
378 |
msgctxt "closing curly double quote"
|
379 |
msgid "”"
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
383 |
msgid "is in List"
|
384 |
msgstr ""
|
385 |
|
386 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
387 |
#: lite/includes/classes/class-es-admin-settings.php:199
|
388 |
#: lite/includes/classes/class-es-campaign-report.php:179
|
389 |
#: lite/includes/classes/class-es-contacts-table.php:764
|
390 |
#: lite/includes/classes/class-es-contacts-table.php:1026
|
391 |
#: lite/includes/classes/class-es-export-subscribers.php:339
|
392 |
#: lite/includes/classes/class-es-forms-table.php:382
|
393 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
394 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
395 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
396 |
#: lite/includes/pro-features.php:857
|
397 |
#: lite/includes/pro-features.php:1388
|
398 |
#: lite/includes/workflows/actions/abstracts/class-ig-es-action-send-email-abstract.php:29
|
399 |
#: lite/public/partials/class-es-shortcode.php:151
|
400 |
#: pro/classes/class-es-pro-campaign-rules.php:35
|
401 |
-
#: pro/pro-class-email-subscribers.php:
|
402 |
#: pro/workflows/actions/class-es-action-send-email.php:29
|
403 |
msgid "Email"
|
404 |
msgstr ""
|
405 |
|
406 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
407 |
#: lite/includes/pro-features.php:1137
|
408 |
#: lite/includes/pro-features.php:1387
|
409 |
#: pro/classes/class-es-pro-campaign-rules.php:38
|
410 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
411 |
msgid "Country"
|
412 |
msgstr ""
|
413 |
|
414 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
415 |
#: pro/classes/class-es-pro-campaign-rules.php:43
|
416 |
msgid "has received"
|
417 |
msgstr ""
|
418 |
|
419 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
420 |
#: pro/classes/class-es-pro-campaign-rules.php:46
|
421 |
msgid "has not received"
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
425 |
#: pro/classes/class-es-pro-campaign-rules.php:49
|
426 |
msgid "has received and opened"
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
430 |
#: pro/classes/class-es-pro-campaign-rules.php:52
|
431 |
msgid "has received but not opened"
|
432 |
msgstr ""
|
433 |
|
434 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
435 |
#: pro/classes/class-es-pro-campaign-rules.php:55
|
436 |
msgid "has received and clicked"
|
437 |
msgstr ""
|
438 |
|
439 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
440 |
#: pro/classes/class-es-pro-campaign-rules.php:58
|
441 |
msgid "has received and not clicked"
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
445 |
msgid "Any of the Last 5 Campaigns"
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
449 |
msgid "Any Campaigns within the last 7 days"
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
453 |
msgid "Any Campaigns within the last 1 month"
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
457 |
msgid "Any Campaigns within the last 3 months"
|
458 |
msgstr ""
|
459 |
|
460 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
461 |
msgid "Any Campaigns within the last 6 months"
|
462 |
msgstr ""
|
463 |
|
464 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
465 |
msgid "Any Campaigns within the last 12 months"
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
469 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
|
|
470 |
#: lite/admin/class-ig-es-campaign-rules.php:699
|
471 |
-
#: lite/admin/class-ig-es-campaign-rules.php:718
|
472 |
msgid "is"
|
473 |
msgstr ""
|
474 |
|
475 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
476 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
|
|
477 |
#: lite/admin/class-ig-es-campaign-rules.php:700
|
478 |
-
#: lite/admin/class-ig-es-campaign-rules.php:719
|
479 |
msgid "is not"
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
483 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
484 |
msgid "contains"
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
488 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
489 |
msgid "contains not"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
493 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
494 |
msgid "begins with"
|
495 |
msgstr ""
|
496 |
|
497 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
498 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
499 |
msgid "ends with"
|
500 |
msgstr ""
|
501 |
|
|
|
502 |
#: lite/admin/class-ig-es-campaign-rules.php:665
|
503 |
-
#: lite/admin/class-ig-es-campaign-rules.php:684
|
504 |
msgid "is greater than"
|
505 |
msgstr ""
|
506 |
|
|
|
507 |
#: lite/admin/class-ig-es-campaign-rules.php:666
|
508 |
-
#: lite/admin/class-ig-es-campaign-rules.php:685
|
509 |
msgid "is smaller than"
|
510 |
msgstr ""
|
511 |
|
|
|
512 |
#: lite/admin/class-ig-es-campaign-rules.php:667
|
513 |
-
#: lite/admin/class-ig-es-campaign-rules.php:686
|
514 |
msgid "is greater or equal"
|
515 |
msgstr ""
|
516 |
|
|
|
517 |
#: lite/admin/class-ig-es-campaign-rules.php:668
|
518 |
-
#: lite/admin/class-ig-es-campaign-rules.php:687
|
519 |
msgid "is smaller or equal"
|
520 |
msgstr ""
|
521 |
|
522 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
523 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
524 |
msgid "match regex pattern"
|
525 |
msgstr ""
|
526 |
|
527 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
528 |
-
#: lite/admin/class-ig-es-campaign-rules.php:
|
529 |
msgid "does not match regex pattern"
|
530 |
msgstr ""
|
531 |
|
@@ -627,9 +622,9 @@ msgstr ""
|
|
627 |
#: lite/admin/partials/dashboard.php:134
|
628 |
#: lite/includes/pro-features.php:1140
|
629 |
#: lite/includes/pro-features.php:1178
|
630 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
631 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
632 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
633 |
#: pro/partials/es-dashboard.php:88
|
634 |
msgid "Opens"
|
635 |
msgstr ""
|
@@ -644,7 +639,7 @@ msgstr ""
|
|
644 |
|
645 |
#: lite/admin/partials/dashboard.php:158
|
646 |
#: lite/includes/pro-features.php:1076
|
647 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
648 |
msgid "Avg Click Rate"
|
649 |
msgstr ""
|
650 |
|
@@ -1068,7 +1063,7 @@ msgid "Unsubscribed"
|
|
1068 |
msgstr ""
|
1069 |
|
1070 |
#: lite/includes/class-es-common.php:212
|
1071 |
-
#: lite/includes/classes/class-es-post-notifications.php:
|
1072 |
msgid "Select Status"
|
1073 |
msgstr ""
|
1074 |
|
@@ -1184,7 +1179,7 @@ msgstr ""
|
|
1184 |
#: lite/includes/pro-features.php:1021
|
1185 |
#: lite/includes/pro-features.php:1068
|
1186 |
#: pro/classes/class-es-pro-reports-data.php:284
|
1187 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
1188 |
msgid "Sent"
|
1189 |
msgstr ""
|
1190 |
|
@@ -1209,7 +1204,7 @@ msgstr ""
|
|
1209 |
|
1210 |
#: lite/includes/class-es-common.php:1916
|
1211 |
#: lite/includes/classes/class-es-reports-table.php:513
|
1212 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
1213 |
msgid "All Status"
|
1214 |
msgstr ""
|
1215 |
|
@@ -1378,7 +1373,7 @@ msgstr ""
|
|
1378 |
#: lite/includes/classes/class-es-admin-settings.php:427
|
1379 |
#: lite/includes/classes/class-es-admin-settings.php:467
|
1380 |
#: lite/includes/classes/class-es-newsletters.php:266
|
1381 |
-
#: pro/pro-class-sequences.php:
|
1382 |
msgid "Content"
|
1383 |
msgstr ""
|
1384 |
|
@@ -1593,9 +1588,9 @@ msgstr ""
|
|
1593 |
#: lite/includes/classes/class-es-campaign-report.php:246
|
1594 |
#: lite/includes/classes/class-es-contacts-table.php:356
|
1595 |
#: lite/includes/pro-features.php:1052
|
1596 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
1597 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
1598 |
-
#: pro/pro-class-email-subscribers.php:
|
1599 |
msgid "Opened"
|
1600 |
msgstr ""
|
1601 |
|
@@ -1752,7 +1747,7 @@ msgid "Add New Contact"
|
|
1752 |
msgstr ""
|
1753 |
|
1754 |
#: lite/includes/classes/class-es-contacts-table.php:138
|
1755 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
1756 |
msgid "Import Contacts"
|
1757 |
msgstr ""
|
1758 |
|
@@ -1818,7 +1813,7 @@ msgstr ""
|
|
1818 |
#: lite/includes/classes/class-es-contacts-table.php:554
|
1819 |
#: lite/includes/classes/class-es-export-subscribers.php:157
|
1820 |
#: lite/includes/classes/class-es-handle-sync-wp-user.php:216
|
1821 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
1822 |
#: lite/includes/classes/class-es-lists-table.php:83
|
1823 |
#: lite/includes/classes/class-es-lists-table.php:276
|
1824 |
msgid "Audience "
|
@@ -1846,7 +1841,7 @@ msgstr ""
|
|
1846 |
|
1847 |
#: lite/includes/classes/class-es-contacts-table.php:776
|
1848 |
#: lite/includes/pro-features.php:863
|
1849 |
-
#: pro/pro-class-email-subscribers.php:
|
1850 |
msgid "Enter email"
|
1851 |
msgstr ""
|
1852 |
|
@@ -1861,14 +1856,14 @@ msgstr ""
|
|
1861 |
#: lite/includes/classes/class-es-contacts-table.php:832
|
1862 |
#: lite/includes/classes/class-es-forms-table.php:549
|
1863 |
#: lite/includes/classes/class-es-lists-table.php:321
|
1864 |
-
#: lite/includes/classes/class-es-post-notifications.php:
|
1865 |
msgid "Save Changes"
|
1866 |
msgstr ""
|
1867 |
|
1868 |
#: lite/includes/classes/class-es-contacts-table.php:839
|
1869 |
#: lite/includes/classes/class-es-forms-table.php:553
|
1870 |
#: lite/includes/classes/class-es-lists-table.php:325
|
1871 |
-
#: lite/includes/classes/class-es-post-notifications.php:
|
1872 |
msgid "Cancel"
|
1873 |
msgstr ""
|
1874 |
|
@@ -1949,8 +1944,6 @@ msgstr ""
|
|
1949 |
#: lite/includes/classes/class-es-contacts-table.php:1310
|
1950 |
#: lite/includes/classes/class-es-contacts-table.php:1331
|
1951 |
#: lite/includes/classes/class-es-post-notifications.php:51
|
1952 |
-
#: pro/pro-class-sequences.php:163
|
1953 |
-
#: pro/pro-class-sequences.php:237
|
1954 |
msgid "Please select list."
|
1955 |
msgstr ""
|
1956 |
|
@@ -2067,16 +2060,16 @@ msgid "Export the Subscribers"
|
|
2067 |
msgstr ""
|
2068 |
|
2069 |
#: lite/includes/classes/class-es-export-subscribers.php:337
|
2070 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2071 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2072 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2073 |
msgid "First Name"
|
2074 |
msgstr ""
|
2075 |
|
2076 |
#: lite/includes/classes/class-es-export-subscribers.php:338
|
2077 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2078 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2079 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2080 |
msgid "Last Name"
|
2081 |
msgstr ""
|
2082 |
|
@@ -2396,108 +2389,108 @@ msgstr ""
|
|
2396 |
msgid "Keep growing. Get everything you need to target, measure, re-target, behavior rules, personalize, split test, segment, automate and optimize."
|
2397 |
msgstr ""
|
2398 |
|
2399 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2400 |
msgid "Import CSV"
|
2401 |
msgstr ""
|
2402 |
|
2403 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2404 |
msgid "Select CSV file"
|
2405 |
msgstr ""
|
2406 |
|
2407 |
#. translators: %s: Max upload size
|
2408 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2409 |
msgid "File size should be less than %s"
|
2410 |
msgstr ""
|
2411 |
|
2412 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2413 |
msgid "Check CSV structure"
|
2414 |
msgstr ""
|
2415 |
|
2416 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2417 |
msgid "from here"
|
2418 |
msgstr ""
|
2419 |
|
2420 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2421 |
msgid "Drop your CSV here"
|
2422 |
msgstr ""
|
2423 |
|
2424 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2425 |
msgctxt "Uploader: Drop files here - or - Select Files"
|
2426 |
msgid "or"
|
2427 |
msgstr ""
|
2428 |
|
2429 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2430 |
msgid "Select File"
|
2431 |
msgstr ""
|
2432 |
|
2433 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2434 |
msgid "Select status"
|
2435 |
msgstr ""
|
2436 |
|
2437 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2438 |
#: lite/includes/classes/class-es-post-notifications.php:327
|
2439 |
msgid "Select list"
|
2440 |
msgstr ""
|
2441 |
|
2442 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2443 |
msgid "Import"
|
2444 |
msgstr ""
|
2445 |
|
2446 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2447 |
msgid "Nick Name"
|
2448 |
msgstr ""
|
2449 |
|
2450 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2451 |
msgid "Display Name"
|
2452 |
msgstr ""
|
2453 |
|
2454 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2455 |
msgid "(First Name) (Last Name)"
|
2456 |
msgstr ""
|
2457 |
|
2458 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2459 |
msgid "(Last Name) (First Name)"
|
2460 |
msgstr ""
|
2461 |
|
2462 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2463 |
msgid "Select columns for mapping"
|
2464 |
msgstr ""
|
2465 |
|
2466 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2467 |
msgid "Define which column represents which field"
|
2468 |
msgstr ""
|
2469 |
|
2470 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2471 |
msgid "Ignore column"
|
2472 |
msgstr ""
|
2473 |
|
2474 |
#. translators: %s: Hidden contacts count
|
2475 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2476 |
msgid "%s contacts are hidden"
|
2477 |
msgstr ""
|
2478 |
|
2479 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2480 |
msgid "Email address is invalid."
|
2481 |
msgstr ""
|
2482 |
|
2483 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2484 |
msgid "Email address is empty."
|
2485 |
msgstr ""
|
2486 |
|
2487 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2488 |
msgid "Duplicate email in the CSV file. Only the first record imported."
|
2489 |
msgstr ""
|
2490 |
|
2491 |
#. translators: 1. Total imported contacts 2. Total contacts
|
2492 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2493 |
msgid "%1$s of %2$s contacts imported"
|
2494 |
msgstr ""
|
2495 |
|
2496 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2497 |
msgid "The following contacts were skipped"
|
2498 |
msgstr ""
|
2499 |
|
2500 |
-
#: lite/includes/classes/class-es-import-subscribers.php:
|
2501 |
msgid "Reason"
|
2502 |
msgstr ""
|
2503 |
|
@@ -2806,23 +2799,23 @@ msgstr ""
|
|
2806 |
msgid "Content of the selected template will be sent out as post notification."
|
2807 |
msgstr ""
|
2808 |
|
2809 |
-
#: lite/includes/classes/class-es-post-notifications.php:
|
2810 |
msgid "Select post category"
|
2811 |
msgstr ""
|
2812 |
|
2813 |
-
#: lite/includes/classes/class-es-post-notifications.php:
|
2814 |
msgid "Notification will be sent out when any post from selected categories will be published."
|
2815 |
msgstr ""
|
2816 |
|
2817 |
-
#: lite/includes/classes/class-es-post-notifications.php:
|
2818 |
msgid "Select custom post type(s)"
|
2819 |
msgstr ""
|
2820 |
|
2821 |
-
#: lite/includes/classes/class-es-post-notifications.php:
|
2822 |
msgid "(Optional) Select custom post type for which you want to send notification."
|
2823 |
msgstr ""
|
2824 |
|
2825 |
-
#: lite/includes/classes/class-es-post-notifications.php:
|
2826 |
msgid "Save Campaign"
|
2827 |
msgstr ""
|
2828 |
|
@@ -3152,7 +3145,7 @@ msgid "User Roles"
|
|
3152 |
msgstr ""
|
3153 |
|
3154 |
#: lite/includes/pro-features.php:194
|
3155 |
-
#: pro/pro-class-email-subscribers.php:
|
3156 |
msgid "Track clicks"
|
3157 |
msgstr ""
|
3158 |
|
@@ -3208,7 +3201,7 @@ msgid "Show a captcha in subscription forms to protect from bot signups."
|
|
3208 |
msgstr ""
|
3209 |
|
3210 |
#: lite/includes/pro-features.php:287
|
3211 |
-
#: pro/pro-class-email-subscribers.php:
|
3212 |
msgid "Track IP address"
|
3213 |
msgstr ""
|
3214 |
|
@@ -3484,7 +3477,7 @@ msgid "Reduce the possibility to land in spam with PRO"
|
|
3484 |
msgstr ""
|
3485 |
|
3486 |
#: lite/includes/pro-features.php:890
|
3487 |
-
#: pro/pro-class-email-subscribers.php:
|
3488 |
msgid "Link tracking"
|
3489 |
msgstr ""
|
3490 |
|
@@ -3493,30 +3486,30 @@ msgid "Get spam score"
|
|
3493 |
msgstr ""
|
3494 |
|
3495 |
#: lite/includes/pro-features.php:939
|
3496 |
-
#: pro/pro-class-email-subscribers.php:
|
3497 |
msgid "Send options"
|
3498 |
msgstr ""
|
3499 |
|
3500 |
#: lite/includes/pro-features.php:942
|
3501 |
-
#: pro/pro-class-email-subscribers.php:
|
3502 |
msgid "Schedule for later"
|
3503 |
msgstr ""
|
3504 |
|
3505 |
#: lite/includes/pro-features.php:949
|
3506 |
#: lite/includes/workflows/admin/views/meta-box-timing.php:82
|
3507 |
#: lite/includes/workflows/fields/class-es-date.php:31
|
3508 |
-
#: pro/pro-class-email-subscribers.php:
|
3509 |
msgid "Date"
|
3510 |
msgstr ""
|
3511 |
|
3512 |
#: lite/includes/pro-features.php:958
|
3513 |
#: lite/includes/workflows/fields/class-es-time.php:64
|
3514 |
-
#: pro/pro-class-email-subscribers.php:
|
3515 |
msgid "Time"
|
3516 |
msgstr ""
|
3517 |
|
3518 |
#: lite/includes/pro-features.php:968
|
3519 |
-
#: pro/pro-class-email-subscribers.php:
|
3520 |
msgid "Local Time: "
|
3521 |
msgstr ""
|
3522 |
|
@@ -3551,7 +3544,7 @@ msgid "Test, Main "
|
|
3551 |
msgstr ""
|
3552 |
|
3553 |
#: lite/includes/pro-features.php:1036
|
3554 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3555 |
msgid "Date: "
|
3556 |
msgstr ""
|
3557 |
|
@@ -3560,12 +3553,12 @@ msgid "July 1, 2020 10:00 AM"
|
|
3560 |
msgstr ""
|
3561 |
|
3562 |
#: lite/includes/pro-features.php:1044
|
3563 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3564 |
msgid "Statistics"
|
3565 |
msgstr ""
|
3566 |
|
3567 |
#: lite/includes/pro-features.php:1060
|
3568 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3569 |
msgid "Avg Open Rate"
|
3570 |
msgstr ""
|
3571 |
|
@@ -3583,8 +3576,8 @@ msgstr ""
|
|
3583 |
|
3584 |
#: lite/includes/pro-features.php:1175
|
3585 |
#: lite/includes/pro-features.php:1390
|
3586 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3587 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3588 |
msgid "Mail Client"
|
3589 |
msgstr ""
|
3590 |
|
@@ -3605,17 +3598,17 @@ msgid "Link Activity"
|
|
3605 |
msgstr ""
|
3606 |
|
3607 |
#: lite/includes/pro-features.php:1240
|
3608 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3609 |
msgid "Link (URL)"
|
3610 |
msgstr ""
|
3611 |
|
3612 |
#: lite/includes/pro-features.php:1242
|
3613 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3614 |
msgid "Unique Clicks"
|
3615 |
msgstr ""
|
3616 |
|
3617 |
#: lite/includes/pro-features.php:1244
|
3618 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3619 |
msgid "Total Clicks"
|
3620 |
msgstr ""
|
3621 |
|
@@ -3632,37 +3625,37 @@ msgid "Last 10 Open Activity"
|
|
3632 |
msgstr ""
|
3633 |
|
3634 |
#: lite/includes/pro-features.php:1389
|
3635 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3636 |
msgid "Device"
|
3637 |
msgstr ""
|
3638 |
|
3639 |
#: lite/includes/pro-features.php:1391
|
3640 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3641 |
msgid "OS"
|
3642 |
msgstr ""
|
3643 |
|
3644 |
#: lite/includes/pro-features.php:1418
|
3645 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3646 |
msgid "Desktop"
|
3647 |
msgstr ""
|
3648 |
|
3649 |
#: lite/includes/pro-features.php:1427
|
3650 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3651 |
msgid "Tablet"
|
3652 |
msgstr ""
|
3653 |
|
3654 |
#: lite/includes/pro-features.php:1436
|
3655 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
3656 |
msgid "Mobile"
|
3657 |
msgstr ""
|
3658 |
|
3659 |
#: lite/includes/pro-features.php:1495
|
3660 |
-
#: pro/pro-class-email-subscribers.php:
|
3661 |
msgid "Add Attachments"
|
3662 |
msgstr ""
|
3663 |
|
3664 |
#: lite/includes/pro-features.php:1525
|
3665 |
-
#: pro/pro-class-email-subscribers.php:
|
3666 |
msgid "Import existing WordPress users"
|
3667 |
msgstr ""
|
3668 |
|
@@ -3743,7 +3736,7 @@ msgstr ""
|
|
3743 |
msgid "Update Contact"
|
3744 |
msgstr ""
|
3745 |
|
3746 |
-
#: lite/includes/workflows/admin/class-es-workflow-admin-ajax.php:
|
3747 |
msgid "Variable not found."
|
3748 |
msgstr ""
|
3749 |
|
@@ -4176,7 +4169,7 @@ msgid "Total Emails In Queue"
|
|
4176 |
msgstr ""
|
4177 |
|
4178 |
#: lite/public/partials/cron-message.php:43
|
4179 |
-
#: pro/pro-class-email-subscribers.php:
|
4180 |
msgid "Send Now"
|
4181 |
msgstr ""
|
4182 |
|
@@ -4221,68 +4214,68 @@ msgstr ""
|
|
4221 |
msgid "Recipient(s): "
|
4222 |
msgstr ""
|
4223 |
|
4224 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4225 |
msgid "Open and Click activity"
|
4226 |
msgstr ""
|
4227 |
|
4228 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4229 |
msgid "Country info"
|
4230 |
msgstr ""
|
4231 |
|
4232 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4233 |
msgid "Others"
|
4234 |
msgstr ""
|
4235 |
|
4236 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4237 |
msgid "No country data found."
|
4238 |
msgstr ""
|
4239 |
|
4240 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4241 |
msgid "Mail Client info"
|
4242 |
msgstr ""
|
4243 |
|
4244 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4245 |
msgid "No mail client data found."
|
4246 |
msgstr ""
|
4247 |
|
4248 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4249 |
msgid "Device info"
|
4250 |
msgstr ""
|
4251 |
|
4252 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4253 |
msgid "No device data found"
|
4254 |
msgstr ""
|
4255 |
|
4256 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4257 |
msgid "Browser info"
|
4258 |
msgstr ""
|
4259 |
|
4260 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4261 |
msgid "No browser data found"
|
4262 |
msgstr ""
|
4263 |
|
4264 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4265 |
msgid "OS info"
|
4266 |
msgstr ""
|
4267 |
|
4268 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4269 |
msgid "No OS data found"
|
4270 |
msgstr ""
|
4271 |
|
4272 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4273 |
msgid "Link activity"
|
4274 |
msgstr ""
|
4275 |
|
4276 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4277 |
#: pro/partials/es-dashboard.php:100
|
4278 |
msgid "Clicks"
|
4279 |
msgstr ""
|
4280 |
|
4281 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4282 |
msgid "Filter Report"
|
4283 |
msgstr ""
|
4284 |
|
4285 |
-
#: pro/classes/class-es-pro-reports-data.php:
|
4286 |
msgid "Not Opened"
|
4287 |
msgstr ""
|
4288 |
|
@@ -4450,82 +4443,86 @@ msgstr ""
|
|
4450 |
msgid "Please attach a file having size lower than %s."
|
4451 |
msgstr ""
|
4452 |
|
4453 |
-
#: pro/pro-class-email-subscribers.php:
|
|
|
|
|
|
|
|
|
4454 |
msgid "Clean My List"
|
4455 |
msgstr ""
|
4456 |
|
4457 |
-
#: pro/pro-class-email-subscribers.php:
|
4458 |
msgid "List cleanup is in progress..."
|
4459 |
msgstr ""
|
4460 |
|
4461 |
-
#: pro/pro-class-email-subscribers.php:
|
4462 |
msgid "List cleanup completed successfully."
|
4463 |
msgstr ""
|
4464 |
|
4465 |
-
#: pro/pro-class-email-subscribers.php:
|
4466 |
msgid "Email status"
|
4467 |
msgstr ""
|
4468 |
|
4469 |
-
#: pro/pro-class-email-subscribers.php:
|
4470 |
msgid "Last opened at"
|
4471 |
msgstr ""
|
4472 |
|
4473 |
-
#: pro/pro-class-email-subscribers.php:
|
4474 |
msgid "IP"
|
4475 |
msgstr ""
|
4476 |
|
4477 |
-
#: pro/pro-class-email-subscribers.php:
|
4478 |
msgid "Select page"
|
4479 |
msgstr ""
|
4480 |
|
4481 |
-
#: pro/pro-class-email-subscribers.php:
|
4482 |
msgid "Subscriber will be redirected to selected page once they click on unsubscribe link from the email."
|
4483 |
msgstr ""
|
4484 |
|
4485 |
-
#: pro/pro-class-email-subscribers.php:
|
4486 |
msgid "Subscriber will be redirected to selected page once they click on email confirmation link from the double opt-in (confirmation) email."
|
4487 |
msgstr ""
|
4488 |
|
4489 |
-
#: pro/pro-class-email-subscribers.php:
|
4490 |
msgid "Access Key ID"
|
4491 |
msgstr ""
|
4492 |
|
4493 |
-
#: pro/pro-class-email-subscribers.php:
|
4494 |
msgid "Secret Access Key"
|
4495 |
msgstr ""
|
4496 |
|
4497 |
-
#: pro/pro-class-email-subscribers.php:
|
4498 |
msgid "Closest Region"
|
4499 |
msgstr ""
|
4500 |
|
4501 |
-
#: pro/pro-class-email-subscribers.php:
|
4502 |
msgid ""
|
4503 |
"Please select the Amazon SES API region which is the closest to where your website is hosted.\n"
|
4504 |
"\t\t\t\t\tThis can help to decrease network latency between your site and Amazon SES, which will speed up email sending."
|
4505 |
msgstr ""
|
4506 |
|
4507 |
-
#: pro/pro-class-email-subscribers.php:
|
4508 |
msgid "Clicked"
|
4509 |
msgstr ""
|
4510 |
|
4511 |
#. translators: 1: Page 2: Duplicate action 3: Campaign id 4: Wp nonce
|
4512 |
-
#: pro/pro-class-email-subscribers.php:
|
4513 |
msgid "<a href=\"?page=%1$s&action=%2$s&list=%3$s&_wpnonce=%4$s\">Duplicate</a>"
|
4514 |
msgstr ""
|
4515 |
|
4516 |
-
#: pro/pro-class-email-subscribers.php:
|
4517 |
msgid "You are not allowed to duplicate campaign."
|
4518 |
msgstr ""
|
4519 |
|
4520 |
-
#: pro/pro-class-email-subscribers.php:
|
4521 |
msgid "Campaign duplicated !"
|
4522 |
msgstr ""
|
4523 |
|
4524 |
-
#: pro/pro-class-email-subscribers.php:
|
4525 |
msgid "Import WordPress users with following roles"
|
4526 |
msgstr ""
|
4527 |
|
4528 |
-
#: pro/pro-class-email-subscribers.php:
|
4529 |
msgid "Proceed"
|
4530 |
msgstr ""
|
4531 |
|
@@ -4614,67 +4611,64 @@ msgid "Add Sequence name"
|
|
4614 |
msgstr ""
|
4615 |
|
4616 |
#: pro/pro-class-sequences.php:100
|
4617 |
-
#: pro/pro-class-sequences.php:
|
4618 |
msgid "Save All"
|
4619 |
msgstr ""
|
4620 |
|
4621 |
-
#: pro/pro-class-sequences.php:
|
4622 |
msgid "+ Add Email"
|
4623 |
msgstr ""
|
4624 |
|
4625 |
-
#: pro/pro-class-sequences.php:
|
4626 |
-
#: pro/pro-class-sequences.php:
|
4627 |
msgid "Sequence should have atleast one email"
|
4628 |
msgstr ""
|
4629 |
|
4630 |
-
#: pro/pro-class-sequences.php:
|
4631 |
msgid "Sequence added successfully!"
|
4632 |
msgstr ""
|
4633 |
|
4634 |
-
#: pro/pro-class-sequences.php:
|
4635 |
msgid "Sorry, you are not allowed to add sequence."
|
4636 |
msgstr ""
|
4637 |
|
4638 |
-
#: pro/pro-class-sequences.php:
|
4639 |
msgid "Sequence updated successfully!"
|
4640 |
msgstr ""
|
4641 |
|
4642 |
-
#: pro/pro-class-sequences.php:
|
4643 |
msgid "Sorry, you are not allowed to edit sequence."
|
4644 |
msgstr ""
|
4645 |
|
4646 |
-
#: pro/pro-class-sequences.php:
|
4647 |
-
|
4648 |
-
msgstr ""
|
4649 |
-
|
4650 |
-
#: pro/pro-class-sequences.php:370
|
4651 |
-
#: pro/pro-class-sequences.php:450
|
4652 |
msgid " day"
|
4653 |
msgstr ""
|
4654 |
|
4655 |
-
#: pro/pro-class-sequences.php:
|
4656 |
-
#: pro/pro-class-sequences.php:
|
4657 |
msgid " days"
|
4658 |
msgstr ""
|
4659 |
|
4660 |
-
#: pro/pro-class-sequences.php:
|
|
|
4661 |
msgid "Welcome"
|
4662 |
msgstr ""
|
4663 |
|
4664 |
-
#: pro/pro-class-sequences.php:
|
4665 |
-
#: pro/pro-class-sequences.php:
|
4666 |
msgid "Delete this email"
|
4667 |
msgstr ""
|
4668 |
|
4669 |
-
#: pro/pro-class-sequences.php:
|
4670 |
msgid "Email Subject"
|
4671 |
msgstr ""
|
4672 |
|
4673 |
-
#: pro/pro-class-sequences.php:
|
4674 |
msgid "When to send"
|
4675 |
msgstr ""
|
4676 |
|
4677 |
-
#: pro/pro-class-sequences.php:
|
4678 |
msgid " after subscription"
|
4679 |
msgstr ""
|
4680 |
|
2 |
# This file is distributed under the same license as the Email Subscribers & Newsletters plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Email Subscribers & Newsletters 4.6.13\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/email-subscribers\n"
|
7 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"POT-Creation-Date: 2021-03-11T14:24:41+05:30\n"
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: email-subscribers\n"
|
71 |
msgid "Connect to Icegram"
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: lite/admin/class-email-subscribers-admin.php:166
|
75 |
msgid "An error has occured. Please try again later."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: lite/admin/class-email-subscribers-admin.php:167
|
79 |
msgid "Broadcast saved as draft successfully."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: lite/admin/class-email-subscribers-admin.php:168
|
83 |
msgid "An error has occured while saving the broadcast. Please try again later."
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: lite/admin/class-email-subscribers-admin.php:169
|
87 |
msgid "Please add a broadcast subject before saving."
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: lite/admin/class-email-subscribers-admin.php:170
|
91 |
#: pro/pro-class-email-subscribers.php:480
|
92 |
msgid "Please add email body."
|
93 |
msgstr ""
|
94 |
|
95 |
+
#: lite/admin/class-email-subscribers-admin.php:171
|
96 |
+
msgid "Do you really like to remove all conditions?"
|
97 |
+
msgstr ""
|
98 |
+
|
99 |
+
#: lite/admin/class-email-subscribers-admin.php:174
|
100 |
msgid "Please select a trigger before saving the workflow."
|
101 |
msgstr ""
|
102 |
|
103 |
+
#: lite/admin/class-email-subscribers-admin.php:175
|
104 |
msgid "Please add some actions before saving the workflow."
|
105 |
msgstr ""
|
106 |
|
107 |
+
#: lite/admin/class-email-subscribers-admin.php:176
|
108 |
msgid "Please select an action that this workflow should perform before saving the workflow."
|
109 |
msgstr ""
|
110 |
|
111 |
+
#: lite/admin/class-email-subscribers-admin.php:177
|
112 |
msgid "Changing the trigger will remove existing actions. Do you want to proceed anyway?."
|
113 |
msgstr ""
|
114 |
|
115 |
+
#: lite/admin/class-email-subscribers-admin.php:178
|
116 |
msgid "Copied!"
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: lite/admin/class-email-subscribers-admin.php:179
|
120 |
+
msgid "Are you sure?"
|
121 |
+
msgstr ""
|
122 |
+
|
123 |
+
#: lite/admin/class-email-subscribers-admin.php:182
|
124 |
msgid "Please select the status for the importing contacts!"
|
125 |
msgstr ""
|
126 |
|
127 |
+
#: lite/admin/class-email-subscribers-admin.php:183
|
128 |
msgid "Please select the email address column!"
|
129 |
msgstr ""
|
130 |
|
131 |
+
#: lite/admin/class-email-subscribers-admin.php:184
|
132 |
msgid "Preparing Data"
|
133 |
msgstr ""
|
134 |
|
135 |
#. translators: %s: Upload progress
|
136 |
+
#: lite/admin/class-email-subscribers-admin.php:186
|
137 |
msgid "Uploading...%s"
|
138 |
msgstr ""
|
139 |
|
140 |
#. translators: %s: Import progress
|
141 |
+
#: lite/admin/class-email-subscribers-admin.php:188
|
142 |
msgid "Importing contacts...%s"
|
143 |
msgstr ""
|
144 |
|
145 |
#. translators: %s: Import failed svg icon
|
146 |
+
#: lite/admin/class-email-subscribers-admin.php:190
|
147 |
msgid "Import failed! %s"
|
148 |
msgstr ""
|
149 |
|
150 |
+
#: lite/admin/class-email-subscribers-admin.php:191
|
151 |
msgid "Please do not close this window until it completes..."
|
152 |
msgstr ""
|
153 |
|
154 |
+
#: lite/admin/class-email-subscribers-admin.php:192
|
155 |
msgid "Preparing Import..."
|
156 |
msgstr ""
|
157 |
|
158 |
#. translators: 1. Imported contacts count 2. Total contacts count 3. Failed to import count 4. Memory usage
|
159 |
+
#: lite/admin/class-email-subscribers-admin.php:194
|
160 |
msgid "Currently %1$s of %2$s imported with %3$s errors. %4$s memory usage"
|
161 |
msgstr ""
|
162 |
|
163 |
#. translators: %s: Time left in minutes
|
164 |
+
#: lite/admin/class-email-subscribers-admin.php:196
|
165 |
msgid "Estimate time left: %s minutes"
|
166 |
msgstr ""
|
167 |
|
168 |
#. translators: %s: Next attempt delaly time
|
169 |
+
#: lite/admin/class-email-subscribers-admin.php:198
|
170 |
msgid "Continues in %s seconds"
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: lite/admin/class-email-subscribers-admin.php:199
|
174 |
msgid "There was a problem during importing contacts. Please check the error logs for more information!"
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: lite/admin/class-email-subscribers-admin.php:200
|
178 |
msgid "Do you really like to import these contacts?"
|
179 |
msgstr ""
|
180 |
|
181 |
#. translators: %s: Process complete svg icon
|
182 |
+
#: lite/admin/class-email-subscribers-admin.php:202
|
183 |
msgid "Import complete! %s"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: lite/admin/class-email-subscribers-admin.php:203
|
187 |
msgid "You are currently importing subscribers! If you leave the page all pending subscribers don't get imported!"
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: lite/admin/class-email-subscribers-admin.php:281
|
191 |
#: lite/admin/partials/dashboard.php:57
|
192 |
msgid "Dashboard"
|
193 |
msgstr ""
|
194 |
|
195 |
+
#: lite/admin/class-email-subscribers-admin.php:286
|
196 |
#: lite/admin/partials/dashboard.php:64
|
197 |
#: lite/includes/classes/class-es-contacts-table.php:219
|
198 |
#: lite/includes/pro-features.php:105
|
200 |
msgid "Audience"
|
201 |
msgstr ""
|
202 |
|
203 |
+
#: lite/admin/class-email-subscribers-admin.php:290
|
204 |
#: lite/includes/classes/class-es-forms-table.php:448
|
205 |
#: lite/includes/classes/class-es-lists-table.php:34
|
206 |
#: lite/includes/classes/class-es-lists-table.php:88
|
207 |
msgid "Lists"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: lite/admin/class-email-subscribers-admin.php:296
|
211 |
#: lite/includes/classes/class-es-form-widget.php:70
|
212 |
#: lite/includes/classes/class-es-forms-table.php:39
|
213 |
#: lite/includes/classes/class-es-forms-table.php:40
|
217 |
msgid "Forms"
|
218 |
msgstr ""
|
219 |
|
220 |
+
#: lite/admin/class-email-subscribers-admin.php:302
|
221 |
#: lite/includes/classes/class-es-campaigns-table.php:109
|
222 |
#: lite/includes/classes/class-es-newsletters.php:245
|
223 |
#: lite/includes/classes/class-es-newsletters.php:251
|
227 |
msgid "Campaigns"
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: lite/admin/class-email-subscribers-admin.php:306
|
231 |
msgid "Post Notifications"
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: lite/admin/class-email-subscribers-admin.php:308
|
235 |
#: lite/includes/classes/class-es-campaigns-table.php:356
|
236 |
#: lite/includes/classes/class-es-newsletters.php:260
|
237 |
#: lite/includes/classes/class-es-reports-table.php:149
|
243 |
msgid "Broadcast"
|
244 |
msgstr ""
|
245 |
|
246 |
+
#: lite/admin/class-email-subscribers-admin.php:309
|
247 |
#: lite/includes/classes/class-es-newsletters.php:419
|
248 |
#: lite/includes/classes/class-es-reports-table.php:472
|
249 |
msgid "Template Preview"
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: lite/admin/class-email-subscribers-admin.php:316
|
253 |
#: lite/includes/pro-features.php:110
|
254 |
#: lite/includes/workflows/admin/class-es-workflow-admin-edit.php:222
|
255 |
#: lite/includes/workflows/class-es-workflows-table.php:53
|
258 |
msgid "Workflows"
|
259 |
msgstr ""
|
260 |
|
261 |
+
#: lite/admin/class-email-subscribers-admin.php:325
|
262 |
#: lite/admin/partials/dashboard.php:195
|
263 |
#: lite/includes/classes/class-es-campaign-report.php:17
|
264 |
#: lite/includes/classes/class-es-reports-table.php:17
|
272 |
msgid "Reports"
|
273 |
msgstr ""
|
274 |
|
275 |
+
#: lite/admin/class-email-subscribers-admin.php:329
|
276 |
#: lite/admin/partials/dashboard.php:203
|
277 |
#: lite/includes/classes/class-es-admin-settings.php:119
|
278 |
msgid "Settings"
|
279 |
msgstr ""
|
280 |
|
281 |
+
#: lite/admin/class-email-subscribers-admin.php:334
|
282 |
msgid "Go To Icegram"
|
283 |
msgstr ""
|
284 |
|
285 |
#. translators: 1. WordPress URL 2. Email Subscribers version 3. Icegram site URL
|
286 |
+
#: lite/admin/class-email-subscribers-admin.php:879
|
287 |
msgid "<span id=\"footer-thankyou\">Thank you for creating with <a href=\"%1$s\" target=\"_blank\">WordPress</a> | Email Subscribers <b>%2$s</b>. Developed by team <a href=\"%3$s\" target=\"_blank\">Icegram</a></span>"
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: lite/admin/class-email-subscribers-admin.php:907
|
291 |
msgid "Something went wrong"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: lite/admin/class-ig-es-campaign-rules.php:171
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
msgid "Recipients"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: lite/admin/class-ig-es-campaign-rules.php:181
|
299 |
msgid "Add recipients"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: lite/admin/class-ig-es-campaign-rules.php:184
|
303 |
+
#: lite/admin/class-ig-es-campaign-rules.php:257
|
304 |
+
#: lite/admin/class-ig-es-campaign-rules.php:259
|
305 |
+
#: lite/admin/class-ig-es-campaign-rules.php:428
|
306 |
+
#: lite/admin/class-ig-es-campaign-rules.php:512
|
307 |
+
#: lite/admin/class-ig-es-campaign-rules.php:517
|
308 |
+
#: lite/admin/class-ig-es-campaign-rules.php:523
|
309 |
+
#: lite/admin/class-ig-es-campaign-rules.php:557
|
310 |
msgid "or"
|
311 |
msgstr ""
|
312 |
|
313 |
+
#: lite/admin/class-ig-es-campaign-rules.php:186
|
314 |
msgid "remove all"
|
315 |
msgstr ""
|
316 |
|
317 |
+
#: lite/admin/class-ig-es-campaign-rules.php:206
|
318 |
msgid "Campaign Rules"
|
319 |
msgstr ""
|
320 |
|
321 |
+
#: lite/admin/class-ig-es-campaign-rules.php:211
|
322 |
msgid "Save Rules"
|
323 |
msgstr ""
|
324 |
|
325 |
+
#: lite/admin/class-ig-es-campaign-rules.php:213
|
326 |
msgid "Close panel"
|
327 |
msgstr ""
|
328 |
|
329 |
+
#: lite/admin/class-ig-es-campaign-rules.php:227
|
330 |
msgid "Total recipients"
|
331 |
msgstr ""
|
332 |
|
333 |
+
#: lite/admin/class-ig-es-campaign-rules.php:248
|
334 |
+
#: lite/admin/class-ig-es-campaign-rules.php:417
|
335 |
+
#: lite/admin/class-ig-es-campaign-rules.php:554
|
336 |
msgid "and"
|
337 |
msgstr ""
|
338 |
|
339 |
+
#: lite/admin/class-ig-es-campaign-rules.php:257
|
340 |
+
#: lite/admin/class-ig-es-campaign-rules.php:382
|
341 |
msgid "Add Condition"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: lite/admin/class-ig-es-campaign-rules.php:260
|
345 |
msgid "remove condition"
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: lite/admin/class-ig-es-campaign-rules.php:342
|
349 |
+
#: lite/admin/class-ig-es-campaign-rules.php:715
|
350 |
msgid "Any campaign"
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: lite/admin/class-ig-es-campaign-rules.php:348
|
354 |
+
#: lite/admin/class-ig-es-campaign-rules.php:366
|
355 |
msgid "no title"
|
356 |
msgstr ""
|
357 |
|
358 |
+
#: lite/admin/class-ig-es-campaign-rules.php:361
|
359 |
+
#: lite/admin/class-ig-es-campaign-rules.php:741
|
360 |
+
msgid "Any list"
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: lite/admin/class-ig-es-campaign-rules.php:370
|
364 |
+
msgid "No campaigns available"
|
|
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: lite/admin/class-ig-es-campaign-rules.php:503
|
368 |
msgctxt "opening curly double quote"
|
369 |
msgid "“"
|
370 |
msgstr ""
|
371 |
|
372 |
+
#: lite/admin/class-ig-es-campaign-rules.php:504
|
373 |
msgctxt "closing curly double quote"
|
374 |
msgid "”"
|
375 |
msgstr ""
|
376 |
|
377 |
+
#: lite/admin/class-ig-es-campaign-rules.php:575
|
378 |
msgid "is in List"
|
379 |
msgstr ""
|
380 |
|
381 |
+
#: lite/admin/class-ig-es-campaign-rules.php:592
|
382 |
#: lite/includes/classes/class-es-admin-settings.php:199
|
383 |
#: lite/includes/classes/class-es-campaign-report.php:179
|
384 |
#: lite/includes/classes/class-es-contacts-table.php:764
|
385 |
#: lite/includes/classes/class-es-contacts-table.php:1026
|
386 |
#: lite/includes/classes/class-es-export-subscribers.php:339
|
387 |
#: lite/includes/classes/class-es-forms-table.php:382
|
388 |
+
#: lite/includes/classes/class-es-import-subscribers.php:399
|
389 |
+
#: lite/includes/classes/class-es-import-subscribers.php:536
|
390 |
+
#: lite/includes/classes/class-es-import-subscribers.php:859
|
391 |
#: lite/includes/pro-features.php:857
|
392 |
#: lite/includes/pro-features.php:1388
|
393 |
#: lite/includes/workflows/actions/abstracts/class-ig-es-action-send-email-abstract.php:29
|
394 |
#: lite/public/partials/class-es-shortcode.php:151
|
395 |
#: pro/classes/class-es-pro-campaign-rules.php:35
|
396 |
+
#: pro/pro-class-email-subscribers.php:831
|
397 |
#: pro/workflows/actions/class-es-action-send-email.php:29
|
398 |
msgid "Email"
|
399 |
msgstr ""
|
400 |
|
401 |
+
#: lite/admin/class-ig-es-campaign-rules.php:593
|
402 |
#: lite/includes/pro-features.php:1137
|
403 |
#: lite/includes/pro-features.php:1387
|
404 |
#: pro/classes/class-es-pro-campaign-rules.php:38
|
405 |
+
#: pro/classes/class-es-pro-reports-data.php:413
|
406 |
msgid "Country"
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: lite/admin/class-ig-es-campaign-rules.php:606
|
410 |
#: pro/classes/class-es-pro-campaign-rules.php:43
|
411 |
msgid "has received"
|
412 |
msgstr ""
|
413 |
|
414 |
+
#: lite/admin/class-ig-es-campaign-rules.php:607
|
415 |
#: pro/classes/class-es-pro-campaign-rules.php:46
|
416 |
msgid "has not received"
|
417 |
msgstr ""
|
418 |
|
419 |
+
#: lite/admin/class-ig-es-campaign-rules.php:608
|
420 |
#: pro/classes/class-es-pro-campaign-rules.php:49
|
421 |
msgid "has received and opened"
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: lite/admin/class-ig-es-campaign-rules.php:609
|
425 |
#: pro/classes/class-es-pro-campaign-rules.php:52
|
426 |
msgid "has received but not opened"
|
427 |
msgstr ""
|
428 |
|
429 |
+
#: lite/admin/class-ig-es-campaign-rules.php:610
|
430 |
#: pro/classes/class-es-pro-campaign-rules.php:55
|
431 |
msgid "has received and clicked"
|
432 |
msgstr ""
|
433 |
|
434 |
+
#: lite/admin/class-ig-es-campaign-rules.php:611
|
435 |
#: pro/classes/class-es-pro-campaign-rules.php:58
|
436 |
msgid "has received and not clicked"
|
437 |
msgstr ""
|
438 |
|
439 |
+
#: lite/admin/class-ig-es-campaign-rules.php:623
|
440 |
msgid "Any of the Last 5 Campaigns"
|
441 |
msgstr ""
|
442 |
|
443 |
+
#: lite/admin/class-ig-es-campaign-rules.php:624
|
444 |
msgid "Any Campaigns within the last 7 days"
|
445 |
msgstr ""
|
446 |
|
447 |
+
#: lite/admin/class-ig-es-campaign-rules.php:625
|
448 |
msgid "Any Campaigns within the last 1 month"
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: lite/admin/class-ig-es-campaign-rules.php:626
|
452 |
msgid "Any Campaigns within the last 3 months"
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: lite/admin/class-ig-es-campaign-rules.php:627
|
456 |
msgid "Any Campaigns within the last 6 months"
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: lite/admin/class-ig-es-campaign-rules.php:628
|
460 |
msgid "Any Campaigns within the last 12 months"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: lite/admin/class-ig-es-campaign-rules.php:640
|
464 |
+
#: lite/admin/class-ig-es-campaign-rules.php:663
|
465 |
+
#: lite/admin/class-ig-es-campaign-rules.php:680
|
466 |
#: lite/admin/class-ig-es-campaign-rules.php:699
|
|
|
467 |
msgid "is"
|
468 |
msgstr ""
|
469 |
|
470 |
+
#: lite/admin/class-ig-es-campaign-rules.php:641
|
471 |
+
#: lite/admin/class-ig-es-campaign-rules.php:664
|
472 |
+
#: lite/admin/class-ig-es-campaign-rules.php:681
|
473 |
#: lite/admin/class-ig-es-campaign-rules.php:700
|
|
|
474 |
msgid "is not"
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: lite/admin/class-ig-es-campaign-rules.php:642
|
478 |
+
#: lite/admin/class-ig-es-campaign-rules.php:682
|
479 |
msgid "contains"
|
480 |
msgstr ""
|
481 |
|
482 |
+
#: lite/admin/class-ig-es-campaign-rules.php:643
|
483 |
+
#: lite/admin/class-ig-es-campaign-rules.php:683
|
484 |
msgid "contains not"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: lite/admin/class-ig-es-campaign-rules.php:644
|
488 |
+
#: lite/admin/class-ig-es-campaign-rules.php:684
|
489 |
msgid "begins with"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: lite/admin/class-ig-es-campaign-rules.php:645
|
493 |
+
#: lite/admin/class-ig-es-campaign-rules.php:685
|
494 |
msgid "ends with"
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: lite/admin/class-ig-es-campaign-rules.php:646
|
498 |
#: lite/admin/class-ig-es-campaign-rules.php:665
|
|
|
499 |
msgid "is greater than"
|
500 |
msgstr ""
|
501 |
|
502 |
+
#: lite/admin/class-ig-es-campaign-rules.php:647
|
503 |
#: lite/admin/class-ig-es-campaign-rules.php:666
|
|
|
504 |
msgid "is smaller than"
|
505 |
msgstr ""
|
506 |
|
507 |
+
#: lite/admin/class-ig-es-campaign-rules.php:648
|
508 |
#: lite/admin/class-ig-es-campaign-rules.php:667
|
|
|
509 |
msgid "is greater or equal"
|
510 |
msgstr ""
|
511 |
|
512 |
+
#: lite/admin/class-ig-es-campaign-rules.php:649
|
513 |
#: lite/admin/class-ig-es-campaign-rules.php:668
|
|
|
514 |
msgid "is smaller or equal"
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: lite/admin/class-ig-es-campaign-rules.php:650
|
518 |
+
#: lite/admin/class-ig-es-campaign-rules.php:686
|
519 |
msgid "match regex pattern"
|
520 |
msgstr ""
|
521 |
|
522 |
+
#: lite/admin/class-ig-es-campaign-rules.php:651
|
523 |
+
#: lite/admin/class-ig-es-campaign-rules.php:687
|
524 |
msgid "does not match regex pattern"
|
525 |
msgstr ""
|
526 |
|
622 |
#: lite/admin/partials/dashboard.php:134
|
623 |
#: lite/includes/pro-features.php:1140
|
624 |
#: lite/includes/pro-features.php:1178
|
625 |
+
#: pro/classes/class-es-pro-reports-data.php:416
|
626 |
+
#: pro/classes/class-es-pro-reports-data.php:559
|
627 |
+
#: pro/classes/class-es-pro-reports-data.php:743
|
628 |
#: pro/partials/es-dashboard.php:88
|
629 |
msgid "Opens"
|
630 |
msgstr ""
|
639 |
|
640 |
#: lite/admin/partials/dashboard.php:158
|
641 |
#: lite/includes/pro-features.php:1076
|
642 |
+
#: pro/classes/class-es-pro-reports-data.php:379
|
643 |
msgid "Avg Click Rate"
|
644 |
msgstr ""
|
645 |
|
1063 |
msgstr ""
|
1064 |
|
1065 |
#: lite/includes/class-es-common.php:212
|
1066 |
+
#: lite/includes/classes/class-es-post-notifications.php:372
|
1067 |
msgid "Select Status"
|
1068 |
msgstr ""
|
1069 |
|
1179 |
#: lite/includes/pro-features.php:1021
|
1180 |
#: lite/includes/pro-features.php:1068
|
1181 |
#: pro/classes/class-es-pro-reports-data.php:284
|
1182 |
+
#: pro/classes/class-es-pro-reports-data.php:371
|
1183 |
msgid "Sent"
|
1184 |
msgstr ""
|
1185 |
|
1204 |
|
1205 |
#: lite/includes/class-es-common.php:1916
|
1206 |
#: lite/includes/classes/class-es-reports-table.php:513
|
1207 |
+
#: pro/classes/class-es-pro-reports-data.php:891
|
1208 |
msgid "All Status"
|
1209 |
msgstr ""
|
1210 |
|
1373 |
#: lite/includes/classes/class-es-admin-settings.php:427
|
1374 |
#: lite/includes/classes/class-es-admin-settings.php:467
|
1375 |
#: lite/includes/classes/class-es-newsletters.php:266
|
1376 |
+
#: pro/pro-class-sequences.php:397
|
1377 |
msgid "Content"
|
1378 |
msgstr ""
|
1379 |
|
1588 |
#: lite/includes/classes/class-es-campaign-report.php:246
|
1589 |
#: lite/includes/classes/class-es-contacts-table.php:356
|
1590 |
#: lite/includes/pro-features.php:1052
|
1591 |
+
#: pro/classes/class-es-pro-reports-data.php:355
|
1592 |
+
#: pro/classes/class-es-pro-reports-data.php:888
|
1593 |
+
#: pro/pro-class-email-subscribers.php:1631
|
1594 |
msgid "Opened"
|
1595 |
msgstr ""
|
1596 |
|
1747 |
msgstr ""
|
1748 |
|
1749 |
#: lite/includes/classes/class-es-contacts-table.php:138
|
1750 |
+
#: lite/includes/classes/class-es-import-subscribers.php:236
|
1751 |
msgid "Import Contacts"
|
1752 |
msgstr ""
|
1753 |
|
1813 |
#: lite/includes/classes/class-es-contacts-table.php:554
|
1814 |
#: lite/includes/classes/class-es-export-subscribers.php:157
|
1815 |
#: lite/includes/classes/class-es-handle-sync-wp-user.php:216
|
1816 |
+
#: lite/includes/classes/class-es-import-subscribers.php:230
|
1817 |
#: lite/includes/classes/class-es-lists-table.php:83
|
1818 |
#: lite/includes/classes/class-es-lists-table.php:276
|
1819 |
msgid "Audience "
|
1841 |
|
1842 |
#: lite/includes/classes/class-es-contacts-table.php:776
|
1843 |
#: lite/includes/pro-features.php:863
|
1844 |
+
#: pro/pro-class-email-subscribers.php:835
|
1845 |
msgid "Enter email"
|
1846 |
msgstr ""
|
1847 |
|
1856 |
#: lite/includes/classes/class-es-contacts-table.php:832
|
1857 |
#: lite/includes/classes/class-es-forms-table.php:549
|
1858 |
#: lite/includes/classes/class-es-lists-table.php:321
|
1859 |
+
#: lite/includes/classes/class-es-post-notifications.php:429
|
1860 |
msgid "Save Changes"
|
1861 |
msgstr ""
|
1862 |
|
1863 |
#: lite/includes/classes/class-es-contacts-table.php:839
|
1864 |
#: lite/includes/classes/class-es-forms-table.php:553
|
1865 |
#: lite/includes/classes/class-es-lists-table.php:325
|
1866 |
+
#: lite/includes/classes/class-es-post-notifications.php:432
|
1867 |
msgid "Cancel"
|
1868 |
msgstr ""
|
1869 |
|
1944 |
#: lite/includes/classes/class-es-contacts-table.php:1310
|
1945 |
#: lite/includes/classes/class-es-contacts-table.php:1331
|
1946 |
#: lite/includes/classes/class-es-post-notifications.php:51
|
|
|
|
|
1947 |
msgid "Please select list."
|
1948 |
msgstr ""
|
1949 |
|
2060 |
msgstr ""
|
2061 |
|
2062 |
#: lite/includes/classes/class-es-export-subscribers.php:337
|
2063 |
+
#: lite/includes/classes/class-es-import-subscribers.php:400
|
2064 |
+
#: lite/includes/classes/class-es-import-subscribers.php:537
|
2065 |
+
#: lite/includes/classes/class-es-import-subscribers.php:851
|
2066 |
msgid "First Name"
|
2067 |
msgstr ""
|
2068 |
|
2069 |
#: lite/includes/classes/class-es-export-subscribers.php:338
|
2070 |
+
#: lite/includes/classes/class-es-import-subscribers.php:401
|
2071 |
+
#: lite/includes/classes/class-es-import-subscribers.php:538
|
2072 |
+
#: lite/includes/classes/class-es-import-subscribers.php:856
|
2073 |
msgid "Last Name"
|
2074 |
msgstr ""
|
2075 |
|
2389 |
msgid "Keep growing. Get everything you need to target, measure, re-target, behavior rules, personalize, split test, segment, automate and optimize."
|
2390 |
msgstr ""
|
2391 |
|
2392 |
+
#: lite/includes/classes/class-es-import-subscribers.php:84
|
2393 |
msgid "Import CSV"
|
2394 |
msgstr ""
|
2395 |
|
2396 |
+
#: lite/includes/classes/class-es-import-subscribers.php:101
|
2397 |
msgid "Select CSV file"
|
2398 |
msgstr ""
|
2399 |
|
2400 |
#. translators: %s: Max upload size
|
2401 |
+
#: lite/includes/classes/class-es-import-subscribers.php:106
|
2402 |
msgid "File size should be less than %s"
|
2403 |
msgstr ""
|
2404 |
|
2405 |
+
#: lite/includes/classes/class-es-import-subscribers.php:110
|
2406 |
msgid "Check CSV structure"
|
2407 |
msgstr ""
|
2408 |
|
2409 |
+
#: lite/includes/classes/class-es-import-subscribers.php:111
|
2410 |
msgid "from here"
|
2411 |
msgstr ""
|
2412 |
|
2413 |
+
#: lite/includes/classes/class-es-import-subscribers.php:123
|
2414 |
msgid "Drop your CSV here"
|
2415 |
msgstr ""
|
2416 |
|
2417 |
+
#: lite/includes/classes/class-es-import-subscribers.php:124
|
2418 |
msgctxt "Uploader: Drop files here - or - Select Files"
|
2419 |
msgid "or"
|
2420 |
msgstr ""
|
2421 |
|
2422 |
+
#: lite/includes/classes/class-es-import-subscribers.php:125
|
2423 |
msgid "Select File"
|
2424 |
msgstr ""
|
2425 |
|
2426 |
+
#: lite/includes/classes/class-es-import-subscribers.php:150
|
2427 |
msgid "Select status"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
+
#: lite/includes/classes/class-es-import-subscribers.php:169
|
2431 |
#: lite/includes/classes/class-es-post-notifications.php:327
|
2432 |
msgid "Select list"
|
2433 |
msgstr ""
|
2434 |
|
2435 |
+
#: lite/includes/classes/class-es-import-subscribers.php:198
|
2436 |
msgid "Import"
|
2437 |
msgstr ""
|
2438 |
|
2439 |
+
#: lite/includes/classes/class-es-import-subscribers.php:402
|
2440 |
msgid "Nick Name"
|
2441 |
msgstr ""
|
2442 |
|
2443 |
+
#: lite/includes/classes/class-es-import-subscribers.php:403
|
2444 |
msgid "Display Name"
|
2445 |
msgstr ""
|
2446 |
|
2447 |
+
#: lite/includes/classes/class-es-import-subscribers.php:539
|
2448 |
msgid "(First Name) (Last Name)"
|
2449 |
msgstr ""
|
2450 |
|
2451 |
+
#: lite/includes/classes/class-es-import-subscribers.php:540
|
2452 |
msgid "(Last Name) (First Name)"
|
2453 |
msgstr ""
|
2454 |
|
2455 |
+
#: lite/includes/classes/class-es-import-subscribers.php:548
|
2456 |
msgid "Select columns for mapping"
|
2457 |
msgstr ""
|
2458 |
|
2459 |
+
#: lite/includes/classes/class-es-import-subscribers.php:551
|
2460 |
msgid "Define which column represents which field"
|
2461 |
msgstr ""
|
2462 |
|
2463 |
+
#: lite/includes/classes/class-es-import-subscribers.php:568
|
2464 |
msgid "Ignore column"
|
2465 |
msgstr ""
|
2466 |
|
2467 |
#. translators: %s: Hidden contacts count
|
2468 |
+
#: lite/includes/classes/class-es-import-subscribers.php:607
|
2469 |
msgid "%s contacts are hidden"
|
2470 |
msgstr ""
|
2471 |
|
2472 |
+
#: lite/includes/classes/class-es-import-subscribers.php:674
|
2473 |
msgid "Email address is invalid."
|
2474 |
msgstr ""
|
2475 |
|
2476 |
+
#: lite/includes/classes/class-es-import-subscribers.php:675
|
2477 |
msgid "Email address is empty."
|
2478 |
msgstr ""
|
2479 |
|
2480 |
+
#: lite/includes/classes/class-es-import-subscribers.php:676
|
2481 |
msgid "Duplicate email in the CSV file. Only the first record imported."
|
2482 |
msgstr ""
|
2483 |
|
2484 |
#. translators: 1. Total imported contacts 2. Total contacts
|
2485 |
+
#: lite/includes/classes/class-es-import-subscribers.php:841
|
2486 |
msgid "%1$s of %2$s contacts imported"
|
2487 |
msgstr ""
|
2488 |
|
2489 |
+
#: lite/includes/classes/class-es-import-subscribers.php:845
|
2490 |
msgid "The following contacts were skipped"
|
2491 |
msgstr ""
|
2492 |
|
2493 |
+
#: lite/includes/classes/class-es-import-subscribers.php:860
|
2494 |
msgid "Reason"
|
2495 |
msgstr ""
|
2496 |
|
2799 |
msgid "Content of the selected template will be sent out as post notification."
|
2800 |
msgstr ""
|
2801 |
|
2802 |
+
#: lite/includes/classes/class-es-post-notifications.php:388
|
2803 |
msgid "Select post category"
|
2804 |
msgstr ""
|
2805 |
|
2806 |
+
#: lite/includes/classes/class-es-post-notifications.php:389
|
2807 |
msgid "Notification will be sent out when any post from selected categories will be published."
|
2808 |
msgstr ""
|
2809 |
|
2810 |
+
#: lite/includes/classes/class-es-post-notifications.php:405
|
2811 |
msgid "Select custom post type(s)"
|
2812 |
msgstr ""
|
2813 |
|
2814 |
+
#: lite/includes/classes/class-es-post-notifications.php:406
|
2815 |
msgid "(Optional) Select custom post type for which you want to send notification."
|
2816 |
msgstr ""
|
2817 |
|
2818 |
+
#: lite/includes/classes/class-es-post-notifications.php:429
|
2819 |
msgid "Save Campaign"
|
2820 |
msgstr ""
|
2821 |
|
3145 |
msgstr ""
|
3146 |
|
3147 |
#: lite/includes/pro-features.php:194
|
3148 |
+
#: pro/pro-class-email-subscribers.php:882
|
3149 |
msgid "Track clicks"
|
3150 |
msgstr ""
|
3151 |
|
3201 |
msgstr ""
|
3202 |
|
3203 |
#: lite/includes/pro-features.php:287
|
3204 |
+
#: pro/pro-class-email-subscribers.php:890
|
3205 |
msgid "Track IP address"
|
3206 |
msgstr ""
|
3207 |
|
3477 |
msgstr ""
|
3478 |
|
3479 |
#: lite/includes/pro-features.php:890
|
3480 |
+
#: pro/pro-class-email-subscribers.php:719
|
3481 |
msgid "Link tracking"
|
3482 |
msgstr ""
|
3483 |
|
3486 |
msgstr ""
|
3487 |
|
3488 |
#: lite/includes/pro-features.php:939
|
3489 |
+
#: pro/pro-class-email-subscribers.php:763
|
3490 |
msgid "Send options"
|
3491 |
msgstr ""
|
3492 |
|
3493 |
#: lite/includes/pro-features.php:942
|
3494 |
+
#: pro/pro-class-email-subscribers.php:766
|
3495 |
msgid "Schedule for later"
|
3496 |
msgstr ""
|
3497 |
|
3498 |
#: lite/includes/pro-features.php:949
|
3499 |
#: lite/includes/workflows/admin/views/meta-box-timing.php:82
|
3500 |
#: lite/includes/workflows/fields/class-es-date.php:31
|
3501 |
+
#: pro/pro-class-email-subscribers.php:779
|
3502 |
msgid "Date"
|
3503 |
msgstr ""
|
3504 |
|
3505 |
#: lite/includes/pro-features.php:958
|
3506 |
#: lite/includes/workflows/fields/class-es-time.php:64
|
3507 |
+
#: pro/pro-class-email-subscribers.php:790
|
3508 |
msgid "Time"
|
3509 |
msgstr ""
|
3510 |
|
3511 |
#: lite/includes/pro-features.php:968
|
3512 |
+
#: pro/pro-class-email-subscribers.php:801
|
3513 |
msgid "Local Time: "
|
3514 |
msgstr ""
|
3515 |
|
3544 |
msgstr ""
|
3545 |
|
3546 |
#: lite/includes/pro-features.php:1036
|
3547 |
+
#: pro/classes/class-es-pro-reports-data.php:338
|
3548 |
msgid "Date: "
|
3549 |
msgstr ""
|
3550 |
|
3553 |
msgstr ""
|
3554 |
|
3555 |
#: lite/includes/pro-features.php:1044
|
3556 |
+
#: pro/classes/class-es-pro-reports-data.php:347
|
3557 |
msgid "Statistics"
|
3558 |
msgstr ""
|
3559 |
|
3560 |
#: lite/includes/pro-features.php:1060
|
3561 |
+
#: pro/classes/class-es-pro-reports-data.php:363
|
3562 |
msgid "Avg Open Rate"
|
3563 |
msgstr ""
|
3564 |
|
3576 |
|
3577 |
#: lite/includes/pro-features.php:1175
|
3578 |
#: lite/includes/pro-features.php:1390
|
3579 |
+
#: pro/classes/class-es-pro-reports-data.php:556
|
3580 |
+
#: pro/classes/class-es-pro-reports-data.php:935
|
3581 |
msgid "Mail Client"
|
3582 |
msgstr ""
|
3583 |
|
3598 |
msgstr ""
|
3599 |
|
3600 |
#: lite/includes/pro-features.php:1240
|
3601 |
+
#: pro/classes/class-es-pro-reports-data.php:651
|
3602 |
msgid "Link (URL)"
|
3603 |
msgstr ""
|
3604 |
|
3605 |
#: lite/includes/pro-features.php:1242
|
3606 |
+
#: pro/classes/class-es-pro-reports-data.php:653
|
3607 |
msgid "Unique Clicks"
|
3608 |
msgstr ""
|
3609 |
|
3610 |
#: lite/includes/pro-features.php:1244
|
3611 |
+
#: pro/classes/class-es-pro-reports-data.php:655
|
3612 |
msgid "Total Clicks"
|
3613 |
msgstr ""
|
3614 |
|
3625 |
msgstr ""
|
3626 |
|
3627 |
#: lite/includes/pro-features.php:1389
|
3628 |
+
#: pro/classes/class-es-pro-reports-data.php:934
|
3629 |
msgid "Device"
|
3630 |
msgstr ""
|
3631 |
|
3632 |
#: lite/includes/pro-features.php:1391
|
3633 |
+
#: pro/classes/class-es-pro-reports-data.php:936
|
3634 |
msgid "OS"
|
3635 |
msgstr ""
|
3636 |
|
3637 |
#: lite/includes/pro-features.php:1418
|
3638 |
+
#: pro/classes/class-es-pro-reports-data.php:958
|
3639 |
msgid "Desktop"
|
3640 |
msgstr ""
|
3641 |
|
3642 |
#: lite/includes/pro-features.php:1427
|
3643 |
+
#: pro/classes/class-es-pro-reports-data.php:966
|
3644 |
msgid "Tablet"
|
3645 |
msgstr ""
|
3646 |
|
3647 |
#: lite/includes/pro-features.php:1436
|
3648 |
+
#: pro/classes/class-es-pro-reports-data.php:974
|
3649 |
msgid "Mobile"
|
3650 |
msgstr ""
|
3651 |
|
3652 |
#: lite/includes/pro-features.php:1495
|
3653 |
+
#: pro/pro-class-email-subscribers.php:1463
|
3654 |
msgid "Add Attachments"
|
3655 |
msgstr ""
|
3656 |
|
3657 |
#: lite/includes/pro-features.php:1525
|
3658 |
+
#: pro/pro-class-email-subscribers.php:1544
|
3659 |
msgid "Import existing WordPress users"
|
3660 |
msgstr ""
|
3661 |
|
3736 |
msgid "Update Contact"
|
3737 |
msgstr ""
|
3738 |
|
3739 |
+
#: lite/includes/workflows/admin/class-es-workflow-admin-ajax.php:166
|
3740 |
msgid "Variable not found."
|
3741 |
msgstr ""
|
3742 |
|
4169 |
msgstr ""
|
4170 |
|
4171 |
#: lite/public/partials/cron-message.php:43
|
4172 |
+
#: pro/pro-class-email-subscribers.php:809
|
4173 |
msgid "Send Now"
|
4174 |
msgstr ""
|
4175 |
|
4214 |
msgid "Recipient(s): "
|
4215 |
msgstr ""
|
4216 |
|
4217 |
+
#: pro/classes/class-es-pro-reports-data.php:399
|
4218 |
msgid "Open and Click activity"
|
4219 |
msgstr ""
|
4220 |
|
4221 |
+
#: pro/classes/class-es-pro-reports-data.php:407
|
4222 |
msgid "Country info"
|
4223 |
msgstr ""
|
4224 |
|
4225 |
+
#: pro/classes/class-es-pro-reports-data.php:512
|
4226 |
msgid "Others"
|
4227 |
msgstr ""
|
4228 |
|
4229 |
+
#: pro/classes/class-es-pro-reports-data.php:540
|
4230 |
msgid "No country data found."
|
4231 |
msgstr ""
|
4232 |
|
4233 |
+
#: pro/classes/class-es-pro-reports-data.php:551
|
4234 |
msgid "Mail Client info"
|
4235 |
msgstr ""
|
4236 |
|
4237 |
+
#: pro/classes/class-es-pro-reports-data.php:587
|
4238 |
msgid "No mail client data found."
|
4239 |
msgstr ""
|
4240 |
|
4241 |
+
#: pro/classes/class-es-pro-reports-data.php:601
|
4242 |
msgid "Device info"
|
4243 |
msgstr ""
|
4244 |
|
4245 |
+
#: pro/classes/class-es-pro-reports-data.php:604
|
4246 |
msgid "No device data found"
|
4247 |
msgstr ""
|
4248 |
|
4249 |
+
#: pro/classes/class-es-pro-reports-data.php:608
|
4250 |
msgid "Browser info"
|
4251 |
msgstr ""
|
4252 |
|
4253 |
+
#: pro/classes/class-es-pro-reports-data.php:611
|
4254 |
msgid "No browser data found"
|
4255 |
msgstr ""
|
4256 |
|
4257 |
+
#: pro/classes/class-es-pro-reports-data.php:615
|
4258 |
msgid "OS info"
|
4259 |
msgstr ""
|
4260 |
|
4261 |
+
#: pro/classes/class-es-pro-reports-data.php:618
|
4262 |
msgid "No OS data found"
|
4263 |
msgstr ""
|
4264 |
|
4265 |
+
#: pro/classes/class-es-pro-reports-data.php:644
|
4266 |
msgid "Link activity"
|
4267 |
msgstr ""
|
4268 |
|
4269 |
+
#: pro/classes/class-es-pro-reports-data.php:748
|
4270 |
#: pro/partials/es-dashboard.php:100
|
4271 |
msgid "Clicks"
|
4272 |
msgstr ""
|
4273 |
|
4274 |
+
#: pro/classes/class-es-pro-reports-data.php:877
|
4275 |
msgid "Filter Report"
|
4276 |
msgstr ""
|
4277 |
|
4278 |
+
#: pro/classes/class-es-pro-reports-data.php:889
|
4279 |
msgid "Not Opened"
|
4280 |
msgstr ""
|
4281 |
|
4443 |
msgid "Please attach a file having size lower than %s."
|
4444 |
msgstr ""
|
4445 |
|
4446 |
+
#: pro/pro-class-email-subscribers.php:484
|
4447 |
+
msgid "Are you sure you want to delete this?"
|
4448 |
+
msgstr ""
|
4449 |
+
|
4450 |
+
#: pro/pro-class-email-subscribers.php:610
|
4451 |
msgid "Clean My List"
|
4452 |
msgstr ""
|
4453 |
|
4454 |
+
#: pro/pro-class-email-subscribers.php:611
|
4455 |
msgid "List cleanup is in progress..."
|
4456 |
msgstr ""
|
4457 |
|
4458 |
+
#: pro/pro-class-email-subscribers.php:612
|
4459 |
msgid "List cleanup completed successfully."
|
4460 |
msgstr ""
|
4461 |
|
4462 |
+
#: pro/pro-class-email-subscribers.php:629
|
4463 |
msgid "Email status"
|
4464 |
msgstr ""
|
4465 |
|
4466 |
+
#: pro/pro-class-email-subscribers.php:630
|
4467 |
msgid "Last opened at"
|
4468 |
msgstr ""
|
4469 |
|
4470 |
+
#: pro/pro-class-email-subscribers.php:633
|
4471 |
msgid "IP"
|
4472 |
msgstr ""
|
4473 |
|
4474 |
+
#: pro/pro-class-email-subscribers.php:847
|
4475 |
msgid "Select page"
|
4476 |
msgstr ""
|
4477 |
|
4478 |
+
#: pro/pro-class-email-subscribers.php:860
|
4479 |
msgid "Subscriber will be redirected to selected page once they click on unsubscribe link from the email."
|
4480 |
msgstr ""
|
4481 |
|
4482 |
+
#: pro/pro-class-email-subscribers.php:873
|
4483 |
msgid "Subscriber will be redirected to selected page once they click on email confirmation link from the double opt-in (confirmation) email."
|
4484 |
msgstr ""
|
4485 |
|
4486 |
+
#: pro/pro-class-email-subscribers.php:912
|
4487 |
msgid "Access Key ID"
|
4488 |
msgstr ""
|
4489 |
|
4490 |
+
#: pro/pro-class-email-subscribers.php:923
|
4491 |
msgid "Secret Access Key"
|
4492 |
msgstr ""
|
4493 |
|
4494 |
+
#: pro/pro-class-email-subscribers.php:935
|
4495 |
msgid "Closest Region"
|
4496 |
msgstr ""
|
4497 |
|
4498 |
+
#: pro/pro-class-email-subscribers.php:936
|
4499 |
msgid ""
|
4500 |
"Please select the Amazon SES API region which is the closest to where your website is hosted.\n"
|
4501 |
"\t\t\t\t\tThis can help to decrease network latency between your site and Amazon SES, which will speed up email sending."
|
4502 |
msgstr ""
|
4503 |
|
4504 |
+
#: pro/pro-class-email-subscribers.php:997
|
4505 |
msgid "Clicked"
|
4506 |
msgstr ""
|
4507 |
|
4508 |
#. translators: 1: Page 2: Duplicate action 3: Campaign id 4: Wp nonce
|
4509 |
+
#: pro/pro-class-email-subscribers.php:1262
|
4510 |
msgid "<a href=\"?page=%1$s&action=%2$s&list=%3$s&_wpnonce=%4$s\">Duplicate</a>"
|
4511 |
msgstr ""
|
4512 |
|
4513 |
+
#: pro/pro-class-email-subscribers.php:1283
|
4514 |
msgid "You are not allowed to duplicate campaign."
|
4515 |
msgstr ""
|
4516 |
|
4517 |
+
#: pro/pro-class-email-subscribers.php:1298
|
4518 |
msgid "Campaign duplicated !"
|
4519 |
msgstr ""
|
4520 |
|
4521 |
+
#: pro/pro-class-email-subscribers.php:1563
|
4522 |
msgid "Import WordPress users with following roles"
|
4523 |
msgstr ""
|
4524 |
|
4525 |
+
#: pro/pro-class-email-subscribers.php:1613
|
4526 |
msgid "Proceed"
|
4527 |
msgstr ""
|
4528 |
|
4611 |
msgstr ""
|
4612 |
|
4613 |
#: pro/pro-class-sequences.php:100
|
4614 |
+
#: pro/pro-class-sequences.php:326
|
4615 |
msgid "Save All"
|
4616 |
msgstr ""
|
4617 |
|
4618 |
+
#: pro/pro-class-sequences.php:121
|
4619 |
msgid "+ Add Email"
|
4620 |
msgstr ""
|
4621 |
|
4622 |
+
#: pro/pro-class-sequences.php:161
|
4623 |
+
#: pro/pro-class-sequences.php:233
|
4624 |
msgid "Sequence should have atleast one email"
|
4625 |
msgstr ""
|
4626 |
|
4627 |
+
#: pro/pro-class-sequences.php:205
|
4628 |
msgid "Sequence added successfully!"
|
4629 |
msgstr ""
|
4630 |
|
4631 |
+
#: pro/pro-class-sequences.php:209
|
4632 |
msgid "Sorry, you are not allowed to add sequence."
|
4633 |
msgstr ""
|
4634 |
|
4635 |
+
#: pro/pro-class-sequences.php:308
|
4636 |
msgid "Sequence updated successfully!"
|
4637 |
msgstr ""
|
4638 |
|
4639 |
+
#: pro/pro-class-sequences.php:312
|
4640 |
msgid "Sorry, you are not allowed to edit sequence."
|
4641 |
msgstr ""
|
4642 |
|
4643 |
+
#: pro/pro-class-sequences.php:350
|
4644 |
+
#: pro/pro-class-sequences.php:435
|
|
|
|
|
|
|
|
|
4645 |
msgid " day"
|
4646 |
msgstr ""
|
4647 |
|
4648 |
+
#: pro/pro-class-sequences.php:350
|
4649 |
+
#: pro/pro-class-sequences.php:435
|
4650 |
msgid " days"
|
4651 |
msgstr ""
|
4652 |
|
4653 |
+
#: pro/pro-class-sequences.php:355
|
4654 |
+
#: pro/pro-class-sequences.php:393
|
4655 |
msgid "Welcome"
|
4656 |
msgstr ""
|
4657 |
|
4658 |
+
#: pro/pro-class-sequences.php:358
|
4659 |
+
#: pro/pro-class-sequences.php:361
|
4660 |
msgid "Delete this email"
|
4661 |
msgstr ""
|
4662 |
|
4663 |
+
#: pro/pro-class-sequences.php:391
|
4664 |
msgid "Email Subject"
|
4665 |
msgstr ""
|
4666 |
|
4667 |
+
#: pro/pro-class-sequences.php:440
|
4668 |
msgid "When to send"
|
4669 |
msgstr ""
|
4670 |
|
4671 |
+
#: pro/pro-class-sequences.php:446
|
4672 |
msgid " after subscription"
|
4673 |
msgstr ""
|
4674 |
|
readme.txt
CHANGED
@@ -4,9 +4,9 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
|
|
4 |
Author URI: https://www.icegram.com/
|
5 |
Tags: email marketing, subscription, autoresponder, post notification, welcome email
|
6 |
Requires at least: 3.9
|
7 |
-
Tested up to: 5.
|
8 |
Requires PHP: 5.6
|
9 |
-
Stable tag: 4.6.
|
10 |
License: GPLv3
|
11 |
License URI: http://www.gnu.org/licenses
|
12 |
|
@@ -304,6 +304,12 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
|
|
304 |
|
305 |
== Changelog ==
|
306 |
|
|
|
|
|
|
|
|
|
|
|
|
|
307 |
**4.6.12.1 (05.03.2021)**
|
308 |
|
309 |
* Fix: Subscription issue with [Icegram](https://wordpress.org/plugins/icegram) plugin
|
@@ -322,6 +328,7 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
|
|
322 |
|
323 |
**4.6.10 (15.02.2021)**
|
324 |
|
|
|
325 |
* New: Added additional stats on campaigns reports dashboard
|
326 |
* Update: Disable IP tracking in lite version by default to make GDPR compliant
|
327 |
* Fix: Database vulnerability
|
4 |
Author URI: https://www.icegram.com/
|
5 |
Tags: email marketing, subscription, autoresponder, post notification, welcome email
|
6 |
Requires at least: 3.9
|
7 |
+
Tested up to: 5.7
|
8 |
Requires PHP: 5.6
|
9 |
+
Stable tag: 4.6.13
|
10 |
License: GPLv3
|
11 |
License URI: http://www.gnu.org/licenses
|
12 |
|
304 |
|
305 |
== Changelog ==
|
306 |
|
307 |
+
**4.6.13 (17.03.2021)**
|
308 |
+
|
309 |
+
* New: Campaign rules to filter recipients while sending sequence emails [PRO]
|
310 |
+
* Update: Tested upto WordPress 5.7
|
311 |
+
* Fix: Invalid date and time for campaign reports activity table
|
312 |
+
|
313 |
**4.6.12.1 (05.03.2021)**
|
314 |
|
315 |
* Fix: Subscription issue with [Icegram](https://wordpress.org/plugins/icegram) plugin
|
328 |
|
329 |
**4.6.10 (15.02.2021)**
|
330 |
|
331 |
+
* New: New workflow trigger for YITH WooCommerce Wishlist [PRO]
|
332 |
* New: Added additional stats on campaigns reports dashboard
|
333 |
* Update: Disable IP tracking in lite version by default to make GDPR compliant
|
334 |
* Fix: Database vulnerability
|