Version Description
Download this release
Release Info
Developer | Icegram |
Plugin | Email Subscribers & Newsletters |
Version | 4.4.7 |
Comparing to | |
See all releases |
Code changes from version 4.4.6 to 4.4.7
- email-subscribers.php +4 -4
- lite/admin/class-email-subscribers-admin.php +12 -4
- lite/admin/css/email-subscribers-admin.css +75 -2
- lite/admin/dist/main.css +1 -1
- lite/admin/images/spinner-2x.gif +0 -0
- lite/admin/js/email-subscribers-admin.js +225 -138
- lite/admin/partials/dashboard.php +20 -20
- lite/admin/partials/help.php +10 -10
- lite/includes/class-email-subscribers.php +2 -5
- lite/includes/class-es-common.php +85 -8
- lite/includes/classes/class-es-actions.php +26 -0
- lite/includes/classes/class-es-admin-settings.php +56 -29
- lite/includes/classes/class-es-campaigns-table.php +169 -97
- lite/includes/classes/class-es-contact-background-process.php +0 -1056
- lite/includes/classes/class-es-contacts-table.php +23 -15
- lite/includes/classes/class-es-cron.php +2 -2
- lite/includes/classes/class-es-export-subscribers.php +45 -186
- lite/includes/classes/class-es-form-widget.php +4 -3
- lite/includes/classes/class-es-forms-table.php +350 -335
- lite/includes/classes/class-es-handle-post-notification.php +2 -2
- lite/includes/classes/class-es-ig-redirect.php +4 -4
- lite/includes/classes/class-es-import-subscribers.php +242 -175
- lite/includes/classes/class-es-lists-table.php +10 -9
- lite/includes/classes/class-es-mailer.php +46 -11
- lite/includes/classes/class-es-newsletters.php +724 -161
- lite/includes/classes/class-es-old-widget.php +4 -4
- lite/includes/classes/class-es-post-notifications.php +7 -5
- lite/includes/classes/class-es-queue.php +16 -1
- lite/includes/classes/class-es-reports-table.php +4 -3
- lite/includes/classes/class-es-templates-table.php +22 -1
- lite/includes/db/class-es-db-mailing-queue.php +14 -0
- lite/includes/db/class-es-db.php +8 -1
- lite/includes/es-core-functions.php +1 -3
- lite/includes/feedback.php +47 -4
- lite/includes/feedback/class-ig-feedback.php +23 -11
- lite/includes/feedback/class-ig-tracker.php +3 -3
- lite/includes/libraries/action-scheduler/action-scheduler.php +8 -15
- lite/includes/libraries/action-scheduler/classes/ActionScheduler_ActionFactory.php +6 -6
- lite/includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php +19 -3
- lite/includes/libraries/action-scheduler/classes/ActionScheduler_Compatibility.php +1 -1
- lite/includes/libraries/action-scheduler/classes/ActionScheduler_DataController.php +2 -2
- lite/includes/libraries/action-scheduler/classes/ActionScheduler_ListTable.php +51 -3
- lite/includes/libraries/action-scheduler/classes/ActionScheduler_wcSystemStatus.php +0 -5
- lite/includes/libraries/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_Scheduler_command.php +2 -2
- lite/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler.php +13 -17
- lite/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php +5 -6
- lite/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schema.php +4 -2
- lite/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler_Logger.php +1 -1
- lite/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler_Store.php +1 -1
- lite/includes/libraries/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php +2 -1
- lite/includes/libraries/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php +84 -38
- lite/includes/libraries/action-scheduler/functions.php +27 -27
- lite/includes/pro-features.php +491 -239
- lite/includes/workflows/admin/views/meta-box-trigger.php +5 -4
- lite/includes/workflows/class-es-workflows-table.php +2 -2
- lite/languages/email-subscribers.pot +1101 -647
- lite/public/partials/class-es-shortcode.php +6 -9
- readme.txt +18 -4
- uninstall.php +1 -1
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.4.
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
10 |
-
* Tested up to: 5.4
|
11 |
* Requires PHP: 5.6
|
12 |
* Text Domain: email-subscribers
|
13 |
* Domain Path: /lite/languages/
|
@@ -67,7 +67,7 @@ if ( ! version_compare( PHP_VERSION, IG_ES_MIN_PHP_VER, '>=' ) ) {
|
|
67 |
* @since 4.3.0
|
68 |
*/
|
69 |
if ( ! defined( 'IG_ES_FEEDBACK_TRACKER_VERSION' ) ) {
|
70 |
-
define( 'IG_ES_FEEDBACK_TRACKER_VERSION', '1.2.
|
71 |
}
|
72 |
|
73 |
|
@@ -156,7 +156,7 @@ if ( $is_premium ) {
|
|
156 |
/* ***************************** Initial Compatibility Work (End) ******************* */
|
157 |
|
158 |
if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
|
159 |
-
define( 'ES_PLUGIN_VERSION', '4.4.
|
160 |
}
|
161 |
|
162 |
// 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.4.7
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
10 |
+
* Tested up to: 5.4.1
|
11 |
* Requires PHP: 5.6
|
12 |
* Text Domain: email-subscribers
|
13 |
* Domain Path: /lite/languages/
|
67 |
* @since 4.3.0
|
68 |
*/
|
69 |
if ( ! defined( 'IG_ES_FEEDBACK_TRACKER_VERSION' ) ) {
|
70 |
+
define( 'IG_ES_FEEDBACK_TRACKER_VERSION', '1.2.3' );
|
71 |
}
|
72 |
|
73 |
|
156 |
/* ***************************** Initial Compatibility Work (End) ******************* */
|
157 |
|
158 |
if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
|
159 |
+
define( 'ES_PLUGIN_VERSION', '4.4.7' );
|
160 |
}
|
161 |
|
162 |
// Plugin Folder Path.
|
lite/admin/class-email-subscribers-admin.php
CHANGED
@@ -118,9 +118,17 @@ class Email_Subscribers_Admin {
|
|
118 |
|
119 |
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 );
|
120 |
|
|
|
|
|
121 |
$ig_es_js_data = array(
|
122 |
-
'
|
123 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
);
|
125 |
|
126 |
wp_localize_script( $this->email_subscribers, 'ig_es_js_data', $ig_es_js_data );
|
@@ -152,6 +160,7 @@ class Email_Subscribers_Admin {
|
|
152 |
if ( ! empty( $get_page ) && 'es_dashboard' === $get_page ) {
|
153 |
wp_enqueue_script( 'frappe-js', plugin_dir_url( __FILE__ ) . 'js/frappe-charts.min.life.js', array( 'jquery' ), $this->version, false );
|
154 |
}
|
|
|
155 |
}
|
156 |
|
157 |
public function remove_submenu() {
|
@@ -636,7 +645,6 @@ class Email_Subscribers_Admin {
|
|
636 |
'custom_admin_notice',
|
637 |
'output_custom_notices',
|
638 |
'ig_es_fail_php_version_notice',
|
639 |
-
'contact_background_notice'
|
640 |
);
|
641 |
|
642 |
// User admin notices
|
@@ -753,4 +761,4 @@ class Email_Subscribers_Admin {
|
|
753 |
|
754 |
return $footer_text;
|
755 |
}
|
756 |
-
}
|
118 |
|
119 |
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 );
|
120 |
|
121 |
+
|
122 |
+
|
123 |
$ig_es_js_data = array(
|
124 |
+
'security' => wp_create_nonce( 'ig-es-admin-ajax-nonce' ),
|
125 |
+
'i18n_data' => array(
|
126 |
+
'ajax_error_message' => __( 'An error has occured. Please try again later.', 'email-subscribers' ),
|
127 |
+
'broadcast_draft_success_message' => __( 'Broadcast saved as draft successfully.', 'email-subscribers' ),
|
128 |
+
'broadcast_draft_error_message' => __( 'An error has occured while saving the broadcast. Please try again later.', 'email-subscribers' ),
|
129 |
+
'broadcast_subject_empty_message' => __( 'Please add a broadcast subject before saving.', 'email-subscribers' ),
|
130 |
+
'empty_template_message' => __( 'Please add email body.', 'email-subscribers' ),
|
131 |
+
),
|
132 |
);
|
133 |
|
134 |
wp_localize_script( $this->email_subscribers, 'ig_es_js_data', $ig_es_js_data );
|
160 |
if ( ! empty( $get_page ) && 'es_dashboard' === $get_page ) {
|
161 |
wp_enqueue_script( 'frappe-js', plugin_dir_url( __FILE__ ) . 'js/frappe-charts.min.life.js', array( 'jquery' ), $this->version, false );
|
162 |
}
|
163 |
+
|
164 |
}
|
165 |
|
166 |
public function remove_submenu() {
|
645 |
'custom_admin_notice',
|
646 |
'output_custom_notices',
|
647 |
'ig_es_fail_php_version_notice',
|
|
|
648 |
);
|
649 |
|
650 |
// User admin notices
|
761 |
|
762 |
return $footer_text;
|
763 |
}
|
764 |
+
}
|
lite/admin/css/email-subscribers-admin.css
CHANGED
@@ -3,6 +3,14 @@
|
|
3 |
color: #FFFFFF;
|
4 |
}
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
.es-lists-table .column-created_at{
|
7 |
width:20%;
|
8 |
}
|
@@ -1007,11 +1015,11 @@ a.button-send:hover, .es-error-actions .es-dashboard-btn:hover {
|
|
1007 |
color: white !important;
|
1008 |
}
|
1009 |
|
1010 |
-
|
1011 |
display: inline-block;
|
1012 |
vertical-align: middle;
|
1013 |
margin-right: 1em;
|
1014 |
-
}
|
1015 |
|
1016 |
.sp input[type="email"].error {
|
1017 |
border: 1px solid red;
|
@@ -1775,4 +1783,69 @@ body.email-subscribers_page_es_workflows #post-body .postbox .inside {
|
|
1775 |
li.menu-top div.wp-menu-image img {
|
1776 |
border-style: none !important;
|
1777 |
display: inline;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1778 |
}
|
3 |
color: #FFFFFF;
|
4 |
}
|
5 |
|
6 |
+
ul#menu-nav li.active {
|
7 |
+
background-color: #5a67d8;
|
8 |
+
}
|
9 |
+
|
10 |
+
#menu-nav li a.active {
|
11 |
+
color: #FFF;
|
12 |
+
}
|
13 |
+
|
14 |
.es-lists-table .column-created_at{
|
15 |
width:20%;
|
16 |
}
|
1015 |
color: white !important;
|
1016 |
}
|
1017 |
|
1018 |
+
/*.es-send-email-screen img.es-loader {
|
1019 |
display: inline-block;
|
1020 |
vertical-align: middle;
|
1021 |
margin-right: 1em;
|
1022 |
+
}*/
|
1023 |
|
1024 |
.sp input[type="email"].error {
|
1025 |
border: 1px solid red;
|
1783 |
li.menu-top div.wp-menu-image img {
|
1784 |
border-style: none !important;
|
1785 |
display: inline;
|
1786 |
+
}
|
1787 |
+
|
1788 |
+
/** Broadcast New UI CSS */
|
1789 |
+
/* input[type="date"]::-webkit-inner-spin-button,
|
1790 |
+
input[type="date"]::-webkit-clear-button {
|
1791 |
+
display: none;
|
1792 |
+
-webkit-appearance: none;
|
1793 |
+
} */
|
1794 |
+
|
1795 |
+
/*#progressbar {
|
1796 |
+
counter-reset: step;
|
1797 |
+
}*/
|
1798 |
+
#progressbar li:before {
|
1799 |
+
/* content: counter(step);
|
1800 |
+
counter-increment: step;*/
|
1801 |
+
width: 20px;
|
1802 |
+
line-height: 20px;
|
1803 |
+
display: inline-block;
|
1804 |
+
font-size: 10px;
|
1805 |
+
color: #333;
|
1806 |
+
background: white;
|
1807 |
+
border-radius: 3px;
|
1808 |
+
margin: 0 auto 5px auto;
|
1809 |
+
}
|
1810 |
+
/* color change after active */
|
1811 |
+
#progressbar li.active{
|
1812 |
+
border-bottom: 2px solid #5a67d8;
|
1813 |
+
}
|
1814 |
+
#progressbar li:hover {
|
1815 |
+
border-bottom: 2px solid rgb(90, 103,216, 0.5);
|
1816 |
+
}
|
1817 |
+
|
1818 |
+
#progressbar li.active span{
|
1819 |
+
color: #2d3748;
|
1820 |
+
}
|
1821 |
+
|
1822 |
+
#preview_template, #spam_score_modal{
|
1823 |
+
display: none;
|
1824 |
+
}
|
1825 |
+
|
1826 |
+
.broadcast_preview_container {
|
1827 |
+
height: 300px;
|
1828 |
+
overflow: hidden;
|
1829 |
+
overflow-y: auto;
|
1830 |
+
}
|
1831 |
+
|
1832 |
+
/* Broadcast status icons CSS */
|
1833 |
+
body.email-subscribers_page_es_campaigns .column-status .dashicons {
|
1834 |
+
position: relative;
|
1835 |
+
left: 10px;
|
1836 |
+
}
|
1837 |
+
|
1838 |
+
body.email-subscribers_page_es_campaigns .column-status .dashicons[title="Finished"] {
|
1839 |
+
color: #0e9f6e;
|
1840 |
+
}
|
1841 |
+
div.broadcast_main_content{
|
1842 |
+
width: 70% ;
|
1843 |
+
}
|
1844 |
+
|
1845 |
+
div.broadcast_side_content{
|
1846 |
+
width: 30% ;
|
1847 |
+
}
|
1848 |
+
|
1849 |
+
.es-preview.broadcast-preview p {
|
1850 |
+
margin : 1em 0 !important;
|
1851 |
}
|
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;padding:0}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{color:#1c64f2}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}.ig-es-primary-button,.ig-es-send-queue-emails{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;padding:.5rem 1rem;background-color:#fff;font-size:.875rem;line-height:1.25rem;font-weight:500;color:#fff;background-color:#5850ec;-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{font-size:.875rem;border-radius:.375rem;border-width:1px;border-color:#5850ec;line-height:1.25rem;font-weight:500}.wp-heading-inline+.page-title-action{color:#1c64f2;padding:.5rem;margin-left:.5rem;margin-right:.5rem}.ig-es-title-button:hover,.wp-heading-inline+.page-title-action:hover{border-color:#6875f5;background-color:#f4f5f7}.ig-es-primary-button:hover{background-color:#6875f5;color:#fff}.ig-es-primary-button:focus,.ig-es-title-button:focus,.wp-heading-inline+.page-title-action: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;font-size:.875rem!important;line-height:1.25rem!important;font-weight:500!important;color:#fff!important;background-color:#0e9f6e!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:hover{background-color:#31c48d!important;color:#fff!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;font-size:.875rem;line-height:1.25rem;font-weight:500;color:#fff;background-color:#ff5a1f;-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:hover{background-color:#ff8a4c;color:#fff}.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{background-color:#5850ec;color:#fff}.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{color:#5850ec!important}.form-select{font-size:.875rem!important;border-color:#9fa6b2!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-color:#a4cafe!important}.es-check-toggle:checked~.es-mail-toggle-line{background-color:#5850ec}.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%}[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 3px #5a67d8;box-shadow:0 0 3px 3px #5a67d8}.bg-white{background-color:#fff}.bg-gray-100{background-color:#f4f5f7}.bg-gray-200{background-color:#e5e7eb}.bg-gray-300{background-color:#d2d6dc}.bg-green-100{background-color:#def7ec}.bg-green-600{background-color:#057a55}.bg-indigo-500{background-color:#6875f5}.bg-indigo-600{background-color:#5850ec}.bg-indigo-800{background-color:#42389d}.hover\:bg-gray-50:hover{background-color:#f9fafb}.hover\:bg-gray-100:hover{background-color:#f4f5f7}.hover\:bg-green-500:hover{background-color:#0e9f6e}.hover\:bg-indigo-500:hover{background-color:#6875f5}.focus\:bg-gray-50:focus{background-color:#f9fafb}.focus\:bg-gray-100:focus{background-color:#f4f5f7}.border-collapse{border-collapse:collapse}.border-transparent{border-color:transparent}.border-gray-100{border-color:#f4f5f7}.border-gray-200{border-color:#e5e7eb}.border-gray-300{border-color:#d2d6dc}.border-gray-400{border-color:#9fa6b2}.border-indigo-600{border-color:#5850ec}.hover\:border-gray-200:hover{border-color:#e5e7eb}.hover\:border-indigo-500:hover{border-color:#6875f5}.focus\:border-blue-300:focus{border-color:#a4cafe}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.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-pointer{cursor:pointer}.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}.grid{display:grid}.table{display:table}.table-cell{display:table-cell}.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}.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}.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-shrink-0{-ms-flex-negative:0;flex-shrink:0}.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-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-0{height:0}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-15{height:3.75rem}.h-20{height:5rem}.h-48{height:12rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-none{line-height:1}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.list-disc{list-style-type:disc}.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-4{margin-top:1rem;margin-bottom:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.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-auto{margin-left:auto;margin-right:auto}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-1{margin-top:.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}.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-8{margin-top:2rem}.mr-8{margin-right:2rem}.mr-10{margin-right:2.5rem}.mt-12{margin-top:3rem}.ml-12{margin-left:3rem}.ml-16{margin-left:4rem}.mr-1\.5{margin-right:.375rem}.-mr-1{margin-right:-.25rem}.max-h-full{max-height:100%}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-full{min-width:100%}.opacity-0{opacity:0}.opacity-100{opacity:1}.focus\:outline-none:focus{outline:0}.overflow-hidden{overflow:hidden}.p-2{padding:.5rem}.p-3{padding:.75rem}.py-1{padding-top:.25rem;padding-bottom:.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}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.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}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pt-3{padding-top:.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}.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}.pl-10{padding-left:2.5rem}.pr-12{padding-right:3rem}.pl-16{padding-left:4rem}.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-y-0{top:0;bottom:0}.right-0{right:0}.left-0{left:0}.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-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-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-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)}.text-left{text-align:left}.text-center{text-align:center}.text-white{color:#fff}.text-black{color:#000}.text-gray-400{color:#9fa6b2}.text-gray-500{color:#6b7280}.text-gray-600{color:#4b5563}.text-gray-700{color:#374151}.text-gray-800{color:#252f3f}.text-gray-900{color:#161e2e}.text-red-600{color:#e02424}.text-orange-400{color:#ff8a4c}.text-orange-500{color:#ff5a1f}.text-yellow-400{color:#e3a008}.text-green-400{color:#31c48d}.text-green-600{color:#057a55}.text-green-800{color:#03543f}.text-blue-500{color:#3f83f8}.text-blue-700{color:#1a56db}.text-indigo-100{color:#e5edff}.text-indigo-400{color:#8da2fb}.text-indigo-500{color:#6875f5}.text-indigo-600{color:#5850ec}.hover\:text-white:hover{color:#fff}.hover\:text-gray-800:hover{color:#252f3f}.hover\:text-gray-900:hover{color:#161e2e}.hover\:text-blue-700:hover{color:#1a56db}.hover\:text-indigo-500:hover{color:#6875f5}.focus\:text-white:focus{color:#fff}.active\:text-gray-900:active,.focus\:text-gray-900:focus{color:#161e2e}.active\:text-indigo-600:active{color:#5850ec}.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-4xl{font-size:2.25rem}.italic{font-style:italic}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.no-underline{text-decoration:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.align-middle{vertical-align:middle}.whitespace-no-wrap{white-space:nowrap}.w-0{width:0}.w-4{width:1rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-40{width:10rem}.w-56{width:14rem}.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-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-9\/12{width:75%}.w-11\/12{width:91.666667%}.w-full{width:100%}.z-20{z-index:20}.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}.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}.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-300{-webkit-transition-duration:.3s;transition-duration:.3s}@media (min-width:640px){.sm\:rounded{border-radius:.25rem}.sm\:rounded-md{border-radius:.375rem}.sm\:border-r{border-right-width:1px}.sm\:border-l{border-left-width:1px}.sm\:grid{display:grid}.sm\:justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.sm\:leading-5{line-height:1.25rem}.sm\:leading-9{line-height:2.25rem}.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\:text-sm{font-size:.875rem}.sm\:text-2xl{font-size:1.5rem}.sm\:text-3xl{font-size:1.875rem}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:w-32{width:8rem}.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\: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-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.md\:justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.md\:my-2{margin-top:.5rem;margin-bottom:.5rem}.md\:mt-0{margin-top:0}.md\:ml-4{margin-left:1rem}.md\:py-0{padding-top:0;padding-bottom:0}.md\:pb-2{padding-bottom:.5rem}.md\:pr-4{padding-right:1rem}.md\:pt-6{padding-top:1.5rem}.md\:text-base{font-size:1rem}}@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\:inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.lg\:grid{display:grid}.lg\:my-0{margin-top:0;margin-bottom:0}.lg\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.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\:shadow-none{-webkit-box-shadow:none;box-shadow:none}.lg\:text-sm{font-size:.875rem}.lg\:text-lg{font-size:1.125rem}.lg\:w-40{width:10rem}.lg\:w-3\/12{width:25%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1280px){.xl\:mx-7{margin-left:1.75rem;margin-right:1.75rem}.xl\:pb-4{padding-bottom:1rem}.xl\:w-2\/12{width:16.666667%}}
|
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;padding:0}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}.ig-es-primary-button,.ig-es-send-queue-emails{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;padding:.5rem 1rem;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));font-size:.875rem;line-height:1.25rem;font-weight:500;--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity));--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,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-title-button,.wp-heading-inline+.page-title-action{font-size:.875rem;border-radius:.375rem;border-width:1px;--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));line-height:1.25rem;font-weight:500}.wp-heading-inline+.page-title-action{--text-opacity:1;color:#1c64f2;color:rgba(28,100,242,var(--text-opacity));padding:.5rem;margin-left:.5rem;margin-right:.5rem}.ig-es-title-button:hover,.wp-heading-inline+.page-title-action:hover{--border-opacity:1;border-color:#6875f5;border-color:rgba(104,117,245,var(--border-opacity));--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-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,.ig-es-title-button:focus,.wp-heading-inline+.page-title-action: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:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity));--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.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%}[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 3px #5a67d8;box-shadow:0 0 3px 3px #5a67d8}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,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-green-100{--bg-opacity:1;background-color:#def7ec;background-color:rgba(222,247,236,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-teal-100{--bg-opacity:1;background-color:#d5f5f6;background-color:rgba(213,245,246,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-800{--bg-opacity:1;background-color:#42389d;background-color:rgba(66,56,157,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-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))}.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))}.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-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-gray-500:hover{--border-opacity:1;border-color:#6b7280;border-color:rgba(107,114,128,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-500:hover{--border-opacity:1;border-color:#6875f5;border-color:rgba(104,117,245,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}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.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-auto{cursor:auto}.cursor-pointer{cursor:pointer}.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-cell{display:table-cell}.grid{display:grid}.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}.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}.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}.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-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-0{height:0}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-15{height:3.75rem}.h-20{height:5rem}.h-48{height:12rem}.h-auto{height:auto}.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-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-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-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}.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-auto{margin-left:auto;margin-right:auto}.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}.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-8{margin-top:2rem}.mr-8{margin-right:2rem}.mr-10{margin-right:2.5rem}.mt-12{margin-top:3rem}.ml-12{margin-left:3rem}.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-3\.5{margin-top:.875rem}.-mr-1{margin-right:-.25rem}.max-h-full{max-height:100%}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-full{min-width:100%}.opacity-0{opacity:0}.opacity-100{opacity:1}.focus\:outline-none:focus{outline:0}.overflow-hidden{overflow:hidden}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.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-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.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}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pt-3{padding-top:.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}.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}.pl-10{padding-left:2.5rem}.pr-12{padding-right:3rem}.pl-16{padding-left:4rem}.pt-1\.5{padding-top:.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-y-0{top:0;bottom:0}.top-0{top:0}.right-0{right:0}.left-0{left:0}.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)}.text-left{text-align:left}.text-center{text-align:center}.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-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-600{--text-opacity:1;color:#e02424;color:rgba(224,36,36,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-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-500{--text-opacity:1;color:#0694a2;color:rgba(6,148,162,var(--text-opacity))}.text-teal-700{--text-opacity:1;color:#036672;color:rgba(3,102,114,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))}.hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,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-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,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))}.italic{font-style:italic}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.no-underline{text-decoration:none}.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}.align-middle{vertical-align:middle}.whitespace-no-wrap{white-space:nowrap}.w-0{width:0}.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-10{width:2.5rem}.w-40{width:10rem}.w-56{width:14rem}.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-9\/12{width:75%}.w-11\/12{width:91.666667%}.w-full{width:100%}.z-20{z-index:20}.z-50{z-index:50}.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}.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}.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-300{-webkit-transition-duration:.3s;transition-duration:.3s}@media (min-width:640px){.sm\:rounded{border-radius:.25rem}.sm\:rounded-md{border-radius:.375rem}.sm\:border-r{border-right-width:1px}.sm\:border-l{border-left-width:1px}.sm\:grid{display:grid}.sm\:justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.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\: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\:px-8{padding-left:2rem;padding-right:2rem}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:w-32{width:8rem}.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\: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-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.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\: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\:pb-2{padding-bottom:.5rem}.md\:pr-4{padding-right:1rem}.md\:pt-6{padding-top:1.5rem}.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\:inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.lg\:grid{display:grid}.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\:ml-16{margin-left:4rem}.lg\:-mr-16{margin-right:-4rem}.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-7{padding-left:1.75rem;padding-right:1.75rem}.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\:shadow-none{-webkit-box-shadow:none;box-shadow:none}.lg\:w-40{width:10rem}.lg\:w-1\/2{width:50%}.lg\:w-3\/12{width:25%}.lg\:w-7\/12{width:58.333333%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@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\:px-4{padding-left:1rem;padding-right:1rem}.xl\:pb-4{padding-bottom:1rem}.xl\:w-3\/5{width:60%}.xl\:w-2\/12{width:16.666667%}}
|
lite/admin/images/spinner-2x.gif
ADDED
Binary file
|
lite/admin/js/email-subscribers-admin.js
CHANGED
@@ -14,7 +14,20 @@
|
|
14 |
|
15 |
$('.es_visible').change();
|
16 |
|
17 |
-
$('#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
$('#tabs-general').show();
|
20 |
|
@@ -26,22 +39,57 @@
|
|
26 |
var target = $(this).attr('href');
|
27 |
$('.setting-content' + target).show();
|
28 |
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
});
|
30 |
|
31 |
|
32 |
-
|
|
|
|
|
|
|
33 |
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
36 |
|
37 |
-
// Set Tab Height
|
38 |
-
$('.ui-tabs-anchor').click(function() {
|
39 |
-
var tab = $(this).attr('href');
|
40 |
-
$('#email_tabs_form').attr('action', tab);
|
41 |
-
var tabHight = $('div#es-settings-tabs div#menu-tab-content div' + tab).height() + 30;
|
42 |
-
$('div#es-settings-tabs div#menu-tab-listing ul').height(tabHight);
|
43 |
});
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
|
46 |
if (jQuery('.statusesselect').length) {
|
47 |
var statusselect = jQuery('.statusesselect')[0].outerHTML;
|
@@ -207,8 +255,10 @@
|
|
207 |
response = JSON.parse(response);
|
208 |
if (response.hasOwnProperty('total')) {
|
209 |
var total = response.total;
|
210 |
-
var total_contacts_text = "<
|
|
|
211 |
$('#ig_es_total_contacts').html(total_contacts_text);
|
|
|
212 |
if (total == 0) {
|
213 |
$('#ig_es_campaign_submit_button').attr("disabled", true);
|
214 |
} else {
|
@@ -238,10 +288,13 @@
|
|
238 |
if (response.hasOwnProperty('subject')) {
|
239 |
jQuery('.wp-editor-boradcast').val(response.body);
|
240 |
if ('undefined' !== typeof tinyMCE) {
|
|
|
241 |
var activeEditor = tinyMCE.get('edit-es-boradcast-body');
|
|
|
242 |
if (activeEditor !== null) { // Make sure we're not calling setContent on null
|
243 |
response.body = response.body.replace(/\n/g, "<br />");
|
244 |
activeEditor.setContent(response.body); // Update tinyMCE's content
|
|
|
245 |
}
|
246 |
}
|
247 |
|
@@ -251,6 +304,11 @@
|
|
251 |
if (response.es_utm_campaign && jQuery('#es_utm_campaign').length) {
|
252 |
jQuery('#es_utm_campaign').val(response.es_utm_campaign);
|
253 |
}
|
|
|
|
|
|
|
|
|
|
|
254 |
}
|
255 |
}
|
256 |
}
|
@@ -290,6 +348,7 @@
|
|
290 |
jQuery(this).unbind('submit').submit();
|
291 |
}
|
292 |
});
|
|
|
293 |
jQuery(document).on('click', '#ig_es_campaign_submit_button', function (e) {
|
294 |
if (jQuery('.wp-editor-boradcast').val() !== '') {
|
295 |
jQuery('.es-form').find('form').attr('target', '');
|
@@ -299,11 +358,10 @@
|
|
299 |
//add target new to go pro
|
300 |
jQuery('a[href="admin.php?page=es_pricing"]').attr('target', '_blank').attr('href', 'https://www.icegram.com/email-subscribers-pricing/');
|
301 |
|
302 |
-
$('.ig-es-campaign-status-toggle-label').
|
303 |
-
|
304 |
-
let
|
305 |
-
let
|
306 |
-
let new_campaign_status = $(checkbox_elem).prop('checked') ? 0 : 1;
|
307 |
let data = {
|
308 |
action: 'ig_es_toggle_campaign_status',
|
309 |
campaign_id: campaign_id,
|
@@ -316,160 +374,189 @@
|
|
316 |
data: data,
|
317 |
dataType: 'json',
|
318 |
success: function (response) {
|
319 |
-
if (response.success) {
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
}
|
324 |
},
|
325 |
error: function (err) {
|
326 |
-
alert(ig_es_js_data.ajax_error_message);
|
327 |
}
|
328 |
});
|
329 |
});
|
330 |
|
331 |
-
|
332 |
-
if( 'undefined' !== typeof background_process_data ) {
|
333 |
|
334 |
-
|
335 |
-
|
336 |
-
});
|
337 |
|
338 |
-
|
339 |
-
|
340 |
-
|
|
|
|
|
|
|
341 |
}
|
342 |
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
},5000);
|
347 |
}
|
348 |
-
jQuery('body').on('click', '#ig-es-cancel-contact-background-process', function(e){
|
349 |
-
e.preventDefault();
|
350 |
-
ig_es_cancel_contact_background_process();
|
351 |
-
});
|
352 |
-
}
|
353 |
-
});
|
354 |
-
|
355 |
-
})(jQuery);
|
356 |
|
357 |
-
|
358 |
-
|
359 |
-
}
|
360 |
|
361 |
-
|
362 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
363 |
|
364 |
-
|
365 |
-
var background_progress_request = null;
|
366 |
|
367 |
-
|
368 |
-
|
369 |
-
let target_element = target_dom.find('#ig_es_background_process_percentage');
|
370 |
-
let percent_completion = progress_data.percent_completion;
|
371 |
|
372 |
-
|
373 |
-
|
374 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
375 |
|
376 |
-
function
|
377 |
-
|
378 |
-
|
379 |
-
}
|
380 |
-
}
|
381 |
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
}
|
|
|
|
|
|
|
387 |
|
388 |
-
|
389 |
-
|
390 |
-
background_progress_request = jQuery.ajax({
|
391 |
-
url: ajaxurl,
|
392 |
-
method: 'post',
|
393 |
-
dataType: 'json',
|
394 |
-
data: {
|
395 |
-
action: 'ig_es_contact_background_progress',
|
396 |
-
security: ig_es_js_data.security
|
397 |
-
},
|
398 |
-
success: function( response ) {
|
399 |
|
400 |
-
|
|
|
|
|
|
|
|
|
|
|
401 |
|
402 |
-
|
403 |
-
percent_completion: response.percent_completion
|
404 |
-
}
|
405 |
|
406 |
-
|
407 |
|
408 |
-
|
409 |
-
|
410 |
-
clearInterval(background_progress_interval_callback);
|
411 |
-
ig_es_get_background_process_results();
|
412 |
-
}
|
413 |
-
target_dom.show();
|
414 |
-
ig_es_start_contact_background_progress_percentage( progress_data, target_dom );
|
415 |
-
}
|
416 |
-
}
|
417 |
-
});
|
418 |
}
|
419 |
|
|
|
|
|
|
|
420 |
|
421 |
-
|
422 |
-
jQuery.
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
action: 'ig_es_get_background_process_results',
|
428 |
-
security: ig_es_js_data.security
|
429 |
-
},
|
430 |
-
success: function( response ) {
|
431 |
-
if( 'undefined' !== typeof response.response_html && '' !== response.response_html ) {
|
432 |
-
|
433 |
-
// Check if results already shown then return.
|
434 |
-
if( 1 === jQuery('#ig_es_contact_background_results').length ) {
|
435 |
-
return;
|
436 |
-
}
|
437 |
|
438 |
-
let result_html = jQuery.parseHTML( response.response_html );
|
439 |
-
// If there is background process progress message being shown then replace it with background process result html else show background process result after page heading.
|
440 |
-
if( 1 === jQuery('#ig_es_contact_background_progress').length ) {
|
441 |
-
jQuery('#ig_es_contact_background_progress').replaceWith( result_html );
|
442 |
-
} else {
|
443 |
-
jQuery(result_html).insertAfter( '.wp-heading-inline' );
|
444 |
-
}
|
445 |
-
ig_es_enable_import_form();
|
446 |
-
}
|
447 |
-
}
|
448 |
-
});
|
449 |
-
}
|
450 |
|
451 |
-
|
452 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
453 |
jQuery.ajax({
|
|
|
454 |
url: ajaxurl,
|
455 |
-
|
456 |
dataType: 'json',
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
461 |
}
|
462 |
},
|
463 |
-
|
464 |
-
|
465 |
-
security: ig_es_js_data.security
|
466 |
-
},
|
467 |
-
success: function( response ) {
|
468 |
-
if( 'undefined' !== typeof response.response_html && '' !== response.response_html ) {
|
469 |
-
let response_html = jQuery.parseHTML( response.response_html );
|
470 |
-
jQuery('#ig_es_contact_background_progress').replaceWith( response_html );
|
471 |
-
ig_es_enable_import_form();
|
472 |
-
}
|
473 |
}
|
|
|
|
|
474 |
});
|
475 |
-
}
|
14 |
|
15 |
$('.es_visible').change();
|
16 |
|
17 |
+
$('#menu-nav li:first-child').addClass('active').find('a').addClass('active');
|
18 |
+
$('.setting-content').hide();
|
19 |
+
$('.setting-content:first').show();
|
20 |
+
|
21 |
+
$('#menu-nav li').click(function(){
|
22 |
+
$('#menu-nav li,#menu-nav li a').removeClass('active');
|
23 |
+
$(this).addClass('active').find('a').addClass('active');
|
24 |
+
$('.setting-content').hide();
|
25 |
+
var activeTab = $(this).find('a').attr('href');
|
26 |
+
$(activeTab).show();
|
27 |
+
return false;
|
28 |
+
});
|
29 |
+
|
30 |
+
/*$('#tabs-signup_confirmation, #tabs-email_sending, #tabs-security_settings, #tabs-user_roles').hide();
|
31 |
|
32 |
$('#tabs-general').show();
|
33 |
|
39 |
var target = $(this).attr('href');
|
40 |
$('.setting-content' + target).show();
|
41 |
return false;
|
42 |
+
});*/
|
43 |
+
|
44 |
+
$(".next_btn, #summary_menu").click(function() {
|
45 |
+
var $fieldset = $(this).closest('.es_fieldset');
|
46 |
+
$fieldset.next().find('div.es_broadcast_second').fadeIn('normal');
|
47 |
+
$fieldset.find('.es_broadcast_first').hide();
|
48 |
+
|
49 |
+
$fieldset.find('#broadcast_button1,#broadcast_button2').show();
|
50 |
+
$fieldset.find('#broadcast_button').hide();
|
51 |
+
|
52 |
+
$('#content_menu').removeClass("active");
|
53 |
+
$('#summary_menu').addClass("active");
|
54 |
+
//$('.active').removeClass('active').next().addClass('active');
|
55 |
+
|
56 |
+
// Trigger template content changed event to update email preview.
|
57 |
+
$('.wp-editor-boradcast').trigger('change');
|
58 |
+
|
59 |
});
|
60 |
|
61 |
|
62 |
+
$(".pre_btn, #content_menu").click(function() {
|
63 |
+
var $fieldset = $(this).closest('.es_fieldset');
|
64 |
+
$fieldset.find('.es_broadcast_first').fadeIn('normal');
|
65 |
+
$fieldset.next().find('.es_broadcast_second').hide();
|
66 |
|
67 |
+
$fieldset.find('#broadcast_button').show();
|
68 |
+
$fieldset.find('#broadcast_button1, #broadcast_button2').hide();
|
69 |
+
|
70 |
+
$('#summary_menu').removeClass("active");
|
71 |
+
$('#content_menu').addClass("active");
|
72 |
+
//$('.active').removeClass('active').prev().addClass('active');
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
});
|
75 |
+
|
76 |
+
$("input:radio[name='broadcast_data[scheduling_option]']").click(function() {
|
77 |
+
|
78 |
+
let scheduling_option = $(this).val();
|
79 |
+
if( 'schedule_later' === scheduling_option ) {
|
80 |
+
$('.display_schedule').removeClass('hidden');
|
81 |
+
} else {
|
82 |
+
$('.display_schedule').addClass('hidden');
|
83 |
+
}
|
84 |
+
});
|
85 |
+
|
86 |
+
$('#preview_template').hide();
|
87 |
+
$('#spam_score_modal').hide();
|
88 |
+
|
89 |
+
$("#close_template").on('click', function (event) {
|
90 |
+
event.preventDefault();
|
91 |
+
$('#preview_template').hide();
|
92 |
+
});
|
93 |
|
94 |
if (jQuery('.statusesselect').length) {
|
95 |
var statusselect = jQuery('.statusesselect')[0].outerHTML;
|
255 |
response = JSON.parse(response);
|
256 |
if (response.hasOwnProperty('total')) {
|
257 |
var total = response.total;
|
258 |
+
var total_contacts_text = "<h2 class='text-sm font-normal text-gray-600'>Total Contacts: <span class='text-base font-medium text-gray-700'> " + total + "</span></h2>";
|
259 |
+
var total_recipients_text = "<span class='font-medium text-base text-gray-700'>" + total + " <span class='text-base font-medium text-gray-700'></span><span class='font-normal text-sm text-gray-500'> recipients </span>";
|
260 |
$('#ig_es_total_contacts').html(total_contacts_text);
|
261 |
+
$('#ig_es_total_recipients').html(total_recipients_text);
|
262 |
if (total == 0) {
|
263 |
$('#ig_es_campaign_submit_button').attr("disabled", true);
|
264 |
} else {
|
288 |
if (response.hasOwnProperty('subject')) {
|
289 |
jQuery('.wp-editor-boradcast').val(response.body);
|
290 |
if ('undefined' !== typeof tinyMCE) {
|
291 |
+
|
292 |
var activeEditor = tinyMCE.get('edit-es-boradcast-body');
|
293 |
+
|
294 |
if (activeEditor !== null) { // Make sure we're not calling setContent on null
|
295 |
response.body = response.body.replace(/\n/g, "<br />");
|
296 |
activeEditor.setContent(response.body); // Update tinyMCE's content
|
297 |
+
|
298 |
}
|
299 |
}
|
300 |
|
304 |
if (response.es_utm_campaign && jQuery('#es_utm_campaign').length) {
|
305 |
jQuery('#es_utm_campaign').val(response.es_utm_campaign);
|
306 |
}
|
307 |
+
|
308 |
+
if( 1 === $('#edit-es-boradcast-body').length ) {
|
309 |
+
tinyMCE.triggerSave();
|
310 |
+
$('#edit-es-boradcast-body').trigger('change');
|
311 |
+
}
|
312 |
}
|
313 |
}
|
314 |
}
|
348 |
jQuery(this).unbind('submit').submit();
|
349 |
}
|
350 |
});
|
351 |
+
|
352 |
jQuery(document).on('click', '#ig_es_campaign_submit_button', function (e) {
|
353 |
if (jQuery('.wp-editor-boradcast').val() !== '') {
|
354 |
jQuery('.es-form').find('form').attr('target', '');
|
358 |
//add target new to go pro
|
359 |
jQuery('a[href="admin.php?page=es_pricing"]').attr('target', '_blank').attr('href', 'https://www.icegram.com/email-subscribers-pricing/');
|
360 |
|
361 |
+
$('.ig-es-campaign-status-toggle-label input[type="checkbox"]').change(function() {
|
362 |
+
let checkbox_elem = $(this);
|
363 |
+
let campaign_id = $(checkbox_elem).val();
|
364 |
+
let new_campaign_status = $(checkbox_elem).prop('checked') ? 1 : 0;
|
|
|
365 |
let data = {
|
366 |
action: 'ig_es_toggle_campaign_status',
|
367 |
campaign_id: campaign_id,
|
374 |
data: data,
|
375 |
dataType: 'json',
|
376 |
success: function (response) {
|
377 |
+
if ( !response.success ) {
|
378 |
+
alert( ig_es_js_data.i18n_data.ajax_error_message );
|
379 |
+
// Revert back toggle status.
|
380 |
+
$(checkbox_elem).prop( 'checked', ! new_campaign_status );
|
381 |
}
|
382 |
},
|
383 |
error: function (err) {
|
384 |
+
alert( ig_es_js_data.i18n_data.ajax_error_message );
|
385 |
}
|
386 |
});
|
387 |
});
|
388 |
|
389 |
+
$('.ig_es_draft_broadcast, .next_btn, #summary_menu').on('click', function(e) {
|
|
|
390 |
|
391 |
+
let trigger_elem = $(this);
|
392 |
+
let is_draft_bttuon = $(trigger_elem).hasClass('ig_es_draft_broadcast');
|
|
|
393 |
|
394 |
+
let broadcast_subject = $('#ig_es_broadcast_subject').val();
|
395 |
+
if( '' === broadcast_subject ) {
|
396 |
+
if( is_draft_bttuon ) {
|
397 |
+
alert( ig_es_js_data.i18n_data.broadcast_subject_empty_message );
|
398 |
+
}
|
399 |
+
return;
|
400 |
}
|
401 |
|
402 |
+
// If draft button is clicked then change broadcast status to draft..
|
403 |
+
if( is_draft_bttuon ) {
|
404 |
+
$('#broadcast_status').val(0);
|
|
|
405 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
406 |
|
407 |
+
// Trigger save event for content of wp_editor instances.
|
408 |
+
window.tinyMCE.triggerSave();
|
|
|
409 |
|
410 |
+
let form_data = $(this).closest('form').serialize();
|
411 |
+
// Add action to form data
|
412 |
+
form_data += form_data + '&action=ig_es_draft_broadcast&security=' + ig_es_js_data.security;
|
413 |
+
jQuery.ajax({
|
414 |
+
method: 'POST',
|
415 |
+
url: ajaxurl,
|
416 |
+
data: form_data,
|
417 |
+
dataType: 'json',
|
418 |
+
beforeSend: function() {
|
419 |
+
// Prevent submit button untill saving is complete.
|
420 |
+
$('#ig_es_broadcast_submitted').addClass('opacity-50 cursor-not-allowed').attr('disabled','disabled');
|
421 |
+
},
|
422 |
+
success: function (response) {
|
423 |
+
if (response.success) {
|
424 |
+
if( 'undefined' !== typeof response.data ) {
|
425 |
+
let response_data = response.data;
|
426 |
+
let broadcast_id = response_data.broadcast_id;
|
427 |
+
$('#broadcast_id').val( broadcast_id );
|
428 |
+
if( is_draft_bttuon ) {
|
429 |
+
alert( ig_es_js_data.i18n_data.broadcast_draft_success_message );
|
430 |
+
}
|
431 |
+
} else {
|
432 |
+
if( is_draft_bttuon ) {
|
433 |
+
alert( ig_es_js_data.i18n_data.broadcast_draft_error_message );
|
434 |
+
}
|
435 |
+
}
|
436 |
+
} else {
|
437 |
+
alert( ig_es_js_data.i18n_data.ajax_error_message );
|
438 |
+
}
|
439 |
+
},
|
440 |
+
error: function (err) {
|
441 |
+
alert( ig_es_js_data.i18n_data.ajax_error_message );
|
442 |
+
}
|
443 |
+
}).always(function(){
|
444 |
+
$('#ig_es_broadcast_submitted').removeClass('opacity-50 cursor-not-allowed').removeAttr('disabled');
|
445 |
+
});
|
446 |
+
});
|
447 |
|
448 |
+
$('.wp-editor-boradcast, #edit-es-boradcast-body,#ig_es_broadcast_subject,#ig_es_broadcast_list_ids').on('change',function(event){
|
|
|
449 |
|
450 |
+
// Trigger save event for content of wp_editor instances before processing it.
|
451 |
+
window.tinyMCE.triggerSave();
|
|
|
|
|
452 |
|
453 |
+
let form_data = $(this).closest('form').serialize();
|
454 |
+
// Add action to form data
|
455 |
+
form_data += form_data + '&action=ig_es_preview_broadcast&preview_type=inline&security=' + ig_es_js_data.security;
|
456 |
+
jQuery.ajax({
|
457 |
+
method: 'POST',
|
458 |
+
url: ajaxurl,
|
459 |
+
data: form_data,
|
460 |
+
dataType: 'json',
|
461 |
+
success: function (response) {
|
462 |
+
if (response.success) {
|
463 |
+
if( 'undefined' !== typeof response.data ) {
|
464 |
+
let response_data = response.data;
|
465 |
+
let template_html = response_data.template_html;
|
466 |
+
let broadcast_subject = response_data.broadcast_subject;
|
467 |
+
let contact_name = response_data.contact_name;
|
468 |
+
let contact_email = response_data.contact_email;
|
469 |
+
$('.broadcast_preview_subject').html(broadcast_subject);
|
470 |
+
$('.broadcast_preview_contact_name').html(contact_name);
|
471 |
+
if( '' !== contact_email ) {
|
472 |
+
$('.broadcast_preview_contact_email').html( '<' + contact_email + '>');
|
473 |
+
}
|
474 |
+
$('.broadcast_preview_content').html(template_html);
|
475 |
+
}
|
476 |
+
} else {
|
477 |
+
alert( ig_es_js_data.i18n_data.ajax_error_message );
|
478 |
+
}
|
479 |
+
},
|
480 |
+
error: function (err) {
|
481 |
+
alert( ig_es_js_data.i18n_data.ajax_error_message );
|
482 |
+
}
|
483 |
+
});
|
484 |
+
});
|
485 |
|
486 |
+
$('#es_test_email_btn').on('click', function(){
|
487 |
+
let preview_option = $('[name="preview_option"]:checked').val();
|
488 |
+
let template_button = $('#es_test_email_btn');
|
|
|
|
|
489 |
|
490 |
+
$(template_button).parent().find('.es-send-success').hide();
|
491 |
+
$(template_button).parent().find('.es-send-error').hide();
|
492 |
+
if( 'preview_in_popup' === preview_option ) {
|
493 |
+
ig_es_show_broadcast_preview_in_popup();
|
494 |
+
} else if( 'preview_in_email' === preview_option ) {
|
495 |
+
ig_es_send_broadcast_preview_email();
|
496 |
+
}
|
497 |
+
});
|
498 |
|
499 |
+
$('#broadcast_form [name="preview_option"]').on('click',function(){
|
500 |
+
let preview_option = $('[name="preview_option"]:checked').val();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
501 |
|
502 |
+
if( 'preview_in_email' === preview_option ) {
|
503 |
+
$('#es_test_send_email').show();
|
504 |
+
} else {
|
505 |
+
$('#es_test_send_email').hide();
|
506 |
+
}
|
507 |
+
});
|
508 |
|
509 |
+
});
|
|
|
|
|
510 |
|
511 |
+
})(jQuery);
|
512 |
|
513 |
+
function checkDelete() {
|
514 |
+
return confirm('Are you sure?');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
515 |
}
|
516 |
|
517 |
+
function ig_es_show_broadcast_preview_in_popup() {
|
518 |
+
// Trigger save event for content of wp_editor instances before processing it.
|
519 |
+
window.tinyMCE.triggerSave();
|
520 |
|
521 |
+
let content = jQuery('.wp-editor-boradcast').val();
|
522 |
+
if (jQuery("#wp-edit-es-boradcast-body-wrap").hasClass("tmce-active")){
|
523 |
+
content = tinyMCE.activeEditor.getContent();
|
524 |
+
}else{
|
525 |
+
content = jQuery('.wp-editor-boradcast').val();
|
526 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
527 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
528 |
|
529 |
+
if( !content ){
|
530 |
+
alert( ig_es_js_data.i18n_data.empty_template_message );
|
531 |
+
return;
|
532 |
+
}
|
533 |
+
|
534 |
+
let template_button = jQuery('#es_test_email_btn');
|
535 |
+
jQuery(template_button).next('.es-loader').show();
|
536 |
+
let form_data = jQuery('#es_test_email_btn').closest('form').serialize();
|
537 |
+
// Add action to form data
|
538 |
+
form_data += form_data + '&action=ig_es_preview_broadcast&security=' + ig_es_js_data.security;
|
539 |
jQuery.ajax({
|
540 |
+
method: 'POST',
|
541 |
url: ajaxurl,
|
542 |
+
data: form_data,
|
543 |
dataType: 'json',
|
544 |
+
success: function (response) {
|
545 |
+
if (response.success) {
|
546 |
+
if( 'undefined' !== typeof response.data ) {
|
547 |
+
let response_data = response.data;
|
548 |
+
let template_html = response_data.template_html;
|
549 |
+
jQuery('.broadcast_preview_container').html(template_html);
|
550 |
+
jQuery('#preview_template').load().show();
|
551 |
+
}
|
552 |
+
} else {
|
553 |
+
alert( ig_es_js_data.i18n_data.ajax_error_message );
|
554 |
}
|
555 |
},
|
556 |
+
error: function (err) {
|
557 |
+
alert( ig_es_js_data.i18n_data.ajax_error_message );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
558 |
}
|
559 |
+
}).done(function(){
|
560 |
+
jQuery(template_button).next('.es-loader').hide();
|
561 |
});
|
562 |
+
}
|
lite/admin/partials/dashboard.php
CHANGED
@@ -56,14 +56,14 @@ $topics_indexes = array_rand( $topics, 3 );
|
|
56 |
<div class="md:flex md:items-center md:justify-between">
|
57 |
<div class="flex-1 min-w-0">
|
58 |
<h2 class="text-2xl font-bold leading-7 text-gray-900 sm:text-3xl sm:leading-9 sm:truncate">
|
59 |
-
<?php _e( 'Dashboard', '
|
60 |
</h2>
|
61 |
</div>
|
62 |
<div class="flex mt-4 md:mt-0 md:ml-4">
|
63 |
<a href="<?php echo $audience_url; ?>">
|
64 |
<span class="rounded-md shadow-sm">
|
65 |
<button type="button" class="inline-flex items-center px-4 py-2 text-sm font-medium leading-5 text-gray-700 transition duration-150 ease-in-out bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:shadow-outline focus:border-blue-300">
|
66 |
-
<?php _e( 'Audience', '
|
67 |
</button>
|
68 |
</span>
|
69 |
</a>
|
@@ -72,7 +72,7 @@ $topics_indexes = array_rand( $topics, 3 );
|
|
72 |
<div>
|
73 |
<span class="rounded-md shadow-sm">
|
74 |
<button type="button" class="w-full ig-es-primary-button">
|
75 |
-
<?php _e( 'Create', '
|
76 |
<svg class="w-5 h-5 ml-2 -mr-1" fill="currentColor" viewBox="0 0 20 20">
|
77 |
<path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
|
78 |
</svg>
|
@@ -83,26 +83,26 @@ $topics_indexes = array_rand( $topics, 3 );
|
|
83 |
x-transition:leave-end="transform opacity-0 scale-95" class="absolute right-0 hidden w-56 mt-2 origin-top-right rounded-md shadow-lg">
|
84 |
<div class="bg-white rounded-md shadow-xs">
|
85 |
<div class="py-1">
|
86 |
-
<a href="<?php echo $new_broadcast_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Broadcast', '
|
87 |
|
88 |
-
<a href="<?php echo $new_post_notification_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Post Notification', '
|
89 |
|
90 |
<?php if ( ES()->is_pro() ) { ?>
|
91 |
-
<a href="<?php echo $new_sequence_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Sequence', '
|
92 |
<?php } else { ?>
|
93 |
-
<a href="<?php echo $icegram_pricing_url; ?>" target="_blank" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Sequence', '
|
94 |
-
<span class="inline-flex px-2 text-xs font-semibold leading-5 text-green-800 bg-green-100 rounded-full"><?php _e( 'Premium', '
|
95 |
<?php } ?>
|
96 |
</div>
|
97 |
<div class="border-t border-gray-100"></div>
|
98 |
<div class="py-1">
|
99 |
-
<a href="<?php echo $new_template_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Template', '
|
100 |
</div>
|
101 |
<div class="border-t border-gray-100"></div>
|
102 |
<div class="py-1">
|
103 |
-
<a href="<?php echo $new_form_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Form', '
|
104 |
-
<a href="<?php echo $new_list_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New List', '
|
105 |
-
<a href="<?php echo $new_contact_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Contact', '
|
106 |
</div>
|
107 |
</div>
|
108 |
</div>
|
@@ -117,7 +117,7 @@ $topics_indexes = array_rand( $topics, 3 );
|
|
117 |
<section class="py-4 my-8 bg-white rounded-lg shadow md:flex md:items-start md:justify-between sm:px-4 sm:px-0 sm:grid sm:grid-cols-3">
|
118 |
<div class="flex-1 min-w-0">
|
119 |
<p class="px-3 text-lg font-medium leading-6 text-gray-400">
|
120 |
-
<span class="text-black"><?php echo $active_contacts; ?></span><?php _e( ' active contacts', '
|
121 |
</p>
|
122 |
<div class="text-center bg-white-100" id="ig-es-contacts-growth">
|
123 |
|
@@ -125,7 +125,7 @@ $topics_indexes = array_rand( $topics, 3 );
|
|
125 |
</div>
|
126 |
<div class="flex-1 min-w-0">
|
127 |
<p class="px-3 text-lg font-medium leading-6 text-gray-400">
|
128 |
-
<?php _e( 'Last 60 days', '
|
129 |
</p>
|
130 |
<div class="sm:grid sm:grid-cols-2">
|
131 |
<div class="p-3">
|
@@ -133,7 +133,7 @@ $topics_indexes = array_rand( $topics, 3 );
|
|
133 |
<?php echo $total_email_opens; ?>
|
134 |
</p>
|
135 |
<p class="mt-1 font-medium leading-6 text-gray-500">
|
136 |
-
<?php _e( 'Opens', '
|
137 |
</p>
|
138 |
</div>
|
139 |
<div class="p-3">
|
@@ -141,7 +141,7 @@ $topics_indexes = array_rand( $topics, 3 );
|
|
141 |
<?php echo $avg_open_rate; ?> %
|
142 |
</p>
|
143 |
<p class="mt-1 font-medium leading-6 text-gray-500">
|
144 |
-
<?php _e( ' Avg Open Rate', '
|
145 |
</p>
|
146 |
</div>
|
147 |
<div class="p-3">
|
@@ -149,7 +149,7 @@ $topics_indexes = array_rand( $topics, 3 );
|
|
149 |
<?php echo $total_message_sent; ?>
|
150 |
</p>
|
151 |
<p class="mt-1 font-medium leading-6 text-gray-500">
|
152 |
-
<?php _e( 'Messages Sent', '
|
153 |
</p>
|
154 |
</div>
|
155 |
<div class="p-3">
|
@@ -157,7 +157,7 @@ $topics_indexes = array_rand( $topics, 3 );
|
|
157 |
<?php echo $avg_click_rate; ?> %
|
158 |
</p>
|
159 |
<p class="mt-1 font-medium leading-6 text-gray-500">
|
160 |
-
<?php _e( 'Avg Click Rate', '
|
161 |
</p>
|
162 |
</div>
|
163 |
</div>
|
@@ -190,10 +190,10 @@ $topics_indexes = array_rand( $topics, 3 );
|
|
190 |
<li class="">
|
191 |
<div class="px-2 py-2 text-sm leading-5 text-gray-900 sm:px-2">
|
192 |
|
193 |
-
<?php _e( 'Jump to: ', '
|
194 |
href="<?php echo $settings_url; ?>"
|
195 |
class="font-bold" target="_blank"><?php _e( 'Settings',
|
196 |
-
'
|
197 |
|
198 |
</div>
|
199 |
</li>
|
56 |
<div class="md:flex md:items-center md:justify-between">
|
57 |
<div class="flex-1 min-w-0">
|
58 |
<h2 class="text-2xl font-bold leading-7 text-gray-900 sm:text-3xl sm:leading-9 sm:truncate">
|
59 |
+
<?php _e( 'Dashboard', 'email-subscribers' ); ?>
|
60 |
</h2>
|
61 |
</div>
|
62 |
<div class="flex mt-4 md:mt-0 md:ml-4">
|
63 |
<a href="<?php echo $audience_url; ?>">
|
64 |
<span class="rounded-md shadow-sm">
|
65 |
<button type="button" class="inline-flex items-center px-4 py-2 text-sm font-medium leading-5 text-gray-700 transition duration-150 ease-in-out bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:shadow-outline focus:border-blue-300">
|
66 |
+
<?php _e( 'Audience', 'email-subscribers' ); ?>
|
67 |
</button>
|
68 |
</span>
|
69 |
</a>
|
72 |
<div>
|
73 |
<span class="rounded-md shadow-sm">
|
74 |
<button type="button" class="w-full ig-es-primary-button">
|
75 |
+
<?php _e( 'Create', 'email-subscribers' ); ?>
|
76 |
<svg class="w-5 h-5 ml-2 -mr-1" fill="currentColor" viewBox="0 0 20 20">
|
77 |
<path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
|
78 |
</svg>
|
83 |
x-transition:leave-end="transform opacity-0 scale-95" class="absolute right-0 hidden w-56 mt-2 origin-top-right rounded-md shadow-lg">
|
84 |
<div class="bg-white rounded-md shadow-xs">
|
85 |
<div class="py-1">
|
86 |
+
<a href="<?php echo $new_broadcast_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Broadcast', 'email-subscribers' ); ?></a>
|
87 |
|
88 |
+
<a href="<?php echo $new_post_notification_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Post Notification', 'email-subscribers' ); ?></a>
|
89 |
|
90 |
<?php if ( ES()->is_pro() ) { ?>
|
91 |
+
<a href="<?php echo $new_sequence_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Sequence', 'email-subscribers' ); ?></a>
|
92 |
<?php } else { ?>
|
93 |
+
<a href="<?php echo $icegram_pricing_url; ?>" target="_blank" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Sequence', 'email-subscribers' ); ?>
|
94 |
+
<span class="inline-flex px-2 text-xs font-semibold leading-5 text-green-800 bg-green-100 rounded-full"><?php _e( 'Premium', 'email-subscribers' ); ?></span></a>
|
95 |
<?php } ?>
|
96 |
</div>
|
97 |
<div class="border-t border-gray-100"></div>
|
98 |
<div class="py-1">
|
99 |
+
<a href="<?php echo $new_template_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Template', 'email-subscribers' ); ?></a>
|
100 |
</div>
|
101 |
<div class="border-t border-gray-100"></div>
|
102 |
<div class="py-1">
|
103 |
+
<a href="<?php echo $new_form_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Form', 'email-subscribers' ); ?></a>
|
104 |
+
<a href="<?php echo $new_list_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New List', 'email-subscribers' ); ?></a>
|
105 |
+
<a href="<?php echo $new_contact_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Contact', 'email-subscribers' ); ?></a>
|
106 |
</div>
|
107 |
</div>
|
108 |
</div>
|
117 |
<section class="py-4 my-8 bg-white rounded-lg shadow md:flex md:items-start md:justify-between sm:px-4 sm:px-0 sm:grid sm:grid-cols-3">
|
118 |
<div class="flex-1 min-w-0">
|
119 |
<p class="px-3 text-lg font-medium leading-6 text-gray-400">
|
120 |
+
<span class="text-black"><?php echo $active_contacts; ?></span><?php _e( ' active contacts', 'email-subscribers' ); ?>
|
121 |
</p>
|
122 |
<div class="text-center bg-white-100" id="ig-es-contacts-growth">
|
123 |
|
125 |
</div>
|
126 |
<div class="flex-1 min-w-0">
|
127 |
<p class="px-3 text-lg font-medium leading-6 text-gray-400">
|
128 |
+
<?php _e( 'Last 60 days', 'email-subscribers' ); ?>
|
129 |
</p>
|
130 |
<div class="sm:grid sm:grid-cols-2">
|
131 |
<div class="p-3">
|
133 |
<?php echo $total_email_opens; ?>
|
134 |
</p>
|
135 |
<p class="mt-1 font-medium leading-6 text-gray-500">
|
136 |
+
<?php _e( 'Opens', 'email-subscribers' ); ?>
|
137 |
</p>
|
138 |
</div>
|
139 |
<div class="p-3">
|
141 |
<?php echo $avg_open_rate; ?> %
|
142 |
</p>
|
143 |
<p class="mt-1 font-medium leading-6 text-gray-500">
|
144 |
+
<?php _e( ' Avg Open Rate', 'email-subscribers' ); ?>
|
145 |
</p>
|
146 |
</div>
|
147 |
<div class="p-3">
|
149 |
<?php echo $total_message_sent; ?>
|
150 |
</p>
|
151 |
<p class="mt-1 font-medium leading-6 text-gray-500">
|
152 |
+
<?php _e( 'Messages Sent', 'email-subscribers' ); ?>
|
153 |
</p>
|
154 |
</div>
|
155 |
<div class="p-3">
|
157 |
<?php echo $avg_click_rate; ?> %
|
158 |
</p>
|
159 |
<p class="mt-1 font-medium leading-6 text-gray-500">
|
160 |
+
<?php _e( 'Avg Click Rate', 'email-subscribers' ); ?>
|
161 |
</p>
|
162 |
</div>
|
163 |
</div>
|
190 |
<li class="">
|
191 |
<div class="px-2 py-2 text-sm leading-5 text-gray-900 sm:px-2">
|
192 |
|
193 |
+
<?php _e( 'Jump to: ', 'email-subscribers' ); ?><a href="<?php echo $reports_url; ?>" class="font-bold" target="_blank"><?php _e( 'Reports', 'email-subscribers' ); ?></a> ・<a href="<?php echo $templates_url; ?>" class="font-bold" target="_blank"><?php _e( 'Templates', 'email-subscribers' ); ?></a> ・<a
|
194 |
href="<?php echo $settings_url; ?>"
|
195 |
class="font-bold" target="_blank"><?php _e( 'Settings',
|
196 |
+
'email-subscribers' ); ?></a>
|
197 |
|
198 |
</div>
|
199 |
</li>
|
lite/admin/partials/help.php
CHANGED
@@ -76,10 +76,10 @@ $articles = array(
|
|
76 |
);
|
77 |
|
78 |
?>
|
79 |
-
<h1 class="mt-4 wp-heading-inline"><span class="text-2xl font-
|
80 |
-
<div class="
|
81 |
-
<div class="container
|
82 |
-
<div class="inline-block pl-2 border-r border-dashed
|
83 |
<div class="max-h-full" id="features_display">
|
84 |
<div class="pt-6 pb-6 pl-2 mt-2">
|
85 |
<ul class="mx-6 leading-relaxed list-disc">
|
@@ -155,7 +155,7 @@ $articles = array(
|
|
155 |
|
156 |
<div class="container flex flex-wrap w-full mt-4">
|
157 |
<div class="block mt-6">
|
158 |
-
<h3 class="text-2xl font-medium text-gray-700"><?php _e( 'Other awesome plugins from same author', '
|
159 |
</div>
|
160 |
<div class="grid w-full grid-cols-3 py-2 my-4">
|
161 |
<?php foreach ( $plugins as $plugin ) { ?>
|
@@ -184,11 +184,11 @@ $articles = array(
|
|
184 |
<div class="flex flex-row mb-0 border-t">
|
185 |
<div class="flex w-2/3 px-3 py-5 text-sm"><?php _e( 'Status', 'email-subscribers' ); ?>:
|
186 |
<?php if ( in_array( $plugin['name'], $active_plugins ) ) { ?>
|
187 |
-
<span class="font-bold text-green-600"> <?php _e( 'Active', '
|
188 |
<?php } elseif ( in_array( $plugin['name'], $inactive_plugins ) ) { ?>
|
189 |
-
<span class="font-bold text-red-600"> <?php _e( 'Inactive', '
|
190 |
<?php } else { ?>
|
191 |
-
<span class="font-bold text-orange-500"> <?php _e( 'Not Installed', '
|
192 |
<?php } ?>
|
193 |
</div>
|
194 |
<div class="flex justify-center w-1/3 py-3 md:pr-4">
|
@@ -199,10 +199,10 @@ $articles = array(
|
|
199 |
|
200 |
if ( ! in_array( $plugin['name'], $all_plugins ) ) { ?>
|
201 |
<button type="button" class="inline-flex justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white transition duration-150 ease-in-out bg-white bg-green-600 border border-transparent rounded-md hover:bg-green-500 focus:outline-none focus:shadow-outline-blue">
|
202 |
-
<?php _e( 'Install', '
|
203 |
<?php } elseif ( in_array( $plugin['name'], $inactive_plugins ) ) { ?>
|
204 |
<button type="button" class="inline-flex justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white transition duration-150 ease-in-out bg-white bg-indigo-600 border border-transparent rounded-md hover:bg-indigo-500 focus:outline-none focus:shadow-outline-blue">
|
205 |
-
<?php _e( 'Activate', '
|
206 |
<?php } ?>
|
207 |
</a>
|
208 |
</span>
|
76 |
);
|
77 |
|
78 |
?>
|
79 |
+
<h1 class="mt-4 wp-heading-inline"><span class="text-2xl font-medium leading-7 text-gray-900 sm:leading-9 sm:truncate"><?php _e( 'Help & Info', 'email-subscribers' ) ?></span></h1>
|
80 |
+
<div class="font-sans wrap">
|
81 |
+
<div class="container flex flex-wrap w-full bg-white border rounded-lg shadow ">
|
82 |
+
<div class="inline-block w-4/12 px-2 pl-2 border-r border-dashed ">
|
83 |
<div class="max-h-full" id="features_display">
|
84 |
<div class="pt-6 pb-6 pl-2 mt-2">
|
85 |
<ul class="mx-6 leading-relaxed list-disc">
|
155 |
|
156 |
<div class="container flex flex-wrap w-full mt-4">
|
157 |
<div class="block mt-6">
|
158 |
+
<h3 class="text-2xl font-medium text-gray-700"><?php _e( 'Other awesome plugins from same author', 'email-subscribers' ); ?></h3>
|
159 |
</div>
|
160 |
<div class="grid w-full grid-cols-3 py-2 my-4">
|
161 |
<?php foreach ( $plugins as $plugin ) { ?>
|
184 |
<div class="flex flex-row mb-0 border-t">
|
185 |
<div class="flex w-2/3 px-3 py-5 text-sm"><?php _e( 'Status', 'email-subscribers' ); ?>:
|
186 |
<?php if ( in_array( $plugin['name'], $active_plugins ) ) { ?>
|
187 |
+
<span class="font-bold text-green-600"> <?php _e( 'Active', 'email-subscribers' ); ?></span>
|
188 |
<?php } elseif ( in_array( $plugin['name'], $inactive_plugins ) ) { ?>
|
189 |
+
<span class="font-bold text-red-600"> <?php _e( 'Inactive', 'email-subscribers' ); ?></span>
|
190 |
<?php } else { ?>
|
191 |
+
<span class="font-bold text-orange-500"> <?php _e( 'Not Installed', 'email-subscribers' ); ?></span>
|
192 |
<?php } ?>
|
193 |
</div>
|
194 |
<div class="flex justify-center w-1/3 py-3 md:pr-4">
|
199 |
|
200 |
if ( ! in_array( $plugin['name'], $all_plugins ) ) { ?>
|
201 |
<button type="button" class="inline-flex justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white transition duration-150 ease-in-out bg-white bg-green-600 border border-transparent rounded-md hover:bg-green-500 focus:outline-none focus:shadow-outline-blue">
|
202 |
+
<?php _e( 'Install', 'email-subscribers' ); ?> </button>
|
203 |
<?php } elseif ( in_array( $plugin['name'], $inactive_plugins ) ) { ?>
|
204 |
<button type="button" class="inline-flex justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white transition duration-150 ease-in-out bg-white bg-indigo-600 border border-transparent rounded-md hover:bg-indigo-500 focus:outline-none focus:shadow-outline-blue">
|
205 |
+
<?php _e( 'Activate', 'email-subscribers' ); ?> </button>
|
206 |
<?php } ?>
|
207 |
</a>
|
208 |
</span>
|
lite/includes/class-email-subscribers.php
CHANGED
@@ -608,7 +608,6 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
|
|
608 |
'lite/includes/classes/class-es-message.php',
|
609 |
'lite/includes/classes/class-es-lists-table.php',
|
610 |
'lite/includes/classes/class-es-contacts-table.php',
|
611 |
-
'lite/includes/classes/class-es-contact-background-process.php',
|
612 |
'lite/includes/classes/class-es-post-notifications.php',
|
613 |
'lite/includes/classes/class-es-templates-table.php',
|
614 |
'lite/includes/classes/class-es-campaigns-table.php',
|
@@ -813,8 +812,6 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
|
|
813 |
|
814 |
$this->loader->add_filter( 'admin_footer_text', $plugin_admin, 'update_admin_footer_text' );
|
815 |
|
816 |
-
|
817 |
-
|
818 |
}
|
819 |
|
820 |
/**
|
@@ -1121,10 +1118,10 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
|
|
1121 |
*
|
1122 |
* @since 4.4.4
|
1123 |
*/
|
1124 |
-
public function init_action_scheduler_queue_runner() {
|
1125 |
|
1126 |
$admin_ajax_url = admin_url( 'admin-ajax.php' );
|
1127 |
-
$admin_ajax_url = add_query_arg( 'action',
|
1128 |
$args = array(
|
1129 |
'timeout' => 0.01,
|
1130 |
'blocking' => false,
|
608 |
'lite/includes/classes/class-es-message.php',
|
609 |
'lite/includes/classes/class-es-lists-table.php',
|
610 |
'lite/includes/classes/class-es-contacts-table.php',
|
|
|
611 |
'lite/includes/classes/class-es-post-notifications.php',
|
612 |
'lite/includes/classes/class-es-templates-table.php',
|
613 |
'lite/includes/classes/class-es-campaigns-table.php',
|
812 |
|
813 |
$this->loader->add_filter( 'admin_footer_text', $plugin_admin, 'update_admin_footer_text' );
|
814 |
|
|
|
|
|
815 |
}
|
816 |
|
817 |
/**
|
1118 |
*
|
1119 |
* @since 4.4.4
|
1120 |
*/
|
1121 |
+
public function init_action_scheduler_queue_runner( $action = 'ig_es_init_queue_runner' ) {
|
1122 |
|
1123 |
$admin_ajax_url = admin_url( 'admin-ajax.php' );
|
1124 |
+
$admin_ajax_url = add_query_arg( 'action', $action, $admin_ajax_url );
|
1125 |
$args = array(
|
1126 |
'timeout' => 0.01,
|
1127 |
'blocking' => false,
|
lite/includes/class-es-common.php
CHANGED
@@ -10,7 +10,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
10 |
*
|
11 |
* @since 4.0
|
12 |
*/
|
13 |
-
|
14 |
/**
|
15 |
* Convert email subscribe templates.
|
16 |
*
|
@@ -197,6 +197,7 @@ Class ES_Common {
|
|
197 |
return $dropdown;
|
198 |
}
|
199 |
|
|
|
200 |
/**
|
201 |
* Generate GUID
|
202 |
*
|
@@ -1245,13 +1246,13 @@ Class ES_Common {
|
|
1245 |
public static function get_useful_articles() {
|
1246 |
|
1247 |
$articles = array(
|
1248 |
-
array( 'title' => __( '8 Tips To Improve Email Open Rates', '
|
1249 |
-
array( 'title' => __( 'Prevent Your Email From Landing In Spam', '
|
1250 |
-
array( 'title' => __( '<b>Email Subscribers Secret Club</b>', '
|
1251 |
-
array( 'title' => __( 'Best Way To Keep Customers Engaged', '
|
1252 |
-
array( 'title' => __( 'Access Control', '
|
1253 |
-
array( 'title' => __( 'Prevent Spam Subscription Using Captcha', '
|
1254 |
-
array( 'title' => __( 'Email Subscribers PRO', '
|
1255 |
);
|
1256 |
|
1257 |
return $articles;
|
@@ -1290,4 +1291,80 @@ Class ES_Common {
|
|
1290 |
|
1291 |
}
|
1292 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1293 |
}
|
10 |
*
|
11 |
* @since 4.0
|
12 |
*/
|
13 |
+
class ES_Common {
|
14 |
/**
|
15 |
* Convert email subscribe templates.
|
16 |
*
|
197 |
return $dropdown;
|
198 |
}
|
199 |
|
200 |
+
|
201 |
/**
|
202 |
* Generate GUID
|
203 |
*
|
1246 |
public static function get_useful_articles() {
|
1247 |
|
1248 |
$articles = array(
|
1249 |
+
array( 'title' => __( '8 Tips To Improve Email Open Rates', 'email-subscribers' ), 'link' => 'https://www.icegram.com/2bx5' ),
|
1250 |
+
array( 'title' => __( 'Prevent Your Email From Landing In Spam', 'email-subscribers' ), 'link' => 'https://www.icegram.com/2bx6' ),
|
1251 |
+
array( 'title' => __( '<b>Email Subscribers Secret Club</b>', 'email-subscribers' ), 'link' => 'https://www.facebook.com/groups/2298909487017349/', 'label' => __( 'Join Now', 'email-subscribers' ), 'label_class' => 'bg-green-100 text-green-800' ),
|
1252 |
+
array( 'title' => __( 'Best Way To Keep Customers Engaged', 'email-subscribers' ), 'link' => 'https://www.icegram.com/ymrn' ),
|
1253 |
+
array( 'title' => __( 'Access Control', 'email-subscribers' ), 'link' => 'https://www.icegram.com/81z9' ),
|
1254 |
+
array( 'title' => __( 'Prevent Spam Subscription Using Captcha', 'email-subscribers' ), 'link' => 'https://www.icegram.com/3jy4' ),
|
1255 |
+
array( 'title' => __( 'Email Subscribers PRO', 'email-subscribers' ), 'link' => 'https://www.icegram.com/er6r', 'label' => __( 'Lifetime', 'email-subscribers' ), 'label_class' => 'bg-green-100 text-green-800' )
|
1256 |
);
|
1257 |
|
1258 |
return $articles;
|
1291 |
|
1292 |
}
|
1293 |
|
1294 |
+
/**
|
1295 |
+
* Get Captcha setting
|
1296 |
+
*
|
1297 |
+
* @param $id null|int
|
1298 |
+
* @param $data array
|
1299 |
+
*
|
1300 |
+
* @return bool|mixed|void
|
1301 |
+
*
|
1302 |
+
* @since 4.4.7
|
1303 |
+
*/
|
1304 |
+
public static function get_captcha_setting( $form_id = null, $data = array() ) {
|
1305 |
+
|
1306 |
+
if ( ! empty( $form_id ) ) {
|
1307 |
+
|
1308 |
+
$form_id = (int) $form_id;
|
1309 |
+
|
1310 |
+
$form_data = ES()->forms_db->get_form_by_id( $form_id );
|
1311 |
+
|
1312 |
+
$settings = ig_es_get_data( $form_data, 'settings', array() );
|
1313 |
+
|
1314 |
+
if ( ! empty( $settings ) ) {
|
1315 |
+
|
1316 |
+
$settings = maybe_unserialize( $settings );
|
1317 |
+
|
1318 |
+
if ( isset( $settings['captcha'] ) ) {
|
1319 |
+
return empty( $settings['captcha'] ) ? 'no' : $settings['captcha'];
|
1320 |
+
}
|
1321 |
+
|
1322 |
+
}
|
1323 |
+
|
1324 |
+
return get_option( 'ig_es_enable_captcha', 'no' );
|
1325 |
+
}
|
1326 |
+
|
1327 |
+
if ( ! isset( $data['captcha'] ) || empty( $data['captcha'] ) ) {
|
1328 |
+
$setting = get_option( 'ig_es_enable_captcha', 'no' );
|
1329 |
+
} else {
|
1330 |
+
$setting = $data['captcha'];
|
1331 |
+
}
|
1332 |
+
|
1333 |
+
return $setting;
|
1334 |
+
}
|
1335 |
+
|
1336 |
+
public static function convert_date_to_wp_date( $date ) {
|
1337 |
+
$convert_date_format = get_option( 'date_format' );
|
1338 |
+
$convert_time_format = get_option( 'time_format' );
|
1339 |
+
|
1340 |
+
return date_i18n( "$convert_date_format $convert_time_format", strtotime( $date ) );
|
1341 |
+
}
|
1342 |
+
|
1343 |
+
/**
|
1344 |
+
* Method to convert emojis character into their equivalent HTML entity in the given string if conversion supported
|
1345 |
+
* else remove them
|
1346 |
+
*
|
1347 |
+
* @param string $string String with emojis characters.
|
1348 |
+
*
|
1349 |
+
* @return string $string Converted string with equivalent HTML entities
|
1350 |
+
*
|
1351 |
+
* @since 4.4.7
|
1352 |
+
*/
|
1353 |
+
public static function handle_emoji_characters( $string = '' ) {
|
1354 |
+
|
1355 |
+
if( ! empty( $string ) ) {
|
1356 |
+
if( function_exists( 'wp_encode_emoji' ) ) {
|
1357 |
+
$string = wp_encode_emoji( $string );
|
1358 |
+
} else {
|
1359 |
+
$string = preg_replace('%(?:
|
1360 |
+
\xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
|
1361 |
+
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
|
1362 |
+
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
|
1363 |
+
)%xs', '', $string);
|
1364 |
+
}
|
1365 |
+
}
|
1366 |
+
|
1367 |
+
return $string;
|
1368 |
+
}
|
1369 |
+
|
1370 |
}
|
lite/includes/classes/class-es-actions.php
CHANGED
@@ -187,6 +187,8 @@ if ( ! class_exists( 'ES_Actions' ) ) {
|
|
187 |
// Track only if campaign sent.
|
188 |
if ( $this->is_campaign_sent( $contact_id, $message_id, $campaign_id ) ) {
|
189 |
|
|
|
|
|
190 |
return $this->add_action( array(
|
191 |
'contact_id' => $contact_id,
|
192 |
'message_id' => $message_id,
|
@@ -287,6 +289,30 @@ if ( ! class_exists( 'ES_Actions' ) ) {
|
|
287 |
|
288 |
return $wpdb->get_var( $wpdb->prepare( $sql, $contact_id, $message_id, $campaign_id, IG_MESSAGE_SENT ) );
|
289 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
}
|
291 |
}
|
292 |
|
187 |
// Track only if campaign sent.
|
188 |
if ( $this->is_campaign_sent( $contact_id, $message_id, $campaign_id ) ) {
|
189 |
|
190 |
+
$this->update_viewed_status( $contact_id, $campaign_id, $message_id );
|
191 |
+
|
192 |
return $this->add_action( array(
|
193 |
'contact_id' => $contact_id,
|
194 |
'message_id' => $message_id,
|
289 |
|
290 |
return $wpdb->get_var( $wpdb->prepare( $sql, $contact_id, $message_id, $campaign_id, IG_MESSAGE_SENT ) );
|
291 |
}
|
292 |
+
|
293 |
+
/**
|
294 |
+
* @param int $conact_id
|
295 |
+
* @param int $campaign_id
|
296 |
+
* @param int $message_id
|
297 |
+
*
|
298 |
+
* @return bool|false|int|void
|
299 |
+
*
|
300 |
+
* @since 4.4.7
|
301 |
+
*/
|
302 |
+
public function update_viewed_status( $conact_id = 0, $campaign_id = 0, $message_id = 0 ) {
|
303 |
+
global $wpdb;
|
304 |
+
|
305 |
+
if ( empty( $conact_id ) || empty( $campaign_id ) ) {
|
306 |
+
return;
|
307 |
+
}
|
308 |
+
|
309 |
+
$current_date = ig_get_current_date_time();
|
310 |
+
|
311 |
+
$query = "UPDATE " . IG_SENDING_QUEUE_TABLE . " SET opened_at = %s, opened = %d WHERE contact_id = %d AND campaign_id = %d AND mailing_queue_id = %d";
|
312 |
+
$sql = $wpdb->prepare( $query, $current_date, 1, $conact_id, $campaign_id, $message_id );
|
313 |
+
|
314 |
+
return $wpdb->query( $sql );
|
315 |
+
}
|
316 |
}
|
317 |
}
|
318 |
|
lite/includes/classes/class-es-admin-settings.php
CHANGED
@@ -82,7 +82,7 @@ class ES_Admin_Settings {
|
|
82 |
$email_fields_to_sanitize = array(
|
83 |
'ig_es_from_email'
|
84 |
);
|
85 |
-
|
86 |
foreach ( $options as $key => $value ) {
|
87 |
if ( substr( $key, 0, 6 ) === 'ig_es_' ) {
|
88 |
|
@@ -95,7 +95,7 @@ class ES_Admin_Settings {
|
|
95 |
} elseif ( in_array( $key, $email_fields_to_sanitize ) ) {
|
96 |
$value = sanitize_email( $value );
|
97 |
}
|
98 |
-
|
99 |
update_option( $key, wp_unslash( $value ), false );
|
100 |
}
|
101 |
}
|
@@ -113,10 +113,10 @@ class ES_Admin_Settings {
|
|
113 |
?>
|
114 |
|
115 |
<div class="wrap">
|
116 |
-
<h1 class="mt-4 wp-heading-inline"><span class="text-2xl font-
|
117 |
</header>
|
118 |
</span>
|
119 |
-
<form action="" method="post" id="email_tabs_form" class="font-sans
|
120 |
<div class="flex flex-wrap mt-6">
|
121 |
<?php settings_fields( 'email_subscribers_settings' );
|
122 |
$es_settings_tabs = array(
|
@@ -127,14 +127,14 @@ class ES_Admin_Settings {
|
|
127 |
);
|
128 |
$es_settings_tabs = apply_filters( 'ig_es_settings_tabs', $es_settings_tabs );
|
129 |
?>
|
130 |
-
<div id="es-settings-menu" class="w-1/5
|
131 |
-
<div class="es-menu-list lg:block
|
132 |
-
<ul
|
133 |
<?php
|
134 |
foreach ( $es_settings_tabs as $key => $value ) {
|
135 |
?>
|
136 |
-
<li id="menu-content
|
137 |
-
<a href="#tabs-<?php echo $key ?>" id="menu-content-change" class="block px-4 pt-1
|
138 |
<?php
|
139 |
}
|
140 |
?>
|
@@ -519,7 +519,7 @@ $email_sending_settings = array(
|
|
519 |
|
520 |
'ig_es_test_send_email' => array(
|
521 |
'type' => 'html',
|
522 |
-
'html' => '<input id="es-test-email" class="mt-3 mb-1 form-input h-9
|
523 |
'placeholder' => '',
|
524 |
'supplemental' => '',
|
525 |
'default' => '',
|
@@ -645,7 +645,7 @@ public function field_callback( $arguments, $id_key = '' ) {
|
|
645 |
break;
|
646 |
|
647 |
case 'number': // If it is a number field
|
648 |
-
$field_html = sprintf( '<input name="%1$s" id="%1$s" type="%2$s" placeholder="%3$s" value="%4$s" %5$s min="0" class="mt-2 mb-1
|
649 |
break;
|
650 |
|
651 |
case 'email':
|
@@ -657,21 +657,21 @@ public function field_callback( $arguments, $id_key = '' ) {
|
|
657 |
break;
|
658 |
|
659 |
case 'file':
|
660 |
-
$field_html = '<input type="text" id="logo_url" name="' . $uid . '" value="' . $value . '" class="
|
661 |
break;
|
662 |
|
663 |
case 'checkbox' :
|
664 |
|
665 |
-
$field_html = '<label for="' . $id_key . '" class="mt-4 mb-1
|
666 |
<span class="relative">';
|
667 |
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
|
672 |
$field_html .= $placeholder . '</input>
|
673 |
-
<span class="
|
674 |
-
<span class="
|
675 |
</span>
|
676 |
</label>';
|
677 |
break;
|
@@ -698,7 +698,7 @@ public function field_callback( $arguments, $id_key = '' ) {
|
|
698 |
//If there is help text
|
699 |
if ( ! empty( $arguments['desc'] ) ) {
|
700 |
$helper = $arguments['desc'];
|
701 |
-
$field_html .= sprintf( '<p class="
|
702 |
}
|
703 |
|
704 |
return $field_html;
|
@@ -713,28 +713,33 @@ public function field_callback( $arguments, $id_key = '' ) {
|
|
713 |
}
|
714 |
|
715 |
function render_settings_fields( $fields ) {
|
716 |
-
$html = "<table class='mt-4
|
717 |
$html .= "<tbody>";
|
718 |
foreach ( $fields as $key => $field ) {
|
719 |
if ( ! empty( $field['name'] ) ) {
|
720 |
-
$html .= "<tr class='
|
721 |
$html .= $field['name'];
|
722 |
|
723 |
if ( ! empty( $field['is_premium'] ) ) {
|
724 |
-
$html .= '<a href="' . $field['link'] . '" target="_blank"><span class="px-2
|
725 |
}
|
726 |
|
727 |
//If there is help text
|
728 |
if ( ! empty( $field['info'] ) ) {
|
729 |
$helper = $field['info'];
|
730 |
-
$html .= "<br />" . sprintf( '<p class="
|
731 |
}
|
732 |
$button_html = "<tr>";
|
733 |
|
734 |
$html .= "</th>";
|
735 |
}
|
736 |
|
737 |
-
$html .= "<td class='
|
|
|
|
|
|
|
|
|
|
|
738 |
if ( ! empty( $field['sub_fields'] ) ) {
|
739 |
$option_key = '';
|
740 |
foreach ( $field['sub_fields'] as $field_key => $sub_field ) {
|
@@ -755,6 +760,28 @@ public function field_callback( $arguments, $id_key = '' ) {
|
|
755 |
$html .= $this->field_callback( $field );
|
756 |
}
|
757 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
758 |
$html .= "</td></tr>";
|
759 |
}
|
760 |
|
@@ -765,7 +792,7 @@ public function field_callback( $arguments, $id_key = '' ) {
|
|
765 |
$html .= '<input type="hidden" name="submitted" value="submitted" />';
|
766 |
$html .= '<input type="hidden" name="submit_action" value="ig-es-save-admin-settings" />';
|
767 |
$html .= $nonce_field;
|
768 |
-
$html .= '<input type="submit" name="submit" class="
|
769 |
$html .= "</td></tr>";
|
770 |
$html .= "</tbody>";
|
771 |
$html .= "</table>";
|
@@ -814,20 +841,20 @@ public function field_callback( $arguments, $id_key = '' ) {
|
|
814 |
|
815 |
foreach ( $mailers as $key => $mailer ) {
|
816 |
$html .= '<label class="inline-flex items-center cursor-pointer">';
|
817 |
-
$html .= '<input type="radio" class="
|
818 |
|
819 |
if ( ! empty( $mailer['is_premium'] ) ) {
|
820 |
$html .= '<a href="' . $mailer['url'] . '" target="_blank">';
|
821 |
}
|
822 |
|
823 |
-
$html .= '<div class="mt-4 mr-4 border-
|
824 |
-
<div class="es-logo-wrapper
|
825 |
<img src="' . $mailer['logo'] . '" alt="Default (none)">
|
826 |
</div>'
|
827 |
. $mailer['name'];
|
828 |
|
829 |
if ( ! empty( $mailer['is_premium'] ) ) {
|
830 |
-
$html .= '<span class="px-2
|
831 |
}
|
832 |
$html .= '</div></label>';
|
833 |
}
|
82 |
$email_fields_to_sanitize = array(
|
83 |
'ig_es_from_email'
|
84 |
);
|
85 |
+
|
86 |
foreach ( $options as $key => $value ) {
|
87 |
if ( substr( $key, 0, 6 ) === 'ig_es_' ) {
|
88 |
|
95 |
} elseif ( in_array( $key, $email_fields_to_sanitize ) ) {
|
96 |
$value = sanitize_email( $value );
|
97 |
}
|
98 |
+
|
99 |
update_option( $key, wp_unslash( $value ), false );
|
100 |
}
|
101 |
}
|
113 |
?>
|
114 |
|
115 |
<div class="wrap">
|
116 |
+
<h1 class="mt-4 wp-heading-inline"><span class="text-2xl font-medium leading-7 text-gray-900 sm:leading-9 sm:truncate">Settings</h1>
|
117 |
</header>
|
118 |
</span>
|
119 |
+
<form action="" method="post" id="email_tabs_form" class="sticky font-sans bg-white rounded-lg shadow-md">
|
120 |
<div class="flex flex-wrap mt-6">
|
121 |
<?php settings_fields( 'email_subscribers_settings' );
|
122 |
$es_settings_tabs = array(
|
127 |
);
|
128 |
$es_settings_tabs = apply_filters( 'ig_es_settings_tabs', $es_settings_tabs );
|
129 |
?>
|
130 |
+
<div id="es-settings-menu" class="w-1/5 pt-4 leading-normal text-gray-800 border-r border-gray-100">
|
131 |
+
<div class="z-20 my-2 mt-0 bg-white shadow es-menu-list lg:block lg:my-0 lg:border-transparent lg:shadow-none lg:bg-transparent" style="top:6em;" id="menu-content">
|
132 |
+
<ul id="menu-nav" class="py-2 list-reset md:py-0">
|
133 |
<?php
|
134 |
foreach ( $es_settings_tabs as $key => $value ) {
|
135 |
?>
|
136 |
+
<li id="menu-content" class="h-10 py-1 mx-2 border border-transparent rounded settings-menu-change md:my-2 hover:rounded-lg hover:border-gray-200">
|
137 |
+
<a href="#tabs-<?php echo $key ?>" id="menu-content-change" class="block px-4 pt-1 text-base font-medium text-gray-900 no-underline align-middle hover:text-gray-800"><i class="py-0.5 dashicons dashicons-<?php echo $value['icon'] ?>"></i> <?php echo $value['name'] ?></a></li>
|
138 |
<?php
|
139 |
}
|
140 |
?>
|
519 |
|
520 |
'ig_es_test_send_email' => array(
|
521 |
'type' => 'html',
|
522 |
+
'html' => '<input id="es-test-email" class="mt-3 mb-1 border-gray-400 form-input h-9"/><input type="submit" name="submit" id="es-send-test" class="ig-es-primary-button" value="Send Email"><span class="es_spinner_image_admin" id="spinner-image" style="display:none"><img src="' . ES_PLUGIN_URL . 'lite/public/images/spinner.gif' . '" alt="Loading..."/></span>',
|
523 |
'placeholder' => '',
|
524 |
'supplemental' => '',
|
525 |
'default' => '',
|
645 |
break;
|
646 |
|
647 |
case 'number': // If it is a number field
|
648 |
+
$field_html = sprintf( '<input name="%1$s" id="%1$s" type="%2$s" placeholder="%3$s" value="%4$s" %5$s min="0" class="w-2/5 mt-2 mb-1 text-sm border-gray-400 h-9 "/>', $uid, $type, $placeholder, $value, $readonly );
|
649 |
break;
|
650 |
|
651 |
case 'email':
|
657 |
break;
|
658 |
|
659 |
case 'file':
|
660 |
+
$field_html = '<input type="text" id="logo_url" name="' . $uid . '" value="' . $value . '" class="w-2/3 w-3/5 mt-2 mb-1 text-sm border-gray-400 form-input h-9' . $class . '"/> <input id="upload_logo_button" type="button" class="button" value="Upload Logo" />';
|
661 |
break;
|
662 |
|
663 |
case 'checkbox' :
|
664 |
|
665 |
+
$field_html = '<label for="' . $id_key . '" class="inline-flex items-center mt-4 mb-1 cursor-pointer">
|
666 |
<span class="relative">';
|
667 |
|
668 |
+
if ( ! $disabled ) {
|
669 |
+
$field_html .= '<input id="' . $id_key . '" type="checkbox" name="' . $uid . '" value="yes" ' . checked( $value, 'yes', false ) . ' class="absolute w-0 h-0 mt-6 opacity-0 es-check-toggle ' . $class . '" />';
|
670 |
+
}
|
671 |
|
672 |
$field_html .= $placeholder . '</input>
|
673 |
+
<span class="block w-10 h-6 bg-gray-300 rounded-full shadow-inner es-mail-toggle-line "></span>
|
674 |
+
<span class="absolute inset-y-0 left-0 block w-4 h-4 mt-1 ml-1 transition-all duration-300 ease-in-out bg-white rounded-full shadow es-mail-toggle-dot focus-within:shadow-outline"></span>
|
675 |
</span>
|
676 |
</label>';
|
677 |
break;
|
698 |
//If there is help text
|
699 |
if ( ! empty( $arguments['desc'] ) ) {
|
700 |
$helper = $arguments['desc'];
|
701 |
+
$field_html .= sprintf( '<p class="mb-2 text-xs italic font-normal leading-snug text-gray-500 helper"> %s</p>', $helper ); // Show it
|
702 |
}
|
703 |
|
704 |
return $field_html;
|
713 |
}
|
714 |
|
715 |
function render_settings_fields( $fields ) {
|
716 |
+
$html = "<table class='mt-4 mr-4 overflow-hidden bg-white rounded-lg lg:mx-5 xl:mx-7'>";
|
717 |
$html .= "<tbody>";
|
718 |
foreach ( $fields as $key => $field ) {
|
719 |
if ( ! empty( $field['name'] ) ) {
|
720 |
+
$html .= "<tr class='py-4 ml-4 border-b border-gray-100 '><th scope='row' class='block pt-3 pb-8 pr-4 ml-6 text-left pt-7'><span class='pb-2 text-sm font-semibold text-gray-600'>";
|
721 |
$html .= $field['name'];
|
722 |
|
723 |
if ( ! empty( $field['is_premium'] ) ) {
|
724 |
+
$html .= '<a href="' . $field['link'] . '" target="_blank"><span class="inline-flex px-2 text-xs font-semibold leading-5 text-green-800 bg-green-100 rounded-full">' . __( 'Premium', 'email-subscribers' ) . '</span></a>';
|
725 |
}
|
726 |
|
727 |
//If there is help text
|
728 |
if ( ! empty( $field['info'] ) ) {
|
729 |
$helper = $field['info'];
|
730 |
+
$html .= "<br />" . sprintf( '<p class="mt-1 text-xs italic font-normal leading-snug text-gray-500">%s</p>', $helper ); // Show it
|
731 |
}
|
732 |
$button_html = "<tr>";
|
733 |
|
734 |
$html .= "</th>";
|
735 |
}
|
736 |
|
737 |
+
$html .= "<td class='w-4/6 py-2 pl-5 bg-white rounded-lg '>";
|
738 |
+
|
739 |
+
if ( ! empty( $field['upgrade_desc'] ) ) {
|
740 |
+
$html .="<div class='flex'><div class='flex-none w-2/5'>";
|
741 |
+
}
|
742 |
+
|
743 |
if ( ! empty( $field['sub_fields'] ) ) {
|
744 |
$option_key = '';
|
745 |
foreach ( $field['sub_fields'] as $field_key => $sub_field ) {
|
760 |
$html .= $this->field_callback( $field );
|
761 |
}
|
762 |
|
763 |
+
if ( ! empty( $field['upgrade_desc'] ) ) {
|
764 |
+
$html .="</div>
|
765 |
+
<div class='w-3/5'>
|
766 |
+
<div class='px-3 py-2 mr-2 rounded-md bg-teal-50'>
|
767 |
+
<div class='flex'>
|
768 |
+
<div class='flex-shrink-0'>
|
769 |
+
<svg class='w-5 h-5 text-teal-400' fill='currentColor' viewBox='0 0 20 20'>
|
770 |
+
<path fill-rule='evenodd' d='M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z' clip-rule='evenodd'/>
|
771 |
+
</svg>
|
772 |
+
</div>
|
773 |
+
<div class='ml-3'>
|
774 |
+
<h3 class='text-sm font-medium leading-5 text-teal-700'>";
|
775 |
+
$html .= $field['upgrade_title'] . "</h3>";
|
776 |
+
$html .= "<div class='mt-2 text-sm leading-5 text-teal-500'>
|
777 |
+
<p>". $field['upgrade_desc'] . "</p>
|
778 |
+
</div>
|
779 |
+
</div>
|
780 |
+
</div>
|
781 |
+
</div>
|
782 |
+
</div>";
|
783 |
+
}
|
784 |
+
|
785 |
$html .= "</td></tr>";
|
786 |
}
|
787 |
|
792 |
$html .= '<input type="hidden" name="submitted" value="submitted" />';
|
793 |
$html .= '<input type="hidden" name="submit_action" value="ig-es-save-admin-settings" />';
|
794 |
$html .= $nonce_field;
|
795 |
+
$html .= '<input type="submit" name="submit" class="mx-6 my-2 cursor-pointer ig-es-primary-button" value="' . __( 'Save Settings', 'email-subscribers' ) . '">';
|
796 |
$html .= "</td></tr>";
|
797 |
$html .= "</tbody>";
|
798 |
$html .= "</table>";
|
841 |
|
842 |
foreach ( $mailers as $key => $mailer ) {
|
843 |
$html .= '<label class="inline-flex items-center cursor-pointer">';
|
844 |
+
$html .= '<input type="radio" class="absolute w-0 h-0 opacity-0 es_mailer" name="ig_es_mailer_settings[mailer]" value="' . $key . '" ' . checked( $selected_mailer, $key, false ) . '></input>';
|
845 |
|
846 |
if ( ! empty( $mailer['is_premium'] ) ) {
|
847 |
$html .= '<a href="' . $mailer['url'] . '" target="_blank">';
|
848 |
}
|
849 |
|
850 |
+
$html .= '<div class="mt-4 mr-4 border-2 border-gray-200 border-solid rounded-lg shadow-md es-mailer-logo">
|
851 |
+
<div class="border-0 es-logo-wrapper">
|
852 |
<img src="' . $mailer['logo'] . '" alt="Default (none)">
|
853 |
</div>'
|
854 |
. $mailer['name'];
|
855 |
|
856 |
if ( ! empty( $mailer['is_premium'] ) ) {
|
857 |
+
$html .= '<span class="inline-flex px-2 text-xs font-semibold leading-5 text-green-800 bg-green-100 rounded-full">Premium</span></a>';
|
858 |
}
|
859 |
$html .= '</div></label>';
|
860 |
}
|
lite/includes/classes/class-es-campaigns-table.php
CHANGED
@@ -42,7 +42,7 @@ class ES_Campaigns_Table extends WP_List_Table {
|
|
42 |
$this->db = new ES_DB_Campaigns();
|
43 |
|
44 |
add_action( 'ig_es_campaign_deleted', array( $this, 'delete_child_campaigns' ), 10, 1 );
|
45 |
-
|
46 |
}
|
47 |
|
48 |
/**
|
@@ -80,7 +80,7 @@ class ES_Campaigns_Table extends WP_List_Table {
|
|
80 |
$this->db->delete_campaigns( $child_campaign_ids );
|
81 |
}
|
82 |
}
|
83 |
-
|
84 |
|
85 |
/**
|
86 |
* Render Campaigns table
|
@@ -90,53 +90,60 @@ class ES_Campaigns_Table extends WP_List_Table {
|
|
90 |
public function render() {
|
91 |
$action = ig_es_get_request_data( 'action' );
|
92 |
global $ig_es_tracker;
|
|
|
93 |
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
?>
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
|
133 |
-
|
134 |
-
|
135 |
|
136 |
-
|
137 |
-
|
138 |
-
}
|
139 |
}
|
|
|
140 |
|
141 |
/**
|
142 |
* Retrieve lists data from the database
|
@@ -259,37 +266,37 @@ class ES_Campaigns_Table extends WP_List_Table {
|
|
259 |
* @param string $column_name
|
260 |
*
|
261 |
* @return mixed
|
262 |
-
*
|
263 |
* @modified 4.4.4 Removed 'status' column switch case.
|
264 |
*/
|
265 |
public function column_default( $item, $column_name ) {
|
266 |
switch ( $column_name ) {
|
267 |
|
268 |
case 'list_ids':
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
case 'type':
|
276 |
-
|
277 |
-
|
278 |
|
279 |
-
|
280 |
-
|
281 |
case 'categories':
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
default:
|
292 |
-
|
293 |
}
|
294 |
}
|
295 |
|
@@ -320,34 +327,44 @@ class ES_Campaigns_Table extends WP_List_Table {
|
|
320 |
|
321 |
$nonce = wp_create_nonce( 'es_post_notification' );
|
322 |
|
323 |
-
|
324 |
-
|
325 |
-
$template = get_post( $item['base_template_id'] );
|
326 |
|
|
|
327 |
if ( $template instanceof WP_Post ) {
|
328 |
$title = '<strong>' . $template->post_title . '</strong>';
|
329 |
} else {
|
330 |
$title = ! empty( $item['name'] ) ? $item['name'] : '';
|
331 |
}
|
332 |
-
|
333 |
$slug = ( in_array( $item['type'], array( 'post_notification', 'post_digest' ) ) ) ? esc_attr( 'es_notifications' ) : 'es_' . $item['type'];
|
334 |
-
|
335 |
$actions ['edit'] = sprintf( __( '<a href="?page=%s&action=%s&list=%s&_wpnonce=%s" class="text-indigo-600">Edit</a>', 'email-subscribers' ), $slug, 'edit', absint( $item['id'] ), $nonce );
|
336 |
-
$actions['delete'] = sprintf( __( '<a href="?page=%s&action=%s&list=%s&_wpnonce=%s" onclick="return checkDelete()">Delete</a>', 'email-subscribers' ), esc_attr( 'es_campaigns' ), 'delete', absint( $item['id'] ), $nonce );
|
337 |
-
|
338 |
-
$title .= $this->row_actions( $actions );
|
339 |
} else {
|
340 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
341 |
}
|
342 |
|
|
|
|
|
|
|
|
|
343 |
return $title;
|
344 |
}
|
345 |
|
346 |
/**
|
347 |
* Method for campaign status HTML
|
348 |
-
*
|
349 |
* @return string $status_html Campaign status HTML.
|
350 |
-
*
|
351 |
* @since 4.4.4
|
352 |
*/
|
353 |
function column_status( $item ) {
|
@@ -357,42 +374,97 @@ class ES_Campaigns_Table extends WP_List_Table {
|
|
357 |
IG_ES_CAMPAIGN_STATUS_ACTIVE,
|
358 |
IG_ES_CAMPAIGN_STATUS_IN_ACTIVE
|
359 |
);
|
360 |
-
|
361 |
-
|
|
|
|
|
|
|
|
|
|
|
362 |
?>
|
363 |
<label for="<?php echo esc_attr( 'ig-es-campaign-status-toggle-' . $campaign_id ); ?>" class="ig-es-campaign-status-toggle-label inline-flex items-center cursor-pointer">
|
364 |
<span class="relative">
|
365 |
<input id="<?php echo esc_attr( 'ig-es-campaign-status-toggle-' . $campaign_id ); ?>" type="checkbox" class="absolute es-check-toggle opacity-0 w-0 h-0" name="<?php echo esc_attr( 'ig-es-campaign-status-toggle-' . $campaign_id ); ?>" value="<?php echo esc_attr( $campaign_id ); ?>" <?php checked( IG_ES_CAMPAIGN_STATUS_ACTIVE, $campaign_status ); ?>>
|
366 |
<span class="es-mail-toggle-line inline-block w-10 h-6 bg-gray-300 rounded-full shadow-inner"></span>
|
367 |
-
<span class="es-mail-toggle-dot absolute transition-all duration-300 ease-in-out block w-4 h-4 mt-1 ml-1 bg-white rounded-full shadow inset-y-0 left-0 focus-within:shadow-outline"></span>
|
368 |
</span>
|
369 |
</label>
|
370 |
<?php
|
371 |
} else {
|
372 |
switch ( $campaign_status ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
373 |
case IG_ES_CAMPAIGN_STATUS_SCHEDULED:
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
|
|
|
|
|
|
379 |
case IG_ES_CAMPAIGN_STATUS_QUEUED:
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
|
|
|
|
|
|
384 |
|
385 |
case IG_ES_CAMPAIGN_STATUS_PAUSED:
|
386 |
-
|
387 |
-
|
|
|
|
|
388 |
<?php
|
389 |
break;
|
390 |
|
391 |
default:
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
|
|
|
|
|
|
396 |
}
|
397 |
}
|
398 |
?>
|
@@ -457,11 +529,11 @@ class ES_Campaigns_Table extends WP_List_Table {
|
|
457 |
* @since 4.3.4 Added esc_attr()
|
458 |
*/
|
459 |
public function search_box( $text = '', $input_id = '' ) { ?>
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
<?php submit_button( __( 'Search Campaigns', 'email-subscribers' ), 'button', false, false, array( 'id' => 'search-submit' ) ); ?>
|
464 |
-
|
465 |
<?php }
|
466 |
|
467 |
/**
|
42 |
$this->db = new ES_DB_Campaigns();
|
43 |
|
44 |
add_action( 'ig_es_campaign_deleted', array( $this, 'delete_child_campaigns' ), 10, 1 );
|
45 |
+
|
46 |
}
|
47 |
|
48 |
/**
|
80 |
$this->db->delete_campaigns( $child_campaign_ids );
|
81 |
}
|
82 |
}
|
83 |
+
|
84 |
|
85 |
/**
|
86 |
* Render Campaigns table
|
90 |
public function render() {
|
91 |
$action = ig_es_get_request_data( 'action' );
|
92 |
global $ig_es_tracker;
|
93 |
+
if( 'broadcast_created' === $action ) {
|
94 |
|
95 |
+
// Trigger feedback popup for broadcast creation.
|
96 |
+
do_action( 'ig_es_broadcast_created' );
|
97 |
+
|
98 |
+
$message = __( 'Broadcast has been created successfully.', 'email-subscribers' );
|
99 |
+
ES_Common::show_message( $message, 'success' );
|
100 |
+
}
|
101 |
?>
|
102 |
+
<div class="wrap">
|
103 |
+
<h1 class="wp-heading-inline"><span class="text-2xl font-medium leading-7 text-gray-900 sm:leading-9 sm:truncate"><?php _e( 'Campaigns', 'email-subscribers' ) ?>
|
104 |
+
<a href="admin.php?page=es_notifications&action=new" class="ig-es-title-button px-2 py-2 mx-1"><?php _e( 'Create Post Notification', 'email-subscribers' ) ?></a></span>
|
105 |
+
<a href="admin.php?page=es_newsletters" class="ig-es-title-button px-2 py-2 mx-1"><?php _e( 'Send Broadcast', 'email-subscribers' ) ?></a>
|
106 |
+
<?php do_action( 'ig_es_after_campaign_type_buttons' );
|
107 |
+
|
108 |
+
$icegram_plugin = 'icegram/icegram.php';
|
109 |
+
$active_plugins = $ig_es_tracker::get_active_plugins();
|
110 |
+
if ( in_array( $icegram_plugin, $active_plugins ) ) {
|
111 |
+
$redirect_url = admin_url( 'post-new.php?post_type=ig_campaign' );
|
112 |
+
?>
|
113 |
+
<a href="<?php echo $redirect_url; ?>" class="ig-es-link-button px-2 py-2 mx-1"><?php _e( 'Onsite Campaigns', 'email-subscribers' ) ?></a>
|
114 |
+
<?php } else { ?>
|
115 |
+
<a href="admin.php?page=go_to_icegram&action=create_campaign" class="ig-es-link-button px-2 py-2 mx-1"><?php _e( 'Onsite Campaigns', 'email-subscribers' ) ?></a>
|
116 |
+
<?php } ?>
|
117 |
+
|
118 |
+
<a href="edit.php?post_type=es_template" class="ig-es-imp-button px-2 py-2 mx-1"><?php _e( 'Manage Templates', 'email-subscribers' ) ?></a>
|
119 |
+
|
120 |
+
|
121 |
+
</h1>
|
122 |
+
<div id="poststuff" class="es-items-lists">
|
123 |
+
<div id="post-body" class="metabox-holder column-1">
|
124 |
+
<div id="post-body-content">
|
125 |
+
<div class="meta-box-sortables ui-sortable">
|
126 |
+
<form method="post">
|
127 |
+
<?php
|
128 |
+
$this->prepare_items();
|
129 |
+
$this->display(); ?>
|
130 |
+
</form>
|
131 |
+
</div>
|
132 |
+
</div>
|
133 |
+
</div>
|
134 |
+
<br class="clear">
|
135 |
+
</div>
|
136 |
+
</div>
|
137 |
+
<?php
|
138 |
+
}
|
139 |
|
140 |
+
public function custom_admin_notice() {
|
141 |
+
$es_note_cat = ig_es_get_request_data( 'es_note_cat' );
|
142 |
|
143 |
+
if ( $es_note_cat ) {
|
144 |
+
echo '<div class="updated"><p>' . esc_html( 'Notification Added Successfully!', 'email-subscribers' ) . '</p></div>';
|
|
|
145 |
}
|
146 |
+
}
|
147 |
|
148 |
/**
|
149 |
* Retrieve lists data from the database
|
266 |
* @param string $column_name
|
267 |
*
|
268 |
* @return mixed
|
269 |
+
*
|
270 |
* @modified 4.4.4 Removed 'status' column switch case.
|
271 |
*/
|
272 |
public function column_default( $item, $column_name ) {
|
273 |
switch ( $column_name ) {
|
274 |
|
275 |
case 'list_ids':
|
276 |
+
if ( ! empty( $item[ $column_name ] ) ) {
|
277 |
+
return ES()->lists_db->get_list_id_name_map( $item[ $column_name ] );
|
278 |
+
} else {
|
279 |
+
return '-';
|
280 |
+
}
|
281 |
+
break;
|
282 |
case 'type':
|
283 |
+
$type = ( $item[ $column_name ] === 'newsletter' ) ? __( 'Broadcast', 'email-subscribers' ) : $item[ $column_name ];
|
284 |
+
$type = ucwords( str_replace( '_', ' ', $type ) );
|
285 |
|
286 |
+
return $type;
|
287 |
+
break;
|
288 |
case 'categories':
|
289 |
+
if ( ! empty( $item[ $column_name ] ) ) {
|
290 |
+
$categories = ES_Common::convert_categories_string_to_array( $item[ $column_name ], false );
|
291 |
+
$categories = strpos( $item[ $column_name ], '{a}All{a}' ) ? __( 'All', 'email-subscribers' ) : trim( trim( implode( ', ', $categories ) ), ',' );
|
292 |
|
293 |
+
return $categories;
|
294 |
+
} else {
|
295 |
+
return '-';
|
296 |
+
}
|
297 |
+
break;
|
298 |
default:
|
299 |
+
return $item[ $column_name ];
|
300 |
}
|
301 |
}
|
302 |
|
327 |
|
328 |
$nonce = wp_create_nonce( 'es_post_notification' );
|
329 |
|
330 |
+
$template = get_post( $item['base_template_id'] );
|
|
|
|
|
331 |
|
332 |
+
if ( $type !== 'newsletter' ) {
|
333 |
if ( $template instanceof WP_Post ) {
|
334 |
$title = '<strong>' . $template->post_title . '</strong>';
|
335 |
} else {
|
336 |
$title = ! empty( $item['name'] ) ? $item['name'] : '';
|
337 |
}
|
|
|
338 |
$slug = ( in_array( $item['type'], array( 'post_notification', 'post_digest' ) ) ) ? esc_attr( 'es_notifications' ) : 'es_' . $item['type'];
|
|
|
339 |
$actions ['edit'] = sprintf( __( '<a href="?page=%s&action=%s&list=%s&_wpnonce=%s" class="text-indigo-600">Edit</a>', 'email-subscribers' ), $slug, 'edit', absint( $item['id'] ), $nonce );
|
|
|
|
|
|
|
340 |
} else {
|
341 |
+
|
342 |
+
$title = $item['name'];
|
343 |
+
$slug = 'es_newsletters';
|
344 |
+
$status = $item['status'];
|
345 |
+
|
346 |
+
$broadcast_allowed_edit_statuses = array(
|
347 |
+
IG_ES_CAMPAIGN_STATUS_IN_ACTIVE,
|
348 |
+
IG_ES_CAMPAIGN_STATUS_SCHEDULED
|
349 |
+
);
|
350 |
+
|
351 |
+
if( in_array( $status, $broadcast_allowed_edit_statuses ) ) {
|
352 |
+
$actions ['edit'] = sprintf( __( '<a href="?page=%s&action=%s&list=%s&_wpnonce=%s" class="text-indigo-600">Edit</a>', 'email-subscribers' ), $slug, 'edit', absint( $item['id'] ), $nonce );
|
353 |
+
}
|
354 |
}
|
355 |
|
356 |
+
$actions['delete'] = sprintf( __( '<a href="?page=%s&action=%s&list=%s&_wpnonce=%s" onclick="return checkDelete()">Delete</a>', 'email-subscribers' ), esc_attr( 'es_campaigns' ), 'delete', absint( $item['id'] ), $nonce );
|
357 |
+
|
358 |
+
$title .= $this->row_actions( $actions );
|
359 |
+
|
360 |
return $title;
|
361 |
}
|
362 |
|
363 |
/**
|
364 |
* Method for campaign status HTML
|
365 |
+
*
|
366 |
* @return string $status_html Campaign status HTML.
|
367 |
+
*
|
368 |
* @since 4.4.4
|
369 |
*/
|
370 |
function column_status( $item ) {
|
374 |
IG_ES_CAMPAIGN_STATUS_ACTIVE,
|
375 |
IG_ES_CAMPAIGN_STATUS_IN_ACTIVE
|
376 |
);
|
377 |
+
|
378 |
+
$campaign_type = '';
|
379 |
+
if( ! empty( $campaign_id ) ) {
|
380 |
+
$campaign_type = ES()->campaigns_db->get_campaign_type_by_id( $campaign_id );
|
381 |
+
}
|
382 |
+
|
383 |
+
if( 'newsletter' !== $campaign_type && in_array( $campaign_status, $campaign_statuses, true ) ) {
|
384 |
?>
|
385 |
<label for="<?php echo esc_attr( 'ig-es-campaign-status-toggle-' . $campaign_id ); ?>" class="ig-es-campaign-status-toggle-label inline-flex items-center cursor-pointer">
|
386 |
<span class="relative">
|
387 |
<input id="<?php echo esc_attr( 'ig-es-campaign-status-toggle-' . $campaign_id ); ?>" type="checkbox" class="absolute es-check-toggle opacity-0 w-0 h-0" name="<?php echo esc_attr( 'ig-es-campaign-status-toggle-' . $campaign_id ); ?>" value="<?php echo esc_attr( $campaign_id ); ?>" <?php checked( IG_ES_CAMPAIGN_STATUS_ACTIVE, $campaign_status ); ?>>
|
388 |
<span class="es-mail-toggle-line inline-block w-10 h-6 bg-gray-300 rounded-full shadow-inner"></span>
|
389 |
+
<span class="es-mail-toggle-dot absolute transition-all duration-300 ease-in-out block w-4 h-4 mt-1 ml-1 bg-white rounded-full shadow inset-y-0 left-0 focus-within:shadow-outline"></span>
|
390 |
</span>
|
391 |
</label>
|
392 |
<?php
|
393 |
} else {
|
394 |
switch ( $campaign_status ) {
|
395 |
+
|
396 |
+
case IG_ES_CAMPAIGN_STATUS_ACTIVE:
|
397 |
+
$notification = ES_DB_Mailing_Queue::get_notification_by_campaign_id( $campaign_id );
|
398 |
+
if( ! empty( $notification ) ) {
|
399 |
+
$notification_status = $notification['status'];
|
400 |
+
if( 'In Queue' === $notification_status ) {
|
401 |
+
?>
|
402 |
+
<svg class="flex-shrink-0 ml-2 h-6 w-6 text-orange-400" fill="currentColor" viewBox="0 0 20 20">
|
403 |
+
<title><?php echo esc_attr__( 'Scheduled', 'email-subscribers' ); ?></title>
|
404 |
+
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z" clip-rule="evenodd"/>
|
405 |
+
</svg>
|
406 |
+
<?php
|
407 |
+
} else if( 'Sending' === $notification_status ) {
|
408 |
+
?>
|
409 |
+
<svg class="flex-shrink-0 ml-2 h-6 w-6 text-yellow-400" fill="currentColor" viewBox="0 0 20 20">
|
410 |
+
<title><?php echo esc_attr__( 'Sending', 'email-subscribers' ); ?></title>
|
411 |
+
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-8.707l-3-3a1 1 0 00-1.414 1.414L10.586 9H7a1 1 0 100 2h3.586l-1.293 1.293a1 1 0 101.414 1.414l3-3a1 1 0 000-1.414z" clip-rule="evenodd"/>
|
412 |
+
</svg>
|
413 |
+
<?php
|
414 |
+
} else {
|
415 |
+
?>
|
416 |
+
<svg class="flex-shrink-0 ml-2 h-6 w-6 text-green-400" fill="currentColor" viewBox="0 0 20 20" >
|
417 |
+
<title><?php echo esc_attr__( 'Sent', 'email-subscribers' ); ?></title>
|
418 |
+
<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"/>
|
419 |
+
</svg>
|
420 |
+
<?php
|
421 |
+
}
|
422 |
+
}
|
423 |
+
break;
|
424 |
+
|
425 |
+
case IG_ES_CAMPAIGN_STATUS_IN_ACTIVE:
|
426 |
+
?>
|
427 |
+
<svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24" class="ml-2 h-6 w-6 text-indigo-600">
|
428 |
+
<title><?php echo esc_attr__( 'Draft', 'email-subscribers' ); ?></title>
|
429 |
+
<path d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path>
|
430 |
+
</svg>
|
431 |
+
<?php
|
432 |
+
break;
|
433 |
+
|
434 |
case IG_ES_CAMPAIGN_STATUS_SCHEDULED:
|
435 |
+
?>
|
436 |
+
<svg class="flex-shrink-0 ml-2 h-6 w-6 text-orange-400" fill="currentColor" viewBox="0 0 20 20">
|
437 |
+
<title><?php echo esc_attr__( 'Scheduled', 'email-subscribers' ); ?></title>
|
438 |
+
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z" clip-rule="evenodd"/>
|
439 |
+
</svg>
|
440 |
+
<?php
|
441 |
+
break;
|
442 |
+
|
443 |
case IG_ES_CAMPAIGN_STATUS_QUEUED:
|
444 |
+
?>
|
445 |
+
<svg class="flex-shrink-0 ml-2 h-6 w-6 text-yellow-400" fill="currentColor" viewBox="0 0 20 20">
|
446 |
+
<title><?php echo esc_attr__( 'Sending', 'email-subscribers' ); ?></title>
|
447 |
+
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-8.707l-3-3a1 1 0 00-1.414 1.414L10.586 9H7a1 1 0 100 2h3.586l-1.293 1.293a1 1 0 101.414 1.414l3-3a1 1 0 000-1.414z" clip-rule="evenodd"/></svg>
|
448 |
+
</svg>
|
449 |
+
<?php
|
450 |
+
break;
|
451 |
|
452 |
case IG_ES_CAMPAIGN_STATUS_PAUSED:
|
453 |
+
?>
|
454 |
+
<svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24" class="ml-2 h-6 w-6 text-blue-400">
|
455 |
+
<title><?php echo esc_attr__( 'Paused', 'email-subscribers' ); ?></title>
|
456 |
+
<path d="M10 9v6m4-6v6m7-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
|
457 |
<?php
|
458 |
break;
|
459 |
|
460 |
default:
|
461 |
+
?>
|
462 |
+
<svg class="flex-shrink-0 ml-2 h-6 w-6 text-green-400" fill="currentColor" viewBox="0 0 20 20" >
|
463 |
+
<title><?php echo esc_attr__( 'Sent', 'email-subscribers' ); ?></title>
|
464 |
+
<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"/>
|
465 |
+
</svg>
|
466 |
+
<?php
|
467 |
+
break;
|
468 |
}
|
469 |
}
|
470 |
?>
|
529 |
* @since 4.3.4 Added esc_attr()
|
530 |
*/
|
531 |
public function search_box( $text = '', $input_id = '' ) { ?>
|
532 |
+
<p class="search-box">
|
533 |
+
<label class="screen-reader-text" for="<?php echo esc_attr( $input_id ); ?>"><?php echo esc_attr( $text ); ?>:</label>
|
534 |
+
<input type="search" id="<?php echo $input_id ?>" name="s" value="<?php _admin_search_query(); ?>"/>
|
535 |
<?php submit_button( __( 'Search Campaigns', 'email-subscribers' ), 'button', false, false, array( 'id' => 'search-submit' ) ); ?>
|
536 |
+
</p>
|
537 |
<?php }
|
538 |
|
539 |
/**
|
lite/includes/classes/class-es-contact-background-process.php
DELETED
@@ -1,1056 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Class to handle export/import of ES contacts in background
|
4 |
-
*
|
5 |
-
* @author Icegram
|
6 |
-
* @since 4.4.4
|
7 |
-
* @version 1.0.0
|
8 |
-
*
|
9 |
-
* @package Email Subscribers
|
10 |
-
*/
|
11 |
-
|
12 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
-
exit; // Exit if accessed directly.
|
14 |
-
}
|
15 |
-
|
16 |
-
if ( ! class_exists( 'ES_Contact_Background_Process' ) ) {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* ES_Contact_Background_Process Class.
|
20 |
-
*/
|
21 |
-
class ES_Contact_Background_Process {
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Start time of current process.
|
25 |
-
*
|
26 |
-
* (default value: 0)
|
27 |
-
*
|
28 |
-
* @var int
|
29 |
-
* @access protected
|
30 |
-
*/
|
31 |
-
protected $start_time = 0;
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Identifier
|
35 |
-
*
|
36 |
-
* @var mixed
|
37 |
-
* @access protected
|
38 |
-
*/
|
39 |
-
protected $identifier;
|
40 |
-
|
41 |
-
/**
|
42 |
-
* Background process status
|
43 |
-
*
|
44 |
-
* (default value: '')
|
45 |
-
*
|
46 |
-
* @var string
|
47 |
-
* @access protected
|
48 |
-
*/
|
49 |
-
protected $is_process_running = '';
|
50 |
-
|
51 |
-
/**
|
52 |
-
* Variable to hold instance of ES_Contact_Background_Process
|
53 |
-
*
|
54 |
-
* @var $instance
|
55 |
-
*/
|
56 |
-
private static $instance = null;
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Contructor
|
60 |
-
*
|
61 |
-
* @since 4.4.4
|
62 |
-
*/
|
63 |
-
private function __construct() {
|
64 |
-
|
65 |
-
$this->identifier = 'ig_es_contact_background_process';
|
66 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'contact_background_notice' ), 11 );
|
67 |
-
add_action( 'wp_ajax_ig_es_contact_background_progress', array( $this, 'ajax_contact_background_progress' ) );
|
68 |
-
add_action( 'wp_ajax_ig_es_get_background_process_results', array( $this, 'ajax_get_background_process_results' ) );
|
69 |
-
add_action( 'wp_ajax_ig_es_cancel_contact_background_process', array( $this, 'ajax_cancel_contact_background_process' ) );
|
70 |
-
add_action( 'wp_ajax_ig_es_download_csv', array( $this, 'ajax_download_csv' ) );
|
71 |
-
add_action( 'ig_es_add_contact_to_csv', array( $this, 'add_contact_to_csv' ) );
|
72 |
-
add_action( 'ig_es_import_contacts_from_csv', array( $this, 'import_contacts_from_csv' ) );
|
73 |
-
|
74 |
-
add_action( 'action_scheduler_failed_action', array( $this, 'restart_failed_action' ) );
|
75 |
-
add_filter( 'cron_schedules', array( $this, 'modify_action_scheduler_default_interval' ), 1000 ); // phpcs:ignore
|
76 |
-
}
|
77 |
-
|
78 |
-
/**
|
79 |
-
* Get single instance of ES_Contact_Background_Process
|
80 |
-
*
|
81 |
-
* @return ES_Contact_Background_Process Singleton object of ES_Contact_Background_Process
|
82 |
-
*
|
83 |
-
* @since 4.4.4
|
84 |
-
*/
|
85 |
-
public static function get_instance() {
|
86 |
-
// Check if instance is already exists.
|
87 |
-
if ( is_null( self::$instance ) ) {
|
88 |
-
self::$instance = new self();
|
89 |
-
}
|
90 |
-
|
91 |
-
return self::$instance;
|
92 |
-
}
|
93 |
-
|
94 |
-
/**
|
95 |
-
* Memory exceeded
|
96 |
-
*
|
97 |
-
* Ensures the batch process never exceeds 80%
|
98 |
-
* of the maximum WordPress memory.
|
99 |
-
*
|
100 |
-
* @return bool
|
101 |
-
*
|
102 |
-
* @since 4.4.4
|
103 |
-
*/
|
104 |
-
protected function memory_exceeded() {
|
105 |
-
$memory_limit = $this->get_memory_limit() * 0.8; // 80% of max memory
|
106 |
-
$current_memory = memory_get_usage( true );
|
107 |
-
|
108 |
-
if ( $current_memory >= $memory_limit ) {
|
109 |
-
return true;
|
110 |
-
}
|
111 |
-
|
112 |
-
return false;
|
113 |
-
}
|
114 |
-
|
115 |
-
/**
|
116 |
-
* Get memory limit.
|
117 |
-
*
|
118 |
-
* @return int
|
119 |
-
*
|
120 |
-
* @since 4.4.4
|
121 |
-
*/
|
122 |
-
protected function get_memory_limit() {
|
123 |
-
if ( function_exists( 'ini_get' ) ) {
|
124 |
-
$memory_limit = ini_get( 'memory_limit' );
|
125 |
-
} else {
|
126 |
-
// Sensible default.
|
127 |
-
$memory_limit = '128M';
|
128 |
-
}
|
129 |
-
|
130 |
-
if ( ! $memory_limit || -1 === intval( $memory_limit ) ) {
|
131 |
-
// Unlimited, set to 32GB.
|
132 |
-
$memory_limit = '32G';
|
133 |
-
}
|
134 |
-
|
135 |
-
return wp_convert_hr_to_bytes( $memory_limit );
|
136 |
-
}
|
137 |
-
|
138 |
-
/**
|
139 |
-
* Time exceeded.
|
140 |
-
*
|
141 |
-
* Ensures the batch never exceeds a sensible time limit.
|
142 |
-
* A timeout limit of 30s is common on shared hosting.
|
143 |
-
*
|
144 |
-
* @param string $start_time start timestamp.
|
145 |
-
*
|
146 |
-
* @return bool
|
147 |
-
*
|
148 |
-
* @since 4.4.4
|
149 |
-
*/
|
150 |
-
protected function time_exceeded( $start_time = '' ) {
|
151 |
-
|
152 |
-
if ( ! empty( $start_time ) ) {
|
153 |
-
$this->start_time = $start_time;
|
154 |
-
}
|
155 |
-
|
156 |
-
$finish = $this->start_time + ( $this->get_time_limit() * 0.8 );
|
157 |
-
$return = false;
|
158 |
-
|
159 |
-
if ( time() >= $finish ) {
|
160 |
-
$return = true;
|
161 |
-
}
|
162 |
-
|
163 |
-
return apply_filters( $this->identifier . '_time_exceeded', $return );
|
164 |
-
}
|
165 |
-
|
166 |
-
/**
|
167 |
-
* Method to get Server time limit
|
168 |
-
*
|
169 |
-
* @return int $time_limit Server time limit.
|
170 |
-
*
|
171 |
-
* @since 4.4.4
|
172 |
-
*/
|
173 |
-
protected function get_time_limit() {
|
174 |
-
if ( function_exists( 'ini_get' ) ) {
|
175 |
-
$time_limit = ini_get( 'max_execution_time' );
|
176 |
-
} else {
|
177 |
-
// Sensible default.
|
178 |
-
$time_limit = apply_filters( $this->identifier . '_default_time_limit', 20 );
|
179 |
-
}
|
180 |
-
|
181 |
-
$time_limit = (int) $time_limit;
|
182 |
-
return $time_limit;
|
183 |
-
}
|
184 |
-
|
185 |
-
/**
|
186 |
-
* Display notice if a background process is already running or is completed
|
187 |
-
*
|
188 |
-
* @since 4.4.4
|
189 |
-
*/
|
190 |
-
public function contact_background_notice() {
|
191 |
-
|
192 |
-
if ( ! ES()->is_es_admin_screen() ) {
|
193 |
-
return;
|
194 |
-
}
|
195 |
-
|
196 |
-
if ( ! wp_script_is( 'jquery' ) ) {
|
197 |
-
wp_enqueue_script( 'jquery' );
|
198 |
-
}
|
199 |
-
|
200 |
-
$upload_dir = wp_upload_dir();
|
201 |
-
$upload_path = $upload_dir['path'];
|
202 |
-
$background_process_data = array();
|
203 |
-
ob_start();
|
204 |
-
if ( ! empty( $upload_dir['error'] ) ) {
|
205 |
-
?>
|
206 |
-
<div id="ig_es_folder_permission_warning" class="error">
|
207 |
-
<p>
|
208 |
-
<span class="dashicons dashicons-warning"></span>
|
209 |
-
<?php /* translators: 1. Important 2. Upload path */ ?>
|
210 |
-
<?php echo sprintf( esc_html__( '%1$s: To allow import/export of contacts, please make sure %2$s directory is writable.', 'email-subscribers' ), '<strong>' . esc_html__( 'Important', 'email-subscribers' ) . '</strong>', '<strong><code>' . esc_html( $upload_path ) . '</code></strong>' ); ?>
|
211 |
-
</p>
|
212 |
-
</div>
|
213 |
-
<?php
|
214 |
-
} else {
|
215 |
-
$action = ig_es_get_request_data( 'action' );
|
216 |
-
$is_process_running = $this->is_process_running();
|
217 |
-
$background_process_result = get_site_option( 'ig_es_contact_background_process_result', false );
|
218 |
-
|
219 |
-
// If background process is not running and there isn't any background process result to show then return.
|
220 |
-
if( 'no' === $is_process_running && empty( $background_process_result ) ) {
|
221 |
-
return;
|
222 |
-
}
|
223 |
-
|
224 |
-
// Show background process notification only on import/export admin pages.
|
225 |
-
if( in_array( $action, array( 'import', 'export' ), true ) ) {
|
226 |
-
// Show background process in progress message.
|
227 |
-
if ( 'yes' === $is_process_running ) {
|
228 |
-
?>
|
229 |
-
<div id="ig_es_contact_background_progress" class="error">
|
230 |
-
<p>
|
231 |
-
<?php
|
232 |
-
$process_data = get_site_option( 'ig_es_contact_background_process_data', false );
|
233 |
-
|
234 |
-
if( ! empty( $process_data ) ) {
|
235 |
-
$bulk_action = $process_data['action'];
|
236 |
-
|
237 |
-
switch ( $bulk_action ) {
|
238 |
-
case 'import_contact':
|
239 |
-
$bulk_text = __( 'imported', 'email-subscribers' );
|
240 |
-
break;
|
241 |
-
|
242 |
-
case 'export_contact':
|
243 |
-
$bulk_text = __( 'exported', 'email-subscribers' );
|
244 |
-
break;
|
245 |
-
|
246 |
-
default:
|
247 |
-
$bulk_text = '';
|
248 |
-
break;
|
249 |
-
}
|
250 |
-
|
251 |
-
echo '<strong>' . esc_html__( 'Important', 'email-subscribers' ) . '</strong>: ' . esc_html__( 'Contacts are being', 'email-subscribers' );
|
252 |
-
echo ' ' . esc_html( $bulk_text ) . ' ';
|
253 |
-
echo esc_html__( 'in the background.', 'email-subscribers' ) . ' ';
|
254 |
-
$process_progress = $this->calculate_contact_background_progress();
|
255 |
-
if( ! empty( $process_progress['percent_completion'] ) ) {
|
256 |
-
$percent_completion = $process_progress['percent_completion'];
|
257 |
-
} else {
|
258 |
-
$percent_completion = 0;
|
259 |
-
}
|
260 |
-
?>
|
261 |
-
<span id="ig_es_contact_background_prcess_percentage_wrapper">
|
262 |
-
<?php echo esc_html__( 'Progress', 'email-subscribers' ); ?>:
|
263 |
-
<strong><span id="ig_es_background_process_percentage"><?php echo esc_html( $percent_completion ); ?>%</span></strong>
|
264 |
-
</span>
|
265 |
-
<?php
|
266 |
-
}
|
267 |
-
?>
|
268 |
-
</p>
|
269 |
-
<p>
|
270 |
-
<?php
|
271 |
-
echo __( '<a href="#" id="ig-es-cancel-contact-background-process">Click here</a> to cancel this request.', 'email-subscribers' );
|
272 |
-
?>
|
273 |
-
</p>
|
274 |
-
</div>
|
275 |
-
<?php
|
276 |
-
}
|
277 |
-
}
|
278 |
-
|
279 |
-
// If background process is running then check it's progress continuously with the interval of 5 seconds.
|
280 |
-
if( 'yes' === $is_process_running ) {
|
281 |
-
$background_process_data['status'] = 'running';
|
282 |
-
} else {
|
283 |
-
// Check if background process is finished then gets its result HTML.
|
284 |
-
if( ! empty( $background_process_result ) ) {
|
285 |
-
$this->get_background_process_results_html( $background_process_result );
|
286 |
-
}
|
287 |
-
}
|
288 |
-
}
|
289 |
-
|
290 |
-
$notice_html = ob_get_clean();
|
291 |
-
$background_process_data['notice_html'] = $notice_html;
|
292 |
-
wp_localize_script( 'email-subscribers', 'background_process_data', $background_process_data );
|
293 |
-
}
|
294 |
-
|
295 |
-
/**
|
296 |
-
* Get background process progress via ajax
|
297 |
-
*
|
298 |
-
* @since 4.4.4
|
299 |
-
*/
|
300 |
-
public function ajax_contact_background_progress() {
|
301 |
-
|
302 |
-
check_ajax_referer( 'ig-es-admin-ajax-nonce', 'security' );
|
303 |
-
|
304 |
-
$response = array();
|
305 |
-
|
306 |
-
$progress = $this->calculate_contact_background_progress();
|
307 |
-
|
308 |
-
if ( isset( $progress['percent_completion'] ) ) {
|
309 |
-
$response['percent_completion'] = $progress['percent_completion'];
|
310 |
-
}
|
311 |
-
|
312 |
-
$process_data = get_site_option( 'ig_es_contact_background_process_data', false );
|
313 |
-
|
314 |
-
if ( ! empty( $process_data ) ) {
|
315 |
-
|
316 |
-
$contact_action = $process_data['action'];
|
317 |
-
$response['contact_action'] = $contact_action;
|
318 |
-
} else {
|
319 |
-
$process_result = get_site_option( 'ig_es_contact_background_process_result', false );
|
320 |
-
if( ! empty( $process_result ) ) {
|
321 |
-
$response['percent_completion'] = 100;
|
322 |
-
$response['contact_action'] = $process_result['action'];
|
323 |
-
}
|
324 |
-
}
|
325 |
-
|
326 |
-
wp_send_json( $response );
|
327 |
-
}
|
328 |
-
|
329 |
-
/**
|
330 |
-
* Get exported CSV file.
|
331 |
-
*
|
332 |
-
* @since 4.4.4
|
333 |
-
*/
|
334 |
-
public function ajax_download_csv() {
|
335 |
-
|
336 |
-
check_ajax_referer( 'ig_es_download_csv', 'download_nonce' );
|
337 |
-
|
338 |
-
$background_process_result = get_site_option( 'ig_es_contact_background_process_result', false );
|
339 |
-
|
340 |
-
if ( $background_process_result ) {
|
341 |
-
|
342 |
-
$file_path = $background_process_result['action_data']['csv_file_path'];
|
343 |
-
$file_name = basename( $file_path );
|
344 |
-
$dirname = dirname( $file_path );
|
345 |
-
$mime_type = 'text/x-csv';
|
346 |
-
|
347 |
-
if ( file_exists( $file_path ) && is_readable( $file_path ) ) {
|
348 |
-
|
349 |
-
nocache_headers();
|
350 |
-
header( 'X-Robots-Tag: noindex, nofollow', true );
|
351 |
-
header( 'Content-Type: ' . $mime_type . '; charset=UTF-8' );
|
352 |
-
header( 'Content-Description: File Transfer' );
|
353 |
-
header( 'Content-Transfer-Encoding: binary' );
|
354 |
-
header( 'Content-Disposition: attachment; filename="' . sanitize_file_name( $file_name ) . '";' );
|
355 |
-
readfile( $file_path ); // phpcs:ignore
|
356 |
-
unlink( $file_path );
|
357 |
-
} else {
|
358 |
-
echo esc_html__( 'Failed to create export file.', 'email-subscribers' );
|
359 |
-
exit();
|
360 |
-
}
|
361 |
-
|
362 |
-
delete_site_option( 'ig_es_contact_background_process_result' );
|
363 |
-
exit();
|
364 |
-
|
365 |
-
}
|
366 |
-
}
|
367 |
-
|
368 |
-
/**
|
369 |
-
* Cancel current background process
|
370 |
-
*
|
371 |
-
* @since 4.4.4.1
|
372 |
-
*/
|
373 |
-
public function ajax_cancel_contact_background_process() {
|
374 |
-
|
375 |
-
check_ajax_referer( 'ig-es-admin-ajax-nonce', 'security' );
|
376 |
-
$response = array();
|
377 |
-
$background_process_data = get_site_option( 'ig_es_contact_background_process_data', false );
|
378 |
-
ob_start();
|
379 |
-
if ( $background_process_data ) {
|
380 |
-
|
381 |
-
if( 'export_contact' === $background_process_data['action'] ) {
|
382 |
-
$csv_file_folder = ! empty( $background_process_data['export_file']['wp_upload_dir'] ) ? $background_process_data['export_file']['wp_upload_dir'] : '';
|
383 |
-
$csv_file_name = ! empty( $background_process_data['export_file']['file_name'] ) ? $background_process_data['export_file']['file_name'] : '';
|
384 |
-
$csv_file_path = $csv_file_folder . $csv_file_name;
|
385 |
-
} else if( 'import_contact' === $background_process_data['action'] ) {
|
386 |
-
$csv_file_path = ! empty( $background_process_data['import_file']['file'] ) ? $background_process_data['import_file']['file'] : '';
|
387 |
-
}
|
388 |
-
|
389 |
-
if( ! empty( $csv_file_path ) && file_exists( $csv_file_path ) ) {
|
390 |
-
// Delete CSV file being used in the process.
|
391 |
-
unlink( $csv_file_path );
|
392 |
-
}
|
393 |
-
|
394 |
-
// Delete data related to background process.
|
395 |
-
delete_site_option( 'ig_es_contact_background_process_data' );
|
396 |
-
delete_site_option( 'ig_es_contact_background_process_result' );
|
397 |
-
|
398 |
-
// Unschedule existing scheduled action schedulers.
|
399 |
-
as_unschedule_action( 'ig_es_add_contact_to_csv' );
|
400 |
-
as_unschedule_action( 'ig_es_import_contacts_from_csv' );
|
401 |
-
?>
|
402 |
-
<div id="ig_es_contact_background_results" class="updated">
|
403 |
-
<p>
|
404 |
-
<?php
|
405 |
-
echo __( 'The background process has been canceled successfully. You can start a new process again by importing or exporting.', 'email-subscribers' );
|
406 |
-
?>
|
407 |
-
</p>
|
408 |
-
</div>
|
409 |
-
<?php
|
410 |
-
} else {
|
411 |
-
// Till we processed this cancel request current import/export process got completed therefore show success background message instead.
|
412 |
-
$background_process_result = get_site_option( 'ig_es_contact_background_process_result', false );
|
413 |
-
if( false !== $background_process_result ) {
|
414 |
-
$this->get_background_process_results_html( $background_process_result );
|
415 |
-
}
|
416 |
-
}
|
417 |
-
$response_html = ob_get_clean();
|
418 |
-
$response['response_html'] = $response_html;
|
419 |
-
wp_send_json( $response );
|
420 |
-
}
|
421 |
-
|
422 |
-
/**
|
423 |
-
* Checks if background process is running
|
424 |
-
*
|
425 |
-
* @return string $is_process_running
|
426 |
-
*
|
427 |
-
* @since 4.4.4
|
428 |
-
*/
|
429 |
-
public function is_process_running() {
|
430 |
-
|
431 |
-
// Return process status if it has already been saved.
|
432 |
-
if ( ! empty( $this->is_process_running ) ) {
|
433 |
-
return $this->is_process_running;
|
434 |
-
}
|
435 |
-
|
436 |
-
$process_data = get_site_option( 'ig_es_contact_background_process_data', false );
|
437 |
-
$this->is_process_running = ( ! empty( $process_data ) ) ? 'yes' : 'no';
|
438 |
-
|
439 |
-
return $this->is_process_running;
|
440 |
-
}
|
441 |
-
|
442 |
-
/**
|
443 |
-
* Calculate progress of background contact process
|
444 |
-
*
|
445 |
-
* @return array $progress
|
446 |
-
*
|
447 |
-
* @since 4.4.4
|
448 |
-
*/
|
449 |
-
public function calculate_contact_background_progress() {
|
450 |
-
|
451 |
-
$progress = array();
|
452 |
-
$process_data = get_site_option( 'ig_es_contact_background_process_data', false );
|
453 |
-
|
454 |
-
if( ! empty( $process_data ) ) {
|
455 |
-
$total_contacts_to_process = ! empty( $process_data['total_contacts_to_process'] ) ? $process_data['total_contacts_to_process'] : 0;
|
456 |
-
$total_contacts_processed = ! empty( $process_data['total_contacts_processed'] ) ? $process_data['total_contacts_processed'] : 0;
|
457 |
-
|
458 |
-
$percent_completion = 0;
|
459 |
-
if ( ! empty( $total_contacts_to_process ) ) {
|
460 |
-
$percent_completion = ( ( intval( $total_contacts_processed ) ) * 100 ) / intval( $total_contacts_to_process );
|
461 |
-
}
|
462 |
-
|
463 |
-
$progress['percent_completion'] = round( $percent_completion, 2 );
|
464 |
-
}
|
465 |
-
|
466 |
-
return $progress;
|
467 |
-
}
|
468 |
-
|
469 |
-
/**
|
470 |
-
* Add Contacts to CSV from saved contact's data
|
471 |
-
*
|
472 |
-
* @since 4.4.4
|
473 |
-
*/
|
474 |
-
public function add_contact_to_csv() {
|
475 |
-
|
476 |
-
global $wpdb;
|
477 |
-
|
478 |
-
$process_data = get_site_option( 'ig_es_contact_background_process_data', true );
|
479 |
-
|
480 |
-
// Check status of contacts to be exported. Return if empty.
|
481 |
-
if( empty( $process_data['contact_status'] ) ) {
|
482 |
-
return;
|
483 |
-
}
|
484 |
-
|
485 |
-
$contact_status = $process_data['contact_status'];
|
486 |
-
$total_contacts_processed = ! empty( $process_data['total_contacts_processed'] ) ? $process_data['total_contacts_processed'] : 0;
|
487 |
-
$list_id = ! empty( $process_data['list_id'] ) ? $process_data['list_id'] : 0; // Contact list id.
|
488 |
-
$last_contact_id = ! empty( $process_data['last_contact_id'] ) ? $process_data['last_contact_id'] : 0; // ID of last exported contact.
|
489 |
-
|
490 |
-
$email_subscribe_table = IG_CONTACTS_TABLE;
|
491 |
-
|
492 |
-
$contact_results = array();
|
493 |
-
if ( 'all' === $contact_status ) {
|
494 |
-
$contact_results = ES()->lists_contacts_db->get_all_contacts();
|
495 |
-
} elseif ( 'subscribed' === $contact_status ) {
|
496 |
-
$contact_results = ES()->lists_contacts_db->get_all_subscribed_contacts();
|
497 |
-
} elseif ( 'unsubscribed' === $contact_status ) {
|
498 |
-
$contact_results = ES()->lists_contacts_db->get_all_unsubscribed_contacts();
|
499 |
-
} elseif ( 'confirmed' === $contact_status ) {
|
500 |
-
$contact_results = ES()->lists_contacts_db->get_all_confirmed_contacts();
|
501 |
-
} elseif ( 'unconfirmed' === $contact_status ) {
|
502 |
-
$contact_results = ES()->lists_contacts_db->get_all_unconfirmed_contacts();
|
503 |
-
} elseif ( 'select_list' === $contact_status ) {
|
504 |
-
$list_id = absint( $list_id );
|
505 |
-
$contact_results = ES()->lists_contacts_db->get_all_contacts_from_list( $list_id );
|
506 |
-
}
|
507 |
-
|
508 |
-
$subscribers = array();
|
509 |
-
|
510 |
-
// Set fail safe limit to process contact to export.
|
511 |
-
$fail_safe_limit = apply_filters( 'ig_es_fail_safe_contact_export_limit', 1000 );
|
512 |
-
|
513 |
-
// ID of last processed contact list data.
|
514 |
-
$last_processed_list_contact_id = ! empty( $process_data['last_processed_list_contact_id'] ) ? $process_data['last_processed_list_contact_id'] : 0;
|
515 |
-
|
516 |
-
if ( count( $contact_results ) > 0 ) {
|
517 |
-
$total_contacts_to_process = count( $contact_results );
|
518 |
-
|
519 |
-
$process_data['total_contacts_to_process'] = $total_contacts_to_process;
|
520 |
-
$contact_list_map = array();
|
521 |
-
$contact_ids = array();
|
522 |
-
if( ! empty( $last_processed_list_contact_id ) ) {
|
523 |
-
$last_processed_list_contact_id_index = array_search($last_processed_list_contact_id, array_column( $contact_results, 'id') );
|
524 |
-
// Remove contact results before $last_processed_list_contact_id_index since they have been processed in last run.
|
525 |
-
$contact_results = array_splice( $contact_results, $last_processed_list_contact_id_index + 1 );
|
526 |
-
}
|
527 |
-
|
528 |
-
foreach ( $contact_results as $result_count => $result ) {
|
529 |
-
if ( ! in_array( $result['contact_id'], $contact_ids ) ) {
|
530 |
-
$contact_ids[] = $result['contact_id'];
|
531 |
-
}
|
532 |
-
|
533 |
-
$contact_list_map[ $result['contact_id'] ][] = array(
|
534 |
-
'status' => $result['status'],
|
535 |
-
'list_id' => $result['list_id'],
|
536 |
-
'optin_type' => $result['optin_type']
|
537 |
-
);
|
538 |
-
|
539 |
-
// If contact fail safe limit reached then set id of list contact data. This will be used in next run while processing $contact_results.
|
540 |
-
if( $result_count >= $fail_safe_limit ) {
|
541 |
-
$last_processed_list_contact_id = $result['id'];
|
542 |
-
break;
|
543 |
-
}
|
544 |
-
}
|
545 |
-
$contact_ids_str = "'" . implode( "' , '", $contact_ids ) . "' ";
|
546 |
-
|
547 |
-
$query = "SELECT `id`, `first_name`, `last_name`, `email`, `created_at` FROM {$email_subscribe_table} WHERE id IN ({$contact_ids_str}) ORDER BY FIELD( id, {$contact_ids_str})";
|
548 |
-
$subscribers = $wpdb->get_results( $query, ARRAY_A );
|
549 |
-
}
|
550 |
-
|
551 |
-
$subscribers_count = count( $subscribers );
|
552 |
-
|
553 |
-
$batch_start_time = time();
|
554 |
-
|
555 |
-
if ( isset( $process_data['export_file'] ) && is_array( $process_data['export_file'] ) ) {
|
556 |
-
$export_file = $process_data['export_file'];
|
557 |
-
$csv_folder = $export_file['wp_upload_dir'];
|
558 |
-
$file_name = $export_file['file_name'];
|
559 |
-
$csv_file_path = $csv_folder . $file_name;
|
560 |
-
// Check if file exist.
|
561 |
-
if( file_exists( $csv_file_path ) ) {
|
562 |
-
$csv_file_handler = fopen( $csv_file_path, 'a' ); // phpcs:ignore
|
563 |
-
|
564 |
-
// Proceed only if file has opened in append mode.
|
565 |
-
if ( false !== $csv_file_handler ) {
|
566 |
-
$last_subscriber = end( $subscribers );
|
567 |
-
$last_subscriber_id = $last_subscriber['id'];
|
568 |
-
$lists_id_name_map = ES()->lists_db->get_list_id_name_map();
|
569 |
-
foreach ( $subscribers as $subscriber ) {
|
570 |
-
$subscriber_id = $subscriber['id'];
|
571 |
-
$data = array();
|
572 |
-
$data['first_name'] = trim( str_replace( '"', '""', $subscriber['first_name'] ) );
|
573 |
-
$data['last_name'] = trim( str_replace( '"', '""', $subscriber['last_name'] ) );
|
574 |
-
$data['email'] = trim( str_replace( '"', '""', $subscriber['email'] ) );
|
575 |
-
$contact_id = $subscriber['id'];
|
576 |
-
if ( ! empty( $contact_list_map[ $contact_id ] ) ) {
|
577 |
-
foreach ( $contact_list_map[ $contact_id ] as $list_details ) {
|
578 |
-
$file_data = "\n";
|
579 |
-
$data['list'] = $lists_id_name_map[ $list_details['list_id'] ];
|
580 |
-
$data['status'] = ucfirst( $list_details['status'] );
|
581 |
-
$data['optin_type'] = ( $list_details['optin_type'] == 1 ) ? 'Single Opt-In' : 'Double Opt-In';
|
582 |
-
$data['created_at'] = $subscriber['created_at'];
|
583 |
-
$file_data .= '"' . implode( '","', $data ) . '"';
|
584 |
-
if ( $file_data ) {
|
585 |
-
fwrite( $csv_file_handler, $file_data ); // phpcs:ignore
|
586 |
-
}
|
587 |
-
$total_contacts_processed++;
|
588 |
-
}
|
589 |
-
}
|
590 |
-
|
591 |
-
// If loop is completed or time is reached or memory limit is reached then set required options for next run and break the loop.
|
592 |
-
if ( $last_subscriber_id === $subscriber_id || $this->time_exceeded( $batch_start_time ) || $this->memory_exceeded() ) {
|
593 |
-
// Update background process data only if it exists to ensure we don't start another process in this request if it was cancelled previously by user.
|
594 |
-
if( false !== get_site_option( 'ig_es_contact_background_process_data', false ) ) {
|
595 |
-
$process_data['last_contact_id'] = $subscriber_id;
|
596 |
-
$process_data['total_contacts_processed'] = $total_contacts_processed;
|
597 |
-
$process_data['last_processed_list_contact_id'] = $last_processed_list_contact_id;
|
598 |
-
update_site_option( 'ig_es_contact_background_process_data', $process_data );
|
599 |
-
if ( function_exists( 'as_schedule_single_action' ) ) {
|
600 |
-
as_schedule_single_action( time(), 'ig_es_add_contact_to_csv' );
|
601 |
-
}
|
602 |
-
break;
|
603 |
-
}
|
604 |
-
}
|
605 |
-
}
|
606 |
-
|
607 |
-
fclose( $csv_file_handler ); // phpcs:ignore
|
608 |
-
|
609 |
-
// If all contacts are processed.
|
610 |
-
if ( $total_contacts_processed >= $total_contacts_to_process ) {
|
611 |
-
|
612 |
-
$contact_background_process_result = array(
|
613 |
-
'action' => 'export_contact',
|
614 |
-
'total_contacts_processed' => $total_contacts_processed,
|
615 |
-
'action_data' => array(
|
616 |
-
'csv_file_path' => $csv_file_path,
|
617 |
-
),
|
618 |
-
);
|
619 |
-
|
620 |
-
as_unschedule_action( 'ig_es_add_contact_to_csv' );
|
621 |
-
as_unschedule_action( 'ig_es_import_contacts_from_csv' );
|
622 |
-
|
623 |
-
// Delete background process data as it is now completed.
|
624 |
-
delete_site_option( 'ig_es_contact_background_process_data' );
|
625 |
-
|
626 |
-
update_site_option( 'ig_es_contact_background_process_result', $contact_background_process_result );
|
627 |
-
}
|
628 |
-
}
|
629 |
-
}
|
630 |
-
}
|
631 |
-
}
|
632 |
-
|
633 |
-
/**
|
634 |
-
* Generate Contacts from generated/imported csv file
|
635 |
-
*
|
636 |
-
* @since 4.4.4
|
637 |
-
*/
|
638 |
-
public function import_contacts_from_csv() {
|
639 |
-
|
640 |
-
$process_data = get_site_option( 'ig_es_contact_background_process_data', true );
|
641 |
-
$total_contacts_to_process = ! empty( $process_data['total_contacts_to_process'] ) ? (int) $process_data['total_contacts_to_process'] : 0;
|
642 |
-
|
643 |
-
if ( isset( $process_data['import_file'] ) && is_array( $process_data['import_file'] ) && ! empty( $total_contacts_to_process ) ) {
|
644 |
-
|
645 |
-
$contact_status = $process_data['contact_status'];
|
646 |
-
$list_id = $process_data['list_id'];
|
647 |
-
$import_file = $process_data['import_file'];
|
648 |
-
$csv_file = $import_file['file'];
|
649 |
-
$file_position = isset( $import_file['file_position'] ) && is_numeric( $import_file['file_position'] ) ? $import_file['file_position'] : 0;
|
650 |
-
|
651 |
-
// Check if file exist.
|
652 |
-
if( file_exists( $csv_file ) ) {
|
653 |
-
// Set locale.
|
654 |
-
$encoding = mb_detect_encoding( $csv_file, 'UTF-8, ISO-8859-1', true );
|
655 |
-
if ( $encoding ) {
|
656 |
-
setlocale( LC_ALL, 'en_US.' . $encoding );
|
657 |
-
}
|
658 |
-
ini_set( 'auto_detect_line_endings', true ); // phpcs:ignore
|
659 |
-
$csv_file_handler = fopen( $csv_file, 'r' ); // phpcs:ignore
|
660 |
-
if ( false !== $csv_file_handler ) {
|
661 |
-
|
662 |
-
$delimiter = $this->get_delimiter( $csv_file );
|
663 |
-
|
664 |
-
// Get Headers
|
665 |
-
$csv_header = array_map( 'trim', fgetcsv( $csv_file_handler, 0, $delimiter ) );
|
666 |
-
|
667 |
-
$batch_start_time = time();
|
668 |
-
|
669 |
-
$reading_completed = false;
|
670 |
-
$no_of_remaining_contacts = -1;
|
671 |
-
$existing_contacts_email_id_map = ES()->contacts_db->get_email_id_map();
|
672 |
-
|
673 |
-
$existing_contacts = array();
|
674 |
-
if ( count( $existing_contacts_email_id_map ) > 0 ) {
|
675 |
-
$existing_contacts = array_keys( $existing_contacts_email_id_map );
|
676 |
-
$existing_contacts = array_map( 'strtolower', $existing_contacts );
|
677 |
-
}
|
678 |
-
|
679 |
-
$invalid_emails_count = ! empty( $process_data['invalid_emails_count'] ) ? $process_data['invalid_emails_count'] : 0;
|
680 |
-
$total_contacts_processed = ! empty( $process_data['total_contacts_processed'] ) ? $process_data['total_contacts_processed'] : 0;
|
681 |
-
$existing_contacts_count = ! empty( $process_data['existing_contacts_count'] ) ? $process_data['existing_contacts_count'] : 0;
|
682 |
-
$processed_emails = array();
|
683 |
-
$contacts_data = array();
|
684 |
-
$current_date_time = ig_get_current_date_time();
|
685 |
-
|
686 |
-
for ( $no_of_contacts_imported = 1; $no_of_contacts_imported <= $total_contacts_to_process; $no_of_contacts_imported++ ) {
|
687 |
-
|
688 |
-
$result = $this->parse_data_by_row( $csv_file_handler, $csv_header, $file_position, $encoding, $delimiter );
|
689 |
-
$file_position = $result['file_position'];
|
690 |
-
$parsed_csv_data = $result['parsed_csv_data'];
|
691 |
-
$reading_completed = $result['reading_completed'];
|
692 |
-
if ( ! $reading_completed ) {
|
693 |
-
|
694 |
-
$parsed_csv_data = array_map( 'trim', $parsed_csv_data );
|
695 |
-
|
696 |
-
$email = isset( $parsed_csv_data['Email'] ) ? strtolower( sanitize_email( trim( $parsed_csv_data['Email'] ) ) ) : '';
|
697 |
-
if ( empty( $email ) ) {
|
698 |
-
$total_contacts_processed++;
|
699 |
-
$invalid_emails_count++;
|
700 |
-
continue;
|
701 |
-
}
|
702 |
-
|
703 |
-
if ( ! in_array( $email, $existing_contacts ) ) {
|
704 |
-
$contacts_data = array();
|
705 |
-
$name = isset( $parsed_csv_data['Name'] ) ? trim( $parsed_csv_data['Name'] ) : '';
|
706 |
-
$first_name = isset( $parsed_csv_data['First Name'] ) ? sanitize_text_field( trim( $parsed_csv_data['First Name'] ) ) : '';
|
707 |
-
$last_name = isset( $parsed_csv_data['Last Name'] ) ? sanitize_text_field( trim( $parsed_csv_data['Last Name'] ) ) : '';
|
708 |
-
|
709 |
-
// If we don't get the first_name & last_name, consider Name field.
|
710 |
-
// If name empty, get the name from Email
|
711 |
-
if ( empty( $first_name ) && empty( $last_name ) ) {
|
712 |
-
|
713 |
-
if ( empty( $name ) ) {
|
714 |
-
$name = ES_Common::get_name_from_email( $email );
|
715 |
-
}
|
716 |
-
|
717 |
-
$names = ES_Common::prepare_first_name_last_name( $name );
|
718 |
-
$first_name = sanitize_text_field( $names['first_name'] );
|
719 |
-
$last_name = sanitize_text_field( $names['last_name'] );
|
720 |
-
}
|
721 |
-
|
722 |
-
$guid = ES_Common::generate_guid();
|
723 |
-
|
724 |
-
$contacts_data['first_name'] = $first_name;
|
725 |
-
$contacts_data['last_name'] = $last_name;
|
726 |
-
$contacts_data['email'] = $email;
|
727 |
-
$contacts_data['source'] = 'import';
|
728 |
-
$contacts_data['status'] = 'verified';
|
729 |
-
$contacts_data['hash'] = $guid;
|
730 |
-
$contacts_data['created_at'] = $current_date_time;
|
731 |
-
|
732 |
-
ES()->contacts_db->bulk_insert( array( $contacts_data ) );
|
733 |
-
|
734 |
-
} else {
|
735 |
-
$existing_contacts_count++;
|
736 |
-
}
|
737 |
-
$processed_emails[] = $email;
|
738 |
-
$total_contacts_processed++;
|
739 |
-
}
|
740 |
-
|
741 |
-
$no_of_remaining_contacts = $total_contacts_to_process - $total_contacts_processed;
|
742 |
-
|
743 |
-
if ( 0 === $no_of_remaining_contacts ) {
|
744 |
-
|
745 |
-
$contact_ids = ES()->contacts_db->get_contact_ids_by_emails( $processed_emails );
|
746 |
-
if( ! empty( $contact_ids ) ) {
|
747 |
-
ES()->lists_contacts_db->remove_contacts_from_lists( $contact_ids, $list_id );
|
748 |
-
ES()->lists_contacts_db->do_import_contacts_into_list( $list_id, $contact_ids, $contact_status, 1, $current_date_time );
|
749 |
-
}
|
750 |
-
|
751 |
-
$contact_background_process_result = array(
|
752 |
-
'action' => 'import_contact',
|
753 |
-
'total_contacts_to_process' => $total_contacts_to_process,
|
754 |
-
'total_contacts_processed' => $total_contacts_processed,
|
755 |
-
'existing_contacts_count' => $existing_contacts_count,
|
756 |
-
'invalid_emails_count' => $invalid_emails_count,
|
757 |
-
);
|
758 |
-
|
759 |
-
fclose( $csv_file_handler ); // phpcs:ignore
|
760 |
-
unlink( $csv_file );
|
761 |
-
delete_site_option( 'ig_es_contact_background_process_data' );
|
762 |
-
|
763 |
-
update_site_option( 'ig_es_contact_background_process_result', $contact_background_process_result, 'no' );
|
764 |
-
break;
|
765 |
-
}
|
766 |
-
|
767 |
-
if ( $this->time_exceeded( $batch_start_time ) || $this->memory_exceeded() ) {
|
768 |
-
|
769 |
-
$contact_ids = ES()->contacts_db->get_contact_ids_by_emails( $processed_emails );
|
770 |
-
if( ! empty( $contact_ids ) ) {
|
771 |
-
ES()->lists_contacts_db->remove_contacts_from_lists( $contact_ids, $list_id );
|
772 |
-
ES()->lists_contacts_db->do_import_contacts_into_list( $list_id, $contact_ids, $contact_status, 1, $current_date_time );
|
773 |
-
}
|
774 |
-
|
775 |
-
fclose( $csv_file_handler ); // phpcs:ignore
|
776 |
-
|
777 |
-
// Update background process data only if it exists to ensure we don't start another process in this request if it was cancelled previously by user.
|
778 |
-
if( false !== get_site_option( 'ig_es_contact_background_process_data', false ) ) {
|
779 |
-
$process_data['import_file']['file_position'] = $file_position;
|
780 |
-
$process_data['total_contacts_processed'] = $total_contacts_processed;
|
781 |
-
$process_data['existing_contacts_count'] = $existing_contacts_count;
|
782 |
-
$process_data['invalid_emails_count'] = $invalid_emails_count;
|
783 |
-
update_site_option( 'ig_es_contact_background_process_data', $process_data );
|
784 |
-
if ( function_exists( 'as_schedule_single_action' ) ) {
|
785 |
-
as_schedule_single_action( time(), 'ig_es_import_contacts_from_csv' );
|
786 |
-
}
|
787 |
-
break;
|
788 |
-
}
|
789 |
-
}
|
790 |
-
}
|
791 |
-
}
|
792 |
-
}
|
793 |
-
}
|
794 |
-
}
|
795 |
-
|
796 |
-
/**
|
797 |
-
* Restart scheduler after one minute if it fails
|
798 |
-
*
|
799 |
-
* @param array $action_id id of failed action.
|
800 |
-
*
|
801 |
-
* @since 4.4.4
|
802 |
-
*/
|
803 |
-
public function restart_failed_action( $action_id = 0 ) {
|
804 |
-
|
805 |
-
if ( empty( $action_id ) || ! class_exists( 'ActionScheduler' ) || ! is_callable( array( 'ActionScheduler', 'store' ) ) || ! function_exists( 'as_schedule_single_action' ) ) {
|
806 |
-
return;
|
807 |
-
}
|
808 |
-
|
809 |
-
$action = ActionScheduler::store()->fetch_action( $action_id );
|
810 |
-
$action_hook = $action->get_hook();
|
811 |
-
|
812 |
-
if ( in_array( $action_hook, array( 'ig_es_add_contact_to_csv', 'ig_es_import_contacts_from_csv' ), true ) ) {
|
813 |
-
as_schedule_single_action( time() + MINUTE_IN_SECONDS, $action_hook );
|
814 |
-
}
|
815 |
-
}
|
816 |
-
|
817 |
-
/**
|
818 |
-
* Parse data one row at a time
|
819 |
-
*
|
820 |
-
* @param boolean $file_handler CSV file handler.
|
821 |
-
* @param array $header CSV header meta column name.
|
822 |
-
* @param integer $file_position file pointer posistion to read from.
|
823 |
-
* @param string $encoding Character encoding.
|
824 |
-
* @param string $delimiter Delimiting character.
|
825 |
-
*
|
826 |
-
* @return array $result parsed data with current file pointer position
|
827 |
-
*
|
828 |
-
* @since 4.4.4
|
829 |
-
*/
|
830 |
-
public function parse_data_by_row( $file_handler = false, $header = array(), $file_position = 0, $encoding = '', $delimiter = ',' ) {
|
831 |
-
|
832 |
-
$parsed_csv_data = array();
|
833 |
-
|
834 |
-
$reading_completed = false;
|
835 |
-
|
836 |
-
if ( false !== $file_handler ) {
|
837 |
-
|
838 |
-
if ( $file_position > 0 ) {
|
839 |
-
|
840 |
-
fseek( $file_handler, (int) $file_position );
|
841 |
-
|
842 |
-
}
|
843 |
-
|
844 |
-
if ( false !== ( $postmeta = fgetcsv( $file_handler, 0, $delimiter ) ) ) { // phpcs:ignore
|
845 |
-
$row = array();
|
846 |
-
foreach ( $header as $key => $heading ) {
|
847 |
-
|
848 |
-
// Put all CSV data into an associative array by row.
|
849 |
-
$row[ $heading ] = ( isset( $postmeta[ $key ] ) ) ? $this->format_data_from_csv( stripslashes( $postmeta[ $key ] ), $encoding ) : '';
|
850 |
-
}
|
851 |
-
|
852 |
-
$parsed_csv_data = $row;
|
853 |
-
|
854 |
-
unset( $postmeta, $row );
|
855 |
-
|
856 |
-
} else {
|
857 |
-
|
858 |
-
$reading_completed = true;
|
859 |
-
|
860 |
-
}
|
861 |
-
|
862 |
-
$file_position = ftell( $file_handler );
|
863 |
-
}
|
864 |
-
|
865 |
-
$result = array(
|
866 |
-
'parsed_csv_data' => $parsed_csv_data,
|
867 |
-
'file_position' => $file_position,
|
868 |
-
'reading_completed' => $reading_completed,
|
869 |
-
);
|
870 |
-
|
871 |
-
return $result;
|
872 |
-
}
|
873 |
-
|
874 |
-
/**
|
875 |
-
* Format data passed from CSV
|
876 |
-
*
|
877 |
-
* @param array $data The data to format.
|
878 |
-
* @param string $enc Encoding.
|
879 |
-
*
|
880 |
-
* @since 4.4.4
|
881 |
-
*/
|
882 |
-
public function format_data_from_csv( $data, $enc ) {
|
883 |
-
return ( 'UTF-8' === $enc ) ? $data : utf8_encode( $data );
|
884 |
-
}
|
885 |
-
|
886 |
-
/**
|
887 |
-
* Get CSV file delimiter
|
888 |
-
*
|
889 |
-
* @param $file
|
890 |
-
* @param int $check_lines
|
891 |
-
*
|
892 |
-
* @return mixed
|
893 |
-
*
|
894 |
-
* @since 4.4.4
|
895 |
-
*/
|
896 |
-
public function get_delimiter( $file, $check_lines = 2 ) {
|
897 |
-
|
898 |
-
$file = new SplFileObject( $file );
|
899 |
-
|
900 |
-
$delimiters = array( ',', '\t', ';', '|', ':' );
|
901 |
-
$results = array();
|
902 |
-
$i = 0;
|
903 |
-
while ( $file->valid() && $i <= $check_lines ) {
|
904 |
-
$line = $file->fgets();
|
905 |
-
foreach ( $delimiters as $delimiter ) {
|
906 |
-
$regExp = '/[' . $delimiter . ']/';
|
907 |
-
$fields = preg_split( $regExp, $line );
|
908 |
-
if ( count( $fields ) > 1 ) {
|
909 |
-
if ( ! empty( $results[ $delimiter ] ) ) {
|
910 |
-
$results[ $delimiter ] ++;
|
911 |
-
} else {
|
912 |
-
$results[ $delimiter ] = 1;
|
913 |
-
}
|
914 |
-
}
|
915 |
-
}
|
916 |
-
$i ++;
|
917 |
-
}
|
918 |
-
|
919 |
-
if ( count( $results ) > 0 ) {
|
920 |
-
|
921 |
-
$results = array_keys( $results, max( $results ) );
|
922 |
-
|
923 |
-
return $results[0];
|
924 |
-
}
|
925 |
-
|
926 |
-
return ',';
|
927 |
-
|
928 |
-
}
|
929 |
-
|
930 |
-
/**
|
931 |
-
* Function to modify action scheduler's default interval between two consecutive scheduler when background process running
|
932 |
-
*
|
933 |
-
* @param array $schedules schedules with interval and display.
|
934 |
-
*
|
935 |
-
* @return array $schedules
|
936 |
-
*
|
937 |
-
* @since 4.4.4
|
938 |
-
*/
|
939 |
-
public function modify_action_scheduler_default_interval( $schedules = array() ) {
|
940 |
-
|
941 |
-
if ( 'yes' === $this->is_process_running() ) {
|
942 |
-
|
943 |
-
$schedules['every_minute'] = array(
|
944 |
-
'interval' => 5,
|
945 |
-
'display' => __( 'Every 5 Seconds', 'email-subscribers' ),
|
946 |
-
);
|
947 |
-
}
|
948 |
-
|
949 |
-
return $schedules;
|
950 |
-
}
|
951 |
-
|
952 |
-
|
953 |
-
/**
|
954 |
-
* Method to get background process result HTML in ajax request.
|
955 |
-
*
|
956 |
-
* @return array $response Response HTML array
|
957 |
-
*
|
958 |
-
* @since 4.4.4
|
959 |
-
*/
|
960 |
-
public function ajax_get_background_process_results() {
|
961 |
-
|
962 |
-
check_ajax_referer( 'ig-es-admin-ajax-nonce', 'security' );
|
963 |
-
|
964 |
-
$background_process_result = get_site_option( 'ig_es_contact_background_process_result', false );
|
965 |
-
|
966 |
-
$response = array(
|
967 |
-
'response_html' => '',
|
968 |
-
);
|
969 |
-
|
970 |
-
if ( false !== $background_process_result ) {
|
971 |
-
switch ( $background_process_result['action'] ) {
|
972 |
-
case 'export_contact':
|
973 |
-
$action_text = __( 'exported', 'email-subscribers' );
|
974 |
-
break;
|
975 |
-
default:
|
976 |
-
$action_text = __( 'imported', 'email-subscribers' );
|
977 |
-
break;
|
978 |
-
}
|
979 |
-
ob_start();
|
980 |
-
$this->get_background_process_results_html( $background_process_result );
|
981 |
-
$response_html = ob_get_clean();
|
982 |
-
$response['response_html'] = $response_html;
|
983 |
-
wp_send_json( $response );
|
984 |
-
}
|
985 |
-
}
|
986 |
-
|
987 |
-
/**
|
988 |
-
* Method to get background process result HTML
|
989 |
-
*
|
990 |
-
* @since 4.4.4
|
991 |
-
*/
|
992 |
-
public function get_background_process_results_html( $background_process_result ) {
|
993 |
-
|
994 |
-
if ( ! empty( $background_process_result ) ) {
|
995 |
-
switch ( $background_process_result['action'] ) {
|
996 |
-
case 'export_contact':
|
997 |
-
$action_text = __( 'exported', 'email-subscribers' );
|
998 |
-
break;
|
999 |
-
default:
|
1000 |
-
$action_text = __( 'imported', 'email-subscribers' );
|
1001 |
-
break;
|
1002 |
-
}
|
1003 |
-
?>
|
1004 |
-
<div id="ig_es_contact_background_results" class="updated">
|
1005 |
-
<p>
|
1006 |
-
<?php echo esc_html__( 'Successfully', 'email-subscribers' ) . ' ' . esc_html( $action_text ) . ' ' . esc_html( $background_process_result['total_contacts_processed'] ) . ' ' . esc_html( _n( 'contact', 'contacts', $background_process_result['total_contacts_processed'], 'email-subscribers' ) ) . '.'; ?>
|
1007 |
-
</p>
|
1008 |
-
<?php
|
1009 |
-
if ( 'export_contact' === $background_process_result['action'] ) {
|
1010 |
-
$action_data = ! empty( $background_process_result['action_data'] ) ? $background_process_result['action_data'] : '';
|
1011 |
-
if( ! empty( $action_data ) && ! empty( $action_data['csv_file_path' ] ) ) {
|
1012 |
-
?>
|
1013 |
-
<p class="download-csv-wrapper">
|
1014 |
-
<?php
|
1015 |
-
echo esc_html__( 'CSV file has been generated. You can download it from ', 'email-subscribers' ) . '<a href="' . esc_url( admin_url( 'admin-ajax.php' ) ) . '?action=ig_es_download_csv&download_nonce=' . esc_attr( wp_create_nonce( 'ig_es_download_csv' ) ) . '">' . esc_html__( 'here', 'email-subscribers' ) . '</a>.';
|
1016 |
-
?>
|
1017 |
-
</p>
|
1018 |
-
<?php
|
1019 |
-
}
|
1020 |
-
} else if( 'import_contact' === $background_process_result['action'] ) {
|
1021 |
-
$existing_contacts_count = ! empty( $background_process_result['existing_contacts_count'] ) ? $background_process_result['existing_contacts_count'] : 0;
|
1022 |
-
$invalid_emails_count = ! empty( $background_process_result['invalid_emails_count'] ) ? $background_process_result['invalid_emails_count'] : 0;
|
1023 |
-
|
1024 |
-
if( ! empty( $existing_contacts_count ) ) :
|
1025 |
-
?>
|
1026 |
-
<p class="ig-es-existing-contacts-message">
|
1027 |
-
<?php
|
1028 |
-
echo sprintf( __( '%d contacts are already existed.', 'email-subscribers' ), $existing_contacts_count );
|
1029 |
-
?>
|
1030 |
-
</p>
|
1031 |
-
<?php
|
1032 |
-
endif;
|
1033 |
-
|
1034 |
-
if( ! empty( $invalid_emails_count ) ) :
|
1035 |
-
?>
|
1036 |
-
<p class="ig-es-invalid-contacts-message">
|
1037 |
-
<?php
|
1038 |
-
echo sprintf( __( '%d contacts are invalid.', 'email-subscribers' ), $invalid_emails_count );;
|
1039 |
-
?>
|
1040 |
-
</p>
|
1041 |
-
<?php
|
1042 |
-
endif;
|
1043 |
-
?>
|
1044 |
-
<?php
|
1045 |
-
delete_site_option( 'ig_es_contact_background_process_result' );
|
1046 |
-
}
|
1047 |
-
?>
|
1048 |
-
</div>
|
1049 |
-
<?php
|
1050 |
-
}
|
1051 |
-
}
|
1052 |
-
}
|
1053 |
-
|
1054 |
-
}
|
1055 |
-
|
1056 |
-
ES_Contact_Background_Process::get_instance();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lite/includes/classes/class-es-contacts-table.php
CHANGED
@@ -188,15 +188,17 @@ class ES_Contacts_Table extends WP_List_Table {
|
|
188 |
|
189 |
?>
|
190 |
|
191 |
-
<
|
192 |
-
<span class="text-
|
193 |
-
_e( 'Audience', 'email-subscribers' ); ?>
|
194 |
-
|
|
|
195 |
<?php
|
196 |
-
_e( '
|
|
|
197 |
<?php ES_Common::prepare_main_header_navigation( $audience_tab_main_navigation );
|
198 |
?>
|
199 |
-
</
|
200 |
|
201 |
<div class="my-4">
|
202 |
<?php $this->get_contacts_reports() ?>
|
@@ -492,11 +494,17 @@ class ES_Contacts_Table extends WP_List_Table {
|
|
492 |
<header class="ml-12 mr-8 wp-heading-inline">
|
493 |
<div class="md:flex md:items-center md:justify-between justify-center">
|
494 |
<div class="flex-1 min-w-0">
|
495 |
-
<
|
496 |
-
<span class="text-
|
497 |
-
<a href="admin.php?page=es_subscribers"><?php _e('Audience ','email-subscribers'); ?></a></span> >
|
|
|
|
|
|
|
|
|
|
|
|
|
498 |
<?php echo $title; ?>
|
499 |
-
</
|
500 |
</div>
|
501 |
|
502 |
<div class="py-2 flex md:mt-0 pb-2">
|
@@ -666,7 +674,7 @@ class ES_Contacts_Table extends WP_List_Table {
|
|
666 |
<span class="my-2 mr-10 dashicons dashicons-admin-users"></span>
|
667 |
</span>
|
668 |
</div>
|
669 |
-
<input id="ig-es-contact-first-name" class="ig-es-contact-first-name form-input block border-gray-400 w-full pl-10 pr-12 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" placeholder="Enter
|
670 |
</div>
|
671 |
</div>
|
672 |
</div>
|
@@ -686,7 +694,7 @@ class ES_Contacts_Table extends WP_List_Table {
|
|
686 |
<span class="my-2 mr-10 dashicons dashicons-admin-users"></span>
|
687 |
</span>
|
688 |
</div>
|
689 |
-
<input id="ig-es-contact-last-name" class="ig-es-contact-last-name form-input block border-gray-400 w-full pl-10 pr-12 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" placeholder="Enter
|
690 |
</div>
|
691 |
</div>
|
692 |
</div>
|
@@ -705,7 +713,7 @@ class ES_Contacts_Table extends WP_List_Table {
|
|
705 |
<span class="inset-y-0 text-gray-400 sm:text-sm sm:leading-5">
|
706 |
<span class="my-2 mr-10 dashicons dashicons-email-alt"></span></span>
|
707 |
</div>
|
708 |
-
<input id="email" class="form-input block border-gray-400 w-full pl-10 pr-12 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5"" id="email" name="contact_data[email]" value="<?php echo esc_attr( $email ); ?>" placeholder="Enter Email" />
|
709 |
</div>
|
710 |
</div>
|
711 |
</div>
|
@@ -757,14 +765,14 @@ class ES_Contacts_Table extends WP_List_Table {
|
|
757 |
<input type="hidden" name="contact_data[created_at]" value="<?php echo $created; ?>" />
|
758 |
<input type="hidden" name="contact_data[guid]" value="<?php echo $guid; ?>" />
|
759 |
<input type="hidden" name="submitted" value="submitted" />
|
760 |
-
<input type="submit" name="submit" class="cursor-pointer px-4 my-2 py-2 mx-2 ig-es-primary-button hover:shadow-md" value="<?php if ( $is_new ) {
|
761 |
_e( 'Save Contact', 'email-subscribers' );
|
762 |
}
|
763 |
else{
|
764 |
_e( 'Save Changes', 'email-subscribers' );
|
765 |
}
|
766 |
?>"/>
|
767 |
-
<a href="admin.php?page=es_subscribers" class="cursor-pointer rounded-md border border-indigo-600 hover:shadow-md focus:outline-none focus:shadow-outline-indigo text-sm leading-5 font-medium transition ease-in-out duration-150 px-4 my-2 py-2 mx-2 ">Cancel</a>
|
768 |
</div>
|
769 |
</div>
|
770 |
</form>
|
188 |
|
189 |
?>
|
190 |
|
191 |
+
<h2 class="wp-heading-inline">
|
192 |
+
<span class="text-base font-normal text-indigo-600 sm:leading-7 sm:truncate"><?php
|
193 |
+
_e( 'Audience <svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24" class="w-4 h-4 inline-block align-middle text-gray-900"><path d="M9 5l7 7-7 7"></path></svg>', 'email-subscribers' ); ?>
|
194 |
+
</span>
|
195 |
+
<span class="text-2xl font-medium text-gray-900 sm:leading-9 sm:truncate">
|
196 |
<?php
|
197 |
+
_e( 'Contacts', 'email-subscribers' ); ?>
|
198 |
+
</span>
|
199 |
<?php ES_Common::prepare_main_header_navigation( $audience_tab_main_navigation );
|
200 |
?>
|
201 |
+
</h2>
|
202 |
|
203 |
<div class="my-4">
|
204 |
<?php $this->get_contacts_reports() ?>
|
494 |
<header class="ml-12 mr-8 wp-heading-inline">
|
495 |
<div class="md:flex md:items-center md:justify-between justify-center">
|
496 |
<div class="flex-1 min-w-0">
|
497 |
+
<h2 class="text-2xl leading-7 text-gray-900 sm:leading-9 sm:truncate">
|
498 |
+
<span class="text-base font-normal leading-7 text-indigo-600 sm:leading-9 sm:truncate">
|
499 |
+
<a href="admin.php?page=es_subscribers"><?php _e('Audience ','email-subscribers'); ?></a></span> <svg class="w-6 h-6 mt-2 inline-block" fill="currentColor" viewBox="0 0 24 24">
|
500 |
+
<path
|
501 |
+
fill-rule="evenodd"
|
502 |
+
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
|
503 |
+
clip-rule="evenodd"
|
504 |
+
></path>
|
505 |
+
</svg>
|
506 |
<?php echo $title; ?>
|
507 |
+
</h2>
|
508 |
</div>
|
509 |
|
510 |
<div class="py-2 flex md:mt-0 pb-2">
|
674 |
<span class="my-2 mr-10 dashicons dashicons-admin-users"></span>
|
675 |
</span>
|
676 |
</div>
|
677 |
+
<input id="ig-es-contact-first-name" class="ig-es-contact-first-name form-input block border-gray-400 w-full pl-10 pr-12 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" placeholder="<?php _e('Enter First Name', 'email-subscribers'); ?>" name="contact_data[first_name]" value="<?php echo esc_attr( $first_name ); ?>" />
|
678 |
</div>
|
679 |
</div>
|
680 |
</div>
|
694 |
<span class="my-2 mr-10 dashicons dashicons-admin-users"></span>
|
695 |
</span>
|
696 |
</div>
|
697 |
+
<input id="ig-es-contact-last-name" class="ig-es-contact-last-name form-input block border-gray-400 w-full pl-10 pr-12 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" placeholder="<?php _e('Enter Last Name', 'email-subscribers'); ?>" name="contact_data[last_name]" value="<?php echo esc_attr( $last_name ); ?>" />
|
698 |
</div>
|
699 |
</div>
|
700 |
</div>
|
713 |
<span class="inset-y-0 text-gray-400 sm:text-sm sm:leading-5">
|
714 |
<span class="my-2 mr-10 dashicons dashicons-email-alt"></span></span>
|
715 |
</div>
|
716 |
+
<input id="email" class="form-input block border-gray-400 w-full pl-10 pr-12 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5"" id="email" name="contact_data[email]" value="<?php echo esc_attr( $email ); ?>" placeholder="<?php _e('Enter Email', 'email-subscribers'); ?>" />
|
717 |
</div>
|
718 |
</div>
|
719 |
</div>
|
765 |
<input type="hidden" name="contact_data[created_at]" value="<?php echo $created; ?>" />
|
766 |
<input type="hidden" name="contact_data[guid]" value="<?php echo $guid; ?>" />
|
767 |
<input type="hidden" name="submitted" value="submitted" />
|
768 |
+
<input type="submit" name="submit" class="cursor-pointer align-middle px-4 my-2 py-2 mx-2 ig-es-primary-button hover:shadow-md" value="<?php if ( $is_new ) {
|
769 |
_e( 'Save Contact', 'email-subscribers' );
|
770 |
}
|
771 |
else{
|
772 |
_e( 'Save Changes', 'email-subscribers' );
|
773 |
}
|
774 |
?>"/>
|
775 |
+
<a href="admin.php?page=es_subscribers" class="cursor-pointer align-middle rounded-md border border-indigo-600 hover:shadow-md focus:outline-none focus:shadow-outline-indigo text-sm leading-5 font-medium transition ease-in-out duration-150 px-4 my-2 py-2 mx-2 ">Cancel</a>
|
776 |
</div>
|
777 |
</div>
|
778 |
</form>
|
lite/includes/classes/class-es-cron.php
CHANGED
@@ -504,7 +504,6 @@ class ES_Cron {
|
|
504 |
}
|
505 |
|
506 |
if ( $self ) {
|
507 |
-
|
508 |
$total_emails_sent = ! empty( $response['total_emails_sent'] ) ? $response['total_emails_sent'] : 0;
|
509 |
$status = ! empty( $response['status'] ) ? $response['status'] : 'ERROR';
|
510 |
$total_emails_to_be_sent = ! empty( $response['es_remaining_email_count'] ) ? $response['es_remaining_email_count'] : 0;
|
@@ -558,5 +557,6 @@ class ES_Cron {
|
|
558 |
$message_text = ! empty( $status_messages[ $message ] ) ? $status_messages[ $message ] : '';
|
559 |
|
560 |
return $message_text;
|
|
|
561 |
}
|
562 |
-
}
|
504 |
}
|
505 |
|
506 |
if ( $self ) {
|
|
|
507 |
$total_emails_sent = ! empty( $response['total_emails_sent'] ) ? $response['total_emails_sent'] : 0;
|
508 |
$status = ! empty( $response['status'] ) ? $response['status'] : 'ERROR';
|
509 |
$total_emails_to_be_sent = ! empty( $response['es_remaining_email_count'] ) ? $response['es_remaining_email_count'] : 0;
|
557 |
$message_text = ! empty( $status_messages[ $message ] ) ? $status_messages[ $message ] : '';
|
558 |
|
559 |
return $message_text;
|
560 |
+
|
561 |
}
|
562 |
+
}
|
lite/includes/classes/class-es-export-subscribers.php
CHANGED
@@ -15,10 +15,52 @@ class Export_Subscribers {
|
|
15 |
*/
|
16 |
public function __construct() {
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
add_filter( 'query_vars', array( $this, 'query_vars' ) );
|
19 |
add_action( 'parse_request', array( $this, 'parse_request' ) );
|
20 |
add_action( 'admin_menu', array( $this, 'plugin_menu' ) );
|
21 |
-
add_action( 'init', array( $this, 'maybe_export_contact' ) );
|
22 |
}
|
23 |
|
24 |
public function plugin_menu() {
|
@@ -96,8 +138,8 @@ public function export_subscribers_page() {
|
|
96 |
<div class="wrap ml-4">
|
97 |
<header class="wp-heading-inline">
|
98 |
<div class="mt-2">
|
99 |
-
<h2 class="text-
|
100 |
-
<span class="text-
|
101 |
<?php
|
102 |
ES_Common::prepare_main_header_navigation( $audience_tab_main_navigation );
|
103 |
?>
|
@@ -298,188 +340,5 @@ public function export_subscribers_page() {
|
|
298 |
return $csv_output;
|
299 |
}
|
300 |
|
301 |
-
/**
|
302 |
-
* Method to generate a csv file and return generated file info.
|
303 |
-
*
|
304 |
-
* @return array $file_info Generated CSV file information.
|
305 |
-
*
|
306 |
-
* @since 4.4.4
|
307 |
-
*/
|
308 |
-
public function create_csv( $file_name = '' ) {
|
309 |
-
|
310 |
-
$file_info = array();
|
311 |
-
|
312 |
-
if( ! empty( $file_name ) ) {
|
313 |
-
$getfield = '';
|
314 |
-
|
315 |
-
$columns_header = $this->get_csv_headers();
|
316 |
-
|
317 |
-
foreach ( $columns_header as $value ) {
|
318 |
-
$getfield .= $value . ',';
|
319 |
-
}
|
320 |
-
|
321 |
-
$fields = substr_replace( $getfield, '', -1 );
|
322 |
-
|
323 |
-
$fields .= $this->get_contact_csv_data( $columns_header, array() );
|
324 |
-
|
325 |
-
$upload_dir = wp_upload_dir();
|
326 |
-
$file_info['wp_upload_dir'] = $upload_dir['path'] . '/';
|
327 |
-
$file_info['file_name'] = $file_name;
|
328 |
-
$file_info['file_content'] = $fields;
|
329 |
-
|
330 |
-
if ( isset( $upload_dir['error'] ) && ! empty( $upload_dir['error'] ) ) {
|
331 |
-
$file_info['error'] = $upload_dir['error'];
|
332 |
-
}
|
333 |
-
|
334 |
-
return $file_info;
|
335 |
-
}
|
336 |
-
}
|
337 |
-
|
338 |
-
/**
|
339 |
-
* Export contact CSV data
|
340 |
-
*
|
341 |
-
* @param array $columns_header Column header.
|
342 |
-
* @param array $data The data.
|
343 |
-
* @return array $file_data
|
344 |
-
*/
|
345 |
-
public function get_contact_csv_data( $columns_header, $data ) {
|
346 |
-
|
347 |
-
$each_field = array_keys( $columns_header );
|
348 |
-
|
349 |
-
$csv_data = '';
|
350 |
-
|
351 |
-
foreach ( (array) $data as $row ) {
|
352 |
-
$count_columns_header = count( $columns_header );
|
353 |
-
for ( $i = 0; $i < $count_columns_header; $i++ ) {
|
354 |
-
if ( 0 === $i ) {
|
355 |
-
$csv_data .= "\n";
|
356 |
-
}
|
357 |
-
|
358 |
-
if ( array_key_exists( $each_field[ $i ], $row ) ) {
|
359 |
-
$row_each_field = $row[ $each_field[ $i ] ];
|
360 |
-
} else {
|
361 |
-
$row_each_field = '';
|
362 |
-
}
|
363 |
-
|
364 |
-
$array = str_replace( array( "\n", "\n\r", "\r\n", "\r" ), "\t", $row_each_field );
|
365 |
-
|
366 |
-
$array = str_getcsv( $array, ',', '"', '\\' );
|
367 |
-
|
368 |
-
$str = ( $array && is_array( $array ) ) ? implode( ', ', $array ) : '';
|
369 |
-
|
370 |
-
$str = addslashes( $str );
|
371 |
-
|
372 |
-
$csv_data .= '"' . $str . '",';
|
373 |
-
}
|
374 |
-
$csv_data = substr_replace( $csv_data, '', -1 );
|
375 |
-
}
|
376 |
-
|
377 |
-
return $csv_data;
|
378 |
-
}
|
379 |
-
|
380 |
-
/**
|
381 |
-
* Method to get headers for ES contact CSV file.
|
382 |
-
*
|
383 |
-
* @return array $column_header CSV Headers
|
384 |
-
*
|
385 |
-
* @since 4.4.4
|
386 |
-
*/
|
387 |
-
public function get_csv_headers() {
|
388 |
-
|
389 |
-
$csv_headers = apply_filters( 'ig_es_contact_csv_headers' ,
|
390 |
-
array(
|
391 |
-
__( 'First Name', 'email-subscribers' ),
|
392 |
-
__( 'Last Name', 'email-subscribers' ),
|
393 |
-
__( 'Email', 'email-subscribers' ),
|
394 |
-
__( 'List', 'email-subscribers' ),
|
395 |
-
__( 'Status', 'email-subscribers' ),
|
396 |
-
__( 'Opt-In Type', 'email-subscribers' ),
|
397 |
-
__( 'Created On', 'email-subscribers' )
|
398 |
-
)
|
399 |
-
);
|
400 |
-
|
401 |
-
return $csv_headers;
|
402 |
-
|
403 |
-
}
|
404 |
-
|
405 |
-
/**
|
406 |
-
* Method to initiate contact background export process
|
407 |
-
*
|
408 |
-
* @since 4.4.4
|
409 |
-
*/
|
410 |
-
public function maybe_export_contact() {
|
411 |
-
|
412 |
-
$report = ig_es_get_request_data( 'report' );
|
413 |
-
$status = ig_es_get_request_data( 'status' );
|
414 |
-
|
415 |
-
$can_access = ES_Common::ig_es_can_access( 'audience' );
|
416 |
-
|
417 |
-
if ( $report && $status && $can_access ) {
|
418 |
-
|
419 |
-
$status = trim( $status );
|
420 |
-
|
421 |
-
$selected_list_id = 0;
|
422 |
-
|
423 |
-
if ( 'select_list' === $status ) {
|
424 |
-
$selected_list_id = ig_es_get_request_data( 'list_id', 0 );
|
425 |
-
|
426 |
-
if ( 0 === $selected_list_id ) {
|
427 |
-
$message = __( "Please Select List", "email-subscribers" );
|
428 |
-
ES_Common::show_message( $message, 'error' );
|
429 |
-
exit();
|
430 |
-
}
|
431 |
-
}
|
432 |
-
|
433 |
-
$file_name = strtolower( $status ) . '-' . 'contacts-' . date('Y-m-d') . '-' . time() . '.csv';
|
434 |
-
|
435 |
-
$export_file = $this->create_csv( $file_name );
|
436 |
-
|
437 |
-
if( ! empty( $export_file ) && is_array( $export_file ) ) {
|
438 |
-
// Check if there isn't any error e.g. file permission.
|
439 |
-
if( empty( $export_file['error'] ) ) {
|
440 |
-
// Create CSV file.
|
441 |
-
$csv_folder = $export_file['wp_upload_dir'];
|
442 |
-
$csvfilename = $csv_folder . $file_name;
|
443 |
-
$fp = fopen( $csvfilename, 'w' ); // phpcs:ignore
|
444 |
-
|
445 |
-
if ( false !== $fp ) {
|
446 |
-
file_put_contents( $csvfilename, $export_file['file_content'] ); // phpcs:ignore
|
447 |
-
fclose( $fp ); // phpcs:ignore
|
448 |
-
|
449 |
-
$contact_background_process_data = array(
|
450 |
-
'action' => 'export_contact',
|
451 |
-
'contact_status' => $status,
|
452 |
-
'list_id' => $selected_list_id,
|
453 |
-
'export_file' => $export_file,
|
454 |
-
);
|
455 |
-
|
456 |
-
update_site_option( 'ig_es_contact_background_process_data', $contact_background_process_data );
|
457 |
-
|
458 |
-
as_unschedule_action( 'ig_es_add_contact_to_csv' );
|
459 |
-
as_unschedule_action( 'ig_es_import_contacts_from_csv' );
|
460 |
-
|
461 |
-
as_schedule_single_action( time(), 'ig_es_add_contact_to_csv' );
|
462 |
-
|
463 |
-
ES()->init_action_scheduler_queue_runner();
|
464 |
-
} else {
|
465 |
-
$error_message = __( 'Unable to generate CSV file. Please try again later.', 'email-subscribers' );
|
466 |
-
}
|
467 |
-
} else {
|
468 |
-
$error_message = $export_file['error'];
|
469 |
-
}
|
470 |
-
} else {
|
471 |
-
$error_message = __( 'No data available', 'email-subscribers' );
|
472 |
-
}
|
473 |
-
|
474 |
-
if( ! empty( $error_message ) ) {
|
475 |
-
ES_Common::show_message( $error_message, 'error' );
|
476 |
-
} else {
|
477 |
-
$email_subscribers_page = admin_url( 'admin.php?page=es_subscribers&action=export' );
|
478 |
-
wp_safe_redirect( $email_subscribers_page );
|
479 |
-
}
|
480 |
-
exit();
|
481 |
-
}
|
482 |
-
}
|
483 |
-
|
484 |
}
|
485 |
|
15 |
*/
|
16 |
public function __construct() {
|
17 |
|
18 |
+
$report = ig_es_get_request_data( 'report' );
|
19 |
+
$status = ig_es_get_request_data( 'status' );
|
20 |
+
|
21 |
+
$can_access = ES_Common::ig_es_can_access( 'audience' );
|
22 |
+
|
23 |
+
if ( $report && $status && $can_access ) {
|
24 |
+
|
25 |
+
$status = trim( $status );
|
26 |
+
|
27 |
+
$selected_list_id = 0;
|
28 |
+
|
29 |
+
if ( 'select_list' === $status ) {
|
30 |
+
$selected_list_id = ig_es_get_request_data( 'list_id', 0 );
|
31 |
+
|
32 |
+
if ( 0 === $selected_list_id ) {
|
33 |
+
$message = __( "Please Select List", "email-subscribers" );
|
34 |
+
ES_Common::show_message( $message, 'error' );
|
35 |
+
exit();
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
$csv = $this->generate_csv( $status, $selected_list_id );
|
40 |
+
|
41 |
+
$file_name = strtolower( $status ) . '-' . 'contacts.csv';
|
42 |
+
|
43 |
+
if ( empty( $csv ) ) {
|
44 |
+
$message = __( "No data available", 'email-subscribers' );
|
45 |
+
ES_Common::show_message( $message, 'error' );
|
46 |
+
exit();
|
47 |
+
} else {
|
48 |
+
header( "Pragma: public" );
|
49 |
+
header( "Expires: 0" );
|
50 |
+
header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
|
51 |
+
header( "Cache-Control: private", false );
|
52 |
+
header( "Content-Type: application/octet-stream" );
|
53 |
+
header( "Content-Disposition: attachment; filename={$file_name};" );
|
54 |
+
header( "Content-Transfer-Encoding: binary" );
|
55 |
+
|
56 |
+
echo $csv;
|
57 |
+
exit;
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
add_filter( 'query_vars', array( $this, 'query_vars' ) );
|
62 |
add_action( 'parse_request', array( $this, 'parse_request' ) );
|
63 |
add_action( 'admin_menu', array( $this, 'plugin_menu' ) );
|
|
|
64 |
}
|
65 |
|
66 |
public function plugin_menu() {
|
138 |
<div class="wrap ml-4">
|
139 |
<header class="wp-heading-inline">
|
140 |
<div class="mt-2">
|
141 |
+
<h2 class="text-2xl font-medium text-gray-900 sm:leading-9 sm:truncate">
|
142 |
+
<span class="text-base font-normal leading-7 text-indigo-600 sm:leading-9 sm:truncate"> <a href="admin.php?page=es_subscribers"><?php _e( 'Audience', 'email-subscribers' ); ?> </a> </span> <svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24" class="w-4 h-4 mt-1 inline-block align-middle"><path d="M9 5l7 7-7 7"></path></svg> <?php _e('Export Contacts', 'email-subscribers'); ?>
|
143 |
<?php
|
144 |
ES_Common::prepare_main_header_navigation( $audience_tab_main_navigation );
|
145 |
?>
|
340 |
return $csv_output;
|
341 |
}
|
342 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
343 |
}
|
344 |
|
lite/includes/classes/class-es-form-widget.php
CHANGED
@@ -23,7 +23,7 @@ class ES_Form_Widget extends WP_Widget {
|
|
23 |
echo $args['before_title'] . $title . $args['after_title'];
|
24 |
}
|
25 |
|
26 |
-
$form_id = isset( $instance['form_id'] ) ? esc_attr( $instance['form_id'] ) :
|
27 |
|
28 |
$form_data = array();
|
29 |
if ( ! empty( $form_id ) ) {
|
@@ -33,9 +33,9 @@ class ES_Form_Widget extends WP_Widget {
|
|
33 |
$form_data = ES_Forms_Table::get_form_data_from_body( $form );
|
34 |
}
|
35 |
|
|
|
36 |
|
37 |
-
$data
|
38 |
-
$data['form_id'] = 0;
|
39 |
$data['list'] = '';
|
40 |
$data['name_visible'] = ( ! empty( $form_data['name_visible'] ) && 'yes' === $form_data['name_visible'] ) ? 'yes' : '';
|
41 |
$data['name_required'] = ( ! empty( $form_data['name_required'] ) && 'yes' === $form_data['name_required'] ) ? 'yes' : '';
|
@@ -50,6 +50,7 @@ class ES_Form_Widget extends WP_Widget {
|
|
50 |
$data['form_version'] = ( ! empty( $form_data['form_version'] ) ) ? $form_data['form_version'] : '';
|
51 |
$data['gdpr_consent'] = ( ! empty( $form_data['gdpr_consent'] ) ) ? $form_data['gdpr_consent'] : 'no';
|
52 |
$data['gdpr_consent_text'] = ( ! empty( $form_data['gdpr_consent_text'] ) ) ? $form_data['gdpr_consent_text'] : '';
|
|
|
53 |
|
54 |
ES_Shortcode::render_form( $data );
|
55 |
|
23 |
echo $args['before_title'] . $title . $args['after_title'];
|
24 |
}
|
25 |
|
26 |
+
$form_id = isset( $instance['form_id'] ) ? esc_attr( $instance['form_id'] ) : 0;
|
27 |
|
28 |
$form_data = array();
|
29 |
if ( ! empty( $form_id ) ) {
|
33 |
$form_data = ES_Forms_Table::get_form_data_from_body( $form );
|
34 |
}
|
35 |
|
36 |
+
$data = array();
|
37 |
|
38 |
+
$data['form_id'] = $form_id;
|
|
|
39 |
$data['list'] = '';
|
40 |
$data['name_visible'] = ( ! empty( $form_data['name_visible'] ) && 'yes' === $form_data['name_visible'] ) ? 'yes' : '';
|
41 |
$data['name_required'] = ( ! empty( $form_data['name_required'] ) && 'yes' === $form_data['name_required'] ) ? 'yes' : '';
|
50 |
$data['form_version'] = ( ! empty( $form_data['form_version'] ) ) ? $form_data['form_version'] : '';
|
51 |
$data['gdpr_consent'] = ( ! empty( $form_data['gdpr_consent'] ) ) ? $form_data['gdpr_consent'] : 'no';
|
52 |
$data['gdpr_consent_text'] = ( ! empty( $form_data['gdpr_consent_text'] ) ) ? $form_data['gdpr_consent_text'] : '';
|
53 |
+
$data['captcha'] = ( ! empty( $form_data['captcha'] ) ) ? $form_data['captcha'] : 'no';
|
54 |
|
55 |
ES_Shortcode::render_form( $data );
|
56 |
|
lite/includes/classes/class-es-forms-table.php
CHANGED
@@ -7,7 +7,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
7 |
|
8 |
if ( ! class_exists( 'WP_List_Table' ) ) {
|
9 |
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
|
10 |
-
}
|
11 |
|
12 |
class ES_Forms_Table extends WP_List_Table {
|
13 |
|
@@ -78,7 +78,14 @@ class ES_Forms_Table extends WP_List_Table {
|
|
78 |
$form = ig_es_get_request_data( 'form' );
|
79 |
echo $this->edit_form( absint( $form ) );
|
80 |
} else { ?>
|
81 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
<div id="poststuff" class="es-items-lists">
|
83 |
<div id="post-body" class="metabox-holder column-1">
|
84 |
<div id="post-body-content">
|
@@ -143,6 +150,8 @@ class ES_Forms_Table extends WP_List_Table {
|
|
143 |
$form_data = ig_es_get_request_data( 'form_data', array(), false );
|
144 |
$lists = ig_es_get_request_data( 'lists' );
|
145 |
|
|
|
|
|
146 |
$form_data['lists'] = $lists;
|
147 |
|
148 |
$validate_data = array(
|
@@ -174,6 +183,7 @@ class ES_Forms_Table extends WP_List_Table {
|
|
174 |
global $wpdb;
|
175 |
|
176 |
if ( $id ) {
|
|
|
177 |
$form_data = array();
|
178 |
|
179 |
$data = $wpdb->get_results( "SELECT * FROM " . IG_FORMS_TABLE . " WHERE id = $id", ARRAY_A );
|
@@ -188,6 +198,8 @@ class ES_Forms_Table extends WP_List_Table {
|
|
188 |
$form_data = ig_es_get_request_data( 'form_data', array(), false );
|
189 |
$lists = ig_es_get_request_data( 'lists' );
|
190 |
|
|
|
|
|
191 |
$form_data['lists'] = $lists;
|
192 |
|
193 |
$validate_data = array(
|
@@ -247,6 +259,7 @@ class ES_Forms_Table extends WP_List_Table {
|
|
247 |
$form_data['lists'] = ! empty( $data['lists'] ) ? $data['lists'] : array();
|
248 |
$form_data['af_id'] = ! empty( $data['af_id'] ) ? $data['af_id'] : 0;
|
249 |
$form_data['desc'] = ! empty( $data['desc'] ) ? sanitize_text_field( $data['desc'] ) : '';
|
|
|
250 |
|
251 |
$lists = ES()->lists_db->get_list_id_name_map();
|
252 |
$nonce = wp_create_nonce( 'es_form' );
|
@@ -257,402 +270,405 @@ class ES_Forms_Table extends WP_List_Table {
|
|
257 |
<header class="ml-12 mr-8 wp-heading-inline">
|
258 |
<div class="md:flex md:items-center md:justify-between justify-center">
|
259 |
<div class="flex-1 min-w-0">
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
|
|
272 |
</div>
|
273 |
-
</
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
</div>
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
</div>
|
294 |
</div>
|
295 |
</div>
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
</div>
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
</div>
|
308 |
</div>
|
309 |
</div>
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
</div>
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
<table class="ig-es-form-table">
|
320 |
-
<tr class="form-field">
|
321 |
-
<td class="pr-6 pb-8"><b class=" font-medium text-gray-500 pb-2"><?php _e( 'Field', 'email-subscribers' ); ?></b></td>
|
322 |
-
<td class="pr-6 pb-8"><b class=" font-medium text-gray-500 pb-2"><?php _e( 'Show?', 'email-subscribers' ); ?></b></td>
|
323 |
-
<td class="pr-6 pb-8"><b class=" font-medium text-gray-500 pb-2"><?php _e( 'Required?', 'email-subscribers' ); ?></b></td>
|
324 |
-
<td class="pr-6 pb-8"><b class=" font-medium text-gray-500 pb-2"><?php _e( 'Label', 'email-subscribers' ); ?></b></td>
|
325 |
-
<td class="pr-6 pb-8"><b class="font-medium text-gray-500 pb-2"><?php _e( 'Place Holder', 'email-subscribers' ); ?></b></td>
|
326 |
-
</tr>
|
327 |
-
<tr class="form-field ">
|
328 |
-
<td class="pr-6 pb-8"><b class="text-gray-500 text-sm font-normal pb-2"><?php _e( 'Email', 'email-subscribers' ); ?></b></td>
|
329 |
-
<td class="pr-6 pb-8">
|
330 |
-
<input type="checkbox" class="form-checkbox opacity-0" name="form_data[email_visible]" value="yes" disabled="disabled" checked="checked" />
|
331 |
-
</td>
|
332 |
-
|
333 |
-
|
334 |
-
<td class="pr-6 pb-8">
|
335 |
-
<input type="checkbox" class="form-checkbox opacity-0" name="form_data[email_required]" value="yes" disabled="disabled" checked="checked"></td>
|
336 |
-
|
337 |
-
<td class="pr-6 pb-8">
|
338 |
-
<input class="form-input block border-gray-400 w-5/6 pr-12 h-8 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" name="form_data[email_label]" value="<?php echo $form_data['email_label']; ?>">
|
339 |
-
</td>
|
340 |
-
<td class="pr-6 pb-8">
|
341 |
-
<input class="form-input block border-gray-400 w-5/6 pr-12 h-8 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" name="form_data[email_place_holder]" value="<?php echo $form_data['email_place_holder']; ?>">
|
342 |
-
</td>
|
343 |
-
</tr>
|
344 |
<tr class="form-field">
|
345 |
-
<td class="pr-6 pb-8"><b class="text-gray-500
|
346 |
-
|
347 |
-
<td class="pr-6 pb-8">
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
|
|
352 |
<td class="pr-6 pb-8">
|
353 |
-
<input type="checkbox" class="form-checkbox
|
354 |
-
echo 'checked=checked';
|
355 |
-
} ?>/>
|
356 |
</td>
|
357 |
-
<td class="pr-6 pb-8"><input class="es_name_label form-input block border-gray-400 w-5/6 pr-12 h-8 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" name="form_data[name_label]" value="<?php echo $form_data['name_label']; ?>" <?php if ( $form_data['name_required'] === 'yes' ) {
|
358 |
-
echo 'disabled=disabled';
|
359 |
-
} ?> ></td>
|
360 |
-
<td class="pr-6 pb-8"><input class="es_name_label form-input block border-gray-400 w-5/6 pr-12 h-8 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" name="form_data[name_place_holder]" value="<?php echo $form_data['name_place_holder']; ?>" <?php if ( $form_data['name_required'] === 'yes' ) {
|
361 |
-
echo 'disabled=disabled';
|
362 |
-
} ?> ></td>
|
363 |
-
</tr>
|
364 |
-
<tr class="form-field">
|
365 |
-
<td class="pr-6 pb-6"><b class="text-gray-500 text-sm font-normal pb-2"><?php _e( 'Button', 'email-subscribers' ); ?></b></td>
|
366 |
-
<td class="pr-6 pb-6"><input type="checkbox" class="form-checkbox" name="form_data[button_visible]" value="yes" disabled="disabled" checked="checked"></td>
|
367 |
-
<td class="pr-6 pb-6"><input type="checkbox" class="form-checkbox" name="form_data[button_required]" value="yes" disabled="disabled" checked="checked"></td>
|
368 |
-
<td class="pr-6 pb-6"><input class="form-input block border-gray-400 w-5/6 pr-12 h-8 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" name="form_data[button_label]" value="<?php echo $form_data['button_label']; ?>"></td>
|
369 |
-
</tr>
|
370 |
|
371 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
372 |
</div>
|
373 |
</div>
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
</div>
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
<?php
|
385 |
|
386 |
-
|
387 |
|
388 |
-
|
389 |
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
|
|
395 |
</div>
|
396 |
</div>
|
397 |
-
</div>
|
398 |
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
|
|
404 |
</div>
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
}
|
413 |
|
414 |
-
|
415 |
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
|
420 |
-
|
421 |
|
|
|
422 |
</div>
|
423 |
</div>
|
424 |
-
</div>
|
425 |
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
431 |
</div>
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
</
|
448 |
-
</
|
449 |
-
</
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
</
|
456 |
-
</
|
457 |
-
</
|
458 |
</div>
|
459 |
</div>
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
469 |
}
|
470 |
-
|
471 |
-
?>"/>
|
472 |
-
<a href="admin.php?page=es_forms" class="cursor-pointer rounded-md border border-indigo-600 hover:shadow-md focus:outline-none focus:shadow-outline-indigo text-sm leading-5 font-medium transition ease-in-out duration-150 px-4 my-2 py-2 mx-2 ">Cancel</a></p>
|
473 |
-
<?php } else {
|
474 |
-
$lists_page_url = admin_url( 'admin.php?page=es_lists' );
|
475 |
-
$message = __( sprintf( 'List(s) not found. Please create a first list from <a href="%s">here</a>', $lists_page_url ), 'email-subscribers' );
|
476 |
-
$status = 'error';
|
477 |
-
ES_Common::show_message( $message, $status );
|
478 |
-
}
|
479 |
-
|
480 |
-
if ( ! ES()->is_starter() ) {
|
481 |
-
|
482 |
-
$url = 'https://www.icegram.com/email-subscribers-starter/?utm_source=in_app&utm_medium=es_form_captcha&utm_campaign=es_upsale';
|
483 |
?>
|
484 |
-
|
485 |
-
|
486 |
-
<?php } ?>
|
487 |
-
</form>
|
488 |
</div>
|
489 |
</div>
|
490 |
</div>
|
491 |
-
</div>
|
492 |
|
493 |
|
494 |
-
|
495 |
|
496 |
-
|
497 |
|
498 |
-
|
499 |
|
500 |
-
|
501 |
|
502 |
-
|
503 |
|
504 |
-
|
505 |
-
|
506 |
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
|
514 |
-
|
515 |
-
|
516 |
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
array(
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
'
|
543 |
-
|
544 |
-
|
545 |
-
|
|
|
|
|
|
|
|
|
546 |
),
|
547 |
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
'
|
560 |
),
|
561 |
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
'
|
574 |
),
|
575 |
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
'
|
587 |
),
|
588 |
|
589 |
-
|
590 |
-
),
|
591 |
-
|
592 |
-
);
|
593 |
-
|
594 |
-
$settings = array(
|
595 |
-
'lists' => $list_ids,
|
596 |
-
'desc' => $desc,
|
597 |
-
'form_version' => ES()->forms_db->version,
|
598 |
-
'gdpr' => array(
|
599 |
-
'consent' => $gdpr_consent,
|
600 |
-
'consent_text' => $gdpr_consent_text
|
601 |
-
)
|
602 |
-
);
|
603 |
-
|
604 |
-
$form_data['name'] = $name;
|
605 |
-
$form_data['body'] = maybe_serialize( $body );
|
606 |
-
$form_data['settings'] = maybe_serialize( $settings );
|
607 |
-
$form_data['styles'] = null;
|
608 |
-
$form_data['created_at'] = ig_get_current_date_time();
|
609 |
-
$form_data['updated_at'] = null;
|
610 |
-
$form_data['deleted_at'] = null;
|
611 |
-
$form_data['af_id'] = $af_id;
|
612 |
-
|
613 |
-
return $form_data;
|
614 |
-
}
|
615 |
|
616 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
617 |
|
618 |
-
|
619 |
-
$id = ! empty( $data['id'] ) ? $data['id'] : '';
|
620 |
-
$af_id = ! empty( $data['af_id'] ) ? $data['af_id'] : '';
|
621 |
-
$body_data = maybe_unserialize( $data['body'] );
|
622 |
-
$settings_data = maybe_unserialize( $data['settings'] );
|
623 |
|
624 |
-
|
625 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
626 |
|
627 |
-
|
628 |
-
$gdpr_consent_text = "";
|
629 |
-
if ( ! empty( $settings_data['gdpr'] ) ) {
|
630 |
-
$gdpr_consent = ! empty( $settings_data['gdpr']['consent'] ) ? $settings_data['gdpr']['consent'] : "no";
|
631 |
-
$gdpr_consent_text = ! empty( $settings_data['gdpr']['consent_text'] ) ? $settings_data['gdpr']['consent_text'] : "";
|
632 |
}
|
633 |
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
|
|
|
|
651 |
}
|
652 |
-
}
|
653 |
|
654 |
-
|
655 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
656 |
|
657 |
/**
|
658 |
* Retrieve lists data from the database
|
@@ -857,7 +873,6 @@ class ES_Forms_Table extends WP_List_Table {
|
|
857 |
|
858 |
$this->_column_headers = $this->get_column_info();
|
859 |
|
860 |
-
|
861 |
/** Process bulk action */
|
862 |
$this->process_bulk_action();
|
863 |
|
@@ -935,4 +950,4 @@ class ES_Forms_Table extends WP_List_Table {
|
|
935 |
public function no_items() {
|
936 |
_e( 'No Forms avaliable.', 'email-subscribers' );
|
937 |
}
|
938 |
-
}
|
7 |
|
8 |
if ( ! class_exists( 'WP_List_Table' ) ) {
|
9 |
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
|
10 |
+
}
|
11 |
|
12 |
class ES_Forms_Table extends WP_List_Table {
|
13 |
|
78 |
$form = ig_es_get_request_data( 'form' );
|
79 |
echo $this->edit_form( absint( $form ) );
|
80 |
} else { ?>
|
81 |
+
<h1 class=" wp-heading-inline">
|
82 |
+
<span class="text-2xl font-medium leading-7 text-gray-900 sm:leading-9 sm:truncate">
|
83 |
+
<?php _e( 'Forms', 'email-subscribers' ) ?>
|
84 |
+
<a href="admin.php?page=es_forms&action=new" class="pt-2 ig-es-title-button px-2 py-2 mx-2">
|
85 |
+
<?php _e('Add New','email-subscribers'); ?>
|
86 |
+
</a>
|
87 |
+
</span>
|
88 |
+
</h1>
|
89 |
<div id="poststuff" class="es-items-lists">
|
90 |
<div id="post-body" class="metabox-holder column-1">
|
91 |
<div id="post-body-content">
|
150 |
$form_data = ig_es_get_request_data( 'form_data', array(), false );
|
151 |
$lists = ig_es_get_request_data( 'lists' );
|
152 |
|
153 |
+
$form_data['captcha'] = ! empty($form_data['captcha']) ? $form_data['captcha'] : 'no';
|
154 |
+
|
155 |
$form_data['lists'] = $lists;
|
156 |
|
157 |
$validate_data = array(
|
183 |
global $wpdb;
|
184 |
|
185 |
if ( $id ) {
|
186 |
+
|
187 |
$form_data = array();
|
188 |
|
189 |
$data = $wpdb->get_results( "SELECT * FROM " . IG_FORMS_TABLE . " WHERE id = $id", ARRAY_A );
|
198 |
$form_data = ig_es_get_request_data( 'form_data', array(), false );
|
199 |
$lists = ig_es_get_request_data( 'lists' );
|
200 |
|
201 |
+
$form_data['captcha'] = ! empty($form_data['captcha']) ? $form_data['captcha'] : 'no';
|
202 |
+
|
203 |
$form_data['lists'] = $lists;
|
204 |
|
205 |
$validate_data = array(
|
259 |
$form_data['lists'] = ! empty( $data['lists'] ) ? $data['lists'] : array();
|
260 |
$form_data['af_id'] = ! empty( $data['af_id'] ) ? $data['af_id'] : 0;
|
261 |
$form_data['desc'] = ! empty( $data['desc'] ) ? sanitize_text_field( $data['desc'] ) : '';
|
262 |
+
$form_data['captcha'] = ES_Common::get_captcha_setting( 0, $data);
|
263 |
|
264 |
$lists = ES()->lists_db->get_list_id_name_map();
|
265 |
$nonce = wp_create_nonce( 'es_form' );
|
270 |
<header class="ml-12 mr-8 wp-heading-inline">
|
271 |
<div class="md:flex md:items-center md:justify-between justify-center">
|
272 |
<div class="flex-1 min-w-0">
|
273 |
+
<h1 class="text-2xl leading-7 text-gray-900 sm:leading-9 sm:truncate">
|
274 |
+
<span class="text-base font-normal leading-7 text-indigo-600 sm:leading-9 sm:truncate">
|
275 |
+
<a href="admin.php?page=es_forms"><?php _e('Forms ','email-subscribers'); ?></a></span> <svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24" class="w-4 h-4 inline-block align-middle"><path d="M9 5l7 7-7 7"></path></svg>
|
276 |
+
<?php
|
277 |
+
if ( $is_new ) {
|
278 |
+
_e( ' New Form', 'email-subscribers' );
|
279 |
+
} else {
|
280 |
+
_e( ' Edit Form', 'email-subscribers' );
|
281 |
+
}
|
282 |
+
|
283 |
+
?>
|
284 |
+
</h1>
|
285 |
+
</div>
|
286 |
</div>
|
287 |
+
</header>
|
288 |
+
<div class="ml-12 mr-8"><hr class="wp-header-end"></div>
|
289 |
+
<div id="poststuff">
|
290 |
+
<div id="post-body" class="metabox-holder column-1">
|
291 |
+
<div id="post-body-content">
|
292 |
+
<div class="meta-box-sortables ui-sortable bg-white shadow-md ml-12 mr-8 mt-4 rounded-lg">
|
293 |
+
<form class="pt-8 ml-5 mr-4 text-left flex-row mt-2 item-center " method="post" action="admin.php?page=es_forms&action=<?php echo $action; ?>&form=<?php echo $id; ?>&_wpnonce=<?php echo $nonce; ?>">
|
294 |
+
|
295 |
+
|
296 |
+
<div class="flex flex-row border-b border-gray-100">
|
297 |
+
<div class="flex w-1/5">
|
298 |
+
<div class="ml-4 pt-6">
|
299 |
+
<label for="tag-link"><span class="block ml-4 pt-1 pr-4 text-sm font-medium text-gray-600 pb-2"><?php echo __( 'Form Name', 'email-subscribers' ); ?></span></label>
|
300 |
+
</div>
|
301 |
</div>
|
302 |
+
<div class="flex">
|
303 |
+
<div class="ml-16 mb-4 h-10 mr-4 mt-4">
|
304 |
+
<div class="h-10 relative">
|
305 |
+
<input id="ig_es_title" class="form-input block border-gray-400 w-full pl-3 pr-12 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" placeholder="Enter form name" name="form_data[name]" value="<?php echo stripslashes( $form_data['name'] ); ?>" size="30" maxlength="100"/>
|
306 |
+
</div>
|
307 |
</div>
|
308 |
</div>
|
309 |
</div>
|
310 |
+
<div class="flex flex-row border-b border-gray-100">
|
311 |
+
<div class="flex w-1/5">
|
312 |
+
<div class="ml-4 pt-6">
|
313 |
+
<label for="tag-link"><span class="block pt-1 ml-4 pr-4 text-sm font-medium text-gray-600 pb-2"><?php echo __( 'Description', 'email-subscribers' ); ?></span></label>
|
314 |
+
</div>
|
315 |
</div>
|
316 |
+
<div class="flex ">
|
317 |
+
<div class="ml-16 mb-4 h-10 mr-4 mt-4">
|
318 |
+
<div class="h-10 relative ">
|
319 |
+
<input id="ig_es_title" class="form-input block border-gray-400 w-full pl-3 pr-12 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" placeholder="Enter description" name="form_data[desc]" id="ig_es_title" value="<?php echo stripslashes( $form_data['desc'] ); ?>" size="30" maxlength="100"/>
|
320 |
+
</div>
|
321 |
</div>
|
322 |
</div>
|
323 |
</div>
|
324 |
+
<div class="flex flex-row border-b border-gray-100">
|
325 |
+
<div class="flex w-1/5">
|
326 |
+
<div class="ml-4 pt-4 mb-2">
|
327 |
+
<label for="tag-link"><span class="block ml-4 pr-4 text-sm font-medium text-gray-600 pb-2"><?php echo __( 'Form Fields', 'email-subscribers' ); ?></span></label>
|
328 |
+
</div>
|
329 |
</div>
|
330 |
+
<div class="flex ">
|
331 |
+
<div class="ml-16 mr-4 mt-4">
|
332 |
+
<table class="ig-es-form-table">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
333 |
<tr class="form-field">
|
334 |
+
<td class="pr-6 pb-8"><b class=" font-medium text-gray-500 pb-2"><?php _e( 'Field', 'email-subscribers' ); ?></b></td>
|
335 |
+
<td class="pr-6 pb-8"><b class=" font-medium text-gray-500 pb-2"><?php _e( 'Show?', 'email-subscribers' ); ?></b></td>
|
336 |
+
<td class="pr-6 pb-8"><b class=" font-medium text-gray-500 pb-2"><?php _e( 'Required?', 'email-subscribers' ); ?></b></td>
|
337 |
+
<td class="pr-6 pb-8"><b class=" font-medium text-gray-500 pb-2"><?php _e( 'Label', 'email-subscribers' ); ?></b></td>
|
338 |
+
<td class="pr-6 pb-8"><b class="font-medium text-gray-500 pb-2"><?php _e( 'Place Holder', 'email-subscribers' ); ?></b></td>
|
339 |
+
</tr>
|
340 |
+
<tr class="form-field ">
|
341 |
+
<td class="pr-6 pb-8"><b class="text-gray-500 text-sm font-normal pb-2"><?php _e( 'Email', 'email-subscribers' ); ?></b></td>
|
342 |
<td class="pr-6 pb-8">
|
343 |
+
<input type="checkbox" class="form-checkbox opacity-0" name="form_data[email_visible]" value="yes" disabled="disabled" checked="checked" />
|
|
|
|
|
344 |
</td>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
345 |
|
346 |
+
|
347 |
+
<td class="pr-6 pb-8">
|
348 |
+
<input type="checkbox" class="form-checkbox opacity-0" name="form_data[email_required]" value="yes" disabled="disabled" checked="checked"></td>
|
349 |
+
|
350 |
+
<td class="pr-6 pb-8">
|
351 |
+
<input class="form-input block border-gray-400 w-5/6 pr-12 h-8 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" name="form_data[email_label]" value="<?php echo $form_data['email_label']; ?>">
|
352 |
+
</td>
|
353 |
+
<td class="pr-6 pb-8">
|
354 |
+
<input class="form-input block border-gray-400 w-5/6 pr-12 h-8 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" name="form_data[email_place_holder]" value="<?php echo $form_data['email_place_holder']; ?>">
|
355 |
+
</td>
|
356 |
+
</tr>
|
357 |
+
<tr class="form-field">
|
358 |
+
<td class="pr-6 pb-8"><b class="text-gray-500 text-sm font-normal pb-2"><?php _e( 'Name', 'email-subscribers' ); ?></b></td>
|
359 |
+
|
360 |
+
<td class="pr-6 pb-8">
|
361 |
+
<input type="checkbox" class="form-checkbox es_visible" name="form_data[name_visible]" value="yes" <?php if ( $form_data['name_visible'] === 'yes' ) {
|
362 |
+
echo 'checked="checked"';
|
363 |
+
} ?> />
|
364 |
+
</td>
|
365 |
+
<td class="pr-6 pb-8">
|
366 |
+
<input type="checkbox" class="form-checkbox es_required" name="form_data[name_required]" value="yes" <?php if ( $form_data['name_required'] === 'yes' ) {
|
367 |
+
echo 'checked=checked';
|
368 |
+
} ?>/>
|
369 |
+
</td>
|
370 |
+
<td class="pr-6 pb-8"><input class="es_name_label form-input block border-gray-400 w-5/6 pr-12 h-8 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" name="form_data[name_label]" value="<?php echo $form_data['name_label']; ?>" <?php if ( $form_data['name_required'] === 'yes' ) {
|
371 |
+
echo 'disabled=disabled';
|
372 |
+
} ?> ></td>
|
373 |
+
<td class="pr-6 pb-8"><input class="es_name_label form-input block border-gray-400 w-5/6 pr-12 h-8 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" name="form_data[name_place_holder]" value="<?php echo $form_data['name_place_holder']; ?>" <?php if ( $form_data['name_required'] === 'yes' ) {
|
374 |
+
echo 'disabled=disabled';
|
375 |
+
} ?> ></td>
|
376 |
+
</tr>
|
377 |
+
<tr class="form-field">
|
378 |
+
<td class="pr-6 pb-6"><b class="text-gray-500 text-sm font-normal pb-2"><?php _e( 'Button', 'email-subscribers' ); ?></b></td>
|
379 |
+
<td class="pr-6 pb-6"><input type="checkbox" class="form-checkbox" name="form_data[button_visible]" value="yes" disabled="disabled" checked="checked"></td>
|
380 |
+
<td class="pr-6 pb-6"><input type="checkbox" class="form-checkbox" name="form_data[button_required]" value="yes" disabled="disabled" checked="checked"></td>
|
381 |
+
<td class="pr-6 pb-6"><input class="form-input block border-gray-400 w-5/6 pr-12 h-8 shadow-sm focus:bg-gray-100 sm:text-sm sm:leading-5" name="form_data[button_label]" value="<?php echo $form_data['button_label']; ?>"></td>
|
382 |
+
</tr>
|
383 |
+
|
384 |
+
</table>
|
385 |
+
</div>
|
386 |
</div>
|
387 |
</div>
|
388 |
+
<div class="flex flex-row border-b border-gray-100">
|
389 |
+
<div class="flex w-1/5">
|
390 |
+
<div class="ml-4 pt-4 mb-2">
|
391 |
+
<label for="tag-link"><span class="block ml-4 pr-4 text-sm font-medium text-gray-600 pb-2"><?php echo __( 'Lists', 'email-subscribers' ); ?></span></label>
|
392 |
+
<p class="italic text-xs text-gray-400 mt-2 ml-4 leading-snug pb-8"><?php _e( 'Contacts will be added into selected list(s)', 'email-subscribers' ); ?></p>
|
393 |
+
</div>
|
394 |
</div>
|
395 |
+
<div class="flex">
|
396 |
+
<div class="ml-16 mb-6 mr-4 mt-4">
|
397 |
+
<?php
|
|
|
398 |
|
399 |
+
if ( count( $lists ) > 0 ) {
|
400 |
|
401 |
+
echo ES_Shortcode::prepare_lists_checkboxes( $lists, array_keys( $lists ), 3, (array) $form_data['lists'] );
|
402 |
|
403 |
+
} else {
|
404 |
+
$create_list_link = admin_url( 'admin.php?page=es_lists&action=new' );
|
405 |
+
?>
|
406 |
+
<span><b class="text-sm font-normal text-gray-600 pb-2"><?php _e( sprintf( 'List not found. Please <a href="%s">create your first list</a>.', $create_list_link ) ); ?></b></span>
|
407 |
+
<?php } ?>
|
408 |
+
</div>
|
409 |
</div>
|
410 |
</div>
|
|
|
411 |
|
412 |
+
<div class="flex flex-row border-b border-gray-100">
|
413 |
+
<div class="flex w-1/5">
|
414 |
+
<div class="ml-4 pt-4 mb-2">
|
415 |
+
<label for="tag-link"><span class="block ml-4 pr-4 text-sm font-medium text-gray-600 pb-2"><?php echo __( 'Allow contact to choose list(s)', 'email-subscribers' ); ?></span></label>
|
416 |
+
<p class="italic text-xs text-gray-400 mt-2 ml-4 leading-snug pb-4"><?php _e( 'Allow contacts to choose list(s) in which they want to subscribe.', 'email-subscribers' ); ?></p>
|
417 |
+
</div>
|
418 |
</div>
|
419 |
+
<div class="flex ">
|
420 |
+
<div class="ml-16 mb-4 mr-4 mt-12">
|
421 |
+
<label for="allow_contact" class=" inline-flex items-center cursor-pointer">
|
422 |
+
<span class="relative">
|
423 |
+
<input id="allow_contact" type="checkbox" class=" absolute es-check-toggle opacity-0 w-0 h-0" name="form_data[list_visible]" value="yes" <?php if ( $form_data['list_visible'] === 'yes' ) {
|
424 |
+
echo 'checked="checked"';
|
425 |
+
}
|
|
|
426 |
|
427 |
+
?> />
|
428 |
|
429 |
+
<span class="relative es-mail-toggle-line block w-10 h-6 bg-gray-300 rounded-full shadow-inner"></span>
|
430 |
+
<span class="es-mail-toggle-dot absolute transition-all duration-300 ease-in-out block w-4 h-4 mt-1 ml-1 bg-white rounded-full shadow inset-y-0 left-0 focus-within:shadow-outline "></span>
|
431 |
+
</span>
|
432 |
|
433 |
+
</label>
|
434 |
|
435 |
+
</div>
|
436 |
</div>
|
437 |
</div>
|
|
|
438 |
|
439 |
+
|
440 |
+
<?php do_action('ig_es_add_additional_options', $form_data);?>
|
441 |
+
|
442 |
+
|
443 |
+
|
444 |
+
<div class="flex flex-row border-b border-gray-100">
|
445 |
+
<div class="flex w-1/5">
|
446 |
+
<div class="ml-4 pt-4 mb-2">
|
447 |
+
<label for="tag-link"><span class="block ml-4 pr-4 text-sm font-medium text-gray-600 pb-2"><?php echo __( 'Show GDPR consent checkbox', 'email-subscribers' ); ?></span></label>
|
448 |
+
<p class="italic text-xs text-gray-400 mt-2 ml-4 leading-snug pb-8"><?php _e( 'Show consent checkbox to get the consent of a contact before adding them to list(s)', 'email-subscribers' ); ?></p>
|
449 |
+
</div>
|
450 |
</div>
|
451 |
+
<div class="flex ">
|
452 |
+
<div class="ml-16 mb-2 mr-4 mt-6">
|
453 |
+
<table class="ig_es_form_table">
|
454 |
+
<tr>
|
455 |
+
<td>
|
456 |
+
<label for="gdpr_consent" class=" inline-flex items-center cursor-pointer">
|
457 |
+
<span class="relative">
|
458 |
+
<input id="gdpr_consent" type="checkbox" class="absolute es-check-toggle opacity-0 w-0 h-0" name="form_data[gdpr_consent]" value="yes" <?php if ( $form_data['gdpr_consent'] === 'yes' ) {
|
459 |
+
echo 'checked="checked"';
|
460 |
+
}
|
461 |
+
?> />
|
462 |
+
|
463 |
+
<span class="relative es-mail-toggle-line block w-10 h-6 bg-gray-300 rounded-full shadow-inner"></span>
|
464 |
+
<span class="es-mail-toggle-dot absolute transition-all duration-300 ease-in-out block w-4 h-4 mt-1 ml-1 bg-white rounded-full shadow inset-y-0 left-0 focus-within:shadow-outline "></span>
|
465 |
+
</span>
|
466 |
+
</label>
|
467 |
+
</td>
|
468 |
+
</tr>
|
469 |
+
<tr>
|
470 |
+
<td>
|
471 |
+
<textarea class="form-textarea" rows="2" cols="50" name="form_data[gdpr_consent_text]"><?php echo $form_data['gdpr_consent_text']; ?></textarea>
|
472 |
+
<p class="italic text-xs text-gray-400 mt-2 leading-snug pb-4"><?php _e( 'Consent text will show up at subscription form next to consent checkbox.', 'email-subscribers' ); ?></p>
|
473 |
+
</td>
|
474 |
+
</tr>
|
475 |
+
</table>
|
476 |
+
</div>
|
477 |
</div>
|
478 |
</div>
|
479 |
+
<input type="hidden" name="form_data[af_id]" value="<?php echo $form_data['af_id']; ?>"/>
|
480 |
+
<input type="hidden" name="submitted" value="submitted"/>
|
481 |
+
<?php if ( count( $lists ) > 0 ) { ?>
|
482 |
+
<p class="submit"><input type="submit" name="submit" id="ig_es_campaign_post_notification_submit_button" class="cursor-pointer align-middle ig-es-primary-button px-4 py-2 ml-6 mr-2" value="<?php if ( $is_new ) {
|
483 |
+
_e( 'Save Form', 'email-subscribers' );
|
484 |
+
}
|
485 |
+
else{
|
486 |
+
_e( 'Save Changes', 'email-subscribers' );
|
487 |
+
}
|
488 |
+
|
489 |
+
?>"/>
|
490 |
+
<a href="admin.php?page=es_forms" class="cursor-pointer align-middle rounded-md border border-indigo-600 hover:shadow-md focus:outline-none focus:shadow-outline-indigo text-sm leading-5 font-medium transition ease-in-out duration-150 px-4 my-2 py-2 mx-2 ">Cancel</a></p>
|
491 |
+
<?php } else {
|
492 |
+
$lists_page_url = admin_url( 'admin.php?page=es_lists' );
|
493 |
+
$message = __( sprintf( 'List(s) not found. Please create a first list from <a href="%s">here</a>', $lists_page_url ), 'email-subscribers' );
|
494 |
+
$status = 'error';
|
495 |
+
ES_Common::show_message( $message, $status );
|
496 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
497 |
?>
|
498 |
+
</form>
|
499 |
+
</div>
|
|
|
|
|
500 |
</div>
|
501 |
</div>
|
502 |
</div>
|
|
|
503 |
|
504 |
|
505 |
+
<?php
|
506 |
|
507 |
+
}
|
508 |
|
509 |
+
public function save_form( $id, $data ) {
|
510 |
|
511 |
+
global $wpdb;
|
512 |
|
513 |
+
$form_data = self::prepare_form_data( $data );
|
514 |
|
515 |
+
if ( ! empty( $id ) ) {
|
516 |
+
$form_data['updated_at'] = ig_get_current_date_time();
|
517 |
|
518 |
+
// We don't want to change the created_at date for update
|
519 |
+
unset( $form_data['created_at'] );
|
520 |
+
$return = $wpdb->update( IG_FORMS_TABLE, $form_data, array( 'id' => $id ) );
|
521 |
+
} else {
|
522 |
+
$return = $wpdb->insert( IG_FORMS_TABLE, $form_data );
|
523 |
+
}
|
524 |
|
525 |
+
return $return;
|
526 |
+
}
|
527 |
|
528 |
+
public static function prepare_form_data( $data ) {
|
529 |
+
|
530 |
+
$form_data = array();
|
531 |
+
$name = ! empty( $data['name'] ) ? sanitize_text_field( $data['name'] ) : '';
|
532 |
+
$desc = ! empty( $data['desc'] ) ? sanitize_text_field( $data['desc'] ) : '';
|
533 |
+
$email_label = ! empty( $data['email_label'] ) ? sanitize_text_field( $data['email_label'] ) : '';
|
534 |
+
$email_place_holder = ! empty( $data['email_place_holder'] ) ? sanitize_text_field( $data['email_place_holder'] ) : '';
|
535 |
+
$name_label = ! empty( $data['name_label'] ) ? sanitize_text_field( $data['name_label'] ) : '';
|
536 |
+
$name_place_holder = ! empty( $data['name_place_holder'] ) ? sanitize_text_field( $data['name_place_holder'] ) : '';
|
537 |
+
$button_label = ! empty( $data['button_label'] ) ? sanitize_text_field( $data['button_label'] ) : '';
|
538 |
+
$name_visible = ( ! empty( $data['name_visible'] ) && $data['name_visible'] === 'yes' ) ? true : false;
|
539 |
+
$name_required = ( ! empty( $data['name_required'] ) && $data['name_required'] === 'yes' ) ? true : false;
|
540 |
+
$list_visible = ( ! empty( $data['list_visible'] ) && $data['list_visible'] === 'yes' ) ? true : false;
|
541 |
+
$list_required = true;
|
542 |
+
$list_ids = ! empty( $data['lists'] ) ? $data['lists'] : array();
|
543 |
+
$af_id = ! empty( $data['af_id'] ) ? $data['af_id'] : 0;
|
544 |
+
$gdpr_consent = ! empty( $data['gdpr_consent'] ) ? sanitize_text_field( $data['gdpr_consent'] ) : "no";
|
545 |
+
$gdpr_consent_text = ! empty( $data['gdpr_consent_text'] ) ? wp_kses_post( $data['gdpr_consent_text'] ) : "";
|
546 |
+
$captcha = ! empty( $data['captcha'] ) ? ES_Common::get_captcha_setting(null, $data) : "no";
|
547 |
+
|
548 |
+
$body = array(
|
549 |
+
array(
|
550 |
+
'type' => 'text',
|
551 |
+
'name' => 'Name',
|
552 |
+
'id' => 'name',
|
553 |
+
'params' => array(
|
554 |
+
'label' => $name_label,
|
555 |
+
'place_holder' => $name_place_holder,
|
556 |
+
'show' => $name_visible,
|
557 |
+
'required' => $name_required
|
558 |
+
),
|
559 |
+
|
560 |
+
'position' => 1
|
561 |
),
|
562 |
|
563 |
+
array(
|
564 |
+
'type' => 'text',
|
565 |
+
'name' => 'Email',
|
566 |
+
'id' => 'email',
|
567 |
+
'params' => array(
|
568 |
+
'label' => $email_label,
|
569 |
+
'place_holder' => $email_place_holder,
|
570 |
+
'show' => true,
|
571 |
+
'required' => true
|
572 |
+
),
|
573 |
+
|
574 |
+
'position' => 2
|
575 |
),
|
576 |
|
577 |
+
array(
|
578 |
+
'type' => 'checkbox',
|
579 |
+
'name' => 'Lists',
|
580 |
+
'id' => 'lists',
|
581 |
+
'params' => array(
|
582 |
+
'label' => 'Lists',
|
583 |
+
'show' => $list_visible,
|
584 |
+
'required' => $list_required,
|
585 |
+
'values' => $list_ids
|
586 |
+
),
|
587 |
+
|
588 |
+
'position' => 3
|
589 |
),
|
590 |
|
591 |
+
array(
|
592 |
+
'type' => 'submit',
|
593 |
+
'name' => 'submit',
|
594 |
+
'id' => 'submit',
|
595 |
+
'params' => array(
|
596 |
+
'label' => $button_label,
|
597 |
+
'show' => true,
|
598 |
+
'required' => true
|
599 |
+
),
|
600 |
+
|
601 |
+
'position' => 4
|
602 |
),
|
603 |
|
604 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
605 |
|
606 |
+
$settings = array(
|
607 |
+
'lists' => $list_ids,
|
608 |
+
'desc' => $desc,
|
609 |
+
'form_version' => ES()->forms_db->version,
|
610 |
+
'captcha' => $captcha,
|
611 |
+
'gdpr' => array(
|
612 |
+
'consent' => $gdpr_consent,
|
613 |
+
'consent_text' => $gdpr_consent_text
|
614 |
+
)
|
615 |
|
616 |
+
);
|
|
|
|
|
|
|
|
|
617 |
|
618 |
+
$form_data['name'] = $name;
|
619 |
+
$form_data['body'] = maybe_serialize( $body );
|
620 |
+
$form_data['settings'] = maybe_serialize( $settings );
|
621 |
+
$form_data['styles'] = null;
|
622 |
+
$form_data['created_at'] = ig_get_current_date_time();
|
623 |
+
$form_data['updated_at'] = null;
|
624 |
+
$form_data['deleted_at'] = null;
|
625 |
+
$form_data['af_id'] = $af_id;
|
626 |
|
627 |
+
return $form_data;
|
|
|
|
|
|
|
|
|
628 |
}
|
629 |
|
630 |
+
public static function get_form_data_from_body( $data ) {
|
631 |
+
|
632 |
+
$name = ! empty( $data['name'] ) ? $data['name'] : '';
|
633 |
+
$id = ! empty( $data['id'] ) ? $data['id'] : '';
|
634 |
+
$af_id = ! empty( $data['af_id'] ) ? $data['af_id'] : '';
|
635 |
+
$body_data = maybe_unserialize( $data['body'] );
|
636 |
+
$settings_data = maybe_unserialize( $data['settings'] );
|
637 |
+
|
638 |
+
$desc = ! empty( $settings_data['desc'] ) ? $settings_data['desc'] : '';
|
639 |
+
$form_version = ! empty( $settings_data['form_version'] ) ? $settings_data['form_version'] : '0.1';
|
640 |
+
|
641 |
+
$gdpr_consent = "no";
|
642 |
+
$gdpr_consent_text = "";
|
643 |
+
|
644 |
+
$captcha = ES_Common::get_captcha_setting( $id , $settings_data);
|
645 |
+
|
646 |
+
if ( ! empty( $settings_data['gdpr'] ) ) {
|
647 |
+
$gdpr_consent = ! empty( $settings_data['gdpr']['consent'] ) ? $settings_data['gdpr']['consent'] : "no";
|
648 |
+
$gdpr_consent_text = ! empty( $settings_data['gdpr']['consent_text'] ) ? $settings_data['gdpr']['consent_text'] : "";
|
649 |
}
|
|
|
650 |
|
651 |
+
$form_data = array( 'form_id' => $id, 'name' => $name, 'af_id' => $af_id, 'desc' => $desc, 'form_version' => $form_version, 'gdpr_consent' => $gdpr_consent, 'gdpr_consent_text' => $gdpr_consent_text, 'captcha' => $captcha );
|
652 |
+
|
653 |
+
foreach ( $body_data as $d ) {
|
654 |
+
if ( $d['id'] === 'name' ) {
|
655 |
+
$form_data['name_visible'] = ( $d['params']['show'] === true ) ? 'yes' : '';
|
656 |
+
$form_data['name_required'] = ( $d['params']['required'] === true ) ? 'yes' : '';
|
657 |
+
$form_data['name_label'] = ! empty( $d['params']['label'] ) ? $d['params']['label'] : '';
|
658 |
+
$form_data['name_place_holder'] = ! empty( $d['params']['place_holder'] ) ? $d['params']['place_holder'] : '';
|
659 |
+
} elseif ( $d['id'] === 'lists' ) {
|
660 |
+
$form_data['list_visible'] = ( $d['params']['show'] === true ) ? 'yes' : '';
|
661 |
+
$form_data['list_required'] = ( $d['params']['required'] === true ) ? 'yes' : '';
|
662 |
+
$form_data['lists'] = ! empty( $d['params']['values'] ) ? $d['params']['values'] : array();
|
663 |
+
} elseif ( $d['id'] === 'email' ) {
|
664 |
+
$form_data['email_label'] = ! empty( $d['params']['label'] ) ? $d['params']['label'] : '';
|
665 |
+
$form_data['email_place_holder'] = ! empty( $d['params']['place_holder'] ) ? $d['params']['place_holder'] : '';
|
666 |
+
} elseif ( $d['id'] === 'submit' ) {
|
667 |
+
$form_data['button_label'] = ! empty( $d['params']['label'] ) ? $d['params']['label'] : '';
|
668 |
+
}
|
669 |
+
}
|
670 |
+
return $form_data;
|
671 |
+
}
|
672 |
|
673 |
/**
|
674 |
* Retrieve lists data from the database
|
873 |
|
874 |
$this->_column_headers = $this->get_column_info();
|
875 |
|
|
|
876 |
/** Process bulk action */
|
877 |
$this->process_bulk_action();
|
878 |
|
950 |
public function no_items() {
|
951 |
_e( 'No Forms avaliable.', 'email-subscribers' );
|
952 |
}
|
953 |
+
}
|
lite/includes/classes/class-es-handle-post-notification.php
CHANGED
@@ -173,9 +173,9 @@ class ES_Handle_Post_Notification {
|
|
173 |
public static function prepare_body( $es_templ_body, $post_id, $email_template_id ) {
|
174 |
global $post;
|
175 |
$post = get_post( $post_id );
|
176 |
-
$post_date
|
177 |
$es_templ_body = str_replace( '{{DATE}}', $post_date, $es_templ_body );
|
178 |
-
|
179 |
$post_title = get_the_title( $post );
|
180 |
$es_templ_body = str_replace( '{{POSTTITLE}}', $post_title, $es_templ_body );
|
181 |
$post_link = get_permalink( $post_id );
|
173 |
public static function prepare_body( $es_templ_body, $post_id, $email_template_id ) {
|
174 |
global $post;
|
175 |
$post = get_post( $post_id );
|
176 |
+
$post_date = ES_Common::convert_date_to_wp_date( $post->post_modified );
|
177 |
$es_templ_body = str_replace( '{{DATE}}', $post_date, $es_templ_body );
|
178 |
+
|
179 |
$post_title = get_the_title( $post );
|
180 |
$es_templ_body = str_replace( '{{POSTTITLE}}', $post_title, $es_templ_body );
|
181 |
$post_link = get_permalink( $post_id );
|
lite/includes/classes/class-es-ig-redirect.php
CHANGED
@@ -26,10 +26,10 @@ if ( ! class_exists( 'ES_IG_Redirect' ) ) {
|
|
26 |
|
27 |
if ( 'create_campaign' === $action ) {
|
28 |
$redirect_url = admin_url( 'edit.php?post_type=ig_campaign' );
|
29 |
-
$info = __( 'Create Onsite Campaigns Using <a href="https://wordpress.org/plugins/icegram">Icegram</a>', '
|
30 |
} elseif ( 'create_template' === $action ) {
|
31 |
$redirect_url = admin_url( 'edit.php?ig_campaign&page=icegram-gallery' );
|
32 |
-
$info = __( 'Create Popups using <a href="https://wordpress.org/plugins/icegram">Icegram</a>', '
|
33 |
}
|
34 |
|
35 |
$icegram_plugin = 'icegram/icegram.php';
|
@@ -70,9 +70,9 @@ if ( ! class_exists( 'ES_IG_Redirect' ) ) {
|
|
70 |
|
71 |
<?php
|
72 |
if ( in_array( $icegram_plugin, $inactive_plugins ) ) {
|
73 |
-
?> <a href="<?php echo $ig_activate_url ?>"><button type="button" class="inline-flex justify-center w-full rounded-md border border-transparent px-4 py-2 bg-white text-sm leading-5 font-medium text-white bg-indigo-600 hover:bg-indigo-500 focus:outline-none focus:shadow-outline-blue transition ease-in-out duration-150"> <?php _e( 'Activate Icegram','
|
74 |
} else {
|
75 |
-
?> <a href="<?php echo $ig_install_url ?>"><button type="button" class="inline-flex justify-center w-full rounded-md border border-transparent px-4 py-2 bg-white text-sm leading-5 font-medium text-white bg-indigo-600 hover:bg-indigo-500 focus:outline-none focus:shadow-outline-blue transition ease-in-out duration-150"> <?php _e( 'Install Icegram','
|
76 |
} ?>
|
77 |
</button></a>
|
78 |
</span>
|
26 |
|
27 |
if ( 'create_campaign' === $action ) {
|
28 |
$redirect_url = admin_url( 'edit.php?post_type=ig_campaign' );
|
29 |
+
$info = __( 'Create Onsite Campaigns Using <a href="https://wordpress.org/plugins/icegram">Icegram</a>', 'email-subscribers' );
|
30 |
} elseif ( 'create_template' === $action ) {
|
31 |
$redirect_url = admin_url( 'edit.php?ig_campaign&page=icegram-gallery' );
|
32 |
+
$info = __( 'Create Popups using <a href="https://wordpress.org/plugins/icegram">Icegram</a>', 'email-subscribers' );
|
33 |
}
|
34 |
|
35 |
$icegram_plugin = 'icegram/icegram.php';
|
70 |
|
71 |
<?php
|
72 |
if ( in_array( $icegram_plugin, $inactive_plugins ) ) {
|
73 |
+
?> <a href="<?php echo $ig_activate_url ?>"><button type="button" class="inline-flex justify-center w-full rounded-md border border-transparent px-4 py-2 bg-white text-sm leading-5 font-medium text-white bg-indigo-600 hover:bg-indigo-500 focus:outline-none focus:shadow-outline-blue transition ease-in-out duration-150"> <?php _e( 'Activate Icegram','email-subscribers' );
|
74 |
} else {
|
75 |
+
?> <a href="<?php echo $ig_install_url ?>"><button type="button" class="inline-flex justify-center w-full rounded-md border border-transparent px-4 py-2 bg-white text-sm leading-5 font-medium text-white bg-indigo-600 hover:bg-indigo-500 focus:outline-none focus:shadow-outline-blue transition ease-in-out duration-150"> <?php _e( 'Install Icegram','email-subscribers' );
|
76 |
} ?>
|
77 |
</button></a>
|
78 |
</span>
|
lite/includes/classes/class-es-import-subscribers.php
CHANGED
@@ -12,7 +12,6 @@ class ES_Import_Subscribers {
|
|
12 |
* @since 4.0.0
|
13 |
*/
|
14 |
public function __construct() {
|
15 |
-
add_action( 'init', array( &$this, 'maybe_start_import' ) );
|
16 |
}
|
17 |
|
18 |
/**
|
@@ -21,13 +20,212 @@ class ES_Import_Subscribers {
|
|
21 |
* @since 4.0,0
|
22 |
*
|
23 |
* @modify 4.3.1
|
24 |
-
*
|
25 |
* @modfiy 4.4.4 Moved importing code section to maybe_start_import method.
|
26 |
*/
|
27 |
public function import_callback() {
|
28 |
|
29 |
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
$this->prepare_import_subscriber_form();
|
32 |
|
33 |
}
|
@@ -108,16 +306,16 @@ class ES_Import_Subscribers {
|
|
108 |
|
109 |
<div class="wrap max-w-full mt-1 font-sans">
|
110 |
<header class="ml-12 wp-heading-inline">
|
111 |
-
|
112 |
-
<div class="mt-2">
|
113 |
-
<h2 class="text-
|
114 |
-
<span class="text-
|
115 |
<?php
|
116 |
ES_Common::prepare_main_header_navigation( $audience_tab_main_navigation );
|
117 |
?>
|
118 |
</div>
|
119 |
</h2>
|
120 |
-
|
121 |
</header>
|
122 |
|
123 |
<div class="ml-12 mr-8"><hr class="wp-header-end"></div>
|
@@ -125,188 +323,57 @@ class ES_Import_Subscribers {
|
|
125 |
</div>
|
126 |
|
127 |
<?php
|
128 |
-
}
|
129 |
|
130 |
/**
|
131 |
-
*
|
132 |
-
*
|
133 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
134 |
*/
|
135 |
-
public function
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
$
|
145 |
-
|
146 |
-
$
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
if ( isset( $_FILES["file"] ) ) {
|
151 |
-
|
152 |
-
if ( is_uploaded_file( $_FILES["file"]["tmp_name"] ) ) {
|
153 |
-
|
154 |
-
$tmp_file = $_FILES["file"]["tmp_name"];
|
155 |
-
$file = $_FILES['file']['name'];
|
156 |
-
|
157 |
-
$ext = strtolower( substr( $file, strrpos( $file, "." ), ( strlen( $file ) - strrpos( $file, "." ) ) ) );
|
158 |
-
|
159 |
-
if ( $ext == ".csv" ) {
|
160 |
-
$max_upload_size = $this->get_max_upload_size();
|
161 |
-
$file_size = $_FILES['file']['size'];
|
162 |
-
|
163 |
-
// Check if CSV file size is less than or equal to max upload size.
|
164 |
-
if( $file_size <= $max_upload_size ) {
|
165 |
-
if ( ! ini_get( "auto_detect_line_endings" ) ) {
|
166 |
-
ini_set( "auto_detect_line_endings", '1' );
|
167 |
-
}
|
168 |
-
|
169 |
-
$statuses = ES_Common::get_statuses_key_name_map();
|
170 |
-
$es_email_status = ig_es_get_post_data( 'es_email_status' );
|
171 |
-
|
172 |
-
$status = '';
|
173 |
-
if ( in_array( $es_email_status, array_keys( $statuses ) ) ) {
|
174 |
-
$status = $es_email_status;
|
175 |
-
}
|
176 |
-
|
177 |
-
if ( ! empty( $status ) ) {
|
178 |
-
|
179 |
-
$lists = ES()->lists_db->get_id_name_map();
|
180 |
-
|
181 |
-
$list_id = ig_es_get_post_data( 'list_id' );
|
182 |
-
|
183 |
-
if ( ! in_array( $list_id, array_keys( $lists ) ) ) {
|
184 |
-
$list_id = '';
|
185 |
-
}
|
186 |
-
|
187 |
-
if ( ! empty( $list_id ) ) {
|
188 |
-
|
189 |
-
$uploaded_file = $_FILES['file'];
|
190 |
-
$upload_overrides = array( 'test_form' => false );
|
191 |
-
|
192 |
-
if ( ! function_exists( 'wp_handle_upload' ) ) {
|
193 |
-
require_once( ABSPATH . 'wp-admin/includes/file.php' );
|
194 |
-
}
|
195 |
-
|
196 |
-
// Whitelist CSV file type to allowed file types during upload.
|
197 |
-
add_filter( 'site_option_upload_filetypes', array( $this, 'whitelist_csv_file_type' ) );
|
198 |
-
|
199 |
-
$import_file = wp_handle_upload( $uploaded_file, $upload_overrides );
|
200 |
-
|
201 |
-
// Remove CSV file type from allowed file types for upload after uploading the file.
|
202 |
-
remove_filter( 'site_option_upload_filetypes', array( $this, 'whitelist_csv_file_type' ) );
|
203 |
-
|
204 |
-
if ( $import_file && ! isset( $import_file['error'] ) ) {
|
205 |
-
|
206 |
-
$file_pointer = file( $import_file['file'] );
|
207 |
-
if ( is_array( $file_pointer ) && ! empty( $file_pointer ) ) {
|
208 |
-
$total_contacts_to_process = count( $file_pointer ) - 1;
|
209 |
-
|
210 |
-
if( ! empty( $total_contacts_to_process ) ) {
|
211 |
-
$contact_background_process_data = array(
|
212 |
-
'action' => 'import_contact',
|
213 |
-
'contact_status' => $status,
|
214 |
-
'list_id' => $list_id,
|
215 |
-
'import_file' => $import_file,
|
216 |
-
'total_contacts_to_process' => $total_contacts_to_process,
|
217 |
-
);
|
218 |
-
|
219 |
-
update_site_option( 'ig_es_contact_background_process_data', $contact_background_process_data );
|
220 |
-
|
221 |
-
as_unschedule_action( 'ig_es_add_contact_to_csv' );
|
222 |
-
as_unschedule_action( 'ig_es_import_contacts_from_csv' );
|
223 |
-
|
224 |
-
as_schedule_single_action( time(), 'ig_es_import_contacts_from_csv' );
|
225 |
-
|
226 |
-
ES()->init_action_scheduler_queue_runner();
|
227 |
-
|
228 |
-
$email_subscribers_import_page = admin_url( 'admin.php?page=es_subscribers&action=import' );
|
229 |
-
wp_safe_redirect( $email_subscribers_import_page );
|
230 |
-
exit();
|
231 |
-
} else {
|
232 |
-
$message = __( 'There are no contacts to import in the uploaded CSV file. Please add some contacts and try again later.', 'email-subscribers' );
|
233 |
-
ES_Common::show_message( $message, 'error' );
|
234 |
-
}
|
235 |
-
|
236 |
-
} else {
|
237 |
-
$message = __( 'Unable to import from uploaded file. Please try again later.', 'email-subscribers' );
|
238 |
-
ES_Common::show_message( $message, 'error' );
|
239 |
-
}
|
240 |
-
|
241 |
-
} else {
|
242 |
-
$message = $import_file['error'];
|
243 |
-
ES_Common::show_message( $message, 'error' );
|
244 |
-
}
|
245 |
-
|
246 |
-
} else {
|
247 |
-
$message = __( "Error: Please Select List", 'email-subscribers' );
|
248 |
-
ES_Common::show_message( $message, 'error' );
|
249 |
-
}
|
250 |
-
} else {
|
251 |
-
$message = __( "Error: Please select status", 'email-subscribers' );
|
252 |
-
ES_Common::show_message( $message, 'error' );
|
253 |
-
}
|
254 |
-
|
255 |
-
} else {
|
256 |
-
$message = sprintf( __( 'The file you are trying to upload is larger than %s. Please upload a smaller file.', 'email-subscribers' ), esc_html( size_format( $max_upload_size ) ) );
|
257 |
-
ES_Common::show_message( $message, 'error' );
|
258 |
-
}
|
259 |
-
} else {
|
260 |
-
$message = __( "Error: Please Upload only CSV File", 'email-subscribers' );
|
261 |
-
ES_Common::show_message( $message, 'error' );
|
262 |
-
}
|
263 |
-
|
264 |
-
} else {
|
265 |
-
if( ! empty( $_FILES['file']['error'] ) ) {
|
266 |
-
switch( $_FILES['file']['error'] ) {
|
267 |
-
case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini
|
268 |
-
$message = sprintf( __( 'The file you are trying to upload is larger than %s. Please upload a smaller file.', 'email-subscribers' ), esc_html( size_format( $max_upload_size ) ) );
|
269 |
-
break;
|
270 |
-
default: //a default error, just in case! :)
|
271 |
-
$message = __( 'There was a problem with your upload.', 'email-subscribers' );
|
272 |
-
break;
|
273 |
-
}
|
274 |
} else {
|
275 |
-
$
|
276 |
}
|
277 |
-
|
278 |
-
ES_Common::show_message( $message, 'error' );
|
279 |
}
|
280 |
-
|
281 |
-
} else {
|
282 |
-
$message = __( "Error: Please Upload File", 'email-subscribers' );
|
283 |
-
ES_Common::show_message( $message, 'error' );
|
284 |
}
|
|
|
285 |
}
|
286 |
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
*
|
294 |
-
* @return string $allowed_file_types
|
295 |
-
*
|
296 |
-
* @since 4.4.6
|
297 |
-
*/
|
298 |
-
public function whitelist_csv_file_type( $allowed_file_types = '' ) {
|
299 |
|
300 |
-
|
301 |
|
302 |
-
return $allowed_file_types;
|
303 |
}
|
304 |
-
|
305 |
/**
|
306 |
* Method to get max upload size
|
307 |
-
*
|
308 |
-
* @return int $max_upload_size
|
309 |
-
*
|
310 |
* @since 4.4.6
|
311 |
*/
|
312 |
public function get_max_upload_size() {
|
12 |
* @since 4.0.0
|
13 |
*/
|
14 |
public function __construct() {
|
|
|
15 |
}
|
16 |
|
17 |
/**
|
20 |
* @since 4.0,0
|
21 |
*
|
22 |
* @modify 4.3.1
|
23 |
+
*
|
24 |
* @modfiy 4.4.4 Moved importing code section to maybe_start_import method.
|
25 |
*/
|
26 |
public function import_callback() {
|
27 |
|
28 |
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
|
29 |
|
30 |
+
$submit = ig_es_get_post_data( 'submit' );
|
31 |
+
if ( $submit ) {
|
32 |
+
$import_contacts_nonce = ig_es_get_post_data( 'import_contacts' );
|
33 |
+
if ( ! isset( $_POST['import_contacts'] ) || ! wp_verify_nonce( sanitize_key( $import_contacts_nonce ), 'import-contacts' ) ) {
|
34 |
+
$message = __( "Sorry, you do not have permission to import contacts.", 'email-subscribers' );
|
35 |
+
ES_Common::show_message( $message, 'error' );
|
36 |
+
}
|
37 |
+
|
38 |
+
if ( isset( $_FILES["file"] ) ) {
|
39 |
+
|
40 |
+
$max_upload_size = $this->get_max_upload_size();
|
41 |
+
if ( is_uploaded_file( $_FILES["file"]["tmp_name"] ) ) {
|
42 |
+
|
43 |
+
$tmp_file = $_FILES["file"]["tmp_name"];
|
44 |
+
$file = $_FILES['file']['name'];
|
45 |
+
|
46 |
+
$ext = strtolower( substr( $file, strrpos( $file, "." ), ( strlen( $file ) - strrpos( $file, "." ) ) ) );
|
47 |
+
|
48 |
+
if ( $ext == ".csv" ) {
|
49 |
+
$file_size = $_FILES['file']['size'];
|
50 |
+
|
51 |
+
// Check if CSV file size is less than or equal to max upload size.
|
52 |
+
if( $file_size <= $max_upload_size ) {
|
53 |
+
if ( ! ini_get( "auto_detect_line_endings" ) ) {
|
54 |
+
ini_set( "auto_detect_line_endings", '1' );
|
55 |
+
}
|
56 |
+
|
57 |
+
$statuses = ES_Common::get_statuses_key_name_map();
|
58 |
+
$es_email_status = ig_es_get_post_data( 'es_email_status' );
|
59 |
+
|
60 |
+
$status = '';
|
61 |
+
if ( in_array( $es_email_status, array_keys( $statuses ) ) ) {
|
62 |
+
$status = $es_email_status;
|
63 |
+
}
|
64 |
+
|
65 |
+
if ( ! empty( $status ) ) {
|
66 |
+
|
67 |
+
$lists = ES()->lists_db->get_id_name_map();
|
68 |
+
|
69 |
+
$list_id = ig_es_get_post_data( 'list_id' );
|
70 |
+
|
71 |
+
if ( ! in_array( $list_id, array_keys( $lists ) ) ) {
|
72 |
+
$list_id = '';
|
73 |
+
}
|
74 |
+
|
75 |
+
if ( ! empty( $list_id ) ) {
|
76 |
+
|
77 |
+
$delimiter = $this->get_delimiter( $tmp_file );
|
78 |
+
|
79 |
+
$handle = fopen( $tmp_file, 'r' );
|
80 |
+
|
81 |
+
// Get Headers
|
82 |
+
$headers = array_map( 'trim', fgetcsv( $handle, 0, $delimiter ) );
|
83 |
+
|
84 |
+
$existing_contacts_email_id_map = ES()->contacts_db->get_email_id_map();
|
85 |
+
|
86 |
+
$existing_contacts = array();
|
87 |
+
if ( count( $existing_contacts_email_id_map ) > 0 ) {
|
88 |
+
$existing_contacts = array_keys( $existing_contacts_email_id_map );
|
89 |
+
$existing_contacts = array_map( 'strtolower', $existing_contacts );
|
90 |
+
}
|
91 |
+
|
92 |
+
$invalid_emails_count = $imported_subscribers_count = $existing_contacts_count = 0;
|
93 |
+
$emails = array();
|
94 |
+
|
95 |
+
$values = $place_holders = $contacts_data = array();
|
96 |
+
$current_date_time = ig_get_current_date_time();
|
97 |
+
|
98 |
+
$headers_column_count = count( $headers );
|
99 |
+
while ( ( $data = fgetcsv( $handle, 0, $delimiter ) ) !== false ) {
|
100 |
+
|
101 |
+
$data = array_map( 'trim', $data );
|
102 |
+
$data_column_count = count( $data );
|
103 |
+
|
104 |
+
// Verify if number of headers columns are equal to number of data columns.
|
105 |
+
if( $headers_column_count !== $data_column_count ) {
|
106 |
+
$invalid_emails_count ++;
|
107 |
+
continue;
|
108 |
+
}
|
109 |
+
|
110 |
+
$data = array_combine( $headers, $data );
|
111 |
+
|
112 |
+
$email = isset( $data['Email'] ) ? strtolower( sanitize_email( trim( $data['Email'] ) ) ) : '';
|
113 |
+
|
114 |
+
if ( empty( $email ) || ! filter_var( $email, FILTER_VALIDATE_EMAIL )) {
|
115 |
+
$invalid_emails_count ++;
|
116 |
+
continue;
|
117 |
+
}
|
118 |
+
|
119 |
+
if ( ! in_array( $email, $existing_contacts ) ) {
|
120 |
+
|
121 |
+
// Convert emoji characters to equivalent HTML entities to avoid WordPress sanitization error in SQL query while bulk inserting contacts.
|
122 |
+
$name = isset( $data['Name'] ) ? ES_Common::handle_emoji_characters( sanitize_text_field(trim( $data['Name'] ) ) ) : '';
|
123 |
+
$first_name = isset( $data['First Name'] ) ? ES_Common::handle_emoji_characters( sanitize_text_field( trim( $data['First Name'] ) ) ) : '';
|
124 |
+
$last_name = isset( $data['Last Name'] ) ? ES_Common::handle_emoji_characters( sanitize_text_field( trim( $data['Last Name'] ) ) ) : '';
|
125 |
+
|
126 |
+
// If we don't get the first_name & last_name, consider Name field.
|
127 |
+
// If name empty, get the name from Email
|
128 |
+
if ( empty( $first_name ) && empty( $last_name ) ) {
|
129 |
+
|
130 |
+
if ( empty( $name ) ) {
|
131 |
+
$name = ES_Common::get_name_from_email( $email );
|
132 |
+
}
|
133 |
+
|
134 |
+
$names = ES_Common::prepare_first_name_last_name( $name );
|
135 |
+
$first_name = sanitize_text_field( $names['first_name'] );
|
136 |
+
$last_name = sanitize_text_field( $names['last_name'] );
|
137 |
+
}
|
138 |
+
|
139 |
+
$guid = ES_Common::generate_guid();
|
140 |
+
|
141 |
+
$contacts_data[ $imported_subscribers_count ]['first_name'] = $first_name;
|
142 |
+
$contacts_data[ $imported_subscribers_count ]['last_name'] = $last_name;
|
143 |
+
$contacts_data[ $imported_subscribers_count ]['email'] = $email;
|
144 |
+
$contacts_data[ $imported_subscribers_count ]['source'] = 'import';
|
145 |
+
$contacts_data[ $imported_subscribers_count ]['status'] = 'verified';
|
146 |
+
$contacts_data[ $imported_subscribers_count ]['hash'] = $guid;
|
147 |
+
$contacts_data[ $imported_subscribers_count ]['created_at'] = $current_date_time;
|
148 |
+
|
149 |
+
$existing_contacts[] = $email;
|
150 |
+
|
151 |
+
$emails[] = $email;
|
152 |
+
|
153 |
+
$imported_subscribers_count ++;
|
154 |
+
} else {
|
155 |
+
$existing_contacts_count ++;
|
156 |
+
}
|
157 |
+
}
|
158 |
+
|
159 |
+
$message = '';
|
160 |
+
$response_status = 'error';
|
161 |
+
if ( count( $emails ) > 0 ) {
|
162 |
+
|
163 |
+
$response_status = 'success';
|
164 |
+
|
165 |
+
ES()->contacts_db->bulk_insert( $contacts_data );
|
166 |
+
|
167 |
+
$contact_ids = ES()->contacts_db->get_contact_ids_by_emails( $emails );
|
168 |
+
if ( count( $contact_ids ) > 0 ) {
|
169 |
+
ES()->lists_contacts_db->remove_contacts_from_lists( $contact_ids, $list_id );
|
170 |
+
ES()->lists_contacts_db->do_import_contacts_into_list( $list_id, $contact_ids, $status, 1, $current_date_time );
|
171 |
+
}
|
172 |
+
|
173 |
+
$message = sprintf( __( 'Total %d contacts have been imported successfully!', 'email-subscribers' ), $imported_subscribers_count );
|
174 |
+
|
175 |
+
}
|
176 |
+
|
177 |
+
if ( $existing_contacts_count > 0 ) {
|
178 |
+
$message .= " ";
|
179 |
+
$message .= sprintf( __( '%d contact(s) are already exists.', 'email-subscribers' ), $existing_contacts_count );
|
180 |
+
}
|
181 |
+
|
182 |
+
if ( $invalid_emails_count > 0 ) {
|
183 |
+
$message .= " ";
|
184 |
+
$message .= sprintf( __( '%d contact(s) are invalid.', 'email-subscribers' ), $invalid_emails_count );
|
185 |
+
}
|
186 |
+
|
187 |
+
fclose( $handle );
|
188 |
+
|
189 |
+
ES_Common::show_message( $message, $response_status );
|
190 |
+
|
191 |
+
} else {
|
192 |
+
$message = __( "Error: Please Select List", 'email-subscribers' );
|
193 |
+
ES_Common::show_message( $message, 'error' );
|
194 |
+
}
|
195 |
+
} else {
|
196 |
+
$message = __( "Error: Please select status", 'email-subscribers' );
|
197 |
+
ES_Common::show_message( $message, 'error' );
|
198 |
+
}
|
199 |
+
} else {
|
200 |
+
$message = sprintf( __( 'The file you are trying to upload is larger than %s. Please upload a smaller file.', 'email-subscribers' ), esc_html( size_format( $max_upload_size ) ) );
|
201 |
+
ES_Common::show_message( $message, 'error' );
|
202 |
+
}
|
203 |
+
} else {
|
204 |
+
$message = __( "Error: Please Upload only CSV File", 'email-subscribers' );
|
205 |
+
ES_Common::show_message( $message, 'error' );
|
206 |
+
}
|
207 |
+
} else {
|
208 |
+
if( ! empty( $_FILES['file']['error'] ) ) {
|
209 |
+
switch( $_FILES['file']['error'] ) {
|
210 |
+
case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini
|
211 |
+
$message = sprintf( __( 'The file you are trying to upload is larger than %s. Please upload a smaller file.', 'email-subscribers' ), esc_html( size_format( $max_upload_size ) ) );
|
212 |
+
break;
|
213 |
+
default: //a default error, just in case! :)
|
214 |
+
$message = __( 'There was a problem with your upload.', 'email-subscribers' );
|
215 |
+
break;
|
216 |
+
}
|
217 |
+
} else {
|
218 |
+
$message = __( 'Error: Please Upload File', 'email-subscribers' );
|
219 |
+
}
|
220 |
+
|
221 |
+
ES_Common::show_message( $message, 'error' );
|
222 |
+
}
|
223 |
+
} else {
|
224 |
+
$message = __( "Error: Please Upload File", 'email-subscribers' );
|
225 |
+
ES_Common::show_message( $message, 'error' );
|
226 |
+
}
|
227 |
+
}
|
228 |
+
|
229 |
$this->prepare_import_subscriber_form();
|
230 |
|
231 |
}
|
306 |
|
307 |
<div class="wrap max-w-full mt-1 font-sans">
|
308 |
<header class="ml-12 wp-heading-inline">
|
309 |
+
|
310 |
+
<div class="mt-2">
|
311 |
+
<h2 class="text-2xl font-medium text-gray-800 sm:leading-9 sm:truncate">
|
312 |
+
<span class="text-base font-normal leading-7 text-indigo-600 sm:leading-9 sm:truncate"> <a href="admin.php?page=es_subscribers"><?php _e( 'Audience', 'email-subscribers' ); ?> </a> </span> <svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24" class="w-4 h-4 mt-1 inline-block align-middle"><path d="M9 5l7 7-7 7"></path></svg> <?php _e('Import Contacts', 'email-subscribers'); ?>
|
313 |
<?php
|
314 |
ES_Common::prepare_main_header_navigation( $audience_tab_main_navigation );
|
315 |
?>
|
316 |
</div>
|
317 |
</h2>
|
318 |
+
|
319 |
</header>
|
320 |
|
321 |
<div class="ml-12 mr-8"><hr class="wp-header-end"></div>
|
323 |
</div>
|
324 |
|
325 |
<?php
|
326 |
+
}
|
327 |
|
328 |
/**
|
329 |
+
* Get CSV file delimiter
|
330 |
+
*
|
331 |
+
* @param $file
|
332 |
+
* @param int $check_lines
|
333 |
+
*
|
334 |
+
* @return mixed
|
335 |
+
*
|
336 |
+
* @since 4.3.1
|
337 |
*/
|
338 |
+
public function get_delimiter( $file, $check_lines = 2 ) {
|
339 |
+
|
340 |
+
$file = new SplFileObject( $file );
|
341 |
+
|
342 |
+
$delimiters = array( ',', '\t', ';', '|', ':' );
|
343 |
+
$results = array();
|
344 |
+
$i = 0;
|
345 |
+
while ( $file->valid() && $i <= $check_lines ) {
|
346 |
+
$line = $file->fgets();
|
347 |
+
foreach ( $delimiters as $delimiter ) {
|
348 |
+
$regExp = '/[' . $delimiter . ']/';
|
349 |
+
$fields = preg_split( $regExp, $line );
|
350 |
+
if ( count( $fields ) > 1 ) {
|
351 |
+
if ( ! empty( $results[ $delimiter ] ) ) {
|
352 |
+
$results[ $delimiter ] ++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
} else {
|
354 |
+
$results[ $delimiter ] = 1;
|
355 |
}
|
|
|
|
|
356 |
}
|
|
|
|
|
|
|
|
|
357 |
}
|
358 |
+
$i ++;
|
359 |
}
|
360 |
|
361 |
+
if ( count( $results ) > 0 ) {
|
362 |
+
|
363 |
+
$results = array_keys( $results, max( $results ) );
|
364 |
+
|
365 |
+
return $results[0];
|
366 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
367 |
|
368 |
+
return ',';
|
369 |
|
|
|
370 |
}
|
371 |
+
|
372 |
/**
|
373 |
* Method to get max upload size
|
374 |
+
*
|
375 |
+
* @return int $max_upload_size
|
376 |
+
*
|
377 |
* @since 4.4.6
|
378 |
*/
|
379 |
public function get_max_upload_size() {
|
lite/includes/classes/class-es-lists-table.php
CHANGED
@@ -73,8 +73,8 @@ class ES_Lists_Table extends WP_List_Table {
|
|
73 |
echo $this->edit_list( absint( $list ) );
|
74 |
} else { ?>
|
75 |
|
76 |
-
<h1 class=" wp-heading-inline"><span class="text-
|
77 |
-
</span> > <?php _e('Lists', 'email-subscribers');
|
78 |
<br>
|
79 |
|
80 |
<div id="poststuff" class="es-items-lists es-lists-table">
|
@@ -249,10 +249,11 @@ class ES_Lists_Table extends WP_List_Table {
|
|
249 |
<header class="ml-12 mr-8 wp-heading-inline">
|
250 |
<div class="md:flex md:items-center md:justify-between justify-center">
|
251 |
<div class="flex-1 min-w-0">
|
252 |
-
<
|
253 |
-
<span class="text-
|
254 |
-
<a href="admin.php?page=es_subscribers"><?php _e('Audience ','email-subscribers'); ?></a></span> >
|
255 |
-
<a href="admin.php?page=es_lists&action=manage-lists"><?php _e(' Lists ','email-subscribers'); ?></a> >
|
|
|
256 |
<?php
|
257 |
if ( $is_new ) {
|
258 |
_e( 'Add New', 'email-subscribers' );
|
@@ -261,7 +262,7 @@ class ES_Lists_Table extends WP_List_Table {
|
|
261 |
}
|
262 |
|
263 |
?>
|
264 |
-
</
|
265 |
</div>
|
266 |
</div>
|
267 |
</header>
|
@@ -290,7 +291,7 @@ class ES_Lists_Table extends WP_List_Table {
|
|
290 |
</div>
|
291 |
|
292 |
<input type="hidden" name="submitted" value="submitted"/>
|
293 |
-
<input type="submit" name="submit" id="submit" class="cursor-pointer ig-es-primary-button px-4 py-2 my-4 ml-6 mr-2" value="<?php if ( $is_new ) {
|
294 |
_e( 'Save List', 'email-subscribers' );
|
295 |
}
|
296 |
else{
|
@@ -298,7 +299,7 @@ class ES_Lists_Table extends WP_List_Table {
|
|
298 |
}
|
299 |
|
300 |
?>"/><!-- <?php submit_button(); ?> -->
|
301 |
-
<a href="admin.php?page=es_lists&action=manage-lists" class="cursor-pointer rounded-md border border-indigo-600 hover:shadow-md focus:outline-none focus:shadow-outline-indigo text-sm leading-5 font-medium transition ease-in-out duration-150 px-4 my-2 py-2 mx-2 ">Cancel</a>
|
302 |
</form>
|
303 |
</div>
|
304 |
</div>
|
73 |
echo $this->edit_list( absint( $list ) );
|
74 |
} else { ?>
|
75 |
|
76 |
+
<h1 class=" wp-heading-inline "><span class="text-base font-normal leading-7 text-indigo-600 sm:leading-9 sm:truncate"><a href="admin.php?page=es_subscribers"><?php _e( 'Audience', 'email-subscribers' ); ?> </a>
|
77 |
+
</span> <svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24" class="w-4 h-4 mt-1 inline-block align-middle"><path d="M9 5l7 7-7 7"></path></svg><span class="text-2xl font-medium leading-7 text-gray-900 sm:leading-9 sm:truncate"> <?php _e('Lists', 'email-subscribers'); ?></span> <a href="admin.php?page=es_lists&action=new" class="pt-2 ig-es-title-button px-2 py-2 mx-2"><?php _e('Add New','email-subscribers'); ?></a></h1>
|
78 |
<br>
|
79 |
|
80 |
<div id="poststuff" class="es-items-lists es-lists-table">
|
249 |
<header class="ml-12 mr-8 wp-heading-inline">
|
250 |
<div class="md:flex md:items-center md:justify-between justify-center">
|
251 |
<div class="flex-1 min-w-0">
|
252 |
+
<h2 class="text-2xl font-medium leading-7 text-gray-900 sm:leading-9 sm:truncate">
|
253 |
+
<span class="text-base font-normal leading-7 text-indigo-600 sm:leading-9 sm:truncate">
|
254 |
+
<a href="admin.php?page=es_subscribers"><?php _e('Audience ','email-subscribers'); ?></a></span> <svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24" class="w-3 h-3 mt-1 inline-block align-middle"><path d="M9 5l7 7-7 7"></path></svg>
|
255 |
+
<a class="text-base font-normal leading-7 text-indigo-600 sm:leading-9 sm:truncate" href="admin.php?page=es_lists&action=manage-lists"><?php _e(' Lists ','email-subscribers'); ?></a> <svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24" class="w-3 h-3 mt-1 inline-block align-middle"><path d="M9 5l7 7-7 7"></path></svg>
|
256 |
+
|
257 |
<?php
|
258 |
if ( $is_new ) {
|
259 |
_e( 'Add New', 'email-subscribers' );
|
262 |
}
|
263 |
|
264 |
?>
|
265 |
+
</h2>
|
266 |
</div>
|
267 |
</div>
|
268 |
</header>
|
291 |
</div>
|
292 |
|
293 |
<input type="hidden" name="submitted" value="submitted"/>
|
294 |
+
<input type="submit" name="submit" id="submit" class="cursor-pointer align-middle ig-es-primary-button px-4 py-2 my-4 ml-6 mr-2" value="<?php if ( $is_new ) {
|
295 |
_e( 'Save List', 'email-subscribers' );
|
296 |
}
|
297 |
else{
|
299 |
}
|
300 |
|
301 |
?>"/><!-- <?php submit_button(); ?> -->
|
302 |
+
<a href="admin.php?page=es_lists&action=manage-lists" class="cursor-pointer align-middle rounded-md border border-indigo-600 hover:shadow-md focus:outline-none focus:shadow-outline-indigo text-sm leading-5 font-medium transition ease-in-out duration-150 px-4 my-2 py-2 mx-2 ">Cancel</a>
|
303 |
</form>
|
304 |
</div>
|
305 |
</div>
|
lite/includes/classes/class-es-mailer.php
CHANGED
@@ -131,12 +131,14 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
|
|
131 |
|
132 |
if ( ! $this->limits_set ) {
|
133 |
|
134 |
-
|
|
|
|
|
135 |
|
136 |
// Set 95% of max_execution_time as a max limit. We can reduce it as well
|
137 |
$max_time = (int) ( @ini_get( 'max_execution_time' ) * 0.95 );
|
138 |
-
if ( $max_time == 0 || $max_time >
|
139 |
-
$max_time = (int) (
|
140 |
}
|
141 |
|
142 |
$this->time_limit = $this->time_start + $max_time;
|
@@ -557,6 +559,20 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
|
|
557 |
$message_id = ! empty( $merge_tags['message_id'] ) ? $merge_tags['message_id'] : 0;
|
558 |
$campaign_id = ! empty( $merge_tags['campaign_id'] ) ? $merge_tags['campaign_id'] : 0;
|
559 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
560 |
$subject = $this->prepare_subject( $subject );
|
561 |
|
562 |
$content = $this->prepare_content( $content, $merge_tags, $nl2br );
|
@@ -597,7 +613,7 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
|
|
597 |
|
598 |
do_action( 'ig_es_before_message_send', $contact_id, $campaign_id, $message_id );
|
599 |
|
600 |
-
$message = $this->build_message( $subject, $content, $email, $merge_tags, $nl2br );
|
601 |
|
602 |
//object | WP_Error
|
603 |
$send_response = $this->mailer->send( $message );
|
@@ -633,17 +649,36 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
|
|
633 |
* @param $body
|
634 |
* @param $email
|
635 |
* @param array $merge_tags
|
|
|
636 |
*
|
637 |
* @return ES_Message
|
638 |
*
|
639 |
* @since 4.3.2
|
|
|
|
|
640 |
*/
|
641 |
-
public function build_message( $subject, $body, $email, $merge_tags = array(), $nl2br = false ) {
|
642 |
|
643 |
$message = new ES_Message();
|
644 |
|
645 |
-
$sender_name =
|
646 |
-
$sender_email =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
647 |
|
648 |
$subject = html_entity_decode( $subject, ENT_QUOTES, get_bloginfo( 'charset' ) );
|
649 |
|
@@ -853,7 +888,7 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
|
|
853 |
|
854 |
$subscribe_link = $this->get_subscribe_link( $link_data );
|
855 |
$unsubscribe_link = $this->get_unsubscribe_link( $link_data );
|
856 |
-
|
857 |
$content = str_replace( "{{NAME}}", $name, $content );
|
858 |
$content = str_replace( "{{FIRSTNAME}}", $first_name, $content );
|
859 |
$content = str_replace( "{{LASTNAME}}", $last_name, $content );
|
@@ -1047,7 +1082,7 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
|
|
1047 |
public function can_track_clicks( $contact_id = 0, $campaign_id = 0 ) {
|
1048 |
$is_track_clicks = false;
|
1049 |
|
1050 |
-
return apply_filters( 'ig_es_track_clicks', $is_track_clicks, $contact_id, $campaign_id );
|
1051 |
}
|
1052 |
|
1053 |
/**
|
@@ -1066,7 +1101,7 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
|
|
1066 |
|
1067 |
$is_track_email_opens = get_option( 'ig_es_track_email_opens', 'yes' );
|
1068 |
|
1069 |
-
$is_track_email_opens = apply_filters( 'ig_es_track_open', $is_track_email_opens, $contact_id, $campaign_id );
|
1070 |
|
1071 |
if ( 'yes' === $is_track_email_opens ) {
|
1072 |
return true;
|
@@ -1258,4 +1293,4 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
|
|
1258 |
return $max_count;
|
1259 |
}
|
1260 |
}
|
1261 |
-
}
|
131 |
|
132 |
if ( ! $this->limits_set ) {
|
133 |
|
134 |
+
$cron_interval = ES()->cron->get_cron_interval();
|
135 |
+
|
136 |
+
@set_time_limit( $cron_interval );
|
137 |
|
138 |
// Set 95% of max_execution_time as a max limit. We can reduce it as well
|
139 |
$max_time = (int) ( @ini_get( 'max_execution_time' ) * 0.95 );
|
140 |
+
if ( $max_time == 0 || $max_time > $cron_interval ) {
|
141 |
+
$max_time = (int) ( $cron_interval * 0.95 );
|
142 |
}
|
143 |
|
144 |
$this->time_limit = $this->time_start + $max_time;
|
559 |
$message_id = ! empty( $merge_tags['message_id'] ) ? $merge_tags['message_id'] : 0;
|
560 |
$campaign_id = ! empty( $merge_tags['campaign_id'] ) ? $merge_tags['campaign_id'] : 0;
|
561 |
|
562 |
+
$sender_data = array();
|
563 |
+
if( ! empty( $campaign_id ) ) {
|
564 |
+
$campaign = ES()->campaigns_db->get( $campaign_id );
|
565 |
+
if( ! empty( $campaign ) ) {
|
566 |
+
$campaign_type = $campaign['type'];
|
567 |
+
if( 'newsletter' === $campaign_type ) {
|
568 |
+
$from_name = ! empty( $campaign['from_name'] ) ? $campaign['from_name'] : '';
|
569 |
+
$from_email = ! empty( $campaign['from_email'] ) ? $campaign['from_email'] : '';
|
570 |
+
$sender_data['from_name'] = $from_name;
|
571 |
+
$sender_data['from_email'] = $from_email;
|
572 |
+
}
|
573 |
+
}
|
574 |
+
}
|
575 |
+
|
576 |
$subject = $this->prepare_subject( $subject );
|
577 |
|
578 |
$content = $this->prepare_content( $content, $merge_tags, $nl2br );
|
613 |
|
614 |
do_action( 'ig_es_before_message_send', $contact_id, $campaign_id, $message_id );
|
615 |
|
616 |
+
$message = $this->build_message( $subject, $content, $email, $merge_tags, $nl2br, $sender_data );
|
617 |
|
618 |
//object | WP_Error
|
619 |
$send_response = $this->mailer->send( $message );
|
649 |
* @param $body
|
650 |
* @param $email
|
651 |
* @param array $merge_tags
|
652 |
+
* @param array $sender_data
|
653 |
*
|
654 |
* @return ES_Message
|
655 |
*
|
656 |
* @since 4.3.2
|
657 |
+
*
|
658 |
+
* @since 4.4.7 Added sender data.
|
659 |
*/
|
660 |
+
public function build_message( $subject, $body, $email, $merge_tags = array(), $nl2br = false, $sender_data = array() ) {
|
661 |
|
662 |
$message = new ES_Message();
|
663 |
|
664 |
+
$sender_name = '';
|
665 |
+
$sender_email = '';
|
666 |
+
// If sender data is passed .i.g. set in the campaign then use it.
|
667 |
+
if( ! empty( $sender_data ) ) {
|
668 |
+
$sender_name = ! empty( $sender_data['from_name'] ) ? $sender_data['from_name'] : '';
|
669 |
+
$sender_email = ! empty( $sender_data['from_email'] ) ? $sender_data['from_email'] : '';
|
670 |
+
}
|
671 |
+
|
672 |
+
// If sender name is not passed then fetch it from ES settings.
|
673 |
+
if( empty( $sender_name ) ) {
|
674 |
+
$sender_name = $this->get_from_name();
|
675 |
+
}
|
676 |
+
|
677 |
+
// If sender email is not passed then fetch it from ES settings.
|
678 |
+
if( empty( $sender_email ) ) {
|
679 |
+
$sender_email = $this->get_from_email();
|
680 |
+
}
|
681 |
+
|
682 |
|
683 |
$subject = html_entity_decode( $subject, ENT_QUOTES, get_bloginfo( 'charset' ) );
|
684 |
|
888 |
|
889 |
$subscribe_link = $this->get_subscribe_link( $link_data );
|
890 |
$unsubscribe_link = $this->get_unsubscribe_link( $link_data );
|
891 |
+
|
892 |
$content = str_replace( "{{NAME}}", $name, $content );
|
893 |
$content = str_replace( "{{FIRSTNAME}}", $first_name, $content );
|
894 |
$content = str_replace( "{{LASTNAME}}", $last_name, $content );
|
1082 |
public function can_track_clicks( $contact_id = 0, $campaign_id = 0 ) {
|
1083 |
$is_track_clicks = false;
|
1084 |
|
1085 |
+
return apply_filters( 'ig_es_track_clicks', $is_track_clicks, $contact_id, $campaign_id, $this->link_data );
|
1086 |
}
|
1087 |
|
1088 |
/**
|
1101 |
|
1102 |
$is_track_email_opens = get_option( 'ig_es_track_email_opens', 'yes' );
|
1103 |
|
1104 |
+
$is_track_email_opens = apply_filters( 'ig_es_track_open', $is_track_email_opens, $contact_id, $campaign_id, $this->link_data );
|
1105 |
|
1106 |
if ( 'yes' === $is_track_email_opens ) {
|
1107 |
return true;
|
1293 |
return $max_count;
|
1294 |
}
|
1295 |
}
|
1296 |
+
}
|
lite/includes/classes/class-es-newsletters.php
CHANGED
@@ -22,72 +22,140 @@ class ES_Newsletters {
|
|
22 |
// class constructor
|
23 |
public function __construct() {
|
24 |
add_filter( 'ig_es_refresh_newsletter_content', array( $this, 'refresh_newsletter_content' ), 10, 2 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
}
|
26 |
|
27 |
public static function set_screen( $status, $option, $value ) {
|
28 |
return $value;
|
29 |
}
|
30 |
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
|
|
33 |
|
34 |
-
$
|
35 |
-
$
|
36 |
$broadcast_data = ig_es_get_request_data( 'broadcast_data', array(), false );
|
37 |
-
if ( 'preview' !== $preview ) {
|
38 |
-
if ( 'submitted' === $submitted ) {
|
39 |
-
|
40 |
-
// $email_sent_type = __('Active', 'email-subscribers');
|
41 |
-
$list_id = ! empty( $broadcast_data['list_ids'] ) ? $broadcast_data['list_ids'] : '';
|
42 |
-
$template_id = ! empty( $broadcast_data['template_id'] ) ? $broadcast_data['template_id'] : '';
|
43 |
-
$subject = ! empty( $broadcast_data['subject'] ) ? $broadcast_data['subject'] : '';
|
44 |
-
// $template_id = ig_es_get_request_data( 'ig_es_broadcast_base_template_id' );
|
45 |
-
if ( empty( $broadcast_data['body'] ) ) {
|
46 |
-
// if ( empty( $template_id) ) {
|
47 |
-
$message = __( 'Please add message body or select template', 'email-subscribers' );
|
48 |
-
ES_Common::show_message( $message, 'error' );
|
49 |
-
} elseif ( empty( $list_id ) ) {
|
50 |
-
$message = __( 'Please select list.', 'email-subscribers' );
|
51 |
-
ES_Common::show_message( $message, 'error' );
|
52 |
-
} elseif ( empty( $subject ) ) {
|
53 |
-
$message = __( 'Please add the subject', 'email-subscribers' );
|
54 |
-
ES_Common::show_message( $message, 'error' );
|
55 |
-
} else {
|
56 |
-
$broadcast_data['base_template_id'] = $template_id;
|
57 |
-
$broadcast_data['list_ids'] = $list_id;
|
58 |
-
$broadcast_data['status'] = 1;
|
59 |
-
$meta = ! empty( $broadcast_data['meta'] ) ? $broadcast_data['meta'] : array();
|
60 |
-
$meta['pre_header'] = ! empty( $broadcast_data['pre_header'] ) ? $broadcast_data['pre_header'] : '';
|
61 |
-
$broadcast_data['meta'] = maybe_serialize( $meta );
|
62 |
-
self::es_send_email_callback( $broadcast_data );
|
63 |
-
|
64 |
-
$reports_url = admin_url( 'admin.php?page=es_reports' );
|
65 |
-
$message = __( sprintf( 'A new broadcast has been created successfully! Contacts from selected list will be notified within an hour. Want to notify now? <a href="%s" target="_blank">Click here</a>', $reports_url ), 'email-subscribers' );
|
66 |
-
|
67 |
-
ES_Common::show_message( $message, 'success' );
|
68 |
|
69 |
-
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
}
|
72 |
|
|
|
|
|
|
|
|
|
73 |
}
|
74 |
|
75 |
-
|
76 |
-
|
77 |
-
// $broadcast_data = ig_es_get_request_data( 'broadcast_data', array(), false );
|
78 |
-
if ( empty( $broadcast_data['body'] ) ) {
|
79 |
-
$message = __( 'Please add message content', 'email-subscribers' );
|
80 |
-
ES_Common::show_message( $message, 'error' );
|
81 |
-
$this->prepare_newsletter_settings_form( $broadcast_data );
|
82 |
-
} else {
|
83 |
-
//content validation
|
84 |
-
$template_data['content'] = ! empty( $broadcast_data['body'] ) ? $broadcast_data['body'] : '';
|
85 |
-
$template_data['template_id'] = ! empty( $broadcast_data['template_id'] ) ? $broadcast_data['template_id'] : '';
|
86 |
-
$this->es_broadcast_preview_callback( $template_data );
|
87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
|
|
89 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
}
|
|
|
|
|
91 |
}
|
92 |
|
93 |
/**
|
@@ -97,87 +165,331 @@ class ES_Newsletters {
|
|
97 |
*
|
98 |
* @since 4.4.2 Added $broadcast_data param
|
99 |
*/
|
100 |
-
public function prepare_newsletter_settings_form( $broadcast_data = array() ) {
|
101 |
$newsletter_data = array();
|
102 |
-
$templates = ES_Common::prepare_templates_dropdown_options( 'newsletter' );
|
103 |
-
$lists = ES_Common::prepare_list_dropdown_options();
|
104 |
-
$from_email = ES_Common::get_ig_option( 'from_email' );
|
105 |
|
106 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
$broadcast_email = ! empty( $broadcast_data['from_email'] ) ? $broadcast_data['from_email'] : $from_email;
|
108 |
$broadcast_subject = ! empty( $broadcast_data['subject'] ) ? $broadcast_data['subject'] : '';
|
109 |
$broadcast_pre_header = ! empty( $broadcast_data['pre_header'] ) ? $broadcast_data['pre_header'] : '';
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
?>
|
112 |
|
113 |
-
<div class="wrap">
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
<
|
127 |
-
<div class="
|
128 |
-
<
|
129 |
-
|
130 |
-
|
131 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
</div>
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
</div>
|
152 |
-
<?php do_action( 'ig_es_after_broadcast_left_pan_settings' ); ?>
|
153 |
</div>
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
|
166 |
</div>
|
167 |
-
<?php do_action( 'ig_es_after_broadcast_right_pan_settings' ); ?>
|
168 |
</div>
|
169 |
-
|
170 |
</div>
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
<div class="es-templ-img"></div>
|
175 |
-
</div>
|
176 |
</div>
|
177 |
|
178 |
<?php
|
179 |
-
|
180 |
-
|
181 |
}
|
182 |
|
183 |
public static function es_send_email_callback( $data ) {
|
@@ -187,22 +499,25 @@ class ES_Newsletters {
|
|
187 |
$title = get_the_title( $data['base_template_id'] );
|
188 |
|
189 |
$data['type'] = 'newsletter';
|
190 |
-
$data['name'] =
|
191 |
$data['slug'] = sanitize_title( sanitize_text_field( $data['name'] ) );
|
192 |
|
193 |
$data = apply_filters( 'ig_es_broadcast_data', $data );
|
194 |
|
195 |
if ( ! empty( $data['body'] ) ) {
|
196 |
|
197 |
-
$campaign_id =
|
|
|
|
|
198 |
|
199 |
-
|
200 |
|
201 |
-
|
|
|
202 |
|
203 |
-
|
204 |
-
$guid
|
205 |
-
$data
|
206 |
'hash' => $guid,
|
207 |
'campaign_id' => $campaign_id,
|
208 |
'subject' => $data['subject'],
|
@@ -216,14 +531,28 @@ class ES_Newsletters {
|
|
216 |
'meta' => maybe_serialize( array( 'type' => 'newsletter' ) )
|
217 |
);
|
218 |
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
}
|
228 |
}
|
229 |
|
@@ -252,16 +581,39 @@ class ES_Newsletters {
|
|
252 |
public function es_broadcast_preview_callback( $template_data ) {
|
253 |
|
254 |
$template_id = $template_data['template_id'];
|
|
|
255 |
if ( ! empty( $template_data['content'] ) ) {
|
256 |
$current_user = wp_get_current_user();
|
257 |
$username = $current_user->user_login;
|
258 |
$useremail = $current_user->user_email;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
259 |
|
260 |
$es_template_body = $template_data['content'];
|
261 |
|
262 |
-
$es_template_body = ES_Common::es_process_template_body( $es_template_body, $template_id );
|
263 |
$es_template_body = str_replace( '{{NAME}}', $username, $es_template_body );
|
264 |
$es_template_body = str_replace( '{{EMAIL}}', $useremail, $es_template_body );
|
|
|
|
|
265 |
|
266 |
if ( has_post_thumbnail( $template_id ) ) {
|
267 |
$image_array = wp_get_attachment_image_src( get_post_thumbnail_id( $template_id ), 'full' );
|
@@ -272,42 +624,253 @@ class ES_Newsletters {
|
|
272 |
|
273 |
$html = '';
|
274 |
$html .= '<style type="text/css">
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
<div class="wrap">
|
290 |
-
<div class="tool-box">
|
291 |
-
<div class="es-main" style="display:flex;">
|
292 |
-
<div class="es-sidebar">
|
293 |
-
<h2 style="margin-bottom:1em;">
|
294 |
-
Template Preview <a class="add-new-h2" target="_blank" href="' . admin_url() . 'admin.php?page=es-general-information">Help</a>
|
295 |
-
</h2>
|
296 |
-
<p>
|
297 |
-
This is how your email may look.<br><br>Note: Different email services (like gmail, yahoo etc) display email content differently. So there could be a slight variation on how your customer will view the email content. </p>
|
298 |
-
</div>
|
299 |
-
<div class="es-preview">' . $es_template_body . '</div>
|
300 |
-
<div style="clear:both;"></div>
|
301 |
-
</div>
|
302 |
-
<div style="clear:both;"></div>
|
303 |
-
</div>
|
304 |
-
</div>';
|
305 |
echo apply_filters( 'the_content', $html );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
306 |
} else {
|
307 |
-
|
308 |
}
|
309 |
|
310 |
}
|
311 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
|
313 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
// class constructor
|
23 |
public function __construct() {
|
24 |
add_filter( 'ig_es_refresh_newsletter_content', array( $this, 'refresh_newsletter_content' ), 10, 2 );
|
25 |
+
|
26 |
+
// Ajax handler for drafting broadcast
|
27 |
+
add_action( 'wp_ajax_ig_es_draft_broadcast', array( $this, 'draft_broadcast' ) );
|
28 |
+
|
29 |
+
// Ajax handler for broadcast preview
|
30 |
+
add_action( 'wp_ajax_ig_es_preview_broadcast', array( $this, 'preview_broadcast' ) );
|
31 |
+
|
32 |
+
add_action( 'wp_ajax_ig_es_trigger_broadcast_processing', array( $this, 'trigger_broadcast_processing' ) );
|
33 |
+
|
34 |
+
add_action( 'admin_init', array( $this, 'process_broadcast_submission' ) );
|
35 |
+
|
36 |
+
// Add tracking fields data
|
37 |
+
add_filter( 'ig_es_broadcast_data', array( $this, 'add_tracking_fields_data' ) );
|
38 |
+
|
39 |
+
if ( ! ES()->is_pro() ) {
|
40 |
+
//Add scheduler data
|
41 |
+
add_filter( 'ig_es_broadcast_data', array( &$this, 'es_add_broadcast_scheduler_data' ), 10, 2 );
|
42 |
+
}
|
43 |
+
|
44 |
+
// Check campaign wise open tracking is enabled.
|
45 |
+
add_filter( 'ig_es_track_open', array( $this, 'is_open_tracking_enabled' ), 10, 4 );
|
46 |
}
|
47 |
|
48 |
public static function set_screen( $status, $option, $value ) {
|
49 |
return $value;
|
50 |
}
|
51 |
|
52 |
+
/**
|
53 |
+
* Method to process broadcast submission.
|
54 |
+
*
|
55 |
+
* @since 4.4.7
|
56 |
+
*/
|
57 |
+
public function process_broadcast_submission() {
|
58 |
|
59 |
+
global $wpdb;
|
60 |
+
$submitted = ig_es_get_request_data( 'ig_es_broadcast_submitted' );
|
61 |
$broadcast_data = ig_es_get_request_data( 'broadcast_data', array(), false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
|
63 |
+
if ( 'submitted' === $submitted ) {
|
64 |
+
$list_id = ! empty( $broadcast_data['list_ids'] ) ? $broadcast_data['list_ids'] : '';
|
65 |
+
$template_id = ! empty( $broadcast_data['template_id'] ) ? $broadcast_data['template_id'] : '';
|
66 |
+
$subject = ! empty( $broadcast_data['subject'] ) ? $broadcast_data['subject'] : '';
|
67 |
+
|
68 |
+
// Check if user has added required data for creating broadcast.
|
69 |
+
if ( ! empty( $broadcast_data['subject'] ) && ! empty( $broadcast_data['body'] ) && ! empty( $list_id ) && ! empty( $subject ) ) {
|
70 |
+
$broadcast_data['base_template_id'] = $template_id;
|
71 |
+
$broadcast_data['list_ids'] = $list_id;
|
72 |
+
$broadcast_data['status'] = IG_ES_CAMPAIGN_STATUS_SCHEDULED;
|
73 |
+
$meta = ! empty( $broadcast_data['meta'] ) ? $broadcast_data['meta'] : array();
|
74 |
+
$meta['scheduling_option'] = ! empty( $broadcast_data['scheduling_option'] ) ? $broadcast_data['scheduling_option'] : 'schedule_now';
|
75 |
+
$meta['es_schedule_date'] = ! empty( $broadcast_data['es_schedule_date'] ) ? $broadcast_data['es_schedule_date'] : '';
|
76 |
+
$meta['es_schedule_time'] = ! empty( $broadcast_data['es_schedule_time'] ) ? $broadcast_data['es_schedule_time'] : '';
|
77 |
+
$meta['pre_header'] = ! empty( $broadcast_data['pre_header'] ) ? $broadcast_data['pre_header'] : '';
|
78 |
+
$broadcast_data['meta'] = maybe_serialize( $meta );
|
79 |
+
|
80 |
+
self::es_send_email_callback( $broadcast_data );
|
81 |
+
|
82 |
+
if ( 'schedule_now' === $meta['scheduling_option'] ) {
|
83 |
+
ES()->init_action_scheduler_queue_runner( 'ig_es_trigger_broadcast_processing' );
|
84 |
}
|
85 |
|
86 |
+
$campaign_url = admin_url( 'admin.php?page=es_campaigns&action=broadcast_created' );
|
87 |
+
|
88 |
+
wp_safe_redirect( $campaign_url );
|
89 |
+
exit();
|
90 |
}
|
91 |
|
92 |
+
}
|
93 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
|
95 |
+
public function es_newsletters_settings_callback() {
|
96 |
+
|
97 |
+
global $wpdb;
|
98 |
+
|
99 |
+
$broadcast_id = ig_es_get_request_data( 'list' );
|
100 |
+
$submitted = ig_es_get_request_data( 'ig_es_broadcast_submitted' );
|
101 |
+
$broadcast_data = ig_es_get_request_data( 'broadcast_data', array(), false );
|
102 |
+
$message_data = array();
|
103 |
+
|
104 |
+
if ( 'submitted' === $submitted ) {
|
105 |
+
|
106 |
+
// If form is submitted then broadcast id is sent in $broadcast_data array.
|
107 |
+
$broadcast_id = ! empty( $broadcast_data['id'] ) ? $broadcast_data['id'] : '';
|
108 |
+
$list_id = ! empty( $broadcast_data['list_ids'] ) ? $broadcast_data['list_ids'] : '';
|
109 |
+
$template_id = ! empty( $broadcast_data['template_id'] ) ? $broadcast_data['template_id'] : '';
|
110 |
+
$subject = ! empty( $broadcast_data['subject'] ) ? $broadcast_data['subject'] : '';
|
111 |
+
|
112 |
+
if ( empty( $broadcast_data['subject'] ) ) {
|
113 |
+
$message = __( 'Please add a broadcast subject.', 'email-subscribers' );
|
114 |
+
$message_data = array(
|
115 |
+
'message' => $message,
|
116 |
+
'type' => 'error',
|
117 |
+
);
|
118 |
+
} elseif ( empty( $broadcast_data['body'] ) ) {
|
119 |
+
// if ( empty( $template_id) ) {
|
120 |
+
$message = __( 'Please add message body or select template', 'email-subscribers' );
|
121 |
+
$message_data = array(
|
122 |
+
'message' => $message,
|
123 |
+
'type' => 'error',
|
124 |
+
);
|
125 |
+
} elseif ( empty( $list_id ) ) {
|
126 |
+
$message = __( 'Please select list.', 'email-subscribers' );
|
127 |
+
$message_data = array(
|
128 |
+
'message' => $message,
|
129 |
+
'type' => 'error',
|
130 |
+
);
|
131 |
+
} elseif ( empty( $subject ) ) {
|
132 |
+
$message = __( 'Please add the subject', 'email-subscribers' );
|
133 |
+
$message_data = array(
|
134 |
+
'message' => $message,
|
135 |
+
'type' => 'error',
|
136 |
+
);
|
137 |
}
|
138 |
+
}
|
139 |
|
140 |
+
if ( ! empty( $broadcast_id ) ) {
|
141 |
+
|
142 |
+
$broadcasts = $wpdb->get_results( "SELECT * FROM " . IG_CAMPAIGNS_TABLE . " WHERE id = $broadcast_id LIMIT 0, 1", ARRAY_A );
|
143 |
+
$broadcast = array_shift( $broadcasts );
|
144 |
+
$broadcast_data = array(
|
145 |
+
'id' => $broadcast['id'],
|
146 |
+
'name' => $broadcast['name'],
|
147 |
+
'subject' => $broadcast['subject'],
|
148 |
+
'from_name' => $broadcast['from_name'],
|
149 |
+
'from_email' => $broadcast['from_email'],
|
150 |
+
'body' => $broadcast['body'],
|
151 |
+
'list_ids' => $broadcast['list_ids'],
|
152 |
+
'template_id' => $broadcast['base_template_id'],
|
153 |
+
'status' => $broadcast['status'],
|
154 |
+
'meta' => maybe_unserialize( $broadcast['meta'] ),
|
155 |
+
);
|
156 |
}
|
157 |
+
|
158 |
+
$this->prepare_newsletter_settings_form( $broadcast_data, $message_data );
|
159 |
}
|
160 |
|
161 |
/**
|
165 |
*
|
166 |
* @since 4.4.2 Added $broadcast_data param
|
167 |
*/
|
168 |
+
public function prepare_newsletter_settings_form( $broadcast_data = array(), $message_data = array() ) {
|
169 |
$newsletter_data = array();
|
|
|
|
|
|
|
170 |
|
171 |
+
$template_id = ! empty( $broadcast_data['template_id'] ) ? $broadcast_data['template_id'] : '';
|
172 |
+
$list_ids = ! empty( $broadcast_data['list_ids'] ) ? $broadcast_data['list_ids'] : '';
|
173 |
+
$templates = ES_Common::prepare_templates_dropdown_options( 'newsletter', $template_id );
|
174 |
+
$lists = ES_Common::prepare_list_dropdown_options( $list_ids );
|
175 |
+
$from_email = ES_Common::get_ig_option( 'from_email' );
|
176 |
+
|
177 |
+
$broadcast_id = ! empty( $broadcast_data['id'] ) ? $broadcast_data['id'] : '';
|
178 |
+
$broadcast_from_name = ! empty( $broadcast_data['from_name'] ) ? $broadcast_data['from_name'] : get_option( 'ig_es_from_name' );
|
179 |
$broadcast_email = ! empty( $broadcast_data['from_email'] ) ? $broadcast_data['from_email'] : $from_email;
|
180 |
$broadcast_subject = ! empty( $broadcast_data['subject'] ) ? $broadcast_data['subject'] : '';
|
181 |
$broadcast_pre_header = ! empty( $broadcast_data['pre_header'] ) ? $broadcast_data['pre_header'] : '';
|
182 |
+
$broadcast_status = ! empty( $broadcast_data['status'] ) ? (int) $broadcast_data['status'] : 0;
|
183 |
+
|
184 |
+
// Flag to check if broadcast is not being send or already sent.
|
185 |
+
$is_broadcast_processing = false;
|
186 |
+
|
187 |
+
if ( ! empty( $broadcast_status ) ) {
|
188 |
+
|
189 |
+
$broadcast_allowed_edit_statuses = array(
|
190 |
+
IG_ES_CAMPAIGN_STATUS_ACTIVE,
|
191 |
+
IG_ES_CAMPAIGN_STATUS_IN_ACTIVE,
|
192 |
+
IG_ES_CAMPAIGN_STATUS_SCHEDULED
|
193 |
+
);
|
194 |
+
|
195 |
+
if ( ! in_array( $broadcast_status, $broadcast_allowed_edit_statuses ) ) {
|
196 |
+
$is_broadcast_processing = true;
|
197 |
+
}
|
198 |
+
|
199 |
+
$scheduling_disabled_message = '';
|
200 |
+
if ( IG_ES_CAMPAIGN_STATUS_QUEUED === $broadcast_status ) {
|
201 |
+
$scheduling_disabled_message = __( 'Scheduling is disabled for this broadcast since it is being sent.', 'email-subscribers' );
|
202 |
+
} elseif ( IG_ES_CAMPAIGN_STATUS_FINISHED === $broadcast_status ) {
|
203 |
+
$scheduling_disabled_message = __( 'Scheduling is disabled for this broadcast since it has been sent already.', 'email-subscribers' );
|
204 |
+
}
|
205 |
+
|
206 |
+
if ( ! empty( $scheduling_disabled_message ) ) {
|
207 |
+
$message_data = array(
|
208 |
+
'message' => $scheduling_disabled_message,
|
209 |
+
'type' => 'error',
|
210 |
+
);
|
211 |
+
}
|
212 |
+
}
|
213 |
+
|
214 |
?>
|
215 |
|
216 |
+
<div class="font-sans wrap">
|
217 |
+
<?php
|
218 |
+
if ( ! empty( $message_data ) ) {
|
219 |
+
$message = $message_data['message'];
|
220 |
+
$type = $message_data['type'];
|
221 |
+
ES_Common::show_message( $message, $type );
|
222 |
+
}
|
223 |
+
?>
|
224 |
+
<form action="#" method="POST" id="broadcast_form">
|
225 |
+
<input type="hidden" id="broadcast_id" name="broadcast_data[id]" value="<?php echo esc_attr( $broadcast_id ); ?>"/>
|
226 |
+
<input type="hidden" id="broadcast_status" name="broadcast_data[status]" value="<?php echo esc_attr( $broadcast_status ); ?>"/>
|
227 |
+
<fieldset class="block es_fieldset">
|
228 |
+
<div class="mx-auto wp-heading-inline max-w-7xl sm:px-6 lg:px-3">
|
229 |
+
<header class="mx-auto max-w-7xl sm:px-6 lg:px-4">
|
230 |
+
<div class="pb-2 md:flex md:items-center md:justify-between">
|
231 |
+
<div class="flex md:3/5 lg:w-7/12 xl:w-3/5">
|
232 |
+
<div class="flex min-w-0 md:w-3/5 lg:w-1/2">
|
233 |
+
<span class="pt-1.5 text-base font-normal leading-7 sm:leading-9 sm:truncate text-indigo-600"><a href="admin.php?page=es_campaigns"><?php echo esc_html__( 'Campaigns', 'email-subscribers' ); ?></a></span>
|
234 |
+
<svg class="w-6 h-6 mx-1 mt-4" fill="currentColor" viewBox="0 0 24 24">
|
235 |
+
<path
|
236 |
+
fill-rule="evenodd"
|
237 |
+
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
|
238 |
+
clip-rule="evenodd"
|
239 |
+
></path>
|
240 |
+
</svg>
|
241 |
+
|
242 |
+
<h2 class="pt-1 text-2xl font-medium leading-7 text-gray-900 sm:leading-9 sm:truncate"> <?php echo esc_html__( 'Broadcast', 'email-subscribers' ); ?>
|
243 |
+
</h2>
|
244 |
+
</div>
|
245 |
+
<div class="flex pt-3 md:-mr-8 lg:-mr-16 xl:mr-0 md:ml-8 lg:ml-16 xl:ml-20">
|
246 |
+
<ul id="progressbar" class="overflow-hidden">
|
247 |
+
<li id="content_menu" class="relative float-left px-1 pb-2 text-center list-none cursor-pointer active ">
|
248 |
+
<span class="mt-1 text-base font-medium tracking-wide text-gray-400 active"><?php echo esc_html__( 'Content', 'email-subscribers' ); ?></span>
|
249 |
+
</li>
|
250 |
+
<li id="summary_menu" class="relative float-left px-1 pb-2 ml-5 text-center list-none cursor-pointer hover:border-2 ">
|
251 |
+
<span class="mt-1 text-base font-medium tracking-wide text-gray-400"><?php echo esc_html__( 'Summary', 'email-subscribers' ); ?></span>
|
252 |
+
</li>
|
253 |
+
</ul>
|
254 |
+
</div>
|
255 |
+
</div>
|
256 |
+
<div class="flex mt-4 md:mt-0 md:ml-2 xl:ml-4">
|
257 |
+
|
258 |
+
<div id="broadcast_button" class="inline-block text-left ">
|
259 |
+
<button type="button"
|
260 |
+
class="inline-flex justify-center w-full py-2 text-sm font-medium leading-5 text-indigo-600 transition duration-150 ease-in-out border border-indigo-500 rounded-md cursor-pointer select-none next_btn hover:text-indigo-500 hover:shadow-md focus:outline-none focus:shadow-outline-indigo focus:shadow-lg hover:border-indigo-600 md:px-2 lg:px-3 xl:px-4"><?php echo esc_html__( 'Next',
|
261 |
+
'email-subscribers' ); ?>
|
262 |
+
<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 20 20" class="w-3 h-3 my-1 ml-2 -mr-1 text-indigo-600">
|
263 |
+
<path d="M9 5l7 7-7 7"></path>
|
264 |
+
</svg>
|
265 |
+
</button>
|
266 |
+
</div>
|
267 |
+
|
268 |
+
<div id="broadcast_button1" class="flex hidden mt-4 md:mt-0 md:ml-2 xl:ml-4">
|
269 |
+
<span>
|
270 |
+
<div class="relative inline-block text-left">
|
271 |
+
<span>
|
272 |
+
<button type="button"
|
273 |
+
class="inline-flex justify-center w-full py-2 text-sm font-medium leading-5 text-indigo-600 transition duration-150 ease-in-out border border-indigo-500 rounded-md cursor-pointer select-none pre_btn md:px-1 lg:px-3 xl:px-4 hover:text-indigo-500 hover:border-indigo-600 hover:shadow-md focus:outline-none focus:shadow-outline-indigo focus:shadow-lg ">
|
274 |
+
<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" viewBox="0 0 20 20" class="w-3 h-3 my-1 mr-1"><path d="M15 19l-7-7 7-7"></path></svg><?php echo esc_html__( 'Previous', 'email-subscribers' ); ?>
|
275 |
+
</button>
|
276 |
+
</span>
|
277 |
+
</div>
|
278 |
+
</span>
|
279 |
+
</div>
|
280 |
+
|
281 |
+
<span class="md:ml-2 xl:ml-3">
|
282 |
+
<button type="button" class="inline-flex items-center w-full py-2 text-sm font-medium leading-5 text-gray-700 transition duration-150 ease-in-out bg-white border border-gray-300 rounded-md ig_es_draft_broadcast md:px-2 lg:px-3 xl:px-4 hover:bg-gray-50 focus:outline-none focus:shadow-outline focus:border-blue-300">
|
283 |
+
<?php echo esc_html__( 'Save Draft', 'email-subscribers' ); ?>
|
284 |
+
</button>
|
285 |
+
</span>
|
286 |
+
|
287 |
+
<span id="broadcast_button2" class="hidden md:ml-2 xl:ml-3">
|
288 |
+
<div class="relative inline-block text-left">
|
289 |
+
<span>
|
290 |
+
<?php
|
291 |
+
// If broadcast is sent or being sent then don't allow scheduling to conflicts.
|
292 |
+
if ( ! $is_broadcast_processing ) {
|
293 |
+
?>
|
294 |
+
<button type="submit" id="ig_es_broadcast_submitted" name="ig_es_broadcast_submitted" class="inline-flex justify-center py-2 text-sm font-medium leading-5 text-white transition duration-150 ease-in-out bg-indigo-600 border border-transparent rounded-md md:px-2 lg:px-3 xl:px-4 hover:bg-indigo-500 hover:text-white"
|
295 |
+
value="submitted">
|
296 |
+
<?php if ( ES()->is_pro() ) {
|
297 |
+
echo esc_html__( 'Schedule', 'email-subscribers' );
|
298 |
+
} else {
|
299 |
+
echo esc_html__( 'Send', 'email-subscribers' );
|
300 |
+
}
|
301 |
+
}
|
302 |
+
?>
|
303 |
+
</button>
|
304 |
+
|
305 |
+
</span>
|
306 |
+
</div>
|
307 |
+
</span>
|
308 |
+
|
309 |
+
</div>
|
310 |
</div>
|
311 |
+
</header>
|
312 |
+
</div>
|
313 |
+
<div class="mx-auto max-w-7xl sm:px-8 lg:px-7">
|
314 |
+
<hr class="wp-header-end">
|
315 |
+
</div>
|
316 |
+
<div class="px-4 mx-auto my-4 es_broadcast_first max-w-7xl sm:px-6 lg:px-3">
|
317 |
+
<div class="sm:px-6 lg:px-4">
|
318 |
+
<div class="py-4 bg-white rounded-lg shadow-md md:flex">
|
319 |
+
<div class="broadcast_main_content pl-2">
|
320 |
+
<div class="block px-4 py-2">
|
321 |
+
<label for="ig_es_broadcast_subject" class="text-sm font-medium leading-5 text-gray-700"><?php echo esc_html__( 'Subject', 'email-subscribers' ); ?></label>
|
322 |
+
<input id="ig_es_broadcast_subject" class="block w-full mt-1 text-sm leading-5 border-gray-400 rounded-md shadow-sm form-input" name="broadcast_data[subject]" value="<?php echo esc_attr( $broadcast_subject ); ?>"/>
|
323 |
+
</div>
|
324 |
+
<div class="block px-4 py-2">
|
325 |
+
<label for="from_name" class="text-sm font-medium leading-5 text-gray-700 "><?php echo esc_html__( 'From Name', 'email-subscribers' ); ?></label>
|
326 |
+
<input id="from_name" class="block w-full mt-1 text-sm leading-5 border-gray-400 rounded-md shadow-sm form-input" name="broadcast_data[from_name]" value="<?php echo esc_attr( $broadcast_from_name ); ?>"/>
|
327 |
+
</div>
|
328 |
+
<div class="block px-4 py-2">
|
329 |
+
<label for="from_email" class="text-sm font-medium leading-5 text-gray-700"><?php echo esc_html__( 'From Email', 'email-subscribers' ); ?></label>
|
330 |
+
<input id="from_email" class="block w-full mt-1 text-sm leading-5 border-gray-400 rounded-md shadow-sm form-input" name="broadcast_data[from_email]" value="<?php echo esc_attr( $broadcast_email ); ?>"/>
|
331 |
+
</div>
|
332 |
+
|
333 |
+
<div class="w-full px-4 pt-1 pb-2 mt-1">
|
334 |
+
<label for="message" class="text-sm font-medium leading-5 text-gray-700"><?php echo esc_html__( 'Message', 'email-subscribers' ); ?></label>
|
335 |
+
<?php
|
336 |
+
$body = ! empty( $broadcast_data['body'] ) ? $broadcast_data['body'] : '';
|
337 |
+
$editor_args = array(
|
338 |
+
'textarea_name' => 'broadcast_data[body]',
|
339 |
+
'textarea_rows' => 40,
|
340 |
+
'media_buttons' => true,
|
341 |
+
'tinymce' => true,
|
342 |
+
'quicktags' => true,
|
343 |
+
'editor_class' => 'wp-editor-boradcast',
|
344 |
+
);
|
345 |
+
wp_editor( $body, 'edit-es-boradcast-body', $editor_args );
|
346 |
+
?>
|
347 |
+
</div>
|
348 |
+
<?php do_action( 'ig_es_after_broadcast_left_pan_settings', $broadcast_data ); ?>
|
349 |
+
</div>
|
350 |
+
<div class="broadcast_side_content ml-2 mr-4 bg-gray-100 rounded-md">
|
351 |
+
<div class="block mt-0.5 mx-4 py-2">
|
352 |
+
<label for="template" class="text-sm font-medium leading-5 text-gray-700"><?php echo esc_html__( 'Design Template', 'email-subscribers' ); ?></label>
|
353 |
+
<select class="block w-full h-8 mt-1 text-sm rounded-md cursor-pointer h-9 form-select" name="broadcast_data[template_id]" id="base_template_id">
|
354 |
+
<?php echo $templates ?>
|
355 |
+
</select>
|
356 |
+
</div>
|
357 |
+
<div class="block py-2 mx-4 ">
|
358 |
+
<label for="recipients" class="text-sm font-medium leading-5 text-gray-700"><?php echo esc_html__( 'Recipients', 'email-subscribers' ); ?></label>
|
359 |
+
<select class="block w-full h-8 mt-1 text-sm rounded-md cursor-pointer h-9 form-select" name="broadcast_data[list_ids]" id="ig_es_broadcast_list_ids">
|
360 |
+
<?php echo $lists ?>
|
361 |
+
</select>
|
362 |
+
|
363 |
+
<div class="block mt-1">
|
364 |
+
<span id="ig_es_total_contacts"></span>
|
365 |
+
</div>
|
366 |
+
</div>
|
367 |
+
|
368 |
+
<div class="block py-2 mx-4">
|
369 |
+
<span class="block pt-2 text-sm font-medium leading-5 text-gray-700 border-t border-gray-200"><?php echo esc_html__( 'Preview', 'email-subscribers' ); ?></span>
|
370 |
+
<div class="py-2">
|
371 |
+
<input type="radio" name="preview_option" class="form-radio" id="preview_in_popup" value="preview_in_popup" checked>
|
372 |
+
<label for="preview_in_popup" class="text-sm font-normal text-gray-600"><?php echo esc_html__( 'Browser', 'email-subscribers' ); ?>
|
373 |
+
</label>
|
374 |
+
<br>
|
375 |
+
</div>
|
376 |
+
|
377 |
+
<!--
|
378 |
+
<label class=" text-sm font-medium leading-5 text-gray-700"><?php echo esc_html__( 'Preview', 'email-subscribers' ); ?></label>
|
379 |
+
<button type="button" id="es_preview_template"
|
380 |
+
class="rounded-md border text-indigo-600 border-indigo-500 text-sm leading-5 font-medium transition ease-in-out duration-150 select-none inline-flex justify-center hover:text-indigo-500 hover:border-indigo-600 hover:shadow-md focus:outline-none focus:shadow-outline-indigo focus:shadow-lg px-3 py-1.5 mx-2">
|
381 |
+
<?php echo esc_html__( 'In Browser', 'email-subscribers' ); ?>
|
382 |
+
</button> -->
|
383 |
+
|
384 |
+
<img class="es-loader inline-flex align-middle" src="<?php echo ES_PLUGIN_URL ?>lite/public/images/spinner.gif" style="display:none;"/>
|
385 |
+
|
386 |
+
<div class="hidden" id="preview_template">
|
387 |
+
<div class="fixed top-0 left-0 z-50 flex items-center justify-center w-full h-full" style="background-color: rgba(0,0,0,.5);">
|
388 |
+
<div class="absolute h-auto p-4 ml-16 mr-4 text-left bg-white rounded shadow-xl z-80 md:max-w-5xl md:p-6 lg:p-8 ">
|
389 |
+
<h3 class="text-2xl text-center"><?php echo esc_html__( 'Template Preview', 'email-subscribers' ); ?></h3>
|
390 |
+
<p class="m-4 text-center"><?php echo esc_html__( 'There could be a slight variation on how your customer will view the email content.', 'email-subscribers' ); ?></p>
|
391 |
+
<div class="m-4 list-decimal broadcast_preview_container">
|
392 |
+
</div>
|
393 |
+
<div class="flex justify-center mt-8">
|
394 |
+
<button id="close_template" class="px-4 py-2 text-sm font-medium tracking-wide text-gray-700 border rounded select-none no-outline focus:outline-none focus:shadow-outline-red hover:border-red-400 active:shadow-lg "><?php echo esc_html__( 'Close', 'email-subscribers' ); ?></button>
|
395 |
+
</div>
|
396 |
+
</div>
|
397 |
+
</div>
|
398 |
+
</div>
|
399 |
+
|
400 |
+
<?php do_action( 'ig_es_after_broadcast_content_left_pan_settings', $broadcast_data ); ?>
|
401 |
+
|
402 |
+
<button id="es_test_email_btn" type="button"
|
403 |
+
class="rounded-md border text-indigo-600 border-indigo-500 text-sm leading-5 font-medium transition ease-in-out duration-150 select-none inline-flex justify-center hover:text-indigo-500 hover:border-indigo-600 hover:shadow-md focus:outline-none focus:shadow-outline-indigo focus:shadow-lg mt-1 px-4 py-2">
|
404 |
+
<span><?php echo esc_html__( 'Preview', 'email-subscribers' ); ?></span>
|
405 |
+
</button>
|
406 |
+
<img class="es-loader inline-flex align-middle pl-2 h-5 w-7" src="<?php echo ES_PLUGIN_URL ?>lite/admin/images/spinner-2x.gif" style="display:none;"/>
|
407 |
+
<br/><span class="es-send-success es-icon" style="display:none;"><?php _e( 'Email Sent Successfully ', 'email-subscribers' ) ?></span>
|
408 |
+
<br/><span class="es-send-error es-icon" style="display:none;"><?php _e( 'Something went wrong. Please try again later', 'email-subscribers' ) ?></span>
|
409 |
+
</div>
|
410 |
+
</div>
|
411 |
</div>
|
|
|
412 |
</div>
|
413 |
+
</fieldset>
|
414 |
+
|
415 |
+
<fieldset class="es_fieldset">
|
416 |
+
|
417 |
+
<div class="hidden px-4 mx-auto my-4 es_broadcast_second max-w-7xl sm:px-6 lg:px-3">
|
418 |
+
<?php
|
419 |
+
$inline_preview_data = $this->get_broadcast_inline_preview_data( $broadcast_data );
|
420 |
+
?>
|
421 |
+
<div class="max-w-7xl sm:px-6 lg:px-4">
|
422 |
+
<div class="py-4 bg-white rounded-lg shadow md:flex">
|
423 |
+
<div class="broadcast_main_content pt-3 pl-2">
|
424 |
+
<div class="block pb-2 mx-4">
|
425 |
+
<span class="text-sm font-medium text-gray-500"><?php echo esc_html__( 'Email Content Preview', 'email-subscribers' ); ?></span>
|
426 |
+
</div>
|
427 |
+
|
428 |
+
<div class="block pb-2 mx-4 mt-4 inline_broadcast_preview_container">
|
429 |
+
<div class="block">
|
430 |
+
<span class="text-2xl font-normal text-gray-600 broadcast_preview_subject"><?php echo ! empty( $broadcast_data['subject'] ) ? esc_html( $broadcast_data['subject'] ) : ''; ?></span>
|
431 |
+
</div>
|
432 |
+
<div class="block mt-3">
|
433 |
+
<span class="text-sm font-bold text-gray-800 broadcast_preview_contact_name"><?php echo ! empty( $inline_preview_data['contact_name'] ) ? $inline_preview_data['contact_name'] : ''; ?></span>
|
434 |
+
<span class="pl-1 text-sm font-medium text-gray-700 broadcast_preview_contact_email"><?php echo ! empty( $inline_preview_data['contact_email'] ) ? "<" . $inline_preview_data['contact_email'] . ">" : ''; ?></span>
|
435 |
+
</div>
|
436 |
+
<div class="block mt-3 broadcast_preview_content">
|
437 |
+
<?php
|
438 |
+
if ( ! empty( $broadcast_data['body'] ) ) {
|
439 |
+
$template_data['content'] = ! empty( $broadcast_data['body'] ) ? $broadcast_data['body'] : '';
|
440 |
+
$template_data['template_id'] = ! empty( $broadcast_data['template_id'] ) ? $broadcast_data['template_id'] : '';
|
441 |
+
$tempate_html = '';
|
442 |
+
ob_start();
|
443 |
+
$this->es_broadcast_preview_callback( $template_data );
|
444 |
+
$tempate_html = ob_get_clean();
|
445 |
+
echo $tempate_html;
|
446 |
+
}
|
447 |
+
?>
|
448 |
+
</div>
|
449 |
+
</div>
|
450 |
+
|
451 |
+
</div>
|
452 |
+
|
453 |
+
<div class="broadcast_side_content ml-2 mr-4 bg-gray-100 rounded-md">
|
454 |
+
<div id="ig_es_total_recipients" class="block mt-1.5 mx-4 py-2 border-b border-gray-200">
|
455 |
+
|
456 |
+
</div>
|
457 |
+
|
458 |
+
<?php do_action( 'ig_es_after_broadcast_right_pan_settings', $broadcast_data ); ?>
|
459 |
+
|
460 |
+
<div class="block w-full px-4 py-2">
|
461 |
+
<?php
|
462 |
+
$enable_open_tracking = ! empty( $broadcast_data['meta']['enable_open_tracking'] ) ? $broadcast_data['meta']['enable_open_tracking'] : get_option( 'ig_es_track_email_opens', 'yes' );
|
463 |
+
?>
|
464 |
+
<div class="flex w-full pt-2 border-t border-gray-200">
|
465 |
+
<div class="w-11/12 text-sm font-normal text-gray-600"><?php echo esc_html__( 'Open Tracking', 'email-subscribers' ); ?>
|
466 |
+
</div>
|
467 |
+
<div>
|
468 |
+
<label for="enable_open_tracking" class="inline-flex items-center cursor-pointer ">
|
469 |
+
<span class="relative">
|
470 |
+
<input id="enable_open_tracking" type="checkbox" class="absolute w-0 h-0 opacity-0 es-check-toggle"
|
471 |
+
name="broadcast_data[meta][enable_open_tracking]" value="yes" <?php checked( $enable_open_tracking, 'yes' ); ?>/>
|
472 |
+
<span class="block w-8 h-5 bg-gray-300 rounded-full shadow-inner es-mail-toggle-line"></span>
|
473 |
+
<span class="absolute inset-y-0 left-0 block w-3 h-3 mt-1 ml-1 transition-all duration-300 ease-in-out bg-white rounded-full shadow es-mail-toggle-dot focus-within:shadow-outline"></span>
|
474 |
+
</span>
|
475 |
+
</label>
|
476 |
+
</div>
|
477 |
+
</div>
|
478 |
+
<?php do_action( 'ig_es_after_broadcast_tracking_options_settings', $broadcast_data ); ?>
|
479 |
+
</div>
|
480 |
+
|
481 |
+
<?php do_action( 'ig_es_broadcast_scheduling_options_settings', $broadcast_data ); ?>
|
482 |
+
</div>
|
483 |
|
484 |
</div>
|
|
|
485 |
</div>
|
|
|
486 |
</div>
|
487 |
+
|
488 |
+
</fieldset>
|
489 |
+
</form>
|
|
|
|
|
490 |
</div>
|
491 |
|
492 |
<?php
|
|
|
|
|
493 |
}
|
494 |
|
495 |
public static function es_send_email_callback( $data ) {
|
499 |
$title = get_the_title( $data['base_template_id'] );
|
500 |
|
501 |
$data['type'] = 'newsletter';
|
502 |
+
$data['name'] = $data['subject'];
|
503 |
$data['slug'] = sanitize_title( sanitize_text_field( $data['name'] ) );
|
504 |
|
505 |
$data = apply_filters( 'ig_es_broadcast_data', $data );
|
506 |
|
507 |
if ( ! empty( $data['body'] ) ) {
|
508 |
|
509 |
+
$campaign_id = ! empty( $data['id'] ) ? $data['id'] : 0;
|
510 |
+
|
511 |
+
if ( ! empty( $campaign_id ) ) {
|
512 |
|
513 |
+
ES()->campaigns_db->save_campaign( $data, $campaign_id );
|
514 |
|
515 |
+
$notification = ES_DB_Mailing_Queue::get_notification_by_campaign_id( $campaign_id );
|
516 |
+
$data['body'] = ES_Common::es_process_template_body( $data['body'], $data['base_template_id'], $campaign_id );
|
517 |
|
518 |
+
$subscribers = ES()->contacts_db->get_active_contacts_by_list_id( $list_id );
|
519 |
+
$guid = ES_Common::generate_guid( 6 );
|
520 |
+
$data = array(
|
521 |
'hash' => $guid,
|
522 |
'campaign_id' => $campaign_id,
|
523 |
'subject' => $data['subject'],
|
531 |
'meta' => maybe_serialize( array( 'type' => 'newsletter' ) )
|
532 |
);
|
533 |
|
534 |
+
if ( empty( $notification ) ) {
|
535 |
+
$last_report_id = ES_DB_Mailing_Queue::add_notification( $data );
|
536 |
+
if ( ! empty( $subscribers ) && count( $subscribers ) > 0 ) {
|
537 |
+
$delivery_data = array();
|
538 |
+
$delivery_data['hash'] = $guid;
|
539 |
+
$delivery_data['subscribers'] = $subscribers;
|
540 |
+
$delivery_data['campaign_id'] = $campaign_id;
|
541 |
+
$delivery_data['mailing_queue_id'] = $last_report_id;
|
542 |
+
ES_DB_Sending_Queue::do_batch_insert( $delivery_data );
|
543 |
+
}
|
544 |
+
} else {
|
545 |
+
$notification_id = $notification['id'];
|
546 |
+
$notification_status = $notification['status'];
|
547 |
+
// Check if notification is not sending or already sent then only update the notification.
|
548 |
+
if ( ! in_array( $notification_status, array( 'Sending', 'Sent' ), true ) ) {
|
549 |
+
// Don't update this data.
|
550 |
+
$data['hash'] = $notification['hash'];
|
551 |
+
$data['campaign_id'] = $notification['campaign_id'];
|
552 |
+
$data['created_at'] = $notification['created_at'];
|
553 |
+
$notification = ES_DB_Mailing_Queue::update_notification( $notification_id, $data );
|
554 |
+
}
|
555 |
+
}
|
556 |
}
|
557 |
}
|
558 |
|
581 |
public function es_broadcast_preview_callback( $template_data ) {
|
582 |
|
583 |
$template_id = $template_data['template_id'];
|
584 |
+
$campaign_id = ! empty( $template_data['campaign_id'] ) ? $template_data['campaign_id'] : 0;
|
585 |
if ( ! empty( $template_data['content'] ) ) {
|
586 |
$current_user = wp_get_current_user();
|
587 |
$username = $current_user->user_login;
|
588 |
$useremail = $current_user->user_email;
|
589 |
+
$display_name = $current_user->display_name;
|
590 |
+
|
591 |
+
$contact_id = ES()->contacts_db->get_contact_id_by_email( $useremail );
|
592 |
+
$first_name = '';
|
593 |
+
$last_name = '';
|
594 |
+
|
595 |
+
// Use details from contacts data if present else fetch it from wp profile.
|
596 |
+
if ( ! empty( $contact_id ) ) {
|
597 |
+
$contact_data = ES()->contacts_db->get_by_id( $contact_id );
|
598 |
+
$first_name = $contact_data['first_name'];
|
599 |
+
$last_name = $contact_data['last_name'];
|
600 |
+
} elseif ( ! empty( $display_name ) ) {
|
601 |
+
$contact_details = explode( ' ', $display_name );
|
602 |
+
$first_name = $contact_details[0];
|
603 |
+
// Check if last name is set.
|
604 |
+
if ( ! empty( $contact_details[1] ) ) {
|
605 |
+
$last_name = $contact_details[1];
|
606 |
+
}
|
607 |
+
}
|
608 |
+
//$first_name =
|
609 |
|
610 |
$es_template_body = $template_data['content'];
|
611 |
|
612 |
+
$es_template_body = ES_Common::es_process_template_body( $es_template_body, $template_id, $campaign_id );
|
613 |
$es_template_body = str_replace( '{{NAME}}', $username, $es_template_body );
|
614 |
$es_template_body = str_replace( '{{EMAIL}}', $useremail, $es_template_body );
|
615 |
+
$es_template_body = str_replace( '{{FIRSTNAME}}', $first_name, $es_template_body );
|
616 |
+
$es_template_body = str_replace( '{{LASTNAME}}', $last_name, $es_template_body );
|
617 |
|
618 |
if ( has_post_thumbnail( $template_id ) ) {
|
619 |
$image_array = wp_get_attachment_image_src( get_post_thumbnail_id( $template_id ), 'full' );
|
624 |
|
625 |
$html = '';
|
626 |
$html .= '<style type="text/css">
|
627 |
+
.es-preview {
|
628 |
+
background-color:#FFF;
|
629 |
+
font-size:16px;
|
630 |
+
}
|
631 |
+
</style>
|
632 |
+
<div class="wrap">
|
633 |
+
<div class="tool-box">
|
634 |
+
<div class="es-main" style="display:flex;">
|
635 |
+
<div class="es-preview broadcast-preview">' . $es_template_body . '</div>
|
636 |
+
<div style="clear:both;"></div>
|
637 |
+
</div>
|
638 |
+
<div style="clear:both;"></div>
|
639 |
+
</div>
|
640 |
+
</div>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
641 |
echo apply_filters( 'the_content', $html );
|
642 |
+
}
|
643 |
+
|
644 |
+
}
|
645 |
+
|
646 |
+
/**
|
647 |
+
* Method to draft a broadcast
|
648 |
+
*
|
649 |
+
* @return $response Broadcast response.
|
650 |
+
*
|
651 |
+
* @since 4.4.7
|
652 |
+
*/
|
653 |
+
public function draft_broadcast() {
|
654 |
+
|
655 |
+
check_ajax_referer( 'ig-es-admin-ajax-nonce', 'security' );
|
656 |
+
|
657 |
+
$response = array();
|
658 |
+
|
659 |
+
$broadcast_data = ig_es_get_request_data( 'broadcast_data', array(), false );
|
660 |
+
|
661 |
+
$broadcast_id = ! empty( $broadcast_data['id'] ) ? $broadcast_data['id'] : null;
|
662 |
+
$is_updating = ! empty( $broadcast_id ) ? true : false;
|
663 |
+
$list_id = ! empty( $broadcast_data['list_ids'] ) ? $broadcast_data['list_ids'] : '';
|
664 |
+
$template_id = ! empty( $broadcast_data['template_id'] ) ? $broadcast_data['template_id'] : '';
|
665 |
+
$subject = ! empty( $broadcast_data['subject'] ) ? $broadcast_data['subject'] : '';
|
666 |
+
|
667 |
+
$broadcast_data['base_template_id'] = $template_id;
|
668 |
+
$broadcast_data['list_ids'] = $list_id;
|
669 |
+
$broadcast_data['status'] = ! empty( $broadcast_data['status'] ) ? 1 : 0;
|
670 |
+
$meta = ! empty( $broadcast_data['meta'] ) ? $broadcast_data['meta'] : array();
|
671 |
+
$meta['pre_header'] = ! empty( $broadcast_data['pre_header'] ) ? $broadcast_data['pre_header'] : '';
|
672 |
+
$broadcast_data['meta'] = maybe_serialize( $meta );
|
673 |
+
|
674 |
+
$broadcast_data['type'] = 'newsletter';
|
675 |
+
$broadcast_data['name'] = $broadcast_data['subject'];
|
676 |
+
$broadcast_data['slug'] = sanitize_title( sanitize_text_field( $broadcast_data['name'] ) );
|
677 |
+
|
678 |
+
$broadcast_data = apply_filters( 'ig_es_broadcast_data', $broadcast_data );
|
679 |
+
|
680 |
+
$result = ES()->campaigns_db->save_campaign( $broadcast_data, $broadcast_id );
|
681 |
+
|
682 |
+
if ( ! empty( $result ) ) {
|
683 |
+
if ( ! $is_updating ) {
|
684 |
+
// In case of insert, result is broadcast id.
|
685 |
+
$response['broadcast_id'] = $result;
|
686 |
+
} else {
|
687 |
+
// In case of update, only update flag is returned.
|
688 |
+
$response['broadcast_id'] = $broadcast_id;
|
689 |
+
}
|
690 |
+
wp_send_json_success( $response );
|
691 |
} else {
|
692 |
+
wp_send_json_error();
|
693 |
}
|
694 |
|
695 |
}
|
696 |
|
697 |
+
/**
|
698 |
+
* Method to get preview HTML for broadcast
|
699 |
+
*
|
700 |
+
* @return $response
|
701 |
+
*
|
702 |
+
* @since 4.4.7
|
703 |
+
*/
|
704 |
+
public function preview_broadcast() {
|
705 |
|
706 |
+
check_ajax_referer( 'ig-es-admin-ajax-nonce', 'security' );
|
707 |
+
|
708 |
+
$response = array();
|
709 |
+
|
710 |
+
$preview_type = ig_es_get_request_data( 'preview_type' );
|
711 |
+
$broadcast_data = ig_es_get_request_data( 'broadcast_data', array(), false );
|
712 |
+
|
713 |
+
$template_data['content'] = ! empty( $broadcast_data['body'] ) ? $broadcast_data['body'] : '';
|
714 |
+
$template_data['template_id'] = ! empty( $broadcast_data['template_id'] ) ? $broadcast_data['template_id'] : '';
|
715 |
+
$template_data['campaign_id'] = ! empty( $broadcast_data['id'] ) ? $broadcast_data['id'] : 0;
|
716 |
+
|
717 |
+
$tempate_html = '';
|
718 |
+
ob_start();
|
719 |
+
$this->es_broadcast_preview_callback( $template_data );
|
720 |
+
$tempate_html = ob_get_clean();
|
721 |
+
$response['template_html'] = $tempate_html;
|
722 |
+
|
723 |
+
if ( 'inline' === $preview_type ) {
|
724 |
+
$inline_preview_data = $this->get_broadcast_inline_preview_data( $broadcast_data );
|
725 |
+
$response = array_merge( $response, $inline_preview_data );
|
726 |
+
}
|
727 |
+
|
728 |
+
if ( ! empty( $response ) ) {
|
729 |
+
wp_send_json_success( $response );
|
730 |
+
} else {
|
731 |
+
wp_send_json_error();
|
732 |
+
}
|
733 |
+
|
734 |
+
}
|
735 |
+
|
736 |
+
/**
|
737 |
+
* Method to get broadcast inline preview data.
|
738 |
+
*
|
739 |
+
* @param array $broadcast_data Broadcast data.
|
740 |
+
*
|
741 |
+
* @return array $preview_data
|
742 |
+
*
|
743 |
+
* @since 4.4.7
|
744 |
+
*/
|
745 |
+
public function get_broadcast_inline_preview_data( $broadcast_data = array() ) {
|
746 |
+
$list_id = ! empty( $broadcast_data['list_ids'] ) ? $broadcast_data['list_ids'] : 0;
|
747 |
+
$preview_data = array();
|
748 |
+
$first_name = '';
|
749 |
+
$last_name = '';
|
750 |
+
$email = '';
|
751 |
+
|
752 |
+
if ( ! empty( $list_id ) ) {
|
753 |
+
$subscribed_contacts = ES()->lists_contacts_db->get_subscribed_contacts_from_list( $list_id );
|
754 |
+
if ( ! empty( $subscribed_contacts ) ) {
|
755 |
+
$subscribed_contact = array_shift( $subscribed_contacts );
|
756 |
+
$contact_id = ! empty( $subscribed_contact['contact_id'] ) ? $subscribed_contact['contact_id'] : 0;
|
757 |
+
if ( ! empty( $contact_id ) ) {
|
758 |
+
$subscriber_data = ES()->contacts_db->get_by_id( $contact_id );
|
759 |
+
if ( ! empty( $subscriber_data ) ) {
|
760 |
+
$first_name = ! empty( $subscriber_data['first_name'] ) ? $subscriber_data['first_name'] : '';
|
761 |
+
$last_name = ! empty( $subscriber_data['last_name'] ) ? $subscriber_data['first_name'] : '';
|
762 |
+
$email = ! empty( $subscriber_data['email'] ) ? $subscriber_data['email'] : '';
|
763 |
+
}
|
764 |
+
}
|
765 |
+
}
|
766 |
+
}
|
767 |
+
|
768 |
+
$preview_data['broadcast_subject'] = ! empty( $broadcast_data['subject'] ) ? esc_html( $broadcast_data['subject'] ) : '';
|
769 |
+
$preview_data['contact_name'] = esc_html( $first_name . ' ' . $last_name );
|
770 |
+
$preview_data['contact_email'] = esc_html( $email );
|
771 |
+
|
772 |
+
return $preview_data;
|
773 |
+
}
|
774 |
+
|
775 |
+
/**
|
776 |
+
* Method to trigger immediate processing of broadcast with "Send Now" option.
|
777 |
+
*
|
778 |
+
* @return void
|
779 |
+
*
|
780 |
+
* @since 4.4.7
|
781 |
+
*/
|
782 |
+
public function trigger_broadcast_processing() {
|
783 |
+
|
784 |
+
// Start processing of broadcast which are scheduled for current date time.
|
785 |
+
do_action( 'ig_es_cron_worker' );
|
786 |
+
}
|
787 |
+
|
788 |
+
/**
|
789 |
+
* Function to add values of checkbox fields incase they are not checked.
|
790 |
+
*
|
791 |
+
* @param array $broadcast_data
|
792 |
+
*
|
793 |
+
* @return array $broadcast_data
|
794 |
+
*
|
795 |
+
* @since 4.4.7
|
796 |
+
*
|
797 |
+
*/
|
798 |
+
public function add_tracking_fields_data( $broadcast_data = array() ) {
|
799 |
+
|
800 |
+
$broadcast_meta = ! empty( $broadcast_data['meta'] ) ? maybe_unserialize( $broadcast_data['meta'] ) : array();
|
801 |
+
|
802 |
+
if ( empty( $broadcast_meta['enable_open_tracking'] ) ) {
|
803 |
+
$broadcast_meta['enable_open_tracking'] = 'no';
|
804 |
+
}
|
805 |
+
|
806 |
+
$broadcast_data['meta'] = maybe_serialize( $broadcast_meta );
|
807 |
+
|
808 |
+
return $broadcast_data;
|
809 |
+
}
|
810 |
+
|
811 |
+
/**
|
812 |
+
* Add required broadcast schedule date/time data
|
813 |
+
*
|
814 |
+
* @param array $data
|
815 |
+
*
|
816 |
+
* @return array $data
|
817 |
+
*
|
818 |
+
* @since 4.4.7
|
819 |
+
*/
|
820 |
+
public function es_add_broadcast_scheduler_data( $data ) {
|
821 |
+
|
822 |
+
$scheduling_option = ! empty( $data['scheduling_option'] ) ? $data['scheduling_option'] : 'schedule_now';
|
823 |
+
|
824 |
+
$schedule_str = '';
|
825 |
+
|
826 |
+
if ( 'schedule_now' === $scheduling_option ) {
|
827 |
+
// Get time without GMT offset, as we are adding later on.
|
828 |
+
$schedule_str = current_time( 'timestamp', false );
|
829 |
+
}
|
830 |
+
|
831 |
+
if ( ! empty( $schedule_str ) ) {
|
832 |
+
$gmt_offset_option = get_option( 'gmt_offset' );
|
833 |
+
$gmt_offset = ( ! empty( $gmt_offset_option ) ) ? $gmt_offset_option : 0;
|
834 |
+
$schedule_date = date( 'Y-m-d H:i:s', $schedule_str - ( $gmt_offset * HOUR_IN_SECONDS ) );
|
835 |
+
|
836 |
+
$data['start_at'] = $schedule_date;
|
837 |
+
$meta = ! empty( $data['meta'] ) ? maybe_unserialize( $data['meta'] ) : array();
|
838 |
+
$meta['type'] = 'one_time';
|
839 |
+
$meta['date'] = $schedule_date;
|
840 |
+
$data['meta'] = maybe_serialize( $meta );
|
841 |
+
}
|
842 |
+
|
843 |
+
return $data;
|
844 |
+
}
|
845 |
+
|
846 |
+
/**
|
847 |
+
* Method to check if open tracking is enabled broadcast wise.
|
848 |
+
*
|
849 |
+
* @param bool $is_track_email_opens Is open tracking enabled.
|
850 |
+
* @param int $contact_id Contact ID.
|
851 |
+
* @param int $campaign_id Campaign ID.
|
852 |
+
* @param array $link_data Link data.
|
853 |
+
*
|
854 |
+
* @return bool $is_track_email_opens Is open tracking enabled.
|
855 |
+
*
|
856 |
+
* @since 4.4.7
|
857 |
+
*
|
858 |
+
*/
|
859 |
+
public function is_open_tracking_enabled( $is_track_email_opens, $contact_id, $campaign_id, $link_data ) {
|
860 |
+
if ( ! empty( $link_data ) ) {
|
861 |
+
$campaign_id = ! empty( $link_data['campaign_id'] ) ? $link_data['campaign_id'] : 0;
|
862 |
+
if ( ! empty( $campaign_id ) ) {
|
863 |
+
$campaign = ES()->campaigns_db->get( $campaign_id );
|
864 |
+
if ( ! empty( $campaign ) ) {
|
865 |
+
$campaign_type = $campaign['type'];
|
866 |
+
if ( 'newsletter' === $campaign_type ) {
|
867 |
+
$campaign_meta = maybe_unserialize( $campaign['meta'] );
|
868 |
+
$is_track_email_opens = ! empty( $campaign_meta['enable_open_tracking'] ) ? $campaign_meta['enable_open_tracking'] : $is_track_email_opens;
|
869 |
+
}
|
870 |
+
}
|
871 |
+
}
|
872 |
+
}
|
873 |
+
|
874 |
+
return $is_track_email_opens;
|
875 |
+
}
|
876 |
+
}
|
lite/includes/classes/class-es-old-widget.php
CHANGED
@@ -28,10 +28,10 @@ class ES_Old_Widget extends WP_Widget {
|
|
28 |
|
29 |
$name = strtolower( $display_name ) != 'no' ? 'yes' : '';
|
30 |
|
31 |
-
$list = ES()->lists_db->get_list_by_name($subscribers_group);
|
32 |
-
if(!empty($list)) {
|
33 |
-
|
34 |
-
|
35 |
|
36 |
$data['name_visible'] = $name;
|
37 |
$data['list_visible'] = 'no';
|
28 |
|
29 |
$name = strtolower( $display_name ) != 'no' ? 'yes' : '';
|
30 |
|
31 |
+
$list = ES()->lists_db->get_list_by_name( $subscribers_group );
|
32 |
+
if ( ! empty( $list ) ) {
|
33 |
+
$list_id = $list['id'];
|
34 |
+
}
|
35 |
|
36 |
$data['name_visible'] = $name;
|
37 |
$data['list_visible'] = 'no';
|
lite/includes/classes/class-es-post-notifications.php
CHANGED
@@ -257,8 +257,10 @@ class ES_Post_Notifications_Table {
|
|
257 |
<header class="ml-12 mr-8 wp-heading-inline">
|
258 |
<div class="sm:grid sm:grid-cols lg:grid lg:grid-cols-2 max-w-full">
|
259 |
<div class="mt-2">
|
260 |
-
<h2 class="text-
|
261 |
-
<span class="text-
|
|
|
|
|
262 |
</h2>
|
263 |
</div>
|
264 |
<div class="py-2 md:mt-0">
|
@@ -267,7 +269,7 @@ class ES_Post_Notifications_Table {
|
|
267 |
<?php if ( $action === 'edit' ) { ?>
|
268 |
<a href="admin.php?page=es_notifications&action=new" class="ig-es-title-button px-4 py-2 mx-2"><?php _e( 'Add New', 'email-subscribers' ) ?></a>
|
269 |
<?php } ?>
|
270 |
-
<a href="edit.php?post_type=es_template" class="ig-es-imp-button
|
271 |
</div>
|
272 |
</div>
|
273 |
</div>
|
@@ -363,7 +365,7 @@ class ES_Post_Notifications_Table {
|
|
363 |
</tbody>
|
364 |
</table>
|
365 |
<div>
|
366 |
-
<p class="submit"><input type="submit" name="submit" id="ig_es_campaign_post_notification_submit_button" class="cursor-pointer ig-es-primary-button px-4 py-2 ml-6 mr-2" value="<?php if ( $is_new ) {
|
367 |
_e( 'Save Campaign', 'email-subscribers' );
|
368 |
}
|
369 |
else{
|
@@ -371,7 +373,7 @@ class ES_Post_Notifications_Table {
|
|
371 |
}
|
372 |
|
373 |
?>"/>
|
374 |
-
<a href="admin.php?page=es_campaigns" class="cursor-pointer rounded-md border border-indigo-600 hover:shadow-md focus:outline-none focus:shadow-outline-indigo text-sm leading-5 font-medium transition ease-in-out duration-150 px-4 my-2 py-2 mx-2 ">Cancel</a></p>
|
375 |
</div>
|
376 |
|
377 |
</form>
|
257 |
<header class="ml-12 mr-8 wp-heading-inline">
|
258 |
<div class="sm:grid sm:grid-cols lg:grid lg:grid-cols-2 max-w-full">
|
259 |
<div class="mt-2">
|
260 |
+
<h2 class="text-2xl font-medium mt-2 text-gray-900 sm:leading-9 sm:truncate">
|
261 |
+
<span class="text-base font-normal leading-7 text-indigo-600 sm:leading-9 sm:truncate"> <a href="admin.php?page=es_campaigns"><?php _e('Campaigns ','email-subscribers'); ?></a></span> <svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24" class="w-4 h-4 inline-block align-middle"><path d="M9 5l7 7-7 7"></path></svg>
|
262 |
+
|
263 |
+
<?php echo $heading; ?>
|
264 |
</h2>
|
265 |
</div>
|
266 |
<div class="py-2 md:mt-0">
|
269 |
<?php if ( $action === 'edit' ) { ?>
|
270 |
<a href="admin.php?page=es_notifications&action=new" class="ig-es-title-button px-4 py-2 mx-2"><?php _e( 'Add New', 'email-subscribers' ) ?></a>
|
271 |
<?php } ?>
|
272 |
+
<a href="edit.php?post_type=es_template" class="ig-es-imp-button px-4 py-2"><?php _e( 'Manage Templates', 'email-subscribers' ) ?></a>
|
273 |
</div>
|
274 |
</div>
|
275 |
</div>
|
365 |
</tbody>
|
366 |
</table>
|
367 |
<div>
|
368 |
+
<p class="submit"><input type="submit" name="submit" id="ig_es_campaign_post_notification_submit_button" class="cursor-pointer align-middle ig-es-primary-button px-4 py-2 ml-6 mr-2" value="<?php if ( $is_new ) {
|
369 |
_e( 'Save Campaign', 'email-subscribers' );
|
370 |
}
|
371 |
else{
|
373 |
}
|
374 |
|
375 |
?>"/>
|
376 |
+
<a href="admin.php?page=es_campaigns" class="cursor-pointer align-middle rounded-md border border-indigo-600 hover:shadow-md focus:outline-none focus:shadow-outline-indigo text-sm leading-5 font-medium transition ease-in-out duration-150 px-4 my-2 py-2 mx-2 ">Cancel</a></p>
|
377 |
</div>
|
378 |
|
379 |
</form>
|
lite/includes/classes/class-es-queue.php
CHANGED
@@ -595,7 +595,7 @@ if ( ! class_exists( 'ES_Queue' ) ) {
|
|
595 |
*/
|
596 |
public function process_campaigns() {
|
597 |
|
598 |
-
|
599 |
if ( ES()->cron->should_unlock() ) {
|
600 |
ES()->cron->unlock();
|
601 |
}
|
@@ -623,6 +623,16 @@ if ( ! class_exists( 'ES_Queue' ) ) {
|
|
623 |
$campaign_id = isset( $notification['campaign_id'] ) ? $notification['campaign_id'] : 0;
|
624 |
|
625 |
if ( ! is_null( $notification_guid ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
626 |
ES_DB_Mailing_Queue::update_sent_status( $notification_guid, 'Sending' );
|
627 |
|
628 |
// Get subscribers from the sending_queue table based on fetched guid
|
@@ -655,6 +665,10 @@ if ( ! class_exists( 'ES_Queue' ) ) {
|
|
655 |
if ( $total_remaining_emails == 0 ) {
|
656 |
ES_DB_Mailing_Queue::update_sent_status( $notification_guid, 'Sent' );
|
657 |
|
|
|
|
|
|
|
|
|
658 |
// Send Cron Email to admins
|
659 |
ES()->mailer->send_cron_admin_email( $notification_guid );
|
660 |
}
|
@@ -669,6 +683,7 @@ if ( ! class_exists( 'ES_Queue' ) ) {
|
|
669 |
$response['status'] = 'SUCCESS';
|
670 |
// update last cron run time
|
671 |
update_option( 'ig_es_last_cron_run', time() );
|
|
|
672 |
} else {
|
673 |
$response['es_remaining_email_count'] = 0;
|
674 |
$response['message'] = 'EMAILS_NOT_FOUND';
|
595 |
*/
|
596 |
public function process_campaigns() {
|
597 |
|
598 |
+
|
599 |
if ( ES()->cron->should_unlock() ) {
|
600 |
ES()->cron->unlock();
|
601 |
}
|
623 |
$campaign_id = isset( $notification['campaign_id'] ) ? $notification['campaign_id'] : 0;
|
624 |
|
625 |
if ( ! is_null( $notification_guid ) ) {
|
626 |
+
|
627 |
+
$campaign_type = '';
|
628 |
+
if( ! empty( $campaign_id ) ) {
|
629 |
+
$campaign_type = ES()->campaigns_db->get_campaign_type_by_id( $campaign_id );
|
630 |
+
}
|
631 |
+
|
632 |
+
if( 'newsletter' === $campaign_type ) {
|
633 |
+
ES()->campaigns_db->update_status( $campaign_id, IG_ES_CAMPAIGN_STATUS_QUEUED );
|
634 |
+
}
|
635 |
+
|
636 |
ES_DB_Mailing_Queue::update_sent_status( $notification_guid, 'Sending' );
|
637 |
|
638 |
// Get subscribers from the sending_queue table based on fetched guid
|
665 |
if ( $total_remaining_emails == 0 ) {
|
666 |
ES_DB_Mailing_Queue::update_sent_status( $notification_guid, 'Sent' );
|
667 |
|
668 |
+
if( 'newsletter' === $campaign_type ) {
|
669 |
+
ES()->campaigns_db->update_status( $campaign_id, IG_ES_CAMPAIGN_STATUS_FINISHED );
|
670 |
+
}
|
671 |
+
|
672 |
// Send Cron Email to admins
|
673 |
ES()->mailer->send_cron_admin_email( $notification_guid );
|
674 |
}
|
683 |
$response['status'] = 'SUCCESS';
|
684 |
// update last cron run time
|
685 |
update_option( 'ig_es_last_cron_run', time() );
|
686 |
+
|
687 |
} else {
|
688 |
$response['es_remaining_email_count'] = 0;
|
689 |
$response['message'] = 'EMAILS_NOT_FOUND';
|
lite/includes/classes/class-es-reports-table.php
CHANGED
@@ -21,6 +21,7 @@ class ES_Reports_Table extends WP_List_Table {
|
|
21 |
'ajax' => false, //does this table support ajax?,
|
22 |
'screen' => 'es_reports'
|
23 |
) );
|
|
|
24 |
}
|
25 |
|
26 |
public function es_reports_callback() {
|
@@ -33,12 +34,12 @@ class ES_Reports_Table extends WP_List_Table {
|
|
33 |
?>
|
34 |
|
35 |
<div class="wrap">
|
36 |
-
<h1 class="wp-heading-inline"><span class="text-2xl font-
|
37 |
<?php
|
38 |
$emails_to_be_sent = ES_DB_Sending_Queue::get_total_emails_to_be_sent();
|
39 |
if ( $emails_to_be_sent > 0 ) {
|
40 |
$cron_url = ES()->cron->url( true );
|
41 |
-
$content = sprintf( __( "<a href='%s'
|
42 |
} else {
|
43 |
$content = sprintf( __( "<span class='ig-es-send-queue-emails button-disabled'>Send Queued Emails Now</span>", 'email-subscribers' ) );
|
44 |
$content .= sprintf( __( "<br /><span class='es-helper'>No emails found in queue</span>", 'email-subscribers' ) );
|
@@ -516,4 +517,4 @@ class ES_Reports_Table extends WP_List_Table {
|
|
516 |
|
517 |
return self::$instance;
|
518 |
}
|
519 |
-
}
|
21 |
'ajax' => false, //does this table support ajax?,
|
22 |
'screen' => 'es_reports'
|
23 |
) );
|
24 |
+
|
25 |
}
|
26 |
|
27 |
public function es_reports_callback() {
|
34 |
?>
|
35 |
|
36 |
<div class="wrap">
|
37 |
+
<h1 class="wp-heading-inline"><span class="text-2xl font-medium leading-7 text-gray-900 sm:leading-9 sm:truncate"><?php _e( 'Reports', 'email-subscribers' ); ?></span></h1>
|
38 |
<?php
|
39 |
$emails_to_be_sent = ES_DB_Sending_Queue::get_total_emails_to_be_sent();
|
40 |
if ( $emails_to_be_sent > 0 ) {
|
41 |
$cron_url = ES()->cron->url( true );
|
42 |
+
$content = sprintf( __( "<a href='%s' class='px-4 py-2 ig-es-imp-button'>Send Queued Emails Now</a>", 'email-subscribers' ), $cron_url );
|
43 |
} else {
|
44 |
$content = sprintf( __( "<span class='ig-es-send-queue-emails button-disabled'>Send Queued Emails Now</span>", 'email-subscribers' ) );
|
45 |
$content .= sprintf( __( "<br /><span class='es-helper'>No emails found in queue</span>", 'email-subscribers' ) );
|
517 |
|
518 |
return self::$instance;
|
519 |
}
|
520 |
+
}
|
lite/includes/classes/class-es-templates-table.php
CHANGED
@@ -72,7 +72,7 @@ class ES_Templates_Table {
|
|
72 |
{{EMAIL}} </p>
|
73 |
<div id="post_digest">
|
74 |
<span style="font-size: 0.8em; margin-left: 0.3em; padding: 2px; background: #e66060; color: #fff; border-radius: 2px; ">Pro</span>
|
75 |
-
<a href="https://www.icegram.com/send-post-digest-using-email-subscribers-plugin/?utm_source=es&utm_medium=in_app&utm_campaign=view_post_digest_post" target="_blank"><?php _e( 'Available Keywords', 'email-subscribers' ); ?></a> <?php _e( 'for Post Digest:', 'email-subscribers' ); ?>
|
76 |
{{FIRSTNAME}}, {{LASTNAME}}, {{NAME}}<div class="post_digest_block"> {{POSTDIGEST}} <br/><?php _e( 'Any keywords related Post Notification', 'email-subscribers' ); ?> <br/>{{/POSTDIGEST}} </div>
|
77 |
</div>
|
78 |
<?php
|
@@ -143,6 +143,25 @@ class ES_Templates_Table {
|
|
143 |
$current_user = wp_get_current_user();
|
144 |
$username = $current_user->user_login;
|
145 |
$useremail = $current_user->user_email;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
$es_template_body = $template['post_content'];
|
148 |
|
@@ -165,6 +184,8 @@ class ES_Templates_Table {
|
|
165 |
|
166 |
$es_template_body = str_replace( '{{NAME}}', $username, $es_template_body );
|
167 |
$es_template_body = str_replace( '{{EMAIL}}', $useremail, $es_template_body );
|
|
|
|
|
168 |
|
169 |
if ( has_post_thumbnail( $template_id ) ) {
|
170 |
$image_array = wp_get_attachment_image_src( get_post_thumbnail_id( $template_id ), 'full' );
|
72 |
{{EMAIL}} </p>
|
73 |
<div id="post_digest">
|
74 |
<span style="font-size: 0.8em; margin-left: 0.3em; padding: 2px; background: #e66060; color: #fff; border-radius: 2px; ">Pro</span>
|
75 |
+
<a href="https://www.icegram.com/send-post-digest-using-email-subscribers-plugin/?utm_source=es&utm_medium=in_app&utm_campaign=view_post_digest_post" target="_blank"><?php _e( 'Available Keywords', 'email-subscribers' ); ?></a> <?php _e( 'for Post Digest:', 'email-subscribers' ); ?>
|
76 |
{{FIRSTNAME}}, {{LASTNAME}}, {{NAME}}<div class="post_digest_block"> {{POSTDIGEST}} <br/><?php _e( 'Any keywords related Post Notification', 'email-subscribers' ); ?> <br/>{{/POSTDIGEST}} </div>
|
77 |
</div>
|
78 |
<?php
|
143 |
$current_user = wp_get_current_user();
|
144 |
$username = $current_user->user_login;
|
145 |
$useremail = $current_user->user_email;
|
146 |
+
$display_name = $current_user->display_name;
|
147 |
+
|
148 |
+
$contact_id = ES()->contacts_db->get_contact_id_by_email( $useremail );
|
149 |
+
$first_name = '';
|
150 |
+
$last_name = '';
|
151 |
+
|
152 |
+
// Use details from contacts data if present else fetch it from wp profile.
|
153 |
+
if( ! empty( $contact_id ) ) {
|
154 |
+
$contact_data = ES()->contacts_db->get_by_id( $contact_id );
|
155 |
+
$first_name = $contact_data['first_name'];
|
156 |
+
$last_name = $contact_data['last_name'];
|
157 |
+
} else if( ! empty( $display_name ) ) {
|
158 |
+
$contact_details = explode( ' ', $display_name );
|
159 |
+
$first_name = $contact_details[0];
|
160 |
+
// Check if last name is set.
|
161 |
+
if( ! empty( $contact_details[1] ) ) {
|
162 |
+
$last_name = $contact_details[1];
|
163 |
+
}
|
164 |
+
}
|
165 |
|
166 |
$es_template_body = $template['post_content'];
|
167 |
|
184 |
|
185 |
$es_template_body = str_replace( '{{NAME}}', $username, $es_template_body );
|
186 |
$es_template_body = str_replace( '{{EMAIL}}', $useremail, $es_template_body );
|
187 |
+
$es_template_body = str_replace( '{{FIRSTNAME}}', $first_name, $es_template_body );
|
188 |
+
$es_template_body = str_replace( '{{LASTNAME}}', $last_name, $es_template_body );
|
189 |
|
190 |
if ( has_post_thumbnail( $template_id ) ) {
|
191 |
$image_array = wp_get_attachment_image_src( get_post_thumbnail_id( $template_id ), 'full' );
|
lite/includes/db/class-es-db-mailing-queue.php
CHANGED
@@ -242,6 +242,20 @@ class ES_DB_Mailing_Queue {
|
|
242 |
return $last_report_id;
|
243 |
}
|
244 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
public static function get_id_details_map() {
|
246 |
global $wpdb;
|
247 |
|
242 |
return $last_report_id;
|
243 |
}
|
244 |
|
245 |
+
public static function update_notification( $notification_id, $data ) {
|
246 |
+
global $wpdb;
|
247 |
+
|
248 |
+
$column_formats = self::get_columns();
|
249 |
+
$column_defaults = self::get_column_defaults();
|
250 |
+
$prepared_data = ES_DB::prepare_data( $data, $column_formats, $column_defaults, true );
|
251 |
+
|
252 |
+
$data = $prepared_data['data'];
|
253 |
+
$column_formats = $prepared_data['column_formats'];
|
254 |
+
|
255 |
+
$wpdb->update( IG_MAILING_QUEUE_TABLE, $data, array( 'id' => $notification_id ), $column_formats );
|
256 |
+
|
257 |
+
}
|
258 |
+
|
259 |
public static function get_id_details_map() {
|
260 |
global $wpdb;
|
261 |
|
lite/includes/db/class-es-db.php
CHANGED
@@ -476,6 +476,8 @@ abstract class ES_DB {
|
|
476 |
// Convert Batches into smaller chunk
|
477 |
$batches = array_chunk( $values, $length );
|
478 |
|
|
|
|
|
479 |
foreach ( $batches as $key => $batch ) {
|
480 |
|
481 |
$place_holders = $final_values = array();
|
@@ -497,10 +499,15 @@ abstract class ES_DB {
|
|
497 |
$sql = $wpdb->prepare( $query, $final_values );
|
498 |
|
499 |
if ( ! $wpdb->query( $sql ) ) {
|
500 |
-
|
501 |
}
|
502 |
}
|
503 |
|
|
|
|
|
|
|
|
|
|
|
504 |
return true;
|
505 |
}
|
506 |
|
476 |
// Convert Batches into smaller chunk
|
477 |
$batches = array_chunk( $values, $length );
|
478 |
|
479 |
+
$error_flag = false;
|
480 |
+
|
481 |
foreach ( $batches as $key => $batch ) {
|
482 |
|
483 |
$place_holders = $final_values = array();
|
499 |
$sql = $wpdb->prepare( $query, $final_values );
|
500 |
|
501 |
if ( ! $wpdb->query( $sql ) ) {
|
502 |
+
$error_flag = true;
|
503 |
}
|
504 |
}
|
505 |
|
506 |
+
// Check if error occured during executing the query.
|
507 |
+
if( $error_flag ) {
|
508 |
+
return false;
|
509 |
+
}
|
510 |
+
|
511 |
return true;
|
512 |
}
|
513 |
|
lite/includes/es-core-functions.php
CHANGED
@@ -130,10 +130,8 @@ if ( ! function_exists( 'ig_es_format_date_time' ) ) {
|
|
130 |
* @return string
|
131 |
*/
|
132 |
function ig_es_format_date_time( $date ) {
|
133 |
-
$convert_date_format = get_option('date_format');
|
134 |
-
$convert_time_format = get_option('time_format');
|
135 |
|
136 |
-
$local_timestamp = ( $date !== '0000-00-00 00:00:00' ) ?
|
137 |
|
138 |
return $local_timestamp;
|
139 |
}
|
130 |
* @return string
|
131 |
*/
|
132 |
function ig_es_format_date_time( $date ) {
|
|
|
|
|
133 |
|
134 |
+
$local_timestamp = ( $date !== '0000-00-00 00:00:00' ) ? ES_Common::convert_date_to_wp_date( get_date_from_gmt( $date )) : '<i class="dashicons dashicons-es dashicons-minus"></i>';
|
135 |
|
136 |
return $local_timestamp;
|
137 |
}
|
lite/includes/feedback.php
CHANGED
@@ -86,7 +86,7 @@ function ig_es_render_broadcast_created_feedback_widget() {
|
|
86 |
ES_Common::render_feedback_widget( $params );
|
87 |
}
|
88 |
|
89 |
-
add_action( 'ig_es_broadcast_created', 'ig_es_render_broadcast_created_feedback_widget' );
|
90 |
|
91 |
/**
|
92 |
* Render Broadcast Created feedback widget.
|
@@ -122,6 +122,7 @@ function ig_es_render_fb_widget() {
|
|
122 |
'width' => 500,
|
123 |
'delay' => 2, // seconds
|
124 |
'confirmButtonText' => '<i class="dashicons dashicons-es dashicons-facebook"></i> ' . __( 'Join Now', 'email-subscribers' ),
|
|
|
125 |
'show_once' => true
|
126 |
);
|
127 |
|
@@ -221,7 +222,6 @@ function ig_es_render_iges_merge_feedback() {
|
|
221 |
return;
|
222 |
}
|
223 |
|
224 |
-
|
225 |
$params = array(
|
226 |
'type' => 'poll',
|
227 |
'title' => __( 'Subscription forms and CTAs??', 'email-subscribers' ),
|
@@ -236,7 +236,7 @@ function ig_es_render_iges_merge_feedback() {
|
|
236 |
'width' => 400,
|
237 |
'delay' => 2, // seconds
|
238 |
'confirmButtonText' => __( 'Send my feedback to <b>Icegram team</b>', 'email-subscribers' ),
|
239 |
-
'show_once' => true
|
240 |
);
|
241 |
|
242 |
ES_Common::render_feedback_widget( $params );
|
@@ -265,4 +265,47 @@ function ig_es_can_load_sweetalert_js( $load = false ) {
|
|
265 |
return $load;
|
266 |
}
|
267 |
|
268 |
-
add_filter( 'ig_es_can_load_sweetalert_js', 'ig_es_can_load_sweetalert_js', 10, 1 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
ES_Common::render_feedback_widget( $params );
|
87 |
}
|
88 |
|
89 |
+
//add_action( 'ig_es_broadcast_created', 'ig_es_render_broadcast_created_feedback_widget' );
|
90 |
|
91 |
/**
|
92 |
* Render Broadcast Created feedback widget.
|
122 |
'width' => 500,
|
123 |
'delay' => 2, // seconds
|
124 |
'confirmButtonText' => '<i class="dashicons dashicons-es dashicons-facebook"></i> ' . __( 'Join Now', 'email-subscribers' ),
|
125 |
+
'confirmButtonLink' => 'https://www.facebook.com/groups/2298909487017349/',
|
126 |
'show_once' => true
|
127 |
);
|
128 |
|
222 |
return;
|
223 |
}
|
224 |
|
|
|
225 |
$params = array(
|
226 |
'type' => 'poll',
|
227 |
'title' => __( 'Subscription forms and CTAs??', 'email-subscribers' ),
|
236 |
'width' => 400,
|
237 |
'delay' => 2, // seconds
|
238 |
'confirmButtonText' => __( 'Send my feedback to <b>Icegram team</b>', 'email-subscribers' ),
|
239 |
+
'show_once' => true
|
240 |
);
|
241 |
|
242 |
ES_Common::render_feedback_widget( $params );
|
265 |
return $load;
|
266 |
}
|
267 |
|
268 |
+
add_filter( 'ig_es_can_load_sweetalert_js', 'ig_es_can_load_sweetalert_js', 10, 1 );
|
269 |
+
|
270 |
+
|
271 |
+
/**
|
272 |
+
* Render Broadcast Created feedback widget.
|
273 |
+
*
|
274 |
+
* @since 4.4.7
|
275 |
+
*/
|
276 |
+
function ig_es_render_broadcast_ui_review() {
|
277 |
+
|
278 |
+
if ( is_admin() ) {
|
279 |
+
|
280 |
+
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
|
281 |
+
return;
|
282 |
+
}
|
283 |
+
|
284 |
+
if ( ! ES()->is_es_admin_screen() ) {
|
285 |
+
return;
|
286 |
+
}
|
287 |
+
|
288 |
+
$event = 'broadcast.ui.review';
|
289 |
+
|
290 |
+
$params = array(
|
291 |
+
'type' => 'fb',
|
292 |
+
'widget_tyoe' => 'success',
|
293 |
+
'title' => __( 'Broadcast Created Successfully!', 'email-subscribers' ),
|
294 |
+
'event' => $event,
|
295 |
+
'html' => '<div style="margin-bottom:30px;"> ' . __( 'If you like new Broadcast UI, leave us a <b>5 stars review</b>. <br /><br />Do you have a feedback? Contact Us.', 'email-subscribers' ) . '</div>',
|
296 |
+
'position' => 'top-right',
|
297 |
+
'width' => 500,
|
298 |
+
'delay' => 2, // seconds
|
299 |
+
'confirmButtonText' => '<i class="dashicons dashicons-star-empty"></i> ' . __( 'Leave Review', 'email-subscribers' ),
|
300 |
+
'confirmButtonLink' => 'https://wordpress.org/support/plugin/email-subscribers/reviews/?filter=5',
|
301 |
+
'showCancelButton' => true,
|
302 |
+
'cancelButtonText' => __( 'Contact Us', 'email-subscribers' ),
|
303 |
+
'cancelButtonLink' => 'https://icegram.com',
|
304 |
+
'show_once' => true
|
305 |
+
);
|
306 |
+
|
307 |
+
ES_Common::render_feedback_widget( $params );
|
308 |
+
}
|
309 |
+
}
|
310 |
+
|
311 |
+
add_action( 'ig_es_broadcast_created', 'ig_es_render_broadcast_ui_review' );
|
lite/includes/feedback/class-ig-feedback.php
CHANGED
@@ -4,21 +4,21 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
-
if ( ! class_exists( '
|
8 |
/**
|
9 |
* IG Feedback
|
10 |
*
|
11 |
* The IG Feedback class adds functionality to get quick interactive feedback from users.
|
12 |
* There are different types of feedabck widget like Stars, Emoji, Thubms Up/ Down, Number etc.
|
13 |
*
|
14 |
-
* @class
|
15 |
* @since 1.0.0
|
16 |
* @copyright Copyright (c) 2019, Icegram
|
17 |
* @license https://opensource.org/licenses/gpl-license GNU Public License
|
18 |
* @author Icegram
|
19 |
* @package feedback
|
20 |
*/
|
21 |
-
class
|
22 |
|
23 |
/**
|
24 |
* Version of Feedback Library
|
@@ -27,7 +27,7 @@ if ( ! class_exists( 'IG_Feedback_V_1_2_2' ) ) {
|
|
27 |
* @var string
|
28 |
*
|
29 |
*/
|
30 |
-
public $version = '1.2.
|
31 |
/**
|
32 |
* The API URL where we will send feedback data.
|
33 |
*
|
@@ -798,22 +798,30 @@ if ( ! class_exists( 'IG_Feedback_V_1_2_2' ) ) {
|
|
798 |
$params = $this->prepare_widget_params( $params );
|
799 |
|
800 |
$title = $params['title'];
|
|
|
801 |
$slug = sanitize_title( $title );
|
802 |
$event = $this->event_prefix . $params['event'];
|
803 |
$html = ! empty( $params['html'] ) ? $params['html'] : '';
|
|
|
|
|
|
|
|
|
804 |
|
805 |
?>
|
806 |
|
807 |
<script>
|
808 |
|
809 |
Swal.mixin({
|
810 |
-
type: '
|
811 |
-
footer: '<?php echo $this->footer; ?>',
|
812 |
position: '<?php echo $params['position']; ?>',
|
813 |
width: <?php echo $params['width']; ?>,
|
814 |
animation: false,
|
815 |
-
focusConfirm:
|
816 |
allowEscapeKey: true,
|
|
|
|
|
|
|
|
|
817 |
showCloseButton: '<?php echo $params['showCloseButton']; ?>',
|
818 |
allowOutsideClick: '<?php echo $params['allowOutsideClick']; ?>',
|
819 |
showLoaderOnConfirm: true,
|
@@ -829,13 +837,14 @@ if ( ! class_exists( 'IG_Feedback_V_1_2_2' ) ) {
|
|
829 |
|
830 |
preConfirm: () => {
|
831 |
window.open(
|
832 |
-
'
|
833 |
'_blank' // <- This is what makes it open in a new window.
|
834 |
);
|
835 |
}
|
836 |
}
|
837 |
]).then(response => {
|
838 |
|
|
|
839 |
if (response.hasOwnProperty('value')) {
|
840 |
|
841 |
Swal.fire({
|
@@ -847,9 +856,12 @@ if ( ! class_exists( 'IG_Feedback_V_1_2_2' ) ) {
|
|
847 |
timer: 1500,
|
848 |
animation: false
|
849 |
});
|
850 |
-
}
|
851 |
-
|
852 |
-
|
|
|
|
|
|
|
853 |
});
|
854 |
|
855 |
</script>
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
+
if ( ! class_exists( 'IG_Feedback_V_1_2_3' ) ) {
|
8 |
/**
|
9 |
* IG Feedback
|
10 |
*
|
11 |
* The IG Feedback class adds functionality to get quick interactive feedback from users.
|
12 |
* There are different types of feedabck widget like Stars, Emoji, Thubms Up/ Down, Number etc.
|
13 |
*
|
14 |
+
* @class IG_Feedback_V_1_2_3
|
15 |
* @since 1.0.0
|
16 |
* @copyright Copyright (c) 2019, Icegram
|
17 |
* @license https://opensource.org/licenses/gpl-license GNU Public License
|
18 |
* @author Icegram
|
19 |
* @package feedback
|
20 |
*/
|
21 |
+
class IG_Feedback_V_1_2_3 {
|
22 |
|
23 |
/**
|
24 |
* Version of Feedback Library
|
27 |
* @var string
|
28 |
*
|
29 |
*/
|
30 |
+
public $version = '1.2.3';
|
31 |
/**
|
32 |
* The API URL where we will send feedback data.
|
33 |
*
|
798 |
$params = $this->prepare_widget_params( $params );
|
799 |
|
800 |
$title = $params['title'];
|
801 |
+
$widget_tyoe = !empty($params['widget_tyoe']) ? $params['widget_tyoe'] : 'question';
|
802 |
$slug = sanitize_title( $title );
|
803 |
$event = $this->event_prefix . $params['event'];
|
804 |
$html = ! empty( $params['html'] ) ? $params['html'] : '';
|
805 |
+
$confirm_button_link = ! empty( $params['confirmButtonLink'] ) ? $params['confirmButtonLink'] : '';
|
806 |
+
$cancel_button_link = ! empty( $params['cancelButtonLink'] ) ? $params['cancelButtonLink'] : '';
|
807 |
+
$show_cancel_button = ! empty( $params['showCancelButton'] ) ? 'true' : 'false';
|
808 |
+
$cancel_button_text = ! empty( $params['cancelButtonText'] ) ? $params['cancelButtonText'] : 'Cancel';
|
809 |
|
810 |
?>
|
811 |
|
812 |
<script>
|
813 |
|
814 |
Swal.mixin({
|
815 |
+
type: '<?php echo $widget_tyoe; ?>',
|
|
|
816 |
position: '<?php echo $params['position']; ?>',
|
817 |
width: <?php echo $params['width']; ?>,
|
818 |
animation: false,
|
819 |
+
focusConfirm: true,
|
820 |
allowEscapeKey: true,
|
821 |
+
showCancelButton: <?php echo $show_cancel_button; ?>,
|
822 |
+
confirmButtonColor: '#0e9f6e',
|
823 |
+
cancelButtonColor: '#5850ec',
|
824 |
+
cancelButtonText: '<?php echo $cancel_button_text; ?>',
|
825 |
showCloseButton: '<?php echo $params['showCloseButton']; ?>',
|
826 |
allowOutsideClick: '<?php echo $params['allowOutsideClick']; ?>',
|
827 |
showLoaderOnConfirm: true,
|
837 |
|
838 |
preConfirm: () => {
|
839 |
window.open(
|
840 |
+
'<?php echo $confirm_button_link; ?>',
|
841 |
'_blank' // <- This is what makes it open in a new window.
|
842 |
);
|
843 |
}
|
844 |
}
|
845 |
]).then(response => {
|
846 |
|
847 |
+
console.log(response);
|
848 |
if (response.hasOwnProperty('value')) {
|
849 |
|
850 |
Swal.fire({
|
856 |
timer: 1500,
|
857 |
animation: false
|
858 |
});
|
859 |
+
} else if(response.dismiss == 'cancel') {
|
860 |
+
window.open(
|
861 |
+
'<?php echo $cancel_button_link; ?>',
|
862 |
+
'_blank' // <- This is what makes it open in a new window.
|
863 |
+
);
|
864 |
+
}
|
865 |
});
|
866 |
|
867 |
</script>
|
lite/includes/feedback/class-ig-tracker.php
CHANGED
@@ -4,7 +4,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
-
if ( ! class_exists( '
|
8 |
|
9 |
/**
|
10 |
* Class IG_Tracker_V_1_2_2
|
@@ -12,7 +12,7 @@ if ( ! class_exists( 'IG_Tracker_V_1_2_2' ) ) {
|
|
12 |
* Icegram tracker handler class is responsible for sending anonymous plugin
|
13 |
* data to Icegram servers for users that actively allowed data tracking.
|
14 |
*
|
15 |
-
* @class
|
16 |
* @since 1.0.0
|
17 |
*
|
18 |
* @copyright Copyright (c) 2019, Icegram
|
@@ -20,7 +20,7 @@ if ( ! class_exists( 'IG_Tracker_V_1_2_2' ) ) {
|
|
20 |
* @author Icegram
|
21 |
* @package feedback
|
22 |
*/
|
23 |
-
class
|
24 |
|
25 |
/**
|
26 |
* Get Active, Inactive or all plugins info
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
+
if ( ! class_exists( 'IG_Tracker_V_1_2_3' ) ) {
|
8 |
|
9 |
/**
|
10 |
* Class IG_Tracker_V_1_2_2
|
12 |
* Icegram tracker handler class is responsible for sending anonymous plugin
|
13 |
* data to Icegram servers for users that actively allowed data tracking.
|
14 |
*
|
15 |
+
* @class IG_Tracker_V_1_2_3
|
16 |
* @since 1.0.0
|
17 |
*
|
18 |
* @copyright Copyright (c) 2019, Icegram
|
20 |
* @author Icegram
|
21 |
* @package feedback
|
22 |
*/
|
23 |
+
class IG_Tracker_V_1_2_3 {
|
24 |
|
25 |
/**
|
26 |
* Get Active, Inactive or all plugins info
|
lite/includes/libraries/action-scheduler/action-scheduler.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: A robust scheduling library for use in WordPress plugins.
|
6 |
* Author: Automattic
|
7 |
* Author URI: https://automattic.com/
|
8 |
-
* Version: 3.1.
|
9 |
* License: GPLv3
|
10 |
*
|
11 |
* Copyright 2019 Automattic, Inc. (https://automattic.com/contact/)
|
@@ -25,35 +25,28 @@
|
|
25 |
*
|
26 |
*/
|
27 |
|
28 |
-
if ( ! function_exists( '
|
29 |
|
30 |
if ( ! class_exists( 'ActionScheduler_Versions' ) ) {
|
31 |
require_once( 'classes/ActionScheduler_Versions.php' );
|
32 |
add_action( 'plugins_loaded', array( 'ActionScheduler_Versions', 'initialize_latest_version' ), 1, 0 );
|
33 |
}
|
34 |
|
35 |
-
add_action( 'plugins_loaded', '
|
36 |
|
37 |
-
function
|
38 |
$versions = ActionScheduler_Versions::instance();
|
39 |
-
$versions->register( '3.1.
|
40 |
}
|
41 |
|
42 |
-
function
|
43 |
-
|
44 |
-
if ( is_readable( $autoloader ) ) {
|
45 |
-
require_once( $autoloader );
|
46 |
-
define( 'AS_COMPOSER_AUTOLOADING', true );
|
47 |
-
} else {
|
48 |
-
define( 'AS_COMPOSER_AUTOLOADING', false );
|
49 |
-
require_once( 'classes/abstracts/ActionScheduler.php' );
|
50 |
-
}
|
51 |
ActionScheduler::init( __FILE__ );
|
52 |
}
|
53 |
|
54 |
// Support usage in themes - load this version if no plugin has loaded a version yet.
|
55 |
if ( did_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler' ) ) {
|
56 |
-
|
57 |
do_action( 'action_scheduler_pre_theme_init' );
|
58 |
ActionScheduler_Versions::initialize_latest_version();
|
59 |
}
|
5 |
* Description: A robust scheduling library for use in WordPress plugins.
|
6 |
* Author: Automattic
|
7 |
* Author URI: https://automattic.com/
|
8 |
+
* Version: 3.1.4
|
9 |
* License: GPLv3
|
10 |
*
|
11 |
* Copyright 2019 Automattic, Inc. (https://automattic.com/contact/)
|
25 |
*
|
26 |
*/
|
27 |
|
28 |
+
if ( ! function_exists( 'action_scheduler_register_3_dot_1_dot_4' ) ) {
|
29 |
|
30 |
if ( ! class_exists( 'ActionScheduler_Versions' ) ) {
|
31 |
require_once( 'classes/ActionScheduler_Versions.php' );
|
32 |
add_action( 'plugins_loaded', array( 'ActionScheduler_Versions', 'initialize_latest_version' ), 1, 0 );
|
33 |
}
|
34 |
|
35 |
+
add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_1_dot_4', 0, 0 );
|
36 |
|
37 |
+
function action_scheduler_register_3_dot_1_dot_4() {
|
38 |
$versions = ActionScheduler_Versions::instance();
|
39 |
+
$versions->register( '3.1.4', 'action_scheduler_initialize_3_dot_1_dot_4' );
|
40 |
}
|
41 |
|
42 |
+
function action_scheduler_initialize_3_dot_1_dot_4() {
|
43 |
+
require_once( 'classes/abstracts/ActionScheduler.php' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
ActionScheduler::init( __FILE__ );
|
45 |
}
|
46 |
|
47 |
// Support usage in themes - load this version if no plugin has loaded a version yet.
|
48 |
if ( did_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler' ) ) {
|
49 |
+
action_scheduler_initialize_3_dot_1_dot_4();
|
50 |
do_action( 'action_scheduler_pre_theme_init' );
|
51 |
ActionScheduler_Versions::initialize_latest_version();
|
52 |
}
|
lite/includes/libraries/action-scheduler/classes/ActionScheduler_ActionFactory.php
CHANGED
@@ -22,7 +22,7 @@ class ActionScheduler_ActionFactory {
|
|
22 |
break;
|
23 |
case ActionScheduler_Store::STATUS_CANCELED :
|
24 |
$action_class = 'ActionScheduler_CanceledAction';
|
25 |
-
if ( ! is_null( $schedule ) && ! is_a( $schedule, 'ActionScheduler_CanceledSchedule' ) ) {
|
26 |
$schedule = new ActionScheduler_CanceledSchedule( $schedule->get_date() );
|
27 |
}
|
28 |
break;
|
@@ -61,7 +61,7 @@ class ActionScheduler_ActionFactory {
|
|
61 |
* @param array $args Args to pass when the hook is triggered
|
62 |
* @param string $group A group to put the action in
|
63 |
*
|
64 |
-
* @return
|
65 |
*/
|
66 |
public function async( $hook, $args = array(), $group = '' ) {
|
67 |
$schedule = new ActionScheduler_NullSchedule();
|
@@ -75,7 +75,7 @@ class ActionScheduler_ActionFactory {
|
|
75 |
* @param int $when Unix timestamp when the action will run
|
76 |
* @param string $group A group to put the action in
|
77 |
*
|
78 |
-
* @return
|
79 |
*/
|
80 |
public function single( $hook, $args = array(), $when = null, $group = '' ) {
|
81 |
$date = as_get_datetime_object( $when );
|
@@ -93,7 +93,7 @@ class ActionScheduler_ActionFactory {
|
|
93 |
* @param int $interval Seconds between runs
|
94 |
* @param string $group A group to put the action in
|
95 |
*
|
96 |
-
* @return
|
97 |
*/
|
98 |
public function recurring( $hook, $args = array(), $first = null, $interval = null, $group = '' ) {
|
99 |
if ( empty($interval) ) {
|
@@ -116,7 +116,7 @@ class ActionScheduler_ActionFactory {
|
|
116 |
* @param int $schedule A cron definition string
|
117 |
* @param string $group A group to put the action in
|
118 |
*
|
119 |
-
* @return
|
120 |
*/
|
121 |
public function cron( $hook, $args = array(), $base_timestamp = null, $schedule = null, $group = '' ) {
|
122 |
if ( empty($schedule) ) {
|
@@ -170,7 +170,7 @@ class ActionScheduler_ActionFactory {
|
|
170 |
/**
|
171 |
* @param ActionScheduler_Action $action
|
172 |
*
|
173 |
-
* @return
|
174 |
*/
|
175 |
protected function store( ActionScheduler_Action $action ) {
|
176 |
$store = ActionScheduler_Store::instance();
|
22 |
break;
|
23 |
case ActionScheduler_Store::STATUS_CANCELED :
|
24 |
$action_class = 'ActionScheduler_CanceledAction';
|
25 |
+
if ( ! is_null( $schedule ) && ! is_a( $schedule, 'ActionScheduler_CanceledSchedule' ) && ! is_a( $schedule, 'ActionScheduler_NullSchedule' ) ) {
|
26 |
$schedule = new ActionScheduler_CanceledSchedule( $schedule->get_date() );
|
27 |
}
|
28 |
break;
|
61 |
* @param array $args Args to pass when the hook is triggered
|
62 |
* @param string $group A group to put the action in
|
63 |
*
|
64 |
+
* @return int The ID of the stored action
|
65 |
*/
|
66 |
public function async( $hook, $args = array(), $group = '' ) {
|
67 |
$schedule = new ActionScheduler_NullSchedule();
|
75 |
* @param int $when Unix timestamp when the action will run
|
76 |
* @param string $group A group to put the action in
|
77 |
*
|
78 |
+
* @return int The ID of the stored action
|
79 |
*/
|
80 |
public function single( $hook, $args = array(), $when = null, $group = '' ) {
|
81 |
$date = as_get_datetime_object( $when );
|
93 |
* @param int $interval Seconds between runs
|
94 |
* @param string $group A group to put the action in
|
95 |
*
|
96 |
+
* @return int The ID of the stored action
|
97 |
*/
|
98 |
public function recurring( $hook, $args = array(), $first = null, $interval = null, $group = '' ) {
|
99 |
if ( empty($interval) ) {
|
116 |
* @param int $schedule A cron definition string
|
117 |
* @param string $group A group to put the action in
|
118 |
*
|
119 |
+
* @return int The ID of the stored action
|
120 |
*/
|
121 |
public function cron( $hook, $args = array(), $base_timestamp = null, $schedule = null, $group = '' ) {
|
122 |
if ( empty($schedule) ) {
|
170 |
/**
|
171 |
* @param ActionScheduler_Action $action
|
172 |
*
|
173 |
+
* @return int The ID of the stored action
|
174 |
*/
|
175 |
protected function store( ActionScheduler_Action $action ) {
|
176 |
$store = ActionScheduler_Store::instance();
|
lite/includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php
CHANGED
@@ -10,6 +10,9 @@ class ActionScheduler_AdminView extends ActionScheduler_AdminView_Deprecated {
|
|
10 |
|
11 |
private static $screen_id = 'tools_page_action-scheduler';
|
12 |
|
|
|
|
|
|
|
13 |
/**
|
14 |
* @return ActionScheduler_AdminView
|
15 |
* @codeCoverageIgnore
|
@@ -82,18 +85,31 @@ class ActionScheduler_AdminView extends ActionScheduler_AdminView_Deprecated {
|
|
82 |
* Triggers processing of any pending actions.
|
83 |
*/
|
84 |
public function process_admin_ui() {
|
85 |
-
$
|
86 |
-
$table->process_actions();
|
87 |
}
|
88 |
|
89 |
/**
|
90 |
* Renders the Admin UI
|
91 |
*/
|
92 |
public function render_admin_ui() {
|
93 |
-
$table =
|
94 |
$table->display_page();
|
95 |
}
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
/**
|
98 |
* Provide more information about the screen and its data in the help tab.
|
99 |
*/
|
10 |
|
11 |
private static $screen_id = 'tools_page_action-scheduler';
|
12 |
|
13 |
+
/** @var ActionScheduler_ListTable */
|
14 |
+
protected $list_table;
|
15 |
+
|
16 |
/**
|
17 |
* @return ActionScheduler_AdminView
|
18 |
* @codeCoverageIgnore
|
85 |
* Triggers processing of any pending actions.
|
86 |
*/
|
87 |
public function process_admin_ui() {
|
88 |
+
$this->get_list_table();
|
|
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
* Renders the Admin UI
|
93 |
*/
|
94 |
public function render_admin_ui() {
|
95 |
+
$table = $this->get_list_table();
|
96 |
$table->display_page();
|
97 |
}
|
98 |
|
99 |
+
/**
|
100 |
+
* Get the admin UI object and process any requested actions.
|
101 |
+
*
|
102 |
+
* @return ActionScheduler_ListTable
|
103 |
+
*/
|
104 |
+
protected function get_list_table() {
|
105 |
+
if ( null === $this->list_table ) {
|
106 |
+
$this->list_table = new ActionScheduler_ListTable( ActionScheduler::store(), ActionScheduler::logger(), ActionScheduler::runner() );
|
107 |
+
$this->list_table->process_actions();
|
108 |
+
}
|
109 |
+
|
110 |
+
return $this->list_table;
|
111 |
+
}
|
112 |
+
|
113 |
/**
|
114 |
* Provide more information about the screen and its data in the help tab.
|
115 |
*/
|
lite/includes/libraries/action-scheduler/classes/ActionScheduler_Compatibility.php
CHANGED
@@ -92,7 +92,7 @@ class ActionScheduler_Compatibility {
|
|
92 |
|
93 |
if ( function_exists( 'wc_set_time_limit' ) ) {
|
94 |
wc_set_time_limit( $limit );
|
95 |
-
} elseif ( function_exists( 'set_time_limit' ) && false === strpos( ini_get( 'disable_functions' ), 'set_time_limit' )) {
|
96 |
@set_time_limit( $limit );
|
97 |
}
|
98 |
}
|
92 |
|
93 |
if ( function_exists( 'wc_set_time_limit' ) ) {
|
94 |
wc_set_time_limit( $limit );
|
95 |
+
} elseif ( function_exists( 'set_time_limit' ) && false === strpos( ini_get( 'disable_functions' ), 'set_time_limit' ) ) {
|
96 |
@set_time_limit( $limit );
|
97 |
}
|
98 |
}
|
lite/includes/libraries/action-scheduler/classes/ActionScheduler_DataController.php
CHANGED
@@ -101,7 +101,7 @@ class ActionScheduler_DataController {
|
|
101 |
* @param integer $sleep_time The number of seconds to pause before resuming operation.
|
102 |
*/
|
103 |
public static function set_sleep_time( $sleep_time ) {
|
104 |
-
self::$sleep_time = $sleep_time;
|
105 |
}
|
106 |
|
107 |
/**
|
@@ -110,7 +110,7 @@ class ActionScheduler_DataController {
|
|
110 |
* @param integer $free_ticks The number of ticks to free memory on.
|
111 |
*/
|
112 |
public static function set_free_ticks( $free_ticks ) {
|
113 |
-
self::$free_ticks = $free_ticks;
|
114 |
}
|
115 |
|
116 |
/**
|
101 |
* @param integer $sleep_time The number of seconds to pause before resuming operation.
|
102 |
*/
|
103 |
public static function set_sleep_time( $sleep_time ) {
|
104 |
+
self::$sleep_time = (int) $sleep_time;
|
105 |
}
|
106 |
|
107 |
/**
|
110 |
* @param integer $free_ticks The number of ticks to free memory on.
|
111 |
*/
|
112 |
public static function set_free_ticks( $free_ticks ) {
|
113 |
+
self::$free_ticks = (int) $free_ticks;
|
114 |
}
|
115 |
|
116 |
/**
|
lite/includes/libraries/action-scheduler/classes/ActionScheduler_ListTable.php
CHANGED
@@ -307,7 +307,7 @@ class ActionScheduler_ListTable extends ActionScheduler_Abstract_ListTable {
|
|
307 |
* @return string
|
308 |
*/
|
309 |
protected function maybe_render_actions( $row, $column_name ) {
|
310 |
-
if ( 'pending' === strtolower( $row['
|
311 |
return parent::maybe_render_actions( $row, $column_name );
|
312 |
}
|
313 |
|
@@ -318,10 +318,36 @@ class ActionScheduler_ListTable extends ActionScheduler_Abstract_ListTable {
|
|
318 |
* Renders admin notifications
|
319 |
*
|
320 |
* Notifications:
|
321 |
-
* 1. When the maximum number of tasks are being executed simultaneously
|
322 |
-
* 2. Notifications when a task is manually executed
|
|
|
323 |
*/
|
324 |
public function display_admin_notices() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
325 |
if ( $this->runner->has_maximum_concurrent_batches() ) {
|
326 |
$claim_count = $this->store->get_claim_count();
|
327 |
$this->admin_notices[] = array(
|
@@ -473,6 +499,24 @@ class ActionScheduler_ListTable extends ActionScheduler_Abstract_ListTable {
|
|
473 |
$this->process_row_action( $action_id, 'run' );
|
474 |
}
|
475 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
476 |
/**
|
477 |
* Implements the logic behind processing an action once an action link is clicked on the list table.
|
478 |
*
|
@@ -527,9 +571,13 @@ class ActionScheduler_ListTable extends ActionScheduler_Abstract_ListTable {
|
|
527 |
} catch ( Exception $e ) {
|
528 |
continue;
|
529 |
}
|
|
|
|
|
|
|
530 |
$this->items[ $action_id ] = array(
|
531 |
'ID' => $action_id,
|
532 |
'hook' => $action->get_hook(),
|
|
|
533 |
'status' => $status_labels[ $this->store->get_status( $action_id ) ],
|
534 |
'args' => $action->get_args(),
|
535 |
'group' => $action->get_group(),
|
307 |
* @return string
|
308 |
*/
|
309 |
protected function maybe_render_actions( $row, $column_name ) {
|
310 |
+
if ( 'pending' === strtolower( $row[ 'status_name' ] ) ) {
|
311 |
return parent::maybe_render_actions( $row, $column_name );
|
312 |
}
|
313 |
|
318 |
* Renders admin notifications
|
319 |
*
|
320 |
* Notifications:
|
321 |
+
* 1. When the maximum number of tasks are being executed simultaneously.
|
322 |
+
* 2. Notifications when a task is manually executed.
|
323 |
+
* 3. Tables are missing.
|
324 |
*/
|
325 |
public function display_admin_notices() {
|
326 |
+
global $wpdb;
|
327 |
+
|
328 |
+
if ( ( is_a( $this->store, 'ActionScheduler_HybridStore' ) || is_a( $this->store, 'ActionScheduler_DBStore' ) ) && apply_filters( 'action_scheduler_enable_recreate_data_store', true ) ) {
|
329 |
+
$table_list = array(
|
330 |
+
'actionscheduler_actions',
|
331 |
+
'actionscheduler_logs',
|
332 |
+
'actionscheduler_groups',
|
333 |
+
'actionscheduler_claims',
|
334 |
+
);
|
335 |
+
|
336 |
+
$found_tables = $wpdb->get_col( "SHOW TABLES LIKE '{$wpdb->prefix}actionscheduler%'" ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
|
337 |
+
foreach ( $table_list as $table_name ) {
|
338 |
+
if ( ! in_array( $wpdb->prefix . $table_name, $found_tables ) ) {
|
339 |
+
$this->admin_notices[] = array(
|
340 |
+
'class' => 'error',
|
341 |
+
'message' => __( 'It appears one or more database tables were missing. Attempting to re-create the missing table(s).' , 'action-scheduler' ),
|
342 |
+
);
|
343 |
+
$this->recreate_tables();
|
344 |
+
parent::display_admin_notices();
|
345 |
+
|
346 |
+
return;
|
347 |
+
}
|
348 |
+
}
|
349 |
+
}
|
350 |
+
|
351 |
if ( $this->runner->has_maximum_concurrent_batches() ) {
|
352 |
$claim_count = $this->store->get_claim_count();
|
353 |
$this->admin_notices[] = array(
|
499 |
$this->process_row_action( $action_id, 'run' );
|
500 |
}
|
501 |
|
502 |
+
/**
|
503 |
+
* Force the data store schema updates.
|
504 |
+
*/
|
505 |
+
protected function recreate_tables() {
|
506 |
+
if ( is_a( $this->store, 'ActionScheduler_HybridStore' ) ) {
|
507 |
+
$store = $this->store;
|
508 |
+
} else {
|
509 |
+
$store = new ActionScheduler_HybridStore();
|
510 |
+
}
|
511 |
+
add_action( 'action_scheduler/created_table', array( $store, 'set_autoincrement' ), 10, 2 );
|
512 |
+
|
513 |
+
$store_schema = new ActionScheduler_StoreSchema();
|
514 |
+
$logger_schema = new ActionScheduler_LoggerSchema();
|
515 |
+
$store_schema->register_tables( true );
|
516 |
+
$logger_schema->register_tables( true );
|
517 |
+
|
518 |
+
remove_action( 'action_scheduler/created_table', array( $store, 'set_autoincrement' ), 10 );
|
519 |
+
}
|
520 |
/**
|
521 |
* Implements the logic behind processing an action once an action link is clicked on the list table.
|
522 |
*
|
571 |
} catch ( Exception $e ) {
|
572 |
continue;
|
573 |
}
|
574 |
+
if ( is_a( $action, 'ActionScheduler_NullAction' ) ) {
|
575 |
+
continue;
|
576 |
+
}
|
577 |
$this->items[ $action_id ] = array(
|
578 |
'ID' => $action_id,
|
579 |
'hook' => $action->get_hook(),
|
580 |
+
'status_name' => $this->store->get_status( $action_id ),
|
581 |
'status' => $status_labels[ $this->store->get_status( $action_id ) ],
|
582 |
'args' => $action->get_args(),
|
583 |
'group' => $action->get_group(),
|
lite/includes/libraries/action-scheduler/classes/ActionScheduler_wcSystemStatus.php
CHANGED
@@ -93,7 +93,6 @@ class ActionScheduler_wcSystemStatus {
|
|
93 |
*/
|
94 |
protected function get_template( $status_labels, $action_counts, $oldest_and_newest ) {
|
95 |
$as_version = ActionScheduler_Versions::instance()->latest_version();
|
96 |
-
$autoloader = AS_COMPOSER_AUTOLOADING ? __( 'Composer', 'action-scheduler' ) : __( 'Internal', 'action-scheduler' );
|
97 |
?>
|
98 |
|
99 |
<table class="wc_status_table widefat" cellspacing="0">
|
@@ -105,10 +104,6 @@ class ActionScheduler_wcSystemStatus {
|
|
105 |
<td colspan="2" data-export-label="Version"><?php esc_html_e( 'Version:', 'action-scheduler' ); ?></td>
|
106 |
<td colspan="3"><?php echo esc_html( $as_version ); ?></td>
|
107 |
</tr>
|
108 |
-
<tr>
|
109 |
-
<td colspan="2" data-export-label="Version"><?php esc_html_e( 'Autoloader:', 'action-scheduler' ); ?></td>
|
110 |
-
<td colspan="3"><?php echo esc_html( $autoloader ); ?></td>
|
111 |
-
</tr>
|
112 |
<tr>
|
113 |
<td><strong><?php esc_html_e( 'Action Status', 'action-scheduler' ); ?></strong></td>
|
114 |
<td class="help"> </td>
|
93 |
*/
|
94 |
protected function get_template( $status_labels, $action_counts, $oldest_and_newest ) {
|
95 |
$as_version = ActionScheduler_Versions::instance()->latest_version();
|
|
|
96 |
?>
|
97 |
|
98 |
<table class="wc_status_table widefat" cellspacing="0">
|
104 |
<td colspan="2" data-export-label="Version"><?php esc_html_e( 'Version:', 'action-scheduler' ); ?></td>
|
105 |
<td colspan="3"><?php echo esc_html( $as_version ); ?></td>
|
106 |
</tr>
|
|
|
|
|
|
|
|
|
107 |
<tr>
|
108 |
<td><strong><?php esc_html_e( 'Action Status', 'action-scheduler' ); ?></strong></td>
|
109 |
<td class="help"> </td>
|
lite/includes/libraries/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_Scheduler_command.php
CHANGED
@@ -48,8 +48,8 @@ class ActionScheduler_WPCLI_Scheduler_command extends WP_CLI_Command {
|
|
48 |
$hooks = explode( ',', WP_CLI\Utils\get_flag_value( $assoc_args, 'hooks', '' ) );
|
49 |
$hooks = array_filter( array_map( 'trim', $hooks ) );
|
50 |
$group = \WP_CLI\Utils\get_flag_value( $assoc_args, 'group', '' );
|
51 |
-
$free_on = \WP_CLI\Utils\get_flag_value( $assoc_args, 'free-memory-on',
|
52 |
-
$sleep = \WP_CLI\Utils\get_flag_value( $assoc_args, 'pause',
|
53 |
$force = \WP_CLI\Utils\get_flag_value( $assoc_args, 'force', false );
|
54 |
|
55 |
ActionScheduler_DataController::set_free_ticks( $free_on );
|
48 |
$hooks = explode( ',', WP_CLI\Utils\get_flag_value( $assoc_args, 'hooks', '' ) );
|
49 |
$hooks = array_filter( array_map( 'trim', $hooks ) );
|
50 |
$group = \WP_CLI\Utils\get_flag_value( $assoc_args, 'group', '' );
|
51 |
+
$free_on = \WP_CLI\Utils\get_flag_value( $assoc_args, 'free-memory-on', 50 );
|
52 |
+
$sleep = \WP_CLI\Utils\get_flag_value( $assoc_args, 'pause', 0 );
|
53 |
$force = \WP_CLI\Utils\get_flag_value( $assoc_args, 'force', false );
|
54 |
|
55 |
ActionScheduler_DataController::set_free_ticks( $free_on );
|
lite/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler.php
CHANGED
@@ -130,40 +130,36 @@ abstract class ActionScheduler {
|
|
130 |
*/
|
131 |
public static function init( $plugin_file ) {
|
132 |
self::$plugin_file = $plugin_file;
|
133 |
-
|
134 |
-
spl_autoload_register( array( __CLASS__, 'autoload' ) );
|
135 |
-
}
|
136 |
|
137 |
/**
|
138 |
* Fires in the early stages of Action Scheduler init hook.
|
139 |
*/
|
140 |
do_action( 'action_scheduler_pre_init' );
|
141 |
|
142 |
-
require_once( self::plugin_path('functions.php') );
|
143 |
ActionScheduler_DataController::init();
|
144 |
|
145 |
-
$store
|
146 |
-
|
147 |
-
|
148 |
-
$logger = self::logger();
|
149 |
-
add_action( 'init', array( $logger, 'init' ), 1, 0 );
|
150 |
-
|
151 |
-
$runner = self::runner();
|
152 |
-
add_action( 'init', array( $runner, 'init' ), 1, 0 );
|
153 |
-
|
154 |
$admin_view = self::admin_view();
|
155 |
-
add_action( 'init', array( $admin_view, 'init' ), 0, 0 ); // run before $store::init()
|
156 |
|
157 |
// Ensure initialization on plugin activation.
|
158 |
-
if ( did_action( 'init' ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
$store->init();
|
160 |
$logger->init();
|
161 |
$runner->init();
|
162 |
-
$admin_view->init();
|
163 |
}
|
164 |
|
165 |
if ( apply_filters( 'action_scheduler_load_deprecated_functions', true ) ) {
|
166 |
-
require_once( self::plugin_path('deprecated/functions.php') );
|
167 |
}
|
168 |
|
169 |
if ( defined( 'WP_CLI' ) && WP_CLI ) {
|
130 |
*/
|
131 |
public static function init( $plugin_file ) {
|
132 |
self::$plugin_file = $plugin_file;
|
133 |
+
spl_autoload_register( array( __CLASS__, 'autoload' ) );
|
|
|
|
|
134 |
|
135 |
/**
|
136 |
* Fires in the early stages of Action Scheduler init hook.
|
137 |
*/
|
138 |
do_action( 'action_scheduler_pre_init' );
|
139 |
|
140 |
+
require_once( self::plugin_path( 'functions.php' ) );
|
141 |
ActionScheduler_DataController::init();
|
142 |
|
143 |
+
$store = self::store();
|
144 |
+
$logger = self::logger();
|
145 |
+
$runner = self::runner();
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
$admin_view = self::admin_view();
|
|
|
147 |
|
148 |
// Ensure initialization on plugin activation.
|
149 |
+
if ( ! did_action( 'init' ) ) {
|
150 |
+
add_action( 'init', array( $admin_view, 'init' ), 0, 0 ); // run before $store::init()
|
151 |
+
add_action( 'init', array( $store, 'init' ), 1, 0 );
|
152 |
+
add_action( 'init', array( $logger, 'init' ), 1, 0 );
|
153 |
+
add_action( 'init', array( $runner, 'init' ), 1, 0 );
|
154 |
+
} else {
|
155 |
+
$admin_view->init();
|
156 |
$store->init();
|
157 |
$logger->init();
|
158 |
$runner->init();
|
|
|
159 |
}
|
160 |
|
161 |
if ( apply_filters( 'action_scheduler_load_deprecated_functions', true ) ) {
|
162 |
+
require_once( self::plugin_path( 'deprecated/functions.php' ) );
|
163 |
}
|
164 |
|
165 |
if ( defined( 'WP_CLI' ) && WP_CLI ) {
|
lite/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php
CHANGED
@@ -140,7 +140,6 @@ abstract class ActionScheduler_Abstract_ListTable extends WP_List_Table {
|
|
140 |
global $wpdb;
|
141 |
// Detect when a bulk action is being triggered.
|
142 |
$action = $this->current_action();
|
143 |
-
|
144 |
if ( ! $action ) {
|
145 |
return;
|
146 |
}
|
@@ -161,13 +160,14 @@ abstract class ActionScheduler_Abstract_ListTable extends WP_List_Table {
|
|
161 |
}
|
162 |
|
163 |
/**
|
164 |
-
* Default code for deleting entries.
|
165 |
* validated already by process_bulk_action()
|
166 |
*/
|
167 |
protected function bulk_delete( array $ids, $ids_sql ) {
|
168 |
-
|
169 |
-
|
170 |
-
|
|
|
171 |
}
|
172 |
|
173 |
/**
|
@@ -642,7 +642,6 @@ abstract class ActionScheduler_Abstract_ListTable extends WP_List_Table {
|
|
642 |
*/
|
643 |
public function process_actions() {
|
644 |
$this->process_bulk_action();
|
645 |
-
|
646 |
$this->process_row_actions();
|
647 |
|
648 |
if ( ! empty( $_REQUEST['_wp_http_referer'] ) ) {
|
140 |
global $wpdb;
|
141 |
// Detect when a bulk action is being triggered.
|
142 |
$action = $this->current_action();
|
|
|
143 |
if ( ! $action ) {
|
144 |
return;
|
145 |
}
|
160 |
}
|
161 |
|
162 |
/**
|
163 |
+
* Default code for deleting entries.
|
164 |
* validated already by process_bulk_action()
|
165 |
*/
|
166 |
protected function bulk_delete( array $ids, $ids_sql ) {
|
167 |
+
$store = ActionScheduler::store();
|
168 |
+
foreach ( $ids as $action_id ) {
|
169 |
+
$store->delete( $action_id );
|
170 |
+
}
|
171 |
}
|
172 |
|
173 |
/**
|
642 |
*/
|
643 |
public function process_actions() {
|
644 |
$this->process_bulk_action();
|
|
|
645 |
$this->process_row_actions();
|
646 |
|
647 |
if ( ! empty( $_REQUEST['_wp_http_referer'] ) ) {
|
lite/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schema.php
CHANGED
@@ -25,9 +25,11 @@ abstract class ActionScheduler_Abstract_Schema {
|
|
25 |
/**
|
26 |
* Register tables with WordPress, and create them if needed.
|
27 |
*
|
|
|
|
|
28 |
* @return void
|
29 |
*/
|
30 |
-
public function register_tables() {
|
31 |
global $wpdb;
|
32 |
|
33 |
// make WP aware of our tables
|
@@ -38,7 +40,7 @@ abstract class ActionScheduler_Abstract_Schema {
|
|
38 |
}
|
39 |
|
40 |
// create the tables
|
41 |
-
if ( $this->schema_update_required() ) {
|
42 |
foreach ( $this->tables as $table ) {
|
43 |
$this->update_table( $table );
|
44 |
}
|
25 |
/**
|
26 |
* Register tables with WordPress, and create them if needed.
|
27 |
*
|
28 |
+
* @param bool $force_update Optional. Default false. Use true to always run the schema update.
|
29 |
+
*
|
30 |
* @return void
|
31 |
*/
|
32 |
+
public function register_tables( $force_update = false ) {
|
33 |
global $wpdb;
|
34 |
|
35 |
// make WP aware of our tables
|
40 |
}
|
41 |
|
42 |
// create the tables
|
43 |
+
if ( $this->schema_update_required() || $force_update ) {
|
44 |
foreach ( $this->tables as $table ) {
|
45 |
$this->update_table( $table );
|
46 |
}
|
lite/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler_Logger.php
CHANGED
@@ -130,7 +130,7 @@ abstract class ActionScheduler_Logger {
|
|
130 |
} else {
|
131 |
$message = __( 'action ignored', 'action-scheduler' );
|
132 |
}
|
133 |
-
$this->log( $action_id,
|
134 |
}
|
135 |
|
136 |
/**
|
130 |
} else {
|
131 |
$message = __( 'action ignored', 'action-scheduler' );
|
132 |
}
|
133 |
+
$this->log( $action_id, $message );
|
134 |
}
|
135 |
|
136 |
/**
|
lite/includes/libraries/action-scheduler/classes/abstracts/ActionScheduler_Store.php
CHANGED
@@ -24,7 +24,7 @@ abstract class ActionScheduler_Store extends ActionScheduler_Store_Deprecated {
|
|
24 |
* to store. Otherwise uses the first date of the action's
|
25 |
* schedule.
|
26 |
*
|
27 |
-
* @return
|
28 |
*/
|
29 |
abstract public function save_action( ActionScheduler_Action $action, DateTime $scheduled_date = NULL );
|
30 |
|
24 |
* to store. Otherwise uses the first date of the action's
|
25 |
* schedule.
|
26 |
*
|
27 |
+
* @return int The action ID
|
28 |
*/
|
29 |
abstract public function save_action( ActionScheduler_Action $action, DateTime $scheduled_date = NULL );
|
30 |
|
lite/includes/libraries/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php
CHANGED
@@ -56,7 +56,8 @@ class ActionScheduler_DBStore extends ActionScheduler_Store {
|
|
56 |
$data['extended_args'] = $args;
|
57 |
}
|
58 |
|
59 |
-
$wpdb->
|
|
|
60 |
$action_id = $wpdb->insert_id;
|
61 |
|
62 |
if ( is_wp_error( $action_id ) ) {
|
56 |
$data['extended_args'] = $args;
|
57 |
}
|
58 |
|
59 |
+
$table_name = ! empty( $wpdb->actionscheduler_actions ) ? $wpdb->actionscheduler_actions : $wpdb->prefix . 'actionscheduler_actions';
|
60 |
+
$wpdb->insert( $table_name, $data );
|
61 |
$action_id = $wpdb->insert_id;
|
62 |
|
63 |
if ( is_wp_error( $action_id ) ) {
|
lite/includes/libraries/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php
CHANGED
@@ -77,18 +77,33 @@ class ActionScheduler_HybridStore extends Store {
|
|
77 |
}
|
78 |
/** @var \wpdb $wpdb */
|
79 |
global $wpdb;
|
80 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
$wpdb->{ActionScheduler_StoreSchema::ACTIONS_TABLE},
|
82 |
[
|
83 |
-
'action_id'
|
84 |
-
'hook'
|
85 |
-
'status'
|
|
|
|
|
|
|
|
|
86 |
]
|
87 |
);
|
88 |
-
$
|
89 |
-
$wpdb->
|
90 |
-
|
91 |
-
|
|
|
|
|
92 |
}
|
93 |
}
|
94 |
|
@@ -220,6 +235,8 @@ class ActionScheduler_HybridStore extends Store {
|
|
220 |
*
|
221 |
* @param ActionScheduler_Action $action Action object to be saved.
|
222 |
* @param DateTime $date Optional. Schedule date. Default null.
|
|
|
|
|
223 |
*/
|
224 |
public function save_action( ActionScheduler_Action $action, DateTime $date = null ) {
|
225 |
return $this->primary_store->save_action( $action, $date );
|
@@ -231,10 +248,11 @@ class ActionScheduler_HybridStore extends Store {
|
|
231 |
* @param int $action_id Action ID.
|
232 |
*/
|
233 |
public function fetch_action( $action_id ) {
|
234 |
-
|
235 |
-
|
|
|
236 |
} else {
|
237 |
-
return
|
238 |
}
|
239 |
}
|
240 |
|
@@ -244,10 +262,9 @@ class ActionScheduler_HybridStore extends Store {
|
|
244 |
* @param int $action_id Action ID.
|
245 |
*/
|
246 |
public function cancel_action( $action_id ) {
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
$this->primary_store->cancel_action( $action_id );
|
251 |
}
|
252 |
}
|
253 |
|
@@ -257,10 +274,9 @@ class ActionScheduler_HybridStore extends Store {
|
|
257 |
* @param int $action_id Action ID.
|
258 |
*/
|
259 |
public function delete_action( $action_id ) {
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
$this->primary_store->delete_action( $action_id );
|
264 |
}
|
265 |
}
|
266 |
|
@@ -270,10 +286,11 @@ class ActionScheduler_HybridStore extends Store {
|
|
270 |
* @param int $action_id Action ID.
|
271 |
*/
|
272 |
public function get_date( $action_id ) {
|
273 |
-
|
274 |
-
|
|
|
275 |
} else {
|
276 |
-
return
|
277 |
}
|
278 |
}
|
279 |
|
@@ -283,10 +300,9 @@ class ActionScheduler_HybridStore extends Store {
|
|
283 |
* @param int $action_id Action ID.
|
284 |
*/
|
285 |
public function mark_failure( $action_id ) {
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
$this->primary_store->mark_failure( $action_id );
|
290 |
}
|
291 |
}
|
292 |
|
@@ -296,10 +312,9 @@ class ActionScheduler_HybridStore extends Store {
|
|
296 |
* @param int $action_id Action ID.
|
297 |
*/
|
298 |
public function log_execution( $action_id ) {
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
$this->primary_store->log_execution( $action_id );
|
303 |
}
|
304 |
}
|
305 |
|
@@ -309,10 +324,9 @@ class ActionScheduler_HybridStore extends Store {
|
|
309 |
* @param int $action_id Action ID.
|
310 |
*/
|
311 |
public function mark_complete( $action_id ) {
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
$this->primary_store->mark_complete( $action_id );
|
316 |
}
|
317 |
}
|
318 |
|
@@ -322,13 +336,45 @@ class ActionScheduler_HybridStore extends Store {
|
|
322 |
* @param int $action_id Action ID.
|
323 |
*/
|
324 |
public function get_status( $action_id ) {
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
return $this->primary_store->get_status( $action_id );
|
329 |
}
|
|
|
330 |
}
|
331 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
332 |
|
333 |
/* * * * * * * * * * * * * * * * * * * * * * * * * * *
|
334 |
* All claim-related functions should operate solely
|
77 |
}
|
78 |
/** @var \wpdb $wpdb */
|
79 |
global $wpdb;
|
80 |
+
/**
|
81 |
+
* A default date of '0000-00-00 00:00:00' is invalid in MySQL 5.7 when configured with
|
82 |
+
* sql_mode including both STRICT_TRANS_TABLES and NO_ZERO_DATE.
|
83 |
+
*/
|
84 |
+
$default_date = new DateTime( 'tomorrow' );
|
85 |
+
$null_action = new ActionScheduler_NullAction();
|
86 |
+
$date_gmt = $this->get_scheduled_date_string( $null_action, $default_date );
|
87 |
+
$date_local = $this->get_scheduled_date_string_local( $null_action, $default_date );
|
88 |
+
|
89 |
+
$row_count = $wpdb->insert(
|
90 |
$wpdb->{ActionScheduler_StoreSchema::ACTIONS_TABLE},
|
91 |
[
|
92 |
+
'action_id' => $this->demarkation_id,
|
93 |
+
'hook' => '',
|
94 |
+
'status' => '',
|
95 |
+
'scheduled_date_gmt' => $date_gmt,
|
96 |
+
'scheduled_date_local' => $date_local,
|
97 |
+
'last_attempt_gmt' => $date_gmt,
|
98 |
+
'last_attempt_local' => $date_local,
|
99 |
]
|
100 |
);
|
101 |
+
if ( $row_count > 0 ) {
|
102 |
+
$wpdb->delete(
|
103 |
+
$wpdb->{ActionScheduler_StoreSchema::ACTIONS_TABLE},
|
104 |
+
[ 'action_id' => $this->demarkation_id ]
|
105 |
+
);
|
106 |
+
}
|
107 |
}
|
108 |
}
|
109 |
|
235 |
*
|
236 |
* @param ActionScheduler_Action $action Action object to be saved.
|
237 |
* @param DateTime $date Optional. Schedule date. Default null.
|
238 |
+
*
|
239 |
+
* @return int The action ID
|
240 |
*/
|
241 |
public function save_action( ActionScheduler_Action $action, DateTime $date = null ) {
|
242 |
return $this->primary_store->save_action( $action, $date );
|
248 |
* @param int $action_id Action ID.
|
249 |
*/
|
250 |
public function fetch_action( $action_id ) {
|
251 |
+
$store = $this->get_store_from_action_id( $action_id, true );
|
252 |
+
if ( $store ) {
|
253 |
+
return $store->fetch_action( $action_id );
|
254 |
} else {
|
255 |
+
return new ActionScheduler_NullAction();
|
256 |
}
|
257 |
}
|
258 |
|
262 |
* @param int $action_id Action ID.
|
263 |
*/
|
264 |
public function cancel_action( $action_id ) {
|
265 |
+
$store = $this->get_store_from_action_id( $action_id );
|
266 |
+
if ( $store ) {
|
267 |
+
$store->cancel_action( $action_id );
|
|
|
268 |
}
|
269 |
}
|
270 |
|
274 |
* @param int $action_id Action ID.
|
275 |
*/
|
276 |
public function delete_action( $action_id ) {
|
277 |
+
$store = $this->get_store_from_action_id( $action_id );
|
278 |
+
if ( $store ) {
|
279 |
+
$store->delete_action( $action_id );
|
|
|
280 |
}
|
281 |
}
|
282 |
|
286 |
* @param int $action_id Action ID.
|
287 |
*/
|
288 |
public function get_date( $action_id ) {
|
289 |
+
$store = $this->get_store_from_action_id( $action_id );
|
290 |
+
if ( $store ) {
|
291 |
+
return $store->get_date( $action_id );
|
292 |
} else {
|
293 |
+
return null;
|
294 |
}
|
295 |
}
|
296 |
|
300 |
* @param int $action_id Action ID.
|
301 |
*/
|
302 |
public function mark_failure( $action_id ) {
|
303 |
+
$store = $this->get_store_from_action_id( $action_id );
|
304 |
+
if ( $store ) {
|
305 |
+
$store->mark_failure( $action_id );
|
|
|
306 |
}
|
307 |
}
|
308 |
|
312 |
* @param int $action_id Action ID.
|
313 |
*/
|
314 |
public function log_execution( $action_id ) {
|
315 |
+
$store = $this->get_store_from_action_id( $action_id );
|
316 |
+
if ( $store ) {
|
317 |
+
$store->log_execution( $action_id );
|
|
|
318 |
}
|
319 |
}
|
320 |
|
324 |
* @param int $action_id Action ID.
|
325 |
*/
|
326 |
public function mark_complete( $action_id ) {
|
327 |
+
$store = $this->get_store_from_action_id( $action_id );
|
328 |
+
if ( $store ) {
|
329 |
+
$store->mark_complete( $action_id );
|
|
|
330 |
}
|
331 |
}
|
332 |
|
336 |
* @param int $action_id Action ID.
|
337 |
*/
|
338 |
public function get_status( $action_id ) {
|
339 |
+
$store = $this->get_store_from_action_id( $action_id );
|
340 |
+
if ( $store ) {
|
341 |
+
return $store->get_status( $action_id );
|
|
|
342 |
}
|
343 |
+
return null;
|
344 |
}
|
345 |
|
346 |
+
/**
|
347 |
+
* Return which store an action is stored in.
|
348 |
+
*
|
349 |
+
* @param int $action_id ID of the action.
|
350 |
+
* @param bool $primary_first Optional flag indicating search the primary store first.
|
351 |
+
* @return ActionScheduler_Store
|
352 |
+
*/
|
353 |
+
protected function get_store_from_action_id( $action_id, $primary_first = false ) {
|
354 |
+
if ( $primary_first ) {
|
355 |
+
$stores = [
|
356 |
+
$this->primary_store,
|
357 |
+
$this->secondary_store,
|
358 |
+
];
|
359 |
+
} elseif ( $action_id < $this->demarkation_id ) {
|
360 |
+
$stores = [
|
361 |
+
$this->secondary_store,
|
362 |
+
$this->primary_store,
|
363 |
+
];
|
364 |
+
} else {
|
365 |
+
$stores = [
|
366 |
+
$this->primary_store,
|
367 |
+
];
|
368 |
+
}
|
369 |
+
|
370 |
+
foreach ( $stores as $store ) {
|
371 |
+
$action = $store->fetch_action( $action_id );
|
372 |
+
if ( ! is_a( $action, 'ActionScheduler_NullAction' ) ) {
|
373 |
+
return $store;
|
374 |
+
}
|
375 |
+
}
|
376 |
+
return null;
|
377 |
+
}
|
378 |
|
379 |
/* * * * * * * * * * * * * * * * * * * * * * * * * * *
|
380 |
* All claim-related functions should operate solely
|
lite/includes/libraries/action-scheduler/functions.php
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
* @param string $hook The hook to trigger.
|
11 |
* @param array $args Arguments to pass when the hook triggers.
|
12 |
* @param string $group The group to assign this job to.
|
13 |
-
* @return
|
14 |
*/
|
15 |
function as_enqueue_async_action( $hook, $args = array(), $group = '' ) {
|
16 |
return ActionScheduler::factory()->async( $hook, $args, $group );
|
@@ -19,12 +19,12 @@ function as_enqueue_async_action( $hook, $args = array(), $group = '' ) {
|
|
19 |
/**
|
20 |
* Schedule an action to run one time
|
21 |
*
|
22 |
-
* @param int $timestamp When the job will run
|
23 |
-
* @param string $hook The hook to trigger
|
24 |
-
* @param array $args Arguments to pass when the hook triggers
|
25 |
-
* @param string $group The group to assign this job to
|
26 |
*
|
27 |
-
* @return
|
28 |
*/
|
29 |
function as_schedule_single_action( $timestamp, $hook, $args = array(), $group = '' ) {
|
30 |
return ActionScheduler::factory()->single( $hook, $args, $timestamp, $group );
|
@@ -33,13 +33,13 @@ function as_schedule_single_action( $timestamp, $hook, $args = array(), $group =
|
|
33 |
/**
|
34 |
* Schedule a recurring action
|
35 |
*
|
36 |
-
* @param int $timestamp When the first instance of the job will run
|
37 |
-
* @param int $interval_in_seconds How long to wait between runs
|
38 |
-
* @param string $hook The hook to trigger
|
39 |
-
* @param array $args Arguments to pass when the hook triggers
|
40 |
-
* @param string $group The group to assign this job to
|
41 |
*
|
42 |
-
* @return
|
43 |
*/
|
44 |
function as_schedule_recurring_action( $timestamp, $interval_in_seconds, $hook, $args = array(), $group = '' ) {
|
45 |
return ActionScheduler::factory()->recurring( $hook, $args, $timestamp, $interval_in_seconds, $group );
|
@@ -62,11 +62,11 @@ function as_schedule_recurring_action( $timestamp, $interval_in_seconds, $hook,
|
|
62 |
* | | +--------------- day of month (1 - 31)
|
63 |
* | +-------------------- hour (0 - 23)
|
64 |
* +------------------------- min (0 - 59)
|
65 |
-
* @param string $hook The hook to trigger
|
66 |
-
* @param array $args Arguments to pass when the hook triggers
|
67 |
-
* @param string $group The group to assign this job to
|
68 |
*
|
69 |
-
* @return
|
70 |
*/
|
71 |
function as_schedule_cron_action( $timestamp, $schedule, $hook, $args = array(), $group = '' ) {
|
72 |
return ActionScheduler::factory()->cron( $hook, $args, $timestamp, $schedule, $group );
|
@@ -82,11 +82,11 @@ function as_schedule_cron_action( $timestamp, $schedule, $hook, $args = array(),
|
|
82 |
* then the following instance will never be scheduled (or exist), which is effectively the same as being unscheduled
|
83 |
* by this method also.
|
84 |
*
|
85 |
-
* @param string $hook The hook that the job will trigger
|
86 |
-
* @param array $args Args that would have been passed to the job
|
87 |
-
* @param string $group
|
88 |
*
|
89 |
-
* @return string The scheduled action ID if a scheduled action was found, or
|
90 |
*/
|
91 |
function as_unschedule_action( $hook, $args = array(), $group = '' ) {
|
92 |
$params = array();
|
@@ -108,9 +108,9 @@ function as_unschedule_action( $hook, $args = array(), $group = '' ) {
|
|
108 |
/**
|
109 |
* Cancel all occurrences of a scheduled action.
|
110 |
*
|
111 |
-
* @param string $hook The hook that the job will trigger
|
112 |
-
* @param array $args Args that would have been passed to the job
|
113 |
-
* @param string $group
|
114 |
*/
|
115 |
function as_unschedule_all_actions( $hook, $args = array(), $group = '' ) {
|
116 |
if ( empty( $args ) ) {
|
@@ -131,7 +131,7 @@ function as_unschedule_all_actions( $hook, $args = array(), $group = '' ) {
|
|
131 |
/**
|
132 |
* Check if there is an existing action in the queue with a given hook, args and group combination.
|
133 |
*
|
134 |
-
* An action in the queue could be pending, in-progress or
|
135 |
* future, its scheduled date will be returned as a timestamp. If it is currently being run, or an
|
136 |
* async action sitting in the queue waiting to be processed, in which case boolean true will be
|
137 |
* returned. Or there may be no async, in-progress or pending action for this hook, in which case,
|
@@ -191,7 +191,7 @@ function as_next_scheduled_action( $hook, $args = NULL, $group = '' ) {
|
|
191 |
* 'orderby' => 'date' - accepted values are 'hook', 'group', 'modified', or 'date'
|
192 |
* 'order' => 'ASC'
|
193 |
*
|
194 |
-
* @param string $return_format OBJECT, ARRAY_A, or ids
|
195 |
*
|
196 |
* @return array
|
197 |
*/
|
@@ -234,8 +234,8 @@ function as_get_scheduled_actions( $args = array(), $return_format = OBJECT ) {
|
|
234 |
* timezone when instantiating datetimes rather than leaving it up to
|
235 |
* the PHP default.
|
236 |
*
|
237 |
-
* @param mixed $date_string A date/time string. Valid formats are explained in http://php.net/manual/en/datetime.formats.php
|
238 |
-
* @param string $timezone A timezone identifier, like UTC or Europe/Lisbon. The list of valid identifiers is available http://php.net/manual/en/timezones.php
|
239 |
*
|
240 |
* @return ActionScheduler_DateTime
|
241 |
*/
|
10 |
* @param string $hook The hook to trigger.
|
11 |
* @param array $args Arguments to pass when the hook triggers.
|
12 |
* @param string $group The group to assign this job to.
|
13 |
+
* @return int The action ID.
|
14 |
*/
|
15 |
function as_enqueue_async_action( $hook, $args = array(), $group = '' ) {
|
16 |
return ActionScheduler::factory()->async( $hook, $args, $group );
|
19 |
/**
|
20 |
* Schedule an action to run one time
|
21 |
*
|
22 |
+
* @param int $timestamp When the job will run.
|
23 |
+
* @param string $hook The hook to trigger.
|
24 |
+
* @param array $args Arguments to pass when the hook triggers.
|
25 |
+
* @param string $group The group to assign this job to.
|
26 |
*
|
27 |
+
* @return int The action ID.
|
28 |
*/
|
29 |
function as_schedule_single_action( $timestamp, $hook, $args = array(), $group = '' ) {
|
30 |
return ActionScheduler::factory()->single( $hook, $args, $timestamp, $group );
|
33 |
/**
|
34 |
* Schedule a recurring action
|
35 |
*
|
36 |
+
* @param int $timestamp When the first instance of the job will run.
|
37 |
+
* @param int $interval_in_seconds How long to wait between runs.
|
38 |
+
* @param string $hook The hook to trigger.
|
39 |
+
* @param array $args Arguments to pass when the hook triggers.
|
40 |
+
* @param string $group The group to assign this job to.
|
41 |
*
|
42 |
+
* @return int The action ID.
|
43 |
*/
|
44 |
function as_schedule_recurring_action( $timestamp, $interval_in_seconds, $hook, $args = array(), $group = '' ) {
|
45 |
return ActionScheduler::factory()->recurring( $hook, $args, $timestamp, $interval_in_seconds, $group );
|
62 |
* | | +--------------- day of month (1 - 31)
|
63 |
* | +-------------------- hour (0 - 23)
|
64 |
* +------------------------- min (0 - 59)
|
65 |
+
* @param string $hook The hook to trigger.
|
66 |
+
* @param array $args Arguments to pass when the hook triggers.
|
67 |
+
* @param string $group The group to assign this job to.
|
68 |
*
|
69 |
+
* @return int The action ID.
|
70 |
*/
|
71 |
function as_schedule_cron_action( $timestamp, $schedule, $hook, $args = array(), $group = '' ) {
|
72 |
return ActionScheduler::factory()->cron( $hook, $args, $timestamp, $schedule, $group );
|
82 |
* then the following instance will never be scheduled (or exist), which is effectively the same as being unscheduled
|
83 |
* by this method also.
|
84 |
*
|
85 |
+
* @param string $hook The hook that the job will trigger.
|
86 |
+
* @param array $args Args that would have been passed to the job.
|
87 |
+
* @param string $group The group the job is assigned to.
|
88 |
*
|
89 |
+
* @return string|null The scheduled action ID if a scheduled action was found, or null if no matching action found.
|
90 |
*/
|
91 |
function as_unschedule_action( $hook, $args = array(), $group = '' ) {
|
92 |
$params = array();
|
108 |
/**
|
109 |
* Cancel all occurrences of a scheduled action.
|
110 |
*
|
111 |
+
* @param string $hook The hook that the job will trigger.
|
112 |
+
* @param array $args Args that would have been passed to the job.
|
113 |
+
* @param string $group The group the job is assigned to.
|
114 |
*/
|
115 |
function as_unschedule_all_actions( $hook, $args = array(), $group = '' ) {
|
116 |
if ( empty( $args ) ) {
|
131 |
/**
|
132 |
* Check if there is an existing action in the queue with a given hook, args and group combination.
|
133 |
*
|
134 |
+
* An action in the queue could be pending, in-progress or async. If the is pending for a time in
|
135 |
* future, its scheduled date will be returned as a timestamp. If it is currently being run, or an
|
136 |
* async action sitting in the queue waiting to be processed, in which case boolean true will be
|
137 |
* returned. Or there may be no async, in-progress or pending action for this hook, in which case,
|
191 |
* 'orderby' => 'date' - accepted values are 'hook', 'group', 'modified', or 'date'
|
192 |
* 'order' => 'ASC'
|
193 |
*
|
194 |
+
* @param string $return_format OBJECT, ARRAY_A, or ids.
|
195 |
*
|
196 |
* @return array
|
197 |
*/
|
234 |
* timezone when instantiating datetimes rather than leaving it up to
|
235 |
* the PHP default.
|
236 |
*
|
237 |
+
* @param mixed $date_string A date/time string. Valid formats are explained in http://php.net/manual/en/datetime.formats.php.
|
238 |
+
* @param string $timezone A timezone identifier, like UTC or Europe/Lisbon. The list of valid identifiers is available http://php.net/manual/en/timezones.php.
|
239 |
*
|
240 |
* @return ActionScheduler_DateTime
|
241 |
*/
|
lite/includes/pro-features.php
CHANGED
@@ -17,6 +17,12 @@ add_action( 'ig_es_sync_users_tabs_edd', 'ig_es_add_edd_tab_settings' );
|
|
17 |
|
18 |
add_action( 'edit_form_advanced', 'add_spam_score_utm_link' );
|
19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
/**
|
21 |
* Promote SMTP mailer for free
|
22 |
*
|
@@ -35,7 +41,7 @@ function ig_es_mailers_promo( $mailers ) {
|
|
35 |
'logo' => ES_PLUGIN_URL . 'lite/admin/images/smtp.png',
|
36 |
'is_premium' => true,
|
37 |
'url' => ES_Common::get_utm_tracking_url( array( 'utm_medium' => 'smtp_mailer' )
|
38 |
-
|
39 |
);
|
40 |
|
41 |
}
|
@@ -60,62 +66,62 @@ function render_user_permissions_settings_fields_premium() {
|
|
60 |
ob_start();
|
61 |
?>
|
62 |
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
?>
|
87 |
-
|
88 |
-
|
89 |
-
<div class="flex items-center">
|
90 |
-
<div class="flex-shrink-0">
|
91 |
-
<span class="text-sm leading-5 font-medium text-center text-gray-800"><?php echo $value; ?></span>
|
92 |
-
</div>
|
93 |
-
</div>
|
94 |
-
</td>
|
95 |
-
<td class="whitespace-no-wrap text-center">
|
96 |
-
<input type="checkbox" name="" disabled <?php ! empty( $user_roles['audience'][ $key ] ) ? checked( 'yes', $user_roles['audience'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
97 |
-
</td>
|
98 |
-
<td class="whitespace-no-wrap text-center">
|
99 |
-
<input type="checkbox" name="" disabled<?php ! empty( $user_roles['forms'][ $key ] ) ? checked( 'yes', $user_roles['forms'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
100 |
-
</td>
|
101 |
-
<td class="whitespace-no-wrap text-center">
|
102 |
-
<input type="checkbox" name="" disabled <?php ! empty( $user_roles['campaigns'][ $key ] ) ? checked( 'yes', $user_roles['campaigns'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
103 |
-
</td>
|
104 |
-
<td class="whitespace-no-wrap text-center">
|
105 |
-
<input type="checkbox" name="" disabled <?php ! empty( $user_roles['reports'][ $key ] ) ? checked( 'yes', $user_roles['reports'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
106 |
-
</td>
|
107 |
-
<td class="whitespace-no-wrap text-center">
|
108 |
-
<input type="checkbox" name="" disabled <?php ! empty( $user_roles['sequences'][ $key ] ) ? checked( 'yes', $user_roles['sequences'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
109 |
-
</td>
|
110 |
-
<td class="whitespace-no-wrap text-center">
|
111 |
-
<input type="checkbox" name="" disabled <?php ! empty( $user_roles['workflows'][ $key ] ) ? checked( 'yes', $user_roles['workflows'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
112 |
-
</td>
|
113 |
-
</tr>
|
114 |
-
<?php
|
115 |
-
}
|
116 |
-
?>
|
117 |
-
</tbody>
|
118 |
-
</table>
|
119 |
|
120 |
|
121 |
<?php
|
@@ -142,28 +148,63 @@ function ig_es_add_upsale( $fields ) {
|
|
142 |
|
143 |
if ( ! ES()->is_pro() ) {
|
144 |
|
|
|
|
|
|
|
|
|
|
|
145 |
// General Settings
|
146 |
$track_link_click = array(
|
147 |
'ig_es_track_link_click' => array(
|
148 |
-
'id'
|
149 |
-
'name'
|
150 |
-
'type'
|
151 |
-
'default'
|
152 |
-
'is_premium'
|
153 |
-
'link'
|
154 |
-
'disabled'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
)
|
156 |
);
|
157 |
|
158 |
$general_fields = $fields['general'];
|
159 |
|
160 |
$general_fields = ig_es_array_insert_after( $general_fields, 'ig_es_track_email_opens', $track_link_click );
|
|
|
161 |
|
162 |
$fields['general'] = $general_fields;
|
163 |
}
|
164 |
|
165 |
if ( ! ES()->is_premium() ) {
|
166 |
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
// Security Settings
|
168 |
$fake_domains['ig_es_enable_known_attackers_domains'] = array(
|
169 |
'id' => 'ig_es_enable_known_attackers_domains_p',
|
@@ -173,7 +214,7 @@ function ig_es_add_upsale( $fields ) {
|
|
173 |
'default' => 'no',
|
174 |
'is_premium' => true,
|
175 |
'link' => ES_Common::get_utm_tracking_url( array( 'utm_medium' => 'known_attackers' ) ),
|
176 |
-
'disabled' => true
|
177 |
);
|
178 |
|
179 |
$managed_blocked_domains['ig_es_enable_disposable_domains'] = array(
|
@@ -184,19 +225,21 @@ function ig_es_add_upsale( $fields ) {
|
|
184 |
'default' => 'no',
|
185 |
'is_premium' => true,
|
186 |
'link' => ES_Common::get_utm_tracking_url( array( 'utm_medium' => 'disposable_domains' ) ),
|
187 |
-
'disabled' => true
|
188 |
);
|
189 |
|
190 |
//add captcha setting
|
191 |
$field_captcha['enable_captcha'] = array(
|
192 |
-
'id'
|
193 |
-
'name'
|
194 |
-
'info'
|
195 |
-
'type'
|
196 |
-
'default'
|
197 |
-
'is_premium'
|
198 |
-
'link'
|
199 |
-
'disabled'
|
|
|
|
|
200 |
);
|
201 |
|
202 |
$fields['security_settings'] = array_merge( $fields['security_settings'], $fake_domains, $managed_blocked_domains, $field_captcha );
|
@@ -309,23 +352,23 @@ function ig_es_add_comments_tab_settings( $tab_options ) {
|
|
309 |
|
310 |
ob_start();
|
311 |
?>
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
<?php
|
322 |
|
323 |
$content = ob_get_clean();
|
324 |
|
325 |
?>
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
<?php
|
330 |
ES_Common::prepare_information_box( $info, $content );
|
331 |
}
|
@@ -338,206 +381,415 @@ function ig_es_add_woocommerce_tab_settings( $tab_options ) {
|
|
338 |
|
339 |
ob_start();
|
340 |
?>
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
|
357 |
-
|
358 |
|
359 |
-
|
360 |
|
361 |
-
|
362 |
|
363 |
-
|
364 |
-
}
|
365 |
|
366 |
-
function ig_es_add_cf7_tab_settings( $tab_options ) {
|
367 |
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
|
389 |
-
|
390 |
|
391 |
-
|
392 |
|
393 |
-
|
394 |
|
395 |
-
|
396 |
-
}
|
397 |
|
398 |
-
function ig_es_add_give_tab_settings( $tab_options ) {
|
399 |
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
|
421 |
-
|
422 |
|
423 |
-
|
424 |
|
425 |
-
|
426 |
|
427 |
-
|
428 |
-
}
|
429 |
|
430 |
-
function ig_es_add_wpforms_tab_settings( $tab_options ) {
|
431 |
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
|
453 |
-
|
454 |
|
455 |
-
|
456 |
|
457 |
-
|
458 |
|
459 |
-
|
460 |
-
}
|
461 |
|
462 |
-
function ig_es_add_ninja_forms_tab_settings( $tab_options ) {
|
463 |
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
|
485 |
-
|
486 |
|
487 |
-
|
488 |
|
489 |
-
|
490 |
|
491 |
-
|
492 |
-
}
|
493 |
|
494 |
-
function ig_es_add_edd_tab_settings( $tab_options ) {
|
495 |
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
|
517 |
-
|
518 |
|
519 |
-
|
520 |
|
521 |
-
|
522 |
|
523 |
-
|
524 |
-
}
|
525 |
|
526 |
|
527 |
-
function add_spam_score_utm_link() {
|
528 |
-
|
529 |
-
|
530 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
531 |
}
|
532 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
533 |
if ( ! ES()->is_starter() ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
534 |
?>
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
540 |
}
|
541 |
|
|
|
542 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
543 |
|
17 |
|
18 |
add_action( 'edit_form_advanced', 'add_spam_score_utm_link' );
|
19 |
|
20 |
+
add_action( 'ig_es_add_additional_options', 'ig_es_add_captcha_option', 10, 1 );
|
21 |
+
add_action( 'ig_es_after_broadcast_content_left_pan_settings','ig_es_additional_send_email_option');
|
22 |
+
add_action( 'ig_es_after_broadcast_tracking_options_settings', 'ig_es_additional_track_option');
|
23 |
+
add_action( 'ig_es_broadcast_scheduling_options_settings', 'ig_es_additional_schedule_option');
|
24 |
+
add_action( 'ig_es_after_broadcast_right_pan_settings', 'ig_es_additional_spam_score_option');
|
25 |
+
|
26 |
/**
|
27 |
* Promote SMTP mailer for free
|
28 |
*
|
41 |
'logo' => ES_PLUGIN_URL . 'lite/admin/images/smtp.png',
|
42 |
'is_premium' => true,
|
43 |
'url' => ES_Common::get_utm_tracking_url( array( 'utm_medium' => 'smtp_mailer' )
|
44 |
+
)
|
45 |
);
|
46 |
|
47 |
}
|
66 |
ob_start();
|
67 |
?>
|
68 |
|
69 |
+
<div class="text-center py-4 lg:px-4 my-8">
|
70 |
+
<div class="p-2 bg-indigo-800 items-center text-indigo-100 leading-none lg:rounded-full flex lg:inline-flex mx-4 leading-normal" role="alert">
|
71 |
+
<span class="font-semibold text-left flex-auto">
|
72 |
+
Customize user roles permissions with <a href="<?php echo $url; ?>" target="_blank" class="text-indigo-400">Email Subscribers PRO</a>
|
73 |
+
</span>
|
74 |
+
</div>
|
75 |
+
</div>
|
76 |
+
|
77 |
+
|
78 |
+
<table class="min-w-full rounded-lg">
|
79 |
+
<thead>
|
80 |
+
<tr class="bg-gray-100 text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider">
|
81 |
+
<th class="px-5 py-4"><?php _e( 'Roles', 'email-subscribers' ); ?></th>
|
82 |
+
<th class="px-2 py-4 text-center"><?php _e( 'Audience', 'email-subscribers' ); ?></th>
|
83 |
+
<th class="px-2 py-4 text-center"><?php _e( 'Forms', 'email-subscribers' ); ?></th>
|
84 |
+
<th class="px-2 py-4 text-center"><?php _e( 'Campaigns', 'email-subscribers' ); ?></th>
|
85 |
+
<th class="px-2 py-4 text-center"><?php _e( 'Reports', 'email-subscribers' ); ?></th>
|
86 |
+
<th class="px-2 py-4 text-center"><?php _e( 'Sequences', 'email-subscribers' ); ?></th>
|
87 |
+
<th class="px-2 py-4 text-center"><?php _e( 'Workflows', 'email-subscribers' ); ?></th>
|
88 |
+
</tr>
|
89 |
+
</thead>
|
90 |
+
<tbody class="bg-white">
|
91 |
+
<?php foreach ( $roles as $key => $value ) {
|
92 |
+
?>
|
93 |
+
<tr class="border-b border-gray-200">
|
94 |
+
<td class="pl-8 py-4 ">
|
95 |
+
<div class="flex items-center">
|
96 |
+
<div class="flex-shrink-0">
|
97 |
+
<span class="text-sm leading-5 font-medium text-center text-gray-800"><?php echo $value; ?></span>
|
98 |
+
</div>
|
99 |
+
</div>
|
100 |
+
</td>
|
101 |
+
<td class="whitespace-no-wrap text-center">
|
102 |
+
<input type="checkbox" name="" disabled <?php ! empty( $user_roles['audience'][ $key ] ) ? checked( 'yes', $user_roles['audience'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
103 |
+
</td>
|
104 |
+
<td class="whitespace-no-wrap text-center">
|
105 |
+
<input type="checkbox" name="" disabled<?php ! empty( $user_roles['forms'][ $key ] ) ? checked( 'yes', $user_roles['forms'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
106 |
+
</td>
|
107 |
+
<td class="whitespace-no-wrap text-center">
|
108 |
+
<input type="checkbox" name="" disabled <?php ! empty( $user_roles['campaigns'][ $key ] ) ? checked( 'yes', $user_roles['campaigns'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
109 |
+
</td>
|
110 |
+
<td class="whitespace-no-wrap text-center">
|
111 |
+
<input type="checkbox" name="" disabled <?php ! empty( $user_roles['reports'][ $key ] ) ? checked( 'yes', $user_roles['reports'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
112 |
+
</td>
|
113 |
+
<td class="whitespace-no-wrap text-center">
|
114 |
+
<input type="checkbox" name="" disabled <?php ! empty( $user_roles['sequences'][ $key ] ) ? checked( 'yes', $user_roles['sequences'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
115 |
+
</td>
|
116 |
+
<td class="whitespace-no-wrap text-center">
|
117 |
+
<input type="checkbox" name="" disabled <?php ! empty( $user_roles['workflows'][ $key ] ) ? checked( 'yes', $user_roles['workflows'][ $key ] ) : '' ?> value="yes" class=" form-checkbox text-indigo-600">
|
118 |
+
</td>
|
119 |
+
</tr>
|
120 |
+
<?php
|
121 |
+
}
|
122 |
?>
|
123 |
+
</tbody>
|
124 |
+
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
|
126 |
|
127 |
<?php
|
148 |
|
149 |
if ( ! ES()->is_pro() ) {
|
150 |
|
151 |
+
$utm_args = array(
|
152 |
+
'utm_medium' => 'track_clicks'
|
153 |
+
);
|
154 |
+
|
155 |
+
$premium_url = ES_Common::get_utm_tracking_url( $utm_args );
|
156 |
// General Settings
|
157 |
$track_link_click = array(
|
158 |
'ig_es_track_link_click' => array(
|
159 |
+
'id' => 'ig_es_track_link_click_p',
|
160 |
+
'name' => __( 'Track Clicks', 'email-subscribers' ),
|
161 |
+
'type' => 'checkbox',
|
162 |
+
'default' => 'no',
|
163 |
+
'is_premium' => true,
|
164 |
+
'link' => $premium_url,
|
165 |
+
'disabled' => true,
|
166 |
+
'upgrade_title' => sprintf( __( "<a href='%s' target='_blank'>Upgrade to ES PRO</a>", 'email-subscribers' ), $premium_url ),
|
167 |
+
'upgrade_desc' => __( 'Get insights about link clicks. See who are clicking on which links?', 'email-subscribers' )
|
168 |
+
)
|
169 |
+
);
|
170 |
+
|
171 |
+
$utm_args = array(
|
172 |
+
'utm_medium' => 'track_utm'
|
173 |
+
);
|
174 |
+
|
175 |
+
$premium_url = ES_Common::get_utm_tracking_url( $utm_args );
|
176 |
+
|
177 |
+
$track_utm = array(
|
178 |
+
'ig_es_track_utm' => array(
|
179 |
+
'id' => 'ig_es_track_utm',
|
180 |
+
'name' => __( 'UTM Tracking', 'email-subscribers' ),
|
181 |
+
'type' => 'checkbox',
|
182 |
+
'default' => 'no',
|
183 |
+
'is_premium' => true,
|
184 |
+
'link' => $premium_url,
|
185 |
+
'disabled' => true,
|
186 |
+
'upgrade_title' => sprintf( __( "<a href='%s' target='_blank'>Upgrade to ES PRO</a>", 'email-subscribers' ), $premium_url ),
|
187 |
+
'upgrade_desc' => __( 'Get insights about UTM tracking.', 'email-subscribers' )
|
188 |
+
|
189 |
)
|
190 |
);
|
191 |
|
192 |
$general_fields = $fields['general'];
|
193 |
|
194 |
$general_fields = ig_es_array_insert_after( $general_fields, 'ig_es_track_email_opens', $track_link_click );
|
195 |
+
$general_fields = ig_es_array_insert_after( $general_fields, 'ig_es_track_link_click', $track_utm );
|
196 |
|
197 |
$fields['general'] = $general_fields;
|
198 |
}
|
199 |
|
200 |
if ( ! ES()->is_premium() ) {
|
201 |
|
202 |
+
$utm_args = array(
|
203 |
+
'utm_medium' => 'enable_captcha'
|
204 |
+
);
|
205 |
+
|
206 |
+
$premium_url = ES_Common::get_utm_tracking_url( $utm_args );
|
207 |
+
|
208 |
// Security Settings
|
209 |
$fake_domains['ig_es_enable_known_attackers_domains'] = array(
|
210 |
'id' => 'ig_es_enable_known_attackers_domains_p',
|
214 |
'default' => 'no',
|
215 |
'is_premium' => true,
|
216 |
'link' => ES_Common::get_utm_tracking_url( array( 'utm_medium' => 'known_attackers' ) ),
|
217 |
+
'disabled' => true
|
218 |
);
|
219 |
|
220 |
$managed_blocked_domains['ig_es_enable_disposable_domains'] = array(
|
225 |
'default' => 'no',
|
226 |
'is_premium' => true,
|
227 |
'link' => ES_Common::get_utm_tracking_url( array( 'utm_medium' => 'disposable_domains' ) ),
|
228 |
+
'disabled' => true
|
229 |
);
|
230 |
|
231 |
//add captcha setting
|
232 |
$field_captcha['enable_captcha'] = array(
|
233 |
+
'id' => 'ig_es_enable_captcha_p',
|
234 |
+
'name' => __( 'Enable Captcha', 'email-subscribers' ),
|
235 |
+
'info' => __( 'Show a captcha in subscription forms to protect from bot signups.', 'email-subscribers' ),
|
236 |
+
'type' => 'checkbox',
|
237 |
+
'default' => 'no',
|
238 |
+
'is_premium' => true,
|
239 |
+
'link' => $premium_url,
|
240 |
+
'disabled' => true,
|
241 |
+
'upgrade_title' => sprintf( __( "<a href='%s' target='_blank'>Upgrade to ES PRO</a>", 'email-subscribers' ), $premium_url ),
|
242 |
+
'upgrade_desc' => __( 'Secure your form and avoid spam signups with form Captcha', 'email-subscribers' ),
|
243 |
);
|
244 |
|
245 |
$fields['security_settings'] = array_merge( $fields['security_settings'], $fake_domains, $managed_blocked_domains, $field_captcha );
|
352 |
|
353 |
ob_start();
|
354 |
?>
|
355 |
+
<div class="">
|
356 |
+
<h2><?php _e( 'Sync Comment Users', 'email-subscribers' ) ?></h2>
|
357 |
+
<p><?php _e( 'Quickly add to your mailing list when someone post a comment on your website.', 'email-subscribers' ) ?></p>
|
358 |
+
<h2><?php _e( 'How to setup?', 'email-subscribers' ) ?></h2>
|
359 |
+
<p><?php _e( 'Once you upgrade to ', 'email-subscribers' ) ?><a href="https://www.icegram.com/email-subscribers-starter/?utm_source=in_app&utm_medium=comment_sync&utm_campaign=es_upsale#sync_comment_users"><?php _e( 'Email Subscribers Starter', 'email-subscribers' ) ?></a>, <?php _e( 'you will have settings panel where you need to enable Comment user sync and select the list in which you want to add people whenever someone post a
|
360 |
+
comment.', 'email-subscribers' ) ?></p>
|
361 |
+
<hr>
|
362 |
+
<p class="help"><?php _e( 'Checkout ', 'email-subscribers' ) ?><a href="https://www.icegram.com/email-subscribers-pricing/?utm_source=in_app&utm_medium=comment_sync&utm_campaign=es_upsale#sync_comment_users"><?php _e( 'Email Subscribers Starter', 'email-subscribers' ) ?></a> <?php _e( 'now', 'email-subscribers' ) ?></p>
|
363 |
+
</div>
|
364 |
<?php
|
365 |
|
366 |
$content = ob_get_clean();
|
367 |
|
368 |
?>
|
369 |
+
<a target="_blank" href="https://www.icegram.com/quickly-add-people-to-your-mailing-list-whenever-someone-post-a-comment/?utm_source=in_app&utm_medium=es_comment_upsale&utm_campaign=es_upsale#sync_comment_users">
|
370 |
+
<img src=" <?php echo ES_PLUGIN_URL . 'lite/admin/images/es-comments.png' ?> "/>
|
371 |
+
</a>
|
372 |
<?php
|
373 |
ES_Common::prepare_information_box( $info, $content );
|
374 |
}
|
381 |
|
382 |
ob_start();
|
383 |
?>
|
384 |
+
<div class="">
|
385 |
+
<h2><?php _e( 'Sync WooCommerce Customers', 'email-subscribers' ) ?></h2>
|
386 |
+
<p><?php _e( 'Are you using WooCommerce for your online business? You can use this integration to add to a specific list whenever someone make a purchase from you', 'email-subscribers' ) ?></p>
|
387 |
+
<h2><?php _e( 'How to setup?', 'email-subscribers' ) ?></h2>
|
388 |
+
<p><?php _e( 'Once you upgrade to ', 'email-subscribers' ) ?><a href="https://www.icegram.com/email-subscribers-starter/?utm_source=in_app&utm_medium=woocommerce_sync&utm_campaign=es_upsale#sync_woocommerce_customers"><?php _e( 'Email Subscribers Starter', 'email-subscribers' ) ?></a>, <?php _e( 'you will have settings panel where you need to enable WooCommerce sync and select the list in which you want to add people whenever they
|
389 |
+
purchase something
|
390 |
+
from you.', 'email-subscribers' ) ?></p>
|
391 |
+
<hr>
|
392 |
+
<p class="help"><?php _e( 'Checkout ', 'email-subscribers' ) ?><a href="https://www.icegram.com/email-subscribers-pricing/?utm_source=in_app&utm_medium=woocommerce_sync&utm_campaign=es_upsale#sync_woocommerce_customers">Email Subscribers Starter</a> Now</p>
|
393 |
+
</div>
|
394 |
+
<?php $content = ob_get_clean(); ?>
|
395 |
+
|
396 |
+
<a target="_blank" href="https://www.icegram.com/quickly-add-customers-to-your-mailing-list/?utm_source=in_app&utm_medium=woocommerce_sync&utm_campaign=es_upsale#sync_woocommerce_customers">
|
397 |
+
<img src=" <?php echo ES_PLUGIN_URL . 'lite/admin/images/woocommerce-sync.png' ?> "/>
|
398 |
+
</a>
|
399 |
|
400 |
+
<?php
|
401 |
|
402 |
+
ES_Common::prepare_information_box( $info, $content );
|
403 |
|
404 |
+
?>
|
405 |
|
406 |
+
<?php
|
407 |
+
}
|
408 |
|
409 |
+
function ig_es_add_cf7_tab_settings( $tab_options ) {
|
410 |
|
411 |
+
$info = array(
|
412 |
+
'type' => 'info',
|
413 |
+
);
|
414 |
|
415 |
+
ob_start();
|
416 |
+
?>
|
417 |
+
<div class="">
|
418 |
+
<h2><?php _e( 'Sync Contact Form 7 users', 'email-subscribers' ) ?></h2>
|
419 |
+
<p><?php _e( 'Are you using Contact Form 7 for your list building? You can use this integration to add to a specific list whenever new subscribers added from Contact Form 7', 'email-subscribers' ) ?></p>
|
420 |
+
<h2><?php _e( 'How to setup?', 'email-subscribers' ) ?></h2>
|
421 |
+
<p><?php _e( 'Once you upgrade to ', 'email-subscribers' ) ?><a href="https://www.icegram.com/email-subscribers-starter/?utm_source=in_app&utm_medium=cf7_sync&utm_campaign=es_upsale#sync_cf7_subscribers"><?php _e( 'Email Subscribers Starter',
|
422 |
+
'email-subscribers' ) ?></a>, <?php _e( 'you will have settings panel where you need to enable Contact form 7 sync and select the list in which you want to add people whenever they fill any of the Contact Form.', 'email-subscribers' ) ?></p>
|
423 |
+
<hr>
|
424 |
+
<p class="help"><?php _e( 'Checkout ', 'email-subscribers' ) ?><a href="https://www.icegram.com/email-subscribers-pricing/?utm_source=in_app&utm_medium=cf7_sync&utm_campaign=es_upsale#sync_cf7_subscribers">Email Subscribers Starter</a> Now</p>
|
425 |
+
</div>
|
426 |
+
<?php $content = ob_get_clean(); ?>
|
427 |
+
|
428 |
+
<a target="_blank" href="https://www.icegram.com/add-people-to-your-mailing-list-whenever-they-submit-any-of-the-contact-form-7-form/?utm_source=in_app&utm_medium=cf7_sync&utm_campaign=es_upsale#sync_cf7_subscribers">
|
429 |
+
<img src=" <?php echo ES_PLUGIN_URL . 'lite/admin/images/cf7-sync.png' ?> "/>
|
430 |
+
</a>
|
431 |
|
432 |
+
<?php
|
433 |
|
434 |
+
ES_Common::prepare_information_box( $info, $content );
|
435 |
|
436 |
+
?>
|
437 |
|
438 |
+
<?php
|
439 |
+
}
|
440 |
|
441 |
+
function ig_es_add_give_tab_settings( $tab_options ) {
|
442 |
|
443 |
+
$info = array(
|
444 |
+
'type' => 'info',
|
445 |
+
);
|
446 |
|
447 |
+
ob_start();
|
448 |
+
?>
|
449 |
+
<div class="">
|
450 |
+
<h2><?php _e( 'Sync Donors', 'email-subscribers' ) ?></h2>
|
451 |
+
<p><?php _e( 'We found that you are using Give WordPress plugin to collect donations. Now, with this integration, you can add your donors to any of your subscriber list and send them Newsletters in future.', 'email-subscribers' ) ?></p>
|
452 |
+
<h2><?php _e( 'How to setup?', 'email-subscribers' ) ?></h2>
|
453 |
+
<p><?php _e( 'Once you upgrade to ', 'email-subscribers' ) ?><a target="_blank" href="https://www.icegram.com/email-subscribers-starter/?utm_source=in_app&utm_medium=give_sync&utm_campaign=es_upsale#sync_give_donors"><?php _e( 'Email Subscribers Starter',
|
454 |
+
'email-subscribers' ) ?></a>, <?php _e( 'you will have settings panel where you need to enable Give integration and select the list in which you want to add people whenever they make donation.', 'email-subscribers' ) ?></p>
|
455 |
+
<hr>
|
456 |
+
<p class="help"><?php _e( 'Checkout ', 'email-subscribers' ) ?><a target="_blank" href="https://www.icegram.com/email-subscribers-pricing/?utm_source=in_app&utm_medium=give_sync&utm_campaign=es_upsale#sync_give_donors">Email Subscribers Starter</a> Now</p>
|
457 |
+
</div>
|
458 |
+
<?php $content = ob_get_clean(); ?>
|
459 |
+
|
460 |
+
<a target="_blank" href="https://www.icegram.com/email-subscribers-starter/?utm_source=in_app&utm_medium=give_sync&utm_campaign=es_upsale#sync_give_donors">
|
461 |
+
<img src=" <?php echo ES_PLUGIN_URL . 'lite/admin/images/give-sync.png' ?> "/>
|
462 |
+
</a>
|
463 |
|
464 |
+
<?php
|
465 |
|
466 |
+
ES_Common::prepare_information_box( $info, $content );
|
467 |
|
468 |
+
?>
|
469 |
|
470 |
+
<?php
|
471 |
+
}
|
472 |
|
473 |
+
function ig_es_add_wpforms_tab_settings( $tab_options ) {
|
474 |
|
475 |
+
$info = array(
|
476 |
+
'type' => 'info',
|
477 |
+
);
|
478 |
|
479 |
+
ob_start();
|
480 |
+
?>
|
481 |
+
<div class="">
|
482 |
+
<h2><?php _e( 'Sync Donors', 'email-subscribers' ) ?></h2>
|
483 |
+
<p><?php _e( 'Are you using Give WordPress plugin to collect donations? Want to send Thank You email to them? You can use this integration to be in touch with them.', 'email-subscribers' ) ?></p>
|
484 |
+
<h2><?php _e( 'How to setup?', 'email-subscribers' ) ?></h2>
|
485 |
+
<p><?php _e( 'Once you upgrade to ', 'email-subscribers' ) ?><a target="_blank" href="https://www.icegram.com/email-subscribers-starter/?utm_source=in_app&utm_medium=wpforms_sync&utm_campaign=es_upsale#sync_wpforms_contacts"><?php _e( 'Email Subscribers Starter',
|
486 |
+
'email-subscribers' ) ?></a>, <?php _e( 'you will have settings panel where you need to enable Give sync and select the list in which you want to add people whenever they make donation.', 'email-subscribers' ) ?></p>
|
487 |
+
<hr>
|
488 |
+
<p class="help"><?php _e( 'Checkout ', 'email-subscribers' ) ?><a target="_blank" href="https://www.icegram.com/email-subscribers-pricing/?utm_source=in_app&utm_medium=wpforms_sync&utm_campaign=es_upsale#sync_wpforms_contacts">Email Subscribers Starter</a> Now</p>
|
489 |
+
</div>
|
490 |
+
<?php $content = ob_get_clean(); ?>
|
491 |
+
|
492 |
+
<a target="_blank" href="https://www.icegram.com/email-subscribers-starter/?utm_source=in_app&utm_medium=wpforms_sync&utm_campaign=es_upsale#sync_wpforms_contacts">
|
493 |
+
<img src=" <?php echo ES_PLUGIN_URL . 'lite/admin/images/wpforms-sync.png' ?> "/>
|
494 |
+
</a>
|
495 |
|
496 |
+
<?php
|
497 |
|
498 |
+
ES_Common::prepare_information_box( $info, $content );
|
499 |
|
500 |
+
?>
|
501 |
|
502 |
+
<?php
|
503 |
+
}
|
504 |
|
505 |
+
function ig_es_add_ninja_forms_tab_settings( $tab_options ) {
|
506 |
|
507 |
+
$info = array(
|
508 |
+
'type' => 'info',
|
509 |
+
);
|
510 |
|
511 |
+
ob_start();
|
512 |
+
?>
|
513 |
+
<div class="">
|
514 |
+
<h2><?php _e( 'Sync Contacts', 'email-subscribers' ) ?></h2>
|
515 |
+
<p><?php _e( 'We found that you are using Ninja Forms. Want to add your contact to a mailing list? You can use this integration to add your contact to add into mailing list', 'email-subscribers' ) ?></p>
|
516 |
+
<h2><?php _e( 'How to setup?', 'email-subscribers' ) ?></h2>
|
517 |
+
<p><?php _e( 'Once you upgrade to ', 'email-subscribers' ) ?><a target="_blank" href="https://www.icegram.com/email-subscribers-starter/?utm_source=in_app&utm_medium=ninja_forms_sync&utm_campaign=es_upsale#sync_ninja_forms_contacts"><?php _e( 'Email Subscribers Starter',
|
518 |
+
'email-subscribers' ) ?></a>, <?php _e( 'you will have settings panel where you need to enable Give sync and select the list in which you want to add people whenever they make donation.', 'email-subscribers' ) ?></p>
|
519 |
+
<hr>
|
520 |
+
<p class="help"><?php _e( 'Checkout ', 'email-subscribers' ) ?><a target="_blank" href="https://www.icegram.com/email-subscribers-pricing/?utm_source=in_app&utm_medium=ninja_forms_sync&utm_campaign=es_upsale#sync_ninja_forms_contacts">Email Subscribers Starter</a> Now</p>
|
521 |
+
</div>
|
522 |
+
<?php $content = ob_get_clean(); ?>
|
523 |
+
|
524 |
+
<a target="_blank" href="https://www.icegram.com/email-subscribers-starter/?utm_source=in_app&utm_medium=ninja_forms_sync&utm_campaign=es_upsale#sync_ninja_forms_contacts">
|
525 |
+
<img src=" <?php echo ES_PLUGIN_URL . 'lite/admin/images/ninja-forms-sync.png' ?> "/>
|
526 |
+
</a>
|
527 |
|
528 |
+
<?php
|
529 |
|
530 |
+
ES_Common::prepare_information_box( $info, $content );
|
531 |
|
532 |
+
?>
|
533 |
|
534 |
+
<?php
|
535 |
+
}
|
536 |
|
537 |
+
function ig_es_add_edd_tab_settings( $tab_options ) {
|
538 |
|
539 |
+
$info = array(
|
540 |
+
'type' => 'info',
|
541 |
+
);
|
542 |
|
543 |
+
ob_start();
|
544 |
+
?>
|
545 |
+
<div class="">
|
546 |
+
<h2><?php _e( 'Sync Customers', 'email-subscribers' ) ?></h2>
|
547 |
+
<p><?php _e( 'We found that you are using EDD to sell digital goods online. You can use this integration to send Newsletters/ Post Notifications to your customers.', 'email-subscribers' ) ?></p>
|
548 |
+
<h2><?php _e( 'How to setup?', 'email-subscribers' ) ?></h2>
|
549 |
+
<p><?php _e( 'Once you upgrade to ', 'email-subscribers' ) ?><a target="_blank" href="https://www.icegram.com/email-subscribers-starter/?utm_source=in_app&utm_medium=edd_sync&utm_campaign=es_upsale#sync_edd_customers"><?php _e( 'Email Subscribers Starter',
|
550 |
+
'email-subscribers' ) ?></a>, <?php _e( 'you will have settings panel where you need to enable EDD sync and select the list in which you want to add people whenever they purchase something from you.', 'email-subscribers' ) ?></p>
|
551 |
+
<hr>
|
552 |
+
<p class="help"><?php _e( 'Checkout ', 'email-subscribers' ) ?><a target="_blank" href="https://www.icegram.com/email-subscribers-pricing/?utm_source=in_app&utm_medium=edd_sync&utm_campaign=es_upsale#sync_edd_customers">Email Subscribers Starter</a> Now</p>
|
553 |
+
</div>
|
554 |
+
<?php $content = ob_get_clean(); ?>
|
555 |
+
|
556 |
+
<a target="_blank" href="https://www.icegram.com/email-subscribers/?utm_source=in_app&utm_medium=edd_sync&utm_campaign=es_upsale#sync_edd_customers">
|
557 |
+
<img src=" <?php echo ES_PLUGIN_URL . 'lite/admin/images/edd-sync.png' ?> "/>
|
558 |
+
</a>
|
559 |
|
560 |
+
<?php
|
561 |
|
562 |
+
ES_Common::prepare_information_box( $info, $content );
|
563 |
|
564 |
+
?>
|
565 |
|
566 |
+
<?php
|
567 |
+
}
|
568 |
|
569 |
|
570 |
+
function add_spam_score_utm_link() {
|
571 |
+
global $post, $pagenow, $ig_es_tracker;
|
572 |
+
if ( $post->post_type !== 'es_template' ) {
|
573 |
+
return;
|
574 |
+
}
|
575 |
+
|
576 |
+
if ( ! ES()->is_starter() ) {
|
577 |
+
?>
|
578 |
+
<script>
|
579 |
+
jQuery('#submitdiv').after('<div class="es_upsale"><a style="text-decoration:none;" target="_blank" href="https://www.icegram.com/documentation/how-ready-made-template-in-in-email-subscribers-look/?utm_source=in_app&utm_medium=es_template&utm_campaign=es_upsale"><img title="Get readymade templates" style="width:100%;border:0.3em #d46307 solid" src="<?php echo ES_PLUGIN_URL?>lite/admin/images/starter-tmpl.png"/><p style="background: #d46307; color: #FFF; padding: 4px; width: 100%; text-align:center">Get readymade beautiful email templates</p></a></div>');
|
580 |
+
</script>
|
581 |
+
<?php
|
582 |
+
}
|
583 |
}
|
584 |
|
585 |
+
/**
|
586 |
+
* Upsale ES PRO on Form Captcha
|
587 |
+
*
|
588 |
+
* @param $form_data
|
589 |
+
*
|
590 |
+
* @since 4.4.7
|
591 |
+
*/
|
592 |
+
function ig_es_add_captcha_option( $form_data ) {
|
593 |
+
|
594 |
if ( ! ES()->is_starter() ) {
|
595 |
+
|
596 |
+
$utm_args = array(
|
597 |
+
"utm_medium" => "es_form_captcha"
|
598 |
+
);
|
599 |
+
|
600 |
+
$pricing_url = ES_Common::get_utm_tracking_url( $utm_args );
|
601 |
+
|
602 |
?>
|
603 |
+
|
604 |
+
<div class="flex border-b border-gray-100 ">
|
605 |
+
<div class="w-2/5 mr-16">
|
606 |
+
<div class="flex flex-row w-full">
|
607 |
+
<div class="flex w-2/4">
|
608 |
+
<div class="ml-4 mr-8 mr-4 pt-4 mb-2">
|
609 |
+
<label for="tag-link"><span class="block ml-4 pr-4 text-sm font-medium text-gray-600 pb-2"><?php echo __( 'Enable Captcha' ); ?></span></label>
|
610 |
+
<p class="italic text-xs text-gray-400 mt-2 ml-4 leading-snug pb-4"><?php _e( 'Show a captcha to protect from bot signups.', 'email-subscribers' ); ?></p>
|
611 |
+
</div>
|
612 |
+
</div>
|
613 |
+
<div class="flex">
|
614 |
+
<div class="ml-16 mb-4 mr-4 mt-12">
|
615 |
+
<label for="captcha" class=" inline-flex items-center cursor-pointer">
|
616 |
+
<span class="relative">
|
617 |
+
<span class="relative es-mail-toggle-line block w-10 h-6 bg-gray-300 rounded-full shadow-inner"></span>
|
618 |
+
<span class="es-mail-toggle-dot absolute transition-all duration-300 ease-in-out block w-4 h-4 mt-1 ml-1 bg-white rounded-full shadow inset-y-0 left-0 focus-within:shadow-outline "></span>
|
619 |
+
</span>
|
620 |
+
</label>
|
621 |
+
</div>
|
622 |
+
</div>
|
623 |
+
</div>
|
624 |
+
</div>
|
625 |
+
|
626 |
+
<div class="w-3/6 mt-3.5 pr-4">
|
627 |
+
<div class="inline-flex rounded-md bg-teal-50 px-2 pt-1 h-20 w-full">
|
628 |
+
<div class="px-2 pt-2 pb-2">
|
629 |
+
<div class="flex">
|
630 |
+
<div class="flex-shrink-0">
|
631 |
+
<svg class='h-5 w-5 text-teal-400' fill='currentColor' viewBox='0 0 20 20'>
|
632 |
+
<path fill-rule='evenodd' d='M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z' clip-rule='evenodd'/>
|
633 |
+
</svg>
|
634 |
+
</div>
|
635 |
+
<div class="ml-3">
|
636 |
+
<h3 class="text-sm leading-5 font-medium text-blue-800">
|
637 |
+
<?php _e( sprintf("<a href='%s' target='_blank'>Upgrade to ES PRO</a>", $pricing_url), 'email-subscribers' ); ?>
|
638 |
+
</h3>
|
639 |
+
<div class="mt-2 text-sm leading-5 text-teal-700">
|
640 |
+
<p>
|
641 |
+
<?php _e( 'Secure your form and avoid spam signups with form Captcha', 'email-subscribers' ); ?>
|
642 |
+
</p>
|
643 |
+
</div>
|
644 |
+
</div>
|
645 |
+
</div>
|
646 |
+
</div>
|
647 |
+
</div>
|
648 |
+
</div>
|
649 |
+
</div>
|
650 |
+
<?php }
|
651 |
+
}
|
652 |
+
|
653 |
+
function ig_es_additional_send_email_option() {
|
654 |
+
|
655 |
+
if ( ! ES()->is_pro() ) { ?>
|
656 |
+
|
657 |
+
<div>
|
658 |
+
<input type="radio" name="preview_option" disabled="disabled" class="form-radio" id="preview_in_email" value="" >
|
659 |
+
<label class=" text-sm font-normal leading-5 text-gray-700"><?php echo esc_html__( 'Email', 'email-subscribers' ); ?><span class="cursor-auto mx-2 px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"><?php _e('Premium','email-subscribers');?></span></label>
|
660 |
+
<div id="preview_in_email" class="display_email_field px-4">
|
661 |
+
<div class="flex py-2" >
|
662 |
+
<div class="flex w-5/6">
|
663 |
+
<input id="es_test_send_email" name="es_test_send_email" style="display: none;" class="border-gray-400 form-input text-sm relative rounded-md shadow-sm block w-3/4 sm:leading-5" placeholder="<?php echo esc_html__( 'Enter email', 'email-subscribers' ); ?>" />
|
664 |
+
</div>
|
665 |
+
</div>
|
666 |
+
</div>
|
667 |
+
<?php }
|
668 |
}
|
669 |
|
670 |
+
function ig_es_additional_track_option() {
|
671 |
|
672 |
+
if ( ! ES()->is_pro() ) { ?>
|
673 |
+
|
674 |
+
<div class="flex w-full pt-3">
|
675 |
+
<div class="w-11/12 text-sm font-normal text-gray-600"><?php echo esc_html__( 'Link Tracking', 'email-subscribers' ); ?><span class="mx-2 px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"><?php _e('Premium','email-subscribers');?></span>
|
676 |
+
</div>
|
677 |
+
|
678 |
+
<div>
|
679 |
+
<label for="enable_link_tracking" class=" inline-flex items-center cursor-pointer">
|
680 |
+
<span class="relative">
|
681 |
+
<span class="es-mail-toggle-line block w-8 h-5 bg-gray-300 rounded-full shadow-inner"></span>
|
682 |
+
<span class="es-mail-toggle-dot absolute transition-all duration-300 ease-in-out block w-3 h-3 mt-1 ml-1 bg-white rounded-full shadow inset-y-0 left-0 focus-within:shadow-outline"></span>
|
683 |
+
</span>
|
684 |
+
</label>
|
685 |
+
</div>
|
686 |
+
</div>
|
687 |
+
|
688 |
+
<div class="flex w-full pt-3 pb-3 border-b border-gray-200">
|
689 |
+
<div class="w-11/12 text-sm font-normal text-gray-600"><?php echo esc_html__( 'UTM Tracking', 'email-subscribers' ); ?><span class="mx-2 px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"><?php _e('Premium','email-subscribers');?></span>
|
690 |
+
</div>
|
691 |
+
|
692 |
+
<div >
|
693 |
+
<label for="enable_utm_tracking" class=" inline-flex items-center cursor-pointer">
|
694 |
+
<span class="relative">
|
695 |
+
<span class="es-mail-toggle-line block w-8 h-5 bg-gray-300 rounded-full shadow-inner"></span>
|
696 |
+
<span class="es-mail-toggle-dot absolute transition-all duration-300 ease-in-out block w-3 h-3 mt-1 ml-1 bg-white rounded-full shadow inset-y-0 left-0 focus-within:shadow-outline"></span>
|
697 |
+
</span>
|
698 |
+
</label>
|
699 |
+
</div>
|
700 |
+
</div>
|
701 |
+
|
702 |
+
|
703 |
+
<?php }
|
704 |
+
|
705 |
+
}
|
706 |
+
|
707 |
+
function ig_es_additional_schedule_option(){
|
708 |
+
|
709 |
+
if ( ! ES()->is_pro() ) {
|
710 |
+
|
711 |
+
$utm_args = array(
|
712 |
+
'utm_medium' => 'broadcast_summary'
|
713 |
+
);
|
714 |
+
|
715 |
+
$premium_url = ES_Common::get_utm_tracking_url( $utm_args );
|
716 |
+
?>
|
717 |
+
|
718 |
+
<div class="block w-full px-4 py-2">
|
719 |
+
<span class="block text-sm font-medium leading-5 text-gray-700"><?php echo esc_html__( 'Send Options', 'email-subscribers' ); ?><span class=" mx-2 px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"><?php _e('Premium','email-subscribers');?></span></span>
|
720 |
+
<div class="py-2">
|
721 |
+
<input type="radio" class="form-radio" id="schedule_later" checked disabled>
|
722 |
+
<label for="schedule_later" class="text-sm font-normal text-gray-600"><?php echo esc_html__( 'Schedule for Later', 'email-subscribers' ); ?>
|
723 |
+
</label>
|
724 |
+
<br>
|
725 |
+
<div id="schedule_later" class="px-6">
|
726 |
+
<div class="flex pt-4" >
|
727 |
+
<div class="flex w-full w-11/12">
|
728 |
+
<label class="text-sm font-normal leading-5 text-gray-700 pt-1"><?php echo esc_html__( 'Date', 'email-subscribers' ); ?></label>
|
729 |
+
<input class="cursor-pointer font-normal text-sm py-1 ml-2 form-input" type="text" value="<?php echo date_i18n('Y-m-d');?>" disabled>
|
730 |
+
</div>
|
731 |
+
<div>
|
732 |
+
<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="text-gray-600 w-5 h-5 my-1 ml-2"><path d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg>
|
733 |
+
</div>
|
734 |
+
</div>
|
735 |
+
<div class="flex pt-3" >
|
736 |
+
<div class="flex w-11/12">
|
737 |
+
<label class="text-sm font-normal leading-5 text-gray-700 pt-1"><?php echo esc_html__( 'Time', 'email-subscribers' ); ?></label>
|
738 |
+
<input class="cursor-pointer font-normal text-sm py-1 ml-2 form-input" type="text" value="<?php echo date_i18n("h:i A");?>" disabled>
|
739 |
+
|
740 |
+
</div>
|
741 |
+
<div>
|
742 |
+
<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="text-gray-600 w-5 h-5 my-1 ml-2 float-right"><path d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
|
743 |
+
</div>
|
744 |
+
</div>
|
745 |
+
<div class="pb-3">
|
746 |
+
<div class="block px-2 py-2 mt-4 bg-gray-300 rounded-md ">
|
747 |
+
<h3 class="text-gray-700 text-sm font-normal"><?php echo esc_html__( 'Local Time: ', 'email-subscribers' ); ?>
|
748 |
+
<?php echo date_i18n("Y-m-d H:i a" ) ?>
|
749 |
+
</h3>
|
750 |
+
</div>
|
751 |
+
</div>
|
752 |
+
</div>
|
753 |
+
<input type="radio" class="form-radio" id="send_now" disabled>
|
754 |
+
<label for="send_now" class="text-sm font-normal text-gray-600"><?php echo esc_html__( 'Send Now', 'email-subscribers' ); ?></label>
|
755 |
+
|
756 |
+
<div class="block py-2 mt-2 ">
|
757 |
+
<div class="inline-flex rounded-md bg-teal-100 px-2 pt-1 w-full">
|
758 |
+
<div class="px-2 pt-2 pb-2">
|
759 |
+
<div class="flex">
|
760 |
+
<div class="flex-shrink-0">
|
761 |
+
<svg class='h-5 w-5 text-teal-400' fill='currentColor' viewBox='0 0 20 20'>
|
762 |
+
<path fill-rule='evenodd' d='M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z' clip-rule='evenodd'/>
|
763 |
+
</svg>
|
764 |
+
</div>
|
765 |
+
<div class="ml-3">
|
766 |
+
<h3 class="text-sm leading-5 font-medium text-blue-800">
|
767 |
+
<?php echo sprintf( __( "<a href='%s' target='_blank'>Upgrade to ES PRO</a>", 'email-subscribers' ), $premium_url ); ?>
|
768 |
+
</h3>
|
769 |
+
<div class="mt-2 text-sm leading-5 text-teal-700">
|
770 |
+
<p>
|
771 |
+
<?php _e( 'Link Tracking, UTM Tracking and Scheduling Options are part of Email Subscribers PRO', 'email-subscribers' ); ?>
|
772 |
+
</p>
|
773 |
+
</div>
|
774 |
+
</div>
|
775 |
+
</div>
|
776 |
+
</div>
|
777 |
+
</div>
|
778 |
+
</div>
|
779 |
+
</div>
|
780 |
+
</div>
|
781 |
+
<?php }
|
782 |
+
}
|
783 |
+
|
784 |
+
function ig_es_additional_spam_score_option() {
|
785 |
+
if ( ! ES()->is_pro() ) { ?>
|
786 |
+
|
787 |
+
<div class="block mx-4 my-3">
|
788 |
+
<span class="pt-3 text-sm font-medium leading-5 text-gray-700"><?php echo esc_html__( 'Get Spam Score','email-subscribers');?><span class=" mx-2 px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"><?php _e('Premium', 'email-subscribers' ); ?></span></span>
|
789 |
+
<button type="button" id="spam_score" disabled class="float-right es_spam rounded-md border text-indigo-600 border-indigo-500 text-sm leading-5 font-medium inline-flex justify-center px-3 py-1"><?php echo esc_html__( 'Check', 'email-subscribers' ); ?>
|
790 |
+
</button>
|
791 |
+
</div>
|
792 |
+
<?php }
|
793 |
+
|
794 |
+
}
|
795 |
|
lite/includes/workflows/admin/views/meta-box-trigger.php
CHANGED
@@ -23,10 +23,11 @@ if ( ! ES()->is_premium() ) {
|
|
23 |
'ig_es_comment_added' => __( 'Comment Added', 'email-subscribers' ),
|
24 |
),
|
25 |
'Form' => array(
|
26 |
-
'ig_es_cf7_submitted'
|
27 |
-
'ig_es_wpforms_submitted'
|
28 |
-
'ig_es_ninja_forms_submitted'
|
29 |
-
'ig_es_gravity_forms_submitted'
|
|
|
30 |
),
|
31 |
'Order' => array(
|
32 |
'ig_es_wc_order_completed' => __( 'WooCommerce Order Completed', 'email-subscribers' ),
|
23 |
'ig_es_comment_added' => __( 'Comment Added', 'email-subscribers' ),
|
24 |
),
|
25 |
'Form' => array(
|
26 |
+
'ig_es_cf7_submitted' => __( 'Contact Form 7 Submitted', 'email-subscribers' ),
|
27 |
+
'ig_es_wpforms_submitted' => __( 'WP Form Submitted', 'email-subscribers' ),
|
28 |
+
'ig_es_ninja_forms_submitted' => __( 'Ninja Form Submitted', 'email-subscribers' ),
|
29 |
+
'ig_es_gravity_forms_submitted' => __( 'Gravity Form Submitted', 'email-subscribers' ),
|
30 |
+
'ig_es_forminator_forms_submitted' => __( 'Forminator Form Submitted', 'email-subscribers' ),
|
31 |
),
|
32 |
'Order' => array(
|
33 |
'ig_es_wc_order_completed' => __( 'WooCommerce Order Completed', 'email-subscribers' ),
|
lite/includes/workflows/class-es-workflows-table.php
CHANGED
@@ -147,10 +147,10 @@ class ES_Workflows_Table extends WP_List_Table {
|
|
147 |
*/
|
148 |
public function load_workflow_list() {
|
149 |
?>
|
150 |
-
<h1 class=" wp-heading-inline"><span class="text-2xl font-
|
151 |
</span>
|
152 |
<a href="admin.php?page=es_workflows&action=new"
|
153 |
-
class="
|
154 |
<?php do_action( 'ig_es_after_workflow_type_buttons' ); ?>
|
155 |
</h1>
|
156 |
<div id="poststuff" class="es-items-lists">
|
147 |
*/
|
148 |
public function load_workflow_list() {
|
149 |
?>
|
150 |
+
<h1 class=" wp-heading-inline"><span class="text-2xl font-medium leading-7 text-gray-900 sm:leading-9 sm:truncate"><?php esc_html_e( 'Workflows', 'email-subscribers' ); ?>
|
151 |
</span>
|
152 |
<a href="admin.php?page=es_workflows&action=new"
|
153 |
+
class="px-2 py-2 pt-2 mx-2 ig-es-title-button"><?php esc_html_e( 'Add New', 'email-subscribers' ); ?></a>
|
154 |
<?php do_action( 'ig_es_after_workflow_type_buttons' ); ?>
|
155 |
</h1>
|
156 |
<div id="poststuff" class="es-items-lists">
|
lite/languages/email-subscribers.pot
CHANGED
@@ -3,7 +3,7 @@ msgid ""
|
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Email Subscribers & Newsletters\n"
|
5 |
"Report-Msgid-Bugs-To: \n"
|
6 |
-
"POT-Creation-Date: 2020-
|
7 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
8 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
9 |
"Language-Team: \n"
|
@@ -54,130 +54,193 @@ msgstr ""
|
|
54 |
msgid "Connect to Icegram"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
58 |
msgid "Sequence"
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
62 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:479
|
63 |
msgid "Google Analytics link tracking"
|
64 |
msgstr ""
|
65 |
|
66 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
|
|
|
|
67 |
msgid "Get Spam Score"
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
71 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
72 |
msgid "Campaign Name"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
76 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:480
|
77 |
msgid ""
|
78 |
"This will be appended to every URL in this template with parameters: "
|
79 |
-
"utm_source=es&utm_medium=email&utm_campaign=campaign_name
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
83 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
84 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:375
|
|
|
85 |
msgid "Check"
|
86 |
msgstr ""
|
87 |
|
88 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
89 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
90 |
msgid "Awesome score. Your email is almost perfect."
|
91 |
msgstr ""
|
92 |
|
93 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
94 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
95 |
msgid "Ouch! your email needs improvement. "
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
99 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
100 |
msgid "Here are some things to fix: "
|
101 |
msgstr ""
|
102 |
|
103 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
msgid "Clean My List"
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
108 |
msgid "List cleanup is in progress..."
|
109 |
msgstr ""
|
110 |
|
111 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
112 |
msgid "List cleanup completed successfully."
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
116 |
msgid "Email Status"
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
120 |
-
msgid "
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
124 |
-
|
|
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
128 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/
|
129 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
msgstr ""
|
131 |
|
132 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
|
|
133 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/fields/class-es-date.php:32
|
134 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-timing.php:83
|
135 |
msgid "Date"
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
|
|
139 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/fields/class-es-time.php:65
|
140 |
msgid "Time"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
144 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
148 |
-
|
|
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
152 |
-
|
|
|
|
|
|
|
|
|
153 |
msgid "Something went wrong"
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
157 |
msgid "SUCCESS"
|
158 |
msgstr ""
|
159 |
|
160 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
161 |
msgid "Select page"
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
165 |
-
msgid "
|
|
|
|
|
166 |
msgstr ""
|
167 |
|
168 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
169 |
-
msgid "
|
|
|
|
|
170 |
msgstr ""
|
171 |
|
172 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
|
|
|
|
|
|
|
|
|
|
173 |
msgid "Clicked"
|
174 |
msgstr ""
|
175 |
|
176 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
177 |
msgid "Add Customer to Product specific list"
|
178 |
msgstr ""
|
179 |
|
180 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:
|
181 |
msgid "Add Customer to Product variation list"
|
182 |
msgstr ""
|
183 |
|
@@ -187,12 +250,12 @@ msgid "Post Digest"
|
|
187 |
msgstr ""
|
188 |
|
189 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-post-digest.php:37
|
190 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:
|
191 |
msgid "Select template"
|
192 |
msgstr ""
|
193 |
|
194 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-post-digest.php:38
|
195 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:
|
196 |
msgid "Content of the selected template will be sent out as post notification."
|
197 |
msgstr ""
|
198 |
|
@@ -285,11 +348,24 @@ msgid "Create Sequence"
|
|
285 |
msgstr ""
|
286 |
|
287 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:47
|
288 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
289 |
msgstr ""
|
290 |
|
291 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:50
|
292 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
msgstr ""
|
294 |
|
295 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:78
|
@@ -307,9 +383,9 @@ msgstr ""
|
|
307 |
|
308 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:134
|
309 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:195
|
310 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
311 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
312 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
313 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:45
|
314 |
msgid "Please select list."
|
315 |
msgstr ""
|
@@ -346,10 +422,11 @@ msgid "Email Subject"
|
|
346 |
msgstr ""
|
347 |
|
348 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:349
|
349 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
350 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
351 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:419
|
352 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
|
|
353 |
msgid "Content"
|
354 |
msgstr ""
|
355 |
|
@@ -361,6 +438,10 @@ msgstr ""
|
|
361 |
msgid "Add campaign name for utm tracking"
|
362 |
msgstr ""
|
363 |
|
|
|
|
|
|
|
|
|
364 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:401
|
365 |
msgid " after"
|
366 |
msgstr ""
|
@@ -369,225 +450,238 @@ msgstr ""
|
|
369 |
msgid " after subscription"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
373 |
msgid "Are You a Human? "
|
374 |
msgstr ""
|
375 |
|
376 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
377 |
msgid ""
|
378 |
-
"<span class=\"es-send-success es-icon\"></span>We will take care of it. You "
|
379 |
"don't need to visit this URL manually."
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
383 |
msgid "SMTP Host"
|
384 |
msgstr ""
|
385 |
|
386 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
387 |
msgid "None"
|
388 |
msgstr ""
|
389 |
|
390 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
391 |
msgid "SSL"
|
392 |
msgstr ""
|
393 |
|
394 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
395 |
msgid "TLS"
|
396 |
msgstr ""
|
397 |
|
398 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
399 |
msgid "Encryption"
|
400 |
msgstr ""
|
401 |
|
402 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
403 |
msgid "SMTP Port"
|
404 |
msgstr ""
|
405 |
|
406 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
407 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:286
|
408 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:232
|
409 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:329
|
410 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:402
|
411 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:438
|
412 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:67
|
413 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-widget.php:49
|
414 |
msgid "No"
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
418 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:289
|
419 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:231
|
420 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:329
|
421 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:401
|
422 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:437
|
423 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:70
|
424 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-widget.php:49
|
425 |
msgid "Yes"
|
426 |
msgstr ""
|
427 |
|
428 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
429 |
msgid "Authentication"
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
433 |
msgid "SMTP Username"
|
434 |
msgstr ""
|
435 |
|
436 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
437 |
msgid "SMTP Password"
|
438 |
msgstr ""
|
439 |
|
440 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
|
|
441 |
msgid "Block Known Attackers"
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
|
|
445 |
msgid ""
|
446 |
"Stop known spam bot attacker domains from signing up. Keeps this list up-to-"
|
447 |
"date with Icegram servers."
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
|
|
451 |
msgid "Block Temporary / Fake Emails"
|
452 |
msgstr ""
|
453 |
|
454 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
|
|
455 |
msgid ""
|
456 |
"Plenty of sites provide disposable / fake / temporary email addresses. "
|
457 |
"People use them when they don't want to give you their real email. Block "
|
458 |
"these to keep your list clean. Automatically updated."
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
|
|
462 |
msgid "Enable Captcha"
|
463 |
msgstr ""
|
464 |
|
465 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
466 |
-
msgid "
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
470 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
471 |
msgid "Comment Opt-In Consent"
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
475 |
msgid "This will show up at comment form next to consent checkbox."
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
479 |
-
|
480 |
-
msgstr ""
|
481 |
-
|
482 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:428
|
483 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:432
|
484 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:266
|
485 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:368
|
486 |
msgid "Opt-In Consent Text"
|
487 |
msgstr ""
|
488 |
|
489 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
490 |
msgid "Allow user to select list(s) while unsubscribe"
|
491 |
msgstr ""
|
492 |
|
493 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
494 |
msgid "Custom CSS"
|
495 |
msgstr ""
|
496 |
|
497 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
|
|
498 |
msgid "User Roles"
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
|
|
502 |
msgid "Roles"
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
506 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
507 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
508 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/
|
|
|
|
|
|
|
|
|
509 |
msgid "Audience"
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
513 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
514 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
|
|
515 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:38
|
516 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:39
|
517 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
518 |
msgid "Forms"
|
519 |
msgstr ""
|
520 |
|
521 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
522 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
523 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
524 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/
|
525 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/
|
|
|
|
|
526 |
msgid "Campaigns"
|
527 |
msgstr ""
|
528 |
|
529 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
530 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
531 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
|
|
|
|
532 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:20
|
533 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
534 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
535 |
msgid "Reports"
|
536 |
msgstr ""
|
537 |
|
538 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
|
|
539 |
msgid "Sequences"
|
540 |
msgstr ""
|
541 |
|
542 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
543 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
544 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
|
|
545 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:54
|
546 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
547 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/class-es-workflow-admin-edit.php:184
|
548 |
msgid "Workflows"
|
549 |
msgstr ""
|
550 |
|
551 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
552 |
msgid "Unsubscribe from all the lists"
|
553 |
msgstr ""
|
554 |
|
555 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:
|
556 |
msgid "Inline CSS"
|
557 |
msgstr ""
|
558 |
|
|
|
|
|
|
|
|
|
|
|
559 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:72
|
560 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
561 |
msgid "Comments"
|
562 |
msgstr ""
|
563 |
|
564 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:82
|
565 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
566 |
msgid "WooCommerce"
|
567 |
msgstr ""
|
568 |
|
569 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:91
|
570 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
571 |
msgid "EDD"
|
572 |
msgstr ""
|
573 |
|
574 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:100
|
575 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
576 |
msgid "Contact Form 7"
|
577 |
msgstr ""
|
578 |
|
579 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:109
|
580 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
581 |
msgid "WPForms"
|
582 |
msgstr ""
|
583 |
|
584 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:118
|
585 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
586 |
msgid "Give"
|
587 |
msgstr ""
|
588 |
|
589 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:127
|
590 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
591 |
msgid "Ninja Forms"
|
592 |
msgstr ""
|
593 |
|
@@ -605,7 +699,7 @@ msgstr ""
|
|
605 |
|
606 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:241
|
607 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:31
|
608 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
609 |
msgid "Please select list"
|
610 |
msgstr ""
|
611 |
|
@@ -619,12 +713,12 @@ msgstr ""
|
|
619 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:503
|
620 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:590
|
621 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:77
|
622 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:
|
623 |
msgid "Select List"
|
624 |
msgstr ""
|
625 |
|
626 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:326
|
627 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
628 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:91
|
629 |
msgid "Save Settings"
|
630 |
msgstr ""
|
@@ -757,22 +851,39 @@ msgid ""
|
|
757 |
"Select the list in which you want to make Ninja Forms contacts subscribed to"
|
758 |
msgstr ""
|
759 |
|
760 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
761 |
msgid "Please select a trigger before saving the workflow."
|
762 |
msgstr ""
|
763 |
|
764 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
765 |
msgid "Please add some actions before saving the workflow."
|
766 |
msgstr ""
|
767 |
|
768 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
769 |
msgid ""
|
770 |
"Changing the trigger will remove existing actions. Do you want to proceed "
|
771 |
"anyway?."
|
772 |
msgstr ""
|
773 |
|
774 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
775 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:
|
776 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-form-widget.php:11
|
777 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:11
|
778 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:12
|
@@ -780,43 +891,55 @@ msgstr ""
|
|
780 |
msgid "Email Subscribers"
|
781 |
msgstr ""
|
782 |
|
783 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
|
|
784 |
msgid "Dashboard"
|
785 |
msgstr ""
|
786 |
|
787 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
788 |
msgid "Post Notifications"
|
789 |
msgstr ""
|
790 |
|
791 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
792 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:109
|
793 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
794 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-
|
|
|
795 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:34
|
796 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:
|
797 |
msgid "Broadcast"
|
798 |
msgstr ""
|
799 |
|
800 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
|
|
801 |
msgid "Template Preview"
|
802 |
msgstr ""
|
803 |
|
804 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
805 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
806 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:37
|
807 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
808 |
msgid "Lists"
|
809 |
msgstr ""
|
810 |
|
811 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
|
|
812 |
msgid "Settings"
|
813 |
msgstr ""
|
814 |
|
815 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:
|
816 |
msgid "Go To Icegram"
|
817 |
msgstr ""
|
818 |
|
819 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
820 |
#, php-format
|
821 |
msgid ""
|
822 |
"WordPress Cron is disable on your site. Email notifications from Email "
|
@@ -824,103 +947,133 @@ msgid ""
|
|
824 |
"target=\"_blank\" >Here's how you can enable it.</a>"
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:
|
828 |
#, php-format
|
829 |
msgid "Or schedule Cron in <a href=\"%s\" target=\"_blank\">cPanel</a>"
|
830 |
msgstr ""
|
831 |
|
832 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:
|
833 |
#, php-format
|
834 |
msgid ""
|
835 |
"Or use <strong><a href=\"%s\" target=\"_blank\">Email Subscribers Pro</a>"
|
836 |
"</strong> for automatic Cron support"
|
837 |
msgstr ""
|
838 |
|
839 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:
|
840 |
msgid "OK, I Got it!"
|
841 |
msgstr ""
|
842 |
|
843 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:
|
844 |
#, php-format
|
845 |
msgid "%1$s in %2$s on line %3$s"
|
846 |
msgstr ""
|
847 |
|
848 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:90
|
849 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
850 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
851 |
msgid "Subscribed"
|
852 |
msgstr ""
|
853 |
|
854 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:91
|
855 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
856 |
msgid "Unconfirmed"
|
857 |
msgstr ""
|
858 |
|
859 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:92
|
860 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
861 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
862 |
msgid "Unsubscribed"
|
863 |
msgstr ""
|
864 |
|
865 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:115
|
866 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:
|
867 |
msgid "Select Status"
|
868 |
msgstr ""
|
869 |
|
870 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
871 |
msgid "Select Template"
|
872 |
msgstr ""
|
873 |
|
874 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
875 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/
|
|
|
876 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-save.php:29
|
877 |
msgid "Active"
|
878 |
msgstr ""
|
879 |
|
880 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
|
|
881 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-save.php:28
|
882 |
msgid "Inactive"
|
883 |
msgstr ""
|
884 |
|
885 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
886 |
msgid "Select Categories"
|
887 |
msgstr ""
|
888 |
|
889 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
890 |
msgid "All Categories (Also include all categories which will create later)"
|
891 |
msgstr ""
|
892 |
|
893 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
894 |
msgid "No Custom Post Types Available"
|
895 |
msgstr ""
|
896 |
|
897 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
898 |
msgid "Single Opt-In"
|
899 |
msgstr ""
|
900 |
|
901 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
902 |
msgid "Double Opt-In"
|
903 |
msgstr ""
|
904 |
|
905 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
906 |
msgid "Full Size"
|
907 |
msgstr ""
|
908 |
|
909 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
910 |
msgid "Medium Size"
|
911 |
msgstr ""
|
912 |
|
913 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
914 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:
|
915 |
msgid "Thumbnail"
|
916 |
msgstr ""
|
917 |
|
918 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
919 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:124
|
920 |
msgid "Join Now"
|
921 |
msgstr ""
|
922 |
|
923 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1252
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
924 |
msgid "Lifetime"
|
925 |
msgstr ""
|
926 |
|
@@ -934,6 +1087,7 @@ msgstr ""
|
|
934 |
|
935 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:56
|
936 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:83
|
|
|
937 |
msgid "Send"
|
938 |
msgstr ""
|
939 |
|
@@ -967,163 +1121,222 @@ msgstr ""
|
|
967 |
msgid "Send my feedback to <b>Icegram team</b>"
|
968 |
msgstr ""
|
969 |
|
970 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
971 |
msgid "Sync Comment Users"
|
972 |
msgstr ""
|
973 |
|
974 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
975 |
msgid ""
|
976 |
"Quickly add to your mailing list when someone post a comment on your website."
|
977 |
msgstr ""
|
978 |
|
979 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
980 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
981 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
982 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
983 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
984 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
985 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
986 |
msgid "How to setup?"
|
987 |
msgstr ""
|
988 |
|
989 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
990 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
991 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
992 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
993 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
994 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
995 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
996 |
msgid "Once you upgrade to "
|
997 |
msgstr ""
|
998 |
|
999 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1000 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1001 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1002 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1003 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1004 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1005 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1006 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1007 |
msgid "Email Subscribers Starter"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1011 |
msgid ""
|
1012 |
"you will have settings panel where you need to enable Comment user sync and "
|
1013 |
"select the list in which you want to add people whenever someone post a\n"
|
1014 |
-
"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1018 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1019 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1020 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1021 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1022 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1023 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1024 |
msgid "Checkout "
|
1025 |
msgstr ""
|
1026 |
|
1027 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1028 |
msgid "now"
|
1029 |
msgstr ""
|
1030 |
|
1031 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1032 |
msgid "Sync WooCommerce Customers"
|
1033 |
msgstr ""
|
1034 |
|
1035 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1036 |
msgid ""
|
1037 |
"Are you using WooCommerce for your online business? You can use this "
|
1038 |
"integration to add to a specific list whenever someone make a purchase from "
|
1039 |
"you"
|
1040 |
msgstr ""
|
1041 |
|
1042 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1043 |
msgid ""
|
1044 |
"you will have settings panel where you need to enable WooCommerce sync and "
|
1045 |
"select the list in which you want to add people whenever they\n"
|
1046 |
-
"
|
1047 |
-
"
|
1048 |
msgstr ""
|
1049 |
|
1050 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1051 |
msgid "Sync Contact Form 7 users"
|
1052 |
msgstr ""
|
1053 |
|
1054 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1055 |
msgid ""
|
1056 |
"Are you using Contact Form 7 for your list building? You can use this "
|
1057 |
"integration to add to a specific list whenever new subscribers added from "
|
1058 |
"Contact Form 7"
|
1059 |
msgstr ""
|
1060 |
|
1061 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1062 |
msgid ""
|
1063 |
"you will have settings panel where you need to enable Contact form 7 sync "
|
1064 |
"and select the list in which you want to add people whenever they fill any "
|
1065 |
"of the Contact Form."
|
1066 |
msgstr ""
|
1067 |
|
1068 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1069 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1070 |
msgid "Sync Donors"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1074 |
msgid ""
|
1075 |
"We found that you are using Give WordPress plugin to collect donations. Now, "
|
1076 |
"with this integration, you can add your donors to any of your subscriber "
|
1077 |
"list and send them Newsletters in future."
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1081 |
msgid ""
|
1082 |
"you will have settings panel where you need to enable Give integration and "
|
1083 |
"select the list in which you want to add people whenever they make donation."
|
1084 |
msgstr ""
|
1085 |
|
1086 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1087 |
msgid ""
|
1088 |
"Are you using Give WordPress plugin to collect donations? Want to send Thank "
|
1089 |
"You email to them? You can use this integration to be in touch with them."
|
1090 |
msgstr ""
|
1091 |
|
1092 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1093 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1094 |
msgid ""
|
1095 |
"you will have settings panel where you need to enable Give sync and select "
|
1096 |
"the list in which you want to add people whenever they make donation."
|
1097 |
msgstr ""
|
1098 |
|
1099 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1100 |
msgid "Sync Contacts"
|
1101 |
msgstr ""
|
1102 |
|
1103 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1104 |
msgid ""
|
1105 |
"We found that you are using Ninja Forms. Want to add your contact to a "
|
1106 |
"mailing list? You can use this integration to add your contact to add into "
|
1107 |
"mailing list"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1111 |
msgid "Sync Customers"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1115 |
msgid ""
|
1116 |
"We found that you are using EDD to sell digital goods online. You can use "
|
1117 |
"this integration to send Newsletters/ Post Notifications to your customers."
|
1118 |
msgstr ""
|
1119 |
|
1120 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1121 |
msgid ""
|
1122 |
"you will have settings panel where you need to enable EDD sync and select "
|
1123 |
"the list in which you want to add people whenever they purchase something "
|
1124 |
"from you."
|
1125 |
msgstr ""
|
1126 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1127 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/class-email-subscribers-public.php:110
|
1128 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-subscription.php:420
|
1129 |
msgid "Please enter email address"
|
@@ -1177,7 +1390,7 @@ msgid "Are you sure you want to unsubscribe?"
|
|
1177 |
msgstr ""
|
1178 |
|
1179 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:111
|
1180 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
1181 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:35
|
1182 |
msgid "Post Notification"
|
1183 |
msgstr ""
|
@@ -1190,6 +1403,84 @@ msgstr ""
|
|
1190 |
msgid "In Queue"
|
1191 |
msgstr ""
|
1192 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1193 |
#. Author of the plugin
|
1194 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:28
|
1195 |
msgid "Icegram"
|
@@ -1269,15 +1560,32 @@ msgstr ""
|
|
1269 |
msgid "Contact US"
|
1270 |
msgstr ""
|
1271 |
|
|
|
|
|
|
|
|
|
1272 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:185
|
1273 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1274 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:
|
1275 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
1276 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
1277 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
1278 |
msgid "Status"
|
1279 |
msgstr ""
|
1280 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1281 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:9
|
1282 |
#, php-format
|
1283 |
msgid ""
|
@@ -1320,7 +1628,7 @@ msgid "But before test <strong>verify your sender details</strong>"
|
|
1320 |
msgstr ""
|
1321 |
|
1322 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:20
|
1323 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1324 |
msgid "Sender"
|
1325 |
msgstr ""
|
1326 |
|
@@ -1411,208 +1719,194 @@ msgstr ""
|
|
1411 |
msgid "You do not have permission to update settings"
|
1412 |
msgstr ""
|
1413 |
|
1414 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1415 |
msgid "General"
|
1416 |
msgstr ""
|
1417 |
|
1418 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1419 |
msgid "Notifications"
|
1420 |
msgstr ""
|
1421 |
|
1422 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1423 |
msgid "Email Sending"
|
1424 |
msgstr ""
|
1425 |
|
1426 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1427 |
msgid "Security"
|
1428 |
msgstr ""
|
1429 |
|
1430 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1431 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1432 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1433 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1434 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
1435 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
1436 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
1437 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/partials/class-es-shortcode.php:
|
1438 |
msgid "Name"
|
1439 |
msgstr ""
|
1440 |
|
1441 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1442 |
msgid "Choose a FROM name for all the emails to be sent from this plugin."
|
1443 |
msgstr ""
|
1444 |
|
1445 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1446 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:665
|
1447 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:910
|
1448 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:295
|
1449 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:327
|
1450 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:90
|
1451 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/partials/class-es-shortcode.php:153
|
1452 |
-
msgid "Email"
|
1453 |
-
msgstr ""
|
1454 |
-
|
1455 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:175
|
1456 |
msgid ""
|
1457 |
"Choose a FROM email address for all the emails to be sent from this plugin"
|
1458 |
msgstr ""
|
1459 |
|
1460 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1461 |
msgid "Email Address"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1465 |
msgid "Email Addresses"
|
1466 |
msgstr ""
|
1467 |
|
1468 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1469 |
msgid ""
|
1470 |
"Enter the admin email addresses that should receive notifications (separated "
|
1471 |
"by comma)."
|
1472 |
msgstr ""
|
1473 |
|
1474 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1475 |
msgid "Opt-in Type"
|
1476 |
msgstr ""
|
1477 |
|
1478 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1479 |
msgid "Image Size"
|
1480 |
msgstr ""
|
1481 |
|
1482 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1483 |
msgid ""
|
1484 |
-
"
|
1485 |
-
"Emails
|
1486 |
msgstr ""
|
1487 |
|
1488 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1489 |
msgid "Track Opens"
|
1490 |
msgstr ""
|
1491 |
|
1492 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1493 |
-
msgid "Check this if you want to track email opening."
|
1494 |
-
msgstr ""
|
1495 |
-
|
1496 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:224
|
1497 |
msgid "Message to display after form submission"
|
1498 |
msgstr ""
|
1499 |
|
1500 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1501 |
msgid "Show Unsubscribe Message In Email Footer"
|
1502 |
msgstr ""
|
1503 |
|
1504 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1505 |
msgid ""
|
1506 |
"Add text which you want your contact to see in footer to unsubscribe. Use "
|
1507 |
"{{UNSUBSCRIBE-LINK}} keyword to add unsubscribe link."
|
1508 |
msgstr ""
|
1509 |
|
1510 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1511 |
msgid "Subscription Success/ Error Messages"
|
1512 |
msgstr ""
|
1513 |
|
1514 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1515 |
msgid "You have been subscribed successfully!"
|
1516 |
msgstr ""
|
1517 |
|
1518 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1519 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1520 |
msgid "Success Message"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1524 |
msgid ""
|
1525 |
"Show this message if contact is successfully subscribed from Double Opt-In "
|
1526 |
"(Confirmation) Email"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1530 |
msgid ""
|
1531 |
"Oops.. Your request couldn't be completed. This email address seems to be "
|
1532 |
"already subscribed / blocked."
|
1533 |
msgstr ""
|
1534 |
|
1535 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1536 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1537 |
msgid "Error Message"
|
1538 |
msgstr ""
|
1539 |
|
1540 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1541 |
msgid ""
|
1542 |
"Show this message if any error occured after clicking confirmation link from "
|
1543 |
"Double Opt-In (Confirmation) Email."
|
1544 |
msgstr ""
|
1545 |
|
1546 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1547 |
msgid "Unsubscribe Success/ Error Messages"
|
1548 |
msgstr ""
|
1549 |
|
1550 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1551 |
msgid ""
|
1552 |
"Thank You, You have been successfully unsubscribed. You will no longer hear "
|
1553 |
"from us."
|
1554 |
msgstr ""
|
1555 |
|
1556 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1557 |
msgid ""
|
1558 |
"Once contact clicks on unsubscribe link, he/she will be redirected to a page "
|
1559 |
"where this message will be shown."
|
1560 |
msgstr ""
|
1561 |
|
1562 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1563 |
msgid ""
|
1564 |
"Show this message if any error occured after clicking on unsubscribe link."
|
1565 |
msgstr ""
|
1566 |
|
1567 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1568 |
msgid "Welcome Email"
|
1569 |
msgstr ""
|
1570 |
|
1571 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1572 |
-
msgid "
|
1573 |
msgstr ""
|
1574 |
|
1575 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:335
|
1576 |
-
msgid "
|
1577 |
msgstr ""
|
1578 |
|
1579 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1580 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1581 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:411
|
1582 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1583 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
1584 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
1585 |
msgid "Subject"
|
1586 |
msgstr ""
|
1587 |
|
1588 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1589 |
msgid ""
|
1590 |
"Available keywords. {{FIRSTNAME}}, {{LASTNAME}}, {{NAME}}, {{EMAIL}}, {{LIST}"
|
1591 |
"}, {{UNSUBSCRIBE-LINK}}"
|
1592 |
msgstr ""
|
1593 |
|
1594 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1595 |
msgid "Confirmation Email"
|
1596 |
msgstr ""
|
1597 |
|
1598 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1599 |
msgid ""
|
1600 |
"If Double Optin is set, contact will receive confirmation email with above "
|
1601 |
"content. You can use {{FIRSTNAME}}, {{LASTNAME}}, {{NAME}}, {{EMAIL}}, "
|
1602 |
"{{SUBSCRIBE-LINK}} keywords"
|
1603 |
msgstr ""
|
1604 |
|
1605 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1606 |
msgid "Admin Notification On New Subscription"
|
1607 |
msgstr ""
|
1608 |
|
1609 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1610 |
-
|
1611 |
-
msgid "Notify?"
|
1612 |
msgstr ""
|
1613 |
|
1614 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1615 |
-
|
|
|
1616 |
msgstr ""
|
1617 |
|
1618 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:413
|
@@ -1634,95 +1928,102 @@ msgstr ""
|
|
1634 |
msgid "Admin Notification On Every Campaign Sent"
|
1635 |
msgstr ""
|
1636 |
|
1637 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1638 |
-
msgid "
|
1639 |
msgstr ""
|
1640 |
|
1641 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1642 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-mailer.php:
|
1643 |
msgid "Campaign Sent!"
|
1644 |
msgstr ""
|
1645 |
|
1646 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1647 |
msgid ""
|
1648 |
"Send report to admin(s) whenever campaign is successfully sent to all "
|
1649 |
"contacts. Available Keywords: {{DATE}}, {{SUBJECT}}, {{COUNT}}"
|
1650 |
msgstr ""
|
1651 |
|
1652 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1653 |
msgid "Cron URL"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1657 |
msgid "Disable WordPress Cron"
|
1658 |
msgstr ""
|
1659 |
|
1660 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1661 |
msgid ""
|
1662 |
-
"Check this if you do not want Email Subscribers to use WP
|
1663 |
-
"emails"
|
1664 |
msgstr ""
|
1665 |
|
1666 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1667 |
msgid "Send Emails At Most Every"
|
1668 |
msgstr ""
|
1669 |
|
1670 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1671 |
-
msgid "
|
1672 |
msgstr ""
|
1673 |
|
1674 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1675 |
msgid "Maximum Emails To Send In An Hour"
|
1676 |
msgstr ""
|
1677 |
|
1678 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1679 |
msgid "Total emails your host can send in an hour."
|
1680 |
msgstr ""
|
1681 |
|
1682 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1683 |
msgid "Maximum Emails To Send At once"
|
1684 |
msgstr ""
|
1685 |
|
1686 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1687 |
msgid "Maximum emails you want to send on every cron request."
|
1688 |
msgstr ""
|
1689 |
|
1690 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1691 |
msgid "Send Test Email"
|
1692 |
msgstr ""
|
1693 |
|
1694 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1695 |
msgid "Enter email address to send test email."
|
1696 |
msgstr ""
|
1697 |
|
1698 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1699 |
msgid "Select Mailer"
|
1700 |
msgstr ""
|
1701 |
|
1702 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1703 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1704 |
msgid "Pepipost API key"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1708 |
msgid "Select a mailer to send mail"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1712 |
msgid "Blocked Domain(s)"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1716 |
msgid ""
|
1717 |
"Seeing spam signups from particular domains? Enter domains names (one per "
|
1718 |
"line) that you want to block here."
|
1719 |
msgstr ""
|
1720 |
|
1721 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1722 |
msgid "Signup for Pepipost"
|
1723 |
msgstr ""
|
1724 |
|
1725 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:
|
1726 |
msgid "How to find"
|
1727 |
msgstr ""
|
1728 |
|
@@ -1735,77 +2036,98 @@ msgstr ""
|
|
1735 |
msgid "Number of campaigns per page"
|
1736 |
msgstr ""
|
1737 |
|
1738 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
|
|
|
|
|
|
|
|
1739 |
msgid "Create Post Notification"
|
1740 |
msgstr ""
|
1741 |
|
1742 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1743 |
msgid "Send Broadcast"
|
1744 |
msgstr ""
|
1745 |
|
1746 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1747 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1748 |
msgid "Onsite Campaigns"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1752 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-
|
1753 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:269
|
1754 |
msgid "Manage Templates"
|
1755 |
msgstr ""
|
1756 |
|
1757 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1758 |
msgid "No Campaigns Found."
|
1759 |
msgstr ""
|
1760 |
|
1761 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1762 |
msgid "In Active"
|
1763 |
msgstr ""
|
1764 |
|
1765 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
|
|
|
|
1766 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-timing.php:37
|
1767 |
msgid "Scheduled"
|
1768 |
msgstr ""
|
1769 |
|
1770 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1771 |
msgid "Queued"
|
1772 |
msgstr ""
|
1773 |
|
1774 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
|
|
1775 |
msgid "Paused"
|
1776 |
msgstr ""
|
1777 |
|
1778 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1779 |
msgid "Finished"
|
1780 |
msgstr ""
|
1781 |
|
1782 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1783 |
msgid "All"
|
1784 |
msgstr ""
|
1785 |
|
1786 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1787 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-
|
|
|
1788 |
#, php-format
|
1789 |
msgid ""
|
1790 |
"<a href=\"?page=%s&action=%s&list=%s&_wpnonce=%s\" class=\"text-indigo-600\">"
|
1791 |
"Edit</a>"
|
1792 |
msgstr ""
|
1793 |
|
1794 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1795 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
1796 |
#, php-format
|
1797 |
msgid ""
|
1798 |
"<a href=\"?page=%s&action=%s&list=%s&_wpnonce=%s\" onclick=\"return "
|
1799 |
"checkDelete()\">Delete</a>"
|
1800 |
msgstr ""
|
1801 |
|
1802 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1803 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1804 |
msgid "Type"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1808 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:
|
1809 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:36
|
1810 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/workflows/actions/class-es-action-move-to-list.php:31
|
1811 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/workflows/actions/class-es-action-remove-from-list.php:29
|
@@ -1813,27 +2135,27 @@ msgstr ""
|
|
1813 |
msgid "List"
|
1814 |
msgstr ""
|
1815 |
|
1816 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1817 |
msgid "Categories"
|
1818 |
msgstr ""
|
1819 |
|
1820 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1821 |
msgid "Search Campaigns"
|
1822 |
msgstr ""
|
1823 |
|
1824 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1825 |
msgid "You are not allowed to delete campaign."
|
1826 |
msgstr ""
|
1827 |
|
1828 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1829 |
msgid "Campaign has been deleted successfully!"
|
1830 |
msgstr ""
|
1831 |
|
1832 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1833 |
msgid "Campaign(s) have been deleted successfully!"
|
1834 |
msgstr ""
|
1835 |
|
1836 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:
|
1837 |
msgid "Please check campaign(s) to delete."
|
1838 |
msgstr ""
|
1839 |
|
@@ -1844,7 +2166,7 @@ msgid "Contact"
|
|
1844 |
msgstr ""
|
1845 |
|
1846 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:54
|
1847 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1848 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:76
|
1849 |
msgid "Contacts"
|
1850 |
msgstr ""
|
@@ -1858,11 +2180,13 @@ msgid "Add New Contact"
|
|
1858 |
msgstr ""
|
1859 |
|
1860 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:113
|
|
|
1861 |
msgid "Import Contacts"
|
1862 |
msgstr ""
|
1863 |
|
1864 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:122
|
1865 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:67
|
|
|
1866 |
msgid "Export Contacts"
|
1867 |
msgstr ""
|
1868 |
|
@@ -1875,193 +2199,219 @@ msgid "New"
|
|
1875 |
msgstr ""
|
1876 |
|
1877 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:140
|
1878 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1879 |
msgid "Manage Lists"
|
1880 |
msgstr ""
|
1881 |
|
1882 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:193
|
1883 |
-
msgid "
|
|
|
|
|
|
|
|
|
1884 |
msgstr ""
|
1885 |
|
1886 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
1887 |
msgid "Last 60 Days"
|
1888 |
msgstr ""
|
1889 |
|
1890 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1891 |
msgid "Opened"
|
1892 |
msgstr ""
|
1893 |
|
1894 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1895 |
msgid " Add New Contact"
|
1896 |
msgstr ""
|
1897 |
|
1898 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1899 |
msgid " Edit Contact"
|
1900 |
msgstr ""
|
1901 |
|
1902 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1903 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
1904 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
1905 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
1906 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:
|
1907 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
1908 |
msgid "Add New"
|
1909 |
msgstr ""
|
1910 |
|
1911 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1912 |
msgid "Contact already exist."
|
1913 |
msgstr ""
|
1914 |
|
1915 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1916 |
msgid "Contact has been added successfully!"
|
1917 |
msgstr ""
|
1918 |
|
1919 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1920 |
msgid "Contact has been updated successfully!"
|
1921 |
msgstr ""
|
1922 |
|
1923 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1924 |
msgid "Please Enter First Name"
|
1925 |
msgstr ""
|
1926 |
|
1927 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1928 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:33
|
1929 |
msgid "Please Select List"
|
1930 |
msgstr ""
|
1931 |
|
1932 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1933 |
msgid "Please Enter Valid Email Address"
|
1934 |
msgstr ""
|
1935 |
|
1936 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1937 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
1938 |
msgid "Audience "
|
1939 |
msgstr ""
|
1940 |
|
1941 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1942 |
msgid "No list found"
|
1943 |
msgstr ""
|
1944 |
|
1945 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1946 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:
|
1947 |
msgid "First Name"
|
1948 |
msgstr ""
|
1949 |
|
1950 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1951 |
-
|
|
|
|
|
|
|
|
|
1952 |
msgid "Last Name"
|
1953 |
msgstr ""
|
1954 |
|
1955 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1956 |
msgid "Send Welcome Email?"
|
1957 |
msgstr ""
|
1958 |
|
1959 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1960 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1961 |
msgid "List(s)"
|
1962 |
msgstr ""
|
1963 |
|
1964 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1965 |
-
|
1966 |
-
|
1967 |
-
|
|
|
|
|
|
|
|
|
1968 |
msgid "Save Changes"
|
1969 |
msgstr ""
|
1970 |
|
1971 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1972 |
msgid "No contacts avaliable."
|
1973 |
msgstr ""
|
1974 |
|
1975 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1976 |
#, php-format
|
1977 |
msgid ""
|
1978 |
"<a href=\"?page=%s&action=%s&subscriber=%s&_wpnonce=%s\" class=\"text-indigo-"
|
1979 |
"600\">Edit</a>"
|
1980 |
msgstr ""
|
1981 |
|
1982 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1983 |
#, php-format
|
1984 |
msgid ""
|
1985 |
"<a href=\"?page=%s&action=%s&subscriber=%s&_wpnonce=%s\" onclick=\"return "
|
1986 |
"checkDelete()\">Delete</a>"
|
1987 |
msgstr ""
|
1988 |
|
1989 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1990 |
#, php-format
|
1991 |
msgid ""
|
1992 |
"<a href=\"?page=%s&action=%s&subscriber=%s&_wpnonce=%s\" class=\"text-indigo-"
|
1993 |
"600\">Resend Confirmation<a>"
|
1994 |
msgstr ""
|
1995 |
|
1996 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
1997 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
1998 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
1999 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2000 |
msgid "Created"
|
2001 |
msgstr ""
|
2002 |
|
2003 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2004 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2005 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2006 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2007 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2008 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2009 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2010 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/action.php:30
|
2011 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-save.php:46
|
2012 |
msgid "Delete"
|
2013 |
msgstr ""
|
2014 |
|
2015 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2016 |
msgid "Move To List"
|
2017 |
msgstr ""
|
2018 |
|
2019 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2020 |
msgid "Add To List"
|
2021 |
msgstr ""
|
2022 |
|
2023 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2024 |
msgid "Change Status"
|
2025 |
msgstr ""
|
2026 |
|
2027 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2028 |
msgid "Search Contacts"
|
2029 |
msgstr ""
|
2030 |
|
2031 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2032 |
msgid "All Statuses"
|
2033 |
msgstr ""
|
2034 |
|
2035 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2036 |
msgid "All Lists"
|
2037 |
msgstr ""
|
2038 |
|
2039 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2040 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2041 |
msgid "Contact(s) have been deleted successfully!"
|
2042 |
msgstr ""
|
2043 |
|
2044 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2045 |
msgid "Confirmation email has been sent successfully!"
|
2046 |
msgstr ""
|
2047 |
|
2048 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2049 |
msgid "Please select subscribers to update."
|
2050 |
msgstr ""
|
2051 |
|
2052 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2053 |
msgid "Please select status."
|
2054 |
msgstr ""
|
2055 |
|
2056 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2057 |
msgid "Status has been changed successfully!"
|
2058 |
msgstr ""
|
2059 |
|
2060 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2061 |
msgid "Contact(s) have been moved to list successfully!"
|
2062 |
msgstr ""
|
2063 |
|
2064 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:
|
2065 |
msgid "Contact(s) have been added to list successfully!"
|
2066 |
msgstr ""
|
2067 |
|
@@ -2085,42 +2435,42 @@ msgstr ""
|
|
2085 |
msgid "30 minutes"
|
2086 |
msgstr ""
|
2087 |
|
2088 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:
|
2089 |
msgid "Emails sent successfully!"
|
2090 |
msgstr ""
|
2091 |
|
2092 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:
|
2093 |
msgid "Emails not found."
|
2094 |
msgstr ""
|
2095 |
|
2096 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:
|
2097 |
msgid "No notifications found to send."
|
2098 |
msgstr ""
|
2099 |
|
|
|
2100 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:548
|
2101 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:549
|
2102 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:550
|
2103 |
msgid "Invalid GUID."
|
2104 |
msgstr ""
|
2105 |
|
2106 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:
|
2107 |
msgid "Not allowed to process request."
|
2108 |
msgstr ""
|
2109 |
|
2110 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:
|
2111 |
msgid "GUID is empty."
|
2112 |
msgstr ""
|
2113 |
|
2114 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:
|
2115 |
msgid "Please try after sometime."
|
2116 |
msgstr ""
|
2117 |
|
2118 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:
|
2119 |
msgid ""
|
2120 |
"You have hit your hourly email sending limit. Please try after sometime."
|
2121 |
msgstr ""
|
2122 |
|
2123 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:
|
2124 |
msgid "Cron lock enabled. Please try after sometime."
|
2125 |
msgstr ""
|
2126 |
|
@@ -2132,18 +2482,13 @@ msgstr ""
|
|
2132 |
msgid "No."
|
2133 |
msgstr ""
|
2134 |
|
2135 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:77
|
2136 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:275
|
2137 |
-
msgid "Total Contacts"
|
2138 |
-
msgstr ""
|
2139 |
-
|
2140 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:78
|
2141 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2142 |
msgid "Export"
|
2143 |
msgstr ""
|
2144 |
|
2145 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:92
|
2146 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2147 |
msgid "All Contacts"
|
2148 |
msgstr ""
|
2149 |
|
@@ -2159,24 +2504,15 @@ msgstr ""
|
|
2159 |
msgid "Unconfirmed Contacts"
|
2160 |
msgstr ""
|
2161 |
|
2162 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:
|
2163 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:466
|
2164 |
-
msgid "Download"
|
2165 |
-
msgstr ""
|
2166 |
-
|
2167 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:133
|
2168 |
-
msgid "Audience > Export Contacts"
|
2169 |
-
msgstr ""
|
2170 |
-
|
2171 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:224
|
2172 |
msgid "Export the Subscribers"
|
2173 |
msgstr ""
|
2174 |
|
2175 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:
|
2176 |
msgid "Opt-In Type"
|
2177 |
msgstr ""
|
2178 |
|
2179 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:
|
2180 |
msgid "Created On"
|
2181 |
msgstr ""
|
2182 |
|
@@ -2188,167 +2524,163 @@ msgstr ""
|
|
2188 |
msgid "Number of forms per page"
|
2189 |
msgstr ""
|
2190 |
|
2191 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2192 |
msgid "You do not have permission to edit this form."
|
2193 |
msgstr ""
|
2194 |
|
2195 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2196 |
msgid "Please add form name."
|
2197 |
msgstr ""
|
2198 |
|
2199 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2200 |
msgid "Please select list(s) in which contact will be subscribed."
|
2201 |
msgstr ""
|
2202 |
|
2203 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2204 |
msgid "Form has been added successfully!"
|
2205 |
msgstr ""
|
2206 |
|
2207 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2208 |
msgid "Form has been updated successfully!"
|
2209 |
msgstr ""
|
2210 |
|
2211 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2212 |
msgid "Sorry, form not found"
|
2213 |
msgstr ""
|
2214 |
|
2215 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2216 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/partials/class-es-shortcode.php:
|
2217 |
msgid "Subscribe"
|
2218 |
msgstr ""
|
2219 |
|
2220 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2221 |
msgid "Forms "
|
2222 |
msgstr ""
|
2223 |
|
2224 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2225 |
msgid " New Form"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2229 |
msgid " Edit Form"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2233 |
msgid "Form Name"
|
2234 |
msgstr ""
|
2235 |
|
2236 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2237 |
msgid "Description"
|
2238 |
msgstr ""
|
2239 |
|
2240 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2241 |
msgid "Form Fields"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2245 |
msgid "Field"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2249 |
msgid "Show?"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2253 |
msgid "Required?"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2257 |
msgid "Label"
|
2258 |
msgstr ""
|
2259 |
|
2260 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2261 |
msgid "Place Holder"
|
2262 |
msgstr ""
|
2263 |
|
2264 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2265 |
msgid "Button"
|
2266 |
msgstr ""
|
2267 |
|
2268 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2269 |
msgid "Contacts will be added into selected list(s)"
|
2270 |
msgstr ""
|
2271 |
|
2272 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2273 |
msgid "Allow contact to choose list(s)"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2277 |
msgid "Allow contacts to choose list(s) in which they want to subscribe."
|
2278 |
msgstr ""
|
2279 |
|
2280 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2281 |
msgid "Show GDPR consent checkbox"
|
2282 |
msgstr ""
|
2283 |
|
2284 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2285 |
msgid ""
|
2286 |
"Show consent checkbox to get the consent of a contact before adding them to "
|
2287 |
"list(s)"
|
2288 |
msgstr ""
|
2289 |
|
2290 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2291 |
msgid ""
|
2292 |
"Consent text will show up at subscription form next to consent checkbox."
|
2293 |
msgstr ""
|
2294 |
|
2295 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2296 |
-
|
2297 |
-
msgid ""
|
2298 |
-
"Secure your form and avoid spam signups with Email Subscribers Starter Plan "
|
2299 |
-
"<a target=\"_blank\" style=\"font-weight: bold; cursor:pointer; text-"
|
2300 |
-
"decoration:none\" href=\"%s\">Get started</a>"
|
2301 |
msgstr ""
|
2302 |
|
2303 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2304 |
#, php-format
|
2305 |
msgid ""
|
2306 |
"<a href=\"?page=%s&action=%s&form=%s&_wpnonce=%s\" class=\"text-indigo-600\">"
|
2307 |
"Edit</a>"
|
2308 |
msgstr ""
|
2309 |
|
2310 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2311 |
#, php-format
|
2312 |
msgid ""
|
2313 |
"<a href=\"?page=%s&action=%s&form=%s&_wpnonce=%s\" onclick=\"return "
|
2314 |
"checkDelete()\">Delete</a>"
|
2315 |
msgstr ""
|
2316 |
|
2317 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2318 |
msgid "Shortcode"
|
2319 |
msgstr ""
|
2320 |
|
2321 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2322 |
msgid "Search Forms"
|
2323 |
msgstr ""
|
2324 |
|
2325 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2326 |
msgid "You do not have permission to delete this form."
|
2327 |
msgstr ""
|
2328 |
|
2329 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2330 |
msgid "Form has been deleted successfully!"
|
2331 |
msgstr ""
|
2332 |
|
2333 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2334 |
msgid "Form(s) have been deleted successfully!"
|
2335 |
msgstr ""
|
2336 |
|
2337 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2338 |
msgid "Please select form(s) to delete."
|
2339 |
msgstr ""
|
2340 |
|
2341 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2342 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2343 |
msgid "Enable"
|
2344 |
msgstr ""
|
2345 |
|
2346 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2347 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2348 |
msgid "Disable"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:
|
2352 |
msgid "No Forms avaliable."
|
2353 |
msgstr ""
|
2354 |
|
@@ -2400,71 +2732,103 @@ msgid ""
|
|
2400 |
"class=\"text-indigo-400\">Create new workflows</a>"
|
2401 |
msgstr ""
|
2402 |
|
2403 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2404 |
msgid "Sorry, you do not have permission to import contacts."
|
2405 |
msgstr ""
|
2406 |
|
2407 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
2408 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:158
|
2409 |
#, php-format
|
2410 |
msgid "Total %d contacts have been imported successfully!"
|
2411 |
msgstr ""
|
2412 |
|
2413 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
2414 |
#, php-format
|
2415 |
-
msgid "%d
|
2416 |
msgstr ""
|
2417 |
|
2418 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
2419 |
#, php-format
|
2420 |
-
msgid "%d
|
2421 |
msgstr ""
|
2422 |
|
2423 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
2424 |
msgid "Error: Please Select List"
|
2425 |
msgstr ""
|
2426 |
|
2427 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
2428 |
msgid "Error: Please select status"
|
2429 |
msgstr ""
|
2430 |
|
2431 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2432 |
msgid "Error: Please Upload only CSV File"
|
2433 |
msgstr ""
|
2434 |
|
2435 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
2436 |
-
|
|
|
|
|
|
|
|
|
2437 |
msgid "Error: Please Upload File"
|
2438 |
msgstr ""
|
2439 |
|
2440 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
2441 |
msgid "Select CSV file"
|
2442 |
msgstr ""
|
2443 |
|
2444 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
|
|
|
|
|
|
|
|
|
|
2445 |
msgid "Check CSV structure"
|
2446 |
msgstr ""
|
2447 |
|
2448 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
2449 |
msgid "from here"
|
2450 |
msgstr ""
|
2451 |
|
2452 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
2453 |
msgid "Select status"
|
2454 |
msgstr ""
|
2455 |
|
2456 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
2457 |
msgid "Select list"
|
2458 |
msgstr ""
|
2459 |
|
2460 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:
|
2461 |
msgid "Import"
|
2462 |
msgstr ""
|
2463 |
|
2464 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:273
|
2465 |
-
msgid "Audience > Import Contacts"
|
2466 |
-
msgstr ""
|
2467 |
-
|
2468 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-info.php:20
|
2469 |
msgid "<span class=\"es-fire-sale\"> 🔥 </span> Go Pro"
|
2470 |
msgstr ""
|
@@ -2473,119 +2837,177 @@ msgstr ""
|
|
2473 |
msgid "Number of lists per page"
|
2474 |
msgstr ""
|
2475 |
|
2476 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2477 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2478 |
msgid "You do not have permission to edit list"
|
2479 |
msgstr ""
|
2480 |
|
2481 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2482 |
msgid "Please add list name"
|
2483 |
msgstr ""
|
2484 |
|
2485 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2486 |
msgid "List already exists. Please choose different name"
|
2487 |
msgstr ""
|
2488 |
|
2489 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2490 |
msgid "List has been added successfully!"
|
2491 |
msgstr ""
|
2492 |
|
2493 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2494 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2495 |
msgid "List has been updated successfully!"
|
2496 |
msgstr ""
|
2497 |
|
2498 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2499 |
msgid " Lists "
|
2500 |
msgstr ""
|
2501 |
|
2502 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2503 |
msgid "Edit List"
|
2504 |
msgstr ""
|
2505 |
|
2506 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2507 |
msgid "List Name"
|
2508 |
msgstr ""
|
2509 |
|
2510 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2511 |
-
|
2512 |
-
|
2513 |
-
|
|
|
|
|
|
|
|
|
2514 |
#, php-format
|
2515 |
msgid "<a href=\"%s\" target=\"_blank\">%d</a>"
|
2516 |
msgstr ""
|
2517 |
|
2518 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2519 |
msgid "Search Lists"
|
2520 |
msgstr ""
|
2521 |
|
2522 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2523 |
msgid "You do not have permission to delete list"
|
2524 |
msgstr ""
|
2525 |
|
2526 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2527 |
msgid "List has been deleted successfully!"
|
2528 |
msgstr ""
|
2529 |
|
2530 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2531 |
msgid "List(s) have been deleted successfully"
|
2532 |
msgstr ""
|
2533 |
|
2534 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:
|
2535 |
msgid "No lists avaliable."
|
2536 |
msgstr ""
|
2537 |
|
2538 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-mailer.php:
|
2539 |
msgid "Thanks!"
|
2540 |
msgstr ""
|
2541 |
|
2542 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-mailer.php:
|
2543 |
#, php-format
|
2544 |
msgid "Test email to %s"
|
2545 |
msgstr ""
|
2546 |
|
2547 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
|
|
|
|
|
|
|
|
2548 |
msgid "Please add message body or select template"
|
2549 |
msgstr ""
|
2550 |
|
2551 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
2552 |
msgid "Please add the subject"
|
2553 |
msgstr ""
|
2554 |
|
2555 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
2556 |
-
msgid "
|
2557 |
msgstr ""
|
2558 |
|
2559 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
2560 |
-
msgid "
|
|
|
2561 |
msgstr ""
|
2562 |
|
2563 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
2564 |
-
msgid "
|
2565 |
msgstr ""
|
2566 |
|
2567 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
2568 |
-
msgid "
|
2569 |
msgstr ""
|
2570 |
|
2571 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
2572 |
-
msgid "
|
2573 |
msgstr ""
|
2574 |
|
2575 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
2576 |
-
msgid "
|
2577 |
msgstr ""
|
2578 |
|
2579 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
2580 |
-
msgid "
|
2581 |
msgstr ""
|
2582 |
|
2583 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2584 |
msgid "Recipients"
|
2585 |
msgstr ""
|
2586 |
|
2587 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:
|
2588 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2589 |
msgstr ""
|
2590 |
|
2591 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:72
|
@@ -2633,128 +3055,127 @@ msgstr ""
|
|
2633 |
msgid " Edit Post Notification"
|
2634 |
msgstr ""
|
2635 |
|
2636 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:
|
2637 |
msgid "Campaigns "
|
2638 |
msgstr ""
|
2639 |
|
2640 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:
|
2641 |
msgid ""
|
2642 |
"Contacts from the selected list will be notified about new post notification."
|
2643 |
msgstr ""
|
2644 |
|
2645 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:
|
2646 |
msgid "Select Post Category"
|
2647 |
msgstr ""
|
2648 |
|
2649 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:
|
2650 |
msgid ""
|
2651 |
"Notification will be sent out when any post from selected categories will be "
|
2652 |
"published."
|
2653 |
msgstr ""
|
2654 |
|
2655 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:
|
2656 |
msgid "Select custom post type(s)"
|
2657 |
msgstr ""
|
2658 |
|
2659 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:
|
2660 |
msgid ""
|
2661 |
"(Optional) Select custom post type for which you want to send notification."
|
2662 |
msgstr ""
|
2663 |
|
|
|
|
|
|
|
|
|
2664 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:19
|
2665 |
msgid "Report"
|
2666 |
msgstr ""
|
2667 |
|
2668 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2669 |
#, php-format
|
2670 |
msgid ""
|
2671 |
-
"<a href='%s'
|
2672 |
-
"Emails Now</a>"
|
2673 |
msgstr ""
|
2674 |
|
2675 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2676 |
msgid ""
|
2677 |
"<span class='ig-es-send-queue-emails button-disabled'>Send Queued Emails "
|
2678 |
"Now</span>"
|
2679 |
msgstr ""
|
2680 |
|
2681 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2682 |
msgid "<br /><span class='es-helper'>No emails found in queue</span>"
|
2683 |
msgstr ""
|
2684 |
|
2685 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2686 |
msgid "Sr No"
|
2687 |
msgstr ""
|
2688 |
|
2689 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2690 |
msgid "Sent Date"
|
2691 |
msgstr ""
|
2692 |
|
2693 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2694 |
msgid "Viewed Status"
|
2695 |
msgstr ""
|
2696 |
|
2697 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2698 |
msgid "Viewed Date"
|
2699 |
msgstr ""
|
2700 |
|
2701 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2702 |
msgid "Viewed"
|
2703 |
msgstr ""
|
2704 |
|
2705 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2706 |
msgid "Not yet viewed"
|
2707 |
msgstr ""
|
2708 |
|
2709 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2710 |
msgid "No Reports avaliable."
|
2711 |
msgstr ""
|
2712 |
|
2713 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2714 |
msgid "Completed"
|
2715 |
msgstr ""
|
2716 |
|
2717 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2718 |
msgid "View"
|
2719 |
msgstr ""
|
2720 |
|
2721 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2722 |
-
msgid "Preview"
|
2723 |
-
msgstr ""
|
2724 |
-
|
2725 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:273
|
2726 |
msgid "Start Date"
|
2727 |
msgstr ""
|
2728 |
|
2729 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2730 |
msgid "End Date"
|
2731 |
msgstr ""
|
2732 |
|
2733 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2734 |
msgid "You do not have permission to view notification"
|
2735 |
msgstr ""
|
2736 |
|
2737 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2738 |
msgid "You do not have permission to delete notification"
|
2739 |
msgstr ""
|
2740 |
|
2741 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2742 |
msgid "Report has been deleted successfully!"
|
2743 |
msgstr ""
|
2744 |
|
2745 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2746 |
msgid "You do not have permission to preview notification"
|
2747 |
msgstr ""
|
2748 |
|
2749 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2750 |
msgid "Reports have been deleted successfully!"
|
2751 |
msgstr ""
|
2752 |
|
2753 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2754 |
msgid "Preview Email"
|
2755 |
msgstr ""
|
2756 |
|
2757 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2758 |
msgid ""
|
2759 |
"This is how the email you sent may look. <br>Note: Different email services "
|
2760 |
"(like gmail, yahoo etc) display email content differently. So there could be "
|
@@ -2783,14 +3204,18 @@ msgstr ""
|
|
2783 |
msgid "Preview Template"
|
2784 |
msgstr ""
|
2785 |
|
2786 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:
|
2787 |
msgid "Template Type"
|
2788 |
msgstr ""
|
2789 |
|
2790 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:
|
2791 |
msgid "Duplicate"
|
2792 |
msgstr ""
|
2793 |
|
|
|
|
|
|
|
|
|
2794 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-tools.php:54
|
2795 |
msgid "Email has been sent. Please check your inbox"
|
2796 |
msgstr ""
|
@@ -2820,11 +3245,11 @@ msgstr ""
|
|
2820 |
msgid "%s ago"
|
2821 |
msgstr ""
|
2822 |
|
2823 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflow.php:
|
2824 |
msgid "Missing action_name key in array."
|
2825 |
msgstr ""
|
2826 |
|
2827 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflow.php:
|
2828 |
msgid "Could not retrieve the action."
|
2829 |
msgstr ""
|
2830 |
|
@@ -2862,80 +3287,76 @@ msgstr ""
|
|
2862 |
msgid "An error has occured. Please try again later"
|
2863 |
msgstr ""
|
2864 |
|
2865 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2866 |
msgid "No Workflows Found."
|
2867 |
msgstr ""
|
2868 |
|
2869 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2870 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/action.php:29
|
2871 |
msgid "Edit"
|
2872 |
msgstr ""
|
2873 |
|
2874 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2875 |
msgid "Toggle Status"
|
2876 |
msgstr ""
|
2877 |
|
2878 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2879 |
msgid "Title"
|
2880 |
msgstr ""
|
2881 |
|
2882 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2883 |
-
msgid "Activate"
|
2884 |
-
msgstr ""
|
2885 |
-
|
2886 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:320
|
2887 |
msgid "Deactivate"
|
2888 |
msgstr ""
|
2889 |
|
2890 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2891 |
msgid "Search Workflows"
|
2892 |
msgstr ""
|
2893 |
|
2894 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2895 |
msgid "You are not allowed to delete workflow."
|
2896 |
msgstr ""
|
2897 |
|
2898 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2899 |
msgid "Workflow has been deleted successfully!"
|
2900 |
msgstr ""
|
2901 |
|
2902 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2903 |
msgid "Workflow(s) have been deleted successfully!"
|
2904 |
msgstr ""
|
2905 |
|
2906 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2907 |
msgid "Please check workflow(s) to delete."
|
2908 |
msgstr ""
|
2909 |
|
2910 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2911 |
msgid "activated"
|
2912 |
msgstr ""
|
2913 |
|
2914 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2915 |
msgid "deactivated"
|
2916 |
msgstr ""
|
2917 |
|
2918 |
#. %s: Workflow action
|
2919 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2920 |
#, php-format
|
2921 |
msgid "Workflow(s) have been %s successfully!"
|
2922 |
msgstr ""
|
2923 |
|
2924 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2925 |
msgid "activate"
|
2926 |
msgstr ""
|
2927 |
|
2928 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2929 |
msgid "deactivate"
|
2930 |
msgstr ""
|
2931 |
|
2932 |
#. %s: Workflow action
|
2933 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:
|
2934 |
#, php-format
|
2935 |
msgid "Please check workflow(s) to %s."
|
2936 |
msgstr ""
|
2937 |
|
2938 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/partials/class-es-shortcode.php:
|
2939 |
msgid "Select List(s)"
|
2940 |
msgstr ""
|
2941 |
|
@@ -2956,7 +3377,8 @@ msgid "Remove from list"
|
|
2956 |
msgstr ""
|
2957 |
|
2958 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-cf7-submitted.php:23
|
2959 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/
|
|
|
2960 |
msgid "Contact Form 7 Submitted"
|
2961 |
msgstr ""
|
2962 |
|
@@ -2965,6 +3387,7 @@ msgid "Fires whenever someone fill the Contact Form 7 form."
|
|
2965 |
msgstr ""
|
2966 |
|
2967 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-cf7-submitted.php:25
|
|
|
2968 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-gravity-forms-submitted.php:25
|
2969 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-ninja-forms-submitted.php:25
|
2970 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-wpforms-submitted.php:25
|
@@ -2972,8 +3395,6 @@ msgid "Form"
|
|
2972 |
msgstr ""
|
2973 |
|
2974 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-comment-added.php:23
|
2975 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:371
|
2976 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:21
|
2977 |
msgid "Comment added"
|
2978 |
msgstr ""
|
2979 |
|
@@ -2990,8 +3411,6 @@ msgid "Comment"
|
|
2990 |
msgstr ""
|
2991 |
|
2992 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-edd-purchase-completed.php:23
|
2993 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:379
|
2994 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:31
|
2995 |
msgid "EDD purchase completed"
|
2996 |
msgstr ""
|
2997 |
|
@@ -3005,8 +3424,36 @@ msgstr ""
|
|
3005 |
msgid "Order"
|
3006 |
msgstr ""
|
3007 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3008 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-give-donation-made.php:23
|
3009 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:32
|
3010 |
msgid "Give donation"
|
3011 |
msgstr ""
|
3012 |
|
@@ -3015,7 +3462,8 @@ msgid "Fires whenever someone make a donation using Give."
|
|
3015 |
msgstr ""
|
3016 |
|
3017 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-gravity-forms-submitted.php:23
|
3018 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/
|
|
|
3019 |
msgid "Gravity Form Submitted"
|
3020 |
msgstr ""
|
3021 |
|
@@ -3024,7 +3472,8 @@ msgid "Fires whenever someone fill up Gravity Forms."
|
|
3024 |
msgstr ""
|
3025 |
|
3026 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-ninja-forms-submitted.php:23
|
3027 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/
|
|
|
3028 |
msgid "Ninja Form Submitted"
|
3029 |
msgstr ""
|
3030 |
|
@@ -3033,8 +3482,6 @@ msgid "Fires whenever someone fill up Ninja Forms."
|
|
3033 |
msgstr ""
|
3034 |
|
3035 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-wc-order-completed.php:23
|
3036 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:375
|
3037 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:30
|
3038 |
msgid "WooCommerce order completed"
|
3039 |
msgstr ""
|
3040 |
|
@@ -3043,7 +3490,8 @@ msgid "Fires whenever WooCommerce order gets completed."
|
|
3043 |
msgstr ""
|
3044 |
|
3045 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-wpforms-submitted.php:23
|
3046 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/
|
|
|
3047 |
msgid "WP Form Submitted"
|
3048 |
msgstr ""
|
3049 |
|
@@ -3084,7 +3532,7 @@ msgstr ""
|
|
3084 |
|
3085 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/abstracts/class-es-workflow-action.php:168
|
3086 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/abstracts/class-es-workflow-action.php:183
|
3087 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/abstracts/class-es-workflow-trigger.php:
|
3088 |
msgid "Other"
|
3089 |
msgstr ""
|
3090 |
|
@@ -3109,7 +3557,7 @@ msgid "Add title"
|
|
3109 |
msgstr ""
|
3110 |
|
3111 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/class-es-workflow-admin-edit.php:232
|
3112 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:
|
3113 |
msgid "Trigger"
|
3114 |
msgstr ""
|
3115 |
|
@@ -3126,38 +3574,36 @@ msgstr ""
|
|
3126 |
msgid "Options"
|
3127 |
msgstr ""
|
3128 |
|
3129 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:
|
3130 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/triggers/class-es-trigger-user-registered.php:31
|
3131 |
-
msgid "User
|
3132 |
-
msgstr ""
|
3133 |
-
|
3134 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:383
|
3135 |
-
msgid "Contact Form 7 submitted"
|
3136 |
msgstr ""
|
3137 |
|
3138 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:
|
3139 |
-
|
|
|
3140 |
msgstr ""
|
3141 |
|
3142 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:
|
3143 |
-
|
|
|
3144 |
msgstr ""
|
3145 |
|
3146 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:
|
3147 |
-
|
|
|
3148 |
msgstr ""
|
3149 |
|
3150 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:
|
3151 |
-
|
|
|
3152 |
msgstr ""
|
3153 |
|
3154 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:
|
3155 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/triggers/class-es-trigger-user-deleted.php:31
|
3156 |
msgid "User deleted"
|
3157 |
msgstr ""
|
3158 |
|
3159 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:
|
3160 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/triggers/class-es-trigger-user-updated.php:31
|
3161 |
msgid "User updated"
|
3162 |
msgstr ""
|
3163 |
|
@@ -3174,7 +3620,7 @@ msgid "Select"
|
|
3174 |
msgstr ""
|
3175 |
|
3176 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/fields/class-es-select.php:80
|
3177 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:
|
3178 |
msgid "[Select]"
|
3179 |
msgstr ""
|
3180 |
|
@@ -3204,6 +3650,10 @@ msgid ""
|
|
3204 |
"database."
|
3205 |
msgstr ""
|
3206 |
|
|
|
|
|
|
|
|
|
3207 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/triggers/class-es-trigger-user-deleted.php:32
|
3208 |
msgid "Fires when user deleted from WordPress ."
|
3209 |
msgstr ""
|
@@ -3218,6 +3668,10 @@ msgstr ""
|
|
3218 |
msgid "Fires when someone signup."
|
3219 |
msgstr ""
|
3220 |
|
|
|
|
|
|
|
|
|
3221 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/triggers/class-es-trigger-user-updated.php:32
|
3222 |
msgid "Fires when a user is updated."
|
3223 |
msgstr ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Email Subscribers & Newsletters\n"
|
5 |
"Report-Msgid-Bugs-To: \n"
|
6 |
+
"POT-Creation-Date: 2020-05-14 07:36+0000\n"
|
7 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
8 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
9 |
"Language-Team: \n"
|
54 |
msgid "Connect to Icegram"
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:112
|
58 |
msgid "Sequence"
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:213
|
|
|
62 |
msgid "Google Analytics link tracking"
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:214
|
66 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:511
|
67 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:788
|
68 |
msgid "Get Spam Score"
|
69 |
msgstr ""
|
70 |
|
71 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:224
|
72 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:593
|
73 |
msgid "Campaign Name"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:224
|
|
|
77 |
msgid ""
|
78 |
"This will be appended to every URL in this template with parameters: "
|
79 |
+
"utm_source=es&utm_medium=email&utm_campaign=campaign_name"
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:232
|
83 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:513
|
84 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:375
|
85 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:789
|
86 |
msgid "Check"
|
87 |
msgstr ""
|
88 |
|
89 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:236
|
90 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:525
|
91 |
msgid "Awesome score. Your email is almost perfect."
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:237
|
95 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:526
|
96 |
msgid "Ouch! your email needs improvement. "
|
97 |
msgstr ""
|
98 |
|
99 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:239
|
100 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:529
|
101 |
msgid "Here are some things to fix: "
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:351
|
105 |
+
msgid "Please enter an email address."
|
106 |
+
msgstr ""
|
107 |
+
|
108 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:352
|
109 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:130
|
110 |
+
msgid "Please add email body."
|
111 |
+
msgstr ""
|
112 |
+
|
113 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:462
|
114 |
msgid "Clean My List"
|
115 |
msgstr ""
|
116 |
|
117 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:463
|
118 |
msgid "List cleanup is in progress..."
|
119 |
msgstr ""
|
120 |
|
121 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:464
|
122 |
msgid "List cleanup completed successfully."
|
123 |
msgstr ""
|
124 |
|
125 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:472
|
126 |
msgid "Email Status"
|
127 |
msgstr ""
|
128 |
|
129 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:523
|
130 |
+
msgid "Spam score"
|
131 |
msgstr ""
|
132 |
|
133 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:536
|
134 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:394
|
135 |
+
msgid "Close"
|
136 |
msgstr ""
|
137 |
|
138 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:562
|
139 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:675
|
140 |
+
msgid "Link Tracking"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:578
|
144 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:796
|
145 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:180
|
146 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:689
|
147 |
+
msgid "UTM Tracking"
|
148 |
+
msgstr ""
|
149 |
+
|
150 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:624
|
151 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:719
|
152 |
+
msgid "Send Options"
|
153 |
+
msgstr ""
|
154 |
+
|
155 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:627
|
156 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:722
|
157 |
+
msgid "Schedule for Later"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:640
|
161 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:728
|
162 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/fields/class-es-date.php:32
|
163 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-timing.php:83
|
164 |
msgid "Date"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:651
|
168 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:737
|
169 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/fields/class-es-time.php:65
|
170 |
msgid "Time"
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:662
|
174 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:747
|
175 |
+
msgid "Local Time: "
|
176 |
+
msgstr ""
|
177 |
+
|
178 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:670
|
179 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:754
|
180 |
+
msgid "Send Now"
|
181 |
+
msgstr ""
|
182 |
+
|
183 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:690
|
184 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:699
|
185 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:659
|
186 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:180
|
187 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:706
|
188 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:958
|
189 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:309
|
190 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:341
|
191 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:91
|
192 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/partials/class-es-shortcode.php:151
|
193 |
+
msgid "Email"
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:694
|
197 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:663
|
198 |
+
msgid "Enter email"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:704
|
202 |
+
msgid "Send Preview Email"
|
203 |
+
msgstr ""
|
204 |
+
|
205 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:712
|
206 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:488
|
207 |
msgid "Something went wrong"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:742
|
211 |
msgid "SUCCESS"
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:753
|
215 |
msgid "Select page"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:766
|
219 |
+
msgid ""
|
220 |
+
"Subscriber will be redirected to selected page once they click on "
|
221 |
+
"unsubscribe link from the email."
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:779
|
225 |
+
msgid ""
|
226 |
+
"Subscriber will be redirected to selected page once they click on email "
|
227 |
+
"confirmation link from the Double Opt In (confirmation) Email."
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:788
|
231 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:160
|
232 |
+
msgid "Track Clicks"
|
233 |
+
msgstr ""
|
234 |
+
|
235 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:863
|
236 |
msgid "Clicked"
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:913
|
240 |
msgid "Add Customer to Product specific list"
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:921
|
244 |
msgid "Add Customer to Product variation list"
|
245 |
msgstr ""
|
246 |
|
250 |
msgstr ""
|
251 |
|
252 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-post-digest.php:37
|
253 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:304
|
254 |
msgid "Select template"
|
255 |
msgstr ""
|
256 |
|
257 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-post-digest.php:38
|
258 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:305
|
259 |
msgid "Content of the selected template will be sent out as post notification."
|
260 |
msgstr ""
|
261 |
|
348 |
msgstr ""
|
349 |
|
350 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:47
|
351 |
+
msgid ""
|
352 |
+
"<a href=\"admin.php?page=es_campaigns\"><span class=\"text-base font-medium "
|
353 |
+
"leading-7 text-indigo-600 sm:leading-9 sm:truncate\">Campaigns</span></a> "
|
354 |
+
"<svg fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-"
|
355 |
+
"width=\"2\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" class=\"w-4 h-4 "
|
356 |
+
"inline-block align-middle\"><path d=\"M9 5l7 7-7 7\"></path></svg><span "
|
357 |
+
"class=\"text-2xl font-medium leading-7 text-gray-900 sm:leading-9 sm:"
|
358 |
+
"truncate\"> New Sequence</span>"
|
359 |
msgstr ""
|
360 |
|
361 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:50
|
362 |
+
msgid ""
|
363 |
+
"<a href=\"admin.php?page=es_campaigns\"><span class=\"text-base font-medium "
|
364 |
+
"leading-7 text-indigo-600 sm:leading-9 sm:truncate\">Campaigns</span></a> "
|
365 |
+
"<svg fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-"
|
366 |
+
"width=\"2\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" class=\"w-4 h-4 "
|
367 |
+
"inline-block align-middle\"><path d=\"M9 5l7 7-7 7\"></path></svg> Edit "
|
368 |
+
"Sequence"
|
369 |
msgstr ""
|
370 |
|
371 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:78
|
383 |
|
384 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:134
|
385 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:195
|
386 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1230
|
387 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1251
|
388 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:126
|
389 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:45
|
390 |
msgid "Please select list."
|
391 |
msgstr ""
|
422 |
msgstr ""
|
423 |
|
424 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:349
|
425 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:358
|
426 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:387
|
427 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:419
|
428 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:459
|
429 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:248
|
430 |
msgid "Content"
|
431 |
msgstr ""
|
432 |
|
438 |
msgid "Add campaign name for utm tracking"
|
439 |
msgstr ""
|
440 |
|
441 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:399
|
442 |
+
msgid "When to send"
|
443 |
+
msgstr ""
|
444 |
+
|
445 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:401
|
446 |
msgid " after"
|
447 |
msgstr ""
|
450 |
msgid " after subscription"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:192
|
454 |
msgid "Are You a Human? "
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:313
|
458 |
msgid ""
|
459 |
+
"<span class=\"es-send-success es-icon\"></span> We will take care of it. You "
|
460 |
"don't need to visit this URL manually."
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:324
|
464 |
msgid "SMTP Host"
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:331
|
468 |
msgid "None"
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:331
|
472 |
msgid "SSL"
|
473 |
msgstr ""
|
474 |
|
475 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:331
|
476 |
msgid "TLS"
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:336
|
480 |
msgid "Encryption"
|
481 |
msgstr ""
|
482 |
|
483 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:348
|
484 |
msgid "SMTP Port"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:355
|
488 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:286
|
489 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:232
|
|
|
|
|
|
|
490 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:67
|
491 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-widget.php:49
|
492 |
msgid "No"
|
493 |
msgstr ""
|
494 |
|
495 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:355
|
496 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:289
|
497 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:231
|
|
|
|
|
|
|
498 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:70
|
499 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-widget.php:49
|
500 |
msgid "Yes"
|
501 |
msgstr ""
|
502 |
|
503 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:360
|
504 |
msgid "Authentication"
|
505 |
msgstr ""
|
506 |
|
507 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:372
|
508 |
msgid "SMTP Username"
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:384
|
512 |
msgid "SMTP Password"
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:394
|
516 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:211
|
517 |
msgid "Block Known Attackers"
|
518 |
msgstr ""
|
519 |
|
520 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:395
|
521 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:212
|
522 |
msgid ""
|
523 |
"Stop known spam bot attacker domains from signing up. Keeps this list up-to-"
|
524 |
"date with Icegram servers."
|
525 |
msgstr ""
|
526 |
|
527 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:402
|
528 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:222
|
529 |
msgid "Block Temporary / Fake Emails"
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:403
|
533 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:223
|
534 |
msgid ""
|
535 |
"Plenty of sites provide disposable / fake / temporary email addresses. "
|
536 |
"People use them when they don't want to give you their real email. Block "
|
537 |
"these to keep your list clean. Automatically updated."
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:411
|
541 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:234
|
542 |
msgid "Enable Captcha"
|
543 |
msgstr ""
|
544 |
|
545 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:412
|
546 |
+
msgid "Set default captcha option for new forms"
|
547 |
msgstr ""
|
548 |
|
549 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:431
|
550 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:436
|
551 |
msgid "Comment Opt-In Consent"
|
552 |
msgstr ""
|
553 |
|
554 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:432
|
555 |
msgid "This will show up at comment form next to consent checkbox."
|
556 |
msgstr ""
|
557 |
|
558 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:443
|
559 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:447
|
|
|
|
|
|
|
|
|
560 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:266
|
561 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:368
|
562 |
msgid "Opt-In Consent Text"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:457
|
566 |
msgid "Allow user to select list(s) while unsubscribe"
|
567 |
msgstr ""
|
568 |
|
569 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:537
|
570 |
msgid "Custom CSS"
|
571 |
msgstr ""
|
572 |
|
573 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:610
|
574 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:141
|
575 |
msgid "User Roles"
|
576 |
msgstr ""
|
577 |
|
578 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:631
|
579 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:81
|
580 |
msgid "Roles"
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:632
|
584 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:224
|
585 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:224
|
586 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:82
|
587 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:66
|
588 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:142
|
589 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:312
|
590 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:76
|
591 |
msgid "Audience"
|
592 |
msgstr ""
|
593 |
|
594 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:633
|
595 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:218
|
596 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:218
|
597 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:83
|
598 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:38
|
599 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:39
|
600 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:83
|
601 |
msgid "Forms"
|
602 |
msgstr ""
|
603 |
|
604 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:634
|
605 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:206
|
606 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:206
|
607 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:84
|
608 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:8
|
609 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:103
|
610 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:233
|
611 |
msgid "Campaigns"
|
612 |
msgstr ""
|
613 |
|
614 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:635
|
615 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:233
|
616 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:233
|
617 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:85
|
618 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:193
|
619 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:20
|
620 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:37
|
621 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:76
|
622 |
msgid "Reports"
|
623 |
msgstr ""
|
624 |
|
625 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:636
|
626 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:86
|
627 |
msgid "Sequences"
|
628 |
msgstr ""
|
629 |
|
630 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:637
|
631 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:196
|
632 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:196
|
633 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:87
|
634 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:54
|
635 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:150
|
636 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/class-es-workflow-admin-edit.php:184
|
637 |
msgid "Workflows"
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:867
|
641 |
msgid "Unsubscribe from all the lists"
|
642 |
msgstr ""
|
643 |
|
644 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:965
|
645 |
msgid "Inline CSS"
|
646 |
msgstr ""
|
647 |
|
648 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:1123
|
649 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:610
|
650 |
+
msgid "Show a captcha to protect from bot signups."
|
651 |
+
msgstr ""
|
652 |
+
|
653 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:72
|
654 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:268
|
655 |
msgid "Comments"
|
656 |
msgstr ""
|
657 |
|
658 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:82
|
659 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:279
|
660 |
msgid "WooCommerce"
|
661 |
msgstr ""
|
662 |
|
663 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:91
|
664 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:328
|
665 |
msgid "EDD"
|
666 |
msgstr ""
|
667 |
|
668 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:100
|
669 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:289
|
670 |
msgid "Contact Form 7"
|
671 |
msgstr ""
|
672 |
|
673 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:109
|
674 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:298
|
675 |
msgid "WPForms"
|
676 |
msgstr ""
|
677 |
|
678 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:118
|
679 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:308
|
680 |
msgid "Give"
|
681 |
msgstr ""
|
682 |
|
683 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:127
|
684 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:318
|
685 |
msgid "Ninja Forms"
|
686 |
msgstr ""
|
687 |
|
699 |
|
700 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:241
|
701 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:31
|
702 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:665
|
703 |
msgid "Please select list"
|
704 |
msgstr ""
|
705 |
|
713 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:503
|
714 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:590
|
715 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:77
|
716 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:291
|
717 |
msgid "Select List"
|
718 |
msgstr ""
|
719 |
|
720 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:326
|
721 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:795
|
722 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:91
|
723 |
msgid "Save Settings"
|
724 |
msgstr ""
|
851 |
"Select the list in which you want to make Ninja Forms contacts subscribed to"
|
852 |
msgstr ""
|
853 |
|
854 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:126
|
855 |
+
msgid "An error has occured. Please try again later."
|
856 |
+
msgstr ""
|
857 |
+
|
858 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:127
|
859 |
+
msgid "Broadcast saved as draft successfully."
|
860 |
+
msgstr ""
|
861 |
+
|
862 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:128
|
863 |
+
msgid ""
|
864 |
+
"An error has occured while saving the broadcast. Please try again later."
|
865 |
+
msgstr ""
|
866 |
+
|
867 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:129
|
868 |
+
msgid "Please add a broadcast subject before saving."
|
869 |
+
msgstr ""
|
870 |
+
|
871 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:146
|
872 |
msgid "Please select a trigger before saving the workflow."
|
873 |
msgstr ""
|
874 |
|
875 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:147
|
876 |
msgid "Please add some actions before saving the workflow."
|
877 |
msgstr ""
|
878 |
|
879 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:148
|
880 |
msgid ""
|
881 |
"Changing the trigger will remove existing actions. Do you want to proceed "
|
882 |
"anyway?."
|
883 |
msgstr ""
|
884 |
|
885 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:186
|
886 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:918
|
887 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-form-widget.php:11
|
888 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:11
|
889 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:12
|
891 |
msgid "Email Subscribers"
|
892 |
msgstr ""
|
893 |
|
894 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:189
|
895 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:59
|
896 |
msgid "Dashboard"
|
897 |
msgstr ""
|
898 |
|
899 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:209
|
900 |
msgid "Post Notifications"
|
901 |
msgstr ""
|
902 |
|
903 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:210
|
904 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:109
|
905 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:283
|
906 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:242
|
907 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:196
|
908 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:34
|
909 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:263
|
910 |
msgid "Broadcast"
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:211
|
914 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:389
|
915 |
msgid "Template Preview"
|
916 |
msgstr ""
|
917 |
|
918 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:228
|
919 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:391
|
920 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:37
|
921 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:77
|
922 |
msgid "Lists"
|
923 |
msgstr ""
|
924 |
|
925 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:237
|
926 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:195
|
927 |
msgid "Settings"
|
928 |
msgstr ""
|
929 |
|
930 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:241
|
931 |
msgid "Go To Icegram"
|
932 |
msgstr ""
|
933 |
|
934 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:759
|
935 |
+
#, php-format
|
936 |
+
msgid ""
|
937 |
+
"<span id=\"footer-thankyou\">Thank you for creating with <a href=\"%s\" "
|
938 |
+
"target=\"_blank\">WordPress</a> | Email Subscribers <b>%s</b>. Developed by "
|
939 |
+
"team <a href=\"%s\" target=\"_blank\">Icegram</a></span>"
|
940 |
+
msgstr ""
|
941 |
+
|
942 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:308
|
943 |
#, php-format
|
944 |
msgid ""
|
945 |
"WordPress Cron is disable on your site. Email notifications from Email "
|
947 |
"target=\"_blank\" >Here's how you can enable it.</a>"
|
948 |
msgstr ""
|
949 |
|
950 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:309
|
951 |
#, php-format
|
952 |
msgid "Or schedule Cron in <a href=\"%s\" target=\"_blank\">cPanel</a>"
|
953 |
msgstr ""
|
954 |
|
955 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:310
|
956 |
#, php-format
|
957 |
msgid ""
|
958 |
"Or use <strong><a href=\"%s\" target=\"_blank\">Email Subscribers Pro</a>"
|
959 |
"</strong> for automatic Cron support"
|
960 |
msgstr ""
|
961 |
|
962 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:311
|
963 |
msgid "OK, I Got it!"
|
964 |
msgstr ""
|
965 |
|
966 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:1027
|
967 |
#, php-format
|
968 |
msgid "%1$s in %2$s on line %3$s"
|
969 |
msgstr ""
|
970 |
|
971 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:90
|
972 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:290
|
973 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:536
|
974 |
msgid "Subscribed"
|
975 |
msgstr ""
|
976 |
|
977 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:91
|
978 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:538
|
979 |
msgid "Unconfirmed"
|
980 |
msgstr ""
|
981 |
|
982 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:92
|
983 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:298
|
984 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:537
|
985 |
msgid "Unsubscribed"
|
986 |
msgstr ""
|
987 |
|
988 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:115
|
989 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:322
|
990 |
msgid "Select Status"
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:236
|
994 |
msgid "Select Template"
|
995 |
msgstr ""
|
996 |
|
997 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:274
|
998 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:187
|
999 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:246
|
1000 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-save.php:29
|
1001 |
msgid "Active"
|
1002 |
msgstr ""
|
1003 |
|
1004 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:275
|
1005 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:189
|
1006 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-save.php:28
|
1007 |
msgid "Inactive"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:343
|
1011 |
msgid "Select Categories"
|
1012 |
msgstr ""
|
1013 |
|
1014 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:356
|
1015 |
msgid "All Categories (Also include all categories which will create later)"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:389
|
1019 |
msgid "No Custom Post Types Available"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:405
|
1023 |
msgid "Single Opt-In"
|
1024 |
msgstr ""
|
1025 |
|
1026 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:406
|
1027 |
msgid "Double Opt-In"
|
1028 |
msgstr ""
|
1029 |
|
1030 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:421
|
1031 |
msgid "Full Size"
|
1032 |
msgstr ""
|
1033 |
|
1034 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:422
|
1035 |
msgid "Medium Size"
|
1036 |
msgstr ""
|
1037 |
|
1038 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:423
|
1039 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:244
|
1040 |
msgid "Thumbnail"
|
1041 |
msgstr ""
|
1042 |
|
1043 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1249
|
1044 |
+
msgid "8 Tips To Improve Email Open Rates"
|
1045 |
+
msgstr ""
|
1046 |
+
|
1047 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1250
|
1048 |
+
msgid "Prevent Your Email From Landing In Spam"
|
1049 |
+
msgstr ""
|
1050 |
+
|
1051 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1251
|
1052 |
+
msgid "<b>Email Subscribers Secret Club</b>"
|
1053 |
+
msgstr ""
|
1054 |
+
|
1055 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1251
|
1056 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:124
|
1057 |
msgid "Join Now"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1252
|
1061 |
+
msgid "Best Way To Keep Customers Engaged"
|
1062 |
+
msgstr ""
|
1063 |
+
|
1064 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1253
|
1065 |
+
msgid "Access Control"
|
1066 |
+
msgstr ""
|
1067 |
+
|
1068 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1254
|
1069 |
+
msgid "Prevent Spam Subscription Using Captcha"
|
1070 |
+
msgstr ""
|
1071 |
+
|
1072 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1255
|
1073 |
+
msgid "Email Subscribers PRO"
|
1074 |
+
msgstr ""
|
1075 |
+
|
1076 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1255
|
1077 |
msgid "Lifetime"
|
1078 |
msgstr ""
|
1079 |
|
1087 |
|
1088 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:56
|
1089 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:83
|
1090 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:299
|
1091 |
msgid "Send"
|
1092 |
msgstr ""
|
1093 |
|
1121 |
msgid "Send my feedback to <b>Icegram team</b>"
|
1122 |
msgstr ""
|
1123 |
|
1124 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:293
|
1125 |
+
msgid "Broadcast Created Successfully!"
|
1126 |
+
msgstr ""
|
1127 |
+
|
1128 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:295
|
1129 |
+
msgid ""
|
1130 |
+
"If you like new Broadcast UI, leave us a <b>5 stars review</b>. <br /><br />"
|
1131 |
+
"Do you have a feedback? Contact Us."
|
1132 |
+
msgstr ""
|
1133 |
+
|
1134 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:299
|
1135 |
+
msgid "Leave Review"
|
1136 |
+
msgstr ""
|
1137 |
+
|
1138 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:302
|
1139 |
+
msgid "Contact Us"
|
1140 |
+
msgstr ""
|
1141 |
+
|
1142 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:166
|
1143 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:186
|
1144 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:241
|
1145 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:767
|
1146 |
+
#, php-format
|
1147 |
+
msgid "<a href='%s' target='_blank'>Upgrade to ES PRO</a>"
|
1148 |
+
msgstr ""
|
1149 |
+
|
1150 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:167
|
1151 |
+
msgid "Get insights about link clicks. See who are clicking on which links?"
|
1152 |
+
msgstr ""
|
1153 |
+
|
1154 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:187
|
1155 |
+
msgid "Get insights about UTM tracking."
|
1156 |
+
msgstr ""
|
1157 |
+
|
1158 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:235
|
1159 |
+
msgid "Show a captcha in subscription forms to protect from bot signups."
|
1160 |
+
msgstr ""
|
1161 |
+
|
1162 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:242
|
1163 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:641
|
1164 |
+
msgid "Secure your form and avoid spam signups with form Captcha"
|
1165 |
+
msgstr ""
|
1166 |
+
|
1167 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:356
|
1168 |
msgid "Sync Comment Users"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:357
|
1172 |
msgid ""
|
1173 |
"Quickly add to your mailing list when someone post a comment on your website."
|
1174 |
msgstr ""
|
1175 |
|
1176 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:358
|
1177 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:387
|
1178 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:420
|
1179 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:452
|
1180 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:484
|
1181 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:516
|
1182 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:548
|
1183 |
msgid "How to setup?"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:359
|
1187 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:388
|
1188 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:421
|
1189 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:453
|
1190 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:485
|
1191 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:517
|
1192 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:549
|
1193 |
msgid "Once you upgrade to "
|
1194 |
msgstr ""
|
1195 |
|
1196 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:359
|
1197 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:362
|
1198 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:388
|
1199 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:421
|
1200 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:453
|
1201 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:485
|
1202 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:517
|
1203 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:549
|
1204 |
msgid "Email Subscribers Starter"
|
1205 |
msgstr ""
|
1206 |
|
1207 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:359
|
1208 |
msgid ""
|
1209 |
"you will have settings panel where you need to enable Comment user sync and "
|
1210 |
"select the list in which you want to add people whenever someone post a\n"
|
1211 |
+
"\t\tcomment."
|
1212 |
msgstr ""
|
1213 |
|
1214 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:362
|
1215 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:392
|
1216 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:424
|
1217 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:456
|
1218 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:488
|
1219 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:520
|
1220 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:552
|
1221 |
msgid "Checkout "
|
1222 |
msgstr ""
|
1223 |
|
1224 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:362
|
1225 |
msgid "now"
|
1226 |
msgstr ""
|
1227 |
|
1228 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:385
|
1229 |
msgid "Sync WooCommerce Customers"
|
1230 |
msgstr ""
|
1231 |
|
1232 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:386
|
1233 |
msgid ""
|
1234 |
"Are you using WooCommerce for your online business? You can use this "
|
1235 |
"integration to add to a specific list whenever someone make a purchase from "
|
1236 |
"you"
|
1237 |
msgstr ""
|
1238 |
|
1239 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:388
|
1240 |
msgid ""
|
1241 |
"you will have settings panel where you need to enable WooCommerce sync and "
|
1242 |
"select the list in which you want to add people whenever they\n"
|
1243 |
+
"\t\t\tpurchase something\n"
|
1244 |
+
"\t\t\tfrom you."
|
1245 |
msgstr ""
|
1246 |
|
1247 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:418
|
1248 |
msgid "Sync Contact Form 7 users"
|
1249 |
msgstr ""
|
1250 |
|
1251 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:419
|
1252 |
msgid ""
|
1253 |
"Are you using Contact Form 7 for your list building? You can use this "
|
1254 |
"integration to add to a specific list whenever new subscribers added from "
|
1255 |
"Contact Form 7"
|
1256 |
msgstr ""
|
1257 |
|
1258 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:422
|
1259 |
msgid ""
|
1260 |
"you will have settings panel where you need to enable Contact form 7 sync "
|
1261 |
"and select the list in which you want to add people whenever they fill any "
|
1262 |
"of the Contact Form."
|
1263 |
msgstr ""
|
1264 |
|
1265 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:450
|
1266 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:482
|
1267 |
msgid "Sync Donors"
|
1268 |
msgstr ""
|
1269 |
|
1270 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:451
|
1271 |
msgid ""
|
1272 |
"We found that you are using Give WordPress plugin to collect donations. Now, "
|
1273 |
"with this integration, you can add your donors to any of your subscriber "
|
1274 |
"list and send them Newsletters in future."
|
1275 |
msgstr ""
|
1276 |
|
1277 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:454
|
1278 |
msgid ""
|
1279 |
"you will have settings panel where you need to enable Give integration and "
|
1280 |
"select the list in which you want to add people whenever they make donation."
|
1281 |
msgstr ""
|
1282 |
|
1283 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:483
|
1284 |
msgid ""
|
1285 |
"Are you using Give WordPress plugin to collect donations? Want to send Thank "
|
1286 |
"You email to them? You can use this integration to be in touch with them."
|
1287 |
msgstr ""
|
1288 |
|
1289 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:486
|
1290 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:518
|
1291 |
msgid ""
|
1292 |
"you will have settings panel where you need to enable Give sync and select "
|
1293 |
"the list in which you want to add people whenever they make donation."
|
1294 |
msgstr ""
|
1295 |
|
1296 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:514
|
1297 |
msgid "Sync Contacts"
|
1298 |
msgstr ""
|
1299 |
|
1300 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:515
|
1301 |
msgid ""
|
1302 |
"We found that you are using Ninja Forms. Want to add your contact to a "
|
1303 |
"mailing list? You can use this integration to add your contact to add into "
|
1304 |
"mailing list"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:546
|
1308 |
msgid "Sync Customers"
|
1309 |
msgstr ""
|
1310 |
|
1311 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:547
|
1312 |
msgid ""
|
1313 |
"We found that you are using EDD to sell digital goods online. You can use "
|
1314 |
"this integration to send Newsletters/ Post Notifications to your customers."
|
1315 |
msgstr ""
|
1316 |
|
1317 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:550
|
1318 |
msgid ""
|
1319 |
"you will have settings panel where you need to enable EDD sync and select "
|
1320 |
"the list in which you want to add people whenever they purchase something "
|
1321 |
"from you."
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:659
|
1325 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:675
|
1326 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:689
|
1327 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:719
|
1328 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:788
|
1329 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:94
|
1330 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:724
|
1331 |
+
msgid "Premium"
|
1332 |
+
msgstr ""
|
1333 |
+
|
1334 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:771
|
1335 |
+
msgid ""
|
1336 |
+
"Link Tracking, UTM Tracking and Scheduling Options are part of Email "
|
1337 |
+
"Subscribers PRO"
|
1338 |
+
msgstr ""
|
1339 |
+
|
1340 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/class-email-subscribers-public.php:110
|
1341 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-subscription.php:420
|
1342 |
msgid "Please enter email address"
|
1390 |
msgstr ""
|
1391 |
|
1392 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:111
|
1393 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:192
|
1394 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:35
|
1395 |
msgid "Post Notification"
|
1396 |
msgstr ""
|
1403 |
msgid "In Queue"
|
1404 |
msgstr ""
|
1405 |
|
1406 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:60
|
1407 |
+
msgid "Started at"
|
1408 |
+
msgstr ""
|
1409 |
+
|
1410 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:79
|
1411 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:136
|
1412 |
+
msgid "Opens"
|
1413 |
+
msgstr ""
|
1414 |
+
|
1415 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:88
|
1416 |
+
msgid "Clicks"
|
1417 |
+
msgstr ""
|
1418 |
+
|
1419 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:97
|
1420 |
+
msgid "Lost"
|
1421 |
+
msgstr ""
|
1422 |
+
|
1423 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:75
|
1424 |
+
msgid "Create"
|
1425 |
+
msgstr ""
|
1426 |
+
|
1427 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:86
|
1428 |
+
msgid "New Broadcast"
|
1429 |
+
msgstr ""
|
1430 |
+
|
1431 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:88
|
1432 |
+
msgid "New Post Notification"
|
1433 |
+
msgstr ""
|
1434 |
+
|
1435 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:91
|
1436 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:93
|
1437 |
+
msgid "New Sequence"
|
1438 |
+
msgstr ""
|
1439 |
+
|
1440 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:99
|
1441 |
+
msgid "New Template"
|
1442 |
+
msgstr ""
|
1443 |
+
|
1444 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:103
|
1445 |
+
msgid "New Form"
|
1446 |
+
msgstr ""
|
1447 |
+
|
1448 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:104
|
1449 |
+
msgid "New List"
|
1450 |
+
msgstr ""
|
1451 |
+
|
1452 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:105
|
1453 |
+
msgid "New Contact"
|
1454 |
+
msgstr ""
|
1455 |
+
|
1456 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:120
|
1457 |
+
msgid " active contacts"
|
1458 |
+
msgstr ""
|
1459 |
+
|
1460 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:128
|
1461 |
+
msgid "Last 60 days"
|
1462 |
+
msgstr ""
|
1463 |
+
|
1464 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:144
|
1465 |
+
msgid " Avg Open Rate"
|
1466 |
+
msgstr ""
|
1467 |
+
|
1468 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:152
|
1469 |
+
msgid "Messages Sent"
|
1470 |
+
msgstr ""
|
1471 |
+
|
1472 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:160
|
1473 |
+
msgid "Avg Click Rate"
|
1474 |
+
msgstr ""
|
1475 |
+
|
1476 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:193
|
1477 |
+
msgid "Jump to: "
|
1478 |
+
msgstr ""
|
1479 |
+
|
1480 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:193
|
1481 |
+
msgid "Templates"
|
1482 |
+
msgstr ""
|
1483 |
+
|
1484 |
#. Author of the plugin
|
1485 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:28
|
1486 |
msgid "Icegram"
|
1560 |
msgid "Contact US"
|
1561 |
msgstr ""
|
1562 |
|
1563 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:158
|
1564 |
+
msgid "Other awesome plugins from same author"
|
1565 |
+
msgstr ""
|
1566 |
+
|
1567 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:185
|
1568 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:486
|
1569 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:311
|
1570 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:92
|
1571 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:274
|
1572 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:294
|
1573 |
msgid "Status"
|
1574 |
msgstr ""
|
1575 |
|
1576 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:191
|
1577 |
+
msgid "Not Installed"
|
1578 |
+
msgstr ""
|
1579 |
+
|
1580 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:202
|
1581 |
+
msgid "Install"
|
1582 |
+
msgstr ""
|
1583 |
+
|
1584 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:205
|
1585 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:322
|
1586 |
+
msgid "Activate"
|
1587 |
+
msgstr ""
|
1588 |
+
|
1589 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:9
|
1590 |
#, php-format
|
1591 |
msgid ""
|
1628 |
msgstr ""
|
1629 |
|
1630 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:20
|
1631 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:167
|
1632 |
msgid "Sender"
|
1633 |
msgstr ""
|
1634 |
|
1719 |
msgid "You do not have permission to update settings"
|
1720 |
msgstr ""
|
1721 |
|
1722 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:123
|
1723 |
msgid "General"
|
1724 |
msgstr ""
|
1725 |
|
1726 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:124
|
1727 |
msgid "Notifications"
|
1728 |
msgstr ""
|
1729 |
|
1730 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:125
|
1731 |
msgid "Email Sending"
|
1732 |
msgstr ""
|
1733 |
|
1734 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:126
|
1735 |
msgid "Security"
|
1736 |
msgstr ""
|
1737 |
|
1738 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:171
|
1739 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:174
|
1740 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:482
|
1741 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:957
|
1742 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:358
|
1743 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:818
|
1744 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:535
|
1745 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/partials/class-es-shortcode.php:152
|
1746 |
msgid "Name"
|
1747 |
msgstr ""
|
1748 |
|
1749 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:172
|
1750 |
msgid "Choose a FROM name for all the emails to be sent from this plugin."
|
1751 |
msgstr ""
|
1752 |
|
1753 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:181
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1754 |
msgid ""
|
1755 |
"Choose a FROM email address for all the emails to be sent from this plugin"
|
1756 |
msgstr ""
|
1757 |
|
1758 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:183
|
1759 |
msgid "Email Address"
|
1760 |
msgstr ""
|
1761 |
|
1762 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:191
|
1763 |
msgid "Email Addresses"
|
1764 |
msgstr ""
|
1765 |
|
1766 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:193
|
1767 |
msgid ""
|
1768 |
"Enter the admin email addresses that should receive notifications (separated "
|
1769 |
"by comma)."
|
1770 |
msgstr ""
|
1771 |
|
1772 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:199
|
1773 |
msgid "Opt-in Type"
|
1774 |
msgstr ""
|
1775 |
|
1776 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:208
|
1777 |
msgid "Image Size"
|
1778 |
msgstr ""
|
1779 |
|
1780 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:211
|
1781 |
msgid ""
|
1782 |
+
"Select image size for {{POSTIMAGE}} to be shown in the Post Notification "
|
1783 |
+
"Emails."
|
1784 |
msgstr ""
|
1785 |
|
1786 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:217
|
1787 |
msgid "Track Opens"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:229
|
|
|
|
|
|
|
|
|
1791 |
msgid "Message to display after form submission"
|
1792 |
msgstr ""
|
1793 |
|
1794 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:239
|
1795 |
msgid "Show Unsubscribe Message In Email Footer"
|
1796 |
msgstr ""
|
1797 |
|
1798 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:240
|
1799 |
msgid ""
|
1800 |
"Add text which you want your contact to see in footer to unsubscribe. Use "
|
1801 |
"{{UNSUBSCRIBE-LINK}} keyword to add unsubscribe link."
|
1802 |
msgstr ""
|
1803 |
|
1804 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:247
|
1805 |
msgid "Subscription Success/ Error Messages"
|
1806 |
msgstr ""
|
1807 |
|
1808 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:254
|
1809 |
msgid "You have been subscribed successfully!"
|
1810 |
msgstr ""
|
1811 |
|
1812 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:256
|
1813 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:286
|
1814 |
msgid "Success Message"
|
1815 |
msgstr ""
|
1816 |
|
1817 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:257
|
1818 |
msgid ""
|
1819 |
"Show this message if contact is successfully subscribed from Double Opt-In "
|
1820 |
"(Confirmation) Email"
|
1821 |
msgstr ""
|
1822 |
|
1823 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:265
|
1824 |
msgid ""
|
1825 |
"Oops.. Your request couldn't be completed. This email address seems to be "
|
1826 |
"already subscribed / blocked."
|
1827 |
msgstr ""
|
1828 |
|
1829 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:267
|
1830 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:298
|
1831 |
msgid "Error Message"
|
1832 |
msgstr ""
|
1833 |
|
1834 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:268
|
1835 |
msgid ""
|
1836 |
"Show this message if any error occured after clicking confirmation link from "
|
1837 |
"Double Opt-In (Confirmation) Email."
|
1838 |
msgstr ""
|
1839 |
|
1840 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:276
|
1841 |
msgid "Unsubscribe Success/ Error Messages"
|
1842 |
msgstr ""
|
1843 |
|
1844 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:284
|
1845 |
msgid ""
|
1846 |
"Thank You, You have been successfully unsubscribed. You will no longer hear "
|
1847 |
"from us."
|
1848 |
msgstr ""
|
1849 |
|
1850 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:287
|
1851 |
msgid ""
|
1852 |
"Once contact clicks on unsubscribe link, he/she will be redirected to a page "
|
1853 |
"where this message will be shown."
|
1854 |
msgstr ""
|
1855 |
|
1856 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:299
|
1857 |
msgid ""
|
1858 |
"Show this message if any error occured after clicking on unsubscribe link."
|
1859 |
msgstr ""
|
1860 |
|
1861 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:329
|
1862 |
msgid "Welcome Email"
|
1863 |
msgstr ""
|
1864 |
|
1865 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:330
|
1866 |
+
msgid "Send welcome email to new contact after signup."
|
1867 |
msgstr ""
|
1868 |
|
1869 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:335
|
1870 |
+
msgid "Enable?"
|
1871 |
msgstr ""
|
1872 |
|
1873 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:348
|
1874 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:376
|
1875 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:411
|
1876 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:448
|
1877 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:321
|
1878 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:272
|
1879 |
msgid "Subject"
|
1880 |
msgstr ""
|
1881 |
|
1882 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:359
|
1883 |
msgid ""
|
1884 |
"Available keywords. {{FIRSTNAME}}, {{LASTNAME}}, {{NAME}}, {{EMAIL}}, {{LIST}"
|
1885 |
"}, {{UNSUBSCRIBE-LINK}}"
|
1886 |
msgstr ""
|
1887 |
|
1888 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:366
|
1889 |
msgid "Confirmation Email"
|
1890 |
msgstr ""
|
1891 |
|
1892 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:388
|
1893 |
msgid ""
|
1894 |
"If Double Optin is set, contact will receive confirmation email with above "
|
1895 |
"content. You can use {{FIRSTNAME}}, {{LASTNAME}}, {{NAME}}, {{EMAIL}}, "
|
1896 |
"{{SUBSCRIBE-LINK}} keywords"
|
1897 |
msgstr ""
|
1898 |
|
1899 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:396
|
1900 |
msgid "Admin Notification On New Subscription"
|
1901 |
msgstr ""
|
1902 |
|
1903 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:397
|
1904 |
+
msgid "Notify admin(s) for new contact signup."
|
|
|
1905 |
msgstr ""
|
1906 |
|
1907 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:402
|
1908 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:435
|
1909 |
+
msgid "Notify?"
|
1910 |
msgstr ""
|
1911 |
|
1912 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:413
|
1928 |
msgid "Admin Notification On Every Campaign Sent"
|
1929 |
msgstr ""
|
1930 |
|
1931 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:430
|
1932 |
+
msgid "Notify admin(s) on every campaign sent."
|
1933 |
msgstr ""
|
1934 |
|
1935 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:446
|
1936 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-mailer.php:354
|
1937 |
msgid "Campaign Sent!"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:460
|
1941 |
msgid ""
|
1942 |
"Send report to admin(s) whenever campaign is successfully sent to all "
|
1943 |
"contacts. Available Keywords: {{DATE}}, {{SUBJECT}}, {{COUNT}}"
|
1944 |
msgstr ""
|
1945 |
|
1946 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:477
|
1947 |
msgid "Cron URL"
|
1948 |
msgstr ""
|
1949 |
|
1950 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:478
|
1951 |
+
#, php-format
|
1952 |
+
msgid ""
|
1953 |
+
"You need to visit this URL to send email notifications. Know <a href='%s' "
|
1954 |
+
"target='_blank'>how to run this in background</a>"
|
1955 |
+
msgstr ""
|
1956 |
+
|
1957 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:486
|
1958 |
msgid "Disable WordPress Cron"
|
1959 |
msgstr ""
|
1960 |
|
1961 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:487
|
1962 |
msgid ""
|
1963 |
+
"Check this if you do not want Email Subscribers to use WP Cron to send "
|
1964 |
+
"emails."
|
1965 |
msgstr ""
|
1966 |
|
1967 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:492
|
1968 |
msgid "Send Emails At Most Every"
|
1969 |
msgstr ""
|
1970 |
|
1971 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:495
|
1972 |
+
msgid "Optional if a real cron service is used"
|
1973 |
msgstr ""
|
1974 |
|
1975 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:505
|
1976 |
msgid "Maximum Emails To Send In An Hour"
|
1977 |
msgstr ""
|
1978 |
|
1979 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:506
|
1980 |
msgid "Total emails your host can send in an hour."
|
1981 |
msgstr ""
|
1982 |
|
1983 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:516
|
1984 |
msgid "Maximum Emails To Send At once"
|
1985 |
msgstr ""
|
1986 |
|
1987 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:517
|
1988 |
msgid "Maximum emails you want to send on every cron request."
|
1989 |
msgstr ""
|
1990 |
|
1991 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:527
|
1992 |
msgid "Send Test Email"
|
1993 |
msgstr ""
|
1994 |
|
1995 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:528
|
1996 |
msgid "Enter email address to send test email."
|
1997 |
msgstr ""
|
1998 |
|
1999 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:538
|
2000 |
msgid "Select Mailer"
|
2001 |
msgstr ""
|
2002 |
|
2003 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:550
|
2004 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:872
|
2005 |
msgid "Pepipost API key"
|
2006 |
msgstr ""
|
2007 |
|
2008 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:567
|
2009 |
msgid "Select a mailer to send mail"
|
2010 |
msgstr ""
|
2011 |
|
2012 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:577
|
2013 |
msgid "Blocked Domain(s)"
|
2014 |
msgstr ""
|
2015 |
|
2016 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:579
|
2017 |
msgid ""
|
2018 |
"Seeing spam signups from particular domains? Enter domains names (one per "
|
2019 |
"line) that you want to block here."
|
2020 |
msgstr ""
|
2021 |
|
2022 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:871
|
2023 |
msgid "Signup for Pepipost"
|
2024 |
msgstr ""
|
2025 |
|
2026 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:872
|
2027 |
msgid "How to find"
|
2028 |
msgstr ""
|
2029 |
|
2036 |
msgid "Number of campaigns per page"
|
2037 |
msgstr ""
|
2038 |
|
2039 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:98
|
2040 |
+
msgid "Broadcast has been created successfully."
|
2041 |
+
msgstr ""
|
2042 |
+
|
2043 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:104
|
2044 |
msgid "Create Post Notification"
|
2045 |
msgstr ""
|
2046 |
|
2047 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:105
|
2048 |
msgid "Send Broadcast"
|
2049 |
msgstr ""
|
2050 |
|
2051 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:113
|
2052 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:115
|
2053 |
msgid "Onsite Campaigns"
|
2054 |
msgstr ""
|
2055 |
|
2056 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:118
|
2057 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:272
|
|
|
2058 |
msgid "Manage Templates"
|
2059 |
msgstr ""
|
2060 |
|
2061 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:230
|
2062 |
msgid "No Campaigns Found."
|
2063 |
msgstr ""
|
2064 |
|
2065 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:245
|
2066 |
msgid "In Active"
|
2067 |
msgstr ""
|
2068 |
|
2069 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:247
|
2070 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:403
|
2071 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:437
|
2072 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-timing.php:37
|
2073 |
msgid "Scheduled"
|
2074 |
msgstr ""
|
2075 |
|
2076 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:248
|
2077 |
msgid "Queued"
|
2078 |
msgstr ""
|
2079 |
|
2080 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:249
|
2081 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:455
|
2082 |
msgid "Paused"
|
2083 |
msgstr ""
|
2084 |
|
2085 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:250
|
2086 |
msgid "Finished"
|
2087 |
msgstr ""
|
2088 |
|
2089 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:291
|
2090 |
msgid "All"
|
2091 |
msgstr ""
|
2092 |
|
2093 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:339
|
2094 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:352
|
2095 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:517
|
2096 |
#, php-format
|
2097 |
msgid ""
|
2098 |
"<a href=\"?page=%s&action=%s&list=%s&_wpnonce=%s\" class=\"text-indigo-600\">"
|
2099 |
"Edit</a>"
|
2100 |
msgstr ""
|
2101 |
|
2102 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:356
|
2103 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:518
|
2104 |
#, php-format
|
2105 |
msgid ""
|
2106 |
"<a href=\"?page=%s&action=%s&list=%s&_wpnonce=%s\" onclick=\"return "
|
2107 |
"checkDelete()\">Delete</a>"
|
2108 |
msgstr ""
|
2109 |
|
2110 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:410
|
2111 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:446
|
2112 |
+
msgid "Sending"
|
2113 |
+
msgstr ""
|
2114 |
+
|
2115 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:417
|
2116 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:463
|
2117 |
+
msgid "Sent"
|
2118 |
+
msgstr ""
|
2119 |
+
|
2120 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:428
|
2121 |
+
msgid "Draft"
|
2122 |
+
msgstr ""
|
2123 |
+
|
2124 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:483
|
2125 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:273
|
2126 |
msgid "Type"
|
2127 |
msgstr ""
|
2128 |
|
2129 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:484
|
2130 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:310
|
2131 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:36
|
2132 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/workflows/actions/class-es-action-move-to-list.php:31
|
2133 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/workflows/actions/class-es-action-remove-from-list.php:29
|
2135 |
msgid "List"
|
2136 |
msgstr ""
|
2137 |
|
2138 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:485
|
2139 |
msgid "Categories"
|
2140 |
msgstr ""
|
2141 |
|
2142 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:535
|
2143 |
msgid "Search Campaigns"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:578
|
2147 |
msgid "You are not allowed to delete campaign."
|
2148 |
msgstr ""
|
2149 |
|
2150 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:584
|
2151 |
msgid "Campaign has been deleted successfully!"
|
2152 |
msgstr ""
|
2153 |
|
2154 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:602
|
2155 |
msgid "Campaign(s) have been deleted successfully!"
|
2156 |
msgstr ""
|
2157 |
|
2158 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:606
|
2159 |
msgid "Please check campaign(s) to delete."
|
2160 |
msgstr ""
|
2161 |
|
2166 |
msgstr ""
|
2167 |
|
2168 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:54
|
2169 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:197
|
2170 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:76
|
2171 |
msgid "Contacts"
|
2172 |
msgstr ""
|
2180 |
msgstr ""
|
2181 |
|
2182 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:113
|
2183 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:312
|
2184 |
msgid "Import Contacts"
|
2185 |
msgstr ""
|
2186 |
|
2187 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:122
|
2188 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:67
|
2189 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:142
|
2190 |
msgid "Export Contacts"
|
2191 |
msgstr ""
|
2192 |
|
2199 |
msgstr ""
|
2200 |
|
2201 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:140
|
2202 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:337
|
2203 |
msgid "Manage Lists"
|
2204 |
msgstr ""
|
2205 |
|
2206 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:193
|
2207 |
+
msgid ""
|
2208 |
+
"Audience <svg fill=\"none\" stroke-linecap=\"round\" stroke-"
|
2209 |
+
"linejoin=\"round\" stroke-width=\"2\" stroke=\"currentColor\" viewBox=\"0 0 "
|
2210 |
+
"24 24\" class=\"w-4 h-4 inline-block align-middle text-gray-900\"><path "
|
2211 |
+
"d=\"M9 5l7 7-7 7\"></path></svg>"
|
2212 |
msgstr ""
|
2213 |
|
2214 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:271
|
2215 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:77
|
2216 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:277
|
2217 |
+
msgid "Total Contacts"
|
2218 |
+
msgstr ""
|
2219 |
+
|
2220 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:283
|
2221 |
msgid "Last 60 Days"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:306
|
2225 |
msgid "Opened"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:336
|
2229 |
msgid " Add New Contact"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:341
|
2233 |
msgid " Edit Contact"
|
2234 |
msgstr ""
|
2235 |
|
2236 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:342
|
2237 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:85
|
2238 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:77
|
2239 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:259
|
2240 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:270
|
2241 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:153
|
2242 |
msgid "Add New"
|
2243 |
msgstr ""
|
2244 |
|
2245 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:390
|
2246 |
msgid "Contact already exist."
|
2247 |
msgstr ""
|
2248 |
|
2249 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:457
|
2250 |
msgid "Contact has been added successfully!"
|
2251 |
msgstr ""
|
2252 |
|
2253 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:459
|
2254 |
msgid "Contact has been updated successfully!"
|
2255 |
msgstr ""
|
2256 |
|
2257 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:466
|
2258 |
msgid "Please Enter First Name"
|
2259 |
msgstr ""
|
2260 |
|
2261 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:471
|
2262 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:33
|
2263 |
msgid "Please Select List"
|
2264 |
msgstr ""
|
2265 |
|
2266 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:476
|
2267 |
msgid "Please Enter Valid Email Address"
|
2268 |
msgstr ""
|
2269 |
|
2270 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:499
|
2271 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:254
|
2272 |
msgid "Audience "
|
2273 |
msgstr ""
|
2274 |
|
2275 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:655
|
2276 |
msgid "No list found"
|
2277 |
msgstr ""
|
2278 |
|
2279 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:665
|
2280 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:307
|
2281 |
msgid "First Name"
|
2282 |
msgstr ""
|
2283 |
|
2284 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:677
|
2285 |
+
msgid "Enter First Name"
|
2286 |
+
msgstr ""
|
2287 |
+
|
2288 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:686
|
2289 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:308
|
2290 |
msgid "Last Name"
|
2291 |
msgstr ""
|
2292 |
|
2293 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:697
|
2294 |
+
msgid "Enter Last Name"
|
2295 |
+
msgstr ""
|
2296 |
+
|
2297 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:716
|
2298 |
+
msgid "Enter Email"
|
2299 |
+
msgstr ""
|
2300 |
+
|
2301 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:726
|
2302 |
msgid "Send Welcome Email?"
|
2303 |
msgstr ""
|
2304 |
|
2305 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:751
|
2306 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:959
|
2307 |
msgid "List(s)"
|
2308 |
msgstr ""
|
2309 |
|
2310 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:769
|
2311 |
+
msgid "Save Contact"
|
2312 |
+
msgstr ""
|
2313 |
+
|
2314 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:772
|
2315 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:486
|
2316 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:298
|
2317 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:372
|
2318 |
msgid "Save Changes"
|
2319 |
msgstr ""
|
2320 |
|
2321 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:791
|
2322 |
msgid "No contacts avaliable."
|
2323 |
msgstr ""
|
2324 |
|
2325 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:937
|
2326 |
#, php-format
|
2327 |
msgid ""
|
2328 |
"<a href=\"?page=%s&action=%s&subscriber=%s&_wpnonce=%s\" class=\"text-indigo-"
|
2329 |
"600\">Edit</a>"
|
2330 |
msgstr ""
|
2331 |
|
2332 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:938
|
2333 |
#, php-format
|
2334 |
msgid ""
|
2335 |
"<a href=\"?page=%s&action=%s&subscriber=%s&_wpnonce=%s\" onclick=\"return "
|
2336 |
"checkDelete()\">Delete</a>"
|
2337 |
msgstr ""
|
2338 |
|
2339 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:941
|
2340 |
#, php-format
|
2341 |
msgid ""
|
2342 |
"<a href=\"?page=%s&action=%s&subscriber=%s&_wpnonce=%s\" class=\"text-indigo-"
|
2343 |
"600\">Resend Confirmation<a>"
|
2344 |
msgstr ""
|
2345 |
|
2346 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:960
|
2347 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:820
|
2348 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:540
|
2349 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:293
|
2350 |
msgid "Created"
|
2351 |
msgstr ""
|
2352 |
|
2353 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:993
|
2354 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:848
|
2355 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:569
|
2356 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:255
|
2357 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:339
|
2358 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:263
|
2359 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:324
|
2360 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/action.php:30
|
2361 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-save.php:46
|
2362 |
msgid "Delete"
|
2363 |
msgstr ""
|
2364 |
|
2365 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:994
|
2366 |
msgid "Move To List"
|
2367 |
msgstr ""
|
2368 |
|
2369 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:995
|
2370 |
msgid "Add To List"
|
2371 |
msgstr ""
|
2372 |
|
2373 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:996
|
2374 |
msgid "Change Status"
|
2375 |
msgstr ""
|
2376 |
|
2377 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1017
|
2378 |
msgid "Search Contacts"
|
2379 |
msgstr ""
|
2380 |
|
2381 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1022
|
2382 |
msgid "All Statuses"
|
2383 |
msgstr ""
|
2384 |
|
2385 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1028
|
2386 |
msgid "All Lists"
|
2387 |
msgstr ""
|
2388 |
|
2389 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1133
|
2390 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1198
|
2391 |
msgid "Contact(s) have been deleted successfully!"
|
2392 |
msgstr ""
|
2393 |
|
2394 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1159
|
2395 |
msgid "Confirmation email has been sent successfully!"
|
2396 |
msgstr ""
|
2397 |
|
2398 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1186
|
2399 |
msgid "Please select subscribers to update."
|
2400 |
msgstr ""
|
2401 |
|
2402 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1209
|
2403 |
msgid "Please select status."
|
2404 |
msgstr ""
|
2405 |
|
2406 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1219
|
2407 |
msgid "Status has been changed successfully!"
|
2408 |
msgstr ""
|
2409 |
|
2410 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1239
|
2411 |
msgid "Contact(s) have been moved to list successfully!"
|
2412 |
msgstr ""
|
2413 |
|
2414 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:1260
|
2415 |
msgid "Contact(s) have been added to list successfully!"
|
2416 |
msgstr ""
|
2417 |
|
2435 |
msgid "30 minutes"
|
2436 |
msgstr ""
|
2437 |
|
2438 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:544
|
2439 |
msgid "Emails sent successfully!"
|
2440 |
msgstr ""
|
2441 |
|
2442 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:545
|
2443 |
msgid "Emails not found."
|
2444 |
msgstr ""
|
2445 |
|
2446 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:546
|
2447 |
msgid "No notifications found to send."
|
2448 |
msgstr ""
|
2449 |
|
2450 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:547
|
2451 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:548
|
2452 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:549
|
|
|
2453 |
msgid "Invalid GUID."
|
2454 |
msgstr ""
|
2455 |
|
2456 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:550
|
2457 |
msgid "Not allowed to process request."
|
2458 |
msgstr ""
|
2459 |
|
2460 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:551
|
2461 |
msgid "GUID is empty."
|
2462 |
msgstr ""
|
2463 |
|
2464 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:552
|
2465 |
msgid "Please try after sometime."
|
2466 |
msgstr ""
|
2467 |
|
2468 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:553
|
2469 |
msgid ""
|
2470 |
"You have hit your hourly email sending limit. Please try after sometime."
|
2471 |
msgstr ""
|
2472 |
|
2473 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-cron.php:554
|
2474 |
msgid "Cron lock enabled. Please try after sometime."
|
2475 |
msgstr ""
|
2476 |
|
2482 |
msgid "No."
|
2483 |
msgstr ""
|
2484 |
|
|
|
|
|
|
|
|
|
|
|
2485 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:78
|
2486 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:541
|
2487 |
msgid "Export"
|
2488 |
msgstr ""
|
2489 |
|
2490 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:92
|
2491 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:539
|
2492 |
msgid "All Contacts"
|
2493 |
msgstr ""
|
2494 |
|
2504 |
msgid "Unconfirmed Contacts"
|
2505 |
msgstr ""
|
2506 |
|
2507 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:238
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2508 |
msgid "Export the Subscribers"
|
2509 |
msgstr ""
|
2510 |
|
2511 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:312
|
2512 |
msgid "Opt-In Type"
|
2513 |
msgstr ""
|
2514 |
|
2515 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:313
|
2516 |
msgid "Created On"
|
2517 |
msgstr ""
|
2518 |
|
2524 |
msgid "Number of forms per page"
|
2525 |
msgstr ""
|
2526 |
|
2527 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:118
|
2528 |
msgid "You do not have permission to edit this form."
|
2529 |
msgstr ""
|
2530 |
|
2531 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:121
|
2532 |
msgid "Please add form name."
|
2533 |
msgstr ""
|
2534 |
|
2535 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:126
|
2536 |
msgid "Please select list(s) in which contact will be subscribed."
|
2537 |
msgstr ""
|
2538 |
|
2539 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:174
|
2540 |
msgid "Form has been added successfully!"
|
2541 |
msgstr ""
|
2542 |
|
2543 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:222
|
2544 |
msgid "Form has been updated successfully!"
|
2545 |
msgstr ""
|
2546 |
|
2547 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:231
|
2548 |
msgid "Sorry, form not found"
|
2549 |
msgstr ""
|
2550 |
|
2551 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:255
|
2552 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/partials/class-es-shortcode.php:130
|
2553 |
msgid "Subscribe"
|
2554 |
msgstr ""
|
2555 |
|
2556 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:275
|
2557 |
msgid "Forms "
|
2558 |
msgstr ""
|
2559 |
|
2560 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:278
|
2561 |
msgid " New Form"
|
2562 |
msgstr ""
|
2563 |
|
2564 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:280
|
2565 |
msgid " Edit Form"
|
2566 |
msgstr ""
|
2567 |
|
2568 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:299
|
2569 |
msgid "Form Name"
|
2570 |
msgstr ""
|
2571 |
|
2572 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:313
|
2573 |
msgid "Description"
|
2574 |
msgstr ""
|
2575 |
|
2576 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:327
|
2577 |
msgid "Form Fields"
|
2578 |
msgstr ""
|
2579 |
|
2580 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:334
|
2581 |
msgid "Field"
|
2582 |
msgstr ""
|
2583 |
|
2584 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:335
|
2585 |
msgid "Show?"
|
2586 |
msgstr ""
|
2587 |
|
2588 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:336
|
2589 |
msgid "Required?"
|
2590 |
msgstr ""
|
2591 |
|
2592 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:337
|
2593 |
msgid "Label"
|
2594 |
msgstr ""
|
2595 |
|
2596 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:338
|
2597 |
msgid "Place Holder"
|
2598 |
msgstr ""
|
2599 |
|
2600 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:378
|
2601 |
msgid "Button"
|
2602 |
msgstr ""
|
2603 |
|
2604 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:392
|
2605 |
msgid "Contacts will be added into selected list(s)"
|
2606 |
msgstr ""
|
2607 |
|
2608 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:415
|
2609 |
msgid "Allow contact to choose list(s)"
|
2610 |
msgstr ""
|
2611 |
|
2612 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:416
|
2613 |
msgid "Allow contacts to choose list(s) in which they want to subscribe."
|
2614 |
msgstr ""
|
2615 |
|
2616 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:447
|
2617 |
msgid "Show GDPR consent checkbox"
|
2618 |
msgstr ""
|
2619 |
|
2620 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:448
|
2621 |
msgid ""
|
2622 |
"Show consent checkbox to get the consent of a contact before adding them to "
|
2623 |
"list(s)"
|
2624 |
msgstr ""
|
2625 |
|
2626 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:472
|
2627 |
msgid ""
|
2628 |
"Consent text will show up at subscription form next to consent checkbox."
|
2629 |
msgstr ""
|
2630 |
|
2631 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:483
|
2632 |
+
msgid "Save Form"
|
|
|
|
|
|
|
|
|
2633 |
msgstr ""
|
2634 |
|
2635 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:802
|
2636 |
#, php-format
|
2637 |
msgid ""
|
2638 |
"<a href=\"?page=%s&action=%s&form=%s&_wpnonce=%s\" class=\"text-indigo-600\">"
|
2639 |
"Edit</a>"
|
2640 |
msgstr ""
|
2641 |
|
2642 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:803
|
2643 |
#, php-format
|
2644 |
msgid ""
|
2645 |
"<a href=\"?page=%s&action=%s&form=%s&_wpnonce=%s\" onclick=\"return "
|
2646 |
"checkDelete()\">Delete</a>"
|
2647 |
msgstr ""
|
2648 |
|
2649 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:819
|
2650 |
msgid "Shortcode"
|
2651 |
msgstr ""
|
2652 |
|
2653 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:865
|
2654 |
msgid "Search Forms"
|
2655 |
msgstr ""
|
2656 |
|
2657 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:902
|
2658 |
msgid "You do not have permission to delete this form."
|
2659 |
msgstr ""
|
2660 |
|
2661 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:909
|
2662 |
msgid "Form has been deleted successfully!"
|
2663 |
msgstr ""
|
2664 |
|
2665 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:924
|
2666 |
msgid "Form(s) have been deleted successfully!"
|
2667 |
msgstr ""
|
2668 |
|
2669 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:927
|
2670 |
msgid "Please select form(s) to delete."
|
2671 |
msgstr ""
|
2672 |
|
2673 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:938
|
2674 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:676
|
2675 |
msgid "Enable"
|
2676 |
msgstr ""
|
2677 |
|
2678 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:939
|
2679 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:677
|
2680 |
msgid "Disable"
|
2681 |
msgstr ""
|
2682 |
|
2683 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:951
|
2684 |
msgid "No Forms avaliable."
|
2685 |
msgstr ""
|
2686 |
|
2732 |
"class=\"text-indigo-400\">Create new workflows</a>"
|
2733 |
msgstr ""
|
2734 |
|
2735 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-ig-redirect.php:29
|
2736 |
+
msgid ""
|
2737 |
+
"Create Onsite Campaigns Using <a href=\"https://wordpress."
|
2738 |
+
"org/plugins/icegram\">Icegram</a>"
|
2739 |
+
msgstr ""
|
2740 |
+
|
2741 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-ig-redirect.php:32
|
2742 |
+
msgid ""
|
2743 |
+
"Create Popups using <a href=\"https://wordpress.org/plugins/icegram\">"
|
2744 |
+
"Icegram</a>"
|
2745 |
+
msgstr ""
|
2746 |
+
|
2747 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-ig-redirect.php:73
|
2748 |
+
msgid "Activate Icegram"
|
2749 |
+
msgstr ""
|
2750 |
+
|
2751 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-ig-redirect.php:75
|
2752 |
+
msgid "Install Icegram"
|
2753 |
+
msgstr ""
|
2754 |
+
|
2755 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:34
|
2756 |
msgid "Sorry, you do not have permission to import contacts."
|
2757 |
msgstr ""
|
2758 |
|
2759 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:173
|
|
|
2760 |
#, php-format
|
2761 |
msgid "Total %d contacts have been imported successfully!"
|
2762 |
msgstr ""
|
2763 |
|
2764 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:179
|
2765 |
#, php-format
|
2766 |
+
msgid "%d contact(s) are already exists."
|
2767 |
msgstr ""
|
2768 |
|
2769 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:184
|
2770 |
#, php-format
|
2771 |
+
msgid "%d contact(s) are invalid."
|
2772 |
msgstr ""
|
2773 |
|
2774 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:192
|
2775 |
msgid "Error: Please Select List"
|
2776 |
msgstr ""
|
2777 |
|
2778 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:196
|
2779 |
msgid "Error: Please select status"
|
2780 |
msgstr ""
|
2781 |
|
2782 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:200
|
2783 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:211
|
2784 |
+
#, php-format
|
2785 |
+
msgid ""
|
2786 |
+
"The file you are trying to upload is larger than %s. Please upload a smaller "
|
2787 |
+
"file."
|
2788 |
+
msgstr ""
|
2789 |
+
|
2790 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:204
|
2791 |
msgid "Error: Please Upload only CSV File"
|
2792 |
msgstr ""
|
2793 |
|
2794 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:214
|
2795 |
+
msgid "There was a problem with your upload."
|
2796 |
+
msgstr ""
|
2797 |
+
|
2798 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:218
|
2799 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:224
|
2800 |
msgid "Error: Please Upload File"
|
2801 |
msgstr ""
|
2802 |
|
2803 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:246
|
2804 |
msgid "Select CSV file"
|
2805 |
msgstr ""
|
2806 |
|
2807 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:248
|
2808 |
+
#, php-format
|
2809 |
+
msgid "File size should be less than %s"
|
2810 |
+
msgstr ""
|
2811 |
+
|
2812 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:250
|
2813 |
msgid "Check CSV structure"
|
2814 |
msgstr ""
|
2815 |
|
2816 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:251
|
2817 |
msgid "from here"
|
2818 |
msgstr ""
|
2819 |
|
2820 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:260
|
2821 |
msgid "Select status"
|
2822 |
msgstr ""
|
2823 |
|
2824 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:272
|
2825 |
msgid "Select list"
|
2826 |
msgstr ""
|
2827 |
|
2828 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:286
|
2829 |
msgid "Import"
|
2830 |
msgstr ""
|
2831 |
|
|
|
|
|
|
|
|
|
2832 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-info.php:20
|
2833 |
msgid "<span class=\"es-fire-sale\"> 🔥 </span> Go Pro"
|
2834 |
msgstr ""
|
2837 |
msgid "Number of lists per page"
|
2838 |
msgstr ""
|
2839 |
|
2840 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:113
|
2841 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:624
|
2842 |
msgid "You do not have permission to edit list"
|
2843 |
msgstr ""
|
2844 |
|
2845 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:115
|
2846 |
msgid "Please add list name"
|
2847 |
msgstr ""
|
2848 |
|
2849 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:117
|
2850 |
msgid "List already exists. Please choose different name"
|
2851 |
msgstr ""
|
2852 |
|
2853 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:162
|
2854 |
msgid "List has been added successfully!"
|
2855 |
msgstr ""
|
2856 |
|
2857 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:211
|
2858 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:628
|
2859 |
msgid "List has been updated successfully!"
|
2860 |
msgstr ""
|
2861 |
|
2862 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:255
|
2863 |
msgid " Lists "
|
2864 |
msgstr ""
|
2865 |
|
2866 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:261
|
2867 |
msgid "Edit List"
|
2868 |
msgstr ""
|
2869 |
|
2870 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:280
|
2871 |
msgid "List Name"
|
2872 |
msgstr ""
|
2873 |
|
2874 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:295
|
2875 |
+
msgid "Save List"
|
2876 |
+
msgstr ""
|
2877 |
+
|
2878 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:433
|
2879 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:444
|
2880 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:455
|
2881 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:466
|
2882 |
#, php-format
|
2883 |
msgid "<a href=\"%s\" target=\"_blank\">%d</a>"
|
2884 |
msgstr ""
|
2885 |
|
2886 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:588
|
2887 |
msgid "Search Lists"
|
2888 |
msgstr ""
|
2889 |
|
2890 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:640
|
2891 |
msgid "You do not have permission to delete list"
|
2892 |
msgstr ""
|
2893 |
|
2894 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:647
|
2895 |
msgid "List has been deleted successfully!"
|
2896 |
msgstr ""
|
2897 |
|
2898 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:662
|
2899 |
msgid "List(s) have been deleted successfully"
|
2900 |
msgstr ""
|
2901 |
|
2902 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:689
|
2903 |
msgid "No lists avaliable."
|
2904 |
msgstr ""
|
2905 |
|
2906 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-mailer.php:298
|
2907 |
msgid "Thanks!"
|
2908 |
msgstr ""
|
2909 |
|
2910 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-mailer.php:511
|
2911 |
#, php-format
|
2912 |
msgid "Test email to %s"
|
2913 |
msgstr ""
|
2914 |
|
2915 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:113
|
2916 |
+
msgid "Please add a broadcast subject."
|
2917 |
+
msgstr ""
|
2918 |
+
|
2919 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:120
|
2920 |
msgid "Please add message body or select template"
|
2921 |
msgstr ""
|
2922 |
|
2923 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:132
|
2924 |
msgid "Please add the subject"
|
2925 |
msgstr ""
|
2926 |
|
2927 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:201
|
2928 |
+
msgid "Scheduling is disabled for this broadcast since it is being sent."
|
2929 |
msgstr ""
|
2930 |
|
2931 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:203
|
2932 |
+
msgid ""
|
2933 |
+
"Scheduling is disabled for this broadcast since it has been sent already."
|
2934 |
msgstr ""
|
2935 |
|
2936 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:251
|
2937 |
+
msgid "Summary"
|
2938 |
msgstr ""
|
2939 |
|
2940 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:260
|
2941 |
+
msgid "Next"
|
2942 |
msgstr ""
|
2943 |
|
2944 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:274
|
2945 |
+
msgid "Previous"
|
2946 |
msgstr ""
|
2947 |
|
2948 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:283
|
2949 |
+
msgid "Save Draft"
|
2950 |
msgstr ""
|
2951 |
|
2952 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:297
|
2953 |
+
msgid "Schedule"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:325
|
2957 |
+
msgid "From Name"
|
2958 |
+
msgstr ""
|
2959 |
+
|
2960 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:329
|
2961 |
+
msgid "From Email"
|
2962 |
+
msgstr ""
|
2963 |
+
|
2964 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:334
|
2965 |
+
msgid "Message"
|
2966 |
+
msgstr ""
|
2967 |
+
|
2968 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:352
|
2969 |
+
msgid "Design Template"
|
2970 |
+
msgstr ""
|
2971 |
+
|
2972 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:358
|
2973 |
msgid "Recipients"
|
2974 |
msgstr ""
|
2975 |
|
2976 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:369
|
2977 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:378
|
2978 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:404
|
2979 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:256
|
2980 |
+
msgid "Preview"
|
2981 |
+
msgstr ""
|
2982 |
+
|
2983 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:372
|
2984 |
+
msgid "Browser"
|
2985 |
+
msgstr ""
|
2986 |
+
|
2987 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:381
|
2988 |
+
msgid "In Browser"
|
2989 |
+
msgstr ""
|
2990 |
+
|
2991 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:390
|
2992 |
+
msgid ""
|
2993 |
+
"There could be a slight variation on how your customer will view the email "
|
2994 |
+
"content."
|
2995 |
+
msgstr ""
|
2996 |
+
|
2997 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:407
|
2998 |
+
msgid "Email Sent Successfully "
|
2999 |
+
msgstr ""
|
3000 |
+
|
3001 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:408
|
3002 |
+
msgid "Something went wrong. Please try again later"
|
3003 |
+
msgstr ""
|
3004 |
+
|
3005 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:425
|
3006 |
+
msgid "Email Content Preview"
|
3007 |
+
msgstr ""
|
3008 |
+
|
3009 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:465
|
3010 |
+
msgid "Open Tracking"
|
3011 |
msgstr ""
|
3012 |
|
3013 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:72
|
3055 |
msgid " Edit Post Notification"
|
3056 |
msgstr ""
|
3057 |
|
3058 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:261
|
3059 |
msgid "Campaigns "
|
3060 |
msgstr ""
|
3061 |
|
3062 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:292
|
3063 |
msgid ""
|
3064 |
"Contacts from the selected list will be notified about new post notification."
|
3065 |
msgstr ""
|
3066 |
|
3067 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:334
|
3068 |
msgid "Select Post Category"
|
3069 |
msgstr ""
|
3070 |
|
3071 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:335
|
3072 |
msgid ""
|
3073 |
"Notification will be sent out when any post from selected categories will be "
|
3074 |
"published."
|
3075 |
msgstr ""
|
3076 |
|
3077 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:348
|
3078 |
msgid "Select custom post type(s)"
|
3079 |
msgstr ""
|
3080 |
|
3081 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:349
|
3082 |
msgid ""
|
3083 |
"(Optional) Select custom post type for which you want to send notification."
|
3084 |
msgstr ""
|
3085 |
|
3086 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:369
|
3087 |
+
msgid "Save Campaign"
|
3088 |
+
msgstr ""
|
3089 |
+
|
3090 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:19
|
3091 |
msgid "Report"
|
3092 |
msgstr ""
|
3093 |
|
3094 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:42
|
3095 |
#, php-format
|
3096 |
msgid ""
|
3097 |
+
"<a href='%s' class='px-4 py-2 ig-es-imp-button'>Send Queued Emails Now</a>"
|
|
|
3098 |
msgstr ""
|
3099 |
|
3100 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:44
|
3101 |
msgid ""
|
3102 |
"<span class='ig-es-send-queue-emails button-disabled'>Send Queued Emails "
|
3103 |
"Now</span>"
|
3104 |
msgstr ""
|
3105 |
|
3106 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:45
|
3107 |
msgid "<br /><span class='es-helper'>No emails found in queue</span>"
|
3108 |
msgstr ""
|
3109 |
|
3110 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:90
|
3111 |
msgid "Sr No"
|
3112 |
msgstr ""
|
3113 |
|
3114 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:93
|
3115 |
msgid "Sent Date"
|
3116 |
msgstr ""
|
3117 |
|
3118 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:94
|
3119 |
msgid "Viewed Status"
|
3120 |
msgstr ""
|
3121 |
|
3122 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:95
|
3123 |
msgid "Viewed Date"
|
3124 |
msgstr ""
|
3125 |
|
3126 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:159
|
3127 |
msgid "Viewed"
|
3128 |
msgstr ""
|
3129 |
|
3130 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:159
|
3131 |
msgid "Not yet viewed"
|
3132 |
msgstr ""
|
3133 |
|
3134 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:172
|
3135 |
msgid "No Reports avaliable."
|
3136 |
msgstr ""
|
3137 |
|
3138 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:214
|
3139 |
msgid "Completed"
|
3140 |
msgstr ""
|
3141 |
|
3142 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:254
|
3143 |
msgid "View"
|
3144 |
msgstr ""
|
3145 |
|
3146 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:275
|
|
|
|
|
|
|
|
|
3147 |
msgid "Start Date"
|
3148 |
msgstr ""
|
3149 |
|
3150 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:276
|
3151 |
msgid "End Date"
|
3152 |
msgstr ""
|
3153 |
|
3154 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:424
|
3155 |
msgid "You do not have permission to view notification"
|
3156 |
msgstr ""
|
3157 |
|
3158 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:436
|
3159 |
msgid "You do not have permission to delete notification"
|
3160 |
msgstr ""
|
3161 |
|
3162 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:442
|
3163 |
msgid "Report has been deleted successfully!"
|
3164 |
msgstr ""
|
3165 |
|
3166 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:451
|
3167 |
msgid "You do not have permission to preview notification"
|
3168 |
msgstr ""
|
3169 |
|
3170 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:469
|
3171 |
msgid "Reports have been deleted successfully!"
|
3172 |
msgstr ""
|
3173 |
|
3174 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:481
|
3175 |
msgid "Preview Email"
|
3176 |
msgstr ""
|
3177 |
|
3178 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:484
|
3179 |
msgid ""
|
3180 |
"This is how the email you sent may look. <br>Note: Different email services "
|
3181 |
"(like gmail, yahoo etc) display email content differently. So there could be "
|
3204 |
msgid "Preview Template"
|
3205 |
msgstr ""
|
3206 |
|
3207 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:243
|
3208 |
msgid "Template Type"
|
3209 |
msgstr ""
|
3210 |
|
3211 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:280
|
3212 |
msgid "Duplicate"
|
3213 |
msgstr ""
|
3214 |
|
3215 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:304
|
3216 |
+
msgid "Copy"
|
3217 |
+
msgstr ""
|
3218 |
+
|
3219 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-tools.php:54
|
3220 |
msgid "Email has been sent. Please check your inbox"
|
3221 |
msgstr ""
|
3245 |
msgid "%s ago"
|
3246 |
msgstr ""
|
3247 |
|
3248 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflow.php:888
|
3249 |
msgid "Missing action_name key in array."
|
3250 |
msgstr ""
|
3251 |
|
3252 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflow.php:894
|
3253 |
msgid "Could not retrieve the action."
|
3254 |
msgstr ""
|
3255 |
|
3287 |
msgid "An error has occured. Please try again later"
|
3288 |
msgstr ""
|
3289 |
|
3290 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:209
|
3291 |
msgid "No Workflows Found."
|
3292 |
msgstr ""
|
3293 |
|
3294 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:262
|
3295 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/action.php:29
|
3296 |
msgid "Edit"
|
3297 |
msgstr ""
|
3298 |
|
3299 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:281
|
3300 |
msgid "Toggle Status"
|
3301 |
msgstr ""
|
3302 |
|
3303 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:292
|
3304 |
msgid "Title"
|
3305 |
msgstr ""
|
3306 |
|
3307 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:323
|
|
|
|
|
|
|
|
|
3308 |
msgid "Deactivate"
|
3309 |
msgstr ""
|
3310 |
|
3311 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:344
|
3312 |
msgid "Search Workflows"
|
3313 |
msgstr ""
|
3314 |
|
3315 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:389
|
3316 |
msgid "You are not allowed to delete workflow."
|
3317 |
msgstr ""
|
3318 |
|
3319 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:395
|
3320 |
msgid "Workflow has been deleted successfully!"
|
3321 |
msgstr ""
|
3322 |
|
3323 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:412
|
3324 |
msgid "Workflow(s) have been deleted successfully!"
|
3325 |
msgstr ""
|
3326 |
|
3327 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:416
|
3328 |
msgid "Please check workflow(s) to delete."
|
3329 |
msgstr ""
|
3330 |
|
3331 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:430
|
3332 |
msgid "activated"
|
3333 |
msgstr ""
|
3334 |
|
3335 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:430
|
3336 |
msgid "deactivated"
|
3337 |
msgstr ""
|
3338 |
|
3339 |
#. %s: Workflow action
|
3340 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:433
|
3341 |
#, php-format
|
3342 |
msgid "Workflow(s) have been %s successfully!"
|
3343 |
msgstr ""
|
3344 |
|
3345 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:438
|
3346 |
msgid "activate"
|
3347 |
msgstr ""
|
3348 |
|
3349 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:438
|
3350 |
msgid "deactivate"
|
3351 |
msgstr ""
|
3352 |
|
3353 |
#. %s: Workflow action
|
3354 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:441
|
3355 |
#, php-format
|
3356 |
msgid "Please check workflow(s) to %s."
|
3357 |
msgstr ""
|
3358 |
|
3359 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/partials/class-es-shortcode.php:252
|
3360 |
msgid "Select List(s)"
|
3361 |
msgstr ""
|
3362 |
|
3377 |
msgstr ""
|
3378 |
|
3379 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-cf7-submitted.php:23
|
3380 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:381
|
3381 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:26
|
3382 |
msgid "Contact Form 7 Submitted"
|
3383 |
msgstr ""
|
3384 |
|
3387 |
msgstr ""
|
3388 |
|
3389 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-cf7-submitted.php:25
|
3390 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-forminator-forms-submitted.php:33
|
3391 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-gravity-forms-submitted.php:25
|
3392 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-ninja-forms-submitted.php:25
|
3393 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-wpforms-submitted.php:25
|
3395 |
msgstr ""
|
3396 |
|
3397 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-comment-added.php:23
|
|
|
|
|
3398 |
msgid "Comment added"
|
3399 |
msgstr ""
|
3400 |
|
3411 |
msgstr ""
|
3412 |
|
3413 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-edd-purchase-completed.php:23
|
|
|
|
|
3414 |
msgid "EDD purchase completed"
|
3415 |
msgstr ""
|
3416 |
|
3424 |
msgid "Order"
|
3425 |
msgstr ""
|
3426 |
|
3427 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-forminator-forms-submitted.php:31
|
3428 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:30
|
3429 |
+
msgid "Forminator Form Submitted"
|
3430 |
+
msgstr ""
|
3431 |
+
|
3432 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-forminator-forms-submitted.php:32
|
3433 |
+
msgid "Fires whenever someone fill Forminator Plugin's form."
|
3434 |
+
msgstr ""
|
3435 |
+
|
3436 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-forminator-forms-submitted.php:44
|
3437 |
+
msgid "Any Form"
|
3438 |
+
msgstr ""
|
3439 |
+
|
3440 |
+
#. %s: Forminator form ID.
|
3441 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-forminator-forms-submitted.php:63
|
3442 |
+
#, php-format
|
3443 |
+
msgid "(ID: %s)"
|
3444 |
+
msgstr ""
|
3445 |
+
|
3446 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-forminator-forms-submitted.php:74
|
3447 |
+
msgid "Select Form"
|
3448 |
+
msgstr ""
|
3449 |
+
|
3450 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-forminator-forms-submitted.php:76
|
3451 |
+
msgid ""
|
3452 |
+
"Supported Form Types: Custom, Contact, Quote Request, Newsletter, "
|
3453 |
+
"Registration Forms"
|
3454 |
+
msgstr ""
|
3455 |
+
|
3456 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-give-donation-made.php:23
|
|
|
3457 |
msgid "Give donation"
|
3458 |
msgstr ""
|
3459 |
|
3462 |
msgstr ""
|
3463 |
|
3464 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-gravity-forms-submitted.php:23
|
3465 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:397
|
3466 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:29
|
3467 |
msgid "Gravity Form Submitted"
|
3468 |
msgstr ""
|
3469 |
|
3472 |
msgstr ""
|
3473 |
|
3474 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-ninja-forms-submitted.php:23
|
3475 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:385
|
3476 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:28
|
3477 |
msgid "Ninja Form Submitted"
|
3478 |
msgstr ""
|
3479 |
|
3482 |
msgstr ""
|
3483 |
|
3484 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-wc-order-completed.php:23
|
|
|
|
|
3485 |
msgid "WooCommerce order completed"
|
3486 |
msgstr ""
|
3487 |
|
3490 |
msgstr ""
|
3491 |
|
3492 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/workflows/triggers/class-es-trigger-wpforms-submitted.php:23
|
3493 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:389
|
3494 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:27
|
3495 |
msgid "WP Form Submitted"
|
3496 |
msgstr ""
|
3497 |
|
3532 |
|
3533 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/abstracts/class-es-workflow-action.php:168
|
3534 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/abstracts/class-es-workflow-action.php:183
|
3535 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/abstracts/class-es-workflow-trigger.php:353
|
3536 |
msgid "Other"
|
3537 |
msgstr ""
|
3538 |
|
3557 |
msgstr ""
|
3558 |
|
3559 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/class-es-workflow-admin-edit.php:232
|
3560 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:46
|
3561 |
msgid "Trigger"
|
3562 |
msgstr ""
|
3563 |
|
3574 |
msgid "Options"
|
3575 |
msgstr ""
|
3576 |
|
3577 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:365
|
3578 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/triggers/class-es-trigger-user-registered.php:31
|
3579 |
+
msgid "User Registered"
|
|
|
|
|
|
|
|
|
3580 |
msgstr ""
|
3581 |
|
3582 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:369
|
3583 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:23
|
3584 |
+
msgid "Comment Added"
|
3585 |
msgstr ""
|
3586 |
|
3587 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:373
|
3588 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:33
|
3589 |
+
msgid "WooCommerce Order Completed"
|
3590 |
msgstr ""
|
3591 |
|
3592 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:377
|
3593 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:34
|
3594 |
+
msgid "EDD Purchase Completed"
|
3595 |
msgstr ""
|
3596 |
|
3597 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:393
|
3598 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:35
|
3599 |
+
msgid "Give Donation Added"
|
3600 |
msgstr ""
|
3601 |
|
3602 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:417
|
|
|
3603 |
msgid "User deleted"
|
3604 |
msgstr ""
|
3605 |
|
3606 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/db/class-es-db-workflows.php:425
|
|
|
3607 |
msgid "User updated"
|
3608 |
msgstr ""
|
3609 |
|
3620 |
msgstr ""
|
3621 |
|
3622 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/fields/class-es-select.php:80
|
3623 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-trigger.php:50
|
3624 |
msgid "[Select]"
|
3625 |
msgstr ""
|
3626 |
|
3650 |
"database."
|
3651 |
msgstr ""
|
3652 |
|
3653 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/triggers/class-es-trigger-user-deleted.php:31
|
3654 |
+
msgid "User Deleted"
|
3655 |
+
msgstr ""
|
3656 |
+
|
3657 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/triggers/class-es-trigger-user-deleted.php:32
|
3658 |
msgid "Fires when user deleted from WordPress ."
|
3659 |
msgstr ""
|
3668 |
msgid "Fires when someone signup."
|
3669 |
msgstr ""
|
3670 |
|
3671 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/triggers/class-es-trigger-user-updated.php:31
|
3672 |
+
msgid "User Updated"
|
3673 |
+
msgstr ""
|
3674 |
+
|
3675 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/triggers/class-es-trigger-user-updated.php:32
|
3676 |
msgid "Fires when a user is updated."
|
3677 |
msgstr ""
|
lite/public/partials/class-es-shortcode.php
CHANGED
@@ -61,9 +61,7 @@ class ES_Shortcode {
|
|
61 |
public static function render_es_form( $atts ) {
|
62 |
ob_start();
|
63 |
|
64 |
-
$atts = shortcode_atts( array(
|
65 |
-
'id' => ''
|
66 |
-
), $atts, 'email-subscribers-form' );
|
67 |
|
68 |
$id = $atts['id'];
|
69 |
|
@@ -165,7 +163,6 @@ class ES_Shortcode {
|
|
165 |
$hp_style = "position:absolute;top:-99999px;" . ( is_rtl() ? 'right' : 'left' ) . ":-99999px;z-index:-99;";
|
166 |
$nonce = wp_create_nonce( 'es-subscribe' );
|
167 |
|
168 |
-
|
169 |
// Name
|
170 |
$name_html = $required = '';
|
171 |
if ( ! empty( $show_name ) && 'no' !== $show_name ) {
|
@@ -226,17 +223,17 @@ class ES_Shortcode {
|
|
226 |
<input type="hidden" name="status" value="Unconfirmed"/>
|
227 |
<input type="hidden" name="es-subscribe" id="es-subscribe" value="<?php echo $nonce; ?>"/>
|
228 |
<label style="<?php echo $hp_style; ?>"><input type="email" name="es_hp_email" class="es_required_field" tabindex="-1" autocomplete="-1" value=""/></label>
|
229 |
-
<?php do_action( 'ig_es_after_form_fields' ) ?>
|
230 |
<?php
|
231 |
|
|
|
232 |
|
233 |
-
|
234 |
-
<p><input type="checkbox" name="es_gdpr_consent" value="true" required
|
235 |
-
|
236 |
echo GDPR::consent_checkboxes();
|
237 |
}
|
238 |
|
239 |
-
|
240 |
<input type="submit" name="submit" class="es_subscription_form_submit es_submit_button es_textbox_button" id="es_subscription_form_submit_<?php echo $unique_id; ?>" value="<?php echo $button_label; ?>"/>
|
241 |
|
242 |
<?php $spinner_image_path = ES_PLUGIN_URL . 'lite/public/images/spinner.gif'; ?>
|
61 |
public static function render_es_form( $atts ) {
|
62 |
ob_start();
|
63 |
|
64 |
+
$atts = shortcode_atts( array( 'id' => '' ), $atts, 'email-subscribers-form' );
|
|
|
|
|
65 |
|
66 |
$id = $atts['id'];
|
67 |
|
163 |
$hp_style = "position:absolute;top:-99999px;" . ( is_rtl() ? 'right' : 'left' ) . ":-99999px;z-index:-99;";
|
164 |
$nonce = wp_create_nonce( 'es-subscribe' );
|
165 |
|
|
|
166 |
// Name
|
167 |
$name_html = $required = '';
|
168 |
if ( ! empty( $show_name ) && 'no' !== $show_name ) {
|
223 |
<input type="hidden" name="status" value="Unconfirmed"/>
|
224 |
<input type="hidden" name="es-subscribe" id="es-subscribe" value="<?php echo $nonce; ?>"/>
|
225 |
<label style="<?php echo $hp_style; ?>"><input type="email" name="es_hp_email" class="es_required_field" tabindex="-1" autocomplete="-1" value=""/></label>
|
|
|
226 |
<?php
|
227 |
|
228 |
+
do_action( 'ig_es_after_form_fields', $data );
|
229 |
|
230 |
+
if ( $gdpr_consent === 'yes' ) { ?>
|
231 |
+
<p><input type="checkbox" name="es_gdpr_consent" value="true" required/> <label style="display: inline"><?php echo $gdpr_consent_text; ?></label></p>
|
232 |
+
<?php } elseif ( ( in_array( 'gdpr/gdpr.php', $active_plugins ) || array_key_exists( 'gdpr/gdpr.php', $active_plugins ) ) ) {
|
233 |
echo GDPR::consent_checkboxes();
|
234 |
}
|
235 |
|
236 |
+
?>
|
237 |
<input type="submit" name="submit" class="es_subscription_form_submit es_submit_button es_textbox_button" id="es_subscription_form_submit_<?php echo $unique_id; ?>" value="<?php echo $button_label; ?>"/>
|
238 |
|
239 |
<?php $spinner_image_path = ES_PLUGIN_URL . 'lite/public/images/spinner.gif'; ?>
|
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: subscription, newsletter, email marketing, post notification, email newsletter form, email signup, email widget, newsletter signup, subscribe, subscription form, bulk emails, signup form, list builder, lead generation, welcome email, contacts
|
6 |
Requires at least: 3.9
|
7 |
-
Tested up to: 5.4
|
8 |
Requires PHP: 5.6
|
9 |
-
Stable tag: 4.4.
|
10 |
License: GPLv3
|
11 |
License URI: http://www.gnu.org/licenses
|
12 |
|
@@ -246,7 +246,9 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
|
|
246 |
|
247 |
4. Campaigns
|
248 |
|
249 |
-
5.
|
|
|
|
|
250 |
|
251 |
6. New Post Notification
|
252 |
|
@@ -279,9 +281,21 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
|
|
279 |
|
280 |
== Changelog ==
|
281 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
282 |
**4.4.6 (23.04.2020)**
|
283 |
|
284 |
-
* New: Integrate [Forminator](https://wordpress.org/plugins/forminator/) form plugin (**
|
285 |
* Update: Improved Import/ Export feature
|
286 |
* Update: Improved manage lists UI
|
287 |
* Update: Improved Export contacts UI
|
4 |
Author URI: https://www.icegram.com/
|
5 |
Tags: subscription, newsletter, email marketing, post notification, email newsletter form, email signup, email widget, newsletter signup, subscribe, subscription form, bulk emails, signup form, list builder, lead generation, welcome email, contacts
|
6 |
Requires at least: 3.9
|
7 |
+
Tested up to: 5.4.1
|
8 |
Requires PHP: 5.6
|
9 |
+
Stable tag: 4.4.7
|
10 |
License: GPLv3
|
11 |
License URI: http://www.gnu.org/licenses
|
12 |
|
246 |
|
247 |
4. Campaigns
|
248 |
|
249 |
+
5. Broadcasts Content
|
250 |
+
|
251 |
+
5_1. Broadcast Summary
|
252 |
|
253 |
6. New Post Notification
|
254 |
|
281 |
|
282 |
== Changelog ==
|
283 |
|
284 |
+
**4.4.7 (14.05.2020)**
|
285 |
+
|
286 |
+
* New: Improved Broadcast UI
|
287 |
+
* New: Now, able to draft broadcast and send later
|
288 |
+
* New: Added campaign level open/ view tracking
|
289 |
+
* New: Form level captcha is available (**PRO**)
|
290 |
+
* New: Added campaign level Link tracking (**PRO**)
|
291 |
+
* New: Added campaign level UTM tracking (**PRO**)
|
292 |
+
* Update: Use date formate which set in WordPress
|
293 |
+
* Update: UI improvements
|
294 |
+
* Fix: Import/ Export issues
|
295 |
+
|
296 |
**4.4.6 (23.04.2020)**
|
297 |
|
298 |
+
* New: Integrate [Forminator](https://wordpress.org/plugins/forminator/) form plugin (**PRO**)
|
299 |
* Update: Improved Import/ Export feature
|
300 |
* Update: Improved manage lists UI
|
301 |
* Update: Improved Export contacts UI
|
uninstall.php
CHANGED
@@ -17,7 +17,7 @@
|
|
17 |
* general skeleton and outline for how the file should work.
|
18 |
*
|
19 |
* For more information, see the following discussion:
|
20 |
-
*
|
21 |
*
|
22 |
* @link http://example.com
|
23 |
* @since 4.0
|
17 |
* general skeleton and outline for how the file should work.
|
18 |
*
|
19 |
* For more information, see the following discussion:
|
20 |
+
*
|
21 |
*
|
22 |
* @link http://example.com
|
23 |
* @since 4.0
|