Press Elements – Widgets for Elementor - Version 1.6.0

Version Description

General

  • Release "Post Featured Image" as a free widget!!

New Widgets

  • Image Accordion (Pro)
  • Before After Effect (Pro)
  • Notes (Pro)
Download this release

Release Info

Developer ramiy
Plugin Icon 128x128 Press Elements – Widgets for Elementor
Version 1.6.0
Comparing to
See all releases

Code changes from version 1.4.0 to 1.6.0

Files changed (174) hide show
  1. assets/css/before-after-effect.css +182 -0
  2. assets/css/image-accordion.css +35 -0
  3. assets/css/notes.css +18 -0
  4. assets/js/before-after-effect.js +22 -0
  5. language/press-elements.pot +464 -160
  6. {freemius → libs/freemius}/LICENSE.txt +0 -0
  7. {freemius → libs/freemius}/README.md +0 -0
  8. {freemius → libs/freemius}/assets/css/admin/account.css +0 -0
  9. {freemius → libs/freemius}/assets/css/admin/add-ons.css +0 -0
  10. {freemius → libs/freemius}/assets/css/admin/checkout.css +0 -0
  11. {freemius → libs/freemius}/assets/css/admin/common.css +0 -0
  12. {freemius → libs/freemius}/assets/css/admin/connect.css +0 -0
  13. {freemius → libs/freemius}/assets/css/admin/deactivation-feedback.css +0 -0
  14. {freemius → libs/freemius}/assets/css/admin/debug.css +0 -0
  15. {freemius → libs/freemius}/assets/css/admin/dialog-boxes.css +0 -0
  16. {freemius → libs/freemius}/assets/css/admin/license-activation.css +0 -0
  17. {freemius → libs/freemius}/assets/css/common.css +0 -0
  18. {freemius → libs/freemius}/assets/img/plugin-icon.png +0 -0
  19. {freemius → libs/freemius}/assets/img/press-elements.png +0 -0
  20. {freemius → libs/freemius}/assets/index.php +0 -0
  21. {freemius → libs/freemius}/assets/js/nojquery.ba-postmessage.js +0 -0
  22. {freemius → libs/freemius}/assets/js/nojquery.ba-postmessage.min.js +0 -0
  23. {freemius → libs/freemius}/assets/js/postmessage.js +0 -0
  24. {freemius → libs/freemius}/assets/scss/_colors.scss +0 -0
  25. {freemius → libs/freemius}/assets/scss/_functions.scss +0 -0
  26. {freemius → libs/freemius}/assets/scss/_load.scss +0 -0
  27. {freemius → libs/freemius}/assets/scss/_mixins.scss +0 -0
  28. {freemius → libs/freemius}/assets/scss/_start.scss +0 -0
  29. {freemius → libs/freemius}/assets/scss/_vars.scss +0 -0
  30. {freemius → libs/freemius}/assets/scss/admin/_deactivation-feedback.scss +0 -0
  31. {freemius → libs/freemius}/assets/scss/admin/_license-activation.scss +0 -0
  32. {freemius → libs/freemius}/assets/scss/admin/_license-key-resend.scss +0 -0
  33. {freemius → libs/freemius}/assets/scss/admin/_modal-common.scss +0 -0
  34. {freemius → libs/freemius}/assets/scss/admin/account.scss +0 -0
  35. {freemius → libs/freemius}/assets/scss/admin/add-ons.scss +0 -0
  36. {freemius → libs/freemius}/assets/scss/admin/checkout.scss +0 -0
  37. {freemius → libs/freemius}/assets/scss/admin/common.scss +0 -0
  38. {freemius → libs/freemius}/assets/scss/admin/connect.scss +0 -0
  39. {freemius → libs/freemius}/assets/scss/admin/debug.scss +0 -0
  40. {freemius → libs/freemius}/assets/scss/admin/dialog-boxes.scss +0 -0
  41. {freemius → libs/freemius}/config.php +0 -0
  42. {freemius → libs/freemius}/includes/class-freemius-abstract.php +0 -0
  43. {freemius → libs/freemius}/includes/class-freemius.php +0 -0
  44. {freemius → libs/freemius}/includes/class-fs-api.php +0 -0
  45. {freemius → libs/freemius}/includes/class-fs-logger.php +0 -0
  46. {freemius → libs/freemius}/includes/class-fs-plugin-updater.php +0 -0
  47. {freemius → libs/freemius}/includes/class-fs-security.php +0 -0
  48. {freemius → libs/freemius}/includes/debug/class-fs-debug-bar-panel.php +0 -0
  49. {freemius → libs/freemius}/includes/debug/debug-bar-start.php +0 -0
  50. {freemius → libs/freemius}/includes/debug/index.php +0 -0
  51. {freemius → libs/freemius}/includes/entities/class-fs-billing.php +0 -0
  52. {freemius → libs/freemius}/includes/entities/class-fs-entity.php +0 -0
  53. {freemius → libs/freemius}/includes/entities/class-fs-payment.php +0 -0
  54. {freemius → libs/freemius}/includes/entities/class-fs-plugin-info.php +0 -0
  55. {freemius → libs/freemius}/includes/entities/class-fs-plugin-license.php +0 -0
  56. {freemius → libs/freemius}/includes/entities/class-fs-plugin-plan.php +0 -0
  57. {freemius → libs/freemius}/includes/entities/class-fs-plugin-tag.php +0 -0
  58. {freemius → libs/freemius}/includes/entities/class-fs-plugin.php +0 -0
  59. {freemius → libs/freemius}/includes/entities/class-fs-pricing.php +0 -0
  60. {freemius → libs/freemius}/includes/entities/class-fs-scope-entity.php +0 -0
  61. {freemius → libs/freemius}/includes/entities/class-fs-site.php +0 -0
  62. {freemius → libs/freemius}/includes/entities/class-fs-subscription.php +0 -0
  63. {freemius → libs/freemius}/includes/entities/class-fs-user.php +0 -0
  64. {freemius → libs/freemius}/includes/entities/index.php +0 -0
  65. {freemius → libs/freemius}/includes/fs-core-functions.php +0 -0
  66. {freemius → libs/freemius}/includes/fs-essential-functions.php +0 -0
  67. {freemius → libs/freemius}/includes/fs-plugin-info-dialog.php +0 -0
  68. {freemius → libs/freemius}/includes/i18n.php +0 -0
  69. {freemius → libs/freemius}/includes/index.php +0 -0
  70. {freemius → libs/freemius}/includes/l10n.php +0 -0
  71. {freemius → libs/freemius}/includes/managers/class-fs-admin-menu-manager.php +0 -0
  72. {freemius → libs/freemius}/includes/managers/class-fs-admin-notice-manager.php +0 -0
  73. {freemius → libs/freemius}/includes/managers/class-fs-cache-manager.php +0 -0
  74. {freemius → libs/freemius}/includes/managers/class-fs-key-value-storage.php +0 -0
  75. {freemius → libs/freemius}/includes/managers/class-fs-license-manager.php +0 -0
  76. {freemius → libs/freemius}/includes/managers/class-fs-option-manager.php +0 -0
  77. {freemius → libs/freemius}/includes/managers/class-fs-plan-manager.php +0 -0
  78. {freemius → libs/freemius}/includes/managers/class-fs-plugin-manager.php +0 -0
  79. {freemius → libs/freemius}/includes/managers/index.php +0 -0
  80. {freemius → libs/freemius}/includes/sdk/Exceptions/ArgumentNotExistException.php +0 -0
  81. {freemius → libs/freemius}/includes/sdk/Exceptions/EmptyArgumentException.php +0 -0
  82. {freemius → libs/freemius}/includes/sdk/Exceptions/Exception.php +0 -0
  83. {freemius → libs/freemius}/includes/sdk/Exceptions/InvalidArgumentException.php +0 -0
  84. {freemius → libs/freemius}/includes/sdk/Exceptions/OAuthException.php +0 -0
  85. {freemius → libs/freemius}/includes/sdk/Exceptions/index.php +0 -0
  86. {freemius → libs/freemius}/includes/sdk/Freemius.php +0 -0
  87. {freemius → libs/freemius}/includes/sdk/FreemiusBase.php +0 -0
  88. {freemius → libs/freemius}/includes/sdk/LICENSE.txt +0 -0
  89. {freemius → libs/freemius}/includes/sdk/index.php +0 -0
  90. {freemius → libs/freemius}/includes/supplements/fs-essential-functions-1.1.7.1.php +0 -0
  91. {freemius → libs/freemius}/includes/supplements/index.php +0 -0
  92. {freemius → libs/freemius}/index.php +0 -0
  93. {freemius → libs/freemius}/languages/freemius-da_DK.mo +0 -0
  94. {freemius → libs/freemius}/languages/freemius-da_DK.po +0 -0
  95. {freemius → libs/freemius}/languages/freemius-en.mo +0 -0
  96. {freemius → libs/freemius}/languages/freemius-en.po +0 -0
  97. {freemius → libs/freemius}/languages/freemius-he.mo +0 -0
  98. {freemius → libs/freemius}/languages/freemius-he.po +0 -0
  99. {freemius → libs/freemius}/languages/freemius-it_IT.mo +0 -0
  100. {freemius → libs/freemius}/languages/freemius-it_IT.po +0 -0
  101. {freemius → libs/freemius}/languages/freemius-ja_JP.mo +0 -0
  102. {freemius → libs/freemius}/languages/freemius-ja_JP.po +0 -0
  103. {freemius → libs/freemius}/languages/freemius.pot +0 -0
  104. {freemius → libs/freemius}/languages/index.php +0 -0
  105. {freemius → libs/freemius}/require.php +0 -0
  106. {freemius → libs/freemius}/start.php +0 -0
  107. {freemius → libs/freemius}/templates/account.php +0 -0
  108. {freemius → libs/freemius}/templates/add-ons.php +0 -0
  109. {freemius → libs/freemius}/templates/add-trial-to-pricing.php +0 -0
  110. {freemius → libs/freemius}/templates/admin-notice.php +0 -0
  111. {freemius → libs/freemius}/templates/all-admin-notice.php +0 -0
  112. {freemius → libs/freemius}/templates/billing.php +0 -0
  113. {freemius → libs/freemius}/templates/checkout-legacy.php +0 -0
  114. {freemius → libs/freemius}/templates/checkout.php +0 -0
  115. {freemius → libs/freemius}/templates/connect.php +0 -0
  116. {freemius → libs/freemius}/templates/contact.php +0 -0
  117. {freemius → libs/freemius}/templates/debug.php +0 -0
  118. {freemius → libs/freemius}/templates/debug/api-calls.php +0 -0
  119. {freemius → libs/freemius}/templates/debug/index.php +0 -0
  120. {freemius → libs/freemius}/templates/debug/logger.php +0 -0
  121. {freemius → libs/freemius}/templates/debug/plugins-themes-sync.php +0 -0
  122. {freemius → libs/freemius}/templates/debug/scheduled-crons.php +0 -0
  123. {freemius → libs/freemius}/templates/email.php +0 -0
  124. {freemius → libs/freemius}/templates/firewall-issues-js.php +0 -0
  125. {freemius → libs/freemius}/templates/forms/deactivation/contact.php +0 -0
  126. {freemius → libs/freemius}/templates/forms/deactivation/form.php +0 -0
  127. {freemius → libs/freemius}/templates/forms/deactivation/index.php +0 -0
  128. {freemius → libs/freemius}/templates/forms/deactivation/retry-skip.php +0 -0
  129. {freemius → libs/freemius}/templates/forms/index.php +0 -0
  130. {freemius → libs/freemius}/templates/forms/license-activation.php +0 -0
  131. {freemius → libs/freemius}/templates/forms/optout.php +0 -0
  132. {freemius → libs/freemius}/templates/forms/resend-key.php +0 -0
  133. {freemius → libs/freemius}/templates/forms/trial-start.php +0 -0
  134. {freemius → libs/freemius}/templates/index.php +0 -0
  135. {freemius → libs/freemius}/templates/plugin-icon.php +0 -0
  136. {freemius → libs/freemius}/templates/plugin-info/description.php +0 -0
  137. {freemius → libs/freemius}/templates/plugin-info/features.php +0 -0
  138. {freemius → libs/freemius}/templates/plugin-info/index.php +0 -0
  139. {freemius → libs/freemius}/templates/plugin-info/screenshots.php +0 -0
  140. {freemius → libs/freemius}/templates/powered-by.php +0 -0
  141. {freemius → libs/freemius}/templates/pricing.php +0 -0
  142. {freemius → libs/freemius}/templates/sticky-admin-notice-js.php +0 -0
  143. libs/twentytwenty/jquery.event.move.js +586 -0
  144. libs/twentytwenty/jquery.twentytwenty.js +105 -0
  145. press-elements-admin.php +36 -9
  146. press-elements-freemius.php +19 -3
  147. press-elements-plugin.php +173 -156
  148. press-elements.php +21 -13
  149. readme.txt +48 -28
  150. screenshot-10.png +0 -0
  151. screenshot-11.png +0 -0
  152. screenshot-12.png +0 -0
  153. screenshot-13.png +0 -0
  154. screenshot-14.png +0 -0
  155. screenshot-7.png +0 -0
  156. screenshot-8.png +0 -0
  157. screenshot-9.png +0 -0
  158. widgets/advanced-custom-fields.php +27 -21
  159. widgets/before-after-effect.php +77 -0
  160. widgets/flickr.php +66 -0
  161. widgets/gravatar.php +6 -21
  162. widgets/image-accordion.php +73 -0
  163. widgets/notes.php +70 -0
  164. widgets/pinterest.php +105 -0
  165. widgets/post-author.php +15 -7
  166. widgets/post-custom-field.php +6 -21
  167. widgets/post-date.php +11 -3
  168. widgets/post-excerpt.php +12 -4
  169. widgets/post-featured-image.php +362 -74
  170. widgets/post-terms.php +1 -1
  171. widgets/post-title.php +12 -4
  172. widgets/site-description.php +3 -3
  173. widgets/site-logo.php +3 -3
  174. widgets/site-title.php +3 -3
assets/css/before-after-effect.css ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Container */
2
+
3
+ .twentytwenty-container {
4
+ position: relative;
5
+ overflow: hidden;
6
+ z-index: 0;
7
+ -webkit-box-sizing: content-box;
8
+ -moz-box-sizing: content-box;
9
+ box-sizing: content-box;
10
+ -webkit-user-select: none;
11
+ -moz-user-select: none;
12
+ }
13
+ .twentytwenty-container * {
14
+ -webkit-box-sizing: content-box;
15
+ -moz-box-sizing: content-box;
16
+ box-sizing: content-box;
17
+ }
18
+ .twentytwenty-container img {
19
+ position: absolute;
20
+ top: 0;
21
+ display: block;
22
+ max-width: 100%;
23
+ }
24
+ .twentytwenty-container.active .twentytwenty-overlay .twentytwenty-before-label,
25
+ .twentytwenty-container.active .twentytwenty-overlay .twentytwenty-after-label,
26
+ .twentytwenty-container.active :hover.twentytwenty-overlay .twentytwenty-before-label,
27
+ .twentytwenty-container.active :hover.twentytwenty-overlay .twentytwenty-after-label {
28
+ opacity: 0;
29
+ }
30
+
31
+ /* Overlay */
32
+
33
+ .twentytwenty-overlay {
34
+ position: absolute;
35
+ top: 0;
36
+ width: 100%;
37
+ height: 100%;
38
+ z-index: 25;
39
+ -webkit-transition-duration: 0.5s;
40
+ -moz-transition-duration: 0.5s;
41
+ transition-duration: 0.5s;
42
+
43
+ -webkit-transition-property: background;
44
+ -moz-transition-property: background;
45
+ transition-property: background;
46
+ }
47
+ .twentytwenty-overlay:hover .twentytwenty-after-label {
48
+ opacity: 1;
49
+ }
50
+ .twentytwenty-overlay:hover .twentytwenty-before-label {
51
+ opacity: 1;
52
+ }
53
+
54
+ /* Title / Label */
55
+
56
+ .twentytwenty-before {
57
+ z-index: 20;
58
+ }
59
+ .twentytwenty-after {
60
+ z-index: 10;
61
+ }
62
+ .twentytwenty-before-label,
63
+ .twentytwenty-after-label {
64
+ position: absolute;
65
+ top: 0;
66
+ width: 100%;
67
+ height: 100%;
68
+ opacity: 0;
69
+ -webkit-transition-duration: 0.5s;
70
+ -moz-transition-duration: 0.5s;
71
+ transition-duration: 0.5s;
72
+ -webkit-transition-property: opacity;
73
+ -moz-transition-property: opacity;
74
+ transition-property: opacity;
75
+ }
76
+ .twentytwenty-before-label:before,
77
+ .twentytwenty-after-label:before {
78
+ position: absolute;
79
+ }
80
+ .twentytwenty-horizontal .twentytwenty-before-label:before {
81
+ left: 0;
82
+ }
83
+ .twentytwenty-horizontal .twentytwenty-after-label:before {
84
+ right: 0;
85
+ }
86
+ .twentytwenty-vertical .twentytwenty-before-label:before {
87
+ top: 0;
88
+ }
89
+ .twentytwenty-vertical .twentytwenty-after-label:before {
90
+ bottom: 0;
91
+ }
92
+
93
+ /* Handle */
94
+
95
+ .twentytwenty-horizontal .twentytwenty-handle:before,
96
+ .twentytwenty-horizontal .twentytwenty-handle:after,
97
+ .twentytwenty-vertical .twentytwenty-handle:before,
98
+ .twentytwenty-vertical .twentytwenty-handle:after {
99
+ content: " ";
100
+ display: block;
101
+ position: absolute;
102
+ z-index: 30;
103
+ -webkit-box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
104
+ -moz-box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
105
+ box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
106
+ }
107
+ .twentytwenty-horizontal .twentytwenty-handle:before,
108
+ .twentytwenty-horizontal .twentytwenty-handle:after {
109
+ height: 9999px;
110
+ left: 50%;
111
+ }
112
+ .twentytwenty-vertical .twentytwenty-handle:before,
113
+ .twentytwenty-vertical .twentytwenty-handle:after {
114
+ width: 9999px;
115
+ top: 50%;
116
+ }
117
+ .twentytwenty-handle {
118
+ height: 40px;
119
+ width: 40px;
120
+ position: absolute;
121
+ left: 50%;
122
+ top: 50%;
123
+ margin-left: -22px;
124
+ margin-top: -22px;
125
+ border-style: solid;
126
+ z-index: 40;
127
+ cursor: pointer;
128
+ -webkit-box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
129
+ -moz-box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
130
+ box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
131
+ }
132
+ .twentytwenty-horizontal .twentytwenty-handle:before {
133
+ bottom: 50%;
134
+ margin-bottom: 22px;
135
+ }
136
+ .twentytwenty-horizontal .twentytwenty-handle:after {
137
+ top: 50%;
138
+ margin-top: 22px;
139
+ }
140
+ .twentytwenty-vertical .twentytwenty-handle:before {
141
+ left: 50%;
142
+ margin-left: 22px;
143
+ }
144
+ .twentytwenty-vertical .twentytwenty-handle:after {
145
+ right: 50%;
146
+ margin-right: 22px;
147
+ }
148
+ .twentytwenty-left-arrow, .twentytwenty-right-arrow,
149
+ .twentytwenty-up-arrow, .twentytwenty-down-arrow {
150
+ width: 0;
151
+ height: 0;
152
+ border: 6px inset transparent;
153
+ position: absolute;
154
+ }
155
+ .twentytwenty-left-arrow, .twentytwenty-right-arrow {
156
+ top: 50%;
157
+ margin-top: -6px;
158
+ }
159
+ .twentytwenty-up-arrow, .twentytwenty-down-arrow {
160
+ left: 50%;
161
+ margin-left: -6px;
162
+ }
163
+ .twentytwenty-left-arrow {
164
+ border-right: 6px solid white;
165
+ left: 50%;
166
+ margin-left: -17px;
167
+ }
168
+ .twentytwenty-right-arrow {
169
+ border-left: 6px solid white;
170
+ right: 50%;
171
+ margin-right: -17px;
172
+ }
173
+ .twentytwenty-up-arrow {
174
+ border-bottom: 6px solid white;
175
+ top: 50%;
176
+ margin-top: -17px;
177
+ }
178
+ .twentytwenty-down-arrow {
179
+ border-top: 6px solid white;
180
+ bottom: 50%;
181
+ margin-bottom: -17px;
182
+ }
assets/css/image-accordion.css ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .press-elements-image-accordion {
2
+ width: 100%;
3
+ overflow: hidden;
4
+ margin: 0 auto;
5
+ }
6
+ .press-elements-image-accordion ul {
7
+ width: 100%;
8
+ display: table;
9
+ table-layout: fixed;
10
+ margin: 0;
11
+ padding: 0;
12
+ }
13
+ .press-elements-image-accordion ul li {
14
+ display: table-cell;
15
+ position: relative;
16
+ background-repeat: no-repeat;
17
+ background-size: cover;
18
+ }
19
+ .press-elements-image-accordion ul li div {
20
+ display: none;
21
+ overflow: hidden;
22
+ opacity: 0;
23
+ transition-delay: 1s;
24
+ }
25
+ .press-elements-image-accordion ul li div * {
26
+ position: relative;
27
+ width: 100%;
28
+ margin: 0;
29
+ overflow: hidden;
30
+ }
31
+ .press-elements-image-accordion ul:hover li:hover div {
32
+ display: inline-block;
33
+ opacity: 1;
34
+ transition: opacity 500ms;
35
+ }
assets/css/notes.css ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .press-elements-notes {
2
+ position: relative;
3
+ display: inline-block;
4
+ vertical-align: top;
5
+ width: 100%;
6
+ max-width: 100%;
7
+ }
8
+ .press-elements-notes:before {
9
+ display: block;
10
+ content: "";
11
+ position: absolute;
12
+ top: -15px;
13
+ width: 50%;
14
+ height: 30px;
15
+ margin: 0 auto;
16
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
17
+ border-radius: 6px/20px 0;
18
+ }
assets/js/before-after-effect.js ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ( function( $ ) {
2
+
3
+ var PressElementsBeforeAfterEffect = function( $scope, $ ) {
4
+
5
+ // Apply the dragging event
6
+ $scope.find( '.twentytwenty-container' ).each( function() {
7
+
8
+ $(this).twentytwenty({
9
+ default_offset_pct: $(this).data( 'starting-position' ),
10
+ orientation: $(this).data( 'orientation' )
11
+ });
12
+
13
+ });
14
+
15
+ }
16
+
17
+ // Make sure you run this code under Elementor.
18
+ $( window ).on( 'elementor/frontend/init', function() {
19
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/before-after-effect.default', PressElementsBeforeAfterEffect );
20
+ } );
21
+
22
+ } )( jQuery );
language/press-elements.pot CHANGED
@@ -15,11 +15,11 @@ msgstr ""
15
  "X-Poedit-SearchPathExcluded-0: *.js\n"
16
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
 
18
- #: press-elements-admin.php:119, press-elements-admin.php:257
19
  msgid "Press Elements - Widgets for Elementor"
20
  msgstr ""
21
 
22
- #: press-elements-admin.php:121, press-elements.php:155, press-elements.php:197
23
  msgid "Press Elements"
24
  msgstr ""
25
 
@@ -27,475 +27,783 @@ msgstr ""
27
  msgid "About"
28
  msgstr ""
29
 
30
- #: press-elements-admin.php:165, press-elements-admin.php:635
31
  msgid "Getting Started"
32
  msgstr ""
33
 
34
- #: press-elements-admin.php:167, press-elements-admin.php:789
35
  msgid "Changelog"
36
  msgstr ""
37
 
38
  #: press-elements-admin.php:169
39
- msgid "Pro Version"
40
  msgstr ""
41
 
42
- #: press-elements-admin.php:261
43
- msgid "Easy-to-use widgets that help you display and design your content using Elementor page builder."
44
  msgstr ""
45
 
46
- #: press-elements-admin.php:269
47
- msgid "Press Elements combines the simplicity of Elementor with the efficiency of the built-in WordPress theme components."
48
  msgstr ""
49
 
50
- #: press-elements-admin.php:281
51
- msgid "WordPress Elements"
 
 
 
 
52
  msgstr ""
53
 
54
  #: press-elements-admin.php:285
55
- msgid "When you create a new post (or a page) on WordPress, you choose a title, write an excerpt, select a publish date, add an author, choose featured image, select several taxonomies and maybe you define some custom fields."
56
  msgstr ""
57
 
58
  #: press-elements-admin.php:289
59
- msgid "In the Elementor page builder you can't display and style those components. You need to repeat the process and manually add a title, write the excerpt and add images."
60
  msgstr ""
61
 
62
  #: press-elements-admin.php:293
63
- msgid "That's where Press Elements comes in handy. The plugin adds smart widgets that let you display those post components. Now you can drag a \"Post Title\" widget and style it your way. The widget will automatically insert the title used as the post title. Same applies for all the other post components."
64
  msgstr ""
65
 
66
  #: press-elements-admin.php:297
67
- msgid "Dynamic Content"
68
  msgstr ""
69
 
70
  #: press-elements-admin.php:301
71
- msgid "Regular Elementor widgets save the data as hard-coded content in the database. To change something you need to open the page builder and manually change the element inside the builder. Updating post titles, excerpts, authors and other WordPress Element won't affect the builder."
72
  msgstr ""
73
 
74
  #: press-elements-admin.php:305
75
- msgid "Press Elements uses dynamic content architecture. It doesn't save the title and other element as hard-coded content. It generates them on-the-fly. Just like the WordPress theme system."
76
  msgstr ""
77
 
78
  #: press-elements-admin.php:309
79
- msgid "When you change post titles and other post elements from your WordPress dashboard (outside of Elementor), they will be automatically updated in the content area and in the page builder."
80
  msgstr ""
81
 
82
  #: press-elements-admin.php:313
83
- msgid "For example, you can bulk edit several posts from your sites dashboard to change the author, post that use \"Post Author\" widget will be automatically updates with the new data."
84
  msgstr ""
85
 
86
  #: press-elements-admin.php:317
87
- msgid "Template Design"
88
  msgstr ""
89
 
90
  #: press-elements-admin.php:321
91
- msgid "When using page builders, you need to create all the page element for each page over and over again. Currently you can't design single page templates and apply the design on the post. When you use the template system you need to manually change titles and images for each post/page."
92
  msgstr ""
93
 
94
  #: press-elements-admin.php:325
95
- msgid "With Press Elements you can create custom designs with post elements and save them as template. When you apply the template on other posts, it will inherite the data from the new post. No more manual updates!"
96
  msgstr ""
97
 
98
  #: press-elements-admin.php:329
99
- msgid "You don't need to hire developers to generate custom page templates - with Press Elements you can do it using a simple drag & drop interface! Now you can design different templates for different blog posts, pages and other Post Types. When creating new posts, load your predefined templates from your template library."
100
  msgstr ""
101
 
102
  #: press-elements-admin.php:333
103
- msgid "Developers use theme-functions to generate themes. With Press Elements you can use Elementor widgets to display and design your post elements! How cool is that?!"
104
  msgstr ""
105
 
106
  #: press-elements-admin.php:337
 
 
 
 
107
  msgid "Included Widgets"
108
  msgstr ""
109
 
110
- #: press-elements-admin.php:341, press-elements-admin.php:393
111
  msgid "Site Elements:"
112
  msgstr ""
113
 
114
- #: press-elements-admin.php:345, widgets/site-title.php:33, widgets/site-title.php:49, widgets/site-title.php:138
115
  msgid "Site Title"
116
  msgstr ""
117
 
118
- #: press-elements-admin.php:347, widgets/site-description.php:33, widgets/site-description.php:49, widgets/site-description.php:138
119
  msgid "Site Description"
120
  msgstr ""
121
 
122
- #: press-elements-admin.php:349, widgets/site-logo.php:32, widgets/site-logo.php:48, widgets/site-logo.php:145
123
  msgid "Site Logo"
124
  msgstr ""
125
 
126
- #: press-elements-admin.php:351, widgets/site-counters.php:33, widgets/site-counters.php:62
127
  msgid "Site Counters"
128
  msgstr ""
129
 
130
- #: press-elements-admin.php:355
131
  msgid "Post Elements:"
132
  msgstr ""
133
 
134
- #: press-elements-admin.php:359
135
  msgid "Post Title"
136
  msgstr ""
137
 
138
- #: press-elements-admin.php:361
139
  msgid "Post Excerpt"
140
  msgstr ""
141
 
142
- #: press-elements-admin.php:363
143
  msgid "Post Date"
144
  msgstr ""
145
 
146
- #: press-elements-admin.php:365
147
  msgid "Post Author"
148
  msgstr ""
149
 
150
- #: press-elements-admin.php:367
151
  msgid "Post Terms"
152
  msgstr ""
153
 
154
- #: press-elements-admin.php:369
155
  msgid "Post Featured Image (Pro)"
156
  msgstr ""
157
 
158
- #: press-elements-admin.php:371
159
  msgid "Post Custom Field (Pro)"
160
  msgstr ""
161
 
162
- #: press-elements-admin.php:373
163
  msgid "Post Comments"
164
  msgstr ""
165
 
166
- #: press-elements-admin.php:377, press-elements-admin.php:415
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  msgid "Integrations:"
168
  msgstr ""
169
 
170
- #: press-elements-admin.php:381
171
  msgid "Advanced Custom Fields (Pro)"
172
  msgstr ""
173
 
174
- #: press-elements-admin.php:383
175
  msgid "Gravatar (Pro)"
176
  msgstr ""
177
 
178
- #: press-elements-admin.php:389
 
 
 
 
 
 
 
 
179
  msgid "Coming Soon"
180
  msgstr ""
181
 
182
- #: press-elements-admin.php:397
183
  msgid "Login Form"
184
  msgstr ""
185
 
186
- #: press-elements-admin.php:399
187
  msgid "Search Form"
188
  msgstr ""
189
 
190
- #: press-elements-admin.php:403
191
  msgid "Comments Elements:"
192
  msgstr ""
193
 
194
- #: press-elements-admin.php:407
195
  msgid "Comments Form"
196
  msgstr ""
197
 
198
- #: press-elements-admin.php:409
199
  msgid "Comments List"
200
  msgstr ""
201
 
202
- #: press-elements-admin.php:411
203
  msgid "Comments Pagination"
204
  msgstr ""
205
 
206
- #: press-elements-admin.php:419
207
- msgid "Flickr (Pro)"
208
- msgstr ""
209
-
210
- #: press-elements-admin.php:421
211
- msgid "Pinterest (Pro)"
212
  msgstr ""
213
 
214
- #: press-elements-admin.php:439, press-elements-admin.php:443
215
  msgid "Post edit screen with WordPress elements."
216
  msgstr ""
217
 
218
- #: press-elements-admin.php:457, press-elements-admin.php:461
219
  msgid "Elementor widgets for each site and post element."
220
  msgstr ""
221
 
222
- #: press-elements-admin.php:475, press-elements-admin.php:479
223
  msgid "Styling post title with a dedicated Elementor widget."
224
  msgstr ""
225
 
226
- #: press-elements-admin.php:493, press-elements-admin.php:497
227
  msgid "Display post custom fields."
228
  msgstr ""
229
 
230
- #: press-elements-admin.php:511, press-elements-admin.php:515
231
  msgid "Create your own author bio section."
232
  msgstr ""
233
 
234
- #: press-elements-admin.php:529, press-elements-admin.php:533
235
  msgid "Widgets for your site logo, site name and site description."
236
  msgstr ""
237
 
238
- #: press-elements-admin.php:547, press-elements-admin.php:551
239
  msgid "Site counters for Post Types, Taxonomies, Comments and Users."
240
  msgstr ""
241
 
242
- #: press-elements-admin.php:565, press-elements-admin.php:569
243
  msgid "Custom fields as text fields and images, and linking to other custom fields."
244
  msgstr ""
245
 
246
- #: press-elements-admin.php:583, press-elements-admin.php:587
247
  msgid "Display Gravatars based on an email address."
248
  msgstr ""
249
 
250
- #: press-elements-admin.php:639
 
 
 
 
 
 
 
 
251
  msgid "Welcome to Press Elements getting started guide."
252
  msgstr ""
253
 
254
- #: press-elements-admin.php:647
255
  msgid "Getting started with Press Elements is easy! We put together this quick start guide to help first time users of the plugin. Our goal is to get you up and running in no time. Let's begin!"
256
  msgstr ""
257
 
258
- #: press-elements-admin.php:659
259
  msgid "STEP 1: Create a new post"
260
  msgstr ""
261
 
262
- #: press-elements-admin.php:663
263
  msgid "Navigate to \"Posts\" > \"Add New\" to create a new post. Enter a post title, write an excerpt, select a featured image, set an author, select a publish date and publish the post."
264
  msgstr ""
265
 
266
- #: press-elements-admin.php:683
267
  msgid "STEP 2: Design your own template"
268
  msgstr ""
269
 
270
- #: press-elements-admin.php:687
271
  msgid "Click the \"Edit with Elementor\" button and start designing the page layout. Design a page header, footer, and the content area."
272
  msgstr ""
273
 
274
- #: press-elements-admin.php:691
275
  msgid "Use \"Press Elements\" widgets to display the post title, post excerpt, post date and the other fields used by WordPress. Don't forget to style those elements!"
276
  msgstr ""
277
 
278
- #: press-elements-admin.php:711
279
  msgid "STEP 3: Save the template"
280
  msgstr ""
281
 
282
- #: press-elements-admin.php:715
283
  msgid "Click on the \"Add Template\" button located at the bottom, and save the design. You will see the newly created template at the \"My Templates\" tab."
284
  msgstr ""
285
 
286
- #: press-elements-admin.php:719
287
  msgid "You can save several templates for blogs posts, pages, and other post types. Or even several templates for a particular post type."
288
  msgstr ""
289
 
290
- #: press-elements-admin.php:739
291
  msgid "STEP 4: Apply the design to new posts"
292
  msgstr ""
293
 
294
- #: press-elements-admin.php:743
295
  msgid "For each new post you create, load the desired template and apply it to the post. The post will enherite the design but the elements will be updated with the current post data."
296
  msgstr ""
297
 
298
- #: press-elements-admin.php:793
299
  msgid "Press Elements changelog."
300
  msgstr ""
301
 
302
- #: press-elements-admin.php:801
303
  msgid "The Press Elements plugin is developed continuasly, this is the full changelog."
304
  msgstr ""
305
 
306
- #: press-elements-admin.php:843
307
  msgid "No valid changelog was found."
308
  msgstr ""
309
 
310
- #: press-elements-plugin.php:141
311
  msgid "Site Elements"
312
  msgstr ""
313
 
314
- #: press-elements-plugin.php:157
315
  msgid "Post Elements"
316
  msgstr ""
317
 
318
- #: press-elements-plugin.php:173
319
- msgid "Integrations"
 
 
 
 
320
  msgstr ""
321
 
322
- #: press-elements.php:153
323
  msgid "\"%1$s\" requires \"%2$s\" to be installed and activated."
324
  msgstr ""
325
 
326
- #: press-elements.php:157, press-elements.php:199
327
  msgid "Elementor"
328
  msgstr ""
329
 
330
- #: press-elements.php:195
331
  msgid "\"%1$s\" requires \"%2$s\" version %3$s or greater."
332
  msgstr ""
333
 
334
- #: widgets/advanced-custom-fields.php:35, widgets/advanced-custom-fields.php:53, widgets/advanced-custom-fields.php:213
335
  msgid "Advanced Custom Fields"
336
  msgstr ""
337
 
338
- #: widgets/advanced-custom-fields.php:72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
339
  msgid "Field"
340
  msgstr ""
341
 
342
- #: widgets/advanced-custom-fields.php:81, widgets/post-custom-field.php:89
343
  msgid "Display As"
344
  msgstr ""
345
 
346
- #: widgets/advanced-custom-fields.php:84, widgets/post-custom-field.php:92
347
  msgid "Text"
348
  msgstr ""
349
 
350
- #: widgets/advanced-custom-fields.php:85, widgets/post-custom-field.php:93
351
  msgid "Image"
352
  msgstr ""
353
 
354
- #: widgets/advanced-custom-fields.php:94, widgets/gravatar.php:66, widgets/post-author.php:80, widgets/post-custom-field.php:102, widgets/post-date.php:81, widgets/post-excerpt.php:135, widgets/post-terms.php:79, widgets/post-title.php:68, widgets/site-counters.php:110, widgets/site-description.php:56, widgets/site-logo.php:63, widgets/site-title.php:56
355
  msgid "HTML Tag"
356
  msgstr ""
357
 
358
- #: widgets/advanced-custom-fields.php:97, widgets/gravatar.php:69, widgets/post-author.php:83, widgets/post-custom-field.php:105, widgets/post-date.php:84, widgets/post-excerpt.php:141, widgets/post-terms.php:82, widgets/post-title.php:71, widgets/site-counters.php:113, widgets/site-description.php:59, widgets/site-logo.php:66, widgets/site-title.php:59
359
  msgid "H1"
360
  msgstr ""
361
 
362
- #: widgets/advanced-custom-fields.php:98, widgets/gravatar.php:70, widgets/post-author.php:84, widgets/post-custom-field.php:106, widgets/post-date.php:85, widgets/post-excerpt.php:143, widgets/post-terms.php:83, widgets/post-title.php:72, widgets/site-counters.php:114, widgets/site-description.php:60, widgets/site-logo.php:67, widgets/site-title.php:60
363
  msgid "H2"
364
  msgstr ""
365
 
366
- #: widgets/advanced-custom-fields.php:99, widgets/gravatar.php:71, widgets/post-author.php:85, widgets/post-custom-field.php:107, widgets/post-date.php:86, widgets/post-excerpt.php:145, widgets/post-terms.php:84, widgets/post-title.php:73, widgets/site-counters.php:115, widgets/site-description.php:61, widgets/site-logo.php:68, widgets/site-title.php:61
367
  msgid "H3"
368
  msgstr ""
369
 
370
- #: widgets/advanced-custom-fields.php:100, widgets/gravatar.php:72, widgets/post-author.php:86, widgets/post-custom-field.php:108, widgets/post-date.php:87, widgets/post-excerpt.php:147, widgets/post-terms.php:85, widgets/post-title.php:74, widgets/site-counters.php:116, widgets/site-description.php:62, widgets/site-logo.php:69, widgets/site-title.php:62
371
  msgid "H4"
372
  msgstr ""
373
 
374
- #: widgets/advanced-custom-fields.php:101, widgets/gravatar.php:73, widgets/post-author.php:87, widgets/post-custom-field.php:109, widgets/post-date.php:88, widgets/post-excerpt.php:149, widgets/post-terms.php:86, widgets/post-title.php:75, widgets/site-counters.php:117, widgets/site-description.php:63, widgets/site-logo.php:70, widgets/site-title.php:63
375
  msgid "H5"
376
  msgstr ""
377
 
378
- #: widgets/advanced-custom-fields.php:102, widgets/gravatar.php:74, widgets/post-author.php:88, widgets/post-custom-field.php:110, widgets/post-date.php:89, widgets/post-excerpt.php:151, widgets/post-terms.php:87, widgets/post-title.php:76, widgets/site-counters.php:118, widgets/site-description.php:64, widgets/site-logo.php:71, widgets/site-title.php:64
379
  msgid "H6"
380
  msgstr ""
381
 
382
- #: widgets/advanced-custom-fields.php:103, widgets/gravatar.php:75, widgets/post-author.php:89, widgets/post-custom-field.php:111, widgets/post-date.php:90, widgets/post-excerpt.php:153, widgets/post-terms.php:88, widgets/post-title.php:77, widgets/site-counters.php:119, widgets/site-description.php:65, widgets/site-logo.php:72, widgets/site-title.php:65
383
  msgid "p"
384
  msgstr ""
385
 
386
- #: widgets/advanced-custom-fields.php:104, widgets/gravatar.php:76, widgets/post-author.php:90, widgets/post-custom-field.php:112, widgets/post-date.php:91, widgets/post-excerpt.php:155, widgets/post-terms.php:89, widgets/post-title.php:78, widgets/site-counters.php:120, widgets/site-description.php:66, widgets/site-logo.php:73, widgets/site-title.php:66
387
  msgid "div"
388
  msgstr ""
389
 
390
- #: widgets/advanced-custom-fields.php:105, widgets/gravatar.php:77, widgets/post-author.php:91, widgets/post-custom-field.php:113, widgets/post-date.php:92, widgets/post-excerpt.php:157, widgets/post-terms.php:90, widgets/post-title.php:79, widgets/site-counters.php:121, widgets/site-description.php:67, widgets/site-logo.php:74, widgets/site-title.php:67
391
  msgid "span"
392
  msgstr ""
393
 
394
- #: widgets/advanced-custom-fields.php:114, widgets/gravatar.php:86, widgets/post-author.php:100, widgets/post-custom-field.php:122, widgets/post-date.php:101, widgets/post-excerpt.php:175, widgets/post-featured-image.php:88, widgets/post-terms.php:99, widgets/post-title.php:88, widgets/site-counters.php:130, widgets/site-description.php:76, widgets/site-logo.php:83, widgets/site-title.php:76
395
  msgid "Alignment"
396
  msgstr ""
397
 
398
- #: widgets/advanced-custom-fields.php:118, widgets/gravatar.php:90, widgets/post-author.php:104, widgets/post-custom-field.php:126, widgets/post-date.php:105, widgets/post-excerpt.php:183, widgets/post-featured-image.php:92, widgets/post-terms.php:103, widgets/post-title.php:92, widgets/site-counters.php:134, widgets/site-description.php:80, widgets/site-logo.php:87, widgets/site-title.php:80
399
  msgid "Left"
400
  msgstr ""
401
 
402
- #: widgets/advanced-custom-fields.php:122, widgets/gravatar.php:94, widgets/post-author.php:108, widgets/post-custom-field.php:130, widgets/post-date.php:109, widgets/post-excerpt.php:191, widgets/post-featured-image.php:96, widgets/post-terms.php:107, widgets/post-title.php:96, widgets/site-counters.php:138, widgets/site-description.php:84, widgets/site-logo.php:91, widgets/site-title.php:84
403
  msgid "Center"
404
  msgstr ""
405
 
406
- #: widgets/advanced-custom-fields.php:126, widgets/gravatar.php:98, widgets/post-author.php:112, widgets/post-custom-field.php:134, widgets/post-date.php:113, widgets/post-excerpt.php:199, widgets/post-featured-image.php:100, widgets/post-terms.php:111, widgets/post-title.php:100, widgets/site-counters.php:142, widgets/site-description.php:88, widgets/site-logo.php:95, widgets/site-title.php:88
407
  msgid "Right"
408
  msgstr ""
409
 
410
- #: widgets/advanced-custom-fields.php:130, widgets/gravatar.php:102, widgets/post-author.php:116, widgets/post-custom-field.php:138, widgets/post-date.php:117, widgets/post-excerpt.php:207, widgets/post-featured-image.php:104, widgets/post-terms.php:115, widgets/post-title.php:104, widgets/site-counters.php:146, widgets/site-description.php:92, widgets/site-logo.php:99, widgets/site-title.php:92
411
  msgid "Justified"
412
  msgstr ""
413
 
414
- #: widgets/advanced-custom-fields.php:144, widgets/gravatar.php:116, widgets/post-author.php:130, widgets/post-custom-field.php:152, widgets/post-date.php:131, widgets/post-excerpt.php:235, widgets/post-featured-image.php:118, widgets/post-featured-image.php:137, widgets/post-terms.php:129, widgets/post-title.php:118, widgets/site-description.php:106, widgets/site-logo.php:113, widgets/site-title.php:106
415
  msgid "Link to"
416
  msgstr ""
417
 
418
- #: widgets/advanced-custom-fields.php:148, widgets/gravatar.php:120, widgets/post-author.php:134, widgets/post-custom-field.php:156, widgets/post-date.php:135, widgets/post-excerpt.php:243, widgets/post-featured-image.php:122, widgets/post-terms.php:133, widgets/post-title.php:122, widgets/site-description.php:110, widgets/site-logo.php:117, widgets/site-title.php:110
419
  msgid "None"
420
  msgstr ""
421
 
422
- #: widgets/advanced-custom-fields.php:149, widgets/gravatar.php:121
 
 
 
 
423
  msgid "Post URL"
424
  msgstr ""
425
 
426
- #: widgets/advanced-custom-fields.php:150
427
  msgid "Other ACF Field"
428
  msgstr ""
429
 
430
- #: widgets/advanced-custom-fields.php:151, widgets/gravatar.php:122, widgets/post-author.php:141, widgets/post-custom-field.php:163, widgets/post-date.php:141, widgets/post-excerpt.php:255, widgets/post-featured-image.php:129, widgets/post-title.php:128, widgets/site-description.php:112, widgets/site-logo.php:119, widgets/site-title.php:112
431
  msgid "Custom URL"
432
  msgstr ""
433
 
434
- #: widgets/advanced-custom-fields.php:159, widgets/gravatar.php:130, widgets/post-author.php:149, widgets/post-custom-field.php:171, widgets/post-date.php:149, widgets/post-excerpt.php:271, widgets/post-title.php:136, widgets/site-description.php:120, widgets/site-logo.php:127, widgets/site-title.php:120
435
  msgid "Link"
436
  msgstr ""
437
 
438
- #: widgets/advanced-custom-fields.php:161, widgets/gravatar.php:132, widgets/post-author.php:151, widgets/post-custom-field.php:173, widgets/post-date.php:151, widgets/post-excerpt.php:275, widgets/post-featured-image.php:139, widgets/post-title.php:138, widgets/site-description.php:122, widgets/site-logo.php:129, widgets/site-title.php:122
439
  msgid "http://your-link.com"
440
  msgstr ""
441
 
442
- #: widgets/advanced-custom-fields.php:175
443
  msgid "Link to ACF Field"
444
  msgstr ""
445
 
446
- #: widgets/advanced-custom-fields.php:193, widgets/advanced-custom-fields.php:381, widgets/gravatar.php:152, widgets/gravatar.php:291, widgets/post-custom-field.php:205, widgets/post-custom-field.php:397, widgets/post-featured-image.php:156, widgets/post-featured-image.php:299
447
- msgid "Premium Feature"
448
- msgstr ""
449
-
450
- #: widgets/advanced-custom-fields.php:196, widgets/advanced-custom-fields.php:384, widgets/gravatar.php:155, widgets/gravatar.php:294, widgets/post-custom-field.php:208, widgets/post-custom-field.php:400, widgets/post-featured-image.php:159, widgets/post-featured-image.php:302
451
- msgid "This feature is available only for Press Elements Pro."
452
- msgstr ""
453
-
454
- #: widgets/advanced-custom-fields.php:199, widgets/advanced-custom-fields.php:387, widgets/gravatar.php:158, widgets/gravatar.php:297, widgets/post-custom-field.php:211, widgets/post-custom-field.php:403, widgets/post-featured-image.php:162, widgets/post-featured-image.php:305
455
- msgid "Upgrade Now!"
456
- msgstr ""
457
-
458
- #: widgets/advanced-custom-fields.php:223, widgets/post-author.php:179, widgets/post-custom-field.php:239, widgets/post-date.php:179, widgets/post-excerpt.php:331, widgets/post-terms.php:156, widgets/post-title.php:166, widgets/site-counters.php:170, widgets/site-counters.php:212, widgets/site-description.php:146, widgets/site-title.php:146
459
  msgid "Text Color"
460
  msgstr ""
461
 
462
- #: widgets/advanced-custom-fields.php:254, widgets/gravatar.php:182, widgets/post-author.php:210, widgets/post-custom-field.php:270, widgets/post-featured-image.php:190, widgets/site-logo.php:153
463
  msgid "Size (%)"
464
  msgstr ""
465
 
466
- #: widgets/advanced-custom-fields.php:279, widgets/gravatar.php:204, widgets/post-author.php:235, widgets/post-custom-field.php:295, widgets/post-featured-image.php:212, widgets/site-logo.php:175
467
  msgid "Opacity (%)"
468
  msgstr ""
469
 
470
- #: widgets/advanced-custom-fields.php:303, widgets/gravatar.php:225, widgets/post-author.php:259, widgets/post-custom-field.php:319, widgets/post-featured-image.php:233, widgets/site-logo.php:196
471
  msgid "Angle (deg)"
472
  msgstr ""
473
 
474
- #: widgets/advanced-custom-fields.php:329, widgets/gravatar.php:248, widgets/post-author.php:285, widgets/post-custom-field.php:345, widgets/post-date.php:204, widgets/post-excerpt.php:381, widgets/post-featured-image.php:256, widgets/post-terms.php:181, widgets/post-title.php:191, widgets/site-counters.php:194, widgets/site-counters.php:236, widgets/site-description.php:171, widgets/site-logo.php:219, widgets/site-title.php:171
475
  msgid "Hover Animation"
476
  msgstr ""
477
 
478
- #: widgets/advanced-custom-fields.php:338, widgets/gravatar.php:257, widgets/post-author.php:294, widgets/post-custom-field.php:354, widgets/post-featured-image.php:265, widgets/site-logo.php:228
479
  msgid "Image Border"
480
  msgstr ""
481
 
482
- #: widgets/advanced-custom-fields.php:349, widgets/gravatar.php:265, widgets/post-author.php:305, widgets/post-custom-field.php:365, widgets/post-featured-image.php:273, widgets/site-logo.php:236
483
  msgid "Border Radius"
484
  msgstr ""
485
 
486
- #: widgets/gravatar.php:32, widgets/gravatar.php:48, widgets/gravatar.php:172
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
487
  msgid "Gravatar"
488
  msgstr ""
489
 
490
- #: widgets/gravatar.php:57
491
  msgid "Email"
492
  msgstr ""
493
 
494
- #: widgets/gravatar.php:59
495
  msgid "your@email.com"
496
  msgstr ""
497
 
498
- #: widgets/post-author.php:39, widgets/post-author.php:61, widgets/post-author.php:169
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
499
  msgid "%s Author"
500
  msgstr ""
501
 
@@ -503,47 +811,47 @@ msgstr ""
503
  msgid "Author"
504
  msgstr ""
505
 
506
- #: widgets/post-author.php:137, widgets/post-custom-field.php:159, widgets/post-date.php:138, widgets/post-excerpt.php:249, widgets/post-featured-image.php:125, widgets/post-title.php:125
507
  msgid "%s URL"
508
  msgstr ""
509
 
510
- #: widgets/post-author.php:140
511
  msgid "Author URL"
512
  msgstr ""
513
 
514
- #: widgets/post-author.php:426
515
  msgid "First Name"
516
  msgstr ""
517
 
518
- #: widgets/post-author.php:427
519
  msgid "Last Name"
520
  msgstr ""
521
 
522
- #: widgets/post-author.php:428
523
  msgid "First Name + Last Name"
524
  msgstr ""
525
 
526
- #: widgets/post-author.php:429
527
  msgid "Last Name + First Name"
528
  msgstr ""
529
 
530
- #: widgets/post-author.php:430
531
  msgid "Nick Name"
532
  msgstr ""
533
 
534
- #: widgets/post-author.php:431
535
  msgid "Display Name"
536
  msgstr ""
537
 
538
- #: widgets/post-author.php:432
539
  msgid "User Name"
540
  msgstr ""
541
 
542
- #: widgets/post-author.php:433
543
  msgid "User Bio"
544
  msgstr ""
545
 
546
- #: widgets/post-author.php:434
547
  msgid "User Image"
548
  msgstr ""
549
 
@@ -559,23 +867,23 @@ msgstr ""
559
  msgid "No custom styling can be applied as each theme uses it's own CSS classes and IDs."
560
  msgstr ""
561
 
562
- #: widgets/post-custom-field.php:39, widgets/post-custom-field.php:61, widgets/post-custom-field.php:227
563
  msgid "%s Custom Field"
564
  msgstr ""
565
 
566
- #: widgets/post-custom-field.php:80
567
  msgid "Custom Field"
568
  msgstr ""
569
 
570
- #: widgets/post-custom-field.php:162
571
  msgid "Other Custom Field"
572
  msgstr ""
573
 
574
- #: widgets/post-custom-field.php:187
575
  msgid "Custom Field Link"
576
  msgstr ""
577
 
578
- #: widgets/post-date.php:37, widgets/post-date.php:59, widgets/post-date.php:169
579
  msgid "%s Date"
580
  msgstr ""
581
 
@@ -591,15 +899,15 @@ msgstr ""
591
  msgid "Last Modified Date"
592
  msgstr ""
593
 
594
- #: widgets/post-excerpt.php:73, widgets/post-excerpt.php:117, widgets/post-excerpt.php:311
595
  msgid "%s Excerpt"
596
  msgstr ""
597
 
598
- #: widgets/post-featured-image.php:37, widgets/post-featured-image.php:59, widgets/post-featured-image.php:178
599
  msgid "%s Featured Image"
600
  msgstr ""
601
 
602
- #: widgets/post-featured-image.php:80
603
  msgid "Image Size"
604
  msgstr ""
605
 
@@ -619,7 +927,7 @@ msgstr ""
619
  msgid "Term"
620
  msgstr ""
621
 
622
- #: widgets/post-title.php:37, widgets/post-title.php:59, widgets/post-title.php:156
623
  msgid "%s Title"
624
  msgstr ""
625
 
@@ -646,7 +954,3 @@ msgstr ""
646
  #: widgets/site-counters.php:204
647
  msgid "Label"
648
  msgstr ""
649
-
650
- #: widgets/site-description.php:111, widgets/site-logo.php:118, widgets/site-title.php:111
651
- msgid "Home URL"
652
- msgstr ""
15
  "X-Poedit-SearchPathExcluded-0: *.js\n"
16
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
 
18
+ #: press-elements-admin.php:119, press-elements-admin.php:261, press-elements-freemius.php:60
19
  msgid "Press Elements - Widgets for Elementor"
20
  msgstr ""
21
 
22
+ #: press-elements-admin.php:121, press-elements.php:163, press-elements.php:217
23
  msgid "Press Elements"
24
  msgstr ""
25
 
27
  msgid "About"
28
  msgstr ""
29
 
30
+ #: press-elements-admin.php:165, press-elements-admin.php:689
31
  msgid "Getting Started"
32
  msgstr ""
33
 
34
+ #: press-elements-admin.php:167, press-elements-admin.php:843
35
  msgid "Changelog"
36
  msgstr ""
37
 
38
  #: press-elements-admin.php:169
39
+ msgid "Pricing"
40
  msgstr ""
41
 
42
+ #: press-elements-admin.php:171
43
+ msgid "Account"
44
  msgstr ""
45
 
46
+ #: press-elements-admin.php:173
47
+ msgid "Support Forum"
48
  msgstr ""
49
 
50
+ #: press-elements-admin.php:265
51
+ msgid "Easy-to-use widgets that help you display and design your content using Elementor page builder."
52
+ msgstr ""
53
+
54
+ #: press-elements-admin.php:273
55
+ msgid "Press Elements combines the simplicity of Elementor with the efficiency of the built-in WordPress theme components."
56
  msgstr ""
57
 
58
  #: press-elements-admin.php:285
59
+ msgid "WordPress Elements"
60
  msgstr ""
61
 
62
  #: press-elements-admin.php:289
63
+ msgid "When you create a new post (or a page) on WordPress, you choose a title, write an excerpt, select a publish date, add an author, choose featured image, select several taxonomies and maybe you define some custom fields."
64
  msgstr ""
65
 
66
  #: press-elements-admin.php:293
67
+ msgid "In the Elementor page builder you can't display and style those components. You need to repeat the process and manually add a title, write the excerpt and add images."
68
  msgstr ""
69
 
70
  #: press-elements-admin.php:297
71
+ msgid "That's where Press Elements comes in handy. The plugin adds smart widgets that let you display those post components. Now you can drag a \"Post Title\" widget and style it your way. The widget will automatically insert the title used as the post title. Same applies for all the other post components."
72
  msgstr ""
73
 
74
  #: press-elements-admin.php:301
75
+ msgid "Dynamic Content"
76
  msgstr ""
77
 
78
  #: press-elements-admin.php:305
79
+ msgid "Regular Elementor widgets save the data as hard-coded content in the database. To change something you need to open the page builder and manually change the element inside the builder. Updating post titles, excerpts, authors and other WordPress Element won't affect the builder."
80
  msgstr ""
81
 
82
  #: press-elements-admin.php:309
83
+ msgid "Press Elements uses dynamic content architecture. It doesn't save the title and other element as hard-coded content. It generates them on-the-fly. Just like the WordPress theme system."
84
  msgstr ""
85
 
86
  #: press-elements-admin.php:313
87
+ msgid "When you change post titles and other post elements from your WordPress dashboard (outside of Elementor), they will be automatically updated in the content area and in the page builder."
88
  msgstr ""
89
 
90
  #: press-elements-admin.php:317
91
+ msgid "For example, you can bulk edit several posts from your sites dashboard to change the author, post that use \"Post Author\" widget will be automatically updates with the new data."
92
  msgstr ""
93
 
94
  #: press-elements-admin.php:321
95
+ msgid "Template Design"
96
  msgstr ""
97
 
98
  #: press-elements-admin.php:325
99
+ msgid "When using page builders, you need to create all the page element for each page over and over again. Currently you can't design single page templates and apply the design on the post. When you use the template system you need to manually change titles and images for each post/page."
100
  msgstr ""
101
 
102
  #: press-elements-admin.php:329
103
+ msgid "With Press Elements you can create custom designs with post elements and save them as template. When you apply the template on other posts, it will inherit the data from the new post. No more manual updates!"
104
  msgstr ""
105
 
106
  #: press-elements-admin.php:333
107
+ msgid "You don't need to hire developers to generate custom page templates - with Press Elements you can do it using a simple drag & drop interface! Now you can design different templates for different blog posts, pages and other Post Types. When creating new posts, load your predefined templates from your template library."
108
  msgstr ""
109
 
110
  #: press-elements-admin.php:337
111
+ msgid "With Press Elements you can use Elementor widgets to display and design your post elements! Just like developers use theme-functions to generate themes. How cool is that?!"
112
+ msgstr ""
113
+
114
+ #: press-elements-admin.php:341
115
  msgid "Included Widgets"
116
  msgstr ""
117
 
118
+ #: press-elements-admin.php:345, press-elements-admin.php:413
119
  msgid "Site Elements:"
120
  msgstr ""
121
 
122
+ #: press-elements-admin.php:349, widgets/site-title.php:33, widgets/site-title.php:49, widgets/site-title.php:138
123
  msgid "Site Title"
124
  msgstr ""
125
 
126
+ #: press-elements-admin.php:351, widgets/site-description.php:33, widgets/site-description.php:49, widgets/site-description.php:138
127
  msgid "Site Description"
128
  msgstr ""
129
 
130
+ #: press-elements-admin.php:353, widgets/site-logo.php:32, widgets/site-logo.php:48, widgets/site-logo.php:145
131
  msgid "Site Logo"
132
  msgstr ""
133
 
134
+ #: press-elements-admin.php:355, widgets/site-counters.php:33, widgets/site-counters.php:62
135
  msgid "Site Counters"
136
  msgstr ""
137
 
138
+ #: press-elements-admin.php:359
139
  msgid "Post Elements:"
140
  msgstr ""
141
 
142
+ #: press-elements-admin.php:363
143
  msgid "Post Title"
144
  msgstr ""
145
 
146
+ #: press-elements-admin.php:365
147
  msgid "Post Excerpt"
148
  msgstr ""
149
 
150
+ #: press-elements-admin.php:367
151
  msgid "Post Date"
152
  msgstr ""
153
 
154
+ #: press-elements-admin.php:369
155
  msgid "Post Author"
156
  msgstr ""
157
 
158
+ #: press-elements-admin.php:371
159
  msgid "Post Terms"
160
  msgstr ""
161
 
162
+ #: press-elements-admin.php:373
163
  msgid "Post Featured Image (Pro)"
164
  msgstr ""
165
 
166
+ #: press-elements-admin.php:375
167
  msgid "Post Custom Field (Pro)"
168
  msgstr ""
169
 
170
+ #: press-elements-admin.php:377
171
  msgid "Post Comments"
172
  msgstr ""
173
 
174
+ #: press-elements-admin.php:381, press-elements-admin.php:435
175
+ msgid "Effects:"
176
+ msgstr ""
177
+
178
+ #: press-elements-admin.php:385
179
+ msgid "Image Accordion (Pro)"
180
+ msgstr ""
181
+
182
+ #: press-elements-admin.php:387
183
+ msgid "Before After Effect (Pro)"
184
+ msgstr ""
185
+
186
+ #: press-elements-admin.php:389
187
+ msgid "Notes (Pro)"
188
+ msgstr ""
189
+
190
+ #: press-elements-admin.php:393
191
  msgid "Integrations:"
192
  msgstr ""
193
 
194
+ #: press-elements-admin.php:397
195
  msgid "Advanced Custom Fields (Pro)"
196
  msgstr ""
197
 
198
+ #: press-elements-admin.php:399
199
  msgid "Gravatar (Pro)"
200
  msgstr ""
201
 
202
+ #: press-elements-admin.php:401
203
+ msgid "Flickr (Pro)"
204
+ msgstr ""
205
+
206
+ #: press-elements-admin.php:403
207
+ msgid "Pinterest (Pro)"
208
+ msgstr ""
209
+
210
+ #: press-elements-admin.php:409
211
  msgid "Coming Soon"
212
  msgstr ""
213
 
214
+ #: press-elements-admin.php:417
215
  msgid "Login Form"
216
  msgstr ""
217
 
218
+ #: press-elements-admin.php:419
219
  msgid "Search Form"
220
  msgstr ""
221
 
222
+ #: press-elements-admin.php:423
223
  msgid "Comments Elements:"
224
  msgstr ""
225
 
226
+ #: press-elements-admin.php:427
227
  msgid "Comments Form"
228
  msgstr ""
229
 
230
+ #: press-elements-admin.php:429
231
  msgid "Comments List"
232
  msgstr ""
233
 
234
+ #: press-elements-admin.php:431
235
  msgid "Comments Pagination"
236
  msgstr ""
237
 
238
+ #: press-elements-admin.php:439
239
+ msgid "Typing Effect (Pro)"
 
 
 
 
240
  msgstr ""
241
 
242
+ #: press-elements-admin.php:457, press-elements-admin.php:461
243
  msgid "Post edit screen with WordPress elements."
244
  msgstr ""
245
 
246
+ #: press-elements-admin.php:475, press-elements-admin.php:479
247
  msgid "Elementor widgets for each site and post element."
248
  msgstr ""
249
 
250
+ #: press-elements-admin.php:493, press-elements-admin.php:497
251
  msgid "Styling post title with a dedicated Elementor widget."
252
  msgstr ""
253
 
254
+ #: press-elements-admin.php:511, press-elements-admin.php:515
255
  msgid "Display post custom fields."
256
  msgstr ""
257
 
258
+ #: press-elements-admin.php:529, press-elements-admin.php:533
259
  msgid "Create your own author bio section."
260
  msgstr ""
261
 
262
+ #: press-elements-admin.php:547, press-elements-admin.php:551
263
  msgid "Widgets for your site logo, site name and site description."
264
  msgstr ""
265
 
266
+ #: press-elements-admin.php:565, press-elements-admin.php:569
267
  msgid "Site counters for Post Types, Taxonomies, Comments and Users."
268
  msgstr ""
269
 
270
+ #: press-elements-admin.php:583, press-elements-admin.php:587
271
  msgid "Custom fields as text fields and images, and linking to other custom fields."
272
  msgstr ""
273
 
274
+ #: press-elements-admin.php:601, press-elements-admin.php:605
275
  msgid "Display Gravatars based on an email address."
276
  msgstr ""
277
 
278
+ #: press-elements-admin.php:619, press-elements-admin.php:623
279
+ msgid "Display Flickr photostream based on Flickr User ID."
280
+ msgstr ""
281
+
282
+ #: press-elements-admin.php:637, press-elements-admin.php:641
283
+ msgid "Display Pinterest pins based on Pinterest username."
284
+ msgstr ""
285
+
286
+ #: press-elements-admin.php:693
287
  msgid "Welcome to Press Elements getting started guide."
288
  msgstr ""
289
 
290
+ #: press-elements-admin.php:701
291
  msgid "Getting started with Press Elements is easy! We put together this quick start guide to help first time users of the plugin. Our goal is to get you up and running in no time. Let's begin!"
292
  msgstr ""
293
 
294
+ #: press-elements-admin.php:713
295
  msgid "STEP 1: Create a new post"
296
  msgstr ""
297
 
298
+ #: press-elements-admin.php:717
299
  msgid "Navigate to \"Posts\" > \"Add New\" to create a new post. Enter a post title, write an excerpt, select a featured image, set an author, select a publish date and publish the post."
300
  msgstr ""
301
 
302
+ #: press-elements-admin.php:737
303
  msgid "STEP 2: Design your own template"
304
  msgstr ""
305
 
306
+ #: press-elements-admin.php:741
307
  msgid "Click the \"Edit with Elementor\" button and start designing the page layout. Design a page header, footer, and the content area."
308
  msgstr ""
309
 
310
+ #: press-elements-admin.php:745
311
  msgid "Use \"Press Elements\" widgets to display the post title, post excerpt, post date and the other fields used by WordPress. Don't forget to style those elements!"
312
  msgstr ""
313
 
314
+ #: press-elements-admin.php:765
315
  msgid "STEP 3: Save the template"
316
  msgstr ""
317
 
318
+ #: press-elements-admin.php:769
319
  msgid "Click on the \"Add Template\" button located at the bottom, and save the design. You will see the newly created template at the \"My Templates\" tab."
320
  msgstr ""
321
 
322
+ #: press-elements-admin.php:773
323
  msgid "You can save several templates for blogs posts, pages, and other post types. Or even several templates for a particular post type."
324
  msgstr ""
325
 
326
+ #: press-elements-admin.php:793
327
  msgid "STEP 4: Apply the design to new posts"
328
  msgstr ""
329
 
330
+ #: press-elements-admin.php:797
331
  msgid "For each new post you create, load the desired template and apply it to the post. The post will enherite the design but the elements will be updated with the current post data."
332
  msgstr ""
333
 
334
+ #: press-elements-admin.php:847
335
  msgid "Press Elements changelog."
336
  msgstr ""
337
 
338
+ #: press-elements-admin.php:855
339
  msgid "The Press Elements plugin is developed continuasly, this is the full changelog."
340
  msgstr ""
341
 
342
+ #: press-elements-admin.php:897
343
  msgid "No valid changelog was found."
344
  msgstr ""
345
 
346
+ #: press-elements-plugin.php:163
347
  msgid "Site Elements"
348
  msgstr ""
349
 
350
+ #: press-elements-plugin.php:173
351
  msgid "Post Elements"
352
  msgstr ""
353
 
354
+ #: press-elements-plugin.php:183
355
+ msgid "Press Elements Pro Effects"
356
+ msgstr ""
357
+
358
+ #: press-elements-plugin.php:193
359
+ msgid "Press Elements Pro Integrations"
360
  msgstr ""
361
 
362
+ #: press-elements.php:161
363
  msgid "\"%1$s\" requires \"%2$s\" to be installed and activated."
364
  msgstr ""
365
 
366
+ #: press-elements.php:165, press-elements.php:219
367
  msgid "Elementor"
368
  msgstr ""
369
 
370
+ #: press-elements.php:215
371
  msgid "\"%1$s\" requires \"%2$s\" version %3$s or greater."
372
  msgstr ""
373
 
374
+ #: widgets/advanced-custom-fields.php:35, widgets/advanced-custom-fields.php:53, widgets/advanced-custom-fields.php:71, widgets/advanced-custom-fields.php:89, widgets/advanced-custom-fields.php:139, widgets/advanced-custom-fields.php:264
375
  msgid "Advanced Custom Fields"
376
  msgstr ""
377
 
378
+ #: widgets/advanced-custom-fields.php:65
379
+ msgid "Pugin is Missing"
380
+ msgstr ""
381
+
382
+ #: widgets/advanced-custom-fields.php:70
383
+ msgid "This feature requires \"%s\" plugin to be installed and active."
384
+ msgstr ""
385
+
386
+ #: widgets/advanced-custom-fields.php:101, widgets/before-after-effect.php:69, widgets/flickr.php:60, widgets/gravatar.php:62, widgets/image-accordion.php:67, widgets/notes.php:64, widgets/pinterest.php:60, widgets/post-custom-field.php:77
387
+ msgid "Premium Feature"
388
+ msgstr ""
389
+
390
+ #: widgets/advanced-custom-fields.php:106, widgets/before-after-effect.php:74, widgets/flickr.php:65, widgets/gravatar.php:67, widgets/image-accordion.php:72, widgets/notes.php:69, widgets/pinterest.php:65, widgets/post-custom-field.php:82
391
+ msgid "This feature is only available on \"%s\"."
392
+ msgstr ""
393
+
394
+ #: widgets/advanced-custom-fields.php:107, widgets/before-after-effect.php:75, widgets/flickr.php:66, widgets/gravatar.php:68, widgets/image-accordion.php:73, widgets/notes.php:70, widgets/pinterest.php:66, widgets/post-custom-field.php:83
395
+ msgid "Press Elements Pro"
396
+ msgstr ""
397
+
398
+ #: widgets/advanced-custom-fields.php:111, widgets/before-after-effect.php:79, widgets/flickr.php:70, widgets/gravatar.php:72, widgets/image-accordion.php:77, widgets/notes.php:74, widgets/pinterest.php:70, widgets/post-custom-field.php:87
399
+ msgid "Upgrade Now!"
400
+ msgstr ""
401
+
402
+ #: widgets/advanced-custom-fields.php:146
403
  msgid "Field"
404
  msgstr ""
405
 
406
+ #: widgets/advanced-custom-fields.php:155, widgets/post-custom-field.php:130
407
  msgid "Display As"
408
  msgstr ""
409
 
410
+ #: widgets/advanced-custom-fields.php:158, widgets/before-after-effect.php:111, widgets/before-after-effect.php:148, widgets/post-custom-field.php:133
411
  msgid "Text"
412
  msgstr ""
413
 
414
+ #: widgets/advanced-custom-fields.php:159, widgets/before-after-effect.php:126, widgets/before-after-effect.php:163, widgets/image-accordion.php:116, widgets/image-accordion.php:217, widgets/post-custom-field.php:134
415
  msgid "Image"
416
  msgstr ""
417
 
418
+ #: widgets/advanced-custom-fields.php:168, widgets/gravatar.php:104, widgets/image-accordion.php:407, widgets/notes.php:244, widgets/post-author.php:80, widgets/post-custom-field.php:143, widgets/post-date.php:81, widgets/post-excerpt.php:135, widgets/post-terms.php:79, widgets/post-title.php:68, widgets/site-counters.php:110, widgets/site-description.php:56, widgets/site-logo.php:63, widgets/site-title.php:56
419
  msgid "HTML Tag"
420
  msgstr ""
421
 
422
+ #: widgets/advanced-custom-fields.php:171, widgets/gravatar.php:107, widgets/image-accordion.php:410, widgets/notes.php:247, widgets/post-author.php:83, widgets/post-custom-field.php:146, widgets/post-date.php:84, widgets/post-excerpt.php:141, widgets/post-terms.php:82, widgets/post-title.php:71, widgets/site-counters.php:113, widgets/site-description.php:59, widgets/site-logo.php:66, widgets/site-title.php:59
423
  msgid "H1"
424
  msgstr ""
425
 
426
+ #: widgets/advanced-custom-fields.php:172, widgets/gravatar.php:108, widgets/image-accordion.php:411, widgets/notes.php:248, widgets/post-author.php:84, widgets/post-custom-field.php:147, widgets/post-date.php:85, widgets/post-excerpt.php:143, widgets/post-terms.php:83, widgets/post-title.php:72, widgets/site-counters.php:114, widgets/site-description.php:60, widgets/site-logo.php:67, widgets/site-title.php:60
427
  msgid "H2"
428
  msgstr ""
429
 
430
+ #: widgets/advanced-custom-fields.php:173, widgets/gravatar.php:109, widgets/image-accordion.php:412, widgets/notes.php:249, widgets/post-author.php:85, widgets/post-custom-field.php:148, widgets/post-date.php:86, widgets/post-excerpt.php:145, widgets/post-terms.php:84, widgets/post-title.php:73, widgets/site-counters.php:115, widgets/site-description.php:61, widgets/site-logo.php:68, widgets/site-title.php:61
431
  msgid "H3"
432
  msgstr ""
433
 
434
+ #: widgets/advanced-custom-fields.php:174, widgets/gravatar.php:110, widgets/image-accordion.php:413, widgets/notes.php:250, widgets/post-author.php:86, widgets/post-custom-field.php:149, widgets/post-date.php:87, widgets/post-excerpt.php:147, widgets/post-terms.php:85, widgets/post-title.php:74, widgets/site-counters.php:116, widgets/site-description.php:62, widgets/site-logo.php:69, widgets/site-title.php:62
435
  msgid "H4"
436
  msgstr ""
437
 
438
+ #: widgets/advanced-custom-fields.php:175, widgets/gravatar.php:111, widgets/image-accordion.php:414, widgets/notes.php:251, widgets/post-author.php:87, widgets/post-custom-field.php:150, widgets/post-date.php:88, widgets/post-excerpt.php:149, widgets/post-terms.php:86, widgets/post-title.php:75, widgets/site-counters.php:117, widgets/site-description.php:63, widgets/site-logo.php:70, widgets/site-title.php:63
439
  msgid "H5"
440
  msgstr ""
441
 
442
+ #: widgets/advanced-custom-fields.php:176, widgets/gravatar.php:112, widgets/image-accordion.php:415, widgets/notes.php:252, widgets/post-author.php:88, widgets/post-custom-field.php:151, widgets/post-date.php:89, widgets/post-excerpt.php:151, widgets/post-terms.php:87, widgets/post-title.php:76, widgets/site-counters.php:118, widgets/site-description.php:64, widgets/site-logo.php:71, widgets/site-title.php:64
443
  msgid "H6"
444
  msgstr ""
445
 
446
+ #: widgets/advanced-custom-fields.php:177, widgets/gravatar.php:113, widgets/image-accordion.php:416, widgets/notes.php:253, widgets/post-author.php:89, widgets/post-custom-field.php:152, widgets/post-date.php:90, widgets/post-excerpt.php:153, widgets/post-terms.php:88, widgets/post-title.php:77, widgets/site-counters.php:119, widgets/site-description.php:65, widgets/site-logo.php:72, widgets/site-title.php:65
447
  msgid "p"
448
  msgstr ""
449
 
450
+ #: widgets/advanced-custom-fields.php:178, widgets/gravatar.php:114, widgets/image-accordion.php:417, widgets/notes.php:254, widgets/post-author.php:90, widgets/post-custom-field.php:153, widgets/post-date.php:91, widgets/post-excerpt.php:155, widgets/post-terms.php:89, widgets/post-title.php:78, widgets/site-counters.php:120, widgets/site-description.php:66, widgets/site-logo.php:73, widgets/site-title.php:66
451
  msgid "div"
452
  msgstr ""
453
 
454
+ #: widgets/advanced-custom-fields.php:179, widgets/gravatar.php:115, widgets/image-accordion.php:418, widgets/notes.php:255, widgets/post-author.php:91, widgets/post-custom-field.php:154, widgets/post-date.php:92, widgets/post-excerpt.php:157, widgets/post-terms.php:90, widgets/post-title.php:79, widgets/site-counters.php:121, widgets/site-description.php:67, widgets/site-logo.php:74, widgets/site-title.php:67
455
  msgid "span"
456
  msgstr ""
457
 
458
+ #: widgets/advanced-custom-fields.php:188, widgets/gravatar.php:124, widgets/image-accordion.php:311, widgets/notes.php:264, widgets/notes.php:328, widgets/post-author.php:100, widgets/post-custom-field.php:163, widgets/post-date.php:101, widgets/post-excerpt.php:175, widgets/post-featured-image.php:87, widgets/post-terms.php:99, widgets/post-title.php:88, widgets/site-counters.php:130, widgets/site-description.php:76, widgets/site-logo.php:83, widgets/site-title.php:76
459
  msgid "Alignment"
460
  msgstr ""
461
 
462
+ #: widgets/advanced-custom-fields.php:192, widgets/gravatar.php:128, widgets/image-accordion.php:230, widgets/image-accordion.php:316, widgets/notes.php:268, widgets/notes.php:332, widgets/post-author.php:104, widgets/post-custom-field.php:167, widgets/post-date.php:105, widgets/post-excerpt.php:183, widgets/post-featured-image.php:91, widgets/post-terms.php:103, widgets/post-title.php:92, widgets/site-counters.php:134, widgets/site-description.php:80, widgets/site-logo.php:87, widgets/site-title.php:80
463
  msgid "Left"
464
  msgstr ""
465
 
466
+ #: widgets/advanced-custom-fields.php:196, widgets/gravatar.php:132, widgets/image-accordion.php:234, widgets/image-accordion.php:320, widgets/notes.php:272, widgets/notes.php:336, widgets/post-author.php:108, widgets/post-custom-field.php:171, widgets/post-date.php:109, widgets/post-excerpt.php:191, widgets/post-featured-image.php:95, widgets/post-terms.php:107, widgets/post-title.php:96, widgets/site-counters.php:138, widgets/site-description.php:84, widgets/site-logo.php:91, widgets/site-title.php:84
467
  msgid "Center"
468
  msgstr ""
469
 
470
+ #: widgets/advanced-custom-fields.php:200, widgets/gravatar.php:136, widgets/image-accordion.php:238, widgets/image-accordion.php:324, widgets/notes.php:276, widgets/notes.php:340, widgets/post-author.php:112, widgets/post-custom-field.php:175, widgets/post-date.php:113, widgets/post-excerpt.php:199, widgets/post-featured-image.php:99, widgets/post-terms.php:111, widgets/post-title.php:100, widgets/site-counters.php:142, widgets/site-description.php:88, widgets/site-logo.php:95, widgets/site-title.php:88
471
  msgid "Right"
472
  msgstr ""
473
 
474
+ #: widgets/advanced-custom-fields.php:204, widgets/gravatar.php:140, widgets/notes.php:280, widgets/notes.php:344, widgets/post-author.php:116, widgets/post-custom-field.php:179, widgets/post-date.php:117, widgets/post-excerpt.php:207, widgets/post-featured-image.php:103, widgets/post-terms.php:115, widgets/post-title.php:104, widgets/site-counters.php:146, widgets/site-description.php:92, widgets/site-logo.php:99, widgets/site-title.php:92
475
  msgid "Justified"
476
  msgstr ""
477
 
478
+ #: widgets/advanced-custom-fields.php:218, widgets/flickr.php:111, widgets/gravatar.php:154, widgets/pinterest.php:111, widgets/post-author.php:130, widgets/post-custom-field.php:193, widgets/post-date.php:131, widgets/post-excerpt.php:235, widgets/post-featured-image.php:117, widgets/post-featured-image.php:137, widgets/post-terms.php:129, widgets/post-title.php:118, widgets/site-description.php:106, widgets/site-logo.php:113, widgets/site-title.php:106
479
  msgid "Link to"
480
  msgstr ""
481
 
482
+ #: widgets/advanced-custom-fields.php:222, widgets/flickr.php:115, widgets/gravatar.php:158, widgets/pinterest.php:115, widgets/post-author.php:134, widgets/post-custom-field.php:197, widgets/post-date.php:135, widgets/post-excerpt.php:243, widgets/post-featured-image.php:121, widgets/post-terms.php:133, widgets/post-title.php:122, widgets/site-description.php:110, widgets/site-logo.php:117, widgets/site-title.php:110
483
  msgid "None"
484
  msgstr ""
485
 
486
+ #: widgets/advanced-custom-fields.php:223, widgets/gravatar.php:159, widgets/post-author.php:135, widgets/post-custom-field.php:198, widgets/post-date.php:136, widgets/post-excerpt.php:245, widgets/post-featured-image.php:122, widgets/post-title.php:123, widgets/site-description.php:111, widgets/site-logo.php:118, widgets/site-title.php:111
487
+ msgid "Home URL"
488
+ msgstr ""
489
+
490
+ #: widgets/advanced-custom-fields.php:224, widgets/gravatar.php:160
491
  msgid "Post URL"
492
  msgstr ""
493
 
494
+ #: widgets/advanced-custom-fields.php:225
495
  msgid "Other ACF Field"
496
  msgstr ""
497
 
498
+ #: widgets/advanced-custom-fields.php:226, widgets/gravatar.php:161, widgets/post-author.php:142, widgets/post-custom-field.php:205, widgets/post-date.php:142, widgets/post-excerpt.php:257, widgets/post-featured-image.php:129, widgets/post-title.php:129, widgets/site-description.php:112, widgets/site-logo.php:119, widgets/site-title.php:112
499
  msgid "Custom URL"
500
  msgstr ""
501
 
502
+ #: widgets/advanced-custom-fields.php:234, widgets/gravatar.php:169, widgets/image-accordion.php:131, widgets/post-author.php:150, widgets/post-custom-field.php:213, widgets/post-date.php:150, widgets/post-excerpt.php:273, widgets/post-title.php:137, widgets/site-description.php:120, widgets/site-logo.php:127, widgets/site-title.php:120
503
  msgid "Link"
504
  msgstr ""
505
 
506
+ #: widgets/advanced-custom-fields.php:236, widgets/gravatar.php:171, widgets/image-accordion.php:133, widgets/post-author.php:152, widgets/post-custom-field.php:215, widgets/post-date.php:152, widgets/post-excerpt.php:277, widgets/post-featured-image.php:139, widgets/post-title.php:139, widgets/site-description.php:122, widgets/site-logo.php:129, widgets/site-title.php:122
507
  msgid "http://your-link.com"
508
  msgstr ""
509
 
510
+ #: widgets/advanced-custom-fields.php:250
511
  msgid "Link to ACF Field"
512
  msgstr ""
513
 
514
+ #: widgets/advanced-custom-fields.php:272, widgets/before-after-effect.php:356, widgets/image-accordion.php:365, widgets/notes.php:293, widgets/notes.php:357, widgets/post-author.php:180, widgets/post-custom-field.php:255, widgets/post-date.php:180, widgets/post-excerpt.php:333, widgets/post-terms.php:156, widgets/post-title.php:167, widgets/site-counters.php:170, widgets/site-counters.php:212, widgets/site-description.php:146, widgets/site-title.php:146
 
 
 
 
 
 
 
 
 
 
 
 
515
  msgid "Text Color"
516
  msgstr ""
517
 
518
+ #: widgets/advanced-custom-fields.php:303, widgets/gravatar.php:195, widgets/post-author.php:211, widgets/post-custom-field.php:286, widgets/post-featured-image.php:164, widgets/site-logo.php:153
519
  msgid "Size (%)"
520
  msgstr ""
521
 
522
+ #: widgets/advanced-custom-fields.php:328, widgets/flickr.php:203, widgets/gravatar.php:217, widgets/notes.php:155, widgets/pinterest.php:190, widgets/post-author.php:236, widgets/post-custom-field.php:311, widgets/post-featured-image.php:186, widgets/site-logo.php:175
523
  msgid "Opacity (%)"
524
  msgstr ""
525
 
526
+ #: widgets/advanced-custom-fields.php:352, widgets/gravatar.php:238, widgets/notes.php:176, widgets/post-author.php:260, widgets/post-custom-field.php:335, widgets/post-featured-image.php:207, widgets/site-logo.php:196
527
  msgid "Angle (deg)"
528
  msgstr ""
529
 
530
+ #: widgets/advanced-custom-fields.php:378, widgets/flickr.php:221, widgets/gravatar.php:261, widgets/notes.php:199, widgets/pinterest.php:208, widgets/post-author.php:286, widgets/post-custom-field.php:361, widgets/post-date.php:205, widgets/post-excerpt.php:383, widgets/post-featured-image.php:230, widgets/post-terms.php:181, widgets/post-title.php:192, widgets/site-counters.php:194, widgets/site-counters.php:236, widgets/site-description.php:171, widgets/site-logo.php:219, widgets/site-title.php:171
531
  msgid "Hover Animation"
532
  msgstr ""
533
 
534
+ #: widgets/advanced-custom-fields.php:387, widgets/gravatar.php:270, widgets/post-author.php:295, widgets/post-custom-field.php:370, widgets/post-featured-image.php:239, widgets/site-logo.php:228
535
  msgid "Image Border"
536
  msgstr ""
537
 
538
+ #: widgets/advanced-custom-fields.php:398, widgets/before-after-effect.php:553, widgets/gravatar.php:278, widgets/image-accordion.php:473, widgets/post-author.php:306, widgets/post-custom-field.php:381, widgets/post-featured-image.php:247, widgets/site-logo.php:236
539
  msgid "Border Radius"
540
  msgstr ""
541
 
542
+ #: widgets/before-after-effect.php:35, widgets/before-after-effect.php:57, widgets/before-after-effect.php:95
543
+ msgid "Before After Effect"
544
+ msgstr ""
545
+
546
+ #: widgets/before-after-effect.php:102, widgets/before-after-effect.php:139
547
+ msgid "Title & Image"
548
+ msgstr ""
549
+
550
+ #: widgets/before-after-effect.php:113
551
+ msgid "Before"
552
+ msgstr ""
553
+
554
+ #: widgets/before-after-effect.php:150
555
+ msgid "After"
556
+ msgstr ""
557
+
558
+ #: widgets/before-after-effect.php:176
559
+ msgid "Settings"
560
+ msgstr ""
561
+
562
+ #: widgets/before-after-effect.php:185
563
+ msgid "Orientation"
564
+ msgstr ""
565
+
566
+ #: widgets/before-after-effect.php:188
567
+ msgid "Horizontal"
568
+ msgstr ""
569
+
570
+ #: widgets/before-after-effect.php:189
571
+ msgid "Vertical"
572
+ msgstr ""
573
+
574
+ #: widgets/before-after-effect.php:199
575
+ msgid "Starting Position (%)"
576
+ msgstr ""
577
+
578
+ #: widgets/before-after-effect.php:221
579
+ msgid "Overlay"
580
+ msgstr ""
581
+
582
+ #: widgets/before-after-effect.php:229
583
+ msgid "Overlay Color"
584
+ msgstr ""
585
+
586
+ #: widgets/before-after-effect.php:252
587
+ msgid "Separetor"
588
+ msgstr ""
589
+
590
+ #: widgets/before-after-effect.php:260
591
+ msgid "Separetor Color"
592
+ msgstr ""
593
+
594
+ #: widgets/before-after-effect.php:284
595
+ msgid "Separetor Width (px)"
596
+ msgstr ""
597
+
598
+ #: widgets/before-after-effect.php:310
599
+ msgid "Separetor Radius"
600
+ msgstr ""
601
+
602
+ #: widgets/before-after-effect.php:348, widgets/notes.php:236
603
+ msgid "Title"
604
+ msgstr ""
605
+
606
+ #: widgets/before-after-effect.php:373, widgets/image-accordion.php:382
607
+ msgid "Background Color"
608
+ msgstr ""
609
+
610
+ #: widgets/before-after-effect.php:402, widgets/before-after-effect.php:453
611
+ msgid "1st Title Position (%)"
612
+ msgstr ""
613
+
614
+ #: widgets/before-after-effect.php:428, widgets/before-after-effect.php:479
615
+ msgid "2nd Title Position (%)"
616
+ msgstr ""
617
+
618
+ #: widgets/before-after-effect.php:504, widgets/image-accordion.php:427
619
+ msgid "Margin"
620
+ msgstr ""
621
+
622
+ #: widgets/before-after-effect.php:525, widgets/flickr.php:229, widgets/image-accordion.php:446, widgets/notes.php:207, widgets/pinterest.php:216
623
+ msgid "Padding"
624
+ msgstr ""
625
+
626
+ #: widgets/flickr.php:30, widgets/flickr.php:48, widgets/flickr.php:86, widgets/flickr.php:142
627
+ msgid "Flickr"
628
+ msgstr ""
629
+
630
+ #: widgets/flickr.php:93
631
+ msgid "Flickr ID"
632
+ msgstr ""
633
+
634
+ #: widgets/flickr.php:102, widgets/pinterest.php:102
635
+ msgid "Links"
636
+ msgstr ""
637
+
638
+ #: widgets/flickr.php:116
639
+ msgid "Image page on Flickr"
640
+ msgstr ""
641
+
642
+ #: widgets/flickr.php:124, widgets/pinterest.php:124
643
+ msgid "Open links in"
644
+ msgstr ""
645
+
646
+ #: widgets/flickr.php:128, widgets/pinterest.php:128
647
+ msgid "Same window"
648
+ msgstr ""
649
+
650
+ #: widgets/flickr.php:129, widgets/pinterest.php:129
651
+ msgid "New window"
652
+ msgstr ""
653
+
654
+ #: widgets/flickr.php:150
655
+ msgid "Size"
656
+ msgstr ""
657
+
658
+ #: widgets/flickr.php:154
659
+ msgid "Thumbnails Grid"
660
+ msgstr ""
661
+
662
+ #: widgets/flickr.php:155
663
+ msgid "Full Images Grid"
664
+ msgstr ""
665
+
666
+ #: widgets/flickr.php:163, widgets/pinterest.php:150
667
+ msgid "Colomns Per Row"
668
+ msgstr ""
669
+
670
+ #: widgets/flickr.php:183, widgets/pinterest.php:170
671
+ msgid "Number of Rows"
672
+ msgstr ""
673
+
674
+ #: widgets/gravatar.php:32, widgets/gravatar.php:50, widgets/gravatar.php:88, widgets/gravatar.php:187
675
  msgid "Gravatar"
676
  msgstr ""
677
 
678
+ #: widgets/gravatar.php:95
679
  msgid "Email"
680
  msgstr ""
681
 
682
+ #: widgets/gravatar.php:97
683
  msgid "your@email.com"
684
  msgstr ""
685
 
686
+ #: widgets/image-accordion.php:37, widgets/image-accordion.php:55, widgets/image-accordion.php:93
687
+ msgid "Image Accordion"
688
+ msgstr ""
689
+
690
+ #: widgets/image-accordion.php:100
691
+ msgid "Images"
692
+ msgstr ""
693
+
694
+ #: widgets/image-accordion.php:104
695
+ msgid "Type out sentence"
696
+ msgstr ""
697
+
698
+ #: widgets/image-accordion.php:107
699
+ msgid "and delete them"
700
+ msgstr ""
701
+
702
+ #: widgets/image-accordion.php:110
703
+ msgid "with beautifull animation"
704
+ msgstr ""
705
+
706
+ #: widgets/image-accordion.php:124, widgets/image-accordion.php:126, widgets/image-accordion.php:303
707
+ msgid "Caption"
708
+ msgstr ""
709
+
710
+ #: widgets/image-accordion.php:145
711
+ msgid "Container"
712
+ msgstr ""
713
+
714
+ #: widgets/image-accordion.php:153
715
+ msgid "Height"
716
+ msgstr ""
717
+
718
+ #: widgets/image-accordion.php:176
719
+ msgid "Direction"
720
+ msgstr ""
721
+
722
+ #: widgets/image-accordion.php:181
723
+ msgid "Right to Left"
724
+ msgstr ""
725
+
726
+ #: widgets/image-accordion.php:185
727
+ msgid "Left to Right"
728
+ msgstr ""
729
+
730
+ #: widgets/image-accordion.php:225
731
+ msgid "Image Alignment"
732
+ msgstr ""
733
+
734
+ #: widgets/image-accordion.php:252
735
+ msgid "Transition Speed (ms)"
736
+ msgstr ""
737
+
738
+ #: widgets/image-accordion.php:279
739
+ msgid "Opened Image Size (%)"
740
+ msgstr ""
741
+
742
+ #: widgets/image-accordion.php:338
743
+ msgid "Vertical Alignment"
744
+ msgstr ""
745
+
746
+ #: widgets/image-accordion.php:343
747
+ msgid "Top"
748
+ msgstr ""
749
+
750
+ #: widgets/image-accordion.php:347
751
+ msgid "Middle"
752
+ msgstr ""
753
+
754
+ #: widgets/image-accordion.php:351
755
+ msgid "Bottom"
756
+ msgstr ""
757
+
758
+ #: widgets/image-accordion.php:501
759
+ msgid "Entrance Animation"
760
+ msgstr ""
761
+
762
+ #: widgets/notes.php:34, widgets/notes.php:52
763
+ msgid "Notes"
764
+ msgstr ""
765
+
766
+ #: widgets/notes.php:90, widgets/notes.php:115
767
+ msgid "Note"
768
+ msgstr ""
769
+
770
+ #: widgets/notes.php:97
771
+ msgid "Note Title"
772
+ msgstr ""
773
+
774
+ #: widgets/notes.php:105
775
+ msgid "Note Content"
776
+ msgstr ""
777
+
778
+ #: widgets/notes.php:123
779
+ msgid "Background"
780
+ msgstr ""
781
+
782
+ #: widgets/notes.php:139
783
+ msgid "Sticker Color"
784
+ msgstr ""
785
+
786
+ #: widgets/notes.php:320
787
+ msgid "Content"
788
+ msgstr ""
789
+
790
+ #: widgets/pinterest.php:30, widgets/pinterest.php:48, widgets/pinterest.php:86, widgets/pinterest.php:142
791
+ msgid "Pinterest"
792
+ msgstr ""
793
+
794
+ #: widgets/pinterest.php:93
795
+ msgid "Pinterest Username"
796
+ msgstr ""
797
+
798
+ #: widgets/pinterest.php:95
799
+ msgid "pinterest"
800
+ msgstr ""
801
+
802
+ #: widgets/pinterest.php:116
803
+ msgid "Image page on pinterest"
804
+ msgstr ""
805
+
806
+ #: widgets/post-author.php:39, widgets/post-author.php:61, widgets/post-author.php:170
807
  msgid "%s Author"
808
  msgstr ""
809
 
811
  msgid "Author"
812
  msgstr ""
813
 
814
+ #: widgets/post-author.php:138, widgets/post-custom-field.php:201, widgets/post-date.php:139, widgets/post-excerpt.php:251, widgets/post-featured-image.php:125, widgets/post-title.php:126
815
  msgid "%s URL"
816
  msgstr ""
817
 
818
+ #: widgets/post-author.php:141
819
  msgid "Author URL"
820
  msgstr ""
821
 
822
+ #: widgets/post-author.php:434
823
  msgid "First Name"
824
  msgstr ""
825
 
826
+ #: widgets/post-author.php:435
827
  msgid "Last Name"
828
  msgstr ""
829
 
830
+ #: widgets/post-author.php:436
831
  msgid "First Name + Last Name"
832
  msgstr ""
833
 
834
+ #: widgets/post-author.php:437
835
  msgid "Last Name + First Name"
836
  msgstr ""
837
 
838
+ #: widgets/post-author.php:438
839
  msgid "Nick Name"
840
  msgstr ""
841
 
842
+ #: widgets/post-author.php:439
843
  msgid "Display Name"
844
  msgstr ""
845
 
846
+ #: widgets/post-author.php:440
847
  msgid "User Name"
848
  msgstr ""
849
 
850
+ #: widgets/post-author.php:441
851
  msgid "User Bio"
852
  msgstr ""
853
 
854
+ #: widgets/post-author.php:442
855
  msgid "User Image"
856
  msgstr ""
857
 
867
  msgid "No custom styling can be applied as each theme uses it's own CSS classes and IDs."
868
  msgstr ""
869
 
870
+ #: widgets/post-custom-field.php:39, widgets/post-custom-field.php:63, widgets/post-custom-field.php:105, widgets/post-custom-field.php:245
871
  msgid "%s Custom Field"
872
  msgstr ""
873
 
874
+ #: widgets/post-custom-field.php:121
875
  msgid "Custom Field"
876
  msgstr ""
877
 
878
+ #: widgets/post-custom-field.php:204
879
  msgid "Other Custom Field"
880
  msgstr ""
881
 
882
+ #: widgets/post-custom-field.php:229
883
  msgid "Custom Field Link"
884
  msgstr ""
885
 
886
+ #: widgets/post-date.php:37, widgets/post-date.php:59, widgets/post-date.php:170
887
  msgid "%s Date"
888
  msgstr ""
889
 
899
  msgid "Last Modified Date"
900
  msgstr ""
901
 
902
+ #: widgets/post-excerpt.php:73, widgets/post-excerpt.php:117, widgets/post-excerpt.php:313
903
  msgid "%s Excerpt"
904
  msgstr ""
905
 
906
+ #: widgets/post-featured-image.php:38, widgets/post-featured-image.php:60, widgets/post-featured-image.php:154
907
  msgid "%s Featured Image"
908
  msgstr ""
909
 
910
+ #: widgets/post-featured-image.php:79
911
  msgid "Image Size"
912
  msgstr ""
913
 
927
  msgid "Term"
928
  msgstr ""
929
 
930
+ #: widgets/post-title.php:37, widgets/post-title.php:59, widgets/post-title.php:157
931
  msgid "%s Title"
932
  msgstr ""
933
 
954
  #: widgets/site-counters.php:204
955
  msgid "Label"
956
  msgstr ""
 
 
 
 
{freemius → libs/freemius}/LICENSE.txt RENAMED
File without changes
{freemius → libs/freemius}/README.md RENAMED
File without changes
{freemius → libs/freemius}/assets/css/admin/account.css RENAMED
File without changes
{freemius → libs/freemius}/assets/css/admin/add-ons.css RENAMED
File without changes
{freemius → libs/freemius}/assets/css/admin/checkout.css RENAMED
File without changes
{freemius → libs/freemius}/assets/css/admin/common.css RENAMED
File without changes
{freemius → libs/freemius}/assets/css/admin/connect.css RENAMED
File without changes
{freemius → libs/freemius}/assets/css/admin/deactivation-feedback.css RENAMED
File without changes
{freemius → libs/freemius}/assets/css/admin/debug.css RENAMED
File without changes
{freemius → libs/freemius}/assets/css/admin/dialog-boxes.css RENAMED
File without changes
{freemius → libs/freemius}/assets/css/admin/license-activation.css RENAMED
File without changes
{freemius → libs/freemius}/assets/css/common.css RENAMED
File without changes
{freemius → libs/freemius}/assets/img/plugin-icon.png RENAMED
File without changes
{freemius → libs/freemius}/assets/img/press-elements.png RENAMED
File without changes
{freemius → libs/freemius}/assets/index.php RENAMED
File without changes
{freemius → libs/freemius}/assets/js/nojquery.ba-postmessage.js RENAMED
File without changes
{freemius → libs/freemius}/assets/js/nojquery.ba-postmessage.min.js RENAMED
File without changes
{freemius → libs/freemius}/assets/js/postmessage.js RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/_colors.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/_functions.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/_load.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/_mixins.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/_start.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/_vars.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/admin/_deactivation-feedback.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/admin/_license-activation.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/admin/_license-key-resend.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/admin/_modal-common.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/admin/account.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/admin/add-ons.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/admin/checkout.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/admin/common.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/admin/connect.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/admin/debug.scss RENAMED
File without changes
{freemius → libs/freemius}/assets/scss/admin/dialog-boxes.scss RENAMED
File without changes
{freemius → libs/freemius}/config.php RENAMED
File without changes
{freemius → libs/freemius}/includes/class-freemius-abstract.php RENAMED
File without changes
{freemius → libs/freemius}/includes/class-freemius.php RENAMED
File without changes
{freemius → libs/freemius}/includes/class-fs-api.php RENAMED
File without changes
{freemius → libs/freemius}/includes/class-fs-logger.php RENAMED
File without changes
{freemius → libs/freemius}/includes/class-fs-plugin-updater.php RENAMED
File without changes
{freemius → libs/freemius}/includes/class-fs-security.php RENAMED
File without changes
{freemius → libs/freemius}/includes/debug/class-fs-debug-bar-panel.php RENAMED
File without changes
{freemius → libs/freemius}/includes/debug/debug-bar-start.php RENAMED
File without changes
{freemius → libs/freemius}/includes/debug/index.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-billing.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-entity.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-payment.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-plugin-info.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-plugin-license.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-plugin-plan.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-plugin-tag.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-plugin.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-pricing.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-scope-entity.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-site.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-subscription.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/class-fs-user.php RENAMED
File without changes
{freemius → libs/freemius}/includes/entities/index.php RENAMED
File without changes
{freemius → libs/freemius}/includes/fs-core-functions.php RENAMED
File without changes
{freemius → libs/freemius}/includes/fs-essential-functions.php RENAMED
File without changes
{freemius → libs/freemius}/includes/fs-plugin-info-dialog.php RENAMED
File without changes
{freemius → libs/freemius}/includes/i18n.php RENAMED
File without changes
{freemius → libs/freemius}/includes/index.php RENAMED
File without changes
{freemius → libs/freemius}/includes/l10n.php RENAMED
File without changes
{freemius → libs/freemius}/includes/managers/class-fs-admin-menu-manager.php RENAMED
File without changes
{freemius → libs/freemius}/includes/managers/class-fs-admin-notice-manager.php RENAMED
File without changes
{freemius → libs/freemius}/includes/managers/class-fs-cache-manager.php RENAMED
File without changes
{freemius → libs/freemius}/includes/managers/class-fs-key-value-storage.php RENAMED
File without changes
{freemius → libs/freemius}/includes/managers/class-fs-license-manager.php RENAMED
File without changes
{freemius → libs/freemius}/includes/managers/class-fs-option-manager.php RENAMED
File without changes
{freemius → libs/freemius}/includes/managers/class-fs-plan-manager.php RENAMED
File without changes
{freemius → libs/freemius}/includes/managers/class-fs-plugin-manager.php RENAMED
File without changes
{freemius → libs/freemius}/includes/managers/index.php RENAMED
File without changes
{freemius → libs/freemius}/includes/sdk/Exceptions/ArgumentNotExistException.php RENAMED
File without changes
{freemius → libs/freemius}/includes/sdk/Exceptions/EmptyArgumentException.php RENAMED
File without changes
{freemius → libs/freemius}/includes/sdk/Exceptions/Exception.php RENAMED
File without changes
{freemius → libs/freemius}/includes/sdk/Exceptions/InvalidArgumentException.php RENAMED
File without changes
{freemius → libs/freemius}/includes/sdk/Exceptions/OAuthException.php RENAMED
File without changes
{freemius → libs/freemius}/includes/sdk/Exceptions/index.php RENAMED
File without changes
{freemius → libs/freemius}/includes/sdk/Freemius.php RENAMED
File without changes
{freemius → libs/freemius}/includes/sdk/FreemiusBase.php RENAMED
File without changes
{freemius → libs/freemius}/includes/sdk/LICENSE.txt RENAMED
File without changes
{freemius → libs/freemius}/includes/sdk/index.php RENAMED
File without changes
{freemius → libs/freemius}/includes/supplements/fs-essential-functions-1.1.7.1.php RENAMED
File without changes
{freemius → libs/freemius}/includes/supplements/index.php RENAMED
File without changes
{freemius → libs/freemius}/index.php RENAMED
File without changes
{freemius → libs/freemius}/languages/freemius-da_DK.mo RENAMED
File without changes
{freemius → libs/freemius}/languages/freemius-da_DK.po RENAMED
File without changes
{freemius → libs/freemius}/languages/freemius-en.mo RENAMED
File without changes
{freemius → libs/freemius}/languages/freemius-en.po RENAMED
File without changes
{freemius → libs/freemius}/languages/freemius-he.mo RENAMED
File without changes
{freemius → libs/freemius}/languages/freemius-he.po RENAMED
File without changes
{freemius → libs/freemius}/languages/freemius-it_IT.mo RENAMED
File without changes
{freemius → libs/freemius}/languages/freemius-it_IT.po RENAMED
File without changes
{freemius → libs/freemius}/languages/freemius-ja_JP.mo RENAMED
File without changes
{freemius → libs/freemius}/languages/freemius-ja_JP.po RENAMED
File without changes
{freemius → libs/freemius}/languages/freemius.pot RENAMED
File without changes
{freemius → libs/freemius}/languages/index.php RENAMED
File without changes
{freemius → libs/freemius}/require.php RENAMED
File without changes
{freemius → libs/freemius}/start.php RENAMED
File without changes
{freemius → libs/freemius}/templates/account.php RENAMED
File without changes
{freemius → libs/freemius}/templates/add-ons.php RENAMED
File without changes
{freemius → libs/freemius}/templates/add-trial-to-pricing.php RENAMED
File without changes
{freemius → libs/freemius}/templates/admin-notice.php RENAMED
File without changes
{freemius → libs/freemius}/templates/all-admin-notice.php RENAMED
File without changes
{freemius → libs/freemius}/templates/billing.php RENAMED
File without changes
{freemius → libs/freemius}/templates/checkout-legacy.php RENAMED
File without changes
{freemius → libs/freemius}/templates/checkout.php RENAMED
File without changes
{freemius → libs/freemius}/templates/connect.php RENAMED
File without changes
{freemius → libs/freemius}/templates/contact.php RENAMED
File without changes
{freemius → libs/freemius}/templates/debug.php RENAMED
File without changes
{freemius → libs/freemius}/templates/debug/api-calls.php RENAMED
File without changes
{freemius → libs/freemius}/templates/debug/index.php RENAMED
File without changes
{freemius → libs/freemius}/templates/debug/logger.php RENAMED
File without changes
{freemius → libs/freemius}/templates/debug/plugins-themes-sync.php RENAMED
File without changes
{freemius → libs/freemius}/templates/debug/scheduled-crons.php RENAMED
File without changes
{freemius → libs/freemius}/templates/email.php RENAMED
File without changes
{freemius → libs/freemius}/templates/firewall-issues-js.php RENAMED
File without changes
{freemius → libs/freemius}/templates/forms/deactivation/contact.php RENAMED
File without changes
{freemius → libs/freemius}/templates/forms/deactivation/form.php RENAMED
File without changes
{freemius → libs/freemius}/templates/forms/deactivation/index.php RENAMED
File without changes
{freemius → libs/freemius}/templates/forms/deactivation/retry-skip.php RENAMED
File without changes
{freemius → libs/freemius}/templates/forms/index.php RENAMED
File without changes
{freemius → libs/freemius}/templates/forms/license-activation.php RENAMED
File without changes
{freemius → libs/freemius}/templates/forms/optout.php RENAMED
File without changes
{freemius → libs/freemius}/templates/forms/resend-key.php RENAMED
File without changes
{freemius → libs/freemius}/templates/forms/trial-start.php RENAMED
File without changes
{freemius → libs/freemius}/templates/index.php RENAMED
File without changes
{freemius → libs/freemius}/templates/plugin-icon.php RENAMED
File without changes
{freemius → libs/freemius}/templates/plugin-info/description.php RENAMED
File without changes
{freemius → libs/freemius}/templates/plugin-info/features.php RENAMED
File without changes
{freemius → libs/freemius}/templates/plugin-info/index.php RENAMED
File without changes
{freemius → libs/freemius}/templates/plugin-info/screenshots.php RENAMED
File without changes
{freemius → libs/freemius}/templates/powered-by.php RENAMED
File without changes
{freemius → libs/freemius}/templates/pricing.php RENAMED
File without changes
{freemius → libs/freemius}/templates/sticky-admin-notice-js.php RENAMED
File without changes
libs/twentytwenty/jquery.event.move.js ADDED
@@ -0,0 +1,586 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // jquery.event.move
2
+ //
3
+ // 1.3.6
4
+ //
5
+ // Stephen Band
6
+ //
7
+ // Triggers 'movestart', 'move' and 'moveend' events after
8
+ // mousemoves following a mousedown cross a distance threshold,
9
+ // similar to the native 'dragstart', 'drag' and 'dragend' events.
10
+ // Move events are throttled to animation frames. Move event objects
11
+ // have the properties:
12
+ //
13
+ // pageX:
14
+ // pageY: Page coordinates of pointer.
15
+ // startX:
16
+ // startY: Page coordinates of pointer at movestart.
17
+ // distX:
18
+ // distY: Distance the pointer has moved since movestart.
19
+ // deltaX:
20
+ // deltaY: Distance the finger has moved since last event.
21
+ // velocityX:
22
+ // velocityY: Average velocity over last few events.
23
+
24
+
25
+ (function (module) {
26
+ if (typeof define === 'function' && define.amd) {
27
+ // AMD. Register as an anonymous module.
28
+ define(['jquery'], module);
29
+ } else {
30
+ // Browser globals
31
+ module(jQuery);
32
+ }
33
+ })(function(jQuery, undefined){
34
+
35
+ var // Number of pixels a pressed pointer travels before movestart
36
+ // event is fired.
37
+ threshold = 6,
38
+
39
+ add = jQuery.event.add,
40
+
41
+ remove = jQuery.event.remove,
42
+
43
+ // Just sugar, so we can have arguments in the same order as
44
+ // add and remove.
45
+ trigger = function(node, type, data) {
46
+ jQuery.event.trigger(type, data, node);
47
+ },
48
+
49
+ // Shim for requestAnimationFrame, falling back to timer. See:
50
+ // see http://paulirish.com/2011/requestanimationframe-for-smart-animating/
51
+ requestFrame = (function(){
52
+ return (
53
+ window.requestAnimationFrame ||
54
+ window.webkitRequestAnimationFrame ||
55
+ window.mozRequestAnimationFrame ||
56
+ window.oRequestAnimationFrame ||
57
+ window.msRequestAnimationFrame ||
58
+ function(fn, element){
59
+ return window.setTimeout(function(){
60
+ fn();
61
+ }, 25);
62
+ }
63
+ );
64
+ })(),
65
+
66
+ ignoreTags = {
67
+ textarea: true,
68
+ input: true,
69
+ select: true,
70
+ button: true
71
+ },
72
+
73
+ mouseevents = {
74
+ move: 'mousemove',
75
+ cancel: 'mouseup dragstart',
76
+ end: 'mouseup'
77
+ },
78
+
79
+ touchevents = {
80
+ move: 'touchmove',
81
+ cancel: 'touchend',
82
+ end: 'touchend'
83
+ };
84
+
85
+
86
+ // Constructors
87
+
88
+ function Timer(fn){
89
+ var callback = fn,
90
+ active = false,
91
+ running = false;
92
+
93
+ function trigger(time) {
94
+ if (active){
95
+ callback();
96
+ requestFrame(trigger);
97
+ running = true;
98
+ active = false;
99
+ }
100
+ else {
101
+ running = false;
102
+ }
103
+ }
104
+
105
+ this.kick = function(fn) {
106
+ active = true;
107
+ if (!running) { trigger(); }
108
+ };
109
+
110
+ this.end = function(fn) {
111
+ var cb = callback;
112
+
113
+ if (!fn) { return; }
114
+
115
+ // If the timer is not running, simply call the end callback.
116
+ if (!running) {
117
+ fn();
118
+ }
119
+ // If the timer is running, and has been kicked lately, then
120
+ // queue up the current callback and the end callback, otherwise
121
+ // just the end callback.
122
+ else {
123
+ callback = active ?
124
+ function(){ cb(); fn(); } :
125
+ fn ;
126
+
127
+ active = true;
128
+ }
129
+ };
130
+ }
131
+
132
+
133
+ // Functions
134
+
135
+ function returnTrue() {
136
+ return true;
137
+ }
138
+
139
+ function returnFalse() {
140
+ return false;
141
+ }
142
+
143
+ function preventDefault(e) {
144
+ e.preventDefault();
145
+ }
146
+
147
+ function preventIgnoreTags(e) {
148
+ // Don't prevent interaction with form elements.
149
+ if (ignoreTags[ e.target.tagName.toLowerCase() ]) { return; }
150
+
151
+ e.preventDefault();
152
+ }
153
+
154
+ function isLeftButton(e) {
155
+ // Ignore mousedowns on any button other than the left (or primary)
156
+ // mouse button, or when a modifier key is pressed.
157
+ return (e.which === 1 && !e.ctrlKey && !e.altKey);
158
+ }
159
+
160
+ function identifiedTouch(touchList, id) {
161
+ var i, l;
162
+
163
+ if (touchList.identifiedTouch) {
164
+ return touchList.identifiedTouch(id);
165
+ }
166
+
167
+ // touchList.identifiedTouch() does not exist in
168
+ // webkit yet… we must do the search ourselves...
169
+
170
+ i = -1;
171
+ l = touchList.length;
172
+
173
+ while (++i < l) {
174
+ if (touchList[i].identifier === id) {
175
+ return touchList[i];
176
+ }
177
+ }
178
+ }
179
+
180
+ function changedTouch(e, event) {
181
+ var touch = identifiedTouch(e.changedTouches, event.identifier);
182
+
183
+ // This isn't the touch you're looking for.
184
+ if (!touch) { return; }
185
+
186
+ // Chrome Android (at least) includes touches that have not
187
+ // changed in e.changedTouches. That's a bit annoying. Check
188
+ // that this touch has changed.
189
+ if (touch.pageX === event.pageX && touch.pageY === event.pageY) { return; }
190
+
191
+ return touch;
192
+ }
193
+
194
+
195
+ // Handlers that decide when the first movestart is triggered
196
+
197
+ function mousedown(e){
198
+ var data;
199
+
200
+ if (!isLeftButton(e)) { return; }
201
+
202
+ data = {
203
+ target: e.target,
204
+ startX: e.pageX,
205
+ startY: e.pageY,
206
+ timeStamp: e.timeStamp
207
+ };
208
+
209
+ add(document, mouseevents.move, mousemove, data);
210
+ add(document, mouseevents.cancel, mouseend, data);
211
+ }
212
+
213
+ function mousemove(e){
214
+ var data = e.data;
215
+
216
+ checkThreshold(e, data, e, removeMouse);
217
+ }
218
+
219
+ function mouseend(e) {
220
+ removeMouse();
221
+ }
222
+
223
+ function removeMouse() {
224
+ remove(document, mouseevents.move, mousemove);
225
+ remove(document, mouseevents.cancel, mouseend);
226
+ }
227
+
228
+ function touchstart(e) {
229
+ var touch, template;
230
+
231
+ // Don't get in the way of interaction with form elements.
232
+ if (ignoreTags[ e.target.tagName.toLowerCase() ]) { return; }
233
+
234
+ touch = e.changedTouches[0];
235
+
236
+ // iOS live updates the touch objects whereas Android gives us copies.
237
+ // That means we can't trust the touchstart object to stay the same,
238
+ // so we must copy the data. This object acts as a template for
239
+ // movestart, move and moveend event objects.
240
+ template = {
241
+ target: touch.target,
242
+ startX: touch.pageX,
243
+ startY: touch.pageY,
244
+ timeStamp: e.timeStamp,
245
+ identifier: touch.identifier
246
+ };
247
+
248
+ // Use the touch identifier as a namespace, so that we can later
249
+ // remove handlers pertaining only to this touch.
250
+ add(document, touchevents.move + '.' + touch.identifier, touchmove, template);
251
+ add(document, touchevents.cancel + '.' + touch.identifier, touchend, template);
252
+ }
253
+
254
+ function touchmove(e){
255
+ var data = e.data,
256
+ touch = changedTouch(e, data);
257
+
258
+ if (!touch) { return; }
259
+
260
+ checkThreshold(e, data, touch, removeTouch);
261
+ }
262
+
263
+ function touchend(e) {
264
+ var template = e.data,
265
+ touch = identifiedTouch(e.changedTouches, template.identifier);
266
+
267
+ if (!touch) { return; }
268
+
269
+ removeTouch(template.identifier);
270
+ }
271
+
272
+ function removeTouch(identifier) {
273
+ remove(document, '.' + identifier, touchmove);
274
+ remove(document, '.' + identifier, touchend);
275
+ }
276
+
277
+
278
+ // Logic for deciding when to trigger a movestart.
279
+
280
+ function checkThreshold(e, template, touch, fn) {
281
+ var distX = touch.pageX - template.startX,
282
+ distY = touch.pageY - template.startY;
283
+
284
+ // Do nothing if the threshold has not been crossed.
285
+ if ((distX * distX) + (distY * distY) < (threshold * threshold)) { return; }
286
+
287
+ triggerStart(e, template, touch, distX, distY, fn);
288
+ }
289
+
290
+ function handled() {
291
+ // this._handled should return false once, and after return true.
292
+ this._handled = returnTrue;
293
+ return false;
294
+ }
295
+
296
+ function flagAsHandled(e) {
297
+ e._handled();
298
+ }
299
+
300
+ function triggerStart(e, template, touch, distX, distY, fn) {
301
+ var node = template.target,
302
+ touches, time;
303
+
304
+ touches = e.targetTouches;
305
+ time = e.timeStamp - template.timeStamp;
306
+
307
+ // Create a movestart object with some special properties that
308
+ // are passed only to the movestart handlers.
309
+ template.type = 'movestart';
310
+ template.distX = distX;
311
+ template.distY = distY;
312
+ template.deltaX = distX;
313
+ template.deltaY = distY;
314
+ template.pageX = touch.pageX;
315
+ template.pageY = touch.pageY;
316
+ template.velocityX = distX / time;
317
+ template.velocityY = distY / time;
318
+ template.targetTouches = touches;
319
+ template.finger = touches ?
320
+ touches.length :
321
+ 1 ;
322
+
323
+ // The _handled method is fired to tell the default movestart
324
+ // handler that one of the move events is bound.
325
+ template._handled = handled;
326
+
327
+ // Pass the touchmove event so it can be prevented if or when
328
+ // movestart is handled.
329
+ template._preventTouchmoveDefault = function() {
330
+ e.preventDefault();
331
+ };
332
+
333
+ // Trigger the movestart event.
334
+ trigger(template.target, template);
335
+
336
+ // Unbind handlers that tracked the touch or mouse up till now.
337
+ fn(template.identifier);
338
+ }
339
+
340
+
341
+ // Handlers that control what happens following a movestart
342
+
343
+ function activeMousemove(e) {
344
+ var timer = e.data.timer;
345
+
346
+ e.data.touch = e;
347
+ e.data.timeStamp = e.timeStamp;
348
+ timer.kick();
349
+ }
350
+
351
+ function activeMouseend(e) {
352
+ var event = e.data.event,
353
+ timer = e.data.timer;
354
+
355
+ removeActiveMouse();
356
+
357
+ endEvent(event, timer, function() {
358
+ // Unbind the click suppressor, waiting until after mouseup
359
+ // has been handled.
360
+ setTimeout(function(){
361
+ remove(event.target, 'click', returnFalse);
362
+ }, 0);
363
+ });
364
+ }
365
+
366
+ function removeActiveMouse(event) {
367
+ remove(document, mouseevents.move, activeMousemove);
368
+ remove(document, mouseevents.end, activeMouseend);
369
+ }
370
+
371
+ function activeTouchmove(e) {
372
+ var event = e.data.event,
373
+ timer = e.data.timer,
374
+ touch = changedTouch(e, event);
375
+
376
+ if (!touch) { return; }
377
+
378
+ // Stop the interface from gesturing
379
+ e.preventDefault();
380
+
381
+ event.targetTouches = e.targetTouches;
382
+ e.data.touch = touch;
383
+ e.data.timeStamp = e.timeStamp;
384
+ timer.kick();
385
+ }
386
+
387
+ function activeTouchend(e) {
388
+ var event = e.data.event,
389
+ timer = e.data.timer,
390
+ touch = identifiedTouch(e.changedTouches, event.identifier);
391
+
392
+ // This isn't the touch you're looking for.
393
+ if (!touch) { return; }
394
+
395
+ removeActiveTouch(event);
396
+ endEvent(event, timer);
397
+ }
398
+
399
+ function removeActiveTouch(event) {
400
+ remove(document, '.' + event.identifier, activeTouchmove);
401
+ remove(document, '.' + event.identifier, activeTouchend);
402
+ }
403
+
404
+
405
+ // Logic for triggering move and moveend events
406
+
407
+ function updateEvent(event, touch, timeStamp, timer) {
408
+ var time = timeStamp - event.timeStamp;
409
+
410
+ event.type = 'move';
411
+ event.distX = touch.pageX - event.startX;
412
+ event.distY = touch.pageY - event.startY;
413
+ event.deltaX = touch.pageX - event.pageX;
414
+ event.deltaY = touch.pageY - event.pageY;
415
+
416
+ // Average the velocity of the last few events using a decay
417
+ // curve to even out spurious jumps in values.
418
+ event.velocityX = 0.3 * event.velocityX + 0.7 * event.deltaX / time;
419
+ event.velocityY = 0.3 * event.velocityY + 0.7 * event.deltaY / time;
420
+ event.pageX = touch.pageX;
421
+ event.pageY = touch.pageY;
422
+ }
423
+
424
+ function endEvent(event, timer, fn) {
425
+ timer.end(function(){
426
+ event.type = 'moveend';
427
+
428
+ trigger(event.target, event);
429
+
430
+ return fn && fn();
431
+ });
432
+ }
433
+
434
+
435
+ // jQuery special event definition
436
+
437
+ function setup(data, namespaces, eventHandle) {
438
+ // Stop the node from being dragged
439
+ //add(this, 'dragstart.move drag.move', preventDefault);
440
+
441
+ // Prevent text selection and touch interface scrolling
442
+ //add(this, 'mousedown.move', preventIgnoreTags);
443
+
444
+ // Tell movestart default handler that we've handled this
445
+ add(this, 'movestart.move', flagAsHandled);
446
+
447
+ // Don't bind to the DOM. For speed.
448
+ return true;
449
+ }
450
+
451
+ function teardown(namespaces) {
452
+ remove(this, 'dragstart drag', preventDefault);
453
+ remove(this, 'mousedown touchstart', preventIgnoreTags);
454
+ remove(this, 'movestart', flagAsHandled);
455
+
456
+ // Don't bind to the DOM. For speed.
457
+ return true;
458
+ }
459
+
460
+ function addMethod(handleObj) {
461
+ // We're not interested in preventing defaults for handlers that
462
+ // come from internal move or moveend bindings
463
+ if (handleObj.namespace === "move" || handleObj.namespace === "moveend") {
464
+ return;
465
+ }
466
+
467
+ // Stop the node from being dragged
468
+ add(this, 'dragstart.' + handleObj.guid + ' drag.' + handleObj.guid, preventDefault, undefined, handleObj.selector);
469
+
470
+ // Prevent text selection and touch interface scrolling
471
+ add(this, 'mousedown.' + handleObj.guid, preventIgnoreTags, undefined, handleObj.selector);
472
+ }
473
+
474
+ function removeMethod(handleObj) {
475
+ if (handleObj.namespace === "move" || handleObj.namespace === "moveend") {
476
+ return;
477
+ }
478
+
479
+ remove(this, 'dragstart.' + handleObj.guid + ' drag.' + handleObj.guid);
480
+ remove(this, 'mousedown.' + handleObj.guid);
481
+ }
482
+
483
+ jQuery.event.special.movestart = {
484
+ setup: setup,
485
+ teardown: teardown,
486
+ add: addMethod,
487
+ remove: removeMethod,
488
+
489
+ _default: function(e) {
490
+ var event, data;
491
+
492
+ // If no move events were bound to any ancestors of this
493
+ // target, high tail it out of here.
494
+ if (!e._handled()) { return; }
495
+
496
+ function update(time) {
497
+ updateEvent(event, data.touch, data.timeStamp);
498
+ trigger(e.target, event);
499
+ }
500
+
501
+ event = {
502
+ target: e.target,
503
+ startX: e.startX,
504
+ startY: e.startY,
505
+ pageX: e.pageX,
506
+ pageY: e.pageY,
507
+ distX: e.distX,
508
+ distY: e.distY,
509
+ deltaX: e.deltaX,
510
+ deltaY: e.deltaY,
511
+ velocityX: e.velocityX,
512
+ velocityY: e.velocityY,
513
+ timeStamp: e.timeStamp,
514
+ identifier: e.identifier,
515
+ targetTouches: e.targetTouches,
516
+ finger: e.finger
517
+ };
518
+
519
+ data = {
520
+ event: event,
521
+ timer: new Timer(update),
522
+ touch: undefined,
523
+ timeStamp: undefined
524
+ };
525
+
526
+ if (e.identifier === undefined) {
527
+ // We're dealing with a mouse
528
+ // Stop clicks from propagating during a move
529
+ add(e.target, 'click', returnFalse);
530
+ add(document, mouseevents.move, activeMousemove, data);
531
+ add(document, mouseevents.end, activeMouseend, data);
532
+ }
533
+ else {
534
+ // We're dealing with a touch. Stop touchmove doing
535
+ // anything defaulty.
536
+ e._preventTouchmoveDefault();
537
+ add(document, touchevents.move + '.' + e.identifier, activeTouchmove, data);
538
+ add(document, touchevents.end + '.' + e.identifier, activeTouchend, data);
539
+ }
540
+ }
541
+ };
542
+
543
+ jQuery.event.special.move = {
544
+ setup: function() {
545
+ // Bind a noop to movestart. Why? It's the movestart
546
+ // setup that decides whether other move events are fired.
547
+ add(this, 'movestart.move', jQuery.noop);
548
+ },
549
+
550
+ teardown: function() {
551
+ remove(this, 'movestart.move', jQuery.noop);
552
+ }
553
+ };
554
+
555
+ jQuery.event.special.moveend = {
556
+ setup: function() {
557
+ // Bind a noop to movestart. Why? It's the movestart
558
+ // setup that decides whether other move events are fired.
559
+ add(this, 'movestart.moveend', jQuery.noop);
560
+ },
561
+
562
+ teardown: function() {
563
+ remove(this, 'movestart.moveend', jQuery.noop);
564
+ }
565
+ };
566
+
567
+ add(document, 'mousedown.move', mousedown);
568
+ add(document, 'touchstart.move', touchstart);
569
+
570
+ // Make jQuery copy touch event properties over to the jQuery event
571
+ // object, if they are not already listed. But only do the ones we
572
+ // really need. IE7/8 do not have Array#indexOf(), but nor do they
573
+ // have touch events, so let's assume we can ignore them.
574
+ if (typeof Array.prototype.indexOf === 'function') {
575
+ (function(jQuery, undefined){
576
+ var props = ["changedTouches", "targetTouches"],
577
+ l = props.length;
578
+
579
+ while (l--) {
580
+ if (jQuery.event.props.indexOf(props[l]) === -1) {
581
+ jQuery.event.props.push(props[l]);
582
+ }
583
+ }
584
+ })(jQuery);
585
+ };
586
+ });
libs/twentytwenty/jquery.twentytwenty.js ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($){
2
+
3
+ $.fn.twentytwenty = function(options) {
4
+ var options = $.extend({default_offset_pct: 0.5, orientation: 'horizontal'}, options);
5
+ return this.each(function() {
6
+
7
+ var sliderPct = options.default_offset_pct;
8
+ var container = $(this);
9
+ var sliderOrientation = options.orientation;
10
+ var beforeDirection = (sliderOrientation === 'vertical') ? 'down' : 'left';
11
+ var afterDirection = (sliderOrientation === 'vertical') ? 'up' : 'right';
12
+
13
+
14
+ container.wrap("<div class='twentytwenty-wrapper twentytwenty-" + sliderOrientation + "'></div>");
15
+ container.append("<div class='twentytwenty-overlay'></div>");
16
+ var beforeImg = container.find("img:first");
17
+ var afterImg = container.find("img:last");
18
+ container.append("<div class='twentytwenty-handle'></div>");
19
+ var slider = container.find(".twentytwenty-handle");
20
+ slider.append("<span class='twentytwenty-" + beforeDirection + "-arrow'></span>");
21
+ slider.append("<span class='twentytwenty-" + afterDirection + "-arrow'></span>");
22
+ container.addClass("twentytwenty-container");
23
+ beforeImg.addClass("twentytwenty-before");
24
+ afterImg.addClass("twentytwenty-after");
25
+
26
+ var overlay = container.find(".twentytwenty-overlay");
27
+ overlay.append("<div class='twentytwenty-before-label'></div>");
28
+ overlay.append("<div class='twentytwenty-after-label'></div>");
29
+
30
+ var calcOffset = function(dimensionPct) {
31
+ var w = beforeImg.width();
32
+ var h = beforeImg.height();
33
+ return {
34
+ w: w+"px",
35
+ h: h+"px",
36
+ cw: (dimensionPct*w)+"px",
37
+ ch: (dimensionPct*h)+"px"
38
+ };
39
+ };
40
+
41
+ var adjustContainer = function(offset) {
42
+ if (sliderOrientation === 'vertical') {
43
+ beforeImg.css("clip", "rect(0,"+offset.w+","+offset.ch+",0)");
44
+ }
45
+ else {
46
+ beforeImg.css("clip", "rect(0,"+offset.cw+","+offset.h+",0)");
47
+ }
48
+ container.css("height", offset.h);
49
+ };
50
+
51
+ var adjustSlider = function(pct) {
52
+ var offset = calcOffset(pct);
53
+ slider.css((sliderOrientation==="vertical") ? "top" : "left", (sliderOrientation==="vertical") ? offset.ch : offset.cw);
54
+ adjustContainer(offset);
55
+ }
56
+
57
+ $(window).on("resize.twentytwenty", function(e) {
58
+ adjustSlider(sliderPct);
59
+ });
60
+
61
+ var offsetX = 0;
62
+ var offsetY = 0;
63
+ var imgWidth = 0;
64
+ var imgHeight = 0;
65
+
66
+ slider.on("movestart", function(e) {
67
+ if (((e.distX > e.distY && e.distX < -e.distY) || (e.distX < e.distY && e.distX > -e.distY)) && sliderOrientation !== 'vertical') {
68
+ e.preventDefault();
69
+ }
70
+ else if (((e.distX < e.distY && e.distX < -e.distY) || (e.distX > e.distY && e.distX > -e.distY)) && sliderOrientation === 'vertical') {
71
+ e.preventDefault();
72
+ }
73
+ container.addClass("active");
74
+ offsetX = container.offset().left;
75
+ offsetY = container.offset().top;
76
+ imgWidth = beforeImg.width();
77
+ imgHeight = beforeImg.height();
78
+ });
79
+
80
+ slider.on("moveend", function(e) {
81
+ container.removeClass("active");
82
+ });
83
+
84
+ slider.on("move", function(e) {
85
+ if (container.hasClass("active")) {
86
+ sliderPct = (sliderOrientation === 'vertical') ? (e.pageY-offsetY)/imgHeight : (e.pageX-offsetX)/imgWidth;
87
+ if (sliderPct < 0) {
88
+ sliderPct = 0;
89
+ }
90
+ if (sliderPct > 1) {
91
+ sliderPct = 1;
92
+ }
93
+ adjustSlider(sliderPct);
94
+ }
95
+ });
96
+
97
+ container.find("img").on("mousedown", function(event) {
98
+ event.preventDefault();
99
+ });
100
+
101
+ $(window).trigger("resize.twentytwenty");
102
+ });
103
+ };
104
+
105
+ })(jQuery);
press-elements-admin.php CHANGED
@@ -56,7 +56,7 @@ class Press_Elements_Admin {
56
  $capability = apply_filters( 'press_elements_menu_display_capability', 'manage_options' );
57
 
58
  // About
59
- add_theme_page(
60
  esc_html__( 'Press Elements - Widgets for Elementor', 'press-elements' ),
61
  esc_html__( 'Press Elements', 'press-elements' ),
62
  $capability,
@@ -79,10 +79,12 @@ class Press_Elements_Admin {
79
  $tab = isset( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ) : 'about';
80
  ?>
81
  <h2 class="nav-tab-wrapper">
82
- <a class="nav-tab <?php echo ( 'about' === $tab ) ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'press-elements', 'tab' => 'about' ), 'themes.php' ) ) ); ?>"><?php esc_html_e( 'About', 'press-elements' ); ?></a>
83
- <a class="nav-tab <?php echo ( 'getting-started' === $tab ) ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'press-elements', 'tab' => 'getting-started' ), 'themes.php' ) ) ); ?>"><?php esc_html_e( 'Getting Started', 'press-elements' ); ?></a>
84
- <a class="nav-tab <?php echo ( 'changelog' === $tab ) ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'press-elements', 'tab' => 'changelog' ), 'themes.php' ) ) ); ?>"><?php esc_html_e( 'Changelog', 'press-elements' ); ?></a>
85
- <a class="nav-tab" href="<?php echo press_elements_freemius()->get_upgrade_url(); ?>"><?php esc_html_e( 'Pro Version', 'press-elements' ); ?></a>
 
 
86
  </h2>
87
  <?php
88
  }
@@ -160,7 +162,7 @@ class Press_Elements_Admin {
160
 
161
  <p class="about-text"><?php esc_html_e( 'When using page builders, you need to create all the page element for each page over and over again. Currently you can\'t design single page templates and apply the design on the post. When you use the template system you need to manually change titles and images for each post/page.', 'press-elements' ); ?></p>
162
 
163
- <p class="about-text"><?php esc_html_e( 'With Press Elements you can create custom designs with post elements and save them as template. When you apply the template on other posts, it will inherite the data from the new post. No more manual updates!', 'press-elements' ); ?></p>
164
 
165
  <p class="about-text"><?php esc_html_e( 'You don\'t need to hire developers to generate custom page templates - with Press Elements you can do it using a simple drag & drop interface! Now you can design different templates for different blog posts, pages and other Post Types. When creating new posts, load your predefined templates from your template library.', 'press-elements' ); ?></p>
166
 
@@ -186,10 +188,18 @@ class Press_Elements_Admin {
186
  <li><?php esc_html_e( 'Post Custom Field (Pro)', 'press-elements' ); ?></li>
187
  <li><?php esc_html_e( 'Post Comments', 'press-elements' ); ?></li>
188
  </ol>
 
 
 
 
 
 
189
  <p style="text-decoration: underline;"><?php esc_html_e( 'Integrations:', 'press-elements' ); ?></p>
190
  <ol>
191
  <li><?php esc_html_e( 'Advanced Custom Fields (Pro)', 'press-elements' ); ?></li>
192
  <li><?php esc_html_e( 'Gravatar (Pro)', 'press-elements' ); ?></li>
 
 
193
  </ol>
194
 
195
  <h3><?php esc_html_e( 'Coming Soon', 'press-elements' ); ?></h3>
@@ -205,10 +215,9 @@ class Press_Elements_Admin {
205
  <li><?php esc_html_e( 'Comments List', 'press-elements' ); ?></li>
206
  <li><?php esc_html_e( 'Comments Pagination', 'press-elements' ); ?></li>
207
  </ol>
208
- <p style="text-decoration: underline;"><?php esc_html_e( 'Integrations:', 'press-elements' ); ?></p>
209
  <ol>
210
- <li><?php esc_html_e( 'Flickr (Pro)', 'press-elements' ); ?></li>
211
- <li><?php esc_html_e( 'Pinterest (Pro)', 'press-elements' ); ?></li>
212
  </ol>
213
 
214
  </div>
@@ -294,6 +303,24 @@ class Press_Elements_Admin {
294
  <figcaption><?php esc_html_e( 'Display Gravatars based on an email address.', 'press-elements' ); ?></figcaption>
295
  </figure>
296
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
297
  </div>
298
 
299
  </div>
56
  $capability = apply_filters( 'press_elements_menu_display_capability', 'manage_options' );
57
 
58
  // About
59
+ add_options_page(
60
  esc_html__( 'Press Elements - Widgets for Elementor', 'press-elements' ),
61
  esc_html__( 'Press Elements', 'press-elements' ),
62
  $capability,
79
  $tab = isset( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ) : 'about';
80
  ?>
81
  <h2 class="nav-tab-wrapper">
82
+ <a class="nav-tab <?php echo ( 'about' === $tab ) ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'press-elements', 'tab' => 'about' ), 'options-general.php' ) ) ); ?>"><?php esc_html_e( 'About', 'press-elements' ); ?></a>
83
+ <a class="nav-tab <?php echo ( 'getting-started' === $tab ) ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'press-elements', 'tab' => 'getting-started' ), 'options-general.php' ) ) ); ?>"><?php esc_html_e( 'Getting Started', 'press-elements' ); ?></a>
84
+ <a class="nav-tab <?php echo ( 'changelog' === $tab ) ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'press-elements', 'tab' => 'changelog' ), 'options-general.php' ) ) ); ?>"><?php esc_html_e( 'Changelog', 'press-elements' ); ?></a>
85
+ <a class="nav-tab" href="<?php echo press_elements_freemius()->get_upgrade_url(); ?>"><?php esc_html_e( 'Pricing', 'press-elements' ); ?></a>
86
+ <a class="nav-tab" href="<?php echo press_elements_freemius()->get_account_url(); ?>"><?php esc_html_e( 'Account', 'press-elements' ); ?></a>
87
+ <a class="nav-tab" href="https://wordpress.org/support/plugin/press-elements" target="_blank"><?php esc_html_e( 'Support Forum', 'press-elements' ); ?></a>
88
  </h2>
89
  <?php
90
  }
162
 
163
  <p class="about-text"><?php esc_html_e( 'When using page builders, you need to create all the page element for each page over and over again. Currently you can\'t design single page templates and apply the design on the post. When you use the template system you need to manually change titles and images for each post/page.', 'press-elements' ); ?></p>
164
 
165
+ <p class="about-text"><?php esc_html_e( 'With Press Elements you can create custom designs with post elements and save them as template. When you apply the template on other posts, it will inherit the data from the new post. No more manual updates!', 'press-elements' ); ?></p>
166
 
167
  <p class="about-text"><?php esc_html_e( 'You don\'t need to hire developers to generate custom page templates - with Press Elements you can do it using a simple drag & drop interface! Now you can design different templates for different blog posts, pages and other Post Types. When creating new posts, load your predefined templates from your template library.', 'press-elements' ); ?></p>
168
 
188
  <li><?php esc_html_e( 'Post Custom Field (Pro)', 'press-elements' ); ?></li>
189
  <li><?php esc_html_e( 'Post Comments', 'press-elements' ); ?></li>
190
  </ol>
191
+ <p style="text-decoration: underline;"><?php esc_html_e( 'Effects:', 'press-elements' ); ?></p>
192
+ <ol>
193
+ <li><?php esc_html_e( 'Image Accordion (Pro)', 'press-elements' ); ?></li>
194
+ <li><?php esc_html_e( 'Before After Effect (Pro)', 'press-elements' ); ?></li>
195
+ <li><?php esc_html_e( 'Notes (Pro)', 'press-elements' ); ?></li>
196
+ </ol>
197
  <p style="text-decoration: underline;"><?php esc_html_e( 'Integrations:', 'press-elements' ); ?></p>
198
  <ol>
199
  <li><?php esc_html_e( 'Advanced Custom Fields (Pro)', 'press-elements' ); ?></li>
200
  <li><?php esc_html_e( 'Gravatar (Pro)', 'press-elements' ); ?></li>
201
+ <li><?php esc_html_e( 'Flickr (Pro)', 'press-elements' ); ?></li>
202
+ <li><?php esc_html_e( 'Pinterest (Pro)', 'press-elements' ); ?></li>
203
  </ol>
204
 
205
  <h3><?php esc_html_e( 'Coming Soon', 'press-elements' ); ?></h3>
215
  <li><?php esc_html_e( 'Comments List', 'press-elements' ); ?></li>
216
  <li><?php esc_html_e( 'Comments Pagination', 'press-elements' ); ?></li>
217
  </ol>
218
+ <p style="text-decoration: underline;"><?php esc_html_e( 'Effects:', 'press-elements' ); ?></p>
219
  <ol>
220
+ <li><?php esc_html_e( 'Typing Effect (Pro)', 'press-elements' ); ?></li>
 
221
  </ol>
222
 
223
  </div>
303
  <figcaption><?php esc_html_e( 'Display Gravatars based on an email address.', 'press-elements' ); ?></figcaption>
304
  </figure>
305
 
306
+ <br>
307
+
308
+ <figure>
309
+ <a href="<?php echo esc_url( plugins_url( 'screenshot-10.png', __FILE__ ) ); ?>" target="_blank">
310
+ <img src="<?php echo esc_url( plugins_url( 'screenshot-10.png', __FILE__ ) ); ?>" alt="<?php esc_attr_e( 'Display Flickr photostream based on Flickr User ID.', 'press-elements' ); ?>">
311
+ </a>
312
+ <figcaption><?php esc_html_e( 'Display Flickr photostream based on Flickr User ID.', 'press-elements' ); ?></figcaption>
313
+ </figure>
314
+
315
+ <br>
316
+
317
+ <figure>
318
+ <a href="<?php echo esc_url( plugins_url( 'screenshot-11.png', __FILE__ ) ); ?>" target="_blank">
319
+ <img src="<?php echo esc_url( plugins_url( 'screenshot-11.png', __FILE__ ) ); ?>" alt="<?php esc_attr_e( 'Display Pinterest pins based on Pinterest username.', 'press-elements' ); ?>">
320
+ </a>
321
+ <figcaption><?php esc_html_e( 'Display Pinterest pins based on Pinterest username.', 'press-elements' ); ?></figcaption>
322
+ </figure>
323
+
324
  </div>
325
 
326
  </div>
press-elements-freemius.php CHANGED
@@ -17,7 +17,7 @@ function press_elements_freemius()
17
 
18
  if ( !isset( $press_elements_freemius ) ) {
19
  // Include Freemius SDK.
20
- require_once dirname( __FILE__ ) . '/freemius/start.php';
21
  $press_elements_freemius = fs_dynamic_init( array(
22
  'id' => '761',
23
  'slug' => 'press-elements',
@@ -29,8 +29,10 @@ function press_elements_freemius()
29
  'menu' => array(
30
  'slug' => 'press-elements',
31
  'contact' => false,
 
 
32
  'parent' => array(
33
- 'slug' => 'themes.php',
34
  ),
35
  ),
36
  'is_live' => true,
@@ -40,7 +42,21 @@ function press_elements_freemius()
40
  return $press_elements_freemius;
41
  }
42
 
43
- // Init Freemius.
 
 
 
 
 
 
 
 
 
 
 
 
44
  press_elements_freemius();
 
 
45
  // Signal that SDK was initiated.
46
  do_action( 'press_elements_freemius_loaded' );
17
 
18
  if ( !isset( $press_elements_freemius ) ) {
19
  // Include Freemius SDK.
20
+ require_once dirname( __FILE__ ) . '/libs/freemius/start.php';
21
  $press_elements_freemius = fs_dynamic_init( array(
22
  'id' => '761',
23
  'slug' => 'press-elements',
29
  'menu' => array(
30
  'slug' => 'press-elements',
31
  'contact' => false,
32
+ 'support' => false,
33
+ 'pricing' => false,
34
  'parent' => array(
35
+ 'slug' => 'options-general.php',
36
  ),
37
  ),
38
  'is_live' => true,
42
  return $press_elements_freemius;
43
  }
44
 
45
+ /**
46
+ * Add header title
47
+ *
48
+ * Insets H1 title to the freemius templates.
49
+ *
50
+ * @since 1.6.0
51
+ */
52
+ function press_elements_freemius_header( $html )
53
+ {
54
+ return sprintf( '<h1>%1$s</h1>%2$s', esc_html_e( 'Press Elements - Widgets for Elementor', 'press-elements' ), $html );
55
+ }
56
+
57
+ // Init Freemius
58
  press_elements_freemius();
59
+ press_elements_freemius()->add_filter( 'templates/account.php', 'press_elements_freemius_header' );
60
+ press_elements_freemius()->add_filter( 'templates/billing.php', 'press_elements_freemius_header' );
61
  // Signal that SDK was initiated.
62
  do_action( 'press_elements_freemius_loaded' );
press-elements-plugin.php CHANGED
@@ -1,162 +1,179 @@
1
- <?php
2
- namespace PressElements;
3
-
4
- use PressElements\Widgets\Press_Elements_Site_Title;
5
- use PressElements\Widgets\Press_Elements_Site_Description;
6
- use PressElements\Widgets\Press_Elements_Site_Logo;
7
- use PressElements\Widgets\Press_Elements_Site_Counters;
8
-
9
- use PressElements\Widgets\Press_Elements_Post_Title;
10
- use PressElements\Widgets\Press_Elements_Post_Excerpt;
11
- use PressElements\Widgets\Press_Elements_Post_Author;
12
- use PressElements\Widgets\Press_Elements_Post_Date;
13
- use PressElements\Widgets\Press_Elements_Post_Terms;
14
- use PressElements\Widgets\Press_Elements_Post_Featured_Image;
15
- use PressElements\Widgets\Press_Elements_Post_Custom_Field;
16
- use PressElements\Widgets\Press_Elements_Post_Comments;
17
-
18
- use PressElements\Widgets\Press_Elements_Advanced_Custom_Fields;
19
- use PressElements\Widgets\Press_Elements_Gravatar;
20
-
21
- // Exit if accessed directly
22
- if ( ! defined( 'ABSPATH' ) ) {
23
- exit;
24
- }
25
-
26
-
27
-
28
  /**
29
  * Main Plugin Class
30
  *
31
  * Register new elementor widget.
32
  *
33
  * @since 1.0.0
34
- */
35
- class Press_Elements_Plugin {
36
-
37
- /**
38
- * Constructor
39
- *
40
- * @since 1.0.0
41
- *
42
- * @access public
43
- */
44
- public function __construct() {
45
- $this->add_actions();
46
- }
47
-
48
- /**
49
- * Add Actions
50
- *
51
- * @since 1.0.0
52
- *
53
- * @access private
54
- */
55
- private function add_actions() {
56
- add_action( 'elementor/init', array( $this, 'add_elementor_category' ) );
57
- add_action( 'elementor/widgets/widgets_registered', [ $this, 'on_widgets_registered' ] );
58
- }
59
-
60
- /**
61
- * On Widgets Registered
62
- *
63
- * @since 1.0.0
64
- *
65
- * @access public
66
- */
67
- public function add_elementor_category(){
68
- \Elementor\Plugin::instance()->elements_manager->add_category(
69
- 'press-elements-site-elements',
70
- [
71
- 'title' => __( 'Site Elements', 'press-elements' ),
72
- 'icon' => 'font'
73
- ],
74
- 1
75
- );
76
- \Elementor\Plugin::instance()->elements_manager->add_category(
77
- 'press-elements-post-elements',
78
- [
79
- 'title' => __( 'Post Elements', 'press-elements' ),
80
- 'icon' => 'font'
81
- ],
82
- 2
83
- );
84
- \Elementor\Plugin::instance()->elements_manager->add_category(
85
- 'press-elements-integrations',
86
- [
87
- 'title' => __( 'Integrations', 'press-elements' ),
88
- 'icon' => 'font'
89
- ],
90
- 3
91
- );
92
- }
93
-
94
- /**
95
- * On Widgets Registered
96
- *
97
- * @since 1.0.0
98
- *
99
- * @access public
100
- */
101
- public function on_widgets_registered() {
102
- $this->includes();
103
- $this->register_widget();
104
- }
105
-
106
- /**
107
- * Includes
108
- *
109
- * @since 1.0.0
110
- *
111
- * @access private
112
- */
113
- private function includes() {
114
- // Site Elements
115
- require_once __DIR__ . '/widgets/site-title.php';
116
- require_once __DIR__ . '/widgets/site-description.php';
117
- require_once __DIR__ . '/widgets/site-logo.php';
118
- require_once __DIR__ . '/widgets/site-counters.php';
119
- // Post Elements
120
- require_once __DIR__ . '/widgets/post-title.php';
121
- require_once __DIR__ . '/widgets/post-excerpt.php';
122
- require_once __DIR__ . '/widgets/post-date.php';
123
- require_once __DIR__ . '/widgets/post-author.php';
124
- require_once __DIR__ . '/widgets/post-terms.php';
125
- require_once __DIR__ . '/widgets/post-featured-image.php';
126
- require_once __DIR__ . '/widgets/post-custom-field.php';
127
- require_once __DIR__ . '/widgets/post-comments.php';
128
- // Integrations
129
- require_once __DIR__ . '/widgets/advanced-custom-fields.php';
130
- require_once __DIR__ . '/widgets/gravatar.php';
131
- }
132
-
133
- /**
134
- * Register Widget
135
- *
136
- * @since 1.0.0
137
- *
138
- * @access private
139
- */
140
- private function register_widget() {
141
- // Site Elements
142
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Site_Title() );
143
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Site_Description() );
144
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Site_Logo() );
145
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Site_Counters() );
146
- // Post Elements
147
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Title() );
148
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Excerpt() );
149
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Date() );
150
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Author() );
151
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Terms() );
152
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Featured_Image() );
153
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Custom_Field() );
154
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Comments() );
155
- // Integrations
156
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Advanced_Custom_Fields() );
157
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Gravatar() );
158
- }
159
-
160
- }
161
-
162
- new Press_Elements_Plugin();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PressElements;
4
+
5
+ use PressElements\Widgets\Press_Elements_Site_Title ;
6
+ use PressElements\Widgets\Press_Elements_Site_Description ;
7
+ use PressElements\Widgets\Press_Elements_Site_Logo ;
8
+ use PressElements\Widgets\Press_Elements_Site_Counters ;
9
+ use PressElements\Widgets\Press_Elements_Post_Title ;
10
+ use PressElements\Widgets\Press_Elements_Post_Excerpt ;
11
+ use PressElements\Widgets\Press_Elements_Post_Author ;
12
+ use PressElements\Widgets\Press_Elements_Post_Date ;
13
+ use PressElements\Widgets\Press_Elements_Post_Terms ;
14
+ use PressElements\Widgets\Press_Elements_Post_Featured_Image ;
15
+ use PressElements\Widgets\Press_Elements_Post_Custom_Field ;
16
+ use PressElements\Widgets\Press_Elements_Post_Comments ;
17
+ use PressElements\Widgets\Press_Elements_Image_Accordion ;
18
+ use PressElements\Widgets\Press_Elements_Before_After_Effect ;
19
+ use PressElements\Widgets\Press_Elements_Notes ;
20
+ use PressElements\Widgets\Press_Elements_Advanced_Custom_Fields ;
21
+ use PressElements\Widgets\Press_Elements_Gravatar ;
22
+ use PressElements\Widgets\Press_Elements_Flickr ;
23
+ use PressElements\Widgets\Press_Elements_Pinterest ;
24
+ // Exit if accessed directly
25
+ if ( !defined( 'ABSPATH' ) ) {
26
+ die;
27
+ }
28
  /**
29
  * Main Plugin Class
30
  *
31
  * Register new elementor widget.
32
  *
33
  * @since 1.0.0
34
+ */
35
+ class Press_Elements_Plugin
36
+ {
37
+ /**
38
+ * Constructor
39
+ *
40
+ * @since 1.0.0
41
+ *
42
+ * @access public
43
+ */
44
+ public function __construct()
45
+ {
46
+ $this->add_actions();
47
+ }
48
+
49
+ /**
50
+ * Add Actions
51
+ *
52
+ * @since 1.0.0
53
+ *
54
+ * @access private
55
+ */
56
+ private function add_actions()
57
+ {
58
+ add_action( 'elementor/init', array( $this, 'add_elementor_category' ) );
59
+ add_action( 'elementor/frontend/after_register_scripts', array( $this, 'register_widget_script' ) );
60
+ add_action( 'elementor/widgets/widgets_registered', array( $this, 'on_widgets_registered' ) );
61
+ }
62
+
63
+ /**
64
+ * On Widgets Registered
65
+ *
66
+ * @since 1.0.0
67
+ *
68
+ * @access public
69
+ */
70
+ public function add_elementor_category()
71
+ {
72
+ \Elementor\Plugin::instance()->elements_manager->add_category( 'press-elements-site-elements', array(
73
+ 'title' => __( 'Site Elements', 'press-elements' ),
74
+ ), 1 );
75
+ \Elementor\Plugin::instance()->elements_manager->add_category( 'press-elements-post-elements', array(
76
+ 'title' => __( 'Post Elements', 'press-elements' ),
77
+ ), 2 );
78
+ \Elementor\Plugin::instance()->elements_manager->add_category( 'press-elements-effects', array(
79
+ 'title' => __( 'Press Elements Pro Effects', 'press-elements' ),
80
+ ), 3 );
81
+ \Elementor\Plugin::instance()->elements_manager->add_category( 'press-elements-integrations', array(
82
+ 'title' => __( 'Press Elements Pro Integrations', 'press-elements' ),
83
+ ), 4 );
84
+ }
85
+
86
+ /**
87
+ * Register Widget Script
88
+ *
89
+ * @since 1.6.0
90
+ *
91
+ * @access public
92
+ */
93
+ public function register_widget_script()
94
+ {
95
+ }
96
+
97
+ /**
98
+ * On Widgets Registered
99
+ *
100
+ * @since 1.0.0
101
+ *
102
+ * @access public
103
+ */
104
+ public function on_widgets_registered()
105
+ {
106
+ $this->includes();
107
+ $this->register_widget();
108
+ }
109
+
110
+ /**
111
+ * Includes
112
+ *
113
+ * @since 1.0.0
114
+ *
115
+ * @access private
116
+ */
117
+ private function includes()
118
+ {
119
+ // Site Elements
120
+ require_once __DIR__ . '/widgets/site-title.php';
121
+ require_once __DIR__ . '/widgets/site-description.php';
122
+ require_once __DIR__ . '/widgets/site-logo.php';
123
+ require_once __DIR__ . '/widgets/site-counters.php';
124
+ // Post Elements
125
+ require_once __DIR__ . '/widgets/post-title.php';
126
+ require_once __DIR__ . '/widgets/post-excerpt.php';
127
+ require_once __DIR__ . '/widgets/post-date.php';
128
+ require_once __DIR__ . '/widgets/post-author.php';
129
+ require_once __DIR__ . '/widgets/post-terms.php';
130
+ require_once __DIR__ . '/widgets/post-featured-image.php';
131
+ require_once __DIR__ . '/widgets/post-custom-field.php';
132
+ require_once __DIR__ . '/widgets/post-comments.php';
133
+ // Effects
134
+ require_once __DIR__ . '/widgets/image-accordion.php';
135
+ require_once __DIR__ . '/widgets/before-after-effect.php';
136
+ require_once __DIR__ . '/widgets/notes.php';
137
+ // Integrations
138
+ require_once __DIR__ . '/widgets/advanced-custom-fields.php';
139
+ require_once __DIR__ . '/widgets/gravatar.php';
140
+ require_once __DIR__ . '/widgets/flickr.php';
141
+ require_once __DIR__ . '/widgets/pinterest.php';
142
+ }
143
+
144
+ /**
145
+ * Register Widget
146
+ *
147
+ * @since 1.0.0
148
+ *
149
+ * @access private
150
+ */
151
+ private function register_widget()
152
+ {
153
+ // Site Elements
154
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Site_Title() );
155
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Site_Description() );
156
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Site_Logo() );
157
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Site_Counters() );
158
+ // Post Elements
159
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Title() );
160
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Excerpt() );
161
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Date() );
162
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Author() );
163
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Terms() );
164
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Featured_Image() );
165
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Custom_Field() );
166
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Post_Comments() );
167
+ // Effects
168
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Image_Accordion() );
169
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Before_After_Effect() );
170
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Notes() );
171
+ // Integrations
172
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Advanced_Custom_Fields() );
173
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Gravatar() );
174
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Flickr() );
175
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Press_Elements_Pinterest() );
176
+ }
177
+
178
+ }
179
+ new Press_Elements_Plugin();
press-elements.php CHANGED
@@ -3,9 +3,9 @@
3
  * Plugin Name: Press Elements - Widgets for Elementor
4
  * Description: Easy-to-use widgets that help you display and design your content using Elementor page builder.
5
  * Plugin URI: https://wordpress.org/plugins/press-elements/
6
- * Version: 1.4.0
7
- * Author: Rami Yushuvaev
8
- * Author URI: https://wpPlugins.io/
9
  * Text Domain: press-elements
10
  */
11
 
@@ -18,15 +18,13 @@ if ( ! defined( 'ABSPATH' ) ) {
18
 
19
 
20
 
21
- // Make sure the same methods/classes aren’t loaded twice for free/premium versions
22
- if ( ! function_exists( 'press_elements_load' ) ) {
23
-
24
 
25
 
26
- // Load Freemius SDK
27
- require( __DIR__ . '/press-elements-freemius.php' );
28
-
29
 
 
 
30
 
31
  /**
32
  * Load Press Elements
@@ -62,8 +60,13 @@ if ( ! function_exists( 'press_elements_load' ) ) {
62
  }
63
  add_action( 'plugins_loaded', 'press_elements_load' );
64
 
 
 
65
 
66
 
 
 
 
67
  /**
68
  * Admin notice
69
  *
@@ -72,17 +75,23 @@ if ( ! function_exists( 'press_elements_load' ) ) {
72
  * @since 1.1.0
73
  */
74
  function press_elements_admin_notice_missing_main_plugin() {
 
75
  $message = sprintf(
76
  /* translators: 1: Press Elements 2: Elementor */
77
  esc_html__( '"%1$s" requires "%2$s" to be installed and activated.', 'press-elements' ),
78
  '<strong>' . esc_html__( 'Press Elements', 'press-elements' ) . '</strong>',
79
  '<strong>' . esc_html__( 'Elementor', 'press-elements' ) . '</strong>'
80
  );
81
-
82
  printf( '<div class="notice notice-warning is-dismissible"><p>%1$s</p></div>', $message );
 
83
  }
84
 
 
 
 
85
 
 
 
86
 
87
  /**
88
  * Admin notice
@@ -92,6 +101,7 @@ if ( ! function_exists( 'press_elements_load' ) ) {
92
  * @since 1.1.0
93
  */
94
  function press_elements_admin_notice_main_plugin_required_version() {
 
95
  $elementor_version_required = '1.3.4';
96
  $message = sprintf(
97
  /* translators: 1: Press Elements 2: Elementor 3: Required Elementor version */
@@ -100,10 +110,8 @@ if ( ! function_exists( 'press_elements_load' ) ) {
100
  '<strong>' . esc_html__( 'Elementor', 'press-elements' ) . '</strong>',
101
  $elementor_version_required
102
  );
103
-
104
  printf( '<div class="notice notice-warning is-dismissible"><p>%1$s</p></div>', $message );
105
- }
106
-
107
 
 
108
 
109
  }
3
  * Plugin Name: Press Elements - Widgets for Elementor
4
  * Description: Easy-to-use widgets that help you display and design your content using Elementor page builder.
5
  * Plugin URI: https://wordpress.org/plugins/press-elements/
6
+ * Version: 1.6.0
7
+ * Author: Press Elements
8
+ * Author URI: https://press-elements.com/
9
  * Text Domain: press-elements
10
  */
11
 
18
 
19
 
20
 
21
+ // Load Freemius SDK
22
+ require( __DIR__ . '/press-elements-freemius.php' );
 
23
 
24
 
 
 
 
25
 
26
+ // Make sure the same methods/classes aren’t loaded twice for free/premium versions
27
+ if ( ! function_exists( 'press_elements_load' ) ) {
28
 
29
  /**
30
  * Load Press Elements
60
  }
61
  add_action( 'plugins_loaded', 'press_elements_load' );
62
 
63
+ }
64
+
65
 
66
 
67
+ // Make sure the same methods/classes aren’t loaded twice for free/premium versions
68
+ if ( ! function_exists( 'press_elements_admin_notice_missing_main_plugin' ) ) {
69
+
70
  /**
71
  * Admin notice
72
  *
75
  * @since 1.1.0
76
  */
77
  function press_elements_admin_notice_missing_main_plugin() {
78
+
79
  $message = sprintf(
80
  /* translators: 1: Press Elements 2: Elementor */
81
  esc_html__( '"%1$s" requires "%2$s" to be installed and activated.', 'press-elements' ),
82
  '<strong>' . esc_html__( 'Press Elements', 'press-elements' ) . '</strong>',
83
  '<strong>' . esc_html__( 'Elementor', 'press-elements' ) . '</strong>'
84
  );
 
85
  printf( '<div class="notice notice-warning is-dismissible"><p>%1$s</p></div>', $message );
86
+
87
  }
88
 
89
+ }
90
+
91
+
92
 
93
+ // Make sure the same methods/classes aren’t loaded twice for free/premium versions
94
+ if ( ! function_exists( 'press_elements_admin_notice_main_plugin_required_version' ) ) {
95
 
96
  /**
97
  * Admin notice
101
  * @since 1.1.0
102
  */
103
  function press_elements_admin_notice_main_plugin_required_version() {
104
+
105
  $elementor_version_required = '1.3.4';
106
  $message = sprintf(
107
  /* translators: 1: Press Elements 2: Elementor 3: Required Elementor version */
110
  '<strong>' . esc_html__( 'Elementor', 'press-elements' ) . '</strong>',
111
  $elementor_version_required
112
  );
 
113
  printf( '<div class="notice notice-warning is-dismissible"><p>%1$s</p></div>', $message );
 
 
114
 
115
+ }
116
 
117
  }
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Press Elements - Widgets for Elementor ===
2
  Contributors: ramiy
3
- Tags: elementor, press elements, elements, widgets, page builder
4
  Requires at least: 4.7
5
  Tested up to: 4.7
6
- Stable tag: 1.4.0
7
  License: GPLv3
8
  License URI: https://opensource.org/licenses/GPL-3.0
9
 
@@ -11,7 +11,7 @@ Easy-to-use widgets that help you display and design your content using Elemento
11
 
12
  == Description ==
13
 
14
- **Press Elements** combines the simplicity of [Elementor](https://wordpress.org/plugins/elementor/) with the efficiency of the built-in WordPress theme components.
15
 
16
  = WordPress Elements =
17
 
@@ -35,17 +35,15 @@ For example, you can bulk edit several posts from your sites dashboard to change
35
 
36
  When using page builders, you need to create all the page element for each page over and over again. Currently you can't design single page templates and apply the design on the post. When you use the template system you need to manually change titles and images for each post/page.
37
 
38
- With Press Elements you can create custom designs with post elements and save them as template. When you apply the template on other posts, it will inherite the data from the new post. No more manual updates!
39
 
40
  You don't need to hire developers to generate custom page templates - with Press Elements you can do it using a simple drag & drop interface! Now you can design different templates for different blog posts, pages and other Post Types. When creating new posts, load your predefined templates from your template library.
41
 
42
  With Press Elements you can use Elementor widgets to display and design your post elements! Just like developers use theme-functions to generate themes. How cool is that?!
43
 
44
- https://www.youtube.com/watch?v=yGzefuK7ngs
45
-
46
  = Included Widgets =
47
 
48
- Press Elements comes with 14 useful Elemenotr widgets, 10 of them are free of charge!
49
 
50
  Site Elements:
51
 
@@ -61,32 +59,22 @@ Post Elements:
61
  - **Post Date** - Publish date or last modified date.
62
  - **Post Author** - The post author information.
63
  - **Post Terms** - The taxonomies assigned to the post.
64
- - **Post Featured Image (Pro)** - An image assigned to the post.
65
  - **Post Custom Field (Pro)** - Extra information saved as WordPress meta-data.
66
  - **Post Comments** - The default Comments Template included in the theme.
67
 
68
- Integrations:
69
 
70
- - **Advanced Custom Fields (Pro)** - Fields added by [Advanced Custom Fields](https://wordpress.org/plugins/advanced-custom-fields/) plugin.
71
- - **Gravatar (Pro)** - Display single [Gravatars](https://gravatar.com/) based on an email address.
72
-
73
- = Coming Soon =
74
-
75
- Site Elements:
76
-
77
- - **Login Form**
78
- - **Search Form**
79
-
80
- Comments Elements:
81
-
82
- - **Comments Form**
83
- - **Comments List**
84
- - **Comments Pagination**
85
 
86
  Integrations:
87
 
88
- - **Flickr (Pro)**
89
- - **Pinterest (Pro)**
 
 
90
 
91
  == Screenshots ==
92
  1. Post edit screen with WordPress elements.
@@ -98,12 +86,17 @@ Integrations:
98
  7. Site counters for Post Types, Taxonomies, Comments and Users.
99
  8. Custom fields as text fields and images, and linking to other custom fields.
100
  9. Display Gravatars based on an email address.
 
 
 
 
 
101
 
102
  == Frequently Asked Questions ==
103
 
104
  = Is Press Elements compatible with any Theme? =
105
 
106
- It sure is! Press Elements uses standard theme functions. That plugin will work on any WordPress theme!
107
 
108
  = Is Press Elements compatible with Custom Post Types? =
109
 
@@ -113,7 +106,7 @@ Yes. It works on any post type as long as it supports the relevant post element.
113
 
114
  Currently the plugin displays post elements on "single" pages. But in the future, it will support "archive" page too.
115
 
116
- = I am a theme developer, how can it help me? =
117
 
118
  As a theme developer you probably use theme-functions in your workflow. Press Elements turns those functions to widgets. Replacing code with a visual builder to reduce your development time.
119
 
@@ -157,6 +150,33 @@ For more advanced uses, please contact us in our [wp.org support forum](https://
157
 
158
  == Changelog ==
159
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  = 1.4.0 =
161
 
162
  **General**
1
  === Press Elements - Widgets for Elementor ===
2
  Contributors: ramiy
3
+ Tags: elementor, press elements, elements, widgets, page builder, builder, visual editor,
4
  Requires at least: 4.7
5
  Tested up to: 4.7
6
+ Stable tag: 1.6.0
7
  License: GPLv3
8
  License URI: https://opensource.org/licenses/GPL-3.0
9
 
11
 
12
  == Description ==
13
 
14
+ [Press Elements](https://press-elements.com/) combines the simplicity of [Elementor](https://wordpress.org/plugins/elementor/) with the efficiency of the built-in WordPress theme components.
15
 
16
  = WordPress Elements =
17
 
35
 
36
  When using page builders, you need to create all the page element for each page over and over again. Currently you can't design single page templates and apply the design on the post. When you use the template system you need to manually change titles and images for each post/page.
37
 
38
+ With Press Elements you can create custom designs with post elements and save them as template. When you apply the template on other posts, it will inherit the data from the new post. No more manual updates!
39
 
40
  You don't need to hire developers to generate custom page templates - with Press Elements you can do it using a simple drag & drop interface! Now you can design different templates for different blog posts, pages and other Post Types. When creating new posts, load your predefined templates from your template library.
41
 
42
  With Press Elements you can use Elementor widgets to display and design your post elements! Just like developers use theme-functions to generate themes. How cool is that?!
43
 
 
 
44
  = Included Widgets =
45
 
46
+ Press Elements comes with 19 useful Elementor widgets, 11 of them are free of charge!
47
 
48
  Site Elements:
49
 
59
  - **Post Date** - Publish date or last modified date.
60
  - **Post Author** - The post author information.
61
  - **Post Terms** - The taxonomies assigned to the post.
62
+ - **Post Featured Image** - An image assigned to the post.
63
  - **Post Custom Field (Pro)** - Extra information saved as WordPress meta-data.
64
  - **Post Comments** - The default Comments Template included in the theme.
65
 
66
+ Effects:
67
 
68
+ - **Image Accordion (Pro)** - Display images in a beautiful accordion effect.
69
+ - **Before After Effect (Pro)** - Visual differences between two images.
70
+ - **Notes (Pro)** - Create sticky notes effect.
 
 
 
 
 
 
 
 
 
 
 
 
71
 
72
  Integrations:
73
 
74
+ - **Advanced Custom Fields (Pro)** - Fields added by [Advanced Custom Fields](https://wordpress.org/plugins/advanced-custom-fields/) plugin.
75
+ - **Gravatar (Pro)** - Display single [Gravatars](https://gravatar.com/) based on an email address.
76
+ - **Flickr (Pro)** - Display Flickr photostream based on Flickr User ID.
77
+ - **Pinterest (Pro)** - Display Pinterest pins based on Pinterest username.
78
 
79
  == Screenshots ==
80
  1. Post edit screen with WordPress elements.
86
  7. Site counters for Post Types, Taxonomies, Comments and Users.
87
  8. Custom fields as text fields and images, and linking to other custom fields.
88
  9. Display Gravatars based on an email address.
89
+ 10. Display Flickr photostream based on Flickr User ID.
90
+ 11. Display Pinterest pins based on Pinterest username.
91
+ 12. Display images in a beautiful accordion effect.
92
+ 13. Display visual differences between two images.
93
+ 14. Display sticky notes effect.
94
 
95
  == Frequently Asked Questions ==
96
 
97
  = Is Press Elements compatible with any Theme? =
98
 
99
+ It sure is! Press Elements uses standard theme functions. The plugin will work on any WordPress theme!
100
 
101
  = Is Press Elements compatible with Custom Post Types? =
102
 
106
 
107
  Currently the plugin displays post elements on "single" pages. But in the future, it will support "archive" page too.
108
 
109
+ = I am a theme developer, how can it help me? =
110
 
111
  As a theme developer you probably use theme-functions in your workflow. Press Elements turns those functions to widgets. Replacing code with a visual builder to reduce your development time.
112
 
150
 
151
  == Changelog ==
152
 
153
+ = 1.6.0 =
154
+
155
+ **General**
156
+
157
+ * Release "Post Featured Image" as a free widget!!
158
+
159
+ **New Widgets**
160
+
161
+ * Image Accordion (Pro)
162
+ * Before After Effect (Pro)
163
+ * Notes (Pro)
164
+
165
+ = 1.5.0 =
166
+
167
+ **General**
168
+
169
+ * Move "Press Elements" menu from "Appearance" to "Settings".
170
+ * Fix the issue with single quotes characters in "Post Title" and "Post Excerpt" widgets.
171
+ * Escape the URL returned by the "Link to" controller in all the widgets.
172
+ * Add warnings in widgets that dependent on external plugins like ACF.
173
+ * Enhance "Advanced Custom Fields" widget to display fields saved as arrays.
174
+
175
+ **New Widgets**
176
+
177
+ * Flickr (Pro)
178
+ * Pinterest (Pro)
179
+
180
  = 1.4.0 =
181
 
182
  **General**
screenshot-10.png ADDED
Binary file
screenshot-11.png ADDED
Binary file
screenshot-12.png ADDED
Binary file
screenshot-13.png ADDED
Binary file
screenshot-14.png ADDED
Binary file
screenshot-7.png CHANGED
Binary file
screenshot-8.png CHANGED
Binary file
screenshot-9.png CHANGED
Binary file
widgets/advanced-custom-fields.php CHANGED
@@ -44,32 +44,34 @@ class Press_Elements_Advanced_Custom_Fields extends Widget_Base
44
 
45
  protected function _register_controls()
46
  {
47
- global $post ;
48
- $this->start_controls_section( 'section_content', array(
49
- 'label' => __( 'Advanced Custom Fields', 'press-elements' ),
50
- ) );
51
- $this->add_control( 'pro_content', array(
52
- 'type' => Controls_Manager::RAW_HTML,
53
- 'raw' => '<div class="elementor-panel-nerd-box">
54
- <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
55
- <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
56
- <div class="elementor-panel-nerd-box-message">' . __( 'This feature is available only for Press Elements Pro.', 'press-elements' ) . '</div>
57
- <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
58
  </div>',
59
- 'separator' => 'none',
60
- ) );
61
- $this->end_controls_section();
62
- $this->start_controls_section( 'section_style', array(
 
 
 
63
  'label' => __( 'Advanced Custom Fields', 'press-elements' ),
64
- 'tab' => Controls_Manager::TAB_STYLE,
65
  ) );
66
- $this->add_control( 'pro_style', array(
67
  'type' => Controls_Manager::RAW_HTML,
68
  'raw' => '<div class="elementor-panel-nerd-box">
69
- <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
70
- <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
71
- <div class="elementor-panel-nerd-box-message">' . __( 'This feature is available only for Press Elements Pro.', 'press-elements' ) . '</div>
72
- <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
73
  </div>',
74
  'separator' => 'none',
75
  ) );
@@ -78,6 +80,10 @@ class Press_Elements_Advanced_Custom_Fields extends Widget_Base
78
 
79
  protected function render()
80
  {
 
 
 
 
81
  }
82
 
83
  protected function _content_template()
44
 
45
  protected function _register_controls()
46
  {
47
+
48
+ if ( !is_plugin_active( 'advanced-custom-fields/acf.php' ) && !class_exists( 'acf' ) ) {
49
+ $this->start_controls_section( 'section_missing_plugin', array(
50
+ 'label' => __( 'Advanced Custom Fields', 'press-elements' ),
51
+ ) );
52
+ $this->add_control( 'missing_plugin', array(
53
+ 'type' => Controls_Manager::RAW_HTML,
54
+ 'raw' => '<div class="elementor-panel-nerd-box">
55
+ <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
56
+ <div class="elementor-panel-nerd-box-title">' . __( 'Pugin is Missing', 'press-elements' ) . '</div>
57
+ <div class="elementor-panel-nerd-box-message">' . sprintf( __( 'This feature requires "%s" plugin to be installed and active.', 'press-elements' ), '<strong>' . __( 'Advanced Custom Fields', 'press-elements' ) . '</strong>' ) . '</div>
58
  </div>',
59
+ 'separator' => 'none',
60
+ ) );
61
+ $this->end_controls_section();
62
+ return;
63
+ }
64
+
65
+ $this->start_controls_section( 'section_pro_feature', array(
66
  'label' => __( 'Advanced Custom Fields', 'press-elements' ),
 
67
  ) );
68
+ $this->add_control( 'pro_feature', array(
69
  'type' => Controls_Manager::RAW_HTML,
70
  'raw' => '<div class="elementor-panel-nerd-box">
71
+ <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
72
+ <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
73
+ <div class="elementor-panel-nerd-box-message">' . sprintf( __( 'This feature is only available on "%s".', 'press-elements' ), '<strong>' . __( 'Press Elements Pro', 'press-elements' ) . '</strong>' ) . '</div>
74
+ <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
75
  </div>',
76
  'separator' => 'none',
77
  ) );
80
 
81
  protected function render()
82
  {
83
+ // Check if "acf" is active
84
+ if ( !is_plugin_active( 'advanced-custom-fields/acf.php' ) && !class_exists( 'acf' ) ) {
85
+ return;
86
+ }
87
  }
88
 
89
  protected function _content_template()
widgets/before-after-effect.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PressElements\Widgets;
4
+
5
+ use Elementor\Widget_Base ;
6
+ use Elementor\Controls_Manager ;
7
+ use Elementor\Utils ;
8
+ use Elementor\Scheme_Color ;
9
+ use Elementor\Scheme_Typography ;
10
+ use Elementor\Group_Control_Typography ;
11
+ use Elementor\Group_Control_Box_Shadow ;
12
+ use Elementor\Group_Control_Border ;
13
+ // Exit if accessed directly
14
+ if ( !defined( 'ABSPATH' ) ) {
15
+ die;
16
+ }
17
+ /**
18
+ * Before After Effect
19
+ *
20
+ * Elementor widget for before after effect.
21
+ *
22
+ * @since 1.6.0
23
+ */
24
+ class Press_Elements_Before_After_Effect extends Widget_Base
25
+ {
26
+ public function get_name()
27
+ {
28
+ return 'before-after-effect';
29
+ }
30
+
31
+ public function get_title()
32
+ {
33
+ return __( 'Before After Effect', 'press-elements' );
34
+ }
35
+
36
+ public function get_icon()
37
+ {
38
+ return 'fa fa-columns';
39
+ }
40
+
41
+ public function get_categories()
42
+ {
43
+ return array( 'press-elements-effects' );
44
+ }
45
+
46
+ public function get_script_depends()
47
+ {
48
+ return array( 'before-after-effect' );
49
+ }
50
+
51
+ protected function _register_controls()
52
+ {
53
+ $this->start_controls_section( 'section_pro_feature', array(
54
+ 'label' => __( 'Before After Effect', 'press-elements' ),
55
+ ) );
56
+ $this->add_control( 'pro_feature', array(
57
+ 'type' => Controls_Manager::RAW_HTML,
58
+ 'raw' => '<div class="elementor-panel-nerd-box">
59
+ <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
60
+ <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
61
+ <div class="elementor-panel-nerd-box-message">' . sprintf( __( 'This feature is only available on "%s".', 'press-elements' ), '<strong>' . __( 'Press Elements Pro', 'press-elements' ) . '</strong>' ) . '</div>
62
+ <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
63
+ </div>',
64
+ 'separator' => 'none',
65
+ ) );
66
+ $this->end_controls_section();
67
+ }
68
+
69
+ protected function render()
70
+ {
71
+ }
72
+
73
+ protected function _content_template()
74
+ {
75
+ }
76
+
77
+ }
widgets/flickr.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PressElements\Widgets;
4
+
5
+ use Elementor\Widget_Base ;
6
+ use Elementor\Controls_Manager ;
7
+ // Exit if accessed directly
8
+ if ( !defined( 'ABSPATH' ) ) {
9
+ die;
10
+ }
11
+ /**
12
+ * Press Elements Flickr
13
+ *
14
+ * Flickr element for elementor.
15
+ *
16
+ * @since 1.5.0
17
+ */
18
+ class Press_Elements_Flickr extends Widget_Base
19
+ {
20
+ public function get_name()
21
+ {
22
+ return 'flickr';
23
+ }
24
+
25
+ public function get_title()
26
+ {
27
+ return __( 'Flickr', 'press-elements' );
28
+ }
29
+
30
+ public function get_icon()
31
+ {
32
+ return 'fa fa-flickr';
33
+ }
34
+
35
+ public function get_categories()
36
+ {
37
+ return array( 'press-elements-integrations' );
38
+ }
39
+
40
+ protected function _register_controls()
41
+ {
42
+ $this->start_controls_section( 'section_pro_feature', array(
43
+ 'label' => __( 'Flickr', 'press-elements' ),
44
+ ) );
45
+ $this->add_control( 'pro_feature', array(
46
+ 'type' => Controls_Manager::RAW_HTML,
47
+ 'raw' => '<div class="elementor-panel-nerd-box">
48
+ <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
49
+ <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
50
+ <div class="elementor-panel-nerd-box-message">' . sprintf( __( 'This feature is only available on "%s".', 'press-elements' ), '<strong>' . __( 'Press Elements Pro', 'press-elements' ) . '</strong>' ) . '</div>
51
+ <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
52
+ </div>',
53
+ 'separator' => 'none',
54
+ ) );
55
+ $this->end_controls_section();
56
+ }
57
+
58
+ protected function render()
59
+ {
60
+ }
61
+
62
+ protected function _content_template()
63
+ {
64
+ }
65
+
66
+ }
widgets/gravatar.php CHANGED
@@ -41,31 +41,16 @@ class Press_Elements_Gravatar extends Widget_Base
41
 
42
  protected function _register_controls()
43
  {
44
- $this->start_controls_section( 'section_content', array(
45
  'label' => __( 'Gravatar', 'press-elements' ),
46
  ) );
47
- $this->add_control( 'pro_content', array(
48
  'type' => Controls_Manager::RAW_HTML,
49
  'raw' => '<div class="elementor-panel-nerd-box">
50
- <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
51
- <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
52
- <div class="elementor-panel-nerd-box-message">' . __( 'This feature is available only for Press Elements Pro.', 'press-elements' ) . '</div>
53
- <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
54
- </div>',
55
- 'separator' => 'none',
56
- ) );
57
- $this->end_controls_section();
58
- $this->start_controls_section( 'section_style', array(
59
- 'label' => __( 'Gravatar', 'press-elements' ),
60
- 'tab' => Controls_Manager::TAB_STYLE,
61
- ) );
62
- $this->add_control( 'pro_style', array(
63
- 'type' => Controls_Manager::RAW_HTML,
64
- 'raw' => '<div class="elementor-panel-nerd-box">
65
- <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
66
- <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
67
- <div class="elementor-panel-nerd-box-message">' . __( 'This feature is available only for Press Elements Pro.', 'press-elements' ) . '</div>
68
- <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
69
  </div>',
70
  'separator' => 'none',
71
  ) );
41
 
42
  protected function _register_controls()
43
  {
44
+ $this->start_controls_section( 'section_pro_feature', array(
45
  'label' => __( 'Gravatar', 'press-elements' ),
46
  ) );
47
+ $this->add_control( 'pro_feature', array(
48
  'type' => Controls_Manager::RAW_HTML,
49
  'raw' => '<div class="elementor-panel-nerd-box">
50
+ <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
51
+ <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
52
+ <div class="elementor-panel-nerd-box-message">' . sprintf( __( 'This feature is only available on "%s".', 'press-elements' ), '<strong>' . __( 'Press Elements Pro', 'press-elements' ) . '</strong>' ) . '</div>
53
+ <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  </div>',
55
  'separator' => 'none',
56
  ) );
widgets/image-accordion.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PressElements\Widgets;
4
+
5
+ use Elementor\Widget_Base ;
6
+ use Elementor\Controls_Manager ;
7
+ use Elementor\Utils ;
8
+ use Elementor\Group_Control_Image_Size ;
9
+ use Elementor\Group_Control_Border ;
10
+ use Elementor\Group_Control_Box_Shadow ;
11
+ use Elementor\Scheme_Color ;
12
+ use Elementor\Scheme_Typography ;
13
+ use Elementor\Group_Control_Typography ;
14
+ // Exit if accessed directly
15
+ if ( !defined( 'ABSPATH' ) ) {
16
+ die;
17
+ }
18
+ /**
19
+ * Image Accordion Effect
20
+ *
21
+ * Elementor widget for image accordion.
22
+ *
23
+ * @since 1.6.0
24
+ */
25
+ class Press_Elements_Image_Accordion extends Widget_Base
26
+ {
27
+ public function get_name()
28
+ {
29
+ return 'image-accordion';
30
+ }
31
+
32
+ public function get_title()
33
+ {
34
+ return __( 'Image Accordion', 'press-elements' );
35
+ }
36
+
37
+ public function get_icon()
38
+ {
39
+ return 'eicon-slider-push';
40
+ }
41
+
42
+ public function get_categories()
43
+ {
44
+ return array( 'press-elements-effects' );
45
+ }
46
+
47
+ protected function _register_controls()
48
+ {
49
+ $this->start_controls_section( 'section_pro_feature', array(
50
+ 'label' => __( 'Image Accordion', 'press-elements' ),
51
+ ) );
52
+ $this->add_control( 'pro_feature', array(
53
+ 'type' => Controls_Manager::RAW_HTML,
54
+ 'raw' => '<div class="elementor-panel-nerd-box">
55
+ <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
56
+ <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
57
+ <div class="elementor-panel-nerd-box-message">' . sprintf( __( 'This feature is only available on "%s".', 'press-elements' ), '<strong>' . __( 'Press Elements Pro', 'press-elements' ) . '</strong>' ) . '</div>
58
+ <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
59
+ </div>',
60
+ 'separator' => 'none',
61
+ ) );
62
+ $this->end_controls_section();
63
+ }
64
+
65
+ protected function render()
66
+ {
67
+ }
68
+
69
+ protected function _content_template()
70
+ {
71
+ }
72
+
73
+ }
widgets/notes.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PressElements\Widgets;
4
+
5
+ use Elementor\Widget_Base ;
6
+ use Elementor\Controls_Manager ;
7
+ use Elementor\Scheme_Color ;
8
+ use Elementor\Scheme_Typography ;
9
+ use Elementor\Group_Control_Typography ;
10
+ use Elementor\Group_Control_Box_Shadow ;
11
+ // Exit if accessed directly
12
+ if ( !defined( 'ABSPATH' ) ) {
13
+ die;
14
+ }
15
+ /**
16
+ * Notes
17
+ *
18
+ * Elementor widget for notes.
19
+ *
20
+ * @since 1.6.0
21
+ */
22
+ class Press_Elements_Notes extends Widget_Base
23
+ {
24
+ public function get_name()
25
+ {
26
+ return 'notes';
27
+ }
28
+
29
+ public function get_title()
30
+ {
31
+ return __( 'Notes', 'press-elements' );
32
+ }
33
+
34
+ public function get_icon()
35
+ {
36
+ return 'fa fa-thumb-tack';
37
+ }
38
+
39
+ public function get_categories()
40
+ {
41
+ return array( 'press-elements-effects' );
42
+ }
43
+
44
+ protected function _register_controls()
45
+ {
46
+ $this->start_controls_section( 'section_pro_feature', array(
47
+ 'label' => __( 'Notes', 'press-elements' ),
48
+ ) );
49
+ $this->add_control( 'pro_feature', array(
50
+ 'type' => Controls_Manager::RAW_HTML,
51
+ 'raw' => '<div class="elementor-panel-nerd-box">
52
+ <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
53
+ <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
54
+ <div class="elementor-panel-nerd-box-message">' . sprintf( __( 'This feature is only available on "%s".', 'press-elements' ), '<strong>' . __( 'Press Elements Pro', 'press-elements' ) . '</strong>' ) . '</div>
55
+ <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
56
+ </div>',
57
+ 'separator' => 'none',
58
+ ) );
59
+ $this->end_controls_section();
60
+ }
61
+
62
+ protected function render()
63
+ {
64
+ }
65
+
66
+ protected function _content_template()
67
+ {
68
+ }
69
+
70
+ }
widgets/pinterest.php ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PressElements\Widgets;
4
+
5
+ use Elementor\Widget_Base ;
6
+ use Elementor\Controls_Manager ;
7
+ // Exit if accessed directly
8
+ if ( !defined( 'ABSPATH' ) ) {
9
+ die;
10
+ }
11
+ /**
12
+ * Press Elements Pinterest
13
+ *
14
+ * Pinterest element for elementor.
15
+ *
16
+ * @since 1.5.0
17
+ */
18
+ class Press_Elements_Pinterest extends Widget_Base
19
+ {
20
+ public function get_name()
21
+ {
22
+ return 'pinterest';
23
+ }
24
+
25
+ public function get_title()
26
+ {
27
+ return __( 'Pinterest', 'press-elements' );
28
+ }
29
+
30
+ public function get_icon()
31
+ {
32
+ return 'fa fa-pinterest';
33
+ }
34
+
35
+ public function get_categories()
36
+ {
37
+ return array( 'press-elements-integrations' );
38
+ }
39
+
40
+ protected function _register_controls()
41
+ {
42
+ $this->start_controls_section( 'section_pro_feature', array(
43
+ 'label' => __( 'Pinterest', 'press-elements' ),
44
+ ) );
45
+ $this->add_control( 'pro_feature', array(
46
+ 'type' => Controls_Manager::RAW_HTML,
47
+ 'raw' => '<div class="elementor-panel-nerd-box">
48
+ <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
49
+ <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
50
+ <div class="elementor-panel-nerd-box-message">' . sprintf( __( 'This feature is only available on "%s".', 'press-elements' ), '<strong>' . __( 'Press Elements Pro', 'press-elements' ) . '</strong>' ) . '</div>
51
+ <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
52
+ </div>',
53
+ 'separator' => 'none',
54
+ ) );
55
+ $this->end_controls_section();
56
+ }
57
+
58
+ protected function render()
59
+ {
60
+ }
61
+
62
+ protected function _content_template()
63
+ {
64
+ }
65
+
66
+ public function get_pins( $username, $total_pins )
67
+ {
68
+ // Set RSS cache lifetime in seconds
69
+ $cache_lifetime = 900;
70
+ add_filter( 'wp_feed_cache_transient_lifetime', create_function( '$a', 'return ' . $cache_lifetime . ';' ) );
71
+ // Get the RSS feed
72
+ $url = sprintf( 'https://pinterest.com/%s/feed.rss', $username );
73
+ $rss = fetch_feed( $url );
74
+ if ( is_wp_error( $rss ) ) {
75
+ return null;
76
+ }
77
+ $maxitems = $rss->get_item_quantity( $total_pins );
78
+ $rss_items = $rss->get_items( 0, $maxitems );
79
+ if ( is_null( $rss_items ) ) {
80
+ return null;
81
+ }
82
+ // Build patterns to search/replace in the image urls. Pattern to replace for the images.
83
+ $search = array( '_b.jpg' );
84
+ $replace = array( '_t.jpg' );
85
+ // Make urls protocol relative
86
+ array_push( $search, 'https://' );
87
+ array_push( $replace, '//' );
88
+ $pins = array();
89
+ foreach ( $rss_items as $item ) {
90
+ $title = $item->get_title();
91
+ $description = $item->get_description();
92
+ $url = $item->get_permalink();
93
+ if ( preg_match_all( '/<img src="([^"]*)".*>/i', $description, $matches ) ) {
94
+ $image = str_replace( $search, $replace, $matches[1][0] );
95
+ }
96
+ array_push( $pins, array(
97
+ 'title' => $title,
98
+ 'image' => $image,
99
+ 'url' => $url,
100
+ ) );
101
+ }
102
+ return $pins;
103
+ }
104
+
105
+ }
widgets/post-author.php CHANGED
@@ -132,6 +132,7 @@ class Press_Elements_Post_Author extends Widget_Base {
132
  'default' => 'none',
133
  'options' => [
134
  'none' => __( 'None', 'press-elements' ),
 
135
  'post' => sprintf(
136
  /* translators: %s: Post type singular name (e.g. Post or Page) */
137
  __( '%s URL', 'press-elements' ),
@@ -340,18 +341,22 @@ class Press_Elements_Post_Author extends Widget_Base {
340
  switch ( $settings['link_to'] ) {
341
  case 'custom' :
342
  if ( ! empty( $settings['link']['url'] ) ) {
343
- $link = $settings['link']['url'];
344
  } else {
345
  $link = false;
346
  }
347
  break;
348
 
 
 
 
 
349
  case 'post' :
350
- $link = get_the_permalink();
351
  break;
352
 
353
- case 'author' :
354
- $link = get_author_posts_url( get_the_author_meta( 'ID' ) );
355
  break;
356
 
357
  case 'none' :
@@ -390,11 +395,14 @@ class Press_Elements_Post_Author extends Widget_Base {
390
  case 'custom':
391
  link_url = settings.link.url;
392
  break;
 
 
 
393
  case 'post':
394
- link_url = '<?php echo get_the_permalink(); ?>';
395
  break;
396
- case 'author':
397
- link_url = '<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>';
398
  break;
399
  case 'none':
400
  default:
132
  'default' => 'none',
133
  'options' => [
134
  'none' => __( 'None', 'press-elements' ),
135
+ 'home' => __( 'Home URL', 'press-elements' ),
136
  'post' => sprintf(
137
  /* translators: %s: Post type singular name (e.g. Post or Page) */
138
  __( '%s URL', 'press-elements' ),
341
  switch ( $settings['link_to'] ) {
342
  case 'custom' :
343
  if ( ! empty( $settings['link']['url'] ) ) {
344
+ $link = esc_url( $settings['link']['url'] );
345
  } else {
346
  $link = false;
347
  }
348
  break;
349
 
350
+ case 'author' :
351
+ $link = esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) );
352
+ break;
353
+
354
  case 'post' :
355
+ $link = esc_url( get_the_permalink() );
356
  break;
357
 
358
+ case 'home' :
359
+ $link = esc_url( get_home_url() );
360
  break;
361
 
362
  case 'none' :
395
  case 'custom':
396
  link_url = settings.link.url;
397
  break;
398
+ case 'author':
399
+ link_url = '<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); ?>';
400
+ break;
401
  case 'post':
402
+ link_url = '<?php echo esc_url( get_the_permalink() ); ?>';
403
  break;
404
+ case 'home':
405
+ link_url = '<?php echo esc_url( get_home_url() ); ?>';
406
  break;
407
  case 'none':
408
  default:
widgets/post-custom-field.php CHANGED
@@ -46,31 +46,16 @@ class Press_Elements_Post_Custom_Field extends Widget_Base
46
  protected function _register_controls()
47
  {
48
  $post_type_object = get_post_type_object( get_post_type() );
49
- $this->start_controls_section( 'section_content', array(
50
  'label' => sprintf( __( '%s Custom Field', 'press-elements' ), $post_type_object->labels->singular_name ),
51
  ) );
52
- $this->add_control( 'pro_content', array(
53
  'type' => Controls_Manager::RAW_HTML,
54
  'raw' => '<div class="elementor-panel-nerd-box">
55
- <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
56
- <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
57
- <div class="elementor-panel-nerd-box-message">' . __( 'This feature is available only for Press Elements Pro.', 'press-elements' ) . '</div>
58
- <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
59
- </div>',
60
- 'separator' => 'none',
61
- ) );
62
- $this->end_controls_section();
63
- $this->start_controls_section( 'section_style', array(
64
- 'label' => sprintf( __( '%s Custom Field', 'press-elements' ), $post_type_object->labels->singular_name ),
65
- 'tab' => Controls_Manager::TAB_STYLE,
66
- ) );
67
- $this->add_control( 'pro_style', array(
68
- 'type' => Controls_Manager::RAW_HTML,
69
- 'raw' => '<div class="elementor-panel-nerd-box">
70
- <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
71
- <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
72
- <div class="elementor-panel-nerd-box-message">' . __( 'This feature is available only for Press Elements Pro.', 'press-elements' ) . '</div>
73
- <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
74
  </div>',
75
  'separator' => 'none',
76
  ) );
46
  protected function _register_controls()
47
  {
48
  $post_type_object = get_post_type_object( get_post_type() );
49
+ $this->start_controls_section( 'section_pro_feature', array(
50
  'label' => sprintf( __( '%s Custom Field', 'press-elements' ), $post_type_object->labels->singular_name ),
51
  ) );
52
+ $this->add_control( 'pro_feature', array(
53
  'type' => Controls_Manager::RAW_HTML,
54
  'raw' => '<div class="elementor-panel-nerd-box">
55
+ <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
56
+ <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
57
+ <div class="elementor-panel-nerd-box-message">' . sprintf( __( 'This feature is only available on "%s".', 'press-elements' ), '<strong>' . __( 'Press Elements Pro', 'press-elements' ) . '</strong>' ) . '</div>
58
+ <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  </div>',
60
  'separator' => 'none',
61
  ) );
widgets/post-date.php CHANGED
@@ -133,6 +133,7 @@ class Press_Elements_Post_Date extends Widget_Base {
133
  'default' => 'none',
134
  'options' => [
135
  'none' => __( 'None', 'press-elements' ),
 
136
  'post' => sprintf(
137
  /* translators: %s: Post type singular name (e.g. Post or Page) */
138
  __( '%s URL', 'press-elements' ),
@@ -237,14 +238,18 @@ class Press_Elements_Post_Date extends Widget_Base {
237
  switch ( $settings['link_to'] ) {
238
  case 'custom' :
239
  if ( ! empty( $settings['link']['url'] ) ) {
240
- $link = $settings['link']['url'];
241
  } else {
242
  $link = false;
243
  }
244
  break;
245
 
246
  case 'post' :
247
- $link = get_the_permalink();
 
 
 
 
248
  break;
249
 
250
  case 'none' :
@@ -290,7 +295,10 @@ class Press_Elements_Post_Date extends Widget_Base {
290
  link_url = settings.link.url;
291
  break;
292
  case 'post':
293
- link_url = '<?php echo get_the_permalink(); ?>';
 
 
 
294
  break;
295
  case 'none':
296
  default:
133
  'default' => 'none',
134
  'options' => [
135
  'none' => __( 'None', 'press-elements' ),
136
+ 'home' => __( 'Home URL', 'press-elements' ),
137
  'post' => sprintf(
138
  /* translators: %s: Post type singular name (e.g. Post or Page) */
139
  __( '%s URL', 'press-elements' ),
238
  switch ( $settings['link_to'] ) {
239
  case 'custom' :
240
  if ( ! empty( $settings['link']['url'] ) ) {
241
+ $link = esc_url( $settings['link']['url'] );
242
  } else {
243
  $link = false;
244
  }
245
  break;
246
 
247
  case 'post' :
248
+ $link = esc_url( get_the_permalink() );
249
+ break;
250
+
251
+ case 'home' :
252
+ $link = esc_url( get_home_url() );
253
  break;
254
 
255
  case 'none' :
295
  link_url = settings.link.url;
296
  break;
297
  case 'post':
298
+ link_url = '<?php echo esc_url( get_the_permalink() ); ?>';
299
+ break;
300
+ case 'home':
301
+ link_url = '<?php echo esc_url( get_home_url() ); ?>';
302
  break;
303
  case 'none':
304
  default:
widgets/post-excerpt.php CHANGED
@@ -120,6 +120,7 @@ class Press_Elements_Post_Excerpt extends Widget_Base {
120
  'default' => 'none',
121
  'options' => [
122
  'none' => __( 'None', 'press-elements' ),
 
123
  'post' => sprintf(
124
  /* translators: %s: Post type singular name (e.g. Post or Page) */
125
  __( '%s URL', 'press-elements' ),
@@ -208,14 +209,18 @@ class Press_Elements_Post_Excerpt extends Widget_Base {
208
  switch ( $settings['link_to'] ) {
209
  case 'custom' :
210
  if ( ! empty( $settings['link']['url'] ) ) {
211
- $link = $settings['link']['url'];
212
  } else {
213
  $link = false;
214
  }
215
  break;
216
 
217
  case 'post' :
218
- $link = get_the_permalink();
 
 
 
 
219
  break;
220
 
221
  case 'none' :
@@ -241,7 +246,7 @@ class Press_Elements_Post_Excerpt extends Widget_Base {
241
  protected function _content_template() {
242
  ?>
243
  <#
244
- var excerpt = '<?php echo get_the_excerpt(); ?>';
245
 
246
  var link_url;
247
  switch( settings.link_to ) {
@@ -249,7 +254,10 @@ class Press_Elements_Post_Excerpt extends Widget_Base {
249
  link_url = settings.link.url;
250
  break;
251
  case 'post':
252
- link_url = '<?php echo get_the_permalink(); ?>';
 
 
 
253
  break;
254
  case 'none':
255
  default:
120
  'default' => 'none',
121
  'options' => [
122
  'none' => __( 'None', 'press-elements' ),
123
+ 'home' => __( 'Home URL', 'press-elements' ),
124
  'post' => sprintf(
125
  /* translators: %s: Post type singular name (e.g. Post or Page) */
126
  __( '%s URL', 'press-elements' ),
209
  switch ( $settings['link_to'] ) {
210
  case 'custom' :
211
  if ( ! empty( $settings['link']['url'] ) ) {
212
+ $link = esc_url( $settings['link']['url'] );
213
  } else {
214
  $link = false;
215
  }
216
  break;
217
 
218
  case 'post' :
219
+ $link = esc_url( get_the_permalink() );
220
+ break;
221
+
222
+ case 'home' :
223
+ $link = esc_url( get_home_url() );
224
  break;
225
 
226
  case 'none' :
246
  protected function _content_template() {
247
  ?>
248
  <#
249
+ var excerpt = "<?php echo htmlspecialchars( get_the_excerpt() ); ?>";
250
 
251
  var link_url;
252
  switch( settings.link_to ) {
254
  link_url = settings.link.url;
255
  break;
256
  case 'post':
257
+ link_url = '<?php echo esc_url( get_the_permalink() ); ?>';
258
+ break;
259
+ case 'home':
260
+ link_url = '<?php echo esc_url( get_home_url() ); ?>';
261
  break;
262
  case 'none':
263
  default:
widgets/post-featured-image.php CHANGED
@@ -1,86 +1,374 @@
1
  <?php
2
-
3
  namespace PressElements\Widgets;
4
 
5
- use Elementor\Widget_Base ;
6
- use Elementor\Controls_Manager ;
7
- use Elementor\Group_Control_Image_Size ;
8
- use Elementor\Group_Control_Border ;
9
- use Elementor\Group_Control_Box_Shadow ;
 
 
 
10
  // Exit if accessed directly
11
- if ( !defined( 'ABSPATH' ) ) {
12
- die;
13
  }
 
 
 
14
  /**
15
  * Press Elements Post Featured Image
16
  *
17
  * Single post/page featured image element for elementor.
18
  *
19
  * @since 1.0.0
 
20
  */
21
- class Press_Elements_Post_Featured_Image extends Widget_Base
22
- {
23
- public function get_name()
24
- {
25
- return 'post-featured-image';
26
- }
27
-
28
- public function get_title()
29
- {
30
- $post_type_object = get_post_type_object( get_post_type() );
31
- return sprintf( __( '%s Featured Image', 'press-elements' ), $post_type_object->labels->singular_name );
32
- }
33
-
34
- public function get_icon()
35
- {
36
- return 'fa fa-picture-o';
37
- }
38
-
39
- public function get_categories()
40
- {
41
- return array( 'press-elements-post-elements' );
42
- }
43
-
44
- protected function _register_controls()
45
- {
46
- $post_type_object = get_post_type_object( get_post_type() );
47
- $this->start_controls_section( 'section_content', array(
48
- 'label' => sprintf( __( '%s Featured Image', 'press-elements' ), $post_type_object->labels->singular_name ),
49
- ) );
50
- $this->add_control( 'pro_content', array(
51
- 'type' => Controls_Manager::RAW_HTML,
52
- 'raw' => '<div class="elementor-panel-nerd-box">
53
- <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
54
- <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
55
- <div class="elementor-panel-nerd-box-message">' . __( 'This feature is available only for Press Elements Pro.', 'press-elements' ) . '</div>
56
- <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
57
- </div>',
58
- 'separator' => 'none',
59
- ) );
60
- $this->end_controls_section();
61
- $this->start_controls_section( 'section_style', array(
62
- 'label' => sprintf( __( '%s Featured Image', 'press-elements' ), $post_type_object->labels->singular_name ),
63
- 'tab' => Controls_Manager::TAB_STYLE,
64
- ) );
65
- $this->add_control( 'pro_style', array(
66
- 'type' => Controls_Manager::RAW_HTML,
67
- 'raw' => '<div class="elementor-panel-nerd-box">
68
- <i class="elementor-panel-nerd-box-icon fa fa-lock"></i>
69
- <div class="elementor-panel-nerd-box-title">' . __( 'Premium Feature', 'press-elements' ) . '</div>
70
- <div class="elementor-panel-nerd-box-message">' . __( 'This feature is available only for Press Elements Pro.', 'press-elements' ) . '</div>
71
- <a class="elementor-panel-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . press_elements_freemius()->get_upgrade_url() . '" target="_blank">' . __( 'Upgrade Now!', 'press-elements' ) . '</a>
72
- </div>',
73
- 'separator' => 'none',
74
- ) );
75
- $this->end_controls_section();
76
- }
77
-
78
- protected function render()
79
- {
80
- }
81
-
82
- protected function _content_template()
83
- {
84
- }
85
-
86
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
 
2
  namespace PressElements\Widgets;
3
 
4
+ use Elementor\Widget_Base;
5
+ use Elementor\Controls_Manager;
6
+ use Elementor\Group_Control_Image_Size;
7
+ use Elementor\Group_Control_Border;
8
+ use Elementor\Group_Control_Box_Shadow;
9
+
10
+
11
+
12
  // Exit if accessed directly
13
+ if ( ! defined( 'ABSPATH' ) ) {
14
+ exit;
15
  }
16
+
17
+
18
+
19
  /**
20
  * Press Elements Post Featured Image
21
  *
22
  * Single post/page featured image element for elementor.
23
  *
24
  * @since 1.0.0
25
+ * @since 1.6.0 Not longer a Pro widget
26
  */
27
+ class Press_Elements_Post_Featured_Image extends Widget_Base {
28
+
29
+ public function get_name() {
30
+ return 'post-featured-image';
31
+ }
32
+
33
+ public function get_title() {
34
+ $post_type_object = get_post_type_object( get_post_type() );
35
+
36
+ return sprintf(
37
+ /* translators: %s: Post type singular name (e.g. Post or Page) */
38
+ __( '%s Featured Image', 'press-elements' ),
39
+ $post_type_object->labels->singular_name
40
+ );
41
+ }
42
+
43
+ public function get_icon() {
44
+ return 'fa fa-picture-o';
45
+ }
46
+
47
+ public function get_categories() {
48
+ return [ 'press-elements-post-elements' ];
49
+ }
50
+
51
+ protected function _register_controls() {
52
+
53
+ $post_type_object = get_post_type_object( get_post_type() );
54
+
55
+ $this->start_controls_section(
56
+ 'section_content',
57
+ [
58
+ 'label' => sprintf(
59
+ /* translators: %s: Post type singular name (e.g. Post or Page) */
60
+ __( '%s Featured Image', 'press-elements' ),
61
+ $post_type_object->labels->singular_name
62
+ ),
63
+ ]
64
+ );
65
+
66
+ $this->add_control(
67
+ 'preview',
68
+ [
69
+ 'type' => Controls_Manager::RAW_HTML,
70
+ 'raw' => get_the_post_thumbnail(),
71
+ 'separator' => 'none',
72
+ ]
73
+ );
74
+
75
+ $this->add_group_control(
76
+ Group_Control_Image_Size::get_type(),
77
+ [
78
+ 'name' => 'size',
79
+ 'label' => __( 'Image Size', 'press-elements' ),
80
+ 'default' => 'large',
81
+ ]
82
+ );
83
+
84
+ $this->add_responsive_control(
85
+ 'align',
86
+ [
87
+ 'label' => __( 'Alignment', 'press-elements' ),
88
+ 'type' => Controls_Manager::CHOOSE,
89
+ 'options' => [
90
+ 'left' => [
91
+ 'title' => __( 'Left', 'press-elements' ),
92
+ 'icon' => 'fa fa-align-left',
93
+ ],
94
+ 'center' => [
95
+ 'title' => __( 'Center', 'press-elements' ),
96
+ 'icon' => 'fa fa-align-center',
97
+ ],
98
+ 'right' => [
99
+ 'title' => __( 'Right', 'press-elements' ),
100
+ 'icon' => 'fa fa-align-right',
101
+ ],
102
+ 'justify' => [
103
+ 'title' => __( 'Justified', 'press-elements' ),
104
+ 'icon' => 'fa fa-align-justify',
105
+ ],
106
+ ],
107
+ 'default' => '',
108
+ 'selectors' => [
109
+ '{{WRAPPER}}' => 'text-align: {{VALUE}};',
110
+ ],
111
+ ]
112
+ );
113
+
114
+ $this->add_control(
115
+ 'link_to',
116
+ [
117
+ 'label' => __( 'Link to', 'press-elements' ),
118
+ 'type' => Controls_Manager::SELECT,
119
+ 'default' => 'none',
120
+ 'options' => [
121
+ 'none' => __( 'None', 'press-elements' ),
122
+ 'home' => __( 'Home URL', 'press-elements' ),
123
+ 'post' => sprintf(
124
+ /* translators: %s: Post type singular name (e.g. Post or Page) */
125
+ __( '%s URL', 'press-elements' ),
126
+ $post_type_object->labels->singular_name
127
+ ),
128
+ 'file' => __( 'Media File URL', 'press-elements' ),
129
+ 'custom' => __( 'Custom URL', 'press-elements' ),
130
+ ],
131
+ ]
132
+ );
133
+
134
+ $this->add_control(
135
+ 'link',
136
+ [
137
+ 'label' => __( 'Link to', 'press-elements' ),
138
+ 'type' => Controls_Manager::URL,
139
+ 'placeholder' => __( 'http://your-link.com', 'press-elements' ),
140
+ 'condition' => [
141
+ 'link_to' => 'custom',
142
+ ],
143
+ 'show_label' => false,
144
+ ]
145
+ );
146
+
147
+ $this->end_controls_section();
148
+
149
+ $this->start_controls_section(
150
+ 'section_style',
151
+ [
152
+ 'label' => sprintf(
153
+ /* translators: %s: Post type singular name (e.g. Post or Page) */
154
+ __( '%s Featured Image', 'press-elements' ),
155
+ $post_type_object->labels->singular_name
156
+ ),
157
+ 'tab' => Controls_Manager::TAB_STYLE,
158
+ ]
159
+ );
160
+
161
+ $this->add_responsive_control(
162
+ 'space',
163
+ [
164
+ 'label' => __( 'Size (%)', 'press-elements' ),
165
+ 'type' => Controls_Manager::SLIDER,
166
+ 'default' => [
167
+ 'size' => 100,
168
+ 'unit' => '%',
169
+ ],
170
+ 'size_units' => [ '%' ],
171
+ 'range' => [
172
+ '%' => [
173
+ 'min' => 1,
174
+ 'max' => 100,
175
+ ],
176
+ ],
177
+ 'selectors' => [
178
+ '{{WRAPPER}} .press-elements-featured-image img' => 'max-width: {{SIZE}}{{UNIT}};',
179
+ ],
180
+ ]
181
+ );
182
+
183
+ $this->add_responsive_control(
184
+ 'opacity',
185
+ [
186
+ 'label' => __( 'Opacity (%)', 'press-elements' ),
187
+ 'type' => Controls_Manager::SLIDER,
188
+ 'default' => [
189
+ 'size' => 1,
190
+ ],
191
+ 'range' => [
192
+ 'px' => [
193
+ 'max' => 1,
194
+ 'min' => 0.10,
195
+ 'step' => 0.01,
196
+ ],
197
+ ],
198
+ 'selectors' => [
199
+ '{{WRAPPER}} .press-elements-featured-image img' => 'opacity: {{SIZE}};',
200
+ ],
201
+ ]
202
+ );
203
+
204
+ $this->add_control(
205
+ 'angle',
206
+ [
207
+ 'label' => __( 'Angle (deg)', 'press-elements' ),
208
+ 'type' => Controls_Manager::SLIDER,
209
+ 'size_units' => [ 'deg' ],
210
+ 'default' => [
211
+ 'unit' => 'deg',
212
+ 'size' => 0,
213
+ ],
214
+ 'range' => [
215
+ 'deg' => [
216
+ 'max' => 360,
217
+ 'min' => -360,
218
+ 'step' => 1,
219
+ ],
220
+ ],
221
+ 'selectors' => [
222
+ '{{WRAPPER}} .press-elements-featured-image img' => '-webkit-transform: rotate({{SIZE}}deg); -moz-transform: rotate({{SIZE}}deg); -ms-transform: rotate({{SIZE}}deg); -o-transform: rotate({{SIZE}}deg); transform: rotate({{SIZE}}deg);',
223
+ ],
224
+ ]
225
+ );
226
+
227
+ $this->add_control(
228
+ 'hover_animation',
229
+ [
230
+ 'label' => __( 'Hover Animation', 'press-elements' ),
231
+ 'type' => Controls_Manager::HOVER_ANIMATION,
232
+ ]
233
+ );
234
+
235
+ $this->add_group_control(
236
+ Group_Control_Border::get_type(),
237
+ [
238
+ 'name' => 'image_border',
239
+ 'label' => __( 'Image Border', 'press-elements' ),
240
+ 'selector' => '{{WRAPPER}} .press-elements-featured-image img',
241
+ ]
242
+ );
243
+
244
+ $this->add_control(
245
+ 'image_border_radius',
246
+ [
247
+ 'label' => __( 'Border Radius', 'press-elements' ),
248
+ 'type' => Controls_Manager::DIMENSIONS,
249
+ 'size_units' => [ 'px', '%' ],
250
+ 'selectors' => [
251
+ '{{WRAPPER}} .press-elements-featured-image img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
252
+ ],
253
+ ]
254
+ );
255
+
256
+ $this->add_group_control(
257
+ Group_Control_Box_Shadow::get_type(),
258
+ [
259
+ 'name' => 'image_box_shadow',
260
+ 'selector' => '{{WRAPPER}} .press-elements-featured-image img',
261
+ ]
262
+ );
263
+
264
+ $this->end_controls_section();
265
+
266
+ }
267
+
268
+ protected function render() {
269
+
270
+ $settings = $this->get_settings();
271
+
272
+ $image_size = $settings['size_size'];
273
+ $featured_image = get_the_post_thumbnail( null, $image_size );
274
+
275
+ if ( empty( $featured_image ) )
276
+ return;
277
+
278
+ switch ( $settings['link_to'] ) {
279
+ case 'custom' :
280
+ if ( ! empty( $settings['link']['url'] ) ) {
281
+ $link = esc_url( $settings['link']['url'] );
282
+ } else {
283
+ $link = false;
284
+ }
285
+ break;
286
+
287
+ case 'file' :
288
+ $image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), $image_size );
289
+ $link = esc_url( $image_url[0] );
290
+ break;
291
+
292
+ case 'post' :
293
+ $link = esc_url( get_the_permalink() );
294
+ break;
295
+
296
+ case 'home' :
297
+ $link = esc_url( get_home_url() );
298
+ break;
299
+
300
+ case 'none' :
301
+ default:
302
+ $link = false;
303
+ break;
304
+ }
305
+ $target = $settings['link']['is_external'] ? 'target="_blank"' : '';
306
+
307
+ $animation_class = ! empty( $settings['hover_animation'] ) ? 'elementor-animation-' . $settings['hover_animation'] : '';
308
+
309
+ $html = '<div class="press-elements-featured-image ' . $animation_class . '">';
310
+ if ( $link ) {
311
+ $html .= sprintf( '<a href="%1$s" %2$s>%3$s</a>', $link, $target, $featured_image );
312
+ } else {
313
+ $html .= $featured_image;
314
+ }
315
+ $html .= '</div>';
316
+
317
+ echo $html;
318
+
319
+ }
320
+
321
+ protected function _content_template() {
322
+
323
+ $image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large' );
324
+ ?>
325
+ <#
326
+ var featured_images = [];
327
+ <?php
328
+ $all_image_sizes = Group_Control_Image_Size::get_all_image_sizes();
329
+ foreach ( $all_image_sizes as $key => $value ) {
330
+ printf( 'featured_images[ "%1$s" ] = \'%2$s\';', $key, get_the_post_thumbnail( null, $key ) );
331
+ }
332
+ printf( 'featured_images[ "full" ] = \'%2$s\';', $key, get_the_post_thumbnail( null, 'full' ) );
333
+ ?>
334
+ var featured_image = featured_images[ settings.size_size ];
335
+
336
+ var link_url;
337
+ switch( settings.link_to ) {
338
+ case 'custom':
339
+ link_url = settings.link.url;
340
+ break;
341
+ case 'file':
342
+ link_url = '<?php echo esc_url( $image_url[0] ); ?>';
343
+ break;
344
+ case 'post':
345
+ link_url = '<?php echo esc_url( get_the_permalink() ); ?>';
346
+ break;
347
+ case 'home':
348
+ link_url = '<?php echo esc_url( get_home_url() ); ?>';
349
+ break;
350
+ case 'none':
351
+ default:
352
+ link_url = false;
353
+ }
354
+
355
+ var animation_class = '';
356
+ if ( '' !== settings.hover_animation ) {
357
+ animation_class = 'elementor-animation-' + settings.hover_animation;
358
+ }
359
+
360
+ var html = '<div class="press-elements-featured-image ' + animation_class + '">';
361
+ if ( link_url ) {
362
+ html += '<a href="' + link_url + '">' + featured_image + '</a>';
363
+ } else {
364
+ html += featured_image;
365
+ }
366
+ html += '</div>';
367
+
368
+ print( html );
369
+ #>
370
+ <?php
371
+
372
+ }
373
+
374
+ }
widgets/post-terms.php CHANGED
@@ -205,7 +205,7 @@ class Press_Elements_Post_Terms extends Widget_Base {
205
  switch ( $settings['link_to'] ) {
206
  case 'term' :
207
  foreach ( $term_list as $term ) {
208
- $html .= '<a href="' . esc_url( get_term_link( $term ) ) . '">' . $term->name . '</a>, ';
209
  }
210
  break;
211
 
205
  switch ( $settings['link_to'] ) {
206
  case 'term' :
207
  foreach ( $term_list as $term ) {
208
+ $html .= sprintf( '<a href="%1$s">%2$s</a>, ', esc_url( get_term_link( $term ) ), $term->name );
209
  }
210
  break;
211
 
widgets/post-title.php CHANGED
@@ -120,6 +120,7 @@ class Press_Elements_Post_Title extends Widget_Base {
120
  'default' => 'none',
121
  'options' => [
122
  'none' => __( 'None', 'press-elements' ),
 
123
  'post' => sprintf(
124
  /* translators: %s: Post type singular name (e.g. Post or Page) */
125
  __( '%s URL', 'press-elements' ),
@@ -208,14 +209,18 @@ class Press_Elements_Post_Title extends Widget_Base {
208
  switch ( $settings['link_to'] ) {
209
  case 'custom' :
210
  if ( ! empty( $settings['link']['url'] ) ) {
211
- $link = $settings['link']['url'];
212
  } else {
213
  $link = false;
214
  }
215
  break;
216
 
217
  case 'post' :
218
- $link = get_the_permalink();
 
 
 
 
219
  break;
220
 
221
  case 'none' :
@@ -241,7 +246,7 @@ class Press_Elements_Post_Title extends Widget_Base {
241
  protected function _content_template() {
242
  ?>
243
  <#
244
- var title = '<?php echo get_the_title(); ?>';
245
 
246
  var link_url;
247
  switch( settings.link_to ) {
@@ -249,7 +254,10 @@ class Press_Elements_Post_Title extends Widget_Base {
249
  link_url = settings.link.url;
250
  break;
251
  case 'post':
252
- link_url = '<?php echo get_the_permalink(); ?>';
 
 
 
253
  break;
254
  case 'none':
255
  default:
120
  'default' => 'none',
121
  'options' => [
122
  'none' => __( 'None', 'press-elements' ),
123
+ 'home' => __( 'Home URL', 'press-elements' ),
124
  'post' => sprintf(
125
  /* translators: %s: Post type singular name (e.g. Post or Page) */
126
  __( '%s URL', 'press-elements' ),
209
  switch ( $settings['link_to'] ) {
210
  case 'custom' :
211
  if ( ! empty( $settings['link']['url'] ) ) {
212
+ $link = esc_url( $settings['link']['url'] );
213
  } else {
214
  $link = false;
215
  }
216
  break;
217
 
218
  case 'post' :
219
+ $link = esc_url( get_the_permalink() );
220
+ break;
221
+
222
+ case 'home' :
223
+ $link = esc_url( get_home_url() );
224
  break;
225
 
226
  case 'none' :
246
  protected function _content_template() {
247
  ?>
248
  <#
249
+ var title = "<?php echo get_the_title(); ?>";
250
 
251
  var link_url;
252
  switch( settings.link_to ) {
254
  link_url = settings.link.url;
255
  break;
256
  case 'post':
257
+ link_url = '<?php echo esc_url( get_the_permalink() ); ?>';
258
+ break;
259
+ case 'home':
260
+ link_url = '<?php echo esc_url( get_home_url() ); ?>';
261
  break;
262
  case 'none':
263
  default:
widgets/site-description.php CHANGED
@@ -188,14 +188,14 @@ class Press_Elements_Site_Description extends Widget_Base {
188
  switch ( $settings['link_to'] ) {
189
  case 'custom' :
190
  if ( ! empty( $settings['link']['url'] ) ) {
191
- $link = $settings['link']['url'];
192
  } else {
193
  $link = false;
194
  }
195
  break;
196
 
197
  case 'home' :
198
- $link = get_home_url();
199
  break;
200
 
201
  case 'none' :
@@ -229,7 +229,7 @@ class Press_Elements_Site_Description extends Widget_Base {
229
  link_url = settings.link.url;
230
  break;
231
  case 'home':
232
- link_url = '<?php echo get_home_url(); ?>';
233
  break;
234
  case 'none':
235
  default:
188
  switch ( $settings['link_to'] ) {
189
  case 'custom' :
190
  if ( ! empty( $settings['link']['url'] ) ) {
191
+ $link = esc_url( $settings['link']['url'] );
192
  } else {
193
  $link = false;
194
  }
195
  break;
196
 
197
  case 'home' :
198
+ $link = esc_url( get_home_url() );
199
  break;
200
 
201
  case 'none' :
229
  link_url = settings.link.url;
230
  break;
231
  case 'home':
232
+ link_url = '<?php echo esc_url( get_home_url() ); ?>';
233
  break;
234
  case 'none':
235
  default:
widgets/site-logo.php CHANGED
@@ -266,14 +266,14 @@ class Press_Elements_Site_logo extends Widget_Base {
266
  switch ( $settings['link_to'] ) {
267
  case 'custom' :
268
  if ( ! empty( $settings['link']['url'] ) ) {
269
- $link = $settings['link']['url'];
270
  } else {
271
  $link = false;
272
  }
273
  break;
274
 
275
  case 'home' :
276
- $link = get_home_url();
277
  break;
278
 
279
  case 'none' :
@@ -307,7 +307,7 @@ class Press_Elements_Site_logo extends Widget_Base {
307
  link_url = settings.link.url;
308
  break;
309
  case 'home':
310
- link_url = '<?php echo get_home_url(); ?>';
311
  break;
312
  case 'none':
313
  default:
266
  switch ( $settings['link_to'] ) {
267
  case 'custom' :
268
  if ( ! empty( $settings['link']['url'] ) ) {
269
+ $link = esc_url( $settings['link']['url'] );
270
  } else {
271
  $link = false;
272
  }
273
  break;
274
 
275
  case 'home' :
276
+ $link = esc_url( get_home_url() );
277
  break;
278
 
279
  case 'none' :
307
  link_url = settings.link.url;
308
  break;
309
  case 'home':
310
+ link_url = '<?php echo esc_url( get_home_url() ); ?>';
311
  break;
312
  case 'none':
313
  default:
widgets/site-title.php CHANGED
@@ -188,14 +188,14 @@ class Press_Elements_Site_Title extends Widget_Base {
188
  switch ( $settings['link_to'] ) {
189
  case 'custom' :
190
  if ( ! empty( $settings['link']['url'] ) ) {
191
- $link = $settings['link']['url'];
192
  } else {
193
  $link = false;
194
  }
195
  break;
196
 
197
  case 'home' :
198
- $link = get_home_url();
199
  break;
200
 
201
  case 'none' :
@@ -229,7 +229,7 @@ class Press_Elements_Site_Title extends Widget_Base {
229
  link_url = settings.link.url;
230
  break;
231
  case 'home':
232
- link_url = '<?php echo get_home_url(); ?>';
233
  break;
234
  case 'none':
235
  default:
188
  switch ( $settings['link_to'] ) {
189
  case 'custom' :
190
  if ( ! empty( $settings['link']['url'] ) ) {
191
+ $link = esc_url( $settings['link']['url'] );
192
  } else {
193
  $link = false;
194
  }
195
  break;
196
 
197
  case 'home' :
198
+ $link = esc_url( get_home_url() );
199
  break;
200
 
201
  case 'none' :
229
  link_url = settings.link.url;
230
  break;
231
  case 'home':
232
+ link_url = '<?php echo esc_url( get_home_url() ); ?>';
233
  break;
234
  case 'none':
235
  default: