Compare commits

...

190 Commits

Author SHA1 Message Date
erwanlr
452126b56a Bumps version 2021-02-15 10:44:03 +01:00
erwanlr
28dfd8b3b9 Updates numbers of free daily requests, props @XalfiE 2021-02-15 09:09:10 +01:00
erwanlr
d3196bc03f Adds DFs 2021-02-12 17:58:50 +01:00
erwanlr
0bff3231cd Adds DFs 2021-02-05 16:57:19 +01:00
erwanlr
6e9d147dd0 Bumps version 2021-02-01 14:08:49 +01:00
erwanlr
9a7872a7c4 Uses CMSScanner 0.13.1 2021-02-01 14:07:00 +01:00
Ryan Dewhurst
e8f10fb2db Update README.md 2021-02-01 13:32:38 +01:00
Ryan Dewhurst
221f3fcbfd Update README.md 2021-02-01 13:28:31 +01:00
erwanlr
ab5153363f Merge branch 'master' of github.com:wpscanteam/wpscan 2021-02-01 11:32:39 +01:00
erwanlr
8576145d3f Updates specs for consistency 2021-02-01 11:32:28 +01:00
Ryan Dewhurst
7908fb7d97 Update README.md 2021-02-01 11:10:31 +01:00
erwanlr
44b934540e Adds DFs 2021-01-30 11:32:13 +01:00
Erwan
9978595237 Adds install via HomeBrew in Readme 2021-01-29 14:00:51 +01:00
Erwan
109c701e4f Updates prerequisites section of the readme 2021-01-29 13:54:06 +01:00
erwanlr
11f35d86ff Fixes #1599 2021-01-29 13:34:39 +01:00
erwanlr
fa3005f2b7 Updates rubocop dep 2021-01-29 11:56:04 +01:00
erwanlr
f30255d6d8 Adds DFs 2021-01-23 11:17:52 +01:00
erwanlr
183df75112 Adds DFs 2021-01-15 13:52:41 +01:00
erwanlr
105d06c8f8 Bumps version 2021-01-12 15:20:58 +01:00
Erwan
82941906ca Merge pull request #1595 from wpscanteam/dev
Dev
2021-01-12 15:01:27 +01:00
erwanlr
470fbb1ff3 Updates CMSScanner dep, fixes #1592 & #1594 2021-01-12 14:17:38 +01:00
erwanlr
8c6234879e Adds check for PHP disabled, Ref #1593 2021-01-12 14:03:25 +01:00
erwanlr
689252c715 Adds DFs 2021-01-08 17:38:54 +01:00
Erwan
19cf00227b Merge pull request #1591 from wpscanteam/dependabot/bundler/rubocop-tw-1.8.0
Update rubocop requirement from ~> 1.7.0 to ~> 1.8.0
2021-01-08 08:26:37 +01:00
dependabot-preview[bot]
c9795dc560 Update rubocop requirement from ~> 1.7.0 to ~> 1.8.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v1.7.0...v1.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-08 05:27:27 +00:00
erwanlr
188c8f31b2 Bumps version 2021-01-04 08:35:44 +01:00
erwanlr
76b2c067f6 Updates cms_scanner dep 2021-01-04 07:44:19 +01:00
Erwan
01316ceac1 Merge pull request #1590 from wpscanteam/dependabot/bundler/simplecov-tw-0.21.0
Update simplecov requirement from ~> 0.20.0 to ~> 0.21.0
2021-01-04 07:16:31 +01:00
dependabot-preview[bot]
52f14c5f06 Update simplecov requirement from ~> 0.20.0 to ~> 0.21.0
Updates the requirements on [simplecov](https://github.com/simplecov-ruby/simplecov) to permit the latest version.
- [Release notes](https://github.com/simplecov-ruby/simplecov/releases)
- [Changelog](https://github.com/simplecov-ruby/simplecov/blob/main/CHANGELOG.md)
- [Commits](https://github.com/simplecov-ruby/simplecov/compare/v0.20.0...v0.21.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-04 05:24:22 +00:00
erwanlr
6782730d80 Adds Dfs 2021-01-01 15:08:24 +01:00
Erwan
4235871a00 Merge pull request #1582 from wpscanteam/dependabot/bundler/webmock-tw-3.11.0
Update webmock requirement from ~> 3.10.0 to ~> 3.11.0
2020-12-28 08:25:10 +01:00
Erwan
cb27a22fc4 Merge pull request #1585 from wpscanteam/dependabot/bundler/rubocop-tw-1.7.0
Update rubocop requirement from ~> 1.6.0 to ~> 1.7.0
2020-12-28 08:24:26 +01:00
dependabot-preview[bot]
e639d4eee3 Update rubocop requirement from ~> 1.6.0 to ~> 1.7.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v1.6.0...v1.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-28 05:17:34 +00:00
erwanlr
d95b70f1c2 Adds DFs 2020-12-26 16:19:14 +01:00
dependabot-preview[bot]
fb97553f7c Update webmock requirement from ~> 3.10.0 to ~> 3.11.0
Updates the requirements on [webmock](https://github.com/bblimke/webmock) to permit the latest version.
- [Release notes](https://github.com/bblimke/webmock/releases)
- [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bblimke/webmock/compare/v3.10.0...v3.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-21 05:28:58 +00:00
erwanlr
b3b3bec6b0 Adds DFs 2020-12-18 13:16:51 +01:00
erwanlr
baab7a49f6 Bumps version 2020-12-16 15:53:00 +01:00
erwanlr
6843fe700e Fixes API retry not properly working (cache issue), Fixes #1579, Updates remaining of WpVulnDB 2020-12-16 13:04:11 +01:00
erwanlr
0c193de70e Merge branch 'master' of github.com:wpscanteam/wpscan 2020-12-16 13:03:19 +01:00
erwanlr
e42ce414de Fixes API retry not properly working (cache issue), Fixes #1579, Updates remaining of WpVulnDB 2020-12-16 13:03:03 +01:00
Christian Mehlmauer
6d347ada98 really use ruby 2.7.2 :) 2020-12-15 13:44:48 +01:00
erwanlr
3638241513 Fixes incorrect detection of a response from the API in some cases (better) 2020-12-15 12:05:06 +01:00
erwanlr
1c30743a11 Fixes incorrect detection of a response from the API in some cases 2020-12-15 11:54:59 +01:00
erwanlr
48d363031b Updates to ruby 2.7.2 2020-12-15 11:13:51 +01:00
erwanlr
d083719b9c Updates remains of wpscan.org 2020-12-15 11:02:49 +01:00
erwanlr
7fd59b27f4 Adds DFs 2020-12-11 16:33:59 +01:00
Erwan
6f4b216bb0 Merge pull request #1578 from wpscanteam/dependabot/bundler/rubocop-tw-1.6.0
Update rubocop requirement from ~> 1.5.1 to ~> 1.6.0
2020-12-10 11:45:20 +01:00
dependabot-preview[bot]
5fa82a3f27 Update rubocop requirement from ~> 1.5.1 to ~> 1.6.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v1.5.1...v1.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-10 05:17:04 +00:00
erwanlr
02d1e30b08 Adds Dfs 2020-12-04 13:10:02 +01:00
Erwan
1e2d227c56 Merge pull request #1575 from wpscanteam/dependabot/bundler/rubocop-tw-1.5.1
Update rubocop requirement from ~> 1.4.2 to ~> 1.5.1
2020-12-03 16:14:54 +01:00
Erwan
cfc895e658 Merge pull request #1573 from wpscanteam/dependabot/bundler/memory_profiler-tw-1.0.0
Update memory_profiler requirement from ~> 0.9.13 to ~> 1.0.0
2020-12-03 16:14:41 +01:00
dependabot-preview[bot]
3f789b39c4 Update rubocop requirement from ~> 1.4.2 to ~> 1.5.1
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v1.4.2...v1.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-03 05:16:47 +00:00
dependabot-preview[bot]
16002576d2 Update memory_profiler requirement from ~> 0.9.13 to ~> 1.0.0
Updates the requirements on [memory_profiler](https://github.com/SamSaffron/memory_profiler) to permit the latest version.
- [Release notes](https://github.com/SamSaffron/memory_profiler/releases)
- [Changelog](https://github.com/SamSaffron/memory_profiler/blob/master/CHANGELOG.md)
- [Commits](https://github.com/SamSaffron/memory_profiler/compare/v0.9.13...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-02 05:15:58 +00:00
Erwan
7b0e352d29 Merge pull request #1572 from wpscanteam/dependabot/bundler/simplecov-tw-0.20.0
Update simplecov requirement from ~> 0.19.0 to ~> 0.20.0
2020-11-30 10:20:10 +01:00
dependabot-preview[bot]
da85729254 Update simplecov requirement from ~> 0.19.0 to ~> 0.20.0
Updates the requirements on [simplecov](https://github.com/simplecov-ruby/simplecov) to permit the latest version.
- [Release notes](https://github.com/simplecov-ruby/simplecov/releases)
- [Changelog](https://github.com/simplecov-ruby/simplecov/blob/main/CHANGELOG.md)
- [Commits](https://github.com/simplecov-ruby/simplecov/compare/v0.19.0...v0.20.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-30 05:21:27 +00:00
erwanlr
6a48f6c42b Adds DFs 2020-11-27 09:21:30 +01:00
erwanlr
8eabcd9df3 Updates deps 2020-11-26 09:43:48 +01:00
erwanlr
6b89bc9f55 Adds DFs 2020-11-20 17:31:10 +01:00
Ryan Dewhurst
1e250796ca Update README.md 2020-11-19 17:59:01 +01:00
Ryan Dewhurst
c73f9028f0 Update README.md 2020-11-19 17:58:03 +01:00
erwanlr
71c89371a9 Adds Dfs 2020-11-13 12:15:31 +01:00
Erwan
9043ddca71 Merge pull request #1563 from wpscanteam/dependabot/bundler/webmock-tw-3.10.0
Update webmock requirement from ~> 3.9.0 to ~> 3.10.0
2020-11-13 08:54:39 +01:00
Erwan
6c461e778d Merge pull request #1562 from wpscanteam/dependabot/bundler/rubocop-tw-1.3.0
Update rubocop requirement from ~> 1.2.0 to ~> 1.3.0
2020-11-13 08:54:08 +01:00
dependabot-preview[bot]
3f1a71c643 Update webmock requirement from ~> 3.9.0 to ~> 3.10.0
Updates the requirements on [webmock](https://github.com/bblimke/webmock) to permit the latest version.
- [Release notes](https://github.com/bblimke/webmock/releases)
- [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bblimke/webmock/compare/v3.9.0...v3.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-13 05:18:55 +00:00
dependabot-preview[bot]
b0df6dcade Update rubocop requirement from ~> 1.2.0 to ~> 1.3.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v1.2.0...v1.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-13 05:18:35 +00:00
erwanlr
ac0d2fb536 Updates rubocop 2020-11-06 18:44:59 +01:00
erwanlr
48f107021a Adds Dfs 2020-11-06 17:57:20 +01:00
Erwan
64ac4ecf72 Merge pull request #1559 from wpscanteam/dependabot/bundler/rspec-tw-3.10.0
Update rspec requirement from ~> 3.9.0 to ~> 3.10.0
2020-11-02 08:45:32 +01:00
dependabot-preview[bot]
ddc680a9ae Update rspec requirement from ~> 3.9.0 to ~> 3.10.0
Updates the requirements on [rspec](https://github.com/rspec/rspec) to permit the latest version.
- [Release notes](https://github.com/rspec/rspec/releases)
- [Commits](https://github.com/rspec/rspec/compare/v3.9.0...v3.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-02 05:21:21 +00:00
erwanlr
43b04da5a2 Updates rubocop 2020-10-30 14:50:42 +01:00
erwanlr
bc28dd392d Adds DFs 2020-10-30 14:36:10 +01:00
erwanlr
0d2e1fee43 Bumps version 2020-10-28 13:34:39 +01:00
erwanlr
eaf2cec8c9 Updates rubocop 2020-10-28 10:13:35 +01:00
erwanlr
611d3dfd4d Fixes #1554 2020-10-28 10:10:57 +01:00
erwanlr
c4030d8267 Adds DFs 2020-10-23 12:47:33 +02:00
erwanlr
630752787a Bumps version 2020-10-16 14:00:07 +02:00
erwanlr
c07ecc58cb Updates vulnerability reference URL 2020-10-16 13:08:44 +02:00
erwanlr
89fccfe7b7 Adds DFs 2020-10-16 13:03:54 +02:00
Ryan Dewhurst
ceeb7e538b Update email in license 2020-10-12 21:38:55 +02:00
erwanlr
8dab57b59c Bumps version 2020-10-09 12:30:57 +02:00
Erwan
7a00cd8db1 Merge pull request #1550 from d10r/master
fixed typo in link (wpscam.com)
2020-10-09 11:44:39 +02:00
Didi
daa0915bca fixed typo in link (wpscam.com) 2020-10-09 11:38:54 +02:00
erwanlr
ca6b6a30d8 Updates Rubocop dep 2020-10-09 11:23:17 +02:00
erwanlr
09f2640879 Adds Dfs 2020-10-09 11:18:40 +02:00
erwanlr
f61c55b350 Updates DB URLs 2020-10-08 19:29:57 +02:00
erwanlr
78d0c2540c Adds DFs 2020-10-02 12:26:58 +02:00
Erwan
1d0426e816 Merge pull request #1544 from wpscanteam/dependabot/bundler/rubocop-tw-0.92.0
Update rubocop requirement from ~> 0.91.0 to ~> 0.92.0
2020-09-28 08:24:49 +02:00
dependabot-preview[bot]
103a4049c8 Update rubocop requirement from ~> 0.91.0 to ~> 0.92.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.91.0...v0.92.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-28 05:23:28 +00:00
erwanlr
cbcb1dcb33 Adds Dfs 2020-09-27 11:55:30 +02:00
erwanlr
9c36293382 Adds DFs 2020-09-19 10:39:54 +02:00
erwanlr
2fb36dc425 Adds DF 2020-09-18 15:40:29 +02:00
erwanlr
c717ba5a71 Updates rubocop 2020-09-18 15:15:21 +02:00
Christian Mehlmauer
7572518e3b add label to dockerfile 2020-09-17 08:10:20 +02:00
Erwan
f670133a82 Merge pull request #1541 from wpscanteam/dependabot/bundler/webmock-tw-3.9.0
Update webmock requirement from ~> 3.8.0 to ~> 3.9.0
2020-09-14 08:55:07 +02:00
dependabot-preview[bot]
a6bbf41e82 Update webmock requirement from ~> 3.8.0 to ~> 3.9.0
Updates the requirements on [webmock](https://github.com/bblimke/webmock) to permit the latest version.
- [Release notes](https://github.com/bblimke/webmock/releases)
- [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bblimke/webmock/compare/v3.8.0...v3.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-14 05:23:55 +00:00
erwanlr
622c16932a Adds DFs 2020-09-12 12:21:16 +02:00
erwanlr
5fd7e0ed22 Bumps version 2020-09-10 14:34:44 +02:00
erwanlr
d9f6c71015 Adds specs 2020-09-10 13:41:01 +02:00
Erwan
61a3106b3b Merge pull request #1540 from dwisiswant0/installer-log-regex-update
Update regex for WP Duplicator plugin installer-log
2020-09-10 13:22:15 +02:00
Dwi Siswanto
20eb2d825d 🔨 Update regex 2020-09-10 17:30:36 +07:00
Dwi Siswanto
906557d2ec 🔨 Update regex for WP Duplicator plugin installer-log 2020-09-10 04:38:19 +07:00
erwanlr
c1e278ea80 Updates rubocop-perf 2020-09-07 09:19:13 +02:00
erwanlr
e2d616a53f Adds DFs 2020-09-05 11:14:47 +02:00
erwanlr
c6802ccdd2 Updates rubocop 2020-09-03 11:05:36 +02:00
erwanlr
abd50fd037 Adds DFs 2020-08-29 12:02:20 +02:00
erwanlr
4515be53b4 Adds Dfs 2020-08-22 17:51:39 +02:00
Erwan
920a25bb25 Merge pull request #1536 from wpscanteam/dependabot/bundler/simplecov-tw-0.19.0
Update simplecov requirement from ~> 0.18.2 to ~> 0.19.0
2020-08-17 09:10:44 +02:00
dependabot-preview[bot]
648dd05069 Update simplecov requirement from ~> 0.18.2 to ~> 0.19.0
Updates the requirements on [simplecov](https://github.com/simplecov-ruby/simplecov) to permit the latest version.
- [Release notes](https://github.com/simplecov-ruby/simplecov/releases)
- [Changelog](https://github.com/simplecov-ruby/simplecov/blob/main/CHANGELOG.md)
- [Commits](https://github.com/simplecov-ruby/simplecov/compare/v0.18.2...v0.19.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-17 05:57:47 +00:00
erwanlr
713edcecca Adds DFs 2020-08-15 12:02:27 +02:00
erwanlr
ac16a951c5 Bumps version 2020-08-08 14:21:50 +02:00
erwanlr
1043bcb267 Adds Dfs 2020-08-08 13:25:15 +02:00
erwanlr
22979a1a77 Adds DFs 2020-08-07 09:39:50 +02:00
erwanlr
3039d2e7eb More rubocop fixes 2020-08-06 12:47:00 +02:00
erwanlr
557dee2d8c Updates rubocop 2020-08-06 11:43:26 +02:00
erwanlr
a506adcb64 Fixes #1529 2020-08-06 10:51:08 +02:00
erwanlr
3bfb120646 Adds DF for monarch - Ref #1527 2020-08-04 14:42:50 +02:00
erwanlr
43e613aa52 Updates Gravityforms detection - Ref #1526 2020-08-03 12:33:14 +02:00
erwanlr
0d930ed605 Adds Dfs 2020-08-01 10:45:42 +02:00
erwanlr
2014f1e4b3 Bumps version 2020-07-25 17:13:29 +02:00
erwanlr
4889d17e0a Ref #1510 2020-07-25 16:24:59 +02:00
erwanlr
494d31215d Ref #1510 2020-07-25 16:21:03 +02:00
erwanlr
582bdea431 Adds DFs 2020-07-25 11:51:59 +02:00
erwanlr
ecf7df9c01 Ref #1510 2020-07-24 15:32:41 +02:00
erwanlr
a9760e8817 Ref #1510 2020-07-24 15:26:22 +02:00
erwanlr
b32e990dd4 Bumps version 2020-07-20 15:11:31 +02:00
erwanlr
4320d2436f Fixes #1522 2020-07-20 13:15:54 +02:00
erwanlr
cba6e74b13 Fixes #1520 2020-07-18 13:35:53 +02:00
erwanlr
981bcf5fa2 Adds Dfs 2020-07-18 13:17:37 +02:00
erwanlr
1d79bc37d3 Bumps version 2020-07-17 10:50:15 +02:00
erwanlr
2fae3336ba Removes useless statement 2020-07-16 17:53:59 +02:00
erwanlr
cfb98c5139 Ref #1518 for XMLrPC multicall 2020-07-16 17:50:43 +02:00
erwanlr
b0260327c4 Updates XMLRPC MultiCall attack to reflect use changes. Ref #1518 2020-07-16 14:56:08 +02:00
erwanlr
f65532e347 Uses an enumerator to read wordlist during pwd attack. Fixes #1518 2020-07-16 14:39:09 +02:00
erwanlr
ff574b046c Checks if the wp-login.php is available before attacking it - Fixes #1519 2020-07-16 10:22:45 +02:00
erwanlr
97c995b64c Adds additional check just in case (related to Rubocop offences fixed) 2020-07-15 20:07:47 +02:00
erwanlr
8361ec97e4 Rubocop: Adds new cops by default, fixes offences 2020-07-15 16:45:36 +02:00
erwanlr
7a0bbc0acb Updates cms_scanner dep 2020-07-15 14:24:22 +02:00
Erwan
66f5eca841 Merge pull request #1517 from wpscanteam/dependabot/bundler/rubocop-tw-0.88.0
Update rubocop requirement from ~> 0.87.0 to ~> 0.88.0
2020-07-14 09:11:47 +02:00
dependabot-preview[bot]
b53e6d1888 Update rubocop requirement from ~> 0.87.0 to ~> 0.88.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.87.0...v0.88.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-14 05:38:06 +00:00
erwanlr
4b68fa8b60 Adds DFs 2020-07-11 10:19:52 +02:00
Erwan
54770c5a50 Merge pull request #1516 from wpscanteam/dependabot/bundler/rubocop-tw-0.87.0
Update rubocop requirement from ~> 0.86.0 to ~> 0.87.0
2020-07-07 09:34:54 +02:00
dependabot-preview[bot]
39fb2167f7 Update rubocop requirement from ~> 0.86.0 to ~> 0.87.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.86.0...v0.87.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 06:44:44 +00:00
Erwan
c33fef9c98 Merge pull request #1515 from wpscanteam/dependabot/bundler/rubocop-performance-tw-1.7.0
Update rubocop-performance requirement from ~> 1.6.0 to ~> 1.7.0
2020-07-07 08:43:34 +02:00
dependabot-preview[bot]
08a1117edf Update rubocop-performance requirement from ~> 1.6.0 to ~> 1.7.0
Updates the requirements on [rubocop-performance](https://github.com/rubocop-hq/rubocop-performance) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop-performance/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop-performance/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop-performance/compare/v1.6.0...v1.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 05:40:52 +00:00
erwanlr
e14cbed56e Adds DF 2020-07-04 11:27:49 +02:00
erwanlr
56e2ab16cc Adds DFs 2020-06-27 11:39:00 +02:00
erwanlr
d76d4b70f5 Updates rubocop & fixes offences 2020-06-23 20:30:48 +02:00
erwanlr
e223936a81 Adds Dfs 2020-06-20 12:00:20 +02:00
Christian Mehlmauer
60d067c421 fix docker install 2020-06-14 20:16:14 +02:00
Christian Mehlmauer
4102cf4688 fix #1487 2020-06-14 19:49:58 +02:00
erwanlr
dc977e6630 Adds missing spec files 2020-06-13 22:10:27 +02:00
erwanlr
05deabd775 Adds DF 2020-06-13 21:32:23 +02:00
erwanlr
549ab4aa15 Bumps version 2020-06-08 20:53:15 +02:00
erwanlr
b189c71682 Typo 2020-06-08 20:14:02 +02:00
erwanlr
b909856933 Fixes #1504 2020-06-08 20:13:18 +02:00
erwanlr
5de9084901 Updates deps 2020-06-08 19:59:04 +02:00
erwanlr
384ef0b44c Adds DFs 2020-06-06 10:48:34 +02:00
Erwan
9307772dc3 Merge pull request #1502 from wpscanteam/dependabot/bundler/rubocop-tw-0.85.0
Update rubocop requirement from ~> 0.84.0 to ~> 0.85.0
2020-06-02 08:26:24 +02:00
dependabot-preview[bot]
730c71d103 Update rubocop requirement from ~> 0.84.0 to ~> 0.85.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.84.0...v0.85.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-02 05:43:24 +00:00
erwanlr
5c710b96f5 Adds Dfs 2020-05-30 11:36:59 +02:00
erwanlr
fe63d0eadf Adds DFs 2020-05-29 10:05:59 +02:00
erwanlr
a6ca95159a Adds DFs 2020-05-23 11:13:57 +02:00
erwanlr
677d32fef5 Updates rubocop-performance and config 2020-05-23 09:17:41 +02:00
Erwan
14abd05969 Merge pull request #1498 from wpscanteam/dependabot/bundler/rubocop-tw-0.84.0
Update rubocop requirement from ~> 0.83.0 to ~> 0.84.0
2020-05-22 08:39:17 +02:00
dependabot-preview[bot]
2e680be34f Update rubocop requirement from ~> 0.83.0 to ~> 0.84.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.83.0...v0.84.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-22 05:32:38 +00:00
erwanlr
fe29942bf4 Adds Dfs 2020-05-16 15:30:47 +02:00
Erwan
c8fb717ac1 Updates Readme's Install section 2020-05-13 21:30:09 +02:00
Erwan
1ff7fcc913 Merge pull request #1493 from wpscanteam/dependabot/bundler/rubocop-tw-0.83.0
Update rubocop requirement from ~> 0.82.0 to ~> 0.83.0
2020-05-12 10:21:34 +02:00
Erwan
419c32702a Fixes rubocop offenses 2020-05-12 09:32:02 +02:00
dependabot-preview[bot]
9b63714caa Update rubocop requirement from ~> 0.82.0 to ~> 0.83.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.82.0...v0.83.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-12 05:35:24 +00:00
erwanlr
f034233607 Adds DFs 2020-05-09 11:46:23 +02:00
erwanlr
be6fcb51b6 Adds Dfs 2020-05-02 12:44:05 +02:00
Ryan Dewhurst
e49a682f00 Add user documentation URL to readme 2020-05-01 11:35:39 +02:00
Erwan
23ad3141a1 Fixes rubocop offence 2020-04-27 09:31:47 +02:00
Erwan
5347e374e0 Fixes rubocop last offence! 2020-04-27 09:26:26 +02:00
Erwan
1a49a628de Fixes rubocop offences 2020-04-27 09:22:59 +02:00
Erwan
8def256d7e Fixes potential InvalidProgressBar error in Pwd Attack 2020-04-27 09:15:37 +02:00
erwanlr
1cd8e6bad7 Adds Dfs 2020-04-25 17:43:29 +02:00
erwanlr
7a03c0db25 Adds DFs 2020-04-18 10:49:21 +02:00
Erwan
e7e3657d1f Merge pull request #1485 from wpscanteam/dependabot/bundler/rubocop-tw-0.82.0
Update rubocop requirement from ~> 0.81.0 to ~> 0.82.0
2020-04-17 10:03:28 +02:00
dependabot-preview[bot]
734dfcc9bc Update rubocop requirement from ~> 0.81.0 to ~> 0.82.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.81.0...v0.82.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 05:28:29 +00:00
erwanlr
b0db15099d Bumps version 2020-04-16 11:02:15 +02:00
erwanlr
6fbd2369ba Merge branch 'master' of github.com:wpscanteam/wpscan 2020-04-16 10:20:09 +02:00
erwanlr
f4a6674eed Better code related to CVSS 2020-04-16 10:06:28 +02:00
Ryan Dewhurst
c0567ad4f5 Change wording to security scanner 2020-04-16 09:37:15 +02:00
erwanlr
f146ee7e9f Adds YT references and CVSS to output 2020-04-15 17:02:44 +02:00
erwanlr
e606f4ce18 Adds YT references in output 2020-04-15 14:46:06 +02:00
Ryan Dewhurst
945b589a58 Update README.md
SEO tweak
2020-04-14 09:44:36 +02:00
Erwan
b18042c4a8 Reverts previous commit. spec folder already excluded via .dockerignore 2020-04-13 16:44:27 +02:00
Erwan
a9ff39104b Removes specs folder from Docker build 2020-04-13 16:21:17 +02:00
570 changed files with 259251 additions and 5181 deletions

View File

@@ -1,11 +1,17 @@
require: rubocop-performance
AllCops:
NewCops: enable
SuggestExtensions: false
TargetRubyVersion: 2.5
Exclude:
- '*.gemspec'
- 'vendor/**/*'
Layout/LineLength:
Max: 120
Lint/ConstantDefinitionInBlock:
Enabled: false
Lint/MissingSuper:
Enabled: false
Lint/UriEscapeUnescape:
Enabled: false
Metrics/AbcSize:
@@ -18,11 +24,13 @@ 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:

View File

@@ -1 +1 @@
2.7.1
2.7.2

View File

@@ -1,3 +1,4 @@
# frozen_string_literal: true
if ENV['GITHUB_ACTION']
require 'simplecov-lcov'
@@ -15,4 +16,4 @@ SimpleCov.start do
add_filter '/spec/'
add_filter 'helper'
end
end

View File

@@ -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

View File

@@ -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;

View File

@@ -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>
@@ -7,10 +7,10 @@
<h3 align="center">WPScan</h3>
<p align="center">
WordPress Vulnerability Scanner
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 plugin" target="_blank">WordPress 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,14 +24,23 @@
## 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
### From RubyGems (Recommended)
### In a Pentesting distribution
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
gem install wpscan
@@ -39,18 +48,6 @@ gem install wpscan
On MacOSX, if a ```Gem::FilePermissionError``` is raised due to the Apple's System Integrity Protection (SIP), either install RVM and install wpscan again, or run ```sudo gem install -n /usr/local/bin wpscan``` (see [#1286](https://github.com/wpscanteam/wpscan/issues/1286))
### From sources (NOT Recommended)
Prerequisites: Git
```shell
git clone https://github.com/wpscanteam/wpscan
cd wpscan/
bundle install && rake install
```
# Updating
You can update the local database by using ```wpscan --update```
@@ -77,6 +74,8 @@ docker run -it --rm wpscanteam/wpscan --url https://target.tld/ --enumerate u1-1
# Usage
Full user documentation can be found here; https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation
```wpscan --url blog.tld``` This will scan the blog using default options with a good compromise between speed and accuracy. For example, the plugins will be checked passively but their version with a mixed detection mode (passively + aggressively). Potential config backup files will also be checked, along with other interesting findings.
If a more stealthy approach is required, then ```wpscan --stealthy --url blog.tld``` can be used.
@@ -86,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
@@ -182,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;

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
@@ -40,7 +40,7 @@ module WPScan
# @return [ Hash ]
def potential_urls(opts = {})
urls = {}
domain_name = PublicSuffix.domain(target.uri.host)[/(^[\w|-]+)/, 1]
domain_name = (PublicSuffix.domain(target.uri.host) || target.uri.host)[/(^[\w|-]+)/, 1]
File.open(opts[:list]).each_with_index do |path, index|
path.gsub!('{domain_name}', domain_name)

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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))

View File

@@ -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)

View File

@@ -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)

View File

@@ -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?
@@ -76,16 +102,19 @@ module WPScan
break
end
progress_bar.total = progress_bar.progress + ((passwords.size - wordlist_index) / current_passwords_size.round(1)).ceil
begin
progress_bar.total = progress_bar.progress + ((wordlist_size - checked_passwords) / current_passwords_size.round(1)).ceil
rescue ProgressBar::InvalidProgressError
end
end
end
# Maybe a progress_bar.stop ?
end
# rubocop:disable all
# rubocop:enable all
def passwords_size(max_passwords, users_size)
return 1 if max_passwords < users_size
return 0 if users_size == 0
return 0 if users_size.zero?
max_passwords / users_size
end
@@ -94,9 +123,13 @@ module WPScan
def check_and_output_errors(res)
progress_bar.log("Incorrect response: #{res.code} / #{res.return_message}") unless res.code == 200
progress_bar.log('Parsing error, might be caused by a too high --max-passwords value (such as >= 2k)') if res.body =~ /parse error. not well formed/i
if /parse error. not well formed/i.match?(res.body)
progress_bar.log('Parsing error, might be caused by a too high --max-passwords value (such as >= 2k)')
end
progress_bar.log('The requested method is not supported') if res.body =~ /requested method [^ ]+ does not exist/i
return unless /requested method [^ ]+ does not exist/i.match?(res.body)
progress_bar.log('The requested method is not supported')
end
end
end

View File

@@ -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?

View File

@@ -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],

View File

@@ -6,7 +6,8 @@ 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
@@ -22,6 +23,7 @@ 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)

View 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

View File

@@ -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

View File

@@ -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 = []

View File

@@ -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')

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -40,9 +40,9 @@ module WPScan
def rce_132_vuln
Vulnerability.new(
'Timthumb <= 1.32 Remote Code Execution',
{ exploitdb: ['17602'] },
'RCE',
'1.33'
references: { exploitdb: ['17602'] },
type: 'RCE',
fixed_in: '1.33'
)
end
@@ -50,12 +50,12 @@ module WPScan
def rce_webshot_vuln
Vulnerability.new(
'Timthumb <= 2.8.13 WebShot Remote Code Execution',
{
references: {
url: ['http://seclists.org/fulldisclosure/2014/Jun/117', 'https://github.com/wpscanteam/wpscan/issues/519'],
cve: '2014-4663'
},
'RCE',
'2.8.14'
type: 'RCE',
fixed_in: '2.8.14'
)
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)

View File

@@ -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

View File

@@ -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

View File

@@ -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 -%>

View File

@@ -1,4 +1,7 @@
| <%= critical_icon %> Title: <%= @v.title %>
<% if @v.cvss -%>
| CVSS: <%= @v.cvss[:score] %> (<%= @v.cvss[:vector] %>)
<% end -%>
<% if @v.fixed_in -%>
| Fixed in: <%= @v.fixed_in %>
<% end -%>

View File

@@ -19,6 +19,9 @@
<% vulns.each_with_index do |v, index| -%>
{
"title": <%= v.title.to_json %>,
<% if v.cvss -%>
"cvss": <%= v.cvss.to_json %>,
<% end -%>
"fixed_in": <%= v.fixed_in.to_json %>,
"references": <%= v.references.to_json %>
}<% unless index == last_index -%>,<% end -%>

View File

@@ -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 -%>
},

View File

@@ -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

View File

@@ -31,7 +31,7 @@ module WPScan
finder_configs(
finder_class,
Regexp.last_match[1] == 'aggressive'
aggressive: Regexp.last_match[1] == 'aggressive'
)
end

View File

@@ -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)

View File

@@ -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)

View File

@@ -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}"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -2,7 +2,7 @@
module WPScan
# References module (which should be included along with the CMSScanner::References)
# to allow the use of the wpvulndb reference
# to allow the use of the wpvulndb reference.
module References
extend ActiveSupport::Concern
@@ -27,7 +27,7 @@ module WPScan
end
def wpvulndb_url(id)
"https://wpvulndb.com/vulnerabilities/#{id}"
"https://wpscan.com/vulnerability/#{id}"
end
end
end

View File

@@ -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

View File

@@ -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

View File

@@ -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}"

View File

@@ -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

View File

@@ -2,5 +2,5 @@
# Version
module WPScan
VERSION = '3.8.0'
VERSION = '3.8.15'
end

View File

@@ -18,9 +18,10 @@ module WPScan
new(
json_data['title'],
references,
json_data['vuln_type'],
json_data['fixed_in']
references: references,
type: json_data['vuln_type'],
fixed_in: json_data['fixed_in'],
cvss: json_data['cvss']&.symbolize_keys
)
end
end

View File

@@ -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
@@ -70,7 +71,7 @@ describe WPScan::Controller::Core do
let(:cli_args) { "#{super()} --no-update" }
it 'raises an error' do
expect { core.update_db_required? }. to raise_error(WPScan::Error::MissingDatabaseFile)
expect { core.update_db_required? }.to raise_error(WPScan::Error::MissingDatabaseFile)
end
end

View File

@@ -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

View File

@@ -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)

View File

@@ -12,7 +12,7 @@ describe WPScan::Finders::DbExports::KnownLocations do
allow(target).to receive(:sub_dir).and_return(false)
end
it 'replace {domain_name} by its value' do
it 'replaces {domain_name} by its value' do
expect(finder.potential_urls(opts).keys).to eql %w[
http://ex.lo/aa/ex.sql
http://ex.lo/aa/wordpress.sql
@@ -27,7 +27,7 @@ describe WPScan::Finders::DbExports::KnownLocations do
context "when #{sub_domain} sub-domain" do
let(:url) { "https://#{sub_domain}.domain.tld" }
it 'replace {domain_name} by its correct value' do
it 'replaces {domain_name} by its correct value' do
expect(finder.potential_urls(opts).keys).to include "#{url}/domain.sql"
end
end
@@ -36,7 +36,7 @@ describe WPScan::Finders::DbExports::KnownLocations do
context 'when multi-level tlds' do
let(:url) { 'https://something.com.tr' }
it 'replace {domain_name} by its correct value' do
it 'replaces {domain_name} by its correct value' do
expect(finder.potential_urls(opts).keys).to include 'https://something.com.tr/something.sql'
end
end
@@ -44,7 +44,7 @@ describe WPScan::Finders::DbExports::KnownLocations do
context 'when multi-level tlds and sub-domain' do
let(:url) { 'https://dev.something.com.tr' }
it 'replace {domain_name} by its correct value' do
it 'replaces {domain_name} by its correct value' do
expect(finder.potential_urls(opts).keys).to include 'https://dev.something.com.tr/something.sql'
end
end
@@ -52,10 +52,18 @@ describe WPScan::Finders::DbExports::KnownLocations do
context 'when some weird stuff' do
let(:url) { 'https://098f6bcd4621d373cade4e832627b4f6.aa-bb-ccc-dd.domain-test.com' }
it 'replace {domain_name} by its correct value' do
it 'replaces {domain_name} by its correct value' do
expect(finder.potential_urls(opts).keys).to include "#{url}/domain-test.sql"
end
end
context 'when a non standard URL' do
let(:url) { 'http://dc-2' }
it 'replaces {domain_name} by its correct value' do
expect(finder.potential_urls(opts).keys).to include "#{url}/dc-2.sql"
end
end
end
describe '#aggressive' do
@@ -94,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

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -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' }

View File

@@ -10,7 +10,7 @@ describe WPScan::Finders::InterestingFindings::Base do
%w[
Readme DebugLog FullPathDisclosure
Multisite MuPlugins Registration UploadDirectoryListing TmmDbMigrate
UploadSQLDump
UploadSQLDump PHPDisabled
]
end

View File

@@ -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

View File

@@ -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) } }

View File

@@ -109,7 +109,7 @@ describe WPScan::Finders::PluginVersion::Readme do
'a-lead-capture-contact-form-and-tab-button-by-awebvoicecom' => '3.1',
'backup-scheduler' => '1.5.9',
'release_date_slash' => '1.0.4'
}. each do |file, version_number|
}.each do |file, version_number|
context "whith #{file}.txt" do
it 'returns the expected version' do
@file = "#{file}.txt"

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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))) }

View 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
@@ -202,11 +202,11 @@ describe WPScan::Model::Plugin do
[
WPScan::Vulnerability.new(
'First Vuln <= 6.3.10 - LFI',
{ wpvulndb: '1' },
'LFI',
'6.3.10'
references: { wpvulndb: '1' },
type: 'LFI',
fixed_in: '6.3.10'
),
WPScan::Vulnerability.new('No Fixed In', wpvulndb: '2')
WPScan::Vulnerability.new('No Fixed In', references: { wpvulndb: '2' })
]
end

View File

@@ -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
@@ -224,11 +230,11 @@ describe WPScan::Model::Theme do
[
WPScan::Vulnerability.new(
'First Vuln',
{ wpvulndb: '1' },
'LFI',
'6.3.10'
references: { wpvulndb: '1' },
type: 'LFI',
fixed_in: '6.3.10'
),
WPScan::Vulnerability.new('No Fixed In', wpvulndb: '2')
WPScan::Vulnerability.new('No Fixed In', references: { wpvulndb: '2' })
]
end

View File

@@ -55,31 +55,15 @@ describe WPScan::Model::WpVersion do
expect(version).to be_vulnerable
end
let(:all_vulns) do
[
WPScan::Vulnerability.new(
'WP 3.8.1 - Vuln 1',
{ wpvulndb: '1' },
'SQLI'
),
WPScan::Vulnerability.new(
'WP 3.8.1 - Vuln 2',
{ url: %w[url-2 url-3], osvdb: %w[10], cve: %w[2014-0166], wpvulndb: '2' },
nil,
'3.8.2'
)
]
end
context 'when a signle vuln' do
let(:number) { '3.8.1' }
let(:number) { '3.8' }
let(:db_data) { vuln_api_data_for('wordpresses/38') }
it 'returns the expected result' do
@expected = [WPScan::Vulnerability.new(
'WP 3.8 - Vuln 1',
{ url: %w[url-4], wpvulndb: '3' },
'AUTHBYPASS'
references: { url: %w[url-4], wpvulndb: '3' },
type: 'AUTHBYPASS'
)]
end
end
@@ -92,14 +76,14 @@ describe WPScan::Model::WpVersion do
@expected = [
WPScan::Vulnerability.new(
'WP 3.8.1 - Vuln 1',
{ wpvulndb: '1' },
'SQLI'
references: { wpvulndb: '1' },
type: 'SQLI',
cvss: { score: '5.4', vector: 'VECTOR' }
),
WPScan::Vulnerability.new(
'WP 3.8.1 - Vuln 2',
{ url: %w[url-2 url-3], cve: %w[2014-0166], wpvulndb: '2' },
nil,
'3.8.2'
references: { url: %w[url-2 url-3], cve: %w[2014-0166], wpvulndb: '2' },
fixed_in: '3.8.2'
)
]
end

File diff suppressed because it is too large Load Diff

View File

@@ -9,7 +9,11 @@
"id" : 1,
"vuln_type" : "SQLI",
"published_date" : null,
"fixed_in" : null
"fixed_in" : null,
"cvss": {
"score": "5.4",
"vector": "VECTOR"
}
},
{
"references" : {

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
{
"name": "liveblog24-live-blogging-tool-cgb-guten-block",
"version": "2.0",
"private": true,
"scripts": {
"start": "cgb-scripts start",
"build": "cgb-scripts build",
"eject": "cgb-scripts eject"
},
"dependencies": {
"cgb-scripts": "1.23.0"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -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&apos;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 &apos;Name&apos; 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 &apos;Email Address&apos; 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 ""

View File

@@ -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 ""

View File

@@ -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 ""

View File

@@ -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 ""

View File

@@ -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 ""

View File

@@ -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 ""

View File

@@ -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 ""

View File

@@ -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 ""

View File

@@ -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 "&#10004; 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 "&#10004; 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 "&#10004; 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 "&#10004; 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 "&#10004; 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 "&#10004; 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 "&#10004; 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&#8230;"
msgstr ""
#: includes/easy-update/ach-plugin-updater.php:42
msgid "Backing up the old version of the plugin&#8230;"
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&#8230;"
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&#8230;"
msgstr ""
#: includes/easy-update/ach-theme-updater.php:42
msgid "Backing up the old version of the theme&#8230;"
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&#8230;"
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 ""

View File

@@ -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 ""

View File

@@ -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 ""

View File

@@ -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 ""

View 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"
}
}

View File

@@ -0,0 +1,111 @@
# Copyright (C) 2020 PRESSMAN
# This file is distributed under the same license as the Admin User Control plugin.
msgid ""
msgstr ""
"Project-Id-Version: Admin User Control 1.0.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/admin-user-"
"control\n"
"POT-Creation-Date: 2020-05-18T02:23:41+00:00\n"
"PO-Revision-Date: 2020-05-18 11:26+0900\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n"
"X-Domain: admin-user-control\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. Plugin Name of the plugin
msgid "Admin User Control"
msgstr "Admin User Control"
#. Description of the plugin
msgid "Control admin user in administration screens in real time."
msgstr "管理画面にログインしているユーザーをリアルタイムで制御します。"
#. Author of the plugin
msgid "PRESSMAN"
msgstr "PRESSMAN"
#. Author URI of the plugin
msgid "https://www.pressman.ne.jp"
msgstr "https://www.pressman.ne.jp"
#: auc-login-monitor.php:22
msgid "Logged in"
msgstr "ログイン"
#: auc-maintenance.php:38 auc-maintenance.php:174
msgid "Maintenance"
msgstr "メンテナンス"
#: auc-maintenance.php:42 auc-maintenance.php:220
msgid "maintenance_start_date"
msgstr "メンテナンス開始日時"
#: auc-maintenance.php:59 auc-maintenance.php:221
msgid "maintenance_end_date"
msgstr "メンテナンス終了日時"
#: auc-maintenance.php:114
msgid "Forced logout after 10 seconds because the maintenance start time"
msgstr "メンテナンスの開始時刻になったため10秒後に強制ログアウトします"
#: auc-maintenance.php:115
msgid "Scheduled maintenance end time"
msgstr "メンテナンス終了予定時間"
#: auc-maintenance.php:175
msgid "Add New Maintenance"
msgstr "メンテナンスを追加"
#: auc-maintenance.php:176
msgid "Edit Maintenance"
msgstr "メンテナンスの編集"
#: auc-maintenance.php:246
msgid "Latest maintenance information"
msgstr "直近のメンテナンス情報"
#: auc-maintenance.php:269
msgid "Click a title to display a detail."
msgstr "タイトルをクリックすると詳細が表示されます。"
#: auc-maintenance.php:287
msgid "No maintenance information"
msgstr "メンテナンス情報がありません"
#: auc-notification.php:26
msgid "New notification"
msgstr "新しいお知らせがあります"
#: auc-notification.php:50
msgid "Notification"
msgstr "お知らせ"
#: auc-notification.php:51
msgid "Add New Notification"
msgstr "お知らせを追加"
#: auc-notification.php:52
msgid "Edit Notification"
msgstr "お知らせの編集"
#: auc-notification.php:70
msgid "Latest notifications"
msgstr "直近のお知らせ"
#: auc-notification.php:86
msgid "Click a title to display a detail. If you read it, mark it as read."
msgstr ""
"タイトルをクリックすると詳細が表示されます。読んだら既読にしてください。"
#: auc-notification.php:91
msgid "Mark as read"
msgstr "既読にする"
#: auc-notification.php:113
msgid "There is no notifications"
msgstr "お知らせがありません"

View File

@@ -0,0 +1,73 @@
# Copyright (C) 2020 Condless
# This file is distributed under the same license as the Advanced Options for WooCommerce plugin.
msgid ""
msgstr ""
"Project-Id-Version: Advanced Options for WooCommerce 1.0.1\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/advanced-options-"
"for-woocommerce\n"
"Language-Team: Condless <info@condless.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2020-04-24 08:53+0300\n"
"PO-Revision-Date: 2020-04-24 08:55+0300\n"
"X-Generator: Poedit 2.3\n"
"X-Domain: advanced-options-for-woocommerce\n"
"Last-Translator: Condless <info@condless.com>\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? "
"2 : 3);\n"
"Language: he_IL\n"
#. Plugin Name of the plugin
msgid "Advanced Options for WooCommerce"
msgstr "אפשרויות מתקדמות לווקומרס"
#. Plugin URI of the plugin
msgid "https://en.condless.com/advanced-options-for-woocommerce/"
msgstr "https://www.condless.com/advanced-options-for-woocommerce/"
#. Description of the plugin
msgid ""
"WooCommerce plugin for more options and customizations. Simple and Easy to "
"use."
msgstr "תוסף לווקומרס לאפשרויות נוספות והתאמה אישית. פשוט וקל לשימוש."
#. Author of the plugin
msgid "Condless"
msgstr "Condless"
#. Author URI of the plugin
msgid "https://www.condless.com/"
msgstr "https://www.condless.com/"
#: advanced-options-for-woocommerce.php:163
msgid "contains letters not from the permitted languages"
msgstr "מכיל אותיות שלא שייכות לשפות המותרות"
#: advanced-options-for-woocommerce.php:200
msgid "Advanced Options"
msgstr "אפשרויות מתקדמות"
#: advanced-options-for-woocommerce.php:235
msgid ""
"Allow only ASCII chars (which prevent non-English letters) in the checkout "
"fields"
msgstr "אפשר רק תווי ASCII (מה שמונע אותיות שלא באנגלית) בשדות התשלום"
#: advanced-options-for-woocommerce.php:241
msgid ""
"Display the VAT amount and the product price include & exlude it in single "
"product page"
msgstr "הצג את סכום המע\"מ ואת מחיר המוצר איתו ובלעדיו בעמוד מוצר"
#: advanced-options-for-woocommerce.php:247
msgid "Display for variable products the attribute name instead of"
msgstr "הצג במוצרים עם וריאיציות את שם התכונה במקום"
#: advanced-options-for-woocommerce.php:253
msgid "Display only products in"
msgstr "הצג מוצרים בלבד ב"
#: advanced-options-for-woocommerce.php:259
msgid "Auto triggered by"
msgstr "פועל אוטומטית כאשר"

View 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"
}
}

View 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"
}
}

View File

@@ -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 ""

Some files were not shown because too many files have changed in this diff Show More