Compare commits
172 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
824697490f | ||
|
|
62e01cb9d6 | ||
|
|
87c2f82b80 | ||
|
|
f887f8baa4 | ||
|
|
4d00d97be9 | ||
|
|
b0e946ee29 | ||
|
|
1220b9f47b | ||
|
|
12d2d0ffb0 | ||
|
|
4581113741 | ||
|
|
a20c769eae | ||
|
|
3259316cf1 | ||
|
|
9cc06234e4 | ||
|
|
1ee73268d7 | ||
|
|
f477620899 | ||
|
|
8a9dc1ce2c | ||
|
|
b584aa24bd | ||
|
|
8dfe78a210 | ||
|
|
7143cb5def | ||
|
|
e6c49d99b6 | ||
|
|
6e71f9771c | ||
|
|
452126b56a | ||
|
|
28dfd8b3b9 | ||
|
|
d3196bc03f | ||
|
|
0bff3231cd | ||
|
|
6e9d147dd0 | ||
|
|
9a7872a7c4 | ||
|
|
e8f10fb2db | ||
|
|
221f3fcbfd | ||
|
|
ab5153363f | ||
|
|
8576145d3f | ||
|
|
7908fb7d97 | ||
|
|
44b934540e | ||
|
|
9978595237 | ||
|
|
109c701e4f | ||
|
|
11f35d86ff | ||
|
|
fa3005f2b7 | ||
|
|
f30255d6d8 | ||
|
|
183df75112 | ||
|
|
105d06c8f8 | ||
|
|
82941906ca | ||
|
|
470fbb1ff3 | ||
|
|
8c6234879e | ||
|
|
689252c715 | ||
|
|
19cf00227b | ||
|
|
c9795dc560 | ||
|
|
188c8f31b2 | ||
|
|
76b2c067f6 | ||
|
|
01316ceac1 | ||
|
|
52f14c5f06 | ||
|
|
6782730d80 | ||
|
|
4235871a00 | ||
|
|
cb27a22fc4 | ||
|
|
e639d4eee3 | ||
|
|
d95b70f1c2 | ||
|
|
fb97553f7c | ||
|
|
b3b3bec6b0 | ||
|
|
baab7a49f6 | ||
|
|
6843fe700e | ||
|
|
0c193de70e | ||
|
|
e42ce414de | ||
|
|
6d347ada98 | ||
|
|
3638241513 | ||
|
|
1c30743a11 | ||
|
|
48d363031b | ||
|
|
d083719b9c | ||
|
|
7fd59b27f4 | ||
|
|
6f4b216bb0 | ||
|
|
5fa82a3f27 | ||
|
|
02d1e30b08 | ||
|
|
1e2d227c56 | ||
|
|
cfc895e658 | ||
|
|
3f789b39c4 | ||
|
|
16002576d2 | ||
|
|
7b0e352d29 | ||
|
|
da85729254 | ||
|
|
6a48f6c42b | ||
|
|
8eabcd9df3 | ||
|
|
6b89bc9f55 | ||
|
|
1e250796ca | ||
|
|
c73f9028f0 | ||
|
|
71c89371a9 | ||
|
|
9043ddca71 | ||
|
|
6c461e778d | ||
|
|
3f1a71c643 | ||
|
|
b0df6dcade | ||
|
|
ac0d2fb536 | ||
|
|
48f107021a | ||
|
|
64ac4ecf72 | ||
|
|
ddc680a9ae | ||
|
|
43b04da5a2 | ||
|
|
bc28dd392d | ||
|
|
0d2e1fee43 | ||
|
|
eaf2cec8c9 | ||
|
|
611d3dfd4d | ||
|
|
c4030d8267 | ||
|
|
630752787a | ||
|
|
c07ecc58cb | ||
|
|
89fccfe7b7 | ||
|
|
ceeb7e538b | ||
|
|
8dab57b59c | ||
|
|
7a00cd8db1 | ||
|
|
daa0915bca | ||
|
|
ca6b6a30d8 | ||
|
|
09f2640879 | ||
|
|
f61c55b350 | ||
|
|
78d0c2540c | ||
|
|
1d0426e816 | ||
|
|
103a4049c8 | ||
|
|
cbcb1dcb33 | ||
|
|
9c36293382 | ||
|
|
2fb36dc425 | ||
|
|
c717ba5a71 | ||
|
|
7572518e3b | ||
|
|
f670133a82 | ||
|
|
a6bbf41e82 | ||
|
|
622c16932a | ||
|
|
5fd7e0ed22 | ||
|
|
d9f6c71015 | ||
|
|
61a3106b3b | ||
|
|
20eb2d825d | ||
|
|
906557d2ec | ||
|
|
c1e278ea80 | ||
|
|
e2d616a53f | ||
|
|
c6802ccdd2 | ||
|
|
abd50fd037 | ||
|
|
4515be53b4 | ||
|
|
920a25bb25 | ||
|
|
648dd05069 | ||
|
|
713edcecca | ||
|
|
ac16a951c5 | ||
|
|
1043bcb267 | ||
|
|
22979a1a77 | ||
|
|
3039d2e7eb | ||
|
|
557dee2d8c | ||
|
|
a506adcb64 | ||
|
|
3bfb120646 | ||
|
|
43e613aa52 | ||
|
|
0d930ed605 | ||
|
|
2014f1e4b3 | ||
|
|
4889d17e0a | ||
|
|
494d31215d | ||
|
|
582bdea431 | ||
|
|
ecf7df9c01 | ||
|
|
a9760e8817 | ||
|
|
b32e990dd4 | ||
|
|
4320d2436f | ||
|
|
cba6e74b13 | ||
|
|
981bcf5fa2 | ||
|
|
1d79bc37d3 | ||
|
|
2fae3336ba | ||
|
|
cfb98c5139 | ||
|
|
b0260327c4 | ||
|
|
f65532e347 | ||
|
|
ff574b046c | ||
|
|
97c995b64c | ||
|
|
8361ec97e4 | ||
|
|
7a0bbc0acb | ||
|
|
66f5eca841 | ||
|
|
b53e6d1888 | ||
|
|
4b68fa8b60 | ||
|
|
54770c5a50 | ||
|
|
39fb2167f7 | ||
|
|
c33fef9c98 | ||
|
|
08a1117edf | ||
|
|
e14cbed56e | ||
|
|
56e2ab16cc | ||
|
|
d76d4b70f5 | ||
|
|
e223936a81 | ||
|
|
60d067c421 | ||
|
|
4102cf4688 | ||
|
|
dc977e6630 | ||
|
|
05deabd775 |
30
.rubocop.yml
30
.rubocop.yml
@@ -1,23 +1,19 @@
|
||||
require: rubocop-performance
|
||||
AllCops:
|
||||
NewCops: enable
|
||||
SuggestExtensions: false
|
||||
TargetRubyVersion: 2.5
|
||||
Exclude:
|
||||
- '*.gemspec'
|
||||
- 'vendor/**/*'
|
||||
Layout/EmptyLinesAroundAttributeAccessor:
|
||||
Enabled: true
|
||||
Layout/LineLength:
|
||||
Max: 120
|
||||
Layout/SpaceAroundMethodCallOperator:
|
||||
Enabled: true
|
||||
Lint/DeprecatedOpenSSLConstant:
|
||||
Enabled: true
|
||||
Lint/ConstantDefinitionInBlock:
|
||||
Enabled: false
|
||||
Lint/MissingSuper:
|
||||
Enabled: false
|
||||
Lint/UriEscapeUnescape:
|
||||
Enabled: false
|
||||
Lint/RaiseException:
|
||||
Enabled: true
|
||||
Lint/StructNewOverride:
|
||||
Enabled: true
|
||||
Metrics/AbcSize:
|
||||
Max: 25
|
||||
Metrics/BlockLength:
|
||||
@@ -28,27 +24,19 @@ Metrics/ClassLength:
|
||||
Exclude:
|
||||
- 'app/controllers/enumeration/cli_options.rb'
|
||||
Metrics/CyclomaticComplexity:
|
||||
Max: 8
|
||||
Max: 10
|
||||
Metrics/MethodLength:
|
||||
Max: 20
|
||||
Exclude:
|
||||
- 'app/controllers/enumeration/cli_options.rb'
|
||||
Metrics/PerceivedComplexity:
|
||||
Max: 11
|
||||
Style/ClassVars:
|
||||
Enabled: false
|
||||
Style/Documentation:
|
||||
Enabled: false
|
||||
Style/ExponentialNotation:
|
||||
Enabled: true
|
||||
Style/FormatStringToken:
|
||||
Enabled: false
|
||||
Style/HashEachMethods:
|
||||
Enabled: true
|
||||
Style/HashTransformKeys:
|
||||
Enabled: true
|
||||
Style/HashTransformValues:
|
||||
Enabled: true
|
||||
Style/NumericPredicate:
|
||||
Exclude:
|
||||
- 'app/controllers/vuln_api.rb'
|
||||
Style/SlicingWithRange:
|
||||
Enabled: true
|
||||
|
||||
@@ -1 +1 @@
|
||||
2.7.1
|
||||
2.7.2
|
||||
|
||||
21
Dockerfile
21
Dockerfile
@@ -1,16 +1,16 @@
|
||||
FROM ruby:2.6.3-alpine AS builder
|
||||
LABEL maintainer="WPScan Team <team@wpscan.org>"
|
||||
FROM ruby:2.7.2-alpine AS builder
|
||||
LABEL maintainer="WPScan Team <contact@wpscan.com>"
|
||||
|
||||
ARG BUNDLER_ARGS="--jobs=8 --without test development"
|
||||
|
||||
RUN echo "gem: --no-ri --no-rdoc" > /etc/gemrc
|
||||
RUN echo "install: --no-document --no-post-install-message\nupdate: --no-document --no-post-install-message" > /etc/gemrc
|
||||
|
||||
COPY . /wpscan
|
||||
|
||||
RUN apk add --no-cache git libcurl ruby-dev libffi-dev make gcc musl-dev zlib-dev procps sqlite-dev && \
|
||||
bundle install --system --clean --no-cache --gemfile=/wpscan/Gemfile $BUNDLER_ARGS && \
|
||||
# temp fix for https://github.com/bundler/bundler/issues/6680
|
||||
rm -rf /usr/local/bundle/cache
|
||||
bundle config force_ruby_platform true && \
|
||||
bundle config disable_version_check 'true' && \
|
||||
bundle config without "test development" && \
|
||||
bundle config path.system 'true' && \
|
||||
bundle install --gemfile=/wpscan/Gemfile --jobs=8
|
||||
|
||||
WORKDIR /wpscan
|
||||
RUN rake install --trace
|
||||
@@ -19,8 +19,9 @@ RUN rake install --trace
|
||||
RUN chmod -R a+r /usr/local/bundle
|
||||
|
||||
|
||||
FROM ruby:2.6.3-alpine
|
||||
LABEL maintainer="WPScan Team <team@wpscan.org>"
|
||||
FROM ruby:2.7.2-alpine
|
||||
LABEL maintainer="WPScan Team <contact@wpscan.com>"
|
||||
LABEL org.opencontainers.image.source https://github.com/wpscanteam/wpscan
|
||||
|
||||
RUN adduser -h /wpscan -g WPScan -D wpscan
|
||||
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -27,7 +27,7 @@ Example cases which do not require a commercial license, and thus fall under the
|
||||
- Using WPScan to test your own systems.
|
||||
- Any non-commercial use of WPScan.
|
||||
|
||||
If you need to purchase a commercial license or are unsure whether you need to purchase a commercial license contact us - team@wpscan.org.
|
||||
If you need to purchase a commercial license or are unsure whether you need to purchase a commercial license contact us - contact@wpscan.com.
|
||||
|
||||
Free-use Terms and Conditions;
|
||||
|
||||
|
||||
31
README.md
31
README.md
@@ -1,5 +1,5 @@
|
||||
<p align="center">
|
||||
<a href="https://wpscan.org/">
|
||||
<a href="https://wpscan.com/">
|
||||
<img src="https://raw.githubusercontent.com/wpscanteam/wpscan/gh-pages/images/wpscan_logo.png" alt="WPScan logo">
|
||||
</a>
|
||||
</p>
|
||||
@@ -10,7 +10,7 @@
|
||||
WordPress Security Scanner
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://wpscan.org/" title="homepage" target="_blank">Homepage</a> - <a href="https://wpscan.io/" title="wpscan.io" target="_blank">WPScan.io</a> - <a href="https://wpvulndb.com/" title="vulnerability database" target="_blank">Vulnerability Database</a> - <a href="https://wordpress.org/plugins/wpscan/" title="wordpress security plugin" target="_blank">WordPress Security Plugin</a>
|
||||
<a href="https://wpscan.com/" title="homepage" target="_blank">WPScan WordPress Vulnerability Database</a> - <a href="https://wordpress.org/plugins/wpscan/" title="wordpress security plugin" target="_blank">WordPress Security Plugin</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -24,10 +24,11 @@
|
||||
## Prerequisites
|
||||
|
||||
- (Optional but highly recommended: [RVM](https://rvm.io/rvm/install))
|
||||
- Ruby >= 2.3 - Recommended: latest
|
||||
- Ruby >= 2.5 - Recommended: latest
|
||||
- Ruby 2.5.0 to 2.5.3 can cause an 'undefined symbol: rmpd_util_str_to_d' error in some systems, see [#1283](https://github.com/wpscanteam/wpscan/issues/1283)
|
||||
- Curl >= 7.21 - Recommended: latest
|
||||
- Curl >= 7.72 - Recommended: latest
|
||||
- The 7.29 has a segfault
|
||||
- The < 7.72 could result in `Stream error in the HTTP/2 framing layer` in some cases
|
||||
- RubyGems - Recommended: latest
|
||||
- Nokogiri might require packages to be installed via your package manager depending on your OS, see https://nokogiri.org/tutorials/installing_nokogiri.html
|
||||
|
||||
@@ -35,6 +36,10 @@
|
||||
|
||||
When using a pentesting distubution (such as Kali Linux), it is recommended to install/update wpscan via the package manager if available.
|
||||
|
||||
### In macOSX via Homebrew
|
||||
|
||||
`brew install wpscanteam/tap/wpscan`
|
||||
|
||||
### From RubyGems
|
||||
|
||||
```shell
|
||||
@@ -47,7 +52,7 @@ On MacOSX, if a ```Gem::FilePermissionError``` is raised due to the Apple's Syst
|
||||
|
||||
You can update the local database by using ```wpscan --update```
|
||||
|
||||
Updating WPScan itself is either done via ```gem update wpscan``` or the packages manager (this is quite important for distributions such as in Kali Linux: ```apt-get update && apt-get upgrade```) depending how WPScan was (pre)installed
|
||||
Updating WPScan itself is either done via ```gem update wpscan``` or the packages manager (this is quite important for distributions such as in Kali Linux: ```apt-get update && apt-get upgrade```) depending on how WPScan was (pre)installed
|
||||
|
||||
# Docker
|
||||
|
||||
@@ -80,9 +85,19 @@ For more options, open a terminal and type ```wpscan --help``` (if you built wps
|
||||
|
||||
The DB is located at ~/.wpscan/db
|
||||
|
||||
## Vulnerability Database
|
||||
## Optional: WordPress Vulnerability Database API
|
||||
|
||||
The WPScan CLI tool uses the [WPVulnDB API](https://wpvulndb.com/api) to retrieve WordPress vulnerability data in real time. For WPScan to retrieve the vulnerability data an API token must be supplied via the `--api-token` option, or via a configuration file, as discussed below. An API token can be obtained by registering an account on [WPVulnDB](https://wpvulndb.com/users/sign_up). Up to 50 API requests per day are given free of charge to registered users. Once the 50 API requests are exhausted, WPScan will continue to work as normal but without any vulnerability data. Users can upgrade to paid API usage to increase their API limits within their user profile on [WPVulnDB](https://wpvulndb.com/).
|
||||
The WPScan CLI tool uses the [WordPress Vulnerability Database API](https://wpscan.com/api) to retrieve WordPress vulnerability data in real time. For WPScan to retrieve the vulnerability data an API token must be supplied via the `--api-token` option, or via a configuration file, as discussed below. An API token can be obtained by registering an account on [WPScan.com](https://wpscan.com/register).
|
||||
|
||||
Up to 25 API requests per day are given free of charge, that should be suitable to scan most WordPress websites at least once per day. When the daily 25 API requests are exhausted, WPScan will continue to work as normal but without any vulnerability data. Users can upgrade to paid API usage to increase their API limits within their user profile on [WPScan.com](https://wpscan.com/).
|
||||
|
||||
#### The Free plan allows 25 API requests per day. View the different [available API plans](https://wpscan.com/api).
|
||||
|
||||
### How many API requests do you need?
|
||||
|
||||
- Our WordPress scanner makes one API request for the WordPress version, one request per installed plugin and one request per installed theme.
|
||||
- On average, a WordPress website has 22 installed plugins.
|
||||
- The Free plan should cover around 50% of all WordPress websites.
|
||||
|
||||
## Load CLI options from file/s
|
||||
|
||||
@@ -176,7 +191,7 @@ Example cases which do not require a commercial license, and thus fall under the
|
||||
- Using WPScan to test your own systems.
|
||||
- Any non-commercial use of WPScan.
|
||||
|
||||
If you need to purchase a commercial license or are unsure whether you need to purchase a commercial license contact us - team@wpscan.org.
|
||||
If you need to purchase a commercial license or are unsure whether you need to purchase a commercial license contact us - contact@wpscan.com.
|
||||
|
||||
Free-use Terms and Conditions;
|
||||
|
||||
|
||||
@@ -8,13 +8,13 @@ module WPScan
|
||||
def cli_options
|
||||
[OptURL.new(['--url URL', 'The URL of the blog to scan'],
|
||||
required_unless: %i[update help hh version], default_protocol: 'http')] +
|
||||
super.drop(1) + # delete the --url from CMSScanner
|
||||
super.drop(2) + # delete the --url and --force from CMSScanner
|
||||
[
|
||||
OptChoice.new(['--server SERVER', 'Force the supplied server module to be loaded'],
|
||||
choices: %w[apache iis nginx],
|
||||
normalize: %i[downcase to_sym],
|
||||
advanced: true),
|
||||
OptBoolean.new(['--force', 'Do not check if the target is running WordPress']),
|
||||
OptBoolean.new(['--force', 'Do not check if the target is running WordPress or returns a 403']),
|
||||
OptBoolean.new(['--[no-]update', 'Whether or not to update the Database'])
|
||||
]
|
||||
end
|
||||
@@ -39,7 +39,7 @@ module WPScan
|
||||
output('@notice', msg: 'It seems like you have not updated the database for some time.')
|
||||
print '[?] Do you want to update now? [Y]es [N]o, default: [N]'
|
||||
|
||||
/^y/i.match?(Readline.readline) ? true : false
|
||||
/^y/i.match?(Readline.readline)
|
||||
end
|
||||
|
||||
def update_db
|
||||
|
||||
@@ -170,6 +170,12 @@ module WPScan
|
||||
['--users-detection MODE',
|
||||
'Use the supplied mode to enumerate Users, instead of the global (--detection-mode) mode.'],
|
||||
choices: %w[mixed passive aggressive], normalize: :to_sym, advanced: true
|
||||
),
|
||||
OptRegexp.new(
|
||||
[
|
||||
'--exclude-usernames REGEXP_OR_STRING',
|
||||
'Exclude usernames matching the Regexp/string (case insensitive). Regexp delimiters are not required.'
|
||||
], options: Regexp::IGNORECASE
|
||||
)
|
||||
]
|
||||
end
|
||||
|
||||
@@ -19,31 +19,37 @@ module WPScan
|
||||
OptChoice.new(['--password-attack ATTACK',
|
||||
'Force the supplied attack to be used rather than automatically determining one.'],
|
||||
choices: %w[wp-login xmlrpc xmlrpc-multicall],
|
||||
normalize: %i[downcase underscore to_sym])
|
||||
normalize: %i[downcase underscore to_sym]),
|
||||
OptString.new(['--login-uri URI', 'The URI of the login page if different from /wp-login.php'])
|
||||
]
|
||||
end
|
||||
|
||||
def attack_opts
|
||||
@attack_opts ||= {
|
||||
show_progression: user_interaction?,
|
||||
multicall_max_passwords: ParsedCli.multicall_max_passwords
|
||||
}
|
||||
end
|
||||
|
||||
def run
|
||||
return unless ParsedCli.passwords
|
||||
|
||||
if user_interaction?
|
||||
output('@info',
|
||||
msg: "Performing password attack on #{attacker.titleize} against #{users.size} user/s")
|
||||
end
|
||||
|
||||
attack_opts = {
|
||||
show_progression: user_interaction?,
|
||||
multicall_max_passwords: ParsedCli.multicall_max_passwords
|
||||
}
|
||||
|
||||
begin
|
||||
found = []
|
||||
|
||||
attacker.attack(users, passwords(ParsedCli.passwords), attack_opts) do |user|
|
||||
if user_interaction?
|
||||
output('@info',
|
||||
msg: "Performing password attack on #{attacker.titleize} against #{users.size} user/s")
|
||||
end
|
||||
|
||||
attacker.attack(users, ParsedCli.passwords, attack_opts) do |user|
|
||||
found << user
|
||||
|
||||
attacker.progress_bar.log("[SUCCESS] - #{user.username} / #{user.password}")
|
||||
end
|
||||
rescue Error::NoLoginInterfaceDetected => e
|
||||
# TODO: Maybe output that in JSON as well.
|
||||
output('@notice', msg: e.to_s) if user_interaction?
|
||||
ensure
|
||||
output('users', users: found)
|
||||
end
|
||||
@@ -65,6 +71,8 @@ module WPScan
|
||||
|
||||
case ParsedCli.password_attack
|
||||
when :wp_login
|
||||
raise Error::NoLoginInterfaceDetected unless target.login_url
|
||||
|
||||
Finders::Passwords::WpLogin.new(target)
|
||||
when :xmlrpc
|
||||
raise Error::XMLRPCNotDetected unless xmlrpc
|
||||
@@ -81,8 +89,8 @@ module WPScan
|
||||
def xmlrpc_get_users_blogs_enabled?
|
||||
if xmlrpc&.enabled? &&
|
||||
xmlrpc.available_methods.include?('wp.getUsersBlogs') &&
|
||||
xmlrpc.method_call('wp.getUsersBlogs', [SecureRandom.hex[0, 6], SecureRandom.hex[0, 4]])
|
||||
.run.body !~ /XML\-RPC services are disabled/
|
||||
!xmlrpc.method_call('wp.getUsersBlogs', [SecureRandom.hex[0, 6], SecureRandom.hex[0, 4]])
|
||||
.run.body.match?(/>\s*405\s*</)
|
||||
|
||||
true
|
||||
else
|
||||
@@ -100,8 +108,10 @@ module WPScan
|
||||
else
|
||||
Finders::Passwords::XMLRPC.new(xmlrpc)
|
||||
end
|
||||
else
|
||||
elsif target.login_url
|
||||
Finders::Passwords::WpLogin.new(target)
|
||||
else
|
||||
raise Error::NoLoginInterfaceDetected
|
||||
end
|
||||
end
|
||||
|
||||
@@ -113,15 +123,6 @@ module WPScan
|
||||
acc << Model::User.new(elem.chomp)
|
||||
end
|
||||
end
|
||||
|
||||
# @param [ String ] wordlist_path
|
||||
#
|
||||
# @return [ Array<String> ]
|
||||
def passwords(wordlist_path)
|
||||
@passwords ||= File.open(wordlist_path).reduce([]) do |acc, elem|
|
||||
acc << elem.chomp
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -8,7 +8,10 @@ module WPScan
|
||||
|
||||
def cli_options
|
||||
[
|
||||
OptString.new(['--api-token TOKEN', 'The WPVulnDB API Token to display vulnerability data'])
|
||||
OptString.new(
|
||||
['--api-token TOKEN',
|
||||
'The WPScan API Token to display vulnerability data, available at https://wpscan.com/profile']
|
||||
)
|
||||
]
|
||||
end
|
||||
|
||||
@@ -19,7 +22,7 @@ module WPScan
|
||||
|
||||
api_status = DB::VulnApi.status
|
||||
|
||||
raise Error::InvalidApiToken if api_status['error']
|
||||
raise Error::InvalidApiToken if api_status['status'] == 'forbidden'
|
||||
raise Error::ApiLimitReached if api_status['requests_remaining'] == 0
|
||||
raise api_status['http_error'] if api_status['http_error']
|
||||
end
|
||||
|
||||
@@ -7,7 +7,7 @@ module WPScan
|
||||
class KnownLocations < CMSScanner::Finders::Finder
|
||||
include CMSScanner::Finders::Finder::Enumerator
|
||||
|
||||
SQL_PATTERN = /(?:DROP|(?:UN)?LOCK|CREATE) TABLE|INSERT INTO/.freeze
|
||||
SQL_PATTERN = /(?:DROP|(?:UN)?LOCK|CREATE|ALTER) (?:TABLE|DATABASE)|INSERT INTO/.freeze
|
||||
|
||||
# @param [ Hash ] opts
|
||||
# @option opts [ String ] :list
|
||||
|
||||
@@ -6,6 +6,7 @@ require_relative 'interesting_findings/multisite'
|
||||
require_relative 'interesting_findings/debug_log'
|
||||
require_relative 'interesting_findings/backup_db'
|
||||
require_relative 'interesting_findings/mu_plugins'
|
||||
require_relative 'interesting_findings/php_disabled'
|
||||
require_relative 'interesting_findings/registration'
|
||||
require_relative 'interesting_findings/tmm_db_migrate'
|
||||
require_relative 'interesting_findings/upload_sql_dump'
|
||||
@@ -26,7 +27,7 @@ module WPScan
|
||||
%w[
|
||||
Readme DebugLog FullPathDisclosure BackupDB DuplicatorInstallerLog
|
||||
Multisite MuPlugins Registration UploadDirectoryListing TmmDbMigrate
|
||||
UploadSQLDump EmergencyPwdResetScript WPCron
|
||||
UploadSQLDump EmergencyPwdResetScript WPCron PHPDisabled
|
||||
].each do |f|
|
||||
finders << InterestingFindings.const_get(f).new(target)
|
||||
end
|
||||
|
||||
@@ -9,7 +9,7 @@ module WPScan
|
||||
def aggressive(_opts = {})
|
||||
path = 'installer-log.txt'
|
||||
|
||||
return unless /DUPLICATOR INSTALL-LOG/.match?(target.head_and_get(path).body)
|
||||
return unless /DUPLICATOR(-|\s)?(PRO|LITE)?:? INSTALL-LOG/i.match?(target.head_and_get(path).body)
|
||||
|
||||
Model::DuplicatorInstallerLog.new(target.url(path), confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
|
||||
@@ -7,7 +7,7 @@ module WPScan
|
||||
class MuPlugins < CMSScanner::Finders::Finder
|
||||
# @return [ InterestingFinding ]
|
||||
def passive(_opts = {})
|
||||
pattern = %r{#{target.content_dir}/mu\-plugins/}i
|
||||
pattern = %r{#{target.content_dir}/mu-plugins/}i
|
||||
|
||||
target.in_scope_uris(target.homepage_res, '(//@href|//@src)[contains(., "mu-plugins")]') do |uri|
|
||||
next unless uri.path&.match?(pattern)
|
||||
|
||||
@@ -12,8 +12,8 @@ module WPScan
|
||||
location = res.headers_hash['location']
|
||||
|
||||
return unless [200, 302].include?(res.code)
|
||||
return if res.code == 302 && location =~ /wp-login\.php\?action=register/
|
||||
return unless res.code == 200 || res.code == 302 && location =~ /wp-signup\.php/
|
||||
return if res.code == 302 && location&.include?('wp-login.php?action=register')
|
||||
return unless res.code == 200 || res.code == 302 && location&.include?('wp-signup.php')
|
||||
|
||||
target.multisite = true
|
||||
|
||||
|
||||
21
app/finders/interesting_findings/php_disabled.rb
Normal file
21
app/finders/interesting_findings/php_disabled.rb
Normal file
@@ -0,0 +1,21 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module WPScan
|
||||
module Finders
|
||||
module InterestingFindings
|
||||
# See https://github.com/wpscanteam/wpscan/issues/1593
|
||||
class PHPDisabled < CMSScanner::Finders::Finder
|
||||
PATTERN = /\$wp_version =/.freeze
|
||||
|
||||
# @return [ InterestingFinding ]
|
||||
def aggressive(_opts = {})
|
||||
path = 'wp-includes/version.php'
|
||||
|
||||
return unless PATTERN.match?(target.head_and_get(path).body)
|
||||
|
||||
Model::PHPDisabled.new(target.url(path), confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -21,7 +21,7 @@ module WPScan
|
||||
|
||||
def passive_from_css_href(res, opts)
|
||||
target.in_scope_uris(res, '//link/@href[contains(., "style.css")]') do |uri|
|
||||
next unless uri.path =~ %r{/themes/([^\/]+)/style.css\z}i
|
||||
next unless uri.path =~ %r{/themes/([^/]+)/style.css\z}i
|
||||
|
||||
return create_theme(Regexp.last_match[1], uri.to_s, opts)
|
||||
end
|
||||
@@ -33,7 +33,7 @@ module WPScan
|
||||
code = tag.text.to_s
|
||||
next if code.empty?
|
||||
|
||||
next unless code =~ %r{#{item_code_pattern('themes')}\\?/style\.css[^"'\( ]*}i
|
||||
next unless code =~ %r{#{item_code_pattern('themes')}\\?/style\.css[^"'( ]*}i
|
||||
|
||||
return create_theme(Regexp.last_match[1], Regexp.last_match[0].strip, opts)
|
||||
end
|
||||
|
||||
@@ -13,7 +13,7 @@ module WPScan
|
||||
def passive(opts = {})
|
||||
found = []
|
||||
|
||||
slugs = items_from_links('themes', false) + items_from_codes('themes', false)
|
||||
slugs = items_from_links('themes', uniq: false) + items_from_codes('themes', uniq: false)
|
||||
|
||||
slugs.each_with_object(Hash.new(0)) { |slug, counts| counts[slug] += 1 }.each do |slug, occurences|
|
||||
found << Model::Theme.new(slug, target, opts.merge(found_by: found_by, confidence: 2 * occurences))
|
||||
|
||||
@@ -13,7 +13,7 @@ module WPScan
|
||||
|
||||
def valid_credentials?(response)
|
||||
response.code == 302 &&
|
||||
[*response.headers['Set-Cookie']]&.any? { |cookie| cookie =~ /wordpress_logged_in_/i }
|
||||
Array(response.headers['Set-Cookie'])&.any? { |cookie| cookie =~ /wordpress_logged_in_/i }
|
||||
end
|
||||
|
||||
def errored_response?(response)
|
||||
|
||||
@@ -12,7 +12,7 @@ module WPScan
|
||||
end
|
||||
|
||||
def valid_credentials?(response)
|
||||
response.code == 200 && response.body =~ /blogName/
|
||||
response.code == 200 && response.body.include?('blogName')
|
||||
end
|
||||
|
||||
def errored_response?(response)
|
||||
|
||||
@@ -22,8 +22,30 @@ module WPScan
|
||||
target.multi_call(methods, cache_ttl: 0).run
|
||||
end
|
||||
|
||||
# @param [ IO ] file
|
||||
# @param [ Integer ] passwords_size
|
||||
# @return [ Array<String> ] The passwords from the last checked position in the file until there are
|
||||
# passwords_size passwords retrieved
|
||||
def passwords_from_wordlist(file, passwords_size)
|
||||
pwds = []
|
||||
added_pwds = 0
|
||||
|
||||
return pwds if passwords_size.zero?
|
||||
|
||||
# Make sure that the main code does not call #sysseek or #count etc
|
||||
# otherwise the file descriptor will be set to somwehere else
|
||||
file.each_line(chomp: true) do |line|
|
||||
pwds << line
|
||||
added_pwds += 1
|
||||
|
||||
break if added_pwds == passwords_size
|
||||
end
|
||||
|
||||
pwds
|
||||
end
|
||||
|
||||
# @param [ Array<Model::User> ] users
|
||||
# @param [ Array<String> ] passwords
|
||||
# @param [ String ] wordlist_path
|
||||
# @param [ Hash ] opts
|
||||
# @option opts [ Boolean ] :show_progression
|
||||
# @option opts [ Integer ] :multicall_max_passwords
|
||||
@@ -33,18 +55,22 @@ module WPScan
|
||||
# TODO: Make rubocop happy about metrics etc
|
||||
#
|
||||
# rubocop:disable all
|
||||
def attack(users, passwords, opts = {})
|
||||
wordlist_index = 0
|
||||
def attack(users, wordlist_path, opts = {})
|
||||
checked_passwords = 0
|
||||
wordlist = File.open(wordlist_path)
|
||||
wordlist_size = wordlist.count
|
||||
max_passwords = opts[:multicall_max_passwords]
|
||||
current_passwords_size = passwords_size(max_passwords, users.size)
|
||||
|
||||
create_progress_bar(total: (passwords.size / current_passwords_size.round(1)).ceil,
|
||||
create_progress_bar(total: (wordlist_size / current_passwords_size.round(1)).ceil,
|
||||
show_progression: opts[:show_progression])
|
||||
|
||||
wordlist.sysseek(0) # reset the descriptor to the beginning of the file as it changed with #count
|
||||
|
||||
loop do
|
||||
current_users = users.select { |user| user.password.nil? }
|
||||
current_passwords = passwords[wordlist_index, current_passwords_size]
|
||||
wordlist_index += current_passwords_size
|
||||
current_users = users.select { |user| user.password.nil? }
|
||||
current_passwords = passwords_from_wordlist(wordlist, current_passwords_size)
|
||||
checked_passwords += current_passwords_size
|
||||
|
||||
break if current_users.empty? || current_passwords.nil? || current_passwords.empty?
|
||||
|
||||
@@ -75,9 +101,9 @@ module WPScan
|
||||
progress_bar.stop
|
||||
break
|
||||
end
|
||||
|
||||
|
||||
begin
|
||||
progress_bar.total = progress_bar.progress + ((passwords.size - wordlist_index) / current_passwords_size.round(1)).ceil
|
||||
progress_bar.total = progress_bar.progress + ((wordlist_size - checked_passwords) / current_passwords_size.round(1)).ceil
|
||||
rescue ProgressBar::InvalidProgressError
|
||||
end
|
||||
end
|
||||
|
||||
@@ -48,7 +48,7 @@ module WPScan
|
||||
#
|
||||
# @return [ String, nil ] The version number detected from the stable tag
|
||||
def from_stable_tag(body)
|
||||
return unless body =~ /\b(?:stable tag|version):\s*(?!trunk)([0-9a-z\.-]+)/i
|
||||
return unless body =~ /\b(?:stable tag|version):\s*(?!trunk)([0-9a-z.-]+)/i
|
||||
|
||||
number = Regexp.last_match[1]
|
||||
|
||||
@@ -59,7 +59,7 @@ module WPScan
|
||||
#
|
||||
# @return [ String, nil ] The best version number detected from the changelog section
|
||||
def from_changelog_section(body)
|
||||
extracted_versions = body.scan(%r{[=]+\s+(?:v(?:ersion)?\s*)?([0-9\.-]+)[ \ta-z0-9\(\)\.\-\/]*[=]+}i)
|
||||
extracted_versions = body.scan(%r{=+\s+(?:v(?:ersion)?\s*)?([0-9.-]+)[ \ta-z0-9().\-/]*=+}i)
|
||||
|
||||
return if extracted_versions.nil? || extracted_versions.empty?
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ module WPScan
|
||||
|
||||
# @return [ Version ]
|
||||
def style_version
|
||||
return unless Browser.get(target.style_url).body =~ /Version:[\t ]*(?!trunk)([0-9a-z\.-]+)/i
|
||||
return unless Browser.get(target.style_url).body =~ /Version:[\t ]*(?!trunk)([0-9a-z.-]+)/i
|
||||
|
||||
Model::Version.new(
|
||||
Regexp.last_match[1],
|
||||
|
||||
@@ -6,10 +6,21 @@ require_relative 'users/oembed_api'
|
||||
require_relative 'users/rss_generator'
|
||||
require_relative 'users/author_id_brute_forcing'
|
||||
require_relative 'users/login_error_messages'
|
||||
require_relative 'users/yoast_seo_author_sitemap.rb'
|
||||
require_relative 'users/author_sitemap'
|
||||
require_relative 'users/yoast_seo_author_sitemap'
|
||||
|
||||
module WPScan
|
||||
module Finders
|
||||
# Specific Finders container to filter the usernames found
|
||||
# and remove the ones matching ParsedCli.exclude_username if supplied
|
||||
class UsersFinders < SameTypeFinders
|
||||
def filter_findings
|
||||
findings.delete_if { |user| ParsedCli.exclude_usernames.match?(user.username) } if ParsedCli.exclude_usernames
|
||||
|
||||
findings
|
||||
end
|
||||
end
|
||||
|
||||
module Users
|
||||
# Users Finder
|
||||
class Base
|
||||
@@ -22,10 +33,15 @@ module WPScan
|
||||
Users::WpJsonApi.new(target) <<
|
||||
Users::OembedApi.new(target) <<
|
||||
Users::RSSGenerator.new(target) <<
|
||||
Users::AuthorSitemap.new(target) <<
|
||||
Users::YoastSeoAuthorSitemap.new(target) <<
|
||||
Users::AuthorIdBruteForcing.new(target) <<
|
||||
Users::LoginErrorMessages.new(target)
|
||||
end
|
||||
|
||||
def finders
|
||||
@finders ||= Finders::UsersFinders.new
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
36
app/finders/users/author_sitemap.rb
Normal file
36
app/finders/users/author_sitemap.rb
Normal file
@@ -0,0 +1,36 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module WPScan
|
||||
module Finders
|
||||
module Users
|
||||
# Since WP 5.5, /wp-sitemap-users-1.xml is generated and contains
|
||||
# the usernames of accounts who made a post
|
||||
class AuthorSitemap < CMSScanner::Finders::Finder
|
||||
# @param [ Hash ] opts
|
||||
#
|
||||
# @return [ Array<User> ]
|
||||
def aggressive(_opts = {})
|
||||
found = []
|
||||
|
||||
Browser.get(sitemap_url).html.xpath('//url/loc').each do |user_tag|
|
||||
username = user_tag.text.to_s[%r{/author/([^/]+)/}, 1]
|
||||
|
||||
next unless username && !username.strip.empty?
|
||||
|
||||
found << Model::User.new(username,
|
||||
found_by: found_by,
|
||||
confidence: 100,
|
||||
interesting_entries: [sitemap_url])
|
||||
end
|
||||
|
||||
found
|
||||
end
|
||||
|
||||
# @return [ String ] The URL of the sitemap
|
||||
def sitemap_url
|
||||
@sitemap_url ||= target.url('wp-sitemap-users-1.xml')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -37,7 +37,7 @@ module WPScan
|
||||
# usernames from the potential Users found
|
||||
unames = opts[:found].map(&:username)
|
||||
|
||||
[*opts[:list]].each { |uname| unames << uname.chomp }
|
||||
Array(opts[:list]).each { |uname| unames << uname.chomp }
|
||||
|
||||
unames.uniq
|
||||
end
|
||||
|
||||
@@ -13,7 +13,7 @@ module WPScan
|
||||
urls.each do |url|
|
||||
res = Browser.get_and_follow_location(url)
|
||||
|
||||
next unless res.code == 200 && res.body =~ /<dc\:creator>/i
|
||||
next unless res.code == 200 && res.body =~ /<dc:creator>/i
|
||||
|
||||
potential_usernames = []
|
||||
|
||||
|
||||
@@ -5,27 +5,7 @@ module WPScan
|
||||
module Users
|
||||
# The YOAST SEO plugin has an author-sitemap.xml which can leak usernames
|
||||
# See https://github.com/wpscanteam/wpscan/issues/1228
|
||||
class YoastSeoAuthorSitemap < CMSScanner::Finders::Finder
|
||||
# @param [ Hash ] opts
|
||||
#
|
||||
# @return [ Array<User> ]
|
||||
def aggressive(_opts = {})
|
||||
found = []
|
||||
|
||||
Browser.get(sitemap_url).html.xpath('//url/loc').each do |user_tag|
|
||||
username = user_tag.text.to_s[%r{/author/([^\/]+)/}, 1]
|
||||
|
||||
next unless username && !username.strip.empty?
|
||||
|
||||
found << Model::User.new(username,
|
||||
found_by: found_by,
|
||||
confidence: 100,
|
||||
interesting_entries: [sitemap_url])
|
||||
end
|
||||
|
||||
found
|
||||
end
|
||||
|
||||
class YoastSeoAuthorSitemap < AuthorSitemap
|
||||
# @return [ String ] The URL of the author-sitemap
|
||||
def sitemap_url
|
||||
@sitemap_url ||= target.url('author-sitemap.xml')
|
||||
|
||||
@@ -9,7 +9,7 @@ module WPScan
|
||||
# @param [ Boolean ] uniq Wether or not to apply the #uniq on the results
|
||||
#
|
||||
# @return [ Array<String> ] The plugins/themes detected in the href, src attributes of the page
|
||||
def items_from_links(type, uniq = true)
|
||||
def items_from_links(type, uniq: true)
|
||||
found = []
|
||||
xpath = format(
|
||||
'(//@href|//@src|//@data-src)[contains(., "%s")]',
|
||||
@@ -31,7 +31,7 @@ module WPScan
|
||||
# @param [ Boolean ] uniq Wether or not to apply the #uniq on the results
|
||||
#
|
||||
# @return [Array<String> ] The plugins/themes detected in the javascript/style of the homepage
|
||||
def items_from_codes(type, uniq = true)
|
||||
def items_from_codes(type, uniq: true)
|
||||
found = []
|
||||
|
||||
page_res.html.xpath('//script[not(@src)]|//style[not(@src)]').each do |tag|
|
||||
@@ -55,7 +55,7 @@ module WPScan
|
||||
#
|
||||
# @return [ Regexp ]
|
||||
def item_code_pattern(type)
|
||||
@item_code_pattern ||= %r{["'\( ]#{item_url_pattern(type)}([^\\\/\)"']+)}i
|
||||
@item_code_pattern ||= %r{["'( ]#{item_url_pattern(type)}([^\\/)"']+)}i
|
||||
end
|
||||
|
||||
# @param [ String ] type
|
||||
@@ -66,9 +66,9 @@ module WPScan
|
||||
item_url = type == 'plugins' ? target.plugins_url : target.content_url
|
||||
|
||||
url = /#{item_url.gsub(/\A(?:https?)/i, 'https?').gsub('/', '\\\\\?\/')}/i
|
||||
item_dir = %r{(?:#{url}|\\?\/#{item_dir.gsub('/', '\\\\\?\/')}\\?/)}i
|
||||
item_dir = %r{(?:#{url}|\\?/#{item_dir.gsub('/', '\\\\\?\/')}\\?/)}i
|
||||
|
||||
type == 'plugins' ? item_dir : %r{#{item_dir}#{type}\\?\/}i
|
||||
type == 'plugins' ? item_dir : %r{#{item_dir}#{type}\\?/}i
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -10,7 +10,7 @@ module WPScan
|
||||
module Finders
|
||||
# Specific Finders container to filter the version detected
|
||||
# and remove the one with low confidence to avoid false
|
||||
# positive when there is not enought information to accurately
|
||||
# positive when there is not enough information to accurately
|
||||
# determine it.
|
||||
class WpVersionFinders < UniqueFinders
|
||||
def filter_findings
|
||||
|
||||
@@ -7,10 +7,11 @@ module WPScan
|
||||
include References
|
||||
end
|
||||
|
||||
#
|
||||
# Some classes are empty for the #type to be correctly displayed (as taken from the self.class from the parent)
|
||||
#
|
||||
class BackupDB < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "A backup directory has been found: #{url}"
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://github.com/wpscanteam/wpscan/issues/422'] }
|
||||
@@ -18,6 +19,10 @@ module WPScan
|
||||
end
|
||||
|
||||
class DebugLog < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "Debug Log found: #{url}"
|
||||
end
|
||||
|
||||
# @ return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://codex.wordpress.org/Debugging_in_WordPress'] }
|
||||
@@ -40,6 +45,10 @@ module WPScan
|
||||
end
|
||||
|
||||
class FullPathDisclosure < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "Full Path Disclosure found: #{url}"
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://www.owasp.org/index.php/Full_Path_Disclosure'] }
|
||||
@@ -71,6 +80,9 @@ module WPScan
|
||||
end
|
||||
|
||||
class Readme < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "WordPress readme found: #{url}"
|
||||
end
|
||||
end
|
||||
|
||||
class Registration < InterestingFinding
|
||||
@@ -81,6 +93,10 @@ module WPScan
|
||||
end
|
||||
|
||||
class TmmDbMigrate < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "ThemeMakers migration file found: #{url}"
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { packetstorm: [131_957] }
|
||||
@@ -95,6 +111,9 @@ module WPScan
|
||||
end
|
||||
|
||||
class UploadSQLDump < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "SQL Dump found: #{url}"
|
||||
end
|
||||
end
|
||||
|
||||
class WPCron < InterestingFinding
|
||||
@@ -113,5 +132,19 @@ module WPScan
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
class PHPDisabled < InterestingFinding
|
||||
# @return [ String ]
|
||||
def to_s
|
||||
@to_s ||= 'PHP seems to be disabled'
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= {
|
||||
url: ['https://github.com/wpscanteam/wpscan/issues/1593']
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -38,7 +38,7 @@ module WPScan
|
||||
|
||||
# @return [ Array<String> ]
|
||||
def potential_readme_filenames
|
||||
@potential_readme_filenames ||= [*(DB::DynamicFinders::Plugin.df_data.dig(slug, 'Readme', 'path') || super)]
|
||||
@potential_readme_filenames ||= Array((DB::DynamicFinders::Plugin.df_data.dig(slug, 'Readme', 'path') || super))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -45,7 +45,7 @@ module WPScan
|
||||
# @return [ Theme ]
|
||||
def parent_theme
|
||||
return unless template
|
||||
return unless style_body =~ /^@import\surl\(["']?([^"'\)]+)["']?\);\s*$/i
|
||||
return unless style_body =~ /^@import\surl\(["']?([^"')]+)["']?\);\s*$/i
|
||||
|
||||
opts = detection_opts.merge(
|
||||
style_url: url(Regexp.last_match[1]),
|
||||
@@ -101,7 +101,7 @@ module WPScan
|
||||
#
|
||||
# @return [ String ]
|
||||
def parse_style_tag(body, tag)
|
||||
value = body[/#{Regexp.escape(tag)}:[\t ]*([^\r\n\*]+)/i, 1]
|
||||
value = body[/\b#{Regexp.escape(tag)}:[\t ]*([^\r\n*]+)/, 1]
|
||||
|
||||
value && !value.strip.empty? ? value.strip : nil
|
||||
end
|
||||
|
||||
@@ -63,7 +63,7 @@ module WPScan
|
||||
def webshot_enabled?
|
||||
res = Browser.get(url, params: { webshot: 1, src: "http://#{default_allowed_domains.sample}" })
|
||||
|
||||
/WEBSHOT_ENABLED == true/.match?(res.body) ? false : true
|
||||
!/WEBSHOT_ENABLED == true/.match?(res.body)
|
||||
end
|
||||
|
||||
# @return [ Array<String> ] The default allowed domains (between the 2.0 and 2.8.13)
|
||||
|
||||
@@ -39,7 +39,7 @@ module WPScan
|
||||
|
||||
@vulnerabilities = []
|
||||
|
||||
[*db_data['vulnerabilities']].each do |json_vuln|
|
||||
Array(db_data['vulnerabilities']).each do |json_vuln|
|
||||
vulnerability = Vulnerability.load_from_json(json_vuln)
|
||||
@vulnerabilities << vulnerability if vulnerable_to?(vulnerability)
|
||||
end
|
||||
@@ -53,7 +53,9 @@ module WPScan
|
||||
#
|
||||
# @return [ Boolean ]
|
||||
def vulnerable_to?(vuln)
|
||||
return true unless version && vuln && vuln.fixed_in && !vuln.fixed_in.empty?
|
||||
return false if version && vuln&.introduced_in && version < vuln.introduced_in
|
||||
|
||||
return true unless version && vuln&.fixed_in && !vuln.fixed_in.empty?
|
||||
|
||||
version < vuln.fixed_in
|
||||
end
|
||||
|
||||
@@ -53,7 +53,7 @@ module WPScan
|
||||
|
||||
@vulnerabilities = []
|
||||
|
||||
[*db_data['vulnerabilities']].each do |json_vuln|
|
||||
Array(db_data['vulnerabilities']).each do |json_vuln|
|
||||
@vulnerabilities << Vulnerability.load_from_json(json_vuln)
|
||||
end
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<% unless @status.empty? -%>
|
||||
<% if @status['http_error'] -%>
|
||||
<%= critical_icon %> WPVulnDB API, <%= @status['http_error'].to_s %>
|
||||
<%= critical_icon %> WPScan DB API, <%= @status['http_error'].to_s %>
|
||||
<% else -%>
|
||||
<%= info_icon %> WPVulnDB API OK
|
||||
<%= info_icon %> WPScan DB API OK
|
||||
| Plan: <%= @status['plan'] %>
|
||||
| Requests Done (during the scan): <%= @api_requests %>
|
||||
| Requests Remaining: <%= @status['requests_remaining'] %>
|
||||
<% end -%>
|
||||
<% else -%>
|
||||
<%= warning_icon %> No WPVulnDB API Token given, as a result vulnerability data has not been output.
|
||||
<%= warning_icon %> You can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up
|
||||
<%= warning_icon %> No WPScan API Token given, as a result vulnerability data has not been output.
|
||||
<%= warning_icon %> You can get a free API token with 25 daily requests by registering at https://wpscan.com/register
|
||||
<% end -%>
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
"requests_remaining": <%= @status['requests_remaining'].to_json %>
|
||||
<% end -%>
|
||||
<% else -%>
|
||||
"error": "No WPVulnDB API Token given, as a result vulnerability data has not been output.\nYou can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up"
|
||||
"error": "No WPScan API Token given, as a result vulnerability data has not been output.\nYou can get a free API token with 25 daily requests by registering at https://wpscan.com/register"
|
||||
<% end -%>
|
||||
},
|
||||
@@ -7,7 +7,7 @@ module WPScan
|
||||
|
||||
# @return [ String ]
|
||||
def default_user_agent
|
||||
@default_user_agent ||= "WPScan v#{VERSION} (https://wpscan.org/)"
|
||||
@default_user_agent ||= "WPScan v#{VERSION} (https://wpscan.com/wordpress-security-scanner)"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -31,7 +31,7 @@ module WPScan
|
||||
|
||||
finder_configs(
|
||||
finder_class,
|
||||
Regexp.last_match[1] == 'aggressive'
|
||||
aggressive: Regexp.last_match[1] == 'aggressive'
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ module WPScan
|
||||
# @param [ Symbol ] finder_class
|
||||
# @param [ Boolean ] aggressive
|
||||
# @return [ Hash ]
|
||||
def self.finder_configs(finder_class, aggressive = false)
|
||||
def self.finder_configs(finder_class, aggressive: false)
|
||||
configs = {}
|
||||
|
||||
return configs unless allowed_classes.include?(finder_class)
|
||||
|
||||
@@ -24,7 +24,7 @@ module WPScan
|
||||
# @param [ Symbol ] finder_class
|
||||
# @param [ Boolean ] aggressive
|
||||
# @return [ Hash ]
|
||||
def self.finder_configs(finder_class, aggressive = false)
|
||||
def self.finder_configs(finder_class, aggressive: false)
|
||||
configs = {}
|
||||
|
||||
return configs unless allowed_classes.include?(finder_class)
|
||||
|
||||
@@ -4,7 +4,7 @@ module WPScan
|
||||
module DB
|
||||
# WPVulnDB API
|
||||
class VulnApi
|
||||
NON_ERROR_CODES = [200, 401].freeze
|
||||
NON_ERROR_CODES = [200, 403].freeze
|
||||
|
||||
class << self
|
||||
attr_accessor :token
|
||||
@@ -12,7 +12,7 @@ module WPScan
|
||||
|
||||
# @return [ Addressable::URI ]
|
||||
def self.uri
|
||||
@uri ||= Addressable::URI.parse('https://wpvulndb.com/api/v3/')
|
||||
@uri ||= Addressable::URI.parse('https://wpscan.com/api/v3/')
|
||||
end
|
||||
|
||||
# @param [ String ] path
|
||||
@@ -26,7 +26,7 @@ module WPScan
|
||||
# Typhoeus.get is used rather than Browser.get to avoid merging irrelevant params from the CLI
|
||||
res = Typhoeus.get(uri.join(path), default_request_params.merge(params))
|
||||
|
||||
return {} if res.code == 404 # This is for API inconsistencies when dots in path
|
||||
return {} if res.code == 404 || res.code == 429
|
||||
return JSON.parse(res.body) if NON_ERROR_CODES.include?(res.code)
|
||||
|
||||
raise Error::HTTP, res
|
||||
@@ -34,6 +34,8 @@ module WPScan
|
||||
retries ||= 0
|
||||
|
||||
if (retries += 1) <= 3
|
||||
@default_request_params[:headers]['X-Retry'] = retries
|
||||
|
||||
sleep(1)
|
||||
retry
|
||||
end
|
||||
@@ -68,7 +70,7 @@ module WPScan
|
||||
# @return [ Hash ]
|
||||
# @note Those params can not be overriden by CLI options
|
||||
def self.default_request_params
|
||||
Browser.instance.default_connect_request_params.merge(
|
||||
@default_request_params ||= Browser.instance.default_connect_request_params.merge(
|
||||
headers: {
|
||||
'User-Agent' => Browser.instance.default_user_agent,
|
||||
'Authorization' => "Token token=#{token}"
|
||||
|
||||
@@ -29,5 +29,11 @@ module WPScan
|
||||
' use the --scope option or make sure the --url value given is the correct one'
|
||||
end
|
||||
end
|
||||
|
||||
class NoLoginInterfaceDetected < Standard
|
||||
def to_s
|
||||
'Could not find a login interface to perform the password attack against'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -56,9 +56,7 @@ module WPScan
|
||||
|
||||
homepage_result = find(target.homepage_res, opts)
|
||||
|
||||
if homepage_result
|
||||
return homepage_result unless homepage_result.is_a?(Array) && homepage_result.empty?
|
||||
end
|
||||
return homepage_result unless homepage_result.nil? || homepage_result.is_a?(Array) && homepage_result&.empty?
|
||||
|
||||
find(target.error_404_res, opts)
|
||||
end
|
||||
|
||||
@@ -11,7 +11,7 @@ module WPScan
|
||||
|
||||
def self.child_class_constants
|
||||
@child_class_constants ||= super.merge(
|
||||
PARSER: nil, KEY: nil, PATTERN: /(?<v>\d+\.[\.\d]+)/, CONFIDENCE: 70
|
||||
PARSER: nil, KEY: nil, PATTERN: /(?<v>\d+\.[.\d]+)/, CONFIDENCE: 70
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ module WPScan
|
||||
# @return [ Hash ]
|
||||
def self.child_class_constants
|
||||
@child_class_constants ||= super().merge(
|
||||
XPATH: nil, FILES: nil, PATTERN: /(?:v|ver|version)\=(?<v>\d+\.[\.\d]+)/i, CONFIDENCE_PER_OCCURENCE: 10
|
||||
XPATH: nil, FILES: nil, PATTERN: /(?:v|ver|version)=(?<v>\d+\.[.\d]+)/i, CONFIDENCE_PER_OCCURENCE: 10
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ module WPScan
|
||||
# @return [ Hash ]
|
||||
def self.child_class_constants
|
||||
@child_class_constants ||= super().merge(
|
||||
XPATH: nil, PATTERN: /\A(?<v>\d+\.[\.\d]+)/, CONFIDENCE: 60
|
||||
XPATH: nil, PATTERN: /\A(?<v>\d+\.[.\d]+)/, CONFIDENCE: 60
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ module WPScan
|
||||
|
||||
# @return [ Hash ]
|
||||
def self.child_class_constants
|
||||
@child_class_constants ||= super().merge(PATTERN: /ver\=(?<v>\d+\.[\.\d]+)/i)
|
||||
@child_class_constants ||= super().merge(PATTERN: /ver=(?<v>\d+\.[.\d]+)/i)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ end
|
||||
#
|
||||
# @return [ Symbol ]
|
||||
def classify_slug(slug)
|
||||
classified = slug.to_s.gsub(/[^a-z\d\-]/i, '-').gsub(/\-{1,}/, '_').camelize.to_s
|
||||
classified = slug.to_s.gsub(/[^a-z\d\-]/i, '-').gsub(/-{1,}/, '_').camelize.to_s
|
||||
classified = "D_#{classified}" if /\d/.match?(classified[0])
|
||||
|
||||
classified.to_sym
|
||||
|
||||
@@ -27,7 +27,7 @@ module WPScan
|
||||
end
|
||||
|
||||
def wpvulndb_url(id)
|
||||
"https://wpvulndb.com/vulnerabilities/#{id}"
|
||||
"https://wpscan.com/vulnerability/#{id}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -19,13 +19,13 @@ module WPScan
|
||||
# @return [ Boolean ]
|
||||
def vulnerable?
|
||||
[@wp_version, @main_theme, @plugins, @themes, @timthumbs].each do |e|
|
||||
[*e].each { |ae| return true if ae && ae.vulnerable? } # rubocop:disable Style/SafeNavigation
|
||||
Array(e).each { |ae| return true if ae && ae.vulnerable? } # rubocop:disable Style/SafeNavigation
|
||||
end
|
||||
|
||||
return true unless [*@config_backups].empty?
|
||||
return true unless [*@db_exports].empty?
|
||||
return true unless Array(@config_backups).empty?
|
||||
return true unless Array(@db_exports).empty?
|
||||
|
||||
[*@users].each { |u| return true if u.password }
|
||||
Array(@users).each { |u| return true if u.password }
|
||||
|
||||
false
|
||||
end
|
||||
|
||||
@@ -11,9 +11,10 @@ module WPScan
|
||||
module WordPress
|
||||
include CMSScanner::Target::Platform::PHP
|
||||
|
||||
WORDPRESS_PATTERN = %r{/(?:(?:wp-content/(?:themes|(?:mu\-)?plugins|uploads))|wp-includes)/}i.freeze
|
||||
WP_JSON_OEMBED_PATTERN = %r{/wp\-json/oembed/}i.freeze
|
||||
WP_ADMIN_AJAX_PATTERN = %r{\\?/wp\-admin\\?/admin\-ajax\.php}i.freeze
|
||||
WORDPRESS_PATTERN = %r{/(?:(?:wp-content/(?:themes|(?:mu-)?plugins|uploads))|wp-includes)/}i.freeze
|
||||
WORDPRESS_HOSTED_PATTERN = %r{https?://s\d\.wp\.com#{WORDPRESS_PATTERN}}i.freeze
|
||||
WP_JSON_OEMBED_PATTERN = %r{/wp-json/oembed/}i.freeze
|
||||
WP_ADMIN_AJAX_PATTERN = %r{\\?/wp-admin\\?/admin-ajax\.php}i.freeze
|
||||
|
||||
# These methods are used in the associated interesting_findings finders
|
||||
# to keep the boolean state of the finding rather than re-check the whole thing again
|
||||
@@ -103,11 +104,8 @@ module WPScan
|
||||
return true if /\.wordpress\.com$/i.match?(uri.host)
|
||||
|
||||
unless content_dir
|
||||
pattern = %r{https?://s\d\.wp\.com#{WORDPRESS_PATTERN}}i.freeze
|
||||
xpath = '(//@href|//@src)[contains(., "wp.com")]'
|
||||
|
||||
uris_from_page(homepage_res, xpath) do |uri|
|
||||
return true if uri.to_s.match?(pattern)
|
||||
uris_from_page(homepage_res, '(//@href|//@src)[contains(., "wp.com")]') do |uri|
|
||||
return true if uri.to_s.match?(WORDPRESS_HOSTED_PATTERN)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -139,15 +137,19 @@ module WPScan
|
||||
# the first time the method is called, and the effective_url is then used
|
||||
# if suitable, otherwise the default wp-login will be.
|
||||
#
|
||||
# @return [ String ] The URL to the login page
|
||||
# If the login_uri CLI option has been provided, it will be returne w/o redirection check.
|
||||
#
|
||||
# @return [ String, false ] The URL to the login page or false if not detected
|
||||
def login_url
|
||||
return @login_url if @login_url
|
||||
return @login_url unless @login_url.nil?
|
||||
return @login_url = url(ParsedCli.login_uri) if ParsedCli.login_uri
|
||||
|
||||
@login_url = url('wp-login.php')
|
||||
|
||||
res = Browser.get_and_follow_location(@login_url)
|
||||
|
||||
@login_url = res.effective_url if res.effective_url =~ /wp\-login\.php\z/i && in_scope?(res.effective_url)
|
||||
@login_url = res.effective_url if res.effective_url =~ /wp-login\.php\z/i && in_scope?(res.effective_url)
|
||||
@login_url = false if res.code == 404
|
||||
|
||||
@login_url
|
||||
end
|
||||
|
||||
@@ -104,7 +104,7 @@ module WPScan
|
||||
return @sub_dir unless @sub_dir.nil?
|
||||
|
||||
# url_pattern is from CMSScanner::Target
|
||||
pattern = %r{#{url_pattern}(.+?)/(?:xmlrpc\.php|wp\-includes/)}i
|
||||
pattern = %r{#{url_pattern}(.+?)/(?:xmlrpc\.php|wp-includes/)}i
|
||||
xpath = '(//@src|//@href|//@data-src)[contains(., "xmlrpc.php") or contains(., "wp-includes/")]'
|
||||
|
||||
[homepage_res, error_404_res].each do |page_res|
|
||||
@@ -124,9 +124,9 @@ module WPScan
|
||||
def url(path = nil)
|
||||
return @uri.to_s unless path
|
||||
|
||||
if %r{wp\-content/plugins}i.match?(path)
|
||||
if %r{wp-content/plugins}i.match?(path)
|
||||
path = +path.gsub('wp-content/plugins', plugins_dir)
|
||||
elsif /wp\-content/i.match?(path)
|
||||
elsif /wp-content/i.match?(path)
|
||||
path = +path.gsub('wp-content', content_dir)
|
||||
elsif path[0] != '/' && sub_dir
|
||||
path = "#{sub_dir}/#{path}"
|
||||
|
||||
@@ -7,7 +7,8 @@ module Typhoeus
|
||||
#
|
||||
# @return [ Boolean ]
|
||||
def from_vuln_api?
|
||||
effective_url.start_with?(WPScan::DB::VulnApi.uri.to_s) && !effective_url.include?('/status')
|
||||
effective_url.start_with?(WPScan::DB::VulnApi.uri.to_s) &&
|
||||
!effective_url.start_with?(WPScan::DB::VulnApi.uri.join('status').to_s)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
|
||||
# Version
|
||||
module WPScan
|
||||
VERSION = '3.8.2'
|
||||
VERSION = '3.8.17'
|
||||
end
|
||||
|
||||
@@ -21,6 +21,7 @@ module WPScan
|
||||
references: references,
|
||||
type: json_data['vuln_type'],
|
||||
fixed_in: json_data['fixed_in'],
|
||||
introduced_in: json_data['introduced_in'],
|
||||
cvss: json_data['cvss']&.symbolize_keys
|
||||
)
|
||||
end
|
||||
|
||||
@@ -52,9 +52,10 @@ describe WPScan::Controller::Core do
|
||||
%i[apache iis nginx].each do |server|
|
||||
context "when #{server}" do
|
||||
let(:cli_args) { "#{super()} --server #{server}" }
|
||||
let(:servers) { [:Apache, nil, :IIS, :Nginx] }
|
||||
|
||||
it "loads the #{server.capitalize} module and returns :#{server}" do
|
||||
@stubbed_server = [:Apache, nil, :IIS, :Nginx].sample
|
||||
@stubbed_server = servers.sample
|
||||
@expected = server == :iis ? :IIS : server.to_s.camelize.to_sym
|
||||
end
|
||||
end
|
||||
|
||||
@@ -76,7 +76,7 @@ describe WPScan::Controller::Enumeration do
|
||||
config_backups_list config_backups_detection
|
||||
db_exports_list db_exports_detection
|
||||
medias_detection
|
||||
users_list users_detection]
|
||||
users_list users_detection exclude_usernames]
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,5 +1,24 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
XMLRPC_FAILED_BODY = '
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<methodResponse>
|
||||
<fault>
|
||||
<value>
|
||||
<struct>
|
||||
<member>
|
||||
<name>faultCode</name>
|
||||
<value><int>405</int></value>
|
||||
</member>
|
||||
<member>
|
||||
<name>faultString</name>
|
||||
<value><string>%s</string></value>
|
||||
</member>
|
||||
</struct>
|
||||
</value>
|
||||
</fault>
|
||||
</methodResponse>'
|
||||
|
||||
describe WPScan::Controller::PasswordAttack do
|
||||
subject(:controller) { described_class.new }
|
||||
let(:target_url) { 'http://ex.lo/' }
|
||||
@@ -15,13 +34,13 @@ describe WPScan::Controller::PasswordAttack do
|
||||
|
||||
it 'contains to correct options' do
|
||||
expect(controller.cli_options.map(&:to_sym))
|
||||
.to eq(%i[passwords usernames multicall_max_passwords password_attack])
|
||||
.to eq(%i[passwords usernames multicall_max_passwords password_attack login_uri])
|
||||
end
|
||||
end
|
||||
|
||||
describe '#users' do
|
||||
context 'when no --usernames' do
|
||||
it 'calles target.users' do
|
||||
it 'calls target.users' do
|
||||
expect(controller.target).to receive(:users)
|
||||
controller.users
|
||||
end
|
||||
@@ -40,10 +59,6 @@ describe WPScan::Controller::PasswordAttack do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#passwords' do
|
||||
xit
|
||||
end
|
||||
|
||||
describe '#run' do
|
||||
context 'when no --passwords is supplied' do
|
||||
it 'does not run the attacker' do
|
||||
@@ -85,20 +100,34 @@ describe WPScan::Controller::PasswordAttack do
|
||||
end
|
||||
|
||||
context 'when wp.getUsersBlogs method listed' do
|
||||
before { expect(xmlrpc).to receive(:available_methods).and_return(%w[wp.getUsersBlogs m2]) }
|
||||
before do
|
||||
expect(xmlrpc).to receive(:available_methods).and_return(%w[wp.getUsersBlogs m2])
|
||||
|
||||
stub_request(:post, xmlrpc.url).to_return(body: body)
|
||||
end
|
||||
|
||||
context 'when wp.getUsersBlogs method disabled' do
|
||||
it 'returns false' do
|
||||
stub_request(:post, xmlrpc.url).to_return(body: 'XML-RPC services are disabled on this site.')
|
||||
context 'when blog is in EN' do
|
||||
let(:body) { format(XMLRPC_FAILED_BODY, 'XML-RPC services are disabled on this site.') }
|
||||
|
||||
expect(controller.xmlrpc_get_users_blogs_enabled?).to be false
|
||||
it 'returns false' do
|
||||
expect(controller.xmlrpc_get_users_blogs_enabled?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
context 'when blog is in FR' do
|
||||
let(:body) { format(XMLRPC_FAILED_BODY, 'Les services XML-RPC sont désactivés sur ce site.') }
|
||||
|
||||
it 'returns false' do
|
||||
expect(controller.xmlrpc_get_users_blogs_enabled?).to be false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when wp.getUsersBlogs method enabled' do
|
||||
it 'returns true' do
|
||||
stub_request(:post, xmlrpc.url).to_return(body: 'Incorrect username or password.')
|
||||
let(:body) { 'Incorrect username or password.' }
|
||||
|
||||
it 'returns true' do
|
||||
expect(controller.xmlrpc_get_users_blogs_enabled?).to be true
|
||||
end
|
||||
end
|
||||
@@ -107,15 +136,34 @@ describe WPScan::Controller::PasswordAttack do
|
||||
end
|
||||
|
||||
describe '#attacker' do
|
||||
before do
|
||||
allow(controller.target).to receive(:sub_dir)
|
||||
controller.target.instance_variable_set(:@login_url, nil)
|
||||
end
|
||||
|
||||
context 'when --password-attack provided' do
|
||||
let(:cli_args) { "#{super()} --password-attack #{attack}" }
|
||||
|
||||
context 'when wp-login' do
|
||||
before { stub_request(:get, controller.target.url('wp-login.php')).to_return(status: status) }
|
||||
|
||||
let(:attack) { 'wp-login' }
|
||||
|
||||
it 'returns the correct object' do
|
||||
expect(controller.attacker).to be_a WPScan::Finders::Passwords::WpLogin
|
||||
expect(controller.attacker.target).to be_a WPScan::Target
|
||||
context 'when available' do
|
||||
let(:status) { 200 }
|
||||
|
||||
it 'returns the correct object' do
|
||||
expect(controller.attacker).to be_a WPScan::Finders::Passwords::WpLogin
|
||||
expect(controller.attacker.target).to be_a WPScan::Target
|
||||
end
|
||||
end
|
||||
|
||||
context 'when not available (404)' do
|
||||
let(:status) { 404 }
|
||||
|
||||
it 'raises an error' do
|
||||
expect { controller.attacker }.to raise_error(WPScan::Error::NoLoginInterfaceDetected)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -172,11 +220,26 @@ describe WPScan::Controller::PasswordAttack do
|
||||
|
||||
context 'when automatic detection' do
|
||||
context 'when xmlrpc_get_users_blogs_enabled? is false' do
|
||||
it 'returns the WpLogin' do
|
||||
before do
|
||||
expect(controller).to receive(:xmlrpc_get_users_blogs_enabled?).and_return(false)
|
||||
stub_request(:get, controller.target.url('wp-login.php')).to_return(status: status)
|
||||
end
|
||||
|
||||
expect(controller.attacker).to be_a WPScan::Finders::Passwords::WpLogin
|
||||
expect(controller.attacker.target).to be_a WPScan::Target
|
||||
context 'when wp-login available' do
|
||||
let(:status) { 200 }
|
||||
|
||||
it 'returns the WpLogin' do
|
||||
expect(controller.attacker).to be_a WPScan::Finders::Passwords::WpLogin
|
||||
expect(controller.attacker.target).to be_a WPScan::Target
|
||||
end
|
||||
end
|
||||
|
||||
context 'when wp-login.php not available' do
|
||||
let(:status) { 404 }
|
||||
|
||||
it 'raises an error' do
|
||||
expect { controller.attacker }.to raise_error(WPScan::Error::NoLoginInterfaceDetected)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ describe WPScan::Controller::VulnApi do
|
||||
|
||||
before do
|
||||
WPScan::ParsedCli.options = rspec_parsed_options(cli_args)
|
||||
WPScan::DB::VulnApi.instance_variable_set(:@default_request_params, nil)
|
||||
end
|
||||
|
||||
describe '#cli_options' do
|
||||
@@ -27,7 +28,7 @@ describe WPScan::Controller::VulnApi do
|
||||
let(:cli_args) { "#{super()} --api-token token" }
|
||||
|
||||
context 'when the token is invalid' do
|
||||
before { expect(WPScan::DB::VulnApi).to receive(:status).and_return('error' => 'HTTP Token: Access denied.') }
|
||||
before { expect(WPScan::DB::VulnApi).to receive(:status).and_return('status' => 'forbidden') }
|
||||
|
||||
it 'raise an InvalidApiToken error' do
|
||||
expect { controller.before_scan }.to raise_error(WPScan::Error::InvalidApiToken)
|
||||
|
||||
@@ -102,19 +102,29 @@ describe WPScan::Finders::DbExports::KnownLocations do
|
||||
expect(target).to receive(:homepage_or_404?).twice.and_return(false)
|
||||
end
|
||||
|
||||
it 'returns the expected Array<DbExport>' do
|
||||
expected = []
|
||||
context 'when matching the pattern' do
|
||||
it 'returns the expected Array<DbExport>' do
|
||||
expected = []
|
||||
|
||||
found_files.each do |file|
|
||||
url = "#{target.url}#{file}"
|
||||
expected << WPScan::Model::DbExport.new(
|
||||
url,
|
||||
confidence: 100,
|
||||
found_by: described_class::DIRECT_ACCESS
|
||||
)
|
||||
found_files.each do |file|
|
||||
url = "#{target.url}#{file}"
|
||||
expected << WPScan::Model::DbExport.new(
|
||||
url,
|
||||
confidence: 100,
|
||||
found_by: described_class::DIRECT_ACCESS
|
||||
)
|
||||
end
|
||||
|
||||
expect(finder.aggressive(opts)).to eql expected
|
||||
end
|
||||
end
|
||||
|
||||
expect(finder.aggressive(opts)).to eql expected
|
||||
context 'when not matching the pattern' do
|
||||
let(:db_export) { '' }
|
||||
|
||||
it 'returns an empty array' do
|
||||
expect(finder.aggressive(opts)).to eql []
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -35,15 +35,47 @@ describe WPScan::Finders::InterestingFindings::DuplicatorInstallerLog do
|
||||
end
|
||||
|
||||
context 'when the body matches' do
|
||||
let(:body) { File.read(fixtures.join(filename)) }
|
||||
|
||||
it 'returns the InterestingFinding' do
|
||||
after do
|
||||
expect(finder.aggressive).to eql WPScan::Model::DuplicatorInstallerLog.new(
|
||||
log_url,
|
||||
confidence: 100,
|
||||
found_by: described_class::DIRECT_ACCESS
|
||||
)
|
||||
end
|
||||
|
||||
context 'when old versions of the file' do
|
||||
let(:body) { File.read(fixtures.join('old.txt')) }
|
||||
|
||||
it 'returns the InterestingFinding' do
|
||||
# handled in after loop above
|
||||
end
|
||||
end
|
||||
|
||||
context 'when newest versions of the file' do
|
||||
context 'when PRO format 1' do
|
||||
let(:body) { File.read(fixtures.join('pro.txt')) }
|
||||
|
||||
it 'returns the InterestingFinding' do
|
||||
# handled in after loop above
|
||||
end
|
||||
end
|
||||
|
||||
context 'when PRO format 2' do
|
||||
let(:body) { File.read(fixtures.join('pro2.txt')) }
|
||||
|
||||
it 'returns the InterestingFinding' do
|
||||
# handled in after loop above
|
||||
end
|
||||
end
|
||||
|
||||
context 'when LITE' do
|
||||
let(:body) { File.read(fixtures.join('lite.txt')) }
|
||||
|
||||
it 'returns the InterestingFinding' do
|
||||
# handled in after loop above
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,7 +4,7 @@ describe WPScan::Finders::InterestingFindings::EmergencyPwdResetScript do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:file_url) { url + 'emergency.php' }
|
||||
let(:file_url) { "#{url}emergency.php" }
|
||||
let(:fixtures) { FINDERS_FIXTURES.join('interesting_findings', 'emergency_pwd_reset_script') }
|
||||
|
||||
before do
|
||||
|
||||
50
spec/app/finders/interesting_findings/php_disabled_spec.rb
Normal file
50
spec/app/finders/interesting_findings/php_disabled_spec.rb
Normal file
@@ -0,0 +1,50 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe WPScan::Finders::InterestingFindings::PHPDisabled do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:fixtures) { FINDERS_FIXTURES.join('interesting_findings', 'php_disabled') }
|
||||
let(:file_path) { 'wp-includes/version.php' }
|
||||
let(:file_url) { target.url(file_path) }
|
||||
|
||||
describe '#aggressive' do
|
||||
before do
|
||||
expect(target).to receive(:sub_dir).at_least(1).and_return(false)
|
||||
expect(target).to receive(:head_or_get_params).and_return(method: :head)
|
||||
end
|
||||
|
||||
context 'when not a 200' do
|
||||
it 'return nil' do
|
||||
stub_request(:head, file_url).to_return(status: 404)
|
||||
|
||||
expect(finder.aggressive).to eql nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'when a 200' do
|
||||
before do
|
||||
stub_request(:head, file_url)
|
||||
stub_request(:get, file_url).to_return(body: body)
|
||||
end
|
||||
|
||||
context 'when the body does not match' do
|
||||
let(:body) { '' }
|
||||
|
||||
its(:aggressive) { should be_nil }
|
||||
end
|
||||
|
||||
context 'when the body matches' do
|
||||
let(:body) { File.read(fixtures.join('version.php')) }
|
||||
|
||||
it 'returns the PHPDisabled' do
|
||||
expect(finder.aggressive).to eql WPScan::Model::PHPDisabled.new(
|
||||
file_url,
|
||||
confidence: 100,
|
||||
found_by: described_class::DIRECT_ACCESS
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -4,7 +4,7 @@ describe WPScan::Finders::InterestingFindings::UploadSQLDump do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:dump_url) { url + 'wp-content/uploads/dump.sql' }
|
||||
let(:dump_url) { "#{url}wp-content/uploads/dump.sql" }
|
||||
let(:fixtures) { FINDERS_FIXTURES.join('interesting_findings', 'upload_sql_dump') }
|
||||
let(:wp_content) { 'wp-content' }
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ describe WPScan::Finders::InterestingFindings::Base do
|
||||
%w[
|
||||
Readme DebugLog FullPathDisclosure
|
||||
Multisite MuPlugins Registration UploadDirectoryListing TmmDbMigrate
|
||||
UploadSQLDump
|
||||
UploadSQLDump PHPDisabled
|
||||
]
|
||||
end
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ describe WPScan::Finders::Medias::AttachmentBruteForcing do
|
||||
describe '#target_urls' do
|
||||
it 'returns the expected urls' do
|
||||
expect(finder.target_urls(range: (1..2))).to eql(
|
||||
url + '?attachment_id=1' => 1,
|
||||
url + '?attachment_id=2' => 2
|
||||
"#{url}?attachment_id=1" => 1,
|
||||
"#{url}?attachment_id=2" => 2
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -24,11 +24,13 @@ describe WPScan::Finders::Passwords::XMLRPC do
|
||||
</methodResponse>'
|
||||
|
||||
describe '#attack' do
|
||||
let(:wordlist_path) { FINDERS_FIXTURES.join('passwords.txt').to_s }
|
||||
|
||||
context 'when no valid credentials' do
|
||||
before do
|
||||
stub_request(:post, url).to_return(status: status, body: RESPONSE_403_BODY)
|
||||
|
||||
finder.attack(users, %w[pwd])
|
||||
finder.attack(users, wordlist_path)
|
||||
end
|
||||
|
||||
let(:users) { %w[admin].map { |username| WPScan::Model::User.new(username) } }
|
||||
|
||||
@@ -13,8 +13,8 @@ describe WPScan::Finders::Users::AuthorIdBruteForcing do
|
||||
describe '#target_urls' do
|
||||
it 'returns the correct URLs' do
|
||||
expect(finder.target_urls(range: (1..2))).to eql(
|
||||
url + '?author=1' => 1,
|
||||
url + '?author=2' => 2
|
||||
"#{url}?author=1" => 1,
|
||||
"#{url}?author=2" => 2
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
48
spec/app/finders/users/author_sitemap_spec.rb
Normal file
48
spec/app/finders/users/author_sitemap_spec.rb
Normal file
@@ -0,0 +1,48 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe WPScan::Finders::Users::AuthorSitemap do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url) }
|
||||
let(:url) { 'http://wp.lab/' }
|
||||
let(:fixtures) { FINDERS_FIXTURES.join('users', 'author_sitemap') }
|
||||
|
||||
describe '#aggressive' do
|
||||
before do
|
||||
allow(target).to receive(:sub_dir).and_return(false)
|
||||
|
||||
stub_request(:get, finder.sitemap_url).to_return(body: body)
|
||||
end
|
||||
|
||||
context 'when not an XML response' do
|
||||
let(:body) { '' }
|
||||
|
||||
its(:aggressive) { should eql([]) }
|
||||
end
|
||||
|
||||
context 'when an XML response' do
|
||||
context 'when no usernames disclosed' do
|
||||
let(:body) { File.read(fixtures.join('no_usernames.xml')) }
|
||||
|
||||
its(:aggressive) { should eql([]) }
|
||||
end
|
||||
|
||||
context 'when usernames disclosed' do
|
||||
let(:body) { File.read(fixtures.join('usernames.xml')) }
|
||||
|
||||
it 'returns the expected array of users' do
|
||||
users = finder.aggressive
|
||||
|
||||
expect(users.size).to eql 2
|
||||
|
||||
expect(users.first.username).to eql 'admin'
|
||||
expect(users.first.confidence).to eql 100
|
||||
expect(users.first.interesting_entries).to eql ['http://wp.lab/wp-sitemap-users-1.xml']
|
||||
|
||||
expect(users.last.username).to eql 'author'
|
||||
expect(users.last.confidence).to eql 100
|
||||
expect(users.last.interesting_entries).to eql ['http://wp.lab/wp-sitemap-users-1.xml']
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -8,7 +8,7 @@ describe WPScan::Finders::Users::Base do
|
||||
describe '#finders' do
|
||||
it 'contains the expected finders' do
|
||||
expect(user.finders.map { |f| f.class.to_s.demodulize })
|
||||
.to eq %w[AuthorPosts WpJsonApi OembedApi RSSGenerator YoastSeoAuthorSitemap
|
||||
.to eq %w[AuthorPosts WpJsonApi OembedApi RSSGenerator AuthorSitemap YoastSeoAuthorSitemap
|
||||
AuthorIdBruteForcing LoginErrorMessages]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -5,7 +5,7 @@ describe WPScan::Finders::WpVersion::Readme do
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:fixtures) { FINDERS_FIXTURES.join('wp_version', 'readme') }
|
||||
let(:readme_url) { url + 'readme.html' }
|
||||
let(:readme_url) { "#{url}readme.html" }
|
||||
|
||||
describe '#aggressive' do
|
||||
before { stub_request(:get, readme_url).to_return(body: File.read(fixtures.join(file))) }
|
||||
|
||||
@@ -172,7 +172,7 @@ describe WPScan::Model::Plugin do
|
||||
|
||||
after do
|
||||
expect(plugin.vulnerabilities).to eq @expected
|
||||
expect(plugin.vulnerable?).to eql @expected.empty? ? false : true
|
||||
expect(plugin.vulnerable?).to eql !@expected.empty?
|
||||
end
|
||||
|
||||
context 'when plugin not in the DB' do
|
||||
@@ -195,50 +195,108 @@ describe WPScan::Model::Plugin do
|
||||
end
|
||||
|
||||
context 'when vulnerabilities' do
|
||||
let(:slug) { 'vulnerable-not-popular' }
|
||||
let(:db_data) { vuln_api_data_for('plugins/vulnerable-not-popular') }
|
||||
context 'when only fixed_in' do
|
||||
let(:slug) { 'vulnerable-not-popular' }
|
||||
let(:db_data) { vuln_api_data_for('plugins/vulnerable-not-popular') }
|
||||
|
||||
let(:all_vulns) do
|
||||
[
|
||||
WPScan::Vulnerability.new(
|
||||
'First Vuln <= 6.3.10 - LFI',
|
||||
references: { wpvulndb: '1' },
|
||||
type: 'LFI',
|
||||
fixed_in: '6.3.10'
|
||||
),
|
||||
WPScan::Vulnerability.new('No Fixed In', references: { wpvulndb: '2' })
|
||||
]
|
||||
end
|
||||
|
||||
context 'when no plugin version' do
|
||||
before { expect(plugin).to receive(:version).at_least(1).and_return(false) }
|
||||
|
||||
it 'returns all the vulnerabilities' do
|
||||
@expected = all_vulns
|
||||
end
|
||||
end
|
||||
|
||||
context 'when plugin version' do
|
||||
before do
|
||||
expect(plugin)
|
||||
.to receive(:version)
|
||||
.at_least(1)
|
||||
.and_return(WPScan::Model::Version.new(number))
|
||||
let(:all_vulns) do
|
||||
[
|
||||
WPScan::Vulnerability.new(
|
||||
'First Vuln <= 6.3.10 - LFI',
|
||||
references: { wpvulndb: '1' },
|
||||
type: 'LFI',
|
||||
fixed_in: '6.3.10'
|
||||
),
|
||||
WPScan::Vulnerability.new('No Fixed In', references: { wpvulndb: '2' })
|
||||
]
|
||||
end
|
||||
|
||||
context 'when < to a fixed_in' do
|
||||
let(:number) { '5.0' }
|
||||
context 'when no plugin version' do
|
||||
before { expect(plugin).to receive(:version).at_least(1).and_return(false) }
|
||||
|
||||
it 'returns it' do
|
||||
it 'returns all the vulnerabilities' do
|
||||
@expected = all_vulns
|
||||
end
|
||||
end
|
||||
|
||||
context 'when >= to a fixed_in' do
|
||||
let(:number) { '6.3.10' }
|
||||
context 'when plugin version' do
|
||||
before do
|
||||
expect(plugin)
|
||||
.to receive(:version)
|
||||
.at_least(1)
|
||||
.and_return(WPScan::Model::Version.new(number))
|
||||
end
|
||||
|
||||
it 'does not return it ' do
|
||||
@expected = [all_vulns.last]
|
||||
context 'when < to fixed_in' do
|
||||
let(:number) { '5.0' }
|
||||
|
||||
it 'returns it' do
|
||||
@expected = all_vulns
|
||||
end
|
||||
end
|
||||
|
||||
context 'when >= to fixed_in' do
|
||||
let(:number) { '6.3.10' }
|
||||
|
||||
it 'does not return it ' do
|
||||
@expected = [all_vulns.last]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when introduced_in' do
|
||||
let(:db_data) { vuln_api_data_for('plugins/vulnerable-introduced-in') }
|
||||
|
||||
let(:all_vulns) do
|
||||
[
|
||||
WPScan::Vulnerability.new(
|
||||
'Introduced In 6.4',
|
||||
fixed_in: '6.5',
|
||||
introduced_in: '6.4',
|
||||
references: { wpvulndb: '1' }
|
||||
)
|
||||
]
|
||||
end
|
||||
|
||||
context 'when no plugin version' do
|
||||
before { expect(plugin).to receive(:version).at_least(1).and_return(false) }
|
||||
|
||||
it 'returns all the vulnerabilities' do
|
||||
@expected = all_vulns
|
||||
end
|
||||
end
|
||||
|
||||
context 'when plugin version' do
|
||||
before do
|
||||
expect(plugin)
|
||||
.to receive(:version)
|
||||
.at_least(1)
|
||||
.and_return(WPScan::Model::Version.new(number))
|
||||
end
|
||||
|
||||
context 'when < to introduced_in' do
|
||||
let(:number) { '5.0' }
|
||||
|
||||
it 'does not return it' do
|
||||
@expected = []
|
||||
end
|
||||
end
|
||||
|
||||
context 'when >= to fixed_in' do
|
||||
let(:number) { '6.5' }
|
||||
|
||||
it 'does not return it' do
|
||||
@expected = []
|
||||
end
|
||||
end
|
||||
|
||||
context 'when >= to introduced_in' do
|
||||
let(:number) { '6.4' }
|
||||
|
||||
it 'returns it' do
|
||||
@expected = all_vulns
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -41,6 +41,12 @@ describe WPScan::Model::Theme do
|
||||
its(:style_uri) { should eql 'http://www.elegantthemes.com/gallery/divi/' }
|
||||
its(:license_uri) { should eql 'http://www.gnu.org/licenses/gpl-2.0.html' }
|
||||
end
|
||||
|
||||
context 'when no tags' do
|
||||
let(:fixture) { fixtures.join('no_tags.css') }
|
||||
|
||||
its(:author) { should eql nil }
|
||||
end
|
||||
end
|
||||
|
||||
describe '#version' do
|
||||
@@ -194,7 +200,7 @@ describe WPScan::Model::Theme do
|
||||
|
||||
after do
|
||||
expect(theme.vulnerabilities).to eq @expected
|
||||
expect(theme.vulnerable?).to eql @expected.empty? ? false : true
|
||||
expect(theme.vulnerable?).to eql !@expected.empty?
|
||||
end
|
||||
|
||||
context 'when theme not in the DB' do
|
||||
|
||||
15694
spec/fixtures/db/dynamic_finders.yml
vendored
15694
spec/fixtures/db/dynamic_finders.yml
vendored
File diff suppressed because it is too large
Load Diff
13
spec/fixtures/db/vuln_api/plugins/vulnerable-introduced-in.json
vendored
Normal file
13
spec/fixtures/db/vuln_api/plugins/vulnerable-introduced-in.json
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"latest_version": null,
|
||||
"last_updated": null,
|
||||
"popular": false,
|
||||
"vulnerabilities" : [
|
||||
{
|
||||
"title": "Introduced In 6.4",
|
||||
"id": 1,
|
||||
"introduced_in": "6.4",
|
||||
"fixed_in": "6.5"
|
||||
}
|
||||
]
|
||||
}
|
||||
6117
spec/fixtures/dynamic_finders/expected.yml
vendored
6117
spec/fixtures/dynamic_finders/expected.yml
vendored
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,338 @@
|
||||
# Copyright (C) 2020 ZealousWeb Technologies
|
||||
# This file is distributed under the same license as the Abandoned Contact Form 7 plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Abandoned Contact Form 7 1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/abandoned-forms-contact-form-7\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-08-17T07:23:53+02:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: cf7-abandoned-form\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Abandoned Contact Form 7"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Abandoned Contact Form 7 provides an ability to track the data from Contact Form 7 even if the user does not submit the form."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "ZealousWeb Technologies"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://www.zealousweb.com"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:112
|
||||
msgid "Form Data"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:113
|
||||
#: inc/admin/class.cf7af.admin.action.php:508
|
||||
msgid "User Email"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:114
|
||||
#: inc/admin/class.cf7af.admin.action.php:515
|
||||
msgid "User IP"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:115
|
||||
msgid "is Enable Send Mail"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:116
|
||||
msgid "Number of Send Mail"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:117
|
||||
#: inc/admin/class.cf7af.admin.filter.php:227
|
||||
msgid "Submitted Date"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:169
|
||||
#: inc/admin/class.cf7af.admin.action.php:541
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:170
|
||||
#: inc/admin/class.cf7af.admin.action.php:542
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:219
|
||||
msgid "Abandoned Form Data"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:288
|
||||
#: inc/admin/class.cf7af.admin.action.php:552
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:290
|
||||
msgid "To enable this button please allow mail notification from detail page"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:291
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:381
|
||||
msgid "Select Forms"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:387
|
||||
msgid "Export CSV"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:424
|
||||
#: inc/admin/class.cf7af.admin.action.php:425
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:34
|
||||
msgid "Mail Notification Settings"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:433
|
||||
#: inc/admin/class.cf7af.admin.action.php:434
|
||||
#: inc/admin/class.cf7af.admin.action.php:549
|
||||
#: inc/admin/class.cf7af.admin.filter.php:224
|
||||
msgid "Send Mail"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:451
|
||||
msgid "Please select form to export."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:466
|
||||
msgid "No Abandoned data Found"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:501
|
||||
msgid "CF7 Form Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:522
|
||||
msgid "Other Form Detail"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.action.php:538
|
||||
msgid "Disable Mail Notification"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.filter.php:92
|
||||
msgid "Abandoned Form Settings"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.filter.php:222
|
||||
msgid "Abandoned User's Email"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.filter.php:223
|
||||
msgid "IP Address"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.filter.php:225
|
||||
msgid "Number of Emails Sent"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7af.admin.filter.php:226
|
||||
msgid "Fail Counter"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:13
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:37
|
||||
msgid "Nonce check failed."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:26
|
||||
msgid "Settings saved."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:28
|
||||
msgid "Settings are not saved."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:36
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:96
|
||||
msgid "Use {email} to insert the email into the mail body"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:37
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:97
|
||||
msgid "Use {contact_form} to insert the form name into the mail body"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:38
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:98
|
||||
msgid "Use {link} to insert the page contact link into the mail body"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:61
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:175
|
||||
msgid "Subject"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:80
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:196
|
||||
msgid "Email Body"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:101
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:114
|
||||
msgid "<h3>Subject</h3><p>Please enter the subject for send mail.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.notification.settings.template.php:116
|
||||
msgid "<h3>Email Body </h3><p>It's a body content of mail which reflect on sent mail.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:73
|
||||
msgid "Error on Send Mail."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:84
|
||||
msgid "Send Mail Suceessfully to Abandoned User."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:86
|
||||
msgid "Mail has not send."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:92
|
||||
msgid "Send Mail to Abandoned User Entry"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:120
|
||||
msgid "User Email Address (To)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:139
|
||||
msgid "From Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:157
|
||||
msgid "From Email Address"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:212
|
||||
msgid "Send"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:226
|
||||
msgid "<h3>User Email Address (To)</h3><p>This is an Abandoned user's email ID which will receive the email.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:228
|
||||
msgid "<h3>From Name</h3><p>This is a default 'Name' which is get from website general settings but if you use SMTP settings then From Name used from SMTP settings page.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:230
|
||||
msgid "<h3>From Email Address</h3><p>This is a default 'Email Address' which is get from website general settings but if you use SMTP settings then From Email used from SMTP settings page.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:232
|
||||
msgid "<h3>Subject</h3><p>This is the subject which is used in email.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.send.mail.template.php:234
|
||||
msgid "<h3>Email Body</h3><p>This is an email body content which are reflect on email body.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.template.php:23
|
||||
msgid "Enable Abandoned"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.template.php:34
|
||||
#: inc/admin/template/cf7af.template.php:41
|
||||
msgid "Select Email Field"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.template.php:67
|
||||
msgid "<h3>Enable/Disable Abandoned</h3><p>You can enable/disable Abandoned form functionality.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7af.template.php:69
|
||||
msgid "<h3>Select Email Field</h3><p>Select the email field for tracking Abandoned user</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:92
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:94
|
||||
msgid "Document"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:345
|
||||
#: inc/class.cf7af.php:356
|
||||
msgid "Abandoned Users"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:346
|
||||
msgid "Abandoned User Detail"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:347
|
||||
msgid "All Abandoned Users"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:348
|
||||
msgid "Edit Abandoned User"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:349
|
||||
msgid "Search Abandoned User"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:350
|
||||
msgid "View Abandoned User"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:351
|
||||
msgid "No Abandoned User found"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:352
|
||||
msgid "No Abandoned User found in Trash"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:400
|
||||
msgid "You are so close!"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:402
|
||||
msgid "Hello"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:403
|
||||
msgid "Contact into:"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:404
|
||||
msgid "We noticed you left something behind."
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:405
|
||||
msgid "No need to worry, you can still visit the page from where you left accidentally."
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:406
|
||||
msgid "Use the following link to make submissions."
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:408
|
||||
msgid "Thanks!"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7af.php:424
|
||||
msgid "<b>Abandoned Contact Form 7 :</b> Contact Form 7 is not active! Please install <a target=\"_blank\" href=\"https://wordpress.org/plugins/contact-form-7/\">Contact Form 7</a>."
|
||||
msgstr ""
|
||||
@@ -0,0 +1,426 @@
|
||||
# Copyright (C) 2020 ZealousWeb Technologies
|
||||
# This file is distributed under the same license as the Accept 2Checkout Payments Using Contact Form 7 plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Accept 2Checkout Payments Using Contact Form 7 1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/accept-2checkout-payments-using-contact-form-7-free\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-10-21T15:36:36+02:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: accept-2checkout-payments-using-contact-form-7\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Accept 2Checkout Payments Using Contact Form 7"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "This plugin will integrate 2checkout payment gateway for making your payments through Contact Form 7."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "ZealousWeb Technologies"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://www.zealousweb.com"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf72ch.admin.action.php:81
|
||||
msgid "From Data"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf72ch.admin.action.php:82
|
||||
#: inc/admin/class.cf72ch.admin.action.php:329
|
||||
msgid "Do you need help for configuration?"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf72ch.admin.action.php:283
|
||||
msgid "Select Forms"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf72ch.admin.filter.php:53
|
||||
msgid "2checkout"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf72ch.admin.filter.php:101
|
||||
#: inc/admin/template/cf72ch.template.php:114
|
||||
msgid "Document Link"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf72ch.admin.filter.php:104
|
||||
msgid "Support Link"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf72ch.admin.filter.php:140
|
||||
msgid "Invoice ID"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf72ch.admin.filter.php:141
|
||||
msgid "Order ID"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf72ch.admin.filter.php:142
|
||||
msgid "Transaction Status"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf72ch.admin.filter.php:143
|
||||
msgid "Total Amount"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf72ch.admin.filter.php:144
|
||||
msgid "Submitted Date"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:79
|
||||
msgid "Sandbox"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:80
|
||||
msgid "Live"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:113
|
||||
msgid "To use 2Checkout option, first you need to create and save form tags."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:123
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:133
|
||||
msgid "Enable Debug Mode"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:143
|
||||
msgid "Payment Mode "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:160
|
||||
msgid "2Checkout Order Item Name *"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:171
|
||||
msgid "Merchant Code "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:182
|
||||
msgid "Secret Key "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:193
|
||||
msgid "Amount Field Name "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:199
|
||||
msgid "Select field name for amount"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:212
|
||||
msgid "Quantity Field Name (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:218
|
||||
msgid "Select field name for quantity"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:231
|
||||
msgid "Customer Email "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:237
|
||||
msgid "Select field name for customer email"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:251
|
||||
msgid "Select Currency"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:270
|
||||
msgid "Return Success URL (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:276
|
||||
#: inc/admin/template/cf72ch.template.php:296
|
||||
msgid "Select page"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:290
|
||||
msgid "Return Cancel URL (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:314
|
||||
msgid "Customer Billing Details"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:323
|
||||
msgid "Billing First Name Field "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:329
|
||||
msgid "Select field name for billing first name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:342
|
||||
msgid "Billing Last Name Field "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:348
|
||||
msgid "Select field name for billing last name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:361
|
||||
msgid "Billing Address Field "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:367
|
||||
msgid "Select field name for billing address"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:380
|
||||
msgid "Billing City Field "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:386
|
||||
msgid "Select field name for billing city name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:399
|
||||
msgid "Billing State Field "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:405
|
||||
msgid "Select field name for billing state name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:418
|
||||
msgid "Billing Zipcode Field "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:424
|
||||
msgid "Select field name for billing Zipcode name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:438
|
||||
msgid "Billing Country Field "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:444
|
||||
msgid "Select field name for billing country name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:479
|
||||
msgid "<h3>Merchant Code</h3><p>Get Merchant Code from <a href=\"#\" target=\"_blank\">here</a></p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:483
|
||||
msgid "<h3>Order Item Name</h3><p>Set Order Item Name</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:487
|
||||
msgid "<h3>Secret Key</h3><p>Get Secret Key from <a href=\"#\" target=\"_blank\">here</a></p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:491
|
||||
msgid "<h3>Select Currency</h3><p>Select the currency.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:495
|
||||
msgid "<h3>Amount Field</h3><p>Select field from where amount value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:499
|
||||
msgid "<h3>Quantity Field</h3><p>Select field from where quantity value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:503
|
||||
msgid "<h3>Customer Email Field</h3><p>Select field from where customer email value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:507
|
||||
msgid "<h3>Success Return URL Field </h3><p>Select page and redirect customer after succesfully payment done.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:511
|
||||
msgid "<h3>Cancel Return URL Field </h3><p>Select page and redirect customer after cancel payment process or payment not done.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:515
|
||||
msgid "<h3>Billing First Name Field</h3><p>Select field from where billing first name value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:519
|
||||
msgid "<h3>Billing Last Name Field</h3><p>Select field from where billing last name value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:523
|
||||
msgid "<h3>Billing Address Field</h3><p>Select field from where billing address value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:527
|
||||
msgid "<h3>Billing City Field</h3><p>Select field from where billing city value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:531
|
||||
msgid "<h3>Billing State Field</h3><p>Select field from where billing state value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:535
|
||||
msgid "<h3>Billing ZipCode Field</h3><p>Select field from where billing zipcode value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf72ch.template.php:539
|
||||
msgid "<h3>Billing Country Field</h3><p>Select field from where billing country value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf72ch.php:108
|
||||
msgid "<strong><a href=\"https://wordpress.org/plugins/contact-form-7/\" target=\"_blank\">Contact Form 7</a></strong> is required to use <strong>%s</strong>."
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf72ch.php:135
|
||||
#: inc/class.cf72ch.php:136
|
||||
#: inc/class.cf72ch.php:141
|
||||
msgid "2Checkout Payment Details"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf72ch.php:137
|
||||
msgid "Transaction Detail"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf72ch.php:182
|
||||
msgid "2Checkout"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf72ch.php:189
|
||||
msgid "2Checkout Country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf72ch.php:292
|
||||
msgid "Generate a form-tag for to display 2Checkout payment form"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf72ch.php:301
|
||||
#: inc/class.cf72ch.php:353
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf72ch.php:317
|
||||
#: inc/class.cf72ch.php:368
|
||||
msgid "Insert Tag"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf72ch.php:324
|
||||
#: inc/class.cf72ch.php:375
|
||||
msgid "To use the value input through this field in a mail field, you need to insert the corresponding mail-tag (%s) into the field on the Mail tab."
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf72ch.php:344
|
||||
msgid "Generate a form-tag for to display 2Checkout Country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:232
|
||||
msgid "2checkout creadit card info not there, please contact admin"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:241
|
||||
msgid "2checkout API credentials are missing"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:249
|
||||
msgid "Account not configured properly, please contact admin"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:599
|
||||
#: inc/lib/class.cf72ch.lib.php:612
|
||||
msgid "Due to Some technical issue, please try again!"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:653
|
||||
msgid "Response :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:665
|
||||
msgid "Payment Successfully Done."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:667
|
||||
msgid "Payment is in process from 2 checkout side."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:672
|
||||
msgid "Transaction Amount :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:676
|
||||
msgid "Invoice No :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:680
|
||||
msgid "Payment Status :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:720
|
||||
#: inc/lib/class.cf72ch.lib.php:1319
|
||||
#: inc/lib/class.cf72ch.lib.php:1353
|
||||
msgid "Card Number"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:723
|
||||
msgid "Expiry Date And Year"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:726
|
||||
#: inc/lib/class.cf72ch.lib.php:1328
|
||||
#: inc/lib/class.cf72ch.lib.php:1384
|
||||
msgid "CVV"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:729
|
||||
msgid "Correct CVV Number"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:732
|
||||
#: inc/lib/class.cf72ch.lib.php:1331
|
||||
#: inc/lib/class.cf72ch.lib.php:1344
|
||||
msgid "Card Holder Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:735
|
||||
msgid "Correct Expiry Month And Year"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:793
|
||||
msgid "One or more fields have an error. Please check and try again."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:801
|
||||
msgid "Please enter amount or valid amount."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:803
|
||||
msgid "The field is required."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:1316
|
||||
msgid "Card Verification Number (CVV)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:1322
|
||||
msgid "MM"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:1325
|
||||
msgid "YY"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:1334
|
||||
msgid "Pay via 2Checkout. Accept Credit Cards, Debit Cards"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf72ch.lib.php:1363
|
||||
msgid "Expiration Date"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,232 @@
|
||||
# Copyright (C) 2019 ZealousWeb Technologies
|
||||
# This file is distributed under the same license as the Contact Form 7 - Authorize.NET Add-on plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Contact Form 7 - Authorize.NET Add-on 1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/contact-form-7-authorize-net-addon\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2019-08-26T13:43:18+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.2.0\n"
|
||||
"X-Domain: contact-form-7-authorize-net-addon\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Contact Form 7 - Authorize.NET Add-on"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "This plugin will integrate Authorize.NET payment gateway for making your payments through Contact Form 7."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "ZealousWeb Technologies"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://www.zealousweb.com"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7adn.admin.action.php:213
|
||||
msgid "From Data"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7adn.admin.action.php:214
|
||||
msgid "Do you need help for configuration?"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7adn.admin.action.php:390
|
||||
msgid "All Forms"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7adn.admin.action.php:438
|
||||
msgid "Please select Form to export."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:113
|
||||
msgid "Enable Authorize.Net Payment Form"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:123
|
||||
msgid "Enable Test API Mode"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:134
|
||||
msgid "Enable Debug Mode"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:144
|
||||
msgid "Sandbox Login ID (required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:155
|
||||
msgid "Sandbox Transaction Key (required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:166
|
||||
msgid "Live Login ID (required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:177
|
||||
msgid "Live Transaction Key (required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:188
|
||||
msgid "Amount Field Name (required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:199
|
||||
msgid "Quantity Field Name (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:209
|
||||
msgid "Customer Email Field Name (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:219
|
||||
msgid "Description Field Name (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:229
|
||||
msgid "Select Currency"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:248
|
||||
msgid "Success Return URL (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:253
|
||||
#: inc/admin/template/cf7adn.template.php:272
|
||||
msgid "Select page"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:267
|
||||
msgid "Cancel Return URL (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:295
|
||||
msgid "Customer Details"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:304
|
||||
msgid "First Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:314
|
||||
msgid "Last Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:324
|
||||
msgid "Company Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:334
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:344
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:354
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:364
|
||||
msgid "Zip Code"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:374
|
||||
msgid "Country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:416
|
||||
msgid "<h3>Sandbox mode</h3><p>Check the Authorize.Net testing guide <a href=\"https://developer.authorize.net/hello_world/testing_guide/\" target=\"_blank\">here</a>.This will display \"sandbox mode\" warning on checkout.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:429
|
||||
msgid "<h3>Get Your Sandbox Login ID</h3><p>Get it from <a href=\"https://sandbox.authorize.net\" target=\"_blank\"> Sandbox Authorize.net</a> then <strong> Account > Security Settings > API Credentials & Keys </strong> page in your Authorize.Net account.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:442
|
||||
msgid "<h3>Get Your Sandbox Transaction Key</h3><p>Get it from <a href=\"https://sandbox.authorize.net\" target=\"_blank\"> Sandbox Authorize.net</a> then <strong>Account > Security Settings > API Credentials & Keys </strong> page in your Authorize.Net account. For security reasons, you cannot view your Transaction Key, but you will be able to generate a new one. </p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:455
|
||||
msgid "<h3>Get Your Live Login ID</h3><p>Get it from <a href=\"https://account.authorize.net\" target=\"_blank\">Authorize.net</a> then <strong>Account > Security Settings > API Credentials & Keys </strong> page in your Authorize.Net account.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:468
|
||||
msgid "<h3>Get Your Live Transaction Key</h3><p>Get it from <a href=\"https://account.authorize.net\" target=\"_blank\">Authorize.net</a> then <strong> Account > Security Settings > API Credentials & Keys </strong> page in your Authorize.Net account. For security reasons, you cannot view your Transaction Key, but you will be able to generate a new one. </p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:481
|
||||
msgid "<h3>Add Amount Name</h3><p>Add here the Name of amount field</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7adn.template.php:494
|
||||
msgid "<h3>Select Currency</h3><p>Select the currency which is selected from your authorize.net merchant account.<br/><strong>Note:</strong>Authorize.net dont provide multiple currencies for single account</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7adn.admin.filter.php:55
|
||||
#: inc/class.cf7adn.php:95
|
||||
msgid "Authorize.Net"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7adn.admin.filter.php:114
|
||||
msgid "Form ID"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7adn.admin.filter.php:115
|
||||
msgid "Transaction Status"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7adn.admin.filter.php:116
|
||||
msgid "Total Amount"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7adn.admin.filter.php:117
|
||||
msgid "Submitted Date"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7adn.lib.php:564
|
||||
#: inc/lib/class.cf7adn.lib.php:569
|
||||
msgid "Something goes wrong! Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7adn.lib.php:608
|
||||
msgid "Transaction Amount :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7adn.lib.php:612
|
||||
msgid "Payment Status :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7adn.lib.php:616
|
||||
msgid "Transaction Id :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7adn.lib.php:625
|
||||
msgid "ERROR : Invalid response"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7adn.lib.php:628
|
||||
msgid "Response :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7adn.php:118
|
||||
#: inc/class.cf7adn.php:119
|
||||
#: inc/class.cf7adn.php:123
|
||||
msgid "Authorize.Net Add-on"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7adn.php:271
|
||||
msgid "Button Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7adn.php:272
|
||||
msgid "Make Payment"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,381 @@
|
||||
# Copyright (C) 2020 ZealousWeb Technologies
|
||||
# This file is distributed under the same license as the Accept Qpay payments Using Contact form 7 plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Accept Qpay payments Using Contact form 7 1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/accept-qpay-payments-using-contact-form-7\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-07-16T16:31:20+02:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: accept-qpay-payments-using-contact-form-7\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Accept Qpay payments Using Contact form 7"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "This plugin will integrate QPay payment gateway for making your payments through Contact Form 7."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "ZealousWeb Technologies"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://www.zealousweb.com"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:237
|
||||
msgid "From Data"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:238
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:641
|
||||
msgid "Do you need help for configuration?"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:577
|
||||
msgid "Select Forms"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:624
|
||||
msgid "Please select Form to export."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:666
|
||||
msgid "Import your CSV."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:668
|
||||
msgid "Check demo CSV "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:668
|
||||
msgid "here.."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:670
|
||||
msgid "Enter New Form Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:672
|
||||
msgid "Upload File"
|
||||
msgstr ""
|
||||
|
||||
#. translators: Accept Qpay payments Using Contact form 7
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:851
|
||||
msgid "<p>Import is done successfully.</p>"
|
||||
msgstr ""
|
||||
|
||||
#. translators: Accept Qpay payments Using Contact form 7
|
||||
#: inc/admin/class.cf7qpay.admin.action.php:864
|
||||
msgid "<p>File type is not correct. Please upload CSV.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.filter.php:54
|
||||
msgid "QPay"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.filter.php:104
|
||||
msgid "Licensing Page"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.filter.php:107
|
||||
#: inc/admin/template/cf7qpay.template.php:83
|
||||
msgid "Document Link"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.filter.php:126
|
||||
msgid "Order ID"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.filter.php:127
|
||||
msgid "Transaction ID"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.filter.php:128
|
||||
msgid "Transaction Status"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.filter.php:129
|
||||
msgid "Total Amount"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7qpay.admin.filter.php:130
|
||||
msgid "Submitted Date"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:49
|
||||
msgid "Sandbox"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:50
|
||||
msgid "Live"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:82
|
||||
msgid "To use QPay option, first you need to create and save form tags."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:92
|
||||
msgid "QPay Enable"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:102
|
||||
msgid "Payment Mode "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:119
|
||||
msgid "QPay Gateway ID "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:130
|
||||
msgid "QPay Secret Key "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:142
|
||||
msgid "Amount Field Name "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:148
|
||||
msgid "Select field name for amount"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:162
|
||||
msgid "Quantity Field Name (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:168
|
||||
msgid "Select field name for quantity"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:181
|
||||
msgid "Select Currency"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:200
|
||||
msgid "Order Unique Prefix (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:211
|
||||
msgid "Success Return URL (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:217
|
||||
msgid "Select page"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:233
|
||||
msgid "Customer Billing Details"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:242
|
||||
msgid "Customer Name "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:248
|
||||
msgid "Select field name for customer name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:261
|
||||
msgid "Customer Address "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:267
|
||||
msgid "Select field name for customer address"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:280
|
||||
msgid "Customer City "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:286
|
||||
msgid "Select field name for customer city"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:299
|
||||
msgid "Customer State "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:305
|
||||
msgid "Select field name for customer state"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:318
|
||||
msgid "Customer Country "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:324
|
||||
msgid "Select field name for customer country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:337
|
||||
msgid "Customer Phone "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:343
|
||||
msgid "Select field name for customer phone"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:356
|
||||
msgid "Customer Email "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:362
|
||||
msgid "Select field name for customer email"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:395
|
||||
msgid "<h3>QPay Gateway ID</h3><p>You can get your QPay Gateway ID from <a href=\"#\" target=\"_blank\">here</a>. </p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:398
|
||||
msgid "<h3>QPay Secret Key</h3><p>You can get your QPay Secret Key from <a href=\"#\" target=\"_blank\">here</a>. </p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:401
|
||||
msgid "<h3>Amount Field </h3><p>Select field from where amount value needs to be retrieved. </p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:405
|
||||
msgid "<h3>Quantity Field </h3><p>Select field from where quantity value needs to be retrieved. </p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:409
|
||||
msgid "<h3>Select Currency</h3><p>Select the currency.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:412
|
||||
msgid "<h3>Order Prefix</h3><p>Please enter unique prefix name which display in invoice order ( Special Characters are not allowed ). </p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:415
|
||||
msgid "<h3>Success Return URL</h3><p>Select page and redirect customer after successfully payment done. </p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:418
|
||||
msgid "<h3>Customer Name Field </h3><p>Select field from where customer billing name value needs to be retrieved. </p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:422
|
||||
msgid "<h3>Customer Address Field </h3><p>Select field from where customer billing address value needs to be retrieved. </p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:426
|
||||
msgid "<h3>Customer City Field </h3><p>Select field from where customer billing city value needs to be retrieved. </p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:430
|
||||
msgid "<h3>Customer State Field </h3><p>Select field from where customer billing state value needs to be retrieved. </p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:434
|
||||
msgid "<h3>Customer Country Field </h3><p>Select field from where customer billing country value needs to be retrieved. </p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:438
|
||||
msgid "<h3>Customer Phone No. Field </h3><p>Select field from where customer billing phone no. value needs to be retrieved. </p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7qpay.template.php:442
|
||||
msgid "<h3>Customer Email Field </h3><p>Select field from where customer billing email value needs to be retrieved. </p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#. translators: Contact Form 7 - Sagepay Add-on
|
||||
#: inc/class.cf7qpay.php:117
|
||||
msgid "<strong><a href=\"https://wordpress.org/plugins/contact-form-7/\" target=\"_blank\">Contact Form 7</a></strong> is required to use <strong>%s</strong>."
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7qpay.php:142
|
||||
#: inc/class.cf7qpay.php:143
|
||||
#: inc/class.cf7qpay.php:153
|
||||
msgid "QPay Payment Details"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7qpay.php:144
|
||||
msgid "All QPay Payment Details"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7qpay.php:145
|
||||
msgid "Edit QPay Payment Detail"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7qpay.php:146
|
||||
msgid "View QPay Payment Detail"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7qpay.php:147
|
||||
msgid "Search QPay Payment Detail"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7qpay.php:148
|
||||
msgid "No QPay Payment Detail Found"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7qpay.php:149
|
||||
msgid "No QPay Payment Details Found in Trash"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7qpay.php:187
|
||||
msgid "QPay Country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7qpay.php:260
|
||||
msgid "Generate a form-tag to display Country field"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:385
|
||||
#: inc/lib/class.cf7qpay.lib.php:395
|
||||
msgid "QPay Response Details:"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:503
|
||||
msgid "Payment Page not Configured Properly. Please Conatct Admin. "
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:547
|
||||
#: inc/lib/class.cf7qpay.lib.php:556
|
||||
#: inc/lib/class.cf7qpay.lib.php:789
|
||||
msgid "Please Enter Amount value or Value in Numeric."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:701
|
||||
msgid "Transaction Amount :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:705
|
||||
msgid "Payment Status :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:709
|
||||
msgid "Transaction Id :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:713
|
||||
msgid "Invoice ID :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:722
|
||||
msgid "Response :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:726
|
||||
msgid "Response Message :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:791
|
||||
msgid "The field is required."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:811
|
||||
msgid "One or more fields have an error. Please check and try again."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7qpay.lib.php:860
|
||||
msgid "Country"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,495 @@
|
||||
# Copyright (C) 2020 ZealousWeb
|
||||
# This file is distributed under the same license as the Accept SagePay Payments Using Contact Form 7 plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Accept SagePay Payments Using Contact Form 7 1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/accept-sagepay-payments-using-contact-form-7\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-11-27T08:04:48+01:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: accept-sagepay-payments-using-contact-form-7\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Accept SagePay Payments Using Contact Form 7"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "This plugin will integrate Sagepay payment gateway for making your payments through Contact Form 7."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "ZealousWeb"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://www.zealousweb.com"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cfspzw.admin.action.php:81
|
||||
msgid "From Data"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cfspzw.admin.action.php:82
|
||||
#: inc/admin/class.cfspzw.admin.action.php:344
|
||||
msgid "Do you need help for configuration?"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cfspzw.admin.action.php:347
|
||||
msgid "Refer the document."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cfspzw.admin.action.php:349
|
||||
msgid "Support Link"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cfspzw.admin.filter.php:55
|
||||
msgid "SagePay"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cfspzw.admin.filter.php:104
|
||||
#: inc/admin/template/cfspzw.template.php:140
|
||||
msgid "Document Link"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cfspzw.admin.filter.php:139
|
||||
msgid "User Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cfspzw.admin.filter.php:140
|
||||
msgid "Invoice ID"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cfspzw.admin.filter.php:141
|
||||
msgid "Transaction Status"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cfspzw.admin.filter.php:142
|
||||
msgid "Total Amount"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cfspzw.admin.filter.php:143
|
||||
msgid "Submitted Date"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:68
|
||||
msgid "Sandbox"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:69
|
||||
msgid "Live"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:73
|
||||
msgid "Payment"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:74
|
||||
msgid "Deferred"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:75
|
||||
msgid "Authenticate"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:79
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:80
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:139
|
||||
msgid "To use SagePay option, first you need to create and save form tags."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:149
|
||||
msgid "Sagepay Enable"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:159
|
||||
msgid "Enable Debug Mode"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:169
|
||||
msgid "Payment Mode "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:186
|
||||
msgid "Sandbox Vendor Name "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:197
|
||||
msgid "Sandbox Encryption Password "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:209
|
||||
msgid "Live Vendor Name "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:220
|
||||
msgid "Live Encryption Password "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:232
|
||||
msgid "Amount Field Name "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:238
|
||||
msgid "Select field name for amount"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:251
|
||||
msgid "Customer Email "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:257
|
||||
msgid "Select field name for customer email"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:270
|
||||
msgid "Quantity Field Name (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:276
|
||||
msgid "Select field name for quantity"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:290
|
||||
msgid "Transaction type"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:308
|
||||
msgid "Apply 3D Secure"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:326
|
||||
msgid "Select Currency"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:345
|
||||
msgid "VendorTXCode Prefix (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:356
|
||||
msgid "Success Return URL (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:362
|
||||
#: inc/admin/template/cfspzw.template.php:382
|
||||
msgid "Select page"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:376
|
||||
msgid "Cancel Return URL (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:400
|
||||
msgid "Customer Billing Details"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:409
|
||||
msgid "Billing First Name "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:415
|
||||
msgid "Select field name for billing first name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:428
|
||||
msgid "Billing Last Name "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:434
|
||||
msgid "Select field name for billing last name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:447
|
||||
msgid "Billing Address "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:453
|
||||
msgid "Select field name for billing address"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:466
|
||||
msgid "Billing City "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:472
|
||||
msgid "Select field name for billing city"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:485
|
||||
msgid "Billing State "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:491
|
||||
msgid "Select field name for billing state"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:504
|
||||
msgid "Select Billing Country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:510
|
||||
msgid "Select field name for billing country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:523
|
||||
msgid "Billing Zipcode "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:529
|
||||
msgid "Select field name for billing zipcode"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:546
|
||||
msgid "Customer Shipping Details"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:555
|
||||
msgid "Shipping First Name "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:561
|
||||
msgid "Select field name for shipping first name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:574
|
||||
msgid "Shipping Last Name "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:580
|
||||
msgid "Select field name for shipping last name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:593
|
||||
msgid "Shipping Address "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:599
|
||||
msgid "Select field name for shipping address"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:612
|
||||
msgid "Shipping City "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:618
|
||||
msgid "Select field name for shipping city"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:631
|
||||
msgid "Shipping State "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:637
|
||||
msgid "Select field name for shipping state"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:650
|
||||
msgid "Select Shipping Country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:656
|
||||
msgid "Select field name for shipping country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:669
|
||||
msgid "Shipping Zipcode "
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:675
|
||||
msgid "Select field name for shipping zipcode"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:709
|
||||
msgid "<h3>Vendor Name </h3><p>Get Vendor Name from <a href=\"#\" target=\"_blank\">here</a></p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:713
|
||||
msgid "<h3>Encryption Password</h3><p>Get Encryption Password from <a href=\"#\" target=\"_blank\">here</a></p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:717
|
||||
msgid "<h3>Select Currency</h3><p>Select the currency.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:721
|
||||
msgid "<h3>Amount Field</h3><p>Select field from where amount value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:725
|
||||
msgid "<h3>Quantity Field</h3><p>Select field from where quantity value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:729
|
||||
msgid "<h3>Customer Email Field</h3><p>Select field from where customer email value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:733
|
||||
msgid "<h3>VendorTXCode Prefix Field</h3><p>Please enter unique prefix name which display in invoice order.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:737
|
||||
msgid "<h3>Success Return URL Field </h3><p>Select page and redirect customer after succesfully payment done.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:741
|
||||
msgid "<h3>Cancel Return URL Field </h3><p>Select page and redirect customer after cancel payment process or payment not done.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:745
|
||||
msgid "<h3>Billing First Name Field</h3><p>Select field from where billing first name value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:749
|
||||
msgid "<h3>Billing Last Name Field</h3><p>Select field from where billing last name value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:753
|
||||
msgid "<h3>Billing Address Field</h3><p>Select field from where billing address value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:757
|
||||
msgid "<h3>Billing City Field</h3><p>Select field from where billing city value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:761
|
||||
msgid "<h3>Billing State Field</h3><p>Select field from where billing state value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:765
|
||||
msgid "<h3>Billing Country Field</h3><p>Select field from where billing country value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:769
|
||||
msgid "<h3>Billing ZipCode Field</h3><p>Select field from where billing zipcode value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:773
|
||||
msgid "<h3>Shipping First Name Field</h3><p>Select field from where shipping first name value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:777
|
||||
msgid "<h3>Shipping Last Name Field</h3><p>Select field from where shipping last name value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:781
|
||||
msgid "<h3>Shipping Address Field</h3><p>Select field from where shipping address value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:785
|
||||
msgid "<h3>Shipping City Field</h3><p>Select field from where shipping city value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:789
|
||||
msgid "<h3>Shipping State Field</h3><p>Select field from where shipping state value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:793
|
||||
msgid "<h3>Shipping Country Field</h3><p>Select field from where shipping country value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cfspzw.template.php:797
|
||||
msgid "<h3>Shipping ZipCode Field</h3><p>Select field from where shipping zipcode value needs to be retrieved.</p><p><b>Note: </b> Save the FORM details to view the list of fields.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cfspzw.php:112
|
||||
#: inc/class.cfspzw.php:113
|
||||
#: inc/class.cfspzw.php:118
|
||||
msgid "Sagepay Payment Details"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cfspzw.php:114
|
||||
msgid "Transaction Detail"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cfspzw.php:158
|
||||
msgid "<strong><a href=\"https://wordpress.org/plugins/contact-form-7/\" target=\"_blank\">Contact Form 7</a></strong> is required to use <strong>%s</strong>."
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cfspzw.php:177
|
||||
msgid "Sagepay Country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cfspzw.php:280
|
||||
msgid "Generate a form-tag for to display Sagepay Country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cfspzw.php:289
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cfspzw.php:304
|
||||
msgid "Insert Tag"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cfspzw.php:311
|
||||
msgid "To use the value input through this field in a mail field, you need to insert the corresponding mail-tag (%s) into the field on the Mail tab."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:213
|
||||
msgid "SagePay Payment Notification"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:427
|
||||
#: inc/lib/class.cfspzw.lib.php:437
|
||||
msgid "Sagepay Response Details:"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:568
|
||||
msgid "Payment Page not Configured Properly. Please Conatct Admin. "
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:631
|
||||
#: inc/lib/class.cfspzw.lib.php:640
|
||||
#: inc/lib/class.cfspzw.lib.php:967
|
||||
msgid "Please Enter Amount value or Value in Numeric."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:732
|
||||
msgid "Order #%s"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:846
|
||||
msgid "Something goes wrong! Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:866
|
||||
msgid "Transaction Amount :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:870
|
||||
msgid "Payment Status :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:874
|
||||
msgid "Transaction Id :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:878
|
||||
msgid "Invoice ID :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:886
|
||||
msgid "Response :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:934
|
||||
msgid "Please wait you are redirecting to sagepay..!"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:969
|
||||
msgid "The field is required."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cfspzw.lib.php:993
|
||||
msgid "One or more fields have an error. Please check and try again."
|
||||
msgstr ""
|
||||
@@ -0,0 +1,227 @@
|
||||
# Copyright (C) 2019 ZealousWeb Technologies
|
||||
# This file is distributed under the same license as the Contact Form 7 - Stripe Add-on plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Contact Form 7 - Stripe Add-on 1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/contact-form-7-stripe-addon\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2019-08-26T14:04:14+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.2.0\n"
|
||||
"X-Domain: contact-form-7-stripe-addon\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Contact Form 7 - Stripe Add-on"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "This plugin will integrate Stripe payment gateway for making your payments through Contact Form 7."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "ZealousWeb Technologies"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://www.zealousweb.com"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7sa.admin.action.php:208
|
||||
msgid "From Data"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7sa.admin.action.php:209
|
||||
msgid "Do you need help for configuration?"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7sa.admin.action.php:378
|
||||
msgid "All Forms"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7sa.admin.action.php:426
|
||||
msgid "Please select Form to export."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7sa.admin.filter.php:54
|
||||
#: inc/class.cf7sa.php:68
|
||||
msgid "Stripe"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7sa.admin.filter.php:113
|
||||
msgid "Form ID"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7sa.admin.filter.php:114
|
||||
msgid "Transaction Status"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7sa.admin.filter.php:115
|
||||
msgid "Total Amount"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/class.cf7sa.admin.filter.php:116
|
||||
msgid "Submitted Date"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:102
|
||||
msgid "Enable Stripe Payment Form"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:112
|
||||
msgid "Enable Debug Mode"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:122
|
||||
msgid "Enable Test Mode"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:132
|
||||
msgid "Test Publishable key (Required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:143
|
||||
msgid "Test Secret key (Required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:154
|
||||
msgid "Live Publishable key (Required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:165
|
||||
msgid "Live Secret key (Required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:176
|
||||
msgid "Customer Email Field Name (Required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:186
|
||||
msgid "Amount Field Name (Required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:197
|
||||
msgid "Quantity Field Name (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:207
|
||||
msgid "Description Field Name (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:217
|
||||
msgid "Select Currency"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:236
|
||||
msgid "Success Return URL (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:241
|
||||
#: inc/admin/template/cf7sa.template.php:260
|
||||
msgid "Select page"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:255
|
||||
msgid "Cancel Return URL (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:283
|
||||
msgid "Customer Details"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:292
|
||||
msgid "First Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:302
|
||||
msgid "Last Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:312
|
||||
msgid "Company Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:322
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:332
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:342
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:352
|
||||
msgid "Zip Code"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:362
|
||||
msgid "Country"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:404
|
||||
#: inc/admin/template/cf7sa.template.php:417
|
||||
msgid "<h3>Get Your Publishable Key</h3><p>Get it from <a href=\"https://dashboard.stripe.com/\" target=\"_blank\"> Stripe</a> then <strong> Developers > API Keys </strong> page in your Stripe account.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:430
|
||||
msgid "<h3>Get Your Secret Key</h3><p>Get it from <a href=\"https://dashboard.stripe.com/\" target=\"_blank\"> Stripe</a> then <strong> Developers > API Keys </strong> page in your Stripe account.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:445
|
||||
msgid "<h3>Add Amount Name</h3><p>Add here the Name of amount field</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7sa.template.php:458
|
||||
msgid "<h3>Select Currency</h3><p>Select the currency which is selected from your stripe.net merchant account.<br/><strong>Note:</strong>Authorize.net dont provide multiple currencies for single account</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7sa.php:116
|
||||
#: inc/class.cf7sa.php:117
|
||||
#: inc/class.cf7sa.php:121
|
||||
msgid "Stripe Add-on"
|
||||
msgstr ""
|
||||
|
||||
#. translators: Contact Form 7 - Stripe Add-on
|
||||
#: inc/class.cf7sa.php:155
|
||||
msgid "<p><strong><a href=\"https://wordpress.org/plugins/contact-form-7/\" target=\"_blank\">Contact Form 7</a></strong> is required to use <strong>%s</strong>.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7sa.php:213
|
||||
msgid "Button Name"
|
||||
msgstr ""
|
||||
|
||||
#: inc/class.cf7sa.php:214
|
||||
msgid "Make Payment"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7sa.lib.php:587
|
||||
#: inc/lib/class.cf7sa.lib.php:598
|
||||
#: inc/lib/class.cf7sa.lib.php:605
|
||||
msgid "Something goes wrong! Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7sa.lib.php:636
|
||||
msgid "Transaction Amount :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7sa.lib.php:640
|
||||
msgid "Payment Status :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7sa.lib.php:644
|
||||
msgid "Transaction Id :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7sa.lib.php:650
|
||||
msgid "Card Type :"
|
||||
msgstr ""
|
||||
|
||||
#: inc/lib/class.cf7sa.lib.php:881
|
||||
msgid "Stripe Payments requires Javascript to be supported by the browser in order to operate."
|
||||
msgstr ""
|
||||
@@ -0,0 +1,108 @@
|
||||
# Copyright (C) 2019 ZealousWeb Technologies
|
||||
# This file is distributed under the same license as the Contact Form 7 - Worldpay Add-on plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Contact Form 7 - Worldpay Add-on 1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/accept-worldpay-payments-using-contact-form-7\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2019-08-28T12:57:38+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.2.0\n"
|
||||
"X-Domain: accept-worldpay-payments-using-contact-form-7\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Contact Form 7 - Worldpay Add-on"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "This plugin will integrate Worldpay payment gateway for making your payments through Contact Form 7."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "ZealousWeb Technologies"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://www.zealousweb.com"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:101
|
||||
msgid "Enable Worldpay"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:111
|
||||
msgid "Enable WorldPay Sandbox"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:122
|
||||
msgid "Enable Debug Mode"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:132
|
||||
msgid "WorldPay Installation ID (required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:143
|
||||
msgid "Amount Field Name (required)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:154
|
||||
msgid "Quantity Field Name (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:164
|
||||
msgid "Customer Email Field Name (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:174
|
||||
msgid "Description Field Name (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:184
|
||||
msgid "Select Currency"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:203
|
||||
msgid "Success Return URL (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:208
|
||||
#: inc/admin/template/cf7wpa.template.php:227
|
||||
msgid "Select page"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:222
|
||||
msgid "Cancel Return URL (Optional)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:263
|
||||
msgid "<h3>TEST MODE</h3><p>Check the Worldpay testing guide <a href=\"http://support.worldpay.com/support/kb/bg/testandgolive/tgl5103.html\" target=\"_blank\">here</a>.This will display \"This is not a live transaction.\" warning on payment page.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:276
|
||||
msgid "<h3>Get Your Installation ID</h3><ul><li><b>Step 1:</b> Login from <a href=\"https://secure.worldpay.com/sso/public/auth/login.html?serviceIdentifier=merchantadmin\" target=\"_blank\">here</a> using your username and password </li><li><b>Step 2:</b> To know the Installation ID, find the screenshot <a href=\"https://prnt.sc/nqs21l\" target=\"_blank\">Here</a></li><li><b>Step 3:</b> Use the Installation ID in Plugin setting and try to make payment.</li></ul>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:289
|
||||
msgid "<h3>Get Your Sandbox Transaction Key</h3><p>Get it from <a href=\"https://sandbox.authorize.net\" target=\"_blank\"> Sandbox Authorize.net</a> then <strong>Account > Security Settings > API Credentials & Keys </strong> page in your Worldpay account. For security reasons, you cannot view your Transaction Key, but you will be able to generate a new one. </p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:302
|
||||
msgid "<h3>Get Your Live Login ID</h3><p>Get it from <a href=\"https://account.authorize.net\" target=\"_blank\">Authorize.net</a> then <strong>Account > Security Settings > API Credentials & Keys </strong> page in your Worldpay account.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:315
|
||||
msgid "<h3>Get Your Live Transaction Key</h3><p>Get it from <a href=\"https://account.authorize.net\" target=\"_blank\">Authorize.net</a> then <strong> Account > Security Settings > API Credentials & Keys </strong> page in your Worldpay account. For security reasons, you cannot view your Transaction Key, but you will be able to generate a new one. </p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:328
|
||||
msgid "<h3>Add Amount Name</h3><p>Add here the Name of amount field</p>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin/template/cf7wpa.template.php:341
|
||||
msgid "<h3>Select Currency</h3><p>Select the currency which is selected from your Worldpay merchant account.<br/></p>"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,56 @@
|
||||
# Copyright (C) 2020 Eduardo Marcolino
|
||||
# This file is distributed under the same license as the ACF: Fields in Custom Table plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ACF: Fields in Custom Table 0.1\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/acf-fields-in-custom-table\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-11-25T14:25:51+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: acffict\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "ACF: Fields in Custom Table"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Stores ACF custom fields in a custom table instead of WordPress' core meta tables."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Eduardo Marcolino"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://eduardomarcolino.com"
|
||||
msgstr ""
|
||||
|
||||
#: acf-fields-in-custom-table.php:74
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: acf-fields-in-custom-table.php:75
|
||||
msgid "Enable Store fields in custom table for this field group?"
|
||||
msgstr ""
|
||||
|
||||
#: acf-fields-in-custom-table.php:85
|
||||
msgid "Custom table name"
|
||||
msgstr ""
|
||||
|
||||
#: acf-fields-in-custom-table.php:86
|
||||
msgid "Define the custom table name. Make sure it doesn't conflict with others tables names."
|
||||
msgstr ""
|
||||
|
||||
#: acf-fields-in-custom-table.php:156
|
||||
#: acf-fields-in-custom-table.php:203
|
||||
msgid "ACF: Fields in Custom Table error:"
|
||||
msgstr ""
|
||||
|
||||
#: acf-fields-in-custom-table.php:273
|
||||
msgid "Unable to alter table"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,254 @@
|
||||
# Copyright 2019
|
||||
# This file is distributed under the GNU General Public License v3 or later.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ACh Updates Manager v1.0.0\n"
|
||||
"POT-Creation-Date: 2019-05-29 10:50+0100\n"
|
||||
"PO-Revision-Date: 2019-05-29 10:50+0100\n"
|
||||
"Last-Translator: Ali Chopani <Chopaniali@gmail.com>\n"
|
||||
"Language-Team: A. Ch <Chopaniali@gmail.com>\n"
|
||||
"Report-Msgid-Bugs-To: Ali Chopani <Chopaniali@gmail.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Textdomain-Support: yes"
|
||||
"X-Generator: Poedit 2.2\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: __;_e;esc_html_e;esc_html__;_x;\n"
|
||||
"X-Poedit-Basepath: ../\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
"X-Poedit-Language: English\n"
|
||||
"X-Poedit-Country: UNITED STATES\n"
|
||||
"X-Poedit-Bookmarks: \n"
|
||||
|
||||
#: ACh-Updates-Manager.php:5
|
||||
msgid "The ACh Updates and Notices Manager is an easy way to manage all your WordPress updates and notifications with one click! e.g. Disable all updates or notifications, Disable automatic updates, Hide errors and warnings messages, Update themes and plugins from zip file and etc."
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:65
|
||||
msgid "Thanks for installing %1$s v%2$s plugin. Click <a href="%3$s">here</a> to configure plugin settings."
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:75
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:86
|
||||
#: includes/acupnm-settings.php:34
|
||||
#: includes/acupnm-settings.php:144
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:87
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:103
|
||||
#: includes/acupnm-settings.php:27
|
||||
msgid "ACh Updates and Notices Manager"
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:103
|
||||
msgid "Updates Manager"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:28
|
||||
msgid "The ACh Update Manager plugin for WordPress. Manage all your WordPress updates and notifications with one click!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:33
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:44
|
||||
msgid "✔ Disable all WP updates and notifs"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:53
|
||||
msgid "Disable all WordPress core, themes, plugins and translations updates and notifications."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:57
|
||||
msgid "✔ Hide all notices from WP dashboard"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:66
|
||||
msgid "Disable all notices from the WordPress dashboard. e.g. errors, updates, warning, rate us, license, dismissible and etc."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:70
|
||||
msgid "✔ Disable plugins updates and notifs"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:79
|
||||
msgid "Disable the WordPress plugins updates and notifications."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:83
|
||||
msgid "✔ Disable themes updates and notifs"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:92
|
||||
msgid "Disable the WordPress themes updates and notifications."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:96
|
||||
msgid "✔ Disable WP core update and notifs"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:105
|
||||
msgid "Disable the WordPress core update and notifications."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:109
|
||||
msgid "✔ Hide WordPress core update notice"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:118
|
||||
msgid "Hide WordPress core update notice from WP dashboard."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:122
|
||||
msgid "✔ Update theme and plugin from zip"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:131
|
||||
msgid "This feature allows you to update plugins and themes using a zip file. While upgrading, a backup copy of the old theme or plugin is first created. This allows you to install the old version in case of problems with the new version."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:147
|
||||
msgid "If you need assistance, see our help resources."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:148
|
||||
msgid "Please make a search to find help with your problem, or head over to our support forum to ask a question."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:152
|
||||
msgid "Visit my site"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:155
|
||||
msgid "Send email"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:158
|
||||
msgid "Support forum"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:167
|
||||
msgid "About us"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:170
|
||||
msgid "The ACh Updates and Notices Manager is an easy way to manage all your WordPress updates and notifications with one click!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:171
|
||||
msgid "ACh Updates and Notices Manager was developed by <a class="achupnm-link-text" href="https://ach.li" target="_blank">A. Ch</a> and is <a class="achupnm-link-text" href="https://wordpress.org" target="_blank">available for free</a> on WordPress."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:172
|
||||
msgid "We work hard to give you an exceptional premium products and 5 star support. To show your appreciation you can buy us a coffee or simply by sharing or follow us on social media."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:176
|
||||
msgid "Buy us a coffee"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:177
|
||||
msgid "Like us"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:178
|
||||
msgid "Tweet us"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:179
|
||||
msgid "Rate us"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:191
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:41
|
||||
msgid "Upgrading the plugin…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:42
|
||||
msgid "Backing up the old version of the plugin…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:88
|
||||
msgid "A backup zip file of the old plugin version can be downloaded <a href="%1$s">here</a>."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:98
|
||||
msgid "Moving the old version of the plugin to a new directory…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:114
|
||||
msgid "Unable to find a new directory name to move the old version of the plugin to. No backup will be created."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:120
|
||||
msgid "Moved the old version of the plugin to a new plugin directory named %1$s. This directory should be backed up and removed from the site."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:122
|
||||
msgid "Unable to move the old version of the plugin to a new directory. No backup will be created."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:142
|
||||
msgid "A plugin backup can not be created since a destination path for the backup file could not be found."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:167
|
||||
msgid "A plugin backup can not be created as creation of the zip file failed with the following error: %1$s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:174
|
||||
msgid "Plugin Backup - %1$s - %2$s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:41
|
||||
msgid "Upgrading the theme…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:42
|
||||
msgid "Backing up the old version of the theme…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:60
|
||||
msgid "A backup zip file of the old theme version can be downloaded <a href="%1$s">here</a>."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:70
|
||||
msgid "Moving the old version of the theme to a new directory…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:91
|
||||
msgid "Unable to find a new directory name to move the old version of the theme to. No backup will be created."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:97
|
||||
msgid "Moved the old version of the theme to a new theme directory named %1$s. This directory should be backed up and removed from the site."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:99
|
||||
msgid "Unable to move the old version of the theme to a new directory. No backup will be created."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:119
|
||||
msgid "A theme backup can not be created since a destination path for the backup file could not be found."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:148
|
||||
msgid "A theme backup can not be created as creation of the zip file failed with the following error: %1$s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:155
|
||||
msgid "Theme Backup - %1$s - %2$s"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,42 @@
|
||||
# Copyright (C) 2020 Acowebs
|
||||
# This file is distributed under the same license as the Product Labels For Woocommerce plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Product Labels For Woocommerce 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocomerce-sales-badge\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-07-09T05:22:44+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.3.0\n"
|
||||
"X-Domain: aco-product-labels-for-woocommerce\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
#. Description of the plugin
|
||||
msgid "Product Labels For Woocommerce"
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Acowebs"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "http://acowebs.com"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-acoplw-backend.php:130
|
||||
#: includes/class-acoplw-backend.php:144
|
||||
msgid "Badges"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-acoplw-backend.php:132
|
||||
#: includes/class-acoplw-backend.php:145
|
||||
msgid "Product Lists"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-acoplw-backend.php:134
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,162 @@
|
||||
# Copyright (C) 2020 Acowebs
|
||||
# This file is distributed under the same license as the Aco Wishlist for WooCommerce plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Aco Wishlist for WooCommerce 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woo-wish-list-dev\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-11-07T11:54:36+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.3.0\n"
|
||||
"X-Domain: aco-wishlist-for-woocommerce\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Aco Wishlist for WooCommerce"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "WooCommerce wishlist manager helps to manage wishlist in WooCommerce"
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Acowebs"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "http://acowebs.com"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-backend.php:122
|
||||
msgid "Wishlist For WooCommerce"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-backend.php:122
|
||||
#: includes/class-awwlm-front-end.php:1294
|
||||
#: includes/class-awwlm-wishlist.php:80
|
||||
#: includes/class-awwlm-wishlist.php:81
|
||||
msgid "Wishlist"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-backend.php:141
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-front-end.php:130
|
||||
#: templates/wishlist.php:21
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-front-end.php:133
|
||||
msgid "Product added to cart successfully"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-front-end.php:426
|
||||
msgid "You must be login to use Wishlist"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-front-end.php:506
|
||||
msgid "Product successfully removed"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-front-end.php:992
|
||||
msgid "My wishlist"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-front-end.php:993
|
||||
#: includes/class-awwlm-front-end.php:1084
|
||||
msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-front-end.php:1169
|
||||
#: templates/wishlist-empty.php:16
|
||||
msgid "Your Wishlist is currently empty"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-wishlist.php:83
|
||||
msgid "Add New Wishlist"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-wishlist.php:84
|
||||
msgid "Add New %s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-wishlist.php:85
|
||||
msgid "Edit %s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-wishlist.php:86
|
||||
msgid "New %s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-wishlist.php:87
|
||||
msgid "Wishlists"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-wishlist.php:88
|
||||
msgid "View %s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-wishlist.php:89
|
||||
msgid "Search %s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-wishlist.php:90
|
||||
msgid "No %s Found"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-awwlm-wishlist.php:91
|
||||
msgid "No %s Found In Trash"
|
||||
msgstr ""
|
||||
|
||||
#: templates/wishlist-empty.php:17
|
||||
msgid "Return to shop"
|
||||
msgstr ""
|
||||
|
||||
#: templates/wishlist-view.php:26
|
||||
msgid "Add all to cart"
|
||||
msgstr ""
|
||||
|
||||
#: templates/wishlist-view.php:45
|
||||
#: templates/wishlist-view.php:81
|
||||
msgid "Product name"
|
||||
msgstr ""
|
||||
|
||||
#: templates/wishlist-view.php:47
|
||||
#: templates/wishlist-view.php:92
|
||||
msgid "Unit price"
|
||||
msgstr ""
|
||||
|
||||
#: templates/wishlist-view.php:50
|
||||
#: templates/wishlist-view.php:97
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
#: templates/wishlist-view.php:53
|
||||
#: templates/wishlist-view.php:102
|
||||
msgid "Added on"
|
||||
msgstr ""
|
||||
|
||||
#: templates/wishlist-view.php:56
|
||||
#: templates/wishlist-view.php:107
|
||||
msgid "Stock status"
|
||||
msgstr ""
|
||||
|
||||
#: templates/wishlist-view.php:109
|
||||
msgid "Out of stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/wishlist-view.php:109
|
||||
msgid "In Stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/wishlist-view.php:121
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: templates/wishlist-view.php:124
|
||||
msgid "Move to another list"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,35 @@
|
||||
# Copyright (C) 2020 WP White Security
|
||||
# This file is distributed under the same license as the WP Activity Log Extension for Yoast SEO plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WP Activity Log Extension for Yoast SEO 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/activity-log-yoast-seo\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-10-01T10:55:48+01:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: wsal-yoast\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "WP Activity Log Extension for Yoast SEO"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://wpactivitylog.com/extensions/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "A WP Activity Log plugin extension"
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "WP White Security"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "http://www.wpwhitesecurity.com/"
|
||||
msgstr ""
|
||||
29
spec/fixtures/dynamic_finders/plugin_version/addonify-quick-view/composer_file/package.json
vendored
Normal file
29
spec/fixtures/dynamic_finders/plugin_version/addonify-quick-view/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "addonify-quick-view",
|
||||
"version": "1.0.0",
|
||||
"description": "Addonify WooCoomerce Quick View plugin adds functionality to have a WooCoomerce product quick view preview on a modal window.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/addonify/addonify-quick-view.git"
|
||||
},
|
||||
"keywords": [
|
||||
"woocommerce",
|
||||
"quick",
|
||||
"view",
|
||||
"addonify"
|
||||
],
|
||||
"author": "Addonify",
|
||||
"license": "ISC",
|
||||
"bugs": {
|
||||
"url": "https://github.com/addonify/addonify-quick-view/issues"
|
||||
},
|
||||
"homepage": "https://github.com/addonify/addonify-quick-view#readme",
|
||||
"devDependencies": {
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-wp-pot": "^2.4.3"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,316 @@
|
||||
# Copyright (C) 2021 Web Rockstar
|
||||
# This file is distributed under the GPL-2.0+.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WP Admin Notes 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-admin-notes-off\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2021-02-26T17:52:32+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.5.0-alpha-59d879d\n"
|
||||
"X-Domain: wp-admin-notes\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
#: admin/class-wp-admin-notes-admin.php:357
|
||||
msgid "WP Admin Notes"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
#. Author URI of the plugin
|
||||
msgid "https://webrockstar.net"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Create and manage admin footer text, help tabs, and notices directly from the WordPress admin."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Web Rockstar"
|
||||
msgstr ""
|
||||
|
||||
#: admin/admin-post-view.php:3
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: admin/admin-post-view.php:32
|
||||
msgid "Enter your note here."
|
||||
msgstr ""
|
||||
|
||||
#: admin/admin-post-view.php:34
|
||||
msgid "Make Private"
|
||||
msgstr ""
|
||||
|
||||
#: admin/admin-post-view.php:35
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: admin/admin-post-view.php:36
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: admin/admin-post-view.php:37
|
||||
msgid "Note is public and visible to all users"
|
||||
msgstr ""
|
||||
|
||||
#: admin/admin-post-view.php:71
|
||||
msgid "There are currently no admin notes."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:198
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:219
|
||||
msgid "Screen ID"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:238
|
||||
msgctxt "post type general name"
|
||||
msgid "Help Tabs"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:239
|
||||
msgctxt "post type singular name"
|
||||
msgid "Help Tab"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:240
|
||||
msgctxt "admin menu"
|
||||
msgid "Help Tabs"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:241
|
||||
msgctxt "add new on admin bar"
|
||||
msgid "Help Tab"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:242
|
||||
msgctxt "wpan_help_tab"
|
||||
msgid "Add New"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:243
|
||||
msgid "Add New Help Tab"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:244
|
||||
msgid "New Help Tab"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:245
|
||||
msgid "Edit Help Tab"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:246
|
||||
msgid "View Help Tab"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:247
|
||||
msgid "All Help Tabs"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:248
|
||||
msgid "Search Help Tabs"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:249
|
||||
msgid "Parent Help Tabs:"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:250
|
||||
msgid "No Help Tabs found."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-help-tab.php:251
|
||||
msgid "No Help Tabs found in Trash."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:258
|
||||
msgctxt "post type general name"
|
||||
msgid "Admin Notices"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:259
|
||||
msgctxt "post type singular name"
|
||||
msgid "Admin Notice"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:260
|
||||
msgctxt "admin menu"
|
||||
msgid "Admin Notices"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:261
|
||||
msgctxt "add new on admin bar"
|
||||
msgid "Admin Notice"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:262
|
||||
msgctxt "wpan_notice"
|
||||
msgid "Add New"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:263
|
||||
msgid "Add New Admin Notice"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:264
|
||||
msgid "New Admin Notice"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:265
|
||||
msgid "Edit Admin Notice"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:266
|
||||
msgid "View Admin Notice"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:267
|
||||
msgid "All Admin Notices"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:268
|
||||
msgid "Search Admin Notices"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:269
|
||||
msgid "Parent Admin Notices:"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:270
|
||||
msgid "No Admin Notices found."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin-notice.php:271
|
||||
msgid "No Admin Notices found in Trash."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:114
|
||||
#: admin/class-wp-admin-notes-admin.php:183
|
||||
msgid "(click to copy)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:115
|
||||
msgid "(copied!)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:361
|
||||
msgid "Admin Footer Text"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:362
|
||||
msgid ""
|
||||
"Overrides the default text in the very bottom left corner of every WordPress admin page.\n"
|
||||
"\t\t\t\t\tThis is typically used to highlight the department or company that developed/configured the website."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:364
|
||||
msgid "Enable Admin Footer Text"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:367
|
||||
msgid "Footer Text"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:370
|
||||
msgid "Website built and configured by..."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:377
|
||||
msgid "Allowed HTML: a, strong, em"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:378
|
||||
msgid "Footer Text Icon Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:379
|
||||
msgid ""
|
||||
"Optional image icon for the admin footer text. Icon is displayed at 24px X 24px and left aligned.\n"
|
||||
"\t\t\t\t Transparent PNG or SVG works best."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:389
|
||||
msgid "Notice Posts"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:391
|
||||
msgid "Disable Notice Posts"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:393
|
||||
msgid "Toggles the display of the Admin Notices post type on the left menu bar."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:395
|
||||
msgid "Help Tabs"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:396
|
||||
msgid "Custom help tabs on WordPress admin pages. Created and managed in the WordPress admin."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:397
|
||||
msgid "Disable Help Tabs"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:399
|
||||
msgid "Toggles the display of the Help Tab post type on the left menu bar."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:402
|
||||
msgid "Global Help Tab"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:403
|
||||
msgid ""
|
||||
"A single global help tab that appears on every WordPress admin page.\n"
|
||||
"\t\t\t\t\t This is typically used to display a message about who to contact regarding technical issues or feature requests."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:405
|
||||
msgid "Enable Global Help Tab"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:407
|
||||
msgid "Global Help Tab Title"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:416
|
||||
msgid "Global Help Tab Body"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:425
|
||||
msgid "Allowed HTML includes: a, strong, em, ul, ol, li, h1, h2, h3, h4, h5, h6. "
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:426
|
||||
msgid "Global Help Tab Logo Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:427
|
||||
msgid ""
|
||||
"Optional logo image to display at the bottom of the global help tab content.\n"
|
||||
"\t\t\t\t\t\t This is typically the logo of the company that configured/developed the website, if applicable.\n"
|
||||
"\t\t\t\t\t\t This image is displayed with a maximum width and height of 200px. Transparent PNG or SVG works best."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:439
|
||||
msgid "Other Settings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:441
|
||||
msgid "Hide Default Help Tabs"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:445
|
||||
msgid "Animate Help Tab Before First Click"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-wp-admin-notes-admin.php:447
|
||||
msgid ""
|
||||
"To help users discover the help tab, it will bounce and highlight until clicked.\n"
|
||||
"\t\t\t\t\t After it is clicked once it will never animate again for that user."
|
||||
msgstr ""
|
||||
@@ -0,0 +1,167 @@
|
||||
# Copyright (C) 2021 WP Concern
|
||||
# This file is distributed under the GPL3.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Advanced Google reCAPTCHA 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: "
|
||||
"https://wordpress.org/support/plugin/advanced-google-recaptcha\n"
|
||||
"POT-Creation-Date: 2021-03-09 07:19:48+00:00\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2021-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"X-Generator: node-wp-i18n 1.2.5\n"
|
||||
|
||||
#: edd_templates/shortcode-login.php:16
|
||||
msgid "Log into Your Account"
|
||||
msgstr ""
|
||||
|
||||
#: edd_templates/shortcode-login.php:19
|
||||
msgid "Username or Email"
|
||||
msgstr ""
|
||||
|
||||
#: edd_templates/shortcode-login.php:23
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: edd_templates/shortcode-login.php:30
|
||||
msgid "Remember Me"
|
||||
msgstr ""
|
||||
|
||||
#: edd_templates/shortcode-login.php:36
|
||||
msgid "Log In"
|
||||
msgstr ""
|
||||
|
||||
#: edd_templates/shortcode-login.php:40
|
||||
msgid "Lost Password?"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:26 inc/core.php:227
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:27
|
||||
msgid "Features"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:39
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin Name of the plugin/theme
|
||||
msgid "Advanced Google reCAPTCHA"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:130
|
||||
#. translators: 1: link open, 2: link close
|
||||
msgid ""
|
||||
"Please %1$sregister your domain%2$s first, get required keys from Google "
|
||||
"(reCAPTCHA v2 or reCAPTCHA v3) and save them below."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:139
|
||||
msgid "You can enable/disable reCAPTCHA for different forms separately."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:175
|
||||
msgid ""
|
||||
"Applies for default login, WooCommerce login and Easy Digital Downloads "
|
||||
"login."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:211
|
||||
msgid "Key Settings"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:213
|
||||
msgid "reCAPTCHA Type"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:215
|
||||
msgid "Site Key"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:216
|
||||
msgid "Secret Key"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:218
|
||||
msgid "Status Settings"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:220
|
||||
msgid "Enable for Login"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:221
|
||||
msgid "Enable for Register"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:222
|
||||
msgid "Enable for Lost Password"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:224
|
||||
msgid "Enable for Comment Form"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:225
|
||||
msgid "Enable for WooCommerce Register"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:226
|
||||
msgid "Enable for Easy Digital Downloads Register"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:227
|
||||
msgid "Enable for BuddyPress Register"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:272
|
||||
msgid "To implement reCAPTCHA, Key settings should be completed first."
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:274
|
||||
msgid "Captcha Settings"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:314
|
||||
msgid "V2"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:315
|
||||
msgid "V3"
|
||||
msgstr ""
|
||||
|
||||
#: inc/core.php:150 inc/core.php:153 inc/core.php:170 inc/core.php:173
|
||||
#: inc/core.php:192 inc/core.php:195 inc/core.php:211 inc/core.php:214
|
||||
#: inc/core.php:373 inc/core.php:383 inc/core.php:424 inc/core.php:434
|
||||
#: inc/core.php:452 inc/core.php:455 inc/core.php:471 inc/core.php:474
|
||||
msgid "Google reCAPTCHA verification failed."
|
||||
msgstr ""
|
||||
|
||||
#: inc/core.php:170 inc/core.php:173 inc/core.php:192 inc/core.php:195
|
||||
#: inc/core.php:211 inc/core.php:214 inc/core.php:373 inc/core.php:383
|
||||
#: inc/core.php:424 inc/core.php:434
|
||||
msgid "ERROR:"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "https://www.wpconcern.com/advanced-google-recaptcha/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid ""
|
||||
"Advanced Google reCAPTCHA will safeguard your WordPress site from spam "
|
||||
"comments and brute force attacks."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "WP Concern"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "https://www.wpconcern.com/"
|
||||
msgstr ""
|
||||
4
spec/fixtures/dynamic_finders/plugin_version/af-companion/change_log/changelog.txt
vendored
Normal file
4
spec/fixtures/dynamic_finders/plugin_version/af-companion/change_log/changelog.txt
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
### 1.0.0 - 16/02/2021
|
||||
|
||||
Changes:
|
||||
*INITIAL RELEASE*
|
||||
24
spec/fixtures/dynamic_finders/plugin_version/affiliatebooster-blocks/composer_file/package.json
vendored
Normal file
24
spec/fixtures/dynamic_finders/plugin_version/affiliatebooster-blocks/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "my-block-cgb-guten-block",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "cgb-scripts start",
|
||||
"build": "cgb-scripts build",
|
||||
"eject": "cgb-scripts eject"
|
||||
},
|
||||
"dependencies": {
|
||||
"@wordpress/compose": "^3.19.1",
|
||||
"@wordpress/icons": "^2.4.0",
|
||||
"cgb-scripts": "1.23.1",
|
||||
"classnames": "^2.2.6",
|
||||
"memize": "^1.1.0",
|
||||
"npm-upgrade": "^2.0.3",
|
||||
"react-select": "^3.1.0",
|
||||
"striptags": "^2.2.1",
|
||||
"uglify-js": "^3.10.0",
|
||||
"uglifyjs-webpack-plugin": "^2.2.0",
|
||||
"update": "^0.7.4",
|
||||
"webfontloader": "^1.6.28"
|
||||
}
|
||||
}
|
||||
26
spec/fixtures/dynamic_finders/plugin_version/affiliatewp-blocks/composer_file/package.json
vendored
Normal file
26
spec/fixtures/dynamic_finders/plugin_version/affiliatewp-blocks/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "affiliatewp-blocks",
|
||||
"version": "1.0.1",
|
||||
"description": "Blocks for AffiliateWP.",
|
||||
"author": "Sandhills Development, LLC",
|
||||
"license": "GPL-2.0-or-later",
|
||||
"main": "build/index.js",
|
||||
"scripts": {
|
||||
"build": "wp-scripts build",
|
||||
"format:js": "wp-scripts format-js",
|
||||
"lint:css": "wp-scripts lint-style",
|
||||
"lint:js": "wp-scripts lint-js",
|
||||
"start": "wp-scripts start",
|
||||
"packages-update": "wp-scripts packages-update"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@wordpress/scripts": "^7.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@wordpress/icons": "^1.4.0",
|
||||
"@wordpress/url": "^2.14.0",
|
||||
"classnames": "^2.2.6",
|
||||
"lodash": "^4.17.15",
|
||||
"trailing-slash-it": "^0.3.0"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,220 @@
|
||||
# Agy is a powerful solution to add any kind of verification restriction on your website. Easy to setup, optimized for all devices, and modern design option to match your
|
||||
# Copyright (C) YEAR Marko Radulovic
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <upss070288@gmail.com>, 2021.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Agy Verification 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-05 19:48+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: agy-verification.php:69
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: agy-verification.php:83
|
||||
msgid "Docs & FAQs"
|
||||
msgstr ""
|
||||
|
||||
#: agy-verification.php:88
|
||||
msgid "GitHub"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:24
|
||||
msgid "You have successfully saved your settings."
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:93
|
||||
#, php-format
|
||||
msgid "<a href=\"%s\" target=\"%s\" class=\"%s\">"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:145
|
||||
#, php-format
|
||||
msgid "<a href=\"%s\" target=\"%s\"><img src=\"%s\" class=\"%s\"></a>"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:159
|
||||
msgid "_blank"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:161
|
||||
msgid "agy-logo"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:176 includes/Agy_Dashboard.php:262
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:177 includes/Agy_Dashboard.php:267
|
||||
msgid "Text"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:179 includes/Agy_Dashboard.php:272
|
||||
msgid "Design"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:186
|
||||
msgid "Agy Verification"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:222
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:244
|
||||
msgid "Set your General settings."
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:249
|
||||
msgid "Set all of the text for your modal verification."
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:254
|
||||
msgid "Set the desirable design for the modal verification."
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:278
|
||||
msgid "Enable / Disable"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:283
|
||||
msgid "Show for unregistered users only"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:288
|
||||
msgid "Activate Debug mode"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:293
|
||||
msgid "Exit URL"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:299
|
||||
msgid "Headline"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:304
|
||||
msgid "Subtitle"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:309
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:314
|
||||
msgid "Enter Button Label"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:319
|
||||
msgid "Exit Button Label"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:324
|
||||
msgid "Separator Text"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:329
|
||||
msgid "Slogan"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:335
|
||||
msgid "Background color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:340
|
||||
msgid "Z-Index ( Overlay )"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:345
|
||||
msgid "Content Box width ( in px )"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:350
|
||||
msgid "Headline Color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:355
|
||||
msgid "Headline Font size ( in px )"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:360
|
||||
msgid "Subtitle Color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:365
|
||||
msgid "Subtitle Font size ( in px )"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:370
|
||||
msgid "Message Color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:375
|
||||
msgid "Message Font size ( in px )"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:380
|
||||
msgid "Enter Button background color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:385
|
||||
msgid "Enter Button font color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:390
|
||||
msgid "Enter Button border style"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:395
|
||||
msgid "Enter Button border color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:400
|
||||
msgid "Enter Button font size ( in px )"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:405
|
||||
msgid "Exit Button background color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:410
|
||||
msgid "Exit Button font color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:415
|
||||
msgid "Exit Button border style"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:420
|
||||
msgid "Exit Button border color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:425
|
||||
msgid "Exit Button font size ( in px )"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:430
|
||||
msgid "Separator Color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:435
|
||||
msgid "Separator Font size ( in px )"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:440
|
||||
msgid "Slogan Color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/Agy_Dashboard.php:445
|
||||
msgid "Slogan Font size ( in px )"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,91 @@
|
||||
# Blank WordPress Pot
|
||||
# Copyright 2014 ...
|
||||
# This file is distributed under the GNU General Public License v3 or later.
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: "
|
||||
"Blank WordPress Pot "
|
||||
"v1.0.0\n"
|
||||
"POT-Creation-Date: "
|
||||
"2020-07-27 14:57+0200\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Fredrik Stigsson"
|
||||
"<info@annytab.se>\n"
|
||||
"Language-Team: Your Team "
|
||||
"<translations@example."
|
||||
"com>\n"
|
||||
"Report-Msgid-Bugs-To: "
|
||||
"Translator Name "
|
||||
"<translations@example."
|
||||
"com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/"
|
||||
"plain; charset=UTF-8\n"
|
||||
"Content-Transfer-"
|
||||
"Encoding: 8bit\n"
|
||||
"Plural-Forms: "
|
||||
"nplurals=2; plural=n != "
|
||||
"1;\n"
|
||||
"X-Textdomain-Support: "
|
||||
"yesX-Generator: Poedit "
|
||||
"1.6.4\n"
|
||||
"X-Poedit-SourceCharset: "
|
||||
"UTF-8\n"
|
||||
"X-Poedit-KeywordsList: "
|
||||
"__;_e;esc_html_e;"
|
||||
"esc_html_x:1,2c;"
|
||||
"esc_html__;esc_attr_e;"
|
||||
"esc_attr_x:1,2c;"
|
||||
"esc_attr__;_ex:1,2c;"
|
||||
"_nx:4c,1,2;"
|
||||
"_nx_noop:4c,1,2;_x:1,2c;"
|
||||
"_n:1,2;_n_noop:1,2;"
|
||||
"__ngettext:1,2;"
|
||||
"__ngettext_noop:1,2;_c,"
|
||||
"_nc:4c,1,2\n"
|
||||
"X-Poedit-Basepath: ..\n"
|
||||
"Language: en_US\n"
|
||||
"X-Generator: Poedit 2.4\n"
|
||||
"X-Poedit-"
|
||||
"SearchPath-0: .\n"
|
||||
|
||||
#: annytab-photoswipe.php:85
|
||||
msgid "Share on Facebook"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:86
|
||||
msgid "Tweet"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:87
|
||||
msgid "Pin it"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:88
|
||||
msgid "Download image"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:114
|
||||
msgid "Close (Esc)"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:116
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:118
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:120
|
||||
msgid "Zoom in/out"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:137
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:140
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
88
spec/fixtures/dynamic_finders/plugin_version/app-log/translation_file/lang/aplg.pot
vendored
Normal file
88
spec/fixtures/dynamic_finders/plugin_version/app-log/translation_file/lang/aplg.pot
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
# Copyright (C) 2020 PRESSMAN
|
||||
# This file is distributed under the same license as the App Log plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: App Log 1.1\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/app-log\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-07-29T02:35:19+00:00\n"
|
||||
"PO-Revision-Date: 2020-08-07T06:01:23+00:00\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: aplg\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
#: admin/aplg-dashboard.php:48
|
||||
#: admin/aplg-settings.php:38
|
||||
msgid "App Log"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "A simple logger for debugging."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "PRESSMAN"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://www.pressman.ne.jp/"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:64
|
||||
msgid "File will be deleted. Are you sure you want to proceed?"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:83
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:105
|
||||
msgid "No logs found."
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:117
|
||||
msgid "Log File List"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:117
|
||||
msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:152
|
||||
msgid "Set path to where the application logs are stored"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:159
|
||||
msgid "※No need to set if default path will be used. (Default Path: %s)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:191
|
||||
msgid "Invalid access"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:231
|
||||
#: classes/class-aplg-logger.php:122
|
||||
msgid "%s successfully deleted."
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-settings.php:37
|
||||
#: admin/aplg-settings.php:53
|
||||
msgid "App Log Settings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-settings.php:60
|
||||
msgid "Log Directory"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-settings.php:68
|
||||
msgid "Enable/Disable Mail Log"
|
||||
msgstr ""
|
||||
|
||||
#: classes/class-aplg-logger.php:114
|
||||
#: classes/class-aplg-logger.php:127
|
||||
msgid "Failed to delete log."
|
||||
msgstr ""
|
||||
11
spec/fixtures/dynamic_finders/plugin_version/appsy/composer_file/package.json
vendored
Normal file
11
spec/fixtures/dynamic_finders/plugin_version/appsy/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "appsy-wordpress",
|
||||
"version": "1.0.0",
|
||||
"description": "=== Plugin Name === Requires at least: 3.0.1 Tested up to: 3.4 Stable tag: 5.5 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user