Compare commits
116 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
549ab4aa15 | ||
|
|
b189c71682 | ||
|
|
b909856933 | ||
|
|
5de9084901 | ||
|
|
384ef0b44c | ||
|
|
9307772dc3 | ||
|
|
730c71d103 | ||
|
|
5c710b96f5 | ||
|
|
fe63d0eadf | ||
|
|
a6ca95159a | ||
|
|
677d32fef5 | ||
|
|
14abd05969 | ||
|
|
2e680be34f | ||
|
|
fe29942bf4 | ||
|
|
c8fb717ac1 | ||
|
|
1ff7fcc913 | ||
|
|
419c32702a | ||
|
|
9b63714caa | ||
|
|
f034233607 | ||
|
|
be6fcb51b6 | ||
|
|
e49a682f00 | ||
|
|
23ad3141a1 | ||
|
|
5347e374e0 | ||
|
|
1a49a628de | ||
|
|
8def256d7e | ||
|
|
1cd8e6bad7 | ||
|
|
7a03c0db25 | ||
|
|
e7e3657d1f | ||
|
|
734dfcc9bc | ||
|
|
b0db15099d | ||
|
|
6fbd2369ba | ||
|
|
f4a6674eed | ||
|
|
c0567ad4f5 | ||
|
|
f146ee7e9f | ||
|
|
e606f4ce18 | ||
|
|
945b589a58 | ||
|
|
b18042c4a8 | ||
|
|
a9ff39104b | ||
|
|
f6af6e5880 | ||
|
|
57c6c2d471 | ||
|
|
c362527903 | ||
|
|
a7acbd0738 | ||
|
|
f67192ebce | ||
|
|
c44fde83e4 | ||
|
|
50119285ef | ||
|
|
6216916fed | ||
|
|
2952380200 | ||
|
|
fb42b82e0d | ||
|
|
6d381ab88d | ||
|
|
c5c1de32bc | ||
|
|
8077ad9bcd | ||
|
|
6f22ba350f | ||
|
|
f23d0c0157 | ||
|
|
a9a38edf24 | ||
|
|
a5534f1e49 | ||
|
|
1c6469f384 | ||
|
|
8cfdbc1196 | ||
|
|
88737ca6ea | ||
|
|
45bebc60bd | ||
|
|
4f7dec4635 | ||
|
|
98739cce5a | ||
|
|
0bfbfacc27 | ||
|
|
73cd862e83 | ||
|
|
3305e9b74f | ||
|
|
c37ec0e8d0 | ||
|
|
0b005477c1 | ||
|
|
a1467f8dac | ||
|
|
40d2c34347 | ||
|
|
528270e767 | ||
|
|
f4a04b2387 | ||
|
|
14ed6ae109 | ||
|
|
4fd43694ae | ||
|
|
552d731e6a | ||
|
|
49ac3ef528 | ||
|
|
4379313f12 | ||
|
|
3901949f36 | ||
|
|
a3d8593fed | ||
|
|
7c5baeb9c7 | ||
|
|
c692db5f85 | ||
|
|
9130196ffc | ||
|
|
dad4a65118 | ||
|
|
4c34c2feb7 | ||
|
|
23522f7775 | ||
|
|
82c61398ba | ||
|
|
02871050a6 | ||
|
|
7d3b1fea6b | ||
|
|
24917fa2a6 | ||
|
|
de3d8e4a23 | ||
|
|
1502845d65 | ||
|
|
af3f10f74e | ||
|
|
c100372b31 | ||
|
|
72d699b39a | ||
|
|
7d2b8a2a8b | ||
|
|
8729c68e22 | ||
|
|
e2d48bedd9 | ||
|
|
6b241ce9b3 | ||
|
|
1b68bdb36c | ||
|
|
fb82538441 | ||
|
|
2709d0869a | ||
|
|
343f87bbe7 | ||
|
|
ecbfc6004c | ||
|
|
c57eecc81b | ||
|
|
7ea14dc03f | ||
|
|
4340d27258 | ||
|
|
e911be8f14 | ||
|
|
a4c650cdff | ||
|
|
31a58f8a8f | ||
|
|
ba4f15f111 | ||
|
|
206a913eb9 | ||
|
|
21ba490073 | ||
|
|
2a29e2ed95 | ||
|
|
9517d14fd3 | ||
|
|
3deaa896df | ||
|
|
c117007dc0 | ||
|
|
50baa238b9 | ||
|
|
0e2d771660 |
41
.github/workflows/build.yml
vendored
Normal file
41
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
name: Build
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
ruby: [2.5, 2.6, 2.7]
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: Set up Ruby ${{ matrix.ruby }}
|
||||
uses: actions/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
|
||||
- name: Install GEMs
|
||||
run: |
|
||||
gem install bundler
|
||||
bundle config force_ruby_platform true
|
||||
bundle config path vendor/bundle
|
||||
bundle install --jobs 4 --retry 3
|
||||
|
||||
- name: rubocop
|
||||
run: |
|
||||
bundle exec rubocop
|
||||
|
||||
- name: rspec
|
||||
run: |
|
||||
bundle exec rspec
|
||||
|
||||
- name: Coveralls
|
||||
uses: coverallsapp/github-action@master
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
34
.github/workflows/ruby.yml
vendored
34
.github/workflows/ruby.yml
vendored
@@ -1,34 +0,0 @@
|
||||
name: Ruby
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Set up Ruby 2.6
|
||||
uses: actions/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.6.x
|
||||
- name: Cache gems
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: vendor/bundle
|
||||
key: ${{ runner.os }}-gem-${{ hashFiles('**/wpscan.gemspec') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gem-
|
||||
- name: Build and test
|
||||
run: |
|
||||
gem install bundler
|
||||
bundle config force_ruby_platform true
|
||||
bundle config path vendor/bundle
|
||||
bundle install --jobs 4 --retry 3
|
||||
- name: test
|
||||
run: |
|
||||
bundle exec rspec
|
||||
- name: rubocop
|
||||
run: |
|
||||
bundle exec rubocop
|
||||
22
.rubocop.yml
22
.rubocop.yml
@@ -1,13 +1,23 @@
|
||||
require: rubocop-performance
|
||||
AllCops:
|
||||
TargetRubyVersion: 2.4
|
||||
TargetRubyVersion: 2.5
|
||||
Exclude:
|
||||
- '*.gemspec'
|
||||
- 'vendor/**/*'
|
||||
Layout/EmptyLinesAroundAttributeAccessor:
|
||||
Enabled: true
|
||||
Layout/LineLength:
|
||||
Max: 120
|
||||
Layout/SpaceAroundMethodCallOperator:
|
||||
Enabled: true
|
||||
Lint/DeprecatedOpenSSLConstant:
|
||||
Enabled: true
|
||||
Lint/UriEscapeUnescape:
|
||||
Enabled: false
|
||||
Lint/RaiseException:
|
||||
Enabled: true
|
||||
Lint/StructNewOverride:
|
||||
Enabled: true
|
||||
Metrics/AbcSize:
|
||||
Max: 25
|
||||
Metrics/BlockLength:
|
||||
@@ -27,8 +37,18 @@ Style/ClassVars:
|
||||
Enabled: false
|
||||
Style/Documentation:
|
||||
Enabled: false
|
||||
Style/ExponentialNotation:
|
||||
Enabled: true
|
||||
Style/FormatStringToken:
|
||||
Enabled: false
|
||||
Style/HashEachMethods:
|
||||
Enabled: true
|
||||
Style/HashTransformKeys:
|
||||
Enabled: true
|
||||
Style/HashTransformValues:
|
||||
Enabled: true
|
||||
Style/NumericPredicate:
|
||||
Exclude:
|
||||
- 'app/controllers/vuln_api.rb'
|
||||
Style/SlicingWithRange:
|
||||
Enabled: true
|
||||
|
||||
@@ -1 +1 @@
|
||||
2.6.2
|
||||
2.7.1
|
||||
|
||||
17
.simplecov
17
.simplecov
@@ -1,4 +1,19 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
if ENV['GITHUB_ACTION']
|
||||
require 'simplecov-lcov'
|
||||
|
||||
SimpleCov::Formatter::LcovFormatter.config do |c|
|
||||
c.single_report_path = 'coverage/lcov.info'
|
||||
c.report_with_single_file = true
|
||||
end
|
||||
|
||||
SimpleCov.formatter = SimpleCov::Formatter::LcovFormatter
|
||||
end
|
||||
|
||||
SimpleCov.start do
|
||||
enable_coverage :branch # Only supported for Ruby >= 2.5
|
||||
|
||||
add_filter '/spec/'
|
||||
add_filter 'helper'
|
||||
end
|
||||
end
|
||||
|
||||
17
.travis.yml
17
.travis.yml
@@ -1,17 +0,0 @@
|
||||
language: ruby
|
||||
sudo: false
|
||||
cache: bundler
|
||||
rvm:
|
||||
- 2.4.9
|
||||
- 2.5.7
|
||||
- 2.6.5
|
||||
- 2.7.0
|
||||
matrix:
|
||||
allow_failures:
|
||||
- rvm: 2.7.0
|
||||
script:
|
||||
- bundle exec rubocop
|
||||
- bundle exec rspec
|
||||
notifications:
|
||||
email:
|
||||
- team@wpscan.org
|
||||
31
README.md
31
README.md
@@ -7,15 +7,15 @@
|
||||
<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.org/" title="homepage" target="_blank">Homepage</a> - <a href="https://wpscan.io/" title="wpscan.io" target="_blank">WPScan.io</a> - <a href="https://wpvulndb.com/" title="vulnerability database" target="_blank">Vulnerability Database</a> - <a href="https://wordpress.org/plugins/wpscan/" title="wordpress security plugin" target="_blank">WordPress Security Plugin</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://badge.fury.io/rb/wpscan" target="_blank"><img src="https://badge.fury.io/rb/wpscan.svg"></a>
|
||||
<a href="https://travis-ci.org/wpscanteam/wpscan" target="_blank"><img src="https://travis-ci.org/wpscanteam/wpscan.svg?branch=master"></a>
|
||||
<a href="https://github.com/wpscanteam/wpscan/actions?query=workflow%3ABuild" target="_blank"><img src="https://github.com/wpscanteam/wpscan/workflows/Build/badge.svg"></a>
|
||||
<a href="https://codeclimate.com/github/wpscanteam/wpscan" target="_blank"><img src="https://codeclimate.com/github/wpscanteam/wpscan/badges/gpa.svg"></a>
|
||||
</p>
|
||||
|
||||
@@ -31,7 +31,11 @@
|
||||
- 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.
|
||||
|
||||
### From RubyGems
|
||||
|
||||
```shell
|
||||
gem install wpscan
|
||||
@@ -39,18 +43,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 +69,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.
|
||||
@@ -130,6 +124,11 @@ cli_options:
|
||||
api_token: YOUR_API_TOKEN
|
||||
```
|
||||
|
||||
## Load API Token From ENV (since v3.7.10)
|
||||
|
||||
The API Token will be automatically loaded from the ENV variable `WPSCAN_API_TOKEN` if present. If the `--api-token` CLI option is also provided, the value from the CLI will be used.
|
||||
|
||||
|
||||
## Enumerating usernames
|
||||
|
||||
```shell
|
||||
|
||||
@@ -18,9 +18,7 @@ module WPScan
|
||||
target.content_dir = ParsedCli.wp_content_dir if ParsedCli.wp_content_dir
|
||||
target.plugins_dir = ParsedCli.wp_plugins_dir if ParsedCli.wp_plugins_dir
|
||||
|
||||
return if target.content_dir
|
||||
|
||||
raise Error::WpContentDirNotDetected
|
||||
raise Error::WpContentDirNotDetected unless target.content_dir
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -51,7 +51,7 @@ module WPScan
|
||||
OptSmartList.new(['--plugins-list LIST', 'List of plugins to enumerate'], advanced: true),
|
||||
OptChoice.new(
|
||||
['--plugins-detection MODE',
|
||||
'Use the supplied mode to enumerate Plugins, instead of the global (--detection-mode) mode.'],
|
||||
'Use the supplied mode to enumerate Plugins.'],
|
||||
choices: %w[mixed passive aggressive], normalize: :to_sym, default: :passive
|
||||
),
|
||||
OptBoolean.new(
|
||||
@@ -62,8 +62,7 @@ module WPScan
|
||||
),
|
||||
OptChoice.new(
|
||||
['--plugins-version-detection MODE',
|
||||
'Use the supplied mode to check plugins versions instead of the --detection-mode ' \
|
||||
'or --plugins-detection modes.'],
|
||||
'Use the supplied mode to check plugins\' versions.'],
|
||||
choices: %w[mixed passive aggressive], normalize: :to_sym, default: :mixed
|
||||
),
|
||||
OptInteger.new(
|
||||
|
||||
@@ -4,6 +4,8 @@ module WPScan
|
||||
module Controller
|
||||
# Controller to handle the API token
|
||||
class VulnApi < CMSScanner::Controller::Base
|
||||
ENV_KEY = 'WPSCAN_API_TOKEN'
|
||||
|
||||
def cli_options
|
||||
[
|
||||
OptString.new(['--api-token TOKEN', 'The WPVulnDB API Token to display vulnerability data'])
|
||||
@@ -11,9 +13,9 @@ module WPScan
|
||||
end
|
||||
|
||||
def before_scan
|
||||
return unless ParsedCli.api_token
|
||||
return unless ParsedCli.api_token || ENV.key?(ENV_KEY)
|
||||
|
||||
DB::VulnApi.token = ParsedCli.api_token
|
||||
DB::VulnApi.token = ParsedCli.api_token || ENV[ENV_KEY]
|
||||
|
||||
api_status = DB::VulnApi.status
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -16,8 +16,7 @@ module WPScan
|
||||
target.url(path),
|
||||
confidence: 70,
|
||||
found_by: DIRECT_ACCESS,
|
||||
interesting_entries: target.directory_listing_entries(path),
|
||||
references: { url: 'https://github.com/wpscanteam/wpscan/issues/422' }
|
||||
interesting_entries: target.directory_listing_entries(path)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -11,11 +11,7 @@ module WPScan
|
||||
|
||||
return unless target.debug_log?(path)
|
||||
|
||||
Model::DebugLog.new(
|
||||
target.url(path),
|
||||
confidence: 100, found_by: DIRECT_ACCESS,
|
||||
references: { url: 'https://codex.wordpress.org/Debugging_in_WordPress' }
|
||||
)
|
||||
Model::DebugLog.new(target.url(path), confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -11,12 +11,7 @@ module WPScan
|
||||
|
||||
return unless /DUPLICATOR INSTALL-LOG/.match?(target.head_and_get(path).body)
|
||||
|
||||
Model::DuplicatorInstallerLog.new(
|
||||
target.url(path),
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
references: { url: 'https://www.exploit-db.com/ghdb/3981/' }
|
||||
)
|
||||
Model::DuplicatorInstallerLog.new(target.url(path), confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -15,10 +15,7 @@ module WPScan
|
||||
Model::EmergencyPwdResetScript.new(
|
||||
target.url(path),
|
||||
confidence: /password/i.match?(res.body) ? 100 : 40,
|
||||
found_by: DIRECT_ACCESS,
|
||||
references: {
|
||||
url: 'https://codex.wordpress.org/Resetting_Your_Password#Using_the_Emergency_Password_Reset_Script'
|
||||
}
|
||||
found_by: DIRECT_ACCESS
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -16,8 +16,7 @@ module WPScan
|
||||
target.url(path),
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
interesting_entries: fpd_entries,
|
||||
references: { url: 'https://www.owasp.org/index.php/Full_Path_Disclosure' }
|
||||
interesting_entries: fpd_entries
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -9,20 +9,14 @@ module WPScan
|
||||
def passive(_opts = {})
|
||||
pattern = %r{#{target.content_dir}/mu\-plugins/}i
|
||||
|
||||
target.in_scope_uris(target.homepage_res) do |uri|
|
||||
target.in_scope_uris(target.homepage_res, '(//@href|//@src)[contains(., "mu-plugins")]') do |uri|
|
||||
next unless uri.path&.match?(pattern)
|
||||
|
||||
url = target.url('wp-content/mu-plugins/')
|
||||
|
||||
target.mu_plugins = true
|
||||
|
||||
return Model::MuPlugins.new(
|
||||
url,
|
||||
confidence: 70,
|
||||
found_by: 'URLs In Homepage (Passive Detection)',
|
||||
to_s: "This site has 'Must Use Plugins': #{url}",
|
||||
references: { url: 'http://codex.wordpress.org/Must_Use_Plugins' }
|
||||
)
|
||||
return Model::MuPlugins.new(url, confidence: 70, found_by: 'URLs In Homepage (Passive Detection)')
|
||||
end
|
||||
nil
|
||||
end
|
||||
@@ -37,13 +31,7 @@ module WPScan
|
||||
|
||||
target.mu_plugins = true
|
||||
|
||||
Model::MuPlugins.new(
|
||||
url,
|
||||
confidence: 80,
|
||||
found_by: DIRECT_ACCESS,
|
||||
to_s: "This site has 'Must Use Plugins': #{url}",
|
||||
references: { url: 'http://codex.wordpress.org/Must_Use_Plugins' }
|
||||
)
|
||||
Model::MuPlugins.new(url, confidence: 80, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -17,13 +17,7 @@ module WPScan
|
||||
|
||||
target.multisite = true
|
||||
|
||||
Model::Multisite.new(
|
||||
url,
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
to_s: 'This site seems to be a multisite',
|
||||
references: { url: 'http://codex.wordpress.org/Glossary#Multisite' }
|
||||
)
|
||||
Model::Multisite.new(url, confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -20,12 +20,7 @@ module WPScan
|
||||
|
||||
target.registration_enabled = true
|
||||
|
||||
Model::Registration.new(
|
||||
res.effective_url,
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
to_s: "Registration is enabled: #{res.effective_url}"
|
||||
)
|
||||
Model::Registration.new(res.effective_url, confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -13,12 +13,7 @@ module WPScan
|
||||
|
||||
return unless res.code == 200 && res.headers['Content-Type'] =~ %r{\Aapplication/zip}i
|
||||
|
||||
Model::TmmDbMigrate.new(
|
||||
url,
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
references: { packetstorm: 131_957 }
|
||||
)
|
||||
Model::TmmDbMigrate.new(url, confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -13,12 +13,7 @@ module WPScan
|
||||
|
||||
url = target.url(path)
|
||||
|
||||
Model::UploadDirectoryListing.new(
|
||||
url,
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
to_s: "Upload directory has listing enabled: #{url}"
|
||||
)
|
||||
Model::UploadDirectoryListing.new(url, confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -14,11 +14,7 @@ module WPScan
|
||||
|
||||
return unless SQL_PATTERN.match?(res.body)
|
||||
|
||||
Model::UploadSQLDump.new(
|
||||
target.url(path),
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS
|
||||
)
|
||||
Model::UploadSQLDump.new(target.url(path), confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -11,17 +11,7 @@ module WPScan
|
||||
|
||||
return unless res.code == 200
|
||||
|
||||
Model::WPCron.new(
|
||||
wp_cron_url,
|
||||
confidence: 60,
|
||||
found_by: DIRECT_ACCESS,
|
||||
references: {
|
||||
url: [
|
||||
'https://www.iplocation.net/defend-wordpress-from-ddos',
|
||||
'https://github.com/wpscanteam/wpscan/issues/1299'
|
||||
]
|
||||
}
|
||||
)
|
||||
Model::WPCron.new(wp_cron_url, confidence: 60, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
|
||||
def wp_cron_url
|
||||
|
||||
@@ -20,7 +20,7 @@ module WPScan
|
||||
end
|
||||
|
||||
def passive_from_css_href(res, opts)
|
||||
target.in_scope_uris(res, '//style/@src|//link/@href') do |uri|
|
||||
target.in_scope_uris(res, '//link/@href[contains(., "style.css")]') do |uri|
|
||||
next unless uri.path =~ %r{/themes/([^\/]+)/style.css\z}i
|
||||
|
||||
return create_theme(Regexp.last_match[1], uri.to_s, opts)
|
||||
|
||||
@@ -16,7 +16,7 @@ module WPScan
|
||||
end
|
||||
|
||||
def errored_response?(response)
|
||||
response.code != 200 && response.body !~ /login_error/i
|
||||
response.code != 200 && response.body !~ /Incorrect username or password/i
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -75,17 +75,20 @@ module WPScan
|
||||
progress_bar.stop
|
||||
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 + ((passwords.size - wordlist_index) / 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 +97,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
|
||||
|
||||
@@ -68,11 +68,9 @@ module WPScan
|
||||
extracted_versions = extracted_versions.select { |x| x =~ /[0-9]+/ }
|
||||
|
||||
sorted = extracted_versions.sort do |x, y|
|
||||
begin
|
||||
Gem::Version.new(x) <=> Gem::Version.new(y)
|
||||
rescue StandardError
|
||||
0
|
||||
end
|
||||
Gem::Version.new(x) <=> Gem::Version.new(y)
|
||||
rescue StandardError
|
||||
0
|
||||
end
|
||||
|
||||
sorted.last
|
||||
|
||||
@@ -71,11 +71,13 @@ module WPScan
|
||||
return username, 'Display Name', 50 if username
|
||||
end
|
||||
|
||||
# @param [ String ] url
|
||||
# @param [ String, Addressable::URI ] uri
|
||||
#
|
||||
# @return [ String, nil ]
|
||||
def username_from_author_url(url)
|
||||
url[%r{/author/([^/\b]+)/?}i, 1]
|
||||
def username_from_author_url(uri)
|
||||
uri = Addressable::URI.parse(uri) unless uri.is_a?(Addressable::URI)
|
||||
|
||||
uri.path[%r{/author/([^/\b]+)/?}i, 1]
|
||||
end
|
||||
|
||||
# @param [ Typhoeus::Response ] res
|
||||
@@ -83,12 +85,12 @@ module WPScan
|
||||
# @return [ String, nil ] The username found
|
||||
def username_from_response(res)
|
||||
# Permalink enabled
|
||||
target.in_scope_uris(res, '//link/@href|//a/@href') do |uri|
|
||||
username = username_from_author_url(uri.to_s)
|
||||
target.in_scope_uris(res, '//@href[contains(., "author/")]') do |uri|
|
||||
username = username_from_author_url(uri)
|
||||
return username if username
|
||||
end
|
||||
|
||||
# No permalink
|
||||
# No permalink, TODO Maybe use xpath to extract the classes ?
|
||||
res.body[/<body class="archive author author-([^\s]+)[ "]/i, 1]
|
||||
end
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ module WPScan
|
||||
def potential_usernames(res)
|
||||
usernames = []
|
||||
|
||||
target.in_scope_uris(res, '//a/@href') do |uri, node|
|
||||
target.in_scope_uris(res, '//a/@href[contains(., "author")]') do |uri, node|
|
||||
if uri.path =~ %r{/author/([^/\b]+)/?\z}i
|
||||
usernames << [Regexp.last_match[1], 'Author Pattern', 100]
|
||||
elsif /author=[0-9]+/.match?(uri.query)
|
||||
|
||||
@@ -21,7 +21,7 @@ module WPScan
|
||||
loop do
|
||||
current_page += 1
|
||||
|
||||
res = Typhoeus.get(api_url, params: { per_page: MAX_PER_PAGE, page: current_page })
|
||||
res = Browser.get(api_url, params: { per_page: MAX_PER_PAGE, page: current_page })
|
||||
|
||||
total_pages ||= res.headers['X-WP-TotalPages'].to_i
|
||||
|
||||
|
||||
@@ -8,11 +8,15 @@ module WPScan
|
||||
# @param [ String ] type plugins / themes
|
||||
# @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 homepage
|
||||
# @return [ Array<String> ] The plugins/themes detected in the href, src attributes of the page
|
||||
def items_from_links(type, uniq = true)
|
||||
found = []
|
||||
xpath = format(
|
||||
'(//@href|//@src|//@data-src)[contains(., "%s")]',
|
||||
type == 'plugins' ? target.plugins_dir : target.content_dir
|
||||
)
|
||||
|
||||
target.in_scope_uris(page_res) do |uri|
|
||||
target.in_scope_uris(page_res, xpath) do |uri|
|
||||
next unless uri.to_s =~ item_attribute_pattern(type)
|
||||
|
||||
slug = Regexp.last_match[1]&.strip
|
||||
|
||||
@@ -28,7 +28,7 @@ module WPScan
|
||||
end
|
||||
|
||||
def passive_urls_xpath
|
||||
'//a[contains(@href, "rdf")]/@href'
|
||||
'//a[contains(@href, "/rdf")]/@href'
|
||||
end
|
||||
|
||||
def aggressive_urls(_opts = {})
|
||||
|
||||
@@ -8,45 +8,110 @@ module WPScan
|
||||
end
|
||||
|
||||
#
|
||||
# Empty classes for the #type to be correctly displayed (as taken from the self.class from the parent)
|
||||
# Some classes are empty for the #type to be correctly displayed (as taken from the self.class from the parent)
|
||||
#
|
||||
class BackupDB < InterestingFinding
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://github.com/wpscanteam/wpscan/issues/422'] }
|
||||
end
|
||||
end
|
||||
|
||||
class DebugLog < InterestingFinding
|
||||
# @ return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://codex.wordpress.org/Debugging_in_WordPress'] }
|
||||
end
|
||||
end
|
||||
|
||||
class DuplicatorInstallerLog < InterestingFinding
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://www.exploit-db.com/ghdb/3981/'] }
|
||||
end
|
||||
end
|
||||
|
||||
class EmergencyPwdResetScript < InterestingFinding
|
||||
def references
|
||||
@references ||= {
|
||||
url: ['https://codex.wordpress.org/Resetting_Your_Password#Using_the_Emergency_Password_Reset_Script']
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
class FullPathDisclosure < InterestingFinding
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://www.owasp.org/index.php/Full_Path_Disclosure'] }
|
||||
end
|
||||
end
|
||||
|
||||
class MuPlugins < InterestingFinding
|
||||
# @return [ String ]
|
||||
def to_s
|
||||
@to_s ||= "This site has 'Must Use Plugins': #{url}"
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['http://codex.wordpress.org/Must_Use_Plugins'] }
|
||||
end
|
||||
end
|
||||
|
||||
class Multisite < InterestingFinding
|
||||
# @return [ String ]
|
||||
def to_s
|
||||
@to_s ||= 'This site seems to be a multisite'
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['http://codex.wordpress.org/Glossary#Multisite'] }
|
||||
end
|
||||
end
|
||||
|
||||
class Readme < InterestingFinding
|
||||
end
|
||||
|
||||
class Registration < InterestingFinding
|
||||
# @return [ String ]
|
||||
def to_s
|
||||
@to_s ||= "Registration is enabled: #{url}"
|
||||
end
|
||||
end
|
||||
|
||||
class TmmDbMigrate < InterestingFinding
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { packetstorm: [131_957] }
|
||||
end
|
||||
end
|
||||
|
||||
class UploadDirectoryListing < InterestingFinding
|
||||
# @return [ String ]
|
||||
def to_s
|
||||
@to_s ||= "Upload directory has listing enabled: #{url}"
|
||||
end
|
||||
end
|
||||
|
||||
class UploadSQLDump < InterestingFinding
|
||||
end
|
||||
|
||||
class WPCron < InterestingFinding
|
||||
# @return [ String ]
|
||||
def to_s
|
||||
@to_s ||= "The external WP-Cron seems to be enabled: #{url}"
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= {
|
||||
url: [
|
||||
'https://www.iplocation.net/defend-wordpress-from-ddos',
|
||||
'https://github.com/wpscanteam/wpscan/issues/1299'
|
||||
]
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ module WPScan
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
{
|
||||
@references ||= {
|
||||
url: ['http://codex.wordpress.org/XML-RPC_Pingback_API'],
|
||||
metasploit: [
|
||||
'auxiliary/scanner/http/wordpress_ghost_scanner',
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<% if @users.empty? -%>
|
||||
<%= notice_icon %> No Valid Passwords Found.
|
||||
<% else -%>
|
||||
<%= notice_icon %> Valid Combinations Found:
|
||||
<%= critical_icon %> Valid Combinations Found:
|
||||
<% @users.each do |user| -%>
|
||||
| Username: <%= user.username %>, Password: <%= user.password %>
|
||||
<% end -%>
|
||||
|
||||
@@ -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 -%>
|
||||
|
||||
@@ -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 -%>
|
||||
|
||||
@@ -67,13 +67,13 @@ module WPScan
|
||||
# @return [ Hash ] The params for Typhoeus::Request
|
||||
# @note Those params can't be overriden by CLI options
|
||||
def request_params
|
||||
@request_params ||= {
|
||||
@request_params ||= Browser.instance.default_connect_request_params.merge(
|
||||
timeout: 600,
|
||||
connecttimeout: 300,
|
||||
accept_encoding: 'gzip, deflate',
|
||||
cache_ttl: 0,
|
||||
headers: { 'User-Agent' => Browser.instance.default_user_agent, 'Referer' => nil }
|
||||
}
|
||||
headers: { 'User-Agent' => Browser.instance.default_user_agent }
|
||||
)
|
||||
end
|
||||
|
||||
# @return [ String ] The raw file URL associated with the given filename
|
||||
@@ -85,7 +85,7 @@ module WPScan
|
||||
def remote_file_checksum(filename)
|
||||
url = "#{remote_file_url(filename)}.sha512"
|
||||
|
||||
res = Browser.get(url, request_params)
|
||||
res = Typhoeus.get(url, request_params)
|
||||
raise Error::Download, res if res.timed_out? || res.code != 200
|
||||
|
||||
res.body.chomp
|
||||
@@ -126,7 +126,7 @@ module WPScan
|
||||
file_path = local_file_path(filename)
|
||||
file_url = remote_file_url(filename)
|
||||
|
||||
res = Browser.get(file_url, request_params)
|
||||
res = Typhoeus.get(file_url, request_params)
|
||||
raise Error::Download, res if res.timed_out? || res.code != 200
|
||||
|
||||
File.open(file_path, 'wb') { |f| f.write(res.body) }
|
||||
@@ -139,24 +139,22 @@ module WPScan
|
||||
updated = []
|
||||
|
||||
FILES.each do |filename|
|
||||
begin
|
||||
db_checksum = remote_file_checksum(filename)
|
||||
db_checksum = remote_file_checksum(filename)
|
||||
|
||||
# Checking if the file needs to be updated
|
||||
next if File.exist?(local_file_path(filename)) && db_checksum == local_file_checksum(filename)
|
||||
# Checking if the file needs to be updated
|
||||
next if File.exist?(local_file_path(filename)) && db_checksum == local_file_checksum(filename)
|
||||
|
||||
create_backup(filename)
|
||||
dl_checksum = download(filename)
|
||||
create_backup(filename)
|
||||
dl_checksum = download(filename)
|
||||
|
||||
raise "#{filename}: checksums do not match" unless dl_checksum == db_checksum
|
||||
raise Error::ChecksumsMismatch, filename unless dl_checksum == db_checksum
|
||||
|
||||
updated << filename
|
||||
rescue StandardError => e
|
||||
restore_backup(filename)
|
||||
raise e
|
||||
ensure
|
||||
delete_backup(filename) if File.exist?(backup_file_path(filename))
|
||||
end
|
||||
updated << filename
|
||||
rescue StandardError => e
|
||||
restore_backup(filename)
|
||||
raise e
|
||||
ensure
|
||||
delete_backup(filename) if File.exist?(backup_file_path(filename))
|
||||
end
|
||||
|
||||
File.write(last_update_file, Time.now)
|
||||
|
||||
@@ -21,8 +21,10 @@ module WPScan
|
||||
# @return [ Hash ]
|
||||
def self.get(path, params = {})
|
||||
return {} unless token
|
||||
return {} if path.end_with?('/latest') # Remove this when api/v4 is up
|
||||
|
||||
res = Browser.get(uri.join(path), params.merge(request_params))
|
||||
# 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 JSON.parse(res.body) if NON_ERROR_CODES.include?(res.code)
|
||||
@@ -64,15 +66,14 @@ module WPScan
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def self.request_params
|
||||
{
|
||||
# @note Those params can not be overriden by CLI options
|
||||
def self.default_request_params
|
||||
Browser.instance.default_connect_request_params.merge(
|
||||
headers: {
|
||||
'Host' => uri.host, # Reset in case user provided a --vhost for the target
|
||||
'Referer' => nil, # Removes referer set by the cmsscanner to the target url
|
||||
'User-Agent' => Browser.instance.default_user_agent,
|
||||
'Authorization' => "Token token=#{token}"
|
||||
}
|
||||
}
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -8,5 +8,17 @@ module WPScan
|
||||
'Update required, you can not run a scan if a database file is missing.'
|
||||
end
|
||||
end
|
||||
|
||||
class ChecksumsMismatch < Standard
|
||||
attr_reader :db_file
|
||||
|
||||
def initialize(db_file)
|
||||
@db_file = db_file
|
||||
end
|
||||
|
||||
def to_s
|
||||
"#{db_file}: checksums do not match. Please try again in a few minutes."
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -17,7 +17,7 @@ module WPScan
|
||||
end
|
||||
|
||||
# Needed to have inheritance of the @child_class_constants
|
||||
# If inheritance is not needed, then the #child_class_constant can be used in the classe definition, ie
|
||||
# If inheritance is not needed, then the #child_class_constant can be used in the class definition, ie
|
||||
# child_class_constant :FILES, PATTERN: /aaa/i
|
||||
# @return [ Hash ]
|
||||
def self.child_class_constants
|
||||
|
||||
@@ -21,13 +21,11 @@ module WPScan
|
||||
parsers = ALLOWED_PARSERS.include?(self.class::PARSER) ? [self.class::PARSER] : ALLOWED_PARSERS
|
||||
|
||||
parsers.each do |parser|
|
||||
begin
|
||||
parsed = parser.respond_to?(:safe_load) ? parser.safe_load(body) : parser.load(body)
|
||||
parsed = parser.respond_to?(:safe_load) ? parser.safe_load(body) : parser.load(body)
|
||||
|
||||
return parsed if parsed.is_a?(Hash) || parsed.is_a?(Array)
|
||||
rescue StandardError
|
||||
next
|
||||
end
|
||||
return parsed if parsed.is_a?(Hash) || parsed.is_a?(Array)
|
||||
rescue StandardError
|
||||
next
|
||||
end
|
||||
|
||||
nil # Make sure nil is returned in case none of the parsers managed to parse the body correctly
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -32,8 +32,12 @@ module WPScan
|
||||
|
||||
if %i[mixed aggressive].include?(detection_mode)
|
||||
%w[wp-admin/install.php wp-login.php].each do |path|
|
||||
return true if in_scope_uris(Browser.get_and_follow_location(url(path))).any? do |uri|
|
||||
WORDPRESS_PATTERN.match?(uri.path)
|
||||
res = Browser.get_and_follow_location(url(path))
|
||||
|
||||
next unless res.code == 200
|
||||
|
||||
in_scope_uris(res, '//link/@href|//script/@src') do |uri|
|
||||
return true if WORDPRESS_PATTERN.match?(uri.path)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -44,7 +48,7 @@ module WPScan
|
||||
# @param [ Typhoeus::Response ] response
|
||||
# @return [ Boolean ]
|
||||
def wordpress_from_meta_comments_or_scripts?(response)
|
||||
in_scope_uris(response) do |uri|
|
||||
in_scope_uris(response, '//link/@href|//script/@src') do |uri|
|
||||
return true if WORDPRESS_PATTERN.match?(uri.path) || WP_JSON_OEMBED_PATTERN.match?(uri.path)
|
||||
end
|
||||
|
||||
@@ -100,8 +104,9 @@ module WPScan
|
||||
|
||||
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) do |uri|
|
||||
uris_from_page(homepage_res, xpath) do |uri|
|
||||
return true if uri.to_s.match?(pattern)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -105,9 +105,10 @@ module WPScan
|
||||
|
||||
# url_pattern is from CMSScanner::Target
|
||||
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|
|
||||
in_scope_uris(page_res) do |uri|
|
||||
in_scope_uris(page_res, xpath) do |uri|
|
||||
return @sub_dir = Regexp.last_match[1] if uri.to_s.match(pattern)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
|
||||
# Version
|
||||
module WPScan
|
||||
VERSION = '3.7.6'
|
||||
VERSION = '3.8.2'
|
||||
end
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -70,7 +70,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
|
||||
|
||||
|
||||
@@ -74,20 +74,40 @@ describe WPScan::Controller::VulnApi do
|
||||
context 'when limited requests' do
|
||||
let(:requests) { 100 }
|
||||
|
||||
it 'does not raise an error' do
|
||||
it 'sets the token and does not raise an error' do
|
||||
expect { controller.before_scan }.to_not raise_error
|
||||
|
||||
expect(WPScan::DB::VulnApi.token).to eql 'token'
|
||||
end
|
||||
|
||||
context 'when unlimited requests' do
|
||||
let(:requests) { 'Unlimited' }
|
||||
|
||||
it 'does not raise an error' do
|
||||
it 'sets the token and does not raise an error' do
|
||||
expect { controller.before_scan }.to_not raise_error
|
||||
|
||||
expect(WPScan::DB::VulnApi.token).to eql 'token'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when token in ENV' do
|
||||
before do
|
||||
ENV[described_class::ENV_KEY] = 'token-from-env'
|
||||
|
||||
expect(WPScan::DB::VulnApi)
|
||||
.to receive(:status)
|
||||
.and_return('success' => true, 'plan' => 'free', 'requests_remaining' => 'Unlimited')
|
||||
end
|
||||
|
||||
it 'sets the token and does not raise an error' do
|
||||
expect { controller.before_scan }.to_not raise_error
|
||||
|
||||
expect(WPScan::DB::VulnApi.token).to eql 'token-from-env'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -6,8 +6,55 @@ describe WPScan::Finders::InterestingFindings::MuPlugins do
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:fixtures) { FINDERS_FIXTURES.join('interesting_findings', 'mu_plugins') }
|
||||
|
||||
before do
|
||||
expect(target).to receive(:content_dir).at_least(1).and_return('wp-content')
|
||||
end
|
||||
|
||||
describe '#passive' do
|
||||
xit
|
||||
before { stub_request(:get, url).to_return(body: body) }
|
||||
|
||||
context 'when no uris' do
|
||||
let(:body) { '' }
|
||||
|
||||
its(:passive) { should be nil }
|
||||
end
|
||||
|
||||
context 'when a large amount of unrelated uris' do
|
||||
let(:body) do
|
||||
Array.new(250) { |i| "<a href='#{url}#{i}.html'>Some Link</a><img src='#{url}img-#{i}.png'/>" }.join("\n")
|
||||
end
|
||||
|
||||
it 'should not take a while to process the page' do
|
||||
time_start = Time.now
|
||||
result = finder.passive
|
||||
time_end = Time.now
|
||||
|
||||
expect(result).to be nil
|
||||
expect(time_end - time_start).to be < 1
|
||||
end
|
||||
end
|
||||
|
||||
context 'when uris' do
|
||||
let(:body) { File.read(fixtures.join(fixture)) }
|
||||
|
||||
context 'when none matching' do
|
||||
let(:fixture) { 'no_match.html' }
|
||||
|
||||
its(:passive) { should be nil }
|
||||
end
|
||||
|
||||
context 'when matching via href' do
|
||||
let(:fixture) { 'match_href.html' }
|
||||
|
||||
its(:passive) { should be_a WPScan::Model::MuPlugins }
|
||||
end
|
||||
|
||||
context 'when matching from src' do
|
||||
let(:fixture) { 'match_src.html' }
|
||||
|
||||
its(:passive) { should be_a WPScan::Model::MuPlugins }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#aggressive' do
|
||||
|
||||
49
spec/app/finders/passwords/xml_rpc_spec.rb
Normal file
49
spec/app/finders/passwords/xml_rpc_spec.rb
Normal file
@@ -0,0 +1,49 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe WPScan::Finders::Passwords::XMLRPC do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Model::XMLRPC.new(url) }
|
||||
let(:url) { 'http://ex.lo/xmlrpc.php' }
|
||||
|
||||
RESPONSE_403_BODY = '<?xml version="1.0" encoding="UTF-8"?>
|
||||
<methodResponse>
|
||||
<fault>
|
||||
<value>
|
||||
<struct>
|
||||
<member>
|
||||
<name>faultCode</name>
|
||||
<value><int>403</int></value>
|
||||
</member>
|
||||
<member>
|
||||
<name>faultString</name>
|
||||
<value><string>Incorrect username or password.</string></value>
|
||||
</member>
|
||||
</struct>
|
||||
</value>
|
||||
</fault>
|
||||
</methodResponse>'
|
||||
|
||||
describe '#attack' do
|
||||
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])
|
||||
end
|
||||
|
||||
let(:users) { %w[admin].map { |username| WPScan::Model::User.new(username) } }
|
||||
|
||||
context 'when status = 200' do
|
||||
let(:status) { 200 }
|
||||
|
||||
its('progress_bar.log') { should be_empty }
|
||||
end
|
||||
|
||||
context 'when status = 403' do
|
||||
let(:status) { 403 }
|
||||
|
||||
its('progress_bar.log') { should be_empty }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -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"
|
||||
|
||||
@@ -19,7 +19,7 @@ describe WPScan::Finders::Users::AuthorIdBruteForcing do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#potential_username' do
|
||||
describe '#username_from_response' do
|
||||
[
|
||||
'4.1.1', '4.1.1-permalink',
|
||||
'3.0', '3.0-permalink',
|
||||
@@ -32,6 +32,19 @@ describe WPScan::Finders::Users::AuthorIdBruteForcing do
|
||||
expect(finder.username_from_response(res)).to eql 'admin'
|
||||
end
|
||||
end
|
||||
|
||||
context 'when a lot of unrelated links' do
|
||||
it 'should not take a while to process the page' do
|
||||
body = Array.new(300) { |i| "<a href='#{url}#{i}.html'>Some Link</a>" }.join("\n")
|
||||
body << '<a href="https://wp.lab/author/test/">Link</a>'
|
||||
|
||||
time_start = Time.now
|
||||
expect(finder.username_from_response(Typhoeus::Response.new(body: body))).to eql 'test'
|
||||
time_end = Time.now
|
||||
|
||||
expect(time_end - time_start).to be < 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#display_name_from_body' do
|
||||
|
||||
@@ -16,12 +16,31 @@ describe WPScan::Finders::Users::AuthorPosts do
|
||||
|
||||
results = finder.potential_usernames(res)
|
||||
|
||||
expect(results).to eql([
|
||||
['admin', 'Author Pattern', 100],
|
||||
['admin display_name', 'Display Name', 30],
|
||||
['editor', 'Author Pattern', 100],
|
||||
['editor', 'Display Name', 30]
|
||||
])
|
||||
expect(results).to eql [
|
||||
['admin', 'Author Pattern', 100],
|
||||
['admin display_name', 'Display Name', 30],
|
||||
['editor', 'Author Pattern', 100],
|
||||
['editor', 'Display Name', 30]
|
||||
]
|
||||
end
|
||||
|
||||
context 'when a lot of unrelated uris' do
|
||||
it 'should not take a while to process the page' do
|
||||
body = Array.new(300) { |i| "<a href='#{url}#{i}.html'>Some Link</a>" }.join("\n")
|
||||
body << "<a href='#{url}author/admin/'>Other Link</a>"
|
||||
body << "<a href='#{url}?author=2'>user display name</a>"
|
||||
|
||||
time_start = Time.now
|
||||
results = finder.potential_usernames(Typhoeus::Response.new(body: body))
|
||||
time_end = Time.now
|
||||
|
||||
expect(results).to eql [
|
||||
['admin', 'Author Pattern', 100],
|
||||
['user display name', 'Display Name', 30]
|
||||
]
|
||||
|
||||
expect(time_end - time_start).to be < 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -224,11 +224,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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
2
spec/cache/.gitignore
vendored
2
spec/cache/.gitignore
vendored
@@ -1,4 +1,4 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
||||
!.gitignore
|
||||
|
||||
9426
spec/fixtures/db/dynamic_finders.yml
vendored
9426
spec/fixtures/db/dynamic_finders.yml
vendored
File diff suppressed because it is too large
Load Diff
@@ -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" : {
|
||||
|
||||
3811
spec/fixtures/dynamic_finders/expected.yml
vendored
3811
spec/fixtures/dynamic_finders/expected.yml
vendored
File diff suppressed because it is too large
Load Diff
13
spec/fixtures/dynamic_finders/plugin_version/24liveblog/composer_file/package.json
vendored
Normal file
13
spec/fixtures/dynamic_finders/plugin_version/24liveblog/composer_file/package.json
vendored
Normal 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"
|
||||
}
|
||||
}
|
||||
1418
spec/fixtures/dynamic_finders/plugin_version/2fas/translation_file/languages/2fas-pt_BR.po
vendored
Normal file
1418
spec/fixtures/dynamic_finders/plugin_version/2fas/translation_file/languages/2fas-pt_BR.po
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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 "お知らせがありません"
|
||||
@@ -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 "פועל אוטומטית כאשר"
|
||||
@@ -0,0 +1,54 @@
|
||||
# Copyright (C) 2020 Mainul Hassan Main
|
||||
# This file is distributed under the GPLv3.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Advanced WP Table 1.0.1\n"
|
||||
"Report-Msgid-Bugs-To: "
|
||||
"https://wordpress.org/support/plugin/advanced-wp-table\n"
|
||||
"POT-Creation-Date: 2020-03-15 09:43:34+00:00\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"X-Generator: grunt-wp-i18n 0.5.4\n"
|
||||
"X-Poedit-KeywordsList: "
|
||||
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
||||
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
||||
"Language: en\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Poedit-Country: United States\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-Basepath: ../\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
"X-Poedit-Bookmarks: \n"
|
||||
"X-Textdomain-Support: yes\n"
|
||||
|
||||
#. Plugin Name of the plugin/theme
|
||||
msgid "Advanced WP Table"
|
||||
msgstr ""
|
||||
|
||||
#: advanced-wp-table.php:254
|
||||
msgid "Advanced WP Table plugin requires WordPress version 5.0 or greater."
|
||||
msgstr ""
|
||||
|
||||
#: includes/settings.php:25 includes/settings.php:26
|
||||
msgid "Tables"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "https://wordpress.org/plugins/advanced-wp-table"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid "Create responsive tables using Gutenberg."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "Mainul Hassan Main"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "https://mainulhassan.info"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,2 @@
|
||||
February 20, 2020 – Version 1.0
|
||||
- Version 1.0 Initial Release
|
||||
61
spec/fixtures/dynamic_finders/plugin_version/aiaibot/translation_file/languages/aiaibot.pot
vendored
Normal file
61
spec/fixtures/dynamic_finders/plugin_version/aiaibot/translation_file/languages/aiaibot.pot
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
# Copyright (C) 2020 aiaibot
|
||||
# This file is distributed under the same license as the aiaibot plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: aiaibot 1.0.3\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/aiaibot\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-05-20T09:25:54+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: aiaibot\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
#. Author of the plugin
|
||||
msgid "aiaibot"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://wordpress.org/plugins/aiaibot/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Integrate your aiaibot chatbot."
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://app.aiaibot.com"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:84
|
||||
msgid "Integration Code"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:92
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:112
|
||||
msgid "Implement your chatbot on your Wordpress page"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:123
|
||||
msgid "Config id is not valid."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:147
|
||||
msgid "Chatbot Integration Settings"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %s: url to the app.aiaibot
|
||||
#: admin/class-aiaibot-admin.php:155
|
||||
msgid "Get the integration code on %s."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:157
|
||||
msgid "Publish Chatbot"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,7 @@
|
||||
== Changelog ==
|
||||
|
||||
= 0.5.1 - 2020-04-14 =
|
||||
* fixed performance problem on sites with large amount of posts
|
||||
|
||||
= 0.5.0 - 2020-04-14 =
|
||||
* Initial public release
|
||||
7
spec/fixtures/dynamic_finders/plugin_version/apcu-manager/change_log/CHANGELOG.md
vendored
Normal file
7
spec/fixtures/dynamic_finders/plugin_version/apcu-manager/change_log/CHANGELOG.md
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# Changelog
|
||||
All notable changes to **APCu Manager** are documented in this *changelog*.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and **APCu Manager** adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.0.0] - 2020-01-09
|
||||
### Initial release
|
||||
41
spec/fixtures/dynamic_finders/plugin_version/apijoin-gumroad/composer_file/package.json
vendored
Normal file
41
spec/fixtures/dynamic_finders/plugin_version/apijoin-gumroad/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "agu-apijoin",
|
||||
"version": "1.0.0",
|
||||
"description": "test",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"build": "wp-scripts build",
|
||||
"check-engines": "wp-scripts check-engines",
|
||||
"check-licenses": "wp-scripts check-licenses",
|
||||
"format:js": "wp-scripts format-js",
|
||||
"lint:css": "wp-scripts lint-style",
|
||||
"lint:js": "wp-scripts lint-js",
|
||||
"lint:md:docs": "wp-scripts lint-md-docs",
|
||||
"lint:md:js": "wp-scripts lint-md-js",
|
||||
"lint:pkg-json": "wp-scripts lint-pkg-json",
|
||||
"packages-update": "wp-scripts packages-update",
|
||||
"start": "wp-scripts start",
|
||||
"test:e2e": "wp-scripts test-e2e",
|
||||
"test:unit": "wp-scripts test-unit-js"
|
||||
},
|
||||
"author": "Miguras",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@wordpress/scripts": "^7.1.0",
|
||||
"css-loader": "^3.4.2",
|
||||
"html-react-parser": "^0.10.3",
|
||||
"image-webpack-loader": "^6.0.0",
|
||||
"react-responsive-carousel": "^3.1.51",
|
||||
"react-slick": "^0.25.2",
|
||||
"react-smart-slider": "^0.1.2",
|
||||
"slick-carousel": "^1.8.1",
|
||||
"style-loader": "^1.1.3",
|
||||
"styled-jsx-plugin-stylelint": "^0.1.0",
|
||||
"webpack": "^4.41.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"file-loader": "^5.1.0",
|
||||
"svgo": "^1.3.2",
|
||||
"svgo-loader": "^2.2.1"
|
||||
}
|
||||
}
|
||||
292
spec/fixtures/dynamic_finders/plugin_version/ar-contactus/changelog/changelog.txt
vendored
Normal file
292
spec/fixtures/dynamic_finders/plugin_version/ar-contactus/changelog/changelog.txt
vendored
Normal file
@@ -0,0 +1,292 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
##[1.8.4] - 2020-05-21
|
||||
### Added
|
||||
- Button icon size option
|
||||
- Button appearing animation option
|
||||
- Menu sidebar style
|
||||
- Menu popup animation
|
||||
- Menu sidebar animation
|
||||
- Menu items animation
|
||||
- Plugin core updated
|
||||
|
||||
##[1.8.3] - 2020-05-19
|
||||
### Added
|
||||
- Deactivation plugin for current domain
|
||||
- PhpLive integration
|
||||
- Paldesk integration
|
||||
|
||||
##[1.8.2] - 2020-05-15
|
||||
### Fixed
|
||||
- Small issues
|
||||
|
||||
##[1.8.1] - 2020-05-11
|
||||
### Added
|
||||
- Output filtration
|
||||
- Server config values validation
|
||||
|
||||
##[1.8.0] - 2020-05-06
|
||||
### Added
|
||||
- Option to choose who can access callback list
|
||||
|
||||
### Fixed
|
||||
- Security improvements
|
||||
|
||||
##[1.7.9] - 2020-04-09
|
||||
### Fixed
|
||||
- Skype integration
|
||||
- FreshChat integration
|
||||
|
||||
##[1.7.8] - 2020-02-07
|
||||
### Fixed
|
||||
- Tawk.to appearance issue
|
||||
|
||||
##[1.7.7] - 2020-01-29
|
||||
### Added
|
||||
- FreshChat integration
|
||||
|
||||
##[1.7.6] - 2020-01-20
|
||||
### Fixed
|
||||
- Zoho SalesIQ chat integration fix
|
||||
|
||||
##[1.7.5] - 2020-01-14
|
||||
### Added
|
||||
- Zoho SalesIQ chat integration
|
||||
|
||||
##[1.7.4] - 2019-12-18
|
||||
### Fixed
|
||||
- Name validation unicode languages
|
||||
|
||||
##[1.7.3] - 2019-12-15
|
||||
### Fixed
|
||||
- Name validation unicode languages
|
||||
|
||||
##[1.7.2] - 2019-12-13
|
||||
### Added
|
||||
- Name field validation options
|
||||
- Email field to callback form
|
||||
- Email field to callback requests table
|
||||
- Updated translations
|
||||
|
||||
### Fixed
|
||||
- Email subject translation
|
||||
|
||||
##[1.7.1] - 2019-12-04
|
||||
### Fixed
|
||||
- Activation issue
|
||||
|
||||
##[1.7.0] - 2019-11-30
|
||||
### Fixed
|
||||
- Fixed JivoSite issue
|
||||
|
||||
##[1.6.9] - 2019-11-22
|
||||
### Fixed
|
||||
- Fixed Tawk.to issue
|
||||
|
||||
##[1.6.8] - 2019-09-30
|
||||
### Fixed
|
||||
- Fixed JivoSite issue
|
||||
|
||||
##[1.6.7] - 2019-09-25
|
||||
### Fixed
|
||||
- HTML code in GDRP Title
|
||||
|
||||
##[1.6.6] - 2019-09-03
|
||||
### Added
|
||||
- Tidio Integration
|
||||
- Jivosite integration
|
||||
- Added comments functionality to callback requests
|
||||
- Updated translation template
|
||||
- Updated Russian translation
|
||||
- Added Google Analytics integration
|
||||
|
||||
### Fixed
|
||||
- Callback requests admin table mobile view
|
||||
|
||||
##[1.6.4] - 2019-08-05
|
||||
### Fixed
|
||||
- LiveZilla integration
|
||||
|
||||
##[1.6.3] - 2019-07-31
|
||||
### Added
|
||||
- Name and referer fileds to email notification
|
||||
- Name and referer fileds to webpush notification
|
||||
- Name and referer fileds to sms notification
|
||||
- Name and referer fileds to telegram notification
|
||||
- Export callback requests to CSV file
|
||||
- Delay initialization
|
||||
- Disable initialization
|
||||
- Open menu after timeout automatically
|
||||
|
||||
##[1.6.2] - 2019-06-01
|
||||
### Fixed
|
||||
- Crisp integration issue
|
||||
- Callback customer name field
|
||||
|
||||
##[1.6.1] - 2019-05-27
|
||||
### Added
|
||||
- Custom popup item type - allows to open popup with text/html content by clicking menu item
|
||||
- Name field to callback form
|
||||
- Activation functionality
|
||||
|
||||
##[1.5.9] - 2019-05-01
|
||||
### Added
|
||||
- Background and color option for shortcode
|
||||
|
||||
### Fixed
|
||||
- Exporting data issue on some PHP versions
|
||||
- Button and menu z-index
|
||||
- Modal conflict with SimpleModal
|
||||
- Safari item editing/adding
|
||||
|
||||
##[1.5.8] - 2019-04-29
|
||||
### Added
|
||||
- GDPR checkbox
|
||||
|
||||
##[1.5.7] - 2019-04-25
|
||||
### Added
|
||||
- WooCommerce StoreFront theme integration to mobile footer
|
||||
- New Menu style - icons without background
|
||||
- 1-click auto update
|
||||
- LiveZilla integration
|
||||
- StoreFront theme compliant - now you can add "contact-us" button to storefront mobile footer
|
||||
|
||||
### Fixed
|
||||
- LiveChat Pro integration issue
|
||||
- Update issue
|
||||
- Generate css after import
|
||||
|
||||
##[1.5.5] - 2019-04-08
|
||||
### Added
|
||||
- LiveChat Pro integration
|
||||
- Close callback popup timeout
|
||||
- Menu items subtitles
|
||||
- Option to display menu item for all users or registred users or unregistred users only
|
||||
- FontAwesome icons support
|
||||
|
||||
### Fixed
|
||||
- Performance improved
|
||||
|
||||
##[1.5.3] - 2019-04-02
|
||||
### Added
|
||||
- New icons
|
||||
|
||||
### Fixed
|
||||
- Skype WebControl integration
|
||||
- UI bootstrap conflicts
|
||||
|
||||
##[1.5.2] - 2019-03-14
|
||||
### Added
|
||||
- Predefinded Brand Colors selector
|
||||
|
||||
### Fixed
|
||||
- Landscape responsive
|
||||
- Layout fixes
|
||||
|
||||
##[1.5.1] - 2019-02-26
|
||||
### Added
|
||||
- Menu width option
|
||||
- Callback request form width option
|
||||
|
||||
##[1.5.0] - 2019-02-24
|
||||
### Added
|
||||
- LiveChat integration (livechatinc.com)
|
||||
- SmartSupp integratin
|
||||
- All button settings now can be set separately for descktop and mobile versions
|
||||
- All menu settings now can be set separately for descktop and mobile versions
|
||||
- All prompts settings now can be set separately for descktop and mobile versions
|
||||
- Pause between main button animation loops
|
||||
- Icon type option to menu settings
|
||||
- Lines options to menu settings
|
||||
- Header options to menu settings
|
||||
- Header close button options to menu settings
|
||||
- Shadow size/opacity to menu settings
|
||||
- Export option (for exporting all module data)
|
||||
- Import option (for impoting all module data)
|
||||
- Prompt position option
|
||||
- Russian translation
|
||||
- Light design updates
|
||||
|
||||
### Fixed
|
||||
- TextDomain loading
|
||||
- Html email bug
|
||||
- RTL bug
|
||||
- Improved responsivness
|
||||
- Email adress validation
|
||||
|
||||
##[1.3.9] - 2019-02-01
|
||||
### Added
|
||||
- Live helper chat integration
|
||||
|
||||
### Fixed
|
||||
- Callback mobile form layout
|
||||
- Zalo chat validation error
|
||||
- Callback is not running custom JS code
|
||||
|
||||
##[1.3.8] - 2019-01-30
|
||||
### Added
|
||||
- OneSignal integration to receive webpush on callback request
|
||||
- Link target option
|
||||
- Option to control when display prompt messages again after visitor closed them
|
||||
- Shortcodes for menu items
|
||||
|
||||
##[1.3.7] - 2019-01-26
|
||||
### Fixed
|
||||
- create_function deprecated in php 7.2
|
||||
- load plugin text domain
|
||||
|
||||
##[1.3.5] - 2019-01-18
|
||||
### Added
|
||||
- LinkedIn icon
|
||||
- Instagram icon
|
||||
- Zendesk icon
|
||||
- Zendesk chat support
|
||||
- Sandbox mode
|
||||
- Html mail support
|
||||
- Main button mode option (callback only or menu)
|
||||
- Zalo integration
|
||||
|
||||
### Fixed
|
||||
- Problem with ajaxUrl on some WP versions
|
||||
- CSS fixes
|
||||
- Tawk.to hidding issue
|
||||
|
||||
##[1.3.3] - 2019-01-03
|
||||
### Added
|
||||
- Zalo icon
|
||||
|
||||
### Fixed
|
||||
- Fixed bootstrap conflicts
|
||||
|
||||
##[1.3.2] - 2018-10-09
|
||||
### Fixed
|
||||
- Fixed innoDB tables creation
|
||||
|
||||
##[1.3.1] - 2018-09-25
|
||||
### Added
|
||||
- More icons
|
||||
- Telegram bot
|
||||
- Change main button feature
|
||||
- Phone mask feature
|
||||
- Crisp integration
|
||||
- Tawk.to integration
|
||||
- Hashtags commands
|
||||
|
||||
##[1.3.0] - 2018-08-02
|
||||
### Added
|
||||
- Skype Web Control integration
|
||||
- Zendesk chat integration
|
||||
- VK community messages integration
|
||||
- Facebook customer chat integration
|
||||
- Prompt messages feature
|
||||
|
||||
##[1.2.0] - 2018-07-21
|
||||
### Added
|
||||
- Menu size
|
||||
- Main button size
|
||||
- Twilio integration
|
||||
|
||||
|
||||
##[1.0.0] - 2018-06-19
|
||||
- First released version
|
||||
@@ -0,0 +1,479 @@
|
||||
# Copyright (C) 2020 Mewz
|
||||
# This file is distributed under the same license as the Attribute Stock for WooCommerce plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Attribute Stock for WooCommerce 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/attribute-stock-for-woocommerce\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-01-07T12:52:16+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: attribute-stock-for-woocommerce\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Attribute Stock for WooCommerce"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://wordpress.org/plugins/attribute-stock-for-woocommerce/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Take control of your product stock with flexible attribute-based stock. Easily track product addons, parts, ingredients, combos, and much more!"
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Mewz"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://mewz.dev/"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/AttributeList.php:45
|
||||
#: src/Actions/Admin/AttributeTermList.php:62
|
||||
msgid "Edit stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/AttributeList.php:51
|
||||
#: src/Actions/Admin/AttributeTermList.php:76
|
||||
msgid "List stock items"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/AttributeTermList.php:31
|
||||
#: src/Actions/Admin/AttributeTermList.php:34
|
||||
#: src/Actions/Admin/StockList.php:29
|
||||
#: src/Components/StockReport.php:16
|
||||
#: templates/admin/attributes/edit-associated.php:25
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/AttributeTermList.php:62
|
||||
msgid "Edit attribute-level stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:17
|
||||
#: src/Actions/Admin/PluginSupport.php:54
|
||||
#: src/Actions/Admin/PluginSupport.php:56
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:20
|
||||
msgid "Unlock PRO"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:41
|
||||
#: src/Actions/Admin/PluginSupport.php:43
|
||||
msgid "Help & Support"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:44
|
||||
msgid "Need assistance setting up your attribute stock? Found a bug and want to report it? Just feel like chatting? Get in touch!"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:46
|
||||
msgid "Priority support"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:47
|
||||
msgid "Community forum"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:57
|
||||
msgid "Want to learn more about Attribute Stock for WooCommerce? Check out the official online documentation."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:59
|
||||
msgid "Online documentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:66
|
||||
#: src/Actions/Admin/PluginSupport.php:68
|
||||
msgid "Manage License"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:69
|
||||
msgid "View your PRO license, migrate a license, update payment information or cancel your subscription."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:71
|
||||
msgid "Member dashboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/ReportStock.php:22
|
||||
msgid "Attribute Stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/ReportStockPro.php:19
|
||||
#: src/Actions/Admin/StockList.php:28
|
||||
#: templates/admin/attributes/edit-associated.php:24
|
||||
#: templates/admin/stock/panel-inventory.php:7
|
||||
msgid "SKU"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/ReportStockPro.php:21
|
||||
#: src/Actions/Admin/StockList.php:27
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/ReportStockPro.php:34
|
||||
msgid "Edit attribute stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:26
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:30
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:73
|
||||
msgid "%d attribute stock enabled."
|
||||
msgid_plural "%d attribute stocks enabled."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:75
|
||||
msgid "%d attribute stock disabled."
|
||||
msgid_plural "%d attribute stocks disabled."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:81
|
||||
msgid "No disabled attribute stocks to enable."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:83
|
||||
msgid "No enabled attribute stocks to disable."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:93
|
||||
msgid "%d attribute stock updated."
|
||||
msgid_plural "%d attribute stocks updated."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:94
|
||||
msgid "%d attribute stock not updated, somebody is editing it."
|
||||
msgid_plural "%d attribute stocks not updated, somebody is editing them."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:95
|
||||
msgid "%d attribute stock permanently deleted."
|
||||
msgid_plural "%d attribute stocks permanently deleted."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:96
|
||||
msgid "%d attribute stock moved to the Trash."
|
||||
msgid_plural "%d attribute stocks moved to the Trash."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:97
|
||||
msgid "%d attribute stock restored from the Trash."
|
||||
msgid_plural "%d attribute stocks restored from the Trash."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:45
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:46
|
||||
msgid "Stock details"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:64
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:65
|
||||
msgid "Attributes"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:66
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:122
|
||||
#: src/Actions/Admin/StockEdit.php:125
|
||||
#: src/Actions/Admin/StockEdit.php:127
|
||||
#: src/Actions/Admin/StockEdit.php:135
|
||||
msgid "Attribute stock updated."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:123
|
||||
msgid "Attribute stock field updated."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:124
|
||||
msgid "Attribute stock field deleted."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:126
|
||||
msgid "Revision restored."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:128
|
||||
msgid "Attribute stock saved."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:129
|
||||
msgid "Attribute stock submitted."
|
||||
msgstr ""
|
||||
|
||||
#. translators: %s: date
|
||||
#: src/Actions/Admin/StockEdit.php:132
|
||||
msgid "Attribute stock scheduled for: %s."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:151
|
||||
#: src/Actions/Admin/StockEdit.php:177
|
||||
msgid "Back to attribute stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:155
|
||||
msgid "Back to \"%s\" attribute term"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:157
|
||||
msgid "Back to attribute term"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:162
|
||||
msgid "Back to \"%s\" attribute terms"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:164
|
||||
msgid "Back to attribute terms"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:169
|
||||
msgid "Back to \"%s\" attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:171
|
||||
msgid "Back to attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockList.php:30
|
||||
#: templates/admin/stock/panel-inventory.php:29
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockList.php:31
|
||||
#: templates/admin/stock/metabox-status.php:21
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockList.php:105
|
||||
#: src/Actions/Admin/StockListFilters.php:22
|
||||
#: templates/admin/attributes/edit-associated.php:39
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockListActions.php:40
|
||||
msgid "Duplicate"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockListActions.php:91
|
||||
msgid "Sorry, this attribute stock item does not exist. Perhaps it was deleted?"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockListActions.php:95
|
||||
msgid "Sorry, you are not allowed to do that."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockListFilters.php:21
|
||||
#: templates/admin/stock/metabox-status.php:10
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockListFilters.php:112
|
||||
msgid "\"Any\""
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/StockNotifications.php:45
|
||||
msgid "Attribute out of stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/StockNotifications.php:46
|
||||
#: src/Actions/StockNotificationsPro.php:18
|
||||
msgid "%s is out of stock."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/StockNotifications.php:62
|
||||
msgid "Attribute low in stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/StockNotifications.php:63
|
||||
#: src/Actions/StockNotificationsPro.php:27
|
||||
msgid "%s is low in stock. There is %d left."
|
||||
msgid_plural "%s is low in stock. There are %d left."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Components/StockReport.php:15
|
||||
#: templates/admin/attributes/edit-associated.php:23
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: src/Components/StockReport.php:90
|
||||
msgid "No low in stock attributes found."
|
||||
msgstr ""
|
||||
|
||||
#: src/Components/StockReport.php:94
|
||||
msgid "No out of stock attributes found."
|
||||
msgstr ""
|
||||
|
||||
#: src/Components/StockReport.php:98
|
||||
msgid "No most stocked attributes found."
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin/Loader.php:34
|
||||
#: src/Plugin/LoaderPro.php:32
|
||||
msgid "WooCommerce attribute stock items."
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin/Loader.php:36
|
||||
#: src/Plugin/LoaderPro.php:34
|
||||
msgctxt "post type general name"
|
||||
msgid "Attribute Stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin/Loader.php:37
|
||||
#: src/Plugin/LoaderPro.php:35
|
||||
msgctxt "post type singular name"
|
||||
msgid "Attribute Stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin/Loader.php:38
|
||||
#: src/Plugin/LoaderPro.php:36
|
||||
msgctxt "mewz_attribute_stock"
|
||||
msgid "Add New"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/add-fields.php:13
|
||||
#: templates/admin/attributes/edit-associated.php:60
|
||||
#: templates/admin/attributes/edit-fields.php:26
|
||||
msgid "Unlock Pro"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/add-fields.php:18
|
||||
#: templates/admin/attributes/edit-fields.php:32
|
||||
msgid "Enable stock management at the attribute level."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/add-fields.php:20
|
||||
#: templates/admin/attributes/edit-fields.php:34
|
||||
msgid "Enable stock management at the attribute term level."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/add-fields.php:33
|
||||
#: templates/admin/attributes/edit-fields.php:51
|
||||
msgid "Current stock quantity of this attribute."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/add-fields.php:35
|
||||
#: templates/admin/attributes/edit-fields.php:53
|
||||
msgid "Current stock quantity of this attribute term."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/edit-associated.php:16
|
||||
msgid "Associated stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/edit-fields.php:24
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/metabox-status.php:34
|
||||
msgid "Update Stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/metabox-status.php:34
|
||||
msgid "Create Stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-inventory.php:10
|
||||
msgid "Unique identifier for stock keeping. Optional."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-inventory.php:16
|
||||
msgid "Stock quantity"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-inventory.php:23
|
||||
msgid "Current stock quantity of this attribute stock item."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-inventory.php:33
|
||||
msgid "Internal notes about this attribute stock item."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-settings.php:14
|
||||
msgid "All product types"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-settings.php:15
|
||||
msgid "Product type(s) to match against. All other product types will be ignored by this attribute stock. Leave blank to match all valid product types."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-settings.php:29
|
||||
msgid "When stock reaches this amount or less, you will be notified by email (if enabled)."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-settings.php:38
|
||||
msgid "Limits available stock quantity of associated products."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-settings.php:38
|
||||
msgid "Learn more"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Add match"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Drag to re-order"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Remove match set"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Attribute..."
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Any %s"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Term..."
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Remove attribute"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Add attribute"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Quantity multiplier"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Set how much stock is reduced when a matching product is purchased. Decimal values are also allowed."
|
||||
msgstr ""
|
||||
@@ -0,0 +1,3 @@
|
||||
Version 1.0
|
||||
- First Release
|
||||
- A new version of Automatically add product to cart plug-in.
|
||||
@@ -0,0 +1,143 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: AyeCode Connect 1.0.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-02-22 09:23+0000\n"
|
||||
"PO-Revision-Date: 2020-02-22 09:23+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: AyeCode Ltd <contact@ayecode.io>\n"
|
||||
"Language: en_US\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-KeywordsList: __;__ngettext:1,2;__ngettext_noop:1,2;_c;_e;_ex:1,2c;"
|
||||
"_n:1,2;_n_noop:1,2;_nc:4c,1,2;_nx:4c,1,2;_nx_noop:4c,1,2;_x:1,2c;esc_attr__;"
|
||||
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;gettext;"
|
||||
"gettext_noop\n"
|
||||
"X-Poedit-Basepath: ..\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Generator: Poedit 1.8.7.1\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
|
||||
#: ayecode-connect.php:75
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-remote-actions.php:411
|
||||
msgid "Download source not valid."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:201
|
||||
msgid "Plugin and theme update notifications must be enabled first"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:261
|
||||
msgid "Something went wrong, try refreshing the page and trying again."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:262
|
||||
msgid "Are you sure you with to disconnect your site?"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:300
|
||||
msgid ""
|
||||
"One click addon installs, live documentation search, support right from your "
|
||||
"WordPress Dashboard"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:308
|
||||
#, php-format
|
||||
msgid "You are connected to AyeCode Connect as user: %s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:315
|
||||
msgid "Plugin and theme update notifications"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:318
|
||||
#: includes/class-ayecode-connect-settings.php:336
|
||||
#: includes/class-ayecode-connect-settings.php:361
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:333
|
||||
msgid "One click addon installs, no more licence keys"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:366
|
||||
msgid "Disconnect site"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:373
|
||||
msgid ""
|
||||
"By clicking the <b>Connect Site</b> button, you agree to our <a "
|
||||
"href='https://ayecode.io/terms-and-conditions/' target='_blank' class='text-"
|
||||
"muted' ><u>Terms of Service</u></a> and to share details with AyeCode Ltd"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:376
|
||||
msgid "Connect Site"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:384
|
||||
msgid ""
|
||||
"It looks like you might be running on localhost, AyeCode Connect will only "
|
||||
"work on a live website."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:395
|
||||
msgid "AycCode Ltd are the creators of:"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:298
|
||||
msgid "Invalid Registration Data"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:302
|
||||
msgid "Invalid Secret"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:559
|
||||
#, php-format
|
||||
msgid "Domain `%1$s` just failed is_usable_domain check as it is empty."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:589
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Domain `%1$s` just failed is_usable_domain check as it is in the forbidden "
|
||||
"array."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:604
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Domain `%1$s` just failed is_usable_domain check as it uses an invalid top "
|
||||
"level domain."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:696
|
||||
#: includes/class-ayecode-connect.php:712
|
||||
#: includes/class-ayecode-connect.php:931
|
||||
msgid "Missing Authorization Header."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:718
|
||||
#: includes/class-ayecode-connect.php:937
|
||||
#: includes/class-ayecode-connect.php:943
|
||||
msgid "Invalid Authorization Header."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:725
|
||||
msgid "Missing blog token."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:730
|
||||
#: includes/class-ayecode-connect.php:951
|
||||
msgid "You are not authorized to do that."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:1002
|
||||
msgid "Specify an action"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,5 @@
|
||||
# Changelog
|
||||
All notable changes to the plugin will be documented in this file.
|
||||
|
||||
## 1.0.0 - 2019-10-10
|
||||
### Initial release
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"title": "Best Restaurant Menu by PriceListo",
|
||||
"name": "best-restaurant-menu",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "best-restaurant-menu.php",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+ssh://git@bitbucket.org/MahmoudBasiony/best-restaurant-menu.git"
|
||||
},
|
||||
"keywords": [
|
||||
"wordpress",
|
||||
"menu",
|
||||
"restaurant",
|
||||
"food",
|
||||
"services"
|
||||
],
|
||||
"author": "PriceListo",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"homepage": "https://bitbucket.org/MahmoudBasiony/best-restaurant-menu#readme.md",
|
||||
"devDependencies": {
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-preset-env": "^1.6.1",
|
||||
"cleave.js": "^1.5.0",
|
||||
"del": "^3.0.0",
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-babel": "^7.0.1",
|
||||
"gulp-concat": "^2.6.1",
|
||||
"gulp-jshint": "^2.1.0",
|
||||
"gulp-rename": "^1.2.2",
|
||||
"gulp-sass": "^4.0.1",
|
||||
"gulp-uglify": "^3.0.0",
|
||||
"gulp-uglifycss": "^1.0.9",
|
||||
"gulp-util": "^3.0.8",
|
||||
"gulp-wp-pot": "^2.2.0",
|
||||
"jshint": "^2.9.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"font-awesome": "^4.7.0",
|
||||
"select2": "^4.0.10",
|
||||
"sweetalert2": "^8.17.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
# Copyright (C) 2020 Maksim Kuzmin
|
||||
# This file is distributed under the same license as the Bible Online Popup plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Bible Online Popup 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/bible-online-popup\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-02-07T09:28:44+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: BOP\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Bible Online Popup"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Popup Bible's verses with Bible Online"
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Maksim Kuzmin"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "Default translation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update your preferences here."
|
||||
msgstr ""
|
||||
|
||||
msgid "Make a Bible Popup from selection"
|
||||
msgstr ""
|
||||
|
||||
msgid "Bible Online Popup Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "Make a link to BibleOnline.ru from Bible's reference"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "bleumi/bleumi-pay-woocommerce",
|
||||
"type": "wordpress-plugin",
|
||||
"description": "Enable your WooCommerce store to accept cryptocurrency payments with Bleumi Pay.",
|
||||
"version": "1.0.2",
|
||||
"keywords": [
|
||||
"bleumipay",
|
||||
"woocommerce",
|
||||
"payment",
|
||||
"payment-gateway",
|
||||
"payment-processing",
|
||||
"crypto-payments",
|
||||
"accept-crypto-payments",
|
||||
"ethereum",
|
||||
"eth",
|
||||
"erc20-tokens",
|
||||
"algorand"
|
||||
],
|
||||
"homepage": "https://bleumi.pay.com",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bleumi Pay",
|
||||
"email": "support@bleumi.com",
|
||||
"homepage": "https://bleumi.pay.com",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"bleumi/bleumi-pay-sdk-php":"^1.0.21"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,344 @@
|
||||
# Copyright (C) 2020 Barn2 Plugins
|
||||
# This file is distributed under the same license as the Block for Woo Product Table plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Block for Woo Product Table 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/block-for-woo-product-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-05-21T12:32:42+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.3.0\n"
|
||||
"X-Domain: block-for-woo-product-table\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Block for Woo Product Table"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://barn2.co.uk/wordpress-plugins/block-for-woo-product-table/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Adds an editor block to the WooCommerce Product Table plugin by Barn2, making it quick and easy to create product tables with the block editor."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Barn2 Plugins"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://barn2.co.uk"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %s is the plugin name
|
||||
#: src/class-block.php:120
|
||||
msgid "Warning! This block is an add-on for the %s plugin, which is not currently installed. Please install the plugin before continuing."
|
||||
msgstr ""
|
||||
|
||||
#. translators: %s is the plugin name
|
||||
#: src/class-block.php:121
|
||||
#: src/class-block.php:134
|
||||
#: assets/js/editor.js:41
|
||||
msgid "WooCommerce Product Table"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:133
|
||||
msgid "Warning! This block requires WooCommerce to function."
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:208
|
||||
msgid "SKU"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:209
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:210
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:211
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:212
|
||||
msgid "Short Description"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:213
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:214
|
||||
msgid "Categories"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:215
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:216
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:217
|
||||
msgid "Reviews"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:218
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:219
|
||||
msgid "Weight"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:220
|
||||
msgid "Dimensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:221
|
||||
msgid "Price"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:222
|
||||
msgid "Add to Cart"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:223
|
||||
#: assets/js/settings-panel.js:50
|
||||
msgid "Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:225
|
||||
msgid "Product Attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:228
|
||||
msgid "Custom Field Value"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:228
|
||||
msgid "Enter a customer meta key"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:229
|
||||
msgid "Custom Taxonomy"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:229
|
||||
msgid "Enter a taxonomy name"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-plugin.php:143
|
||||
msgid "PHP must be running on version 5.6 or above to use this plugin."
|
||||
msgstr ""
|
||||
|
||||
#: src/class-plugin.php:147
|
||||
msgid "This plugin requires WordPress 5.3 or above"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-plugin.php:151
|
||||
msgid "This plugin requires WooCommerce to be active"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-plugin.php:159
|
||||
msgid "The \"Block for WooCommerce Product Table\" plugin is active but not functioning!"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:31
|
||||
msgid "Display a searchable table listing any or all of your products."
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:36
|
||||
msgid "Warning! This block is an add-on for the WooCommerce Product Table plugin, which is not currently installed. Please install the plugin before continuing."
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:148
|
||||
msgid "Product Table"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:159
|
||||
msgid "Lists products in a table view using the WooCommerce Product Table plugin. "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:163
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:198
|
||||
msgid "You can configure additional settings in the 'Block' tab in the sidebar."
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:95
|
||||
msgid "Select products"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:221
|
||||
msgid "Selections"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:224
|
||||
#: assets/js/table-columns.js:357
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:458
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:477
|
||||
#: assets/js/table-columns.js:307
|
||||
msgid "(Using global options)"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:510
|
||||
msgid "Products must match all values"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:559
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:571
|
||||
#: assets/js/table-columns.js:235
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:581
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:41
|
||||
msgid "Add to Cart Column Settings"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:46
|
||||
msgid "Add to Cart Button"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:49
|
||||
#: assets/js/settings-panel.js:73
|
||||
#: assets/js/settings-panel.js:88
|
||||
#: assets/js/settings-panel.js:118
|
||||
msgid "(Use global option)"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:51
|
||||
msgid "Checkbox"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:52
|
||||
msgid "Button and Checkbox"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:58
|
||||
msgid "How 'Add to Cart' buttons are displayed in the table. "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:62
|
||||
#: assets/js/settings-panel.js:101
|
||||
#: assets/js/settings-panel.js:134
|
||||
msgid "Read More"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:70
|
||||
msgid "Quantities"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:74
|
||||
msgid "Show in add to cart column"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:75
|
||||
msgid "Do not show quantity selectors"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:85
|
||||
msgid "Variations"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:89
|
||||
msgid "Link to product page"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:90
|
||||
msgid "Dropdowns in add to cart column"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:91
|
||||
msgid "Separate rows in table"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:97
|
||||
msgid "How to display options for variable products. "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:110
|
||||
msgid "Table Controls"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:115
|
||||
msgid "Product Filters"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:119
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:120
|
||||
msgid "Show based on columns in table"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:121
|
||||
msgid "Custom"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:130
|
||||
msgid "Dropdown lists to filter the table by category, tag, attribute, or custom taxonomy. "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:149
|
||||
msgid "Custom Product Filters"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:162
|
||||
msgid "Additional Options"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:168
|
||||
msgid "You can configure additional options globally on the "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:172
|
||||
msgid "WooCommerce Product Table settings page"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:174
|
||||
msgid ", or by adding them below with one option per line (e.g. sort_by=\"name\"). "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:178
|
||||
msgid "See full list of options."
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:185
|
||||
msgid "Additional Shortcode Attributes"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/table-columns.js:32
|
||||
msgid "Add column"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/table-columns.js:53
|
||||
msgid "Select global attribute"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/table-columns.js:294
|
||||
msgid "Table Columns"
|
||||
msgstr ""
|
||||
7
spec/fixtures/dynamic_finders/plugin_version/block-pattern-builder/change_log/changelog.md
vendored
Normal file
7
spec/fixtures/dynamic_finders/plugin_version/block-pattern-builder/change_log/changelog.md
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# Change Log
|
||||
|
||||
## [1.0.0] - 2020-04-02
|
||||
|
||||
### Added
|
||||
|
||||
- Everything is new. This is version 1.0!
|
||||
20
spec/fixtures/dynamic_finders/plugin_version/blocks-for-eventbrite/change_log/CHANGELOG.md
vendored
Normal file
20
spec/fixtures/dynamic_finders/plugin_version/blocks-for-eventbrite/change_log/CHANGELOG.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.0.0] - 04-04-2020
|
||||
|
||||
### Added
|
||||
|
||||
- @wordpress/scripts and @wordpress/creat-block to scaffold plugin and webpack
|
||||
- custom webpack file to utilize postcss, & css modules
|
||||
- custom postcss.config file
|
||||
- custom .eslintrc file that extends wordpress for editor to use as formatter
|
||||
- Tailwindcss for the css
|
||||
- Axios for api key testing within gutenberg
|
||||
- CSS modules to keep css in scope
|
||||
- React to build the field editing & front-end components
|
||||
- Transients to cache the fetched data for 1 minute at a time or if attibributes have changed
|
||||
31
spec/fixtures/dynamic_finders/plugin_version/blocks-for-eventbrite/composer_file/package.json
vendored
Normal file
31
spec/fixtures/dynamic_finders/plugin_version/blocks-for-eventbrite/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"name": "blocks-for-eventbrite",
|
||||
"version": "1.0.0",
|
||||
"description": "WordPress Gutenberg blocks that display eventbrite events",
|
||||
"author": "Jon Waldstein",
|
||||
"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/eslint-plugin": "^4.0.0",
|
||||
"@wordpress/scripts": "^7.1.3",
|
||||
"css-loader": "^3.4.2",
|
||||
"cssnano": "^4.1.10",
|
||||
"postcss-loader": "^3.0.0",
|
||||
"postcss-nested": "^4.2.1",
|
||||
"style-loader": "^1.1.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tippyjs/react": "^4.0.0-alpha.4",
|
||||
"axios": "^0.19.2",
|
||||
"classnames": "^2.2.6",
|
||||
"tailwindcss": "^1.2.0"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
3
spec/fixtures/dynamic_finders/plugin_version/booster-for-elementor/change_log/changelog.txt
vendored
Normal file
3
spec/fixtures/dynamic_finders/plugin_version/booster-for-elementor/change_log/changelog.txt
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
== Changelog ==
|
||||
= 1.0 =
|
||||
. Initial release
|
||||
File diff suppressed because it is too large
Load Diff
19
spec/fixtures/dynamic_finders/plugin_version/bunnycdnbunnyapi/change_log/changelog.txt
vendored
Normal file
19
spec/fixtures/dynamic_finders/plugin_version/bunnycdnbunnyapi/change_log/changelog.txt
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
== CHANGELOG ==
|
||||
|
||||
=1.0.0=
|
||||
Initial setup
|
||||
bunnyapi ::
|
||||
WP default upload paths
|
||||
setup paths
|
||||
bunnyapi_callback_css
|
||||
bunnyapi_img_shortcode($atts)
|
||||
bunnyapi_dnsprefetch()
|
||||
load classes--
|
||||
inc:: bunnyapiFunctions
|
||||
inc-- bunnyapi_api_key(),bunnyapi_validate_apikey(),bunnyapi_clear_cache(),bunnyapi_delete_all(),bunnyapi_delete_files($files),bunnyapi_copy_all($folder),bunnyapi_force_push($folder),bunnyapi_upload_files($files),bunnyapi_is_gutenberg_active(),bunnyapi_setbunnyhost(),bunnyapi_currenturl(),bunnyapi_api_call(),bunnyhost(),bunnyapi_convert_year_month_url(),bunnyapi_check_https(),bunnyapi_is_200(),bunnyapi_full_validation_apikey()
|
||||
inc:: bunnyapiSettings
|
||||
inc-- getOptions(),getOption($option),validateSettings($data),cleanHostname($hostname),initialize(),bunnyapi_options_page(),js:{deleteall(),clearcache(),copyall(),pushall(),downloadall(),setHost()}
|
||||
inc:: bunnyapiMedia
|
||||
inc-- function($editor_id),bunnyapi_CustomMediaUI(),bunnyapi_media_urls(),bunnyapi_getLabel(),bunnyapi_getUrl(),bunnyapi_render(),__construct(),bunnyapi_submenu(),bunnyapi_adminBar(),bunnyapi_mediaButton(),bunnyapi_mediaButtonScript(),bunnyapi_indexButton(),bunnyapi_h2Button()
|
||||
BunnyAPI auto-detection hostname configuration
|
||||
BunnyAPI Settings screen: Update BunnyAPI Settings, Clear Cache, Download BunnyCDN Media, Push WP Media Library, Copy BunnyCDN Media, and Delete All BunnyCDN Media
|
||||
@@ -0,0 +1,141 @@
|
||||
# Copyright (C) 2020 Marian Kanev
|
||||
# This file is distributed under the same license as the TaxiBooking Light plugin.
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: TaxiBooking Light 1.0.1\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/tblight\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-03-31 19:53+0600\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
"X-Domain: tblight\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "TaxiBooking Light"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
#. Author URI of the plugin
|
||||
msgid "https://kanev.com/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Taxi Booking Light for Wordpress."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Marian Kanev"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default.php:11
|
||||
msgid "BOOKING_FORM_NEW_ORDER_BTN_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default.php:19
|
||||
msgid "BOOKING_FORM_FIRST_STEP_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default.php:25 views/tblight/default_step2.php:40
|
||||
msgid "BOOKING_FORM_SECOND_STEP_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default.php:31
|
||||
msgid "BOOKING_FORM_THIRD_STEP_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:7
|
||||
msgid "BOOKING_FORM_SELECT_DATE_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:25
|
||||
msgid "HRS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:48
|
||||
msgid "MINS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:77
|
||||
msgid "TAXI_FROM"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:83 views/tblight/default_step1.php:97
|
||||
msgid "ENTER_ADDRESS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:91
|
||||
msgid "TAXI_TO"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:104
|
||||
msgid "VIEW_MAP_BTN_LBL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:112
|
||||
msgid "PASSENGER_SEATS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:127
|
||||
msgid "SUITCASE_NO"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:140
|
||||
msgid "BOOKING_FORM_RIDING_CHILD_BTN_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:147
|
||||
msgid "BOOKING_FORM_ADDITIONAL_SEATS_HEADER"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:149
|
||||
msgid "BOOSTER_SEATS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:150
|
||||
msgid "CHILD_SEATS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:151
|
||||
msgid "INFANT_SEATS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:166 views/tblight/default_step1.php:196
|
||||
msgid "SEE_PRICE"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step2.php:47 views/tblight/default_step2.php:49
|
||||
msgid "CARS_TABLE_LIST_BTN_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step2.php:51 views/tblight/default_step2.php:53
|
||||
msgid "CARS_TABLE_GRID_BTN_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step2.php:217 views/tblight/default_step3.php:176
|
||||
msgid "BACK_TO_PREVIOUS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step3.php:8
|
||||
msgid "BOOKING_FORM_PASSENGER_INFORMATION_HEADER"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step3.php:10
|
||||
msgid "NAME"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step3.php:16
|
||||
msgid "EMAIL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step3.php:22
|
||||
msgid "PHONE"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step3.php:52
|
||||
msgid "ONEPAGE_BOOKING_FOURTH_STEP_HEADER"
|
||||
msgstr ""
|
||||
6
spec/fixtures/dynamic_finders/plugin_version/capture-and-convert/change_log/CHANGELOG.md
vendored
Normal file
6
spec/fixtures/dynamic_finders/plugin_version/capture-and-convert/change_log/CHANGELOG.md
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
|
||||
## 1.4.2
|
||||
|
||||
- Added Changelog
|
||||
- Fixed bug with widgets
|
||||
- Fixed bug with Twitter auth token
|
||||
503
spec/fixtures/dynamic_finders/plugin_version/card-oracle/translation_file/languages/card-oracle.pot
vendored
Normal file
503
spec/fixtures/dynamic_finders/plugin_version/card-oracle/translation_file/languages/card-oracle.pot
vendored
Normal file
@@ -0,0 +1,503 @@
|
||||
# Copyright (C) 2020 Christopher Graham
|
||||
# This file is distributed under the same license as the Card Oracle plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Card Oracle 0.5.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/card-oracle\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-05-01T12:01:11+01:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.3.0\n"
|
||||
"X-Domain: card-oracle\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
#: admin/class-card-oracle-admin.php:67
|
||||
#: admin/class-card-oracle-admin.php:578
|
||||
#: admin/partials/card-oracle-admin-display.php:19
|
||||
msgid "Card Oracle"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://chillichalli.com/card-oracle"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "This plugin lets you create tarot and oracle readings using your own cards, spreads and interpretations."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Christopher Graham"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://cdgraham.com"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:66
|
||||
msgid "Card Oracle Settings"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %d is a number
|
||||
#: admin/class-card-oracle-admin.php:156
|
||||
#: admin/class-card-oracle-admin.php:160
|
||||
#: admin/class-card-oracle-admin.php:164
|
||||
#: admin/class-card-oracle-admin.php:168
|
||||
msgid "%d Total"
|
||||
msgid_plural "%d Total"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:193
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:195
|
||||
msgid "Email Options"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:230
|
||||
#: admin/class-card-oracle-admin.php:1178
|
||||
msgid "Multiple Positions for a Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:235
|
||||
msgid "Enabling this will allow you to select multiple Positions for a Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:239
|
||||
msgid "Allow users to send reading to an email address"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:247
|
||||
msgid "From email address"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:252
|
||||
msgid "The From email address used when the user sends the reading."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:253
|
||||
msgid "If blank this defaults to the Admin email address."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:257
|
||||
msgid "From email name"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:262
|
||||
msgid "The Name displayed as the From email address."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:263
|
||||
msgid "If blank this defaults to the site title."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:267
|
||||
#: admin/class-card-oracle-admin.php:277
|
||||
msgid "Text to display"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:272
|
||||
msgid "Text to display on the email form."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:273
|
||||
msgid "If blank this defaults \"Email this Reading to:\"."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:282
|
||||
msgid "Text to display after the user submits the email form."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:283
|
||||
msgid "If blank this defaults \"Your email has been sent. Please make sure to check your spam folder.\""
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:500
|
||||
#: admin/class-card-oracle-admin.php:514
|
||||
#: admin/class-card-oracle-admin.php:529
|
||||
#: admin/class-card-oracle-admin.php:544
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:580
|
||||
msgid "Card Oracle Options"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:580
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:582
|
||||
msgid "Card Oracle Readings Admin"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:582
|
||||
#: admin/partials/card-oracle-admin-display.php:39
|
||||
msgid "Readings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:584
|
||||
msgid "Card Oracle positions Admin"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:584
|
||||
#: admin/class-card-oracle-admin.php:1384
|
||||
#: admin/partials/card-oracle-admin-display.php:50
|
||||
msgid "Positions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:586
|
||||
msgid "Card Oracle cards Admin"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:586
|
||||
#: admin/class-card-oracle-admin.php:833
|
||||
#: admin/partials/card-oracle-admin-display.php:61
|
||||
msgid "Cards"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:588
|
||||
msgid "Card Oracle Descriptions Admin"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:588
|
||||
#: admin/partials/card-oracle-admin-display.php:73
|
||||
msgid "Descriptions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:604
|
||||
msgid "Front of Card Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:609
|
||||
msgid "Back of Card Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:614
|
||||
msgid "Previous Page"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:773
|
||||
msgid "Sorry, the maximum number of Readings has been reached."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:782
|
||||
msgid "Sorry, the maxiumum number of Positions has been reached."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:791
|
||||
msgid "Sorry, the maxiumum number of Cards has been reached."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:807
|
||||
msgid "Please consider upgrading to our premium version."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:810
|
||||
msgid "You can purchase it here at "
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:812
|
||||
msgid "Maximum reached"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:834
|
||||
#: admin/class-card-oracle-admin.php:1047
|
||||
#: admin/class-card-oracle-admin.php:1363
|
||||
msgid "Card"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:835
|
||||
#: admin/class-card-oracle-admin.php:836
|
||||
msgid "Add New Card"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:837
|
||||
msgid "Edit Card"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:838
|
||||
msgid "New Card"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:839
|
||||
msgid "All Cards"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:840
|
||||
msgid "View Card"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:841
|
||||
msgid "Search Cards"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:842
|
||||
msgid "Card Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:843
|
||||
msgid "Add Card Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:867
|
||||
msgid "Card Descriptions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:868
|
||||
msgid "Card Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:869
|
||||
#: admin/class-card-oracle-admin.php:870
|
||||
msgid "Add New Card Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:871
|
||||
msgid "Edit Card Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:872
|
||||
msgid "New Card Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:873
|
||||
msgid "All Card Descriptions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:874
|
||||
msgid "View Card Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:875
|
||||
msgid "Search Card Descriptions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:876
|
||||
msgid "Card Description Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:877
|
||||
msgid "Add Card Description Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:901
|
||||
msgid "Card Readings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:902
|
||||
#: admin/class-card-oracle-admin.php:1010
|
||||
#: admin/class-card-oracle-admin.php:1108
|
||||
#: admin/class-card-oracle-admin.php:1401
|
||||
msgid "Card Reading"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:903
|
||||
#: admin/class-card-oracle-admin.php:904
|
||||
msgid "Add New Card Reading"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:905
|
||||
msgid "Edit Card Reading"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:906
|
||||
msgid "New Card Reading"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:907
|
||||
msgid "All Card Readings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:908
|
||||
msgid "View Card Reading"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:909
|
||||
msgid "Search Card Readings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:910
|
||||
msgid "Card Back"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:911
|
||||
msgid "Add Card Back"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:935
|
||||
msgid "Card Positions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:936
|
||||
msgid "Card Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:937
|
||||
#: admin/class-card-oracle-admin.php:938
|
||||
msgid "Add New Card Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:939
|
||||
msgid "Edit Card Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:940
|
||||
msgid "New Card Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:941
|
||||
msgid "All Card Positions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:942
|
||||
msgid "View Card Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:943
|
||||
msgid "Search Card Positions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:944
|
||||
msgid "Card Position Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:945
|
||||
msgid "Add Card Position Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:976
|
||||
msgid "Allow multiple Positions for a Card Description."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1051
|
||||
#: admin/class-card-oracle-admin.php:1085
|
||||
msgid "(no card)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1059
|
||||
msgid "Description Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1126
|
||||
msgid "Card Order"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1186
|
||||
msgid "Display Question Input Box"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1192
|
||||
msgid "Enabling this will display an input field to the users to enter a question."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1195
|
||||
msgid "Text for question input box"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1200
|
||||
msgid "Avoid using apostrophes in the text if you plan on allowing users to email the readings."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1204
|
||||
msgid "Footer to be displayed on daily and random cards"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1345
|
||||
msgid "Associated Reading(s)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1346
|
||||
msgid "Number of Descriptions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1347
|
||||
#: admin/class-card-oracle-admin.php:1367
|
||||
#: admin/class-card-oracle-admin.php:1385
|
||||
#: admin/class-card-oracle-admin.php:1403
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1365
|
||||
#: admin/class-card-oracle-admin.php:1402
|
||||
msgid "Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1366
|
||||
msgid "Position Number"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1383
|
||||
msgid "Shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:84
|
||||
msgid "Reading Statistics"
|
||||
msgstr ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:88
|
||||
msgid "Reading Shortcodes"
|
||||
msgstr ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:89
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %d is a number
|
||||
#: admin/partials/card-oracle-admin-display.php:93
|
||||
msgid "%d position"
|
||||
msgid_plural "%d positions"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#. translators: %d is a number
|
||||
#: admin/partials/card-oracle-admin-display.php:96
|
||||
msgid "%d card"
|
||||
msgid_plural "%d cards"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#. translators: %d is a number
|
||||
#: admin/partials/card-oracle-admin-display.php:99
|
||||
msgid "%d description"
|
||||
msgid_plural "%d descriptions"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:125
|
||||
#: admin/partials/card-oracle-admin-display.php:135
|
||||
#: admin/partials/card-oracle-admin-display.php:145
|
||||
msgid "Click to copy shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:130
|
||||
msgid "Daily Card Shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:140
|
||||
msgid "Random Card Shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: public/class-card-oracle-public.php:145
|
||||
msgid "Your Reading"
|
||||
msgstr ""
|
||||
|
||||
#: public/class-card-oracle-public.php:165
|
||||
msgid "Your email has been sent. Please make sure to check your spam folder."
|
||||
msgstr ""
|
||||
|
||||
#. translators: %d is a number
|
||||
#: public/class-card-oracle-public.php:324
|
||||
msgid "Next select %d card."
|
||||
msgid_plural "Next select %d cards."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: public/class-card-oracle-public.php:350
|
||||
msgid "Email this Reading to:"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,161 @@
|
||||
# Copyright (C) 2020 WPplugins.Tech
|
||||
# This file is distributed under the same license as the Category Tag Tidy plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Category Tag Tidy 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/category-tag-"
|
||||
"tidy\n"
|
||||
"POT-Creation-Date: 2020-01-02T03:27:50+01:00\n"
|
||||
"PO-Revision-Date: 2020-01-02 13:33+1100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: en\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.2.4\n"
|
||||
"X-Domain: category-tag-tidy\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
#: admin/class-category-tag-tidy-admin.php:84
|
||||
#: admin/class-category-tag-tidy-admin.php:85
|
||||
#: admin/class-category-tag-tidy-admin.php:99
|
||||
#: admin/class-category-tag-tidy-admin.php:100
|
||||
#: admin/class-category-tag-tidy-admin.php:117
|
||||
msgid "Category Tag Tidy"
|
||||
msgstr "Category Tag Tidy"
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://github.com/wpplugins-tech/category-tag-tidy"
|
||||
msgstr "https://github.com/wpplugins-tech/category-tag-tidy"
|
||||
|
||||
#. Description of the plugin
|
||||
msgid ""
|
||||
"Allows easy deletion of unused categories and tags - maintains existing "
|
||||
"category structure."
|
||||
msgstr ""
|
||||
"Allows easy deletion of unused categories and tags - maintains existing "
|
||||
"category structure."
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "WPplugins.Tech"
|
||||
msgstr "WPplugins.Tech"
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "http://www.wpplugins.tech"
|
||||
msgstr "http://www.wpplugins.tech"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:150
|
||||
msgid "Category and Tag Tidy"
|
||||
msgstr "Category and Tag Tidy"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:153
|
||||
msgid "Clear all unused Tags or Categories for all Blogs on this Network"
|
||||
msgstr "Clear all unused Tags or Categories for all Blogs on this Network"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:154
|
||||
msgid "across ALL blogs on this network"
|
||||
msgstr "across ALL blogs on this network"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:156
|
||||
msgid "Clear all unused Tags or Categories from blog"
|
||||
msgstr "Clear all unused Tags or Categories from blog"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:169
|
||||
msgid "Select Taxonomies to Tidy"
|
||||
msgstr "Select Taxonomies to Tidy"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:173
|
||||
msgid "Categories"
|
||||
msgstr "Categories"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:177
|
||||
msgid "Post Tags"
|
||||
msgstr "Post Tags"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:180
|
||||
#| msgid ""
|
||||
#| "How it works: In order to maintain your categories structure - unused "
|
||||
#| "parent categories will not be deleted if they have a child category which "
|
||||
#| "is in use."
|
||||
msgid ""
|
||||
"How it works: In order to maintain your categories structure - unused parent "
|
||||
"categories will not be deleted if they have a child category still in use."
|
||||
msgstr ""
|
||||
"How it works: In order to maintain your categories structure - unused parent "
|
||||
"categories will not be deleted if they have a child category still in use."
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:181
|
||||
msgid "Tags are not hierarchical so all non-used tags will be deleted."
|
||||
msgstr "Tags are not hierarchical so all non-used tags will be deleted."
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:182
|
||||
msgid ""
|
||||
"Categories or Tags linked with content in the trash will not be deleted."
|
||||
msgstr ""
|
||||
"Categories or Tags linked with content in the trash will not be deleted."
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:183
|
||||
msgid "Note: you will be asked to confirm on the next screen"
|
||||
msgstr "Note: you will be asked to confirm on the next screen"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:187
|
||||
msgid "Run Tag Tidy"
|
||||
msgstr "Run Tag Tidy"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:201
|
||||
msgid "This process will clear all unused <b>tags</b> and <b>categories</b>"
|
||||
msgstr "This process will clear all unused <b>tags</b> and <b>categories</b>"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:203
|
||||
msgid "This process will clear all unused <b>tags</b>"
|
||||
msgstr "This process will clear all unused <b>tags</b>"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:205
|
||||
msgid "This process will clear all unused <b>categories</b>"
|
||||
msgstr "This process will clear all unused <b>categories</b>"
|
||||
|
||||
#. translators: %s is replaced with the back link
|
||||
#: admin/class-category-tag-tidy-admin.php:213
|
||||
msgid "Please go <a href=\"%s\">back</a> and select a taxonomy"
|
||||
msgstr "Please go <a href=\"%s\">back</a> and select a taxonomy"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:221
|
||||
msgid "Are you sure you wish to proceed?"
|
||||
msgstr "Are you sure you wish to proceed?"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:222
|
||||
msgid "<b>Note:</b> This action is <i>not</i> reversible"
|
||||
msgstr "<b>Note:</b> This action is <i>not</i> reversible"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:227
|
||||
msgid "Let's Do it!"
|
||||
msgstr "Let's Do it!"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:254
|
||||
msgid "Processing post categories: "
|
||||
msgstr "Processing post categories: "
|
||||
|
||||
#. translators: %d is replaced with the number 1 (for one term deleted)
|
||||
#: admin/class-category-tag-tidy-admin.php:258
|
||||
#: admin/class-category-tag-tidy-admin.php:270
|
||||
msgid "%d term deleted"
|
||||
msgstr "%d term deleted"
|
||||
|
||||
#. translators: %d is replaced with number of deleted terms
|
||||
#: admin/class-category-tag-tidy-admin.php:261
|
||||
#: admin/class-category-tag-tidy-admin.php:272
|
||||
msgid "%d terms deleted"
|
||||
msgstr "%d terms deleted"
|
||||
|
||||
#: admin/class-category-tag-tidy-admin.php:267
|
||||
msgid "Processing post tags: "
|
||||
msgstr "Processing post tags: "
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This is a short description of what the plugin does. It's displayed in "
|
||||
#~ "the WordPress admin area."
|
||||
#~ msgstr ""
|
||||
#~ "This is a short description of what the plugin does. It's displayed in "
|
||||
#~ "the WordPress admin area."
|
||||
@@ -0,0 +1,31 @@
|
||||
# Copyright (C) 2020 Chris J. Zähller / Messenger Web Design
|
||||
# This file is distributed under the same license as the Conditionally Load CF7 plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Conditionally Load CF7 1.0.5\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/conditionally-load-cf7\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-03-25T20:01:04+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.2.0\n"
|
||||
"X-Domain: cf7-conditional\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Conditionally Load CF7"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "In its default settings, Contact Form 7 loads its JavaScript and CSS stylesheet on every page. This slows page loading and taxes server and client resources. Use this plugin to control which pages the scripts load on."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Chris J. Zähller / Messenger Web Design"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://github.com/seezee"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,181 @@
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CF7 Constant Contact Fields Mapping 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-01 16:58+0530\n"
|
||||
"PO-Revision-Date: 2012-11-19 10:21+0100\n"
|
||||
"Last-Translator: remi\n"
|
||||
"Language-Team: ReloadWeb <info@reloadweb.co.uk>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-KeywordsList: __;_e;_x;_n;esc_attr__;esc_attr_e;esc_html__;esc_html_e;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_x:1,2c;_n:1,2\n"
|
||||
"X-Poedit-Basepath: ..\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:89
|
||||
msgid "First Name"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:90
|
||||
msgid "Last Name"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:91
|
||||
msgid "Full Name (First and Last)"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:92
|
||||
msgid "Email Address"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:93
|
||||
msgid "Job Title"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:94
|
||||
msgid "Company Name"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:95
|
||||
msgid "Birthday Month"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:96
|
||||
msgid "Birthday Day"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:97
|
||||
msgid "Birthday Month & Day"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:98
|
||||
msgid "Anniversary"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:99
|
||||
msgid "Phone Number"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:100
|
||||
msgid "Address Street"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:101
|
||||
msgid "Address City"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:102
|
||||
msgid "Address State"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:103
|
||||
msgid "Address Postal Code"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:104
|
||||
msgid "Address Country"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:137
|
||||
msgid "Contact Form 7 Constant Contact Fields Mapping - requires Contact Form 7 plugin to be installed and activated."
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:153
|
||||
#: cf7-constant-contact-fields-mapping.php:240
|
||||
msgid "Constant Contact Fields Mapping"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:161
|
||||
#, php-format
|
||||
msgid "Step 1: Connect the Constant Contact API if you are not connected, please %s to connect the Constant Contact API follow instruction guide."
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:163
|
||||
#: cf7-constant-contact-fields-mapping.php:261
|
||||
msgid "click here"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:173
|
||||
#, php-format
|
||||
msgid "Step 1: You need to %s vesion of plugin, after buy you will receive confirmation email with plugin installation guide please flollow installation guide"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:175
|
||||
#: cf7-constant-contact-fields-mapping.php:304
|
||||
#: cf7-constant-contact-fields-mapping.php:341
|
||||
msgid "Buy Pro"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:180
|
||||
#, php-format
|
||||
msgid "Step 2: Login to your constant contact account %s After adding custom fields in constant contact account."
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:183
|
||||
msgid "https://knowledgebase.constantcontact.com/articles/KnowledgeBase/5328-add-and-manage-custom-fields?lang=en_US"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:186
|
||||
msgid "Add, View, and Manage Custom Fields."
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:210
|
||||
msgid "Select form fields"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:213
|
||||
msgid "Select constant contact fields"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:259
|
||||
#, php-format
|
||||
msgid "This site is not connected to the Constant Contact API. Please %s to connect the Constant Contact API."
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:281
|
||||
msgid "Fields Mapping"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:287
|
||||
#, php-format
|
||||
msgid "(Please follow %s how to map fields or %s.)"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:289
|
||||
msgid "this guide"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:292
|
||||
msgid "contact us"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:302
|
||||
#, php-format
|
||||
msgid "( Map constant contact custom fields %s vesion of the plugin.)"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:312
|
||||
msgid "Form Fields"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:314
|
||||
msgid "Fields"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:326
|
||||
msgid "Constant Contact Fields"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:328
|
||||
msgid "Default Fields"
|
||||
msgstr ""
|
||||
|
||||
#: cf7-constant-contact-fields-mapping.php:334
|
||||
#: cf7-constant-contact-fields-mapping.php:340
|
||||
msgid "Custom Fields"
|
||||
msgstr ""
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,38 @@
|
||||
# Copyright (c) 2020 Sébastien Dumont
|
||||
# This file is distributed under the same license as the CoCart - Get Cart Enhanced package.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CoCart - Get Cart Enhanced 1.2.0\n"
|
||||
"Report-Msgid-Bugs-To: "
|
||||
"https://github.com/co-cart/cocart-get-cart-enhanced/issues\n"
|
||||
"POT-Creation-Date: 2020-03-16 18:38:04+00:00\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Sébastien Dumont <mailme@sebastiendumont.com>\n"
|
||||
"Language: en_US\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Poedit-Country: United States\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: "
|
||||
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
||||
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
||||
"X-Poedit-Basepath: ../\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
"X-Poedit-Bookmarks: \n"
|
||||
"X-Textdomain-Support: yes\n"
|
||||
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
||||
|
||||
#: cocart-get-cart-enhanced.php:83
|
||||
msgid "In Stock"
|
||||
msgstr ""
|
||||
|
||||
#: cocart-get-cart-enhanced.php:87
|
||||
msgid "Out of Stock"
|
||||
msgstr ""
|
||||
|
||||
#: cocart-get-cart-enhanced.php:91
|
||||
msgid "Available on backorder"
|
||||
msgstr ""
|
||||
13
spec/fixtures/dynamic_finders/plugin_version/codepen-embed-block/composer_file/package.json
vendored
Normal file
13
spec/fixtures/dynamic_finders/plugin_version/codepen-embed-block/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "codepen-embed-block",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "cgb-scripts start",
|
||||
"build": "cgb-scripts build",
|
||||
"eject": "cgb-scripts eject"
|
||||
},
|
||||
"dependencies": {
|
||||
"cgb-scripts": "1.22.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
#Colissimo WooCommerce Changelog
|
||||
|
||||
## 1.1
|
||||
|
||||
### Fonctionnalités
|
||||
|
||||
- Prise en charge de étiquettes au format ZPL et DPL :
|
||||
- Possibilité de générer les étiquettes de livraison au format ZPL ou DPL
|
||||
- Possibilité d'imprimer les étiquettes de livraison au format ZPL ou DPL directement sur une imprimante thermique via USB ou Ethernet.
|
||||
|
||||
- Impression en masse des étiquettes de livraisons de plusieurs commandes depuis le listing des commandes Colissimo
|
||||
|
||||
- Il est désormais possible de trier les commandes du listing Colissimo selon :
|
||||
- Le nom du client
|
||||
- L'adresse de livraison
|
||||
- Le pays de livraison
|
||||
- La méthode de livraison
|
||||
- Le statut de la livraison
|
||||
- Le numéro de bordereau
|
||||
|
||||
- Il est désormais possible de filtrer les commandes du listing Colissimo selon :
|
||||
- Le pays de livraison
|
||||
- La méthode de livraison
|
||||
- Le statut de livraison
|
||||
- Les étiquettes générées ("Aller", "Retour", "Aller et Retour" et "Étiquette non générée")
|
||||
|
||||
- Le nombre de commandes affichées par page sur le listing Colissimo est paramétrable via l'option de WordPress "Options de l'écran"
|
||||
|
||||
### Améliorations
|
||||
|
||||
- Ajout de la référence de la commande sur l'étiquette de livraison
|
||||
|
||||
- Les prix des méthodes de livraisons se basent désormais sur le prix TTC
|
||||
|
||||
- Lors de l'impression d'une étiquette de livraison, la facture n'est plus présente
|
||||
|
||||
### Correctifs
|
||||
|
||||
- Résolution d'un problème qui pouvait se poser au moment de la sauvegarde des prix des méthodes de livraison, s'il y avait la présence de nombres décimaux
|
||||
|
||||
- Résolution d'un problème qui faisait que le prix de la commande pris en compte pour le calcul du prix de la méthode de livraison n'incluait pas les réductions liées à des coupons
|
||||
|
||||
- Résolution d'un problème qui pouvait rendre l'ouverture de la pop-up de choix du point relais impossible pour le client
|
||||
|
||||
- Résolution de la prise en charge du multisite
|
||||
|
||||
- Résolution d'un problème qui pouvait rendre le lien de suivi non-fonctionnel
|
||||
|
||||
- Résolution d'un problème qui pouvait empêcher la sélection d'un point relais si un autre avait été choisi précedemment
|
||||
|
||||
- Résolution d'un problème qui pouvait empêcher la génération du formulaire CN23
|
||||
@@ -107,7 +107,7 @@ Ahalogy wordpress plugin [version 2.1.0] is installed but Client ID not set
|
||||
|
||||
<!-- cc-child-pages -->
|
||||
<!--[if lt IE 8]>
|
||||
<link rel='stylesheet' id='ccchildpagesiecss-css' href='http://wp.local/WpVersionFinder/wordpress/wp-content/plugins/cc-child-pages/includes/css/styles.ie.css?ver=1.36' type='text/css' media='all' />
|
||||
<link rel='stylesheet' id='ccchildpagesiecss-css' href='http://wp.lab/wp-content/plugins/cc-child-pages/includes/css/styles.ie.css?ver=1.36' type='text/css' media='all' />
|
||||
<![endif]-->
|
||||
|
||||
|
||||
@@ -619,7 +619,7 @@ If above timestamp is not current time, this page is cached.</p> -->
|
||||
|
||||
<!-- movingboxes-wp -->
|
||||
<!--[if lte IE 9]>
|
||||
<link rel='stylesheet' id='mb-ie-style-css' href='http://wp.local/WpVersionFinder/wordpress/wp-content/plugins/movingboxes-wp/templates/default/css/movingboxes-ie.css?ver=0.4.2' type='text/css' media='screen' />
|
||||
<link rel='stylesheet' id='mb-ie-style-css' href='http://wp.lab/wp-content/plugins/movingboxes-wp/templates/default/css/movingboxes-ie.css?ver=0.4.2' type='text/css' media='screen' />
|
||||
<![endif]-->
|
||||
|
||||
|
||||
@@ -819,7 +819,7 @@ If above timestamp is not current time, this page is cached.</p> -->
|
||||
|
||||
<!-- voxpress -->
|
||||
<!--[if lte IE 8]>
|
||||
<link rel='stylesheet' id='ubivox-style-public-ie8-css' href='http://wp.local/WpVersionFinder/wordpress/wp-content/plugins/voxpress/styles/ubivox.public.ie8.css?ver=1.1.5' type='text/css' media='' />
|
||||
<link rel='stylesheet' id='ubivox-style-public-ie8-css' href='http://wp.lab/wp-content/plugins/voxpress/styles/ubivox.public.ie8.css?ver=1.1.5' type='text/css' media='' />
|
||||
<![endif]-->
|
||||
|
||||
|
||||
@@ -850,7 +850,7 @@ If above timestamp is not current time, this page is cached.</p> -->
|
||||
|
||||
<!-- wp-elusive-iconfont -->
|
||||
<!--[if lte IE 7]>
|
||||
<link rel='stylesheet' id='elusive-webfont-ie7-css' href='http://wp.local/WpVersionFinder/wordpress/wp-content/plugins/wp-elusive-iconfont/assets/css/elusive-webfont-ie7.css?ver=1.0' type='text/css' media='all' />
|
||||
<link rel='stylesheet' id='elusive-webfont-ie7-css' href='http://wp.lab/wp-content/plugins/wp-elusive-iconfont/assets/css/elusive-webfont-ie7.css?ver=1.0' type='text/css' media='all' />
|
||||
<![endif]-->
|
||||
|
||||
|
||||
@@ -1169,4 +1169,24 @@ s0.parentNode.insertBefore(s1,s0);
|
||||
<!-- This website uses Linkable Title Html And Php Widget v1.2.6 Wordpress plugin developed by PepLamb (PepLamb.com) -->
|
||||
|
||||
|
||||
<!-- age-okay -->
|
||||
<!--[if lt IE 10]>
|
||||
<link rel='stylesheet' id='age_okay_ie9_css-css' href='http://wp.lab/wp-content/plugins/age-okay/public/css/age-okay-public-ie9-min.css?ver=1.0.0-F' media='all' />
|
||||
<![endif]-->
|
||||
|
||||
|
||||
<!-- google-analytics-dashboard-for-wp -->
|
||||
<!-- This site uses the Google Analytics by ExactMetrics plugin v6.0.1 - Using Analytics tracking - https://www.exactmetrics.com/ -->
|
||||
|
||||
|
||||
<!-- flower-delivery-by-florist-one -->
|
||||
<!--[if lte IE 9]>
|
||||
<link rel='stylesheet' id='old-browser-css' href='http://wp.lab/wp-content/plugins/flower-delivery-by-florist-one/public/css/florist-one-flower-delivery-public-old-browser.css?ver=1.11.1' media='all' />
|
||||
<![endif]-->
|
||||
|
||||
|
||||
<!-- paypal-for-woocommerce -->
|
||||
<!-- This site has installed PayPal for WooCommerce v2.1.12 - https://www.angelleye.com/product/woocommerce-paypal-plugin/ -->
|
||||
|
||||
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user