Imagify Image Optimizer - Version 1.6

Version Description

  • NEW Features:
    • Knowing how many MB/GB you need to optimize your existing and future images is complicated. We love to make things easiers, so Imagify will do it and advise you the best plan.
    • You can now buy all the plans without leaving your WordPress administration
  • Improvement
    • Some styles fixed in the interface
Download this release

Release Info

Developer wp_media
Plugin Icon 128x128 Imagify Image Optimizer
Version 1.6
Comparing to
See all releases

Code changes from version 1.5.10 to 1.6

assets/css/admin.css CHANGED
@@ -147,6 +147,12 @@ body.imagify-modal-is-open {
147
  background-color: #40b1d0 !important;
148
  box-shadow: 0 3px 0 #338ea6 !important;
149
  }
 
 
 
 
 
 
150
  .imagify-sweet-alert button.swal2-cancel {
151
  background: #777 !important;
152
  box-shadow: 0 3px 0 #444 !important;
@@ -1242,7 +1248,7 @@ input[id^="imagify_sizes_"]:checked + label {
1242
  line-height: 1.3;
1243
  font-weight: bold;
1244
  background: #F7A933;
1245
- transform-origine: 50% 50%;
1246
  transform: rotateZ(-2deg) rotateX(-10deg) skewX(-2deg) skewY(-3deg);
1247
  text-shadow: 1px 1px 0 rgba(0,0,0,0.2);
1248
  }
@@ -1423,6 +1429,14 @@ a.btn-rocket:focus {
1423
  background: #D0021B;
1424
  }
1425
 
 
 
 
 
 
 
 
 
1426
  .imagify-notice-title {
1427
  font-size: 15px;
1428
  }
@@ -1775,6 +1789,9 @@ ul.imagify-datas-details.imagify-datas-details {
1775
  #wp-admin-bar-imagify-profile .imagify-progress {
1776
  height: 15px;
1777
  }
 
 
 
1778
  .imagify-bar-positive .imagify-progress {
1779
  background: #8CC152;
1780
  }
@@ -2501,6 +2518,9 @@ td.imagify-cell-filename {
2501
  display: block;
2502
  visibility: visible;
2503
  }
 
 
 
2504
  #imagify-visual-comparison .close-btn,
2505
  .imagify-visual-comparison .close-btn {
2506
  top: 50px;
@@ -2707,69 +2727,44 @@ td.imagify-cell-filename {
2707
  min-width: 925px;
2708
  padding: 0;
2709
  }
 
 
 
 
 
 
 
 
 
2710
  .imagify-payment-modal .imagify-modal-main {
2711
  width: 70%;
2712
  }
 
 
 
 
 
 
 
 
 
 
 
2713
  .imagify-payment-modal .imagify-modal-sidebar {
2714
  width: 30%;
2715
  padding: 15px 20px;
2716
  background: #1F2332;
2717
  color: #FFF;
2718
  }
2719
- .imagify-payment-steps {
2720
- padding-top: 15px;
2721
- margin-top: 0;
2722
- margin-left: 0;
2723
- list-style: none;
2724
- counter-reset: steps;
2725
- }
2726
- .imagify-payment-steps li {
2727
- position: relative;
2728
- display: inline-block;
2729
- counter-increment: steps;
2730
- font-weight: bold;
2731
- }
2732
- .imagify-payment-steps li + li {
2733
- margin-left: 35px;
2734
- }
2735
- .imagify-payment-steps li + li:after {
2736
- content: "";
2737
- position: absolute;
2738
- top: 19px;
2739
- left: -90px;
2740
- z-index: 1;
2741
- width: 150px;
2742
- height: 2px;
2743
- background: #E5EBEF;
2744
- }
2745
- .imagify-payment-steps li + li.active:after {
2746
- background: #40B1D0;
2747
- }
2748
- .imagify-payment-steps li:before {
2749
- display: block;
2750
- position: relative;
2751
- content: counter( steps, decimal );
2752
- width: 36px;
2753
- height: 36px;
2754
- margin: 0 auto .3em;
2755
- border: 2px solid #E5EBEF;
2756
- text-align: center;
2757
- line-height: 34px;
2758
- font-size: 1.4em;
2759
- color: #E5EBEF;
2760
- background: #FFF;
2761
- border-radius: 50%;
2762
- z-index: 2;
2763
- }
2764
- .imagify-payment-steps .active:before {
2765
- color: #40B1D0;
2766
- border-color: #40B1D0;
2767
  }
2768
  .imagify-modal-section {
2769
  padding: 0 25px;
2770
  }
2771
  .imagify-modal-section.section-gray {
2772
- margin: 1em 0;
2773
  padding: 10px 25px 15px;
2774
  background: #F6F7FB;
2775
  }
@@ -2777,12 +2772,28 @@ td.imagify-cell-filename {
2777
  padding: 8px 25px 10px;
2778
  }
2779
  .imagify-modal-section .imagify-modal-title:first-child {
2780
- margin-top: .3em;
 
 
 
 
2781
  margin-bottom: .5em;
2782
  }
2783
  .imagify-modal-title {
2784
  font-size: 1.8em;
2785
- font-weight: lighter;
 
 
 
 
 
 
 
 
 
 
 
 
2786
  }
2787
 
2788
  .imagify-border-styled {
@@ -2828,6 +2839,9 @@ td.imagify-cell-filename {
2828
  .imagify-modal .imagify-cols {
2829
  padding: 0 20px;
2830
  }
 
 
 
2831
  .imagify-iconed {
2832
  position: relative;
2833
  text-align: left;
@@ -2856,7 +2870,7 @@ td.imagify-cell-filename {
2856
  }
2857
  .imagify-payment-modal .close-btn i {
2858
  margin-left: -3.5px;
2859
- margin-top: 1px;
2860
  }
2861
  .imagify-payment-modal .close-btn:hover {
2862
  background: #F6F7FB;
@@ -2901,6 +2915,10 @@ td.imagify-cell-filename {
2901
  padding-top:8px;
2902
  padding-bottom: 8px;
2903
  }
 
 
 
 
2904
  .imagify-offer-header .imagify-inline-options input[type="radio"]:not(:checked) + label,
2905
  .imagify-offer-header .imagify-inline-options input[type="radio"]:checked + label {
2906
  position: relative;
@@ -2998,14 +3016,14 @@ div.imagify-col-checkbox {
2998
  .imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked) + label:before,
2999
  .imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked + label:before {
3000
  margin: 0;
3001
- top: -3px;
3002
  left: 6px;
3003
  -webkit-transition: all .275s;
3004
  transition: all .275s;
3005
  }
3006
  .imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked) + label:after,
3007
  .imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked + label:after {
3008
- top: 0;
3009
  left: 13px;
3010
  }
3011
  .imagify-col-checkbox label {
@@ -3026,7 +3044,7 @@ div.imagify-col-checkbox {
3026
  transition: all .275s;
3027
  }
3028
  .imagify-approx {
3029
- display: block;
3030
  font-size: 11px;
3031
  line-height: 1.2;
3032
  -webkit-transition: all .275s;
@@ -3040,6 +3058,10 @@ div.imagify-col-price {
3040
  padding-left: 0;
3041
  padding-right: 0;
3042
  }
 
 
 
 
3043
  .imagify-flex-table .imagify-price-complement {
3044
  padding-right: 0;
3045
  font-size: 10px;
@@ -3117,19 +3139,112 @@ span.imagify-price-by {
3117
  color: #2E3243;
3118
  }
3119
 
 
 
 
 
 
 
 
 
 
 
3120
  .imagify-submit-line {
 
 
 
 
 
 
 
 
 
3121
  margin: 2em 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3122
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3123
  .imagify-submit-line button {
3124
  font-size: 16px;
3125
  }
3126
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3127
  .imagify-footer-lines {
3128
  width: 500px;
3129
  max-width: 100%;
3130
- margin: 2em auto 1em;
3131
  font-size: 0.85em;
3132
- line-height: 1.6;
3133
  }
3134
 
3135
  /* Year selected */
@@ -3182,6 +3297,9 @@ div.imagify-col-details {
3182
  .imagify-pricing-table .imagify-offer-line:first-child {
3183
  margin-top: .75em;
3184
  }
 
 
 
3185
  .imagify-pricing-table .imagify-offer-line + .imagify-offer-line {
3186
  margin-top: -2px;
3187
  }
@@ -3538,10 +3656,9 @@ p.imagify-modal-sidebar-title {
3538
  }
3539
 
3540
  #imagify-payment-iframe {
3541
- width: 100%;
3542
- height: 375px;
3543
- margin-top: 1em;
3544
- background: #f6f7fb url(../images/loader-balls.svg) 50% 175px no-repeat;
3545
  }
3546
 
3547
  .imagify-success-view {
147
  background-color: #40b1d0 !important;
148
  box-shadow: 0 3px 0 #338ea6 !important;
149
  }
150
+ .imagify-sweet-alert button.loading {
151
+ border-radius: 100% !important;
152
+ height: 40px !important;
153
+ padding:0!important;
154
+ box-shadow: none!important;
155
+ }
156
  .imagify-sweet-alert button.swal2-cancel {
157
  background: #777 !important;
158
  box-shadow: 0 3px 0 #444 !important;
1248
  line-height: 1.3;
1249
  font-weight: bold;
1250
  background: #F7A933;
1251
+ transform-origin: 50% 50%;
1252
  transform: rotateZ(-2deg) rotateX(-10deg) skewX(-2deg) skewY(-3deg);
1253
  text-shadow: 1px 1px 0 rgba(0,0,0,0.2);
1254
  }
1429
  background: #D0021B;
1430
  }
1431
 
1432
+ .imagify-popin-message {
1433
+ padding: 5px 15px;
1434
+ text-align: left;
1435
+ }
1436
+ .imagify-popin-message.imagify-error p {
1437
+ color: #FFF;
1438
+ }
1439
+
1440
  .imagify-notice-title {
1441
  font-size: 15px;
1442
  }
1789
  #wp-admin-bar-imagify-profile .imagify-progress {
1790
  height: 15px;
1791
  }
1792
+ .imagify-progress {
1793
+ transition: width .3s;
1794
+ }
1795
  .imagify-bar-positive .imagify-progress {
1796
  background: #8CC152;
1797
  }
2518
  display: block;
2519
  visibility: visible;
2520
  }
2521
+ .js .imagify-iframe-viewing .close-btn {
2522
+ display: none;
2523
+ }
2524
  #imagify-visual-comparison .close-btn,
2525
  .imagify-visual-comparison .close-btn {
2526
  top: 50px;
2727
  min-width: 925px;
2728
  padding: 0;
2729
  }
2730
+ .imagify-modal-content.imagify-iframe-viewing {
2731
+ width: 980px;
2732
+ height: 672px;
2733
+ overflow: hidden;
2734
+ }
2735
+ .imagify-iframe-viewing #imagify-payment-process-view {
2736
+ width: 980px;
2737
+ height: 668px;
2738
+ }
2739
  .imagify-payment-modal .imagify-modal-main {
2740
  width: 70%;
2741
  }
2742
+ .imagify-iframe-viewing .imagify-modal-main {
2743
+ width: auto;
2744
+ }
2745
+ .imagify-payment-modal .imagify-modal-content.imagify-success-viewing {
2746
+ min-width: auto;
2747
+ width: 450px;
2748
+ min-height: 300px;
2749
+ }
2750
+ .imagify-success-viewing .imagify-modal-main {
2751
+ width: 100%;
2752
+ }
2753
  .imagify-payment-modal .imagify-modal-sidebar {
2754
  width: 30%;
2755
  padding: 15px 20px;
2756
  background: #1F2332;
2757
  color: #FFF;
2758
  }
2759
+ .imagify-modal-content.imagify-iframe-viewing .imagify-modal-sidebar,
2760
+ .imagify-modal-content.imagify-success-viewing .imagify-modal-sidebar {
2761
+ display: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2762
  }
2763
  .imagify-modal-section {
2764
  padding: 0 25px;
2765
  }
2766
  .imagify-modal-section.section-gray {
2767
+ margin: 0 0 1em;
2768
  padding: 10px 25px 15px;
2769
  background: #F6F7FB;
2770
  }
2772
  padding: 8px 25px 10px;
2773
  }
2774
  .imagify-modal-section .imagify-modal-title:first-child {
2775
+ margin-top: 1em;
2776
+ margin-bottom: 1.5em;
2777
+ }
2778
+ .imagify-modal-section.section-gray .imagify-modal-title {
2779
+ margin-top: .5em;
2780
  margin-bottom: .5em;
2781
  }
2782
  .imagify-modal-title {
2783
  font-size: 1.8em;
2784
+ }
2785
+ .imagify-analyzing .imagify-numbers-calc,
2786
+ .imagify-numbers-notcalc,
2787
+ .imagify-modal-section.imagify-analyzing .imagify-modal-cols,
2788
+ .imagify-modal-section .imagify-loader {
2789
+ display: none;
2790
+ }
2791
+ .imagify-analyzing .imagify-numbers-notcalc,
2792
+ .imagify-modal-section.imagify-analyzing .imagify-loader {
2793
+ display: block;
2794
+ }
2795
+ .imagify-modal-section .imagify-loader {
2796
+ margin: 2em auto;
2797
  }
2798
 
2799
  .imagify-border-styled {
2839
  .imagify-modal .imagify-cols {
2840
  padding: 0 20px;
2841
  }
2842
+ .imagify-payment-modal .imagify-iconed {
2843
+ margin: 1.5em 5em 1.5em 0;
2844
+ }
2845
  .imagify-iconed {
2846
  position: relative;
2847
  text-align: left;
2870
  }
2871
  .imagify-payment-modal .close-btn i {
2872
  margin-left: -3.5px;
2873
+ margin-top: -0.5px;
2874
  }
2875
  .imagify-payment-modal .close-btn:hover {
2876
  background: #F6F7FB;
2915
  padding-top:8px;
2916
  padding-bottom: 8px;
2917
  }
2918
+ .imagify-offer-onetimes > div {
2919
+ padding-top: 15px;
2920
+ padding-bottom: 15px;
2921
+ }
2922
  .imagify-offer-header .imagify-inline-options input[type="radio"]:not(:checked) + label,
2923
  .imagify-offer-header .imagify-inline-options input[type="radio"]:checked + label {
2924
  position: relative;
3016
  .imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked) + label:before,
3017
  .imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked + label:before {
3018
  margin: 0;
3019
+ top: -2px;
3020
  left: 6px;
3021
  -webkit-transition: all .275s;
3022
  transition: all .275s;
3023
  }
3024
  .imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked) + label:after,
3025
  .imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked + label:after {
3026
+ top: 1px;
3027
  left: 13px;
3028
  }
3029
  .imagify-col-checkbox label {
3044
  transition: all .275s;
3045
  }
3046
  .imagify-approx {
3047
+ display: none;
3048
  font-size: 11px;
3049
  line-height: 1.2;
3050
  -webkit-transition: all .275s;
3058
  padding-left: 0;
3059
  padding-right: 0;
3060
  }
3061
+ .imagify-offer-monthly .imagify-flex-table .imagify-price-block,
3062
+ .imagify-offer-monthlies .imagify-price-block {
3063
+ padding-top: 0;
3064
+ }
3065
  .imagify-flex-table .imagify-price-complement {
3066
  padding-right: 0;
3067
  font-size: 10px;
3139
  color: #2E3243;
3140
  }
3141
 
3142
+ .imagify-not-enough-title {
3143
+ display: none;
3144
+ }
3145
+ .imagify-enough-free .imagify-not-enough-title {
3146
+ display: block;
3147
+ }
3148
+ .imagify-enough-free .imagify-enough-title {
3149
+ display: none;
3150
+ }
3151
+
3152
  .imagify-submit-line {
3153
+ display: -webkit-box;
3154
+ display: -ms-flexbox;
3155
+ display: flex;
3156
+ -webkit-box-pack: justify;
3157
+ -ms-flex-pack: justify;
3158
+ justify-content: space-between;
3159
+ -webkit-box-align: center;
3160
+ -ms-flex-align: center;
3161
+ align-items: center;
3162
  margin: 2em 0;
3163
+ text-align: left;
3164
+ }
3165
+ .imagify-coupon-section {
3166
+ display: -webkit-box;
3167
+ display: -ms-flexbox;
3168
+ display: flex;
3169
+ -webkit-box-align: center;
3170
+ -ms-flex-align: center;
3171
+ align-items: center;
3172
+ }
3173
+ .imagify-coupon-section p {
3174
+ margin: 0;
3175
+ line-height: 1.3;
3176
+ }
3177
+ .imagify-coupon-text {
3178
+ width: 200px;
3179
+ max-width: 100%;
3180
+ padding-right: 15px;
3181
+ }
3182
+ .imagify-coupon-loader {
3183
+ display: none;
3184
+ }
3185
+ .imagify-coupon-text.checking {
3186
+ text-align: right;
3187
+ }
3188
+ .imagify-coupon-text.checking .imagify-coupon-loader {
3189
+ display: inline;
3190
+ }
3191
+ .imagify-coupon-text.checking label {
3192
+ display: none;
3193
+ }
3194
+ .imagify-coupon-input {
3195
+ position: relative;
3196
+ }
3197
+ .imagify-coupon-input input {
3198
+ position: relative;
3199
+ z-index: 1;
3200
  }
3201
+ [id="imagify-coupon-validate"].button-secondary {
3202
+ position: absolute;
3203
+ top: 1px;
3204
+ right: 3px;
3205
+ bottom: 2px;
3206
+ box-shadow: none;
3207
+ padding: 4px 10px;
3208
+ z-index: 0;
3209
+ transition: transform .275s;
3210
+ }
3211
+ .imagify-canbe-validate [id="imagify-coupon-validate"] {
3212
+ transform: translateX(45px);
3213
+ }
3214
+
3215
+
3216
  .imagify-submit-line button {
3217
  font-size: 16px;
3218
  }
3219
+ input.imagify-coupon-code {
3220
+ padding: 10px;
3221
+ border: 2px solid #7A8996;
3222
+ font-size: 0.875em;
3223
+ font-weight: bold;
3224
+ border-radius: 3px;
3225
+ }
3226
+ .validated.imagify-coupon-section .imagify-coupon-text,
3227
+ .validated.imagify-coupon-section strong {
3228
+ color: #8BC34A;
3229
+ }
3230
+ .validated.imagify-coupon-section .imagify-coupon-code {
3231
+ color: #8BC34A;
3232
+ border-color: #8BC34A;
3233
+ }
3234
+ .invalid.imagify-coupon-section .imagify-coupon-text,
3235
+ .invalid.imagify-coupon-section strong {
3236
+ color: #d0021b;
3237
+ }
3238
+ .invalid.imagify-coupon-section .imagify-coupon-code {
3239
+ color: #d0021b;
3240
+ border-color: #d0021b;
3241
+ }
3242
  .imagify-footer-lines {
3243
  width: 500px;
3244
  max-width: 100%;
3245
+ margin: 2em auto 2.5em;
3246
  font-size: 0.85em;
3247
+ line-height: 1.5;
3248
  }
3249
 
3250
  /* Year selected */
3297
  .imagify-pricing-table .imagify-offer-line:first-child {
3298
  margin-top: .75em;
3299
  }
3300
+ .imagify-pricing-table .imagify-offer-line.imagify-offer-selected:first-child {
3301
+ margin-top: 1.75em;
3302
+ }
3303
  .imagify-pricing-table .imagify-offer-line + .imagify-offer-line {
3304
  margin-top: -2px;
3305
  }
3656
  }
3657
 
3658
  #imagify-payment-iframe {
3659
+ width: 980px;
3660
+ height: 672px;
3661
+ background: #f6f7fb url(../images/loader-balls.svg) 50% 50% no-repeat;
 
3662
  }
3663
 
3664
  .imagify-success-view {
assets/css/admin.min.css CHANGED
@@ -1 +1 @@
1
- .imagify-start{float:left}.imagify-end{float:right}.imagify-txt-start.imagify-txt-start.imagify-txt-start{text-align:left}.imagify-txt-center.imagify-txt-center.imagify-txt-center{text-align:center}.imagify-txt-end.imagify-txt-end.imagify-txt-end{text-align:right}.imagify-mt1.imagify-mt1{margin-top:1em}.imagify-mb1.imagify-mb1{margin-bottom:1em}.imagify-mr1.imagify-mr1{margin-right:1em}.imagify-ml2.imagify-ml2{margin-left:2em}.imagify-mr2.imagify-mr2{margin-right:2em}.imagify-pl0.imagify-pl0.imagify-pl0{padding-left:0}.imagify-pr1.imagify-pr1{padding-right:1em}.imagify-oh{overflow:hidden}.imagify-clear{clear:both}.imagify-clearfix:after,.imagify-inline-options:after{content:"";display:table;clear:both}.imagify-count.imagify-count{counter-reset:num}.imagify-count .imagify-count-title{font-weight:bold}.imagify-default-settings{color:#73818c;font-weight:normal}.imagify-count .imagify-count-title:before{counter-increment:num 1;content:counter(num) ". "}.imagify-table{display:table;width:100%}.imagify-cell{display:table-cell;padding:10px;vertical-align:top}.imagify-cell.va-top,.va-top .imagify-cell{vertical-align:top}.imagify-bulk-submit .imagify-cell{padding-top:0}body.imagify-modal-is-open{overflow:hidden}.imagify-plugins-error{overflow:hidden;padding-left:20px;list-style-type:disc}.imagify-plugins-error li{width:300px;line-height:30px}@media (max-width:570px){.imagify-plugins-error li{width:auto}}.imagify-notice-dismiss.notice-dismiss{text-decoration:none}.imagify-spinner{display:inline-block;width:20px;height:20px;margin-right:5px;vertical-align:middle;background:rgba(0,0,0,0) url("../images/spinner.gif") no-repeat scroll 0 0 / 20px 20px;opacity:0.7}.spinner.imagify-hidden{width:0;margin:4px 0 0 0}.misc-pub-section.misc-pub-imagify h4{font-size:14px;margin-top:5px;margin-bottom:0}.imagify-sweet-alert button{margin-top:17px !important;height:45px !important;letter-spacing:3px;text-transform:uppercase !important;border-radius:3px !important;background-color:#40b1d0 !important;box-shadow:0 3px 0 #338ea6 !important}.imagify-sweet-alert button.swal2-cancel{background:#777 !important;box-shadow:0 3px 0 #444 !important}.imagify-sweet-alert-signup .sa-confirm-button-container{width:40%}.imagify-sweet-alert-signup button{width:100%;padding:0 !important}.imagify-sweet-alert .sa-input-error:before,.imagify-sweet-alert .sa-input-error:after,.imagify-sweet-alert .la-ball-fall{top:25% !important}#wpwrap{transition:all .4s}.stop-scrolling #wpwrap{filter:blur(2px)}.stop-scrolling #wpwrap #wpadminbar{top:-32px}.imagify-primary.imagify-primary.imagify-primary{color:#40b1d0}.imagify-secondary.imagify-secondary.imagify-secondary{color:#8cc152}#imagify-check-api-container{font-weight:bold}#imagify-check-api-container .dashicons{font-size:25px}#imagify-check-api-container .dashicons-no:before{color:#f06e57;vertical-align:-1px}#imagify-check-api-container .dashicons-yes:before{color:#8BC34A;vertical-align:-1px}.imagify-valid{color:#8BC34A}.imagify-chart{width:33.33%;position:relative}#imagify-overview-chart-legend{overflow:hidden}.imagify-doughnut-legend{margin-top:38px;list-style:none}.imagify-doughnut-legend li{display:block;padding-left:30px;position:relative;margin-bottom:15px;border-radius:5px;padding:3px 8px 2px 31px;font-size:14px;font-weight:600;cursor:default;-webkit-transition:background-color 200ms ease-in-out;-moz-transition:background-color 200ms ease-in-out;-o-transition:background-color 200ms ease-in-out;transition:background-color 200ms ease-in-out}.imagify-doughnut-legend li span{display:block;position:absolute;left:0;top:0;width:25px;height:25px;border-radius:50%}.imagify-chart{float:left;margin-bottom:20px}td .imagify-chart{float:none;margin-bottom:0}.imagify-chart-container{position:relative;width:180px;float:left;margin-right:20px}.imagify-global-optim-phrase{width:180px;padding-top:20px;font-size:14px;font-weight:bold;text-align:center}.imagify-total-percent{color:#46b1ce}td .imagify-chart-container{width:18px;height:18px;float:none;margin-right:10px}td .imagify-chart{top:4px}.imagify-chart-percent{position:absolute;left:0;right:0;top:50%;margin-top:-14px;text-align:center;font-size:55px;font-weight:bold;color:#46B1CE}.imagify-chart-percent span{font-size:20px;vertical-align:super}.media_page_imagify-bulk-optimization .notice,body[class*="_imagify-ngg-bulk-optimization"] .notice,.settings_page_imagify .notice{margin-right:20px;margin-left:2px}.media_page_imagify-bulk-optimization .media-item,body[class*="_imagify-ngg-bulk-optimization"] .media-item{margin:0}.media_page_imagify-bulk-optimization .media-item .progress,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress{float:none;width:100%;margin:0;background:#1F2331;box-shadow:0;border-radius:0}.media_page_imagify-bulk-optimization .media-item .percent,body[class*="_imagify-ngg-bulk-optimization"] .media-item .percent{width:auto;padding:0 5px;line-height:1.85;font-size:12px}.media_page_imagify-bulk-optimization .media-item .progress,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress,body[class*="_imagify-ngg-bulk-optimization"] .media-item .percent,.media_page_imagify-bulk-optimization .media-item .percent{text-align:right}.media_page_imagify-bulk-optimization .media-item .progress .bar,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar{width:1px;height:22px;margin-top:0;background:#46B1CE;border-radius:0;overflow:visible;-webkit-transition:width .5s;transition:width .5s}.imagify-settings a,.imagify-settings .button,.imagify-settings input,.imagify-welcome a,.imagify-welcome .button,.imagify-weolcome input{-webkit-transition:all .275s;transition:all .275s}.imagify-settings a{color:#40b1d0}.imagify-options-title{padding-bottom:.5em;border-bottom:3px solid #F2F2F2;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:0.025em;color:#40b1d0}.imagify-settings,.imagify-settings p,.imagify-settings th{color:#5F758E}@media (max-width:782px){.imagify-settings .form-table th{padding-top:2em;padding-bottom:.5em}}.imagify-settings .form-table td{vertical-align:top}.imagify-settings .form-table th span{cursor:pointer}.imagify-middle th{padding-top:35px}.imagify-settings .button,.imagify-welcome .button,.imagify-notice .button,.imagify-button.imagify-button,.imagify-button-primary.imagify-button-primary,.imagify-button-secondary.imagify-button-secondary{height:auto;padding:8px 20px;border:0 none;font-size:14px;font-weight:600;box-shadow:0 3px 0 rgba(0,0,0,.15);border-radius:3px;cursor:pointer;transition:all .275s}.imagify-notice .button-mini{padding:2px 10px;font-size:13px}.button-primary.button-mini{padding:2px 10px}.imagify-settings .button.button-mini-flat{padding:3px 6px 5px;font-size:12px;box-shadow:none!important;line-height:1.2}.imagify-settings .button.button-mini-flat:hover,.imagify-settings .button.button-mini-flat:focus{box-shadow:none!important}.imagify-title .button-ghost.button-ghost,.imagify-button-ghost.imagify-button-ghost{padding:2px 9px;border:1px solid #40B1D0;font-size:12px;font-weight:normal;color:#40B1D0;background:transparent;box-shadow:none}.imagify-title .button-ghost.button-ghost:hover,.imagify-title .button-ghost.button-ghost:focus,.imagify-button-ghost.imagify-button-ghost:hover,.imagify-button-ghost.imagify-button-ghost:focus{border-color:transparent;color:#000;background:#40B1D0}.imagify-button-ghost.imagify-button-ghost:hover,.imagify-button-ghost.imagify-button-ghost:focus{color:#FFF}.imagify-button-medium.imagify-button-medium{text-transform:uppercase;letter-spacing:0.1em;padding:3px 10px;font-weight:bold}.imagify-button-medium.imagify-button-ghost{border-width:2px}.button .dashicons{margin-right:5px;vertical-align:middle}.imagify-settings .button-primary.button-primary,.imagify-welcome .button-primary.button-primary,.imagify-button-primary.imagify-button-primary{background:#40B1D0;color:#FFF;box-shadow:0 3px 0 rgba(51,142,166,1);text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799!important}.imagify-button-secondary.imagify-button-secondary{background:#8BC34A;color:#FFF;box-shadow:0 3px 0 #6F9C3B;text-shadow:0 -1px 1px #6F9C3B,1px 0 1px #6F9C3B,0 1px 1px #6F9C3B!important}.imagify-settings .button-primary:hover,.imagify-settings .button-primary:focus,.imagify-welcome .button-primary:hover,.imagify-welcome .button-primary:focus,.imagify-button-primary.imagify-button-primary:hover,.imagify-button-primary.imagify-button-primary:focus{background:rgb(51,142,166);box-shadow:0 3px 0 rgb(31,122,146)}.imagify-button-secondary.imagify-button-secondary:hover,.imagify-button-secondary.imagify-button-secondary:focus{background:#6F9C3B;color:#FFF}.imagify-button-light.imagify-button-light{background:#FFF;color:#4a4a4a;box-shadow:0 2px 0 rgba(0,0,0,.2)}.imagify-button-light.imagify-button-light:hover,.imagify-button-light.imagify-button-light:focus{color:#FFF;background:rgba(0,0,0,.2)}.imagify-section-positive .imagify-button-light{color:#709A41}.imagify-button.imagify-button-big{font-size:15px;padding:11px 30px}.imagify-button-big .dashicons{font-size:1.45em;margin-right:6px;margin-left:-4px}.imagify-settings .button .dashicons,.imagify-welcome .button .dashicons,.imagify-notice .button .dashicons,.imagify-button.imagify-button .dashicons,.imagify-button-primary.imagify-button-primary .dashicons,.imagify-button-secondary.imagify-button-secondary .dashicons{vertical-align:middle}.button-text{display:inline-block;vertical-align:middle}#imagify-bulk-action{padding:11px 20px}.wp_attachment_image .imagify-button-primary,.media-frame-content .imagify-button-primary{float:left;padding:0 10px 1px;margin:0 5px 2px 0;font-size:13px;line-height:26px;box-shadow:0 3px 0 rgba(51,142,166,1)}.imagify-settings input[type="text"]{color:#4A4A4A;font-weight:600;box-shadow:none}.imagify-settings div.submit.submit{padding-left:235px;padding-top:40px}.imagify-settings p.submit{float:left;margin-top:0}.imagify-settings p.submit .button{margin:0 5px}@media (max-width:850px){.imagify-settings div.submit{padding-left:0}.imagify-settings p.submit{text-align:center}}.imagify-title.imagify-title{position:relative;padding:30px 50px;font-size:23px;background:#2E3243;color:#FFF}.imagify-settings .imagify-title + .imagify-notice{margin:0;border-right:1px solid #D9D9D9;padding-top:15px;padding-bottom:15px}.imagify-logo{vertical-align:top}.imagify-sub-header,.imagify-sub-title.imagify-sub-title,.imagify-settings div.submit,.imagify-section{margin:0;padding:20px;background:#F2F5F7}.imagify-sub-title.imagify-sub-title,.imagify-section-positive{padding-left:40px}.imagify-section-positive{background:#8cc152;color:#FFF}.imagify-section-positive p{color:#FFF}.imagify-section-gray{background:#D9E4EB}.imagify-section-gray .imagify-count-title{color:#4a4a4a}.imagify-section p:first-child{margin-top:0}.imagify-section p:last-child{margin-bottom:0}p.imagify-section-title.imagify-section-title{font-size:20px;margin-top:-.3em;margin-bottom:-.6em}.imagify-bulk-info{margin:1em 1em 1em 5px;transition:margin .3s}@media (max-width:850px){.imagify-bulk-info{margin:1em}}.imagify-bulk-info p{display:inline-block;text-align:left;width:400px;max-width:100%;font-weight:bold}@media (min-width:1500px){.imagify-settings div.submit{display:table;width:100%}.imagify-settings div.submit > *{display:table-cell;vertical-align:middle}.imagify-bulk-info{padding:0 25px;text-align:right}}.imagify-settings div.submit{margin-top:2em;padding:20px 0}.imagify-sub-header th{text-align:right}.imagify-sub-header .form-table{margin:0}.imagify-sub-header th,.imagify-sub-header td{padding-top:0;padding-bottom:0}[for="api_key"]{padding-top:5px}.imagify-notice .imagify-rate-us.imagify-rate-us{position:relative;bottom:0;right:0;text-align:left}.imagify-notice .imagify-rate-us .stars{margin:0}.imagify-rate-us.imagify-rate-us{position:absolute;bottom:50%;right:20px;text-align:right;margin-bottom:-2.4em;color:#FFF}.imagify-rate-us a{color:#40B1D0}.imagify-rate-us .stars{display:inline-block;margin:2px 0 0 10px;text-decoration:none;letter-spacing:.2em;vertical-align:-1px}.imagify-rate-us .stars .dashicons:before{font-size:18px}.imagify-rate-us a:hover,.imagify-rate-us a:focus{color:#FEE102}@media (max-width:1220px){.imagify-rate-us.imagify-rate-us{position:static;margin-bottom:0;text-align:left}.imagify-rate-us.imagify-rate-us br{display:none}.imagify-rate-us .stars{display:block;margin-left:0}}.imagify-rkt-notice.imagify-rkt-notice{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:10px 45px 10px 0;border:0 none;box-shadow:none;color:#FFF;background:#412355}.media_page_imagify-bulk-optimization .imagify-rkt-notice{margin-left:2px;margin-right:20px}@media (max-width:782px){.media_page_imagify-bulk-optimization .imagify-rkt-notice{margin-left:0;margin-right:12px}}.imagify-rkt-notice .imagify-cross{position:absolute;right:8px;top:50%;width:22px;height:22px;padding:0;margin-top:-11px;background:transparent;color:#FD7300;border-radius:50%;transition:all .275s}.imagify-rkt-notice .imagify-cross .dashicons{position:relative;top:2px;left:1px;transition:all .275s}.imagify-rkt-notice .imagify-cross:hover{background:#FFF}.imagify-rkt-notice .imagify-cross:hover .dashicons{color:#412355}.imagify-rkt-notice .imagify-rkt-cta,.imagify-rkt-notice .imagify-rkt-logo,.imagify-rkt-notice .imagify-rkt-coupon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.imagify-rkt-notice .imagify-rkt-logo{width:150px!important;text-align:center;padding:0 25px 0 30px;line-height:0.8}.imagify-rkt-notice .imagify-rkt-msg{width:100%!important;padding:0 15px;font-size:14px;line-height:1.6}.imagify-rkt-notice .imagify-rkt-coupon{width:150px!important;padding:0 15px}.imagify-rkt-notice .imagify-rkt-coupon-code{padding:5px 10px;font-size:23px;font-weight:bold;border:1px dashed #F7A933;color:#F7A933}.imagify-rkt-notice .imagify-rkt-cta{width:250px!important;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-basis:200px;-ms-flex-preferred-size:200px;flex-basis:200px}.imagify-rkt-notice .button.button{position:relative;top:-1px;height:auto;font-weight:600;font-size:14px;box-shadow:0 4px 0 #B27A27;border:0 none;padding:9px 18px 9px;background:#F7A933;text-shadow:1px 1px 1px rgba(0,0,0,.2)}@media (max-width:880px){.imagify-rkt-notice{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.imagify-rkt-notice .imagify-rkt-msg,.imagify-rkt-notice .imagify-rkt-cta,.imagify-rkt-notice .imagify-rkt-logo{text-align:left;padding:5px 15px}.imagify-cross.imagify-cross{top:8px;margin-top:0}.imagify-rkt-notice .imagify-cross .dashicons{top:1px}}.imagify-settings-section{padding:10px 20px}[id="imagify-settings"],.imagify-welcome .imagify-settings-section{border:1px solid #D9D9D9;border-top:0 none;background:#FFF}.imagify-br{line-height:2}.imagify-important{color:#F5A623}.imagify-info,.imagify-info a{color:#40B1D0;font-size:12px}.imagify-info{position:relative;display:inline-block;padding-left:25px;vertical-align:top}.imagify-info .dashicons{position:absolute;left:0;top:-1px}label + .imagify-info,label + .imagify-options-line,.imagify-visual-label{display:inline-block;max-width:70%;margin-left:15px;margin-top:2px!important;-webkit-transition:opacity .3s;transition:opacity .3s}.imagify-visual-label{vertical-align:-5px}label[for="imagify_sizes_full"] + .imagify-info{vertical-align:middle}.imagify-settings.imagify-settings [type="checkbox"]:not(:checked) + label + .imagify-options-line,.imagify-settings.imagify-settings [type="checkbox"]:not(:checked) + label .imagify-visual-label{opacity:.5}.imagify-settings.imagify-settings [type="checkbox"]:checked + label + .imagify-options-line,.imagify-settings.imagify-settings [type="checkbox"]:checked + label .imagify-visual-label{opacity:1}.imagify-checkbox-marged{max-width:500px;margin-left:45px}.imagify-settings.imagify-settings [type="checkbox"]:not(:checked),.imagify-settings.imagify-settings [type="checkbox"]:checked,.imagify-checkbox.imagify-checkbox:not(:checked),.imagify-checkbox.imagify-checkbox:checked{opacity:0.01}.imagify-settings.imagify-settings [type="checkbox"]:not(:checked):focus,.imagify-settings.imagify-settings [type="checkbox"]:checked:focus,.imagify-checkbox.imagify-checkbox:not(:checked):focus,.imagify-checkbox.imagify-checkbox:checked:focus{box-shadow:none!important;outline:none!important;border:0 none!important}.imagify-settings [type="checkbox"]:not(:checked) + label,.imagify-settings [type="checkbox"]:checked + label,.imagify-checkbox.imagify-checkbox:not(:checked) + label,.imagify-checkbox.imagify-checkbox:checked + label{position:relative;padding-left:6px;cursor:pointer;vertical-align:top}.imagify-settings [type="checkbox"]:not(:checked) + label:before,.imagify-settings [type="checkbox"]:checked + label:before,.imagify-checkbox.imagify-checkbox:not(:checked) + label:before,.imagify-checkbox.imagify-checkbox:checked + label:before{content:'';position:absolute;left:0;top:0;width:28px;height:28px;margin:0 0 0 -24px;border:2px solid #8BA6B4;background:#FFFFFF;border-radius:4px}.imagify-settings [type="checkbox"]:not(:checked) + label:after,.imagify-settings [type="checkbox"]:checked + label:after,.imagify-checkbox.imagify-checkbox:not(:checked) + label:after,.imagify-checkbox.imagify-checkbox:checked + label:after{content:"✓";position:absolute;font-size:1.4em;top:3px;left:-16px;-webkit-transition:all .2s;-moz-transition:all .2s;-ms-transition:all .2s;transition:all .2s}.imagify-settings [type="checkbox"][disabled]:not(:checked) + label:before,.imagify-settings [type="checkbox"][disabled]:checked + label:before,.imagify-checkbox.imagify-checkbox[disabled]:not(:checked) + label:before,.imagify-checkbox.imagify-checkbox[disabled]:checked + label:before{border-color:#ccc;background:#ddd}.imagify-settings [type="checkbox"]:not(:checked) + label:after,.imagify-checkbox.imagify-checkbox:not(:checked) + label:after{opacity:0;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.imagify-settings [type="checkbox"]:checked + label:after,.imagify-checkbox.imagify-checkbox:checked + label:after{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}input[id^="imagify_sizes_"]:checked + label{font-weight:bold}.medium.imagify-checkbox:not(:checked) + label:before,.medium.imagify-checkbox:checked + label:before{width:22px;height:22px;border-width:1.5px;border-radius:2px;margin-top:0}.medium.imagify-checkbox:not(:checked) + label:after,.medium.imagify-checkbox:checked + label:after{font-size:1.1em;left:-17px;top:3px}.imagify-settings .mini[type="checkbox"]:not(:checked) + label:before,.imagify-settings .mini[type="checkbox"]:checked + label:before,.mini.imagify-checkbox:not(:checked) + label:before,.mini.imagify-checkbox:checked + label:before{width:15px;height:15px;border-width:1px;border-radius:2px;margin-top:0}.imagify-settings .mini[type="checkbox"]:not(:checked) + label:after,.imagify-settings .mini[type="checkbox"]:checked + label:after,.mini.imagify-checkbox:not(:checked) + label:after,.mini.imagify-checkbox:checked + label:after{font-size:.9em;left:-21px;top:1px}.imagify-settings [type="checkbox"]:not(:checked):focus + label:before,.imagify-settings [type="checkbox"]:checked:focus + label:before,.imagify-checkbox.imagify-checkbox:not(:checked):focus + label:before,.imagify-checkbox.imagify-checkbox:checked:focus + label:before{border-style:dotted;border-color:#40b1d0}.imagify-inline-options{position:relative;display:table;width:100%;max-width:600px;border-collapse:collapse}.imagify-small-options{width:300px;margin:1em auto .5em;background:#338EA6;border-radius:4px}.imagify-inline-options input[type="radio"]:not(:checked),.imagify-inline-options input[type="radio"]:checked{position:absolute;left:5px;top:5px;display:none}.imagify-inline-options input[type="radio"]:not(:checked) + label,.imagify-inline-options input[type="radio"]:checked + label{position:relative;display:table-cell;padding:13px 10px;text-align:center;font-weight:600;font-size:16px;text-transform:uppercase;letter-spacing:0.1em;color:#FFF;background:#2E3243;border-left:1px solid rgba(255,255,255,0.2);box-shadow:0 -3px 0 rgba(0,0,0,0.1) inset,inset -1px 0 0 rgba(255,255,255,0.2);z-index:2;-webkit-transition:all .275s;transition:all .275s}.imagify-small-options input[type="radio"]:not(:checked) + label,.imagify-small-options input[type="radio"]:checked + label{padding:8px 10px;font-size:13px;color:#FFF;box-shadow:none;border-left:0}.imagify-bulk-submit .imagify-inline-options input[type="radio"]:not(:checked) + label,.imagify-bulk-submit .imagify-inline-options input[type="radio"]:checked + label{margin-bottom:1.75em}.imagify-inline-options input[type="radio"]:not(:checked) + label:first-of-type,.imagify-inline-options input[type="radio"]:checked + label:first-of-type{border-radius:3px 0 0 3px}.imagify-inline-options input[type="radio"]:not(:checked) + label:last-of-type,.imagify-inline-options input[type="radio"]:checked + label:last-of-type{border-radius:0 3px 3px 0}.imagify-inline-options input[type="radio"]:checked + label{background:#8BC34A}.imagify-small-options input[type="radio"]:not(:checked) + label{background:#338EA6;color:rgba(255,255,255,.4)}.imagify-small-options input[type="radio"]:checked + label{background:#40B1D0}.imagify-inline-options .imagify-info{margin-top:15px}.imagify-btn-info{display:block;font-size:0.7em;letter-spacing:0;line-height:1;text-transform:none}#describe-resize-larger input{width:5em}.imagify-cols:after{content:"";display:table;clear:both}.imagify-col{float:left;width:50%}.imagify-main{float:left;width:70%}.imagify-sidebar{float:right;width:28%;max-width:300px}.imagify-sidebar-section{border:1px solid #BBB;background:#FFF}.imagify-sidebar-section + .imagify-sidebar-section{margin-top:2em}@media (max-width:820px){.imagify-settings{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.imagify-main{width:auto;float:none}.imagify-sidebar{order:2;float:none;width:auto;max-width:none;margin-left:0;margin-top:25px}.wp-media-products{text-align:center}.wp-media-products li{display:inline-block;width:100%;max-width:276px}}@media (min-width:1400px){.imagify-main{width:74%}}.imagify-sidebar-title{display:block;padding:20px 15px;border-bottom:1px solid #BBB;font-size:14px;font-weight:bold;color:#23282d;background:#F2F5F7}.imagify-sidebar-title img{vertical-align:top;margin-right:5px}.imagify-sidebar .wp-media-products{margin-top:0;margin-bottom:-.5em}.imagify-sidebar .wp-media-products .links{display:block;padding:85px 25px 24px;text-align:center;background-color:#2E3243;background-size:contain;background-repeat:no-repeat;background-position:50% 0;text-decoration:none}.imagify-sidebar .wp-media-products .links p{margin:1.5em auto;color:#FFF}.imagify-sidebar .wp-media-products .wprocket-link{background-image:linear-gradient(to bottom,rgba(59,30,78,0),rgba(59,30,78,0) 130px,rgba(59,30,78,1) 210px),url("../images/sidebar-wp-rocket.jpg");background-color:#3B1E4E;background-repeat:repeat-x,no-repeat}.imagify-sidebar-content{padding:10px 20px}.imagify-mark-styled{display:inline-block;padding:1px 2px 1px 4px;line-height:1.3;font-weight:bold;background:#F7A933;transform-origine:50% 50%;transform:rotateZ(-2deg) rotateX(-10deg) skewX(-2deg) skewY(-3deg);text-shadow:1px 1px 0 rgba(0,0,0,0.2)}.imagify-mark-styled span{display:inline-block;transform:rotateZ(2deg) rotateX(10deg) skewX(2deg) skewY(3deg)}.imagify-discount-code{margin:0.35em 0 .5em;display:block;font-size:2em;letter-spacing:.05em;font-weight:bold;text-align:center;text-shadow:1px 1px 0 rgba(0,0,0,0.2)}.imagify-big-text{font-size:15px;font-weight:bold}.imagify-big-text strong{font-size:20px}a.btn-rocket{display:block;font-size:1.15em;padding:12px;background:#F7A933;box-shadow:0 3px 0 #D69626;border-radius:3px;color:#FFF;text-transform:uppercase;font-weight:bold;text-shadow:1px 1px 0 rgba(0,0,0,0.2);text-decoration:none}a.btn-rocket:hover,a.btn-rocket:focus{background:darkorange;box-shadow:0 3px 0 darkorange}.imagify-welcome{margin:30px 20px 0 0}.imagify-welcome .baseline{display:inline-block;margin:.2em 0 0 2em;font-size:17px}.imagify-welcome .imagify-logo{vertical-align:middle}.imagify-welcome-remove{position:absolute;top:50%;right:15px;margin-top:-8px;color:#FFF;text-decoration:none}.imagify-columns{overflow:hidden;padding:15px 0;counter-reset:cols}.imagify-columns [class^="col-"]{float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.imagify-columns .col-1-3{width:33.333%;padding-left:28px}.imagify-columns .col-2-3{width:66.666%;padding-left:28px}.imagify-columns .col-1-2{width:50%;padding:0 20px}.imagify-columns .col-overview{padding-left:20px}.imagify-columns .col-informations{width:36.6%;padding-right:30px}.imagify-columns .col-statistics{width:30%}@media (max-width:830px){.imagify-columns [class^="col-"]{float:none;margin-bottom:1.5em}.imagify-columns .col-1-3,.imagify-columns .col-1-2{width:auto;padding:0 28px;clear:both;padding-top:1em}}.imagify-columns [class^="col-"] img{float:left;margin-right:18px}.imagify-col-content{overflow:hidden}.imagify-col-title{margin:0 0 15px 0;font-size:23px}.counter .imagify-col-title:before{counter-increment:cols;content:counter(cols) ". ";color:#40B1D0}.imagify-col-desc{color:#5F758E;margin-bottom:2em}.imagify-notice.imagify-notice{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0;margin:10px 20px 10px 2px;border:0 none;background:#2E3243;box-shadow:none;color:#FFF}@media (max-width:782px){.imagify-notice.imagify-notice,.imagify-welcome{margin-right:12px}}@media (max-width:450px){.imagify-notice.imagify-notice{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}}.wrap .imagify-notice{margin:5px 15px 2px;position:relative}.imagify-notice-logo{padding:18px 23px;background:#40B1D0}.updated .imagify-notice-logo{background:#8BC34A}.error .imagify-notice-logo{background:#D0021B}.imagify-notice-title{font-size:15px}.imagify-notice-content{padding:5px 23px}.imagify-notice-content.imagify-notice-content p{margin:0.65em 0}.imagify-notice a{color:#40B1D0}.imagify-notice a:hover,.imagify-notice a:focus{color:#FEE102}.imagify-notice code{background:rgba(0,0,0,0.4) none repeat scroll 0 0}.column-imagify_optimized_file.column-imagify_optimized_file{width:300px;text-align:center;vertical-align:middle}.column-imagify_optimized_file > *{max-width:235px;margin:0 auto}ul.imagify-datas-list.imagify-datas-list{margin:0 auto;color:#555;font-size:10px}.compat-field-imagify .label{vertical-align:top}.compat-field-imagify ul.imagify-datas-list{margin-top:7px;font-size:11px}ul.imagify-datas-list .big{font-size:12px;color:#40B1D0}.imagify-data-item{overflow:hidden}.imagify-data-item .imagify-chart{display:inline-block;top:1px;width:20px;vertical-align:middle;margin-bottom:0}li.imagify-data-item{clear:both;margin-bottom:2px}ul.imagify-datas-list .imagify-data-item span.data,ul.imagify-datas-list .imagify-data-item strong{float:left;width:50%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}ul.imagify-datas-list .imagify-data-item span.data{text-align:left;padding-right:5px}.compat-field-imagify .imagify-datas-list .imagify-data-item .data{width:130px;text-align:left;font-weight:bold}.media-sidebar .imagify-datas-list .imagify-data-item .data{width:auto;float:none}ul.imagify-datas-list .imagify-data-item strong{text-align:left;padding-left:5px}.media-sidebar .imagify-datas-list .imagify-data-item strong{width:auto;float:none}.imagify-datas-more-action.imagify-datas-more-action{margin:.4em auto;background:linear-gradient(to bottom,transparent,transparent 49%,rgba(0,0,0,.075) 50%,rgba(0,0,0,.075) 58%,transparent 58%,transparent)}.imagify-datas-more-action a{display:inline-block;padding:0 5px;background:#40B1D0;color:#FFF;text-transform:uppercase;font-size:9px;font-weight:bold;line-height:1.9;text-decoration:none}.imagify-datas-more-action a.is-open{background:#555}.imagify-datas-more-action a.is-open .dashicons{transform:rotate(180deg)}.imagify-datas-more-action a .dashicons{font-size:14px;vertical-align:middle;line-height:.8}.imagify-datas-more-action a .dashicons:before{vertical-align:middle;line-height:20px}.imagify-datas-more-action .the-text{display:inline-block;vertical-align:middle;height:20px;line-height:20px}ul.imagify-datas-details.imagify-datas-details{margin:.7em auto}.imagify-datas-details strong{color:#40B1D0}.imagify-datas-details .original{color:#555}.imagify-datas-actions-links{overflow:hidden;border-top:2px solid transparent;padding-top:5px;font-size:8px}.imagify-datas-actions-links a{position:relative;display:inline-block;padding-left:17px;text-decoration:none;font-weight:600}.compat-field-imagify .imagify-datas-actions-links{max-width:300px}.misc-pub-imagify .imagify-datas-actions-links{border-top:2px solid #f2f2f2;padding-bottom:5px}.compat-field-imagify .imagify-datas-actions-links a,.misc-pub-imagify .imagify-datas-actions-links a{font-size:10px;float:left;width:50%}.media-sidebar .compat-field-imagify .imagify-datas-actions-links a,.submitbox .misc-pub-imagify .imagify-datas-actions-links a{display:block;width:auto;float:none}.column-imagify_optimized_file .imagify-datas-actions-links a{margin:0 .7em;padding-left:15px}.imagify-datas-actions-links a:only-child{float:none;width:auto}.imagify-datas-details.is-open + .imagify-datas-actions-links{border-top-color:rgba(0,0,0,.075)}.imagify-datas-actions-links .dashicons{position:absolute;left:0;top:4px;width:12px;margin-right:2px;font-size:11px}.imagify-title > h1{padding:0}.imagify-title-right{display:table;float:right;margin-top:-10px}.imagify-title-right p{margin:0}.imagify-title-right a{font-weight:bold;text-decoration:none}.imagify-title-right > div{display:table-cell;vertical-align:middle}.imagify-title-right .dashicons-arrow-down-alt2{vertical-align:-4px;margin-left:2px}@media (max-width:1200px){.imagify-bulk .imagify-title{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.imagify-title-right{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;margin-top:20px}}.imagify-account,.imagify-account-link{padding-right:15px}.imagify-sep-v{width:1px;background:rgba(255,255,255,.2)}.imagify-credit-left{position:relative;min-width:280px;padding-left:15px}.imagify-meteo-icon{display:inline-block;height:38px;vertical-align:middle;margin-right:10px}.imagify-user-plan{color:#40b1d0}@media (max-width:630px){.imagify-title-right{display:block;width:auto}.imagify-title-right > div{display:block;width:auto;margin-top:10px;max-width:100%}.imagify-credit-left{padding-left:0}}.imagify-meteo-title.imagify-meteo-title{color:#FFF;font-size:17px}.imagify-space-left{display:inline-block;min-height:38px;min-width:245px;vertical-align:middle}.imagify-space-left > p{color:#FFF}[class^="imagify-bar-"],#wp-admin-bar-imagify-profile [class^="imagify-bar-"]{position:relative;height:15px;width:100%;background:#60758D;color:#FFF;font-size:10px}.base-transparent{background:transparent}[class^="imagify-bar-"].right-outside-number{-webkit-box-sizing:border-box;box-sizing:border-box;padding-right:45px}.right-outside-number .imagify-barnb{display:block;margin-right:-45px;text-align:right;font-weight:bold;line-height:15px}.imagify-progress-value,#wp-admin-bar-imagify-profile .imagify-progress-value{position:absolute;top:0;right:0;left:0;bottom:0;text-align:center;line-height:13px;font-weight:bold}.imagify-progress,#wp-admin-bar-imagify-profile .imagify-progress{height:15px}.imagify-bar-positive .imagify-progress{background:#8CC152}.imagify-bar-positive .imagify-barnb{color:#8CC152}.imagify-bar-negative .imagify-progress{background:#73818C}.imagify-bar-negative .imagify-barnb{color:#73818C}.imagify-bar-neutral .imagify-progress{background:#F5A623}.imagify-space-left .imagify-bar-negative .imagify-progress{background:#D0021B}#wpadminbar #wp-admin-bar-imagify-profile *{line-height:1.5;white-space:initial}#wpadminbar #wp-admin-bar-imagify .ab-submenu{padding-bottom:0}#wpadminbar #wp-admin-bar-imagify-profile .ab-item{height:auto;padding:0 13px}#wpadminbar #wp-admin-bar-imagify-profile{min-width:200px;padding:15px 0 10px;margin-top:0.7em;background:#222}#wp-admin-bar-imagify .dashicons{font-family:"dashicons";font-size:18px;vertical-align:middle;margin:0 5px 0 0}#wp-admin-bar-imagify .button-text{display:inline-block;vertical-align:middle}#wp-admin-bar-imagify .imagify-abq-row{display:table;width:100%}#wp-admin-bar-imagify .imagify-abq-row + .imagify-abq-row{margin-top:.75em}#wp-admin-bar-imagify .imagify-abq-row > *{display:table-cell}#wp-admin-bar-imagify-profile .imagify-meteo-icon{padding-right:7px}#wp-admin-bar-imagify-profile .imagify-meteo-icon img{width:37px}#wp-admin-bar-imagify-profile .imagify-meteo-title{font-size:17px}#wp-admin-bar-imagify-profile .imagify-meteo-subs{color:#72889F}#wpadminbar #wp-admin-bar-imagify-profile strong{font-weight:bold}#wpadminbar #wp-admin-bar-imagify-profile .imagify-user-plan,#wpadminbar #wp-admin-bar-imagify-profile a{padding:0;color:#40B1D0}#wpadminbar #wp-admin-bar-imagify-profile .imagify-account-link{display:table}#wpadminbar #wp-admin-bar-imagify-profile .imagify-account-link > *{display:table-cell}#wpadminbar #wp-admin-bar-imagify-profile .imagify-space-left{max-width:210px;min-width:210px;width:210px}#wpadminbar #wp-admin-bar-imagify-profile .imagify-space-left p{font-size:12px}#wp-admin-bar-imagify-profile .imagify-error,#wp-admin-bar-imagify-profile .imagify-warning{padding:10px;margin:0 -13px -13px}#wp-admin-bar-imagify-profile .imagify-error p + p,#wp-admin-bar-imagify-profile .imagify-warning p + p{margin-top:.5em}#wp-admin-bar-imagify-profile .imagify-error p + p + p,#wp-admin-bar-imagify-profile .imagify-warning p + p + p{margin-top:1em}.btn-ghost,#wpadminbar #wp-admin-bar-imagify-profile .btn-ghost{display:inline-block;height:auto;padding:7px 10px;border:1px solid #FFF;text-align:center;background:transparent;color:#FFF;border-radius:3px;transition:all .275s}.btn-ghost:hover,.btn-ghost:focus,#wpadminbar #wp-admin-bar-imagify-profile .btn-ghost:hover,#wpadminbar #wp-admin-bar-imagify-profile .btn-ghost:focus{background:#FFF;color:#888}.imagify-list-infos{max-width:100%;width:415px}.imagify-list-infos li,.imagify-info-block{position:relative;padding:10px;padding-left:42px;background:#D9E4EB;border-radius:4px;line-height:1.6}.imagify-list-infos .imagify-alt.imagify-alt{background:#8BA7B5;color:#FFF;font-weight:bold}.imagify-list-infos li + li{margin-top:1em}.imagify-list-infos li:before,.imagify-info-block:before{content:"";position:absolute;left:13px;top:14px;height:16px;width:16px;border:1px solid #46b1ce;border-radius:10px}.imagify-list-infos li:after,.imagify-info-block:after{content:"i";position:absolute;left:20px;top:13px;font-style:italic;color:#46b1ce}.imagify-cell .imagify-info-block{padding-top:0}.imagify-cell .imagify-info-block:after{top:6px}.imagify-cell .imagify-info-block:before{top:7px}.imagify-list-infos .imagify-alt:before,.imagify-list-infos .imagify-alt:after{color:#fff;border-color:#fff}.imagify-sub-title.imagify-sub-title{font-size:23px;background:#FFF;color:#2E3243;border-left:1px solid #D9D9D9;border-right:1px solid #D9D9D9;font-weight:lighter}.imagify-sub-title .icon-bulk{margin-right:10px;vertical-align:middle}.imagify-sub-title .title-text{display:inline-block;line-height:1;vertical-align:middle}.imagify-bulk .imagify-settings-section{border:1px solid #D9D9D9;border-top:0;background:#F2F5F7;color:#4A4A4A}.imagify-bulk .imagify-settings-section p,.imagify-bulk .imagify-settings-section li,.imagify-bulk .imagify-settings-section h3{color:#4A4A4A}.imagify-bulk .imagify-settings-section h3{margin-bottom:2em}.imagify-title .imagify-tooltips{position:absolute;top:100%;left:0}.imagify-tooltips .icon-round{float:left;display:inline-block;width:28px;height:28px;border:1px solid #FFF;margin-right:8px;margin-bottom:8px;font-size:17px;font-style:italic;line-height:29px;font-weight:bold;text-align:center;border-radius:50%}.imagify-tooltips .tooltip-content{display:block;position:relative;max-width:250px;padding:7px 15px 8px;background:#2e3242;color:#FFF;font-size:10px;border-radius:3px}.imagify-tooltips.right .tooltip-content{margin-left:12px}.imagify-tooltips.bottom .tooltip-content{margin-top:4px}.imagify-inline-options label .tooltip-content{position:absolute;left:0;right:0;top:100%;text-transform:none;font-size:10px;letter-spacing:0;text-align:center}.imagify-tooltips .tooltip-content:after{content:"";position:absolute}.imagify-tooltips.right .tooltip-content:after{top:16px;left:-6px;border-right:8px solid #2e3242;border-top:6px solid transparent;border-bottom:6px solid transparent}.imagify-tooltips.bottom .tooltip-content:after{top:-5px;left:50%;margin-left:-3px;border-bottom:6px solid #2e3242;border-left:6px solid transparent;border-right:6px solid transparent}.imagify-space-tooltips .tooltip-content{max-width:280px;margin-top:20px;margin-left:0;padding:5px 15px 5px;font-size:13px;background:#40B1D0;box-shadow:0 3px 0 #338EA6}.imagify-space-tooltips .tooltip-content:after{top:-14px;left:50%;margin-left:-7px;border:0 none;border-bottom:15px solid #40B1D0;border-left:15px solid transparent;border-right:15px solid transparent}.tooltip-content.tooltip-table{display:table;width:100%}.tooltip-content.tooltip-table > *{display:table-cell;vertical-align:middle}.tooltip-content .cell-icon{width:28px}.tooltip-content .cell-icon .icon{margin-bottom:0}.tooltip-content .cell-text{padding:5px 10px 5px 0;line-height:1.3}.tooltip-content .cell-sep{width:1px;background:rgba(255,255,255,.4)}.tooltip-content .cell-cta{padding-left:10px}.tooltip-content .cell-cta a{display:block;color:#FFF;width:100%;height:100%;white-space:nowrap}.imagify-number-you-optimized .number{display:table-cell;padding-right:15px;font-size:36px;font-weight:bold;line-height:1.1;vertical-align:middle;white-space:nowrap}.imagify-number-you-optimized .text{display:table-cell;vertical-align:middle;overflow:hidden;font-size:12px}.imagify-number-you-optimized .text br{display:none}.imagify-number-you-optimized > p{display:table}.imagify-number-you-optimized{padding-bottom:0.85em;margin-bottom:1.35em;overflow:hidden;border-bottom:1px solid rgba(0,0,0,0.05)}.imagify-bars p{font-weight:bold;font-size:12px;margin-bottom:0}.imagify-bars + .imagify-number-you-optimized{border-bottom:0;padding-top:0.85em}.imagify-bars + .imagify-number-you-optimized p{color:#46b1ce}.imagify-bulk-table{margin-top:2em;max-height:600px;max-height:60vh;overflow:auto}.imagify-bulk-table table{width:100%;border-spacing:0;border-collapse:collapse;border:1px solid #D3D3D3}.imagify-bulk-table td{padding:8px 15px}.imagify-bulk-table thead tr,.imagify-bulk-table thead th{background:#2E3242}.imagify-bulk-table tfoot tr,.imagify-bulk-table tfoot th{background:#73818C}.imagify-bulk-table thead th{padding:14px 15px;text-align:left;color:#F2F5F7;font-weight:bold;font-size:14px}.imagify-bulk-table tfoot td{padding:14px 15px;color:#F9FAFA}.imagify-bulk-table tbody tr,.imagify-bulk-table tbody td{background:#FFF}.imagify-bulk-table tbody tr:nth-child(odd),.imagify-bulk-table tbody tr:nth-child(odd) td{background:#F2F5F7}.imagify-bulk-table .imagify-row-progress{display:none}.imagify-bulk-table .imagify-row-progress,.imagify-bulk-table .imagify-row-progress td{height:15px;padding:0}.imagify-bulk-table .imagify-no-uploaded-yet td{height:200px;font-size:17px;letter-spacing:.1em;word-spacing:.12em;vertical-align:middle;text-transform:uppercase;font-weight:bold;text-align:center;color:#999;background-color:#FFF}.imagify-row-complete{padding:35px 20px;margin-top:2em;background:#8BC34A;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,.1)}.imagify-row-complete .imagify-ac-chart{margin-top:3px}.imagify-row-complete p{color:#FFF;margin:0}@-webkit-keyframes congrate{0%{opacity:0;-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.05);opacity:1}100%{-webkit-transform:scale(1);opacity:1}}​ @keyframes congrate{0%{opacity:0;transform:scale(1)}50%{transform:scale(1.05);opacity:1}100%{transform:scale(1);opacity:1}}.imagify-row-complete.done{-webkit-animation:congrate 500ms ease-in-out;animation:congrate 500ms ease-in-out}.imagify-all-complete{margin:1.5em 0}.imagify-all-complete > div{display:inline-block;vertical-align:middle}.imagify-ac-report{min-width:310px}.imagify-ac-chart{width:46px;height:46px;float:left;margin:0 20px 0 10px}.imagify-ac-report-text{overflow:hidden}.imagify-ac-report-text p{line-height:1.3}.imagify-ac-rt-big{font-weight:bold;font-size:24px;letter-spacing:0.15em;word-spacing:0.15em;text-transform:uppercase}.imagify-ac-share{text-align:right}.imagify-ac-share-content{display:inline-block;padding:10px 15px;background:rgba(255,255,255,.2)}.imagify-ac-share-content > *{display:inline-block;vertical-align:middle}.imagify-bulk-table .imagify-ac-share-content p{margin-right:5px}.imagify-share-networks,.imagify-share-networks li{margin:0}.imagify-share-networks li{display:inline-block}.imagify-share-networks a{display:inline-block;vertical-align:-7px;margin:0 5px;text-decoration:none;color:#FFF}.imagify-cell-filename{max-width:200px}.imagify-cell-status{max-width:145px}.imagify-cell-status .dashicons-warning{margin-right:2px}.imagify-cell-thumbnails{max-width:120px}td.imagify-cell-filename{text-overflow:clip;white-space:nowrap;overflow:hidden}.imagify-bulk-table td.imagify-cell-totaloriginal{padding-right:78px}.imagiuploaded,.imagifilename{display:inline-block;vertical-align:middle}.imagifilename{font-size:12px}.imagiuploaded{width:33px;height:33px;margin-right:5px;margin-left:-8px;overflow:hidden;background:url(../images/upload-image.png) 0 0 no-repeat;background-size:cover}.imagiuploaded img{max-widht:100%;height:auto}.imagistatus{color:#8CA6B3;text-transform:uppercase;font-weight:bold}.status-compressing{color:#46B1CE}.status-error{color:#CE0B24}.status-warning{color:#f5a623}.status-complete{color:#8CC152}.imagify-error{background:#D0021B;color:#FFF}.imagify-warning,#wpadminbar .imagify-warning *{background:#f5a623;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,0.2)}.imagify-bulk-table .imagify-cell-thumbnails{text-align:center}.imagify-cell-percentage,.imagify-cell-savings{color:#46B1CE;font-weight:bold}.imagify-cell-optimized{font-weight:bold}.imagify-cell-totaloriginal{text-align:right}.dashicons.rotate{-webkit-animation:icon-rotate 2.6s infinite linear;animation:icon-rotate 2.6s infinite linear}.dashicons-admin-generic{transform-origin:48.75% 51.75%}.imagify-modal{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.js .imagify-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#1F2332;background-color:rgba(31,35,50,.95);z-index:99999}.imagify-modal-content{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;width:800px;max-width:95%;max-height:90vw;overflow:auto;padding:20px 25px;margin:1em auto;background:#FFF;box-shadow:1px 1px 4px rgba(0,0,0,.7);border-radius:3px}#imagify-visual-comparison .imagify-modal-content,.imagify-visual-comparison .imagify-modal-content{max-width:1400px;background:transparent;padding:5px;box-shadow:none;border-radius:0}.imagify-modal .h2{margin:.5em 0;color:#8ba6b4;font-weight:normal;font-size:24px;letter-spacing:0.075em;text-align:center}.imagify-modal .h3{color:#40b1d0;font-weight:normal;font-size:18px;letter-spacing:0.075em;text-align:center}.text-justify{text-align:justify}.imagify-modal .close-btn{display:none;visibility:hidden;position:absolute;right:20px;top:20px;font-size:1.2em;border:0;background:transparent none;border-radius:0;cursor:pointer}.imagify-modal .close-btn i{margin-left:-2px}.imagify-modal .close-btn:hover,.imagify-modal .close-btn:focus{color:#40b1d0}.js .imagify-modal .close-btn{display:block;visibility:visible}#imagify-visual-comparison .close-btn,.imagify-visual-comparison .close-btn{top:50px;right:5px;width:33px;height:33px;padding:1px 0 0 2px;border:1px solid #F2F2F2;color:#F2F2F2;line-height:19px;text-align:center;border-radius:50%}.wp_attachment_image #imagify-visual-comparison .close-btn,.imagify-visual-comparison .close-btn{top:0}.wp_attachment_image #imagify-visual-comparison .imagify-modal-content,.imagify-visual-comparison .imagify-modal-content{padding-top:40px}.imagify-modal .imagify-comparison-title{font-size:28px;margin-bottom:1em;color:#F2F2F2;text-align:left}.imagify-modal .imagify-comparison-title .twentytwenty-duo-buttons{position:static;margin:0 10px 0 15px}.imagify-comparison-title .twentytwenty-duo-buttons button{float:none;padding:6px 12px;font-size:16px;text-transform:none;border:1px solid #40B1D0;color:#888899;letter-spacing:0}.imagify-comparison-title .twentytwenty-duo-buttons button:focus{outline:none;box-shadow:none}.imagify-comparison-title .twentytwenty-duo-buttons .selected{border:1px solid #40B1D0;color:#FFF;background:#40B1D0}.imagify-comparison-levels{margin:15px 0;overflow:hidden}.imagify-comparison-levels div{display:none;min-width:175px;font-size:11px}.imagify-comparison-levels .imagify-chart,.imagify-comparison-levels .imagify-chart-container{width:25px;float:none;margin:0}.imagify-visual-comparison .imagify-chart-container canvas{width:15px!important;height:15px!important;margin-right:5px}.imagify-c-level.go-left{float:left}.imagify-c-level.go-right{float:right}.imagify-c-level.go-right,.imagify-c-level.go-left{display:table}.imagify-c-level .imagify-c-level-row{display:table-row;margin:0;color:#FFF}.imagify-c-level-row > span{display:table-cell;padding:2px 0}.imagify-c-level-row .value{text-align:right;padding-left:5px}.imagify-c-level-row .value.level{color:#40b1d0}.imagify-c-level-row .value.size{color:#8bc34a;font-weight:bold}.imagify-c-level-row .value .imagify-chart{top:1px}@-webkit-keyframes icon-rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes icon-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.imagify-menu-bar-img{margin-top:1em}.imagify-modal .loader{position:absolute;top:50%;left:50%;margin:-32px 0 0 -32px;opacity:0;visibility:hidden;transition:opacity .4s}.imagify-modal .loading .loader{visibility:visible;opacity:1}.imagify-settings .imagify-visual-comparison-text{margin-top:1em;color:#40b1d0;font-weight:bold}.imagify-modal-cols,.imagify-border-styled,.imagify-offer-header,.imagify-payment-modal .imagify-modal-content,.imagify-flex-table,.imagify-tabs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.imagify-modal-cols,.imagify-border-styled{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.imagify-payment-modal{text-align:center;color:#7A8996}.imagify-payment-modal *{box-sizing:border-box}.imagify-modal-loader{position:absolute;top:0;left:0;right:0;bottom:0;background:#fff url('../images/loader-balls.svg') center no-repeat;z-index:10}.imagify-payment-modal .imagify-modal-content{width:980px;max-width:100%;min-width:925px;padding:0}.imagify-payment-modal .imagify-modal-main{width:70%}.imagify-payment-modal .imagify-modal-sidebar{width:30%;padding:15px 20px;background:#1F2332;color:#FFF}.imagify-payment-steps{padding-top:15px;margin-top:0;margin-left:0;list-style:none;counter-reset:steps}.imagify-payment-steps li{position:relative;display:inline-block;counter-increment:steps;font-weight:bold}.imagify-payment-steps li + li{margin-left:35px}.imagify-payment-steps li + li:after{content:"";position:absolute;top:19px;left:-90px;z-index:1;width:150px;height:2px;background:#E5EBEF}.imagify-payment-steps li + li.active:after{background:#40B1D0}.imagify-payment-steps li:before{display:block;position:relative;content:counter( steps,decimal );width:36px;height:36px;margin:0 auto .3em;border:2px solid #E5EBEF;text-align:center;line-height:34px;font-size:1.4em;color:#E5EBEF;background:#FFF;border-radius:50%;z-index:2}.imagify-payment-steps .active:before{color:#40B1D0;border-color:#40B1D0}.imagify-modal-section{padding:0 25px}.imagify-modal-section.section-gray{margin:1em 0;padding:10px 25px 15px;background:#F6F7FB}.imagify-tabs-contents .section-gray{padding:8px 25px 10px}.imagify-modal-section .imagify-modal-title:first-child{margin-top:.3em;margin-bottom:.5em}.imagify-modal-title{font-size:1.8em;font-weight:lighter}.imagify-border-styled{width:200px;margin:0 auto;color:#8BC34A;font-weight:bold;font-size:0.925em}.imagify-big-number{font-size:3.7em;font-weight:bold;margin:-3px 0;color:#4A4A4A;line-height:1}.imagify-border-styled:before,.imagify-border-styled:after{content:"";height:1px;background:rgba(0,0,0,.1);-webkit-flex-basis:40px;-ms-flex-preferred-size:40px;flex-basis:40px}.imagify-border-styled:before{margin-right:5px}.imagify-border-styled:after{margin-left:5px}.imagify-payment-modal strong{font-weight:bold;color:#4A4A4A}.imagify-col{-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.imagify-modal .imagify-cols{padding:0 20px}.imagify-iconed{position:relative;text-align:left;padding-left:42px;margin-right:15px;font-weight:500}.imagify-iconed .dashicons,.imagify-iconed .icon{position:absolute;font-size:2em;left:0;top:2px;color:#40B1D0}.imagify-payment-modal .close-btn{top:10px;right:10px;width:24px;height:24px;padding:2px 0 0 4.5px;color:#FFF;background:#40B1D0;border-radius:50%;-webkit-transition:all .275s;transition:all .275s}.imagify-payment-modal .close-btn i{margin-left:-3.5px;margin-top:1px}.imagify-payment-modal .close-btn:hover{background:#F6F7FB}.imagify-offer-line{margin-top:1.5em}.imagify-offer-line + .imagify-offer-line{margin-top:0.75em}.imagify-offer-header{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:0 0 0 15px;border-radius:4px 4px 0 0;-webkit-transition:all .275s;transition:all .275s}.imagify-offer-header.imagify-offer-header.imagify-offer-header .imagify-inline-options label:last-child{border-radius:0 4px 0 0}.imagify-offer-header .imagify-inline-options{width:auto}.imagify-offer-title{font-weight:bold;margin:0}.imagify-offer-header,.imagify-offer-header .imagify-inline-options input[type="radio"]:not(:checked) + label{background:#E5EBEF}.imagify-offer-onetime .imagify-offer-header{padding-top:8px;padding-bottom:8px}.imagify-offer-header .imagify-inline-options input[type="radio"]:not(:checked) + label,.imagify-offer-header .imagify-inline-options input[type="radio"]:checked + label{position:relative;padding:7px 30px;font-size:1em;letter-spacing:0.05em;color:inherit;box-shadow:0 0 0;border-radius:0}.imagify-offer-header .imagify-inline-options input[type="radio"]:checked + label{background:#F6F7FB}.imagify-2-free{position:absolute;bottom:100%;left:0;right:0;padding:2px 10px;margin-bottom:8px;font-size:0.8em;letter-spacing:0;text-transform:none;text-align:center;color:#FFF;background:#10121A;border-radius:2px}.imagify-2-free:after{content:"";position:absolute;left:50%;bottom:-3px;margin-left:-3px;border-top:3px solid #10121A;border-left:3px solid transparent;border-right:3px solid transparent}.imagify-2-free.imagify-b-right{bottom:auto;left:100%;right:-100%;margin-bottom:0;margin-left:8px}.imagify-2-free.imagify-b-right:after{left:-3px;bottom:auto;top:50%;margin-top:-3px;margin-left:0;border-right:3px solid #10121A;border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:0}.imagify-2-free.imagify-b-bottom{bottom:-100%;left:0;right:0;margin-top:8px}.imagify-2-free.imagify-b-bottom:after{top:-3px;bottom:auto;border-bottom:3px solid #10121A;border-left:3px solid transparent;border-right:3px solid transparent;border-top:0}.imagify-offer-content{text-align:left;background:#F6F7FB;border-radius:0 0 4px 4px;-webkit-transition:all .275s;transition:all .275s}.imagify-offer-onetime .imagify-offer-content{padding:10px 0}div.imagify-col-checkbox{position:relative;width:35.5%;padding-top:10px;padding-bottom:7px}.imagify-col-checkbox label{display:block}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked),.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked{position:absolute;top:50%;left:6px;margin:-8px 0 0 0}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked) + label:before,.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked + label:before{margin:0;top:-3px;left:6px;-webkit-transition:all .275s;transition:all .275s}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked) + label:after,.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked + label:after{top:0;left:13px}.imagify-col-checkbox label{padding-left:55px!important}.imagify-offer-size{font-size:30px;color:#2E3243;font-weight:bold;-webkit-transition:all .275s;transition:all .275s}.imagify-offer-by{font-size:10px;-webkit-transition:all .275s;transition:all .275s}.imagify-approx{display:block;font-size:11px;line-height:1.2;-webkit-transition:all .275s;transition:all .275s}div.imagify-col-price{width:30%}.imagify-flex-table .imagify-price-block{padding-left:0;padding-right:0}.imagify-flex-table .imagify-price-complement{padding-right:0;font-size:10px;font-weight:bold}.imagify-price-block span{display:inline-block;vertical-align:middle}span.imagify-dollars{color:#1F2332;font-size:18px;font-weight:bold;vertical-align:-2px}.imagify-offer-onetime .imagify-col-price{padding-top:0}.imagify-offer-onetime .imagify-dollars{vertical-align:-7px}.imagify-price-big,.imagify-price-mini{color:#40B1D0;font-weight:bold}.imagify-price-big{font-size:36px}span.imagify-price-mini{font-size:18px;vertical-align:2px}span.imagify-price-by{font-size:10px;color:#1F2332;vertical-align:-13px;text-indent:-27px}.imagify-col-other-actions{width:18.5%;text-align:right}.imagify-col-other-actions a{font-size:11px}.imagify-offer-selected,.imagify-offer-selected .imagify-offer-title,.imagify-offer-selected .imagify-offer-size,.imagify-offer-selected .imagify-price-big,.imagify-offer-selected .imagify-price-mini,.imagify-offer-selected .imagify-price-complement,.imagify-offer-selected .imagify-col-other-actions a{color:#FFF}.imagify-offer-selected .imagify-offer-header,.imagify-offer-selected .imagify-offer-header .imagify-inline-options input[type="radio"]:not(:checked) + label{background:#338EA6}.imagify-offer-selected .imagify-offer-header .imagify-inline-options input[type="radio"]:checked + label{background:#40B1D0}.imagify-offer-selected .imagify-offer-content{background:#40B1D0}.imagify-offer-selected .imagify-checkbox.imagify-checkbox:not(:checked) + label:before,.imagify-offer-selected .imagify-checkbox.imagify-checkbox:checked + label:before{border-color:#FFF;background:#40B1D0}.imagify-offer-selected .imagify-offer-by{color:#2E3243}.imagify-submit-line{margin:2em 0}.imagify-submit-line button{font-size:16px}.imagify-footer-lines{width:500px;max-width:100%;margin:2em auto 1em;font-size:0.85em;line-height:1.6}.imagify-year-selected .imagify-switch-my .imagify-yearly{display:block}.imagify-year-selected .imagify-switch-my .imagify-monthly{display:none}.imagify-month-selected .imagify-switch-my .imagify-yearly{display:none}.imagify-month-selected .imagify-switch-my .imagify-monthly{display:block}.imagify-flex-table{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.imagify-flex-table > *{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:7px 15px}div.imagify-col-details{width:22%;padding-left:25px}.imagify-col-details p{margin:0}.imagify-pricing-table{margin:0 20px}.imagify-pricing-table .imagify-offer-line{padding:.6em 0;border:2px solid #E8EEF0;text-align:left;border-radius:3px}.imagify-pricing-table .imagify-offer-line:first-child{margin-top:.75em}.imagify-pricing-table .imagify-offer-line + .imagify-offer-line{margin-top:-2px}.imagify-pricing-table .imagify-col-other-actions{width:20.5%}.imagify-pricing-table .imagify-approx{margin-left:0;line-height:0.5;margin-bottom:1em}.imagify-pricing-table .imagify-offer-selected{-webkit-transform:scale(1.03);transform:scale(1.03);background:#40B1D0;border-width:0}.imagify-pricing-table .imagify-offer-selected .imagify-approx{color:#FFF}.imagify-pricing-table .imagify-button-secondary{padding:3px 20px;box-shadow:none;text-transform:uppercase;font-size:12px;letter-spacing:0.025em}.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary{border:2px solid #FFF;background:#40B1D0;box-shadow:none;text-shadow:none!important}.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary:hover,.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary:focus{background:#FFF;color:#40B1D0}.imagify-col .imagify-special-needs{margin-left:25px}.imagify-special-needs strong{font-size:25px;font-weight:bold;color:#40B1D0}.imagify-special-needs span{display:block;font-size:12px;margin-top:-.5em}div.imagify-col-price{position:relative}.imagify-recommend{display:none;position:absolute;left:-20px;bottom:100%;padding:0;margin-bottom:8px;color:#1F2332;font-weight:bold;font-style:italic}.imagify-offer-selected .imagify-recommend{display:block}[class*="imagify-onetime-"] .imagify-recommend{left:65px;margin-bottom:20px}.imagify-recommend:before{content:"";position:absolute;top:7px;left:-35px;width:29px;height:30px;background:url("../images/icon-arrow-choice.png") scroll 0 no-repeat;background-size:contain}@media only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.imagify-recommend:before{background-image:url("../images/icon-arrow-choice.svg")}}.imagify-offer-line[class*="imagify-onetime-"]{padding:0;margin:.3em 0 0}.imagify-offer-line.imagify-offer-line[class*="imagify-onetime-"]:first-child{margin-top:2em}.imagify-offer-line[class*="imagify-onetime-"] + .imagify-offer-line{margin-top:.5em}.imagify-offer-selected.imagify-offer-line[class*="imagify-onetime-"]{-webkit-transform:scale(1);transform:scale(1);border-width:2px}.imagify-offer-line[class*="imagify-onetime-"] .imagify-col-details{position:relative;overflow:hidden;width:21%;background:#1F2332;color:#FFF}.imagify-offer-selected.imagify-offer-line[class*="imagify-onetime-"] .imagify-col-details{background:#338EA6}.imagify-offer-line[class*="imagify-onetime-"] .imagify-col-details:before{content:"";position:absolute;bottom:0;right:25px;width:75px;height:54px;background:url("../images/icon-pack.png")}.imagify-offer-line[class*="imagify-onetime-"] .imagify-col-other-actions{width:30%}.imagify-offer-line[class*="imagify-onetime-"] .imagify-offer-size,.imagify-offer-line[class*="imagify-onetime-"] .imagify-approx{color:#FFF}.imagify-offer-line[class*="imagify-onetime-"] .imagify-offer-size{font-size:24px}.imagify-offer-line[class*="imagify-onetime-"] .imagify-approx{font-size:12px}.imagify-offer-line[class*="imagify-onetime-"] .imagify-price-block{padding-left:10px}.imagify-offer-line[class*="imagify-onetime-"] .imagify-dollars{vertical-align:middle}.imagify-offer-line[class*="imagify-onetime-"] .imagify-price-big{vertical-align:-5px}.imagify-offer-line[class*="imagify-onetime-"] .imagify-price-mini{vertical-align:7px}.imagify-tabs{margin-bottom:0;list-style:none;background:#E5EBEF}.imagify-modal-content .imagify-tabs{margin:1em 0 0}.imagify-tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;width:50%;margin:0;font-size:23px}.imagify-tab a{display:block;padding:15px 10px;color:inherit;text-decoration:none}.imagify-tab a:focus{box-shadow:none;outline:none;color:#40B1D8}.imagify-tab.imagify-current a{background:#F6F7FB}.imagify-tab-content.imagify-current{display:block}.imagify-tab-content{display:none}.imagify-tab-content .imagify-modal-section:first-child{margin-top:0}.imagify-modal-sidebar-content,.imagify-payment-modal .imagify-modal-sidebar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.imagify-modal-sidebar-content{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}p.imagify-modal-sidebar-title{margin-top:5px;padding-right:40px;font-size:18px;color:#FFF}.imagify-modal-testimony{margin-top:1em}.imagify-modal-testimony + .imagify-modal-testimony{margin-top:2em}@media (max-height:620px){.imagify-modal-testimony + .imagify-modal-testimony{display:none}}.imagify-modal-testimony-person{display:table;width:100%}.imagify-modal-testimony-person > *{display:table-cell;vertical-align:middle}.imagify-modal-avatar{width:114px;line-height:0}.imagify-modal-avatar img{border:2px solid #FFF;border-radius:50%;width:96px;height:96px}.imagify-modal-identity a{text-decoration:none;font-weight:bold}.imagify-modal-identity a:first-child{font-size:13px}.imagify-modal-identity a:first-child + a{display:block;font-size:10px;color:#7A8996}.imagify-modal-testimony-content p{font-size:13px;font-style:italic;line-height:1.7;color:#7A8996}.imagify-modal-sidebar-trust{margin-top:auto;padding-top:1.5em}.imagify-modal-sidebar-trust p{margin:0;font-weight:bold;font-size:12px;line-height:1.7}.imagify-modal-sidebar-trust p img{margin-right:3px;vertical-align:-2px}.imagify-modal-sidebar-trust p + p{font-size:11px}.imagify-cart{text-align:left}.imagify-cart .imagify-cart-list{border-top:1px solid rgba(122,137,150,.2);border-bottom:1px solid rgba(122,137,150,.2)}.imagify-cart .imagify-cart-label{margin-bottom:0.5em;font-size:10px;color:#2E3243}.imagify-cart-list p{margin:0;font-weight:bold}.imagify-cart-item{margin:.4em 0}.imagify-cart .imagify-cart-suggestion{margin-top:-.3em}.imagify-cart-suggestion a,.imagify-cl-description p{font-size:10px}.imagify-remove-from-cart{border:0;padding:0;width:14px;height:14px;line-height:13px;border-radius:50%;background:#40B1D0;cursor:pointer;transition:background .3s}.imagify-remove-from-cart i:before{position:relative;top:-6px;left:-3px;font-size:13px;color:#FFF}.imagify-remove-from-cart:hover,.imagify-remove-from-cart:focus{background:#D0021B}.imagify-cart .imagify-cl-remove{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;width:45px}.imagify-cart .imagify-cl-name{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;width:200px}.imagify-cart .imagify-cl-description{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;padding-top:10px}.imagify-cart .imagify-cl-price{text-align:right}#imagify-payment-iframe{width:100%;height:375px;margin-top:1em;background:#f6f7fb url(../images/loader-balls.svg) 50% 175px no-repeat}.imagify-success-view{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:100%}.imagify-success-view p{font-weight:bold;font-size:16px}.imagify-cart-emptied-item{margin:.3em auto;padding:6px 20px;background:#E6EBEF;border-radius:20px}.imagify-cart-emptied-item.imagify-cart-emptied-item p{font-weight:bold}.imagify-cart-emptied-item a{color:#40b1d0;float:right;font-weight:bold}
1
+ .imagify-start{float:left}.imagify-end{float:right}.imagify-txt-start.imagify-txt-start.imagify-txt-start{text-align:left}.imagify-txt-center.imagify-txt-center.imagify-txt-center{text-align:center}.imagify-txt-end.imagify-txt-end.imagify-txt-end{text-align:right}.imagify-mt1.imagify-mt1{margin-top:1em}.imagify-mb1.imagify-mb1{margin-bottom:1em}.imagify-mr1.imagify-mr1{margin-right:1em}.imagify-ml2.imagify-ml2{margin-left:2em}.imagify-mr2.imagify-mr2{margin-right:2em}.imagify-pl0.imagify-pl0.imagify-pl0{padding-left:0}.imagify-pr1.imagify-pr1{padding-right:1em}.imagify-oh{overflow:hidden}.imagify-clear{clear:both}.imagify-clearfix:after,.imagify-inline-options:after{content:"";display:table;clear:both}.imagify-count.imagify-count{counter-reset:num}.imagify-count .imagify-count-title{font-weight:bold}.imagify-default-settings{color:#73818c;font-weight:normal}.imagify-count .imagify-count-title:before{counter-increment:num 1;content:counter(num) ". "}.imagify-table{display:table;width:100%}.imagify-cell{display:table-cell;padding:10px;vertical-align:top}.imagify-cell.va-top,.va-top .imagify-cell{vertical-align:top}.imagify-bulk-submit .imagify-cell{padding-top:0}body.imagify-modal-is-open{overflow:hidden}.imagify-plugins-error{overflow:hidden;padding-left:20px;list-style-type:disc}.imagify-plugins-error li{width:300px;line-height:30px}@media (max-width:570px){.imagify-plugins-error li{width:auto}}.imagify-notice-dismiss.notice-dismiss{text-decoration:none}.imagify-spinner{display:inline-block;width:20px;height:20px;margin-right:5px;vertical-align:middle;background:rgba(0,0,0,0) url("../images/spinner.gif") no-repeat scroll 0 0 / 20px 20px;opacity:0.7}.spinner.imagify-hidden{width:0;margin:4px 0 0 0}.misc-pub-section.misc-pub-imagify h4{font-size:14px;margin-top:5px;margin-bottom:0}.imagify-sweet-alert button{margin-top:17px !important;height:45px !important;letter-spacing:3px;text-transform:uppercase !important;border-radius:3px !important;background-color:#40b1d0 !important;box-shadow:0 3px 0 #338ea6 !important}.imagify-sweet-alert button.loading{border-radius:100% !important;height:40px !important;padding:0!important;box-shadow:none!important}.imagify-sweet-alert button.swal2-cancel{background:#777 !important;box-shadow:0 3px 0 #444 !important}.imagify-sweet-alert-signup .sa-confirm-button-container{width:40%}.imagify-sweet-alert-signup button{width:100%;padding:0 !important}.imagify-sweet-alert .sa-input-error:before,.imagify-sweet-alert .sa-input-error:after,.imagify-sweet-alert .la-ball-fall{top:25% !important}#wpwrap{transition:all .4s}.stop-scrolling #wpwrap{filter:blur(2px)}.stop-scrolling #wpwrap #wpadminbar{top:-32px}.imagify-primary.imagify-primary.imagify-primary{color:#40b1d0}.imagify-secondary.imagify-secondary.imagify-secondary{color:#8cc152}#imagify-check-api-container{font-weight:bold}#imagify-check-api-container .dashicons{font-size:25px}#imagify-check-api-container .dashicons-no:before{color:#f06e57;vertical-align:-1px}#imagify-check-api-container .dashicons-yes:before{color:#8BC34A;vertical-align:-1px}.imagify-valid{color:#8BC34A}.imagify-chart{width:33.33%;position:relative}#imagify-overview-chart-legend{overflow:hidden}.imagify-doughnut-legend{margin-top:38px;list-style:none}.imagify-doughnut-legend li{display:block;padding-left:30px;position:relative;margin-bottom:15px;border-radius:5px;padding:3px 8px 2px 31px;font-size:14px;font-weight:600;cursor:default;-webkit-transition:background-color 200ms ease-in-out;-moz-transition:background-color 200ms ease-in-out;-o-transition:background-color 200ms ease-in-out;transition:background-color 200ms ease-in-out}.imagify-doughnut-legend li span{display:block;position:absolute;left:0;top:0;width:25px;height:25px;border-radius:50%}.imagify-chart{float:left;margin-bottom:20px}td .imagify-chart{float:none;margin-bottom:0}.imagify-chart-container{position:relative;width:180px;float:left;margin-right:20px}.imagify-global-optim-phrase{width:180px;padding-top:20px;font-size:14px;font-weight:bold;text-align:center}.imagify-total-percent{color:#46b1ce}td .imagify-chart-container{width:18px;height:18px;float:none;margin-right:10px}td .imagify-chart{top:4px}.imagify-chart-percent{position:absolute;left:0;right:0;top:50%;margin-top:-14px;text-align:center;font-size:55px;font-weight:bold;color:#46B1CE}.imagify-chart-percent span{font-size:20px;vertical-align:super}.media_page_imagify-bulk-optimization .notice,body[class*="_imagify-ngg-bulk-optimization"] .notice,.settings_page_imagify .notice{margin-right:20px;margin-left:2px}.media_page_imagify-bulk-optimization .media-item,body[class*="_imagify-ngg-bulk-optimization"] .media-item{margin:0}.media_page_imagify-bulk-optimization .media-item .progress,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress{float:none;width:100%;margin:0;background:#1F2331;box-shadow:0;border-radius:0}.media_page_imagify-bulk-optimization .media-item .percent,body[class*="_imagify-ngg-bulk-optimization"] .media-item .percent{width:auto;padding:0 5px;line-height:1.85;font-size:12px}.media_page_imagify-bulk-optimization .media-item .progress,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress,body[class*="_imagify-ngg-bulk-optimization"] .media-item .percent,.media_page_imagify-bulk-optimization .media-item .percent{text-align:right}.media_page_imagify-bulk-optimization .media-item .progress .bar,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar{width:1px;height:22px;margin-top:0;background:#46B1CE;border-radius:0;overflow:visible;-webkit-transition:width .5s;transition:width .5s}.imagify-settings a,.imagify-settings .button,.imagify-settings input,.imagify-welcome a,.imagify-welcome .button,.imagify-weolcome input{-webkit-transition:all .275s;transition:all .275s}.imagify-settings a{color:#40b1d0}.imagify-options-title{padding-bottom:.5em;border-bottom:3px solid #F2F2F2;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:0.025em;color:#40b1d0}.imagify-settings,.imagify-settings p,.imagify-settings th{color:#5F758E}@media (max-width:782px){.imagify-settings .form-table th{padding-top:2em;padding-bottom:.5em}}.imagify-settings .form-table td{vertical-align:top}.imagify-settings .form-table th span{cursor:pointer}.imagify-middle th{padding-top:35px}.imagify-settings .button,.imagify-welcome .button,.imagify-notice .button,.imagify-button.imagify-button,.imagify-button-primary.imagify-button-primary,.imagify-button-secondary.imagify-button-secondary{height:auto;padding:8px 20px;border:0 none;font-size:14px;font-weight:600;box-shadow:0 3px 0 rgba(0,0,0,.15);border-radius:3px;cursor:pointer;transition:all .275s}.imagify-notice .button-mini{padding:2px 10px;font-size:13px}.button-primary.button-mini{padding:2px 10px}.imagify-settings .button.button-mini-flat{padding:3px 6px 5px;font-size:12px;box-shadow:none!important;line-height:1.2}.imagify-settings .button.button-mini-flat:hover,.imagify-settings .button.button-mini-flat:focus{box-shadow:none!important}.imagify-title .button-ghost.button-ghost,.imagify-button-ghost.imagify-button-ghost{padding:2px 9px;border:1px solid #40B1D0;font-size:12px;font-weight:normal;color:#40B1D0;background:transparent;box-shadow:none}.imagify-title .button-ghost.button-ghost:hover,.imagify-title .button-ghost.button-ghost:focus,.imagify-button-ghost.imagify-button-ghost:hover,.imagify-button-ghost.imagify-button-ghost:focus{border-color:transparent;color:#000;background:#40B1D0}.imagify-button-ghost.imagify-button-ghost:hover,.imagify-button-ghost.imagify-button-ghost:focus{color:#FFF}.imagify-button-medium.imagify-button-medium{text-transform:uppercase;letter-spacing:0.1em;padding:3px 10px;font-weight:bold}.imagify-button-medium.imagify-button-ghost{border-width:2px}.button .dashicons{margin-right:5px;vertical-align:middle}.imagify-settings .button-primary.button-primary,.imagify-welcome .button-primary.button-primary,.imagify-button-primary.imagify-button-primary{background:#40B1D0;color:#FFF;box-shadow:0 3px 0 rgba(51,142,166,1);text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799!important}.imagify-button-secondary.imagify-button-secondary{background:#8BC34A;color:#FFF;box-shadow:0 3px 0 #6F9C3B;text-shadow:0 -1px 1px #6F9C3B,1px 0 1px #6F9C3B,0 1px 1px #6F9C3B!important}.imagify-settings .button-primary:hover,.imagify-settings .button-primary:focus,.imagify-welcome .button-primary:hover,.imagify-welcome .button-primary:focus,.imagify-button-primary.imagify-button-primary:hover,.imagify-button-primary.imagify-button-primary:focus{background:rgb(51,142,166);box-shadow:0 3px 0 rgb(31,122,146)}.imagify-button-secondary.imagify-button-secondary:hover,.imagify-button-secondary.imagify-button-secondary:focus{background:#6F9C3B;color:#FFF}.imagify-button-light.imagify-button-light{background:#FFF;color:#4a4a4a;box-shadow:0 2px 0 rgba(0,0,0,.2)}.imagify-button-light.imagify-button-light:hover,.imagify-button-light.imagify-button-light:focus{color:#FFF;background:rgba(0,0,0,.2)}.imagify-section-positive .imagify-button-light{color:#709A41}.imagify-button.imagify-button-big{font-size:15px;padding:11px 30px}.imagify-button-big .dashicons{font-size:1.45em;margin-right:6px;margin-left:-4px}.imagify-settings .button .dashicons,.imagify-welcome .button .dashicons,.imagify-notice .button .dashicons,.imagify-button.imagify-button .dashicons,.imagify-button-primary.imagify-button-primary .dashicons,.imagify-button-secondary.imagify-button-secondary .dashicons{vertical-align:middle}.button-text{display:inline-block;vertical-align:middle}#imagify-bulk-action{padding:11px 20px}.wp_attachment_image .imagify-button-primary,.media-frame-content .imagify-button-primary{float:left;padding:0 10px 1px;margin:0 5px 2px 0;font-size:13px;line-height:26px;box-shadow:0 3px 0 rgba(51,142,166,1)}.imagify-settings input[type="text"]{color:#4A4A4A;font-weight:600;box-shadow:none}.imagify-settings div.submit.submit{padding-left:235px;padding-top:40px}.imagify-settings p.submit{float:left;margin-top:0}.imagify-settings p.submit .button{margin:0 5px}@media (max-width:850px){.imagify-settings div.submit{padding-left:0}.imagify-settings p.submit{text-align:center}}.imagify-title.imagify-title{position:relative;padding:30px 50px;font-size:23px;background:#2E3243;color:#FFF}.imagify-settings .imagify-title + .imagify-notice{margin:0;border-right:1px solid #D9D9D9;padding-top:15px;padding-bottom:15px}.imagify-logo{vertical-align:top}.imagify-sub-header,.imagify-sub-title.imagify-sub-title,.imagify-settings div.submit,.imagify-section{margin:0;padding:20px;background:#F2F5F7}.imagify-sub-title.imagify-sub-title,.imagify-section-positive{padding-left:40px}.imagify-section-positive{background:#8cc152;color:#FFF}.imagify-section-positive p{color:#FFF}.imagify-section-gray{background:#D9E4EB}.imagify-section-gray .imagify-count-title{color:#4a4a4a}.imagify-section p:first-child{margin-top:0}.imagify-section p:last-child{margin-bottom:0}p.imagify-section-title.imagify-section-title{font-size:20px;margin-top:-.3em;margin-bottom:-.6em}.imagify-bulk-info{margin:1em 1em 1em 5px;transition:margin .3s}@media (max-width:850px){.imagify-bulk-info{margin:1em}}.imagify-bulk-info p{display:inline-block;text-align:left;width:400px;max-width:100%;font-weight:bold}@media (min-width:1500px){.imagify-settings div.submit{display:table;width:100%}.imagify-settings div.submit > *{display:table-cell;vertical-align:middle}.imagify-bulk-info{padding:0 25px;text-align:right}}.imagify-settings div.submit{margin-top:2em;padding:20px 0}.imagify-sub-header th{text-align:right}.imagify-sub-header .form-table{margin:0}.imagify-sub-header th,.imagify-sub-header td{padding-top:0;padding-bottom:0}[for="api_key"]{padding-top:5px}.imagify-notice .imagify-rate-us.imagify-rate-us{position:relative;bottom:0;right:0;text-align:left}.imagify-notice .imagify-rate-us .stars{margin:0}.imagify-rate-us.imagify-rate-us{position:absolute;bottom:50%;right:20px;text-align:right;margin-bottom:-2.4em;color:#FFF}.imagify-rate-us a{color:#40B1D0}.imagify-rate-us .stars{display:inline-block;margin:2px 0 0 10px;text-decoration:none;letter-spacing:.2em;vertical-align:-1px}.imagify-rate-us .stars .dashicons:before{font-size:18px}.imagify-rate-us a:hover,.imagify-rate-us a:focus{color:#FEE102}@media (max-width:1220px){.imagify-rate-us.imagify-rate-us{position:static;margin-bottom:0;text-align:left}.imagify-rate-us.imagify-rate-us br{display:none}.imagify-rate-us .stars{display:block;margin-left:0}}.imagify-rkt-notice.imagify-rkt-notice{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:10px 45px 10px 0;border:0 none;box-shadow:none;color:#FFF;background:#412355}.media_page_imagify-bulk-optimization .imagify-rkt-notice{margin-left:2px;margin-right:20px}@media (max-width:782px){.media_page_imagify-bulk-optimization .imagify-rkt-notice{margin-left:0;margin-right:12px}}.imagify-rkt-notice .imagify-cross{position:absolute;right:8px;top:50%;width:22px;height:22px;padding:0;margin-top:-11px;background:transparent;color:#FD7300;border-radius:50%;transition:all .275s}.imagify-rkt-notice .imagify-cross .dashicons{position:relative;top:2px;left:1px;transition:all .275s}.imagify-rkt-notice .imagify-cross:hover{background:#FFF}.imagify-rkt-notice .imagify-cross:hover .dashicons{color:#412355}.imagify-rkt-notice .imagify-rkt-cta,.imagify-rkt-notice .imagify-rkt-logo,.imagify-rkt-notice .imagify-rkt-coupon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.imagify-rkt-notice .imagify-rkt-logo{width:150px!important;text-align:center;padding:0 25px 0 30px;line-height:0.8}.imagify-rkt-notice .imagify-rkt-msg{width:100%!important;padding:0 15px;font-size:14px;line-height:1.6}.imagify-rkt-notice .imagify-rkt-coupon{width:150px!important;padding:0 15px}.imagify-rkt-notice .imagify-rkt-coupon-code{padding:5px 10px;font-size:23px;font-weight:bold;border:1px dashed #F7A933;color:#F7A933}.imagify-rkt-notice .imagify-rkt-cta{width:250px!important;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-basis:200px;-ms-flex-preferred-size:200px;flex-basis:200px}.imagify-rkt-notice .button.button{position:relative;top:-1px;height:auto;font-weight:600;font-size:14px;box-shadow:0 4px 0 #B27A27;border:0 none;padding:9px 18px 9px;background:#F7A933;text-shadow:1px 1px 1px rgba(0,0,0,.2)}@media (max-width:880px){.imagify-rkt-notice{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.imagify-rkt-notice .imagify-rkt-msg,.imagify-rkt-notice .imagify-rkt-cta,.imagify-rkt-notice .imagify-rkt-logo{text-align:left;padding:5px 15px}.imagify-cross.imagify-cross{top:8px;margin-top:0}.imagify-rkt-notice .imagify-cross .dashicons{top:1px}}.imagify-settings-section{padding:10px 20px}[id="imagify-settings"],.imagify-welcome .imagify-settings-section{border:1px solid #D9D9D9;border-top:0 none;background:#FFF}.imagify-br{line-height:2}.imagify-important{color:#F5A623}.imagify-info,.imagify-info a{color:#40B1D0;font-size:12px}.imagify-info{position:relative;display:inline-block;padding-left:25px;vertical-align:top}.imagify-info .dashicons{position:absolute;left:0;top:-1px}label + .imagify-info,label + .imagify-options-line,.imagify-visual-label{display:inline-block;max-width:70%;margin-left:15px;margin-top:2px!important;-webkit-transition:opacity .3s;transition:opacity .3s}.imagify-visual-label{vertical-align:-5px}label[for="imagify_sizes_full"] + .imagify-info{vertical-align:middle}.imagify-settings.imagify-settings [type="checkbox"]:not(:checked) + label + .imagify-options-line,.imagify-settings.imagify-settings [type="checkbox"]:not(:checked) + label .imagify-visual-label{opacity:.5}.imagify-settings.imagify-settings [type="checkbox"]:checked + label + .imagify-options-line,.imagify-settings.imagify-settings [type="checkbox"]:checked + label .imagify-visual-label{opacity:1}.imagify-checkbox-marged{max-width:500px;margin-left:45px}.imagify-settings.imagify-settings [type="checkbox"]:not(:checked),.imagify-settings.imagify-settings [type="checkbox"]:checked,.imagify-checkbox.imagify-checkbox:not(:checked),.imagify-checkbox.imagify-checkbox:checked{opacity:0.01}.imagify-settings.imagify-settings [type="checkbox"]:not(:checked):focus,.imagify-settings.imagify-settings [type="checkbox"]:checked:focus,.imagify-checkbox.imagify-checkbox:not(:checked):focus,.imagify-checkbox.imagify-checkbox:checked:focus{box-shadow:none!important;outline:none!important;border:0 none!important}.imagify-settings [type="checkbox"]:not(:checked) + label,.imagify-settings [type="checkbox"]:checked + label,.imagify-checkbox.imagify-checkbox:not(:checked) + label,.imagify-checkbox.imagify-checkbox:checked + label{position:relative;padding-left:6px;cursor:pointer;vertical-align:top}.imagify-settings [type="checkbox"]:not(:checked) + label:before,.imagify-settings [type="checkbox"]:checked + label:before,.imagify-checkbox.imagify-checkbox:not(:checked) + label:before,.imagify-checkbox.imagify-checkbox:checked + label:before{content:'';position:absolute;left:0;top:0;width:28px;height:28px;margin:0 0 0 -24px;border:2px solid #8BA6B4;background:#FFFFFF;border-radius:4px}.imagify-settings [type="checkbox"]:not(:checked) + label:after,.imagify-settings [type="checkbox"]:checked + label:after,.imagify-checkbox.imagify-checkbox:not(:checked) + label:after,.imagify-checkbox.imagify-checkbox:checked + label:after{content:"✓";position:absolute;font-size:1.4em;top:3px;left:-16px;-webkit-transition:all .2s;-moz-transition:all .2s;-ms-transition:all .2s;transition:all .2s}.imagify-settings [type="checkbox"][disabled]:not(:checked) + label:before,.imagify-settings [type="checkbox"][disabled]:checked + label:before,.imagify-checkbox.imagify-checkbox[disabled]:not(:checked) + label:before,.imagify-checkbox.imagify-checkbox[disabled]:checked + label:before{border-color:#ccc;background:#ddd}.imagify-settings [type="checkbox"]:not(:checked) + label:after,.imagify-checkbox.imagify-checkbox:not(:checked) + label:after{opacity:0;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.imagify-settings [type="checkbox"]:checked + label:after,.imagify-checkbox.imagify-checkbox:checked + label:after{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}input[id^="imagify_sizes_"]:checked + label{font-weight:bold}.medium.imagify-checkbox:not(:checked) + label:before,.medium.imagify-checkbox:checked + label:before{width:22px;height:22px;border-width:1.5px;border-radius:2px;margin-top:0}.medium.imagify-checkbox:not(:checked) + label:after,.medium.imagify-checkbox:checked + label:after{font-size:1.1em;left:-17px;top:3px}.imagify-settings .mini[type="checkbox"]:not(:checked) + label:before,.imagify-settings .mini[type="checkbox"]:checked + label:before,.mini.imagify-checkbox:not(:checked) + label:before,.mini.imagify-checkbox:checked + label:before{width:15px;height:15px;border-width:1px;border-radius:2px;margin-top:0}.imagify-settings .mini[type="checkbox"]:not(:checked) + label:after,.imagify-settings .mini[type="checkbox"]:checked + label:after,.mini.imagify-checkbox:not(:checked) + label:after,.mini.imagify-checkbox:checked + label:after{font-size:.9em;left:-21px;top:1px}.imagify-settings [type="checkbox"]:not(:checked):focus + label:before,.imagify-settings [type="checkbox"]:checked:focus + label:before,.imagify-checkbox.imagify-checkbox:not(:checked):focus + label:before,.imagify-checkbox.imagify-checkbox:checked:focus + label:before{border-style:dotted;border-color:#40b1d0}.imagify-inline-options{position:relative;display:table;width:100%;max-width:600px;border-collapse:collapse}.imagify-small-options{width:300px;margin:1em auto .5em;background:#338EA6;border-radius:4px}.imagify-inline-options input[type="radio"]:not(:checked),.imagify-inline-options input[type="radio"]:checked{position:absolute;left:5px;top:5px;display:none}.imagify-inline-options input[type="radio"]:not(:checked) + label,.imagify-inline-options input[type="radio"]:checked + label{position:relative;display:table-cell;padding:13px 10px;text-align:center;font-weight:600;font-size:16px;text-transform:uppercase;letter-spacing:0.1em;color:#FFF;background:#2E3243;border-left:1px solid rgba(255,255,255,0.2);box-shadow:0 -3px 0 rgba(0,0,0,0.1) inset,inset -1px 0 0 rgba(255,255,255,0.2);z-index:2;-webkit-transition:all .275s;transition:all .275s}.imagify-small-options input[type="radio"]:not(:checked) + label,.imagify-small-options input[type="radio"]:checked + label{padding:8px 10px;font-size:13px;color:#FFF;box-shadow:none;border-left:0}.imagify-bulk-submit .imagify-inline-options input[type="radio"]:not(:checked) + label,.imagify-bulk-submit .imagify-inline-options input[type="radio"]:checked + label{margin-bottom:1.75em}.imagify-inline-options input[type="radio"]:not(:checked) + label:first-of-type,.imagify-inline-options input[type="radio"]:checked + label:first-of-type{border-radius:3px 0 0 3px}.imagify-inline-options input[type="radio"]:not(:checked) + label:last-of-type,.imagify-inline-options input[type="radio"]:checked + label:last-of-type{border-radius:0 3px 3px 0}.imagify-inline-options input[type="radio"]:checked + label{background:#8BC34A}.imagify-small-options input[type="radio"]:not(:checked) + label{background:#338EA6;color:rgba(255,255,255,.4)}.imagify-small-options input[type="radio"]:checked + label{background:#40B1D0}.imagify-inline-options .imagify-info{margin-top:15px}.imagify-btn-info{display:block;font-size:0.7em;letter-spacing:0;line-height:1;text-transform:none}#describe-resize-larger input{width:5em}.imagify-cols:after{content:"";display:table;clear:both}.imagify-col{float:left;width:50%}.imagify-main{float:left;width:70%}.imagify-sidebar{float:right;width:28%;max-width:300px}.imagify-sidebar-section{border:1px solid #BBB;background:#FFF}.imagify-sidebar-section + .imagify-sidebar-section{margin-top:2em}@media (max-width:820px){.imagify-settings{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.imagify-main{width:auto;float:none}.imagify-sidebar{order:2;float:none;width:auto;max-width:none;margin-left:0;margin-top:25px}.wp-media-products{text-align:center}.wp-media-products li{display:inline-block;width:100%;max-width:276px}}@media (min-width:1400px){.imagify-main{width:74%}}.imagify-sidebar-title{display:block;padding:20px 15px;border-bottom:1px solid #BBB;font-size:14px;font-weight:bold;color:#23282d;background:#F2F5F7}.imagify-sidebar-title img{vertical-align:top;margin-right:5px}.imagify-sidebar .wp-media-products{margin-top:0;margin-bottom:-.5em}.imagify-sidebar .wp-media-products .links{display:block;padding:85px 25px 24px;text-align:center;background-color:#2E3243;background-size:contain;background-repeat:no-repeat;background-position:50% 0;text-decoration:none}.imagify-sidebar .wp-media-products .links p{margin:1.5em auto;color:#FFF}.imagify-sidebar .wp-media-products .wprocket-link{background-image:linear-gradient(to bottom,rgba(59,30,78,0),rgba(59,30,78,0) 130px,rgba(59,30,78,1) 210px),url("../images/sidebar-wp-rocket.jpg");background-color:#3B1E4E;background-repeat:repeat-x,no-repeat}.imagify-sidebar-content{padding:10px 20px}.imagify-mark-styled{display:inline-block;padding:1px 2px 1px 4px;line-height:1.3;font-weight:bold;background:#F7A933;transform-origin:50% 50%;transform:rotateZ(-2deg) rotateX(-10deg) skewX(-2deg) skewY(-3deg);text-shadow:1px 1px 0 rgba(0,0,0,0.2)}.imagify-mark-styled span{display:inline-block;transform:rotateZ(2deg) rotateX(10deg) skewX(2deg) skewY(3deg)}.imagify-discount-code{margin:0.35em 0 .5em;display:block;font-size:2em;letter-spacing:.05em;font-weight:bold;text-align:center;text-shadow:1px 1px 0 rgba(0,0,0,0.2)}.imagify-big-text{font-size:15px;font-weight:bold}.imagify-big-text strong{font-size:20px}a.btn-rocket{display:block;font-size:1.15em;padding:12px;background:#F7A933;box-shadow:0 3px 0 #D69626;border-radius:3px;color:#FFF;text-transform:uppercase;font-weight:bold;text-shadow:1px 1px 0 rgba(0,0,0,0.2);text-decoration:none}a.btn-rocket:hover,a.btn-rocket:focus{background:darkorange;box-shadow:0 3px 0 darkorange}.imagify-welcome{margin:30px 20px 0 0}.imagify-welcome .baseline{display:inline-block;margin:.2em 0 0 2em;font-size:17px}.imagify-welcome .imagify-logo{vertical-align:middle}.imagify-welcome-remove{position:absolute;top:50%;right:15px;margin-top:-8px;color:#FFF;text-decoration:none}.imagify-columns{overflow:hidden;padding:15px 0;counter-reset:cols}.imagify-columns [class^="col-"]{float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.imagify-columns .col-1-3{width:33.333%;padding-left:28px}.imagify-columns .col-2-3{width:66.666%;padding-left:28px}.imagify-columns .col-1-2{width:50%;padding:0 20px}.imagify-columns .col-overview{padding-left:20px}.imagify-columns .col-informations{width:36.6%;padding-right:30px}.imagify-columns .col-statistics{width:30%}@media (max-width:830px){.imagify-columns [class^="col-"]{float:none;margin-bottom:1.5em}.imagify-columns .col-1-3,.imagify-columns .col-1-2{width:auto;padding:0 28px;clear:both;padding-top:1em}}.imagify-columns [class^="col-"] img{float:left;margin-right:18px}.imagify-col-content{overflow:hidden}.imagify-col-title{margin:0 0 15px 0;font-size:23px}.counter .imagify-col-title:before{counter-increment:cols;content:counter(cols) ". ";color:#40B1D0}.imagify-col-desc{color:#5F758E;margin-bottom:2em}.imagify-notice.imagify-notice{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0;margin:10px 20px 10px 2px;border:0 none;background:#2E3243;box-shadow:none;color:#FFF}@media (max-width:782px){.imagify-notice.imagify-notice,.imagify-welcome{margin-right:12px}}@media (max-width:450px){.imagify-notice.imagify-notice{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}}.wrap .imagify-notice{margin:5px 15px 2px;position:relative}.imagify-notice-logo{padding:18px 23px;background:#40B1D0}.updated .imagify-notice-logo{background:#8BC34A}.error .imagify-notice-logo{background:#D0021B}.imagify-popin-message{padding:5px 15px;text-align:left}.imagify-popin-message.imagify-error p{color:#FFF}.imagify-notice-title{font-size:15px}.imagify-notice-content{padding:5px 23px}.imagify-notice-content.imagify-notice-content p{margin:0.65em 0}.imagify-notice a{color:#40B1D0}.imagify-notice a:hover,.imagify-notice a:focus{color:#FEE102}.imagify-notice code{background:rgba(0,0,0,0.4) none repeat scroll 0 0}.column-imagify_optimized_file.column-imagify_optimized_file{width:300px;text-align:center;vertical-align:middle}.column-imagify_optimized_file > *{max-width:235px;margin:0 auto}ul.imagify-datas-list.imagify-datas-list{margin:0 auto;color:#555;font-size:10px}.compat-field-imagify .label{vertical-align:top}.compat-field-imagify ul.imagify-datas-list{margin-top:7px;font-size:11px}ul.imagify-datas-list .big{font-size:12px;color:#40B1D0}.imagify-data-item{overflow:hidden}.imagify-data-item .imagify-chart{display:inline-block;top:1px;width:20px;vertical-align:middle;margin-bottom:0}li.imagify-data-item{clear:both;margin-bottom:2px}ul.imagify-datas-list .imagify-data-item span.data,ul.imagify-datas-list .imagify-data-item strong{float:left;width:50%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}ul.imagify-datas-list .imagify-data-item span.data{text-align:left;padding-right:5px}.compat-field-imagify .imagify-datas-list .imagify-data-item .data{width:130px;text-align:left;font-weight:bold}.media-sidebar .imagify-datas-list .imagify-data-item .data{width:auto;float:none}ul.imagify-datas-list .imagify-data-item strong{text-align:left;padding-left:5px}.media-sidebar .imagify-datas-list .imagify-data-item strong{width:auto;float:none}.imagify-datas-more-action.imagify-datas-more-action{margin:.4em auto;background:linear-gradient(to bottom,transparent,transparent 49%,rgba(0,0,0,.075) 50%,rgba(0,0,0,.075) 58%,transparent 58%,transparent)}.imagify-datas-more-action a{display:inline-block;padding:0 5px;background:#40B1D0;color:#FFF;text-transform:uppercase;font-size:9px;font-weight:bold;line-height:1.9;text-decoration:none}.imagify-datas-more-action a.is-open{background:#555}.imagify-datas-more-action a.is-open .dashicons{transform:rotate(180deg)}.imagify-datas-more-action a .dashicons{font-size:14px;vertical-align:middle;line-height:.8}.imagify-datas-more-action a .dashicons:before{vertical-align:middle;line-height:20px}.imagify-datas-more-action .the-text{display:inline-block;vertical-align:middle;height:20px;line-height:20px}ul.imagify-datas-details.imagify-datas-details{margin:.7em auto}.imagify-datas-details strong{color:#40B1D0}.imagify-datas-details .original{color:#555}.imagify-datas-actions-links{overflow:hidden;border-top:2px solid transparent;padding-top:5px;font-size:8px}.imagify-datas-actions-links a{position:relative;display:inline-block;padding-left:17px;text-decoration:none;font-weight:600}.compat-field-imagify .imagify-datas-actions-links{max-width:300px}.misc-pub-imagify .imagify-datas-actions-links{border-top:2px solid #f2f2f2;padding-bottom:5px}.compat-field-imagify .imagify-datas-actions-links a,.misc-pub-imagify .imagify-datas-actions-links a{font-size:10px;float:left;width:50%}.media-sidebar .compat-field-imagify .imagify-datas-actions-links a,.submitbox .misc-pub-imagify .imagify-datas-actions-links a{display:block;width:auto;float:none}.column-imagify_optimized_file .imagify-datas-actions-links a{margin:0 .7em;padding-left:15px}.imagify-datas-actions-links a:only-child{float:none;width:auto}.imagify-datas-details.is-open + .imagify-datas-actions-links{border-top-color:rgba(0,0,0,.075)}.imagify-datas-actions-links .dashicons{position:absolute;left:0;top:4px;width:12px;margin-right:2px;font-size:11px}.imagify-title > h1{padding:0}.imagify-title-right{display:table;float:right;margin-top:-10px}.imagify-title-right p{margin:0}.imagify-title-right a{font-weight:bold;text-decoration:none}.imagify-title-right > div{display:table-cell;vertical-align:middle}.imagify-title-right .dashicons-arrow-down-alt2{vertical-align:-4px;margin-left:2px}@media (max-width:1200px){.imagify-bulk .imagify-title{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.imagify-title-right{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;margin-top:20px}}.imagify-account,.imagify-account-link{padding-right:15px}.imagify-sep-v{width:1px;background:rgba(255,255,255,.2)}.imagify-credit-left{position:relative;min-width:280px;padding-left:15px}.imagify-meteo-icon{display:inline-block;height:38px;vertical-align:middle;margin-right:10px}.imagify-user-plan{color:#40b1d0}@media (max-width:630px){.imagify-title-right{display:block;width:auto}.imagify-title-right > div{display:block;width:auto;margin-top:10px;max-width:100%}.imagify-credit-left{padding-left:0}}.imagify-meteo-title.imagify-meteo-title{color:#FFF;font-size:17px}.imagify-space-left{display:inline-block;min-height:38px;min-width:245px;vertical-align:middle}.imagify-space-left > p{color:#FFF}[class^="imagify-bar-"],#wp-admin-bar-imagify-profile [class^="imagify-bar-"]{position:relative;height:15px;width:100%;background:#60758D;color:#FFF;font-size:10px}.base-transparent{background:transparent}[class^="imagify-bar-"].right-outside-number{-webkit-box-sizing:border-box;box-sizing:border-box;padding-right:45px}.right-outside-number .imagify-barnb{display:block;margin-right:-45px;text-align:right;font-weight:bold;line-height:15px}.imagify-progress-value,#wp-admin-bar-imagify-profile .imagify-progress-value{position:absolute;top:0;right:0;left:0;bottom:0;text-align:center;line-height:13px;font-weight:bold}.imagify-progress,#wp-admin-bar-imagify-profile .imagify-progress{height:15px}.imagify-progress{transition:width .3s}.imagify-bar-positive .imagify-progress{background:#8CC152}.imagify-bar-positive .imagify-barnb{color:#8CC152}.imagify-bar-negative .imagify-progress{background:#73818C}.imagify-bar-negative .imagify-barnb{color:#73818C}.imagify-bar-neutral .imagify-progress{background:#F5A623}.imagify-space-left .imagify-bar-negative .imagify-progress{background:#D0021B}#wpadminbar #wp-admin-bar-imagify-profile *{line-height:1.5;white-space:initial}#wpadminbar #wp-admin-bar-imagify .ab-submenu{padding-bottom:0}#wpadminbar #wp-admin-bar-imagify-profile .ab-item{height:auto;padding:0 13px}#wpadminbar #wp-admin-bar-imagify-profile{min-width:200px;padding:15px 0 10px;margin-top:0.7em;background:#222}#wp-admin-bar-imagify .dashicons{font-family:"dashicons";font-size:18px;vertical-align:middle;margin:0 5px 0 0}#wp-admin-bar-imagify .button-text{display:inline-block;vertical-align:middle}#wp-admin-bar-imagify .imagify-abq-row{display:table;width:100%}#wp-admin-bar-imagify .imagify-abq-row + .imagify-abq-row{margin-top:.75em}#wp-admin-bar-imagify .imagify-abq-row > *{display:table-cell}#wp-admin-bar-imagify-profile .imagify-meteo-icon{padding-right:7px}#wp-admin-bar-imagify-profile .imagify-meteo-icon img{width:37px}#wp-admin-bar-imagify-profile .imagify-meteo-title{font-size:17px}#wp-admin-bar-imagify-profile .imagify-meteo-subs{color:#72889F}#wpadminbar #wp-admin-bar-imagify-profile strong{font-weight:bold}#wpadminbar #wp-admin-bar-imagify-profile .imagify-user-plan,#wpadminbar #wp-admin-bar-imagify-profile a{padding:0;color:#40B1D0}#wpadminbar #wp-admin-bar-imagify-profile .imagify-account-link{display:table}#wpadminbar #wp-admin-bar-imagify-profile .imagify-account-link > *{display:table-cell}#wpadminbar #wp-admin-bar-imagify-profile .imagify-space-left{max-width:210px;min-width:210px;width:210px}#wpadminbar #wp-admin-bar-imagify-profile .imagify-space-left p{font-size:12px}#wp-admin-bar-imagify-profile .imagify-error,#wp-admin-bar-imagify-profile .imagify-warning{padding:10px;margin:0 -13px -13px}#wp-admin-bar-imagify-profile .imagify-error p + p,#wp-admin-bar-imagify-profile .imagify-warning p + p{margin-top:.5em}#wp-admin-bar-imagify-profile .imagify-error p + p + p,#wp-admin-bar-imagify-profile .imagify-warning p + p + p{margin-top:1em}.btn-ghost,#wpadminbar #wp-admin-bar-imagify-profile .btn-ghost{display:inline-block;height:auto;padding:7px 10px;border:1px solid #FFF;text-align:center;background:transparent;color:#FFF;border-radius:3px;transition:all .275s}.btn-ghost:hover,.btn-ghost:focus,#wpadminbar #wp-admin-bar-imagify-profile .btn-ghost:hover,#wpadminbar #wp-admin-bar-imagify-profile .btn-ghost:focus{background:#FFF;color:#888}.imagify-list-infos{max-width:100%;width:415px}.imagify-list-infos li,.imagify-info-block{position:relative;padding:10px;padding-left:42px;background:#D9E4EB;border-radius:4px;line-height:1.6}.imagify-list-infos .imagify-alt.imagify-alt{background:#8BA7B5;color:#FFF;font-weight:bold}.imagify-list-infos li + li{margin-top:1em}.imagify-list-infos li:before,.imagify-info-block:before{content:"";position:absolute;left:13px;top:14px;height:16px;width:16px;border:1px solid #46b1ce;border-radius:10px}.imagify-list-infos li:after,.imagify-info-block:after{content:"i";position:absolute;left:20px;top:13px;font-style:italic;color:#46b1ce}.imagify-cell .imagify-info-block{padding-top:0}.imagify-cell .imagify-info-block:after{top:6px}.imagify-cell .imagify-info-block:before{top:7px}.imagify-list-infos .imagify-alt:before,.imagify-list-infos .imagify-alt:after{color:#fff;border-color:#fff}.imagify-sub-title.imagify-sub-title{font-size:23px;background:#FFF;color:#2E3243;border-left:1px solid #D9D9D9;border-right:1px solid #D9D9D9;font-weight:lighter}.imagify-sub-title .icon-bulk{margin-right:10px;vertical-align:middle}.imagify-sub-title .title-text{display:inline-block;line-height:1;vertical-align:middle}.imagify-bulk .imagify-settings-section{border:1px solid #D9D9D9;border-top:0;background:#F2F5F7;color:#4A4A4A}.imagify-bulk .imagify-settings-section p,.imagify-bulk .imagify-settings-section li,.imagify-bulk .imagify-settings-section h3{color:#4A4A4A}.imagify-bulk .imagify-settings-section h3{margin-bottom:2em}.imagify-title .imagify-tooltips{position:absolute;top:100%;left:0}.imagify-tooltips .icon-round{float:left;display:inline-block;width:28px;height:28px;border:1px solid #FFF;margin-right:8px;margin-bottom:8px;font-size:17px;font-style:italic;line-height:29px;font-weight:bold;text-align:center;border-radius:50%}.imagify-tooltips .tooltip-content{display:block;position:relative;max-width:250px;padding:7px 15px 8px;background:#2e3242;color:#FFF;font-size:10px;border-radius:3px}.imagify-tooltips.right .tooltip-content{margin-left:12px}.imagify-tooltips.bottom .tooltip-content{margin-top:4px}.imagify-inline-options label .tooltip-content{position:absolute;left:0;right:0;top:100%;text-transform:none;font-size:10px;letter-spacing:0;text-align:center}.imagify-tooltips .tooltip-content:after{content:"";position:absolute}.imagify-tooltips.right .tooltip-content:after{top:16px;left:-6px;border-right:8px solid #2e3242;border-top:6px solid transparent;border-bottom:6px solid transparent}.imagify-tooltips.bottom .tooltip-content:after{top:-5px;left:50%;margin-left:-3px;border-bottom:6px solid #2e3242;border-left:6px solid transparent;border-right:6px solid transparent}.imagify-space-tooltips .tooltip-content{max-width:280px;margin-top:20px;margin-left:0;padding:5px 15px 5px;font-size:13px;background:#40B1D0;box-shadow:0 3px 0 #338EA6}.imagify-space-tooltips .tooltip-content:after{top:-14px;left:50%;margin-left:-7px;border:0 none;border-bottom:15px solid #40B1D0;border-left:15px solid transparent;border-right:15px solid transparent}.tooltip-content.tooltip-table{display:table;width:100%}.tooltip-content.tooltip-table > *{display:table-cell;vertical-align:middle}.tooltip-content .cell-icon{width:28px}.tooltip-content .cell-icon .icon{margin-bottom:0}.tooltip-content .cell-text{padding:5px 10px 5px 0;line-height:1.3}.tooltip-content .cell-sep{width:1px;background:rgba(255,255,255,.4)}.tooltip-content .cell-cta{padding-left:10px}.tooltip-content .cell-cta a{display:block;color:#FFF;width:100%;height:100%;white-space:nowrap}.imagify-number-you-optimized .number{display:table-cell;padding-right:15px;font-size:36px;font-weight:bold;line-height:1.1;vertical-align:middle;white-space:nowrap}.imagify-number-you-optimized .text{display:table-cell;vertical-align:middle;overflow:hidden;font-size:12px}.imagify-number-you-optimized .text br{display:none}.imagify-number-you-optimized > p{display:table}.imagify-number-you-optimized{padding-bottom:0.85em;margin-bottom:1.35em;overflow:hidden;border-bottom:1px solid rgba(0,0,0,0.05)}.imagify-bars p{font-weight:bold;font-size:12px;margin-bottom:0}.imagify-bars + .imagify-number-you-optimized{border-bottom:0;padding-top:0.85em}.imagify-bars + .imagify-number-you-optimized p{color:#46b1ce}.imagify-bulk-table{margin-top:2em;max-height:600px;max-height:60vh;overflow:auto}.imagify-bulk-table table{width:100%;border-spacing:0;border-collapse:collapse;border:1px solid #D3D3D3}.imagify-bulk-table td{padding:8px 15px}.imagify-bulk-table thead tr,.imagify-bulk-table thead th{background:#2E3242}.imagify-bulk-table tfoot tr,.imagify-bulk-table tfoot th{background:#73818C}.imagify-bulk-table thead th{padding:14px 15px;text-align:left;color:#F2F5F7;font-weight:bold;font-size:14px}.imagify-bulk-table tfoot td{padding:14px 15px;color:#F9FAFA}.imagify-bulk-table tbody tr,.imagify-bulk-table tbody td{background:#FFF}.imagify-bulk-table tbody tr:nth-child(odd),.imagify-bulk-table tbody tr:nth-child(odd) td{background:#F2F5F7}.imagify-bulk-table .imagify-row-progress{display:none}.imagify-bulk-table .imagify-row-progress,.imagify-bulk-table .imagify-row-progress td{height:15px;padding:0}.imagify-bulk-table .imagify-no-uploaded-yet td{height:200px;font-size:17px;letter-spacing:.1em;word-spacing:.12em;vertical-align:middle;text-transform:uppercase;font-weight:bold;text-align:center;color:#999;background-color:#FFF}.imagify-row-complete{padding:35px 20px;margin-top:2em;background:#8BC34A;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,.1)}.imagify-row-complete .imagify-ac-chart{margin-top:3px}.imagify-row-complete p{color:#FFF;margin:0}@-webkit-keyframes congrate{0%{opacity:0;-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.05);opacity:1}100%{-webkit-transform:scale(1);opacity:1}}​ @keyframes congrate{0%{opacity:0;transform:scale(1)}50%{transform:scale(1.05);opacity:1}100%{transform:scale(1);opacity:1}}.imagify-row-complete.done{-webkit-animation:congrate 500ms ease-in-out;animation:congrate 500ms ease-in-out}.imagify-all-complete{margin:1.5em 0}.imagify-all-complete > div{display:inline-block;vertical-align:middle}.imagify-ac-report{min-width:310px}.imagify-ac-chart{width:46px;height:46px;float:left;margin:0 20px 0 10px}.imagify-ac-report-text{overflow:hidden}.imagify-ac-report-text p{line-height:1.3}.imagify-ac-rt-big{font-weight:bold;font-size:24px;letter-spacing:0.15em;word-spacing:0.15em;text-transform:uppercase}.imagify-ac-share{text-align:right}.imagify-ac-share-content{display:inline-block;padding:10px 15px;background:rgba(255,255,255,.2)}.imagify-ac-share-content > *{display:inline-block;vertical-align:middle}.imagify-bulk-table .imagify-ac-share-content p{margin-right:5px}.imagify-share-networks,.imagify-share-networks li{margin:0}.imagify-share-networks li{display:inline-block}.imagify-share-networks a{display:inline-block;vertical-align:-7px;margin:0 5px;text-decoration:none;color:#FFF}.imagify-cell-filename{max-width:200px}.imagify-cell-status{max-width:145px}.imagify-cell-status .dashicons-warning{margin-right:2px}.imagify-cell-thumbnails{max-width:120px}td.imagify-cell-filename{text-overflow:clip;white-space:nowrap;overflow:hidden}.imagify-bulk-table td.imagify-cell-totaloriginal{padding-right:78px}.imagiuploaded,.imagifilename{display:inline-block;vertical-align:middle}.imagifilename{font-size:12px}.imagiuploaded{width:33px;height:33px;margin-right:5px;margin-left:-8px;overflow:hidden;background:url(../images/upload-image.png) 0 0 no-repeat;background-size:cover}.imagiuploaded img{max-widht:100%;height:auto}.imagistatus{color:#8CA6B3;text-transform:uppercase;font-weight:bold}.status-compressing{color:#46B1CE}.status-error{color:#CE0B24}.status-warning{color:#f5a623}.status-complete{color:#8CC152}.imagify-error{background:#D0021B;color:#FFF}.imagify-warning,#wpadminbar .imagify-warning *{background:#f5a623;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,0.2)}.imagify-bulk-table .imagify-cell-thumbnails{text-align:center}.imagify-cell-percentage,.imagify-cell-savings{color:#46B1CE;font-weight:bold}.imagify-cell-optimized{font-weight:bold}.imagify-cell-totaloriginal{text-align:right}.dashicons.rotate{-webkit-animation:icon-rotate 2.6s infinite linear;animation:icon-rotate 2.6s infinite linear}.dashicons-admin-generic{transform-origin:48.75% 51.75%}.imagify-modal{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.js .imagify-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#1F2332;background-color:rgba(31,35,50,.95);z-index:99999}.imagify-modal-content{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;width:800px;max-width:95%;max-height:90vw;overflow:auto;padding:20px 25px;margin:1em auto;background:#FFF;box-shadow:1px 1px 4px rgba(0,0,0,.7);border-radius:3px}#imagify-visual-comparison .imagify-modal-content,.imagify-visual-comparison .imagify-modal-content{max-width:1400px;background:transparent;padding:5px;box-shadow:none;border-radius:0}.imagify-modal .h2{margin:.5em 0;color:#8ba6b4;font-weight:normal;font-size:24px;letter-spacing:0.075em;text-align:center}.imagify-modal .h3{color:#40b1d0;font-weight:normal;font-size:18px;letter-spacing:0.075em;text-align:center}.text-justify{text-align:justify}.imagify-modal .close-btn{display:none;visibility:hidden;position:absolute;right:20px;top:20px;font-size:1.2em;border:0;background:transparent none;border-radius:0;cursor:pointer}.imagify-modal .close-btn i{margin-left:-2px}.imagify-modal .close-btn:hover,.imagify-modal .close-btn:focus{color:#40b1d0}.js .imagify-modal .close-btn{display:block;visibility:visible}.js .imagify-iframe-viewing .close-btn{display:none}#imagify-visual-comparison .close-btn,.imagify-visual-comparison .close-btn{top:50px;right:5px;width:33px;height:33px;padding:1px 0 0 2px;border:1px solid #F2F2F2;color:#F2F2F2;line-height:19px;text-align:center;border-radius:50%}.wp_attachment_image #imagify-visual-comparison .close-btn,.imagify-visual-comparison .close-btn{top:0}.wp_attachment_image #imagify-visual-comparison .imagify-modal-content,.imagify-visual-comparison .imagify-modal-content{padding-top:40px}.imagify-modal .imagify-comparison-title{font-size:28px;margin-bottom:1em;color:#F2F2F2;text-align:left}.imagify-modal .imagify-comparison-title .twentytwenty-duo-buttons{position:static;margin:0 10px 0 15px}.imagify-comparison-title .twentytwenty-duo-buttons button{float:none;padding:6px 12px;font-size:16px;text-transform:none;border:1px solid #40B1D0;color:#888899;letter-spacing:0}.imagify-comparison-title .twentytwenty-duo-buttons button:focus{outline:none;box-shadow:none}.imagify-comparison-title .twentytwenty-duo-buttons .selected{border:1px solid #40B1D0;color:#FFF;background:#40B1D0}.imagify-comparison-levels{margin:15px 0;overflow:hidden}.imagify-comparison-levels div{display:none;min-width:175px;font-size:11px}.imagify-comparison-levels .imagify-chart,.imagify-comparison-levels .imagify-chart-container{width:25px;float:none;margin:0}.imagify-visual-comparison .imagify-chart-container canvas{width:15px!important;height:15px!important;margin-right:5px}.imagify-c-level.go-left{float:left}.imagify-c-level.go-right{float:right}.imagify-c-level.go-right,.imagify-c-level.go-left{display:table}.imagify-c-level .imagify-c-level-row{display:table-row;margin:0;color:#FFF}.imagify-c-level-row > span{display:table-cell;padding:2px 0}.imagify-c-level-row .value{text-align:right;padding-left:5px}.imagify-c-level-row .value.level{color:#40b1d0}.imagify-c-level-row .value.size{color:#8bc34a;font-weight:bold}.imagify-c-level-row .value .imagify-chart{top:1px}@-webkit-keyframes icon-rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes icon-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.imagify-menu-bar-img{margin-top:1em}.imagify-modal .loader{position:absolute;top:50%;left:50%;margin:-32px 0 0 -32px;opacity:0;visibility:hidden;transition:opacity .4s}.imagify-modal .loading .loader{visibility:visible;opacity:1}.imagify-settings .imagify-visual-comparison-text{margin-top:1em;color:#40b1d0;font-weight:bold}.imagify-modal-cols,.imagify-border-styled,.imagify-offer-header,.imagify-payment-modal .imagify-modal-content,.imagify-flex-table,.imagify-tabs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.imagify-modal-cols,.imagify-border-styled{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.imagify-payment-modal{text-align:center;color:#7A8996}.imagify-payment-modal *{box-sizing:border-box}.imagify-modal-loader{position:absolute;top:0;left:0;right:0;bottom:0;background:#fff url('../images/loader-balls.svg') center no-repeat;z-index:10}.imagify-payment-modal .imagify-modal-content{width:980px;max-width:100%;min-width:925px;padding:0}.imagify-modal-content.imagify-iframe-viewing{width:980px;height:672px;overflow:hidden}.imagify-iframe-viewing #imagify-payment-process-view{width:980px;height:668px}.imagify-payment-modal .imagify-modal-main{width:70%}.imagify-iframe-viewing .imagify-modal-main{width:auto}.imagify-payment-modal .imagify-modal-content.imagify-success-viewing{min-width:auto;width:450px;min-height:300px}.imagify-success-viewing .imagify-modal-main{width:100%}.imagify-payment-modal .imagify-modal-sidebar{width:30%;padding:15px 20px;background:#1F2332;color:#FFF}.imagify-modal-content.imagify-iframe-viewing .imagify-modal-sidebar,.imagify-modal-content.imagify-success-viewing .imagify-modal-sidebar{display:none}.imagify-modal-section{padding:0 25px}.imagify-modal-section.section-gray{margin:0 0 1em;padding:10px 25px 15px;background:#F6F7FB}.imagify-tabs-contents .section-gray{padding:8px 25px 10px}.imagify-modal-section .imagify-modal-title:first-child{margin-top:1em;margin-bottom:1.5em}.imagify-modal-section.section-gray .imagify-modal-title{margin-top:.5em;margin-bottom:.5em}.imagify-modal-title{font-size:1.8em}.imagify-analyzing .imagify-numbers-calc,.imagify-numbers-notcalc,.imagify-modal-section.imagify-analyzing .imagify-modal-cols,.imagify-modal-section .imagify-loader{display:none}.imagify-analyzing .imagify-numbers-notcalc,.imagify-modal-section.imagify-analyzing .imagify-loader{display:block}.imagify-modal-section .imagify-loader{margin:2em auto}.imagify-border-styled{width:200px;margin:0 auto;color:#8BC34A;font-weight:bold;font-size:0.925em}.imagify-big-number{font-size:3.7em;font-weight:bold;margin:-3px 0;color:#4A4A4A;line-height:1}.imagify-border-styled:before,.imagify-border-styled:after{content:"";height:1px;background:rgba(0,0,0,.1);-webkit-flex-basis:40px;-ms-flex-preferred-size:40px;flex-basis:40px}.imagify-border-styled:before{margin-right:5px}.imagify-border-styled:after{margin-left:5px}.imagify-payment-modal strong{font-weight:bold;color:#4A4A4A}.imagify-col{-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.imagify-modal .imagify-cols{padding:0 20px}.imagify-payment-modal .imagify-iconed{margin:1.5em 5em 1.5em 0}.imagify-iconed{position:relative;text-align:left;padding-left:42px;margin-right:15px;font-weight:500}.imagify-iconed .dashicons,.imagify-iconed .icon{position:absolute;font-size:2em;left:0;top:2px;color:#40B1D0}.imagify-payment-modal .close-btn{top:10px;right:10px;width:24px;height:24px;padding:2px 0 0 4.5px;color:#FFF;background:#40B1D0;border-radius:50%;-webkit-transition:all .275s;transition:all .275s}.imagify-payment-modal .close-btn i{margin-left:-3.5px;margin-top:-0.5px}.imagify-payment-modal .close-btn:hover{background:#F6F7FB}.imagify-offer-line{margin-top:1.5em}.imagify-offer-line + .imagify-offer-line{margin-top:0.75em}.imagify-offer-header{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:0 0 0 15px;border-radius:4px 4px 0 0;-webkit-transition:all .275s;transition:all .275s}.imagify-offer-header.imagify-offer-header.imagify-offer-header .imagify-inline-options label:last-child{border-radius:0 4px 0 0}.imagify-offer-header .imagify-inline-options{width:auto}.imagify-offer-title{font-weight:bold;margin:0}.imagify-offer-header,.imagify-offer-header .imagify-inline-options input[type="radio"]:not(:checked) + label{background:#E5EBEF}.imagify-offer-onetime .imagify-offer-header{padding-top:8px;padding-bottom:8px}.imagify-offer-onetimes > div{padding-top:15px;padding-bottom:15px}.imagify-offer-header .imagify-inline-options input[type="radio"]:not(:checked) + label,.imagify-offer-header .imagify-inline-options input[type="radio"]:checked + label{position:relative;padding:7px 30px;font-size:1em;letter-spacing:0.05em;color:inherit;box-shadow:0 0 0;border-radius:0}.imagify-offer-header .imagify-inline-options input[type="radio"]:checked + label{background:#F6F7FB}.imagify-2-free{position:absolute;bottom:100%;left:0;right:0;padding:2px 10px;margin-bottom:8px;font-size:0.8em;letter-spacing:0;text-transform:none;text-align:center;color:#FFF;background:#10121A;border-radius:2px}.imagify-2-free:after{content:"";position:absolute;left:50%;bottom:-3px;margin-left:-3px;border-top:3px solid #10121A;border-left:3px solid transparent;border-right:3px solid transparent}.imagify-2-free.imagify-b-right{bottom:auto;left:100%;right:-100%;margin-bottom:0;margin-left:8px}.imagify-2-free.imagify-b-right:after{left:-3px;bottom:auto;top:50%;margin-top:-3px;margin-left:0;border-right:3px solid #10121A;border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:0}.imagify-2-free.imagify-b-bottom{bottom:-100%;left:0;right:0;margin-top:8px}.imagify-2-free.imagify-b-bottom:after{top:-3px;bottom:auto;border-bottom:3px solid #10121A;border-left:3px solid transparent;border-right:3px solid transparent;border-top:0}.imagify-offer-content{text-align:left;background:#F6F7FB;border-radius:0 0 4px 4px;-webkit-transition:all .275s;transition:all .275s}.imagify-offer-onetime .imagify-offer-content{padding:10px 0}div.imagify-col-checkbox{position:relative;width:35.5%;padding-top:10px;padding-bottom:7px}.imagify-col-checkbox label{display:block}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked),.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked{position:absolute;top:50%;left:6px;margin:-8px 0 0 0}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked) + label:before,.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked + label:before{margin:0;top:-2px;left:6px;-webkit-transition:all .275s;transition:all .275s}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked) + label:after,.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked + label:after{top:1px;left:13px}.imagify-col-checkbox label{padding-left:55px!important}.imagify-offer-size{font-size:30px;color:#2E3243;font-weight:bold;-webkit-transition:all .275s;transition:all .275s}.imagify-offer-by{font-size:10px;-webkit-transition:all .275s;transition:all .275s}.imagify-approx{display:none;font-size:11px;line-height:1.2;-webkit-transition:all .275s;transition:all .275s}div.imagify-col-price{width:30%}.imagify-flex-table .imagify-price-block{padding-left:0;padding-right:0}.imagify-offer-monthly .imagify-flex-table .imagify-price-block,.imagify-offer-monthlies .imagify-price-block{padding-top:0}.imagify-flex-table .imagify-price-complement{padding-right:0;font-size:10px;font-weight:bold}.imagify-price-block span{display:inline-block;vertical-align:middle}span.imagify-dollars{color:#1F2332;font-size:18px;font-weight:bold;vertical-align:-2px}.imagify-offer-onetime .imagify-col-price{padding-top:0}.imagify-offer-onetime .imagify-dollars{vertical-align:-7px}.imagify-price-big,.imagify-price-mini{color:#40B1D0;font-weight:bold}.imagify-price-big{font-size:36px}span.imagify-price-mini{font-size:18px;vertical-align:2px}span.imagify-price-by{font-size:10px;color:#1F2332;vertical-align:-13px;text-indent:-27px}.imagify-col-other-actions{width:18.5%;text-align:right}.imagify-col-other-actions a{font-size:11px}.imagify-offer-selected,.imagify-offer-selected .imagify-offer-title,.imagify-offer-selected .imagify-offer-size,.imagify-offer-selected .imagify-price-big,.imagify-offer-selected .imagify-price-mini,.imagify-offer-selected .imagify-price-complement,.imagify-offer-selected .imagify-col-other-actions a{color:#FFF}.imagify-offer-selected .imagify-offer-header,.imagify-offer-selected .imagify-offer-header .imagify-inline-options input[type="radio"]:not(:checked) + label{background:#338EA6}.imagify-offer-selected .imagify-offer-header .imagify-inline-options input[type="radio"]:checked + label{background:#40B1D0}.imagify-offer-selected .imagify-offer-content{background:#40B1D0}.imagify-offer-selected .imagify-checkbox.imagify-checkbox:not(:checked) + label:before,.imagify-offer-selected .imagify-checkbox.imagify-checkbox:checked + label:before{border-color:#FFF;background:#40B1D0}.imagify-offer-selected .imagify-offer-by{color:#2E3243}.imagify-not-enough-title{display:none}.imagify-enough-free .imagify-not-enough-title{display:block}.imagify-enough-free .imagify-enough-title{display:none}.imagify-submit-line{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:2em 0;text-align:left}.imagify-coupon-section{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-coupon-section p{margin:0;line-height:1.3}.imagify-coupon-text{width:200px;max-width:100%;padding-right:15px}.imagify-coupon-loader{display:none}.imagify-coupon-text.checking{text-align:right}.imagify-coupon-text.checking .imagify-coupon-loader{display:inline}.imagify-coupon-text.checking label{display:none}.imagify-coupon-input{position:relative}.imagify-coupon-input input{position:relative;z-index:1}[id="imagify-coupon-validate"].button-secondary{position:absolute;top:1px;right:3px;bottom:2px;box-shadow:none;padding:4px 10px;z-index:0;transition:transform .275s}.imagify-canbe-validate [id="imagify-coupon-validate"]{transform:translateX(45px)}.imagify-submit-line button{font-size:16px}input.imagify-coupon-code{padding:10px;border:2px solid #7A8996;font-size:0.875em;font-weight:bold;border-radius:3px}.validated.imagify-coupon-section .imagify-coupon-text,.validated.imagify-coupon-section strong{color:#8BC34A}.validated.imagify-coupon-section .imagify-coupon-code{color:#8BC34A;border-color:#8BC34A}.invalid.imagify-coupon-section .imagify-coupon-text,.invalid.imagify-coupon-section strong{color:#d0021b}.invalid.imagify-coupon-section .imagify-coupon-code{color:#d0021b;border-color:#d0021b}.imagify-footer-lines{width:500px;max-width:100%;margin:2em auto 2.5em;font-size:0.85em;line-height:1.5}.imagify-year-selected .imagify-switch-my .imagify-yearly{display:block}.imagify-year-selected .imagify-switch-my .imagify-monthly{display:none}.imagify-month-selected .imagify-switch-my .imagify-yearly{display:none}.imagify-month-selected .imagify-switch-my .imagify-monthly{display:block}.imagify-flex-table{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.imagify-flex-table > *{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:7px 15px}div.imagify-col-details{width:22%;padding-left:25px}.imagify-col-details p{margin:0}.imagify-pricing-table{margin:0 20px}.imagify-pricing-table .imagify-offer-line{padding:.6em 0;border:2px solid #E8EEF0;text-align:left;border-radius:3px}.imagify-pricing-table .imagify-offer-line:first-child{margin-top:.75em}.imagify-pricing-table .imagify-offer-line.imagify-offer-selected:first-child{margin-top:1.75em}.imagify-pricing-table .imagify-offer-line + .imagify-offer-line{margin-top:-2px}.imagify-pricing-table .imagify-col-other-actions{width:20.5%}.imagify-pricing-table .imagify-approx{margin-left:0;line-height:0.5;margin-bottom:1em}.imagify-pricing-table .imagify-offer-selected{-webkit-transform:scale(1.03);transform:scale(1.03);background:#40B1D0;border-width:0}.imagify-pricing-table .imagify-offer-selected .imagify-approx{color:#FFF}.imagify-pricing-table .imagify-button-secondary{padding:3px 20px;box-shadow:none;text-transform:uppercase;font-size:12px;letter-spacing:0.025em}.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary{border:2px solid #FFF;background:#40B1D0;box-shadow:none;text-shadow:none!important}.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary:hover,.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary:focus{background:#FFF;color:#40B1D0}.imagify-col .imagify-special-needs{margin-left:25px}.imagify-special-needs strong{font-size:25px;font-weight:bold;color:#40B1D0}.imagify-special-needs span{display:block;font-size:12px;margin-top:-.5em}div.imagify-col-price{position:relative}.imagify-recommend{display:none;position:absolute;left:-20px;bottom:100%;padding:0;margin-bottom:8px;color:#1F2332;font-weight:bold;font-style:italic}.imagify-offer-selected .imagify-recommend{display:block}[class*="imagify-onetime-"] .imagify-recommend{left:65px;margin-bottom:20px}.imagify-recommend:before{content:"";position:absolute;top:7px;left:-35px;width:29px;height:30px;background:url("../images/icon-arrow-choice.png") scroll 0 no-repeat;background-size:contain}@media only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.imagify-recommend:before{background-image:url("../images/icon-arrow-choice.svg")}}.imagify-offer-line[class*="imagify-onetime-"]{padding:0;margin:.3em 0 0}.imagify-offer-line.imagify-offer-line[class*="imagify-onetime-"]:first-child{margin-top:2em}.imagify-offer-line[class*="imagify-onetime-"] + .imagify-offer-line{margin-top:.5em}.imagify-offer-selected.imagify-offer-line[class*="imagify-onetime-"]{-webkit-transform:scale(1);transform:scale(1);border-width:2px}.imagify-offer-line[class*="imagify-onetime-"] .imagify-col-details{position:relative;overflow:hidden;width:21%;background:#1F2332;color:#FFF}.imagify-offer-selected.imagify-offer-line[class*="imagify-onetime-"] .imagify-col-details{background:#338EA6}.imagify-offer-line[class*="imagify-onetime-"] .imagify-col-details:before{content:"";position:absolute;bottom:0;right:25px;width:75px;height:54px;background:url("../images/icon-pack.png")}.imagify-offer-line[class*="imagify-onetime-"] .imagify-col-other-actions{width:30%}.imagify-offer-line[class*="imagify-onetime-"] .imagify-offer-size,.imagify-offer-line[class*="imagify-onetime-"] .imagify-approx{color:#FFF}.imagify-offer-line[class*="imagify-onetime-"] .imagify-offer-size{font-size:24px}.imagify-offer-line[class*="imagify-onetime-"] .imagify-approx{font-size:12px}.imagify-offer-line[class*="imagify-onetime-"] .imagify-price-block{padding-left:10px}.imagify-offer-line[class*="imagify-onetime-"] .imagify-dollars{vertical-align:middle}.imagify-offer-line[class*="imagify-onetime-"] .imagify-price-big{vertical-align:-5px}.imagify-offer-line[class*="imagify-onetime-"] .imagify-price-mini{vertical-align:7px}.imagify-tabs{margin-bottom:0;list-style:none;background:#E5EBEF}.imagify-modal-content .imagify-tabs{margin:1em 0 0}.imagify-tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;width:50%;margin:0;font-size:23px}.imagify-tab a{display:block;padding:15px 10px;color:inherit;text-decoration:none}.imagify-tab a:focus{box-shadow:none;outline:none;color:#40B1D8}.imagify-tab.imagify-current a{background:#F6F7FB}.imagify-tab-content.imagify-current{display:block}.imagify-tab-content{display:none}.imagify-tab-content .imagify-modal-section:first-child{margin-top:0}.imagify-modal-sidebar-content,.imagify-payment-modal .imagify-modal-sidebar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.imagify-modal-sidebar-content{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}p.imagify-modal-sidebar-title{margin-top:5px;padding-right:40px;font-size:18px;color:#FFF}.imagify-modal-testimony{margin-top:1em}.imagify-modal-testimony + .imagify-modal-testimony{margin-top:2em}@media (max-height:620px){.imagify-modal-testimony + .imagify-modal-testimony{display:none}}.imagify-modal-testimony-person{display:table;width:100%}.imagify-modal-testimony-person > *{display:table-cell;vertical-align:middle}.imagify-modal-avatar{width:114px;line-height:0}.imagify-modal-avatar img{border:2px solid #FFF;border-radius:50%;width:96px;height:96px}.imagify-modal-identity a{text-decoration:none;font-weight:bold}.imagify-modal-identity a:first-child{font-size:13px}.imagify-modal-identity a:first-child + a{display:block;font-size:10px;color:#7A8996}.imagify-modal-testimony-content p{font-size:13px;font-style:italic;line-height:1.7;color:#7A8996}.imagify-modal-sidebar-trust{margin-top:auto;padding-top:1.5em}.imagify-modal-sidebar-trust p{margin:0;font-weight:bold;font-size:12px;line-height:1.7}.imagify-modal-sidebar-trust p img{margin-right:3px;vertical-align:-2px}.imagify-modal-sidebar-trust p + p{font-size:11px}.imagify-cart{text-align:left}.imagify-cart .imagify-cart-list{border-top:1px solid rgba(122,137,150,.2);border-bottom:1px solid rgba(122,137,150,.2)}.imagify-cart .imagify-cart-label{margin-bottom:0.5em;font-size:10px;color:#2E3243}.imagify-cart-list p{margin:0;font-weight:bold}.imagify-cart-item{margin:.4em 0}.imagify-cart .imagify-cart-suggestion{margin-top:-.3em}.imagify-cart-suggestion a,.imagify-cl-description p{font-size:10px}.imagify-remove-from-cart{border:0;padding:0;width:14px;height:14px;line-height:13px;border-radius:50%;background:#40B1D0;cursor:pointer;transition:background .3s}.imagify-remove-from-cart i:before{position:relative;top:-6px;left:-3px;font-size:13px;color:#FFF}.imagify-remove-from-cart:hover,.imagify-remove-from-cart:focus{background:#D0021B}.imagify-cart .imagify-cl-remove{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;width:45px}.imagify-cart .imagify-cl-name{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;width:200px}.imagify-cart .imagify-cl-description{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;padding-top:10px}.imagify-cart .imagify-cl-price{text-align:right}#imagify-payment-iframe{width:980px;height:672px;background:#f6f7fb url(../images/loader-balls.svg) 50% 50% no-repeat}.imagify-success-view{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:100%}.imagify-success-view p{font-weight:bold;font-size:16px}.imagify-cart-emptied-item{margin:.3em auto;padding:6px 20px;background:#E6EBEF;border-radius:20px}.imagify-cart-emptied-item.imagify-cart-emptied-item p{font-weight:bold}.imagify-cart-emptied-item a{color:#40b1d0;float:right;font-weight:bold}
assets/js/admin.js CHANGED
@@ -139,30 +139,47 @@ jQuery(function($){
139
  };
140
 
141
  // accessibility
142
- $('.imagify-modal').attr('aria-hidden', 'true');
143
 
144
  // on click on modal trigger
145
- $('.imagify-modal-trigger').on('click.imagify', function(){
146
-
147
  imagify_open_modal( $(this) );
148
-
149
  return false;
150
  });
151
 
152
  // on click on close button
153
- $(document).on('click.imagify', '.imagify-modal .close-btn', function(){
154
- $(this).closest('.imagify-modal').fadeOut(400).attr('aria-hidden', 'true').removeClass('modal-is-open');
155
- $('body').removeClass('imagify-modal-is-open');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  })
157
- .on('blur.imagify', '.imagify-modal .close-btn', function(){
158
  var $modal = $(this).closest('.imagify-modal');
159
  if ( $modal.attr('aria-hidden') === 'false' ) {
160
  $modal.attr('tabindex', '0').focus().removeAttr('tabindex');
161
  }
162
  });
163
 
 
 
 
 
 
164
  // `Esc` key binding
165
- $(window).on('keydown', function(e){
166
  if ( e.keyCode == 27 && $('.imagify-modal.modal-is-open').length > 0 ) {
167
 
168
  e.preventDefault();
@@ -177,7 +194,7 @@ jQuery(function($){
177
  var busy = false,
178
  xhr = false;
179
 
180
- $('#wp-admin-bar-imagify').hover( function() {
181
  if ( true === busy ) {
182
  return;
183
  }
@@ -200,7 +217,7 @@ jQuery(function($){
200
  * Payment Modal
201
  *
202
  * @since 1.5
203
- * @author Geoffrey
204
  */
205
 
206
  if ( $('#imagify-pricing-modal').length ) {
@@ -225,132 +242,252 @@ jQuery(function($){
225
 
226
  return output;
227
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  imagify_get_pricing = function( $button ){
229
- var data = {
 
230
  action: 'imagify_get_prices',
231
- imagifynonce: $button.data('nonce')
 
 
 
 
232
  };
233
 
234
  $modal.find('.imagify-modal-loader').hide().show();
235
 
236
- $.post( ajaxurl, data, function( response ) {
237
- if ( response.success ) {
238
- var datas = response.data,
239
- monthlies = datas.monthlies,
240
- onetimes = datas.onetimes,
241
- mo_user_cons= 1000, // TODO: dynamic, in MB,
242
- ot_user_cons= 51000, // TODO: dynamic, in MB,
243
- $mo_tpl = $('#imagify-offer-monthly-template'),
244
- $ot_tpl = $('#imagify-offer-onetime-template'),
245
- ot_clone = $ot_tpl.html(),
246
- mo_clone = $mo_tpl.html(),
247
- ot_html = '',
248
- mo_html = '',
249
- ot_suggested= false,
250
- mo_suggested= false;
251
-
252
- // Do the MONTHLIES Markup
253
- // TODO: remove offers from monthlies depending on mo_user_cons
254
-
255
- $.each( monthlies, function( index, value ) {
256
- if ( value.label === 'free' ) {
257
- return true; // continue like (but $.each is not a loop… so)
258
- }
259
- var add = value.additional_gb, // 4
260
- ann = value.annual_cost, // 49.9
261
- id = value.id, // 3
262
- lab = value.label, // 'lite'
263
- mon = value.monthly_cost, // 4.99
264
- quo = value.quota, // 1000 (MB) - 5000 images
265
- name= ( quo >= 1000 ? quo/1000 + ' GB' : quo + ' MB' ),
266
- $tpl= $( mo_clone ).clone(),
267
- pcs = { monthly: mon, yearly: Math.round( ann / 12 * 100 ) / 100 };
268
-
269
- // parent classes
270
- classes = '';
271
- if ( ( mo_user_cons < quo && mo_suggested === false ) ) {
272
- classes = ' imagify-offer-selected';
273
- mo_suggested = true;
274
  }
275
- $tpl.addClass( 'imagify-monthly-' + lab + classes);
276
-
277
- // name
278
- $tpl.find('.imagify-offer-size').text( name );
279
 
280
- // nb images
281
- $tpl.find('.imagify-approx-nb').text( quo * 5 );
 
 
 
 
282
 
283
- // additionnal price
284
- $tpl.find('.imagify-price-add-data').text( '$' + add );
 
285
 
286
- // main prices
287
- $tpl.find('.imagify-number-block').html( imagify_get_html_price( pcs, 'monthly' ) );
288
 
289
- // button data-offer attr
290
- $tpl.find('.imagify-payment-btn-select-plan').attr('data-offer', '{"' + lab + '":{"id":' + id + ',"name":"' + name + '","data":' + quo + ',"dataf":"' + name + '","imgs":' + ( quo * 5 ) + ',"prices":{"monthly":' + pcs.monthly + ',"yearly":' + pcs.yearly + ',"add":' + add + '}}}');
291
-
292
- // complete Monthlies HTML
293
- mo_html += $tpl[0].outerHTML;
294
-
295
- });
296
-
297
- // Do the ONETIMES Markup
298
- // TODO: add custom estimation in onetimes table based on ot_user_cons
299
- $.each( onetimes, function( index, value ) {
300
- var id = value.id, // 1
301
- co = value.cost, // 3.49
302
- la = value.label, // "250MB"
303
- qu = value.quota, // 250
304
- name = ( qu >= 1000 ? qu / 1000 + ' GB' : qu + ' MB' ),
305
- $tpl = $( ot_clone ).clone();
306
 
307
- // parent classes
308
- classes = '';
309
- if ( ( ot_user_cons < qu && ot_suggested === false ) ) {
310
- classes = ' imagify-offer-selected';
311
- ot_suggested = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
312
  }
313
- $tpl.addClass( 'imagify-onetime-' + la + classes);
314
 
315
- // name
316
- $tpl.find('.imagify-offer-size').text( name );
 
317
 
318
- // nb images
319
- $tpl.find('.imagify-approx-nb').text( qu * 5 );
 
 
 
320
 
321
- // main prices
322
- $tpl.find('.imagify-number-block').html( imagify_get_html_price( co, 'monthly' ) );
323
 
324
- // button data-offer attr
325
- $tpl.find('.imagify-payment-btn-select-plan').attr('data-offer', '{"ot' + la + '":{"id":' + id + ',"name":"' + name + '","data":' + qu + ',"dataf":"' + name + '","imgs":' + ( qu * 5 ) + ',"price":' + co + '}}');
 
326
 
327
- // complete Monthlies HTML
328
- ot_html += $tpl[0].outerHTML;
329
- });
330
 
331
- // Fill pricing tables
332
- if ( $mo_tpl.parent().find('.imagify-offer-line') ) {
333
- $mo_tpl.parent().find('.imagify-offer-line').remove();
334
- }
335
- $mo_tpl.before( mo_html );
336
 
337
- if ( $ot_tpl.parent().find('.imagify-offer-line') ) {
338
- $ot_tpl.parent().find('.imagify-offer-line').remove();
339
- }
340
- $ot_tpl.before( ot_html );
 
341
 
342
- // Fill the Pre-checkout view
343
- // (depending on user_cons)
 
 
344
 
345
- // Show the content
346
- $modal.find('.imagify-modal-loader').fadeOut(300);
347
 
 
348
 
349
  } else {
350
  // TODO: replace modal content by any information
351
  // an error occurred
352
  }
353
 
 
 
354
  }); // end $.post
355
  },
356
  imagify_check_check = function( $checkbox ) {
@@ -364,6 +501,9 @@ jQuery(function($){
364
  $(this).closest('.imagify-offer-line').removeClass( sel_class );
365
  }
366
  });
 
 
 
367
  },
368
  imagify_check_radio = function( $radio ) {
369
  var year_class = 'imagify-year-selected',
@@ -394,8 +534,51 @@ jQuery(function($){
394
  $to_switch.find('.imagify-yearly').attr('aria-hidden', 'true');
395
  }
396
  });
 
 
 
 
397
  return $radio;
398
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
399
  $checkboxes = $('.imagify-offer-line').find('.imagify-checkbox'),
400
  $radios = $('.imagify-payment-modal').find('.imagify-radio-line').find('input');
401
 
@@ -403,6 +586,13 @@ jQuery(function($){
403
  imagify_check_check( $checkboxes );
404
  imagify_check_radio( $radios.filter(':checked') );
405
 
 
 
 
 
 
 
 
406
  // check the changed box
407
  $checkboxes.on('change.imagify', function(){
408
  imagify_check_check( $(this) );
@@ -453,9 +643,12 @@ jQuery(function($){
453
  }
454
  */
455
  var $iframe = $('#imagify-payment-iframe'),
456
- iframe_src = $iframe.attr('src'),
 
457
  monthly_id = 0,
458
  onetime_id = 0;
 
 
459
  if ( typeof params === 'object' ) {
460
  if ( params.monthly ) {
461
  monthly_id = params.monthly[ Object.keys( params.monthly )[0] ].id;
@@ -467,30 +660,76 @@ jQuery(function($){
467
  }
468
 
469
  if ( params.period ) {
470
- iframe_src = iframe_src.split('?')[0] + '?monthly=' + monthly_id + '&onetime=' + onetime_id + '&api=' + imagify_get_api_key() + '&period=' + params.period;
471
-
472
- $iframe.attr( 'src', iframe_src );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
473
 
474
  } else {
475
- imagifyAdmin.labels.info('No period defined');
476
  }
477
- } else if ( typeof params === 'string' ) {
478
- iframe_src = iframe_src.split('&period=');
479
- $iframe.attr( 'src', iframe_src[0] + '&period=' + params );
 
 
 
480
  }
481
  },
482
  imagify_get_period = function() {
483
- return ( $('.imagify-cart').hasClass('imagify-month-selected') ? 'monthly' : 'yearly' );
484
  },
485
  imagify_get_api_key = function(){
486
  return $('#imagify-payment-iframe').data('imagify-api');
487
  };
488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
489
  // init views
 
490
  $plans_view.hide();
491
  $payment_view.hide();
492
  $success_view.hide();
493
- //$pre_view.hide();
494
 
495
  // 1) when you decide to choose another plan
496
 
@@ -562,31 +801,39 @@ jQuery(function($){
562
  $target_line.find('.imagify-inline-options').find('input:radio:checked').trigger('change.imagify');
563
  }
564
 
 
 
 
565
  return false;
566
  });
567
 
568
 
569
  // 2) when you checkout
570
- $('#imagify-modal-checkout-btn').on('click.imagify', function(){
571
 
572
- var $monthly_offer = $('.imagify-offer-monthly'),
573
- $onetime_offer = $('.imagify-offer-onetime'),
 
 
 
 
 
574
  checkout_datas = {},
575
- period_choosen = ( $monthly_offer.hasClass('imagify-year-selected') ? 'year' : 'month' );
576
 
577
  // if user choose a monthly plan
578
- if ( $monthly_offer.hasClass('imagify-offer-selected') ) {
579
 
580
- checkout_datas.monthly = JSON.parse( $monthly_offer.attr('data-offer') );
581
- $('.imagify-cart-list-my-choice').show();
582
 
583
  // price calculation
584
  prices = checkout_datas.monthly[Object.keys(checkout_datas.monthly)[0]].prices;
585
  save_price = Math.round( ( ( prices.monthly - prices.yearly ) * 12 ) * 100 ) / 100;
586
- $('.imagify-nb-save-per-year').text( '$' + save_price );
587
 
588
  } else {
589
- $('.imagify-cart-list-my-choice').hide();
590
  }
591
 
592
  // if user choose a one time plan
@@ -595,132 +842,15 @@ jQuery(function($){
595
  }
596
 
597
  // change views to go to checkout/payment view
598
- $pre_view.hide().attr('aria-hidden', 'true');
599
- $payment_view.fadeIn(speedFadeIn).attr('aria-hidden', 'false');
600
-
601
- // hide "Cancel you removing" blocks
602
- $('.imagify-cart-emptied-item').hide().attr('aria-hidden', 'true');
603
-
604
- // Step 2 active
605
- $('#imagify-pricing-step-2').addClass('active');
606
-
607
- // Car item emptyfied & hidden
608
- $payment_view.find('.imagify-cart-item').hide()
609
- .attr('data-offer', '');
610
-
611
- // Then completion of those items
612
- $.each( checkout_datas, function( index, value ) {
613
-
614
- var $line = $payment_view.find('.imagify-cart-item-' + index ),
615
- offer = value[Object.keys(value)[0]],
616
- $cart = $('.imagify-cart');
617
-
618
- $line.show();
619
-
620
- // product datas
621
- $line.attr('data-offer', JSON.stringify( value ) );
622
-
623
- // product name
624
- $line.find('.imagify-the-product-name').text( offer.name );
625
-
626
- // datas provide
627
- $line.find('.imagify-cart-offer-data').text( offer.dataf );
628
-
629
- // prices
630
- if ( index === 'onetime') {
631
- $line.find('.imagify-number-block').html( imagify_get_html_price( offer.price ) );
632
- } else {
633
- $line.find('.imagify-number-block').find('.imagify-switch-my').html( imagify_get_html_price( offer.prices, period_choosen + 'ly' ) );
634
- }
635
-
636
- // right class on Cart List depending on period selected
637
- $cart.removeClass( 'imagify-month-selected imagify-year-selected' )
638
- .addClass( 'imagify-' + period_choosen + '-selected' );
639
-
640
- // trigger period choosen
641
- if ( period_choosen === 'month' ) {
642
- $cart.find('#imagify-checkout-monthly').trigger('click.imagify');
643
- } else {
644
- $cart.find('#imagify-checkout-yearly').trigger('click.imagify');
645
- }
646
- $cart.find('.imagify-inline-options').find('input:radio:checked').trigger('change.imagify');
647
-
648
- });
649
 
650
  checkout_datas.period = imagify_get_period();
651
 
652
  imagify_iframe_set_src( checkout_datas );
653
  return false;
654
  });
655
-
656
-
657
- // Removing an item
658
- $('.imagify-remove-from-cart').on('click.imagify', function(){
659
- var $_this = $(this),
660
- $line = $_this.closest('.imagify-cart-item'),
661
- is_monthly = $line.hasClass('imagify-cart-item-monthly'),
662
- $other_line = ( is_monthly ? $('.imagify-cart-item-onetime') : $('.imagify-cart-item-monthly') ),
663
- is_empty = $other_line.hasClass('imagify-temporary-removed'),
664
- offer_datas = $line.attr('data-offer'), // string
665
- still_datas = ( is_empty ? null : $other_line.data('offer') ); // object
666
-
667
- $line.hide().attr('aria-hidden', 'true').attr('data-offer', '').addClass('imagify-temporary-removed');
668
- $line.next('.imagify-cart-emptied-item').fadeIn(300).attr('aria-hidden', 'false').attr('data-offer', offer_datas )
669
- .find('.imagify-removed-name').html( $line.find('.imagify-cart-product-name').html() );
670
-
671
- if ( typeof imagify_iframe_set_src === 'function' ) {
672
- if ( still_datas !== null ) {
673
- var datas_to_send = {};
674
- datas_to_send[ ( is_monthly ? 'onetime' : 'monthly' )] = still_datas;
675
- datas_to_send.period = imagify_get_period();
676
- imagify_iframe_set_src( datas_to_send );
677
- }
678
- else {
679
- imagifyAdmin.labels.info('No offers selected');
680
- }
681
- } else {
682
- imagifyAdmin.labels.info('imagify_iframe_set_src seems to be not declared');
683
- }
684
- return false;
685
- });
686
-
687
- // cancel action
688
- $('.imagify-cancel-removing').on('click.imagify', function(){
689
-
690
- var $_this = $(this),
691
- $msg_block = $_this.closest('.imagify-cart-emptied-item'),
692
- $line = $msg_block.prev('.imagify-cart-item'),
693
- is_monthly = $line.hasClass('imagify-cart-item-monthly'),
694
- $other_line = ( is_monthly ? $('.imagify-cart-item-onetime') : $('.imagify-cart-item-monthly') ),
695
- other_empty = $other_line.hasClass('imagify-temporary-removed'),
696
- offer_datas = $msg_block.attr('data-offer'), // string
697
- still_datas = ( other_empty ? null : $other_line.data('offer') ); // object
698
-
699
-
700
- $msg_block.hide().attr('aria-hidden', 'true').attr('data-offer', '')
701
- .prev('.imagify-cart-item').fadeIn(300).attr('aria-hidden', 'true').attr('data-offer', offer_datas ).removeClass('imagify-temporary-removed');
702
-
703
- // if new_datas === {} that is because both offers been cancelled
704
- var new_datas = {};
705
-
706
- new_datas.monthly = ( is_monthly ? JSON.parse( offer_datas ) : still_datas );
707
- new_datas.onetime = ( is_monthly ? still_datas : JSON.parse( offer_datas ) );
708
- new_datas.period = imagify_get_period();
709
-
710
-
711
- if ( typeof imagify_iframe_set_src === 'function' ) {
712
- imagify_iframe_set_src( new_datas );
713
- } else {
714
- imagifyAdmin.labels.info('imagify_iframe_set_src seems to be not declared…');
715
- }
716
-
717
- return false;
718
- });
719
-
720
- // on Yearly/Monthly payment change on checkout...
721
- $('.imagify-cart-list-my-choice').find('input[type="radio"]').on('change.imagify', function(){
722
- imagify_iframe_set_src( $(this).val() );
723
- });
724
 
725
  /**
726
  * Go back to previous step ("Choose Another Plan" links)
@@ -738,6 +868,47 @@ jQuery(function($){
738
  return false;
739
  });
740
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
741
  }
742
 
743
  /**
139
  };
140
 
141
  // accessibility
142
+ $( '.imagify-modal' ).attr( 'aria-hidden', 'true' );
143
 
144
  // on click on modal trigger
145
+ $( '.imagify-modal-trigger' ).on('click.imagify', function(){
 
146
  imagify_open_modal( $(this) );
 
147
  return false;
148
  });
149
 
150
  // on click on close button
151
+ $( document ).on( 'click.imagify', '.imagify-modal .close-btn', function(){
152
+ $(this).closest( '.imagify-modal' ).fadeOut( 400 ).attr( 'aria-hidden', 'true' ).removeClass( 'modal-is-open' );
153
+
154
+ // in Payment modal case
155
+ if ( $(this).closest( '.imagify-modal' ).hasClass( 'imagify-payment-modal' ) ) {
156
+
157
+ // reset viewing class & aria-labelledby
158
+ $(this).closest( '.imagify-modal-content' ).removeClass( 'imagify-success-viewing imagify-iframe-viewing' );
159
+
160
+ // reset first view after fadeout ~= 300 ms
161
+ setTimeout( function() {
162
+ $( '.imagify-modal-views' ).hide();
163
+ $( '#imagify-pre-checkout-view' ).show();
164
+ }, 300 );
165
+ }
166
+
167
+ $( 'body' ).removeClass( 'imagify-modal-is-open' );
168
  })
169
+ .on( 'blur.imagify', '.imagify-modal .close-btn', function(){
170
  var $modal = $(this).closest('.imagify-modal');
171
  if ( $modal.attr('aria-hidden') === 'false' ) {
172
  $modal.attr('tabindex', '0').focus().removeAttr('tabindex');
173
  }
174
  });
175
 
176
+ // On click on dropped layer of modal
177
+ $( document ).on('click.imagify', '.imagify-modal', function( e ) {
178
+ $( e.target ).filter( '.modal-is-open' ).find( '.close-btn' ).trigger( 'click.imagify' );
179
+ });
180
+
181
  // `Esc` key binding
182
+ $( window ).on( 'keydown.imagify', function( e ) {
183
  if ( e.keyCode == 27 && $('.imagify-modal.modal-is-open').length > 0 ) {
184
 
185
  e.preventDefault();
194
  var busy = false,
195
  xhr = false;
196
 
197
+ $( '#wp-admin-bar-imagify' ).hover( function() {
198
  if ( true === busy ) {
199
  return;
200
  }
217
  * Payment Modal
218
  *
219
  * @since 1.5
220
+ * @author Geoffrey
221
  */
222
 
223
  if ( $('#imagify-pricing-modal').length ) {
242
 
243
  return output;
244
  },
245
+ imagify_populate_offer = function ( $offer, datas, type, classes ) {
246
+ var add = datas.additional_gb, // 4 (monthly)
247
+ ann = datas.annual_cost, // 49.9 (monthly)
248
+ id = datas.id, // 3 (monthly/onetime)
249
+ lab = datas.label, // 'lite' (monthly/onetime)
250
+ mon = datas.monthly_cost, // 4.99 (monthly)
251
+ quo = datas.quota, // 1000 (MB) - 5000 images (monthly/onetime)
252
+ cos = datas.cost, // 3.49 (onetime)
253
+ name= ( quo >= 1000 ? quo/1000 + ' GB' : quo + ' MB' ),
254
+ pcs = type === 'monthly' ? { monthly: mon, yearly: Math.round( ann / 12 * 100 ) / 100 } : cos;
255
+
256
+ if ( typeof classes !== 'undefined' ) {
257
+ $offer.addClass( 'imagify-' + type + '-' + lab + classes);
258
+ }
259
+
260
+ // name
261
+ $offer.find('.imagify-offer-size').text( name );
262
+
263
+ // main prices (pcs can be an object or a string)
264
+ $offer.find('.imagify-number-block').html( imagify_get_html_price( pcs, 'monthly' ) );
265
+
266
+ // nb images
267
+ $offer.find('.imagify-approx-nb').text( quo * 5 );
268
+
269
+ if ( type === 'monthly' ) {
270
+ // additionnal price
271
+ $offer.find('.imagify-price-add-data').text( '$' + add );
272
+ }
273
+
274
+ // button data-offer attr
275
+ var $datas_c = $offer.find('.imagify-payment-btn-select-plan').length ? $offer.find('.imagify-payment-btn-select-plan') : $offer,
276
+ datas_content = ( type === 'monthly' )
277
+ ?
278
+ '{"' + lab + '":{"id":' + id + ',"name":"' + name + '","data":' + quo + ',"dataf":"' + name + '","imgs":' + ( quo * 5 ) + ',"prices":{"monthly":' + pcs.monthly + ',"yearly":' + pcs.yearly + ',"add":' + add + '}}}'
279
+ :
280
+ '{"ot' + lab + '":{"id":' + id + ',"name":"' + name + '","data":' + quo + ',"dataf":"' + name + '","imgs":' + ( quo * 5 ) + ',"price":' + pcs + '}}'
281
+ ;
282
+
283
+ $datas_c.attr('data-offer', datas_content);
284
+
285
+ return $offer;
286
+ },
287
+ imagify_populate_pay_btn = function() {
288
+ var pl_datas = JSON.parse( $( '.imagify-offer-monthly' ).attr( 'data-offer' ) ),
289
+ ot_datas = JSON.parse( $( '.imagify-offer-onetime' ).attr( 'data-offer' ) ),
290
+ price = 0,
291
+ price_pl = 0,
292
+ price_ot = 0;
293
+
294
+ // calculate price_pl only if that offer is selected
295
+ if ( $( '.imagify-offer-monthly' ).hasClass( 'imagify-offer-selected' ) ) {
296
+ price_pl = $('#imagify-subscription-monthly').filter(':checked').length ? pl_datas[ Object.keys( pl_datas )[0] ].prices.monthly : pl_datas[ Object.keys( pl_datas )[0] ].prices.yearly * 12;
297
+ }
298
+ // calculate price_ot only if that offer is selected
299
+ if ( $( '.imagify-offer-onetime' ).hasClass( 'imagify-offer-selected' ) ) {
300
+ price_ot = ot_datas[ Object.keys( ot_datas )[0] ].price;
301
+ }
302
+
303
+ // calculate price
304
+ price = parseFloat( price_ot + price_pl ).toFixed(2);
305
+
306
+ // edit button price
307
+ $( '.imagify-global-amount' ).text( price );
308
+
309
+ if ( price == '0.00' || price === 0 ) {
310
+ $( '#imagify-modal-checkout-btn' ).attr( 'disabled', 'disabled' ).addClass( 'imagify-button-disabled' );
311
+ } else {
312
+ $( '#imagify-modal-checkout-btn' ).removeAttr( 'disabled' ).removeClass( 'imagify-button-disabled' );
313
+ }
314
+
315
+ },
316
  imagify_get_pricing = function( $button ){
317
+ var nonce = $button.data('nonce'),
318
+ prices_rq_datas = {
319
  action: 'imagify_get_prices',
320
+ imagifynonce: nonce
321
+ },
322
+ imgs_rq_datas = {
323
+ action: 'imagify_get_images_counts',
324
+ imagifynonce: nonce
325
  };
326
 
327
  $modal.find('.imagify-modal-loader').hide().show();
328
 
329
+ // get the true prices
330
+ $.post( ajaxurl, prices_rq_datas, function( prices_response ) {
331
+ if ( prices_response.success ) {
332
+
333
+ // get the image estimates sizes
334
+ $.post( ajaxurl, imgs_rq_datas, function( imgs_response ) {
335
+
336
+ var images_datas = imgs_response.data
337
+ prices_datas = prices_response.data,
338
+ monthlies = prices_datas.monthlies,
339
+ onetimes = prices_datas.onetimes,
340
+ mo_user_cons = images_datas.average_month_size.raw / 1000000, // 1000000 in MB,
341
+ ot_user_cons = images_datas.total_library_size.raw / 1000000, // in MB,
342
+ $mo_tpl = $('#imagify-offer-monthly-template'),
343
+ $ot_tpl = $('#imagify-offer-onetime-template'),
344
+ ot_clone = $ot_tpl.html(),
345
+ mo_clone = $mo_tpl.html(),
346
+ ot_html = '',
347
+ mo_html = '',
348
+ ot_suggested = false,
349
+ mo_suggested = false,
350
+ $estim_block = $( '.imagify-estimation-block' );
351
+
352
+ // Refresh Analyzing block
353
+ $estim_block.removeClass( 'imagify-analyzing' );
354
+ $estim_block.find( '.average-month-size' ).text( images_datas.average_month_size.human );
355
+ $estim_block.find( '.total-library-size' ).text( images_datas.total_library_size.human );
356
+
357
+ // Switch offers title is < 25mb
358
+ if ( mo_user_cons < 25 && ot_user_cons < 25 ) {
359
+ $( '.imagify-pre-checkout-offers .imagify-modal-title' ).addClass( '.imagify-enough-free' );
360
+ $('.imagify-offer-selected' ).removeClass( 'imagify-offer-selected' ).find( '.imagify-checkbox' ).removeAttr( 'checked' );
361
+ } else {
362
+ $( '.imagify-enough-free' ).removeClass( '.imagify-enough-free' );
363
+ $('.imagify-offer-selected' ).addClass( 'imagify-offer-selected' ).find( '.imagify-checkbox' ).attr( 'checked', 'checked' );
 
 
 
364
  }
 
 
 
 
365
 
366
+ // Don't create prices table if something went wrong during request
367
+ if ( monthlies === null || onetimes === null ) {
368
+ var $offers_block = $( '.imagify-pre-checkout-offers' );
369
+
370
+ // hide main content
371
+ $offers_block.hide().attr( 'aria-hidden', true );
372
 
373
+ // show error message
374
+ $offers_block.closest('.imagify-modal-views').find('.imagify-popin-message').remove();
375
+ $offers_block.after('<div class="imagify-popin-message imagify-error"><p>' + imagifyAdmin.labels.errorPriceAPI + '</p></div>');
376
 
377
+ // show the modal content
378
+ $modal.find('.imagify-modal-loader').fadeOut(300);
379
 
380
+ return;
381
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
382
 
383
+ /**
384
+ * Below lines will build Plan and Onetime offers lists
385
+ * It will also pre-select a Plan and Onetime in both of views: pre-checkout and pricing tables
386
+ */
387
+
388
+ // Now, do the MONTHLIES Markup
389
+ $.each( monthlies, function( index, value ) {
390
+
391
+ // if it's free, don't show it
392
+ if ( value.label === 'free' ) {
393
+ return true; // continue-like (but $.each is not a loop… so)
394
+ }
395
+
396
+ var $tpl= $( mo_clone ).clone();
397
+
398
+ // if offer is too big (far) than estimated needs, don't show the offer
399
+ if ( mo_suggested !== false && ( index - mo_suggested ) > 2 ) {
400
+ return true;
401
+ }
402
+
403
+ // parent classes
404
+ classes = '';
405
+ if ( ( mo_user_cons < value.quota && mo_suggested === false ) ) {
406
+ classes = ' imagify-offer-selected';
407
+ mo_suggested = index;
408
+
409
+ // add this offer as pre-selected item in pre-checkout view
410
+ var $offer = $('.imagify-pre-checkout-offers').find('.imagify-offer-monthly');
411
+
412
+ // populate the Pre-checkout view depending on user_cons
413
+ imagify_populate_offer( $offer, value, 'monthly' );
414
+ }
415
+
416
+ // populate each offer
417
+ $tpl = imagify_populate_offer( $tpl, value, 'monthly', classes );
418
+
419
+ // complete Monthlies HTML
420
+ mo_html += $tpl[0].outerHTML;
421
+
422
+ });
423
+
424
+ // Deal with the case of too much small offers (before recommanded one)
425
+ var prev_offers = $( mo_html ).filter('.imagify-offer-selected').prevAll();
426
+
427
+ // if we have more than 1 previous offer
428
+ if ( prev_offers.length > 1 ) {
429
+ var nb_to_remove = prev_offers.length - 1,
430
+ $total_offers = $( mo_html );
431
+
432
+ // remove too far previous offer
433
+ for ( i = 0; i < nb_to_remove; i++ ) {
434
+ delete $total_offers[ i ]
435
+ }
436
+
437
+ // rebuild mo_html with removed items
438
+ mo_html = '';
439
+ for ( j = 0; j < $total_offers.length; j++) {
440
+ mo_html += $( '<div/>' ).append($total_offers[j]).html();
441
+ }
442
  }
 
443
 
444
+ // Do the ONETIMES Markup
445
+ $.each( onetimes, function( index, value ) {
446
+ var $tpl = $( ot_clone ).clone();
447
 
448
+ // parent classes
449
+ classes = '';
450
+ if ( ( ot_user_cons < value.quota && ot_suggested === false ) ) {
451
+ classes = ' imagify-offer-selected';
452
+ ot_suggested = true;
453
 
454
+ // add this offer as pre-selected item in pre-checkout view
455
+ var $offer = $( '.imagify-pre-checkout-offers' ).find( '.imagify-offer-onetime' );
456
 
457
+ // populate the Pre-checkout view depending on user_cons
458
+ imagify_populate_offer( $offer, value, 'onetime' );
459
+ }
460
 
461
+ // populate each offer
462
+ $tpl = imagify_populate_offer( $tpl, value, 'onetime', classes );
 
463
 
464
+ // complete Onetimes HTML
465
+ ot_html += $tpl[0].outerHTML;
466
+ });
 
 
467
 
468
+ // Fill pricing tables
469
+ if ( $mo_tpl.parent().find( '.imagify-offer-line' ) ) {
470
+ $mo_tpl.parent().find( '.imagify-offer-line' ).remove();
471
+ }
472
+ $mo_tpl.before( mo_html );
473
 
474
+ if ( $ot_tpl.parent().find( '.imagify-offer-line' ) ) {
475
+ $ot_tpl.parent().find( '.imagify-offer-line' ).remove();
476
+ }
477
+ $ot_tpl.before( ot_html );
478
 
479
+ // Show the content
480
+ $modal.find( '.imagify-modal-loader' ).fadeOut( 300 );
481
 
482
+ }); // second AJAX request for image estimation sizes
483
 
484
  } else {
485
  // TODO: replace modal content by any information
486
  // an error occurred
487
  }
488
 
489
+ // populate Pay button
490
+ imagify_populate_pay_btn();
491
  }); // end $.post
492
  },
493
  imagify_check_check = function( $checkbox ) {
501
  $(this).closest('.imagify-offer-line').removeClass( sel_class );
502
  }
503
  });
504
+
505
+ // Update pay button
506
+ imagify_populate_pay_btn();
507
  },
508
  imagify_check_radio = function( $radio ) {
509
  var year_class = 'imagify-year-selected',
534
  $to_switch.find('.imagify-yearly').attr('aria-hidden', 'true');
535
  }
536
  });
537
+
538
+ // update Pay button information
539
+ imagify_populate_pay_btn();
540
+
541
  return $radio;
542
  },
543
+ imagify_check_coupon = function() {
544
+ var code = $( '#imagify-coupon-code' ).val();
545
+
546
+ if ( code !== '' ) {
547
+ var $cptext = $( '.imagify-coupon-text' ),
548
+ $label = $cptext.find( 'label' ),
549
+ $section = $( '.imagify-coupon-section' ),
550
+ nonce = $( '#imagify-get-pricing-modal' ).data( 'nonce' );
551
+
552
+ $cptext.addClass( 'checking' );
553
+
554
+ // get the true prices
555
+ $.post( ajaxurl, {action: 'imagify_check_coupon', coupon: code, imagifynonce: nonce }, function( response ) {
556
+
557
+ $cptext.removeClass( 'checking' );
558
+
559
+ // error during the request
560
+ if ( response.success === 'false' ) {
561
+
562
+ $label.text( imagifyAdmin.labels.errorCouponAPI );
563
+ $section.removeClass( 'validated' ).addClass( 'invalid' );
564
+
565
+ } else {
566
+ if ( response.data.success ) {
567
+ var coupon_value = response.data.coupon_type === 'percentage' ? response.data.value + '%' : '$' + response.data.value;
568
+ $section.removeClass( 'invalid' ).addClass( 'validated' );
569
+ $label.html( imagifyAdmin.labels.successCouponAPI );
570
+ $label.find( '.imagify-coupon-offer' ).text( coupon_value );
571
+ $label.find( '.imagify-coupon-word' ).text( code );
572
+ } else {
573
+ $section.removeClass( 'validated' ).addClass( 'invalid' );
574
+ $label.text( response.data.detail );
575
+ }
576
+
577
+ }
578
+ });
579
+
580
+ }
581
+ },
582
  $checkboxes = $('.imagify-offer-line').find('.imagify-checkbox'),
583
  $radios = $('.imagify-payment-modal').find('.imagify-radio-line').find('input');
584
 
586
  imagify_check_check( $checkboxes );
587
  imagify_check_radio( $radios.filter(':checked') );
588
 
589
+ // check coupon onload
590
+ imagify_check_coupon();
591
+
592
+ var populate_btn_price = setInterval( function() {
593
+ imagify_populate_pay_btn();
594
+ }, 1000 );
595
+
596
  // check the changed box
597
  $checkboxes.on('change.imagify', function(){
598
  imagify_check_check( $(this) );
643
  }
644
  */
645
  var $iframe = $('#imagify-payment-iframe'),
646
+ iframe_src = $iframe.attr('src'),
647
+ pay_src = $iframe.data('src'),
648
  monthly_id = 0,
649
  onetime_id = 0;
650
+
651
+ // if we get new informations about products
652
  if ( typeof params === 'object' ) {
653
  if ( params.monthly ) {
654
  monthly_id = params.monthly[ Object.keys( params.monthly )[0] ].id;
660
  }
661
 
662
  if ( params.period ) {
663
+ var key = imagify_get_api_key(),
664
+ rt_onetime = onetime_id,
665
+ rt_yearly = params.period === 'yearly' ? monthly_id : 0,
666
+ rt_monthly = params.period === 'monthly' ? monthly_id : 0,
667
+ coupon = $('#imagify-coupon-code').val(),
668
+ rt_coupon = coupon === '' ? 'none' : coupon,
669
+ // not used but…
670
+ amount = parseFloat( $( '.imagify-global-amount' ).text() ).toFixed(2);
671
+
672
+ // compose route
673
+ // pay_src + :ontimeplan(0)/:monthlyplan(0)/:yearlyplan(0)/:coupon(none)/
674
+ pay_src = pay_src + rt_onetime + '/' + rt_monthly + '/' + rt_yearly + '/' + rt_coupon + '/';
675
+
676
+ // iFrame sort of cache fix
677
+ $iframeClone = $iframe.clone();
678
+ $iframe.remove();
679
+
680
+ $iframeClone.attr( 'src', pay_src );
681
+ $payment_view.html( $iframeClone );
682
 
683
  } else {
684
+ imagify.info( 'No period defined' );
685
  }
686
+ }
687
+ // if we only change monthly/yearly payment mode
688
+ else if ( typeof params === 'string' && iframe_src !== '' ) {
689
+ tofind = params === 'monthly' ? 'yearly' : 'monthly';
690
+ iframe_src = iframe_src.replace( tofind, params );
691
+ $iframe.attr( 'src', iframe_src );
692
  }
693
  },
694
  imagify_get_period = function() {
695
+ return ( $('.imagify-offer-monthly').hasClass('imagify-month-selected') ? 'monthly' : 'yearly' );
696
  },
697
  imagify_get_api_key = function(){
698
  return $('#imagify-payment-iframe').data('imagify-api');
699
  };
700
 
701
+ /**
702
+ * Get validation for Coupon Code
703
+ * - On blur
704
+ * - On Enter or Spacebar press
705
+ * - On click OK button
706
+ */
707
+ $( '#imagify-coupon-code' ).on( 'blur.imagify', function() {
708
+ imagify_check_coupon();
709
+ } ).on( 'keydown.imagify', function( e ) {
710
+ if ( e.keyCode === 13 || e.keyCode === 32 ) {
711
+ imagify_check_coupon();
712
+ return false;
713
+ }
714
+ if ( $(this).val().length >= 3 ) {
715
+ $(this).closest( '.imagify-coupon-input' ).addClass( 'imagify-canbe-validate' );
716
+ } else {
717
+ $(this).closest( '.imagify-coupon-input' ).removeClass( 'imagify-canbe-validate' );
718
+ }
719
+ } );
720
+
721
+ $( '#imagify-coupon-validate' ).on( 'click.imagify', function() {
722
+ imagify_check_coupon();
723
+ $(this).closest( '.imagify-canbe-validate' ).removeClass( 'imagify-canbe-validate' );
724
+ } );
725
+ /**
726
+ * View game, step by step
727
+ */
728
  // init views
729
+ //$pre_view.hide();
730
  $plans_view.hide();
731
  $payment_view.hide();
732
  $success_view.hide();
 
733
 
734
  // 1) when you decide to choose another plan
735
 
801
  $target_line.find('.imagify-inline-options').find('input:radio:checked').trigger('change.imagify');
802
  }
803
 
804
+ // update price information in button
805
+ imagify_populate_pay_btn();
806
+
807
  return false;
808
  });
809
 
810
 
811
  // 2) when you checkout
812
+ $( '#imagify-modal-checkout-btn' ).on( 'click.imagify', function() {
813
 
814
+ // do nothing if button disabled
815
+ if ( $( this ).hasClass( 'imagify-button-disabled' ) ) {
816
+ return;
817
+ }
818
+
819
+ var $monthly_offer = $( '.imagify-offer-monthly' ),
820
+ $onetime_offer = $( '.imagify-offer-onetime' ),
821
  checkout_datas = {},
822
+ period_choosen = $monthly_offer.hasClass( 'imagify-year-selected' ) ? 'year' : 'month';
823
 
824
  // if user choose a monthly plan
825
+ if ( $monthly_offer.hasClass( 'imagify-offer-selected' ) ) {
826
 
827
+ checkout_datas.monthly = JSON.parse( $monthly_offer.attr( 'data-offer' ) );
828
+ $( '.imagify-cart-list-my-choice' ).show();
829
 
830
  // price calculation
831
  prices = checkout_datas.monthly[Object.keys(checkout_datas.monthly)[0]].prices;
832
  save_price = Math.round( ( ( prices.monthly - prices.yearly ) * 12 ) * 100 ) / 100;
833
+ $( '.imagify-nb-save-per-year' ).text( '$' + save_price );
834
 
835
  } else {
836
+ $( '.imagify-cart-list-my-choice' ).hide();
837
  }
838
 
839
  // if user choose a one time plan
842
  }
843
 
844
  // change views to go to checkout/payment view
845
+ $pre_view.hide().attr( 'aria-hidden', 'true' );
846
+ $payment_view.fadeIn( speedFadeIn ).attr( 'aria-hidden', 'false' )
847
+ .closest( '.imagify-modal-content' ).addClass( 'imagify-iframe-viewing' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
848
 
849
  checkout_datas.period = imagify_get_period();
850
 
851
  imagify_iframe_set_src( checkout_datas );
852
  return false;
853
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
854
 
855
  /**
856
  * Go back to previous step ("Choose Another Plan" links)
868
  return false;
869
  });
870
 
871
+ /**
872
+ * Public function triggered by payement iframe
873
+ */
874
+ //$pre_view.hide();
875
+ //$plans_view.hide();
876
+ //$payment_view.hide();
877
+ //$success_view.hide();
878
+ var paymentClose = function() {
879
+ $( '.imagify-iframe-viewing .close-btn' ).trigger( 'click.imagify' );
880
+ $( '.imagify-iframe-viewing' ).removeClass( 'imagify-iframe-viewing' );
881
+ return false;
882
+ },
883
+ paymentBack = function() {
884
+ $( '.imagify-iframe-viewing' ).removeClass( 'imagify-iframe-viewing' );
885
+ $payment_view.hide();
886
+ $pre_view.fadeIn(200);
887
+ return false;
888
+ },
889
+ paymentSuccess = function() {
890
+ $( '.imagify-iframe-viewing' ).removeClass( 'imagify-iframe-viewing' );
891
+ $payment_view.hide();
892
+ $success_view.closest( '.imagify-modal-content' ).addClass( 'imagify-success-viewing' );
893
+ $success_view.closest( '.imagify-modal' ).attr( 'aria-labelledby', 'imagify-success-view' );
894
+ $success_view.fadeIn(200);
895
+ return false;
896
+ },
897
+ checkPluginMessage = function(event) {
898
+ var origin = event.origin || event.originalEvent.origin;
899
+
900
+ if ( origin === 'https://app.imagify.io' || origin === 'http://dapp.imagify.io' ) {
901
+ switch (event.data) {
902
+ case 'cancel': paymentClose(); break;
903
+ case 'back': paymentBack(); break;
904
+ case 'success': paymentSuccess(); break;
905
+ }
906
+ }
907
+ };
908
+
909
+ // message/communication API
910
+ window.addEventListener( 'message', checkPluginMessage, true );
911
+
912
  }
913
 
914
  /**
assets/js/admin.min.js CHANGED
@@ -1,27 +1,33 @@
1
- jQuery(function(b){var x=0<ajaxurl.indexOf("?")?"&":"?";b("#imagify-signup").click(function(a){a.preventDefault();swal({title:imagifyAdmin.labels.signupTitle,html:imagifyAdmin.labels.signupText,confirmButtonText:imagifyAdmin.labels.signupConfirmButtonText,input:"email",closeOnConfirm:!1,allowOutsideClick:!0,showLoaderOnConfirm:!0,customClass:"imagify-sweet-alert imagify-sweet-alert-signup",inputValidator:function(a){return new Promise(function(c,e){""!=b.trim(a)&&a?c():e(imagifyAdmin.labels.signupErrorEmptyEmail)})},
2
- preConfirm:function(a){return new Promise(function(c,e){setTimeout(function(){b.get(ajaxurl+x+"action=imagify_signup&email="+a+"&imagifysignupnonce="+b("#imagifysignupnonce").val()).done(function(a){a.success?c():e(a.data)})},2E3)})}}).then(function(a){swal({title:imagifyAdmin.labels.signupSuccessTitle,html:imagifyAdmin.labels.signupSuccessText,type:"success",customClass:"imagify-sweet-alert"})})});b("#imagify-save-api-key").click(function(a){a.preventDefault();swal({title:imagifyAdmin.labels.saveApiKeyTitle,
3
- html:imagifyAdmin.labels.saveApiKeyText,confirmButtonText:imagifyAdmin.labels.saveApiKeyConfirmButtonText,input:"text",allowOutsideClick:!0,showLoaderOnConfirm:!0,customClass:"imagify-sweet-alert imagify-sweet-alert-signup",inputValidator:function(a){return new Promise(function(c,e){""!=b.trim(a)&&a?c():e(imagifyAdmin.labels.ApiKeyErrorEmpty)})},preConfirm:function(a){return new Promise(function(c,e){b.get(ajaxurl+x+"action=imagify_check_api_key_validity&api_key="+a+"&imagifycheckapikeynonce="+b("#imagifycheckapikeynonce").val()).done(function(a){a.success?
4
- c():e(a.data)})})}}).then(function(a){swal({title:imagifyAdmin.labels.ApiKeyCheckSuccessTitle,html:imagifyAdmin.labels.ApiKeyCheckSuccessText,type:"success",customClass:"imagify-sweet-alert"})})});b(".imagify-notice-dismiss").click(function(a){a.preventDefault();var d=b(this);a=d.parents(".imagify-welcome, .imagify-notice");d=d.attr("href");a.fadeTo(100,0,function(){b(this).slideUp(100,function(){b(this).remove()})});b.get(d.replace("admin-post.php","admin-ajax.php"))});b(".imagify-modal").attr("aria-hidden",
5
- "true");b(".imagify-modal-trigger").on("click.imagify",function(){var a=b(this),a=a.data("target")||a.attr("href");b(a).css("display","flex").hide().fadeIn(400).attr("aria-hidden","false").attr("tabindex","0").focus().removeAttr("tabindex").addClass("modal-is-open");b("body").addClass("imagify-modal-is-open");return!1});b(document).on("click.imagify",".imagify-modal .close-btn",function(){b(this).closest(".imagify-modal").fadeOut(400).attr("aria-hidden","true").removeClass("modal-is-open");b("body").removeClass("imagify-modal-is-open")}).on("blur.imagify",
6
- ".imagify-modal .close-btn",function(){var a=b(this).closest(".imagify-modal");"false"===a.attr("aria-hidden")&&a.attr("tabindex","0").focus().removeAttr("tabindex")});b(window).on("keydown",function(a){if(27==a.keyCode&&0<b(".imagify-modal.modal-is-open").length)return a.preventDefault(),b(".imagify-modal.modal-is-open").find(".close-btn").trigger("click.imagify"),!1});var y=!1;b("#wp-admin-bar-imagify").hover(function(){if(!0!==y){y=!0;var a=b("#wp-admin-bar-imagify-profile-content");a.is(":empty")&&
7
- b.get(ajaxurl+x+"action=imagify_get_admin_bar_profile&imagifygetadminbarprofilenonce="+b("#imagifygetadminbarprofilenonce").val()).done(function(d){a.html(d.data);b("#wp-admin-bar-imagify-profile-loading").remove();y=!1})}});if(b("#imagify-pricing-modal").length){var z=b("#imagify-pricing-modal"),q=function(a,b){b||(b=null);output="";if("object"===typeof a){var c=a.yearly+"",e=(a.monthly+"").split("."),c=c.split(".");output+='<span class="imagify-switch-my"><span aria-hidden="'+("monthly"===b?"false":
8
- "true")+'" class="imagify-monthly"><span class="imagify-price-big">'+e[0]+'</span> <span class="imagify-price-mini">.'+(1===e[1].length?e[1]+"0":e[1])+'</span></span> <span aria-hidden="'+("yearly"===b?"false":"true")+'" class="imagify-yearly"><span class="imagify-price-big">'+c[0]+'</span> <span class="imagify-price-mini">.'+(1===c[1].length?c[1]+"0":c[1])+"</span></span></span>"}else e=(a+"").split("."),output+='<span class="imagify-price-big">'+e[0]+'</span> <span class="imagify-price-mini">.'+
9
- (1===e[1].length?e[1]+"0":e[1])+"</span>";return output},D=function(a){a={action:"imagify_get_prices",imagifynonce:a.data("nonce")};z.find(".imagify-modal-loader").hide().show();b.post(ajaxurl,a,function(a){if(a.success){var c=a.data;a=c.monthlies;var c=c.onetimes,e=b("#imagify-offer-monthly-template"),f=b("#imagify-offer-onetime-template"),k=f.html(),m=e.html(),r="",l="",g=!1,n=!1;b.each(a,function(a,c){if("free"===c.label)return!0;var e=c.additional_gb,d=c.annual_cost,f=c.id,k=c.label,r=c.monthly_cost,
10
- h=c.quota,g=1E3<=h?h/1E3+" GB":h+" MB",p=b(m).clone(),d={monthly:r,yearly:Math.round(d/12*100)/100};classes="";1E3<h&&!1===n&&(classes=" imagify-offer-selected",n=!0);p.addClass("imagify-monthly-"+k+classes);p.find(".imagify-offer-size").text(g);p.find(".imagify-approx-nb").text(5*h);p.find(".imagify-price-add-data").text("$"+e);p.find(".imagify-number-block").html(q(d,"monthly"));p.find(".imagify-payment-btn-select-plan").attr("data-offer",'{"'+k+'":{"id":'+f+',"name":"'+g+'","data":'+h+',"dataf":"'+
11
- g+'","imgs":'+5*h+',"prices":{"monthly":'+d.monthly+',"yearly":'+d.yearly+',"add":'+e+"}}}");l+=p[0].outerHTML});b.each(c,function(a,c){var e=c.id,d=c.cost,f=c.label,m=c.quota,l=1E3<=m?m/1E3+" GB":m+" MB",h=b(k).clone();classes="";51E3<m&&!1===g&&(classes=" imagify-offer-selected",g=!0);h.addClass("imagify-onetime-"+f+classes);h.find(".imagify-offer-size").text(l);h.find(".imagify-approx-nb").text(5*m);h.find(".imagify-number-block").html(q(d,"monthly"));h.find(".imagify-payment-btn-select-plan").attr("data-offer",
12
- '{"ot'+f+'":{"id":'+e+',"name":"'+l+'","data":'+m+',"dataf":"'+l+'","imgs":'+5*m+',"price":'+d+"}}");r+=h[0].outerHTML});e.parent().find(".imagify-offer-line")&&e.parent().find(".imagify-offer-line").remove();e.before(l);f.parent().find(".imagify-offer-line")&&f.parent().find(".imagify-offer-line").remove();f.before(r);z.find(".imagify-modal-loader").fadeOut(300)}})},B=function(a){a.each(function(){b(this).is(":checked")?b(this).closest(".imagify-offer-line").addClass("imagify-offer-selected"):b(this).closest(".imagify-offer-line").removeClass("imagify-offer-selected")})},
13
- C=function(a){a.each(function(){var a=b(this),c;c=a.parent(".imagify-cart-list-switcher").length?a.closest(".imagify-cart"):a.parent(".imagify-small-options").length?a.parent(".imagify-small-options").next(".imagify-pricing-table"):a.closest(".imagify-offer-line");var e=c.find(".imagify-switch-my");"yearly"===a.val()?(c.addClass("imagify-year-selected").removeClass("imagify-month-selected"),e.find(".imagify-monthly").attr("aria-hidden","true"),e.find(".imagify-yearly").attr("aria-hidden","false")):
14
- (c.addClass("imagify-month-selected").removeClass("imagify-year-selected"),e.find(".imagify-monthly").attr("aria-hidden","false"),e.find(".imagify-yearly").attr("aria-hidden","true"))});return a},t=b(".imagify-offer-line").find(".imagify-checkbox"),u=b(".imagify-payment-modal").find(".imagify-radio-line").find("input");B(t);C(u.filter(":checked"));t.on("change.imagify",function(){B(b(this))});u.on("change.imagify",function(){C(b(this))});b("#imagify-get-pricing-modal").on("click.imagify-ajax",function(){D(b(this))});
15
- var v=b("#imagify-plans-selection-view"),n=b("#imagify-payment-process-view"),w=b("#imagify-pre-checkout-view"),t=b("#imagify-success-view"),u=b(".imagify-choose-another-plan"),g=function(a){var d=b("#imagify-payment-iframe"),c=d.attr("src"),e=0,f=0;"object"===typeof a?(a.monthly&&(e=a.monthly[Object.keys(a.monthly)[0]].id),a.onetime&&(f=a.onetime[Object.keys(a.onetime)[0]].id,f=999==f?a.onetime[Object.keys(a.onetime)[0]].data:f),a.period?(c=c.split("?")[0]+"?monthly="+e+"&onetime="+f+"&api="+b("#imagify-payment-iframe").data("imagify-api")+
16
- "&period="+a.period,d.attr("src",c)):imagifyAdmin.labels.info("No period defined")):"string"===typeof a&&(c=c.split("&period="),d.attr("src",c[0]+"&period="+a))},A=function(){return b(".imagify-cart").hasClass("imagify-month-selected")?"monthly":"yearly"};v.hide();n.hide();t.hide();u.on("click.imagify",function(){var a=b(this),d=a.data("imagify-choose");a.closest(".imagify-modal-views").hide().attr("aria-hidden","true");n.hide().attr("aria-hidden","true");v.fadeIn(300).attr("aria-hidden","false");
17
- var c=setInterval(function(){v.find('a[href="#imagify-pricing-tab-'+("plan"==d?"monthly":"onetime")+'"]').trigger("click.imagify");clearInterval(c);c=null},60);return!1});z.on("click.imagify",".imagify-payment-btn-select-plan",function(){var a=b(this),d=a.closest(".imagify-offer-line"),c=a.data("offer"),e=a.attr("data-offer"),f="imagify-pricing-tab-monthly"===a.closest(".imagify-tab-content").attr("id")?!1:!0,k=f?w.find(".imagify-offer-onetime"):w.find(".imagify-offer-monthly"),a=f?null:a.closest(".imagify-pricing-table").hasClass("imagify-month-selected")?
18
- "monthly":"yearly",c=f?q(c[Object.keys(c)[0]].price):q(c[Object.keys(c)[0]].prices,a),m=d.find(".imagify-approx-nb").text(),g=d.find(".imagify-offer-size").text(),l=f?"":'<span class="imagify-price-by">'+d.find(".imagify-price-by").text()+"</span>";v.hide().attr("aria-hidden","true");w.fadeIn(300).attr("aria-hidden","false");k.find(".imagify-number-block").html(c+l);k.find(".imagify-approx-nb").text(m);k.find(".imagify-offer-size").text(g);k.attr("data-offer",e);f||(k.find(".imagify-price-add-data").text(d.find(".imagify-price-add-data").text()),
19
- "monthly"===a?k.find("#imagify-subscription-monthly").trigger("click.imagify"):k.find("#imagify-subscription-yearly").trigger("click.imagify"),k.find(".imagify-inline-options").find("input:radio:checked").trigger("change.imagify"));return!1});b("#imagify-modal-checkout-btn").on("click.imagify",function(){var a=b(".imagify-offer-monthly"),d=b(".imagify-offer-onetime"),c={},e=a.hasClass("imagify-year-selected")?"year":"month";a.hasClass("imagify-offer-selected")?(c.monthly=JSON.parse(a.attr("data-offer")),
20
- b(".imagify-cart-list-my-choice").show(),prices=c.monthly[Object.keys(c.monthly)[0]].prices,save_price=Math.round(1200*(prices.monthly-prices.yearly))/100,b(".imagify-nb-save-per-year").text("$"+save_price)):b(".imagify-cart-list-my-choice").hide();d.hasClass("imagify-offer-selected")&&(c.onetime=JSON.parse(d.attr("data-offer")));w.hide().attr("aria-hidden","true");n.fadeIn(300).attr("aria-hidden","false");b(".imagify-cart-emptied-item").hide().attr("aria-hidden","true");b("#imagify-pricing-step-2").addClass("active");
21
- n.find(".imagify-cart-item").hide().attr("data-offer","");b.each(c,function(a,c){var d=n.find(".imagify-cart-item-"+a),g=c[Object.keys(c)[0]],l=b(".imagify-cart");d.show();d.attr("data-offer",JSON.stringify(c));d.find(".imagify-the-product-name").text(g.name);d.find(".imagify-cart-offer-data").text(g.dataf);"onetime"===a?d.find(".imagify-number-block").html(q(g.price)):d.find(".imagify-number-block").find(".imagify-switch-my").html(q(g.prices,e+"ly"));l.removeClass("imagify-month-selected imagify-year-selected").addClass("imagify-"+
22
- e+"-selected");"month"===e?l.find("#imagify-checkout-monthly").trigger("click.imagify"):l.find("#imagify-checkout-yearly").trigger("click.imagify");l.find(".imagify-inline-options").find("input:radio:checked").trigger("change.imagify")});c.period=A();g(c);return!1});b(".imagify-remove-from-cart").on("click.imagify",function(){var a=b(this).closest(".imagify-cart-item"),d=a.hasClass("imagify-cart-item-monthly"),c=d?b(".imagify-cart-item-onetime"):b(".imagify-cart-item-monthly"),e=c.hasClass("imagify-temporary-removed"),
23
- f=a.attr("data-offer"),c=e?null:c.data("offer");a.hide().attr("aria-hidden","true").attr("data-offer","").addClass("imagify-temporary-removed");a.next(".imagify-cart-emptied-item").fadeIn(300).attr("aria-hidden","false").attr("data-offer",f).find(".imagify-removed-name").html(a.find(".imagify-cart-product-name").html());"function"===typeof g?null!==c?(a={},a[d?"onetime":"monthly"]=c,a.period=A(),g(a)):imagifyAdmin.labels.info("No offers selected"):imagifyAdmin.labels.info("imagify_iframe_set_src seems to be not declared");
24
- return!1});b(".imagify-cancel-removing").on("click.imagify",function(){var a=b(this).closest(".imagify-cart-emptied-item"),d=a.prev(".imagify-cart-item").hasClass("imagify-cart-item-monthly"),c=d?b(".imagify-cart-item-onetime"):b(".imagify-cart-item-monthly"),e=c.hasClass("imagify-temporary-removed"),f=a.attr("data-offer"),c=e?null:c.data("offer");a.hide().attr("aria-hidden","true").attr("data-offer","").prev(".imagify-cart-item").fadeIn(300).attr("aria-hidden","true").attr("data-offer",f).removeClass("imagify-temporary-removed");
25
- a={};a.monthly=d?JSON.parse(f):c;a.onetime=d?c:JSON.parse(f);a.period=A();"function"===typeof g?g(a):imagifyAdmin.labels.info("imagify_iframe_set_src seems to be not declared\u2026");return!1});b(".imagify-cart-list-my-choice").find('input[type="radio"]').on("change.imagify",function(){g(b(this).val())});b(".imagify-back-to-plans").on("click.imagify",function(){b(this).closest(".imagify-cart-item").hasClass("imagify-cart-item-onetime")?b(".imagify-offer-onetime").find(".imagify-choose-another-plan").trigger("click.imagify"):
26
- b(".imagify-offer-monthly").find(".imagify-choose-another-plan").trigger("click.imagify");return!1})}if(b(".imagify-tabs").length)b(".imagify-tab").on("click.imagify",function(){var a=b(this);if(!a.hasClass("imagify-current")){var d=a.find("a").attr("href")||"#"+a.find("a").attr("aria-controls");a.closest(".imagify-tabs").next(".imagify-tabs-contents").find(".imagify-tab-content").hide().attr("aria-hidden","true");b(d).fadeIn(275).attr("aria-hidden","false");a.closest(".imagify-tabs").find(".imagify-tab").removeClass("imagify-current").attr("aria-selected",
27
- "false");a.addClass("imagify-current").attr("aria-selected","true")}return!1})});
 
 
 
 
 
 
1
+ jQuery(function(a){var v=0<ajaxurl.indexOf("?")?"&":"?",D={log:function(a){"undefined"!==console&&console.log(a)},info:function(a){"undefined"!==console&&console.info(a)}};a("#imagify-signup").click(function(b){b.preventDefault();swal({title:imagifyAdmin.labels.signupTitle,html:imagifyAdmin.labels.signupText,confirmButtonText:imagifyAdmin.labels.signupConfirmButtonText,input:"email",closeOnConfirm:!1,allowOutsideClick:!0,showLoaderOnConfirm:!0,customClass:"imagify-sweet-alert imagify-sweet-alert-signup",
2
+ inputValidator:function(b){return new Promise(function(c,e){""!=a.trim(b)&&b?c():e(imagifyAdmin.labels.signupErrorEmptyEmail)})},preConfirm:function(b){return new Promise(function(c,e){setTimeout(function(){a.get(ajaxurl+v+"action=imagify_signup&email="+b+"&imagifysignupnonce="+a("#imagifysignupnonce").val()).done(function(a){a.success?c():e(a.data)})},2E3)})}}).then(function(a){swal({title:imagifyAdmin.labels.signupSuccessTitle,html:imagifyAdmin.labels.signupSuccessText,type:"success",customClass:"imagify-sweet-alert"})})});
3
+ a("#imagify-save-api-key").click(function(b){b.preventDefault();swal({title:imagifyAdmin.labels.saveApiKeyTitle,html:imagifyAdmin.labels.saveApiKeyText,confirmButtonText:imagifyAdmin.labels.saveApiKeyConfirmButtonText,input:"text",allowOutsideClick:!0,showLoaderOnConfirm:!0,customClass:"imagify-sweet-alert imagify-sweet-alert-signup",inputValidator:function(b){return new Promise(function(c,e){""!=a.trim(b)&&b?c():e(imagifyAdmin.labels.ApiKeyErrorEmpty)})},preConfirm:function(b){return new Promise(function(c,
4
+ e){a.get(ajaxurl+v+"action=imagify_check_api_key_validity&api_key="+b+"&imagifycheckapikeynonce="+a("#imagifycheckapikeynonce").val()).done(function(a){a.success?c():e(a.data)})})}}).then(function(a){swal({title:imagifyAdmin.labels.ApiKeyCheckSuccessTitle,html:imagifyAdmin.labels.ApiKeyCheckSuccessText,type:"success",customClass:"imagify-sweet-alert"})})});a(".imagify-notice-dismiss").click(function(b){b.preventDefault();var c=a(this);b=c.parents(".imagify-welcome, .imagify-notice");c=c.attr("href");
5
+ b.fadeTo(100,0,function(){a(this).slideUp(100,function(){a(this).remove()})});a.get(c.replace("admin-post.php","admin-ajax.php"))});a(".imagify-modal").attr("aria-hidden","true");a(".imagify-modal-trigger").on("click.imagify",function(){var b=a(this),b=b.data("target")||b.attr("href");a(b).css("display","flex").hide().fadeIn(400).attr("aria-hidden","false").attr("tabindex","0").focus().removeAttr("tabindex").addClass("modal-is-open");a("body").addClass("imagify-modal-is-open");return!1});a(document).on("click.imagify",
6
+ ".imagify-modal .close-btn",function(){a(this).closest(".imagify-modal").fadeOut(400).attr("aria-hidden","true").removeClass("modal-is-open");a(this).closest(".imagify-modal").hasClass("imagify-payment-modal")&&(a(this).closest(".imagify-modal-content").removeClass("imagify-success-viewing imagify-iframe-viewing"),setTimeout(function(){a(".imagify-modal-views").hide();a("#imagify-pre-checkout-view").show()},300));a("body").removeClass("imagify-modal-is-open")}).on("blur.imagify",".imagify-modal .close-btn",
7
+ function(){var b=a(this).closest(".imagify-modal");"false"===b.attr("aria-hidden")&&b.attr("tabindex","0").focus().removeAttr("tabindex")});a(document).on("click.imagify",".imagify-modal",function(b){a(b.target).filter(".modal-is-open").find(".close-btn").trigger("click.imagify")});a(window).on("keydown.imagify",function(b){if(27==b.keyCode&&0<a(".imagify-modal.modal-is-open").length)return b.preventDefault(),a(".imagify-modal.modal-is-open").find(".close-btn").trigger("click.imagify"),!1});var w=
8
+ !1;a("#wp-admin-bar-imagify").hover(function(){if(!0!==w){w=!0;var b=a("#wp-admin-bar-imagify-profile-content");b.is(":empty")&&a.get(ajaxurl+v+"action=imagify_get_admin_bar_profile&imagifygetadminbarprofilenonce="+a("#imagifygetadminbarprofilenonce").val()).done(function(c){b.html(c.data);a("#wp-admin-bar-imagify-profile-loading").remove();w=!1})}});if(a("#imagify-pricing-modal").length){var x=a("#imagify-pricing-modal"),y=function(a,c){c||(c=null);output="";if("object"===typeof a){var b=a.yearly+
9
+ "",e=(a.monthly+"").split("."),b=b.split(".");output+='<span class="imagify-switch-my"><span aria-hidden="'+("monthly"===c?"false":"true")+'" class="imagify-monthly"><span class="imagify-price-big">'+e[0]+'</span> <span class="imagify-price-mini">.'+(1===e[1].length?e[1]+"0":e[1])+'</span></span> <span aria-hidden="'+("yearly"===c?"false":"true")+'" class="imagify-yearly"><span class="imagify-price-big">'+b[0]+'</span> <span class="imagify-price-mini">.'+(1===b[1].length?b[1]+"0":b[1])+"</span></span></span>"}else e=
10
+ (a+"").split("."),output+='<span class="imagify-price-big">'+e[0]+'</span> <span class="imagify-price-mini">.'+(1===e[1].length?e[1]+"0":e[1])+"</span>";return output},l=function(a,c,d,e){var b=c.additional_gb,f=c.annual_cost,z=c.id,m=c.label,E=c.monthly_cost,k=c.quota,h=c.cost;c=1E3<=k?k/1E3+" GB":k+" MB";f="monthly"===d?{monthly:E,yearly:Math.round(f/12*100)/100}:h;"undefined"!==typeof e&&a.addClass("imagify-"+d+"-"+m+e);a.find(".imagify-offer-size").text(c);a.find(".imagify-number-block").html(y(f,
11
+ "monthly"));a.find(".imagify-approx-nb").text(5*k);"monthly"===d&&a.find(".imagify-price-add-data").text("$"+b);(a.find(".imagify-payment-btn-select-plan").length?a.find(".imagify-payment-btn-select-plan"):a).attr("data-offer","monthly"===d?'{"'+m+'":{"id":'+z+',"name":"'+c+'","data":'+k+',"dataf":"'+c+'","imgs":'+5*k+',"prices":{"monthly":'+f.monthly+',"yearly":'+f.yearly+',"add":'+b+"}}}":'{"ot'+m+'":{"id":'+z+',"name":"'+c+'","data":'+k+',"dataf":"'+c+'","imgs":'+5*k+',"price":'+f+"}}");return a},
12
+ n=function(){var b=JSON.parse(a(".imagify-offer-monthly").attr("data-offer")),c=JSON.parse(a(".imagify-offer-onetime").attr("data-offer")),d=0,e=0;a(".imagify-offer-monthly").hasClass("imagify-offer-selected")&&(d=a("#imagify-subscription-monthly").filter(":checked").length?b[Object.keys(b)[0]].prices.monthly:12*b[Object.keys(b)[0]].prices.yearly);a(".imagify-offer-onetime").hasClass("imagify-offer-selected")&&(e=c[Object.keys(c)[0]].price);b=parseFloat(e+d).toFixed(2);a(".imagify-global-amount").text(b);
13
+ "0.00"==b||0===b?a("#imagify-modal-checkout-btn").attr("disabled","disabled").addClass("imagify-button-disabled"):a("#imagify-modal-checkout-btn").removeAttr("disabled").removeClass("imagify-button-disabled")},F=function(b){b=b.data("nonce");var c={action:"imagify_get_prices",imagifynonce:b},d={action:"imagify_get_images_counts",imagifynonce:b};x.find(".imagify-modal-loader").hide().show();a.post(ajaxurl,c,function(b){b.success&&a.post(ajaxurl,d,function(c){c=c.data;prices_datas=b.data;monthlies=
14
+ prices_datas.monthlies;onetimes=prices_datas.onetimes;mo_user_cons=c.average_month_size.raw/1E6;ot_user_cons=c.total_library_size.raw/1E6;$mo_tpl=a("#imagify-offer-monthly-template");$ot_tpl=a("#imagify-offer-onetime-template");ot_clone=$ot_tpl.html();mo_clone=$mo_tpl.html();mo_html=ot_html="";mo_suggested=ot_suggested=!1;$estim_block=a(".imagify-estimation-block");$estim_block.removeClass("imagify-analyzing");$estim_block.find(".average-month-size").text(c.average_month_size.human);$estim_block.find(".total-library-size").text(c.total_library_size.human);
15
+ 25>mo_user_cons&&25>ot_user_cons?(a(".imagify-pre-checkout-offers .imagify-modal-title").addClass(".imagify-enough-free"),a(".imagify-offer-selected").removeClass("imagify-offer-selected").find(".imagify-checkbox").removeAttr("checked")):(a(".imagify-enough-free").removeClass(".imagify-enough-free"),a(".imagify-offer-selected").addClass("imagify-offer-selected").find(".imagify-checkbox").attr("checked","checked"));if(null===monthlies||null===onetimes)c=a(".imagify-pre-checkout-offers"),c.hide().attr("aria-hidden",
16
+ !0),c.closest(".imagify-modal-views").find(".imagify-popin-message").remove(),c.after('<div class="imagify-popin-message imagify-error"><p>'+imagifyAdmin.labels.errorPriceAPI+"</p></div>");else{a.each(monthlies,function(b,c){if("free"===c.label)return!0;var d=a(mo_clone).clone();if(!1!==mo_suggested&&2<b-mo_suggested)return!0;classes="";if(mo_user_cons<c.quota&&!1===mo_suggested){classes=" imagify-offer-selected";mo_suggested=b;var e=a(".imagify-pre-checkout-offers").find(".imagify-offer-monthly");
17
+ l(e,c,"monthly")}d=l(d,c,"monthly",classes);mo_html+=d[0].outerHTML});c=a(mo_html).filter(".imagify-offer-selected").prevAll();if(1<c.length){c=c.length-1;var d=a(mo_html);for(i=0;i<c;i++)delete d[i];mo_html="";for(j=0;j<d.length;j++)mo_html+=a("<div/>").append(d[j]).html()}a.each(onetimes,function(b,c){var d=a(ot_clone).clone();classes="";if(ot_user_cons<c.quota&&!1===ot_suggested){classes=" imagify-offer-selected";ot_suggested=!0;var e=a(".imagify-pre-checkout-offers").find(".imagify-offer-onetime");
18
+ l(e,c,"onetime")}d=l(d,c,"onetime",classes);ot_html+=d[0].outerHTML});$mo_tpl.parent().find(".imagify-offer-line")&&$mo_tpl.parent().find(".imagify-offer-line").remove();$mo_tpl.before(mo_html);$ot_tpl.parent().find(".imagify-offer-line")&&$ot_tpl.parent().find(".imagify-offer-line").remove();$ot_tpl.before(ot_html)}x.find(".imagify-modal-loader").fadeOut(300)});n()})},A=function(b){b.each(function(){a(this).is(":checked")?a(this).closest(".imagify-offer-line").addClass("imagify-offer-selected"):
19
+ a(this).closest(".imagify-offer-line").removeClass("imagify-offer-selected")});n()},B=function(b){b.each(function(){var b=a(this),d;d=b.parent(".imagify-cart-list-switcher").length?b.closest(".imagify-cart"):b.parent(".imagify-small-options").length?b.parent(".imagify-small-options").next(".imagify-pricing-table"):b.closest(".imagify-offer-line");var e=d.find(".imagify-switch-my");"yearly"===b.val()?(d.addClass("imagify-year-selected").removeClass("imagify-month-selected"),e.find(".imagify-monthly").attr("aria-hidden",
20
+ "true"),e.find(".imagify-yearly").attr("aria-hidden","false")):(d.addClass("imagify-month-selected").removeClass("imagify-year-selected"),e.find(".imagify-monthly").attr("aria-hidden","false"),e.find(".imagify-yearly").attr("aria-hidden","true"))});n();return b},q=function(){var b=a("#imagify-coupon-code").val();if(""!==b){var c=a(".imagify-coupon-text"),d=c.find("label"),e=a(".imagify-coupon-section"),g=a("#imagify-get-pricing-modal").data("nonce");c.addClass("checking");a.post(ajaxurl,{action:"imagify_check_coupon",
21
+ coupon:b,imagifynonce:g},function(a){c.removeClass("checking");"false"===a.success?(d.text(imagifyAdmin.labels.errorCouponAPI),e.removeClass("validated").addClass("invalid")):a.data.success?(a="percentage"===a.data.coupon_type?a.data.value+"%":"$"+a.data.value,e.removeClass("invalid").addClass("validated"),d.html(imagifyAdmin.labels.successCouponAPI),d.find(".imagify-coupon-offer").text(a),d.find(".imagify-coupon-word").text(b)):(e.removeClass("validated").addClass("invalid"),d.text(a.data.detail))})}},
22
+ r=a(".imagify-offer-line").find(".imagify-checkbox"),C=a(".imagify-payment-modal").find(".imagify-radio-line").find("input");A(r);B(C.filter(":checked"));q();setInterval(function(){n()},1E3);r.on("change.imagify",function(){A(a(this))});C.on("change.imagify",function(){B(a(this))});a("#imagify-get-pricing-modal").on("click.imagify-ajax",function(){F(a(this))});var t=a("#imagify-plans-selection-view"),h=a("#imagify-payment-process-view"),p=a("#imagify-pre-checkout-view"),u=a("#imagify-success-view"),
23
+ r=a(".imagify-choose-another-plan");a("#imagify-coupon-code").on("blur.imagify",function(){q()}).on("keydown.imagify",function(b){if(13===b.keyCode||32===b.keyCode)return q(),!1;3<=a(this).val().length?a(this).closest(".imagify-coupon-input").addClass("imagify-canbe-validate"):a(this).closest(".imagify-coupon-input").removeClass("imagify-canbe-validate")});a("#imagify-coupon-validate").on("click.imagify",function(){q();a(this).closest(".imagify-canbe-validate").removeClass("imagify-canbe-validate")});
24
+ t.hide();h.hide();u.hide();r.on("click.imagify",function(){var b=a(this),c=b.data("imagify-choose");b.closest(".imagify-modal-views").hide().attr("aria-hidden","true");h.hide().attr("aria-hidden","true");t.fadeIn(300).attr("aria-hidden","false");var d=setInterval(function(){t.find('a[href="#imagify-pricing-tab-'+("plan"==c?"monthly":"onetime")+'"]').trigger("click.imagify");clearInterval(d);d=null},60);return!1});x.on("click.imagify",".imagify-payment-btn-select-plan",function(){var b=a(this),c=b.closest(".imagify-offer-line"),
25
+ d=b.data("offer"),e=b.attr("data-offer"),g="imagify-pricing-tab-monthly"===b.closest(".imagify-tab-content").attr("id")?!1:!0,f=g?p.find(".imagify-offer-onetime"):p.find(".imagify-offer-monthly"),b=g?null:b.closest(".imagify-pricing-table").hasClass("imagify-month-selected")?"monthly":"yearly",d=g?y(d[Object.keys(d)[0]].price):y(d[Object.keys(d)[0]].prices,b),h=c.find(".imagify-approx-nb").text(),m=c.find(".imagify-offer-size").text(),l=g?"":'<span class="imagify-price-by">'+c.find(".imagify-price-by").text()+
26
+ "</span>";t.hide().attr("aria-hidden","true");p.fadeIn(300).attr("aria-hidden","false");f.find(".imagify-number-block").html(d+l);f.find(".imagify-approx-nb").text(h);f.find(".imagify-offer-size").text(m);f.attr("data-offer",e);g||(f.find(".imagify-price-add-data").text(c.find(".imagify-price-add-data").text()),"monthly"===b?f.find("#imagify-subscription-monthly").trigger("click.imagify"):f.find("#imagify-subscription-yearly").trigger("click.imagify"),f.find(".imagify-inline-options").find("input:radio:checked").trigger("change.imagify"));
27
+ n();return!1});a("#imagify-modal-checkout-btn").on("click.imagify",function(){if(!a(this).hasClass("imagify-button-disabled")){var b=a(".imagify-offer-monthly"),c=a(".imagify-offer-onetime"),d={};b.hasClass("imagify-year-selected");b.hasClass("imagify-offer-selected")?(d.monthly=JSON.parse(b.attr("data-offer")),a(".imagify-cart-list-my-choice").show(),prices=d.monthly[Object.keys(d.monthly)[0]].prices,save_price=Math.round(1200*(prices.monthly-prices.yearly))/100,a(".imagify-nb-save-per-year").text("$"+
28
+ save_price)):a(".imagify-cart-list-my-choice").hide();c.hasClass("imagify-offer-selected")&&(d.onetime=JSON.parse(c.attr("data-offer")));p.hide().attr("aria-hidden","true");h.fadeIn(300).attr("aria-hidden","false").closest(".imagify-modal-content").addClass("imagify-iframe-viewing");d.period=a(".imagify-offer-monthly").hasClass("imagify-month-selected")?"monthly":"yearly";var b=a("#imagify-payment-iframe"),e=b.attr("src"),c=b.data("src"),g=0,f=0;"object"===typeof d?(d.monthly&&(g=d.monthly[Object.keys(d.monthly)[0]].id),
29
+ d.onetime&&(f=d.onetime[Object.keys(d.onetime)[0]].id,f=999==f?d.onetime[Object.keys(d.onetime)[0]].data:f),d.period?(a("#imagify-payment-iframe").data("imagify-api"),e=f,f="yearly"===d.period?g:0,d="monthly"===d.period?g:0,g=a("#imagify-coupon-code").val(),g=""===g?"none":g,parseFloat(a(".imagify-global-amount").text()).toFixed(2),c=c+e+"/"+d+"/"+f+"/"+g+"/",$iframeClone=b.clone(),b.remove(),$iframeClone.attr("src",c),h.html($iframeClone)):D.info("No period defined")):"string"===typeof d&&""!==e&&
30
+ (tofind="monthly"===d?"yearly":"monthly",e=e.replace(tofind,d),b.attr("src",e));return!1}});a(".imagify-back-to-plans").on("click.imagify",function(){a(this).closest(".imagify-cart-item").hasClass("imagify-cart-item-onetime")?a(".imagify-offer-onetime").find(".imagify-choose-another-plan").trigger("click.imagify"):a(".imagify-offer-monthly").find(".imagify-choose-another-plan").trigger("click.imagify");return!1});window.addEventListener("message",function(b){var c=b.origin||b.originalEvent.origin;
31
+ if("https://app.imagify.io"===c||"http://dapp.imagify.io"===c)switch(b.data){case "cancel":a(".imagify-iframe-viewing .close-btn").trigger("click.imagify");a(".imagify-iframe-viewing").removeClass("imagify-iframe-viewing");break;case "back":a(".imagify-iframe-viewing").removeClass("imagify-iframe-viewing");h.hide();p.fadeIn(200);break;case "success":a(".imagify-iframe-viewing").removeClass("imagify-iframe-viewing"),h.hide(),u.closest(".imagify-modal-content").addClass("imagify-success-viewing"),u.closest(".imagify-modal").attr("aria-labelledby",
32
+ "imagify-success-view"),u.fadeIn(200)}},!0)}if(a(".imagify-tabs").length)a(".imagify-tab").on("click.imagify",function(){var b=a(this);if(!b.hasClass("imagify-current")){var c=b.find("a").attr("href")||"#"+b.find("a").attr("aria-controls");b.closest(".imagify-tabs").next(".imagify-tabs-contents").find(".imagify-tab-content").hide().attr("aria-hidden","true");a(c).fadeIn(275).attr("aria-hidden","false");b.closest(".imagify-tabs").find(".imagify-tab").removeClass("imagify-current").attr("aria-selected",
33
+ "false");b.addClass("imagify-current").attr("aria-selected","true")}return!1})});
assets/js/bulk.js CHANGED
@@ -78,7 +78,7 @@ jQuery(function($){
78
 
79
  // The comsuption bar
80
  $('.imagify-unconsumed-percent').html(data.unconsumed_quota + '%');
81
- $('.imagify-unconsumed-bar').animate({'width': data.unconsumed_quota + '%'});
82
 
83
  // The total optimized images
84
  $('#imagify-total-optimized-attachments').html(data.already_optimized_attachments);
@@ -88,13 +88,13 @@ jQuery(function($){
88
  .html(data.original_human);
89
 
90
  // The optimized bar
91
- $('#imagify-optimized-bar').animate({'width': data.optimized_percent+"%"})
92
- $('#imagify-optimized-bar').find('.imagify-barnb')
93
  .html(data.optimized_human);
94
-
95
  // The Percent data
96
  $('#imagify-total-optimized-attachments-pct').html( data.optimized_percent + '%' );
97
-
98
  overviewDoughnut.segments[0].value = data.unoptimized_attachments;
99
  overviewDoughnut.segments[1].value = data.optimized_attachments;
100
  overviewDoughnut.segments[2].value = data.errors_attachments;
78
 
79
  // The comsuption bar
80
  $('.imagify-unconsumed-percent').html(data.unconsumed_quota + '%');
81
+ $('.imagify-unconsumed-bar').css('width', data.unconsumed_quota + '%');
82
 
83
  // The total optimized images
84
  $('#imagify-total-optimized-attachments').html(data.already_optimized_attachments);
88
  .html(data.original_human);
89
 
90
  // The optimized bar
91
+ $('#imagify-optimized-bar').css('width', data.optimized_percent + '%')
92
+ .find('.imagify-barnb')
93
  .html(data.optimized_human);
94
+
95
  // The Percent data
96
  $('#imagify-total-optimized-attachments-pct').html( data.optimized_percent + '%' );
97
+
98
  overviewDoughnut.segments[0].value = data.unoptimized_attachments;
99
  overviewDoughnut.segments[1].value = data.optimized_attachments;
100
  overviewDoughnut.segments[2].value = data.errors_attachments;
assets/js/bulk.min.js CHANGED
@@ -2,12 +2,11 @@ jQuery(function(b){function l(c){c.each(function(){var a=parseInt(b(this).closes
2
  {segmentStrokeColor:"transparent",segmentStrokeWidth:0,animateRotate:!0,animation:!0,percentageInnerCutout:70,tooltipEvents:[]})})}var g=0<ajaxurl.indexOf("?")?"&":"?",n={log:function(b){"undefined"!==console&&console.log(b)}},f=document.getElementById("imagify-overview-chart"),e=[{value:imagifyBulk.labels.totalUnoptimizedAttachments,color:"#D9E4EB",highlight:"#D9E4EB",label:imagifyBulk.labels.overviewChartLabels.unoptimized},{value:imagifyBulk.labels.totalOptimizedAttachments,color:"#46B1CE",highlight:"#46B1CE",
3
  label:imagifyBulk.labels.overviewChartLabels.optimized},{value:imagifyBulk.labels.totalErrorsAttachments,color:"#2E3242",highlight:"#2E3242",label:imagifyBulk.labels.overviewChartLabels.error}];if(f){var d=(new Chart(f.getContext("2d"))).Doughnut(e,{segmentStrokeColor:"transparent",segmentStrokeWidth:0,animateRotate:!0,animation:!0,percentageInnerCutout:85,legendTemplate:'<ul class="imagify-<%=name.toLowerCase()%>-legend"><% for (var i=0; i<segments.length; i++){%><li><span style="background-color:<%=segments[i].fillColor%>"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>',
4
  tooltipTemplate:"<%= value %>"});overviewLegend='<ul class="imagify-doughnut-legend">';b(e).each(function(b){overviewLegend+='<li><span style="background-color:'+e[b].color+'"></span>'+e[b].label+"</li>"});overviewLegend+="</ul>";document.getElementById("imagify-overview-chart-legend").innerHTML=overviewLegend}b(document).on("heartbeat-send",function(b,a){a.imagify_heartbeat=imagifyBulk.heartbeat_id});b(document).on("heartbeat-tick",function(c,a){a.imagify_bulk_data&&(a=a.imagify_bulk_data,b("#imagify-overview-chart-percent").html(a.optimized_attachments_percent+
5
- "<span>%</span>"),b(".imagify-total-percent").html(a.optimized_attachments_percent+"%"),b(".imagify-unconsumed-percent").html(a.unconsumed_quota+"%"),b(".imagify-unconsumed-bar").animate({width:a.unconsumed_quota+"%"}),b("#imagify-total-optimized-attachments").html(a.already_optimized_attachments),b("#imagify-original-bar").find(".imagify-barnb").html(a.original_human),b("#imagify-optimized-bar").animate({width:a.optimized_percent+"%"}),b("#imagify-optimized-bar").find(".imagify-barnb").html(a.optimized_human),
6
- b("#imagify-total-optimized-attachments-pct").html(a.optimized_percent+"%"),d.segments[0].value=a.unoptimized_attachments,d.segments[1].value=a.optimized_attachments,d.segments[2].value=a.errors_attachments,d.update())});b("#imagify-simulate-bulk-action").click(function(c){c.preventDefault();b("#imagify-bulk-action").trigger("click")});b("#imagify-bulk-action").click(function(){var c=b(this),a=b('[name="optimization_level"]:checked').val();"undefined"===typeof a&&(a=-1);if(c.attr("disabled"))return!1;
7
- c.attr("disabled","disabled");c.find(".dashicons").addClass("rotate");confirmMessage=function(){return imagifyBulk.labels.processing};b(window).on("beforeunload",confirmMessage);swal({title:imagifyBulk.labels.waitTitle,html:imagifyBulk.labels.waitText,showConfirmButton:!1,imageUrl:imagifyBulk.labels.waitImageUrl});b.get(ajaxurl+g+"action="+imagifyBulk.ajax_action+"&optimization_level="+a+"&imagifybulkuploadnonce="+b("#imagifybulkuploadnonce").val()).done(function(a){if(a.success){swal.close();a={lib:ajaxurl+
8
- g+"action=imagify_bulk_upload&imagifybulkuploadnonce="+b("#imagifybulkuploadnonce").val(),images:a.data,context:imagifyBulk.ajax_context};var e=b(".imagify-bulk-table table tbody"),d=0,f=0,h=0,k=0;b(".imagify-row-progress").slideDown();b(".imagify-no-uploaded-yet, .imagify-row-complete").hide(200);Optimizer=new ImagifyGulp(a);Optimizer.before(function(b){e.find(".imagify-row-progress").after('<tr id="attachment-'+b.id+'"><td class="imagify-cell-filename"><span class="imagiuploaded"><img src="'+b.thumbnail+
9
- '"/>"</span><span class="imagifilename">'+b.filename+'</span></td><td class="imagify-cell-status"><span class="imagistatus status-compressing"><span class="dashicons dashicons-admin-generic rotate"></span>Compressing<span></span></span></td><td class="imagify-cell-original"></td><td class="imagify-cell-optimized"></td><td class="imagify-cell-percentage"></td><td class="imagify-cell-thumbnails"></td><td class="imagify-cell-savings"></td></tr>')}).each(function(a){var c=b("#imagify-progress-bar");c.css({width:a.progress+
10
- "%"});c.find(".percent").html(a.progress+"%");a.success?(b("#attachment-"+a.image+" .imagify-cell-status").html('<span class="imagistatus status-complete"><span class="dashicons dashicons-yes"></span>Complete</span>'),b("#attachment-"+a.image+" .imagify-cell-original").html(a.original_size_human),b("#attachment-"+a.image+" .imagify-cell-optimized").html(a.new_size_human),b("#attachment-"+a.image+" .imagify-cell-percentage").html('<span class="imagify-chart"><span class="imagify-chart-container"><canvas height="18" width="18" id="imagify-consumption-chart" style="width: 18px; height: 18px;"></canvas></span></span><span class="imagipercent">'+
11
  a.percent+"</span>%"),l(b("#attachment-"+a.image+" .imagify-cell-percentage").find("canvas")),b("#attachment-"+a.image+" .imagify-cell-thumbnails").html(a.thumbnails),b("#attachment-"+a.image+" .imagify-cell-savings").html(Optimizer.humanSize(a.overall_saving,1)),d=d+a.thumbnails+1,b(".imagify-cell-nb-files").html(d+" file(s)"),h+=a.original_overall_size,b(".imagify-total-original").html(Optimizer.humanSize(h,1)),k+=a.overall_saving,b(".imagify-total-gain").html(Optimizer.humanSize(k,1))):(error_class=
12
  "error",error_dashicon="dismiss",error_message="Error",0<=a.error.indexOf("You've consumed all your data")&&swal({title:imagifyBulk.labels.overQuotaTitle,html:imagifyBulk.labels.overQuotaText,type:"error",customClass:"imagify-sweet-alert"}).then(function(){location.reload()}),0<=a.error.indexOf("This image is already compressed")?(error_dashicon=error_class="warning",error_message="Notice"):(f++,b(".imagify-cell-errors").html(f+" error(s)")),b("#attachment-"+a.image).after('<tr><td colspan="7"><span class="status-'+
13
  error_class+'">'+a.error+"</span></td></tr>"),b("#attachment-"+a.image+" .imagify-cell-status").html('<span class="imagistatus status-'+error_class+'"><span class="dashicons dashicons-'+error_dashicon+'"></span>'+error_message+"</span>"))}).done(function(a){c.removeAttr("disabled");c.find(".dashicons").removeClass("rotate");b(window).off("beforeunload",confirmMessage);b(".imagify-row-progress").slideUp();"NaN"!==a.global_percent&&(b(".imagify-row-complete").removeClass("hidden").addClass("done").attr("aria-hidden",
2
  {segmentStrokeColor:"transparent",segmentStrokeWidth:0,animateRotate:!0,animation:!0,percentageInnerCutout:70,tooltipEvents:[]})})}var g=0<ajaxurl.indexOf("?")?"&":"?",n={log:function(b){"undefined"!==console&&console.log(b)}},f=document.getElementById("imagify-overview-chart"),e=[{value:imagifyBulk.labels.totalUnoptimizedAttachments,color:"#D9E4EB",highlight:"#D9E4EB",label:imagifyBulk.labels.overviewChartLabels.unoptimized},{value:imagifyBulk.labels.totalOptimizedAttachments,color:"#46B1CE",highlight:"#46B1CE",
3
  label:imagifyBulk.labels.overviewChartLabels.optimized},{value:imagifyBulk.labels.totalErrorsAttachments,color:"#2E3242",highlight:"#2E3242",label:imagifyBulk.labels.overviewChartLabels.error}];if(f){var d=(new Chart(f.getContext("2d"))).Doughnut(e,{segmentStrokeColor:"transparent",segmentStrokeWidth:0,animateRotate:!0,animation:!0,percentageInnerCutout:85,legendTemplate:'<ul class="imagify-<%=name.toLowerCase()%>-legend"><% for (var i=0; i<segments.length; i++){%><li><span style="background-color:<%=segments[i].fillColor%>"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>',
4
  tooltipTemplate:"<%= value %>"});overviewLegend='<ul class="imagify-doughnut-legend">';b(e).each(function(b){overviewLegend+='<li><span style="background-color:'+e[b].color+'"></span>'+e[b].label+"</li>"});overviewLegend+="</ul>";document.getElementById("imagify-overview-chart-legend").innerHTML=overviewLegend}b(document).on("heartbeat-send",function(b,a){a.imagify_heartbeat=imagifyBulk.heartbeat_id});b(document).on("heartbeat-tick",function(c,a){a.imagify_bulk_data&&(a=a.imagify_bulk_data,b("#imagify-overview-chart-percent").html(a.optimized_attachments_percent+
5
+ "<span>%</span>"),b(".imagify-total-percent").html(a.optimized_attachments_percent+"%"),b(".imagify-unconsumed-percent").html(a.unconsumed_quota+"%"),b(".imagify-unconsumed-bar").css("width",a.unconsumed_quota+"%"),b("#imagify-total-optimized-attachments").html(a.already_optimized_attachments),b("#imagify-original-bar").find(".imagify-barnb").html(a.original_human),b("#imagify-optimized-bar").css("width",a.optimized_percent+"%").find(".imagify-barnb").html(a.optimized_human),b("#imagify-total-optimized-attachments-pct").html(a.optimized_percent+
6
+ "%"),d.segments[0].value=a.unoptimized_attachments,d.segments[1].value=a.optimized_attachments,d.segments[2].value=a.errors_attachments,d.update())});b("#imagify-simulate-bulk-action").click(function(c){c.preventDefault();b("#imagify-bulk-action").trigger("click")});b("#imagify-bulk-action").click(function(){var c=b(this),a=b('[name="optimization_level"]:checked').val();"undefined"===typeof a&&(a=-1);if(c.attr("disabled"))return!1;c.attr("disabled","disabled");c.find(".dashicons").addClass("rotate");
7
+ confirmMessage=function(){return imagifyBulk.labels.processing};b(window).on("beforeunload",confirmMessage);swal({title:imagifyBulk.labels.waitTitle,html:imagifyBulk.labels.waitText,showConfirmButton:!1,imageUrl:imagifyBulk.labels.waitImageUrl});b.get(ajaxurl+g+"action="+imagifyBulk.ajax_action+"&optimization_level="+a+"&imagifybulkuploadnonce="+b("#imagifybulkuploadnonce").val()).done(function(a){if(a.success){swal.close();a={lib:ajaxurl+g+"action=imagify_bulk_upload&imagifybulkuploadnonce="+b("#imagifybulkuploadnonce").val(),
8
+ images:a.data,context:imagifyBulk.ajax_context};var e=b(".imagify-bulk-table table tbody"),d=0,f=0,h=0,k=0;b(".imagify-row-progress").slideDown();b(".imagify-no-uploaded-yet, .imagify-row-complete").hide(200);Optimizer=new ImagifyGulp(a);Optimizer.before(function(b){e.find(".imagify-row-progress").after('<tr id="attachment-'+b.id+'"><td class="imagify-cell-filename"><span class="imagiuploaded"><img src="'+b.thumbnail+'"/>"</span><span class="imagifilename">'+b.filename+'</span></td><td class="imagify-cell-status"><span class="imagistatus status-compressing"><span class="dashicons dashicons-admin-generic rotate"></span>Compressing<span></span></span></td><td class="imagify-cell-original"></td><td class="imagify-cell-optimized"></td><td class="imagify-cell-percentage"></td><td class="imagify-cell-thumbnails"></td><td class="imagify-cell-savings"></td></tr>')}).each(function(a){var c=
9
+ b("#imagify-progress-bar");c.css({width:a.progress+"%"});c.find(".percent").html(a.progress+"%");a.success?(b("#attachment-"+a.image+" .imagify-cell-status").html('<span class="imagistatus status-complete"><span class="dashicons dashicons-yes"></span>Complete</span>'),b("#attachment-"+a.image+" .imagify-cell-original").html(a.original_size_human),b("#attachment-"+a.image+" .imagify-cell-optimized").html(a.new_size_human),b("#attachment-"+a.image+" .imagify-cell-percentage").html('<span class="imagify-chart"><span class="imagify-chart-container"><canvas height="18" width="18" id="imagify-consumption-chart" style="width: 18px; height: 18px;"></canvas></span></span><span class="imagipercent">'+
 
10
  a.percent+"</span>%"),l(b("#attachment-"+a.image+" .imagify-cell-percentage").find("canvas")),b("#attachment-"+a.image+" .imagify-cell-thumbnails").html(a.thumbnails),b("#attachment-"+a.image+" .imagify-cell-savings").html(Optimizer.humanSize(a.overall_saving,1)),d=d+a.thumbnails+1,b(".imagify-cell-nb-files").html(d+" file(s)"),h+=a.original_overall_size,b(".imagify-total-original").html(Optimizer.humanSize(h,1)),k+=a.overall_saving,b(".imagify-total-gain").html(Optimizer.humanSize(k,1))):(error_class=
11
  "error",error_dashicon="dismiss",error_message="Error",0<=a.error.indexOf("You've consumed all your data")&&swal({title:imagifyBulk.labels.overQuotaTitle,html:imagifyBulk.labels.overQuotaText,type:"error",customClass:"imagify-sweet-alert"}).then(function(){location.reload()}),0<=a.error.indexOf("This image is already compressed")?(error_dashicon=error_class="warning",error_message="Notice"):(f++,b(".imagify-cell-errors").html(f+" error(s)")),b("#attachment-"+a.image).after('<tr><td colspan="7"><span class="status-'+
12
  error_class+'">'+a.error+"</span></td></tr>"),b("#attachment-"+a.image+" .imagify-cell-status").html('<span class="imagistatus status-'+error_class+'"><span class="dashicons dashicons-'+error_dashicon+'"></span>'+error_message+"</span>"))}).done(function(a){c.removeAttr("disabled");c.find(".dashicons").removeClass("rotate");b(window).off("beforeunload",confirmMessage);b(".imagify-row-progress").slideUp();"NaN"!==a.global_percent&&(b(".imagify-row-complete").removeClass("hidden").addClass("done").attr("aria-hidden",
contributors.txt CHANGED
@@ -10,9 +10,10 @@ Developers:
10
  Grégory Viguier <gregory@wp-rocket.me>
11
 
12
  Interface Design:
13
- Matthieu <matthieu@wp-media.me>
 
14
 
15
  Translation:
16
- Alice (Italian & Spanish) <alice@wp-rocket.me>
17
- Caspar (German) <caspar@wp-rocket.me>
18
- Lucy (English) <lucy@wp-rocket.me>
10
  Grégory Viguier <gregory@wp-rocket.me>
11
 
12
  Interface Design:
13
+ Matthieu Bousendorfer <matthieu@wp-media.me>
14
+ Geoffrey Crofte <geoffrey@wp-media.me>
15
 
16
  Translation:
17
+ Alice Orrù (Italian & Spanish) <alice@wp-rocket.me>
18
+ Caspar Hübinger (German) <caspar@wp-rocket.me>
19
+ Lucy Beer (English) <lucy@wp-rocket.me>
imagify.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Imagify
4
  Plugin URI: https://wordpress.org/plugins/imagify/
5
  Description: Dramaticaly reduce image file sizes without losing quality, make your website load faster, boost your SEO and save money on your bandwith using Imagify, the new most advanced image optimization tool.
6
- Version: 1.5.10
7
  Author: WP Media
8
  Author URI: http://wp-media.me
9
  Licence: GPLv2
@@ -17,11 +17,12 @@ Copyright 2016 WP Media
17
  defined( 'ABSPATH' ) or die( 'Cheatin\' uh?' );
18
 
19
  // Imagify defines
20
- define( 'IMAGIFY_VERSION' , '1.5.10' );
21
  define( 'IMAGIFY_SLUG' , 'imagify' );
22
  define( 'IMAGIFY_SETTINGS_SLUG' , IMAGIFY_SLUG . '_settings' );
23
  define( 'IMAGIFY_WEB_MAIN' , 'https://imagify.io' );
24
  define( 'IMAGIFY_APP_MAIN' , 'https://app.imagify.io' );
 
25
  define( 'IMAGIFY_FILE' , __FILE__ );
26
  define( 'IMAGIFY_PATH' , realpath( plugin_dir_path( IMAGIFY_FILE ) ) . '/' );
27
  define( 'IMAGIFY_INC_PATH' , realpath( IMAGIFY_PATH . 'inc/' ) . '/' );
@@ -32,15 +33,15 @@ define( 'IMAGIFY_COMMON_PATH' , realpath( IMAGIFY_INC_PATH . 'common' ) .
32
  define( 'IMAGIFY_FUNCTIONS_PATH' , realpath( IMAGIFY_INC_PATH . 'functions' ) . '/' );
33
  define( 'IMAGIFY_CLASSES_PATH' , realpath( IMAGIFY_INC_PATH . 'classes' ) . '/' );
34
  define( 'IMAGIFY_CLASSES_ABSTRACTS_PATH' , realpath( IMAGIFY_CLASSES_PATH . 'abstracts' ) . '/' );
35
- define( 'IMAGIFY_3RD_PARTY_PATH' , realpath( IMAGIFY_INC_PATH . '3rd-party' ) . '/' );
36
- define( 'IMAGIFY_URL' , plugin_dir_url( IMAGIFY_FILE ) );
37
- define( 'IMAGIFY_INC_URL' , IMAGIFY_URL . 'inc/' );
38
- define( 'IMAGIFY_ADMIN_URL' , IMAGIFY_INC_URL . 'admin/' );
39
- define( 'IMAGIFY_ASSETS_URL' , IMAGIFY_URL . 'assets/' );
40
- define( 'IMAGIFY_ASSETS_JS_URL' , IMAGIFY_ASSETS_URL . 'js/' );
41
- define( 'IMAGIFY_ASSETS_CSS_URL' , IMAGIFY_ASSETS_URL . 'css/' );
42
- define( 'IMAGIFY_ASSETS_IMG_URL' , IMAGIFY_ASSETS_URL . 'images/' );
43
- define( 'IMAGIFY_MAX_BYTES' , 5242880 );
44
 
45
  /*
46
  * Tell WP what to do when plugin is loaded
@@ -93,11 +94,11 @@ function _imagify_init() {
93
  require( IMAGIFY_ADMIN_UI_PATH . 'bulk.php' );
94
  require( IMAGIFY_ADMIN_UI_PATH . 'notices.php' );
95
  }
96
-
97
  /**
98
  * Fires when Imagify is correctly loaded
99
  *
100
  * @since 1.0
101
  */
102
  do_action( 'imagify_loaded' );
103
- }
3
  Plugin Name: Imagify
4
  Plugin URI: https://wordpress.org/plugins/imagify/
5
  Description: Dramaticaly reduce image file sizes without losing quality, make your website load faster, boost your SEO and save money on your bandwith using Imagify, the new most advanced image optimization tool.
6
+ Version: 1.6
7
  Author: WP Media
8
  Author URI: http://wp-media.me
9
  Licence: GPLv2
17
  defined( 'ABSPATH' ) or die( 'Cheatin\' uh?' );
18
 
19
  // Imagify defines
20
+ define( 'IMAGIFY_VERSION' , '1.6' );
21
  define( 'IMAGIFY_SLUG' , 'imagify' );
22
  define( 'IMAGIFY_SETTINGS_SLUG' , IMAGIFY_SLUG . '_settings' );
23
  define( 'IMAGIFY_WEB_MAIN' , 'https://imagify.io' );
24
  define( 'IMAGIFY_APP_MAIN' , 'https://app.imagify.io' );
25
+ define( 'IMAGIFY_PAYMENT_URL' , IMAGIFY_APP_MAIN . '/#/plugin/' );
26
  define( 'IMAGIFY_FILE' , __FILE__ );
27
  define( 'IMAGIFY_PATH' , realpath( plugin_dir_path( IMAGIFY_FILE ) ) . '/' );
28
  define( 'IMAGIFY_INC_PATH' , realpath( IMAGIFY_PATH . 'inc/' ) . '/' );
33
  define( 'IMAGIFY_FUNCTIONS_PATH' , realpath( IMAGIFY_INC_PATH . 'functions' ) . '/' );
34
  define( 'IMAGIFY_CLASSES_PATH' , realpath( IMAGIFY_INC_PATH . 'classes' ) . '/' );
35
  define( 'IMAGIFY_CLASSES_ABSTRACTS_PATH' , realpath( IMAGIFY_CLASSES_PATH . 'abstracts' ) . '/' );
36
+ define( 'IMAGIFY_3RD_PARTY_PATH' , realpath( IMAGIFY_INC_PATH . '3rd-party' ) . '/' );
37
+ define( 'IMAGIFY_URL' , plugin_dir_url( IMAGIFY_FILE ) );
38
+ define( 'IMAGIFY_INC_URL' , IMAGIFY_URL . 'inc/' );
39
+ define( 'IMAGIFY_ADMIN_URL' , IMAGIFY_INC_URL . 'admin/' );
40
+ define( 'IMAGIFY_ASSETS_URL' , IMAGIFY_URL . 'assets/' );
41
+ define( 'IMAGIFY_ASSETS_JS_URL' , IMAGIFY_ASSETS_URL . 'js/' );
42
+ define( 'IMAGIFY_ASSETS_CSS_URL' , IMAGIFY_ASSETS_URL . 'css/' );
43
+ define( 'IMAGIFY_ASSETS_IMG_URL' , IMAGIFY_ASSETS_URL . 'images/' );
44
+ define( 'IMAGIFY_MAX_BYTES' , 5242880 );
45
 
46
  /*
47
  * Tell WP what to do when plugin is loaded
94
  require( IMAGIFY_ADMIN_UI_PATH . 'bulk.php' );
95
  require( IMAGIFY_ADMIN_UI_PATH . 'notices.php' );
96
  }
97
+
98
  /**
99
  * Fires when Imagify is correctly loaded
100
  *
101
  * @since 1.0
102
  */
103
  do_action( 'imagify_loaded' );
104
+ }
inc/admin/ajax.php CHANGED
@@ -632,20 +632,101 @@ function _do_admin_post_async_optimize_save_image_editor_file() {
632
  /**
633
  * Get pricings from API for Onetime and Plans at the same time
634
  *
635
- * @since 1.5
636
- * @author Geoffrey
 
 
637
  */
638
  add_action( 'wp_ajax_imagify_get_prices', '_imagify_get_prices_from_api' );
639
  function _imagify_get_prices_from_api() {
640
  if ( check_ajax_referer( 'imagify_get_pricing_' . get_current_user_id(), 'imagifynonce', false) ) {
641
 
642
- $data = array();
643
- $data['onetimes'] = get_imagify_packs_prices();
644
- $data['monthlies'] = get_imagify_plans_prices();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
645
 
646
- wp_send_json_success( $data );
 
 
 
 
647
  }
648
- else {
649
- wp_send_json_error( 'check_ajax_referer failed' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
650
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
651
  }
632
  /**
633
  * Get pricings from API for Onetime and Plans at the same time
634
  *
635
+ * @return JSON WP formatted answer
636
+ *
637
+ * @since 1.6
638
+ * @author Geoffrey Crofte
639
  */
640
  add_action( 'wp_ajax_imagify_get_prices', '_imagify_get_prices_from_api' );
641
  function _imagify_get_prices_from_api() {
642
  if ( check_ajax_referer( 'imagify_get_pricing_' . get_current_user_id(), 'imagifynonce', false) ) {
643
 
644
+ $prices = array();
645
+ $prices_all = get_imagify_all_prices();
646
+
647
+ if ( is_object( $prices_all ) ) {
648
+ $prices['onetimes'] = $prices_all -> Packs;
649
+ $prices['monthlies'] = $prices_all -> Plans;
650
+
651
+ wp_send_json_success( $prices );
652
+ }
653
+ else {
654
+ wp_send_json_error( 'Prices variable is not an object' );
655
+ }
656
+ } else {
657
+ wp_send_json_error( 'check_ajax_referer for prices failed' );
658
+ }
659
+ }
660
+
661
+ /**
662
+ * Check Coupon code on modal popin
663
+ *
664
+ * @return JSON WP formatted answer
665
+ *
666
+ * @since 1.6
667
+ * @author Geoffrey Crofte
668
+ */
669
+ add_action( 'wp_ajax_imagify_check_coupon', '_imagify_check_coupon_code' );
670
+ function _imagify_check_coupon_code() {
671
+ if ( check_ajax_referer( 'imagify_get_pricing_' . get_current_user_id(), 'imagifynonce', false) ) {
672
 
673
+ $coupon_response = check_imagify_coupon_code( $_POST[ 'coupon' ] );
674
+
675
+ wp_send_json_success( $coupon_response );
676
+ } else {
677
+ wp_send_json_error( 'check_ajax_referer for coupon code checking failed' );
678
  }
679
+ }
680
+
681
+ /**
682
+ * Get estimated sizes from the WordPress library
683
+ *
684
+ * @return JSON WP formatted answer
685
+ *
686
+ * @since 1.6
687
+ * @author Geoffrey Crofte
688
+ */
689
+ add_action( 'wp_ajax_imagify_get_images_counts', '_imagify_get_estimated_sizes' );
690
+ function _imagify_get_estimated_sizes() {
691
+ if ( check_ajax_referer( 'imagify_get_pricing_' . get_current_user_id(), 'imagifynonce', false) ) {
692
+
693
+ $raw_total_size_in_library = imagify_calculate_total_size_images_library();
694
+ $raw_average_per_month = imagify_calculate_average_size_images_per_month();
695
+ update_imagify_option( 'total_size_images_library', array( 'raw' => $raw_total_size_in_library, 'human' => size_format( $raw_total_size_in_library ) ) );
696
+ update_imagify_option( 'average_size_images_per_month', array( 'raw' => $raw_average_per_month, 'human' => size_format( $raw_average_per_month ) ) );
697
+
698
+ $images = array(
699
+ 'total_library_size' => get_imagify_option( 'total_size_images_library', null ),
700
+ 'average_month_size' => get_imagify_option( 'average_size_images_per_month', null )
701
+ );
702
+
703
+ wp_send_json_success( $images );
704
+ } else {
705
+ wp_send_json_error( 'check_ajax_referer for estimated image sizes failed' );
706
  }
707
+ }
708
+
709
+ /**
710
+ * Estimate sizes and update the options values for them
711
+ *
712
+ * @since 1.6
713
+ * @author Remy Perona
714
+ */
715
+ add_action( 'wp_ajax_imagify_update_estimate_sizes', '_imagify_update_estimate_sizes' );
716
+ function _imagify_update_estimate_sizes() {
717
+ if ( ! isset( $_POST['_ajax_nonce'] ) ) {
718
+ die();
719
+ }
720
+
721
+ if ( ! check_ajax_referer( 'update_estimate_sizes' ) ) {
722
+ die();
723
+ }
724
+
725
+ $raw_total_size_in_library = imagify_calculate_total_size_images_library();
726
+ $raw_average_per_month = imagify_calculate_average_size_images_per_month();
727
+
728
+ update_imagify_option( 'total_size_images_library', array( 'raw' => $raw_total_size_in_library, 'human' => size_format( $raw_total_size_in_library ) ) );
729
+ update_imagify_option( 'average_size_images_per_month', array( 'raw' => $raw_average_per_month, 'human' => size_format( $raw_average_per_month ) ) );
730
+
731
+ die( 1 );
732
  }
inc/admin/options.php CHANGED
@@ -56,7 +56,15 @@ function _imagify_pre_update_option( $value, $old_value ) {
56
  if ( (bool) $value['resize_larger_w'] && $value['resize_larger_w'] < $max_sizes['width'] ) {
57
  $value['resize_larger_w'] = $max_sizes['width'];
58
  }
59
-
 
 
 
 
 
 
 
 
60
  unset( $value['sizes'] );
61
  return $value;
62
  }
56
  if ( (bool) $value['resize_larger_w'] && $value['resize_larger_w'] < $max_sizes['width'] ) {
57
  $value['resize_larger_w'] = $max_sizes['width'];
58
  }
59
+
60
+ if ( ! isset( $value['total_size_images_library'] ) && isset( $old_value['total_size_images_library'] ) ) {
61
+ $value['total_size_images_library'] = $old_value['total_size_images_library'];
62
+ }
63
+
64
+ if ( ! isset( $value['average_size_images_per_month'] ) && isset( $old_value['average_size_images_per_month'] ) ) {
65
+ $value['average_size_images_per_month'] = $old_value['average_size_images_per_month'];
66
+ }
67
+
68
  unset( $value['sizes'] );
69
  return $value;
70
  }
inc/admin/ui/options.php CHANGED
@@ -73,7 +73,7 @@ function _imagify_display_options_page() {
73
 
74
  <h3 class="screen-reader-text"><?php _e( 'Settings' ); ?></h3>
75
 
76
- <?php //echo get_imagify_new_to_imagify(); ?>
77
 
78
  <?php
79
  if ( ! defined( 'IMAGIFY_API_KEY' ) || ! IMAGIFY_API_KEY ) { ?>
@@ -481,7 +481,7 @@ function _imagify_display_options_page() {
481
  </div>
482
  </div>
483
 
484
- <?php //imagify_payment_modal(); ?>
485
 
486
  </div>
487
  <?php
73
 
74
  <h3 class="screen-reader-text"><?php _e( 'Settings' ); ?></h3>
75
 
76
+ <?php echo get_imagify_new_to_imagify(); ?>
77
 
78
  <?php
79
  if ( ! defined( 'IMAGIFY_API_KEY' ) || ! IMAGIFY_API_KEY ) { ?>
481
  </div>
482
  </div>
483
 
484
+ <?php imagify_payment_modal(); ?>
485
 
486
  </div>
487
  <?php
inc/api/imagify.php CHANGED
@@ -71,7 +71,7 @@ function upload_imagify_image( $data ) {
71
  * Get Imagify Plans Prices
72
  *
73
  * @return object
74
- * @since 1.5
75
  * @author Geoffrey Crofte
76
  **/
77
  function get_imagify_plans_prices() {
@@ -82,7 +82,7 @@ function get_imagify_plans_prices() {
82
  * Get Imagify Plans Prices
83
  *
84
  * @return object
85
- * @since 1.5
86
  * @author Geoffrey Crofte
87
  **/
88
  function get_imagify_packs_prices() {
@@ -90,6 +90,28 @@ function get_imagify_packs_prices() {
90
  }
91
 
92
  /**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  * Get Maximum image size for free plan
94
  *
95
  * @return string
@@ -304,6 +326,24 @@ class Imagify {
304
  }
305
 
306
  /**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
307
  * Get Public Info
308
  *
309
  * @return object
71
  * Get Imagify Plans Prices
72
  *
73
  * @return object
74
+ * @since 1.5
75
  * @author Geoffrey Crofte
76
  **/
77
  function get_imagify_plans_prices() {
82
  * Get Imagify Plans Prices
83
  *
84
  * @return object
85
+ * @since 1.5
86
  * @author Geoffrey Crofte
87
  **/
88
  function get_imagify_packs_prices() {
90
  }
91
 
92
  /**
93
+ * Get Imagify All Prices (plan & packs)
94
+ *
95
+ * @return object
96
+ * @since 1.5.4
97
+ * @author Geoffrey Crofte
98
+ **/
99
+ function get_imagify_all_prices() {
100
+ return Imagify()->getAllPrices();
101
+ }
102
+
103
+ /**
104
+ * Check Coupon Code
105
+ *
106
+ * @return object
107
+ * @since 1.6
108
+ * @author Geoffrey Crofte
109
+ **/
110
+ function check_imagify_coupon_code( $coupon ) {
111
+ return Imagify()->checkCouponCode( $coupon );
112
+ }
113
+
114
+ /*
115
  * Get Maximum image size for free plan
116
  *
117
  * @return string
326
  }
327
 
328
  /**
329
+ * Get all prices (packs & plans included)
330
+ *
331
+ * @return object
332
+ */
333
+ public function getAllPrices() {
334
+ return $this->httpCall( 'pricing/all/' );
335
+ }
336
+
337
+ /**
338
+ * Get all prices (packs & plans included)
339
+ *
340
+ * @return object
341
+ */
342
+ public function checkCouponCode( $coupon ) {
343
+ return $this->httpCall( 'coupons/' . $coupon . '/' );
344
+ }
345
+
346
+ /*
347
  * Get Public Info
348
  *
349
  * @return object
inc/common/cron.php CHANGED
@@ -14,7 +14,7 @@ function _imagify_rating_scheduled() {
14
  }
15
  }
16
 
17
- /*
18
  * Saved the user images count to display it later
19
  * in a notice message to ask him to rate Imagify on WordPress.org
20
  *
@@ -37,4 +37,55 @@ function _do_imagify_rating_cron() {
37
  if ( isset( $user ) && (int) $user->image_count > 100 ) {
38
  set_site_transient( 'imagify_user_images_count', $user->image_count );
39
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  }
14
  }
15
  }
16
 
17
+ /**
18
  * Saved the user images count to display it later
19
  * in a notice message to ask him to rate Imagify on WordPress.org
20
  *
37
  if ( isset( $user ) && (int) $user->image_count > 100 ) {
38
  set_site_transient( 'imagify_user_images_count', $user->image_count );
39
  }
40
+ }
41
+
42
+ /**
43
+ * Adds weekly interval for cron jobs
44
+ *
45
+ * @since 1.6
46
+ * @author Remy Perona
47
+ *
48
+ * @param Array $schedules An array of intervals used by cron jobs
49
+ * @return Array Updated array of intervals
50
+ */
51
+ add_filter( 'cron_schedules', 'imagify_purge_cron_schedule' );
52
+ function imagify_purge_cron_schedule( $schedules ) {
53
+ if ( array_key_exists( 'weekly', $schedules ) ) {
54
+ return $schedules;
55
+ }
56
+
57
+ $schedules['weekly'] = array(
58
+ 'interval' => 604800,
59
+ 'display' => __( 'weekly', 'imagify' )
60
+ );
61
+
62
+ return $schedules;
63
+ }
64
+
65
+ /**
66
+ * Planning cron task to update weekly the size of the images and the size of images uploaded by month
67
+ * If the task is not programmed, it is automatically triggered
68
+ *
69
+ * @since 1.6
70
+ * @author Remy Perona
71
+ */
72
+ add_action( 'init', '_imagify_update_library_size_calculations_scheduled' );
73
+ function _imagify_update_library_size_calculations_scheduled() {
74
+ if ( ! wp_next_scheduled( 'imagify_update_library_size_calculations_event' ) ) {
75
+ wp_schedule_event( time(), 'weekly', 'imagify_update_library_size_calculations_event' );
76
+ }
77
+ }
78
+
79
+ /**
80
+ * Cron task to update weekly the size of the images and the size of images uploaded by month
81
+ *
82
+ * @since 1.6
83
+ * @author Remy Perona
84
+ */
85
+ add_action( 'imagify_update_library_size_calculations_event', '_do_imagify_update_library_size_calculations' );
86
+ function _do_imagify_update_library_size_calculations() {
87
+ imagify_do_async_job( array(
88
+ 'action' => 'imagify_update_estimate_sizes',
89
+ '_ajax_nonce' => wp_create_nonce( 'update_estimate_sizes' ),
90
+ ) );
91
  }
inc/functions/admin-stats.php CHANGED
@@ -11,7 +11,7 @@ defined( 'ABSPATH' ) or die( 'Cheatin\' uh?' );
11
  */
12
  function imagify_count_attachments() {
13
  global $wpdb;
14
-
15
  /**
16
  * Filter the number of attachments
17
  * 3rd party will be able to override the result
@@ -23,9 +23,9 @@ function imagify_count_attachments() {
23
  if ( false !== $count ) {
24
  return $count;
25
  }
26
-
27
  static $count;
28
-
29
  if ( ! $count ) {
30
  $count = $wpdb->get_var(
31
  "SELECT COUNT($wpdb->posts.ID)
@@ -219,7 +219,7 @@ function imagify_count_saving_data( $key = '' ) {
219
  $optimized_size = 0;
220
  $count = 0;
221
 
222
- foreach( $attachments as $attachment_data ) {
223
  if ( ! $attachment_data ) {
224
  continue;
225
  }
@@ -254,4 +254,234 @@ function imagify_count_saving_data( $key = '' ) {
254
  }
255
 
256
  return $data;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
257
  }
11
  */
12
  function imagify_count_attachments() {
13
  global $wpdb;
14
+
15
  /**
16
  * Filter the number of attachments
17
  * 3rd party will be able to override the result
23
  if ( false !== $count ) {
24
  return $count;
25
  }
26
+
27
  static $count;
28
+
29
  if ( ! $count ) {
30
  $count = $wpdb->get_var(
31
  "SELECT COUNT($wpdb->posts.ID)
219
  $optimized_size = 0;
220
  $count = 0;
221
 
222
+ foreach ( $attachments as $attachment_data ) {
223
  if ( ! $attachment_data ) {
224
  continue;
225
  }
254
  }
255
 
256
  return $data;
257
+ }
258
+
259
+ /**
260
+ * Returns the estimated total size of the images not optimized
261
+ *
262
+ * We estimate the total size of the images in the library by getting the latest 250 images and their thumbnails
263
+ * add up their filesizes, and doing some maths to get the total size
264
+ *
265
+ * @return (int) the current estimated total size of images not optimized
266
+ *
267
+ * @since 1.6
268
+ * @author Remy Perona
269
+ */
270
+ function imagify_calculate_total_size_images_library() {
271
+ global $wpdb;
272
+
273
+ $images_id = $wpdb->get_results( "
274
+ SELECT ID FROM $wpdb->posts
275
+ WHERE (post_mime_type LIKE 'image/%')
276
+ AND post_type = 'attachment' AND (post_status = 'inherit')
277
+ LIMIT 250
278
+ ", ARRAY_A );
279
+
280
+ $images_id = wp_list_pluck( $images_id, 'ID' );
281
+
282
+ if ( ! (bool) $images_id ) {
283
+ return 0;
284
+ }
285
+
286
+ $partial_total_images = count( $images_id );
287
+ $total_images = imagify_count_attachments();
288
+ $total_size_images = imagify_calculate_total_image_size( $images_id, $partial_total_images, $total_images );
289
+
290
+ return (int) $total_size_images;
291
+ }
292
+
293
+ /**
294
+ * Returns the estimated average size of the images uploaded per month
295
+ *
296
+ * We estimate the average size of the images uploaded in the library per month by getting the latest 250 images and their thumbnails
297
+ * for the 3 latest months, add up their filesizes, and doing some maths to get the total average size
298
+ *
299
+ * @return (int) the current estimated average size of images uploaded per month
300
+ *
301
+ * @since 1.6
302
+ * @author Remy Perona
303
+ */
304
+ function imagify_calculate_average_size_images_per_month() {
305
+ $imagify_mime_types = get_imagify_mime_type();
306
+
307
+ $partial_images_uploaded_last_month = new WP_Query( array(
308
+ 'post_type' => 'attachment',
309
+ 'post_status' => 'inherit',
310
+ 'post_mime_type' => $imagify_mime_types,
311
+ 'posts_per_page' => 250,
312
+ 'date_query' => array(
313
+ array(
314
+ 'before' => 'now',
315
+ 'after' => '1 month ago'
316
+ )
317
+ ),
318
+ 'fields' => 'ids'
319
+ ) );
320
+
321
+ $partial_images_uploaded_two_months_ago = new WP_Query( array(
322
+ 'post_type' => 'attachment',
323
+ 'post_status' => 'inherit',
324
+ 'post_mime_type' => $imagify_mime_types,
325
+ 'posts_per_page' => 250,
326
+ 'date_query' => array(
327
+ array(
328
+ 'before' => '1 month ago',
329
+ 'after' => '2 months ago'
330
+ )
331
+ ),
332
+ 'fields' => 'ids'
333
+ ) );
334
+
335
+ $partial_images_uploaded_three_months_ago = new WP_Query( array(
336
+ 'post_type' => 'attachment',
337
+ 'post_status' => 'inherit',
338
+ 'post_mime_type' => $imagify_mime_types,
339
+ 'posts_per_page' => 250,
340
+ 'date_query' => array(
341
+ array(
342
+ 'before' => '2 months ago',
343
+ 'after' => '3 months ago'
344
+ )
345
+ ),
346
+ 'fields' => 'ids'
347
+ ) );
348
+
349
+ $images_uploaded_id = new WP_Query( array(
350
+ 'post_type' => 'attachment',
351
+ 'post_status' => 'inherit',
352
+ 'post_mime_type' => $imagify_mime_types,
353
+ 'posts_per_page' => -1,
354
+ 'date_query' => array(
355
+ array(
356
+ 'before' => 'now',
357
+ 'after' => '3 months ago'
358
+ )
359
+ ),
360
+ 'fields' => 'ids'
361
+ ) );
362
+
363
+ $partial_images_uploaded_id = array_merge( $partial_images_uploaded_last_month->posts, $partial_images_uploaded_two_months_ago->posts, $partial_images_uploaded_three_months_ago->posts );
364
+
365
+ if ( ! (bool) $partial_images_uploaded_id ) {
366
+ return 0;
367
+ }
368
+
369
+ if ( ! (bool) $images_uploaded_id->posts ) {
370
+ return 0;
371
+ }
372
+
373
+ $partial_total_images_uploaded = count( $partial_images_uploaded_id );
374
+ $total_images_uploaded = $images_uploaded_id->post_count;
375
+ $average_size_images_per_month = imagify_calculate_total_image_size( $partial_images_uploaded_id, $partial_total_images_uploaded, $total_images_uploaded ) / 3;
376
+
377
+ return $average_size_images_per_month;
378
+ }
379
+
380
+ /**
381
+ * Returns the estimated total size of images
382
+ *
383
+ * @param array $images_id Array of images ID
384
+ * @param int $partial_total_images The number of images we're doing the calculation with
385
+ * @param int $total_images The total number of images
386
+ * @return int The estimated total size of images
387
+ *
388
+ * @since 1.6
389
+ * @author Remy Perona
390
+ */
391
+ function imagify_calculate_total_image_size( $images_id, $partial_total_images, $total_images ) {
392
+ global $wpdb;
393
+ $partial_size_images = '';
394
+ $partial_total_intermediate_images = '';
395
+ $sql_ids = implode( ',', $images_id );
396
+
397
+ // Get attachments filename
398
+ $attachments_filename = $wpdb->get_results(
399
+ "SELECT pm.post_id as id, pm.meta_value as value
400
+ FROM $wpdb->postmeta as pm
401
+ WHERE pm.meta_key= '_wp_attached_file'
402
+ AND pm.post_id IN ($sql_ids)
403
+ ORDER BY pm.post_id DESC"
404
+ , ARRAY_A
405
+ );
406
+
407
+ $attachments_filename = imagify_query_results_combine( $images_id, $attachments_filename );
408
+
409
+ // Get attachments data
410
+ $attachments_data = $wpdb->get_results(
411
+ "SELECT pm.post_id as id, pm.meta_value as value
412
+ FROM $wpdb->postmeta as pm
413
+ WHERE pm.meta_key= '_wp_attachment_metadata'
414
+ AND pm.post_id IN ($sql_ids)
415
+ ORDER BY pm.post_id DESC"
416
+ , ARRAY_A
417
+ );
418
+
419
+ $attachments_data = imagify_query_results_combine( $images_id, $attachments_data );
420
+ $attachments_data = array_map( 'maybe_unserialize', $attachments_data );
421
+
422
+ // Get imagify data
423
+ $imagify_data = $wpdb->get_results(
424
+ "SELECT pm.post_id as id, pm.meta_value as value
425
+ FROM $wpdb->postmeta as pm
426
+ WHERE pm.meta_key= '_imagify_data'
427
+ AND pm.post_id IN ($sql_ids)
428
+ ORDER BY pm.post_id DESC"
429
+ , ARRAY_A
430
+ );
431
+
432
+ $imagify_data = imagify_query_results_combine( $images_id, $imagify_data );
433
+ $imagify_data = array_map( 'maybe_unserialize', $imagify_data );
434
+
435
+ // Get attachments status
436
+ $attachments_status = $wpdb->get_results(
437
+ "SELECT pm.post_id as id, pm.meta_value as value
438
+ FROM $wpdb->postmeta as pm
439
+ WHERE pm.meta_key= '_imagify_status'
440
+ AND pm.post_id IN ($sql_ids)
441
+ ORDER BY pm.post_id DESC"
442
+ , ARRAY_A
443
+ );
444
+
445
+ $attachments_status = imagify_query_results_combine( $images_id, $attachments_status );
446
+
447
+ foreach( $images_id as $image_id ) {
448
+ $attachment_status = ( isset( $attachments_status[ $image_id ] ) ) ? $attachments_status[ $image_id ] : false;
449
+
450
+ if ( $attachments_status === 'success' ) {
451
+ $imagify_data = ( isset( $imagify_data[ $image_id ] ) ) ? $imagify_data[ $image_id ] : false;
452
+ $partial_size_images += $imagify_data['stats']['original_size'];
453
+ foreach ( $attachment_data['sizes'] as $size ) {
454
+ $partial_total_intermediate_images++;
455
+ }
456
+ continue;
457
+ }
458
+
459
+ $attachment_metadata = ( isset( $attachments_data[ $image_id ] ) ) ? $attachments_data[ $image_id ] : false;
460
+ $sizes = ( isset( $attachment_metadata['sizes'] ) ) ? (array) $attachment_metadata['sizes'] : array();
461
+
462
+ /** This filter is documented in inc/functions/process.php */
463
+ $full_image = apply_filters( 'imagify_file_path', get_imagify_attached_file( $attachments_filename[ $image_id ] ) );
464
+ $partial_size_images += filesize( $full_image );
465
+
466
+ if ( (bool) $sizes ) {
467
+ foreach ( $sizes as $size_key => $size_data ) {
468
+ if ( array_key_exists( $size_key, get_imagify_option( 'disallowed-sizes', array() ) ) && ! imagify_is_active_for_network() ) {
469
+ continue;
470
+ }
471
+
472
+ $thumbnail_path = trailingslashit( dirname( $full_image ) ) . $size_data['file'];
473
+
474
+ if ( file_exists( $thumbnail_path ) ) {
475
+ $partial_size_images += filesize( $thumbnail_path );
476
+ $partial_total_intermediate_images++;
477
+ }
478
+ }
479
+ }
480
+ }
481
+
482
+ $intermediate_images_per_image = $partial_total_intermediate_images / $partial_total_images;
483
+ $average_size_images = $partial_size_images / ( $partial_total_images + $partial_total_intermediate_images );
484
+ $total_size_images = $average_size_images * ( $total_images + ( $intermediate_images_per_image * $total_images ) );
485
+
486
+ return $total_size_images;
487
  }
inc/functions/admin-ui.php CHANGED
@@ -226,12 +226,12 @@ function get_imagify_media_column_content( $attachment, $context = 'wp' ) {
226
  * @return string HTML
227
  *
228
  * @since 1.5
229
- * @author Geoffrey
230
  *
231
  * @todo add only for no-payable users?
232
  */
233
  function get_imagify_new_to_imagify() {
234
- if ( apply_filters( 'imagify_show_new_to_imagify', true ) ) {
235
  return '
236
  <div class="imagify-section imagify-section-positive">
237
  <div class="imagify-start imagify-mr2">
@@ -256,7 +256,7 @@ function get_imagify_new_to_imagify() {
256
  * @return string the markuped price
257
  *
258
  * @since 1.5
259
- * @author Geoffrey
260
  */
261
  function get_imagify_price_table_format( $value ) {
262
  $v = explode( '.', (string) $value );
@@ -269,44 +269,57 @@ function get_imagify_price_table_format( $value ) {
269
  * @return string HTML code for payement modal
270
  *
271
  * @since 1.5
272
- * @author Geoffrey
 
 
273
  */
274
  function imagify_payment_modal() {
275
  ?>
276
- <div id="imagify-pricing-modal" class="imagify-modal imagify-payment-modal" aria-hidden="false" role="dialog" aria-labelledby="imagify-pricing-step-1">
277
  <div class="imagify-modal-content">
278
  <div class="imagify-modal-main">
279
- <ol class="imagify-payment-steps">
280
- <li id="imagify-pricing-step-1" class="active"><?php esc_html_e( 'Choose Plan', 'imagify' ); ?></li>
281
- <li id="imagify-pricing-step-2"><?php esc_html_e( 'Payment Info', 'imagify' ); ?></li>
282
- </ol>
283
-
284
  <div class="imagify-modal-views imagify-pre-checkout-view" id="imagify-pre-checkout-view" aria-hidden="false">
285
- <div class="imagify-modal-section section-gray">
286
- <p class="imagify-modal-title"><?php esc_html_e( 'We analysed your images', 'imagify' ); ?></p>
 
 
 
 
 
 
 
 
 
 
 
 
287
 
288
  <div class="imagify-modal-cols">
289
  <div class="imagify-col">
290
  <p>
291
  <span class="imagify-border-styled"><?php
292
- printf( esc_html__( 'You have %s images', 'imagify' ), '</span><span class="imagify-big-number">58000</span><span class="imagify-border-styled">' ); ?></span>
293
  </p>
294
  </div>
295
  <div class="imagify-col">
296
  <p class="imagify-iconed">
297
  <i class="dashicons dashicons-images-alt2" aria-hidden="true"></i>
298
- <?php printf( esc_html__( 'You actually have %s of images in your library.', 'imagify' ), '<strong class="imagify-dark">3 GB</strong>' ); ?>
299
  </p>
300
  <p class="imagify-iconed">
301
  <i class="dashicons dashicons-cloud" aria-hidden="true"></i>
302
- <?php printf( esc_html__( 'You upload around %s of images per month.', 'imagify' ), '<strong class="imagify-dark">353 MB</strong>' ); ?>
303
  </p>
304
  </div>
305
  </div>
306
- </div>
 
 
 
 
 
307
 
308
- <div class="imagify-modal-section">
309
- <p class="imagify-modal-title"><?php esc_html_e( 'We recommend you this plan', 'imagify' ); ?></p>
310
 
311
  <div class="imagify-offer-line imagify-offer-monthly imagify-offer-selected imagify-month-selected" data-offer='{"lite":{"id":3,"name":"Lite","data":1073741824,"dataf":"1 GB","imgs":5000,"prices":{"monthly":4.99,"yearly":4.16,"add":4}}}'>
312
  <div class="imagify-offer-header">
@@ -375,7 +388,7 @@ additionnal Gb', 'imagify' ), '<span class="imagify-price-add-data"></span>' );
375
  <div class="imagify-offer-content imagify-flex-table">
376
 
377
  <div class="imagify-col-checkbox">
378
- <input type="checkbox" name="imagify-offer" id="imagify-offer-custom" value="1Gb" class="imagify-checkbox medium">
379
  <label for="imagify-offer-custom">
380
  <span class="imagify-the-offer">
381
  <span class="imagify-offer-size">3 GB</span>
@@ -401,12 +414,31 @@ additionnal Gb', 'imagify' ), '<span class="imagify-price-add-data"></span>' );
401
  </div><!-- .imagify-offer-line -->
402
 
403
 
404
- <p class="imagify-submit-line">
405
- <button type="button" class="button button-secondary imagify-button-secondary" id="imagify-modal-checkout-btn">
406
- <i class="dashicons dashicons-cart" aria-hidden="true"></i>
407
- <?php esc_html_e( 'Checkout', 'imagify' ); ?>
408
- </button>
409
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
410
 
411
  <p class="imagify-footer-lines"><?php esc_html_e( 'Monthly plans comes with credits which is renewed every months. The billing happens automatically each month or year depending the billing period you choose.', 'imagify' ); ?></p>
412
  </div>
@@ -414,9 +446,7 @@ additionnal Gb', 'imagify' ), '<span class="imagify-price-add-data"></span>' );
414
 
415
  <?php
416
 
417
-
418
-
419
- /**
420
  *
421
  *
422
  * SECOND MODAL VIEW
@@ -424,11 +454,10 @@ additionnal Gb', 'imagify' ), '<span class="imagify-price-add-data"></span>' );
424
  *
425
  */
426
 
427
-
428
-
429
  ?>
430
 
431
  <div class="imagify-modal-views imagify-plans-selection-view" id="imagify-plans-selection-view" aria-hidden="true">
 
432
  <ul class="imagify-tabs" role="tablist">
433
  <li class="imagify-tab imagify-current">
434
  <a href="#imagify-pricing-tab-monthly" role="tab" aria-controls="imagify-pricing-tab-monthly" aria-selected="true">
@@ -526,7 +555,7 @@ additionnal Gb', 'imagify' ), '<span class="imagify-price-add-data"></span>' );
526
  <span class="imagify-dollars">$</span>
527
  <span class="imagify-number-block"></span>
528
  </span>
529
- <span class="imagify-recommend"><?php esc_html__( 'we recommend for you', 'imagify' ); ?></span>
530
  </div><!-- .imagify-col-price -->
531
 
532
  <div class="imagify-col-other-actions">
@@ -543,8 +572,6 @@ additionnal Gb', 'imagify' ), '<span class="imagify-price-add-data"></span>' );
543
 
544
  <?php
545
 
546
-
547
-
548
  /**
549
  *
550
  *
@@ -553,94 +580,18 @@ additionnal Gb', 'imagify' ), '<span class="imagify-price-add-data"></span>' );
553
  *
554
  */
555
 
556
-
557
-
558
  ?>
559
 
560
  <div class="imagify-modal-views imagify-payment-process-view" id="imagify-payment-process-view" aria-hidden="true">
561
- <div class="imagify-modal-section section-gray">
562
- <div class="imagify-cart imagify-month-selected">
563
- <p class="imagify-cart-label"><?php esc_html_e( 'Your order', 'imagify' ); ?></p>
564
-
565
- <div class="imagify-cart-list">
566
- <?php
567
- $emptied_item = '<div class="imagify-cart-emptied-item">
568
- <p>' . sprintf( esc_html__( '%scancel%sYou just removed %s', 'imagify' ), '<a href="#cancel" class="imagify-cancel-removing">', '</a>', '<span class="imagify-removed-name"></span>' ) . '</p>
569
- </div>';
570
- ?>
571
-
572
- <!-- JS stuff will complete the datas of list item -->
573
-
574
- <div class="imagify-cart-item imagify-cart-item-monthly imagify-flex-table imagify-align-top" data-offer="">
575
- <div class="imagify-cl-remove">
576
- <button type="button" class="imagify-remove-from-cart" title="<?php esc_html_e( 'Remove this item', 'imagify' ); ?>"><i class="dashicons dashicons-no-alt" aria-hidden="true"></i></button>
577
- </div>
578
- <div class="imagify-cl-name">
579
- <p class="imagify-cart-product-name"><span class="imagify-the-product-name"></span> Monthly plan</p>
580
- <p class="imagify-cart-suggestion"><a href="#step1" class="imagify-back-to-plans"><?php esc_html_e( 'Choose another plan', 'imagify' ); ?></a></p>
581
- </div>
582
- <div class="imagify-cl-description">
583
- <p><?php printf( esc_html__( '%s per month', 'imagify' ), '<span class="imagify-cart-offer-data"></span>') ?></p>
584
- </div>
585
- <div class="imagify-cl-price imagify-price-block">
586
- <span class="imagify-dollars">$</span>
587
- <span class="imagify-number-block">
588
- <span class="imagify-switch-my">
589
- </span>
590
- </span>
591
- </div>
592
- </div><!-- .imagify-cart-item -->
593
- <?php echo $emptied_item; ?>
594
-
595
- <div class="imagify-cart-item imagify-cart-item-onetime imagify-flex-table imagify-align-top" data-offer="">
596
- <div class="imagify-cl-remove">
597
- <button type="button" class="imagify-remove-from-cart" title="<?php esc_html_e( 'Remove this item', 'imagify' ); ?>"><i class="dashicons dashicons-no-alt" aria-hidden="true"></i></button>
598
- </div>
599
- <div class="imagify-cl-name">
600
- <p class="imagify-cart-product-name"><span class="imagify-the-product-name"></span> One Time Plan</p>
601
- <p class="imagify-cart-suggestion"><a href="#step1" class="imagify-back-to-plans"><?php esc_html_e( 'Choose another plan', 'imagify' ); ?></a></p>
602
- </div>
603
- <div class="imagify-cl-description">
604
- <p><?php printf( esc_html__( 'one time %s', 'imagify' ), '<span class="imagify-cart-offer-data"></span>') ?></p>
605
- </div>
606
- <div class="imagify-cl-price imagify-price-block">
607
- <span class="imagify-dollars">$</span>
608
- <span class="imagify-number-block">
609
- </span>
610
- </div>
611
- </div><!-- .imagify-cart-item -->
612
- <?php echo $emptied_item; ?>
613
- </div><!-- .imagify-cart-list -->
614
-
615
- <div class="imagify-cols imagify-cart-list-my-choice">
616
- <div class="imagify-col imagify-switch-my imagify-pr1">
617
- <p class="imagify-monthly"><?php printf( __( 'Switch to yearly subscription and <br><strong class="imagify-dark">save %s per year!</strong>', 'imagify' ), '<span class="imagify-nb-save-per-year"></span>' ); ?></p>
618
- <p class="imagify-yearly"><?php printf( __( 'Perfect!<br>You\'re <strong class="imagify-dark">saving %s per year!</strong>', 'imagify' ), '<span class="imagify-nb-save-per-year"></span>' ); ?></p>
619
- </div>
620
- <div class="imagify-col">
621
- <div class="imagify-inline-options imagify-small-options imagify-radio-line imagify-cart-list-switcher">
622
- <input type="radio" checked="checked" name="plan-checkout" value="monthly" id="imagify-checkout-monthly">
623
- <label for="imagify-checkout-monthly"><?php esc_html_e('Monthly', 'imagify' ); ?></label>
624
-
625
- <input type="radio" name="plan-checkout" value="yearly" id="imagify-checkout-yearly">
626
- <label for="imagify-checkout-yearly"><?php esc_html_e('Yearly', 'imagify' ); ?><span class="imagify-2-free imagify-b-bottom"><?php esc_html_e('2 months free', 'imagify' ); ?></span></label>
627
- </div>
628
- </div>
629
- </div>
630
-
631
- </div><!-- .imagify-cart.imagify-month-selected -->
632
- </div><!-- .imagify-section-gray -->
633
 
634
  <?php $imagify_api_key = get_imagify_option( 'api_key', false ); ?>
635
 
636
- <iframe data-imagify-api="<?php echo $imagify_api_key; ?>" id="imagify-payment-iframe" src="" frameborder="0"></iframe>
637
 
638
  </div><!-- .imagify-modal-views -->
639
 
640
-
641
  <?php
642
 
643
-
644
  /**
645
  *
646
  *
@@ -648,7 +599,6 @@ additionnal Gb', 'imagify' ), '<span class="imagify-price-add-data"></span>' );
648
  *
649
  *
650
  */
651
-
652
 
653
  ?>
654
 
@@ -661,6 +611,7 @@ additionnal Gb', 'imagify' ), '<span class="imagify-price-add-data"></span>' );
661
  <i aria-hidden="true" class="dashicons dashicons-no-alt"></i>
662
  <span class="screen-reader-text"><?php esc_html_e( 'Close', 'imagify' ); ?></span>
663
  </button>
 
664
  </div><!-- .imagify-modal-main -->
665
 
666
  <div class="imagify-modal-sidebar">
@@ -703,7 +654,7 @@ additionnal Gb', 'imagify' ), '<span class="imagify-price-add-data"></span>' );
703
  <p><?php esc_html_e( 'This is secure 128-bits SSL encrypted payment', 'imagify' ); ?></p>
704
  </div>
705
  </div>
706
- </div>
707
 
708
  <div class="imagify-modal-loader"></div>
709
  </div><!-- .imagify-modal-content-->
226
  * @return string HTML
227
  *
228
  * @since 1.5
229
+ * @author Geoffrey
230
  *
231
  * @todo add only for no-payable users?
232
  */
233
  function get_imagify_new_to_imagify() {
234
+ if ( apply_filters( 'imagify_show_new_to_imagify', true ) && imagify_valid_key() ) {
235
  return '
236
  <div class="imagify-section imagify-section-positive">
237
  <div class="imagify-start imagify-mr2">
256
  * @return string the markuped price
257
  *
258
  * @since 1.5
259
+ * @author Geoffrey
260
  */
261
  function get_imagify_price_table_format( $value ) {
262
  $v = explode( '.', (string) $value );
269
  * @return string HTML code for payement modal
270
  *
271
  * @since 1.5
272
+ * @author Geoffrey
273
+ *
274
+ * @todo Make first offers dynamic thanks to consumption estimation
275
  */
276
  function imagify_payment_modal() {
277
  ?>
278
+ <div id="imagify-pricing-modal" class="imagify-modal imagify-payment-modal" aria-hidden="false" role="dialog">
279
  <div class="imagify-modal-content">
280
  <div class="imagify-modal-main">
 
 
 
 
 
281
  <div class="imagify-modal-views imagify-pre-checkout-view" id="imagify-pre-checkout-view" aria-hidden="false">
282
+
283
+ <?php
284
+ $attachments_number = imagify_count_attachments();
285
+ $total_size = get_imagify_option( 'total_size_images_library', false );
286
+ $per_month = get_imagify_option( 'average_size_images_per_month', false );
287
+ ?>
288
+
289
+ <div class="imagify-modal-section section-gray imagify-estimation-block<?php echo $total_size === false ? ' imagify-analyzing' : ''; ?>">
290
+ <p class="imagify-modal-title">
291
+ <span class="imagify-numbers-calc"><?php esc_html_e( 'We analysed your images', 'imagify' ); ?></span>
292
+ <span class="imagify-numbers-notcalc"><?php esc_html_e( 'We are analysing your images', 'imagify' ); ?></span>
293
+ </p>
294
+
295
+ <img src="<?php echo IMAGIFY_ASSETS_IMG_URL; ?>loader-balls.svg" width="77" height="48" alt="<?php esc_attr_e( 'Analyzing', 'imagify' ); ?>" class="imagify-loader">
296
 
297
  <div class="imagify-modal-cols">
298
  <div class="imagify-col">
299
  <p>
300
  <span class="imagify-border-styled"><?php
301
+ printf( _n( 'You have %s image', 'You have %s images', $attachments_number, 'imagify' ), '</span><span class="imagify-big-number">' . $attachments_number . '</span><span class="imagify-border-styled">' ); ?></span>
302
  </p>
303
  </div>
304
  <div class="imagify-col">
305
  <p class="imagify-iconed">
306
  <i class="dashicons dashicons-images-alt2" aria-hidden="true"></i>
307
+ <?php printf( esc_html__( 'You currently have %s of images in your library.', 'imagify' ), '<strong class="imagify-dark total-library-size">' . ( isset( $total_size['human'] ) ? $total_size['human'] : $total_size ) . '</strong>' ); ?>
308
  </p>
309
  <p class="imagify-iconed">
310
  <i class="dashicons dashicons-cloud" aria-hidden="true"></i>
311
+ <?php printf( esc_html__( 'You upload around %s of images per month.', 'imagify' ), '<strong class="imagify-dark average-month-size">' . ( isset( $per_month['human'] ) ? $per_month['human'] : $per_month ) . '</strong>' ); ?>
312
  </p>
313
  </div>
314
  </div>
315
+ </div><!-- .imagify-modal-section -->
316
+
317
+ <div class="imagify-modal-section imagify-pre-checkout-offers">
318
+ <p class="imagify-modal-title">
319
+ <span class="imagify-not-enough-title"><?php esc_html_e( 'We recommend you this plan', 'imagify' ); ?></span>
320
+ <span class="imagify-enough-title"><?php esc_html_e( 'The free plan is enough to optimize your images', 'imagify' ); ?></span>
321
 
322
+ </p>
 
323
 
324
  <div class="imagify-offer-line imagify-offer-monthly imagify-offer-selected imagify-month-selected" data-offer='{"lite":{"id":3,"name":"Lite","data":1073741824,"dataf":"1 GB","imgs":5000,"prices":{"monthly":4.99,"yearly":4.16,"add":4}}}'>
325
  <div class="imagify-offer-header">
388
  <div class="imagify-offer-content imagify-flex-table">
389
 
390
  <div class="imagify-col-checkbox">
391
+ <input type="checkbox" name="imagify-offer" id="imagify-offer-custom" value="1Gb" checked="checked" class="imagify-checkbox medium">
392
  <label for="imagify-offer-custom">
393
  <span class="imagify-the-offer">
394
  <span class="imagify-offer-size">3 GB</span>
414
  </div><!-- .imagify-offer-line -->
415
 
416
 
417
+ <div class="imagify-submit-line">
418
+ <div class="imagify-coupon-section">
419
+ <p class="imagify-coupon-text">
420
+
421
+ <img src="<?php echo IMAGIFY_ASSETS_IMG_URL; ?>loader-balls.svg" width="60" height="36" alt="<?php esc_attr_e( 'Checking Coupon', 'imagify' ); ?>" class="imagify-coupon-loader">
422
+
423
+ <label for="imagify-coupon-code"><?php _e( 'If you have a <strong>coupon code</strong><br> use it there:', 'imagify' ); ?></label>
424
+ </p>
425
+ <p class="imagify-coupon-input">
426
+ <input type="text" class="imagify-coupon-code" name="imagify-coupon-code" id="imagify-coupon-code" value="" placeholder="<?php _e( 'Coupon Code', 'imagify' ) ?>" autocomplete="off">
427
+ <button type="button" class="button button-secondary imagify-button-secondary" id="imagify-coupon-validate"><?php _e( 'OK' ); ?></button>
428
+ </p>
429
+ </div>
430
+ <div class="imagify-submit-section">
431
+ <button type="button" class="button button-secondary imagify-button-secondary" id="imagify-modal-checkout-btn">
432
+ <i class="dashicons dashicons-cart" aria-hidden="true"></i>
433
+ <?php
434
+ _e( 'Checkout', 'imagify' );
435
+ /*
436
+ printf( esc_html__( 'Pay %s', 'imagify' ), '$<span class="imagify-global-amount">0.00</span>');
437
+ */
438
+ ?>
439
+ </button>
440
+ </div>
441
+ </div>
442
 
443
  <p class="imagify-footer-lines"><?php esc_html_e( 'Monthly plans comes with credits which is renewed every months. The billing happens automatically each month or year depending the billing period you choose.', 'imagify' ); ?></p>
444
  </div>
446
 
447
  <?php
448
 
449
+ /**
 
 
450
  *
451
  *
452
  * SECOND MODAL VIEW
454
  *
455
  */
456
 
 
 
457
  ?>
458
 
459
  <div class="imagify-modal-views imagify-plans-selection-view" id="imagify-plans-selection-view" aria-hidden="true">
460
+ <p class="imagify-modal-title"><?php _e( 'Choose a plan', 'imagify' ); ?></p>
461
  <ul class="imagify-tabs" role="tablist">
462
  <li class="imagify-tab imagify-current">
463
  <a href="#imagify-pricing-tab-monthly" role="tab" aria-controls="imagify-pricing-tab-monthly" aria-selected="true">
555
  <span class="imagify-dollars">$</span>
556
  <span class="imagify-number-block"></span>
557
  </span>
558
+ <span class="imagify-recommend"><?php esc_html_e( 'we recommend for you', 'imagify' ); ?></span>
559
  </div><!-- .imagify-col-price -->
560
 
561
  <div class="imagify-col-other-actions">
572
 
573
  <?php
574
 
 
 
575
  /**
576
  *
577
  *
580
  *
581
  */
582
 
 
 
583
  ?>
584
 
585
  <div class="imagify-modal-views imagify-payment-process-view" id="imagify-payment-process-view" aria-hidden="true">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
586
 
587
  <?php $imagify_api_key = get_imagify_option( 'api_key', false ); ?>
588
 
589
+ <iframe data-imagify-api="<?php echo $imagify_api_key; ?>" id="imagify-payment-iframe" data-src="<?php echo IMAGIFY_PAYMENT_URL; ?>" name="imagify-payment-iframe" src="" frameborder="0"></iframe>
590
 
591
  </div><!-- .imagify-modal-views -->
592
 
 
593
  <?php
594
 
 
595
  /**
596
  *
597
  *
599
  *
600
  *
601
  */
 
602
 
603
  ?>
604
 
611
  <i aria-hidden="true" class="dashicons dashicons-no-alt"></i>
612
  <span class="screen-reader-text"><?php esc_html_e( 'Close', 'imagify' ); ?></span>
613
  </button>
614
+
615
  </div><!-- .imagify-modal-main -->
616
 
617
  <div class="imagify-modal-sidebar">
654
  <p><?php esc_html_e( 'This is secure 128-bits SSL encrypted payment', 'imagify' ); ?></p>
655
  </div>
656
  </div>
657
+ </div><!-- .imagify-modal-sidebar -->
658
 
659
  <div class="imagify-modal-loader"></div>
660
  </div><!-- .imagify-modal-content-->
inc/functions/attachments.php CHANGED
@@ -102,7 +102,7 @@ function get_imagify_attachment_url( $filename ) {
102
  * @return array Data for all currently-registered thumbnail sizes.
103
  */
104
  function get_imagify_thumbnail_sizes() {
105
- global $_wp_additional_image_sizes;
106
 
107
  $sizes = array();
108
  $is_wp44 = version_compare( $wp_version, '4.4-beta3' ) >= 0;
102
  * @return array Data for all currently-registered thumbnail sizes.
103
  */
104
  function get_imagify_thumbnail_sizes() {
105
+ global $_wp_additional_image_sizes, $wp_version;
106
 
107
  $sizes = array();
108
  $is_wp44 = version_compare( $wp_version, '4.4-beta3' ) >= 0;
inc/functions/i18n.php CHANGED
@@ -31,7 +31,10 @@ function get_imagify_localize_script_translations( $context ) {
31
  'ApiKeyCheckSuccessTitle' => __( 'Congratulations!', 'imagify' ),
32
  'ApiKeyCheckSuccessText' => __( 'Your API key is valid. You can now configure the Imagify settings to optimize your images.', 'imagify' ),
33
  'ValidApiKeyText' => __( 'Your API key is valid.', 'imagify' ),
34
- 'swalCancel' => __( 'Cancel' )
 
 
 
35
  )
36
  );
37
  break;
31
  'ApiKeyCheckSuccessTitle' => __( 'Congratulations!', 'imagify' ),
32
  'ApiKeyCheckSuccessText' => __( 'Your API key is valid. You can now configure the Imagify settings to optimize your images.', 'imagify' ),
33
  'ValidApiKeyText' => __( 'Your API key is valid.', 'imagify' ),
34
+ 'swalCancel' => __( 'Cancel' ),
35
+ 'errorPriceAPI' => __( 'Something went wrong with getting our updated offers. Please retry later.', 'imagify' ),
36
+ 'errorCouponAPI' => __( 'Error with checking this coupon.', 'imagify' ),
37
+ 'successCouponAPI' => sprintf( _x( '%s off with %s', 'coupon validated', 'imagify' ), '<span class="imagify-coupon-offer"></span>', '<strong class="imagify-coupon-word"></strong>' )
38
  )
39
  );
40
  break;
inc/functions/options.php CHANGED
@@ -42,6 +42,23 @@ function get_imagify_option( $option, $default = false ) {
42
  return apply_filters( 'get_imagify_option_' . $option, $value, $default );
43
  }
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  /**
46
  * Determine if the Imagify API key is valid
47
  *
42
  return apply_filters( 'get_imagify_option_' . $option, $value, $default );
43
  }
44
 
45
+ /**
46
+ * Update an Imagify option.
47
+ *
48
+ * @since 1.6
49
+ * @author Remy Perona
50
+ *
51
+ * @param string $key The option name
52
+ * @param string $value The value of the option
53
+ * @return void
54
+ */
55
+ function update_imagify_option( $key, $value ) {
56
+ $options = get_option( IMAGIFY_SETTINGS_SLUG );
57
+ $options[ $key ] = $value;
58
+
59
+ update_option( IMAGIFY_SETTINGS_SLUG, $options );
60
+ }
61
+
62
  /**
63
  * Determine if the Imagify API key is valid
64
  *
languages/imagify-fr_FR.mo CHANGED
Binary file
languages/imagify-fr_FR.po CHANGED
@@ -1,15 +1,15 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Imagify\n"
4
- "POT-Creation-Date: 2016-09-23 11:27-0500\n"
5
- "PO-Revision-Date: 2016-09-23 14:54-0500\n"
6
  "Last-Translator: Rémy Perona <remperona@gmail.com>\n"
7
  "Language-Team: \n"
8
  "Language: fr_FR\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.6.4\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "X-Poedit-WPHeader: imagify.php\n"
15
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -17,24 +17,22 @@ msgstr ""
17
  "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
18
  "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
19
  "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
20
- "X-Poedit-SearchPathExcluded-0: *.js\n"
21
  "X-Poedit-SearchPath-0: .\n"
 
22
 
23
- #: inc/3rd-party/nextgen-gallery/inc/admin/enqueue.php:20
24
- #: inc/admin/ajax.php:123 inc/admin/meta-boxes.php:34
25
- #: inc/functions/admin-ui.php:215 inc/functions/i18n.php:49
26
- #: inc/functions/i18n.php:64
27
  msgid "Optimize"
28
  msgstr "Optimiser"
29
 
30
  #: inc/3rd-party/nextgen-gallery/inc/admin/enqueue.php:21
31
- #: inc/functions/admin-ui.php:80 inc/functions/i18n.php:50
32
  msgid "Restore Original"
33
  msgstr "Restaurer l’original"
34
 
35
  #: inc/3rd-party/nextgen-gallery/inc/admin/menu.php:16 inc/admin/menu.php:24
36
- #: inc/admin/plugins.php:13 inc/admin/ui/bulk.php:81
37
- #: inc/common/admin-bar.php:39
38
  msgid "Bulk Optimization"
39
  msgstr "Optimisation en masse"
40
 
@@ -55,20 +53,18 @@ msgid ""
55
  "You have almost used all your credit.%sDon't forget to upgrade your "
56
  "subscription to continue optimizing your images."
57
  msgstr ""
58
- "Vous avez bientôt utilisé tout votre crédit.%sN’oubliez pas de mettre à "
59
- "niveau votre abonnement pour continuer à optimiser vos images."
60
 
61
  #: inc/admin/ajax.php:509 inc/admin/ui/bulk.php:23
62
  msgid "View My Subscription"
63
  msgstr "Voir mon abonnement"
64
 
65
- #: inc/admin/ajax.php:517 inc/admin/ui/notices.php:258
66
- #: inc/functions/i18n.php:84
67
  msgid "Oops, It's Over!"
68
  msgstr "Oups, c’est fini !"
69
 
70
- #: inc/admin/ajax.php:518 inc/admin/ui/notices.php:260
71
- #: inc/functions/i18n.php:101
72
  #, php-format
73
  msgid ""
74
  "You have consumed all your credit for this month. You will have <strong>%s "
@@ -98,10 +94,11 @@ msgstr "Il vous reste %s de crédit"
98
  msgid "View my subscription"
99
  msgstr "Voir mon abonnement"
100
 
101
- #: inc/admin/media.php:63 inc/functions/i18n.php:60
102
  msgid "Compare Original VS Optimized"
103
  msgstr "Comparer Originale VS Optimisée"
104
 
 
105
  #: inc/admin/meta-boxes.php:17 inc/admin/meta-boxes.php:24
106
  #: inc/admin/upload.php:12
107
  msgid "Imagify"
@@ -115,11 +112,11 @@ msgstr "Clé API invalide"
115
  msgid "Check your Settings"
116
  msgstr "Vérifiez vos réglages"
117
 
118
- #: inc/admin/options.php:119
119
  msgid "Cheatin&#8217; uh?"
120
  msgstr "Cheatin&#8217; uh?"
121
 
122
- #: inc/admin/options.php:127
123
  msgid "<strong>ERROR</strong>: options page not found."
124
  msgstr "<strong>Erreur</strong> : page d’options introuvable."
125
 
@@ -181,48 +178,45 @@ msgstr ""
181
  #: inc/admin/ui/bulk.php:149
182
  #, php-format
183
  msgid ""
184
- "If you have more than %s images, you will need to launch the bulk "
185
- "optimization several times."
186
  msgstr ""
187
  "Si vous avez plus de %s images, vous devrez lancer l’optimisation en masse "
188
  "plusieurs fois."
189
 
190
  #: inc/admin/ui/bulk.php:153
191
  msgid ""
192
- "You must keep this page open while the bulk optimizaton is processing. If "
193
- "you leave you can come back to continue where it left off."
194
  msgstr ""
195
  "Vous devez garder cette page ouverte pendant que l’optimisation en masse est "
196
- "en cours. Si vous la quittez, vous pouvez revenir pour continuer là où vous "
197
- "en étiez."
198
 
199
  #: inc/admin/ui/bulk.php:164
200
  msgid "Select Your Compression Level"
201
  msgstr "Sélectionnez votre niveau de compression"
202
 
203
  #: inc/admin/ui/bulk.php:166 inc/admin/ui/bulk.php:192
204
- #: inc/admin/ui/options.php:136 inc/admin/ui/options.php:365
205
- #: inc/admin/ui/options.php:404 inc/admin/ui/options.php:421
206
- #: inc/admin/ui/options.php:481
207
- #: inc/classes/abstracts/abstract-attachment.php:114
208
  #: inc/functions/admin-ui.php:153
209
  msgid "Ultra"
210
  msgstr "Ultra"
211
 
212
  #: inc/admin/ui/bulk.php:169 inc/admin/ui/bulk.php:187
213
- #: inc/admin/ui/options.php:131 inc/admin/ui/options.php:352
214
- #: inc/admin/ui/options.php:403 inc/admin/ui/options.php:416
215
- #: inc/admin/ui/options.php:460
216
- #: inc/classes/abstracts/abstract-attachment.php:117
217
  #: inc/functions/admin-ui.php:159
218
  msgid "Aggressive"
219
  msgstr "Agressif"
220
 
221
  #: inc/admin/ui/bulk.php:172 inc/admin/ui/bulk.php:182
222
- #: inc/admin/ui/options.php:126 inc/admin/ui/options.php:339
223
- #: inc/admin/ui/options.php:402 inc/admin/ui/options.php:411
224
- #: inc/admin/ui/options.php:440
225
- #: inc/classes/abstracts/abstract-attachment.php:120
226
  #: inc/functions/admin-ui.php:165
227
  msgid "Normal"
228
  msgstr "Normal"
@@ -278,12 +272,12 @@ msgstr "Nom du fichier"
278
  msgid "Status"
279
  msgstr "Statut"
280
 
281
- #: inc/admin/ui/bulk.php:265 inc/admin/ui/options.php:401
282
- #: inc/admin/ui/options.php:406 inc/admin/ui/options.php:430
283
  msgid "Original"
284
  msgstr "Original"
285
 
286
- #: inc/admin/ui/bulk.php:266 inc/admin/upload.php:41 inc/functions/i18n.php:80
287
  msgid "Optimized"
288
  msgstr "Optimisées"
289
 
@@ -338,11 +332,11 @@ msgstr "Créer un compte"
338
 
339
  #: inc/admin/ui/notices.php:34
340
  msgid ""
341
- "Don't have an Imagify account yet? Optimize your images by creating an "
342
- "account in a few seconds!"
343
  msgstr ""
344
- "Vous n’avez pas encore de compte Imagify&nbsp;? Optimiser vos images en "
345
- "créant un compte en quelques secondes&nbsp;!"
346
 
347
  #: inc/admin/ui/notices.php:37
348
  msgid "Sign up, It's FREE!"
@@ -370,8 +364,7 @@ msgid "Configure it"
370
  msgstr "Configurer le"
371
 
372
  #: inc/admin/ui/notices.php:54
373
- msgid ""
374
- "It’s almost done! You have just to configure your optimization settings."
375
  msgstr ""
376
  "C’est bientôt terminé&nbsp;! Vous avez juste à configurer vos paramètres "
377
  "d'optimisation."
@@ -381,16 +374,15 @@ msgid "Go to Settings"
381
  msgstr "Aller aux réglages"
382
 
383
  #: inc/admin/ui/notices.php:87 inc/admin/ui/options.php:97
384
- #: inc/functions/i18n.php:78
385
  msgid "Your API key isn't valid!"
386
  msgstr "Votre clé API n’est pas valide&nbsp;!"
387
 
388
  #: inc/admin/ui/notices.php:90
389
  #, php-format
390
  msgid ""
391
- "Go to your Imagify account page to get your API Key and specify it on "
392
- "%1$syour settings%3$s or %2$screate an account for free%3$s if you don't "
393
- "have one yet."
394
  msgstr ""
395
  "Allez sur votre page de compte Imagify pour récupérer votre clé API et la "
396
  "renseigner dans %1$svos réglages%3$s ou %2$scréez un compte gratuitement%3$s "
@@ -426,8 +418,8 @@ msgid ""
426
  "To optimize your images, you have to put the following code in your <code>wp-"
427
  "config.php</code> file so that it works correctly."
428
  msgstr ""
429
- "Pour optimiser vos images, vous devez insérer le code suivant dans le "
430
- "fichier <code>wp-config.php</code> afin que cela fonctionne correctement."
431
 
432
  #: inc/admin/ui/notices.php:182
433
  msgid "Click on the field and press Ctrl-A to select all."
@@ -445,12 +437,12 @@ msgstr "Utilisez la vue liste pour optimiser vos images avec Imagify."
445
  msgid "Switch to the List View"
446
  msgstr "Basculer en vue liste"
447
 
448
- #: inc/admin/ui/notices.php:260 inc/functions/i18n.php:98
449
- #: inc/functions/i18n.php:101
450
  #, php-format
451
  msgid ""
452
- "To continue to optimize your images, log in to your Imagify account to %sbuy "
453
- "a pack or subscribe to a plan%s."
454
  msgstr ""
455
  "Pour continuer à optimiser vos images, connectez-vous à votre compte Imagify "
456
  "pour %sacheter un pack ou souscrire à un plan%s."
@@ -474,8 +466,8 @@ msgid ""
474
  "%1$sCongratulations%2$s, you have optimized %1$s%3$d images%2$s and improved "
475
  "your website's speed by reducing your images size."
476
  msgstr ""
477
- "%1$sFélicitations%2$s ! Vous avez optimisé %1$s%3$d images%2$s et améliorez "
478
- "le temps de chargement de votre site en réduisant le poids de vos images."
479
 
480
  #: inc/admin/ui/notices.php:365 inc/admin/ui/options.php:59
481
  #, php-format
@@ -551,10 +543,10 @@ msgid ""
551
  "after resizing. The new width should not be less than your largest thumbnail "
552
  "width, which is actually %spx."
553
  msgstr ""
554
- "Cette option est recommendée pour réduire les images trop grandes. Vous "
555
- "pouvez économiser jusqu'à 80%% du poids après le redimensionnement. La "
556
- "nouvelle largeur ne doit pas être inférieure à la plus grande largeur de vos "
557
- "miniatures qui est actuellement de %spx."
558
 
559
  #: inc/admin/ui/options.php:209 inc/admin/ui/options.php:212
560
  msgid "EXIF Data"
@@ -578,9 +570,9 @@ msgid ""
578
  "If you are a photographer, you may be interested in this option if you are "
579
  "displaying on your pages some info like the model of your camera."
580
  msgstr ""
581
- "Si vous êtes un photographe, vous pourriez être intéressé par cette option "
582
- "si vous affichez quelques infos comme votre le modèle de votre appareil "
583
- "photo sur vos pages."
584
 
585
  #: inc/admin/ui/options.php:228
586
  msgid "Files optimization"
@@ -605,36 +597,36 @@ msgstr ""
605
  "Pour rappel, chaque format d’image additionnel affectera votre quota d’usage "
606
  "mensuel d’Imagify."
607
 
608
- #: inc/admin/ui/options.php:289
609
  msgid "Display options"
610
  msgstr "Options d’affichage"
611
 
612
- #: inc/admin/ui/options.php:294 inc/admin/ui/options.php:299
613
  msgid "Show Admin Bar menu"
614
  msgstr "Afficher le menu dans la barre d'administration"
615
 
616
- #: inc/admin/ui/options.php:300
617
  msgid "I want this awesome quick access menu on my admin bar."
618
  msgstr "Je veux ce menu d'accès rapide génial sur ma barre d'administration."
619
 
620
- #: inc/admin/ui/options.php:319
621
  msgid "Save &amp; Go to Bulk Optimizer"
622
  msgstr "Enregistrer &amp; Aller à l’optimisation en masse"
623
 
624
- #: inc/admin/ui/options.php:328
625
  #, php-format
626
  msgid ""
627
- "Once your settings saved, optimize all your images by using the %sImagify "
628
- "Bulk Optimization%s feature."
629
  msgstr ""
630
- "Une fois vos paramètres enregistrés, optimisez toutes vos images en "
631
- "utilisant la fonctionnalité d’%soptimisation en masse%s d’Imagify."
632
 
633
- #: inc/admin/ui/options.php:336
634
  msgid "You can choose three levels of compression"
635
  msgstr "Vous pouvez choisir entre trois niveaux de compression"
636
 
637
- #: inc/admin/ui/options.php:341
638
  msgid ""
639
  "This mode provides lossless optimization, your images will be optimized "
640
  "without any visible change."
@@ -642,51 +634,49 @@ msgstr ""
642
  "Ce niveau permet d'optimiser sans perte, vos images seront optimisées sans "
643
  "aucun changement visible."
644
 
645
- #: inc/admin/ui/options.php:344
646
  msgid ""
647
  "If you want the perfect quality for your images, we recommend you that mode."
648
  msgstr ""
649
- "Si vous souhaitez des images d’une qualité parfaite, nous vous recommandons "
650
- "ce niveau."
651
 
652
- #: inc/admin/ui/options.php:347
653
- msgid ""
654
- "Note: the file size reduction will be less, compared to aggressive mode."
655
  msgstr ""
656
  "Remarque: la réduction du poids des images sera moins importante par rapport "
657
  "au mode agressif."
658
 
659
- #: inc/admin/ui/options.php:354
660
  msgid ""
661
- "This mode provides perfect optimization of your images without any "
662
- "significant quality loss."
663
  msgstr ""
664
  "Ce niveau permet une optimisation idéale de vos images sans perte de qualité "
665
  "notable."
666
 
667
- #: inc/admin/ui/options.php:357
668
  msgid ""
669
  "This will provide a drastic savings on the initial weight, with a small "
670
  "reduction in image quality. Most of the time it's not even noticeable."
671
  msgstr ""
672
- "Cela permettra une réduction importante du poids initial avec une légère "
673
- "perte de la qualité d'image qui n’est pas perceptible à l’oeil humain."
674
 
675
- #: inc/admin/ui/options.php:360
676
  msgid "If you want the maximum weight reduction, we recommend using this mode."
677
  msgstr ""
678
  "Si vous souhaitez une réduction du poids plus performante, nous vous "
679
  "recommandons ce niveau."
680
 
681
- #: inc/admin/ui/options.php:367
682
  msgid ""
683
- "This mode will apply all available optimizations for maximum image "
684
- "compression."
685
  msgstr ""
686
- "Ce niveau appliquera toutes les optimisations disponibles pour une "
687
- "compression des images maximale."
688
 
689
- #: inc/admin/ui/options.php:370
690
  msgid ""
691
  "This will provide a huge savings on the initial weight. Sometimes the image "
692
  "quality could be degraded a little."
@@ -694,7 +684,7 @@ msgstr ""
694
  "Cela permettra de considérablement réduire le poids initial. Parfois, la "
695
  "qualité de l’image pourra être légèrement dégradée."
696
 
697
- #: inc/admin/ui/options.php:373
698
  msgid ""
699
  "If you want the maximum weight reduction, and you agree to lose some quality "
700
  "on the images we recommend using this mode."
@@ -702,46 +692,46 @@ msgstr ""
702
  "Si vous souhaitez une réduction du poids optimale et que vous tolérez une "
703
  "baisse de qualité sur vos images, nous vous recommandons ce niveau."
704
 
705
- #: inc/admin/ui/options.php:380 inc/admin/ui/options.php:502
706
- #: inc/functions/admin-ui.php:662 inc/functions/i18n.php:61
707
  msgid "Close"
708
  msgstr "Fermer"
709
 
710
- #: inc/admin/ui/options.php:392
711
  #, php-format
712
  msgid "I want to compare%s and%s"
713
  msgstr "Je veux comparer%s et%s"
714
 
715
- #: inc/admin/ui/options.php:409
716
  #, php-format
717
  msgid "Original photography about %s"
718
  msgstr "Photographie originale, environ %s"
719
 
720
- #: inc/admin/ui/options.php:414 inc/admin/ui/options.php:419
721
- #: inc/admin/ui/options.php:424
722
  #, php-format
723
  msgid "Optimized photography about %s"
724
  msgstr "Photographie optimisée, environ %s"
725
 
726
- #: inc/admin/ui/options.php:429 inc/admin/ui/options.php:439
727
- #: inc/admin/ui/options.php:459 inc/admin/ui/options.php:480
728
  #: inc/functions/admin-ui.php:59
729
  msgid "Level:"
730
  msgstr "Niveau&nbsp;:"
731
 
732
- #: inc/admin/ui/options.php:433 inc/admin/ui/options.php:443
733
- #: inc/admin/ui/options.php:463 inc/admin/ui/options.php:484
734
- #: inc/functions/i18n.php:62
735
  msgid "File Size:"
736
  msgstr "Poids du fichier:"
737
 
738
- #: inc/admin/ui/options.php:447 inc/admin/ui/options.php:467
739
- #: inc/admin/ui/options.php:488 inc/functions/admin-ui.php:45
740
- #: inc/functions/i18n.php:63
741
  msgid "Original Saving:"
742
  msgstr "Gain sur l’original&nbsp;:"
743
 
744
- #: inc/admin/upload.php:42 inc/functions/i18n.php:81
745
  msgid "Unoptimized"
746
  msgstr "Non optimisées"
747
 
@@ -762,8 +752,8 @@ msgid ""
762
  "This size isn't authorized to be optimized. Update your Imagify settings if "
763
  "you want to optimize it."
764
  msgstr ""
765
- "Cette taille n’est pas autorisée à être optimisée. Mettez à jour les "
766
- "réglages d’Imagify si vous souhaitez l’optimiser."
767
 
768
  #: inc/common/admin-bar.php:48
769
  #, php-format
@@ -774,6 +764,10 @@ msgstr "Notez Imagify sur %s"
774
  msgid "Loading..."
775
  msgstr "Chargement…"
776
 
 
 
 
 
777
  #: inc/functions/admin-ui.php:36
778
  msgid "New Filesize:"
779
  msgstr "Nouveau poids&nbsp;:"
@@ -833,72 +827,83 @@ msgstr ""
833
  "Laissez-nous vous aider en analysant vos images existantes et déterminer le "
834
  "meilleur plan pour vous"
835
 
836
- #: inc/functions/admin-ui.php:280
837
  msgid "Choose Plan"
838
  msgstr "Choisissez un plan"
839
 
840
- #: inc/functions/admin-ui.php:281
841
  msgid "Payment Info"
842
  msgstr "Information de paiement"
843
 
844
- #: inc/functions/admin-ui.php:286
845
  msgid "We analysed your images"
846
  msgstr "Nous avons analysé vos images"
847
 
848
- #: inc/functions/admin-ui.php:292
 
 
 
 
 
 
 
 
849
  #, php-format
850
- msgid "You have %s images"
851
- msgstr "Vous avez %s images"
 
 
852
 
853
- #: inc/functions/admin-ui.php:298
854
  #, php-format
855
- msgid "You actually have %s of images in your library."
856
- msgstr "Vous avez actuellement %s d’images dans votre bibliothèque."
857
 
858
- #: inc/functions/admin-ui.php:302
859
  #, php-format
860
  msgid "You upload around %s of images per month."
861
  msgstr "Vous chargez environ %s d’images par mois."
862
 
863
- #: inc/functions/admin-ui.php:309
864
  msgid "We recommend you this plan"
865
  msgstr "Nous vous recommandons ce plan"
866
 
867
- #: inc/functions/admin-ui.php:314
 
 
 
 
868
  msgid "Subscribe a monthly plan"
869
  msgstr "Souscrire un plan mensuel"
870
 
871
- #: inc/functions/admin-ui.php:315
872
  msgid "Subscribe a yearly plan"
873
  msgstr "Souscrire un plan annuel"
874
 
875
- #: inc/functions/admin-ui.php:319 inc/functions/admin-ui.php:455
876
- #: inc/functions/admin-ui.php:623
877
  msgid "Monthly"
878
  msgstr "Mensuel"
879
 
880
- #: inc/functions/admin-ui.php:322 inc/functions/admin-ui.php:458
881
- #: inc/functions/admin-ui.php:626
882
  msgid "Yearly"
883
  msgstr "Annuel"
884
 
885
- #: inc/functions/admin-ui.php:322 inc/functions/admin-ui.php:458
886
- #: inc/functions/admin-ui.php:626
887
  msgid "2 months free"
888
  msgstr "2 mois gratuits"
889
 
890
- #: inc/functions/admin-ui.php:333 inc/functions/admin-ui.php:352
891
- #: inc/functions/admin-ui.php:468 inc/functions/admin-ui.php:478
892
  msgid "/month"
893
  msgstr "/mois"
894
 
895
- #: inc/functions/admin-ui.php:335 inc/functions/admin-ui.php:383
896
- #: inc/functions/admin-ui.php:470 inc/functions/admin-ui.php:521
897
  #, php-format
898
  msgid "approx: %s images"
899
  msgstr "approx&nbsp;: %s images"
900
 
901
- #: inc/functions/admin-ui.php:356 inc/functions/admin-ui.php:484
902
  #, php-format
903
  msgid ""
904
  "%s per<br>\n"
@@ -907,20 +912,32 @@ msgstr ""
907
  "%s par<br>\n"
908
  "Go additionnel"
909
 
910
- #: inc/functions/admin-ui.php:361 inc/functions/admin-ui.php:396
911
- #: inc/functions/admin-ui.php:580 inc/functions/admin-ui.php:601
912
  msgid "Choose another plan"
913
  msgstr "Choisir un autre plan"
914
 
915
- #: inc/functions/admin-ui.php:371
916
  msgid "Optimize the images you already have, buy a one-time plan"
917
  msgstr "Optimisez les images que vous avez déjà, achetez un plan « One Time » "
918
 
919
- #: inc/functions/admin-ui.php:407
920
- msgid "Checkout"
921
- msgstr "Commander"
 
 
 
 
 
 
 
 
922
 
923
- #: inc/functions/admin-ui.php:411
 
 
 
 
 
924
  msgid ""
925
  "Monthly plans comes with credits which is renewed every months. The billing "
926
  "happens automatically each month or year depending the billing period you "
@@ -930,15 +947,15 @@ msgstr ""
930
  "facturation arrive automatiquement tous les mois ou années dépendamment de "
931
  "votre choix de période de facturation."
932
 
933
- #: inc/functions/admin-ui.php:435
934
  msgid "Monthly Plans"
935
  msgstr "Plans Mensuels"
936
 
937
- #: inc/functions/admin-ui.php:440
938
  msgid "One Time Plans"
939
  msgstr "Plans « One Time »"
940
 
941
- #: inc/functions/admin-ui.php:450
942
  msgid ""
943
  "Monthly plans come with credits which is renewed every months. The billing "
944
  "happens automatically each month or year depending the billing period you "
@@ -948,90 +965,49 @@ msgstr ""
948
  "facturation arrive automatiquement tous les mois ou années dépendamment de "
949
  "votre choix de période de facturation."
950
 
951
- #: inc/functions/admin-ui.php:482 inc/functions/admin-ui.php:529
952
  msgid "we recommend for you"
953
  msgstr "nous vous recommandons"
954
 
955
- #: inc/functions/admin-ui.php:490 inc/functions/admin-ui.php:533
956
  msgid "Choose plan"
957
  msgstr "Choisir ce plan"
958
 
959
- #: inc/functions/admin-ui.php:498
960
  msgid "Need more?"
961
  msgstr "Besoin de plus&nbsp;?"
962
 
963
- #: inc/functions/admin-ui.php:499
964
  msgid "for special needs"
965
  msgstr "pour les besoins particuliers"
966
 
967
- #: inc/functions/admin-ui.php:503
968
  msgid "Contact Us"
969
  msgstr "Nous contacter"
970
 
971
- #: inc/functions/admin-ui.php:510
972
  msgid ""
973
- "One time plans are useful if you have a lots of existing images which need "
974
- "to be optimized. You can use it for bulk optimizing all your past images. "
975
- "You will pay only once."
976
  msgstr ""
977
  "Les plans « One Time » sont utiles si vous avez beaucoup d’images existantes "
978
- "qui ont besoin d’être optimisées. Vous pouvez l’utiliser pour une "
979
- "optimisation en masse de vos images passées. Vous ne paierez qu’une fois."
980
-
981
- #: inc/functions/admin-ui.php:563
982
- msgid "Your order"
983
- msgstr "Votre commande"
984
-
985
- #: inc/functions/admin-ui.php:568
986
- #, php-format
987
- msgid "%scancel%sYou just removed %s"
988
- msgstr "%sannuler%sVous venez de supprimer %s"
989
-
990
- #: inc/functions/admin-ui.php:576 inc/functions/admin-ui.php:597
991
- msgid "Remove this item"
992
- msgstr "Retirer cet item"
993
-
994
- #: inc/functions/admin-ui.php:583
995
- #, php-format
996
- msgid "%s per month"
997
- msgstr "%s par mois"
998
 
999
  #: inc/functions/admin-ui.php:604
1000
- #, php-format
1001
- msgid "one time %s"
1002
- msgstr "« One Time » %s"
1003
-
1004
- #: inc/functions/admin-ui.php:617
1005
- #, php-format
1006
- msgid ""
1007
- "Switch to yearly subscription and <br><strong class=\"imagify-dark\">save %s "
1008
- "per year!</strong>"
1009
- msgstr ""
1010
- "Passez à la souscription annuelle et <br><strong class=\"imagify-dark"
1011
- "\">économisez %s par an&nbsp;!</strong>"
1012
-
1013
- #: inc/functions/admin-ui.php:618
1014
- #, php-format
1015
- msgid ""
1016
- "Perfect!<br>You're <strong class=\"imagify-dark\">saving %s per year!</"
1017
- "strong>"
1018
- msgstr ""
1019
- "Parfait&nbsp;!<br>Vous <strong class=\"imagify-dark\">économisez %s par "
1020
- "an&nbsp;!</strong>"
1021
-
1022
- #: inc/functions/admin-ui.php:657
1023
  msgid "Thank you for being awesome!"
1024
  msgstr "Merci à vous d’être aussi fabuleux&nbsp;!"
1025
 
1026
- #: inc/functions/admin-ui.php:668
1027
  msgid "What do our user think about Imagify"
1028
  msgstr "Ce que nos utilisateurs pensent d’Imagify"
1029
 
1030
- #: inc/functions/admin-ui.php:702
1031
  msgid "Secure Credit Card Payment"
1032
  msgstr "Paiement par carte sécurisé"
1033
 
1034
- #: inc/functions/admin-ui.php:703
1035
  msgid "This is secure 128-bits SSL encrypted payment"
1036
  msgstr "Paiement sécurisé par cryptage SSL 128-bits"
1037
 
@@ -1059,8 +1035,8 @@ msgstr "Félicitations !"
1059
 
1060
  #: inc/functions/i18n.php:25
1061
  msgid ""
1062
- "Your account has been succesfully created. Please check your mailbox, you "
1063
- "are going to receive an email with API key."
1064
  msgstr ""
1065
  "Votre compte a été créé avec succès. Vérifiez votre boîte de réception, vous "
1066
  "allez recevoir un e-mail avec votre clé API."
@@ -1088,8 +1064,8 @@ msgstr "Vous devez indiquer une clé api&nbsp;!"
1088
 
1089
  #: inc/functions/i18n.php:32
1090
  msgid ""
1091
- "Your API key is valid. You can now configure the Imagify settings to "
1092
- "optimize your images."
1093
  msgstr ""
1094
  "Votre clé API est valide. Vous pouvez maintenant configurer les réglages "
1095
  "d’Imagify pour optimiser vos images."
@@ -1098,11 +1074,27 @@ msgstr ""
1098
  msgid "Cancel"
1099
  msgstr "Annuler"
1100
 
1101
- #: inc/functions/i18n.php:41
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1102
  msgid "Don't Need a Parachute?"
1103
  msgstr "Pas besoin d’un parachute&nbsp;?"
1104
 
1105
- #: inc/functions/i18n.php:42
1106
  msgid ""
1107
  "If you keep this option deactivated, you won't be able to re-optimize your "
1108
  "images to another compression level and restore your original images in case "
@@ -1112,76 +1104,76 @@ msgstr ""
1112
  "réoptimiser vos images à un autre niveau de compression et de restaurer vos "
1113
  "images originales en cas de besoin."
1114
 
1115
- #: inc/functions/i18n.php:58
1116
  msgid "Original Image"
1117
  msgstr "Image d’origine"
1118
 
1119
- #: inc/functions/i18n.php:59
1120
  msgid "Optimized Image"
1121
  msgstr "Image optimisée"
1122
 
1123
- #: inc/functions/i18n.php:73
1124
  msgid "Please wait..."
1125
  msgstr "Un peu d’attente…"
1126
 
1127
- #: inc/functions/i18n.php:74
1128
  msgid ""
1129
  "We are trying to get your unoptimized images, it may take time depending on "
1130
  "the number of images."
1131
  msgstr ""
1132
- "Nous sommes en train de récupérer vos images non-optimisées, cela peut "
1133
- "prendre du temps en fonction du nombre d’images."
1134
 
1135
- #: inc/functions/i18n.php:76
1136
  msgid "Oops, There is something wrong!"
1137
  msgstr "Oups, une erreur est survenue !"
1138
 
1139
- #: inc/functions/i18n.php:77
1140
  msgid ""
1141
- "An unknow error occurred when we tried to get all your unoptimized images. "
1142
- "Try again and if the issue still persist, please contact us!"
1143
  msgstr ""
1144
  "Une erreur inconnue est survenue lorsque nous avons essayé d’obtenir toutes "
1145
  "vos images non optimisées. Essayez encore et si le problème persiste, "
1146
  "contactez-nous !"
1147
 
1148
- #: inc/functions/i18n.php:82
1149
  msgid "Error"
1150
  msgstr "Erreur"
1151
 
1152
- #: inc/functions/i18n.php:85
1153
  msgid "Hold on!"
1154
  msgstr "Halte là&nbsp;!"
1155
 
1156
- #: inc/functions/i18n.php:86
1157
  msgid "All your images have been optimized by Imagify. Congratulations!"
1158
  msgstr "Toutes vos images ont été optimisées par Imagify. Félicitations&nbsp;!"
1159
 
1160
- #: inc/functions/i18n.php:88
1161
  #, php-format
1162
  msgid ""
1163
- "Discover @imagify, the new compression tool to optimize your images for "
1164
- "free. I saved %1$s out of %2$s!"
1165
  msgstr ""
1166
- "Découvrez @imagify, le nouvel outil de compression pour optimiser vos "
1167
- "images. J’ai optimisé %1$s sur %2$s !"
1168
 
1169
- #: inc/functions/i18n.php:92
1170
  msgid "Imagify is still processing. Are you sure you want to leave this page?"
1171
  msgstr ""
1172
  "Imagify travaille encore. Êtes-vous sûr(e) de vouloir quitter cette page ?"
1173
 
1174
- #: inc/functions/i18n.php:101
1175
  msgid "F j, Y"
1176
  msgstr "j F Y"
1177
 
1178
  #: inc/functions/process.php:40
1179
  msgid ""
1180
- "Sorry, our servers are temporarily unaccessible. Please, try again in a "
1181
- "couple of minutes."
1182
  msgstr ""
1183
- "Désolé, nos serveurs sont temporairement inaccessibles. Nous vous "
1184
- "recommandons de ré-essayer dans quelques minutes."
1185
 
1186
  #: inc/functions/process.php:46
1187
  msgid "External HTTP requests are blocked"
@@ -1206,41 +1198,82 @@ msgstr "%s n’est pas accessible en écriture"
1206
  msgid "Skipped (%s), image not found."
1207
  msgstr "Ignoré (%s), image introuvable."
1208
 
1209
- #~ msgid "https://wordpress.org/plugins/imagify/"
1210
- #~ msgstr "https://fr.wordpress.org/plugins/imagify/"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1211
 
1212
  #~ msgid ""
1213
- #~ "Dramaticaly reduce image file sizes without losing quality, make your "
1214
- #~ "website load faster, boost your SEO and save money on your bandwith using "
1215
- #~ "Imagify, the new most advanced image optimization tool."
1216
  #~ msgstr ""
1217
- #~ "Réduisez drastiquement la taille de vos images sans perte de qualité, "
1218
- #~ "améliorez la vitesse de chargement de votre site web, boostez votre SEO "
1219
- #~ "et économisez de la bande passante (et de l’argent) en utilisant Imagify, "
1220
- #~ "l’outil le plus avancé pour optimiser vos images."
1221
 
1222
- #~ msgid "WP Media"
1223
- #~ msgstr "WP Media"
1224
-
1225
- #~ msgid "http://wp-media.me"
1226
- #~ msgstr "http://wp-media.me"
 
1227
 
1228
  #~ msgid ""
1229
- #~ "All images greater than %s%% will be optimized when using a paying "
1230
- #~ "monthly plan."
1231
  #~ msgstr ""
1232
- #~ "Toutes les images de plus de %s %% seront optimisées lors de "
1233
- #~ "l'utilisation d'un abonnement mensuel payant."
1234
 
1235
  #~ msgid "You optimized %s of images on your website"
1236
  #~ msgstr "Vous avez optimisé %s des images de votre site"
1237
 
1238
  #~ msgid ""
1239
- #~ "Images greater than 5 MB will be optimized when using a paying monthly "
1240
- #~ "plan."
1241
  #~ msgstr ""
1242
- #~ "Les images supérieures à 5 Mo seront optimisées lors de l'utilisation "
1243
- #~ "d'un forfait mensuel payant."
1244
 
1245
  #~ msgid "Your default setting:"
1246
  #~ msgstr "Votre réglage par défaut :"
@@ -1258,16 +1291,15 @@ msgstr "Ignoré (%s), image introuvable."
1258
  #~ msgstr ""
1259
  #~ "Réduisez drastiquement le poids de vos images sans perte de qualité, "
1260
  #~ "accélérez la rapidité de votre site, boostez votre SEO et économisez de "
1261
- #~ "l’argent sur votre bande passante en utilisant Imagify, le nouvel outil "
1262
- #~ "le plus avancé d’optimisation des images."
1263
 
1264
  #~ msgid ""
1265
  #~ "%1$sCongratulations%2$s, you have optimized %1$s%3$d images%2$s and "
1266
  #~ "improved your website's by reducing your images size."
1267
  #~ msgstr ""
1268
- #~ "%1$Félicitations%2$s ! Vous avez optimisé %1$s%3$d images%2$s et "
1269
- #~ "améliorez le temps de chargement de votre site en réduisant le poids de "
1270
- #~ "vos images."
1271
 
1272
  #~ msgid ""
1273
  #~ "Sorry, our servers are temporally unaccessible. Please, try again in a "
@@ -1287,22 +1319,21 @@ msgstr "Ignoré (%s), image introuvable."
1287
 
1288
  #~ msgid ""
1289
  #~ "If you are a photographer, you may be interested in by this option if you "
1290
- #~ "are displaying some infos like your the model of your camera on your "
1291
- #~ "pages."
1292
  #~ msgstr ""
1293
- #~ "Si vous êtes un photographe, vous pourriez être intéressé par cette "
1294
- #~ "option si vous affichez quelques infos comme votre le modèle de votre "
1295
- #~ "appareil photo sur vos pages."
1296
 
1297
  #~ msgid "Checking in process..."
1298
  #~ msgstr "Vérification en cours…"
1299
 
1300
  #~ msgid ""
1301
- #~ "%1$sCongratulations%2$s, you have optimized %1$s%3$d images%2$s and "
1302
- #~ "reduced by %1$s%4$s%2$s%% your images size."
1303
  #~ msgstr ""
1304
- #~ "%1$sFélicitations%2$s, vous avez optimisé %1$s%3$d images %2$s et réduit "
1305
- #~ "de %1$s%4$s%2$s%% le poids de vos images."
1306
 
1307
  #~ msgid ""
1308
  #~ "Keep all EXIF data from your images. Exif are informations stored in your "
@@ -1313,8 +1344,8 @@ msgstr "Ignoré (%s), image introuvable."
1313
  #~ "d’exposition, ISO, etc …"
1314
 
1315
  #~ msgid ""
1316
- #~ "This will provide a huge savings on the initial weight. Sometimes the "
1317
- #~ "image quality could be degraded."
1318
  #~ msgstr ""
1319
  #~ "Cela permettra de considérablement réduire le poids initial. Parfois, la "
1320
  #~ "qualité de l’image pourra être légèrement dégradée."
@@ -1375,8 +1406,8 @@ msgstr "Ignoré (%s), image introuvable."
1375
  #~ "niveau votre abonnement pour continuer à optimiser vos images."
1376
 
1377
  #~ msgid ""
1378
- #~ "You have almost used all your credit. Don't forget to upgrade your "
1379
- #~ "account to continue optimizing your images."
1380
  #~ msgstr ""
1381
  #~ "Vous avez bientôt utilisé tout votre crédit. N’oubliez pas de mettre à "
1382
  #~ "niveau votre abonnement pour continuer à optimiser vos images."
@@ -1411,12 +1442,12 @@ msgstr "Ignoré (%s), image introuvable."
1411
  #~ "You can log in to your Imagify account to %sbuy a pack or subscribe to a "
1412
  #~ "plan%s."
1413
  #~ msgstr ""
1414
- #~ "Vous pouvez vous connecter à votre compte Imagify pour %sacheter un pack "
1415
- #~ "ou souscrire à un plan%s."
1416
 
1417
  #~ msgid ""
1418
- #~ "You have consumed all your credits for this month. You will have <strong>"
1419
- #~ "%s back on %s</strong>."
1420
  #~ msgstr ""
1421
  #~ "Vous avez consommé tous les crédits pour ce mois. Vous aurez à nouveau "
1422
  #~ "<strong>%s le %s</strong>."
@@ -1454,11 +1485,11 @@ msgstr "Ignoré (%s), image introuvable."
1454
  #~ "d’optimisation."
1455
 
1456
  #~ msgid ""
1457
- #~ "This mode is a lossless optimization, your images will be optimized "
1458
- #~ "without any visible change."
1459
  #~ msgstr ""
1460
- #~ "Ce niveau permet d'optimiser sans perte, vos images seront optimisées "
1461
- #~ "sans aucun changement visible."
1462
 
1463
  #~ msgid ""
1464
  #~ "This mode will apply all optimizations available to compress furthermore "
@@ -1467,15 +1498,13 @@ msgstr "Ignoré (%s), image introuvable."
1467
  #~ "Ce niveau appliquera toutes les optimisations disponibles pour compresser "
1468
  #~ "les images."
1469
 
1470
- #~ msgid ""
1471
- #~ "If you want the highest weight reduction, we recommend you this mode."
1472
  #~ msgstr ""
1473
  #~ "Si vous souhaitez une réduction du poids plus performante, nous vous "
1474
  #~ "recommandons ce niveau."
1475
 
1476
  #~ msgid "Optimize automatically every image you will upload to WordPress."
1477
- #~ msgstr ""
1478
- #~ "Optimisez automatiquement chaque image que vous enverrez à WordPress."
1479
 
1480
  #~ msgid ""
1481
  #~ "Please be aware that optimizing a large number of images can take a while "
@@ -1516,16 +1545,15 @@ msgstr "Ignoré (%s), image introuvable."
1516
  #~ "Is your WordPress website too slow? Discover the best caching plugin to "
1517
  #~ "speed up your website."
1518
  #~ msgstr ""
1519
- #~ "Votre site WordPress est lent ? Découvrer le meilleur plugin de cache "
1520
- #~ "pour accélérer votre site."
1521
 
1522
  #~ msgid ""
1523
  #~ "Please be aware that optimizing a large number of images can take a whil "
1524
  #~ "depends on your server and network speed."
1525
  #~ msgstr ""
1526
- #~ "Soyez conscient que l’optimisation d’une grand nombre d’images peut "
1527
- #~ "prendre du temps en fonction de la rapidité de votre serveur et de votre "
1528
- #~ "connexion."
1529
 
1530
  #~ msgid "Your API key isn't valid."
1531
  #~ msgstr "Votre clé API n’est pas valide."
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Imagify\n"
4
+ "POT-Creation-Date: 2016-11-11 21:28+0100\n"
5
+ "PO-Revision-Date: 2016-11-11 21:28+0100\n"
6
  "Last-Translator: Rémy Perona <remperona@gmail.com>\n"
7
  "Language-Team: \n"
8
  "Language: fr_FR\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.8.6\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "X-Poedit-WPHeader: imagify.php\n"
15
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
17
  "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
18
  "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
19
  "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
 
20
  "X-Poedit-SearchPath-0: .\n"
21
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
22
 
23
+ #: inc/3rd-party/nextgen-gallery/inc/admin/enqueue.php:20 inc/admin/ajax.php:123
24
+ #: inc/admin/meta-boxes.php:34 inc/functions/admin-ui.php:215
25
+ #: inc/functions/i18n.php:52 inc/functions/i18n.php:67
 
26
  msgid "Optimize"
27
  msgstr "Optimiser"
28
 
29
  #: inc/3rd-party/nextgen-gallery/inc/admin/enqueue.php:21
30
+ #: inc/functions/admin-ui.php:80 inc/functions/i18n.php:53
31
  msgid "Restore Original"
32
  msgstr "Restaurer l’original"
33
 
34
  #: inc/3rd-party/nextgen-gallery/inc/admin/menu.php:16 inc/admin/menu.php:24
35
+ #: inc/admin/plugins.php:13 inc/admin/ui/bulk.php:81 inc/common/admin-bar.php:39
 
36
  msgid "Bulk Optimization"
37
  msgstr "Optimisation en masse"
38
 
53
  "You have almost used all your credit.%sDon't forget to upgrade your "
54
  "subscription to continue optimizing your images."
55
  msgstr ""
56
+ "Vous avez bientôt utilisé tout votre crédit.%sN’oubliez pas de mettre à niveau "
57
+ "votre abonnement pour continuer à optimiser vos images."
58
 
59
  #: inc/admin/ajax.php:509 inc/admin/ui/bulk.php:23
60
  msgid "View My Subscription"
61
  msgstr "Voir mon abonnement"
62
 
63
+ #: inc/admin/ajax.php:517 inc/admin/ui/notices.php:258 inc/functions/i18n.php:87
 
64
  msgid "Oops, It's Over!"
65
  msgstr "Oups, c’est fini !"
66
 
67
+ #: inc/admin/ajax.php:518 inc/admin/ui/notices.php:260 inc/functions/i18n.php:104
 
68
  #, php-format
69
  msgid ""
70
  "You have consumed all your credit for this month. You will have <strong>%s "
94
  msgid "View my subscription"
95
  msgstr "Voir mon abonnement"
96
 
97
+ #: inc/admin/media.php:63 inc/functions/i18n.php:63
98
  msgid "Compare Original VS Optimized"
99
  msgstr "Comparer Originale VS Optimisée"
100
 
101
+ #. Plugin Name of the plugin/theme
102
  #: inc/admin/meta-boxes.php:17 inc/admin/meta-boxes.php:24
103
  #: inc/admin/upload.php:12
104
  msgid "Imagify"
112
  msgid "Check your Settings"
113
  msgstr "Vérifiez vos réglages"
114
 
115
+ #: inc/admin/options.php:127
116
  msgid "Cheatin&#8217; uh?"
117
  msgstr "Cheatin&#8217; uh?"
118
 
119
+ #: inc/admin/options.php:135
120
  msgid "<strong>ERROR</strong>: options page not found."
121
  msgstr "<strong>Erreur</strong> : page d’options introuvable."
122
 
178
  #: inc/admin/ui/bulk.php:149
179
  #, php-format
180
  msgid ""
181
+ "If you have more than %s images, you will need to launch the bulk optimization "
182
+ "several times."
183
  msgstr ""
184
  "Si vous avez plus de %s images, vous devrez lancer l’optimisation en masse "
185
  "plusieurs fois."
186
 
187
  #: inc/admin/ui/bulk.php:153
188
  msgid ""
189
+ "You must keep this page open while the bulk optimizaton is processing. If you "
190
+ "leave you can come back to continue where it left off."
191
  msgstr ""
192
  "Vous devez garder cette page ouverte pendant que l’optimisation en masse est "
193
+ "en cours. Si vous la quittez, vous pouvez revenir pour continuer là où vous en "
194
+ "étiez."
195
 
196
  #: inc/admin/ui/bulk.php:164
197
  msgid "Select Your Compression Level"
198
  msgstr "Sélectionnez votre niveau de compression"
199
 
200
  #: inc/admin/ui/bulk.php:166 inc/admin/ui/bulk.php:192
201
+ #: inc/admin/ui/options.php:136 inc/admin/ui/options.php:342
202
+ #: inc/admin/ui/options.php:381 inc/admin/ui/options.php:398
203
+ #: inc/admin/ui/options.php:458 inc/classes/abstracts/abstract-attachment.php:114
 
204
  #: inc/functions/admin-ui.php:153
205
  msgid "Ultra"
206
  msgstr "Ultra"
207
 
208
  #: inc/admin/ui/bulk.php:169 inc/admin/ui/bulk.php:187
209
+ #: inc/admin/ui/options.php:131 inc/admin/ui/options.php:329
210
+ #: inc/admin/ui/options.php:380 inc/admin/ui/options.php:393
211
+ #: inc/admin/ui/options.php:437 inc/classes/abstracts/abstract-attachment.php:117
 
212
  #: inc/functions/admin-ui.php:159
213
  msgid "Aggressive"
214
  msgstr "Agressif"
215
 
216
  #: inc/admin/ui/bulk.php:172 inc/admin/ui/bulk.php:182
217
+ #: inc/admin/ui/options.php:126 inc/admin/ui/options.php:316
218
+ #: inc/admin/ui/options.php:379 inc/admin/ui/options.php:388
219
+ #: inc/admin/ui/options.php:417 inc/classes/abstracts/abstract-attachment.php:120
 
220
  #: inc/functions/admin-ui.php:165
221
  msgid "Normal"
222
  msgstr "Normal"
272
  msgid "Status"
273
  msgstr "Statut"
274
 
275
+ #: inc/admin/ui/bulk.php:265 inc/admin/ui/options.php:378
276
+ #: inc/admin/ui/options.php:383 inc/admin/ui/options.php:407
277
  msgid "Original"
278
  msgstr "Original"
279
 
280
+ #: inc/admin/ui/bulk.php:266 inc/admin/upload.php:41 inc/functions/i18n.php:83
281
  msgid "Optimized"
282
  msgstr "Optimisées"
283
 
332
 
333
  #: inc/admin/ui/notices.php:34
334
  msgid ""
335
+ "Don't have an Imagify account yet? Optimize your images by creating an account "
336
+ "in a few seconds!"
337
  msgstr ""
338
+ "Vous n’avez pas encore de compte Imagify&nbsp;? Optimiser vos images en créant "
339
+ "un compte en quelques secondes&nbsp;!"
340
 
341
  #: inc/admin/ui/notices.php:37
342
  msgid "Sign up, It's FREE!"
364
  msgstr "Configurer le"
365
 
366
  #: inc/admin/ui/notices.php:54
367
+ msgid "It’s almost done! You have just to configure your optimization settings."
 
368
  msgstr ""
369
  "C’est bientôt terminé&nbsp;! Vous avez juste à configurer vos paramètres "
370
  "d'optimisation."
374
  msgstr "Aller aux réglages"
375
 
376
  #: inc/admin/ui/notices.php:87 inc/admin/ui/options.php:97
377
+ #: inc/functions/i18n.php:81
378
  msgid "Your API key isn't valid!"
379
  msgstr "Votre clé API n’est pas valide&nbsp;!"
380
 
381
  #: inc/admin/ui/notices.php:90
382
  #, php-format
383
  msgid ""
384
+ "Go to your Imagify account page to get your API Key and specify it on %1$syour "
385
+ "settings%3$s or %2$screate an account for free%3$s if you don't have one yet."
 
386
  msgstr ""
387
  "Allez sur votre page de compte Imagify pour récupérer votre clé API et la "
388
  "renseigner dans %1$svos réglages%3$s ou %2$scréez un compte gratuitement%3$s "
418
  "To optimize your images, you have to put the following code in your <code>wp-"
419
  "config.php</code> file so that it works correctly."
420
  msgstr ""
421
+ "Pour optimiser vos images, vous devez insérer le code suivant dans le fichier "
422
+ "<code>wp-config.php</code> afin que cela fonctionne correctement."
423
 
424
  #: inc/admin/ui/notices.php:182
425
  msgid "Click on the field and press Ctrl-A to select all."
437
  msgid "Switch to the List View"
438
  msgstr "Basculer en vue liste"
439
 
440
+ #: inc/admin/ui/notices.php:260 inc/functions/i18n.php:101
441
+ #: inc/functions/i18n.php:104
442
  #, php-format
443
  msgid ""
444
+ "To continue to optimize your images, log in to your Imagify account to %sbuy a "
445
+ "pack or subscribe to a plan%s."
446
  msgstr ""
447
  "Pour continuer à optimiser vos images, connectez-vous à votre compte Imagify "
448
  "pour %sacheter un pack ou souscrire à un plan%s."
466
  "%1$sCongratulations%2$s, you have optimized %1$s%3$d images%2$s and improved "
467
  "your website's speed by reducing your images size."
468
  msgstr ""
469
+ "%1$sFélicitations%2$s ! Vous avez optimisé %1$s%3$d images%2$s et améliorez le "
470
+ "temps de chargement de votre site en réduisant le poids de vos images."
471
 
472
  #: inc/admin/ui/notices.php:365 inc/admin/ui/options.php:59
473
  #, php-format
543
  "after resizing. The new width should not be less than your largest thumbnail "
544
  "width, which is actually %spx."
545
  msgstr ""
546
+ "Cette option est recommendée pour réduire les images trop grandes. Vous pouvez "
547
+ "économiser jusqu'à 80%% du poids après le redimensionnement. La nouvelle "
548
+ "largeur ne doit pas être inférieure à la plus grande largeur de vos miniatures "
549
+ "qui est actuellement de %spx."
550
 
551
  #: inc/admin/ui/options.php:209 inc/admin/ui/options.php:212
552
  msgid "EXIF Data"
570
  "If you are a photographer, you may be interested in this option if you are "
571
  "displaying on your pages some info like the model of your camera."
572
  msgstr ""
573
+ "Si vous êtes un photographe, vous pourriez être intéressé par cette option si "
574
+ "vous affichez quelques infos comme votre le modèle de votre appareil photo sur "
575
+ "vos pages."
576
 
577
  #: inc/admin/ui/options.php:228
578
  msgid "Files optimization"
597
  "Pour rappel, chaque format d’image additionnel affectera votre quota d’usage "
598
  "mensuel d’Imagify."
599
 
600
+ #: inc/admin/ui/options.php:266
601
  msgid "Display options"
602
  msgstr "Options d’affichage"
603
 
604
+ #: inc/admin/ui/options.php:271 inc/admin/ui/options.php:276
605
  msgid "Show Admin Bar menu"
606
  msgstr "Afficher le menu dans la barre d'administration"
607
 
608
+ #: inc/admin/ui/options.php:277
609
  msgid "I want this awesome quick access menu on my admin bar."
610
  msgstr "Je veux ce menu d'accès rapide génial sur ma barre d'administration."
611
 
612
+ #: inc/admin/ui/options.php:296
613
  msgid "Save &amp; Go to Bulk Optimizer"
614
  msgstr "Enregistrer &amp; Aller à l’optimisation en masse"
615
 
616
+ #: inc/admin/ui/options.php:305
617
  #, php-format
618
  msgid ""
619
+ "Once your settings saved, optimize all your images by using the %sImagify Bulk "
620
+ "Optimization%s feature."
621
  msgstr ""
622
+ "Une fois vos paramètres enregistrés, optimisez toutes vos images en utilisant "
623
+ "la fonctionnalité d’%soptimisation en masse%s d’Imagify."
624
 
625
+ #: inc/admin/ui/options.php:313
626
  msgid "You can choose three levels of compression"
627
  msgstr "Vous pouvez choisir entre trois niveaux de compression"
628
 
629
+ #: inc/admin/ui/options.php:318
630
  msgid ""
631
  "This mode provides lossless optimization, your images will be optimized "
632
  "without any visible change."
634
  "Ce niveau permet d'optimiser sans perte, vos images seront optimisées sans "
635
  "aucun changement visible."
636
 
637
+ #: inc/admin/ui/options.php:321
638
  msgid ""
639
  "If you want the perfect quality for your images, we recommend you that mode."
640
  msgstr ""
641
+ "Si vous souhaitez des images d’une qualité parfaite, nous vous recommandons ce "
642
+ "niveau."
643
 
644
+ #: inc/admin/ui/options.php:324
645
+ msgid "Note: the file size reduction will be less, compared to aggressive mode."
 
646
  msgstr ""
647
  "Remarque: la réduction du poids des images sera moins importante par rapport "
648
  "au mode agressif."
649
 
650
+ #: inc/admin/ui/options.php:331
651
  msgid ""
652
+ "This mode provides perfect optimization of your images without any significant "
653
+ "quality loss."
654
  msgstr ""
655
  "Ce niveau permet une optimisation idéale de vos images sans perte de qualité "
656
  "notable."
657
 
658
+ #: inc/admin/ui/options.php:334
659
  msgid ""
660
  "This will provide a drastic savings on the initial weight, with a small "
661
  "reduction in image quality. Most of the time it's not even noticeable."
662
  msgstr ""
663
+ "Cela permettra une réduction importante du poids initial avec une légère perte "
664
+ "de la qualité d'image qui n’est pas perceptible à l’oeil humain."
665
 
666
+ #: inc/admin/ui/options.php:337
667
  msgid "If you want the maximum weight reduction, we recommend using this mode."
668
  msgstr ""
669
  "Si vous souhaitez une réduction du poids plus performante, nous vous "
670
  "recommandons ce niveau."
671
 
672
+ #: inc/admin/ui/options.php:344
673
  msgid ""
674
+ "This mode will apply all available optimizations for maximum image compression."
 
675
  msgstr ""
676
+ "Ce niveau appliquera toutes les optimisations disponibles pour une compression "
677
+ "des images maximale."
678
 
679
+ #: inc/admin/ui/options.php:347
680
  msgid ""
681
  "This will provide a huge savings on the initial weight. Sometimes the image "
682
  "quality could be degraded a little."
684
  "Cela permettra de considérablement réduire le poids initial. Parfois, la "
685
  "qualité de l’image pourra être légèrement dégradée."
686
 
687
+ #: inc/admin/ui/options.php:350
688
  msgid ""
689
  "If you want the maximum weight reduction, and you agree to lose some quality "
690
  "on the images we recommend using this mode."
692
  "Si vous souhaitez une réduction du poids optimale et que vous tolérez une "
693
  "baisse de qualité sur vos images, nous vous recommandons ce niveau."
694
 
695
+ #: inc/admin/ui/options.php:357 inc/admin/ui/options.php:479
696
+ #: inc/functions/admin-ui.php:609 inc/functions/i18n.php:64
697
  msgid "Close"
698
  msgstr "Fermer"
699
 
700
+ #: inc/admin/ui/options.php:369
701
  #, php-format
702
  msgid "I want to compare%s and%s"
703
  msgstr "Je veux comparer%s et%s"
704
 
705
+ #: inc/admin/ui/options.php:386
706
  #, php-format
707
  msgid "Original photography about %s"
708
  msgstr "Photographie originale, environ %s"
709
 
710
+ #: inc/admin/ui/options.php:391 inc/admin/ui/options.php:396
711
+ #: inc/admin/ui/options.php:401
712
  #, php-format
713
  msgid "Optimized photography about %s"
714
  msgstr "Photographie optimisée, environ %s"
715
 
716
+ #: inc/admin/ui/options.php:406 inc/admin/ui/options.php:416
717
+ #: inc/admin/ui/options.php:436 inc/admin/ui/options.php:457
718
  #: inc/functions/admin-ui.php:59
719
  msgid "Level:"
720
  msgstr "Niveau&nbsp;:"
721
 
722
+ #: inc/admin/ui/options.php:410 inc/admin/ui/options.php:420
723
+ #: inc/admin/ui/options.php:440 inc/admin/ui/options.php:461
724
+ #: inc/functions/i18n.php:65
725
  msgid "File Size:"
726
  msgstr "Poids du fichier:"
727
 
728
+ #: inc/admin/ui/options.php:424 inc/admin/ui/options.php:444
729
+ #: inc/admin/ui/options.php:465 inc/functions/admin-ui.php:45
730
+ #: inc/functions/i18n.php:66
731
  msgid "Original Saving:"
732
  msgstr "Gain sur l’original&nbsp;:"
733
 
734
+ #: inc/admin/upload.php:42 inc/functions/i18n.php:84
735
  msgid "Unoptimized"
736
  msgstr "Non optimisées"
737
 
752
  "This size isn't authorized to be optimized. Update your Imagify settings if "
753
  "you want to optimize it."
754
  msgstr ""
755
+ "Cette taille n’est pas autorisée à être optimisée. Mettez à jour les réglages "
756
+ "d’Imagify si vous souhaitez l’optimiser."
757
 
758
  #: inc/common/admin-bar.php:48
759
  #, php-format
764
  msgid "Loading..."
765
  msgstr "Chargement…"
766
 
767
+ #: inc/common/cron.php:59
768
+ msgid "weekly"
769
+ msgstr ""
770
+
771
  #: inc/functions/admin-ui.php:36
772
  msgid "New Filesize:"
773
  msgstr "Nouveau poids&nbsp;:"
827
  "Laissez-nous vous aider en analysant vos images existantes et déterminer le "
828
  "meilleur plan pour vous"
829
 
830
+ #: inc/functions/admin-ui.php:282
831
  msgid "Choose Plan"
832
  msgstr "Choisissez un plan"
833
 
834
+ #: inc/functions/admin-ui.php:283
835
  msgid "Payment Info"
836
  msgstr "Information de paiement"
837
 
838
+ #: inc/functions/admin-ui.php:295
839
  msgid "We analysed your images"
840
  msgstr "Nous avons analysé vos images"
841
 
842
+ #: inc/functions/admin-ui.php:296
843
+ msgid "We are analysing your images"
844
+ msgstr "Nous analysons vos images"
845
+
846
+ #: inc/functions/admin-ui.php:299
847
+ msgid "Analyzing"
848
+ msgstr "Analyse en cours"
849
+
850
+ #: inc/functions/admin-ui.php:305
851
  #, php-format
852
+ msgid "You have %s image"
853
+ msgid_plural "You have %s images"
854
+ msgstr[0] "Vous avez %s image"
855
+ msgstr[1] "Vous avez %s images"
856
 
857
+ #: inc/functions/admin-ui.php:311
858
  #, php-format
859
+ msgid "You currently have %s of images in your library."
860
+ msgstr "Vous avez actuellement %s d’images dans votre médiathèque."
861
 
862
+ #: inc/functions/admin-ui.php:315
863
  #, php-format
864
  msgid "You upload around %s of images per month."
865
  msgstr "Vous chargez environ %s d’images par mois."
866
 
867
+ #: inc/functions/admin-ui.php:323
868
  msgid "We recommend you this plan"
869
  msgstr "Nous vous recommandons ce plan"
870
 
871
+ #: inc/functions/admin-ui.php:324
872
+ msgid "The free plan is enough to optimize your images"
873
+ msgstr "L’offre gratuite est suffisante pour optimiser vos images"
874
+
875
+ #: inc/functions/admin-ui.php:331
876
  msgid "Subscribe a monthly plan"
877
  msgstr "Souscrire un plan mensuel"
878
 
879
+ #: inc/functions/admin-ui.php:332
880
  msgid "Subscribe a yearly plan"
881
  msgstr "Souscrire un plan annuel"
882
 
883
+ #: inc/functions/admin-ui.php:336 inc/functions/admin-ui.php:481
 
884
  msgid "Monthly"
885
  msgstr "Mensuel"
886
 
887
+ #: inc/functions/admin-ui.php:339 inc/functions/admin-ui.php:484
 
888
  msgid "Yearly"
889
  msgstr "Annuel"
890
 
891
+ #: inc/functions/admin-ui.php:339 inc/functions/admin-ui.php:484
 
892
  msgid "2 months free"
893
  msgstr "2 mois gratuits"
894
 
895
+ #: inc/functions/admin-ui.php:350 inc/functions/admin-ui.php:369
896
+ #: inc/functions/admin-ui.php:494 inc/functions/admin-ui.php:504
897
  msgid "/month"
898
  msgstr "/mois"
899
 
900
+ #: inc/functions/admin-ui.php:352 inc/functions/admin-ui.php:400
901
+ #: inc/functions/admin-ui.php:496 inc/functions/admin-ui.php:547
902
  #, php-format
903
  msgid "approx: %s images"
904
  msgstr "approx&nbsp;: %s images"
905
 
906
+ #: inc/functions/admin-ui.php:373 inc/functions/admin-ui.php:510
907
  #, php-format
908
  msgid ""
909
  "%s per<br>\n"
912
  "%s par<br>\n"
913
  "Go additionnel"
914
 
915
+ #: inc/functions/admin-ui.php:378 inc/functions/admin-ui.php:413
 
916
  msgid "Choose another plan"
917
  msgstr "Choisir un autre plan"
918
 
919
+ #: inc/functions/admin-ui.php:388
920
  msgid "Optimize the images you already have, buy a one-time plan"
921
  msgstr "Optimisez les images que vous avez déjà, achetez un plan « One Time » "
922
 
923
+ #: inc/functions/admin-ui.php:425
924
+ msgid "Checking Coupon"
925
+ msgstr "Vérification du coupon"
926
+
927
+ #: inc/functions/admin-ui.php:427
928
+ msgid "If you have a <strong>coupon code</strong><br> use it there:"
929
+ msgstr "Si vous avez un <strong>code coupon</strong><br> utilisez-le ici&nbsp;:"
930
+
931
+ #: inc/functions/admin-ui.php:430
932
+ msgid "Coupon Code"
933
+ msgstr "Code coupon"
934
 
935
+ #: inc/functions/admin-ui.php:436
936
+ #, php-format
937
+ msgid "Pay %s"
938
+ msgstr "Payer %s"
939
+
940
+ #: inc/functions/admin-ui.php:441
941
  msgid ""
942
  "Monthly plans comes with credits which is renewed every months. The billing "
943
  "happens automatically each month or year depending the billing period you "
947
  "facturation arrive automatiquement tous les mois ou années dépendamment de "
948
  "votre choix de période de facturation."
949
 
950
+ #: inc/functions/admin-ui.php:461
951
  msgid "Monthly Plans"
952
  msgstr "Plans Mensuels"
953
 
954
+ #: inc/functions/admin-ui.php:466
955
  msgid "One Time Plans"
956
  msgstr "Plans « One Time »"
957
 
958
+ #: inc/functions/admin-ui.php:476
959
  msgid ""
960
  "Monthly plans come with credits which is renewed every months. The billing "
961
  "happens automatically each month or year depending the billing period you "
965
  "facturation arrive automatiquement tous les mois ou années dépendamment de "
966
  "votre choix de période de facturation."
967
 
968
+ #: inc/functions/admin-ui.php:508 inc/functions/admin-ui.php:555
969
  msgid "we recommend for you"
970
  msgstr "nous vous recommandons"
971
 
972
+ #: inc/functions/admin-ui.php:516 inc/functions/admin-ui.php:559
973
  msgid "Choose plan"
974
  msgstr "Choisir ce plan"
975
 
976
+ #: inc/functions/admin-ui.php:524
977
  msgid "Need more?"
978
  msgstr "Besoin de plus&nbsp;?"
979
 
980
+ #: inc/functions/admin-ui.php:525
981
  msgid "for special needs"
982
  msgstr "pour les besoins particuliers"
983
 
984
+ #: inc/functions/admin-ui.php:529
985
  msgid "Contact Us"
986
  msgstr "Nous contacter"
987
 
988
+ #: inc/functions/admin-ui.php:536
989
  msgid ""
990
+ "One time plans are useful if you have a lots of existing images which need to "
991
+ "be optimized. You can use it for bulk optimizing all your past images. You "
992
+ "will pay only once."
993
  msgstr ""
994
  "Les plans « One Time » sont utiles si vous avez beaucoup d’images existantes "
995
+ "qui ont besoin d’être optimisées. Vous pouvez l’utiliser pour une optimisation "
996
+ "en masse de vos images passées. Vous ne paierez qu’une fois."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
997
 
998
  #: inc/functions/admin-ui.php:604
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
999
  msgid "Thank you for being awesome!"
1000
  msgstr "Merci à vous d’être aussi fabuleux&nbsp;!"
1001
 
1002
+ #: inc/functions/admin-ui.php:616
1003
  msgid "What do our user think about Imagify"
1004
  msgstr "Ce que nos utilisateurs pensent d’Imagify"
1005
 
1006
+ #: inc/functions/admin-ui.php:650
1007
  msgid "Secure Credit Card Payment"
1008
  msgstr "Paiement par carte sécurisé"
1009
 
1010
+ #: inc/functions/admin-ui.php:651
1011
  msgid "This is secure 128-bits SSL encrypted payment"
1012
  msgstr "Paiement sécurisé par cryptage SSL 128-bits"
1013
 
1035
 
1036
  #: inc/functions/i18n.php:25
1037
  msgid ""
1038
+ "Your account has been succesfully created. Please check your mailbox, you are "
1039
+ "going to receive an email with API key."
1040
  msgstr ""
1041
  "Votre compte a été créé avec succès. Vérifiez votre boîte de réception, vous "
1042
  "allez recevoir un e-mail avec votre clé API."
1064
 
1065
  #: inc/functions/i18n.php:32
1066
  msgid ""
1067
+ "Your API key is valid. You can now configure the Imagify settings to optimize "
1068
+ "your images."
1069
  msgstr ""
1070
  "Votre clé API est valide. Vous pouvez maintenant configurer les réglages "
1071
  "d’Imagify pour optimiser vos images."
1074
  msgid "Cancel"
1075
  msgstr "Annuler"
1076
 
1077
+ #: inc/functions/i18n.php:35
1078
+ msgid "Something went wrong with getting our updated offers. Please retry later."
1079
+ msgstr ""
1080
+ "Quelque chose s’est mal déroulé en tentant de récupérer les offres à jour. "
1081
+ "Merci de réessayer plus tard."
1082
+
1083
+ #: inc/functions/i18n.php:36
1084
+ msgid "Error with checking this coupon."
1085
+ msgstr "Erreur en vérifiant ce coupon."
1086
+
1087
+ #: inc/functions/i18n.php:37
1088
+ #, php-format
1089
+ msgctxt "coupon validated"
1090
+ msgid "%s off with %s"
1091
+ msgstr "%s de réduction avec %s"
1092
+
1093
+ #: inc/functions/i18n.php:44
1094
  msgid "Don't Need a Parachute?"
1095
  msgstr "Pas besoin d’un parachute&nbsp;?"
1096
 
1097
+ #: inc/functions/i18n.php:45
1098
  msgid ""
1099
  "If you keep this option deactivated, you won't be able to re-optimize your "
1100
  "images to another compression level and restore your original images in case "
1104
  "réoptimiser vos images à un autre niveau de compression et de restaurer vos "
1105
  "images originales en cas de besoin."
1106
 
1107
+ #: inc/functions/i18n.php:61
1108
  msgid "Original Image"
1109
  msgstr "Image d’origine"
1110
 
1111
+ #: inc/functions/i18n.php:62
1112
  msgid "Optimized Image"
1113
  msgstr "Image optimisée"
1114
 
1115
+ #: inc/functions/i18n.php:76
1116
  msgid "Please wait..."
1117
  msgstr "Un peu d’attente…"
1118
 
1119
+ #: inc/functions/i18n.php:77
1120
  msgid ""
1121
  "We are trying to get your unoptimized images, it may take time depending on "
1122
  "the number of images."
1123
  msgstr ""
1124
+ "Nous sommes en train de récupérer vos images non-optimisées, cela peut prendre "
1125
+ "du temps en fonction du nombre d’images."
1126
 
1127
+ #: inc/functions/i18n.php:79
1128
  msgid "Oops, There is something wrong!"
1129
  msgstr "Oups, une erreur est survenue !"
1130
 
1131
+ #: inc/functions/i18n.php:80
1132
  msgid ""
1133
+ "An unknow error occurred when we tried to get all your unoptimized images. Try "
1134
+ "again and if the issue still persist, please contact us!"
1135
  msgstr ""
1136
  "Une erreur inconnue est survenue lorsque nous avons essayé d’obtenir toutes "
1137
  "vos images non optimisées. Essayez encore et si le problème persiste, "
1138
  "contactez-nous !"
1139
 
1140
+ #: inc/functions/i18n.php:85
1141
  msgid "Error"
1142
  msgstr "Erreur"
1143
 
1144
+ #: inc/functions/i18n.php:88
1145
  msgid "Hold on!"
1146
  msgstr "Halte là&nbsp;!"
1147
 
1148
+ #: inc/functions/i18n.php:89
1149
  msgid "All your images have been optimized by Imagify. Congratulations!"
1150
  msgstr "Toutes vos images ont été optimisées par Imagify. Félicitations&nbsp;!"
1151
 
1152
+ #: inc/functions/i18n.php:91
1153
  #, php-format
1154
  msgid ""
1155
+ "Discover @imagify, the new compression tool to optimize your images for free. "
1156
+ "I saved %1$s out of %2$s!"
1157
  msgstr ""
1158
+ "Découvrez @imagify, le nouvel outil de compression pour optimiser vos images. "
1159
+ "J’ai optimisé %1$s sur %2$s !"
1160
 
1161
+ #: inc/functions/i18n.php:95
1162
  msgid "Imagify is still processing. Are you sure you want to leave this page?"
1163
  msgstr ""
1164
  "Imagify travaille encore. Êtes-vous sûr(e) de vouloir quitter cette page ?"
1165
 
1166
+ #: inc/functions/i18n.php:104
1167
  msgid "F j, Y"
1168
  msgstr "j F Y"
1169
 
1170
  #: inc/functions/process.php:40
1171
  msgid ""
1172
+ "Sorry, our servers are temporarily unaccessible. Please, try again in a couple "
1173
+ "of minutes."
1174
  msgstr ""
1175
+ "Désolé, nos serveurs sont temporairement inaccessibles. Nous vous recommandons "
1176
+ "de ré-essayer dans quelques minutes."
1177
 
1178
  #: inc/functions/process.php:46
1179
  msgid "External HTTP requests are blocked"
1198
  msgid "Skipped (%s), image not found."
1199
  msgstr "Ignoré (%s), image introuvable."
1200
 
1201
+ #. Plugin URI of the plugin/theme
1202
+ msgid "https://wordpress.org/plugins/imagify/"
1203
+ msgstr "https://fr.wordpress.org/plugins/imagify/"
1204
+
1205
+ #. Description of the plugin/theme
1206
+ msgid ""
1207
+ "Dramaticaly reduce image file sizes without losing quality, make your website "
1208
+ "load faster, boost your SEO and save money on your bandwith using Imagify, the "
1209
+ "new most advanced image optimization tool."
1210
+ msgstr ""
1211
+ "Réduisez drastiquement la taille de vos images sans perte de qualité, "
1212
+ "améliorez la vitesse de chargement de votre site web, boostez votre SEO et "
1213
+ "économisez de la bande passante (et de l’argent) en utilisant Imagify, l’outil "
1214
+ "le plus avancé pour optimiser vos images."
1215
+
1216
+ #. Author of the plugin/theme
1217
+ msgid "WP Media"
1218
+ msgstr "WP Media"
1219
+
1220
+ #. Author URI of the plugin/theme
1221
+ msgid "http://wp-media.me"
1222
+ msgstr "http://wp-media.me"
1223
+
1224
+ #~ msgid "You have %s images"
1225
+ #~ msgstr "Vous avez %s images"
1226
+
1227
+ #~ msgid "You actually have %s of images in your library."
1228
+ #~ msgstr "Vous avez actuellement %s d’images dans votre bibliothèque."
1229
+
1230
+ #~ msgid "Checkout"
1231
+ #~ msgstr "Commander"
1232
+
1233
+ #~ msgid "Your order"
1234
+ #~ msgstr "Votre commande"
1235
+
1236
+ #~ msgid "%scancel%sYou just removed %s"
1237
+ #~ msgstr "%sannuler%sVous venez de supprimer %s"
1238
+
1239
+ #~ msgid "Remove this item"
1240
+ #~ msgstr "Retirer cet item"
1241
+
1242
+ #~ msgid "%s per month"
1243
+ #~ msgstr "%s par mois"
1244
+
1245
+ #~ msgid "one time %s"
1246
+ #~ msgstr "« One Time » %s"
1247
 
1248
  #~ msgid ""
1249
+ #~ "Switch to yearly subscription and <br><strong class=\"imagify-dark\">save "
1250
+ #~ "%s per year!</strong>"
 
1251
  #~ msgstr ""
1252
+ #~ "Passez à la souscription annuelle et <br><strong class=\"imagify-dark"
1253
+ #~ "\">économisez %s par an&nbsp;!</strong>"
 
 
1254
 
1255
+ #~ msgid ""
1256
+ #~ "Perfect!<br>You're <strong class=\"imagify-dark\">saving %s per year!</"
1257
+ #~ "strong>"
1258
+ #~ msgstr ""
1259
+ #~ "Parfait&nbsp;!<br>Vous <strong class=\"imagify-dark\">économisez %s par "
1260
+ #~ "an&nbsp;!</strong>"
1261
 
1262
  #~ msgid ""
1263
+ #~ "All images greater than %s%% will be optimized when using a paying monthly "
1264
+ #~ "plan."
1265
  #~ msgstr ""
1266
+ #~ "Toutes les images de plus de %s %% seront optimisées lors de l'utilisation "
1267
+ #~ "d'un abonnement mensuel payant."
1268
 
1269
  #~ msgid "You optimized %s of images on your website"
1270
  #~ msgstr "Vous avez optimisé %s des images de votre site"
1271
 
1272
  #~ msgid ""
1273
+ #~ "Images greater than 5 MB will be optimized when using a paying monthly plan."
 
1274
  #~ msgstr ""
1275
+ #~ "Les images supérieures à 5 Mo seront optimisées lors de l'utilisation d'un "
1276
+ #~ "forfait mensuel payant."
1277
 
1278
  #~ msgid "Your default setting:"
1279
  #~ msgstr "Votre réglage par défaut :"
1291
  #~ msgstr ""
1292
  #~ "Réduisez drastiquement le poids de vos images sans perte de qualité, "
1293
  #~ "accélérez la rapidité de votre site, boostez votre SEO et économisez de "
1294
+ #~ "l’argent sur votre bande passante en utilisant Imagify, le nouvel outil le "
1295
+ #~ "plus avancé d’optimisation des images."
1296
 
1297
  #~ msgid ""
1298
  #~ "%1$sCongratulations%2$s, you have optimized %1$s%3$d images%2$s and "
1299
  #~ "improved your website's by reducing your images size."
1300
  #~ msgstr ""
1301
+ #~ "%1$Félicitations%2$s ! Vous avez optimisé %1$s%3$d images%2$s et améliorez "
1302
+ #~ "le temps de chargement de votre site en réduisant le poids de vos images."
 
1303
 
1304
  #~ msgid ""
1305
  #~ "Sorry, our servers are temporally unaccessible. Please, try again in a "
1319
 
1320
  #~ msgid ""
1321
  #~ "If you are a photographer, you may be interested in by this option if you "
1322
+ #~ "are displaying some infos like your the model of your camera on your pages."
 
1323
  #~ msgstr ""
1324
+ #~ "Si vous êtes un photographe, vous pourriez être intéressé par cette option "
1325
+ #~ "si vous affichez quelques infos comme votre le modèle de votre appareil "
1326
+ #~ "photo sur vos pages."
1327
 
1328
  #~ msgid "Checking in process..."
1329
  #~ msgstr "Vérification en cours…"
1330
 
1331
  #~ msgid ""
1332
+ #~ "%1$sCongratulations%2$s, you have optimized %1$s%3$d images%2$s and reduced "
1333
+ #~ "by %1$s%4$s%2$s%% your images size."
1334
  #~ msgstr ""
1335
+ #~ "%1$sFélicitations%2$s, vous avez optimisé %1$s%3$d images %2$s et réduit de "
1336
+ #~ "%1$s%4$s%2$s%% le poids de vos images."
1337
 
1338
  #~ msgid ""
1339
  #~ "Keep all EXIF data from your images. Exif are informations stored in your "
1344
  #~ "d’exposition, ISO, etc …"
1345
 
1346
  #~ msgid ""
1347
+ #~ "This will provide a huge savings on the initial weight. Sometimes the image "
1348
+ #~ "quality could be degraded."
1349
  #~ msgstr ""
1350
  #~ "Cela permettra de considérablement réduire le poids initial. Parfois, la "
1351
  #~ "qualité de l’image pourra être légèrement dégradée."
1406
  #~ "niveau votre abonnement pour continuer à optimiser vos images."
1407
 
1408
  #~ msgid ""
1409
+ #~ "You have almost used all your credit. Don't forget to upgrade your account "
1410
+ #~ "to continue optimizing your images."
1411
  #~ msgstr ""
1412
  #~ "Vous avez bientôt utilisé tout votre crédit. N’oubliez pas de mettre à "
1413
  #~ "niveau votre abonnement pour continuer à optimiser vos images."
1442
  #~ "You can log in to your Imagify account to %sbuy a pack or subscribe to a "
1443
  #~ "plan%s."
1444
  #~ msgstr ""
1445
+ #~ "Vous pouvez vous connecter à votre compte Imagify pour %sacheter un pack ou "
1446
+ #~ "souscrire à un plan%s."
1447
 
1448
  #~ msgid ""
1449
+ #~ "You have consumed all your credits for this month. You will have <strong>%s "
1450
+ #~ "back on %s</strong>."
1451
  #~ msgstr ""
1452
  #~ "Vous avez consommé tous les crédits pour ce mois. Vous aurez à nouveau "
1453
  #~ "<strong>%s le %s</strong>."
1485
  #~ "d’optimisation."
1486
 
1487
  #~ msgid ""
1488
+ #~ "This mode is a lossless optimization, your images will be optimized without "
1489
+ #~ "any visible change."
1490
  #~ msgstr ""
1491
+ #~ "Ce niveau permet d'optimiser sans perte, vos images seront optimisées sans "
1492
+ #~ "aucun changement visible."
1493
 
1494
  #~ msgid ""
1495
  #~ "This mode will apply all optimizations available to compress furthermore "
1498
  #~ "Ce niveau appliquera toutes les optimisations disponibles pour compresser "
1499
  #~ "les images."
1500
 
1501
+ #~ msgid "If you want the highest weight reduction, we recommend you this mode."
 
1502
  #~ msgstr ""
1503
  #~ "Si vous souhaitez une réduction du poids plus performante, nous vous "
1504
  #~ "recommandons ce niveau."
1505
 
1506
  #~ msgid "Optimize automatically every image you will upload to WordPress."
1507
+ #~ msgstr "Optimisez automatiquement chaque image que vous enverrez à WordPress."
 
1508
 
1509
  #~ msgid ""
1510
  #~ "Please be aware that optimizing a large number of images can take a while "
1545
  #~ "Is your WordPress website too slow? Discover the best caching plugin to "
1546
  #~ "speed up your website."
1547
  #~ msgstr ""
1548
+ #~ "Votre site WordPress est lent ? Découvrer le meilleur plugin de cache pour "
1549
+ #~ "accélérer votre site."
1550
 
1551
  #~ msgid ""
1552
  #~ "Please be aware that optimizing a large number of images can take a whil "
1553
  #~ "depends on your server and network speed."
1554
  #~ msgstr ""
1555
+ #~ "Soyez conscient que l’optimisation d’une grand nombre d’images peut prendre "
1556
+ #~ "du temps en fonction de la rapidité de votre serveur et de votre connexion."
 
1557
 
1558
  #~ msgid "Your API key isn't valid."
1559
  #~ msgstr "Votre clé API n’est pas valide."
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: wp_media
3
  Tags: compress image, images, performance, optimization, photos, upload, resize, gif, png, jpg, reduce image size, retina
4
  Requires at least: 3.7.0
5
- Tested up to: 4.6
6
- Stable tag: 1.5.10
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -135,6 +135,13 @@ When the plugin is disabled, your existing images remain optimized. Backups of t
135
  3. Media Page
136
 
137
  == Changelog ==
 
 
 
 
 
 
 
138
  = 1.5.10 =
139
  * Improvement
140
  * Set to 1 the Bulk buffer size when there are more than 10 thumbnails to avoid "Unkown error" on the Bulk Optimization
@@ -387,4 +394,4 @@ When the plugin is disabled, your existing images remain optimized. Backups of t
387
  * PHP 5.2+ compatibility
388
 
389
  = 1.0 =
390
- * Initial release.
2
  Contributors: wp_media
3
  Tags: compress image, images, performance, optimization, photos, upload, resize, gif, png, jpg, reduce image size, retina
4
  Requires at least: 3.7.0
5
+ Tested up to: 4.6.1
6
+ Stable tag: 1.6
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
135
  3. Media Page
136
 
137
  == Changelog ==
138
+ = 1.6 =
139
+ * NEW Features:
140
+ * Knowing how many MB/GB you need to optimize your existing and future images is complicated. We love to make things easiers, so Imagify will do it and advise you the best plan.
141
+ * You can now buy all the plans without leaving your WordPress administration
142
+ * Improvement
143
+ * Some styles fixed in the interface
144
+
145
  = 1.5.10 =
146
  * Improvement
147
  * Set to 1 the Bulk buffer size when there are more than 10 thumbnails to avoid "Unkown error" on the Bulk Optimization
394
  * PHP 5.2+ compatibility
395
 
396
  = 1.0 =
397
+ * Initial release.
uninstall.php CHANGED
@@ -11,6 +11,10 @@ delete_site_transient( 'imagify_bulk_optimization_level' );
11
  delete_site_transient( 'imagify_large_library' );
12
  delete_site_transient( 'imagify_max_image_size' );
13
 
 
 
 
 
14
  global $wpdb;
15
  // WP transients
16
  $wpdb->query( 'DELETE from ' . $wpdb->options . ' WHERE option_name LIKE "_transient_imagify-async-in-progress-%"' );
11
  delete_site_transient( 'imagify_large_library' );
12
  delete_site_transient( 'imagify_max_image_size' );
13
 
14
+ // Clear scheduled hooks
15
+ wp_clear_scheduled_hook( 'imagify_rating_event' );
16
+ wp_clear_scheduled_hook( 'imagify_update_library_size_calculations_event' );
17
+
18
  global $wpdb;
19
  // WP transients
20
  $wpdb->query( 'DELETE from ' . $wpdb->options . ' WHERE option_name LIKE "_transient_imagify-async-in-progress-%"' );