Version Description
Download this release
Release Info
Developer | Icegram |
Plugin | Email Subscribers & Newsletters |
Version | 4.5.0 |
Comparing to | |
See all releases |
Code changes from version 4.4.10.1 to 4.5.0
- email-subscribers.php +2 -2
- lite/admin/class-email-subscribers-admin.php +1 -1
- lite/admin/css/email-subscribers-admin.css +16 -5
- lite/admin/dist/main.css +1 -1
- lite/admin/images/graph.png +0 -0
- lite/admin/partials/dashboard.php +1 -1
- lite/includes/class-email-subscribers.php +3 -1
- lite/includes/class-es-install.php +11 -0
- lite/includes/classes/class-es-actions.php +59 -7
- lite/includes/classes/class-es-browser.php +1904 -0
- lite/includes/classes/class-es-geolocation.php +391 -0
- lite/includes/classes/class-es-mailer.php +3 -1
- lite/includes/classes/class-es-reports-table.php +113 -96
- lite/includes/db/class-es-db-actions.php +54 -19
- lite/includes/db/class-es-db-campaigns.php +6 -2
- lite/includes/db/class-es-db-contacts.php +0 -1
- lite/includes/db/class-es-db-links.php +17 -0
- lite/includes/pro-features.php +662 -0
- lite/includes/upgrade/es-update-functions.php +31 -1
- lite/languages/email-subscribers.pot +518 -173
- readme.txt +7 -2
email-subscribers.php
CHANGED
@@ -3,7 +3,7 @@
|
|
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.
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
@@ -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.
|
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.5.0
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
156 |
/* ***************************** Initial Compatibility Work (End) ******************* */
|
157 |
|
158 |
if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
|
159 |
+
define( 'ES_PLUGIN_VERSION', '4.5.0' );
|
160 |
}
|
161 |
|
162 |
// Plugin Folder Path.
|
lite/admin/class-email-subscribers-admin.php
CHANGED
@@ -156,7 +156,7 @@ class Email_Subscribers_Admin {
|
|
156 |
wp_enqueue_script( $this->email_subscribers . '-timepicker' );
|
157 |
|
158 |
$get_page = ig_es_get_request_data( 'page' );
|
159 |
-
if ( ! empty( $get_page ) && 'es_dashboard' === $get_page ) {
|
160 |
wp_enqueue_script( 'frappe-js', plugin_dir_url( __FILE__ ) . 'js/frappe-charts.min.life.js', array( 'jquery' ), $this->version, false );
|
161 |
}
|
162 |
|
156 |
wp_enqueue_script( $this->email_subscribers . '-timepicker' );
|
157 |
|
158 |
$get_page = ig_es_get_request_data( 'page' );
|
159 |
+
if ( ! empty( $get_page ) && 'es_dashboard' === $get_page || 'es_reports' === $get_page ) {
|
160 |
wp_enqueue_script( 'frappe-js', plugin_dir_url( __FILE__ ) . 'js/frappe-charts.min.life.js', array( 'jquery' ), $this->version, false );
|
161 |
}
|
162 |
|
lite/admin/css/email-subscribers-admin.css
CHANGED
@@ -1,3 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
#menu-content-change:focus {
|
2 |
box-shadow: none;
|
3 |
color: #FFFFFF;
|
@@ -1508,11 +1524,6 @@ table.ig_es_form_table td {
|
|
1508 |
cursor: default;
|
1509 |
}
|
1510 |
|
1511 |
-
#post-body .postbox .inside {
|
1512 |
-
padding: 0;
|
1513 |
-
margin: 0;
|
1514 |
-
}
|
1515 |
-
|
1516 |
.postbox .ig-es-metabox-footer {
|
1517 |
padding: 9px 15px;
|
1518 |
background: #f5f5f5;
|
1 |
+
.locker-content-middle {
|
2 |
+
transition: .5s ease;
|
3 |
+
opacity: 0;
|
4 |
+
position: absolute;
|
5 |
+
top:10%;
|
6 |
+
left: 50%;
|
7 |
+
transform: translate(-50%, -50%);
|
8 |
+
-ms-transform: translate(-50%, -50%);
|
9 |
+
}
|
10 |
+
.locker-content:hover .locker-content-middle {
|
11 |
+
opacity: 1;
|
12 |
+
}
|
13 |
+
.locker-content:hover {
|
14 |
+
opacity: 0.3;
|
15 |
+
}
|
16 |
+
|
17 |
#menu-content-change:focus {
|
18 |
box-shadow: none;
|
19 |
color: #FFFFFF;
|
1524 |
cursor: default;
|
1525 |
}
|
1526 |
|
|
|
|
|
|
|
|
|
|
|
1527 |
.postbox .ig-es-metabox-footer {
|
1528 |
padding: 9px 15px;
|
1529 |
background: #f5f5f5;
|
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{--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{--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-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}.wp-core-ui .button,.wp-core-ui .button-secondary{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{font-size:.875rem;border-radius:.375rem;border-width:1px;line-height:1.25rem;font-weight:500;--text-opacity:1}.wp-core-ui .button-primary{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.wp-core-ui .button-primary:hover,.wp-core-ui .button:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.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-blue-50{--bg-opacity:1;background-color:#ebf5ff;background-color:rgba(235,245,255,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}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.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}.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\: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-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%}}
|
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{--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-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}.wp-core-ui .button,.wp-core-ui .button-secondary{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{font-size:.875rem;border-radius:.375rem;border-width:1px;line-height:1.25rem;font-weight:500;--text-opacity:1}.wp-core-ui .button-primary{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.wp-core-ui .button-primary:hover,.wp-core-ui .button:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,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-blue-50{--bg-opacity:1;background-color:#ebf5ff;background-color:rgba(235,245,255,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}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.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}.self-start{-ms-flex-item-align:start;align-self:flex-start}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-shrink-0{-ms-flex-negative:0;flex-shrink:0}.float-right{float:right}.float-left{float:left}.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}.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}.pr-2{padding-right:.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}.pt-5{padding-top:1.25rem}.pl-5{padding-left:1.25rem}.pt-6{padding-top:1.5rem}.pr-6{padding-right:1.5rem}.pb-6{padding-bottom:1.5rem}.pl-6{padding-left:1.5rem}.pt-7{padding-top:1.75rem}.pt-8{padding-top:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.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)}.table-fixed{table-layout:fixed}.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}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-0{width:0}.w-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\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-1\/12{width:8.333333%}.w-2\/12{width:16.666667%}.w-3\/12{width:25%}.w-4\/12{width:33.333333%}.w-5\/12{width:41.666667%}.w-8\/12{width:66.666667%}.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\: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-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/graph.png
ADDED
Binary file
|
lite/admin/partials/dashboard.php
CHANGED
@@ -246,7 +246,7 @@ $topics_indexes = array_rand( $topics, 3 );
|
|
246 |
if (labels != '' && values != '') {
|
247 |
const data = {
|
248 |
labels: labels,
|
249 |
-
datasets: [
|
250 |
{
|
251 |
values: values
|
252 |
},
|
246 |
if (labels != '' && values != '') {
|
247 |
const data = {
|
248 |
labels: labels,
|
249 |
+
datasets: [
|
250 |
{
|
251 |
values: values
|
252 |
},
|
lite/includes/class-email-subscribers.php
CHANGED
@@ -635,6 +635,8 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
|
|
635 |
'lite/includes/classes/class-es-tracking.php',
|
636 |
'lite/includes/classes/class-es-compatibility.php',
|
637 |
'lite/includes/classes/class-es-ig-redirect.php',
|
|
|
|
|
638 |
|
639 |
// Core Functions
|
640 |
'lite/includes/es-core-functions.php',
|
@@ -1093,7 +1095,7 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
|
|
1093 |
|
1094 |
self::$instance->logger = get_ig_logger();
|
1095 |
|
1096 |
-
self::$instance->mailer
|
1097 |
|
1098 |
add_action( 'widgets_init', array( self::$instance, 'register_es_widget' ) );
|
1099 |
|
635 |
'lite/includes/classes/class-es-tracking.php',
|
636 |
'lite/includes/classes/class-es-compatibility.php',
|
637 |
'lite/includes/classes/class-es-ig-redirect.php',
|
638 |
+
'lite/includes/classes/class-es-geolocation.php',
|
639 |
+
'lite/includes/classes/class-es-browser.php',
|
640 |
|
641 |
// Core Functions
|
642 |
'lite/includes/es-core-functions.php',
|
1095 |
|
1096 |
self::$instance->logger = get_ig_logger();
|
1097 |
|
1098 |
+
self::$instance->mailer = new ES_Mailer();
|
1099 |
|
1100 |
add_action( 'widgets_init', array( self::$instance, 'register_es_widget' ) );
|
1101 |
|
lite/includes/class-es-install.php
CHANGED
@@ -212,6 +212,11 @@ if ( ! class_exists( 'ES_Install' ) ) {
|
|
212 |
'4.4.10' => array(
|
213 |
'ig_es_update_4410_load_templates',
|
214 |
'ig_es_update_4410_db_version'
|
|
|
|
|
|
|
|
|
|
|
215 |
)
|
216 |
|
217 |
);
|
@@ -1055,6 +1060,12 @@ if ( ! class_exists( 'ES_Install' ) ) {
|
|
1055 |
`count` int(11) UNSIGNED NOT NULL DEFAULT 0,
|
1056 |
`link_id` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
|
1057 |
`list_id` int(11) UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
|
|
|
|
|
|
|
|
|
1058 |
`created_at` int(11) UNSIGNED NOT NULL DEFAULT 0,
|
1059 |
`updated_at` int(11) UNSIGNED NOT NULL DEFAULT 0,
|
1060 |
UNIQUE KEY `id` (`contact_id`,`message_id`, `campaign_id`,`type`,`link_id`, `list_id`),
|
212 |
'4.4.10' => array(
|
213 |
'ig_es_update_4410_load_templates',
|
214 |
'ig_es_update_4410_db_version'
|
215 |
+
),
|
216 |
+
|
217 |
+
'4.5.0' => array(
|
218 |
+
'ig_es_update_450_alter_actions_table',
|
219 |
+
'ig_es_update_450_db_version'
|
220 |
)
|
221 |
|
222 |
);
|
1060 |
`count` int(11) UNSIGNED NOT NULL DEFAULT 0,
|
1061 |
`link_id` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
|
1062 |
`list_id` int(11) UNSIGNED NOT NULL DEFAULT 0,
|
1063 |
+
`ip` varchar(50) DEFAULT NULL,
|
1064 |
+
`country` varchar(50) DEFAULT NULL,
|
1065 |
+
`device` varchar(50) DEFAULT NULL,
|
1066 |
+
`browser` varchar(50) DEFAULT NULL,
|
1067 |
+
`email_client` varchar(50) DEFAULT NULL,
|
1068 |
+
`os` varchar(50) DEFAULT NULL,
|
1069 |
`created_at` int(11) UNSIGNED NOT NULL DEFAULT 0,
|
1070 |
`updated_at` int(11) UNSIGNED NOT NULL DEFAULT 0,
|
1071 |
UNIQUE KEY `id` (`contact_id`,`message_id`, `campaign_id`,`type`,`link_id`, `list_id`),
|
lite/includes/classes/class-es-actions.php
CHANGED
@@ -95,9 +95,15 @@ if ( ! class_exists( 'ES_Actions' ) ) {
|
|
95 |
private function add( $args, $explicit = true ) {
|
96 |
|
97 |
$args = wp_parse_args( $args, array(
|
98 |
-
'created_at'
|
99 |
-
'updated_at'
|
100 |
-
'count'
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
) );
|
102 |
|
103 |
return $this->db->add( $args, $explicit );
|
@@ -189,12 +195,17 @@ if ( ! class_exists( 'ES_Actions' ) ) {
|
|
189 |
|
190 |
$this->update_viewed_status( $contact_id, $campaign_id, $message_id );
|
191 |
|
192 |
-
|
193 |
'contact_id' => $contact_id,
|
194 |
'message_id' => $message_id,
|
195 |
'campaign_id' => $campaign_id,
|
196 |
'type' => IG_MESSAGE_OPEN,
|
197 |
-
)
|
|
|
|
|
|
|
|
|
|
|
198 |
}
|
199 |
}
|
200 |
|
@@ -216,13 +227,18 @@ if ( ! class_exists( 'ES_Actions' ) ) {
|
|
216 |
// Track Email Open
|
217 |
$this->open( $contact_id, $message_id, $campaign_id, false );
|
218 |
|
219 |
-
|
220 |
'contact_id' => $contact_id,
|
221 |
'campaign_id' => $campaign_id,
|
222 |
'message_id' => $message_id,
|
223 |
'link_id' => $link_id,
|
224 |
'type' => IG_LINK_CLICK,
|
225 |
-
)
|
|
|
|
|
|
|
|
|
|
|
226 |
}
|
227 |
|
228 |
/**
|
@@ -313,6 +329,42 @@ if ( ! class_exists( 'ES_Actions' ) ) {
|
|
313 |
|
314 |
return $wpdb->query( $sql );
|
315 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
}
|
317 |
}
|
318 |
|
95 |
private function add( $args, $explicit = true ) {
|
96 |
|
97 |
$args = wp_parse_args( $args, array(
|
98 |
+
'created_at' => ig_es_get_current_gmt_timestamp(),
|
99 |
+
'updated_at' => ig_es_get_current_gmt_timestamp(),
|
100 |
+
'count' => 1,
|
101 |
+
'ip' => '',
|
102 |
+
'country' => '',
|
103 |
+
'browser' => '',
|
104 |
+
'device' => '',
|
105 |
+
'os' => '',
|
106 |
+
'email_client' => '',
|
107 |
) );
|
108 |
|
109 |
return $this->db->add( $args, $explicit );
|
195 |
|
196 |
$this->update_viewed_status( $contact_id, $campaign_id, $message_id );
|
197 |
|
198 |
+
$action_data = array(
|
199 |
'contact_id' => $contact_id,
|
200 |
'message_id' => $message_id,
|
201 |
'campaign_id' => $campaign_id,
|
202 |
'type' => IG_MESSAGE_OPEN,
|
203 |
+
);
|
204 |
+
|
205 |
+
$device_info = $this->get_user_device_info();
|
206 |
+
$action_data = array_merge( $action_data, $device_info);
|
207 |
+
|
208 |
+
return $this->add_action( $action_data, $explicit );
|
209 |
}
|
210 |
}
|
211 |
|
227 |
// Track Email Open
|
228 |
$this->open( $contact_id, $message_id, $campaign_id, false );
|
229 |
|
230 |
+
$action_data = array(
|
231 |
'contact_id' => $contact_id,
|
232 |
'campaign_id' => $campaign_id,
|
233 |
'message_id' => $message_id,
|
234 |
'link_id' => $link_id,
|
235 |
'type' => IG_LINK_CLICK,
|
236 |
+
);
|
237 |
+
|
238 |
+
$device_info = $this->get_user_device_info();
|
239 |
+
$action_data = array_merge( $action_data, $device_info );
|
240 |
+
|
241 |
+
return $this->add_contact_action( $action_data, $explicit );
|
242 |
}
|
243 |
|
244 |
/**
|
329 |
|
330 |
return $wpdb->query( $sql );
|
331 |
}
|
332 |
+
|
333 |
+
/**
|
334 |
+
* Method to get current device information
|
335 |
+
*
|
336 |
+
* @since 4.5.0
|
337 |
+
*/
|
338 |
+
public function get_user_device_info() {
|
339 |
+
|
340 |
+
$browser = new ES_Browser();
|
341 |
+
$device_info = array();
|
342 |
+
|
343 |
+
if( $browser->isMobile() ) {
|
344 |
+
$device_info['device'] = 'mobile';
|
345 |
+
} else if( $browser->isTablet() ) {
|
346 |
+
$device_info['device'] = 'tablet';
|
347 |
+
} else {
|
348 |
+
$device_info['device'] = 'desktop';
|
349 |
+
}
|
350 |
+
|
351 |
+
$device_ip_address = ig_es_get_ip();
|
352 |
+
if( ! empty( $device_ip_address ) && 'UNKNOWN' !== $device_ip_address ) {
|
353 |
+
$device_location_data = ES_Geolocation::geolocate_ip( $device_ip_address );
|
354 |
+
$device_country_code = ! empty( $device_location_data['country_code'] ) ? $device_location_data['country_code'] : '';
|
355 |
+
$device_info['country'] = $device_country_code;
|
356 |
+
} else {
|
357 |
+
$device_ip_address = '';
|
358 |
+
$device_info['country'] = '';
|
359 |
+
}
|
360 |
+
|
361 |
+
$device_info['ip'] = $device_ip_address;
|
362 |
+
$device_info['browser'] = $browser->getBrowser();
|
363 |
+
$device_info['os'] = $browser->getPlatform();
|
364 |
+
$device_info['email_client'] = $browser->get_email_client();
|
365 |
+
|
366 |
+
return $device_info;
|
367 |
+
}
|
368 |
}
|
369 |
}
|
370 |
|
lite/includes/classes/class-es-browser.php
ADDED
@@ -0,0 +1,1904 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* File: Browser.php
|
4 |
+
* Author: Chris Schuld (http://chrisschuld.com/)
|
5 |
+
* Last Modified: April 14th, 2020
|
6 |
+
* @version 1.9.6
|
7 |
+
*
|
8 |
+
* Copyright 2019 Chris Schuld
|
9 |
+
*
|
10 |
+
* Permission is hereby granted, free of charge, to any person obtaining a
|
11 |
+
* copy of this software and associated documentation files (the "Software"),
|
12 |
+
* to deal in the Software without restriction, including without
|
13 |
+
* limitation the rights to use, copy, modify, merge, publish, distribute,
|
14 |
+
* sublicense, and/or sell copies of the Software, and to permit persons to
|
15 |
+
* whom the Software is furnished to do so, subject to the following
|
16 |
+
* conditions:
|
17 |
+
*
|
18 |
+
* The above copyright notice and this permission notice shall be included
|
19 |
+
* in all copies or substantial portions of the Software.
|
20 |
+
*
|
21 |
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
22 |
+
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
23 |
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
24 |
+
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
25 |
+
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
26 |
+
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
27 |
+
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
28 |
+
*
|
29 |
+
* Typical Usage:
|
30 |
+
*
|
31 |
+
* $browser = new Browser();
|
32 |
+
* if( $browser->getBrowser() == Browser::BROWSER_FIREFOX && $browser->getVersion() >= 2 ) {
|
33 |
+
* echo 'You have FireFox version 2 or greater';
|
34 |
+
* }
|
35 |
+
*
|
36 |
+
* User Agents Sampled from: http://www.useragentstring.com/
|
37 |
+
*
|
38 |
+
* This implementation is based on the original work from Gary White
|
39 |
+
* http://apptools.com/phptools/browser/
|
40 |
+
*
|
41 |
+
*/
|
42 |
+
class ES_Browser {
|
43 |
+
private $_agent = '';
|
44 |
+
private $_browser_name = '';
|
45 |
+
private $_version = '';
|
46 |
+
private $_platform = '';
|
47 |
+
private $_os = '';
|
48 |
+
private $_is_aol = false;
|
49 |
+
private $_is_mobile = false;
|
50 |
+
private $_is_tablet = false;
|
51 |
+
private $_is_robot = false;
|
52 |
+
private $_is_facebook = false;
|
53 |
+
private $_aol_version = '';
|
54 |
+
|
55 |
+
const BROWSER_UNKNOWN = 'unknown';
|
56 |
+
const VERSION_UNKNOWN = 'unknown';
|
57 |
+
|
58 |
+
const BROWSER_OPERA = 'Opera'; // http://www.opera.com/
|
59 |
+
const BROWSER_OPERA_MINI = 'Opera Mini'; // http://www.opera.com/mini/
|
60 |
+
const BROWSER_WEBTV = 'WebTV'; // http://www.webtv.net/pc/
|
61 |
+
const BROWSER_EDGE = 'Edge'; // https://www.microsoft.com/edge
|
62 |
+
const BROWSER_IE = 'Internet Explorer'; // http://www.microsoft.com/ie/
|
63 |
+
const BROWSER_POCKET_IE = 'Pocket Internet Explorer'; // http://en.wikipedia.org/wiki/Internet_Explorer_Mobile
|
64 |
+
const BROWSER_KONQUEROR = 'Konqueror'; // http://www.konqueror.org/
|
65 |
+
const BROWSER_ICAB = 'iCab'; // http://www.icab.de/
|
66 |
+
const BROWSER_OMNIWEB = 'OmniWeb'; // http://www.omnigroup.com/applications/omniweb/
|
67 |
+
const BROWSER_FIREBIRD = 'Firebird'; // http://www.ibphoenix.com/
|
68 |
+
const BROWSER_FIREFOX = 'Firefox'; // https://www.mozilla.org/en-US/firefox/
|
69 |
+
const BROWSER_BRAVE = 'Brave'; // https://brave.com/
|
70 |
+
const BROWSER_PALEMOON = 'Palemoon'; // https://www.palemoon.org/
|
71 |
+
const BROWSER_ICEWEASEL = 'Iceweasel'; // http://www.geticeweasel.org/
|
72 |
+
const BROWSER_SHIRETOKO = 'Shiretoko'; // http://wiki.mozilla.org/Projects/shiretoko
|
73 |
+
const BROWSER_MOZILLA = 'Mozilla'; // http://www.mozilla.com/en-US/
|
74 |
+
const BROWSER_AMAYA = 'Amaya'; // http://www.w3.org/Amaya/
|
75 |
+
const BROWSER_LYNX = 'Lynx'; // http://en.wikipedia.org/wiki/Lynx
|
76 |
+
const BROWSER_SAFARI = 'Safari'; // http://apple.com
|
77 |
+
const BROWSER_IPHONE = 'iPhone'; // http://apple.com
|
78 |
+
const BROWSER_IPOD = 'iPod'; // http://apple.com
|
79 |
+
const BROWSER_IPAD = 'iPad'; // http://apple.com
|
80 |
+
const BROWSER_CHROME = 'Chrome'; // http://www.google.com/chrome
|
81 |
+
const BROWSER_ANDROID = 'Android'; // http://www.android.com/
|
82 |
+
const BROWSER_GOOGLEBOT = 'GoogleBot'; // http://en.wikipedia.org/wiki/Googlebot
|
83 |
+
const BROWSER_CURL = 'cURL'; // https://en.wikipedia.org/wiki/CURL
|
84 |
+
const BROWSER_WGET = 'Wget'; // https://en.wikipedia.org/wiki/Wget
|
85 |
+
const BROWSER_UCBROWSER = 'UCBrowser'; // https://www.ucweb.com/
|
86 |
+
|
87 |
+
|
88 |
+
const BROWSER_YANDEXBOT = 'YandexBot'; // http://yandex.com/bots
|
89 |
+
const BROWSER_YANDEXIMAGERESIZER_BOT = 'YandexImageResizer'; // http://yandex.com/bots
|
90 |
+
const BROWSER_YANDEXIMAGES_BOT = 'YandexImages'; // http://yandex.com/bots
|
91 |
+
const BROWSER_YANDEXVIDEO_BOT = 'YandexVideo'; // http://yandex.com/bots
|
92 |
+
const BROWSER_YANDEXMEDIA_BOT = 'YandexMedia'; // http://yandex.com/bots
|
93 |
+
const BROWSER_YANDEXBLOGS_BOT = 'YandexBlogs'; // http://yandex.com/bots
|
94 |
+
const BROWSER_YANDEXFAVICONS_BOT = 'YandexFavicons'; // http://yandex.com/bots
|
95 |
+
const BROWSER_YANDEXWEBMASTER_BOT = 'YandexWebmaster'; // http://yandex.com/bots
|
96 |
+
const BROWSER_YANDEXDIRECT_BOT = 'YandexDirect'; // http://yandex.com/bots
|
97 |
+
const BROWSER_YANDEXMETRIKA_BOT = 'YandexMetrika'; // http://yandex.com/bots
|
98 |
+
const BROWSER_YANDEXNEWS_BOT = 'YandexNews'; // http://yandex.com/bots
|
99 |
+
const BROWSER_YANDEXCATALOG_BOT = 'YandexCatalog'; // http://yandex.com/bots
|
100 |
+
|
101 |
+
const BROWSER_SLURP = 'Yahoo! Slurp'; // http://en.wikipedia.org/wiki/Yahoo!_Slurp
|
102 |
+
const BROWSER_W3CVALIDATOR = 'W3C Validator'; // http://validator.w3.org/
|
103 |
+
const BROWSER_BLACKBERRY = 'BlackBerry'; // http://www.blackberry.com/
|
104 |
+
const BROWSER_ICECAT = 'IceCat'; // http://en.wikipedia.org/wiki/GNU_IceCat
|
105 |
+
const BROWSER_NOKIA_S60 = 'Nokia S60 OSS Browser'; // http://en.wikipedia.org/wiki/Web_Browser_for_S60
|
106 |
+
const BROWSER_NOKIA = 'Nokia Browser'; // * all other WAP-based browsers on the Nokia Platform
|
107 |
+
const BROWSER_MSN = 'MSN Browser'; // http://explorer.msn.com/
|
108 |
+
const BROWSER_MSNBOT = 'MSN Bot'; // http://search.msn.com/msnbot.htm
|
109 |
+
const BROWSER_BINGBOT = 'Bing Bot'; // http://en.wikipedia.org/wiki/Bingbot
|
110 |
+
const BROWSER_VIVALDI = 'Vivaldi'; // https://vivaldi.com/
|
111 |
+
const BROWSER_YANDEX = 'Yandex'; // https://browser.yandex.ua/
|
112 |
+
|
113 |
+
const BROWSER_NETSCAPE_NAVIGATOR = 'Netscape Navigator'; // http://browser.netscape.com/ (DEPRECATED)
|
114 |
+
const BROWSER_GALEON = 'Galeon'; // http://galeon.sourceforge.net/ (DEPRECATED)
|
115 |
+
const BROWSER_NETPOSITIVE = 'NetPositive'; // http://en.wikipedia.org/wiki/NetPositive (DEPRECATED)
|
116 |
+
const BROWSER_PHOENIX = 'Phoenix'; // http://en.wikipedia.org/wiki/History_of_Mozilla_Firefox (DEPRECATED)
|
117 |
+
const BROWSER_PLAYSTATION = "PlayStation";
|
118 |
+
const BROWSER_SAMSUNG = "SamsungBrowser";
|
119 |
+
const BROWSER_SILK = "Silk";
|
120 |
+
const BROWSER_I_FRAME = "Iframely";
|
121 |
+
const BROWSER_COCOA = "CocoaRestClient";
|
122 |
+
|
123 |
+
const PLATFORM_UNKNOWN = 'unknown';
|
124 |
+
const PLATFORM_WINDOWS = 'Windows';
|
125 |
+
const PLATFORM_WINDOWS_CE = 'Windows CE';
|
126 |
+
const PLATFORM_APPLE = 'Apple';
|
127 |
+
const PLATFORM_LINUX = 'Linux';
|
128 |
+
const PLATFORM_OS2 = 'OS/2';
|
129 |
+
const PLATFORM_BEOS = 'BeOS';
|
130 |
+
const PLATFORM_IPHONE = 'iPhone';
|
131 |
+
const PLATFORM_IPOD = 'iPod';
|
132 |
+
const PLATFORM_IPAD = 'iPad';
|
133 |
+
const PLATFORM_BLACKBERRY = 'BlackBerry';
|
134 |
+
const PLATFORM_NOKIA = 'Nokia';
|
135 |
+
const PLATFORM_FREEBSD = 'FreeBSD';
|
136 |
+
const PLATFORM_OPENBSD = 'OpenBSD';
|
137 |
+
const PLATFORM_NETBSD = 'NetBSD';
|
138 |
+
const PLATFORM_SUNOS = 'SunOS';
|
139 |
+
const PLATFORM_OPENSOLARIS = 'OpenSolaris';
|
140 |
+
const PLATFORM_ANDROID = 'Android';
|
141 |
+
const PLATFORM_PLAYSTATION = "Sony PlayStation";
|
142 |
+
const PLATFORM_ROKU = "Roku";
|
143 |
+
const PLATFORM_APPLE_TV = "Apple TV";
|
144 |
+
const PLATFORM_TERMINAL = "Terminal";
|
145 |
+
const PLATFORM_FIRE_OS = "Fire OS";
|
146 |
+
const PLATFORM_SMART_TV = "SMART-TV";
|
147 |
+
const PLATFORM_CHROME_OS = "Chrome OS";
|
148 |
+
const PLATFORM_JAVA_ANDROID = "Java/Android";
|
149 |
+
const PLATFORM_POSTMAN = "Postman";
|
150 |
+
const PLATFORM_I_FRAME = "Iframely";
|
151 |
+
|
152 |
+
const OPERATING_SYSTEM_UNKNOWN = 'unknown';
|
153 |
+
|
154 |
+
/**
|
155 |
+
* Class constructor
|
156 |
+
* @param string $userAgent
|
157 |
+
*/
|
158 |
+
public function __construct($userAgent = '')
|
159 |
+
{
|
160 |
+
if ($userAgent != '') {
|
161 |
+
$this->setUserAgent($userAgent);
|
162 |
+
} else {
|
163 |
+
$this->reset();
|
164 |
+
$this->determine();
|
165 |
+
}
|
166 |
+
}
|
167 |
+
|
168 |
+
/**
|
169 |
+
* Reset all properties
|
170 |
+
*/
|
171 |
+
public function reset()
|
172 |
+
{
|
173 |
+
$this->_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
|
174 |
+
$this->_browser_name = self::BROWSER_UNKNOWN;
|
175 |
+
$this->_version = self::VERSION_UNKNOWN;
|
176 |
+
$this->_platform = self::PLATFORM_UNKNOWN;
|
177 |
+
$this->_os = self::OPERATING_SYSTEM_UNKNOWN;
|
178 |
+
$this->_is_aol = false;
|
179 |
+
$this->_is_mobile = false;
|
180 |
+
$this->_is_tablet = false;
|
181 |
+
$this->_is_robot = false;
|
182 |
+
$this->_is_facebook = false;
|
183 |
+
$this->_aol_version = self::VERSION_UNKNOWN;
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* Check to see if the specific browser is valid
|
188 |
+
* @param string $browserName
|
189 |
+
* @return bool True if the browser is the specified browser
|
190 |
+
*/
|
191 |
+
function isBrowser($browserName)
|
192 |
+
{
|
193 |
+
return (0 == strcasecmp($this->_browser_name, trim($browserName)));
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* The name of the browser. All return types are from the class contants
|
198 |
+
* @return string Name of the browser
|
199 |
+
*/
|
200 |
+
public function getBrowser()
|
201 |
+
{
|
202 |
+
return $this->_browser_name;
|
203 |
+
}
|
204 |
+
|
205 |
+
/**
|
206 |
+
* Set the name of the browser
|
207 |
+
* @param $browser string The name of the Browser
|
208 |
+
*/
|
209 |
+
public function setBrowser($browser)
|
210 |
+
{
|
211 |
+
$this->_browser_name = $browser;
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* The name of the platform. All return types are from the class contants
|
216 |
+
* @return string Name of the browser
|
217 |
+
*/
|
218 |
+
public function getPlatform()
|
219 |
+
{
|
220 |
+
return $this->_platform;
|
221 |
+
}
|
222 |
+
|
223 |
+
/**
|
224 |
+
* Set the name of the platform
|
225 |
+
* @param string $platform The name of the Platform
|
226 |
+
*/
|
227 |
+
public function setPlatform($platform)
|
228 |
+
{
|
229 |
+
$this->_platform = $platform;
|
230 |
+
}
|
231 |
+
|
232 |
+
/**
|
233 |
+
* The version of the browser.
|
234 |
+
* @return string Version of the browser (will only contain alpha-numeric characters and a period)
|
235 |
+
*/
|
236 |
+
public function getVersion()
|
237 |
+
{
|
238 |
+
return $this->_version;
|
239 |
+
}
|
240 |
+
|
241 |
+
/**
|
242 |
+
* Set the version of the browser
|
243 |
+
* @param string $version The version of the Browser
|
244 |
+
*/
|
245 |
+
public function setVersion($version)
|
246 |
+
{
|
247 |
+
$this->_version = preg_replace('/[^0-9,.,a-z,A-Z-]/', '', $version);
|
248 |
+
}
|
249 |
+
|
250 |
+
/**
|
251 |
+
* The version of AOL.
|
252 |
+
* @return string Version of AOL (will only contain alpha-numeric characters and a period)
|
253 |
+
*/
|
254 |
+
public function getAolVersion()
|
255 |
+
{
|
256 |
+
return $this->_aol_version;
|
257 |
+
}
|
258 |
+
|
259 |
+
/**
|
260 |
+
* Set the version of AOL
|
261 |
+
* @param string $version The version of AOL
|
262 |
+
*/
|
263 |
+
public function setAolVersion($version)
|
264 |
+
{
|
265 |
+
$this->_aol_version = preg_replace('/[^0-9,.,a-z,A-Z]/', '', $version);
|
266 |
+
}
|
267 |
+
|
268 |
+
/**
|
269 |
+
* Is the browser from AOL?
|
270 |
+
* @return boolean True if the browser is from AOL otherwise false
|
271 |
+
*/
|
272 |
+
public function isAol()
|
273 |
+
{
|
274 |
+
return $this->_is_aol;
|
275 |
+
}
|
276 |
+
|
277 |
+
/**
|
278 |
+
* Is the browser from a mobile device?
|
279 |
+
* @return boolean True if the browser is from a mobile device otherwise false
|
280 |
+
*/
|
281 |
+
public function isMobile()
|
282 |
+
{
|
283 |
+
return $this->_is_mobile;
|
284 |
+
}
|
285 |
+
|
286 |
+
/**
|
287 |
+
* Is the browser from a tablet device?
|
288 |
+
* @return boolean True if the browser is from a tablet device otherwise false
|
289 |
+
*/
|
290 |
+
public function isTablet()
|
291 |
+
{
|
292 |
+
return $this->_is_tablet;
|
293 |
+
}
|
294 |
+
|
295 |
+
/**
|
296 |
+
* Is the browser from a robot (ex Slurp,GoogleBot)?
|
297 |
+
* @return boolean True if the browser is from a robot otherwise false
|
298 |
+
*/
|
299 |
+
public function isRobot()
|
300 |
+
{
|
301 |
+
return $this->_is_robot;
|
302 |
+
}
|
303 |
+
|
304 |
+
/**
|
305 |
+
* Is the browser from facebook?
|
306 |
+
* @return boolean True if the browser is from facebook otherwise false
|
307 |
+
*/
|
308 |
+
public function isFacebook()
|
309 |
+
{
|
310 |
+
return $this->_is_facebook;
|
311 |
+
}
|
312 |
+
|
313 |
+
/**
|
314 |
+
* Set the browser to be from AOL
|
315 |
+
* @param $isAol
|
316 |
+
*/
|
317 |
+
public function setAol($isAol)
|
318 |
+
{
|
319 |
+
$this->_is_aol = $isAol;
|
320 |
+
}
|
321 |
+
|
322 |
+
/**
|
323 |
+
* Set the Browser to be mobile
|
324 |
+
* @param boolean $value is the browser a mobile browser or not
|
325 |
+
*/
|
326 |
+
protected function setMobile($value = true)
|
327 |
+
{
|
328 |
+
$this->_is_mobile = $value;
|
329 |
+
}
|
330 |
+
|
331 |
+
/**
|
332 |
+
* Set the Browser to be tablet
|
333 |
+
* @param boolean $value is the browser a tablet browser or not
|
334 |
+
*/
|
335 |
+
protected function setTablet($value = true)
|
336 |
+
{
|
337 |
+
$this->_is_tablet = $value;
|
338 |
+
}
|
339 |
+
|
340 |
+
/**
|
341 |
+
* Set the Browser to be a robot
|
342 |
+
* @param boolean $value is the browser a robot or not
|
343 |
+
*/
|
344 |
+
protected function setRobot($value = true)
|
345 |
+
{
|
346 |
+
$this->_is_robot = $value;
|
347 |
+
}
|
348 |
+
|
349 |
+
/**
|
350 |
+
* Set the Browser to be a Facebook request
|
351 |
+
* @param boolean $value is the browser a robot or not
|
352 |
+
*/
|
353 |
+
protected function setFacebook($value = true)
|
354 |
+
{
|
355 |
+
$this->_is_facebook = $value;
|
356 |
+
}
|
357 |
+
|
358 |
+
/**
|
359 |
+
* Get the user agent value in use to determine the browser
|
360 |
+
* @return string The user agent from the HTTP header
|
361 |
+
*/
|
362 |
+
public function getUserAgent()
|
363 |
+
{
|
364 |
+
return $this->_agent;
|
365 |
+
}
|
366 |
+
|
367 |
+
/**
|
368 |
+
* Set the user agent value (the construction will use the HTTP header value - this will overwrite it)
|
369 |
+
* @param string $agent_string The value for the User Agent
|
370 |
+
*/
|
371 |
+
public function setUserAgent($agent_string)
|
372 |
+
{
|
373 |
+
$this->reset();
|
374 |
+
$this->_agent = $agent_string;
|
375 |
+
$this->determine();
|
376 |
+
}
|
377 |
+
|
378 |
+
/**
|
379 |
+
* Used to determine if the browser is actually "chromeframe"
|
380 |
+
* @since 1.7
|
381 |
+
* @return boolean True if the browser is using chromeframe
|
382 |
+
*/
|
383 |
+
public function isChromeFrame()
|
384 |
+
{
|
385 |
+
return (strpos($this->_agent, "chromeframe") !== false);
|
386 |
+
}
|
387 |
+
|
388 |
+
/**
|
389 |
+
* Returns a formatted string with a summary of the details of the browser.
|
390 |
+
* @return string formatted string with a summary of the browser
|
391 |
+
*/
|
392 |
+
public function __toString()
|
393 |
+
{
|
394 |
+
return "<strong>Browser Name:</strong> {$this->getBrowser()}<br/>\n" .
|
395 |
+
"<strong>Browser Version:</strong> {$this->getVersion()}<br/>\n" .
|
396 |
+
"<strong>Browser User Agent String:</strong> {$this->getUserAgent()}<br/>\n" .
|
397 |
+
"<strong>Platform:</strong> {$this->getPlatform()}<br/>";
|
398 |
+
}
|
399 |
+
|
400 |
+
/**
|
401 |
+
* Protected routine to calculate and determine what the browser is in use (including platform)
|
402 |
+
*/
|
403 |
+
protected function determine()
|
404 |
+
{
|
405 |
+
$this->checkPlatform();
|
406 |
+
$this->checkBrowsers();
|
407 |
+
$this->checkForAol();
|
408 |
+
}
|
409 |
+
|
410 |
+
/**
|
411 |
+
* Protected routine to determine the browser type
|
412 |
+
* @return boolean True if the browser was detected otherwise false
|
413 |
+
*/
|
414 |
+
protected function checkBrowsers()
|
415 |
+
{
|
416 |
+
return (
|
417 |
+
// well-known, well-used
|
418 |
+
// Special Notes:
|
419 |
+
// (1) Opera must be checked before FireFox due to the odd
|
420 |
+
// user agents used in some older versions of Opera
|
421 |
+
// (2) WebTV is strapped onto Internet Explorer so we must
|
422 |
+
// check for WebTV before IE
|
423 |
+
// (3) (deprecated) Galeon is based on Firefox and needs to be
|
424 |
+
// tested before Firefox is tested
|
425 |
+
// (4) OmniWeb is based on Safari so OmniWeb check must occur
|
426 |
+
// before Safari
|
427 |
+
// (5) Netscape 9+ is based on Firefox so Netscape checks
|
428 |
+
// before FireFox are necessary
|
429 |
+
// (6) Vivaldi is UA contains both Firefox and Chrome so Vivaldi checks
|
430 |
+
// before Firefox and Chrome
|
431 |
+
$this->checkBrowserWebTv() ||
|
432 |
+
$this->checkBrowserBrave() ||
|
433 |
+
$this->checkBrowserUCBrowser() ||
|
434 |
+
$this->checkBrowserEdge() ||
|
435 |
+
$this->checkBrowserInternetExplorer() ||
|
436 |
+
$this->checkBrowserOpera() ||
|
437 |
+
$this->checkBrowserGaleon() ||
|
438 |
+
$this->checkBrowserNetscapeNavigator9Plus() ||
|
439 |
+
$this->checkBrowserVivaldi() ||
|
440 |
+
$this->checkBrowserYandex() ||
|
441 |
+
$this->checkBrowserPalemoon() ||
|
442 |
+
$this->checkBrowserFirefox() ||
|
443 |
+
$this->checkBrowserChrome() ||
|
444 |
+
$this->checkBrowserOmniWeb() ||
|
445 |
+
|
446 |
+
// common mobile
|
447 |
+
$this->checkBrowserAndroid() ||
|
448 |
+
$this->checkBrowseriPad() ||
|
449 |
+
$this->checkBrowseriPod() ||
|
450 |
+
$this->checkBrowseriPhone() ||
|
451 |
+
$this->checkBrowserBlackBerry() ||
|
452 |
+
$this->checkBrowserNokia() ||
|
453 |
+
|
454 |
+
// common bots
|
455 |
+
$this->checkBrowserGoogleBot() ||
|
456 |
+
$this->checkBrowserMSNBot() ||
|
457 |
+
$this->checkBrowserBingBot() ||
|
458 |
+
$this->checkBrowserSlurp() ||
|
459 |
+
|
460 |
+
// Yandex bots
|
461 |
+
$this->checkBrowserYandexBot() ||
|
462 |
+
$this->checkBrowserYandexImageResizerBot() ||
|
463 |
+
$this->checkBrowserYandexBlogsBot() ||
|
464 |
+
$this->checkBrowserYandexCatalogBot() ||
|
465 |
+
$this->checkBrowserYandexDirectBot() ||
|
466 |
+
$this->checkBrowserYandexFaviconsBot() ||
|
467 |
+
$this->checkBrowserYandexImagesBot() ||
|
468 |
+
$this->checkBrowserYandexMediaBot() ||
|
469 |
+
$this->checkBrowserYandexMetrikaBot() ||
|
470 |
+
$this->checkBrowserYandexNewsBot() ||
|
471 |
+
$this->checkBrowserYandexVideoBot() ||
|
472 |
+
$this->checkBrowserYandexWebmasterBot() ||
|
473 |
+
|
474 |
+
// check for facebook external hit when loading URL
|
475 |
+
$this->checkFacebookExternalHit() ||
|
476 |
+
|
477 |
+
// WebKit base check (post mobile and others)
|
478 |
+
$this->checkBrowserSamsung() ||
|
479 |
+
$this->checkBrowserSilk() ||
|
480 |
+
$this->checkBrowserSafari() ||
|
481 |
+
|
482 |
+
// everyone else
|
483 |
+
$this->checkBrowserNetPositive() ||
|
484 |
+
$this->checkBrowserFirebird() ||
|
485 |
+
$this->checkBrowserKonqueror() ||
|
486 |
+
$this->checkBrowserIcab() ||
|
487 |
+
$this->checkBrowserPhoenix() ||
|
488 |
+
$this->checkBrowserAmaya() ||
|
489 |
+
$this->checkBrowserLynx() ||
|
490 |
+
$this->checkBrowserShiretoko() ||
|
491 |
+
$this->checkBrowserIceCat() ||
|
492 |
+
$this->checkBrowserIceweasel() ||
|
493 |
+
$this->checkBrowserW3CValidator() ||
|
494 |
+
$this->checkBrowserCurl() ||
|
495 |
+
$this->checkBrowserWget() ||
|
496 |
+
$this->checkBrowserPlayStation() ||
|
497 |
+
$this->checkBrowserIframely() ||
|
498 |
+
$this->checkBrowserCocoa() ||
|
499 |
+
$this->checkBrowserMozilla() /* Mozilla is such an open standard that you must check it last */);
|
500 |
+
}
|
501 |
+
|
502 |
+
/**
|
503 |
+
* Determine if the user is using a BlackBerry (last updated 1.7)
|
504 |
+
* @return boolean True if the browser is the BlackBerry browser otherwise false
|
505 |
+
*/
|
506 |
+
protected function checkBrowserBlackBerry()
|
507 |
+
{
|
508 |
+
if (stripos($this->_agent, 'blackberry') !== false) {
|
509 |
+
$aresult = explode('/', stristr($this->_agent, "BlackBerry"));
|
510 |
+
if (isset($aresult[1])) {
|
511 |
+
$aversion = explode(' ', $aresult[1]);
|
512 |
+
$this->setVersion($aversion[0]);
|
513 |
+
$this->_browser_name = self::BROWSER_BLACKBERRY;
|
514 |
+
$this->setMobile(true);
|
515 |
+
return true;
|
516 |
+
}
|
517 |
+
}
|
518 |
+
return false;
|
519 |
+
}
|
520 |
+
|
521 |
+
/**
|
522 |
+
* Determine if the user is using an AOL User Agent (last updated 1.7)
|
523 |
+
* @return boolean True if the browser is from AOL otherwise false
|
524 |
+
*/
|
525 |
+
protected function checkForAol()
|
526 |
+
{
|
527 |
+
$this->setAol(false);
|
528 |
+
$this->setAolVersion(self::VERSION_UNKNOWN);
|
529 |
+
|
530 |
+
if (stripos($this->_agent, 'aol') !== false) {
|
531 |
+
$aversion = explode(' ', stristr($this->_agent, 'AOL'));
|
532 |
+
if (isset($aversion[1])) {
|
533 |
+
$this->setAol(true);
|
534 |
+
$this->setAolVersion(preg_replace('/[^0-9\.a-z]/i', '', $aversion[1]));
|
535 |
+
return true;
|
536 |
+
}
|
537 |
+
}
|
538 |
+
return false;
|
539 |
+
}
|
540 |
+
|
541 |
+
/**
|
542 |
+
* Determine if the browser is the GoogleBot or not (last updated 1.7)
|
543 |
+
* @return boolean True if the browser is the GoogletBot otherwise false
|
544 |
+
*/
|
545 |
+
protected function checkBrowserGoogleBot()
|
546 |
+
{
|
547 |
+
if (stripos($this->_agent, 'googlebot') !== false) {
|
548 |
+
$aresult = explode('/', stristr($this->_agent, 'googlebot'));
|
549 |
+
if (isset($aresult[1])) {
|
550 |
+
$aversion = explode(' ', $aresult[1]);
|
551 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
552 |
+
$this->_browser_name = self::BROWSER_GOOGLEBOT;
|
553 |
+
$this->setRobot(true);
|
554 |
+
return true;
|
555 |
+
}
|
556 |
+
}
|
557 |
+
return false;
|
558 |
+
}
|
559 |
+
|
560 |
+
/**
|
561 |
+
* Determine if the browser is the YandexBot or not
|
562 |
+
* @return boolean True if the browser is the YandexBot otherwise false
|
563 |
+
*/
|
564 |
+
protected function checkBrowserYandexBot()
|
565 |
+
{
|
566 |
+
if (stripos($this->_agent, 'YandexBot') !== false) {
|
567 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexBot'));
|
568 |
+
if (isset($aresult[1])) {
|
569 |
+
$aversion = explode(' ', $aresult[1]);
|
570 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
571 |
+
$this->_browser_name = self::BROWSER_YANDEXBOT;
|
572 |
+
$this->setRobot(true);
|
573 |
+
return true;
|
574 |
+
}
|
575 |
+
}
|
576 |
+
return false;
|
577 |
+
}
|
578 |
+
|
579 |
+
/**
|
580 |
+
* Determine if the browser is the YandexImageResizer or not
|
581 |
+
* @return boolean True if the browser is the YandexImageResizer otherwise false
|
582 |
+
*/
|
583 |
+
protected function checkBrowserYandexImageResizerBot()
|
584 |
+
{
|
585 |
+
if (stripos($this->_agent, 'YandexImageResizer') !== false) {
|
586 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexImageResizer'));
|
587 |
+
if (isset($aresult[1])) {
|
588 |
+
$aversion = explode(' ', $aresult[1]);
|
589 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
590 |
+
$this->_browser_name = self::BROWSER_YANDEXIMAGERESIZER_BOT;
|
591 |
+
$this->setRobot(true);
|
592 |
+
return true;
|
593 |
+
}
|
594 |
+
}
|
595 |
+
return false;
|
596 |
+
}
|
597 |
+
|
598 |
+
/**
|
599 |
+
* Determine if the browser is the YandexCatalog or not
|
600 |
+
* @return boolean True if the browser is the YandexCatalog otherwise false
|
601 |
+
*/
|
602 |
+
protected function checkBrowserYandexCatalogBot()
|
603 |
+
{
|
604 |
+
if (stripos($this->_agent, 'YandexCatalog') !== false) {
|
605 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexCatalog'));
|
606 |
+
if (isset($aresult[1])) {
|
607 |
+
$aversion = explode(' ', $aresult[1]);
|
608 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
609 |
+
$this->_browser_name = self::BROWSER_YANDEXCATALOG_BOT;
|
610 |
+
$this->setRobot(true);
|
611 |
+
return true;
|
612 |
+
}
|
613 |
+
}
|
614 |
+
return false;
|
615 |
+
}
|
616 |
+
|
617 |
+
/**
|
618 |
+
* Determine if the browser is the YandexNews or not
|
619 |
+
* @return boolean True if the browser is the YandexNews otherwise false
|
620 |
+
*/
|
621 |
+
protected function checkBrowserYandexNewsBot()
|
622 |
+
{
|
623 |
+
if (stripos($this->_agent, 'YandexNews') !== false) {
|
624 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexNews'));
|
625 |
+
if (isset($aresult[1])) {
|
626 |
+
$aversion = explode(' ', $aresult[1]);
|
627 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
628 |
+
$this->_browser_name = self::BROWSER_YANDEXNEWS_BOT;
|
629 |
+
$this->setRobot(true);
|
630 |
+
return true;
|
631 |
+
}
|
632 |
+
}
|
633 |
+
return false;
|
634 |
+
}
|
635 |
+
|
636 |
+
/**
|
637 |
+
* Determine if the browser is the YandexMetrika or not
|
638 |
+
* @return boolean True if the browser is the YandexMetrika otherwise false
|
639 |
+
*/
|
640 |
+
protected function checkBrowserYandexMetrikaBot()
|
641 |
+
{
|
642 |
+
if (stripos($this->_agent, 'YandexMetrika') !== false) {
|
643 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexMetrika'));
|
644 |
+
if (isset($aresult[1])) {
|
645 |
+
$aversion = explode(' ', $aresult[1]);
|
646 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
647 |
+
$this->_browser_name = self::BROWSER_YANDEXMETRIKA_BOT;
|
648 |
+
$this->setRobot(true);
|
649 |
+
return true;
|
650 |
+
}
|
651 |
+
}
|
652 |
+
return false;
|
653 |
+
}
|
654 |
+
|
655 |
+
/**
|
656 |
+
* Determine if the browser is the YandexDirect or not
|
657 |
+
* @return boolean True if the browser is the YandexDirect otherwise false
|
658 |
+
*/
|
659 |
+
protected function checkBrowserYandexDirectBot()
|
660 |
+
{
|
661 |
+
if (stripos($this->_agent, 'YandexDirect') !== false) {
|
662 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexDirect'));
|
663 |
+
if (isset($aresult[1])) {
|
664 |
+
$aversion = explode(' ', $aresult[1]);
|
665 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
666 |
+
$this->_browser_name = self::BROWSER_YANDEXDIRECT_BOT;
|
667 |
+
$this->setRobot(true);
|
668 |
+
return true;
|
669 |
+
}
|
670 |
+
}
|
671 |
+
return false;
|
672 |
+
}
|
673 |
+
|
674 |
+
/**
|
675 |
+
* Determine if the browser is the YandexWebmaster or not
|
676 |
+
* @return boolean True if the browser is the YandexWebmaster otherwise false
|
677 |
+
*/
|
678 |
+
protected function checkBrowserYandexWebmasterBot()
|
679 |
+
{
|
680 |
+
if (stripos($this->_agent, 'YandexWebmaster') !== false) {
|
681 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexWebmaster'));
|
682 |
+
if (isset($aresult[1])) {
|
683 |
+
$aversion = explode(' ', $aresult[1]);
|
684 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
685 |
+
$this->_browser_name = self::BROWSER_YANDEXWEBMASTER_BOT;
|
686 |
+
$this->setRobot(true);
|
687 |
+
return true;
|
688 |
+
}
|
689 |
+
}
|
690 |
+
return false;
|
691 |
+
}
|
692 |
+
|
693 |
+
/**
|
694 |
+
* Determine if the browser is the YandexFavicons or not
|
695 |
+
* @return boolean True if the browser is the YandexFavicons otherwise false
|
696 |
+
*/
|
697 |
+
protected function checkBrowserYandexFaviconsBot()
|
698 |
+
{
|
699 |
+
if (stripos($this->_agent, 'YandexFavicons') !== false) {
|
700 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexFavicons'));
|
701 |
+
if (isset($aresult[1])) {
|
702 |
+
$aversion = explode(' ', $aresult[1]);
|
703 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
704 |
+
$this->_browser_name = self::BROWSER_YANDEXFAVICONS_BOT;
|
705 |
+
$this->setRobot(true);
|
706 |
+
return true;
|
707 |
+
}
|
708 |
+
}
|
709 |
+
return false;
|
710 |
+
}
|
711 |
+
|
712 |
+
/**
|
713 |
+
* Determine if the browser is the YandexBlogs or not
|
714 |
+
* @return boolean True if the browser is the YandexBlogs otherwise false
|
715 |
+
*/
|
716 |
+
protected function checkBrowserYandexBlogsBot()
|
717 |
+
{
|
718 |
+
if (stripos($this->_agent, 'YandexBlogs') !== false) {
|
719 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexBlogs'));
|
720 |
+
if (isset($aresult[1])) {
|
721 |
+
$aversion = explode(' ', $aresult[1]);
|
722 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
723 |
+
$this->_browser_name = self::BROWSER_YANDEXBLOGS_BOT;
|
724 |
+
$this->setRobot(true);
|
725 |
+
return true;
|
726 |
+
}
|
727 |
+
}
|
728 |
+
return false;
|
729 |
+
}
|
730 |
+
|
731 |
+
/**
|
732 |
+
* Determine if the browser is the YandexMedia or not
|
733 |
+
* @return boolean True if the browser is the YandexMedia otherwise false
|
734 |
+
*/
|
735 |
+
protected function checkBrowserYandexMediaBot()
|
736 |
+
{
|
737 |
+
if (stripos($this->_agent, 'YandexMedia') !== false) {
|
738 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexMedia'));
|
739 |
+
if (isset($aresult[1])) {
|
740 |
+
$aversion = explode(' ', $aresult[1]);
|
741 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
742 |
+
$this->_browser_name = self::BROWSER_YANDEXMEDIA_BOT;
|
743 |
+
$this->setRobot(true);
|
744 |
+
return true;
|
745 |
+
}
|
746 |
+
}
|
747 |
+
return false;
|
748 |
+
}
|
749 |
+
|
750 |
+
/**
|
751 |
+
* Determine if the browser is the YandexVideo or not
|
752 |
+
* @return boolean True if the browser is the YandexVideo otherwise false
|
753 |
+
*/
|
754 |
+
protected function checkBrowserYandexVideoBot()
|
755 |
+
{
|
756 |
+
if (stripos($this->_agent, 'YandexVideo') !== false) {
|
757 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexVideo'));
|
758 |
+
if (isset($aresult[1])) {
|
759 |
+
$aversion = explode(' ', $aresult[1]);
|
760 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
761 |
+
$this->_browser_name = self::BROWSER_YANDEXVIDEO_BOT;
|
762 |
+
$this->setRobot(true);
|
763 |
+
return true;
|
764 |
+
}
|
765 |
+
}
|
766 |
+
return false;
|
767 |
+
}
|
768 |
+
|
769 |
+
/**
|
770 |
+
* Determine if the browser is the YandexImages or not
|
771 |
+
* @return boolean True if the browser is the YandexImages otherwise false
|
772 |
+
*/
|
773 |
+
protected function checkBrowserYandexImagesBot()
|
774 |
+
{
|
775 |
+
if (stripos($this->_agent, 'YandexImages') !== false) {
|
776 |
+
$aresult = explode('/', stristr($this->_agent, 'YandexImages'));
|
777 |
+
if (isset($aresult[1])) {
|
778 |
+
$aversion = explode(' ', $aresult[1]);
|
779 |
+
$this->setVersion(str_replace(';', '', $aversion[0]));
|
780 |
+
$this->_browser_name = self::BROWSER_YANDEXIMAGES_BOT;
|
781 |
+
$this->setRobot(true);
|
782 |
+
return true;
|
783 |
+
}
|
784 |
+
}
|
785 |
+
return false;
|
786 |
+
}
|
787 |
+
|
788 |
+
/**
|
789 |
+
* Determine if the browser is the MSNBot or not (last updated 1.9)
|
790 |
+
* @return boolean True if the browser is the MSNBot otherwise false
|
791 |
+
*/
|
792 |
+
protected function checkBrowserMSNBot()
|
793 |
+
{
|
794 |
+
if (stripos($this->_agent, "msnbot") !== false) {
|
795 |
+
$aresult = explode("/", stristr($this->_agent, "msnbot"));
|
796 |
+
if (isset($aresult[1])) {
|
797 |
+
$aversion = explode(" ", $aresult[1]);
|
798 |
+
$this->setVersion(str_replace(";", '', $aversion[0]));
|
799 |
+
$this->_browser_name = self::BROWSER_MSNBOT;
|
800 |
+
$this->setRobot(true);
|
801 |
+
return true;
|
802 |
+
}
|
803 |
+
}
|
804 |
+
return false;
|
805 |
+
}
|
806 |
+
|
807 |
+
/**
|
808 |
+
* Determine if the browser is the BingBot or not (last updated 1.9)
|
809 |
+
* @return boolean True if the browser is the BingBot otherwise false
|
810 |
+
*/
|
811 |
+
protected function checkBrowserBingBot()
|
812 |
+
{
|
813 |
+
if (stripos($this->_agent, "bingbot") !== false) {
|
814 |
+
$aresult = explode("/", stristr($this->_agent, "bingbot"));
|
815 |
+
if (isset($aresult[1])) {
|
816 |
+
$aversion = explode(" ", $aresult[1]);
|
817 |
+
$this->setVersion(str_replace(";", '', $aversion[0]));
|
818 |
+
$this->_browser_name = self::BROWSER_BINGBOT;
|
819 |
+
$this->setRobot(true);
|
820 |
+
return true;
|
821 |
+
}
|
822 |
+
}
|
823 |
+
return false;
|
824 |
+
}
|
825 |
+
|
826 |
+
/**
|
827 |
+
* Determine if the browser is the W3C Validator or not (last updated 1.7)
|
828 |
+
* @return boolean True if the browser is the W3C Validator otherwise false
|
829 |
+
*/
|
830 |
+
protected function checkBrowserW3CValidator()
|
831 |
+
{
|
832 |
+
if (stripos($this->_agent, 'W3C-checklink') !== false) {
|
833 |
+
$aresult = explode('/', stristr($this->_agent, 'W3C-checklink'));
|
834 |
+
if (isset($aresult[1])) {
|
835 |
+
$aversion = explode(' ', $aresult[1]);
|
836 |
+
$this->setVersion($aversion[0]);
|
837 |
+
$this->_browser_name = self::BROWSER_W3CVALIDATOR;
|
838 |
+
return true;
|
839 |
+
}
|
840 |
+
} else if (stripos($this->_agent, 'W3C_Validator') !== false) {
|
841 |
+
// Some of the Validator versions do not delineate w/ a slash - add it back in
|
842 |
+
$ua = str_replace("W3C_Validator ", "W3C_Validator/", $this->_agent);
|
843 |
+
$aresult = explode('/', stristr($ua, 'W3C_Validator'));
|
844 |
+
if (isset($aresult[1])) {
|
845 |
+
$aversion = explode(' ', $aresult[1]);
|
846 |
+
$this->setVersion($aversion[0]);
|
847 |
+
$this->_browser_name = self::BROWSER_W3CVALIDATOR;
|
848 |
+
return true;
|
849 |
+
}
|
850 |
+
} else if (stripos($this->_agent, 'W3C-mobileOK') !== false) {
|
851 |
+
$this->_browser_name = self::BROWSER_W3CVALIDATOR;
|
852 |
+
$this->setMobile(true);
|
853 |
+
return true;
|
854 |
+
}
|
855 |
+
return false;
|
856 |
+
}
|
857 |
+
|
858 |
+
/**
|
859 |
+
* Determine if the browser is the Yahoo! Slurp Robot or not (last updated 1.7)
|
860 |
+
* @return boolean True if the browser is the Yahoo! Slurp Robot otherwise false
|
861 |
+
*/
|
862 |
+
protected function checkBrowserSlurp()
|
863 |
+
{
|
864 |
+
if (stripos($this->_agent, 'slurp') !== false) {
|
865 |
+
$aresult = explode('/', stristr($this->_agent, 'Slurp'));
|
866 |
+
if (isset($aresult[1])) {
|
867 |
+
$aversion = explode(' ', $aresult[1]);
|
868 |
+
$this->setVersion($aversion[0]);
|
869 |
+
$this->_browser_name = self::BROWSER_SLURP;
|
870 |
+
$this->setRobot(true);
|
871 |
+
$this->setMobile(false);
|
872 |
+
return true;
|
873 |
+
}
|
874 |
+
}
|
875 |
+
return false;
|
876 |
+
}
|
877 |
+
|
878 |
+
/**
|
879 |
+
* Determine if the browser is Brave or not
|
880 |
+
* @return boolean True if the browser is Brave otherwise false
|
881 |
+
*/
|
882 |
+
protected function checkBrowserBrave()
|
883 |
+
{
|
884 |
+
if (stripos($this->_agent, 'Brave/') !== false) {
|
885 |
+
$aResult = explode('/', stristr($this->_agent, 'Brave'));
|
886 |
+
if (isset($aResult[1])) {
|
887 |
+
$aversion = explode(' ', $aResult[1]);
|
888 |
+
$this->setVersion($aversion[0]);
|
889 |
+
$this->setBrowser(self::BROWSER_BRAVE);
|
890 |
+
return true;
|
891 |
+
}
|
892 |
+
} elseif (stripos($this->_agent, ' Brave ') !== false) {
|
893 |
+
$this->setBrowser(self::BROWSER_BRAVE);
|
894 |
+
// this version of the UA did not ship with a version marker
|
895 |
+
// e.g. Mozilla/5.0 (Linux; Android 7.0; SM-G955F Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/68.0.3440.91 Mobile Safari/537.36
|
896 |
+
$this->setVersion('');
|
897 |
+
return true;
|
898 |
+
}
|
899 |
+
return false;
|
900 |
+
}
|
901 |
+
|
902 |
+
/**
|
903 |
+
* Determine if the browser is Edge or not
|
904 |
+
* @return boolean True if the browser is Edge otherwise false
|
905 |
+
*/
|
906 |
+
protected function checkBrowserEdge()
|
907 |
+
{
|
908 |
+
if ($name = (stripos($this->_agent, 'Edge/') !== false ? 'Edge' : ((stripos($this->_agent, 'Edg/') !== false || stripos($this->_agent, 'EdgA/') !== false) ? 'Edg' : false))) {
|
909 |
+
$aresult = explode('/', stristr($this->_agent, $name));
|
910 |
+
if (isset($aresult[1])) {
|
911 |
+
$aversion = explode(' ', $aresult[1]);
|
912 |
+
$this->setVersion($aversion[0]);
|
913 |
+
$this->setBrowser(self::BROWSER_EDGE);
|
914 |
+
if (stripos($this->_agent, 'Windows Phone') !== false || stripos($this->_agent, 'Android') !== false) {
|
915 |
+
$this->setMobile(true);
|
916 |
+
}
|
917 |
+
return true;
|
918 |
+
}
|
919 |
+
}
|
920 |
+
return false;
|
921 |
+
}
|
922 |
+
|
923 |
+
/**
|
924 |
+
* Determine if the browser is Internet Explorer or not (last updated 1.7)
|
925 |
+
* @return boolean True if the browser is Internet Explorer otherwise false
|
926 |
+
*/
|
927 |
+
protected function checkBrowserInternetExplorer()
|
928 |
+
{
|
929 |
+
// Test for IE11
|
930 |
+
if (stripos($this->_agent, 'Trident/7.0; rv:11.0') !== false) {
|
931 |
+
$this->setBrowser(self::BROWSER_IE);
|
932 |
+
$this->setVersion('11.0');
|
933 |
+
return true;
|
934 |
+
} // Test for v1 - v1.5 IE
|
935 |
+
else if (stripos($this->_agent, 'microsoft internet explorer') !== false) {
|
936 |
+
$this->setBrowser(self::BROWSER_IE);
|
937 |
+
$this->setVersion('1.0');
|
938 |
+
$aresult = stristr($this->_agent, '/');
|
939 |
+
if (preg_match('/308|425|426|474|0b1/i', $aresult)) {
|
940 |
+
$this->setVersion('1.5');
|
941 |
+
}
|
942 |
+
return true;
|
943 |
+
} // Test for versions > 1.5
|
944 |
+
else if (stripos($this->_agent, 'msie') !== false && stripos($this->_agent, 'opera') === false) {
|
945 |
+
// See if the browser is the odd MSN Explorer
|
946 |
+
if (stripos($this->_agent, 'msnb') !== false) {
|
947 |
+
$aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'MSN'));
|
948 |
+
if (isset($aresult[1])) {
|
949 |
+
$this->setBrowser(self::BROWSER_MSN);
|
950 |
+
$this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1]));
|
951 |
+
return true;
|
952 |
+
}
|
953 |
+
}
|
954 |
+
$aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'msie'));
|
955 |
+
if (isset($aresult[1])) {
|
956 |
+
$this->setBrowser(self::BROWSER_IE);
|
957 |
+
$this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1]));
|
958 |
+
if (stripos($this->_agent, 'IEMobile') !== false) {
|
959 |
+
$this->setBrowser(self::BROWSER_POCKET_IE);
|
960 |
+
$this->setMobile(true);
|
961 |
+
}
|
962 |
+
return true;
|
963 |
+
}
|
964 |
+
} // Test for versions > IE 10
|
965 |
+
else if (stripos($this->_agent, 'trident') !== false) {
|
966 |
+
$this->setBrowser(self::BROWSER_IE);
|
967 |
+
$result = explode('rv:', $this->_agent);
|
968 |
+
if (isset($result[1])) {
|
969 |
+
$this->setVersion(preg_replace('/[^0-9.]+/', '', $result[1]));
|
970 |
+
$this->_agent = str_replace(array("Mozilla", "Gecko"), "MSIE", $this->_agent);
|
971 |
+
}
|
972 |
+
} // Test for Pocket IE
|
973 |
+
else if (stripos($this->_agent, 'mspie') !== false || stripos($this->_agent, 'pocket') !== false) {
|
974 |
+
$aresult = explode(' ', stristr($this->_agent, 'mspie'));
|
975 |
+
if (isset($aresult[1])) {
|
976 |
+
$this->setPlatform(self::PLATFORM_WINDOWS_CE);
|
977 |
+
$this->setBrowser(self::BROWSER_POCKET_IE);
|
978 |
+
$this->setMobile(true);
|
979 |
+
|
980 |
+
if (stripos($this->_agent, 'mspie') !== false) {
|
981 |
+
$this->setVersion($aresult[1]);
|
982 |
+
} else {
|
983 |
+
$aversion = explode('/', $this->_agent);
|
984 |
+
if (isset($aversion[1])) {
|
985 |
+
$this->setVersion($aversion[1]);
|
986 |
+
}
|
987 |
+
}
|
988 |
+
return true;
|
989 |
+
}
|
990 |
+
}
|
991 |
+
return false;
|
992 |
+
}
|
993 |
+
|
994 |
+
/**
|
995 |
+
* Determine if the browser is Opera or not (last updated 1.7)
|
996 |
+
* @return boolean True if the browser is Opera otherwise false
|
997 |
+
*/
|
998 |
+
protected function checkBrowserOpera()
|
999 |
+
{
|
1000 |
+
if (stripos($this->_agent, 'opera mini') !== false) {
|
1001 |
+
$resultant = stristr($this->_agent, 'opera mini');
|
1002 |
+
if (preg_match('/\//', $resultant)) {
|
1003 |
+
$aresult = explode('/', $resultant);
|
1004 |
+
if (isset($aresult[1])) {
|
1005 |
+
$aversion = explode(' ', $aresult[1]);
|
1006 |
+
$this->setVersion($aversion[0]);
|
1007 |
+
}
|
1008 |
+
} else {
|
1009 |
+
$aversion = explode(' ', stristr($resultant, 'opera mini'));
|
1010 |
+
if (isset($aversion[1])) {
|
1011 |
+
$this->setVersion($aversion[1]);
|
1012 |
+
}
|
1013 |
+
}
|
1014 |
+
$this->_browser_name = self::BROWSER_OPERA_MINI;
|
1015 |
+
$this->setMobile(true);
|
1016 |
+
return true;
|
1017 |
+
} else if (stripos($this->_agent, 'opera') !== false) {
|
1018 |
+
$resultant = stristr($this->_agent, 'opera');
|
1019 |
+
if (preg_match('/Version\/(1*.*)$/', $resultant, $matches)) {
|
1020 |
+
$this->setVersion($matches[1]);
|
1021 |
+
} else if (preg_match('/\//', $resultant)) {
|
1022 |
+
$aresult = explode('/', str_replace("(", " ", $resultant));
|
1023 |
+
if (isset($aresult[1])) {
|
1024 |
+
$aversion = explode(' ', $aresult[1]);
|
1025 |
+
$this->setVersion($aversion[0]);
|
1026 |
+
}
|
1027 |
+
} else {
|
1028 |
+
$aversion = explode(' ', stristr($resultant, 'opera'));
|
1029 |
+
$this->setVersion(isset($aversion[1]) ? $aversion[1] : '');
|
1030 |
+
}
|
1031 |
+
if (stripos($this->_agent, 'Opera Mobi') !== false) {
|
1032 |
+
$this->setMobile(true);
|
1033 |
+
}
|
1034 |
+
$this->_browser_name = self::BROWSER_OPERA;
|
1035 |
+
return true;
|
1036 |
+
} else if (stripos($this->_agent, 'OPR') !== false) {
|
1037 |
+
$resultant = stristr($this->_agent, 'OPR');
|
1038 |
+
if (preg_match('/\//', $resultant)) {
|
1039 |
+
$aresult = explode('/', str_replace("(", " ", $resultant));
|
1040 |
+
if (isset($aresult[1])) {
|
1041 |
+
$aversion = explode(' ', $aresult[1]);
|
1042 |
+
$this->setVersion($aversion[0]);
|
1043 |
+
}
|
1044 |
+
}
|
1045 |
+
if (stripos($this->_agent, 'Mobile') !== false) {
|
1046 |
+
$this->setMobile(true);
|
1047 |
+
}
|
1048 |
+
$this->_browser_name = self::BROWSER_OPERA;
|
1049 |
+
return true;
|
1050 |
+
}
|
1051 |
+
return false;
|
1052 |
+
}
|
1053 |
+
|
1054 |
+
/**
|
1055 |
+
* Determine if the browser is Chrome or not (last updated 1.7)
|
1056 |
+
* @return boolean True if the browser is Chrome otherwise false
|
1057 |
+
*/
|
1058 |
+
protected function checkBrowserChrome()
|
1059 |
+
{
|
1060 |
+
if (stripos($this->_agent, 'Chrome') !== false) {
|
1061 |
+
$aresult = preg_split('/[\/;]+/', stristr($this->_agent, 'Chrome'));
|
1062 |
+
if (isset($aresult[1])) {
|
1063 |
+
$aversion = explode(' ', $aresult[1]);
|
1064 |
+
$this->setVersion($aversion[0]);
|
1065 |
+
$this->setBrowser(self::BROWSER_CHROME);
|
1066 |
+
//Chrome on Android
|
1067 |
+
if (stripos($this->_agent, 'Android') !== false) {
|
1068 |
+
if (stripos($this->_agent, 'Mobile') !== false) {
|
1069 |
+
$this->setMobile(true);
|
1070 |
+
} else {
|
1071 |
+
$this->setTablet(true);
|
1072 |
+
}
|
1073 |
+
}
|
1074 |
+
return true;
|
1075 |
+
}
|
1076 |
+
}
|
1077 |
+
return false;
|
1078 |
+
}
|
1079 |
+
|
1080 |
+
|
1081 |
+
/**
|
1082 |
+
* Determine if the browser is WebTv or not (last updated 1.7)
|
1083 |
+
* @return boolean True if the browser is WebTv otherwise false
|
1084 |
+
*/
|
1085 |
+
protected function checkBrowserWebTv()
|
1086 |
+
{
|
1087 |
+
if (stripos($this->_agent, 'webtv') !== false) {
|
1088 |
+
$aresult = explode('/', stristr($this->_agent, 'webtv'));
|
1089 |
+
if (isset($aresult[1])) {
|
1090 |
+
$aversion = explode(' ', $aresult[1]);
|
1091 |
+
$this->setVersion($aversion[0]);
|
1092 |
+
$this->setBrowser(self::BROWSER_WEBTV);
|
1093 |
+
return true;
|
1094 |
+
}
|
1095 |
+
}
|
1096 |
+
return false;
|
1097 |
+
}
|
1098 |
+
|
1099 |
+
/**
|
1100 |
+
* Determine if the browser is NetPositive or not (last updated 1.7)
|
1101 |
+
* @return boolean True if the browser is NetPositive otherwise false
|
1102 |
+
*/
|
1103 |
+
protected function checkBrowserNetPositive()
|
1104 |
+
{
|
1105 |
+
if (stripos($this->_agent, 'NetPositive') !== false) {
|
1106 |
+
$aresult = explode('/', stristr($this->_agent, 'NetPositive'));
|
1107 |
+
if (isset($aresult[1])) {
|
1108 |
+
$aversion = explode(' ', $aresult[1]);
|
1109 |
+
$this->setVersion(str_replace(array('(', ')', ';'), '', $aversion[0]));
|
1110 |
+
$this->setBrowser(self::BROWSER_NETPOSITIVE);
|
1111 |
+
return true;
|
1112 |
+
}
|
1113 |
+
}
|
1114 |
+
return false;
|
1115 |
+
}
|
1116 |
+
|
1117 |
+
/**
|
1118 |
+
* Determine if the browser is Galeon or not (last updated 1.7)
|
1119 |
+
* @return boolean True if the browser is Galeon otherwise false
|
1120 |
+
*/
|
1121 |
+
protected function checkBrowserGaleon()
|
1122 |
+
{
|
1123 |
+
if (stripos($this->_agent, 'galeon') !== false) {
|
1124 |
+
$aresult = explode(' ', stristr($this->_agent, 'galeon'));
|
1125 |
+
$aversion = explode('/', $aresult[0]);
|
1126 |
+
if (isset($aversion[1])) {
|
1127 |
+
$this->setVersion($aversion[1]);
|
1128 |
+
$this->setBrowser(self::BROWSER_GALEON);
|
1129 |
+
return true;
|
1130 |
+
}
|
1131 |
+
}
|
1132 |
+
return false;
|
1133 |
+
}
|
1134 |
+
|
1135 |
+
/**
|
1136 |
+
* Determine if the browser is Konqueror or not (last updated 1.7)
|
1137 |
+
* @return boolean True if the browser is Konqueror otherwise false
|
1138 |
+
*/
|
1139 |
+
protected function checkBrowserKonqueror()
|
1140 |
+
{
|
1141 |
+
if (stripos($this->_agent, 'Konqueror') !== false) {
|
1142 |
+
$aresult = explode(' ', stristr($this->_agent, 'Konqueror'));
|
1143 |
+
$aversion = explode('/', $aresult[0]);
|
1144 |
+
if (isset($aversion[1])) {
|
1145 |
+
$this->setVersion($aversion[1]);
|
1146 |
+
$this->setBrowser(self::BROWSER_KONQUEROR);
|
1147 |
+
return true;
|
1148 |
+
}
|
1149 |
+
}
|
1150 |
+
return false;
|
1151 |
+
}
|
1152 |
+
|
1153 |
+
/**
|
1154 |
+
* Determine if the browser is iCab or not (last updated 1.7)
|
1155 |
+
* @return boolean True if the browser is iCab otherwise false
|
1156 |
+
*/
|
1157 |
+
protected function checkBrowserIcab()
|
1158 |
+
{
|
1159 |
+
if (stripos($this->_agent, 'icab') !== false) {
|
1160 |
+
$aversion = explode(' ', stristr(str_replace('/', ' ', $this->_agent), 'icab'));
|
1161 |
+
if (isset($aversion[1])) {
|
1162 |
+
$this->setVersion($aversion[1]);
|
1163 |
+
$this->setBrowser(self::BROWSER_ICAB);
|
1164 |
+
return true;
|
1165 |
+
}
|
1166 |
+
}
|
1167 |
+
return false;
|
1168 |
+
}
|
1169 |
+
|
1170 |
+
/**
|
1171 |
+
* Determine if the browser is OmniWeb or not (last updated 1.7)
|
1172 |
+
* @return boolean True if the browser is OmniWeb otherwise false
|
1173 |
+
*/
|
1174 |
+
protected function checkBrowserOmniWeb()
|
1175 |
+
{
|
1176 |
+
if (stripos($this->_agent, 'omniweb') !== false) {
|
1177 |
+
$aresult = explode('/', stristr($this->_agent, 'omniweb'));
|
1178 |
+
$aversion = explode(' ', isset($aresult[1]) ? $aresult[1] : '');
|
1179 |
+
$this->setVersion($aversion[0]);
|
1180 |
+
$this->setBrowser(self::BROWSER_OMNIWEB);
|
1181 |
+
return true;
|
1182 |
+
}
|
1183 |
+
return false;
|
1184 |
+
}
|
1185 |
+
|
1186 |
+
/**
|
1187 |
+
* Determine if the browser is Phoenix or not (last updated 1.7)
|
1188 |
+
* @return boolean True if the browser is Phoenix otherwise false
|
1189 |
+
*/
|
1190 |
+
protected function checkBrowserPhoenix()
|
1191 |
+
{
|
1192 |
+
if (stripos($this->_agent, 'Phoenix') !== false) {
|
1193 |
+
$aversion = explode('/', stristr($this->_agent, 'Phoenix'));
|
1194 |
+
if (isset($aversion[1])) {
|
1195 |
+
$this->setVersion($aversion[1]);
|
1196 |
+
$this->setBrowser(self::BROWSER_PHOENIX);
|
1197 |
+
return true;
|
1198 |
+
}
|
1199 |
+
}
|
1200 |
+
return false;
|
1201 |
+
}
|
1202 |
+
|
1203 |
+
/**
|
1204 |
+
* Determine if the browser is Firebird or not (last updated 1.7)
|
1205 |
+
* @return boolean True if the browser is Firebird otherwise false
|
1206 |
+
*/
|
1207 |
+
protected function checkBrowserFirebird()
|
1208 |
+
{
|
1209 |
+
if (stripos($this->_agent, 'Firebird') !== false) {
|
1210 |
+
$aversion = explode('/', stristr($this->_agent, 'Firebird'));
|
1211 |
+
if (isset($aversion[1])) {
|
1212 |
+
$this->setVersion($aversion[1]);
|
1213 |
+
$this->setBrowser(self::BROWSER_FIREBIRD);
|
1214 |
+
return true;
|
1215 |
+
}
|
1216 |
+
}
|
1217 |
+
return false;
|
1218 |
+
}
|
1219 |
+
|
1220 |
+
/**
|
1221 |
+
* Determine if the browser is Netscape Navigator 9+ or not (last updated 1.7)
|
1222 |
+
* NOTE: (http://browser.netscape.com/ - Official support ended on March 1st, 2008)
|
1223 |
+
* @return boolean True if the browser is Netscape Navigator 9+ otherwise false
|
1224 |
+
*/
|
1225 |
+
protected function checkBrowserNetscapeNavigator9Plus()
|
1226 |
+
{
|
1227 |
+
if (stripos($this->_agent, 'Firefox') !== false && preg_match('/Navigator\/([^ ]*)/i', $this->_agent, $matches)) {
|
1228 |
+
$this->setVersion($matches[1]);
|
1229 |
+
$this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR);
|
1230 |
+
return true;
|
1231 |
+
} else if (stripos($this->_agent, 'Firefox') === false && preg_match('/Netscape6?\/([^ ]*)/i', $this->_agent, $matches)) {
|
1232 |
+
$this->setVersion($matches[1]);
|
1233 |
+
$this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR);
|
1234 |
+
return true;
|
1235 |
+
}
|
1236 |
+
return false;
|
1237 |
+
}
|
1238 |
+
|
1239 |
+
/**
|
1240 |
+
* Determine if the browser is Shiretoko or not (https://wiki.mozilla.org/Projects/shiretoko) (last updated 1.7)
|
1241 |
+
* @return boolean True if the browser is Shiretoko otherwise false
|
1242 |
+
*/
|
1243 |
+
protected function checkBrowserShiretoko()
|
1244 |
+
{
|
1245 |
+
if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/Shiretoko\/([^ ]*)/i', $this->_agent, $matches)) {
|
1246 |
+
$this->setVersion($matches[1]);
|
1247 |
+
$this->setBrowser(self::BROWSER_SHIRETOKO);
|
1248 |
+
return true;
|
1249 |
+
}
|
1250 |
+
return false;
|
1251 |
+
}
|
1252 |
+
|
1253 |
+
/**
|
1254 |
+
* Determine if the browser is Ice Cat or not (http://en.wikipedia.org/wiki/GNU_IceCat) (last updated 1.7)
|
1255 |
+
* @return boolean True if the browser is Ice Cat otherwise false
|
1256 |
+
*/
|
1257 |
+
protected function checkBrowserIceCat()
|
1258 |
+
{
|
1259 |
+
if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/IceCat\/([^ ]*)/i', $this->_agent, $matches)) {
|
1260 |
+
$this->setVersion($matches[1]);
|
1261 |
+
$this->setBrowser(self::BROWSER_ICECAT);
|
1262 |
+
return true;
|
1263 |
+
}
|
1264 |
+
return false;
|
1265 |
+
}
|
1266 |
+
|
1267 |
+
/**
|
1268 |
+
* Determine if the browser is Nokia or not (last updated 1.7)
|
1269 |
+
* @return boolean True if the browser is Nokia otherwise false
|
1270 |
+
*/
|
1271 |
+
protected function checkBrowserNokia()
|
1272 |
+
{
|
1273 |
+
if (preg_match("/Nokia([^\/]+)\/([^ SP]+)/i", $this->_agent, $matches)) {
|
1274 |
+
$this->setVersion($matches[2]);
|
1275 |
+
if (stripos($this->_agent, 'Series60') !== false || strpos($this->_agent, 'S60') !== false) {
|
1276 |
+
$this->setBrowser(self::BROWSER_NOKIA_S60);
|
1277 |
+
} else {
|
1278 |
+
$this->setBrowser(self::BROWSER_NOKIA);
|
1279 |
+
}
|
1280 |
+
$this->setMobile(true);
|
1281 |
+
return true;
|
1282 |
+
}
|
1283 |
+
return false;
|
1284 |
+
}
|
1285 |
+
|
1286 |
+
/**
|
1287 |
+
* Determine if the browser is Palemoon or not
|
1288 |
+
* @return boolean True if the browser is Palemoon otherwise false
|
1289 |
+
*/
|
1290 |
+
protected function checkBrowserPalemoon()
|
1291 |
+
{
|
1292 |
+
if (stripos($this->_agent, 'safari') === false) {
|
1293 |
+
if (preg_match("/Palemoon[\/ \(]([^ ;\)]+)/i", $this->_agent, $matches)) {
|
1294 |
+
$this->setVersion($matches[1]);
|
1295 |
+
$this->setBrowser(self::BROWSER_PALEMOON);
|
1296 |
+
return true;
|
1297 |
+
} else if (preg_match("/Palemoon([0-9a-zA-Z\.]+)/i", $this->_agent, $matches)) {
|
1298 |
+
$this->setVersion($matches[1]);
|
1299 |
+
$this->setBrowser(self::BROWSER_PALEMOON);
|
1300 |
+
return true;
|
1301 |
+
} else if (preg_match("/Palemoon/i", $this->_agent, $matches)) {
|
1302 |
+
$this->setVersion('');
|
1303 |
+
$this->setBrowser(self::BROWSER_PALEMOON);
|
1304 |
+
return true;
|
1305 |
+
}
|
1306 |
+
}
|
1307 |
+
return false;
|
1308 |
+
}
|
1309 |
+
|
1310 |
+
/**
|
1311 |
+
* Determine if the browser is UCBrowser or not
|
1312 |
+
* @return boolean True if the browser is UCBrowser otherwise false
|
1313 |
+
*/
|
1314 |
+
protected function checkBrowserUCBrowser()
|
1315 |
+
{
|
1316 |
+
if (preg_match('/UC ?Browser\/?([\d\.]+)/', $this->_agent, $matches)) {
|
1317 |
+
if (isset($matches[1])) {
|
1318 |
+
$this->setVersion($matches[1]);
|
1319 |
+
}
|
1320 |
+
if (stripos($this->_agent, 'Mobile') !== false) {
|
1321 |
+
$this->setMobile(true);
|
1322 |
+
} else {
|
1323 |
+
$this->setTablet(true);
|
1324 |
+
}
|
1325 |
+
$this->setBrowser(self::BROWSER_UCBROWSER);
|
1326 |
+
return true;
|
1327 |
+
}
|
1328 |
+
return false;
|
1329 |
+
}
|
1330 |
+
|
1331 |
+
/**
|
1332 |
+
* Determine if the browser is Firefox or not
|
1333 |
+
* @return boolean True if the browser is Firefox otherwise false
|
1334 |
+
*/
|
1335 |
+
protected function checkBrowserFirefox()
|
1336 |
+
{
|
1337 |
+
if (stripos($this->_agent, 'safari') === false) {
|
1338 |
+
if (preg_match("/Firefox[\/ \(]([^ ;\)]+)/i", $this->_agent, $matches)) {
|
1339 |
+
$this->setVersion($matches[1]);
|
1340 |
+
$this->setBrowser(self::BROWSER_FIREFOX);
|
1341 |
+
//Firefox on Android
|
1342 |
+
if (stripos($this->_agent, 'Android') !== false || stripos($this->_agent, 'iPhone') !== false) {
|
1343 |
+
if (stripos($this->_agent, 'Mobile') !== false || stripos($this->_agent, 'Tablet') !== false) {
|
1344 |
+
$this->setMobile(true);
|
1345 |
+
} else {
|
1346 |
+
$this->setTablet(true);
|
1347 |
+
}
|
1348 |
+
}
|
1349 |
+
return true;
|
1350 |
+
} else if (preg_match("/Firefox([0-9a-zA-Z\.]+)/i", $this->_agent, $matches)) {
|
1351 |
+
$this->setVersion($matches[1]);
|
1352 |
+
$this->setBrowser(self::BROWSER_FIREFOX);
|
1353 |
+
return true;
|
1354 |
+
} else if (preg_match("/Firefox$/i", $this->_agent, $matches)) {
|
1355 |
+
$this->setVersion('');
|
1356 |
+
$this->setBrowser(self::BROWSER_FIREFOX);
|
1357 |
+
return true;
|
1358 |
+
}
|
1359 |
+
} elseif (preg_match("/FxiOS[\/ \(]([^ ;\)]+)/i", $this->_agent, $matches)) {
|
1360 |
+
$this->setVersion($matches[1]);
|
1361 |
+
$this->setBrowser(self::BROWSER_FIREFOX);
|
1362 |
+
//Firefox on Android
|
1363 |
+
if (stripos($this->_agent, 'Android') !== false || stripos($this->_agent, 'iPhone') !== false) {
|
1364 |
+
if (stripos($this->_agent, 'Mobile') !== false || stripos($this->_agent, 'Tablet') !== false) {
|
1365 |
+
$this->setMobile(true);
|
1366 |
+
} else {
|
1367 |
+
$this->setTablet(true);
|
1368 |
+
}
|
1369 |
+
}
|
1370 |
+
return true;
|
1371 |
+
}
|
1372 |
+
return false;
|
1373 |
+
}
|
1374 |
+
|
1375 |
+
/**
|
1376 |
+
* Determine if the browser is Firefox or not (last updated 1.7)
|
1377 |
+
* @return boolean True if the browser is Firefox otherwise false
|
1378 |
+
*/
|
1379 |
+
protected function checkBrowserIceweasel()
|
1380 |
+
{
|
1381 |
+
if (stripos($this->_agent, 'Iceweasel') !== false) {
|
1382 |
+
$aresult = explode('/', stristr($this->_agent, 'Iceweasel'));
|
1383 |
+
if (isset($aresult[1])) {
|
1384 |
+
$aversion = explode(' ', $aresult[1]);
|
1385 |
+
$this->setVersion($aversion[0]);
|
1386 |
+
$this->setBrowser(self::BROWSER_ICEWEASEL);
|
1387 |
+
return true;
|
1388 |
+
}
|
1389 |
+
}
|
1390 |
+
return false;
|
1391 |
+
}
|
1392 |
+
|
1393 |
+
/**
|
1394 |
+
* Determine if the browser is Mozilla or not (last updated 1.7)
|
1395 |
+
* @return boolean True if the browser is Mozilla otherwise false
|
1396 |
+
*/
|
1397 |
+
protected function checkBrowserMozilla()
|
1398 |
+
{
|
1399 |
+
if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) {
|
1400 |
+
$aversion = explode(' ', stristr($this->_agent, 'rv:'));
|
1401 |
+
preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent, $aversion);
|
1402 |
+
$this->setVersion(str_replace('rv:', '', $aversion[0]));
|
1403 |
+
$this->setBrowser(self::BROWSER_MOZILLA);
|
1404 |
+
return true;
|
1405 |
+
} else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9]\.[0-9]/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) {
|
1406 |
+
$aversion = explode('', stristr($this->_agent, 'rv:'));
|
1407 |
+
$this->setVersion(str_replace('rv:', '', $aversion[0]));
|
1408 |
+
$this->setBrowser(self::BROWSER_MOZILLA);
|
1409 |
+
return true;
|
1410 |
+
} else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/mozilla\/([^ ]*)/i', $this->_agent, $matches) && stripos($this->_agent, 'netscape') === false) {
|
1411 |
+
$this->setVersion($matches[1]);
|
1412 |
+
$this->setBrowser(self::BROWSER_MOZILLA);
|
1413 |
+
return true;
|
1414 |
+
}
|
1415 |
+
return false;
|
1416 |
+
}
|
1417 |
+
|
1418 |
+
/**
|
1419 |
+
* Determine if the browser is Lynx or not (last updated 1.7)
|
1420 |
+
* @return boolean True if the browser is Lynx otherwise false
|
1421 |
+
*/
|
1422 |
+
protected function checkBrowserLynx()
|
1423 |
+
{
|
1424 |
+
if (stripos($this->_agent, 'lynx') !== false) {
|
1425 |
+
$aresult = explode('/', stristr($this->_agent, 'Lynx'));
|
1426 |
+
$aversion = explode(' ', (isset($aresult[1]) ? $aresult[1] : ''));
|
1427 |
+
$this->setVersion($aversion[0]);
|
1428 |
+
$this->setBrowser(self::BROWSER_LYNX);
|
1429 |
+
return true;
|
1430 |
+
}
|
1431 |
+
return false;
|
1432 |
+
}
|
1433 |
+
|
1434 |
+
/**
|
1435 |
+
* Determine if the browser is Amaya or not (last updated 1.7)
|
1436 |
+
* @return boolean True if the browser is Amaya otherwise false
|
1437 |
+
*/
|
1438 |
+
protected function checkBrowserAmaya()
|
1439 |
+
{
|
1440 |
+
if (stripos($this->_agent, 'amaya') !== false) {
|
1441 |
+
$aresult = explode('/', stristr($this->_agent, 'Amaya'));
|
1442 |
+
if (isset($aresult[1])) {
|
1443 |
+
$aversion = explode(' ', $aresult[1]);
|
1444 |
+
$this->setVersion($aversion[0]);
|
1445 |
+
$this->setBrowser(self::BROWSER_AMAYA);
|
1446 |
+
return true;
|
1447 |
+
}
|
1448 |
+
}
|
1449 |
+
return false;
|
1450 |
+
}
|
1451 |
+
|
1452 |
+
/**
|
1453 |
+
* Determine if the browser is Safari or not (last updated 1.7)
|
1454 |
+
* @return boolean True if the browser is Safari otherwise false
|
1455 |
+
*/
|
1456 |
+
protected function checkBrowserSafari()
|
1457 |
+
{
|
1458 |
+
if (
|
1459 |
+
stripos($this->_agent, 'Safari') !== false
|
1460 |
+
&& stripos($this->_agent, 'iPhone') === false
|
1461 |
+
&& stripos($this->_agent, 'iPod') === false
|
1462 |
+
) {
|
1463 |
+
|
1464 |
+
$aresult = explode('/', stristr($this->_agent, 'Version'));
|
1465 |
+
if (isset($aresult[1])) {
|
1466 |
+
$aversion = explode(' ', $aresult[1]);
|
1467 |
+
$this->setVersion($aversion[0]);
|
1468 |
+
} else {
|
1469 |
+
$this->setVersion(self::VERSION_UNKNOWN);
|
1470 |
+
}
|
1471 |
+
$this->setBrowser(self::BROWSER_SAFARI);
|
1472 |
+
return true;
|
1473 |
+
}
|
1474 |
+
return false;
|
1475 |
+
}
|
1476 |
+
|
1477 |
+
protected function checkBrowserSamsung()
|
1478 |
+
{
|
1479 |
+
if (stripos($this->_agent, 'SamsungBrowser') !== false) {
|
1480 |
+
|
1481 |
+
$aresult = explode('/', stristr($this->_agent, 'SamsungBrowser'));
|
1482 |
+
if (isset($aresult[1])) {
|
1483 |
+
$aversion = explode(' ', $aresult[1]);
|
1484 |
+
$this->setVersion($aversion[0]);
|
1485 |
+
} else {
|
1486 |
+
$this->setVersion(self::VERSION_UNKNOWN);
|
1487 |
+
}
|
1488 |
+
$this->setBrowser(self::BROWSER_SAMSUNG);
|
1489 |
+
return true;
|
1490 |
+
}
|
1491 |
+
return false;
|
1492 |
+
}
|
1493 |
+
|
1494 |
+
protected function checkBrowserSilk()
|
1495 |
+
{
|
1496 |
+
if (stripos($this->_agent, 'Silk') !== false) {
|
1497 |
+
$aresult = explode('/', stristr($this->_agent, 'Silk'));
|
1498 |
+
if (isset($aresult[1])) {
|
1499 |
+
$aversion = explode(' ', $aresult[1]);
|
1500 |
+
$this->setVersion($aversion[0]);
|
1501 |
+
} else {
|
1502 |
+
$this->setVersion(self::VERSION_UNKNOWN);
|
1503 |
+
}
|
1504 |
+
$this->setBrowser(self::BROWSER_SILK);
|
1505 |
+
return true;
|
1506 |
+
}
|
1507 |
+
return false;
|
1508 |
+
}
|
1509 |
+
|
1510 |
+
protected function checkBrowserIframely()
|
1511 |
+
{
|
1512 |
+
if (stripos($this->_agent, 'Iframely') !== false) {
|
1513 |
+
$aresult = explode('/', stristr($this->_agent, 'Iframely'));
|
1514 |
+
if (isset($aresult[1])) {
|
1515 |
+
$aversion = explode(' ', $aresult[1]);
|
1516 |
+
$this->setVersion($aversion[0]);
|
1517 |
+
} else {
|
1518 |
+
$this->setVersion(self::VERSION_UNKNOWN);
|
1519 |
+
}
|
1520 |
+
$this->setBrowser(self::BROWSER_I_FRAME);
|
1521 |
+
return true;
|
1522 |
+
}
|
1523 |
+
return false;
|
1524 |
+
}
|
1525 |
+
|
1526 |
+
protected function checkBrowserCocoa()
|
1527 |
+
{
|
1528 |
+
if (stripos($this->_agent, 'CocoaRestClient') !== false) {
|
1529 |
+
$aresult = explode('/', stristr($this->_agent, 'CocoaRestClient'));
|
1530 |
+
if (isset($aresult[1])) {
|
1531 |
+
$aversion = explode(' ', $aresult[1]);
|
1532 |
+
$this->setVersion($aversion[0]);
|
1533 |
+
} else {
|
1534 |
+
$this->setVersion(self::VERSION_UNKNOWN);
|
1535 |
+
}
|
1536 |
+
$this->setBrowser(self::BROWSER_COCOA);
|
1537 |
+
return true;
|
1538 |
+
}
|
1539 |
+
return false;
|
1540 |
+
}
|
1541 |
+
|
1542 |
+
/**
|
1543 |
+
* Detect if URL is loaded from FacebookExternalHit
|
1544 |
+
* @return boolean True if it detects FacebookExternalHit otherwise false
|
1545 |
+
*/
|
1546 |
+
protected function checkFacebookExternalHit()
|
1547 |
+
{
|
1548 |
+
if (stristr($this->_agent, 'FacebookExternalHit')) {
|
1549 |
+
$this->setRobot(true);
|
1550 |
+
$this->setFacebook(true);
|
1551 |
+
return true;
|
1552 |
+
}
|
1553 |
+
return false;
|
1554 |
+
}
|
1555 |
+
|
1556 |
+
/**
|
1557 |
+
* Detect if URL is being loaded from internal Facebook browser
|
1558 |
+
* @return boolean True if it detects internal Facebook browser otherwise false
|
1559 |
+
*/
|
1560 |
+
protected function checkForFacebookIos()
|
1561 |
+
{
|
1562 |
+
if (stristr($this->_agent, 'FBIOS')) {
|
1563 |
+
$this->setFacebook(true);
|
1564 |
+
return true;
|
1565 |
+
}
|
1566 |
+
return false;
|
1567 |
+
}
|
1568 |
+
|
1569 |
+
/**
|
1570 |
+
* Detect Version for the Safari browser on iOS devices
|
1571 |
+
* @return boolean True if it detects the version correctly otherwise false
|
1572 |
+
*/
|
1573 |
+
protected function getSafariVersionOnIos()
|
1574 |
+
{
|
1575 |
+
$aresult = explode('/', stristr($this->_agent, 'Version'));
|
1576 |
+
if (isset($aresult[1])) {
|
1577 |
+
$aversion = explode(' ', $aresult[1]);
|
1578 |
+
$this->setVersion($aversion[0]);
|
1579 |
+
return true;
|
1580 |
+
}
|
1581 |
+
return false;
|
1582 |
+
}
|
1583 |
+
|
1584 |
+
/**
|
1585 |
+
* Detect Version for the Chrome browser on iOS devices
|
1586 |
+
* @return boolean True if it detects the version correctly otherwise false
|
1587 |
+
*/
|
1588 |
+
protected function getChromeVersionOnIos()
|
1589 |
+
{
|
1590 |
+
$aresult = explode('/', stristr($this->_agent, 'CriOS'));
|
1591 |
+
if (isset($aresult[1])) {
|
1592 |
+
$aversion = explode(' ', $aresult[1]);
|
1593 |
+
$this->setVersion($aversion[0]);
|
1594 |
+
$this->setBrowser(self::BROWSER_CHROME);
|
1595 |
+
return true;
|
1596 |
+
}
|
1597 |
+
return false;
|
1598 |
+
}
|
1599 |
+
|
1600 |
+
/**
|
1601 |
+
* Determine if the browser is iPhone or not (last updated 1.7)
|
1602 |
+
* @return boolean True if the browser is iPhone otherwise false
|
1603 |
+
*/
|
1604 |
+
protected function checkBrowseriPhone()
|
1605 |
+
{
|
1606 |
+
if (stripos($this->_agent, 'iPhone') !== false) {
|
1607 |
+
$this->setVersion(self::VERSION_UNKNOWN);
|
1608 |
+
$this->setBrowser(self::BROWSER_IPHONE);
|
1609 |
+
$this->getSafariVersionOnIos();
|
1610 |
+
$this->getChromeVersionOnIos();
|
1611 |
+
$this->checkForFacebookIos();
|
1612 |
+
$this->setMobile(true);
|
1613 |
+
return true;
|
1614 |
+
}
|
1615 |
+
return false;
|
1616 |
+
}
|
1617 |
+
|
1618 |
+
/**
|
1619 |
+
* Determine if the browser is iPad or not (last updated 1.7)
|
1620 |
+
* @return boolean True if the browser is iPad otherwise false
|
1621 |
+
*/
|
1622 |
+
protected function checkBrowseriPad()
|
1623 |
+
{
|
1624 |
+
if (stripos($this->_agent, 'iPad') !== false) {
|
1625 |
+
$this->setVersion(self::VERSION_UNKNOWN);
|
1626 |
+
$this->setBrowser(self::BROWSER_IPAD);
|
1627 |
+
$this->getSafariVersionOnIos();
|
1628 |
+
$this->getChromeVersionOnIos();
|
1629 |
+
$this->checkForFacebookIos();
|
1630 |
+
$this->setTablet(true);
|
1631 |
+
return true;
|
1632 |
+
}
|
1633 |
+
return false;
|
1634 |
+
}
|
1635 |
+
|
1636 |
+
/**
|
1637 |
+
* Determine if the browser is iPod or not (last updated 1.7)
|
1638 |
+
* @return boolean True if the browser is iPod otherwise false
|
1639 |
+
*/
|
1640 |
+
protected function checkBrowseriPod()
|
1641 |
+
{
|
1642 |
+
if (stripos($this->_agent, 'iPod') !== false) {
|
1643 |
+
$this->setVersion(self::VERSION_UNKNOWN);
|
1644 |
+
$this->setBrowser(self::BROWSER_IPOD);
|
1645 |
+
$this->getSafariVersionOnIos();
|
1646 |
+
$this->getChromeVersionOnIos();
|
1647 |
+
$this->checkForFacebookIos();
|
1648 |
+
$this->setMobile(true);
|
1649 |
+
return true;
|
1650 |
+
}
|
1651 |
+
return false;
|
1652 |
+
}
|
1653 |
+
|
1654 |
+
/**
|
1655 |
+
* Determine if the browser is Android or not (last updated 1.7)
|
1656 |
+
* @return boolean True if the browser is Android otherwise false
|
1657 |
+
*/
|
1658 |
+
protected function checkBrowserAndroid()
|
1659 |
+
{
|
1660 |
+
if (stripos($this->_agent, 'Android') !== false) {
|
1661 |
+
$aresult = explode(' ', stristr($this->_agent, 'Android'));
|
1662 |
+
if (isset($aresult[1])) {
|
1663 |
+
$aversion = explode(' ', $aresult[1]);
|
1664 |
+
$this->setVersion($aversion[0]);
|
1665 |
+
} else {
|
1666 |
+
$this->setVersion(self::VERSION_UNKNOWN);
|
1667 |
+
}
|
1668 |
+
if (stripos($this->_agent, 'Mobile') !== false) {
|
1669 |
+
$this->setMobile(true);
|
1670 |
+
} else {
|
1671 |
+
$this->setTablet(true);
|
1672 |
+
}
|
1673 |
+
$this->setBrowser(self::BROWSER_ANDROID);
|
1674 |
+
return true;
|
1675 |
+
}
|
1676 |
+
return false;
|
1677 |
+
}
|
1678 |
+
|
1679 |
+
/**
|
1680 |
+
* Determine if the browser is Vivaldi
|
1681 |
+
* @return boolean True if the browser is Vivaldi otherwise false
|
1682 |
+
*/
|
1683 |
+
protected function checkBrowserVivaldi()
|
1684 |
+
{
|
1685 |
+
if (stripos($this->_agent, 'Vivaldi') !== false) {
|
1686 |
+
$aresult = explode('/', stristr($this->_agent, 'Vivaldi'));
|
1687 |
+
if (isset($aresult[1])) {
|
1688 |
+
$aversion = explode(' ', $aresult[1]);
|
1689 |
+
$this->setVersion($aversion[0]);
|
1690 |
+
$this->setBrowser(self::BROWSER_VIVALDI);
|
1691 |
+
return true;
|
1692 |
+
}
|
1693 |
+
}
|
1694 |
+
return false;
|
1695 |
+
}
|
1696 |
+
|
1697 |
+
/**
|
1698 |
+
* Determine if the browser is Yandex
|
1699 |
+
* @return boolean True if the browser is Yandex otherwise false
|
1700 |
+
*/
|
1701 |
+
protected function checkBrowserYandex()
|
1702 |
+
{
|
1703 |
+
if (stripos($this->_agent, 'YaBrowser') !== false) {
|
1704 |
+
$aresult = explode('/', stristr($this->_agent, 'YaBrowser'));
|
1705 |
+
if (isset($aresult[1])) {
|
1706 |
+
$aversion = explode(' ', $aresult[1]);
|
1707 |
+
$this->setVersion($aversion[0]);
|
1708 |
+
$this->setBrowser(self::BROWSER_YANDEX);
|
1709 |
+
|
1710 |
+
if (stripos($this->_agent, 'iPad') !== false) {
|
1711 |
+
$this->setTablet(true);
|
1712 |
+
} elseif (stripos($this->_agent, 'Mobile') !== false) {
|
1713 |
+
$this->setMobile(true);
|
1714 |
+
} elseif (stripos($this->_agent, 'Android') !== false) {
|
1715 |
+
$this->setTablet(true);
|
1716 |
+
}
|
1717 |
+
|
1718 |
+
return true;
|
1719 |
+
}
|
1720 |
+
}
|
1721 |
+
|
1722 |
+
return false;
|
1723 |
+
}
|
1724 |
+
|
1725 |
+
/**
|
1726 |
+
* Determine if the browser is a PlayStation
|
1727 |
+
* @return boolean True if the browser is PlayStation otherwise false
|
1728 |
+
*/
|
1729 |
+
protected function checkBrowserPlayStation()
|
1730 |
+
{
|
1731 |
+
if (stripos($this->_agent, 'PlayStation ') !== false) {
|
1732 |
+
$aresult = explode(' ', stristr($this->_agent, 'PlayStation '));
|
1733 |
+
$this->setBrowser(self::BROWSER_PLAYSTATION);
|
1734 |
+
if (isset($aresult[0])) {
|
1735 |
+
$aversion = explode(')', $aresult[2]);
|
1736 |
+
$this->setVersion($aversion[0]);
|
1737 |
+
if (stripos($this->_agent, 'Portable)') !== false || stripos($this->_agent, 'Vita') !== false) {
|
1738 |
+
$this->setMobile(true);
|
1739 |
+
}
|
1740 |
+
return true;
|
1741 |
+
}
|
1742 |
+
}
|
1743 |
+
return false;
|
1744 |
+
}
|
1745 |
+
|
1746 |
+
/**
|
1747 |
+
* Determine if the browser is Wget or not (last updated 1.7)
|
1748 |
+
* @return boolean True if the browser is Wget otherwise false
|
1749 |
+
*/
|
1750 |
+
protected function checkBrowserWget()
|
1751 |
+
{
|
1752 |
+
if (preg_match("!^Wget/([^ ]+)!i", $this->_agent, $aresult)) {
|
1753 |
+
$this->setVersion($aresult[1]);
|
1754 |
+
$this->setBrowser(self::BROWSER_WGET);
|
1755 |
+
return true;
|
1756 |
+
}
|
1757 |
+
return false;
|
1758 |
+
}
|
1759 |
+
/**
|
1760 |
+
* Determine if the browser is cURL or not (last updated 1.7)
|
1761 |
+
* @return boolean True if the browser is cURL otherwise false
|
1762 |
+
*/
|
1763 |
+
protected function checkBrowserCurl()
|
1764 |
+
{
|
1765 |
+
if (strpos($this->_agent, 'curl') === 0) {
|
1766 |
+
$aresult = explode('/', stristr($this->_agent, 'curl'));
|
1767 |
+
if (isset($aresult[1])) {
|
1768 |
+
$aversion = explode(' ', $aresult[1]);
|
1769 |
+
$this->setVersion($aversion[0]);
|
1770 |
+
$this->setBrowser(self::BROWSER_CURL);
|
1771 |
+
return true;
|
1772 |
+
}
|
1773 |
+
}
|
1774 |
+
return false;
|
1775 |
+
}
|
1776 |
+
|
1777 |
+
/**
|
1778 |
+
* Determine the user's platform (last updated 2.0)
|
1779 |
+
*/
|
1780 |
+
protected function checkPlatform()
|
1781 |
+
{
|
1782 |
+
if (stripos($this->_agent, 'windows') !== false) {
|
1783 |
+
$this->_platform = self::PLATFORM_WINDOWS;
|
1784 |
+
} else if (stripos($this->_agent, 'iPad') !== false) {
|
1785 |
+
$this->_platform = self::PLATFORM_IPAD;
|
1786 |
+
} else if (stripos($this->_agent, 'iPod') !== false) {
|
1787 |
+
$this->_platform = self::PLATFORM_IPOD;
|
1788 |
+
} else if (stripos($this->_agent, 'iPhone') !== false) {
|
1789 |
+
$this->_platform = self::PLATFORM_IPHONE;
|
1790 |
+
} elseif (stripos($this->_agent, 'mac') !== false) {
|
1791 |
+
$this->_platform = self::PLATFORM_APPLE;
|
1792 |
+
} elseif (stripos($this->_agent, 'android') !== false) {
|
1793 |
+
$this->_platform = self::PLATFORM_ANDROID;
|
1794 |
+
} elseif (stripos($this->_agent, 'Silk') !== false) {
|
1795 |
+
$this->_platform = self::PLATFORM_FIRE_OS;
|
1796 |
+
} elseif (stripos($this->_agent, 'linux') !== false && stripos($this->_agent, 'SMART-TV') !== false) {
|
1797 |
+
$this->_platform = self::PLATFORM_LINUX . '/' . self::PLATFORM_SMART_TV;
|
1798 |
+
} elseif (stripos($this->_agent, 'linux') !== false) {
|
1799 |
+
$this->_platform = self::PLATFORM_LINUX;
|
1800 |
+
} else if (stripos($this->_agent, 'Nokia') !== false) {
|
1801 |
+
$this->_platform = self::PLATFORM_NOKIA;
|
1802 |
+
} else if (stripos($this->_agent, 'BlackBerry') !== false) {
|
1803 |
+
$this->_platform = self::PLATFORM_BLACKBERRY;
|
1804 |
+
} elseif (stripos($this->_agent, 'FreeBSD') !== false) {
|
1805 |
+
$this->_platform = self::PLATFORM_FREEBSD;
|
1806 |
+
} elseif (stripos($this->_agent, 'OpenBSD') !== false) {
|
1807 |
+
$this->_platform = self::PLATFORM_OPENBSD;
|
1808 |
+
} elseif (stripos($this->_agent, 'NetBSD') !== false) {
|
1809 |
+
$this->_platform = self::PLATFORM_NETBSD;
|
1810 |
+
} elseif (stripos($this->_agent, 'OpenSolaris') !== false) {
|
1811 |
+
$this->_platform = self::PLATFORM_OPENSOLARIS;
|
1812 |
+
} elseif (stripos($this->_agent, 'SunOS') !== false) {
|
1813 |
+
$this->_platform = self::PLATFORM_SUNOS;
|
1814 |
+
} elseif (stripos($this->_agent, 'OS\/2') !== false) {
|
1815 |
+
$this->_platform = self::PLATFORM_OS2;
|
1816 |
+
} elseif (stripos($this->_agent, 'BeOS') !== false) {
|
1817 |
+
$this->_platform = self::PLATFORM_BEOS;
|
1818 |
+
} elseif (stripos($this->_agent, 'win') !== false) {
|
1819 |
+
$this->_platform = self::PLATFORM_WINDOWS;
|
1820 |
+
} elseif (stripos($this->_agent, 'Playstation') !== false) {
|
1821 |
+
$this->_platform = self::PLATFORM_PLAYSTATION;
|
1822 |
+
} elseif (stripos($this->_agent, 'Roku') !== false) {
|
1823 |
+
$this->_platform = self::PLATFORM_ROKU;
|
1824 |
+
} elseif (stripos($this->_agent, 'iOS') !== false) {
|
1825 |
+
$this->_platform = self::PLATFORM_IPHONE . '/' . self::PLATFORM_IPAD;
|
1826 |
+
} elseif (stripos($this->_agent, 'tvOS') !== false) {
|
1827 |
+
$this->_platform = self::PLATFORM_APPLE_TV;
|
1828 |
+
} elseif (stripos($this->_agent, 'curl') !== false) {
|
1829 |
+
$this->_platform = self::PLATFORM_TERMINAL;
|
1830 |
+
} elseif (stripos($this->_agent, 'CrOS') !== false) {
|
1831 |
+
$this->_platform = self::PLATFORM_CHROME_OS;
|
1832 |
+
} elseif (stripos($this->_agent, 'okhttp') !== false) {
|
1833 |
+
$this->_platform = self::PLATFORM_JAVA_ANDROID;
|
1834 |
+
} elseif (stripos($this->_agent, 'PostmanRuntime') !== false) {
|
1835 |
+
$this->_platform = self::PLATFORM_POSTMAN;
|
1836 |
+
} elseif (stripos($this->_agent, 'Iframely') !== false) {
|
1837 |
+
$this->_platform = self::PLATFORM_I_FRAME;
|
1838 |
+
}
|
1839 |
+
}
|
1840 |
+
|
1841 |
+
/**
|
1842 |
+
* Method to get email client.
|
1843 |
+
*
|
1844 |
+
* @return string $email_client Email client name.
|
1845 |
+
*/
|
1846 |
+
public function get_email_client() {
|
1847 |
+
|
1848 |
+
if ( ! $this->_agent ) {
|
1849 |
+
return '';
|
1850 |
+
}
|
1851 |
+
|
1852 |
+
if ( preg_match( '# Thunderbird/([0-9a-z.]+)#i', $this->_agent, $hit ) ) {
|
1853 |
+
$email_client = 'Thunderbird';
|
1854 |
+
} else if ( preg_match( '#Airmail ([0-9a-z.]+)#i', $this->_agent, $hit ) ) {
|
1855 |
+
$email_client = 'Airmail';
|
1856 |
+
} else if ( preg_match( '# ANDROIDGMAILAPP#i', $this->_agent, $hit ) ) {
|
1857 |
+
$email_client = 'Gmail App (Android)';
|
1858 |
+
} else if ( preg_match( '# GoogleImageProxy#i', $this->_agent, $hit ) ) {
|
1859 |
+
$email_client = 'Gmail';
|
1860 |
+
} else if ( preg_match( '#(iPod|iPod touch).*OS ([0-9_]+)#i', $this->_agent, $hit ) ) {
|
1861 |
+
$email_client = 'iPod Touch';
|
1862 |
+
} else if ( preg_match( '#(iPhone|iPad).*OS ([0-9_]+)#i', $this->_agent, $hit ) ) {
|
1863 |
+
$email_client = $hit[1];
|
1864 |
+
} else if ( preg_match( '#(Android|BlackBerry|Windows Phone OS) ([0-9.]+)#i', $this->_agent, $hit ) ) {
|
1865 |
+
$email_client = $hit[1];
|
1866 |
+
} else if ( preg_match( '#(Kindle Fire|Kindle|IEMobile)/([0-9a-z.]+)#i', $this->_agent, $hit ) ) {
|
1867 |
+
$email_client = $hit[1];
|
1868 |
+
} else if ( preg_match( '#(Sparrow|Postbox|Eudora|Lotus-Notes|Shredder|PocoMail|Barca|BarcaPro)/([0-9a-z.]+)#i', $this->_agent, $hit ) ) {
|
1869 |
+
$email_client = str_replace( '-', ' ', $hit[1] );
|
1870 |
+
} else if ( preg_match( '#Outlook-Express/7\.0 \(MSIE ([0-9a-z.]+)#i', $this->_agent, $hit ) ) {
|
1871 |
+
$email_client = 'Windows Live Mail';
|
1872 |
+
} else if ( preg_match( '#Outlook-Express/6\.0#i', $this->_agent, $hit ) ) {
|
1873 |
+
$email_client = 'Outlook Express';
|
1874 |
+
} else if ( preg_match( '#(MSAppHost)/([0-9.]+)#i', $this->_agent, $hit ) ) {
|
1875 |
+
$email_client = 'Windows Live Mail';
|
1876 |
+
} else if ( preg_match( '# (Microsoft Outlook|MSOffice) ([0-9]+)#i', $this->_agent, $hit ) ) {
|
1877 |
+
$email_client = 'Microsoft Outlook';
|
1878 |
+
} else if ( preg_match( '#(Chrome|Safari|Firefox|Opera)/([0-9a-z.]+)#i', $this->_agent, $hit ) ) {
|
1879 |
+
$email_client = 'Web Client (' . $hit[1] . ')';
|
1880 |
+
} else if ( preg_match( '# Trident/.* rv:([0-9a-z.]+)#i', $this->_agent, $hit ) ) {
|
1881 |
+
$email_client = 'Web Client (Internet Explorer ' . (int) $hit[1] . ')';
|
1882 |
+
} else if ( preg_match( '#MSIE ([0-9.]+).* Trident/#i', $this->_agent, $hit ) ) {
|
1883 |
+
$version = (int) $hit[1];
|
1884 |
+
if ( $version <= 7 ) {
|
1885 |
+
//most likly Outlook 2000-2003
|
1886 |
+
$email_client = 'Microsoft Outlook';
|
1887 |
+
} else {
|
1888 |
+
$email_client = 'Web Client (Internet Explorer ' . $version . ')';
|
1889 |
+
}
|
1890 |
+
} else if ( preg_match( '# AppleWebKit/([0-9a-z.]+)#i', $this->_agent, $hit ) ) {
|
1891 |
+
if ( preg_match( '#Mac OS X 10_(\d+)#i', $this->_agent, $versionhit ) ) {
|
1892 |
+
$email_client = 'Apple Mail';
|
1893 |
+
} else {
|
1894 |
+
$email_client = 'Web Client (WebKit based)';
|
1895 |
+
}
|
1896 |
+
} else if ( preg_match( '#Mozilla/([0-9a-z.]+)#i', $this->_agent, $hit ) ) {
|
1897 |
+
$email_client = 'Web Client (Mozilla based)';
|
1898 |
+
} else {
|
1899 |
+
$email_client = 'Web Client ('.$this->_agent.')';
|
1900 |
+
}
|
1901 |
+
|
1902 |
+
return $email_client;
|
1903 |
+
}
|
1904 |
+
}
|
lite/includes/classes/class-es-geolocation.php
ADDED
@@ -0,0 +1,391 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Geolocation class
|
4 |
+
*
|
5 |
+
* Handles geolocation and updating the geolocation database.
|
6 |
+
*
|
7 |
+
* @version 4.5.0
|
8 |
+
*/
|
9 |
+
|
10 |
+
defined( 'ABSPATH' ) || exit;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* ES_Geolocation Class.
|
14 |
+
*/
|
15 |
+
class ES_Geolocation {
|
16 |
+
|
17 |
+
/**
|
18 |
+
* API endpoints for geolocating an IP address
|
19 |
+
*
|
20 |
+
* @var array
|
21 |
+
*/
|
22 |
+
private static $geoip_apis = array(
|
23 |
+
'icegram_api_url' => 'http://api.icegram.com/geo/%s',
|
24 |
+
'ipinfo.io' => 'https://ipinfo.io/%s/json',
|
25 |
+
'ip-api.com' => 'http://ip-api.com/json/%s',
|
26 |
+
);
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Geolocate an IP address.
|
30 |
+
*
|
31 |
+
* @param string $ip_address IP Address.
|
32 |
+
*
|
33 |
+
* @return array
|
34 |
+
*/
|
35 |
+
public static function geolocate_ip( $ip_address = '' ) {
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Get geolocation filter.
|
39 |
+
*
|
40 |
+
* @param string $ip_address IP Address.
|
41 |
+
*
|
42 |
+
* @since 4.5.0
|
43 |
+
*/
|
44 |
+
$geolocation = apply_filters(
|
45 |
+
'ig_es_get_geolocation',
|
46 |
+
array(),
|
47 |
+
$ip_address
|
48 |
+
);
|
49 |
+
|
50 |
+
if ( ! empty( $geolocation ) ) {
|
51 |
+
return $geolocation;
|
52 |
+
}
|
53 |
+
|
54 |
+
if ( ! is_array( $geolocation ) ) {
|
55 |
+
$geolocation = array();
|
56 |
+
}
|
57 |
+
|
58 |
+
$geolocation = self::geolocate_via_api( $ip_address );
|
59 |
+
|
60 |
+
return $geolocation;
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Use APIs to Geolocate the user.
|
65 |
+
*
|
66 |
+
* Geolocation APIs can be added through the use of the ig_es_geolocation_geoip_apis filter.
|
67 |
+
* Provide a name=>value pair for service-slug=>endpoint.
|
68 |
+
*
|
69 |
+
* If APIs are defined, one will be chosen at random to fulfil the request. After completing, the result
|
70 |
+
* will be cached in a transient.
|
71 |
+
*
|
72 |
+
* @param string $ip_address IP address.
|
73 |
+
*
|
74 |
+
* @return array
|
75 |
+
*/
|
76 |
+
private static function geolocate_via_api( $ip_address ) {
|
77 |
+
$geo_ip_data = get_transient( 'ig_es_geoip_' . $ip_address );
|
78 |
+
|
79 |
+
if ( empty( $geo_ip_data ) ) {
|
80 |
+
$geo_ip_data = array();
|
81 |
+
$geoip_services = apply_filters( 'ig_es_geolocation_geoip_apis', self::$geoip_apis );
|
82 |
+
|
83 |
+
if ( empty( $geoip_services ) ) {
|
84 |
+
return $geo_ip_data;
|
85 |
+
}
|
86 |
+
|
87 |
+
$geoip_services_keys = array_keys( $geoip_services );
|
88 |
+
|
89 |
+
shuffle( $geoip_services_keys );
|
90 |
+
|
91 |
+
foreach ( $geoip_services_keys as $service_name ) {
|
92 |
+
$service_endpoint = $geoip_services[ $service_name ];
|
93 |
+
$response = wp_safe_remote_get( sprintf( $service_endpoint, $ip_address ), array( 'timeout' => 2 ) );
|
94 |
+
|
95 |
+
if ( ! is_wp_error( $response ) && $response['body'] ) {
|
96 |
+
switch ( $service_name ) {
|
97 |
+
case 'ipinfo.io':
|
98 |
+
$data = json_decode( $response['body'] );
|
99 |
+
$country_code = isset( $data->country ) ? $data->country : '';
|
100 |
+
break;
|
101 |
+
case 'ip-api.com':
|
102 |
+
$data = json_decode( $response['body'] );
|
103 |
+
$country_code = isset( $data->countryCode ) ? $data->countryCode : ''; // @codingStandardsIgnoreLine
|
104 |
+
break;
|
105 |
+
case 'icegram_api_url':
|
106 |
+
$data = json_decode( $response['body'] );
|
107 |
+
$country_code = isset( $data->country_code ) ? $data->country_code : ''; // @codingStandardsIgnoreLine
|
108 |
+
break;
|
109 |
+
default:
|
110 |
+
$country_code = apply_filters( 'ig_es_geolocation_geoip_response_' . $service_name, '', $response['body'] );
|
111 |
+
break;
|
112 |
+
}
|
113 |
+
|
114 |
+
$country_code = sanitize_text_field( strtoupper( $country_code ) );
|
115 |
+
|
116 |
+
if ( $country_code ) {
|
117 |
+
$geo_ip_data['country_code'] = $country_code;
|
118 |
+
break;
|
119 |
+
}
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
+
if ( ! empty( $geo_ip_data ) ) {
|
124 |
+
set_transient( 'ig_es_geoip_' . $ip_address, $geo_ip_data, WEEK_IN_SECONDS );
|
125 |
+
}
|
126 |
+
}
|
127 |
+
|
128 |
+
return $geo_ip_data;
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Method to get country name based on ISO code.
|
133 |
+
*
|
134 |
+
* @since 4.5.0
|
135 |
+
*/
|
136 |
+
public static function get_countries_iso_code_name_map( $country_code = '' ) {
|
137 |
+
$countries_data = [
|
138 |
+
'AF' => 'Afghanistan',
|
139 |
+
'AX' => 'Aland Islands',
|
140 |
+
'AL' => 'Albania',
|
141 |
+
'DZ' => 'Algeria',
|
142 |
+
'AS' => 'American Samoa',
|
143 |
+
'AD' => 'Andorra',
|
144 |
+
'AO' => 'Angola',
|
145 |
+
'AI' => 'Anguilla',
|
146 |
+
'AQ' => 'Antarctica',
|
147 |
+
'AG' => 'Antigua And Barbuda',
|
148 |
+
'AR' => 'Argentina',
|
149 |
+
'AM' => 'Armenia',
|
150 |
+
'AW' => 'Aruba',
|
151 |
+
'AU' => 'Australia',
|
152 |
+
'AT' => 'Austria',
|
153 |
+
'AZ' => 'Azerbaijan',
|
154 |
+
'BS' => 'Bahamas',
|
155 |
+
'BH' => 'Bahrain',
|
156 |
+
'BD' => 'Bangladesh',
|
157 |
+
'BB' => 'Barbados',
|
158 |
+
'BY' => 'Belarus',
|
159 |
+
'BE' => 'Belgium',
|
160 |
+
'BZ' => 'Belize',
|
161 |
+
'BJ' => 'Benin',
|
162 |
+
'BM' => 'Bermuda',
|
163 |
+
'BT' => 'Bhutan',
|
164 |
+
'BO' => 'Bolivia',
|
165 |
+
'BA' => 'Bosnia And Herzegovina',
|
166 |
+
'BW' => 'Botswana',
|
167 |
+
'BV' => 'Bouvet Island',
|
168 |
+
'BR' => 'Brazil',
|
169 |
+
'IO' => 'British Indian Ocean Territory',
|
170 |
+
'BN' => 'Brunei Darussalam',
|
171 |
+
'BG' => 'Bulgaria',
|
172 |
+
'BF' => 'Burkina Faso',
|
173 |
+
'BI' => 'Burundi',
|
174 |
+
'KH' => 'Cambodia',
|
175 |
+
'CM' => 'Cameroon',
|
176 |
+
'CA' => 'Canada',
|
177 |
+
'CV' => 'Cape Verde',
|
178 |
+
'KY' => 'Cayman Islands',
|
179 |
+
'CF' => 'Central African Republic',
|
180 |
+
'TD' => 'Chad',
|
181 |
+
'CL' => 'Chile',
|
182 |
+
'CN' => 'China',
|
183 |
+
'CX' => 'Christmas Island',
|
184 |
+
'CC' => 'Cocos Island',
|
185 |
+
'CO' => 'Colombia',
|
186 |
+
'KM' => 'Comoros',
|
187 |
+
'CG' => 'Congo',
|
188 |
+
'CD' => 'Congo, Democratic Republic',
|
189 |
+
'CK' => 'Cook Islands',
|
190 |
+
'CR' => 'Costa Rica',
|
191 |
+
'CI' => 'Cote D\'Ivoire',
|
192 |
+
'HR' => 'Croatia',
|
193 |
+
'CU' => 'Cuba',
|
194 |
+
'CY' => 'Cyprus',
|
195 |
+
'CZ' => 'Czech Republic',
|
196 |
+
'DK' => 'Denmark',
|
197 |
+
'DJ' => 'Djibouti',
|
198 |
+
'DM' => 'Dominica',
|
199 |
+
'DO' => 'Dominican Republic',
|
200 |
+
'EC' => 'Ecuador',
|
201 |
+
'EG' => 'Egypt',
|
202 |
+
'SV' => 'El Salvador',
|
203 |
+
'GQ' => 'Equatorial Guinea',
|
204 |
+
'ER' => 'Eritrea',
|
205 |
+
'EE' => 'Estonia',
|
206 |
+
'ET' => 'Ethiopia',
|
207 |
+
'FK' => 'Falkland Islands',
|
208 |
+
'FO' => 'Faroe Islands',
|
209 |
+
'FJ' => 'Fiji',
|
210 |
+
'FI' => 'Finland',
|
211 |
+
'FR' => 'France',
|
212 |
+
'GF' => 'French Guiana',
|
213 |
+
'PF' => 'French Polynesia',
|
214 |
+
'TF' => 'French Southern Territories',
|
215 |
+
'GA' => 'Gabon',
|
216 |
+
'GM' => 'Gambia',
|
217 |
+
'GE' => 'Georgia',
|
218 |
+
'DE' => 'Germany',
|
219 |
+
'GH' => 'Ghana',
|
220 |
+
'GI' => 'Gibraltar',
|
221 |
+
'GR' => 'Greece',
|
222 |
+
'GL' => 'Greenland',
|
223 |
+
'GD' => 'Grenada',
|
224 |
+
'GP' => 'Guadeloupe',
|
225 |
+
'GU' => 'Guam',
|
226 |
+
'GT' => 'Guatemala',
|
227 |
+
'GG' => 'Guernsey',
|
228 |
+
'GN' => 'Guinea',
|
229 |
+
'GW' => 'Guinea-Bissau',
|
230 |
+
'GY' => 'Guyana',
|
231 |
+
'HT' => 'Haiti',
|
232 |
+
'HM' => 'Heard Island & Mcdonald Islands',
|
233 |
+
'VA' => 'Holy See (Vatican City State)',
|
234 |
+
'HN' => 'Honduras',
|
235 |
+
'HK' => 'Hong Kong',
|
236 |
+
'HU' => 'Hungary',
|
237 |
+
'IS' => 'Iceland',
|
238 |
+
'IN' => 'India',
|
239 |
+
'ID' => 'Indonesia',
|
240 |
+
'IR' => 'Iran, Islamic Republic Of',
|
241 |
+
'IQ' => 'Iraq',
|
242 |
+
'IE' => 'Ireland',
|
243 |
+
'IM' => 'Isle Of Man',
|
244 |
+
'IL' => 'Israel',
|
245 |
+
'IT' => 'Italy',
|
246 |
+
'JM' => 'Jamaica',
|
247 |
+
'JP' => 'Japan',
|
248 |
+
'JE' => 'Jersey',
|
249 |
+
'JO' => 'Jordan',
|
250 |
+
'KZ' => 'Kazakhstan',
|
251 |
+
'KE' => 'Kenya',
|
252 |
+
'KI' => 'Kiribati',
|
253 |
+
'KR' => 'Korea',
|
254 |
+
'KW' => 'Kuwait',
|
255 |
+
'KG' => 'Kyrgyzstan',
|
256 |
+
'LA' => 'Lao People\'s Democratic Republic',
|
257 |
+
'LV' => 'Latvia',
|
258 |
+
'LB' => 'Lebanon',
|
259 |
+
'LS' => 'Lesotho',
|
260 |
+
'LR' => 'Liberia',
|
261 |
+
'LY' => 'Libyan Arab Jamahiriya',
|
262 |
+
'LI' => 'Liechtenstein',
|
263 |
+
'LT' => 'Lithuania',
|
264 |
+
'LU' => 'Luxembourg',
|
265 |
+
'MO' => 'Macao',
|
266 |
+
'MK' => 'Macedonia',
|
267 |
+
'MG' => 'Madagascar',
|
268 |
+
'MW' => 'Malawi',
|
269 |
+
'MY' => 'Malaysia',
|
270 |
+
'MV' => 'Maldives',
|
271 |
+
'ML' => 'Mali',
|
272 |
+
'MT' => 'Malta',
|
273 |
+
'MH' => 'Marshall Islands',
|
274 |
+
'MQ' => 'Martinique',
|
275 |
+
'MR' => 'Mauritania',
|
276 |
+
'MU' => 'Mauritius',
|
277 |
+
'YT' => 'Mayotte',
|
278 |
+
'MX' => 'Mexico',
|
279 |
+
'FM' => 'Micronesia',
|
280 |
+
'MD' => 'Moldova',
|
281 |
+
'MC' => 'Monaco',
|
282 |
+
'MN' => 'Mongolia',
|
283 |
+
'ME' => 'Montenegro',
|
284 |
+
'MS' => 'Montserrat',
|
285 |
+
'MA' => 'Morocco',
|
286 |
+
'MZ' => 'Mozambique',
|
287 |
+
'MM' => 'Myanmar',
|
288 |
+
'NA' => 'Namibia',
|
289 |
+
'NR' => 'Nauru',
|
290 |
+
'NP' => 'Nepal',
|
291 |
+
'NL' => 'Netherlands',
|
292 |
+
'AN' => 'Netherlands',
|
293 |
+
'NC' => 'New Caledonia',
|
294 |
+
'NZ' => 'New Zealand',
|
295 |
+
'NI' => 'Nicaragua',
|
296 |
+
'NE' => 'Niger',
|
297 |
+
'NG' => 'Nigeria',
|
298 |
+
'NU' => 'Niue',
|
299 |
+
'NF' => 'Norfolk Island',
|
300 |
+
'MP' => 'Northern Mariana Islands',
|
301 |
+
'NO' => 'Norway',
|
302 |
+
'OM' => 'Oman',
|
303 |
+
'PK' => 'Pakistan',
|
304 |
+
'PW' => 'Palau',
|
305 |
+
'PS' => 'Palestine',
|
306 |
+
'PA' => 'Panama',
|
307 |
+
'PG' => 'Papua New Guinea',
|
308 |
+
'PY' => 'Paraguay',
|
309 |
+
'PE' => 'Peru',
|
310 |
+
'PH' => 'Philippines',
|
311 |
+
'PN' => 'Pitcairn',
|
312 |
+
'PL' => 'Poland',
|
313 |
+
'PT' => 'Portugal',
|
314 |
+
'PR' => 'Puerto Rico',
|
315 |
+
'QA' => 'Qatar',
|
316 |
+
'RE' => 'Reunion',
|
317 |
+
'RO' => 'Romania',
|
318 |
+
'RU' => 'Russia',
|
319 |
+
'RW' => 'Rwanda',
|
320 |
+
'BL' => 'Saint Barthelemy',
|
321 |
+
'SH' => 'Saint Helena',
|
322 |
+
'KN' => 'Saint Kitts And Nevis',
|
323 |
+
'LC' => 'Saint Lucia',
|
324 |
+
'MF' => 'Saint Martin',
|
325 |
+
'PM' => 'Saint Pierre And Miquelon',
|
326 |
+
'VC' => 'Saint Vincent And Grenadines',
|
327 |
+
'WS' => 'Samoa',
|
328 |
+
'SM' => 'San Marino',
|
329 |
+
'ST' => 'Sao Tome And Principe',
|
330 |
+
'SA' => 'Saudi Arabia',
|
331 |
+
'SN' => 'Senegal',
|
332 |
+
'RS' => 'Serbia',
|
333 |
+
'SC' => 'Seychelles',
|
334 |
+
'SL' => 'Sierra Leone',
|
335 |
+
'SG' => 'Singapore',
|
336 |
+
'SK' => 'Slovakia',
|
337 |
+
'SI' => 'Slovenia',
|
338 |
+
'SB' => 'Solomon Islands',
|
339 |
+
'SO' => 'Somalia',
|
340 |
+
'ZA' => 'South Africa',
|
341 |
+
'GS' => 'South Georgia And Sandwich Isl.',
|
342 |
+
'ES' => 'Spain',
|
343 |
+
'LK' => 'Sri Lanka',
|
344 |
+
'SD' => 'Sudan',
|
345 |
+
'SR' => 'Suriname',
|
346 |
+
'SJ' => 'Svalbard And Jan Mayen',
|
347 |
+
'SZ' => 'Swaziland',
|
348 |
+
'SE' => 'Sweden',
|
349 |
+
'CH' => 'Switzerland',
|
350 |
+
'SY' => 'Syrian Arab Republic',
|
351 |
+
'TW' => 'Taiwan',
|
352 |
+
'TJ' => 'Tajikistan',
|
353 |
+
'TZ' => 'Tanzania',
|
354 |
+
'TH' => 'Thailand',
|
355 |
+
'TL' => 'Timor-Leste',
|
356 |
+
'TG' => 'Togo',
|
357 |
+
'TK' => 'Tokelau',
|
358 |
+
'TO' => 'Tonga',
|
359 |
+
'TT' => 'Trinidad And Tobago',
|
360 |
+
'TN' => 'Tunisia',
|
361 |
+
'TR' => 'Turkey',
|
362 |
+
'TM' => 'Turkmenistan',
|
363 |
+
'TC' => 'Turks And Caicos Islands',
|
364 |
+
'TV' => 'Tuvalu',
|
365 |
+
'UG' => 'Uganda',
|
366 |
+
'UA' => 'Ukraine',
|
367 |
+
'AE' => 'United Arab Emirates',
|
368 |
+
'GB' => 'United Kingdom',
|
369 |
+
'US' => 'United States',
|
370 |
+
'UM' => 'United States Outlying Islands',
|
371 |
+
'UY' => 'Uruguay',
|
372 |
+
'UZ' => 'Uzbekistan',
|
373 |
+
'VU' => 'Vanuatu',
|
374 |
+
'VE' => 'Venezuela',
|
375 |
+
'VN' => 'Viet Nam',
|
376 |
+
'VG' => 'Virgin Islands, British',
|
377 |
+
'VI' => 'Virgin Islands, U.S.',
|
378 |
+
'WF' => 'Wallis And Futuna',
|
379 |
+
'EH' => 'Western Sahara',
|
380 |
+
'YE' => 'Yemen',
|
381 |
+
'ZM' => 'Zambia',
|
382 |
+
'ZW' => 'Zimbabwe',
|
383 |
+
];
|
384 |
+
|
385 |
+
if ( isset( $countries_data[ $country_code ] ) ) {
|
386 |
+
return $countries_data[ $country_code ];
|
387 |
+
} else {
|
388 |
+
return '';
|
389 |
+
}
|
390 |
+
}
|
391 |
+
}
|
lite/includes/classes/class-es-mailer.php
CHANGED
@@ -723,7 +723,9 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
|
|
723 |
$unsubscribe_message = $this->get_unsubscribe_text();
|
724 |
|
725 |
// Can Track Email Open? Add pixel.
|
726 |
-
$email_tracking_image
|
|
|
|
|
727 |
|
728 |
$message->body = $message->body . $unsubscribe_message . $email_tracking_image;
|
729 |
|
723 |
$unsubscribe_message = $this->get_unsubscribe_text();
|
724 |
|
725 |
// Can Track Email Open? Add pixel.
|
726 |
+
$email_tracking_image = $this->get_tracking_pixel();
|
727 |
+
|
728 |
+
$email_tracking_user_device = apply_filters( 'ig_es_tracking_user_device', '' );
|
729 |
|
730 |
$message->body = $message->body . $unsubscribe_message . $email_tracking_image;
|
731 |
|
lite/includes/classes/class-es-reports-table.php
CHANGED
@@ -5,6 +5,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
5 |
exit;
|
6 |
}
|
7 |
|
|
|
8 |
if ( ! class_exists( 'WP_List_Table' ) ) {
|
9 |
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
|
10 |
}
|
@@ -33,8 +34,8 @@ class ES_Reports_Table extends WP_List_Table {
|
|
33 |
} else {
|
34 |
?>
|
35 |
|
36 |
-
|
37 |
-
|
38 |
<?php
|
39 |
$emails_to_be_sent = ES_DB_Sending_Queue::get_total_emails_to_be_sent();
|
40 |
if ( $emails_to_be_sent > 0 ) {
|
@@ -46,24 +47,24 @@ class ES_Reports_Table extends WP_List_Table {
|
|
46 |
}
|
47 |
?>
|
48 |
|
49 |
-
|
50 |
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
<?php
|
58 |
$this->prepare_items();
|
59 |
$this->display(); ?>
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
|
68 |
<?php
|
69 |
}
|
@@ -85,50 +86,66 @@ class ES_Reports_Table extends WP_List_Table {
|
|
85 |
public function prepare_header_footer_row() {
|
86 |
|
87 |
?>
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
</tr>
|
97 |
|
98 |
<?php
|
99 |
}
|
100 |
|
101 |
public function view_list( $id ) {
|
102 |
-
global $wpdb;
|
103 |
-
|
104 |
$emails = ES_DB_Sending_Queue::get_emails_by_hash( $id );
|
105 |
$email_viewed_count = ES_DB_Sending_Queue::get_viewed_count_by_hash( $id );
|
106 |
$total_email_sent = ES_DB_Sending_Queue::get_total_email_count_by_hash( $id );
|
107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
?>
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
<?php echo $this->prepare_header_footer_row(); ?>
|
118 |
-
|
119 |
-
|
120 |
<?php echo $this->prepare_body( $emails ); ?>
|
121 |
-
|
122 |
-
|
123 |
<?php echo $this->prepare_header_footer_row(); ?>
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
<?php
|
131 |
-
|
132 |
//$wpdb->update( EMAIL_SUBSCRIBERS_STATS_TABLE, array( 'viewdate' => date( 'Y-m-d H:i:s' ) ), array( 'viewdate' => $id ) );
|
133 |
|
134 |
}
|
@@ -151,26 +168,26 @@ class ES_Reports_Table extends WP_List_Table {
|
|
151 |
|
152 |
?>
|
153 |
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
<?php
|
164 |
-
$i ++;
|
165 |
-
}
|
166 |
|
|
|
|
|
167 |
}
|
168 |
|
|
|
|
|
169 |
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
|
175 |
/**
|
176 |
* Render a column when no column specific method exist.
|
@@ -186,41 +203,41 @@ class ES_Reports_Table extends WP_List_Table {
|
|
186 |
switch ( $column_name ) {
|
187 |
case 'start_at':
|
188 |
case 'finish_at':
|
189 |
-
|
190 |
case 'type':
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
|
199 |
-
|
200 |
|
201 |
-
|
202 |
case 'subject':
|
203 |
// case 'type':
|
204 |
// return ucwords($item[ $column_name ]);
|
205 |
case 'count':
|
206 |
-
|
207 |
default:
|
208 |
return print_r( $item, true ); //Show the whole array for troubleshooting purposes
|
209 |
-
}
|
210 |
}
|
|
|
211 |
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
|
221 |
-
|
222 |
-
}
|
223 |
}
|
|
|
224 |
|
225 |
/**
|
226 |
* Render the bulk edit checkbox
|
@@ -383,18 +400,18 @@ class ES_Reports_Table extends WP_List_Table {
|
|
383 |
$where_columns = array();
|
384 |
$where_args = array();
|
385 |
|
386 |
-
if( ! empty( $campaign_id ) && is_numeric( $campaign_id ) ) {
|
387 |
$where_columns[] = "campaign_id = %d";
|
388 |
-
$where_args[]
|
389 |
}
|
390 |
|
391 |
$where_query = '';
|
392 |
-
if( ! empty( $where_columns ) ) {
|
393 |
$where_query = implode( " AND ", $where_columns );
|
394 |
$where_query = $wpdb->prepare( $where_query, $where_args );
|
395 |
}
|
396 |
|
397 |
-
if( ! empty( $where_query ) ) {
|
398 |
$sql .= ' WHERE ' . $where_query;
|
399 |
}
|
400 |
|
@@ -495,15 +512,15 @@ class ES_Reports_Table extends WP_List_Table {
|
|
495 |
public function preview_email( $report_id ) {
|
496 |
ob_start();
|
497 |
?>
|
498 |
-
|
499 |
-
|
500 |
<?php echo __( 'Preview Email', 'email-subscribers' ); ?>
|
501 |
-
|
502 |
-
|
503 |
<?php echo __( 'This is how the email you sent may look. <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.', 'email-subscribers' ); ?>
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
<?php
|
508 |
$preview = array();
|
509 |
$preview = ES_DB_Mailing_Queue::get_email_by_id( $report_id );
|
@@ -519,9 +536,9 @@ class ES_Reports_Table extends WP_List_Table {
|
|
519 |
|
520 |
echo stripslashes( $preview['body'] );
|
521 |
?>
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
<?php
|
526 |
$html = ob_get_clean();
|
527 |
|
5 |
exit;
|
6 |
}
|
7 |
|
8 |
+
|
9 |
if ( ! class_exists( 'WP_List_Table' ) ) {
|
10 |
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
|
11 |
}
|
34 |
} else {
|
35 |
?>
|
36 |
|
37 |
+
<div class="wrap">
|
38 |
+
<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>
|
39 |
<?php
|
40 |
$emails_to_be_sent = ES_DB_Sending_Queue::get_total_emails_to_be_sent();
|
41 |
if ( $emails_to_be_sent > 0 ) {
|
47 |
}
|
48 |
?>
|
49 |
|
50 |
+
<span class="ig-es-process-queue"><?php echo $content; ?></span>
|
51 |
|
52 |
|
53 |
+
<div id="poststuff" class="es-items-lists">
|
54 |
+
<div id="post-body" class="metabox-holder column-1">
|
55 |
+
<div id="post-body-content">
|
56 |
+
<div class="meta-box-sortables ui-sortable">
|
57 |
+
<form method="post">
|
58 |
<?php
|
59 |
$this->prepare_items();
|
60 |
$this->display(); ?>
|
61 |
+
</form>
|
62 |
+
</div>
|
63 |
+
</div>
|
64 |
+
</div>
|
65 |
+
<br class="clear">
|
66 |
+
</div>
|
67 |
+
</div>
|
68 |
|
69 |
<?php
|
70 |
}
|
86 |
public function prepare_header_footer_row() {
|
87 |
|
88 |
?>
|
89 |
+
<tr>
|
90 |
+
<th width="8%" class=" py-3 pl-4 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php _e( 'Sr No', 'email-subscribers' ); ?></th>
|
91 |
+
<th width="24%" class=" py-3 pl-4 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php _e( 'Email', 'email-subscribers' ); ?></th>
|
92 |
+
<th width="12%" class=" py-3 pl-6 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php _e( 'Status', 'email-subscribers' ); ?></th>
|
93 |
+
<th width="22%" class="py-3 pl-2 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php _e( 'Sent Date', 'email-subscribers' ); ?></th>
|
94 |
+
<th width="17%" class="py-3 pl-6 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php _e( 'Viewed Status', 'email-subscribers' ); ?></th>
|
95 |
+
<th width="22%" class=" py-3 pl-6 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php _e( 'Viewed Date', 'email-subscribers' ); ?></th>
|
96 |
+
</tr>
|
|
|
97 |
|
98 |
<?php
|
99 |
}
|
100 |
|
101 |
public function view_list( $id ) {
|
|
|
|
|
102 |
$emails = ES_DB_Sending_Queue::get_emails_by_hash( $id );
|
103 |
$email_viewed_count = ES_DB_Sending_Queue::get_viewed_count_by_hash( $id );
|
104 |
$total_email_sent = ES_DB_Sending_Queue::get_total_email_count_by_hash( $id );
|
105 |
|
106 |
+
$insight = ig_es_get_request_data( 'insight', '' );
|
107 |
+
$_wpnonce = ig_es_get_request_data( '_wpnonce', '' );
|
108 |
+
|
109 |
+
if ( ES()->is_pro() || $insight ) {
|
110 |
+
do_action( 'ig_es_view_report_data', $id, $emails );
|
111 |
+
}
|
112 |
?>
|
113 |
+
<div class="wrap">
|
114 |
+
<div class="mt-6 mb-2 max-w-7xl">
|
115 |
+
<div class="pt-3">
|
116 |
+
<span class="text-left text-lg font-medium leading-7 tracking-wide text-gray-600"><?php _e( 'View Activity ', 'email-subscribers' ); ?></span>
|
117 |
+
|
118 |
+
<?php if ( ! ES()->is_pro() ) { ?>
|
119 |
+
<a href="?page=es_reports&action=view&list=<?php echo $id; ?>&_wpnonce=<?php echo $_wpnonce; ?>&insight=true" class="float-right ig-es-title-button px-2 py-2 mx-2 ig-es-imp-button cursor-pointer"><?php _e( 'Campaign Analytics', 'email-subscribers' ); ?></a>
|
120 |
+
<?php } ?>
|
121 |
+
</div>
|
122 |
+
</div>
|
123 |
+
|
124 |
+
<div class="mt-2 mb-2 block">
|
125 |
+
<span class="pt-3 pb-4 leading-5 tracking-wide text-gray-600"><?php echo 'Viewed ' . $email_viewed_count . '/' . $total_email_sent; ?>
|
126 |
+
</span>
|
127 |
+
</div>
|
128 |
+
|
129 |
+
<div class="mb-2 max-w-7xl flex">
|
130 |
+
<div class="flex w-full bg-white shadow rounded-md break-all">
|
131 |
+
|
132 |
+
<form name="frm_es_display" method="post">
|
133 |
+
<table class="w-full table-fixed">
|
134 |
+
<thead>
|
135 |
<?php echo $this->prepare_header_footer_row(); ?>
|
136 |
+
</thead>
|
137 |
+
<tbody>
|
138 |
<?php echo $this->prepare_body( $emails ); ?>
|
139 |
+
</tbody>
|
140 |
+
<tfoot>
|
141 |
<?php echo $this->prepare_header_footer_row(); ?>
|
142 |
+
</tfoot>
|
143 |
+
</table>
|
144 |
+
</form>
|
145 |
+
</div>
|
146 |
+
</div>
|
147 |
+
</div>
|
148 |
<?php
|
|
|
149 |
//$wpdb->update( EMAIL_SUBSCRIBERS_STATS_TABLE, array( 'viewdate' => date( 'Y-m-d H:i:s' ) ), array( 'viewdate' => $id ) );
|
150 |
|
151 |
}
|
168 |
|
169 |
?>
|
170 |
|
171 |
+
<tr>
|
172 |
+
<td class="pl-6 py-2 border-b border-gray-200 text-sm leading-5 text-gray-500"><?php echo $i; ?></td>
|
173 |
+
<td class="pl-4 py-2 border-b border-gray-200 text-sm leading-5 text-gray-600"><?php echo $email_id; ?></td>
|
174 |
+
<td class="pl-6 pr-2 py-2 border-b border-gray-200 text-sm leading-5 text-gray-500"><span style="color:#03a025;font-weight:bold;"><?php echo $status; ?></span></td>
|
175 |
+
<td class="pl-2 pr-2 py-2 border-b border-gray-200 text-sm leading-5 text-gray-500"><?php echo ig_es_format_date_time( $sent_at ); ?></td>
|
176 |
+
<td class="pl-6 pr-2 py-2 border-b border-gray-200 text-sm leading-5 text-gray-600"><span><?php echo ( ! empty( $opened ) && $opened == 1 ) ? _e( 'Viewed', 'email-subscribers' ) : '<i title="' . __( 'Not yet viewed', 'email-subscribers' ) . '" class="dashicons dashicons-es dashicons-minus">' ?></span></td>
|
177 |
+
<td class="pl-6 pr-1 py-2 border-b border-gray-200 text-sm leading-5 text-gray-500"><?php echo ig_es_format_date_time( $opened_at ); ?></td>
|
178 |
+
</tr>
|
|
|
|
|
|
|
|
|
179 |
|
180 |
+
<?php
|
181 |
+
$i ++;
|
182 |
}
|
183 |
|
184 |
+
}
|
185 |
+
|
186 |
|
187 |
+
/** Text displayed when no list data is available */
|
188 |
+
public function no_items() {
|
189 |
+
_e( 'No Reports avaliable.', 'email-subscribers' );
|
190 |
+
}
|
191 |
|
192 |
/**
|
193 |
* Render a column when no column specific method exist.
|
203 |
switch ( $column_name ) {
|
204 |
case 'start_at':
|
205 |
case 'finish_at':
|
206 |
+
return ig_es_format_date_time( $item[ $column_name ] );
|
207 |
case 'type':
|
208 |
+
if ( empty( $item['campaign_id'] ) ) {
|
209 |
+
$type = __( 'Post Notification', 'email-subscribers' );
|
210 |
+
} else {
|
211 |
+
$type = ES()->campaigns_db->get_campaign_type_by_id( $item['campaign_id'] );
|
212 |
+
$type = strtolower( $type );
|
213 |
+
$type = ( 'newsletter' === $type ) ? __( 'Broadcast', 'email-subscribers' ) : $type;
|
214 |
+
}
|
215 |
|
216 |
+
$type = ucwords( str_replace( '_', ' ', $type ) );
|
217 |
|
218 |
+
return $type;
|
219 |
case 'subject':
|
220 |
// case 'type':
|
221 |
// return ucwords($item[ $column_name ]);
|
222 |
case 'count':
|
223 |
+
return $item[ $column_name ];
|
224 |
default:
|
225 |
return print_r( $item, true ); //Show the whole array for troubleshooting purposes
|
|
|
226 |
}
|
227 |
+
}
|
228 |
|
229 |
+
function column_status( $item ) {
|
230 |
+
if ( $item['status'] == 'Sent' ) {
|
231 |
+
return __( 'Completed', 'email-subscribers' );
|
232 |
+
} else {
|
233 |
|
234 |
+
$actions = array(
|
235 |
+
'send_now' => $this->prepare_send_now_url( $item )
|
236 |
+
);
|
237 |
|
238 |
+
return $item['status'] . $this->row_actions( $actions, true );
|
|
|
239 |
}
|
240 |
+
}
|
241 |
|
242 |
/**
|
243 |
* Render the bulk edit checkbox
|
400 |
$where_columns = array();
|
401 |
$where_args = array();
|
402 |
|
403 |
+
if ( ! empty( $campaign_id ) && is_numeric( $campaign_id ) ) {
|
404 |
$where_columns[] = "campaign_id = %d";
|
405 |
+
$where_args[] = $campaign_id;
|
406 |
}
|
407 |
|
408 |
$where_query = '';
|
409 |
+
if ( ! empty( $where_columns ) ) {
|
410 |
$where_query = implode( " AND ", $where_columns );
|
411 |
$where_query = $wpdb->prepare( $where_query, $where_args );
|
412 |
}
|
413 |
|
414 |
+
if ( ! empty( $where_query ) ) {
|
415 |
$sql .= ' WHERE ' . $where_query;
|
416 |
}
|
417 |
|
512 |
public function preview_email( $report_id ) {
|
513 |
ob_start();
|
514 |
?>
|
515 |
+
<div class="wrap">
|
516 |
+
<h2 style="margin-bottom:1em;">
|
517 |
<?php echo __( 'Preview Email', 'email-subscribers' ); ?>
|
518 |
+
</h2>
|
519 |
+
<p>
|
520 |
<?php echo __( 'This is how the email you sent may look. <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.', 'email-subscribers' ); ?>
|
521 |
+
</p>
|
522 |
+
<div class="tool-box">
|
523 |
+
<div style="padding:15px;background-color:#FFFFFF;">
|
524 |
<?php
|
525 |
$preview = array();
|
526 |
$preview = ES_DB_Mailing_Queue::get_email_by_id( $report_id );
|
536 |
|
537 |
echo stripslashes( $preview['body'] );
|
538 |
?>
|
539 |
+
</div>
|
540 |
+
</div>
|
541 |
+
</div>
|
542 |
<?php
|
543 |
$html = ob_get_clean();
|
544 |
|
lite/includes/db/class-es-db-actions.php
CHANGED
@@ -47,15 +47,21 @@ class ES_DB_Actions extends ES_DB {
|
|
47 |
*/
|
48 |
public function get_columns() {
|
49 |
return array(
|
50 |
-
'contact_id'
|
51 |
-
'message_id'
|
52 |
-
'campaign_id'
|
53 |
-
'type'
|
54 |
-
'count'
|
55 |
-
'link_id'
|
56 |
-
'list_id'
|
57 |
-
'
|
58 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
);
|
60 |
}
|
61 |
|
@@ -66,15 +72,21 @@ class ES_DB_Actions extends ES_DB {
|
|
66 |
*/
|
67 |
public function get_column_defaults() {
|
68 |
return array(
|
69 |
-
'contact_id'
|
70 |
-
'message_id'
|
71 |
-
'campaign_id'
|
72 |
-
'type'
|
73 |
-
'count'
|
74 |
-
'link_id'
|
75 |
-
'list_id'
|
76 |
-
'
|
77 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
);
|
79 |
}
|
80 |
|
@@ -105,7 +117,7 @@ class ES_DB_Actions extends ES_DB {
|
|
105 |
|
106 |
$sql .= " VALUES ($args_values_str) ON DUPLICATE KEY UPDATE";
|
107 |
|
108 |
-
$sql .= ( $explicit ) ? $wpdb->prepare( " created_at = created_at, count = count+1, updated_at = %d", ig_es_get_current_gmt_timestamp() ) : ' count = values(count)';
|
109 |
|
110 |
$result = $wpdb->query( $sql );
|
111 |
|
@@ -245,4 +257,27 @@ class ES_DB_Actions extends ES_DB {
|
|
245 |
|
246 |
return $wpdb->get_var( $wpdb->prepare( $query, $args ) );
|
247 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
}
|
47 |
*/
|
48 |
public function get_columns() {
|
49 |
return array(
|
50 |
+
'contact_id' => '%d',
|
51 |
+
'message_id' => '%d',
|
52 |
+
'campaign_id' => '%d',
|
53 |
+
'type' => '%d',
|
54 |
+
'count' => '%d',
|
55 |
+
'link_id' => '%d',
|
56 |
+
'list_id' => '%d',
|
57 |
+
'ip' => '%s',
|
58 |
+
'country' => '%s',
|
59 |
+
'device' => '%s',
|
60 |
+
'browser' => '%s',
|
61 |
+
'email_client' => '%s',
|
62 |
+
'os' => '%s',
|
63 |
+
'created_at' => '%d',
|
64 |
+
'updated_at' => '%d',
|
65 |
);
|
66 |
}
|
67 |
|
72 |
*/
|
73 |
public function get_column_defaults() {
|
74 |
return array(
|
75 |
+
'contact_id' => null,
|
76 |
+
'message_id' => null,
|
77 |
+
'campaign_id' => null,
|
78 |
+
'type' => 0,
|
79 |
+
'count' => 0,
|
80 |
+
'link_id' => 0,
|
81 |
+
'list_id' => 0,
|
82 |
+
'ip' => '',
|
83 |
+
'country' => '',
|
84 |
+
'device' => '',
|
85 |
+
'browser' => '',
|
86 |
+
'email_client' => '',
|
87 |
+
'os' => '',
|
88 |
+
'created_at' => ig_es_get_current_gmt_timestamp(),
|
89 |
+
'updated_at' => ig_es_get_current_gmt_timestamp()
|
90 |
);
|
91 |
}
|
92 |
|
117 |
|
118 |
$sql .= " VALUES ($args_values_str) ON DUPLICATE KEY UPDATE";
|
119 |
|
120 |
+
$sql .= ( $explicit ) ? $wpdb->prepare( " created_at = created_at, count = count+1, updated_at = %d, ip = %s, country = %s, browser = %s, device = %s, os = %s, email_client = %s", ig_es_get_current_gmt_timestamp(), $args['ip'], $args['country'], $args['browser'], $args['device'], $args['os'], $args['email_client'] ) : ' count = values(count)';
|
121 |
|
122 |
$result = $wpdb->query( $sql );
|
123 |
|
257 |
|
258 |
return $wpdb->get_var( $wpdb->prepare( $query, $args ) );
|
259 |
}
|
260 |
+
|
261 |
+
/**
|
262 |
+
* Get individual campaign total link clicks
|
263 |
+
*
|
264 |
+
* @return string|null
|
265 |
+
*
|
266 |
+
* @since 4.5.0
|
267 |
+
*/
|
268 |
+
public function get_campaign_total_contacts_clicks_links( $campaign_id, $distinct = true ) {
|
269 |
+
global $wpdb;
|
270 |
+
|
271 |
+
$ig_actions_table = IG_ACTIONS_TABLE;
|
272 |
+
|
273 |
+
if ( $distinct ) {
|
274 |
+
$query = "SELECT COUNT(DISTINCT(`contact_id`)) FROM $ig_actions_table WHERE `campaign_id`= %d AND `type` = %d";
|
275 |
+
} else {
|
276 |
+
$query = "SELECT COUNT(`contact_id`) FROM $ig_actions_table WHERE `campaign_id`= %d `type` = %d";
|
277 |
+
}
|
278 |
+
$args[] = $campaign_id;
|
279 |
+
$args[] = IG_LINK_CLICK;
|
280 |
+
|
281 |
+
return $wpdb->get_var( $wpdb->prepare( $query, $args ) );
|
282 |
+
}
|
283 |
}
|
lite/includes/db/class-es-db-campaigns.php
CHANGED
@@ -460,14 +460,18 @@ class ES_DB_Campaigns extends ES_DB {
|
|
460 |
*
|
461 |
* @return array|object|null
|
462 |
*/
|
463 |
-
public function get_campaign_by_id( $id = 0 ) {
|
464 |
global $wpdb;
|
465 |
|
466 |
if ( empty( $id ) ) {
|
467 |
return array();
|
468 |
}
|
469 |
|
470 |
-
$where = $wpdb->prepare( "id = %d
|
|
|
|
|
|
|
|
|
471 |
|
472 |
$campaigns = $this->get_by_conditions( $where );
|
473 |
|
460 |
*
|
461 |
* @return array|object|null
|
462 |
*/
|
463 |
+
public function get_campaign_by_id( $id = 0, $status = self::STATUS_ACTIVE ) {
|
464 |
global $wpdb;
|
465 |
|
466 |
if ( empty( $id ) ) {
|
467 |
return array();
|
468 |
}
|
469 |
|
470 |
+
$where = $wpdb->prepare( "id = %d", $id );
|
471 |
+
|
472 |
+
if( -1 !== $status ) {
|
473 |
+
$where = $wpdb->prepare( " AND status = %d", self::STATUS_ACTIVE );
|
474 |
+
}
|
475 |
|
476 |
$campaigns = $this->get_by_conditions( $where );
|
477 |
|
lite/includes/db/class-es-db-contacts.php
CHANGED
@@ -259,7 +259,6 @@ class ES_DB_Contacts extends ES_DB {
|
|
259 |
$where = $wpdb->prepare( "id IN (SELECT contact_id FROM $ig_lists_contacts_table WHERE list_id = %d AND status IN ('subscribed', 'confirmed'))", $list_id );
|
260 |
}
|
261 |
|
262 |
-
|
263 |
return $this->get_by_conditions( $where );
|
264 |
|
265 |
}
|
259 |
$where = $wpdb->prepare( "id IN (SELECT contact_id FROM $ig_lists_contacts_table WHERE list_id = %d AND status IN ('subscribed', 'confirmed'))", $list_id );
|
260 |
}
|
261 |
|
|
|
262 |
return $this->get_by_conditions( $where );
|
263 |
|
264 |
}
|
lite/includes/db/class-es-db-links.php
CHANGED
@@ -147,5 +147,22 @@ if ( ! class_exists( 'ES_DB_Links' ) ) {
|
|
147 |
return $this->get_by_conditions( $where );
|
148 |
}
|
149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
}
|
151 |
}
|
147 |
return $this->get_by_conditions( $where );
|
148 |
}
|
149 |
|
150 |
+
/**
|
151 |
+
* Check whether link exists in campaign
|
152 |
+
*
|
153 |
+
* @param int $message_id
|
154 |
+
*
|
155 |
+
* @return string|null
|
156 |
+
*
|
157 |
+
* @since 4.2.4
|
158 |
+
*/
|
159 |
+
public function get_links_by_message_id( $message_id = 0 ) {
|
160 |
+
global $wpdb;
|
161 |
+
|
162 |
+
$where = $wpdb->prepare( " message_id = %d", $message_id );
|
163 |
+
|
164 |
+
return $this->get_by_conditions( $where );
|
165 |
+
}
|
166 |
+
|
167 |
}
|
168 |
}
|
lite/includes/pro-features.php
CHANGED
@@ -23,6 +23,7 @@ add_action( 'ig_es_after_broadcast_tracking_options_settings', 'ig_es_additional
|
|
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 |
add_action( 'ig_es_add_multilist_options', 'ig_es_additional_multilist_option' );
|
|
|
26 |
|
27 |
/**
|
28 |
* Promote SMTP mailer for free
|
@@ -837,3 +838,664 @@ function ig_es_additional_spam_score_option() {
|
|
837 |
|
838 |
}
|
839 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
add_action( 'ig_es_add_multilist_options', 'ig_es_additional_multilist_option' );
|
26 |
+
add_action( 'ig_es_view_report_data','ig_es_view_additional_reports_data');
|
27 |
|
28 |
/**
|
29 |
* Promote SMTP mailer for free
|
838 |
|
839 |
}
|
840 |
|
841 |
+
/**
|
842 |
+
* Campaign reports data
|
843 |
+
*
|
844 |
+
* @since 4.5.0
|
845 |
+
*/
|
846 |
+
|
847 |
+
function ig_es_view_additional_reports_data() {
|
848 |
+
if ( ! ES()->is_pro() ) {
|
849 |
+
$utm_args = array(
|
850 |
+
'utm_medium' => 'campaign_insight'
|
851 |
+
);
|
852 |
+
|
853 |
+
$pricing_url = ES_Common::get_utm_tracking_url( $utm_args );
|
854 |
+
?>
|
855 |
+
|
856 |
+
|
857 |
+
<div class="wrap locker-content relative" >
|
858 |
+
<div class="w-3/6 mt-3.5 pr-4 absolute locker-content-middle">
|
859 |
+
<div class="inline-flex rounded-md bg-black px-2 pt-1 w-full">
|
860 |
+
<div class="px-2 pt-2 pb-2">
|
861 |
+
<div class="flex">
|
862 |
+
<div class="flex-shrink-0">
|
863 |
+
<svg class='h-5 w-5 text-teal-400' fill='currentColor' viewBox='0 0 20 20'>
|
864 |
+
<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'/>
|
865 |
+
</svg>
|
866 |
+
</div>
|
867 |
+
<div class="ml-3">
|
868 |
+
<h3 class="text-sm leading-5 font-medium text-white">
|
869 |
+
<?php _e( sprintf("<a class='text-white' href='%s' target='_blank'>Upgrade to ES PRO</a>", $pricing_url), 'email-subscribers' ); ?>
|
870 |
+
<svg class="ml-3 align-middle w-5 h-5 text-indigo-600 inline-block" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg>
|
871 |
+
</h3>
|
872 |
+
<div class="mt-2 text-sm leading-5 text-white">
|
873 |
+
<p>
|
874 |
+
<?php _e( 'Get campaign insights like geo location, device info, email client info, open/ click activity etc with Email Subscribers PRO.', 'email-subscribers' ); ?>
|
875 |
+
<br /><br />
|
876 |
+
<?php if(ES_Common::can_show_coupon('PREMIUM10')) { _e( 'Get a <b>10% flat discount</b> if you upgrade now!. <br /><br />Use coupon code <b>PREMIUM10</b>', 'email-subscribers' );}?>
|
877 |
+
</p>
|
878 |
+
</div>
|
879 |
+
</div>
|
880 |
+
</div>
|
881 |
+
</div>
|
882 |
+
</div>
|
883 |
+
</div>
|
884 |
+
<div class="mt-6 max-w-7xl">
|
885 |
+
<div class="pt-3">
|
886 |
+
<span class="text-left text-lg font-medium leading-7 tracking-wide text-gray-600"><?php _e('Campaign Details','email-subscribers');?><svg class="ml-3 align-middle w-5 h-5 text-indigo-600 inline-block" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg>
|
887 |
+
</div>
|
888 |
+
</div>
|
889 |
+
<div class="mt-2 pb-4 w-full rounded-md bg-white shadow">
|
890 |
+
<div class="pl-4 flex w-full text-gray-600 pt-6 text-sm leading-5 overflow-hidden">
|
891 |
+
<span class="text-2xl text-indigo-600 font-medium">10,000</span><span class="text-base text-gray-400 leading-6 font-medium"> <?php _e( 'Recipients','email-subscribers'); ?>
|
892 |
+
</span>
|
893 |
+
</div>
|
894 |
+
<div class="flex w-4/5 text-gray-600 pt-5 text-sm leading-5">
|
895 |
+
<div class="pl-4 w-4/12 font-medium text-gray-600 "><?php _e( 'Type: ','email-subscribers'); ?><span class="font-normal text-gray-900"><?php _e( 'Broadcast','email-subscribers'); ?></span>
|
896 |
+
</div>
|
897 |
+
<div class="w-8/12 pl-6 font-medium text-gray-600 "><?php _e( 'From: ','email-subscribers'); ?><span class="font-normal text-gray-900"><?php _e('hello@icegram.com','email-subscribers'); ?>,</span>
|
898 |
+
</div>
|
899 |
+
</div>
|
900 |
+
|
901 |
+
<div class="flex w-4/5 text-gray-600 pt-3 text-sm leading-5">
|
902 |
+
<div class="pl-4 w-4/12 font-medium text-gray-600 "><?php _e( 'List(s): ','email-subscribers'); ?><span class="font-normal text-gray-900"><?php _e('Test, Main ','email-subscribers'); ?></span>
|
903 |
+
</div>
|
904 |
+
<div class="w-8/12 pl-6 font-medium text-gray-600 "><?php _e( 'Subject: ','email-subscribers'); ?><span class="font-normal text-gray-900"><?php _e( 'Take a look into Icegram' ); ?></span>
|
905 |
+
</div>
|
906 |
+
</div>
|
907 |
+
|
908 |
+
<div class="flex w-4/5 text-gray-600 pt-3 text-sm leading-5">
|
909 |
+
<div class="pl-4 w-4/12 font-medium text-gray-600 "><?php _e( 'Status: ','email-subscribers'); ?><span class="font-normal text-gray-900">
|
910 |
+
<svg class="inline-block ml-2 h-5 w-5 text-green-400" fill="currentColor" viewBox="0 0 20 20">
|
911 |
+
<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"/>
|
912 |
+
</svg>
|
913 |
+
</span>
|
914 |
+
</div>
|
915 |
+
<div class="w-8/12 pl-6 font-medium text-gray-600 "><?php _e( 'Date: ','email-subscribers'); ?><span class="font-normal text-gray-900"><?php _e('July 1, 2020 10:00 AM','email-subscribers'); ?></span>
|
916 |
+
</div>
|
917 |
+
</div>
|
918 |
+
</div>
|
919 |
+
<div class="mt-6 mb-4 max-w-7xl">
|
920 |
+
<div class="pt-3">
|
921 |
+
<span class="text-left text-lg font-medium leading-7 tracking-wide text-gray-600"><?php _e('Open and click activity','email-subscribers');?></span>
|
922 |
+
</div>
|
923 |
+
<div class="bg-white mt-2 w-full rounded-md" id="click_link_activity">
|
924 |
+
<img style="display: block;" src="<?php echo ES_PLUGIN_URL ?>lite/admin/images/graph.png"/>
|
925 |
+
</div>
|
926 |
+
|
927 |
+
</div>
|
928 |
+
<div class="mt-6 mb-2 max-w-7xl flex">
|
929 |
+
<div class="w-1/2 pt-3">
|
930 |
+
<span class="text-left text-lg font-medium leading-7 tracking-wide text-gray-600"><?php _e('Country Opens','email-subscribers');?></span>
|
931 |
+
</div>
|
932 |
+
<div class="pt-3 pl-4">
|
933 |
+
<span class="text-left text-lg font-medium leading-7 tracking-wide text-gray-600"><?php _e('Device Opens','email-subscribers');?></span>
|
934 |
+
</div>
|
935 |
+
</div>
|
936 |
+
<div class="mt-2 mb-4 max-w-7xl flex">
|
937 |
+
<div class="flex mb-4 mr-4 w-1/2 bg-white shadow rounded-md">
|
938 |
+
<table class="w-full table-fixed">
|
939 |
+
<thead>
|
940 |
+
<tr>
|
941 |
+
<th class="w-2/3 px-6 py-3 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider">
|
942 |
+
<?php _e('Country','email-subscribers');?>
|
943 |
+
</th>
|
944 |
+
<th class="w-1/3 px-6 py-3 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider">
|
945 |
+
<?php _e('Opens','email-subscribers');?>
|
946 |
+
</th>
|
947 |
+
</tr>
|
948 |
+
</thead>
|
949 |
+
<tbody>
|
950 |
+
<tr>
|
951 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
952 |
+
<?php _e('United States','email-subscribers');?>
|
953 |
+
</td>
|
954 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
955 |
+
1500
|
956 |
+
</td>
|
957 |
+
</tr>
|
958 |
+
<tr>
|
959 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
960 |
+
<?php _e('Australia','email-subscribers');?>
|
961 |
+
</td>
|
962 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
963 |
+
1200
|
964 |
+
</td>
|
965 |
+
</tr>
|
966 |
+
<tr>
|
967 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
968 |
+
<?php _e('Spain','email-subscribers');?>
|
969 |
+
</td>
|
970 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
971 |
+
800
|
972 |
+
</td>
|
973 |
+
</tr>
|
974 |
+
<tr>
|
975 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
976 |
+
<?php _e('France','email-subscribers');?>
|
977 |
+
</td>
|
978 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
979 |
+
650
|
980 |
+
</td>
|
981 |
+
</tr>
|
982 |
+
<tr>
|
983 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
984 |
+
<?php _e('Russia','email-subscribers');?>
|
985 |
+
</td>
|
986 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
987 |
+
144
|
988 |
+
</td>
|
989 |
+
</tr>
|
990 |
+
</tbody>
|
991 |
+
</table>
|
992 |
+
|
993 |
+
</div>
|
994 |
+
<div class=" flex ml-4 w-1/2 bg-white shadow rounded-md self-start">
|
995 |
+
<table class="w-full table-fixed">
|
996 |
+
<thead>
|
997 |
+
<tr>
|
998 |
+
<th class="w-2/3 px-6 py-3 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider">
|
999 |
+
<?php _e('Device','email-subscribers');?>
|
1000 |
+
</th>
|
1001 |
+
<th class="w-1/3 px-6 py-3 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider">
|
1002 |
+
<?php _e('Opens','email-subscribers');?>
|
1003 |
+
</th>
|
1004 |
+
</tr>
|
1005 |
+
</thead>
|
1006 |
+
<tbody>
|
1007 |
+
<tr>
|
1008 |
+
<td class="pl-8 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1009 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1010 |
+
<title><?php echo esc_attr__( 'Desktop', 'email-subscribers' ); ?></title>
|
1011 |
+
<path fill="currentColor" d="M19,2H5A3,3,0,0,0,2,5V15a3,3,0,0,0,3,3H7.64l-.58,1a2,2,0,0,0,0,2,2,2,0,0,0,1.75,1h6.46A2,2,0,0,0,17,21a2,2,0,0,0,0-2l-.59-1H19a3,3,0,0,0,3-3V5A3,3,0,0,0,19,2ZM8.77,20,10,18H14l1.2,2ZM20,15a1,1,0,0,1-1,1H5a1,1,0,0,1-1-1V14H20Zm0-3H4V5A1,1,0,0,1,5,4H19a1,1,0,0,1,1,1Z"></path>
|
1012 |
+
</svg>
|
1013 |
+
</td>
|
1014 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1015 |
+
1300
|
1016 |
+
</td>
|
1017 |
+
</tr>
|
1018 |
+
<tr>
|
1019 |
+
<td class="pl-8 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1020 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1021 |
+
<title><?php echo esc_attr__( 'Mobile', 'email-subscribers' ); ?></title>
|
1022 |
+
<path fill="currentColor" d="M16,2H8A3,3,0,0,0,5,5V19a3,3,0,0,0,3,3h8a3,3,0,0,0,3-3V5A3,3,0,0,0,16,2Zm1,17a1,1,0,0,1-1,1H8a1,1,0,0,1-1-1V18H17Zm0-3H7V5A1,1,0,0,1,8,4h8a1,1,0,0,1,1,1Z"></path>
|
1023 |
+
</svg>
|
1024 |
+
</td>
|
1025 |
+
<td class="px-6 py-4 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1026 |
+
2800
|
1027 |
+
</td>
|
1028 |
+
</tr>
|
1029 |
+
<tr>
|
1030 |
+
<td class="pl-8 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1031 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="512px" height="512px" viewBox="0 0 512 512" xml:space="preserve">
|
1032 |
+
<title><?php echo esc_html__( 'Tablet', 'email-subscribers' ); ?></title>
|
1033 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="currentColor" d="M416,0H96C78.313,0,64,14.328,64,32v448c0,17.688,14.313,32,32,32 h320c17.688,0,32-14.313,32-32V32C448,14.328,433.688,0,416,0z M256,496c-13.25,0-24-10.75-24-24s10.75-24,24-24s24,10.75,24,24 S269.25,496,256,496z M400,432H112V48h288V432z"></path>
|
1034 |
+
</svg>
|
1035 |
+
</td>
|
1036 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1037 |
+
194
|
1038 |
+
</td>
|
1039 |
+
</tr>
|
1040 |
+
|
1041 |
+
</tbody>
|
1042 |
+
</table>
|
1043 |
+
|
1044 |
+
</div>
|
1045 |
+
</div>
|
1046 |
+
|
1047 |
+
<div class="mt-6 mb-2 max-w-7xl">
|
1048 |
+
|
1049 |
+
<span class="text-left text-lg font-medium leading-7 tracking-wide text-gray-600"><?php _e('Link Activity','email-subscribers');?></span>
|
1050 |
+
</div>
|
1051 |
+
<div class="mt-2 mb-4 max-w-7xl flex">
|
1052 |
+
<div class="flex w-full bg-white shadow rounded-md break-words self-start">
|
1053 |
+
<table class="w-full table-fixed">
|
1054 |
+
<thead>
|
1055 |
+
<tr>
|
1056 |
+
<th class="w-3/5 px-6 py-3 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php echo esc_html__( 'Link (URL)','email-subscribers'); ?>
|
1057 |
+
</th>
|
1058 |
+
<th class=" w-1/5 px-6 py-3 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php echo esc_html__( 'Unique Clicks', 'email-subscribers' ); ?>
|
1059 |
+
</th>
|
1060 |
+
<th class=" w-1/5 px-6 py-3 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php echo esc_html__( 'Total Clicks', 'email-subscribers' ); ?>
|
1061 |
+
</th>
|
1062 |
+
</tr>
|
1063 |
+
</thead>
|
1064 |
+
<tbody>
|
1065 |
+
<tr>
|
1066 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-900">
|
1067 |
+
<?php
|
1068 |
+
_e('https://www.icegram.com/automate-workflow-and-reduce-chaos/','email-subscribers');
|
1069 |
+
?>
|
1070 |
+
</td>
|
1071 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1072 |
+
1400
|
1073 |
+
</td>
|
1074 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1075 |
+
2000
|
1076 |
+
</td>
|
1077 |
+
</tr>
|
1078 |
+
<tr>
|
1079 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-900">
|
1080 |
+
<?php
|
1081 |
+
_e('https://www.icegram.com/how-to-keep-email-out-of-spam-folder/','email-subscribers');
|
1082 |
+
?>
|
1083 |
+
</td>
|
1084 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1085 |
+
1200
|
1086 |
+
</td>
|
1087 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1088 |
+
1800
|
1089 |
+
</td>
|
1090 |
+
</tr>
|
1091 |
+
<tr>
|
1092 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-900">
|
1093 |
+
<?php
|
1094 |
+
_e('https://www.icegram.com/8-effective-tips-to-grow-your-open-rates/');
|
1095 |
+
?>
|
1096 |
+
</td>
|
1097 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1098 |
+
800
|
1099 |
+
</td>
|
1100 |
+
<td class="px-6 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1101 |
+
1000
|
1102 |
+
</td>
|
1103 |
+
</tr>
|
1104 |
+
</tbody>
|
1105 |
+
</table>
|
1106 |
+
</div>
|
1107 |
+
</div>
|
1108 |
+
<div class="mt-8 mb-2 max-w-7xl">
|
1109 |
+
|
1110 |
+
<span class="text-left text-lg font-medium leading-7 tracking-wide text-gray-600"><?php _e('Last 10 Open Activity','email-subscribers');?></span>
|
1111 |
+
</div>
|
1112 |
+
<div class="mt-2 mb-2 max-w-7xl flex">
|
1113 |
+
<div class="flex w-full bg-white shadow rounded-md break-all">
|
1114 |
+
<table class="w-full table-fixed">
|
1115 |
+
<thead>
|
1116 |
+
<tr>
|
1117 |
+
<th class="w-3/12 pl-6 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php _e('Email','email-subscribers');?></th>
|
1118 |
+
<th class="w-2/12 pl-3 py-3 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php _e('Device','email-subscribers');?></th>
|
1119 |
+
<th class="w-2/12 pl-3 py-3 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php _e('Browser','email-subscribers');?></th>
|
1120 |
+
<th class="w-2/12 pl-3 py-3 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider">Mail <?php _e('Client','email-subscribers');?></th>
|
1121 |
+
<th class="w-2/12 pl-3 py-3 border-b border-gray-200 bg-gray-200 text-left text-xs leading-4 font-medium text-gray-500 uppercase tracking-wider"><?php _e('OS','email-subscribers');?></th>
|
1122 |
+
</tr>
|
1123 |
+
</thead>
|
1124 |
+
<tbody class="bg-white">
|
1125 |
+
|
1126 |
+
<tr>
|
1127 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1128 |
+
<?php
|
1129 |
+
_e('bernardlane@gmail.com','email-subscribers');
|
1130 |
+
?>
|
1131 |
+
</td>
|
1132 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1133 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1134 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1135 |
+
<path fill="currentColor" d="M19,2H5A3,3,0,0,0,2,5V15a3,3,0,0,0,3,3H7.64l-.58,1a2,2,0,0,0,0,2,2,2,0,0,0,1.75,1h6.46A2,2,0,0,0,17,21a2,2,0,0,0,0-2l-.59-1H19a3,3,0,0,0,3-3V5A3,3,0,0,0,19,2ZM8.77,20,10,18H14l1.2,2ZM20,15a1,1,0,0,1-1,1H5a1,1,0,0,1-1-1V14H20Zm0-3H4V5A1,1,0,0,1,5,4H19a1,1,0,0,1,1,1Z"></path>
|
1136 |
+
</svg>
|
1137 |
+
</span>
|
1138 |
+
</td>
|
1139 |
+
|
1140 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1141 |
+
<?php
|
1142 |
+
_e('Mozilla Firefox','email-subscribers');
|
1143 |
+
?>
|
1144 |
+
</td>
|
1145 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1146 |
+
<?php
|
1147 |
+
_e('Gmail','email-subscribers');
|
1148 |
+
?>
|
1149 |
+
</td>
|
1150 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1151 |
+
<?php
|
1152 |
+
_e('Windows','email-subscribers');
|
1153 |
+
?>
|
1154 |
+
</td>
|
1155 |
+
</tr>
|
1156 |
+
<tr>
|
1157 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1158 |
+
<?php
|
1159 |
+
_e('john@gmail.com','email-subscribers');
|
1160 |
+
?>
|
1161 |
+
</td>
|
1162 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1163 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1164 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1165 |
+
<path fill="currentColor" d="M19,2H5A3,3,0,0,0,2,5V15a3,3,0,0,0,3,3H7.64l-.58,1a2,2,0,0,0,0,2,2,2,0,0,0,1.75,1h6.46A2,2,0,0,0,17,21a2,2,0,0,0,0-2l-.59-1H19a3,3,0,0,0,3-3V5A3,3,0,0,0,19,2ZM8.77,20,10,18H14l1.2,2ZM20,15a1,1,0,0,1-1,1H5a1,1,0,0,1-1-1V14H20Zm0-3H4V5A1,1,0,0,1,5,4H19a1,1,0,0,1,1,1Z"></path>
|
1166 |
+
</svg>
|
1167 |
+
</span>
|
1168 |
+
</td>
|
1169 |
+
|
1170 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1171 |
+
<?php
|
1172 |
+
_e('Google Chrome','email-subscribers');
|
1173 |
+
?>
|
1174 |
+
</td>
|
1175 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1176 |
+
<?php
|
1177 |
+
_e('Gmail','email-subscribers');
|
1178 |
+
?>
|
1179 |
+
</td>
|
1180 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1181 |
+
<?php
|
1182 |
+
_e('Windows','email-subscribers');
|
1183 |
+
?>
|
1184 |
+
</td>
|
1185 |
+
</tr>
|
1186 |
+
<tr>
|
1187 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1188 |
+
<?php
|
1189 |
+
_e('pasha@gmail.com','email-subscribers');
|
1190 |
+
?>
|
1191 |
+
</td>
|
1192 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1193 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1194 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1195 |
+
<title><?php echo esc_attr__( 'Mobile', 'email-subscribers' ); ?></title>
|
1196 |
+
<path fill="currentColor" d="M16,2H8A3,3,0,0,0,5,5V19a3,3,0,0,0,3,3h8a3,3,0,0,0,3-3V5A3,3,0,0,0,16,2Zm1,17a1,1,0,0,1-1,1H8a1,1,0,0,1-1-1V18H17Zm0-3H7V5A1,1,0,0,1,8,4h8a1,1,0,0,1,1,1Z"></path>
|
1197 |
+
</svg>
|
1198 |
+
</span>
|
1199 |
+
</td>
|
1200 |
+
|
1201 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1202 |
+
<?php
|
1203 |
+
_e('Android','email-subscribers');
|
1204 |
+
?>
|
1205 |
+
</td>
|
1206 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1207 |
+
<?php
|
1208 |
+
_e('Gmail App (Android)','email-subscribers');
|
1209 |
+
?>
|
1210 |
+
</td>
|
1211 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1212 |
+
<?php
|
1213 |
+
_e('Android','email-subscribers');
|
1214 |
+
?>
|
1215 |
+
</td>
|
1216 |
+
</tr>
|
1217 |
+
<tr>
|
1218 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1219 |
+
<?php
|
1220 |
+
_e('mark@twone.com','email-subscribers');
|
1221 |
+
?>
|
1222 |
+
</td>
|
1223 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1224 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1225 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1226 |
+
<title><?php echo esc_attr__( 'Desktop', 'email-subscribers' ); ?></title>
|
1227 |
+
<path fill="currentColor" d="M16,2H8A3,3,0,0,0,5,5V19a3,3,0,0,0,3,3h8a3,3,0,0,0,3-3V5A3,3,0,0,0,16,2Zm1,17a1,1,0,0,1-1,1H8a1,1,0,0,1-1-1V18H17Zm0-3H7V5A1,1,0,0,1,8,4h8a1,1,0,0,1,1,1Z"></path>
|
1228 |
+
</svg>
|
1229 |
+
</span>
|
1230 |
+
</td>
|
1231 |
+
|
1232 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1233 |
+
<?php
|
1234 |
+
_e('Unknown','email-subscribers');
|
1235 |
+
?>
|
1236 |
+
</td>
|
1237 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1238 |
+
<?php
|
1239 |
+
_e('Thunderbird','email-subscribers');
|
1240 |
+
?>
|
1241 |
+
</td>
|
1242 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1243 |
+
<?php
|
1244 |
+
_e('Windows','email-subscribers');
|
1245 |
+
?>
|
1246 |
+
</td>
|
1247 |
+
</tr>
|
1248 |
+
<tr>
|
1249 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1250 |
+
<?php
|
1251 |
+
_e('smith@gmail.com','email-subscribers');
|
1252 |
+
?>
|
1253 |
+
</td>
|
1254 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1255 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1256 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1257 |
+
<title><?php echo esc_attr__( 'Mobile', 'email-subscribers' ); ?></title>
|
1258 |
+
<path fill="currentColor" d="M16,2H8A3,3,0,0,0,5,5V19a3,3,0,0,0,3,3h8a3,3,0,0,0,3-3V5A3,3,0,0,0,16,2Zm1,17a1,1,0,0,1-1,1H8a1,1,0,0,1-1-1V18H17Zm0-3H7V5A1,1,0,0,1,8,4h8a1,1,0,0,1,1,1Z"></path>
|
1259 |
+
</svg>
|
1260 |
+
</span>
|
1261 |
+
</td>
|
1262 |
+
|
1263 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1264 |
+
<?php
|
1265 |
+
_e('Android','email-subscribers');
|
1266 |
+
?>
|
1267 |
+
</td>
|
1268 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1269 |
+
<?php
|
1270 |
+
_e('Gmail App (Android)','email-subscribers');
|
1271 |
+
?>
|
1272 |
+
</td>
|
1273 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1274 |
+
<?php
|
1275 |
+
_e('Android','email-subscribers');
|
1276 |
+
?>
|
1277 |
+
</td>
|
1278 |
+
</tr>
|
1279 |
+
<tr>
|
1280 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1281 |
+
<?php
|
1282 |
+
_e('bradtke@gmail.com','email-subscribers');
|
1283 |
+
?>
|
1284 |
+
</td>
|
1285 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1286 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1287 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1288 |
+
<path fill="currentColor" d="M19,2H5A3,3,0,0,0,2,5V15a3,3,0,0,0,3,3H7.64l-.58,1a2,2,0,0,0,0,2,2,2,0,0,0,1.75,1h6.46A2,2,0,0,0,17,21a2,2,0,0,0,0-2l-.59-1H19a3,3,0,0,0,3-3V5A3,3,0,0,0,19,2ZM8.77,20,10,18H14l1.2,2ZM20,15a1,1,0,0,1-1,1H5a1,1,0,0,1-1-1V14H20Zm0-3H4V5A1,1,0,0,1,5,4H19a1,1,0,0,1,1,1Z"></path>
|
1289 |
+
</svg>
|
1290 |
+
</span>
|
1291 |
+
</td>
|
1292 |
+
|
1293 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1294 |
+
<?php
|
1295 |
+
_e('Mozilla Firefox','email-subscribers');
|
1296 |
+
?>
|
1297 |
+
</td>
|
1298 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1299 |
+
<?php
|
1300 |
+
_e('Gmail','email-subscribers');
|
1301 |
+
?>
|
1302 |
+
</td>
|
1303 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1304 |
+
<?php
|
1305 |
+
_e('Windows','email-subscribers');
|
1306 |
+
?>
|
1307 |
+
</td>
|
1308 |
+
</tr>
|
1309 |
+
<tr>
|
1310 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1311 |
+
<?php
|
1312 |
+
_e('bveum@gmail.com','email-subscribers');
|
1313 |
+
?>
|
1314 |
+
</td>
|
1315 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1316 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1317 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1318 |
+
<path fill="currentColor" d="M19,2H5A3,3,0,0,0,2,5V15a3,3,0,0,0,3,3H7.64l-.58,1a2,2,0,0,0,0,2,2,2,0,0,0,1.75,1h6.46A2,2,0,0,0,17,21a2,2,0,0,0,0-2l-.59-1H19a3,3,0,0,0,3-3V5A3,3,0,0,0,19,2ZM8.77,20,10,18H14l1.2,2ZM20,15a1,1,0,0,1-1,1H5a1,1,0,0,1-1-1V14H20Zm0-3H4V5A1,1,0,0,1,5,4H19a1,1,0,0,1,1,1Z"></path>
|
1319 |
+
</svg>
|
1320 |
+
</span>
|
1321 |
+
</td>
|
1322 |
+
|
1323 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1324 |
+
<?php
|
1325 |
+
_e('Google Chrome','email-subscribers');
|
1326 |
+
?>
|
1327 |
+
</td>
|
1328 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1329 |
+
<?php
|
1330 |
+
_e('Gmail','email-subscribers');
|
1331 |
+
?>
|
1332 |
+
</td>
|
1333 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1334 |
+
<?php
|
1335 |
+
_e('Windows','email-subscribers');
|
1336 |
+
?>
|
1337 |
+
</td>
|
1338 |
+
</tr>
|
1339 |
+
<tr>
|
1340 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1341 |
+
<?php
|
1342 |
+
_e('tracy@gmail.com','email-subscribers');
|
1343 |
+
?>
|
1344 |
+
</td>
|
1345 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1346 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1347 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1348 |
+
<title><?php echo esc_attr__( 'Mobile', 'email-subscribers' ); ?></title>
|
1349 |
+
<path fill="currentColor" d="M16,2H8A3,3,0,0,0,5,5V19a3,3,0,0,0,3,3h8a3,3,0,0,0,3-3V5A3,3,0,0,0,16,2Zm1,17a1,1,0,0,1-1,1H8a1,1,0,0,1-1-1V18H17Zm0-3H7V5A1,1,0,0,1,8,4h8a1,1,0,0,1,1,1Z"></path>
|
1350 |
+
</svg>
|
1351 |
+
</span>
|
1352 |
+
</td>
|
1353 |
+
|
1354 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1355 |
+
<?php
|
1356 |
+
_e('Android','email-subscribers');
|
1357 |
+
?>
|
1358 |
+
</td>
|
1359 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1360 |
+
<?php
|
1361 |
+
_e('Gmail App (Android)','email-subscribers');
|
1362 |
+
?>
|
1363 |
+
</td>
|
1364 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1365 |
+
<?php
|
1366 |
+
_e('Android','email-subscribers');
|
1367 |
+
?>
|
1368 |
+
</td>
|
1369 |
+
</tr>
|
1370 |
+
<tr>
|
1371 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1372 |
+
<?php
|
1373 |
+
_e('domenick52@twone.com','email-subscribers');
|
1374 |
+
?>
|
1375 |
+
</td>
|
1376 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1377 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1378 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1379 |
+
<title><?php echo esc_attr__( 'Desktop', 'email-subscribers' ); ?></title>
|
1380 |
+
<path fill="currentColor" d="M16,2H8A3,3,0,0,0,5,5V19a3,3,0,0,0,3,3h8a3,3,0,0,0,3-3V5A3,3,0,0,0,16,2Zm1,17a1,1,0,0,1-1,1H8a1,1,0,0,1-1-1V18H17Zm0-3H7V5A1,1,0,0,1,8,4h8a1,1,0,0,1,1,1Z"></path>
|
1381 |
+
</svg>
|
1382 |
+
</span>
|
1383 |
+
</td>
|
1384 |
+
|
1385 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1386 |
+
<?php
|
1387 |
+
_e('Unknown','email-subscribers');
|
1388 |
+
?>
|
1389 |
+
</td>
|
1390 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1391 |
+
<?php
|
1392 |
+
_e('Thunderbird','email-subscribers');
|
1393 |
+
?>
|
1394 |
+
</td>
|
1395 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1396 |
+
<?php
|
1397 |
+
_e('Windows','email-subscribers');
|
1398 |
+
?>
|
1399 |
+
</td>
|
1400 |
+
</tr>
|
1401 |
+
<tr>
|
1402 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1403 |
+
<?php
|
1404 |
+
_e('stanton@gmail.com','email-subscribers');
|
1405 |
+
?>
|
1406 |
+
</td>
|
1407 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1408 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1409 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1410 |
+
<title><?php echo esc_attr__( 'Mobile', 'email-subscribers' ); ?></title>
|
1411 |
+
<path fill="currentColor" d="M16,2H8A3,3,0,0,0,5,5V19a3,3,0,0,0,3,3h8a3,3,0,0,0,3-3V5A3,3,0,0,0,16,2Zm1,17a1,1,0,0,1-1,1H8a1,1,0,0,1-1-1V18H17Zm0-3H7V5A1,1,0,0,1,8,4h8a1,1,0,0,1,1,1Z"></path>
|
1412 |
+
</svg>
|
1413 |
+
</span>
|
1414 |
+
</td>
|
1415 |
+
|
1416 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1417 |
+
<?php
|
1418 |
+
_e('Android','email-subscribers');
|
1419 |
+
?>
|
1420 |
+
</td>
|
1421 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1422 |
+
<?php
|
1423 |
+
_e('Gmail App (Android)','email-subscribers');
|
1424 |
+
?>
|
1425 |
+
</td>
|
1426 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1427 |
+
<?php
|
1428 |
+
_e('Android','email-subscribers');
|
1429 |
+
?>
|
1430 |
+
</td>
|
1431 |
+
</tr>
|
1432 |
+
<tr>
|
1433 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1434 |
+
<?php
|
1435 |
+
_e('alessia@gmail.com','email-subscribers');
|
1436 |
+
?>
|
1437 |
+
</td>
|
1438 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1439 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1440 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1441 |
+
<path fill="currentColor" d="M19,2H5A3,3,0,0,0,2,5V15a3,3,0,0,0,3,3H7.64l-.58,1a2,2,0,0,0,0,2,2,2,0,0,0,1.75,1h6.46A2,2,0,0,0,17,21a2,2,0,0,0,0-2l-.59-1H19a3,3,0,0,0,3-3V5A3,3,0,0,0,19,2ZM8.77,20,10,18H14l1.2,2ZM20,15a1,1,0,0,1-1,1H5a1,1,0,0,1-1-1V14H20Zm0-3H4V5A1,1,0,0,1,5,4H19a1,1,0,0,1,1,1Z"></path>
|
1442 |
+
</svg>
|
1443 |
+
</span>
|
1444 |
+
</td>
|
1445 |
+
|
1446 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1447 |
+
<?php
|
1448 |
+
_e('Mozilla Firefox','email-subscribers');
|
1449 |
+
?>
|
1450 |
+
</td>
|
1451 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1452 |
+
<?php
|
1453 |
+
_e('Gmail','email-subscribers');
|
1454 |
+
?>
|
1455 |
+
</td>
|
1456 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1457 |
+
<?php
|
1458 |
+
_e('Windows','email-subscribers');
|
1459 |
+
?>
|
1460 |
+
</td>
|
1461 |
+
</tr>
|
1462 |
+
<tr>
|
1463 |
+
<td class="pl-6 pr-2 py-3 border-b border-gray-200 text-sm leading-5 text-gray-500">
|
1464 |
+
<?php
|
1465 |
+
_e('finn.lynch@gmail.com','email-subscribers');
|
1466 |
+
?>
|
1467 |
+
</td>
|
1468 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 font-medium ">
|
1469 |
+
<span class="pl-2 inline-flex text-xs leading-5 font-semibold text-gray-500">
|
1470 |
+
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
1471 |
+
<path fill="currentColor" d="M19,2H5A3,3,0,0,0,2,5V15a3,3,0,0,0,3,3H7.64l-.58,1a2,2,0,0,0,0,2,2,2,0,0,0,1.75,1h6.46A2,2,0,0,0,17,21a2,2,0,0,0,0-2l-.59-1H19a3,3,0,0,0,3-3V5A3,3,0,0,0,19,2ZM8.77,20,10,18H14l1.2,2ZM20,15a1,1,0,0,1-1,1H5a1,1,0,0,1-1-1V14H20Zm0-3H4V5A1,1,0,0,1,5,4H19a1,1,0,0,1,1,1Z"></path>
|
1472 |
+
</svg>
|
1473 |
+
</span>
|
1474 |
+
</td>
|
1475 |
+
|
1476 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1477 |
+
<?php
|
1478 |
+
_e('Google Chrome','email-subscribers');
|
1479 |
+
?>
|
1480 |
+
</td>
|
1481 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1482 |
+
<?php
|
1483 |
+
_e('Gmail','email-subscribers');
|
1484 |
+
?>
|
1485 |
+
</td>
|
1486 |
+
<td class="pl-3 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600">
|
1487 |
+
<?php
|
1488 |
+
_e('Windows','email-subscribers');
|
1489 |
+
?>
|
1490 |
+
</td>
|
1491 |
+
</tr>
|
1492 |
+
</tbody>
|
1493 |
+
</table>
|
1494 |
+
|
1495 |
+
</div>
|
1496 |
+
</div>
|
1497 |
+
</div>
|
1498 |
+
|
1499 |
+
<?php }
|
1500 |
+
}
|
1501 |
+
|
lite/includes/upgrade/es-update-functions.php
CHANGED
@@ -1218,4 +1218,34 @@ function ig_es_update_4410_db_version() {
|
|
1218 |
ES_Install::update_db_version( '4.4.10' );
|
1219 |
}
|
1220 |
|
1221 |
-
/* --------------------- ES 4.4.10(End)--------------------------- */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1218 |
ES_Install::update_db_version( '4.4.10' );
|
1219 |
}
|
1220 |
|
1221 |
+
/* --------------------- ES 4.4.10(End)--------------------------- */
|
1222 |
+
|
1223 |
+
|
1224 |
+
/* --------------------- ES 4.5.0(Start)--------------------------- */
|
1225 |
+
function ig_es_update_450_alter_actions_table() {
|
1226 |
+
global $wpdb;
|
1227 |
+
|
1228 |
+
$actions_table = IG_ACTIONS_TABLE;
|
1229 |
+
|
1230 |
+
$cols = $wpdb->get_col( "SHOW COLUMNS FROM {$actions_table}" );
|
1231 |
+
if ( ! in_array( 'ip', $cols ) ) {
|
1232 |
+
$query = "ALTER TABLE {$actions_table}
|
1233 |
+
ADD COLUMN ip varchar(50) NULL AFTER `list_id`,
|
1234 |
+
ADD COLUMN country varchar(50) NULL AFTER `ip`,
|
1235 |
+
ADD COLUMN device varchar(50) NULL AFTER `country`,
|
1236 |
+
ADD COLUMN browser varchar(50) NULL AFTER `device`,
|
1237 |
+
ADD COLUMN email_client varchar(50) NULL AFTER `browser`,
|
1238 |
+
ADD COLUMN os varchar(50) NULL AFTER `email_client`";
|
1239 |
+
$wpdb->query( $query );
|
1240 |
+
}
|
1241 |
+
}
|
1242 |
+
|
1243 |
+
/**
|
1244 |
+
* Update DB version
|
1245 |
+
*
|
1246 |
+
* @since 4.5.0
|
1247 |
+
*/
|
1248 |
+
function ig_es_update_450_db_version() {
|
1249 |
+
ES_Install::update_db_version( '4.5.0' );
|
1250 |
+
}
|
1251 |
+
/* --------------------- ES 4.5.0(End)--------------------------- */
|
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-06
|
7 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
8 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
9 |
"Language-Team: \n"
|
@@ -65,7 +65,7 @@ msgstr ""
|
|
65 |
|
66 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:214
|
67 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:529
|
68 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
69 |
msgid "Get Spam Score"
|
70 |
msgstr ""
|
71 |
|
@@ -83,7 +83,7 @@ msgstr ""
|
|
83 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:232
|
84 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:531
|
85 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:375
|
86 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
87 |
msgid "Check"
|
88 |
msgstr ""
|
89 |
|
@@ -137,42 +137,42 @@ msgid "Close"
|
|
137 |
msgstr ""
|
138 |
|
139 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:580
|
140 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
141 |
msgid "Link Tracking"
|
142 |
msgstr ""
|
143 |
|
144 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:596
|
145 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:814
|
146 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
147 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
148 |
msgid "UTM Tracking"
|
149 |
msgstr ""
|
150 |
|
151 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:642
|
152 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
153 |
msgid "Send Options"
|
154 |
msgstr ""
|
155 |
|
156 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:645
|
157 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
158 |
msgid "Schedule for Later"
|
159 |
msgstr ""
|
160 |
|
161 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:658
|
162 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
163 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/fields/class-es-date.php:32
|
164 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-timing.php:83
|
165 |
msgid "Date"
|
166 |
msgstr ""
|
167 |
|
168 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:669
|
169 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
170 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/fields/class-es-time.php:65
|
171 |
msgid "Time"
|
172 |
msgstr ""
|
173 |
|
174 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:680
|
175 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
176 |
msgid "Local Time: "
|
177 |
msgstr ""
|
178 |
|
@@ -182,7 +182,9 @@ msgstr ""
|
|
182 |
|
183 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:708
|
184 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:717
|
185 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
|
|
|
|
186 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:181
|
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
|
@@ -194,7 +196,7 @@ msgid "Email"
|
|
194 |
msgstr ""
|
195 |
|
196 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:712
|
197 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
198 |
msgid "Enter email"
|
199 |
msgstr ""
|
200 |
|
@@ -228,7 +230,7 @@ msgid ""
|
|
228 |
msgstr ""
|
229 |
|
230 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:806
|
231 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
232 |
msgid "Track Clicks"
|
233 |
msgstr ""
|
234 |
|
@@ -246,7 +248,7 @@ msgstr ""
|
|
246 |
|
247 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-post-digest.php:24
|
248 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1495
|
249 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:
|
250 |
msgid "Post Digest"
|
251 |
msgstr ""
|
252 |
|
@@ -514,24 +516,24 @@ msgid "SMTP Password"
|
|
514 |
msgstr ""
|
515 |
|
516 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:394
|
517 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
518 |
msgid "Block Known Attackers"
|
519 |
msgstr ""
|
520 |
|
521 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:395
|
522 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
523 |
msgid ""
|
524 |
"Stop known spam bot attacker domains from signing up. Keeps this list up-to-"
|
525 |
"date with Icegram servers."
|
526 |
msgstr ""
|
527 |
|
528 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:402
|
529 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
530 |
msgid "Block Temporary / Fake Emails"
|
531 |
msgstr ""
|
532 |
|
533 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:403
|
534 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
535 |
msgid ""
|
536 |
"Plenty of sites provide disposable / fake / temporary email addresses. "
|
537 |
"People use them when they don't want to give you their real email. Block "
|
@@ -539,7 +541,7 @@ msgid ""
|
|
539 |
msgstr ""
|
540 |
|
541 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:411
|
542 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
543 |
msgid "Enable Captcha"
|
544 |
msgstr ""
|
545 |
|
@@ -572,19 +574,19 @@ msgid "Custom CSS"
|
|
572 |
msgstr ""
|
573 |
|
574 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:610
|
575 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
576 |
msgid "User Roles"
|
577 |
msgstr ""
|
578 |
|
579 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:631
|
580 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
581 |
msgid "Roles"
|
582 |
msgstr ""
|
583 |
|
584 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:632
|
585 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:223
|
586 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:223
|
587 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
588 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:66
|
589 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:142
|
590 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:312
|
@@ -595,7 +597,7 @@ msgstr ""
|
|
595 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:633
|
596 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:217
|
597 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:217
|
598 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
599 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:38
|
600 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:39
|
601 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:83
|
@@ -605,7 +607,7 @@ msgstr ""
|
|
605 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:634
|
606 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:205
|
607 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:205
|
608 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
609 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:8
|
610 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:103
|
611 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:237
|
@@ -615,23 +617,23 @@ msgstr ""
|
|
615 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:635
|
616 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:232
|
617 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:232
|
618 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
619 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:193
|
620 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
621 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
622 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
623 |
msgid "Reports"
|
624 |
msgstr ""
|
625 |
|
626 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:636
|
627 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
628 |
msgid "Sequences"
|
629 |
msgstr ""
|
630 |
|
631 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:637
|
632 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:195
|
633 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:195
|
634 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
635 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:54
|
636 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:150
|
637 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/class-es-workflow-admin-edit.php:184
|
@@ -647,42 +649,42 @@ msgid "Inline CSS"
|
|
647 |
msgstr ""
|
648 |
|
649 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:1123
|
650 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
651 |
msgid "Show a captcha to protect from bot signups."
|
652 |
msgstr ""
|
653 |
|
654 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:72
|
655 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
656 |
msgid "Comments"
|
657 |
msgstr ""
|
658 |
|
659 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:82
|
660 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
661 |
msgid "WooCommerce"
|
662 |
msgstr ""
|
663 |
|
664 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:91
|
665 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
666 |
msgid "EDD"
|
667 |
msgstr ""
|
668 |
|
669 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:100
|
670 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
671 |
msgid "Contact Form 7"
|
672 |
msgstr ""
|
673 |
|
674 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:109
|
675 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
676 |
msgid "WPForms"
|
677 |
msgstr ""
|
678 |
|
679 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:118
|
680 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
681 |
msgid "Give"
|
682 |
msgstr ""
|
683 |
|
684 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:127
|
685 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
686 |
msgid "Ninja Forms"
|
687 |
msgstr ""
|
688 |
|
@@ -884,7 +886,7 @@ msgid ""
|
|
884 |
msgstr ""
|
885 |
|
886 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:185
|
887 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:
|
888 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-form-widget.php:11
|
889 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:11
|
890 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:12
|
@@ -903,10 +905,12 @@ msgstr ""
|
|
903 |
|
904 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:209
|
905 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1492
|
906 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/
|
|
|
|
|
907 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:304
|
908 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:246
|
909 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
910 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:34
|
911 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:263
|
912 |
msgid "Broadcast"
|
@@ -965,7 +969,7 @@ msgstr ""
|
|
965 |
msgid "OK, I Got it!"
|
966 |
msgstr ""
|
967 |
|
968 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:
|
969 |
#, php-format
|
970 |
msgid "%1$s in %2$s on line %3$s"
|
971 |
msgstr ""
|
@@ -1081,8 +1085,9 @@ msgid "Lifetime"
|
|
1081 |
msgstr ""
|
1082 |
|
1083 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1493
|
1084 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:
|
1085 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/
|
|
|
1086 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:35
|
1087 |
msgid "Post Notification"
|
1088 |
msgstr ""
|
@@ -1093,6 +1098,7 @@ msgid "Draft"
|
|
1093 |
msgstr ""
|
1094 |
|
1095 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1548
|
|
|
1096 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:460
|
1097 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:496
|
1098 |
msgid "Sending"
|
@@ -1107,12 +1113,14 @@ msgid "Scheduled"
|
|
1107 |
msgstr ""
|
1108 |
|
1109 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1550
|
|
|
|
|
1110 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:467
|
1111 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:515
|
1112 |
msgid "Sent"
|
1113 |
msgstr ""
|
1114 |
|
1115 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-install.php:
|
1116 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/upgrade/es-update-functions.php:772
|
1117 |
msgid ""
|
1118 |
"Your subscription was successful! Kindly check your mailbox and confirm your "
|
@@ -1174,50 +1182,40 @@ msgstr ""
|
|
1174 |
msgid "Contact Us"
|
1175 |
msgstr ""
|
1176 |
|
1177 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1178 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1179 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1180 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1181 |
#, php-format
|
1182 |
msgid "<a href='%s' target='_blank'>Upgrade to ES PRO</a>"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1186 |
msgid "Get insights about link clicks. See who are clicking on which links?"
|
1187 |
msgstr ""
|
1188 |
|
1189 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1190 |
msgid "Get insights about UTM tracking."
|
1191 |
msgstr ""
|
1192 |
|
1193 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1194 |
msgid "Show a captcha in subscription forms to protect from bot signups."
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1198 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1199 |
msgid "Secure your form and avoid spam signups with form Captcha"
|
1200 |
msgstr ""
|
1201 |
|
1202 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1203 |
msgid "Sync Comment Users"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1207 |
msgid ""
|
1208 |
"Quickly add to your mailing list when someone post a comment on your website."
|
1209 |
msgstr ""
|
1210 |
|
1211 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:359
|
1212 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:388
|
1213 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:421
|
1214 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:453
|
1215 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:485
|
1216 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:517
|
1217 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:549
|
1218 |
-
msgid "How to setup?"
|
1219 |
-
msgstr ""
|
1220 |
-
|
1221 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:360
|
1222 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:389
|
1223 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:422
|
@@ -1225,53 +1223,63 @@ msgstr ""
|
|
1225 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:486
|
1226 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:518
|
1227 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:550
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1228 |
msgid "Once you upgrade to "
|
1229 |
msgstr ""
|
1230 |
|
1231 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1232 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1233 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1234 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1235 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1236 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1237 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1238 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1239 |
msgid "Email Subscribers Starter"
|
1240 |
msgstr ""
|
1241 |
|
1242 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1243 |
msgid ""
|
1244 |
"you will have settings panel where you need to enable Comment user sync and "
|
1245 |
"select the list in which you want to add people whenever someone post a\n"
|
1246 |
"\t\tcomment."
|
1247 |
msgstr ""
|
1248 |
|
1249 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1250 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1251 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1252 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1253 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1254 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1255 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1256 |
msgid "Checkout "
|
1257 |
msgstr ""
|
1258 |
|
1259 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1260 |
msgid "now"
|
1261 |
msgstr ""
|
1262 |
|
1263 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1264 |
msgid "Sync WooCommerce Customers"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1268 |
msgid ""
|
1269 |
"Are you using WooCommerce for your online business? You can use this "
|
1270 |
"integration to add to a specific list whenever someone make a purchase from "
|
1271 |
"you"
|
1272 |
msgstr ""
|
1273 |
|
1274 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1275 |
msgid ""
|
1276 |
"you will have settings panel where you need to enable WooCommerce sync and "
|
1277 |
"select the list in which you want to add people whenever they\n"
|
@@ -1279,124 +1287,417 @@ msgid ""
|
|
1279 |
"\t\t\tfrom you."
|
1280 |
msgstr ""
|
1281 |
|
1282 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1283 |
msgid "Sync Contact Form 7 users"
|
1284 |
msgstr ""
|
1285 |
|
1286 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1287 |
msgid ""
|
1288 |
"Are you using Contact Form 7 for your list building? You can use this "
|
1289 |
"integration to add to a specific list whenever new subscribers added from "
|
1290 |
"Contact Form 7"
|
1291 |
msgstr ""
|
1292 |
|
1293 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1294 |
msgid ""
|
1295 |
"you will have settings panel where you need to enable Contact form 7 sync "
|
1296 |
"and select the list in which you want to add people whenever they fill any "
|
1297 |
"of the Contact Form."
|
1298 |
msgstr ""
|
1299 |
|
1300 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1301 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1302 |
msgid "Sync Donors"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1306 |
msgid ""
|
1307 |
"We found that you are using Give WordPress plugin to collect donations. Now, "
|
1308 |
"with this integration, you can add your donors to any of your subscriber "
|
1309 |
"list and send them Newsletters in future."
|
1310 |
msgstr ""
|
1311 |
|
1312 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1313 |
msgid ""
|
1314 |
"you will have settings panel where you need to enable Give integration and "
|
1315 |
"select the list in which you want to add people whenever they make donation."
|
1316 |
msgstr ""
|
1317 |
|
1318 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1319 |
msgid ""
|
1320 |
"Are you using Give WordPress plugin to collect donations? Want to send Thank "
|
1321 |
"You email to them? You can use this integration to be in touch with them."
|
1322 |
msgstr ""
|
1323 |
|
1324 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1325 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1326 |
msgid ""
|
1327 |
"you will have settings panel where you need to enable Give sync and select "
|
1328 |
"the list in which you want to add people whenever they make donation."
|
1329 |
msgstr ""
|
1330 |
|
1331 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1332 |
msgid "Sync Contacts"
|
1333 |
msgstr ""
|
1334 |
|
1335 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1336 |
msgid ""
|
1337 |
"We found that you are using Ninja Forms. Want to add your contact to a "
|
1338 |
"mailing list? You can use this integration to add your contact to add into "
|
1339 |
"mailing list"
|
1340 |
msgstr ""
|
1341 |
|
1342 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1343 |
msgid "Sync Customers"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1347 |
msgid ""
|
1348 |
"We found that you are using EDD to sell digital goods online. You can use "
|
1349 |
"this integration to send Newsletters/ Post Notifications to your customers."
|
1350 |
msgstr ""
|
1351 |
|
1352 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1353 |
msgid ""
|
1354 |
"you will have settings panel where you need to enable EDD sync and select "
|
1355 |
"the list in which you want to add people whenever they purchase something "
|
1356 |
"from you."
|
1357 |
msgstr ""
|
1358 |
|
1359 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1360 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1361 |
#, php-format
|
1362 |
msgid ""
|
1363 |
"Get <b>10% flat discount</b> if you upgrade now!. <br /><br />Use coupon "
|
1364 |
"code <b>PREMIUM10</b>"
|
1365 |
msgstr ""
|
1366 |
|
1367 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1368 |
msgid ""
|
1369 |
"Get rid of setting Post Notifications for each list and avoid chances of "
|
1370 |
"sending duplicate emails to your subscribers."
|
1371 |
msgstr ""
|
1372 |
|
1373 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1374 |
msgid " Upgrade to Email Subscribers PRO and select multiple lists."
|
1375 |
msgstr ""
|
1376 |
|
1377 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
|
|
1378 |
#, php-format
|
1379 |
msgid ""
|
1380 |
"Get a <b>10% flat discount</b> if you upgrade now!. <br /><br />Use coupon "
|
1381 |
"code <b>PREMIUM10</b>"
|
1382 |
msgstr ""
|
1383 |
|
1384 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1385 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1386 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1387 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1388 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1389 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:94
|
1390 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:725
|
1391 |
msgid "Premium"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:
|
1395 |
msgid ""
|
1396 |
"Link Tracking, UTM Tracking and Scheduling Options are part of Email "
|
1397 |
"Subscribers PRO"
|
1398 |
msgstr ""
|
1399 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1400 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/class-email-subscribers-public.php:110
|
1401 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-subscription.php:420
|
1402 |
msgid "Please enter email address"
|
@@ -1449,28 +1750,90 @@ msgstr ""
|
|
1449 |
msgid "Are you sure you want to unsubscribe?"
|
1450 |
msgstr ""
|
1451 |
|
1452 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/
|
1453 |
-
|
|
|
|
|
|
|
1454 |
msgstr ""
|
1455 |
|
1456 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1457 |
msgid "In Queue"
|
1458 |
msgstr ""
|
1459 |
|
1460 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/
|
1461 |
-
msgid "
|
1462 |
msgstr ""
|
1463 |
|
1464 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/
|
1465 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/
|
1466 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1467 |
msgstr ""
|
1468 |
|
1469 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1470 |
msgid "Clicks"
|
1471 |
msgstr ""
|
1472 |
|
1473 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1474 |
msgid "Lost"
|
1475 |
msgstr ""
|
1476 |
|
@@ -1515,18 +1878,10 @@ msgstr ""
|
|
1515 |
msgid "Last 60 days"
|
1516 |
msgstr ""
|
1517 |
|
1518 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:144
|
1519 |
-
msgid " Avg Open Rate"
|
1520 |
-
msgstr ""
|
1521 |
-
|
1522 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:152
|
1523 |
msgid "Messages Sent"
|
1524 |
msgstr ""
|
1525 |
|
1526 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:160
|
1527 |
-
msgid "Avg Click Rate"
|
1528 |
-
msgstr ""
|
1529 |
-
|
1530 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:193
|
1531 |
msgid "Jump to: "
|
1532 |
msgstr ""
|
@@ -1622,7 +1977,7 @@ msgstr ""
|
|
1622 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:539
|
1623 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:311
|
1624 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:92
|
1625 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
1626 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:294
|
1627 |
msgid "Status"
|
1628 |
msgstr ""
|
@@ -1929,7 +2284,7 @@ msgstr ""
|
|
1929 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:412
|
1930 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:449
|
1931 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:325
|
1932 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
1933 |
msgid "Subject"
|
1934 |
msgstr ""
|
1935 |
|
@@ -2167,12 +2522,6 @@ msgid ""
|
|
2167 |
"Edit</a>"
|
2168 |
msgstr ""
|
2169 |
|
2170 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:374
|
2171 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:401
|
2172 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:19
|
2173 |
-
msgid "Report"
|
2174 |
-
msgstr ""
|
2175 |
-
|
2176 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:405
|
2177 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:518
|
2178 |
#, php-format
|
@@ -2182,7 +2531,7 @@ msgid ""
|
|
2182 |
msgstr ""
|
2183 |
|
2184 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:535
|
2185 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2186 |
msgid "Type"
|
2187 |
msgstr ""
|
2188 |
|
@@ -2284,7 +2633,7 @@ msgstr ""
|
|
2284 |
|
2285 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:271
|
2286 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:77
|
2287 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2288 |
msgid "Total Contacts"
|
2289 |
msgstr ""
|
2290 |
|
@@ -2292,10 +2641,6 @@ msgstr ""
|
|
2292 |
msgid "Last 60 Days"
|
2293 |
msgstr ""
|
2294 |
|
2295 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:306
|
2296 |
-
msgid "Opened"
|
2297 |
-
msgstr ""
|
2298 |
-
|
2299 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:336
|
2300 |
msgid " Add New Contact"
|
2301 |
msgstr ""
|
@@ -2419,8 +2764,8 @@ msgstr ""
|
|
2419 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:993
|
2420 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:860
|
2421 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:569
|
2422 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2423 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
2424 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:263
|
2425 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:324
|
2426 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/action.php:30
|
@@ -3035,20 +3380,12 @@ msgstr ""
|
|
3035 |
msgid "Design Template"
|
3036 |
msgstr ""
|
3037 |
|
3038 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:362
|
3039 |
-
msgid "Recipients"
|
3040 |
-
msgstr ""
|
3041 |
-
|
3042 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:372
|
3043 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:400
|
3044 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3045 |
msgid "Preview"
|
3046 |
msgstr ""
|
3047 |
|
3048 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:375
|
3049 |
-
msgid "Browser"
|
3050 |
-
msgstr ""
|
3051 |
-
|
3052 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:386
|
3053 |
msgid ""
|
3054 |
"There could be a slight variation on how your customer will view the email "
|
@@ -3148,19 +3485,19 @@ msgstr ""
|
|
3148 |
msgid "Save Campaign"
|
3149 |
msgstr ""
|
3150 |
|
3151 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3152 |
#, php-format
|
3153 |
msgid ""
|
3154 |
"<a href='%s' class='px-4 py-2 ig-es-imp-button'>Send Queued Emails Now</a>"
|
3155 |
msgstr ""
|
3156 |
|
3157 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3158 |
msgid ""
|
3159 |
"<span class='ig-es-send-queue-emails button-disabled'>Send Queued Emails "
|
3160 |
"Now</span>"
|
3161 |
msgstr ""
|
3162 |
|
3163 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3164 |
msgid "<br /><span class='es-helper'>No emails found in queue</span>"
|
3165 |
msgstr ""
|
3166 |
|
@@ -3180,59 +3517,67 @@ msgstr ""
|
|
3180 |
msgid "Viewed Date"
|
3181 |
msgstr ""
|
3182 |
|
3183 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3184 |
msgid "Viewed"
|
3185 |
msgstr ""
|
3186 |
|
3187 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3188 |
msgid "Not yet viewed"
|
3189 |
msgstr ""
|
3190 |
|
3191 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3192 |
msgid "No Reports avaliable."
|
3193 |
msgstr ""
|
3194 |
|
3195 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3196 |
msgid "Completed"
|
3197 |
msgstr ""
|
3198 |
|
3199 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3200 |
msgid "View"
|
3201 |
msgstr ""
|
3202 |
|
3203 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3204 |
msgid "Start Date"
|
3205 |
msgstr ""
|
3206 |
|
3207 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3208 |
msgid "End Date"
|
3209 |
msgstr ""
|
3210 |
|
3211 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3212 |
msgid "You do not have permission to view notification"
|
3213 |
msgstr ""
|
3214 |
|
3215 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3216 |
msgid "You do not have permission to delete notification"
|
3217 |
msgstr ""
|
3218 |
|
3219 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3220 |
msgid "Report has been deleted successfully!"
|
3221 |
msgstr ""
|
3222 |
|
3223 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3224 |
msgid "You do not have permission to preview notification"
|
3225 |
msgstr ""
|
3226 |
|
3227 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3228 |
msgid "Reports have been deleted successfully!"
|
3229 |
msgstr ""
|
3230 |
|
3231 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3232 |
msgid "Preview Email"
|
3233 |
msgstr ""
|
3234 |
|
3235 |
-
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:
|
3236 |
msgid ""
|
3237 |
"This is how the email you sent may look. <br>Note: Different email services "
|
3238 |
"(like gmail, yahoo etc) display email content differently. So there could be "
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Email Subscribers & Newsletters\n"
|
5 |
"Report-Msgid-Bugs-To: \n"
|
6 |
+
"POT-Creation-Date: 2020-07-06 20:05+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"
|
65 |
|
66 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:214
|
67 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:529
|
68 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:833
|
69 |
msgid "Get Spam Score"
|
70 |
msgstr ""
|
71 |
|
83 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:232
|
84 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:531
|
85 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:375
|
86 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:834
|
87 |
msgid "Check"
|
88 |
msgstr ""
|
89 |
|
137 |
msgstr ""
|
138 |
|
139 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:580
|
140 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:721
|
141 |
msgid "Link Tracking"
|
142 |
msgstr ""
|
143 |
|
144 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:596
|
145 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:814
|
146 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:182
|
147 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:735
|
148 |
msgid "UTM Tracking"
|
149 |
msgstr ""
|
150 |
|
151 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:642
|
152 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:765
|
153 |
msgid "Send Options"
|
154 |
msgstr ""
|
155 |
|
156 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:645
|
157 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:768
|
158 |
msgid "Schedule for Later"
|
159 |
msgstr ""
|
160 |
|
161 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:658
|
162 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:774
|
163 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/fields/class-es-date.php:32
|
164 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/meta-box-timing.php:83
|
165 |
msgid "Date"
|
166 |
msgstr ""
|
167 |
|
168 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:669
|
169 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:783
|
170 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/fields/class-es-time.php:65
|
171 |
msgid "Time"
|
172 |
msgstr ""
|
173 |
|
174 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:680
|
175 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:793
|
176 |
msgid "Local Time: "
|
177 |
msgstr ""
|
178 |
|
182 |
|
183 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:708
|
184 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:717
|
185 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:705
|
186 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1117
|
187 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:563
|
188 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:181
|
189 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:706
|
190 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:958
|
196 |
msgstr ""
|
197 |
|
198 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:712
|
199 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:709
|
200 |
msgid "Enter email"
|
201 |
msgstr ""
|
202 |
|
230 |
msgstr ""
|
231 |
|
232 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:806
|
233 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:162
|
234 |
msgid "Track Clicks"
|
235 |
msgstr ""
|
236 |
|
248 |
|
249 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-post-digest.php:24
|
250 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1495
|
251 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:115
|
252 |
msgid "Post Digest"
|
253 |
msgstr ""
|
254 |
|
516 |
msgstr ""
|
517 |
|
518 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:394
|
519 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:213
|
520 |
msgid "Block Known Attackers"
|
521 |
msgstr ""
|
522 |
|
523 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:395
|
524 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:214
|
525 |
msgid ""
|
526 |
"Stop known spam bot attacker domains from signing up. Keeps this list up-to-"
|
527 |
"date with Icegram servers."
|
528 |
msgstr ""
|
529 |
|
530 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:402
|
531 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:224
|
532 |
msgid "Block Temporary / Fake Emails"
|
533 |
msgstr ""
|
534 |
|
535 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:403
|
536 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:225
|
537 |
msgid ""
|
538 |
"Plenty of sites provide disposable / fake / temporary email addresses. "
|
539 |
"People use them when they don't want to give you their real email. Block "
|
541 |
msgstr ""
|
542 |
|
543 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:411
|
544 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:236
|
545 |
msgid "Enable Captcha"
|
546 |
msgstr ""
|
547 |
|
574 |
msgstr ""
|
575 |
|
576 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:610
|
577 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:143
|
578 |
msgid "User Roles"
|
579 |
msgstr ""
|
580 |
|
581 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:631
|
582 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:83
|
583 |
msgid "Roles"
|
584 |
msgstr ""
|
585 |
|
586 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:632
|
587 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:223
|
588 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:223
|
589 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:84
|
590 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:66
|
591 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:142
|
592 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-import-subscribers.php:312
|
597 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:633
|
598 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:217
|
599 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:217
|
600 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:85
|
601 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:38
|
602 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:39
|
603 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:83
|
607 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:634
|
608 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:205
|
609 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:205
|
610 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:86
|
611 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:8
|
612 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:103
|
613 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:237
|
617 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:635
|
618 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:232
|
619 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:232
|
620 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:87
|
621 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:193
|
622 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:21
|
623 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:38
|
624 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:77
|
625 |
msgid "Reports"
|
626 |
msgstr ""
|
627 |
|
628 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:636
|
629 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:88
|
630 |
msgid "Sequences"
|
631 |
msgstr ""
|
632 |
|
633 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:637
|
634 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:195
|
635 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:195
|
636 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:89
|
637 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:54
|
638 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:150
|
639 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/class-es-workflow-admin-edit.php:184
|
649 |
msgstr ""
|
650 |
|
651 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:1123
|
652 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:612
|
653 |
msgid "Show a captcha to protect from bot signups."
|
654 |
msgstr ""
|
655 |
|
656 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:72
|
657 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:270
|
658 |
msgid "Comments"
|
659 |
msgstr ""
|
660 |
|
661 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:82
|
662 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:281
|
663 |
msgid "WooCommerce"
|
664 |
msgstr ""
|
665 |
|
666 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:91
|
667 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:330
|
668 |
msgid "EDD"
|
669 |
msgstr ""
|
670 |
|
671 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:100
|
672 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:291
|
673 |
msgid "Contact Form 7"
|
674 |
msgstr ""
|
675 |
|
676 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:109
|
677 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:300
|
678 |
msgid "WPForms"
|
679 |
msgstr ""
|
680 |
|
681 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:118
|
682 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:310
|
683 |
msgid "Give"
|
684 |
msgstr ""
|
685 |
|
686 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:127
|
687 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:320
|
688 |
msgid "Ninja Forms"
|
689 |
msgstr ""
|
690 |
|
886 |
msgstr ""
|
887 |
|
888 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:185
|
889 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:952
|
890 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-form-widget.php:11
|
891 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:11
|
892 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:12
|
905 |
|
906 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:209
|
907 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1492
|
908 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:895
|
909 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:111
|
910 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:162
|
911 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:304
|
912 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:246
|
913 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:213
|
914 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:34
|
915 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:263
|
916 |
msgid "Broadcast"
|
969 |
msgid "OK, I Got it!"
|
970 |
msgstr ""
|
971 |
|
972 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:1061
|
973 |
#, php-format
|
974 |
msgid "%1$s in %2$s on line %3$s"
|
975 |
msgstr ""
|
1085 |
msgstr ""
|
1086 |
|
1087 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1493
|
1088 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:113
|
1089 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:158
|
1090 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:209
|
1091 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:35
|
1092 |
msgid "Post Notification"
|
1093 |
msgstr ""
|
1098 |
msgstr ""
|
1099 |
|
1100 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1548
|
1101 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:247
|
1102 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:460
|
1103 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:496
|
1104 |
msgid "Sending"
|
1113 |
msgstr ""
|
1114 |
|
1115 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:1550
|
1116 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:238
|
1117 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:282
|
1118 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:467
|
1119 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:515
|
1120 |
msgid "Sent"
|
1121 |
msgstr ""
|
1122 |
|
1123 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-install.php:795
|
1124 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/upgrade/es-update-functions.php:772
|
1125 |
msgid ""
|
1126 |
"Your subscription was successful! Kindly check your mailbox and confirm your "
|
1182 |
msgid "Contact Us"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:168
|
1186 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:188
|
1187 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:243
|
1188 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:811
|
1189 |
#, php-format
|
1190 |
msgid "<a href='%s' target='_blank'>Upgrade to ES PRO</a>"
|
1191 |
msgstr ""
|
1192 |
|
1193 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:169
|
1194 |
msgid "Get insights about link clicks. See who are clicking on which links?"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:189
|
1198 |
msgid "Get insights about UTM tracking."
|
1199 |
msgstr ""
|
1200 |
|
1201 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:237
|
1202 |
msgid "Show a captcha in subscription forms to protect from bot signups."
|
1203 |
msgstr ""
|
1204 |
|
1205 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:244
|
1206 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:643
|
1207 |
msgid "Secure your form and avoid spam signups with form Captcha"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:358
|
1211 |
msgid "Sync Comment Users"
|
1212 |
msgstr ""
|
1213 |
|
1214 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:359
|
1215 |
msgid ""
|
1216 |
"Quickly add to your mailing list when someone post a comment on your website."
|
1217 |
msgstr ""
|
1218 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1219 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:360
|
1220 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:389
|
1221 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:422
|
1223 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:486
|
1224 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:518
|
1225 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:550
|
1226 |
+
msgid "How to setup?"
|
1227 |
+
msgstr ""
|
1228 |
+
|
1229 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:361
|
1230 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:390
|
1231 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:423
|
1232 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:455
|
1233 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:487
|
1234 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:519
|
1235 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:551
|
1236 |
msgid "Once you upgrade to "
|
1237 |
msgstr ""
|
1238 |
|
1239 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:361
|
1240 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:364
|
1241 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:390
|
1242 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:423
|
1243 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:455
|
1244 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:487
|
1245 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:519
|
1246 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:551
|
1247 |
msgid "Email Subscribers Starter"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:361
|
1251 |
msgid ""
|
1252 |
"you will have settings panel where you need to enable Comment user sync and "
|
1253 |
"select the list in which you want to add people whenever someone post a\n"
|
1254 |
"\t\tcomment."
|
1255 |
msgstr ""
|
1256 |
|
1257 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:364
|
1258 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:394
|
1259 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:426
|
1260 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:458
|
1261 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:490
|
1262 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:522
|
1263 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:554
|
1264 |
msgid "Checkout "
|
1265 |
msgstr ""
|
1266 |
|
1267 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:364
|
1268 |
msgid "now"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:387
|
1272 |
msgid "Sync WooCommerce Customers"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:388
|
1276 |
msgid ""
|
1277 |
"Are you using WooCommerce for your online business? You can use this "
|
1278 |
"integration to add to a specific list whenever someone make a purchase from "
|
1279 |
"you"
|
1280 |
msgstr ""
|
1281 |
|
1282 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:390
|
1283 |
msgid ""
|
1284 |
"you will have settings panel where you need to enable WooCommerce sync and "
|
1285 |
"select the list in which you want to add people whenever they\n"
|
1287 |
"\t\t\tfrom you."
|
1288 |
msgstr ""
|
1289 |
|
1290 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:420
|
1291 |
msgid "Sync Contact Form 7 users"
|
1292 |
msgstr ""
|
1293 |
|
1294 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:421
|
1295 |
msgid ""
|
1296 |
"Are you using Contact Form 7 for your list building? You can use this "
|
1297 |
"integration to add to a specific list whenever new subscribers added from "
|
1298 |
"Contact Form 7"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:424
|
1302 |
msgid ""
|
1303 |
"you will have settings panel where you need to enable Contact form 7 sync "
|
1304 |
"and select the list in which you want to add people whenever they fill any "
|
1305 |
"of the Contact Form."
|
1306 |
msgstr ""
|
1307 |
|
1308 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:452
|
1309 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:484
|
1310 |
msgid "Sync Donors"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:453
|
1314 |
msgid ""
|
1315 |
"We found that you are using Give WordPress plugin to collect donations. Now, "
|
1316 |
"with this integration, you can add your donors to any of your subscriber "
|
1317 |
"list and send them Newsletters in future."
|
1318 |
msgstr ""
|
1319 |
|
1320 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:456
|
1321 |
msgid ""
|
1322 |
"you will have settings panel where you need to enable Give integration and "
|
1323 |
"select the list in which you want to add people whenever they make donation."
|
1324 |
msgstr ""
|
1325 |
|
1326 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:485
|
1327 |
msgid ""
|
1328 |
"Are you using Give WordPress plugin to collect donations? Want to send Thank "
|
1329 |
"You email to them? You can use this integration to be in touch with them."
|
1330 |
msgstr ""
|
1331 |
|
1332 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:488
|
1333 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:520
|
1334 |
msgid ""
|
1335 |
"you will have settings panel where you need to enable Give sync and select "
|
1336 |
"the list in which you want to add people whenever they make donation."
|
1337 |
msgstr ""
|
1338 |
|
1339 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:516
|
1340 |
msgid "Sync Contacts"
|
1341 |
msgstr ""
|
1342 |
|
1343 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:517
|
1344 |
msgid ""
|
1345 |
"We found that you are using Ninja Forms. Want to add your contact to a "
|
1346 |
"mailing list? You can use this integration to add your contact to add into "
|
1347 |
"mailing list"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:548
|
1351 |
msgid "Sync Customers"
|
1352 |
msgstr ""
|
1353 |
|
1354 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:549
|
1355 |
msgid ""
|
1356 |
"We found that you are using EDD to sell digital goods online. You can use "
|
1357 |
"this integration to send Newsletters/ Post Notifications to your customers."
|
1358 |
msgstr ""
|
1359 |
|
1360 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:552
|
1361 |
msgid ""
|
1362 |
"you will have settings panel where you need to enable EDD sync and select "
|
1363 |
"the list in which you want to add people whenever they purchase something "
|
1364 |
"from you."
|
1365 |
msgstr ""
|
1366 |
|
1367 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:645
|
1368 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:816
|
1369 |
#, php-format
|
1370 |
msgid ""
|
1371 |
"Get <b>10% flat discount</b> if you upgrade now!. <br /><br />Use coupon "
|
1372 |
"code <b>PREMIUM10</b>"
|
1373 |
msgstr ""
|
1374 |
|
1375 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:683
|
1376 |
msgid ""
|
1377 |
"Get rid of setting Post Notifications for each list and avoid chances of "
|
1378 |
"sending duplicate emails to your subscribers."
|
1379 |
msgstr ""
|
1380 |
|
1381 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:685
|
1382 |
msgid " Upgrade to Email Subscribers PRO and select multiple lists."
|
1383 |
msgstr ""
|
1384 |
|
1385 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:687
|
1386 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:876
|
1387 |
#, php-format
|
1388 |
msgid ""
|
1389 |
"Get a <b>10% flat discount</b> if you upgrade now!. <br /><br />Use coupon "
|
1390 |
"code <b>PREMIUM10</b>"
|
1391 |
msgstr ""
|
1392 |
|
1393 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:705
|
1394 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:721
|
1395 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:735
|
1396 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:765
|
1397 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:833
|
1398 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:94
|
1399 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:725
|
1400 |
msgid "Premium"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:815
|
1404 |
msgid ""
|
1405 |
"Link Tracking, UTM Tracking and Scheduling Options are part of Email "
|
1406 |
"Subscribers PRO"
|
1407 |
msgstr ""
|
1408 |
|
1409 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:874
|
1410 |
+
msgid ""
|
1411 |
+
"Get campaign insights like geo location, device info, email client info, "
|
1412 |
+
"open/ click activity etc with Email Subscribers PRO."
|
1413 |
+
msgstr ""
|
1414 |
+
|
1415 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:886
|
1416 |
+
msgid "Campaign Details"
|
1417 |
+
msgstr ""
|
1418 |
+
|
1419 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:891
|
1420 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:362
|
1421 |
+
msgid "Recipients"
|
1422 |
+
msgstr ""
|
1423 |
+
|
1424 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:895
|
1425 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:222
|
1426 |
+
msgid "Type: "
|
1427 |
+
msgstr ""
|
1428 |
+
|
1429 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:897
|
1430 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:224
|
1431 |
+
msgid "From: "
|
1432 |
+
msgstr ""
|
1433 |
+
|
1434 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:897
|
1435 |
+
msgid "hello@icegram.com"
|
1436 |
+
msgstr ""
|
1437 |
+
|
1438 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:902
|
1439 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:229
|
1440 |
+
msgid "List(s): "
|
1441 |
+
msgstr ""
|
1442 |
+
|
1443 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:902
|
1444 |
+
msgid "Test, Main "
|
1445 |
+
msgstr ""
|
1446 |
+
|
1447 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:904
|
1448 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:231
|
1449 |
+
msgid "Subject: "
|
1450 |
+
msgstr ""
|
1451 |
+
|
1452 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:909
|
1453 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:236
|
1454 |
+
msgid "Status: "
|
1455 |
+
msgstr ""
|
1456 |
+
|
1457 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:915
|
1458 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:251
|
1459 |
+
msgid "Date: "
|
1460 |
+
msgstr ""
|
1461 |
+
|
1462 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:915
|
1463 |
+
msgid "July 1, 2020 10:00 AM"
|
1464 |
+
msgstr ""
|
1465 |
+
|
1466 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:921
|
1467 |
+
msgid "Open and click activity"
|
1468 |
+
msgstr ""
|
1469 |
+
|
1470 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:930
|
1471 |
+
msgid "Country Opens"
|
1472 |
+
msgstr ""
|
1473 |
+
|
1474 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:933
|
1475 |
+
msgid "Device Opens"
|
1476 |
+
msgstr ""
|
1477 |
+
|
1478 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:942
|
1479 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:321
|
1480 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:562
|
1481 |
+
msgid "Country"
|
1482 |
+
msgstr ""
|
1483 |
+
|
1484 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:945
|
1485 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1002
|
1486 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:324
|
1487 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:421
|
1488 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:729
|
1489 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:78
|
1490 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:136
|
1491 |
+
msgid "Opens"
|
1492 |
+
msgstr ""
|
1493 |
+
|
1494 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:952
|
1495 |
+
msgid "United States"
|
1496 |
+
msgstr ""
|
1497 |
+
|
1498 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:960
|
1499 |
+
msgid "Australia"
|
1500 |
+
msgstr ""
|
1501 |
+
|
1502 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:968
|
1503 |
+
msgid "Spain"
|
1504 |
+
msgstr ""
|
1505 |
+
|
1506 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:976
|
1507 |
+
msgid "France"
|
1508 |
+
msgstr ""
|
1509 |
+
|
1510 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:984
|
1511 |
+
msgid "Russia"
|
1512 |
+
msgstr ""
|
1513 |
+
|
1514 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:999
|
1515 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1118
|
1516 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:418
|
1517 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:564
|
1518 |
+
msgid "Device"
|
1519 |
+
msgstr ""
|
1520 |
+
|
1521 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1010
|
1522 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1226
|
1523 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1379
|
1524 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:437
|
1525 |
+
msgid "Desktop"
|
1526 |
+
msgstr ""
|
1527 |
+
|
1528 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1021
|
1529 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1195
|
1530 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1257
|
1531 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1348
|
1532 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1410
|
1533 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:454
|
1534 |
+
msgid "Mobile"
|
1535 |
+
msgstr ""
|
1536 |
+
|
1537 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1032
|
1538 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:445
|
1539 |
+
msgid "Tablet"
|
1540 |
+
msgstr ""
|
1541 |
+
|
1542 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1049
|
1543 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:493
|
1544 |
+
msgid "Link Activity"
|
1545 |
+
msgstr ""
|
1546 |
+
|
1547 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1056
|
1548 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:500
|
1549 |
+
msgid "Link (URL)"
|
1550 |
+
msgstr ""
|
1551 |
+
|
1552 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1058
|
1553 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:502
|
1554 |
+
msgid "Unique Clicks"
|
1555 |
+
msgstr ""
|
1556 |
+
|
1557 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1060
|
1558 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:504
|
1559 |
+
msgid "Total Clicks"
|
1560 |
+
msgstr ""
|
1561 |
+
|
1562 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1068
|
1563 |
+
msgid "https://www.icegram.com/automate-workflow-and-reduce-chaos/"
|
1564 |
+
msgstr ""
|
1565 |
+
|
1566 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1081
|
1567 |
+
msgid "https://www.icegram.com/how-to-keep-email-out-of-spam-folder/"
|
1568 |
+
msgstr ""
|
1569 |
+
|
1570 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1110
|
1571 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:554
|
1572 |
+
msgid "Last 10 Open Activity"
|
1573 |
+
msgstr ""
|
1574 |
+
|
1575 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1119
|
1576 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:565
|
1577 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:375
|
1578 |
+
msgid "Browser"
|
1579 |
+
msgstr ""
|
1580 |
+
|
1581 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1120
|
1582 |
+
msgid "Client"
|
1583 |
+
msgstr ""
|
1584 |
+
|
1585 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1121
|
1586 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:567
|
1587 |
+
msgid "OS"
|
1588 |
+
msgstr ""
|
1589 |
+
|
1590 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1129
|
1591 |
+
msgid "bernardlane@gmail.com"
|
1592 |
+
msgstr ""
|
1593 |
+
|
1594 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1142
|
1595 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1295
|
1596 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1448
|
1597 |
+
msgid "Mozilla Firefox"
|
1598 |
+
msgstr ""
|
1599 |
+
|
1600 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1147
|
1601 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1177
|
1602 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1300
|
1603 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1330
|
1604 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1453
|
1605 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1483
|
1606 |
+
msgid "Gmail"
|
1607 |
+
msgstr ""
|
1608 |
+
|
1609 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1152
|
1610 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1182
|
1611 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1244
|
1612 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1305
|
1613 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1335
|
1614 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1397
|
1615 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1458
|
1616 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1488
|
1617 |
+
msgid "Windows"
|
1618 |
+
msgstr ""
|
1619 |
+
|
1620 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1159
|
1621 |
+
msgid "john@gmail.com"
|
1622 |
+
msgstr ""
|
1623 |
+
|
1624 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1172
|
1625 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1325
|
1626 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1478
|
1627 |
+
msgid "Google Chrome"
|
1628 |
+
msgstr ""
|
1629 |
+
|
1630 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1189
|
1631 |
+
msgid "pasha@gmail.com"
|
1632 |
+
msgstr ""
|
1633 |
+
|
1634 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1203
|
1635 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1213
|
1636 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1265
|
1637 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1275
|
1638 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1356
|
1639 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1366
|
1640 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1418
|
1641 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1428
|
1642 |
+
msgid "Android"
|
1643 |
+
msgstr ""
|
1644 |
+
|
1645 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1208
|
1646 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1270
|
1647 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1361
|
1648 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1423
|
1649 |
+
msgid "Gmail App (Android)"
|
1650 |
+
msgstr ""
|
1651 |
+
|
1652 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1220
|
1653 |
+
msgid "mark@twone.com"
|
1654 |
+
msgstr ""
|
1655 |
+
|
1656 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1234
|
1657 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1387
|
1658 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:650
|
1659 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:657
|
1660 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:663
|
1661 |
+
msgid "Unknown"
|
1662 |
+
msgstr ""
|
1663 |
+
|
1664 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1239
|
1665 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1392
|
1666 |
+
msgid "Thunderbird"
|
1667 |
+
msgstr ""
|
1668 |
+
|
1669 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1251
|
1670 |
+
msgid "smith@gmail.com"
|
1671 |
+
msgstr ""
|
1672 |
+
|
1673 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1282
|
1674 |
+
msgid "bradtke@gmail.com"
|
1675 |
+
msgstr ""
|
1676 |
+
|
1677 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1312
|
1678 |
+
msgid "bveum@gmail.com"
|
1679 |
+
msgstr ""
|
1680 |
+
|
1681 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1342
|
1682 |
+
msgid "tracy@gmail.com"
|
1683 |
+
msgstr ""
|
1684 |
+
|
1685 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1373
|
1686 |
+
msgid "domenick52@twone.com"
|
1687 |
+
msgstr ""
|
1688 |
+
|
1689 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1404
|
1690 |
+
msgid "stanton@gmail.com"
|
1691 |
+
msgstr ""
|
1692 |
+
|
1693 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1435
|
1694 |
+
msgid "alessia@gmail.com"
|
1695 |
+
msgstr ""
|
1696 |
+
|
1697 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:1465
|
1698 |
+
msgid "finn.lynch@gmail.com"
|
1699 |
+
msgstr ""
|
1700 |
+
|
1701 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/class-email-subscribers-public.php:110
|
1702 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-subscription.php:420
|
1703 |
msgid "Please enter email address"
|
1750 |
msgid "Are you sure you want to unsubscribe?"
|
1751 |
msgstr ""
|
1752 |
|
1753 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:211
|
1754 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:374
|
1755 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:401
|
1756 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:20
|
1757 |
+
msgid "Report"
|
1758 |
msgstr ""
|
1759 |
|
1760 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:218
|
1761 |
+
#, php-format
|
1762 |
+
msgid "%d "
|
1763 |
+
msgid_plural "%d"
|
1764 |
+
msgstr[0] ""
|
1765 |
+
msgstr[1] ""
|
1766 |
+
|
1767 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:218
|
1768 |
+
msgid " Recipients"
|
1769 |
+
msgstr ""
|
1770 |
+
|
1771 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:242
|
1772 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:54
|
1773 |
msgid "In Queue"
|
1774 |
msgstr ""
|
1775 |
|
1776 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:258
|
1777 |
+
msgid "Statistics"
|
1778 |
msgstr ""
|
1779 |
|
1780 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:266
|
1781 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:306
|
1782 |
+
msgid "Opened"
|
1783 |
+
msgstr ""
|
1784 |
+
|
1785 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:274
|
1786 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:144
|
1787 |
+
msgid " Avg Open Rate"
|
1788 |
+
msgstr ""
|
1789 |
+
|
1790 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:290
|
1791 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:160
|
1792 |
+
msgid "Avg Click Rate"
|
1793 |
+
msgstr ""
|
1794 |
+
|
1795 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:301
|
1796 |
+
msgid "Open and Click activity"
|
1797 |
+
msgstr ""
|
1798 |
+
|
1799 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:309
|
1800 |
+
msgid "Country Info"
|
1801 |
+
msgstr ""
|
1802 |
+
|
1803 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:312
|
1804 |
+
msgid "Device Info"
|
1805 |
+
msgstr ""
|
1806 |
+
|
1807 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:384
|
1808 |
+
msgid "No country data found."
|
1809 |
+
msgstr ""
|
1810 |
+
|
1811 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:475
|
1812 |
+
msgid "No device data found."
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:566
|
1816 |
+
msgid "Mail Client"
|
1817 |
+
msgstr ""
|
1818 |
+
|
1819 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:677
|
1820 |
+
msgid "No open activity found."
|
1821 |
+
msgstr ""
|
1822 |
+
|
1823 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:734
|
1824 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:87
|
1825 |
msgid "Clicks"
|
1826 |
msgstr ""
|
1827 |
|
1828 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:47
|
1829 |
+
msgid "Sent on"
|
1830 |
+
msgstr ""
|
1831 |
+
|
1832 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:59
|
1833 |
+
msgid "Started at"
|
1834 |
+
msgstr ""
|
1835 |
+
|
1836 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:96
|
1837 |
msgid "Lost"
|
1838 |
msgstr ""
|
1839 |
|
1878 |
msgid "Last 60 days"
|
1879 |
msgstr ""
|
1880 |
|
|
|
|
|
|
|
|
|
1881 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:152
|
1882 |
msgid "Messages Sent"
|
1883 |
msgstr ""
|
1884 |
|
|
|
|
|
|
|
|
|
1885 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:193
|
1886 |
msgid "Jump to: "
|
1887 |
msgstr ""
|
1977 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:539
|
1978 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:311
|
1979 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:92
|
1980 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:291
|
1981 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:294
|
1982 |
msgid "Status"
|
1983 |
msgstr ""
|
2284 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:412
|
2285 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:449
|
2286 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:325
|
2287 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:289
|
2288 |
msgid "Subject"
|
2289 |
msgstr ""
|
2290 |
|
2522 |
"Edit</a>"
|
2523 |
msgstr ""
|
2524 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2525 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:405
|
2526 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:518
|
2527 |
#, php-format
|
2531 |
msgstr ""
|
2532 |
|
2533 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:535
|
2534 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:290
|
2535 |
msgid "Type"
|
2536 |
msgstr ""
|
2537 |
|
2633 |
|
2634 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:271
|
2635 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-export-subscribers.php:77
|
2636 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:294
|
2637 |
msgid "Total Contacts"
|
2638 |
msgstr ""
|
2639 |
|
2641 |
msgid "Last 60 Days"
|
2642 |
msgstr ""
|
2643 |
|
|
|
|
|
|
|
|
|
2644 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:336
|
2645 |
msgid " Add New Contact"
|
2646 |
msgstr ""
|
2764 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:993
|
2765 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:860
|
2766 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:569
|
2767 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:272
|
2768 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:356
|
2769 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:263
|
2770 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/class-es-workflows-table.php:324
|
2771 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/workflows/admin/views/action.php:30
|
3380 |
msgid "Design Template"
|
3381 |
msgstr ""
|
3382 |
|
|
|
|
|
|
|
|
|
3383 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:372
|
3384 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:400
|
3385 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:273
|
3386 |
msgid "Preview"
|
3387 |
msgstr ""
|
3388 |
|
|
|
|
|
|
|
|
|
3389 |
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:386
|
3390 |
msgid ""
|
3391 |
"There could be a slight variation on how your customer will view the email "
|
3485 |
msgid "Save Campaign"
|
3486 |
msgstr ""
|
3487 |
|
3488 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:43
|
3489 |
#, php-format
|
3490 |
msgid ""
|
3491 |
"<a href='%s' class='px-4 py-2 ig-es-imp-button'>Send Queued Emails Now</a>"
|
3492 |
msgstr ""
|
3493 |
|
3494 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:45
|
3495 |
msgid ""
|
3496 |
"<span class='ig-es-send-queue-emails button-disabled'>Send Queued Emails "
|
3497 |
"Now</span>"
|
3498 |
msgstr ""
|
3499 |
|
3500 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:46
|
3501 |
msgid "<br /><span class='es-helper'>No emails found in queue</span>"
|
3502 |
msgstr ""
|
3503 |
|
3517 |
msgid "Viewed Date"
|
3518 |
msgstr ""
|
3519 |
|
3520 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:116
|
3521 |
+
msgid "View Activity "
|
3522 |
+
msgstr ""
|
3523 |
+
|
3524 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:119
|
3525 |
+
msgid "Campaign Analytics"
|
3526 |
+
msgstr ""
|
3527 |
+
|
3528 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:176
|
3529 |
msgid "Viewed"
|
3530 |
msgstr ""
|
3531 |
|
3532 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:176
|
3533 |
msgid "Not yet viewed"
|
3534 |
msgstr ""
|
3535 |
|
3536 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:189
|
3537 |
msgid "No Reports avaliable."
|
3538 |
msgstr ""
|
3539 |
|
3540 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:231
|
3541 |
msgid "Completed"
|
3542 |
msgstr ""
|
3543 |
|
3544 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:271
|
3545 |
msgid "View"
|
3546 |
msgstr ""
|
3547 |
|
3548 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:292
|
3549 |
msgid "Start Date"
|
3550 |
msgstr ""
|
3551 |
|
3552 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:293
|
3553 |
msgid "End Date"
|
3554 |
msgstr ""
|
3555 |
|
3556 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:460
|
3557 |
msgid "You do not have permission to view notification"
|
3558 |
msgstr ""
|
3559 |
|
3560 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:472
|
3561 |
msgid "You do not have permission to delete notification"
|
3562 |
msgstr ""
|
3563 |
|
3564 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:478
|
3565 |
msgid "Report has been deleted successfully!"
|
3566 |
msgstr ""
|
3567 |
|
3568 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:487
|
3569 |
msgid "You do not have permission to preview notification"
|
3570 |
msgstr ""
|
3571 |
|
3572 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:505
|
3573 |
msgid "Reports have been deleted successfully!"
|
3574 |
msgstr ""
|
3575 |
|
3576 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:517
|
3577 |
msgid "Preview Email"
|
3578 |
msgstr ""
|
3579 |
|
3580 |
+
#: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:520
|
3581 |
msgid ""
|
3582 |
"This is how the email you sent may look. <br>Note: Different email services "
|
3583 |
"(like gmail, yahoo etc) display email content differently. So there could be "
|
readme.txt
CHANGED
@@ -6,7 +6,7 @@ Tags: email marketing, subscription, autoresponder, post notification, welcome e
|
|
6 |
Requires at least: 3.9
|
7 |
Tested up to: 5.4.2
|
8 |
Requires PHP: 5.6
|
9 |
-
Stable tag: 4.
|
10 |
License: GPLv3
|
11 |
License URI: http://www.gnu.org/licenses
|
12 |
|
@@ -67,7 +67,8 @@ Email Subscribers is a fully-featured subscription plugin specially created keep
|
|
67 |
> 👉 **Offer & promotional email templates** - High converting ready-to-use templates for any occasion, events or holiday season.
|
68 |
> 👉 **New blog post notification email templates** - Awesome templates that will encourage contacts to read your blog post
|
69 |
> 👉 **Automatic Background Sending**
|
70 |
-
> 👉 **Active Contacts Growth
|
|
|
71 |
> 👉 **Connect with SMTP / Email Sending Services**
|
72 |
> 👉 **Email Open Tracking**
|
73 |
> 👉 **Link Tracking**
|
@@ -301,6 +302,10 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
|
|
301 |
|
302 |
== Changelog ==
|
303 |
|
|
|
|
|
|
|
|
|
304 |
**4.4.10.1 (02.07.2020)**
|
305 |
|
306 |
* Fix: Call to undefined method ES_Install::get_441_schema()
|
6 |
Requires at least: 3.9
|
7 |
Tested up to: 5.4.2
|
8 |
Requires PHP: 5.6
|
9 |
+
Stable tag: 4.5.0
|
10 |
License: GPLv3
|
11 |
License URI: http://www.gnu.org/licenses
|
12 |
|
67 |
> 👉 **Offer & promotional email templates** - High converting ready-to-use templates for any occasion, events or holiday season.
|
68 |
> 👉 **New blog post notification email templates** - Awesome templates that will encourage contacts to read your blog post
|
69 |
> 👉 **Automatic Background Sending**
|
70 |
+
> 👉 **Active Contacts Growth**
|
71 |
+
> 👉 **Advance Campaign Reports**
|
72 |
> 👉 **Connect with SMTP / Email Sending Services**
|
73 |
> 👉 **Email Open Tracking**
|
74 |
> 👉 **Link Tracking**
|
302 |
|
303 |
== Changelog ==
|
304 |
|
305 |
+
**4.5.0 (07.07.2020)**
|
306 |
+
|
307 |
+
* New: Advance Campaign Reports [PRO]
|
308 |
+
|
309 |
**4.4.10.1 (02.07.2020)**
|
310 |
|
311 |
* Fix: Call to undefined method ES_Install::get_441_schema()
|