Version Description
- Added : Section Particles effect
- Added: Filterable gallery capability to remove All label
- Enhancement : Product Grid element with more features
- Fixed: invalid calc funciton in progressbar
- Few minor bugfix and improvements
Download this release
Release Info
| Developer | re_enter_rupok |
| Plugin | |
| Version | 2.9.0 |
| Comparing to | |
| See all releases | |
Code changes from version 2.8.7 to 2.9.0
- admin/assets/css/admin.css +0 -1
- admin/assets/css/eael-notice.css +95 -62
- admin/assets/images/ea-icon-color.png +0 -0
- admin/assets/images/ea-icon.png +0 -0
- admin/assets/images/eael-featured.png +0 -0
- admin/assets/images/gift-icon.png +0 -0
- admin/assets/images/icon-extensions.svg +4 -0
- admin/assets/images/icon-heart.svg +0 -0
- admin/assets/images/icon-modules.svg +0 -0
- admin/assets/images/icon-settings.svg +0 -0
- admin/assets/images/icon-upgrade.svg +0 -0
- admin/assets/images/lock-icon.png +0 -0
- admin/assets/images/wpsp-logo.svg +54 -0
- admin/assets/js/admin.js +0 -0
- admin/assets/vendor/sweetalert2/css/sweetalert2.min.css +0 -0
- admin/assets/vendor/sweetalert2/js/core.js +0 -0
- admin/assets/vendor/sweetalert2/js/sweetalert2.min.js +0 -0
- admin/partials/elements.php +21 -0
- admin/partials/extensions.php +32 -0
- admin/settings.php +3 -1
- assets/css/essential-addons-editor.css +0 -0
- assets/css/essential-addons-elementor.css +321 -245
- assets/css/tooltipster.bundle.min.css +0 -0
- assets/img/accordion.png +0 -0
- assets/img/bg.jpg +0 -0
- assets/img/flexia-preview.jpg +0 -0
- assets/img/play-icon.png +0 -0
- assets/js/eael-scripts.js +201 -2
- assets/js/fancy-text.js +0 -0
- assets/js/isotope.pkgd.min.js +0 -0
- assets/js/jquery.magnific-popup.min.js +0 -0
- assets/js/jquery.resize.min.js +0 -0
- assets/js/load-more.js +0 -0
- assets/js/loading-bar.min.js +0 -0
- assets/js/masonry.min.js +0 -0
- assets/js/mixitup.min.js +0 -0
- assets/js/particles.js +5 -0
- assets/js/tooltipster.bundle.min.js +0 -0
- assets/sass/_particles.scss +3 -0
- assets/sass/_progress-bar.scss +25 -4
- assets/sass/_woo-products.scss +369 -288
- assets/sass/essential-addons-elementor.scss +2 -1
- assets/social-feeds/codebird.js +0 -0
- assets/social-feeds/doT.min.js +0 -0
- assets/social-feeds/jquery.socialfeed.js +0 -0
- assets/social-feeds/moment.js +0 -0
- elements/advance-accordion/advance-accordion.php +0 -0
- elements/advance-tabs/advance-tabs.php +0 -0
- elements/caldera-forms/caldera-forms.php +0 -0
- elements/call-to-action/call-to-action.php +0 -0
- elements/countdown/countdown.php +0 -0
- elements/creative-button/creative-button.php +0 -0
- elements/data-table/data-table.php +0 -0
- elements/dual-color-header/dual-color-header.php +0 -0
- elements/facebook-feed/facebook-feed.php +0 -0
- elements/fancy-text/fancy-text.php +0 -0
- elements/filterable-gallery/filterable-gallery.php +7 -3
- elements/gravity-form/gravity-form.php +0 -0
- elements/image-accordion/image-accordion.php +0 -0
- elements/infobox/infobox.php +0 -0
- elements/ninja-form/ninja-form.php +0 -0
- elements/post-timeline/post-timeline.php +0 -0
- elements/pricing-table/pricing-table.php +0 -0
- elements/product-grid/product-grid.php +212 -190
- elements/team-members/team-members.php +0 -0
- elements/tooltip/tooltip.php +0 -0
- elements/twitter-feed/twitter-feed.php +0 -0
- elements/weforms/weforms.php +0 -0
- elements/wpforms/wpforms.php +0 -0
- essential_adons_elementor.php +31 -178
- extensions/eael-particle-section/eael-particle-section.php +192 -0
- extensions/eael-particle-section/particle-themes.php +554 -0
- includes/class-plugin-usage-tracker.php +6 -4
- includes/class-wpdev-core-install.php +109 -0
- includes/class-wpdev-notices.php +782 -0
- includes/eae-posts-group-control.php +0 -0
- includes/eael-rollback.php +43 -71
- includes/elementor-helper.php +0 -0
- includes/extensions.php +46 -0
- includes/queries.php +0 -0
- includes/templates/content.php +0 -0
- includes/templates/product-loop.php +37 -0
- includes/version-rollback.php +1 -0
- readme.txt +22 -3
admin/assets/css/admin.css
CHANGED
|
@@ -330,7 +330,6 @@ textarea.eael-form-control {
|
|
| 330 |
animation-iteration-count: infinite;
|
| 331 |
animation-timing-function: linear;
|
| 332 |
}
|
| 333 |
-
}
|
| 334 |
|
| 335 |
@-webkit-keyframes rotate {
|
| 336 |
from {-webkit-transform: rotate(0deg);}
|
| 330 |
animation-iteration-count: infinite;
|
| 331 |
animation-timing-function: linear;
|
| 332 |
}
|
|
|
|
| 333 |
|
| 334 |
@-webkit-keyframes rotate {
|
| 335 |
from {-webkit-transform: rotate(0deg);}
|
admin/assets/css/eael-notice.css
CHANGED
|
@@ -1,65 +1,98 @@
|
|
| 1 |
-
|
| 2 |
/* review notice */
|
| 3 |
|
| 4 |
-
.
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
}
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
}
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
.eael-review-text
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
.
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
}
|
|
|
|
| 1 |
/* review notice */
|
| 2 |
|
| 3 |
+
.wpdeveloper-review-notice {
|
| 4 |
+
padding: 10px;
|
| 5 |
+
background-color: #fff;
|
| 6 |
+
border-radius: 3px;
|
| 7 |
+
margin: 15px;
|
| 8 |
+
border-left: 4px solid transparent;
|
| 9 |
+
display: flex;
|
| 10 |
+
align-items: center;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
.wpdeveloper-review-notice:after {
|
| 14 |
+
content: '';
|
| 15 |
+
display: table;
|
| 16 |
+
clear: both;
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
.wpdeveloper-notice-thumbnail {
|
| 20 |
+
width: 90px;
|
| 21 |
+
float: left;
|
| 22 |
+
padding: 5px;
|
| 23 |
+
text-align: center;
|
| 24 |
+
border-right: 4px solid transparent;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
.wpdeveloper-notice-thumbnail img {
|
| 28 |
+
width: 72px;
|
| 29 |
+
opacity: .85;
|
| 30 |
+
transition: all .3s;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
.wpdeveloper-notice-thumbnail img:hover {
|
| 34 |
+
opacity: 1;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
.eael-review-text {
|
| 38 |
+
overflow: hidden;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
.eael-review-text h3 {
|
| 42 |
+
font-size: 24px;
|
| 43 |
+
margin: 0 0 5px;
|
| 44 |
+
font-weight: 400;
|
| 45 |
+
line-height: 1.3;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
.eael-review-text p {
|
| 49 |
+
font-size: 13px;
|
| 50 |
+
margin: 0 0 5px;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
.wpdeveloper-notice-link {
|
| 54 |
+
margin: 8px 0 0 0;
|
| 55 |
+
padding: 0;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
.wpdeveloper-notice-link li {
|
| 59 |
+
display: inline-block;
|
| 60 |
+
margin-right: 15px;
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
.wpdeveloper-notice-link li a {
|
| 64 |
+
display: inline-block;
|
| 65 |
+
color: #10738B;
|
| 66 |
+
text-decoration: none;
|
| 67 |
+
padding-left: 26px;
|
| 68 |
+
position: relative;
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
.wpdeveloper-notice-link li a span {
|
| 72 |
+
position: absolute;
|
| 73 |
+
left: 0;
|
| 74 |
+
top: -2px;
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
.wpdeveloper-upsale-notice .wpdeveloper-notice-message {
|
| 78 |
+
display: flex;
|
| 79 |
+
align-items: center;
|
| 80 |
+
padding: 10px 0;
|
| 81 |
+
}
|
| 82 |
+
.wpdeveloper-upsale-notice .wpdeveloper-notice-message + .notice-dismiss {
|
| 83 |
+
top: 18px;
|
| 84 |
+
}
|
| 85 |
+
.wpdeveloper-upsale-notice #plugin-install-core {
|
| 86 |
+
margin-left: 10px;
|
| 87 |
+
}
|
| 88 |
+
.notice.notice-has-thumbnail {
|
| 89 |
+
padding-left: 0px;
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
.wpdeveloper-upsale-notice {
|
| 93 |
+
display: flex;
|
| 94 |
+
}
|
| 95 |
+
.wpdeveloper-upsale-notice .wpdeveloper-notice-thumbnail {
|
| 96 |
+
padding: 0;
|
| 97 |
+
width: 80px;
|
| 98 |
}
|
admin/assets/images/ea-icon-color.png
CHANGED
|
File without changes
|
admin/assets/images/ea-icon.png
CHANGED
|
File without changes
|
admin/assets/images/eael-featured.png
CHANGED
|
File without changes
|
admin/assets/images/gift-icon.png
CHANGED
|
File without changes
|
admin/assets/images/icon-extensions.svg
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80">
|
| 3 |
+
<path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M 9 11 C 6.8026661 11 5 12.802666 5 15 L 5 27 L 5 28 L 5 65 C 5 67.197334 6.8026661 69 9 69 L 71 69 C 73.197334 69 75 67.197334 75 65 L 75 27 C 75 24.802666 73.197334 23 71 23 L 70 23 L 70 21 C 70 18.802666 68.197334 17 66 17 L 28.166016 17 L 27.205078 14.693359 L 27.205078 14.691406 C 26.27448 12.459084 24.086456 11 21.667969 11 L 9 11 z M 9 13 L 21.667969 13 C 23.284912 13 24.7376 13.968195 25.359375 15.460938 L 26.833984 19 L 66 19 C 67.116666 19 68 19.883334 68 21 L 68 23 L 9 23 C 8.2573422 23 7.5981308 23.261659 7 23.619141 L 7 15 C 7 13.883334 7.8833339 13 9 13 z M 9 25 L 71 25 C 72.116666 25 73 25.883334 73 27 L 73 65 C 73 66.116666 72.116666 67 71 67 L 9 67 C 7.8833339 67 7 66.116666 7 65 L 7 28 L 7 27 C 7 25.883334 7.8833339 25 9 25 z M 69 26 A 1 1 0 0 0 68 27 A 1 1 0 0 0 69 28 A 1 1 0 0 0 70 27 A 1 1 0 0 0 69 26 z M 40 29 C 37.250484 29 35 31.250484 35 34 C 35 34.36902 35.197011 34.656907 35.275391 35 L 31 35 C 29.35503 35 28 36.35503 28 38 L 28 41.275391 C 27.656907 41.197011 27.36902 41 27 41 C 24.250484 41 22 43.250484 22 46 C 22 48.749516 24.250484 51 27 51 C 27.36902 51 27.656907 50.802989 28 50.724609 L 28 55 C 28 56.64497 29.35503 58 31 58 L 34 58 L 37.414062 58 L 37.09375 56.751953 C 37.032056 56.511196 37 56.259976 37 56 C 37 54.331516 38.331516 53 40 53 C 41.668484 53 43 54.331516 43 56 C 43 56.259976 42.96794 56.511196 42.90625 56.751953 L 42.585938 58 L 45 58 L 49 58 C 50.64497 58 52 56.64497 52 55 L 52 51 L 52 48.585938 L 50.751953 48.90625 C 50.511196 48.967944 50.259976 49 50 49 C 48.331516 49 47 47.668484 47 46 C 47 44.331516 48.331516 43 50 43 C 50.259976 43 50.511196 43.03206 50.751953 43.09375 L 52 43.414062 L 52 41 L 52 38 C 52 36.35503 50.64497 35 49 35 L 44.724609 35 C 44.802989 34.656907 45 34.36902 45 34 C 45 31.250484 42.749516 29 40 29 z M 69 30 A 1 1 0 0 0 68 31 A 1 1 0 0 0 69 32 A 1 1 0 0 0 70 31 A 1 1 0 0 0 69 30 z M 40 31 C 41.668484 31 43 32.331516 43 34 C 43 34.539832 42.847747 35.040361 42.582031 35.496094 L 41.705078 37 L 49 37 C 49.56503 37 50 37.43497 50 38 L 50 41 C 47.250484 41 45 43.250484 45 46 C 45 48.749516 47.250484 51 50 51 L 50 55 C 50 55.56503 49.56503 56 49 56 L 45 56 C 45 53.250484 42.749516 51 40 51 C 37.250484 51 35 53.250484 35 56 L 34 56 L 31 56 C 30.43497 56 30 55.56503 30 55 L 30 47.705078 L 28.496094 48.582031 C 28.040361 48.847747 27.539832 49 27 49 C 25.331516 49 24 47.668484 24 46 C 24 44.331516 25.331516 43 27 43 C 27.539832 43 28.040361 43.152253 28.496094 43.417969 L 30 44.294922 L 30 38 C 30 37.43497 30.43497 37 31 37 L 38.294922 37 L 37.417969 35.496094 C 37.152253 35.040361 37 34.539832 37 34 C 37 32.331516 38.331516 31 40 31 z M 69 34 A 1 1 0 0 0 68 35 A 1 1 0 0 0 69 36 A 1 1 0 0 0 70 35 A 1 1 0 0 0 69 34 z M 69 38 A 1 1 0 0 0 68 39 A 1 1 0 0 0 69 40 A 1 1 0 0 0 70 39 A 1 1 0 0 0 69 38 z M 69 42 A 1 1 0 0 0 68 43 A 1 1 0 0 0 69 44 A 1 1 0 0 0 70 43 A 1 1 0 0 0 69 42 z M 69 46 A 1 1 0 0 0 68 47 A 1 1 0 0 0 69 48 A 1 1 0 0 0 70 47 A 1 1 0 0 0 69 46 z M 69 50 A 1 1 0 0 0 68 51 A 1 1 0 0 0 69 52 A 1 1 0 0 0 70 51 A 1 1 0 0 0 69 50 z M 69 54 A 1 1 0 0 0 68 55 A 1 1 0 0 0 69 56 A 1 1 0 0 0 70 55 A 1 1 0 0 0 69 54 z M 69 58 A 1 1 0 0 0 68 59 A 1 1 0 0 0 69 60 A 1 1 0 0 0 70 59 A 1 1 0 0 0 69 58 z M 9 62 A 1 1 0 0 0 8 63 A 1 1 0 0 0 9 64 A 1 1 0 0 0 10 63 A 1 1 0 0 0 9 62 z M 13 62 A 1 1 0 0 0 12 63 A 1 1 0 0 0 13 64 A 1 1 0 0 0 14 63 A 1 1 0 0 0 13 62 z M 17 62 A 1 1 0 0 0 16 63 A 1 1 0 0 0 17 64 A 1 1 0 0 0 18 63 A 1 1 0 0 0 17 62 z M 21 62 A 1 1 0 0 0 20 63 A 1 1 0 0 0 21 64 A 1 1 0 0 0 22 63 A 1 1 0 0 0 21 62 z M 25 62 A 1 1 0 0 0 24 63 A 1 1 0 0 0 25 64 A 1 1 0 0 0 26 63 A 1 1 0 0 0 25 62 z M 29 62 A 1 1 0 0 0 28 63 A 1 1 0 0 0 29 64 A 1 1 0 0 0 30 63 A 1 1 0 0 0 29 62 z M 33 62 A 1 1 0 0 0 32 63 A 1 1 0 0 0 33 64 A 1 1 0 0 0 34 63 A 1 1 0 0 0 33 62 z M 37 62 A 1 1 0 0 0 36 63 A 1 1 0 0 0 37 64 A 1 1 0 0 0 38 63 A 1 1 0 0 0 37 62 z M 41 62 A 1 1 0 0 0 40 63 A 1 1 0 0 0 41 64 A 1 1 0 0 0 42 63 A 1 1 0 0 0 41 62 z M 45 62 A 1 1 0 0 0 44 63 A 1 1 0 0 0 45 64 A 1 1 0 0 0 46 63 A 1 1 0 0 0 45 62 z M 49 62 A 1 1 0 0 0 48 63 A 1 1 0 0 0 49 64 A 1 1 0 0 0 50 63 A 1 1 0 0 0 49 62 z M 53 62 A 1 1 0 0 0 52 63 A 1 1 0 0 0 53 64 A 1 1 0 0 0 54 63 A 1 1 0 0 0 53 62 z M 57 62 A 1 1 0 0 0 56 63 A 1 1 0 0 0 57 64 A 1 1 0 0 0 58 63 A 1 1 0 0 0 57 62 z M 61 62 A 1 1 0 0 0 60 63 A 1 1 0 0 0 61 64 A 1 1 0 0 0 62 63 A 1 1 0 0 0 61 62 z M 65 62 A 1 1 0 0 0 64 63 A 1 1 0 0 0 65 64 A 1 1 0 0 0 66 63 A 1 1 0 0 0 65 62 z M 69 62 A 1 1 0 0 0 68 63 A 1 1 0 0 0 69 64 A 1 1 0 0 0 70 63 A 1 1 0 0 0 69 62 z"></path>
|
| 4 |
+
</svg>
|
admin/assets/images/icon-heart.svg
CHANGED
|
File without changes
|
admin/assets/images/icon-modules.svg
CHANGED
|
File without changes
|
admin/assets/images/icon-settings.svg
CHANGED
|
File without changes
|
admin/assets/images/icon-upgrade.svg
CHANGED
|
File without changes
|
admin/assets/images/lock-icon.png
CHANGED
|
File without changes
|
admin/assets/images/wpsp-logo.svg
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 960 960" style="enable-background:new 0 0 960 960;" xml:space="preserve">
|
| 3 |
+
<style type="text/css">
|
| 4 |
+
.st0{fill:#FFFFFF;}
|
| 5 |
+
.st1{fill:#6c63ff;}
|
| 6 |
+
.st2{fill:#FFFFFF;}
|
| 7 |
+
.st3{fill:#CCCCCC;}
|
| 8 |
+
.st4{fill:#E6E6E6;}
|
| 9 |
+
.st5{fill:#6c63ff;}
|
| 10 |
+
.st6{fill:#F2F2F2;}
|
| 11 |
+
.st7{fill:none;stroke:#999999;stroke-width:17.9763;stroke-linecap:round;stroke-miterlimit:10;}
|
| 12 |
+
.st8{fill:none;stroke:#333333;stroke-width:8.9882;stroke-linecap:round;stroke-miterlimit:10;}
|
| 13 |
+
.st9{fill:none;stroke:#C1272D;stroke-width:5.9921;stroke-linecap:round;stroke-miterlimit:10;}
|
| 14 |
+
.st10{fill:#245F7F;}
|
| 15 |
+
</style>
|
| 16 |
+
<g>
|
| 17 |
+
<path class="st0" d="M601.2,699.8H205c-30.7,0-55.6-24.9-55.6-55.6V248c0-30.7,24.9-55.6,55.6-55.6h396.2 c30.7,0,55.6,24.9,55.6,55.6v396.2C656.8,674.9,631.9,699.8,601.2,699.8z"/>
|
| 18 |
+
<path class="st1" d="M601.2,192.4H205c-30.7,0-55.6,24.9-55.6,55.6v88.5h507.4V248C656.8,217.3,631.9,192.4,601.2,192.4z"/>
|
| 19 |
+
<circle class="st2" cx="253.3" cy="264.5" r="36.7"/>
|
| 20 |
+
<circle class="st2" cx="551.6" cy="264.5" r="36.7"/>
|
| 21 |
+
<path class="st3" d="M253.3,275.7L253.3,275.7c-11.8,0-21.3-9.6-21.3-21.3v-85.8c0-11.8,9.6-21.3,21.3-21.3l0,0 c11.8,0,21.3,9.6,21.3,21.3v85.8C274.6,266.2,265.1,275.7,253.3,275.7z"/>
|
| 22 |
+
<path class="st3" d="M551.6,275.7L551.6,275.7c-11.8,0-21.3-9.6-21.3-21.3v-85.8c0-11.8,9.6-21.3,21.3-21.3l0,0 c11.8,0,21.3,9.6,21.3,21.3v85.8C573,266.2,563.4,275.7,551.6,275.7z"/>
|
| 23 |
+
<rect x="215.7" y="370.9" class="st4" width="75.2" height="75.2"/>
|
| 24 |
+
<rect x="313" y="370.9" class="st4" width="75.2" height="75.2"/>
|
| 25 |
+
<rect x="410.2" y="370.9" class="st4" width="75.2" height="75.2"/>
|
| 26 |
+
<rect x="507.5" y="370.9" class="st4" width="75.2" height="75.2"/>
|
| 27 |
+
<rect x="215.7" y="465" class="st4" width="75.2" height="75.2"/>
|
| 28 |
+
<rect x="313" y="465" class="st1" width="75.2" height="75.2" opacity="0.75"/>
|
| 29 |
+
<rect x="410.2" y="465" class="st4" width="75.2" height="75.2"/>
|
| 30 |
+
<rect x="507.5" y="465" class="st4" width="75.2" height="75.2"/>
|
| 31 |
+
<rect x="215.7" y="559.1" class="st4" width="75.2" height="75.2"/>
|
| 32 |
+
<rect x="313" y="559.1" class="st4" width="75.2" height="75.2"/>
|
| 33 |
+
<rect x="410.2" y="559.1" class="st4" width="75.2" height="75.2"/>
|
| 34 |
+
<rect x="507.5" y="559.1" class="st4" width="75.2" height="75.2"/>
|
| 35 |
+
<g>
|
| 36 |
+
<circle class="st5" cx="621.9" cy="624" r="188.7"/>
|
| 37 |
+
<circle class="st0" cx="621.9" cy="624" r="148"/>
|
| 38 |
+
<path class="st6" d="M486.6,636.8c0-81.7,66.3-148,148-148c37.6,0,72,14.1,98.1,37.2c-27.1-30.6-66.7-49.9-110.8-49.9 c-81.7,0-148,66.3-148,148c0,44.1,19.3,83.7,49.9,110.8C500.7,708.7,486.6,674.4,486.6,636.8z"/>
|
| 39 |
+
<polyline class="st7" points="621.9,530.4 621.9,624 559,624 "/>
|
| 40 |
+
<g>
|
| 41 |
+
<line class="st8" x1="621.9" y1="508.3" x2="621.9" y2="497.1"/>
|
| 42 |
+
<line class="st8" x1="621.9" y1="756.3" x2="621.9" y2="745.1"/>
|
| 43 |
+
<line class="st8" x1="740.3" y1="626.7" x2="751.5" y2="626.7"/>
|
| 44 |
+
<line class="st8" x1="492.3" y1="626.7" x2="503.5" y2="626.7"/>
|
| 45 |
+
<line class="st8" x1="705.6" y1="710.4" x2="713.5" y2="718.3"/>
|
| 46 |
+
<line class="st8" x1="530.3" y1="535.1" x2="538.2" y2="543"/>
|
| 47 |
+
<line class="st8" x1="538.2" y1="710.4" x2="530.3" y2="718.3"/>
|
| 48 |
+
<line class="st8" x1="713.5" y1="535.1" x2="705.6" y2="543"/>
|
| 49 |
+
</g>
|
| 50 |
+
<line class="st9" x1="604.4" y1="606.3" x2="684.5" y2="687.4"/>
|
| 51 |
+
<circle class="st10" cx="621.9" cy="624" r="16.1"/>
|
| 52 |
+
</g>
|
| 53 |
+
</g>
|
| 54 |
+
</svg>
|
admin/assets/js/admin.js
CHANGED
|
File without changes
|
admin/assets/vendor/sweetalert2/css/sweetalert2.min.css
CHANGED
|
File without changes
|
admin/assets/vendor/sweetalert2/js/core.js
CHANGED
|
File without changes
|
admin/assets/vendor/sweetalert2/js/sweetalert2.min.js
CHANGED
|
File without changes
|
admin/partials/elements.php
CHANGED
|
@@ -346,6 +346,27 @@
|
|
| 346 |
<?php _e( 'Offcanvas Content', 'essential-addons-elementor' ) ?>
|
| 347 |
</p>
|
| 348 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 349 |
</div><!--./checkbox-container-->
|
| 350 |
<div class="eael-save-btn-wrap">
|
| 351 |
<button type="submit" class="button eael-btn js-eael-settings-save"><?php _e('Save settings', 'essential-addons-elementor'); ?></button>
|
| 346 |
<?php _e( 'Offcanvas Content', 'essential-addons-elementor' ) ?>
|
| 347 |
</p>
|
| 348 |
</div>
|
| 349 |
+
<div class="eael-checkbox">
|
| 350 |
+
<input type="checkbox" id="advanced-menu" name="advanced-menu" disabled>
|
| 351 |
+
<label for="advanced-menu" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
|
| 352 |
+
<p class="eael-el-title">
|
| 353 |
+
<?php _e( 'Advanced Menu', 'essential-addons-elementor' ) ?>
|
| 354 |
+
</p>
|
| 355 |
+
</div>
|
| 356 |
+
<div class="eael-checkbox">
|
| 357 |
+
<input type="checkbox" id="image-scroller" name="image-scroller" disabled>
|
| 358 |
+
<label for="image-scroller" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
|
| 359 |
+
<p class="eael-el-title">
|
| 360 |
+
<?php _e( 'Image Scroller', 'essential-addons-elementor' ) ?>
|
| 361 |
+
</p>
|
| 362 |
+
</div>
|
| 363 |
+
<div class="eael-checkbox">
|
| 364 |
+
<input type="checkbox" id="woo-collections" name="woo-collections" disabled>
|
| 365 |
+
<label for="woo-collections" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
|
| 366 |
+
<p class="eael-el-title">
|
| 367 |
+
<?php _e( 'WooCommerce Product Collections', 'essential-addons-elementor' ) ?>
|
| 368 |
+
</p>
|
| 369 |
+
</div>
|
| 370 |
</div><!--./checkbox-container-->
|
| 371 |
<div class="eael-save-btn-wrap">
|
| 372 |
<button type="submit" class="button eael-btn js-eael-settings-save"><?php _e('Save settings', 'essential-addons-elementor'); ?></button>
|
admin/partials/extensions.php
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<div id="extensions" class="eael-settings-tab eael-extensions-list">
|
| 2 |
+
<div class="row">
|
| 3 |
+
<div class="col-full">
|
| 4 |
+
<!-- Content Element Starts -->
|
| 5 |
+
<h3>Available Extensions</h3>
|
| 6 |
+
<div class="eael-checkbox-container">
|
| 7 |
+
|
| 8 |
+
<div class="eael-checkbox">
|
| 9 |
+
<input type="checkbox" id="section-particles" name="section-particles" <?php checked( 1, $this->eael_get_settings['section-particles'], true ); ?> >
|
| 10 |
+
<label for="section-particles"></label>
|
| 11 |
+
<p class="eael-el-title"><?php _e( 'Section Particles Effect', 'essential-addons-elementor' ) ?></p>
|
| 12 |
+
</div>
|
| 13 |
+
|
| 14 |
+
</div>
|
| 15 |
+
<h3>Premium Extensions</h3>
|
| 16 |
+
<div class="eael-checkbox-container">
|
| 17 |
+
|
| 18 |
+
<div class="eael-checkbox">
|
| 19 |
+
<input type="checkbox" id="section-parallax" name="section-parallax" disabled>
|
| 20 |
+
<label for="section-parallax" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
|
| 21 |
+
<p class="eael-el-title"><?php _e( 'Section Parallax Scrolling', 'essential-addons-elementor' ) ?></p>
|
| 22 |
+
</div>
|
| 23 |
+
|
| 24 |
+
</div>
|
| 25 |
+
<!-- Content Element Ends -->
|
| 26 |
+
|
| 27 |
+
<div class="eael-save-btn-wrap">
|
| 28 |
+
<button type="submit" class="button eael-btn js-eael-settings-save"><?php _e('Save settings', 'essential-addons-elementor'); ?></button>
|
| 29 |
+
</div>
|
| 30 |
+
</div>
|
| 31 |
+
</div>
|
| 32 |
+
</div>
|
admin/settings.php
CHANGED
|
@@ -14,7 +14,7 @@ class Eael_Admin_Settings {
|
|
| 14 |
* @var array
|
| 15 |
* @since 2.3.0
|
| 16 |
*/
|
| 17 |
-
public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', '
|
| 18 |
|
| 19 |
/**
|
| 20 |
* Will Contain All Components Default Values
|
|
@@ -169,12 +169,14 @@ class Eael_Admin_Settings {
|
|
| 169 |
<ul class="eael-tabs">
|
| 170 |
<li><a href="#general" class="active"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-settings.svg'; ?>"><span>General</span></a></li>
|
| 171 |
<li><a href="#elements"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-modules.svg'; ?>"><span>Elements</span></a></li>
|
|
|
|
| 172 |
<li><a href="#version-control"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-version-control.svg'; ?>"><span>Version Control</span></a></li>
|
| 173 |
<li><a href="#go-pro"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-upgrade.svg'; ?>"><span>Go Premium</span></a></li>
|
| 174 |
</ul>
|
| 175 |
<?php
|
| 176 |
include('partials/general.php');
|
| 177 |
include('partials/elements.php');
|
|
|
|
| 178 |
include('partials/version-control.php');
|
| 179 |
include('partials/go-pro.php');
|
| 180 |
?>
|
| 14 |
* @var array
|
| 15 |
* @since 2.3.0
|
| 16 |
*/
|
| 17 |
+
public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'interactive-promo', 'post-grid', 'post-block', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table','ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion', 'content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles'];
|
| 18 |
|
| 19 |
/**
|
| 20 |
* Will Contain All Components Default Values
|
| 169 |
<ul class="eael-tabs">
|
| 170 |
<li><a href="#general" class="active"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-settings.svg'; ?>"><span>General</span></a></li>
|
| 171 |
<li><a href="#elements"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-modules.svg'; ?>"><span>Elements</span></a></li>
|
| 172 |
+
<li><a href="#extensions"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-extensions.svg'; ?>"><span>Extensions</span></a></li>
|
| 173 |
<li><a href="#version-control"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-version-control.svg'; ?>"><span>Version Control</span></a></li>
|
| 174 |
<li><a href="#go-pro"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-upgrade.svg'; ?>"><span>Go Premium</span></a></li>
|
| 175 |
</ul>
|
| 176 |
<?php
|
| 177 |
include('partials/general.php');
|
| 178 |
include('partials/elements.php');
|
| 179 |
+
include('partials/extensions.php');
|
| 180 |
include('partials/version-control.php');
|
| 181 |
include('partials/go-pro.php');
|
| 182 |
?>
|
assets/css/essential-addons-editor.css
CHANGED
|
File without changes
|
assets/css/essential-addons-elementor.css
CHANGED
|
@@ -1337,310 +1337,383 @@ span.eael-testimonial-quote {
|
|
| 1337 |
text-align: right;
|
| 1338 |
}
|
| 1339 |
|
| 1340 |
-
|
| 1341 |
/* 09. Product Styles
|
| 1342 |
-
|
| 1343 |
-
.eael-product-
|
| 1344 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1345 |
-webkit-border-radius: 0;
|
| 1346 |
border-radius: 0;
|
|
|
|
| 1347 |
-webkit-box-shadow: none;
|
| 1348 |
box-shadow: none;
|
| 1349 |
}
|
| 1350 |
-
|
| 1351 |
-
.
|
| 1352 |
-
.
|
| 1353 |
-
|
| 1354 |
-
}
|
| 1355 |
-
|
| 1356 |
-
.eael-product-carousel .woocommerce ul.products li.product h3 {
|
| 1357 |
-
padding: 0.5em;
|
| 1358 |
-
}
|
| 1359 |
-
|
| 1360 |
-
.eael-product-carousel .woocommerce .products .star-rating {
|
| 1361 |
-
display: block;
|
| 1362 |
-
float: none;
|
| 1363 |
-
margin: 10px auto;
|
| 1364 |
}
|
| 1365 |
-
|
| 1366 |
-
|
|
|
|
|
|
|
| 1367 |
-webkit-box-shadow: none;
|
| 1368 |
box-shadow: none;
|
| 1369 |
-
display: block;
|
| 1370 |
-
left: auto;
|
| 1371 |
-
margin: 15px;
|
| 1372 |
-
padding: 0.45em 0.5em 0.575em;
|
| 1373 |
-
position: relative;
|
| 1374 |
-
right: auto;
|
| 1375 |
-
text-shadow: none;
|
| 1376 |
-
top: auto;
|
| 1377 |
}
|
| 1378 |
-
|
| 1379 |
-
|
| 1380 |
-
.eael-
|
| 1381 |
-
|
| 1382 |
-
|
| 1383 |
-
-webkit-
|
| 1384 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1385 |
padding: 0;
|
| 1386 |
}
|
| 1387 |
-
|
| 1388 |
-
.eael-
|
| 1389 |
-
.eael-
|
| 1390 |
-
|
| 1391 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1392 |
-webkit-box-shadow: none;
|
| 1393 |
box-shadow: none;
|
| 1394 |
-
|
| 1395 |
-
|
| 1396 |
-
|
| 1397 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1398 |
}
|
| 1399 |
-
|
| 1400 |
-
.eael-
|
| 1401 |
-
.eael-
|
| 1402 |
font-size: 14px;
|
| 1403 |
-
|
| 1404 |
-
margin: 0 0 5px;
|
| 1405 |
-
padding-bottom: 0.5em;
|
| 1406 |
}
|
| 1407 |
-
|
| 1408 |
-
.eael-
|
| 1409 |
-
.eael-
|
| 1410 |
-
|
| 1411 |
-
|
| 1412 |
-
letter-spacing: 0.01rem;
|
| 1413 |
-
text-transform: uppercase;
|
| 1414 |
}
|
| 1415 |
-
|
| 1416 |
-
.eael-
|
| 1417 |
-
.eael-
|
| 1418 |
-
|
| 1419 |
-
|
| 1420 |
-
|
| 1421 |
-
color: #272727;
|
| 1422 |
-
font-size: 18px;
|
| 1423 |
-
font-weight: normal;
|
| 1424 |
}
|
| 1425 |
-
|
| 1426 |
-
.eael-
|
| 1427 |
-
.eael-
|
| 1428 |
-
display:
|
|
|
|
|
|
|
|
|
|
| 1429 |
}
|
| 1430 |
-
|
| 1431 |
-
.eael-
|
| 1432 |
-
|
| 1433 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1434 |
-webkit-border-radius: 0;
|
| 1435 |
border-radius: 0;
|
| 1436 |
-
|
| 1437 |
-
|
| 1438 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1439 |
display: block;
|
|
|
|
|
|
|
| 1440 |
font-size: 14px;
|
| 1441 |
-
|
| 1442 |
-
|
| 1443 |
-
|
| 1444 |
-
|
| 1445 |
-
right: auto;
|
| 1446 |
-
text-shadow: none;
|
| 1447 |
-
top: auto;
|
| 1448 |
-
width: 80%;
|
| 1449 |
}
|
| 1450 |
-
|
| 1451 |
-
.eael-
|
| 1452 |
-
|
| 1453 |
-
border: 1px solid #e74c3c;
|
| 1454 |
-
color: #fff;
|
| 1455 |
}
|
| 1456 |
-
|
| 1457 |
-
.eael-
|
| 1458 |
-
|
| 1459 |
-
left: auto;
|
| 1460 |
-
opacity: 1;
|
| 1461 |
-
position: relative;
|
| 1462 |
-
right: auto;
|
| 1463 |
-
top: 5px;
|
| 1464 |
-
display: block;
|
| 1465 |
-
margin: 0 auto;
|
| 1466 |
-
width: 110px;
|
| 1467 |
}
|
| 1468 |
-
|
| 1469 |
-
.eael-product-
|
| 1470 |
-
.eael-
|
| 1471 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1472 |
}
|
| 1473 |
-
|
| 1474 |
-
.eael-
|
| 1475 |
-
|
| 1476 |
-
color: #f2b01e;
|
| 1477 |
}
|
| 1478 |
-
|
| 1479 |
-
.eael-product-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1480 |
-webkit-border-radius: 0;
|
| 1481 |
border-radius: 0;
|
|
|
|
| 1482 |
-webkit-box-shadow: none;
|
| 1483 |
box-shadow: none;
|
| 1484 |
-
display: block;
|
| 1485 |
-
font-size: 14px;
|
| 1486 |
-
height: 100px;
|
| 1487 |
-
letter-spacing: 0;
|
| 1488 |
-
line-height: 160px;
|
| 1489 |
-
position: absolute;
|
| 1490 |
-
text-align: center;
|
| 1491 |
-
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.6);
|
| 1492 |
-
text-transform: uppercase;
|
| 1493 |
-
-webkit-transform: rotate(-45deg);
|
| 1494 |
-
-ms-transform: rotate(-45deg);
|
| 1495 |
-
transform: rotate(-45deg);
|
| 1496 |
-
width: 200px;
|
| 1497 |
-
z-index: 1;
|
| 1498 |
}
|
| 1499 |
-
|
| 1500 |
-
.eael-
|
| 1501 |
-
|
| 1502 |
-
top: -45px;
|
| 1503 |
}
|
| 1504 |
-
|
| 1505 |
-
.eael-product-
|
| 1506 |
-
|
|
|
|
|
|
|
| 1507 |
}
|
| 1508 |
-
|
| 1509 |
-
|
| 1510 |
-
|
| 1511 |
-
|
| 1512 |
-
|
| 1513 |
-
|
| 1514 |
-
|
| 1515 |
-
position: relative;
|
| 1516 |
-
text-align: center;
|
| 1517 |
}
|
| 1518 |
-
|
| 1519 |
-
.eael-
|
| 1520 |
-
bottom: -63px;
|
| 1521 |
-
margin-top: -63px;
|
| 1522 |
position: relative;
|
| 1523 |
-
|
| 1524 |
-
-
|
| 1525 |
-
-o-transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
|
| 1526 |
-
transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
|
| 1527 |
-
}
|
| 1528 |
-
|
| 1529 |
-
.eael-product-carousel.eael-product-reveal .woocommerce li.product:hover .entry-wrap {
|
| 1530 |
-
bottom: 0;
|
| 1531 |
-
}
|
| 1532 |
-
|
| 1533 |
-
.eael-product-carousel.eael-product-reveal .woocommerce li.product:hover .entry-wrap::before {
|
| 1534 |
-
background-color: #fff;
|
| 1535 |
-
display: block;
|
| 1536 |
}
|
| 1537 |
-
|
| 1538 |
-
.eael-
|
| 1539 |
-
background-color: rgba(255, 255, 255, 0.9);
|
| 1540 |
-
left: auto;
|
| 1541 |
-
opacity: 0;
|
| 1542 |
position: absolute;
|
| 1543 |
-
|
| 1544 |
-
top: 10px;
|
| 1545 |
-
}
|
| 1546 |
-
|
| 1547 |
-
.eael-product-carousel.eael-product-reveal .woocommerce li.product:hover .star-rating-container {
|
| 1548 |
-
opacity: 1;
|
| 1549 |
-
}
|
| 1550 |
-
|
| 1551 |
-
/*--- Product Reveal Styles ---*/
|
| 1552 |
-
.eael-product-carousel.eael-product-overlay .woocommerce li.product .entry-wrap {
|
| 1553 |
-
bottom: auto;
|
| 1554 |
-
font-size: 14px;
|
| 1555 |
left: 0;
|
| 1556 |
-
padding: 0;
|
| 1557 |
-
position: absolute;
|
| 1558 |
right: 0;
|
| 1559 |
-
|
| 1560 |
-
-webkit-
|
| 1561 |
-
|
| 1562 |
-
|
| 1563 |
}
|
| 1564 |
-
|
| 1565 |
-
.eael-product-
|
| 1566 |
-
|
| 1567 |
-
|
|
|
|
|
|
|
|
|
|
| 1568 |
font-size: 14px;
|
| 1569 |
-
|
| 1570 |
-
padding: 0;
|
| 1571 |
-
position: absolute;
|
| 1572 |
-
right: 0;
|
| 1573 |
text-align: center;
|
| 1574 |
-
|
| 1575 |
-
-
|
| 1576 |
-
|
| 1577 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1578 |
}
|
| 1579 |
-
|
| 1580 |
-
.eael-
|
| 1581 |
-
|
| 1582 |
-
content: "";
|
| 1583 |
-
display: block;
|
| 1584 |
-
height: 50em;
|
| 1585 |
-
left: 0;
|
| 1586 |
-
position: absolute;
|
| 1587 |
-
right: 0;
|
| 1588 |
-
top: 0;
|
| 1589 |
-
-webkit-transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
|
| 1590 |
-
-o-transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
|
| 1591 |
-
transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
|
| 1592 |
-
z-index: 0;
|
| 1593 |
}
|
| 1594 |
-
|
| 1595 |
-
.eael-
|
| 1596 |
-
|
| 1597 |
}
|
| 1598 |
-
|
| 1599 |
-
.eael-
|
| 1600 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1601 |
}
|
| 1602 |
-
|
| 1603 |
-
.eael-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1604 |
font-size: 14px;
|
| 1605 |
-
line-height:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1606 |
margin: 0;
|
| 1607 |
-
|
| 1608 |
-
padding: 1.5em;
|
| 1609 |
-
-o-text-overflow: ellipsis;
|
| 1610 |
-
text-overflow: ellipsis;
|
| 1611 |
-
text-transform: uppercase;
|
| 1612 |
-
white-space: nowrap;
|
| 1613 |
}
|
| 1614 |
-
|
| 1615 |
-
.eael-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1616 |
color: #fff;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1617 |
}
|
| 1618 |
-
|
| 1619 |
-
.eael-
|
| 1620 |
-
|
| 1621 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1622 |
}
|
| 1623 |
-
|
| 1624 |
-
.eael-
|
| 1625 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1626 |
color: #fff;
|
| 1627 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1628 |
}
|
| 1629 |
-
|
| 1630 |
-
.eael-
|
| 1631 |
-
|
|
|
|
| 1632 |
}
|
| 1633 |
-
|
| 1634 |
-
.eael-
|
| 1635 |
-
|
|
|
|
| 1636 |
}
|
| 1637 |
-
|
| 1638 |
-
.eael-
|
| 1639 |
-
|
|
|
|
|
|
|
| 1640 |
}
|
| 1641 |
-
|
| 1642 |
-
.eael-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1643 |
opacity: 1;
|
|
|
|
|
|
|
|
|
|
| 1644 |
}
|
| 1645 |
|
| 1646 |
/*--------------------------------*/
|
|
@@ -7051,7 +7124,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover {
|
|
| 7051 |
.eael-progressbar-line .eael-progressbar-count-wrap {
|
| 7052 |
position: absolute;
|
| 7053 |
right: 0;
|
| 7054 |
-
bottom: calc(100% +5px);
|
| 7055 |
font-size: 16px;
|
| 7056 |
font-weight: 400;
|
| 7057 |
line-height: 1;
|
|
@@ -7208,7 +7281,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover {
|
|
| 7208 |
position: absolute;
|
| 7209 |
top: 0;
|
| 7210 |
left: -35px;
|
| 7211 |
-
width: calc(100% +70px);
|
| 7212 |
height: 100%;
|
| 7213 |
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
| 7214 |
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
|
@@ -7371,3 +7444,6 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover {
|
|
| 7371 |
transform: none;
|
| 7372 |
}
|
| 7373 |
}
|
|
|
|
|
|
|
|
|
| 1337 |
text-align: right;
|
| 1338 |
}
|
| 1339 |
|
| 1340 |
+
/*--------------------------*/
|
| 1341 |
/* 09. Product Styles
|
| 1342 |
+
/*--------------------------*/
|
| 1343 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product,
|
| 1344 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product,
|
| 1345 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product {
|
| 1346 |
+
position: relative;
|
| 1347 |
+
float: left;
|
| 1348 |
+
overflow: hidden;
|
| 1349 |
+
text-align: center;
|
| 1350 |
+
padding: 0;
|
| 1351 |
-webkit-border-radius: 0;
|
| 1352 |
border-radius: 0;
|
| 1353 |
+
background-color: #fff;
|
| 1354 |
-webkit-box-shadow: none;
|
| 1355 |
box-shadow: none;
|
| 1356 |
}
|
| 1357 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a,
|
| 1358 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a,
|
| 1359 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a {
|
| 1360 |
+
text-decoration: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1361 |
}
|
| 1362 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a:hover, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a:hover,
|
| 1363 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a:hover,
|
| 1364 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a:hover {
|
| 1365 |
+
outline: none;
|
| 1366 |
-webkit-box-shadow: none;
|
| 1367 |
box-shadow: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1368 |
}
|
| 1369 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product img, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product img,
|
| 1370 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product img,
|
| 1371 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product img {
|
| 1372 |
+
width: 100%;
|
| 1373 |
+
height: auto;
|
| 1374 |
+
-webkit-backface-visibility: hidden;
|
| 1375 |
+
backface-visibility: hidden;
|
| 1376 |
+
}
|
| 1377 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title,
|
| 1378 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title,
|
| 1379 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title {
|
| 1380 |
+
font-size: 16px;
|
| 1381 |
+
font-weight: 700;
|
| 1382 |
+
line-height: 1;
|
| 1383 |
+
color: #333;
|
| 1384 |
+
margin: 25px 0 12px;
|
| 1385 |
padding: 0;
|
| 1386 |
}
|
| 1387 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .onsale, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .onsale,
|
| 1388 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .onsale,
|
| 1389 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .onsale {
|
| 1390 |
+
display: block;
|
| 1391 |
+
line-height: 170px;
|
| 1392 |
+
font-size: 13px;
|
| 1393 |
+
text-align: center;
|
| 1394 |
+
letter-spacing: 0;
|
| 1395 |
+
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.6);
|
| 1396 |
+
text-transform: uppercase;
|
| 1397 |
+
color: #fff;
|
| 1398 |
+
background-color: #ff2a13;
|
| 1399 |
+
-webkit-border-radius: 0;
|
| 1400 |
+
border-radius: 0;
|
| 1401 |
+
border: none;
|
| 1402 |
-webkit-box-shadow: none;
|
| 1403 |
box-shadow: none;
|
| 1404 |
+
position: absolute;
|
| 1405 |
+
height: 100px;
|
| 1406 |
+
width: 200px;
|
| 1407 |
+
z-index: 1;
|
| 1408 |
+
left: -100px;
|
| 1409 |
+
top: -50px;
|
| 1410 |
+
right: auto;
|
| 1411 |
+
margin: 0;
|
| 1412 |
+
padding: 0;
|
| 1413 |
+
-webkit-transform: rotate(-45deg);
|
| 1414 |
+
-ms-transform: rotate(-45deg);
|
| 1415 |
+
transform: rotate(-45deg);
|
| 1416 |
}
|
| 1417 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price,
|
| 1418 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price,
|
| 1419 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price {
|
| 1420 |
font-size: 14px;
|
| 1421 |
+
margin-bottom: 0;
|
|
|
|
|
|
|
| 1422 |
}
|
| 1423 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price del, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price del,
|
| 1424 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price del,
|
| 1425 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price del {
|
| 1426 |
+
opacity: 0.5;
|
| 1427 |
+
display: inline-block;
|
|
|
|
|
|
|
| 1428 |
}
|
| 1429 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price ins, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price ins,
|
| 1430 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price ins,
|
| 1431 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price ins {
|
| 1432 |
+
font-weight: 400;
|
| 1433 |
+
background-color: transparent;
|
| 1434 |
+
color: #ff2a13;
|
|
|
|
|
|
|
|
|
|
| 1435 |
}
|
| 1436 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .star-rating, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating,
|
| 1437 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .star-rating,
|
| 1438 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating {
|
| 1439 |
+
display: block;
|
| 1440 |
+
float: none;
|
| 1441 |
+
font-size: 14px;
|
| 1442 |
+
margin: 10px auto;
|
| 1443 |
}
|
| 1444 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,
|
| 1445 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button,
|
| 1446 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button {
|
| 1447 |
+
display: inline-block;
|
| 1448 |
+
height: 40px;
|
| 1449 |
+
font-size: 14px;
|
| 1450 |
+
font-weight: 400;
|
| 1451 |
+
line-height: 40px;
|
| 1452 |
+
text-align: center;
|
| 1453 |
+
text-transform: uppercase;
|
| 1454 |
+
color: #fff;
|
| 1455 |
+
background-color: #333;
|
| 1456 |
+
padding: 0 30px;
|
| 1457 |
+
margin: 15px 0;
|
| 1458 |
-webkit-border-radius: 0;
|
| 1459 |
border-radius: 0;
|
| 1460 |
+
}
|
| 1461 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus,
|
| 1462 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus,
|
| 1463 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus {
|
| 1464 |
+
outline: none;
|
| 1465 |
+
}
|
| 1466 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,
|
| 1467 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart,
|
| 1468 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart {
|
| 1469 |
display: block;
|
| 1470 |
+
margin: 0 0 15px 0;
|
| 1471 |
+
padding: 0;
|
| 1472 |
font-size: 14px;
|
| 1473 |
+
line-height: 1;
|
| 1474 |
+
text-transform: capitalize;
|
| 1475 |
+
color: #333;
|
| 1476 |
+
background-color: transparent;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1477 |
}
|
| 1478 |
+
.eael-product-grid.eael-product-simple .woocommerce ul.products li.product,
|
| 1479 |
+
.eael-post-grid.eael-product-simple .woocommerce ul.products li.product {
|
| 1480 |
+
border: 1px solid #eee;
|
|
|
|
|
|
|
| 1481 |
}
|
| 1482 |
+
.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product,
|
| 1483 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product {
|
| 1484 |
+
border: 1px solid transparent;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1485 |
}
|
| 1486 |
+
.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,
|
| 1487 |
+
.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,
|
| 1488 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,
|
| 1489 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart {
|
| 1490 |
+
visibility: hidden;
|
| 1491 |
+
-webkit-transition: none;
|
| 1492 |
+
-o-transition: none;
|
| 1493 |
+
transition: none;
|
| 1494 |
}
|
| 1495 |
+
.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover,
|
| 1496 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover {
|
| 1497 |
+
border: 1px solid #eee;
|
|
|
|
| 1498 |
}
|
| 1499 |
+
.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,
|
| 1500 |
+
.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart,
|
| 1501 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,
|
| 1502 |
+
.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart {
|
| 1503 |
+
visibility: visible;
|
| 1504 |
+
}
|
| 1505 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product,
|
| 1506 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product {
|
| 1507 |
+
position: relative;
|
| 1508 |
+
float: left;
|
| 1509 |
+
overflow: hidden;
|
| 1510 |
+
text-align: center;
|
| 1511 |
+
padding: 0 0 15px 0;
|
| 1512 |
-webkit-border-radius: 0;
|
| 1513 |
border-radius: 0;
|
| 1514 |
+
background-color: #fff;
|
| 1515 |
-webkit-box-shadow: none;
|
| 1516 |
box-shadow: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1517 |
}
|
| 1518 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a,
|
| 1519 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a {
|
| 1520 |
+
text-decoration: none;
|
|
|
|
| 1521 |
}
|
| 1522 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a:hover,
|
| 1523 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a:hover {
|
| 1524 |
+
outline: none;
|
| 1525 |
+
-webkit-box-shadow: none;
|
| 1526 |
+
box-shadow: none;
|
| 1527 |
}
|
| 1528 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product img,
|
| 1529 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product img {
|
| 1530 |
+
width: 100%;
|
| 1531 |
+
height: auto;
|
| 1532 |
+
margin: 0;
|
| 1533 |
+
-webkit-backface-visibility: hidden;
|
| 1534 |
+
backface-visibility: hidden;
|
|
|
|
|
|
|
| 1535 |
}
|
| 1536 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay,
|
| 1537 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay {
|
|
|
|
|
|
|
| 1538 |
position: relative;
|
| 1539 |
+
overflow: hidden;
|
| 1540 |
+
line-height: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1541 |
}
|
| 1542 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap,
|
| 1543 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap {
|
|
|
|
|
|
|
|
|
|
| 1544 |
position: absolute;
|
| 1545 |
+
top: 50%;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1546 |
left: 0;
|
|
|
|
|
|
|
| 1547 |
right: 0;
|
| 1548 |
+
text-align: center;
|
| 1549 |
+
-webkit-transform: translateY(-50%);
|
| 1550 |
+
-ms-transform: translateY(-50%);
|
| 1551 |
+
transform: translateY(-50%);
|
| 1552 |
}
|
| 1553 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link,
|
| 1554 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,
|
| 1555 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,
|
| 1556 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link,
|
| 1557 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,
|
| 1558 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart {
|
| 1559 |
+
display: inline-block;
|
| 1560 |
font-size: 14px;
|
| 1561 |
+
line-height: 38px;
|
|
|
|
|
|
|
|
|
|
| 1562 |
text-align: center;
|
| 1563 |
+
color: #fff;
|
| 1564 |
+
background-color: #333;
|
| 1565 |
+
width: 38px;
|
| 1566 |
+
height: 38px;
|
| 1567 |
+
border-style: none;
|
| 1568 |
+
-webkit-border-radius: 50%;
|
| 1569 |
+
border-radius: 50%;
|
| 1570 |
+
vertical-align: middle;
|
| 1571 |
+
padding: 0;
|
| 1572 |
+
margin: 0 5px;
|
| 1573 |
+
-webkit-transform: translateY(20px);
|
| 1574 |
+
-ms-transform: translateY(20px);
|
| 1575 |
+
transform: translateY(20px);
|
| 1576 |
+
opacity: 0;
|
| 1577 |
+
-webkit-transition: opacity 300ms, -webkit-transform 200ms;
|
| 1578 |
+
transition: opacity 300ms, -webkit-transform 200ms;
|
| 1579 |
+
-o-transition: transform 200ms, opacity 300ms;
|
| 1580 |
+
transition: transform 200ms, opacity 300ms;
|
| 1581 |
+
transition: transform 200ms, opacity 300ms, -webkit-transform 200ms;
|
| 1582 |
+
}
|
| 1583 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus,
|
| 1584 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,
|
| 1585 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus,
|
| 1586 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus,
|
| 1587 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,
|
| 1588 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus {
|
| 1589 |
+
outline: none;
|
| 1590 |
}
|
| 1591 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,
|
| 1592 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button {
|
| 1593 |
+
font-size: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1594 |
}
|
| 1595 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before,
|
| 1596 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before {
|
| 1597 |
+
display: none;
|
| 1598 |
}
|
| 1599 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after,
|
| 1600 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after {
|
| 1601 |
+
content: '\f217';
|
| 1602 |
+
font: normal normal normal 14px/1 FontAwesome;
|
| 1603 |
+
font-size: 14px;
|
| 1604 |
+
line-height: 38px;
|
| 1605 |
+
text-rendering: auto;
|
| 1606 |
+
-webkit-font-smoothing: antialiased;
|
| 1607 |
+
vertical-align: middle;
|
| 1608 |
+
margin: 0;
|
| 1609 |
+
padding: 0;
|
| 1610 |
}
|
| 1611 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before,
|
| 1612 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before {
|
| 1613 |
+
display: none;
|
| 1614 |
+
}
|
| 1615 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after,
|
| 1616 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after {
|
| 1617 |
+
content: '\f110';
|
| 1618 |
+
display: inline-block;
|
| 1619 |
+
font: normal normal normal 14px/1 FontAwesome;
|
| 1620 |
font-size: 14px;
|
| 1621 |
+
line-height: 38px;
|
| 1622 |
+
color: #fff;
|
| 1623 |
+
height: auto;
|
| 1624 |
+
width: auto;
|
| 1625 |
+
position: relative;
|
| 1626 |
+
top: 0;
|
| 1627 |
+
left: 0;
|
| 1628 |
margin: 0;
|
| 1629 |
+
padding: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1630 |
}
|
| 1631 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,
|
| 1632 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart {
|
| 1633 |
+
font-size: 0;
|
| 1634 |
+
}
|
| 1635 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after,
|
| 1636 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after {
|
| 1637 |
+
content: '\f06e';
|
| 1638 |
+
font: normal normal normal 14px/1 FontAwesome;
|
| 1639 |
+
font-size: 14px;
|
| 1640 |
+
line-height: 38px;
|
| 1641 |
color: #fff;
|
| 1642 |
+
text-rendering: auto;
|
| 1643 |
+
-webkit-font-smoothing: antialiased;
|
| 1644 |
+
vertical-align: middle;
|
| 1645 |
+
margin: 0;
|
| 1646 |
+
padding: 0;
|
| 1647 |
}
|
| 1648 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title,
|
| 1649 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title {
|
| 1650 |
+
font-size: 16px;
|
| 1651 |
+
font-weight: 700;
|
| 1652 |
+
line-height: 1;
|
| 1653 |
+
color: #333;
|
| 1654 |
+
margin: 25px 0 12px;
|
| 1655 |
+
padding: 0;
|
| 1656 |
}
|
| 1657 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .onsale,
|
| 1658 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .onsale {
|
| 1659 |
+
display: block;
|
| 1660 |
+
line-height: 170px;
|
| 1661 |
+
font-size: 13px;
|
| 1662 |
+
text-align: center;
|
| 1663 |
+
letter-spacing: 0;
|
| 1664 |
+
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.6);
|
| 1665 |
+
text-transform: uppercase;
|
| 1666 |
color: #fff;
|
| 1667 |
+
background-color: #ff2a13;
|
| 1668 |
+
-webkit-border-radius: 0;
|
| 1669 |
+
border-radius: 0;
|
| 1670 |
+
border: none;
|
| 1671 |
+
-webkit-box-shadow: none;
|
| 1672 |
+
box-shadow: none;
|
| 1673 |
+
position: absolute;
|
| 1674 |
+
height: 100px;
|
| 1675 |
+
width: 200px;
|
| 1676 |
+
z-index: 1;
|
| 1677 |
+
left: -100px;
|
| 1678 |
+
top: -50px;
|
| 1679 |
+
right: auto;
|
| 1680 |
+
margin: 0;
|
| 1681 |
+
padding: 0;
|
| 1682 |
+
-webkit-transform: rotate(-45deg);
|
| 1683 |
+
-ms-transform: rotate(-45deg);
|
| 1684 |
+
transform: rotate(-45deg);
|
| 1685 |
}
|
| 1686 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price,
|
| 1687 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price {
|
| 1688 |
+
font-size: 14px;
|
| 1689 |
+
margin-bottom: 0;
|
| 1690 |
}
|
| 1691 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price del,
|
| 1692 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price del {
|
| 1693 |
+
opacity: 0.5;
|
| 1694 |
+
display: inline-block;
|
| 1695 |
}
|
| 1696 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price ins,
|
| 1697 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price ins {
|
| 1698 |
+
font-weight: 400;
|
| 1699 |
+
background-color: transparent;
|
| 1700 |
+
color: #ff2a13;
|
| 1701 |
}
|
| 1702 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating,
|
| 1703 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating {
|
| 1704 |
+
display: block;
|
| 1705 |
+
float: none;
|
| 1706 |
+
font-size: 14px;
|
| 1707 |
+
margin: 10px auto;
|
| 1708 |
+
}
|
| 1709 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a,
|
| 1710 |
+
.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button,
|
| 1711 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a,
|
| 1712 |
+
.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button {
|
| 1713 |
opacity: 1;
|
| 1714 |
+
-webkit-transform: translateY(0);
|
| 1715 |
+
-ms-transform: translateY(0);
|
| 1716 |
+
transform: translateY(0);
|
| 1717 |
}
|
| 1718 |
|
| 1719 |
/*--------------------------------*/
|
| 7124 |
.eael-progressbar-line .eael-progressbar-count-wrap {
|
| 7125 |
position: absolute;
|
| 7126 |
right: 0;
|
| 7127 |
+
bottom: calc(100% + 5px);
|
| 7128 |
font-size: 16px;
|
| 7129 |
font-weight: 400;
|
| 7130 |
line-height: 1;
|
| 7281 |
position: absolute;
|
| 7282 |
top: 0;
|
| 7283 |
left: -35px;
|
| 7284 |
+
width: calc(100% + 70px);
|
| 7285 |
height: 100%;
|
| 7286 |
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
| 7287 |
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
| 7444 |
transform: none;
|
| 7445 |
}
|
| 7446 |
}
|
| 7447 |
+
.elementor-section .elementor-container {
|
| 7448 |
+
z-index: 99;
|
| 7449 |
+
}
|
assets/css/tooltipster.bundle.min.css
CHANGED
|
File without changes
|
assets/img/accordion.png
CHANGED
|
File without changes
|
assets/img/bg.jpg
CHANGED
|
File without changes
|
assets/img/flexia-preview.jpg
CHANGED
|
File without changes
|
assets/img/play-icon.png
CHANGED
|
File without changes
|
assets/js/eael-scripts.js
CHANGED
|
@@ -25,6 +25,7 @@
|
|
| 25 |
percentPosition: true,
|
| 26 |
stagger: 30,
|
| 27 |
transitionDuration: $settings.duration + 'ms',
|
|
|
|
| 28 |
});
|
| 29 |
|
| 30 |
// layout gal - not necessary, just in case
|
|
@@ -643,8 +644,205 @@
|
|
| 643 |
}
|
| 644 |
|
| 645 |
var ProgressBar = function ($scope, $) {
|
| 646 |
-
|
| 647 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 648 |
|
| 649 |
$(window).on('elementor/frontend/init', function () {
|
| 650 |
if(elementorFrontend.isEditMode()) {
|
|
@@ -664,6 +862,7 @@
|
|
| 664 |
elementorFrontend.hooks.addAction('frontend/element_ready/eael-image-accordion.default', ImageAccordion);
|
| 665 |
elementorFrontend.hooks.addAction('frontend/element_ready/eael-countdown.default', CountDown);
|
| 666 |
elementorFrontend.hooks.addAction('frontend/element_ready/eael-progress-bar.default', ProgressBar);
|
|
|
|
| 667 |
});
|
| 668 |
|
| 669 |
}(jQuery));
|
| 25 |
percentPosition: true,
|
| 26 |
stagger: 30,
|
| 27 |
transitionDuration: $settings.duration + 'ms',
|
| 28 |
+
filter: $('.eael-filter-gallery-control .control.active', $scope).data('filter')
|
| 29 |
});
|
| 30 |
|
| 31 |
// layout gal - not necessary, just in case
|
| 644 |
}
|
| 645 |
|
| 646 |
var ProgressBar = function ($scope, $) {
|
| 647 |
+
|
| 648 |
+
var $progressBar = $scope.find('.eael-progress-bar-container').eq(0),
|
| 649 |
+
$layout = mybe_note_undefined($progressBar, "layout"),
|
| 650 |
+
$id = mybe_note_undefined($progressBar, "id"),
|
| 651 |
+
$number = mybe_note_undefined($progressBar, "number"),
|
| 652 |
+
$class = '.elementor-element-' + $scope.data('id'),
|
| 653 |
+
$line_stroke_color = mybe_note_undefined($progressBar, "line-stroke-color"),
|
| 654 |
+
$line_stroke_width = mybe_note_undefined($progressBar, "line-stroke-width"),
|
| 655 |
+
$line_stroke_trail_color = mybe_note_undefined($progressBar, "line-stroke-trail-color"),
|
| 656 |
+
$line_stroke_trail_width = mybe_note_undefined($progressBar, "line-stroke-trail-width"),
|
| 657 |
+
$line_direction = mybe_note_undefined($progressBar, "line-direction"),
|
| 658 |
+
|
| 659 |
+
$fan_stroke_color = mybe_note_undefined($progressBar, "fan-stroke-color"),
|
| 660 |
+
$fan_stroke_width = mybe_note_undefined($progressBar, "fan-stroke-width"),
|
| 661 |
+
$fan_stroke_trail_color = mybe_note_undefined($progressBar, "fan-stroke-trail-color"),
|
| 662 |
+
$fan_stroke_trail_width = mybe_note_undefined($progressBar, "fan-stroke-trail-width"),
|
| 663 |
+
$fan_direction = mybe_note_undefined($progressBar, "fan-direction"),
|
| 664 |
+
|
| 665 |
+
$circle_stroke_color = mybe_note_undefined($progressBar, "circle-stroke-color"),
|
| 666 |
+
$circle_stroke_width = mybe_note_undefined($progressBar, "circle-stroke-width"),
|
| 667 |
+
$circle_stroke_trail_color = mybe_note_undefined($progressBar, "circle-stroke-trail-color"),
|
| 668 |
+
$circle_stroke_trail_width = mybe_note_undefined($progressBar, "circle-stroke-trail-width"),
|
| 669 |
+
$circle_direction = mybe_note_undefined($progressBar, "circle-direction"),
|
| 670 |
+
|
| 671 |
+
$bubble_circle_color = mybe_note_undefined($progressBar, "bubble-circle-color"),
|
| 672 |
+
$bubble_bg_color = mybe_note_undefined($progressBar, "bubble-bg-color"),
|
| 673 |
+
$bubble_circle_width = mybe_note_undefined($progressBar, "bubble-circle-width"),
|
| 674 |
+
$bubble_direction = mybe_note_undefined($progressBar, "bubble-direction"),
|
| 675 |
+
|
| 676 |
+
$rainbow_stroke_width = mybe_note_undefined($progressBar, "rainbow-stroke-width"),
|
| 677 |
+
$rainbow_stroke_trail_width = mybe_note_undefined($progressBar, "rainbow-stroke-trail-width"),
|
| 678 |
+
$rainbow_color_one = mybe_note_undefined($progressBar, "rainbow-color-one"),
|
| 679 |
+
$rainbow_color_two = mybe_note_undefined($progressBar, "rainbow-color-two"),
|
| 680 |
+
$rainbow_color_three = mybe_note_undefined($progressBar, "rainbow-color-three"),
|
| 681 |
+
$rainbow_color_four = mybe_note_undefined($progressBar, "rainbow-color-four"),
|
| 682 |
+
$rainbow_color_five = mybe_note_undefined($progressBar, "rainbow-color-five"),
|
| 683 |
+
$rainbow_direction = mybe_note_undefined($progressBar, "rainbow-direction");
|
| 684 |
+
|
| 685 |
+
|
| 686 |
+
if('rainbow' == $layout){
|
| 687 |
+
var bar = new ldBar($class + ' .inside-progressbar', {
|
| 688 |
+
"type": 'stroke',
|
| 689 |
+
"path": 'M0 10L100 10',
|
| 690 |
+
"stroke": 'data:ldbar/res,gradient(0,1,'+ $rainbow_color_one +','+ $rainbow_color_two +','+ $rainbow_color_three +','+ $rainbow_color_four +','+ $rainbow_color_five +')',
|
| 691 |
+
"aspect-ratio": 'none',
|
| 692 |
+
"stroke-width": $rainbow_stroke_width,
|
| 693 |
+
"stroke-trail-width": $rainbow_stroke_trail_width,
|
| 694 |
+
"stroke-dir": $rainbow_direction
|
| 695 |
+
}).set($number);
|
| 696 |
+
}
|
| 697 |
+
else if('line' == $layout){
|
| 698 |
+
var bar = new ldBar($class + ' .inside-progressbar', {
|
| 699 |
+
"type": 'stroke',
|
| 700 |
+
"path": 'M0 10L100 10',
|
| 701 |
+
"stroke": $line_stroke_color,
|
| 702 |
+
"stroke-width": $line_stroke_width,
|
| 703 |
+
"stroke-trail": $line_stroke_trail_color,
|
| 704 |
+
"stroke-trail-width": $line_stroke_trail_width,
|
| 705 |
+
"aspect-ratio": 'none',
|
| 706 |
+
"stroke-dir": $line_direction
|
| 707 |
+
}).set($number);
|
| 708 |
+
}
|
| 709 |
+
else if('fan' == $layout){
|
| 710 |
+
var bar = new ldBar($class + ' .inside-progressbar', {
|
| 711 |
+
"type": 'stroke',
|
| 712 |
+
"path": 'M10 90A40 40 0 0 1 90 90',
|
| 713 |
+
"fill-dir": $fan_direction,
|
| 714 |
+
"fill": $fan_stroke_color,
|
| 715 |
+
"fill-background": $fan_stroke_trail_color,
|
| 716 |
+
"fill-background-extrude": $fan_stroke_width,
|
| 717 |
+
"stroke-dir": 'normal',
|
| 718 |
+
"stroke": $fan_stroke_color,
|
| 719 |
+
"stroke-width": $fan_stroke_width,
|
| 720 |
+
"stroke-trail": $fan_stroke_trail_color,
|
| 721 |
+
"stroke-trail-width": $fan_stroke_trail_width
|
| 722 |
+
}).set($number);
|
| 723 |
+
}
|
| 724 |
+
else if('circle' == $layout){
|
| 725 |
+
var bar = new ldBar($class + ' .inside-progressbar', {
|
| 726 |
+
"type": 'stroke',
|
| 727 |
+
"path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10',
|
| 728 |
+
"fill-dir": $circle_direction,
|
| 729 |
+
"fill": $circle_stroke_color,
|
| 730 |
+
"fill-background": $circle_stroke_trail_color,
|
| 731 |
+
"fill-background-extrude": $circle_stroke_width,
|
| 732 |
+
"stroke-dir": 'normal',
|
| 733 |
+
"stroke": $circle_stroke_color,
|
| 734 |
+
"stroke-width": $circle_stroke_width,
|
| 735 |
+
"stroke-trail": $circle_stroke_trail_color,
|
| 736 |
+
"stroke-trail-width": $circle_stroke_trail_width
|
| 737 |
+
}).set($number);
|
| 738 |
+
}
|
| 739 |
+
else if('bubble' == $layout){
|
| 740 |
+
var bar = new ldBar($class + ' .inside-progressbar', {
|
| 741 |
+
"type": 'fill',
|
| 742 |
+
"path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10',
|
| 743 |
+
"fill-dir": $bubble_direction,
|
| 744 |
+
"fill": 'data:ldbar/res,bubble('+ $bubble_bg_color +','+ $bubble_circle_color +')',
|
| 745 |
+
"pattern-size": $bubble_circle_width,
|
| 746 |
+
"fill-background": '#ddd',
|
| 747 |
+
"fill-background-extrude": 2,
|
| 748 |
+
"stroke-dir": 'normal',
|
| 749 |
+
"stroke": '#25b',
|
| 750 |
+
"stroke-width": '3',
|
| 751 |
+
"stroke-trail": '#ddd',
|
| 752 |
+
"stroke-trail-width": 0.5
|
| 753 |
+
}).set($number);
|
| 754 |
+
}
|
| 755 |
+
};
|
| 756 |
+
|
| 757 |
+
/*=================================*/
|
| 758 |
+
/* 36. Section Particles
|
| 759 |
+
/*=================================*/
|
| 760 |
+
var EaelParticlesHandler = function($scope,$){
|
| 761 |
+
var target = $scope,
|
| 762 |
+
sectionId = target.data('id'),
|
| 763 |
+
editMode = elementorFrontend.isEditMode(),
|
| 764 |
+
settings;
|
| 765 |
+
|
| 766 |
+
|
| 767 |
+
if ( editMode ) {
|
| 768 |
+
settings = generateEditorSettings( sectionId );
|
| 769 |
+
}
|
| 770 |
+
|
| 771 |
+
if (!editMode || ! settings ) {
|
| 772 |
+
return false;
|
| 773 |
+
}
|
| 774 |
+
|
| 775 |
+
if(settings.switch == 'yes') {
|
| 776 |
+
target.addClass('eael-particles-section');
|
| 777 |
+
if(settings.themeSource === 'presets' || settings.themeSource === 'custom' && '' !== settings.selected_theme) {
|
| 778 |
+
generateParticles();
|
| 779 |
+
}
|
| 780 |
+
} else {
|
| 781 |
+
target.removeClass('eael-particles-section');
|
| 782 |
+
}
|
| 783 |
+
|
| 784 |
+
|
| 785 |
+
function generateEditorSettings(targetId){
|
| 786 |
+
var editorElements = null,
|
| 787 |
+
sectionData = {},
|
| 788 |
+
settings = {};
|
| 789 |
+
|
| 790 |
+
if ( ! window.elementor.hasOwnProperty( 'elements' ) ) {
|
| 791 |
+
return false;
|
| 792 |
+
}
|
| 793 |
+
|
| 794 |
+
editorElements = window.elementor.elements;
|
| 795 |
+
|
| 796 |
+
if ( ! editorElements.models ) {
|
| 797 |
+
return false;
|
| 798 |
+
}
|
| 799 |
+
|
| 800 |
+
$.each(editorElements.models,function(index,elem){
|
| 801 |
+
if( targetId == elem.id){
|
| 802 |
+
sectionData = elem.attributes.settings.attributes;
|
| 803 |
+
|
| 804 |
+
} else if( elem.id == target.closest( '.elementor-top-section' ).data( 'id' ) ) {
|
| 805 |
+
$.each(elem.attributes.elements.models,function(index,col){
|
| 806 |
+
$.each(col.attributes.elements.models,function(index,subSec){
|
| 807 |
+
sectionData = subSec.attributes.settings.attributes;
|
| 808 |
+
});
|
| 809 |
+
});
|
| 810 |
+
}
|
| 811 |
+
});
|
| 812 |
+
|
| 813 |
+
settings.switch = sectionData[ 'eael_particle_switch' ];
|
| 814 |
+
settings.zIndex = sectionData[ 'eael_particles_zindex' ];
|
| 815 |
+
settings.themeSource = sectionData['eael_particle_theme_from'];
|
| 816 |
+
|
| 817 |
+
|
| 818 |
+
if(settings.themeSource == 'presets') {
|
| 819 |
+
settings.selected_theme = (ParticleThemesData[sectionData[ 'eael_particle_preset_themes' ]]);
|
| 820 |
+
}
|
| 821 |
+
|
| 822 |
+
if( (settings.themeSource == 'custom') && ('' !== sectionData[ 'eael_particles_custom_style' ]) ){
|
| 823 |
+
settings.selected_theme = sectionData[ 'eael_particles_custom_style' ];
|
| 824 |
+
}
|
| 825 |
+
|
| 826 |
+
if ( 0 !== settings.length ) {
|
| 827 |
+
return settings;
|
| 828 |
+
}
|
| 829 |
+
|
| 830 |
+
return false;
|
| 831 |
+
}
|
| 832 |
+
|
| 833 |
+
function generateParticles(){
|
| 834 |
+
target.attr('id','eael-section-particles-'+ sectionId);
|
| 835 |
+
if(typeof particlesJS !== 'undefined' && $.isFunction(particlesJS)) {
|
| 836 |
+
particlesJS("eael-section-particles-" + sectionId, JSON.parse(settings.selected_theme));
|
| 837 |
+
target.children('canvas.particles-js-canvas-el').css({
|
| 838 |
+
zIndex: settings.zIndex,
|
| 839 |
+
position: 'absolute',
|
| 840 |
+
top:0
|
| 841 |
+
});
|
| 842 |
+
}
|
| 843 |
+
}
|
| 844 |
+
|
| 845 |
+
};
|
| 846 |
|
| 847 |
$(window).on('elementor/frontend/init', function () {
|
| 848 |
if(elementorFrontend.isEditMode()) {
|
| 862 |
elementorFrontend.hooks.addAction('frontend/element_ready/eael-image-accordion.default', ImageAccordion);
|
| 863 |
elementorFrontend.hooks.addAction('frontend/element_ready/eael-countdown.default', CountDown);
|
| 864 |
elementorFrontend.hooks.addAction('frontend/element_ready/eael-progress-bar.default', ProgressBar);
|
| 865 |
+
elementorFrontend.hooks.addAction( 'frontend/element_ready/section', EaelParticlesHandler );
|
| 866 |
});
|
| 867 |
|
| 868 |
}(jQuery));
|
assets/js/fancy-text.js
CHANGED
|
File without changes
|
assets/js/isotope.pkgd.min.js
CHANGED
|
File without changes
|
assets/js/jquery.magnific-popup.min.js
CHANGED
|
File without changes
|
assets/js/jquery.resize.min.js
CHANGED
|
File without changes
|
assets/js/load-more.js
CHANGED
|
File without changes
|
assets/js/loading-bar.min.js
CHANGED
|
File without changes
|
assets/js/masonry.min.js
CHANGED
|
File without changes
|
assets/js/mixitup.min.js
CHANGED
|
File without changes
|
assets/js/particles.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*
|
| 2 |
+
/* Author : Vincent Garreau - vincentgarreau.com
|
| 3 |
+
/* MIT license: http://opensource.org/licenses/MIT
|
| 4 |
+
*/
|
| 5 |
+
function hexToRgb(e){var a=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(a,function(e,a,t,i){return a+a+t+t+i+i});var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function clamp(e,a,t){return Math.min(Math.max(e,a),t)}function isInArray(e,a){return a.indexOf(e)>-1}var pJS=function(e,a){var t=document.querySelector("#"+e+" > .particles-js-canvas-el");this.pJS={canvas:{el:t,w:t.offsetWidth,h:t.offsetHeight},particles:{number:{value:400,density:{enable:!0,value_area:800}},color:{value:"#fff"},shape:{type:"circle",stroke:{width:0,color:"#ff0000"},polygon:{nb_sides:5},image:{src:"",width:100,height:100}},opacity:{value:1,random:!1,anim:{enable:!1,speed:2,opacity_min:0,sync:!1}},size:{value:20,random:!1,anim:{enable:!1,speed:20,size_min:0,sync:!1}},line_linked:{enable:!0,distance:100,color:"#fff",opacity:1,width:1},move:{enable:!0,speed:2,direction:"none",random:!1,straight:!1,out_mode:"out",bounce:!1,attract:{enable:!1,rotateX:3e3,rotateY:3e3}},array:[]},interactivity:{detect_on:"canvas",events:{onhover:{enable:!0,mode:"grab"},onclick:{enable:!0,mode:"push"},resize:!0},modes:{grab:{distance:100,line_linked:{opacity:1}},bubble:{distance:200,size:80,duration:.4},repulse:{distance:200,duration:.4},push:{particles_nb:4},remove:{particles_nb:2}},mouse:{}},retina_detect:!1,fn:{interact:{},modes:{},vendors:{}},tmp:{}};var i=this.pJS;a&&Object.deepExtend(i,a),i.tmp.obj={size_value:i.particles.size.value,size_anim_speed:i.particles.size.anim.speed,move_speed:i.particles.move.speed,line_linked_distance:i.particles.line_linked.distance,line_linked_width:i.particles.line_linked.width,mode_grab_distance:i.interactivity.modes.grab.distance,mode_bubble_distance:i.interactivity.modes.bubble.distance,mode_bubble_size:i.interactivity.modes.bubble.size,mode_repulse_distance:i.interactivity.modes.repulse.distance},i.fn.retinaInit=function(){i.retina_detect&&window.devicePixelRatio>1?(i.canvas.pxratio=window.devicePixelRatio,i.tmp.retina=!0):(i.canvas.pxratio=1,i.tmp.retina=!1),i.canvas.w=i.canvas.el.offsetWidth*i.canvas.pxratio,i.canvas.h=i.canvas.el.offsetHeight*i.canvas.pxratio,i.particles.size.value=i.tmp.obj.size_value*i.canvas.pxratio,i.particles.size.anim.speed=i.tmp.obj.size_anim_speed*i.canvas.pxratio,i.particles.move.speed=i.tmp.obj.move_speed*i.canvas.pxratio,i.particles.line_linked.distance=i.tmp.obj.line_linked_distance*i.canvas.pxratio,i.interactivity.modes.grab.distance=i.tmp.obj.mode_grab_distance*i.canvas.pxratio,i.interactivity.modes.bubble.distance=i.tmp.obj.mode_bubble_distance*i.canvas.pxratio,i.particles.line_linked.width=i.tmp.obj.line_linked_width*i.canvas.pxratio,i.interactivity.modes.bubble.size=i.tmp.obj.mode_bubble_size*i.canvas.pxratio,i.interactivity.modes.repulse.distance=i.tmp.obj.mode_repulse_distance*i.canvas.pxratio},i.fn.canvasInit=function(){i.canvas.ctx=i.canvas.el.getContext("2d")},i.fn.canvasSize=function(){i.canvas.el.width=i.canvas.w,i.canvas.el.height=i.canvas.h,i&&i.interactivity.events.resize&&window.addEventListener("resize",function(){i.canvas.w=i.canvas.el.offsetWidth,i.canvas.h=i.canvas.el.offsetHeight,i.tmp.retina&&(i.canvas.w*=i.canvas.pxratio,i.canvas.h*=i.canvas.pxratio),i.canvas.el.width=i.canvas.w,i.canvas.el.height=i.canvas.h,i.particles.move.enable||(i.fn.particlesEmpty(),i.fn.particlesCreate(),i.fn.particlesDraw(),i.fn.vendors.densityAutoParticles()),i.fn.vendors.densityAutoParticles()})},i.fn.canvasPaint=function(){i.canvas.ctx.fillRect(0,0,i.canvas.w,i.canvas.h)},i.fn.canvasClear=function(){i.canvas.ctx.clearRect(0,0,i.canvas.w,i.canvas.h)},i.fn.particle=function(e,a,t){if(this.radius=(i.particles.size.random?Math.random():1)*i.particles.size.value,i.particles.size.anim.enable&&(this.size_status=!1,this.vs=i.particles.size.anim.speed/100,i.particles.size.anim.sync||(this.vs=this.vs*Math.random())),this.x=t?t.x:Math.random()*i.canvas.w,this.y=t?t.y:Math.random()*i.canvas.h,this.x>i.canvas.w-2*this.radius?this.x=this.x-this.radius:this.x<2*this.radius&&(this.x=this.x+this.radius),this.y>i.canvas.h-2*this.radius?this.y=this.y-this.radius:this.y<2*this.radius&&(this.y=this.y+this.radius),i.particles.move.bounce&&i.fn.vendors.checkOverlap(this,t),this.color={},"object"==typeof e.value)if(e.value instanceof Array){var s=e.value[Math.floor(Math.random()*i.particles.color.value.length)];this.color.rgb=hexToRgb(s)}else void 0!=e.value.r&&void 0!=e.value.g&&void 0!=e.value.b&&(this.color.rgb={r:e.value.r,g:e.value.g,b:e.value.b}),void 0!=e.value.h&&void 0!=e.value.s&&void 0!=e.value.l&&(this.color.hsl={h:e.value.h,s:e.value.s,l:e.value.l});else"random"==e.value?this.color.rgb={r:Math.floor(256*Math.random())+0,g:Math.floor(256*Math.random())+0,b:Math.floor(256*Math.random())+0}:"string"==typeof e.value&&(this.color=e,this.color.rgb=hexToRgb(this.color.value));this.opacity=(i.particles.opacity.random?Math.random():1)*i.particles.opacity.value,i.particles.opacity.anim.enable&&(this.opacity_status=!1,this.vo=i.particles.opacity.anim.speed/100,i.particles.opacity.anim.sync||(this.vo=this.vo*Math.random()));var n={};switch(i.particles.move.direction){case"top":n={x:0,y:-1};break;case"top-right":n={x:.5,y:-.5};break;case"right":n={x:1,y:-0};break;case"bottom-right":n={x:.5,y:.5};break;case"bottom":n={x:0,y:1};break;case"bottom-left":n={x:-.5,y:1};break;case"left":n={x:-1,y:0};break;case"top-left":n={x:-.5,y:-.5};break;default:n={x:0,y:0}}i.particles.move.straight?(this.vx=n.x,this.vy=n.y,i.particles.move.random&&(this.vx=this.vx*Math.random(),this.vy=this.vy*Math.random())):(this.vx=n.x+Math.random()-.5,this.vy=n.y+Math.random()-.5),this.vx_i=this.vx,this.vy_i=this.vy;var r=i.particles.shape.type;if("object"==typeof r){if(r instanceof Array){var c=r[Math.floor(Math.random()*r.length)];this.shape=c}}else this.shape=r;if("image"==this.shape){var o=i.particles.shape;this.img={src:o.image.src,ratio:o.image.width/o.image.height},this.img.ratio||(this.img.ratio=1),"svg"==i.tmp.img_type&&void 0!=i.tmp.source_svg&&(i.fn.vendors.createSvgImg(this),i.tmp.pushing&&(this.img.loaded=!1))}},i.fn.particle.prototype.draw=function(){function e(){i.canvas.ctx.drawImage(r,a.x-t,a.y-t,2*t,2*t/a.img.ratio)}var a=this;if(void 0!=a.radius_bubble)var t=a.radius_bubble;else var t=a.radius;if(void 0!=a.opacity_bubble)var s=a.opacity_bubble;else var s=a.opacity;if(a.color.rgb)var n="rgba("+a.color.rgb.r+","+a.color.rgb.g+","+a.color.rgb.b+","+s+")";else var n="hsla("+a.color.hsl.h+","+a.color.hsl.s+"%,"+a.color.hsl.l+"%,"+s+")";switch(i.canvas.ctx.fillStyle=n,i.canvas.ctx.beginPath(),a.shape){case"circle":i.canvas.ctx.arc(a.x,a.y,t,0,2*Math.PI,!1);break;case"edge":i.canvas.ctx.rect(a.x-t,a.y-t,2*t,2*t);break;case"triangle":i.fn.vendors.drawShape(i.canvas.ctx,a.x-t,a.y+t/1.66,2*t,3,2);break;case"polygon":i.fn.vendors.drawShape(i.canvas.ctx,a.x-t/(i.particles.shape.polygon.nb_sides/3.5),a.y-t/.76,2.66*t/(i.particles.shape.polygon.nb_sides/3),i.particles.shape.polygon.nb_sides,1);break;case"star":i.fn.vendors.drawShape(i.canvas.ctx,a.x-2*t/(i.particles.shape.polygon.nb_sides/4),a.y-t/1.52,2*t*2.66/(i.particles.shape.polygon.nb_sides/3),i.particles.shape.polygon.nb_sides,2);break;case"image":if("svg"==i.tmp.img_type)var r=a.img.obj;else var r=i.tmp.img_obj;r&&e()}i.canvas.ctx.closePath(),i.particles.shape.stroke.width>0&&(i.canvas.ctx.strokeStyle=i.particles.shape.stroke.color,i.canvas.ctx.lineWidth=i.particles.shape.stroke.width,i.canvas.ctx.stroke()),i.canvas.ctx.fill()},i.fn.particlesCreate=function(){for(var e=0;e<i.particles.number.value;e++)i.particles.array.push(new i.fn.particle(i.particles.color,i.particles.opacity.value))},i.fn.particlesUpdate=function(){for(var e=0;e<i.particles.array.length;e++){var a=i.particles.array[e];if(i.particles.move.enable){var t=i.particles.move.speed/2;a.x+=a.vx*t,a.y+=a.vy*t}if(i.particles.opacity.anim.enable&&(1==a.opacity_status?(a.opacity>=i.particles.opacity.value&&(a.opacity_status=!1),a.opacity+=a.vo):(a.opacity<=i.particles.opacity.anim.opacity_min&&(a.opacity_status=!0),a.opacity-=a.vo),a.opacity<0&&(a.opacity=0)),i.particles.size.anim.enable&&(1==a.size_status?(a.radius>=i.particles.size.value&&(a.size_status=!1),a.radius+=a.vs):(a.radius<=i.particles.size.anim.size_min&&(a.size_status=!0),a.radius-=a.vs),a.radius<0&&(a.radius=0)),"bounce"==i.particles.move.out_mode)var s={x_left:a.radius,x_right:i.canvas.w,y_top:a.radius,y_bottom:i.canvas.h};else var s={x_left:-a.radius,x_right:i.canvas.w+a.radius,y_top:-a.radius,y_bottom:i.canvas.h+a.radius};switch(a.x-a.radius>i.canvas.w?(a.x=s.x_left,a.y=Math.random()*i.canvas.h):a.x+a.radius<0&&(a.x=s.x_right,a.y=Math.random()*i.canvas.h),a.y-a.radius>i.canvas.h?(a.y=s.y_top,a.x=Math.random()*i.canvas.w):a.y+a.radius<0&&(a.y=s.y_bottom,a.x=Math.random()*i.canvas.w),i.particles.move.out_mode){case"bounce":a.x+a.radius>i.canvas.w?a.vx=-a.vx:a.x-a.radius<0&&(a.vx=-a.vx),a.y+a.radius>i.canvas.h?a.vy=-a.vy:a.y-a.radius<0&&(a.vy=-a.vy)}if(isInArray("grab",i.interactivity.events.onhover.mode)&&i.fn.modes.grabParticle(a),(isInArray("bubble",i.interactivity.events.onhover.mode)||isInArray("bubble",i.interactivity.events.onclick.mode))&&i.fn.modes.bubbleParticle(a),(isInArray("repulse",i.interactivity.events.onhover.mode)||isInArray("repulse",i.interactivity.events.onclick.mode))&&i.fn.modes.repulseParticle(a),i.particles.line_linked.enable||i.particles.move.attract.enable)for(var n=e+1;n<i.particles.array.length;n++){var r=i.particles.array[n];i.particles.line_linked.enable&&i.fn.interact.linkParticles(a,r),i.particles.move.attract.enable&&i.fn.interact.attractParticles(a,r),i.particles.move.bounce&&i.fn.interact.bounceParticles(a,r)}}},i.fn.particlesDraw=function(){i.canvas.ctx.clearRect(0,0,i.canvas.w,i.canvas.h),i.fn.particlesUpdate();for(var e=0;e<i.particles.array.length;e++){var a=i.particles.array[e];a.draw()}},i.fn.particlesEmpty=function(){i.particles.array=[]},i.fn.particlesRefresh=function(){cancelRequestAnimFrame(i.fn.checkAnimFrame),cancelRequestAnimFrame(i.fn.drawAnimFrame),i.tmp.source_svg=void 0,i.tmp.img_obj=void 0,i.tmp.count_svg=0,i.fn.particlesEmpty(),i.fn.canvasClear(),i.fn.vendors.start()},i.fn.interact.linkParticles=function(e,a){var t=e.x-a.x,s=e.y-a.y,n=Math.sqrt(t*t+s*s);if(n<=i.particles.line_linked.distance){var r=i.particles.line_linked.opacity-n/(1/i.particles.line_linked.opacity)/i.particles.line_linked.distance;if(r>0){var c=i.particles.line_linked.color_rgb_line;i.canvas.ctx.strokeStyle="rgba("+c.r+","+c.g+","+c.b+","+r+")",i.canvas.ctx.lineWidth=i.particles.line_linked.width,i.canvas.ctx.beginPath(),i.canvas.ctx.moveTo(e.x,e.y),i.canvas.ctx.lineTo(a.x,a.y),i.canvas.ctx.stroke(),i.canvas.ctx.closePath()}}},i.fn.interact.attractParticles=function(e,a){var t=e.x-a.x,s=e.y-a.y,n=Math.sqrt(t*t+s*s);if(n<=i.particles.line_linked.distance){var r=t/(1e3*i.particles.move.attract.rotateX),c=s/(1e3*i.particles.move.attract.rotateY);e.vx-=r,e.vy-=c,a.vx+=r,a.vy+=c}},i.fn.interact.bounceParticles=function(e,a){var t=e.x-a.x,i=e.y-a.y,s=Math.sqrt(t*t+i*i),n=e.radius+a.radius;n>=s&&(e.vx=-e.vx,e.vy=-e.vy,a.vx=-a.vx,a.vy=-a.vy)},i.fn.modes.pushParticles=function(e,a){i.tmp.pushing=!0;for(var t=0;e>t;t++)i.particles.array.push(new i.fn.particle(i.particles.color,i.particles.opacity.value,{x:a?a.pos_x:Math.random()*i.canvas.w,y:a?a.pos_y:Math.random()*i.canvas.h})),t==e-1&&(i.particles.move.enable||i.fn.particlesDraw(),i.tmp.pushing=!1)},i.fn.modes.removeParticles=function(e){i.particles.array.splice(0,e),i.particles.move.enable||i.fn.particlesDraw()},i.fn.modes.bubbleParticle=function(e){function a(){e.opacity_bubble=e.opacity,e.radius_bubble=e.radius}function t(a,t,s,n,c){if(a!=t)if(i.tmp.bubble_duration_end){if(void 0!=s){var o=n-p*(n-a)/i.interactivity.modes.bubble.duration,l=a-o;d=a+l,"size"==c&&(e.radius_bubble=d),"opacity"==c&&(e.opacity_bubble=d)}}else if(r<=i.interactivity.modes.bubble.distance){if(void 0!=s)var v=s;else var v=n;if(v!=a){var d=n-p*(n-a)/i.interactivity.modes.bubble.duration;"size"==c&&(e.radius_bubble=d),"opacity"==c&&(e.opacity_bubble=d)}}else"size"==c&&(e.radius_bubble=void 0),"opacity"==c&&(e.opacity_bubble=void 0)}if(i.interactivity.events.onhover.enable&&isInArray("bubble",i.interactivity.events.onhover.mode)){var s=e.x-i.interactivity.mouse.pos_x,n=e.y-i.interactivity.mouse.pos_y,r=Math.sqrt(s*s+n*n),c=1-r/i.interactivity.modes.bubble.distance;if(r<=i.interactivity.modes.bubble.distance){if(c>=0&&"mousemove"==i.interactivity.status){if(i.interactivity.modes.bubble.size!=i.particles.size.value)if(i.interactivity.modes.bubble.size>i.particles.size.value){var o=e.radius+i.interactivity.modes.bubble.size*c;o>=0&&(e.radius_bubble=o)}else{var l=e.radius-i.interactivity.modes.bubble.size,o=e.radius-l*c;o>0?e.radius_bubble=o:e.radius_bubble=0}if(i.interactivity.modes.bubble.opacity!=i.particles.opacity.value)if(i.interactivity.modes.bubble.opacity>i.particles.opacity.value){var v=i.interactivity.modes.bubble.opacity*c;v>e.opacity&&v<=i.interactivity.modes.bubble.opacity&&(e.opacity_bubble=v)}else{var v=e.opacity-(i.particles.opacity.value-i.interactivity.modes.bubble.opacity)*c;v<e.opacity&&v>=i.interactivity.modes.bubble.opacity&&(e.opacity_bubble=v)}}}else a();"mouseleave"==i.interactivity.status&&a()}else if(i.interactivity.events.onclick.enable&&isInArray("bubble",i.interactivity.events.onclick.mode)){if(i.tmp.bubble_clicking){var s=e.x-i.interactivity.mouse.click_pos_x,n=e.y-i.interactivity.mouse.click_pos_y,r=Math.sqrt(s*s+n*n),p=((new Date).getTime()-i.interactivity.mouse.click_time)/1e3;p>i.interactivity.modes.bubble.duration&&(i.tmp.bubble_duration_end=!0),p>2*i.interactivity.modes.bubble.duration&&(i.tmp.bubble_clicking=!1,i.tmp.bubble_duration_end=!1)}i.tmp.bubble_clicking&&(t(i.interactivity.modes.bubble.size,i.particles.size.value,e.radius_bubble,e.radius,"size"),t(i.interactivity.modes.bubble.opacity,i.particles.opacity.value,e.opacity_bubble,e.opacity,"opacity"))}},i.fn.modes.repulseParticle=function(e){function a(){var a=Math.atan2(d,p);if(e.vx=u*Math.cos(a),e.vy=u*Math.sin(a),"bounce"==i.particles.move.out_mode){var t={x:e.x+e.vx,y:e.y+e.vy};t.x+e.radius>i.canvas.w?e.vx=-e.vx:t.x-e.radius<0&&(e.vx=-e.vx),t.y+e.radius>i.canvas.h?e.vy=-e.vy:t.y-e.radius<0&&(e.vy=-e.vy)}}if(i.interactivity.events.onhover.enable&&isInArray("repulse",i.interactivity.events.onhover.mode)&&"mousemove"==i.interactivity.status){var t=e.x-i.interactivity.mouse.pos_x,s=e.y-i.interactivity.mouse.pos_y,n=Math.sqrt(t*t+s*s),r={x:t/n,y:s/n},c=i.interactivity.modes.repulse.distance,o=100,l=clamp(1/c*(-1*Math.pow(n/c,2)+1)*c*o,0,50),v={x:e.x+r.x*l,y:e.y+r.y*l};"bounce"==i.particles.move.out_mode?(v.x-e.radius>0&&v.x+e.radius<i.canvas.w&&(e.x=v.x),v.y-e.radius>0&&v.y+e.radius<i.canvas.h&&(e.y=v.y)):(e.x=v.x,e.y=v.y)}else if(i.interactivity.events.onclick.enable&&isInArray("repulse",i.interactivity.events.onclick.mode))if(i.tmp.repulse_finish||(i.tmp.repulse_count++,i.tmp.repulse_count==i.particles.array.length&&(i.tmp.repulse_finish=!0)),i.tmp.repulse_clicking){var c=Math.pow(i.interactivity.modes.repulse.distance/6,3),p=i.interactivity.mouse.click_pos_x-e.x,d=i.interactivity.mouse.click_pos_y-e.y,m=p*p+d*d,u=-c/m*1;c>=m&&a()}else 0==i.tmp.repulse_clicking&&(e.vx=e.vx_i,e.vy=e.vy_i)},i.fn.modes.grabParticle=function(e){if(i.interactivity.events.onhover.enable&&"mousemove"==i.interactivity.status){var a=e.x-i.interactivity.mouse.pos_x,t=e.y-i.interactivity.mouse.pos_y,s=Math.sqrt(a*a+t*t);if(s<=i.interactivity.modes.grab.distance){var n=i.interactivity.modes.grab.line_linked.opacity-s/(1/i.interactivity.modes.grab.line_linked.opacity)/i.interactivity.modes.grab.distance;if(n>0){var r=i.particles.line_linked.color_rgb_line;i.canvas.ctx.strokeStyle="rgba("+r.r+","+r.g+","+r.b+","+n+")",i.canvas.ctx.lineWidth=i.particles.line_linked.width,i.canvas.ctx.beginPath(),i.canvas.ctx.moveTo(e.x,e.y),i.canvas.ctx.lineTo(i.interactivity.mouse.pos_x,i.interactivity.mouse.pos_y),i.canvas.ctx.stroke(),i.canvas.ctx.closePath()}}}},i.fn.vendors.eventsListeners=function(){"window"==i.interactivity.detect_on?i.interactivity.el=window:i.interactivity.el=i.canvas.el,(i.interactivity.events.onhover.enable||i.interactivity.events.onclick.enable)&&(i.interactivity.el.addEventListener("mousemove",function(e){if(i.interactivity.el==window)var a=e.clientX,t=e.clientY;else var a=e.offsetX||e.clientX,t=e.offsetY||e.clientY;i.interactivity.mouse.pos_x=a,i.interactivity.mouse.pos_y=t,i.tmp.retina&&(i.interactivity.mouse.pos_x*=i.canvas.pxratio,i.interactivity.mouse.pos_y*=i.canvas.pxratio),i.interactivity.status="mousemove"}),i.interactivity.el.addEventListener("mouseleave",function(e){i.interactivity.mouse.pos_x=null,i.interactivity.mouse.pos_y=null,i.interactivity.status="mouseleave"})),i.interactivity.events.onclick.enable&&i.interactivity.el.addEventListener("click",function(){if(i.interactivity.mouse.click_pos_x=i.interactivity.mouse.pos_x,i.interactivity.mouse.click_pos_y=i.interactivity.mouse.pos_y,i.interactivity.mouse.click_time=(new Date).getTime(),i.interactivity.events.onclick.enable)switch(i.interactivity.events.onclick.mode){case"push":i.particles.move.enable?i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb,i.interactivity.mouse):1==i.interactivity.modes.push.particles_nb?i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb,i.interactivity.mouse):i.interactivity.modes.push.particles_nb>1&&i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb);break;case"remove":i.fn.modes.removeParticles(i.interactivity.modes.remove.particles_nb);break;case"bubble":i.tmp.bubble_clicking=!0;break;case"repulse":i.tmp.repulse_clicking=!0,i.tmp.repulse_count=0,i.tmp.repulse_finish=!1,setTimeout(function(){i.tmp.repulse_clicking=!1},1e3*i.interactivity.modes.repulse.duration)}})},i.fn.vendors.densityAutoParticles=function(){if(i.particles.number.density.enable){var e=i.canvas.el.width*i.canvas.el.height/1e3;i.tmp.retina&&(e/=2*i.canvas.pxratio);var a=e*i.particles.number.value/i.particles.number.density.value_area,t=i.particles.array.length-a;0>t?i.fn.modes.pushParticles(Math.abs(t)):i.fn.modes.removeParticles(t)}},i.fn.vendors.checkOverlap=function(e,a){for(var t=0;t<i.particles.array.length;t++){var s=i.particles.array[t],n=e.x-s.x,r=e.y-s.y,c=Math.sqrt(n*n+r*r);c<=e.radius+s.radius&&(e.x=a?a.x:Math.random()*i.canvas.w,e.y=a?a.y:Math.random()*i.canvas.h,i.fn.vendors.checkOverlap(e))}},i.fn.vendors.createSvgImg=function(e){var a=i.tmp.source_svg,t=/#([0-9A-F]{3,6})/gi,s=a.replace(t,function(a,t,i,s){if(e.color.rgb)var n="rgba("+e.color.rgb.r+","+e.color.rgb.g+","+e.color.rgb.b+","+e.opacity+")";else var n="hsla("+e.color.hsl.h+","+e.color.hsl.s+"%,"+e.color.hsl.l+"%,"+e.opacity+")";return n}),n=new Blob([s],{type:"image/svg+xml;charset=utf-8"}),r=window.URL||window.webkitURL||window,c=r.createObjectURL(n),o=new Image;o.addEventListener("load",function(){e.img.obj=o,e.img.loaded=!0,r.revokeObjectURL(c),i.tmp.count_svg++}),o.src=c},i.fn.vendors.destroypJS=function(){cancelAnimationFrame(i.fn.drawAnimFrame),t.remove(),pJSDom=null},i.fn.vendors.drawShape=function(e,a,t,i,s,n){var r=s*n,c=s/n,o=180*(c-2)/c,l=Math.PI-Math.PI*o/180;e.save(),e.beginPath(),e.translate(a,t),e.moveTo(0,0);for(var v=0;r>v;v++)e.lineTo(i,0),e.translate(i,0),e.rotate(l);e.fill(),e.restore()},i.fn.vendors.exportImg=function(){window.open(i.canvas.el.toDataURL("image/png"),"_blank")},i.fn.vendors.loadImg=function(e){if(i.tmp.img_error=void 0,""!=i.particles.shape.image.src)if("svg"==e){var a=new XMLHttpRequest;a.open("GET",i.particles.shape.image.src),a.onreadystatechange=function(e){4==a.readyState&&(200==a.status?(i.tmp.source_svg=e.currentTarget.response,i.fn.vendors.checkBeforeDraw()):(console.log("Error pJS - Image not found"),i.tmp.img_error=!0))},a.send()}else{var t=new Image;t.addEventListener("load",function(){i.tmp.img_obj=t,i.fn.vendors.checkBeforeDraw()}),t.src=i.particles.shape.image.src}else console.log("Error pJS - No image.src"),i.tmp.img_error=!0},i.fn.vendors.draw=function(){"image"==i.particles.shape.type?"svg"==i.tmp.img_type?i.tmp.count_svg>=i.particles.number.value?(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame)):i.tmp.img_error||(i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw)):void 0!=i.tmp.img_obj?(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame)):i.tmp.img_error||(i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw)):(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame))},i.fn.vendors.checkBeforeDraw=function(){"image"==i.particles.shape.type?"svg"==i.tmp.img_type&&void 0==i.tmp.source_svg?i.tmp.checkAnimFrame=requestAnimFrame(check):(cancelRequestAnimFrame(i.tmp.checkAnimFrame),i.tmp.img_error||(i.fn.vendors.init(),i.fn.vendors.draw())):(i.fn.vendors.init(),i.fn.vendors.draw())},i.fn.vendors.init=function(){i.fn.retinaInit(),i.fn.canvasInit(),i.fn.canvasSize(),i.fn.canvasPaint(),i.fn.particlesCreate(),i.fn.vendors.densityAutoParticles(),i.particles.line_linked.color_rgb_line=hexToRgb(i.particles.line_linked.color)},i.fn.vendors.start=function(){isInArray("image",i.particles.shape.type)?(i.tmp.img_type=i.particles.shape.image.src.substr(i.particles.shape.image.src.length-3),i.fn.vendors.loadImg(i.tmp.img_type)):i.fn.vendors.checkBeforeDraw()},i.fn.vendors.eventsListeners(),i.fn.vendors.start()};Object.deepExtend=function(e,a){for(var t in a)a[t]&&a[t].constructor&&a[t].constructor===Object?(e[t]=e[t]||{},arguments.callee(e[t],a[t])):e[t]=a[t];return e},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)}}(),window.cancelRequestAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout}(),window.pJSDom=[],window.particlesJS=function(e,a){"string"!=typeof e&&(a=e,e="particles-js"),e||(e="particles-js");var t=document.getElementById(e),i="particles-js-canvas-el",s=t.getElementsByClassName(i);if(s.length)for(;s.length>0;)t.removeChild(s[0]);var n=document.createElement("canvas");n.className=i,n.style.width="100%",n.style.height="100%";var r=document.getElementById(e).appendChild(n);null!=r&&pJSDom.push(new pJS(e,a))},window.particlesJS.load=function(e,a,t){var i=new XMLHttpRequest;i.open("GET",a),i.onreadystatechange=function(a){if(4==i.readyState)if(200==i.status){var s=JSON.parse(a.currentTarget.response);window.particlesJS(e,s),t&&t()}else console.log("Error pJS - XMLHttpRequest status: "+i.status),console.log("Error pJS - File config not found")},i.send()};
|
assets/js/tooltipster.bundle.min.js
CHANGED
|
File without changes
|
assets/sass/_particles.scss
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.elementor-section .elementor-container {
|
| 2 |
+
z-index: 99;
|
| 3 |
+
}
|
assets/sass/_progress-bar.scss
CHANGED
|
@@ -2,7 +2,6 @@
|
|
| 2 |
$color_0: #eeeeee;
|
| 3 |
$color_1: #000000;
|
| 4 |
$color_2: rgba(255, 255, 255, .15);
|
| 5 |
-
|
| 6 |
@-webkit-keyframes animateStripe {
|
| 7 |
0% {
|
| 8 |
transform: translate(0, 0);
|
|
@@ -11,6 +10,7 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 11 |
transform: translate(35px, 0);
|
| 12 |
}
|
| 13 |
}
|
|
|
|
| 14 |
@keyframes animateStripe {
|
| 15 |
0% {
|
| 16 |
transform: translate(0, 0);
|
|
@@ -19,6 +19,7 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 19 |
transform: translate(35px, 0);
|
| 20 |
}
|
| 21 |
}
|
|
|
|
| 22 |
@-webkit-keyframes animateStripeRTL {
|
| 23 |
0% {
|
| 24 |
transform: translate(0, 0);
|
|
@@ -27,6 +28,7 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 27 |
transform: translate(-35px, 0);
|
| 28 |
}
|
| 29 |
}
|
|
|
|
| 30 |
@keyframes animateStripeRTL {
|
| 31 |
0% {
|
| 32 |
transform: translate(0, 0);
|
|
@@ -35,13 +37,16 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 35 |
transform: translate(-35px, 0);
|
| 36 |
}
|
| 37 |
}
|
|
|
|
| 38 |
.eael-progressbar {
|
| 39 |
position: relative;
|
| 40 |
}
|
|
|
|
| 41 |
.eael-progressbar-title {
|
| 42 |
font-size: 20px;
|
| 43 |
font-weight: 400;
|
| 44 |
}
|
|
|
|
| 45 |
.eael-progressbar-line {
|
| 46 |
position: relative;
|
| 47 |
display: block;
|
|
@@ -51,12 +56,13 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 51 |
.eael-progressbar-count-wrap {
|
| 52 |
position: absolute;
|
| 53 |
right: 0;
|
| 54 |
-
bottom: calc(100% +5px);
|
| 55 |
font-size: 16px;
|
| 56 |
font-weight: 400;
|
| 57 |
line-height: 1;
|
| 58 |
}
|
| 59 |
}
|
|
|
|
| 60 |
.eael-progressbar-line-fill {
|
| 61 |
display: inline-block;
|
| 62 |
position: absolute;
|
|
@@ -69,6 +75,7 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 69 |
transition: width 1500ms linear;
|
| 70 |
overflow: hidden;
|
| 71 |
}
|
|
|
|
| 72 |
.eael-progressbar-circle {
|
| 73 |
position: relative;
|
| 74 |
width: 200px;
|
|
@@ -82,12 +89,14 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 82 |
font-weight: 700;
|
| 83 |
}
|
| 84 |
}
|
|
|
|
| 85 |
.eael-progressbar-circle-shadow {
|
| 86 |
width: 220px;
|
| 87 |
height: 220px;
|
| 88 |
padding: 10px;
|
| 89 |
border-radius: 50%;
|
| 90 |
}
|
|
|
|
| 91 |
.eael-progressbar-circle-pie {
|
| 92 |
position: absolute;
|
| 93 |
top: 0;
|
|
@@ -96,6 +105,7 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 96 |
height: 100%;
|
| 97 |
clip-path: inset(0 0 0 50%);
|
| 98 |
}
|
|
|
|
| 99 |
.eael-progressbar-circle-inner {
|
| 100 |
height: 100%;
|
| 101 |
width: 100%;
|
|
@@ -104,6 +114,7 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 104 |
border-color: $color_0;
|
| 105 |
border-radius: 50%;
|
| 106 |
}
|
|
|
|
| 107 |
.eael-progressbar-circle-half {
|
| 108 |
position: absolute;
|
| 109 |
left: 0;
|
|
@@ -116,13 +127,16 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 116 |
border-radius: 50%;
|
| 117 |
clip-path: inset(0 50% 0 0);
|
| 118 |
}
|
|
|
|
| 119 |
.eael-progressbar-circle-half-left {
|
| 120 |
transform: rotate(0deg);
|
| 121 |
}
|
|
|
|
| 122 |
.eael-progressbar-circle-half-right {
|
| 123 |
transform: rotate(180deg);
|
| 124 |
visibility: hidden;
|
| 125 |
}
|
|
|
|
| 126 |
.eael-progressbar-circle-inner-content {
|
| 127 |
position: absolute;
|
| 128 |
top: 50%;
|
|
@@ -130,6 +144,7 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 130 |
transform: translateY(-50%);
|
| 131 |
text-align: center;
|
| 132 |
}
|
|
|
|
| 133 |
.eael-progressbar-half-circle {
|
| 134 |
position: relative;
|
| 135 |
width: 200px;
|
|
@@ -157,31 +172,37 @@ $color_2: rgba(255, 255, 255, .15);
|
|
| 157 |
font-weight: 700;
|
| 158 |
}
|
| 159 |
}
|
|
|
|
| 160 |
.eael-progressbar-half-circle-after {
|
| 161 |
position: relative;
|
| 162 |
font-size: 12px;
|
| 163 |
font-weight: 400;
|
| 164 |
clear: both;
|
| 165 |
}
|
|
|
|
| 166 |
.eael-progressbar-postfix-label {
|
| 167 |
float: right;
|
| 168 |
}
|
|
|
|
| 169 |
.eael-progressbar-line-stripe .eael-progressbar-line-fill:after {
|
| 170 |
content: '';
|
| 171 |
position: absolute;
|
| 172 |
top: 0;
|
| 173 |
left: -35px;
|
| 174 |
-
width: calc(100% +70px);
|
| 175 |
height: 100%;
|
| 176 |
background-image: linear-gradient(45deg, $color_2 25%, transparent 25%, transparent 50%, $color_2 50%, $color_2 75%, transparent 75%, transparent);
|
| 177 |
background-size: 35px 35px;
|
| 178 |
}
|
|
|
|
| 179 |
.eael-progressbar-line-animate .eael-progressbar-line-fill:after {
|
| 180 |
animation: animateStripe 2s linear infinite;
|
| 181 |
}
|
|
|
|
| 182 |
.eael-progressbar-line-animate-rtl .eael-progressbar-line-fill:after {
|
| 183 |
animation: animateStripeRTL 2s linear infinite;
|
| 184 |
}
|
| 185 |
-
|
|
|
|
| 186 |
margin: 0 auto;
|
| 187 |
}
|
| 2 |
$color_0: #eeeeee;
|
| 3 |
$color_1: #000000;
|
| 4 |
$color_2: rgba(255, 255, 255, .15);
|
|
|
|
| 5 |
@-webkit-keyframes animateStripe {
|
| 6 |
0% {
|
| 7 |
transform: translate(0, 0);
|
| 10 |
transform: translate(35px, 0);
|
| 11 |
}
|
| 12 |
}
|
| 13 |
+
|
| 14 |
@keyframes animateStripe {
|
| 15 |
0% {
|
| 16 |
transform: translate(0, 0);
|
| 19 |
transform: translate(35px, 0);
|
| 20 |
}
|
| 21 |
}
|
| 22 |
+
|
| 23 |
@-webkit-keyframes animateStripeRTL {
|
| 24 |
0% {
|
| 25 |
transform: translate(0, 0);
|
| 28 |
transform: translate(-35px, 0);
|
| 29 |
}
|
| 30 |
}
|
| 31 |
+
|
| 32 |
@keyframes animateStripeRTL {
|
| 33 |
0% {
|
| 34 |
transform: translate(0, 0);
|
| 37 |
transform: translate(-35px, 0);
|
| 38 |
}
|
| 39 |
}
|
| 40 |
+
|
| 41 |
.eael-progressbar {
|
| 42 |
position: relative;
|
| 43 |
}
|
| 44 |
+
|
| 45 |
.eael-progressbar-title {
|
| 46 |
font-size: 20px;
|
| 47 |
font-weight: 400;
|
| 48 |
}
|
| 49 |
+
|
| 50 |
.eael-progressbar-line {
|
| 51 |
position: relative;
|
| 52 |
display: block;
|
| 56 |
.eael-progressbar-count-wrap {
|
| 57 |
position: absolute;
|
| 58 |
right: 0;
|
| 59 |
+
bottom: calc(100% + 5px);
|
| 60 |
font-size: 16px;
|
| 61 |
font-weight: 400;
|
| 62 |
line-height: 1;
|
| 63 |
}
|
| 64 |
}
|
| 65 |
+
|
| 66 |
.eael-progressbar-line-fill {
|
| 67 |
display: inline-block;
|
| 68 |
position: absolute;
|
| 75 |
transition: width 1500ms linear;
|
| 76 |
overflow: hidden;
|
| 77 |
}
|
| 78 |
+
|
| 79 |
.eael-progressbar-circle {
|
| 80 |
position: relative;
|
| 81 |
width: 200px;
|
| 89 |
font-weight: 700;
|
| 90 |
}
|
| 91 |
}
|
| 92 |
+
|
| 93 |
.eael-progressbar-circle-shadow {
|
| 94 |
width: 220px;
|
| 95 |
height: 220px;
|
| 96 |
padding: 10px;
|
| 97 |
border-radius: 50%;
|
| 98 |
}
|
| 99 |
+
|
| 100 |
.eael-progressbar-circle-pie {
|
| 101 |
position: absolute;
|
| 102 |
top: 0;
|
| 105 |
height: 100%;
|
| 106 |
clip-path: inset(0 0 0 50%);
|
| 107 |
}
|
| 108 |
+
|
| 109 |
.eael-progressbar-circle-inner {
|
| 110 |
height: 100%;
|
| 111 |
width: 100%;
|
| 114 |
border-color: $color_0;
|
| 115 |
border-radius: 50%;
|
| 116 |
}
|
| 117 |
+
|
| 118 |
.eael-progressbar-circle-half {
|
| 119 |
position: absolute;
|
| 120 |
left: 0;
|
| 127 |
border-radius: 50%;
|
| 128 |
clip-path: inset(0 50% 0 0);
|
| 129 |
}
|
| 130 |
+
|
| 131 |
.eael-progressbar-circle-half-left {
|
| 132 |
transform: rotate(0deg);
|
| 133 |
}
|
| 134 |
+
|
| 135 |
.eael-progressbar-circle-half-right {
|
| 136 |
transform: rotate(180deg);
|
| 137 |
visibility: hidden;
|
| 138 |
}
|
| 139 |
+
|
| 140 |
.eael-progressbar-circle-inner-content {
|
| 141 |
position: absolute;
|
| 142 |
top: 50%;
|
| 144 |
transform: translateY(-50%);
|
| 145 |
text-align: center;
|
| 146 |
}
|
| 147 |
+
|
| 148 |
.eael-progressbar-half-circle {
|
| 149 |
position: relative;
|
| 150 |
width: 200px;
|
| 172 |
font-weight: 700;
|
| 173 |
}
|
| 174 |
}
|
| 175 |
+
|
| 176 |
.eael-progressbar-half-circle-after {
|
| 177 |
position: relative;
|
| 178 |
font-size: 12px;
|
| 179 |
font-weight: 400;
|
| 180 |
clear: both;
|
| 181 |
}
|
| 182 |
+
|
| 183 |
.eael-progressbar-postfix-label {
|
| 184 |
float: right;
|
| 185 |
}
|
| 186 |
+
|
| 187 |
.eael-progressbar-line-stripe .eael-progressbar-line-fill:after {
|
| 188 |
content: '';
|
| 189 |
position: absolute;
|
| 190 |
top: 0;
|
| 191 |
left: -35px;
|
| 192 |
+
width: calc(100% + 70px);
|
| 193 |
height: 100%;
|
| 194 |
background-image: linear-gradient(45deg, $color_2 25%, transparent 25%, transparent 50%, $color_2 50%, $color_2 75%, transparent 75%, transparent);
|
| 195 |
background-size: 35px 35px;
|
| 196 |
}
|
| 197 |
+
|
| 198 |
.eael-progressbar-line-animate .eael-progressbar-line-fill:after {
|
| 199 |
animation: animateStripe 2s linear infinite;
|
| 200 |
}
|
| 201 |
+
|
| 202 |
.eael-progressbar-line-animate-rtl .eael-progressbar-line-fill:after {
|
| 203 |
animation: animateStripeRTL 2s linear infinite;
|
| 204 |
}
|
| 205 |
+
|
| 206 |
+
.eael-progressbar-circle-wrap>div {
|
| 207 |
margin: 0 auto;
|
| 208 |
}
|
assets/sass/_woo-products.scss
CHANGED
|
@@ -1,289 +1,370 @@
|
|
| 1 |
-
|
| 2 |
/* 09. Product Styles
|
| 3 |
-
|
| 4 |
-
.eael-product-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
.
|
| 11 |
-
.
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
}
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
.
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
}
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
}
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
.
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
.
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
}
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
.
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
.
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
|
| 262 |
-
|
| 263 |
-
|
| 264 |
-
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
|
| 268 |
-
|
| 269 |
-
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
|
| 274 |
-
|
| 275 |
-
|
| 276 |
-
|
| 277 |
-
|
| 278 |
-
|
| 279 |
-
|
| 280 |
-
|
| 281 |
-
|
| 282 |
-
|
| 283 |
-
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
|
| 287 |
-
|
| 288 |
-
|
| 289 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*--------------------------*/
|
| 2 |
/* 09. Product Styles
|
| 3 |
+
/*--------------------------*/
|
| 4 |
+
.eael-product-grid,
|
| 5 |
+
.eael-post-grid {
|
| 6 |
+
// simple & reveal style
|
| 7 |
+
&.eael-product-simple,
|
| 8 |
+
&.eael-product-reveal {
|
| 9 |
+
.woocommerce {
|
| 10 |
+
ul.products {
|
| 11 |
+
li.product {
|
| 12 |
+
position: relative;
|
| 13 |
+
float: left;
|
| 14 |
+
overflow: hidden;
|
| 15 |
+
text-align: center;
|
| 16 |
+
padding: 0;
|
| 17 |
+
border-radius: 0;
|
| 18 |
+
background-color: #fff;
|
| 19 |
+
box-shadow: none;
|
| 20 |
+
|
| 21 |
+
a {
|
| 22 |
+
text-decoration: none;
|
| 23 |
+
|
| 24 |
+
&:hover {
|
| 25 |
+
outline: none;
|
| 26 |
+
box-shadow: none;
|
| 27 |
+
}
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
img {
|
| 31 |
+
width: 100%;
|
| 32 |
+
height: auto;
|
| 33 |
+
backface-visibility: hidden;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
// product title
|
| 37 |
+
.woocommerce-loop-product__title {
|
| 38 |
+
font-size: 16px;
|
| 39 |
+
font-weight: 700;
|
| 40 |
+
line-height: 1;
|
| 41 |
+
color: #333;
|
| 42 |
+
margin: 25px 0 12px;
|
| 43 |
+
padding: 0;
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
// onsale
|
| 47 |
+
.onsale {
|
| 48 |
+
display: block;
|
| 49 |
+
line-height: 170px;
|
| 50 |
+
font-size: 13px;
|
| 51 |
+
text-align: center;
|
| 52 |
+
letter-spacing: 0;
|
| 53 |
+
text-shadow: 0 1px 1px rgba(0,0,0,.6);
|
| 54 |
+
text-transform: uppercase;
|
| 55 |
+
color: #fff;
|
| 56 |
+
background-color: #ff2a13;
|
| 57 |
+
border-radius: 0;
|
| 58 |
+
border: none;
|
| 59 |
+
box-shadow: none;
|
| 60 |
+
position: absolute;
|
| 61 |
+
height: 100px;
|
| 62 |
+
width: 200px;
|
| 63 |
+
z-index: 1;
|
| 64 |
+
left: -100px;
|
| 65 |
+
top: -50px;
|
| 66 |
+
right: auto;
|
| 67 |
+
margin: 0;
|
| 68 |
+
padding: 0;
|
| 69 |
+
transform: rotate(-45deg);
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
.price {
|
| 73 |
+
font-size: 14px;
|
| 74 |
+
margin-bottom: 0;
|
| 75 |
+
|
| 76 |
+
del {
|
| 77 |
+
opacity: 0.5;
|
| 78 |
+
display: inline-block;
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
ins {
|
| 82 |
+
font-weight: 400;
|
| 83 |
+
background-color: transparent;
|
| 84 |
+
color: #ff2a13;
|
| 85 |
+
}
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
// star rating
|
| 90 |
+
.star-rating {
|
| 91 |
+
display: block;
|
| 92 |
+
float: none;
|
| 93 |
+
font-size: 14px;
|
| 94 |
+
margin: 10px auto;
|
| 95 |
+
}
|
| 96 |
+
|
| 97 |
+
// add to cart button
|
| 98 |
+
.button.add_to_cart_button {
|
| 99 |
+
display: inline-block;
|
| 100 |
+
height: 40px;
|
| 101 |
+
font-size: 14px;
|
| 102 |
+
font-weight: 400;
|
| 103 |
+
line-height: 40px;
|
| 104 |
+
text-align: center;
|
| 105 |
+
text-transform: uppercase;
|
| 106 |
+
color: #fff;
|
| 107 |
+
background-color: #333;
|
| 108 |
+
padding: 0 30px;
|
| 109 |
+
margin: 15px 0;
|
| 110 |
+
border-radius: 0;
|
| 111 |
+
|
| 112 |
+
&:focus {
|
| 113 |
+
outline: none;
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
a.added_to_cart {
|
| 118 |
+
display: block;
|
| 119 |
+
margin: 0 0 15px 0;
|
| 120 |
+
padding: 0;
|
| 121 |
+
font-size: 14px;
|
| 122 |
+
line-height: 1;
|
| 123 |
+
text-transform: capitalize;
|
| 124 |
+
color: #333;
|
| 125 |
+
background-color: transparent;
|
| 126 |
+
}
|
| 127 |
+
}
|
| 128 |
+
}
|
| 129 |
+
}
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
// simple style
|
| 133 |
+
&.eael-product-simple {
|
| 134 |
+
.woocommerce {
|
| 135 |
+
ul.products {
|
| 136 |
+
li.product {
|
| 137 |
+
border: 1px solid #eee;
|
| 138 |
+
}
|
| 139 |
+
}
|
| 140 |
+
}
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
// reveal style
|
| 144 |
+
&.eael-product-reveal {
|
| 145 |
+
.woocommerce {
|
| 146 |
+
ul.products {
|
| 147 |
+
li.product {
|
| 148 |
+
border: 1px solid transparent;
|
| 149 |
+
|
| 150 |
+
.button.add_to_cart_button,
|
| 151 |
+
a.added_to_cart {
|
| 152 |
+
visibility: hidden;
|
| 153 |
+
transition: none;
|
| 154 |
+
}
|
| 155 |
+
|
| 156 |
+
&:hover {
|
| 157 |
+
border: 1px solid #eee;
|
| 158 |
+
|
| 159 |
+
.button.add_to_cart_button,
|
| 160 |
+
a.added_to_cart {
|
| 161 |
+
visibility: visible;
|
| 162 |
+
}
|
| 163 |
+
}
|
| 164 |
+
}
|
| 165 |
+
}
|
| 166 |
+
}
|
| 167 |
+
}
|
| 168 |
+
|
| 169 |
+
// overlay style
|
| 170 |
+
&.eael-product-overlay {
|
| 171 |
+
.woocommerce {
|
| 172 |
+
ul.products {
|
| 173 |
+
li.product {
|
| 174 |
+
position: relative;
|
| 175 |
+
float: left;
|
| 176 |
+
overflow: hidden;
|
| 177 |
+
text-align: center;
|
| 178 |
+
padding: 0 0 15px 0;
|
| 179 |
+
border-radius: 0;
|
| 180 |
+
background-color: #fff;
|
| 181 |
+
box-shadow: none;
|
| 182 |
+
|
| 183 |
+
a {
|
| 184 |
+
text-decoration: none;
|
| 185 |
+
|
| 186 |
+
&:hover {
|
| 187 |
+
outline: none;
|
| 188 |
+
box-shadow: none;
|
| 189 |
+
}
|
| 190 |
+
}
|
| 191 |
+
|
| 192 |
+
img {
|
| 193 |
+
width: 100%;
|
| 194 |
+
height: auto;
|
| 195 |
+
margin: 0;
|
| 196 |
+
backface-visibility: hidden;
|
| 197 |
+
}
|
| 198 |
+
|
| 199 |
+
.overlay {
|
| 200 |
+
position: relative;
|
| 201 |
+
overflow: hidden;
|
| 202 |
+
line-height: 0;
|
| 203 |
+
|
| 204 |
+
.button-wrap {
|
| 205 |
+
position: absolute;
|
| 206 |
+
top: 50%;
|
| 207 |
+
left: 0;
|
| 208 |
+
right: 0;
|
| 209 |
+
text-align: center;
|
| 210 |
+
transform: translateY(-50%);
|
| 211 |
+
}
|
| 212 |
+
|
| 213 |
+
.product-link,
|
| 214 |
+
.add_to_cart_button,
|
| 215 |
+
.added_to_cart {
|
| 216 |
+
display: inline-block;
|
| 217 |
+
font-size: 14px;
|
| 218 |
+
line-height: 38px;
|
| 219 |
+
text-align: center;
|
| 220 |
+
color: #fff;
|
| 221 |
+
background-color: #333;
|
| 222 |
+
width: 38px;
|
| 223 |
+
height: 38px;
|
| 224 |
+
border-style: none;
|
| 225 |
+
border-radius: 50%;
|
| 226 |
+
vertical-align: middle;
|
| 227 |
+
padding: 0;
|
| 228 |
+
margin: 0 5px;
|
| 229 |
+
transform: translateY(20px);
|
| 230 |
+
opacity: 0;
|
| 231 |
+
transition: transform 200ms, opacity 300ms;
|
| 232 |
+
|
| 233 |
+
&:focus {
|
| 234 |
+
outline: none;
|
| 235 |
+
}
|
| 236 |
+
}
|
| 237 |
+
|
| 238 |
+
.add_to_cart_button {
|
| 239 |
+
font-size: 0;
|
| 240 |
+
&:before {
|
| 241 |
+
display: none;
|
| 242 |
+
}
|
| 243 |
+
|
| 244 |
+
&:after {
|
| 245 |
+
content: '\f217';
|
| 246 |
+
font: normal normal normal 14px/1 FontAwesome;
|
| 247 |
+
font-size: 14px;
|
| 248 |
+
line-height: 38px;
|
| 249 |
+
text-rendering: auto;
|
| 250 |
+
-webkit-font-smoothing: antialiased;
|
| 251 |
+
vertical-align: middle;
|
| 252 |
+
margin: 0;
|
| 253 |
+
padding: 0;
|
| 254 |
+
}
|
| 255 |
+
|
| 256 |
+
&.loading {
|
| 257 |
+
&:before {
|
| 258 |
+
display: none;
|
| 259 |
+
}
|
| 260 |
+
&:after {
|
| 261 |
+
content: '\f110';
|
| 262 |
+
display: inline-block;
|
| 263 |
+
font: normal normal normal 14px/1 FontAwesome;
|
| 264 |
+
font-size: 14px;
|
| 265 |
+
line-height: 38px;
|
| 266 |
+
color: #fff;
|
| 267 |
+
height: auto;
|
| 268 |
+
width: auto;
|
| 269 |
+
position: relative;
|
| 270 |
+
top: 0;
|
| 271 |
+
left: 0;
|
| 272 |
+
margin: 0;
|
| 273 |
+
padding: 0;
|
| 274 |
+
}
|
| 275 |
+
}
|
| 276 |
+
}
|
| 277 |
+
|
| 278 |
+
.added_to_cart {
|
| 279 |
+
font-size: 0;
|
| 280 |
+
|
| 281 |
+
&:after {
|
| 282 |
+
content: '\f06e';
|
| 283 |
+
font: normal normal normal 14px/1 FontAwesome;
|
| 284 |
+
font-size: 14px;
|
| 285 |
+
line-height: 38px;
|
| 286 |
+
color: #fff;
|
| 287 |
+
text-rendering: auto;
|
| 288 |
+
-webkit-font-smoothing: antialiased;
|
| 289 |
+
vertical-align: middle;
|
| 290 |
+
margin: 0;
|
| 291 |
+
padding: 0;
|
| 292 |
+
}
|
| 293 |
+
}
|
| 294 |
+
}
|
| 295 |
+
|
| 296 |
+
// product title
|
| 297 |
+
.woocommerce-loop-product__title {
|
| 298 |
+
font-size: 16px;
|
| 299 |
+
font-weight: 700;
|
| 300 |
+
line-height: 1;
|
| 301 |
+
color: #333;
|
| 302 |
+
margin: 25px 0 12px;
|
| 303 |
+
padding: 0;
|
| 304 |
+
}
|
| 305 |
+
|
| 306 |
+
// onsale
|
| 307 |
+
.onsale {
|
| 308 |
+
display: block;
|
| 309 |
+
line-height: 170px;
|
| 310 |
+
font-size: 13px;
|
| 311 |
+
text-align: center;
|
| 312 |
+
letter-spacing: 0;
|
| 313 |
+
text-shadow: 0 1px 1px rgba(0,0,0,.6);
|
| 314 |
+
text-transform: uppercase;
|
| 315 |
+
color: #fff;
|
| 316 |
+
background-color: #ff2a13;
|
| 317 |
+
border-radius: 0;
|
| 318 |
+
border: none;
|
| 319 |
+
box-shadow: none;
|
| 320 |
+
position: absolute;
|
| 321 |
+
height: 100px;
|
| 322 |
+
width: 200px;
|
| 323 |
+
z-index: 1;
|
| 324 |
+
left: -100px;
|
| 325 |
+
top: -50px;
|
| 326 |
+
right: auto;
|
| 327 |
+
margin: 0;
|
| 328 |
+
padding: 0;
|
| 329 |
+
transform: rotate(-45deg);
|
| 330 |
+
}
|
| 331 |
+
|
| 332 |
+
.price {
|
| 333 |
+
font-size: 14px;
|
| 334 |
+
margin-bottom: 0;
|
| 335 |
+
|
| 336 |
+
del {
|
| 337 |
+
opacity: 0.5;
|
| 338 |
+
display: inline-block;
|
| 339 |
+
}
|
| 340 |
+
|
| 341 |
+
ins {
|
| 342 |
+
font-weight: 400;
|
| 343 |
+
background-color: transparent;
|
| 344 |
+
color: #ff2a13;
|
| 345 |
+
}
|
| 346 |
+
}
|
| 347 |
+
|
| 348 |
+
|
| 349 |
+
// star rating
|
| 350 |
+
.star-rating {
|
| 351 |
+
display: block;
|
| 352 |
+
float: none;
|
| 353 |
+
font-size: 14px;
|
| 354 |
+
margin: 10px auto;
|
| 355 |
+
}
|
| 356 |
+
|
| 357 |
+
&:hover {
|
| 358 |
+
.overlay {
|
| 359 |
+
a,
|
| 360 |
+
.add_to_cart_button {
|
| 361 |
+
opacity: 1;
|
| 362 |
+
transform: translateY(0);
|
| 363 |
+
}
|
| 364 |
+
}
|
| 365 |
+
}
|
| 366 |
+
}
|
| 367 |
+
}
|
| 368 |
+
}
|
| 369 |
+
}
|
| 370 |
+
}
|
assets/sass/essential-addons-elementor.scss
CHANGED
|
@@ -76,4 +76,5 @@
|
|
| 76 |
@import "advance-accordion";
|
| 77 |
@import "tooltip";
|
| 78 |
@import "progress-bar";
|
| 79 |
-
@import "img-accordion";
|
|
|
| 76 |
@import "advance-accordion";
|
| 77 |
@import "tooltip";
|
| 78 |
@import "progress-bar";
|
| 79 |
+
@import "img-accordion";
|
| 80 |
+
@import "particles";
|
assets/social-feeds/codebird.js
CHANGED
|
File without changes
|
assets/social-feeds/doT.min.js
CHANGED
|
File without changes
|
assets/social-feeds/jquery.socialfeed.js
CHANGED
|
File without changes
|
assets/social-feeds/moment.js
CHANGED
|
File without changes
|
elements/advance-accordion/advance-accordion.php
CHANGED
|
File without changes
|
elements/advance-tabs/advance-tabs.php
CHANGED
|
File without changes
|
elements/caldera-forms/caldera-forms.php
CHANGED
|
File without changes
|
elements/call-to-action/call-to-action.php
CHANGED
|
File without changes
|
elements/countdown/countdown.php
CHANGED
|
File without changes
|
elements/creative-button/creative-button.php
CHANGED
|
File without changes
|
elements/data-table/data-table.php
CHANGED
|
File without changes
|
elements/dual-color-header/dual-color-header.php
CHANGED
|
File without changes
|
elements/facebook-feed/facebook-feed.php
CHANGED
|
File without changes
|
elements/fancy-text/fancy-text.php
CHANGED
|
File without changes
|
elements/filterable-gallery/filterable-gallery.php
CHANGED
|
@@ -1770,10 +1770,13 @@ class Widget_Eael_Filterable_Gallery extends Widget_Base {
|
|
| 1770 |
?>
|
| 1771 |
<div class="eael-filter-gallery-control">
|
| 1772 |
<ul>
|
| 1773 |
-
|
| 1774 |
-
|
|
|
|
|
|
|
|
|
|
| 1775 |
$sorter_filter = $this->sorter_class( $control['eael_fg_control'] ); ?>
|
| 1776 |
-
<li class="control" data-filter=".eael-cf-<?php echo esc_attr( $sorter_filter ); ?>"><?php echo esc_html__($control['eael_fg_control']); ?></li>
|
| 1777 |
<?php endforeach; ?>
|
| 1778 |
</ul>
|
| 1779 |
</div>
|
|
@@ -2057,6 +2060,7 @@ class Widget_Eael_Filterable_Gallery extends Widget_Base {
|
|
| 2057 |
itemSelector: '.eael-filterable-gallery-item-wrap',
|
| 2058 |
layoutMode: $layout_mode,
|
| 2059 |
percentPosition: true,
|
|
|
|
| 2060 |
});
|
| 2061 |
|
| 2062 |
// not necessary, just in case
|
| 1770 |
?>
|
| 1771 |
<div class="eael-filter-gallery-control">
|
| 1772 |
<ul>
|
| 1773 |
+
<?php if ($settings['eael_fg_all_label_text']) { ?>
|
| 1774 |
+
<li class="control active" data-filter="*"><?php echo $all_text; ?></li>
|
| 1775 |
+
<?php } ?>
|
| 1776 |
+
|
| 1777 |
+
<?php foreach( $settings['eael_fg_controls'] as $key => $control ) :
|
| 1778 |
$sorter_filter = $this->sorter_class( $control['eael_fg_control'] ); ?>
|
| 1779 |
+
<li class="control <?php if ($key == 0 && empty($settings['eael_fg_all_label_text'])) {echo 'active';} ?>" data-filter=".eael-cf-<?php echo esc_attr( $sorter_filter ); ?>"><?php echo esc_html__($control['eael_fg_control']); ?></li>
|
| 1780 |
<?php endforeach; ?>
|
| 1781 |
</ul>
|
| 1782 |
</div>
|
| 2060 |
itemSelector: '.eael-filterable-gallery-item-wrap',
|
| 2061 |
layoutMode: $layout_mode,
|
| 2062 |
percentPosition: true,
|
| 2063 |
+
filter: $('.eael-filter-gallery-control .control.active', $scope).data('filter')
|
| 2064 |
});
|
| 2065 |
|
| 2066 |
// not necessary, just in case
|
elements/gravity-form/gravity-form.php
CHANGED
|
File without changes
|
elements/image-accordion/image-accordion.php
CHANGED
|
File without changes
|
elements/infobox/infobox.php
CHANGED
|
File without changes
|
elements/ninja-form/ninja-form.php
CHANGED
|
File without changes
|
elements/post-timeline/post-timeline.php
CHANGED
|
File without changes
|
elements/pricing-table/pricing-table.php
CHANGED
|
File without changes
|
elements/product-grid/product-grid.php
CHANGED
|
@@ -1,52 +1,51 @@
|
|
| 1 |
<?php
|
| 2 |
namespace Elementor;
|
| 3 |
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
|
|
|
| 7 |
|
| 8 |
class Widget_Eael_Product_Grid extends Widget_Base {
|
| 9 |
-
|
| 10 |
|
| 11 |
public function get_name() {
|
| 12 |
return 'eicon-woocommerce';
|
| 13 |
}
|
| 14 |
|
| 15 |
public function get_title() {
|
| 16 |
-
return esc_html__(
|
| 17 |
}
|
| 18 |
|
| 19 |
public function get_icon() {
|
| 20 |
return 'eicon-woocommerce';
|
| 21 |
}
|
| 22 |
|
| 23 |
-
|
| 24 |
-
return [
|
| 25 |
}
|
| 26 |
|
| 27 |
-
|
| 28 |
protected function _register_controls() {
|
| 29 |
|
| 30 |
// Content Controls
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
|
| 38 |
$this->add_control(
|
| 39 |
'eael_product_grid_product_filter',
|
| 40 |
[
|
| 41 |
-
'label' => esc_html__(
|
| 42 |
'type' => Controls_Manager::SELECT,
|
| 43 |
'default' => 'recent-products',
|
| 44 |
'options' => [
|
| 45 |
-
'recent-products' => esc_html__(
|
| 46 |
-
'featured-products' => esc_html__(
|
| 47 |
-
'best-selling-products' => esc_html__(
|
| 48 |
-
'sale-products' => esc_html__(
|
| 49 |
-
'top-products' => esc_html__(
|
| 50 |
],
|
| 51 |
]
|
| 52 |
);
|
|
@@ -54,37 +53,36 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 54 |
$this->add_control(
|
| 55 |
'eael_product_grid_column',
|
| 56 |
[
|
| 57 |
-
'label' => esc_html__(
|
| 58 |
'type' => Controls_Manager::SELECT,
|
| 59 |
'default' => '4',
|
| 60 |
'options' => [
|
| 61 |
-
'1' => esc_html__(
|
| 62 |
-
'2' => esc_html__(
|
| 63 |
-
'3' => esc_html__(
|
| 64 |
-
'4' => esc_html__(
|
| 65 |
-
'5' => esc_html__(
|
| 66 |
-
'6' => esc_html__(
|
| 67 |
],
|
| 68 |
]
|
| 69 |
);
|
| 70 |
|
| 71 |
$this->add_control(
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
);
|
| 82 |
|
| 83 |
-
|
| 84 |
$this->add_control(
|
| 85 |
'eael_product_grid_categories',
|
| 86 |
[
|
| 87 |
-
'label' => esc_html__(
|
| 88 |
'type' => Controls_Manager::SELECT2,
|
| 89 |
'label_block' => true,
|
| 90 |
'multiple' => true,
|
|
@@ -92,25 +90,25 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 92 |
]
|
| 93 |
);
|
| 94 |
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
|
| 110 |
$this->add_control(
|
| 111 |
'eael_product_grid_rating',
|
| 112 |
[
|
| 113 |
-
'label' => esc_html__(
|
| 114 |
'type' => Controls_Manager::SWITCHER,
|
| 115 |
'return_value' => 'yes',
|
| 116 |
'default' => 'yes',
|
|
@@ -118,44 +116,19 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 118 |
);
|
| 119 |
|
| 120 |
$this->end_controls_section();
|
| 121 |
-
|
| 122 |
-
$this->start_controls_section(
|
| 123 |
-
'eael_section_pro',
|
| 124 |
-
[
|
| 125 |
-
'label' => __( 'Go Premium for More Features', 'essential-addons-elementor' )
|
| 126 |
-
]
|
| 127 |
-
);
|
| 128 |
-
|
| 129 |
-
$this->add_control(
|
| 130 |
-
'eael_control_get_pro',
|
| 131 |
-
[
|
| 132 |
-
'label' => __( 'Unlock more possibilities', 'essential-addons-elementor' ),
|
| 133 |
-
'type' => Controls_Manager::CHOOSE,
|
| 134 |
-
'options' => [
|
| 135 |
-
'1' => [
|
| 136 |
-
'title' => __( '', 'essential-addons-elementor' ),
|
| 137 |
-
'icon' => 'fa fa-unlock-alt',
|
| 138 |
-
],
|
| 139 |
-
],
|
| 140 |
-
'default' => '1',
|
| 141 |
-
'description' => '<span class="pro-feature"> Get the <a href="https://essential-addons.com/elementor/buy.php" target="_blank">Pro version</a> for more stunning elements and customization options.</span>'
|
| 142 |
-
]
|
| 143 |
-
);
|
| 144 |
|
| 145 |
-
$this->end_controls_section();
|
| 146 |
-
|
| 147 |
$this->start_controls_section(
|
| 148 |
'eael_product_grid_styles',
|
| 149 |
[
|
| 150 |
-
'label' => esc_html__(
|
| 151 |
-
'tab' => Controls_Manager::TAB_STYLE
|
| 152 |
]
|
| 153 |
);
|
| 154 |
|
| 155 |
$this->add_control(
|
| 156 |
'eael_product_grid_background_color',
|
| 157 |
[
|
| 158 |
-
'label' => esc_html__(
|
| 159 |
'type' => Controls_Manager::COLOR,
|
| 160 |
'default' => '#fff',
|
| 161 |
'selectors' => [
|
|
@@ -168,37 +141,55 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 168 |
Group_Control_Border::get_type(),
|
| 169 |
[
|
| 170 |
'name' => 'eael_peoduct_grid_border',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 171 |
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product',
|
|
|
|
|
|
|
|
|
|
| 172 |
]
|
| 173 |
);
|
| 174 |
-
|
| 175 |
$this->add_control(
|
| 176 |
'eael_peoduct_grid_border_radius',
|
| 177 |
[
|
| 178 |
-
'label' => esc_html__(
|
| 179 |
'type' => Controls_Manager::DIMENSIONS,
|
| 180 |
'selectors' => [
|
| 181 |
'{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
|
| 182 |
],
|
| 183 |
]
|
| 184 |
);
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
$this->end_controls_section();
|
| 188 |
|
|
|
|
| 189 |
|
| 190 |
$this->start_controls_section(
|
| 191 |
'eael_section_product_grid_typography',
|
| 192 |
[
|
| 193 |
-
'label' => esc_html__(
|
| 194 |
-
'tab' => Controls_Manager::TAB_STYLE
|
| 195 |
]
|
| 196 |
);
|
| 197 |
|
| 198 |
$this->add_control(
|
| 199 |
'eael_product_grid_product_title_heading',
|
| 200 |
[
|
| 201 |
-
'label' => __(
|
| 202 |
'type' => Controls_Manager::HEADING,
|
| 203 |
]
|
| 204 |
);
|
|
@@ -206,7 +197,7 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 206 |
$this->add_control(
|
| 207 |
'eael_product_grid_product_title_color',
|
| 208 |
[
|
| 209 |
-
'label' => esc_html__(
|
| 210 |
'type' => Controls_Manager::COLOR,
|
| 211 |
'default' => '#272727',
|
| 212 |
'selectors' => [
|
|
@@ -214,11 +205,11 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 214 |
],
|
| 215 |
]
|
| 216 |
);
|
| 217 |
-
|
| 218 |
$this->add_group_control(
|
| 219 |
Group_Control_Typography::get_type(),
|
| 220 |
[
|
| 221 |
-
|
| 222 |
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .woocommerce-loop-product__title',
|
| 223 |
]
|
| 224 |
);
|
|
@@ -226,16 +217,15 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 226 |
$this->add_control(
|
| 227 |
'eael_product_grid_product_price_heading',
|
| 228 |
[
|
| 229 |
-
'label' => __(
|
| 230 |
'type' => Controls_Manager::HEADING,
|
| 231 |
]
|
| 232 |
);
|
| 233 |
|
| 234 |
-
|
| 235 |
$this->add_control(
|
| 236 |
'eael_product_grid_product_price_color',
|
| 237 |
[
|
| 238 |
-
'label' => esc_html__(
|
| 239 |
'type' => Controls_Manager::COLOR,
|
| 240 |
'default' => '#272727',
|
| 241 |
'selectors' => [
|
|
@@ -243,11 +233,11 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 243 |
],
|
| 244 |
]
|
| 245 |
);
|
| 246 |
-
|
| 247 |
$this->add_group_control(
|
| 248 |
Group_Control_Typography::get_type(),
|
| 249 |
[
|
| 250 |
-
|
| 251 |
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .price',
|
| 252 |
]
|
| 253 |
);
|
|
@@ -255,7 +245,7 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 255 |
$this->add_control(
|
| 256 |
'eael_product_grid_product_rating_heading',
|
| 257 |
[
|
| 258 |
-
'label' => __(
|
| 259 |
'type' => Controls_Manager::HEADING,
|
| 260 |
]
|
| 261 |
);
|
|
@@ -263,7 +253,7 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 263 |
$this->add_control(
|
| 264 |
'eael_product_grid_product_rating_color',
|
| 265 |
[
|
| 266 |
-
'label' => esc_html__(
|
| 267 |
'type' => Controls_Manager::COLOR,
|
| 268 |
'default' => '#f2b01e',
|
| 269 |
'selectors' => [
|
|
@@ -272,11 +262,11 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 272 |
],
|
| 273 |
]
|
| 274 |
);
|
| 275 |
-
|
| 276 |
$this->add_group_control(
|
| 277 |
Group_Control_Typography::get_type(),
|
| 278 |
[
|
| 279 |
-
|
| 280 |
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .star-rating',
|
| 281 |
]
|
| 282 |
);
|
|
@@ -284,7 +274,7 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 284 |
$this->add_control(
|
| 285 |
'eael_product_grid_sale_badge_heading',
|
| 286 |
[
|
| 287 |
-
'label' => __(
|
| 288 |
'type' => Controls_Manager::HEADING,
|
| 289 |
]
|
| 290 |
);
|
|
@@ -292,11 +282,11 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 292 |
$this->add_control(
|
| 293 |
'eael_product_grid_sale_badge_color',
|
| 294 |
[
|
| 295 |
-
'label' => esc_html__(
|
| 296 |
'type' => Controls_Manager::COLOR,
|
| 297 |
'default' => '#fff',
|
| 298 |
'selectors' => [
|
| 299 |
-
'{{WRAPPER}} .
|
| 300 |
],
|
| 301 |
]
|
| 302 |
);
|
|
@@ -304,193 +294,225 @@ class Widget_Eael_Product_Grid extends Widget_Base {
|
|
| 304 |
$this->add_control(
|
| 305 |
'eael_product_grid_sale_badge_background',
|
| 306 |
[
|
| 307 |
-
'label' => esc_html__(
|
| 308 |
'type' => Controls_Manager::COLOR,
|
| 309 |
'default' => '#ff2a13',
|
| 310 |
'selectors' => [
|
| 311 |
-
'{{WRAPPER}} .
|
|
|
|
| 312 |
],
|
| 313 |
]
|
| 314 |
);
|
| 315 |
-
|
| 316 |
$this->add_group_control(
|
| 317 |
Group_Control_Typography::get_type(),
|
| 318 |
[
|
| 319 |
-
|
| 320 |
-
'selector' => '{{WRAPPER}} .
|
| 321 |
]
|
| 322 |
);
|
| 323 |
|
| 324 |
-
|
| 325 |
$this->end_controls_section();
|
| 326 |
|
| 327 |
-
|
| 328 |
$this->start_controls_section(
|
| 329 |
'eael_section_product_grid_add_to_cart_styles',
|
| 330 |
[
|
| 331 |
-
'label' => esc_html__(
|
| 332 |
-
'tab' => Controls_Manager::TAB_STYLE
|
| 333 |
]
|
| 334 |
);
|
| 335 |
|
|
|
|
| 336 |
|
| 337 |
-
$this->
|
| 338 |
-
|
| 339 |
-
$this->start_controls_tab( 'normal', [ 'label' => esc_html__( 'Normal', 'essential-addons-elementor' ) ] );
|
| 340 |
|
| 341 |
$this->add_control(
|
| 342 |
'eael_product_grid_add_to_cart_color',
|
| 343 |
[
|
| 344 |
-
'label' => esc_html__(
|
| 345 |
'type' => Controls_Manager::COLOR,
|
| 346 |
-
'default' => '#
|
| 347 |
'selectors' => [
|
| 348 |
'{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button' => 'color: {{VALUE}};',
|
|
|
|
|
|
|
| 349 |
],
|
| 350 |
]
|
| 351 |
);
|
| 352 |
-
|
| 353 |
$this->add_control(
|
| 354 |
'eael_product_grid_add_to_cart_background',
|
| 355 |
[
|
| 356 |
-
'label' => esc_html__(
|
| 357 |
'type' => Controls_Manager::COLOR,
|
| 358 |
-
'default' => '#
|
| 359 |
'selectors' => [
|
| 360 |
'{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button' => 'background-color: {{VALUE}};',
|
|
|
|
|
|
|
| 361 |
],
|
| 362 |
]
|
| 363 |
);
|
| 364 |
-
|
| 365 |
$this->add_group_control(
|
| 366 |
Group_Control_Border::get_type(),
|
| 367 |
[
|
| 368 |
'name' => 'eael_product_grid_add_to_cart_border',
|
| 369 |
-
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button',
|
| 370 |
]
|
| 371 |
);
|
| 372 |
|
| 373 |
$this->add_group_control(
|
| 374 |
Group_Control_Typography::get_type(),
|
| 375 |
[
|
| 376 |
-
|
| 377 |
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button',
|
|
|
|
|
|
|
|
|
|
| 378 |
]
|
| 379 |
);
|
| 380 |
|
| 381 |
$this->end_controls_tab();
|
| 382 |
|
| 383 |
-
$this->start_controls_tab(
|
| 384 |
|
| 385 |
$this->add_control(
|
| 386 |
'eael_product_grid_add_to_cart_hover_color',
|
| 387 |
[
|
| 388 |
-
'label' => esc_html__(
|
| 389 |
'type' => Controls_Manager::COLOR,
|
| 390 |
-
'default' => '#
|
| 391 |
'selectors' => [
|
| 392 |
'{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button:hover' => 'color: {{VALUE}};',
|
|
|
|
|
|
|
| 393 |
],
|
| 394 |
]
|
| 395 |
);
|
| 396 |
-
|
| 397 |
$this->add_control(
|
| 398 |
'eael_product_grid_add_to_cart_hover_background',
|
| 399 |
[
|
| 400 |
-
'label' => esc_html__(
|
| 401 |
'type' => Controls_Manager::COLOR,
|
| 402 |
-
'default' => '#
|
| 403 |
'selectors' => [
|
| 404 |
'{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button:hover' => 'background-color: {{VALUE}};',
|
|
|
|
|
|
|
| 405 |
],
|
| 406 |
]
|
| 407 |
);
|
| 408 |
-
|
| 409 |
$this->add_control(
|
| 410 |
'eael_product_grid_add_to_cart_hover_border_color',
|
| 411 |
[
|
| 412 |
-
'label' => esc_html__(
|
| 413 |
'type' => Controls_Manager::COLOR,
|
| 414 |
'default' => '',
|
| 415 |
'selectors' => [
|
| 416 |
'{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button:hover' => 'border-color: {{VALUE}};',
|
|
|
|
|
|
|
| 417 |
],
|
| 418 |
]
|
| 419 |
);
|
| 420 |
|
| 421 |
-
|
| 422 |
$this->end_controls_tab();
|
| 423 |
-
|
| 424 |
-
$this->end_controls_tabs();
|
| 425 |
|
|
|
|
| 426 |
|
| 427 |
$this->end_controls_section();
|
| 428 |
-
|
| 429 |
-
|
| 430 |
-
}
|
| 431 |
|
|
|
|
| 432 |
|
| 433 |
-
protected function render(
|
| 434 |
-
|
| 435 |
-
|
| 436 |
$settings = $this->get_settings();
|
| 437 |
-
|
| 438 |
-
|
| 439 |
-
$
|
| 440 |
-
|
| 441 |
-
$
|
| 442 |
-
|
| 443 |
-
|
| 444 |
-
|
| 445 |
-
$category_ids = implode(', ', $get_product_categories);
|
| 446 |
} else {
|
| 447 |
-
$
|
| 448 |
}
|
| 449 |
|
| 450 |
-
|
| 451 |
-
|
| 452 |
-
|
| 453 |
-
|
| 454 |
-
|
| 455 |
-
|
| 456 |
-
|
| 457 |
-
|
| 458 |
-
|
| 459 |
-
|
| 460 |
-
|
| 461 |
-
|
| 462 |
-
|
| 463 |
-
|
| 464 |
-
|
| 465 |
-
|
| 466 |
-
<?php echo do_shortcode("[best_selling_products per_page=\"$product_count\" columns=\"$columns\" category=\"$category\"]") ?>
|
| 467 |
-
|
| 468 |
-
<?php elseif ( ($settings['eael_product_grid_product_filter']) == 'sale-products' ) : ?>
|
| 469 |
-
|
| 470 |
-
<?php echo do_shortcode("[sale_products per_page=\"$product_count\" columns=\"$columns\" category=\"$category\"]") ?>
|
| 471 |
-
|
| 472 |
-
<?php else: ?>
|
| 473 |
-
|
| 474 |
-
<?php echo do_shortcode("[top_rated_products per_page=\"$product_count\" columns=\"$columns\" category=\"$category\"]") ?>
|
| 475 |
-
|
| 476 |
-
<?php endif; ?>
|
| 477 |
|
| 478 |
-
|
| 479 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 480 |
|
| 481 |
-
|
| 482 |
-
|
| 483 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 484 |
}
|
| 485 |
|
| 486 |
protected function content_template() {
|
| 487 |
-
|
| 488 |
-
?>
|
| 489 |
-
|
| 490 |
-
|
| 491 |
-
<?php
|
| 492 |
}
|
| 493 |
}
|
| 494 |
|
| 495 |
-
|
| 496 |
-
Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Product_Grid() );
|
| 1 |
<?php
|
| 2 |
namespace Elementor;
|
| 3 |
|
| 4 |
+
if (!defined('ABSPATH')) {
|
| 5 |
+
exit;
|
| 6 |
+
}
|
| 7 |
+
// If this file is called directly, abort.
|
| 8 |
|
| 9 |
class Widget_Eael_Product_Grid extends Widget_Base {
|
|
|
|
| 10 |
|
| 11 |
public function get_name() {
|
| 12 |
return 'eicon-woocommerce';
|
| 13 |
}
|
| 14 |
|
| 15 |
public function get_title() {
|
| 16 |
+
return esc_html__('EA Product Grid', 'essential-addons-elementor');
|
| 17 |
}
|
| 18 |
|
| 19 |
public function get_icon() {
|
| 20 |
return 'eicon-woocommerce';
|
| 21 |
}
|
| 22 |
|
| 23 |
+
public function get_categories() {
|
| 24 |
+
return ['essential-addons-elementor'];
|
| 25 |
}
|
| 26 |
|
|
|
|
| 27 |
protected function _register_controls() {
|
| 28 |
|
| 29 |
// Content Controls
|
| 30 |
+
$this->start_controls_section(
|
| 31 |
+
'eael_section_product_grid_settings',
|
| 32 |
+
[
|
| 33 |
+
'label' => esc_html__('Product Settings', 'essential-addons-elementor'),
|
| 34 |
+
]
|
| 35 |
+
);
|
| 36 |
|
| 37 |
$this->add_control(
|
| 38 |
'eael_product_grid_product_filter',
|
| 39 |
[
|
| 40 |
+
'label' => esc_html__('Filter By', 'essential-addons-elementor'),
|
| 41 |
'type' => Controls_Manager::SELECT,
|
| 42 |
'default' => 'recent-products',
|
| 43 |
'options' => [
|
| 44 |
+
'recent-products' => esc_html__('Recent Products', 'essential-addons-elementor'),
|
| 45 |
+
'featured-products' => esc_html__('Featured Products', 'essential-addons-elementor'),
|
| 46 |
+
'best-selling-products' => esc_html__('Best Selling Products', 'essential-addons-elementor'),
|
| 47 |
+
'sale-products' => esc_html__('Sale Products', 'essential-addons-elementor'),
|
| 48 |
+
'top-products' => esc_html__('Top Rated Products', 'essential-addons-elementor'),
|
| 49 |
],
|
| 50 |
]
|
| 51 |
);
|
| 53 |
$this->add_control(
|
| 54 |
'eael_product_grid_column',
|
| 55 |
[
|
| 56 |
+
'label' => esc_html__('Columns', 'essential-addons-elementor'),
|
| 57 |
'type' => Controls_Manager::SELECT,
|
| 58 |
'default' => '4',
|
| 59 |
'options' => [
|
| 60 |
+
'1' => esc_html__('1', 'essential-addons-elementor'),
|
| 61 |
+
'2' => esc_html__('2', 'essential-addons-elementor'),
|
| 62 |
+
'3' => esc_html__('3', 'essential-addons-elementor'),
|
| 63 |
+
'4' => esc_html__('4', 'essential-addons-elementor'),
|
| 64 |
+
'5' => esc_html__('5', 'essential-addons-elementor'),
|
| 65 |
+
'6' => esc_html__('6', 'essential-addons-elementor'),
|
| 66 |
],
|
| 67 |
]
|
| 68 |
);
|
| 69 |
|
| 70 |
$this->add_control(
|
| 71 |
+
'eael_product_grid_products_count',
|
| 72 |
+
[
|
| 73 |
+
'label' => __('Products Count', 'essential-addons-elementor'),
|
| 74 |
+
'type' => Controls_Manager::NUMBER,
|
| 75 |
+
'default' => 4,
|
| 76 |
+
'min' => 1,
|
| 77 |
+
'max' => 1000,
|
| 78 |
+
'step' => 1,
|
| 79 |
+
]
|
| 80 |
);
|
| 81 |
|
|
|
|
| 82 |
$this->add_control(
|
| 83 |
'eael_product_grid_categories',
|
| 84 |
[
|
| 85 |
+
'label' => esc_html__('Product Categories', 'essential-addons-elementor'),
|
| 86 |
'type' => Controls_Manager::SELECT2,
|
| 87 |
'label_block' => true,
|
| 88 |
'multiple' => true,
|
| 90 |
]
|
| 91 |
);
|
| 92 |
|
| 93 |
+
$this->add_control(
|
| 94 |
+
'eael_product_grid_style_preset',
|
| 95 |
+
[
|
| 96 |
+
'label' => esc_html__( 'Style Preset', 'essential-addons-elementor' ),
|
| 97 |
+
'type' => Controls_Manager::SELECT,
|
| 98 |
+
'default' => 'eael-product-simple',
|
| 99 |
+
'options' => [
|
| 100 |
+
'eael-product-default' => esc_html__( 'Default', 'essential-addons-elementor' ),
|
| 101 |
+
'eael-product-simple' => esc_html__( 'Simple Style', 'essential-addons-elementor' ),
|
| 102 |
+
'eael-product-reveal' => esc_html__( 'Reveal Style', 'essential-addons-elementor' ),
|
| 103 |
+
'eael-product-overlay' => esc_html__( 'Overlay Style', 'essential-addons-elementor' ),
|
| 104 |
+
],
|
| 105 |
+
]
|
| 106 |
+
);
|
| 107 |
|
| 108 |
$this->add_control(
|
| 109 |
'eael_product_grid_rating',
|
| 110 |
[
|
| 111 |
+
'label' => esc_html__('Show Product Rating?', 'essential-addons-elementor'),
|
| 112 |
'type' => Controls_Manager::SWITCHER,
|
| 113 |
'return_value' => 'yes',
|
| 114 |
'default' => 'yes',
|
| 116 |
);
|
| 117 |
|
| 118 |
$this->end_controls_section();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
|
|
|
|
|
|
|
| 120 |
$this->start_controls_section(
|
| 121 |
'eael_product_grid_styles',
|
| 122 |
[
|
| 123 |
+
'label' => esc_html__('Products Styles', 'essential-addons-elementor'),
|
| 124 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
| 125 |
]
|
| 126 |
);
|
| 127 |
|
| 128 |
$this->add_control(
|
| 129 |
'eael_product_grid_background_color',
|
| 130 |
[
|
| 131 |
+
'label' => esc_html__('Content Background Color', 'essential-addons-elementor'),
|
| 132 |
'type' => Controls_Manager::COLOR,
|
| 133 |
'default' => '#fff',
|
| 134 |
'selectors' => [
|
| 141 |
Group_Control_Border::get_type(),
|
| 142 |
[
|
| 143 |
'name' => 'eael_peoduct_grid_border',
|
| 144 |
+
'fields_options' => [
|
| 145 |
+
'border' => [
|
| 146 |
+
'default' => 'solid',
|
| 147 |
+
],
|
| 148 |
+
'width' => [
|
| 149 |
+
'default' => [
|
| 150 |
+
'top' => '1',
|
| 151 |
+
'right' => '1',
|
| 152 |
+
'bottom' => '1',
|
| 153 |
+
'left' => '1',
|
| 154 |
+
'isLinked' => false,
|
| 155 |
+
],
|
| 156 |
+
],
|
| 157 |
+
'color' => [
|
| 158 |
+
'default' => '#eee',
|
| 159 |
+
],
|
| 160 |
+
],
|
| 161 |
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product',
|
| 162 |
+
'condition' => [
|
| 163 |
+
'eael_product_grid_style_preset' => ['eael-product-default', 'eael-product-simple', 'eael-product-overlay']
|
| 164 |
+
]
|
| 165 |
]
|
| 166 |
);
|
| 167 |
+
|
| 168 |
$this->add_control(
|
| 169 |
'eael_peoduct_grid_border_radius',
|
| 170 |
[
|
| 171 |
+
'label' => esc_html__('Border Radius', 'essential-addons-elementor'),
|
| 172 |
'type' => Controls_Manager::DIMENSIONS,
|
| 173 |
'selectors' => [
|
| 174 |
'{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
|
| 175 |
],
|
| 176 |
]
|
| 177 |
);
|
|
|
|
|
|
|
|
|
|
| 178 |
|
| 179 |
+
$this->end_controls_section();
|
| 180 |
|
| 181 |
$this->start_controls_section(
|
| 182 |
'eael_section_product_grid_typography',
|
| 183 |
[
|
| 184 |
+
'label' => esc_html__('Color & Typography', 'essential-addons-elementor'),
|
| 185 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
| 186 |
]
|
| 187 |
);
|
| 188 |
|
| 189 |
$this->add_control(
|
| 190 |
'eael_product_grid_product_title_heading',
|
| 191 |
[
|
| 192 |
+
'label' => __('Product Title', 'essential-addons-elementor'),
|
| 193 |
'type' => Controls_Manager::HEADING,
|
| 194 |
]
|
| 195 |
);
|
| 197 |
$this->add_control(
|
| 198 |
'eael_product_grid_product_title_color',
|
| 199 |
[
|
| 200 |
+
'label' => esc_html__('Product Title Color', 'essential-addons-elementor'),
|
| 201 |
'type' => Controls_Manager::COLOR,
|
| 202 |
'default' => '#272727',
|
| 203 |
'selectors' => [
|
| 205 |
],
|
| 206 |
]
|
| 207 |
);
|
| 208 |
+
|
| 209 |
$this->add_group_control(
|
| 210 |
Group_Control_Typography::get_type(),
|
| 211 |
[
|
| 212 |
+
'name' => 'eael_product_grid_product_title_typography',
|
| 213 |
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .woocommerce-loop-product__title',
|
| 214 |
]
|
| 215 |
);
|
| 217 |
$this->add_control(
|
| 218 |
'eael_product_grid_product_price_heading',
|
| 219 |
[
|
| 220 |
+
'label' => __('Product Price', 'essential-addons-elementor'),
|
| 221 |
'type' => Controls_Manager::HEADING,
|
| 222 |
]
|
| 223 |
);
|
| 224 |
|
|
|
|
| 225 |
$this->add_control(
|
| 226 |
'eael_product_grid_product_price_color',
|
| 227 |
[
|
| 228 |
+
'label' => esc_html__('Product Price Color', 'essential-addons-elementor'),
|
| 229 |
'type' => Controls_Manager::COLOR,
|
| 230 |
'default' => '#272727',
|
| 231 |
'selectors' => [
|
| 233 |
],
|
| 234 |
]
|
| 235 |
);
|
| 236 |
+
|
| 237 |
$this->add_group_control(
|
| 238 |
Group_Control_Typography::get_type(),
|
| 239 |
[
|
| 240 |
+
'name' => 'eael_product_grid_product_price_typography',
|
| 241 |
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .price',
|
| 242 |
]
|
| 243 |
);
|
| 245 |
$this->add_control(
|
| 246 |
'eael_product_grid_product_rating_heading',
|
| 247 |
[
|
| 248 |
+
'label' => __('Star Rating', 'essential-addons-elementor'),
|
| 249 |
'type' => Controls_Manager::HEADING,
|
| 250 |
]
|
| 251 |
);
|
| 253 |
$this->add_control(
|
| 254 |
'eael_product_grid_product_rating_color',
|
| 255 |
[
|
| 256 |
+
'label' => esc_html__('Rating Color', 'essential-addons-elementor'),
|
| 257 |
'type' => Controls_Manager::COLOR,
|
| 258 |
'default' => '#f2b01e',
|
| 259 |
'selectors' => [
|
| 262 |
],
|
| 263 |
]
|
| 264 |
);
|
| 265 |
+
|
| 266 |
$this->add_group_control(
|
| 267 |
Group_Control_Typography::get_type(),
|
| 268 |
[
|
| 269 |
+
'name' => 'eael_product_grid_product_rating_typography',
|
| 270 |
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .star-rating',
|
| 271 |
]
|
| 272 |
);
|
| 274 |
$this->add_control(
|
| 275 |
'eael_product_grid_sale_badge_heading',
|
| 276 |
[
|
| 277 |
+
'label' => __('Sale Badge', 'essential-addons-elementor'),
|
| 278 |
'type' => Controls_Manager::HEADING,
|
| 279 |
]
|
| 280 |
);
|
| 282 |
$this->add_control(
|
| 283 |
'eael_product_grid_sale_badge_color',
|
| 284 |
[
|
| 285 |
+
'label' => esc_html__('Sale Badge Color', 'essential-addons-elementor'),
|
| 286 |
'type' => Controls_Manager::COLOR,
|
| 287 |
'default' => '#fff',
|
| 288 |
'selectors' => [
|
| 289 |
+
'{{WRAPPER}} .woocommerce ul.products li.product .onsale' => 'color: {{VALUE}};',
|
| 290 |
],
|
| 291 |
]
|
| 292 |
);
|
| 294 |
$this->add_control(
|
| 295 |
'eael_product_grid_sale_badge_background',
|
| 296 |
[
|
| 297 |
+
'label' => esc_html__('Sale Badge Background', 'essential-addons-elementor'),
|
| 298 |
'type' => Controls_Manager::COLOR,
|
| 299 |
'default' => '#ff2a13',
|
| 300 |
'selectors' => [
|
| 301 |
+
'{{WRAPPER}} .woocommerce ul.products li.product .onsale' => 'background-color: {{VALUE}};',
|
| 302 |
+
'{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .price ins' => 'color: {{VALUE}};',
|
| 303 |
],
|
| 304 |
]
|
| 305 |
);
|
| 306 |
+
|
| 307 |
$this->add_group_control(
|
| 308 |
Group_Control_Typography::get_type(),
|
| 309 |
[
|
| 310 |
+
'name' => 'eael_product_grid_sale_badge_typography',
|
| 311 |
+
'selector' => '{{WRAPPER}} .woocommerce ul.products li.product .onsale',
|
| 312 |
]
|
| 313 |
);
|
| 314 |
|
|
|
|
| 315 |
$this->end_controls_section();
|
| 316 |
|
|
|
|
| 317 |
$this->start_controls_section(
|
| 318 |
'eael_section_product_grid_add_to_cart_styles',
|
| 319 |
[
|
| 320 |
+
'label' => esc_html__('Add to Cart Button Styles', 'essential-addons-elementor'),
|
| 321 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
| 322 |
]
|
| 323 |
);
|
| 324 |
|
| 325 |
+
$this->start_controls_tabs('eael_product_grid_add_to_cart_style_tabs');
|
| 326 |
|
| 327 |
+
$this->start_controls_tab('normal', ['label' => esc_html__('Normal', 'essential-addons-elementor')]);
|
|
|
|
|
|
|
| 328 |
|
| 329 |
$this->add_control(
|
| 330 |
'eael_product_grid_add_to_cart_color',
|
| 331 |
[
|
| 332 |
+
'label' => esc_html__('Button Color', 'essential-addons-elementor'),
|
| 333 |
'type' => Controls_Manager::COLOR,
|
| 334 |
+
'default' => '#fff',
|
| 335 |
'selectors' => [
|
| 336 |
'{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button' => 'color: {{VALUE}};',
|
| 337 |
+
'{{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link' => 'color: {{VALUE}};',
|
| 338 |
+
'{{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart' => 'color: {{VALUE}};',
|
| 339 |
],
|
| 340 |
]
|
| 341 |
);
|
| 342 |
+
|
| 343 |
$this->add_control(
|
| 344 |
'eael_product_grid_add_to_cart_background',
|
| 345 |
[
|
| 346 |
+
'label' => esc_html__('Button Background Color', 'essential-addons-elementor'),
|
| 347 |
'type' => Controls_Manager::COLOR,
|
| 348 |
+
'default' => '#333',
|
| 349 |
'selectors' => [
|
| 350 |
'{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button' => 'background-color: {{VALUE}};',
|
| 351 |
+
'{{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link' => 'background-color: {{VALUE}};',
|
| 352 |
+
'{{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart' => 'background-color: {{VALUE}};',
|
| 353 |
],
|
| 354 |
]
|
| 355 |
);
|
| 356 |
+
|
| 357 |
$this->add_group_control(
|
| 358 |
Group_Control_Border::get_type(),
|
| 359 |
[
|
| 360 |
'name' => 'eael_product_grid_add_to_cart_border',
|
| 361 |
+
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button, {{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link, {{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart',
|
| 362 |
]
|
| 363 |
);
|
| 364 |
|
| 365 |
$this->add_group_control(
|
| 366 |
Group_Control_Typography::get_type(),
|
| 367 |
[
|
| 368 |
+
'name' => 'eael_product_grid_add_to_cart_typography',
|
| 369 |
'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button',
|
| 370 |
+
'condition' => [
|
| 371 |
+
'eael_product_grid_style_preset' => ['eael-product-default', 'eael-product-simple']
|
| 372 |
+
],
|
| 373 |
]
|
| 374 |
);
|
| 375 |
|
| 376 |
$this->end_controls_tab();
|
| 377 |
|
| 378 |
+
$this->start_controls_tab('eael_product_grid_add_to_cart_hover_styles', ['label' => esc_html__('Hover', 'essential-addons-elementor')]);
|
| 379 |
|
| 380 |
$this->add_control(
|
| 381 |
'eael_product_grid_add_to_cart_hover_color',
|
| 382 |
[
|
| 383 |
+
'label' => esc_html__('Button Color', 'essential-addons-elementor'),
|
| 384 |
'type' => Controls_Manager::COLOR,
|
| 385 |
+
'default' => '#fff',
|
| 386 |
'selectors' => [
|
| 387 |
'{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button:hover' => 'color: {{VALUE}};',
|
| 388 |
+
'{{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:hover' => 'color: {{VALUE}};',
|
| 389 |
+
'{{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:hover' => 'color: {{VALUE}};',
|
| 390 |
],
|
| 391 |
]
|
| 392 |
);
|
| 393 |
+
|
| 394 |
$this->add_control(
|
| 395 |
'eael_product_grid_add_to_cart_hover_background',
|
| 396 |
[
|
| 397 |
+
'label' => esc_html__('Button Background Color', 'essential-addons-elementor'),
|
| 398 |
'type' => Controls_Manager::COLOR,
|
| 399 |
+
'default' => '#333',
|
| 400 |
'selectors' => [
|
| 401 |
'{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button:hover' => 'background-color: {{VALUE}};',
|
| 402 |
+
'{{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:hover' => 'background-color: {{VALUE}};',
|
| 403 |
+
'{{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:hover' => 'background-color: {{VALUE}};',
|
| 404 |
],
|
| 405 |
]
|
| 406 |
);
|
| 407 |
+
|
| 408 |
$this->add_control(
|
| 409 |
'eael_product_grid_add_to_cart_hover_border_color',
|
| 410 |
[
|
| 411 |
+
'label' => esc_html__('Border Color', 'essential-addons-elementor'),
|
| 412 |
'type' => Controls_Manager::COLOR,
|
| 413 |
'default' => '',
|
| 414 |
'selectors' => [
|
| 415 |
'{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button:hover' => 'border-color: {{VALUE}};',
|
| 416 |
+
'{{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:hover' => 'border-color: {{VALUE}};',
|
| 417 |
+
'{{WRAPPER}} .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:hover' => 'border-color: {{VALUE}};',
|
| 418 |
],
|
| 419 |
]
|
| 420 |
);
|
| 421 |
|
|
|
|
| 422 |
$this->end_controls_tab();
|
|
|
|
|
|
|
| 423 |
|
| 424 |
+
$this->end_controls_tabs();
|
| 425 |
|
| 426 |
$this->end_controls_section();
|
|
|
|
|
|
|
|
|
|
| 427 |
|
| 428 |
+
}
|
| 429 |
|
| 430 |
+
protected function render() {
|
|
|
|
|
|
|
| 431 |
$settings = $this->get_settings();
|
| 432 |
+
$show_rating = $settings['eael_product_grid_rating'];
|
| 433 |
+
|
| 434 |
+
if ($settings['eael_product_grid_style_preset'] == 'eael-product-simple') {
|
| 435 |
+
$grid_layout = 'eael-product-simple';
|
| 436 |
+
} else if ($settings['eael_product_grid_style_preset'] == 'eael-product-reveal') {
|
| 437 |
+
$grid_layout = 'eael-product-reveal';
|
| 438 |
+
} else if ($settings['eael_product_grid_style_preset'] == 'eael-product-overlay') {
|
| 439 |
+
$grid_layout = 'eael-product-overlay';
|
|
|
|
| 440 |
} else {
|
| 441 |
+
$grid_layout = 'eael-product-default';
|
| 442 |
}
|
| 443 |
|
| 444 |
+
$args = [
|
| 445 |
+
'post_type' => 'product',
|
| 446 |
+
'posts_per_page' => $settings['eael_product_grid_products_count'] ?: 4,
|
| 447 |
+
'order' => 'DESC',
|
| 448 |
+
];
|
| 449 |
+
|
| 450 |
+
if (!empty($settings['eael_product_grid_categories'])) {
|
| 451 |
+
$args['tax_query'] = [
|
| 452 |
+
[
|
| 453 |
+
'taxonomy' => 'product_cat',
|
| 454 |
+
'field' => 'slug',
|
| 455 |
+
'terms' => $settings['eael_product_grid_categories'],
|
| 456 |
+
'operator' => 'IN',
|
| 457 |
+
],
|
| 458 |
+
];
|
| 459 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 460 |
|
| 461 |
+
if ($settings['eael_product_grid_product_filter'] == 'featured-products') {
|
| 462 |
+
$args['tax_query'] = [
|
| 463 |
+
'taxonomy' => 'product_visibility',
|
| 464 |
+
'field' => 'name',
|
| 465 |
+
'terms' => 'featured',
|
| 466 |
+
];
|
| 467 |
+
} else if ($settings['eael_product_grid_product_filter'] == 'best-selling-products') {
|
| 468 |
+
$args['meta_key'] = 'total_sales';
|
| 469 |
+
$args['orderby'] = 'meta_value_num';
|
| 470 |
+
$args['order'] = 'DESC';
|
| 471 |
+
} else if ($settings['eael_product_grid_product_filter'] == 'sale-products') {
|
| 472 |
+
$args['meta_query'] = [
|
| 473 |
+
'relation' => 'OR',
|
| 474 |
+
[
|
| 475 |
+
'key' => '_sale_price',
|
| 476 |
+
'value' => 0,
|
| 477 |
+
'compare' => '>',
|
| 478 |
+
'type' => 'numeric',
|
| 479 |
+
], [
|
| 480 |
+
'key' => '_min_variation_sale_price',
|
| 481 |
+
'value' => 0,
|
| 482 |
+
'compare' => '>',
|
| 483 |
+
'type' => 'numeric',
|
| 484 |
+
],
|
| 485 |
+
];
|
| 486 |
+
} else if ($settings['eael_product_grid_product_filter'] == 'top-products') {
|
| 487 |
+
$args['meta_key'] = '_wc_average_rating';
|
| 488 |
+
$args['orderby'] = 'meta_value_num';
|
| 489 |
+
$args['order'] = 'DESC';
|
| 490 |
+
}
|
| 491 |
|
| 492 |
+
global $woocommerce_loop;
|
| 493 |
+
$woocommerce_loop['loop'] = $woocommerce_loop['columns'] = $settings['eael_product_grid_column'];
|
| 494 |
+
|
| 495 |
+
echo '<div class="eael-product-grid ' . $grid_layout . '">
|
| 496 |
+
<div class="woocommerce">
|
| 497 |
+
<ul class="products columns-' . $settings['eael_product_grid_column'] . '">';
|
| 498 |
+
$query = new \WP_Query($args);
|
| 499 |
+
if ($query->have_posts()) {
|
| 500 |
+
while ($query->have_posts()): $query->the_post();
|
| 501 |
+
include ESSENTIAL_ADDONS_EL_PATH . 'includes/templates/product-loop.php';
|
| 502 |
+
endwhile;
|
| 503 |
+
} else {
|
| 504 |
+
echo __('No products found');
|
| 505 |
+
}
|
| 506 |
+
wp_reset_postdata();
|
| 507 |
+
unset($woocommerce_loop);
|
| 508 |
+
echo '</ul>
|
| 509 |
+
</div>
|
| 510 |
+
</div>';
|
| 511 |
}
|
| 512 |
|
| 513 |
protected function content_template() {
|
| 514 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
| 515 |
}
|
| 516 |
}
|
| 517 |
|
| 518 |
+
Plugin::instance()->widgets_manager->register_widget_type(new Widget_Eael_Product_Grid());
|
|
|
elements/team-members/team-members.php
CHANGED
|
File without changes
|
elements/tooltip/tooltip.php
CHANGED
|
File without changes
|
elements/twitter-feed/twitter-feed.php
CHANGED
|
File without changes
|
elements/weforms/weforms.php
CHANGED
|
File without changes
|
elements/wpforms/wpforms.php
CHANGED
|
File without changes
|
essential_adons_elementor.php
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
* Description: The ultimate elements library for Elementor page builder plugin for WordPress.
|
| 5 |
* Plugin URI: https://essential-addons.com/elementor/
|
| 6 |
* Author: WPDeveloper
|
| 7 |
-
* Version: 2.
|
| 8 |
* Author URI: https://wpdeveloper.net/
|
| 9 |
*
|
| 10 |
* Text Domain: essential-addons-elementor
|
|
@@ -16,8 +16,8 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
|
| 16 |
define( 'ESSENTIAL_ADDONS_EL_URL', plugins_url( '/', __FILE__ ) );
|
| 17 |
define( 'ESSENTIAL_ADDONS_EL_PATH', plugin_dir_path( __FILE__ ) );
|
| 18 |
define( 'ESSENTIAL_ADDONS_EL_ROOT', __FILE__ );
|
| 19 |
-
define( 'ESSENTIAL_ADDONS_VERSION', '2.
|
| 20 |
-
define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.
|
| 21 |
define( 'ESSENTIAL_ADDONS_BASENAME', plugin_basename( __FILE__ ) );
|
| 22 |
|
| 23 |
|
|
@@ -28,6 +28,7 @@ require_once ESSENTIAL_ADDONS_EL_PATH.'includes/version-rollback.php';
|
|
| 28 |
require_once ESSENTIAL_ADDONS_EL_PATH.'includes/maintennance.php';
|
| 29 |
require_once ESSENTIAL_ADDONS_EL_PATH.'includes/eael-rollback.php';
|
| 30 |
require_once ESSENTIAL_ADDONS_EL_PATH.'admin/settings.php';
|
|
|
|
| 31 |
|
| 32 |
/**
|
| 33 |
* This function will return true for all activated modules
|
|
@@ -36,8 +37,8 @@ require_once ESSENTIAL_ADDONS_EL_PATH.'admin/settings.php';
|
|
| 36 |
*/
|
| 37 |
function eael_activated_modules() {
|
| 38 |
|
| 39 |
-
$eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'ninja-form', 'gravity-form', 'caldera-form', '
|
| 40 |
-
|
| 41 |
$eael_default_settings = array_fill_keys( $eael_default_keys, true );
|
| 42 |
$eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings );
|
| 43 |
$eael_new_settings = array_diff_key( $eael_default_settings, $eael_get_settings );
|
|
@@ -51,6 +52,20 @@ function eael_activated_modules() {
|
|
| 51 |
|
| 52 |
}
|
| 53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
/**
|
| 55 |
* Acivate or Deactivate Modules
|
| 56 |
*
|
|
@@ -227,7 +242,16 @@ function essential_addons_el_enqueue(){
|
|
| 227 |
}
|
| 228 |
|
| 229 |
if( $is_component_active['progress-bar'] ) {
|
| 230 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 231 |
}
|
| 232 |
|
| 233 |
}
|
|
@@ -346,175 +370,4 @@ function eael_init() {
|
|
| 346 |
}
|
| 347 |
}
|
| 348 |
add_action( 'plugins_loaded', 'eael_init' );
|
| 349 |
-
|
| 350 |
-
/**
|
| 351 |
-
* Admin Notice
|
| 352 |
-
*
|
| 353 |
-
* @since v1.0.0
|
| 354 |
-
*/
|
| 355 |
-
function eael_admin_notice() {
|
| 356 |
-
if ( current_user_can( 'install_plugins' ) ) {
|
| 357 |
-
global $current_user ;
|
| 358 |
-
$user_id = $current_user->ID;
|
| 359 |
-
/* Check that the user hasn't already clicked to ignore the message */
|
| 360 |
-
if ( ! get_user_meta($user_id, 'eael_ignore_notice287') ) {
|
| 361 |
-
echo '<div class="eael-admin-notice updated" style="display: flex; align-items: center; padding-left: 0; border-left-color: #EF4B53"><p style="width: 32px;">';
|
| 362 |
-
echo '<img style="width: 100%; display: block;" src="' . plugins_url( '/', __FILE__ ).'admin/assets/images/icon-christmas-gift.svg'. '" ></p><p> ';
|
| 363 |
-
printf(__('<strong>Make XMas Much Merrier.</strong> Use the coupon code <strong>Christmas2018</strong> to redeem a <strong>40% </strong> discount on <strong>Essential Addons for Elementor Unlimited</strong>. <a href="https://wpdeveloper.net/in/ea-christmas-deal" target="_blank" style="text-decoration: none;"><span class="dashicons dashicons-smiley" style="margin-left: 10px;"></span> Apply Coupon</a>
|
| 364 |
-
<a href="%1$s" style="text-decoration: none; margin-left: 10px;"><span class="dashicons dashicons-dismiss"></span> I\'m good with free version</a>'), admin_url( 'admin.php?page=eael-settings&eael_nag_ignore=0' ));
|
| 365 |
-
echo "</p></div>";
|
| 366 |
-
}
|
| 367 |
-
}
|
| 368 |
-
}
|
| 369 |
-
add_action('admin_notices', 'eael_admin_notice');
|
| 370 |
-
|
| 371 |
-
|
| 372 |
-
/**
|
| 373 |
-
* Nag Ignore
|
| 374 |
-
*/
|
| 375 |
-
function eael_nag_ignore() {
|
| 376 |
-
global $current_user;
|
| 377 |
-
$user_id = $current_user->ID;
|
| 378 |
-
/* If user clicks to ignore the notice, add that to their user meta */
|
| 379 |
-
if ( isset($_GET['eael_nag_ignore']) && '0' == $_GET['eael_nag_ignore'] ) {
|
| 380 |
-
add_user_meta($user_id, 'eael_ignore_notice287', 'true', true);
|
| 381 |
-
}
|
| 382 |
-
}
|
| 383 |
-
add_action('admin_init', 'eael_nag_ignore');
|
| 384 |
-
|
| 385 |
-
/**
|
| 386 |
-
* @review_dismiss()
|
| 387 |
-
* @review_pending()
|
| 388 |
-
* @eael_review_notice_message()
|
| 389 |
-
* Make all the above functions working.
|
| 390 |
-
*/
|
| 391 |
-
function eael_review_notice(){
|
| 392 |
-
|
| 393 |
-
review_dismiss();
|
| 394 |
-
review_pending();
|
| 395 |
-
|
| 396 |
-
$activation_time = get_site_option( 'eael_active_time' );
|
| 397 |
-
$review_dismissal = get_site_option( 'eael_review_dismiss' );
|
| 398 |
-
$maybe_later = get_site_option( 'eael_maybe_later' );
|
| 399 |
-
|
| 400 |
-
if ( 'yes' == $review_dismissal ) {
|
| 401 |
-
return;
|
| 402 |
-
}
|
| 403 |
-
|
| 404 |
-
if ( ! $activation_time ) {
|
| 405 |
-
add_site_option( 'eael_active_time', time() );
|
| 406 |
-
}
|
| 407 |
-
|
| 408 |
-
$daysinseconds = 259200; // 3 Days in seconds.
|
| 409 |
-
if( 'yes' == $maybe_later ) {
|
| 410 |
-
$daysinseconds = 604800 ; // 7 Days in seconds.
|
| 411 |
-
}
|
| 412 |
-
|
| 413 |
-
if ( time() - $activation_time > $daysinseconds ) {
|
| 414 |
-
add_action( 'admin_notices' , 'eael_review_notice_message' );
|
| 415 |
-
}
|
| 416 |
-
|
| 417 |
-
}
|
| 418 |
-
add_action( 'admin_init', 'eael_review_notice' );
|
| 419 |
-
|
| 420 |
-
/**
|
| 421 |
-
* For the notice preview.
|
| 422 |
-
*/
|
| 423 |
-
function eael_review_notice_message(){
|
| 424 |
-
$scheme = (parse_url( $_SERVER['REQUEST_URI'], PHP_URL_QUERY )) ? '&' : '?';
|
| 425 |
-
$url = $_SERVER['REQUEST_URI'] . $scheme . 'eael_review_dismiss=yes';
|
| 426 |
-
$dismiss_url = wp_nonce_url( $url, 'eael-review-nonce' );
|
| 427 |
-
|
| 428 |
-
$_later_link = $_SERVER['REQUEST_URI'] . $scheme . 'eael_review_later=yes';
|
| 429 |
-
$later_url = wp_nonce_url( $_later_link, 'eael-review-nonce' );
|
| 430 |
-
?>
|
| 431 |
-
|
| 432 |
-
<div class="eael-review-notice">
|
| 433 |
-
<div class="eael-review-thumbnail">
|
| 434 |
-
<img src="<?php echo plugins_url( 'admin/assets/images/ea-logo.svg', __FILE__ ) ?>" alt="">
|
| 435 |
-
</div>
|
| 436 |
-
<div class="eael-review-text">
|
| 437 |
-
<p><?php _e( 'We hope you\'re enjoying Essential Addons for Elementor! Could you please do us a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'essential-addons-elementor' ) ?></p>
|
| 438 |
-
<ul class="eael-review-ul">
|
| 439 |
-
<li>
|
| 440 |
-
<a href="https://wpdeveloper.net/review-essential-addons-elementor" target="_blank">
|
| 441 |
-
<span class="dashicons dashicons-external"></span>
|
| 442 |
-
<?php _e( 'Ok, you deserve it!', 'essential-addons-elementor' ) ?>
|
| 443 |
-
</a>
|
| 444 |
-
</li>
|
| 445 |
-
<li>
|
| 446 |
-
<a href="<?php echo $dismiss_url ?>">
|
| 447 |
-
<span class="dashicons dashicons-smiley"></span>
|
| 448 |
-
<?php _e( 'I already did', 'essential-addons-elementor' ) ?>
|
| 449 |
-
</a>
|
| 450 |
-
</li>
|
| 451 |
-
<li>
|
| 452 |
-
<a href="<?php echo $later_url ?>">
|
| 453 |
-
<span class="dashicons dashicons-calendar-alt"></span>
|
| 454 |
-
<?php _e( 'Maybe Later', 'essential-addons-elementor' ) ?>
|
| 455 |
-
</a>
|
| 456 |
-
</li>
|
| 457 |
-
<li>
|
| 458 |
-
<a href="https://wpdeveloper.net/support/" target="_blank">
|
| 459 |
-
<span class="dashicons dashicons-sos"></span>
|
| 460 |
-
<?php _e( 'I need help!', 'essential-addons-elementor' ) ?>
|
| 461 |
-
</a>
|
| 462 |
-
</li>
|
| 463 |
-
<li>
|
| 464 |
-
<a href="<?php echo $dismiss_url ?>">
|
| 465 |
-
<span class="dashicons dashicons-dismiss"></span>
|
| 466 |
-
<?php _e( 'Never show again', 'essential-addons-elementor' ) ?>
|
| 467 |
-
</a>
|
| 468 |
-
</li>
|
| 469 |
-
</ul>
|
| 470 |
-
</div>
|
| 471 |
-
</div>
|
| 472 |
-
|
| 473 |
-
<?php
|
| 474 |
-
}
|
| 475 |
-
|
| 476 |
-
/**
|
| 477 |
-
* For Dismiss!
|
| 478 |
-
*/
|
| 479 |
-
function review_dismiss(){
|
| 480 |
-
|
| 481 |
-
if ( ! is_admin() ||
|
| 482 |
-
! current_user_can( 'manage_options' ) ||
|
| 483 |
-
! isset( $_GET['_wpnonce'] ) ||
|
| 484 |
-
! wp_verify_nonce( sanitize_key( wp_unslash( $_GET['_wpnonce'] ) ), 'eael-review-nonce' ) ||
|
| 485 |
-
! isset( $_GET['eael_review_dismiss'] ) ) {
|
| 486 |
-
|
| 487 |
-
return;
|
| 488 |
-
}
|
| 489 |
-
|
| 490 |
-
add_site_option( 'eael_review_dismiss', 'yes' );
|
| 491 |
-
|
| 492 |
-
}
|
| 493 |
-
|
| 494 |
-
/**
|
| 495 |
-
* For Maybe Later Update.
|
| 496 |
-
*/
|
| 497 |
-
function review_pending() {
|
| 498 |
-
|
| 499 |
-
if ( ! is_admin() ||
|
| 500 |
-
! current_user_can( 'manage_options' ) ||
|
| 501 |
-
! isset( $_GET['_wpnonce'] ) ||
|
| 502 |
-
! wp_verify_nonce( sanitize_key( wp_unslash( $_GET['_wpnonce'] ) ), 'eael-review-nonce' ) ||
|
| 503 |
-
! isset( $_GET['eael_review_later'] ) ) {
|
| 504 |
-
|
| 505 |
-
return;
|
| 506 |
-
}
|
| 507 |
-
// Reset Time to current time.
|
| 508 |
-
update_site_option( 'eael_active_time', time() );
|
| 509 |
-
update_site_option( 'eael_maybe_later', 'yes' );
|
| 510 |
-
|
| 511 |
-
}
|
| 512 |
-
|
| 513 |
-
/**
|
| 514 |
-
* Remove Reviews Metadata on plugin Deactivation.
|
| 515 |
-
*/
|
| 516 |
-
function eael_deactivate() {
|
| 517 |
-
delete_option('eael_active_time');
|
| 518 |
-
delete_option('eael_maybe_later');
|
| 519 |
-
}
|
| 520 |
-
register_deactivation_hook(__FILE__, 'eael_deactivate');
|
| 4 |
* Description: The ultimate elements library for Elementor page builder plugin for WordPress.
|
| 5 |
* Plugin URI: https://essential-addons.com/elementor/
|
| 6 |
* Author: WPDeveloper
|
| 7 |
+
* Version: 2.9.0
|
| 8 |
* Author URI: https://wpdeveloper.net/
|
| 9 |
*
|
| 10 |
* Text Domain: essential-addons-elementor
|
| 16 |
define( 'ESSENTIAL_ADDONS_EL_URL', plugins_url( '/', __FILE__ ) );
|
| 17 |
define( 'ESSENTIAL_ADDONS_EL_PATH', plugin_dir_path( __FILE__ ) );
|
| 18 |
define( 'ESSENTIAL_ADDONS_EL_ROOT', __FILE__ );
|
| 19 |
+
define( 'ESSENTIAL_ADDONS_VERSION', '2.9.0' );
|
| 20 |
+
define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.9.0' );
|
| 21 |
define( 'ESSENTIAL_ADDONS_BASENAME', plugin_basename( __FILE__ ) );
|
| 22 |
|
| 23 |
|
| 28 |
require_once ESSENTIAL_ADDONS_EL_PATH.'includes/maintennance.php';
|
| 29 |
require_once ESSENTIAL_ADDONS_EL_PATH.'includes/eael-rollback.php';
|
| 30 |
require_once ESSENTIAL_ADDONS_EL_PATH.'admin/settings.php';
|
| 31 |
+
require_once ESSENTIAL_ADDONS_EL_PATH .'includes/extensions.php';
|
| 32 |
|
| 33 |
/**
|
| 34 |
* This function will return true for all activated modules
|
| 37 |
*/
|
| 38 |
function eael_activated_modules() {
|
| 39 |
|
| 40 |
+
$eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'img-comparison', 'instagram-gallery', 'interactive-promo', 'lightbox', 'post-block', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonial-slider', 'testimonials', 'testimonials', 'weforms', 'static-product', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'flip-carousel', 'interactive-cards', 'ninja-form', 'gravity-form', 'caldera-form', 'wisdom_registered_setting', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles' ];
|
| 41 |
+
|
| 42 |
$eael_default_settings = array_fill_keys( $eael_default_keys, true );
|
| 43 |
$eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings );
|
| 44 |
$eael_new_settings = array_diff_key( $eael_default_settings, $eael_get_settings );
|
| 52 |
|
| 53 |
}
|
| 54 |
|
| 55 |
+
/**
|
| 56 |
+
* Load acivate or deactivate Modules
|
| 57 |
+
*
|
| 58 |
+
* @since v1.0.0
|
| 59 |
+
*/
|
| 60 |
+
function add_eael_extensions() {
|
| 61 |
+
$is_component_active = eael_activated_modules();
|
| 62 |
+
|
| 63 |
+
if( $is_component_active['section-particles'] ) {
|
| 64 |
+
require_once ESSENTIAL_ADDONS_EL_PATH .'extensions/eael-particle-section/eael-particle-section.php';
|
| 65 |
+
}
|
| 66 |
+
}
|
| 67 |
+
add_eael_extensions();
|
| 68 |
+
|
| 69 |
/**
|
| 70 |
* Acivate or Deactivate Modules
|
| 71 |
*
|
| 242 |
}
|
| 243 |
|
| 244 |
if( $is_component_active['progress-bar'] ) {
|
| 245 |
+
wp_enqueue_script('essential_addons_elementor-progress-bar',ESSENTIAL_ADDONS_EL_URL.'assets/js/loading-bar.min.js', array('jquery'),'1.0', true);
|
| 246 |
+
}
|
| 247 |
+
if( $is_component_active['section-particles'] ) {
|
| 248 |
+
wp_enqueue_script(
|
| 249 |
+
'particles-js', ESSENTIAL_ADDONS_EL_URL.'assets/js/particles.js',
|
| 250 |
+
['jquery'], '1.0', true
|
| 251 |
+
);
|
| 252 |
+
|
| 253 |
+
$preset_themes = require ESSENTIAL_ADDONS_EL_PATH.'extensions/eael-particle-section/particle-themes.php';
|
| 254 |
+
wp_localize_script( 'particles-js', 'ParticleThemesData', $preset_themes );
|
| 255 |
}
|
| 256 |
|
| 257 |
}
|
| 370 |
}
|
| 371 |
}
|
| 372 |
add_action( 'plugins_loaded', 'eael_init' );
|
| 373 |
+
require_once dirname( __FILE__ ) . '/includes/class-wpdev-notices.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extensions/eael-particle-section/eael-particle-section.php
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
if( !defined( 'ABSPATH' ) ) exit;
|
| 4 |
+
|
| 5 |
+
use Elementor\Elementor_Base;
|
| 6 |
+
use Elementor\Controls_Manager;
|
| 7 |
+
use Elementor\Element_Base;
|
| 8 |
+
use Elementor\Widget_Base;
|
| 9 |
+
|
| 10 |
+
class EAEL_Particle_Section extends Module_Base {
|
| 11 |
+
|
| 12 |
+
public function __construct() {
|
| 13 |
+
parent::__construct();
|
| 14 |
+
|
| 15 |
+
add_action( 'elementor/frontend/section/before_render',array( $this,'before_render') );
|
| 16 |
+
|
| 17 |
+
add_action('elementor/element/section/section_layout/after_section_end',array($this,'register_controls'),10 );
|
| 18 |
+
|
| 19 |
+
add_action( 'elementor/frontend/section/after_render',array( $this,'after_render') );
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
public function get_name() {
|
| 23 |
+
return 'eael-particles';
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
public function register_controls( $element ) {
|
| 27 |
+
|
| 28 |
+
$element->start_controls_section(
|
| 29 |
+
'eael_particles_section',
|
| 30 |
+
[
|
| 31 |
+
'label' => 'EA Particles',
|
| 32 |
+
'tab' => Controls_Manager::TAB_LAYOUT
|
| 33 |
+
]
|
| 34 |
+
);
|
| 35 |
+
|
| 36 |
+
$element->add_control(
|
| 37 |
+
'eael_particle_switch',
|
| 38 |
+
[
|
| 39 |
+
'label' => __( 'Enable Particles', 'essential-addons-elementor' ),
|
| 40 |
+
'type' => Controls_Manager::SWITCHER,
|
| 41 |
+
]
|
| 42 |
+
);
|
| 43 |
+
|
| 44 |
+
$element->add_control(
|
| 45 |
+
'eael_particle_area_zindex',
|
| 46 |
+
[
|
| 47 |
+
'label' => __( 'Z-index', 'essential-addons-elementor' ),
|
| 48 |
+
'type' => Controls_Manager::NUMBER,
|
| 49 |
+
'default' => 0,
|
| 50 |
+
'condition' => [
|
| 51 |
+
'eael_particle_switch' => 'yes'
|
| 52 |
+
]
|
| 53 |
+
]
|
| 54 |
+
);
|
| 55 |
+
|
| 56 |
+
$element->add_control(
|
| 57 |
+
'eael_particle_theme_from',
|
| 58 |
+
[
|
| 59 |
+
'label' => __( 'Theme Source', 'essential-addons-elementor' ),
|
| 60 |
+
'type' => Controls_Manager::CHOOSE,
|
| 61 |
+
'options' => [
|
| 62 |
+
'presets' => [
|
| 63 |
+
'title' => __( 'Defaults', 'essential-addons-elementor' ),
|
| 64 |
+
'icon' => 'fa fa-list',
|
| 65 |
+
],
|
| 66 |
+
'custom' => [
|
| 67 |
+
'title' => __( 'Custom', 'essential-addons-elementor' ),
|
| 68 |
+
'icon' => 'fa fa-edit',
|
| 69 |
+
],
|
| 70 |
+
],
|
| 71 |
+
'condition' => [
|
| 72 |
+
'eael_particle_switch' => 'yes'
|
| 73 |
+
],
|
| 74 |
+
'default' => 'presets'
|
| 75 |
+
]
|
| 76 |
+
);
|
| 77 |
+
|
| 78 |
+
$element->add_control(
|
| 79 |
+
'eael_particle_preset_themes',
|
| 80 |
+
[
|
| 81 |
+
'label' => esc_html__( 'Preset Themes', 'essential-addons-elementor' ),
|
| 82 |
+
'type' => Controls_Manager::SELECT,
|
| 83 |
+
'label_block' => true,
|
| 84 |
+
'options' => [
|
| 85 |
+
11 => __( 'Default', 'essential-addons-elementor' ),
|
| 86 |
+
'nasa' => __( 'Nasa', 'essential-addons-elementor' ),
|
| 87 |
+
'bubble' => __( 'Bubble', 'essential-addons-elementor' ),
|
| 88 |
+
'snow' => __( 'Snow', 'essential-addons-elementor' ),
|
| 89 |
+
'nyan_cat' => __( 'Nyan Cat', 'essential-addons-elementor' )
|
| 90 |
+
],
|
| 91 |
+
'default' => 11,
|
| 92 |
+
'condition' => [
|
| 93 |
+
'eael_particle_theme_from' => 'presets',
|
| 94 |
+
'eael_particle_switch' => 'yes'
|
| 95 |
+
]
|
| 96 |
+
]
|
| 97 |
+
);
|
| 98 |
+
|
| 99 |
+
$element->add_control(
|
| 100 |
+
'eael_particles_custom_style',
|
| 101 |
+
[
|
| 102 |
+
'label' => __( 'Custom Style', 'essential-addons-elementor' ),
|
| 103 |
+
'type' => Controls_Manager::TEXTAREA,
|
| 104 |
+
'description' => __( 'You can generate custom particles JSON code from <a href="http://vincentgarreau.com/particles.js/#default" target="_blank">Here!</a>. Simply just past the JSON code above. For more queries <a href="https://essential-addons.com/elementor/docs/" target="_blank">Click Here!</a>', 'essential-addons-elementor' ),
|
| 105 |
+
'condition' => [
|
| 106 |
+
'eael_particle_theme_from' => 'custom',
|
| 107 |
+
'eael_particle_switch' => 'yes'
|
| 108 |
+
]
|
| 109 |
+
]
|
| 110 |
+
);
|
| 111 |
+
|
| 112 |
+
$element->add_control(
|
| 113 |
+
'eael_particle_section_notice',
|
| 114 |
+
[
|
| 115 |
+
'raw' => __( 'You need to configure a <strong style="color:green">Background Type</strong> to see this in full effect. You can do this by switching to the <strong style="color:green">Style</strong> Tab.', 'essential-addons-elementor' ),
|
| 116 |
+
'type' => Controls_Manager::RAW_HTML,
|
| 117 |
+
'condition' => [
|
| 118 |
+
'eael_particle_theme_from' => 'custom',
|
| 119 |
+
'eael_particle_switch' => 'yes'
|
| 120 |
+
]
|
| 121 |
+
]
|
| 122 |
+
);
|
| 123 |
+
|
| 124 |
+
$element->end_controls_section();
|
| 125 |
+
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
public function before_render( $element ) {
|
| 129 |
+
|
| 130 |
+
if( $element->get_settings('eael_particle_switch') == 'yes' ){
|
| 131 |
+
|
| 132 |
+
$element->add_render_attribute(
|
| 133 |
+
'_wrapper','id',
|
| 134 |
+
'eael-section-particles-' . $element->get_id()
|
| 135 |
+
);
|
| 136 |
+
|
| 137 |
+
}
|
| 138 |
+
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
public function after_render( $element ) {
|
| 142 |
+
|
| 143 |
+
$data = $element->get_data();
|
| 144 |
+
$settings = $element->get_settings_for_display();
|
| 145 |
+
$type = $data['elType'];
|
| 146 |
+
$zindex = ! empty( $settings['eael_particle_area_zindex'] ) ? $settings['eael_particle_area_zindex'] : 0;
|
| 147 |
+
|
| 148 |
+
if( ('section' == $type) && ($element->get_settings('eael_particle_switch') == 'yes') ){
|
| 149 |
+
|
| 150 |
+
$preset_themes = include('particle-themes.php');
|
| 151 |
+
if( isset($settings['eael_particle_theme_from']) && $settings['eael_particle_theme_from'] == 'presets') {
|
| 152 |
+
$theme = $preset_themes[ $settings['eael_particle_preset_themes'] ];
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
if( isset($settings['eael_particle_theme_from']) && $settings['eael_particle_theme_from'] == 'custom') {
|
| 156 |
+
$theme = $settings['eael_particles_custom_style'];
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
?>
|
| 160 |
+
<style>
|
| 161 |
+
.elementor-element-<?php echo $element->get_id(); ?>.eael-particles-section > canvas{
|
| 162 |
+
z-index: <?php echo $zindex; ?>;
|
| 163 |
+
position: absolute;
|
| 164 |
+
top:0;
|
| 165 |
+
}
|
| 166 |
+
.elementor-section .elementor-container {
|
| 167 |
+
z-index: 99;
|
| 168 |
+
}
|
| 169 |
+
</style>
|
| 170 |
+
|
| 171 |
+
<script>
|
| 172 |
+
(function($) {
|
| 173 |
+
"use strict";
|
| 174 |
+
|
| 175 |
+
$(document).ready(function() {
|
| 176 |
+
$('.elementor-element-<?php echo $element->get_id(); ?>').addClass('eael-particles-section');
|
| 177 |
+
<?php if( $theme !== '' ) : ?>
|
| 178 |
+
particlesJS("eael-section-particles-<?php echo $element->get_id(); ?>", <?php echo $theme; ?> );
|
| 179 |
+
<?php endif; ?>
|
| 180 |
+
});
|
| 181 |
+
|
| 182 |
+
}(jQuery));
|
| 183 |
+
</script>
|
| 184 |
+
<?php
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
|
| 188 |
+
|
| 189 |
+
|
| 190 |
+
}
|
| 191 |
+
|
| 192 |
+
EAEL_Particle_Section::instance();
|
extensions/eael-particle-section/particle-themes.php
ADDED
|
@@ -0,0 +1,554 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
return [
|
| 4 |
+
'11' => '{
|
| 5 |
+
"particles": {
|
| 6 |
+
"number": {
|
| 7 |
+
"value": 160,
|
| 8 |
+
"density": {
|
| 9 |
+
"enable": true,
|
| 10 |
+
"value_area": 800
|
| 11 |
+
}
|
| 12 |
+
},
|
| 13 |
+
"color": {
|
| 14 |
+
"value": "#ffffff"
|
| 15 |
+
},
|
| 16 |
+
"shape": {
|
| 17 |
+
"type": "circle",
|
| 18 |
+
"stroke": {
|
| 19 |
+
"width": 0,
|
| 20 |
+
"color": "#000000"
|
| 21 |
+
},
|
| 22 |
+
"polygon": {
|
| 23 |
+
"nb_sides": 5
|
| 24 |
+
},
|
| 25 |
+
"image": {
|
| 26 |
+
"src": "img/github.svg",
|
| 27 |
+
"width": 100,
|
| 28 |
+
"height": 100
|
| 29 |
+
}
|
| 30 |
+
},
|
| 31 |
+
"opacity": {
|
| 32 |
+
"value": 0.5,
|
| 33 |
+
"random": false,
|
| 34 |
+
"anim": {
|
| 35 |
+
"enable": false,
|
| 36 |
+
"speed": 1,
|
| 37 |
+
"opacity_min": 0.1,
|
| 38 |
+
"sync": false
|
| 39 |
+
}
|
| 40 |
+
},
|
| 41 |
+
"size": {
|
| 42 |
+
"value": 3,
|
| 43 |
+
"random": true,
|
| 44 |
+
"anim": {
|
| 45 |
+
"enable": false,
|
| 46 |
+
"speed": 40,
|
| 47 |
+
"size_min": 0.1,
|
| 48 |
+
"sync": false
|
| 49 |
+
}
|
| 50 |
+
},
|
| 51 |
+
"line_linked": {
|
| 52 |
+
"enable": true,
|
| 53 |
+
"distance": 150,
|
| 54 |
+
"color": "#ffffff",
|
| 55 |
+
"opacity": 0.4,
|
| 56 |
+
"width": 1
|
| 57 |
+
},
|
| 58 |
+
"move": {
|
| 59 |
+
"enable": true,
|
| 60 |
+
"speed": 6,
|
| 61 |
+
"direction": "none",
|
| 62 |
+
"random": false,
|
| 63 |
+
"straight": false,
|
| 64 |
+
"out_mode": "out",
|
| 65 |
+
"bounce": false,
|
| 66 |
+
"attract": {
|
| 67 |
+
"enable": false,
|
| 68 |
+
"rotateX": 600,
|
| 69 |
+
"rotateY": 1200
|
| 70 |
+
}
|
| 71 |
+
}
|
| 72 |
+
},
|
| 73 |
+
"interactivity": {
|
| 74 |
+
"detect_on": "canvas",
|
| 75 |
+
"events": {
|
| 76 |
+
"onhover": {
|
| 77 |
+
"enable": true,
|
| 78 |
+
"mode": "repulse"
|
| 79 |
+
},
|
| 80 |
+
"onclick": {
|
| 81 |
+
"enable": true,
|
| 82 |
+
"mode": "push"
|
| 83 |
+
},
|
| 84 |
+
"resize": true
|
| 85 |
+
},
|
| 86 |
+
"modes": {
|
| 87 |
+
"grab": {
|
| 88 |
+
"distance": 400,
|
| 89 |
+
"line_linked": {
|
| 90 |
+
"opacity": 1
|
| 91 |
+
}
|
| 92 |
+
},
|
| 93 |
+
"bubble": {
|
| 94 |
+
"distance": 400,
|
| 95 |
+
"size": 40,
|
| 96 |
+
"duration": 2,
|
| 97 |
+
"opacity": 8,
|
| 98 |
+
"speed": 3
|
| 99 |
+
},
|
| 100 |
+
"repulse": {
|
| 101 |
+
"distance": 200,
|
| 102 |
+
"duration": 0.4
|
| 103 |
+
},
|
| 104 |
+
"push": {
|
| 105 |
+
"particles_nb": 4
|
| 106 |
+
},
|
| 107 |
+
"remove": {
|
| 108 |
+
"particles_nb": 2
|
| 109 |
+
}
|
| 110 |
+
}
|
| 111 |
+
},
|
| 112 |
+
"retina_detect": true
|
| 113 |
+
}',
|
| 114 |
+
'nasa' => '{
|
| 115 |
+
"particles": {
|
| 116 |
+
"number": {
|
| 117 |
+
"value": 250,
|
| 118 |
+
"density": {
|
| 119 |
+
"enable": true,
|
| 120 |
+
"value_area": 800
|
| 121 |
+
}
|
| 122 |
+
},
|
| 123 |
+
"color": {
|
| 124 |
+
"value": "#ffffff"
|
| 125 |
+
},
|
| 126 |
+
"shape": {
|
| 127 |
+
"type": "circle",
|
| 128 |
+
"stroke": {
|
| 129 |
+
"width": 0,
|
| 130 |
+
"color": "#000000"
|
| 131 |
+
},
|
| 132 |
+
"polygon": {
|
| 133 |
+
"nb_sides": 5
|
| 134 |
+
},
|
| 135 |
+
"image": {
|
| 136 |
+
"src": "img/github.svg",
|
| 137 |
+
"width": 100,
|
| 138 |
+
"height": 100
|
| 139 |
+
}
|
| 140 |
+
},
|
| 141 |
+
"opacity": {
|
| 142 |
+
"value": 1,
|
| 143 |
+
"random": true,
|
| 144 |
+
"anim": {
|
| 145 |
+
"enable": true,
|
| 146 |
+
"speed": 1,
|
| 147 |
+
"opacity_min": 0,
|
| 148 |
+
"sync": false
|
| 149 |
+
}
|
| 150 |
+
},
|
| 151 |
+
"size": {
|
| 152 |
+
"value": 3,
|
| 153 |
+
"random": true,
|
| 154 |
+
"anim": {
|
| 155 |
+
"enable": false,
|
| 156 |
+
"speed": 4,
|
| 157 |
+
"size_min": 0.3,
|
| 158 |
+
"sync": false
|
| 159 |
+
}
|
| 160 |
+
},
|
| 161 |
+
"line_linked": {
|
| 162 |
+
"enable": false,
|
| 163 |
+
"distance": 150,
|
| 164 |
+
"color": "#ffffff",
|
| 165 |
+
"opacity": 0.4,
|
| 166 |
+
"width": 1
|
| 167 |
+
},
|
| 168 |
+
"move": {
|
| 169 |
+
"enable": true,
|
| 170 |
+
"speed": 1,
|
| 171 |
+
"direction": "none",
|
| 172 |
+
"random": true,
|
| 173 |
+
"straight": false,
|
| 174 |
+
"out_mode": "out",
|
| 175 |
+
"bounce": false,
|
| 176 |
+
"attract": {
|
| 177 |
+
"enable": false,
|
| 178 |
+
"rotateX": 600,
|
| 179 |
+
"rotateY": 600
|
| 180 |
+
}
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"interactivity": {
|
| 184 |
+
"detect_on": "canvas",
|
| 185 |
+
"events": {
|
| 186 |
+
"onhover": {
|
| 187 |
+
"enable": true,
|
| 188 |
+
"mode": "bubble"
|
| 189 |
+
},
|
| 190 |
+
"onclick": {
|
| 191 |
+
"enable": true,
|
| 192 |
+
"mode": "repulse"
|
| 193 |
+
},
|
| 194 |
+
"resize": true
|
| 195 |
+
},
|
| 196 |
+
"modes": {
|
| 197 |
+
"grab": {
|
| 198 |
+
"distance": 400,
|
| 199 |
+
"line_linked": {
|
| 200 |
+
"opacity": 1
|
| 201 |
+
}
|
| 202 |
+
},
|
| 203 |
+
"bubble": {
|
| 204 |
+
"distance": 250,
|
| 205 |
+
"size": 0,
|
| 206 |
+
"duration": 2,
|
| 207 |
+
"opacity": 0,
|
| 208 |
+
"speed": 3
|
| 209 |
+
},
|
| 210 |
+
"repulse": {
|
| 211 |
+
"distance": 400,
|
| 212 |
+
"duration": 0.4
|
| 213 |
+
},
|
| 214 |
+
"push": {
|
| 215 |
+
"particles_nb": 4
|
| 216 |
+
},
|
| 217 |
+
"remove": {
|
| 218 |
+
"particles_nb": 2
|
| 219 |
+
}
|
| 220 |
+
}
|
| 221 |
+
},
|
| 222 |
+
"retina_detect": true
|
| 223 |
+
}',
|
| 224 |
+
'bubble' => '{
|
| 225 |
+
"particles": {
|
| 226 |
+
"number": {
|
| 227 |
+
"value": 15,
|
| 228 |
+
"density": {
|
| 229 |
+
"enable": true,
|
| 230 |
+
"value_area": 800
|
| 231 |
+
}
|
| 232 |
+
},
|
| 233 |
+
"color": {
|
| 234 |
+
"value": "#1b1e34"
|
| 235 |
+
},
|
| 236 |
+
"shape": {
|
| 237 |
+
"type": "polygon",
|
| 238 |
+
"stroke": {
|
| 239 |
+
"width": 0,
|
| 240 |
+
"color": "#000"
|
| 241 |
+
},
|
| 242 |
+
"polygon": {
|
| 243 |
+
"nb_sides": 6
|
| 244 |
+
},
|
| 245 |
+
"image": {
|
| 246 |
+
"src": "img/github.svg",
|
| 247 |
+
"width": 100,
|
| 248 |
+
"height": 100
|
| 249 |
+
}
|
| 250 |
+
},
|
| 251 |
+
"opacity": {
|
| 252 |
+
"value": 0.3,
|
| 253 |
+
"random": true,
|
| 254 |
+
"anim": {
|
| 255 |
+
"enable": false,
|
| 256 |
+
"speed": 1,
|
| 257 |
+
"opacity_min": 0.1,
|
| 258 |
+
"sync": false
|
| 259 |
+
}
|
| 260 |
+
},
|
| 261 |
+
"size": {
|
| 262 |
+
"value": 50,
|
| 263 |
+
"random": false,
|
| 264 |
+
"anim": {
|
| 265 |
+
"enable": true,
|
| 266 |
+
"speed": 10,
|
| 267 |
+
"size_min": 40,
|
| 268 |
+
"sync": false
|
| 269 |
+
}
|
| 270 |
+
},
|
| 271 |
+
"line_linked": {
|
| 272 |
+
"enable": false,
|
| 273 |
+
"distance": 200,
|
| 274 |
+
"color": "#ffffff",
|
| 275 |
+
"opacity": 1,
|
| 276 |
+
"width": 2
|
| 277 |
+
},
|
| 278 |
+
"move": {
|
| 279 |
+
"enable": true,
|
| 280 |
+
"speed": 8,
|
| 281 |
+
"direction": "none",
|
| 282 |
+
"random": false,
|
| 283 |
+
"straight": false,
|
| 284 |
+
"out_mode": "out",
|
| 285 |
+
"bounce": false,
|
| 286 |
+
"attract": {
|
| 287 |
+
"enable": false,
|
| 288 |
+
"rotateX": 600,
|
| 289 |
+
"rotateY": 1200
|
| 290 |
+
}
|
| 291 |
+
}
|
| 292 |
+
},
|
| 293 |
+
"interactivity": {
|
| 294 |
+
"detect_on": "canvas",
|
| 295 |
+
"events": {
|
| 296 |
+
"onhover": {
|
| 297 |
+
"enable": false,
|
| 298 |
+
"mode": "grab"
|
| 299 |
+
},
|
| 300 |
+
"onclick": {
|
| 301 |
+
"enable": false,
|
| 302 |
+
"mode": "push"
|
| 303 |
+
},
|
| 304 |
+
"resize": true
|
| 305 |
+
},
|
| 306 |
+
"modes": {
|
| 307 |
+
"grab": {
|
| 308 |
+
"distance": 400,
|
| 309 |
+
"line_linked": {
|
| 310 |
+
"opacity": 1
|
| 311 |
+
}
|
| 312 |
+
},
|
| 313 |
+
"bubble": {
|
| 314 |
+
"distance": 400,
|
| 315 |
+
"size": 40,
|
| 316 |
+
"duration": 2,
|
| 317 |
+
"opacity": 8,
|
| 318 |
+
"speed": 3
|
| 319 |
+
},
|
| 320 |
+
"repulse": {
|
| 321 |
+
"distance": 200,
|
| 322 |
+
"duration": 0.4
|
| 323 |
+
},
|
| 324 |
+
"push": {
|
| 325 |
+
"particles_nb": 4
|
| 326 |
+
},
|
| 327 |
+
"remove": {
|
| 328 |
+
"particles_nb": 2
|
| 329 |
+
}
|
| 330 |
+
}
|
| 331 |
+
},
|
| 332 |
+
"retina_detect": true
|
| 333 |
+
}',
|
| 334 |
+
'snow' => '{
|
| 335 |
+
"particles": {
|
| 336 |
+
"number": {
|
| 337 |
+
"value": 450,
|
| 338 |
+
"density": {
|
| 339 |
+
"enable": true,
|
| 340 |
+
"value_area": 800
|
| 341 |
+
}
|
| 342 |
+
},
|
| 343 |
+
"color": {
|
| 344 |
+
"value": "#fff"
|
| 345 |
+
},
|
| 346 |
+
"shape": {
|
| 347 |
+
"type": "circle",
|
| 348 |
+
"stroke": {
|
| 349 |
+
"width": 0,
|
| 350 |
+
"color": "#000000"
|
| 351 |
+
},
|
| 352 |
+
"polygon": {
|
| 353 |
+
"nb_sides": 5
|
| 354 |
+
},
|
| 355 |
+
"image": {
|
| 356 |
+
"src": "img/github.svg",
|
| 357 |
+
"width": 100,
|
| 358 |
+
"height": 100
|
| 359 |
+
}
|
| 360 |
+
},
|
| 361 |
+
"opacity": {
|
| 362 |
+
"value": 0.5,
|
| 363 |
+
"random": true,
|
| 364 |
+
"anim": {
|
| 365 |
+
"enable": false,
|
| 366 |
+
"speed": 1,
|
| 367 |
+
"opacity_min": 0.1,
|
| 368 |
+
"sync": false
|
| 369 |
+
}
|
| 370 |
+
},
|
| 371 |
+
"size": {
|
| 372 |
+
"value": 5,
|
| 373 |
+
"random": true,
|
| 374 |
+
"anim": {
|
| 375 |
+
"enable": false,
|
| 376 |
+
"speed": 40,
|
| 377 |
+
"size_min": 0.1,
|
| 378 |
+
"sync": false
|
| 379 |
+
}
|
| 380 |
+
},
|
| 381 |
+
"line_linked": {
|
| 382 |
+
"enable": false,
|
| 383 |
+
"distance": 500,
|
| 384 |
+
"color": "#ffffff",
|
| 385 |
+
"opacity": 0.4,
|
| 386 |
+
"width": 2
|
| 387 |
+
},
|
| 388 |
+
"move": {
|
| 389 |
+
"enable": true,
|
| 390 |
+
"speed": 6,
|
| 391 |
+
"direction": "bottom",
|
| 392 |
+
"random": false,
|
| 393 |
+
"straight": false,
|
| 394 |
+
"out_mode": "out",
|
| 395 |
+
"bounce": false,
|
| 396 |
+
"attract": {
|
| 397 |
+
"enable": false,
|
| 398 |
+
"rotateX": 600,
|
| 399 |
+
"rotateY": 1200
|
| 400 |
+
}
|
| 401 |
+
}
|
| 402 |
+
},
|
| 403 |
+
"interactivity": {
|
| 404 |
+
"detect_on": "canvas",
|
| 405 |
+
"events": {
|
| 406 |
+
"onhover": {
|
| 407 |
+
"enable": true,
|
| 408 |
+
"mode": "bubble"
|
| 409 |
+
},
|
| 410 |
+
"onclick": {
|
| 411 |
+
"enable": true,
|
| 412 |
+
"mode": "repulse"
|
| 413 |
+
},
|
| 414 |
+
"resize": true
|
| 415 |
+
},
|
| 416 |
+
"modes": {
|
| 417 |
+
"grab": {
|
| 418 |
+
"distance": 400,
|
| 419 |
+
"line_linked": {
|
| 420 |
+
"opacity": 0.5
|
| 421 |
+
}
|
| 422 |
+
},
|
| 423 |
+
"bubble": {
|
| 424 |
+
"distance": 400,
|
| 425 |
+
"size": 4,
|
| 426 |
+
"duration": 0.3,
|
| 427 |
+
"opacity": 1,
|
| 428 |
+
"speed": 3
|
| 429 |
+
},
|
| 430 |
+
"repulse": {
|
| 431 |
+
"distance": 200,
|
| 432 |
+
"duration": 0.4
|
| 433 |
+
},
|
| 434 |
+
"push": {
|
| 435 |
+
"particles_nb": 4
|
| 436 |
+
},
|
| 437 |
+
"remove": {
|
| 438 |
+
"particles_nb": 2
|
| 439 |
+
}
|
| 440 |
+
}
|
| 441 |
+
},
|
| 442 |
+
"retina_detect": true
|
| 443 |
+
}',
|
| 444 |
+
'nyan_cat' => '{
|
| 445 |
+
"particles": {
|
| 446 |
+
"number": {
|
| 447 |
+
"value": 150,
|
| 448 |
+
"density": {
|
| 449 |
+
"enable": false,
|
| 450 |
+
"value_area": 800
|
| 451 |
+
}
|
| 452 |
+
},
|
| 453 |
+
"color": {
|
| 454 |
+
"value": "#ffffff"
|
| 455 |
+
},
|
| 456 |
+
"shape": {
|
| 457 |
+
"type": "star",
|
| 458 |
+
"stroke": {
|
| 459 |
+
"width": 0,
|
| 460 |
+
"color": "#000000"
|
| 461 |
+
},
|
| 462 |
+
"polygon": {
|
| 463 |
+
"nb_sides": 5
|
| 464 |
+
},
|
| 465 |
+
"image": {
|
| 466 |
+
"src": "http://wiki.lexisnexis.com/academic/images/f/fb/Itunes_podcast_icon_300.jpg",
|
| 467 |
+
"width": 100,
|
| 468 |
+
"height": 100
|
| 469 |
+
}
|
| 470 |
+
},
|
| 471 |
+
"opacity": {
|
| 472 |
+
"value": 0.5,
|
| 473 |
+
"random": false,
|
| 474 |
+
"anim": {
|
| 475 |
+
"enable": false,
|
| 476 |
+
"speed": 1,
|
| 477 |
+
"opacity_min": 0.1,
|
| 478 |
+
"sync": false
|
| 479 |
+
}
|
| 480 |
+
},
|
| 481 |
+
"size": {
|
| 482 |
+
"value": 4,
|
| 483 |
+
"random": true,
|
| 484 |
+
"anim": {
|
| 485 |
+
"enable": false,
|
| 486 |
+
"speed": 40,
|
| 487 |
+
"size_min": 0.1,
|
| 488 |
+
"sync": false
|
| 489 |
+
}
|
| 490 |
+
},
|
| 491 |
+
"line_linked": {
|
| 492 |
+
"enable": false,
|
| 493 |
+
"distance": 150,
|
| 494 |
+
"color": "#ffffff",
|
| 495 |
+
"opacity": 0.4,
|
| 496 |
+
"width": 1
|
| 497 |
+
},
|
| 498 |
+
"move": {
|
| 499 |
+
"enable": true,
|
| 500 |
+
"speed": 14,
|
| 501 |
+
"direction": "left",
|
| 502 |
+
"random": false,
|
| 503 |
+
"straight": true,
|
| 504 |
+
"out_mode": "out",
|
| 505 |
+
"bounce": false,
|
| 506 |
+
"attract": {
|
| 507 |
+
"enable": false,
|
| 508 |
+
"rotateX": 600,
|
| 509 |
+
"rotateY": 1200
|
| 510 |
+
}
|
| 511 |
+
}
|
| 512 |
+
},
|
| 513 |
+
"interactivity": {
|
| 514 |
+
"detect_on": "canvas",
|
| 515 |
+
"events": {
|
| 516 |
+
"onhover": {
|
| 517 |
+
"enable": false,
|
| 518 |
+
"mode": "grab"
|
| 519 |
+
},
|
| 520 |
+
"onclick": {
|
| 521 |
+
"enable": true,
|
| 522 |
+
"mode": "repulse"
|
| 523 |
+
},
|
| 524 |
+
"resize": true
|
| 525 |
+
},
|
| 526 |
+
"modes": {
|
| 527 |
+
"grab": {
|
| 528 |
+
"distance": 200,
|
| 529 |
+
"line_linked": {
|
| 530 |
+
"opacity": 1
|
| 531 |
+
}
|
| 532 |
+
},
|
| 533 |
+
"bubble": {
|
| 534 |
+
"distance": 400,
|
| 535 |
+
"size": 40,
|
| 536 |
+
"duration": 2,
|
| 537 |
+
"opacity": 8,
|
| 538 |
+
"speed": 3
|
| 539 |
+
},
|
| 540 |
+
"repulse": {
|
| 541 |
+
"distance": 200,
|
| 542 |
+
"duration": 0.4
|
| 543 |
+
},
|
| 544 |
+
"push": {
|
| 545 |
+
"particles_nb": 4
|
| 546 |
+
},
|
| 547 |
+
"remove": {
|
| 548 |
+
"particles_nb": 2
|
| 549 |
+
}
|
| 550 |
+
}
|
| 551 |
+
},
|
| 552 |
+
"retina_detect": true
|
| 553 |
+
}'
|
| 554 |
+
];
|
includes/class-plugin-usage-tracker.php
CHANGED
|
@@ -85,7 +85,7 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
|
|
| 85 |
// add_action( 'admin_init', array( $this, 'do_tracking' ) );
|
| 86 |
|
| 87 |
// Display the admin notice on activation
|
| 88 |
-
add_action( '
|
| 89 |
add_action( 'admin_notices', array( $this, 'marketing_notice' ) );
|
| 90 |
|
| 91 |
// Deactivation
|
|
@@ -622,9 +622,10 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
|
|
| 622 |
$notice_text = __( 'Want to help make <strong>Essential Addons for Elementor</strong> even more awesome? You can get a <strong>25% discount coupon</strong> for Pro upgrade if you allow. <a class="insights-data-we-collect" href="#">What we collect.</a>', 'plugin-usage-tracker' );
|
| 623 |
}
|
| 624 |
// And we allow you to filter the text anyway
|
|
|
|
| 625 |
$notice_text = apply_filters( 'wisdom_notice_text_' . esc_attr( $this->plugin_name ), $notice_text ); ?>
|
| 626 |
-
|
| 627 |
-
<div class="notice notice-info updated put-dismiss-notice">
|
| 628 |
<p><?php echo __( $notice_text ); ?></p>
|
| 629 |
<div class="eael-insights-data" style="display: none;">
|
| 630 |
<p><?php echo __( 'We collect non-sensitive diagnostic data and plugin usage information. Your site URL, WordPress & PHP version, plugins & themes and email address to send you the discount coupon. This data lets us make sure this plugin always stays compatible with the most popular plugins and themes. No spam, I promise.' ); ?></p>
|
|
@@ -638,8 +639,9 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
|
|
| 638 |
jQuery('.eael-insights-data').slideToggle('fast');
|
| 639 |
});
|
| 640 |
</script>";?>
|
| 641 |
-
</div>
|
| 642 |
<?php
|
|
|
|
| 643 |
}
|
| 644 |
|
| 645 |
}
|
| 85 |
// add_action( 'admin_init', array( $this, 'do_tracking' ) );
|
| 86 |
|
| 87 |
// Display the admin notice on activation
|
| 88 |
+
// add_action( 'wpdeveloper_optin_notice', array( $this, 'optin_notice' ) );
|
| 89 |
add_action( 'admin_notices', array( $this, 'marketing_notice' ) );
|
| 90 |
|
| 91 |
// Deactivation
|
| 622 |
$notice_text = __( 'Want to help make <strong>Essential Addons for Elementor</strong> even more awesome? You can get a <strong>25% discount coupon</strong> for Pro upgrade if you allow. <a class="insights-data-we-collect" href="#">What we collect.</a>', 'plugin-usage-tracker' );
|
| 623 |
}
|
| 624 |
// And we allow you to filter the text anyway
|
| 625 |
+
// ob_start();
|
| 626 |
$notice_text = apply_filters( 'wisdom_notice_text_' . esc_attr( $this->plugin_name ), $notice_text ); ?>
|
| 627 |
+
|
| 628 |
+
<!-- <div class="notice notice-info updated put-dismiss-notice"> -->
|
| 629 |
<p><?php echo __( $notice_text ); ?></p>
|
| 630 |
<div class="eael-insights-data" style="display: none;">
|
| 631 |
<p><?php echo __( 'We collect non-sensitive diagnostic data and plugin usage information. Your site URL, WordPress & PHP version, plugins & themes and email address to send you the discount coupon. This data lets us make sure this plugin always stays compatible with the most popular plugins and themes. No spam, I promise.' ); ?></p>
|
| 639 |
jQuery('.eael-insights-data').slideToggle('fast');
|
| 640 |
});
|
| 641 |
</script>";?>
|
| 642 |
+
<!-- </div> -->
|
| 643 |
<?php
|
| 644 |
+
// echo ob_get_clean();
|
| 645 |
}
|
| 646 |
|
| 647 |
}
|
includes/class-wpdev-core-install.php
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
if ( ! class_exists( 'WPDeveloper_Core_Installer' ) ) :
|
| 3 |
+
/**
|
| 4 |
+
* WPDeveloper Core Install
|
| 5 |
+
*/
|
| 6 |
+
class WPDeveloper_Core_Installer {
|
| 7 |
+
/**
|
| 8 |
+
* Instantiate the class
|
| 9 |
+
*
|
| 10 |
+
* @param string $affiliate
|
| 11 |
+
*/
|
| 12 |
+
function __construct() {
|
| 13 |
+
add_action( 'init', array( $this, 'init_hooks' ) );
|
| 14 |
+
}
|
| 15 |
+
/**
|
| 16 |
+
* Initialize the hooks
|
| 17 |
+
*
|
| 18 |
+
* @return void
|
| 19 |
+
*/
|
| 20 |
+
public function init_hooks() {
|
| 21 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
| 22 |
+
return;
|
| 23 |
+
}
|
| 24 |
+
add_action( 'wp_ajax_wpdeveloper_upsale_core_install', array( $this, 'core_install' ) );
|
| 25 |
+
}
|
| 26 |
+
/**
|
| 27 |
+
* Show the plugin installation notice
|
| 28 |
+
*
|
| 29 |
+
* @return void
|
| 30 |
+
*/
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
/**
|
| 35 |
+
* Fail if plugin installtion/activation fails
|
| 36 |
+
*
|
| 37 |
+
* @param Object $thing
|
| 38 |
+
*
|
| 39 |
+
* @return void
|
| 40 |
+
*/
|
| 41 |
+
public function fail_on_error( $thing ) {
|
| 42 |
+
if ( is_wp_error( $thing ) ) {
|
| 43 |
+
wp_send_json_error( $thing->get_error_message() );
|
| 44 |
+
}
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
/**
|
| 48 |
+
* Install WPSP
|
| 49 |
+
*
|
| 50 |
+
* @return void
|
| 51 |
+
*/
|
| 52 |
+
public function core_install() {
|
| 53 |
+
check_ajax_referer( 'wpdeveloper_upsale_core_install' );
|
| 54 |
+
|
| 55 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
| 56 |
+
wp_send_json_error( __( 'You don\'t have permission to install the plugins' ) );
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
$plugin_slug = ( isset( $_POST['slug'] ) ) ? $_POST['slug'] : '';
|
| 60 |
+
$plugin_file = ( isset( $_POST['file'] ) ) ? $_POST['file'] : '';
|
| 61 |
+
|
| 62 |
+
if( empty( $plugin_file ) || empty( $plugin_slug ) ) {
|
| 63 |
+
wp_send_json_error( __( 'You don\'t have set any slug and file name to install the plugins' ) );
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
$plugin_status = $this->install_plugin( $plugin_slug, $plugin_file );
|
| 67 |
+
$this->fail_on_error( $plugin_status );
|
| 68 |
+
|
| 69 |
+
wp_send_json_success();
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
/**
|
| 73 |
+
* Install and activate a plugin
|
| 74 |
+
*
|
| 75 |
+
* @param string $slug
|
| 76 |
+
* @param string $file
|
| 77 |
+
*
|
| 78 |
+
* @return WP_Error|null
|
| 79 |
+
*/
|
| 80 |
+
public function install_plugin( $slug, $file ) {
|
| 81 |
+
include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
|
| 82 |
+
include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
| 83 |
+
|
| 84 |
+
$plugin_basename = $slug . '/' . $file;
|
| 85 |
+
|
| 86 |
+
// if exists and not activated
|
| 87 |
+
if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin_basename ) ) {
|
| 88 |
+
return activate_plugin( $plugin_basename );
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
// seems like the plugin doesn't exists. Download and activate it
|
| 92 |
+
$upgrader = new Plugin_Upgrader( new WP_Ajax_Upgrader_Skin() );
|
| 93 |
+
|
| 94 |
+
$api = plugins_api( 'plugin_information', array( 'slug' => $slug, 'fields' => array( 'sections' => false ) ) );
|
| 95 |
+
$result = $upgrader->install( $api->download_link );
|
| 96 |
+
|
| 97 |
+
if ( is_wp_error( $result ) ) {
|
| 98 |
+
return $result;
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
return activate_plugin( $plugin_basename );
|
| 102 |
+
}
|
| 103 |
+
}
|
| 104 |
+
/**
|
| 105 |
+
* Initiate The Core Installer
|
| 106 |
+
*/
|
| 107 |
+
new WPDeveloper_Core_Installer();
|
| 108 |
+
endif;
|
| 109 |
+
|
includes/class-wpdev-notices.php
ADDED
|
@@ -0,0 +1,782 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class WPDeveloper_Notice {
|
| 3 |
+
/**
|
| 4 |
+
* Admin Notice Key
|
| 5 |
+
*
|
| 6 |
+
* @var array
|
| 7 |
+
*/
|
| 8 |
+
const ADMIN_UPDATE_NOTICE_KEY = 'wpdeveloper_notices_seen';
|
| 9 |
+
public $redirect_url = '/wp-admin';
|
| 10 |
+
/**
|
| 11 |
+
* All Data
|
| 12 |
+
*
|
| 13 |
+
* @var array
|
| 14 |
+
*/
|
| 15 |
+
private $data = array();
|
| 16 |
+
private $properties = array(
|
| 17 |
+
'links', 'message', 'thumbnail',
|
| 18 |
+
);
|
| 19 |
+
private $methods = array(
|
| 20 |
+
'message', 'thumbnail', 'classes'
|
| 21 |
+
);
|
| 22 |
+
/**
|
| 23 |
+
* cne_day == current_notice_end_day
|
| 24 |
+
*
|
| 25 |
+
* @var integer
|
| 26 |
+
*/
|
| 27 |
+
public $cne_time = '2 day';
|
| 28 |
+
public $maybe_later_time = '7 day';
|
| 29 |
+
/**
|
| 30 |
+
* Is the notice is dismissible?
|
| 31 |
+
*
|
| 32 |
+
* @var boolean
|
| 33 |
+
*/
|
| 34 |
+
private $is_dismissible = true;
|
| 35 |
+
/**
|
| 36 |
+
* Plugin Name
|
| 37 |
+
*
|
| 38 |
+
* @var string
|
| 39 |
+
*/
|
| 40 |
+
private $plugin_name;
|
| 41 |
+
/**
|
| 42 |
+
* First Install Version Of The Plugin
|
| 43 |
+
*
|
| 44 |
+
* @var string
|
| 45 |
+
*/
|
| 46 |
+
private $version;
|
| 47 |
+
/**
|
| 48 |
+
* URL Data Args
|
| 49 |
+
* @var array
|
| 50 |
+
*/
|
| 51 |
+
private $data_args;
|
| 52 |
+
/**
|
| 53 |
+
* Saved Data in DB
|
| 54 |
+
* @var array
|
| 55 |
+
*/
|
| 56 |
+
private $options_data;
|
| 57 |
+
/**
|
| 58 |
+
* Current Timestamp
|
| 59 |
+
* @var integer
|
| 60 |
+
*/
|
| 61 |
+
public $timestamp;
|
| 62 |
+
/**
|
| 63 |
+
* Default Options Set
|
| 64 |
+
*
|
| 65 |
+
* @var array
|
| 66 |
+
*/
|
| 67 |
+
public $options_args = array(
|
| 68 |
+
// 'first_install' => true,
|
| 69 |
+
// 'next_notice_time' => '',
|
| 70 |
+
// 'notice_seen' => [
|
| 71 |
+
// 'opt_in' => false,
|
| 72 |
+
// 'first_install' => false,
|
| 73 |
+
// 'update' => false,
|
| 74 |
+
// 'review' => false,
|
| 75 |
+
// 'upsale' => false
|
| 76 |
+
// ],
|
| 77 |
+
// 'notice_will_show' => [
|
| 78 |
+
// 'opt_in' => true,
|
| 79 |
+
// 'first_install' => false,
|
| 80 |
+
// 'update' => true,
|
| 81 |
+
// 'review' => true,
|
| 82 |
+
// 'upsale' => true,
|
| 83 |
+
// ]
|
| 84 |
+
);
|
| 85 |
+
/**
|
| 86 |
+
* Notice ID for users.
|
| 87 |
+
* @var string
|
| 88 |
+
*/
|
| 89 |
+
private $notice_id;
|
| 90 |
+
/**
|
| 91 |
+
* Upsale Notice Arguments
|
| 92 |
+
* @var array
|
| 93 |
+
*/
|
| 94 |
+
public $upsale_args;
|
| 95 |
+
/**
|
| 96 |
+
* Revoke this function when the object is created.
|
| 97 |
+
*
|
| 98 |
+
* @param string $plugin_name
|
| 99 |
+
* @param string $version
|
| 100 |
+
*/
|
| 101 |
+
public function __construct( $plugin_name = '', $version = '' ) {
|
| 102 |
+
$this->plugin_name = $plugin_name;
|
| 103 |
+
$this->version = $version;
|
| 104 |
+
$this->timestamp = current_time( 'timestamp' );
|
| 105 |
+
$this->notice_id = 'wpdeveloper_notice_' . str_replace( '.', '_', $this->version );
|
| 106 |
+
|
| 107 |
+
require dirname( __FILE__ ) . '/class-wpdev-core-install.php';
|
| 108 |
+
|
| 109 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
| 110 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
| 111 |
+
}
|
| 112 |
+
if( ! function_exists( 'wp_get_current_user' ) ) {
|
| 113 |
+
require_once ABSPATH . 'wp-includes/pluggable.php';
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
public function init(){
|
| 118 |
+
add_action( 'activate_' . $this->plugin_name, array( $this, 'first_install_track' ) );
|
| 119 |
+
add_action( 'upgrader_process_complete', array( $this, 'upgrade_completed' ), 10, 2);
|
| 120 |
+
add_action( 'deactivate_' . $this->plugin_name, array( $this, 'first_install_end' ) );
|
| 121 |
+
add_action( 'wp_ajax_wpdeveloper_upsale_notice_dissmiss', array( $this, 'upsale_notice_dissmiss' ) );
|
| 122 |
+
add_action( 'wpdeveloper_before_notice', array( $this, 'before' ) );
|
| 123 |
+
add_action( 'wpdeveloper_after_notice', array( $this, 'after' ) );
|
| 124 |
+
add_action( 'wpdeveloper_before_upsale_notice', array( $this, 'before_upsale' ) );
|
| 125 |
+
add_action( 'wpdeveloper_after_upsale_notice', array( $this, 'after' ) );
|
| 126 |
+
add_action( 'wpdeveloper_notices', array( $this, 'content' ) );
|
| 127 |
+
if( current_user_can( 'install_plugins' ) ) {
|
| 128 |
+
$this->clicked();
|
| 129 |
+
$current_notice = $this->next_notice();
|
| 130 |
+
$deserve_notice = $this->deserve_notice( $current_notice );
|
| 131 |
+
$options_data = $this->get_options_data();
|
| 132 |
+
|
| 133 |
+
$notice_time = isset( $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] )
|
| 134 |
+
? $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] : $this->timestamp;
|
| 135 |
+
$current_notice_end = $this->makeTime( $notice_time, $this->cne_time );
|
| 136 |
+
|
| 137 |
+
if( $deserve_notice ) {
|
| 138 |
+
/**
|
| 139 |
+
* TODO: automatic maybe later setup with time.
|
| 140 |
+
*/
|
| 141 |
+
|
| 142 |
+
if( $this->timestamp >= $current_notice_end ) {
|
| 143 |
+
$this->maybe_later( $current_notice );
|
| 144 |
+
$notice_time = false;
|
| 145 |
+
}
|
| 146 |
+
|
| 147 |
+
if( isset( $options_data[ $this->plugin_name ]['current_notice_start'] ) ) {
|
| 148 |
+
$current_notice_start = $options_data[ $this->plugin_name ]['current_notice_start'];
|
| 149 |
+
} else {
|
| 150 |
+
$current_notice_start = $this->timestamp;
|
| 151 |
+
}
|
| 152 |
+
|
| 153 |
+
if( $notice_time != false ) {
|
| 154 |
+
if( $notice_time <= $this->timestamp ) {
|
| 155 |
+
if( $current_notice === 'upsale' ) {
|
| 156 |
+
$upsale_args = $this->get_upsale_args();
|
| 157 |
+
$plugins = get_plugins();
|
| 158 |
+
$pkey = $upsale_args['slug'] . '/' . $upsale_args['file'];
|
| 159 |
+
|
| 160 |
+
if( isset( $plugins[ $pkey ] ) ) {
|
| 161 |
+
return;
|
| 162 |
+
}
|
| 163 |
+
add_action( 'admin_notices', array( $this, 'upsale_notice' ) );
|
| 164 |
+
} else {
|
| 165 |
+
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
|
| 166 |
+
}
|
| 167 |
+
}
|
| 168 |
+
}
|
| 169 |
+
}
|
| 170 |
+
|
| 171 |
+
}
|
| 172 |
+
|
| 173 |
+
}
|
| 174 |
+
|
| 175 |
+
public function makeTime( $current, $time ) {
|
| 176 |
+
return strtotime( date('Y-m-d H:i:s', $current) . " +$time" );
|
| 177 |
+
}
|
| 178 |
+
|
| 179 |
+
private function maybe_later( $notice ){
|
| 180 |
+
$options_data = $this->get_options_data();
|
| 181 |
+
$options_data[ $this->plugin_name ]['notice_will_show'][ $notice ] = $this->makeTime( $this->timestamp, $this->maybe_later_time );
|
| 182 |
+
$this->update_options_data( $options_data[ $this->plugin_name ] );
|
| 183 |
+
}
|
| 184 |
+
/**
|
| 185 |
+
* When links are clicked, this function will invoked.
|
| 186 |
+
* @return void
|
| 187 |
+
*/
|
| 188 |
+
public function clicked(){
|
| 189 |
+
if( ! isset( $_GET['notice_action'] ) || ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_GET['_wpnonce'] ) ), 'wpdeveloper-nonce' ) ) {
|
| 190 |
+
return;
|
| 191 |
+
}
|
| 192 |
+
if( isset( $_GET['notice_action'] ) && $_GET['notice_action'] === $this->plugin_name ) {
|
| 193 |
+
$options_data = $this->get_options_data();
|
| 194 |
+
$clicked_from = $this->next_notice();
|
| 195 |
+
extract($_GET);
|
| 196 |
+
|
| 197 |
+
$later_time = '';
|
| 198 |
+
|
| 199 |
+
switch( $clicked_from ) {
|
| 200 |
+
|
| 201 |
+
case 'opt_in' :
|
| 202 |
+
$later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
|
| 203 |
+
break;
|
| 204 |
+
|
| 205 |
+
case 'first_install' :
|
| 206 |
+
$later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
|
| 207 |
+
break;
|
| 208 |
+
|
| 209 |
+
case 'update' :
|
| 210 |
+
$later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
|
| 211 |
+
break;
|
| 212 |
+
|
| 213 |
+
case 'review' :
|
| 214 |
+
$later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
|
| 215 |
+
break;
|
| 216 |
+
|
| 217 |
+
case 'upsale' :
|
| 218 |
+
$later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
|
| 219 |
+
break;
|
| 220 |
+
|
| 221 |
+
}
|
| 222 |
+
|
| 223 |
+
if( isset( $later ) && $later == true ) {
|
| 224 |
+
$options_data[ $this->plugin_name ]['notice_will_show'][ $clicked_from ] = $later_time;
|
| 225 |
+
}
|
| 226 |
+
if( isset( $dismiss ) && $dismiss == true ) {
|
| 227 |
+
$user_notices = $this->get_user_notices();
|
| 228 |
+
if( ! $user_notices ) {
|
| 229 |
+
$user_notices = [];
|
| 230 |
+
}
|
| 231 |
+
$user_notices[ $this->notice_id ][ $this->plugin_name ][] = $clicked_from;
|
| 232 |
+
|
| 233 |
+
update_user_meta( get_current_user_id(), self::ADMIN_UPDATE_NOTICE_KEY, $user_notices);
|
| 234 |
+
}
|
| 235 |
+
$this->update_options_data( $options_data[ $this->plugin_name ] );
|
| 236 |
+
wp_safe_redirect( $this->redirect_url );
|
| 237 |
+
}
|
| 238 |
+
}
|
| 239 |
+
/**
|
| 240 |
+
* Before Notice
|
| 241 |
+
* @return void
|
| 242 |
+
*/
|
| 243 |
+
public function before(){
|
| 244 |
+
$current_notice = $this->next_notice();
|
| 245 |
+
$classes = 'notice notice-info put-dismiss-notice';
|
| 246 |
+
if( isset( $this->data['classes'] ) ) {
|
| 247 |
+
if( isset( $this->data['classes'][ $current_notice ] ) ) {
|
| 248 |
+
$classes = $this->data['classes'][ $current_notice ];
|
| 249 |
+
}
|
| 250 |
+
}
|
| 251 |
+
|
| 252 |
+
if( $this->has_thumbnail( $current_notice ) ) {
|
| 253 |
+
$classes .= 'notice-has-thumbnail';
|
| 254 |
+
}
|
| 255 |
+
|
| 256 |
+
echo '<div class="'. $classes .' wpdeveloper-'. $current_notice .'-notice">';
|
| 257 |
+
}
|
| 258 |
+
/**
|
| 259 |
+
* After Notice
|
| 260 |
+
* @return void
|
| 261 |
+
*/
|
| 262 |
+
public function after(){
|
| 263 |
+
echo '</div>';
|
| 264 |
+
}
|
| 265 |
+
/**
|
| 266 |
+
* Content generation & Hooks Funciton.
|
| 267 |
+
* @return void
|
| 268 |
+
*/
|
| 269 |
+
public function content(){
|
| 270 |
+
$options_data = $this->get_options_data();
|
| 271 |
+
$notice = $this->next_notice();
|
| 272 |
+
|
| 273 |
+
switch( $notice ) {
|
| 274 |
+
case 'opt_in' :
|
| 275 |
+
do_action('wpdeveloper_optin_notice');
|
| 276 |
+
$this->get_thumbnail( 'opt_in' );
|
| 277 |
+
$this->get_message( 'opt_in' );
|
| 278 |
+
break;
|
| 279 |
+
case 'first_install' :
|
| 280 |
+
if( $options_data[ $this->plugin_name ]['first_install'] !== 'deactivated' ) {
|
| 281 |
+
do_action('wpdeveloper_first_install_notice');
|
| 282 |
+
$this->get_thumbnail( 'first_install' );
|
| 283 |
+
$this->get_message( 'first_install' );
|
| 284 |
+
}
|
| 285 |
+
break;
|
| 286 |
+
case 'update' :
|
| 287 |
+
do_action('wpdeveloper_update_notice');
|
| 288 |
+
$this->get_thumbnail( 'update' );
|
| 289 |
+
$this->get_message( 'update' );
|
| 290 |
+
break;
|
| 291 |
+
case 'review' :
|
| 292 |
+
do_action('wpdeveloper_review_notice');
|
| 293 |
+
$this->get_thumbnail( 'review' );
|
| 294 |
+
$this->get_message( 'review' );
|
| 295 |
+
break;
|
| 296 |
+
}
|
| 297 |
+
}
|
| 298 |
+
/**
|
| 299 |
+
* Before Upsale Notice
|
| 300 |
+
* @return void
|
| 301 |
+
*/
|
| 302 |
+
public function before_upsale(){
|
| 303 |
+
$classes = '';
|
| 304 |
+
if( $this->has_thumbnail('upsale') ) {
|
| 305 |
+
$classes = 'notice-has-thumbnail';
|
| 306 |
+
}
|
| 307 |
+
echo '<div class="error notice is-dismissible wpdeveloper-upsale-notice '. $classes .'">';
|
| 308 |
+
}
|
| 309 |
+
public function upsale_notice(){
|
| 310 |
+
do_action( 'wpdeveloper_before_upsale_notice' );
|
| 311 |
+
do_action('wpdeveloper_upsale_notice');
|
| 312 |
+
$this->get_thumbnail( 'upsale' );
|
| 313 |
+
$this->get_message( 'upsale' );
|
| 314 |
+
do_action( 'wpdeveloper_after_upsale_notice' );
|
| 315 |
+
$this->upsale_button_script();
|
| 316 |
+
}
|
| 317 |
+
|
| 318 |
+
private function get_upsale_args(){
|
| 319 |
+
return $this->upsale_args;
|
| 320 |
+
}
|
| 321 |
+
|
| 322 |
+
private function upsale_button(){
|
| 323 |
+
$upsale_args = $this->get_upsale_args();
|
| 324 |
+
$plugin_slug = ( isset( $upsale_args['slug'] )) ? $upsale_args['slug'] : '' ;
|
| 325 |
+
if( empty( $plugin_slug ) ) {
|
| 326 |
+
return;
|
| 327 |
+
}
|
| 328 |
+
|
| 329 |
+
echo '<button data-slug="'. $plugin_slug .'" id="plugin-install-core" class="button button-primary">'. __( 'Install Now!' ) .'</button>';
|
| 330 |
+
}
|
| 331 |
+
/**
|
| 332 |
+
* This methods is responsible for get notice image.
|
| 333 |
+
*
|
| 334 |
+
* @param string $msg_for
|
| 335 |
+
* @return void
|
| 336 |
+
*/
|
| 337 |
+
protected function get_thumbnail( $msg_for ){
|
| 338 |
+
$output = '';
|
| 339 |
+
if( isset( $this->data['thumbnail'] ) && isset( $this->data['thumbnail'][ $msg_for ] ) ) {
|
| 340 |
+
$output = '<div class="wpdeveloper-notice-thumbnail">';
|
| 341 |
+
$output .= '<img src="'. $this->data['thumbnail'][ $msg_for ] .'" alt="">';
|
| 342 |
+
$output .= '</div>';
|
| 343 |
+
}
|
| 344 |
+
echo $output;
|
| 345 |
+
}
|
| 346 |
+
/**
|
| 347 |
+
* Has Thumbnail Check
|
| 348 |
+
*
|
| 349 |
+
* @param string $msg_for
|
| 350 |
+
* @return boolean
|
| 351 |
+
*/
|
| 352 |
+
protected function has_thumbnail( $msg_for = '' ){
|
| 353 |
+
if( empty( $msg_for ) ) {
|
| 354 |
+
return false;
|
| 355 |
+
}
|
| 356 |
+
if( isset( $this->data['thumbnail'] ) && isset( $this->data['thumbnail'][ $msg_for ] ) ) {
|
| 357 |
+
return true;
|
| 358 |
+
}
|
| 359 |
+
return false;
|
| 360 |
+
}
|
| 361 |
+
|
| 362 |
+
/**
|
| 363 |
+
* This method is responsible for get messages.
|
| 364 |
+
*
|
| 365 |
+
* @param string $msg_for
|
| 366 |
+
* @return void
|
| 367 |
+
*/
|
| 368 |
+
protected function get_message( $msg_for ){
|
| 369 |
+
if( isset( $this->data['message'] ) && isset( $this->data['message'][ $msg_for ] ) ) {
|
| 370 |
+
echo '<div class="wpdeveloper-notice-message">';
|
| 371 |
+
echo $this->data['message'][ $msg_for ];
|
| 372 |
+
if( $msg_for === 'upsale' ) {
|
| 373 |
+
$this->upsale_button();
|
| 374 |
+
}
|
| 375 |
+
$this->dismissible_notice( $msg_for );
|
| 376 |
+
echo '</div>';
|
| 377 |
+
}
|
| 378 |
+
}
|
| 379 |
+
/**
|
| 380 |
+
* Detect which notice will show @ next.
|
| 381 |
+
* @return void
|
| 382 |
+
*/
|
| 383 |
+
protected function next_notice(){
|
| 384 |
+
$options_data = $this->get_options_data();
|
| 385 |
+
if( ! $options_data ) {
|
| 386 |
+
$args = $this->get_args();
|
| 387 |
+
$return_notice = $args['notice_will_show'];
|
| 388 |
+
} else {
|
| 389 |
+
$return_notice = $options_data[ $this->plugin_name ]['notice_will_show'];
|
| 390 |
+
}
|
| 391 |
+
|
| 392 |
+
$deserve_notice_timestamp = INF;
|
| 393 |
+
$deserve_notice = '';
|
| 394 |
+
foreach( $return_notice as $notice => $timestamp ) {
|
| 395 |
+
if( $timestamp <= $deserve_notice_timestamp ) {
|
| 396 |
+
$deserve_notice_timestamp = $timestamp;
|
| 397 |
+
$deserve_notice = $notice;
|
| 398 |
+
}
|
| 399 |
+
}
|
| 400 |
+
return $deserve_notice;
|
| 401 |
+
}
|
| 402 |
+
|
| 403 |
+
private function deserve_notice( $notice ) {
|
| 404 |
+
$notices = $this->get_user_notices();
|
| 405 |
+
if( empty( $notices ) ) {
|
| 406 |
+
return true;
|
| 407 |
+
} else {
|
| 408 |
+
if( isset( $notices[ $this->notice_id ] ) && isset( $notices[ $this->notice_id ][ $this->plugin_name ] ) ) {
|
| 409 |
+
if( in_array( $notice, $notices[ $this->notice_id ][ $this->plugin_name ] ) ) {
|
| 410 |
+
return false;
|
| 411 |
+
}
|
| 412 |
+
} else {
|
| 413 |
+
return true;
|
| 414 |
+
}
|
| 415 |
+
}
|
| 416 |
+
}
|
| 417 |
+
|
| 418 |
+
/**
|
| 419 |
+
* This is the main methods for generate the notice.
|
| 420 |
+
* @return void
|
| 421 |
+
*/
|
| 422 |
+
public function admin_notices(){
|
| 423 |
+
do_action( 'wpdeveloper_before_notice' );
|
| 424 |
+
do_action( 'wpdeveloper_notices' );
|
| 425 |
+
do_action( 'wpdeveloper_after_notice' );
|
| 426 |
+
}
|
| 427 |
+
/**
|
| 428 |
+
* This method is responsible for all dismissible links generation.
|
| 429 |
+
* @param string $links_for
|
| 430 |
+
* @return void
|
| 431 |
+
*/
|
| 432 |
+
public function dismissible_notice( $links_for = '' ){
|
| 433 |
+
if( empty( $links_for ) ) {
|
| 434 |
+
return;
|
| 435 |
+
}
|
| 436 |
+
$links = isset( $this->data['links'][ $links_for ] ) ? $this->data['links'][ $links_for ] : false;
|
| 437 |
+
if( $links ) :
|
| 438 |
+
$output = '<ul class="wpdeveloper-notice-link">';
|
| 439 |
+
foreach( $links as $key => $link_value ) {
|
| 440 |
+
if( ! empty( $link_value['label'] ) ) {
|
| 441 |
+
$output .= '<li>';
|
| 442 |
+
if( isset( $link_value['link'] ) ) {
|
| 443 |
+
$link = $link_value['link'];
|
| 444 |
+
$target = isset( $link_value['target'] ) ? 'target="'. $link_value['target'] .'"' : '';
|
| 445 |
+
if( isset( $link_value['data_args'] ) && is_array( $link_value['data_args'] ) ) {
|
| 446 |
+
$data_args = [];
|
| 447 |
+
foreach( $link_value['data_args'] as $key => $args_value ) {
|
| 448 |
+
$data_args[ $key ] = $args_value;
|
| 449 |
+
}
|
| 450 |
+
$data_args[ 'notice_action' ] = $this->plugin_name;
|
| 451 |
+
$normal_link = add_query_arg( $data_args, $link );
|
| 452 |
+
$link = wp_nonce_url( $normal_link, 'wpdeveloper-nonce' );
|
| 453 |
+
}
|
| 454 |
+
$class = '';
|
| 455 |
+
if( isset( $link_value['link_class'] ) ) {
|
| 456 |
+
$class = 'class="' . implode( ' ', $link_value['link_class'] ) . '"';
|
| 457 |
+
}
|
| 458 |
+
$output .= '<a '. $class .' href="'. esc_url( $link ) .'" '. $target .'>';
|
| 459 |
+
}
|
| 460 |
+
if( isset( $link_value['icon_class'] ) ) {
|
| 461 |
+
$output .= '<span class="'. $link_value['icon_class'] .'"></span>';
|
| 462 |
+
}
|
| 463 |
+
if( isset( $link_value['icon_img'] ) ) {
|
| 464 |
+
$output .= '<img src="'. $link_value['icon_img'] .'" />';
|
| 465 |
+
}
|
| 466 |
+
$output .= $link_value['label'];
|
| 467 |
+
if( isset( $link_value['link'] ) ) {
|
| 468 |
+
$output .= '</a>';
|
| 469 |
+
}
|
| 470 |
+
$output .= '</li>';
|
| 471 |
+
}
|
| 472 |
+
}
|
| 473 |
+
$output .= '</ul>';
|
| 474 |
+
echo $output;
|
| 475 |
+
endif;
|
| 476 |
+
}
|
| 477 |
+
/**
|
| 478 |
+
* First Installation Track
|
| 479 |
+
*
|
| 480 |
+
* @return void
|
| 481 |
+
*/
|
| 482 |
+
public function first_install_track( $args = array() ){
|
| 483 |
+
if( empty( $args ) ) {
|
| 484 |
+
$args = array(
|
| 485 |
+
'time' => $this->timestamp,
|
| 486 |
+
);
|
| 487 |
+
}
|
| 488 |
+
$options_data = $this->get_options_data();
|
| 489 |
+
$args = wp_parse_args( $args, $this->get_args() );
|
| 490 |
+
|
| 491 |
+
if( ! isset( $options_data[ $this->plugin_name ] ) ) {
|
| 492 |
+
$this->update_options_data( $args );
|
| 493 |
+
}
|
| 494 |
+
}
|
| 495 |
+
/**
|
| 496 |
+
* First Installation Deactive Track
|
| 497 |
+
*
|
| 498 |
+
* @return void
|
| 499 |
+
*/
|
| 500 |
+
public function first_install_end(){
|
| 501 |
+
// $args = array(
|
| 502 |
+
// 'first_install' => 'deactivated'
|
| 503 |
+
// );
|
| 504 |
+
// $options_data = $this->get_options_data();
|
| 505 |
+
// if( isset( $options_data[ $this->plugin_name ] ) ) {
|
| 506 |
+
// $args = wp_parse_args( $args, $options_data[ $this->plugin_name ] );
|
| 507 |
+
// $this->update_options_data( $args );
|
| 508 |
+
// }
|
| 509 |
+
delete_option( 'wpdeveloper_plugins_data' );
|
| 510 |
+
}
|
| 511 |
+
/**
|
| 512 |
+
* Get all options from database!
|
| 513 |
+
* @return void
|
| 514 |
+
*/
|
| 515 |
+
protected function get_options_data( $key = ''){
|
| 516 |
+
$options_data = get_option( 'wpdeveloper_plugins_data' );
|
| 517 |
+
if( empty( $key ) ) {
|
| 518 |
+
return $options_data;
|
| 519 |
+
}
|
| 520 |
+
|
| 521 |
+
if( isset( $options_data[ $this->plugin_name ][ $key ] ) ) {
|
| 522 |
+
return $options_data[ $this->plugin_name ][ $key ];
|
| 523 |
+
}
|
| 524 |
+
return false;
|
| 525 |
+
}
|
| 526 |
+
/**
|
| 527 |
+
* This will update the options table for plugins.
|
| 528 |
+
*
|
| 529 |
+
* @param mixed $new_data
|
| 530 |
+
* @param array $args
|
| 531 |
+
* @return void
|
| 532 |
+
*/
|
| 533 |
+
protected function update_options_data( $args = array() ){
|
| 534 |
+
$options_data = $this->get_options_data();
|
| 535 |
+
$options_data[ $this->plugin_name ] = $args;
|
| 536 |
+
update_option( 'wpdeveloper_plugins_data', $options_data );
|
| 537 |
+
}
|
| 538 |
+
/**
|
| 539 |
+
* Set properties data, for some selected properties.
|
| 540 |
+
*
|
| 541 |
+
* @param string $name
|
| 542 |
+
* @param mixed $value
|
| 543 |
+
*/
|
| 544 |
+
public function __set( $name, $value ){
|
| 545 |
+
if( in_array( $name, $this->properties ) ) {
|
| 546 |
+
$this->data[ $name ] = $value;
|
| 547 |
+
}
|
| 548 |
+
}
|
| 549 |
+
/**
|
| 550 |
+
* Invoked when some selected methods are called
|
| 551 |
+
*
|
| 552 |
+
* @param string $name
|
| 553 |
+
* @param array $values
|
| 554 |
+
* @return void
|
| 555 |
+
*/
|
| 556 |
+
public function __call( $name, $values ){
|
| 557 |
+
if( in_array( $name, $this->methods ) ) {
|
| 558 |
+
$this->data[ $name ][ $values[0] ] = $values[1];
|
| 559 |
+
}
|
| 560 |
+
}
|
| 561 |
+
|
| 562 |
+
private function get_args( $key = '' ){
|
| 563 |
+
if( empty( $key ) ) {
|
| 564 |
+
return $this->options_args;
|
| 565 |
+
}
|
| 566 |
+
|
| 567 |
+
if( isset( $this->options_args[ $key ] ) ) {
|
| 568 |
+
return $this->options_args[ $key ];
|
| 569 |
+
}
|
| 570 |
+
|
| 571 |
+
return false;
|
| 572 |
+
}
|
| 573 |
+
|
| 574 |
+
public function upgrade_completed( $upgrader_object, $options ) {
|
| 575 |
+
// If an update has taken place and the updated type is plugins and the plugins element exists
|
| 576 |
+
if( $options['action'] == 'update' && $options['type'] == 'plugin' && isset( $options['plugins'] ) ) {
|
| 577 |
+
// Iterate through the plugins being updated and check if ours is there
|
| 578 |
+
foreach( $options['plugins'] as $plugin ) {
|
| 579 |
+
if( $plugin == $this->plugin_name ) {
|
| 580 |
+
$this->first_install_track( array(
|
| 581 |
+
'update_time' => $this->timestamp
|
| 582 |
+
) );
|
| 583 |
+
}
|
| 584 |
+
}
|
| 585 |
+
}
|
| 586 |
+
}
|
| 587 |
+
/**
|
| 588 |
+
* This function is responsible for get_user_notices
|
| 589 |
+
* @return void
|
| 590 |
+
*/
|
| 591 |
+
private function get_user_notices() {
|
| 592 |
+
return get_user_meta( get_current_user_id(), self::ADMIN_UPDATE_NOTICE_KEY, true );
|
| 593 |
+
}
|
| 594 |
+
|
| 595 |
+
public function upsale_notice_dissmiss(){
|
| 596 |
+
$dismiss = isset( $_POST['dismiss'] ) ? $_POST['dismiss'] : false;
|
| 597 |
+
|
| 598 |
+
if( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_POST['_wpnonce'] ) ), 'wpdeveloper_upsale_notice_dissmiss' ) ) {
|
| 599 |
+
return;
|
| 600 |
+
}
|
| 601 |
+
|
| 602 |
+
if( ! isset( $_POST['action'] ) || ( $_POST['action'] !== 'wpdeveloper_upsale_notice_dissmiss' ) ) {
|
| 603 |
+
return;
|
| 604 |
+
}
|
| 605 |
+
|
| 606 |
+
if( $dismiss ) {
|
| 607 |
+
$user_notices = $this->get_user_notices();
|
| 608 |
+
if( ! $user_notices ) {
|
| 609 |
+
$user_notices = [];
|
| 610 |
+
}
|
| 611 |
+
$user_notices[ $this->notice_id ][ $this->plugin_name ][] = 'upsale';
|
| 612 |
+
|
| 613 |
+
update_user_meta( get_current_user_id(), self::ADMIN_UPDATE_NOTICE_KEY, $user_notices);
|
| 614 |
+
echo 'success';
|
| 615 |
+
} else {
|
| 616 |
+
echo 'failed';
|
| 617 |
+
}
|
| 618 |
+
die();
|
| 619 |
+
}
|
| 620 |
+
|
| 621 |
+
public function upsale_button_script(){
|
| 622 |
+
$upsale_args = $this->get_upsale_args();
|
| 623 |
+
|
| 624 |
+
$plugin_slug = ( isset( $upsale_args['slug'] ) ) ? $upsale_args['slug'] : '';
|
| 625 |
+
$plugin_file = ( isset( $upsale_args['file'] ) ) ? $upsale_args['file'] : '';
|
| 626 |
+
$page_slug = ( isset( $upsale_args['page_slug'] ) ) ? $upsale_args['page_slug'] : '';
|
| 627 |
+
|
| 628 |
+
?>
|
| 629 |
+
<script type="text/javascript">
|
| 630 |
+
jQuery(document).ready( function($) {
|
| 631 |
+
<?php if( ! empty( $plugin_slug ) && ! empty( $plugin_file ) ) : ?>
|
| 632 |
+
$('#plugin-install-core').on('click', function (e) {
|
| 633 |
+
var self = $(this);
|
| 634 |
+
e.preventDefault();
|
| 635 |
+
self.addClass('install-now updating-message');
|
| 636 |
+
self.text('<?php echo esc_js( 'Installing...' ); ?>');
|
| 637 |
+
|
| 638 |
+
$.ajax({
|
| 639 |
+
url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
|
| 640 |
+
type: 'POST',
|
| 641 |
+
data: {
|
| 642 |
+
action: 'wpdeveloper_upsale_core_install',
|
| 643 |
+
_wpnonce: '<?php echo wp_create_nonce('wpdeveloper_upsale_core_install'); ?>',
|
| 644 |
+
slug : '<?php echo $plugin_slug; ?>',
|
| 645 |
+
file : '<?php echo $plugin_file; ?>'
|
| 646 |
+
},
|
| 647 |
+
success: function(response) {
|
| 648 |
+
self.text('<?php echo esc_js( 'Installed' ); ?>');
|
| 649 |
+
<?php if( ! empty( $page_slug ) ) : ?>
|
| 650 |
+
window.location.href = '<?php echo admin_url( "admin.php?page={$page_slug}" ); ?>';
|
| 651 |
+
<?php endif; ?>
|
| 652 |
+
},
|
| 653 |
+
error: function(error) {
|
| 654 |
+
self.removeClass('install-now updating-message');
|
| 655 |
+
alert( error );
|
| 656 |
+
},
|
| 657 |
+
complete: function() {
|
| 658 |
+
self.attr('disabled', 'disabled');
|
| 659 |
+
self.removeClass('install-now updating-message');
|
| 660 |
+
}
|
| 661 |
+
});
|
| 662 |
+
});
|
| 663 |
+
|
| 664 |
+
<?php endif; ?>
|
| 665 |
+
|
| 666 |
+
$('.wpdeveloper-upsale-notice').on('click', 'button.notice-dismiss', function (e) {
|
| 667 |
+
e.preventDefault();
|
| 668 |
+
$.ajax({
|
| 669 |
+
url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
|
| 670 |
+
type: 'post',
|
| 671 |
+
data: {
|
| 672 |
+
action: 'wpdeveloper_upsale_notice_dissmiss',
|
| 673 |
+
_wpnonce: '<?php echo wp_create_nonce('wpdeveloper_upsale_notice_dissmiss'); ?>',
|
| 674 |
+
dismiss: true
|
| 675 |
+
},
|
| 676 |
+
success: function(response) {
|
| 677 |
+
console.log('Success fully saved!');
|
| 678 |
+
},
|
| 679 |
+
error: function(error) {
|
| 680 |
+
console.log('Something went wrong!');
|
| 681 |
+
},
|
| 682 |
+
complete: function() {
|
| 683 |
+
console.log('Its Complete.');
|
| 684 |
+
}
|
| 685 |
+
});
|
| 686 |
+
});
|
| 687 |
+
} );
|
| 688 |
+
</script>
|
| 689 |
+
|
| 690 |
+
<?php
|
| 691 |
+
}
|
| 692 |
+
}
|
| 693 |
+
|
| 694 |
+
// Initialization.
|
| 695 |
+
$notice = new WPDeveloper_Notice(ESSENTIAL_ADDONS_BASENAME, ESSENTIAL_ADDONS_VERSION);
|
| 696 |
+
$scheme = (parse_url( $_SERVER['REQUEST_URI'], PHP_URL_QUERY )) ? '&' : '?';
|
| 697 |
+
$url = $_SERVER['REQUEST_URI'] . $scheme;
|
| 698 |
+
$notice->links = [
|
| 699 |
+
'review' => array(
|
| 700 |
+
'later' => array(
|
| 701 |
+
'link' => 'https://wpdeveloper.net/review-essential-addons-elementor',
|
| 702 |
+
'target' => '_blank',
|
| 703 |
+
'label' => __( 'Ok, you deserve it!', 'essential-addons-elementor' ),
|
| 704 |
+
'icon_class' => 'dashicons dashicons-external',
|
| 705 |
+
),
|
| 706 |
+
'allready' => array(
|
| 707 |
+
'link' => $url,
|
| 708 |
+
'label' => __( 'I already did', 'essential-addons-elementor' ),
|
| 709 |
+
'icon_class' => 'dashicons dashicons-smiley',
|
| 710 |
+
'data_args' => [
|
| 711 |
+
'dismiss' => true,
|
| 712 |
+
]
|
| 713 |
+
),
|
| 714 |
+
'maybe_later' => array(
|
| 715 |
+
'link' => $url,
|
| 716 |
+
'label' => __( 'Maybe Later', 'essential-addons-elementor' ),
|
| 717 |
+
'icon_class' => 'dashicons dashicons-calendar-alt',
|
| 718 |
+
'data_args' => [
|
| 719 |
+
'later' => true,
|
| 720 |
+
]
|
| 721 |
+
),
|
| 722 |
+
'support' => array(
|
| 723 |
+
'link' => 'https://wpdeveloper.net/support',
|
| 724 |
+
'label' => __( 'I need help', 'essential-addons-elementor' ),
|
| 725 |
+
'icon_class' => 'dashicons dashicons-sos',
|
| 726 |
+
),
|
| 727 |
+
'never_show_again' => array(
|
| 728 |
+
'link' => $url,
|
| 729 |
+
'label' => __( 'Never show again', 'essential-addons-elementor' ),
|
| 730 |
+
'icon_class' => 'dashicons dashicons-dismiss',
|
| 731 |
+
'data_args' => [
|
| 732 |
+
'dismiss' => true,
|
| 733 |
+
]
|
| 734 |
+
),
|
| 735 |
+
)
|
| 736 |
+
];
|
| 737 |
+
|
| 738 |
+
/**
|
| 739 |
+
* This is upsale notice settings
|
| 740 |
+
* classes for wrapper,
|
| 741 |
+
* Message message for showing.
|
| 742 |
+
*/
|
| 743 |
+
$notice->classes( 'upsale', 'notice is-dismissible' );
|
| 744 |
+
$notice->message( 'upsale', '<p>'. __( 'Get the missing Drag & Drop Post Calendar feature for WordPress for Free!', 'essential-addons-elementor' ) .'</p>' );
|
| 745 |
+
$notice->thumbnail( 'upsale', plugins_url( 'admin/assets/images/wpsp-logo.svg', ESSENTIAL_ADDONS_BASENAME ) );
|
| 746 |
+
|
| 747 |
+
/**
|
| 748 |
+
* This is review message and thumbnail.
|
| 749 |
+
*/
|
| 750 |
+
$notice->message( 'review', '<p>'. __( 'We hope you\'re enjoying Essential Addons for Elementor! Could you please do us a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'essential-addons-elementor' ) .'</p>' );
|
| 751 |
+
$notice->thumbnail( 'review', plugins_url( 'admin/assets/images/ea-logo.svg', ESSENTIAL_ADDONS_BASENAME ) );
|
| 752 |
+
|
| 753 |
+
/**
|
| 754 |
+
* Current Notice End Time.
|
| 755 |
+
* Notice will dismiss in 1 days if user does nothing.
|
| 756 |
+
*/
|
| 757 |
+
$notice->cne_time = '3 Day';
|
| 758 |
+
$notice->redirect_url = admin_url( 'admin.php?page=eael-settings' );
|
| 759 |
+
/**
|
| 760 |
+
* Current Notice Maybe Later Time.
|
| 761 |
+
* Notice will show again in 7 days
|
| 762 |
+
*/
|
| 763 |
+
$notice->maybe_later_time = '7 Day';
|
| 764 |
+
|
| 765 |
+
$notice->upsale_args = array(
|
| 766 |
+
'slug' => 'wp-scheduled-posts',
|
| 767 |
+
'page_slug' => 'wpsp-schedule-calendar',
|
| 768 |
+
'file' => 'wp-scheduled-posts.php'
|
| 769 |
+
);
|
| 770 |
+
|
| 771 |
+
$notice->options_args = array(
|
| 772 |
+
'notice_seen' => [
|
| 773 |
+
'review' => false,
|
| 774 |
+
'upsale' => false,
|
| 775 |
+
],
|
| 776 |
+
'notice_will_show' => [
|
| 777 |
+
'review' => $notice->makeTime( $notice->timestamp, '4 Day' ), // after 4 days
|
| 778 |
+
'upsale' => $notice->makeTime( $notice->timestamp, '2 Hour' ), // will be after 2 hours
|
| 779 |
+
]
|
| 780 |
+
);
|
| 781 |
+
|
| 782 |
+
$notice->init();
|
includes/eae-posts-group-control.php
CHANGED
|
File without changes
|
includes/eael-rollback.php
CHANGED
|
@@ -20,13 +20,6 @@ if( ! class_exists('EAEL_Rollback') ) {
|
|
| 20 |
*/
|
| 21 |
private static $instance;
|
| 22 |
|
| 23 |
-
/**
|
| 24 |
-
* Plugin repo url.
|
| 25 |
-
*
|
| 26 |
-
* @var string
|
| 27 |
-
*/
|
| 28 |
-
public $plugins_repo = 'http://plugins.svn.wordpress.org';
|
| 29 |
-
|
| 30 |
/**
|
| 31 |
* Plugin file.
|
| 32 |
*
|
|
@@ -46,7 +39,46 @@ if( ! class_exists('EAEL_Rollback') ) {
|
|
| 46 |
*
|
| 47 |
* @var array
|
| 48 |
*/
|
| 49 |
-
public $versions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
|
| 51 |
/**
|
| 52 |
* Current version.
|
|
@@ -73,13 +105,14 @@ if( ! class_exists('EAEL_Rollback') ) {
|
|
| 73 |
|
| 74 |
// Only setup plugin rollback on specific page.
|
| 75 |
self::$instance->setup_plugin_vars();
|
| 76 |
-
self::$instance->get_plugin_data();
|
| 77 |
}
|
| 78 |
return self::$instance;
|
| 79 |
}
|
| 80 |
|
| 81 |
public function __construct() {
|
| 82 |
add_filter( 'insert_eael_versions_html', [$this, 'versions_select'] );
|
|
|
|
| 83 |
}
|
| 84 |
|
| 85 |
/**
|
|
@@ -88,8 +121,6 @@ if( ! class_exists('EAEL_Rollback') ) {
|
|
| 88 |
* @access private
|
| 89 |
*/
|
| 90 |
private function setup_plugin_vars() {
|
| 91 |
-
$svn_tags = $this->get_svn_tags();
|
| 92 |
-
$this->set_svn_versions_data($svn_tags);
|
| 93 |
$this->versions_select('plugin');
|
| 94 |
}
|
| 95 |
|
|
@@ -111,55 +142,6 @@ if( ! class_exists('EAEL_Rollback') ) {
|
|
| 111 |
}
|
| 112 |
}
|
| 113 |
|
| 114 |
-
/**
|
| 115 |
-
* Get Subversion Tags
|
| 116 |
-
*
|
| 117 |
-
* cURL wp.org repo to get the proper tags
|
| 118 |
-
*
|
| 119 |
-
* @param $type
|
| 120 |
-
* @param $slug
|
| 121 |
-
* @return null|string
|
| 122 |
-
*/
|
| 123 |
-
public function get_svn_tags() {
|
| 124 |
-
$url = $this->plugins_repo . '/' . $this->plugin_slug . '/tags/';
|
| 125 |
-
|
| 126 |
-
$response = wp_remote_get($url);
|
| 127 |
-
|
| 128 |
-
// If we have an error
|
| 129 |
-
if( wp_remote_retrieve_response_code( $response ) !== 200) return null;
|
| 130 |
-
|
| 131 |
-
// Return response body
|
| 132 |
-
return wp_remote_retrieve_body( $response );
|
| 133 |
-
}
|
| 134 |
-
|
| 135 |
-
/**
|
| 136 |
-
* Set SVN Version Data
|
| 137 |
-
*
|
| 138 |
-
* @param $html
|
| 139 |
-
*
|
| 140 |
-
* @return array|bool
|
| 141 |
-
*/
|
| 142 |
-
public function set_svn_versions_data( $html ) {
|
| 143 |
-
if( ! $html ) return false;
|
| 144 |
-
|
| 145 |
-
$DOM = new DOMDocument;
|
| 146 |
-
$DOM->loadHTML( $html );
|
| 147 |
-
|
| 148 |
-
$versions = [];
|
| 149 |
-
$items = $DOM->getElementsByTagName('a');
|
| 150 |
-
|
| 151 |
-
foreach( $items as $item ) {
|
| 152 |
-
$href = str_replace( '/', '', $item->getAttribute('href') ); // Remove trailing slash
|
| 153 |
-
|
| 154 |
-
if( strpos( $href, 'http' ) === false && '..' !== $href ) {
|
| 155 |
-
$versions[] = $href;
|
| 156 |
-
}
|
| 157 |
-
}
|
| 158 |
-
|
| 159 |
-
$this->versions = array_reverse( $versions );
|
| 160 |
-
return $versions;
|
| 161 |
-
}
|
| 162 |
-
|
| 163 |
/**
|
| 164 |
* Versions Select
|
| 165 |
*
|
|
@@ -178,7 +160,7 @@ if( ! class_exists('EAEL_Rollback') ) {
|
|
| 178 |
|
| 179 |
// Loop through versions and output in a radio list
|
| 180 |
foreach( $this->versions as $v ) {
|
| 181 |
-
|
| 182 |
// Is this the current version?
|
| 183 |
if( $v == $this->current_version ) {
|
| 184 |
$vh .= '<option value"'. esc_attr($v).'" disabled>'.$v;
|
|
@@ -195,16 +177,6 @@ if( ! class_exists('EAEL_Rollback') ) {
|
|
| 195 |
}
|
| 196 |
|
| 197 |
|
| 198 |
-
/**
|
| 199 |
-
* Plugin Action Link
|
| 200 |
-
*
|
| 201 |
-
* Adds a rollback button into the eael version control tab with appropriate query strings.
|
| 202 |
-
*/
|
| 203 |
-
public function eael_plugin_upgrade_confirmation() {
|
| 204 |
-
|
| 205 |
-
}
|
| 206 |
-
|
| 207 |
-
|
| 208 |
|
| 209 |
}
|
| 210 |
|
| 20 |
*/
|
| 21 |
private static $instance;
|
| 22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
/**
|
| 24 |
* Plugin file.
|
| 25 |
*
|
| 39 |
*
|
| 40 |
* @var array
|
| 41 |
*/
|
| 42 |
+
public $versions = [
|
| 43 |
+
'2.8.6',
|
| 44 |
+
'2.8.5',
|
| 45 |
+
'2.8.4',
|
| 46 |
+
'2.8.3',
|
| 47 |
+
'2.8.2',
|
| 48 |
+
'2.8.1',
|
| 49 |
+
'2.8.0',
|
| 50 |
+
'2.7.1',
|
| 51 |
+
'2.7.1',
|
| 52 |
+
'2.7.9',
|
| 53 |
+
'2.7.8',
|
| 54 |
+
'2.7.7',
|
| 55 |
+
'2.7.6',
|
| 56 |
+
'2.7.5',
|
| 57 |
+
'2.7.4',
|
| 58 |
+
'2.7.3',
|
| 59 |
+
'2.7.2',
|
| 60 |
+
'2.7.1',
|
| 61 |
+
'2.7.0',
|
| 62 |
+
'2.6.0',
|
| 63 |
+
'2.5.0',
|
| 64 |
+
'2.4.3',
|
| 65 |
+
'2.4.2',
|
| 66 |
+
'2.4.1',
|
| 67 |
+
'2.4.0',
|
| 68 |
+
'2.3.1',
|
| 69 |
+
'2.3.0',
|
| 70 |
+
'2.2.5',
|
| 71 |
+
'2.2.4',
|
| 72 |
+
'2.2.3',
|
| 73 |
+
'2.2.2',
|
| 74 |
+
'2.2.1',
|
| 75 |
+
'2.2.0',
|
| 76 |
+
'2.1',
|
| 77 |
+
'2.0',
|
| 78 |
+
'1.1.0',
|
| 79 |
+
'1.0.1',
|
| 80 |
+
'1.0.0'
|
| 81 |
+
];
|
| 82 |
|
| 83 |
/**
|
| 84 |
* Current version.
|
| 105 |
|
| 106 |
// Only setup plugin rollback on specific page.
|
| 107 |
self::$instance->setup_plugin_vars();
|
| 108 |
+
// self::$instance->get_plugin_data();
|
| 109 |
}
|
| 110 |
return self::$instance;
|
| 111 |
}
|
| 112 |
|
| 113 |
public function __construct() {
|
| 114 |
add_filter( 'insert_eael_versions_html', [$this, 'versions_select'] );
|
| 115 |
+
$this->get_plugin_data();
|
| 116 |
}
|
| 117 |
|
| 118 |
/**
|
| 121 |
* @access private
|
| 122 |
*/
|
| 123 |
private function setup_plugin_vars() {
|
|
|
|
|
|
|
| 124 |
$this->versions_select('plugin');
|
| 125 |
}
|
| 126 |
|
| 142 |
}
|
| 143 |
}
|
| 144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 145 |
/**
|
| 146 |
* Versions Select
|
| 147 |
*
|
| 160 |
|
| 161 |
// Loop through versions and output in a radio list
|
| 162 |
foreach( $this->versions as $v ) {
|
| 163 |
+
|
| 164 |
// Is this the current version?
|
| 165 |
if( $v == $this->current_version ) {
|
| 166 |
$vh .= '<option value"'. esc_attr($v).'" disabled>'.$v;
|
| 177 |
}
|
| 178 |
|
| 179 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
|
| 181 |
}
|
| 182 |
|
includes/elementor-helper.php
CHANGED
|
File without changes
|
includes/extensions.php
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
| 4 |
+
|
| 5 |
+
abstract class Module_Base {
|
| 6 |
+
|
| 7 |
+
/**
|
| 8 |
+
* @var \RefelectionClass
|
| 9 |
+
*/
|
| 10 |
+
private $reflection;
|
| 11 |
+
|
| 12 |
+
/**
|
| 13 |
+
* @var Module_Base
|
| 14 |
+
*/
|
| 15 |
+
protected static $_instance = [];
|
| 16 |
+
|
| 17 |
+
/**
|
| 18 |
+
* Class active status
|
| 19 |
+
*/
|
| 20 |
+
public static function is_active() {
|
| 21 |
+
return true;
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
/**
|
| 25 |
+
* Retrive class name
|
| 26 |
+
*/
|
| 27 |
+
public static function class_name() {
|
| 28 |
+
return get_called_class();
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
/**
|
| 32 |
+
* @return static
|
| 33 |
+
*/
|
| 34 |
+
public static function instance() {
|
| 35 |
+
if( empty(static::$_instance[ static::class_name() ]) ) {
|
| 36 |
+
static::$_instance[ static::class_name() ] = new static();
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
return static::$_instance[ static::class_name() ];
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
public function __construct() {
|
| 43 |
+
$this->reflection = new \ReflectionClass( $this );
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
}
|
includes/queries.php
CHANGED
|
File without changes
|
includes/templates/content.php
CHANGED
|
File without changes
|
includes/templates/product-loop.php
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
defined('ABSPATH') || exit;
|
| 4 |
+
|
| 5 |
+
global $product;
|
| 6 |
+
|
| 7 |
+
// Ensure visibility.
|
| 8 |
+
if (empty($product) || !$product->is_visible()) {
|
| 9 |
+
return;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
?>
|
| 13 |
+
<li <?php wc_product_class('product');?>>
|
| 14 |
+
<?php if ($grid_layout == 'eael-product-simple' || $grid_layout == 'eael-product-default' || $grid_layout == 'eael-product-reveal') {
|
| 15 |
+
echo '<a href="' . get_the_permalink() . '" class="woocommerce-LoopProduct-link woocommerce-loop-product__link">
|
| 16 |
+
' . $product->get_image('woocommerce_thumbnail') . '
|
| 17 |
+
<h2 class="woocommerce-loop-product__title">' . $product->get_title() . '</h2>
|
| 18 |
+
' . ($show_rating != 'yes' ? '' : wc_get_rating_html($product->get_average_rating(), $product->get_rating_count())) . '
|
| 19 |
+
' . ($product->is_on_sale() ? '<span class="onsale">' . __('Sale!', 'essential-addons-elementor') . '</span>' : '') . '
|
| 20 |
+
<span class="price">' . $product->get_price_html() . '</span>
|
| 21 |
+
</a>';
|
| 22 |
+
|
| 23 |
+
woocommerce_template_loop_add_to_cart();
|
| 24 |
+
} else if ($grid_layout == 'eael-product-overlay') {
|
| 25 |
+
echo '<div class="overlay">
|
| 26 |
+
' . $product->get_image('woocommerce_thumbnail') . '
|
| 27 |
+
<div class="button-wrap clearfix">
|
| 28 |
+
<a href="' . get_the_permalink() . '" class="product-link"><span class="fa fa-link"></span></a>';
|
| 29 |
+
woocommerce_template_loop_add_to_cart();
|
| 30 |
+
echo '</div>
|
| 31 |
+
</div>
|
| 32 |
+
<h2 class="woocommerce-loop-product__title">' . $product->get_title() . '</h2>
|
| 33 |
+
' . ($show_rating != 'yes' ? '' : wc_get_rating_html($product->get_average_rating(), $product->get_rating_count())) . '
|
| 34 |
+
' . ($product->is_on_sale() ? '<span class="onsale">' . __('Sale!', 'essential-addons-elementor') . '</span>' : '') . '
|
| 35 |
+
<span class="price">' . $product->get_price_html() . '</span>';
|
| 36 |
+
}?>
|
| 37 |
+
</li>
|
includes/version-rollback.php
CHANGED
|
@@ -5,6 +5,7 @@ if( !defined( 'ABSPATH' ) ) exit; //Exit if accessed directly
|
|
| 5 |
/**
|
| 6 |
* EAEL version rollback class
|
| 7 |
*
|
|
|
|
| 8 |
* @since 2.8.5
|
| 9 |
*/
|
| 10 |
class EAEL_Version_Rollback {
|
| 5 |
/**
|
| 6 |
* EAEL version rollback class
|
| 7 |
*
|
| 8 |
+
*
|
| 9 |
* @since 2.8.5
|
| 10 |
*/
|
| 11 |
class EAEL_Version_Rollback {
|
readme.txt
CHANGED
|
@@ -2,9 +2,9 @@
|
|
| 2 |
Contributors: wpdevteam, Codetic, re_enter_rupok, Asif2BD, robicse11128, priyomukul, mahfuz01, mdsabuz, manik08cse
|
| 3 |
Tags: elementor, elements, addons, elementor addon, elementor widget, page builder, builder, visual editor, wordpress page builder, elementor form
|
| 4 |
Requires at least: 4.0
|
| 5 |
-
Tested up to: 5.0.
|
| 6 |
Requires PHP: 5.4
|
| 7 |
-
Stable tag: 2.
|
| 8 |
License: GPLv3
|
| 9 |
License URI: https://opensource.org/licenses/GPL-3.0
|
| 10 |
|
|
@@ -70,8 +70,12 @@ We have designed 29 of the most useful widgets to enhance your Elementor Page Bu
|
|
| 70 |
28. [Advanced Accordion](https://essential-addons.com/elementor/advanced-accordion/) - Add beautiful accordions in your pages, posts, and anywhere. Supports nested accordions.
|
| 71 |
29. [Progress Bar](https://essential-addons.com/elementor/progress-bar/) - Display progress bars with 4+ different styles
|
| 72 |
|
|
|
|
| 73 |
|
| 74 |
-
|
|
|
|
|
|
|
|
|
|
| 75 |
|
| 76 |
1. [Post Block (Flex)](https://essential-addons.com/elementor/post-block/) - Display your blog posts with variety of styles with the power of modern CSS Flexbox
|
| 77 |
2. [Lightbox & Modal](https://essential-addons.com/elementor/lightbox-modal/) - Create Modal Popup which opens after certain actions.
|
|
@@ -101,6 +105,13 @@ We have designed 29 of the most useful widgets to enhance your Elementor Page Bu
|
|
| 101 |
26. [Logo Carousel](https://essential-addons.com/elementor/logo-carousel/) - Highlight brands/product logos in carousel
|
| 102 |
27. [Protected Content](https://essential-addons.com/elementor/protected-content/) - Lock your content with password and allow only selected people to see it
|
| 103 |
28. [Offcanvas Content](https://essential-addons.com/elementor/offcanvas-content/) - Display content in off canvas and show them with button/element click
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 104 |
|
| 105 |
More coming soon (weekly update) ...
|
| 106 |
|
|
@@ -158,6 +169,14 @@ Your existing elements/content will work with premium version. So you won't lose
|
|
| 158 |
|
| 159 |
== Changelog ==
|
| 160 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 161 |
= 2.8.7 =
|
| 162 |
|
| 163 |
- Added : Version rollback option
|
| 2 |
Contributors: wpdevteam, Codetic, re_enter_rupok, Asif2BD, robicse11128, priyomukul, mahfuz01, mdsabuz, manik08cse
|
| 3 |
Tags: elementor, elements, addons, elementor addon, elementor widget, page builder, builder, visual editor, wordpress page builder, elementor form
|
| 4 |
Requires at least: 4.0
|
| 5 |
+
Tested up to: 5.0.3
|
| 6 |
Requires PHP: 5.4
|
| 7 |
+
Stable tag: 2.9.0
|
| 8 |
License: GPLv3
|
| 9 |
License URI: https://opensource.org/licenses/GPL-3.0
|
| 10 |
|
| 70 |
28. [Advanced Accordion](https://essential-addons.com/elementor/advanced-accordion/) - Add beautiful accordions in your pages, posts, and anywhere. Supports nested accordions.
|
| 71 |
29. [Progress Bar](https://essential-addons.com/elementor/progress-bar/) - Display progress bars with 4+ different styles
|
| 72 |
|
| 73 |
+
Extensions:
|
| 74 |
|
| 75 |
+
1. [Particle Effect](https://essential-addons.com/elementor/particle-effect/) - Add creative particle effects to your section, your visitors will love it.
|
| 76 |
+
|
| 77 |
+
|
| 78 |
+
### More elements (30+) on [Premium Version](https://essential-addons.com/elementor/buy.php)
|
| 79 |
|
| 80 |
1. [Post Block (Flex)](https://essential-addons.com/elementor/post-block/) - Display your blog posts with variety of styles with the power of modern CSS Flexbox
|
| 81 |
2. [Lightbox & Modal](https://essential-addons.com/elementor/lightbox-modal/) - Create Modal Popup which opens after certain actions.
|
| 105 |
26. [Logo Carousel](https://essential-addons.com/elementor/logo-carousel/) - Highlight brands/product logos in carousel
|
| 106 |
27. [Protected Content](https://essential-addons.com/elementor/protected-content/) - Lock your content with password and allow only selected people to see it
|
| 107 |
28. [Offcanvas Content](https://essential-addons.com/elementor/offcanvas-content/) - Display content in off canvas and show them with button/element click
|
| 108 |
+
29. [Advanced Menu](https://essential-addons.com/elementor/advanced-menu/) - Use advanced navigation menu anywhere. Choose design from different skins and customize.
|
| 109 |
+
30. [Image Scroller](https://essential-addons.com/elementor/image-scroller/) - Show your panaromic or long height images within image scroller widget.
|
| 110 |
+
|
| 111 |
+
Extensions:
|
| 112 |
+
|
| 113 |
+
1. [Parallax Scrolling](https://essential-addons.com/elementor/parallax-scrolling/) - Add creative parallax scrolling effects to your section, your visitors will love it.
|
| 114 |
+
|
| 115 |
|
| 116 |
More coming soon (weekly update) ...
|
| 117 |
|
| 169 |
|
| 170 |
== Changelog ==
|
| 171 |
|
| 172 |
+
= 2.9.0 =
|
| 173 |
+
|
| 174 |
+
- Added : Section Particles effect
|
| 175 |
+
- Added: Filterable gallery capability to remove All label
|
| 176 |
+
- Enhancement : Product Grid element with more features
|
| 177 |
+
- Fixed: invalid calc funciton in progressbar
|
| 178 |
+
- Few minor bugfix and improvements
|
| 179 |
+
|
| 180 |
= 2.8.7 =
|
| 181 |
|
| 182 |
- Added : Version rollback option
|
