Version Description
Release Date: Dec 06, 2017
- Fixed product comments pagination
- Added Premmerce icon to menu
- Added Premmerce version check
- Added WordPress 4.9.1 support
- Added WooCommerce 3.2.5 support
=
Download this release
Release Info
Developer | premmerce |
Plugin | Premmerce Permalink Manager for WooCommerce |
Version | 1.1.2 |
Comparing to | |
See all releases |
Code changes from version 1.1 to 1.1.2
- composer.json +0 -33
- composer.lock +0 -44
- fix_freemius +0 -14
- freemius/.codeclimate.yml +0 -19
- freemius/.github/ISSUE_TEMPLATE.md +0 -29
- freemius/.gitignore +0 -16
- freemius/.travis.yml +0 -11
- freemius/assets/css/admin/affiliation.css +1 -0
- freemius/assets/css/admin/index.php +3 -0
- freemius/assets/css/index.php +3 -0
- freemius/assets/img/index.php +3 -0
- freemius/assets/js/index.php +3 -0
- freemius/assets/scss/_mixins.scss +0 -13
- freemius/assets/scss/admin/affiliation.scss +97 -0
- freemius/assets/scss/admin/index.php +3 -0
- freemius/assets/scss/index.php +3 -0
- freemius/composer.json +0 -10
- freemius/config.php +1 -1
- freemius/gulpfile.js +0 -139
- freemius/includes/class-freemius.php +999 -342
- freemius/includes/class-fs-plugin-updater.php +12 -14
- freemius/includes/customizer/class-fs-customizer-support-section.php +3 -3
- freemius/includes/customizer/class-fs-customizer-upsell-control.php +2 -2
- freemius/includes/customizer/index.php +3 -0
- freemius/includes/debug/class-fs-debug-bar-panel.php +1 -1
- freemius/includes/debug/debug-bar-start.php +2 -2
- freemius/includes/entities/class-fs-affiliate-terms.php +128 -0
- freemius/includes/entities/class-fs-affiliate.php +84 -0
- freemius/includes/entities/class-fs-entity.php +3 -3
- freemius/includes/entities/class-fs-plugin.php +21 -0
- freemius/includes/fs-core-functions.php +1037 -653
- freemius/includes/fs-essential-functions.php +3 -0
- freemius/includes/fs-plugin-info-dialog.php +98 -56
- freemius/includes/i18n.php +50 -2
- freemius/includes/l10n.php +0 -220
- freemius/includes/managers/class-fs-admin-menu-manager.php +6 -5
- freemius/includes/managers/class-fs-cache-manager.php +6 -5
- freemius/includes/managers/class-fs-option-manager.php +58 -7
- freemius/includes/sdk/FreemiusWordPress.php +11 -5
- freemius/languages/freemius-en.po +1065 -1685
- freemius/languages/freemius-es_ES.mo +0 -0
- freemius/languages/freemius-es_ES.po +2035 -0
- freemius/languages/freemius-he.mo +0 -0
- freemius/languages/freemius-he_IL.mo +0 -0
- freemius/languages/{freemius-he.po → freemius-he_IL.po} +1588 -1379
- freemius/languages/freemius.pot +635 -1180
- freemius/package.json +0 -40
- freemius/require.php +2 -0
- freemius/start.php +41 -18
- freemius/templates/account.php +133 -92
- freemius/templates/account/billing.php +21 -16
- freemius/templates/account/payments.php +6 -6
- freemius/templates/add-ons.php +9 -9
- freemius/templates/admin-notice.php +3 -1
- freemius/templates/auto-installation.php +12 -9
- freemius/templates/billing.php +0 -506
- freemius/templates/checkout.php +1 -1
- freemius/templates/connect.php +46 -41
- freemius/templates/contact.php +1 -1
- freemius/templates/debug.php +94 -85
- freemius/templates/debug/api-calls.php +14 -12
- freemius/templates/debug/logger.php +8 -8
- freemius/templates/debug/plugins-themes-sync.php +25 -17
- freemius/templates/debug/scheduled-crons.php +29 -21
- freemius/templates/forms/affiliation.php +479 -0
- freemius/templates/forms/deactivation/contact.php +5 -2
- freemius/templates/forms/deactivation/form.php +28 -23
- freemius/templates/forms/deactivation/retry-skip.php +4 -4
- freemius/templates/forms/license-activation.php +11 -9
- freemius/templates/forms/optout.php +16 -15
- freemius/templates/forms/resend-key.php +7 -7
- freemius/templates/forms/trial-start.php +9 -7
- freemius/templates/js/style-premium-theme.php +1 -1
- freemius/templates/plugin-icon.php +2 -2
- freemius/templates/plugin-info/description.php +2 -2
- freemius/templates/plugin-info/features.php +5 -5
- freemius/templates/plugin-info/screenshots.php +1 -1
- freemius/templates/pricing.php +1 -1
- freemius/templates/secure-https-header.php +2 -1
- freemius/templates/tabs.php +177 -178
- makefile +0 -22
- premmerce-url-manager.php +6 -2
- readme.md +0 -64
- readme.txt +21 -4
- src/Admin/Admin.php +8 -1
- src/PermalinkListener.php +227 -235
- vendor/composer/autoload_classmap.php +0 -1
- vendor/composer/autoload_files.php +0 -10
- vendor/composer/autoload_psr4.php +2 -1
- vendor/composer/autoload_real.php +0 -18
- vendor/composer/autoload_static.php +6 -7
composer.json
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "premmerce/woo-permalink-manager",
|
3 |
-
"description": "Permalink manager",
|
4 |
-
"type": "wordpress-plugin",
|
5 |
-
"license": "GPLv2+",
|
6 |
-
"authors": [
|
7 |
-
{
|
8 |
-
"name": "premmerce",
|
9 |
-
"email": "info@premme.com"
|
10 |
-
}
|
11 |
-
],
|
12 |
-
"minimum-stability": "stable",
|
13 |
-
"repositories": [
|
14 |
-
{
|
15 |
-
"type": "git",
|
16 |
-
"url": "https://github.com/Premmerce/wordpress-sdk.git"
|
17 |
-
}
|
18 |
-
],
|
19 |
-
"require": {
|
20 |
-
"premmerce/wordpress-sdk": "^1.0"
|
21 |
-
},
|
22 |
-
"autoload": {
|
23 |
-
"psr-4": {
|
24 |
-
"Premmerce\\UrlManager\\": [
|
25 |
-
"sdk/",
|
26 |
-
"src/"
|
27 |
-
]
|
28 |
-
},
|
29 |
-
"files": [
|
30 |
-
"freemius.php"
|
31 |
-
]
|
32 |
-
}
|
33 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
composer.lock
DELETED
@@ -1,44 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"_readme": [
|
3 |
-
"This file locks the dependencies of your project to a known state",
|
4 |
-
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
5 |
-
"This file is @generated automatically"
|
6 |
-
],
|
7 |
-
"content-hash": "1e7ae28601f4a6baa5227072d1fe9c63",
|
8 |
-
"packages": [
|
9 |
-
{
|
10 |
-
"name": "premmerce/wordpress-sdk",
|
11 |
-
"version": "v1.0",
|
12 |
-
"source": {
|
13 |
-
"type": "git",
|
14 |
-
"url": "https://github.com/Premmerce/wordpress-sdk.git",
|
15 |
-
"reference": "c4c71a80ed677ea4f073333efb329c0aa5d7b033"
|
16 |
-
},
|
17 |
-
"type": "library",
|
18 |
-
"autoload": {
|
19 |
-
"psr-4": {
|
20 |
-
"WordpressSDK\\": "src"
|
21 |
-
}
|
22 |
-
},
|
23 |
-
"license": [
|
24 |
-
"GPL-2.0+"
|
25 |
-
],
|
26 |
-
"authors": [
|
27 |
-
{
|
28 |
-
"name": "Premmerce",
|
29 |
-
"email": "info@premme.com"
|
30 |
-
}
|
31 |
-
],
|
32 |
-
"description": "Wordpress SDK for premmerce plugins",
|
33 |
-
"time": "2017-10-30T14:25:58+00:00"
|
34 |
-
}
|
35 |
-
],
|
36 |
-
"packages-dev": [],
|
37 |
-
"aliases": [],
|
38 |
-
"minimum-stability": "stable",
|
39 |
-
"stability-flags": [],
|
40 |
-
"prefer-stable": false,
|
41 |
-
"prefer-lowest": false,
|
42 |
-
"platform": [],
|
43 |
-
"platform-dev": []
|
44 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fix_freemius
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
#!/usr/bin/php
|
2 |
-
<?php
|
3 |
-
$from = '<?php if ( ! $has_tabs ) : ?>';
|
4 |
-
$to = "<?php if ( ! \$has_tabs && ! \$fs->apply_filters( 'hide_account_tabs', false )) : ?>";
|
5 |
-
|
6 |
-
$file = 'freemius/templates/account.php';
|
7 |
-
|
8 |
-
$content = file_get_contents($file);
|
9 |
-
|
10 |
-
$content = str_replace($from, $to, $content);
|
11 |
-
|
12 |
-
if(file_put_contents('tmp', $content)){
|
13 |
-
rename('tmp', $file);
|
14 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/.codeclimate.yml
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
engines:
|
2 |
-
phpcodesniffer:
|
3 |
-
enabled: true
|
4 |
-
config:
|
5 |
-
standard: "WordPress"
|
6 |
-
checks:
|
7 |
-
Squiz Commenting InlineComment InvalidEndChar:
|
8 |
-
enabled: false
|
9 |
-
Squiz Commenting InlineComment SpacingBefore:
|
10 |
-
enabled: false
|
11 |
-
Squiz Commenting InlineComment WrongStyle:
|
12 |
-
enabled: false
|
13 |
-
Generic Commenting DocComment MissingShort:
|
14 |
-
enabled: false
|
15 |
-
Generic WhiteSpace ScopeIndent IncorrectExact:
|
16 |
-
enabled: false
|
17 |
-
ratings:
|
18 |
-
paths:
|
19 |
-
- "**.php"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/.github/ISSUE_TEMPLATE.md
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
**Actual Behavior**:
|
2 |
-
- `What is the issue? (*)`
|
3 |
-
- `What is the expected behavior?`
|
4 |
-
|
5 |
-
**Versions**: (*)
|
6 |
-
- `Freemius SDK Version:`
|
7 |
-
- `WordPress Version:`
|
8 |
-
- `PHP Version:`
|
9 |
-
|
10 |
-
**Plugin / Theme**: (*)
|
11 |
-
- `Name:`
|
12 |
-
- `Slug:`
|
13 |
-
- `Freemius ID:`
|
14 |
-
|
15 |
-
**Additional Information**:
|
16 |
-
- `Browser Type: (*)`
|
17 |
-
- `Browser Version: (*)`
|
18 |
-
- `OS: (*)`
|
19 |
-
- `Stack Traces:`
|
20 |
-
|
21 |
-
----
|
22 |
-
**Note:** `(*)` indicates required information. Without this information, your issue may be auto-closed.
|
23 |
-
|
24 |
-
> You can find your Freemius SDK version at `/freemius/start.php`
|
25 |
-
|
26 |
-
> You can find your Freemius product ID in the Freemius dashboard: `SETTINGS -> INTEGRATION`.
|
27 |
-
|
28 |
-
> Do not modify the titles or questions. Simply add your responses to the ends of the questions.
|
29 |
-
Add more lines if needed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/.gitignore
DELETED
@@ -1,16 +0,0 @@
|
|
1 |
-
output/
|
2 |
-
assets/img/icon.*
|
3 |
-
|
4 |
-
pootle-page-builder.png
|
5 |
-
rating-widget.jpg
|
6 |
-
hello-dolly-pro.png
|
7 |
-
woocommerce-fiscalita-italiana.png
|
8 |
-
assets/img/content-aware-sidebars.png
|
9 |
-
assets/img/custom-post-type-ui.png
|
10 |
-
.idea
|
11 |
-
nextgen-gallery.png
|
12 |
-
node_modules
|
13 |
-
languages/_freemius-en.mo
|
14 |
-
languages/_freemius-en.po
|
15 |
-
foobox-image-lightbox.png
|
16 |
-
transifex-config.json
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/.travis.yml
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
sudo: false
|
2 |
-
|
3 |
-
language: php
|
4 |
-
|
5 |
-
php:
|
6 |
-
- 5.3
|
7 |
-
- 5.4
|
8 |
-
- 5.5
|
9 |
-
- 5.6
|
10 |
-
- 7.0
|
11 |
-
- hhvm
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/assets/css/admin/affiliation.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
@charset "UTF-8";#fs_affiliation_content_wrapper #messages{margin-top:25px}#fs_affiliation_content_wrapper h3{font-size:24px;padding:0;margin-left:0}#fs_affiliation_content_wrapper ul li{box-sizing:border-box;list-style-type:none}#fs_affiliation_content_wrapper ul li:before{content:'✓';margin-right:10px;font-weight:bold}#fs_affiliation_content_wrapper p:not(.description),#fs_affiliation_content_wrapper li,#fs_affiliation_content_wrapper label{font-size:16px !important;line-height:26px !important}#fs_affiliation_content_wrapper .button{margin-top:20px;margin-bottom:7px;line-height:35px;height:40px;font-size:16px}#fs_affiliation_content_wrapper .button#cancel_button{margin-right:5px}#fs_affiliation_content_wrapper form .input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form .input-container .input-label{font-weight:bold;display:block;width:100%}#fs_affiliation_content_wrapper form .input-container.input-container-text label,#fs_affiliation_content_wrapper form .input-container.input-container-text input,#fs_affiliation_content_wrapper form .input-container.input-container-text textarea{display:block}#fs_affiliation_content_wrapper form .input-container #add_domain,#fs_affiliation_content_wrapper form .input-container .remove-domain{text-decoration:none;display:inline-block;margin-top:3px}#fs_affiliation_content_wrapper form .input-container #add_domain:focus,#fs_affiliation_content_wrapper form .input-container .remove-domain:focus{box-shadow:none}#fs_affiliation_content_wrapper form .input-container #add_domain.disabled,#fs_affiliation_content_wrapper form .input-container .remove-domain.disabled{color:#aaa;cursor:default}#fs_affiliation_content_wrapper form #extra_domains_container .description{margin-top:0;position:relative;top:-4px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain{display:inline-block;margin-right:5px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain:last-of-type{margin-bottom:0}
|
freemius/assets/css/admin/index.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
3 |
+
// Hide file structure from users on unprotected servers.
|
freemius/assets/css/index.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
3 |
+
// Hide file structure from users on unprotected servers.
|
freemius/assets/img/index.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
3 |
+
// Hide file structure from users on unprotected servers.
|
freemius/assets/js/index.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
3 |
+
// Hide file structure from users on unprotected servers.
|
freemius/assets/scss/_mixins.scss
CHANGED
@@ -132,19 +132,6 @@ $useIEFilters: 0;
|
|
132 |
}
|
133 |
}
|
134 |
|
135 |
-
/*@mixin rgba-bg ($hex, $alpha, $ie: $useIEFilters) {
|
136 |
-
@if $ie == 1 {
|
137 |
-
background-color: none;
|
138 |
-
$hexopac: ie-hex-str(rgba($hex, $alpha));
|
139 |
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#{$hexopac}',EndColorStr='#{$hexopac}}');
|
140 |
-
-ms-filter: quote(progid:DXImageTransform.Microsoft.gradient(startColorStr='#{$hexopac}',EndColorStr='#{$hexopac}'));
|
141 |
-
}
|
142 |
-
@else {
|
143 |
-
background-color: $hex;
|
144 |
-
background-color: rgba($hex, $alpha);
|
145 |
-
}
|
146 |
-
}*/
|
147 |
-
|
148 |
@mixin perspective($perspective) {
|
149 |
-moz-perspective: $perspective;
|
150 |
-ms-perspective: $perspective;
|
132 |
}
|
133 |
}
|
134 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
@mixin perspective($perspective) {
|
136 |
-moz-perspective: $perspective;
|
137 |
-ms-perspective: $perspective;
|
freemius/assets/scss/admin/affiliation.scss
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "../start";
|
2 |
+
|
3 |
+
#fs_affiliation_content_wrapper {
|
4 |
+
#messages {
|
5 |
+
margin-top: 25px;
|
6 |
+
}
|
7 |
+
|
8 |
+
h3 {
|
9 |
+
font-size: 24px;
|
10 |
+
padding: 0;
|
11 |
+
margin-left: 0;
|
12 |
+
}
|
13 |
+
|
14 |
+
ul {
|
15 |
+
li {
|
16 |
+
@include box-sizing(border-box);
|
17 |
+
list-style-type: none;
|
18 |
+
|
19 |
+
&:before {
|
20 |
+
content: '✓';
|
21 |
+
margin-right: 10px;
|
22 |
+
font-weight: bold;
|
23 |
+
}
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
p:not(.description), li, label {
|
28 |
+
font-size: 16px !important;
|
29 |
+
line-height: 26px !important;
|
30 |
+
}
|
31 |
+
|
32 |
+
.button {
|
33 |
+
margin-top: 20px;
|
34 |
+
margin-bottom: 7px;
|
35 |
+
line-height: 35px;
|
36 |
+
height: 40px;
|
37 |
+
font-size: 16px;
|
38 |
+
|
39 |
+
&#cancel_button {
|
40 |
+
margin-right: 5px;
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
form {
|
45 |
+
.input-container {
|
46 |
+
.input-label {
|
47 |
+
font-weight: bold;
|
48 |
+
display: block;
|
49 |
+
width: 100%;
|
50 |
+
}
|
51 |
+
|
52 |
+
&.input-container-text {
|
53 |
+
label, input, textarea {
|
54 |
+
display: block;
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
margin-bottom: 15px;
|
59 |
+
|
60 |
+
#add_domain, .remove-domain {
|
61 |
+
text-decoration: none;
|
62 |
+
display: inline-block;
|
63 |
+
margin-top: 3px;
|
64 |
+
|
65 |
+
&:focus {
|
66 |
+
box-shadow: none;
|
67 |
+
}
|
68 |
+
|
69 |
+
&.disabled {
|
70 |
+
color: #aaa;
|
71 |
+
cursor: default;
|
72 |
+
}
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
#extra_domains_container {
|
77 |
+
.description {
|
78 |
+
margin-top: 0;
|
79 |
+
position: relative;
|
80 |
+
top: -4px;
|
81 |
+
}
|
82 |
+
|
83 |
+
.extra-domain-input-container {
|
84 |
+
margin-bottom: 15px;
|
85 |
+
|
86 |
+
.domain {
|
87 |
+
display: inline-block;
|
88 |
+
margin-right: 5px;
|
89 |
+
|
90 |
+
&:last-of-type {
|
91 |
+
margin-bottom: 0;
|
92 |
+
}
|
93 |
+
}
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
97 |
+
}
|
freemius/assets/scss/admin/index.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
3 |
+
// Hide file structure from users on unprotected servers.
|
freemius/assets/scss/index.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
3 |
+
// Hide file structure from users on unprotected servers.
|
freemius/composer.json
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "freemius/wordpress-sdk",
|
3 |
-
"description": "Freemius WordPress SDK",
|
4 |
-
"keywords": ["freemius", "wordpress", "plugin", "sdk"],
|
5 |
-
"homepage": "https://freemius.com",
|
6 |
-
"license": "GPL-2.0+",
|
7 |
-
"require": {
|
8 |
-
"php": ">=5.2"
|
9 |
-
}
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/config.php
CHANGED
@@ -231,7 +231,7 @@
|
|
231 |
}
|
232 |
|
233 |
if ( ! defined( 'FS_CHECKOUT__ADDRESS_LOCALHOST' ) ) {
|
234 |
-
define( 'FS_CHECKOUT__ADDRESS_LOCALHOST', 'http://checkout.freemius:8080' );
|
235 |
}
|
236 |
|
237 |
if ( ! defined( 'FS_CHECKOUT__ADDRESS' ) ) {
|
231 |
}
|
232 |
|
233 |
if ( ! defined( 'FS_CHECKOUT__ADDRESS_LOCALHOST' ) ) {
|
234 |
+
define( 'FS_CHECKOUT__ADDRESS_LOCALHOST', 'http://checkout.freemius-local.com:8080' );
|
235 |
}
|
236 |
|
237 |
if ( ! defined( 'FS_CHECKOUT__ADDRESS' ) ) {
|
freemius/gulpfile.js
DELETED
@@ -1,139 +0,0 @@
|
|
1 |
-
var gulp = require('gulp');
|
2 |
-
var path = require('path');
|
3 |
-
var filesystem = require('fs');
|
4 |
-
var wpPot = require('gulp-wp-pot');
|
5 |
-
var gettext = require('gulp-gettext');
|
6 |
-
var sort = require('gulp-sort');
|
7 |
-
var pofill = require('gulp-pofill');
|
8 |
-
var rename = require('gulp-rename');
|
9 |
-
var clean = require('gulp-clean');
|
10 |
-
|
11 |
-
var languagesFolder = './languages/';
|
12 |
-
|
13 |
-
var options = require('./transifex-config.json')
|
14 |
-
|
15 |
-
function getFolders(dir) {
|
16 |
-
return filesystem.readdirSync(dir)
|
17 |
-
.filter(function (file) {
|
18 |
-
return filesystem.statSync(path.join(dir, file)).isDirectory();
|
19 |
-
});
|
20 |
-
}
|
21 |
-
|
22 |
-
var transifex = require('gulp-transifex').createClient(options);
|
23 |
-
|
24 |
-
// Create POT out of i18n.php.
|
25 |
-
gulp.task('prepare-source', function () {
|
26 |
-
gulp.src('includes/i18n.php')
|
27 |
-
.pipe(sort())
|
28 |
-
.pipe(wpPot({
|
29 |
-
destFile : 'freemius.pot',
|
30 |
-
package : 'freemius',
|
31 |
-
bugReport : 'https://github.com/Freemius/wordpress-sdk/issues',
|
32 |
-
lastTranslator : 'Vova Feldman <vova@freemius.com>',
|
33 |
-
team : 'Freemius Team <admin@freemius.com>',
|
34 |
-
gettextFunctions: [
|
35 |
-
{name: '_fs_text'},
|
36 |
-
{name: '_fs_echo'},
|
37 |
-
{name: '_fs_esc_attr'},
|
38 |
-
{name: '_fs_esc_attr_echo'},
|
39 |
-
{name: '_fs_esc_html'},
|
40 |
-
{name: '_fs_esc_html_echo'},
|
41 |
-
{name: '_fs_x', context: 2},
|
42 |
-
{name: '_fs_ex', context: 2},
|
43 |
-
{name: '_fs_esc_attr_x', context: 2},
|
44 |
-
{name: '_fs_esc_html_x', context: 2},
|
45 |
-
{name: '_fs_n', plural: 2},
|
46 |
-
{name: '_fs_n_noop', plural: 2},
|
47 |
-
{name: '_fs_nx', plural: 2, context: 4},
|
48 |
-
{name: '_fs_nx_noop', plural: 2, context: 3}
|
49 |
-
]
|
50 |
-
}))
|
51 |
-
.pipe(gulp.dest(languagesFolder + 'freemius.pot'));
|
52 |
-
|
53 |
-
// Create English PO out of the POT.
|
54 |
-
return gulp.src(languagesFolder + 'freemius.pot')
|
55 |
-
.pipe(pofill({
|
56 |
-
items: function (item) {
|
57 |
-
// If msgstr is empty, use identity translation
|
58 |
-
if (!item.msgstr.length) {
|
59 |
-
item.msgstr = [''];
|
60 |
-
}
|
61 |
-
if (!item.msgstr[0]) {
|
62 |
-
item.msgstr[0] = item.msgid;
|
63 |
-
}
|
64 |
-
return item;
|
65 |
-
}
|
66 |
-
}))
|
67 |
-
.pipe(rename('freemius-en.po'))
|
68 |
-
.pipe(gulp.dest(languagesFolder));
|
69 |
-
});
|
70 |
-
|
71 |
-
// Push updated po resource to transifex.
|
72 |
-
gulp.task('update-transifex', ['prepare-source'], function () {
|
73 |
-
return gulp.src(languagesFolder + 'freemius-en.po')
|
74 |
-
.pipe(transifex.pushResource());
|
75 |
-
});
|
76 |
-
|
77 |
-
// Download latest *.po translations.
|
78 |
-
gulp.task('download-translations', ['update-transifex'], function () {
|
79 |
-
return gulp.src(languagesFolder + 'freemius-en.po')
|
80 |
-
.pipe(transifex.pullResource());
|
81 |
-
});
|
82 |
-
|
83 |
-
// Move translations to languages root.
|
84 |
-
gulp.task('prepare-translations', ['download-translations'], function () {
|
85 |
-
var folders = getFolders(languagesFolder);
|
86 |
-
|
87 |
-
return folders.map(function (folder) {
|
88 |
-
return gulp.src(path.join(languagesFolder, folder, 'freemius-en.po'))
|
89 |
-
.pipe(rename('freemius-' + folder + '.po'))
|
90 |
-
.pipe(gulp.dest(languagesFolder));
|
91 |
-
});
|
92 |
-
});
|
93 |
-
|
94 |
-
// Feel up empty translations with English.
|
95 |
-
gulp.task('translations-feelup', ['prepare-translations'], function () {
|
96 |
-
return gulp.src(languagesFolder + '*.po')
|
97 |
-
.pipe(pofill({
|
98 |
-
items: function (item) {
|
99 |
-
// If msgstr is empty, use identity translation
|
100 |
-
if (0 == item.msgstr.length) {
|
101 |
-
item.msgstr = [''];
|
102 |
-
}
|
103 |
-
if (0 == item.msgstr[0].length) {
|
104 |
-
// item.msgid[0] = item.msgid;
|
105 |
-
item.msgstr[0] = item.msgid;
|
106 |
-
}
|
107 |
-
return item;
|
108 |
-
}
|
109 |
-
}))
|
110 |
-
.pipe(gulp.dest(languagesFolder));
|
111 |
-
});
|
112 |
-
|
113 |
-
// Cleanup temporary translation folders.
|
114 |
-
gulp.task('cleanup', ['prepare-translations'], function () {
|
115 |
-
var folders = getFolders(languagesFolder);
|
116 |
-
|
117 |
-
return folders.map(function (folder) {
|
118 |
-
return gulp.src(path.join(languagesFolder, folder), {read: false})
|
119 |
-
.pipe(clean());
|
120 |
-
});
|
121 |
-
});
|
122 |
-
|
123 |
-
// Compile *.po to *.mo binaries for usage.
|
124 |
-
gulp.task('compile-translations', ['translations-feelup'], function () {
|
125 |
-
// Compile POs to MOs.
|
126 |
-
return gulp.src(languagesFolder + '*.po')
|
127 |
-
.pipe(gettext())
|
128 |
-
.pipe(gulp.dest(languagesFolder))
|
129 |
-
});
|
130 |
-
|
131 |
-
gulp.task('default', [], function () {
|
132 |
-
gulp.run('prepare-source');
|
133 |
-
gulp.run('update-transifex');
|
134 |
-
gulp.run('download-translations');
|
135 |
-
gulp.run('prepare-translations');
|
136 |
-
gulp.run('translations-feelup');
|
137 |
-
gulp.run('cleanup');
|
138 |
-
gulp.run('compile-translations');
|
139 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/includes/class-freemius.php
CHANGED
@@ -271,6 +271,33 @@
|
|
271 |
*/
|
272 |
private static $_instances = array();
|
273 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
274 |
#region Uninstall Reasons IDs
|
275 |
|
276 |
const REASON_NO_LONGER_NEEDED = 1;
|
@@ -528,6 +555,18 @@
|
|
528 |
return;
|
529 |
}
|
530 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
531 |
if ( version_compare( $sdk_prev_version, '1.1.5', '<' ) &&
|
532 |
version_compare( $sdk_version, '1.1.5', '>=' )
|
533 |
) {
|
@@ -551,6 +590,46 @@
|
|
551 |
}
|
552 |
}
|
553 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
554 |
/**
|
555 |
* @author Vova Feldman (@svovaf)
|
556 |
* @since 1.2.2.7
|
@@ -732,6 +811,8 @@
|
|
732 |
'_install_premium_version_ajax_action'
|
733 |
) );
|
734 |
|
|
|
|
|
735 |
$this->add_action( 'after_plans_sync', array( &$this, '_check_for_trial_plans' ) );
|
736 |
|
737 |
$this->add_action( 'sdk_version_update', array( &$this, '_data_migration' ), WP_FS__DEFAULT_PRIORITY, 2 );
|
@@ -739,6 +820,7 @@
|
|
739 |
$this->add_filter( 'after_code_type_change', array( &$this, '_after_code_type_change' ) );
|
740 |
|
741 |
add_action( 'admin_init', array( &$this, '_add_trial_notice' ) );
|
|
|
742 |
add_action( 'admin_init', array( &$this, '_enqueue_common_css' ) );
|
743 |
|
744 |
/**
|
@@ -844,8 +926,11 @@
|
|
844 |
// Try to load the cached value of the file path.
|
845 |
if ( isset( $this->_storage->plugin_main_file ) ) {
|
846 |
$plugin_main_file = $this->_storage->plugin_main_file;
|
847 |
-
|
848 |
-
|
|
|
|
|
|
|
849 |
}
|
850 |
}
|
851 |
|
@@ -864,15 +949,16 @@
|
|
864 |
if ( isset( $this->_storage->plugin_main_file ) &&
|
865 |
isset( $this->_storage->plugin_main_file->prev_path )
|
866 |
) {
|
867 |
-
|
868 |
-
|
|
|
869 |
}
|
870 |
}
|
871 |
|
872 |
wp_die(
|
873 |
-
$this->
|
874 |
" Module: {$this->_slug}; SDK: " . WP_FS__SDK_VERSION . ";",
|
875 |
-
$this->
|
876 |
array( 'back_link' => true )
|
877 |
);
|
878 |
}
|
@@ -888,8 +974,61 @@
|
|
888 |
'path' => $id_slug_type_path_map[ $this->_module_id ]['path'],
|
889 |
);
|
890 |
|
891 |
-
return $id_slug_type_path_map[ $this->_module_id ]['path'];
|
892 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
893 |
|
894 |
/**
|
895 |
* @author Leo Fajardo (@leorw)
|
@@ -912,7 +1051,19 @@
|
|
912 |
$store_option = true;
|
913 |
}
|
914 |
|
915 |
-
if ( ! isset( $id_slug_type_path_map[ $module_id ]['path'] )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
916 |
$caller_main_file_and_type = $this->get_caller_main_file_and_type();
|
917 |
|
918 |
$id_slug_type_path_map[ $module_id ]['type'] = $caller_main_file_and_type->module_type;
|
@@ -1002,8 +1153,18 @@
|
|
1002 |
*/
|
1003 |
|
1004 |
if ( $caller_file_path == fs_normalize_path( realpath( trailingslashit( $themes_dir ) . basename( dirname( $caller_file_path ) ) . '/' . basename( $caller_file_path ) ) ) ) {
|
1005 |
-
$module_type
|
1006 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1007 |
continue;
|
1008 |
}
|
1009 |
}
|
@@ -1021,7 +1182,7 @@
|
|
1021 |
|
1022 |
if ( isset( $caller_map[ $caller_file_hash ] ) ) {
|
1023 |
$module_type = WP_FS__MODULE_TYPE_PLUGIN;
|
1024 |
-
$caller_file_candidate = $caller_map[ $caller_file_hash ];
|
1025 |
}
|
1026 |
}
|
1027 |
|
@@ -1113,18 +1274,18 @@
|
|
1113 |
|
1114 |
$reason_found_better_plugin = array(
|
1115 |
'id' => self::REASON_FOUND_A_BETTER_PLUGIN,
|
1116 |
-
'text' => sprintf( $this->
|
1117 |
'input_type' => 'textfield',
|
1118 |
-
'input_placeholder' => sprintf( $this->
|
1119 |
);
|
1120 |
|
1121 |
$reason_temporary_deactivation = array(
|
1122 |
'id' => self::REASON_TEMPORARY_DEACTIVATION,
|
1123 |
'text' => sprintf(
|
1124 |
-
$this->
|
1125 |
strtolower( $this->is_plugin() ?
|
1126 |
-
$this->
|
1127 |
-
$this->
|
1128 |
)
|
1129 |
),
|
1130 |
'input_type' => '',
|
@@ -1133,7 +1294,7 @@
|
|
1133 |
|
1134 |
$reason_other = array(
|
1135 |
'id' => self::REASON_OTHER,
|
1136 |
-
'text' => $this->
|
1137 |
'input_type' => 'textfield',
|
1138 |
'input_placeholder' => ''
|
1139 |
);
|
@@ -1141,27 +1302,27 @@
|
|
1141 |
$long_term_user_reasons = array(
|
1142 |
array(
|
1143 |
'id' => self::REASON_NO_LONGER_NEEDED,
|
1144 |
-
'text' => sprintf( $this->
|
1145 |
'input_type' => '',
|
1146 |
'input_placeholder' => ''
|
1147 |
),
|
1148 |
$reason_found_better_plugin,
|
1149 |
array(
|
1150 |
'id' => self::REASON_NEEDED_FOR_A_SHORT_PERIOD,
|
1151 |
-
'text' => sprintf( $this->
|
1152 |
'input_type' => '',
|
1153 |
'input_placeholder' => ''
|
1154 |
),
|
1155 |
array(
|
1156 |
'id' => self::REASON_BROKE_MY_SITE,
|
1157 |
-
'text' => sprintf( $this->
|
1158 |
'input_type' => '',
|
1159 |
'input_placeholder' => '',
|
1160 |
'internal_message' => $contact_support_template
|
1161 |
),
|
1162 |
array(
|
1163 |
'id' => self::REASON_SUDDENLY_STOPPED_WORKING,
|
1164 |
-
'text' => sprintf( $this->
|
1165 |
'input_type' => '',
|
1166 |
'input_placeholder' => '',
|
1167 |
'internal_message' => $contact_support_template
|
@@ -1171,15 +1332,15 @@
|
|
1171 |
if ( $this->is_paying() ) {
|
1172 |
$long_term_user_reasons[] = array(
|
1173 |
'id' => self::REASON_CANT_PAY_ANYMORE,
|
1174 |
-
'text' => $this->
|
1175 |
'input_type' => 'textfield',
|
1176 |
-
'input_placeholder' => $this->
|
1177 |
);
|
1178 |
}
|
1179 |
|
1180 |
$reason_dont_share_info = array(
|
1181 |
'id' => self::REASON_DONT_LIKE_TO_SHARE_MY_INFORMATION,
|
1182 |
-
'text' => $this->
|
1183 |
'input_type' => '',
|
1184 |
'input_placeholder' => ''
|
1185 |
);
|
@@ -1200,7 +1361,7 @@
|
|
1200 |
'non-registered-and-non-anonymous-short-term' => array(
|
1201 |
array(
|
1202 |
'id' => self::REASON_DIDNT_WORK,
|
1203 |
-
'text' => sprintf( $this->
|
1204 |
'input_type' => '',
|
1205 |
'input_placeholder' => ''
|
1206 |
),
|
@@ -1210,7 +1371,7 @@
|
|
1210 |
'short-term' => array(
|
1211 |
array(
|
1212 |
'id' => self::REASON_COULDNT_MAKE_IT_WORK,
|
1213 |
-
'text' => $this->
|
1214 |
'input_type' => '',
|
1215 |
'input_placeholder' => '',
|
1216 |
'internal_message' => $contact_support_template
|
@@ -1218,27 +1379,27 @@
|
|
1218 |
$reason_found_better_plugin,
|
1219 |
array(
|
1220 |
'id' => self::REASON_GREAT_BUT_NEED_SPECIFIC_FEATURE,
|
1221 |
-
'text' => sprintf( $this->
|
1222 |
'input_type' => 'textarea',
|
1223 |
-
'input_placeholder' => $this->
|
1224 |
),
|
1225 |
array(
|
1226 |
'id' => self::REASON_NOT_WORKING,
|
1227 |
-
'text' => sprintf( $this->
|
1228 |
'input_type' => 'textarea',
|
1229 |
-
'input_placeholder' => $this->
|
1230 |
),
|
1231 |
array(
|
1232 |
'id' => self::REASON_NOT_WHAT_I_WAS_LOOKING_FOR,
|
1233 |
-
'text' => $this->
|
1234 |
'input_type' => 'textarea',
|
1235 |
-
'input_placeholder' => $this->
|
1236 |
),
|
1237 |
array(
|
1238 |
'id' => self::REASON_DIDNT_WORK_AS_EXPECTED,
|
1239 |
-
'text' => sprintf( $this->
|
1240 |
'input_type' => 'textarea',
|
1241 |
-
'input_placeholder' => $this->
|
1242 |
)
|
1243 |
)
|
1244 |
);
|
@@ -1774,7 +1935,7 @@
|
|
1774 |
|
1775 |
self::$_static_logger->entrance();
|
1776 |
|
1777 |
-
$title = sprintf( '%s [v.%s]',
|
1778 |
|
1779 |
if ( WP_FS__DEV_MODE ) {
|
1780 |
// Add top-level debug menu item.
|
@@ -2181,29 +2342,36 @@
|
|
2181 |
*
|
2182 |
* @return string
|
2183 |
*/
|
2184 |
-
|
2185 |
-
|
2186 |
|
2187 |
-
|
2188 |
-
|
2189 |
|
2190 |
-
|
2191 |
-
|
2192 |
-
|
2193 |
-
|
2194 |
-
|
2195 |
-
|
2196 |
-
|
2197 |
|
2198 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2199 |
|
2200 |
-
|
2201 |
-
|
2202 |
|
2203 |
-
|
2204 |
|
2205 |
-
|
2206 |
-
|
2207 |
|
2208 |
/**
|
2209 |
* @author Vova Feldman (@svovaf)
|
@@ -2283,6 +2451,18 @@
|
|
2283 |
// $admin_email = get_option( 'admin_email' );
|
2284 |
$admin_email = $current_user->user_email;
|
2285 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2286 |
$message = false;
|
2287 |
if ( is_object( $api_result ) &&
|
2288 |
isset( $api_result->error ) &&
|
@@ -2309,15 +2489,15 @@
|
|
2309 |
if ( ! empty( $missing_methods ) ) {
|
2310 |
$missing_methods = sprintf(
|
2311 |
'<br><br><b>%s</b> %s',
|
2312 |
-
$this->
|
2313 |
$missing_methods
|
2314 |
);
|
2315 |
}
|
2316 |
}
|
2317 |
|
2318 |
$message = sprintf(
|
2319 |
-
|
2320 |
-
$this->
|
2321 |
$missing_methods .
|
2322 |
' %s',
|
2323 |
'<b>' . $this->get_plugin_name() . '</b>',
|
@@ -2325,95 +2505,95 @@
|
|
2325 |
'<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
|
2326 |
sprintf(
|
2327 |
'<a class="fs-resolve" data-type="curl" href="#"><b>%s</b></a>%s',
|
2328 |
-
$this->
|
2329 |
' - ' . sprintf(
|
2330 |
-
$this->
|
2331 |
'<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
|
2332 |
)
|
2333 |
),
|
2334 |
sprintf(
|
2335 |
'<b>%s</b> - %s',
|
2336 |
-
|
2337 |
-
sprintf( $this->
|
2338 |
),
|
2339 |
sprintf(
|
2340 |
-
'<a href="%s"><b>%s</b></a
|
2341 |
-
wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=
|
2342 |
-
$
|
2343 |
-
|
2344 |
)
|
2345 |
)
|
2346 |
);
|
2347 |
break;
|
2348 |
case 'cloudflare_ddos_protection':
|
2349 |
$message = sprintf(
|
2350 |
-
|
2351 |
-
$this->
|
2352 |
-
|
2353 |
' %s',
|
2354 |
'<b>' . $this->get_plugin_name() . '</b>',
|
2355 |
sprintf(
|
2356 |
'<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
|
2357 |
sprintf(
|
2358 |
'<a class="fs-resolve" data-type="cloudflare" href="#"><b>%s</b></a>%s',
|
2359 |
-
$
|
2360 |
' - ' . sprintf(
|
2361 |
-
$
|
2362 |
'<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
|
2363 |
)
|
2364 |
),
|
2365 |
sprintf(
|
2366 |
-
'<a href="%s" target="_blank"><b>%s</b></a
|
2367 |
sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
|
2368 |
-
$
|
2369 |
-
|
2370 |
),
|
2371 |
sprintf(
|
2372 |
-
'<a href="%s"><b>%s</b></a
|
2373 |
-
wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=
|
2374 |
-
$
|
2375 |
-
|
2376 |
)
|
2377 |
)
|
2378 |
);
|
2379 |
break;
|
2380 |
case 'squid_cache_block':
|
2381 |
$message = sprintf(
|
2382 |
-
|
2383 |
-
$this->
|
2384 |
' %s',
|
2385 |
'<b>' . $this->get_plugin_name() . '</b>',
|
2386 |
sprintf(
|
2387 |
'<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
|
2388 |
sprintf(
|
2389 |
-
'<a class="fs-resolve" data-type="squid" href="#"><b>%s</b></a
|
2390 |
-
$this->
|
2391 |
-
|
2392 |
-
$this->
|
2393 |
'<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
|
2394 |
)
|
2395 |
),
|
2396 |
sprintf(
|
2397 |
'<b>%s</b> - %s',
|
2398 |
-
|
2399 |
sprintf(
|
2400 |
-
$this->
|
2401 |
// We use a filter since the plugin might require additional API connectivity.
|
2402 |
'<b>' . implode( ', ', $this->apply_filters( 'api_domains', array( 'api.freemius.com', 'wp.freemius.com' ) ) ) . '</b>',
|
2403 |
$this->_module_type
|
2404 |
)
|
2405 |
),
|
2406 |
sprintf(
|
2407 |
-
'<a href="%s"><b>%s</b></a
|
2408 |
-
wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=
|
2409 |
-
$
|
2410 |
-
|
2411 |
)
|
2412 |
)
|
2413 |
);
|
2414 |
break;
|
2415 |
// default:
|
2416 |
-
// $message = $this->
|
2417 |
// break;
|
2418 |
}
|
2419 |
}
|
@@ -2421,25 +2601,27 @@
|
|
2421 |
$message_id = 'failed_connect_api';
|
2422 |
$type = 'error';
|
2423 |
|
|
|
|
|
2424 |
if ( false === $message ) {
|
2425 |
if ( $is_first_failure ) {
|
2426 |
// First attempt failed.
|
2427 |
$message = sprintf(
|
2428 |
-
|
2429 |
-
|
2430 |
-
$this->
|
2431 |
'%s',
|
2432 |
'<b>' . $this->get_plugin_name() . '</b>',
|
2433 |
sprintf(
|
2434 |
'<div id="fs_firewall_issue_options">%s %s</div>',
|
2435 |
sprintf(
|
2436 |
'<a class="button button-primary fs-resolve" data-type="retry_ping" href="#">%s</a>',
|
2437 |
-
$this->
|
2438 |
),
|
2439 |
sprintf(
|
2440 |
'<a href="%s" class="button">%s</a>',
|
2441 |
-
wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=
|
2442 |
-
$this->
|
2443 |
)
|
2444 |
)
|
2445 |
);
|
@@ -2449,32 +2631,32 @@
|
|
2449 |
} else {
|
2450 |
// Second connectivity attempt failed.
|
2451 |
$message = sprintf(
|
2452 |
-
|
2453 |
-
|
2454 |
-
|
2455 |
' %s',
|
2456 |
'<b>' . $this->get_plugin_name() . '</b>',
|
2457 |
sprintf(
|
2458 |
'<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
|
2459 |
sprintf(
|
2460 |
'<a class="fs-resolve" data-type="general" href="#"><b>%s</b></a>%s',
|
2461 |
-
$
|
2462 |
' - ' . sprintf(
|
2463 |
-
$
|
2464 |
'<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
|
2465 |
)
|
2466 |
),
|
2467 |
sprintf(
|
2468 |
-
'<a href="%s" target="_blank"><b>%s</b></a
|
2469 |
sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
|
2470 |
-
$
|
2471 |
-
|
2472 |
),
|
2473 |
sprintf(
|
2474 |
-
'<a href="%s"><b>%s</b></a
|
2475 |
-
wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=
|
2476 |
-
$
|
2477 |
-
|
2478 |
)
|
2479 |
)
|
2480 |
);
|
@@ -2484,7 +2666,7 @@
|
|
2484 |
$this->_admin_notices->add_sticky(
|
2485 |
$message,
|
2486 |
$message_id,
|
2487 |
-
$this->
|
2488 |
$type
|
2489 |
);
|
2490 |
}
|
@@ -2551,7 +2733,7 @@
|
|
2551 |
|
2552 |
$this->_admin_notices->add_sticky(
|
2553 |
sprintf(
|
2554 |
-
$this->
|
2555 |
'<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
|
2556 |
),
|
2557 |
'server_details_sent'
|
@@ -2827,6 +3009,10 @@
|
|
2827 |
|
2828 |
$this->parse_settings( $plugin_info );
|
2829 |
|
|
|
|
|
|
|
|
|
2830 |
if ( ! self::is_ajax() ) {
|
2831 |
if ( ! $this->is_addon() || $this->is_only_premium() ) {
|
2832 |
add_action( 'admin_menu', array( &$this, '_prepare_admin_menu' ), WP_FS__LOWEST_PRIORITY );
|
@@ -2942,10 +3128,10 @@
|
|
2942 |
|
2943 |
$this->_admin_notices->add(
|
2944 |
( ! empty( $parent_name ) ?
|
2945 |
-
sprintf( $this->
|
2946 |
-
sprintf( $this->
|
2947 |
),
|
2948 |
-
$this->
|
2949 |
'error'
|
2950 |
);
|
2951 |
|
@@ -3064,7 +3250,7 @@
|
|
3064 |
$this->_logger->api_error( $result );
|
3065 |
|
3066 |
self::shoot_ajax_failure(
|
3067 |
-
$this->
|
3068 |
( $this->is_api_error( $result ) && isset( $result->error ) ?
|
3069 |
$result->error->message :
|
3070 |
var_export( $result, true ) )
|
@@ -3089,7 +3275,7 @@
|
|
3089 |
$this->_logger->api_error( $result );
|
3090 |
|
3091 |
self::shoot_ajax_failure(
|
3092 |
-
$this->
|
3093 |
( $this->is_api_error( $result ) && isset( $result->error ) ?
|
3094 |
$result->error->message :
|
3095 |
var_export( $result, true ) )
|
@@ -3276,17 +3462,17 @@
|
|
3276 |
new FS_Plugin();
|
3277 |
|
3278 |
$plugin->update( array(
|
3279 |
-
'id'
|
3280 |
-
'
|
3281 |
-
'
|
3282 |
-
'
|
3283 |
-
'
|
3284 |
-
'
|
3285 |
-
'
|
3286 |
-
'
|
3287 |
-
'
|
3288 |
-
'
|
3289 |
-
|
3290 |
) );
|
3291 |
|
3292 |
if ( $plugin->is_updated() ) {
|
@@ -3495,11 +3681,14 @@
|
|
3495 |
'license_activated',
|
3496 |
) );
|
3497 |
|
3498 |
-
$this->
|
3499 |
-
|
3500 |
-
|
3501 |
-
|
3502 |
-
|
|
|
|
|
|
|
3503 |
} else {
|
3504 |
// Remove sticky message related to premium code activation.
|
3505 |
$this->_admin_notices->remove_sticky( 'premium_activated' );
|
@@ -3510,11 +3699,12 @@
|
|
3510 |
if ( $this->is_paying() && ! $this->is_premium() ) {
|
3511 |
$this->_admin_notices->add_sticky(
|
3512 |
sprintf(
|
3513 |
-
|
|
|
3514 |
$this->_site->plan->title
|
3515 |
) . $this->get_complete_upgrade_instructions(),
|
3516 |
'plan_upgraded',
|
3517 |
-
$this->
|
3518 |
);
|
3519 |
}
|
3520 |
}
|
@@ -3777,19 +3967,25 @@
|
|
3777 |
|
3778 |
$this->_parent->_admin_notices->add_sticky(
|
3779 |
sprintf(
|
3780 |
-
|
3781 |
-
|
3782 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
3783 |
),
|
3784 |
'<b>' . $this->_plugin->title . '</b>'
|
3785 |
) . ' ' . sprintf(
|
3786 |
'<a href="%s" aria-label="%s" class="button button-primary" style="margin-left: 10px; vertical-align: middle;">%s ➜</a>',
|
3787 |
$this->_parent->addon_url( $this->_slug ),
|
3788 |
-
esc_attr( sprintf( $this->_parent->
|
3789 |
-
$this->_parent->
|
3790 |
),
|
3791 |
'no_addon_license_' . $this->_slug,
|
3792 |
-
( $is_after_trial_cancel ? '' : $this->_parent->
|
3793 |
( $is_after_trial_cancel ? 'success' : 'error' )
|
3794 |
);
|
3795 |
|
@@ -4223,10 +4419,12 @@
|
|
4223 |
|
4224 |
$this->_admin_notices->add_sticky(
|
4225 |
sprintf(
|
4226 |
-
$this->
|
4227 |
'<b>' . $this->get_plugin_name() . '</b>',
|
4228 |
'<b>' . $email . '</b>',
|
4229 |
-
|
|
|
|
|
4230 |
),
|
4231 |
'activation_pending',
|
4232 |
'Thanks!'
|
@@ -4305,10 +4503,11 @@
|
|
4305 |
// Show notice for new plugin installations.
|
4306 |
$this->_admin_notices->add(
|
4307 |
sprintf(
|
4308 |
-
$this->
|
4309 |
sprintf( '<b><a href="%s">%s</a></b>',
|
4310 |
$this->get_activation_url(),
|
4311 |
-
sprintf( $this->
|
|
|
4312 |
)
|
4313 |
),
|
4314 |
'',
|
@@ -4321,11 +4520,11 @@
|
|
4321 |
// Show notice for new plugin installations.
|
4322 |
$this->_admin_notices->add_sticky(
|
4323 |
sprintf(
|
4324 |
-
$this->
|
4325 |
$this->_module_type,
|
4326 |
sprintf( '<b><a href="%s">%s</a></b>',
|
4327 |
$this->get_activation_url(),
|
4328 |
-
sprintf( $this->
|
4329 |
)
|
4330 |
),
|
4331 |
'connect_account',
|
@@ -4710,8 +4909,9 @@
|
|
4710 |
// If activating the premium module version, add an admin notice to congratulate for an upgrade completion.
|
4711 |
if ( $is_premium_version_activation ) {
|
4712 |
$this->_admin_notices->add(
|
4713 |
-
sprintf( $this->
|
4714 |
-
$this->
|
|
|
4715 |
);
|
4716 |
}
|
4717 |
} else if ( $this->is_anonymous() ) {
|
@@ -5794,13 +5994,13 @@
|
|
5794 |
*/
|
5795 |
function get_module_label( $lowercase = false ) {
|
5796 |
$label = $this->is_addon() ?
|
5797 |
-
$this->
|
5798 |
( $this->is_plugin() ?
|
5799 |
-
$this->
|
5800 |
-
$this->
|
5801 |
|
5802 |
if ( $lowercase ) {
|
5803 |
-
$label = strtolower( $
|
5804 |
}
|
5805 |
|
5806 |
return $label;
|
@@ -6921,13 +7121,13 @@
|
|
6921 |
if ( isset( $install->error ) ) {
|
6922 |
$error = $install->error->message;
|
6923 |
} else {
|
6924 |
-
|
6925 |
-
$fs->get_parent_instance() :
|
6926 |
-
$fs;
|
6927 |
|
6928 |
-
|
|
|
|
|
6929 |
|
6930 |
-
|
6931 |
}
|
6932 |
} else {
|
6933 |
$next_page = $fs->opt_in( false, false, false, $license_key );
|
@@ -7054,9 +7254,9 @@
|
|
7054 |
$error = $result->error;
|
7055 |
|
7056 |
if ( in_array( $error->code, array( 'invalid_email', 'no_user' ) ) ) {
|
7057 |
-
$error = $this->
|
7058 |
} else if ( 'no_license' === $error->code ) {
|
7059 |
-
$error = $this->
|
7060 |
} else {
|
7061 |
$error = $error->message;
|
7062 |
}
|
@@ -7067,7 +7267,7 @@
|
|
7067 |
);
|
7068 |
|
7069 |
if ( false !== $error ) {
|
7070 |
-
$licenses['error'] = sprintf( '%s... %s', $this->
|
7071 |
}
|
7072 |
|
7073 |
echo json_encode( $licenses );
|
@@ -7100,7 +7300,7 @@
|
|
7100 |
if ( self::is_ajax() &&
|
7101 |
'admin-ajax.php' === $pagenow
|
7102 |
) {
|
7103 |
-
$referer =
|
7104 |
|
7105 |
if ( is_string( $referer ) ) {
|
7106 |
$parts = explode( '?', $referer );
|
@@ -7137,6 +7337,200 @@
|
|
7137 |
return ( 'themes.php' === self::get_current_page() );
|
7138 |
}
|
7139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7140 |
#----------------------------------------------------------------------------------
|
7141 |
#region URL Generators
|
7142 |
#----------------------------------------------------------------------------------
|
@@ -7586,7 +7980,10 @@
|
|
7586 |
) ), admin_url( 'admin.php', 'admin' ) );
|
7587 |
} else {
|
7588 |
// Plugin without a settings page.
|
7589 |
-
|
|
|
|
|
|
|
7590 |
}
|
7591 |
}
|
7592 |
}
|
@@ -8007,8 +8404,19 @@
|
|
8007 |
$this->_site = clone $site;
|
8008 |
$this->_site->plan = self::decrypt_entity( $this->_site->plan );
|
8009 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8010 |
// Load relevant user.
|
8011 |
-
$this->_user = clone $users[ $
|
8012 |
|
8013 |
// Load plans.
|
8014 |
$this->_plans = $plans[ $this->_slug ];
|
@@ -8156,6 +8564,7 @@
|
|
8156 |
* In this case, the user and site info will be sent to the server but no
|
8157 |
* data will be saved to the WP installation's database.
|
8158 |
* @param number|bool $trial_plan_id
|
|
|
8159 |
*
|
8160 |
* @return string|object
|
8161 |
* @use WP_Error
|
@@ -8166,7 +8575,8 @@
|
|
8166 |
$last = false,
|
8167 |
$license_key = false,
|
8168 |
$is_uninstall = false,
|
8169 |
-
$trial_plan_id = false
|
|
|
8170 |
) {
|
8171 |
$this->_logger->entrance();
|
8172 |
|
@@ -8219,7 +8629,28 @@
|
|
8219 |
);
|
8220 |
}
|
8221 |
|
8222 |
-
$params['
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8223 |
|
8224 |
$url = WP_FS__ADDRESS . '/action/service/user/install/';
|
8225 |
if ( isset( $_COOKIE['XDEBUG_SESSION'] ) ) {
|
@@ -8276,7 +8707,19 @@
|
|
8276 |
return true;
|
8277 |
}
|
8278 |
|
8279 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8280 |
|
8281 |
if ( empty( $decoded ) ) {
|
8282 |
return false;
|
@@ -8294,7 +8737,9 @@
|
|
8294 |
} else if ( isset( $decoded->pending_activation ) && $decoded->pending_activation ) {
|
8295 |
// Pending activation, add message.
|
8296 |
return $this->set_pending_confirmation(
|
8297 |
-
|
|
|
|
|
8298 |
false,
|
8299 |
$filtered_license_key,
|
8300 |
! empty( $params['trial_plan_id'] )
|
@@ -8360,7 +8805,7 @@
|
|
8360 |
|
8361 |
$this->_admin_notices->remove_sticky( 'connect_account' );
|
8362 |
|
8363 |
-
if ( $this->is_pending_activation() ) {
|
8364 |
// Remove pending activation sticky notice (if still exist).
|
8365 |
$this->_admin_notices->remove_sticky( 'activation_pending' );
|
8366 |
|
@@ -8369,31 +8814,32 @@
|
|
8369 |
|
8370 |
if ( ! $this->is_paying_or_trial() ) {
|
8371 |
$this->_admin_notices->add_sticky(
|
8372 |
-
sprintf( $this->
|
|
|
8373 |
'activation_complete'
|
8374 |
);
|
8375 |
}
|
8376 |
}
|
8377 |
|
8378 |
if ( $this->is_paying_or_trial() ) {
|
8379 |
-
if ( ! $this->is_premium() || ! $this->has_premium_version() ) {
|
8380 |
if ( $this->is_paying() ) {
|
8381 |
$this->_admin_notices->add_sticky(
|
8382 |
sprintf(
|
8383 |
-
$this->
|
8384 |
$this->_site->plan->title
|
8385 |
) . $this->get_complete_upgrade_instructions(),
|
8386 |
'plan_upgraded',
|
8387 |
-
$this->
|
8388 |
);
|
8389 |
} else {
|
8390 |
$this->_admin_notices->add_sticky(
|
8391 |
sprintf(
|
8392 |
-
$this->
|
8393 |
'<i>' . $this->get_plugin_name() . '</i>'
|
8394 |
) . $this->get_complete_upgrade_instructions( $this->_storage->trial_plan->title ),
|
8395 |
'trial_started',
|
8396 |
-
$this->
|
8397 |
);
|
8398 |
}
|
8399 |
}
|
@@ -8678,14 +9124,26 @@
|
|
8678 |
$install = $this->apply_filters( 'after_install_failure', $install, $args );
|
8679 |
|
8680 |
$this->_admin_notices->add(
|
8681 |
-
sprintf( $this->
|
8682 |
-
$this->
|
8683 |
-
$this->
|
8684 |
'error'
|
8685 |
);
|
8686 |
|
8687 |
if ( $redirect ) {
|
8688 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8689 |
}
|
8690 |
|
8691 |
return $install;
|
@@ -8722,9 +9180,9 @@
|
|
8722 |
|
8723 |
if ( isset( $addon_install->error ) ) {
|
8724 |
$this->_admin_notices->add(
|
8725 |
-
sprintf( $this->
|
8726 |
-
$this->
|
8727 |
-
$this->
|
8728 |
'error'
|
8729 |
);
|
8730 |
|
@@ -8783,15 +9241,23 @@
|
|
8783 |
|
8784 |
if ( isset( $parent_install->error ) ) {
|
8785 |
$this->_admin_notices->add(
|
8786 |
-
sprintf( $this->
|
8787 |
-
$this->
|
8788 |
-
$this->
|
8789 |
'error'
|
8790 |
);
|
8791 |
|
8792 |
return;
|
8793 |
}
|
8794 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8795 |
// First of all, set site info - otherwise we won't
|
8796 |
// be able to invoke API calls.
|
8797 |
$parent_fs->_site = new FS_Site( $parent_install );
|
@@ -8984,9 +9450,9 @@
|
|
8984 |
|
8985 |
if ( false !== $hook ) {
|
8986 |
if ( fs_request_is_action( $this->get_unique_affix() . '_activate_existing' ) ) {
|
8987 |
-
|
8988 |
} else if ( fs_request_is_action( $this->get_unique_affix() . '_activate_new' ) ) {
|
8989 |
-
|
8990 |
}
|
8991 |
}
|
8992 |
}
|
@@ -9034,15 +9500,15 @@
|
|
9034 |
* @return string
|
9035 |
*/
|
9036 |
function get_pricing_cta_label() {
|
9037 |
-
$label = 'upgrade';
|
9038 |
|
9039 |
if ( $this->is_in_trial_promotion() &&
|
9040 |
! $this->is_paying_or_trial()
|
9041 |
) {
|
9042 |
// If running a trial promotion, modify the pricing to load the trial.
|
9043 |
-
$label = 'start-trial';
|
9044 |
} else if ( $this->is_paying() ) {
|
9045 |
-
$label = 'pricing';
|
9046 |
}
|
9047 |
|
9048 |
return $label;
|
@@ -9079,6 +9545,20 @@
|
|
9079 |
* @since 1.2.2.7 Also add submenu items when running in a free .org theme so the tabs will be visible.
|
9080 |
*/
|
9081 |
if ( ! $this->is_activation_mode() || $this->is_free_wp_org_theme() ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9082 |
if ( $this->is_registered() ) {
|
9083 |
$show_account = (
|
9084 |
$this->is_submenu_item_visible( 'account' ) &&
|
@@ -9090,9 +9570,9 @@
|
|
9090 |
|
9091 |
// Add user account page.
|
9092 |
$this->add_submenu_item(
|
9093 |
-
$this->
|
9094 |
array( &$this, '_account_page_render' ),
|
9095 |
-
$this->get_plugin_name() . ' – ' . $this->
|
9096 |
'manage_options',
|
9097 |
'account',
|
9098 |
array( &$this, '_account_page_load' ),
|
@@ -9103,9 +9583,9 @@
|
|
9103 |
|
9104 |
// Add contact page.
|
9105 |
$this->add_submenu_item(
|
9106 |
-
$this->
|
9107 |
array( &$this, '_contact_page_render' ),
|
9108 |
-
$this->get_plugin_name() . ' – ' . $this->
|
9109 |
'manage_options',
|
9110 |
'contact',
|
9111 |
'Freemius::_clean_admin_content_section',
|
@@ -9115,9 +9595,9 @@
|
|
9115 |
|
9116 |
if ( $this->has_addons() ) {
|
9117 |
$this->add_submenu_item(
|
9118 |
-
$this->
|
9119 |
array( &$this, '_addons_page_render' ),
|
9120 |
-
$this->get_plugin_name() . ' – ' . $this->
|
9121 |
'manage_options',
|
9122 |
'addons',
|
9123 |
array( &$this, '_addons_page_load' ),
|
@@ -9131,7 +9611,7 @@
|
|
9131 |
$this->is_pricing_page_visible()
|
9132 |
);
|
9133 |
|
9134 |
-
$
|
9135 |
$pricing_class = 'upgrade-mode';
|
9136 |
if ( $show_pricing ) {
|
9137 |
if ( $this->is_in_trial_promotion() &&
|
@@ -9146,9 +9626,9 @@
|
|
9146 |
|
9147 |
// Add upgrade/pricing page.
|
9148 |
$this->add_submenu_item(
|
9149 |
-
|
9150 |
array( &$this, '_pricing_page_render' ),
|
9151 |
-
$this->get_plugin_name() . ' – ' . $this->
|
9152 |
'manage_options',
|
9153 |
'pricing',
|
9154 |
'Freemius::_clean_admin_content_section',
|
@@ -9328,7 +9808,7 @@
|
|
9328 |
|
9329 |
if ( ! $this->is_activation_mode() ) {
|
9330 |
$this->add_submenu_link_item(
|
9331 |
-
$this->apply_filters( 'support_forum_submenu', $this->
|
9332 |
$this->get_support_forum_url(),
|
9333 |
'wp-support-forum',
|
9334 |
null,
|
@@ -9840,7 +10320,23 @@
|
|
9840 |
$encrypted_site = clone $this->_site;
|
9841 |
$encrypted_site->plan = self::_encrypt_entity( $this->_site->plan );
|
9842 |
|
9843 |
-
$sites
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9844 |
$sites[ $this->_slug ] = $encrypted_site;
|
9845 |
|
9846 |
$this->set_account_option( 'sites', $sites, $store );
|
@@ -10052,8 +10548,8 @@
|
|
10052 |
$this->do_action( 'account_email_verified', $user->email );
|
10053 |
|
10054 |
$this->_admin_notices->add(
|
10055 |
-
$this->
|
10056 |
-
$this->
|
10057 |
'success',
|
10058 |
// Make admin sticky if account menu item is invisible,
|
10059 |
// since the page will be auto redirected to the plugin's
|
@@ -10185,21 +10681,24 @@
|
|
10185 |
* @return FS_Plugin_Plan[]|object
|
10186 |
*/
|
10187 |
private function _fetch_plugin_plans() {
|
10188 |
-
|
10189 |
-
|
10190 |
|
10191 |
-
|
|
|
|
|
|
|
10192 |
|
10193 |
-
|
10194 |
-
|
10195 |
-
|
10196 |
-
|
10197 |
|
10198 |
-
|
10199 |
-
|
10200 |
|
10201 |
-
|
10202 |
-
|
10203 |
|
10204 |
/**
|
10205 |
* @author Vova Feldman (@svovaf)
|
@@ -10584,24 +11083,18 @@
|
|
10584 |
}
|
10585 |
|
10586 |
$this->_admin_notices->add_sticky(
|
10587 |
-
|
10588 |
-
|
10589 |
-
$this->
|
10590 |
-
|
10591 |
-
|
10592 |
-
|
10593 |
-
|
10594 |
-
)
|
10595 |
-
|
10596 |
-
|
10597 |
-
$this->get_text( 'addon-successfully-purchased-message' ),
|
10598 |
-
$addon->title
|
10599 |
-
) . ' ' . $this->get_latest_download_link(
|
10600 |
-
$this->get_text( 'download-latest-version' ),
|
10601 |
-
$addon_id
|
10602 |
-
),
|
10603 |
'addon_plan_upgraded_' . $addon->slug,
|
10604 |
-
$this->
|
10605 |
);
|
10606 |
}
|
10607 |
}
|
@@ -10646,11 +11139,11 @@
|
|
10646 |
if ( ! self::$_global_admin_notices->has_sticky( 'api_blocked' ) ) {
|
10647 |
self::$_global_admin_notices->add(
|
10648 |
sprintf(
|
10649 |
-
$this->
|
10650 |
$this->get_plugin_name(),
|
10651 |
'<a href="' . $api->get_url() . '" target="_blank">' . $api->get_url() . '</a>'
|
10652 |
-
) . '<br> ' . $this->
|
10653 |
-
$this->
|
10654 |
'error',
|
10655 |
$background,
|
10656 |
false,
|
@@ -10660,8 +11153,8 @@
|
|
10660 |
} else {
|
10661 |
// Authentication params are broken.
|
10662 |
$this->_admin_notices->add(
|
10663 |
-
$this->
|
10664 |
-
$this->
|
10665 |
'error'
|
10666 |
);
|
10667 |
}
|
@@ -10777,6 +11270,8 @@
|
|
10777 |
}
|
10778 |
}
|
10779 |
|
|
|
|
|
10780 |
if ( $this->has_paid_plan() ) {
|
10781 |
switch ( $plan_change ) {
|
10782 |
case 'none':
|
@@ -10788,19 +11283,19 @@
|
|
10788 |
if ( $plan->is_free() ) {
|
10789 |
$this->_admin_notices->add(
|
10790 |
sprintf(
|
10791 |
-
$this->
|
10792 |
-
'<i><b>' . $plan->title . ( $this->is_trial() ? ' ' . $this->
|
10793 |
) . ' ' . sprintf(
|
10794 |
'<a href="%s">%s</a>',
|
10795 |
$this->contact_url(
|
10796 |
'bug',
|
10797 |
-
sprintf( $this->
|
10798 |
strtoupper( $plan->name )
|
10799 |
)
|
10800 |
),
|
10801 |
-
$this->
|
10802 |
),
|
10803 |
-
$
|
10804 |
);
|
10805 |
}
|
10806 |
}
|
@@ -10808,11 +11303,11 @@
|
|
10808 |
case 'upgraded':
|
10809 |
$this->_admin_notices->add_sticky(
|
10810 |
sprintf(
|
10811 |
-
$this->
|
10812 |
'<i>' . $this->get_plugin_name() . '</i>'
|
10813 |
) . $this->get_complete_upgrade_instructions(),
|
10814 |
'plan_upgraded',
|
10815 |
-
$this->
|
10816 |
);
|
10817 |
|
10818 |
$this->_admin_notices->remove_sticky( array(
|
@@ -10825,7 +11320,7 @@
|
|
10825 |
case 'changed':
|
10826 |
$this->_admin_notices->add_sticky(
|
10827 |
sprintf(
|
10828 |
-
$this->
|
10829 |
$this->_site->plan->title
|
10830 |
),
|
10831 |
'plan_changed'
|
@@ -10840,41 +11335,41 @@
|
|
10840 |
break;
|
10841 |
case 'downgraded':
|
10842 |
$this->_admin_notices->add_sticky(
|
10843 |
-
sprintf( $this->
|
10844 |
'license_expired',
|
10845 |
-
$
|
10846 |
);
|
10847 |
$this->_admin_notices->remove_sticky( 'plan_upgraded' );
|
10848 |
break;
|
10849 |
case 'cancelled':
|
10850 |
$this->_admin_notices->add(
|
10851 |
-
$this->
|
10852 |
sprintf(
|
10853 |
'<a href="%s">%s</a>',
|
10854 |
$this->contact_url( 'bug' ),
|
10855 |
-
$this->
|
10856 |
),
|
10857 |
-
$
|
10858 |
'error'
|
10859 |
);
|
10860 |
$this->_admin_notices->remove_sticky( 'plan_upgraded' );
|
10861 |
break;
|
10862 |
case 'expired':
|
10863 |
$this->_admin_notices->add_sticky(
|
10864 |
-
sprintf( $this->
|
10865 |
'license_expired',
|
10866 |
-
$
|
10867 |
);
|
10868 |
$this->_admin_notices->remove_sticky( 'plan_upgraded' );
|
10869 |
break;
|
10870 |
case 'trial_started':
|
10871 |
$this->_admin_notices->add_sticky(
|
10872 |
sprintf(
|
10873 |
-
$this->
|
10874 |
'<i>' . $this->get_plugin_name() . '</i>'
|
10875 |
) . $this->get_complete_upgrade_instructions( $this->_storage->trial_plan->title ),
|
10876 |
'trial_started',
|
10877 |
-
$this->
|
10878 |
);
|
10879 |
|
10880 |
$this->_admin_notices->remove_sticky( array(
|
@@ -10883,9 +11378,9 @@
|
|
10883 |
break;
|
10884 |
case 'trial_expired':
|
10885 |
$this->_admin_notices->add_sticky(
|
10886 |
-
$this->
|
10887 |
'trial_expired',
|
10888 |
-
$
|
10889 |
);
|
10890 |
$this->_admin_notices->remove_sticky( array(
|
10891 |
'trial_started',
|
@@ -10953,23 +11448,22 @@
|
|
10953 |
if ( ! $background ) {
|
10954 |
$this->_admin_notices->add( sprintf(
|
10955 |
'%s %s',
|
10956 |
-
$this->
|
10957 |
( is_object( $license ) && isset( $license->error ) ?
|
10958 |
$license->error->message :
|
10959 |
sprintf( '%s<br><code>%s</code>',
|
10960 |
-
$this->
|
10961 |
var_export( $license, true )
|
10962 |
)
|
10963 |
)
|
10964 |
),
|
10965 |
-
$this->
|
10966 |
'error'
|
10967 |
);
|
10968 |
}
|
10969 |
|
10970 |
return;
|
10971 |
}
|
10972 |
-
|
10973 |
$premium_license = new FS_Plugin_License( $license );
|
10974 |
|
10975 |
// Updated site plan.
|
@@ -10984,10 +11478,10 @@
|
|
10984 |
|
10985 |
if ( ! $background ) {
|
10986 |
$this->_admin_notices->add_sticky(
|
10987 |
-
$this->
|
10988 |
$this->get_complete_upgrade_instructions(),
|
10989 |
'license_activated',
|
10990 |
-
$this->
|
10991 |
);
|
10992 |
}
|
10993 |
|
@@ -11006,10 +11500,12 @@
|
|
11006 |
protected function _deactivate_license( $show_notice = true ) {
|
11007 |
$this->_logger->entrance();
|
11008 |
|
|
|
|
|
11009 |
if ( ! is_object( $this->_license ) ) {
|
11010 |
$this->_admin_notices->add(
|
11011 |
-
sprintf( $this->
|
11012 |
-
$
|
11013 |
);
|
11014 |
|
11015 |
return;
|
@@ -11020,9 +11516,9 @@
|
|
11020 |
|
11021 |
if ( isset( $license->error ) ) {
|
11022 |
$this->_admin_notices->add(
|
11023 |
-
$this->
|
11024 |
-
$this->
|
11025 |
-
$
|
11026 |
'error'
|
11027 |
);
|
11028 |
|
@@ -11047,8 +11543,8 @@
|
|
11047 |
|
11048 |
if ( $show_notice ) {
|
11049 |
$this->_admin_notices->add(
|
11050 |
-
sprintf( $this->
|
11051 |
-
$this->
|
11052 |
);
|
11053 |
}
|
11054 |
|
@@ -11096,7 +11592,7 @@
|
|
11096 |
$this->_admin_notices->remove_sticky( 'plan_upgraded' );
|
11097 |
|
11098 |
$this->_admin_notices->add(
|
11099 |
-
sprintf( $this->
|
11100 |
$plan->title,
|
11101 |
human_time_diff( time(), strtotime( $this->_license->expiration ) )
|
11102 |
)
|
@@ -11106,8 +11602,8 @@
|
|
11106 |
$this->_store_site();
|
11107 |
} else {
|
11108 |
$this->_admin_notices->add(
|
11109 |
-
$this->
|
11110 |
-
$this->
|
11111 |
'error'
|
11112 |
);
|
11113 |
}
|
@@ -11124,11 +11620,14 @@
|
|
11124 |
function start_trial( $plan_name = false ) {
|
11125 |
$this->_logger->entrance();
|
11126 |
|
|
|
|
|
|
|
11127 |
if ( $this->is_trial() ) {
|
11128 |
// Already in trial mode.
|
11129 |
$this->_admin_notices->add(
|
11130 |
-
sprintf( $this->
|
11131 |
-
$
|
11132 |
'error'
|
11133 |
);
|
11134 |
|
@@ -11138,8 +11637,8 @@
|
|
11138 |
if ( $this->_site->is_trial_utilized() ) {
|
11139 |
// Trial was already utilized.
|
11140 |
$this->_admin_notices->add(
|
11141 |
-
$this->
|
11142 |
-
$
|
11143 |
'error'
|
11144 |
);
|
11145 |
|
@@ -11152,8 +11651,8 @@
|
|
11152 |
if ( false === $plan ) {
|
11153 |
// Plan doesn't exist.
|
11154 |
$this->_admin_notices->add(
|
11155 |
-
sprintf( $this->
|
11156 |
-
$
|
11157 |
'error'
|
11158 |
);
|
11159 |
|
@@ -11163,8 +11662,8 @@
|
|
11163 |
if ( ! $plan->has_trial() ) {
|
11164 |
// Plan doesn't exist.
|
11165 |
$this->_admin_notices->add(
|
11166 |
-
sprintf( $this->
|
11167 |
-
$
|
11168 |
'error'
|
11169 |
);
|
11170 |
|
@@ -11174,8 +11673,8 @@
|
|
11174 |
if ( ! $this->has_trial_plan() ) {
|
11175 |
// None of the plans have a trial.
|
11176 |
$this->_admin_notices->add(
|
11177 |
-
sprintf( $this->
|
11178 |
-
$
|
11179 |
'error'
|
11180 |
);
|
11181 |
|
@@ -11193,9 +11692,9 @@
|
|
11193 |
if ( ! $this->is_api_result_entity( $plan ) ) {
|
11194 |
// Some API error while trying to start the trial.
|
11195 |
$this->_admin_notices->add(
|
11196 |
-
sprintf( $this->
|
11197 |
. ' ' . var_export( $plan, true ),
|
11198 |
-
$
|
11199 |
'error'
|
11200 |
);
|
11201 |
|
@@ -11219,10 +11718,13 @@
|
|
11219 |
private function _cancel_trial() {
|
11220 |
$this->_logger->entrance();
|
11221 |
|
|
|
|
|
|
|
11222 |
if ( ! $this->is_trial() ) {
|
11223 |
$this->_admin_notices->add(
|
11224 |
-
$this->
|
11225 |
-
$
|
11226 |
'error'
|
11227 |
);
|
11228 |
|
@@ -11272,7 +11774,7 @@
|
|
11272 |
! $this->deactivate_premium_only_addon_without_license( true )
|
11273 |
) {
|
11274 |
$this->_admin_notices->add(
|
11275 |
-
sprintf( $this->
|
11276 |
);
|
11277 |
}
|
11278 |
|
@@ -11280,8 +11782,8 @@
|
|
11280 |
unset( $this->_storage->trial_plan );
|
11281 |
} else {
|
11282 |
$this->_admin_notices->add(
|
11283 |
-
$this->
|
11284 |
-
$
|
11285 |
'error'
|
11286 |
);
|
11287 |
}
|
@@ -11518,21 +12020,26 @@
|
|
11518 |
if ( ! $background ) {
|
11519 |
$this->_admin_notices->add(
|
11520 |
sprintf(
|
11521 |
-
|
|
|
11522 |
$update->version,
|
11523 |
sprintf(
|
11524 |
'<a href="%s" target="_blank">%s</a>',
|
11525 |
$this->get_account_url( 'download_latest' ),
|
11526 |
-
sprintf(
|
|
|
|
|
|
|
|
|
11527 |
)
|
11528 |
),
|
11529 |
-
$this->
|
11530 |
);
|
11531 |
}
|
11532 |
} else if ( false === $new_version && ! $background ) {
|
11533 |
$this->_admin_notices->add(
|
11534 |
-
$this->
|
11535 |
-
$this->
|
11536 |
);
|
11537 |
}
|
11538 |
|
@@ -11798,7 +12305,7 @@
|
|
11798 |
|
11799 |
if ( ! isset( $result->error ) ) {
|
11800 |
$this->_admin_notices->add( sprintf(
|
11801 |
-
$this->
|
11802 |
sprintf( '<a href="mailto:%1s">%2s</a>', esc_url( $this->_user->email ), $this->_user->email )
|
11803 |
) );
|
11804 |
} else {
|
@@ -11886,6 +12393,9 @@
|
|
11886 |
$plugin_id = fs_request_get( 'plugin_id', $this->get_id() );
|
11887 |
$action = fs_get_action();
|
11888 |
|
|
|
|
|
|
|
11889 |
switch ( $action ) {
|
11890 |
case 'delete_account':
|
11891 |
check_admin_referer( $action );
|
@@ -11940,6 +12450,14 @@
|
|
11940 |
|
11941 |
if ( $plugin_id == $this->get_id() ) {
|
11942 |
$this->_deactivate_license();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11943 |
} else {
|
11944 |
if ( $this->is_addon_activated( $plugin_id ) ) {
|
11945 |
$fs_addon = self::get_instance_by_id( $plugin_id );
|
@@ -11962,20 +12480,20 @@
|
|
11962 |
$candidate_email = fs_request_get( 'candidate_email', '' );
|
11963 |
|
11964 |
if ( $this->init_change_owner( $candidate_email ) ) {
|
11965 |
-
$this->_admin_notices->add( sprintf( $this->
|
11966 |
}
|
11967 |
break;
|
11968 |
case 'owner_confirmed':
|
11969 |
$candidate_email = fs_request_get( 'candidate_email', '' );
|
11970 |
|
11971 |
-
$this->_admin_notices->add( sprintf( $this->
|
11972 |
break;
|
11973 |
case 'candidate_confirmed':
|
11974 |
if ( $this->complete_change_owner() ) {
|
11975 |
$this->_admin_notices->add_sticky(
|
11976 |
-
sprintf( $this->
|
11977 |
'ownership_changed',
|
11978 |
-
$this->
|
11979 |
);
|
11980 |
} else {
|
11981 |
// @todo Handle failed ownership change message.
|
@@ -11995,23 +12513,23 @@
|
|
11995 |
switch ( $result->error->code ) {
|
11996 |
case 'user_exist':
|
11997 |
$this->_admin_notices->add(
|
11998 |
-
$this->
|
11999 |
-
sprintf( $this->
|
12000 |
sprintf(
|
12001 |
'<a style="margin-left: 10px;" href="%s"><button class="button button-primary">%s ➜</button></a>',
|
12002 |
$this->get_account_url( 'change_owner', array(
|
12003 |
'state' => 'init',
|
12004 |
'candidate_email' => $new_email
|
12005 |
) ),
|
12006 |
-
$this->
|
12007 |
),
|
12008 |
-
$
|
12009 |
'error'
|
12010 |
);
|
12011 |
break;
|
12012 |
}
|
12013 |
} else {
|
12014 |
-
$this->_admin_notices->add( $this->
|
12015 |
}
|
12016 |
|
12017 |
return;
|
@@ -12023,12 +12541,12 @@
|
|
12023 |
|
12024 |
if ( isset( $result->error ) ) {
|
12025 |
$this->_admin_notices->add(
|
12026 |
-
$this->
|
12027 |
-
$
|
12028 |
'error'
|
12029 |
);
|
12030 |
} else {
|
12031 |
-
$this->_admin_notices->add( $this->
|
12032 |
}
|
12033 |
|
12034 |
return;
|
@@ -12088,8 +12606,10 @@
|
|
12088 |
$this->do_action( 'account_property_edit', 'site', $site_property, $site_property_value );
|
12089 |
|
12090 |
$this->_admin_notices->add( sprintf(
|
12091 |
-
|
12092 |
-
|
|
|
|
|
12093 |
|
12094 |
return;
|
12095 |
}
|
@@ -12142,6 +12662,22 @@
|
|
12142 |
$this->do_action( 'account_page_load_before_departure' );
|
12143 |
}
|
12144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12145 |
/**
|
12146 |
* Render account page.
|
12147 |
*
|
@@ -12152,11 +12688,7 @@
|
|
12152 |
$this->_logger->entrance();
|
12153 |
|
12154 |
$template = 'account.php';
|
12155 |
-
|
12156 |
-
$template = 'billing.php';
|
12157 |
-
}
|
12158 |
-
|
12159 |
-
$vars = array( 'id' => $this->_module_id );
|
12160 |
|
12161 |
/**
|
12162 |
* Added filter to the template to allow developers wrapping the template
|
@@ -12213,8 +12745,8 @@
|
|
12213 |
|
12214 |
if ( ! $this->is_registered() && $this->is_org_repo_compliant() ) {
|
12215 |
$this->_admin_notices->add(
|
12216 |
-
sprintf( $this->
|
12217 |
-
$this->
|
12218 |
'update-nag'
|
12219 |
);
|
12220 |
}
|
@@ -12532,7 +13064,7 @@
|
|
12532 |
$trial_period = $this->_trial_days;
|
12533 |
$require_payment = $this->_is_trial_require_payment;
|
12534 |
$trial_url = $this->get_trial_url();
|
12535 |
-
$plans_string = strtolower( $this->
|
12536 |
|
12537 |
if ( $this->is_registered() ) {
|
12538 |
// If opted-in, override trial with up to date data from API.
|
@@ -12572,7 +13104,7 @@
|
|
12572 |
}
|
12573 |
|
12574 |
$message = sprintf(
|
12575 |
-
$this->
|
12576 |
sprintf( '<b>%s</b>', $this->get_plugin_name() ),
|
12577 |
$plans_string,
|
12578 |
$trial_period
|
@@ -12580,15 +13112,15 @@
|
|
12580 |
|
12581 |
// "No Credit-Card Required" or "No Commitment for N Days".
|
12582 |
$cc_string = $require_payment ?
|
12583 |
-
sprintf( $this->
|
12584 |
-
$this->
|
12585 |
|
12586 |
|
12587 |
// Start trial button.
|
12588 |
$button = ' ' . sprintf(
|
12589 |
'<a style="margin-left: 10px; vertical-align: super;" href="%s"><button class="button button-primary">%s ➜</button></a>',
|
12590 |
$trial_url,
|
12591 |
-
$this->
|
12592 |
);
|
12593 |
|
12594 |
$this->_admin_notices->add_sticky(
|
@@ -12603,6 +13135,92 @@
|
|
12603 |
return true;
|
12604 |
}
|
12605 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12606 |
/**
|
12607 |
* @author Vova Feldman (@svovaf)
|
12608 |
* @since 1.2.1.5
|
@@ -12705,7 +13323,7 @@
|
|
12705 |
if ( $this->is_registered() ) {
|
12706 |
if ( ! $this->is_paying() && $this->has_paid_plan() ) {
|
12707 |
$this->add_plugin_action_link(
|
12708 |
-
$this->
|
12709 |
$this->get_upgrade_url(),
|
12710 |
false,
|
12711 |
7,
|
@@ -12715,7 +13333,7 @@
|
|
12715 |
|
12716 |
if ( $this->has_addons() ) {
|
12717 |
$this->add_plugin_action_link(
|
12718 |
-
$this->
|
12719 |
$this->_get_admin_page_url( 'addons' ),
|
12720 |
false,
|
12721 |
9,
|
@@ -12743,11 +13361,9 @@
|
|
12743 |
add_action( 'admin_footer', array( &$this, '_add_license_activation_dialog_box' ) );
|
12744 |
}
|
12745 |
|
12746 |
-
$link_text = $this->
|
12747 |
-
$this->
|
12748 |
-
|
12749 |
-
'change-license'
|
12750 |
-
);
|
12751 |
|
12752 |
$this->add_plugin_action_link(
|
12753 |
$link_text,
|
@@ -12808,14 +13424,14 @@
|
|
12808 |
|
12809 |
if ( $this->is_registered() ) {
|
12810 |
if ( $this->is_tracking_allowed() ) {
|
12811 |
-
$link_text_id = 'opt-out';
|
12812 |
} else {
|
12813 |
-
$link_text_id = 'opt-in';
|
12814 |
}
|
12815 |
|
12816 |
add_action( 'admin_footer', array( &$this, '_add_optout_dialog' ) );
|
12817 |
} else {
|
12818 |
-
$link_text_id = 'opt-in';
|
12819 |
|
12820 |
$params = ! $this->is_anonymous() ?
|
12821 |
array() :
|
@@ -12829,7 +13445,7 @@
|
|
12829 |
|
12830 |
if ( $this->is_plugin() && self::is_plugins_page() ) {
|
12831 |
$this->add_plugin_action_link(
|
12832 |
-
|
12833 |
$url,
|
12834 |
false,
|
12835 |
13,
|
@@ -12998,20 +13614,21 @@
|
|
12998 |
|
12999 |
// @since 1.2.1.5 The free version is auto deactivated.
|
13000 |
$deactivation_step = version_compare( $this->version, '1.2.1.5', '<' ) ?
|
13001 |
-
( '<li>' . $this->
|
13002 |
'';
|
13003 |
|
13004 |
return sprintf(
|
13005 |
' %s: <ol><li>%s.</li>%s<li>%s (<a href="%s" target="_blank">%s</a>).</li></ol>',
|
13006 |
-
$this->
|
13007 |
$this->get_latest_download_link( sprintf(
|
13008 |
-
|
|
|
13009 |
$plan_title
|
13010 |
) ),
|
13011 |
$deactivation_step,
|
13012 |
-
$this->
|
13013 |
'//bit.ly/upload-wp-' . $this->_module_type . 's',
|
13014 |
-
$this->
|
13015 |
);
|
13016 |
}
|
13017 |
|
@@ -13027,6 +13644,46 @@
|
|
13027 |
return fs_text( $key, $this->_slug );
|
13028 |
}
|
13029 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13030 |
#----------------------------------------------------------------------------------
|
13031 |
#region Versioning
|
13032 |
#----------------------------------------------------------------------------------
|
@@ -13130,7 +13787,7 @@
|
|
13130 |
if ( ! $this->is_registered() ) {
|
13131 |
// Not registered.
|
13132 |
self::shoot_ajax_failure( array(
|
13133 |
-
'message' => $this->
|
13134 |
'code' => 'premium_installed',
|
13135 |
) );
|
13136 |
}
|
@@ -13140,7 +13797,7 @@
|
|
13140 |
if ( ! FS_Plugin::is_valid_id( $plugin_id ) ) {
|
13141 |
// Invalid ID.
|
13142 |
self::shoot_ajax_failure( array(
|
13143 |
-
'message' => $this->
|
13144 |
'code' => 'invalid_module_id',
|
13145 |
) );
|
13146 |
}
|
@@ -13149,21 +13806,21 @@
|
|
13149 |
if ( $this->is_premium() ) {
|
13150 |
// Already using the premium code version.
|
13151 |
self::shoot_ajax_failure( array(
|
13152 |
-
'message' => $this->
|
13153 |
'code' => 'premium_installed',
|
13154 |
) );
|
13155 |
}
|
13156 |
if ( ! $this->can_use_premium_code() ) {
|
13157 |
// Don't have access to the premium code.
|
13158 |
self::shoot_ajax_failure( array(
|
13159 |
-
'message' => $this->
|
13160 |
'code' => 'invalid_license',
|
13161 |
) );
|
13162 |
}
|
13163 |
if ( ! $this->has_release_on_freemius() ) {
|
13164 |
// Plugin is a serviceware, no premium code version.
|
13165 |
self::shoot_ajax_failure( array(
|
13166 |
-
'message' => $this->
|
13167 |
'code' => 'premium_version_missing',
|
13168 |
) );
|
13169 |
}
|
@@ -13173,7 +13830,7 @@
|
|
13173 |
if ( ! is_object( $addon ) ) {
|
13174 |
// Invalid add-on ID.
|
13175 |
self::shoot_ajax_failure( array(
|
13176 |
-
'message' => $this->
|
13177 |
'code' => 'invalid_module_id',
|
13178 |
) );
|
13179 |
}
|
@@ -13181,7 +13838,7 @@
|
|
13181 |
if ( $this->is_addon_activated( $plugin_id, true ) ) {
|
13182 |
// Premium add-on version is already activated.
|
13183 |
self::shoot_ajax_failure( array(
|
13184 |
-
'message' => $this->
|
13185 |
'code' => 'premium_installed',
|
13186 |
) );
|
13187 |
}
|
@@ -13526,7 +14183,7 @@
|
|
13526 |
require_once WP_FS__DIR_INCLUDES . '/customizer/class-fs-customizer-upsell-control.php';
|
13527 |
|
13528 |
$customizer->add_section( 'freemius_upsell', array(
|
13529 |
-
'title' => '★ ' . $this->
|
13530 |
'priority' => 1,
|
13531 |
) );
|
13532 |
$customizer->add_setting( 'freemius_upsell', array(
|
@@ -13644,4 +14301,4 @@
|
|
13644 |
}
|
13645 |
|
13646 |
#endregion
|
13647 |
-
}
|
271 |
*/
|
272 |
private static $_instances = array();
|
273 |
|
274 |
+
/**
|
275 |
+
* @author Leo Fajardo (@leorw)
|
276 |
+
*
|
277 |
+
* @since 1.2.3
|
278 |
+
*
|
279 |
+
* @var FS_Affiliate
|
280 |
+
*/
|
281 |
+
private $affiliate = null;
|
282 |
+
|
283 |
+
/**
|
284 |
+
* @author Leo Fajardo (@leorw)
|
285 |
+
*
|
286 |
+
* @since 1.2.3
|
287 |
+
*
|
288 |
+
* @var FS_AffiliateTerms
|
289 |
+
*/
|
290 |
+
private $plugin_affiliate_terms = null;
|
291 |
+
|
292 |
+
/**
|
293 |
+
* @author Leo Fajardo (@leorw)
|
294 |
+
*
|
295 |
+
* @since 1.2.3
|
296 |
+
*
|
297 |
+
* @var FS_AffiliateTerms
|
298 |
+
*/
|
299 |
+
private $custom_affiliate_terms = null;
|
300 |
+
|
301 |
#region Uninstall Reasons IDs
|
302 |
|
303 |
const REASON_NO_LONGER_NEEDED = 1;
|
555 |
return;
|
556 |
}
|
557 |
|
558 |
+
if ( version_compare( $sdk_prev_version, '1.2.3', '<' ) &&
|
559 |
+
version_compare( $sdk_version, '1.2.3', '>=' )
|
560 |
+
) {
|
561 |
+
/**
|
562 |
+
* Starting from version 1.2.3, paths are stored as relative paths and not absolute paths; so when
|
563 |
+
* upgrading to 1.2.3, make paths relative.
|
564 |
+
*
|
565 |
+
* @author Leo Fajardo (@leorw)
|
566 |
+
*/
|
567 |
+
$this->make_paths_relative();
|
568 |
+
}
|
569 |
+
|
570 |
if ( version_compare( $sdk_prev_version, '1.1.5', '<' ) &&
|
571 |
version_compare( $sdk_version, '1.1.5', '>=' )
|
572 |
) {
|
590 |
}
|
591 |
}
|
592 |
|
593 |
+
/**
|
594 |
+
* Makes paths relative.
|
595 |
+
*
|
596 |
+
* @author Leo Fajardo
|
597 |
+
* @since 1.2.3
|
598 |
+
*/
|
599 |
+
private function make_paths_relative() {
|
600 |
+
$id_slug_type_path_map = self::$_accounts->get_option( 'id_slug_type_path_map', array() );
|
601 |
+
|
602 |
+
if ( isset( $id_slug_type_path_map[ $this->_module_id ]['path'] ) ) {
|
603 |
+
$id_slug_type_path_map[ $this->_module_id ]['path'] = $this->get_relative_path( $id_slug_type_path_map[ $this->_module_id ]['path'] );
|
604 |
+
|
605 |
+
self::$_accounts->set_option( 'id_slug_type_path_map', $id_slug_type_path_map, true );
|
606 |
+
}
|
607 |
+
|
608 |
+
if ( isset( $this->_storage->plugin_main_file ) ) {
|
609 |
+
$plugin_main_file = $this->_storage->plugin_main_file;
|
610 |
+
|
611 |
+
if ( isset( $plugin_main_file->path ) ) {
|
612 |
+
$this->_storage->plugin_main_file->path = $this->get_relative_path( $this->_storage->plugin_main_file->path );
|
613 |
+
} else if ( isset( $plugin_main_file->prev_path ) ) {
|
614 |
+
$this->_storage->plugin_main_file->prev_path = $this->get_relative_path( $this->_storage->plugin_main_file->prev_path );
|
615 |
+
}
|
616 |
+
}
|
617 |
+
|
618 |
+
// Remove invalid path that is still associated with the current slug if there's any.
|
619 |
+
$file_slug_map = self::$_accounts->get_option( 'file_slug_map', array() );
|
620 |
+
foreach ( $file_slug_map as $plugin_basename => $slug ) {
|
621 |
+
if ( $slug === $this->_slug &&
|
622 |
+
$plugin_basename !== $this->_plugin_basename &&
|
623 |
+
! file_exists( $this->get_absolute_path( $plugin_basename ) )
|
624 |
+
) {
|
625 |
+
unset( $file_slug_map[ $plugin_basename ] );
|
626 |
+
self::$_accounts->set_option( 'file_slug_map', $file_slug_map, true );
|
627 |
+
|
628 |
+
break;
|
629 |
+
}
|
630 |
+
}
|
631 |
+
}
|
632 |
+
|
633 |
/**
|
634 |
* @author Vova Feldman (@svovaf)
|
635 |
* @since 1.2.2.7
|
811 |
'_install_premium_version_ajax_action'
|
812 |
) );
|
813 |
|
814 |
+
$this->add_ajax_action( 'submit_affiliate_application', array( &$this, '_submit_affiliate_application' ) );
|
815 |
+
|
816 |
$this->add_action( 'after_plans_sync', array( &$this, '_check_for_trial_plans' ) );
|
817 |
|
818 |
$this->add_action( 'sdk_version_update', array( &$this, '_data_migration' ), WP_FS__DEFAULT_PRIORITY, 2 );
|
820 |
$this->add_filter( 'after_code_type_change', array( &$this, '_after_code_type_change' ) );
|
821 |
|
822 |
add_action( 'admin_init', array( &$this, '_add_trial_notice' ) );
|
823 |
+
add_action( 'admin_init', array( &$this, '_add_affiliate_program_notice' ) );
|
824 |
add_action( 'admin_init', array( &$this, '_enqueue_common_css' ) );
|
825 |
|
826 |
/**
|
926 |
// Try to load the cached value of the file path.
|
927 |
if ( isset( $this->_storage->plugin_main_file ) ) {
|
928 |
$plugin_main_file = $this->_storage->plugin_main_file;
|
929 |
+
if ( isset( $plugin_main_file->path ) ) {
|
930 |
+
$absolute_path = $this->get_absolute_path( $plugin_main_file->path );
|
931 |
+
if ( file_exists( $absolute_path ) ) {
|
932 |
+
return $absolute_path;
|
933 |
+
}
|
934 |
}
|
935 |
}
|
936 |
|
949 |
if ( isset( $this->_storage->plugin_main_file ) &&
|
950 |
isset( $this->_storage->plugin_main_file->prev_path )
|
951 |
) {
|
952 |
+
$absolute_path = $this->get_absolute_path( $this->_storage->plugin_main_file->prev_path );
|
953 |
+
if ( file_exists( $absolute_path ) ) {
|
954 |
+
return $absolute_path;
|
955 |
}
|
956 |
}
|
957 |
|
958 |
wp_die(
|
959 |
+
$this->get_text_inline( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.', 'failed-finding-main-path' ) .
|
960 |
" Module: {$this->_slug}; SDK: " . WP_FS__SDK_VERSION . ";",
|
961 |
+
$this->get_text_inline( 'Error', 'error' ),
|
962 |
array( 'back_link' => true )
|
963 |
);
|
964 |
}
|
974 |
'path' => $id_slug_type_path_map[ $this->_module_id ]['path'],
|
975 |
);
|
976 |
|
977 |
+
return $this->get_absolute_path( $id_slug_type_path_map[ $this->_module_id ]['path'] );
|
978 |
+
}
|
979 |
+
|
980 |
+
/**
|
981 |
+
* @author Leo Fajardo (@leorw)
|
982 |
+
* @since 1.2.3
|
983 |
+
*
|
984 |
+
* @param string $path
|
985 |
+
*
|
986 |
+
* @return string
|
987 |
+
*/
|
988 |
+
private function get_relative_path( $path ) {
|
989 |
+
$module_root_dir = $this->get_module_root_dir_path();
|
990 |
+
if ( 0 === strpos( $path, $module_root_dir ) ) {
|
991 |
+
$path = substr( $path, strlen( $module_root_dir ) );
|
992 |
+
}
|
993 |
+
|
994 |
+
return $path;
|
995 |
+
}
|
996 |
+
|
997 |
+
/**
|
998 |
+
* @author Leo Fajardo (@leorw)
|
999 |
+
* @since 1.2.3
|
1000 |
+
*
|
1001 |
+
* @param string $path
|
1002 |
+
* @param string|bool $module_type
|
1003 |
+
*
|
1004 |
+
* @return string
|
1005 |
+
*/
|
1006 |
+
private function get_absolute_path( $path, $module_type = false ) {
|
1007 |
+
$module_root_dir = $this->get_module_root_dir_path( $module_type );
|
1008 |
+
if ( 0 !== strpos( $path, $module_root_dir ) ) {
|
1009 |
+
$path = fs_normalize_path( $module_root_dir . $path );
|
1010 |
+
}
|
1011 |
+
|
1012 |
+
return $path;
|
1013 |
+
}
|
1014 |
+
|
1015 |
+
/**
|
1016 |
+
* @author Leo Fajardo (@leorw)
|
1017 |
+
* @since 1.2.3
|
1018 |
+
*
|
1019 |
+
* @param string|bool $module_type
|
1020 |
+
*
|
1021 |
+
* @return string
|
1022 |
+
*/
|
1023 |
+
private function get_module_root_dir_path( $module_type = false ) {
|
1024 |
+
$is_plugin = empty( $module_type ) ?
|
1025 |
+
$this->is_plugin() :
|
1026 |
+
( WP_FS__MODULE_TYPE_PLUGIN === $module_type );
|
1027 |
+
|
1028 |
+
return fs_normalize_path( trailingslashit( $is_plugin ?
|
1029 |
+
WP_PLUGIN_DIR :
|
1030 |
+
get_theme_root() ) );
|
1031 |
+
}
|
1032 |
|
1033 |
/**
|
1034 |
* @author Leo Fajardo (@leorw)
|
1051 |
$store_option = true;
|
1052 |
}
|
1053 |
|
1054 |
+
if ( ! isset( $id_slug_type_path_map[ $module_id ]['path'] ) ||
|
1055 |
+
/**
|
1056 |
+
* This verification is for cases when suddenly the same module
|
1057 |
+
* is installed but with a different folder name.
|
1058 |
+
*
|
1059 |
+
* @author Vova Feldman (@svovaf)
|
1060 |
+
* @since 1.2.3
|
1061 |
+
*/
|
1062 |
+
! file_exists( $this->get_absolute_path(
|
1063 |
+
$id_slug_type_path_map[ $module_id ]['path'],
|
1064 |
+
$id_slug_type_path_map[ $module_id ]['type']
|
1065 |
+
) )
|
1066 |
+
) {
|
1067 |
$caller_main_file_and_type = $this->get_caller_main_file_and_type();
|
1068 |
|
1069 |
$id_slug_type_path_map[ $module_id ]['type'] = $caller_main_file_and_type->module_type;
|
1153 |
*/
|
1154 |
|
1155 |
if ( $caller_file_path == fs_normalize_path( realpath( trailingslashit( $themes_dir ) . basename( dirname( $caller_file_path ) ) . '/' . basename( $caller_file_path ) ) ) ) {
|
1156 |
+
$module_type = WP_FS__MODULE_TYPE_THEME;
|
1157 |
+
|
1158 |
+
/**
|
1159 |
+
* Relative path of the theme, e.g.:
|
1160 |
+
* `my-theme/functions.php`
|
1161 |
+
*
|
1162 |
+
* @author Leo Fajardo (@leorw)
|
1163 |
+
*/
|
1164 |
+
$caller_file_candidate = basename( dirname( $caller_file_path ) ) .
|
1165 |
+
'/' .
|
1166 |
+
basename( $caller_file_path );
|
1167 |
+
|
1168 |
continue;
|
1169 |
}
|
1170 |
}
|
1182 |
|
1183 |
if ( isset( $caller_map[ $caller_file_hash ] ) ) {
|
1184 |
$module_type = WP_FS__MODULE_TYPE_PLUGIN;
|
1185 |
+
$caller_file_candidate = plugin_basename( $caller_map[ $caller_file_hash ] );
|
1186 |
}
|
1187 |
}
|
1188 |
|
1274 |
|
1275 |
$reason_found_better_plugin = array(
|
1276 |
'id' => self::REASON_FOUND_A_BETTER_PLUGIN,
|
1277 |
+
'text' => sprintf( $this->get_text_inline( 'I found a better %s', 'reason-found-a-better-plugin' ), $module_type ),
|
1278 |
'input_type' => 'textfield',
|
1279 |
+
'input_placeholder' => sprintf( $this->get_text_inline( "What's the %s's name?", 'placeholder-plugin-name' ), $module_type ),
|
1280 |
);
|
1281 |
|
1282 |
$reason_temporary_deactivation = array(
|
1283 |
'id' => self::REASON_TEMPORARY_DEACTIVATION,
|
1284 |
'text' => sprintf(
|
1285 |
+
$this->get_text_inline( "It's a temporary %s. I'm just debugging an issue.", 'reason-temporary-x' ),
|
1286 |
strtolower( $this->is_plugin() ?
|
1287 |
+
$this->get_text_inline( 'Deactivation', 'deactivation' ) :
|
1288 |
+
$this->get_text_inline( 'Theme Switch', 'theme-switch' )
|
1289 |
)
|
1290 |
),
|
1291 |
'input_type' => '',
|
1294 |
|
1295 |
$reason_other = array(
|
1296 |
'id' => self::REASON_OTHER,
|
1297 |
+
'text' => $this->get_text_inline( 'Other', 'reason-other' ),
|
1298 |
'input_type' => 'textfield',
|
1299 |
'input_placeholder' => ''
|
1300 |
);
|
1302 |
$long_term_user_reasons = array(
|
1303 |
array(
|
1304 |
'id' => self::REASON_NO_LONGER_NEEDED,
|
1305 |
+
'text' => sprintf( $this->get_text_inline( 'I no longer need the %s', 'reason-no-longer-needed' ), $module_type ),
|
1306 |
'input_type' => '',
|
1307 |
'input_placeholder' => ''
|
1308 |
),
|
1309 |
$reason_found_better_plugin,
|
1310 |
array(
|
1311 |
'id' => self::REASON_NEEDED_FOR_A_SHORT_PERIOD,
|
1312 |
+
'text' => sprintf( $this->get_text_inline( 'I only needed the %s for a short period', 'reason-needed-for-a-short-period' ), $module_type ),
|
1313 |
'input_type' => '',
|
1314 |
'input_placeholder' => ''
|
1315 |
),
|
1316 |
array(
|
1317 |
'id' => self::REASON_BROKE_MY_SITE,
|
1318 |
+
'text' => sprintf( $this->get_text_inline( 'The %s broke my site', 'reason-broke-my-site' ), $module_type ),
|
1319 |
'input_type' => '',
|
1320 |
'input_placeholder' => '',
|
1321 |
'internal_message' => $contact_support_template
|
1322 |
),
|
1323 |
array(
|
1324 |
'id' => self::REASON_SUDDENLY_STOPPED_WORKING,
|
1325 |
+
'text' => sprintf( $this->get_text_inline( 'The %s suddenly stopped working', 'reason-suddenly-stopped-working' ), $module_type ),
|
1326 |
'input_type' => '',
|
1327 |
'input_placeholder' => '',
|
1328 |
'internal_message' => $contact_support_template
|
1332 |
if ( $this->is_paying() ) {
|
1333 |
$long_term_user_reasons[] = array(
|
1334 |
'id' => self::REASON_CANT_PAY_ANYMORE,
|
1335 |
+
'text' => $this->get_text_inline( "I can't pay for it anymore", 'reason-cant-pay-anymore' ),
|
1336 |
'input_type' => 'textfield',
|
1337 |
+
'input_placeholder' => $this->get_text_inline( 'What price would you feel comfortable paying?', 'placeholder-comfortable-price' )
|
1338 |
);
|
1339 |
}
|
1340 |
|
1341 |
$reason_dont_share_info = array(
|
1342 |
'id' => self::REASON_DONT_LIKE_TO_SHARE_MY_INFORMATION,
|
1343 |
+
'text' => $this->get_text_inline( "I don't like to share my information with you", 'reason-dont-like-to-share-my-information' ),
|
1344 |
'input_type' => '',
|
1345 |
'input_placeholder' => ''
|
1346 |
);
|
1361 |
'non-registered-and-non-anonymous-short-term' => array(
|
1362 |
array(
|
1363 |
'id' => self::REASON_DIDNT_WORK,
|
1364 |
+
'text' => sprintf( $this->get_text_inline( "The %s didn't work", 'reason-didnt-work' ), $module_type ),
|
1365 |
'input_type' => '',
|
1366 |
'input_placeholder' => ''
|
1367 |
),
|
1371 |
'short-term' => array(
|
1372 |
array(
|
1373 |
'id' => self::REASON_COULDNT_MAKE_IT_WORK,
|
1374 |
+
'text' => $this->get_text_inline( "I couldn't understand how to make it work", 'reason-couldnt-make-it-work' ),
|
1375 |
'input_type' => '',
|
1376 |
'input_placeholder' => '',
|
1377 |
'internal_message' => $contact_support_template
|
1379 |
$reason_found_better_plugin,
|
1380 |
array(
|
1381 |
'id' => self::REASON_GREAT_BUT_NEED_SPECIFIC_FEATURE,
|
1382 |
+
'text' => sprintf( $this->get_text_inline( "The %s is great, but I need specific feature that you don't support", 'reason-great-but-need-specific-feature' ), $module_type ),
|
1383 |
'input_type' => 'textarea',
|
1384 |
+
'input_placeholder' => $this->get_text_inline( 'What feature?', 'placeholder-feature' )
|
1385 |
),
|
1386 |
array(
|
1387 |
'id' => self::REASON_NOT_WORKING,
|
1388 |
+
'text' => sprintf( $this->get_text_inline( 'The %s is not working', 'reason-not-working' ), $module_type ),
|
1389 |
'input_type' => 'textarea',
|
1390 |
+
'input_placeholder' => $this->get_text_inline( "Kindly share what didn't work so we can fix it for future users...", 'placeholder-share-what-didnt-work' )
|
1391 |
),
|
1392 |
array(
|
1393 |
'id' => self::REASON_NOT_WHAT_I_WAS_LOOKING_FOR,
|
1394 |
+
'text' => $this->get_text_inline( "It's not what I was looking for", 'reason-not-what-i-was-looking-for' ),
|
1395 |
'input_type' => 'textarea',
|
1396 |
+
'input_placeholder' => $this->get_text_inline( "What you've been looking for?", 'placeholder-what-youve-been-looking-for' )
|
1397 |
),
|
1398 |
array(
|
1399 |
'id' => self::REASON_DIDNT_WORK_AS_EXPECTED,
|
1400 |
+
'text' => sprintf( $this->get_text_inline( "The %s didn't work as expected", 'reason-didnt-work-as-expected' ), $module_type ),
|
1401 |
'input_type' => 'textarea',
|
1402 |
+
'input_placeholder' => $this->get_text_inline( 'What did you expect?', 'placeholder-what-did-you-expect' )
|
1403 |
)
|
1404 |
)
|
1405 |
);
|
1935 |
|
1936 |
self::$_static_logger->entrance();
|
1937 |
|
1938 |
+
$title = sprintf( '%s [v.%s]', fs_text_inline( 'Freemius Debug' ), WP_FS__SDK_VERSION );
|
1939 |
|
1940 |
if ( WP_FS__DEV_MODE ) {
|
1941 |
// Add top-level debug menu item.
|
2342 |
*
|
2343 |
* @return string
|
2344 |
*/
|
2345 |
+
function get_anonymous_id() {
|
2346 |
+
$unique_id = self::$_accounts->get_option( 'unique_id' );
|
2347 |
|
2348 |
+
if ( empty( $unique_id ) || ! is_string( $unique_id ) ) {
|
2349 |
+
$key = get_site_url();
|
2350 |
|
2351 |
+
// If localhost, assign microtime instead of domain.
|
2352 |
+
if ( WP_FS__IS_LOCALHOST ||
|
2353 |
+
false !== strpos( $key, 'localhost' ) ||
|
2354 |
+
false === strpos( $key, '.' )
|
2355 |
+
) {
|
2356 |
+
$key = microtime();
|
2357 |
+
}
|
2358 |
|
2359 |
+
/**
|
2360 |
+
* Base the unique identifier on the WP secure authentication key. Which
|
2361 |
+
* turns the key into a secret anonymous identifier.
|
2362 |
+
*
|
2363 |
+
* @author Vova Feldman (@svovaf)
|
2364 |
+
* @since 1.2.3
|
2365 |
+
*/
|
2366 |
+
$unique_id = md5( $key . SECURE_AUTH_KEY );
|
2367 |
|
2368 |
+
self::$_accounts->set_option( 'unique_id', $unique_id, true );
|
2369 |
+
}
|
2370 |
|
2371 |
+
$this->_logger->departure( $unique_id );
|
2372 |
|
2373 |
+
return $unique_id;
|
2374 |
+
}
|
2375 |
|
2376 |
/**
|
2377 |
* @author Vova Feldman (@svovaf)
|
2451 |
// $admin_email = get_option( 'admin_email' );
|
2452 |
$admin_email = $current_user->user_email;
|
2453 |
|
2454 |
+
// Aliases.
|
2455 |
+
$deactivate_plugin_title = $this->esc_html_inline( 'That\'s exhausting, please deactivate', 'deactivate-plugin-title' );
|
2456 |
+
$deactivate_plugin_desc = $this->esc_html_inline( 'We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future.', 'deactivate-plugin-desc' );
|
2457 |
+
$install_previous_title = $this->esc_html_inline( 'Let\'s try your previous version', 'install-previous-title' );
|
2458 |
+
$install_previous_desc = $this->esc_html_inline( 'Uninstall this version and install the previous one.', 'install-previous-desc' );
|
2459 |
+
$fix_issue_title = $this->esc_html_inline( 'Yes - I\'m giving you a chance to fix it', 'fix-issue-title' );
|
2460 |
+
$fix_issue_desc = $this->esc_html_inline( 'We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update.', 'fix-issue-desc' );
|
2461 |
+
/* translators: %s: product title (e.g. "Awesome Plugin" requires an access to...) */
|
2462 |
+
$x_requires_access_to_api = $this->esc_html_inline( '%s requires an access to our API.', 'x-requires-access-to-api' );
|
2463 |
+
$sysadmin_title = $this->esc_html_inline( 'I\'m a system administrator', 'sysadmin-title' );
|
2464 |
+
$happy_to_resolve_issue_asap = $this->esc_html_inline( 'We are sure it\'s an issue on our side and more than happy to resolve it for you ASAP if you give us a chance.', 'happy-to-resolve-issue-asap' );
|
2465 |
+
|
2466 |
$message = false;
|
2467 |
if ( is_object( $api_result ) &&
|
2468 |
isset( $api_result->error ) &&
|
2489 |
if ( ! empty( $missing_methods ) ) {
|
2490 |
$missing_methods = sprintf(
|
2491 |
'<br><br><b>%s</b> %s',
|
2492 |
+
$this->esc_html_inline( 'Disabled method(s):', 'curl-disabled-methods' ),
|
2493 |
$missing_methods
|
2494 |
);
|
2495 |
}
|
2496 |
}
|
2497 |
|
2498 |
$message = sprintf(
|
2499 |
+
$x_requires_access_to_api . ' ' .
|
2500 |
+
$this->esc_html_inline( 'We use PHP cURL library for the API calls, which is a very common library and usually installed and activated out of the box. Unfortunately, cURL is not activated (or disabled) on your server.', 'curl-missing-message' ) . ' ' .
|
2501 |
$missing_methods .
|
2502 |
' %s',
|
2503 |
'<b>' . $this->get_plugin_name() . '</b>',
|
2505 |
'<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
|
2506 |
sprintf(
|
2507 |
'<a class="fs-resolve" data-type="curl" href="#"><b>%s</b></a>%s',
|
2508 |
+
$this->get_text_inline( 'I don\'t know what is cURL or how to install it, help me!', 'curl-missing-no-clue-title' ),
|
2509 |
' - ' . sprintf(
|
2510 |
+
$this->get_text_inline( 'We\'ll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update.', 'curl-missing-no-clue-desc' ),
|
2511 |
'<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
|
2512 |
)
|
2513 |
),
|
2514 |
sprintf(
|
2515 |
'<b>%s</b> - %s',
|
2516 |
+
$sysadmin_title,
|
2517 |
+
esc_html( sprintf( $this->get_text_inline( 'Great, please install cURL and enable it in your php.ini file. In addition, search for the \'disable_functions\' directive in your php.ini file and remove any disabled methods starting with \'curl_\'. To make sure it was successfully activated, use \'phpinfo()\'. Once activated, deactivate the %s and reactivate it back again.', 'curl-missing-sysadmin-desc' ), $this->get_module_label( true ) ) )
|
2518 |
),
|
2519 |
sprintf(
|
2520 |
+
'<a href="%s"><b>%s</b></a> - %s',
|
2521 |
+
wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=all&paged=1&s=', 'deactivate-plugin_' . $this->_plugin_basename ),
|
2522 |
+
$deactivate_plugin_title,
|
2523 |
+
$deactivate_plugin_desc
|
2524 |
)
|
2525 |
)
|
2526 |
);
|
2527 |
break;
|
2528 |
case 'cloudflare_ddos_protection':
|
2529 |
$message = sprintf(
|
2530 |
+
$x_requires_access_to_api . ' ' .
|
2531 |
+
$this->esc_html_inline( 'From unknown reason, CloudFlare, the firewall we use, blocks the connection.', 'cloudflare-blocks-connection-message' ) . ' ' .
|
2532 |
+
$happy_to_resolve_issue_asap .
|
2533 |
' %s',
|
2534 |
'<b>' . $this->get_plugin_name() . '</b>',
|
2535 |
sprintf(
|
2536 |
'<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
|
2537 |
sprintf(
|
2538 |
'<a class="fs-resolve" data-type="cloudflare" href="#"><b>%s</b></a>%s',
|
2539 |
+
$fix_issue_title,
|
2540 |
' - ' . sprintf(
|
2541 |
+
$fix_issue_desc,
|
2542 |
'<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
|
2543 |
)
|
2544 |
),
|
2545 |
sprintf(
|
2546 |
+
'<a href="%s" target="_blank"><b>%s</b></a> - %s',
|
2547 |
sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
|
2548 |
+
$install_previous_title,
|
2549 |
+
$install_previous_desc
|
2550 |
),
|
2551 |
sprintf(
|
2552 |
+
'<a href="%s"><b>%s</b></a> - %s',
|
2553 |
+
wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=all&paged=1&s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ),
|
2554 |
+
$deactivate_plugin_title,
|
2555 |
+
$deactivate_plugin_desc
|
2556 |
)
|
2557 |
)
|
2558 |
);
|
2559 |
break;
|
2560 |
case 'squid_cache_block':
|
2561 |
$message = sprintf(
|
2562 |
+
$x_requires_access_to_api . ' ' .
|
2563 |
+
$this->esc_html_inline( 'It looks like your server is using Squid ACL (access control lists), which blocks the connection.', 'squid-blocks-connection-message' ) .
|
2564 |
' %s',
|
2565 |
'<b>' . $this->get_plugin_name() . '</b>',
|
2566 |
sprintf(
|
2567 |
'<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
|
2568 |
sprintf(
|
2569 |
+
'<a class="fs-resolve" data-type="squid" href="#"><b>%s</b></a> - %s',
|
2570 |
+
$this->esc_html_inline( 'I don\'t know what is Squid or ACL, help me!', 'squid-no-clue-title' ),
|
2571 |
+
sprintf(
|
2572 |
+
$this->esc_html_inline( 'We\'ll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update.', 'squid-no-clue-desc' ),
|
2573 |
'<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
|
2574 |
)
|
2575 |
),
|
2576 |
sprintf(
|
2577 |
'<b>%s</b> - %s',
|
2578 |
+
$sysadmin_title,
|
2579 |
sprintf(
|
2580 |
+
$this->esc_html_inline( 'Great, please whitelist the following domains: %s. Once you are done, deactivate the %s and activate it again.', 'squid-sysadmin-desc' ),
|
2581 |
// We use a filter since the plugin might require additional API connectivity.
|
2582 |
'<b>' . implode( ', ', $this->apply_filters( 'api_domains', array( 'api.freemius.com', 'wp.freemius.com' ) ) ) . '</b>',
|
2583 |
$this->_module_type
|
2584 |
)
|
2585 |
),
|
2586 |
sprintf(
|
2587 |
+
'<a href="%s"><b>%s</b></a> - %s',
|
2588 |
+
wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=all&paged=1&s=', 'deactivate-plugin_' . $this->_plugin_basename ),
|
2589 |
+
$deactivate_plugin_title,
|
2590 |
+
$deactivate_plugin_desc
|
2591 |
)
|
2592 |
)
|
2593 |
);
|
2594 |
break;
|
2595 |
// default:
|
2596 |
+
// $message = $this->get_text_inline( 'connectivity-test-fails-message' );
|
2597 |
// break;
|
2598 |
}
|
2599 |
}
|
2601 |
$message_id = 'failed_connect_api';
|
2602 |
$type = 'error';
|
2603 |
|
2604 |
+
$connectivity_test_fails_message = $this->esc_html_inline( 'From unknown reason, the API connectivity test failed.', 'connectivity-test-fails-message' );
|
2605 |
+
|
2606 |
if ( false === $message ) {
|
2607 |
if ( $is_first_failure ) {
|
2608 |
// First attempt failed.
|
2609 |
$message = sprintf(
|
2610 |
+
$x_requires_access_to_api . ' ' .
|
2611 |
+
$connectivity_test_fails_message . ' ' .
|
2612 |
+
$this->esc_html_inline( 'It\'s probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?', 'connectivity-test-maybe-temporary' ) . '<br><br>' .
|
2613 |
'%s',
|
2614 |
'<b>' . $this->get_plugin_name() . '</b>',
|
2615 |
sprintf(
|
2616 |
'<div id="fs_firewall_issue_options">%s %s</div>',
|
2617 |
sprintf(
|
2618 |
'<a class="button button-primary fs-resolve" data-type="retry_ping" href="#">%s</a>',
|
2619 |
+
$this->get_text_inline( 'Yes - do your thing', 'yes-do-your-thing' )
|
2620 |
),
|
2621 |
sprintf(
|
2622 |
'<a href="%s" class="button">%s</a>',
|
2623 |
+
wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=all&paged=1&s=', 'deactivate-plugin_' . $this->_plugin_basename ),
|
2624 |
+
$this->get_text_inline( 'No - just deactivate', 'no-deactivate' )
|
2625 |
)
|
2626 |
)
|
2627 |
);
|
2631 |
} else {
|
2632 |
// Second connectivity attempt failed.
|
2633 |
$message = sprintf(
|
2634 |
+
$x_requires_access_to_api . ' ' .
|
2635 |
+
$connectivity_test_fails_message . ' ' .
|
2636 |
+
$happy_to_resolve_issue_asap .
|
2637 |
' %s',
|
2638 |
'<b>' . $this->get_plugin_name() . '</b>',
|
2639 |
sprintf(
|
2640 |
'<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
|
2641 |
sprintf(
|
2642 |
'<a class="fs-resolve" data-type="general" href="#"><b>%s</b></a>%s',
|
2643 |
+
$fix_issue_title,
|
2644 |
' - ' . sprintf(
|
2645 |
+
$fix_issue_desc,
|
2646 |
'<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
|
2647 |
)
|
2648 |
),
|
2649 |
sprintf(
|
2650 |
+
'<a href="%s" target="_blank"><b>%s</b></a> - %s',
|
2651 |
sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
|
2652 |
+
$install_previous_title,
|
2653 |
+
$install_previous_desc
|
2654 |
),
|
2655 |
sprintf(
|
2656 |
+
'<a href="%s"><b>%s</b></a> - %s',
|
2657 |
+
wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=all&paged=1&s=', 'deactivate-plugin_' . $this->_plugin_basename ),
|
2658 |
+
$deactivate_plugin_title,
|
2659 |
+
$deactivate_plugin_desc
|
2660 |
)
|
2661 |
)
|
2662 |
);
|
2666 |
$this->_admin_notices->add_sticky(
|
2667 |
$message,
|
2668 |
$message_id,
|
2669 |
+
$this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
|
2670 |
$type
|
2671 |
);
|
2672 |
}
|
2733 |
|
2734 |
$this->_admin_notices->add_sticky(
|
2735 |
sprintf(
|
2736 |
+
$this->get_text_inline( 'Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience.', 'fix-request-sent-message' ),
|
2737 |
'<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
|
2738 |
),
|
2739 |
'server_details_sent'
|
3009 |
|
3010 |
$this->parse_settings( $plugin_info );
|
3011 |
|
3012 |
+
if ( $this->has_affiliate_program() ) {
|
3013 |
+
$this->fetch_affiliate_and_terms();
|
3014 |
+
}
|
3015 |
+
|
3016 |
if ( ! self::is_ajax() ) {
|
3017 |
if ( ! $this->is_addon() || $this->is_only_premium() ) {
|
3018 |
add_action( 'admin_menu', array( &$this, '_prepare_admin_menu' ), WP_FS__LOWEST_PRIORITY );
|
3128 |
|
3129 |
$this->_admin_notices->add(
|
3130 |
( ! empty( $parent_name ) ?
|
3131 |
+
sprintf( $this->get_text_x_inline( '%s cannot run without %s.', 'addonX cannot run without pluginY', 'addon-x-cannot-run-without-y' ), $this->get_plugin_name(), $parent_name ) :
|
3132 |
+
sprintf( $this->get_text_x_inline( '%s cannot run without the plugin.', 'addonX cannot run...', 'addon-x-cannot-run-without-parent' ), $this->get_plugin_name() )
|
3133 |
),
|
3134 |
+
$this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
|
3135 |
'error'
|
3136 |
);
|
3137 |
|
3250 |
$this->_logger->api_error( $result );
|
3251 |
|
3252 |
self::shoot_ajax_failure(
|
3253 |
+
sprintf( $this->get_text_inline( 'Unexpected API error. Please contact the %s\'s author with the following error.', 'unexpected-api-error' ), $this->_module_type ) .
|
3254 |
( $this->is_api_error( $result ) && isset( $result->error ) ?
|
3255 |
$result->error->message :
|
3256 |
var_export( $result, true ) )
|
3275 |
$this->_logger->api_error( $result );
|
3276 |
|
3277 |
self::shoot_ajax_failure(
|
3278 |
+
sprintf( $this->get_text_inline( 'Unexpected API error. Please contact the %s\'s author with the following error.', 'unexpected-api-error' ), $this->_module_type ) .
|
3279 |
( $this->is_api_error( $result ) && isset( $result->error ) ?
|
3280 |
$result->error->message :
|
3281 |
var_export( $result, true ) )
|
3462 |
new FS_Plugin();
|
3463 |
|
3464 |
$plugin->update( array(
|
3465 |
+
'id' => $id,
|
3466 |
+
'type' => $this->get_option( $plugin_info, 'type', $this->_module_type),
|
3467 |
+
'public_key' => $public_key,
|
3468 |
+
'slug' => $this->_slug,
|
3469 |
+
'parent_plugin_id' => $parent_id,
|
3470 |
+
'version' => $this->get_plugin_version(),
|
3471 |
+
'title' => $this->get_plugin_name(),
|
3472 |
+
'file' => $this->_plugin_basename,
|
3473 |
+
'is_premium' => $this->get_bool_option( $plugin_info, 'is_premium', true ),
|
3474 |
+
'is_live' => $this->get_bool_option( $plugin_info, 'is_live', true ),
|
3475 |
+
'affiliate_moderation' => $this->get_option( $plugin_info, 'has_affiliation' ),
|
3476 |
) );
|
3477 |
|
3478 |
if ( $plugin->is_updated() ) {
|
3681 |
'license_activated',
|
3682 |
) );
|
3683 |
|
3684 |
+
if ( ! $this->is_only_premium() ) {
|
3685 |
+
$this->_admin_notices->add_sticky(
|
3686 |
+
sprintf( $this->get_text_inline( 'Premium %s version was successfully activated.', 'premium-activated-message' ), $this->_module_type ),
|
3687 |
+
'premium_activated',
|
3688 |
+
$this->get_text_x_inline( 'W00t',
|
3689 |
+
'Used to express elation, enthusiasm, or triumph (especially in electronic communication).', 'woot' ) . '!'
|
3690 |
+
);
|
3691 |
+
}
|
3692 |
} else {
|
3693 |
// Remove sticky message related to premium code activation.
|
3694 |
$this->_admin_notices->remove_sticky( 'premium_activated' );
|
3699 |
if ( $this->is_paying() && ! $this->is_premium() ) {
|
3700 |
$this->_admin_notices->add_sticky(
|
3701 |
sprintf(
|
3702 |
+
/* translators: %s: License type (e.g. you have a professional license) */
|
3703 |
+
$this->get_text_inline( 'You have a %s license.', 'you-have-x-license' ),
|
3704 |
$this->_site->plan->title
|
3705 |
) . $this->get_complete_upgrade_instructions(),
|
3706 |
'plan_upgraded',
|
3707 |
+
$this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
|
3708 |
);
|
3709 |
}
|
3710 |
}
|
3967 |
|
3968 |
$this->_parent->_admin_notices->add_sticky(
|
3969 |
sprintf(
|
3970 |
+
($is_after_trial_cancel ?
|
3971 |
+
$this->_parent->get_text_inline(
|
3972 |
+
'%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you\'ll have to purchase a license.',
|
3973 |
+
'addon-trial-cancelled-message'
|
3974 |
+
) :
|
3975 |
+
$this->_parent->get_text_inline(
|
3976 |
+
'%s is a premium only add-on. You have to purchase a license first before activating the plugin.',
|
3977 |
+
'addon-no-license-message'
|
3978 |
+
)
|
3979 |
),
|
3980 |
'<b>' . $this->_plugin->title . '</b>'
|
3981 |
) . ' ' . sprintf(
|
3982 |
'<a href="%s" aria-label="%s" class="button button-primary" style="margin-left: 10px; vertical-align: middle;">%s ➜</a>',
|
3983 |
$this->_parent->addon_url( $this->_slug ),
|
3984 |
+
esc_attr( sprintf( $this->_parent->get_text_inline( 'More information about %s', 'more-information-about-x' ), $this->_plugin->title ) ),
|
3985 |
+
$this->_parent->get_text_inline( 'Purchase License', 'purchase-license' )
|
3986 |
),
|
3987 |
'no_addon_license_' . $this->_slug,
|
3988 |
+
( $is_after_trial_cancel ? '' : $this->_parent->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...' ),
|
3989 |
( $is_after_trial_cancel ? 'success' : 'error' )
|
3990 |
);
|
3991 |
|
4419 |
|
4420 |
$this->_admin_notices->add_sticky(
|
4421 |
sprintf(
|
4422 |
+
$this->get_text_inline( 'You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s.', 'pending-activation-message' ),
|
4423 |
'<b>' . $this->get_plugin_name() . '</b>',
|
4424 |
'<b>' . $email . '</b>',
|
4425 |
+
( $is_pending_trial ?
|
4426 |
+
$this->get_text_inline( 'start the trial', 'start-the-trial' ) :
|
4427 |
+
$this->get_text_inline( 'complete the install', 'complete-the-install' ) )
|
4428 |
),
|
4429 |
'activation_pending',
|
4430 |
'Thanks!'
|
4503 |
// Show notice for new plugin installations.
|
4504 |
$this->_admin_notices->add(
|
4505 |
sprintf(
|
4506 |
+
$this->get_text_inline( 'You are just one step away - %s', 'you-are-step-away' ),
|
4507 |
sprintf( '<b><a href="%s">%s</a></b>',
|
4508 |
$this->get_activation_url(),
|
4509 |
+
sprintf( $this->get_text_x_inline( 'Complete "%s" Activation Now',
|
4510 |
+
'%s - plugin name. As complete "PluginX" activation now', 'activate-x-now' ), $this->get_plugin_name() )
|
4511 |
)
|
4512 |
),
|
4513 |
'',
|
4520 |
// Show notice for new plugin installations.
|
4521 |
$this->_admin_notices->add_sticky(
|
4522 |
sprintf(
|
4523 |
+
$this->get_text_inline( 'We made a few tweaks to the %s, %s', 'few-plugin-tweaks' ),
|
4524 |
$this->_module_type,
|
4525 |
sprintf( '<b><a href="%s">%s</a></b>',
|
4526 |
$this->get_activation_url(),
|
4527 |
+
sprintf( $this->get_text_inline( 'Opt in to make "%s" Better!', 'optin-x-now' ), $this->get_plugin_name() )
|
4528 |
)
|
4529 |
),
|
4530 |
'connect_account',
|
4909 |
// If activating the premium module version, add an admin notice to congratulate for an upgrade completion.
|
4910 |
if ( $is_premium_version_activation ) {
|
4911 |
$this->_admin_notices->add(
|
4912 |
+
sprintf( $this->get_text_inline( 'The upgrade of %s was successfully completed.', 'successful-version-upgrade-message' ), sprintf( '<b>%s</b>', $this->_plugin->title ) ),
|
4913 |
+
$this->get_text_x_inline( 'W00t',
|
4914 |
+
'Used to express elation, enthusiasm, or triumph (especially in electronic communication).', 'woot' ) . '!'
|
4915 |
);
|
4916 |
}
|
4917 |
} else if ( $this->is_anonymous() ) {
|
5994 |
*/
|
5995 |
function get_module_label( $lowercase = false ) {
|
5996 |
$label = $this->is_addon() ?
|
5997 |
+
$this->get_text_inline( 'Add-On', 'addon' ) :
|
5998 |
( $this->is_plugin() ?
|
5999 |
+
$this->get_text_inline( 'Plugin', 'plugin' ) :
|
6000 |
+
$this->get_text_inline( 'Theme', 'theme' ) );
|
6001 |
|
6002 |
if ( $lowercase ) {
|
6003 |
+
$label = strtolower( $label );
|
6004 |
}
|
6005 |
|
6006 |
return $label;
|
7121 |
if ( isset( $install->error ) ) {
|
7122 |
$error = $install->error->message;
|
7123 |
} else {
|
7124 |
+
$fs->_sync_license( true );
|
|
|
|
|
7125 |
|
7126 |
+
$next_page = $fs->is_addon() ?
|
7127 |
+
$fs->get_parent_instance()->get_account_url() :
|
7128 |
+
$fs->get_account_url();
|
7129 |
|
7130 |
+
$fs->reconnect_locally();
|
7131 |
}
|
7132 |
} else {
|
7133 |
$next_page = $fs->opt_in( false, false, false, $license_key );
|
7254 |
$error = $result->error;
|
7255 |
|
7256 |
if ( in_array( $error->code, array( 'invalid_email', 'no_user' ) ) ) {
|
7257 |
+
$error = $this->get_text_inline( "We couldn't find your email address in the system, are you sure it's the right address?", 'email-not-found' );
|
7258 |
} else if ( 'no_license' === $error->code ) {
|
7259 |
+
$error = $this->get_text_inline( "We can't see any active licenses associated with that email address, are you sure it's the right address?", 'no-active-licenses' );
|
7260 |
} else {
|
7261 |
$error = $error->message;
|
7262 |
}
|
7267 |
);
|
7268 |
|
7269 |
if ( false !== $error ) {
|
7270 |
+
$licenses['error'] = sprintf( '%s... %s', $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ), strtolower( $error ) );
|
7271 |
}
|
7272 |
|
7273 |
echo json_encode( $licenses );
|
7300 |
if ( self::is_ajax() &&
|
7301 |
'admin-ajax.php' === $pagenow
|
7302 |
) {
|
7303 |
+
$referer = fs_get_raw_referer();
|
7304 |
|
7305 |
if ( is_string( $referer ) ) {
|
7306 |
$parts = explode( '?', $referer );
|
7337 |
return ( 'themes.php' === self::get_current_page() );
|
7338 |
}
|
7339 |
|
7340 |
+
#----------------------------------------------------------------------------------
|
7341 |
+
#region Affiliation
|
7342 |
+
#----------------------------------------------------------------------------------
|
7343 |
+
|
7344 |
+
/**
|
7345 |
+
* @author Leo Fajardo
|
7346 |
+
* @since 1.2.3
|
7347 |
+
*
|
7348 |
+
* @return bool
|
7349 |
+
*/
|
7350 |
+
function has_affiliate_program() {
|
7351 |
+
if ( ! is_object( $this->_plugin ) ) {
|
7352 |
+
return false;
|
7353 |
+
}
|
7354 |
+
|
7355 |
+
return $this->_plugin->has_affiliate_program();
|
7356 |
+
}
|
7357 |
+
|
7358 |
+
/**
|
7359 |
+
* @author Leo Fajardo (@leorw)
|
7360 |
+
* @since 1.2.3
|
7361 |
+
*/
|
7362 |
+
private function fetch_affiliate_and_terms() {
|
7363 |
+
$this->_logger->entrance();
|
7364 |
+
|
7365 |
+
if ( ! is_object( $this->plugin_affiliate_terms ) ) {
|
7366 |
+
$plugins_api = $this->get_api_plugin_scope();
|
7367 |
+
$affiliate_terms = $plugins_api->get( '/aff.json?type=affiliation', true );
|
7368 |
+
|
7369 |
+
if ( ! $this->is_api_result_entity( $affiliate_terms ) ) {
|
7370 |
+
return;
|
7371 |
+
}
|
7372 |
+
|
7373 |
+
$this->plugin_affiliate_terms = new FS_AffiliateTerms( $affiliate_terms );
|
7374 |
+
}
|
7375 |
+
|
7376 |
+
if ( $this->is_registered() ) {
|
7377 |
+
$users_api = $this->get_api_user_scope();
|
7378 |
+
$result = $users_api->get( "/plugins/{$this->_plugin->id}/aff/{$this->plugin_affiliate_terms->id}/affiliates.json", true );
|
7379 |
+
if ( $this->is_api_result_object( $result, 'affiliates' ) ) {
|
7380 |
+
if ( ! empty( $result->affiliates ) ) {
|
7381 |
+
$affiliate = new FS_Affiliate( $result->affiliates[0] );
|
7382 |
+
|
7383 |
+
if ( ! $affiliate->is_pending() && ! empty( $this->_storage->affiliate_application_data ) ) {
|
7384 |
+
unset( $this->_storage->affiliate_application_data );
|
7385 |
+
}
|
7386 |
+
|
7387 |
+
if ( $affiliate->is_using_custom_terms ) {
|
7388 |
+
$affiliate_terms = $users_api->get( "/plugins/{$this->_plugin->id}/affiliates/{$affiliate->id}/aff/{$affiliate->custom_affiliate_terms_id}.json", true );
|
7389 |
+
if ( $this->is_api_result_entity( $affiliate_terms ) ) {
|
7390 |
+
$this->custom_affiliate_terms = new FS_AffiliateTerms( $affiliate_terms );
|
7391 |
+
}
|
7392 |
+
}
|
7393 |
+
|
7394 |
+
$this->affiliate = $affiliate;
|
7395 |
+
}
|
7396 |
+
}
|
7397 |
+
}
|
7398 |
+
}
|
7399 |
+
|
7400 |
+
/**
|
7401 |
+
* @author Leo Fajardo
|
7402 |
+
* @since 1.2.3
|
7403 |
+
*
|
7404 |
+
* @return FS_Affiliate
|
7405 |
+
*/
|
7406 |
+
function get_affiliate() {
|
7407 |
+
return $this->affiliate;
|
7408 |
+
}
|
7409 |
+
|
7410 |
+
|
7411 |
+
/**
|
7412 |
+
* @author Leo Fajardo
|
7413 |
+
* @since 1.2.3
|
7414 |
+
*
|
7415 |
+
* @return FS_AffiliateTerms
|
7416 |
+
*/
|
7417 |
+
function get_affiliate_terms() {
|
7418 |
+
return is_object( $this->custom_affiliate_terms ) ?
|
7419 |
+
$this->custom_affiliate_terms :
|
7420 |
+
$this->plugin_affiliate_terms;
|
7421 |
+
}
|
7422 |
+
|
7423 |
+
/**
|
7424 |
+
* @author Leo Fajardo
|
7425 |
+
* @since 1.2.3
|
7426 |
+
*
|
7427 |
+
* @return FS_Affiliate|null
|
7428 |
+
*/
|
7429 |
+
function _submit_affiliate_application() {
|
7430 |
+
$this->_logger->entrance();
|
7431 |
+
|
7432 |
+
$this->check_ajax_referer( 'submit_affiliate_application' );
|
7433 |
+
|
7434 |
+
if ( ! $this->is_user_admin() ) {
|
7435 |
+
// Only for admins.
|
7436 |
+
self::shoot_ajax_failure();
|
7437 |
+
}
|
7438 |
+
|
7439 |
+
$affiliate = fs_request_get( 'affiliate' );
|
7440 |
+
|
7441 |
+
if ( empty( $affiliate['promotion_methods'] ) ) {
|
7442 |
+
unset( $affiliate['promotion_methods'] );
|
7443 |
+
}
|
7444 |
+
|
7445 |
+
if ( ! empty( $affiliate['additional_domains'] ) ) {
|
7446 |
+
$affiliate['additional_domains'] = array_unique( $affiliate['additional_domains'] );
|
7447 |
+
}
|
7448 |
+
|
7449 |
+
if ( ! $this->is_registered() ) {
|
7450 |
+
// Opt in but don't track usage.
|
7451 |
+
$next_page = $this->opt_in(
|
7452 |
+
false,
|
7453 |
+
false,
|
7454 |
+
false,
|
7455 |
+
false,
|
7456 |
+
false,
|
7457 |
+
false,
|
7458 |
+
true
|
7459 |
+
);
|
7460 |
+
|
7461 |
+
if ( is_object( $next_page ) && $this->is_api_error( $next_page ) ) {
|
7462 |
+
self::shoot_ajax_failure(
|
7463 |
+
isset( $next_page->error ) ?
|
7464 |
+
$next_page->error->message :
|
7465 |
+
var_export( $next_page, true )
|
7466 |
+
);
|
7467 |
+
} else if ( $this->is_pending_activation() ) {
|
7468 |
+
self::shoot_ajax_failure( $this->get_text_inline( 'Account is pending activation.', 'account-is-pending-activation' ) );
|
7469 |
+
}
|
7470 |
+
}
|
7471 |
+
|
7472 |
+
$api = $this->get_api_user_scope();
|
7473 |
+
$result = $api->call(
|
7474 |
+
( "/plugins/{$this->_plugin->id}/aff/{$this->plugin_affiliate_terms->id}/affiliates.json" ),
|
7475 |
+
'post',
|
7476 |
+
$affiliate
|
7477 |
+
);
|
7478 |
+
|
7479 |
+
if ( $this->is_api_error( $result ) ) {
|
7480 |
+
self::shoot_ajax_failure(
|
7481 |
+
isset( $result->error ) ?
|
7482 |
+
$result->error->message :
|
7483 |
+
var_export( $result, true )
|
7484 |
+
);
|
7485 |
+
}
|
7486 |
+
else
|
7487 |
+
{
|
7488 |
+
if ( $this->_admin_notices->has_sticky( 'affiliate_program' ) ) {
|
7489 |
+
$this->_admin_notices->remove_sticky( 'affiliate_program' );
|
7490 |
+
}
|
7491 |
+
|
7492 |
+
$affiliate_application_data = array(
|
7493 |
+
'stats_description' => $affiliate['stats_description'],
|
7494 |
+
'promotion_method_description' => $affiliate['promotion_method_description'],
|
7495 |
+
);
|
7496 |
+
|
7497 |
+
if ( ! empty( $affiliate['promotion_methods'] ) ) {
|
7498 |
+
$affiliate_application_data['promotion_methods'] = $affiliate['promotion_methods'];
|
7499 |
+
}
|
7500 |
+
|
7501 |
+
if ( ! empty( $affiliate['domain'] ) ) {
|
7502 |
+
$affiliate_application_data['domain'] = $affiliate['domain'];
|
7503 |
+
}
|
7504 |
+
|
7505 |
+
if ( ! empty( $affiliate['additional_domains'] ) ) {
|
7506 |
+
$affiliate_application_data['additional_domains'] = $affiliate['additional_domains'];
|
7507 |
+
}
|
7508 |
+
|
7509 |
+
$this->_storage->affiliate_application_data = $affiliate_application_data;
|
7510 |
+
}
|
7511 |
+
|
7512 |
+
// Purge cached affiliate.
|
7513 |
+
$api->purge_cache( 'affiliate.json' );
|
7514 |
+
|
7515 |
+
self::shoot_ajax_success( $result );
|
7516 |
+
}
|
7517 |
+
|
7518 |
+
/**
|
7519 |
+
* @author Leo Fajardo
|
7520 |
+
* @since 1.2.3
|
7521 |
+
*
|
7522 |
+
* @return array|null
|
7523 |
+
*/
|
7524 |
+
function get_affiliate_application_data() {
|
7525 |
+
if ( empty( $this->_storage->affiliate_application_data ) ) {
|
7526 |
+
return null;
|
7527 |
+
}
|
7528 |
+
|
7529 |
+
return $this->_storage->affiliate_application_data;
|
7530 |
+
}
|
7531 |
+
|
7532 |
+
#endregion Affiliation ------------------------------------------------------------
|
7533 |
+
|
7534 |
#----------------------------------------------------------------------------------
|
7535 |
#region URL Generators
|
7536 |
#----------------------------------------------------------------------------------
|
7980 |
) ), admin_url( 'admin.php', 'admin' ) );
|
7981 |
} else {
|
7982 |
// Plugin without a settings page.
|
7983 |
+
return add_query_arg(
|
7984 |
+
$params,
|
7985 |
+
admin_url( 'plugins.php' )
|
7986 |
+
);
|
7987 |
}
|
7988 |
}
|
7989 |
}
|
8404 |
$this->_site = clone $site;
|
8405 |
$this->_site->plan = self::decrypt_entity( $this->_site->plan );
|
8406 |
|
8407 |
+
/**
|
8408 |
+
* If the install owner's details are not stored locally, use the previous user's details if available.
|
8409 |
+
*
|
8410 |
+
* @author Leo Fajardo (@leorw)
|
8411 |
+
*/
|
8412 |
+
if ( ! isset( $users[ $this->_site->user_id ] ) && FS_User::is_valid_id( $this->_storage->prev_user_id ) ) {
|
8413 |
+
$user_id = $this->_storage->prev_user_id;
|
8414 |
+
} else {
|
8415 |
+
$user_id = $this->_site->user_id;
|
8416 |
+
}
|
8417 |
+
|
8418 |
// Load relevant user.
|
8419 |
+
$this->_user = clone $users[ $user_id ];
|
8420 |
|
8421 |
// Load plans.
|
8422 |
$this->_plans = $plans[ $this->_slug ];
|
8564 |
* In this case, the user and site info will be sent to the server but no
|
8565 |
* data will be saved to the WP installation's database.
|
8566 |
* @param number|bool $trial_plan_id
|
8567 |
+
* @param bool $is_disconnected Whether or not to opt in without tracking.
|
8568 |
*
|
8569 |
* @return string|object
|
8570 |
* @use WP_Error
|
8575 |
$last = false,
|
8576 |
$license_key = false,
|
8577 |
$is_uninstall = false,
|
8578 |
+
$trial_plan_id = false,
|
8579 |
+
$is_disconnected = false
|
8580 |
) {
|
8581 |
$this->_logger->entrance();
|
8582 |
|
8629 |
);
|
8630 |
}
|
8631 |
|
8632 |
+
if ( isset( $params['license_key'] ) ) {
|
8633 |
+
$fs_user = Freemius::_get_user_by_email( $email );
|
8634 |
+
|
8635 |
+
if ( is_object( $fs_user ) ) {
|
8636 |
+
/**
|
8637 |
+
* If opting in with a context license and the context WP Admin user already opted in
|
8638 |
+
* before from the current site, add the user context security params to avoid the
|
8639 |
+
* unnecessry email activation when the context license is owned by the same context user.
|
8640 |
+
*
|
8641 |
+
* @author Leo Fajardo (@leorw)
|
8642 |
+
* @since 1.2.3
|
8643 |
+
*/
|
8644 |
+
$params = array_merge( $params, FS_Security::instance()->get_context_params(
|
8645 |
+
$fs_user,
|
8646 |
+
false,
|
8647 |
+
'install_with_existing_user'
|
8648 |
+
) );
|
8649 |
+
}
|
8650 |
+
}
|
8651 |
+
|
8652 |
+
$params['is_disconnected'] = $is_disconnected;
|
8653 |
+
$params['format'] = 'json';
|
8654 |
|
8655 |
$url = WP_FS__ADDRESS . '/action/service/user/install/';
|
8656 |
if ( isset( $_COOKIE['XDEBUG_SESSION'] ) ) {
|
8707 |
return true;
|
8708 |
}
|
8709 |
|
8710 |
+
/**
|
8711 |
+
* When json_decode() executed on PHP 5.2 with an invalid JSON, it will throw a PHP warning. Unfortunately, the new Theme Check doesn't allow PHP silencing and the theme review team isn't open to change that, therefore, instead of using `@json_decode()` we had to use the method without the `@` directive.
|
8712 |
+
*
|
8713 |
+
* @author Vova Feldman (@svovaf)
|
8714 |
+
* @since 1.2.3
|
8715 |
+
* @link https://themes.trac.wordpress.org/ticket/46134#comment:5
|
8716 |
+
* @link https://themes.trac.wordpress.org/ticket/46134#comment:9
|
8717 |
+
* @link https://themes.trac.wordpress.org/ticket/46134#comment:12
|
8718 |
+
* @link https://themes.trac.wordpress.org/ticket/46134#comment:14
|
8719 |
+
*/
|
8720 |
+
$decoded = is_string( $response['body'] ) ?
|
8721 |
+
json_decode( $response['body'] ) :
|
8722 |
+
null;
|
8723 |
|
8724 |
if ( empty( $decoded ) ) {
|
8725 |
return false;
|
8737 |
} else if ( isset( $decoded->pending_activation ) && $decoded->pending_activation ) {
|
8738 |
// Pending activation, add message.
|
8739 |
return $this->set_pending_confirmation(
|
8740 |
+
( isset( $decoded->email ) ?
|
8741 |
+
$decoded->email :
|
8742 |
+
true ),
|
8743 |
false,
|
8744 |
$filtered_license_key,
|
8745 |
! empty( $params['trial_plan_id'] )
|
8805 |
|
8806 |
$this->_admin_notices->remove_sticky( 'connect_account' );
|
8807 |
|
8808 |
+
if ( $this->is_pending_activation() || ! $this->has_settings_menu() ) {
|
8809 |
// Remove pending activation sticky notice (if still exist).
|
8810 |
$this->_admin_notices->remove_sticky( 'activation_pending' );
|
8811 |
|
8814 |
|
8815 |
if ( ! $this->is_paying_or_trial() ) {
|
8816 |
$this->_admin_notices->add_sticky(
|
8817 |
+
sprintf( $this->get_text_x_inline( '%s activation was successfully completed.',
|
8818 |
+
'pluginX activation was successfully...', 'plugin-x-activation-message' ), '<b>' . $this->get_plugin_name() . '</b>' ),
|
8819 |
'activation_complete'
|
8820 |
);
|
8821 |
}
|
8822 |
}
|
8823 |
|
8824 |
if ( $this->is_paying_or_trial() ) {
|
8825 |
+
if ( ! $this->is_premium() || ! $this->has_premium_version() || ! $this->has_settings_menu() ) {
|
8826 |
if ( $this->is_paying() ) {
|
8827 |
$this->_admin_notices->add_sticky(
|
8828 |
sprintf(
|
8829 |
+
$this->get_text_inline( 'Your account was successfully activated with the %s plan.', 'activation-with-plan-x-message' ),
|
8830 |
$this->_site->plan->title
|
8831 |
) . $this->get_complete_upgrade_instructions(),
|
8832 |
'plan_upgraded',
|
8833 |
+
$this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
|
8834 |
);
|
8835 |
} else {
|
8836 |
$this->_admin_notices->add_sticky(
|
8837 |
sprintf(
|
8838 |
+
$this->get_text_inline( 'Your trial has been successfully started.', 'trial-started-message' ),
|
8839 |
'<i>' . $this->get_plugin_name() . '</i>'
|
8840 |
) . $this->get_complete_upgrade_instructions( $this->_storage->trial_plan->title ),
|
8841 |
'trial_started',
|
8842 |
+
$this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
|
8843 |
);
|
8844 |
}
|
8845 |
}
|
9124 |
$install = $this->apply_filters( 'after_install_failure', $install, $args );
|
9125 |
|
9126 |
$this->_admin_notices->add(
|
9127 |
+
sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
|
9128 |
+
$this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $install->error->message . '</b>',
|
9129 |
+
$this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
|
9130 |
'error'
|
9131 |
);
|
9132 |
|
9133 |
if ( $redirect ) {
|
9134 |
+
/**
|
9135 |
+
* We set the user before getting the user scope API handler, so the user became temporarily
|
9136 |
+
* registered (`is_registered() = true`). Since the API returned an error and we will redirect,
|
9137 |
+
* we have to set the user to `null`, otherwise, the user will be redirected to the wrong
|
9138 |
+
* activation page based on the return value of `is_registered()`. In addition, in case the
|
9139 |
+
* context plugin doesn't have a settings menu and the default page is the `Plugins` page,
|
9140 |
+
* misleading plugin activation errors will be shown on the `Plugins` page.
|
9141 |
+
*
|
9142 |
+
* @author Leo Fajardo (@leorw)
|
9143 |
+
*/
|
9144 |
+
$this->_user = null;
|
9145 |
+
|
9146 |
+
fs_redirect( $this->get_activation_url( array( 'error' => $install->error->message ) ) );
|
9147 |
}
|
9148 |
|
9149 |
return $install;
|
9180 |
|
9181 |
if ( isset( $addon_install->error ) ) {
|
9182 |
$this->_admin_notices->add(
|
9183 |
+
sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
|
9184 |
+
$this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $addon_install->error->message . '</b>',
|
9185 |
+
$this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
|
9186 |
'error'
|
9187 |
);
|
9188 |
|
9241 |
|
9242 |
if ( isset( $parent_install->error ) ) {
|
9243 |
$this->_admin_notices->add(
|
9244 |
+
sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
|
9245 |
+
$this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $parent_install->error->message . '</b>',
|
9246 |
+
$this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
|
9247 |
'error'
|
9248 |
);
|
9249 |
|
9250 |
return;
|
9251 |
}
|
9252 |
|
9253 |
+
$parent_fs->_admin_notices->remove_sticky( 'connect_account' );
|
9254 |
+
|
9255 |
+
if ( $parent_fs->is_pending_activation() ) {
|
9256 |
+
$parent_fs->_admin_notices->remove_sticky( 'activation_pending' );
|
9257 |
+
|
9258 |
+
unset( $parent_fs->_storage->is_pending_activation );
|
9259 |
+
}
|
9260 |
+
|
9261 |
// First of all, set site info - otherwise we won't
|
9262 |
// be able to invoke API calls.
|
9263 |
$parent_fs->_site = new FS_Site( $parent_install );
|
9450 |
|
9451 |
if ( false !== $hook ) {
|
9452 |
if ( fs_request_is_action( $this->get_unique_affix() . '_activate_existing' ) ) {
|
9453 |
+
$this->_install_with_current_user();
|
9454 |
} else if ( fs_request_is_action( $this->get_unique_affix() . '_activate_new' ) ) {
|
9455 |
+
$this->_install_with_new_user();
|
9456 |
}
|
9457 |
}
|
9458 |
}
|
9500 |
* @return string
|
9501 |
*/
|
9502 |
function get_pricing_cta_label() {
|
9503 |
+
$label = $this->get_text_inline( 'Upgrade', 'upgrade' );
|
9504 |
|
9505 |
if ( $this->is_in_trial_promotion() &&
|
9506 |
! $this->is_paying_or_trial()
|
9507 |
) {
|
9508 |
// If running a trial promotion, modify the pricing to load the trial.
|
9509 |
+
$label = $this->get_text_inline( 'Start Trial', 'start-trial' );
|
9510 |
} else if ( $this->is_paying() ) {
|
9511 |
+
$label = $this->get_text_inline( 'Pricing', 'pricing' );
|
9512 |
}
|
9513 |
|
9514 |
return $label;
|
9545 |
* @since 1.2.2.7 Also add submenu items when running in a free .org theme so the tabs will be visible.
|
9546 |
*/
|
9547 |
if ( ! $this->is_activation_mode() || $this->is_free_wp_org_theme() ) {
|
9548 |
+
if ( $this->has_affiliate_program() ) {
|
9549 |
+
// Add affiliation page.
|
9550 |
+
$this->add_submenu_item(
|
9551 |
+
$this->get_text_inline( 'Affiliation', 'affiliation' ),
|
9552 |
+
array( &$this, '_affiliation_page_render' ),
|
9553 |
+
$this->get_plugin_name() . ' – ' . $this->get_text_inline( 'Affiliation', 'affiliation' ),
|
9554 |
+
'manage_options',
|
9555 |
+
'affiliation',
|
9556 |
+
'Freemius::_clean_admin_content_section',
|
9557 |
+
WP_FS__DEFAULT_PRIORITY,
|
9558 |
+
$this->is_submenu_item_visible( 'affiliation' )
|
9559 |
+
);
|
9560 |
+
}
|
9561 |
+
|
9562 |
if ( $this->is_registered() ) {
|
9563 |
$show_account = (
|
9564 |
$this->is_submenu_item_visible( 'account' ) &&
|
9570 |
|
9571 |
// Add user account page.
|
9572 |
$this->add_submenu_item(
|
9573 |
+
$this->get_text_inline( 'Account', 'account' ),
|
9574 |
array( &$this, '_account_page_render' ),
|
9575 |
+
$this->get_plugin_name() . ' – ' . $this->get_text_inline( 'Account', 'account' ),
|
9576 |
'manage_options',
|
9577 |
'account',
|
9578 |
array( &$this, '_account_page_load' ),
|
9583 |
|
9584 |
// Add contact page.
|
9585 |
$this->add_submenu_item(
|
9586 |
+
$this->get_text_inline( 'Contact Us', 'contact-us' ),
|
9587 |
array( &$this, '_contact_page_render' ),
|
9588 |
+
$this->get_plugin_name() . ' – ' . $this->get_text_inline( 'Contact Us', 'contact-us' ),
|
9589 |
'manage_options',
|
9590 |
'contact',
|
9591 |
'Freemius::_clean_admin_content_section',
|
9595 |
|
9596 |
if ( $this->has_addons() ) {
|
9597 |
$this->add_submenu_item(
|
9598 |
+
$this->get_text_inline( 'Add-Ons', 'add-ons' ),
|
9599 |
array( &$this, '_addons_page_render' ),
|
9600 |
+
$this->get_plugin_name() . ' – ' . $this->get_text_inline( 'Add-Ons', 'add-ons' ),
|
9601 |
'manage_options',
|
9602 |
'addons',
|
9603 |
array( &$this, '_addons_page_load' ),
|
9611 |
$this->is_pricing_page_visible()
|
9612 |
);
|
9613 |
|
9614 |
+
$pricing_cta_text = $this->get_pricing_cta_label();
|
9615 |
$pricing_class = 'upgrade-mode';
|
9616 |
if ( $show_pricing ) {
|
9617 |
if ( $this->is_in_trial_promotion() &&
|
9626 |
|
9627 |
// Add upgrade/pricing page.
|
9628 |
$this->add_submenu_item(
|
9629 |
+
$pricing_cta_text . ' ' . ( is_rtl() ? '←' : '➤' ),
|
9630 |
array( &$this, '_pricing_page_render' ),
|
9631 |
+
$this->get_plugin_name() . ' – ' . $this->get_text_x_inline( 'Pricing', 'noun', 'pricing' ),
|
9632 |
'manage_options',
|
9633 |
'pricing',
|
9634 |
'Freemius::_clean_admin_content_section',
|
9808 |
|
9809 |
if ( ! $this->is_activation_mode() ) {
|
9810 |
$this->add_submenu_link_item(
|
9811 |
+
$this->apply_filters( 'support_forum_submenu', $this->get_text_inline( 'Support Forum', 'support-forum' ) ),
|
9812 |
$this->get_support_forum_url(),
|
9813 |
'wp-support-forum',
|
9814 |
null,
|
10320 |
$encrypted_site = clone $this->_site;
|
10321 |
$encrypted_site->plan = self::_encrypt_entity( $this->_site->plan );
|
10322 |
|
10323 |
+
$sites = self::get_all_sites( $this->_module_type );
|
10324 |
+
|
10325 |
+
if ( empty( $this->_storage->prev_user_id ) && $this->_user->id != $this->_site->user_id ) {
|
10326 |
+
/**
|
10327 |
+
* Store the current user ID as the previous user ID so that the previous user can be used
|
10328 |
+
* as the install's owner while the new owner's details are not yet available.
|
10329 |
+
*
|
10330 |
+
* This will be executed only in the `replica` site. For example, there are 2 sites, namely `original`
|
10331 |
+
* and `replica`, then an ownership change was initiated and completed in the `original`, the `replica`
|
10332 |
+
* will be using the previous user until it is updated again (e.g.: until the next clone of `original`
|
10333 |
+
* into `replica`.
|
10334 |
+
*
|
10335 |
+
* @author Leo Fajardo (@leorw)
|
10336 |
+
*/
|
10337 |
+
$this->_storage->prev_user_id = $sites[ $this->_slug ]->user_id;
|
10338 |
+
}
|
10339 |
+
|
10340 |
$sites[ $this->_slug ] = $encrypted_site;
|
10341 |
|
10342 |
$this->set_account_option( 'sites', $sites, $store );
|
10548 |
$this->do_action( 'account_email_verified', $user->email );
|
10549 |
|
10550 |
$this->_admin_notices->add(
|
10551 |
+
$this->get_text_inline( 'Your email has been successfully verified - you are AWESOME!', 'email-verified-message' ),
|
10552 |
+
$this->get_text_x_inline( 'Right on', 'a positive response', 'right-on' ) . '!',
|
10553 |
'success',
|
10554 |
// Make admin sticky if account menu item is invisible,
|
10555 |
// since the page will be auto redirected to the plugin's
|
10681 |
* @return FS_Plugin_Plan[]|object
|
10682 |
*/
|
10683 |
private function _fetch_plugin_plans() {
|
10684 |
+
$this->_logger->entrance();
|
10685 |
+
$api = $this->get_api_site_scope();
|
10686 |
|
10687 |
+
/**
|
10688 |
+
* @since 1.2.3 When running in DEV mode, retrieve pending plans as well.
|
10689 |
+
*/
|
10690 |
+
$result = $api->get( '/plans.json?show_pending=' . ( $this->has_secret_key() ? 'true' : 'false' ), true );
|
10691 |
|
10692 |
+
if ( $this->is_api_result_object( $result, 'plans' ) && is_array( $result->plans ) ) {
|
10693 |
+
for ( $i = 0, $len = count( $result->plans ); $i < $len; $i ++ ) {
|
10694 |
+
$result->plans[ $i ] = new FS_Plugin_Plan( $result->plans[ $i ] );
|
10695 |
+
}
|
10696 |
|
10697 |
+
$result = $result->plans;
|
10698 |
+
}
|
10699 |
|
10700 |
+
return $result;
|
10701 |
+
}
|
10702 |
|
10703 |
/**
|
10704 |
* @author Vova Feldman (@svovaf)
|
11083 |
}
|
11084 |
|
11085 |
$this->_admin_notices->add_sticky(
|
11086 |
+
sprintf(
|
11087 |
+
( FS_Plan_Manager::instance()->has_free_plan( $plans ) ?
|
11088 |
+
$this->get_text_inline( 'Your %s Add-on plan was successfully upgraded.', 'addon-successfully-upgraded-message' ) :
|
11089 |
+
/* translators: %s:product name, e.g. Facebook add-on was successfully... */
|
11090 |
+
$this->get_text_inline( '%s Add-on was successfully purchased.', 'addon-successfully-purchased-message' ) ),
|
11091 |
+
$addon->title
|
11092 |
+
) . ' ' . $this->get_latest_download_link(
|
11093 |
+
$this->get_text_inline( 'Download the latest version', 'download-latest-version' ),
|
11094 |
+
$addon_id
|
11095 |
+
),
|
|
|
|
|
|
|
|
|
|
|
|
|
11096 |
'addon_plan_upgraded_' . $addon->slug,
|
11097 |
+
$this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
|
11098 |
);
|
11099 |
}
|
11100 |
}
|
11139 |
if ( ! self::$_global_admin_notices->has_sticky( 'api_blocked' ) ) {
|
11140 |
self::$_global_admin_notices->add(
|
11141 |
sprintf(
|
11142 |
+
$this->get_text_x_inline( 'Your server is blocking the access to Freemius\' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s', '%1s - plugin title, %2s - API domain', 'server-blocking-access' ),
|
11143 |
$this->get_plugin_name(),
|
11144 |
'<a href="' . $api->get_url() . '" target="_blank">' . $api->get_url() . '</a>'
|
11145 |
+
) . '<br> ' . $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . var_export( $site->error, true ),
|
11146 |
+
$this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
|
11147 |
'error',
|
11148 |
$background,
|
11149 |
false,
|
11153 |
} else {
|
11154 |
// Authentication params are broken.
|
11155 |
$this->_admin_notices->add(
|
11156 |
+
$this->get_text_inline( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.', 'wrong-authentication-param-message' ),
|
11157 |
+
$this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
|
11158 |
'error'
|
11159 |
);
|
11160 |
}
|
11270 |
}
|
11271 |
}
|
11272 |
|
11273 |
+
$hmm_text = $this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...';
|
11274 |
+
|
11275 |
if ( $this->has_paid_plan() ) {
|
11276 |
switch ( $plan_change ) {
|
11277 |
case 'none':
|
11283 |
if ( $plan->is_free() ) {
|
11284 |
$this->_admin_notices->add(
|
11285 |
sprintf(
|
11286 |
+
$this->get_text_inline( 'It looks like you are still on the %s plan. If you did upgrade or change your plan, it\'s probably an issue on our side - sorry.', 'plan-did-not-change-message' ),
|
11287 |
+
'<i><b>' . $plan->title . ( $this->is_trial() ? ' ' . $this->get_text_x_inline( 'Trial', 'trial period', 'trial' ) : '' ) . '</b></i>'
|
11288 |
) . ' ' . sprintf(
|
11289 |
'<a href="%s">%s</a>',
|
11290 |
$this->contact_url(
|
11291 |
'bug',
|
11292 |
+
sprintf( $this->get_text_inline( 'I have upgraded my account but when I try to Sync the License, the plan remains %s.', 'plan-did-not-change-email-message' ),
|
11293 |
strtoupper( $plan->name )
|
11294 |
)
|
11295 |
),
|
11296 |
+
$this->get_text_inline( 'Please contact us here', 'contact-us-here' )
|
11297 |
),
|
11298 |
+
$hmm_text
|
11299 |
);
|
11300 |
}
|
11301 |
}
|
11303 |
case 'upgraded':
|
11304 |
$this->_admin_notices->add_sticky(
|
11305 |
sprintf(
|
11306 |
+
$this->get_text_inline( 'Your plan was successfully upgraded.', 'plan-upgraded-message' ),
|
11307 |
'<i>' . $this->get_plugin_name() . '</i>'
|
11308 |
) . $this->get_complete_upgrade_instructions(),
|
11309 |
'plan_upgraded',
|
11310 |
+
$this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
|
11311 |
);
|
11312 |
|
11313 |
$this->_admin_notices->remove_sticky( array(
|
11320 |
case 'changed':
|
11321 |
$this->_admin_notices->add_sticky(
|
11322 |
sprintf(
|
11323 |
+
$this->get_text_inline( 'Your plan was successfully changed to %s.', 'plan-changed-to-x-message' ),
|
11324 |
$this->_site->plan->title
|
11325 |
),
|
11326 |
'plan_changed'
|
11335 |
break;
|
11336 |
case 'downgraded':
|
11337 |
$this->_admin_notices->add_sticky(
|
11338 |
+
sprintf( $this->get_text_inline( 'Your license has expired. You can still continue using the free %s forever.', 'license-expired-blocking-message' ), $this->_module_type ),
|
11339 |
'license_expired',
|
11340 |
+
$hmm_text
|
11341 |
);
|
11342 |
$this->_admin_notices->remove_sticky( 'plan_upgraded' );
|
11343 |
break;
|
11344 |
case 'cancelled':
|
11345 |
$this->_admin_notices->add(
|
11346 |
+
$this->get_text_inline( 'Your license has been cancelled. If you think it\'s a mistake, please contact support.', 'license-cancelled' ) . ' ' .
|
11347 |
sprintf(
|
11348 |
'<a href="%s">%s</a>',
|
11349 |
$this->contact_url( 'bug' ),
|
11350 |
+
$this->get_text_inline( 'Please contact us here', 'contact-us-here' )
|
11351 |
),
|
11352 |
+
$hmm_text,
|
11353 |
'error'
|
11354 |
);
|
11355 |
$this->_admin_notices->remove_sticky( 'plan_upgraded' );
|
11356 |
break;
|
11357 |
case 'expired':
|
11358 |
$this->_admin_notices->add_sticky(
|
11359 |
+
sprintf( $this->get_text_inline( 'Your license has expired. You can still continue using all the %s features, but you\'ll need to renew your license to continue getting updates and support.', 'license-expired-non-blocking-message' ), $this->_site->plan->title ),
|
11360 |
'license_expired',
|
11361 |
+
$hmm_text
|
11362 |
);
|
11363 |
$this->_admin_notices->remove_sticky( 'plan_upgraded' );
|
11364 |
break;
|
11365 |
case 'trial_started':
|
11366 |
$this->_admin_notices->add_sticky(
|
11367 |
sprintf(
|
11368 |
+
$this->get_text_inline( 'Your trial has been successfully started.', 'trial-started-message' ),
|
11369 |
'<i>' . $this->get_plugin_name() . '</i>'
|
11370 |
) . $this->get_complete_upgrade_instructions( $this->_storage->trial_plan->title ),
|
11371 |
'trial_started',
|
11372 |
+
$this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
|
11373 |
);
|
11374 |
|
11375 |
$this->_admin_notices->remove_sticky( array(
|
11378 |
break;
|
11379 |
case 'trial_expired':
|
11380 |
$this->_admin_notices->add_sticky(
|
11381 |
+
$this->get_text_inline( 'Your trial has expired. You can still continue using all our free features.', 'trial-expired-message' ),
|
11382 |
'trial_expired',
|
11383 |
+
$hmm_text
|
11384 |
);
|
11385 |
$this->_admin_notices->remove_sticky( array(
|
11386 |
'trial_started',
|
11448 |
if ( ! $background ) {
|
11449 |
$this->_admin_notices->add( sprintf(
|
11450 |
'%s %s',
|
11451 |
+
$this->get_text_inline( 'It looks like the license could not be activated.', 'license-activation-failed-message' ),
|
11452 |
( is_object( $license ) && isset( $license->error ) ?
|
11453 |
$license->error->message :
|
11454 |
sprintf( '%s<br><code>%s</code>',
|
11455 |
+
$this->get_text_inline( 'Error received from the server:', 'server-error-message' ),
|
11456 |
var_export( $license, true )
|
11457 |
)
|
11458 |
)
|
11459 |
),
|
11460 |
+
$this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...',
|
11461 |
'error'
|
11462 |
);
|
11463 |
}
|
11464 |
|
11465 |
return;
|
11466 |
}
|
|
|
11467 |
$premium_license = new FS_Plugin_License( $license );
|
11468 |
|
11469 |
// Updated site plan.
|
11478 |
|
11479 |
if ( ! $background ) {
|
11480 |
$this->_admin_notices->add_sticky(
|
11481 |
+
$this->get_text_inline( 'Your license was successfully activated.', 'license-activated-message' ) .
|
11482 |
$this->get_complete_upgrade_instructions(),
|
11483 |
'license_activated',
|
11484 |
+
$this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
|
11485 |
);
|
11486 |
}
|
11487 |
|
11500 |
protected function _deactivate_license( $show_notice = true ) {
|
11501 |
$this->_logger->entrance();
|
11502 |
|
11503 |
+
$hmm_text = $this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...';
|
11504 |
+
|
11505 |
if ( ! is_object( $this->_license ) ) {
|
11506 |
$this->_admin_notices->add(
|
11507 |
+
sprintf( $this->get_text_inline( 'It looks like your site currently doesn\'t have an active license.', 'no-active-license-message' ), $this->_site->plan->title ),
|
11508 |
+
$hmm_text
|
11509 |
);
|
11510 |
|
11511 |
return;
|
11516 |
|
11517 |
if ( isset( $license->error ) ) {
|
11518 |
$this->_admin_notices->add(
|
11519 |
+
$this->get_text_inline( 'It looks like the license deactivation failed.', 'license-deactivation-failed-message' ) . '<br> ' .
|
11520 |
+
$this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . ' ' . var_export( $license->error, true ),
|
11521 |
+
$hmm_text,
|
11522 |
'error'
|
11523 |
);
|
11524 |
|
11543 |
|
11544 |
if ( $show_notice ) {
|
11545 |
$this->_admin_notices->add(
|
11546 |
+
sprintf( $this->get_text_inline( 'Your license was successfully deactivated, you are back to the %s plan.', 'license-deactivation-message' ), $this->_site->plan->title ),
|
11547 |
+
$this->get_text_inline( 'O.K', 'ok' )
|
11548 |
);
|
11549 |
}
|
11550 |
|
11592 |
$this->_admin_notices->remove_sticky( 'plan_upgraded' );
|
11593 |
|
11594 |
$this->_admin_notices->add(
|
11595 |
+
sprintf( $this->get_text_inline( 'Your plan was successfully downgraded. Your %s plan license will expire in %s.', 'plan-x-downgraded-message' ),
|
11596 |
$plan->title,
|
11597 |
human_time_diff( time(), strtotime( $this->_license->expiration ) )
|
11598 |
)
|
11602 |
$this->_store_site();
|
11603 |
} else {
|
11604 |
$this->_admin_notices->add(
|
11605 |
+
$this->get_text_inline( 'Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes.', 'plan-downgraded-failure-message' ),
|
11606 |
+
$this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
|
11607 |
'error'
|
11608 |
);
|
11609 |
}
|
11620 |
function start_trial( $plan_name = false ) {
|
11621 |
$this->_logger->entrance();
|
11622 |
|
11623 |
+
// Alias.
|
11624 |
+
$oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
|
11625 |
+
|
11626 |
if ( $this->is_trial() ) {
|
11627 |
// Already in trial mode.
|
11628 |
$this->_admin_notices->add(
|
11629 |
+
sprintf( $this->get_text_inline( 'You are already running the %s in a trial mode.', 'in-trial-mode' ), $this->_module_type ),
|
11630 |
+
$oops_text,
|
11631 |
'error'
|
11632 |
);
|
11633 |
|
11637 |
if ( $this->_site->is_trial_utilized() ) {
|
11638 |
// Trial was already utilized.
|
11639 |
$this->_admin_notices->add(
|
11640 |
+
$this->get_text_inline( 'You already utilized a trial before.', 'trial-utilized' ),
|
11641 |
+
$oops_text,
|
11642 |
'error'
|
11643 |
);
|
11644 |
|
11651 |
if ( false === $plan ) {
|
11652 |
// Plan doesn't exist.
|
11653 |
$this->_admin_notices->add(
|
11654 |
+
sprintf( $this->get_text_inline( 'Plan %s do not exist, therefore, can\'t start a trial.', 'trial-plan-x-not-exist' ), $plan_name ),
|
11655 |
+
$oops_text,
|
11656 |
'error'
|
11657 |
);
|
11658 |
|
11662 |
if ( ! $plan->has_trial() ) {
|
11663 |
// Plan doesn't exist.
|
11664 |
$this->_admin_notices->add(
|
11665 |
+
sprintf( $this->get_text_inline( 'Plan %s does not support a trial period.', 'plan-x-no-trial' ), $plan_name ),
|
11666 |
+
$oops_text,
|
11667 |
'error'
|
11668 |
);
|
11669 |
|
11673 |
if ( ! $this->has_trial_plan() ) {
|
11674 |
// None of the plans have a trial.
|
11675 |
$this->_admin_notices->add(
|
11676 |
+
sprintf( $this->get_text_inline( 'None of the %s\'s plans supports a trial period.', 'no-trials' ), $this->_module_type ),
|
11677 |
+
$oops_text,
|
11678 |
'error'
|
11679 |
);
|
11680 |
|
11692 |
if ( ! $this->is_api_result_entity( $plan ) ) {
|
11693 |
// Some API error while trying to start the trial.
|
11694 |
$this->_admin_notices->add(
|
11695 |
+
sprintf( $this->get_text_inline( 'Unexpected API error. Please contact the %s\'s author with the following error.', 'unexpected-api-error' ), $this->_module_type )
|
11696 |
. ' ' . var_export( $plan, true ),
|
11697 |
+
$oops_text,
|
11698 |
'error'
|
11699 |
);
|
11700 |
|
11718 |
private function _cancel_trial() {
|
11719 |
$this->_logger->entrance();
|
11720 |
|
11721 |
+
// Alias.
|
11722 |
+
$oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
|
11723 |
+
|
11724 |
if ( ! $this->is_trial() ) {
|
11725 |
$this->_admin_notices->add(
|
11726 |
+
$this->get_text_inline( 'It looks like you are not in trial mode anymore so there\'s nothing to cancel :)', 'trial-cancel-no-trial-message' ),
|
11727 |
+
$oops_text,
|
11728 |
'error'
|
11729 |
);
|
11730 |
|
11774 |
! $this->deactivate_premium_only_addon_without_license( true )
|
11775 |
) {
|
11776 |
$this->_admin_notices->add(
|
11777 |
+
sprintf( $this->get_text_inline( 'Your %s free trial was successfully cancelled.', 'trial-cancel-message' ), $this->_storage->trial_plan->title )
|
11778 |
);
|
11779 |
}
|
11780 |
|
11782 |
unset( $this->_storage->trial_plan );
|
11783 |
} else {
|
11784 |
$this->_admin_notices->add(
|
11785 |
+
$this->get_text_inline( 'Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes.', 'trial-cancel-failure-message' ),
|
11786 |
+
$oops_text,
|
11787 |
'error'
|
11788 |
);
|
11789 |
}
|
12020 |
if ( ! $background ) {
|
12021 |
$this->_admin_notices->add(
|
12022 |
sprintf(
|
12023 |
+
/* translators: %s: Numeric version number (e.g. '2.1.9' */
|
12024 |
+
$this->get_text_inline( 'Version %s was released.', 'version-x-released' ) . ' ' . $this->get_text_inline( 'Please download %s.', 'please-download-x' ),
|
12025 |
$update->version,
|
12026 |
sprintf(
|
12027 |
'<a href="%s" target="_blank">%s</a>',
|
12028 |
$this->get_account_url( 'download_latest' ),
|
12029 |
+
sprintf(
|
12030 |
+
/* translators: %s: plan name (e.g. latest "Professional" version) */
|
12031 |
+
$this->get_text_inline( 'the latest %s version here', 'latest-x-version' ),
|
12032 |
+
$this->_site->plan->title
|
12033 |
+
)
|
12034 |
)
|
12035 |
),
|
12036 |
+
$this->get_text_inline( 'New', 'new' ) . '!'
|
12037 |
);
|
12038 |
}
|
12039 |
} else if ( false === $new_version && ! $background ) {
|
12040 |
$this->_admin_notices->add(
|
12041 |
+
$this->get_text_inline( 'Seems like you got the latest release.', 'you-have-latest' ),
|
12042 |
+
$this->get_text_inline( 'You are all good!', 'you-are-good' )
|
12043 |
);
|
12044 |
}
|
12045 |
|
12305 |
|
12306 |
if ( ! isset( $result->error ) ) {
|
12307 |
$this->_admin_notices->add( sprintf(
|
12308 |
+
$this->get_text_inline( 'Verification mail was just sent to %s. If you can\'t find it after 5 min, please check your spam box.', 'verification-email-sent-message' ),
|
12309 |
sprintf( '<a href="mailto:%1s">%2s</a>', esc_url( $this->_user->email ), $this->_user->email )
|
12310 |
) );
|
12311 |
} else {
|
12393 |
$plugin_id = fs_request_get( 'plugin_id', $this->get_id() );
|
12394 |
$action = fs_get_action();
|
12395 |
|
12396 |
+
// Alias.
|
12397 |
+
$oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
|
12398 |
+
|
12399 |
switch ( $action ) {
|
12400 |
case 'delete_account':
|
12401 |
check_admin_referer( $action );
|
12450 |
|
12451 |
if ( $plugin_id == $this->get_id() ) {
|
12452 |
$this->_deactivate_license();
|
12453 |
+
|
12454 |
+
if ( $this->is_only_premium() ) {
|
12455 |
+
// Clear user and site.
|
12456 |
+
$this->_site = null;
|
12457 |
+
$this->_user = null;
|
12458 |
+
|
12459 |
+
fs_redirect( $this->get_activation_url() );
|
12460 |
+
}
|
12461 |
} else {
|
12462 |
if ( $this->is_addon_activated( $plugin_id ) ) {
|
12463 |
$fs_addon = self::get_instance_by_id( $plugin_id );
|
12480 |
$candidate_email = fs_request_get( 'candidate_email', '' );
|
12481 |
|
12482 |
if ( $this->init_change_owner( $candidate_email ) ) {
|
12483 |
+
$this->_admin_notices->add( sprintf( $this->get_text_inline( 'Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder.', 'change-owner-request-sent-x' ), '<b>' . $this->_user->email . '</b>' ) );
|
12484 |
}
|
12485 |
break;
|
12486 |
case 'owner_confirmed':
|
12487 |
$candidate_email = fs_request_get( 'candidate_email', '' );
|
12488 |
|
12489 |
+
$this->_admin_notices->add( sprintf( $this->get_text_inline( 'Thanks for confirming the ownership change. An email was just sent to %s for final approval.', 'change-owner-request_owner-confirmed' ), '<b>' . $candidate_email . '</b>' ) );
|
12490 |
break;
|
12491 |
case 'candidate_confirmed':
|
12492 |
if ( $this->complete_change_owner() ) {
|
12493 |
$this->_admin_notices->add_sticky(
|
12494 |
+
sprintf( $this->get_text_inline( '%s is the new owner of the account.', 'change-owner-request_candidate-confirmed' ), '<b>' . $this->_user->email . '</b>' ),
|
12495 |
'ownership_changed',
|
12496 |
+
$this->get_text_x_inline( 'Congrats', 'as congratulations', 'congrats' ) . '!'
|
12497 |
);
|
12498 |
} else {
|
12499 |
// @todo Handle failed ownership change message.
|
12513 |
switch ( $result->error->code ) {
|
12514 |
case 'user_exist':
|
12515 |
$this->_admin_notices->add(
|
12516 |
+
$this->get_text_inline( 'Sorry, we could not complete the email update. Another user with the same email is already registered.', 'user-exist-message' ) . ' ' .
|
12517 |
+
sprintf( $this->get_text_inline( 'If you would like to give up the ownership of the %s\'s account to %s click the Change Ownership button.', 'user-exist-message_ownership' ), $this->_module_type, '<b>' . $new_email . '</b>' ) .
|
12518 |
sprintf(
|
12519 |
'<a style="margin-left: 10px;" href="%s"><button class="button button-primary">%s ➜</button></a>',
|
12520 |
$this->get_account_url( 'change_owner', array(
|
12521 |
'state' => 'init',
|
12522 |
'candidate_email' => $new_email
|
12523 |
) ),
|
12524 |
+
$this->get_text_inline( 'Change Ownership', 'change-ownership' )
|
12525 |
),
|
12526 |
+
$oops_text,
|
12527 |
'error'
|
12528 |
);
|
12529 |
break;
|
12530 |
}
|
12531 |
} else {
|
12532 |
+
$this->_admin_notices->add( $this->get_text_inline( 'Your email was successfully updated. You should receive an email with confirmation instructions in few moments.', 'email-updated-message' ) );
|
12533 |
}
|
12534 |
|
12535 |
return;
|
12541 |
|
12542 |
if ( isset( $result->error ) ) {
|
12543 |
$this->_admin_notices->add(
|
12544 |
+
$this->get_text_inline( 'Please provide your full name.', 'name-update-failed-message' ),
|
12545 |
+
$oops_text,
|
12546 |
'error'
|
12547 |
);
|
12548 |
} else {
|
12549 |
+
$this->_admin_notices->add( $this->get_text_inline( 'Your name was successfully updated.', 'name-updated-message' ) );
|
12550 |
}
|
12551 |
|
12552 |
return;
|
12606 |
$this->do_action( 'account_property_edit', 'site', $site_property, $site_property_value );
|
12607 |
|
12608 |
$this->_admin_notices->add( sprintf(
|
12609 |
+
/* translators: %s: User's account property (e.g. email address, name) */
|
12610 |
+
$this->get_text_inline( 'You have successfully updated your %s.', 'x-updated' ),
|
12611 |
+
'<b>' . str_replace( '_', ' ', $p ) . '</b>'
|
12612 |
+
) );
|
12613 |
|
12614 |
return;
|
12615 |
}
|
12662 |
$this->do_action( 'account_page_load_before_departure' );
|
12663 |
}
|
12664 |
|
12665 |
+
/**
|
12666 |
+
* Renders the "Affiliation" page.
|
12667 |
+
*
|
12668 |
+
* @author Leo Fajardo (@leorw)
|
12669 |
+
* @since 1.2.3
|
12670 |
+
*/
|
12671 |
+
function _affiliation_page_render() {
|
12672 |
+
$this->_logger->entrance();
|
12673 |
+
|
12674 |
+
fs_enqueue_local_style( 'fs_affiliation', '/admin/affiliation.css' );
|
12675 |
+
|
12676 |
+
$vars = array( 'id' => $this->_module_id );
|
12677 |
+
echo $this->apply_filters( "/forms/affiliation.php", fs_get_template( '/forms/affiliation.php', $vars ) );
|
12678 |
+
}
|
12679 |
+
|
12680 |
+
|
12681 |
/**
|
12682 |
* Render account page.
|
12683 |
*
|
12688 |
$this->_logger->entrance();
|
12689 |
|
12690 |
$template = 'account.php';
|
12691 |
+
$vars = array( 'id' => $this->_module_id );
|
|
|
|
|
|
|
|
|
12692 |
|
12693 |
/**
|
12694 |
* Added filter to the template to allow developers wrapping the template
|
12745 |
|
12746 |
if ( ! $this->is_registered() && $this->is_org_repo_compliant() ) {
|
12747 |
$this->_admin_notices->add(
|
12748 |
+
sprintf( $this->get_text_inline( 'Just letting you know that the add-ons information of %s is being pulled from an external server.', 'addons-info-external-message' ), '<b>' . $this->get_plugin_name() . '</b>' ),
|
12749 |
+
$this->get_text_x_inline( 'Heads up', 'advance notice of something that will need attention.', 'heads-up' ),
|
12750 |
'update-nag'
|
12751 |
);
|
12752 |
}
|
13064 |
$trial_period = $this->_trial_days;
|
13065 |
$require_payment = $this->_is_trial_require_payment;
|
13066 |
$trial_url = $this->get_trial_url();
|
13067 |
+
$plans_string = strtolower( $this->get_text_inline( 'Awesome', 'awesome' ) );
|
13068 |
|
13069 |
if ( $this->is_registered() ) {
|
13070 |
// If opted-in, override trial with up to date data from API.
|
13104 |
}
|
13105 |
|
13106 |
$message = sprintf(
|
13107 |
+
$this->get_text_x_inline( 'Hey', 'exclamation', 'hey' ) . '! ' . $this->get_text_inline( 'How do you like %s so far? Test all our %s premium features with a %d-day free trial.', 'trial-x-promotion-message' ),
|
13108 |
sprintf( '<b>%s</b>', $this->get_plugin_name() ),
|
13109 |
$plans_string,
|
13110 |
$trial_period
|
13112 |
|
13113 |
// "No Credit-Card Required" or "No Commitment for N Days".
|
13114 |
$cc_string = $require_payment ?
|
13115 |
+
sprintf( $this->get_text_inline( 'No commitment for %s days - cancel anytime!', 'no-commitment-for-x-days' ), $trial_period ) :
|
13116 |
+
$this->get_text_inline( 'No credit card required', 'no-cc-required' ) . '!';
|
13117 |
|
13118 |
|
13119 |
// Start trial button.
|
13120 |
$button = ' ' . sprintf(
|
13121 |
'<a style="margin-left: 10px; vertical-align: super;" href="%s"><button class="button button-primary">%s ➜</button></a>',
|
13122 |
$trial_url,
|
13123 |
+
$this->get_text_x_inline( 'Start free trial', 'call to action', 'start-free-trial' )
|
13124 |
);
|
13125 |
|
13126 |
$this->_admin_notices->add_sticky(
|
13135 |
return true;
|
13136 |
}
|
13137 |
|
13138 |
+
/**
|
13139 |
+
* Lets users/customers know that the product has an affiliate program.
|
13140 |
+
*
|
13141 |
+
* @author Leo Fajardo (@leorw)
|
13142 |
+
* @since 1.2.2.11
|
13143 |
+
*
|
13144 |
+
* @return bool Returns true if the notice has been added.
|
13145 |
+
*/
|
13146 |
+
function _add_affiliate_program_notice() {
|
13147 |
+
if ( ! $this->is_user_admin() ) {
|
13148 |
+
return false;
|
13149 |
+
}
|
13150 |
+
|
13151 |
+
if ( ! $this->is_user_in_admin() ) {
|
13152 |
+
return false;
|
13153 |
+
}
|
13154 |
+
|
13155 |
+
// Check if the notice is already shown.
|
13156 |
+
if ( $this->_admin_notices->has_sticky( 'affiliate_program' ) ) {
|
13157 |
+
return false;
|
13158 |
+
}
|
13159 |
+
|
13160 |
+
if (
|
13161 |
+
// Product has no affiliate program.
|
13162 |
+
! $this->has_affiliate_program() ||
|
13163 |
+
// User is already an affiliate.
|
13164 |
+
is_object( $this->affiliate ) ||
|
13165 |
+
// User has applied for an affiliate account.
|
13166 |
+
! empty( $this->_storage->affiliate_application_data ) ) {
|
13167 |
+
return false;
|
13168 |
+
}
|
13169 |
+
|
13170 |
+
if ( ! $this->apply_filters( 'show_affiliate_program_notice', true ) ) {
|
13171 |
+
// Developer explicitly asked not to show the notice about the affiliate program.
|
13172 |
+
return false;
|
13173 |
+
}
|
13174 |
+
|
13175 |
+
if ( $this->is_activation_mode() || $this->is_pending_activation() ) {
|
13176 |
+
// If not yet opted in/skipped, or pending activation, don't show the notice.
|
13177 |
+
return false;
|
13178 |
+
}
|
13179 |
+
|
13180 |
+
$last_time_notice_was_shown = $this->_storage->get( 'affiliate_program_notice_shown', false );
|
13181 |
+
$was_notice_shown_before = ( false !== $last_time_notice_was_shown );
|
13182 |
+
|
13183 |
+
/**
|
13184 |
+
* Do not show the notice if it was already shown before or less than 30 days have passed since the initial
|
13185 |
+
* activation with FS.
|
13186 |
+
*/
|
13187 |
+
if ( $was_notice_shown_before ||
|
13188 |
+
$this->_storage->install_timestamp > ( time() - ( WP_FS__TIME_24_HOURS_IN_SEC * 30 ) )
|
13189 |
+
) {
|
13190 |
+
return false;
|
13191 |
+
}
|
13192 |
+
|
13193 |
+
if ( ! $this->is_paying() &&
|
13194 |
+
FS_Plugin::AFFILIATE_MODERATION_CUSTOMERS == $this->_plugin->affiliate_moderation ) {
|
13195 |
+
// If the user is not a customer and the affiliate program is only for customers, don't show the notice.
|
13196 |
+
return false;
|
13197 |
+
}
|
13198 |
+
|
13199 |
+
$message = sprintf(
|
13200 |
+
$this->get_text_inline( 'Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!', 'become-an-ambassador-admin-notice' ),
|
13201 |
+
sprintf( '<strong>%s</strong>', $this->get_plugin_name() ),
|
13202 |
+
$this->get_module_label( true )
|
13203 |
+
);
|
13204 |
+
|
13205 |
+
// HTML code for the "Learn more..." button.
|
13206 |
+
$button = ' ' . sprintf(
|
13207 |
+
'<a style="display: block; margin-top: 10px;" href="%s"><button class="button button-primary">%s ➜</button></a>',
|
13208 |
+
$this->_get_admin_page_url( 'affiliation' ),
|
13209 |
+
$this->get_text_inline( 'Learn more', 'learn-more' ) . '...'
|
13210 |
+
);
|
13211 |
+
|
13212 |
+
$this->_admin_notices->add_sticky(
|
13213 |
+
$this->apply_filters( 'affiliate_program_notice', "{$message} {$button}" ),
|
13214 |
+
'affiliate_program',
|
13215 |
+
'',
|
13216 |
+
'promotion'
|
13217 |
+
);
|
13218 |
+
|
13219 |
+
$this->_storage->affiliate_program_notice_shown = WP_FS__SCRIPT_START_TIME;
|
13220 |
+
|
13221 |
+
return true;
|
13222 |
+
}
|
13223 |
+
|
13224 |
/**
|
13225 |
* @author Vova Feldman (@svovaf)
|
13226 |
* @since 1.2.1.5
|
13323 |
if ( $this->is_registered() ) {
|
13324 |
if ( ! $this->is_paying() && $this->has_paid_plan() ) {
|
13325 |
$this->add_plugin_action_link(
|
13326 |
+
$this->get_text_inline( 'Upgrade', 'upgrade' ),
|
13327 |
$this->get_upgrade_url(),
|
13328 |
false,
|
13329 |
7,
|
13333 |
|
13334 |
if ( $this->has_addons() ) {
|
13335 |
$this->add_plugin_action_link(
|
13336 |
+
$this->get_text_inline( 'Add-Ons', 'add-ons' ),
|
13337 |
$this->_get_admin_page_url( 'addons' ),
|
13338 |
false,
|
13339 |
9,
|
13361 |
add_action( 'admin_footer', array( &$this, '_add_license_activation_dialog_box' ) );
|
13362 |
}
|
13363 |
|
13364 |
+
$link_text = $this->is_free_plan() ?
|
13365 |
+
$this->get_text_inline( 'Activate License', 'activate-license' ) :
|
13366 |
+
$this->get_text_inline( 'Change License', 'change-license' );
|
|
|
|
|
13367 |
|
13368 |
$this->add_plugin_action_link(
|
13369 |
$link_text,
|
13424 |
|
13425 |
if ( $this->is_registered() ) {
|
13426 |
if ( $this->is_tracking_allowed() ) {
|
13427 |
+
$link_text_id = $this->get_text_inline( 'Opt Out', 'opt-out' );
|
13428 |
} else {
|
13429 |
+
$link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
|
13430 |
}
|
13431 |
|
13432 |
add_action( 'admin_footer', array( &$this, '_add_optout_dialog' ) );
|
13433 |
} else {
|
13434 |
+
$link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
|
13435 |
|
13436 |
$params = ! $this->is_anonymous() ?
|
13437 |
array() :
|
13445 |
|
13446 |
if ( $this->is_plugin() && self::is_plugins_page() ) {
|
13447 |
$this->add_plugin_action_link(
|
13448 |
+
$link_text_id,
|
13449 |
$url,
|
13450 |
false,
|
13451 |
13,
|
13614 |
|
13615 |
// @since 1.2.1.5 The free version is auto deactivated.
|
13616 |
$deactivation_step = version_compare( $this->version, '1.2.1.5', '<' ) ?
|
13617 |
+
( '<li>' . $this->esc_html_inline( 'Deactivate the free version', 'deactivate-free-version' ) . '.</li>' ) :
|
13618 |
'';
|
13619 |
|
13620 |
return sprintf(
|
13621 |
' %s: <ol><li>%s.</li>%s<li>%s (<a href="%s" target="_blank">%s</a>).</li></ol>',
|
13622 |
+
$this->get_text_inline( 'Please follow these steps to complete the upgrade', 'follow-steps-to-complete-upgrade' ),
|
13623 |
$this->get_latest_download_link( sprintf(
|
13624 |
+
/* translators: %s: Plan title */
|
13625 |
+
$this->get_text_inline( 'Download the latest %s version', 'download-latest-x-version' ),
|
13626 |
$plan_title
|
13627 |
) ),
|
13628 |
$deactivation_step,
|
13629 |
+
$this->get_text_inline( 'Upload and activate the downloaded version', 'upload-and-activate' ),
|
13630 |
'//bit.ly/upload-wp-' . $this->_module_type . 's',
|
13631 |
+
$this->get_text_inline( 'How to upload and activate?', 'howto-upload-activate' )
|
13632 |
);
|
13633 |
}
|
13634 |
|
13644 |
return fs_text( $key, $this->_slug );
|
13645 |
}
|
13646 |
|
13647 |
+
/**
|
13648 |
+
* @author Vova Feldman (@svovaf)
|
13649 |
+
* @since 1.2.3
|
13650 |
+
*
|
13651 |
+
* @param string $text Translatable string.
|
13652 |
+
* @param string $key String key for overrides.
|
13653 |
+
*
|
13654 |
+
* @return string
|
13655 |
+
*/
|
13656 |
+
function get_text_inline( $text, $key = '' ) {
|
13657 |
+
return _fs_text_inline( $text, $key, $this->_slug );
|
13658 |
+
}
|
13659 |
+
|
13660 |
+
/**
|
13661 |
+
* @author Vova Feldman (@svovaf)
|
13662 |
+
* @since 1.2.3
|
13663 |
+
*
|
13664 |
+
* @param string $text Translatable string.
|
13665 |
+
* @param string $context Context information for the translators.
|
13666 |
+
* @param string $key String key for overrides.
|
13667 |
+
*
|
13668 |
+
* @return string
|
13669 |
+
*/
|
13670 |
+
function get_text_x_inline( $text, $context, $key ) {
|
13671 |
+
return _fs_text_x_inline( $text, $context, $key, $this->_slug );
|
13672 |
+
}
|
13673 |
+
|
13674 |
+
/**
|
13675 |
+
* @author Vova Feldman (@svovaf)
|
13676 |
+
* @since 1.2.3
|
13677 |
+
*
|
13678 |
+
* @param string $text Translatable string.
|
13679 |
+
* @param string $key String key for overrides.
|
13680 |
+
*
|
13681 |
+
* @return string
|
13682 |
+
*/
|
13683 |
+
function esc_html_inline( $text, $key ) {
|
13684 |
+
return esc_html( _fs_text_inline( $text, $key, $this->_slug ) );
|
13685 |
+
}
|
13686 |
+
|
13687 |
#----------------------------------------------------------------------------------
|
13688 |
#region Versioning
|
13689 |
#----------------------------------------------------------------------------------
|
13787 |
if ( ! $this->is_registered() ) {
|
13788 |
// Not registered.
|
13789 |
self::shoot_ajax_failure( array(
|
13790 |
+
'message' => $this->get_text_inline( 'Auto installation only works for opted-in users.', 'auto-install-error-not-opted-in' ),
|
13791 |
'code' => 'premium_installed',
|
13792 |
) );
|
13793 |
}
|
13797 |
if ( ! FS_Plugin::is_valid_id( $plugin_id ) ) {
|
13798 |
// Invalid ID.
|
13799 |
self::shoot_ajax_failure( array(
|
13800 |
+
'message' => $this->get_text_inline( 'Invalid module ID.', 'auto-install-error-invalid-id' ),
|
13801 |
'code' => 'invalid_module_id',
|
13802 |
) );
|
13803 |
}
|
13806 |
if ( $this->is_premium() ) {
|
13807 |
// Already using the premium code version.
|
13808 |
self::shoot_ajax_failure( array(
|
13809 |
+
'message' => $this->get_text_inline( 'Premium version already active.', 'auto-install-error-premium-activated' ),
|
13810 |
'code' => 'premium_installed',
|
13811 |
) );
|
13812 |
}
|
13813 |
if ( ! $this->can_use_premium_code() ) {
|
13814 |
// Don't have access to the premium code.
|
13815 |
self::shoot_ajax_failure( array(
|
13816 |
+
'message' => $this->get_text_inline( 'You do not have a valid license to access the premium version.', 'auto-install-error-invalid-license' ),
|
13817 |
'code' => 'invalid_license',
|
13818 |
) );
|
13819 |
}
|
13820 |
if ( ! $this->has_release_on_freemius() ) {
|
13821 |
// Plugin is a serviceware, no premium code version.
|
13822 |
self::shoot_ajax_failure( array(
|
13823 |
+
'message' => $this->get_text_inline( 'Plugin is a "Serviceware" which means it does not have a premium code version.', 'auto-install-error-serviceware' ),
|
13824 |
'code' => 'premium_version_missing',
|
13825 |
) );
|
13826 |
}
|
13830 |
if ( ! is_object( $addon ) ) {
|
13831 |
// Invalid add-on ID.
|
13832 |
self::shoot_ajax_failure( array(
|
13833 |
+
'message' => $this->get_text_inline( 'Invalid module ID.', 'auto-install-error-invalid-id' ),
|
13834 |
'code' => 'invalid_module_id',
|
13835 |
) );
|
13836 |
}
|
13838 |
if ( $this->is_addon_activated( $plugin_id, true ) ) {
|
13839 |
// Premium add-on version is already activated.
|
13840 |
self::shoot_ajax_failure( array(
|
13841 |
+
'message' => $this->get_text_inline( 'Premium add-on version already installed.', 'auto-install-error-premium-addon-activated' ),
|
13842 |
'code' => 'premium_installed',
|
13843 |
) );
|
13844 |
}
|
14183 |
require_once WP_FS__DIR_INCLUDES . '/customizer/class-fs-customizer-upsell-control.php';
|
14184 |
|
14185 |
$customizer->add_section( 'freemius_upsell', array(
|
14186 |
+
'title' => '★ ' . $this->get_text_inline( 'View paid features', 'view-paid-features' ),
|
14187 |
'priority' => 1,
|
14188 |
) );
|
14189 |
$customizer->add_setting( 'freemius_upsell', array(
|
14301 |
}
|
14302 |
|
14303 |
#endregion
|
14304 |
+
}
|
freemius/includes/class-fs-plugin-updater.php
CHANGED
@@ -128,7 +128,7 @@
|
|
128 |
$plugin_update_row = preg_replace(
|
129 |
'/(\<div.+>)(.+)(\<a.+\<a.+)\<\/div\>/is',
|
130 |
'$1 $2 ' . sprintf(
|
131 |
-
$this->_fs->
|
132 |
'<a href="' . $this->_fs->pricing_url() . '">', '</a>',
|
133 |
$r->new_version ) .
|
134 |
'$4',
|
@@ -355,7 +355,7 @@ if ( !isset($info->error) ) {
|
|
355 |
$data->version = $this->_fs->get_plugin_version();
|
356 |
} else {
|
357 |
if ( $is_addon ) {
|
358 |
-
$data->name = $addon->title . ' ' . $this->_fs->
|
359 |
$data->slug = $addon->slug;
|
360 |
$data->url = WP_FS__ADDRESS;
|
361 |
$data->package = $new_version->url;
|
@@ -487,7 +487,7 @@ if ( !isset($info->error) ) {
|
|
487 |
if ( ! empty( $plugin_id ) && ! FS_Plugin::is_valid_id( $plugin_id ) ) {
|
488 |
// Invalid plugin ID.
|
489 |
return array(
|
490 |
-
'message' => $this->_fs->
|
491 |
'code' => 'invalid_module_id',
|
492 |
);
|
493 |
}
|
@@ -501,29 +501,27 @@ if ( !isset($info->error) ) {
|
|
501 |
if ( ! is_object( $addon ) ) {
|
502 |
// Invalid add-on ID.
|
503 |
return array(
|
504 |
-
'message' => $this->_fs->
|
505 |
'code' => 'invalid_module_id',
|
506 |
);
|
507 |
}
|
508 |
|
509 |
$slug = $addon->slug;
|
510 |
-
$title = $addon->title . ' ' . $this->_fs->
|
511 |
|
512 |
$is_addon = true;
|
513 |
} else {
|
514 |
$slug = $this->_fs->get_slug();
|
515 |
$title = $this->_fs->get_plugin_title() .
|
516 |
-
( $this->_fs->is_addon() ? ' ' . $this->_fs->
|
517 |
}
|
518 |
|
519 |
if ( $this->is_premium_plugin_active( $plugin_id ) ) {
|
520 |
// Premium version already activated.
|
521 |
return array(
|
522 |
-
'message' => $
|
523 |
-
|
524 |
-
|
525 |
-
'auto-install-error-premium-activated'
|
526 |
-
),
|
527 |
'code' => 'premium_installed',
|
528 |
);
|
529 |
}
|
@@ -552,7 +550,7 @@ if ( !isset($info->error) ) {
|
|
552 |
|
553 |
$skin_args = array(
|
554 |
'type' => 'web',
|
555 |
-
'title' => sprintf( $this->_fs->
|
556 |
'url' => esc_url_raw( $install_url ),
|
557 |
'nonce' => 'install-plugin_' . $slug,
|
558 |
'plugin' => '',
|
@@ -593,7 +591,7 @@ if ( !isset($info->error) ) {
|
|
593 |
global $wp_filesystem;
|
594 |
|
595 |
$error_code = 'unable_to_connect_to_filesystem';
|
596 |
-
$error_message = $this->_fs->
|
597 |
|
598 |
// Pass through the error from WP_Filesystem if one was raised.
|
599 |
if ( $wp_filesystem instanceof WP_Filesystem_Base &&
|
@@ -699,7 +697,7 @@ if ( !isset($info->error) ) {
|
|
699 |
} else {
|
700 |
return new WP_Error(
|
701 |
'rename_failed',
|
702 |
-
$this->_fs->
|
703 |
array(
|
704 |
'found' => $subdir_name,
|
705 |
'expected' => $desired_slug
|
128 |
$plugin_update_row = preg_replace(
|
129 |
'/(\<div.+>)(.+)(\<a.+\<a.+)\<\/div\>/is',
|
130 |
'$1 $2 ' . sprintf(
|
131 |
+
$this->_fs->get_text_inline( '%sRenew your license now%s to access version %s features and support.', 'renew-license-now' ),
|
132 |
'<a href="' . $this->_fs->pricing_url() . '">', '</a>',
|
133 |
$r->new_version ) .
|
134 |
'$4',
|
355 |
$data->version = $this->_fs->get_plugin_version();
|
356 |
} else {
|
357 |
if ( $is_addon ) {
|
358 |
+
$data->name = $addon->title . ' ' . $this->_fs->get_text_inline( 'Add-On', 'addon' );
|
359 |
$data->slug = $addon->slug;
|
360 |
$data->url = WP_FS__ADDRESS;
|
361 |
$data->package = $new_version->url;
|
487 |
if ( ! empty( $plugin_id ) && ! FS_Plugin::is_valid_id( $plugin_id ) ) {
|
488 |
// Invalid plugin ID.
|
489 |
return array(
|
490 |
+
'message' => $this->_fs->get_text_inline( 'Invalid module ID.', 'auto-install-error-invalid-id' ),
|
491 |
'code' => 'invalid_module_id',
|
492 |
);
|
493 |
}
|
501 |
if ( ! is_object( $addon ) ) {
|
502 |
// Invalid add-on ID.
|
503 |
return array(
|
504 |
+
'message' => $this->_fs->get_text_inline( 'Invalid module ID.', 'auto-install-error-invalid-id' ),
|
505 |
'code' => 'invalid_module_id',
|
506 |
);
|
507 |
}
|
508 |
|
509 |
$slug = $addon->slug;
|
510 |
+
$title = $addon->title . ' ' . $this->_fs->get_text_inline( 'Add-On', 'addon' );
|
511 |
|
512 |
$is_addon = true;
|
513 |
} else {
|
514 |
$slug = $this->_fs->get_slug();
|
515 |
$title = $this->_fs->get_plugin_title() .
|
516 |
+
( $this->_fs->is_addon() ? ' ' . $this->_fs->get_text_inline( 'Add-On', 'addon' ) : '' );
|
517 |
}
|
518 |
|
519 |
if ( $this->is_premium_plugin_active( $plugin_id ) ) {
|
520 |
// Premium version already activated.
|
521 |
return array(
|
522 |
+
'message' => $is_addon ?
|
523 |
+
$this->_fs->get_text_inline( 'Premium add-on version already installed.', 'auto-install-error-premium-addon-activated' ) :
|
524 |
+
$this->_fs->get_text_inline( 'Premium version already active.', 'auto-install-error-premium-activated' ),
|
|
|
|
|
525 |
'code' => 'premium_installed',
|
526 |
);
|
527 |
}
|
550 |
|
551 |
$skin_args = array(
|
552 |
'type' => 'web',
|
553 |
+
'title' => sprintf( $this->_fs->get_text_inline( 'Installing plugin: %s', 'installing-plugin-x' ), $title ),
|
554 |
'url' => esc_url_raw( $install_url ),
|
555 |
'nonce' => 'install-plugin_' . $slug,
|
556 |
'plugin' => '',
|
591 |
global $wp_filesystem;
|
592 |
|
593 |
$error_code = 'unable_to_connect_to_filesystem';
|
594 |
+
$error_message = $this->_fs->get_text_inline( 'Unable to connect to the filesystem. Please confirm your credentials.' );
|
595 |
|
596 |
// Pass through the error from WP_Filesystem if one was raised.
|
597 |
if ( $wp_filesystem instanceof WP_Filesystem_Base &&
|
697 |
} else {
|
698 |
return new WP_Error(
|
699 |
'rename_failed',
|
700 |
+
$this->_fs->get_text_inline( 'The remote plugin package does not contain a folder with the desired slug and renaming did not work.', 'module-package-rename-failure' ),
|
701 |
array(
|
702 |
'found' => $subdir_name,
|
703 |
'expected' => $desired_slug
|
freemius/includes/customizer/class-fs-customizer-support-section.php
CHANGED
@@ -52,19 +52,19 @@
|
|
52 |
$json['theme_title'] = $this->fs->get_plugin_name();
|
53 |
|
54 |
if ( $is_contact_visible && $is_support_visible ) {
|
55 |
-
$json['theme_title'] .= ' ' . $this->fs->
|
56 |
}
|
57 |
|
58 |
if ( $is_contact_visible ) {
|
59 |
$json['contact'] = array(
|
60 |
-
'label' => $this->fs->
|
61 |
'url' => $this->fs->contact_url(),
|
62 |
);
|
63 |
}
|
64 |
|
65 |
if ( $is_support_visible ) {
|
66 |
$json['support'] = array(
|
67 |
-
'label' => $this->fs->
|
68 |
'url' => $this->fs->get_support_forum_url()
|
69 |
);
|
70 |
}
|
52 |
$json['theme_title'] = $this->fs->get_plugin_name();
|
53 |
|
54 |
if ( $is_contact_visible && $is_support_visible ) {
|
55 |
+
$json['theme_title'] .= ' ' . $this->fs->get_text_inline( 'Support', 'support' );
|
56 |
}
|
57 |
|
58 |
if ( $is_contact_visible ) {
|
59 |
$json['contact'] = array(
|
60 |
+
'label' => $this->fs->get_text_inline( 'Contact Us', 'contact-us' ),
|
61 |
'url' => $this->fs->contact_url(),
|
62 |
);
|
63 |
}
|
64 |
|
65 |
if ( $is_support_visible ) {
|
66 |
$json['support'] = array(
|
67 |
+
'label' => $this->fs->get_text_inline( 'Support Forum', 'support-forum' ),
|
68 |
'url' => $this->fs->get_support_forum_url()
|
69 |
);
|
70 |
}
|
freemius/includes/customizer/class-fs-customizer-upsell-control.php
CHANGED
@@ -49,7 +49,7 @@
|
|
49 |
* Json conversion
|
50 |
*/
|
51 |
public function to_json() {
|
52 |
-
$pricing_cta = esc_html( $this->fs->
|
53 |
|
54 |
parent::to_json();
|
55 |
|
@@ -103,7 +103,7 @@
|
|
103 |
$this->json['plans'] = $pricing->plans;
|
104 |
|
105 |
$this->json['strings'] = array(
|
106 |
-
'plan' => $this->fs->
|
107 |
);
|
108 |
}
|
109 |
|
49 |
* Json conversion
|
50 |
*/
|
51 |
public function to_json() {
|
52 |
+
$pricing_cta = esc_html( $this->fs->get_pricing_cta_label() ) . ' ' . ( is_rtl() ? '←' : '➤' );
|
53 |
|
54 |
parent::to_json();
|
55 |
|
103 |
$this->json['plans'] = $pricing->plans;
|
104 |
|
105 |
$this->json['strings'] = array(
|
106 |
+
'plan' => $this->fs->get_text_x_inline( 'Plan', 'as product pricing plan', 'plan' ),
|
107 |
);
|
108 |
}
|
109 |
|
freemius/includes/customizer/index.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
3 |
+
// Hide file structure from users on unprotected servers.
|
freemius/includes/debug/class-fs-debug-bar-panel.php
CHANGED
@@ -45,7 +45,7 @@
|
|
45 |
$total_time += $l['total'];
|
46 |
}
|
47 |
|
48 |
-
return number_format( 100 * $total_time, 2 ) . ' ' .
|
49 |
}
|
50 |
|
51 |
function render() {
|
45 |
$total_time += $l['total'];
|
46 |
}
|
47 |
|
48 |
+
return number_format( 100 * $total_time, 2 ) . ' ' . fs_text_x_inline( 'ms', 'milliseconds' );
|
49 |
}
|
50 |
|
51 |
function render() {
|
freemius/includes/debug/debug-bar-start.php
CHANGED
@@ -38,8 +38,8 @@
|
|
38 |
require_once dirname( __FILE__ ) . '/class-fs-debug-bar-panel.php';
|
39 |
$statuses[] = array(
|
40 |
'fs_api_requests',
|
41 |
-
|
42 |
-
Freemius_Debug_Bar_Panel::requests_count() . ' ' .
|
43 |
' (' . Freemius_Debug_Bar_Panel::total_time() . ')'
|
44 |
);
|
45 |
}
|
38 |
require_once dirname( __FILE__ ) . '/class-fs-debug-bar-panel.php';
|
39 |
$statuses[] = array(
|
40 |
'fs_api_requests',
|
41 |
+
fs_text_inline( 'Freemius API' ),
|
42 |
+
Freemius_Debug_Bar_Panel::requests_count() . ' ' . fs_text_inline( 'Requests' ) .
|
43 |
' (' . Freemius_Debug_Bar_Panel::total_time() . ')'
|
44 |
);
|
45 |
}
|
freemius/includes/entities/class-fs-affiliate-terms.php
ADDED
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
6 |
+
* @since 1.2.3
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
class FS_AffiliateTerms extends FS_Scope_Entity {
|
14 |
+
|
15 |
+
#region Properties
|
16 |
+
|
17 |
+
/**
|
18 |
+
* @var bool
|
19 |
+
*/
|
20 |
+
public $is_active;
|
21 |
+
/**
|
22 |
+
* @var string Enum: `affiliation` or `rewards`. Defaults to `affiliation`.
|
23 |
+
*/
|
24 |
+
public $type;
|
25 |
+
/**
|
26 |
+
* @var string Enum: `payout` or `credit`. Defaults to `payout`.
|
27 |
+
*/
|
28 |
+
public $reward_type;
|
29 |
+
/**
|
30 |
+
* If `first`, the referral will be attributed to the first visited source containing the affiliation link that
|
31 |
+
* was clicked.
|
32 |
+
*
|
33 |
+
* @var string Enum: `first` or `last`. Defaults to `first`.
|
34 |
+
*/
|
35 |
+
public $referral_attribution;
|
36 |
+
/**
|
37 |
+
* @var int Defaults to `30`, `0` for session cookie, and `null` for endless cookie (until cookies are cleaned).
|
38 |
+
*/
|
39 |
+
public $cookie_days;
|
40 |
+
/**
|
41 |
+
* @var int
|
42 |
+
*/
|
43 |
+
public $commission;
|
44 |
+
/**
|
45 |
+
* @var string Enum: `percentage` or `dollar`. Defaults to `percentage`.
|
46 |
+
*/
|
47 |
+
public $commission_type;
|
48 |
+
/**
|
49 |
+
* @var null|int Defaults to `0` (affiliate only on first payment). `null` for commission for all renewals. If
|
50 |
+
* greater than `0`, affiliate will get paid for all renewals for `commission_renewals_days` days after
|
51 |
+
* the initial upgrade/purchase.
|
52 |
+
*/
|
53 |
+
public $commission_renewals_days;
|
54 |
+
/**
|
55 |
+
* @var int Only cents and no percentage. In US cents, e.g.: 100 = $1.00. Defaults to `null`.
|
56 |
+
*/
|
57 |
+
public $install_commission;
|
58 |
+
/**
|
59 |
+
* @var string Required default target link, e.g.: pricing page.
|
60 |
+
*/
|
61 |
+
public $default_url;
|
62 |
+
/**
|
63 |
+
* @var string One of the following: 'all', 'new_customer', 'new_user'.
|
64 |
+
* If 'all' - reward for any user type.
|
65 |
+
* If 'new_customer' - reward only for new customers.
|
66 |
+
* If 'new_user' - reward only for new users.
|
67 |
+
*/
|
68 |
+
public $reward_customer_type;
|
69 |
+
/**
|
70 |
+
* @var int Defaults to `0` (affiliate only on directly affiliated links). `null` if an affiliate will get
|
71 |
+
* paid for all customers' lifetime payments. If greater than `0`, an affiliate will get paid for all
|
72 |
+
* customer payments for `future_payments_days` days after the initial payment.
|
73 |
+
*/
|
74 |
+
public $future_payments_days;
|
75 |
+
/**
|
76 |
+
* @var bool If `true`, allow referrals from social sites.
|
77 |
+
*/
|
78 |
+
public $is_social_allowed;
|
79 |
+
/**
|
80 |
+
* @var bool If `true`, allow conversions without HTTP referrer header at all.
|
81 |
+
*/
|
82 |
+
public $is_app_allowed;
|
83 |
+
/**
|
84 |
+
* @var bool If `true`, allow referrals from any site.
|
85 |
+
*/
|
86 |
+
public $is_any_site_allowed;
|
87 |
+
|
88 |
+
#endregion Properties
|
89 |
+
|
90 |
+
/**
|
91 |
+
* @author Leo Fajardo (@leorw)
|
92 |
+
*
|
93 |
+
* @return string
|
94 |
+
*/
|
95 |
+
function get_formatted_commission()
|
96 |
+
{
|
97 |
+
return ( 'dollar' === $this->commission_type ) ?
|
98 |
+
( '$' . $this->commission ) :
|
99 |
+
( $this->commission . '%' );
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* @author Leo Fajardo (@leorw)
|
104 |
+
*
|
105 |
+
* @return bool
|
106 |
+
*/
|
107 |
+
function has_lifetime_commission() {
|
108 |
+
return ( 0 !== $this->future_payments_days );
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* @author Leo Fajardo (@leorw)
|
113 |
+
*
|
114 |
+
* @return bool
|
115 |
+
*/
|
116 |
+
function is_session_cookie() {
|
117 |
+
return ( 0 == $this->cookie_days );
|
118 |
+
}
|
119 |
+
|
120 |
+
/**
|
121 |
+
* @author Leo Fajardo (@leorw)
|
122 |
+
*
|
123 |
+
* @return bool
|
124 |
+
*/
|
125 |
+
function has_renewals_commission() {
|
126 |
+
return ( is_null( $this->commission_renewals_days ) || $this->commission_renewals_days > 0 );
|
127 |
+
}
|
128 |
+
}
|
freemius/includes/entities/class-fs-affiliate.php
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
6 |
+
* @since 1.2.3
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
class FS_Affiliate extends FS_Scope_Entity {
|
14 |
+
|
15 |
+
#region Properties
|
16 |
+
|
17 |
+
/**
|
18 |
+
* @var string
|
19 |
+
*/
|
20 |
+
public $paypal_email;
|
21 |
+
/**
|
22 |
+
* @var number
|
23 |
+
*/
|
24 |
+
public $custom_affiliate_terms_id;
|
25 |
+
/**
|
26 |
+
* @var boolean
|
27 |
+
*/
|
28 |
+
public $is_using_custom_terms;
|
29 |
+
/**
|
30 |
+
* @var string status Enum: `pending`, `rejected`, `suspended`, or `active`. Defaults to `pending`.
|
31 |
+
*/
|
32 |
+
public $status;
|
33 |
+
/**
|
34 |
+
* @var string
|
35 |
+
*/
|
36 |
+
public $domain;
|
37 |
+
|
38 |
+
#endregion Properties
|
39 |
+
|
40 |
+
/**
|
41 |
+
* @author Leo Fajardo
|
42 |
+
*
|
43 |
+
* @return bool
|
44 |
+
*/
|
45 |
+
function is_active() {
|
46 |
+
return ( 'active' === $this->status );
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* @author Leo Fajardo
|
51 |
+
*
|
52 |
+
* @return bool
|
53 |
+
*/
|
54 |
+
function is_pending() {
|
55 |
+
return ( 'pending' === $this->status );
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* @author Leo Fajardo
|
60 |
+
*
|
61 |
+
* @return bool
|
62 |
+
*/
|
63 |
+
function is_suspended() {
|
64 |
+
return ( 'suspended' === $this->status );
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* @author Leo Fajardo
|
69 |
+
*
|
70 |
+
* @return bool
|
71 |
+
*/
|
72 |
+
function is_rejected() {
|
73 |
+
return ( 'rejected' === $this->status );
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* @author Leo Fajardo
|
78 |
+
*
|
79 |
+
* @return bool
|
80 |
+
*/
|
81 |
+
function is_blocked() {
|
82 |
+
return ( 'blocked' === $this->status );
|
83 |
+
}
|
84 |
+
}
|
freemius/includes/entities/class-fs-entity.php
CHANGED
@@ -42,9 +42,9 @@
|
|
42 |
* @param bool|object $entity
|
43 |
*/
|
44 |
function __construct( $entity = false ) {
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
|
49 |
$props = fs_get_object_public_vars( $this );
|
50 |
|
42 |
* @param bool|object $entity
|
43 |
*/
|
44 |
function __construct( $entity = false ) {
|
45 |
+
if ( ! ( $entity instanceof stdClass ) && ! ( $entity instanceof FS_Entity ) ) {
|
46 |
+
return;
|
47 |
+
}
|
48 |
|
49 |
$props = fs_get_object_public_vars( $this );
|
50 |
|
freemius/includes/entities/class-fs-plugin.php
CHANGED
@@ -61,6 +61,17 @@
|
|
61 |
* @var bool
|
62 |
*/
|
63 |
public $is_live;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
65 |
#endregion Install Specific Properties
|
66 |
|
@@ -90,6 +101,16 @@
|
|
90 |
return isset( $this->parent_plugin_id ) && is_numeric( $this->parent_plugin_id );
|
91 |
}
|
92 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
static function get_type() {
|
94 |
return 'plugin';
|
95 |
}
|
61 |
* @var bool
|
62 |
*/
|
63 |
public $is_live;
|
64 |
+
/**
|
65 |
+
* @author Leo Fajardo (@leorw)
|
66 |
+
*
|
67 |
+
* @since 1.2.3
|
68 |
+
*
|
69 |
+
* @var string|false false if the module doesn't have an affiliate program or one of the following:
|
70 |
+
* 'selected', 'customers', or 'all'.
|
71 |
+
*/
|
72 |
+
public $affiliate_moderation;
|
73 |
+
|
74 |
+
const AFFILIATE_MODERATION_CUSTOMERS = 'customers';
|
75 |
|
76 |
#endregion Install Specific Properties
|
77 |
|
101 |
return isset( $this->parent_plugin_id ) && is_numeric( $this->parent_plugin_id );
|
102 |
}
|
103 |
|
104 |
+
/**
|
105 |
+
* @author Leo Fajardo (@leorw)
|
106 |
+
* @since 1.2.3
|
107 |
+
*
|
108 |
+
* @return bool
|
109 |
+
*/
|
110 |
+
function has_affiliate_program() {
|
111 |
+
return ( ! empty( $this->affiliate_moderation ) );
|
112 |
+
}
|
113 |
+
|
114 |
static function get_type() {
|
115 |
return 'plugin';
|
116 |
}
|
freemius/includes/fs-core-functions.php
CHANGED
@@ -1,333 +1,359 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
|
332 |
// switch ($errno) {
|
333 |
// case E_USER_ERROR:
|
@@ -341,334 +367,692 @@
|
|
341 |
// default:
|
342 |
// break;
|
343 |
// }
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
|
405 |
// if ( ! isset( $parsed_url['host'] ) ) {
|
406 |
// return $url;
|
407 |
// }
|
408 |
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
673 |
|
674 |
#endregion
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
6 |
+
* @since 1.0.3
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
if ( ! function_exists( 'fs_dummy' ) ) {
|
14 |
+
function fs_dummy() {
|
15 |
+
}
|
16 |
+
}
|
17 |
+
|
18 |
+
/* Url.
|
19 |
+
--------------------------------------------------------------------------------------------*/
|
20 |
+
if ( ! function_exists( 'fs_get_url_daily_cache_killer' ) ) {
|
21 |
+
function fs_get_url_daily_cache_killer() {
|
22 |
+
return date( '\YY\Mm\Dd' );
|
23 |
+
}
|
24 |
+
}
|
25 |
+
|
26 |
+
/* Templates / Views.
|
27 |
+
--------------------------------------------------------------------------------------------*/
|
28 |
+
if ( ! function_exists( 'fs_get_template_path' ) ) {
|
29 |
+
function fs_get_template_path( $path ) {
|
30 |
+
return WP_FS__DIR_TEMPLATES . '/' . trim( $path, '/' );
|
31 |
+
}
|
32 |
+
|
33 |
+
function fs_include_template( $path, &$params = null ) {
|
34 |
+
$VARS = &$params;
|
35 |
+
include fs_get_template_path( $path );
|
36 |
+
}
|
37 |
+
|
38 |
+
function fs_include_once_template( $path, &$params = null ) {
|
39 |
+
$VARS = &$params;
|
40 |
+
include_once fs_get_template_path( $path );
|
41 |
+
}
|
42 |
+
|
43 |
+
function fs_require_template( $path, &$params = null ) {
|
44 |
+
$VARS = &$params;
|
45 |
+
require fs_get_template_path( $path );
|
46 |
+
}
|
47 |
+
|
48 |
+
function fs_require_once_template( $path, &$params = null ) {
|
49 |
+
$VARS = &$params;
|
50 |
+
require_once fs_get_template_path( $path );
|
51 |
+
}
|
52 |
+
|
53 |
+
function fs_get_template( $path, &$params = null ) {
|
54 |
+
ob_start();
|
55 |
+
|
56 |
+
$VARS = &$params;
|
57 |
+
require fs_get_template_path( $path );
|
58 |
+
|
59 |
+
return ob_get_clean();
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
/* Scripts and styles including.
|
64 |
+
--------------------------------------------------------------------------------------------*/
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Generates an absolute URL to the given path. This function ensures that the URL will be correct whether the asset
|
68 |
+
* is inside a plugin's folder or a theme's folder.
|
69 |
+
*
|
70 |
+
* Examples:
|
71 |
+
* 1. "themes" folder
|
72 |
+
* Path: C:/xampp/htdocs/fswp/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
|
73 |
+
* URL: http://fswp:8080/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
|
74 |
+
*
|
75 |
+
* 2. "plugins" folder
|
76 |
+
* Path: C:/xampp/htdocs/fswp/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
|
77 |
+
* URL: http://fswp:8080/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
|
78 |
+
*
|
79 |
+
* @author Leo Fajardo (@leorw)
|
80 |
+
* @since 1.2.2
|
81 |
+
*
|
82 |
+
* @param string $asset_abs_path Asset's absolute path.
|
83 |
+
*
|
84 |
+
* @return string Asset's URL.
|
85 |
+
*/
|
86 |
+
function fs_asset_url( $asset_abs_path ) {
|
87 |
+
$wp_content_dir = fs_normalize_path( WP_CONTENT_DIR );
|
88 |
+
$asset_abs_path = fs_normalize_path( $asset_abs_path );
|
89 |
+
$asset_rel_path = str_replace( $wp_content_dir, '', $asset_abs_path );
|
90 |
+
|
91 |
+
$asset_url = content_url( fs_normalize_path( $asset_rel_path ) );
|
92 |
+
|
93 |
+
return $asset_url;
|
94 |
+
}
|
95 |
+
|
96 |
+
function fs_enqueue_local_style( $handle, $path, $deps = array(), $ver = false, $media = 'all' ) {
|
97 |
+
wp_enqueue_style( $handle, fs_asset_url( WP_FS__DIR_CSS . '/' . trim( $path, '/' ) ), $deps, $ver, $media );
|
98 |
+
}
|
99 |
+
|
100 |
+
function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = 'all' ) {
|
101 |
+
wp_enqueue_script( $handle, fs_asset_url( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ), $deps, $ver, $in_footer );
|
102 |
+
}
|
103 |
+
|
104 |
+
function fs_img_url( $path, $img_dir = WP_FS__DIR_IMG ) {
|
105 |
+
return ( fs_asset_url( $img_dir . '/' . trim( $path, '/' ) ) );
|
106 |
+
}
|
107 |
+
|
108 |
+
/* Request handlers.
|
109 |
+
--------------------------------------------------------------------------------------------*/
|
110 |
+
/**
|
111 |
+
* @param string $key
|
112 |
+
* @param mixed $def
|
113 |
+
* @param string|bool $type Since 1.2.1.7 - when set to 'get' will look for the value passed via querystring, when
|
114 |
+
* set to 'post' will look for the value passed via the POST request's body, otherwise,
|
115 |
+
* will check if the parameter was passed in any of the two.
|
116 |
+
*
|
117 |
+
* @return mixed
|
118 |
+
*/
|
119 |
+
function fs_request_get( $key, $def = false, $type = false ) {
|
120 |
+
if ( is_string( $type ) ) {
|
121 |
+
$type = strtolower( $type );
|
122 |
+
}
|
123 |
+
|
124 |
+
switch ( $type ) {
|
125 |
+
case 'post':
|
126 |
+
$value = isset( $_POST[ $key ] ) ? $_POST[ $key ] : $def;
|
127 |
+
break;
|
128 |
+
case 'get':
|
129 |
+
$value = isset( $_GET[ $key ] ) ? $_GET[ $key ] : $def;
|
130 |
+
break;
|
131 |
+
default:
|
132 |
+
$value = isset( $_REQUEST[ $key ] ) ? $_REQUEST[ $key ] : $def;
|
133 |
+
break;
|
134 |
+
}
|
135 |
+
|
136 |
+
return $value;
|
137 |
+
}
|
138 |
+
|
139 |
+
function fs_request_has( $key ) {
|
140 |
+
return isset( $_REQUEST[ $key ] );
|
141 |
+
}
|
142 |
+
|
143 |
+
function fs_request_get_bool( $key, $def = false ) {
|
144 |
+
if ( ! isset( $_REQUEST[ $key ] ) ) {
|
145 |
+
return $def;
|
146 |
+
}
|
147 |
+
|
148 |
+
if ( 1 == $_REQUEST[ $key ] || 'true' === strtolower( $_REQUEST[ $key ] ) ) {
|
149 |
+
return true;
|
150 |
+
}
|
151 |
+
|
152 |
+
if ( 0 == $_REQUEST[ $key ] || 'false' === strtolower( $_REQUEST[ $key ] ) ) {
|
153 |
+
return false;
|
154 |
+
}
|
155 |
+
|
156 |
+
return $def;
|
157 |
+
}
|
158 |
+
|
159 |
+
function fs_request_is_post() {
|
160 |
+
return ( 'post' === strtolower( $_SERVER['REQUEST_METHOD'] ) );
|
161 |
+
}
|
162 |
+
|
163 |
+
function fs_request_is_get() {
|
164 |
+
return ( 'get' === strtolower( $_SERVER['REQUEST_METHOD'] ) );
|
165 |
+
}
|
166 |
+
|
167 |
+
function fs_get_action( $action_key = 'action' ) {
|
168 |
+
if ( ! empty( $_REQUEST[ $action_key ] ) ) {
|
169 |
+
return strtolower( $_REQUEST[ $action_key ] );
|
170 |
+
}
|
171 |
+
|
172 |
+
if ( 'action' == $action_key ) {
|
173 |
+
$action_key = 'fs_action';
|
174 |
+
|
175 |
+
if ( ! empty( $_REQUEST[ $action_key ] ) ) {
|
176 |
+
return strtolower( $_REQUEST[ $action_key ] );
|
177 |
+
}
|
178 |
+
}
|
179 |
+
|
180 |
+
return false;
|
181 |
+
}
|
182 |
+
|
183 |
+
function fs_request_is_action( $action, $action_key = 'action' ) {
|
184 |
+
return ( strtolower( $action ) === fs_get_action( $action_key ) );
|
185 |
+
}
|
186 |
+
|
187 |
+
/**
|
188 |
+
* @author Vova Feldman (@svovaf)
|
189 |
+
* @since 1.0.0
|
190 |
+
*
|
191 |
+
* @since 1.2.1.5 Allow nonce verification.
|
192 |
+
*
|
193 |
+
* @param string $action
|
194 |
+
* @param string $action_key
|
195 |
+
* @param string $nonce_key
|
196 |
+
*
|
197 |
+
* @return bool
|
198 |
+
*/
|
199 |
+
function fs_request_is_action_secure(
|
200 |
+
$action,
|
201 |
+
$action_key = 'action',
|
202 |
+
$nonce_key = 'nonce'
|
203 |
+
) {
|
204 |
+
if ( strtolower( $action ) !== fs_get_action( $action_key ) ) {
|
205 |
+
return false;
|
206 |
+
}
|
207 |
+
|
208 |
+
$nonce = ! empty( $_REQUEST[ $nonce_key ] ) ?
|
209 |
+
$_REQUEST[ $nonce_key ] :
|
210 |
+
'';
|
211 |
+
|
212 |
+
if ( empty( $nonce ) ||
|
213 |
+
( false === wp_verify_nonce( $nonce, $action ) )
|
214 |
+
) {
|
215 |
+
return false;
|
216 |
+
}
|
217 |
+
|
218 |
+
return true;
|
219 |
+
}
|
220 |
+
|
221 |
+
function fs_is_plugin_page( $page_slug ) {
|
222 |
+
return ( is_admin() && $page_slug === fs_request_get( 'page' ) );
|
223 |
+
}
|
224 |
+
|
225 |
+
if ( ! function_exists( 'fs_get_raw_referer' ) ) {
|
226 |
+
/**
|
227 |
+
* Retrieves unvalidated referer from '_wp_http_referer' or HTTP referer.
|
228 |
+
*
|
229 |
+
* Do not use for redirects, use {@see wp_get_referer()} instead.
|
230 |
+
*
|
231 |
+
* @since 1.2.3
|
232 |
+
*
|
233 |
+
* @return string|false Referer URL on success, false on failure.
|
234 |
+
*/
|
235 |
+
function fs_get_raw_referer() {
|
236 |
+
if ( function_exists( 'wp_get_raw_referer' ) ) {
|
237 |
+
return wp_get_raw_referer();
|
238 |
+
}
|
239 |
+
if ( ! empty( $_REQUEST['_wp_http_referer'] ) ) {
|
240 |
+
return wp_unslash( $_REQUEST['_wp_http_referer'] );
|
241 |
+
} else if ( ! empty( $_SERVER['HTTP_REFERER'] ) ) {
|
242 |
+
return wp_unslash( $_SERVER['HTTP_REFERER'] );
|
243 |
+
}
|
244 |
+
|
245 |
+
return false;
|
246 |
+
}
|
247 |
+
}
|
248 |
+
|
249 |
+
/* Core UI.
|
250 |
+
--------------------------------------------------------------------------------------------*/
|
251 |
+
/**
|
252 |
+
* @param number $module_id
|
253 |
+
* @param string $page
|
254 |
+
* @param string $action
|
255 |
+
* @param string $title
|
256 |
+
* @param array $params
|
257 |
+
* @param bool $is_primary
|
258 |
+
* @param string|bool $icon_class Optional class for an icon (since 1.1.7).
|
259 |
+
* @param string|bool $confirmation Optional confirmation message before submit (since 1.1.7).
|
260 |
+
* @param string $method Since 1.1.7
|
261 |
+
*
|
262 |
+
* @uses fs_ui_get_action_button()
|
263 |
+
*/
|
264 |
+
function fs_ui_action_button(
|
265 |
+
$module_id,
|
266 |
+
$page,
|
267 |
+
$action,
|
268 |
+
$title,
|
269 |
+
$params = array(),
|
270 |
+
$is_primary = true,
|
271 |
+
$icon_class = false,
|
272 |
+
$confirmation = false,
|
273 |
+
$method = 'GET'
|
274 |
+
) {
|
275 |
+
echo fs_ui_get_action_button(
|
276 |
+
$module_id,
|
277 |
+
$page,
|
278 |
+
$action,
|
279 |
+
$title,
|
280 |
+
$params,
|
281 |
+
$is_primary,
|
282 |
+
$icon_class,
|
283 |
+
$confirmation,
|
284 |
+
$method
|
285 |
+
);
|
286 |
+
}
|
287 |
+
|
288 |
+
/**
|
289 |
+
* @author Vova Feldman (@svovaf)
|
290 |
+
* @since 1.1.7
|
291 |
+
*
|
292 |
+
* @param number $module_id
|
293 |
+
* @param string $page
|
294 |
+
* @param string $action
|
295 |
+
* @param string $title
|
296 |
+
* @param array $params
|
297 |
+
* @param bool $is_primary
|
298 |
+
* @param string|bool $icon_class Optional class for an icon.
|
299 |
+
* @param string|bool $confirmation Optional confirmation message before submit.
|
300 |
+
* @param string $method
|
301 |
+
*
|
302 |
+
* @return string
|
303 |
+
*/
|
304 |
+
function fs_ui_get_action_button(
|
305 |
+
$module_id,
|
306 |
+
$page,
|
307 |
+
$action,
|
308 |
+
$title,
|
309 |
+
$params = array(),
|
310 |
+
$is_primary = true,
|
311 |
+
$icon_class = false,
|
312 |
+
$confirmation = false,
|
313 |
+
$method = 'GET'
|
314 |
+
) {
|
315 |
+
// Prepend icon (if set).
|
316 |
+
$title = ( is_string( $icon_class ) ? '<i class="' . $icon_class . '"></i> ' : '' ) . $title;
|
317 |
+
|
318 |
+
if ( is_string( $confirmation ) ) {
|
319 |
+
return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="if (confirm(\'%s\')) this.parentNode.submit(); return false;">%s</a></form>',
|
320 |
+
freemius( $module_id )->_get_admin_page_url( $page, $params ),
|
321 |
+
$method,
|
322 |
+
$action,
|
323 |
+
wp_nonce_field( $action, '_wpnonce', true, false ),
|
324 |
+
'button' . ( $is_primary ? ' button-primary' : '' ),
|
325 |
+
$confirmation,
|
326 |
+
$title
|
327 |
+
);
|
328 |
+
} else if ( 'GET' !== strtoupper( $method ) ) {
|
329 |
+
return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="this.parentNode.submit(); return false;">%s</a></form>',
|
330 |
+
freemius( $module_id )->_get_admin_page_url( $page, $params ),
|
331 |
+
$method,
|
332 |
+
$action,
|
333 |
+
wp_nonce_field( $action, '_wpnonce', true, false ),
|
334 |
+
'button' . ( $is_primary ? ' button-primary' : '' ),
|
335 |
+
$title
|
336 |
+
);
|
337 |
+
} else {
|
338 |
+
return sprintf( '<a href="%s" class="%s">%s</a></form>',
|
339 |
+
wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ),
|
340 |
+
'button' . ( $is_primary ? ' button-primary' : '' ),
|
341 |
+
$title
|
342 |
+
);
|
343 |
+
}
|
344 |
+
}
|
345 |
+
|
346 |
+
function fs_ui_action_link( $module_id, $page, $action, $title, $params = array() ) {
|
347 |
+
?><a class=""
|
348 |
+
href="<?php echo wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ) ?>"><?php echo $title ?></a><?php
|
349 |
+
}
|
350 |
+
|
351 |
+
/*function fs_error_handler($errno, $errstr, $errfile, $errline)
|
352 |
+
{
|
353 |
+
if (false === strpos($errfile, 'freemius/'))
|
354 |
+
{
|
355 |
+
// @todo Dump Freemius errors to local log.
|
356 |
+
}
|
357 |
|
358 |
// switch ($errno) {
|
359 |
// case E_USER_ERROR:
|
367 |
// default:
|
368 |
// break;
|
369 |
// }
|
370 |
+
}
|
371 |
+
|
372 |
+
set_error_handler('fs_error_handler');*/
|
373 |
+
|
374 |
+
if ( ! function_exists( 'fs_nonce_url' ) ) {
|
375 |
+
/**
|
376 |
+
* Retrieve URL with nonce added to URL query.
|
377 |
+
*
|
378 |
+
* Originally was using `wp_nonce_url()` but the new version
|
379 |
+
* changed the return value to escaped URL, that's not the expected
|
380 |
+
* behaviour.
|
381 |
+
*
|
382 |
+
* @author Vova Feldman (@svovaf)
|
383 |
+
* @since ~1.1.3
|
384 |
+
*
|
385 |
+
* @param string $actionurl URL to add nonce action.
|
386 |
+
* @param int|string $action Optional. Nonce action name. Default -1.
|
387 |
+
* @param string $name Optional. Nonce name. Default '_wpnonce'.
|
388 |
+
*
|
389 |
+
* @return string Escaped URL with nonce action added.
|
390 |
+
*/
|
391 |
+
function fs_nonce_url( $actionurl, $action = - 1, $name = '_wpnonce' ) {
|
392 |
+
return add_query_arg( $name, wp_create_nonce( $action ), $actionurl );
|
393 |
+
}
|
394 |
+
}
|
395 |
+
|
396 |
+
if ( ! function_exists( 'fs_starts_with' ) ) {
|
397 |
+
/**
|
398 |
+
* Check if string starts with.
|
399 |
+
*
|
400 |
+
* @author Vova Feldman (@svovaf)
|
401 |
+
* @since 1.1.3
|
402 |
+
*
|
403 |
+
* @param string $haystack
|
404 |
+
* @param string $needle
|
405 |
+
*
|
406 |
+
* @return bool
|
407 |
+
*/
|
408 |
+
function fs_starts_with( $haystack, $needle ) {
|
409 |
+
$length = strlen( $needle );
|
410 |
+
|
411 |
+
return ( substr( $haystack, 0, $length ) === $needle );
|
412 |
+
}
|
413 |
+
}
|
414 |
+
|
415 |
+
#region Url Canonization ------------------------------------------------------------------
|
416 |
+
|
417 |
+
if ( ! function_exists( 'fs_canonize_url' ) ) {
|
418 |
+
/**
|
419 |
+
* @author Vova Feldman (@svovaf)
|
420 |
+
* @since 1.1.3
|
421 |
+
*
|
422 |
+
* @param string $url
|
423 |
+
* @param bool $omit_host
|
424 |
+
* @param array $ignore_params
|
425 |
+
*
|
426 |
+
* @return string
|
427 |
+
*/
|
428 |
+
function fs_canonize_url( $url, $omit_host = false, $ignore_params = array() ) {
|
429 |
+
$parsed_url = parse_url( strtolower( $url ) );
|
430 |
|
431 |
// if ( ! isset( $parsed_url['host'] ) ) {
|
432 |
// return $url;
|
433 |
// }
|
434 |
|
435 |
+
$canonical = ( ( $omit_host || ! isset( $parsed_url['host'] ) ) ? '' : $parsed_url['host'] ) . $parsed_url['path'];
|
436 |
+
|
437 |
+
if ( isset( $parsed_url['query'] ) ) {
|
438 |
+
parse_str( $parsed_url['query'], $queryString );
|
439 |
+
$canonical .= '?' . fs_canonize_query_string( $queryString, $ignore_params );
|
440 |
+
}
|
441 |
+
|
442 |
+
return $canonical;
|
443 |
+
}
|
444 |
+
}
|
445 |
+
|
446 |
+
if ( ! function_exists( 'fs_canonize_query_string' ) ) {
|
447 |
+
/**
|
448 |
+
* @author Vova Feldman (@svovaf)
|
449 |
+
* @since 1.1.3
|
450 |
+
*
|
451 |
+
* @param array $params
|
452 |
+
* @param array $ignore_params
|
453 |
+
* @param bool $params_prefix
|
454 |
+
*
|
455 |
+
* @return string
|
456 |
+
*/
|
457 |
+
function fs_canonize_query_string( array $params, array &$ignore_params, $params_prefix = false ) {
|
458 |
+
if ( ! is_array( $params ) || 0 === count( $params ) ) {
|
459 |
+
return '';
|
460 |
+
}
|
461 |
+
|
462 |
+
// Url encode both keys and values
|
463 |
+
$keys = fs_urlencode_rfc3986( array_keys( $params ) );
|
464 |
+
$values = fs_urlencode_rfc3986( array_values( $params ) );
|
465 |
+
$params = array_combine( $keys, $values );
|
466 |
+
|
467 |
+
// Parameters are sorted by name, using lexicographical byte value ordering.
|
468 |
+
// Ref: Spec: 9.1.1 (1)
|
469 |
+
uksort( $params, 'strcmp' );
|
470 |
+
|
471 |
+
$pairs = array();
|
472 |
+
foreach ( $params as $parameter => $value ) {
|
473 |
+
$lower_param = strtolower( $parameter );
|
474 |
+
|
475 |
+
// Skip ignore params.
|
476 |
+
if ( in_array( $lower_param, $ignore_params ) ||
|
477 |
+
( false !== $params_prefix && fs_starts_with( $lower_param, $params_prefix ) )
|
478 |
+
) {
|
479 |
+
continue;
|
480 |
+
}
|
481 |
+
|
482 |
+
if ( is_array( $value ) ) {
|
483 |
+
// If two or more parameters share the same name, they are sorted by their value
|
484 |
+
// Ref: Spec: 9.1.1 (1)
|
485 |
+
natsort( $value );
|
486 |
+
foreach ( $value as $duplicate_value ) {
|
487 |
+
$pairs[] = $lower_param . '=' . $duplicate_value;
|
488 |
+
}
|
489 |
+
} else {
|
490 |
+
$pairs[] = $lower_param . '=' . $value;
|
491 |
+
}
|
492 |
+
}
|
493 |
+
|
494 |
+
if ( 0 === count( $pairs ) ) {
|
495 |
+
return '';
|
496 |
+
}
|
497 |
+
|
498 |
+
return implode( "&", $pairs );
|
499 |
+
}
|
500 |
+
}
|
501 |
+
|
502 |
+
if ( ! function_exists( 'fs_urlencode_rfc3986' ) ) {
|
503 |
+
/**
|
504 |
+
* @author Vova Feldman (@svovaf)
|
505 |
+
* @since 1.1.3
|
506 |
+
*
|
507 |
+
* @param string|string[] $input
|
508 |
+
*
|
509 |
+
* @return array|mixed|string
|
510 |
+
*/
|
511 |
+
function fs_urlencode_rfc3986( $input ) {
|
512 |
+
if ( is_array( $input ) ) {
|
513 |
+
return array_map( 'fs_urlencode_rfc3986', $input );
|
514 |
+
} else if ( is_scalar( $input ) ) {
|
515 |
+
return str_replace( '+', ' ', str_replace( '%7E', '~', rawurlencode( $input ) ) );
|
516 |
+
}
|
517 |
+
|
518 |
+
return '';
|
519 |
+
}
|
520 |
+
}
|
521 |
+
|
522 |
+
#endregion Url Canonization ------------------------------------------------------------------
|
523 |
+
|
524 |
+
/**
|
525 |
+
* @author Vova Feldman (@svovaf)
|
526 |
+
*
|
527 |
+
* @since 1.2.2 Changed to usage of WP_Filesystem_Direct.
|
528 |
+
*
|
529 |
+
* @param string $from URL
|
530 |
+
* @param string $to File path.
|
531 |
+
*
|
532 |
+
* @return bool Is successfully downloaded.
|
533 |
+
*/
|
534 |
+
function fs_download_image( $from, $to ) {
|
535 |
+
$dir = dirname( $to );
|
536 |
+
|
537 |
+
if ( 'direct' !== get_filesystem_method( array(), $dir ) ) {
|
538 |
+
return false;
|
539 |
+
}
|
540 |
+
|
541 |
+
if ( ! class_exists( 'WP_Filesystem_Direct' ) ) {
|
542 |
+
require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
|
543 |
+
require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
|
544 |
+
}
|
545 |
+
|
546 |
+
$fs = new WP_Filesystem_Direct( '' );
|
547 |
+
$tmpfile = download_url( $from );
|
548 |
+
|
549 |
+
if ( $tmpfile instanceof WP_Error ) {
|
550 |
+
// Issue downloading the file.
|
551 |
+
return false;
|
552 |
+
}
|
553 |
+
|
554 |
+
$fs->copy( $tmpfile, $to );
|
555 |
+
$fs->delete( $tmpfile );
|
556 |
+
|
557 |
+
return true;
|
558 |
+
}
|
559 |
+
|
560 |
+
/* General Utilities
|
561 |
+
--------------------------------------------------------------------------------------------*/
|
562 |
+
|
563 |
+
/**
|
564 |
+
* Sorts an array by the value of the priority key.
|
565 |
+
*
|
566 |
+
* @author Daniel Iser (@danieliser)
|
567 |
+
* @since 1.1.7
|
568 |
+
*
|
569 |
+
* @param $a
|
570 |
+
* @param $b
|
571 |
+
*
|
572 |
+
* @return int
|
573 |
+
*/
|
574 |
+
function fs_sort_by_priority( $a, $b ) {
|
575 |
+
|
576 |
+
// If b has a priority and a does not, b wins.
|
577 |
+
if ( ! isset( $a['priority'] ) && isset( $b['priority'] ) ) {
|
578 |
+
return 1;
|
579 |
+
} // If b has a priority and a does not, b wins.
|
580 |
+
elseif ( isset( $a['priority'] ) && ! isset( $b['priority'] ) ) {
|
581 |
+
return - 1;
|
582 |
+
} // If neither has a priority or both priorities are equal its a tie.
|
583 |
+
elseif ( ( ! isset( $a['priority'] ) && ! isset( $b['priority'] ) ) || $a['priority'] === $b['priority'] ) {
|
584 |
+
return 0;
|
585 |
+
}
|
586 |
+
|
587 |
+
// If both have priority return the winner.
|
588 |
+
return ( $a['priority'] < $b['priority'] ) ? - 1 : 1;
|
589 |
+
}
|
590 |
+
|
591 |
+
#--------------------------------------------------------------------------------
|
592 |
+
#region Localization
|
593 |
+
#--------------------------------------------------------------------------------
|
594 |
+
|
595 |
+
if ( ! function_exists( 'fs_text' ) ) {
|
596 |
+
/**
|
597 |
+
* Retrieve a translated text by key.
|
598 |
+
*
|
599 |
+
* @author Vova Feldman (@svovaf)
|
600 |
+
* @since 1.2.1.7
|
601 |
+
*
|
602 |
+
* @param string $key
|
603 |
+
* @param string $slug
|
604 |
+
*
|
605 |
+
* @return string
|
606 |
+
*
|
607 |
+
* @global $fs_text , $fs_text_overrides
|
608 |
+
*/
|
609 |
+
function fs_text( $key, $slug = 'freemius' ) {
|
610 |
+
return __fs( $key, $slug );
|
611 |
+
}
|
612 |
+
|
613 |
+
/**
|
614 |
+
* Get a translatable text override if exists, or `false`.
|
615 |
+
*
|
616 |
+
* @author Vova Feldman (@svovaf)
|
617 |
+
* @since 1.2.1.7
|
618 |
+
*
|
619 |
+
* @param string $text Translatable string.
|
620 |
+
* @param string $key String key for overrides.
|
621 |
+
* @param string $slug Module slug for overrides.
|
622 |
+
*
|
623 |
+
* @return string|false
|
624 |
+
*/
|
625 |
+
function fs_text_override( $text, $key, $slug ) {
|
626 |
+
global $fs_text_overrides;
|
627 |
+
|
628 |
+
/**
|
629 |
+
* Check if string is overridden.
|
630 |
+
*/
|
631 |
+
if ( ! isset( $fs_text_overrides[ $slug ] ) ) {
|
632 |
+
return false;
|
633 |
+
}
|
634 |
+
|
635 |
+
if ( empty( $key ) ) {
|
636 |
+
$key = strtolower( str_replace( ' ', '-', $text ) );
|
637 |
+
}
|
638 |
+
|
639 |
+
if ( isset( $fs_text_overrides[ $slug ][ $key ] ) ) {
|
640 |
+
return $fs_text_overrides[ $slug ][ $key ];
|
641 |
+
}
|
642 |
+
|
643 |
+
$lower_key = strtolower( $key );
|
644 |
+
if ( isset( $fs_text_overrides[ $slug ][ $lower_key ] ) ) {
|
645 |
+
return $fs_text_overrides[ $slug ][ $lower_key ];
|
646 |
+
}
|
647 |
+
|
648 |
+
return false;
|
649 |
+
}
|
650 |
+
|
651 |
+
/**
|
652 |
+
* Get a translatable text and its text domain.
|
653 |
+
*
|
654 |
+
* When the text is overridden by the module, returns the overridden text and the text domain of the module. Otherwise, returns the original text and 'freemius' as the text domain.
|
655 |
+
*
|
656 |
+
* @author Vova Feldman (@svovaf)
|
657 |
+
* @since 1.2.1.7
|
658 |
+
*
|
659 |
+
* @param string $text Translatable string.
|
660 |
+
* @param string $key String key for overrides.
|
661 |
+
* @param string $slug Module slug for overrides.
|
662 |
+
*
|
663 |
+
* @return string[]
|
664 |
+
*/
|
665 |
+
function fs_text_and_domain( $text, $key, $slug ) {
|
666 |
+
$override = fs_text_override( $text, $key, $slug );
|
667 |
+
|
668 |
+
if ( false === $override ) {
|
669 |
+
// No override, use FS text domain.
|
670 |
+
$text_domain = 'freemius';
|
671 |
+
} else {
|
672 |
+
// Found an override.
|
673 |
+
$text = $override;
|
674 |
+
// Use the module's text domain.
|
675 |
+
$text_domain = $slug;
|
676 |
+
}
|
677 |
+
|
678 |
+
return array( $text, $text_domain );
|
679 |
+
}
|
680 |
+
|
681 |
+
#region Private
|
682 |
+
|
683 |
+
/**
|
684 |
+
* Retrieve an inline translated text by key.
|
685 |
+
*
|
686 |
+
* @author Vova Feldman (@svovaf)
|
687 |
+
* @since 1.2.3
|
688 |
+
*
|
689 |
+
* @param string $text Translatable string.
|
690 |
+
* @param string $key String key for overrides.
|
691 |
+
* @param string $slug Module slug for overrides.
|
692 |
+
*
|
693 |
+
* @return string
|
694 |
+
*
|
695 |
+
* @global $fs_text_overrides
|
696 |
+
*/
|
697 |
+
function _fs_text_inline( $text, $key = '', $slug = 'freemius' ) {
|
698 |
+
list( $text, $text_domain ) = fs_text_and_domain( $text, $key, $slug );
|
699 |
+
|
700 |
+
// Avoid misleading Theme Check warning.
|
701 |
+
$fn = 'translate';
|
702 |
+
|
703 |
+
return $fn( $text, $text_domain );
|
704 |
+
}
|
705 |
+
|
706 |
+
/**
|
707 |
+
* Retrieve an inline translated text by key with a context.
|
708 |
+
*
|
709 |
+
* @author Vova Feldman (@svovaf)
|
710 |
+
* @since 1.2.3
|
711 |
+
*
|
712 |
+
* @param string $text Translatable string.
|
713 |
+
* @param string $context Context information for the translators.
|
714 |
+
* @param string $key String key for overrides.
|
715 |
+
* @param string $slug Module slug for overrides.
|
716 |
+
*
|
717 |
+
* @return string
|
718 |
+
*
|
719 |
+
* @global $fs_text_overrides
|
720 |
+
*/
|
721 |
+
function _fs_text_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
|
722 |
+
list( $text, $text_domain ) = fs_text_and_domain( $text, $key, $slug );
|
723 |
+
|
724 |
+
// Avoid misleading Theme Check warning.
|
725 |
+
$fn = 'translate_with_gettext_context';
|
726 |
+
|
727 |
+
return $fn( $text, $context, $text_domain );
|
728 |
+
}
|
729 |
+
|
730 |
+
#endregion
|
731 |
+
|
732 |
+
/**
|
733 |
+
* Retrieve an inline translated text by key.
|
734 |
+
*
|
735 |
+
* @author Vova Feldman (@svovaf)
|
736 |
+
* @since 1.2.3
|
737 |
+
*
|
738 |
+
* @param string $text Translatable string.
|
739 |
+
* @param string $key String key for overrides.
|
740 |
+
* @param string $slug Module slug for overrides.
|
741 |
+
*
|
742 |
+
* @return string
|
743 |
+
*
|
744 |
+
* @global $fs_text_overrides
|
745 |
+
*/
|
746 |
+
function fs_text_inline( $text, $key = '', $slug = 'freemius' ) {
|
747 |
+
return _fs_text_inline( $text, $key, $slug );
|
748 |
+
}
|
749 |
+
|
750 |
+
/**
|
751 |
+
* Retrieve an inline translated text by key with a context.
|
752 |
+
*
|
753 |
+
* @author Vova Feldman (@svovaf)
|
754 |
+
* @since 1.2.3
|
755 |
+
*
|
756 |
+
* @param string $text Translatable string.
|
757 |
+
* @param string $context Context information for the translators.
|
758 |
+
* @param string $key String key for overrides.
|
759 |
+
* @param string $slug Module slug for overrides.
|
760 |
+
*
|
761 |
+
* @return string
|
762 |
+
*
|
763 |
+
* @global $fs_text_overrides
|
764 |
+
*/
|
765 |
+
function fs_text_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
|
766 |
+
return _fs_text_x_inline( $text, $context, $key, $slug );
|
767 |
+
}
|
768 |
+
|
769 |
+
/**
|
770 |
+
* Output a translated text by key.
|
771 |
+
*
|
772 |
+
* @author Vova Feldman (@svovaf)
|
773 |
+
* @since 1.2.1.7
|
774 |
+
*
|
775 |
+
* @param string $key
|
776 |
+
* @param string $slug
|
777 |
+
*/
|
778 |
+
function fs_echo( $key, $slug = 'freemius' ) {
|
779 |
+
echo fs_text( $key, $slug );
|
780 |
+
}
|
781 |
+
|
782 |
+
/**
|
783 |
+
* Output an inline translated text.
|
784 |
+
*
|
785 |
+
* @author Vova Feldman (@svovaf)
|
786 |
+
* @since 1.2.3
|
787 |
+
*
|
788 |
+
* @param string $text Translatable string.
|
789 |
+
* @param string $key String key for overrides.
|
790 |
+
* @param string $slug Module slug for overrides.
|
791 |
+
*/
|
792 |
+
function fs_echo_inline( $text, $key = '', $slug = 'freemius' ) {
|
793 |
+
echo _fs_text_inline( $text, $key, $slug );
|
794 |
+
}
|
795 |
+
|
796 |
+
/**
|
797 |
+
* Output an inline translated text with a context.
|
798 |
+
*
|
799 |
+
* @author Vova Feldman (@svovaf)
|
800 |
+
* @since 1.2.3
|
801 |
+
*
|
802 |
+
* @param string $text Translatable string.
|
803 |
+
* @param string $context Context information for the translators.
|
804 |
+
* @param string $key String key for overrides.
|
805 |
+
* @param string $slug Module slug for overrides.
|
806 |
+
*/
|
807 |
+
function fs_echo_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
|
808 |
+
echo _fs_text_x_inline( $text, $context, $key, $slug );
|
809 |
+
}
|
810 |
+
}
|
811 |
+
|
812 |
+
/**
|
813 |
+
* @author Vova Feldman
|
814 |
+
* @since 1.2.1.6
|
815 |
+
*
|
816 |
+
* @param string $key
|
817 |
+
* @param string $slug
|
818 |
+
*
|
819 |
+
* @return string
|
820 |
+
*/
|
821 |
+
function fs_esc_attr( $key, $slug ) {
|
822 |
+
return esc_attr( fs_text( $key, $slug ) );
|
823 |
+
}
|
824 |
+
|
825 |
+
/**
|
826 |
+
* @author Vova Feldman (@svovaf)
|
827 |
+
* @since 1.2.3
|
828 |
+
*
|
829 |
+
* @param string $text Translatable string.
|
830 |
+
* @param string $key String key for overrides.
|
831 |
+
* @param string $slug Module slug for overrides.
|
832 |
+
*
|
833 |
+
* @return string
|
834 |
+
*/
|
835 |
+
function fs_esc_attr_inline( $text, $key = '', $slug = 'freemius' ) {
|
836 |
+
return esc_attr( _fs_text_inline( $text, $key, $slug ) );
|
837 |
+
}
|
838 |
+
|
839 |
+
/**
|
840 |
+
* @author Vova Feldman (@svovaf)
|
841 |
+
* @since 1.2.3
|
842 |
+
*
|
843 |
+
* @param string $text Translatable string.
|
844 |
+
* @param string $context Context information for the translators.
|
845 |
+
* @param string $key String key for overrides.
|
846 |
+
* @param string $slug Module slug for overrides.
|
847 |
+
*
|
848 |
+
* @return string
|
849 |
+
*/
|
850 |
+
function fs_esc_attr_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
|
851 |
+
return esc_attr( _fs_text_x_inline( $text, $context, $key, $slug ) );
|
852 |
+
}
|
853 |
+
|
854 |
+
/**
|
855 |
+
* @author Vova Feldman
|
856 |
+
* @since 1.2.1.6
|
857 |
+
*
|
858 |
+
* @param string $key
|
859 |
+
* @param string $slug
|
860 |
+
*/
|
861 |
+
function fs_esc_attr_echo( $key, $slug ) {
|
862 |
+
echo esc_attr( fs_text( $key, $slug ) );
|
863 |
+
}
|
864 |
+
|
865 |
+
/**
|
866 |
+
* @author Vova Feldman (@svovaf)
|
867 |
+
* @since 1.2.3
|
868 |
+
*
|
869 |
+
* @param string $text Translatable string.
|
870 |
+
* @param string $key String key for overrides.
|
871 |
+
* @param string $slug Module slug for overrides.
|
872 |
+
*/
|
873 |
+
function fs_esc_attr_echo_inline( $text, $key = '', $slug = 'freemius' ) {
|
874 |
+
echo esc_attr( _fs_text_inline( $text, $key, $slug ) );
|
875 |
+
}
|
876 |
+
|
877 |
+
/**
|
878 |
+
* @author Vova Feldman
|
879 |
+
* @since 1.2.1.6
|
880 |
+
*
|
881 |
+
* @param string $key
|
882 |
+
* @param string $slug
|
883 |
+
*
|
884 |
+
* @return string
|
885 |
+
*/
|
886 |
+
function fs_esc_js( $key, $slug ) {
|
887 |
+
return esc_js( fs_text( $key, $slug ) );
|
888 |
+
}
|
889 |
+
|
890 |
+
/**
|
891 |
+
* @author Vova Feldman (@svovaf)
|
892 |
+
* @since 1.2.3
|
893 |
+
*
|
894 |
+
* @param string $text Translatable string.
|
895 |
+
* @param string $key String key for overrides.
|
896 |
+
* @param string $slug Module slug for overrides.
|
897 |
+
*
|
898 |
+
* @return string
|
899 |
+
*/
|
900 |
+
function fs_esc_js_inline( $text, $key = '', $slug = 'freemius' ) {
|
901 |
+
return esc_js( _fs_text_inline( $text, $key, $slug ) );
|
902 |
+
}
|
903 |
+
|
904 |
+
/**
|
905 |
+
* @author Vova Feldman (@svovaf)
|
906 |
+
* @since 1.2.3
|
907 |
+
*
|
908 |
+
* @param string $text Translatable string.
|
909 |
+
* @param string $context Context information for the translators.
|
910 |
+
* @param string $key String key for overrides.
|
911 |
+
* @param string $slug Module slug for overrides.
|
912 |
+
*
|
913 |
+
* @return string
|
914 |
+
*/
|
915 |
+
function fs_esc_js_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
|
916 |
+
return esc_js( _fs_text_x_inline( $text, $context, $key, $slug ) );
|
917 |
+
}
|
918 |
+
|
919 |
+
/**
|
920 |
+
* @author Vova Feldman (@svovaf)
|
921 |
+
* @since 1.2.3
|
922 |
+
*
|
923 |
+
* @param string $text Translatable string.
|
924 |
+
* @param string $context Context information for the translators.
|
925 |
+
* @param string $key String key for overrides.
|
926 |
+
* @param string $slug Module slug for overrides.
|
927 |
+
*
|
928 |
+
* @return string
|
929 |
+
*/
|
930 |
+
function fs_esc_js_echo_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
|
931 |
+
echo esc_js( _fs_text_x_inline( $text, $context, $key, $slug ) );
|
932 |
+
}
|
933 |
+
|
934 |
+
/**
|
935 |
+
* @author Vova Feldman
|
936 |
+
* @since 1.2.1.6
|
937 |
+
*
|
938 |
+
* @param string $key
|
939 |
+
* @param string $slug
|
940 |
+
*/
|
941 |
+
function fs_esc_js_echo( $key, $slug ) {
|
942 |
+
echo esc_js( fs_text( $key, $slug ) );
|
943 |
+
}
|
944 |
+
|
945 |
+
/**
|
946 |
+
* @author Vova Feldman (@svovaf)
|
947 |
+
* @since 1.2.3
|
948 |
+
*
|
949 |
+
* @param string $text Translatable string.
|
950 |
+
* @param string $key String key for overrides.
|
951 |
+
* @param string $slug Module slug for overrides.
|
952 |
+
*/
|
953 |
+
function fs_esc_js_echo_inline( $text, $key = '', $slug = 'freemius' ) {
|
954 |
+
echo esc_js( _fs_text_inline( $text, $key, $slug ) );
|
955 |
+
}
|
956 |
+
|
957 |
+
/**
|
958 |
+
* @author Vova Feldman
|
959 |
+
* @since 1.2.1.6
|
960 |
+
*
|
961 |
+
* @param string $key
|
962 |
+
* @param string $slug
|
963 |
+
*/
|
964 |
+
function fs_json_encode_echo( $key, $slug ) {
|
965 |
+
echo json_encode( fs_text( $key, $slug ) );
|
966 |
+
}
|
967 |
+
|
968 |
+
/**
|
969 |
+
* @author Vova Feldman (@svovaf)
|
970 |
+
* @since 1.2.3
|
971 |
+
*
|
972 |
+
* @param string $text Translatable string.
|
973 |
+
* @param string $key String key for overrides.
|
974 |
+
* @param string $slug Module slug for overrides.
|
975 |
+
*/
|
976 |
+
function fs_json_encode_echo_inline( $text, $key = '', $slug = 'freemius' ) {
|
977 |
+
echo json_encode( _fs_text_inline( $text, $key, $slug ) );
|
978 |
+
}
|
979 |
+
|
980 |
+
/**
|
981 |
+
* @author Vova Feldman
|
982 |
+
* @since 1.2.1.6
|
983 |
+
*
|
984 |
+
* @param string $key
|
985 |
+
* @param string $slug
|
986 |
+
*
|
987 |
+
* @return string
|
988 |
+
*/
|
989 |
+
function fs_esc_html( $key, $slug ) {
|
990 |
+
return esc_html( fs_text( $key, $slug ) );
|
991 |
+
}
|
992 |
+
|
993 |
+
/**
|
994 |
+
* @author Vova Feldman (@svovaf)
|
995 |
+
* @since 1.2.3
|
996 |
+
*
|
997 |
+
* @param string $text Translatable string.
|
998 |
+
* @param string $key String key for overrides.
|
999 |
+
* @param string $slug Module slug for overrides.
|
1000 |
+
*
|
1001 |
+
* @return string
|
1002 |
+
*/
|
1003 |
+
function fs_esc_html_inline( $text, $key = '', $slug = 'freemius' ) {
|
1004 |
+
return esc_html( _fs_text_inline( $text, $key, $slug ) );
|
1005 |
+
}
|
1006 |
+
|
1007 |
+
/**
|
1008 |
+
* @author Vova Feldman (@svovaf)
|
1009 |
+
* @since 1.2.3
|
1010 |
+
*
|
1011 |
+
* @param string $text Translatable string.
|
1012 |
+
* @param string $context Context information for the translators.
|
1013 |
+
* @param string $key String key for overrides.
|
1014 |
+
* @param string $slug Module slug for overrides.
|
1015 |
+
*
|
1016 |
+
* @return string
|
1017 |
+
*/
|
1018 |
+
function fs_esc_html_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
|
1019 |
+
return esc_html( _fs_text_x_inline( $text, $context, $key, $slug ) );
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
/**
|
1023 |
+
* @author Vova Feldman (@svovaf)
|
1024 |
+
* @since 1.2.3
|
1025 |
+
*
|
1026 |
+
* @param string $text Translatable string.
|
1027 |
+
* @param string $context Context information for the translators.
|
1028 |
+
* @param string $key String key for overrides.
|
1029 |
+
* @param string $slug Module slug for overrides.
|
1030 |
+
*/
|
1031 |
+
function fs_esc_html_echo_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
|
1032 |
+
echo esc_html( _fs_text_x_inline( $text, $context, $key, $slug ) );
|
1033 |
+
}
|
1034 |
+
|
1035 |
+
/**
|
1036 |
+
* @author Vova Feldman
|
1037 |
+
* @since 1.2.1.6
|
1038 |
+
*
|
1039 |
+
* @param string $key
|
1040 |
+
* @param string $slug
|
1041 |
+
*/
|
1042 |
+
function fs_esc_html_echo( $key, $slug ) {
|
1043 |
+
echo esc_html( fs_text( $key, $slug ) );
|
1044 |
+
}
|
1045 |
+
|
1046 |
+
/**
|
1047 |
+
* @author Vova Feldman (@svovaf)
|
1048 |
+
* @since 1.2.3
|
1049 |
+
*
|
1050 |
+
* @param string $text Translatable string.
|
1051 |
+
* @param string $key String key for overrides.
|
1052 |
+
* @param string $slug Module slug for overrides.
|
1053 |
+
*/
|
1054 |
+
function fs_esc_html_echo_inline( $text, $key = '', $slug = 'freemius' ) {
|
1055 |
+
echo esc_html( _fs_text_inline( $text, $key, $slug ) );
|
1056 |
+
}
|
1057 |
|
1058 |
#endregion
|
freemius/includes/fs-essential-functions.php
CHANGED
@@ -158,6 +158,7 @@
|
|
158 |
* Retrieve a translated text by key.
|
159 |
*
|
160 |
* @deprecated Use `fs_text()` instead since methods starting with `__` trigger warnings in Php 7.
|
|
|
161 |
*
|
162 |
* @author Vova Feldman (@svovaf)
|
163 |
* @since 1.1.4
|
@@ -209,6 +210,8 @@
|
|
209 |
*
|
210 |
* @deprecated Use `fs_echo()` instead for consistency with `fs_text()`.
|
211 |
*
|
|
|
|
|
212 |
* @author Vova Feldman (@svovaf)
|
213 |
* @since 1.1.4
|
214 |
*
|
158 |
* Retrieve a translated text by key.
|
159 |
*
|
160 |
* @deprecated Use `fs_text()` instead since methods starting with `__` trigger warnings in Php 7.
|
161 |
+
* @todo Remove this method in the future.
|
162 |
*
|
163 |
* @author Vova Feldman (@svovaf)
|
164 |
* @since 1.1.4
|
210 |
*
|
211 |
* @deprecated Use `fs_echo()` instead for consistency with `fs_text()`.
|
212 |
*
|
213 |
+
* @todo Remove this method in the future.
|
214 |
+
*
|
215 |
* @author Vova Feldman (@svovaf)
|
216 |
* @since 1.1.4
|
217 |
*
|
freemius/includes/fs-plugin-info-dialog.php
CHANGED
@@ -325,8 +325,12 @@
|
|
325 |
$plan->has_trial()
|
326 |
) . '" target="_parent">' .
|
327 |
( ! $plan->has_trial() ?
|
328 |
-
|
329 |
-
sprintf(
|
|
|
|
|
|
|
|
|
330 |
) .
|
331 |
'</a>';
|
332 |
|
@@ -348,23 +352,23 @@
|
|
348 |
* plugin is wordpress.org compliant. Therefore, require a download
|
349 |
* since installing external plugins is not allowed by the wp.org guidelines.
|
350 |
*/
|
351 |
-
return ' <a class="button button-primary right" href="' . esc_url( $api->download_link ) . '" target="_blank">' .
|
352 |
} else {
|
353 |
if ( $status['url'] ) {
|
354 |
-
return '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' .
|
355 |
}
|
356 |
}
|
357 |
break;
|
358 |
case 'update_available':
|
359 |
if ( $status['url'] ) {
|
360 |
-
return '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' .
|
361 |
}
|
362 |
break;
|
363 |
case 'newer_installed':
|
364 |
-
return '<a class="button button-primary right disabled">' . sprintf(
|
365 |
break;
|
366 |
case 'latest_installed':
|
367 |
-
return '<a class="button button-primary right disabled">' .
|
368 |
break;
|
369 |
}
|
370 |
|
@@ -477,13 +481,13 @@
|
|
477 |
);
|
478 |
|
479 |
$plugins_section_titles = array(
|
480 |
-
'description' =>
|
481 |
-
'installation' =>
|
482 |
-
'faq' =>
|
483 |
-
'screenshots' =>
|
484 |
-
'changelog' =>
|
485 |
-
'reviews' =>
|
486 |
-
'other_notes' =>
|
487 |
);
|
488 |
|
489 |
// Sanitize HTML
|
@@ -498,7 +502,7 @@
|
|
498 |
}
|
499 |
|
500 |
// Add after $api->slug is ready.
|
501 |
-
$plugins_section_titles['features'] =
|
502 |
|
503 |
$_tab = esc_attr( $tab );
|
504 |
|
@@ -508,7 +512,7 @@
|
|
508 |
$section = array_shift( $section_titles );
|
509 |
}
|
510 |
|
511 |
-
iframe_header(
|
512 |
|
513 |
$_with_banner = '';
|
514 |
|
@@ -580,7 +584,7 @@
|
|
580 |
<div class="fs-plan<?php if ( ! $is_multi_cycle ) {
|
581 |
echo ' fs-single-cycle';
|
582 |
} ?>" data-plan-id="<?php echo $plan->id ?>">
|
583 |
-
<h3 data-plan="<?php echo $plan->id ?>"><?php
|
584 |
<?php $has_annual = $first_pricing->has_annual() ?>
|
585 |
<?php $has_monthly = $first_pricing->has_monthly() ?>
|
586 |
<div class="nav-tab-wrapper">
|
@@ -605,9 +609,22 @@
|
|
605 |
<a class="nav-tab" data-billing-cycle="<?php echo $cycle ?>"
|
606 |
data-pricing="<?php echo esc_attr( json_encode( $prices ) ) ?>">
|
607 |
<?php if ( $is_featured ) : ?>
|
608 |
-
<label>★ <?php
|
609 |
<?php endif ?>
|
610 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
611 |
</a>
|
612 |
<?php endif ?>
|
613 |
<?php $i ++; endforeach ?>
|
@@ -618,21 +635,21 @@
|
|
618 |
_formatBillingFrequency = function (cycle) {
|
619 |
switch (cycle) {
|
620 |
case 'monthly':
|
621 |
-
return '<?php printf(
|
622 |
case 'annual':
|
623 |
-
return '<?php printf(
|
624 |
case 'lifetime':
|
625 |
-
return '<?php printf(
|
626 |
}
|
627 |
},
|
628 |
_formatLicensesTitle = function (pricing) {
|
629 |
switch (pricing.licenses) {
|
630 |
case 1:
|
631 |
-
return '<?php
|
632 |
case null:
|
633 |
-
return '<?php
|
634 |
default:
|
635 |
-
return '<?php
|
636 |
}
|
637 |
},
|
638 |
_formatPrice = function (pricing, cycle, multipleLicenses) {
|
@@ -642,14 +659,14 @@
|
|
642 |
var priceCycle;
|
643 |
switch (cycle) {
|
644 |
case 'monthly':
|
645 |
-
priceCycle = ' / <?php
|
646 |
break;
|
647 |
case 'lifetime':
|
648 |
priceCycle = '';
|
649 |
break;
|
650 |
case 'annual':
|
651 |
default:
|
652 |
-
priceCycle = ' / <?php
|
653 |
break;
|
654 |
}
|
655 |
|
@@ -701,7 +718,7 @@
|
|
701 |
|
702 |
// Render licenses prices.
|
703 |
if (1 == pricing.length) {
|
704 |
-
html = '<li><label><?php
|
705 |
} else {
|
706 |
for (var i = 0; i < pricing.length; i++) {
|
707 |
html += '<li><label><input name="pricing-<?php echo $plan->id ?>" type="radio" value="' + pricing[i].id + '">' + _formatPrice(pricing[i], billingCycle) + '</label></li>';
|
@@ -747,7 +764,7 @@
|
|
747 |
<?php $annual_discount = ( $has_annual && $has_monthly ) ? $plan->pricing[0]->annual_discount_percentage() : 0 ?>
|
748 |
<?php if ( $annual_discount > 0 ) : ?>
|
749 |
<span
|
750 |
-
class="fs-annual-discount"><?php printf(
|
751 |
<?php endif ?>
|
752 |
<ul class="fs-licenses">
|
753 |
</ul>
|
@@ -757,10 +774,10 @@
|
|
757 |
<?php $trial_period = $this->get_trial_period( $plan ) ?>
|
758 |
<ul class="fs-trial-terms">
|
759 |
<li>
|
760 |
-
<i class="dashicons dashicons-yes"></i><?php
|
761 |
</li>
|
762 |
<li>
|
763 |
-
<i class="dashicons dashicons-yes"></i><?php printf(
|
764 |
</li>
|
765 |
</ul>
|
766 |
<?php endif ?>
|
@@ -771,85 +788,99 @@
|
|
771 |
<?php endif ?>
|
772 |
<?php endif ?>
|
773 |
<div>
|
774 |
-
<h3><?php
|
775 |
<ul>
|
776 |
<?php if ( ! empty( $api->version ) ) { ?>
|
777 |
-
<li><strong><?php
|
778 |
<?php
|
779 |
}
|
780 |
if ( ! empty( $api->author ) ) {
|
781 |
?>
|
782 |
<li>
|
783 |
-
<strong><?php
|
784 |
</li>
|
785 |
<?php
|
786 |
}
|
787 |
if ( ! empty( $api->last_updated ) ) {
|
788 |
?>
|
789 |
-
<li><strong><?php
|
790 |
title="<?php echo $api->last_updated; ?>">
|
791 |
-
<?php
|
|
|
|
|
|
|
|
|
792 |
</span></li>
|
793 |
<?php
|
794 |
}
|
795 |
if ( ! empty( $api->requires ) ) {
|
796 |
?>
|
797 |
<li>
|
798 |
-
<strong><?php
|
799 |
</li>
|
800 |
<?php
|
801 |
}
|
802 |
if ( ! empty( $api->tested ) ) {
|
803 |
?>
|
804 |
-
<li><strong><?php
|
805 |
</li>
|
806 |
<?php
|
807 |
}
|
808 |
if ( ! empty( $api->downloaded ) ) {
|
809 |
?>
|
810 |
<li>
|
811 |
-
<strong><?php
|
812 |
-
|
|
|
|
|
|
|
|
|
|
|
813 |
number_format_i18n( $api->downloaded )
|
814 |
-
); ?>
|
815 |
</li>
|
816 |
<?php
|
817 |
}
|
818 |
if ( ! empty( $api->slug ) && empty( $api->external ) ) {
|
819 |
?>
|
820 |
<li><a target="_blank"
|
821 |
-
href="https://wordpress.org/plugins/<?php echo $api->slug; ?>/"><?php
|
822 |
</li>
|
823 |
<?php
|
824 |
}
|
825 |
if ( ! empty( $api->homepage ) ) {
|
826 |
?>
|
827 |
<li><a target="_blank"
|
828 |
-
href="<?php echo esc_url( $api->homepage ); ?>"><?php
|
829 |
</li>
|
830 |
<?php
|
831 |
}
|
832 |
if ( ! empty( $api->donate_link ) && empty( $api->contributors ) ) {
|
833 |
?>
|
834 |
<li><a target="_blank"
|
835 |
-
href="<?php echo esc_url( $api->donate_link ); ?>"><?php
|
836 |
</li>
|
837 |
<?php } ?>
|
838 |
</ul>
|
839 |
</div>
|
840 |
<?php if ( ! empty( $api->rating ) ) { ?>
|
841 |
-
<h3><?php
|
842 |
<?php wp_star_rating( array(
|
843 |
'rating' => $api->rating,
|
844 |
'type' => 'percent',
|
845 |
'number' => $api->num_ratings
|
846 |
) ); ?>
|
847 |
-
<small>(<?php
|
848 |
-
|
849 |
sprintf(
|
850 |
-
|
|
|
|
|
|
|
|
|
|
|
851 |
number_format_i18n( $api->num_ratings )
|
852 |
-
) )
|
853 |
<?php
|
854 |
}
|
855 |
|
@@ -858,7 +889,12 @@
|
|
858 |
// Avoid div-by-zero.
|
859 |
$_rating = $api->num_ratings ? ( $ratecount / $api->num_ratings ) : 0;
|
860 |
$stars_label = sprintf(
|
861 |
-
|
|
|
|
|
|
|
|
|
|
|
862 |
number_format_i18n( $key )
|
863 |
);
|
864 |
?>
|
@@ -866,7 +902,11 @@
|
|
866 |
<span class="counter-label"><a
|
867 |
href="https://wordpress.org/support/view/plugin-reviews/<?php echo $api->slug; ?>?filter=<?php echo $key; ?>"
|
868 |
target="_blank"
|
869 |
-
title="<?php echo esc_attr( sprintf(
|
|
|
|
|
|
|
|
|
870 |
<span class="counter-back">
|
871 |
<span class="counter-bar" style="width: <?php echo 92 * $_rating; ?>px;"></span>
|
872 |
</span>
|
@@ -877,7 +917,7 @@
|
|
877 |
}
|
878 |
if ( ! empty( $api->contributors ) ) {
|
879 |
?>
|
880 |
-
<h3><?php
|
881 |
<ul class="contributors">
|
882 |
<?php
|
883 |
foreach ( (array) $api->contributors as $contrib_username => $contrib_profile ) {
|
@@ -898,16 +938,16 @@
|
|
898 |
</ul>
|
899 |
<?php if ( ! empty( $api->donate_link ) ) { ?>
|
900 |
<a target="_blank"
|
901 |
-
href="<?php echo esc_url( $api->donate_link ); ?>"><?php
|
902 |
<?php } ?>
|
903 |
<?php } ?>
|
904 |
</div>
|
905 |
<div id="section-holder" class="wrap">
|
906 |
<?php
|
907 |
if ( ! empty( $api->tested ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->tested ) ), $api->tested, '>' ) ) {
|
908 |
-
echo '<div class="notice notice-warning"><p>' . '<strong>' .
|
909 |
} else if ( ! empty( $api->requires ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->requires ) ), $api->requires, '<' ) ) {
|
910 |
-
echo '<div class="notice notice-warning"><p>' . '<strong>' .
|
911 |
}
|
912 |
|
913 |
foreach ( (array) $api->sections as $section_name => $content ) {
|
@@ -925,7 +965,9 @@
|
|
925 |
$missing_notice = array(
|
926 |
'type' => 'error',
|
927 |
'id' => md5( microtime() ),
|
928 |
-
'message' =>
|
|
|
|
|
929 |
);
|
930 |
fs_require_template( 'admin-notice.php', $missing_notice );
|
931 |
}
|
325 |
$plan->has_trial()
|
326 |
) . '" target="_parent">' .
|
327 |
( ! $plan->has_trial() ?
|
328 |
+
fs_text_x_inline( 'Purchase', 'verb', 'purchase', $api->slug ) :
|
329 |
+
sprintf(
|
330 |
+
/* translators: %s: N-days trial */
|
331 |
+
fs_text_inline( 'Start my free %s', 'start-free-x', $api->slug ),
|
332 |
+
$this->get_trial_period( $plan )
|
333 |
+
)
|
334 |
) .
|
335 |
'</a>';
|
336 |
|
352 |
* plugin is wordpress.org compliant. Therefore, require a download
|
353 |
* since installing external plugins is not allowed by the wp.org guidelines.
|
354 |
*/
|
355 |
+
return ' <a class="button button-primary right" href="' . esc_url( $api->download_link ) . '" target="_blank">' . fs_esc_html_x_inline( 'Download Latest', 'as download latest version', 'download-latest', $api->slug ) . '</a>';
|
356 |
} else {
|
357 |
if ( $status['url'] ) {
|
358 |
+
return '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . fs_esc_html_inline( 'Install Now', 'install-now', $api->slug ) . '</a>';
|
359 |
}
|
360 |
}
|
361 |
break;
|
362 |
case 'update_available':
|
363 |
if ( $status['url'] ) {
|
364 |
+
return '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . fs_text_inline( 'Install Update Now', 'install-update-now', $api->slug ) . '</a>';
|
365 |
}
|
366 |
break;
|
367 |
case 'newer_installed':
|
368 |
+
return '<a class="button button-primary right disabled">' . sprintf( fs_text_inline( 'Newer Version (%s) Installed', 'newer-installed', $api->slug ), $status['version'] ) . '</a>';
|
369 |
break;
|
370 |
case 'latest_installed':
|
371 |
+
return '<a class="button button-primary right disabled">' . fs_text_inline( 'Latest Version Installed', 'latest-installed', $api->slug ) . '</a>';
|
372 |
break;
|
373 |
}
|
374 |
|
481 |
);
|
482 |
|
483 |
$plugins_section_titles = array(
|
484 |
+
'description' => fs_text_x_inline( 'Description', 'Plugin installer section title', 'description', $api->slug ),
|
485 |
+
'installation' => fs_text_x_inline( 'Installation', 'Plugin installer section title', 'installation', $api->slug ),
|
486 |
+
'faq' => fs_text_x_inline( 'FAQ', 'Plugin installer section title', 'faq', $api->slug ),
|
487 |
+
'screenshots' => fs_text_inline( 'Screenshots', 'screenshots', $api->slug ),
|
488 |
+
'changelog' => fs_text_x_inline( 'Changelog', 'Plugin installer section title', 'changelog', $api->slug ),
|
489 |
+
'reviews' => fs_text_x_inline( 'Reviews', 'Plugin installer section title', 'reviews', $api->slug ),
|
490 |
+
'other_notes' => fs_text_x_inline( 'Other Notes', 'Plugin installer section title', 'other-notes', $api->slug ),
|
491 |
);
|
492 |
|
493 |
// Sanitize HTML
|
502 |
}
|
503 |
|
504 |
// Add after $api->slug is ready.
|
505 |
+
$plugins_section_titles['features'] = fs_text_x_inline( 'Features & Pricing', 'Plugin installer section title', 'features-and-pricing', $api->slug );
|
506 |
|
507 |
$_tab = esc_attr( $tab );
|
508 |
|
512 |
$section = array_shift( $section_titles );
|
513 |
}
|
514 |
|
515 |
+
iframe_header( fs_text_inline( 'Plugin Install', 'plugin-install', $api->slug ) );
|
516 |
|
517 |
$_with_banner = '';
|
518 |
|
584 |
<div class="fs-plan<?php if ( ! $is_multi_cycle ) {
|
585 |
echo ' fs-single-cycle';
|
586 |
} ?>" data-plan-id="<?php echo $plan->id ?>">
|
587 |
+
<h3 data-plan="<?php echo $plan->id ?>"><?php echo esc_html( sprintf( fs_text_x_inline( '%s Plan', 'e.g. Professional Plan', 'x-plan', $api->slug ), $plan->title ) ) ?></h3>
|
588 |
<?php $has_annual = $first_pricing->has_annual() ?>
|
589 |
<?php $has_monthly = $first_pricing->has_monthly() ?>
|
590 |
<div class="nav-tab-wrapper">
|
609 |
<a class="nav-tab" data-billing-cycle="<?php echo $cycle ?>"
|
610 |
data-pricing="<?php echo esc_attr( json_encode( $prices ) ) ?>">
|
611 |
<?php if ( $is_featured ) : ?>
|
612 |
+
<label>★ <?php fs_esc_html_echo_x_inline( 'Best', 'e.g. the best product', 'best', $api->slug ) ?> ★</label>
|
613 |
<?php endif ?>
|
614 |
+
<?php
|
615 |
+
switch ($cycle)
|
616 |
+
{
|
617 |
+
case 'monthly':
|
618 |
+
fs_esc_html_echo_x_inline( 'Monthly', 'as every month', 'monthly', $api->slug );
|
619 |
+
break;
|
620 |
+
case 'annual':
|
621 |
+
fs_esc_html_echo_x_inline( 'Annual', 'as once a year', 'annual', $api->slug );
|
622 |
+
break;
|
623 |
+
case 'lifetime':
|
624 |
+
fs_esc_html_echo_inline( 'Lifetime', 'lifetime', $api->slug );
|
625 |
+
break;
|
626 |
+
}
|
627 |
+
?>
|
628 |
</a>
|
629 |
<?php endif ?>
|
630 |
<?php $i ++; endforeach ?>
|
635 |
_formatBillingFrequency = function (cycle) {
|
636 |
switch (cycle) {
|
637 |
case 'monthly':
|
638 |
+
return '<?php printf( fs_text_x_inline( 'Billed %s', 'e.g. billed monthly', 'billed-x', $api->slug), fs_text_x_inline( 'Monthly', 'as every month', 'monthly', $api->slug ) ) ?>';
|
639 |
case 'annual':
|
640 |
+
return '<?php printf( fs_text_x_inline( 'Billed %s', 'e.g. billed monthly', 'billed-x', $api->slug), fs_text_x_inline( 'Annually', 'as once a year', 'annually', $api->slug ) ) ?>';
|
641 |
case 'lifetime':
|
642 |
+
return '<?php printf( fs_text_x_inline( 'Billed %s', 'e.g. billed monthly', 'billed-x', $api->slug), fs_text_x_inline( 'Once', 'as once a year', 'once', $api->slug ) ) ?>';
|
643 |
}
|
644 |
},
|
645 |
_formatLicensesTitle = function (pricing) {
|
646 |
switch (pricing.licenses) {
|
647 |
case 1:
|
648 |
+
return '<?php fs_esc_attr_echo_inline( 'Single Site License', 'license-single-site', $api->slug ) ?>';
|
649 |
case null:
|
650 |
+
return '<?php fs_esc_attr_echo_inline( 'Unlimited Licenses', 'license-unlimited', $api->slug ) ?>';
|
651 |
default:
|
652 |
+
return '<?php fs_esc_attr_echo_inline( 'Up to %s Sites', 'license-x-sites', $api->slug ) ?>'.replace('%s', pricing.licenses);
|
653 |
}
|
654 |
},
|
655 |
_formatPrice = function (pricing, cycle, multipleLicenses) {
|
659 |
var priceCycle;
|
660 |
switch (cycle) {
|
661 |
case 'monthly':
|
662 |
+
priceCycle = ' / <?php fs_echo_x_inline( 'mo', 'as monthly period', 'mo', $api->slug ) ?>';
|
663 |
break;
|
664 |
case 'lifetime':
|
665 |
priceCycle = '';
|
666 |
break;
|
667 |
case 'annual':
|
668 |
default:
|
669 |
+
priceCycle = ' / <?php fs_echo_x_inline('year', 'as annual period', 'year', $api->slug) ?>';
|
670 |
break;
|
671 |
}
|
672 |
|
718 |
|
719 |
// Render licenses prices.
|
720 |
if (1 == pricing.length) {
|
721 |
+
html = '<li><label><?php echo fs_esc_attr_x_inline( 'Price', 'noun', 'price', $api->slug ) ?>: ' + _formatPrice(pricing[0], billingCycle, false) + '</label></li>';
|
722 |
} else {
|
723 |
for (var i = 0; i < pricing.length; i++) {
|
724 |
html += '<li><label><input name="pricing-<?php echo $plan->id ?>" type="radio" value="' + pricing[i].id + '">' + _formatPrice(pricing[i], billingCycle) + '</label></li>';
|
764 |
<?php $annual_discount = ( $has_annual && $has_monthly ) ? $plan->pricing[0]->annual_discount_percentage() : 0 ?>
|
765 |
<?php if ( $annual_discount > 0 ) : ?>
|
766 |
<span
|
767 |
+
class="fs-annual-discount"><?php printf( fs_esc_html_x_inline( 'Save %s', 'as a discount of $5 or 10%', 'save-x', $api->slug ), $annual_discount . '%' ) ?></span>
|
768 |
<?php endif ?>
|
769 |
<ul class="fs-licenses">
|
770 |
</ul>
|
774 |
<?php $trial_period = $this->get_trial_period( $plan ) ?>
|
775 |
<ul class="fs-trial-terms">
|
776 |
<li>
|
777 |
+
<i class="dashicons dashicons-yes"></i><?php echo esc_html( sprintf( fs_text_inline( 'No commitment for %s - cancel anytime', 'no-commitment-x', $api->slug ), $trial_period ) ) ?>
|
778 |
</li>
|
779 |
<li>
|
780 |
+
<i class="dashicons dashicons-yes"></i><?php printf( esc_html( fs_text_inline( 'After your free %s, pay as little as %s', 'after-x-pay-as-little-y', $api->slug ) ), $trial_period, '<var class="fs-price">' . $this->get_price_tag( $plan, $plan->pricing[0] ) . '</var>' ) ?>
|
781 |
</li>
|
782 |
</ul>
|
783 |
<?php endif ?>
|
788 |
<?php endif ?>
|
789 |
<?php endif ?>
|
790 |
<div>
|
791 |
+
<h3><?php fs_echo_inline( 'Details', 'details', $api->slug ) ?></h3>
|
792 |
<ul>
|
793 |
<?php if ( ! empty( $api->version ) ) { ?>
|
794 |
+
<li><strong><?php fs_esc_html_echo_x_inline( 'Version', 'product version', 'version', $api->slug ); ?>:</strong> <?php echo $api->version; ?></li>
|
795 |
<?php
|
796 |
}
|
797 |
if ( ! empty( $api->author ) ) {
|
798 |
?>
|
799 |
<li>
|
800 |
+
<strong><?php fs_echo_x_inline( 'Author', 'as the plugin author', 'author', $api->slug ); ?>:</strong> <?php echo links_add_target( $api->author, '_blank' ); ?>
|
801 |
</li>
|
802 |
<?php
|
803 |
}
|
804 |
if ( ! empty( $api->last_updated ) ) {
|
805 |
?>
|
806 |
+
<li><strong><?php fs_echo_inline( 'Last Updated', 'last-updated', $api->slug ); ?>:</strong> <span
|
807 |
title="<?php echo $api->last_updated; ?>">
|
808 |
+
<?php echo esc_html( sprintf(
|
809 |
+
/* translators: %s: time period (e.g. "2 hours" ago) */
|
810 |
+
fs_text_x_inline( '%s ago', 'x-ago', $api->slug ),
|
811 |
+
human_time_diff( strtotime( $api->last_updated ) )
|
812 |
+
) ) ?>
|
813 |
</span></li>
|
814 |
<?php
|
815 |
}
|
816 |
if ( ! empty( $api->requires ) ) {
|
817 |
?>
|
818 |
<li>
|
819 |
+
<strong><?php fs_esc_html_echo_inline( 'Requires WordPress Version', 'requires-wordpress-version', $api->slug ) ?>:</strong> <?php echo esc_html( sprintf( fs_text_inline( '%s or higher', 'x-or-higher', $api->slug ), $api->requires ) ) ?>
|
820 |
</li>
|
821 |
<?php
|
822 |
}
|
823 |
if ( ! empty( $api->tested ) ) {
|
824 |
?>
|
825 |
+
<li><strong><?php fs_esc_html_echo_inline( 'Compatible up to', 'compatible-up-to', $api->slug ); ?>:</strong> <?php echo $api->tested; ?>
|
826 |
</li>
|
827 |
<?php
|
828 |
}
|
829 |
if ( ! empty( $api->downloaded ) ) {
|
830 |
?>
|
831 |
<li>
|
832 |
+
<strong><?php fs_esc_html_echo_inline( 'Downloaded', 'downloaded', $api->slug ) ?>:</strong> <?php echo esc_html( sprintf(
|
833 |
+
( ( 1 == $api->downloaded ) ?
|
834 |
+
/* translators: %s: 1 or One (Number of times downloaded) */
|
835 |
+
fs_text_inline( '%s time', 'x-time', $api->slug ) :
|
836 |
+
/* translators: %s: Number of times downloaded */
|
837 |
+
fs_text_inline( '%s times', 'x-times', $api->slug )
|
838 |
+
),
|
839 |
number_format_i18n( $api->downloaded )
|
840 |
+
) ); ?>
|
841 |
</li>
|
842 |
<?php
|
843 |
}
|
844 |
if ( ! empty( $api->slug ) && empty( $api->external ) ) {
|
845 |
?>
|
846 |
<li><a target="_blank"
|
847 |
+
href="https://wordpress.org/plugins/<?php echo $api->slug; ?>/"><?php fs_esc_html_echo_inline( 'WordPress.org Plugin Page', 'wp-org-plugin-page', $api->slug ) ?> »</a>
|
848 |
</li>
|
849 |
<?php
|
850 |
}
|
851 |
if ( ! empty( $api->homepage ) ) {
|
852 |
?>
|
853 |
<li><a target="_blank"
|
854 |
+
href="<?php echo esc_url( $api->homepage ); ?>"><?php fs_esc_html_echo_inline( 'Plugin Homepage', 'plugin-homepage', $api->slug ) ?> »</a>
|
855 |
</li>
|
856 |
<?php
|
857 |
}
|
858 |
if ( ! empty( $api->donate_link ) && empty( $api->contributors ) ) {
|
859 |
?>
|
860 |
<li><a target="_blank"
|
861 |
+
href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_esc_html_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?> »</a>
|
862 |
</li>
|
863 |
<?php } ?>
|
864 |
</ul>
|
865 |
</div>
|
866 |
<?php if ( ! empty( $api->rating ) ) { ?>
|
867 |
+
<h3><?php fs_echo_inline( 'Average Rating', 'average-rating', $api->slug ); ?></h3>
|
868 |
<?php wp_star_rating( array(
|
869 |
'rating' => $api->rating,
|
870 |
'type' => 'percent',
|
871 |
'number' => $api->num_ratings
|
872 |
) ); ?>
|
873 |
+
<small>(<?php echo esc_html( sprintf(
|
874 |
+
fs_text_inline( 'based on %s', 'based-on-x', $api->slug ),
|
875 |
sprintf(
|
876 |
+
( ( 1 == $api->num_ratings ) ?
|
877 |
+
/* translators: %s: 1 or One */
|
878 |
+
fs_text_inline( '%s rating', 'x-rating', $api->slug ) :
|
879 |
+
/* translators: %s: Number larger than 1 */
|
880 |
+
fs_text_inline( '%s ratings', 'x-ratings', $api->slug )
|
881 |
+
),
|
882 |
number_format_i18n( $api->num_ratings )
|
883 |
+
) ) ) ?>)</small>
|
884 |
<?php
|
885 |
}
|
886 |
|
889 |
// Avoid div-by-zero.
|
890 |
$_rating = $api->num_ratings ? ( $ratecount / $api->num_ratings ) : 0;
|
891 |
$stars_label = sprintf(
|
892 |
+
( ( 1 == $key ) ?
|
893 |
+
/* translators: %s: 1 or One */
|
894 |
+
fs_text_inline( '%s star', 'x-star', $api->slug ) :
|
895 |
+
/* translators: %s: Number larger than 1 */
|
896 |
+
fs_text_inline( '%s stars', 'x-stars', $api->slug )
|
897 |
+
),
|
898 |
number_format_i18n( $key )
|
899 |
);
|
900 |
?>
|
902 |
<span class="counter-label"><a
|
903 |
href="https://wordpress.org/support/view/plugin-reviews/<?php echo $api->slug; ?>?filter=<?php echo $key; ?>"
|
904 |
target="_blank"
|
905 |
+
title="<?php echo esc_attr( sprintf(
|
906 |
+
/* translators: %s: # of stars (e.g. 5 stars) */
|
907 |
+
fs_text_inline( 'Click to see reviews that provided a rating of %s', 'click-to-reviews', $api->slug ),
|
908 |
+
$stars_label
|
909 |
+
) ) ?>"><?php echo $stars_label ?></a></span>
|
910 |
<span class="counter-back">
|
911 |
<span class="counter-bar" style="width: <?php echo 92 * $_rating; ?>px;"></span>
|
912 |
</span>
|
917 |
}
|
918 |
if ( ! empty( $api->contributors ) ) {
|
919 |
?>
|
920 |
+
<h3><?php fs_echo_inline( 'Contributors', 'contributors', $api->slug ); ?></h3>
|
921 |
<ul class="contributors">
|
922 |
<?php
|
923 |
foreach ( (array) $api->contributors as $contrib_username => $contrib_profile ) {
|
938 |
</ul>
|
939 |
<?php if ( ! empty( $api->donate_link ) ) { ?>
|
940 |
<a target="_blank"
|
941 |
+
href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?> »</a>
|
942 |
<?php } ?>
|
943 |
<?php } ?>
|
944 |
</div>
|
945 |
<div id="section-holder" class="wrap">
|
946 |
<?php
|
947 |
if ( ! empty( $api->tested ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->tested ) ), $api->tested, '>' ) ) {
|
948 |
+
echo '<div class="notice notice-warning"><p>' . '<strong>' . fs_text_inline( 'Warning', 'warning', $api->slug ) . ':</strong> ' . fs_text_inline( 'This plugin has not been tested with your current version of WordPress.', 'not-tested-warning', $api->slug ) . '</p></div>';
|
949 |
} else if ( ! empty( $api->requires ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->requires ) ), $api->requires, '<' ) ) {
|
950 |
+
echo '<div class="notice notice-warning"><p>' . '<strong>' . fs_text_inline( 'Warning', 'warning', $api->slug ) . ':</strong> ' . fs_text_inline( 'This plugin has not been marked as compatible with your version of WordPress.', 'not-compatible-warning', $api->slug ) . '</p></div>';
|
951 |
}
|
952 |
|
953 |
foreach ( (array) $api->sections as $section_name => $content ) {
|
965 |
$missing_notice = array(
|
966 |
'type' => 'error',
|
967 |
'id' => md5( microtime() ),
|
968 |
+
'message' => $api->is_paid ?
|
969 |
+
fs_text_inline( 'Paid add-on must be deployed to Freemius.', 'paid-addon-not-deployed', $api->slug ) :
|
970 |
+
fs_text_inline( 'Add-on must be deployed to WordPress.org or Freemius.', 'free-addon-not-deployed', $api->slug ),
|
971 |
);
|
972 |
fs_require_template( 'admin-notice.php', $missing_notice );
|
973 |
}
|
freemius/includes/i18n.php
CHANGED
@@ -4,6 +4,8 @@
|
|
4 |
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
6 |
* @since 1.1.4
|
|
|
|
|
7 |
*/
|
8 |
|
9 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -29,7 +31,7 @@
|
|
29 |
* my_freemius->override_i18n( array(
|
30 |
* 'opt-in-connect' => __( "Yes - I'm in!", '{your-text_domain}' ),
|
31 |
* 'skip' => __( 'Not today', '{your-text_domain}' ),
|
32 |
-
* );
|
33 |
*/
|
34 |
global $fs_text;
|
35 |
|
@@ -95,8 +97,54 @@
|
|
95 |
'optin-x-now' => _fs_text( 'Opt in to make "%s" Better!' ),
|
96 |
'error' => _fs_text( 'Error' ),
|
97 |
'failed-finding-main-path' => _fs_text( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.' ),
|
98 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
|
|
|
100 |
'expiration' => _fs_x( 'Expiration', 'as expiration date' ),
|
101 |
'license' => _fs_x( 'License', 'as software license' ),
|
102 |
'not-verified' => _fs_text( 'not verified' ),
|
4 |
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
6 |
* @since 1.1.4
|
7 |
+
*
|
8 |
+
* @deprecated This file is no longer in use. It's still in the project for backward compatibility.
|
9 |
*/
|
10 |
|
11 |
if ( ! defined( 'ABSPATH' ) ) {
|
31 |
* my_freemius->override_i18n( array(
|
32 |
* 'opt-in-connect' => __( "Yes - I'm in!", '{your-text_domain}' ),
|
33 |
* 'skip' => __( 'Not today', '{your-text_domain}' ),
|
34 |
+
* ) );
|
35 |
*/
|
36 |
global $fs_text;
|
37 |
|
97 |
'optin-x-now' => _fs_text( 'Opt in to make "%s" Better!' ),
|
98 |
'error' => _fs_text( 'Error' ),
|
99 |
'failed-finding-main-path' => _fs_text( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.' ),
|
100 |
+
'learn-more' => _fs_text( 'Learn more' ),
|
101 |
+
|
102 |
+
#region Affiliation
|
103 |
+
'affiliation' => _fs_text( 'Affiliation' ),
|
104 |
+
'affiliate' => _fs_text( 'Affiliate' ),
|
105 |
+
'affiliate-tracking' => _fs_text( '%s tracking cookie after the first visit to maximize earnings potential.' ),
|
106 |
+
'renewals-commission' => _fs_text( 'Get commission for automated subscription renewals.' ),
|
107 |
+
'affiliate-application-accepted' => _fs_text( "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s." ),
|
108 |
+
'affiliate-application-thank-you' => _fs_text( "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information." ),
|
109 |
+
'affiliate-application-rejected' => _fs_text( "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days." ),
|
110 |
+
'affiliate-account-suspended' => _fs_text( 'Your affiliation account was temporarily suspended.' ),
|
111 |
+
'affiliate-account-blocked' => _fs_text( 'Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support.' ),
|
112 |
+
'become-an-ambassador' => _fs_text( 'Like the %s? Become our ambassador and earn cash ;-)' ),
|
113 |
+
'become-an-ambassador-admin-notice' => _fs_text( 'Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!' ),
|
114 |
+
'refer-new-customers' => _fs_text( 'Refer new customers to our %s and earn %s commission on each successful sale you refer!' ),
|
115 |
+
'program-summary' => _fs_text( 'Program Summary' ),
|
116 |
+
'commission-on-new-license-purchase' => _fs_text( '%s commission when a customer purchases a new license.' ),
|
117 |
+
'unlimited-commissions' => _fs_text( 'Unlimited commissions.' ),
|
118 |
+
'minimum-payout-amount' => _fs_text( '%s minimum payout amount.' ),
|
119 |
+
'payouts-unit-and-processing' => _fs_text( 'Payouts are in USD and processed monthly via PayPal.' ),
|
120 |
+
'commission-payment' => _fs_text( 'As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days.' ),
|
121 |
+
'become-an-affiliate' => _fs_text( 'Become an affiliate' ),
|
122 |
+
'apply-to-become-an-affiliate' => _fs_text( 'Apply to become an affiliate' ),
|
123 |
+
'full-name' => _fs_text( 'Full name' ),
|
124 |
+
'paypal-account-email-address' => _fs_text( 'PayPal account email address' ),
|
125 |
+
'promotion-methods' => _fs_text( 'Promotion methods' ),
|
126 |
+
'social-media' => _fs_text( 'Social media (Facebook, Twitter, etc.)' ),
|
127 |
+
'mobile-apps' => _fs_text( 'Mobile apps' ),
|
128 |
+
'statistics-information-field-label' => _fs_text( 'Website, email, and social media statistics (optional)' ),
|
129 |
+
'statistics-information-field-desc' => _fs_text( 'Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential).' ),
|
130 |
+
'promotion-method-desc-field-label' => _fs_text( 'How will you promote us?' ),
|
131 |
+
'promotion-method-desc-field-desc' => _fs_text( 'Please provide details on how you intend to promote %s (please be as specific as possible).' ),
|
132 |
+
'domain-field-label' => _fs_text( 'Where are you going to promote the %s?' ),
|
133 |
+
'domain-field-desc' => _fs_text( 'Enter the domain of your website or other websites from where you plan to promote the %s.' ),
|
134 |
+
'extra-domain-fields-label' => _fs_text( 'Extra Domains' ),
|
135 |
+
'extra-domain-fields-desc' => _fs_text( 'Extra domains where you will be marketing the product from.' ),
|
136 |
+
'add-another-domain' => _fs_text( 'Add another domain' ),
|
137 |
+
'remove' => _fs_x( 'Remove', 'Remove domain' ),
|
138 |
+
'email-address-is-required' => _fs_text( 'Email address is required.' ),
|
139 |
+
'domain-is-required' => _fs_text( 'Domain is required.' ),
|
140 |
+
'invalid-domain' => _fs_text( 'Invalid domain' ),
|
141 |
+
'paypal-email-address-is-required' => _fs_text( 'PayPal email address is required.' ),
|
142 |
+
'processing' => _fs_text( 'Processing...' ),
|
143 |
+
'non-expiring' => _fs_text( 'Non-expiring' ),
|
144 |
+
'account-is-pending-activation' => _fs_text( 'Account is pending activation.' ),
|
145 |
+
#endregion Affiliation
|
146 |
|
147 |
+
#region Account
|
148 |
'expiration' => _fs_x( 'Expiration', 'as expiration date' ),
|
149 |
'license' => _fs_x( 'License', 'as software license' ),
|
150 |
'not-verified' => _fs_text( 'not verified' ),
|
freemius/includes/l10n.php
CHANGED
@@ -25,75 +25,6 @@
|
|
25 |
return $fn( $text, 'freemius' );
|
26 |
}
|
27 |
|
28 |
-
/**
|
29 |
-
* Retrieve the translation of $text and escapes it for safe use in an attribute.
|
30 |
-
*
|
31 |
-
* @since 1.2.1.6
|
32 |
-
*
|
33 |
-
* @param string $text
|
34 |
-
*
|
35 |
-
* @return string
|
36 |
-
*/
|
37 |
-
function _fs_esc_attr( $text ) {
|
38 |
-
// Avoid misleading Theme Check warning.
|
39 |
-
$fn = 'translate';
|
40 |
-
return esc_attr( $fn( $text, 'freemius' ) );
|
41 |
-
}
|
42 |
-
|
43 |
-
/**
|
44 |
-
* Retrieve the translation of $text and escapes it for safe use in HTML output.
|
45 |
-
*
|
46 |
-
* @since 1.2.1.6
|
47 |
-
*
|
48 |
-
* @param string $text
|
49 |
-
*
|
50 |
-
* @return string
|
51 |
-
*/
|
52 |
-
function _fs_esc_html( $text ) {
|
53 |
-
// Avoid misleading Theme Check warning.
|
54 |
-
$fn = 'translate';
|
55 |
-
return esc_html( $fn( $text, 'freemius' ) );
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Display translated text.
|
60 |
-
*
|
61 |
-
* @since 1.2.0
|
62 |
-
*
|
63 |
-
* @param string $text
|
64 |
-
*/
|
65 |
-
function _fs_echo( $text ) {
|
66 |
-
// Avoid misleading Theme Check warning.
|
67 |
-
$fn = 'translate';
|
68 |
-
echo $fn( $text, 'freemius' );
|
69 |
-
}
|
70 |
-
|
71 |
-
/**
|
72 |
-
* Display translated text that has been escaped for safe use in an attribute.
|
73 |
-
*
|
74 |
-
* @since 1.2.1.6
|
75 |
-
*
|
76 |
-
* @param string $text
|
77 |
-
*/
|
78 |
-
function _fs_esc_attr_echo( $text ) {
|
79 |
-
// Avoid misleading Theme Check warning.
|
80 |
-
$fn = 'translate';
|
81 |
-
echo esc_attr( $fn( $text, 'freemius' ) );
|
82 |
-
}
|
83 |
-
|
84 |
-
/**
|
85 |
-
* Display translated text that has been escaped for safe use in HTML output.
|
86 |
-
*
|
87 |
-
* @since 1.2.1.6
|
88 |
-
*
|
89 |
-
* @param string $text
|
90 |
-
*/
|
91 |
-
function _fs_esc_html_echo( $text ) {
|
92 |
-
// Avoid misleading Theme Check warning.
|
93 |
-
$fn = 'translate';
|
94 |
-
echo esc_html( $fn( $text, 'freemius' ) );
|
95 |
-
}
|
96 |
-
|
97 |
/**
|
98 |
* Retrieve translated string with gettext context.
|
99 |
*
|
@@ -115,154 +46,3 @@
|
|
115 |
$fn = 'translate_with_gettext_context';
|
116 |
return $fn( $text, $context, 'freemius' );
|
117 |
}
|
118 |
-
|
119 |
-
/**
|
120 |
-
* Display translated string with gettext context.
|
121 |
-
*
|
122 |
-
* @since 1.2.1.6
|
123 |
-
*
|
124 |
-
* @param string $text
|
125 |
-
* @param string $context
|
126 |
-
*/
|
127 |
-
function _fs_ex( $text, $context ) {
|
128 |
-
// Avoid misleading Theme Check warning.
|
129 |
-
$fn = '_x';
|
130 |
-
echo $fn( $text, $context, 'freemius' );
|
131 |
-
}
|
132 |
-
|
133 |
-
/**
|
134 |
-
* Translate string with gettext context, and escapes it for safe use in an attribute.
|
135 |
-
*
|
136 |
-
* @since 1.2.1.6
|
137 |
-
*
|
138 |
-
* @param string $text
|
139 |
-
* @param string $context
|
140 |
-
*
|
141 |
-
* @return string
|
142 |
-
*/
|
143 |
-
function _fs_esc_attr_x( $text, $context ) {
|
144 |
-
// Avoid misleading Theme Check warning.
|
145 |
-
$fn = 'translate_with_gettext_context';
|
146 |
-
return esc_attr( $fn( $text, $context, 'freemius' ) );
|
147 |
-
}
|
148 |
-
|
149 |
-
/**
|
150 |
-
* Translate string with gettext context, and escapes it for safe use in HTML output.
|
151 |
-
*
|
152 |
-
* @since 2.9.0
|
153 |
-
*
|
154 |
-
* @param string $text
|
155 |
-
* @param string $context
|
156 |
-
*
|
157 |
-
* @return string
|
158 |
-
*/
|
159 |
-
function _fs_esc_html_x( $text, $context ) {
|
160 |
-
// Avoid misleading Theme Check warning.
|
161 |
-
$fn = 'translate_with_gettext_context';
|
162 |
-
return esc_html( $fn( $text, $context, 'freemius' ) );
|
163 |
-
}
|
164 |
-
|
165 |
-
/**
|
166 |
-
* Translates and retrieves the singular or plural form based on the supplied number.
|
167 |
-
*
|
168 |
-
* @since 1.2.1.6
|
169 |
-
*
|
170 |
-
* @param string $single
|
171 |
-
* @param string $plural
|
172 |
-
* @param int $number
|
173 |
-
*
|
174 |
-
* @return string
|
175 |
-
*/
|
176 |
-
function _fs_n( $single, $plural, $number ) {
|
177 |
-
$translations = get_translations_for_domain( 'freemius' );
|
178 |
-
$translation = $translations->translate_plural( $single, $plural, $number );
|
179 |
-
|
180 |
-
/**
|
181 |
-
* Filters the singular or plural form of a string.
|
182 |
-
*
|
183 |
-
* @since WP 2.2.0
|
184 |
-
*
|
185 |
-
* @param string $translation
|
186 |
-
* @param string $single
|
187 |
-
* @param string $plural
|
188 |
-
* @param string $number
|
189 |
-
* @param string $domain
|
190 |
-
*/
|
191 |
-
return apply_filters( 'ngettext', $translation, $single, $plural, $number, 'freemius' );
|
192 |
-
}
|
193 |
-
|
194 |
-
/**
|
195 |
-
* Translates and retrieves the singular or plural form based on the supplied number, with gettext context.
|
196 |
-
*
|
197 |
-
* @since 1.2.1.6
|
198 |
-
*
|
199 |
-
* @param string $single
|
200 |
-
* @param string $plural
|
201 |
-
* @param int $number
|
202 |
-
* @param string $context
|
203 |
-
*
|
204 |
-
* @return string
|
205 |
-
*/
|
206 |
-
function _fs_nx($single, $plural, $number, $context ) {
|
207 |
-
$translations = get_translations_for_domain( 'freemius' );
|
208 |
-
$translation = $translations->translate_plural( $single, $plural, $number, $context );
|
209 |
-
|
210 |
-
/**
|
211 |
-
* Filters the singular or plural form of a string with gettext context.
|
212 |
-
*
|
213 |
-
* @since WP 3.0
|
214 |
-
*
|
215 |
-
* @param string $translation
|
216 |
-
* @param string $single
|
217 |
-
* @param string $plural
|
218 |
-
* @param string $number
|
219 |
-
* @param string $context
|
220 |
-
* @param string $domain
|
221 |
-
*/
|
222 |
-
return apply_filters( 'ngettext_with_context', $translation, $single, $plural, $number, $context, 'freemius' );
|
223 |
-
}
|
224 |
-
|
225 |
-
/**
|
226 |
-
* Registers plural strings in POT file, but does not translate them.
|
227 |
-
*
|
228 |
-
* Used when you want to keep structures with translatable plural
|
229 |
-
* strings and use them later when the number is known.
|
230 |
-
*
|
231 |
-
* @since 1.2.1.6
|
232 |
-
*
|
233 |
-
* @param string $singular
|
234 |
-
* @param string $plural
|
235 |
-
*
|
236 |
-
* @return array
|
237 |
-
*/
|
238 |
-
function _fs_n_noop( $singular, $plural ) {
|
239 |
-
return array(
|
240 |
-
'singular' => $singular,
|
241 |
-
'plural' => $plural,
|
242 |
-
'context' => null,
|
243 |
-
'domain' => 'freemius'
|
244 |
-
);
|
245 |
-
}
|
246 |
-
|
247 |
-
/**
|
248 |
-
* Registers plural strings with gettext context in POT file, but does not translate them.
|
249 |
-
*
|
250 |
-
* Used when you want to keep structures with translatable plural
|
251 |
-
* strings and use them later when the number is known.
|
252 |
-
*
|
253 |
-
* @since 1.2.1.6
|
254 |
-
*
|
255 |
-
* @param string $singular
|
256 |
-
* @param string $plural
|
257 |
-
* @param string $context
|
258 |
-
*
|
259 |
-
* @return array
|
260 |
-
*/
|
261 |
-
function _fs_nx_noop( $singular, $plural, $context ) {
|
262 |
-
return array(
|
263 |
-
'singular' => $singular,
|
264 |
-
'plural' => $plural,
|
265 |
-
'context' => $context,
|
266 |
-
'domain' => 'freemius'
|
267 |
-
);
|
268 |
-
}
|
25 |
return $fn( $text, 'freemius' );
|
26 |
}
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
/**
|
29 |
* Retrieve translated string with gettext context.
|
30 |
*
|
46 |
$fn = 'translate_with_gettext_context';
|
47 |
return $fn( $text, $context, 'freemius' );
|
48 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/includes/managers/class-fs-admin-menu-manager.php
CHANGED
@@ -163,11 +163,12 @@
|
|
163 |
|
164 |
if ( ! $is_addon && isset( $menu ) ) {
|
165 |
$this->_default_submenu_items = array(
|
166 |
-
'contact'
|
167 |
-
'support'
|
168 |
-
|
169 |
-
'
|
170 |
-
'
|
|
|
171 |
);
|
172 |
|
173 |
// @deprecated
|
163 |
|
164 |
if ( ! $is_addon && isset( $menu ) ) {
|
165 |
$this->_default_submenu_items = array(
|
166 |
+
'contact' => $this->get_bool_option( $menu, 'contact', true ),
|
167 |
+
'support' => $this->get_bool_option( $menu, 'support', true ),
|
168 |
+
'affiliation' => $this->get_bool_option( $menu, 'affiliation', true ),
|
169 |
+
'account' => $this->get_bool_option( $menu, 'account', true ),
|
170 |
+
'pricing' => $this->get_bool_option( $menu, 'pricing', true ),
|
171 |
+
'addons' => $this->get_bool_option( $menu, 'addons', true ),
|
172 |
);
|
173 |
|
174 |
// @deprecated
|
freemius/includes/managers/class-fs-cache-manager.php
CHANGED
@@ -166,10 +166,10 @@
|
|
166 |
isset( $cache_entry->timestamp ) &&
|
167 |
is_numeric( $cache_entry->timestamp )
|
168 |
) {
|
169 |
-
|
170 |
-
|
171 |
|
172 |
-
return $default;
|
173 |
}
|
174 |
|
175 |
/**
|
@@ -194,7 +194,7 @@
|
|
194 |
return $cache_entry->result;
|
195 |
}
|
196 |
|
197 |
-
|
198 |
}
|
199 |
|
200 |
/**
|
@@ -208,7 +208,8 @@
|
|
208 |
function set( $key, $value, $expiration = WP_FS__TIME_24_HOURS_IN_SEC ) {
|
209 |
$this->_logger->entrance( 'key = ' . $key );
|
210 |
|
211 |
-
$cache_entry
|
|
|
212 |
$cache_entry->result = $value;
|
213 |
$cache_entry->created = WP_FS__SCRIPT_START_TIME;
|
214 |
$cache_entry->timestamp = WP_FS__SCRIPT_START_TIME + $expiration;
|
166 |
isset( $cache_entry->timestamp ) &&
|
167 |
is_numeric( $cache_entry->timestamp )
|
168 |
) {
|
169 |
+
return $cache_entry->result;
|
170 |
+
}
|
171 |
|
172 |
+
return is_object($default) ? clone $default : $default;
|
173 |
}
|
174 |
|
175 |
/**
|
194 |
return $cache_entry->result;
|
195 |
}
|
196 |
|
197 |
+
return is_object($default) ? clone $default : $default;
|
198 |
}
|
199 |
|
200 |
/**
|
208 |
function set( $key, $value, $expiration = WP_FS__TIME_24_HOURS_IN_SEC ) {
|
209 |
$this->_logger->entrance( 'key = ' . $key );
|
210 |
|
211 |
+
$cache_entry = new stdClass();
|
212 |
+
|
213 |
$cache_entry->result = $value;
|
214 |
$cache_entry->created = WP_FS__SCRIPT_START_TIME;
|
215 |
$cache_entry->timestamp = WP_FS__SCRIPT_START_TIME + $expiration;
|
freemius/includes/managers/class-fs-option-manager.php
CHANGED
@@ -211,12 +211,39 @@
|
|
211 |
$this->_logger->entrance( 'option = ' . $option );
|
212 |
|
213 |
if ( is_array( $this->_options ) ) {
|
214 |
-
|
|
|
|
|
215 |
} else if ( is_object( $this->_options ) ) {
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
}
|
221 |
|
222 |
/**
|
@@ -234,10 +261,34 @@
|
|
234 |
$this->clear();
|
235 |
}
|
236 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
if ( is_array( $this->_options ) ) {
|
238 |
-
$this->_options[ $option ] = $
|
239 |
} else if ( is_object( $this->_options ) ) {
|
240 |
-
$this->_options->{$option} = $
|
241 |
}
|
242 |
|
243 |
if ( $flush ) {
|
211 |
$this->_logger->entrance( 'option = ' . $option );
|
212 |
|
213 |
if ( is_array( $this->_options ) ) {
|
214 |
+
$value = isset( $this->_options[ $option ] ) ?
|
215 |
+
$this->_options[ $option ] :
|
216 |
+
$default;
|
217 |
} else if ( is_object( $this->_options ) ) {
|
218 |
+
$value = isset( $this->_options->{$option} ) ?
|
219 |
+
$this->_options->{$option} :
|
220 |
+
$default;
|
221 |
+
} else {
|
222 |
+
$value = $default;
|
223 |
+
}
|
224 |
+
|
225 |
+
/**
|
226 |
+
* If it's an object, return a clone of the object, otherwise,
|
227 |
+
* external changes of the object will actually change the value
|
228 |
+
* of the object in the options manager which may lead to an unexpected
|
229 |
+
* behaviour and data integrity when a store() call is triggered.
|
230 |
+
*
|
231 |
+
* Example:
|
232 |
+
* $object1 = $options->get_option( 'object1' );
|
233 |
+
* $object1->x = 123;
|
234 |
+
*
|
235 |
+
* $object2 = $options->get_option( 'object2' );
|
236 |
+
* $object2->y = 'dummy';
|
237 |
+
*
|
238 |
+
* $options->set_option( 'object2', $object2, true );
|
239 |
+
*
|
240 |
+
* If we don't return a clone of option 'object1', setting 'object2'
|
241 |
+
* will also store the updated value of 'object1' which is quite not
|
242 |
+
* an expected behaviour.
|
243 |
+
*
|
244 |
+
* @author Vova Feldman
|
245 |
+
*/
|
246 |
+
return is_object($value) ? clone $value : $value;
|
247 |
}
|
248 |
|
249 |
/**
|
261 |
$this->clear();
|
262 |
}
|
263 |
|
264 |
+
/**
|
265 |
+
* If it's an object, store a clone of the object, otherwise,
|
266 |
+
* external changes of the object will actually change the value
|
267 |
+
* of the object in the options manager which may lead to an unexpected
|
268 |
+
* behaviour and data integrity when a store() call is triggered.
|
269 |
+
*
|
270 |
+
* Example:
|
271 |
+
* $object1 = new stdClass();
|
272 |
+
* $object1->x = 123;
|
273 |
+
*
|
274 |
+
* $options->set_option( 'object1', $object1 );
|
275 |
+
*
|
276 |
+
* $object1->x = 456;
|
277 |
+
*
|
278 |
+
* $options->set_option( 'object2', $object2, true );
|
279 |
+
*
|
280 |
+
* If we don't set the option as a clone of option 'object1', setting 'object2'
|
281 |
+
* will also store the updated value of 'object1' ($object1->x = 456 instead of
|
282 |
+
* $object1->x = 123) which is quite not an expected behaviour.
|
283 |
+
*
|
284 |
+
* @author Vova Feldman
|
285 |
+
*/
|
286 |
+
$copy = is_object($value) ? clone $value : $value;
|
287 |
+
|
288 |
if ( is_array( $this->_options ) ) {
|
289 |
+
$this->_options[ $option ] = $copy;
|
290 |
} else if ( is_object( $this->_options ) ) {
|
291 |
+
$this->_options->{$option} = $copy;
|
292 |
}
|
293 |
|
294 |
if ( $flush ) {
|
freemius/includes/sdk/FreemiusWordPress.php
CHANGED
@@ -420,13 +420,19 @@
|
|
420 |
$matches = array();
|
421 |
$regex = '/Failed to connect to ([^:].*): Network is unreachable/';
|
422 |
if ( preg_match( $regex, $result->get_error_message( 'http_request_failed' ), $matches ) ) {
|
423 |
-
|
|
|
|
|
|
|
|
|
|
|
424 |
// error_log('Invalid IPv6 configuration on server, Please disable or get native IPv6 on your server.');
|
425 |
-
|
426 |
-
|
427 |
|
428 |
-
|
429 |
-
|
|
|
430 |
}
|
431 |
}
|
432 |
}
|
420 |
$matches = array();
|
421 |
$regex = '/Failed to connect to ([^:].*): Network is unreachable/';
|
422 |
if ( preg_match( $regex, $result->get_error_message( 'http_request_failed' ), $matches ) ) {
|
423 |
+
/**
|
424 |
+
* Validate IP before calling `inet_pton()` to avoid PHP un-catchable warning.
|
425 |
+
* @author Vova Feldman (@svovaf)
|
426 |
+
*/
|
427 |
+
if ( filter_var( $matches[1], FILTER_VALIDATE_IP ) ) {
|
428 |
+
if ( strlen( inet_pton( $matches[1] ) ) === 16 ) {
|
429 |
// error_log('Invalid IPv6 configuration on server, Please disable or get native IPv6 on your server.');
|
430 |
+
// Hook to an action triggered just before cURL is executed to resolve the IP version to v4.
|
431 |
+
add_action( 'http_api_curl', 'Freemius_Api_WordPress::CurlResolveToIPv4', 10, 1 );
|
432 |
|
433 |
+
// Re-run request.
|
434 |
+
$result = self::ExecuteRequest( $request_url, $pWPRemoteArgs );
|
435 |
+
}
|
436 |
}
|
437 |
}
|
438 |
}
|
freemius/languages/freemius-en.po
CHANGED
@@ -14,1811 +14,1191 @@ msgstr ""
|
|
14 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
"MIME-Version: 1.0\n"
|
16 |
"X-Poedit-Basepath: ..\n"
|
17 |
-
"X-Poedit-KeywordsList:
|
18 |
"X-Poedit-SearchPath-0: .\n"
|
19 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
20 |
"X-Poedit-SourceCharset: UTF-8\n"
|
21 |
|
22 |
-
#: includes/
|
23 |
-
msgid "
|
24 |
-
msgstr "
|
25 |
|
26 |
-
#: includes/
|
27 |
-
msgid "
|
28 |
-
msgstr "
|
29 |
|
30 |
-
#: includes/
|
31 |
-
msgid "
|
32 |
-
msgstr "
|
33 |
|
34 |
-
#: includes/
|
35 |
-
msgid "
|
36 |
-
msgstr "
|
37 |
|
38 |
-
#: includes/
|
39 |
-
msgid "
|
40 |
-
msgstr "
|
41 |
|
42 |
-
#: includes/
|
43 |
-
msgid "
|
44 |
-
msgstr "
|
45 |
|
46 |
-
#: includes/
|
47 |
-
msgid "
|
48 |
-
msgstr "
|
49 |
-
|
50 |
-
#: includes/
|
51 |
-
msgid "
|
52 |
-
msgstr "
|
53 |
-
|
54 |
-
#: includes/
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
msgid "
|
85 |
-
msgstr "
|
86 |
-
|
87 |
-
#: includes/
|
88 |
-
msgid "
|
89 |
-
msgstr "
|
90 |
-
|
91 |
-
#: includes/
|
92 |
-
msgid "
|
93 |
-
msgstr "
|
94 |
-
|
95 |
-
#: includes/
|
96 |
-
msgid "
|
97 |
-
msgstr "
|
98 |
-
|
99 |
-
#: includes/
|
100 |
-
msgid "
|
101 |
-
msgstr "
|
102 |
-
|
103 |
-
#: includes/i18n.php:56
|
104 |
-
msgid "After your free %s, pay as little as %s"
|
105 |
-
msgstr "After your free %s, pay as little as %s"
|
106 |
-
|
107 |
-
#: includes/i18n.php:57
|
108 |
-
msgid "Details"
|
109 |
-
msgstr "Details"
|
110 |
-
|
111 |
-
#: includes/i18n.php:58
|
112 |
-
msgid "Account Details"
|
113 |
-
msgstr "Account Details"
|
114 |
-
|
115 |
-
#: includes/i18n.php:59
|
116 |
-
msgctxt "verb"
|
117 |
-
msgid "Delete"
|
118 |
-
msgstr "Delete"
|
119 |
-
|
120 |
-
#: includes/i18n.php:60
|
121 |
-
msgctxt "verb"
|
122 |
-
msgid "Show"
|
123 |
-
msgstr "Show"
|
124 |
-
|
125 |
-
#: includes/i18n.php:61
|
126 |
-
msgctxt "verb"
|
127 |
-
msgid "Hide"
|
128 |
-
msgstr "Hide"
|
129 |
-
|
130 |
-
#: includes/i18n.php:62
|
131 |
-
msgctxt "verb"
|
132 |
-
msgid "Edit"
|
133 |
-
msgstr "Edit"
|
134 |
-
|
135 |
-
#: includes/i18n.php:63
|
136 |
-
msgctxt "verb"
|
137 |
-
msgid "Update"
|
138 |
-
msgstr "Update"
|
139 |
-
|
140 |
-
#: includes/i18n.php:64
|
141 |
-
msgid "Date"
|
142 |
-
msgstr "Date"
|
143 |
-
|
144 |
-
#: includes/i18n.php:65
|
145 |
-
msgid "Amount"
|
146 |
-
msgstr "Amount"
|
147 |
-
|
148 |
-
#: includes/i18n.php:66
|
149 |
-
msgid "Invoice"
|
150 |
-
msgstr "Invoice"
|
151 |
-
|
152 |
-
#: includes/i18n.php:67
|
153 |
-
msgid "Billing"
|
154 |
-
msgstr "Billing"
|
155 |
-
|
156 |
-
#: includes/i18n.php:68
|
157 |
-
msgid "Payments"
|
158 |
-
msgstr "Payments"
|
159 |
-
|
160 |
-
#: includes/i18n.php:69
|
161 |
-
msgid "Delete Account"
|
162 |
-
msgstr "Delete Account"
|
163 |
-
|
164 |
-
#: includes/i18n.php:70
|
165 |
-
msgctxt "as close a window"
|
166 |
-
msgid "Dismiss"
|
167 |
-
msgstr "Dismiss"
|
168 |
-
|
169 |
-
#: includes/i18n.php:71
|
170 |
-
msgctxt "as product pricing plan"
|
171 |
-
msgid "Plan"
|
172 |
-
msgstr "Plan"
|
173 |
-
|
174 |
-
#: includes/i18n.php:72
|
175 |
-
msgid "Change Plan"
|
176 |
-
msgstr "Change Plan"
|
177 |
-
|
178 |
-
#: includes/i18n.php:73
|
179 |
-
msgctxt "as download professional version"
|
180 |
-
msgid "Download %s Version"
|
181 |
-
msgstr "Download %s Version"
|
182 |
-
|
183 |
-
#: includes/i18n.php:74
|
184 |
-
msgctxt "as download professional version now"
|
185 |
-
msgid "Download %s version now"
|
186 |
-
msgstr "Download %s version now"
|
187 |
-
|
188 |
-
#: includes/i18n.php:75
|
189 |
-
msgctxt "as download latest version"
|
190 |
-
msgid "Download Latest"
|
191 |
-
msgstr "Download Latest"
|
192 |
-
|
193 |
-
#: includes/i18n.php:76
|
194 |
-
msgctxt "E.g. you have a professional license."
|
195 |
-
msgid "You have a %s license."
|
196 |
-
msgstr "You have a %s license."
|
197 |
-
|
198 |
-
#: includes/i18n.php:77
|
199 |
-
msgid "New"
|
200 |
-
msgstr "New"
|
201 |
-
|
202 |
-
#: includes/i18n.php:78
|
203 |
-
msgid "Free"
|
204 |
-
msgstr "Free"
|
205 |
-
|
206 |
-
#: includes/i18n.php:79
|
207 |
-
msgctxt "as trial plan"
|
208 |
-
msgid "Trial"
|
209 |
-
msgstr "Trial"
|
210 |
-
|
211 |
-
#: includes/i18n.php:80
|
212 |
-
msgctxt "as starting a trial plan"
|
213 |
-
msgid "Start Trial"
|
214 |
-
msgstr "Start Trial"
|
215 |
-
|
216 |
-
#: includes/i18n.php:81
|
217 |
-
msgctxt "verb"
|
218 |
-
msgid "Purchase"
|
219 |
-
msgstr "Purchase"
|
220 |
-
|
221 |
-
#: includes/i18n.php:82
|
222 |
-
msgid "Purchase License"
|
223 |
-
msgstr "Purchase License"
|
224 |
-
|
225 |
-
#: includes/i18n.php:83
|
226 |
-
msgctxt "verb"
|
227 |
-
msgid "Buy"
|
228 |
-
msgstr "Buy"
|
229 |
-
|
230 |
-
#: includes/i18n.php:84
|
231 |
-
msgid "Buy License"
|
232 |
-
msgstr "Buy License"
|
233 |
-
|
234 |
-
#: includes/i18n.php:85
|
235 |
-
msgid "Single Site License"
|
236 |
-
msgstr "Single Site License"
|
237 |
-
|
238 |
-
#: includes/i18n.php:86
|
239 |
-
msgid "Unlimited Licenses"
|
240 |
-
msgstr "Unlimited Licenses"
|
241 |
-
|
242 |
-
#: includes/i18n.php:87
|
243 |
-
msgid "Up to %s Sites"
|
244 |
-
msgstr "Up to %s Sites"
|
245 |
-
|
246 |
-
#: includes/i18n.php:88
|
247 |
-
msgid "%sRenew your license now%s to access version %s features and support."
|
248 |
-
msgstr "%sRenew your license now%s to access version %s features and support."
|
249 |
-
|
250 |
-
#: includes/i18n.php:89
|
251 |
-
msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
|
252 |
-
msgstr "Enter the email address you've used for the upgrade below and we will resend you the license key."
|
253 |
-
|
254 |
-
#: includes/i18n.php:90
|
255 |
-
msgctxt "e.g. Professional Plan"
|
256 |
-
msgid "%s Plan"
|
257 |
-
msgstr "%s Plan"
|
258 |
-
|
259 |
-
#: includes/i18n.php:91
|
260 |
-
msgid "You are just one step away - %s"
|
261 |
-
msgstr "You are just one step away - %s"
|
262 |
-
|
263 |
-
#: includes/i18n.php:92
|
264 |
-
msgctxt "%s - plugin name. As complete \"Jetpack\" activation now"
|
265 |
-
msgid "Complete \"%s\" Activation Now"
|
266 |
-
msgstr "Complete \"%s\" Activation Now"
|
267 |
-
|
268 |
-
#: includes/i18n.php:94
|
269 |
-
msgid "We made a few tweaks to the %s, %s"
|
270 |
-
msgstr "We made a few tweaks to the %s, %s"
|
271 |
-
|
272 |
-
#: includes/i18n.php:95
|
273 |
-
msgid "Opt-in to make \"%s\" Better!"
|
274 |
-
msgstr "Opt-in to make \"%s\" Better!"
|
275 |
-
|
276 |
-
#: includes/i18n.php:96
|
277 |
-
msgid "Error"
|
278 |
-
msgstr "Error"
|
279 |
-
|
280 |
-
#: includes/i18n.php:97
|
281 |
-
msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
|
282 |
-
msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
|
283 |
-
|
284 |
-
#: includes/i18n.php:100
|
285 |
-
msgctxt "as expiration date"
|
286 |
-
msgid "Expiration"
|
287 |
-
msgstr "Expiration"
|
288 |
-
|
289 |
-
#: includes/i18n.php:101
|
290 |
-
msgctxt "as software license"
|
291 |
-
msgid "License"
|
292 |
-
msgstr "License"
|
293 |
-
|
294 |
-
#: includes/i18n.php:102
|
295 |
-
msgid "not verified"
|
296 |
-
msgstr "not verified"
|
297 |
-
|
298 |
-
#: includes/i18n.php:103
|
299 |
-
msgid "Verify Email"
|
300 |
-
msgstr "Verify Email"
|
301 |
-
|
302 |
-
#: includes/i18n.php:104
|
303 |
-
msgctxt "e.g. expires in 2 months"
|
304 |
-
msgid "Expires in %s"
|
305 |
-
msgstr "Expires in %s"
|
306 |
-
|
307 |
-
#: includes/i18n.php:105
|
308 |
-
msgctxt "e.g. auto renews in 2 months"
|
309 |
-
msgid "Auto renews in %s"
|
310 |
-
msgstr "Auto renews in %s"
|
311 |
-
|
312 |
-
#: includes/i18n.php:106
|
313 |
-
msgid "No expiration"
|
314 |
-
msgstr "No expiration"
|
315 |
-
|
316 |
-
#: includes/i18n.php:107
|
317 |
-
msgid "Expired"
|
318 |
-
msgstr "Expired"
|
319 |
-
|
320 |
-
#: includes/i18n.php:108
|
321 |
-
msgid "Cancelled"
|
322 |
-
msgstr "Cancelled"
|
323 |
-
|
324 |
-
#: includes/i18n.php:109
|
325 |
-
msgctxt "e.g. In 2 hours"
|
326 |
-
msgid "In %s"
|
327 |
-
msgstr "In %s"
|
328 |
-
|
329 |
-
#: includes/i18n.php:110
|
330 |
-
msgctxt "e.g. 2 min ago"
|
331 |
-
msgid "%s ago"
|
332 |
-
msgstr "%s ago"
|
333 |
-
|
334 |
-
#: includes/i18n.php:112
|
335 |
-
msgid "%s or higher"
|
336 |
-
msgstr "%s or higher"
|
337 |
-
|
338 |
-
#: includes/i18n.php:113
|
339 |
-
msgctxt "as plugin version"
|
340 |
-
msgid "Version"
|
341 |
-
msgstr "Version"
|
342 |
-
|
343 |
-
#: includes/i18n.php:114
|
344 |
-
msgid "Name"
|
345 |
-
msgstr "Name"
|
346 |
-
|
347 |
-
#: includes/i18n.php:115
|
348 |
-
msgid "Email"
|
349 |
-
msgstr "Email"
|
350 |
-
|
351 |
-
#: includes/i18n.php:116
|
352 |
-
msgid "Email address"
|
353 |
-
msgstr "Email address"
|
354 |
-
|
355 |
-
#: includes/i18n.php:117
|
356 |
-
msgid "Verified"
|
357 |
-
msgstr "Verified"
|
358 |
-
|
359 |
-
#: includes/i18n.php:118
|
360 |
-
msgid "Module"
|
361 |
-
msgstr "Module"
|
362 |
-
|
363 |
-
#: includes/i18n.php:119
|
364 |
-
msgid "Module Type"
|
365 |
-
msgstr "Module Type"
|
366 |
-
|
367 |
-
#: includes/i18n.php:120
|
368 |
-
msgid "Plugin"
|
369 |
-
msgstr "Plugin"
|
370 |
-
|
371 |
-
#: includes/i18n.php:121
|
372 |
-
msgid "Plugins"
|
373 |
-
msgstr "Plugins"
|
374 |
-
|
375 |
-
#: includes/i18n.php:122
|
376 |
-
msgid "Theme"
|
377 |
-
msgstr "Theme"
|
378 |
-
|
379 |
-
#: includes/i18n.php:123
|
380 |
-
msgid "Themes"
|
381 |
-
msgstr "Themes"
|
382 |
-
|
383 |
-
#: includes/i18n.php:124
|
384 |
-
msgctxt "as file/folder path"
|
385 |
-
msgid "Path"
|
386 |
-
msgstr "Path"
|
387 |
|
388 |
-
#: includes/
|
389 |
-
msgid "
|
390 |
-
msgstr "
|
391 |
-
|
392 |
-
#: includes/i18n.php:126
|
393 |
-
msgid "Free version"
|
394 |
-
msgstr "Free version"
|
395 |
-
|
396 |
-
#: includes/i18n.php:127
|
397 |
-
msgid "Premium version"
|
398 |
-
msgstr "Premium version"
|
399 |
-
|
400 |
-
#: includes/i18n.php:128
|
401 |
-
msgctxt "as WP plugin slug"
|
402 |
-
msgid "Slug"
|
403 |
-
msgstr "Slug"
|
404 |
|
405 |
-
#: includes/
|
406 |
-
msgid "
|
407 |
-
msgstr "
|
408 |
|
409 |
-
#: includes/
|
410 |
-
msgid "
|
411 |
-
msgstr "
|
412 |
-
|
413 |
-
#: includes/i18n.php:131
|
414 |
-
msgid "%s Installs"
|
415 |
-
msgstr "%s Installs"
|
416 |
-
|
417 |
-
#: includes/i18n.php:132
|
418 |
-
msgctxt "like websites"
|
419 |
-
msgid "Sites"
|
420 |
-
msgstr "Sites"
|
421 |
-
|
422 |
-
#: includes/i18n.php:133
|
423 |
-
msgid "User ID"
|
424 |
-
msgstr "User ID"
|
425 |
-
|
426 |
-
#: includes/i18n.php:134
|
427 |
-
msgid "Site ID"
|
428 |
-
msgstr "Site ID"
|
429 |
-
|
430 |
-
#: includes/i18n.php:135
|
431 |
-
msgid "Public Key"
|
432 |
-
msgstr "Public Key"
|
433 |
-
|
434 |
-
#: includes/i18n.php:136
|
435 |
-
msgid "Secret Key"
|
436 |
-
msgstr "Secret Key"
|
437 |
-
|
438 |
-
#: includes/i18n.php:137
|
439 |
-
msgctxt "as secret encryption key missing"
|
440 |
-
msgid "No Secret"
|
441 |
-
msgstr "No Secret"
|
442 |
-
|
443 |
-
#: includes/i18n.php:138
|
444 |
-
msgid "No ID"
|
445 |
-
msgstr "No ID"
|
446 |
-
|
447 |
-
#: includes/i18n.php:139
|
448 |
-
msgctxt "as synchronize license"
|
449 |
-
msgid "Sync License"
|
450 |
-
msgstr "Sync License"
|
451 |
-
|
452 |
-
#: includes/i18n.php:140
|
453 |
-
msgctxt "as synchronize"
|
454 |
-
msgid "Sync"
|
455 |
-
msgstr "Sync"
|
456 |
-
|
457 |
-
#: includes/i18n.php:141
|
458 |
-
msgid "Activate License"
|
459 |
-
msgstr "Activate License"
|
460 |
-
|
461 |
-
#: includes/i18n.php:142
|
462 |
-
msgid "Activate Free Version"
|
463 |
-
msgstr "Activate Free Version"
|
464 |
-
|
465 |
-
#: includes/i18n.php:143
|
466 |
-
msgid "Please enter the license key that you received in the email right after the purchase:"
|
467 |
-
msgstr "Please enter the license key that you received in the email right after the purchase:"
|
468 |
-
|
469 |
-
#: includes/i18n.php:144
|
470 |
-
msgid "Activating license..."
|
471 |
-
msgstr "Activating license..."
|
472 |
-
|
473 |
-
#: includes/i18n.php:145
|
474 |
-
msgid "Change License"
|
475 |
-
msgstr "Change License"
|
476 |
-
|
477 |
-
#: includes/i18n.php:146
|
478 |
-
msgid "Update License"
|
479 |
-
msgstr "Update License"
|
480 |
-
|
481 |
-
#: includes/i18n.php:147
|
482 |
-
msgid "Deactivate License"
|
483 |
-
msgstr "Deactivate License"
|
484 |
-
|
485 |
-
#: includes/i18n.php:148
|
486 |
-
msgid "Activate"
|
487 |
-
msgstr "Activate"
|
488 |
-
|
489 |
-
#: includes/i18n.php:149
|
490 |
-
msgid "Deactivate"
|
491 |
-
msgstr "Deactivate"
|
492 |
-
|
493 |
-
#: includes/i18n.php:150
|
494 |
-
msgid "Skip & Deactivate"
|
495 |
-
msgstr "Skip & Deactivate"
|
496 |
-
|
497 |
-
#: includes/i18n.php:151
|
498 |
-
msgid "Skip & %s"
|
499 |
-
msgstr "Skip & %s"
|
500 |
-
|
501 |
-
#: includes/i18n.php:152
|
502 |
-
msgid "No - just deactivate"
|
503 |
-
msgstr "No - just deactivate"
|
504 |
-
|
505 |
-
#: includes/i18n.php:153
|
506 |
-
msgid "Yes - do your thing"
|
507 |
-
msgstr "Yes - do your thing"
|
508 |
-
|
509 |
-
#: includes/i18n.php:154
|
510 |
-
msgctxt "active mode"
|
511 |
-
msgid "Active"
|
512 |
-
msgstr "Active"
|
513 |
-
|
514 |
-
#: includes/i18n.php:155
|
515 |
-
msgctxt "is active mode?"
|
516 |
-
msgid "Is Active"
|
517 |
-
msgstr "Is Active"
|
518 |
-
|
519 |
-
#: includes/i18n.php:156
|
520 |
-
msgid "Install Now"
|
521 |
-
msgstr "Install Now"
|
522 |
-
|
523 |
-
#: includes/i18n.php:157
|
524 |
-
msgid "Install Update Now"
|
525 |
-
msgstr "Install Update Now"
|
526 |
-
|
527 |
-
#: includes/i18n.php:158
|
528 |
-
msgid "More information about %s"
|
529 |
-
msgstr "More information about %s"
|
530 |
-
|
531 |
-
#: includes/i18n.php:159
|
532 |
-
msgid "Localhost"
|
533 |
-
msgstr "Localhost"
|
534 |
-
|
535 |
-
#: includes/i18n.php:160
|
536 |
-
msgctxt "as activate Professional plan"
|
537 |
-
msgid "Activate %s Plan"
|
538 |
-
msgstr "Activate %s Plan"
|
539 |
-
|
540 |
-
#: includes/i18n.php:161
|
541 |
-
msgctxt "as 5 licenses left"
|
542 |
-
msgid "%s left"
|
543 |
-
msgstr "%s left"
|
544 |
-
|
545 |
-
#: includes/i18n.php:162
|
546 |
-
msgid "Last license"
|
547 |
-
msgstr "Last license"
|
548 |
-
|
549 |
-
#: includes/i18n.php:163
|
550 |
-
msgid "What is your %s?"
|
551 |
-
msgstr "What is your %s?"
|
552 |
-
|
553 |
-
#: includes/i18n.php:164
|
554 |
-
msgid "Activate this add-on"
|
555 |
-
msgstr "Activate this add-on"
|
556 |
|
557 |
-
#: includes/
|
558 |
-
msgid "
|
559 |
-
msgstr "
|
560 |
|
561 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
562 |
msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
563 |
msgstr "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
564 |
|
565 |
-
#:
|
566 |
-
msgid "
|
567 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
568 |
|
569 |
-
#:
|
570 |
-
msgid "
|
571 |
-
msgstr "
|
572 |
|
573 |
-
#:
|
574 |
-
msgid "
|
575 |
-
msgstr "
|
576 |
|
577 |
-
#:
|
578 |
-
msgid "
|
579 |
-
msgstr "
|
580 |
|
581 |
-
#:
|
582 |
-
msgid "
|
583 |
-
msgstr "
|
584 |
|
585 |
-
#:
|
586 |
-
msgid "
|
587 |
-
msgstr "
|
588 |
|
589 |
-
#:
|
590 |
-
msgid "
|
591 |
-
msgstr "
|
592 |
|
593 |
-
#:
|
594 |
-
msgid "
|
595 |
-
msgstr "
|
596 |
|
597 |
-
#:
|
598 |
-
msgid "
|
599 |
-
msgstr "
|
600 |
|
601 |
-
#:
|
602 |
-
msgid "
|
603 |
-
msgstr "
|
604 |
|
605 |
-
#:
|
606 |
-
msgid "
|
607 |
-
msgstr "
|
608 |
|
609 |
-
#:
|
610 |
-
msgid "
|
611 |
-
msgstr "
|
612 |
|
613 |
-
#:
|
614 |
-
msgid "
|
615 |
-
msgstr "
|
616 |
|
617 |
-
#:
|
618 |
-
msgid "
|
619 |
-
msgstr "
|
620 |
|
621 |
-
#:
|
622 |
-
msgid "
|
623 |
-
msgstr "
|
624 |
|
625 |
-
#:
|
626 |
-
msgid "
|
627 |
-
msgstr "
|
628 |
|
629 |
-
#:
|
630 |
-
msgid "
|
631 |
-
msgstr "
|
632 |
|
633 |
-
#:
|
634 |
-
msgid "
|
635 |
-
msgstr "
|
636 |
|
637 |
-
#:
|
638 |
-
msgid "
|
639 |
-
msgstr "
|
640 |
|
641 |
-
#:
|
642 |
-
msgid "
|
643 |
-
msgstr "
|
644 |
|
645 |
-
#:
|
646 |
-
msgid "
|
647 |
-
msgstr "
|
648 |
|
649 |
-
#:
|
650 |
-
msgid "
|
651 |
-
msgstr "
|
652 |
|
653 |
-
#:
|
654 |
-
msgid "
|
655 |
-
msgstr "
|
656 |
|
657 |
-
#:
|
658 |
-
msgid "
|
659 |
-
msgstr "
|
660 |
|
661 |
-
#:
|
662 |
-
msgid "
|
663 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
664 |
|
665 |
-
#:
|
666 |
-
msgid "
|
667 |
-
msgstr "
|
668 |
|
669 |
-
#:
|
670 |
-
msgid "
|
671 |
-
msgstr "
|
672 |
|
673 |
-
#:
|
674 |
-
msgid "
|
675 |
-
msgstr "
|
676 |
|
677 |
-
#:
|
678 |
-
|
679 |
-
|
680 |
-
msgstr "Other"
|
681 |
-
|
682 |
-
#: includes/i18n.php:200
|
683 |
-
msgid "Kindly tell us the reason so we can improve."
|
684 |
-
msgstr "Kindly tell us the reason so we can improve."
|
685 |
-
|
686 |
-
#: includes/i18n.php:201
|
687 |
-
msgid "What's the %s's name?"
|
688 |
-
msgstr "What's the %s's name?"
|
689 |
-
|
690 |
-
#: includes/i18n.php:202
|
691 |
-
msgid "What price would you feel comfortable paying?"
|
692 |
-
msgstr "What price would you feel comfortable paying?"
|
693 |
-
|
694 |
-
#: includes/i18n.php:203
|
695 |
-
msgid "I couldn't understand how to make it work"
|
696 |
-
msgstr "I couldn't understand how to make it work"
|
697 |
-
|
698 |
-
#: includes/i18n.php:204
|
699 |
-
msgid "The %s is great, but I need specific feature that you don't support"
|
700 |
-
msgstr "The %s is great, but I need specific feature that you don't support"
|
701 |
-
|
702 |
-
#: includes/i18n.php:205
|
703 |
-
msgid "The %s is not working"
|
704 |
-
msgstr "The %s is not working"
|
705 |
-
|
706 |
-
#: includes/i18n.php:206
|
707 |
-
msgid "It's not what I was looking for"
|
708 |
-
msgstr "It's not what I was looking for"
|
709 |
-
|
710 |
-
#: includes/i18n.php:207
|
711 |
-
msgid "The %s didn't work as expected"
|
712 |
-
msgstr "The %s didn't work as expected"
|
713 |
-
|
714 |
-
#: includes/i18n.php:208
|
715 |
-
msgid "What feature?"
|
716 |
-
msgstr "What feature?"
|
717 |
-
|
718 |
-
#: includes/i18n.php:209
|
719 |
-
msgid "Kindly share what didn't work so we can fix it for future users..."
|
720 |
-
msgstr "Kindly share what didn't work so we can fix it for future users..."
|
721 |
-
|
722 |
-
#: includes/i18n.php:210
|
723 |
-
msgid "What you've been looking for?"
|
724 |
-
msgstr "What you've been looking for?"
|
725 |
-
|
726 |
-
#: includes/i18n.php:211
|
727 |
-
msgid "What did you expect?"
|
728 |
-
msgstr "What did you expect?"
|
729 |
-
|
730 |
-
#: includes/i18n.php:212
|
731 |
-
msgid "The %s didn't work"
|
732 |
-
msgstr "The %s didn't work"
|
733 |
-
|
734 |
-
#: includes/i18n.php:213
|
735 |
-
msgid "I don't like to share my information with you"
|
736 |
-
msgstr "I don't like to share my information with you"
|
737 |
-
|
738 |
-
#: includes/i18n.php:214
|
739 |
-
msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
|
740 |
-
msgstr "You might have missed it, but you don't have to share any data and can just %s the opt-in."
|
741 |
-
|
742 |
-
#: includes/i18n.php:218
|
743 |
-
msgctxt "greeting"
|
744 |
-
msgid "Hey %s,"
|
745 |
-
msgstr "Hey %s,"
|
746 |
-
|
747 |
-
#: includes/i18n.php:219
|
748 |
-
msgctxt "a greeting. E.g. Thanks John!"
|
749 |
-
msgid "Thanks %s!"
|
750 |
-
msgstr "Thanks %s!"
|
751 |
-
|
752 |
-
#: includes/i18n.php:220
|
753 |
-
msgid "Never miss an important update - opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
|
754 |
-
msgstr "Never miss an important update - opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
|
755 |
-
|
756 |
-
#: includes/i18n.php:221
|
757 |
-
msgid "Please help us improve %1$s! If you opt-in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
|
758 |
-
msgstr "Please help us improve %1$s! If you opt-in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
|
759 |
-
|
760 |
-
#: includes/i18n.php:222
|
761 |
-
msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
|
762 |
-
msgstr "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
|
763 |
-
|
764 |
-
#: includes/i18n.php:223
|
765 |
-
msgid "complete the install"
|
766 |
-
msgstr "complete the install"
|
767 |
-
|
768 |
-
#: includes/i18n.php:224
|
769 |
-
msgid "start the trial"
|
770 |
-
msgstr "start the trial"
|
771 |
-
|
772 |
-
#: includes/i18n.php:225
|
773 |
-
msgid "Thanks for purchasing %s! To get started, please enter your license key:"
|
774 |
-
msgstr "Thanks for purchasing %s! To get started, please enter your license key:"
|
775 |
-
|
776 |
-
#: includes/i18n.php:226
|
777 |
-
msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
|
778 |
-
msgstr "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
|
779 |
-
|
780 |
-
#: includes/i18n.php:227
|
781 |
-
msgid "What permissions are being granted?"
|
782 |
-
msgstr "What permissions are being granted?"
|
783 |
-
|
784 |
-
#: includes/i18n.php:228
|
785 |
-
msgid "Your Profile Overview"
|
786 |
-
msgstr "Your Profile Overview"
|
787 |
-
|
788 |
-
#: includes/i18n.php:229
|
789 |
-
msgid "Name and email address"
|
790 |
-
msgstr "Name and email address"
|
791 |
-
|
792 |
-
#: includes/i18n.php:230
|
793 |
-
msgid "Your Site Overview"
|
794 |
-
msgstr "Your Site Overview"
|
795 |
-
|
796 |
-
#: includes/i18n.php:231
|
797 |
-
msgid "Site URL, WP version, PHP info, plugins & themes"
|
798 |
-
msgstr "Site URL, WP version, PHP info, plugins & themes"
|
799 |
-
|
800 |
-
#: includes/i18n.php:232
|
801 |
-
msgid "Current %s Events"
|
802 |
-
msgstr "Current %s Events"
|
803 |
-
|
804 |
-
#: includes/i18n.php:233
|
805 |
-
msgid "Activation, deactivation and uninstall"
|
806 |
-
msgstr "Activation, deactivation and uninstall"
|
807 |
-
|
808 |
-
#: includes/i18n.php:234
|
809 |
-
msgid "Plugins & Themes"
|
810 |
-
msgstr "Plugins & Themes"
|
811 |
-
|
812 |
-
#: includes/i18n.php:235
|
813 |
-
msgid "Titles, versions and state."
|
814 |
-
msgstr "Titles, versions and state."
|
815 |
-
|
816 |
-
#: includes/i18n.php:236
|
817 |
-
msgid "Admin Notices"
|
818 |
-
msgstr "Admin Notices"
|
819 |
-
|
820 |
-
#: includes/i18n.php:237
|
821 |
-
msgid "Newsletter"
|
822 |
-
msgstr "Newsletter"
|
823 |
-
|
824 |
-
#: includes/i18n.php:238
|
825 |
-
msgid "Updates, announcements, marketing, no spam"
|
826 |
-
msgstr "Updates, announcements, marketing, no spam"
|
827 |
-
|
828 |
-
#: includes/i18n.php:239
|
829 |
-
msgid "Privacy Policy"
|
830 |
-
msgstr "Privacy Policy"
|
831 |
-
|
832 |
-
#: includes/i18n.php:240
|
833 |
-
msgid "Terms of Service"
|
834 |
-
msgstr "Terms of Service"
|
835 |
-
|
836 |
-
#: includes/i18n.php:241
|
837 |
-
msgctxt "as activating plugin"
|
838 |
-
msgid "Activating"
|
839 |
-
msgstr "Activating"
|
840 |
-
|
841 |
-
#: includes/i18n.php:242
|
842 |
-
msgctxt "as in the process of sending an email"
|
843 |
-
msgid "Sending email"
|
844 |
-
msgstr "Sending email"
|
845 |
-
|
846 |
-
#: includes/i18n.php:243
|
847 |
-
msgctxt "button label"
|
848 |
-
msgid "Allow & Continue"
|
849 |
-
msgstr "Allow & Continue"
|
850 |
-
|
851 |
-
#: includes/i18n.php:244
|
852 |
-
msgctxt "button label"
|
853 |
-
msgid "Agree & Activate License"
|
854 |
-
msgstr "Agree & Activate License"
|
855 |
|
856 |
-
#:
|
857 |
-
|
858 |
-
|
859 |
-
msgstr "Skip"
|
860 |
-
|
861 |
-
#: includes/i18n.php:246
|
862 |
-
msgid "Click here to use the plugin anonymously"
|
863 |
-
msgstr "Click here to use the plugin anonymously"
|
864 |
-
|
865 |
-
#: includes/i18n.php:247
|
866 |
-
msgid "Re-send activation email"
|
867 |
-
msgstr "Re-send activation email"
|
868 |
-
|
869 |
-
#: includes/i18n.php:248
|
870 |
-
msgid "License key"
|
871 |
-
msgstr "License key"
|
872 |
-
|
873 |
-
#: includes/i18n.php:249
|
874 |
-
msgid "Send License Key"
|
875 |
-
msgstr "Send License Key"
|
876 |
-
|
877 |
-
#: includes/i18n.php:250
|
878 |
-
msgid "Sending license key"
|
879 |
-
msgstr "Sending license key"
|
880 |
-
|
881 |
-
#: includes/i18n.php:251
|
882 |
-
msgid "Have a license key?"
|
883 |
-
msgstr "Have a license key?"
|
884 |
-
|
885 |
-
#: includes/i18n.php:252
|
886 |
-
msgid "Don't have a license key?"
|
887 |
-
msgstr "Don't have a license key?"
|
888 |
-
|
889 |
-
#: includes/i18n.php:253
|
890 |
-
msgid "Can't find your license key?"
|
891 |
-
msgstr "Can't find your license key?"
|
892 |
-
|
893 |
-
#: includes/i18n.php:254
|
894 |
-
msgid "We couldn't find your email address in the system, are you sure it's the right address?"
|
895 |
-
msgstr "We couldn't find your email address in the system, are you sure it's the right address?"
|
896 |
-
|
897 |
-
#: includes/i18n.php:255
|
898 |
-
msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
|
899 |
-
msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
|
900 |
-
|
901 |
-
#: includes/i18n.php:256
|
902 |
-
msgid "Opt In"
|
903 |
-
msgstr "Opt In"
|
904 |
-
|
905 |
-
#: includes/i18n.php:257
|
906 |
-
msgid "Opt Out"
|
907 |
-
msgstr "Opt Out"
|
908 |
-
|
909 |
-
#: includes/i18n.php:258
|
910 |
-
msgid "On second thought - I want to continue helping"
|
911 |
-
msgstr "On second thought - I want to continue helping"
|
912 |
-
|
913 |
-
#: includes/i18n.php:259
|
914 |
-
msgid "Opting out..."
|
915 |
-
msgstr "Opting out..."
|
916 |
-
|
917 |
-
#: includes/i18n.php:260
|
918 |
-
msgid "Opting in..."
|
919 |
-
msgstr "Opting in..."
|
920 |
-
|
921 |
-
#: includes/i18n.php:261
|
922 |
-
msgid "We appreciate your help in making the %s better by letting us track some usage data."
|
923 |
-
msgstr "We appreciate your help in making the %s better by letting us track some usage data."
|
924 |
-
|
925 |
-
#: includes/i18n.php:262
|
926 |
-
msgid "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
|
927 |
-
msgstr "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
|
928 |
-
|
929 |
-
#: includes/i18n.php:263
|
930 |
-
msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
|
931 |
-
msgstr "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
|
932 |
-
|
933 |
-
#: includes/i18n.php:267
|
934 |
-
msgid "Screenshots"
|
935 |
-
msgstr "Screenshots"
|
936 |
-
|
937 |
-
#: includes/i18n.php:268
|
938 |
-
msgid "Click to view full-size screenshot %d"
|
939 |
-
msgstr "Click to view full-size screenshot %d"
|
940 |
|
941 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
942 |
msgid "Freemius Debug"
|
943 |
msgstr "Freemius Debug"
|
944 |
|
945 |
-
#:
|
946 |
-
msgctxt "as turned on"
|
947 |
-
msgid "On"
|
948 |
-
msgstr "On"
|
949 |
-
|
950 |
-
#: includes/i18n.php:274
|
951 |
-
msgctxt "as turned off"
|
952 |
-
msgid "Off"
|
953 |
-
msgstr "Off"
|
954 |
-
|
955 |
-
#: includes/i18n.php:275
|
956 |
-
msgctxt "as code debugging"
|
957 |
-
msgid "Debugging"
|
958 |
-
msgstr "Debugging"
|
959 |
-
|
960 |
-
#: includes/i18n.php:276
|
961 |
-
msgid "Freemius State"
|
962 |
-
msgstr "Freemius State"
|
963 |
-
|
964 |
-
#: includes/i18n.php:277
|
965 |
-
msgctxt "as connection was successful"
|
966 |
-
msgid "Connected"
|
967 |
-
msgstr "Connected"
|
968 |
-
|
969 |
-
#: includes/i18n.php:278
|
970 |
-
msgctxt "as connection blocked"
|
971 |
-
msgid "Blocked"
|
972 |
-
msgstr "Blocked"
|
973 |
-
|
974 |
-
#: includes/i18n.php:279
|
975 |
-
msgctxt "as application program interface"
|
976 |
-
msgid "API"
|
977 |
-
msgstr "API"
|
978 |
-
|
979 |
-
#: includes/i18n.php:280
|
980 |
-
msgctxt "as software development kit versions"
|
981 |
msgid "SDK"
|
982 |
msgstr "SDK"
|
983 |
|
984 |
-
#:
|
985 |
-
|
986 |
-
|
987 |
-
msgstr "SDK Versions"
|
988 |
|
989 |
-
#:
|
990 |
-
|
991 |
-
|
992 |
-
msgstr "Plugin Path"
|
993 |
|
994 |
-
#:
|
995 |
-
|
996 |
-
|
997 |
-
msgstr "SDK Path"
|
998 |
-
|
999 |
-
#: includes/i18n.php:284
|
1000 |
-
msgid "Add Ons of Plugin %s"
|
1001 |
-
msgstr "Add Ons of Plugin %s"
|
1002 |
-
|
1003 |
-
#: includes/i18n.php:285
|
1004 |
-
msgid "Are you sure you want to delete all Freemius data?"
|
1005 |
-
msgstr "Are you sure you want to delete all Freemius data?"
|
1006 |
-
|
1007 |
-
#: includes/i18n.php:286
|
1008 |
-
msgid "Actions"
|
1009 |
-
msgstr "Actions"
|
1010 |
-
|
1011 |
-
#: includes/i18n.php:287
|
1012 |
-
msgid "Delete All Accounts"
|
1013 |
-
msgstr "Delete All Accounts"
|
1014 |
-
|
1015 |
-
#: includes/i18n.php:288
|
1016 |
-
msgid "Start Fresh"
|
1017 |
-
msgstr "Start Fresh"
|
1018 |
-
|
1019 |
-
#: includes/i18n.php:289
|
1020 |
-
msgid "Clear API Cache"
|
1021 |
-
msgstr "Clear API Cache"
|
1022 |
-
|
1023 |
-
#: includes/i18n.php:290
|
1024 |
-
msgid "Sync Data From Server"
|
1025 |
-
msgstr "Sync Data From Server"
|
1026 |
-
|
1027 |
-
#: includes/i18n.php:291
|
1028 |
-
msgid "Scheduled Crons"
|
1029 |
-
msgstr "Scheduled Crons"
|
1030 |
-
|
1031 |
-
#: includes/i18n.php:292
|
1032 |
-
msgid "Cron Type"
|
1033 |
-
msgstr "Cron Type"
|
1034 |
-
|
1035 |
-
#: includes/i18n.php:293
|
1036 |
-
msgid "Plugins & Themes Sync"
|
1037 |
-
msgstr "Plugins & Themes Sync"
|
1038 |
-
|
1039 |
-
#: includes/i18n.php:294
|
1040 |
-
msgid "%s Licenses"
|
1041 |
-
msgstr "%s Licenses"
|
1042 |
-
|
1043 |
-
#: includes/i18n.php:295
|
1044 |
-
msgid "Debug Log"
|
1045 |
-
msgstr "Debug Log"
|
1046 |
-
|
1047 |
-
#: includes/i18n.php:296
|
1048 |
-
msgid "All"
|
1049 |
-
msgstr "All"
|
1050 |
-
|
1051 |
-
#: includes/i18n.php:297
|
1052 |
-
msgid "File"
|
1053 |
-
msgstr "File"
|
1054 |
-
|
1055 |
-
#: includes/i18n.php:298
|
1056 |
-
msgid "Function"
|
1057 |
-
msgstr "Function"
|
1058 |
-
|
1059 |
-
#: includes/i18n.php:299
|
1060 |
-
msgid "Process ID"
|
1061 |
-
msgstr "Process ID"
|
1062 |
-
|
1063 |
-
#: includes/i18n.php:300
|
1064 |
-
msgid "Logger"
|
1065 |
-
msgstr "Logger"
|
1066 |
-
|
1067 |
-
#: includes/i18n.php:301
|
1068 |
-
msgid "Message"
|
1069 |
-
msgstr "Message"
|
1070 |
-
|
1071 |
-
#: includes/i18n.php:302
|
1072 |
-
msgid "Download"
|
1073 |
-
msgstr "Download"
|
1074 |
-
|
1075 |
-
#: includes/i18n.php:303
|
1076 |
-
msgid "Filter"
|
1077 |
-
msgstr "Filter"
|
1078 |
-
|
1079 |
-
#: includes/i18n.php:304
|
1080 |
-
msgid "Type"
|
1081 |
-
msgstr "Type"
|
1082 |
-
|
1083 |
-
#: includes/i18n.php:305
|
1084 |
-
msgid "All Types"
|
1085 |
-
msgstr "All Types"
|
1086 |
-
|
1087 |
-
#: includes/i18n.php:306
|
1088 |
-
msgid "All Requests"
|
1089 |
-
msgstr "All Requests"
|
1090 |
-
|
1091 |
-
#: includes/i18n.php:310
|
1092 |
-
msgctxt "as congratulations"
|
1093 |
-
msgid "Congrats"
|
1094 |
-
msgstr "Congrats"
|
1095 |
-
|
1096 |
-
#: includes/i18n.php:311
|
1097 |
-
msgctxt "exclamation"
|
1098 |
-
msgid "Oops"
|
1099 |
-
msgstr "Oops"
|
1100 |
-
|
1101 |
-
#: includes/i18n.php:312
|
1102 |
-
msgctxt "interjection expressing joy or exuberance"
|
1103 |
-
msgid "Yee-haw"
|
1104 |
-
msgstr "Yee-haw"
|
1105 |
-
|
1106 |
-
#: includes/i18n.php:313
|
1107 |
-
msgctxt "(especially in electronic communication) used to express elation, enthusiasm, or triumph."
|
1108 |
-
msgid "W00t"
|
1109 |
-
msgstr "W00t"
|
1110 |
-
|
1111 |
-
#: includes/i18n.php:315
|
1112 |
-
msgctxt "a positive response"
|
1113 |
-
msgid "Right on"
|
1114 |
-
msgstr "Right on"
|
1115 |
-
|
1116 |
-
#: includes/i18n.php:316
|
1117 |
-
msgctxt "something somebody says when they are thinking about what you have just said. "
|
1118 |
-
msgid "Hmm"
|
1119 |
-
msgstr "Hmm"
|
1120 |
-
|
1121 |
-
#: includes/i18n.php:318
|
1122 |
-
msgid "O.K"
|
1123 |
-
msgstr "O.K"
|
1124 |
-
|
1125 |
-
#: includes/i18n.php:319
|
1126 |
-
msgctxt "exclamation"
|
1127 |
-
msgid "Hey"
|
1128 |
-
msgstr "Hey"
|
1129 |
-
|
1130 |
-
#: includes/i18n.php:320
|
1131 |
-
msgctxt "advance notice of something that will need attention."
|
1132 |
-
msgid "Heads up"
|
1133 |
-
msgstr "Heads up"
|
1134 |
-
|
1135 |
-
#: includes/i18n.php:325
|
1136 |
-
msgid "Seems like you got the latest release."
|
1137 |
-
msgstr "Seems like you got the latest release."
|
1138 |
-
|
1139 |
-
#: includes/i18n.php:326
|
1140 |
-
msgid "You are all good!"
|
1141 |
-
msgstr "You are all good!"
|
1142 |
-
|
1143 |
-
#: includes/i18n.php:327
|
1144 |
-
msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
|
1145 |
-
msgstr "Sorry, we could not complete the email update. Another user with the same email is already registered."
|
1146 |
-
|
1147 |
-
#: includes/i18n.php:328
|
1148 |
-
msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
|
1149 |
-
msgstr "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
|
1150 |
-
|
1151 |
-
#: includes/i18n.php:329
|
1152 |
-
msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
|
1153 |
-
msgstr "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
|
1154 |
-
|
1155 |
-
#: includes/i18n.php:330
|
1156 |
-
msgid "Your name was successfully updated."
|
1157 |
-
msgstr "Your name was successfully updated."
|
1158 |
-
|
1159 |
-
#: includes/i18n.php:331
|
1160 |
-
msgid "You have successfully updated your %s."
|
1161 |
-
msgstr "You have successfully updated your %s."
|
1162 |
-
|
1163 |
-
#: includes/i18n.php:332
|
1164 |
-
msgid "Please provide your full name."
|
1165 |
-
msgstr "Please provide your full name."
|
1166 |
-
|
1167 |
-
#: includes/i18n.php:333
|
1168 |
-
msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
|
1169 |
-
msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
|
1170 |
-
|
1171 |
-
#: includes/i18n.php:334
|
1172 |
-
msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
|
1173 |
-
msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
|
1174 |
-
|
1175 |
-
#: includes/i18n.php:335
|
1176 |
-
msgid "No credit card required"
|
1177 |
-
msgstr "No credit card required"
|
1178 |
-
|
1179 |
-
#: includes/i18n.php:336
|
1180 |
-
msgid "Premium %s version was successfully activated."
|
1181 |
-
msgstr "Premium %s version was successfully activated."
|
1182 |
-
|
1183 |
-
#: includes/i18n.php:337
|
1184 |
-
msgid "The upgrade of %s was successfully completed."
|
1185 |
-
msgstr "The upgrade of %s was successfully completed."
|
1186 |
-
|
1187 |
-
#: includes/i18n.php:338
|
1188 |
-
msgid "Your account was successfully activated with the %s plan."
|
1189 |
-
msgstr "Your account was successfully activated with the %s plan."
|
1190 |
-
|
1191 |
-
#: includes/i18n.php:339
|
1192 |
-
msgid "Download the latest %s version now"
|
1193 |
-
msgstr "Download the latest %s version now"
|
1194 |
-
|
1195 |
-
#: includes/i18n.php:340
|
1196 |
-
msgid "Please follow these steps to complete the upgrade"
|
1197 |
-
msgstr "Please follow these steps to complete the upgrade"
|
1198 |
-
|
1199 |
-
#: includes/i18n.php:341
|
1200 |
-
msgid "Download the latest %s version"
|
1201 |
-
msgstr "Download the latest %s version"
|
1202 |
-
|
1203 |
-
#: includes/i18n.php:342
|
1204 |
-
msgid "Download the latest version"
|
1205 |
-
msgstr "Download the latest version"
|
1206 |
-
|
1207 |
-
#: includes/i18n.php:343
|
1208 |
-
msgid "Deactivate the free version"
|
1209 |
-
msgstr "Deactivate the free version"
|
1210 |
-
|
1211 |
-
#: includes/i18n.php:344
|
1212 |
-
msgid "Upload and activate the downloaded version"
|
1213 |
-
msgstr "Upload and activate the downloaded version"
|
1214 |
-
|
1215 |
-
#: includes/i18n.php:345
|
1216 |
-
msgid "How to upload and activate?"
|
1217 |
-
msgstr "How to upload and activate?"
|
1218 |
-
|
1219 |
-
#: includes/i18n.php:346
|
1220 |
-
msgctxt "%s - product name, e.g. Facebook add-on was successfully..."
|
1221 |
-
msgid "%s Add-on was successfully purchased."
|
1222 |
-
msgstr "%s Add-on was successfully purchased."
|
1223 |
-
|
1224 |
-
#: includes/i18n.php:348
|
1225 |
-
msgid "Your %s Add-on plan was successfully upgraded."
|
1226 |
-
msgstr "Your %s Add-on plan was successfully upgraded."
|
1227 |
-
|
1228 |
-
#: includes/i18n.php:349
|
1229 |
-
msgid "Your email has been successfully verified - you are AWESOME!"
|
1230 |
-
msgstr "Your email has been successfully verified - you are AWESOME!"
|
1231 |
-
|
1232 |
-
#: includes/i18n.php:350
|
1233 |
-
msgid "Your plan was successfully upgraded."
|
1234 |
-
msgstr "Your plan was successfully upgraded."
|
1235 |
-
|
1236 |
-
#: includes/i18n.php:351
|
1237 |
-
msgid "Your plan was successfully changed to %s."
|
1238 |
-
msgstr "Your plan was successfully changed to %s."
|
1239 |
-
|
1240 |
-
#: includes/i18n.php:352
|
1241 |
-
msgid "Your license has expired. You can still continue using the free %s forever."
|
1242 |
-
msgstr "Your license has expired. You can still continue using the free %s forever."
|
1243 |
-
|
1244 |
-
#: includes/i18n.php:353
|
1245 |
-
msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
|
1246 |
-
msgstr "Your license has been cancelled. If you think it's a mistake, please contact support."
|
1247 |
-
|
1248 |
-
#: includes/i18n.php:354
|
1249 |
-
msgid "Your trial has been successfully started."
|
1250 |
-
msgstr "Your trial has been successfully started."
|
1251 |
-
|
1252 |
-
#: includes/i18n.php:355
|
1253 |
-
msgid "Your license was successfully activated."
|
1254 |
-
msgstr "Your license was successfully activated."
|
1255 |
-
|
1256 |
-
#: includes/i18n.php:356
|
1257 |
-
msgid "It looks like your site currently doesn't have an active license."
|
1258 |
-
msgstr "It looks like your site currently doesn't have an active license."
|
1259 |
-
|
1260 |
-
#: includes/i18n.php:357
|
1261 |
-
msgid "Your license was successfully deactivated, you are back to the %s plan."
|
1262 |
-
msgstr "Your license was successfully deactivated, you are back to the %s plan."
|
1263 |
-
|
1264 |
-
#: includes/i18n.php:358
|
1265 |
-
msgid "It looks like the license deactivation failed."
|
1266 |
-
msgstr "It looks like the license deactivation failed."
|
1267 |
-
|
1268 |
-
#: includes/i18n.php:359
|
1269 |
-
msgid "It looks like the license could not be activated."
|
1270 |
-
msgstr "It looks like the license could not be activated."
|
1271 |
-
|
1272 |
-
#: includes/i18n.php:360
|
1273 |
-
msgid "Error received from the server:"
|
1274 |
-
msgstr "Error received from the server:"
|
1275 |
-
|
1276 |
-
#: includes/i18n.php:361
|
1277 |
-
msgid "Your trial has expired. You can still continue using all our free features."
|
1278 |
-
msgstr "Your trial has expired. You can still continue using all our free features."
|
1279 |
-
|
1280 |
-
#: includes/i18n.php:362
|
1281 |
-
msgid "Your plan was successfully downgraded. Your %s plan license will expire in %s."
|
1282 |
-
msgstr "Your plan was successfully downgraded. Your %s plan license will expire in %s."
|
1283 |
-
|
1284 |
-
#: includes/i18n.php:363
|
1285 |
-
msgid "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
|
1286 |
-
msgstr "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
|
1287 |
-
|
1288 |
-
#: includes/i18n.php:364
|
1289 |
-
msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
|
1290 |
-
msgstr "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
|
1291 |
-
|
1292 |
-
#: includes/i18n.php:365
|
1293 |
-
msgid "Your %s free trial was successfully cancelled."
|
1294 |
-
msgstr "Your %s free trial was successfully cancelled."
|
1295 |
-
|
1296 |
-
#: includes/i18n.php:366
|
1297 |
-
msgctxt "%s - numeric version number"
|
1298 |
-
msgid "Version %s was released."
|
1299 |
-
msgstr "Version %s was released."
|
1300 |
-
|
1301 |
-
#: includes/i18n.php:367
|
1302 |
-
msgid "Please download %s."
|
1303 |
-
msgstr "Please download %s."
|
1304 |
-
|
1305 |
-
#: includes/i18n.php:368
|
1306 |
-
msgctxt "%s - plan name, as the latest professional version here"
|
1307 |
-
msgid "the latest %s version here"
|
1308 |
-
msgstr "the latest %s version here"
|
1309 |
-
|
1310 |
-
#: includes/i18n.php:370
|
1311 |
-
msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
|
1312 |
-
msgstr "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
|
1313 |
-
|
1314 |
-
#: includes/i18n.php:371
|
1315 |
-
msgctxt "call to action"
|
1316 |
-
msgid "Start free trial"
|
1317 |
-
msgstr "Start free trial"
|
1318 |
-
|
1319 |
-
#: includes/i18n.php:372
|
1320 |
-
msgid "Starting trial"
|
1321 |
-
msgstr "Starting trial"
|
1322 |
-
|
1323 |
-
#: includes/i18n.php:373
|
1324 |
-
msgid "Please wait"
|
1325 |
-
msgstr "Please wait"
|
1326 |
-
|
1327 |
-
#: includes/i18n.php:374
|
1328 |
-
msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
|
1329 |
-
msgstr "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
|
1330 |
-
|
1331 |
-
#: includes/i18n.php:375
|
1332 |
-
msgid "You already utilized a trial before."
|
1333 |
-
msgstr "You already utilized a trial before."
|
1334 |
-
|
1335 |
-
#: includes/i18n.php:376
|
1336 |
-
msgid "You are already running the %s in a trial mode."
|
1337 |
-
msgstr "You are already running the %s in a trial mode."
|
1338 |
-
|
1339 |
-
#: includes/i18n.php:377
|
1340 |
-
msgid "Plan %s do not exist, therefore, can't start a trial."
|
1341 |
-
msgstr "Plan %s do not exist, therefore, can't start a trial."
|
1342 |
-
|
1343 |
-
#: includes/i18n.php:378
|
1344 |
-
msgid "Plan %s does not support a trial period."
|
1345 |
-
msgstr "Plan %s does not support a trial period."
|
1346 |
-
|
1347 |
-
#: includes/i18n.php:379
|
1348 |
-
msgid "None of the %s's plans supports a trial period."
|
1349 |
-
msgstr "None of the %s's plans supports a trial period."
|
1350 |
-
|
1351 |
-
#: includes/i18n.php:380
|
1352 |
-
msgid "Unexpected API error. Please contact the %s's author with the following error."
|
1353 |
-
msgstr "Unexpected API error. Please contact the %s's author with the following error."
|
1354 |
-
|
1355 |
-
#: includes/i18n.php:381
|
1356 |
-
msgid "No commitment for %s days - cancel anytime!"
|
1357 |
-
msgstr "No commitment for %s days - cancel anytime!"
|
1358 |
-
|
1359 |
-
#: includes/i18n.php:382
|
1360 |
-
msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
|
1361 |
-
msgstr "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
|
1362 |
-
|
1363 |
-
#: includes/i18n.php:383
|
1364 |
-
msgid "Couldn't activate %s."
|
1365 |
-
msgstr "Couldn't activate %s."
|
1366 |
-
|
1367 |
-
#: includes/i18n.php:384
|
1368 |
-
msgid "Please contact us with the following message:"
|
1369 |
-
msgstr "Please contact us with the following message:"
|
1370 |
-
|
1371 |
-
#: includes/i18n.php:385
|
1372 |
-
msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
|
1373 |
-
msgstr "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
|
1374 |
-
|
1375 |
-
#: includes/i18n.php:386
|
1376 |
-
msgid "Please contact us here"
|
1377 |
-
msgstr "Please contact us here"
|
1378 |
-
|
1379 |
-
#: includes/i18n.php:387
|
1380 |
-
msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
|
1381 |
-
msgstr "I have upgraded my account but when I try to Sync the License, the plan remains %s."
|
1382 |
-
|
1383 |
-
#: includes/i18n.php:390
|
1384 |
-
msgid "From unknown reason, the API connectivity test failed."
|
1385 |
-
msgstr "From unknown reason, the API connectivity test failed."
|
1386 |
-
|
1387 |
-
#: includes/i18n.php:391
|
1388 |
-
msgid "It's probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?"
|
1389 |
-
msgstr "It's probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?"
|
1390 |
-
|
1391 |
-
#: includes/i18n.php:392
|
1392 |
-
msgid "We use PHP cURL library for the API calls, which is a very common library and usually installed and activated out of the box. Unfortunately, cURL is not activated (or disabled) on your server."
|
1393 |
-
msgstr "We use PHP cURL library for the API calls, which is a very common library and usually installed and activated out of the box. Unfortunately, cURL is not activated (or disabled) on your server."
|
1394 |
-
|
1395 |
-
#: includes/i18n.php:393
|
1396 |
-
msgid "Disabled method(s):"
|
1397 |
-
msgstr "Disabled method(s):"
|
1398 |
-
|
1399 |
-
#: includes/i18n.php:394
|
1400 |
-
msgid "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
|
1401 |
-
msgstr "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
|
1402 |
-
|
1403 |
-
#: includes/i18n.php:395
|
1404 |
-
msgctxt "as pluginX requires an access to our API"
|
1405 |
-
msgid "%s requires an access to our API."
|
1406 |
-
msgstr "%s requires an access to our API."
|
1407 |
-
|
1408 |
-
#: includes/i18n.php:397
|
1409 |
-
msgid "It looks like your server is using Squid ACL (access control lists), which blocks the connection."
|
1410 |
-
msgstr "It looks like your server is using Squid ACL (access control lists), which blocks the connection."
|
1411 |
-
|
1412 |
-
#: includes/i18n.php:398
|
1413 |
-
msgid "I don't know what is Squid or ACL, help me!"
|
1414 |
-
msgstr "I don't know what is Squid or ACL, help me!"
|
1415 |
-
|
1416 |
-
#: includes/i18n.php:399, includes/i18n.php:403
|
1417 |
-
msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
|
1418 |
-
msgstr "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
|
1419 |
-
|
1420 |
-
#: includes/i18n.php:400
|
1421 |
-
msgid "I'm a system administrator"
|
1422 |
-
msgstr "I'm a system administrator"
|
1423 |
-
|
1424 |
-
#: includes/i18n.php:401
|
1425 |
-
msgid "Great, please whitelist the following domains: %s. Once you are done, deactivate the %s and activate it again."
|
1426 |
-
msgstr "Great, please whitelist the following domains: %s. Once you are done, deactivate the %s and activate it again."
|
1427 |
-
|
1428 |
-
#: includes/i18n.php:402
|
1429 |
-
msgid "I don't know what is cURL or how to install it, help me!"
|
1430 |
-
msgstr "I don't know what is cURL or how to install it, help me!"
|
1431 |
-
|
1432 |
-
#: includes/i18n.php:404
|
1433 |
-
msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
|
1434 |
-
msgstr "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
|
1435 |
-
|
1436 |
-
#: includes/i18n.php:405
|
1437 |
-
msgid "We are sure it's an issue on our side and more than happy to resolve it for you ASAP if you give us a chance."
|
1438 |
-
msgstr "We are sure it's an issue on our side and more than happy to resolve it for you ASAP if you give us a chance."
|
1439 |
-
|
1440 |
-
#: includes/i18n.php:406
|
1441 |
-
msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
|
1442 |
-
msgstr "Sorry for the inconvenience and we are here to help if you give us a chance."
|
1443 |
-
|
1444 |
-
#: includes/i18n.php:407
|
1445 |
-
msgid "Yes - I'm giving you a chance to fix it"
|
1446 |
-
msgstr "Yes - I'm giving you a chance to fix it"
|
1447 |
-
|
1448 |
-
#: includes/i18n.php:408
|
1449 |
-
msgid "We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update."
|
1450 |
-
msgstr "We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update."
|
1451 |
-
|
1452 |
-
#: includes/i18n.php:409
|
1453 |
-
msgid "Let's try your previous version"
|
1454 |
-
msgstr "Let's try your previous version"
|
1455 |
-
|
1456 |
-
#: includes/i18n.php:410
|
1457 |
-
msgid "Uninstall this version and install the previous one."
|
1458 |
-
msgstr "Uninstall this version and install the previous one."
|
1459 |
-
|
1460 |
-
#: includes/i18n.php:411
|
1461 |
-
msgid "That's exhausting, please deactivate"
|
1462 |
-
msgstr "That's exhausting, please deactivate"
|
1463 |
-
|
1464 |
-
#: includes/i18n.php:412
|
1465 |
-
msgid "We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future."
|
1466 |
-
msgstr "We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future."
|
1467 |
-
|
1468 |
-
#: includes/i18n.php:413
|
1469 |
-
msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
|
1470 |
-
msgstr "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
|
1471 |
-
|
1472 |
-
#: includes/i18n.php:414
|
1473 |
-
msgctxt "%1s - plugin title, %2s - API domain"
|
1474 |
-
msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
|
1475 |
-
msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
|
1476 |
-
|
1477 |
-
#: includes/i18n.php:416
|
1478 |
-
msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
|
1479 |
-
msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
|
1480 |
-
|
1481 |
-
#: includes/i18n.php:419
|
1482 |
-
msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
|
1483 |
-
msgstr "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
|
1484 |
-
|
1485 |
-
#: includes/i18n.php:420
|
1486 |
-
msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
|
1487 |
-
msgstr "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
|
1488 |
-
|
1489 |
-
#: includes/i18n.php:421
|
1490 |
-
msgid "%s is the new owner of the account."
|
1491 |
-
msgstr "%s is the new owner of the account."
|
1492 |
-
|
1493 |
-
#: includes/i18n.php:423
|
1494 |
-
msgctxt "addonX cannot run without pluginY"
|
1495 |
-
msgid "%s cannot run without %s."
|
1496 |
-
msgstr "%s cannot run without %s."
|
1497 |
-
|
1498 |
-
#: includes/i18n.php:425
|
1499 |
-
msgctxt "addonX cannot run..."
|
1500 |
-
msgid "%s cannot run without the plugin."
|
1501 |
-
msgstr "%s cannot run without the plugin."
|
1502 |
-
|
1503 |
-
#: includes/i18n.php:426
|
1504 |
-
msgctxt "pluginX activation was successfully..."
|
1505 |
-
msgid "%s activation was successfully completed."
|
1506 |
-
msgstr "%s activation was successfully completed."
|
1507 |
-
|
1508 |
-
#: includes/i18n.php:428
|
1509 |
-
msgctxt "Plugin installer section title"
|
1510 |
-
msgid "Features & Pricing"
|
1511 |
-
msgstr "Features & Pricing"
|
1512 |
-
|
1513 |
-
#: includes/i18n.php:429
|
1514 |
-
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
1515 |
-
msgstr "Add-on must be deployed to WordPress.org or Freemius."
|
1516 |
-
|
1517 |
-
#: includes/i18n.php:430
|
1518 |
-
msgid "Paid add-on must be deployed to Freemius."
|
1519 |
-
msgstr "Paid add-on must be deployed to Freemius."
|
1520 |
-
|
1521 |
-
#: includes/i18n.php:434
|
1522 |
-
msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
|
1523 |
-
msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
|
1524 |
-
|
1525 |
-
#: includes/i18n.php:435
|
1526 |
-
msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
|
1527 |
-
msgstr "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
|
1528 |
-
|
1529 |
-
#: includes/i18n.php:440
|
1530 |
-
msgctxt "as every month"
|
1531 |
-
msgid "Monthly"
|
1532 |
-
msgstr "Monthly"
|
1533 |
-
|
1534 |
-
#: includes/i18n.php:441
|
1535 |
-
msgctxt "as monthly period"
|
1536 |
-
msgid "mo"
|
1537 |
-
msgstr "mo"
|
1538 |
|
1539 |
-
#:
|
1540 |
-
|
1541 |
-
|
1542 |
-
msgstr "Annual"
|
1543 |
|
1544 |
-
#:
|
1545 |
-
|
1546 |
-
|
1547 |
-
msgstr "Annually"
|
1548 |
|
1549 |
-
#:
|
1550 |
-
|
1551 |
-
|
1552 |
-
msgstr "Once"
|
1553 |
|
1554 |
-
#:
|
1555 |
-
|
1556 |
-
|
1557 |
-
msgstr "year"
|
1558 |
|
1559 |
-
#:
|
1560 |
-
msgid "
|
1561 |
-
msgstr "
|
1562 |
|
1563 |
-
#:
|
1564 |
-
|
1565 |
-
|
1566 |
-
msgstr "Best"
|
1567 |
|
1568 |
-
#:
|
1569 |
-
|
1570 |
-
|
1571 |
-
msgstr "Billed %s"
|
1572 |
|
1573 |
-
#:
|
1574 |
-
|
1575 |
-
|
1576 |
-
msgstr "Save %s"
|
1577 |
|
1578 |
-
#:
|
1579 |
-
msgid "
|
1580 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1581 |
|
1582 |
-
#:
|
1583 |
-
|
1584 |
-
|
1585 |
-
msgstr "Approve & Start Trial"
|
1586 |
|
1587 |
-
#:
|
1588 |
-
msgid "
|
1589 |
-
msgstr "
|
1590 |
|
1591 |
-
#:
|
1592 |
-
msgid "
|
1593 |
-
msgstr "
|
1594 |
|
1595 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1596 |
msgid "Business name"
|
1597 |
msgstr "Business name"
|
1598 |
|
1599 |
-
#:
|
1600 |
msgid "Tax / VAT ID"
|
1601 |
msgstr "Tax / VAT ID"
|
1602 |
|
1603 |
-
#:
|
1604 |
msgid "Address Line %d"
|
1605 |
msgstr "Address Line %d"
|
1606 |
|
1607 |
-
#:
|
1608 |
-
msgid "Country"
|
1609 |
-
msgstr "Country"
|
1610 |
-
|
1611 |
-
#: includes/i18n.php:469
|
1612 |
-
msgid "Select Country"
|
1613 |
-
msgstr "Select Country"
|
1614 |
-
|
1615 |
-
#: includes/i18n.php:470
|
1616 |
msgid "City"
|
1617 |
msgstr "City"
|
1618 |
|
1619 |
-
#:
|
1620 |
msgid "Town"
|
1621 |
msgstr "Town"
|
1622 |
|
1623 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1624 |
msgid "State"
|
1625 |
msgstr "State"
|
1626 |
|
1627 |
-
#:
|
1628 |
msgid "Province"
|
1629 |
msgstr "Province"
|
1630 |
|
1631 |
-
#:
|
1632 |
-
msgid "
|
1633 |
-
msgstr "
|
1634 |
|
1635 |
-
#:
|
1636 |
-
msgid "
|
1637 |
-
msgstr "
|
1638 |
|
1639 |
-
#:
|
1640 |
-
msgid "
|
1641 |
-
msgstr "
|
1642 |
|
1643 |
-
#:
|
1644 |
-
msgid "
|
1645 |
-
msgstr "
|
1646 |
|
1647 |
-
#:
|
1648 |
-
msgid "
|
1649 |
-
msgstr "
|
1650 |
|
1651 |
-
#:
|
1652 |
-
msgid "
|
1653 |
-
msgstr "
|
1654 |
|
1655 |
-
#:
|
1656 |
-
msgid "
|
1657 |
-
msgstr "
|
1658 |
|
1659 |
-
#:
|
1660 |
-
msgid "
|
1661 |
-
msgstr "
|
1662 |
|
1663 |
-
#:
|
1664 |
-
msgid "
|
1665 |
-
msgstr "
|
1666 |
|
1667 |
-
#:
|
1668 |
-
msgid "
|
1669 |
-
msgstr "
|
1670 |
|
1671 |
-
#:
|
1672 |
-
msgid "
|
1673 |
-
msgstr "
|
1674 |
|
1675 |
-
#:
|
1676 |
-
msgid "
|
1677 |
-
msgstr "
|
1678 |
|
1679 |
-
#:
|
1680 |
-
msgid "
|
1681 |
-
msgstr "
|
1682 |
|
1683 |
-
#:
|
1684 |
-
msgid "
|
1685 |
-
msgstr "
|
1686 |
|
1687 |
-
#:
|
1688 |
-
msgid "
|
1689 |
-
msgstr "
|
1690 |
|
1691 |
-
#:
|
1692 |
-
msgid "
|
1693 |
-
msgstr "
|
1694 |
|
1695 |
-
#:
|
1696 |
-
msgid "
|
1697 |
-
msgstr "
|
1698 |
|
1699 |
-
#:
|
1700 |
-
|
1701 |
-
|
1702 |
-
msgstr "Description"
|
1703 |
-
|
1704 |
-
#: includes/i18n.php:513
|
1705 |
-
msgctxt "Plugin installer section title"
|
1706 |
-
msgid "Installation"
|
1707 |
-
msgstr "Installation"
|
1708 |
-
|
1709 |
-
#: includes/i18n.php:514
|
1710 |
-
msgctxt "Plugin installer section title"
|
1711 |
-
msgid "FAQ"
|
1712 |
-
msgstr "FAQ"
|
1713 |
-
|
1714 |
-
#: includes/i18n.php:515
|
1715 |
-
msgctxt "Plugin installer section title"
|
1716 |
-
msgid "Changelog"
|
1717 |
-
msgstr "Changelog"
|
1718 |
-
|
1719 |
-
#: includes/i18n.php:516
|
1720 |
-
msgctxt "Plugin installer section title"
|
1721 |
-
msgid "Reviews"
|
1722 |
-
msgstr "Reviews"
|
1723 |
-
|
1724 |
-
#: includes/i18n.php:517
|
1725 |
-
msgctxt "Plugin installer section title"
|
1726 |
-
msgid "Other Notes"
|
1727 |
-
msgstr "Other Notes"
|
1728 |
-
|
1729 |
-
#: includes/i18n.php:519
|
1730 |
-
msgid "%s star"
|
1731 |
-
msgstr "%s star"
|
1732 |
-
|
1733 |
-
#: includes/i18n.php:521
|
1734 |
-
msgid "%s stars"
|
1735 |
-
msgstr "%s stars"
|
1736 |
-
|
1737 |
-
#: includes/i18n.php:523
|
1738 |
-
msgid "%s rating"
|
1739 |
-
msgstr "%s rating"
|
1740 |
-
|
1741 |
-
#: includes/i18n.php:525
|
1742 |
-
msgid "%s ratings"
|
1743 |
-
msgstr "%s ratings"
|
1744 |
-
|
1745 |
-
#: includes/i18n.php:527
|
1746 |
-
msgid "%s time"
|
1747 |
-
msgstr "%s time"
|
1748 |
-
|
1749 |
-
#: includes/i18n.php:529
|
1750 |
-
msgid "%s times"
|
1751 |
-
msgstr "%s times"
|
1752 |
-
|
1753 |
-
#: includes/i18n.php:531
|
1754 |
-
msgid "Click to see reviews that provided a rating of %s"
|
1755 |
-
msgstr "Click to see reviews that provided a rating of %s"
|
1756 |
-
|
1757 |
-
#: includes/i18n.php:532
|
1758 |
-
msgid "Last Updated"
|
1759 |
-
msgstr "Last Updated"
|
1760 |
|
1761 |
-
#:
|
1762 |
-
msgid "
|
1763 |
-
msgstr "
|
1764 |
|
1765 |
-
#:
|
1766 |
-
|
1767 |
-
|
1768 |
-
msgstr "Author:"
|
1769 |
|
1770 |
-
#:
|
1771 |
-
msgid "
|
1772 |
-
msgstr "
|
1773 |
|
1774 |
-
#:
|
1775 |
-
msgid "
|
1776 |
-
msgstr "
|
1777 |
|
1778 |
-
#:
|
1779 |
-
msgid "
|
1780 |
-
msgstr "
|
1781 |
|
1782 |
-
#:
|
1783 |
-
msgid "
|
1784 |
-
msgstr "
|
1785 |
|
1786 |
-
#:
|
1787 |
-
msgid "
|
1788 |
-
msgstr "
|
1789 |
|
1790 |
-
#:
|
1791 |
-
msgid "
|
1792 |
-
msgstr "
|
1793 |
|
1794 |
-
#:
|
1795 |
-
msgid "
|
1796 |
-
msgstr "
|
1797 |
|
1798 |
-
#:
|
1799 |
-
msgid "
|
1800 |
-
msgstr "
|
1801 |
|
1802 |
-
#:
|
1803 |
-
msgid "
|
1804 |
-
msgstr "
|
1805 |
|
1806 |
-
#:
|
1807 |
-
msgid "
|
1808 |
-
msgstr "
|
1809 |
|
1810 |
-
#:
|
1811 |
-
msgid "
|
1812 |
-
msgstr "
|
1813 |
|
1814 |
-
#:
|
1815 |
-
msgid "
|
1816 |
-
msgstr "
|
1817 |
|
1818 |
-
#:
|
1819 |
-
msgid "
|
1820 |
-
msgstr "
|
1821 |
|
1822 |
-
#:
|
1823 |
-
msgid "
|
1824 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
"MIME-Version: 1.0\n"
|
16 |
"X-Poedit-Basepath: ..\n"
|
17 |
+
"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_text_x_inline:1,2c;fs_echo_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;fs_esc_html_inline;fs_esc_html_echo_inline;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;fs_esc_html_x_inline:1,2c\n"
|
18 |
"X-Poedit-SearchPath-0: .\n"
|
19 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
20 |
"X-Poedit-SourceCharset: UTF-8\n"
|
21 |
|
22 |
+
#: includes/class-freemius.php:1816
|
23 |
+
msgid "freemius-debug"
|
24 |
+
msgstr "freemius-debug"
|
25 |
|
26 |
+
#: includes/class-freemius.php:13474, includes/fs-core-functions.php:728, includes/fs-core-functions.php:771, includes/fs-core-functions.php:809, includes/fs-core-functions.php:836, includes/fs-core-functions.php:859, includes/fs-core-functions.php:882, includes/fs-core-functions.php:909, includes/fs-core-functions.php:947
|
27 |
+
msgid "$text"
|
28 |
+
msgstr "$text"
|
29 |
|
30 |
+
#: includes/class-freemius.php:13580
|
31 |
+
msgid "Auto installation only works for opted-in users."
|
32 |
+
msgstr "Auto installation only works for opted-in users."
|
33 |
|
34 |
+
#: includes/class-freemius.php:13590, includes/class-freemius.php:13623, includes/class-fs-plugin-updater.php:490, includes/class-fs-plugin-updater.php:504
|
35 |
+
msgid "Invalid module ID."
|
36 |
+
msgstr "Invalid module ID."
|
37 |
|
38 |
+
#: includes/class-freemius.php:13599, includes/class-fs-plugin-updater.php:524
|
39 |
+
msgid "Premium version already active."
|
40 |
+
msgstr "Premium version already active."
|
41 |
|
42 |
+
#: includes/class-freemius.php:13606
|
43 |
+
msgid "You do not have a valid license to access the premium version."
|
44 |
+
msgstr "You do not have a valid license to access the premium version."
|
45 |
|
46 |
+
#: includes/class-freemius.php:13613
|
47 |
+
msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
|
48 |
+
msgstr "Plugin is a \"Serviceware\" which means it does not have a premium code version."
|
49 |
+
|
50 |
+
#: includes/class-freemius.php:13631, includes/class-fs-plugin-updater.php:523
|
51 |
+
msgid "Premium add-on version already installed."
|
52 |
+
msgstr "Premium add-on version already installed."
|
53 |
+
|
54 |
+
#: includes/class-freemius.php:13976
|
55 |
+
msgid "View paid features"
|
56 |
+
msgstr "View paid features"
|
57 |
+
|
58 |
+
#: includes/class-fs-plugin-updater.php:553
|
59 |
+
msgid "Installing plugin: %s"
|
60 |
+
msgstr "Installing plugin: %s"
|
61 |
+
|
62 |
+
#: includes/class-fs-plugin-updater.php:700
|
63 |
+
msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
|
64 |
+
msgstr "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
|
65 |
+
|
66 |
+
#: includes/fs-core-functions.php:743, includes/fs-core-functions.php:786, includes/fs-core-functions.php:924
|
67 |
+
msgctxt "$context"
|
68 |
+
msgid "$text"
|
69 |
+
msgstr "$text"
|
70 |
+
|
71 |
+
#: includes/fs-plugin-info-dialog.php:328
|
72 |
+
msgid "purchase"
|
73 |
+
msgstr "purchase"
|
74 |
+
|
75 |
+
#: includes/fs-plugin-info-dialog.php:329
|
76 |
+
msgid "start-free-x"
|
77 |
+
msgstr "start-free-x"
|
78 |
+
|
79 |
+
#: includes/fs-plugin-info-dialog.php:351, templates/account.php:643
|
80 |
+
msgid "download-latest"
|
81 |
+
msgstr "download-latest"
|
82 |
+
|
83 |
+
#: includes/fs-plugin-info-dialog.php:354, templates/account.php:637, templates/auto-installation.php:107
|
84 |
+
msgid "install-now"
|
85 |
+
msgstr "install-now"
|
86 |
+
|
87 |
+
#: includes/fs-plugin-info-dialog.php:360
|
88 |
+
msgid "install-update-now"
|
89 |
+
msgstr "install-update-now"
|
90 |
+
|
91 |
+
#: includes/fs-plugin-info-dialog.php:364
|
92 |
+
msgid "Newer Version (%s) Installed"
|
93 |
+
msgstr "Newer Version (%s) Installed"
|
94 |
+
|
95 |
+
#: includes/fs-plugin-info-dialog.php:367
|
96 |
+
msgid "Latest Version Installed"
|
97 |
+
msgstr "Latest Version Installed"
|
98 |
+
|
99 |
+
#: includes/fs-plugin-info-dialog.php:480
|
100 |
+
msgid "description"
|
101 |
+
msgstr "description"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
|
103 |
+
#: includes/fs-plugin-info-dialog.php:481
|
104 |
+
msgid "installation"
|
105 |
+
msgstr "installation"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
|
107 |
+
#: includes/fs-plugin-info-dialog.php:482
|
108 |
+
msgid "faq"
|
109 |
+
msgstr "faq"
|
110 |
|
111 |
+
#: includes/fs-plugin-info-dialog.php:483
|
112 |
+
msgid "screenshots"
|
113 |
+
msgstr "screenshots"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
|
115 |
+
#: includes/fs-plugin-info-dialog.php:484
|
116 |
+
msgid "changelog"
|
117 |
+
msgstr "changelog"
|
118 |
|
119 |
+
#: includes/fs-plugin-info-dialog.php:485
|
120 |
+
msgid "reviews"
|
121 |
+
msgstr "reviews"
|
122 |
+
|
123 |
+
#: includes/fs-plugin-info-dialog.php:486
|
124 |
+
msgid "other_notes"
|
125 |
+
msgstr "other_notes"
|
126 |
+
|
127 |
+
#: includes/fs-plugin-info-dialog.php:501
|
128 |
+
msgid "features-and-pricing"
|
129 |
+
msgstr "features-and-pricing"
|
130 |
+
|
131 |
+
#: includes/fs-plugin-info-dialog.php:511
|
132 |
+
msgid "Plugin Install"
|
133 |
+
msgstr "Plugin Install"
|
134 |
+
|
135 |
+
#: includes/fs-plugin-info-dialog.php:583
|
136 |
+
msgid "x-plan"
|
137 |
+
msgstr "x-plan"
|
138 |
+
|
139 |
+
#: includes/fs-plugin-info-dialog.php:608
|
140 |
+
msgid "best"
|
141 |
+
msgstr "best"
|
142 |
+
|
143 |
+
#: includes/fs-plugin-info-dialog.php:610
|
144 |
+
msgid "$cycle"
|
145 |
+
msgstr "$cycle"
|
146 |
+
|
147 |
+
#: includes/fs-plugin-info-dialog.php:621, includes/fs-plugin-info-dialog.php:623, includes/fs-plugin-info-dialog.php:625
|
148 |
+
msgid "billed-x"
|
149 |
+
msgstr "billed-x"
|
150 |
+
|
151 |
+
#: includes/fs-plugin-info-dialog.php:621
|
152 |
+
msgid "monthly"
|
153 |
+
msgstr "monthly"
|
154 |
+
|
155 |
+
#: includes/fs-plugin-info-dialog.php:623
|
156 |
+
msgid "annually"
|
157 |
+
msgstr "annually"
|
158 |
+
|
159 |
+
#: includes/fs-plugin-info-dialog.php:625
|
160 |
+
msgid "once"
|
161 |
+
msgstr "once"
|
162 |
+
|
163 |
+
#: includes/fs-plugin-info-dialog.php:631
|
164 |
+
msgid "license-single-site"
|
165 |
+
msgstr "license-single-site"
|
166 |
+
|
167 |
+
#: includes/fs-plugin-info-dialog.php:633
|
168 |
+
msgid "license-unlimited"
|
169 |
+
msgstr "license-unlimited"
|
170 |
+
|
171 |
+
#: includes/fs-plugin-info-dialog.php:635
|
172 |
+
msgid "license-x-sites"
|
173 |
+
msgstr "license-x-sites"
|
174 |
+
|
175 |
+
#: includes/fs-plugin-info-dialog.php:645
|
176 |
+
msgid "mo"
|
177 |
+
msgstr "mo"
|
178 |
+
|
179 |
+
#: includes/fs-plugin-info-dialog.php:652
|
180 |
+
msgid "year"
|
181 |
+
msgstr "year"
|
182 |
+
|
183 |
+
#: includes/fs-plugin-info-dialog.php:704
|
184 |
+
msgid "price"
|
185 |
+
msgstr "price"
|
186 |
+
|
187 |
+
#: includes/fs-plugin-info-dialog.php:750
|
188 |
+
msgctxt "as a discount of $5 or 10%"
|
189 |
+
msgid "Save %s"
|
190 |
+
msgstr "Save %s"
|
191 |
+
|
192 |
+
#: includes/fs-plugin-info-dialog.php:760
|
193 |
+
msgid "no-commitment-x"
|
194 |
+
msgstr "no-commitment-x"
|
195 |
+
|
196 |
+
#: includes/fs-plugin-info-dialog.php:763
|
197 |
+
msgid "after-x-pay-as-little-y"
|
198 |
+
msgstr "after-x-pay-as-little-y"
|
199 |
+
|
200 |
+
#: includes/fs-plugin-info-dialog.php:774
|
201 |
+
msgid "details"
|
202 |
+
msgstr "details"
|
203 |
+
|
204 |
+
#: includes/fs-plugin-info-dialog.php:777, templates/account.php:204, templates/debug.php:180, templates/debug.php:217, templates/debug.php:345
|
205 |
+
msgid "version"
|
206 |
+
msgstr "version"
|
207 |
+
|
208 |
+
#: includes/fs-plugin-info-dialog.php:783
|
209 |
+
msgctxt "as the plugin author"
|
210 |
+
msgid "Author"
|
211 |
+
msgstr "Author"
|
212 |
+
|
213 |
+
#: includes/fs-plugin-info-dialog.php:789
|
214 |
+
msgid "Last Updated"
|
215 |
+
msgstr "Last Updated"
|
216 |
+
|
217 |
+
#: includes/fs-plugin-info-dialog.php:791, templates/debug/plugins-themes-sync.php:41, templates/debug/plugins-themes-sync.php:61, templates/debug/scheduled-crons.php:105, templates/debug/scheduled-crons.php:121
|
218 |
+
msgid "x-ago"
|
219 |
+
msgstr "x-ago"
|
220 |
+
|
221 |
+
#: includes/fs-plugin-info-dialog.php:798
|
222 |
+
msgid "Requires WordPress Version"
|
223 |
+
msgstr "Requires WordPress Version"
|
224 |
+
|
225 |
+
#: includes/fs-plugin-info-dialog.php:798
|
226 |
+
msgid "x-or-higher"
|
227 |
+
msgstr "x-or-higher"
|
228 |
+
|
229 |
+
#: includes/fs-plugin-info-dialog.php:804
|
230 |
+
msgid "Compatible up to"
|
231 |
+
msgstr "Compatible up to"
|
232 |
+
|
233 |
+
#: includes/fs-plugin-info-dialog.php:811
|
234 |
+
msgid "Downloaded"
|
235 |
+
msgstr "Downloaded"
|
236 |
+
|
237 |
+
#: includes/fs-plugin-info-dialog.php:812, includes/fs-plugin-info-dialog.php:850, includes/fs-plugin-info-dialog.php:861, includes/fs-plugin-info-dialog.php:928, templates/account.php:118, templates/account.php:506, templates/account.php:655, templates/connect.php:433, templates/debug.php:211, templates/forms/license-activation.php:23
|
238 |
+
#: includes/fs-plugin-info-dialog.php:821
|
239 |
+
msgid "WordPress.org Plugin Page"
|
240 |
+
msgstr "WordPress.org Plugin Page"
|
241 |
+
|
242 |
+
#: includes/fs-plugin-info-dialog.php:828
|
243 |
+
msgid "Plugin Homepage"
|
244 |
+
msgstr "Plugin Homepage"
|
245 |
+
|
246 |
+
#: includes/fs-plugin-info-dialog.php:835, includes/fs-plugin-info-dialog.php:901
|
247 |
+
msgid "Donate to this plugin"
|
248 |
+
msgstr "Donate to this plugin"
|
249 |
+
|
250 |
+
#: includes/fs-plugin-info-dialog.php:841
|
251 |
+
msgid "Average Rating"
|
252 |
+
msgstr "Average Rating"
|
253 |
+
|
254 |
+
#: includes/fs-plugin-info-dialog.php:848
|
255 |
+
msgid "based on %s"
|
256 |
+
msgstr "based on %s"
|
257 |
+
|
258 |
+
#: includes/fs-plugin-info-dialog.php:869
|
259 |
+
msgid "click-to-reviews"
|
260 |
+
msgstr "click-to-reviews"
|
261 |
+
|
262 |
+
#: includes/fs-plugin-info-dialog.php:880
|
263 |
+
msgid "Contributors"
|
264 |
+
msgstr "Contributors"
|
265 |
+
|
266 |
+
#: includes/fs-plugin-info-dialog.php:908, includes/fs-plugin-info-dialog.php:910
|
267 |
+
msgid "Warning"
|
268 |
+
msgstr "Warning"
|
269 |
+
|
270 |
+
#: includes/fs-plugin-info-dialog.php:908
|
271 |
+
msgid "This plugin has not been tested with your current version of WordPress."
|
272 |
+
msgstr "This plugin has not been tested with your current version of WordPress."
|
273 |
+
|
274 |
+
#: includes/fs-plugin-info-dialog.php:910
|
275 |
+
msgid "This plugin has not been marked as compatible with your version of WordPress."
|
276 |
+
msgstr "This plugin has not been marked as compatible with your version of WordPress."
|
277 |
+
|
278 |
+
#: templates/account.php:55, templates/debug.php:276
|
279 |
+
msgid "account"
|
280 |
+
msgstr "account"
|
281 |
+
|
282 |
+
#: templates/account.php:58
|
283 |
+
msgid "add-ons"
|
284 |
+
msgstr "add-ons"
|
285 |
+
|
286 |
+
#: templates/account.php:61
|
287 |
+
msgid "upgrade"
|
288 |
+
msgstr "upgrade"
|
289 |
+
|
290 |
+
#: templates/account.php:63
|
291 |
+
msgid "free-trial"
|
292 |
+
msgstr "free-trial"
|
293 |
+
|
294 |
+
#: templates/account.php:74
|
295 |
+
msgid "account-details"
|
296 |
+
msgstr "account-details"
|
297 |
+
|
298 |
+
#: templates/account.php:84
|
299 |
msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
300 |
msgstr "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
301 |
|
302 |
+
#: templates/account.php:86
|
303 |
+
msgid "delete-account-confirm"
|
304 |
+
msgstr "delete-account-confirm"
|
305 |
+
|
306 |
+
#: templates/account.php:89
|
307 |
+
msgid "delete-account"
|
308 |
+
msgstr "delete-account"
|
309 |
+
|
310 |
+
#: templates/account.php:100
|
311 |
+
msgid "deactivate-license-confirm"
|
312 |
+
msgstr "deactivate-license-confirm"
|
313 |
+
|
314 |
+
#: templates/account.php:101, templates/account.php:553
|
315 |
+
msgid "deactivate-license"
|
316 |
+
msgstr "deactivate-license"
|
317 |
+
|
318 |
+
#: templates/account.php:114, templates/account.php:559
|
319 |
+
msgid "downgrade-x-confirm"
|
320 |
+
msgstr "downgrade-x-confirm"
|
321 |
+
|
322 |
+
#: templates/account.php:115, templates/account.php:564
|
323 |
+
msgid "after-downgrade-non-blocking"
|
324 |
+
msgstr "after-downgrade-non-blocking"
|
325 |
+
|
326 |
+
#: templates/account.php:117, templates/account.php:565
|
327 |
+
msgid "after-downgrade-blocking"
|
328 |
+
msgstr "after-downgrade-blocking"
|
329 |
+
|
330 |
+
#: templates/account.php:118
|
331 |
+
msgid "proceed-confirmation"
|
332 |
+
msgstr "proceed-confirmation"
|
333 |
+
|
334 |
+
#: templates/account.php:126
|
335 |
+
msgid "change-plan"
|
336 |
+
msgstr "change-plan"
|
337 |
+
|
338 |
+
#: templates/account.php:136, templates/account.php:589
|
339 |
+
msgid "cancel-trial-confirm"
|
340 |
+
msgstr "cancel-trial-confirm"
|
341 |
+
|
342 |
+
#: templates/account.php:137, templates/account.php:585
|
343 |
+
msgid "cancel-trial"
|
344 |
+
msgstr "cancel-trial"
|
345 |
+
|
346 |
+
#: templates/account.php:147
|
347 |
+
msgid "sync"
|
348 |
+
msgstr "sync"
|
349 |
+
|
350 |
+
#: templates/account.php:161, templates/debug.php:380
|
351 |
+
msgid "name"
|
352 |
+
msgstr "name"
|
353 |
+
|
354 |
+
#: templates/account.php:167, templates/debug.php:381
|
355 |
+
msgid "email"
|
356 |
+
msgstr "email"
|
357 |
+
|
358 |
+
#: templates/account.php:174, templates/debug.php:301, templates/debug.php:410
|
359 |
+
msgid "user-id"
|
360 |
+
msgstr "user-id"
|
361 |
+
|
362 |
+
#: templates/account.php:181
|
363 |
+
msgid "site-id"
|
364 |
+
msgstr "site-id"
|
365 |
+
|
366 |
+
#: templates/account.php:184
|
367 |
+
msgid "no-id"
|
368 |
+
msgstr "no-id"
|
369 |
+
|
370 |
+
#: templates/account.php:189, templates/debug.php:222, templates/debug.php:303, templates/debug.php:346, templates/debug.php:383
|
371 |
+
msgid "public-key"
|
372 |
+
msgstr "public-key"
|
373 |
+
|
374 |
+
#: templates/account.php:195, templates/debug.php:304, templates/debug.php:347, templates/debug.php:384
|
375 |
+
msgid "secret-key"
|
376 |
+
msgstr "secret-key"
|
377 |
+
|
378 |
+
#: templates/account.php:198
|
379 |
+
msgid "no-secret"
|
380 |
+
msgstr "no-secret"
|
381 |
|
382 |
+
#: templates/account.php:214, templates/account.php:222, templates/debug.php:302
|
383 |
+
msgid "plan"
|
384 |
+
msgstr "plan"
|
385 |
|
386 |
+
#: templates/account.php:217, templates/account.php:503, templates/add-ons.php:130
|
387 |
+
msgid "trial"
|
388 |
+
msgstr "trial"
|
389 |
|
390 |
+
#: templates/account.php:225, templates/add-ons.php:126
|
391 |
+
msgid "free"
|
392 |
+
msgstr "free"
|
393 |
|
394 |
+
#: templates/account.php:232
|
395 |
+
msgid "License Key"
|
396 |
+
msgstr "License Key"
|
397 |
|
398 |
+
#: templates/account.php:271, templates/account.php:276, templates/account.php:528
|
399 |
+
msgid "expires-in"
|
400 |
+
msgstr "expires-in"
|
401 |
|
402 |
+
#: templates/account.php:273, templates/account.php:533
|
403 |
+
msgid "renews-in"
|
404 |
+
msgstr "renews-in"
|
405 |
|
406 |
+
#: templates/account.php:289, templates/account.php:602
|
407 |
+
msgid "activate-x-plan"
|
408 |
+
msgstr "activate-x-plan"
|
409 |
|
410 |
+
#: templates/account.php:292
|
411 |
+
msgid "localhost"
|
412 |
+
msgstr "localhost"
|
413 |
|
414 |
+
#: templates/account.php:296
|
415 |
+
msgid "x-left"
|
416 |
+
msgstr "x-left"
|
417 |
|
418 |
+
#: templates/account.php:297
|
419 |
+
msgid "last-license"
|
420 |
+
msgstr "last-license"
|
421 |
|
422 |
+
#: templates/account.php:350
|
423 |
+
msgid "download-x-version"
|
424 |
+
msgstr "download-x-version"
|
425 |
|
426 |
+
#: templates/account.php:375
|
427 |
+
msgid "what-is-your-x"
|
428 |
+
msgstr "what-is-your-x"
|
429 |
|
430 |
+
#: templates/account.php:513
|
431 |
+
msgid "cancelled"
|
432 |
+
msgstr "cancelled"
|
433 |
|
434 |
+
#: templates/account.php:518
|
435 |
+
msgid "expired"
|
436 |
+
msgstr "expired"
|
437 |
|
438 |
+
#: templates/account.php:523
|
439 |
+
msgid "no-expiration"
|
440 |
+
msgstr "no-expiration"
|
441 |
|
442 |
+
#: templates/account.php:572
|
443 |
+
msgid "downgrade"
|
444 |
+
msgstr "downgrade"
|
445 |
|
446 |
+
#: templates/account.php:617
|
447 |
+
msgid "sync-license"
|
448 |
+
msgstr "sync-license"
|
449 |
|
450 |
+
#: templates/account.php:630
|
451 |
+
msgid "activate"
|
452 |
+
msgstr "activate"
|
453 |
|
454 |
+
#: templates/account.php:653, templates/add-ons.php:99
|
455 |
+
msgid "more-information-about-x"
|
456 |
+
msgstr "more-information-about-x"
|
457 |
|
458 |
+
#: templates/account.php:704, templates/debug.php:327
|
459 |
+
msgid "delete"
|
460 |
+
msgstr "delete"
|
461 |
|
462 |
+
#: templates/add-ons.php:36
|
463 |
+
msgid "add-ons-for-x"
|
464 |
+
msgstr "add-ons-for-x"
|
465 |
|
466 |
+
#: templates/add-ons.php:43
|
467 |
+
msgid "oops"
|
468 |
+
msgstr "oops"
|
469 |
|
470 |
+
#: templates/add-ons.php:44
|
471 |
+
msgid "add-ons-missing"
|
472 |
+
msgstr "add-ons-missing"
|
473 |
|
474 |
+
#: templates/add-ons.php:135
|
475 |
+
msgid "View details"
|
476 |
+
msgstr "View details"
|
477 |
+
|
478 |
+
#: templates/admin-notice.php:39, templates/admin-notice.php:39
|
479 |
+
msgid "dismiss"
|
480 |
+
msgstr "dismiss"
|
481 |
+
|
482 |
+
#: templates/auto-installation.php:31
|
483 |
+
msgid "addon"
|
484 |
+
msgstr "addon"
|
485 |
+
|
486 |
+
#: templates/auto-installation.php:42
|
487 |
+
msgid "x-sec"
|
488 |
+
msgstr "x-sec"
|
489 |
+
|
490 |
+
#: templates/auto-installation.php:79
|
491 |
+
msgid "Automatic Installation"
|
492 |
+
msgstr "Automatic Installation"
|
493 |
+
|
494 |
+
#: templates/auto-installation.php:89
|
495 |
+
msgid "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
|
496 |
+
msgstr "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
|
497 |
+
|
498 |
+
#: templates/auto-installation.php:100
|
499 |
+
msgid "The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page."
|
500 |
+
msgstr "The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page."
|
501 |
+
|
502 |
+
#: templates/auto-installation.php:105
|
503 |
+
msgid "Cancel Installation"
|
504 |
+
msgstr "Cancel Installation"
|
505 |
+
|
506 |
+
#: templates/checkout.php:168
|
507 |
+
msgid "PCI compliant"
|
508 |
+
msgstr "PCI compliant"
|
509 |
+
|
510 |
+
#: templates/connect.php:134
|
511 |
+
msgid "thanks-x"
|
512 |
+
msgstr "thanks-x"
|
513 |
+
|
514 |
+
#: templates/connect.php:135
|
515 |
+
msgid "pending-activation-message"
|
516 |
+
msgstr "pending-activation-message"
|
517 |
|
518 |
+
#: templates/connect.php:139
|
519 |
+
msgid "complete-the-install"
|
520 |
+
msgstr "complete-the-install"
|
521 |
|
522 |
+
#: templates/connect.php:145, templates/connect.php:168
|
523 |
+
msgid "hey-x"
|
524 |
+
msgstr "hey-x"
|
525 |
|
526 |
+
#: templates/connect.php:146
|
527 |
+
msgid "thanks-for-purchasing"
|
528 |
+
msgstr "thanks-for-purchasing"
|
529 |
|
530 |
+
#: templates/connect.php:170
|
531 |
+
msgid "$default_optin_message"
|
532 |
+
msgstr "$default_optin_message"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
533 |
|
534 |
+
#: templates/connect.php:187, templates/debug.php:415, templates/forms/license-activation.php:44
|
535 |
+
msgid "license-key"
|
536 |
+
msgstr "license-key"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
537 |
|
538 |
+
#: templates/connect.php:190, templates/forms/license-activation.php:19
|
539 |
+
msgid "cant-find-license-key"
|
540 |
+
msgstr "cant-find-license-key"
|
541 |
+
|
542 |
+
#: templates/connect.php:197, templates/forms/deactivation/retry-skip.php:20
|
543 |
+
msgid "skip"
|
544 |
+
msgstr "skip"
|
545 |
+
|
546 |
+
#: templates/connect.php:206, templates/connect.php:217, templates/connect.php:408
|
547 |
+
msgid "$button_label"
|
548 |
+
msgstr "$button_label"
|
549 |
+
|
550 |
+
#: templates/connect.php:282
|
551 |
+
msgid "what-permissions"
|
552 |
+
msgstr "what-permissions"
|
553 |
+
|
554 |
+
#: templates/connect.php:303
|
555 |
+
msgid "dont-have-license-key"
|
556 |
+
msgstr "dont-have-license-key"
|
557 |
+
|
558 |
+
#: templates/connect.php:304
|
559 |
+
msgid "activate-free-version"
|
560 |
+
msgstr "activate-free-version"
|
561 |
+
|
562 |
+
#: templates/connect.php:306
|
563 |
+
msgid "have-license-key"
|
564 |
+
msgstr "have-license-key"
|
565 |
+
|
566 |
+
#: templates/connect.php:307
|
567 |
+
msgid "activate-license"
|
568 |
+
msgstr "activate-license"
|
569 |
+
|
570 |
+
#: templates/connect.php:314
|
571 |
+
msgid "privacy-policy"
|
572 |
+
msgstr "privacy-policy"
|
573 |
+
|
574 |
+
#: templates/connect.php:316
|
575 |
+
msgid "tos"
|
576 |
+
msgstr "tos"
|
577 |
+
|
578 |
+
#: templates/debug.php:17
|
579 |
msgid "Freemius Debug"
|
580 |
msgstr "Freemius Debug"
|
581 |
|
582 |
+
#: templates/debug.php:17
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
583 |
msgid "SDK"
|
584 |
msgstr "SDK"
|
585 |
|
586 |
+
#: templates/debug.php:21
|
587 |
+
msgid "debugging"
|
588 |
+
msgstr "debugging"
|
|
|
589 |
|
590 |
+
#: templates/debug.php:25, templates/debug.php:259
|
591 |
+
msgid "on"
|
592 |
+
msgstr "on"
|
|
|
593 |
|
594 |
+
#: templates/debug.php:26, templates/debug.php:260
|
595 |
+
msgid "off"
|
596 |
+
msgstr "off"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
597 |
|
598 |
+
#: templates/debug.php:51, templates/debug.php:223, templates/debug.php:305
|
599 |
+
msgid "actions"
|
600 |
+
msgstr "actions"
|
|
|
601 |
|
602 |
+
#: templates/debug.php:61
|
603 |
+
msgid "delete-all-confirm"
|
604 |
+
msgstr "delete-all-confirm"
|
|
|
605 |
|
606 |
+
#: templates/debug.php:61
|
607 |
+
msgid "delete-all-accounts"
|
608 |
+
msgstr "delete-all-accounts"
|
|
|
609 |
|
610 |
+
#: templates/debug.php:68
|
611 |
+
msgid "clear-api-cache"
|
612 |
+
msgstr "clear-api-cache"
|
|
|
613 |
|
614 |
+
#: templates/debug.php:75
|
615 |
+
msgid "sync-data-from-server"
|
616 |
+
msgstr "sync-data-from-server"
|
617 |
|
618 |
+
#: templates/debug.php:79
|
619 |
+
msgid "Load DB Option"
|
620 |
+
msgstr "Load DB Option"
|
|
|
621 |
|
622 |
+
#: templates/debug.php:82
|
623 |
+
msgid "Set DB Option"
|
624 |
+
msgstr "Set DB Option"
|
|
|
625 |
|
626 |
+
#: templates/debug.php:159
|
627 |
+
msgid "key"
|
628 |
+
msgstr "key"
|
|
|
629 |
|
630 |
+
#: templates/debug.php:160
|
631 |
+
msgid "value"
|
632 |
+
msgstr "value"
|
633 |
+
|
634 |
+
#: templates/debug.php:176
|
635 |
+
msgid "sdk-versions"
|
636 |
+
msgstr "sdk-versions"
|
637 |
+
|
638 |
+
#: templates/debug.php:181
|
639 |
+
msgid "sdk-path"
|
640 |
+
msgstr "sdk-path"
|
641 |
+
|
642 |
+
#: templates/debug.php:182, templates/debug.php:221
|
643 |
+
msgid "plugin-path"
|
644 |
+
msgstr "plugin-path"
|
645 |
+
|
646 |
+
#: templates/debug.php:183
|
647 |
+
msgid "is-active"
|
648 |
+
msgstr "is-active"
|
649 |
+
|
650 |
+
#: templates/debug.php:215, templates/debug.php:299, templates/debug.php:342, templates/debug.php:379, templates/debug.php:408, templates/debug.php:487, templates/account/payments.php:35, templates/debug/logger.php:21
|
651 |
+
msgid "id"
|
652 |
+
msgstr "id"
|
653 |
+
|
654 |
+
#: templates/debug.php:216, templates/debug.php:300, templates/debug.php:344, templates/debug/scheduled-crons.php:79
|
655 |
+
msgid "slug"
|
656 |
+
msgstr "slug"
|
657 |
+
|
658 |
+
#: templates/debug.php:218, templates/debug.php:343
|
659 |
+
msgid "title"
|
660 |
+
msgstr "title"
|
661 |
+
|
662 |
+
#: templates/debug.php:219
|
663 |
+
msgid "api"
|
664 |
+
msgstr "api"
|
665 |
+
|
666 |
+
#: templates/debug.php:220
|
667 |
+
msgid "freemius-state"
|
668 |
+
msgstr "freemius-state"
|
669 |
+
|
670 |
+
#: templates/debug.php:252
|
671 |
+
msgid "connected"
|
672 |
+
msgstr "connected"
|
673 |
+
|
674 |
+
#: templates/debug.php:253
|
675 |
+
msgid "blocked"
|
676 |
+
msgstr "blocked"
|
677 |
+
|
678 |
+
#: templates/debug.php:272
|
679 |
+
msgid "Simulate Trial"
|
680 |
+
msgstr "Simulate Trial"
|
681 |
+
|
682 |
+
#: templates/debug.php:295
|
683 |
+
msgid "module-installs"
|
684 |
+
msgstr "module-installs"
|
685 |
+
|
686 |
+
#: templates/debug.php:295, templates/debug.php:404
|
687 |
+
msgid "$module_type"
|
688 |
+
msgstr "$module_type"
|
689 |
+
|
690 |
+
#: templates/debug.php:295
|
691 |
+
msgid "sites"
|
692 |
+
msgstr "sites"
|
693 |
+
|
694 |
+
#: templates/debug.php:338
|
695 |
+
msgid "addons-of-x"
|
696 |
+
msgstr "addons-of-x"
|
697 |
+
|
698 |
+
#: templates/debug.php:375
|
699 |
+
msgid "users"
|
700 |
+
msgstr "users"
|
701 |
+
|
702 |
+
#: templates/debug.php:382
|
703 |
+
msgid "verified"
|
704 |
+
msgstr "verified"
|
705 |
+
|
706 |
+
#: templates/debug.php:404
|
707 |
+
msgid "module-licenses"
|
708 |
+
msgstr "module-licenses"
|
709 |
+
|
710 |
+
#: templates/debug.php:409
|
711 |
+
msgid "plugin-id"
|
712 |
+
msgstr "plugin-id"
|
713 |
+
|
714 |
+
#: templates/debug.php:411
|
715 |
+
msgid "plan-id"
|
716 |
+
msgstr "plan-id"
|
717 |
|
718 |
+
#: templates/debug.php:412
|
719 |
+
msgid "quota"
|
720 |
+
msgstr "quota"
|
|
|
721 |
|
722 |
+
#: templates/debug.php:413
|
723 |
+
msgid "activated"
|
724 |
+
msgstr "activated"
|
725 |
|
726 |
+
#: templates/debug.php:414
|
727 |
+
msgid "blocking"
|
728 |
+
msgstr "blocking"
|
729 |
|
730 |
+
#: templates/debug.php:416
|
731 |
+
msgid "expiration"
|
732 |
+
msgstr "expiration"
|
733 |
+
|
734 |
+
#: templates/debug.php:445
|
735 |
+
msgid "debug-log"
|
736 |
+
msgstr "debug-log"
|
737 |
+
|
738 |
+
#: templates/debug.php:449
|
739 |
+
msgid "all-types"
|
740 |
+
msgstr "all-types"
|
741 |
+
|
742 |
+
#: templates/debug.php:456
|
743 |
+
msgid "all-requests"
|
744 |
+
msgstr "all-requests"
|
745 |
+
|
746 |
+
#: templates/debug.php:461, templates/debug.php:490, templates/debug/logger.php:25
|
747 |
+
msgid "file"
|
748 |
+
msgstr "file"
|
749 |
+
|
750 |
+
#: templates/debug.php:462, templates/debug.php:488, templates/debug/logger.php:23
|
751 |
+
msgid "function"
|
752 |
+
msgstr "function"
|
753 |
+
|
754 |
+
#: templates/debug.php:463
|
755 |
+
msgid "process-id"
|
756 |
+
msgstr "process-id"
|
757 |
+
|
758 |
+
#: templates/debug.php:464
|
759 |
+
msgid "logger"
|
760 |
+
msgstr "logger"
|
761 |
+
|
762 |
+
#: templates/debug.php:465, templates/debug.php:489, templates/debug/logger.php:24
|
763 |
+
msgid "message"
|
764 |
+
msgstr "message"
|
765 |
+
|
766 |
+
#: templates/debug.php:467
|
767 |
+
msgid "filter"
|
768 |
+
msgstr "filter"
|
769 |
+
|
770 |
+
#: templates/debug.php:475
|
771 |
+
msgid "download"
|
772 |
+
msgstr "download"
|
773 |
+
|
774 |
+
#: templates/debug.php:486, templates/debug/logger.php:22
|
775 |
+
msgid "type"
|
776 |
+
msgstr "type"
|
777 |
+
|
778 |
+
#: templates/debug.php:491, templates/debug/logger.php:26
|
779 |
+
msgid "timestamp"
|
780 |
+
msgstr "timestamp"
|
781 |
+
|
782 |
+
#: includes/debug/class-fs-debug-bar-panel.php:48, templates/debug/api-calls.php:84, templates/debug/api-calls.php:148, templates/debug/api-calls.php:149, templates/debug/logger.php:62
|
783 |
+
msgid "ms"
|
784 |
+
msgstr "ms"
|
785 |
+
|
786 |
+
#: includes/debug/debug-bar-start.php:41
|
787 |
+
msgid "Freemius API"
|
788 |
+
msgstr "Freemius API"
|
789 |
+
|
790 |
+
#: includes/debug/debug-bar-start.php:42
|
791 |
+
msgid "Requests"
|
792 |
+
msgstr "Requests"
|
793 |
+
|
794 |
+
#: templates/account/billing.php:36
|
795 |
+
msgid "billing"
|
796 |
+
msgstr "billing"
|
797 |
+
|
798 |
+
#: templates/account/billing.php:41, templates/account/billing.php:41
|
799 |
msgid "Business name"
|
800 |
msgstr "Business name"
|
801 |
|
802 |
+
#: templates/account/billing.php:42, templates/account/billing.php:42
|
803 |
msgid "Tax / VAT ID"
|
804 |
msgstr "Tax / VAT ID"
|
805 |
|
806 |
+
#: templates/account/billing.php:45, templates/account/billing.php:45, templates/account/billing.php:46, templates/account/billing.php:46
|
807 |
msgid "Address Line %d"
|
808 |
msgstr "Address Line %d"
|
809 |
|
810 |
+
#: templates/account/billing.php:49, templates/account/billing.php:49
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
811 |
msgid "City"
|
812 |
msgstr "City"
|
813 |
|
814 |
+
#: templates/account/billing.php:49, templates/account/billing.php:49
|
815 |
msgid "Town"
|
816 |
msgstr "Town"
|
817 |
|
818 |
+
#: templates/account/billing.php:50, templates/account/billing.php:50
|
819 |
+
msgid "ZIP / Postal Code"
|
820 |
+
msgstr "ZIP / Postal Code"
|
821 |
+
|
822 |
+
#: templates/account/billing.php:305
|
823 |
+
msgid "Country"
|
824 |
+
msgstr "Country"
|
825 |
+
|
826 |
+
#: templates/account/billing.php:307
|
827 |
+
msgid "Select Country"
|
828 |
+
msgstr "Select Country"
|
829 |
+
|
830 |
+
#: templates/account/billing.php:314, templates/account/billing.php:315
|
831 |
msgid "State"
|
832 |
msgstr "State"
|
833 |
|
834 |
+
#: templates/account/billing.php:314, templates/account/billing.php:315
|
835 |
msgid "Province"
|
836 |
msgstr "Province"
|
837 |
|
838 |
+
#: templates/account/billing.php:321, templates/account/billing.php:362, templates/account/billing.php:421
|
839 |
+
msgid "edit"
|
840 |
+
msgstr "edit"
|
841 |
|
842 |
+
#: templates/account/billing.php:322, templates/account/billing.php:362, templates/account/billing.php:413
|
843 |
+
msgid "update"
|
844 |
+
msgstr "update"
|
845 |
|
846 |
+
#: templates/account/payments.php:29
|
847 |
+
msgid "payments"
|
848 |
+
msgstr "payments"
|
849 |
|
850 |
+
#: templates/account/payments.php:36
|
851 |
+
msgid "date"
|
852 |
+
msgstr "date"
|
853 |
|
854 |
+
#: templates/account/payments.php:37
|
855 |
+
msgid "amount"
|
856 |
+
msgstr "amount"
|
857 |
|
858 |
+
#: templates/account/payments.php:38, templates/account/payments.php:50
|
859 |
+
msgid "invoice"
|
860 |
+
msgstr "invoice"
|
861 |
|
862 |
+
#: templates/debug/api-calls.php:54
|
863 |
+
msgid "API"
|
864 |
+
msgstr "API"
|
865 |
|
866 |
+
#: templates/debug/api-calls.php:66
|
867 |
+
msgid "Method"
|
868 |
+
msgstr "Method"
|
869 |
|
870 |
+
#: templates/debug/api-calls.php:67
|
871 |
+
msgid "Code"
|
872 |
+
msgstr "Code"
|
873 |
|
874 |
+
#: templates/debug/api-calls.php:68
|
875 |
+
msgid "Length"
|
876 |
+
msgstr "Length"
|
877 |
|
878 |
+
#: templates/debug/api-calls.php:69
|
879 |
+
msgid "Path"
|
880 |
+
msgstr "Path"
|
881 |
|
882 |
+
#: templates/debug/api-calls.php:71
|
883 |
+
msgid "Body"
|
884 |
+
msgstr "Body"
|
885 |
|
886 |
+
#: templates/debug/api-calls.php:73
|
887 |
+
msgid "Result"
|
888 |
+
msgstr "Result"
|
889 |
|
890 |
+
#: templates/debug/api-calls.php:74
|
891 |
+
msgid "Start"
|
892 |
+
msgstr "Start"
|
893 |
|
894 |
+
#: templates/debug/api-calls.php:75
|
895 |
+
msgid "End"
|
896 |
+
msgstr "End"
|
897 |
|
898 |
+
#: templates/debug/logger.php:15
|
899 |
+
msgid "Log"
|
900 |
+
msgstr "Log"
|
901 |
|
902 |
+
#: templates/debug/plugins-themes-sync.php:17
|
903 |
+
msgid "plugins-themes-sync"
|
904 |
+
msgstr "plugins-themes-sync"
|
905 |
|
906 |
+
#: templates/debug/plugins-themes-sync.php:22
|
907 |
+
msgid "total"
|
908 |
+
msgstr "total"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
909 |
|
910 |
+
#: templates/debug/plugins-themes-sync.php:23, templates/debug/scheduled-crons.php:83
|
911 |
+
msgid "Last"
|
912 |
+
msgstr "Last"
|
913 |
|
914 |
+
#: templates/debug/plugins-themes-sync.php:29
|
915 |
+
msgid "plugins"
|
916 |
+
msgstr "plugins"
|
|
|
917 |
|
918 |
+
#: templates/debug/plugins-themes-sync.php:35, templates/debug/plugins-themes-sync.php:55, templates/debug/scheduled-crons.php:99, templates/debug/scheduled-crons.php:115
|
919 |
+
msgid "sec"
|
920 |
+
msgstr "sec"
|
921 |
|
922 |
+
#: templates/debug/plugins-themes-sync.php:39, templates/debug/plugins-themes-sync.php:59, templates/debug/scheduled-crons.php:103, templates/debug/scheduled-crons.php:119
|
923 |
+
msgid "in-x"
|
924 |
+
msgstr "in-x"
|
925 |
|
926 |
+
#: templates/debug/plugins-themes-sync.php:49
|
927 |
+
msgid "themes"
|
928 |
+
msgstr "themes"
|
929 |
|
930 |
+
#: templates/debug/scheduled-crons.php:75
|
931 |
+
msgid "scheduled-crons"
|
932 |
+
msgstr "scheduled-crons"
|
933 |
|
934 |
+
#: templates/debug/scheduled-crons.php:80
|
935 |
+
msgid "module"
|
936 |
+
msgstr "module"
|
937 |
|
938 |
+
#: templates/debug/scheduled-crons.php:81
|
939 |
+
msgid "module-type"
|
940 |
+
msgstr "module-type"
|
941 |
|
942 |
+
#: templates/debug/scheduled-crons.php:82
|
943 |
+
msgid "cron-type"
|
944 |
+
msgstr "cron-type"
|
945 |
|
946 |
+
#: templates/debug/scheduled-crons.php:84
|
947 |
+
msgid "Next"
|
948 |
+
msgstr "Next"
|
949 |
|
950 |
+
#: templates/forms/affiliation.php:81
|
951 |
+
msgid "non-expiring"
|
952 |
+
msgstr "non-expiring"
|
953 |
|
954 |
+
#: templates/forms/affiliation.php:101
|
955 |
+
msgid "affiliate-application-accepted"
|
956 |
+
msgstr "affiliate-application-accepted"
|
957 |
|
958 |
+
#: templates/forms/affiliation.php:124
|
959 |
+
msgid "$text_key"
|
960 |
+
msgstr "$text_key"
|
961 |
|
962 |
+
#: templates/forms/affiliation.php:132
|
963 |
+
msgid "become-an-ambassador"
|
964 |
+
msgstr "become-an-ambassador"
|
965 |
|
966 |
+
#: templates/forms/affiliation.php:133
|
967 |
+
msgid "refer-new-customers"
|
968 |
+
msgstr "refer-new-customers"
|
969 |
|
970 |
+
#: templates/forms/affiliation.php:136
|
971 |
+
msgid "program-summary"
|
972 |
+
msgstr "program-summary"
|
973 |
+
|
974 |
+
#: templates/forms/affiliation.php:138
|
975 |
+
msgid "commission-on-new-license-purchase"
|
976 |
+
msgstr "commission-on-new-license-purchase"
|
977 |
+
|
978 |
+
#: templates/forms/affiliation.php:140
|
979 |
+
msgid "renewals-commission"
|
980 |
+
msgstr "renewals-commission"
|
981 |
+
|
982 |
+
#: templates/forms/affiliation.php:143
|
983 |
+
msgid "affiliate-tracking"
|
984 |
+
msgstr "affiliate-tracking"
|
985 |
+
|
986 |
+
#: templates/forms/affiliation.php:146
|
987 |
+
msgid "unlimited-commissions"
|
988 |
+
msgstr "unlimited-commissions"
|
989 |
+
|
990 |
+
#: templates/forms/affiliation.php:148
|
991 |
+
msgid "minimum-payout-amount"
|
992 |
+
msgstr "minimum-payout-amount"
|
993 |
+
|
994 |
+
#: templates/forms/affiliation.php:149
|
995 |
+
msgid "payouts-unit-and-processing"
|
996 |
+
msgstr "payouts-unit-and-processing"
|
997 |
+
|
998 |
+
#: templates/forms/affiliation.php:150
|
999 |
+
msgid "commission-payment"
|
1000 |
+
msgstr "commission-payment"
|
1001 |
+
|
1002 |
+
#: templates/forms/affiliation.php:153
|
1003 |
+
msgid "affiliate"
|
1004 |
+
msgstr "affiliate"
|
1005 |
+
|
1006 |
+
#: templates/forms/affiliation.php:156
|
1007 |
+
msgid "email-address"
|
1008 |
+
msgstr "email-address"
|
1009 |
+
|
1010 |
+
#: templates/forms/affiliation.php:160
|
1011 |
+
msgid "full-name"
|
1012 |
+
msgstr "full-name"
|
1013 |
+
|
1014 |
+
#: templates/forms/affiliation.php:164
|
1015 |
+
msgid "paypal-account-email-address"
|
1016 |
+
msgstr "paypal-account-email-address"
|
1017 |
+
|
1018 |
+
#: templates/forms/affiliation.php:168
|
1019 |
+
msgid "domain-field-label"
|
1020 |
+
msgstr "domain-field-label"
|
1021 |
+
|
1022 |
+
#: templates/forms/affiliation.php:170
|
1023 |
+
msgid "domain-field-desc"
|
1024 |
+
msgstr "domain-field-desc"
|
1025 |
+
|
1026 |
+
#: templates/forms/affiliation.php:172
|
1027 |
+
msgid "add-another-domain"
|
1028 |
+
msgstr "add-another-domain"
|
1029 |
+
|
1030 |
+
#: templates/forms/affiliation.php:176
|
1031 |
+
msgid "extra-domain-fields-label"
|
1032 |
+
msgstr "extra-domain-fields-label"
|
1033 |
+
|
1034 |
+
#: templates/forms/affiliation.php:177
|
1035 |
+
msgid "extra-domain-fields-desc"
|
1036 |
+
msgstr "extra-domain-fields-desc"
|
1037 |
+
|
1038 |
+
#: templates/forms/affiliation.php:187
|
1039 |
+
msgid "promotion-methods"
|
1040 |
+
msgstr "promotion-methods"
|
1041 |
+
|
1042 |
+
#: templates/forms/affiliation.php:190
|
1043 |
+
msgid "social-media"
|
1044 |
+
msgstr "social-media"
|
1045 |
+
|
1046 |
+
#: templates/forms/affiliation.php:194
|
1047 |
+
msgid "mobile-apps"
|
1048 |
+
msgstr "mobile-apps"
|
1049 |
+
|
1050 |
+
#: templates/forms/affiliation.php:198
|
1051 |
+
msgid "statistics-information-field-label"
|
1052 |
+
msgstr "statistics-information-field-label"
|
1053 |
+
|
1054 |
+
#: templates/forms/affiliation.php:201
|
1055 |
+
msgid "statistics-information-field-desc"
|
1056 |
+
msgstr "statistics-information-field-desc"
|
1057 |
+
|
1058 |
+
#: templates/forms/affiliation.php:205
|
1059 |
+
msgid "promotion-method-desc-field-label"
|
1060 |
+
msgstr "promotion-method-desc-field-label"
|
1061 |
+
|
1062 |
+
#: templates/forms/affiliation.php:208
|
1063 |
+
msgid "promotion-method-desc-field-desc"
|
1064 |
+
msgstr "promotion-method-desc-field-desc"
|
1065 |
+
|
1066 |
+
#: templates/forms/affiliation.php:214, templates/forms/resend-key.php:22, templates/forms/deactivation/form.php:80
|
1067 |
+
msgid "cancel"
|
1068 |
+
msgstr "cancel"
|
1069 |
+
|
1070 |
+
#: templates/forms/affiliation.php:215, templates/forms/affiliation.php:371
|
1071 |
+
msgid "apply-to-become-an-affiliate"
|
1072 |
+
msgstr "apply-to-become-an-affiliate"
|
1073 |
+
|
1074 |
+
#: templates/forms/affiliation.php:216
|
1075 |
+
msgid "become-an-affiliate"
|
1076 |
+
msgstr "become-an-affiliate"
|
1077 |
+
|
1078 |
+
#: templates/forms/affiliation.php:272
|
1079 |
+
msgid "email-address-is-required"
|
1080 |
+
msgstr "email-address-is-required"
|
1081 |
+
|
1082 |
+
#: templates/forms/affiliation.php:278
|
1083 |
+
msgid "paypal-email-address-is-required"
|
1084 |
+
msgstr "paypal-email-address-is-required"
|
1085 |
+
|
1086 |
+
#: templates/forms/affiliation.php:288
|
1087 |
+
msgid "domain-is-required"
|
1088 |
+
msgstr "domain-is-required"
|
1089 |
+
|
1090 |
+
#: templates/forms/affiliation.php:291, templates/forms/affiliation.php:305
|
1091 |
+
msgid "invalid-domain"
|
1092 |
+
msgstr "invalid-domain"
|
1093 |
+
|
1094 |
+
#: templates/forms/affiliation.php:361
|
1095 |
+
msgid "processing"
|
1096 |
+
msgstr "processing"
|
1097 |
+
|
1098 |
+
#: templates/forms/license-activation.php:20
|
1099 |
+
msgid "activate-license-message"
|
1100 |
+
msgstr "activate-license-message"
|
1101 |
+
|
1102 |
+
#: templates/forms/license-activation.php:36
|
1103 |
+
msgid "license-sync-disclaimer"
|
1104 |
+
msgstr "license-sync-disclaimer"
|
1105 |
+
|
1106 |
+
#: templates/forms/license-activation.php:41
|
1107 |
+
msgid "agree-activate-license"
|
1108 |
+
msgstr "agree-activate-license"
|
1109 |
+
|
1110 |
+
#: templates/forms/optout.php:30
|
1111 |
+
msgid "opt-out"
|
1112 |
+
msgstr "opt-out"
|
1113 |
+
|
1114 |
+
#: templates/forms/optout.php:31
|
1115 |
+
msgid "opt-out-message-appreciation"
|
1116 |
+
msgstr "opt-out-message-appreciation"
|
1117 |
+
|
1118 |
+
#: templates/forms/optout.php:32
|
1119 |
+
msgid "opt-out-message-usage-tracking"
|
1120 |
+
msgstr "opt-out-message-usage-tracking"
|
1121 |
+
|
1122 |
+
#: templates/forms/optout.php:34
|
1123 |
+
msgid "opt-out-message-clicking-opt-out"
|
1124 |
+
msgstr "opt-out-message-clicking-opt-out"
|
1125 |
+
|
1126 |
+
#: templates/forms/resend-key.php:21
|
1127 |
+
msgid "send-license-key"
|
1128 |
+
msgstr "send-license-key"
|
1129 |
+
|
1130 |
+
#: templates/forms/resend-key.php:24
|
1131 |
+
msgid "reason-other"
|
1132 |
+
msgstr "reason-other"
|
1133 |
+
|
1134 |
+
#: templates/forms/resend-key.php:57
|
1135 |
+
msgid "ask-for-upgrade-email-address"
|
1136 |
+
msgstr "ask-for-upgrade-email-address"
|
1137 |
+
|
1138 |
+
#: templates/forms/trial-start.php:21
|
1139 |
+
msgid "start-trial-prompt-header"
|
1140 |
+
msgstr "start-trial-prompt-header"
|
1141 |
+
|
1142 |
+
#: templates/forms/trial-start.php:26
|
1143 |
+
msgid "start-trial-prompt-message"
|
1144 |
+
msgstr "start-trial-prompt-message"
|
1145 |
+
|
1146 |
+
#: templates/plugin-info/description.php:72, templates/plugin-info/screenshots.php:31
|
1147 |
+
msgid "view-full-size-x"
|
1148 |
+
msgstr "view-full-size-x"
|
1149 |
+
|
1150 |
+
#: templates/plugin-info/features.php:43
|
1151 |
+
msgid "Support"
|
1152 |
+
msgstr "Support"
|
1153 |
+
|
1154 |
+
#: templates/plugin-info/features.php:56
|
1155 |
+
msgid "unlimited-updates"
|
1156 |
+
msgstr "unlimited-updates"
|
1157 |
+
|
1158 |
+
#: templates/forms/deactivation/contact.php:16
|
1159 |
+
msgid "contact-support-before-deactivation"
|
1160 |
+
msgstr "contact-support-before-deactivation"
|
1161 |
+
|
1162 |
+
#: templates/forms/deactivation/contact.php:19
|
1163 |
+
msgid "contact-support"
|
1164 |
+
msgstr "contact-support"
|
1165 |
+
|
1166 |
+
#: templates/forms/deactivation/form.php:56
|
1167 |
+
msgid "anonymous-feedback"
|
1168 |
+
msgstr "anonymous-feedback"
|
1169 |
+
|
1170 |
+
#: templates/forms/deactivation/form.php:243
|
1171 |
+
msgid "deactivation-modal-button-submit"
|
1172 |
+
msgstr "deactivation-modal-button-submit"
|
1173 |
+
|
1174 |
+
#: templates/forms/deactivation/form.php:245, templates/forms/deactivation/form.php:387, templates/forms/deactivation/form.php:394
|
1175 |
+
msgid "deactivate"
|
1176 |
+
msgstr "deactivate"
|
1177 |
+
|
1178 |
+
#: templates/forms/deactivation/form.php:246, templates/forms/deactivation/form.php:388, templates/forms/deactivation/form.php:395
|
1179 |
+
msgid "activate-x"
|
1180 |
+
msgstr "activate-x"
|
1181 |
+
|
1182 |
+
#: templates/forms/deactivation/form.php:246, templates/forms/deactivation/form.php:388, templates/forms/deactivation/form.php:395
|
1183 |
+
msgid "theme"
|
1184 |
+
msgstr "theme"
|
1185 |
+
|
1186 |
+
#: templates/forms/deactivation/form.php:264
|
1187 |
+
msgid "ask-for-reason-message"
|
1188 |
+
msgstr "ask-for-reason-message"
|
1189 |
+
|
1190 |
+
#: templates/forms/deactivation/form.php:385
|
1191 |
+
msgid "deactivation-modal-button-confirm"
|
1192 |
+
msgstr "deactivation-modal-button-confirm"
|
1193 |
+
|
1194 |
+
#: templates/forms/deactivation/form.php:392
|
1195 |
+
msgid "skip-and-x"
|
1196 |
+
msgstr "skip-and-x"
|
1197 |
+
|
1198 |
+
#: templates/forms/deactivation/retry-skip.php:21
|
1199 |
+
msgid "click-here-to-use-plugin-anonymously"
|
1200 |
+
msgstr "click-here-to-use-plugin-anonymously"
|
1201 |
+
|
1202 |
+
#: templates/forms/deactivation/retry-skip.php:23
|
1203 |
+
msgid "dont-have-to-share-any-data"
|
1204 |
+
msgstr "dont-have-to-share-any-data"
|
freemius/languages/freemius-es_ES.mo
ADDED
Binary file
|
freemius/languages/freemius-es_ES.po
ADDED
@@ -0,0 +1,2035 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright (C) 2017 freemius
|
2 |
+
# This file is distributed under the same license as the freemius package.
|
3 |
+
# Translators:
|
4 |
+
# Carlos Longarela <carlos@longarela.eu>, 2017
|
5 |
+
msgid ""
|
6 |
+
msgstr ""
|
7 |
+
"Project-Id-Version: WordPress SDK\n"
|
8 |
+
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
9 |
+
"POT-Creation-Date: \n"
|
10 |
+
"PO-Revision-Date: 2017-11-10 09:37+0000\n"
|
11 |
+
"Last-Translator: Vova Feldman <vova@freemius.com>\n"
|
12 |
+
"Language: es_ES\n"
|
13 |
+
"Language-Team: Spanish (Spain) (http://www.transifex.com/freemius/wordpress-sdk/language/es_ES/)\n"
|
14 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
15 |
+
"Content-Transfer-Encoding: 8bit\n"
|
16 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
17 |
+
"MIME-Version: 1.0\n"
|
18 |
+
"X-Poedit-Basepath: ..\n"
|
19 |
+
"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;fs_esc_html_inline;fs_esc_html_echo_inline;get_text_x_inline:1,2c;fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n"
|
20 |
+
"X-Poedit-SearchPath-0: .\n"
|
21 |
+
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
22 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
23 |
+
|
24 |
+
#: includes/class-freemius.php:903
|
25 |
+
msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
|
26 |
+
msgstr "Freemius SDK no pudo encontrar el archivo principal del plugin. Por favor contacta a sdk@freemius.com con el error actual."
|
27 |
+
|
28 |
+
#: includes/class-freemius.php:905
|
29 |
+
msgid "Error"
|
30 |
+
msgstr "Error"
|
31 |
+
|
32 |
+
#: includes/class-freemius.php:1155
|
33 |
+
msgid "I found a better %s"
|
34 |
+
msgstr "He encontrado un mejor %s"
|
35 |
+
|
36 |
+
#: includes/class-freemius.php:1157
|
37 |
+
msgid "What's the %s's name?"
|
38 |
+
msgstr "¿Cuál es el nombre de %s?"
|
39 |
+
|
40 |
+
#: includes/class-freemius.php:1163
|
41 |
+
msgid "It's a temporary %s. I'm just debugging an issue."
|
42 |
+
msgstr "Es temporal %s. Sólo estoy depurando un problema."
|
43 |
+
|
44 |
+
#: includes/class-freemius.php:1165
|
45 |
+
msgid "Deactivation"
|
46 |
+
msgstr "Desactivación"
|
47 |
+
|
48 |
+
#: includes/class-freemius.php:1166
|
49 |
+
msgid "Theme Switch"
|
50 |
+
msgstr "Cambiar Tema"
|
51 |
+
|
52 |
+
#: includes/class-freemius.php1175, templates/forms/resend-key.php:24
|
53 |
+
msgid "Other"
|
54 |
+
msgstr "Otra"
|
55 |
+
|
56 |
+
#: includes/class-freemius.php:1183
|
57 |
+
msgid "I no longer need the %s"
|
58 |
+
msgstr "Ya no necesito el %s"
|
59 |
+
|
60 |
+
#: includes/class-freemius.php:1190
|
61 |
+
msgid "I only needed the %s for a short period"
|
62 |
+
msgstr "Sólo necesitaba la %s por un corto período"
|
63 |
+
|
64 |
+
#: includes/class-freemius.php:1196
|
65 |
+
msgid "The %s broke my site"
|
66 |
+
msgstr "%s ha roto mi sitio"
|
67 |
+
|
68 |
+
#: includes/class-freemius.php:1203
|
69 |
+
msgid "The %s suddenly stopped working"
|
70 |
+
msgstr "%s de repente ha dejado de funcionar"
|
71 |
+
|
72 |
+
#: includes/class-freemius.php:1213
|
73 |
+
msgid "I can't pay for it anymore"
|
74 |
+
msgstr "No puedo pagarlo durante más tiempo"
|
75 |
+
|
76 |
+
#: includes/class-freemius.php:1215
|
77 |
+
msgid "What price would you feel comfortable paying?"
|
78 |
+
msgstr "¿Qué precio te sentirías cómodo pagando?"
|
79 |
+
|
80 |
+
#: includes/class-freemius.php:1221
|
81 |
+
msgid "I don't like to share my information with you"
|
82 |
+
msgstr "No me gusta compartir mi información contigo"
|
83 |
+
|
84 |
+
#: includes/class-freemius.php:1242
|
85 |
+
msgid "The %s didn't work"
|
86 |
+
msgstr "%s no funcionaba"
|
87 |
+
|
88 |
+
#: includes/class-freemius.php:1252
|
89 |
+
msgid "I couldn't understand how to make it work"
|
90 |
+
msgstr "No entiendo cómo hacerlo funcionar"
|
91 |
+
|
92 |
+
#: includes/class-freemius.php:1260
|
93 |
+
msgid "The %s is great, but I need specific feature that you don't support"
|
94 |
+
msgstr "%s es genial, pero necesito una característica que no soportáis"
|
95 |
+
|
96 |
+
#: includes/class-freemius.php:1262
|
97 |
+
msgid "What feature?"
|
98 |
+
msgstr "¿Qué característica?"
|
99 |
+
|
100 |
+
#: includes/class-freemius.php:1266
|
101 |
+
msgid "The %s is not working"
|
102 |
+
msgstr "%s no funciona"
|
103 |
+
|
104 |
+
#: includes/class-freemius.php:1268
|
105 |
+
msgid "Kindly share what didn't work so we can fix it for future users..."
|
106 |
+
msgstr "Por favor, comparte lo que no funcionó para que podamos arreglarlo para los futuros usuarios..."
|
107 |
+
|
108 |
+
#: includes/class-freemius.php:1272
|
109 |
+
msgid "It's not what I was looking for"
|
110 |
+
msgstr "No es lo que estaba buscando"
|
111 |
+
|
112 |
+
#: includes/class-freemius.php:1274
|
113 |
+
msgid "What you've been looking for?"
|
114 |
+
msgstr "¿Que has estado buscando?"
|
115 |
+
|
116 |
+
#: includes/class-freemius.php:1278
|
117 |
+
msgid "The %s didn't work as expected"
|
118 |
+
msgstr "%s no funciona como esperaba"
|
119 |
+
|
120 |
+
#: includes/class-freemius.php:1280
|
121 |
+
msgid "What did you expect?"
|
122 |
+
msgstr "¿Qué esperas?"
|
123 |
+
|
124 |
+
#: includes/class-freemius.php1816, templates/debug.php:20
|
125 |
+
msgid "Freemius Debug"
|
126 |
+
msgstr "Debug Freemius"
|
127 |
+
|
128 |
+
#: includes/class-freemius.php:2379
|
129 |
+
msgid "I don't know what is cURL or how to install it, help me!"
|
130 |
+
msgstr "No sé qué es cURL o cómo instalarlo, ¡ayúdame!"
|
131 |
+
|
132 |
+
#: includes/class-freemius.php:2381
|
133 |
+
msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
|
134 |
+
msgstr "Nos aseguraremos de ponernos en contacto con tu empresa de alojamiento web y resolver el problema. Recibirás un correo electrónico de seguimiento a %s tan pronto tengamos una actualización."
|
135 |
+
|
136 |
+
#: includes/class-freemius.php:2388
|
137 |
+
msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
|
138 |
+
msgstr "Genial, por favor instala cURL y habilítalo en el archivo php.ini. Además, busca la directiva 'disable_functions' en el archivo php.ini y quita cualquier método que comienza con 'curl_'. Para asegurarte de que se activó con éxito, utiliza 'phpinfo()'. Una vez activado, desactiva el %s y reactívalo de nuevo."
|
139 |
+
|
140 |
+
#: includes/class-freemius.php:2490
|
141 |
+
msgid "Yes - do your thing"
|
142 |
+
msgstr "Vamos, adelante"
|
143 |
+
|
144 |
+
#: includes/class-freemius.php:2495
|
145 |
+
msgid "No - just deactivate"
|
146 |
+
msgstr "No - sólo desactivar"
|
147 |
+
|
148 |
+
#: includes/class-freemius.php2540, includes/class-freemius.php3005,
|
149 |
+
#: includes/class-freemius.php3859, includes/class-freemius.php7141,
|
150 |
+
#: includes/class-freemius.php9000, includes/class-freemius.php9056,
|
151 |
+
#: includes/class-freemius.php9117, includes/class-freemius.php11014,
|
152 |
+
#: includes/class-freemius.php11025, includes/class-freemius.php11474,
|
153 |
+
#: includes/class-freemius.php11492, includes/class-freemius.php11590,
|
154 |
+
#: includes/class-freemius.php12265, templates/add-ons.php:43
|
155 |
+
msgctxt "exclamation"
|
156 |
+
msgid "Oops"
|
157 |
+
msgstr "Oops"
|
158 |
+
|
159 |
+
#: includes/class-freemius.php:2607
|
160 |
+
msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
|
161 |
+
msgstr "¡Gracias por darnos la oportunidad de arreglarlo! Acabamos de enviar un mensaje a nuestro personal técnico. Nos pondremos en contacto contigo tan pronto como tengamos una actualización de %s. Apreciamos tu paciencia."
|
162 |
+
|
163 |
+
#: includes/class-freemius.php:3002
|
164 |
+
msgctxt "addonX cannot run without pluginY"
|
165 |
+
msgid "%s cannot run without %s."
|
166 |
+
msgstr "%s no se puede ejecutar sin %s."
|
167 |
+
|
168 |
+
#: includes/class-freemius.php:3003
|
169 |
+
msgctxt "addonX cannot run..."
|
170 |
+
msgid "%s cannot run without the plugin."
|
171 |
+
msgstr "%s no se puede ejecutar sin el plugin."
|
172 |
+
|
173 |
+
#: includes/class-freemius.php3124, includes/class-freemius.php3149,
|
174 |
+
#: includes/class-freemius.php:11563
|
175 |
+
msgid "Unexpected API error. Please contact the %s's author with the following error."
|
176 |
+
msgstr "Error inesperado del API. Pónte en contacto con el autor de %s indicándole el siguiente error."
|
177 |
+
|
178 |
+
#: includes/class-freemius.php:3557
|
179 |
+
msgid "Premium %s version was successfully activated."
|
180 |
+
msgstr "La versión Premium %s ha sido activada con éxito."
|
181 |
+
|
182 |
+
#: includes/class-freemius.php3559, includes/class-freemius.php:4784
|
183 |
+
msgctxt ""
|
184 |
+
msgid "W00t"
|
185 |
+
msgstr "W00t"
|
186 |
+
|
187 |
+
#: includes/class-freemius.php:3574
|
188 |
+
msgid "You have a %s license."
|
189 |
+
msgstr "Tienes una licencia %s."
|
190 |
+
|
191 |
+
#: includes/class-freemius.php3578, includes/class-freemius.php8704,
|
192 |
+
#: includes/class-freemius.php8713, includes/class-freemius.php10965,
|
193 |
+
#: includes/class-freemius.php11178, includes/class-freemius.php11240,
|
194 |
+
#: includes/class-freemius.php:11352
|
195 |
+
msgctxt "interjection expressing joy or exuberance"
|
196 |
+
msgid "Yee-haw"
|
197 |
+
msgstr "Vaya"
|
198 |
+
|
199 |
+
#: includes/class-freemius.php:3842
|
200 |
+
msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
|
201 |
+
msgstr "la prueba gratuita de %s fue cancelada con éxito. Puesto que el complemento es sólo premium se desactivó automáticamente. Si quieres utilizarlo en el futuro, deberás comprar una licencia."
|
202 |
+
|
203 |
+
#: includes/class-freemius.php:3846
|
204 |
+
msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
|
205 |
+
msgstr "%s es un complemento único de premium. Tienes que comprar una licencia primero antes de activar el plugin."
|
206 |
+
|
207 |
+
#: includes/class-freemius.php3855, templates/account.php692,
|
208 |
+
#: templates/add-ons.php:99
|
209 |
+
msgid "More information about %s"
|
210 |
+
msgstr "Más información sobre %s"
|
211 |
+
|
212 |
+
#: includes/class-freemius.php:3856
|
213 |
+
msgid "Purchase License"
|
214 |
+
msgstr "Comprar Licencia"
|
215 |
+
|
216 |
+
#: includes/class-freemius.php4293, templates/connect.php:136
|
217 |
+
msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
|
218 |
+
msgstr "Recibirás un correo de activación para %s en tu buzón en %s. Por favor, asegúrate de hacer clic en el botón de activación en ese correo electrónico para %s."
|
219 |
+
|
220 |
+
#: includes/class-freemius.php:4297
|
221 |
+
msgid "start the trial"
|
222 |
+
msgstr "comenzar el período de prueba"
|
223 |
+
|
224 |
+
#: includes/class-freemius.php4298, templates/connect.php:140
|
225 |
+
msgid "complete the install"
|
226 |
+
msgstr "completar la instalación"
|
227 |
+
|
228 |
+
#: includes/class-freemius.php:4377
|
229 |
+
msgid "You are just one step away - %s"
|
230 |
+
msgstr "Estás a sólo un paso - %s"
|
231 |
+
|
232 |
+
#: includes/class-freemius.php:4380
|
233 |
+
msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
|
234 |
+
msgid "Complete \"%s\" Activation Now"
|
235 |
+
msgstr "Completar la Activación de \"%s\" Ahora"
|
236 |
+
|
237 |
+
#: includes/class-freemius.php:4394
|
238 |
+
msgid "We made a few tweaks to the %s, %s"
|
239 |
+
msgstr "Hemos realizado algunas optimizaciones al %s, %s"
|
240 |
+
|
241 |
+
#: includes/class-freemius.php:4398
|
242 |
+
msgid "Opt in to make \"%s\" Better!"
|
243 |
+
msgstr "Opt in to make \"%s\" Better!"
|
244 |
+
|
245 |
+
#: includes/class-freemius.php:4783
|
246 |
+
msgid "The upgrade of %s was successfully completed."
|
247 |
+
msgstr "La actualización de %s se completó con éxito."
|
248 |
+
|
249 |
+
#: includes/class-freemius.php5868, includes/class-fs-plugin-updater.php358,
|
250 |
+
#: includes/class-fs-plugin-updater.php510,
|
251 |
+
#: includes/class-fs-plugin-updater.php516, templates/auto-installation.php:31
|
252 |
+
msgid "Add-On"
|
253 |
+
msgstr "Complemento"
|
254 |
+
|
255 |
+
#: includes/class-freemius.php5870, templates/debug.php303,
|
256 |
+
#: templates/debug.php:413
|
257 |
+
msgid "Plugin"
|
258 |
+
msgstr "Plugin"
|
259 |
+
|
260 |
+
#: includes/class-freemius.php5871, templates/debug.php303,
|
261 |
+
#: templates/debug.php413, templates/forms/deactivation/form.php:64
|
262 |
+
msgid "Theme"
|
263 |
+
msgstr "Tema"
|
264 |
+
|
265 |
+
#: includes/class-freemius.php:7128
|
266 |
+
msgid "We couldn't find your email address in the system, are you sure it's the right address?"
|
267 |
+
msgstr "No podemos encontrar tu dirección de correo electrónico en el sistema, ¿estás seguro de que es la dirección de correo electrónico correcta?"
|
268 |
+
|
269 |
+
#: includes/class-freemius.php:7130
|
270 |
+
msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
|
271 |
+
msgstr "No vemos ninguna licencia activa asociada a esa dirección de correo electrónico, ¿estás seguro de que es la dirección de correo electrónico correcta?"
|
272 |
+
|
273 |
+
#: includes/class-freemius.php:7339
|
274 |
+
msgid "Account is pending activation."
|
275 |
+
msgstr "Account is pending activation."
|
276 |
+
|
277 |
+
#: includes/class-freemius.php:8688
|
278 |
+
msgctxt "pluginX activation was successfully..."
|
279 |
+
msgid "%s activation was successfully completed."
|
280 |
+
msgstr "%s activación se completó con éxito."
|
281 |
+
|
282 |
+
#: includes/class-freemius.php:8700
|
283 |
+
msgid "Your account was successfully activated with the %s plan."
|
284 |
+
msgstr "Tu cuenta se ha activado correctamente con el plan %s."
|
285 |
+
|
286 |
+
#: includes/class-freemius.php8709, includes/class-freemius.php:11236
|
287 |
+
msgid "Your trial has been successfully started."
|
288 |
+
msgstr "Tu versión de prueba se ha iniciado con éxito."
|
289 |
+
|
290 |
+
#: includes/class-freemius.php8998, includes/class-freemius.php9054,
|
291 |
+
#: includes/class-freemius.php:9115
|
292 |
+
msgid "Couldn't activate %s."
|
293 |
+
msgstr "No se puede activar %s."
|
294 |
+
|
295 |
+
#: includes/class-freemius.php8999, includes/class-freemius.php9055,
|
296 |
+
#: includes/class-freemius.php:9116
|
297 |
+
msgid "Please contact us with the following message:"
|
298 |
+
msgstr "Por favor contáctanos con el siguiente mensaje:"
|
299 |
+
|
300 |
+
#: includes/class-freemius.php9374, includes/class-freemius.php:13194
|
301 |
+
msgid "Upgrade"
|
302 |
+
msgstr "Actualizar"
|
303 |
+
|
304 |
+
#: includes/class-freemius.php:9380
|
305 |
+
msgid "Start Trial"
|
306 |
+
msgstr "Comenzar el Período de Prueba"
|
307 |
+
|
308 |
+
#: includes/class-freemius.php:9382
|
309 |
+
msgid "Pricing"
|
310 |
+
msgstr "Precio"
|
311 |
+
|
312 |
+
#: includes/class-freemius.php9422, includes/class-freemius.php:9424
|
313 |
+
msgid "Affiliation"
|
314 |
+
msgstr "Affiliation"
|
315 |
+
|
316 |
+
#: includes/class-freemius.php9444, includes/class-freemius.php9446,
|
317 |
+
#: templates/account.php79, templates/debug.php:281
|
318 |
+
msgid "Account"
|
319 |
+
msgstr "Cuenta"
|
320 |
+
|
321 |
+
#: includes/class-freemius.php9457, includes/class-freemius.php9459,
|
322 |
+
#: includes/customizer/class-fs-customizer-support-section.php:60
|
323 |
+
msgid "Contact Us"
|
324 |
+
msgstr "Contáctanos"
|
325 |
+
|
326 |
+
#: includes/class-freemius.php9469, includes/class-freemius.php9471,
|
327 |
+
#: includes/class-freemius.php13204, templates/account.php:68
|
328 |
+
msgid "Add-Ons"
|
329 |
+
msgstr "Complementos"
|
330 |
+
|
331 |
+
#: includes/class-freemius.php9502, templates/pricing.php:92
|
332 |
+
msgctxt "noun"
|
333 |
+
msgid "Pricing"
|
334 |
+
msgstr "Precio"
|
335 |
+
|
336 |
+
#: includes/class-freemius.php9682,
|
337 |
+
#: includes/customizer/class-fs-customizer-support-section.php:67
|
338 |
+
msgid "Support Forum"
|
339 |
+
msgstr "Foro de Soporte"
|
340 |
+
|
341 |
+
#: includes/class-freemius.php:10422
|
342 |
+
msgid "Your email has been successfully verified - you are AWESOME!"
|
343 |
+
msgstr "Tu email ha sido verificado correctamente - eres IMPRESIONANTE!"
|
344 |
+
|
345 |
+
#: includes/class-freemius.php:10423
|
346 |
+
msgctxt "a positive response"
|
347 |
+
msgid "Right on"
|
348 |
+
msgstr "Bien hecho"
|
349 |
+
|
350 |
+
#: includes/class-freemius.php:10956
|
351 |
+
msgid "Your %s Add-on plan was successfully upgraded."
|
352 |
+
msgstr "Tu complemento %s del plan se actualizó con éxito."
|
353 |
+
|
354 |
+
#: includes/class-freemius.php:10958
|
355 |
+
msgid "%s Add-on was successfully purchased."
|
356 |
+
msgstr "El complemento %s ha sido comprado correctamente."
|
357 |
+
|
358 |
+
#: includes/class-freemius.php:10961
|
359 |
+
msgid "Download the latest version"
|
360 |
+
msgstr "Descargar la última versión"
|
361 |
+
|
362 |
+
#: includes/class-freemius.php:11010
|
363 |
+
msgctxt "%1s - plugin title, %2s - API domain"
|
364 |
+
msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
|
365 |
+
msgstr "Tu servidor está bloqueando el acceso a la API de Freemius, que es crucial para la sincronización de licencia %1s. Por favor, ponte en contacto con tu host para que lo añadan a su lista blanca %2s"
|
366 |
+
|
367 |
+
#: includes/class-freemius.php11013, includes/class-freemius.php11323,
|
368 |
+
#: includes/class-freemius.php:11388
|
369 |
+
msgid "Error received from the server:"
|
370 |
+
msgstr "Error recibido del servidor:"
|
371 |
+
|
372 |
+
#: includes/class-freemius.php:11024
|
373 |
+
msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
|
374 |
+
msgstr "Parece que uno de los parámetros de autenticación es incorrecto. Actualiza tu Clave Pública, Clave Secreta & ID de Usuario e inténtelo de nuevo."
|
375 |
+
|
376 |
+
#: includes/class-freemius.php11141, includes/class-freemius.php11328,
|
377 |
+
#: includes/class-freemius.php:11371
|
378 |
+
msgctxt ""
|
379 |
+
msgid "Hmm"
|
380 |
+
msgstr "Hmm"
|
381 |
+
|
382 |
+
#: includes/class-freemius.php:11154
|
383 |
+
msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
|
384 |
+
msgstr "Parece que todavía estás en el plan %s. Si actualizaste o cambiaste tu plan, probablemente sea un problema de nuestra parte - lo sentimos."
|
385 |
+
|
386 |
+
#: includes/class-freemius.php11155, templates/account.php70,
|
387 |
+
#: templates/add-ons.php:130
|
388 |
+
msgctxt "trial period"
|
389 |
+
msgid "Trial"
|
390 |
+
msgstr "Período de Prueba Gratuito"
|
391 |
+
|
392 |
+
#: includes/class-freemius.php:11160
|
393 |
+
msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
|
394 |
+
msgstr "He actualizado mi cuenta, pero cuando intento sincronizar la licencia, el plan sigue siendo %s."
|
395 |
+
|
396 |
+
#: includes/class-freemius.php11164, includes/class-freemius.php:11218
|
397 |
+
msgid "Please contact us here"
|
398 |
+
msgstr "Contacta aquí con nosotros"
|
399 |
+
|
400 |
+
#: includes/class-freemius.php:11174
|
401 |
+
msgid "Your plan was successfully upgraded."
|
402 |
+
msgstr "Tu plan se actualizó con éxito."
|
403 |
+
|
404 |
+
#: includes/class-freemius.php:11191
|
405 |
+
msgid "Your plan was successfully changed to %s."
|
406 |
+
msgstr "Tu plan se cambió correctamente a %s."
|
407 |
+
|
408 |
+
#: includes/class-freemius.php:11206
|
409 |
+
msgid "Your license has expired. You can still continue using the free %s forever."
|
410 |
+
msgstr "Tu licencia ha caducado. Puedes seguir usando el plan gratuito %s para siempre."
|
411 |
+
|
412 |
+
#: includes/class-freemius.php:11214
|
413 |
+
msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
|
414 |
+
msgstr "Tu licencia ha sido cancelada. Si crees que es un error, ponte en contacto con el servicio de asistencia."
|
415 |
+
|
416 |
+
#: includes/class-freemius.php:11227
|
417 |
+
msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
|
418 |
+
msgstr "Tu licencia ha caducado. Todavía puedes seguir usando todas las funciones de %s, pero tendrás que renovar tu licencia para seguir recibiendo actualizaciones y soporte."
|
419 |
+
|
420 |
+
#: includes/class-freemius.php:11249
|
421 |
+
msgid "Your trial has expired. You can still continue using all our free features."
|
422 |
+
msgstr "Tu período de prueba ha caducado. Todavía puedes seguir usando todas nuestras funciones gratuitas."
|
423 |
+
|
424 |
+
#: includes/class-freemius.php:11319
|
425 |
+
msgid "It looks like the license could not be activated."
|
426 |
+
msgstr "Parece que la licencia no se pudo activar."
|
427 |
+
|
428 |
+
#: includes/class-freemius.php:11349
|
429 |
+
msgid "Your license was successfully activated."
|
430 |
+
msgstr "Tu licencia fue activada correctamente."
|
431 |
+
|
432 |
+
#: includes/class-freemius.php:11375
|
433 |
+
msgid "It looks like your site currently doesn't have an active license."
|
434 |
+
msgstr "Parece que tu sitio actualmente no tiene una licencia activa."
|
435 |
+
|
436 |
+
#: includes/class-freemius.php:11387
|
437 |
+
msgid "It looks like the license deactivation failed."
|
438 |
+
msgstr "Parece que la desactivación de licencia ha fallado."
|
439 |
+
|
440 |
+
#: includes/class-freemius.php:11414
|
441 |
+
msgid "Your license was successfully deactivated, you are back to the %s plan."
|
442 |
+
msgstr "Tu licencia fue desactivada correctamente, has vuelto al plan %s."
|
443 |
+
|
444 |
+
#: includes/class-freemius.php:11415
|
445 |
+
msgid "O.K"
|
446 |
+
msgstr "O.K"
|
447 |
+
|
448 |
+
#: includes/class-freemius.php:11463
|
449 |
+
msgid "Your plan was successfully downgraded. Your %s plan license will expire in %s."
|
450 |
+
msgstr "Tu plan fue degradado con éxito. Tu licencia %s plan caducará en %s."
|
451 |
+
|
452 |
+
#: includes/class-freemius.php:11473
|
453 |
+
msgid "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
|
454 |
+
msgstr "Parece que estamos teniendo algún problema temporal con tu degradación de plan. Vuelve a intentarlo en unos minutos."
|
455 |
+
|
456 |
+
#: includes/class-freemius.php:11497
|
457 |
+
msgid "You are already running the %s in a trial mode."
|
458 |
+
msgstr "Estás ejecutando %s en modo de prueba."
|
459 |
+
|
460 |
+
#: includes/class-freemius.php:11508
|
461 |
+
msgid "You already utilized a trial before."
|
462 |
+
msgstr "Ya utilizaste un período de prueba antes."
|
463 |
+
|
464 |
+
#: includes/class-freemius.php:11522
|
465 |
+
msgid "Plan %s do not exist, therefore, can't start a trial."
|
466 |
+
msgstr "El plan %s no existe, por lo tanto, no puedes comenzar un período de prueba."
|
467 |
+
|
468 |
+
#: includes/class-freemius.php:11533
|
469 |
+
msgid "Plan %s does not support a trial period."
|
470 |
+
msgstr "El plan %s no admite un período de prueba."
|
471 |
+
|
472 |
+
#: includes/class-freemius.php:11544
|
473 |
+
msgid "None of the %s's plans supports a trial period."
|
474 |
+
msgstr "Ninguno de los planes de %s soportan un período de prueba."
|
475 |
+
|
476 |
+
#: includes/class-freemius.php:11594
|
477 |
+
msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
|
478 |
+
msgstr "Parece que ya no estás en modo de prueba, así que no hay nada que cancelar :)"
|
479 |
+
|
480 |
+
#: includes/class-freemius.php:11645
|
481 |
+
msgid "Your %s free trial was successfully cancelled."
|
482 |
+
msgstr "Tu prueba gratuita de %s fue cancelada con éxito."
|
483 |
+
|
484 |
+
#: includes/class-freemius.php:11653
|
485 |
+
msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
|
486 |
+
msgstr "Parece que estamos teniendo algún problema temporal con tu cancelación de prueba. Vuelve a intentarlo en unos minutos."
|
487 |
+
|
488 |
+
#: includes/class-freemius.php:11892
|
489 |
+
msgid "Version %s was released."
|
490 |
+
msgstr "La versión %s se ha lanzado."
|
491 |
+
|
492 |
+
#: includes/class-freemius.php:11892
|
493 |
+
msgid "Please download %s."
|
494 |
+
msgstr "Por favor descarga %s."
|
495 |
+
|
496 |
+
#: includes/class-freemius.php:11899
|
497 |
+
msgid "the latest %s version here"
|
498 |
+
msgstr "la última versión %s aquí"
|
499 |
+
|
500 |
+
#: includes/class-freemius.php:11904
|
501 |
+
msgid "New"
|
502 |
+
msgstr "Nuevo"
|
503 |
+
|
504 |
+
#: includes/class-freemius.php:11909
|
505 |
+
msgid "Seems like you got the latest release."
|
506 |
+
msgstr "Parece que tienes la última versión."
|
507 |
+
|
508 |
+
#: includes/class-freemius.php:11910
|
509 |
+
msgid "You are all good!"
|
510 |
+
msgstr "¡Está todo listo!"
|
511 |
+
|
512 |
+
#: includes/class-freemius.php:12176
|
513 |
+
msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
|
514 |
+
msgstr "El correo de verificación se acaba de enviar a %s. Si no puedes encontrarlo después de 5 min, comprueba tu carpeta de spam."
|
515 |
+
|
516 |
+
#: includes/class-freemius.php:12351
|
517 |
+
msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
|
518 |
+
msgstr "Comprueba tu buzón de correo, debes recibir un correo electrónico a través de %s para confirmar el cambio de propiedad. Por razones de seguridad, debes confirmar el cambio dentro de los próximos 15 min. Si no puedes encontrar el correo electrónico, comprueba tu carpeta de correo no deseado."
|
519 |
+
|
520 |
+
#: includes/class-freemius.php:12357
|
521 |
+
msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
|
522 |
+
msgstr "Gracias por confirmar el cambio de propiedad. Se envió un correo electrónico a %s para su aprobación final."
|
523 |
+
|
524 |
+
#: includes/class-freemius.php:12362
|
525 |
+
msgid "%s is the new owner of the account."
|
526 |
+
msgstr "%s es el nuevo dueño de la cuenta."
|
527 |
+
|
528 |
+
#: includes/class-freemius.php:12364
|
529 |
+
msgctxt "as congratulations"
|
530 |
+
msgid "Congrats"
|
531 |
+
msgstr "Felicidades"
|
532 |
+
|
533 |
+
#: includes/class-freemius.php:12384
|
534 |
+
msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
|
535 |
+
msgstr "Lo sentimos, no podemos completar la actualización de correo electrónico. Ya hay registrado otro usuario con esa dirección de correo electrónico."
|
536 |
+
|
537 |
+
#: includes/class-freemius.php:12385
|
538 |
+
msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
|
539 |
+
msgstr "Si deseas renunciar a la titularidad de la cuenta de %s a %s haz clic en el botón de Cambio de Titularidad."
|
540 |
+
|
541 |
+
#: includes/class-freemius.php:12392
|
542 |
+
msgid "Change Ownership"
|
543 |
+
msgstr "Cambiar Propietario"
|
544 |
+
|
545 |
+
#: includes/class-freemius.php:12400
|
546 |
+
msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
|
547 |
+
msgstr "Se actualizó correctamente tu correo electrónico. Recibirás un correo electrónico con las instrucciones de confirmación en unos momentos."
|
548 |
+
|
549 |
+
#: includes/class-freemius.php:12412
|
550 |
+
msgid "Please provide your full name."
|
551 |
+
msgstr "Por favor, dinos tu nombre completo."
|
552 |
+
|
553 |
+
#: includes/class-freemius.php:12417
|
554 |
+
msgid "Your name was successfully updated."
|
555 |
+
msgstr "Tu nombre fue actualizado correctamente."
|
556 |
+
|
557 |
+
#: includes/class-freemius.php:12478
|
558 |
+
msgid "You have successfully updated your %s."
|
559 |
+
msgstr "Has actualizado correctamente tu %s."
|
560 |
+
|
561 |
+
#: includes/class-freemius.php:12616
|
562 |
+
msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
|
563 |
+
msgstr "Sólo déjanos informarte que la información de complementos de %s se está extrayendo de un servidor externo."
|
564 |
+
|
565 |
+
#: includes/class-freemius.php:12617
|
566 |
+
msgctxt "advance notice of something that will need attention."
|
567 |
+
msgid "Heads up"
|
568 |
+
msgstr "Atención"
|
569 |
+
|
570 |
+
#: includes/class-freemius.php:12935
|
571 |
+
msgid "Awesome"
|
572 |
+
msgstr "Increíble"
|
573 |
+
|
574 |
+
#: includes/class-freemius.php:12975
|
575 |
+
msgctxt "exclamation"
|
576 |
+
msgid "Hey"
|
577 |
+
msgstr "Hey"
|
578 |
+
|
579 |
+
#: includes/class-freemius.php:12975
|
580 |
+
msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
|
581 |
+
msgstr "¿Qué te pareció %s hasta ahora? Prueba todas nuestras funciones premium de %s con una prueba gratuita de % d-días."
|
582 |
+
|
583 |
+
#: includes/class-freemius.php:12983
|
584 |
+
msgid "No commitment for %s days - cancel anytime!"
|
585 |
+
msgstr "Sin compromiso por %s días - ¡cancelar en cualquier momento!"
|
586 |
+
|
587 |
+
#: includes/class-freemius.php:12984
|
588 |
+
msgid "No credit card required"
|
589 |
+
msgstr "No se necesita tarjeta de crédito"
|
590 |
+
|
591 |
+
#: includes/class-freemius.php12991, templates/forms/trial-start.php:53
|
592 |
+
msgctxt "call to action"
|
593 |
+
msgid "Start free trial"
|
594 |
+
msgstr "Comenzar el período de prueba gratuito"
|
595 |
+
|
596 |
+
#: includes/class-freemius.php:13068
|
597 |
+
msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
|
598 |
+
msgstr "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
|
599 |
+
|
600 |
+
#: includes/class-freemius.php:13077
|
601 |
+
msgid "Learn more"
|
602 |
+
msgstr "Learn more"
|
603 |
+
|
604 |
+
#: includes/class-freemius.php13233, templates/account.php330,
|
605 |
+
#: templates/connect.php309, templates/forms/license-activation.php:24
|
606 |
+
msgid "Activate License"
|
607 |
+
msgstr "Activar Licencia"
|
608 |
+
|
609 |
+
#: includes/class-freemius.php13234, templates/account.php:393
|
610 |
+
msgid "Change License"
|
611 |
+
msgstr "Cambiar Licencia"
|
612 |
+
|
613 |
+
#: includes/class-freemius.php:13295
|
614 |
+
msgid "Opt Out"
|
615 |
+
msgstr "Darse de baja"
|
616 |
+
|
617 |
+
#: includes/class-freemius.php13297, includes/class-freemius.php:13302
|
618 |
+
msgid "Opt In"
|
619 |
+
msgstr "Inscribirse"
|
620 |
+
|
621 |
+
#: includes/class-freemius.php:13490
|
622 |
+
msgid "Please follow these steps to complete the upgrade"
|
623 |
+
msgstr "Por favor, sigue estos pasos para completar la actualización"
|
624 |
+
|
625 |
+
#: includes/class-freemius.php:13493
|
626 |
+
msgid "Download the latest %s version"
|
627 |
+
msgstr "Descargar la última versión %s"
|
628 |
+
|
629 |
+
#: includes/class-freemius.php:13497
|
630 |
+
msgid "Upload and activate the downloaded version"
|
631 |
+
msgstr "Cargar y activar la versión descargada"
|
632 |
+
|
633 |
+
#: includes/class-freemius.php:13499
|
634 |
+
msgid "How to upload and activate?"
|
635 |
+
msgstr "¿Cómo subirlo y activarlo?"
|
636 |
+
|
637 |
+
#: includes/class-freemius.php:13658
|
638 |
+
msgid "Auto installation only works for opted-in users."
|
639 |
+
msgstr "La instalación automática sólo funciona para usuarios que aceptaron."
|
640 |
+
|
641 |
+
#: includes/class-freemius.php13668, includes/class-freemius.php13701,
|
642 |
+
#: includes/class-fs-plugin-updater.php490,
|
643 |
+
#: includes/class-fs-plugin-updater.php:504
|
644 |
+
msgid "Invalid module ID."
|
645 |
+
msgstr "Id de Módulo no válido."
|
646 |
+
|
647 |
+
#: includes/class-freemius.php13677, includes/class-fs-plugin-updater.php:524
|
648 |
+
msgid "Premium version already active."
|
649 |
+
msgstr "Versión Premium ya activa."
|
650 |
+
|
651 |
+
#: includes/class-freemius.php:13684
|
652 |
+
msgid "You do not have a valid license to access the premium version."
|
653 |
+
msgstr "No tienes una licencia válida para acceder a la versión premium."
|
654 |
+
|
655 |
+
#: includes/class-freemius.php:13691
|
656 |
+
msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
|
657 |
+
msgstr "El plugin es un \"Serviceware\" lo que significa que no tiene una versión de código premium."
|
658 |
+
|
659 |
+
#: includes/class-freemius.php13709, includes/class-fs-plugin-updater.php:523
|
660 |
+
msgid "Premium add-on version already installed."
|
661 |
+
msgstr "Versión del complemento Premium ya instalada."
|
662 |
+
|
663 |
+
#: includes/class-freemius.php:14054
|
664 |
+
msgid "View paid features"
|
665 |
+
msgstr "Ver las funciones de pago"
|
666 |
+
|
667 |
+
#: includes/class-fs-plugin-updater.php:131
|
668 |
+
msgid "%sRenew your license now%s to access version %s features and support."
|
669 |
+
msgstr "%s Renueva tu licencia ahora %s para acceder a la versión %s características y soporte."
|
670 |
+
|
671 |
+
#: includes/class-fs-plugin-updater.php:553
|
672 |
+
msgid "Installing plugin: %s"
|
673 |
+
msgstr "Instalando plugin: %s"
|
674 |
+
|
675 |
+
#: includes/class-fs-plugin-updater.php:594
|
676 |
+
msgid "Unable to connect to the filesystem. Please confirm your credentials."
|
677 |
+
msgstr "Unable to connect to the filesystem. Please confirm your credentials."
|
678 |
+
|
679 |
+
#: includes/class-fs-plugin-updater.php:700
|
680 |
+
msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
|
681 |
+
msgstr "El paquete de plugin remoto no contiene una carpeta con el Slug deseado y el cambio de nombre no funcionó."
|
682 |
+
|
683 |
+
#: includes/fs-plugin-info-dialog.php328, templates/account.php:696
|
684 |
+
msgctxt "verb"
|
685 |
+
msgid "Purchase"
|
686 |
+
msgstr "Comprar"
|
687 |
+
|
688 |
+
#: includes/fs-plugin-info-dialog.php:331
|
689 |
+
msgid "Start my free %s"
|
690 |
+
msgstr "Comenzar mi período gratuito de %s"
|
691 |
+
|
692 |
+
#: includes/fs-plugin-info-dialog.php355, templates/account.php:52
|
693 |
+
msgctxt "as download latest version"
|
694 |
+
msgid "Download Latest"
|
695 |
+
msgstr "Descargar la última"
|
696 |
+
|
697 |
+
#: includes/fs-plugin-info-dialog.php358, templates/account.php676,
|
698 |
+
#: templates/account.php729, templates/auto-installation.php:110
|
699 |
+
msgid "Install Now"
|
700 |
+
msgstr "Instalar Ahora"
|
701 |
+
|
702 |
+
#: includes/fs-plugin-info-dialog.php364, templates/account.php:384
|
703 |
+
msgid "Install Update Now"
|
704 |
+
msgstr "Instalar Actualización Ahora"
|
705 |
+
|
706 |
+
#: includes/fs-plugin-info-dialog.php:368
|
707 |
+
msgid "Newer Version (%s) Installed"
|
708 |
+
msgstr "Versión más Reciente (%s) Instalada"
|
709 |
+
|
710 |
+
#: includes/fs-plugin-info-dialog.php:371
|
711 |
+
msgid "Latest Version Installed"
|
712 |
+
msgstr "Última Versión Instalada"
|
713 |
+
|
714 |
+
#: includes/fs-plugin-info-dialog.php:484
|
715 |
+
msgctxt "Plugin installer section title"
|
716 |
+
msgid "Description"
|
717 |
+
msgstr "Descripción"
|
718 |
+
|
719 |
+
#: includes/fs-plugin-info-dialog.php:485
|
720 |
+
msgctxt "Plugin installer section title"
|
721 |
+
msgid "Installation"
|
722 |
+
msgstr "Instalación"
|
723 |
+
|
724 |
+
#: includes/fs-plugin-info-dialog.php:486
|
725 |
+
msgctxt "Plugin installer section title"
|
726 |
+
msgid "FAQ"
|
727 |
+
msgstr "FAQ"
|
728 |
+
|
729 |
+
#: includes/fs-plugin-info-dialog.php487,
|
730 |
+
#: templates/plugin-info/description.php:55
|
731 |
+
msgid "Screenshots"
|
732 |
+
msgstr "Capturas de pantalla"
|
733 |
+
|
734 |
+
#: includes/fs-plugin-info-dialog.php:488
|
735 |
+
msgctxt "Plugin installer section title"
|
736 |
+
msgid "Changelog"
|
737 |
+
msgstr "Registro de cambios"
|
738 |
+
|
739 |
+
#: includes/fs-plugin-info-dialog.php:489
|
740 |
+
msgctxt "Plugin installer section title"
|
741 |
+
msgid "Reviews"
|
742 |
+
msgstr "Valoraciones"
|
743 |
+
|
744 |
+
#: includes/fs-plugin-info-dialog.php:490
|
745 |
+
msgctxt "Plugin installer section title"
|
746 |
+
msgid "Other Notes"
|
747 |
+
msgstr "Otras Notas"
|
748 |
+
|
749 |
+
#: includes/fs-plugin-info-dialog.php:505
|
750 |
+
msgctxt "Plugin installer section title"
|
751 |
+
msgid "Features & Pricing"
|
752 |
+
msgstr "Características y Precios"
|
753 |
+
|
754 |
+
#: includes/fs-plugin-info-dialog.php:515
|
755 |
+
msgid "Plugin Install"
|
756 |
+
msgstr "Instalar Plugin"
|
757 |
+
|
758 |
+
#: includes/fs-plugin-info-dialog.php:587
|
759 |
+
msgctxt "e.g. Professional Plan"
|
760 |
+
msgid "%s Plan"
|
761 |
+
msgstr "Plan %s"
|
762 |
+
|
763 |
+
#: includes/fs-plugin-info-dialog.php:612
|
764 |
+
msgctxt "e.g. the best product"
|
765 |
+
msgid "Best"
|
766 |
+
msgstr "El mejor"
|
767 |
+
|
768 |
+
#: includes/fs-plugin-info-dialog.php618,
|
769 |
+
#: includes/fs-plugin-info-dialog.php:638
|
770 |
+
msgctxt "as every month"
|
771 |
+
msgid "Monthly"
|
772 |
+
msgstr "Mensual"
|
773 |
+
|
774 |
+
#: includes/fs-plugin-info-dialog.php:621
|
775 |
+
msgctxt "as once a year"
|
776 |
+
msgid "Annual"
|
777 |
+
msgstr "Anual"
|
778 |
+
|
779 |
+
#: includes/fs-plugin-info-dialog.php:624
|
780 |
+
msgid "Lifetime"
|
781 |
+
msgstr "Permanente"
|
782 |
+
|
783 |
+
#: includes/fs-plugin-info-dialog.php638,
|
784 |
+
#: includes/fs-plugin-info-dialog.php640,
|
785 |
+
#: includes/fs-plugin-info-dialog.php:642
|
786 |
+
msgctxt "e.g. billed monthly"
|
787 |
+
msgid "Billed %s"
|
788 |
+
msgstr "Facturado %s"
|
789 |
+
|
790 |
+
#: includes/fs-plugin-info-dialog.php:640
|
791 |
+
msgctxt "as once a year"
|
792 |
+
msgid "Annually"
|
793 |
+
msgstr "Anualmente"
|
794 |
+
|
795 |
+
#: includes/fs-plugin-info-dialog.php:642
|
796 |
+
msgctxt "as once a year"
|
797 |
+
msgid "Once"
|
798 |
+
msgstr "Una vez"
|
799 |
+
|
800 |
+
#: includes/fs-plugin-info-dialog.php:648
|
801 |
+
msgid "Single Site License"
|
802 |
+
msgstr "Licencia para un Único Sitio"
|
803 |
+
|
804 |
+
#: includes/fs-plugin-info-dialog.php:650
|
805 |
+
msgid "Unlimited Licenses"
|
806 |
+
msgstr "Licencias Ilimitadas"
|
807 |
+
|
808 |
+
#: includes/fs-plugin-info-dialog.php:652
|
809 |
+
msgid "Up to %s Sites"
|
810 |
+
msgstr "Hasta %s Sitios"
|
811 |
+
|
812 |
+
#: includes/fs-plugin-info-dialog.php662,
|
813 |
+
#: templates/plugin-info/features.php:82
|
814 |
+
msgctxt "as monthly period"
|
815 |
+
msgid "mo"
|
816 |
+
msgstr "men"
|
817 |
+
|
818 |
+
#: includes/fs-plugin-info-dialog.php669,
|
819 |
+
#: templates/plugin-info/features.php:80
|
820 |
+
msgctxt "as annual period"
|
821 |
+
msgid "year"
|
822 |
+
msgstr "año"
|
823 |
+
|
824 |
+
#: includes/fs-plugin-info-dialog.php:721
|
825 |
+
msgctxt "noun"
|
826 |
+
msgid "Price"
|
827 |
+
msgstr "Precio"
|
828 |
+
|
829 |
+
#: includes/fs-plugin-info-dialog.php:767
|
830 |
+
msgctxt "as a discount of $5 or 10%"
|
831 |
+
msgid "Save %s"
|
832 |
+
msgstr "Guardar %s"
|
833 |
+
|
834 |
+
#: includes/fs-plugin-info-dialog.php:777
|
835 |
+
msgid "No commitment for %s - cancel anytime"
|
836 |
+
msgstr "Sin compromiso para %s - cancelar en cualquier momento"
|
837 |
+
|
838 |
+
#: includes/fs-plugin-info-dialog.php:780
|
839 |
+
msgid "After your free %s, pay as little as %s"
|
840 |
+
msgstr "Después de su período gratuito %s, pague sólo %s"
|
841 |
+
|
842 |
+
#: includes/fs-plugin-info-dialog.php:791
|
843 |
+
msgid "Details"
|
844 |
+
msgstr "Detalles"
|
845 |
+
|
846 |
+
#: includes/fs-plugin-info-dialog.php794, templates/account.php59,
|
847 |
+
#: templates/debug.php183, templates/debug.php220, templates/debug.php:354
|
848 |
+
msgctxt "product version"
|
849 |
+
msgid "Version"
|
850 |
+
msgstr "Versión"
|
851 |
+
|
852 |
+
#: includes/fs-plugin-info-dialog.php:800
|
853 |
+
msgctxt "as the plugin author"
|
854 |
+
msgid "Author"
|
855 |
+
msgstr "Author"
|
856 |
+
|
857 |
+
#: includes/fs-plugin-info-dialog.php:806
|
858 |
+
msgid "Last Updated"
|
859 |
+
msgstr "Última Actualización"
|
860 |
+
|
861 |
+
#: includes/fs-plugin-info-dialog.php:810
|
862 |
+
msgctxt "x-ago"
|
863 |
+
msgid "%s ago"
|
864 |
+
msgstr "hace %s"
|
865 |
+
|
866 |
+
#: includes/fs-plugin-info-dialog.php:819
|
867 |
+
msgid "Requires WordPress Version"
|
868 |
+
msgstr "Requires WordPress Version"
|
869 |
+
|
870 |
+
#: includes/fs-plugin-info-dialog.php:819
|
871 |
+
msgid "%s or higher"
|
872 |
+
msgstr "%s o mayor"
|
873 |
+
|
874 |
+
#: includes/fs-plugin-info-dialog.php:825
|
875 |
+
msgid "Compatible up to"
|
876 |
+
msgstr "Compatible up to"
|
877 |
+
|
878 |
+
#: includes/fs-plugin-info-dialog.php:832
|
879 |
+
msgid "Downloaded"
|
880 |
+
msgstr "Downloaded"
|
881 |
+
|
882 |
+
#: includes/fs-plugin-info-dialog.php:835
|
883 |
+
msgid "%s time"
|
884 |
+
msgstr "% vez"
|
885 |
+
|
886 |
+
#: includes/fs-plugin-info-dialog.php:837
|
887 |
+
msgid "%s times"
|
888 |
+
msgstr "%s veces"
|
889 |
+
|
890 |
+
#: includes/fs-plugin-info-dialog.php:847
|
891 |
+
msgid "WordPress.org Plugin Page"
|
892 |
+
msgstr "Página del Plugin en WordPress.org"
|
893 |
+
|
894 |
+
#: includes/fs-plugin-info-dialog.php:854
|
895 |
+
msgid "Plugin Homepage"
|
896 |
+
msgstr "Página web del Plugin"
|
897 |
+
|
898 |
+
#: includes/fs-plugin-info-dialog.php861,
|
899 |
+
#: includes/fs-plugin-info-dialog.php:941
|
900 |
+
msgid "Donate to this plugin"
|
901 |
+
msgstr "Donar a este plugin"
|
902 |
+
|
903 |
+
#: includes/fs-plugin-info-dialog.php:867
|
904 |
+
msgid "Average Rating"
|
905 |
+
msgstr "Calificación Media"
|
906 |
+
|
907 |
+
#: includes/fs-plugin-info-dialog.php:874
|
908 |
+
msgid "based on %s"
|
909 |
+
msgstr "basado en %s"
|
910 |
+
|
911 |
+
#: includes/fs-plugin-info-dialog.php:878
|
912 |
+
msgid "%s rating"
|
913 |
+
msgstr "%s calificación"
|
914 |
+
|
915 |
+
#: includes/fs-plugin-info-dialog.php:880
|
916 |
+
msgid "%s ratings"
|
917 |
+
msgstr "%s calificaciones"
|
918 |
+
|
919 |
+
#: includes/fs-plugin-info-dialog.php:894
|
920 |
+
msgid "%s star"
|
921 |
+
msgstr "%s estrella"
|
922 |
+
|
923 |
+
#: includes/fs-plugin-info-dialog.php:896
|
924 |
+
msgid "%s stars"
|
925 |
+
msgstr "%s estrellas"
|
926 |
+
|
927 |
+
#: includes/fs-plugin-info-dialog.php:907
|
928 |
+
msgid "Click to see reviews that provided a rating of %s"
|
929 |
+
msgstr "Haz clic para ver los comentarios con una valoración de %s"
|
930 |
+
|
931 |
+
#: includes/fs-plugin-info-dialog.php:920
|
932 |
+
msgid "Contributors"
|
933 |
+
msgstr "Colaboradores"
|
934 |
+
|
935 |
+
#: includes/fs-plugin-info-dialog.php948,
|
936 |
+
#: includes/fs-plugin-info-dialog.php:950
|
937 |
+
msgid "Warning"
|
938 |
+
msgstr "Warning"
|
939 |
+
|
940 |
+
#: includes/fs-plugin-info-dialog.php:948
|
941 |
+
msgid "This plugin has not been tested with your current version of WordPress."
|
942 |
+
msgstr "Este plugin no ha sido probado con tu versión actual de WordPress."
|
943 |
+
|
944 |
+
#: includes/fs-plugin-info-dialog.php:950
|
945 |
+
msgid "This plugin has not been marked as compatible with your version of WordPress."
|
946 |
+
msgstr "Este puglin no ha sido marcado como compatible con tu versión de WordPress."
|
947 |
+
|
948 |
+
#: includes/fs-plugin-info-dialog.php:969
|
949 |
+
msgid "Paid add-on must be deployed to Freemius."
|
950 |
+
msgstr "El complemento de pago se debe implementar en Freemius."
|
951 |
+
|
952 |
+
#: includes/fs-plugin-info-dialog.php:970
|
953 |
+
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
954 |
+
msgstr "El complemento debe implementarse en WordPress.org o en Freemius."
|
955 |
+
|
956 |
+
#: templates/account.php:53
|
957 |
+
msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
|
958 |
+
msgstr "Degradando tu plan detendrás inmediatamente todos los pagos recurrentes futuros y tu licencia del plan %s expirará en %s."
|
959 |
+
|
960 |
+
#: templates/account.php:54
|
961 |
+
msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
|
962 |
+
msgstr "La cancelación del período de prueba bloqueará inmediatamente el acceso a todas las funciones premium. ¿Estás seguro?"
|
963 |
+
|
964 |
+
#: templates/account.php:55
|
965 |
+
msgid "You can still enjoy all %s features but you will not have access to %s updates and support."
|
966 |
+
msgstr "Todavía puedes disfrutar de todas las funciones de %s pero no tienes acceso a soporte y actualizaciones de %s."
|
967 |
+
|
968 |
+
#: templates/account.php:56
|
969 |
+
msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
|
970 |
+
msgstr "Una vez que caduque tu licencia todavía puedes utilizar la versión gratuita pero NO tendrás acceso a las funciones de %s."
|
971 |
+
|
972 |
+
#. translators: %s: Plan title (e.g. "Professional")
|
973 |
+
#: templates/account.php:58
|
974 |
+
msgid "Activate %s Plan"
|
975 |
+
msgstr "Activar Plan %s"
|
976 |
+
|
977 |
+
#. translators: %s: Time period (e.g. Auto renews in "2 months")
|
978 |
+
#: templates/account.php:61
|
979 |
+
msgid "Auto renews in %s"
|
980 |
+
msgstr "Auto renovaciones en %s"
|
981 |
+
|
982 |
+
#. translators: %s: Time period (e.g. Expires in "2 months")
|
983 |
+
#: templates/account.php:63
|
984 |
+
msgid "Expires in %s"
|
985 |
+
msgstr "Caduca en %s"
|
986 |
+
|
987 |
+
#: templates/account.php:64
|
988 |
+
msgctxt "as synchronize license"
|
989 |
+
msgid "Sync License"
|
990 |
+
msgstr "Sincronizar Licencia"
|
991 |
+
|
992 |
+
#: templates/account.php:65
|
993 |
+
msgid "Cancel Trial"
|
994 |
+
msgstr "Cancelar Período de Prueba"
|
995 |
+
|
996 |
+
#: templates/account.php:66
|
997 |
+
msgid "Change Plan"
|
998 |
+
msgstr "Cambiar Plan"
|
999 |
+
|
1000 |
+
#: templates/account.php:67
|
1001 |
+
msgctxt "verb"
|
1002 |
+
msgid "Upgrade"
|
1003 |
+
msgstr "Actualizar"
|
1004 |
+
|
1005 |
+
#: templates/account.php:69
|
1006 |
+
msgctxt "verb"
|
1007 |
+
msgid "Downgrade"
|
1008 |
+
msgstr "Degradar"
|
1009 |
+
|
1010 |
+
#: templates/account.php71, templates/add-ons.php126,
|
1011 |
+
#: templates/plugin-info/features.php:72
|
1012 |
+
msgid "Free"
|
1013 |
+
msgstr "Gratis"
|
1014 |
+
|
1015 |
+
#: templates/account.php:72
|
1016 |
+
msgid "Activate"
|
1017 |
+
msgstr "Activar"
|
1018 |
+
|
1019 |
+
#: templates/account.php73, templates/debug.php311,
|
1020 |
+
#: includes/customizer/class-fs-customizer-upsell-control.php:106
|
1021 |
+
msgctxt "as product pricing plan"
|
1022 |
+
msgid "Plan"
|
1023 |
+
msgstr "Plan"
|
1024 |
+
|
1025 |
+
#: templates/account.php:87
|
1026 |
+
msgid "Free Trial"
|
1027 |
+
msgstr "Período de Prueba Gratuito"
|
1028 |
+
|
1029 |
+
#: templates/account.php:98
|
1030 |
+
msgid "Account Details"
|
1031 |
+
msgstr "Detalles de la Cuenta"
|
1032 |
+
|
1033 |
+
#: templates/account.php:108
|
1034 |
+
msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
1035 |
+
msgstr "La eliminación de la cuenta desactivará automáticamente su licencia de plan %s para que pueda utilizarla en otros sitios. Si también desea cancelar los pagos periódicos, haga clic en el botón \"Cancelar\" y, en primer lugar, \"Degradar\" su cuenta. ¿Seguro que deseas continuar con la eliminación?"
|
1036 |
+
|
1037 |
+
#: templates/account.php:110
|
1038 |
+
msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
|
1039 |
+
msgstr "La eliminación no es temporal. Sólo elimínalo si ya no deseas utilizar este %s más. ¿Estás seguro que desea continuar con la eliminación?"
|
1040 |
+
|
1041 |
+
#: templates/account.php:113
|
1042 |
+
msgid "Delete Account"
|
1043 |
+
msgstr "Borrar Cuenta"
|
1044 |
+
|
1045 |
+
#: templates/account.php:124
|
1046 |
+
msgid "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
|
1047 |
+
msgstr "Al desactivar tu licencia todas las características premium se bloquearán, pero posibilitará poder activar tu licencia en otro sitio. ¿Estás seguro que quieres continuar?"
|
1048 |
+
|
1049 |
+
#: templates/account.php125, templates/account.php:590
|
1050 |
+
msgid "Deactivate License"
|
1051 |
+
msgstr "Desactivar Licencia"
|
1052 |
+
|
1053 |
+
#: templates/account.php:142
|
1054 |
+
msgid "Are you sure you want to proceed?"
|
1055 |
+
msgstr "¿Estás seguro que quieres proceder?"
|
1056 |
+
|
1057 |
+
#: templates/account.php:142
|
1058 |
+
msgid "Cancel Subscription"
|
1059 |
+
msgstr "Cancelar Suscripción"
|
1060 |
+
|
1061 |
+
#: templates/account.php:171
|
1062 |
+
msgctxt "as synchronize"
|
1063 |
+
msgid "Sync"
|
1064 |
+
msgstr "Sincronizar"
|
1065 |
+
|
1066 |
+
#: templates/account.php185, templates/debug.php:389
|
1067 |
+
msgid "Name"
|
1068 |
+
msgstr "Nombre"
|
1069 |
+
|
1070 |
+
#: templates/account.php191, templates/debug.php:390
|
1071 |
+
msgid "Email"
|
1072 |
+
msgstr "Correo Electrónico"
|
1073 |
+
|
1074 |
+
#: templates/account.php198, templates/debug.php310, templates/debug.php:419
|
1075 |
+
msgid "User ID"
|
1076 |
+
msgstr "ID de Usuario"
|
1077 |
+
|
1078 |
+
#: templates/account.php:205
|
1079 |
+
msgid "Site ID"
|
1080 |
+
msgstr "ID del Sitio"
|
1081 |
+
|
1082 |
+
#: templates/account.php:208
|
1083 |
+
msgid "No ID"
|
1084 |
+
msgstr "Sin ID"
|
1085 |
+
|
1086 |
+
#: templates/account.php213, templates/debug.php225, templates/debug.php312,
|
1087 |
+
#: templates/debug.php355, templates/debug.php:392
|
1088 |
+
msgid "Public Key"
|
1089 |
+
msgstr "Clave Pública"
|
1090 |
+
|
1091 |
+
#: templates/account.php219, templates/debug.php313, templates/debug.php356,
|
1092 |
+
#: templates/debug.php:393
|
1093 |
+
msgid "Secret Key"
|
1094 |
+
msgstr "Clave Secreta"
|
1095 |
+
|
1096 |
+
#: templates/account.php:222
|
1097 |
+
msgctxt "as secret encryption key missing"
|
1098 |
+
msgid "No Secret"
|
1099 |
+
msgstr "Sin clave secreta"
|
1100 |
+
|
1101 |
+
#: templates/account.php:241
|
1102 |
+
msgid "Trial"
|
1103 |
+
msgstr "Período de Prueba Gratuito"
|
1104 |
+
|
1105 |
+
#: templates/account.php257, templates/debug.php:424
|
1106 |
+
msgid "License Key"
|
1107 |
+
msgstr "License Key"
|
1108 |
+
|
1109 |
+
#: templates/account.php:287
|
1110 |
+
msgid "not verified"
|
1111 |
+
msgstr "no verificado"
|
1112 |
+
|
1113 |
+
#: templates/account.php:317
|
1114 |
+
msgid "Localhost"
|
1115 |
+
msgstr "Localhost"
|
1116 |
+
|
1117 |
+
#: templates/account.php:321
|
1118 |
+
msgctxt "as 5 licenses left"
|
1119 |
+
msgid "%s left"
|
1120 |
+
msgstr "quedan %s"
|
1121 |
+
|
1122 |
+
#: templates/account.php:322
|
1123 |
+
msgid "Last license"
|
1124 |
+
msgstr "Última licencia"
|
1125 |
+
|
1126 |
+
#: templates/account.php:352
|
1127 |
+
msgid "Premium version"
|
1128 |
+
msgstr "Versión Premium"
|
1129 |
+
|
1130 |
+
#: templates/account.php:354
|
1131 |
+
msgid "Free version"
|
1132 |
+
msgstr "Versión Gratuita"
|
1133 |
+
|
1134 |
+
#: templates/account.php:366
|
1135 |
+
msgid "Verify Email"
|
1136 |
+
msgstr "Verificar Correo Electrónico"
|
1137 |
+
|
1138 |
+
#: templates/account.php:377
|
1139 |
+
msgid "Download %s Version"
|
1140 |
+
msgstr "Descargar Versión %s"
|
1141 |
+
|
1142 |
+
#: templates/account.php391, templates/account.php:442
|
1143 |
+
msgctxt "verb"
|
1144 |
+
msgid "Show"
|
1145 |
+
msgstr "Mostrar"
|
1146 |
+
|
1147 |
+
#: templates/account.php:405
|
1148 |
+
msgid "What is your %s?"
|
1149 |
+
msgstr "¿Cual es tú %s?"
|
1150 |
+
|
1151 |
+
#: templates/account.php413, templates/account/billing.php:27
|
1152 |
+
msgctxt "verb"
|
1153 |
+
msgid "Edit"
|
1154 |
+
msgstr "Editar"
|
1155 |
+
|
1156 |
+
#: templates/account.php:436
|
1157 |
+
msgctxt "verb"
|
1158 |
+
msgid "Hide"
|
1159 |
+
msgstr "Ocultar"
|
1160 |
+
|
1161 |
+
#: templates/account.php472, templates/debug.php218, templates/debug.php308,
|
1162 |
+
#: templates/debug.php351, templates/debug.php388, templates/debug.php417,
|
1163 |
+
#: templates/debug.php496, templates/account/payments.php35,
|
1164 |
+
#: templates/debug/logger.php:21
|
1165 |
+
msgid "ID"
|
1166 |
+
msgstr "ID"
|
1167 |
+
|
1168 |
+
#: templates/account.php:475
|
1169 |
+
msgctxt "as software license"
|
1170 |
+
msgid "License"
|
1171 |
+
msgstr "Licencia"
|
1172 |
+
|
1173 |
+
#: templates/account.php:550
|
1174 |
+
msgid "Cancelled"
|
1175 |
+
msgstr "Cancelado"
|
1176 |
+
|
1177 |
+
#: templates/account.php:555
|
1178 |
+
msgid "Expired"
|
1179 |
+
msgstr "Caducado"
|
1180 |
+
|
1181 |
+
#: templates/account.php:560
|
1182 |
+
msgid "No expiration"
|
1183 |
+
msgstr "Sin caducidad"
|
1184 |
+
|
1185 |
+
#: templates/account.php668, templates/account.php:724
|
1186 |
+
msgid "Activate this add-on"
|
1187 |
+
msgstr "Activar este complemento"
|
1188 |
+
|
1189 |
+
#: templates/account.php745, templates/debug.php:336
|
1190 |
+
msgctxt "verb"
|
1191 |
+
msgid "Delete"
|
1192 |
+
msgstr "Borrar"
|
1193 |
+
|
1194 |
+
#: templates/add-ons.php:36
|
1195 |
+
msgid "Add Ons for %s"
|
1196 |
+
msgstr "Complementos para %s"
|
1197 |
+
|
1198 |
+
#: templates/add-ons.php:44
|
1199 |
+
msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
|
1200 |
+
msgstr "No podemos cargar la lista de complementos. Probablemente es un problema por nuestro parte, por favor inténtalo de nuevo en unos minutos."
|
1201 |
+
|
1202 |
+
#: templates/add-ons.php:135
|
1203 |
+
msgid "View details"
|
1204 |
+
msgstr "Ver detalles"
|
1205 |
+
|
1206 |
+
#: templates/admin-notice.php13, templates/forms/license-activation.php73,
|
1207 |
+
#: templates/forms/resend-key.php:77
|
1208 |
+
msgctxt "as close a window"
|
1209 |
+
msgid "Dismiss"
|
1210 |
+
msgstr "Descartar"
|
1211 |
+
|
1212 |
+
#: templates/auto-installation.php:44
|
1213 |
+
msgid "%s sec"
|
1214 |
+
msgstr "%s seg"
|
1215 |
+
|
1216 |
+
#: templates/auto-installation.php:82
|
1217 |
+
msgid "Automatic Installation"
|
1218 |
+
msgstr "Instalación Automática"
|
1219 |
+
|
1220 |
+
#: templates/auto-installation.php:92
|
1221 |
+
msgid "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
|
1222 |
+
msgstr "Una descarga automatizada y la instalación de %s (versión de pago) de %s comenzará en %s. Si quieres hacerlo manualmente - haz clic en el botón de cancelación."
|
1223 |
+
|
1224 |
+
#: templates/auto-installation.php:103
|
1225 |
+
msgid "The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page."
|
1226 |
+
msgstr "El proceso de instalación ha comenzado y puede tardar unos minutos en completarse. Por favor, espera hasta que se finalice - no actualices esta página."
|
1227 |
+
|
1228 |
+
#: templates/auto-installation.php:108
|
1229 |
+
msgid "Cancel Installation"
|
1230 |
+
msgstr "Cancelar instalación"
|
1231 |
+
|
1232 |
+
#: templates/checkout.php:168
|
1233 |
+
msgid "Checkout"
|
1234 |
+
msgstr "Checkout"
|
1235 |
+
|
1236 |
+
#: templates/checkout.php:168
|
1237 |
+
msgid "PCI compliant"
|
1238 |
+
msgstr "Compatible con PCI"
|
1239 |
+
|
1240 |
+
#: templates/connect.php:128
|
1241 |
+
msgid "Allow & Continue"
|
1242 |
+
msgstr "Permitir y Continuar"
|
1243 |
+
|
1244 |
+
#: templates/connect.php:131
|
1245 |
+
msgid "Re-send activation email"
|
1246 |
+
msgstr "Reenviar correo electrónico de activación"
|
1247 |
+
|
1248 |
+
#: templates/connect.php:135
|
1249 |
+
msgid "Thanks %s!"
|
1250 |
+
msgstr "¡Gracias %s!"
|
1251 |
+
|
1252 |
+
#: templates/connect.php143, templates/forms/license-activation.php:43
|
1253 |
+
msgid "Agree & Activate License"
|
1254 |
+
msgstr "De Acuerdo y Activar Licencia"
|
1255 |
+
|
1256 |
+
#: templates/connect.php147, templates/connect.php:170
|
1257 |
+
msgctxt "greeting"
|
1258 |
+
msgid "Hey %s,"
|
1259 |
+
msgstr "Hey %s,"
|
1260 |
+
|
1261 |
+
#: templates/connect.php:148
|
1262 |
+
msgid "Thanks for purchasing %s! To get started, please enter your license key:"
|
1263 |
+
msgstr "¡Gracias por comprar %s! Para empezar, escribe tu clave de licencia:"
|
1264 |
+
|
1265 |
+
#: templates/connect.php:154
|
1266 |
+
msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
|
1267 |
+
msgstr "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
|
1268 |
+
|
1269 |
+
#: templates/connect.php:159
|
1270 |
+
msgid "Please help us improve %1$s! If you opt in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
|
1271 |
+
msgstr "Please help us improve %1$s! If you opt in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
|
1272 |
+
|
1273 |
+
#: templates/connect.php189, templates/forms/license-activation.php:46
|
1274 |
+
msgid "License key"
|
1275 |
+
msgstr "Clave de licencia"
|
1276 |
+
|
1277 |
+
#: templates/connect.php192, templates/forms/license-activation.php:19
|
1278 |
+
msgid "Can't find your license key?"
|
1279 |
+
msgstr "¿No puedes encontrar tu clave de licencia?"
|
1280 |
+
|
1281 |
+
#: templates/connect.php199, templates/forms/deactivation/retry-skip.php:20
|
1282 |
+
msgctxt "verb"
|
1283 |
+
msgid "Skip"
|
1284 |
+
msgstr "Saltar"
|
1285 |
+
|
1286 |
+
#: templates/connect.php:228
|
1287 |
+
msgid "Your Profile Overview"
|
1288 |
+
msgstr "Resumen del Perfil"
|
1289 |
+
|
1290 |
+
#: templates/connect.php:229
|
1291 |
+
msgid "Name and email address"
|
1292 |
+
msgstr "Nombre y dirección de correo electrónico"
|
1293 |
+
|
1294 |
+
#: templates/connect.php:234
|
1295 |
+
msgid "Your Site Overview"
|
1296 |
+
msgstr "Resumen del Sitio"
|
1297 |
+
|
1298 |
+
#: templates/connect.php:235
|
1299 |
+
msgid "Site URL, WP version, PHP info, plugins & themes"
|
1300 |
+
msgstr "URL del sitio web, Versión de WP, PHP info, plugins y temas"
|
1301 |
+
|
1302 |
+
#: templates/connect.php:240
|
1303 |
+
msgid "Admin Notices"
|
1304 |
+
msgstr "Avisos de Administración"
|
1305 |
+
|
1306 |
+
#: templates/connect.php241, templates/connect.php:263
|
1307 |
+
msgid "Updates, announcements, marketing, no spam"
|
1308 |
+
msgstr "Actualizaciones, anuncios, marketing, sin spam"
|
1309 |
+
|
1310 |
+
#: templates/connect.php:246
|
1311 |
+
msgid "Current %s Events"
|
1312 |
+
msgstr "Eventos de %s Actuales"
|
1313 |
+
|
1314 |
+
#: templates/connect.php:247
|
1315 |
+
msgid "Activation, deactivation and uninstall"
|
1316 |
+
msgstr "Activación, desactivación y desinstalación"
|
1317 |
+
|
1318 |
+
#: templates/connect.php:262
|
1319 |
+
msgid "Newsletter"
|
1320 |
+
msgstr "Boletín"
|
1321 |
+
|
1322 |
+
#: templates/connect.php279, templates/forms/license-activation.php:38
|
1323 |
+
msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
|
1324 |
+
msgstr "%1$s periódicamente enviará datos a %2$s para comprobar las actualizaciones de seguridad, nuevas funcionalidades y verificar la validez de tu licencia."
|
1325 |
+
|
1326 |
+
#: templates/connect.php:284
|
1327 |
+
msgid "What permissions are being granted?"
|
1328 |
+
msgstr "¿Qué permisos se otorgan?"
|
1329 |
+
|
1330 |
+
#: templates/connect.php:305
|
1331 |
+
msgid "Don't have a license key?"
|
1332 |
+
msgstr "¿No tienes una clave de licencia?"
|
1333 |
+
|
1334 |
+
#: templates/connect.php:306
|
1335 |
+
msgid "Activate Free Version"
|
1336 |
+
msgstr "Activar Versión Gratuita"
|
1337 |
+
|
1338 |
+
#: templates/connect.php:308
|
1339 |
+
msgid "Have a license key?"
|
1340 |
+
msgstr "¿Tienes una Clave de Licencia?"
|
1341 |
+
|
1342 |
+
#: templates/connect.php:316
|
1343 |
+
msgid "Privacy Policy"
|
1344 |
+
msgstr "Política de Privacidad"
|
1345 |
+
|
1346 |
+
#: templates/connect.php:318
|
1347 |
+
msgid "Terms of Service"
|
1348 |
+
msgstr "Términos de Servicio"
|
1349 |
+
|
1350 |
+
#: templates/connect.php:436
|
1351 |
+
msgctxt "as in the process of sending an email"
|
1352 |
+
msgid "Sending email"
|
1353 |
+
msgstr "Enviando correo electrónico"
|
1354 |
+
|
1355 |
+
#: templates/connect.php:437
|
1356 |
+
msgctxt "as activating plugin"
|
1357 |
+
msgid "Activating"
|
1358 |
+
msgstr "Activando"
|
1359 |
+
|
1360 |
+
#: templates/contact.php:74
|
1361 |
+
msgid "Contact"
|
1362 |
+
msgstr "Contact"
|
1363 |
+
|
1364 |
+
#: templates/debug.php:17
|
1365 |
+
msgctxt "as turned off"
|
1366 |
+
msgid "Off"
|
1367 |
+
msgstr "Apagado"
|
1368 |
+
|
1369 |
+
#: templates/debug.php:18
|
1370 |
+
msgctxt "as turned on"
|
1371 |
+
msgid "On"
|
1372 |
+
msgstr "Encendido"
|
1373 |
+
|
1374 |
+
#: templates/debug.php:20
|
1375 |
+
msgid "SDK"
|
1376 |
+
msgstr "SDK"
|
1377 |
+
|
1378 |
+
#: templates/debug.php:24
|
1379 |
+
msgctxt "as code debugging"
|
1380 |
+
msgid "Debugging"
|
1381 |
+
msgstr "Depurando"
|
1382 |
+
|
1383 |
+
#: templates/debug.php54, templates/debug.php226, templates/debug.php:314
|
1384 |
+
msgid "Actions"
|
1385 |
+
msgstr "Acciones"
|
1386 |
+
|
1387 |
+
#: templates/debug.php:64
|
1388 |
+
msgid "Are you sure you want to delete all Freemius data?"
|
1389 |
+
msgstr "¿Está seguro que desea eliminar todos los datos de Freemius?"
|
1390 |
+
|
1391 |
+
#: templates/debug.php:64
|
1392 |
+
msgid "Delete All Accounts"
|
1393 |
+
msgstr "Borrar Todas las Cuentas"
|
1394 |
+
|
1395 |
+
#: templates/debug.php:71
|
1396 |
+
msgid "Clear API Cache"
|
1397 |
+
msgstr "Borrar Caché de la API"
|
1398 |
+
|
1399 |
+
#: templates/debug.php:78
|
1400 |
+
msgid "Sync Data From Server"
|
1401 |
+
msgstr "Sincronizar Datos Desde el Servidor"
|
1402 |
+
|
1403 |
+
#: templates/debug.php:82
|
1404 |
+
msgid "Load DB Option"
|
1405 |
+
msgstr "Load DB Option"
|
1406 |
+
|
1407 |
+
#: templates/debug.php:85
|
1408 |
+
msgid "Set DB Option"
|
1409 |
+
msgstr "Set DB Option"
|
1410 |
+
|
1411 |
+
#: templates/debug.php:162
|
1412 |
+
msgid "Key"
|
1413 |
+
msgstr "Key"
|
1414 |
+
|
1415 |
+
#: templates/debug.php:163
|
1416 |
+
msgid "Value"
|
1417 |
+
msgstr "Value"
|
1418 |
+
|
1419 |
+
#: templates/debug.php:179
|
1420 |
+
msgctxt "as software development kit versions"
|
1421 |
+
msgid "SDK Versions"
|
1422 |
+
msgstr "Versiones SDK"
|
1423 |
+
|
1424 |
+
#: templates/debug.php:184
|
1425 |
+
msgid "SDK Path"
|
1426 |
+
msgstr "Ruta del SDK"
|
1427 |
+
|
1428 |
+
#: templates/debug.php185, templates/debug.php:224
|
1429 |
+
msgid "Module Path"
|
1430 |
+
msgstr "Module Path"
|
1431 |
+
|
1432 |
+
#: templates/debug.php:186
|
1433 |
+
msgid "Is Active"
|
1434 |
+
msgstr "Está Activo"
|
1435 |
+
|
1436 |
+
#: templates/debug.php214, templates/debug/plugins-themes-sync.php:35
|
1437 |
+
msgid "Plugins"
|
1438 |
+
msgstr "Plugins"
|
1439 |
+
|
1440 |
+
#: templates/debug.php214, templates/debug/plugins-themes-sync.php:56
|
1441 |
+
msgid "Themes"
|
1442 |
+
msgstr "Temas"
|
1443 |
+
|
1444 |
+
#: templates/debug.php219, templates/debug.php309, templates/debug.php353,
|
1445 |
+
#: templates/debug/scheduled-crons.php:81
|
1446 |
+
msgid "Slug"
|
1447 |
+
msgstr "Ruta"
|
1448 |
+
|
1449 |
+
#: templates/debug.php221, templates/debug.php:352
|
1450 |
+
msgid "Title"
|
1451 |
+
msgstr "Título"
|
1452 |
+
|
1453 |
+
#: templates/debug.php:222
|
1454 |
+
msgctxt "as application program interface"
|
1455 |
+
msgid "API"
|
1456 |
+
msgstr "API"
|
1457 |
+
|
1458 |
+
#: templates/debug.php:223
|
1459 |
+
msgid "Freemius State"
|
1460 |
+
msgstr "Estado Freemius"
|
1461 |
+
|
1462 |
+
#: templates/debug.php:255
|
1463 |
+
msgctxt "as connection was successful"
|
1464 |
+
msgid "Connected"
|
1465 |
+
msgstr "Conectado"
|
1466 |
+
|
1467 |
+
#: templates/debug.php:256
|
1468 |
+
msgctxt "as connection blocked"
|
1469 |
+
msgid "Blocked"
|
1470 |
+
msgstr "Bloqueado"
|
1471 |
+
|
1472 |
+
#: templates/debug.php:277
|
1473 |
+
msgid "Simulate Trial"
|
1474 |
+
msgstr "Simulate Trial"
|
1475 |
+
|
1476 |
+
#: templates/debug.php:302
|
1477 |
+
msgid "%s Installs"
|
1478 |
+
msgstr "%s Instalaciones"
|
1479 |
+
|
1480 |
+
#: templates/debug.php:304
|
1481 |
+
msgctxt "like websites"
|
1482 |
+
msgid "Sites"
|
1483 |
+
msgstr "Sitios"
|
1484 |
+
|
1485 |
+
#: templates/debug.php:347
|
1486 |
+
msgid "Add Ons of module %s"
|
1487 |
+
msgstr "Add Ons of module %s"
|
1488 |
+
|
1489 |
+
#: templates/debug.php:384
|
1490 |
+
msgid "Users"
|
1491 |
+
msgstr "Usuarios"
|
1492 |
+
|
1493 |
+
#: templates/debug.php:391
|
1494 |
+
msgid "Verified"
|
1495 |
+
msgstr "Verificado"
|
1496 |
+
|
1497 |
+
#: templates/debug.php:413
|
1498 |
+
msgid "%s Licenses"
|
1499 |
+
msgstr "%s Licencias"
|
1500 |
+
|
1501 |
+
#: templates/debug.php:418
|
1502 |
+
msgid "Plugin ID"
|
1503 |
+
msgstr "Plugin ID"
|
1504 |
+
|
1505 |
+
#: templates/debug.php:420
|
1506 |
+
msgid "Plan ID"
|
1507 |
+
msgstr "Plan ID"
|
1508 |
+
|
1509 |
+
#: templates/debug.php:421
|
1510 |
+
msgid "Quota"
|
1511 |
+
msgstr "Quota"
|
1512 |
+
|
1513 |
+
#: templates/debug.php:422
|
1514 |
+
msgid "Activated"
|
1515 |
+
msgstr "Activated"
|
1516 |
+
|
1517 |
+
#: templates/debug.php:423
|
1518 |
+
msgid "Blocking"
|
1519 |
+
msgstr "Blocking"
|
1520 |
+
|
1521 |
+
#: templates/debug.php:425
|
1522 |
+
msgctxt "as expiration date"
|
1523 |
+
msgid "Expiration"
|
1524 |
+
msgstr "Caducidad"
|
1525 |
+
|
1526 |
+
#: templates/debug.php:454
|
1527 |
+
msgid "Debug Log"
|
1528 |
+
msgstr "Log de Debug"
|
1529 |
+
|
1530 |
+
#: templates/debug.php:458
|
1531 |
+
msgid "All Types"
|
1532 |
+
msgstr "Todos los Tipos"
|
1533 |
+
|
1534 |
+
#: templates/debug.php:465
|
1535 |
+
msgid "All Requests"
|
1536 |
+
msgstr "Todas las Peticiones"
|
1537 |
+
|
1538 |
+
#: templates/debug.php470, templates/debug.php499,
|
1539 |
+
#: templates/debug/logger.php:25
|
1540 |
+
msgid "File"
|
1541 |
+
msgstr "Archivo"
|
1542 |
+
|
1543 |
+
#: templates/debug.php471, templates/debug.php497,
|
1544 |
+
#: templates/debug/logger.php:23
|
1545 |
+
msgid "Function"
|
1546 |
+
msgstr "Función"
|
1547 |
+
|
1548 |
+
#: templates/debug.php:472
|
1549 |
+
msgid "Process ID"
|
1550 |
+
msgstr "ID del Proceso"
|
1551 |
+
|
1552 |
+
#: templates/debug.php:473
|
1553 |
+
msgid "Logger"
|
1554 |
+
msgstr "Logger"
|
1555 |
+
|
1556 |
+
#: templates/debug.php474, templates/debug.php498,
|
1557 |
+
#: templates/debug/logger.php:24
|
1558 |
+
msgid "Message"
|
1559 |
+
msgstr "Mensaje"
|
1560 |
+
|
1561 |
+
#: templates/debug.php:476
|
1562 |
+
msgid "Filter"
|
1563 |
+
msgstr "Filtro"
|
1564 |
+
|
1565 |
+
#: templates/debug.php:484
|
1566 |
+
msgid "Download"
|
1567 |
+
msgstr "Descarga"
|
1568 |
+
|
1569 |
+
#: templates/debug.php495, templates/debug/logger.php:22
|
1570 |
+
msgid "Type"
|
1571 |
+
msgstr "Tipo"
|
1572 |
+
|
1573 |
+
#: templates/debug.php500, templates/debug/logger.php:26
|
1574 |
+
msgid "Timestamp"
|
1575 |
+
msgstr "Timestamp"
|
1576 |
+
|
1577 |
+
#: templates/secure-https-header.php:28
|
1578 |
+
msgid "Secure HTTPS %s page, running from an external domain"
|
1579 |
+
msgstr "Página segura HTTPS %s, desde un dominio externo"
|
1580 |
+
|
1581 |
+
#: includes/customizer/class-fs-customizer-support-section.php55,
|
1582 |
+
#: templates/plugin-info/features.php:43
|
1583 |
+
msgid "Support"
|
1584 |
+
msgstr "Soporte"
|
1585 |
+
|
1586 |
+
#: includes/debug/class-fs-debug-bar-panel.php48,
|
1587 |
+
#: templates/debug/api-calls.php54, templates/debug/logger.php:62
|
1588 |
+
msgctxt "milliseconds"
|
1589 |
+
msgid "ms"
|
1590 |
+
msgstr "ms"
|
1591 |
+
|
1592 |
+
#: includes/debug/debug-bar-start.php:41
|
1593 |
+
msgid "Freemius API"
|
1594 |
+
msgstr "Freemius API"
|
1595 |
+
|
1596 |
+
#: includes/debug/debug-bar-start.php:42
|
1597 |
+
msgid "Requests"
|
1598 |
+
msgstr "Requests"
|
1599 |
+
|
1600 |
+
#: templates/account/billing.php:28
|
1601 |
+
msgctxt "verb"
|
1602 |
+
msgid "Update"
|
1603 |
+
msgstr "Actualizar"
|
1604 |
+
|
1605 |
+
#: templates/account/billing.php:39
|
1606 |
+
msgid "Billing"
|
1607 |
+
msgstr "Facturación"
|
1608 |
+
|
1609 |
+
#: templates/account/billing.php44, templates/account/billing.php:44
|
1610 |
+
msgid "Business name"
|
1611 |
+
msgstr "Nombre de la empresa"
|
1612 |
+
|
1613 |
+
#: templates/account/billing.php45, templates/account/billing.php:45
|
1614 |
+
msgid "Tax / VAT ID"
|
1615 |
+
msgstr "Tax / Núm IVA"
|
1616 |
+
|
1617 |
+
#: templates/account/billing.php48, templates/account/billing.php48,
|
1618 |
+
#: templates/account/billing.php49, templates/account/billing.php:49
|
1619 |
+
msgid "Address Line %d"
|
1620 |
+
msgstr "Línea de la dirección %d"
|
1621 |
+
|
1622 |
+
#: templates/account/billing.php52, templates/account/billing.php:52
|
1623 |
+
msgid "City"
|
1624 |
+
msgstr "Ciudad"
|
1625 |
+
|
1626 |
+
#: templates/account/billing.php52, templates/account/billing.php:52
|
1627 |
+
msgid "Town"
|
1628 |
+
msgstr "Municipio"
|
1629 |
+
|
1630 |
+
#: templates/account/billing.php53, templates/account/billing.php:53
|
1631 |
+
msgid "ZIP / Postal Code"
|
1632 |
+
msgstr "Código Postal"
|
1633 |
+
|
1634 |
+
#: templates/account/billing.php:308
|
1635 |
+
msgid "Country"
|
1636 |
+
msgstr "País"
|
1637 |
+
|
1638 |
+
#: templates/account/billing.php:310
|
1639 |
+
msgid "Select Country"
|
1640 |
+
msgstr "Seleccionar País"
|
1641 |
+
|
1642 |
+
#: templates/account/billing.php317, templates/account/billing.php:318
|
1643 |
+
msgid "State"
|
1644 |
+
msgstr "Estado"
|
1645 |
+
|
1646 |
+
#: templates/account/billing.php317, templates/account/billing.php:318
|
1647 |
+
msgid "Province"
|
1648 |
+
msgstr "Provincia"
|
1649 |
+
|
1650 |
+
#: templates/account/payments.php:29
|
1651 |
+
msgid "Payments"
|
1652 |
+
msgstr "Pagos"
|
1653 |
+
|
1654 |
+
#: templates/account/payments.php:36
|
1655 |
+
msgid "Date"
|
1656 |
+
msgstr "Fecha"
|
1657 |
+
|
1658 |
+
#: templates/account/payments.php:37
|
1659 |
+
msgid "Amount"
|
1660 |
+
msgstr "Cantidad"
|
1661 |
+
|
1662 |
+
#: templates/account/payments.php38, templates/account/payments.php:50
|
1663 |
+
msgid "Invoice"
|
1664 |
+
msgstr "Factura"
|
1665 |
+
|
1666 |
+
#: templates/debug/api-calls.php:56
|
1667 |
+
msgid "API"
|
1668 |
+
msgstr "API"
|
1669 |
+
|
1670 |
+
#: templates/debug/api-calls.php:68
|
1671 |
+
msgid "Method"
|
1672 |
+
msgstr "Method"
|
1673 |
+
|
1674 |
+
#: templates/debug/api-calls.php:69
|
1675 |
+
msgid "Code"
|
1676 |
+
msgstr "Code"
|
1677 |
+
|
1678 |
+
#: templates/debug/api-calls.php:70
|
1679 |
+
msgid "Length"
|
1680 |
+
msgstr "Length"
|
1681 |
+
|
1682 |
+
#: templates/debug/api-calls.php:71
|
1683 |
+
msgctxt "as file/folder path"
|
1684 |
+
msgid "Path"
|
1685 |
+
msgstr "Ruta"
|
1686 |
+
|
1687 |
+
#: templates/debug/api-calls.php:73
|
1688 |
+
msgid "Body"
|
1689 |
+
msgstr "Body"
|
1690 |
+
|
1691 |
+
#: templates/debug/api-calls.php:75
|
1692 |
+
msgid "Result"
|
1693 |
+
msgstr "Result"
|
1694 |
+
|
1695 |
+
#: templates/debug/api-calls.php:76
|
1696 |
+
msgid "Start"
|
1697 |
+
msgstr "Start"
|
1698 |
+
|
1699 |
+
#: templates/debug/api-calls.php:77
|
1700 |
+
msgid "End"
|
1701 |
+
msgstr "End"
|
1702 |
+
|
1703 |
+
#: templates/debug/logger.php:15
|
1704 |
+
msgid "Log"
|
1705 |
+
msgstr "Log"
|
1706 |
+
|
1707 |
+
#. translators: %s: time period (e.g. In "2 hours")
|
1708 |
+
#: templates/debug/plugins-themes-sync.php18,
|
1709 |
+
#: templates/debug/scheduled-crons.php:92
|
1710 |
+
msgid "In %s"
|
1711 |
+
msgstr "En %s"
|
1712 |
+
|
1713 |
+
#. translators: %s: time period (e.g. "2 hours" ago)
|
1714 |
+
#: templates/debug/plugins-themes-sync.php20,
|
1715 |
+
#: templates/debug/scheduled-crons.php:94
|
1716 |
+
msgid "%s ago"
|
1717 |
+
msgstr "hace %s"
|
1718 |
+
|
1719 |
+
#: templates/debug/plugins-themes-sync.php21,
|
1720 |
+
#: templates/debug/scheduled-crons.php:75
|
1721 |
+
msgctxt "seconds"
|
1722 |
+
msgid "sec"
|
1723 |
+
msgstr "sec"
|
1724 |
+
|
1725 |
+
#: templates/debug/plugins-themes-sync.php:23
|
1726 |
+
msgid "Plugins & Themes Sync"
|
1727 |
+
msgstr "Sincronizar Plugins y Temas"
|
1728 |
+
|
1729 |
+
#: templates/debug/plugins-themes-sync.php:28
|
1730 |
+
msgid "Total"
|
1731 |
+
msgstr "Total"
|
1732 |
+
|
1733 |
+
#: templates/debug/plugins-themes-sync.php29,
|
1734 |
+
#: templates/debug/scheduled-crons.php:85
|
1735 |
+
msgid "Last"
|
1736 |
+
msgstr "Last"
|
1737 |
+
|
1738 |
+
#: templates/debug/scheduled-crons.php:77
|
1739 |
+
msgid "Scheduled Crons"
|
1740 |
+
msgstr "Crons Programados"
|
1741 |
+
|
1742 |
+
#: templates/debug/scheduled-crons.php:82
|
1743 |
+
msgid "Module"
|
1744 |
+
msgstr "Módulo"
|
1745 |
+
|
1746 |
+
#: templates/debug/scheduled-crons.php:83
|
1747 |
+
msgid "Module Type"
|
1748 |
+
msgstr "Tipo de Módulo"
|
1749 |
+
|
1750 |
+
#: templates/debug/scheduled-crons.php:84
|
1751 |
+
msgid "Cron Type"
|
1752 |
+
msgstr "Tipo de Cron"
|
1753 |
+
|
1754 |
+
#: templates/debug/scheduled-crons.php:86
|
1755 |
+
msgid "Next"
|
1756 |
+
msgstr "Next"
|
1757 |
+
|
1758 |
+
#: templates/forms/affiliation.php:81
|
1759 |
+
msgid "Non-expiring"
|
1760 |
+
msgstr "Non-expiring"
|
1761 |
+
|
1762 |
+
#: templates/forms/affiliation.php:84
|
1763 |
+
msgid "Apply to become an affiliate"
|
1764 |
+
msgstr "Apply to become an affiliate"
|
1765 |
+
|
1766 |
+
#: templates/forms/affiliation.php:103
|
1767 |
+
msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
|
1768 |
+
msgstr "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
|
1769 |
+
|
1770 |
+
#: templates/forms/affiliation.php:114
|
1771 |
+
msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
|
1772 |
+
msgstr "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
|
1773 |
+
|
1774 |
+
#: templates/forms/affiliation.php:117
|
1775 |
+
msgid "Your affiliation account was temporarily suspended."
|
1776 |
+
msgstr "Your affiliation account was temporarily suspended."
|
1777 |
+
|
1778 |
+
#: templates/forms/affiliation.php:120
|
1779 |
+
msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
|
1780 |
+
msgstr "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
|
1781 |
+
|
1782 |
+
#: templates/forms/affiliation.php:123
|
1783 |
+
msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
|
1784 |
+
msgstr "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
|
1785 |
+
|
1786 |
+
#: templates/forms/affiliation.php:136
|
1787 |
+
msgid "Like the %s? Become our ambassador and earn cash ;-)"
|
1788 |
+
msgstr "Like the %s? Become our ambassador and earn cash ;-)"
|
1789 |
+
|
1790 |
+
#: templates/forms/affiliation.php:137
|
1791 |
+
msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
|
1792 |
+
msgstr "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
|
1793 |
+
|
1794 |
+
#: templates/forms/affiliation.php:140
|
1795 |
+
msgid "Program Summary"
|
1796 |
+
msgstr "Program Summary"
|
1797 |
+
|
1798 |
+
#: templates/forms/affiliation.php:142
|
1799 |
+
msgid "%s commission when a customer purchases a new license."
|
1800 |
+
msgstr "%s commission when a customer purchases a new license."
|
1801 |
+
|
1802 |
+
#: templates/forms/affiliation.php:144
|
1803 |
+
msgid "Get commission for automated subscription renewals."
|
1804 |
+
msgstr "Get commission for automated subscription renewals."
|
1805 |
+
|
1806 |
+
#: templates/forms/affiliation.php:147
|
1807 |
+
msgid "%s tracking cookie after the first visit to maximize earnings potential."
|
1808 |
+
msgstr "%s tracking cookie after the first visit to maximize earnings potential."
|
1809 |
+
|
1810 |
+
#: templates/forms/affiliation.php:150
|
1811 |
+
msgid "Unlimited commissions."
|
1812 |
+
msgstr "Unlimited commissions."
|
1813 |
+
|
1814 |
+
#: templates/forms/affiliation.php:152
|
1815 |
+
msgid "%s minimum payout amount."
|
1816 |
+
msgstr "%s minimum payout amount."
|
1817 |
+
|
1818 |
+
#: templates/forms/affiliation.php:153
|
1819 |
+
msgid "Payouts are in USD and processed monthly via PayPal."
|
1820 |
+
msgstr "Payouts are in USD and processed monthly via PayPal."
|
1821 |
+
|
1822 |
+
#: templates/forms/affiliation.php:154
|
1823 |
+
msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
|
1824 |
+
msgstr "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
|
1825 |
+
|
1826 |
+
#: templates/forms/affiliation.php:157
|
1827 |
+
msgid "Affiliate"
|
1828 |
+
msgstr "Affiliate"
|
1829 |
+
|
1830 |
+
#: templates/forms/affiliation.php160, templates/forms/resend-key.php:23
|
1831 |
+
msgid "Email address"
|
1832 |
+
msgstr "Dirección de correo electrónico"
|
1833 |
+
|
1834 |
+
#: templates/forms/affiliation.php:164
|
1835 |
+
msgid "Full name"
|
1836 |
+
msgstr "Full name"
|
1837 |
+
|
1838 |
+
#: templates/forms/affiliation.php:168
|
1839 |
+
msgid "PayPal account email address"
|
1840 |
+
msgstr "PayPal account email address"
|
1841 |
+
|
1842 |
+
#: templates/forms/affiliation.php:172
|
1843 |
+
msgid "Where are you going to promote the %s?"
|
1844 |
+
msgstr "Where are you going to promote the %s?"
|
1845 |
+
|
1846 |
+
#: templates/forms/affiliation.php:174
|
1847 |
+
msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
|
1848 |
+
msgstr "Enter the domain of your website or other websites from where you plan to promote the %s."
|
1849 |
+
|
1850 |
+
#: templates/forms/affiliation.php:176
|
1851 |
+
msgid "Add another domain"
|
1852 |
+
msgstr "Add another domain"
|
1853 |
+
|
1854 |
+
#: templates/forms/affiliation.php:180
|
1855 |
+
msgid "Extra Domains"
|
1856 |
+
msgstr "Extra Domains"
|
1857 |
+
|
1858 |
+
#: templates/forms/affiliation.php:181
|
1859 |
+
msgid "Extra domains where you will be marketing the product from."
|
1860 |
+
msgstr "Extra domains where you will be marketing the product from."
|
1861 |
+
|
1862 |
+
#: templates/forms/affiliation.php:191
|
1863 |
+
msgid "Promotion methods"
|
1864 |
+
msgstr "Promotion methods"
|
1865 |
+
|
1866 |
+
#: templates/forms/affiliation.php:194
|
1867 |
+
msgid "Social media (Facebook, Twitter, etc.)"
|
1868 |
+
msgstr "Social media (Facebook, Twitter, etc.)"
|
1869 |
+
|
1870 |
+
#: templates/forms/affiliation.php:198
|
1871 |
+
msgid "Mobile apps"
|
1872 |
+
msgstr "Mobile apps"
|
1873 |
+
|
1874 |
+
#: templates/forms/affiliation.php:202
|
1875 |
+
msgid "Website, email, and social media statistics (optional)"
|
1876 |
+
msgstr "Website, email, and social media statistics (optional)"
|
1877 |
+
|
1878 |
+
#: templates/forms/affiliation.php:205
|
1879 |
+
msgid "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
|
1880 |
+
msgstr "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
|
1881 |
+
|
1882 |
+
#: templates/forms/affiliation.php:209
|
1883 |
+
msgid "How will you promote us?"
|
1884 |
+
msgstr "How will you promote us?"
|
1885 |
+
|
1886 |
+
#: templates/forms/affiliation.php:212
|
1887 |
+
msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
|
1888 |
+
msgstr "Please provide details on how you intend to promote %s (please be as specific as possible)."
|
1889 |
+
|
1890 |
+
#: templates/forms/affiliation.php218, templates/forms/resend-key.php:22
|
1891 |
+
msgid "Cancel"
|
1892 |
+
msgstr "Cancelar"
|
1893 |
+
|
1894 |
+
#: templates/forms/affiliation.php:220
|
1895 |
+
msgid "Become an affiliate"
|
1896 |
+
msgstr "Become an affiliate"
|
1897 |
+
|
1898 |
+
#: templates/forms/affiliation.php:275
|
1899 |
+
msgid "Email address is required."
|
1900 |
+
msgstr "Email address is required."
|
1901 |
+
|
1902 |
+
#: templates/forms/affiliation.php:281
|
1903 |
+
msgid "PayPal email address is required."
|
1904 |
+
msgstr "PayPal email address is required."
|
1905 |
+
|
1906 |
+
#: templates/forms/affiliation.php:291
|
1907 |
+
msgid "Domain is required."
|
1908 |
+
msgstr "Domain is required."
|
1909 |
+
|
1910 |
+
#: templates/forms/affiliation.php294, templates/forms/affiliation.php:308
|
1911 |
+
msgid "Invalid domain"
|
1912 |
+
msgstr "Invalid domain"
|
1913 |
+
|
1914 |
+
#: templates/forms/affiliation.php:364
|
1915 |
+
msgid "Processing"
|
1916 |
+
msgstr "Processing"
|
1917 |
+
|
1918 |
+
#: templates/forms/license-activation.php:20
|
1919 |
+
msgid "Please enter the license key that you received in the email right after the purchase:"
|
1920 |
+
msgstr "Por favor, introduce la clave de licencia que recibiste en el correo electrónico al realizar la compra:"
|
1921 |
+
|
1922 |
+
#: templates/forms/license-activation.php:25
|
1923 |
+
msgid "Update License"
|
1924 |
+
msgstr "Activar Licencia"
|
1925 |
+
|
1926 |
+
#: templates/forms/optout.php:30
|
1927 |
+
msgctxt "verb"
|
1928 |
+
msgid "Opt Out"
|
1929 |
+
msgstr "Darse de baja"
|
1930 |
+
|
1931 |
+
#: templates/forms/optout.php:31
|
1932 |
+
msgctxt "verb"
|
1933 |
+
msgid "Opt In"
|
1934 |
+
msgstr "Inscribirse"
|
1935 |
+
|
1936 |
+
#: templates/forms/optout.php:32
|
1937 |
+
msgid "We appreciate your help in making the %s better by letting us track some usage data."
|
1938 |
+
msgstr "Agradecemos tu ayuda para mejorar %s y por permitirnos rastrear algunos datos de uso."
|
1939 |
+
|
1940 |
+
#: templates/forms/optout.php:33
|
1941 |
+
msgid "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
|
1942 |
+
msgstr "El uso del seguimiento se hace con la intención de mejorar %s. Crear una mejor experiencia de usuario, priorizando nuevas características y cosas mejores. Realmente apreciaríamos que considerases permitirnos continuar con el seguimiento."
|
1943 |
+
|
1944 |
+
#: templates/forms/optout.php:35
|
1945 |
+
msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
|
1946 |
+
msgstr "Haciendo clic en \"Desistir\", ya no enviaremos los datos de %s a %s."
|
1947 |
+
|
1948 |
+
#: templates/forms/resend-key.php:21
|
1949 |
+
msgid "Send License Key"
|
1950 |
+
msgstr "Enviar Clave de Licencia"
|
1951 |
+
|
1952 |
+
#: templates/forms/resend-key.php:57
|
1953 |
+
msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
|
1954 |
+
msgstr "Escribe abajo la dirección de correo electrónico que has usado para la actualización y te reenviaremos la clave de licencia."
|
1955 |
+
|
1956 |
+
#: templates/forms/trial-start.php:22
|
1957 |
+
msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
|
1958 |
+
msgstr "Estás a sólo 1-click de comenzar tu %1$s días de prueba gratuita del plan %2$s."
|
1959 |
+
|
1960 |
+
#: templates/forms/trial-start.php:28
|
1961 |
+
msgid "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial."
|
1962 |
+
msgstr "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial."
|
1963 |
+
|
1964 |
+
#: templates/js/style-premium-theme.php:37
|
1965 |
+
msgid "Premium"
|
1966 |
+
msgstr "Premium"
|
1967 |
+
|
1968 |
+
#: templates/plugin-info/description.php72,
|
1969 |
+
#: templates/plugin-info/screenshots.php:31
|
1970 |
+
msgid "Click to view full-size screenshot %d"
|
1971 |
+
msgstr "Click para ver la captura de pantalla a tamaño completo %d"
|
1972 |
+
|
1973 |
+
#: templates/plugin-info/features.php:56
|
1974 |
+
msgid "Unlimited Updates"
|
1975 |
+
msgstr "Actualizaciones Ilimitadas"
|
1976 |
+
|
1977 |
+
#: templates/forms/deactivation/contact.php:19
|
1978 |
+
msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
|
1979 |
+
msgstr "Disculpa las molestias y estamos aquí para ayudarte si nos das una oportunidad."
|
1980 |
+
|
1981 |
+
#: templates/forms/deactivation/contact.php:22
|
1982 |
+
msgid "Contact Support"
|
1983 |
+
msgstr "Contactar Soporte"
|
1984 |
+
|
1985 |
+
#: templates/forms/deactivation/form.php:56
|
1986 |
+
msgid "Anonymous feedback"
|
1987 |
+
msgstr "Comentarios anónimos"
|
1988 |
+
|
1989 |
+
#: templates/forms/deactivation/form.php:63
|
1990 |
+
msgid "Deactivate"
|
1991 |
+
msgstr "Desactivar"
|
1992 |
+
|
1993 |
+
#: templates/forms/deactivation/form.php:65
|
1994 |
+
msgid "Activate %s"
|
1995 |
+
msgstr "Activar %s"
|
1996 |
+
|
1997 |
+
#: templates/forms/deactivation/form.php:76
|
1998 |
+
msgid "Quick feedback"
|
1999 |
+
msgstr "Comentarios rápidos"
|
2000 |
+
|
2001 |
+
#: templates/forms/deactivation/form.php:80
|
2002 |
+
msgid "If you have a moment, please let us know why you are %s"
|
2003 |
+
msgstr "Si tienes un momento, por favor, dinos por qué estás desactivando %s"
|
2004 |
+
|
2005 |
+
#: templates/forms/deactivation/form.php:80
|
2006 |
+
msgid "deactivating"
|
2007 |
+
msgstr "desactivando"
|
2008 |
+
|
2009 |
+
#: templates/forms/deactivation/form.php:80
|
2010 |
+
msgid "switching"
|
2011 |
+
msgstr "cambiando"
|
2012 |
+
|
2013 |
+
#: templates/forms/deactivation/form.php:248
|
2014 |
+
msgid "Submit & %s"
|
2015 |
+
msgstr "Enviar y %s"
|
2016 |
+
|
2017 |
+
#: templates/forms/deactivation/form.php:269
|
2018 |
+
msgid "Kindly tell us the reason so we can improve."
|
2019 |
+
msgstr "Por favor, dínos la razón para que podamos mejorar."
|
2020 |
+
|
2021 |
+
#: templates/forms/deactivation/form.php:390
|
2022 |
+
msgid "Yes - %s"
|
2023 |
+
msgstr "Si - %s"
|
2024 |
+
|
2025 |
+
#: templates/forms/deactivation/form.php:397
|
2026 |
+
msgid "Skip & %s"
|
2027 |
+
msgstr "Saltar y %s"
|
2028 |
+
|
2029 |
+
#: templates/forms/deactivation/retry-skip.php:21
|
2030 |
+
msgid "Click here to use the plugin anonymously"
|
2031 |
+
msgstr "Haz Click aquí para utilizar el plugin de forma anónima"
|
2032 |
+
|
2033 |
+
#: templates/forms/deactivation/retry-skip.php:23
|
2034 |
+
msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
|
2035 |
+
msgstr "Es posible que te lo hayas perdido, pero no tienes que compartir ningún dato y puedes solo aceptar %s."
|
freemius/languages/freemius-he.mo
DELETED
Binary file
|
freemius/languages/freemius-he_IL.mo
ADDED
Binary file
|
freemius/languages/{freemius-he.po → freemius-he_IL.po}
RENAMED
@@ -2,1826 +2,2035 @@
|
|
2 |
# This file is distributed under the same license as the freemius package.
|
3 |
# Translators:
|
4 |
# Rami Yushuvaev <r_a_m_i@hotmail.com>, 2017
|
5 |
-
# Vova Feldman <vova@freemius.com>,
|
6 |
msgid ""
|
7 |
msgstr ""
|
8 |
"Project-Id-Version: WordPress SDK\n"
|
9 |
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
10 |
"POT-Creation-Date: \n"
|
11 |
-
"PO-Revision-Date: 2017-
|
12 |
"Last-Translator: Vova Feldman <vova@freemius.com>\n"
|
13 |
-
"Language:
|
14 |
-
"Language-Team: Hebrew (http://www.transifex.com/freemius/wordpress-sdk/language/
|
15 |
"Content-Type: text/plain; charset=UTF-8\n"
|
16 |
"Content-Transfer-Encoding: 8bit\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
"MIME-Version: 1.0\n"
|
19 |
"X-Poedit-Basepath: ..\n"
|
20 |
-
"X-Poedit-KeywordsList:
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
23 |
"X-Poedit-SourceCharset: UTF-8\n"
|
24 |
|
25 |
-
#: includes/
|
26 |
-
msgid "
|
27 |
-
msgstr "
|
28 |
-
|
29 |
-
#: includes/i18n.php:38
|
30 |
-
msgid "Add-On"
|
31 |
-
msgstr "Add-On"
|
32 |
|
33 |
-
#: includes/
|
34 |
-
msgid "
|
35 |
-
msgstr "
|
36 |
|
37 |
-
#: includes/
|
38 |
-
msgid "
|
39 |
-
msgstr "
|
40 |
|
41 |
-
#: includes/
|
42 |
-
msgid "
|
43 |
-
msgstr "
|
44 |
|
45 |
-
#: includes/
|
46 |
-
msgid "
|
47 |
-
msgstr "
|
48 |
|
49 |
-
#: includes/
|
50 |
-
msgid "
|
51 |
-
msgstr "
|
52 |
|
53 |
-
#: includes/
|
54 |
-
msgid "
|
55 |
-
msgstr "
|
56 |
|
57 |
-
#: includes/
|
58 |
-
|
59 |
-
|
60 |
-
msgstr "שדרג"
|
61 |
|
62 |
-
#: includes/
|
63 |
-
msgid "
|
64 |
-
msgstr "
|
65 |
|
66 |
-
#: includes/
|
67 |
-
|
68 |
-
|
69 |
-
msgstr "מחירון"
|
70 |
|
71 |
-
#: includes/
|
72 |
-
|
73 |
-
|
74 |
-
msgstr "מחיר"
|
75 |
|
76 |
-
#: includes/
|
77 |
-
msgid "
|
78 |
-
msgstr "
|
79 |
|
80 |
-
#: includes/
|
81 |
-
|
82 |
-
|
83 |
-
msgstr "שנמך"
|
84 |
|
85 |
-
#: includes/
|
86 |
-
|
87 |
-
|
88 |
-
msgstr "בטל מנוי"
|
89 |
|
90 |
-
#: includes/
|
91 |
-
msgid "
|
92 |
-
msgstr "
|
93 |
|
94 |
-
#: includes/
|
95 |
-
msgid "
|
96 |
-
msgstr "
|
97 |
|
98 |
-
#: includes/
|
99 |
-
msgid "
|
100 |
-
msgstr "
|
101 |
|
102 |
-
#: includes/
|
103 |
-
msgid "
|
104 |
-
msgstr "
|
105 |
|
106 |
-
#: includes/
|
107 |
-
msgid "
|
108 |
-
msgstr "
|
109 |
|
110 |
-
#: includes/
|
111 |
-
msgid "
|
112 |
-
msgstr "
|
113 |
|
114 |
-
#: includes/
|
115 |
-
msgid "
|
116 |
-
msgstr "
|
117 |
|
118 |
-
#: includes/
|
119 |
-
|
120 |
-
|
121 |
-
msgstr "מחק"
|
122 |
|
123 |
-
#: includes/
|
124 |
-
|
125 |
-
|
126 |
-
msgstr "הצג"
|
127 |
|
128 |
-
#: includes/
|
129 |
-
|
130 |
-
|
131 |
-
msgstr "הסתר"
|
132 |
|
133 |
-
#: includes/
|
134 |
-
|
135 |
-
|
136 |
-
msgstr "ערוך"
|
137 |
|
138 |
-
#: includes/
|
139 |
-
|
140 |
-
|
141 |
-
msgstr "עדכן"
|
142 |
|
143 |
-
#: includes/
|
144 |
-
msgid "
|
145 |
-
msgstr "
|
146 |
|
147 |
-
#: includes/
|
148 |
-
msgid "
|
149 |
-
msgstr "
|
150 |
|
151 |
-
#: includes/
|
152 |
-
msgid "
|
153 |
-
msgstr "
|
154 |
|
155 |
-
#: includes/
|
156 |
-
msgid "
|
157 |
-
msgstr "
|
158 |
|
159 |
-
#: includes/
|
160 |
-
msgid "
|
161 |
-
msgstr "
|
162 |
|
163 |
-
#: includes/
|
164 |
-
|
165 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
|
167 |
-
#: includes/
|
168 |
-
|
169 |
-
|
170 |
-
msgstr "סגירה"
|
171 |
|
172 |
-
#: includes/
|
173 |
-
msgctxt "
|
174 |
-
msgid "
|
175 |
-
msgstr "
|
176 |
|
177 |
-
#: includes/
|
178 |
-
|
179 |
-
|
|
|
180 |
|
181 |
-
#: includes/
|
182 |
-
|
183 |
-
msgid "
|
184 |
-
msgstr "
|
185 |
|
186 |
-
#: includes/
|
187 |
-
|
188 |
-
|
189 |
-
msgstr "הורד עכשיו גרסת %s"
|
190 |
|
191 |
-
#: includes/
|
192 |
-
msgctxt "
|
193 |
-
msgid "
|
194 |
-
msgstr "
|
195 |
|
196 |
-
#: includes/
|
197 |
-
msgctxt "E.g. you have a professional license."
|
198 |
msgid "You have a %s license."
|
199 |
msgstr "יש לך רישיון %s."
|
200 |
|
201 |
-
#: includes/
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
msgid "
|
207 |
-
msgstr "
|
208 |
|
209 |
-
#: includes/
|
210 |
-
|
211 |
-
|
212 |
-
msgstr "ניסיון"
|
213 |
|
214 |
-
#: includes/
|
215 |
-
|
216 |
-
|
217 |
-
msgstr "התחל תקופת ניסיון"
|
218 |
|
219 |
-
#: includes/
|
220 |
-
|
221 |
-
msgid "
|
222 |
-
msgstr "
|
223 |
|
224 |
-
#: includes/
|
225 |
msgid "Purchase License"
|
226 |
msgstr "קניית רישיון"
|
227 |
|
228 |
-
#: includes/
|
229 |
-
|
230 |
-
|
231 |
-
msgstr "קנייה"
|
232 |
-
|
233 |
-
#: includes/i18n.php:84
|
234 |
-
msgid "Buy License"
|
235 |
-
msgstr "קניית רישיון"
|
236 |
-
|
237 |
-
#: includes/i18n.php:85
|
238 |
-
msgid "Single Site License"
|
239 |
-
msgstr "רשיון לאתר אחד"
|
240 |
-
|
241 |
-
#: includes/i18n.php:86
|
242 |
-
msgid "Unlimited Licenses"
|
243 |
-
msgstr "רשיונות ללא הגבלה"
|
244 |
-
|
245 |
-
#: includes/i18n.php:87
|
246 |
-
msgid "Up to %s Sites"
|
247 |
-
msgstr "עד %s אתרים"
|
248 |
-
|
249 |
-
#: includes/i18n.php:88
|
250 |
-
msgid "%sRenew your license now%s to access version %s features and support."
|
251 |
-
msgstr "%sRenew your license now%s to access version %s features and support."
|
252 |
|
253 |
-
#: includes/
|
254 |
-
msgid "
|
255 |
-
msgstr "
|
256 |
|
257 |
-
#: includes/
|
258 |
-
|
259 |
-
|
260 |
-
msgstr "חבילה %s"
|
261 |
|
262 |
-
#: includes/
|
263 |
msgid "You are just one step away - %s"
|
264 |
msgstr "You are just one step away - %s"
|
265 |
|
266 |
-
#: includes/
|
267 |
-
msgctxt "%s - plugin name. As complete \"
|
268 |
msgid "Complete \"%s\" Activation Now"
|
269 |
msgstr "השלם הפעלת \"%s\" עכשיו"
|
270 |
|
271 |
-
#: includes/
|
272 |
msgid "We made a few tweaks to the %s, %s"
|
273 |
msgstr "We made a few tweaks to the %s, %s"
|
274 |
|
275 |
-
#: includes/
|
276 |
-
msgid "Opt
|
277 |
-
msgstr "Opt
|
278 |
|
279 |
-
#: includes/
|
280 |
-
msgid "
|
281 |
-
msgstr "
|
282 |
-
|
283 |
-
#: includes/i18n.php:97
|
284 |
-
msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
|
285 |
-
msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
|
286 |
|
287 |
-
#: includes/
|
288 |
-
|
289 |
-
|
290 |
-
|
|
|
291 |
|
292 |
-
#: includes/
|
293 |
-
|
294 |
-
msgid "
|
295 |
-
msgstr "
|
296 |
|
297 |
-
#: includes/
|
298 |
-
|
299 |
-
|
|
|
300 |
|
301 |
-
#: includes/
|
302 |
-
msgid "
|
303 |
-
msgstr "
|
304 |
|
305 |
-
#: includes/
|
306 |
-
|
307 |
-
|
308 |
-
msgstr "פג תוקף בעוד %s"
|
309 |
|
310 |
-
#: includes/
|
311 |
-
|
312 |
-
|
313 |
-
msgstr "עדכן אוטומטית בעוד %s"
|
314 |
|
315 |
-
#: includes/
|
316 |
-
|
317 |
-
|
|
|
318 |
|
319 |
-
#: includes/
|
320 |
-
msgid "
|
321 |
-
msgstr "
|
322 |
|
323 |
-
#: includes/
|
324 |
-
msgid "
|
325 |
-
msgstr "
|
326 |
|
327 |
-
#: includes/
|
328 |
-
|
329 |
-
msgid "
|
330 |
-
msgstr "
|
331 |
|
332 |
-
#: includes/
|
333 |
-
|
334 |
-
msgid "
|
335 |
-
msgstr "
|
336 |
|
337 |
-
#: includes/
|
338 |
-
msgid "
|
339 |
-
msgstr "
|
340 |
|
341 |
-
#: includes/
|
342 |
-
|
343 |
-
|
344 |
-
msgstr "גרסה"
|
345 |
|
346 |
-
#: includes/
|
347 |
-
msgid "
|
348 |
-
msgstr "
|
349 |
|
350 |
-
#: includes/
|
351 |
-
msgid "
|
352 |
-
msgstr "
|
353 |
|
354 |
-
#: includes/
|
355 |
-
|
356 |
-
|
|
|
357 |
|
358 |
-
#: includes/
|
359 |
-
|
360 |
-
|
|
|
361 |
|
362 |
-
#: includes/
|
363 |
-
|
364 |
-
|
|
|
365 |
|
366 |
-
#: includes/
|
367 |
-
|
368 |
-
|
|
|
369 |
|
370 |
-
#: includes/
|
371 |
-
|
372 |
-
|
|
|
373 |
|
374 |
-
#: includes/
|
375 |
-
msgid "
|
376 |
-
msgstr "
|
377 |
|
378 |
-
#: includes/
|
379 |
-
|
380 |
-
|
|
|
381 |
|
382 |
-
#: includes/
|
383 |
-
msgid "
|
384 |
-
msgstr "
|
385 |
|
386 |
-
#: includes/
|
387 |
-
|
388 |
-
|
389 |
-
msgstr "נתיב"
|
390 |
|
391 |
-
#: includes/
|
392 |
-
msgid "
|
393 |
-
msgstr "
|
394 |
|
395 |
-
#: includes/
|
396 |
-
|
397 |
-
|
|
|
398 |
|
399 |
-
#: includes/
|
400 |
-
|
401 |
-
|
|
|
402 |
|
403 |
-
#: includes/
|
404 |
-
|
405 |
-
|
406 |
-
msgstr "מזהה כתובת"
|
407 |
|
408 |
-
#: includes/
|
409 |
-
|
410 |
-
|
|
|
|
|
411 |
|
412 |
-
#: includes/
|
413 |
-
msgid "
|
414 |
-
msgstr "
|
415 |
|
416 |
-
#: includes/
|
417 |
-
|
418 |
-
|
|
|
|
|
419 |
|
420 |
-
#: includes/
|
421 |
-
|
422 |
-
|
423 |
-
msgstr "אתרים"
|
424 |
|
425 |
-
#: includes/
|
426 |
-
msgid "
|
427 |
-
msgstr "
|
428 |
|
429 |
-
#: includes/
|
430 |
-
msgid "
|
431 |
-
msgstr "
|
432 |
|
433 |
-
#: includes/
|
434 |
-
msgid "
|
435 |
-
msgstr "
|
436 |
|
437 |
-
#: includes/
|
438 |
-
msgid "
|
439 |
-
msgstr "
|
440 |
|
441 |
-
#: includes/
|
442 |
-
|
443 |
-
|
444 |
-
msgstr "אין מפתח סודי"
|
445 |
|
446 |
-
#: includes/
|
447 |
-
msgid "
|
448 |
-
msgstr "
|
449 |
|
450 |
-
#: includes/
|
451 |
-
|
452 |
-
|
453 |
-
msgstr "סינכרן רישיון"
|
454 |
|
455 |
-
#: includes/
|
456 |
-
|
457 |
-
|
458 |
-
msgstr "סינכרון"
|
459 |
|
460 |
-
#: includes/
|
461 |
-
msgid "
|
462 |
-
msgstr "
|
463 |
|
464 |
-
#: includes/
|
465 |
-
msgid "
|
466 |
-
msgstr "
|
467 |
|
468 |
-
#: includes/
|
469 |
-
msgid "
|
470 |
-
msgstr "
|
471 |
|
472 |
-
#: includes/
|
473 |
-
msgid "
|
474 |
-
msgstr "
|
475 |
|
476 |
-
#: includes/
|
477 |
-
msgid "
|
478 |
-
msgstr "
|
479 |
|
480 |
-
#: includes/
|
481 |
-
msgid "
|
482 |
-
msgstr "
|
483 |
|
484 |
-
#: includes/
|
485 |
-
msgid "
|
486 |
-
msgstr "
|
487 |
|
488 |
-
#: includes/
|
489 |
-
msgid "
|
490 |
-
msgstr "
|
491 |
|
492 |
-
#: includes/
|
493 |
-
msgid "
|
494 |
-
msgstr "
|
495 |
|
496 |
-
#: includes/
|
497 |
-
msgid "
|
498 |
-
msgstr "
|
499 |
|
500 |
-
#: includes/
|
501 |
-
msgid "
|
502 |
-
msgstr "
|
503 |
|
504 |
-
#: includes/
|
505 |
-
msgid "
|
506 |
-
msgstr "
|
507 |
|
508 |
-
#: includes/
|
509 |
-
msgid "
|
510 |
-
msgstr "
|
511 |
|
512 |
-
#: includes/
|
513 |
-
|
514 |
-
|
515 |
-
msgstr "מופעל"
|
516 |
|
517 |
-
#: includes/
|
518 |
-
|
519 |
-
|
520 |
-
msgstr "האם פעיל"
|
521 |
|
522 |
-
#: includes/
|
523 |
-
msgid "
|
524 |
-
msgstr "
|
525 |
|
526 |
-
#: includes/
|
527 |
-
msgid "
|
528 |
-
msgstr "
|
529 |
|
530 |
-
#: includes/
|
531 |
-
msgid "
|
532 |
-
msgstr "
|
533 |
|
534 |
-
#: includes/
|
535 |
-
msgid "
|
536 |
-
msgstr "
|
537 |
|
538 |
-
#: includes/
|
539 |
-
|
540 |
-
|
541 |
-
msgstr "הפעל חבילה %s"
|
542 |
|
543 |
-
#: includes/
|
544 |
-
|
545 |
-
|
546 |
-
msgstr "נשארו %s"
|
547 |
|
548 |
-
#: includes/
|
549 |
-
msgid "
|
550 |
-
msgstr "
|
551 |
|
552 |
-
#: includes/
|
553 |
-
msgid "
|
554 |
-
msgstr "
|
555 |
|
556 |
-
#: includes/
|
557 |
-
msgid "
|
558 |
-
msgstr "
|
559 |
|
560 |
-
#: includes/
|
561 |
-
msgid "
|
562 |
-
msgstr "
|
563 |
|
564 |
-
#: includes/
|
565 |
-
|
566 |
-
|
|
|
567 |
|
568 |
-
#: includes/
|
569 |
-
msgid "
|
570 |
-
msgstr "
|
571 |
|
572 |
-
#: includes/
|
573 |
-
msgid "
|
574 |
-
msgstr "
|
575 |
|
576 |
-
#: includes/
|
577 |
-
msgid "
|
578 |
-
msgstr "
|
579 |
|
580 |
-
#: includes/
|
581 |
-
msgid "
|
582 |
-
msgstr "
|
583 |
|
584 |
-
#: includes/
|
585 |
-
msgid "
|
586 |
-
msgstr "
|
587 |
|
588 |
-
#: includes/
|
589 |
-
msgid "
|
590 |
-
msgstr "
|
591 |
|
592 |
-
#: includes/
|
593 |
-
msgid "
|
594 |
-
msgstr "
|
595 |
|
596 |
-
#: includes/
|
597 |
-
msgid "
|
598 |
-
msgstr "
|
599 |
|
600 |
-
#: includes/
|
601 |
-
|
602 |
-
|
|
|
603 |
|
604 |
-
#: includes/
|
605 |
-
msgid "
|
606 |
-
msgstr "
|
607 |
|
608 |
-
#: includes/
|
609 |
-
|
610 |
-
|
|
|
611 |
|
612 |
-
#: includes/
|
613 |
-
msgid "
|
614 |
-
msgstr "
|
615 |
|
616 |
-
#: includes/
|
617 |
-
msgid "
|
618 |
-
msgstr "
|
619 |
|
620 |
-
#: includes/
|
621 |
-
msgid "
|
622 |
-
msgstr "
|
623 |
|
624 |
-
#: includes/
|
625 |
-
|
626 |
-
|
|
|
627 |
|
628 |
-
#: includes/
|
629 |
-
msgid "
|
630 |
-
msgstr "
|
631 |
|
632 |
-
#: includes/
|
633 |
-
msgid "
|
634 |
-
msgstr "
|
635 |
|
636 |
-
#: includes/
|
637 |
-
|
638 |
-
|
|
|
639 |
|
640 |
-
#: includes/
|
641 |
-
msgid "
|
642 |
-
msgstr "
|
643 |
|
644 |
-
#: includes/
|
645 |
-
msgid "
|
646 |
-
msgstr "
|
647 |
|
648 |
-
#: includes/
|
649 |
-
msgid "
|
650 |
-
msgstr "
|
651 |
|
652 |
-
#: includes/
|
653 |
-
msgid "
|
654 |
-
msgstr "
|
655 |
|
656 |
-
#: includes/
|
657 |
-
msgid "
|
658 |
-
msgstr "
|
659 |
|
660 |
-
#: includes/
|
661 |
-
msgid "
|
662 |
-
msgstr "
|
663 |
|
664 |
-
#: includes/
|
665 |
-
msgid "
|
666 |
-
msgstr "
|
667 |
|
668 |
-
#: includes/
|
669 |
-
msgid "
|
670 |
-
msgstr "
|
671 |
|
672 |
-
#: includes/
|
673 |
-
|
674 |
-
|
|
|
|
|
675 |
|
676 |
-
#: includes/
|
677 |
-
msgid "
|
678 |
-
msgstr "
|
679 |
|
680 |
-
#: includes/
|
681 |
-
|
682 |
-
|
683 |
-
msgstr "Other"
|
684 |
|
685 |
-
#: includes/
|
686 |
-
msgid "
|
687 |
-
msgstr "
|
688 |
|
689 |
-
#: includes/
|
690 |
-
msgid "
|
691 |
-
msgstr "
|
692 |
|
693 |
-
#: includes/
|
694 |
-
msgid "
|
695 |
-
msgstr "
|
696 |
|
697 |
-
#: includes/
|
698 |
-
msgid "
|
699 |
-
msgstr "
|
700 |
|
701 |
-
#: includes/
|
702 |
-
msgid "
|
703 |
-
msgstr "
|
704 |
|
705 |
-
#: includes/
|
706 |
-
msgid "
|
707 |
-
msgstr "
|
708 |
|
709 |
-
#: includes/
|
710 |
-
msgid "
|
711 |
-
msgstr "
|
712 |
|
713 |
-
#: includes/
|
714 |
-
|
715 |
-
|
|
|
716 |
|
717 |
-
#: includes/
|
718 |
-
msgid "
|
719 |
-
msgstr "
|
720 |
|
721 |
-
#: includes/
|
722 |
-
|
723 |
-
|
|
|
724 |
|
725 |
-
#: includes/
|
726 |
-
|
727 |
-
|
|
|
728 |
|
729 |
-
#: includes/
|
730 |
-
msgid "
|
731 |
-
msgstr "
|
732 |
|
733 |
-
#: includes/
|
734 |
-
msgid "
|
735 |
-
msgstr "
|
736 |
|
737 |
-
#: includes/
|
738 |
-
msgid "
|
739 |
-
msgstr "
|
740 |
|
741 |
-
#: includes/
|
742 |
-
|
743 |
-
|
|
|
744 |
|
745 |
-
#: includes/
|
746 |
-
msgctxt "
|
747 |
-
msgid "
|
748 |
-
msgstr "
|
749 |
|
750 |
-
#: includes/
|
751 |
-
msgctxt "
|
752 |
-
msgid "
|
753 |
-
msgstr "
|
754 |
|
755 |
-
#: includes/
|
756 |
-
|
757 |
-
|
|
|
758 |
|
759 |
-
#: includes/
|
760 |
-
|
761 |
-
|
|
|
762 |
|
763 |
-
#: includes/
|
764 |
-
|
765 |
-
|
|
|
766 |
|
767 |
-
#: includes/
|
768 |
-
|
769 |
-
|
|
|
770 |
|
771 |
-
#: includes/
|
772 |
-
|
773 |
-
|
|
|
774 |
|
775 |
-
#: includes/
|
776 |
-
msgid "
|
777 |
-
msgstr "
|
778 |
|
779 |
-
#: includes/
|
780 |
-
|
781 |
-
|
|
|
782 |
|
783 |
-
#: includes/
|
784 |
-
|
785 |
-
|
|
|
786 |
|
787 |
-
#: includes/
|
788 |
-
|
789 |
-
|
|
|
|
|
790 |
|
791 |
-
#: includes/
|
792 |
-
|
793 |
-
|
|
|
794 |
|
795 |
-
#: includes/
|
796 |
-
msgid "
|
797 |
-
msgstr "
|
798 |
|
799 |
-
#: includes/
|
800 |
-
|
801 |
-
|
|
|
|
|
|
|
802 |
|
803 |
-
#: includes/
|
804 |
-
|
805 |
-
|
|
|
806 |
|
807 |
-
#: includes/
|
808 |
-
|
809 |
-
|
|
|
810 |
|
811 |
-
#: includes/
|
812 |
-
msgid "
|
813 |
-
msgstr "
|
814 |
|
815 |
-
#: includes/
|
816 |
-
msgid "
|
817 |
-
msgstr "
|
818 |
|
819 |
-
#: includes/
|
820 |
-
msgid "
|
821 |
-
msgstr "
|
822 |
|
823 |
-
#: includes/
|
824 |
-
|
825 |
-
|
|
|
|
|
826 |
|
827 |
-
#: includes/
|
828 |
-
|
829 |
-
|
|
|
|
|
830 |
|
831 |
-
#: includes/
|
832 |
-
|
833 |
-
|
|
|
834 |
|
835 |
-
#: includes/
|
836 |
-
|
837 |
-
|
|
|
838 |
|
839 |
-
#: includes/
|
840 |
-
|
841 |
-
|
842 |
-
msgstr "מפעיל"
|
843 |
|
844 |
-
#: includes/
|
845 |
-
|
846 |
-
|
847 |
-
msgstr "שולח דוא\"ל"
|
848 |
|
849 |
-
#: includes/
|
850 |
-
|
851 |
-
|
852 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
853 |
|
854 |
-
#:
|
855 |
-
msgctxt "
|
856 |
-
msgid "
|
857 |
-
msgstr "
|
858 |
|
859 |
-
#:
|
860 |
-
|
861 |
-
|
862 |
-
msgstr "דלג"
|
863 |
|
864 |
-
#:
|
865 |
-
msgid "
|
866 |
-
msgstr "
|
867 |
|
868 |
-
#:
|
869 |
-
msgid "
|
870 |
-
msgstr "
|
871 |
|
872 |
-
#:
|
873 |
-
msgid "
|
874 |
-
msgstr "
|
875 |
|
876 |
-
#:
|
877 |
-
msgid "
|
878 |
-
msgstr "
|
879 |
|
880 |
-
#:
|
881 |
-
|
882 |
-
|
|
|
883 |
|
884 |
-
#:
|
885 |
-
|
886 |
-
|
|
|
887 |
|
888 |
-
#:
|
889 |
-
|
890 |
-
|
|
|
891 |
|
892 |
-
#:
|
893 |
-
msgid "
|
894 |
-
msgstr "
|
895 |
|
896 |
-
#:
|
897 |
-
msgid "
|
898 |
-
msgstr "
|
899 |
|
900 |
-
#:
|
901 |
-
msgid "
|
902 |
-
msgstr "
|
903 |
|
904 |
-
#:
|
905 |
-
msgid "
|
906 |
-
msgstr "
|
907 |
|
908 |
-
#:
|
909 |
-
|
910 |
-
|
|
|
911 |
|
912 |
-
#:
|
913 |
-
msgid "
|
914 |
-
msgstr "
|
915 |
|
916 |
-
#:
|
917 |
-
msgid "
|
918 |
-
msgstr "
|
919 |
|
920 |
-
#:
|
921 |
-
msgid "
|
922 |
-
msgstr "
|
923 |
|
924 |
-
#:
|
925 |
-
msgid "
|
926 |
-
msgstr "
|
927 |
|
928 |
-
#:
|
929 |
-
msgid "
|
930 |
-
msgstr "
|
931 |
|
932 |
-
#:
|
933 |
-
|
934 |
-
|
|
|
935 |
|
936 |
-
#:
|
937 |
-
msgid "
|
938 |
-
msgstr "
|
939 |
|
940 |
-
#:
|
941 |
-
|
942 |
-
|
|
|
943 |
|
944 |
-
#:
|
945 |
-
|
946 |
-
|
|
|
947 |
|
948 |
-
#:
|
949 |
-
|
950 |
-
|
951 |
-
|
|
|
|
|
952 |
|
953 |
-
#:
|
954 |
-
msgctxt "as
|
955 |
-
msgid "
|
956 |
-
msgstr "
|
957 |
|
958 |
-
#:
|
959 |
-
|
960 |
-
|
961 |
-
msgstr "דיבוג"
|
962 |
|
963 |
-
#:
|
964 |
-
msgid "
|
965 |
-
msgstr "
|
966 |
|
967 |
-
#:
|
968 |
-
|
969 |
-
|
970 |
-
msgstr "מחובר"
|
971 |
|
972 |
-
#:
|
973 |
-
|
974 |
-
|
975 |
-
msgstr "חסום"
|
976 |
|
977 |
-
#:
|
978 |
-
msgctxt "
|
979 |
-
msgid "
|
980 |
-
msgstr "
|
981 |
|
982 |
-
#:
|
983 |
-
|
984 |
-
|
985 |
-
msgstr "SDK"
|
986 |
|
987 |
-
#:
|
988 |
-
|
989 |
-
|
990 |
-
msgstr "גרסאות SDK"
|
991 |
|
992 |
-
#:
|
993 |
-
|
994 |
-
|
995 |
-
msgstr "נתיב התוסף"
|
996 |
|
997 |
-
#:
|
998 |
-
|
999 |
-
|
1000 |
-
|
|
|
1001 |
|
1002 |
-
#:
|
1003 |
-
msgid "
|
1004 |
-
msgstr "
|
1005 |
|
1006 |
-
#:
|
1007 |
-
msgid "
|
1008 |
-
msgstr "
|
1009 |
|
1010 |
-
#:
|
1011 |
-
msgid "
|
1012 |
-
msgstr "
|
1013 |
|
1014 |
-
#:
|
1015 |
-
msgid "
|
1016 |
-
msgstr "
|
1017 |
|
1018 |
-
#:
|
1019 |
-
msgid "
|
1020 |
-
msgstr "
|
1021 |
|
1022 |
-
#:
|
1023 |
-
msgid "
|
1024 |
-
msgstr "
|
1025 |
|
1026 |
-
#:
|
1027 |
-
msgid "
|
1028 |
-
msgstr "
|
1029 |
|
1030 |
-
#:
|
1031 |
-
msgid "
|
1032 |
-
msgstr "
|
1033 |
|
1034 |
-
#:
|
1035 |
-
msgid "
|
1036 |
-
msgstr "
|
1037 |
|
1038 |
-
#:
|
1039 |
-
msgid "
|
1040 |
-
msgstr "
|
1041 |
|
1042 |
-
#:
|
1043 |
-
msgid "
|
1044 |
-
msgstr "
|
1045 |
|
1046 |
-
#:
|
1047 |
-
|
1048 |
-
|
|
|
1049 |
|
1050 |
-
#:
|
1051 |
-
msgid "
|
1052 |
-
msgstr "
|
1053 |
|
1054 |
-
#:
|
1055 |
-
msgid "
|
1056 |
-
msgstr "
|
1057 |
|
1058 |
-
#:
|
1059 |
-
msgid "
|
1060 |
-
msgstr "
|
1061 |
|
1062 |
-
#:
|
1063 |
-
msgid "
|
1064 |
-
msgstr "
|
1065 |
|
1066 |
-
#:
|
1067 |
-
msgid "
|
1068 |
-
msgstr "
|
1069 |
|
1070 |
-
#:
|
1071 |
-
|
1072 |
-
|
|
|
1073 |
|
1074 |
-
#:
|
1075 |
-
msgid "
|
1076 |
-
msgstr "
|
1077 |
|
1078 |
-
#:
|
1079 |
-
msgid "
|
1080 |
-
msgstr "
|
1081 |
|
1082 |
-
#:
|
1083 |
-
msgid "
|
1084 |
-
msgstr "
|
1085 |
|
1086 |
-
#:
|
1087 |
-
msgid "
|
1088 |
-
msgstr "
|
1089 |
|
1090 |
-
#:
|
1091 |
-
msgid "
|
1092 |
-
msgstr "
|
1093 |
|
1094 |
-
#:
|
1095 |
-
|
1096 |
-
|
1097 |
-
msgstr "מזל טוב"
|
1098 |
|
1099 |
-
#:
|
1100 |
-
|
1101 |
-
|
1102 |
-
msgstr "אופס"
|
1103 |
|
1104 |
-
#:
|
1105 |
-
|
1106 |
-
|
1107 |
-
msgstr "יששש"
|
1108 |
|
1109 |
-
#:
|
1110 |
-
|
1111 |
-
|
1112 |
-
msgstr "W00t"
|
1113 |
|
1114 |
-
#:
|
1115 |
-
|
1116 |
-
|
1117 |
-
msgstr "מעולה"
|
1118 |
|
1119 |
-
#:
|
1120 |
-
|
1121 |
-
|
1122 |
-
msgstr "הממ"
|
1123 |
|
1124 |
-
#:
|
1125 |
-
msgid "
|
1126 |
-
msgstr "
|
1127 |
|
1128 |
-
#:
|
1129 |
-
|
1130 |
-
|
1131 |
-
msgstr "היי"
|
1132 |
|
1133 |
-
#:
|
1134 |
-
|
1135 |
-
|
1136 |
-
msgstr "לתשמות לבך"
|
1137 |
|
1138 |
-
#:
|
1139 |
-
msgid "
|
1140 |
-
msgstr "
|
1141 |
|
1142 |
-
#:
|
1143 |
-
msgid "
|
1144 |
-
msgstr "
|
1145 |
|
1146 |
-
#:
|
1147 |
-
|
1148 |
-
|
|
|
1149 |
|
1150 |
-
#:
|
1151 |
-
|
1152 |
-
|
|
|
1153 |
|
1154 |
-
#:
|
1155 |
-
msgid "
|
1156 |
-
msgstr "
|
1157 |
|
1158 |
-
#:
|
1159 |
-
|
1160 |
-
|
|
|
1161 |
|
1162 |
-
#:
|
1163 |
-
|
1164 |
-
|
|
|
1165 |
|
1166 |
-
#:
|
1167 |
-
msgid "
|
1168 |
-
msgstr "
|
1169 |
|
1170 |
-
#:
|
1171 |
-
|
1172 |
-
|
|
|
1173 |
|
1174 |
-
#:
|
1175 |
-
msgid "
|
1176 |
-
msgstr "
|
1177 |
|
1178 |
-
#:
|
1179 |
-
msgid "
|
1180 |
-
msgstr "
|
1181 |
|
1182 |
-
#:
|
1183 |
-
msgid "
|
1184 |
-
msgstr "
|
1185 |
|
1186 |
-
#:
|
1187 |
-
msgid "
|
1188 |
-
msgstr "
|
1189 |
|
1190 |
-
#:
|
1191 |
-
msgid "
|
1192 |
-
msgstr "
|
1193 |
|
1194 |
-
#:
|
1195 |
-
msgid "
|
1196 |
-
msgstr "
|
1197 |
|
1198 |
-
#:
|
1199 |
-
msgid "
|
1200 |
-
msgstr "
|
1201 |
|
1202 |
-
#:
|
1203 |
-
msgid "
|
1204 |
-
msgstr "
|
1205 |
|
1206 |
-
#:
|
1207 |
-
msgid "
|
1208 |
-
msgstr "
|
1209 |
|
1210 |
-
#:
|
1211 |
-
|
1212 |
-
|
|
|
1213 |
|
1214 |
-
#:
|
1215 |
-
msgid "
|
1216 |
-
msgstr "
|
1217 |
|
1218 |
-
#:
|
1219 |
-
msgid "
|
1220 |
-
msgstr "
|
1221 |
|
1222 |
-
#:
|
1223 |
-
|
1224 |
-
|
1225 |
-
msgstr "ההרחבה %s נרכשה בהצלחה."
|
1226 |
|
1227 |
-
#:
|
1228 |
-
msgid "
|
1229 |
-
msgstr "
|
1230 |
|
1231 |
-
#:
|
1232 |
-
msgid "
|
1233 |
-
msgstr "
|
1234 |
|
1235 |
-
#:
|
1236 |
-
|
1237 |
-
|
|
|
1238 |
|
1239 |
-
#:
|
1240 |
-
msgid "
|
1241 |
-
msgstr "
|
1242 |
|
1243 |
-
#:
|
1244 |
-
|
1245 |
-
|
|
|
1246 |
|
1247 |
-
#:
|
1248 |
-
msgid "
|
1249 |
-
msgstr "
|
1250 |
|
1251 |
-
#:
|
1252 |
-
|
1253 |
-
|
|
|
1254 |
|
1255 |
-
#:
|
1256 |
-
|
1257 |
-
|
|
|
1258 |
|
1259 |
-
#:
|
1260 |
-
msgid "
|
1261 |
-
msgstr "
|
1262 |
|
1263 |
-
#:
|
1264 |
-
msgid "
|
1265 |
-
msgstr "
|
1266 |
|
1267 |
-
#:
|
1268 |
-
|
1269 |
-
|
|
|
1270 |
|
1271 |
-
#:
|
1272 |
-
msgid "
|
1273 |
-
msgstr "
|
1274 |
|
1275 |
-
#:
|
1276 |
-
msgid "
|
1277 |
-
msgstr "
|
1278 |
|
1279 |
-
#:
|
1280 |
-
msgid "
|
1281 |
-
msgstr "
|
1282 |
|
1283 |
-
#:
|
1284 |
-
msgid "
|
1285 |
-
msgstr "
|
1286 |
|
1287 |
-
#:
|
1288 |
-
msgid "
|
1289 |
-
msgstr "
|
1290 |
|
1291 |
-
#:
|
1292 |
-
msgid "
|
1293 |
-
msgstr "
|
1294 |
|
1295 |
-
#:
|
1296 |
-
msgid "
|
1297 |
-
msgstr "
|
1298 |
|
1299 |
-
#:
|
1300 |
-
|
1301 |
-
|
1302 |
-
msgstr "גרסה %s הושקה."
|
1303 |
|
1304 |
-
#:
|
1305 |
-
msgid "
|
1306 |
-
msgstr "
|
1307 |
|
1308 |
-
#:
|
1309 |
-
msgctxt "
|
1310 |
-
msgid "
|
1311 |
-
msgstr "
|
1312 |
|
1313 |
-
#:
|
1314 |
-
msgid "
|
1315 |
-
msgstr "
|
1316 |
|
1317 |
-
#:
|
1318 |
-
|
1319 |
-
|
1320 |
-
msgstr "התחלת ניסיון חינם"
|
1321 |
|
1322 |
-
#:
|
1323 |
-
msgid "
|
1324 |
-
msgstr "
|
1325 |
|
1326 |
-
#:
|
1327 |
-
|
1328 |
-
|
|
|
1329 |
|
1330 |
-
#:
|
1331 |
-
|
1332 |
-
|
|
|
1333 |
|
1334 |
-
#:
|
1335 |
-
msgid "
|
1336 |
-
msgstr "
|
1337 |
|
1338 |
-
#:
|
1339 |
-
msgid "
|
1340 |
-
msgstr "
|
1341 |
|
1342 |
-
#:
|
1343 |
-
|
1344 |
-
|
|
|
1345 |
|
1346 |
-
#:
|
1347 |
-
msgid "
|
1348 |
-
msgstr "
|
1349 |
|
1350 |
-
#:
|
1351 |
-
msgid "
|
1352 |
-
msgstr "
|
1353 |
|
1354 |
-
#:
|
1355 |
-
msgid "
|
1356 |
-
msgstr "
|
1357 |
|
1358 |
-
#:
|
1359 |
-
msgid "
|
1360 |
-
msgstr "
|
1361 |
|
1362 |
-
#:
|
1363 |
-
msgid "
|
1364 |
-
msgstr "
|
1365 |
|
1366 |
-
#: includes/
|
1367 |
-
|
1368 |
-
|
|
|
1369 |
|
1370 |
-
#: includes/
|
1371 |
-
|
1372 |
-
|
|
|
|
|
1373 |
|
1374 |
-
#: includes/
|
1375 |
-
msgid "
|
1376 |
-
msgstr "
|
1377 |
|
1378 |
-
#: includes/
|
1379 |
-
msgid "
|
1380 |
-
msgstr "
|
1381 |
|
1382 |
-
#:
|
1383 |
-
|
1384 |
-
|
|
|
1385 |
|
1386 |
-
#:
|
1387 |
-
msgid "
|
1388 |
-
msgstr "
|
1389 |
|
1390 |
-
#:
|
1391 |
-
msgid "
|
1392 |
-
msgstr "
|
1393 |
|
1394 |
-
#:
|
1395 |
-
msgid "
|
1396 |
-
msgstr "
|
1397 |
|
1398 |
-
#:
|
1399 |
-
|
1400 |
-
|
|
|
1401 |
|
1402 |
-
#:
|
1403 |
-
msgid "
|
1404 |
-
msgstr "
|
1405 |
|
1406 |
-
#:
|
1407 |
-
|
1408 |
-
|
1409 |
-
msgstr "%s מחייב גישה ל-API שלנו."
|
1410 |
|
1411 |
-
#:
|
1412 |
-
msgid "
|
1413 |
-
msgstr "
|
1414 |
|
1415 |
-
#:
|
1416 |
-
msgid "
|
1417 |
-
msgstr "
|
1418 |
|
1419 |
-
#:
|
1420 |
-
msgid "
|
1421 |
-
msgstr "
|
1422 |
|
1423 |
-
#:
|
1424 |
-
msgid "
|
1425 |
-
msgstr "
|
1426 |
|
1427 |
-
#:
|
1428 |
-
msgid "
|
1429 |
-
msgstr "
|
1430 |
|
1431 |
-
#:
|
1432 |
-
msgid "
|
1433 |
-
msgstr "
|
1434 |
|
1435 |
-
#:
|
1436 |
-
msgid "
|
1437 |
-
msgstr "
|
1438 |
|
1439 |
-
#:
|
1440 |
-
msgid "
|
1441 |
-
msgstr "
|
1442 |
|
1443 |
-
#:
|
1444 |
-
msgid "
|
1445 |
-
msgstr "
|
1446 |
|
1447 |
-
#:
|
1448 |
-
msgid "
|
1449 |
-
msgstr "
|
1450 |
|
1451 |
-
#:
|
1452 |
-
msgid "
|
1453 |
-
msgstr "
|
1454 |
|
1455 |
-
#:
|
1456 |
-
msgid "
|
1457 |
-
msgstr "
|
1458 |
|
1459 |
-
#:
|
1460 |
-
msgid "
|
1461 |
-
msgstr "
|
1462 |
|
1463 |
-
#:
|
1464 |
-
|
1465 |
-
|
|
|
1466 |
|
1467 |
-
#:
|
1468 |
-
msgid "
|
1469 |
-
msgstr "
|
1470 |
|
1471 |
-
#:
|
1472 |
-
msgid "
|
1473 |
-
msgstr "
|
1474 |
|
1475 |
-
#:
|
1476 |
-
|
1477 |
-
|
1478 |
-
msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
|
1479 |
|
1480 |
-
#:
|
1481 |
-
msgid "
|
1482 |
-
msgstr "
|
1483 |
|
1484 |
-
#:
|
1485 |
-
msgid "
|
1486 |
-
msgstr "
|
1487 |
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
|
|
|
|
1491 |
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
|
|
|
|
1495 |
|
1496 |
-
#:
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
|
|
1500 |
|
1501 |
-
#:
|
1502 |
-
|
1503 |
-
|
1504 |
-
msgstr "ההרחבה %s אינה יכולה לפעול ללא התוסף."
|
1505 |
|
1506 |
-
#:
|
1507 |
-
|
1508 |
-
|
1509 |
-
msgstr "הפעלת %s הושלמה בהצלחה."
|
1510 |
|
1511 |
-
#:
|
1512 |
-
|
1513 |
-
msgid "
|
1514 |
-
msgstr "
|
1515 |
|
1516 |
-
#:
|
1517 |
-
msgid "
|
1518 |
-
msgstr "
|
1519 |
|
1520 |
-
#:
|
1521 |
-
msgid "
|
1522 |
-
msgstr "
|
1523 |
|
1524 |
-
#:
|
1525 |
-
msgid "
|
1526 |
-
msgstr "
|
1527 |
|
1528 |
-
#:
|
1529 |
-
msgid "
|
1530 |
-
msgstr "
|
1531 |
|
1532 |
-
#:
|
1533 |
-
|
1534 |
-
|
1535 |
-
msgstr "חודשי"
|
1536 |
|
1537 |
-
#:
|
1538 |
-
|
1539 |
-
|
1540 |
-
msgstr "חודשים"
|
1541 |
|
1542 |
-
#:
|
1543 |
-
|
1544 |
-
|
1545 |
-
msgstr "שנתי"
|
1546 |
|
1547 |
-
#:
|
1548 |
-
|
1549 |
-
|
1550 |
-
msgstr "שנתי"
|
1551 |
|
1552 |
-
#:
|
1553 |
-
|
1554 |
-
|
1555 |
-
msgstr "פעם אחת"
|
1556 |
|
1557 |
-
#:
|
1558 |
-
|
1559 |
-
|
1560 |
-
msgstr "שנה"
|
1561 |
|
1562 |
-
#:
|
1563 |
-
msgid "
|
1564 |
-
msgstr "
|
1565 |
|
1566 |
-
#:
|
1567 |
-
|
1568 |
-
|
1569 |
-
msgstr "הכי טוב"
|
1570 |
|
1571 |
-
#:
|
1572 |
-
|
1573 |
-
|
1574 |
-
msgstr "מחוייב על בסיס %s"
|
1575 |
|
1576 |
-
#:
|
1577 |
-
|
1578 |
-
|
1579 |
-
msgstr "שמירת %s"
|
1580 |
|
1581 |
-
#:
|
1582 |
-
msgid "
|
1583 |
-
msgstr "
|
1584 |
|
1585 |
-
#:
|
1586 |
-
|
1587 |
-
|
1588 |
-
msgstr "אשר והתחל תקופת ניסיון"
|
1589 |
|
1590 |
-
#:
|
1591 |
-
msgid "
|
1592 |
-
msgstr "
|
1593 |
|
1594 |
-
#:
|
1595 |
-
msgid "
|
1596 |
-
msgstr "
|
1597 |
|
1598 |
-
#:
|
1599 |
-
msgid "
|
1600 |
-
msgstr "
|
1601 |
|
1602 |
-
#:
|
1603 |
-
msgid "
|
1604 |
-
msgstr "
|
1605 |
|
1606 |
-
#:
|
1607 |
-
msgid "
|
1608 |
-
msgstr "
|
1609 |
|
1610 |
-
#:
|
1611 |
-
msgid "
|
1612 |
-
msgstr "
|
1613 |
|
1614 |
-
#:
|
1615 |
-
msgid "
|
1616 |
-
msgstr "
|
1617 |
|
1618 |
-
#:
|
1619 |
-
msgid "
|
1620 |
-
msgstr "
|
1621 |
|
1622 |
-
#:
|
1623 |
-
msgid "
|
1624 |
-
msgstr "
|
1625 |
|
1626 |
-
#:
|
1627 |
-
msgid "
|
1628 |
-
msgstr "
|
1629 |
|
1630 |
-
#:
|
1631 |
-
msgid "
|
1632 |
-
msgstr "
|
1633 |
|
1634 |
-
#:
|
1635 |
-
msgid "
|
1636 |
-
msgstr "
|
1637 |
|
1638 |
-
#:
|
1639 |
-
msgid "
|
1640 |
-
msgstr "
|
1641 |
|
1642 |
-
#:
|
1643 |
-
msgid "
|
1644 |
-
msgstr "
|
1645 |
|
1646 |
-
#:
|
1647 |
-
msgid "
|
1648 |
-
msgstr "
|
1649 |
|
1650 |
-
#:
|
1651 |
-
msgid "
|
1652 |
-
msgstr "
|
1653 |
|
1654 |
-
#:
|
1655 |
-
msgid "
|
1656 |
-
msgstr "
|
1657 |
|
1658 |
-
#:
|
1659 |
-
msgid "
|
1660 |
-
msgstr "
|
1661 |
|
1662 |
-
#:
|
1663 |
-
msgid "
|
1664 |
-
msgstr "
|
1665 |
|
1666 |
-
#:
|
1667 |
-
msgid "
|
1668 |
-
msgstr "
|
1669 |
|
1670 |
-
#:
|
1671 |
-
msgid "
|
1672 |
-
msgstr "
|
1673 |
|
1674 |
-
#:
|
1675 |
-
msgid "
|
1676 |
-
msgstr "
|
1677 |
|
1678 |
-
#:
|
1679 |
-
msgid "
|
1680 |
-
msgstr "
|
1681 |
|
1682 |
-
#:
|
1683 |
-
msgid "
|
1684 |
-
msgstr "
|
1685 |
|
1686 |
-
#:
|
1687 |
-
msgid "
|
1688 |
-
msgstr "
|
1689 |
|
1690 |
-
#:
|
1691 |
-
msgid "
|
1692 |
-
msgstr "
|
1693 |
|
1694 |
-
#:
|
1695 |
-
msgid "
|
1696 |
-
msgstr "
|
1697 |
|
1698 |
-
#:
|
1699 |
-
msgid "
|
1700 |
-
msgstr "
|
1701 |
|
1702 |
-
#:
|
1703 |
-
|
1704 |
-
|
1705 |
-
msgstr "תיאור"
|
1706 |
|
1707 |
-
#:
|
1708 |
-
|
1709 |
-
|
1710 |
-
msgstr "התקנה"
|
1711 |
|
1712 |
-
#:
|
1713 |
-
|
1714 |
-
|
1715 |
-
msgstr "שאלות נפוצות"
|
1716 |
|
1717 |
-
#:
|
1718 |
-
msgctxt "
|
1719 |
-
msgid "
|
1720 |
-
msgstr "
|
1721 |
|
1722 |
-
#:
|
1723 |
-
msgctxt "
|
1724 |
-
msgid "
|
1725 |
-
msgstr "
|
1726 |
|
1727 |
-
#:
|
1728 |
-
|
1729 |
-
|
1730 |
-
msgstr "היערות נוספות"
|
1731 |
|
1732 |
-
#:
|
1733 |
-
msgid "%s
|
1734 |
-
msgstr "
|
1735 |
|
1736 |
-
#:
|
1737 |
-
msgid "%s
|
1738 |
-
msgstr "%s
|
1739 |
|
1740 |
-
#:
|
1741 |
-
msgid "
|
1742 |
-
msgstr "
|
1743 |
|
1744 |
-
#:
|
1745 |
-
msgid "
|
1746 |
-
msgstr "
|
1747 |
|
1748 |
-
#:
|
1749 |
-
msgid "%s
|
1750 |
-
msgstr "
|
1751 |
|
1752 |
-
#:
|
1753 |
-
msgid "%s
|
1754 |
-
msgstr "%s
|
1755 |
|
1756 |
-
#:
|
1757 |
-
msgid "
|
1758 |
-
msgstr "
|
1759 |
|
1760 |
-
#:
|
1761 |
-
|
1762 |
-
|
|
|
1763 |
|
1764 |
-
#:
|
1765 |
-
msgid "
|
1766 |
-
msgstr "
|
1767 |
|
1768 |
-
#:
|
1769 |
-
|
1770 |
-
|
1771 |
-
msgstr "מחבר:"
|
1772 |
|
1773 |
-
#:
|
1774 |
-
msgid "
|
1775 |
-
msgstr "
|
1776 |
|
1777 |
-
#:
|
1778 |
-
msgid "
|
1779 |
-
msgstr "
|
1780 |
|
1781 |
-
#:
|
1782 |
-
msgid "
|
1783 |
-
msgstr "
|
1784 |
|
1785 |
-
#:
|
1786 |
-
msgid "
|
1787 |
-
msgstr "
|
1788 |
|
1789 |
-
#:
|
1790 |
-
msgid "
|
1791 |
-
msgstr "
|
1792 |
|
1793 |
-
#:
|
1794 |
-
msgid "
|
1795 |
-
msgstr "
|
1796 |
|
1797 |
-
#:
|
1798 |
-
msgid "
|
1799 |
-
msgstr "
|
1800 |
|
1801 |
-
#:
|
1802 |
-
msgid "
|
1803 |
-
msgstr "
|
1804 |
|
1805 |
-
#:
|
1806 |
-
msgid "
|
1807 |
-
msgstr "
|
1808 |
|
1809 |
-
#:
|
1810 |
-
msgid "
|
1811 |
-
msgstr "
|
1812 |
|
1813 |
-
#:
|
1814 |
-
msgid "
|
1815 |
-
msgstr "
|
1816 |
|
1817 |
-
#:
|
1818 |
-
msgid "
|
1819 |
-
msgstr "
|
1820 |
|
1821 |
-
#:
|
1822 |
-
msgid "
|
1823 |
-
msgstr "
|
1824 |
|
1825 |
-
#:
|
1826 |
-
msgid "
|
1827 |
-
msgstr "
|
2 |
# This file is distributed under the same license as the freemius package.
|
3 |
# Translators:
|
4 |
# Rami Yushuvaev <r_a_m_i@hotmail.com>, 2017
|
5 |
+
# Vova Feldman <vova@freemius.com>, 2017
|
6 |
msgid ""
|
7 |
msgstr ""
|
8 |
"Project-Id-Version: WordPress SDK\n"
|
9 |
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
10 |
"POT-Creation-Date: \n"
|
11 |
+
"PO-Revision-Date: 2017-11-10 10:28+0000\n"
|
12 |
"Last-Translator: Vova Feldman <vova@freemius.com>\n"
|
13 |
+
"Language: he_IL\n"
|
14 |
+
"Language-Team: Hebrew (Israel) (http://www.transifex.com/freemius/wordpress-sdk/language/he_IL/)\n"
|
15 |
"Content-Type: text/plain; charset=UTF-8\n"
|
16 |
"Content-Transfer-Encoding: 8bit\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
"MIME-Version: 1.0\n"
|
19 |
"X-Poedit-Basepath: ..\n"
|
20 |
+
"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;fs_esc_html_inline;fs_esc_html_echo_inline;get_text_x_inline:1,2c;fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n"
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
23 |
"X-Poedit-SourceCharset: UTF-8\n"
|
24 |
|
25 |
+
#: includes/class-freemius.php:903
|
26 |
+
msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
|
27 |
+
msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
|
|
|
|
|
|
|
|
|
28 |
|
29 |
+
#: includes/class-freemius.php:905
|
30 |
+
msgid "Error"
|
31 |
+
msgstr "שגיאה"
|
32 |
|
33 |
+
#: includes/class-freemius.php:1155
|
34 |
+
msgid "I found a better %s"
|
35 |
+
msgstr "I found a better %s"
|
36 |
|
37 |
+
#: includes/class-freemius.php:1157
|
38 |
+
msgid "What's the %s's name?"
|
39 |
+
msgstr "What's the %s's name?"
|
40 |
|
41 |
+
#: includes/class-freemius.php:1163
|
42 |
+
msgid "It's a temporary %s. I'm just debugging an issue."
|
43 |
+
msgstr "It's a temporary %s. I'm just debugging an issue."
|
44 |
|
45 |
+
#: includes/class-freemius.php:1165
|
46 |
+
msgid "Deactivation"
|
47 |
+
msgstr "דיאקטיבציה"
|
48 |
|
49 |
+
#: includes/class-freemius.php:1166
|
50 |
+
msgid "Theme Switch"
|
51 |
+
msgstr "החלפת תֵמָה"
|
52 |
|
53 |
+
#: includes/class-freemius.php1175, templates/forms/resend-key.php:24
|
54 |
+
msgid "Other"
|
55 |
+
msgstr "אחר"
|
|
|
56 |
|
57 |
+
#: includes/class-freemius.php:1183
|
58 |
+
msgid "I no longer need the %s"
|
59 |
+
msgstr "I no longer need the %s"
|
60 |
|
61 |
+
#: includes/class-freemius.php:1190
|
62 |
+
msgid "I only needed the %s for a short period"
|
63 |
+
msgstr "I only needed the %s for a short period"
|
|
|
64 |
|
65 |
+
#: includes/class-freemius.php:1196
|
66 |
+
msgid "The %s broke my site"
|
67 |
+
msgstr "ה%s הרס לי את האתר"
|
|
|
68 |
|
69 |
+
#: includes/class-freemius.php:1203
|
70 |
+
msgid "The %s suddenly stopped working"
|
71 |
+
msgstr "ה%s הפסיק פתאום לעבוד"
|
72 |
|
73 |
+
#: includes/class-freemius.php:1213
|
74 |
+
msgid "I can't pay for it anymore"
|
75 |
+
msgstr "אני לא יכול/ה להמשיך לשלם על זה"
|
|
|
76 |
|
77 |
+
#: includes/class-freemius.php:1215
|
78 |
+
msgid "What price would you feel comfortable paying?"
|
79 |
+
msgstr "מה המחיר שכן תרגיש\\י בנוח לשלם?"
|
|
|
80 |
|
81 |
+
#: includes/class-freemius.php:1221
|
82 |
+
msgid "I don't like to share my information with you"
|
83 |
+
msgstr "אני לא אוהב את הרעיון של שיתוף מידע איתכם"
|
84 |
|
85 |
+
#: includes/class-freemius.php:1242
|
86 |
+
msgid "The %s didn't work"
|
87 |
+
msgstr "ה%s לא עבד"
|
88 |
|
89 |
+
#: includes/class-freemius.php:1252
|
90 |
+
msgid "I couldn't understand how to make it work"
|
91 |
+
msgstr "לא הצלחתי להבין איך לגרום לזה לעבוד"
|
92 |
|
93 |
+
#: includes/class-freemius.php:1260
|
94 |
+
msgid "The %s is great, but I need specific feature that you don't support"
|
95 |
+
msgstr "The %s is great, but I need specific feature that you don't support"
|
96 |
|
97 |
+
#: includes/class-freemius.php:1262
|
98 |
+
msgid "What feature?"
|
99 |
+
msgstr "איזה פיטצ'ר?"
|
100 |
|
101 |
+
#: includes/class-freemius.php:1266
|
102 |
+
msgid "The %s is not working"
|
103 |
+
msgstr "ה%s לא עובד"
|
104 |
|
105 |
+
#: includes/class-freemius.php:1268
|
106 |
+
msgid "Kindly share what didn't work so we can fix it for future users..."
|
107 |
+
msgstr "אנא שתפ\\י מה לא עבד כדי שנוכל לתקן זאת עבור משתמשים עתידיים..."
|
108 |
|
109 |
+
#: includes/class-freemius.php:1272
|
110 |
+
msgid "It's not what I was looking for"
|
111 |
+
msgstr "חיפשתי משהו אחר"
|
|
|
112 |
|
113 |
+
#: includes/class-freemius.php:1274
|
114 |
+
msgid "What you've been looking for?"
|
115 |
+
msgstr "מה חיפשת?"
|
|
|
116 |
|
117 |
+
#: includes/class-freemius.php:1278
|
118 |
+
msgid "The %s didn't work as expected"
|
119 |
+
msgstr "ה%s לא עבד כמצופה"
|
|
|
120 |
|
121 |
+
#: includes/class-freemius.php:1280
|
122 |
+
msgid "What did you expect?"
|
123 |
+
msgstr "למה ציפית?"
|
|
|
124 |
|
125 |
+
#: includes/class-freemius.php1816, templates/debug.php:20
|
126 |
+
msgid "Freemius Debug"
|
127 |
+
msgstr "ניפוי תקלות פרימיוס"
|
|
|
128 |
|
129 |
+
#: includes/class-freemius.php:2379
|
130 |
+
msgid "I don't know what is cURL or how to install it, help me!"
|
131 |
+
msgstr "אין לי מושג מה זה cURL או איך להתקין אותו - אשמח לעזרה!"
|
132 |
|
133 |
+
#: includes/class-freemius.php:2381
|
134 |
+
msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
|
135 |
+
msgstr "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
|
136 |
|
137 |
+
#: includes/class-freemius.php:2388
|
138 |
+
msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
|
139 |
+
msgstr "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
|
140 |
|
141 |
+
#: includes/class-freemius.php:2490
|
142 |
+
msgid "Yes - do your thing"
|
143 |
+
msgstr "כן - בצעו את מה שצריך"
|
144 |
|
145 |
+
#: includes/class-freemius.php:2495
|
146 |
+
msgid "No - just deactivate"
|
147 |
+
msgstr "לא - פשוט כבה"
|
148 |
|
149 |
+
#: includes/class-freemius.php2540, includes/class-freemius.php3005,
|
150 |
+
#: includes/class-freemius.php3859, includes/class-freemius.php7141,
|
151 |
+
#: includes/class-freemius.php9000, includes/class-freemius.php9056,
|
152 |
+
#: includes/class-freemius.php9117, includes/class-freemius.php11014,
|
153 |
+
#: includes/class-freemius.php11025, includes/class-freemius.php11474,
|
154 |
+
#: includes/class-freemius.php11492, includes/class-freemius.php11590,
|
155 |
+
#: includes/class-freemius.php12265, templates/add-ons.php:43
|
156 |
+
msgctxt "exclamation"
|
157 |
+
msgid "Oops"
|
158 |
+
msgstr "אופס"
|
159 |
|
160 |
+
#: includes/class-freemius.php:2607
|
161 |
+
msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
|
162 |
+
msgstr "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
|
|
|
163 |
|
164 |
+
#: includes/class-freemius.php:3002
|
165 |
+
msgctxt "addonX cannot run without pluginY"
|
166 |
+
msgid "%s cannot run without %s."
|
167 |
+
msgstr "%s לא יכול לעבוד ללא %s."
|
168 |
|
169 |
+
#: includes/class-freemius.php:3003
|
170 |
+
msgctxt "addonX cannot run..."
|
171 |
+
msgid "%s cannot run without the plugin."
|
172 |
+
msgstr "ההרחבה %s אינה יכולה לפעול ללא התוסף."
|
173 |
|
174 |
+
#: includes/class-freemius.php3124, includes/class-freemius.php3149,
|
175 |
+
#: includes/class-freemius.php:11563
|
176 |
+
msgid "Unexpected API error. Please contact the %s's author with the following error."
|
177 |
+
msgstr "Unexpected API error. Please contact the %s's author with the following error."
|
178 |
|
179 |
+
#: includes/class-freemius.php:3557
|
180 |
+
msgid "Premium %s version was successfully activated."
|
181 |
+
msgstr "Premium %s version was successfully activated."
|
|
|
182 |
|
183 |
+
#: includes/class-freemius.php3559, includes/class-freemius.php:4784
|
184 |
+
msgctxt ""
|
185 |
+
msgid "W00t"
|
186 |
+
msgstr "W00t"
|
187 |
|
188 |
+
#: includes/class-freemius.php:3574
|
|
|
189 |
msgid "You have a %s license."
|
190 |
msgstr "יש לך רישיון %s."
|
191 |
|
192 |
+
#: includes/class-freemius.php3578, includes/class-freemius.php8704,
|
193 |
+
#: includes/class-freemius.php8713, includes/class-freemius.php10965,
|
194 |
+
#: includes/class-freemius.php11178, includes/class-freemius.php11240,
|
195 |
+
#: includes/class-freemius.php:11352
|
196 |
+
msgctxt "interjection expressing joy or exuberance"
|
197 |
+
msgid "Yee-haw"
|
198 |
+
msgstr "יששש"
|
199 |
|
200 |
+
#: includes/class-freemius.php:3842
|
201 |
+
msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
|
202 |
+
msgstr "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
|
|
|
203 |
|
204 |
+
#: includes/class-freemius.php:3846
|
205 |
+
msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
|
206 |
+
msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
|
|
|
207 |
|
208 |
+
#: includes/class-freemius.php3855, templates/account.php692,
|
209 |
+
#: templates/add-ons.php:99
|
210 |
+
msgid "More information about %s"
|
211 |
+
msgstr "מידע נוסף אודות %s"
|
212 |
|
213 |
+
#: includes/class-freemius.php:3856
|
214 |
msgid "Purchase License"
|
215 |
msgstr "קניית רישיון"
|
216 |
|
217 |
+
#: includes/class-freemius.php4293, templates/connect.php:136
|
218 |
+
msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
|
219 |
+
msgstr "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
|
221 |
+
#: includes/class-freemius.php:4297
|
222 |
+
msgid "start the trial"
|
223 |
+
msgstr "התחל תקופת ניסיון"
|
224 |
|
225 |
+
#: includes/class-freemius.php4298, templates/connect.php:140
|
226 |
+
msgid "complete the install"
|
227 |
+
msgstr "השלם התקנה"
|
|
|
228 |
|
229 |
+
#: includes/class-freemius.php:4377
|
230 |
msgid "You are just one step away - %s"
|
231 |
msgstr "You are just one step away - %s"
|
232 |
|
233 |
+
#: includes/class-freemius.php:4380
|
234 |
+
msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
|
235 |
msgid "Complete \"%s\" Activation Now"
|
236 |
msgstr "השלם הפעלת \"%s\" עכשיו"
|
237 |
|
238 |
+
#: includes/class-freemius.php:4394
|
239 |
msgid "We made a few tweaks to the %s, %s"
|
240 |
msgstr "We made a few tweaks to the %s, %s"
|
241 |
|
242 |
+
#: includes/class-freemius.php:4398
|
243 |
+
msgid "Opt in to make \"%s\" Better!"
|
244 |
+
msgstr "Opt in to make \"%s\" Better!"
|
245 |
|
246 |
+
#: includes/class-freemius.php:4783
|
247 |
+
msgid "The upgrade of %s was successfully completed."
|
248 |
+
msgstr "The upgrade of %s was successfully completed."
|
|
|
|
|
|
|
|
|
249 |
|
250 |
+
#: includes/class-freemius.php5868, includes/class-fs-plugin-updater.php358,
|
251 |
+
#: includes/class-fs-plugin-updater.php510,
|
252 |
+
#: includes/class-fs-plugin-updater.php516, templates/auto-installation.php:31
|
253 |
+
msgid "Add-On"
|
254 |
+
msgstr "Add-On"
|
255 |
|
256 |
+
#: includes/class-freemius.php5870, templates/debug.php303,
|
257 |
+
#: templates/debug.php:413
|
258 |
+
msgid "Plugin"
|
259 |
+
msgstr "תוסף"
|
260 |
|
261 |
+
#: includes/class-freemius.php5871, templates/debug.php303,
|
262 |
+
#: templates/debug.php413, templates/forms/deactivation/form.php:64
|
263 |
+
msgid "Theme"
|
264 |
+
msgstr "תבנית"
|
265 |
|
266 |
+
#: includes/class-freemius.php:7128
|
267 |
+
msgid "We couldn't find your email address in the system, are you sure it's the right address?"
|
268 |
+
msgstr "We couldn't find your email address in the system, are you sure it's the right address?"
|
269 |
|
270 |
+
#: includes/class-freemius.php:7130
|
271 |
+
msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
|
272 |
+
msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
|
|
|
273 |
|
274 |
+
#: includes/class-freemius.php:7339
|
275 |
+
msgid "Account is pending activation."
|
276 |
+
msgstr "Account is pending activation."
|
|
|
277 |
|
278 |
+
#: includes/class-freemius.php:8688
|
279 |
+
msgctxt "pluginX activation was successfully..."
|
280 |
+
msgid "%s activation was successfully completed."
|
281 |
+
msgstr "הפעלת %s הושלמה בהצלחה."
|
282 |
|
283 |
+
#: includes/class-freemius.php:8700
|
284 |
+
msgid "Your account was successfully activated with the %s plan."
|
285 |
+
msgstr "חשבונך הופעל בהצלחה עם חבילת %s."
|
286 |
|
287 |
+
#: includes/class-freemius.php8709, includes/class-freemius.php:11236
|
288 |
+
msgid "Your trial has been successfully started."
|
289 |
+
msgstr "הניסיון שלך הופעל בהצלחה."
|
290 |
|
291 |
+
#: includes/class-freemius.php8998, includes/class-freemius.php9054,
|
292 |
+
#: includes/class-freemius.php:9115
|
293 |
+
msgid "Couldn't activate %s."
|
294 |
+
msgstr "לא ניתן להפעיל את %s."
|
295 |
|
296 |
+
#: includes/class-freemius.php8999, includes/class-freemius.php9055,
|
297 |
+
#: includes/class-freemius.php:9116
|
298 |
+
msgid "Please contact us with the following message:"
|
299 |
+
msgstr "אנא צור איתנו קשר יחד עם ההודעה הבאה:"
|
300 |
|
301 |
+
#: includes/class-freemius.php9374, includes/class-freemius.php:13194
|
302 |
+
msgid "Upgrade"
|
303 |
+
msgstr "שדרג"
|
304 |
|
305 |
+
#: includes/class-freemius.php:9380
|
306 |
+
msgid "Start Trial"
|
307 |
+
msgstr "התחל תקופת ניסיון"
|
|
|
308 |
|
309 |
+
#: includes/class-freemius.php:9382
|
310 |
+
msgid "Pricing"
|
311 |
+
msgstr "מחירון"
|
312 |
|
313 |
+
#: includes/class-freemius.php9422, includes/class-freemius.php:9424
|
314 |
+
msgid "Affiliation"
|
315 |
+
msgstr "אפיליאציה"
|
316 |
|
317 |
+
#: includes/class-freemius.php9444, includes/class-freemius.php9446,
|
318 |
+
#: templates/account.php79, templates/debug.php:281
|
319 |
+
msgid "Account"
|
320 |
+
msgstr "חשבון"
|
321 |
|
322 |
+
#: includes/class-freemius.php9457, includes/class-freemius.php9459,
|
323 |
+
#: includes/customizer/class-fs-customizer-support-section.php:60
|
324 |
+
msgid "Contact Us"
|
325 |
+
msgstr "יצירת קשר"
|
326 |
|
327 |
+
#: includes/class-freemius.php9469, includes/class-freemius.php9471,
|
328 |
+
#: includes/class-freemius.php13204, templates/account.php:68
|
329 |
+
msgid "Add-Ons"
|
330 |
+
msgstr "Add-Ons"
|
331 |
|
332 |
+
#: includes/class-freemius.php9502, templates/pricing.php:92
|
333 |
+
msgctxt "noun"
|
334 |
+
msgid "Pricing"
|
335 |
+
msgstr "מחירון"
|
336 |
|
337 |
+
#: includes/class-freemius.php9682,
|
338 |
+
#: includes/customizer/class-fs-customizer-support-section.php:67
|
339 |
+
msgid "Support Forum"
|
340 |
+
msgstr "פורום תמיכה"
|
341 |
|
342 |
+
#: includes/class-freemius.php:10422
|
343 |
+
msgid "Your email has been successfully verified - you are AWESOME!"
|
344 |
+
msgstr "Your email has been successfully verified - you are AWESOME!"
|
345 |
|
346 |
+
#: includes/class-freemius.php:10423
|
347 |
+
msgctxt "a positive response"
|
348 |
+
msgid "Right on"
|
349 |
+
msgstr "מעולה"
|
350 |
|
351 |
+
#: includes/class-freemius.php:10956
|
352 |
+
msgid "Your %s Add-on plan was successfully upgraded."
|
353 |
+
msgstr "חבילת ההרחבה %s שודרגה בהצלחה."
|
354 |
|
355 |
+
#: includes/class-freemius.php:10958
|
356 |
+
msgid "%s Add-on was successfully purchased."
|
357 |
+
msgstr "ההרחבה %s נרכשה בהצלחה."
|
|
|
358 |
|
359 |
+
#: includes/class-freemius.php:10961
|
360 |
+
msgid "Download the latest version"
|
361 |
+
msgstr "הורד את הגרסה האחרונה"
|
362 |
|
363 |
+
#: includes/class-freemius.php:11010
|
364 |
+
msgctxt "%1s - plugin title, %2s - API domain"
|
365 |
+
msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
|
366 |
+
msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
|
367 |
|
368 |
+
#: includes/class-freemius.php11013, includes/class-freemius.php11323,
|
369 |
+
#: includes/class-freemius.php:11388
|
370 |
+
msgid "Error received from the server:"
|
371 |
+
msgstr "הוחזרה שגיאה מהשרת:"
|
372 |
|
373 |
+
#: includes/class-freemius.php:11024
|
374 |
+
msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
|
375 |
+
msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
|
|
|
376 |
|
377 |
+
#: includes/class-freemius.php11141, includes/class-freemius.php11328,
|
378 |
+
#: includes/class-freemius.php:11371
|
379 |
+
msgctxt ""
|
380 |
+
msgid "Hmm"
|
381 |
+
msgstr "Hmm"
|
382 |
|
383 |
+
#: includes/class-freemius.php:11154
|
384 |
+
msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
|
385 |
+
msgstr "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
|
386 |
|
387 |
+
#: includes/class-freemius.php11155, templates/account.php70,
|
388 |
+
#: templates/add-ons.php:130
|
389 |
+
msgctxt "trial period"
|
390 |
+
msgid "Trial"
|
391 |
+
msgstr "ניסיון"
|
392 |
|
393 |
+
#: includes/class-freemius.php:11160
|
394 |
+
msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
|
395 |
+
msgstr "שידרגתי את החשבון שלי אבל כשאני מנסה לבצע סנכרון לרישיון החבילה נשארת %s."
|
|
|
396 |
|
397 |
+
#: includes/class-freemius.php11164, includes/class-freemius.php:11218
|
398 |
+
msgid "Please contact us here"
|
399 |
+
msgstr "אנא צור איתנו קשר כאן"
|
400 |
|
401 |
+
#: includes/class-freemius.php:11174
|
402 |
+
msgid "Your plan was successfully upgraded."
|
403 |
+
msgstr "החבילה שודרגה בהצלחה."
|
404 |
|
405 |
+
#: includes/class-freemius.php:11191
|
406 |
+
msgid "Your plan was successfully changed to %s."
|
407 |
+
msgstr "החבילה עודכנה בהצלחה אל %s."
|
408 |
|
409 |
+
#: includes/class-freemius.php:11206
|
410 |
+
msgid "Your license has expired. You can still continue using the free %s forever."
|
411 |
+
msgstr "Your license has expired. You can still continue using the free %s forever."
|
412 |
|
413 |
+
#: includes/class-freemius.php:11214
|
414 |
+
msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
|
415 |
+
msgstr "רשיונך בוטל. אם לדעתך זו טעות, נא ליצור קשר עם התמיכה."
|
|
|
416 |
|
417 |
+
#: includes/class-freemius.php:11227
|
418 |
+
msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
|
419 |
+
msgstr "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
|
420 |
|
421 |
+
#: includes/class-freemius.php:11249
|
422 |
+
msgid "Your trial has expired. You can still continue using all our free features."
|
423 |
+
msgstr "תקופת הניסיון נגמרה. ביכולתך להמשיך להשתמש בכל הפיטצ'רים החינאמיים."
|
|
|
424 |
|
425 |
+
#: includes/class-freemius.php:11319
|
426 |
+
msgid "It looks like the license could not be activated."
|
427 |
+
msgstr "נראה שלא ניתן להפעיל את הרישיון."
|
|
|
428 |
|
429 |
+
#: includes/class-freemius.php:11349
|
430 |
+
msgid "Your license was successfully activated."
|
431 |
+
msgstr "הרישיון הופעל בהצלחה."
|
432 |
|
433 |
+
#: includes/class-freemius.php:11375
|
434 |
+
msgid "It looks like your site currently doesn't have an active license."
|
435 |
+
msgstr "נראה לאתר עדיין אין רישיון פעיל."
|
436 |
|
437 |
+
#: includes/class-freemius.php:11387
|
438 |
+
msgid "It looks like the license deactivation failed."
|
439 |
+
msgstr "נראה שניתוק הרישיון נכשל."
|
440 |
|
441 |
+
#: includes/class-freemius.php:11414
|
442 |
+
msgid "Your license was successfully deactivated, you are back to the %s plan."
|
443 |
+
msgstr "רישיונך נותק בהצלחה, חזרת לחבילת %s"
|
444 |
|
445 |
+
#: includes/class-freemius.php:11415
|
446 |
+
msgid "O.K"
|
447 |
+
msgstr "אוקיי"
|
448 |
|
449 |
+
#: includes/class-freemius.php:11463
|
450 |
+
msgid "Your plan was successfully downgraded. Your %s plan license will expire in %s."
|
451 |
+
msgstr "Your plan was successfully downgraded. Your %s plan license will expire in %s."
|
452 |
|
453 |
+
#: includes/class-freemius.php:11473
|
454 |
+
msgid "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
|
455 |
+
msgstr "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
|
456 |
|
457 |
+
#: includes/class-freemius.php:11497
|
458 |
+
msgid "You are already running the %s in a trial mode."
|
459 |
+
msgstr "You are already running the %s in a trial mode."
|
460 |
|
461 |
+
#: includes/class-freemius.php:11508
|
462 |
+
msgid "You already utilized a trial before."
|
463 |
+
msgstr "הניסיון כבר נוצל בעבר."
|
464 |
|
465 |
+
#: includes/class-freemius.php:11522
|
466 |
+
msgid "Plan %s do not exist, therefore, can't start a trial."
|
467 |
+
msgstr "החבילה %s אינה קיימת, לכן, לא ניתן להתחיל תקופת ניסיון."
|
468 |
|
469 |
+
#: includes/class-freemius.php:11533
|
470 |
+
msgid "Plan %s does not support a trial period."
|
471 |
+
msgstr "תוכנית %s אינה תומכת בתקופת ניסיון."
|
472 |
|
473 |
+
#: includes/class-freemius.php:11544
|
474 |
+
msgid "None of the %s's plans supports a trial period."
|
475 |
+
msgstr "None of the %s's plans supports a trial period."
|
476 |
|
477 |
+
#: includes/class-freemius.php:11594
|
478 |
+
msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
|
479 |
+
msgstr "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
|
480 |
|
481 |
+
#: includes/class-freemius.php:11645
|
482 |
+
msgid "Your %s free trial was successfully cancelled."
|
483 |
+
msgstr "תקופת הניסיון החינמית של %s בוטלה בהצלחה."
|
|
|
484 |
|
485 |
+
#: includes/class-freemius.php:11653
|
486 |
+
msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
|
487 |
+
msgstr "נראה שיש תקלה זמנית המונעת את ביטול הניסיון. אנא נסו שוב בעוד כמה דקות."
|
|
|
488 |
|
489 |
+
#: includes/class-freemius.php:11892
|
490 |
+
msgid "Version %s was released."
|
491 |
+
msgstr "גרסה %s הושקה."
|
492 |
|
493 |
+
#: includes/class-freemius.php:11892
|
494 |
+
msgid "Please download %s."
|
495 |
+
msgstr "נא להוריד את %s."
|
496 |
|
497 |
+
#: includes/class-freemius.php:11899
|
498 |
+
msgid "the latest %s version here"
|
499 |
+
msgstr "גרסת ה-%s האחרונה כאן"
|
500 |
|
501 |
+
#: includes/class-freemius.php:11904
|
502 |
+
msgid "New"
|
503 |
+
msgstr "חדש"
|
504 |
|
505 |
+
#: includes/class-freemius.php:11909
|
506 |
+
msgid "Seems like you got the latest release."
|
507 |
+
msgstr "נראה שיש לך את הגרסה האחרונה."
|
|
|
508 |
|
509 |
+
#: includes/class-freemius.php:11910
|
510 |
+
msgid "You are all good!"
|
511 |
+
msgstr "את\\ה מסודר!"
|
|
|
512 |
|
513 |
+
#: includes/class-freemius.php:12176
|
514 |
+
msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
|
515 |
+
msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
|
516 |
|
517 |
+
#: includes/class-freemius.php:12351
|
518 |
+
msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
|
519 |
+
msgstr "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
|
520 |
|
521 |
+
#: includes/class-freemius.php:12357
|
522 |
+
msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
|
523 |
+
msgstr "תודה על אישור ביצוע החלפת הבעלות. הרגע נשלח מייל ל-%s כדי לקבל אישור סופי."
|
524 |
|
525 |
+
#: includes/class-freemius.php:12362
|
526 |
+
msgid "%s is the new owner of the account."
|
527 |
+
msgstr "%s הינו הבעלים החד של חשבון זה."
|
528 |
|
529 |
+
#: includes/class-freemius.php:12364
|
530 |
+
msgctxt "as congratulations"
|
531 |
+
msgid "Congrats"
|
532 |
+
msgstr "מזל טוב"
|
533 |
|
534 |
+
#: includes/class-freemius.php:12384
|
535 |
+
msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
|
536 |
+
msgstr "Sorry, we could not complete the email update. Another user with the same email is already registered."
|
537 |
|
538 |
+
#: includes/class-freemius.php:12385
|
539 |
+
msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
|
540 |
+
msgstr "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
|
541 |
|
542 |
+
#: includes/class-freemius.php:12392
|
543 |
+
msgid "Change Ownership"
|
544 |
+
msgstr "עדכון בעלות"
|
545 |
|
546 |
+
#: includes/class-freemius.php:12400
|
547 |
+
msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
|
548 |
+
msgstr "כתובת הדואל שלך עודכנה בהצלחה. הודעת אישור אמורה להתקבל בדואל שלך ברגעים הקרובים."
|
549 |
|
550 |
+
#: includes/class-freemius.php:12412
|
551 |
+
msgid "Please provide your full name."
|
552 |
+
msgstr "נא למלא את שמך המלא."
|
553 |
|
554 |
+
#: includes/class-freemius.php:12417
|
555 |
+
msgid "Your name was successfully updated."
|
556 |
+
msgstr "שמך עודכן בהצלחה."
|
557 |
|
558 |
+
#: includes/class-freemius.php:12478
|
559 |
+
msgid "You have successfully updated your %s."
|
560 |
+
msgstr "עידכנת בהצלחה את ה%s."
|
561 |
|
562 |
+
#: includes/class-freemius.php:12616
|
563 |
+
msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
|
564 |
+
msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
|
565 |
|
566 |
+
#: includes/class-freemius.php:12617
|
567 |
+
msgctxt "advance notice of something that will need attention."
|
568 |
+
msgid "Heads up"
|
569 |
+
msgstr "לתשמות לבך"
|
570 |
|
571 |
+
#: includes/class-freemius.php:12935
|
572 |
+
msgid "Awesome"
|
573 |
+
msgstr "אדיר"
|
574 |
|
575 |
+
#: includes/class-freemius.php:12975
|
576 |
+
msgctxt "exclamation"
|
577 |
+
msgid "Hey"
|
578 |
+
msgstr "היי"
|
579 |
|
580 |
+
#: includes/class-freemius.php:12975
|
581 |
+
msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
|
582 |
+
msgstr "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
|
583 |
|
584 |
+
#: includes/class-freemius.php:12983
|
585 |
+
msgid "No commitment for %s days - cancel anytime!"
|
586 |
+
msgstr "ללא התחייבות ל-%s ימין - בטלו בכל רגע!"
|
587 |
|
588 |
+
#: includes/class-freemius.php:12984
|
589 |
+
msgid "No credit card required"
|
590 |
+
msgstr "לא נדרש כרטיס אשראי"
|
591 |
|
592 |
+
#: includes/class-freemius.php12991, templates/forms/trial-start.php:53
|
593 |
+
msgctxt "call to action"
|
594 |
+
msgid "Start free trial"
|
595 |
+
msgstr "התחלת ניסיון חינם"
|
596 |
|
597 |
+
#: includes/class-freemius.php:13068
|
598 |
+
msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
|
599 |
+
msgstr "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
|
600 |
|
601 |
+
#: includes/class-freemius.php:13077
|
602 |
+
msgid "Learn more"
|
603 |
+
msgstr "Learn more"
|
604 |
|
605 |
+
#: includes/class-freemius.php13233, templates/account.php330,
|
606 |
+
#: templates/connect.php309, templates/forms/license-activation.php:24
|
607 |
+
msgid "Activate License"
|
608 |
+
msgstr "הפעלת רישיון"
|
609 |
|
610 |
+
#: includes/class-freemius.php13234, templates/account.php:393
|
611 |
+
msgid "Change License"
|
612 |
+
msgstr "שינוי רישיון"
|
613 |
|
614 |
+
#: includes/class-freemius.php:13295
|
615 |
+
msgid "Opt Out"
|
616 |
+
msgstr "Opt Out"
|
617 |
|
618 |
+
#: includes/class-freemius.php13297, includes/class-freemius.php:13302
|
619 |
+
msgid "Opt In"
|
620 |
+
msgstr "Opt In"
|
621 |
|
622 |
+
#: includes/class-freemius.php:13490
|
623 |
+
msgid "Please follow these steps to complete the upgrade"
|
624 |
+
msgstr "נא לבצע את הצעדים הבאים להשלמת השידרוג"
|
625 |
|
626 |
+
#: includes/class-freemius.php:13493
|
627 |
+
msgid "Download the latest %s version"
|
628 |
+
msgstr "הורד\\י את גרסת ה-%s העדכנית"
|
629 |
|
630 |
+
#: includes/class-freemius.php:13497
|
631 |
+
msgid "Upload and activate the downloaded version"
|
632 |
+
msgstr "העלה\\י והפעיל\\י את הגרסה שהורדת"
|
633 |
|
634 |
+
#: includes/class-freemius.php:13499
|
635 |
+
msgid "How to upload and activate?"
|
636 |
+
msgstr "איך להעלות ולהפעיל?"
|
637 |
|
638 |
+
#: includes/class-freemius.php:13658
|
639 |
+
msgid "Auto installation only works for opted-in users."
|
640 |
+
msgstr "Auto installation only works for opted-in users."
|
641 |
|
642 |
+
#: includes/class-freemius.php13668, includes/class-freemius.php13701,
|
643 |
+
#: includes/class-fs-plugin-updater.php490,
|
644 |
+
#: includes/class-fs-plugin-updater.php:504
|
645 |
+
msgid "Invalid module ID."
|
646 |
+
msgstr "Invalid module ID."
|
647 |
|
648 |
+
#: includes/class-freemius.php13677, includes/class-fs-plugin-updater.php:524
|
649 |
+
msgid "Premium version already active."
|
650 |
+
msgstr "Premium version already active."
|
651 |
|
652 |
+
#: includes/class-freemius.php:13684
|
653 |
+
msgid "You do not have a valid license to access the premium version."
|
654 |
+
msgstr "You do not have a valid license to access the premium version."
|
|
|
655 |
|
656 |
+
#: includes/class-freemius.php:13691
|
657 |
+
msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
|
658 |
+
msgstr "Plugin is a \"Serviceware\" which means it does not have a premium code version."
|
659 |
|
660 |
+
#: includes/class-freemius.php13709, includes/class-fs-plugin-updater.php:523
|
661 |
+
msgid "Premium add-on version already installed."
|
662 |
+
msgstr "Premium add-on version already installed."
|
663 |
|
664 |
+
#: includes/class-freemius.php:14054
|
665 |
+
msgid "View paid features"
|
666 |
+
msgstr "View paid features"
|
667 |
|
668 |
+
#: includes/class-fs-plugin-updater.php:131
|
669 |
+
msgid "%sRenew your license now%s to access version %s features and support."
|
670 |
+
msgstr "%sRenew your license now%s to access version %s features and support."
|
671 |
|
672 |
+
#: includes/class-fs-plugin-updater.php:553
|
673 |
+
msgid "Installing plugin: %s"
|
674 |
+
msgstr "Installing plugin: %s"
|
675 |
|
676 |
+
#: includes/class-fs-plugin-updater.php:594
|
677 |
+
msgid "Unable to connect to the filesystem. Please confirm your credentials."
|
678 |
+
msgstr "Unable to connect to the filesystem. Please confirm your credentials."
|
679 |
|
680 |
+
#: includes/class-fs-plugin-updater.php:700
|
681 |
+
msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
|
682 |
+
msgstr "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
|
683 |
|
684 |
+
#: includes/fs-plugin-info-dialog.php328, templates/account.php:696
|
685 |
+
msgctxt "verb"
|
686 |
+
msgid "Purchase"
|
687 |
+
msgstr "רכישה"
|
688 |
|
689 |
+
#: includes/fs-plugin-info-dialog.php:331
|
690 |
+
msgid "Start my free %s"
|
691 |
+
msgstr "התחל את %s הניסיון שלי"
|
692 |
|
693 |
+
#: includes/fs-plugin-info-dialog.php355, templates/account.php:52
|
694 |
+
msgctxt "as download latest version"
|
695 |
+
msgid "Download Latest"
|
696 |
+
msgstr "הורד גרסה אחרונה"
|
697 |
|
698 |
+
#: includes/fs-plugin-info-dialog.php358, templates/account.php676,
|
699 |
+
#: templates/account.php729, templates/auto-installation.php:110
|
700 |
+
msgid "Install Now"
|
701 |
+
msgstr "התקן עכשיו"
|
702 |
|
703 |
+
#: includes/fs-plugin-info-dialog.php364, templates/account.php:384
|
704 |
+
msgid "Install Update Now"
|
705 |
+
msgstr "התקן עדכון במיידי"
|
706 |
|
707 |
+
#: includes/fs-plugin-info-dialog.php:368
|
708 |
+
msgid "Newer Version (%s) Installed"
|
709 |
+
msgstr "גרסה חדשה (%s) הותקנה"
|
710 |
|
711 |
+
#: includes/fs-plugin-info-dialog.php:371
|
712 |
+
msgid "Latest Version Installed"
|
713 |
+
msgstr "הגרסה האחרונה הותקנה"
|
714 |
|
715 |
+
#: includes/fs-plugin-info-dialog.php:484
|
716 |
+
msgctxt "Plugin installer section title"
|
717 |
+
msgid "Description"
|
718 |
+
msgstr "תיאור"
|
719 |
|
720 |
+
#: includes/fs-plugin-info-dialog.php:485
|
721 |
+
msgctxt "Plugin installer section title"
|
722 |
+
msgid "Installation"
|
723 |
+
msgstr "התקנה"
|
724 |
|
725 |
+
#: includes/fs-plugin-info-dialog.php:486
|
726 |
+
msgctxt "Plugin installer section title"
|
727 |
+
msgid "FAQ"
|
728 |
+
msgstr "שאלות נפוצות"
|
729 |
|
730 |
+
#: includes/fs-plugin-info-dialog.php487,
|
731 |
+
#: templates/plugin-info/description.php:55
|
732 |
+
msgid "Screenshots"
|
733 |
+
msgstr "צילומי מסך"
|
734 |
|
735 |
+
#: includes/fs-plugin-info-dialog.php:488
|
736 |
+
msgctxt "Plugin installer section title"
|
737 |
+
msgid "Changelog"
|
738 |
+
msgstr "לוג שינויים"
|
739 |
|
740 |
+
#: includes/fs-plugin-info-dialog.php:489
|
741 |
+
msgctxt "Plugin installer section title"
|
742 |
+
msgid "Reviews"
|
743 |
+
msgstr "ביקורות"
|
744 |
|
745 |
+
#: includes/fs-plugin-info-dialog.php:490
|
746 |
+
msgctxt "Plugin installer section title"
|
747 |
+
msgid "Other Notes"
|
748 |
+
msgstr "היערות נוספות"
|
749 |
|
750 |
+
#: includes/fs-plugin-info-dialog.php:505
|
751 |
+
msgctxt "Plugin installer section title"
|
752 |
+
msgid "Features & Pricing"
|
753 |
+
msgstr "פיטצ'רים ומחירים"
|
754 |
|
755 |
+
#: includes/fs-plugin-info-dialog.php:515
|
756 |
+
msgid "Plugin Install"
|
757 |
+
msgstr "התקנת תוסף"
|
758 |
|
759 |
+
#: includes/fs-plugin-info-dialog.php:587
|
760 |
+
msgctxt "e.g. Professional Plan"
|
761 |
+
msgid "%s Plan"
|
762 |
+
msgstr "חבילה %s"
|
763 |
|
764 |
+
#: includes/fs-plugin-info-dialog.php:612
|
765 |
+
msgctxt "e.g. the best product"
|
766 |
+
msgid "Best"
|
767 |
+
msgstr "הכי טוב"
|
768 |
|
769 |
+
#: includes/fs-plugin-info-dialog.php618,
|
770 |
+
#: includes/fs-plugin-info-dialog.php:638
|
771 |
+
msgctxt "as every month"
|
772 |
+
msgid "Monthly"
|
773 |
+
msgstr "חודשי"
|
774 |
|
775 |
+
#: includes/fs-plugin-info-dialog.php:621
|
776 |
+
msgctxt "as once a year"
|
777 |
+
msgid "Annual"
|
778 |
+
msgstr "שנתי"
|
779 |
|
780 |
+
#: includes/fs-plugin-info-dialog.php:624
|
781 |
+
msgid "Lifetime"
|
782 |
+
msgstr "לכל החיים"
|
783 |
|
784 |
+
#: includes/fs-plugin-info-dialog.php638,
|
785 |
+
#: includes/fs-plugin-info-dialog.php640,
|
786 |
+
#: includes/fs-plugin-info-dialog.php:642
|
787 |
+
msgctxt "e.g. billed monthly"
|
788 |
+
msgid "Billed %s"
|
789 |
+
msgstr "מחוייב על בסיס %s"
|
790 |
|
791 |
+
#: includes/fs-plugin-info-dialog.php:640
|
792 |
+
msgctxt "as once a year"
|
793 |
+
msgid "Annually"
|
794 |
+
msgstr "שנתי"
|
795 |
|
796 |
+
#: includes/fs-plugin-info-dialog.php:642
|
797 |
+
msgctxt "as once a year"
|
798 |
+
msgid "Once"
|
799 |
+
msgstr "פעם אחת"
|
800 |
|
801 |
+
#: includes/fs-plugin-info-dialog.php:648
|
802 |
+
msgid "Single Site License"
|
803 |
+
msgstr "רשיון לאתר אחד"
|
804 |
|
805 |
+
#: includes/fs-plugin-info-dialog.php:650
|
806 |
+
msgid "Unlimited Licenses"
|
807 |
+
msgstr "רשיונות ללא הגבלה"
|
808 |
|
809 |
+
#: includes/fs-plugin-info-dialog.php:652
|
810 |
+
msgid "Up to %s Sites"
|
811 |
+
msgstr "עד %s אתרים"
|
812 |
|
813 |
+
#: includes/fs-plugin-info-dialog.php662,
|
814 |
+
#: templates/plugin-info/features.php:82
|
815 |
+
msgctxt "as monthly period"
|
816 |
+
msgid "mo"
|
817 |
+
msgstr "חודשים"
|
818 |
|
819 |
+
#: includes/fs-plugin-info-dialog.php669,
|
820 |
+
#: templates/plugin-info/features.php:80
|
821 |
+
msgctxt "as annual period"
|
822 |
+
msgid "year"
|
823 |
+
msgstr "שנה"
|
824 |
|
825 |
+
#: includes/fs-plugin-info-dialog.php:721
|
826 |
+
msgctxt "noun"
|
827 |
+
msgid "Price"
|
828 |
+
msgstr "מחיר"
|
829 |
|
830 |
+
#: includes/fs-plugin-info-dialog.php:767
|
831 |
+
msgctxt "as a discount of $5 or 10%"
|
832 |
+
msgid "Save %s"
|
833 |
+
msgstr "שמירת %s"
|
834 |
|
835 |
+
#: includes/fs-plugin-info-dialog.php:777
|
836 |
+
msgid "No commitment for %s - cancel anytime"
|
837 |
+
msgstr "No commitment for %s - cancel anytime"
|
|
|
838 |
|
839 |
+
#: includes/fs-plugin-info-dialog.php:780
|
840 |
+
msgid "After your free %s, pay as little as %s"
|
841 |
+
msgstr "After your free %s, pay as little as %s"
|
|
|
842 |
|
843 |
+
#: includes/fs-plugin-info-dialog.php:791
|
844 |
+
msgid "Details"
|
845 |
+
msgstr "פרטים"
|
846 |
+
|
847 |
+
#: includes/fs-plugin-info-dialog.php794, templates/account.php59,
|
848 |
+
#: templates/debug.php183, templates/debug.php220, templates/debug.php:354
|
849 |
+
msgctxt "product version"
|
850 |
+
msgid "Version"
|
851 |
+
msgstr "גרסה"
|
852 |
+
|
853 |
+
#: includes/fs-plugin-info-dialog.php:800
|
854 |
+
msgctxt "as the plugin author"
|
855 |
+
msgid "Author"
|
856 |
+
msgstr "Author"
|
857 |
+
|
858 |
+
#: includes/fs-plugin-info-dialog.php:806
|
859 |
+
msgid "Last Updated"
|
860 |
+
msgstr "עודכן לאחרונה"
|
861 |
+
|
862 |
+
#: includes/fs-plugin-info-dialog.php:810
|
863 |
+
msgctxt "x-ago"
|
864 |
+
msgid "%s ago"
|
865 |
+
msgstr "לפני %s"
|
866 |
+
|
867 |
+
#: includes/fs-plugin-info-dialog.php:819
|
868 |
+
msgid "Requires WordPress Version"
|
869 |
+
msgstr "Requires WordPress Version"
|
870 |
+
|
871 |
+
#: includes/fs-plugin-info-dialog.php:819
|
872 |
+
msgid "%s or higher"
|
873 |
+
msgstr "%s ומעלה"
|
874 |
+
|
875 |
+
#: includes/fs-plugin-info-dialog.php:825
|
876 |
+
msgid "Compatible up to"
|
877 |
+
msgstr "Compatible up to"
|
878 |
+
|
879 |
+
#: includes/fs-plugin-info-dialog.php:832
|
880 |
+
msgid "Downloaded"
|
881 |
+
msgstr "Downloaded"
|
882 |
+
|
883 |
+
#: includes/fs-plugin-info-dialog.php:835
|
884 |
+
msgid "%s time"
|
885 |
+
msgstr "פעם %s"
|
886 |
+
|
887 |
+
#: includes/fs-plugin-info-dialog.php:837
|
888 |
+
msgid "%s times"
|
889 |
+
msgstr "%s פעמים"
|
890 |
+
|
891 |
+
#: includes/fs-plugin-info-dialog.php:847
|
892 |
+
msgid "WordPress.org Plugin Page"
|
893 |
+
msgstr "WordPress.org Plugin Page"
|
894 |
+
|
895 |
+
#: includes/fs-plugin-info-dialog.php:854
|
896 |
+
msgid "Plugin Homepage"
|
897 |
+
msgstr "עמוד התוסף"
|
898 |
+
|
899 |
+
#: includes/fs-plugin-info-dialog.php861,
|
900 |
+
#: includes/fs-plugin-info-dialog.php:941
|
901 |
+
msgid "Donate to this plugin"
|
902 |
+
msgstr "Donate to this plugin"
|
903 |
+
|
904 |
+
#: includes/fs-plugin-info-dialog.php:867
|
905 |
+
msgid "Average Rating"
|
906 |
+
msgstr "דירוג ממוצע"
|
907 |
+
|
908 |
+
#: includes/fs-plugin-info-dialog.php:874
|
909 |
+
msgid "based on %s"
|
910 |
+
msgstr "מבוסס על %s"
|
911 |
+
|
912 |
+
#: includes/fs-plugin-info-dialog.php:878
|
913 |
+
msgid "%s rating"
|
914 |
+
msgstr "דרוג %s"
|
915 |
+
|
916 |
+
#: includes/fs-plugin-info-dialog.php:880
|
917 |
+
msgid "%s ratings"
|
918 |
+
msgstr "%s דרוגים"
|
919 |
+
|
920 |
+
#: includes/fs-plugin-info-dialog.php:894
|
921 |
+
msgid "%s star"
|
922 |
+
msgstr "כוכב %s"
|
923 |
+
|
924 |
+
#: includes/fs-plugin-info-dialog.php:896
|
925 |
+
msgid "%s stars"
|
926 |
+
msgstr "%s כוכבים"
|
927 |
+
|
928 |
+
#: includes/fs-plugin-info-dialog.php:907
|
929 |
+
msgid "Click to see reviews that provided a rating of %s"
|
930 |
+
msgstr "Click to see reviews that provided a rating of %s"
|
931 |
+
|
932 |
+
#: includes/fs-plugin-info-dialog.php:920
|
933 |
+
msgid "Contributors"
|
934 |
+
msgstr "תורמים"
|
935 |
+
|
936 |
+
#: includes/fs-plugin-info-dialog.php948,
|
937 |
+
#: includes/fs-plugin-info-dialog.php:950
|
938 |
+
msgid "Warning"
|
939 |
+
msgstr "Warning"
|
940 |
+
|
941 |
+
#: includes/fs-plugin-info-dialog.php:948
|
942 |
+
msgid "This plugin has not been tested with your current version of WordPress."
|
943 |
+
msgstr "This plugin has not been tested with your current version of WordPress."
|
944 |
+
|
945 |
+
#: includes/fs-plugin-info-dialog.php:950
|
946 |
+
msgid "This plugin has not been marked as compatible with your version of WordPress."
|
947 |
+
msgstr "This plugin has not been marked as compatible with your version of WordPress."
|
948 |
+
|
949 |
+
#: includes/fs-plugin-info-dialog.php:969
|
950 |
+
msgid "Paid add-on must be deployed to Freemius."
|
951 |
+
msgstr "Paid add-on must be deployed to Freemius."
|
952 |
+
|
953 |
+
#: includes/fs-plugin-info-dialog.php:970
|
954 |
+
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
955 |
+
msgstr "Add-on must be deployed to WordPress.org or Freemius."
|
956 |
+
|
957 |
+
#: templates/account.php:53
|
958 |
+
msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
|
959 |
+
msgstr "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
|
960 |
+
|
961 |
+
#: templates/account.php:54
|
962 |
+
msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
|
963 |
+
msgstr "ביטול הניסיון יחסום מייד את הפיטצ'רים שהינם בתשלום. האם ברצונך בכל זאת להמשיך?"
|
964 |
+
|
965 |
+
#: templates/account.php:55
|
966 |
+
msgid "You can still enjoy all %s features but you will not have access to %s updates and support."
|
967 |
+
msgstr "You can still enjoy all %s features but you will not have access to %s updates and support."
|
968 |
+
|
969 |
+
#: templates/account.php:56
|
970 |
+
msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
|
971 |
+
msgstr "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
|
972 |
+
|
973 |
+
#. translators: %s: Plan title (e.g. "Professional")
|
974 |
+
#: templates/account.php:58
|
975 |
+
msgid "Activate %s Plan"
|
976 |
+
msgstr "הפעל חבילה %s"
|
977 |
+
|
978 |
+
#. translators: %s: Time period (e.g. Auto renews in "2 months")
|
979 |
+
#: templates/account.php:61
|
980 |
+
msgid "Auto renews in %s"
|
981 |
+
msgstr "עדכן אוטומטית בעוד %s"
|
982 |
+
|
983 |
+
#. translators: %s: Time period (e.g. Expires in "2 months")
|
984 |
+
#: templates/account.php:63
|
985 |
+
msgid "Expires in %s"
|
986 |
+
msgstr "פג תוקף בעוד %s"
|
987 |
+
|
988 |
+
#: templates/account.php:64
|
989 |
+
msgctxt "as synchronize license"
|
990 |
+
msgid "Sync License"
|
991 |
+
msgstr "סינכרן רישיון"
|
992 |
+
|
993 |
+
#: templates/account.php:65
|
994 |
+
msgid "Cancel Trial"
|
995 |
+
msgstr "ביט"
|
996 |
+
|
997 |
+
#: templates/account.php:66
|
998 |
+
msgid "Change Plan"
|
999 |
+
msgstr "שינוי חבילה"
|
1000 |
+
|
1001 |
+
#: templates/account.php:67
|
1002 |
+
msgctxt "verb"
|
1003 |
+
msgid "Upgrade"
|
1004 |
+
msgstr "שדרג"
|
1005 |
+
|
1006 |
+
#: templates/account.php:69
|
1007 |
+
msgctxt "verb"
|
1008 |
+
msgid "Downgrade"
|
1009 |
+
msgstr "שנמך"
|
1010 |
+
|
1011 |
+
#: templates/account.php71, templates/add-ons.php126,
|
1012 |
+
#: templates/plugin-info/features.php:72
|
1013 |
+
msgid "Free"
|
1014 |
+
msgstr "חינם"
|
1015 |
+
|
1016 |
+
#: templates/account.php:72
|
1017 |
+
msgid "Activate"
|
1018 |
+
msgstr "הפעלה"
|
1019 |
+
|
1020 |
+
#: templates/account.php73, templates/debug.php311,
|
1021 |
+
#: includes/customizer/class-fs-customizer-upsell-control.php:106
|
1022 |
+
msgctxt "as product pricing plan"
|
1023 |
+
msgid "Plan"
|
1024 |
+
msgstr "חבילה"
|
1025 |
+
|
1026 |
+
#: templates/account.php:87
|
1027 |
+
msgid "Free Trial"
|
1028 |
+
msgstr "ניסיון חינם"
|
1029 |
+
|
1030 |
+
#: templates/account.php:98
|
1031 |
+
msgid "Account Details"
|
1032 |
+
msgstr "פרטי חשבון"
|
1033 |
+
|
1034 |
+
#: templates/account.php:108
|
1035 |
+
msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
1036 |
+
msgstr "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
1037 |
+
|
1038 |
+
#: templates/account.php:110
|
1039 |
+
msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
|
1040 |
+
msgstr "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
|
1041 |
+
|
1042 |
+
#: templates/account.php:113
|
1043 |
+
msgid "Delete Account"
|
1044 |
+
msgstr "מחיקת חשבון"
|
1045 |
+
|
1046 |
+
#: templates/account.php:124
|
1047 |
+
msgid "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
|
1048 |
+
msgstr "דיאקטיבציה של הרישיון תחסום את כל הפיטצ'רים שהם בתשלום. עם זאת, תיתאפשר הפעלה של הרישיון על אתר אחר. האם ברצונך להמשיך?"
|
1049 |
+
|
1050 |
+
#: templates/account.php125, templates/account.php:590
|
1051 |
+
msgid "Deactivate License"
|
1052 |
+
msgstr "שיחרור רישיון"
|
1053 |
+
|
1054 |
+
#: templates/account.php:142
|
1055 |
+
msgid "Are you sure you want to proceed?"
|
1056 |
+
msgstr "האם את/ה בטוח רוצה להמשיך?"
|
1057 |
+
|
1058 |
+
#: templates/account.php:142
|
1059 |
+
msgid "Cancel Subscription"
|
1060 |
+
msgstr "בטל מנוי"
|
1061 |
|
1062 |
+
#: templates/account.php:171
|
1063 |
+
msgctxt "as synchronize"
|
1064 |
+
msgid "Sync"
|
1065 |
+
msgstr "סינכרון"
|
1066 |
|
1067 |
+
#: templates/account.php185, templates/debug.php:389
|
1068 |
+
msgid "Name"
|
1069 |
+
msgstr "שם"
|
|
|
1070 |
|
1071 |
+
#: templates/account.php191, templates/debug.php:390
|
1072 |
+
msgid "Email"
|
1073 |
+
msgstr "דוא\"ל"
|
1074 |
|
1075 |
+
#: templates/account.php198, templates/debug.php310, templates/debug.php:419
|
1076 |
+
msgid "User ID"
|
1077 |
+
msgstr "מזהה משתמש"
|
1078 |
|
1079 |
+
#: templates/account.php:205
|
1080 |
+
msgid "Site ID"
|
1081 |
+
msgstr "מזהה אתר"
|
1082 |
|
1083 |
+
#: templates/account.php:208
|
1084 |
+
msgid "No ID"
|
1085 |
+
msgstr "אין מזהה"
|
1086 |
|
1087 |
+
#: templates/account.php213, templates/debug.php225, templates/debug.php312,
|
1088 |
+
#: templates/debug.php355, templates/debug.php:392
|
1089 |
+
msgid "Public Key"
|
1090 |
+
msgstr "מפתח פומבי"
|
1091 |
|
1092 |
+
#: templates/account.php219, templates/debug.php313, templates/debug.php356,
|
1093 |
+
#: templates/debug.php:393
|
1094 |
+
msgid "Secret Key"
|
1095 |
+
msgstr "מפתח סודי"
|
1096 |
|
1097 |
+
#: templates/account.php:222
|
1098 |
+
msgctxt "as secret encryption key missing"
|
1099 |
+
msgid "No Secret"
|
1100 |
+
msgstr "אין מפתח סודי"
|
1101 |
|
1102 |
+
#: templates/account.php:241
|
1103 |
+
msgid "Trial"
|
1104 |
+
msgstr "ניסיון"
|
1105 |
|
1106 |
+
#: templates/account.php257, templates/debug.php:424
|
1107 |
+
msgid "License Key"
|
1108 |
+
msgstr "License Key"
|
1109 |
|
1110 |
+
#: templates/account.php:287
|
1111 |
+
msgid "not verified"
|
1112 |
+
msgstr "לא מאומת"
|
1113 |
|
1114 |
+
#: templates/account.php:317
|
1115 |
+
msgid "Localhost"
|
1116 |
+
msgstr "שרת לוקאלי"
|
1117 |
|
1118 |
+
#: templates/account.php:321
|
1119 |
+
msgctxt "as 5 licenses left"
|
1120 |
+
msgid "%s left"
|
1121 |
+
msgstr "נשארו %s"
|
1122 |
|
1123 |
+
#: templates/account.php:322
|
1124 |
+
msgid "Last license"
|
1125 |
+
msgstr "רישיון אחרון"
|
1126 |
|
1127 |
+
#: templates/account.php:352
|
1128 |
+
msgid "Premium version"
|
1129 |
+
msgstr "גירסת פרימיום"
|
1130 |
|
1131 |
+
#: templates/account.php:354
|
1132 |
+
msgid "Free version"
|
1133 |
+
msgstr "גירסה חינאמית"
|
1134 |
|
1135 |
+
#: templates/account.php:366
|
1136 |
+
msgid "Verify Email"
|
1137 |
+
msgstr "אמת כתובת דוא\"ל"
|
1138 |
|
1139 |
+
#: templates/account.php:377
|
1140 |
+
msgid "Download %s Version"
|
1141 |
+
msgstr "הורד גרסת %s"
|
1142 |
|
1143 |
+
#: templates/account.php391, templates/account.php:442
|
1144 |
+
msgctxt "verb"
|
1145 |
+
msgid "Show"
|
1146 |
+
msgstr "הצג"
|
1147 |
|
1148 |
+
#: templates/account.php:405
|
1149 |
+
msgid "What is your %s?"
|
1150 |
+
msgstr "מה ה%s שלך?"
|
1151 |
|
1152 |
+
#: templates/account.php413, templates/account/billing.php:27
|
1153 |
+
msgctxt "verb"
|
1154 |
+
msgid "Edit"
|
1155 |
+
msgstr "ערוך"
|
1156 |
|
1157 |
+
#: templates/account.php:436
|
1158 |
+
msgctxt "verb"
|
1159 |
+
msgid "Hide"
|
1160 |
+
msgstr "הסתר"
|
1161 |
|
1162 |
+
#: templates/account.php472, templates/debug.php218, templates/debug.php308,
|
1163 |
+
#: templates/debug.php351, templates/debug.php388, templates/debug.php417,
|
1164 |
+
#: templates/debug.php496, templates/account/payments.php35,
|
1165 |
+
#: templates/debug/logger.php:21
|
1166 |
+
msgid "ID"
|
1167 |
+
msgstr "מזהה"
|
1168 |
|
1169 |
+
#: templates/account.php:475
|
1170 |
+
msgctxt "as software license"
|
1171 |
+
msgid "License"
|
1172 |
+
msgstr "רישיון"
|
1173 |
|
1174 |
+
#: templates/account.php:550
|
1175 |
+
msgid "Cancelled"
|
1176 |
+
msgstr "בוטל"
|
|
|
1177 |
|
1178 |
+
#: templates/account.php:555
|
1179 |
+
msgid "Expired"
|
1180 |
+
msgstr "פג תוקף"
|
1181 |
|
1182 |
+
#: templates/account.php:560
|
1183 |
+
msgid "No expiration"
|
1184 |
+
msgstr "ללא תפוגה"
|
|
|
1185 |
|
1186 |
+
#: templates/account.php668, templates/account.php:724
|
1187 |
+
msgid "Activate this add-on"
|
1188 |
+
msgstr "הפעל את ההרחבה"
|
|
|
1189 |
|
1190 |
+
#: templates/account.php745, templates/debug.php:336
|
1191 |
+
msgctxt "verb"
|
1192 |
+
msgid "Delete"
|
1193 |
+
msgstr "מחק"
|
1194 |
|
1195 |
+
#: templates/add-ons.php:36
|
1196 |
+
msgid "Add Ons for %s"
|
1197 |
+
msgstr "הרחבות עבור %s"
|
|
|
1198 |
|
1199 |
+
#: templates/add-ons.php:44
|
1200 |
+
msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
|
1201 |
+
msgstr "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
|
|
|
1202 |
|
1203 |
+
#: templates/add-ons.php:135
|
1204 |
+
msgid "View details"
|
1205 |
+
msgstr "פרטים נוספים"
|
|
|
1206 |
|
1207 |
+
#: templates/admin-notice.php13, templates/forms/license-activation.php73,
|
1208 |
+
#: templates/forms/resend-key.php:77
|
1209 |
+
msgctxt "as close a window"
|
1210 |
+
msgid "Dismiss"
|
1211 |
+
msgstr "סגירה"
|
1212 |
|
1213 |
+
#: templates/auto-installation.php:44
|
1214 |
+
msgid "%s sec"
|
1215 |
+
msgstr "%s שניות"
|
1216 |
|
1217 |
+
#: templates/auto-installation.php:82
|
1218 |
+
msgid "Automatic Installation"
|
1219 |
+
msgstr "התקנה אוטומטית"
|
1220 |
|
1221 |
+
#: templates/auto-installation.php:92
|
1222 |
+
msgid "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
|
1223 |
+
msgstr "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
|
1224 |
|
1225 |
+
#: templates/auto-installation.php:103
|
1226 |
+
msgid "The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page."
|
1227 |
+
msgstr "The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page."
|
1228 |
|
1229 |
+
#: templates/auto-installation.php:108
|
1230 |
+
msgid "Cancel Installation"
|
1231 |
+
msgstr "בטל התקנה"
|
1232 |
|
1233 |
+
#: templates/checkout.php:168
|
1234 |
+
msgid "Checkout"
|
1235 |
+
msgstr "Checkout"
|
1236 |
|
1237 |
+
#: templates/checkout.php:168
|
1238 |
+
msgid "PCI compliant"
|
1239 |
+
msgstr "PCI compliant"
|
1240 |
|
1241 |
+
#: templates/connect.php:128
|
1242 |
+
msgid "Allow & Continue"
|
1243 |
+
msgstr "אפשר\\י והמשכ\\י"
|
1244 |
|
1245 |
+
#: templates/connect.php:131
|
1246 |
+
msgid "Re-send activation email"
|
1247 |
+
msgstr "שליחה חוזרת של מייל האקטיבציה"
|
1248 |
|
1249 |
+
#: templates/connect.php:135
|
1250 |
+
msgid "Thanks %s!"
|
1251 |
+
msgstr "תודה %s!"
|
1252 |
|
1253 |
+
#: templates/connect.php143, templates/forms/license-activation.php:43
|
1254 |
+
msgid "Agree & Activate License"
|
1255 |
+
msgstr "הסכמה והפעלת רישיון"
|
1256 |
|
1257 |
+
#: templates/connect.php147, templates/connect.php:170
|
1258 |
+
msgctxt "greeting"
|
1259 |
+
msgid "Hey %s,"
|
1260 |
+
msgstr "היי %s,"
|
1261 |
|
1262 |
+
#: templates/connect.php:148
|
1263 |
+
msgid "Thanks for purchasing %s! To get started, please enter your license key:"
|
1264 |
+
msgstr "Thanks for purchasing %s! To get started, please enter your license key:"
|
1265 |
|
1266 |
+
#: templates/connect.php:154
|
1267 |
+
msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
|
1268 |
+
msgstr "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
|
1269 |
|
1270 |
+
#: templates/connect.php:159
|
1271 |
+
msgid "Please help us improve %1$s! If you opt in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
|
1272 |
+
msgstr "Please help us improve %1$s! If you opt in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
|
1273 |
|
1274 |
+
#: templates/connect.php189, templates/forms/license-activation.php:46
|
1275 |
+
msgid "License key"
|
1276 |
+
msgstr "מפתח רישיון"
|
1277 |
|
1278 |
+
#: templates/connect.php192, templates/forms/license-activation.php:19
|
1279 |
+
msgid "Can't find your license key?"
|
1280 |
+
msgstr "האם אינך מוצא את מפתח הרישיון?"
|
1281 |
|
1282 |
+
#: templates/connect.php199, templates/forms/deactivation/retry-skip.php:20
|
1283 |
+
msgctxt "verb"
|
1284 |
+
msgid "Skip"
|
1285 |
+
msgstr "דלג"
|
1286 |
|
1287 |
+
#: templates/connect.php:228
|
1288 |
+
msgid "Your Profile Overview"
|
1289 |
+
msgstr "פרטים כלליים על הפרופיל"
|
1290 |
|
1291 |
+
#: templates/connect.php:229
|
1292 |
+
msgid "Name and email address"
|
1293 |
+
msgstr "שם וכתובת דו\"אל"
|
1294 |
|
1295 |
+
#: templates/connect.php:234
|
1296 |
+
msgid "Your Site Overview"
|
1297 |
+
msgstr "פרטים כלליים על האתר"
|
1298 |
|
1299 |
+
#: templates/connect.php:235
|
1300 |
+
msgid "Site URL, WP version, PHP info, plugins & themes"
|
1301 |
+
msgstr "כתובת אתר, גרסת וורדפרס, פרטי PHP, תוספים ותבניות"
|
1302 |
|
1303 |
+
#: templates/connect.php:240
|
1304 |
+
msgid "Admin Notices"
|
1305 |
+
msgstr "התראות מנהל"
|
1306 |
|
1307 |
+
#: templates/connect.php241, templates/connect.php:263
|
1308 |
+
msgid "Updates, announcements, marketing, no spam"
|
1309 |
+
msgstr "עדכונים, הכרזות, הודעות שיווקיות, ללא דואר זבל"
|
|
|
1310 |
|
1311 |
+
#: templates/connect.php:246
|
1312 |
+
msgid "Current %s Events"
|
1313 |
+
msgstr "Current %s Events"
|
|
|
1314 |
|
1315 |
+
#: templates/connect.php:247
|
1316 |
+
msgid "Activation, deactivation and uninstall"
|
1317 |
+
msgstr "הפעלה, כיבוי והסרה"
|
|
|
1318 |
|
1319 |
+
#: templates/connect.php:262
|
1320 |
+
msgid "Newsletter"
|
1321 |
+
msgstr "ניוסלטר"
|
|
|
1322 |
|
1323 |
+
#: templates/connect.php279, templates/forms/license-activation.php:38
|
1324 |
+
msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
|
1325 |
+
msgstr "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
|
|
|
1326 |
|
1327 |
+
#: templates/connect.php:284
|
1328 |
+
msgid "What permissions are being granted?"
|
1329 |
+
msgstr "מהן ההרשאות המוענקות?"
|
|
|
1330 |
|
1331 |
+
#: templates/connect.php:305
|
1332 |
+
msgid "Don't have a license key?"
|
1333 |
+
msgstr "האם אין ברשותך מפתח רישיון?"
|
1334 |
|
1335 |
+
#: templates/connect.php:306
|
1336 |
+
msgid "Activate Free Version"
|
1337 |
+
msgstr "הפעלת גירסה חינאמית"
|
|
|
1338 |
|
1339 |
+
#: templates/connect.php:308
|
1340 |
+
msgid "Have a license key?"
|
1341 |
+
msgstr "האם ברשותך רישיון?"
|
|
|
1342 |
|
1343 |
+
#: templates/connect.php:316
|
1344 |
+
msgid "Privacy Policy"
|
1345 |
+
msgstr "מדיניות פרטיות"
|
1346 |
|
1347 |
+
#: templates/connect.php:318
|
1348 |
+
msgid "Terms of Service"
|
1349 |
+
msgstr "תנאי השירות"
|
1350 |
|
1351 |
+
#: templates/connect.php:436
|
1352 |
+
msgctxt "as in the process of sending an email"
|
1353 |
+
msgid "Sending email"
|
1354 |
+
msgstr "שולח דוא\"ל"
|
1355 |
|
1356 |
+
#: templates/connect.php:437
|
1357 |
+
msgctxt "as activating plugin"
|
1358 |
+
msgid "Activating"
|
1359 |
+
msgstr "מפעיל"
|
1360 |
|
1361 |
+
#: templates/contact.php:74
|
1362 |
+
msgid "Contact"
|
1363 |
+
msgstr "Contact"
|
1364 |
|
1365 |
+
#: templates/debug.php:17
|
1366 |
+
msgctxt "as turned off"
|
1367 |
+
msgid "Off"
|
1368 |
+
msgstr "כבוי"
|
1369 |
|
1370 |
+
#: templates/debug.php:18
|
1371 |
+
msgctxt "as turned on"
|
1372 |
+
msgid "On"
|
1373 |
+
msgstr "דלוק"
|
1374 |
|
1375 |
+
#: templates/debug.php:20
|
1376 |
+
msgid "SDK"
|
1377 |
+
msgstr "SDK"
|
1378 |
|
1379 |
+
#: templates/debug.php:24
|
1380 |
+
msgctxt "as code debugging"
|
1381 |
+
msgid "Debugging"
|
1382 |
+
msgstr "דיבוג"
|
1383 |
|
1384 |
+
#: templates/debug.php54, templates/debug.php226, templates/debug.php:314
|
1385 |
+
msgid "Actions"
|
1386 |
+
msgstr "פעולות"
|
1387 |
|
1388 |
+
#: templates/debug.php:64
|
1389 |
+
msgid "Are you sure you want to delete all Freemius data?"
|
1390 |
+
msgstr "Are you sure you want to delete all Freemius data?"
|
1391 |
|
1392 |
+
#: templates/debug.php:64
|
1393 |
+
msgid "Delete All Accounts"
|
1394 |
+
msgstr "מחיקת כל החשבונות"
|
1395 |
|
1396 |
+
#: templates/debug.php:71
|
1397 |
+
msgid "Clear API Cache"
|
1398 |
+
msgstr "ניקוי מטמון ה-API"
|
1399 |
|
1400 |
+
#: templates/debug.php:78
|
1401 |
+
msgid "Sync Data From Server"
|
1402 |
+
msgstr "סנכרון מידע מהשרת"
|
1403 |
|
1404 |
+
#: templates/debug.php:82
|
1405 |
+
msgid "Load DB Option"
|
1406 |
+
msgstr "Load DB Option"
|
1407 |
|
1408 |
+
#: templates/debug.php:85
|
1409 |
+
msgid "Set DB Option"
|
1410 |
+
msgstr "Set DB Option"
|
1411 |
|
1412 |
+
#: templates/debug.php:162
|
1413 |
+
msgid "Key"
|
1414 |
+
msgstr "Key"
|
1415 |
|
1416 |
+
#: templates/debug.php:163
|
1417 |
+
msgid "Value"
|
1418 |
+
msgstr "Value"
|
1419 |
|
1420 |
+
#: templates/debug.php:179
|
1421 |
+
msgctxt "as software development kit versions"
|
1422 |
+
msgid "SDK Versions"
|
1423 |
+
msgstr "גרסאות SDK"
|
1424 |
|
1425 |
+
#: templates/debug.php:184
|
1426 |
+
msgid "SDK Path"
|
1427 |
+
msgstr "מיקום SDK"
|
1428 |
|
1429 |
+
#: templates/debug.php185, templates/debug.php:224
|
1430 |
+
msgid "Module Path"
|
1431 |
+
msgstr "Module Path"
|
1432 |
|
1433 |
+
#: templates/debug.php:186
|
1434 |
+
msgid "Is Active"
|
1435 |
+
msgstr "האם פעיל"
|
|
|
1436 |
|
1437 |
+
#: templates/debug.php214, templates/debug/plugins-themes-sync.php:35
|
1438 |
+
msgid "Plugins"
|
1439 |
+
msgstr "תוספים"
|
1440 |
|
1441 |
+
#: templates/debug.php214, templates/debug/plugins-themes-sync.php:56
|
1442 |
+
msgid "Themes"
|
1443 |
+
msgstr "תבניות"
|
1444 |
|
1445 |
+
#: templates/debug.php219, templates/debug.php309, templates/debug.php353,
|
1446 |
+
#: templates/debug/scheduled-crons.php:81
|
1447 |
+
msgid "Slug"
|
1448 |
+
msgstr "מזהה כתובת"
|
1449 |
|
1450 |
+
#: templates/debug.php221, templates/debug.php:352
|
1451 |
+
msgid "Title"
|
1452 |
+
msgstr "כותרת"
|
1453 |
|
1454 |
+
#: templates/debug.php:222
|
1455 |
+
msgctxt "as application program interface"
|
1456 |
+
msgid "API"
|
1457 |
+
msgstr "API"
|
1458 |
|
1459 |
+
#: templates/debug.php:223
|
1460 |
+
msgid "Freemius State"
|
1461 |
+
msgstr "מצב פרימיוס"
|
1462 |
|
1463 |
+
#: templates/debug.php:255
|
1464 |
+
msgctxt "as connection was successful"
|
1465 |
+
msgid "Connected"
|
1466 |
+
msgstr "מחובר"
|
1467 |
|
1468 |
+
#: templates/debug.php:256
|
1469 |
+
msgctxt "as connection blocked"
|
1470 |
+
msgid "Blocked"
|
1471 |
+
msgstr "חסום"
|
1472 |
|
1473 |
+
#: templates/debug.php:277
|
1474 |
+
msgid "Simulate Trial"
|
1475 |
+
msgstr "Simulate Trial"
|
1476 |
|
1477 |
+
#: templates/debug.php:302
|
1478 |
+
msgid "%s Installs"
|
1479 |
+
msgstr "%s התקנות"
|
1480 |
|
1481 |
+
#: templates/debug.php:304
|
1482 |
+
msgctxt "like websites"
|
1483 |
+
msgid "Sites"
|
1484 |
+
msgstr "אתרים"
|
1485 |
|
1486 |
+
#: templates/debug.php:347
|
1487 |
+
msgid "Add Ons of module %s"
|
1488 |
+
msgstr "Add Ons of module %s"
|
1489 |
|
1490 |
+
#: templates/debug.php:384
|
1491 |
+
msgid "Users"
|
1492 |
+
msgstr "משתמשים"
|
1493 |
|
1494 |
+
#: templates/debug.php:391
|
1495 |
+
msgid "Verified"
|
1496 |
+
msgstr "מאומת"
|
1497 |
|
1498 |
+
#: templates/debug.php:413
|
1499 |
+
msgid "%s Licenses"
|
1500 |
+
msgstr "%s Licenses"
|
1501 |
|
1502 |
+
#: templates/debug.php:418
|
1503 |
+
msgid "Plugin ID"
|
1504 |
+
msgstr "Plugin ID"
|
1505 |
|
1506 |
+
#: templates/debug.php:420
|
1507 |
+
msgid "Plan ID"
|
1508 |
+
msgstr "Plan ID"
|
1509 |
|
1510 |
+
#: templates/debug.php:421
|
1511 |
+
msgid "Quota"
|
1512 |
+
msgstr "Quota"
|
1513 |
|
1514 |
+
#: templates/debug.php:422
|
1515 |
+
msgid "Activated"
|
1516 |
+
msgstr "Activated"
|
|
|
1517 |
|
1518 |
+
#: templates/debug.php:423
|
1519 |
+
msgid "Blocking"
|
1520 |
+
msgstr "Blocking"
|
1521 |
|
1522 |
+
#: templates/debug.php:425
|
1523 |
+
msgctxt "as expiration date"
|
1524 |
+
msgid "Expiration"
|
1525 |
+
msgstr "תפוגה"
|
1526 |
|
1527 |
+
#: templates/debug.php:454
|
1528 |
+
msgid "Debug Log"
|
1529 |
+
msgstr "Debug Log"
|
1530 |
|
1531 |
+
#: templates/debug.php:458
|
1532 |
+
msgid "All Types"
|
1533 |
+
msgstr "כל הסוגים"
|
|
|
1534 |
|
1535 |
+
#: templates/debug.php:465
|
1536 |
+
msgid "All Requests"
|
1537 |
+
msgstr "כל הבקשות"
|
1538 |
|
1539 |
+
#: templates/debug.php470, templates/debug.php499,
|
1540 |
+
#: templates/debug/logger.php:25
|
1541 |
+
msgid "File"
|
1542 |
+
msgstr "קובץ"
|
1543 |
|
1544 |
+
#: templates/debug.php471, templates/debug.php497,
|
1545 |
+
#: templates/debug/logger.php:23
|
1546 |
+
msgid "Function"
|
1547 |
+
msgstr "פונקציה"
|
1548 |
|
1549 |
+
#: templates/debug.php:472
|
1550 |
+
msgid "Process ID"
|
1551 |
+
msgstr "Process ID"
|
1552 |
|
1553 |
+
#: templates/debug.php:473
|
1554 |
+
msgid "Logger"
|
1555 |
+
msgstr "Logger"
|
1556 |
|
1557 |
+
#: templates/debug.php474, templates/debug.php498,
|
1558 |
+
#: templates/debug/logger.php:24
|
1559 |
+
msgid "Message"
|
1560 |
+
msgstr "הודעה"
|
1561 |
|
1562 |
+
#: templates/debug.php:476
|
1563 |
+
msgid "Filter"
|
1564 |
+
msgstr "פילטר"
|
1565 |
|
1566 |
+
#: templates/debug.php:484
|
1567 |
+
msgid "Download"
|
1568 |
+
msgstr "הורדה"
|
1569 |
|
1570 |
+
#: templates/debug.php495, templates/debug/logger.php:22
|
1571 |
+
msgid "Type"
|
1572 |
+
msgstr "סוג"
|
1573 |
|
1574 |
+
#: templates/debug.php500, templates/debug/logger.php:26
|
1575 |
+
msgid "Timestamp"
|
1576 |
+
msgstr "Timestamp"
|
1577 |
|
1578 |
+
#: templates/secure-https-header.php:28
|
1579 |
+
msgid "Secure HTTPS %s page, running from an external domain"
|
1580 |
+
msgstr "Secure HTTPS %s page, running from an external domain"
|
1581 |
|
1582 |
+
#: includes/customizer/class-fs-customizer-support-section.php55,
|
1583 |
+
#: templates/plugin-info/features.php:43
|
1584 |
+
msgid "Support"
|
1585 |
+
msgstr "תמיכה"
|
1586 |
|
1587 |
+
#: includes/debug/class-fs-debug-bar-panel.php48,
|
1588 |
+
#: templates/debug/api-calls.php54, templates/debug/logger.php:62
|
1589 |
+
msgctxt "milliseconds"
|
1590 |
+
msgid "ms"
|
1591 |
+
msgstr "ms"
|
1592 |
|
1593 |
+
#: includes/debug/debug-bar-start.php:41
|
1594 |
+
msgid "Freemius API"
|
1595 |
+
msgstr "Freemius API"
|
1596 |
|
1597 |
+
#: includes/debug/debug-bar-start.php:42
|
1598 |
+
msgid "Requests"
|
1599 |
+
msgstr "Requests"
|
1600 |
|
1601 |
+
#: templates/account/billing.php:28
|
1602 |
+
msgctxt "verb"
|
1603 |
+
msgid "Update"
|
1604 |
+
msgstr "עדכן"
|
1605 |
|
1606 |
+
#: templates/account/billing.php:39
|
1607 |
+
msgid "Billing"
|
1608 |
+
msgstr "בילינג"
|
1609 |
|
1610 |
+
#: templates/account/billing.php44, templates/account/billing.php:44
|
1611 |
+
msgid "Business name"
|
1612 |
+
msgstr "שם עסק"
|
1613 |
|
1614 |
+
#: templates/account/billing.php45, templates/account/billing.php:45
|
1615 |
+
msgid "Tax / VAT ID"
|
1616 |
+
msgstr "Tax / VAT ID"
|
1617 |
|
1618 |
+
#: templates/account/billing.php48, templates/account/billing.php48,
|
1619 |
+
#: templates/account/billing.php49, templates/account/billing.php:49
|
1620 |
+
msgid "Address Line %d"
|
1621 |
+
msgstr "כתובת %s"
|
1622 |
|
1623 |
+
#: templates/account/billing.php52, templates/account/billing.php:52
|
1624 |
+
msgid "City"
|
1625 |
+
msgstr "עיר"
|
1626 |
|
1627 |
+
#: templates/account/billing.php52, templates/account/billing.php:52
|
1628 |
+
msgid "Town"
|
1629 |
+
msgstr "כפר"
|
|
|
1630 |
|
1631 |
+
#: templates/account/billing.php53, templates/account/billing.php:53
|
1632 |
+
msgid "ZIP / Postal Code"
|
1633 |
+
msgstr "מיקוד / תא דואר"
|
1634 |
|
1635 |
+
#: templates/account/billing.php:308
|
1636 |
+
msgid "Country"
|
1637 |
+
msgstr "מדינה"
|
1638 |
|
1639 |
+
#: templates/account/billing.php:310
|
1640 |
+
msgid "Select Country"
|
1641 |
+
msgstr "בחר מדינה"
|
1642 |
|
1643 |
+
#: templates/account/billing.php317, templates/account/billing.php:318
|
1644 |
+
msgid "State"
|
1645 |
+
msgstr "מחוז/מדינה"
|
1646 |
|
1647 |
+
#: templates/account/billing.php317, templates/account/billing.php:318
|
1648 |
+
msgid "Province"
|
1649 |
+
msgstr "פרובינציה"
|
1650 |
|
1651 |
+
#: templates/account/payments.php:29
|
1652 |
+
msgid "Payments"
|
1653 |
+
msgstr "תשלומים"
|
1654 |
|
1655 |
+
#: templates/account/payments.php:36
|
1656 |
+
msgid "Date"
|
1657 |
+
msgstr "תאריך"
|
1658 |
|
1659 |
+
#: templates/account/payments.php:37
|
1660 |
+
msgid "Amount"
|
1661 |
+
msgstr "סכום"
|
1662 |
|
1663 |
+
#: templates/account/payments.php38, templates/account/payments.php:50
|
1664 |
+
msgid "Invoice"
|
1665 |
+
msgstr "חשבונית"
|
1666 |
|
1667 |
+
#: templates/debug/api-calls.php:56
|
1668 |
+
msgid "API"
|
1669 |
+
msgstr "API"
|
1670 |
|
1671 |
+
#: templates/debug/api-calls.php:68
|
1672 |
+
msgid "Method"
|
1673 |
+
msgstr "Method"
|
1674 |
|
1675 |
+
#: templates/debug/api-calls.php:69
|
1676 |
+
msgid "Code"
|
1677 |
+
msgstr "Code"
|
1678 |
|
1679 |
+
#: templates/debug/api-calls.php:70
|
1680 |
+
msgid "Length"
|
1681 |
+
msgstr "Length"
|
1682 |
|
1683 |
+
#: templates/debug/api-calls.php:71
|
1684 |
+
msgctxt "as file/folder path"
|
1685 |
+
msgid "Path"
|
1686 |
+
msgstr "נתיב"
|
1687 |
|
1688 |
+
#: templates/debug/api-calls.php:73
|
1689 |
+
msgid "Body"
|
1690 |
+
msgstr "Body"
|
1691 |
|
1692 |
+
#: templates/debug/api-calls.php:75
|
1693 |
+
msgid "Result"
|
1694 |
+
msgstr "Result"
|
1695 |
|
1696 |
+
#: templates/debug/api-calls.php:76
|
1697 |
+
msgid "Start"
|
1698 |
+
msgstr "Start"
|
|
|
1699 |
|
1700 |
+
#: templates/debug/api-calls.php:77
|
1701 |
+
msgid "End"
|
1702 |
+
msgstr "End"
|
1703 |
|
1704 |
+
#: templates/debug/logger.php:15
|
1705 |
+
msgid "Log"
|
1706 |
+
msgstr "Log"
|
1707 |
|
1708 |
+
#. translators: %s: time period (e.g. In "2 hours")
|
1709 |
+
#: templates/debug/plugins-themes-sync.php18,
|
1710 |
+
#: templates/debug/scheduled-crons.php:92
|
1711 |
+
msgid "In %s"
|
1712 |
+
msgstr "בעוד %s"
|
1713 |
|
1714 |
+
#. translators: %s: time period (e.g. "2 hours" ago)
|
1715 |
+
#: templates/debug/plugins-themes-sync.php20,
|
1716 |
+
#: templates/debug/scheduled-crons.php:94
|
1717 |
+
msgid "%s ago"
|
1718 |
+
msgstr "לפני %s"
|
1719 |
|
1720 |
+
#: templates/debug/plugins-themes-sync.php21,
|
1721 |
+
#: templates/debug/scheduled-crons.php:75
|
1722 |
+
msgctxt "seconds"
|
1723 |
+
msgid "sec"
|
1724 |
+
msgstr "sec"
|
1725 |
|
1726 |
+
#: templates/debug/plugins-themes-sync.php:23
|
1727 |
+
msgid "Plugins & Themes Sync"
|
1728 |
+
msgstr "Plugins & Themes Sync"
|
|
|
1729 |
|
1730 |
+
#: templates/debug/plugins-themes-sync.php:28
|
1731 |
+
msgid "Total"
|
1732 |
+
msgstr "Total"
|
|
|
1733 |
|
1734 |
+
#: templates/debug/plugins-themes-sync.php29,
|
1735 |
+
#: templates/debug/scheduled-crons.php:85
|
1736 |
+
msgid "Last"
|
1737 |
+
msgstr "Last"
|
1738 |
|
1739 |
+
#: templates/debug/scheduled-crons.php:77
|
1740 |
+
msgid "Scheduled Crons"
|
1741 |
+
msgstr "Scheduled Crons"
|
1742 |
|
1743 |
+
#: templates/debug/scheduled-crons.php:82
|
1744 |
+
msgid "Module"
|
1745 |
+
msgstr "מודול"
|
1746 |
|
1747 |
+
#: templates/debug/scheduled-crons.php:83
|
1748 |
+
msgid "Module Type"
|
1749 |
+
msgstr "סוג מודול"
|
1750 |
|
1751 |
+
#: templates/debug/scheduled-crons.php:84
|
1752 |
+
msgid "Cron Type"
|
1753 |
+
msgstr "Cron Type"
|
1754 |
|
1755 |
+
#: templates/debug/scheduled-crons.php:86
|
1756 |
+
msgid "Next"
|
1757 |
+
msgstr "Next"
|
|
|
1758 |
|
1759 |
+
#: templates/forms/affiliation.php:81
|
1760 |
+
msgid "Non-expiring"
|
1761 |
+
msgstr "Non-expiring"
|
|
|
1762 |
|
1763 |
+
#: templates/forms/affiliation.php:84
|
1764 |
+
msgid "Apply to become an affiliate"
|
1765 |
+
msgstr "Apply to become an affiliate"
|
|
|
1766 |
|
1767 |
+
#: templates/forms/affiliation.php:103
|
1768 |
+
msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
|
1769 |
+
msgstr "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
|
|
|
1770 |
|
1771 |
+
#: templates/forms/affiliation.php:114
|
1772 |
+
msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
|
1773 |
+
msgstr "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
|
|
|
1774 |
|
1775 |
+
#: templates/forms/affiliation.php:117
|
1776 |
+
msgid "Your affiliation account was temporarily suspended."
|
1777 |
+
msgstr "Your affiliation account was temporarily suspended."
|
|
|
1778 |
|
1779 |
+
#: templates/forms/affiliation.php:120
|
1780 |
+
msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
|
1781 |
+
msgstr "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
|
1782 |
|
1783 |
+
#: templates/forms/affiliation.php:123
|
1784 |
+
msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
|
1785 |
+
msgstr "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
|
|
|
1786 |
|
1787 |
+
#: templates/forms/affiliation.php:136
|
1788 |
+
msgid "Like the %s? Become our ambassador and earn cash ;-)"
|
1789 |
+
msgstr "Like the %s? Become our ambassador and earn cash ;-)"
|
|
|
1790 |
|
1791 |
+
#: templates/forms/affiliation.php:137
|
1792 |
+
msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
|
1793 |
+
msgstr "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
|
|
|
1794 |
|
1795 |
+
#: templates/forms/affiliation.php:140
|
1796 |
+
msgid "Program Summary"
|
1797 |
+
msgstr "Program Summary"
|
1798 |
|
1799 |
+
#: templates/forms/affiliation.php:142
|
1800 |
+
msgid "%s commission when a customer purchases a new license."
|
1801 |
+
msgstr "%s commission when a customer purchases a new license."
|
|
|
1802 |
|
1803 |
+
#: templates/forms/affiliation.php:144
|
1804 |
+
msgid "Get commission for automated subscription renewals."
|
1805 |
+
msgstr "Get commission for automated subscription renewals."
|
1806 |
|
1807 |
+
#: templates/forms/affiliation.php:147
|
1808 |
+
msgid "%s tracking cookie after the first visit to maximize earnings potential."
|
1809 |
+
msgstr "%s tracking cookie after the first visit to maximize earnings potential."
|
1810 |
|
1811 |
+
#: templates/forms/affiliation.php:150
|
1812 |
+
msgid "Unlimited commissions."
|
1813 |
+
msgstr "Unlimited commissions."
|
1814 |
|
1815 |
+
#: templates/forms/affiliation.php:152
|
1816 |
+
msgid "%s minimum payout amount."
|
1817 |
+
msgstr "%s minimum payout amount."
|
1818 |
|
1819 |
+
#: templates/forms/affiliation.php:153
|
1820 |
+
msgid "Payouts are in USD and processed monthly via PayPal."
|
1821 |
+
msgstr "Payouts are in USD and processed monthly via PayPal."
|
1822 |
|
1823 |
+
#: templates/forms/affiliation.php:154
|
1824 |
+
msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
|
1825 |
+
msgstr "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
|
1826 |
|
1827 |
+
#: templates/forms/affiliation.php:157
|
1828 |
+
msgid "Affiliate"
|
1829 |
+
msgstr "Affiliate"
|
1830 |
|
1831 |
+
#: templates/forms/affiliation.php160, templates/forms/resend-key.php:23
|
1832 |
+
msgid "Email address"
|
1833 |
+
msgstr "כתובת דוא\"ל"
|
1834 |
|
1835 |
+
#: templates/forms/affiliation.php:164
|
1836 |
+
msgid "Full name"
|
1837 |
+
msgstr "Full name"
|
1838 |
|
1839 |
+
#: templates/forms/affiliation.php:168
|
1840 |
+
msgid "PayPal account email address"
|
1841 |
+
msgstr "PayPal account email address"
|
1842 |
|
1843 |
+
#: templates/forms/affiliation.php:172
|
1844 |
+
msgid "Where are you going to promote the %s?"
|
1845 |
+
msgstr "Where are you going to promote the %s?"
|
1846 |
|
1847 |
+
#: templates/forms/affiliation.php:174
|
1848 |
+
msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
|
1849 |
+
msgstr "Enter the domain of your website or other websites from where you plan to promote the %s."
|
1850 |
|
1851 |
+
#: templates/forms/affiliation.php:176
|
1852 |
+
msgid "Add another domain"
|
1853 |
+
msgstr "Add another domain"
|
1854 |
|
1855 |
+
#: templates/forms/affiliation.php:180
|
1856 |
+
msgid "Extra Domains"
|
1857 |
+
msgstr "Extra Domains"
|
1858 |
|
1859 |
+
#: templates/forms/affiliation.php:181
|
1860 |
+
msgid "Extra domains where you will be marketing the product from."
|
1861 |
+
msgstr "Extra domains where you will be marketing the product from."
|
1862 |
|
1863 |
+
#: templates/forms/affiliation.php:191
|
1864 |
+
msgid "Promotion methods"
|
1865 |
+
msgstr "Promotion methods"
|
1866 |
|
1867 |
+
#: templates/forms/affiliation.php:194
|
1868 |
+
msgid "Social media (Facebook, Twitter, etc.)"
|
1869 |
+
msgstr "Social media (Facebook, Twitter, etc.)"
|
1870 |
|
1871 |
+
#: templates/forms/affiliation.php:198
|
1872 |
+
msgid "Mobile apps"
|
1873 |
+
msgstr "Mobile apps"
|
1874 |
|
1875 |
+
#: templates/forms/affiliation.php:202
|
1876 |
+
msgid "Website, email, and social media statistics (optional)"
|
1877 |
+
msgstr "Website, email, and social media statistics (optional)"
|
1878 |
|
1879 |
+
#: templates/forms/affiliation.php:205
|
1880 |
+
msgid "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
|
1881 |
+
msgstr "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
|
1882 |
|
1883 |
+
#: templates/forms/affiliation.php:209
|
1884 |
+
msgid "How will you promote us?"
|
1885 |
+
msgstr "How will you promote us?"
|
1886 |
|
1887 |
+
#: templates/forms/affiliation.php:212
|
1888 |
+
msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
|
1889 |
+
msgstr "Please provide details on how you intend to promote %s (please be as specific as possible)."
|
1890 |
|
1891 |
+
#: templates/forms/affiliation.php218, templates/forms/resend-key.php:22
|
1892 |
+
msgid "Cancel"
|
1893 |
+
msgstr "בטל"
|
1894 |
|
1895 |
+
#: templates/forms/affiliation.php:220
|
1896 |
+
msgid "Become an affiliate"
|
1897 |
+
msgstr "Become an affiliate"
|
1898 |
|
1899 |
+
#: templates/forms/affiliation.php:275
|
1900 |
+
msgid "Email address is required."
|
1901 |
+
msgstr "Email address is required."
|
1902 |
|
1903 |
+
#: templates/forms/affiliation.php:281
|
1904 |
+
msgid "PayPal email address is required."
|
1905 |
+
msgstr "PayPal email address is required."
|
1906 |
|
1907 |
+
#: templates/forms/affiliation.php:291
|
1908 |
+
msgid "Domain is required."
|
1909 |
+
msgstr "Domain is required."
|
1910 |
|
1911 |
+
#: templates/forms/affiliation.php294, templates/forms/affiliation.php:308
|
1912 |
+
msgid "Invalid domain"
|
1913 |
+
msgstr "Invalid domain"
|
1914 |
|
1915 |
+
#: templates/forms/affiliation.php:364
|
1916 |
+
msgid "Processing"
|
1917 |
+
msgstr "Processing"
|
|
|
1918 |
|
1919 |
+
#: templates/forms/license-activation.php:20
|
1920 |
+
msgid "Please enter the license key that you received in the email right after the purchase:"
|
1921 |
+
msgstr "אנא הזן את הרישיון שקיבלת לתיבת הדואל שלך לאחר השלמת הרכישה."
|
|
|
1922 |
|
1923 |
+
#: templates/forms/license-activation.php:25
|
1924 |
+
msgid "Update License"
|
1925 |
+
msgstr "עדכון רישיון"
|
|
|
1926 |
|
1927 |
+
#: templates/forms/optout.php:30
|
1928 |
+
msgctxt "verb"
|
1929 |
+
msgid "Opt Out"
|
1930 |
+
msgstr "Opt Out"
|
1931 |
|
1932 |
+
#: templates/forms/optout.php:31
|
1933 |
+
msgctxt "verb"
|
1934 |
+
msgid "Opt In"
|
1935 |
+
msgstr "Opt In"
|
1936 |
|
1937 |
+
#: templates/forms/optout.php:32
|
1938 |
+
msgid "We appreciate your help in making the %s better by letting us track some usage data."
|
1939 |
+
msgstr "We appreciate your help in making the %s better by letting us track some usage data."
|
|
|
1940 |
|
1941 |
+
#: templates/forms/optout.php:33
|
1942 |
+
msgid "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
|
1943 |
+
msgstr "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
|
1944 |
|
1945 |
+
#: templates/forms/optout.php:35
|
1946 |
+
msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
|
1947 |
+
msgstr "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
|
1948 |
|
1949 |
+
#: templates/forms/resend-key.php:21
|
1950 |
+
msgid "Send License Key"
|
1951 |
+
msgstr "שליחת מפתח רישיון"
|
1952 |
|
1953 |
+
#: templates/forms/resend-key.php:57
|
1954 |
+
msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
|
1955 |
+
msgstr "הזן את כתובת הדואל שאיתה שידרגת כדי לקבל את הרישיון שוב."
|
1956 |
|
1957 |
+
#: templates/forms/trial-start.php:22
|
1958 |
+
msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
|
1959 |
+
msgstr "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
|
1960 |
|
1961 |
+
#: templates/forms/trial-start.php:28
|
1962 |
+
msgid "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial."
|
1963 |
+
msgstr "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial."
|
1964 |
|
1965 |
+
#: templates/js/style-premium-theme.php:37
|
1966 |
+
msgid "Premium"
|
1967 |
+
msgstr "Premium"
|
1968 |
|
1969 |
+
#: templates/plugin-info/description.php72,
|
1970 |
+
#: templates/plugin-info/screenshots.php:31
|
1971 |
+
msgid "Click to view full-size screenshot %d"
|
1972 |
+
msgstr "Click to view full-size screenshot %d"
|
1973 |
|
1974 |
+
#: templates/plugin-info/features.php:56
|
1975 |
+
msgid "Unlimited Updates"
|
1976 |
+
msgstr "עדכונים ללא הגבלה"
|
1977 |
|
1978 |
+
#: templates/forms/deactivation/contact.php:19
|
1979 |
+
msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
|
1980 |
+
msgstr "מצטערים על חוסר הנעימות, אנחנו כאן כדי לעזור אם תאפשר\\י זאת."
|
|
|
1981 |
|
1982 |
+
#: templates/forms/deactivation/contact.php:22
|
1983 |
+
msgid "Contact Support"
|
1984 |
+
msgstr "צור קשר"
|
1985 |
|
1986 |
+
#: templates/forms/deactivation/form.php:56
|
1987 |
+
msgid "Anonymous feedback"
|
1988 |
+
msgstr "פידבק אנונימי"
|
1989 |
|
1990 |
+
#: templates/forms/deactivation/form.php:63
|
1991 |
+
msgid "Deactivate"
|
1992 |
+
msgstr "כיבוי"
|
1993 |
|
1994 |
+
#: templates/forms/deactivation/form.php:65
|
1995 |
+
msgid "Activate %s"
|
1996 |
+
msgstr "Activate %s"
|
1997 |
|
1998 |
+
#: templates/forms/deactivation/form.php:76
|
1999 |
+
msgid "Quick feedback"
|
2000 |
+
msgstr "פידבק זריז"
|
2001 |
|
2002 |
+
#: templates/forms/deactivation/form.php:80
|
2003 |
+
msgid "If you have a moment, please let us know why you are %s"
|
2004 |
+
msgstr "If you have a moment, please let us know why you are %s"
|
2005 |
|
2006 |
+
#: templates/forms/deactivation/form.php:80
|
2007 |
+
msgid "deactivating"
|
2008 |
+
msgstr "deactivating"
|
2009 |
|
2010 |
+
#: templates/forms/deactivation/form.php:80
|
2011 |
+
msgid "switching"
|
2012 |
+
msgstr "switching"
|
2013 |
|
2014 |
+
#: templates/forms/deactivation/form.php:248
|
2015 |
+
msgid "Submit & %s"
|
2016 |
+
msgstr "Submit & %s"
|
2017 |
|
2018 |
+
#: templates/forms/deactivation/form.php:269
|
2019 |
+
msgid "Kindly tell us the reason so we can improve."
|
2020 |
+
msgstr "אנא שתף את הסיבה כדי שנוכל להשתפר."
|
2021 |
|
2022 |
+
#: templates/forms/deactivation/form.php:390
|
2023 |
+
msgid "Yes - %s"
|
2024 |
+
msgstr "Yes - %s"
|
2025 |
|
2026 |
+
#: templates/forms/deactivation/form.php:397
|
2027 |
+
msgid "Skip & %s"
|
2028 |
+
msgstr "דלג ו%s"
|
2029 |
|
2030 |
+
#: templates/forms/deactivation/retry-skip.php:21
|
2031 |
+
msgid "Click here to use the plugin anonymously"
|
2032 |
+
msgstr "Click here to use the plugin anonymously"
|
2033 |
|
2034 |
+
#: templates/forms/deactivation/retry-skip.php:23
|
2035 |
+
msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
|
2036 |
+
msgstr "אולי פספסת את זה אבל אינך חייב\\ת לשתף כל מידע איתנו, ביכולתך %s על שיתוף המידע."
|
freemius/languages/freemius.pot
CHANGED
@@ -10,1812 +10,1267 @@ msgstr ""
|
|
10 |
"Last-Translator: Vova Feldman <vova@freemius.com>\n"
|
11 |
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
12 |
"X-Poedit-Basepath: ..\n"
|
13 |
-
"X-Poedit-KeywordsList:
|
14 |
"X-Poedit-SearchPath-0: .\n"
|
15 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
|
19 |
-
#: includes/
|
20 |
-
msgid "
|
21 |
msgstr ""
|
22 |
|
23 |
-
#: includes/
|
24 |
-
msgid "
|
25 |
-
msgstr ""
|
26 |
-
|
27 |
-
#: includes/i18n.php:39
|
28 |
-
msgid "Contact Us"
|
29 |
-
msgstr ""
|
30 |
-
|
31 |
-
#: includes/i18n.php:40
|
32 |
-
msgid "Contact Support"
|
33 |
-
msgstr ""
|
34 |
-
|
35 |
-
#: includes/i18n.php:41
|
36 |
-
msgid "Change Ownership"
|
37 |
-
msgstr ""
|
38 |
-
|
39 |
-
#: includes/i18n.php:42
|
40 |
-
msgid "Support"
|
41 |
-
msgstr ""
|
42 |
-
|
43 |
-
#: includes/i18n.php:43
|
44 |
-
msgid "Support Forum"
|
45 |
-
msgstr ""
|
46 |
-
|
47 |
-
#: includes/i18n.php:44
|
48 |
-
msgid "Add-Ons"
|
49 |
-
msgstr ""
|
50 |
-
|
51 |
-
#: includes/i18n.php:45
|
52 |
-
msgctxt "verb"
|
53 |
-
msgid "Upgrade"
|
54 |
-
msgstr ""
|
55 |
-
|
56 |
-
#: includes/i18n.php:46
|
57 |
-
msgid "Awesome"
|
58 |
-
msgstr ""
|
59 |
-
|
60 |
-
#: includes/i18n.php:47
|
61 |
-
msgctxt "noun"
|
62 |
-
msgid "Pricing"
|
63 |
-
msgstr ""
|
64 |
-
|
65 |
-
#: includes/i18n.php:48
|
66 |
-
msgctxt "noun"
|
67 |
-
msgid "Price"
|
68 |
-
msgstr ""
|
69 |
-
|
70 |
-
#: includes/i18n.php:49
|
71 |
-
msgid "Unlimited Updates"
|
72 |
-
msgstr ""
|
73 |
-
|
74 |
-
#: includes/i18n.php:50
|
75 |
-
msgctxt "verb"
|
76 |
-
msgid "Downgrade"
|
77 |
-
msgstr ""
|
78 |
-
|
79 |
-
#: includes/i18n.php:51
|
80 |
-
msgctxt "verb"
|
81 |
-
msgid "Cancel Subscription"
|
82 |
-
msgstr ""
|
83 |
-
|
84 |
-
#: includes/i18n.php:52
|
85 |
-
msgid "Cancel Trial"
|
86 |
-
msgstr ""
|
87 |
-
|
88 |
-
#: includes/i18n.php:53
|
89 |
-
msgid "Free Trial"
|
90 |
-
msgstr ""
|
91 |
-
|
92 |
-
#: includes/i18n.php:54
|
93 |
-
msgid "Start my free %s"
|
94 |
-
msgstr ""
|
95 |
-
|
96 |
-
#: includes/i18n.php:55
|
97 |
-
msgid "No commitment for %s - cancel anytime"
|
98 |
-
msgstr ""
|
99 |
-
|
100 |
-
#: includes/i18n.php:56
|
101 |
-
msgid "After your free %s, pay as little as %s"
|
102 |
-
msgstr ""
|
103 |
-
|
104 |
-
#: includes/i18n.php:57
|
105 |
-
msgid "Details"
|
106 |
-
msgstr ""
|
107 |
-
|
108 |
-
#: includes/i18n.php:58
|
109 |
-
msgid "Account Details"
|
110 |
-
msgstr ""
|
111 |
-
|
112 |
-
#: includes/i18n.php:59
|
113 |
-
msgctxt "verb"
|
114 |
-
msgid "Delete"
|
115 |
-
msgstr ""
|
116 |
-
|
117 |
-
#: includes/i18n.php:60
|
118 |
-
msgctxt "verb"
|
119 |
-
msgid "Show"
|
120 |
-
msgstr ""
|
121 |
-
|
122 |
-
#: includes/i18n.php:61
|
123 |
-
msgctxt "verb"
|
124 |
-
msgid "Hide"
|
125 |
-
msgstr ""
|
126 |
-
|
127 |
-
#: includes/i18n.php:62
|
128 |
-
msgctxt "verb"
|
129 |
-
msgid "Edit"
|
130 |
-
msgstr ""
|
131 |
-
|
132 |
-
#: includes/i18n.php:63
|
133 |
-
msgctxt "verb"
|
134 |
-
msgid "Update"
|
135 |
-
msgstr ""
|
136 |
-
|
137 |
-
#: includes/i18n.php:64
|
138 |
-
msgid "Date"
|
139 |
-
msgstr ""
|
140 |
-
|
141 |
-
#: includes/i18n.php:65
|
142 |
-
msgid "Amount"
|
143 |
-
msgstr ""
|
144 |
-
|
145 |
-
#: includes/i18n.php:66
|
146 |
-
msgid "Invoice"
|
147 |
-
msgstr ""
|
148 |
-
|
149 |
-
#: includes/i18n.php:67
|
150 |
-
msgid "Billing"
|
151 |
-
msgstr ""
|
152 |
-
|
153 |
-
#: includes/i18n.php:68
|
154 |
-
msgid "Payments"
|
155 |
-
msgstr ""
|
156 |
-
|
157 |
-
#: includes/i18n.php:69
|
158 |
-
msgid "Delete Account"
|
159 |
-
msgstr ""
|
160 |
-
|
161 |
-
#: includes/i18n.php:70
|
162 |
-
msgctxt "as close a window"
|
163 |
-
msgid "Dismiss"
|
164 |
-
msgstr ""
|
165 |
-
|
166 |
-
#: includes/i18n.php:71
|
167 |
-
msgctxt "as product pricing plan"
|
168 |
-
msgid "Plan"
|
169 |
-
msgstr ""
|
170 |
-
|
171 |
-
#: includes/i18n.php:72
|
172 |
-
msgid "Change Plan"
|
173 |
-
msgstr ""
|
174 |
-
|
175 |
-
#: includes/i18n.php:73
|
176 |
-
msgctxt "as download professional version"
|
177 |
-
msgid "Download %s Version"
|
178 |
-
msgstr ""
|
179 |
-
|
180 |
-
#: includes/i18n.php:74
|
181 |
-
msgctxt "as download professional version now"
|
182 |
-
msgid "Download %s version now"
|
183 |
-
msgstr ""
|
184 |
-
|
185 |
-
#: includes/i18n.php:75
|
186 |
-
msgctxt "as download latest version"
|
187 |
-
msgid "Download Latest"
|
188 |
-
msgstr ""
|
189 |
-
|
190 |
-
#: includes/i18n.php:76
|
191 |
-
msgctxt "E.g. you have a professional license."
|
192 |
-
msgid "You have a %s license."
|
193 |
-
msgstr ""
|
194 |
-
|
195 |
-
#: includes/i18n.php:77
|
196 |
-
msgid "New"
|
197 |
-
msgstr ""
|
198 |
-
|
199 |
-
#: includes/i18n.php:78
|
200 |
-
msgid "Free"
|
201 |
-
msgstr ""
|
202 |
-
|
203 |
-
#: includes/i18n.php:79
|
204 |
-
msgctxt "as trial plan"
|
205 |
-
msgid "Trial"
|
206 |
msgstr ""
|
207 |
|
208 |
-
#: includes/
|
209 |
-
msgctxt "
|
210 |
-
msgid "
|
211 |
msgstr ""
|
212 |
|
213 |
-
#: includes/
|
214 |
-
msgctxt "
|
215 |
-
msgid "
|
216 |
msgstr ""
|
217 |
|
218 |
-
#: includes/
|
219 |
-
msgid "
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: includes/
|
223 |
-
|
224 |
-
msgid "Buy"
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: includes/
|
228 |
-
msgid "
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: includes/
|
232 |
-
|
|
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: includes/
|
236 |
-
|
|
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: includes/
|
240 |
-
msgid "
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: includes/
|
244 |
-
msgid "
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: includes/
|
248 |
-
msgid "
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: includes/
|
252 |
-
|
253 |
-
msgid "%s Plan"
|
254 |
msgstr ""
|
255 |
|
256 |
-
#: includes/
|
257 |
-
msgid "
|
258 |
msgstr ""
|
259 |
|
260 |
-
#: includes/
|
261 |
-
msgctxt "
|
262 |
-
msgid "
|
263 |
msgstr ""
|
264 |
|
265 |
-
#: includes/
|
266 |
-
msgid "
|
267 |
msgstr ""
|
268 |
|
269 |
-
#: includes/
|
270 |
-
msgid "
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: includes/
|
274 |
-
msgid "
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: includes/
|
278 |
-
msgid "
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: includes/
|
282 |
-
|
283 |
-
msgid "Expiration"
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: includes/
|
287 |
-
|
288 |
-
msgid "License"
|
289 |
msgstr ""
|
290 |
|
291 |
-
#: includes/
|
292 |
-
msgid "
|
293 |
msgstr ""
|
294 |
|
295 |
-
#: includes/
|
296 |
-
msgid "
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: includes/
|
300 |
-
|
301 |
-
msgid "Expires in %s"
|
302 |
msgstr ""
|
303 |
|
304 |
-
#: includes/
|
305 |
-
|
306 |
-
msgid "Auto renews in %s"
|
307 |
msgstr ""
|
308 |
|
309 |
-
#: includes/
|
310 |
-
msgid "
|
311 |
msgstr ""
|
312 |
|
313 |
-
#: includes/
|
314 |
-
msgid "
|
315 |
msgstr ""
|
316 |
|
317 |
-
#: includes/
|
318 |
-
msgid "
|
319 |
msgstr ""
|
320 |
|
321 |
-
#: includes/
|
322 |
-
|
323 |
-
msgid "In %s"
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: includes/
|
327 |
-
|
328 |
-
msgid "%s ago"
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: includes/
|
332 |
-
msgid "
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: includes/
|
336 |
-
|
337 |
-
msgid "Version"
|
338 |
msgstr ""
|
339 |
|
340 |
-
#: includes/
|
341 |
-
msgid "
|
342 |
msgstr ""
|
343 |
|
344 |
-
#: includes/
|
345 |
-
msgid "
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: includes/
|
349 |
-
msgid "
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: includes/
|
353 |
-
msgid "
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: includes/
|
357 |
-
msgid "
|
358 |
msgstr ""
|
359 |
|
360 |
-
#: includes/
|
361 |
-
msgid "
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: includes/
|
365 |
-
|
|
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: includes/
|
369 |
-
msgid "
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: includes/
|
373 |
-
msgid "
|
374 |
msgstr ""
|
375 |
|
376 |
-
#: includes/
|
377 |
-
|
|
|
378 |
msgstr ""
|
379 |
|
380 |
-
#: includes/
|
381 |
-
msgctxt "as
|
382 |
-
msgid "
|
383 |
msgstr ""
|
384 |
|
385 |
-
#: includes/
|
386 |
-
|
|
|
387 |
msgstr ""
|
388 |
|
389 |
-
#: includes/
|
390 |
-
msgid "
|
391 |
msgstr ""
|
392 |
|
393 |
-
#: includes/
|
394 |
-
|
|
|
395 |
msgstr ""
|
396 |
|
397 |
-
#: includes/
|
398 |
-
msgctxt "as
|
399 |
-
msgid "
|
400 |
msgstr ""
|
401 |
|
402 |
-
#: includes/
|
403 |
-
|
|
|
404 |
msgstr ""
|
405 |
|
406 |
-
#: includes/
|
407 |
-
msgid "
|
408 |
msgstr ""
|
409 |
|
410 |
-
#: includes/
|
411 |
-
msgid "
|
412 |
msgstr ""
|
413 |
|
414 |
-
#: includes/
|
415 |
-
|
416 |
-
msgid "Sites"
|
417 |
msgstr ""
|
418 |
|
419 |
-
#: includes/
|
420 |
-
|
|
|
421 |
msgstr ""
|
422 |
|
423 |
-
#: includes/
|
424 |
-
|
|
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: includes/
|
428 |
-
msgid "
|
429 |
msgstr ""
|
430 |
|
431 |
-
#: includes/
|
432 |
-
|
|
|
433 |
msgstr ""
|
434 |
|
435 |
-
#: includes/
|
436 |
-
|
437 |
-
msgid "No Secret"
|
438 |
msgstr ""
|
439 |
|
440 |
-
#: includes/
|
441 |
-
msgid "
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: includes/
|
445 |
-
|
446 |
-
msgid "Sync License"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: includes/
|
450 |
-
|
451 |
-
msgid "Sync"
|
452 |
msgstr ""
|
453 |
|
454 |
-
#: includes/
|
455 |
-
|
|
|
456 |
msgstr ""
|
457 |
|
458 |
-
#: includes/
|
459 |
-
msgid "
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: includes/
|
463 |
-
msgid "
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: includes/
|
467 |
-
msgid "
|
468 |
msgstr ""
|
469 |
|
470 |
-
#: includes/
|
471 |
-
msgid "
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: includes/
|
475 |
-
msgid "
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: includes/
|
479 |
-
msgid "
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: includes/
|
483 |
-
msgid "Activate"
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: includes/
|
487 |
-
msgid "
|
488 |
msgstr ""
|
489 |
|
490 |
-
#: includes/
|
491 |
-
msgid "
|
492 |
msgstr ""
|
493 |
|
494 |
-
#: includes/
|
495 |
-
msgid "
|
496 |
msgstr ""
|
497 |
|
498 |
-
#: includes/
|
499 |
-
msgid "
|
500 |
msgstr ""
|
501 |
|
502 |
-
#: includes/
|
503 |
-
msgid "
|
504 |
msgstr ""
|
505 |
|
506 |
-
#: includes/
|
507 |
-
|
508 |
-
msgid "Active"
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: includes/
|
512 |
-
|
513 |
-
msgid "Is Active"
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: includes/
|
517 |
-
msgid "
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: includes/
|
521 |
-
msgid "
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: includes/
|
525 |
-
msgid "
|
526 |
msgstr ""
|
527 |
|
528 |
-
#: includes/
|
529 |
-
msgid "
|
530 |
msgstr ""
|
531 |
|
532 |
-
#: includes/
|
533 |
-
|
534 |
-
msgid "Activate %s Plan"
|
535 |
msgstr ""
|
536 |
|
537 |
-
#:
|
538 |
-
|
539 |
-
msgid "%s left"
|
540 |
msgstr ""
|
541 |
|
542 |
-
#:
|
543 |
-
msgid "
|
544 |
msgstr ""
|
545 |
|
546 |
-
#:
|
547 |
-
msgid "
|
548 |
msgstr ""
|
549 |
|
550 |
-
#:
|
551 |
-
msgid "
|
552 |
msgstr ""
|
553 |
|
554 |
-
#:
|
555 |
-
msgid "
|
556 |
msgstr ""
|
557 |
|
558 |
-
#:
|
559 |
msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
560 |
msgstr ""
|
561 |
|
562 |
-
#:
|
563 |
-
msgid "
|
564 |
-
msgstr ""
|
565 |
-
|
566 |
-
#: includes/i18n.php:168
|
567 |
-
msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
|
568 |
-
msgstr ""
|
569 |
-
|
570 |
-
#: includes/i18n.php:169
|
571 |
-
msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
|
572 |
-
msgstr ""
|
573 |
-
|
574 |
-
#: includes/i18n.php:170
|
575 |
-
msgid "You can still enjoy all %s features but you will not have access to %s updates and support."
|
576 |
-
msgstr ""
|
577 |
-
|
578 |
-
#: includes/i18n.php:171
|
579 |
-
msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
|
580 |
-
msgstr ""
|
581 |
-
|
582 |
-
#: includes/i18n.php:172
|
583 |
-
msgid "Are you sure you want to proceed?"
|
584 |
-
msgstr ""
|
585 |
-
|
586 |
-
#: includes/i18n.php:175
|
587 |
-
msgid "Add Ons for %s"
|
588 |
-
msgstr ""
|
589 |
-
|
590 |
-
#: includes/i18n.php:176
|
591 |
-
msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
|
592 |
-
msgstr ""
|
593 |
-
|
594 |
-
#: includes/i18n.php:178
|
595 |
-
msgid "Anonymous feedback"
|
596 |
-
msgstr ""
|
597 |
-
|
598 |
-
#: includes/i18n.php:179
|
599 |
-
msgid "Quick feedback"
|
600 |
-
msgstr ""
|
601 |
-
|
602 |
-
#: includes/i18n.php:180
|
603 |
-
msgid "If you have a moment, please let us know why you are %s"
|
604 |
-
msgstr ""
|
605 |
-
|
606 |
-
#: includes/i18n.php:181
|
607 |
-
msgid "deactivating"
|
608 |
-
msgstr ""
|
609 |
-
|
610 |
-
#: includes/i18n.php:182
|
611 |
-
msgid "Deactivation"
|
612 |
-
msgstr ""
|
613 |
-
|
614 |
-
#: includes/i18n.php:183
|
615 |
-
msgid "Theme Switch"
|
616 |
-
msgstr ""
|
617 |
-
|
618 |
-
#: includes/i18n.php:184
|
619 |
-
msgid "switching"
|
620 |
-
msgstr ""
|
621 |
-
|
622 |
-
#: includes/i18n.php:185
|
623 |
-
msgid "Switch"
|
624 |
msgstr ""
|
625 |
|
626 |
-
#:
|
627 |
-
msgid "
|
628 |
msgstr ""
|
629 |
|
630 |
-
#:
|
631 |
-
msgid "
|
632 |
msgstr ""
|
633 |
|
634 |
-
#:
|
635 |
-
msgid "
|
636 |
msgstr ""
|
637 |
|
638 |
-
#:
|
639 |
-
msgid "
|
640 |
msgstr ""
|
641 |
|
642 |
-
#:
|
643 |
-
msgid "
|
644 |
msgstr ""
|
645 |
|
646 |
-
#:
|
647 |
-
msgid "
|
648 |
msgstr ""
|
649 |
|
650 |
-
#:
|
651 |
-
msgid "
|
652 |
msgstr ""
|
653 |
|
654 |
-
#:
|
655 |
-
msgid "
|
656 |
msgstr ""
|
657 |
|
658 |
-
#:
|
659 |
-
msgid "
|
660 |
msgstr ""
|
661 |
|
662 |
-
#:
|
663 |
-
msgid "
|
664 |
msgstr ""
|
665 |
|
666 |
-
#:
|
667 |
-
msgid "
|
668 |
msgstr ""
|
669 |
|
670 |
-
#:
|
671 |
-
msgid "
|
672 |
msgstr ""
|
673 |
|
674 |
-
#:
|
675 |
-
|
676 |
-
msgid "Other"
|
677 |
msgstr ""
|
678 |
|
679 |
-
#:
|
680 |
-
msgid "
|
681 |
msgstr ""
|
682 |
|
683 |
-
#:
|
684 |
-
msgid "
|
685 |
msgstr ""
|
686 |
|
687 |
-
#:
|
688 |
-
msgid "
|
689 |
msgstr ""
|
690 |
|
691 |
-
#:
|
692 |
-
msgid "
|
693 |
msgstr ""
|
694 |
|
695 |
-
#:
|
696 |
-
msgid "
|
697 |
msgstr ""
|
698 |
|
699 |
-
#:
|
700 |
-
msgid "
|
701 |
msgstr ""
|
702 |
|
703 |
-
#:
|
704 |
-
msgid "
|
705 |
msgstr ""
|
706 |
|
707 |
-
#:
|
708 |
-
msgid "
|
709 |
msgstr ""
|
710 |
|
711 |
-
#:
|
712 |
-
msgid "
|
713 |
msgstr ""
|
714 |
|
715 |
-
#:
|
716 |
-
msgid "
|
717 |
msgstr ""
|
718 |
|
719 |
-
#:
|
720 |
-
msgid "
|
721 |
msgstr ""
|
722 |
|
723 |
-
#:
|
724 |
-
msgid "
|
725 |
msgstr ""
|
726 |
|
727 |
-
#:
|
728 |
-
msgid "
|
729 |
msgstr ""
|
730 |
|
731 |
-
#:
|
732 |
-
msgid "
|
733 |
msgstr ""
|
734 |
|
735 |
-
#:
|
736 |
-
msgid "
|
737 |
msgstr ""
|
738 |
|
739 |
-
#:
|
740 |
-
|
741 |
-
msgid "Hey %s,"
|
742 |
msgstr ""
|
743 |
|
744 |
-
#:
|
745 |
-
|
746 |
-
msgid "Thanks %s!"
|
747 |
msgstr ""
|
748 |
|
749 |
-
#:
|
750 |
-
msgid "
|
751 |
msgstr ""
|
752 |
|
753 |
-
#:
|
754 |
-
msgid "
|
755 |
msgstr ""
|
756 |
|
757 |
-
#:
|
758 |
-
msgid "
|
759 |
msgstr ""
|
760 |
|
761 |
-
#:
|
762 |
-
msgid "
|
763 |
msgstr ""
|
764 |
|
765 |
-
#:
|
766 |
-
msgid "
|
767 |
msgstr ""
|
768 |
|
769 |
-
#:
|
770 |
-
msgid "
|
771 |
msgstr ""
|
772 |
|
773 |
-
#:
|
774 |
-
msgid "
|
775 |
msgstr ""
|
776 |
|
777 |
-
#:
|
778 |
-
msgid "
|
779 |
msgstr ""
|
780 |
|
781 |
-
#:
|
782 |
-
msgid "
|
783 |
msgstr ""
|
784 |
|
785 |
-
#:
|
786 |
-
msgid "
|
787 |
msgstr ""
|
788 |
|
789 |
-
#:
|
790 |
-
msgid "
|
791 |
msgstr ""
|
792 |
|
793 |
-
#:
|
794 |
-
msgid "
|
795 |
msgstr ""
|
796 |
|
797 |
-
#:
|
798 |
-
msgid "
|
799 |
-
msgstr ""
|
800 |
-
|
801 |
-
#: includes/i18n.php:233
|
802 |
-
msgid "Activation, deactivation and uninstall"
|
803 |
-
msgstr ""
|
804 |
-
|
805 |
-
#: includes/i18n.php:234
|
806 |
-
msgid "Plugins & Themes"
|
807 |
-
msgstr ""
|
808 |
-
|
809 |
-
#: includes/i18n.php:235
|
810 |
-
msgid "Titles, versions and state."
|
811 |
-
msgstr ""
|
812 |
-
|
813 |
-
#: includes/i18n.php:236
|
814 |
-
msgid "Admin Notices"
|
815 |
-
msgstr ""
|
816 |
-
|
817 |
-
#: includes/i18n.php:237
|
818 |
-
msgid "Newsletter"
|
819 |
-
msgstr ""
|
820 |
-
|
821 |
-
#: includes/i18n.php:238
|
822 |
-
msgid "Updates, announcements, marketing, no spam"
|
823 |
-
msgstr ""
|
824 |
-
|
825 |
-
#: includes/i18n.php:239
|
826 |
-
msgid "Privacy Policy"
|
827 |
-
msgstr ""
|
828 |
-
|
829 |
-
#: includes/i18n.php:240
|
830 |
-
msgid "Terms of Service"
|
831 |
msgstr ""
|
832 |
|
833 |
-
#:
|
834 |
-
|
835 |
-
msgid "Activating"
|
836 |
msgstr ""
|
837 |
|
838 |
-
#:
|
839 |
-
|
840 |
-
msgid "Sending email"
|
841 |
msgstr ""
|
842 |
|
843 |
-
#:
|
844 |
-
|
845 |
-
msgid "Allow & Continue"
|
846 |
msgstr ""
|
847 |
|
848 |
-
#:
|
849 |
-
|
850 |
-
msgid "Agree & Activate License"
|
851 |
msgstr ""
|
852 |
|
853 |
-
#:
|
854 |
-
|
855 |
-
msgid "Skip"
|
856 |
msgstr ""
|
857 |
|
858 |
-
#:
|
859 |
-
msgid "
|
860 |
msgstr ""
|
861 |
|
862 |
-
#:
|
863 |
-
msgid "
|
864 |
msgstr ""
|
865 |
|
866 |
-
#:
|
867 |
-
msgid "
|
868 |
msgstr ""
|
869 |
|
870 |
-
#:
|
871 |
-
msgid "
|
872 |
msgstr ""
|
873 |
|
874 |
-
#:
|
875 |
-
msgid "
|
876 |
msgstr ""
|
877 |
|
878 |
-
#:
|
879 |
-
msgid "
|
880 |
msgstr ""
|
881 |
|
882 |
-
#:
|
883 |
-
msgid "
|
884 |
msgstr ""
|
885 |
|
886 |
-
#:
|
887 |
-
msgid "
|
888 |
msgstr ""
|
889 |
|
890 |
-
#:
|
891 |
-
msgid "
|
892 |
msgstr ""
|
893 |
|
894 |
-
#:
|
895 |
-
msgid "
|
896 |
msgstr ""
|
897 |
|
898 |
-
#:
|
899 |
-
msgid "
|
900 |
msgstr ""
|
901 |
|
902 |
-
#:
|
903 |
-
msgid "
|
904 |
msgstr ""
|
905 |
|
906 |
-
#:
|
907 |
-
msgid "
|
908 |
msgstr ""
|
909 |
|
910 |
-
#:
|
911 |
-
msgid "
|
912 |
msgstr ""
|
913 |
|
914 |
-
#:
|
915 |
-
msgid "
|
916 |
msgstr ""
|
917 |
|
918 |
-
#:
|
919 |
-
msgid "
|
920 |
msgstr ""
|
921 |
|
922 |
-
#:
|
923 |
-
msgid "
|
924 |
msgstr ""
|
925 |
|
926 |
-
#:
|
927 |
-
msgid "
|
928 |
msgstr ""
|
929 |
|
930 |
-
#:
|
931 |
-
msgid "
|
932 |
msgstr ""
|
933 |
|
934 |
-
#:
|
935 |
-
msgid "
|
936 |
msgstr ""
|
937 |
|
938 |
-
#:
|
939 |
msgid "Freemius Debug"
|
940 |
msgstr ""
|
941 |
|
942 |
-
#:
|
943 |
-
msgctxt "as turned on"
|
944 |
-
msgid "On"
|
945 |
-
msgstr ""
|
946 |
-
|
947 |
-
#: includes/i18n.php:274
|
948 |
-
msgctxt "as turned off"
|
949 |
-
msgid "Off"
|
950 |
-
msgstr ""
|
951 |
-
|
952 |
-
#: includes/i18n.php:275
|
953 |
-
msgctxt "as code debugging"
|
954 |
-
msgid "Debugging"
|
955 |
-
msgstr ""
|
956 |
-
|
957 |
-
#: includes/i18n.php:276
|
958 |
-
msgid "Freemius State"
|
959 |
-
msgstr ""
|
960 |
-
|
961 |
-
#: includes/i18n.php:277
|
962 |
-
msgctxt "as connection was successful"
|
963 |
-
msgid "Connected"
|
964 |
-
msgstr ""
|
965 |
-
|
966 |
-
#: includes/i18n.php:278
|
967 |
-
msgctxt "as connection blocked"
|
968 |
-
msgid "Blocked"
|
969 |
-
msgstr ""
|
970 |
-
|
971 |
-
#: includes/i18n.php:279
|
972 |
-
msgctxt "as application program interface"
|
973 |
-
msgid "API"
|
974 |
-
msgstr ""
|
975 |
-
|
976 |
-
#: includes/i18n.php:280
|
977 |
-
msgctxt "as software development kit versions"
|
978 |
msgid "SDK"
|
979 |
msgstr ""
|
980 |
|
981 |
-
#:
|
982 |
-
|
983 |
-
msgid "SDK Versions"
|
984 |
-
msgstr ""
|
985 |
-
|
986 |
-
#: includes/i18n.php:282
|
987 |
-
msgctxt "as plugin folder path"
|
988 |
-
msgid "Plugin Path"
|
989 |
-
msgstr ""
|
990 |
-
|
991 |
-
#: includes/i18n.php:283
|
992 |
-
msgctxt "as sdk path"
|
993 |
-
msgid "SDK Path"
|
994 |
-
msgstr ""
|
995 |
-
|
996 |
-
#: includes/i18n.php:284
|
997 |
-
msgid "Add Ons of Plugin %s"
|
998 |
-
msgstr ""
|
999 |
-
|
1000 |
-
#: includes/i18n.php:285
|
1001 |
-
msgid "Are you sure you want to delete all Freemius data?"
|
1002 |
-
msgstr ""
|
1003 |
-
|
1004 |
-
#: includes/i18n.php:286
|
1005 |
-
msgid "Actions"
|
1006 |
-
msgstr ""
|
1007 |
-
|
1008 |
-
#: includes/i18n.php:287
|
1009 |
-
msgid "Delete All Accounts"
|
1010 |
-
msgstr ""
|
1011 |
-
|
1012 |
-
#: includes/i18n.php:288
|
1013 |
-
msgid "Start Fresh"
|
1014 |
-
msgstr ""
|
1015 |
-
|
1016 |
-
#: includes/i18n.php:289
|
1017 |
-
msgid "Clear API Cache"
|
1018 |
-
msgstr ""
|
1019 |
-
|
1020 |
-
#: includes/i18n.php:290
|
1021 |
-
msgid "Sync Data From Server"
|
1022 |
-
msgstr ""
|
1023 |
-
|
1024 |
-
#: includes/i18n.php:291
|
1025 |
-
msgid "Scheduled Crons"
|
1026 |
-
msgstr ""
|
1027 |
-
|
1028 |
-
#: includes/i18n.php:292
|
1029 |
-
msgid "Cron Type"
|
1030 |
-
msgstr ""
|
1031 |
-
|
1032 |
-
#: includes/i18n.php:293
|
1033 |
-
msgid "Plugins & Themes Sync"
|
1034 |
-
msgstr ""
|
1035 |
-
|
1036 |
-
#: includes/i18n.php:294
|
1037 |
-
msgid "%s Licenses"
|
1038 |
-
msgstr ""
|
1039 |
-
|
1040 |
-
#: includes/i18n.php:295
|
1041 |
-
msgid "Debug Log"
|
1042 |
-
msgstr ""
|
1043 |
-
|
1044 |
-
#: includes/i18n.php:296
|
1045 |
-
msgid "All"
|
1046 |
-
msgstr ""
|
1047 |
-
|
1048 |
-
#: includes/i18n.php:297
|
1049 |
-
msgid "File"
|
1050 |
-
msgstr ""
|
1051 |
-
|
1052 |
-
#: includes/i18n.php:298
|
1053 |
-
msgid "Function"
|
1054 |
-
msgstr ""
|
1055 |
-
|
1056 |
-
#: includes/i18n.php:299
|
1057 |
-
msgid "Process ID"
|
1058 |
-
msgstr ""
|
1059 |
-
|
1060 |
-
#: includes/i18n.php:300
|
1061 |
-
msgid "Logger"
|
1062 |
-
msgstr ""
|
1063 |
-
|
1064 |
-
#: includes/i18n.php:301
|
1065 |
-
msgid "Message"
|
1066 |
-
msgstr ""
|
1067 |
-
|
1068 |
-
#: includes/i18n.php:302
|
1069 |
-
msgid "Download"
|
1070 |
-
msgstr ""
|
1071 |
-
|
1072 |
-
#: includes/i18n.php:303
|
1073 |
-
msgid "Filter"
|
1074 |
-
msgstr ""
|
1075 |
-
|
1076 |
-
#: includes/i18n.php:304
|
1077 |
-
msgid "Type"
|
1078 |
-
msgstr ""
|
1079 |
-
|
1080 |
-
#: includes/i18n.php:305
|
1081 |
-
msgid "All Types"
|
1082 |
-
msgstr ""
|
1083 |
-
|
1084 |
-
#: includes/i18n.php:306
|
1085 |
-
msgid "All Requests"
|
1086 |
-
msgstr ""
|
1087 |
-
|
1088 |
-
#: includes/i18n.php:310
|
1089 |
-
msgctxt "as congratulations"
|
1090 |
-
msgid "Congrats"
|
1091 |
-
msgstr ""
|
1092 |
-
|
1093 |
-
#: includes/i18n.php:311
|
1094 |
-
msgctxt "exclamation"
|
1095 |
-
msgid "Oops"
|
1096 |
-
msgstr ""
|
1097 |
-
|
1098 |
-
#: includes/i18n.php:312
|
1099 |
-
msgctxt "interjection expressing joy or exuberance"
|
1100 |
-
msgid "Yee-haw"
|
1101 |
-
msgstr ""
|
1102 |
-
|
1103 |
-
#: includes/i18n.php:313
|
1104 |
-
msgctxt "(especially in electronic communication) used to express elation, enthusiasm, or triumph."
|
1105 |
-
msgid "W00t"
|
1106 |
-
msgstr ""
|
1107 |
-
|
1108 |
-
#: includes/i18n.php:315
|
1109 |
-
msgctxt "a positive response"
|
1110 |
-
msgid "Right on"
|
1111 |
-
msgstr ""
|
1112 |
-
|
1113 |
-
#: includes/i18n.php:316
|
1114 |
-
msgctxt "something somebody says when they are thinking about what you have just said. "
|
1115 |
-
msgid "Hmm"
|
1116 |
-
msgstr ""
|
1117 |
-
|
1118 |
-
#: includes/i18n.php:318
|
1119 |
-
msgid "O.K"
|
1120 |
-
msgstr ""
|
1121 |
-
|
1122 |
-
#: includes/i18n.php:319
|
1123 |
-
msgctxt "exclamation"
|
1124 |
-
msgid "Hey"
|
1125 |
-
msgstr ""
|
1126 |
-
|
1127 |
-
#: includes/i18n.php:320
|
1128 |
-
msgctxt "advance notice of something that will need attention."
|
1129 |
-
msgid "Heads up"
|
1130 |
-
msgstr ""
|
1131 |
-
|
1132 |
-
#: includes/i18n.php:325
|
1133 |
-
msgid "Seems like you got the latest release."
|
1134 |
-
msgstr ""
|
1135 |
-
|
1136 |
-
#: includes/i18n.php:326
|
1137 |
-
msgid "You are all good!"
|
1138 |
-
msgstr ""
|
1139 |
-
|
1140 |
-
#: includes/i18n.php:327
|
1141 |
-
msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
|
1142 |
-
msgstr ""
|
1143 |
-
|
1144 |
-
#: includes/i18n.php:328
|
1145 |
-
msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
|
1146 |
-
msgstr ""
|
1147 |
-
|
1148 |
-
#: includes/i18n.php:329
|
1149 |
-
msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
|
1150 |
-
msgstr ""
|
1151 |
-
|
1152 |
-
#: includes/i18n.php:330
|
1153 |
-
msgid "Your name was successfully updated."
|
1154 |
-
msgstr ""
|
1155 |
-
|
1156 |
-
#: includes/i18n.php:331
|
1157 |
-
msgid "You have successfully updated your %s."
|
1158 |
-
msgstr ""
|
1159 |
-
|
1160 |
-
#: includes/i18n.php:332
|
1161 |
-
msgid "Please provide your full name."
|
1162 |
-
msgstr ""
|
1163 |
-
|
1164 |
-
#: includes/i18n.php:333
|
1165 |
-
msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
|
1166 |
-
msgstr ""
|
1167 |
-
|
1168 |
-
#: includes/i18n.php:334
|
1169 |
-
msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
|
1170 |
msgstr ""
|
1171 |
|
1172 |
-
#:
|
1173 |
-
msgid "
|
1174 |
msgstr ""
|
1175 |
|
1176 |
-
#:
|
1177 |
-
msgid "
|
1178 |
msgstr ""
|
1179 |
|
1180 |
-
#:
|
1181 |
-
msgid "
|
1182 |
msgstr ""
|
1183 |
|
1184 |
-
#:
|
1185 |
-
msgid "
|
1186 |
msgstr ""
|
1187 |
|
1188 |
-
#:
|
1189 |
-
msgid "
|
1190 |
msgstr ""
|
1191 |
|
1192 |
-
#:
|
1193 |
-
msgid "
|
1194 |
msgstr ""
|
1195 |
|
1196 |
-
#:
|
1197 |
-
msgid "
|
1198 |
msgstr ""
|
1199 |
|
1200 |
-
#:
|
1201 |
-
msgid "
|
1202 |
msgstr ""
|
1203 |
|
1204 |
-
#:
|
1205 |
-
msgid "
|
1206 |
msgstr ""
|
1207 |
|
1208 |
-
#:
|
1209 |
-
msgid "
|
1210 |
msgstr ""
|
1211 |
|
1212 |
-
#:
|
1213 |
-
msgid "
|
1214 |
msgstr ""
|
1215 |
|
1216 |
-
#:
|
1217 |
-
|
1218 |
-
msgid "%s Add-on was successfully purchased."
|
1219 |
msgstr ""
|
1220 |
|
1221 |
-
#:
|
1222 |
-
msgid "
|
1223 |
msgstr ""
|
1224 |
|
1225 |
-
#:
|
1226 |
-
msgid "
|
1227 |
msgstr ""
|
1228 |
|
1229 |
-
#:
|
1230 |
-
msgid "
|
1231 |
msgstr ""
|
1232 |
|
1233 |
-
#:
|
1234 |
-
msgid "
|
1235 |
msgstr ""
|
1236 |
|
1237 |
-
#:
|
1238 |
-
msgid "
|
1239 |
msgstr ""
|
1240 |
|
1241 |
-
#:
|
1242 |
-
msgid "
|
1243 |
msgstr ""
|
1244 |
|
1245 |
-
#:
|
1246 |
-
msgid "
|
1247 |
msgstr ""
|
1248 |
|
1249 |
-
#:
|
1250 |
-
msgid "
|
1251 |
msgstr ""
|
1252 |
|
1253 |
-
#:
|
1254 |
-
msgid "
|
1255 |
msgstr ""
|
1256 |
|
1257 |
-
#:
|
1258 |
-
msgid "
|
1259 |
msgstr ""
|
1260 |
|
1261 |
-
#:
|
1262 |
-
msgid "
|
1263 |
msgstr ""
|
1264 |
|
1265 |
-
#:
|
1266 |
-
msgid "
|
1267 |
msgstr ""
|
1268 |
|
1269 |
-
#:
|
1270 |
-
msgid "
|
1271 |
msgstr ""
|
1272 |
|
1273 |
-
#:
|
1274 |
-
msgid "
|
1275 |
msgstr ""
|
1276 |
|
1277 |
-
#:
|
1278 |
-
msgid "
|
1279 |
msgstr ""
|
1280 |
|
1281 |
-
#:
|
1282 |
-
msgid "
|
1283 |
msgstr ""
|
1284 |
|
1285 |
-
#:
|
1286 |
-
msgid "
|
1287 |
msgstr ""
|
1288 |
|
1289 |
-
#:
|
1290 |
-
msgid "
|
1291 |
msgstr ""
|
1292 |
|
1293 |
-
#:
|
1294 |
-
|
1295 |
-
msgid "Version %s was released."
|
1296 |
msgstr ""
|
1297 |
|
1298 |
-
#:
|
1299 |
-
msgid "
|
1300 |
msgstr ""
|
1301 |
|
1302 |
-
#:
|
1303 |
-
|
1304 |
-
msgid "the latest %s version here"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
-
#:
|
1308 |
-
msgid "
|
1309 |
msgstr ""
|
1310 |
|
1311 |
-
#:
|
1312 |
-
|
1313 |
-
msgid "Start free trial"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
-
#:
|
1317 |
-
msgid "
|
1318 |
msgstr ""
|
1319 |
|
1320 |
-
#:
|
1321 |
-
msgid "
|
1322 |
msgstr ""
|
1323 |
|
1324 |
-
#:
|
1325 |
-
msgid "
|
1326 |
msgstr ""
|
1327 |
|
1328 |
-
#:
|
1329 |
-
msgid "
|
1330 |
msgstr ""
|
1331 |
|
1332 |
-
#:
|
1333 |
-
msgid "
|
1334 |
msgstr ""
|
1335 |
|
1336 |
-
#:
|
1337 |
-
msgid "
|
1338 |
msgstr ""
|
1339 |
|
1340 |
-
#:
|
1341 |
-
msgid "
|
1342 |
msgstr ""
|
1343 |
|
1344 |
-
#:
|
1345 |
-
msgid "
|
1346 |
msgstr ""
|
1347 |
|
1348 |
-
#:
|
1349 |
-
msgid "
|
1350 |
-
msgstr ""
|
1351 |
-
|
1352 |
-
#: includes/i18n.php:381
|
1353 |
-
msgid "No commitment for %s days - cancel anytime!"
|
1354 |
msgstr ""
|
1355 |
|
1356 |
-
#:
|
1357 |
-
msgid "
|
1358 |
msgstr ""
|
1359 |
|
1360 |
-
#:
|
1361 |
-
msgid "
|
1362 |
msgstr ""
|
1363 |
|
1364 |
-
#:
|
1365 |
-
msgid "
|
1366 |
msgstr ""
|
1367 |
|
1368 |
-
#:
|
1369 |
-
msgid "
|
1370 |
msgstr ""
|
1371 |
|
1372 |
-
#: includes/
|
1373 |
-
msgid "
|
1374 |
msgstr ""
|
1375 |
|
1376 |
-
#: includes/
|
1377 |
-
msgid "
|
1378 |
msgstr ""
|
1379 |
|
1380 |
-
#: includes/
|
1381 |
-
msgid "
|
1382 |
msgstr ""
|
1383 |
|
1384 |
-
#:
|
1385 |
-
msgid "
|
1386 |
msgstr ""
|
1387 |
|
1388 |
-
#:
|
1389 |
-
msgid "
|
1390 |
-
msgstr ""
|
1391 |
-
|
1392 |
-
#: includes/i18n.php:393
|
1393 |
-
msgid "Disabled method(s):"
|
1394 |
msgstr ""
|
1395 |
|
1396 |
-
#:
|
1397 |
-
msgid "
|
1398 |
msgstr ""
|
1399 |
|
1400 |
-
#:
|
1401 |
-
|
1402 |
-
msgid "%s requires an access to our API."
|
1403 |
msgstr ""
|
1404 |
|
1405 |
-
#:
|
1406 |
-
msgid "
|
1407 |
msgstr ""
|
1408 |
|
1409 |
-
#:
|
1410 |
-
msgid "
|
1411 |
msgstr ""
|
1412 |
|
1413 |
-
#:
|
1414 |
-
msgid "
|
1415 |
msgstr ""
|
1416 |
|
1417 |
-
#:
|
1418 |
-
msgid "
|
1419 |
msgstr ""
|
1420 |
|
1421 |
-
#:
|
1422 |
-
msgid "
|
1423 |
msgstr ""
|
1424 |
|
1425 |
-
#:
|
1426 |
-
msgid "
|
1427 |
msgstr ""
|
1428 |
|
1429 |
-
#:
|
1430 |
-
msgid "
|
1431 |
msgstr ""
|
1432 |
|
1433 |
-
#:
|
1434 |
-
msgid "
|
1435 |
msgstr ""
|
1436 |
|
1437 |
-
#:
|
1438 |
-
msgid "
|
1439 |
msgstr ""
|
1440 |
|
1441 |
-
#:
|
1442 |
-
msgid "
|
1443 |
msgstr ""
|
1444 |
|
1445 |
-
#:
|
1446 |
-
msgid "
|
1447 |
msgstr ""
|
1448 |
|
1449 |
-
#:
|
1450 |
-
msgid "
|
1451 |
msgstr ""
|
1452 |
|
1453 |
-
#:
|
1454 |
-
msgid "
|
1455 |
msgstr ""
|
1456 |
|
1457 |
-
#:
|
1458 |
-
msgid "
|
1459 |
msgstr ""
|
1460 |
|
1461 |
-
#:
|
1462 |
-
msgid "
|
1463 |
msgstr ""
|
1464 |
|
1465 |
-
#:
|
1466 |
-
msgid "
|
1467 |
msgstr ""
|
1468 |
|
1469 |
-
#:
|
1470 |
-
|
1471 |
-
msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
|
1472 |
msgstr ""
|
1473 |
|
1474 |
-
#:
|
1475 |
-
msgid "
|
1476 |
msgstr ""
|
1477 |
|
1478 |
-
#:
|
1479 |
-
msgid "
|
1480 |
msgstr ""
|
1481 |
|
1482 |
-
#:
|
1483 |
-
msgid "
|
1484 |
msgstr ""
|
1485 |
|
1486 |
-
#:
|
1487 |
-
msgid "
|
1488 |
msgstr ""
|
1489 |
|
1490 |
-
#:
|
1491 |
-
|
1492 |
-
msgid "%s cannot run without %s."
|
1493 |
msgstr ""
|
1494 |
|
1495 |
-
#:
|
1496 |
-
|
1497 |
-
msgid "%s cannot run without the plugin."
|
1498 |
msgstr ""
|
1499 |
|
1500 |
-
#:
|
1501 |
-
|
1502 |
-
msgid "%s activation was successfully completed."
|
1503 |
msgstr ""
|
1504 |
|
1505 |
-
#:
|
1506 |
-
|
1507 |
-
msgid "Features & Pricing"
|
1508 |
msgstr ""
|
1509 |
|
1510 |
-
#:
|
1511 |
-
msgid "
|
1512 |
msgstr ""
|
1513 |
|
1514 |
-
#:
|
1515 |
-
msgid "
|
1516 |
msgstr ""
|
1517 |
|
1518 |
-
#:
|
1519 |
-
msgid "
|
1520 |
msgstr ""
|
1521 |
|
1522 |
-
#:
|
1523 |
-
msgid "
|
1524 |
msgstr ""
|
1525 |
|
1526 |
-
#:
|
1527 |
-
|
1528 |
-
msgid "Monthly"
|
1529 |
msgstr ""
|
1530 |
|
1531 |
-
#:
|
1532 |
-
|
1533 |
-
msgid "mo"
|
1534 |
msgstr ""
|
1535 |
|
1536 |
-
#:
|
1537 |
-
|
1538 |
-
msgid "Annual"
|
1539 |
msgstr ""
|
1540 |
|
1541 |
-
#:
|
1542 |
-
|
1543 |
-
msgid "Annually"
|
1544 |
msgstr ""
|
1545 |
|
1546 |
-
#:
|
1547 |
-
|
1548 |
-
msgid "Once"
|
1549 |
msgstr ""
|
1550 |
|
1551 |
-
#:
|
1552 |
-
|
1553 |
-
msgid "year"
|
1554 |
msgstr ""
|
1555 |
|
1556 |
-
#:
|
1557 |
-
msgid "
|
1558 |
msgstr ""
|
1559 |
|
1560 |
-
#:
|
1561 |
-
|
1562 |
-
msgid "Best"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
-
#:
|
1566 |
-
|
1567 |
-
msgid "Billed %s"
|
1568 |
msgstr ""
|
1569 |
|
1570 |
-
#:
|
1571 |
-
|
1572 |
-
msgid "Save %s"
|
1573 |
msgstr ""
|
1574 |
|
1575 |
-
#:
|
1576 |
-
msgid "
|
1577 |
msgstr ""
|
1578 |
|
1579 |
-
#:
|
1580 |
-
|
1581 |
-
msgid "Approve & Start Trial"
|
1582 |
msgstr ""
|
1583 |
|
1584 |
-
#:
|
1585 |
-
msgid "
|
1586 |
msgstr ""
|
1587 |
|
1588 |
-
#:
|
1589 |
-
msgid "
|
1590 |
msgstr ""
|
1591 |
|
1592 |
-
#:
|
1593 |
-
msgid "
|
1594 |
msgstr ""
|
1595 |
|
1596 |
-
#:
|
1597 |
-
msgid "
|
1598 |
msgstr ""
|
1599 |
|
1600 |
-
#:
|
1601 |
-
msgid "
|
1602 |
msgstr ""
|
1603 |
|
1604 |
-
#:
|
1605 |
-
msgid "
|
1606 |
msgstr ""
|
1607 |
|
1608 |
-
#:
|
1609 |
-
msgid "
|
1610 |
msgstr ""
|
1611 |
|
1612 |
-
#:
|
1613 |
-
msgid "
|
1614 |
msgstr ""
|
1615 |
|
1616 |
-
#:
|
1617 |
-
msgid "
|
1618 |
msgstr ""
|
1619 |
|
1620 |
-
#:
|
1621 |
-
msgid "
|
1622 |
msgstr ""
|
1623 |
|
1624 |
-
#:
|
1625 |
-
msgid "
|
1626 |
msgstr ""
|
1627 |
|
1628 |
-
#:
|
1629 |
-
msgid "
|
1630 |
msgstr ""
|
1631 |
|
1632 |
-
#:
|
1633 |
-
msgid "
|
1634 |
msgstr ""
|
1635 |
|
1636 |
-
#:
|
1637 |
-
msgid "
|
1638 |
msgstr ""
|
1639 |
|
1640 |
-
#:
|
1641 |
-
msgid "
|
1642 |
msgstr ""
|
1643 |
|
1644 |
-
#:
|
1645 |
-
msgid "
|
1646 |
msgstr ""
|
1647 |
|
1648 |
-
#:
|
1649 |
-
msgid "
|
1650 |
msgstr ""
|
1651 |
|
1652 |
-
#:
|
1653 |
-
msgid "
|
1654 |
msgstr ""
|
1655 |
|
1656 |
-
#:
|
1657 |
-
msgid "
|
1658 |
msgstr ""
|
1659 |
|
1660 |
-
#:
|
1661 |
-
msgid "
|
1662 |
msgstr ""
|
1663 |
|
1664 |
-
#:
|
1665 |
-
msgid "
|
1666 |
msgstr ""
|
1667 |
|
1668 |
-
#:
|
1669 |
-
msgid "
|
1670 |
msgstr ""
|
1671 |
|
1672 |
-
#:
|
1673 |
-
msgid "
|
1674 |
msgstr ""
|
1675 |
|
1676 |
-
#:
|
1677 |
-
msgid "
|
1678 |
msgstr ""
|
1679 |
|
1680 |
-
#:
|
1681 |
-
msgid "
|
1682 |
msgstr ""
|
1683 |
|
1684 |
-
#:
|
1685 |
-
msgid "
|
1686 |
msgstr ""
|
1687 |
|
1688 |
-
#:
|
1689 |
-
msgid "
|
1690 |
msgstr ""
|
1691 |
|
1692 |
-
#:
|
1693 |
-
msgid "
|
1694 |
msgstr ""
|
1695 |
|
1696 |
-
#:
|
1697 |
-
|
1698 |
-
msgid "Description"
|
1699 |
msgstr ""
|
1700 |
|
1701 |
-
#:
|
1702 |
-
|
1703 |
-
msgid "Installation"
|
1704 |
msgstr ""
|
1705 |
|
1706 |
-
#:
|
1707 |
-
|
1708 |
-
msgid "FAQ"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
-
#:
|
1712 |
-
|
1713 |
-
msgid "Changelog"
|
1714 |
msgstr ""
|
1715 |
|
1716 |
-
#:
|
1717 |
-
|
1718 |
-
msgid "Reviews"
|
1719 |
msgstr ""
|
1720 |
|
1721 |
-
#:
|
1722 |
-
|
1723 |
-
msgid "Other Notes"
|
1724 |
msgstr ""
|
1725 |
|
1726 |
-
#:
|
1727 |
-
msgid "
|
1728 |
msgstr ""
|
1729 |
|
1730 |
-
#:
|
1731 |
-
msgid "
|
1732 |
msgstr ""
|
1733 |
|
1734 |
-
#:
|
1735 |
-
msgid "
|
1736 |
msgstr ""
|
1737 |
|
1738 |
-
#:
|
1739 |
-
msgid "
|
1740 |
msgstr ""
|
1741 |
|
1742 |
-
#:
|
1743 |
-
msgid "
|
1744 |
msgstr ""
|
1745 |
|
1746 |
-
#:
|
1747 |
-
msgid "
|
1748 |
msgstr ""
|
1749 |
|
1750 |
-
#:
|
1751 |
-
msgid "
|
1752 |
msgstr ""
|
1753 |
|
1754 |
-
#:
|
1755 |
-
msgid "
|
1756 |
msgstr ""
|
1757 |
|
1758 |
-
#:
|
1759 |
-
msgid "
|
1760 |
msgstr ""
|
1761 |
|
1762 |
-
#:
|
1763 |
-
|
1764 |
-
msgid "Author:"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
-
#:
|
1768 |
-
msgid "
|
1769 |
msgstr ""
|
1770 |
|
1771 |
-
#:
|
1772 |
-
msgid "
|
1773 |
msgstr ""
|
1774 |
|
1775 |
-
#:
|
1776 |
-
msgid "
|
1777 |
msgstr ""
|
1778 |
|
1779 |
-
#:
|
1780 |
-
msgid "
|
1781 |
msgstr ""
|
1782 |
|
1783 |
-
#:
|
1784 |
-
msgid "
|
1785 |
msgstr ""
|
1786 |
|
1787 |
-
#:
|
1788 |
-
msgid "
|
1789 |
msgstr ""
|
1790 |
|
1791 |
-
#:
|
1792 |
-
msgid "
|
1793 |
msgstr ""
|
1794 |
|
1795 |
-
#:
|
1796 |
-
msgid "
|
1797 |
msgstr ""
|
1798 |
|
1799 |
-
#:
|
1800 |
-
msgid "
|
1801 |
msgstr ""
|
1802 |
|
1803 |
-
#:
|
1804 |
-
msgid "
|
1805 |
msgstr ""
|
1806 |
|
1807 |
-
#:
|
1808 |
-
msgid "
|
1809 |
msgstr ""
|
1810 |
|
1811 |
-
#:
|
1812 |
-
msgid "
|
1813 |
msgstr ""
|
1814 |
|
1815 |
-
#:
|
1816 |
-
msgid "
|
1817 |
msgstr ""
|
1818 |
|
1819 |
-
#:
|
1820 |
-
msgid "
|
1821 |
msgstr ""
|
10 |
"Last-Translator: Vova Feldman <vova@freemius.com>\n"
|
11 |
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
12 |
"X-Poedit-Basepath: ..\n"
|
13 |
+
"X-Poedit-KeywordsList: get_text_inline;get_text_x_inline:1,2c;fs_text_inline;fs_text_x_inline:1,2c;fs_echo_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;fs_esc_html_inline;fs_esc_html_echo_inline;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n"
|
14 |
"X-Poedit-SearchPath-0: .\n"
|
15 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
|
19 |
+
#: includes/class-freemius.php:1816
|
20 |
+
msgid "freemius-debug"
|
21 |
msgstr ""
|
22 |
|
23 |
+
#: includes/class-freemius.php:2601
|
24 |
+
msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
msgstr ""
|
26 |
|
27 |
+
#: includes/class-freemius.php:2996
|
28 |
+
msgctxt "addonX cannot run without pluginY"
|
29 |
+
msgid "%s cannot run without %s."
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: includes/class-freemius.php:2997
|
33 |
+
msgctxt "addonX cannot run..."
|
34 |
+
msgid "%s cannot run without the plugin."
|
35 |
msgstr ""
|
36 |
|
37 |
+
#: includes/class-freemius.php:3118, includes/class-freemius.php:3143, includes/class-freemius.php:11539
|
38 |
+
msgid "Unexpected API error. Please contact the %s's author with the following error."
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: includes/class-freemius.php:3834
|
42 |
+
msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
|
|
|
43 |
msgstr ""
|
44 |
|
45 |
+
#: includes/class-freemius.php:3838
|
46 |
+
msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: includes/class-freemius.php:8664
|
50 |
+
msgctxt "pluginX activation was successfully..."
|
51 |
+
msgid "%s activation was successfully completed."
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: includes/class-freemius.php:10992
|
55 |
+
msgctxt "%1s - plugin title, %2s - API domain"
|
56 |
+
msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
|
57 |
msgstr ""
|
58 |
|
59 |
+
#: includes/class-freemius.php:11006
|
60 |
+
msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: includes/class-freemius.php:12316
|
64 |
+
msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: includes/class-freemius.php:12322
|
68 |
+
msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
|
69 |
msgstr ""
|
70 |
|
71 |
+
#: includes/class-freemius.php:12327
|
72 |
+
msgid "%s is the new owner of the account."
|
|
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: includes/class-freemius.php:13489, includes/class-freemius.php:13516, includes/fs-core-functions.php:728, includes/fs-core-functions.php:771, includes/fs-core-functions.php:809, includes/fs-core-functions.php:836, includes/fs-core-functions.php:859, includes/fs-core-functions.php:882, includes/fs-core-functions.php:909, includes/fs-core-functions.php:960
|
76 |
+
msgid "$text"
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: includes/class-freemius.php:13503, includes/fs-core-functions.php:743, includes/fs-core-functions.php:786, includes/fs-core-functions.php:924, includes/fs-core-functions.php:937
|
80 |
+
msgctxt "$context"
|
81 |
+
msgid "$text"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: includes/class-freemius.php:13623
|
85 |
+
msgid "Auto installation only works for opted-in users."
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: includes/class-freemius.php:13633, includes/class-freemius.php:13666, includes/class-fs-plugin-updater.php:490, includes/class-fs-plugin-updater.php:504
|
89 |
+
msgid "Invalid module ID."
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: includes/class-freemius.php:13642, includes/class-fs-plugin-updater.php:524
|
93 |
+
msgid "Premium version already active."
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: includes/class-freemius.php:13649
|
97 |
+
msgid "You do not have a valid license to access the premium version."
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: includes/class-freemius.php:13656
|
101 |
+
msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
|
|
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: includes/class-freemius.php:13674, includes/class-fs-plugin-updater.php:523
|
105 |
+
msgid "Premium add-on version already installed."
|
|
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: includes/class-freemius.php:14019
|
109 |
+
msgid "View paid features"
|
110 |
msgstr ""
|
111 |
|
112 |
+
#: includes/class-fs-plugin-updater.php:553
|
113 |
+
msgid "Installing plugin: %s"
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: includes/class-fs-plugin-updater.php:700
|
117 |
+
msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
|
|
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: includes/fs-plugin-info-dialog.php:328
|
121 |
+
msgid "purchase"
|
|
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: includes/fs-plugin-info-dialog.php:329
|
125 |
+
msgid "start-free-x"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: includes/fs-plugin-info-dialog.php:351, templates/account.php:643
|
129 |
+
msgid "download-latest"
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: includes/fs-plugin-info-dialog.php:354, templates/account.php:637, templates/auto-installation.php:107
|
133 |
+
msgid "install-now"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: includes/fs-plugin-info-dialog.php:360
|
137 |
+
msgid "install-update-now"
|
|
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: includes/fs-plugin-info-dialog.php:364
|
141 |
+
msgid "Newer Version (%s) Installed"
|
|
|
142 |
msgstr ""
|
143 |
|
144 |
+
#: includes/fs-plugin-info-dialog.php:367
|
145 |
+
msgid "Latest Version Installed"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: includes/fs-plugin-info-dialog.php:480
|
149 |
+
msgid "description"
|
|
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: includes/fs-plugin-info-dialog.php:481
|
153 |
+
msgid "installation"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: includes/fs-plugin-info-dialog.php:482
|
157 |
+
msgid "faq"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: includes/fs-plugin-info-dialog.php:483
|
161 |
+
msgid "screenshots"
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: includes/fs-plugin-info-dialog.php:484
|
165 |
+
msgid "changelog"
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: includes/fs-plugin-info-dialog.php:485
|
169 |
+
msgid "reviews"
|
170 |
msgstr ""
|
171 |
|
172 |
+
#: includes/fs-plugin-info-dialog.php:486
|
173 |
+
msgid "other_notes"
|
174 |
msgstr ""
|
175 |
|
176 |
+
#: includes/fs-plugin-info-dialog.php:501
|
177 |
+
msgctxt "Plugin installer section title"
|
178 |
+
msgid "Features & Pricing"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: includes/fs-plugin-info-dialog.php:511
|
182 |
+
msgid "Plugin Install"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: includes/fs-plugin-info-dialog.php:583
|
186 |
+
msgid "x-plan"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: includes/fs-plugin-info-dialog.php:608
|
190 |
+
msgctxt "e.g. the best product"
|
191 |
+
msgid "Best"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: includes/fs-plugin-info-dialog.php:614, includes/fs-plugin-info-dialog.php:634
|
195 |
+
msgctxt "as every month"
|
196 |
+
msgid "Monthly"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: includes/fs-plugin-info-dialog.php:617
|
200 |
+
msgctxt "as once a year"
|
201 |
+
msgid "Annual"
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: includes/fs-plugin-info-dialog.php:620
|
205 |
+
msgid "Lifetime"
|
206 |
msgstr ""
|
207 |
|
208 |
+
#: includes/fs-plugin-info-dialog.php:634, includes/fs-plugin-info-dialog.php:636, includes/fs-plugin-info-dialog.php:638
|
209 |
+
msgctxt "e.g. billed monthly"
|
210 |
+
msgid "Billed %s"
|
211 |
msgstr ""
|
212 |
|
213 |
+
#: includes/fs-plugin-info-dialog.php:636
|
214 |
+
msgctxt "as once a year"
|
215 |
+
msgid "Annually"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: includes/fs-plugin-info-dialog.php:638
|
219 |
+
msgctxt "as once a year"
|
220 |
+
msgid "Once"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: includes/fs-plugin-info-dialog.php:644
|
224 |
+
msgid "license-single-site"
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: includes/fs-plugin-info-dialog.php:646
|
228 |
+
msgid "license-unlimited"
|
229 |
msgstr ""
|
230 |
|
231 |
+
#: includes/fs-plugin-info-dialog.php:648
|
232 |
+
msgid "license-x-sites"
|
|
|
233 |
msgstr ""
|
234 |
|
235 |
+
#: includes/fs-plugin-info-dialog.php:658, templates/plugin-info/features.php:82
|
236 |
+
msgctxt "as monthly period"
|
237 |
+
msgid "mo"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: includes/fs-plugin-info-dialog.php:665, templates/plugin-info/features.php:80
|
241 |
+
msgctxt "as annual period"
|
242 |
+
msgid "year"
|
243 |
msgstr ""
|
244 |
|
245 |
+
#: includes/fs-plugin-info-dialog.php:717
|
246 |
+
msgid "price"
|
247 |
msgstr ""
|
248 |
|
249 |
+
#: includes/fs-plugin-info-dialog.php:763
|
250 |
+
msgctxt "as a discount of $5 or 10%"
|
251 |
+
msgid "Save %s"
|
252 |
msgstr ""
|
253 |
|
254 |
+
#: includes/fs-plugin-info-dialog.php:773
|
255 |
+
msgid "no-commitment-x"
|
|
|
256 |
msgstr ""
|
257 |
|
258 |
+
#: includes/fs-plugin-info-dialog.php:776
|
259 |
+
msgid "after-x-pay-as-little-y"
|
260 |
msgstr ""
|
261 |
|
262 |
+
#: includes/fs-plugin-info-dialog.php:787
|
263 |
+
msgid "details"
|
|
|
264 |
msgstr ""
|
265 |
|
266 |
+
#: includes/fs-plugin-info-dialog.php:790, templates/account.php:204, templates/debug.php:180, templates/debug.php:217, templates/debug.php:345
|
267 |
+
msgid "version"
|
|
|
268 |
msgstr ""
|
269 |
|
270 |
+
#: includes/fs-plugin-info-dialog.php:796
|
271 |
+
msgctxt "as the plugin author"
|
272 |
+
msgid "Author"
|
273 |
msgstr ""
|
274 |
|
275 |
+
#: includes/fs-plugin-info-dialog.php:802
|
276 |
+
msgid "Last Updated"
|
277 |
msgstr ""
|
278 |
|
279 |
+
#: includes/fs-plugin-info-dialog.php:804, templates/debug/plugins-themes-sync.php:41, templates/debug/plugins-themes-sync.php:61, templates/debug/scheduled-crons.php:105, templates/debug/scheduled-crons.php:121
|
280 |
+
msgid "x-ago"
|
281 |
msgstr ""
|
282 |
|
283 |
+
#: includes/fs-plugin-info-dialog.php:811
|
284 |
+
msgid "Requires WordPress Version"
|
285 |
msgstr ""
|
286 |
|
287 |
+
#: includes/fs-plugin-info-dialog.php:811
|
288 |
+
msgid "x-or-higher"
|
289 |
msgstr ""
|
290 |
|
291 |
+
#: includes/fs-plugin-info-dialog.php:817
|
292 |
+
msgid "Compatible up to"
|
293 |
msgstr ""
|
294 |
|
295 |
+
#: includes/fs-plugin-info-dialog.php:824
|
296 |
+
msgid "Downloaded"
|
297 |
msgstr ""
|
298 |
|
299 |
+
#: includes/fs-plugin-info-dialog.php:825, includes/fs-plugin-info-dialog.php:863, includes/fs-plugin-info-dialog.php:874, templates/account.php:118, templates/account.php:506, templates/account.php:655, templates/connect.php:433, templates/debug.php:211, templates/forms/license-activation.php:23
|
|
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: includes/fs-plugin-info-dialog.php:834
|
303 |
+
msgid "WordPress.org Plugin Page"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: includes/fs-plugin-info-dialog.php:841
|
307 |
+
msgid "Plugin Homepage"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: includes/fs-plugin-info-dialog.php:848, includes/fs-plugin-info-dialog.php:914
|
311 |
+
msgid "Donate to this plugin"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: includes/fs-plugin-info-dialog.php:854
|
315 |
+
msgid "Average Rating"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: includes/fs-plugin-info-dialog.php:861
|
319 |
+
msgid "based on %s"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: includes/fs-plugin-info-dialog.php:882
|
323 |
+
msgid "click-to-reviews"
|
|
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: includes/fs-plugin-info-dialog.php:893
|
327 |
+
msgid "Contributors"
|
|
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: includes/fs-plugin-info-dialog.php:921, includes/fs-plugin-info-dialog.php:923
|
331 |
+
msgid "Warning"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: includes/fs-plugin-info-dialog.php:921
|
335 |
+
msgid "This plugin has not been tested with your current version of WordPress."
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: includes/fs-plugin-info-dialog.php:923
|
339 |
+
msgid "This plugin has not been marked as compatible with your version of WordPress."
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: includes/fs-plugin-info-dialog.php:942
|
343 |
+
msgid "Paid add-on must be deployed to Freemius."
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: includes/fs-plugin-info-dialog.php:943
|
347 |
+
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
|
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: templates/account.php:55, templates/debug.php:276
|
351 |
+
msgid "account"
|
|
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: templates/account.php:58
|
355 |
+
msgid "add-ons"
|
356 |
msgstr ""
|
357 |
|
358 |
+
#: templates/account.php:61
|
359 |
+
msgid "upgrade"
|
360 |
msgstr ""
|
361 |
|
362 |
+
#: templates/account.php:63
|
363 |
+
msgid "free-trial"
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: templates/account.php:74
|
367 |
+
msgid "account-details"
|
368 |
msgstr ""
|
369 |
|
370 |
+
#: templates/account.php:84
|
371 |
msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: templates/account.php:86
|
375 |
+
msgid "delete-account-confirm"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
376 |
msgstr ""
|
377 |
|
378 |
+
#: templates/account.php:89
|
379 |
+
msgid "delete-account"
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: templates/account.php:100
|
383 |
+
msgid "deactivate-license-confirm"
|
384 |
msgstr ""
|
385 |
|
386 |
+
#: templates/account.php:101, templates/account.php:553
|
387 |
+
msgid "deactivate-license"
|
388 |
msgstr ""
|
389 |
|
390 |
+
#: templates/account.php:114, templates/account.php:559
|
391 |
+
msgid "downgrade-x-confirm"
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: templates/account.php:115, templates/account.php:564
|
395 |
+
msgid "after-downgrade-non-blocking"
|
396 |
msgstr ""
|
397 |
|
398 |
+
#: templates/account.php:117, templates/account.php:565
|
399 |
+
msgid "after-downgrade-blocking"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: templates/account.php:118
|
403 |
+
msgid "proceed-confirmation"
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: templates/account.php:126
|
407 |
+
msgid "change-plan"
|
408 |
msgstr ""
|
409 |
|
410 |
+
#: templates/account.php:136, templates/account.php:589
|
411 |
+
msgid "cancel-trial-confirm"
|
412 |
msgstr ""
|
413 |
|
414 |
+
#: templates/account.php:137, templates/account.php:585
|
415 |
+
msgid "cancel-trial"
|
416 |
msgstr ""
|
417 |
|
418 |
+
#: templates/account.php:147
|
419 |
+
msgid "sync"
|
420 |
msgstr ""
|
421 |
|
422 |
+
#: templates/account.php:161, templates/debug.php:380
|
423 |
+
msgid "name"
|
424 |
msgstr ""
|
425 |
|
426 |
+
#: templates/account.php:167, templates/debug.php:381
|
427 |
+
msgid "email"
|
|
|
428 |
msgstr ""
|
429 |
|
430 |
+
#: templates/account.php:174, templates/debug.php:301, templates/debug.php:410
|
431 |
+
msgid "user-id"
|
432 |
msgstr ""
|
433 |
|
434 |
+
#: templates/account.php:181
|
435 |
+
msgid "site-id"
|
436 |
msgstr ""
|
437 |
|
438 |
+
#: templates/account.php:184
|
439 |
+
msgid "no-id"
|
440 |
msgstr ""
|
441 |
|
442 |
+
#: templates/account.php:189, templates/debug.php:222, templates/debug.php:303, templates/debug.php:346, templates/debug.php:383
|
443 |
+
msgid "public-key"
|
444 |
msgstr ""
|
445 |
|
446 |
+
#: templates/account.php:195, templates/debug.php:304, templates/debug.php:347, templates/debug.php:384
|
447 |
+
msgid "secret-key"
|
448 |
msgstr ""
|
449 |
|
450 |
+
#: templates/account.php:198
|
451 |
+
msgid "no-secret"
|
452 |
msgstr ""
|
453 |
|
454 |
+
#: templates/account.php:214, templates/account.php:222, templates/debug.php:302
|
455 |
+
msgid "plan"
|
456 |
msgstr ""
|
457 |
|
458 |
+
#: templates/account.php:217, templates/account.php:503, templates/add-ons.php:130
|
459 |
+
msgid "trial"
|
460 |
msgstr ""
|
461 |
|
462 |
+
#: templates/account.php:225, templates/add-ons.php:126
|
463 |
+
msgid "free"
|
464 |
msgstr ""
|
465 |
|
466 |
+
#: templates/account.php:232
|
467 |
+
msgid "License Key"
|
468 |
msgstr ""
|
469 |
|
470 |
+
#: templates/account.php:271, templates/account.php:276, templates/account.php:528
|
471 |
+
msgid "expires-in"
|
472 |
msgstr ""
|
473 |
|
474 |
+
#: templates/account.php:273, templates/account.php:533
|
475 |
+
msgid "renews-in"
|
476 |
msgstr ""
|
477 |
|
478 |
+
#: templates/account.php:289, templates/account.php:602
|
479 |
+
msgid "activate-x-plan"
|
480 |
msgstr ""
|
481 |
|
482 |
+
#: templates/account.php:292
|
483 |
+
msgid "localhost"
|
484 |
msgstr ""
|
485 |
|
486 |
+
#: templates/account.php:296
|
487 |
+
msgid "x-left"
|
488 |
msgstr ""
|
489 |
|
490 |
+
#: templates/account.php:297
|
491 |
+
msgid "last-license"
|
|
|
492 |
msgstr ""
|
493 |
|
494 |
+
#: templates/account.php:350
|
495 |
+
msgid "download-x-version"
|
|
|
496 |
msgstr ""
|
497 |
|
498 |
+
#: templates/account.php:375
|
499 |
+
msgid "what-is-your-x"
|
500 |
msgstr ""
|
501 |
|
502 |
+
#: templates/account.php:513
|
503 |
+
msgid "cancelled"
|
504 |
msgstr ""
|
505 |
|
506 |
+
#: templates/account.php:518
|
507 |
+
msgid "expired"
|
508 |
msgstr ""
|
509 |
|
510 |
+
#: templates/account.php:523
|
511 |
+
msgid "no-expiration"
|
512 |
msgstr ""
|
513 |
|
514 |
+
#: templates/account.php:572
|
515 |
+
msgid "downgrade"
|
516 |
msgstr ""
|
517 |
|
518 |
+
#: templates/account.php:617
|
519 |
+
msgid "sync-license"
|
520 |
msgstr ""
|
521 |
|
522 |
+
#: templates/account.php:630
|
523 |
+
msgid "activate"
|
524 |
msgstr ""
|
525 |
|
526 |
+
#: templates/account.php:653, templates/add-ons.php:99
|
527 |
+
msgid "more-information-about-x"
|
528 |
msgstr ""
|
529 |
|
530 |
+
#: templates/account.php:704, templates/debug.php:327
|
531 |
+
msgid "delete"
|
532 |
msgstr ""
|
533 |
|
534 |
+
#: templates/add-ons.php:36
|
535 |
+
msgid "add-ons-for-x"
|
536 |
msgstr ""
|
537 |
|
538 |
+
#: templates/add-ons.php:43
|
539 |
+
msgid "oops"
|
540 |
msgstr ""
|
541 |
|
542 |
+
#: templates/add-ons.php:44
|
543 |
+
msgid "add-ons-missing"
|
544 |
msgstr ""
|
545 |
|
546 |
+
#: templates/add-ons.php:135
|
547 |
+
msgid "View details"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
548 |
msgstr ""
|
549 |
|
550 |
+
#: templates/admin-notice.php:39, templates/admin-notice.php:39
|
551 |
+
msgid "dismiss"
|
|
|
552 |
msgstr ""
|
553 |
|
554 |
+
#: templates/auto-installation.php:31
|
555 |
+
msgid "addon"
|
|
|
556 |
msgstr ""
|
557 |
|
558 |
+
#: templates/auto-installation.php:42
|
559 |
+
msgid "x-sec"
|
|
|
560 |
msgstr ""
|
561 |
|
562 |
+
#: templates/auto-installation.php:79
|
563 |
+
msgid "Automatic Installation"
|
|
|
564 |
msgstr ""
|
565 |
|
566 |
+
#: templates/auto-installation.php:89
|
567 |
+
msgid "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
|
|
|
568 |
msgstr ""
|
569 |
|
570 |
+
#: templates/auto-installation.php:100
|
571 |
+
msgid "The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page."
|
572 |
msgstr ""
|
573 |
|
574 |
+
#: templates/auto-installation.php:105
|
575 |
+
msgid "Cancel Installation"
|
576 |
msgstr ""
|
577 |
|
578 |
+
#: templates/checkout.php:168
|
579 |
+
msgid "PCI compliant"
|
580 |
msgstr ""
|
581 |
|
582 |
+
#: templates/connect.php:134
|
583 |
+
msgid "thanks-x"
|
584 |
msgstr ""
|
585 |
|
586 |
+
#: templates/connect.php:135
|
587 |
+
msgid "pending-activation-message"
|
588 |
msgstr ""
|
589 |
|
590 |
+
#: templates/connect.php:139
|
591 |
+
msgid "complete-the-install"
|
592 |
msgstr ""
|
593 |
|
594 |
+
#: templates/connect.php:145, templates/connect.php:168
|
595 |
+
msgid "hey-x"
|
596 |
msgstr ""
|
597 |
|
598 |
+
#: templates/connect.php:146
|
599 |
+
msgid "thanks-for-purchasing"
|
600 |
msgstr ""
|
601 |
|
602 |
+
#: templates/connect.php:170
|
603 |
+
msgid "$default_optin_message"
|
604 |
msgstr ""
|
605 |
|
606 |
+
#: templates/connect.php:187, templates/debug.php:415, templates/forms/license-activation.php:44
|
607 |
+
msgid "license-key"
|
608 |
msgstr ""
|
609 |
|
610 |
+
#: templates/connect.php:190, templates/forms/license-activation.php:19
|
611 |
+
msgid "cant-find-license-key"
|
612 |
msgstr ""
|
613 |
|
614 |
+
#: templates/connect.php:197, templates/forms/deactivation/retry-skip.php:20
|
615 |
+
msgid "skip"
|
616 |
msgstr ""
|
617 |
|
618 |
+
#: templates/connect.php:206, templates/connect.php:217, templates/connect.php:408
|
619 |
+
msgid "$button_label"
|
620 |
msgstr ""
|
621 |
|
622 |
+
#: templates/connect.php:282
|
623 |
+
msgid "what-permissions"
|
624 |
msgstr ""
|
625 |
|
626 |
+
#: templates/connect.php:303
|
627 |
+
msgid "dont-have-license-key"
|
628 |
msgstr ""
|
629 |
|
630 |
+
#: templates/connect.php:304
|
631 |
+
msgid "activate-free-version"
|
632 |
msgstr ""
|
633 |
|
634 |
+
#: templates/connect.php:306
|
635 |
+
msgid "have-license-key"
|
636 |
msgstr ""
|
637 |
|
638 |
+
#: templates/connect.php:307
|
639 |
+
msgid "activate-license"
|
640 |
msgstr ""
|
641 |
|
642 |
+
#: templates/connect.php:314
|
643 |
+
msgid "privacy-policy"
|
644 |
msgstr ""
|
645 |
|
646 |
+
#: templates/connect.php:316
|
647 |
+
msgid "tos"
|
648 |
msgstr ""
|
649 |
|
650 |
+
#: templates/debug.php:17
|
651 |
msgid "Freemius Debug"
|
652 |
msgstr ""
|
653 |
|
654 |
+
#: templates/debug.php:17
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
655 |
msgid "SDK"
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: templates/debug.php:21
|
659 |
+
msgid "debugging"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
660 |
msgstr ""
|
661 |
|
662 |
+
#: templates/debug.php:25, templates/debug.php:259
|
663 |
+
msgid "on"
|
664 |
msgstr ""
|
665 |
|
666 |
+
#: templates/debug.php:26, templates/debug.php:260
|
667 |
+
msgid "off"
|
668 |
msgstr ""
|
669 |
|
670 |
+
#: templates/debug.php:51, templates/debug.php:223, templates/debug.php:305
|
671 |
+
msgid "actions"
|
672 |
msgstr ""
|
673 |
|
674 |
+
#: templates/debug.php:61
|
675 |
+
msgid "delete-all-confirm"
|
676 |
msgstr ""
|
677 |
|
678 |
+
#: templates/debug.php:61
|
679 |
+
msgid "delete-all-accounts"
|
680 |
msgstr ""
|
681 |
|
682 |
+
#: templates/debug.php:68
|
683 |
+
msgid "clear-api-cache"
|
684 |
msgstr ""
|
685 |
|
686 |
+
#: templates/debug.php:75
|
687 |
+
msgid "sync-data-from-server"
|
688 |
msgstr ""
|
689 |
|
690 |
+
#: templates/debug.php:79
|
691 |
+
msgid "Load DB Option"
|
692 |
msgstr ""
|
693 |
|
694 |
+
#: templates/debug.php:82
|
695 |
+
msgid "Set DB Option"
|
696 |
msgstr ""
|
697 |
|
698 |
+
#: templates/debug.php:159
|
699 |
+
msgid "key"
|
700 |
msgstr ""
|
701 |
|
702 |
+
#: templates/debug.php:160
|
703 |
+
msgid "value"
|
704 |
msgstr ""
|
705 |
|
706 |
+
#: templates/debug.php:176
|
707 |
+
msgid "sdk-versions"
|
|
|
708 |
msgstr ""
|
709 |
|
710 |
+
#: templates/debug.php:181
|
711 |
+
msgid "sdk-path"
|
712 |
msgstr ""
|
713 |
|
714 |
+
#: templates/debug.php:182, templates/debug.php:221
|
715 |
+
msgid "plugin-path"
|
716 |
msgstr ""
|
717 |
|
718 |
+
#: templates/debug.php:183
|
719 |
+
msgid "is-active"
|
720 |
msgstr ""
|
721 |
|
722 |
+
#: templates/debug.php:215, templates/debug.php:299, templates/debug.php:342, templates/debug.php:379, templates/debug.php:408, templates/debug.php:487, templates/account/payments.php:35, templates/debug/logger.php:21
|
723 |
+
msgid "id"
|
724 |
msgstr ""
|
725 |
|
726 |
+
#: templates/debug.php:216, templates/debug.php:300, templates/debug.php:344, templates/debug/scheduled-crons.php:79
|
727 |
+
msgid "slug"
|
728 |
msgstr ""
|
729 |
|
730 |
+
#: templates/debug.php:218, templates/debug.php:343
|
731 |
+
msgid "title"
|
732 |
msgstr ""
|
733 |
|
734 |
+
#: templates/debug.php:219
|
735 |
+
msgid "api"
|
736 |
msgstr ""
|
737 |
|
738 |
+
#: templates/debug.php:220
|
739 |
+
msgid "freemius-state"
|
740 |
msgstr ""
|
741 |
|
742 |
+
#: templates/debug.php:252
|
743 |
+
msgid "connected"
|
744 |
msgstr ""
|
745 |
|
746 |
+
#: templates/debug.php:253
|
747 |
+
msgid "blocked"
|
748 |
msgstr ""
|
749 |
|
750 |
+
#: templates/debug.php:272
|
751 |
+
msgid "Simulate Trial"
|
752 |
msgstr ""
|
753 |
|
754 |
+
#: templates/debug.php:295
|
755 |
+
msgid "module-installs"
|
756 |
msgstr ""
|
757 |
|
758 |
+
#: templates/debug.php:295, templates/debug.php:404
|
759 |
+
msgid "$module_type"
|
760 |
msgstr ""
|
761 |
|
762 |
+
#: templates/debug.php:295
|
763 |
+
msgid "sites"
|
764 |
msgstr ""
|
765 |
|
766 |
+
#: templates/debug.php:338
|
767 |
+
msgid "addons-of-x"
|
768 |
msgstr ""
|
769 |
|
770 |
+
#: templates/debug.php:375
|
771 |
+
msgid "users"
|
772 |
msgstr ""
|
773 |
|
774 |
+
#: templates/debug.php:382
|
775 |
+
msgid "verified"
|
776 |
msgstr ""
|
777 |
|
778 |
+
#: templates/debug.php:404
|
779 |
+
msgid "module-licenses"
|
780 |
msgstr ""
|
781 |
|
782 |
+
#: templates/debug.php:409
|
783 |
+
msgid "plugin-id"
|
|
|
784 |
msgstr ""
|
785 |
|
786 |
+
#: templates/debug.php:411
|
787 |
+
msgid "plan-id"
|
788 |
msgstr ""
|
789 |
|
790 |
+
#: templates/debug.php:412
|
791 |
+
msgid "quota"
|
|
|
792 |
msgstr ""
|
793 |
|
794 |
+
#: templates/debug.php:413
|
795 |
+
msgid "activated"
|
796 |
msgstr ""
|
797 |
|
798 |
+
#: templates/debug.php:414
|
799 |
+
msgid "blocking"
|
|
|
800 |
msgstr ""
|
801 |
|
802 |
+
#: templates/debug.php:416
|
803 |
+
msgid "expiration"
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: templates/debug.php:445
|
807 |
+
msgid "debug-log"
|
808 |
msgstr ""
|
809 |
|
810 |
+
#: templates/debug.php:449
|
811 |
+
msgid "all-types"
|
812 |
msgstr ""
|
813 |
|
814 |
+
#: templates/debug.php:456
|
815 |
+
msgid "all-requests"
|
816 |
msgstr ""
|
817 |
|
818 |
+
#: templates/debug.php:461, templates/debug.php:490, templates/debug/logger.php:25
|
819 |
+
msgid "file"
|
820 |
msgstr ""
|
821 |
|
822 |
+
#: templates/debug.php:462, templates/debug.php:488, templates/debug/logger.php:23
|
823 |
+
msgid "function"
|
824 |
msgstr ""
|
825 |
|
826 |
+
#: templates/debug.php:463
|
827 |
+
msgid "process-id"
|
828 |
msgstr ""
|
829 |
|
830 |
+
#: templates/debug.php:464
|
831 |
+
msgid "logger"
|
832 |
msgstr ""
|
833 |
|
834 |
+
#: templates/debug.php:465, templates/debug.php:489, templates/debug/logger.php:24
|
835 |
+
msgid "message"
|
|
|
|
|
|
|
|
|
836 |
msgstr ""
|
837 |
|
838 |
+
#: templates/debug.php:467
|
839 |
+
msgid "filter"
|
840 |
msgstr ""
|
841 |
|
842 |
+
#: templates/debug.php:475
|
843 |
+
msgid "download"
|
844 |
msgstr ""
|
845 |
|
846 |
+
#: templates/debug.php:486, templates/debug/logger.php:22
|
847 |
+
msgid "type"
|
848 |
msgstr ""
|
849 |
|
850 |
+
#: templates/debug.php:491, templates/debug/logger.php:26
|
851 |
+
msgid "timestamp"
|
852 |
msgstr ""
|
853 |
|
854 |
+
#: includes/debug/class-fs-debug-bar-panel.php:48, templates/debug/api-calls.php:84, templates/debug/api-calls.php:148, templates/debug/api-calls.php:149, templates/debug/logger.php:62
|
855 |
+
msgid "ms"
|
856 |
msgstr ""
|
857 |
|
858 |
+
#: includes/debug/debug-bar-start.php:41
|
859 |
+
msgid "Freemius API"
|
860 |
msgstr ""
|
861 |
|
862 |
+
#: includes/debug/debug-bar-start.php:42
|
863 |
+
msgid "Requests"
|
864 |
msgstr ""
|
865 |
|
866 |
+
#: templates/account/billing.php:36
|
867 |
+
msgid "billing"
|
868 |
msgstr ""
|
869 |
|
870 |
+
#: templates/account/billing.php:41, templates/account/billing.php:41
|
871 |
+
msgid "Business name"
|
|
|
|
|
|
|
|
|
872 |
msgstr ""
|
873 |
|
874 |
+
#: templates/account/billing.php:42, templates/account/billing.php:42
|
875 |
+
msgid "Tax / VAT ID"
|
876 |
msgstr ""
|
877 |
|
878 |
+
#: templates/account/billing.php:45, templates/account/billing.php:45, templates/account/billing.php:46, templates/account/billing.php:46
|
879 |
+
msgid "Address Line %d"
|
|
|
880 |
msgstr ""
|
881 |
|
882 |
+
#: templates/account/billing.php:49, templates/account/billing.php:49
|
883 |
+
msgid "City"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: templates/account/billing.php:49, templates/account/billing.php:49
|
887 |
+
msgid "Town"
|
888 |
msgstr ""
|
889 |
|
890 |
+
#: templates/account/billing.php:50, templates/account/billing.php:50
|
891 |
+
msgid "ZIP / Postal Code"
|
892 |
msgstr ""
|
893 |
|
894 |
+
#: templates/account/billing.php:305
|
895 |
+
msgid "Country"
|
896 |
msgstr ""
|
897 |
|
898 |
+
#: templates/account/billing.php:307
|
899 |
+
msgid "Select Country"
|
900 |
msgstr ""
|
901 |
|
902 |
+
#: templates/account/billing.php:314, templates/account/billing.php:315
|
903 |
+
msgid "State"
|
904 |
msgstr ""
|
905 |
|
906 |
+
#: templates/account/billing.php:314, templates/account/billing.php:315
|
907 |
+
msgid "Province"
|
908 |
msgstr ""
|
909 |
|
910 |
+
#: templates/account/billing.php:321, templates/account/billing.php:362, templates/account/billing.php:421
|
911 |
+
msgid "edit"
|
912 |
msgstr ""
|
913 |
|
914 |
+
#: templates/account/billing.php:322, templates/account/billing.php:362, templates/account/billing.php:413
|
915 |
+
msgid "update"
|
916 |
msgstr ""
|
917 |
|
918 |
+
#: templates/account/payments.php:29
|
919 |
+
msgid "payments"
|
920 |
msgstr ""
|
921 |
|
922 |
+
#: templates/account/payments.php:36
|
923 |
+
msgid "date"
|
924 |
msgstr ""
|
925 |
|
926 |
+
#: templates/account/payments.php:37
|
927 |
+
msgid "amount"
|
928 |
msgstr ""
|
929 |
|
930 |
+
#: templates/account/payments.php:38, templates/account/payments.php:50
|
931 |
+
msgid "invoice"
|
932 |
msgstr ""
|
933 |
|
934 |
+
#: templates/debug/api-calls.php:54
|
935 |
+
msgid "API"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: templates/debug/api-calls.php:66
|
939 |
+
msgid "Method"
|
940 |
msgstr ""
|
941 |
|
942 |
+
#: templates/debug/api-calls.php:67
|
943 |
+
msgid "Code"
|
944 |
msgstr ""
|
945 |
|
946 |
+
#: templates/debug/api-calls.php:68
|
947 |
+
msgid "Length"
|
|
|
948 |
msgstr ""
|
949 |
|
950 |
+
#: templates/debug/api-calls.php:69
|
951 |
+
msgid "Path"
|
952 |
msgstr ""
|
953 |
|
954 |
+
#: templates/debug/api-calls.php:71
|
955 |
+
msgid "Body"
|
956 |
msgstr ""
|
957 |
|
958 |
+
#: templates/debug/api-calls.php:73
|
959 |
+
msgid "Result"
|
960 |
msgstr ""
|
961 |
|
962 |
+
#: templates/debug/api-calls.php:74
|
963 |
+
msgid "Start"
|
964 |
msgstr ""
|
965 |
|
966 |
+
#: templates/debug/api-calls.php:75
|
967 |
+
msgid "End"
|
|
|
968 |
msgstr ""
|
969 |
|
970 |
+
#: templates/debug/logger.php:15
|
971 |
+
msgid "Log"
|
|
|
972 |
msgstr ""
|
973 |
|
974 |
+
#: templates/debug/plugins-themes-sync.php:17
|
975 |
+
msgid "plugins-themes-sync"
|
|
|
976 |
msgstr ""
|
977 |
|
978 |
+
#: templates/debug/plugins-themes-sync.php:22
|
979 |
+
msgid "total"
|
|
|
980 |
msgstr ""
|
981 |
|
982 |
+
#: templates/debug/plugins-themes-sync.php:23, templates/debug/scheduled-crons.php:83
|
983 |
+
msgid "Last"
|
984 |
msgstr ""
|
985 |
|
986 |
+
#: templates/debug/plugins-themes-sync.php:29
|
987 |
+
msgid "plugins"
|
988 |
msgstr ""
|
989 |
|
990 |
+
#: templates/debug/plugins-themes-sync.php:35, templates/debug/plugins-themes-sync.php:55, templates/debug/scheduled-crons.php:99, templates/debug/scheduled-crons.php:115
|
991 |
+
msgid "sec"
|
992 |
msgstr ""
|
993 |
|
994 |
+
#: templates/debug/plugins-themes-sync.php:39, templates/debug/plugins-themes-sync.php:59, templates/debug/scheduled-crons.php:103, templates/debug/scheduled-crons.php:119
|
995 |
+
msgid "in-x"
|
996 |
msgstr ""
|
997 |
|
998 |
+
#: templates/debug/plugins-themes-sync.php:49
|
999 |
+
msgid "themes"
|
|
|
1000 |
msgstr ""
|
1001 |
|
1002 |
+
#: templates/debug/scheduled-crons.php:75
|
1003 |
+
msgid "scheduled-crons"
|
|
|
1004 |
msgstr ""
|
1005 |
|
1006 |
+
#: templates/debug/scheduled-crons.php:80
|
1007 |
+
msgid "module"
|
|
|
1008 |
msgstr ""
|
1009 |
|
1010 |
+
#: templates/debug/scheduled-crons.php:81
|
1011 |
+
msgid "module-type"
|
|
|
1012 |
msgstr ""
|
1013 |
|
1014 |
+
#: templates/debug/scheduled-crons.php:82
|
1015 |
+
msgid "cron-type"
|
|
|
1016 |
msgstr ""
|
1017 |
|
1018 |
+
#: templates/debug/scheduled-crons.php:84
|
1019 |
+
msgid "Next"
|
|
|
1020 |
msgstr ""
|
1021 |
|
1022 |
+
#: templates/forms/affiliation.php:81
|
1023 |
+
msgid "non-expiring"
|
1024 |
msgstr ""
|
1025 |
|
1026 |
+
#: templates/forms/affiliation.php:101
|
1027 |
+
msgid "affiliate-application-accepted"
|
|
|
1028 |
msgstr ""
|
1029 |
|
1030 |
+
#: templates/forms/affiliation.php:124
|
1031 |
+
msgid "$text_key"
|
|
|
1032 |
msgstr ""
|
1033 |
|
1034 |
+
#: templates/forms/affiliation.php:132
|
1035 |
+
msgid "become-an-ambassador"
|
|
|
1036 |
msgstr ""
|
1037 |
|
1038 |
+
#: templates/forms/affiliation.php:133
|
1039 |
+
msgid "refer-new-customers"
|
1040 |
msgstr ""
|
1041 |
|
1042 |
+
#: templates/forms/affiliation.php:136
|
1043 |
+
msgid "program-summary"
|
|
|
1044 |
msgstr ""
|
1045 |
|
1046 |
+
#: templates/forms/affiliation.php:138
|
1047 |
+
msgid "commission-on-new-license-purchase"
|
1048 |
msgstr ""
|
1049 |
|
1050 |
+
#: templates/forms/affiliation.php:140
|
1051 |
+
msgid "renewals-commission"
|
1052 |
msgstr ""
|
1053 |
|
1054 |
+
#: templates/forms/affiliation.php:143
|
1055 |
+
msgid "affiliate-tracking"
|
1056 |
msgstr ""
|
1057 |
|
1058 |
+
#: templates/forms/affiliation.php:146
|
1059 |
+
msgid "unlimited-commissions"
|
1060 |
msgstr ""
|
1061 |
|
1062 |
+
#: templates/forms/affiliation.php:148
|
1063 |
+
msgid "minimum-payout-amount"
|
1064 |
msgstr ""
|
1065 |
|
1066 |
+
#: templates/forms/affiliation.php:149
|
1067 |
+
msgid "payouts-unit-and-processing"
|
1068 |
msgstr ""
|
1069 |
|
1070 |
+
#: templates/forms/affiliation.php:150
|
1071 |
+
msgid "commission-payment"
|
1072 |
msgstr ""
|
1073 |
|
1074 |
+
#: templates/forms/affiliation.php:153
|
1075 |
+
msgid "affiliate"
|
1076 |
msgstr ""
|
1077 |
|
1078 |
+
#: templates/forms/affiliation.php:156
|
1079 |
+
msgid "email-address"
|
1080 |
msgstr ""
|
1081 |
|
1082 |
+
#: templates/forms/affiliation.php:160
|
1083 |
+
msgid "full-name"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
+
#: templates/forms/affiliation.php:164
|
1087 |
+
msgid "paypal-account-email-address"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
+
#: templates/forms/affiliation.php:168
|
1091 |
+
msgid "domain-field-label"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: templates/forms/affiliation.php:170
|
1095 |
+
msgid "domain-field-desc"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
+
#: templates/forms/affiliation.php:172
|
1099 |
+
msgid "add-another-domain"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: templates/forms/affiliation.php:176
|
1103 |
+
msgid "extra-domain-fields-label"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: templates/forms/affiliation.php:177
|
1107 |
+
msgid "extra-domain-fields-desc"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
+
#: templates/forms/affiliation.php:187
|
1111 |
+
msgid "promotion-methods"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
+
#: templates/forms/affiliation.php:190
|
1115 |
+
msgid "social-media"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
+
#: templates/forms/affiliation.php:194
|
1119 |
+
msgid "mobile-apps"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
+
#: templates/forms/affiliation.php:198
|
1123 |
+
msgid "statistics-information-field-label"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
+
#: templates/forms/affiliation.php:201
|
1127 |
+
msgid "statistics-information-field-desc"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
+
#: templates/forms/affiliation.php:205
|
1131 |
+
msgid "promotion-method-desc-field-label"
|
1132 |
msgstr ""
|
1133 |
|
1134 |
+
#: templates/forms/affiliation.php:208
|
1135 |
+
msgid "promotion-method-desc-field-desc"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
+
#: templates/forms/affiliation.php:214, templates/forms/resend-key.php:22, templates/forms/deactivation/form.php:80
|
1139 |
+
msgid "cancel"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
+
#: templates/forms/affiliation.php:215, templates/forms/affiliation.php:371
|
1143 |
+
msgid "apply-to-become-an-affiliate"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
+
#: templates/forms/affiliation.php:216
|
1147 |
+
msgid "become-an-affiliate"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
+
#: templates/forms/affiliation.php:272
|
1151 |
+
msgid "email-address-is-required"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
+
#: templates/forms/affiliation.php:278
|
1155 |
+
msgid "paypal-email-address-is-required"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
+
#: templates/forms/affiliation.php:288
|
1159 |
+
msgid "domain-is-required"
|
|
|
1160 |
msgstr ""
|
1161 |
|
1162 |
+
#: templates/forms/affiliation.php:291, templates/forms/affiliation.php:305
|
1163 |
+
msgid "invalid-domain"
|
|
|
1164 |
msgstr ""
|
1165 |
|
1166 |
+
#: templates/forms/affiliation.php:361
|
1167 |
+
msgid "processing"
|
|
|
1168 |
msgstr ""
|
1169 |
|
1170 |
+
#: templates/forms/license-activation.php:20
|
1171 |
+
msgid "activate-license-message"
|
|
|
1172 |
msgstr ""
|
1173 |
|
1174 |
+
#: templates/forms/license-activation.php:36
|
1175 |
+
msgid "license-sync-disclaimer"
|
|
|
1176 |
msgstr ""
|
1177 |
|
1178 |
+
#: templates/forms/license-activation.php:41
|
1179 |
+
msgid "agree-activate-license"
|
|
|
1180 |
msgstr ""
|
1181 |
|
1182 |
+
#: templates/forms/optout.php:30
|
1183 |
+
msgid "opt-out"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
+
#: templates/forms/optout.php:31
|
1187 |
+
msgid "opt-out-message-appreciation"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
+
#: templates/forms/optout.php:32
|
1191 |
+
msgid "opt-out-message-usage-tracking"
|
1192 |
msgstr ""
|
1193 |
|
1194 |
+
#: templates/forms/optout.php:34
|
1195 |
+
msgid "opt-out-message-clicking-opt-out"
|
1196 |
msgstr ""
|
1197 |
|
1198 |
+
#: templates/forms/resend-key.php:21
|
1199 |
+
msgid "send-license-key"
|
1200 |
msgstr ""
|
1201 |
|
1202 |
+
#: templates/forms/resend-key.php:24
|
1203 |
+
msgid "reason-other"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
+
#: templates/forms/resend-key.php:57
|
1207 |
+
msgid "ask-for-upgrade-email-address"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
+
#: templates/forms/trial-start.php:21
|
1211 |
+
msgid "start-trial-prompt-header"
|
1212 |
msgstr ""
|
1213 |
|
1214 |
+
#: templates/forms/trial-start.php:26
|
1215 |
+
msgid "start-trial-prompt-message"
|
1216 |
msgstr ""
|
1217 |
|
1218 |
+
#: templates/plugin-info/description.php:72, templates/plugin-info/screenshots.php:31
|
1219 |
+
msgid "view-full-size-x"
|
|
|
1220 |
msgstr ""
|
1221 |
|
1222 |
+
#: templates/plugin-info/features.php:43
|
1223 |
+
msgid "Support"
|
1224 |
msgstr ""
|
1225 |
|
1226 |
+
#: templates/plugin-info/features.php:56
|
1227 |
+
msgid "unlimited-updates"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
+
#: templates/forms/deactivation/contact.php:16
|
1231 |
+
msgid "contact-support-before-deactivation"
|
1232 |
msgstr ""
|
1233 |
|
1234 |
+
#: templates/forms/deactivation/contact.php:19
|
1235 |
+
msgid "contact-support"
|
1236 |
msgstr ""
|
1237 |
|
1238 |
+
#: templates/forms/deactivation/form.php:56
|
1239 |
+
msgid "anonymous-feedback"
|
1240 |
msgstr ""
|
1241 |
|
1242 |
+
#: templates/forms/deactivation/form.php:243
|
1243 |
+
msgid "deactivation-modal-button-submit"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
+
#: templates/forms/deactivation/form.php:245, templates/forms/deactivation/form.php:387, templates/forms/deactivation/form.php:394
|
1247 |
+
msgid "deactivate"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
+
#: templates/forms/deactivation/form.php:246, templates/forms/deactivation/form.php:388, templates/forms/deactivation/form.php:395
|
1251 |
+
msgid "activate-x"
|
1252 |
msgstr ""
|
1253 |
|
1254 |
+
#: templates/forms/deactivation/form.php:246, templates/forms/deactivation/form.php:388, templates/forms/deactivation/form.php:395
|
1255 |
+
msgid "theme"
|
1256 |
msgstr ""
|
1257 |
|
1258 |
+
#: templates/forms/deactivation/form.php:264
|
1259 |
+
msgid "ask-for-reason-message"
|
1260 |
msgstr ""
|
1261 |
|
1262 |
+
#: templates/forms/deactivation/form.php:385
|
1263 |
+
msgid "deactivation-modal-button-confirm"
|
1264 |
msgstr ""
|
1265 |
|
1266 |
+
#: templates/forms/deactivation/form.php:392
|
1267 |
+
msgid "skip-and-x"
|
1268 |
msgstr ""
|
1269 |
|
1270 |
+
#: templates/forms/deactivation/retry-skip.php:21
|
1271 |
+
msgid "click-here-to-use-plugin-anonymously"
|
1272 |
msgstr ""
|
1273 |
|
1274 |
+
#: templates/forms/deactivation/retry-skip.php:23
|
1275 |
+
msgid "dont-have-to-share-any-data"
|
1276 |
msgstr ""
|
freemius/package.json
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "freemius-wordpress-sdk",
|
3 |
-
"version": "1.0.0",
|
4 |
-
"description": "",
|
5 |
-
"main": "gulpfile.js",
|
6 |
-
"dependencies": {
|
7 |
-
"gulp": "^3.9.1",
|
8 |
-
"gulp-clean": "^0.3.2",
|
9 |
-
"gulp-fs": "0.0.2",
|
10 |
-
"gulp-gettext": "^0.3.0",
|
11 |
-
"gulp-path": "^3.0.3",
|
12 |
-
"gulp-pofill": "^1.0.0",
|
13 |
-
"gulp-rename": "^1.2.2",
|
14 |
-
"gulp-sort": "^2.0.0",
|
15 |
-
"gulp-wp-pot": "^2.0.4",
|
16 |
-
"gulp-transifex": "^0.1.17"
|
17 |
-
},
|
18 |
-
"scripts": {
|
19 |
-
"test": "echo \"Error: no test specified\" && exit 1"
|
20 |
-
},
|
21 |
-
"repository": {
|
22 |
-
"type": "git",
|
23 |
-
"url": "git+https://github.com/Freemius/wordpress-sdk.git"
|
24 |
-
},
|
25 |
-
"author": "Vova Feldman",
|
26 |
-
"license": "GPL-2.0",
|
27 |
-
"homepage": "https://freemius.com",
|
28 |
-
"devDependencies": {
|
29 |
-
"gulp": "^3.9.1",
|
30 |
-
"gulp-clean": "^0.3.2",
|
31 |
-
"gulp-fs": "0.0.2",
|
32 |
-
"gulp-gettext": "^0.3.0",
|
33 |
-
"gulp-path": "^3.0.3",
|
34 |
-
"gulp-pofill": "^1.0.0",
|
35 |
-
"gulp-rename": "^1.2.2",
|
36 |
-
"gulp-sort": "^2.0.0",
|
37 |
-
"gulp-wp-pot": "^2.0.4",
|
38 |
-
"gulp-transifex": "^0.1.17"
|
39 |
-
}
|
40 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/require.php
CHANGED
@@ -28,6 +28,8 @@
|
|
28 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-user.php';
|
29 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-site.php';
|
30 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin.php';
|
|
|
|
|
31 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-info.php';
|
32 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-tag.php';
|
33 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-plan.php';
|
28 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-user.php';
|
29 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-site.php';
|
30 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin.php';
|
31 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-affiliate.php';
|
32 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-affiliate-terms.php';
|
33 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-info.php';
|
34 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-tag.php';
|
35 |
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-plan.php';
|
freemius/start.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
-
$this_sdk_version = '1.2.2.
|
19 |
|
20 |
#region SDK Selection Logic --------------------------------------------------------------------
|
21 |
|
@@ -364,11 +364,11 @@
|
|
364 |
define( 'WP_FS__SDK_VERSION', $this_sdk_version );
|
365 |
}
|
366 |
|
367 |
-
$plugins_or_theme_dir_path = trailingslashit( $is_theme ?
|
368 |
get_theme_root() :
|
369 |
-
WP_PLUGIN_DIR );
|
370 |
|
371 |
-
if ( 0 === strpos( $file_path,
|
372 |
// No symlinks
|
373 |
} else {
|
374 |
/**
|
@@ -384,13 +384,24 @@
|
|
384 |
is_object( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
|
385 |
! empty( $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink )
|
386 |
) {
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
394 |
|
395 |
if ( empty( $sdk_symlink ) ) // Has symlinks, therefore, we need to configure WP_FS__DIR based on the symlink.
|
396 |
{
|
@@ -401,13 +412,26 @@
|
|
401 |
while ( '/' !== $partial_path_left &&
|
402 |
( false === $realpath || $file_path !== fs_normalize_path( $realpath ) )
|
403 |
) {
|
404 |
-
|
405 |
-
|
406 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
407 |
}
|
408 |
|
409 |
-
|
410 |
-
|
411 |
|
412 |
// Cache value.
|
413 |
if ( isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
|
@@ -416,13 +440,12 @@
|
|
416 |
$fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink = $sdk_symlink;
|
417 |
update_option( 'fs_active_plugins', $fs_active_plugins );
|
418 |
}
|
419 |
-
|
420 |
}
|
421 |
}
|
422 |
|
423 |
if ( ! empty( $sdk_symlink ) ) {
|
424 |
// Set SDK dir to the symlink path.
|
425 |
-
define( 'WP_FS__DIR', $sdk_symlink );
|
426 |
}
|
427 |
}
|
428 |
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
+
$this_sdk_version = '1.2.2.10';
|
19 |
|
20 |
#region SDK Selection Logic --------------------------------------------------------------------
|
21 |
|
364 |
define( 'WP_FS__SDK_VERSION', $this_sdk_version );
|
365 |
}
|
366 |
|
367 |
+
$plugins_or_theme_dir_path = fs_normalize_path( trailingslashit( $is_theme ?
|
368 |
get_theme_root() :
|
369 |
+
WP_PLUGIN_DIR ) );
|
370 |
|
371 |
+
if ( 0 === strpos( $file_path, $plugins_or_theme_dir_path ) ) {
|
372 |
// No symlinks
|
373 |
} else {
|
374 |
/**
|
384 |
is_object( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
|
385 |
! empty( $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink )
|
386 |
) {
|
387 |
+
$sdk_symlink = $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink;
|
388 |
+
if ( 0 === strpos( $sdk_symlink, $plugins_or_theme_dir_path ) ) {
|
389 |
+
/**
|
390 |
+
* Make the symlink path relative.
|
391 |
+
*
|
392 |
+
* @author Leo Fajardo (@leorw)
|
393 |
+
*/
|
394 |
+
$sdk_symlink = substr( $sdk_symlink, strlen( $plugins_or_theme_dir_path ) );
|
395 |
+
|
396 |
+
$fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink = $sdk_symlink;
|
397 |
+
update_option( 'fs_active_plugins', $fs_active_plugins );
|
398 |
+
}
|
399 |
+
|
400 |
+
$realpath = realpath( $plugins_or_theme_dir_path . $sdk_symlink );
|
401 |
+
if ( ! is_string( $realpath ) || ! file_exists( $realpath ) ) {
|
402 |
+
$sdk_symlink = null;
|
403 |
+
}
|
404 |
+
}
|
405 |
|
406 |
if ( empty( $sdk_symlink ) ) // Has symlinks, therefore, we need to configure WP_FS__DIR based on the symlink.
|
407 |
{
|
412 |
while ( '/' !== $partial_path_left &&
|
413 |
( false === $realpath || $file_path !== fs_normalize_path( $realpath ) )
|
414 |
) {
|
415 |
+
$partial_path_right = trailingslashit( basename( $partial_path_left ) ) . $partial_path_right;
|
416 |
+
$partial_path_left_prev = $partial_path_left;
|
417 |
+
$partial_path_left = dirname( $partial_path_left_prev );
|
418 |
+
|
419 |
+
/**
|
420 |
+
* Avoid infinite loop if for example `$partial_path_left_prev` is `C:/`, in this case,
|
421 |
+
* `dirname( 'C:/' )` will return `C:/`.
|
422 |
+
*
|
423 |
+
* @author Leo Fajardo (@leorw)
|
424 |
+
*/
|
425 |
+
if ( $partial_path_left === $partial_path_left_prev ) {
|
426 |
+
$partial_path_left = '';
|
427 |
+
break;
|
428 |
+
}
|
429 |
+
|
430 |
+
$realpath = realpath( $plugins_or_theme_dir_path . $partial_path_right );
|
431 |
}
|
432 |
|
433 |
+
if ( ! empty( $partial_path_left ) && '/' !== $partial_path_left ) {
|
434 |
+
$sdk_symlink = fs_normalize_path( dirname( $partial_path_right ) );
|
435 |
|
436 |
// Cache value.
|
437 |
if ( isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
|
440 |
$fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink = $sdk_symlink;
|
441 |
update_option( 'fs_active_plugins', $fs_active_plugins );
|
442 |
}
|
|
|
443 |
}
|
444 |
}
|
445 |
|
446 |
if ( ! empty( $sdk_symlink ) ) {
|
447 |
// Set SDK dir to the symlink path.
|
448 |
+
define( 'WP_FS__DIR', $plugins_or_theme_dir_path . $sdk_symlink );
|
449 |
}
|
450 |
}
|
451 |
|
freemius/templates/account.php
CHANGED
@@ -47,20 +47,44 @@
|
|
47 |
if ( $has_tabs ) {
|
48 |
$query_params['tabs'] = 'true';
|
49 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
?>
|
51 |
<div class="wrap fs-section">
|
52 |
-
<?php if ( ! $has_tabs && ! $fs->apply_filters( 'hide_account_tabs', false )) : ?>
|
53 |
<h2 class="nav-tab-wrapper">
|
54 |
<a href="<?php echo $fs->get_account_url() ?>"
|
55 |
-
class="nav-tab nav-tab-active"><?php
|
56 |
<?php if ( $fs->has_addons() ) : ?>
|
57 |
<a href="<?php echo $fs->_get_admin_page_url( 'addons' ) ?>"
|
58 |
-
class="nav-tab"><?php
|
59 |
<?php endif ?>
|
60 |
<?php if ( $show_upgrade ) : ?>
|
61 |
-
<a href="<?php echo $fs->get_upgrade_url() ?>" class="nav-tab"><?php
|
62 |
<?php if ( $fs->apply_filters( 'show_trial', true ) && ! $fs->is_trial_utilized() && $fs->has_trial_plan() ) : ?>
|
63 |
-
<a href="<?php echo $fs->get_trial_url() ?>" class="nav-tab"><?php
|
64 |
<?php endif ?>
|
65 |
<?php endif ?>
|
66 |
</h2>
|
@@ -71,7 +95,7 @@
|
|
71 |
<div class="has-sidebar has-right-sidebar">
|
72 |
<div class="has-sidebar-content">
|
73 |
<div class="postbox">
|
74 |
-
<h3><span class="dashicons dashicons-businessman"></span> <?php
|
75 |
<div class="fs-header-actions">
|
76 |
<ul>
|
77 |
<?php if ( ! $is_paying ) : ?>
|
@@ -81,12 +105,12 @@
|
|
81 |
<?php wp_nonce_field( 'delete_account' ) ?>
|
82 |
<a href="#" onclick="if (confirm('<?php
|
83 |
if ( $is_active_subscription ) {
|
84 |
-
echo esc_attr( sprintf(
|
85 |
} else {
|
86 |
-
echo sprintf(
|
87 |
}
|
88 |
?>')) this.parentNode.submit(); return false;"><i
|
89 |
-
class="dashicons dashicons-no"></i> <?php
|
90 |
</form>
|
91 |
</li>
|
92 |
<li> • </li>
|
@@ -97,8 +121,8 @@
|
|
97 |
<input type="hidden" name="fs_action" value="deactivate_license">
|
98 |
<?php wp_nonce_field( 'deactivate_license' ) ?>
|
99 |
<a href="#"
|
100 |
-
onclick="if (confirm('<?php
|
101 |
-
class="dashicons dashicons-admin-network"></i> <?php
|
102 |
</a>
|
103 |
</form>
|
104 |
</li>
|
@@ -111,11 +135,11 @@
|
|
111 |
<input type="hidden" name="fs_action" value="downgrade_account">
|
112 |
<?php wp_nonce_field( 'downgrade_account' ) ?>
|
113 |
<a href="#"
|
114 |
-
onclick="if (confirm('<?php
|
115 |
-
|
116 |
} else {
|
117 |
-
|
118 |
-
}?> <?php
|
119 |
</form>
|
120 |
</li>
|
121 |
<li> • </li>
|
@@ -123,7 +147,7 @@
|
|
123 |
<?php if ( ! $fs->is_single_plan() ) : ?>
|
124 |
<li>
|
125 |
<a href="<?php echo $fs->get_upgrade_url() ?>"><i
|
126 |
-
class="dashicons dashicons-grid-view"></i> <?php
|
127 |
</li>
|
128 |
<li> • </li>
|
129 |
<?php endif ?>
|
@@ -133,8 +157,8 @@
|
|
133 |
<input type="hidden" name="fs_action" value="cancel_trial">
|
134 |
<?php wp_nonce_field( 'cancel_trial' ) ?>
|
135 |
<a href="#"
|
136 |
-
onclick="if (confirm('<?php
|
137 |
-
class="dashicons dashicons-download"></i> <?php
|
138 |
</form>
|
139 |
</li>
|
140 |
<li> • </li>
|
@@ -144,7 +168,7 @@
|
|
144 |
<input type="hidden" name="fs_action" value="<?php echo $fs->get_unique_affix() ?>_sync_license">
|
145 |
<?php wp_nonce_field( $fs->get_unique_affix() . '_sync_license' ) ?>
|
146 |
<a href="#" onclick="this.parentNode.submit(); return false;"><i
|
147 |
-
class="dashicons dashicons-image-rotate"></i> <?php
|
148 |
</form>
|
149 |
</li>
|
150 |
|
@@ -158,50 +182,50 @@
|
|
158 |
$profile = array();
|
159 |
$profile[] = array(
|
160 |
'id' => 'user_name',
|
161 |
-
'title' =>
|
162 |
'value' => $name
|
163 |
);
|
164 |
// if (isset($user->email) && false !== strpos($user->email, '@'))
|
165 |
$profile[] = array(
|
166 |
'id' => 'email',
|
167 |
-
'title' =>
|
168 |
'value' => $user->email
|
169 |
);
|
170 |
|
171 |
if ( is_numeric( $user->id ) ) {
|
172 |
$profile[] = array(
|
173 |
'id' => 'user_id',
|
174 |
-
'title' =>
|
175 |
'value' => $user->id
|
176 |
);
|
177 |
}
|
178 |
|
179 |
$profile[] = array(
|
180 |
'id' => 'site_id',
|
181 |
-
'title' =>
|
182 |
'value' => is_string( $site->id ) ?
|
183 |
$site->id :
|
184 |
-
|
185 |
);
|
186 |
|
187 |
$profile[] = array(
|
188 |
'id' => 'site_public_key',
|
189 |
-
'title' =>
|
190 |
'value' => $site->public_key
|
191 |
);
|
192 |
|
193 |
$profile[] = array(
|
194 |
'id' => 'site_secret_key',
|
195 |
-
'title' =>
|
196 |
'value' => ( ( is_string( $site->secret_key ) ) ?
|
197 |
$site->secret_key :
|
198 |
-
|
199 |
)
|
200 |
);
|
201 |
|
202 |
$profile[] = array(
|
203 |
'id' => 'version',
|
204 |
-
'title' =>
|
205 |
'value' => $fs->get_plugin_version()
|
206 |
);
|
207 |
|
@@ -211,25 +235,26 @@
|
|
211 |
|
212 |
$profile[] = array(
|
213 |
'id' => 'plan',
|
214 |
-
'title' =>
|
215 |
'value' => ( is_string( $trial_plan->name ) ?
|
216 |
strtoupper( $trial_plan->title ) :
|
217 |
-
|
218 |
);
|
219 |
} else {
|
220 |
$profile[] = array(
|
221 |
'id' => 'plan',
|
222 |
-
'title' =>
|
223 |
-
'value' => is_string( $site->plan->name ) ?
|
224 |
-
|
225 |
-
strtoupper(
|
|
|
226 |
);
|
227 |
|
228 |
if ( is_object( $license ) ) {
|
229 |
if ( ! $hide_license_key ) {
|
230 |
$profile[] = array(
|
231 |
'id' => 'license_key',
|
232 |
-
'title' =>
|
233 |
'value' => $license->secret_key,
|
234 |
);
|
235 |
}
|
@@ -259,21 +284,21 @@
|
|
259 |
<code><?php echo htmlspecialchars( $p['value'] ) ?></code>
|
260 |
<?php endif ?>
|
261 |
<?php if ( 'email' === $p['id'] && ! $user->is_verified() ) : ?>
|
262 |
-
<label class="fs-tag fs-warn"><?php
|
263 |
<?php endif ?>
|
264 |
<?php if ( 'plan' === $p['id'] ) : ?>
|
265 |
<?php if ( $fs->is_trial() ) : ?>
|
266 |
-
<label class="fs-tag fs-success"><?php
|
267 |
<?php endif ?>
|
268 |
<?php if ( is_object( $license ) && ! $license->is_lifetime() ) : ?>
|
269 |
<?php if ( ! $is_active_subscription && ! $license->is_first_payment_pending() ) : ?>
|
270 |
<label
|
271 |
-
class="fs-tag fs-warn"><?php echo esc_html( sprintf(
|
272 |
<?php elseif ( $is_active_subscription && ! $subscription->is_first_payment_pending() ) : ?>
|
273 |
-
<label class="fs-tag fs-success"><?php echo esc_html( sprintf(
|
274 |
<?php endif ?>
|
275 |
<?php elseif ( $fs->is_trial() ) : ?>
|
276 |
-
<label class="fs-tag fs-warn"><?php echo esc_html( sprintf(
|
277 |
<?php endif ?>
|
278 |
<div class="button-group">
|
279 |
<?php $available_license = $fs->is_free_plan() ? $fs->_get_available_premium_license() : false ?>
|
@@ -286,15 +311,15 @@
|
|
286 |
<?php wp_nonce_field( 'activate_license' ) ?>
|
287 |
<input type="submit" class="button button-primary"
|
288 |
value="<?php echo esc_attr( sprintf(
|
289 |
-
|
290 |
$premium_plan->title,
|
291 |
( $site->is_localhost() && $available_license->is_free_localhost ) ?
|
292 |
-
' [' .
|
293 |
( $available_license->is_single_site() ?
|
294 |
'' :
|
295 |
' [' . ( 1 < $available_license->left() ?
|
296 |
-
sprintf(
|
297 |
-
strtolower(
|
298 |
)
|
299 |
) ) ?> ">
|
300 |
</form>
|
@@ -302,10 +327,10 @@
|
|
302 |
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>"
|
303 |
method="POST" class="button-group">
|
304 |
<?php if ( $show_upgrade && $fs->is_premium() ) : ?>
|
305 |
-
<a class="button activate-license-trigger <?php echo $fs->get_unique_affix() ?>" href="#"><?php
|
306 |
<?php endif ?>
|
307 |
<input type="submit" class="button"
|
308 |
-
value="<?php
|
309 |
<input type="hidden" name="fs_action"
|
310 |
value="<?php echo $fs->get_unique_affix() ?>_sync_license">
|
311 |
<?php wp_nonce_field( $fs->get_unique_affix() . '_sync_license' ) ?>
|
@@ -315,7 +340,7 @@
|
|
315 |
echo $show_upgrade ?
|
316 |
' button-primary fs-upgrade' :
|
317 |
' fs-change-plan'; ?> button-upgrade"><i
|
318 |
-
class="dashicons dashicons-cart"></i> <?php
|
319 |
<?php endif ?>
|
320 |
</form>
|
321 |
<?php endif ?>
|
@@ -324,9 +349,9 @@
|
|
324 |
<?php if ( $fs->has_premium_version() ) : ?>
|
325 |
<?php if ( $fs->is_premium() ) : ?>
|
326 |
<label
|
327 |
-
class="fs-tag fs-<?php echo $fs->can_use_premium_code() ? 'success' : 'warn' ?>"><?php
|
328 |
<?php elseif ( $fs->can_use_premium_code() ) : ?>
|
329 |
-
<label class="fs-tag fs-warn"><?php
|
330 |
<?php endif ?>
|
331 |
<?php endif ?>
|
332 |
<?php endif ?>
|
@@ -338,7 +363,7 @@
|
|
338 |
<input type="hidden" name="fs_action" value="verify_email">
|
339 |
<?php wp_nonce_field( 'verify_email' ) ?>
|
340 |
<input type="submit" class="button button-small"
|
341 |
-
value="<?php
|
342 |
</form>
|
343 |
<?php endif ?>
|
344 |
<?php if ( 'version' === $p['id'] ) : ?>
|
@@ -347,22 +372,25 @@
|
|
347 |
<?php if ( $is_paying || $fs->is_trial() ) : ?>
|
348 |
<?php if ( ! $fs->is_allowed_to_install() ) : ?>
|
349 |
<a target="_blank" class="button button-primary"
|
350 |
-
href="<?php echo $fs->_get_latest_download_local_url() ?>"><?php echo sprintf(
|
|
|
|
|
|
|
351 |
<?php elseif ( is_object( $update ) ) : ?>
|
352 |
<?php
|
353 |
$module_type = $fs->get_module_type();
|
354 |
?>
|
355 |
<a class="button button-primary"
|
356 |
-
href="<?php echo wp_nonce_url( self_admin_url( "update.php?action=upgrade-{$module_type}&{$module_type}=" . $fs->get_plugin_basename() ), "upgrade-{$module_type}_" . $fs->get_plugin_basename() ) ?>"><?php echo
|
357 |
<?php endif ?>
|
358 |
<?php endif; ?>
|
359 |
</div>
|
360 |
<?php endif ?>
|
361 |
<?php
|
362 |
elseif ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
|
363 |
-
<button class="button button-small fs-toggle-visibility"><?php
|
364 |
<?php if ('license_key' === $p['id']) : ?>
|
365 |
-
<button class="button button-small activate-license-trigger <?php echo $fs->get_unique_affix() ?>"><?php
|
366 |
<?php endif ?>
|
367 |
<?php
|
368 |
elseif (/*in_array($p['id'], array('site_secret_key', 'site_id', 'site_public_key')) ||*/
|
@@ -372,13 +400,17 @@
|
|
372 |
) ) )
|
373 |
) : ?>
|
374 |
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST"
|
375 |
-
onsubmit="var val = prompt('<?php echo esc_attr( sprintf(
|
|
|
|
|
|
|
|
|
376 |
<input type="hidden" name="fs_action" value="update_<?php echo $p['id'] ?>">
|
377 |
<input type="hidden" name="fs_<?php echo $p['id'] ?>_<?php echo $fs->get_unique_affix() ?>"
|
378 |
value="">
|
379 |
<?php wp_nonce_field( 'update_' . $p['id'] ) ?>
|
380 |
<input type="submit" class="button button-small"
|
381 |
-
value="<?php
|
382 |
</form>
|
383 |
<?php endif ?>
|
384 |
</td>
|
@@ -401,13 +433,13 @@
|
|
401 |
$input.toggle();
|
402 |
|
403 |
if ($input.is(':visible')) {
|
404 |
-
$this.html(<?php
|
405 |
setTimeout(function () {
|
406 |
$input.select().focus();
|
407 |
}, 100);
|
408 |
}
|
409 |
else {
|
410 |
-
$this.html(<?php
|
411 |
}
|
412 |
});
|
413 |
}(jQuery));
|
@@ -436,11 +468,11 @@
|
|
436 |
<table id="fs_addons" class="widefat">
|
437 |
<thead>
|
438 |
<tr>
|
439 |
-
<th><h3><?php
|
440 |
-
<th><?php
|
441 |
-
<th><?php
|
442 |
-
<th><?php
|
443 |
-
<th><?php
|
444 |
<th></th>
|
445 |
<?php if ( defined( 'WP_FS__DEV_MODE' ) && WP_FS__DEV_MODE ) : ?>
|
446 |
<th></th>
|
@@ -492,7 +524,7 @@
|
|
492 |
</td>
|
493 |
<td>
|
494 |
<!-- Plan Title -->
|
495 |
-
<?php echo is_string( $addon_site->plan->name ) ?
|
496 |
</td>
|
497 |
<td>
|
498 |
<!-- Expiration -->
|
@@ -500,37 +532,42 @@
|
|
500 |
$tags = array();
|
501 |
|
502 |
if ( $fs_addon->is_trial() ) {
|
503 |
-
$tags[] = array( 'label' =>
|
504 |
|
505 |
$tags[] = array(
|
506 |
-
'label' => sprintf(
|
|
|
|
|
|
|
|
|
|
|
507 |
'type' => ( $is_paid_trial ? 'success' : 'warn' )
|
508 |
);
|
509 |
} else {
|
510 |
if ( is_object( $license ) ) {
|
511 |
if ( $license->is_cancelled ) {
|
512 |
$tags[] = array(
|
513 |
-
'label' =>
|
514 |
'type' => 'error'
|
515 |
);
|
516 |
} else if ( $license->is_expired() ) {
|
517 |
$tags[] = array(
|
518 |
-
'label' =>
|
519 |
'type' => 'error'
|
520 |
);
|
521 |
} else if ( $license->is_lifetime() ) {
|
522 |
$tags[] = array(
|
523 |
-
'label' =>
|
524 |
'type' => 'success'
|
525 |
);
|
526 |
} else if ( ! $is_active_subscription && ! $license->is_first_payment_pending() ) {
|
527 |
$tags[] = array(
|
528 |
-
'label' => sprintf(
|
529 |
'type' => 'warn'
|
530 |
);
|
531 |
} else if ( $is_active_subscription && ! $subscription->is_first_payment_pending() ) {
|
532 |
$tags[] = array(
|
533 |
-
'label' => sprintf(
|
534 |
'type' => 'success'
|
535 |
);
|
536 |
}
|
@@ -550,26 +587,28 @@
|
|
550 |
$fs->get_id(),
|
551 |
'account',
|
552 |
'deactivate_license',
|
553 |
-
|
554 |
array( 'plugin_id' => $addon_id ),
|
555 |
false
|
556 |
);
|
557 |
|
558 |
$human_readable_license_expiration = human_time_diff( time(), strtotime( $license->expiration ) );
|
559 |
-
$downgrade_confirmation_message = sprintf(
|
|
|
560 |
$plan->title,
|
561 |
-
$human_readable_license_expiration
|
|
|
562 |
|
563 |
$after_downgrade_message = ! $license->is_block_features ?
|
564 |
-
sprintf(
|
565 |
-
sprintf(
|
566 |
|
567 |
if ( ! $license->is_lifetime() && $is_active_subscription ) {
|
568 |
$buttons[] = fs_ui_get_action_button(
|
569 |
$fs->get_id(),
|
570 |
'account',
|
571 |
'downgrade_account',
|
572 |
-
|
573 |
array( 'plugin_id' => $addon_id ),
|
574 |
false,
|
575 |
false,
|
@@ -582,11 +621,11 @@
|
|
582 |
$fs->get_id(),
|
583 |
'account',
|
584 |
'cancel_trial',
|
585 |
-
|
586 |
array( 'plugin_id' => $addon_id ),
|
587 |
false,
|
588 |
'dashicons dashicons-download',
|
589 |
-
|
590 |
'POST'
|
591 |
);
|
592 |
} else {
|
@@ -599,7 +638,7 @@
|
|
599 |
$fs->get_id(),
|
600 |
'account',
|
601 |
'activate_license',
|
602 |
-
sprintf(
|
603 |
array(
|
604 |
'plugin_id' => $addon_id,
|
605 |
'license_id' => $premium_license->id,
|
@@ -614,7 +653,7 @@
|
|
614 |
$fs->get_id(),
|
615 |
'account',
|
616 |
$fs->get_unique_affix() . '_sync_license',
|
617 |
-
|
618 |
array( 'plugin_id' => $addon_id ),
|
619 |
false
|
620 |
);
|
@@ -626,21 +665,21 @@
|
|
626 |
$buttons[] = sprintf(
|
627 |
'<a class="button button-primary edit" href="%s" title="%s">%s</a>',
|
628 |
wp_nonce_url( 'plugins.php?action=activate&plugin=' . $addon_file, 'activate-plugin_' . $addon_file ),
|
629 |
-
|
630 |
-
|
631 |
);
|
632 |
} else {
|
633 |
if ( $fs->is_allowed_to_install() ) {
|
634 |
$buttons[] = sprintf(
|
635 |
'<a class="button button-primary edit" href="%s">%s</a>',
|
636 |
wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $addon->slug ), 'install-plugin_' . $addon->slug ),
|
637 |
-
|
638 |
);
|
639 |
} else {
|
640 |
$buttons[] = sprintf(
|
641 |
'<a target="_blank" class="button button-primary edit" href="%s">%s</a>',
|
642 |
$fs->_get_latest_download_local_url( $addon_id ),
|
643 |
-
|
644 |
);
|
645 |
}
|
646 |
}
|
@@ -650,9 +689,11 @@
|
|
650 |
$buttons[] = sprintf( '<a href="%s" class="thickbox button button-primary" aria-label="%s" data-title="%s"><i class="dashicons dashicons-cart"></i> %s</a>',
|
651 |
esc_url( network_admin_url( 'plugin-install.php?tab=plugin-information&parent_plugin_id=' . $fs->get_id() . '&plugin=' . $addon->slug .
|
652 |
'&TB_iframe=true&width=600&height=550' ) ),
|
653 |
-
esc_attr( sprintf(
|
654 |
esc_attr( $addon->title ),
|
655 |
-
|
|
|
|
|
656 |
);
|
657 |
}
|
658 |
|
@@ -680,15 +721,15 @@
|
|
680 |
<?php $addon_file = $fs->get_addon_basename( $addon_id ) ?>
|
681 |
<a class="button button-primary"
|
682 |
href="<?php echo wp_nonce_url( 'plugins.php?action=activate&plugin=' . $addon_file, 'activate-plugin_' . $addon_file ) ?>"
|
683 |
-
title="<?php
|
684 |
-
class="edit"><?php
|
685 |
<?php else : ?>
|
686 |
<?php if ( $fs->is_allowed_to_install() ) : ?>
|
687 |
<a class="button button-primary"
|
688 |
-
href="<?php echo wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $addon->slug ), 'install-plugin_' . $addon->slug ) ?>"><?php
|
689 |
<?php else : ?>
|
690 |
<a target="_blank" class="button button-primary"
|
691 |
-
href="<?php echo $fs->_get_latest_download_local_url( $addon_id ) ?>"><?php
|
692 |
<?php endif ?>
|
693 |
<?php endif ?>
|
694 |
</td>
|
@@ -701,7 +742,7 @@
|
|
701 |
fs_ui_action_button(
|
702 |
$fs->get_id(), 'account',
|
703 |
'delete_account',
|
704 |
-
|
705 |
array( 'plugin_id' => $addon_id ),
|
706 |
false
|
707 |
);
|
47 |
if ( $has_tabs ) {
|
48 |
$query_params['tabs'] = 'true';
|
49 |
}
|
50 |
+
|
51 |
+
// Aliases.
|
52 |
+
$download_latest_text = fs_text_x_inline( 'Download Latest', 'as download latest version', 'download-latest', $slug );
|
53 |
+
$downgrade_x_confirm_text = fs_text_inline( 'Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s.', 'downgrade-x-confirm', $slug );
|
54 |
+
$cancel_trial_confirm_text = fs_text_inline( 'Cancelling the trial will immediately block access to all premium features. Are you sure?', 'cancel-trial-confirm', $slug );
|
55 |
+
$after_downgrade_non_blocking_text = fs_text_inline( 'You can still enjoy all %s features but you will not have access to %s updates and support.', 'after-downgrade-non-blocking', $slug );
|
56 |
+
$after_downgrade_blocking_text = fs_text_inline( 'Once your license expires you can still use the Free version but you will NOT have access to the %s features.', 'after-downgrade-blocking', $slug );
|
57 |
+
/* translators: %s: Plan title (e.g. "Professional") */
|
58 |
+
$activate_plan_text = fs_text_inline( 'Activate %s Plan', 'activate-x-plan', $slug );
|
59 |
+
$version_text = fs_text_x_inline( 'Version', 'product version', 'version', $slug );
|
60 |
+
/* translators: %s: Time period (e.g. Auto renews in "2 months") */
|
61 |
+
$renews_in_text = fs_text_inline( 'Auto renews in %s', 'renews-in', $slug );
|
62 |
+
/* translators: %s: Time period (e.g. Expires in "2 months") */
|
63 |
+
$expires_in_text = fs_text_inline( 'Expires in %s', 'expires-in', $slug );
|
64 |
+
$sync_license_text = fs_text_x_inline( 'Sync License', 'as synchronize license', 'sync-license', $slug );
|
65 |
+
$cancel_trial_text = fs_text_inline( 'Cancel Trial', 'cancel-trial', $slug );
|
66 |
+
$change_plan_text = fs_text_inline( 'Change Plan', 'change-plan', $slug );
|
67 |
+
$upgrade_text = fs_text_x_inline( 'Upgrade', 'verb', 'upgrade', $slug );
|
68 |
+
$addons_text = fs_text_inline( 'Add-Ons', 'add-ons', $slug );
|
69 |
+
$downgrade_text = fs_text_x_inline( 'Downgrade', 'verb', 'downgrade', $slug );
|
70 |
+
$trial_text = fs_text_x_inline( 'Trial', 'trial period', 'trial', $slug );
|
71 |
+
$free_text = fs_text_inline( 'Free', 'free', $slug );
|
72 |
+
$activate_text = fs_text_inline( 'Activate', 'activate', $slug );
|
73 |
+
$plan_text = fs_text_x_inline( 'Plan', 'as product pricing plan', 'plan', $slug );
|
74 |
?>
|
75 |
<div class="wrap fs-section">
|
76 |
+
<?php if ( ! $has_tabs && ! $fs->apply_filters( 'hide_account_tabs', false ) ) : ?>
|
77 |
<h2 class="nav-tab-wrapper">
|
78 |
<a href="<?php echo $fs->get_account_url() ?>"
|
79 |
+
class="nav-tab nav-tab-active"><?php fs_esc_html_echo_inline( 'Account', 'account', $slug ) ?></a>
|
80 |
<?php if ( $fs->has_addons() ) : ?>
|
81 |
<a href="<?php echo $fs->_get_admin_page_url( 'addons' ) ?>"
|
82 |
+
class="nav-tab"><?php echo esc_html( $addons_text ) ?></a>
|
83 |
<?php endif ?>
|
84 |
<?php if ( $show_upgrade ) : ?>
|
85 |
+
<a href="<?php echo $fs->get_upgrade_url() ?>" class="nav-tab"><?php echo esc_html( $upgrade_text ) ?></a>
|
86 |
<?php if ( $fs->apply_filters( 'show_trial', true ) && ! $fs->is_trial_utilized() && $fs->has_trial_plan() ) : ?>
|
87 |
+
<a href="<?php echo $fs->get_trial_url() ?>" class="nav-tab"><?php fs_esc_html_echo_inline( 'Free Trial', 'free-trial', $slug ) ?></a>
|
88 |
<?php endif ?>
|
89 |
<?php endif ?>
|
90 |
</h2>
|
95 |
<div class="has-sidebar has-right-sidebar">
|
96 |
<div class="has-sidebar-content">
|
97 |
<div class="postbox">
|
98 |
+
<h3><span class="dashicons dashicons-businessman"></span> <?php fs_esc_html_echo_inline( 'Account Details', 'account-details', $slug ) ?></h3>
|
99 |
<div class="fs-header-actions">
|
100 |
<ul>
|
101 |
<?php if ( ! $is_paying ) : ?>
|
105 |
<?php wp_nonce_field( 'delete_account' ) ?>
|
106 |
<a href="#" onclick="if (confirm('<?php
|
107 |
if ( $is_active_subscription ) {
|
108 |
+
echo esc_attr( sprintf( fs_text_inline( 'Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the "Cancel" button, and first "Downgrade" your account. Are you sure you would like to continue with the deletion?', 'delete-account-x-confirm', $slug ), $plan->title ) );
|
109 |
} else {
|
110 |
+
echo esc_attr( sprintf( fs_text_inline( 'Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?', 'delete-account-confirm', $slug ), $fs->get_module_label( true ) ) );
|
111 |
}
|
112 |
?>')) this.parentNode.submit(); return false;"><i
|
113 |
+
class="dashicons dashicons-no"></i> <?php fs_esc_html_echo_inline( 'Delete Account', 'delete-account', $slug ) ?></a>
|
114 |
</form>
|
115 |
</li>
|
116 |
<li> • </li>
|
121 |
<input type="hidden" name="fs_action" value="deactivate_license">
|
122 |
<?php wp_nonce_field( 'deactivate_license' ) ?>
|
123 |
<a href="#"
|
124 |
+
onclick="if (confirm('<?php fs_esc_attr_echo_inline( 'Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?', 'deactivate-license-confirm', $slug ) ?>')) this.parentNode.submit(); return false;"><i
|
125 |
+
class="dashicons dashicons-admin-network"></i> <?php fs_echo_inline( 'Deactivate License', 'deactivate-license', $slug ) ?>
|
126 |
</a>
|
127 |
</form>
|
128 |
</li>
|
135 |
<input type="hidden" name="fs_action" value="downgrade_account">
|
136 |
<?php wp_nonce_field( 'downgrade_account' ) ?>
|
137 |
<a href="#"
|
138 |
+
onclick="if ( confirm('<?php echo esc_attr( sprintf( $downgrade_x_confirm_text, $plan->title, human_time_diff( time(), strtotime( $license->expiration ) ) ) ) ?> <?php if ( ! $license->is_block_features ) {
|
139 |
+
echo esc_attr( sprintf( $after_downgrade_non_blocking_text, $plan->title, $fs->get_module_label( true ) ) );
|
140 |
} else {
|
141 |
+
echo esc_attr( sprintf( $after_downgrade_blocking_text, $plan->title ) );
|
142 |
+
}?> <?php fs_esc_attr_echo_inline( 'Are you sure you want to proceed?', 'proceed-confirmation', $slug ) ?>') ) this.parentNode.submit(); return false;"><i class="dashicons dashicons-download"></i> <?php echo esc_html( $fs->is_only_premium() ? fs_text_inline( 'Cancel Subscription', 'cancel-subscription', $slug ) : $downgrade_text ) ?></a>
|
143 |
</form>
|
144 |
</li>
|
145 |
<li> • </li>
|
147 |
<?php if ( ! $fs->is_single_plan() ) : ?>
|
148 |
<li>
|
149 |
<a href="<?php echo $fs->get_upgrade_url() ?>"><i
|
150 |
+
class="dashicons dashicons-grid-view"></i> <?php echo esc_html( $change_plan_text ) ?></a>
|
151 |
</li>
|
152 |
<li> • </li>
|
153 |
<?php endif ?>
|
157 |
<input type="hidden" name="fs_action" value="cancel_trial">
|
158 |
<?php wp_nonce_field( 'cancel_trial' ) ?>
|
159 |
<a href="#"
|
160 |
+
onclick="if (confirm('<?php echo esc_attr( $cancel_trial_confirm_text ) ?>')) this.parentNode.submit(); return false;"><i
|
161 |
+
class="dashicons dashicons-download"></i> <?php echo esc_html( $cancel_trial_text ) ?></a>
|
162 |
</form>
|
163 |
</li>
|
164 |
<li> • </li>
|
168 |
<input type="hidden" name="fs_action" value="<?php echo $fs->get_unique_affix() ?>_sync_license">
|
169 |
<?php wp_nonce_field( $fs->get_unique_affix() . '_sync_license' ) ?>
|
170 |
<a href="#" onclick="this.parentNode.submit(); return false;"><i
|
171 |
+
class="dashicons dashicons-image-rotate"></i> <?php fs_esc_html_echo_x_inline( 'Sync', 'as synchronize', 'sync', $slug ) ?></a>
|
172 |
</form>
|
173 |
</li>
|
174 |
|
182 |
$profile = array();
|
183 |
$profile[] = array(
|
184 |
'id' => 'user_name',
|
185 |
+
'title' => fs_text_inline( 'Name', 'name', $slug ),
|
186 |
'value' => $name
|
187 |
);
|
188 |
// if (isset($user->email) && false !== strpos($user->email, '@'))
|
189 |
$profile[] = array(
|
190 |
'id' => 'email',
|
191 |
+
'title' => fs_text_inline( 'Email', 'email', $slug ),
|
192 |
'value' => $user->email
|
193 |
);
|
194 |
|
195 |
if ( is_numeric( $user->id ) ) {
|
196 |
$profile[] = array(
|
197 |
'id' => 'user_id',
|
198 |
+
'title' => fs_text_inline( 'User ID', 'user-id', $slug ),
|
199 |
'value' => $user->id
|
200 |
);
|
201 |
}
|
202 |
|
203 |
$profile[] = array(
|
204 |
'id' => 'site_id',
|
205 |
+
'title' => fs_text_inline( 'Site ID', 'site-id', $slug ),
|
206 |
'value' => is_string( $site->id ) ?
|
207 |
$site->id :
|
208 |
+
fs_text_inline( 'No ID', 'no-id', $slug )
|
209 |
);
|
210 |
|
211 |
$profile[] = array(
|
212 |
'id' => 'site_public_key',
|
213 |
+
'title' => fs_text_inline( 'Public Key', 'public-key', $slug ),
|
214 |
'value' => $site->public_key
|
215 |
);
|
216 |
|
217 |
$profile[] = array(
|
218 |
'id' => 'site_secret_key',
|
219 |
+
'title' => fs_text_inline( 'Secret Key', 'secret-key', $slug ),
|
220 |
'value' => ( ( is_string( $site->secret_key ) ) ?
|
221 |
$site->secret_key :
|
222 |
+
fs_text_x_inline( 'No Secret', 'as secret encryption key missing', 'no-secret', $slug )
|
223 |
)
|
224 |
);
|
225 |
|
226 |
$profile[] = array(
|
227 |
'id' => 'version',
|
228 |
+
'title' => $version_text,
|
229 |
'value' => $fs->get_plugin_version()
|
230 |
);
|
231 |
|
235 |
|
236 |
$profile[] = array(
|
237 |
'id' => 'plan',
|
238 |
+
'title' => $plan_text,
|
239 |
'value' => ( is_string( $trial_plan->name ) ?
|
240 |
strtoupper( $trial_plan->title ) :
|
241 |
+
fs_text_inline( 'Trial', 'trial', $slug ) )
|
242 |
);
|
243 |
} else {
|
244 |
$profile[] = array(
|
245 |
'id' => 'plan',
|
246 |
+
'title' => $plan_text,
|
247 |
+
'value' => strtoupper( is_string( $site->plan->name ) ?
|
248 |
+
$site->plan->title :
|
249 |
+
strtoupper( $free_text )
|
250 |
+
)
|
251 |
);
|
252 |
|
253 |
if ( is_object( $license ) ) {
|
254 |
if ( ! $hide_license_key ) {
|
255 |
$profile[] = array(
|
256 |
'id' => 'license_key',
|
257 |
+
'title' => fs_text_inline( 'License Key', $slug ),
|
258 |
'value' => $license->secret_key,
|
259 |
);
|
260 |
}
|
284 |
<code><?php echo htmlspecialchars( $p['value'] ) ?></code>
|
285 |
<?php endif ?>
|
286 |
<?php if ( 'email' === $p['id'] && ! $user->is_verified() ) : ?>
|
287 |
+
<label class="fs-tag fs-warn"><?php fs_esc_html_echo_inline( 'not verified', 'not-verified', $slug ) ?></label>
|
288 |
<?php endif ?>
|
289 |
<?php if ( 'plan' === $p['id'] ) : ?>
|
290 |
<?php if ( $fs->is_trial() ) : ?>
|
291 |
+
<label class="fs-tag fs-success"><?php echo esc_html( $trial_text ) ?></label>
|
292 |
<?php endif ?>
|
293 |
<?php if ( is_object( $license ) && ! $license->is_lifetime() ) : ?>
|
294 |
<?php if ( ! $is_active_subscription && ! $license->is_first_payment_pending() ) : ?>
|
295 |
<label
|
296 |
+
class="fs-tag fs-warn"><?php echo esc_html( sprintf( $expires_in_text, human_time_diff( time(), strtotime( $license->expiration ) ) ) ) ?></label>
|
297 |
<?php elseif ( $is_active_subscription && ! $subscription->is_first_payment_pending() ) : ?>
|
298 |
+
<label class="fs-tag fs-success"><?php echo esc_html( sprintf( $renews_in_text, human_time_diff( time(), strtotime( $subscription->next_payment ) ) ) ) ?></label>
|
299 |
<?php endif ?>
|
300 |
<?php elseif ( $fs->is_trial() ) : ?>
|
301 |
+
<label class="fs-tag fs-warn"><?php echo esc_html( sprintf( $expires_in_text, human_time_diff( time(), strtotime( $site->trial_ends ) ) ) ) ?></label>
|
302 |
<?php endif ?>
|
303 |
<div class="button-group">
|
304 |
<?php $available_license = $fs->is_free_plan() ? $fs->_get_available_premium_license() : false ?>
|
311 |
<?php wp_nonce_field( 'activate_license' ) ?>
|
312 |
<input type="submit" class="button button-primary"
|
313 |
value="<?php echo esc_attr( sprintf(
|
314 |
+
$activate_plan_text . '%s',
|
315 |
$premium_plan->title,
|
316 |
( $site->is_localhost() && $available_license->is_free_localhost ) ?
|
317 |
+
' [' . fs_text_inline( 'Localhost', 'localhost', $slug ) . ']' :
|
318 |
( $available_license->is_single_site() ?
|
319 |
'' :
|
320 |
' [' . ( 1 < $available_license->left() ?
|
321 |
+
sprintf( fs_text_x_inline( '%s left', 'as 5 licenses left', 'x-left', $slug ), $available_license->left() ) :
|
322 |
+
strtolower( fs_text_inline( 'Last license', 'last-license', $slug ) ) ) . ']'
|
323 |
)
|
324 |
) ) ?> ">
|
325 |
</form>
|
327 |
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>"
|
328 |
method="POST" class="button-group">
|
329 |
<?php if ( $show_upgrade && $fs->is_premium() ) : ?>
|
330 |
+
<a class="button activate-license-trigger <?php echo $fs->get_unique_affix() ?>" href="#"><?php fs_esc_html_echo_inline( 'Activate License', 'activate-license', $slug ) ?></a>
|
331 |
<?php endif ?>
|
332 |
<input type="submit" class="button"
|
333 |
+
value="<?php echo esc_attr( $sync_license_text ) ?>">
|
334 |
<input type="hidden" name="fs_action"
|
335 |
value="<?php echo $fs->get_unique_affix() ?>_sync_license">
|
336 |
<?php wp_nonce_field( $fs->get_unique_affix() . '_sync_license' ) ?>
|
340 |
echo $show_upgrade ?
|
341 |
' button-primary fs-upgrade' :
|
342 |
' fs-change-plan'; ?> button-upgrade"><i
|
343 |
+
class="dashicons dashicons-cart"></i> <?php echo esc_html( $show_upgrade ? $upgrade_text : $change_plan_text ) ?></a>
|
344 |
<?php endif ?>
|
345 |
</form>
|
346 |
<?php endif ?>
|
349 |
<?php if ( $fs->has_premium_version() ) : ?>
|
350 |
<?php if ( $fs->is_premium() ) : ?>
|
351 |
<label
|
352 |
+
class="fs-tag fs-<?php echo $fs->can_use_premium_code() ? 'success' : 'warn' ?>"><?php fs_esc_html_echo_inline( 'Premium version', 'premium-version', $slug ) ?></label>
|
353 |
<?php elseif ( $fs->can_use_premium_code() ) : ?>
|
354 |
+
<label class="fs-tag fs-warn"><?php fs_esc_html_echo_inline( 'Free version', 'free-version', $slug ) ?></label>
|
355 |
<?php endif ?>
|
356 |
<?php endif ?>
|
357 |
<?php endif ?>
|
363 |
<input type="hidden" name="fs_action" value="verify_email">
|
364 |
<?php wp_nonce_field( 'verify_email' ) ?>
|
365 |
<input type="submit" class="button button-small"
|
366 |
+
value="<?php fs_esc_attr_echo_inline( 'Verify Email', 'verify-email', $slug ) ?>">
|
367 |
</form>
|
368 |
<?php endif ?>
|
369 |
<?php if ( 'version' === $p['id'] ) : ?>
|
372 |
<?php if ( $is_paying || $fs->is_trial() ) : ?>
|
373 |
<?php if ( ! $fs->is_allowed_to_install() ) : ?>
|
374 |
<a target="_blank" class="button button-primary"
|
375 |
+
href="<?php echo $fs->_get_latest_download_local_url() ?>"><?php echo sprintf(
|
376 |
+
/* translators: %s: plan name (e.g. Download "Professional" Version) */
|
377 |
+
fs_text_inline( 'Download %s Version', 'download-x-version', $slug ),
|
378 |
+
( $fs->is_trial() ? $trial_plan->title : $site->plan->title ) ) . ( is_object( $update ) ? ' [' . $update->version . ']' : '' ) ?></a>
|
379 |
<?php elseif ( is_object( $update ) ) : ?>
|
380 |
<?php
|
381 |
$module_type = $fs->get_module_type();
|
382 |
?>
|
383 |
<a class="button button-primary"
|
384 |
+
href="<?php echo wp_nonce_url( self_admin_url( "update.php?action=upgrade-{$module_type}&{$module_type}=" . $fs->get_plugin_basename() ), "upgrade-{$module_type}_" . $fs->get_plugin_basename() ) ?>"><?php echo fs_esc_html_inline( 'Install Update Now', 'install-update-now', $slug ) . ' [' . $update->version . ']' ?></a>
|
385 |
<?php endif ?>
|
386 |
<?php endif; ?>
|
387 |
</div>
|
388 |
<?php endif ?>
|
389 |
<?php
|
390 |
elseif ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
|
391 |
+
<button class="button button-small fs-toggle-visibility"><?php fs_esc_html_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?></button>
|
392 |
<?php if ('license_key' === $p['id']) : ?>
|
393 |
+
<button class="button button-small activate-license-trigger <?php echo $fs->get_unique_affix() ?>"><?php fs_esc_html_echo_inline( 'Change License', 'change-license', $slug ) ?></button>
|
394 |
<?php endif ?>
|
395 |
<?php
|
396 |
elseif (/*in_array($p['id'], array('site_secret_key', 'site_id', 'site_public_key')) ||*/
|
400 |
) ) )
|
401 |
) : ?>
|
402 |
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST"
|
403 |
+
onsubmit="var val = prompt('<?php echo esc_attr( sprintf(
|
404 |
+
/* translators: %s: User's account property (e.g. name, email) */
|
405 |
+
fs_text_inline( 'What is your %s?', 'what-is-your-x', $slug ),
|
406 |
+
$p['title']
|
407 |
+
) ) ?>', '<?php echo $p['value'] ?>'); if (null == val || '' === val) return false; jQuery('input[name=fs_<?php echo $p['id'] ?>_<?php echo $fs->get_unique_affix() ?>]').val(val); return true;">
|
408 |
<input type="hidden" name="fs_action" value="update_<?php echo $p['id'] ?>">
|
409 |
<input type="hidden" name="fs_<?php echo $p['id'] ?>_<?php echo $fs->get_unique_affix() ?>"
|
410 |
value="">
|
411 |
<?php wp_nonce_field( 'update_' . $p['id'] ) ?>
|
412 |
<input type="submit" class="button button-small"
|
413 |
+
value="<?php echo fs_esc_attr_x_inline( 'Edit', 'verb', 'edit', $slug ) ?>">
|
414 |
</form>
|
415 |
<?php endif ?>
|
416 |
</td>
|
433 |
$input.toggle();
|
434 |
|
435 |
if ($input.is(':visible')) {
|
436 |
+
$this.html('<?php fs_esc_js_echo_x_inline( 'Hide', 'verb', 'hide', $slug ) ?>');
|
437 |
setTimeout(function () {
|
438 |
$input.select().focus();
|
439 |
}, 100);
|
440 |
}
|
441 |
else {
|
442 |
+
$this.html( '<?php fs_esc_js_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?>' );
|
443 |
}
|
444 |
});
|
445 |
}(jQuery));
|
468 |
<table id="fs_addons" class="widefat">
|
469 |
<thead>
|
470 |
<tr>
|
471 |
+
<th><h3><?php echo esc_html( $addons_text ) ?></h3></th>
|
472 |
+
<th><?php fs_esc_html_echo_inline( 'ID', 'id', $slug ) ?></th>
|
473 |
+
<th><?php echo esc_html( $version_text ) ?></th>
|
474 |
+
<th><?php echo esc_html( $plan_text ) ?></th>
|
475 |
+
<th><?php fs_esc_html_echo_x_inline( 'License', 'as software license', 'license', $slug ) ?></th>
|
476 |
<th></th>
|
477 |
<?php if ( defined( 'WP_FS__DEV_MODE' ) && WP_FS__DEV_MODE ) : ?>
|
478 |
<th></th>
|
524 |
</td>
|
525 |
<td>
|
526 |
<!-- Plan Title -->
|
527 |
+
<?php echo strtoupper( is_string( $addon_site->plan->name ) ? $addon_site->plan->title : $free_text ) ?>
|
528 |
</td>
|
529 |
<td>
|
530 |
<!-- Expiration -->
|
532 |
$tags = array();
|
533 |
|
534 |
if ( $fs_addon->is_trial() ) {
|
535 |
+
$tags[] = array( 'label' => $trial_text, 'type' => 'success' );
|
536 |
|
537 |
$tags[] = array(
|
538 |
+
'label' => sprintf(
|
539 |
+
( $is_paid_trial ?
|
540 |
+
$renews_in_text :
|
541 |
+
$expires_in_text ),
|
542 |
+
human_time_diff( time(), strtotime( $site->trial_ends ) )
|
543 |
+
),
|
544 |
'type' => ( $is_paid_trial ? 'success' : 'warn' )
|
545 |
);
|
546 |
} else {
|
547 |
if ( is_object( $license ) ) {
|
548 |
if ( $license->is_cancelled ) {
|
549 |
$tags[] = array(
|
550 |
+
'label' => fs_text_inline( 'Cancelled', 'cancelled', $slug ),
|
551 |
'type' => 'error'
|
552 |
);
|
553 |
} else if ( $license->is_expired() ) {
|
554 |
$tags[] = array(
|
555 |
+
'label' => fs_text_inline( 'Expired', 'expired', $slug ),
|
556 |
'type' => 'error'
|
557 |
);
|
558 |
} else if ( $license->is_lifetime() ) {
|
559 |
$tags[] = array(
|
560 |
+
'label' => fs_text_inline( 'No expiration', 'no-expiration', $slug ),
|
561 |
'type' => 'success'
|
562 |
);
|
563 |
} else if ( ! $is_active_subscription && ! $license->is_first_payment_pending() ) {
|
564 |
$tags[] = array(
|
565 |
+
'label' => sprintf( $expires_in_text, human_time_diff( time(), strtotime( $license->expiration ) ) ),
|
566 |
'type' => 'warn'
|
567 |
);
|
568 |
} else if ( $is_active_subscription && ! $subscription->is_first_payment_pending() ) {
|
569 |
$tags[] = array(
|
570 |
+
'label' => sprintf( $renews_in_text, human_time_diff( time(), strtotime( $subscription->next_payment ) ) ),
|
571 |
'type' => 'success'
|
572 |
);
|
573 |
}
|
587 |
$fs->get_id(),
|
588 |
'account',
|
589 |
'deactivate_license',
|
590 |
+
fs_text_inline( 'Deactivate License', 'deactivate-license', $slug ),
|
591 |
array( 'plugin_id' => $addon_id ),
|
592 |
false
|
593 |
);
|
594 |
|
595 |
$human_readable_license_expiration = human_time_diff( time(), strtotime( $license->expiration ) );
|
596 |
+
$downgrade_confirmation_message = sprintf(
|
597 |
+
$downgrade_x_confirm_text,
|
598 |
$plan->title,
|
599 |
+
$human_readable_license_expiration
|
600 |
+
);
|
601 |
|
602 |
$after_downgrade_message = ! $license->is_block_features ?
|
603 |
+
sprintf( $after_downgrade_non_blocking_text, $plan->title, $fs_addon->get_module_label( true ) ) :
|
604 |
+
sprintf( $after_downgrade_blocking_text, $plan->title );
|
605 |
|
606 |
if ( ! $license->is_lifetime() && $is_active_subscription ) {
|
607 |
$buttons[] = fs_ui_get_action_button(
|
608 |
$fs->get_id(),
|
609 |
'account',
|
610 |
'downgrade_account',
|
611 |
+
$downgrade_text,
|
612 |
array( 'plugin_id' => $addon_id ),
|
613 |
false,
|
614 |
false,
|
621 |
$fs->get_id(),
|
622 |
'account',
|
623 |
'cancel_trial',
|
624 |
+
$cancel_trial_text,
|
625 |
array( 'plugin_id' => $addon_id ),
|
626 |
false,
|
627 |
'dashicons dashicons-download',
|
628 |
+
$cancel_trial_confirm_text,
|
629 |
'POST'
|
630 |
);
|
631 |
} else {
|
638 |
$fs->get_id(),
|
639 |
'account',
|
640 |
'activate_license',
|
641 |
+
sprintf( $activate_plan_text, $fs_addon->get_plan_title(), ( $site->is_localhost() && $premium_license->is_free_localhost ) ? '[localhost]' : ( 1 < $premium_license->left() ? $premium_license->left() . ' left' : '' ) ),
|
642 |
array(
|
643 |
'plugin_id' => $addon_id,
|
644 |
'license_id' => $premium_license->id,
|
653 |
$fs->get_id(),
|
654 |
'account',
|
655 |
$fs->get_unique_affix() . '_sync_license',
|
656 |
+
$sync_license_text,
|
657 |
array( 'plugin_id' => $addon_id ),
|
658 |
false
|
659 |
);
|
665 |
$buttons[] = sprintf(
|
666 |
'<a class="button button-primary edit" href="%s" title="%s">%s</a>',
|
667 |
wp_nonce_url( 'plugins.php?action=activate&plugin=' . $addon_file, 'activate-plugin_' . $addon_file ),
|
668 |
+
fs_esc_attr_inline( 'Activate this add-on', 'activate-this-addon', $slug ),
|
669 |
+
$activate_text
|
670 |
);
|
671 |
} else {
|
672 |
if ( $fs->is_allowed_to_install() ) {
|
673 |
$buttons[] = sprintf(
|
674 |
'<a class="button button-primary edit" href="%s">%s</a>',
|
675 |
wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $addon->slug ), 'install-plugin_' . $addon->slug ),
|
676 |
+
fs_text_inline( 'Install Now', 'install-now', $slug )
|
677 |
);
|
678 |
} else {
|
679 |
$buttons[] = sprintf(
|
680 |
'<a target="_blank" class="button button-primary edit" href="%s">%s</a>',
|
681 |
$fs->_get_latest_download_local_url( $addon_id ),
|
682 |
+
esc_html( $download_latest_text )
|
683 |
);
|
684 |
}
|
685 |
}
|
689 |
$buttons[] = sprintf( '<a href="%s" class="thickbox button button-primary" aria-label="%s" data-title="%s"><i class="dashicons dashicons-cart"></i> %s</a>',
|
690 |
esc_url( network_admin_url( 'plugin-install.php?tab=plugin-information&parent_plugin_id=' . $fs->get_id() . '&plugin=' . $addon->slug .
|
691 |
'&TB_iframe=true&width=600&height=550' ) ),
|
692 |
+
esc_attr( sprintf( fs_text_inline( 'More information about %s', 'more-information-about-x', $slug ), $addon->title ) ),
|
693 |
esc_attr( $addon->title ),
|
694 |
+
( $fs_addon->has_free_plan() ?
|
695 |
+
$upgrade_text :
|
696 |
+
fs_text_x_inline( 'Purchase', 'verb', 'purchase', $slug ) )
|
697 |
);
|
698 |
}
|
699 |
|
721 |
<?php $addon_file = $fs->get_addon_basename( $addon_id ) ?>
|
722 |
<a class="button button-primary"
|
723 |
href="<?php echo wp_nonce_url( 'plugins.php?action=activate&plugin=' . $addon_file, 'activate-plugin_' . $addon_file ) ?>"
|
724 |
+
title="<?php fs_esc_attr_echo_inline( 'Activate this add-on', 'activate-this-addon', $slug ) ?>"
|
725 |
+
class="edit"><?php echo esc_html( $activate_text ) ?></a>
|
726 |
<?php else : ?>
|
727 |
<?php if ( $fs->is_allowed_to_install() ) : ?>
|
728 |
<a class="button button-primary"
|
729 |
+
href="<?php echo wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $addon->slug ), 'install-plugin_' . $addon->slug ) ?>"><?php fs_esc_html_echo_inline( 'Install Now', 'install-now', $slug ) ?></a>
|
730 |
<?php else : ?>
|
731 |
<a target="_blank" class="button button-primary"
|
732 |
+
href="<?php echo $fs->_get_latest_download_local_url( $addon_id ) ?>"><?php echo esc_html( $download_latest_text ) ?></a>
|
733 |
<?php endif ?>
|
734 |
<?php endif ?>
|
735 |
</td>
|
742 |
fs_ui_action_button(
|
743 |
$fs->get_id(), 'account',
|
744 |
'delete_account',
|
745 |
+
fs_text_x_inline( 'Delete', 'verb', 'delete', $slug ),
|
746 |
array( 'plugin_id' => $addon_id ),
|
747 |
false
|
748 |
);
|
freemius/templates/account/billing.php
CHANGED
@@ -24,6 +24,9 @@
|
|
24 |
|
25 |
if ( $show_billing ) :
|
26 |
|
|
|
|
|
|
|
27 |
$billing = $fs->_fetch_billing();
|
28 |
$has_billing = ( $billing instanceof FS_Billing );
|
29 |
if ( ! $has_billing ) {
|
@@ -33,21 +36,21 @@
|
|
33 |
<!-- Billing -->
|
34 |
<div class="postbox">
|
35 |
<div id="fs_billing">
|
36 |
-
<h3><span class="dashicons dashicons-portfolio"></span> <?php
|
37 |
<table id="fs_billing_address"<?php if ( $has_billing ) {
|
38 |
echo ' class="fs-read-mode"';
|
39 |
} ?>>
|
40 |
<tr>
|
41 |
-
<td><label><span><?php
|
42 |
-
<td><label><span><?php
|
43 |
</tr>
|
44 |
<tr>
|
45 |
-
<td><label><span><?php printf(
|
46 |
-
<td><label><span><?php printf(
|
47 |
</tr>
|
48 |
<tr>
|
49 |
-
<td><label><span><?php
|
50 |
-
<td><label><span><?php
|
51 |
</tr>
|
52 |
<tr>
|
53 |
<?php $countries = array(
|
@@ -302,23 +305,25 @@
|
|
302 |
'ZM' => 'Zambia',
|
303 |
'ZW' => 'Zimbabwe',
|
304 |
) ?>
|
305 |
-
<td><label><span><?php
|
306 |
<?php if ( empty( $billing->address_country_code ) ) : ?>
|
307 |
-
<option value=""
|
308 |
-
selected><?php fs_echo( 'select-country', $slug ) ?></option>
|
309 |
<?php endif ?>
|
310 |
<?php foreach ( $countries as $code => $country ) : ?>
|
311 |
<option
|
312 |
value="<?php echo $code ?>" <?php selected( $billing->address_country_code, $code ) ?>><?php echo $country ?></option>
|
313 |
<?php endforeach ?>
|
314 |
</select></label></td>
|
315 |
-
<td><label><span><?php
|
316 |
-
<input id="address_state" value="<?php echo $billing->address_state ?>" placeholder="<?php
|
317 |
</tr>
|
318 |
<tr>
|
319 |
<td colspan="2">
|
320 |
<button
|
321 |
-
class="button"><?php
|
|
|
|
|
|
|
322 |
</td>
|
323 |
</tr>
|
324 |
</table>
|
@@ -357,7 +362,7 @@
|
|
357 |
var isEditMode = !$billingAddress.hasClass('fs-read-mode');
|
358 |
|
359 |
$(this)
|
360 |
-
.html(isEditMode ? <?php echo
|
361 |
.toggleClass('button-primary');
|
362 |
|
363 |
if (isEditMode) {
|
@@ -408,7 +413,7 @@
|
|
408 |
|
409 |
$billingAddress.toggleClass('fs-read-mode');
|
410 |
$billingAddress.find('.button')
|
411 |
-
.html(<?php echo
|
412 |
.toggleClass('button-primary');
|
413 |
})
|
414 |
// If blured after editing only one field without changes, exit edit mode.
|
@@ -416,7 +421,7 @@
|
|
416 |
if (!isEditAllFieldsMode && !hasBillingChanged()) {
|
417 |
$billingAddress.toggleClass('fs-read-mode');
|
418 |
$billingAddress.find('.button')
|
419 |
-
.html(<?php echo
|
420 |
.toggleClass('button-primary');
|
421 |
}
|
422 |
});
|
24 |
|
25 |
if ( $show_billing ) :
|
26 |
|
27 |
+
$edit_text = fs_text_x_inline( 'Edit', 'verb', 'edit', $slug );
|
28 |
+
$update_text = fs_text_x_inline( 'Update', 'verb', 'update', $slug );
|
29 |
+
|
30 |
$billing = $fs->_fetch_billing();
|
31 |
$has_billing = ( $billing instanceof FS_Billing );
|
32 |
if ( ! $has_billing ) {
|
36 |
<!-- Billing -->
|
37 |
<div class="postbox">
|
38 |
<div id="fs_billing">
|
39 |
+
<h3><span class="dashicons dashicons-portfolio"></span> <?php fs_esc_html_echo_inline( 'Billing', 'billing', $slug ) ?></h3>
|
40 |
<table id="fs_billing_address"<?php if ( $has_billing ) {
|
41 |
echo ' class="fs-read-mode"';
|
42 |
} ?>>
|
43 |
<tr>
|
44 |
+
<td><label><span><?php fs_esc_html_echo_inline( 'Business name', 'business-name', $slug ) ?>:</span> <input id="business_name" value="<?php echo $billing->business_name ?>" placeholder="<?php fs_esc_attr_echo_inline( 'Business name', 'business-name', $slug ) ?>"></label></td>
|
45 |
+
<td><label><span><?php fs_esc_html_echo_inline( 'Tax / VAT ID', 'tax-vat-id', $slug ) ?>:</span> <input id="tax_id" value="<?php echo $billing->tax_id ?>" placeholder="<?php fs_esc_attr_echo_inline( 'Tax / VAT ID', 'tax-vat-id', $slug ) ?>"></label></td>
|
46 |
</tr>
|
47 |
<tr>
|
48 |
+
<td><label><span><?php printf( fs_esc_html_inline( 'Address Line %d', 'address-line-n', $slug ), 1 ) ?>:</span> <input id="address_street" value="<?php echo $billing->address_street ?>" placeholder="<?php printf( fs_esc_attr_inline( 'Address Line %d', 'address-line-n', $slug ), 1 ) ?>"></label></td>
|
49 |
+
<td><label><span><?php printf( fs_esc_html_inline( 'Address Line %d', 'address-line-n', $slug ), 2 ) ?>:</span> <input id="address_apt" value="<?php echo $billing->address_apt ?>" placeholder="<?php printf( fs_esc_attr_inline( 'Address Line %d', 'address-line-n', $slug ), 2 ) ?>"></label></td>
|
50 |
</tr>
|
51 |
<tr>
|
52 |
+
<td><label><span><?php fs_esc_html_echo_inline( 'City', 'city', $slug ) ?> / <?php fs_esc_html_echo_inline( 'Town', 'town', $slug ) ?>:</span> <input id="address_city" value="<?php echo $billing->address_city ?>" placeholder="<?php fs_esc_attr_echo_inline( 'City', 'city', $slug ) ?> / <?php fs_esc_attr_echo_inline( 'Town', 'town', $slug ) ?>"></label></td>
|
53 |
+
<td><label><span><?php fs_esc_html_echo_inline( 'ZIP / Postal Code', 'zip-postal-code', $slug ) ?>:</span> <input id="address_zip" value="<?php echo $billing->address_zip ?>" placeholder="<?php fs_esc_attr_echo_inline( 'ZIP / Postal Code', 'zip-postal-code', $slug ) ?>"></label></td>
|
54 |
</tr>
|
55 |
<tr>
|
56 |
<?php $countries = array(
|
305 |
'ZM' => 'Zambia',
|
306 |
'ZW' => 'Zimbabwe',
|
307 |
) ?>
|
308 |
+
<td><label><span><?php fs_esc_html_echo_inline( 'Country', 'country', $slug ) ?>:</span> <select id="address_country_code">
|
309 |
<?php if ( empty( $billing->address_country_code ) ) : ?>
|
310 |
+
<option value="" selected><?php fs_esc_html_echo_inline( 'Select Country', 'select-country', $slug ) ?></option>
|
|
|
311 |
<?php endif ?>
|
312 |
<?php foreach ( $countries as $code => $country ) : ?>
|
313 |
<option
|
314 |
value="<?php echo $code ?>" <?php selected( $billing->address_country_code, $code ) ?>><?php echo $country ?></option>
|
315 |
<?php endforeach ?>
|
316 |
</select></label></td>
|
317 |
+
<td><label><span><?php fs_esc_html_echo_inline( 'State', 'state', $slug ) ?> / <?php fs_esc_html_echo_inline( 'Province', 'province', $slug ) ?>:</span>
|
318 |
+
<input id="address_state" value="<?php echo $billing->address_state ?>" placeholder="<?php fs_esc_html_echo_inline( 'State', 'state', $slug ) ?> / <?php fs_esc_html_echo_inline( 'Province', 'province', $slug ) ?>"></label></td>
|
319 |
</tr>
|
320 |
<tr>
|
321 |
<td colspan="2">
|
322 |
<button
|
323 |
+
class="button"><?php echo esc_html( $has_billing ?
|
324 |
+
$edit_text :
|
325 |
+
$update_text
|
326 |
+
) ?></button>
|
327 |
</td>
|
328 |
</tr>
|
329 |
</table>
|
362 |
var isEditMode = !$billingAddress.hasClass('fs-read-mode');
|
363 |
|
364 |
$(this)
|
365 |
+
.html(isEditMode ? '<?php echo esc_js( $update_text ) ?>' : '<?php echo esc_js( $edit_text ) ?>')
|
366 |
.toggleClass('button-primary');
|
367 |
|
368 |
if (isEditMode) {
|
413 |
|
414 |
$billingAddress.toggleClass('fs-read-mode');
|
415 |
$billingAddress.find('.button')
|
416 |
+
.html('<?php echo esc_js( $update_text ) ?>')
|
417 |
.toggleClass('button-primary');
|
418 |
})
|
419 |
// If blured after editing only one field without changes, exit edit mode.
|
421 |
if (!isEditAllFieldsMode && !hasBillingChanged()) {
|
422 |
$billingAddress.toggleClass('fs-read-mode');
|
423 |
$billingAddress.find('.button')
|
424 |
+
.html('<?php echo esc_js( $edit_text ) ?>')
|
425 |
.toggleClass('button-primary');
|
426 |
}
|
427 |
});
|
freemius/templates/account/payments.php
CHANGED
@@ -26,16 +26,16 @@
|
|
26 |
?>
|
27 |
<div class="postbox">
|
28 |
<div id="fs_payments">
|
29 |
-
<h3><span class="dashicons dashicons-paperclip"></span> <?php
|
30 |
|
31 |
<div class="inside">
|
32 |
<table class="widefat">
|
33 |
<thead>
|
34 |
<tr>
|
35 |
-
<th><?php
|
36 |
-
<th><?php
|
37 |
-
<th><?php
|
38 |
-
<th><?php
|
39 |
</tr>
|
40 |
</thead>
|
41 |
<tbody>
|
@@ -47,7 +47,7 @@
|
|
47 |
<td>$<?php echo $payment->gross ?></td>
|
48 |
<td><a href="<?php echo $fs->_get_invoice_api_url( $payment->id ) ?>"
|
49 |
class="button button-small"
|
50 |
-
target="_blank"><?php
|
51 |
</tr>
|
52 |
<?php $odd = ! $odd; endforeach ?>
|
53 |
</tbody>
|
26 |
?>
|
27 |
<div class="postbox">
|
28 |
<div id="fs_payments">
|
29 |
+
<h3><span class="dashicons dashicons-paperclip"></span> <?php fs_esc_html_echo_inline( 'Payments', 'payments', $slug ) ?></h3>
|
30 |
|
31 |
<div class="inside">
|
32 |
<table class="widefat">
|
33 |
<thead>
|
34 |
<tr>
|
35 |
+
<th><?php fs_esc_html_echo_inline( 'ID', 'id', $slug ) ?></th>
|
36 |
+
<th><?php fs_esc_html_echo_inline( 'Date', 'date', $slug ) ?></th>
|
37 |
+
<th><?php fs_esc_html_echo_inline( 'Amount', 'amount', $slug ) ?></th>
|
38 |
+
<th><?php fs_esc_html_echo_inline( 'Invoice', 'invoice', $slug ) ?></th>
|
39 |
</tr>
|
40 |
</thead>
|
41 |
<tbody>
|
47 |
<td>$<?php echo $payment->gross ?></td>
|
48 |
<td><a href="<?php echo $fs->_get_invoice_api_url( $payment->id ) ?>"
|
49 |
class="button button-small"
|
50 |
+
target="_blank"><?php fs_esc_html_echo_inline( 'Invoice', 'invoice', $slug ) ?></a></td>
|
51 |
</tr>
|
52 |
<?php $odd = ! $odd; endforeach ?>
|
53 |
</tbody>
|
freemius/templates/add-ons.php
CHANGED
@@ -33,16 +33,16 @@
|
|
33 |
?>
|
34 |
<div id="fs_addons" class="wrap fs-section">
|
35 |
<?php if ( ! $has_tabs ) : ?>
|
36 |
-
<h2><?php
|
37 |
<?php endif ?>
|
38 |
|
39 |
<div id="poststuff">
|
40 |
<?php if ( ! $has_addons ) : ?>
|
41 |
-
<h3><?php
|
42 |
'%s... %s',
|
43 |
-
|
44 |
-
|
45 |
-
) ?></h3>
|
46 |
<?php endif ?>
|
47 |
<ul class="fs-cards-list">
|
48 |
<?php if ( $has_addons ) : ?>
|
@@ -96,7 +96,7 @@
|
|
96 |
echo sprintf( '<a href="%s" class="thickbox fs-overlay" aria-label="%s" data-title="%s"></a>',
|
97 |
esc_url( network_admin_url( 'plugin-install.php?tab=plugin-information&parent_plugin_id=' . $fs->get_id() . '&plugin=' . $addon->slug .
|
98 |
'&TB_iframe=true&width=600&height=550' ) ),
|
99 |
-
esc_attr( sprintf(
|
100 |
esc_attr( $addon->title )
|
101 |
);
|
102 |
?>
|
@@ -123,16 +123,16 @@
|
|
123 |
$descriptors = array();
|
124 |
|
125 |
if ($has_free_plan)
|
126 |
-
$descriptors[] =
|
127 |
if ($has_paid_plan && $price > 0)
|
128 |
$descriptors[] = '$' . number_format( $price, 2 );
|
129 |
if ($has_trial)
|
130 |
-
$descriptors[] =
|
131 |
|
132 |
echo implode(' - ', $descriptors) ?></span>
|
133 |
</li>
|
134 |
<li class="fs-description"><?php echo ! empty( $addon->info->short_description ) ? $addon->info->short_description : 'SHORT DESCRIPTION' ?></li>
|
135 |
-
<li class="fs-cta"><a class="button"><?php
|
136 |
</ul>
|
137 |
</div>
|
138 |
</li>
|
33 |
?>
|
34 |
<div id="fs_addons" class="wrap fs-section">
|
35 |
<?php if ( ! $has_tabs ) : ?>
|
36 |
+
<h2><?php echo esc_html( sprintf( fs_text_inline( 'Add Ons for %s', 'add-ons-for-x', $slug ), $fs->get_plugin_name() ) ) ?></h2>
|
37 |
<?php endif ?>
|
38 |
|
39 |
<div id="poststuff">
|
40 |
<?php if ( ! $has_addons ) : ?>
|
41 |
+
<h3><?php echo esc_html( sprintf(
|
42 |
'%s... %s',
|
43 |
+
fs_text_x_inline( 'Oops', 'exclamation', 'oops', $slug ),
|
44 |
+
fs_text_inline( 'We could\'nt load the add-ons list. It\'s probably an issue on our side, please try to come back in few minutes.', 'add-ons-missing', $slug )
|
45 |
+
) ) ?></h3>
|
46 |
<?php endif ?>
|
47 |
<ul class="fs-cards-list">
|
48 |
<?php if ( $has_addons ) : ?>
|
96 |
echo sprintf( '<a href="%s" class="thickbox fs-overlay" aria-label="%s" data-title="%s"></a>',
|
97 |
esc_url( network_admin_url( 'plugin-install.php?tab=plugin-information&parent_plugin_id=' . $fs->get_id() . '&plugin=' . $addon->slug .
|
98 |
'&TB_iframe=true&width=600&height=550' ) ),
|
99 |
+
esc_attr( sprintf( fs_text_inline( 'More information about %s', 'more-information-about-x', $slug ), $addon->title ) ),
|
100 |
esc_attr( $addon->title )
|
101 |
);
|
102 |
?>
|
123 |
$descriptors = array();
|
124 |
|
125 |
if ($has_free_plan)
|
126 |
+
$descriptors[] = fs_text_inline( 'Free', 'free', $slug );
|
127 |
if ($has_paid_plan && $price > 0)
|
128 |
$descriptors[] = '$' . number_format( $price, 2 );
|
129 |
if ($has_trial)
|
130 |
+
$descriptors[] = fs_text_x_inline( 'Trial', 'trial period', 'trial', $slug );
|
131 |
|
132 |
echo implode(' - ', $descriptors) ?></span>
|
133 |
</li>
|
134 |
<li class="fs-description"><?php echo ! empty( $addon->info->short_description ) ? $addon->info->short_description : 'SHORT DESCRIPTION' ?></li>
|
135 |
+
<li class="fs-cta"><a class="button"><?php fs_esc_html_inline( 'View details', 'view-details', $slug ) ?></a></li>
|
136 |
</ul>
|
137 |
</div>
|
138 |
</li>
|
freemius/templates/admin-notice.php
CHANGED
@@ -9,6 +9,8 @@
|
|
9 |
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
exit;
|
11 |
}
|
|
|
|
|
12 |
?>
|
13 |
<div<?php if ( ! empty( $VARS['id'] ) ) : ?> data-id="<?php echo $VARS['id'] ?>"<?php endif ?><?php if ( ! empty( $VARS['manager_id'] ) ) : ?> data-manager-id="<?php echo $VARS['manager_id'] ?>"<?php endif ?>
|
14 |
class="<?php
|
@@ -36,7 +38,7 @@
|
|
36 |
<?php endif ?>
|
37 |
<?php if ( ! empty( $VARS['sticky'] ) ) : ?>
|
38 |
<div class="fs-close"><i class="dashicons dashicons-no"
|
39 |
-
title="<?php
|
40 |
</div>
|
41 |
<?php endif ?>
|
42 |
<div class="fs-notice-body">
|
9 |
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
exit;
|
11 |
}
|
12 |
+
|
13 |
+
$dismiss_text = fs_text_x_inline( 'Dismiss', 'as close a window', 'dismiss' );
|
14 |
?>
|
15 |
<div<?php if ( ! empty( $VARS['id'] ) ) : ?> data-id="<?php echo $VARS['id'] ?>"<?php endif ?><?php if ( ! empty( $VARS['manager_id'] ) ) : ?> data-manager-id="<?php echo $VARS['manager_id'] ?>"<?php endif ?>
|
16 |
class="<?php
|
38 |
<?php endif ?>
|
39 |
<?php if ( ! empty( $VARS['sticky'] ) ) : ?>
|
40 |
<div class="fs-close"><i class="dashicons dashicons-no"
|
41 |
+
title="<?php echo esc_attr( $dismiss_text ) ?>"></i> <span><?php echo esc_html( $dismiss_text ) ?></span>
|
42 |
</div>
|
43 |
<?php endif ?>
|
44 |
<div class="fs-notice-body">
|
freemius/templates/auto-installation.php
CHANGED
@@ -16,7 +16,7 @@
|
|
16 |
$slug = $VARS['slug'];
|
17 |
$plugin_id = $VARS['id'];
|
18 |
|
19 |
-
$fs = freemius( $
|
20 |
|
21 |
$action = $fs->is_tracking_allowed() ?
|
22 |
'stop_tracking' :
|
@@ -28,7 +28,7 @@
|
|
28 |
$addon = $fs->get_addon( $plugin_id );
|
29 |
|
30 |
if ( is_object( $addon ) ) {
|
31 |
-
$title = $addon->title . ' ' .
|
32 |
}
|
33 |
}
|
34 |
|
@@ -39,7 +39,10 @@
|
|
39 |
|
40 |
$sec_countdown = 30;
|
41 |
$countdown_html = sprintf(
|
42 |
-
esc_js(
|
|
|
|
|
|
|
43 |
sprintf( '<span class="fs-countdown">%s</span>', $sec_countdown )
|
44 |
);
|
45 |
|
@@ -76,7 +79,7 @@
|
|
76 |
<div class="fs-modal fs-modal-auto-install">
|
77 |
<div class="fs-modal-dialog">
|
78 |
<div class="fs-modal-header">
|
79 |
-
<h4><?php echo esc_js(
|
80 |
</div>
|
81 |
<div class="fs-modal-body">
|
82 |
<div class="fs-notice-error" style="display: none"><p></p></div>
|
@@ -86,7 +89,7 @@
|
|
86 |
</div>
|
87 |
<?php else : ?>
|
88 |
<p class="fs-installation-notice"><?php echo sprintf(
|
89 |
-
|
90 |
$plugin_title,
|
91 |
sprintf(
|
92 |
'<a href="%s" target="_blank">%s</a>',
|
@@ -97,14 +100,14 @@
|
|
97 |
) ?></p>
|
98 |
<?php endif ?>
|
99 |
<p class="fs-installing"
|
100 |
-
style="display: none"><?php echo sprintf(
|
101 |
</div>
|
102 |
<div class="fs-modal-footer">
|
103 |
<?php echo $loader_html ?>
|
104 |
<button
|
105 |
-
class="button button-secondary button-cancel"><?php
|
106 |
<button
|
107 |
-
class="button button-primary"
|
108 |
</div>
|
109 |
</div>
|
110 |
</div>'
|
@@ -181,7 +184,7 @@
|
|
181 |
$modal.removeClass('fs-warn');
|
182 |
$modal.find('.fs-installing').hide();
|
183 |
$modal.find('.fs-ajax-loader').hide();
|
184 |
-
$modal.find('.button-cancel').html(<?php
|
185 |
$modal.find('button').show();
|
186 |
|
187 |
$errorNotice.find('p').text(resultObj.error.message);
|
16 |
$slug = $VARS['slug'];
|
17 |
$plugin_id = $VARS['id'];
|
18 |
|
19 |
+
$fs = freemius( $plugin_id );
|
20 |
|
21 |
$action = $fs->is_tracking_allowed() ?
|
22 |
'stop_tracking' :
|
28 |
$addon = $fs->get_addon( $plugin_id );
|
29 |
|
30 |
if ( is_object( $addon ) ) {
|
31 |
+
$title = $addon->title . ' ' . fs_text_inline( 'Add-On', 'addon', $slug );
|
32 |
}
|
33 |
}
|
34 |
|
39 |
|
40 |
$sec_countdown = 30;
|
41 |
$countdown_html = sprintf(
|
42 |
+
esc_js(
|
43 |
+
/* translators: %s: Number of seconds */
|
44 |
+
fs_text_inline( '%s sec', 'x-sec', $slug )
|
45 |
+
),
|
46 |
sprintf( '<span class="fs-countdown">%s</span>', $sec_countdown )
|
47 |
);
|
48 |
|
79 |
<div class="fs-modal fs-modal-auto-install">
|
80 |
<div class="fs-modal-dialog">
|
81 |
<div class="fs-modal-header">
|
82 |
+
<h4><?php echo esc_js( fs_text_inline( 'Automatic Installation', 'auto-installation', $slug ) ) ?></h4>
|
83 |
</div>
|
84 |
<div class="fs-modal-body">
|
85 |
<div class="fs-notice-error" style="display: none"><p></p></div>
|
89 |
</div>
|
90 |
<?php else : ?>
|
91 |
<p class="fs-installation-notice"><?php echo sprintf(
|
92 |
+
fs_esc_html_inline( 'An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now.', 'installing-in-n', $slug ),
|
93 |
$plugin_title,
|
94 |
sprintf(
|
95 |
'<a href="%s" target="_blank">%s</a>',
|
100 |
) ?></p>
|
101 |
<?php endif ?>
|
102 |
<p class="fs-installing"
|
103 |
+
style="display: none"><?php echo sprintf( fs_esc_html_inline( 'The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page.', 'installing-module-x', $slug ), $plugin_title ) ?></p>
|
104 |
</div>
|
105 |
<div class="fs-modal-footer">
|
106 |
<?php echo $loader_html ?>
|
107 |
<button
|
108 |
+
class="button button-secondary button-cancel"><?php fs_esc_html_echo_inline( 'Cancel Installation', 'cancel-installation', $slug ) ?><?php if ( ! $require_credentials ) : ?> (<?php echo $countdown_html ?>)<?php endif ?></button>
|
109 |
<button
|
110 |
+
class="button button-primary"><?php fs_esc_html_echo_inline( 'Install Now', 'install-now', $slug ) ?></button>
|
111 |
</div>
|
112 |
</div>
|
113 |
</div>'
|
184 |
$modal.removeClass('fs-warn');
|
185 |
$modal.find('.fs-installing').hide();
|
186 |
$modal.find('.fs-ajax-loader').hide();
|
187 |
+
$modal.find('.button-cancel').html(<?php fs_json_encode_echo_inline( 'Cancel Installation', 'cancel-installation', $slug ) ?>);
|
188 |
$modal.find('button').show();
|
189 |
|
190 |
$errorNotice.find('p').text(resultObj.error.message);
|
freemius/templates/billing.php
DELETED
@@ -1,506 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @package Freemius
|
4 |
-
* @copyright Copyright (c) 2016, Freemius, Inc.
|
5 |
-
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
6 |
-
* @since 1.2.0
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
-
exit;
|
11 |
-
}
|
12 |
-
|
13 |
-
/**
|
14 |
-
* @var array $VARS
|
15 |
-
*/
|
16 |
-
$slug = $VARS['slug'];
|
17 |
-
/**
|
18 |
-
* @var Freemius $fs
|
19 |
-
*/
|
20 |
-
$fs = freemius( $slug );
|
21 |
-
|
22 |
-
/**
|
23 |
-
* @var FS_Plugin_Tag $update
|
24 |
-
*/
|
25 |
-
$update = $fs->get_update( false, false );
|
26 |
-
|
27 |
-
$is_paying = $fs->is_paying();
|
28 |
-
$user = $fs->get_user();
|
29 |
-
$site = $fs->get_site();
|
30 |
-
$name = $user->get_name();
|
31 |
-
$license = $fs->_get_license();
|
32 |
-
$subscription = $fs->_get_subscription();
|
33 |
-
$plan = $fs->get_plan();
|
34 |
-
$is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
|
35 |
-
$is_paid_trial = $fs->is_paid_trial();
|
36 |
-
$show_upgrade = ( ! $is_paying && ! $is_paid_trial );
|
37 |
-
|
38 |
-
$billing = $fs->_fetch_billing();
|
39 |
-
$has_billing = ( $billing instanceof FS_Billing );
|
40 |
-
if ( ! $has_billing ) {
|
41 |
-
$billing = new FS_Billing();
|
42 |
-
}
|
43 |
-
|
44 |
-
$readonly_attr = $has_billing ? 'readonly' : '';
|
45 |
-
?>
|
46 |
-
|
47 |
-
<div id="fs_account" class="wrap">
|
48 |
-
<h2 class="nav-tab-wrapper">
|
49 |
-
<a href="<?php echo $fs->get_account_url() ?>" class="nav-tab"><?php fs_echo( 'account', $slug ) ?></a>
|
50 |
-
<?php if ( $fs->has_addons() ) : ?>
|
51 |
-
<a href="<?php echo $fs->_get_admin_page_url( 'addons' ) ?>"
|
52 |
-
class="nav-tab"><?php fs_echo( 'add-ons', $slug ) ?></a>
|
53 |
-
<?php endif ?>
|
54 |
-
<?php if ( $fs->is_not_paying() && $fs->has_paid_plan() ) : ?>
|
55 |
-
<a href="<?php echo $fs->get_upgrade_url() ?>" class="nav-tab"><?php fs_echo( 'upgrade', $slug ) ?></a>
|
56 |
-
<?php if ( $fs->apply_filters( 'show_trial', true ) && ! $fs->is_trial_utilized() && $fs->has_trial_plan() ) : ?>
|
57 |
-
<a href="<?php echo $fs->get_trial_url() ?>"
|
58 |
-
class="nav-tab"><?php fs_echo( 'free-trial', $slug ) ?></a>
|
59 |
-
<?php endif ?>
|
60 |
-
<?php endif ?>
|
61 |
-
<?php if ( ! $plan->is_free() ) : ?>
|
62 |
-
<a href="<?php echo $fs->get_account_tab_url( 'billing' ) ?>"
|
63 |
-
class="nav-tab nav-tab-active"><?php fs_echo( 'billing', $slug ) ?></a>
|
64 |
-
<?php endif ?>
|
65 |
-
</h2>
|
66 |
-
|
67 |
-
<div id="poststuff">
|
68 |
-
<div id="fs_billing">
|
69 |
-
<div class="has-sidebar has-right-sidebar">
|
70 |
-
<div class="has-sidebar-content">
|
71 |
-
<div class="postbox">
|
72 |
-
<h3><span class="dashicons dashicons-businessman"></span> <?php fs_echo( 'billing', $slug ) ?></h3>
|
73 |
-
<table id="fs_billing_address"<?php if ( $has_billing ) {
|
74 |
-
echo ' class="fs-read-mode"';
|
75 |
-
} ?>>
|
76 |
-
<tr>
|
77 |
-
<td><label><span><?php fs_echo( 'business-name', $slug ) ?>:</span> <input id="business_name" value="<?php echo $billing->business_name ?>" placeholder="<?php fs_echo( 'business-name', $slug ) ?>"></label></td>
|
78 |
-
<td><label><span><?php fs_echo( 'tax-vat-id', $slug ) ?>:</span> <input id="tax_id" value="<?php echo $billing->tax_id ?>" placeholder="<?php fs_echo( 'tax-vat-id', $slug ) ?>"></label></td>
|
79 |
-
</tr>
|
80 |
-
<tr>
|
81 |
-
<td><label><span><?php printf( fs_text( 'address-line-n', $slug ), 1 ) ?>:</span> <input id="address_street" value="<?php echo $billing->address_street ?>" placeholder="<?php printf( fs_text( 'address-line-n', $slug ), 1 ) ?>"></label></td>
|
82 |
-
<td><label><span><?php printf( fs_text( 'address-line-n', $slug ), 2 ) ?>:</span> <input id="address_apt" value="<?php echo $billing->address_apt ?>" placeholder="<?php printf( fs_text( 'address-line-n', $slug ), 2 ) ?>"></label></td>
|
83 |
-
</tr>
|
84 |
-
<tr>
|
85 |
-
<td><label><span><?php fs_echo( 'city', $slug ) ?> / <?php fs_echo( 'town', $slug ) ?>:</span> <input id="address_city" value="<?php echo $billing->address_city ?>" placeholder="<?php fs_echo( 'city', $slug ) ?> / <?php fs_echo( 'town', $slug ) ?>"></label></td>
|
86 |
-
<td><label><span><?php fs_echo( 'zip-postal-code', $slug ) ?>:</span> <input id="address_zip" value="<?php echo $billing->address_zip ?>" placeholder="<?php fs_echo( 'zip-postal-code', $slug ) ?>"></label></td>
|
87 |
-
</tr>
|
88 |
-
<tr>
|
89 |
-
<?php $countries = array(
|
90 |
-
'AF' => 'Afghanistan',
|
91 |
-
'AX' => 'Aland Islands',
|
92 |
-
'AL' => 'Albania',
|
93 |
-
'DZ' => 'Algeria',
|
94 |
-
'AS' => 'American Samoa',
|
95 |
-
'AD' => 'Andorra',
|
96 |
-
'AO' => 'Angola',
|
97 |
-
'AI' => 'Anguilla',
|
98 |
-
'AQ' => 'Antarctica',
|
99 |
-
'AG' => 'Antigua and Barbuda',
|
100 |
-
'AR' => 'Argentina',
|
101 |
-
'AM' => 'Armenia',
|
102 |
-
'AW' => 'Aruba',
|
103 |
-
'AU' => 'Australia',
|
104 |
-
'AT' => 'Austria',
|
105 |
-
'AZ' => 'Azerbaijan',
|
106 |
-
'BS' => 'Bahamas',
|
107 |
-
'BH' => 'Bahrain',
|
108 |
-
'BD' => 'Bangladesh',
|
109 |
-
'BB' => 'Barbados',
|
110 |
-
'BY' => 'Belarus',
|
111 |
-
'BE' => 'Belgium',
|
112 |
-
'BZ' => 'Belize',
|
113 |
-
'BJ' => 'Benin',
|
114 |
-
'BM' => 'Bermuda',
|
115 |
-
'BT' => 'Bhutan',
|
116 |
-
'BO' => 'Bolivia',
|
117 |
-
'BQ' => 'Bonaire, Saint Eustatius and Saba',
|
118 |
-
'BA' => 'Bosnia and Herzegovina',
|
119 |
-
'BW' => 'Botswana',
|
120 |
-
'BV' => 'Bouvet Island',
|
121 |
-
'BR' => 'Brazil',
|
122 |
-
'IO' => 'British Indian Ocean Territory',
|
123 |
-
'VG' => 'British Virgin Islands',
|
124 |
-
'BN' => 'Brunei',
|
125 |
-
'BG' => 'Bulgaria',
|
126 |
-
'BF' => 'Burkina Faso',
|
127 |
-
'BI' => 'Burundi',
|
128 |
-
'KH' => 'Cambodia',
|
129 |
-
'CM' => 'Cameroon',
|
130 |
-
'CA' => 'Canada',
|
131 |
-
'CV' => 'Cape Verde',
|
132 |
-
'KY' => 'Cayman Islands',
|
133 |
-
'CF' => 'Central African Republic',
|
134 |
-
'TD' => 'Chad',
|
135 |
-
'CL' => 'Chile',
|
136 |
-
'CN' => 'China',
|
137 |
-
'CX' => 'Christmas Island',
|
138 |
-
'CC' => 'Cocos Islands',
|
139 |
-
'CO' => 'Colombia',
|
140 |
-
'KM' => 'Comoros',
|
141 |
-
'CK' => 'Cook Islands',
|
142 |
-
'CR' => 'Costa Rica',
|
143 |
-
'HR' => 'Croatia',
|
144 |
-
'CU' => 'Cuba',
|
145 |
-
'CW' => 'Curacao',
|
146 |
-
'CY' => 'Cyprus',
|
147 |
-
'CZ' => 'Czech Republic',
|
148 |
-
'CD' => 'Democratic Republic of the Congo',
|
149 |
-
'DK' => 'Denmark',
|
150 |
-
'DJ' => 'Djibouti',
|
151 |
-
'DM' => 'Dominica',
|
152 |
-
'DO' => 'Dominican Republic',
|
153 |
-
'TL' => 'East Timor',
|
154 |
-
'EC' => 'Ecuador',
|
155 |
-
'EG' => 'Egypt',
|
156 |
-
'SV' => 'El Salvador',
|
157 |
-
'GQ' => 'Equatorial Guinea',
|
158 |
-
'ER' => 'Eritrea',
|
159 |
-
'EE' => 'Estonia',
|
160 |
-
'ET' => 'Ethiopia',
|
161 |
-
'FK' => 'Falkland Islands',
|
162 |
-
'FO' => 'Faroe Islands',
|
163 |
-
'FJ' => 'Fiji',
|
164 |
-
'FI' => 'Finland',
|
165 |
-
'FR' => 'France',
|
166 |
-
'GF' => 'French Guiana',
|
167 |
-
'PF' => 'French Polynesia',
|
168 |
-
'TF' => 'French Southern Territories',
|
169 |
-
'GA' => 'Gabon',
|
170 |
-
'GM' => 'Gambia',
|
171 |
-
'GE' => 'Georgia',
|
172 |
-
'DE' => 'Germany',
|
173 |
-
'GH' => 'Ghana',
|
174 |
-
'GI' => 'Gibraltar',
|
175 |
-
'GR' => 'Greece',
|
176 |
-
'GL' => 'Greenland',
|
177 |
-
'GD' => 'Grenada',
|
178 |
-
'GP' => 'Guadeloupe',
|
179 |
-
'GU' => 'Guam',
|
180 |
-
'GT' => 'Guatemala',
|
181 |
-
'GG' => 'Guernsey',
|
182 |
-
'GN' => 'Guinea',
|
183 |
-
'GW' => 'Guinea-Bissau',
|
184 |
-
'GY' => 'Guyana',
|
185 |
-
'HT' => 'Haiti',
|
186 |
-
'HM' => 'Heard Island and McDonald Islands',
|
187 |
-
'HN' => 'Honduras',
|
188 |
-
'HK' => 'Hong Kong',
|
189 |
-
'HU' => 'Hungary',
|
190 |
-
'IS' => 'Iceland',
|
191 |
-
'IN' => 'India',
|
192 |
-
'ID' => 'Indonesia',
|
193 |
-
'IR' => 'Iran',
|
194 |
-
'IQ' => 'Iraq',
|
195 |
-
'IE' => 'Ireland',
|
196 |
-
'IM' => 'Isle of Man',
|
197 |
-
'IL' => 'Israel',
|
198 |
-
'IT' => 'Italy',
|
199 |
-
'CI' => 'Ivory Coast',
|
200 |
-
'JM' => 'Jamaica',
|
201 |
-
'JP' => 'Japan',
|
202 |
-
'JE' => 'Jersey',
|
203 |
-
'JO' => 'Jordan',
|
204 |
-
'KZ' => 'Kazakhstan',
|
205 |
-
'KE' => 'Kenya',
|
206 |
-
'KI' => 'Kiribati',
|
207 |
-
'XK' => 'Kosovo',
|
208 |
-
'KW' => 'Kuwait',
|
209 |
-
'KG' => 'Kyrgyzstan',
|
210 |
-
'LA' => 'Laos',
|
211 |
-
'LV' => 'Latvia',
|
212 |
-
'LB' => 'Lebanon',
|
213 |
-
'LS' => 'Lesotho',
|
214 |
-
'LR' => 'Liberia',
|
215 |
-
'LY' => 'Libya',
|
216 |
-
'LI' => 'Liechtenstein',
|
217 |
-
'LT' => 'Lithuania',
|
218 |
-
'LU' => 'Luxembourg',
|
219 |
-
'MO' => 'Macao',
|
220 |
-
'MK' => 'Macedonia',
|
221 |
-
'MG' => 'Madagascar',
|
222 |
-
'MW' => 'Malawi',
|
223 |
-
'MY' => 'Malaysia',
|
224 |
-
'MV' => 'Maldives',
|
225 |
-
'ML' => 'Mali',
|
226 |
-
'MT' => 'Malta',
|
227 |
-
'MH' => 'Marshall Islands',
|
228 |
-
'MQ' => 'Martinique',
|
229 |
-
'MR' => 'Mauritania',
|
230 |
-
'MU' => 'Mauritius',
|
231 |
-
'YT' => 'Mayotte',
|
232 |
-
'MX' => 'Mexico',
|
233 |
-
'FM' => 'Micronesia',
|
234 |
-
'MD' => 'Moldova',
|
235 |
-
'MC' => 'Monaco',
|
236 |
-
'MN' => 'Mongolia',
|
237 |
-
'ME' => 'Montenegro',
|
238 |
-
'MS' => 'Montserrat',
|
239 |
-
'MA' => 'Morocco',
|
240 |
-
'MZ' => 'Mozambique',
|
241 |
-
'MM' => 'Myanmar',
|
242 |
-
'NA' => 'Namibia',
|
243 |
-
'NR' => 'Nauru',
|
244 |
-
'NP' => 'Nepal',
|
245 |
-
'NL' => 'Netherlands',
|
246 |
-
'NC' => 'New Caledonia',
|
247 |
-
'NZ' => 'New Zealand',
|
248 |
-
'NI' => 'Nicaragua',
|
249 |
-
'NE' => 'Niger',
|
250 |
-
'NG' => 'Nigeria',
|
251 |
-
'NU' => 'Niue',
|
252 |
-
'NF' => 'Norfolk Island',
|
253 |
-
'KP' => 'North Korea',
|
254 |
-
'MP' => 'Northern Mariana Islands',
|
255 |
-
'NO' => 'Norway',
|
256 |
-
'OM' => 'Oman',
|
257 |
-
'PK' => 'Pakistan',
|
258 |
-
'PW' => 'Palau',
|
259 |
-
'PS' => 'Palestinian Territory',
|
260 |
-
'PA' => 'Panama',
|
261 |
-
'PG' => 'Papua New Guinea',
|
262 |
-
'PY' => 'Paraguay',
|
263 |
-
'PE' => 'Peru',
|
264 |
-
'PH' => 'Philippines',
|
265 |
-
'PN' => 'Pitcairn',
|
266 |
-
'PL' => 'Poland',
|
267 |
-
'PT' => 'Portugal',
|
268 |
-
'PR' => 'Puerto Rico',
|
269 |
-
'QA' => 'Qatar',
|
270 |
-
'CG' => 'Republic of the Congo',
|
271 |
-
'RE' => 'Reunion',
|
272 |
-
'RO' => 'Romania',
|
273 |
-
'RU' => 'Russia',
|
274 |
-
'RW' => 'Rwanda',
|
275 |
-
'BL' => 'Saint Barthelemy',
|
276 |
-
'SH' => 'Saint Helena',
|
277 |
-
'KN' => 'Saint Kitts and Nevis',
|
278 |
-
'LC' => 'Saint Lucia',
|
279 |
-
'MF' => 'Saint Martin',
|
280 |
-
'PM' => 'Saint Pierre and Miquelon',
|
281 |
-
'VC' => 'Saint Vincent and the Grenadines',
|
282 |
-
'WS' => 'Samoa',
|
283 |
-
'SM' => 'San Marino',
|
284 |
-
'ST' => 'Sao Tome and Principe',
|
285 |
-
'SA' => 'Saudi Arabia',
|
286 |
-
'SN' => 'Senegal',
|
287 |
-
'RS' => 'Serbia',
|
288 |
-
'SC' => 'Seychelles',
|
289 |
-
'SL' => 'Sierra Leone',
|
290 |
-
'SG' => 'Singapore',
|
291 |
-
'SX' => 'Sint Maarten',
|
292 |
-
'SK' => 'Slovakia',
|
293 |
-
'SI' => 'Slovenia',
|
294 |
-
'SB' => 'Solomon Islands',
|
295 |
-
'SO' => 'Somalia',
|
296 |
-
'ZA' => 'South Africa',
|
297 |
-
'GS' => 'South Georgia and the South Sandwich Islands',
|
298 |
-
'KR' => 'South Korea',
|
299 |
-
'SS' => 'South Sudan',
|
300 |
-
'ES' => 'Spain',
|
301 |
-
'LK' => 'Sri Lanka',
|
302 |
-
'SD' => 'Sudan',
|
303 |
-
'SR' => 'Suriname',
|
304 |
-
'SJ' => 'Svalbard and Jan Mayen',
|
305 |
-
'SZ' => 'Swaziland',
|
306 |
-
'SE' => 'Sweden',
|
307 |
-
'CH' => 'Switzerland',
|
308 |
-
'SY' => 'Syria',
|
309 |
-
'TW' => 'Taiwan',
|
310 |
-
'TJ' => 'Tajikistan',
|
311 |
-
'TZ' => 'Tanzania',
|
312 |
-
'TH' => 'Thailand',
|
313 |
-
'TG' => 'Togo',
|
314 |
-
'TK' => 'Tokelau',
|
315 |
-
'TO' => 'Tonga',
|
316 |
-
'TT' => 'Trinidad and Tobago',
|
317 |
-
'TN' => 'Tunisia',
|
318 |
-
'TR' => 'Turkey',
|
319 |
-
'TM' => 'Turkmenistan',
|
320 |
-
'TC' => 'Turks and Caicos Islands',
|
321 |
-
'TV' => 'Tuvalu',
|
322 |
-
'VI' => 'U.S. Virgin Islands',
|
323 |
-
'UG' => 'Uganda',
|
324 |
-
'UA' => 'Ukraine',
|
325 |
-
'AE' => 'United Arab Emirates',
|
326 |
-
'GB' => 'United Kingdom',
|
327 |
-
'US' => 'United States',
|
328 |
-
'UM' => 'United States Minor Outlying Islands',
|
329 |
-
'UY' => 'Uruguay',
|
330 |
-
'UZ' => 'Uzbekistan',
|
331 |
-
'VU' => 'Vanuatu',
|
332 |
-
'VA' => 'Vatican',
|
333 |
-
'VE' => 'Venezuela',
|
334 |
-
'VN' => 'Vietnam',
|
335 |
-
'WF' => 'Wallis and Futuna',
|
336 |
-
'EH' => 'Western Sahara',
|
337 |
-
'YE' => 'Yemen',
|
338 |
-
'ZM' => 'Zambia',
|
339 |
-
'ZW' => 'Zimbabwe',
|
340 |
-
) ?>
|
341 |
-
<td><label><span><?php fs_echo( 'country', $slug ) ?>:</span> <select id="address_country_code">
|
342 |
-
<?php if ( empty( $billing->address_country_code ) ) : ?>
|
343 |
-
<option value=""
|
344 |
-
selected><?php fs_echo( 'select-country', $slug ) ?></option>
|
345 |
-
<?php endif ?>
|
346 |
-
<?php foreach ( $countries as $code => $country ) : ?>
|
347 |
-
<option
|
348 |
-
value="<?php echo $code ?>" <?php selected( $billing->address_country_code, $code ) ?>><?php echo $country ?></option>
|
349 |
-
<?php endforeach ?>
|
350 |
-
</select></label></td>
|
351 |
-
<td><label><span><?php fs_echo( 'state', $slug ) ?> / <?php fs_echo( 'province', $slug ) ?>:</span>
|
352 |
-
<input id="address_state" value="<?php echo $billing->address_state ?>" placeholder="<?php fs_echo( 'state', $slug ) ?> / <?php fs_echo( 'province', $slug ) ?>"></label></td>
|
353 |
-
</tr>
|
354 |
-
<tr>
|
355 |
-
<td colspan="2">
|
356 |
-
<button
|
357 |
-
class="button"><?php fs_echo( $has_billing ? 'edit' : 'update', $slug ) ?></button>
|
358 |
-
</td>
|
359 |
-
</tr>
|
360 |
-
</table>
|
361 |
-
</div>
|
362 |
-
<div class="postbox">
|
363 |
-
<h3><span class="dashicons dashicons-paperclip"></span> <?php fs_echo( 'payments', $slug ) ?></h3>
|
364 |
-
|
365 |
-
<?php
|
366 |
-
$payments = $fs->_fetch_payments();
|
367 |
-
?>
|
368 |
-
|
369 |
-
<div class="inside">
|
370 |
-
<table class="widefat">
|
371 |
-
<thead>
|
372 |
-
<tr>
|
373 |
-
<th><?php fs_echo( 'id', $slug ) ?></th>
|
374 |
-
<th><?php fs_echo( 'date', $slug ) ?></th>
|
375 |
-
<!-- <th>--><?php //fs_echo( 'transaction' ) ?><!--</th>-->
|
376 |
-
<th><?php fs_echo( 'amount', $slug ) ?></th>
|
377 |
-
<th><?php fs_echo( 'invoice', $slug ) ?></th>
|
378 |
-
</tr>
|
379 |
-
</thead>
|
380 |
-
<tbody>
|
381 |
-
<?php $odd = true ?>
|
382 |
-
<?php foreach ( $payments as $payment ) : ?>
|
383 |
-
<tr<?php echo $odd ? ' class="alternate"' : '' ?>>
|
384 |
-
<td><?php echo $payment->id ?></td>
|
385 |
-
<td><?php echo date( 'M j, Y', strtotime( $payment->created ) ) ?></td>
|
386 |
-
<td>$<?php echo $payment->gross ?></td>
|
387 |
-
<td><a href="<?php echo $fs->_get_invoice_api_url( $payment->id ) ?>"
|
388 |
-
class="button button-small"
|
389 |
-
target="_blank"><?php fs_echo( 'invoice', $slug ) ?></a></td>
|
390 |
-
</tr>
|
391 |
-
<?php $odd = ! $odd; endforeach ?>
|
392 |
-
</tbody>
|
393 |
-
</table>
|
394 |
-
</div>
|
395 |
-
</div>
|
396 |
-
</div>
|
397 |
-
</div>
|
398 |
-
</div>
|
399 |
-
</div>
|
400 |
-
</div>
|
401 |
-
<script type="text/javascript">
|
402 |
-
(function($){
|
403 |
-
var $billingAddress = $('#fs_billing_address'),
|
404 |
-
$billingInputs = $billingAddress.find('input, select');
|
405 |
-
|
406 |
-
var setPrevValues = function () {
|
407 |
-
$billingInputs.each(function () {
|
408 |
-
$(this).attr('data-val', $(this).val());
|
409 |
-
});
|
410 |
-
};
|
411 |
-
|
412 |
-
setPrevValues();
|
413 |
-
|
414 |
-
var hasBillingChanged = function () {
|
415 |
-
for (var i = 0, len = $billingInputs.length; i < len; i++){
|
416 |
-
var $this = $($billingInputs[i]);
|
417 |
-
if ($this.attr('data-val') !== $this.val()) {
|
418 |
-
return true;
|
419 |
-
}
|
420 |
-
}
|
421 |
-
|
422 |
-
return false;
|
423 |
-
};
|
424 |
-
|
425 |
-
var isEditAllFieldsMode = false;
|
426 |
-
|
427 |
-
$billingAddress.find('.button').click(function(){
|
428 |
-
$billingAddress.toggleClass('fs-read-mode');
|
429 |
-
|
430 |
-
var isEditMode = !$billingAddress.hasClass('fs-read-mode');
|
431 |
-
|
432 |
-
$(this)
|
433 |
-
.html(isEditMode ? <?php echo json_encode(fs_text('update', $slug)) ?> : <?php echo json_encode(fs_text('edit', $slug)) ?>)
|
434 |
-
.toggleClass('button-primary');
|
435 |
-
|
436 |
-
if (isEditMode) {
|
437 |
-
$('#business_name').focus().select();
|
438 |
-
isEditAllFieldsMode = true;
|
439 |
-
} else {
|
440 |
-
isEditAllFieldsMode = false;
|
441 |
-
|
442 |
-
if (!hasBillingChanged())
|
443 |
-
return;
|
444 |
-
|
445 |
-
var billing = {};
|
446 |
-
|
447 |
-
$billingInputs.each(function(){
|
448 |
-
if ($(this).attr('data-val') !== $(this).val()) {
|
449 |
-
billing[$(this).attr('id')] = $(this).val();
|
450 |
-
}
|
451 |
-
});
|
452 |
-
|
453 |
-
$.ajax({
|
454 |
-
url : ajaxurl,
|
455 |
-
method : 'POST',
|
456 |
-
data : {
|
457 |
-
action : '<?php echo $fs->get_ajax_action( 'update_billing' ) ?>',
|
458 |
-
security : '<?php echo $fs->get_ajax_security( 'update_billing' ) ?>',
|
459 |
-
slug : '<?php echo $slug ?>',
|
460 |
-
billing : billing
|
461 |
-
},
|
462 |
-
success: function (resultObj) {
|
463 |
-
if (resultObj.success) {
|
464 |
-
setPrevValues();
|
465 |
-
} else {
|
466 |
-
alert(resultObj.error);
|
467 |
-
}
|
468 |
-
}
|
469 |
-
});
|
470 |
-
}
|
471 |
-
});
|
472 |
-
|
473 |
-
$billingInputs
|
474 |
-
// Get into edit mode upon selection.
|
475 |
-
.focus(function () {
|
476 |
-
var isEditMode = !$billingAddress.hasClass('fs-read-mode');
|
477 |
-
|
478 |
-
if (isEditMode) {
|
479 |
-
return;
|
480 |
-
}
|
481 |
-
|
482 |
-
$billingAddress.toggleClass('fs-read-mode');
|
483 |
-
$billingAddress.find('.button')
|
484 |
-
.html(<?php echo json_encode( fs_text( 'update', $slug ) ) ?>)
|
485 |
-
.toggleClass('button-primary');
|
486 |
-
})
|
487 |
-
// If blured after editing only one field without changes, exit edit mode.
|
488 |
-
.blur(function () {
|
489 |
-
if (!isEditAllFieldsMode && !hasBillingChanged()) {
|
490 |
-
$billingAddress.toggleClass('fs-read-mode');
|
491 |
-
$billingAddress.find('.button')
|
492 |
-
.html(<?php echo json_encode( fs_text( 'edit', $slug ) ) ?>)
|
493 |
-
.toggleClass('button-primary');
|
494 |
-
}
|
495 |
-
});
|
496 |
-
})(jQuery);
|
497 |
-
</script>
|
498 |
-
<?php
|
499 |
-
$params = array(
|
500 |
-
'page' => 'account',
|
501 |
-
'module_id' => $fs->get_id(),
|
502 |
-
'module_slug' => $slug,
|
503 |
-
'module_version' => $fs->get_plugin_version(),
|
504 |
-
);
|
505 |
-
fs_require_template( 'powered-by.php', $params );
|
506 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/templates/checkout.php
CHANGED
@@ -165,7 +165,7 @@
|
|
165 |
|
166 |
$view_params = array(
|
167 |
'id' => $VARS['id'],
|
168 |
-
'page' => strtolower( $fs->
|
169 |
);
|
170 |
fs_require_once_template('secure-https-header.php', $view_params);
|
171 |
?>
|
165 |
|
166 |
$view_params = array(
|
167 |
'id' => $VARS['id'],
|
168 |
+
'page' => strtolower( $fs->get_text_inline( 'Checkout', 'checkout' ) ) . ' ' . $fs->get_text_inline( 'PCI compliant', 'pci-compliant' ),
|
169 |
);
|
170 |
fs_require_once_template('secure-https-header.php', $view_params);
|
171 |
?>
|
freemius/templates/connect.php
CHANGED
@@ -125,36 +125,38 @@
|
|
125 |
<p class="fs-error"><?php echo esc_html( $error ) ?></p>
|
126 |
<?php endif ?>
|
127 |
<p><?php
|
128 |
-
$button_label = 'opt-in-connect';
|
129 |
|
130 |
if ( $is_pending_activation ) {
|
131 |
-
$button_label = 'resend-activation-email';
|
132 |
|
133 |
echo $fs->apply_filters( 'pending_activation_message', sprintf(
|
134 |
-
|
135 |
-
|
|
|
136 |
$first_name,
|
137 |
'<b>' . $fs->get_plugin_name() . '</b>',
|
138 |
'<b>' . $current_user->user_email . '</b>',
|
139 |
-
|
140 |
) );
|
141 |
} else if ( $require_license_key ) {
|
142 |
-
$button_label = 'agree-activate-license';
|
143 |
|
144 |
echo $fs->apply_filters( 'connect-message_on-premium',
|
145 |
-
|
146 |
-
sprintf(
|
|
|
147 |
$first_name,
|
148 |
$fs->get_plugin_name()
|
149 |
);
|
150 |
} else {
|
151 |
$filter = 'connect_message';
|
152 |
-
$default_optin_message = 'connect-message'
|
153 |
|
154 |
if ( $fs->is_plugin_update() ) {
|
155 |
// If Freemius was added on a plugin update, set different
|
156 |
// opt-in message.
|
157 |
-
$default_optin_message = 'connect-message_on-update';
|
158 |
|
159 |
// If user customized the opt-in message on update, use
|
160 |
// that message. Otherwise, fallback to regular opt-in
|
@@ -165,10 +167,10 @@
|
|
165 |
}
|
166 |
|
167 |
echo $fs->apply_filters( $filter,
|
168 |
-
sprintf(
|
169 |
sprintf(
|
170 |
-
|
171 |
-
'<b>' . $fs->get_plugin_name() . '</b>',
|
172 |
'<b>' . $current_user->user_login . '</b>',
|
173 |
'<a href="' . $site_url . '" target="_blank">' . $site_url . '</a>',
|
174 |
$freemius_link
|
@@ -184,17 +186,17 @@
|
|
184 |
<?php if ( $require_license_key ) : ?>
|
185 |
<div class="fs-license-key-container">
|
186 |
<input id="fs_license_key" name="fs_key" type="text" required maxlength="32"
|
187 |
-
placeholder="<?php
|
188 |
<i class="dashicons dashicons-admin-network"></i>
|
189 |
<a class="show-license-resend-modal show-license-resend-modal-<?php echo $fs->get_unique_affix() ?>"
|
190 |
-
href="#"><?php
|
191 |
</div>
|
192 |
<?php endif ?>
|
193 |
</div>
|
194 |
<div class="fs-actions">
|
195 |
<?php if ( $fs->is_enable_anonymous() && ! $is_pending_activation && ! $require_license_key ) : ?>
|
196 |
<a href="<?php echo fs_nonce_url( $fs->_get_admin_page_url( '', array( 'fs_action' => $fs->get_unique_affix() . '_skip_activation' ) ), $fs->get_unique_affix() . '_skip_activation' ) ?>"
|
197 |
-
class="button button-secondary" tabindex="2"><?php
|
198 |
<?php endif ?>
|
199 |
|
200 |
<?php if ( $activate_with_current_user ) : ?>
|
@@ -203,7 +205,7 @@
|
|
203 |
value="<?php echo $fs->get_unique_affix() ?>_activate_existing">
|
204 |
<?php wp_nonce_field( 'activate_existing_' . $fs->get_public_key() ) ?>
|
205 |
<button class="button button-primary" tabindex="1"
|
206 |
-
type="submit"><?php
|
207 |
</form>
|
208 |
<?php else : ?>
|
209 |
<form method="post" action="<?php echo WP_FS__ADDRESS ?>/action/service/user/install/">
|
@@ -214,7 +216,7 @@
|
|
214 |
<button class="button button-primary" tabindex="1"
|
215 |
type="submit"<?php if ( $require_license_key ) {
|
216 |
echo ' disabled="disabled"';
|
217 |
-
} ?>><?php
|
218 |
</form>
|
219 |
<?php endif ?>
|
220 |
</div><?php
|
@@ -223,32 +225,32 @@
|
|
223 |
$permissions = array(
|
224 |
'profile' => array(
|
225 |
'icon-class' => 'dashicons dashicons-admin-users',
|
226 |
-
'label' => $fs->
|
227 |
-
'desc' => $fs->
|
228 |
'priority' => 5,
|
229 |
),
|
230 |
'site' => array(
|
231 |
'icon-class' => 'dashicons dashicons-admin-settings',
|
232 |
-
'label' => $fs->
|
233 |
-
'desc' => $fs->
|
234 |
'priority' => 10,
|
235 |
),
|
236 |
'notices' => array(
|
237 |
'icon-class' => 'dashicons dashicons-testimonial',
|
238 |
-
'label' => $fs->
|
239 |
-
'desc' => $fs->
|
240 |
'priority' => 13,
|
241 |
),
|
242 |
'events' => array(
|
243 |
'icon-class' => 'dashicons dashicons-admin-plugins',
|
244 |
-
'label' => sprintf( $fs->
|
245 |
-
'desc' => $fs->
|
246 |
'priority' => 20,
|
247 |
),
|
248 |
// 'plugins_themes' => array(
|
249 |
// 'icon-class' => 'dashicons dashicons-admin-settings',
|
250 |
-
// 'label' =>
|
251 |
-
// 'desc' =>
|
252 |
// 'priority' => 30,
|
253 |
// ),
|
254 |
);
|
@@ -257,8 +259,8 @@
|
|
257 |
if ( $fs->is_permission_requested( 'newsletter' ) ) {
|
258 |
$permissions['newsletter'] = array(
|
259 |
'icon-class' => 'dashicons dashicons-email-alt',
|
260 |
-
'label' => $fs->
|
261 |
-
'desc' => $fs->
|
262 |
'priority' => 15,
|
263 |
);
|
264 |
}
|
@@ -273,13 +275,13 @@
|
|
273 |
<div class="fs-permissions">
|
274 |
<?php if ( $require_license_key ) : ?>
|
275 |
<p class="fs-license-sync-disclaimer"><?php
|
276 |
-
|
277 |
-
|
278 |
$fs->get_module_label( true ),
|
279 |
$freemius_link
|
280 |
) ?></p>
|
281 |
<?php endif ?>
|
282 |
-
<a class="fs-trigger" href="#" tabindex="1"><?php
|
283 |
<ul><?php
|
284 |
foreach ( $permissions as $id => $permission ) : ?>
|
285 |
<li id="fs-permission-<?php echo esc_attr( $id ); ?>"
|
@@ -300,20 +302,20 @@
|
|
300 |
<div class="fs-freemium-licensing">
|
301 |
<p>
|
302 |
<?php if ( $require_license_key ) : ?>
|
303 |
-
<?php
|
304 |
-
<a data-require-license="false" tabindex="1"><?php
|
305 |
<?php else : ?>
|
306 |
-
<?php
|
307 |
-
<a data-require-license="true" tabindex="1"><?php
|
308 |
<?php endif ?>
|
309 |
</p>
|
310 |
</div>
|
311 |
<?php endif ?>
|
312 |
<div class="fs-terms">
|
313 |
<a href="https://freemius.com/privacy/" target="_blank"
|
314 |
-
tabindex="1"><?php
|
315 |
-
|
316 |
-
<a href="<?php echo $freemius_site_www ?>/terms/" target="_blank" tabindex="1"><?php
|
317 |
</div>
|
318 |
</div>
|
319 |
<?php
|
@@ -405,7 +407,7 @@
|
|
405 |
|
406 |
// Reset loading mode.
|
407 |
$primaryCta.removeClass('fs-loading').css({'cursor': 'auto'});
|
408 |
-
$primaryCta.html(<?php echo
|
409 |
$primaryCta.prop('disabled', false);
|
410 |
$(document.body).css({'cursor': 'auto'});
|
411 |
}
|
@@ -430,7 +432,10 @@
|
|
430 |
|
431 |
$primaryCta.on('click', function () {
|
432 |
$(this).addClass('fs-loading');
|
433 |
-
$(this).html(<?php echo
|
|
|
|
|
|
|
434 |
});
|
435 |
|
436 |
$('.fs-permissions .fs-trigger').on('click', function () {
|
125 |
<p class="fs-error"><?php echo esc_html( $error ) ?></p>
|
126 |
<?php endif ?>
|
127 |
<p><?php
|
128 |
+
$button_label = fs_text_inline( 'Allow & Continue', 'opt-in-connect', $slug );
|
129 |
|
130 |
if ( $is_pending_activation ) {
|
131 |
+
$button_label = fs_text_inline( 'Re-send activation email', 'resend-activation-email', $slug );
|
132 |
|
133 |
echo $fs->apply_filters( 'pending_activation_message', sprintf(
|
134 |
+
/* translators: %s: name (e.g. Thanks John!) */
|
135 |
+
fs_text_inline( 'Thanks %s!', 'thanks-x', $slug ) . '<br>' .
|
136 |
+
fs_text_inline( 'You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s.', 'pending-activation-message', $slug ),
|
137 |
$first_name,
|
138 |
'<b>' . $fs->get_plugin_name() . '</b>',
|
139 |
'<b>' . $current_user->user_email . '</b>',
|
140 |
+
fs_text_inline( 'complete the install', 'complete-the-install', $slug )
|
141 |
) );
|
142 |
} else if ( $require_license_key ) {
|
143 |
+
$button_label = fs_text_inline( 'Agree & Activate License', 'agree-activate-license', $slug );
|
144 |
|
145 |
echo $fs->apply_filters( 'connect-message_on-premium',
|
146 |
+
/* translators: %s: name (e.g. Hey John,) */
|
147 |
+
sprintf( fs_text_x_inline( 'Hey %s,', 'greeting', $slug ), $first_name ) . '<br>' .
|
148 |
+
sprintf( fs_text_inline( 'Thanks for purchasing %s! To get started, please enter your license key:', 'thanks-for-purchasing', $slug ), '<b>' . $fs->get_plugin_name() . '</b>' ),
|
149 |
$first_name,
|
150 |
$fs->get_plugin_name()
|
151 |
);
|
152 |
} else {
|
153 |
$filter = 'connect_message';
|
154 |
+
$default_optin_message = fs_text_inline( 'Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s.', 'connect-message', $slug);;
|
155 |
|
156 |
if ( $fs->is_plugin_update() ) {
|
157 |
// If Freemius was added on a plugin update, set different
|
158 |
// opt-in message.
|
159 |
+
$default_optin_message = fs_text_inline( 'Please help us improve %1$s! If you opt in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that\'s okay! %1$s will still work just fine.', 'connect-message_on-update', $slug );
|
160 |
|
161 |
// If user customized the opt-in message on update, use
|
162 |
// that message. Otherwise, fallback to regular opt-in
|
167 |
}
|
168 |
|
169 |
echo $fs->apply_filters( $filter,
|
170 |
+
esc_html( sprintf( fs_text_x_inline( 'Hey %s,', 'greeting', 'hey-x', $slug ), $first_name ) ) . '<br>' .
|
171 |
sprintf(
|
172 |
+
esc_html( $default_optin_message ),
|
173 |
+
'<b>' . esc_html( $fs->get_plugin_name() ) . '</b>',
|
174 |
'<b>' . $current_user->user_login . '</b>',
|
175 |
'<a href="' . $site_url . '" target="_blank">' . $site_url . '</a>',
|
176 |
$freemius_link
|
186 |
<?php if ( $require_license_key ) : ?>
|
187 |
<div class="fs-license-key-container">
|
188 |
<input id="fs_license_key" name="fs_key" type="text" required maxlength="32"
|
189 |
+
placeholder="<?php fs_esc_attr_echo_inline( 'License key', 'license-key', $slug ) ?>" tabindex="1"/>
|
190 |
<i class="dashicons dashicons-admin-network"></i>
|
191 |
<a class="show-license-resend-modal show-license-resend-modal-<?php echo $fs->get_unique_affix() ?>"
|
192 |
+
href="#"><?php fs_esc_html_echo_inline( "Can't find your license key?", 'cant-find-license-key' ); ?></a>
|
193 |
</div>
|
194 |
<?php endif ?>
|
195 |
</div>
|
196 |
<div class="fs-actions">
|
197 |
<?php if ( $fs->is_enable_anonymous() && ! $is_pending_activation && ! $require_license_key ) : ?>
|
198 |
<a href="<?php echo fs_nonce_url( $fs->_get_admin_page_url( '', array( 'fs_action' => $fs->get_unique_affix() . '_skip_activation' ) ), $fs->get_unique_affix() . '_skip_activation' ) ?>"
|
199 |
+
class="button button-secondary" tabindex="2"><?php fs_esc_html_echo_x_inline( 'Skip', 'verb', 'skip', $slug ) ?></a>
|
200 |
<?php endif ?>
|
201 |
|
202 |
<?php if ( $activate_with_current_user ) : ?>
|
205 |
value="<?php echo $fs->get_unique_affix() ?>_activate_existing">
|
206 |
<?php wp_nonce_field( 'activate_existing_' . $fs->get_public_key() ) ?>
|
207 |
<button class="button button-primary" tabindex="1"
|
208 |
+
type="submit"><?php echo esc_html( $button_label ) ?></button>
|
209 |
</form>
|
210 |
<?php else : ?>
|
211 |
<form method="post" action="<?php echo WP_FS__ADDRESS ?>/action/service/user/install/">
|
216 |
<button class="button button-primary" tabindex="1"
|
217 |
type="submit"<?php if ( $require_license_key ) {
|
218 |
echo ' disabled="disabled"';
|
219 |
+
} ?>><?php echo esc_html( $button_label ) ?></button>
|
220 |
</form>
|
221 |
<?php endif ?>
|
222 |
</div><?php
|
225 |
$permissions = array(
|
226 |
'profile' => array(
|
227 |
'icon-class' => 'dashicons dashicons-admin-users',
|
228 |
+
'label' => $fs->get_text_inline( 'Your Profile Overview', 'permissions-profile' ),
|
229 |
+
'desc' => $fs->get_text_inline( 'Name and email address', 'permissions-profile_desc' ),
|
230 |
'priority' => 5,
|
231 |
),
|
232 |
'site' => array(
|
233 |
'icon-class' => 'dashicons dashicons-admin-settings',
|
234 |
+
'label' => $fs->get_text_inline( 'Your Site Overview', 'permissions-site' ),
|
235 |
+
'desc' => $fs->get_text_inline( 'Site URL, WP version, PHP info, plugins & themes', 'permissions-site_desc' ),
|
236 |
'priority' => 10,
|
237 |
),
|
238 |
'notices' => array(
|
239 |
'icon-class' => 'dashicons dashicons-testimonial',
|
240 |
+
'label' => $fs->get_text_inline( 'Admin Notices', 'permissions-admin-notices' ),
|
241 |
+
'desc' => $fs->get_text_inline( 'Updates, announcements, marketing, no spam', 'permissions-newsletter_desc' ),
|
242 |
'priority' => 13,
|
243 |
),
|
244 |
'events' => array(
|
245 |
'icon-class' => 'dashicons dashicons-admin-plugins',
|
246 |
+
'label' => sprintf( $fs->get_text_inline( 'Current %s Events', 'permissions-events' ), ucfirst( $fs->get_module_type() ) ),
|
247 |
+
'desc' => $fs->get_text_inline( 'Activation, deactivation and uninstall', 'permissions-events_desc' ),
|
248 |
'priority' => 20,
|
249 |
),
|
250 |
// 'plugins_themes' => array(
|
251 |
// 'icon-class' => 'dashicons dashicons-admin-settings',
|
252 |
+
// 'label' => fs_text_inline( 'Plugins & Themes', 'permissions-plugins_themes' ),
|
253 |
+
// 'desc' => fs_text_inline( 'Titles, versions and state.', 'permissions-plugins_themes_desc' ),
|
254 |
// 'priority' => 30,
|
255 |
// ),
|
256 |
);
|
259 |
if ( $fs->is_permission_requested( 'newsletter' ) ) {
|
260 |
$permissions['newsletter'] = array(
|
261 |
'icon-class' => 'dashicons dashicons-email-alt',
|
262 |
+
'label' => $fs->get_text_inline( 'Newsletter', 'permissions-newsletter' ),
|
263 |
+
'desc' => $fs->get_text_inline( 'Updates, announcements, marketing, no spam', 'permissions-newsletter_desc' ),
|
264 |
'priority' => 15,
|
265 |
);
|
266 |
}
|
275 |
<div class="fs-permissions">
|
276 |
<?php if ( $require_license_key ) : ?>
|
277 |
<p class="fs-license-sync-disclaimer"><?php
|
278 |
+
echo sprintf(
|
279 |
+
fs_esc_html_inline( 'The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license.', 'license-sync-disclaimer', $slug ),
|
280 |
$fs->get_module_label( true ),
|
281 |
$freemius_link
|
282 |
) ?></p>
|
283 |
<?php endif ?>
|
284 |
+
<a class="fs-trigger" href="#" tabindex="1"><?php fs_esc_html_echo_inline( 'What permissions are being granted?', 'what-permissions', $slug ) ?></a>
|
285 |
<ul><?php
|
286 |
foreach ( $permissions as $id => $permission ) : ?>
|
287 |
<li id="fs-permission-<?php echo esc_attr( $id ); ?>"
|
302 |
<div class="fs-freemium-licensing">
|
303 |
<p>
|
304 |
<?php if ( $require_license_key ) : ?>
|
305 |
+
<?php fs_esc_html_echo_inline( 'Don\'t have a license key?', 'dont-have-license-key', $slug ) ?>
|
306 |
+
<a data-require-license="false" tabindex="1"><?php fs_esc_html_echo_inline( 'Activate Free Version', 'activate-free-version', $slug ) ?></a>
|
307 |
<?php else : ?>
|
308 |
+
<?php fs_echo_inline( 'Have a license key?', 'have-license-key', $slug ) ?>
|
309 |
+
<a data-require-license="true" tabindex="1"><?php fs_esc_html_echo_inline( 'Activate License', 'activate-license', $slug ) ?></a>
|
310 |
<?php endif ?>
|
311 |
</p>
|
312 |
</div>
|
313 |
<?php endif ?>
|
314 |
<div class="fs-terms">
|
315 |
<a href="https://freemius.com/privacy/" target="_blank"
|
316 |
+
tabindex="1"><?php fs_esc_html_echo_inline( 'Privacy Policy', 'privacy-policy', $slug ) ?></a>
|
317 |
-
|
318 |
+
<a href="<?php echo $freemius_site_www ?>/terms/" target="_blank" tabindex="1"><?php fs_echo_inline( 'Terms of Service', 'tos', $slug ) ?></a>
|
319 |
</div>
|
320 |
</div>
|
321 |
<?php
|
407 |
|
408 |
// Reset loading mode.
|
409 |
$primaryCta.removeClass('fs-loading').css({'cursor': 'auto'});
|
410 |
+
$primaryCta.html('<?php echo esc_js( $button_label ) ?>');
|
411 |
$primaryCta.prop('disabled', false);
|
412 |
$(document.body).css({'cursor': 'auto'});
|
413 |
}
|
432 |
|
433 |
$primaryCta.on('click', function () {
|
434 |
$(this).addClass('fs-loading');
|
435 |
+
$(this).html('<?php echo esc_js( $is_pending_activation ?
|
436 |
+
fs_text_x_inline( 'Sending email', 'as in the process of sending an email', 'sending-email', $slug ) :
|
437 |
+
fs_text_x_inline( 'Activating', 'as activating plugin', 'activating', $slug )
|
438 |
+
) ?>...');
|
439 |
});
|
440 |
|
441 |
$('.fs-permissions .fs-trigger').on('click', function () {
|
freemius/templates/contact.php
CHANGED
@@ -71,7 +71,7 @@
|
|
71 |
|
72 |
$view_params = array(
|
73 |
'id' => $VARS['id'],
|
74 |
-
'page' => strtolower( $fs->
|
75 |
);
|
76 |
fs_require_once_template('secure-https-header.php', $view_params);
|
77 |
|
71 |
|
72 |
$view_params = array(
|
73 |
'id' => $VARS['id'],
|
74 |
+
'page' => strtolower( $fs->get_text_inline( 'Contact', 'contact' ) ),
|
75 |
);
|
76 |
fs_require_once_template('secure-https-header.php', $view_params);
|
77 |
|
freemius/templates/debug.php
CHANGED
@@ -13,17 +13,20 @@
|
|
13 |
global $fs_active_plugins;
|
14 |
|
15 |
$fs_options = FS_Option_Manager::get_manager( WP_FS__ACCOUNTS_OPTION_NAME, true );
|
|
|
|
|
|
|
16 |
?>
|
17 |
-
<h1><?php echo
|
18 |
<div>
|
19 |
<!-- Debugging Switch -->
|
20 |
<?php //$debug_mode = get_option( 'fs_debug_mode', null ) ?>
|
21 |
-
<span class="switch-label"><?php
|
22 |
|
23 |
<div class="switch <?php echo WP_FS__DEBUG_SDK ? 'off' : 'on' ?>">
|
24 |
<div class="toggle"></div>
|
25 |
-
<span class="on"><?php
|
26 |
-
<span class="off"><?php
|
27 |
</div>
|
28 |
<script type="text/javascript">
|
29 |
(function ($) {
|
@@ -48,7 +51,7 @@
|
|
48 |
}(jQuery));
|
49 |
</script>
|
50 |
</div>
|
51 |
-
<h2><?php
|
52 |
<table>
|
53 |
<tbody>
|
54 |
<tr>
|
@@ -58,28 +61,28 @@
|
|
58 |
<input type="hidden" name="fs_action" value="restart_freemius">
|
59 |
<?php wp_nonce_field( 'restart_freemius' ) ?>
|
60 |
<button class="button button-primary"
|
61 |
-
onclick="if (confirm('<?php
|
62 |
</form>
|
63 |
</td>
|
64 |
<td>
|
65 |
<!-- Clear API Cache -->
|
66 |
<form action="" method="POST">
|
67 |
<input type="hidden" name="fs_clear_api_cache" value="true">
|
68 |
-
<button class="button button-primary"><?php
|
69 |
</form>
|
70 |
</td>
|
71 |
<td>
|
72 |
<!-- Sync Data with Server -->
|
73 |
<form action="" method="POST">
|
74 |
<input type="hidden" name="background_sync" value="true">
|
75 |
-
<button class="button button-primary"><?php
|
76 |
</form>
|
77 |
</td>
|
78 |
<td>
|
79 |
-
<button id="fs_load_db_option" class="button"><?php
|
80 |
</td>
|
81 |
<td>
|
82 |
-
<button id="fs_set_db_option" class="button"><?php
|
83 |
</td>
|
84 |
</tr>
|
85 |
</tbody>
|
@@ -156,8 +159,8 @@
|
|
156 |
<table class="widefat">
|
157 |
<thead>
|
158 |
<tr>
|
159 |
-
<th><?php
|
160 |
-
<th><?php
|
161 |
</tr>
|
162 |
</thead>
|
163 |
<tbody>
|
@@ -173,14 +176,14 @@
|
|
173 |
<?php endforeach ?>
|
174 |
</tbody>
|
175 |
</table>
|
176 |
-
<h2><?php
|
177 |
<table id="fs_sdks" class="widefat">
|
178 |
<thead>
|
179 |
<tr>
|
180 |
-
<th><?php
|
181 |
-
<th><?php
|
182 |
-
<th><?php
|
183 |
-
<th><?php
|
184 |
</tr>
|
185 |
</thead>
|
186 |
<tbody>
|
@@ -208,19 +211,19 @@
|
|
208 |
<?php foreach ( $module_types as $module_type ) : ?>
|
209 |
<?php $modules = $fs_options->get_option( $module_type . 's' ) ?>
|
210 |
<?php if ( is_array( $modules ) && count( $modules ) > 0 ) : ?>
|
211 |
-
<h2><?php
|
212 |
<table id="fs_<?php echo $module_type ?>" class="widefat">
|
213 |
<thead>
|
214 |
<tr>
|
215 |
-
<th><?php
|
216 |
-
<th><?php
|
217 |
-
|
218 |
-
<th><?php
|
219 |
-
<th><?php
|
220 |
-
<th><?php
|
221 |
-
|
222 |
-
<th><?php
|
223 |
-
<th><?php
|
224 |
</tr>
|
225 |
</thead>
|
226 |
<tbody>
|
@@ -248,16 +251,18 @@
|
|
248 |
<td<?php if ( $is_active && ! $fs->has_api_connectivity() ) {
|
249 |
echo ' style="color: red; text-transform: uppercase;"';
|
250 |
} ?>><?php if ( $is_active ) {
|
251 |
-
echo $fs->has_api_connectivity() ?
|
252 |
-
|
253 |
-
|
|
|
254 |
} ?></td>
|
255 |
<td<?php if ( $is_active && ! $fs->is_on() ) {
|
256 |
echo ' style="color: red; text-transform: uppercase;"';
|
257 |
} ?>><?php if ( $is_active ) {
|
258 |
-
echo $fs->is_on() ?
|
259 |
-
|
260 |
-
|
|
|
261 |
} ?></td>
|
262 |
<td><?php echo $data->file ?></td>
|
263 |
<td><?php echo $data->public_key ?></td>
|
@@ -269,11 +274,11 @@
|
|
269 |
<input type="hidden" name="module_id" value="<?php echo $fs->get_id() ?>">
|
270 |
<?php wp_nonce_field( 'simulate_trial' ) ?>
|
271 |
|
272 |
-
<button type="submit" class="button button-primary simulate-trial"><?php
|
273 |
</form>
|
274 |
<?php endif ?>
|
275 |
<?php if ( $fs->is_registered() ) : ?>
|
276 |
-
<a class="button" href="<?php echo $fs->get_account_url() ?>"><?php
|
277 |
<?php endif ?>
|
278 |
<?php endif ?>
|
279 |
</td>
|
@@ -292,17 +297,21 @@
|
|
292 |
$sites = $VARS[ $module_type . '_sites' ];
|
293 |
?>
|
294 |
<?php if ( is_array( $sites ) && count( $sites ) > 0 ) : ?>
|
295 |
-
<h2><?php
|
|
|
|
|
|
|
|
|
296 |
<table id="fs_<?php echo $module_type ?>_installs" class="widefat">
|
297 |
<thead>
|
298 |
<tr>
|
299 |
-
<th><?php
|
300 |
-
<th><?php
|
301 |
-
<th><?php
|
302 |
-
<th><?php
|
303 |
-
<th><?php
|
304 |
-
<th><?php
|
305 |
-
<th><?php
|
306 |
</tr>
|
307 |
</thead>
|
308 |
<tbody>
|
@@ -324,7 +333,7 @@
|
|
324 |
<input type="hidden" name="module_id" value="<?php echo $site->plugin_id ?>">
|
325 |
<input type="hidden" name="module_type" value="<?php echo $module_type ?>">
|
326 |
<input type="hidden" name="slug" value="<?php echo $slug ?>">
|
327 |
-
<button type="submit" class="button"><?php
|
328 |
</tr>
|
329 |
<?php endforeach ?>
|
330 |
</tbody>
|
@@ -335,17 +344,17 @@
|
|
335 |
$addons = $VARS['addons'];
|
336 |
?>
|
337 |
<?php foreach ( $addons as $plugin_id => $plugin_addons ) : ?>
|
338 |
-
<h2><?php
|
339 |
<table id="fs_addons" class="widefat">
|
340 |
<thead>
|
341 |
<tr>
|
342 |
-
<th><?php
|
343 |
-
<th><?php
|
344 |
-
<th><?php
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
</thead>
|
350 |
<tbody>
|
351 |
<?php
|
@@ -372,16 +381,16 @@
|
|
372 |
$users = $VARS['users'];
|
373 |
?>
|
374 |
<?php if ( is_array( $users ) && 0 < count( $users ) ) : ?>
|
375 |
-
<h2><?php
|
376 |
<table id="fs_users" class="widefat">
|
377 |
<thead>
|
378 |
<tr>
|
379 |
-
<th><?php
|
380 |
-
<th><?php
|
381 |
-
<th><?php
|
382 |
-
<th><?php
|
383 |
-
<th><?php
|
384 |
-
<th><?php
|
385 |
</tr>
|
386 |
</thead>
|
387 |
<tbody>
|
@@ -401,19 +410,19 @@
|
|
401 |
<?php foreach ( $module_types as $module_type ) : ?>
|
402 |
<?php $licenses = $VARS[ $module_type . '_licenses' ] ?>
|
403 |
<?php if ( is_array( $licenses ) && count( $licenses ) > 0 ) : ?>
|
404 |
-
<h2><?php
|
405 |
<table id="fs_<?php echo $module_type ?>_licenses" class="widefat">
|
406 |
<thead>
|
407 |
<tr>
|
408 |
-
<th><?php
|
409 |
-
<th><?php
|
410 |
-
<th><?php
|
411 |
-
<th><?php
|
412 |
-
<th><?php
|
413 |
-
<th><?php
|
414 |
-
<th><?php
|
415 |
-
<th><?php
|
416 |
-
<th><?php
|
417 |
</tr>
|
418 |
</thead>
|
419 |
<tbody>
|
@@ -442,29 +451,29 @@
|
|
442 |
<?php endforeach ?>
|
443 |
<?php if ( FS_Logger::is_storage_logging_on() ) : ?>
|
444 |
|
445 |
-
<h2><?php
|
446 |
|
447 |
<div id="fs_debug_filters">
|
448 |
<select name="type">
|
449 |
-
<option value="" selected="selected"><?php
|
450 |
<option value="warn_error">Warnings & Errors</option>
|
451 |
<option value="error">Errors</option>
|
452 |
<option value="warn">Warnings</option>
|
453 |
<option value="info">Info</option>
|
454 |
</select>
|
455 |
<select name="request_type">
|
456 |
-
<option value="" selected="selected"><?php
|
457 |
<option value="call">Sync</option>
|
458 |
<option value="ajax">AJAX</option>
|
459 |
<option value="cron">WP Cron</option>
|
460 |
</select>
|
461 |
-
<input name="file" type="text" placeholder="<?php
|
462 |
-
<input name="function" type="text" placeholder="<?php
|
463 |
-
<input name="process_id" type="text" placeholder="<?php
|
464 |
-
<input name="logger" type="text" placeholder="<?php
|
465 |
-
<input name="message" type="text" placeholder="<?php
|
466 |
<div style="margin: 10px 0">
|
467 |
-
<button id="fs_filter" class="button" style="float: left"><i class="dashicons dashicons-filter"></i> <?php
|
468 |
</button>
|
469 |
|
470 |
<form action="" method="POST" style="float: left; margin-left: 10px;">
|
@@ -472,7 +481,7 @@
|
|
472 |
<?php wp_nonce_field( 'download_logs' ) ?>
|
473 |
<div class="fs-filters"></div>
|
474 |
<button id="fs_download" class="button" type="submit"><i
|
475 |
-
class="dashicons dashicons-download"></i> <?php
|
476 |
</form>
|
477 |
<div style="clear: both"></div>
|
478 |
</div>
|
@@ -483,12 +492,12 @@
|
|
483 |
<thead>
|
484 |
<tr>
|
485 |
<th>#</th>
|
486 |
-
<th><?php
|
487 |
-
<th><?php
|
488 |
-
<th><?php
|
489 |
-
<th><?php
|
490 |
-
<th><?php
|
491 |
-
<th><?php
|
492 |
</tr>
|
493 |
</thead>
|
494 |
<tbody>
|
13 |
global $fs_active_plugins;
|
14 |
|
15 |
$fs_options = FS_Option_Manager::get_manager( WP_FS__ACCOUNTS_OPTION_NAME, true );
|
16 |
+
|
17 |
+
$off_text = fs_text_x_inline( 'Off', 'as turned off' );
|
18 |
+
$on_text = fs_text_x_inline( 'On', 'as turned on' );
|
19 |
?>
|
20 |
+
<h1><?php echo fs_text_inline( 'Freemius Debug' ) . ' - ' . fs_text_inline( 'SDK' ) . ' v.' . $fs_active_plugins->newest->version ?></h1>
|
21 |
<div>
|
22 |
<!-- Debugging Switch -->
|
23 |
<?php //$debug_mode = get_option( 'fs_debug_mode', null ) ?>
|
24 |
+
<span class="switch-label"><?php fs_esc_html_echo_x_inline( 'Debugging', 'as code debugging' ) ?></span>
|
25 |
|
26 |
<div class="switch <?php echo WP_FS__DEBUG_SDK ? 'off' : 'on' ?>">
|
27 |
<div class="toggle"></div>
|
28 |
+
<span class="on"><?php echo esc_html( $on_text ) ?></span>
|
29 |
+
<span class="off"><?php echo esc_html( $off_text ) ?></span>
|
30 |
</div>
|
31 |
<script type="text/javascript">
|
32 |
(function ($) {
|
51 |
}(jQuery));
|
52 |
</script>
|
53 |
</div>
|
54 |
+
<h2><?php fs_esc_html_echo_inline( 'Actions', 'actions' ) ?></h2>
|
55 |
<table>
|
56 |
<tbody>
|
57 |
<tr>
|
61 |
<input type="hidden" name="fs_action" value="restart_freemius">
|
62 |
<?php wp_nonce_field( 'restart_freemius' ) ?>
|
63 |
<button class="button button-primary"
|
64 |
+
onclick="if (confirm('<?php fs_esc_attr_echo_inline( 'Are you sure you want to delete all Freemius data?', 'delete-all-confirm' ) ?>')) this.parentNode.submit(); return false;"><?php fs_esc_html_echo_inline( 'Delete All Accounts' ) ?></button>
|
65 |
</form>
|
66 |
</td>
|
67 |
<td>
|
68 |
<!-- Clear API Cache -->
|
69 |
<form action="" method="POST">
|
70 |
<input type="hidden" name="fs_clear_api_cache" value="true">
|
71 |
+
<button class="button button-primary"><?php fs_esc_html_echo_inline( 'Clear API Cache' ) ?></button>
|
72 |
</form>
|
73 |
</td>
|
74 |
<td>
|
75 |
<!-- Sync Data with Server -->
|
76 |
<form action="" method="POST">
|
77 |
<input type="hidden" name="background_sync" value="true">
|
78 |
+
<button class="button button-primary"><?php fs_esc_html_echo_inline( 'Sync Data From Server' ) ?></button>
|
79 |
</form>
|
80 |
</td>
|
81 |
<td>
|
82 |
+
<button id="fs_load_db_option" class="button"><?php fs_esc_html_echo_inline( 'Load DB Option' ) ?></button>
|
83 |
</td>
|
84 |
<td>
|
85 |
+
<button id="fs_set_db_option" class="button"><?php fs_esc_html_echo_inline( 'Set DB Option' ) ?></button>
|
86 |
</td>
|
87 |
</tr>
|
88 |
</tbody>
|
159 |
<table class="widefat">
|
160 |
<thead>
|
161 |
<tr>
|
162 |
+
<th><?php fs_esc_html_echo_inline( 'Key', 'key' ) ?></th>
|
163 |
+
<th><?php fs_esc_html_echo_inline( 'Value', 'value' ) ?></th>
|
164 |
</tr>
|
165 |
</thead>
|
166 |
<tbody>
|
176 |
<?php endforeach ?>
|
177 |
</tbody>
|
178 |
</table>
|
179 |
+
<h2><?php fs_esc_html_echo_x_inline( 'SDK Versions', 'as software development kit versions', 'sdk-versions' ) ?></h2>
|
180 |
<table id="fs_sdks" class="widefat">
|
181 |
<thead>
|
182 |
<tr>
|
183 |
+
<th><?php fs_esc_html_echo_x_inline( 'Version', 'product version' ) ?></th>
|
184 |
+
<th><?php fs_esc_html_echo_inline( 'SDK Path' ) ?></th>
|
185 |
+
<th><?php fs_esc_html_echo_inline( 'Module Path' ) ?></th>
|
186 |
+
<th><?php fs_esc_html_echo_inline( 'Is Active' ) ?></th>
|
187 |
</tr>
|
188 |
</thead>
|
189 |
<tbody>
|
211 |
<?php foreach ( $module_types as $module_type ) : ?>
|
212 |
<?php $modules = $fs_options->get_option( $module_type . 's' ) ?>
|
213 |
<?php if ( is_array( $modules ) && count( $modules ) > 0 ) : ?>
|
214 |
+
<h2><?php echo esc_html( ( WP_FS__MODULE_TYPE_PLUGIN == $module_type ) ? fs_text_inline( 'Plugins', 'plugins' ) : fs_text_inline( 'Themes', 'themes' ) ) ?></h2>
|
215 |
<table id="fs_<?php echo $module_type ?>" class="widefat">
|
216 |
<thead>
|
217 |
<tr>
|
218 |
+
<th><?php fs_esc_html_echo_inline( 'ID', 'id' ) ?></th>
|
219 |
+
<th><?php fs_esc_html_echo_inline( 'Slug' ) ?></th>
|
220 |
+
<th><?php fs_esc_html_echo_x_inline( 'Version', 'product version' ) ?></th>
|
221 |
+
<th><?php fs_esc_html_echo_inline( 'Title' ) ?></th>
|
222 |
+
<th><?php fs_esc_html_echo_x_inline( 'API', 'as application program interface' ) ?></th>
|
223 |
+
<th><?php fs_esc_html_echo_inline( 'Freemius State' ) ?></th>
|
224 |
+
<th><?php fs_esc_html_echo_inline( 'Module Path' ) ?></th>
|
225 |
+
<th><?php fs_esc_html_echo_inline( 'Public Key' ) ?></th>
|
226 |
+
<th><?php fs_esc_html_echo_inline( 'Actions' ) ?></th>
|
227 |
</tr>
|
228 |
</thead>
|
229 |
<tbody>
|
251 |
<td<?php if ( $is_active && ! $fs->has_api_connectivity() ) {
|
252 |
echo ' style="color: red; text-transform: uppercase;"';
|
253 |
} ?>><?php if ( $is_active ) {
|
254 |
+
echo esc_html( $fs->has_api_connectivity() ?
|
255 |
+
fs_text_x_inline( 'Connected', 'as connection was successful' ) :
|
256 |
+
fs_text_x_inline( 'Blocked', 'as connection blocked' )
|
257 |
+
);
|
258 |
} ?></td>
|
259 |
<td<?php if ( $is_active && ! $fs->is_on() ) {
|
260 |
echo ' style="color: red; text-transform: uppercase;"';
|
261 |
} ?>><?php if ( $is_active ) {
|
262 |
+
echo esc_html( $fs->is_on() ?
|
263 |
+
$on_text :
|
264 |
+
$off_text
|
265 |
+
);
|
266 |
} ?></td>
|
267 |
<td><?php echo $data->file ?></td>
|
268 |
<td><?php echo $data->public_key ?></td>
|
274 |
<input type="hidden" name="module_id" value="<?php echo $fs->get_id() ?>">
|
275 |
<?php wp_nonce_field( 'simulate_trial' ) ?>
|
276 |
|
277 |
+
<button type="submit" class="button button-primary simulate-trial"><?php fs_esc_html_echo_inline( 'Simulate Trial' ) ?></button>
|
278 |
</form>
|
279 |
<?php endif ?>
|
280 |
<?php if ( $fs->is_registered() ) : ?>
|
281 |
+
<a class="button" href="<?php echo $fs->get_account_url() ?>"><?php fs_esc_html_echo_inline( 'Account', 'account' ) ?></a>
|
282 |
<?php endif ?>
|
283 |
<?php endif ?>
|
284 |
</td>
|
297 |
$sites = $VARS[ $module_type . '_sites' ];
|
298 |
?>
|
299 |
<?php if ( is_array( $sites ) && count( $sites ) > 0 ) : ?>
|
300 |
+
<h2><?php echo esc_html( sprintf(
|
301 |
+
/* translators: %s: 'plugin' or 'theme' */
|
302 |
+
fs_text_inline( '%s Installs', 'module-installs' ),
|
303 |
+
( WP_FS__MODULE_TYPE_PLUGIN === $module_type ? fs_text_inline( 'Plugin', 'plugin' ) : fs_text_inline( 'Theme', 'theme' ) )
|
304 |
+
) ) ?> / <?php fs_esc_html_echo_x_inline( 'Sites', 'like websites', 'sites' ) ?></h2>
|
305 |
<table id="fs_<?php echo $module_type ?>_installs" class="widefat">
|
306 |
<thead>
|
307 |
<tr>
|
308 |
+
<th><?php fs_esc_html_echo_inline( 'ID', 'id' ) ?></th>
|
309 |
+
<th><?php fs_esc_html_echo_inline( 'Slug' ) ?></th>
|
310 |
+
<th><?php fs_esc_html_echo_inline( 'User ID' ) ?></th>
|
311 |
+
<th><?php fs_esc_html_echo_x_inline( 'Plan', 'as product pricing plan', 'plan' ) ?></th>
|
312 |
+
<th><?php fs_esc_html_echo_inline( 'Public Key' ) ?></th>
|
313 |
+
<th><?php fs_esc_html_echo_inline( 'Secret Key' ) ?></th>
|
314 |
+
<th><?php fs_esc_html_echo_inline( 'Actions' ) ?></th>
|
315 |
</tr>
|
316 |
</thead>
|
317 |
<tbody>
|
333 |
<input type="hidden" name="module_id" value="<?php echo $site->plugin_id ?>">
|
334 |
<input type="hidden" name="module_type" value="<?php echo $module_type ?>">
|
335 |
<input type="hidden" name="slug" value="<?php echo $slug ?>">
|
336 |
+
<button type="submit" class="button"><?php fs_esc_html_echo_x_inline( 'Delete', 'verb', 'delete' ) ?></button></td>
|
337 |
</tr>
|
338 |
<?php endforeach ?>
|
339 |
</tbody>
|
344 |
$addons = $VARS['addons'];
|
345 |
?>
|
346 |
<?php foreach ( $addons as $plugin_id => $plugin_addons ) : ?>
|
347 |
+
<h2><?php echo esc_html( sprintf( fs_text_inline( 'Add Ons of module %s', 'addons-of-x' ), $plugin_id ) ) ?></h2>
|
348 |
<table id="fs_addons" class="widefat">
|
349 |
<thead>
|
350 |
<tr>
|
351 |
+
<th><?php fs_esc_html_echo_inline( 'ID', 'id' ) ?></th>
|
352 |
+
<th><?php fs_esc_html_echo_inline( 'Title' ) ?></th>
|
353 |
+
<th><?php fs_esc_html_echo_inline( 'Slug' ) ?></th>
|
354 |
+
<th><?php fs_esc_html_echo_x_inline( 'Version', 'product version' ) ?></th>
|
355 |
+
<th><?php fs_esc_html_echo_inline( 'Public Key' ) ?></th>
|
356 |
+
<th><?php fs_esc_html_echo_inline( 'Secret Key' ) ?></th>
|
357 |
+
</tr>
|
358 |
</thead>
|
359 |
<tbody>
|
360 |
<?php
|
381 |
$users = $VARS['users'];
|
382 |
?>
|
383 |
<?php if ( is_array( $users ) && 0 < count( $users ) ) : ?>
|
384 |
+
<h2><?php fs_esc_html_echo_inline( 'Users' ) ?></h2>
|
385 |
<table id="fs_users" class="widefat">
|
386 |
<thead>
|
387 |
<tr>
|
388 |
+
<th><?php fs_esc_html_echo_inline( 'ID', 'id' ) ?></th>
|
389 |
+
<th><?php fs_esc_html_echo_inline( 'Name' ) ?></th>
|
390 |
+
<th><?php fs_esc_html_echo_inline( 'Email' ) ?></th>
|
391 |
+
<th><?php fs_esc_html_echo_inline( 'Verified' ) ?></th>
|
392 |
+
<th><?php fs_esc_html_echo_inline( 'Public Key' ) ?></th>
|
393 |
+
<th><?php fs_esc_html_echo_inline( 'Secret Key' ) ?></th>
|
394 |
</tr>
|
395 |
</thead>
|
396 |
<tbody>
|
410 |
<?php foreach ( $module_types as $module_type ) : ?>
|
411 |
<?php $licenses = $VARS[ $module_type . '_licenses' ] ?>
|
412 |
<?php if ( is_array( $licenses ) && count( $licenses ) > 0 ) : ?>
|
413 |
+
<h2><?php echo esc_html( sprintf( fs_text_inline( '%s Licenses', 'module-licenses' ), ( WP_FS__MODULE_TYPE_PLUGIN === $module_type ? fs_text_inline( 'Plugin', 'plugin' ) : fs_text_inline( 'Theme', 'theme' ) ) ) ) ?></h2>
|
414 |
<table id="fs_<?php echo $module_type ?>_licenses" class="widefat">
|
415 |
<thead>
|
416 |
<tr>
|
417 |
+
<th><?php fs_esc_html_echo_inline( 'ID', 'id' ) ?></th>
|
418 |
+
<th><?php fs_esc_html_echo_inline( 'Plugin ID' ) ?></th>
|
419 |
+
<th><?php fs_esc_html_echo_inline( 'User ID' ) ?></th>
|
420 |
+
<th><?php fs_esc_html_echo_inline( 'Plan ID' ) ?></th>
|
421 |
+
<th><?php fs_esc_html_echo_inline( 'Quota' ) ?></th>
|
422 |
+
<th><?php fs_esc_html_echo_inline( 'Activated' ) ?></th>
|
423 |
+
<th><?php fs_esc_html_echo_inline( 'Blocking' ) ?></th>
|
424 |
+
<th><?php fs_esc_html_echo_inline( 'License Key' ) ?></th>
|
425 |
+
<th><?php fs_esc_html_echo_x_inline( 'Expiration', 'as expiration date' ) ?></th>
|
426 |
</tr>
|
427 |
</thead>
|
428 |
<tbody>
|
451 |
<?php endforeach ?>
|
452 |
<?php if ( FS_Logger::is_storage_logging_on() ) : ?>
|
453 |
|
454 |
+
<h2><?php fs_esc_html_echo_inline( 'Debug Log', 'debug-log' ) ?></h2>
|
455 |
|
456 |
<div id="fs_debug_filters">
|
457 |
<select name="type">
|
458 |
+
<option value="" selected="selected"><?php fs_esc_html_echo_inline( 'All Types', 'all-types' ) ?></option>
|
459 |
<option value="warn_error">Warnings & Errors</option>
|
460 |
<option value="error">Errors</option>
|
461 |
<option value="warn">Warnings</option>
|
462 |
<option value="info">Info</option>
|
463 |
</select>
|
464 |
<select name="request_type">
|
465 |
+
<option value="" selected="selected"><?php fs_esc_html_echo_inline( 'All Requests', 'all-requests' ) ?></option>
|
466 |
<option value="call">Sync</option>
|
467 |
<option value="ajax">AJAX</option>
|
468 |
<option value="cron">WP Cron</option>
|
469 |
</select>
|
470 |
+
<input name="file" type="text" placeholder="<?php fs_esc_attr_echo_inline( 'File' ) ?>"/>
|
471 |
+
<input name="function" type="text" placeholder="<?php fs_esc_attr_echo_inline( 'Function' ) ?>"/>
|
472 |
+
<input name="process_id" type="text" placeholder="<?php fs_esc_attr_echo_inline( 'Process ID' ) ?>"/>
|
473 |
+
<input name="logger" type="text" placeholder="<?php fs_esc_attr_echo_inline( 'Logger' ) ?>"/>
|
474 |
+
<input name="message" type="text" placeholder="<?php fs_esc_attr_echo_inline( 'Message' ) ?>"/>
|
475 |
<div style="margin: 10px 0">
|
476 |
+
<button id="fs_filter" class="button" style="float: left"><i class="dashicons dashicons-filter"></i> <?php fs_esc_html_echo_inline( 'Filter', 'filter' ) ?>
|
477 |
</button>
|
478 |
|
479 |
<form action="" method="POST" style="float: left; margin-left: 10px;">
|
481 |
<?php wp_nonce_field( 'download_logs' ) ?>
|
482 |
<div class="fs-filters"></div>
|
483 |
<button id="fs_download" class="button" type="submit"><i
|
484 |
+
class="dashicons dashicons-download"></i> <?php fs_esc_html_echo_inline( 'Download' ) ?></button>
|
485 |
</form>
|
486 |
<div style="clear: both"></div>
|
487 |
</div>
|
492 |
<thead>
|
493 |
<tr>
|
494 |
<th>#</th>
|
495 |
+
<th><?php fs_esc_html_echo_inline( 'Type' ) ?></th>
|
496 |
+
<th><?php fs_esc_html_echo_inline( 'ID', 'id' ) ?></th>
|
497 |
+
<th><?php fs_esc_html_echo_inline( 'Function' ) ?></th>
|
498 |
+
<th><?php fs_esc_html_echo_inline( 'Message' ) ?></th>
|
499 |
+
<th><?php fs_esc_html_echo_inline( 'File' ) ?></th>
|
500 |
+
<th><?php fs_esc_html_echo_inline( 'Timestamp' ) ?></th>
|
501 |
</tr>
|
502 |
</thead>
|
503 |
<tbody>
|
freemius/templates/debug/api-calls.php
CHANGED
@@ -50,8 +50,10 @@
|
|
50 |
$encode = 'json_encode';
|
51 |
|
52 |
$root_path_len = strlen( ABSPATH );
|
|
|
|
|
53 |
?>
|
54 |
-
<h1><?php
|
55 |
|
56 |
<h2><span>Total Time:</span><?php echo Freemius_Debug_Bar_Panel::total_time() ?></h2>
|
57 |
|
@@ -63,16 +65,16 @@
|
|
63 |
<thead>
|
64 |
<tr>
|
65 |
<th>#</th>
|
66 |
-
<th><?php
|
67 |
-
<th><?php
|
68 |
-
<th><?php
|
69 |
-
<th><?php
|
70 |
<?php if ( $show_body ) : ?>
|
71 |
-
<th><?php
|
72 |
<?php endif ?>
|
73 |
-
<th><?php
|
74 |
-
<th><?php
|
75 |
-
<th><?php
|
76 |
</tr>
|
77 |
</thead>
|
78 |
<tbody>
|
@@ -81,7 +83,7 @@
|
|
81 |
<td><?php echo $log['id'] ?>.</td>
|
82 |
<td><?php echo $log['method'] ?></td>
|
83 |
<td><?php echo $log['code'] ?></td>
|
84 |
-
<td><?php echo number_format( 100 * $log['total'], 2 ) . ' ' .
|
85 |
<td>
|
86 |
<?php
|
87 |
printf( '<a href="#" onclick="jQuery(this).parent().find(\'table\').toggle(); return false;">%s</a>',
|
@@ -145,8 +147,8 @@
|
|
145 |
?>
|
146 |
<pre<?php if ( $is_not_empty_result ) : ?> style="display: none"<?php endif ?>><code><?php echo esc_html( $result ) ?></code></pre>
|
147 |
</td>
|
148 |
-
<td><?php echo number_format( 100 * ( $log['start'] - WP_FS__SCRIPT_START_TIME ), 2 ) . ' ' .
|
149 |
-
<td><?php echo number_format( 100 * ( $log['end'] - WP_FS__SCRIPT_START_TIME ), 2 ) . ' ' .
|
150 |
</tr>
|
151 |
<?php endforeach ?>
|
152 |
</tbody>
|
50 |
$encode = 'json_encode';
|
51 |
|
52 |
$root_path_len = strlen( ABSPATH );
|
53 |
+
|
54 |
+
$ms_text = fs_text_x_inline( 'ms', 'milliseconds' );
|
55 |
?>
|
56 |
+
<h1><?php fs_echo_inline( 'API' ) ?></h1>
|
57 |
|
58 |
<h2><span>Total Time:</span><?php echo Freemius_Debug_Bar_Panel::total_time() ?></h2>
|
59 |
|
65 |
<thead>
|
66 |
<tr>
|
67 |
<th>#</th>
|
68 |
+
<th><?php fs_esc_html_echo_inline( 'Method' ) ?></th>
|
69 |
+
<th><?php fs_esc_html_echo_inline( 'Code' ) ?></th>
|
70 |
+
<th><?php fs_esc_html_echo_inline( 'Length' ) ?></th>
|
71 |
+
<th><?php fs_esc_html_echo_x_inline( 'Path', 'as file/folder path' ) ?></th>
|
72 |
<?php if ( $show_body ) : ?>
|
73 |
+
<th><?php fs_esc_html_echo_inline( 'Body' ) ?></th>
|
74 |
<?php endif ?>
|
75 |
+
<th><?php fs_esc_html_echo_inline( 'Result' ) ?></th>
|
76 |
+
<th><?php fs_esc_html_echo_inline( 'Start' ) ?></th>
|
77 |
+
<th><?php fs_esc_html_echo_inline( 'End' ) ?></th>
|
78 |
</tr>
|
79 |
</thead>
|
80 |
<tbody>
|
83 |
<td><?php echo $log['id'] ?>.</td>
|
84 |
<td><?php echo $log['method'] ?></td>
|
85 |
<td><?php echo $log['code'] ?></td>
|
86 |
+
<td><?php echo number_format( 100 * $log['total'], 2 ) . ' ' . $ms_text ?></td>
|
87 |
<td>
|
88 |
<?php
|
89 |
printf( '<a href="#" onclick="jQuery(this).parent().find(\'table\').toggle(); return false;">%s</a>',
|
147 |
?>
|
148 |
<pre<?php if ( $is_not_empty_result ) : ?> style="display: none"<?php endif ?>><code><?php echo esc_html( $result ) ?></code></pre>
|
149 |
</td>
|
150 |
+
<td><?php echo number_format( 100 * ( $log['start'] - WP_FS__SCRIPT_START_TIME ), 2 ) . ' ' . $ms_text ?></td>
|
151 |
+
<td><?php echo number_format( 100 * ( $log['end'] - WP_FS__SCRIPT_START_TIME ), 2 ) . ' ' . $ms_text ?></td>
|
152 |
</tr>
|
153 |
<?php endforeach ?>
|
154 |
</tbody>
|
freemius/templates/debug/logger.php
CHANGED
@@ -12,18 +12,18 @@
|
|
12 |
|
13 |
$log_book = FS_Logger::get_log();
|
14 |
?>
|
15 |
-
<h1><?php
|
16 |
|
17 |
<table class="widefat" style="font-size: 11px;">
|
18 |
<thead>
|
19 |
<tr>
|
20 |
<th>#</th>
|
21 |
-
<th><?php
|
22 |
-
<th><?php
|
23 |
-
<th><?php
|
24 |
-
<th><?php
|
25 |
-
<th><?php
|
26 |
-
<th><?php
|
27 |
</tr>
|
28 |
</thead>
|
29 |
<tbody>
|
@@ -59,7 +59,7 @@
|
|
59 |
echo substr( $log['file'], $logger->get_file() ) . ':' . $log['line'];
|
60 |
}
|
61 |
?></td>
|
62 |
-
<td><?php echo number_format( 100 * ( $log['timestamp'] - WP_FS__SCRIPT_START_TIME ), 2 ) . ' ' .
|
63 |
</tr>
|
64 |
<?php $i ++; endforeach ?>
|
65 |
</tbody>
|
12 |
|
13 |
$log_book = FS_Logger::get_log();
|
14 |
?>
|
15 |
+
<h1><?php fs_echo_inline( 'Log' ) ?></h1>
|
16 |
|
17 |
<table class="widefat" style="font-size: 11px;">
|
18 |
<thead>
|
19 |
<tr>
|
20 |
<th>#</th>
|
21 |
+
<th><?php fs_esc_html_echo_inline( 'ID', 'id' ) ?></th>
|
22 |
+
<th><?php fs_esc_html_echo_inline( 'Type' ) ?></th>
|
23 |
+
<th><?php fs_esc_html_echo_inline( 'Function' ) ?></th>
|
24 |
+
<th><?php fs_esc_html_echo_inline( 'Message' ) ?></th>
|
25 |
+
<th><?php fs_esc_html_echo_inline( 'File' ) ?></th>
|
26 |
+
<th><?php fs_esc_html_echo_inline( 'Timestamp' ) ?></th>
|
27 |
</tr>
|
28 |
</thead>
|
29 |
<tbody>
|
59 |
echo substr( $log['file'], $logger->get_file() ) . ':' . $log['line'];
|
60 |
}
|
61 |
?></td>
|
62 |
+
<td><?php echo number_format( 100 * ( $log['timestamp'] - WP_FS__SCRIPT_START_TIME ), 2 ) . ' ' . fs_text_x_inline( 'ms', 'milliseconds' ) ?></td>
|
63 |
</tr>
|
64 |
<?php $i ++; endforeach ?>
|
65 |
</tbody>
|
freemius/templates/debug/plugins-themes-sync.php
CHANGED
@@ -13,53 +13,61 @@
|
|
13 |
$fs_options = FS_Option_Manager::get_manager( WP_FS__ACCOUNTS_OPTION_NAME, true );
|
14 |
$all_plugins = $fs_options->get_option( 'all_plugins' );
|
15 |
$all_themes = $fs_options->get_option( 'all_themes' );
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
?>
|
17 |
-
<h1><?php
|
18 |
<table class="widefat">
|
19 |
<thead>
|
20 |
<tr>
|
21 |
<th></th>
|
22 |
-
<th><?php
|
23 |
-
<th><?php
|
24 |
</tr>
|
25 |
</thead>
|
26 |
<tbody>
|
27 |
<?php if ( is_object( $all_plugins ) ) : ?>
|
28 |
<tr>
|
29 |
-
<td><?php
|
30 |
<td><?php echo count( $all_plugins->plugins ) ?></td>
|
31 |
<td><?php
|
32 |
if ( isset( $all_plugins->timestamp ) && is_numeric( $all_plugins->timestamp ) ) {
|
33 |
$diff = abs( WP_FS__SCRIPT_START_TIME - $all_plugins->timestamp );
|
34 |
$human_diff = ( $diff < MINUTE_IN_SECONDS ) ?
|
35 |
-
$diff . ' ' .
|
36 |
human_time_diff( WP_FS__SCRIPT_START_TIME, $all_plugins->timestamp );
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
|
|
43 |
}
|
44 |
?></td>
|
45 |
</tr>
|
46 |
<?php endif ?>
|
47 |
<?php if ( is_object( $all_themes ) ) : ?>
|
48 |
<tr>
|
49 |
-
<td><?php
|
50 |
<td><?php echo count( $all_themes->themes ) ?></td>
|
51 |
<td><?php
|
52 |
if ( isset( $all_themes->timestamp ) && is_numeric( $all_themes->timestamp ) ) {
|
53 |
$diff = abs( WP_FS__SCRIPT_START_TIME - $all_themes->timestamp );
|
54 |
$human_diff = ( $diff < MINUTE_IN_SECONDS ) ?
|
55 |
-
$diff . ' ' .
|
56 |
human_time_diff( WP_FS__SCRIPT_START_TIME, $all_themes->timestamp );
|
57 |
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
|
|
63 |
}
|
64 |
?></td>
|
65 |
</tr>
|
13 |
$fs_options = FS_Option_Manager::get_manager( WP_FS__ACCOUNTS_OPTION_NAME, true );
|
14 |
$all_plugins = $fs_options->get_option( 'all_plugins' );
|
15 |
$all_themes = $fs_options->get_option( 'all_themes' );
|
16 |
+
|
17 |
+
/* translators: %s: time period (e.g. In "2 hours") */
|
18 |
+
$in_x_text = fs_text_inline( 'In %s', 'in-x' );
|
19 |
+
/* translators: %s: time period (e.g. "2 hours" ago) */
|
20 |
+
$x_ago_text = fs_text_inline( '%s ago', 'x-ago' );
|
21 |
+
$sec_text = fs_text_x_inline( 'sec', 'seconds' );
|
22 |
?>
|
23 |
+
<h1><?php fs_esc_html_echo_inline( 'Plugins & Themes Sync', 'plugins-themes-sync' ) ?></h1>
|
24 |
<table class="widefat">
|
25 |
<thead>
|
26 |
<tr>
|
27 |
<th></th>
|
28 |
+
<th><?php fs_esc_html_echo_inline( 'Total', 'total' ) ?></th>
|
29 |
+
<th><?php fs_esc_html_echo_inline( 'Last', 'last' ) ?></th>
|
30 |
</tr>
|
31 |
</thead>
|
32 |
<tbody>
|
33 |
<?php if ( is_object( $all_plugins ) ) : ?>
|
34 |
<tr>
|
35 |
+
<td><?php fs_esc_html_echo_inline( 'Plugins', 'plugins' ) ?></td>
|
36 |
<td><?php echo count( $all_plugins->plugins ) ?></td>
|
37 |
<td><?php
|
38 |
if ( isset( $all_plugins->timestamp ) && is_numeric( $all_plugins->timestamp ) ) {
|
39 |
$diff = abs( WP_FS__SCRIPT_START_TIME - $all_plugins->timestamp );
|
40 |
$human_diff = ( $diff < MINUTE_IN_SECONDS ) ?
|
41 |
+
$diff . ' ' . $sec_text :
|
42 |
human_time_diff( WP_FS__SCRIPT_START_TIME, $all_plugins->timestamp );
|
43 |
|
44 |
+
echo esc_html( sprintf(
|
45 |
+
( ( WP_FS__SCRIPT_START_TIME < $all_plugins->timestamp ) ?
|
46 |
+
$in_x_text :
|
47 |
+
$x_ago_text ),
|
48 |
+
$human_diff
|
49 |
+
) );
|
50 |
}
|
51 |
?></td>
|
52 |
</tr>
|
53 |
<?php endif ?>
|
54 |
<?php if ( is_object( $all_themes ) ) : ?>
|
55 |
<tr>
|
56 |
+
<td><?php fs_esc_html_echo_inline( 'Themes', 'themes' ) ?></td>
|
57 |
<td><?php echo count( $all_themes->themes ) ?></td>
|
58 |
<td><?php
|
59 |
if ( isset( $all_themes->timestamp ) && is_numeric( $all_themes->timestamp ) ) {
|
60 |
$diff = abs( WP_FS__SCRIPT_START_TIME - $all_themes->timestamp );
|
61 |
$human_diff = ( $diff < MINUTE_IN_SECONDS ) ?
|
62 |
+
$diff . ' ' . $sec_text :
|
63 |
human_time_diff( WP_FS__SCRIPT_START_TIME, $all_themes->timestamp );
|
64 |
|
65 |
+
echo esc_html( sprintf(
|
66 |
+
( ( WP_FS__SCRIPT_START_TIME < $all_themes->timestamp ) ?
|
67 |
+
$in_x_text :
|
68 |
+
$x_ago_text ),
|
69 |
+
$human_diff
|
70 |
+
) );
|
71 |
}
|
72 |
?></td>
|
73 |
</tr>
|
freemius/templates/debug/scheduled-crons.php
CHANGED
@@ -71,20 +71,28 @@
|
|
71 |
}
|
72 |
}
|
73 |
}
|
|
|
|
|
74 |
?>
|
75 |
-
<h1><?php
|
76 |
<table class="widefat">
|
77 |
<thead>
|
78 |
<tr>
|
79 |
-
<th><?php
|
80 |
-
<th><?php
|
81 |
-
<th><?php
|
82 |
-
<th><?php
|
83 |
-
<th><?php
|
84 |
-
<th><?php
|
85 |
</tr>
|
86 |
</thead>
|
87 |
<tbody>
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
<?php foreach ( $scheduled_crons as $slug => $crons ) : ?>
|
89 |
<?php foreach ( $crons as $cron ) : ?>
|
90 |
<tr>
|
@@ -96,30 +104,30 @@
|
|
96 |
if ( is_numeric( $cron['last'] ) ) {
|
97 |
$diff = abs( WP_FS__SCRIPT_START_TIME - $cron['last'] );
|
98 |
$human_diff = ( $diff < MINUTE_IN_SECONDS ) ?
|
99 |
-
$diff . ' ' .
|
100 |
human_time_diff( WP_FS__SCRIPT_START_TIME, $cron['last'] );
|
101 |
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
// echo ' ' . $cron['last'];
|
109 |
}
|
110 |
?></td>
|
111 |
<td><?php
|
112 |
if ( is_numeric( $cron['next'] ) ) {
|
113 |
$diff = abs( WP_FS__SCRIPT_START_TIME - $cron['next'] );
|
114 |
$human_diff = ( $diff < MINUTE_IN_SECONDS ) ?
|
115 |
-
$diff . ' ' .
|
116 |
human_time_diff( WP_FS__SCRIPT_START_TIME, $cron['next'] );
|
117 |
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
|
|
123 |
}
|
124 |
?></td>
|
125 |
</tr>
|
71 |
}
|
72 |
}
|
73 |
}
|
74 |
+
|
75 |
+
$sec_text = fs_text_x_inline( 'sec', 'seconds' );
|
76 |
?>
|
77 |
+
<h1><?php fs_esc_html_echo_inline( 'Scheduled Crons' ) ?></h1>
|
78 |
<table class="widefat">
|
79 |
<thead>
|
80 |
<tr>
|
81 |
+
<th><?php fs_esc_html_echo_inline( 'Slug' ) ?></th>
|
82 |
+
<th><?php fs_esc_html_echo_inline( 'Module' ) ?></th>
|
83 |
+
<th><?php fs_esc_html_echo_inline( 'Module Type' ) ?></th>
|
84 |
+
<th><?php fs_esc_html_echo_inline( 'Cron Type' ) ?></th>
|
85 |
+
<th><?php fs_esc_html_echo_inline( 'Last' ) ?></th>
|
86 |
+
<th><?php fs_esc_html_echo_inline( 'Next' ) ?></th>
|
87 |
</tr>
|
88 |
</thead>
|
89 |
<tbody>
|
90 |
+
<?php
|
91 |
+
/* translators: %s: time period (e.g. In "2 hours") */
|
92 |
+
$in_x_text = fs_text_inline( 'In %s', 'in-x' );
|
93 |
+
/* translators: %s: time period (e.g. "2 hours" ago) */
|
94 |
+
$x_ago_text = fs_text_inline( '%s ago', 'x-ago' );
|
95 |
+
?>
|
96 |
<?php foreach ( $scheduled_crons as $slug => $crons ) : ?>
|
97 |
<?php foreach ( $crons as $cron ) : ?>
|
98 |
<tr>
|
104 |
if ( is_numeric( $cron['last'] ) ) {
|
105 |
$diff = abs( WP_FS__SCRIPT_START_TIME - $cron['last'] );
|
106 |
$human_diff = ( $diff < MINUTE_IN_SECONDS ) ?
|
107 |
+
$diff . ' ' . $sec_text :
|
108 |
human_time_diff( WP_FS__SCRIPT_START_TIME, $cron['last'] );
|
109 |
|
110 |
+
echo esc_html( sprintf(
|
111 |
+
( ( WP_FS__SCRIPT_START_TIME < $cron['last'] ) ?
|
112 |
+
$in_x_text :
|
113 |
+
$x_ago_text ),
|
114 |
+
$human_diff
|
115 |
+
) );
|
|
|
116 |
}
|
117 |
?></td>
|
118 |
<td><?php
|
119 |
if ( is_numeric( $cron['next'] ) ) {
|
120 |
$diff = abs( WP_FS__SCRIPT_START_TIME - $cron['next'] );
|
121 |
$human_diff = ( $diff < MINUTE_IN_SECONDS ) ?
|
122 |
+
$diff . ' ' . $sec_text :
|
123 |
human_time_diff( WP_FS__SCRIPT_START_TIME, $cron['next'] );
|
124 |
|
125 |
+
echo esc_html( sprintf(
|
126 |
+
( ( WP_FS__SCRIPT_START_TIME < $cron['next'] ) ?
|
127 |
+
$in_x_text :
|
128 |
+
$x_ago_text ),
|
129 |
+
$human_diff
|
130 |
+
) );
|
131 |
}
|
132 |
?></td>
|
133 |
</tr>
|
freemius/templates/forms/affiliation.php
ADDED
@@ -0,0 +1,479 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
6 |
+
* @since 1.2.3
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* @var array $VARS
|
15 |
+
* @var Freemius $fs
|
16 |
+
*/
|
17 |
+
$fs = freemius( $VARS['id'] );
|
18 |
+
|
19 |
+
$slug = $fs->get_slug();
|
20 |
+
|
21 |
+
$user = $fs->get_user();
|
22 |
+
$affiliate = $fs->get_affiliate();
|
23 |
+
$affiliate_terms = $fs->get_affiliate_terms();
|
24 |
+
|
25 |
+
$plugin_title = $fs->get_plugin_title();
|
26 |
+
$module_type = $fs->is_plugin() ?
|
27 |
+
WP_FS__MODULE_TYPE_PLUGIN :
|
28 |
+
WP_FS__MODULE_TYPE_THEME ;
|
29 |
+
|
30 |
+
$commission = $affiliate_terms->get_formatted_commission();
|
31 |
+
|
32 |
+
$readonly = false;
|
33 |
+
$is_affiliate = false;
|
34 |
+
$is_pending_affiliate = false;
|
35 |
+
$email_address = ( is_object( $user ) ?
|
36 |
+
$user->email :
|
37 |
+
'' );
|
38 |
+
$full_name = ( is_object( $user ) ?
|
39 |
+
$user->get_name() :
|
40 |
+
'' );
|
41 |
+
$paypal_email_address = '';
|
42 |
+
$domain = '';
|
43 |
+
$extra_domains = array();
|
44 |
+
$promotion_method_social_media = false;
|
45 |
+
$promotion_method_mobile_apps = false;
|
46 |
+
$statistics_information = false;
|
47 |
+
$promotion_method_description = false;
|
48 |
+
$members_dashboard_login_url = 'https://members.freemius.com/login/';
|
49 |
+
|
50 |
+
$affiliate_application_data = $fs->get_affiliate_application_data();
|
51 |
+
|
52 |
+
if ( is_object( $affiliate ) ) {
|
53 |
+
$is_affiliate = true;
|
54 |
+
|
55 |
+
if ( $affiliate->is_pending() ) {
|
56 |
+
$readonly = 'readonly';
|
57 |
+
$is_pending_affiliate = true;
|
58 |
+
|
59 |
+
$paypal_email_address = $affiliate->paypal_email;
|
60 |
+
$domain = $affiliate->domain;
|
61 |
+
$statistics_information = $affiliate_application_data['stats_description'];
|
62 |
+
$promotion_method_description = $affiliate_application_data['promotion_method_description'];
|
63 |
+
|
64 |
+
if ( ! empty( $affiliate_application_data['additional_domains'] ) ) {
|
65 |
+
$extra_domains = $affiliate_application_data['additional_domains'];
|
66 |
+
}
|
67 |
+
|
68 |
+
if ( ! empty( $affiliate_application_data['promotion_methods'] ) ) {
|
69 |
+
$promotion_methods = explode( ',', $affiliate_application_data['promotion_methods'] );
|
70 |
+
$promotion_method_social_media = in_array( 'social_media', $promotion_methods );
|
71 |
+
$promotion_method_mobile_apps = in_array( 'mobile_apps', $promotion_methods );
|
72 |
+
}
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
$affiliate_tracking = 30;
|
77 |
+
|
78 |
+
if ( is_object( $affiliate_terms ) ) {
|
79 |
+
$affiliate_tracking = ( ! is_null( $affiliate_terms->cookie_days ) ?
|
80 |
+
( $affiliate_terms->cookie_days . '-day' ) :
|
81 |
+
fs_text_inline( 'Non-expiring', 'non-expiring', $slug ) );
|
82 |
+
}
|
83 |
+
|
84 |
+
$apply_to_become_affiliate_text = fs_text_inline( 'Apply to become an affiliate', 'apply-to-become-an-affiliate', $slug );
|
85 |
+
?>
|
86 |
+
<div id="fs_affiliation_content_wrapper" class="wrap">
|
87 |
+
<form method="post" action="">
|
88 |
+
<div id="poststuff">
|
89 |
+
<div class="postbox">
|
90 |
+
<div class="inside">
|
91 |
+
<div id="messages">
|
92 |
+
<div id="error_message" class="error" style="display: none">
|
93 |
+
<p><strong></strong></p>
|
94 |
+
</div>
|
95 |
+
<div id="message" class="updated" style="display: none">
|
96 |
+
<p><strong></strong></p>
|
97 |
+
</div>
|
98 |
+
<?php if ( $is_affiliate ) : ?>
|
99 |
+
<?php if ( $affiliate->is_active() ) : ?>
|
100 |
+
<div class="updated">
|
101 |
+
<p><strong><?php
|
102 |
+
echo esc_html( sprintf(
|
103 |
+
fs_text_inline( "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s.", 'affiliate-application-accepted', $slug ),
|
104 |
+
$plugin_title,
|
105 |
+
sprintf( '<a href="%s" target="_blank">%s</a>', $members_dashboard_login_url, $members_dashboard_login_url )
|
106 |
+
) );
|
107 |
+
?></strong></p>
|
108 |
+
</div>
|
109 |
+
<?php else : ?>
|
110 |
+
<?php
|
111 |
+
$message_text = '';
|
112 |
+
|
113 |
+
if ( $is_pending_affiliate ) {
|
114 |
+
$message_text = fs_text_inline( "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information.", 'affiliate-application-thank-you', $slug );
|
115 |
+
$message_container_class = 'updated';
|
116 |
+
} else if ( $affiliate->is_suspended() ) {
|
117 |
+
$message_text = fs_text_inline( 'Your affiliation account was temporarily suspended.', 'affiliate-account-suspended', $slug );
|
118 |
+
$message_container_class = 'notice notice-warning';
|
119 |
+
} else if ( $affiliate->is_rejected() ) {
|
120 |
+
$message_text = fs_text_inline( "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days.", 'affiliate-application-rejected', $slug );
|
121 |
+
$message_container_class = 'error';
|
122 |
+
} else if ( $affiliate->is_blocked() ) {
|
123 |
+
$message_text = fs_text_inline( 'Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support.', 'affiliate-account-blocked', $slug );
|
124 |
+
$message_container_class = 'error';
|
125 |
+
}
|
126 |
+
?>
|
127 |
+
<div class="<?php echo $message_container_class ?>">
|
128 |
+
<p><strong><?php echo esc_html( $message_text ) ?></strong></p>
|
129 |
+
</div>
|
130 |
+
<?php endif ?>
|
131 |
+
<?php endif ?>
|
132 |
+
</div>
|
133 |
+
<div class="entry-content">
|
134 |
+
<?php if ( ! $is_affiliate ) : ?>
|
135 |
+
<div id="application_messages_container">
|
136 |
+
<p><?php echo esc_html( sprintf( fs_text_inline( 'Like the %s? Become our ambassador and earn cash ;-)', 'become-an-ambassador', $slug ), $module_type ) ) ?></p>
|
137 |
+
<p><?php echo esc_html( sprintf( fs_text_inline( 'Refer new customers to our %s and earn %s commission on each successful sale you refer!', 'refer-new-customers', $slug ), $module_type, $commission ) ) ?></p>
|
138 |
+
</div>
|
139 |
+
<?php endif ?>
|
140 |
+
<h3><?php fs_esc_html_echo_inline( 'Program Summary', 'program-summary', $slug ) ?></h3>
|
141 |
+
<ul>
|
142 |
+
<li><?php echo esc_html( sprintf( fs_text_inline( '%s commission when a customer purchases a new license.', 'commission-on-new-license-purchase', $slug ), $commission ) ) ?></li>
|
143 |
+
<?php if ( is_object( $affiliate_terms ) && $affiliate_terms->has_renewals_commission() ) : ?>
|
144 |
+
<li><?php echo esc_html( sprintf( fs_text_inline( 'Get commission for automated subscription renewals.', 'renewals-commission', $slug ) ) ) ?></li>
|
145 |
+
<?php endif ?>
|
146 |
+
<?php if ( is_object( $affiliate_terms ) && ( ! $affiliate_terms->is_session_cookie() ) ) : ?>
|
147 |
+
<li><?php echo esc_html( sprintf( fs_text_inline( '%s tracking cookie after the first visit to maximize earnings potential.', 'affiliate-tracking', $slug ), $affiliate_tracking ) ) ?></li>
|
148 |
+
<?php endif ?>
|
149 |
+
<?php if ( is_object( $affiliate_terms ) && $affiliate_terms->has_lifetime_commission() ) : ?>
|
150 |
+
<li><?php fs_esc_html_echo_inline( 'Unlimited commissions.', 'unlimited-commissions', $slug ) ?></li>
|
151 |
+
<?php endif ?>
|
152 |
+
<li><?php echo esc_html( sprintf( fs_text_inline( '%s minimum payout amount.', 'minimum-payout-amount', $slug ), '$100' ) ) ?></li>
|
153 |
+
<li><?php fs_esc_html_echo_inline( 'Payouts are in USD and processed monthly via PayPal.', 'payouts-unit-and-processing', $slug ) ?></li>
|
154 |
+
<li><?php fs_esc_html_echo_inline( 'As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days.', 'commission-payment', $slug ) ?></li>
|
155 |
+
</ul>
|
156 |
+
<div id="application_form_container" <?php echo ( $is_pending_affiliate ) ? '' : 'style="display: none"' ?>>
|
157 |
+
<h3><?php fs_esc_html_echo_inline( 'Affiliate', 'affiliate', $slug ) ?></h3>
|
158 |
+
<form>
|
159 |
+
<div class="input-container input-container-text">
|
160 |
+
<label class="input-label"><?php fs_esc_html_echo_inline( 'Email address', 'email-address', $slug ) ?></label>
|
161 |
+
<input id="email_address" type="text" value="<?php echo esc_attr( $email_address ) ?>" class="regular-text" <?php echo ( $readonly || is_object( $user ) ) ? 'readonly' : '' ?>>
|
162 |
+
</div>
|
163 |
+
<div class="input-container input-container-text">
|
164 |
+
<label class="input-label"><?php fs_esc_html_echo_inline( 'Full name', 'full-name', $slug ) ?></label>
|
165 |
+
<input id="full_name" type="text" value="<?php echo esc_attr( $full_name ) ?>" class="regular-text" <?php echo $readonly ?>>
|
166 |
+
</div>
|
167 |
+
<div class="input-container input-container-text">
|
168 |
+
<label class="input-label"><?php fs_esc_html_echo_inline( 'PayPal account email address', 'paypal-account-email-address', $slug ) ?></label>
|
169 |
+
<input id="paypal_email" type="text" value="<?php echo esc_attr( $paypal_email_address ) ?>" class="regular-text" <?php echo $readonly ?>>
|
170 |
+
</div>
|
171 |
+
<div class="input-container input-container-text">
|
172 |
+
<label class="input-label"><?php echo esc_html( sprintf( fs_text_inline( 'Where are you going to promote the %s?', 'domain-field-label', $slug ), $module_type ) ) ?></label>
|
173 |
+
<input id="domain" type="text" value="<?php echo esc_attr( $domain ) ?>" class="domain regular-text" <?php echo $readonly ?>>
|
174 |
+
<p class="description"><?php echo esc_html( sprintf( fs_text_inline( 'Enter the domain of your website or other websites from where you plan to promote the %s.', 'domain-field-desc', $slug ), $module_type ) ) ?></p>
|
175 |
+
<?php if ( ! $is_affiliate ) : ?>
|
176 |
+
<a id="add_domain" href="#" class="disabled">+ <?php fs_esc_html_echo_inline( 'Add another domain', 'add-another-domain', $slug ) ?>...</a>
|
177 |
+
<?php endif ?>
|
178 |
+
</div>
|
179 |
+
<div id="extra_domains_container" class="input-container input-container-text" <?php echo $is_pending_affiliate ? '' : 'style="display: none"' ?>>
|
180 |
+
<label class="input-label"><?php fs_esc_html_echo_inline( 'Extra Domains', 'extra-domain-fields-label', $slug ) ?></label>
|
181 |
+
<p class="description"><?php fs_esc_html_echo_inline( 'Extra domains where you will be marketing the product from.', 'extra-domain-fields-desc', $slug ) ?></p>
|
182 |
+
<?php if ( $is_pending_affiliate && ! empty( $extra_domains ) ) : ?>
|
183 |
+
<?php foreach ( $extra_domains as $extra_domain ) : ?>
|
184 |
+
<div class="extra-domain-input-container">
|
185 |
+
<input type="text" value="<?php echo esc_attr( $extra_domain ) ?>" class="domain regular-text" <?php echo $readonly ?>>
|
186 |
+
</div>
|
187 |
+
<?php endforeach ?>
|
188 |
+
<?php endif ?>
|
189 |
+
</div>
|
190 |
+
<div class="input-container">
|
191 |
+
<label class="input-label"><?php fs_esc_html_echo_inline( 'Promotion methods', 'promotion-methods', $slug ) ?></label>
|
192 |
+
<div>
|
193 |
+
<input id="promotion_method_social_media" type="checkbox" <?php checked( $promotion_method_social_media ) ?> <?php disabled( $is_affiliate ) ?>/>
|
194 |
+
<label for="promotion_method_social_media"><?php fs_esc_html_echo_inline( 'Social media (Facebook, Twitter, etc.)', 'social-media', $slug ) ?></label>
|
195 |
+
</div>
|
196 |
+
<div>
|
197 |
+
<input id="promotion_method_mobile_apps" type="checkbox" <?php checked( $promotion_method_mobile_apps ) ?> <?php disabled( $is_affiliate ) ?>/>
|
198 |
+
<label for="promotion_method_mobile_apps"><?php fs_esc_html_echo_inline( 'Mobile apps', 'mobile-apps', $slug ) ?></label>
|
199 |
+
</div>
|
200 |
+
</div>
|
201 |
+
<div class="input-container input-container-text">
|
202 |
+
<label class="input-label"><nobr><?php fs_esc_html_echo_inline( 'Website, email, and social media statistics (optional)', 'statistics-information-field-label', $slug ) ?></nobr></label>
|
203 |
+
<textarea id="statistics_information" rows="5" <?php echo $readonly ?> class="regular-text"><?php echo $statistics_information ?></textarea>
|
204 |
+
<?php if ( ! $is_affiliate ) : ?>
|
205 |
+
<p class="description"><?php fs_esc_html_echo_inline( 'Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential).', 'statistics-information-field-desc', $slug ) ?></p>
|
206 |
+
<?php endif ?>
|
207 |
+
</div>
|
208 |
+
<div class="input-container input-container-text">
|
209 |
+
<label class="input-label"><?php fs_esc_html_echo_inline( 'How will you promote us?', 'promotion-method-desc-field-label', $slug ) ?></label>
|
210 |
+
<textarea id="promotion_method_description" rows="5" <?php echo $readonly ?> class="regular-text"><?php echo $promotion_method_description ?></textarea>
|
211 |
+
<?php if ( ! $is_affiliate ) : ?>
|
212 |
+
<p class="description"><?php echo esc_html( sprintf( fs_text_inline( 'Please provide details on how you intend to promote %s (please be as specific as possible).', 'promotion-method-desc-field-desc', $slug ), $plugin_title ) ) ?></p>
|
213 |
+
<?php endif ?>
|
214 |
+
</div>
|
215 |
+
</form>
|
216 |
+
</div>
|
217 |
+
<?php if ( ! $is_affiliate ) : ?>
|
218 |
+
<a id="cancel_button" href="#" class="button button-secondary button-cancel" style="display: none"><?php fs_echo_inline( 'Cancel', 'cancel', $slug ) ?></a>
|
219 |
+
<a id="submit_button" class="button button-primary" href="#" style="display: none"><?php echo esc_html( $apply_to_become_affiliate_text ) ?></a>
|
220 |
+
<a id="apply_button" class="button button-primary" href="#"><?php fs_esc_html_echo_inline( 'Become an affiliate', 'become-an-affiliate', $slug ) ?></a>
|
221 |
+
<?php endif ?>
|
222 |
+
</div>
|
223 |
+
</div>
|
224 |
+
</div>
|
225 |
+
</div>
|
226 |
+
</form>
|
227 |
+
<script type="text/javascript">
|
228 |
+
jQuery(function( $ ) {
|
229 |
+
var
|
230 |
+
$contentWrapper = $( '#fs_affiliation_content_wrapper' ),
|
231 |
+
$socialMedia = $( '#promotion_method_social_media' ),
|
232 |
+
$mobileApps = $( '#promotion_method_mobile_apps' ),
|
233 |
+
$applyButton = $( '#apply_button' ),
|
234 |
+
$submitButton = $( '#submit_button' ),
|
235 |
+
$cancelButton = $( '#cancel_button' ),
|
236 |
+
$applicationFormContainer = $( '#application_form_container' ),
|
237 |
+
$errorMessageContainer = $( '#error_message' ),
|
238 |
+
$domain = $( '#domain' ),
|
239 |
+
$addDomain = $( '#add_domain' ),
|
240 |
+
$extraDomainsContainer = $( '#extra_domains_container');
|
241 |
+
|
242 |
+
$applyButton.click(function( evt ) {
|
243 |
+
evt.preventDefault();
|
244 |
+
|
245 |
+
var $this = $( this );
|
246 |
+
$this.hide();
|
247 |
+
|
248 |
+
$applicationFormContainer.show();
|
249 |
+
$cancelButton.show();
|
250 |
+
$submitButton.show();
|
251 |
+
|
252 |
+
$contentWrapper.find( 'input[type="text"]:first' ).focus();
|
253 |
+
});
|
254 |
+
|
255 |
+
$submitButton.click(function( evt ) {
|
256 |
+
evt.preventDefault();
|
257 |
+
|
258 |
+
var $this = $( this );
|
259 |
+
|
260 |
+
if ( $this.hasClass( 'disabled' ) ) {
|
261 |
+
return;
|
262 |
+
}
|
263 |
+
|
264 |
+
$errorMessageContainer.hide();
|
265 |
+
|
266 |
+
var
|
267 |
+
$emailAddress = $( '#email_address' ),
|
268 |
+
emailAddress = null,
|
269 |
+
paypalEmailAddress = $( '#paypal_email' ).val().trim();
|
270 |
+
|
271 |
+
if ( 1 === $emailAddress.length ) {
|
272 |
+
emailAddress = $emailAddress.val().trim();
|
273 |
+
|
274 |
+
if ( 0 === emailAddress.length ) {
|
275 |
+
showErrorMessage( '<?php fs_echo_inline( 'Email address is required.', 'email-address-is-required', $slug ) ?>' );
|
276 |
+
return;
|
277 |
+
}
|
278 |
+
}
|
279 |
+
|
280 |
+
if ( 0 === paypalEmailAddress.length ) {
|
281 |
+
showErrorMessage( '<?php fs_echo_inline( 'PayPal email address is required.', 'paypal-email-address-is-required', $slug ) ?>' );
|
282 |
+
return;
|
283 |
+
}
|
284 |
+
|
285 |
+
var
|
286 |
+
$extraDomains = $extraDomainsContainer.find( '.domain' ),
|
287 |
+
domain = $domain.val().trim().toLowerCase(),
|
288 |
+
extraDomains = [];
|
289 |
+
|
290 |
+
if ( 0 === domain.length ) {
|
291 |
+
showErrorMessage( '<?php fs_echo_inline( 'Domain is required.', 'domain-is-required', $slug ) ?>' );
|
292 |
+
return;
|
293 |
+
} else if ( 'freemius.com' === domain ) {
|
294 |
+
showErrorMessage( '<?php fs_echo_inline( 'Invalid domain', 'invalid-domain', $slug ) ?>' + ' [' + domain + '].' );
|
295 |
+
return;
|
296 |
+
}
|
297 |
+
|
298 |
+
if ( $extraDomains.length > 0 ) {
|
299 |
+
var hasError = false;
|
300 |
+
|
301 |
+
$extraDomains.each(function() {
|
302 |
+
var
|
303 |
+
$this = $( this ),
|
304 |
+
extraDomain = $this.val().trim().toLowerCase();
|
305 |
+
if ( 0 === extraDomain.length || extraDomain === domain ) {
|
306 |
+
return true;
|
307 |
+
} else if ( 'freemius.com' === extraDomain ) {
|
308 |
+
showErrorMessage( '<?php fs_echo_inline( 'Invalid domain', 'invalid-domain', $slug ) ?>' + ' [' + extraDomain + '].' );
|
309 |
+
hasError = true;
|
310 |
+
return false;
|
311 |
+
}
|
312 |
+
|
313 |
+
extraDomains.push( extraDomain );
|
314 |
+
});
|
315 |
+
|
316 |
+
if ( hasError ) {
|
317 |
+
return;
|
318 |
+
}
|
319 |
+
}
|
320 |
+
|
321 |
+
var
|
322 |
+
promotionMethods = [],
|
323 |
+
statisticsInformation = $( '#statistics_information' ).val(),
|
324 |
+
promotionMethodDescription = $( '#promotion_method_description' ).val();
|
325 |
+
|
326 |
+
if ( $socialMedia.attr( 'checked' ) ) {
|
327 |
+
promotionMethods.push( 'social_media' );
|
328 |
+
}
|
329 |
+
|
330 |
+
if ( $mobileApps.attr( 'checked' ) ) {
|
331 |
+
promotionMethods.push( 'mobile_apps' );
|
332 |
+
}
|
333 |
+
|
334 |
+
var affiliate = {
|
335 |
+
full_name : $( '#full_name' ).val().trim(),
|
336 |
+
paypal_email : paypalEmailAddress,
|
337 |
+
stats_description : statisticsInformation,
|
338 |
+
promotion_method_description: promotionMethodDescription
|
339 |
+
};
|
340 |
+
|
341 |
+
if ( null !== emailAddress ) {
|
342 |
+
affiliate.email = emailAddress;
|
343 |
+
}
|
344 |
+
|
345 |
+
affiliate.domain = domain;
|
346 |
+
affiliate.additional_domains = extraDomains;
|
347 |
+
|
348 |
+
if ( promotionMethods.length > 0 ) {
|
349 |
+
affiliate.promotion_methods = promotionMethods.join( ',' );
|
350 |
+
}
|
351 |
+
|
352 |
+
$.ajax({
|
353 |
+
url : ajaxurl,
|
354 |
+
method : 'POST',
|
355 |
+
data : {
|
356 |
+
action : '<?php echo $fs->get_ajax_action( 'submit_affiliate_application' ) ?>',
|
357 |
+
security : '<?php echo $fs->get_ajax_security( 'submit_affiliate_application' ) ?>',
|
358 |
+
module_id: '<?php echo $fs->get_id() ?>',
|
359 |
+
affiliate: affiliate
|
360 |
+
},
|
361 |
+
beforeSend: function() {
|
362 |
+
$cancelButton.addClass( 'disabled' );
|
363 |
+
$submitButton.addClass( 'disabled' );
|
364 |
+
$submitButton.text( '<?php fs_esc_js_inline( 'Processing', 'processing' ) ?>...' );
|
365 |
+
},
|
366 |
+
success : function( result ) {
|
367 |
+
if ( result.success ) {
|
368 |
+
location.reload();
|
369 |
+
} else if ( result.error && result.error.length > 0 ) {
|
370 |
+
showErrorMessage( result.error );
|
371 |
+
|
372 |
+
$cancelButton.removeClass( 'disabled' );
|
373 |
+
$submitButton.removeClass( 'disabled' );
|
374 |
+
$submitButton.text( '<?php echo esc_js( $apply_to_become_affiliate_text ) ?>' )
|
375 |
+
}
|
376 |
+
}
|
377 |
+
});
|
378 |
+
});
|
379 |
+
|
380 |
+
$cancelButton.click(function( evt ) {
|
381 |
+
evt.preventDefault();
|
382 |
+
|
383 |
+
var $this = $( this );
|
384 |
+
|
385 |
+
if ( $this.hasClass( 'disabled' ) ) {
|
386 |
+
return;
|
387 |
+
}
|
388 |
+
|
389 |
+
$applicationFormContainer.hide();
|
390 |
+
$this.hide();
|
391 |
+
$submitButton.hide();
|
392 |
+
|
393 |
+
$applyButton.show();
|
394 |
+
|
395 |
+
window.scrollTo( 0, 0 );
|
396 |
+
});
|
397 |
+
|
398 |
+
$domain.on( 'input propertychange', onDomainChange );
|
399 |
+
|
400 |
+
$addDomain.click(function( evt ) {
|
401 |
+
evt.preventDefault();
|
402 |
+
|
403 |
+
var
|
404 |
+
$this = $( this ),
|
405 |
+
domain = $domain.val().trim();
|
406 |
+
|
407 |
+
if ( $this.hasClass( 'disabled' ) || 0 === domain.length ) {
|
408 |
+
return;
|
409 |
+
}
|
410 |
+
|
411 |
+
$domain.off( 'input propertychange' );
|
412 |
+
$this.addClass( 'disabled' );
|
413 |
+
|
414 |
+
var
|
415 |
+
$extraDomainInputContainer = $( '<div class="extra-domain-input-container"><input type="text" class="domain regular-text"/></div>' ),
|
416 |
+
$extraDomainInput = $extraDomainInputContainer.find( 'input' ),
|
417 |
+
$removeDomain = $( '<a href="#" class="remove-domain"><i class="dashicons dashicons-no" title="<?php fs_esc_js_echo_inline( 'Remove', 'remove', $slug ) ?>"></i></a>' );
|
418 |
+
|
419 |
+
$extraDomainInputContainer.append( $removeDomain );
|
420 |
+
|
421 |
+
$extraDomainInput.on( 'input propertychange', onDomainChange );
|
422 |
+
|
423 |
+
$removeDomain.click(function( evt ) {
|
424 |
+
evt.preventDefault();
|
425 |
+
|
426 |
+
var
|
427 |
+
$extraDomainInputs = $( '.extra-domain-input-container .domain' );
|
428 |
+
|
429 |
+
if ( 1 === $extraDomainInputs.length )
|
430 |
+
$extraDomainInputs.val( '' ).focus();
|
431 |
+
else
|
432 |
+
$( this ).parent().remove();
|
433 |
+
});
|
434 |
+
|
435 |
+
$extraDomainsContainer.show();
|
436 |
+
|
437 |
+
$extraDomainInputContainer.appendTo( $extraDomainsContainer );
|
438 |
+
$extraDomainInput.focus();
|
439 |
+
|
440 |
+
$this.appendTo( $extraDomainsContainer );
|
441 |
+
});
|
442 |
+
|
443 |
+
/**
|
444 |
+
* @author Leo Fajardo (@leorw)
|
445 |
+
*/
|
446 |
+
function onDomainChange() {
|
447 |
+
var
|
448 |
+
domain = $( this ).val().trim();
|
449 |
+
|
450 |
+
if ( domain.length > 0 ) {
|
451 |
+
$addDomain.removeClass( 'disabled' );
|
452 |
+
} else {
|
453 |
+
$addDomain.addClass( 'disabled' );
|
454 |
+
}
|
455 |
+
}
|
456 |
+
|
457 |
+
/**
|
458 |
+
* @author Leo Fajardo (@leorw)
|
459 |
+
*
|
460 |
+
* @param {String} message
|
461 |
+
*/
|
462 |
+
function showErrorMessage( message ) {
|
463 |
+
$errorMessageContainer.find( 'strong' ).text( message );
|
464 |
+
$errorMessageContainer.show();
|
465 |
+
|
466 |
+
window.scrollTo( 0, 0 );
|
467 |
+
}
|
468 |
+
});
|
469 |
+
</script>
|
470 |
+
</div>
|
471 |
+
<?php
|
472 |
+
$params = array(
|
473 |
+
'page' => 'affiliation',
|
474 |
+
'module_id' => $fs->get_id(),
|
475 |
+
'module_slug' => $slug,
|
476 |
+
'module_version' => $fs->get_plugin_version(),
|
477 |
+
);
|
478 |
+
fs_require_template( 'powered-by.php', $params );
|
479 |
+
?>
|
freemius/templates/forms/deactivation/contact.php
CHANGED
@@ -10,11 +10,14 @@
|
|
10 |
exit;
|
11 |
}
|
12 |
|
|
|
|
|
|
|
13 |
$fs = freemius( $VARS['id'] );
|
14 |
$slug = $fs->get_slug();
|
15 |
|
16 |
-
echo
|
17 |
. sprintf(" <a href='%s' class='button button-small button-primary'>%s</a>",
|
18 |
$fs->contact_url( 'technical_support' ),
|
19 |
-
|
20 |
);
|
10 |
exit;
|
11 |
}
|
12 |
|
13 |
+
/**
|
14 |
+
* @var array $VARS
|
15 |
+
*/
|
16 |
$fs = freemius( $VARS['id'] );
|
17 |
$slug = $fs->get_slug();
|
18 |
|
19 |
+
echo fs_text_inline( 'Sorry for the inconvenience and we are here to help if you give us a chance.', 'contact-support-before-deactivation', $slug )
|
20 |
. sprintf(" <a href='%s' class='button button-small button-primary'>%s</a>",
|
21 |
$fs->contact_url( 'technical_support' ),
|
22 |
+
fs_text_inline( 'Contact Support', 'contact-support', $slug )
|
23 |
);
|
freemius/templates/forms/deactivation/form.php
CHANGED
@@ -51,14 +51,19 @@ HTML;
|
|
51 |
|
52 |
$is_anonymous = ( ! $fs->is_registered() );
|
53 |
if ( $is_anonymous ) {
|
54 |
-
$anonymous_feedback_checkbox_html =
|
55 |
-
'<label class="anonymous-feedback-label"><input type="checkbox" class="anonymous-feedback-checkbox"> '
|
56 |
-
|
57 |
-
|
58 |
} else {
|
59 |
$anonymous_feedback_checkbox_html = '';
|
60 |
}
|
61 |
|
|
|
|
|
|
|
|
|
|
|
62 |
fs_enqueue_local_style( 'fs_dialog_boxes', '/admin/dialog-boxes.css' );
|
63 |
?>
|
64 |
<script type="text/javascript">
|
@@ -68,16 +73,16 @@ HTML;
|
|
68 |
'<div class="fs-modal fs-modal-deactivation-feedback<?php echo empty( $confirmation_message ) ? ' no-confirmation-message' : ''; ?>">'
|
69 |
+ ' <div class="fs-modal-dialog">'
|
70 |
+ ' <div class="fs-modal-header">'
|
71 |
-
+ ' <h4><?php
|
72 |
+ ' </div>'
|
73 |
+ ' <div class="fs-modal-body">'
|
74 |
+ ' <div class="fs-modal-panel" data-panel-id="confirm"><p><?php echo $confirmation_message; ?></p></div>'
|
75 |
-
+ ' <div class="fs-modal-panel active" data-panel-id="reasons"><h3><strong><?php
|
76 |
+ ' </div>'
|
77 |
+ ' <div class="fs-modal-footer">'
|
78 |
+ ' <?php echo $anonymous_feedback_checkbox_html ?>'
|
79 |
+ ' <a href="#" class="button button-secondary button-deactivate"></a>'
|
80 |
-
+ ' <a href="#" class="button button-primary button-close"><?php
|
81 |
+ ' </div>'
|
82 |
+ ' </div>'
|
83 |
+ '</div>',
|
@@ -239,12 +244,12 @@ HTML;
|
|
239 |
|
240 |
$modal.find('.reason-input').remove();
|
241 |
$modal.find( '.internal-message' ).hide();
|
242 |
-
$modal.find('.button-deactivate').
|
243 |
-
|
244 |
$fs->is_plugin() ?
|
245 |
-
|
246 |
-
sprintf(
|
247 |
-
) ?>');
|
248 |
|
249 |
enableDeactivateButton();
|
250 |
|
@@ -261,7 +266,7 @@ HTML;
|
|
261 |
_parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus();
|
262 |
|
263 |
if (isOtherReasonSelected()) {
|
264 |
-
showMessage('<?php
|
265 |
disableDeactivateButton();
|
266 |
}
|
267 |
}
|
@@ -381,19 +386,19 @@ HTML;
|
|
381 |
|
382 |
// Reset the deactivate button's text.
|
383 |
if ('confirm' === getCurrentPanel()) {
|
384 |
-
$deactivateButton.text('<?php
|
385 |
-
|
386 |
$fs->is_plugin() ?
|
387 |
-
|
388 |
-
sprintf(
|
389 |
-
) ?>');
|
390 |
} else {
|
391 |
-
$deactivateButton.
|
392 |
-
|
393 |
$fs->is_plugin() ?
|
394 |
-
|
395 |
-
sprintf(
|
396 |
-
) ?>');
|
397 |
}
|
398 |
}
|
399 |
|
51 |
|
52 |
$is_anonymous = ( ! $fs->is_registered() );
|
53 |
if ( $is_anonymous ) {
|
54 |
+
$anonymous_feedback_checkbox_html = sprintf(
|
55 |
+
'<label class="anonymous-feedback-label"><input type="checkbox" class="anonymous-feedback-checkbox"> %s</label>',
|
56 |
+
fs_esc_html_inline( 'Anonymous feedback', 'anonymous-feedback', $slug )
|
57 |
+
);
|
58 |
} else {
|
59 |
$anonymous_feedback_checkbox_html = '';
|
60 |
}
|
61 |
|
62 |
+
// Aliases.
|
63 |
+
$deactivate_text = fs_text_inline( 'Deactivate', 'deactivate', $slug );
|
64 |
+
$theme_text = fs_text_inline( 'Theme', 'theme', $slug );
|
65 |
+
$activate_x_text = fs_text_inline( 'Activate %s', 'activate-x', $slug );
|
66 |
+
|
67 |
fs_enqueue_local_style( 'fs_dialog_boxes', '/admin/dialog-boxes.css' );
|
68 |
?>
|
69 |
<script type="text/javascript">
|
73 |
'<div class="fs-modal fs-modal-deactivation-feedback<?php echo empty( $confirmation_message ) ? ' no-confirmation-message' : ''; ?>">'
|
74 |
+ ' <div class="fs-modal-dialog">'
|
75 |
+ ' <div class="fs-modal-header">'
|
76 |
+
+ ' <h4><?php fs_esc_attr_echo_inline( 'Quick feedback', 'quick-feedback' , $slug ) ?></h4>'
|
77 |
+ ' </div>'
|
78 |
+ ' <div class="fs-modal-body">'
|
79 |
+ ' <div class="fs-modal-panel" data-panel-id="confirm"><p><?php echo $confirmation_message; ?></p></div>'
|
80 |
+
+ ' <div class="fs-modal-panel active" data-panel-id="reasons"><h3><strong><?php echo esc_js( sprintf( fs_text_inline( 'If you have a moment, please let us know why you are %s', 'deactivation-share-reason' , $slug ), ( $fs->is_plugin() ? fs_text_inline( 'deactivating', 'deactivating', $slug ) : fs_text_inline( 'switching', 'switching', $slug ) ) ) ) ?>:</strong></h3><ul id="reasons-list">' + reasonsHtml + '</ul></div>'
|
81 |
+ ' </div>'
|
82 |
+ ' <div class="fs-modal-footer">'
|
83 |
+ ' <?php echo $anonymous_feedback_checkbox_html ?>'
|
84 |
+ ' <a href="#" class="button button-secondary button-deactivate"></a>'
|
85 |
+
+ ' <a href="#" class="button button-primary button-close"><?php fs_esc_js_echo_inline( 'Cancel', 'cancel' , $slug ) ?></a>'
|
86 |
+ ' </div>'
|
87 |
+ ' </div>'
|
88 |
+ '</div>',
|
244 |
|
245 |
$modal.find('.reason-input').remove();
|
246 |
$modal.find( '.internal-message' ).hide();
|
247 |
+
$modal.find('.button-deactivate').html('<?php echo esc_js( sprintf(
|
248 |
+
fs_text_inline( 'Submit & %s', 'deactivation-modal-button-submit' , $slug ),
|
249 |
$fs->is_plugin() ?
|
250 |
+
$deactivate_text :
|
251 |
+
sprintf( $activate_x_text, $theme_text )
|
252 |
+
) ) ?>');
|
253 |
|
254 |
enableDeactivateButton();
|
255 |
|
266 |
_parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus();
|
267 |
|
268 |
if (isOtherReasonSelected()) {
|
269 |
+
showMessage('<?php echo esc_js( fs_text_inline( 'Kindly tell us the reason so we can improve.', 'ask-for-reason-message' , $slug ) ); ?>');
|
270 |
disableDeactivateButton();
|
271 |
}
|
272 |
}
|
386 |
|
387 |
// Reset the deactivate button's text.
|
388 |
if ('confirm' === getCurrentPanel()) {
|
389 |
+
$deactivateButton.text('<?php echo esc_js( sprintf(
|
390 |
+
fs_text_inline( 'Yes - %s', 'deactivation-modal-button-confirm' , $slug ),
|
391 |
$fs->is_plugin() ?
|
392 |
+
$deactivate_text :
|
393 |
+
sprintf( $activate_x_text, $theme_text )
|
394 |
+
) ) ?>');
|
395 |
} else {
|
396 |
+
$deactivateButton.html('<?php echo esc_js( sprintf(
|
397 |
+
fs_text_inline('Skip & %s', 'skip-and-x', $slug ),
|
398 |
$fs->is_plugin() ?
|
399 |
+
$deactivate_text :
|
400 |
+
sprintf( $activate_x_text, $theme_text )
|
401 |
+
) ) ?>');
|
402 |
}
|
403 |
}
|
404 |
|
freemius/templates/forms/deactivation/retry-skip.php
CHANGED
@@ -16,9 +16,9 @@
|
|
16 |
$fs = freemius( $VARS['id'] );
|
17 |
$slug = $fs->get_slug();
|
18 |
|
19 |
-
$skip_url
|
20 |
-
$skip_text
|
21 |
-
$use_plugin_anonymously_text =
|
22 |
|
23 |
-
echo sprintf(
|
24 |
. " <a href='{$skip_url}' class='button button-small button-secondary'>{$use_plugin_anonymously_text}</a>";
|
16 |
$fs = freemius( $VARS['id'] );
|
17 |
$slug = $fs->get_slug();
|
18 |
|
19 |
+
$skip_url = fs_nonce_url( $fs->_get_admin_page_url( '', array( 'fs_action' => $fs->get_unique_affix() . '_skip_activation' ) ), $fs->get_unique_affix() . '_skip_activation' );
|
20 |
+
$skip_text = strtolower( fs_text_x_inline( 'Skip', 'verb', 'skip', $slug ) );
|
21 |
+
$use_plugin_anonymously_text = fs_text_inline( 'Click here to use the plugin anonymously', 'click-here-to-use-plugin-anonymously', $slug );
|
22 |
|
23 |
+
echo sprintf( fs_text_inline( "You might have missed it, but you don't have to share any data and can just %s the opt-in.", 'dont-have-to-share-any-data', $slug ), "<a href='{$skip_url}'>{$skip_text}</a>" )
|
24 |
. " <a href='{$skip_url}' class='button button-small button-secondary'>{$use_plugin_anonymously_text}</a>";
|
freemius/templates/forms/license-activation.php
CHANGED
@@ -16,11 +16,13 @@
|
|
16 |
$fs = freemius( $VARS['id'] );
|
17 |
$slug = $fs->get_slug();
|
18 |
|
19 |
-
$cant_find_license_key_text =
|
20 |
-
$message_above_input_field =
|
21 |
$message_below_input_field = '';
|
22 |
|
23 |
-
$header_title =
|
|
|
|
|
24 |
|
25 |
if ( $fs->is_registered() ) {
|
26 |
$activate_button_text = $header_title;
|
@@ -33,15 +35,15 @@
|
|
33 |
$freemius_link = '<a href="' . $freemius_site_url . '" target="_blank" tabindex="0">freemius.com</a>';
|
34 |
|
35 |
$message_below_input_field = sprintf(
|
36 |
-
|
37 |
$fs->get_module_label( true ),
|
38 |
$freemius_link
|
39 |
);
|
40 |
|
41 |
-
$activate_button_text =
|
42 |
}
|
43 |
|
44 |
-
$license_key_text =
|
45 |
|
46 |
/**
|
47 |
* IMPORTANT:
|
@@ -68,13 +70,13 @@ HTML;
|
|
68 |
+ ' <div class="fs-modal-dialog">'
|
69 |
+ ' <div class="fs-modal-header">'
|
70 |
+ ' <h4><?php echo esc_js($header_title) ?></h4>'
|
71 |
-
+ ' <a href="!#" class="fs-close"><i class="dashicons dashicons-no" title="<?php
|
72 |
+ ' </div>'
|
73 |
+ ' <div class="fs-modal-body">'
|
74 |
+ ' <div class="fs-modal-panel active">' + modalContentHtml + '</div>'
|
75 |
+ ' </div>'
|
76 |
+ ' <div class="fs-modal-footer">'
|
77 |
-
+ ' <button class="button button-secondary button-close" tabindex="4"><?php
|
78 |
+ ' <button class="button button-primary button-activate-license" tabindex="3"><?php echo esc_js( $activate_button_text ) ?></button>'
|
79 |
+ ' </div>'
|
80 |
+ ' </div>'
|
@@ -142,7 +144,7 @@ HTML;
|
|
142 |
module_id : '<?php echo $fs->get_id() ?>'
|
143 |
},
|
144 |
beforeSend: function () {
|
145 |
-
$activateLicenseButton.text( <?php
|
146 |
},
|
147 |
success: function( result ) {
|
148 |
var resultObj = $.parseJSON( result );
|
16 |
$fs = freemius( $VARS['id'] );
|
17 |
$slug = $fs->get_slug();
|
18 |
|
19 |
+
$cant_find_license_key_text = fs_text_inline( "Can't find your license key?", 'cant-find-license-key', $slug );
|
20 |
+
$message_above_input_field = fs_text_inline( 'Please enter the license key that you received in the email right after the purchase:', 'activate-license-message', $slug );
|
21 |
$message_below_input_field = '';
|
22 |
|
23 |
+
$header_title = $fs->is_free_plan() ?
|
24 |
+
fs_text_inline( 'Activate License', 'activate-license', $slug ) :
|
25 |
+
fs_text_inline( 'Update License', 'update-license', $slug );
|
26 |
|
27 |
if ( $fs->is_registered() ) {
|
28 |
$activate_button_text = $header_title;
|
35 |
$freemius_link = '<a href="' . $freemius_site_url . '" target="_blank" tabindex="0">freemius.com</a>';
|
36 |
|
37 |
$message_below_input_field = sprintf(
|
38 |
+
fs_text_inline( 'The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license.', 'license-sync-disclaimer', $slug ),
|
39 |
$fs->get_module_label( true ),
|
40 |
$freemius_link
|
41 |
);
|
42 |
|
43 |
+
$activate_button_text = fs_text_inline( 'Agree & Activate License', 'agree-activate-license', $slug );
|
44 |
}
|
45 |
|
46 |
+
$license_key_text = fs_text_inline( 'License key', 'license-key' , $slug );
|
47 |
|
48 |
/**
|
49 |
* IMPORTANT:
|
70 |
+ ' <div class="fs-modal-dialog">'
|
71 |
+ ' <div class="fs-modal-header">'
|
72 |
+ ' <h4><?php echo esc_js($header_title) ?></h4>'
|
73 |
+
+ ' <a href="!#" class="fs-close"><i class="dashicons dashicons-no" title="<?php echo esc_js( fs_text_x_inline( 'Dismiss', 'as close a window', 'dismiss', $slug ) ) ?>"></i></a>'
|
74 |
+ ' </div>'
|
75 |
+ ' <div class="fs-modal-body">'
|
76 |
+ ' <div class="fs-modal-panel active">' + modalContentHtml + '</div>'
|
77 |
+ ' </div>'
|
78 |
+ ' <div class="fs-modal-footer">'
|
79 |
+
+ ' <button class="button button-secondary button-close" tabindex="4"><?php fs_esc_js_echo_inline( 'Cancel', 'cancel', $slug ) ?></button>'
|
80 |
+ ' <button class="button button-primary button-activate-license" tabindex="3"><?php echo esc_js( $activate_button_text ) ?></button>'
|
81 |
+ ' </div>'
|
82 |
+ ' </div>'
|
144 |
module_id : '<?php echo $fs->get_id() ?>'
|
145 |
},
|
146 |
beforeSend: function () {
|
147 |
+
$activateLicenseButton.text( '<?php fs_esc_js_echo_inline( 'Activating license', 'activating-license', $slug ) ?>...' );
|
148 |
},
|
149 |
success: function( result ) {
|
150 |
var resultObj = $.parseJSON( result );
|
freemius/templates/forms/optout.php
CHANGED
@@ -26,12 +26,13 @@
|
|
26 |
'fs_action' => ( $fs->get_unique_affix() . '_reconnect' ),
|
27 |
) );
|
28 |
|
29 |
-
$plugin_title
|
30 |
-
$
|
31 |
-
$
|
32 |
-
$
|
|
|
33 |
$opt_out_message_clicking_opt_out = sprintf(
|
34 |
-
|
35 |
$plugin_title,
|
36 |
sprintf(
|
37 |
'<a href="%s" target="_blank">%s</a>',
|
@@ -69,14 +70,14 @@ HTML;
|
|
69 |
'<div class="fs-modal fs-modal-opt-out">'
|
70 |
+ ' <div class="fs-modal-dialog">'
|
71 |
+ ' <div class="fs-modal-header">'
|
72 |
-
+ ' <h4><?php echo esc_js( $
|
73 |
+ ' </div>'
|
74 |
+ ' <div class="fs-modal-body">'
|
75 |
+ ' <div class="fs-modal-panel active">' + modalContentHtml + '</div>'
|
76 |
+ ' </div>'
|
77 |
+ ' <div class="fs-modal-footer">'
|
78 |
-
+ ' <button class="button button-secondary button-opt-out" tabindex="1"><?php echo esc_js( $
|
79 |
-
+ ' <button class="button button-primary button-close" tabindex="2"><?php
|
80 |
+ ' </div>'
|
81 |
+ ' </div>'
|
82 |
+ '</div>',
|
@@ -143,7 +144,7 @@ HTML;
|
|
143 |
|
144 |
function resetOptOutButton() {
|
145 |
enableOptOutButton();
|
146 |
-
$optOutButton.text( <?php echo json_encode( $
|
147 |
}
|
148 |
|
149 |
function resetModal() {
|
@@ -176,20 +177,20 @@ HTML;
|
|
176 |
},
|
177 |
beforeSend: function() {
|
178 |
if ( 'opt-in' == action ) {
|
179 |
-
$actionLink.text( <?php
|
180 |
} else {
|
181 |
-
$optOutButton.text( <?php
|
182 |
}
|
183 |
},
|
184 |
success: function( resultObj ) {
|
185 |
if ( resultObj.success ) {
|
186 |
if ( 'allow_tracking' == action ) {
|
187 |
action = 'stop_tracking';
|
188 |
-
$actionLink.text( <?php
|
189 |
showOptInAppreciationMessageAndScrollToTop();
|
190 |
} else {
|
191 |
action = 'allow_tracking';
|
192 |
-
$actionLink.text( <?php
|
193 |
closeModal();
|
194 |
|
195 |
if ( $adminNotice.length > 0 ) {
|
@@ -248,8 +249,8 @@ HTML;
|
|
248 |
}
|
249 |
|
250 |
var label = (('stop_tracking' == action) ?
|
251 |
-
|
252 |
-
<?php
|
253 |
href = (('stop_tracking' != action) ?
|
254 |
'<?php echo esc_js( $reconnect_url ) ?>' :
|
255 |
'');
|
26 |
'fs_action' => ( $fs->get_unique_affix() . '_reconnect' ),
|
27 |
) );
|
28 |
|
29 |
+
$plugin_title = "<strong>{$fs->get_plugin()->title}</strong>";
|
30 |
+
$opt_out_text = fs_text_x_inline( 'Opt Out', 'verb', 'opt-out', $slug );
|
31 |
+
$opt_in_text = fs_text_x_inline( 'Opt In', 'verb', 'opt-in', $slug );
|
32 |
+
$opt_out_message_appreciation = sprintf( fs_text_inline( 'We appreciate your help in making the %s better by letting us track some usage data.', 'opt-out-message-appreciation', $slug ), $fs->get_module_type() );
|
33 |
+
$opt_out_message_usage_tracking = sprintf( fs_text_inline( "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking.", 'opt-out-message-usage-tracking', $slug ), $plugin_title );
|
34 |
$opt_out_message_clicking_opt_out = sprintf(
|
35 |
+
fs_text_inline( 'By clicking "Opt Out", we will no longer be sending any data from %s to %s.', 'opt-out-message-clicking-opt-out', $slug ),
|
36 |
$plugin_title,
|
37 |
sprintf(
|
38 |
'<a href="%s" target="_blank">%s</a>',
|
70 |
'<div class="fs-modal fs-modal-opt-out">'
|
71 |
+ ' <div class="fs-modal-dialog">'
|
72 |
+ ' <div class="fs-modal-header">'
|
73 |
+
+ ' <h4><?php echo esc_js( $opt_out_text ) ?></h4>'
|
74 |
+ ' </div>'
|
75 |
+ ' <div class="fs-modal-body">'
|
76 |
+ ' <div class="fs-modal-panel active">' + modalContentHtml + '</div>'
|
77 |
+ ' </div>'
|
78 |
+ ' <div class="fs-modal-footer">'
|
79 |
+
+ ' <button class="button button-secondary button-opt-out" tabindex="1"><?php echo esc_js( $opt_out_text ) ?></button>'
|
80 |
+
+ ' <button class="button button-primary button-close" tabindex="2"><?php fs_esc_js_echo_inline( 'On second thought - I want to continue helping', 'opt-out-cancel', $slug ) ?></button>'
|
81 |
+ ' </div>'
|
82 |
+ ' </div>'
|
83 |
+ '</div>',
|
144 |
|
145 |
function resetOptOutButton() {
|
146 |
enableOptOutButton();
|
147 |
+
$optOutButton.text( <?php echo json_encode( $opt_out_text ) ?> );
|
148 |
}
|
149 |
|
150 |
function resetModal() {
|
177 |
},
|
178 |
beforeSend: function() {
|
179 |
if ( 'opt-in' == action ) {
|
180 |
+
$actionLink.text( '<?php fs_esc_js_echo_inline( 'Opting in', 'opting-in', $slug ) ?>...' );
|
181 |
} else {
|
182 |
+
$optOutButton.text( '<?php fs_esc_js_echo_inline( 'Opting out', 'opting-out', $slug ) ?>...' );
|
183 |
}
|
184 |
},
|
185 |
success: function( resultObj ) {
|
186 |
if ( resultObj.success ) {
|
187 |
if ( 'allow_tracking' == action ) {
|
188 |
action = 'stop_tracking';
|
189 |
+
$actionLink.text( '<?php echo esc_js( $opt_out_text ) ?>' );
|
190 |
showOptInAppreciationMessageAndScrollToTop();
|
191 |
} else {
|
192 |
action = 'allow_tracking';
|
193 |
+
$actionLink.text( '<?php echo esc_js( $opt_in_text ) ?>' );
|
194 |
closeModal();
|
195 |
|
196 |
if ( $adminNotice.length > 0 ) {
|
249 |
}
|
250 |
|
251 |
var label = (('stop_tracking' == action) ?
|
252 |
+
'<?php echo esc_js( $opt_out_text ) ?>' :
|
253 |
+
'<?php echo esc_js( $opt_in_text ) ?>'),
|
254 |
href = (('stop_tracking' != action) ?
|
255 |
'<?php echo esc_js( $reconnect_url ) ?>' :
|
256 |
'');
|
freemius/templates/forms/resend-key.php
CHANGED
@@ -18,10 +18,10 @@
|
|
18 |
|
19 |
$slug = $fs->get_slug();
|
20 |
|
21 |
-
$send_button_text =
|
22 |
-
$cancel_button_text =
|
23 |
-
$email_address_placeholder =
|
24 |
-
$other_text =
|
25 |
|
26 |
$is_freemium = $fs->is_freemium();
|
27 |
|
@@ -54,7 +54,7 @@ HTML;
|
|
54 |
HTML;
|
55 |
}
|
56 |
|
57 |
-
$message_above_input_field =
|
58 |
$modal_content_html = <<< HTML
|
59 |
<div class="notice notice-error inline license-resend-message"><p></p></div>
|
60 |
<p>{$message_above_input_field}</p>
|
@@ -74,7 +74,7 @@ HTML;
|
|
74 |
+ ' <div class="fs-modal-dialog">'
|
75 |
+ ' <div class="fs-modal-header">'
|
76 |
+ ' <h4><?php echo esc_js( $send_button_text ) ?></h4>'
|
77 |
-
+ ' <a href="#!" class="fs-close" tabindex="3" title="Close"><i class="dashicons dashicons-no" title="<?php
|
78 |
+ ' </div>'
|
79 |
+ ' <div class="fs-modal-body">'
|
80 |
+ ' <div class="fs-modal-panel active">' + contentHtml + '</div>'
|
@@ -151,7 +151,7 @@ HTML;
|
|
151 |
email : email
|
152 |
},
|
153 |
beforeSend: function () {
|
154 |
-
$sendButton.text(<?php
|
155 |
},
|
156 |
success : function (result) {
|
157 |
var resultObj = $.parseJSON(result);
|
18 |
|
19 |
$slug = $fs->get_slug();
|
20 |
|
21 |
+
$send_button_text = fs_text_inline( 'Send License Key', 'send-license-key', $slug );
|
22 |
+
$cancel_button_text = fs_text_inline( 'Cancel', 'cancel', $slug );
|
23 |
+
$email_address_placeholder = fs_esc_attr_inline( 'Email address', 'email-address', $slug );
|
24 |
+
$other_text = fs_text_inline( 'Other', 'other', $slug );
|
25 |
|
26 |
$is_freemium = $fs->is_freemium();
|
27 |
|
54 |
HTML;
|
55 |
}
|
56 |
|
57 |
+
$message_above_input_field = fs_esc_html_inline( "Enter the email address you've used for the upgrade below and we will resend you the license key.", 'ask-for-upgrade-email-address', $slug );
|
58 |
$modal_content_html = <<< HTML
|
59 |
<div class="notice notice-error inline license-resend-message"><p></p></div>
|
60 |
<p>{$message_above_input_field}</p>
|
74 |
+ ' <div class="fs-modal-dialog">'
|
75 |
+ ' <div class="fs-modal-header">'
|
76 |
+ ' <h4><?php echo esc_js( $send_button_text ) ?></h4>'
|
77 |
+
+ ' <a href="#!" class="fs-close" tabindex="3" title="Close"><i class="dashicons dashicons-no" title="<?php echo esc_js( fs_text_x_inline( 'Dismiss', 'as close a window', 'dismiss', $slug ) ) ?>"></i></a>'
|
78 |
+ ' </div>'
|
79 |
+ ' <div class="fs-modal-body">'
|
80 |
+ ' <div class="fs-modal-panel active">' + contentHtml + '</div>'
|
151 |
email : email
|
152 |
},
|
153 |
beforeSend: function () {
|
154 |
+
$sendButton.text('<?php fs_esc_js_echo_inline( 'Sending license key', 'sending-license-key', $slug ) ?>...');
|
155 |
},
|
156 |
success : function (result) {
|
157 |
var resultObj = $.parseJSON(result);
|
freemius/templates/forms/trial-start.php
CHANGED
@@ -18,12 +18,14 @@
|
|
18 |
$slug = $fs->get_slug();
|
19 |
|
20 |
$message_header = sprintf(
|
21 |
-
|
|
|
22 |
'<span class="var-trial_period"></span>',
|
23 |
'<span class="var-plan_title"></span>'
|
24 |
);
|
25 |
$message_content = sprintf(
|
26 |
-
|
|
|
27 |
$fs->get_module_type(),
|
28 |
sprintf(
|
29 |
'<a href="%s" target="_blank">%s</a>',
|
@@ -48,12 +50,12 @@ HTML;
|
|
48 |
'<div class="fs-modal fs-modal-license-key-resend">'
|
49 |
+ ' <div class="fs-modal-dialog">'
|
50 |
+ ' <div class="fs-modal-header">'
|
51 |
-
+ ' <h4><?php
|
52 |
+ ' </div>'
|
53 |
+ ' <div class="fs-modal-body">' + modalContentHtml + '</div>'
|
54 |
+ ' <div class="fs-modal-footer">'
|
55 |
-
+ ' <button class="button button-secondary button-close">' + <?php
|
56 |
-
+ ' <button class="button button-primary button-connect">' + <?php
|
57 |
+ ' </div>'
|
58 |
+ ' </div>'
|
59 |
+ '</div>',
|
@@ -90,13 +92,13 @@ HTML;
|
|
90 |
// Disable all buttons during trial activation.
|
91 |
$modal.find('.button').prop('disabled', true);
|
92 |
|
93 |
-
$button.text(<?php
|
94 |
|
95 |
setLoadingMode();
|
96 |
},
|
97 |
success : function (resultObj) {
|
98 |
if (resultObj.success) {
|
99 |
-
$button.text(<?php
|
100 |
|
101 |
// Redirect to the "Account" page and sync the license.
|
102 |
window.location.href = resultObj.data.next_page;
|
18 |
$slug = $fs->get_slug();
|
19 |
|
20 |
$message_header = sprintf(
|
21 |
+
/* translators: %1$s: Number of trial days; %2$s: Plan name; */
|
22 |
+
fs_text_inline( 'You are 1-click away from starting your %1$s-day free trial of the %2$s plan.', 'start-trial-prompt-header', $slug ),
|
23 |
'<span class="var-trial_period"></span>',
|
24 |
'<span class="var-plan_title"></span>'
|
25 |
);
|
26 |
$message_content = sprintf(
|
27 |
+
/* translators: %s: Link to freemius.com */
|
28 |
+
fs_text_inline( 'For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial.', 'start-trial-prompt-message', $slug ),
|
29 |
$fs->get_module_type(),
|
30 |
sprintf(
|
31 |
'<a href="%s" target="_blank">%s</a>',
|
50 |
'<div class="fs-modal fs-modal-license-key-resend">'
|
51 |
+ ' <div class="fs-modal-dialog">'
|
52 |
+ ' <div class="fs-modal-header">'
|
53 |
+
+ ' <h4><?php echo esc_js( fs_text_x_inline( 'Start free trial', 'call to action', 'start-free-trial', $slug ) ) ?></h4>'
|
54 |
+ ' </div>'
|
55 |
+ ' <div class="fs-modal-body">' + modalContentHtml + '</div>'
|
56 |
+ ' <div class="fs-modal-footer">'
|
57 |
+
+ ' <button class="button button-secondary button-close">' + <?php fs_json_encode_echo_inline( 'Cancel', 'cancel', $slug ) ?> +'</button>'
|
58 |
+
+ ' <button class="button button-primary button-connect">' + <?php fs_json_encode_echo_inline( 'Approve & Start Trial', 'approve-start-trial', $slug ) ?> +'</button>'
|
59 |
+ ' </div>'
|
60 |
+ ' </div>'
|
61 |
+ '</div>',
|
92 |
// Disable all buttons during trial activation.
|
93 |
$modal.find('.button').prop('disabled', true);
|
94 |
|
95 |
+
$button.text(<?php fs_json_encode_echo_inline( 'Starting trial', 'starting-trial', $slug ) ?> + '...');
|
96 |
|
97 |
setLoadingMode();
|
98 |
},
|
99 |
success : function (resultObj) {
|
100 |
if (resultObj.success) {
|
101 |
+
$button.text(<?php fs_json_encode_echo_inline( 'Please wait', 'please-wait', $slug ) ?> + '...');
|
102 |
|
103 |
// Redirect to the "Account" page and sync the license.
|
104 |
window.location.href = resultObj.data.next_page;
|
freemius/templates/js/style-premium-theme.php
CHANGED
@@ -34,7 +34,7 @@
|
|
34 |
if (0 === $theme.find('.fs-premium-theme-badge').length) {
|
35 |
$theme.addClass('fs-premium');
|
36 |
|
37 |
-
$theme.append('<span class="fs-premium-theme-badge">' + <?php echo json_encode( $fs->
|
38 |
}
|
39 |
};
|
40 |
|
34 |
if (0 === $theme.find('.fs-premium-theme-badge').length) {
|
35 |
$theme.addClass('fs-premium');
|
36 |
|
37 |
+
$theme.append('<span class="fs-premium-theme-badge">' + <?php echo json_encode( $fs->get_text_inline( 'Premium', 'premium' ) ) ?> +'</span>');
|
38 |
}
|
39 |
};
|
40 |
|
freemius/templates/plugin-icon.php
CHANGED
@@ -100,9 +100,9 @@
|
|
100 |
$ext = pathinfo( strtok( $icon, '?' ), PATHINFO_EXTENSION );
|
101 |
|
102 |
$local_path = fs_normalize_path( $img_dir . '/' . $slug . '.' . $ext );
|
103 |
-
fs_download_image( $icon, $local_path );
|
104 |
|
105 |
-
|
|
|
106 |
}
|
107 |
}
|
108 |
|
100 |
$ext = pathinfo( strtok( $icon, '?' ), PATHINFO_EXTENSION );
|
101 |
|
102 |
$local_path = fs_normalize_path( $img_dir . '/' . $slug . '.' . $ext );
|
|
|
103 |
|
104 |
+
// Try to download the icon.
|
105 |
+
$icon_found = fs_download_image( $icon, $local_path );
|
106 |
}
|
107 |
}
|
108 |
|
freemius/templates/plugin-info/description.php
CHANGED
@@ -52,7 +52,7 @@
|
|
52 |
<?php if ( ! empty( $plugin->info->screenshots ) ) : ?>
|
53 |
<?php $screenshots = $plugin->info->screenshots ?>
|
54 |
<div class="fs-screenshots clearfix">
|
55 |
-
<h2><?php
|
56 |
<ul>
|
57 |
<?php $i = 0;
|
58 |
foreach ( $screenshots as $s => $url ) : ?>
|
@@ -69,7 +69,7 @@
|
|
69 |
}
|
70 |
</style>
|
71 |
<a href="<?php echo $url ?>"
|
72 |
-
title="<?php echo esc_attr( sprintf(
|
73 |
class="fs-screenshot-<?php echo $i ?>"></a>
|
74 |
</li>
|
75 |
<?php $i ++; endforeach ?>
|
52 |
<?php if ( ! empty( $plugin->info->screenshots ) ) : ?>
|
53 |
<?php $screenshots = $plugin->info->screenshots ?>
|
54 |
<div class="fs-screenshots clearfix">
|
55 |
+
<h2><?php fs_esc_html_echo_inline( 'Screenshots', 'screenshots', $plugin->slug ) ?></h2>
|
56 |
<ul>
|
57 |
<?php $i = 0;
|
58 |
foreach ( $screenshots as $s => $url ) : ?>
|
69 |
}
|
70 |
</style>
|
71 |
<a href="<?php echo $url ?>"
|
72 |
+
title="<?php echo esc_attr( sprintf( fs_text_inline( 'Click to view full-size screenshot %d', 'view-full-size-x', $plugin->slug ), $i ) ) ?>"
|
73 |
class="fs-screenshot-<?php echo $i ?>"></a>
|
74 |
</li>
|
75 |
<?php $i ++; endforeach ?>
|
freemius/templates/plugin-info/features.php
CHANGED
@@ -40,7 +40,7 @@
|
|
40 |
if ( ! isset( $features_plan_map['support'] ) ) {
|
41 |
$support_feature = new stdClass();
|
42 |
$support_feature->id = 'support';
|
43 |
-
$support_feature->title =
|
44 |
$features_plan_map[ $support_feature->id ] = array( 'feature' => $support_feature, 'plans' => array() );
|
45 |
} else {
|
46 |
$support_feature = $features_plan_map['support'];
|
@@ -53,7 +53,7 @@
|
|
53 |
// Add updates as a feature for all plans.
|
54 |
$updates_feature = new stdClass();
|
55 |
$updates_feature->id = 'updates';
|
56 |
-
$updates_feature->title =
|
57 |
$features_plan_map[ $updates_feature->id ] = array( 'feature' => $updates_feature, 'plans' => array() );
|
58 |
foreach ( $plans as $plan ) {
|
59 |
$features_plan_map[ $updates_feature->id ]['plans'][ $plan->id ] = $updates_feature;
|
@@ -69,7 +69,7 @@
|
|
69 |
<?php echo $plan->title ?>
|
70 |
<span class="fs-price"><?php
|
71 |
if ( empty( $plan->pricing ) ) {
|
72 |
-
|
73 |
} else {
|
74 |
foreach ( $plan->pricing as $pricing ) {
|
75 |
/**
|
@@ -77,9 +77,9 @@
|
|
77 |
*/
|
78 |
if ( 1 == $pricing->licenses ) {
|
79 |
if ( $pricing->has_annual() ) {
|
80 |
-
echo "\${$pricing->annual_price} / " .
|
81 |
} else if ( $pricing->has_monthly() ) {
|
82 |
-
echo "\${$pricing->monthly_price} / " .
|
83 |
} else {
|
84 |
echo "\${$pricing->lifetime_price}";
|
85 |
}
|
40 |
if ( ! isset( $features_plan_map['support'] ) ) {
|
41 |
$support_feature = new stdClass();
|
42 |
$support_feature->id = 'support';
|
43 |
+
$support_feature->title = fs_text_inline( 'Support', $plugin->slug );
|
44 |
$features_plan_map[ $support_feature->id ] = array( 'feature' => $support_feature, 'plans' => array() );
|
45 |
} else {
|
46 |
$support_feature = $features_plan_map['support'];
|
53 |
// Add updates as a feature for all plans.
|
54 |
$updates_feature = new stdClass();
|
55 |
$updates_feature->id = 'updates';
|
56 |
+
$updates_feature->title = fs_text_inline( 'Unlimited Updates', 'unlimited-updates', $plugin->slug );
|
57 |
$features_plan_map[ $updates_feature->id ] = array( 'feature' => $updates_feature, 'plans' => array() );
|
58 |
foreach ( $plans as $plan ) {
|
59 |
$features_plan_map[ $updates_feature->id ]['plans'][ $plan->id ] = $updates_feature;
|
69 |
<?php echo $plan->title ?>
|
70 |
<span class="fs-price"><?php
|
71 |
if ( empty( $plan->pricing ) ) {
|
72 |
+
fs_esc_html_echo_inline( 'Free', 'free', $plugin->slug );
|
73 |
} else {
|
74 |
foreach ( $plan->pricing as $pricing ) {
|
75 |
/**
|
77 |
*/
|
78 |
if ( 1 == $pricing->licenses ) {
|
79 |
if ( $pricing->has_annual() ) {
|
80 |
+
echo "\${$pricing->annual_price} / " . fs_esc_html_x_inline( 'year', 'as annual period', 'year', $plugin->slug );
|
81 |
} else if ( $pricing->has_monthly() ) {
|
82 |
+
echo "\${$pricing->monthly_price} / " . fs_esc_html_x_inline( 'mo', 'as monthly period', 'mo', $plugin->slug );
|
83 |
} else {
|
84 |
echo "\${$pricing->lifetime_price}";
|
85 |
}
|
freemius/templates/plugin-info/screenshots.php
CHANGED
@@ -28,7 +28,7 @@
|
|
28 |
$url = 'http' . ( WP_FS__IS_HTTPS ? 's' : '' ) . ':' . $url;
|
29 |
?>
|
30 |
<li>
|
31 |
-
<a href="<?php echo $url ?>" title="<?php echo esc_attr( sprintf(
|
32 |
</li>
|
33 |
<?php $i ++; endforeach ?>
|
34 |
</ol>
|
28 |
$url = 'http' . ( WP_FS__IS_HTTPS ? 's' : '' ) . ':' . $url;
|
29 |
?>
|
30 |
<li>
|
31 |
+
<a href="<?php echo $url ?>" title="<?php echo esc_attr( sprintf( fs_text_inline( 'Click to view full-size screenshot %d', 'view-full-size-x', $plugin->slug ), $i ) ) ?>"><img src="<?php echo $url ?>"></a>
|
32 |
</li>
|
33 |
<?php $i ++; endforeach ?>
|
34 |
</ol>
|
freemius/templates/pricing.php
CHANGED
@@ -89,7 +89,7 @@
|
|
89 |
|
90 |
$view_params = array(
|
91 |
'id' => $VARS['id'],
|
92 |
-
'page' => strtolower( $fs->
|
93 |
);
|
94 |
fs_require_once_template('secure-https-header.php', $view_params);
|
95 |
|
89 |
|
90 |
$view_params = array(
|
91 |
'id' => $VARS['id'],
|
92 |
+
'page' => strtolower( $fs->get_text_x_inline( 'Pricing', 'noun', 'pricing' ) ),
|
93 |
);
|
94 |
fs_require_once_template('secure-https-header.php', $view_params);
|
95 |
|
freemius/templates/secure-https-header.php
CHANGED
@@ -24,7 +24,8 @@
|
|
24 |
$fs = freemius( $VARS['id'] );
|
25 |
|
26 |
echo esc_html( sprintf(
|
27 |
-
|
|
|
28 |
$VARS['page']
|
29 |
) ) .
|
30 |
' - ' .
|
24 |
$fs = freemius( $VARS['id'] );
|
25 |
|
26 |
echo esc_html( sprintf(
|
27 |
+
/* translators: %s: Page name */
|
28 |
+
$fs->get_text_inline( 'Secure HTTPS %s page, running from an external domain', 'secure-x-page-header' ),
|
29 |
$VARS['page']
|
30 |
) ) .
|
31 |
' - ' .
|
freemius/templates/tabs.php
CHANGED
@@ -1,179 +1,178 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
})(jQuery);
|
179 |
</script>
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
6 |
+
* @since 1.2.2.7
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* @var array $VARS
|
15 |
+
* @var Freemius $fs
|
16 |
+
*/
|
17 |
+
$fs = freemius( $VARS['id'] );
|
18 |
+
|
19 |
+
$slug = $fs->get_slug();
|
20 |
+
|
21 |
+
$menu_items = $fs->get_menu_items();
|
22 |
+
|
23 |
+
$tabs = array();
|
24 |
+
foreach ( $menu_items as $priority => $items ) {
|
25 |
+
foreach ( $items as $item ) {
|
26 |
+
if ( ! $item['show_submenu'] ) {
|
27 |
+
continue;
|
28 |
+
}
|
29 |
+
|
30 |
+
$url = $fs->_get_admin_page_url( $item['menu_slug'] );
|
31 |
+
$title = $item['menu_title'];
|
32 |
+
|
33 |
+
$tab = array(
|
34 |
+
'label' => $title,
|
35 |
+
'href' => $url,
|
36 |
+
'slug' => $item['menu_slug'],
|
37 |
+
);
|
38 |
+
|
39 |
+
if ( 'pricing' === $item['menu_slug'] && $fs->is_in_trial_promotion() ) {
|
40 |
+
$tab['href'] .= '&trial=true';
|
41 |
+
}
|
42 |
+
|
43 |
+
$tabs[] = $tab;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
?>
|
47 |
+
<script type="text/javascript">
|
48 |
+
(function ($) {
|
49 |
+
$(document).ready(function () {
|
50 |
+
var $wrap = $('.wrap');
|
51 |
+
if (0 === $wrap.length) {
|
52 |
+
$wrap = $('<div class="wrap">');
|
53 |
+
$wrap.insertBefore($('#wpbody-content .clear'));
|
54 |
+
}
|
55 |
+
|
56 |
+
var
|
57 |
+
$tabsWrapper = $('.nav-tab-wrapper'),
|
58 |
+
$tabs = $tabsWrapper.find('.nav-tab'),
|
59 |
+
$tab = null;
|
60 |
+
|
61 |
+
if (0 < $tabs.length) {
|
62 |
+
// Tries to set $tab to the first inactive tab.
|
63 |
+
for (var i = 0; i < $tabs.length; i++) {
|
64 |
+
$tab = $($tabs[i]);
|
65 |
+
|
66 |
+
if (!$tab.hasClass('nav-tab-active')) {
|
67 |
+
break;
|
68 |
+
}
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
<?php if (0 < count( $tabs )) : ?>
|
73 |
+
if (null == $tab) {
|
74 |
+
// No tabs found, therefore, create new tabs section if required.
|
75 |
+
var $h1 = $wrap.find('h1');
|
76 |
+
|
77 |
+
$tabsWrapper = $('<h2 class="nav-tab-wrapper"></h2>');
|
78 |
+
|
79 |
+
if (0 < $h1.length) {
|
80 |
+
$tabsWrapper.insertAfter($h1);
|
81 |
+
} else if (0 < $wrap.length) {
|
82 |
+
$wrap.prepend($tabsWrapper);
|
83 |
+
}
|
84 |
+
|
85 |
+
$tab = $('<a href="#" class="nav-tab"></a>');
|
86 |
+
}
|
87 |
+
|
88 |
+
// Create a clone.
|
89 |
+
$tab = $tab.clone();
|
90 |
+
// Open in current page.
|
91 |
+
$tab.removeAttr('target');
|
92 |
+
$tab.removeClass('nav-tab-active');
|
93 |
+
$tab.addClass('fs-tab');
|
94 |
+
$tab.addClass('<?php echo $fs->get_unique_affix() ?>');
|
95 |
+
|
96 |
+
var $tabClone = null;
|
97 |
+
|
98 |
+
<?php $freemius_context_page = null ?>
|
99 |
+
|
100 |
+
<?php foreach ($tabs as $tab) : ?>
|
101 |
+
<?php $is_support_tab = ( 'wp-support-forum' == $tab['slug'] ) ?>
|
102 |
+
// Add the Freemius tabs.
|
103 |
+
$tabClone = $tab.clone();
|
104 |
+
$tabClone.html(<?php echo json_encode( $tab['label'] ) ?>)
|
105 |
+
.attr('href', '<?php echo $is_support_tab ? $fs->get_support_forum_url() : $tab['href'] ?>')
|
106 |
+
.appendTo($tabsWrapper)
|
107 |
+
// Remove any custom click events.
|
108 |
+
.off('click', '**')
|
109 |
+
.addClass('<?php echo $tab['slug'] ?>')
|
110 |
+
// Avoid tab click triggering parent events.
|
111 |
+
.click(function (e) {
|
112 |
+
e.stopPropagation();
|
113 |
+
});
|
114 |
+
|
115 |
+
<?php if ($is_support_tab) : ?>
|
116 |
+
// Open support in a new tab/page.
|
117 |
+
$tabClone.attr('target', '_blank');
|
118 |
+
<?php endif ?>
|
119 |
+
|
120 |
+
<?php if ($fs->is_admin_page( $tab['slug'] )) : ?>
|
121 |
+
<?php $freemius_context_page = $tab['slug'] ?>
|
122 |
+
// Select the relevant Freemius tab.
|
123 |
+
$tabs.removeClass('nav-tab-active');
|
124 |
+
$tabClone.addClass('nav-tab-active');
|
125 |
+
|
126 |
+
<?php if (in_array( $freemius_context_page, array( 'pricing', 'contact', 'checkout' ) )) : ?>
|
127 |
+
// Add AJAX loader.
|
128 |
+
$tabClone.prepend('<i class="fs-ajax-spinner"></i>');
|
129 |
+
// Hide loader after content fully loaded.
|
130 |
+
$('.wrap i' + 'frame').load(function () {
|
131 |
+
$(".fs-ajax-spinner").hide();
|
132 |
+
});
|
133 |
+
<?php endif ?>
|
134 |
+
|
135 |
+
// Fix URLs that are starting with a hashtag.
|
136 |
+
$tabs.each(function (j, tab) {
|
137 |
+
if (0 === $(tab).attr('href').indexOf('#')) {
|
138 |
+
$(tab).attr('href', '<?php echo esc_js( $fs->main_menu_url() ) ?>' + $(tab).attr('href'));
|
139 |
+
}
|
140 |
+
});
|
141 |
+
<?php endif ?>
|
142 |
+
<?php endforeach ?>
|
143 |
+
|
144 |
+
var selectTab = function ($tab) {
|
145 |
+
$(window).load(function () {
|
146 |
+
$tab.click();
|
147 |
+
|
148 |
+
// Scroll to the top since the browser will auto scroll to the anchor.
|
149 |
+
document.body.scrollTop = 0;
|
150 |
+
document.body.scrollLeft = 0;
|
151 |
+
// window.scrollTo(0,0);
|
152 |
+
});
|
153 |
+
};
|
154 |
+
|
155 |
+
// If the URL is loaded with a hashtag, find the context tab and select it.
|
156 |
+
if (window.location.hash) {
|
157 |
+
for (var j = 0; j < $tabs.length; j++) {
|
158 |
+
if (window.location.hash === $($tabs[j]).attr('href')) {
|
159 |
+
selectTab($($tabs[j]));
|
160 |
+
break;
|
161 |
+
}
|
162 |
+
}
|
163 |
+
}
|
164 |
+
|
165 |
+
<?php if (is_string( $freemius_context_page ) && in_array( $freemius_context_page, array(
|
166 |
+
'pricing',
|
167 |
+
'contact',
|
168 |
+
'checkout'
|
169 |
+
) )) : ?>
|
170 |
+
// Add margin to the upper section of the tabs to give extra space for the HTTPS header.
|
171 |
+
// @todo This code assumes that the wrapper style is fully loaded, if there's a stylesheet that is not loaded via the HTML head, it may cause unpredicted margin-top.
|
172 |
+
var $tabsWrap = $tabsWrapper.parents('.wrap');
|
173 |
+
$tabsWrap.css('marginTop', (parseInt($tabsWrap.css('marginTop'), 10) + 30) + 'px');
|
174 |
+
<?php endif ?>
|
175 |
+
<?php endif ?>
|
176 |
+
});
|
177 |
+
})(jQuery);
|
|
|
178 |
</script>
|
makefile
DELETED
@@ -1,22 +0,0 @@
|
|
1 |
-
PREFIX = Premmerce\\UrlManager
|
2 |
-
OUTPUT_DIR = sdk
|
3 |
-
INPUT_DIR = vendor
|
4 |
-
PACKAGE = premmerce/wordpress-sdk/src
|
5 |
-
|
6 |
-
all: scope_sdk get_freemius fix
|
7 |
-
|
8 |
-
scope_sdk:
|
9 |
-
composer update --no-dev
|
10 |
-
php-scoper add-prefix $(INPUT_DIR)/$(PACKAGE) --prefix=$(PREFIX) --force --verbose --output-dir=$(OUTPUT_DIR)
|
11 |
-
rm -rf vendor/premmerce
|
12 |
-
composer dumpautoload -o
|
13 |
-
|
14 |
-
get_freemius:
|
15 |
-
wget 'https://github.com/Freemius/wordpress-sdk/archive/master.zip'
|
16 |
-
unzip master.zip -d temp
|
17 |
-
rm -rf freemius
|
18 |
-
mv temp/wordpress-sdk-master freemius
|
19 |
-
rm -rf master.zip temp
|
20 |
-
|
21 |
-
fix:
|
22 |
-
./fix_freemius
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
premmerce-url-manager.php
CHANGED
@@ -11,7 +11,7 @@ use Premmerce\UrlManager\UrlManagerPlugin;
|
|
11 |
* Plugin Name: WooCommerce Permalink Manager
|
12 |
* Plugin URI: https://premmerce.com/woocommerce-permalink-manager-remove-shop-product-product-category-url/
|
13 |
* Description: Premmerce WooCommerce Permalink Manager allows you to change WooCommerce permalink and remove product and product_category slugs from the URL.
|
14 |
-
* Version: 1.1
|
15 |
* Author: premmerce
|
16 |
* Author URI: https://premmerce.com/
|
17 |
* License: GPL-2.0+
|
@@ -20,7 +20,7 @@ use Premmerce\UrlManager\UrlManagerPlugin;
|
|
20 |
* Domain Path: /languages
|
21 |
*
|
22 |
* WC requires at least: 3.0.0
|
23 |
-
* WC tested up to: 3.2.
|
24 |
*/
|
25 |
|
26 |
// If this file is called directly, abort.
|
@@ -31,6 +31,10 @@ if(!defined('WPINC')){
|
|
31 |
call_user_func(function(){
|
32 |
require_once plugin_dir_path(__FILE__) . 'vendor/autoload.php';
|
33 |
|
|
|
|
|
|
|
|
|
34 |
$main = new UrlManagerPlugin(__FILE__);
|
35 |
|
36 |
register_activation_hook(__FILE__, [$main, 'activate']);
|
11 |
* Plugin Name: WooCommerce Permalink Manager
|
12 |
* Plugin URI: https://premmerce.com/woocommerce-permalink-manager-remove-shop-product-product-category-url/
|
13 |
* Description: Premmerce WooCommerce Permalink Manager allows you to change WooCommerce permalink and remove product and product_category slugs from the URL.
|
14 |
+
* Version: 1.1.2
|
15 |
* Author: premmerce
|
16 |
* Author URI: https://premmerce.com/
|
17 |
* License: GPL-2.0+
|
20 |
* Domain Path: /languages
|
21 |
*
|
22 |
* WC requires at least: 3.0.0
|
23 |
+
* WC tested up to: 3.2.5
|
24 |
*/
|
25 |
|
26 |
// If this file is called directly, abort.
|
31 |
call_user_func(function(){
|
32 |
require_once plugin_dir_path(__FILE__) . 'vendor/autoload.php';
|
33 |
|
34 |
+
if(!get_option('premmerce_version')){
|
35 |
+
require_once plugin_dir_path(__FILE__) . '/freemius.php';
|
36 |
+
}
|
37 |
+
|
38 |
$main = new UrlManagerPlugin(__FILE__);
|
39 |
|
40 |
register_activation_hook(__FILE__, [$main, 'activate']);
|
readme.md
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/6d89fe39-4b85-4f79-ae6c-9e26a5787fe2/mini.png)](https://insight.sensiolabs.com/projects/6d89fe39-4b85-4f79-ae6c-9e26a5787fe2)
|
2 |
-
# WooCommerce Permalink Manager
|
3 |
-
|
4 |
-
Premmerce WooCommerce Permalink Manager allows you to change WooCommerce permalink and remove product and product_category slugs from the URL.
|
5 |
-
|
6 |
-
## Description
|
7 |
-
|
8 |
-
This plugin allows you to configure URL generation strategy for your WooCommerce based store. This is one of the must-have plugins for online store SEO according to [WooCommerce SEO Audit](https://premmerce.com/complete-woocommerce-seo-guide-tips/)
|
9 |
-
|
10 |
-
Full documentation is available here: [WooCommerce Permalink Manager](https://premmerce.com/woocommerce-permalink-manager-remove-shop-product-product-category-url/)
|
11 |
-
|
12 |
-
### Major features in “Premmerce url manager”
|
13 |
-
|
14 |
-
* Removing base from product category URL
|
15 |
-
* Removing hierarchical slugs from product category URL
|
16 |
-
* Removing base from product URL
|
17 |
-
* Using “Yoast SEO” permanent category url for products with multiple categories
|
18 |
-
|
19 |
-
### Compatibility with other Plugins
|
20 |
-
|
21 |
-
* WooCommerce
|
22 |
-
* Yoast SEO
|
23 |
-
* WooCommerce Multilingual
|
24 |
-
|
25 |
-
### Installation
|
26 |
-
|
27 |
-
1. Unzip the downloaded zip file.
|
28 |
-
1. Upload the plugin folder into the “wp-content/plugins/” directory of your WordPress site.
|
29 |
-
1. Activate “WooCommerce URL manager” from Plugins page
|
30 |
-
|
31 |
-
## Frequently Asked Questions
|
32 |
-
|
33 |
-
# Does the plugin affect the overall response rate of an online store?
|
34 |
-
We have tested how the plugin works with the basic WooCommerce kit and the standard storefront theme and haven’t noticed any influence on the response rate of the store.
|
35 |
-
|
36 |
-
# Does the plugin create link duplicates? Does it affect SEO?
|
37 |
-
The plugin works perfectly with the Yoast SEO plugin installed. No link duplicates are generated. All similar URLs are automatically tagged as canonical in accordance with the search engines’ recommendations.
|
38 |
-
|
39 |
-
## Changelog
|
40 |
-
|
41 |
-
### 1.0
|
42 |
-
|
43 |
-
Release Date: July 24, 2017
|
44 |
-
|
45 |
-
* Initial release
|
46 |
-
|
47 |
-
### 1.0.1
|
48 |
-
|
49 |
-
Release Date: Sep 26, 2017
|
50 |
-
|
51 |
-
* Fixed a bug with wrong translation domain
|
52 |
-
* Updated FileManager
|
53 |
-
|
54 |
-
## Translators
|
55 |
-
|
56 |
-
### Available Languages
|
57 |
-
|
58 |
-
* English (Default)
|
59 |
-
* Russian
|
60 |
-
* Ukrainian
|
61 |
-
|
62 |
-
## Documentation
|
63 |
-
|
64 |
-
Full documentation is available here: [WooCommerce permalink manager](https://premmerce.com/woocommerce-permalink-manager-remove-shop-product-product-category-url/)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: premmerce
|
3 |
Tags: woocommerce url, remove product, remove product_category, woocommerce permalink, woocommerce, woocommerce seo
|
4 |
Requires at least: 4.8
|
5 |
-
Tested up to: 4.
|
6 |
-
Stable tag: 1.1
|
7 |
Requires PHP: 5.6
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -16,7 +16,7 @@ This plugin allows you to configure URL generation strategy for your WooCommerce
|
|
16 |
|
17 |
Full documentation is available here: [WooCommerce Permalink Manager](https://premmerce.com/woocommerce-permalink-manager-remove-shop-product-product-category-url/)
|
18 |
|
19 |
-
= Major features in “
|
20 |
|
21 |
* Removing base from product category URL
|
22 |
* Removing hierarchical slugs from product category URL
|
@@ -33,7 +33,7 @@ Full documentation is available here: [WooCommerce Permalink Manager](https://pr
|
|
33 |
|
34 |
1. Unzip the downloaded zip file.
|
35 |
1. Upload the plugin folder into the “wp-content/plugins/” directory of your WordPress site.
|
36 |
-
1. Activate “WooCommerce
|
37 |
|
38 |
== Frequently Asked Questions ==
|
39 |
|
@@ -78,6 +78,23 @@ Release Date: Oct 31, 2017
|
|
78 |
* Fixed bug with plain settings
|
79 |
* Fixed bug with rewrite rules after plugin install
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
== Translators ==
|
82 |
|
83 |
= Available Languages =
|
2 |
Contributors: premmerce
|
3 |
Tags: woocommerce url, remove product, remove product_category, woocommerce permalink, woocommerce, woocommerce seo
|
4 |
Requires at least: 4.8
|
5 |
+
Tested up to: 4.9.1
|
6 |
+
Stable tag: 1.1.2
|
7 |
Requires PHP: 5.6
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
16 |
|
17 |
Full documentation is available here: [WooCommerce Permalink Manager](https://premmerce.com/woocommerce-permalink-manager-remove-shop-product-product-category-url/)
|
18 |
|
19 |
+
= Major features in “WooCommerce Permalink Manager” =
|
20 |
|
21 |
* Removing base from product category URL
|
22 |
* Removing hierarchical slugs from product category URL
|
33 |
|
34 |
1. Unzip the downloaded zip file.
|
35 |
1. Upload the plugin folder into the “wp-content/plugins/” directory of your WordPress site.
|
36 |
+
1. Activate “WooCommerce Permalink Manager” from Plugins page
|
37 |
|
38 |
== Frequently Asked Questions ==
|
39 |
|
78 |
* Fixed bug with plain settings
|
79 |
* Fixed bug with rewrite rules after plugin install
|
80 |
|
81 |
+
= 1.1.1 =
|
82 |
+
|
83 |
+
Release Date: Nov 20, 2017
|
84 |
+
|
85 |
+
* Added WordPress 4.9 support
|
86 |
+
* Added WooCommerce 3.2.4 support
|
87 |
+
|
88 |
+
= 1.1.2 =
|
89 |
+
|
90 |
+
Release Date: Dec 06, 2017
|
91 |
+
|
92 |
+
* Fixed product comments pagination
|
93 |
+
* Added Premmerce icon to menu
|
94 |
+
* Added Premmerce version check
|
95 |
+
* Added WordPress 4.9.1 support
|
96 |
+
* Added WooCommerce 3.2.5 support
|
97 |
+
|
98 |
== Translators ==
|
99 |
|
100 |
= Available Languages =
|
src/Admin/Admin.php
CHANGED
@@ -58,15 +58,22 @@ class Admin{
|
|
58 |
|
59 |
$premmerceMenuExists = isset($admin_page_hooks['premmerce']);
|
60 |
|
|
|
61 |
if(!$premmerceMenuExists){
|
|
|
|
|
|
|
62 |
add_menu_page(
|
63 |
'Premmerce',
|
64 |
'Premmerce',
|
65 |
'manage_options',
|
66 |
-
'premmerce'
|
|
|
|
|
67 |
);
|
68 |
}
|
69 |
|
|
|
70 |
add_submenu_page(
|
71 |
'premmerce',
|
72 |
'Permalink Manager',
|
58 |
|
59 |
$premmerceMenuExists = isset($admin_page_hooks['premmerce']);
|
60 |
|
61 |
+
|
62 |
if(!$premmerceMenuExists){
|
63 |
+
$svg = '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="20" height="16" style="fill:#82878c" viewBox="0 0 20 16"><g id="Rectangle_7"> <path d="M17.8,4l-0.5,1C15.8,7.3,14.4,8,14,8c0,0,0,0,0,0H8h0V4.3C8,4.1,8.1,4,8.3,4H17.8 M4,0H1C0.4,0,0,0.4,0,1c0,0.6,0.4,1,1,1 h1.7C2.9,2,3,2.1,3,2.3V12c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1V1C5,0.4,4.6,0,4,0L4,0z M18,2H7.3C6.6,2,6,2.6,6,3.3V12 c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1v-1.7C8,10.1,8.1,10,8.3,10H14c1.1,0,3.2-1.1,5-4l0.7-1.4C20,4,20,3.2,19.5,2.6 C19.1,2.2,18.6,2,18,2L18,2z M14,11h-4c-0.6,0-1,0.4-1,1c0,0.6,0.4,1,1,1h4c0.6,0,1-0.4,1-1C15,11.4,14.6,11,14,11L14,11z M14,14 c-0.6,0-1,0.4-1,1c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1C15,14.4,14.6,14,14,14L14,14z M4,14c-0.6,0-1,0.4-1,1c0,0.6,0.4,1,1,1 c0.6,0,1-0.4,1-1C5,14.4,4.6,14,4,14L4,14z"/></g></svg>';
|
64 |
+
$svg = 'data:image/svg+xml;base64,' . base64_encode($svg);
|
65 |
+
|
66 |
add_menu_page(
|
67 |
'Premmerce',
|
68 |
'Premmerce',
|
69 |
'manage_options',
|
70 |
+
'premmerce',
|
71 |
+
'',
|
72 |
+
$svg
|
73 |
);
|
74 |
}
|
75 |
|
76 |
+
|
77 |
add_submenu_page(
|
78 |
'premmerce',
|
79 |
'Permalink Manager',
|
src/PermalinkListener.php
CHANGED
@@ -8,275 +8,267 @@
|
|
8 |
*
|
9 |
* @package Premmerce\UrlManager
|
10 |
*/
|
11 |
-
class PermalinkListener
|
12 |
-
{
|
13 |
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
}
|
28 |
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
}
|
43 |
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
|
48 |
-
|
49 |
|
50 |
-
|
51 |
|
52 |
-
|
53 |
|
54 |
-
|
55 |
-
|
56 |
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
|
66 |
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
/**
|
72 |
-
* Replace product permalink according to settings
|
73 |
-
*
|
74 |
-
*
|
75 |
-
* @param string $permalink
|
76 |
-
* @param object $post
|
77 |
-
*
|
78 |
-
* @return string
|
79 |
-
*/
|
80 |
-
public function replaceProductLink($permalink, $post)
|
81 |
-
{
|
82 |
-
if ($post->post_type !== UrlManagerPlugin::WOOCOMMERCE_PRODUCT) {
|
83 |
-
return $permalink;
|
84 |
-
}
|
85 |
-
|
86 |
-
|
87 |
-
if (!get_option('permalink_structure')) {
|
88 |
-
return $permalink;
|
89 |
-
}
|
90 |
-
|
91 |
-
|
92 |
-
$urlOptions = get_option(UrlManagerPlugin::OPTION_URL);
|
93 |
-
|
94 |
-
$permalinkStructure = wc_get_permalink_structure();
|
95 |
-
|
96 |
-
$product_base = $permalinkStructure['product_rewrite_slug'];
|
97 |
-
|
98 |
-
$removeProductBase = isset($urlOptions['remove_product_base']);
|
99 |
-
|
100 |
-
$product_base = explode('/', '/' . ltrim($product_base, '/'));
|
101 |
-
|
102 |
-
|
103 |
-
$remove = array_filter($product_base, function ($el) use ($removeProductBase) {
|
104 |
-
if ($el === '%product_cat%') {
|
105 |
-
return false;
|
106 |
-
}
|
107 |
-
if (mb_strlen($el) > 0) {
|
108 |
-
return $removeProductBase;
|
109 |
-
}
|
110 |
|
111 |
-
return true;
|
112 |
-
});
|
113 |
|
114 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
|
116 |
-
$link = str_replace($remove . '/', '/', $permalink);
|
117 |
|
118 |
-
|
119 |
|
120 |
-
|
121 |
-
}
|
122 |
|
123 |
-
|
124 |
-
* Replace %product_cat% variable with primary category link if seo plugin is enabled
|
125 |
-
*
|
126 |
-
* @param $post
|
127 |
-
* @param $link
|
128 |
-
* @param $permalinkStructure
|
129 |
-
*
|
130 |
-
* @return string
|
131 |
-
*/
|
132 |
-
protected function setPrimaryCategoryLink($post, $link, $permalinkStructure)
|
133 |
-
{
|
134 |
-
if ($this->checkSeoPlugin() && strpos($link, '%product_cat%') !== false) {
|
135 |
-
$category = new \WPSEO_Primary_Term(UrlManagerPlugin::WOOCOMMERCE_CATEGORY, $post->ID);
|
136 |
|
137 |
-
|
138 |
|
139 |
-
|
140 |
|
141 |
-
if ($term instanceof \WP_Error) {
|
142 |
-
return $link;
|
143 |
-
}
|
144 |
|
145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
-
|
148 |
-
|
149 |
-
trailingslashit($permalinkStructure['category_rewrite_slug']),
|
150 |
-
];
|
151 |
-
$termLink = trim(str_replace($search, '', $termLink), '/');
|
152 |
|
153 |
-
|
154 |
-
}
|
155 |
|
156 |
-
|
157 |
-
}
|
158 |
|
159 |
-
|
160 |
-
* Check that seo plugin is enabled and available to use
|
161 |
-
*
|
162 |
-
* @return bool
|
163 |
-
*/
|
164 |
-
protected function checkSeoPlugin()
|
165 |
-
{
|
166 |
-
if (!function_exists('is_plugin_active')) {
|
167 |
-
include_once(ABSPATH . 'wp-admin/includes/plugin.php');
|
168 |
-
}
|
169 |
|
170 |
-
|
171 |
-
|
172 |
-
&& is_plugin_active(WPSEO_BASENAME)
|
173 |
-
&& class_exists(\WPSEO_Primary_Term::class);
|
174 |
|
175 |
-
|
176 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
|
178 |
-
|
179 |
-
* Add rewrite rules for wp
|
180 |
-
*
|
181 |
-
* @param $rules
|
182 |
-
*
|
183 |
-
* @return array
|
184 |
-
*/
|
185 |
-
public function addRewriteRules($rules)
|
186 |
-
{
|
187 |
-
$premmerceOptions = get_option(UrlManagerPlugin::OPTION_URL);
|
188 |
|
189 |
-
|
190 |
-
return $rules;
|
191 |
-
}
|
192 |
|
193 |
-
|
|
|
|
|
194 |
|
195 |
-
|
196 |
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
$useParentCategorySlug = strpos($permalinkStructure['product_rewrite_slug'], '%product_cat%') !== false;
|
203 |
-
|
204 |
-
$categoryBase = $removeCategoryBase? '' : $permalinkStructure['category_rewrite_slug'];
|
205 |
-
|
206 |
-
|
207 |
-
$categoryRules = [];
|
208 |
-
$productRules = [];
|
209 |
-
|
210 |
-
$categories = $this->getCategories();
|
211 |
-
|
212 |
-
|
213 |
-
foreach ($categories as $category) {
|
214 |
-
$categorySlug = $category['slug'];
|
215 |
-
|
216 |
-
|
217 |
-
if (!$removeCategoryParentSlugs) {
|
218 |
-
$categorySlug = $this->getCategoryFullPath($category);
|
219 |
-
}
|
220 |
-
|
221 |
-
$categoryRules[ $categoryBase . $categorySlug . '/?$' ] = 'index.php?product_cat=' . $category['slug'];
|
222 |
-
$categoryRules[ $categoryBase . $categorySlug . '/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$' ] = 'index.php?product_cat=' . $category['slug'] . '&feed=$matches[1]';
|
223 |
-
$categoryRules[ $categoryBase . $categorySlug . '/' . $wp_rewrite->pagination_base . '/?([0-9]{1,})/?$' ] = 'index.php?product_cat=' . $category['slug'] . '&paged=$matches[1]';
|
224 |
-
|
225 |
-
if ($removeProductBase && $useParentCategorySlug) {
|
226 |
-
$productRules[ $categorySlug . '/([^/]+)/?$' ] = 'index.php?product=$matches[1]';
|
227 |
-
}
|
228 |
-
}
|
229 |
-
|
230 |
-
$rules = empty($rules)? [] : $rules;
|
231 |
-
|
232 |
-
return $categoryRules + $productRules + $rules;
|
233 |
-
}
|
234 |
-
|
235 |
-
/**
|
236 |
-
* Returns categories array:
|
237 |
-
* ['category id' => ['slug' => 'category slug', 'parent' => 'parent category id']]
|
238 |
-
*
|
239 |
-
* @return array
|
240 |
-
*/
|
241 |
-
private function getCategories()
|
242 |
-
{
|
243 |
-
if (is_null($this->categories)) {
|
244 |
-
$categories = get_categories([
|
245 |
-
'taxonomy' => UrlManagerPlugin::WOOCOMMERCE_CATEGORY,
|
246 |
-
'hide_empty' => false,
|
247 |
-
]);
|
248 |
-
|
249 |
-
$slugs = [];
|
250 |
-
foreach ($categories as $category) {
|
251 |
-
$slugs[ $category->term_id ] = [
|
252 |
-
'parent' => $category->parent,
|
253 |
-
'slug' => $category->slug,
|
254 |
-
];
|
255 |
-
}
|
256 |
-
|
257 |
-
$this->categories = $slugs;
|
258 |
-
}
|
259 |
-
|
260 |
-
return $this->categories;
|
261 |
-
}
|
262 |
-
|
263 |
-
/**
|
264 |
-
* Recursively builds category full path
|
265 |
-
*
|
266 |
-
* @param $category
|
267 |
-
*
|
268 |
-
* @return string
|
269 |
-
*/
|
270 |
-
public function getCategoryFullPath($category)
|
271 |
-
{
|
272 |
-
$categories = $this->getCategories();
|
273 |
|
274 |
-
|
|
|
275 |
|
276 |
-
|
277 |
-
|
278 |
-
}
|
279 |
|
280 |
-
|
281 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
282 |
}
|
8 |
*
|
9 |
* @package Premmerce\UrlManager
|
10 |
*/
|
11 |
+
class PermalinkListener{
|
|
|
12 |
|
13 |
+
/**
|
14 |
+
* @var array
|
15 |
+
*/
|
16 |
+
private $categories;
|
17 |
|
18 |
+
/**
|
19 |
+
* Add post_type_link, term_link, rewrite_rules_array filters
|
20 |
+
*/
|
21 |
+
public function registerFilters(){
|
22 |
+
add_filter('post_type_link', [$this, 'replaceProductLink'], 1, 2);
|
23 |
+
add_filter('term_link', [$this, 'replaceCategoryLink'], 1, 3);
|
24 |
+
add_filter('rewrite_rules_array', [$this, 'addRewriteRules'], 99);
|
25 |
+
}
|
|
|
26 |
|
27 |
+
/**
|
28 |
+
* Replace category permalink according to settings
|
29 |
+
*
|
30 |
+
* @param string $link
|
31 |
+
* @param object $term
|
32 |
+
* @param string $taxonomy
|
33 |
+
*
|
34 |
+
* @return string
|
35 |
+
*/
|
36 |
+
public function replaceCategoryLink($link, $term, $taxonomy){
|
37 |
+
if($taxonomy !== UrlManagerPlugin::WOOCOMMERCE_CATEGORY){
|
38 |
+
return $link;
|
39 |
+
}
|
|
|
40 |
|
41 |
+
if(!get_option('permalink_structure')){
|
42 |
+
return $link;
|
43 |
+
}
|
44 |
|
45 |
+
$permalinkStructure = wc_get_permalink_structure();
|
46 |
|
47 |
+
$category_base = trailingslashit($permalinkStructure['category_rewrite_slug']);
|
48 |
|
49 |
+
$urlOptions = get_option(UrlManagerPlugin::OPTION_URL);
|
50 |
|
51 |
+
$removeCategoryBase = isset($urlOptions['remove_category_base']);
|
52 |
+
$removeParentSlugs = isset($urlOptions['remove_category_parent_slugs']);
|
53 |
|
54 |
+
if($removeCategoryBase){
|
55 |
+
$link = str_replace($category_base, '', $link);
|
56 |
+
$category_base = '';
|
57 |
+
}
|
58 |
|
59 |
+
if($removeParentSlugs){
|
60 |
+
$link = home_url(trailingslashit($category_base . $term->slug));
|
61 |
+
}
|
62 |
|
63 |
|
64 |
+
return $link;
|
65 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
|
|
|
|
|
67 |
|
68 |
+
/**
|
69 |
+
* Replace product permalink according to settings
|
70 |
+
*
|
71 |
+
*
|
72 |
+
* @param string $permalink
|
73 |
+
* @param object $post
|
74 |
+
*
|
75 |
+
* @return string
|
76 |
+
*/
|
77 |
+
public function replaceProductLink($permalink, $post){
|
78 |
+
if($post->post_type !== UrlManagerPlugin::WOOCOMMERCE_PRODUCT){
|
79 |
+
return $permalink;
|
80 |
+
}
|
81 |
+
|
82 |
+
|
83 |
+
if(!get_option('permalink_structure')){
|
84 |
+
return $permalink;
|
85 |
+
}
|
86 |
|
|
|
87 |
|
88 |
+
$urlOptions = get_option(UrlManagerPlugin::OPTION_URL);
|
89 |
|
90 |
+
$permalinkStructure = wc_get_permalink_structure();
|
|
|
91 |
|
92 |
+
$product_base = $permalinkStructure['product_rewrite_slug'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
|
94 |
+
$removeProductBase = isset($urlOptions['remove_product_base']);
|
95 |
|
96 |
+
$product_base = explode('/', '/' . ltrim($product_base, '/'));
|
97 |
|
|
|
|
|
|
|
98 |
|
99 |
+
$remove = array_filter($product_base, function($el) use ($removeProductBase){
|
100 |
+
if($el === '%product_cat%'){
|
101 |
+
return false;
|
102 |
+
}
|
103 |
+
if(mb_strlen($el) > 0){
|
104 |
+
return $removeProductBase;
|
105 |
+
}
|
106 |
|
107 |
+
return true;
|
108 |
+
});
|
|
|
|
|
|
|
109 |
|
110 |
+
$remove = implode('/', $remove);
|
|
|
111 |
|
112 |
+
$link = str_replace($remove . '/', '/', $permalink);
|
|
|
113 |
|
114 |
+
$link = $this->setPrimaryCategoryLink($post, $link, $permalinkStructure);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
|
116 |
+
return $link;
|
117 |
+
}
|
|
|
|
|
118 |
|
119 |
+
/**
|
120 |
+
* Replace %product_cat% variable with primary category link if seo plugin is enabled
|
121 |
+
*
|
122 |
+
* @param $post
|
123 |
+
* @param $link
|
124 |
+
* @param $permalinkStructure
|
125 |
+
*
|
126 |
+
* @return string
|
127 |
+
*/
|
128 |
+
protected function setPrimaryCategoryLink($post, $link, $permalinkStructure){
|
129 |
+
if($this->checkSeoPlugin() && strpos($link, '%product_cat%') !== false){
|
130 |
+
$category = new \WPSEO_Primary_Term(UrlManagerPlugin::WOOCOMMERCE_CATEGORY, $post->ID);
|
131 |
|
132 |
+
$primaryTerm = $category->get_primary_term();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
|
134 |
+
$term = get_term($primaryTerm);
|
|
|
|
|
135 |
|
136 |
+
if($term instanceof \WP_Error){
|
137 |
+
return $link;
|
138 |
+
}
|
139 |
|
140 |
+
$termLink = get_term_link($term);
|
141 |
|
142 |
+
$search = [
|
143 |
+
home_url(),
|
144 |
+
trailingslashit($permalinkStructure['category_rewrite_slug']),
|
145 |
+
];
|
146 |
+
$termLink = trim(str_replace($search, '', $termLink), '/');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
|
148 |
+
$link = str_replace('%product_cat%', $termLink, $link);
|
149 |
+
}
|
150 |
|
151 |
+
return $link;
|
152 |
+
}
|
|
|
153 |
|
154 |
+
/**
|
155 |
+
* Check that seo plugin is enabled and available to use
|
156 |
+
*
|
157 |
+
* @return bool
|
158 |
+
*/
|
159 |
+
protected function checkSeoPlugin(){
|
160 |
+
if(!function_exists('is_plugin_active')){
|
161 |
+
include_once(ABSPATH . 'wp-admin/includes/plugin.php');
|
162 |
+
}
|
163 |
+
|
164 |
+
$active = function_exists('is_plugin_active')
|
165 |
+
&& defined('WPSEO_BASENAME')
|
166 |
+
&& is_plugin_active(WPSEO_BASENAME)
|
167 |
+
&& class_exists(\WPSEO_Primary_Term::class);
|
168 |
+
|
169 |
+
return $active;
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* Add rewrite rules for wp
|
174 |
+
*
|
175 |
+
* @param $rules
|
176 |
+
*
|
177 |
+
* @return array
|
178 |
+
*/
|
179 |
+
public function addRewriteRules($rules){
|
180 |
+
$premmerceOptions = get_option(UrlManagerPlugin::OPTION_URL);
|
181 |
+
|
182 |
+
if(!$premmerceOptions || get_option(UrlManagerPlugin::OPTION_DISABLED)){
|
183 |
+
return $rules;
|
184 |
+
}
|
185 |
+
|
186 |
+
global $wp_rewrite;
|
187 |
+
|
188 |
+
wp_cache_flush();
|
189 |
+
|
190 |
+
$removeCategoryBase = isset($premmerceOptions['remove_category_base']);
|
191 |
+
$removeCategoryParentSlugs = isset($premmerceOptions['remove_category_parent_slugs']);
|
192 |
+
$removeProductBase = isset($premmerceOptions['remove_product_base']);
|
193 |
+
$permalinkStructure = wc_get_permalink_structure();
|
194 |
+
|
195 |
+
$useParentCategorySlug = strpos($permalinkStructure['product_rewrite_slug'], '%product_cat%') !== false;
|
196 |
+
|
197 |
+
$categoryBase = $removeCategoryBase? '' : $permalinkStructure['category_rewrite_slug'];
|
198 |
+
|
199 |
+
|
200 |
+
$categoryRules = [];
|
201 |
+
$productRules = [];
|
202 |
+
|
203 |
+
$categories = $this->getCategories();
|
204 |
+
|
205 |
+
|
206 |
+
foreach($categories as $category){
|
207 |
+
$categorySlug = $category['slug'];
|
208 |
+
|
209 |
+
|
210 |
+
if(!$removeCategoryParentSlugs){
|
211 |
+
$categorySlug = $this->getCategoryFullPath($category);
|
212 |
+
}
|
213 |
+
|
214 |
+
$categoryRules[ $categoryBase . $categorySlug . '/?$' ] = 'index.php?product_cat=' . $category['slug'];
|
215 |
+
$categoryRules[ $categoryBase . $categorySlug . '/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$' ] = 'index.php?product_cat=' . $category['slug'] . '&feed=$matches[1]';
|
216 |
+
$categoryRules[ $categoryBase . $categorySlug . '/' . $wp_rewrite->pagination_base . '/?([0-9]{1,})/?$' ] = 'index.php?product_cat=' . $category['slug'] . '&paged=$matches[1]';
|
217 |
+
|
218 |
+
if($removeProductBase && $useParentCategorySlug){
|
219 |
+
$productRules[ $categorySlug . '/([^/]+)/?$' ] = 'index.php?product=$matches[1]';
|
220 |
+
$productRules[ $categorySlug . '/([^/]+)/' . $wp_rewrite->comments_pagination_base . '-([0-9]{1,})/?$' ] = 'index.php?product=$matches[1]&cpage=$matches[2]';
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
224 |
+
$rules = empty($rules)? [] : $rules;
|
225 |
+
|
226 |
+
return $categoryRules + $productRules + $rules;
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* Returns categories array:
|
231 |
+
* ['category id' => ['slug' => 'category slug', 'parent' => 'parent category id']]
|
232 |
+
*
|
233 |
+
* @return array
|
234 |
+
*/
|
235 |
+
private function getCategories(){
|
236 |
+
if(is_null($this->categories)){
|
237 |
+
$categories = get_categories([
|
238 |
+
'taxonomy' => UrlManagerPlugin::WOOCOMMERCE_CATEGORY,
|
239 |
+
'hide_empty' => false,
|
240 |
+
]);
|
241 |
+
|
242 |
+
$slugs = [];
|
243 |
+
foreach($categories as $category){
|
244 |
+
$slugs[ $category->term_id ] = [
|
245 |
+
'parent' => $category->parent,
|
246 |
+
'slug' => $category->slug,
|
247 |
+
];
|
248 |
+
}
|
249 |
+
|
250 |
+
$this->categories = $slugs;
|
251 |
+
}
|
252 |
+
|
253 |
+
return $this->categories;
|
254 |
+
}
|
255 |
+
|
256 |
+
/**
|
257 |
+
* Recursively builds category full path
|
258 |
+
*
|
259 |
+
* @param $category
|
260 |
+
*
|
261 |
+
* @return string
|
262 |
+
*/
|
263 |
+
public function getCategoryFullPath($category){
|
264 |
+
$categories = $this->getCategories();
|
265 |
+
|
266 |
+
$parent = $category['parent'];
|
267 |
+
|
268 |
+
if($parent > 0 && array_key_exists($parent, $categories)){
|
269 |
+
return $this->getCategoryFullPath($categories[ $parent ]) . '/' . $category['slug'];
|
270 |
+
}
|
271 |
+
|
272 |
+
return $category['slug'];
|
273 |
+
}
|
274 |
}
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -7,7 +7,6 @@ $baseDir = dirname($vendorDir);
|
|
7 |
|
8 |
return array(
|
9 |
'Premmerce\\UrlManager\\Admin\\Admin' => $baseDir . '/src/Admin/Admin.php',
|
10 |
-
'Premmerce\\UrlManager\\FileManager' => $baseDir . '/src/FileManager.php',
|
11 |
'Premmerce\\UrlManager\\Frontend\\Frontend' => $baseDir . '/src/Frontend/Frontend.php',
|
12 |
'Premmerce\\UrlManager\\PermalinkListener' => $baseDir . '/src/PermalinkListener.php',
|
13 |
'Premmerce\\UrlManager\\UrlManagerPlugin' => $baseDir . '/src/UrlManagerPlugin.php',
|
7 |
|
8 |
return array(
|
9 |
'Premmerce\\UrlManager\\Admin\\Admin' => $baseDir . '/src/Admin/Admin.php',
|
|
|
10 |
'Premmerce\\UrlManager\\Frontend\\Frontend' => $baseDir . '/src/Frontend/Frontend.php',
|
11 |
'Premmerce\\UrlManager\\PermalinkListener' => $baseDir . '/src/PermalinkListener.php',
|
12 |
'Premmerce\\UrlManager\\UrlManagerPlugin' => $baseDir . '/src/UrlManagerPlugin.php',
|
vendor/composer/autoload_files.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
// autoload_files.php @generated by Composer
|
4 |
-
|
5 |
-
$vendorDir = dirname(dirname(__FILE__));
|
6 |
-
$baseDir = dirname($vendorDir);
|
7 |
-
|
8 |
-
return array(
|
9 |
-
'1cdfc4c15453f89231fd7026d7f295db' => $baseDir . '/freemius.php',
|
10 |
-
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/composer/autoload_psr4.php
CHANGED
@@ -6,5 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
-
'Premmerce\\UrlManager\\' => array($baseDir . '/sdk'
|
|
|
10 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
+
'Premmerce\\UrlManager\\WordpressSDK\\' => array($baseDir . '/sdk'),
|
10 |
+
'Premmerce\\UrlManager\\' => array($baseDir . '/src'),
|
11 |
);
|
vendor/composer/autoload_real.php
CHANGED
@@ -47,24 +47,6 @@ class ComposerAutoloaderInitae9fc0c0f8fb8c17ea09a1107590889c
|
|
47 |
|
48 |
$loader->register(true);
|
49 |
|
50 |
-
if ($useStaticLoader) {
|
51 |
-
$includeFiles = Composer\Autoload\ComposerStaticInitae9fc0c0f8fb8c17ea09a1107590889c::$files;
|
52 |
-
} else {
|
53 |
-
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
-
}
|
55 |
-
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
-
composerRequireae9fc0c0f8fb8c17ea09a1107590889c($fileIdentifier, $file);
|
57 |
-
}
|
58 |
-
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
-
|
63 |
-
function composerRequireae9fc0c0f8fb8c17ea09a1107590889c($fileIdentifier, $file)
|
64 |
-
{
|
65 |
-
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
-
require $file;
|
67 |
-
|
68 |
-
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
69 |
-
}
|
70 |
-
}
|
47 |
|
48 |
$loader->register(true);
|
49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
return $loader;
|
51 |
}
|
52 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/composer/autoload_static.php
CHANGED
@@ -6,28 +6,27 @@ namespace Composer\Autoload;
|
|
6 |
|
7 |
class ComposerStaticInitae9fc0c0f8fb8c17ea09a1107590889c
|
8 |
{
|
9 |
-
public static $files = array (
|
10 |
-
'1cdfc4c15453f89231fd7026d7f295db' => __DIR__ . '/../..' . '/freemius.php',
|
11 |
-
);
|
12 |
-
|
13 |
public static $prefixLengthsPsr4 = array (
|
14 |
'P' =>
|
15 |
array (
|
|
|
16 |
'Premmerce\\UrlManager\\' => 21,
|
17 |
),
|
18 |
);
|
19 |
|
20 |
public static $prefixDirsPsr4 = array (
|
21 |
-
'Premmerce\\UrlManager\\' =>
|
22 |
array (
|
23 |
0 => __DIR__ . '/../..' . '/sdk',
|
24 |
-
|
|
|
|
|
|
|
25 |
),
|
26 |
);
|
27 |
|
28 |
public static $classMap = array (
|
29 |
'Premmerce\\UrlManager\\Admin\\Admin' => __DIR__ . '/../..' . '/src/Admin/Admin.php',
|
30 |
-
'Premmerce\\UrlManager\\FileManager' => __DIR__ . '/../..' . '/src/FileManager.php',
|
31 |
'Premmerce\\UrlManager\\Frontend\\Frontend' => __DIR__ . '/../..' . '/src/Frontend/Frontend.php',
|
32 |
'Premmerce\\UrlManager\\PermalinkListener' => __DIR__ . '/../..' . '/src/PermalinkListener.php',
|
33 |
'Premmerce\\UrlManager\\UrlManagerPlugin' => __DIR__ . '/../..' . '/src/UrlManagerPlugin.php',
|
6 |
|
7 |
class ComposerStaticInitae9fc0c0f8fb8c17ea09a1107590889c
|
8 |
{
|
|
|
|
|
|
|
|
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'P' =>
|
11 |
array (
|
12 |
+
'Premmerce\\UrlManager\\WordpressSDK\\' => 34,
|
13 |
'Premmerce\\UrlManager\\' => 21,
|
14 |
),
|
15 |
);
|
16 |
|
17 |
public static $prefixDirsPsr4 = array (
|
18 |
+
'Premmerce\\UrlManager\\WordpressSDK\\' =>
|
19 |
array (
|
20 |
0 => __DIR__ . '/../..' . '/sdk',
|
21 |
+
),
|
22 |
+
'Premmerce\\UrlManager\\' =>
|
23 |
+
array (
|
24 |
+
0 => __DIR__ . '/../..' . '/src',
|
25 |
),
|
26 |
);
|
27 |
|
28 |
public static $classMap = array (
|
29 |
'Premmerce\\UrlManager\\Admin\\Admin' => __DIR__ . '/../..' . '/src/Admin/Admin.php',
|
|
|
30 |
'Premmerce\\UrlManager\\Frontend\\Frontend' => __DIR__ . '/../..' . '/src/Frontend/Frontend.php',
|
31 |
'Premmerce\\UrlManager\\PermalinkListener' => __DIR__ . '/../..' . '/src/PermalinkListener.php',
|
32 |
'Premmerce\\UrlManager\\UrlManagerPlugin' => __DIR__ . '/../..' . '/src/UrlManagerPlugin.php',
|