Business Directory Plugin - Version 5.7.2

Version Description

Download this release

Release Info

Developer sswells
Plugin Icon 128x128 Business Directory Plugin
Version 5.7.2
Comparing to
See all releases

Code changes from version 5.7.1 to 5.7.2

Files changed (124) hide show
  1. README.TXT +30 -527
  2. assets/css/less/wpbdp.less +1 -1
  3. assets/css/wpbdp.min.css +1 -1
  4. assets/js/admin.js +1 -1
  5. assets/js/user-selector.js +17 -18
  6. assets/js/user-selector.min.js +1 -1
  7. business-directory-plugin.php +2 -4
  8. includes/admin/class-admin-controller.php +3 -3
  9. includes/admin/class-admin-csv.php +4 -4
  10. includes/admin/class-admin-listings.php +57 -51
  11. includes/admin/class-admin.php +765 -792
  12. includes/admin/class-csv-exporter.php +17 -8
  13. includes/admin/class-csv-import.php +61 -32
  14. includes/admin/class-listing-fields-metabox.php +3 -3
  15. includes/admin/class-listing-owner.php +56 -30
  16. includes/admin/class-listings-personal-data-provider.php +4 -4
  17. includes/admin/class-listings-with-no-fee-plan-view.php +1 -1
  18. includes/admin/class-payment-personal-data-provider.php +4 -4
  19. includes/admin/class-personal-data-privacy.php +4 -4
  20. includes/admin/class-themes-admin.php +19 -19
  21. includes/admin/csv-export.php +1 -1
  22. includes/admin/csv-import.php +11 -11
  23. includes/admin/fees.php +9 -9
  24. includes/admin/form-fields.php +45 -45
  25. includes/admin/helpers/class-fees-table.php +36 -36
  26. includes/admin/helpers/class-listing-information-metabox.php +3 -3
  27. includes/admin/helpers/class-listing-timeline.php +23 -6
  28. includes/admin/helpers/class-payments-table.php +16 -16
  29. includes/admin/page-debug.php +6 -6
  30. includes/admin/payments.php +3 -3
  31. includes/admin/settings/class-settings-admin.php +37 -37
  32. includes/admin/settings/class-settings-bootstrap.php +337 -371
  33. includes/admin/settings/class-settings.php +9 -118
  34. includes/admin/tracking.php +3 -3
  35. includes/admin/upgrades/class-installer-installation-error.php +3 -3
  36. includes/admin/upgrades/class-manual-upgrade-helper.php +13 -13
  37. includes/admin/upgrades/class-migration.php +1 -1
  38. includes/admin/upgrades/class-themes-updater.php +5 -5
  39. includes/admin/upgrades/migrations/manual-upgrade-18_0-featured-levels.php +27 -27
  40. includes/admin/upgrades/migrations/migration-17_0.php +1 -1
  41. includes/admin/upgrades/migrations/migration-18_0.php +7 -7
  42. includes/admin/upgrades/migrations/migration-3_2.php +1 -1
  43. includes/admin/upgrades/migrations/migration-3_7.php +7 -7
  44. includes/class-cpt-integration.php +114 -74
  45. includes/class-fee-plan.php +6 -10
  46. includes/class-fees-api.php +1 -1
  47. includes/class-listing-email-notification.php +5 -5
  48. includes/class-listing-expiration.php +21 -2
  49. includes/class-listing.php +27 -17
  50. includes/class-listings-api.php +1 -1
  51. includes/class-meta.php +5 -5
  52. includes/class-payment-gateway.php +2 -2
  53. includes/class-payment-gateways.php +4 -4
  54. includes/class-payment.php +17 -15
  55. includes/class-recaptcha.php +2 -2
  56. includes/class-view.php +1 -1
  57. includes/class-wpbdp.php +9 -9
  58. includes/compatibility/class-navxt-integration.php +3 -3
  59. includes/compatibility/class-wpml-compat.php +8 -2
  60. includes/fields/class-fieldtypes-checkbox.php +7 -7
  61. includes/fields/class-fieldtypes-date.php +5 -5
  62. includes/fields/class-fieldtypes-facebook.php +1 -1
  63. includes/fields/class-fieldtypes-image.php +9 -9
  64. includes/fields/class-fieldtypes-linkedin.php +2 -2
  65. includes/fields/class-fieldtypes-multiselect.php +4 -4
  66. includes/fields/class-fieldtypes-phone-number.php +1 -1
  67. includes/fields/class-fieldtypes-radiobutton.php +3 -3
  68. includes/fields/class-fieldtypes-select.php +8 -8
  69. includes/fields/class-fieldtypes-social.php +7 -7
  70. includes/fields/class-fieldtypes-textarea.php +19 -19
  71. includes/fields/class-fieldtypes-textfield.php +3 -3
  72. includes/fields/class-fieldtypes-twitter.php +2 -2
  73. includes/fields/class-fieldtypes-url.php +9 -5
  74. includes/fields/class-form-field.php +11 -11
  75. includes/form-fields.php +36 -36
  76. includes/functions.php +9 -8
  77. includes/gateways/class-gateway-authorize-net.php +14 -14
  78. includes/helpers/class-access-keys-sender.php +4 -4
  79. includes/helpers/class-category-form-input-walker.php +6 -4
  80. includes/helpers/class-fs.php +1 -1
  81. includes/helpers/class-listing-search.php +12 -4
  82. includes/helpers/listing_flagging.php +5 -5
  83. includes/installer.php +3 -2
  84. includes/licensing.php +46 -55
  85. includes/payment.php +10 -10
  86. includes/templates-ui.php +23 -10
  87. includes/themes.php +4 -4
  88. includes/utils.php +12 -12
  89. includes/views/all_listings.php +1 -1
  90. includes/views/checkout.php +7 -7
  91. includes/views/delete_listing.php +1 -1
  92. includes/views/flag_listing.php +7 -7
  93. includes/views/listing_contact.php +11 -11
  94. includes/views/login.php +4 -1
  95. includes/views/main.php +3 -3
  96. includes/views/manage_listings.php +60 -3
  97. includes/views/manage_recurring.php +5 -5
  98. includes/views/renew_listing.php +5 -5
  99. includes/views/request_access_keys.php +3 -3
  100. includes/views/search.php +2 -2
  101. includes/views/show_listing.php +3 -2
  102. includes/views/submit_listing.php +75 -51
  103. includes/widgets/class-listings-widget.php +8 -8
  104. includes/widgets/widget-featured-listings.php +4 -4
  105. includes/widgets/widget-latest-listings.php +3 -3
  106. includes/widgets/widget-random-listings.php +3 -3
  107. includes/widgets/widget-search.php +10 -10
  108. languages/WPBDM-ar.mo +0 -0
  109. languages/WPBDM-de_DE.mo +0 -0
  110. languages/WPBDM-es_ES.mo +0 -0
  111. languages/WPBDM-fr_FR.mo +0 -0
  112. languages/WPBDM-it_IT.mo +0 -0
  113. languages/WPBDM-nl_NL.mo +0 -0
  114. languages/WPBDM-pl_PL.mo +0 -0
  115. languages/WPBDM-ru_RU.mo +0 -0
  116. languages/WPBDM-sv_SE.mo +0 -0
  117. languages/business-directory-plugin-ar.mo +0 -0
  118. languages/{WPBDM-ar.po → business-directory-plugin-ar.po} +554 -502
  119. languages/business-directory-plugin-de_DE.mo +0 -0
  120. languages/{WPBDM-de_DE.po → business-directory-plugin-de_DE.po} +554 -502
  121. languages/{WPBDM-en_US.mo → business-directory-plugin-en_US.mo} +0 -0
  122. languages/{WPBDM-en_US.po → business-directory-plugin-en_US.po} +503 -496
  123. languages/business-directory-plugin-es_ES.mo +0 -0
  124. languages/{WPBDM-es_ES.po → business-directory-plugin-es_ES.po} +91 -79
README.TXT CHANGED
@@ -1,10 +1,10 @@
1
  === Business Directory Plugin - Listing Directories for WordPress ===
2
  Contributors: businessdirectoryplugin
3
- Tags: business directory, listings, directory plugin, company business directory, chamber of commerce business directory, church directory, address book, contact directory, local business directory, listings directory, link directory, member directory, staff directory
4
  Requires at least: 4.8
5
  Requires PHP: 5.6
6
  Tested up to: 5.5
7
- Stable tag: 5.7.1
8
  License: GPLv2 or later
9
 
10
  Build a local listings directory, directory of business providers, a Yellow-Pages business directory, Yelp-like review directory, property listings and more!
@@ -19,12 +19,12 @@ Business Directory Plugin allows you to take any listings you want and build a l
19
 
20
  Not only can you build a business directory, but you can also build any other kind of listings directory. Build a member directory, team or staff directory, company directory, and any other directory with our easy listing plugin.
21
 
22
- Are you ready for a simple directory website builder? With Business Directory Plugin, you can be in control without a developer.
23
 
24
- Need a classifieds listings site? Try [Another WordPress Classifieds Plugin -AWPCP](https://wordpress.org/plugins/another-wordpress-classifieds-plugin/).
25
 
26
- == Free Directory Plugin Features ==
27
- All [features](https://businessdirectoryplugin.com/features/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) documented on the main website.
28
 
29
  * Fully customizable form fields
30
  * Upload images per listing, allow restricted numbers of images based on fee plan
@@ -52,9 +52,9 @@ All [features](https://businessdirectoryplugin.com/features/?utm_source=wprepo&u
52
  These are optional, paid modules that you can use to enhance Business Directory Plugin's functionality and
53
  support future development.
54
 
55
- For a complete and detailed list of features, please visit: [BusinessDirectoryPlugin.com](https://businessdirectoryplugin.com/features/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion)
56
 
57
- * [File Upload Module](https://businessdirectoryplugin.com/downloads/file-attachments-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Allow users to upload and manage attachments on directory listings. Include PDFs, text files, and images.
58
  * [Featured Levels Module](https://businessdirectoryplugin.com/downloads/featured-levels-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Assign features to paid or sticky listing plans to give users incentive to upgrade.
59
  * [ZIP Code Search Module](https://businessdirectoryplugin.com/downloads/zip-search-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - ZIP code/postal code radius and proximity searches supporting a number of countries.
60
  * [Regions Module](https://businessdirectoryplugin.com/downloads/regions-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Location based directory listing result filtering.
@@ -63,14 +63,14 @@ For a complete and detailed list of features, please visit: [BusinessDirectoryPl
63
  * [Discount Codes Module](https://businessdirectoryplugin.com/downloads/discount-codes-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Ability to offer discount codes based on a % or fixed amount with expirations.
64
  * [Claim Listings Module](https://businessdirectoryplugin.com/downloads/claim-listings-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Post claimable listings in your business directory that other users can pay (or not) to claim.
65
 
66
- == Payment Gateway Modules (Paid) ==
67
 
68
  * [Stripe Gateway](https://businessdirectoryplugin.com/downloads/stripe-payment-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Accept paid listings with Stripe payments.
69
  * [PayPal Gateway](https://businessdirectoryplugin.com/downloads/paypal-gateway-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Accept payments using PayPal.
70
  * [2Checkout Gateway](https://businessdirectoryplugin.com/downloads/2checkout-gateway-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion)
71
  * [PayFast Gateway](https://businessdirectoryplugin.com/downloads/payfast-payment-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Accept payments using PayFast.
72
 
73
- == Premium Directory Skins ==
74
  Transform your directory the easy way. With a few clicks, our directory themes will re-skin your directory. Our directory templates are designed for more customized directories without taking over as a full WordPress theme.
75
 
76
  * [Theme Pack](https://businessdirectoryplugin.com/downloads/business-directory-theme-pack/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) (best deal!)
@@ -86,6 +86,10 @@ For more information please visit [businessdirectoryplugin.com](https://business
86
 
87
  Love Business Directory plugin? [Please consider purchasing a Premium Module](https://businessdirectoryplugin.com/premium-modules/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion)!
88
 
 
 
 
 
89
  == Installation ==
90
  Please see our detailed [Installation Guide](https://businessdirectoryplugin.com/knowledge-base/installation-guide/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion), the [Getting Started Guide](https://businessdirectoryplugin.com/article-categories/getting-started/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) for common how-to scenarios, and our [Initial Setup](https://businessdirectoryplugin.com/knowledge-base/installation-guide/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) page for instructions on how to get going quickly with Business Directory Plugin.
91
 
@@ -95,11 +99,6 @@ Please see our detailed [Installation Guide](https://businessdirectoryplugin.com
95
 
96
  [Visit the main site for feature lists and screenshots](https://businessdirectoryplugin.com/features/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion)
97
 
98
-
99
- == Usage Doc ==
100
-
101
- For complete documentation on the plugin, please visit the [BD Documentation Site](https://businessdirectoryplugin.com/knowledge-base/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion). We also have a complete [FAQ Section](https://businessdirectoryplugin.com/article-categories/faqs/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) and our [Quick Start](https://businessdirectoryplugin.com/article-categories/getting-started/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) guide.
102
-
103
  == Frequently Asked Questions ==
104
 
105
  For the definitive FAQ section, please visit the [FAQ Section](https://businessdirectoryplugin.com/article-categories/faqs/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion), or our [Getting Started](https://businessdirectoryplugin.com/article-categories/getting-started/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) guide.
@@ -119,7 +118,7 @@ Whatever theme you pick, we recommend using the Theme Check plugin (available fo
119
 
120
  In general, we like WooThemes as a solid company with great products and support. You can check them out [here](http://woothemes.com) Or [StudioPress](http://studiopress.com​​)
121
 
122
- = Can Business Directory be translated into my language? =
123
  Yes it can. Business Directory Plugin comes with many user-provided translations under the /languages folder. It is already available in the following languages:
124
 
125
  * Spanish
@@ -131,7 +130,7 @@ Yes it can. Business Directory Plugin comes with many user-provided translations
131
  * Arabic
132
  * Swedish
133
 
134
- And you can easily [translate it yourself](https://businessdirectoryplugin.com/knowledge-base/translating-bd-other-language/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) if you need to.
135
 
136
  = Is Business Directory Plugin compatible with WordPress Multisite (WPMU)? =
137
  Yes it is. However, you cannot "network-activate" the plugin (as this will share the database). Activate it on only the subsites on which you need a directory. This can be done under Plugins->Add New as the Administrator user. Do not "network activate" BD as the "super admin".
@@ -156,6 +155,19 @@ Our directory website builder software combined with our add-on modules is the m
156
 
157
  == Changelog ==
158
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
  = Version 5.7.1 =
160
  * Fix Random Listings shortcode attributes. (#4601)
161
  * Add data-breakpoints to directory container. (#4607)
@@ -183,513 +195,4 @@ Our directory website builder software combined with our add-on modules is the m
183
  * Move 'WPBDP_URL' definition to 'init' action. (#4592)
184
  * Update jQuery File Upload to 10.30.1 version. (#4599)
185
 
186
- = Version 5.6.2 =
187
- * Allow selecting listing images from WP media library on admin dashboard.
188
- * Allow admins to select images from WP Media for Image fields on dashboard. (#4517)
189
- * Restore ability to edit listings URL. (#4421, #4496)
190
- * Fix payments detailed view. (#4510, #4527)
191
- * Update German translation strings.(#4508)
192
- * Add 'form_only' parameter for [businessdirectory-search] shortcode. (#4520)
193
- * Add nofollow to detailed view buttons, as attribute to <form> HTML tag. (#4458)
194
- * Change curly braces to square brackets for access string offset. (#4526)
195
- * Prevent listing status not set to completed on admin dashboard submit. (#4532)
196
-
197
- = Version 5.6.1 =
198
- * New setting to set a limit for listing contact submits for logged in users. (#4411)
199
- * New placeholders to 'Email confirmation message' template to include fee information. (#4480)
200
- * New notification template for completed payments. (#4480)
201
- * Prevent fatal error when trying to access to payment details of a deleted payment. (#4455)
202
- * Allow Private fees CSS rules on frontend. (#4462)
203
- * Include to directory links to prevent been crawled by search engines. (#4458)
204
- * Prevent including image to structured data when is not available. (#4468)
205
- * Use listing images ordering weight in detailed view. (#4481)
206
- * Fix new listing Admin notice including listing preview URL. (#4487)
207
- * Prevent pending_payment listings to be published before payment is completed. (#4487)
208
- * Prevent Private fields to be rendered on frontend for non-admin users. (#4490)
209
- * Match label and input ID for username and email on submit listing view to improve accessibility. (#4492)
210
-
211
- = Version 5.6.0.1 =
212
- * Improve Listing Options UI using sub-tabs. (#4459)
213
- * Refactor print receipt script to improve layout styling. (#4437)
214
- * Preformat recepient data before using 'foreach' PHP function. (#4465)
215
- * Validate variable is defined to prevent PHP notice.
216
-
217
- = Version 5.6 =
218
- * Add CSV Import setting to set existing listings import status. (#4409)
219
- * Add listing_id as argument for wpbdp_listing_schema_org filter. (#4414)
220
- * Create wpbdp_listing_schema_org filter to allow customer modifying/including Schema.org items to listings. (#4414)
221
- * Support multiple recipients on listing email address for notifications. (#4406)
222
- * Upgrade jQuery File Upload to version 10.7.0. (#4426)
223
- * Use WooCommerce version of select2 lib scripts to enhance BD accesibility. (#4440)
224
- * Fix renewal notification admin CC. (#4420)
225
- * Generate 404 when trying to access to a listing using ID and wrong slug. (#4421)
226
- * Fix twitter social fields alignment on listing detail view. (#4444)
227
-
228
- = Version 5.5.14 =
229
- * Fix layout and style in login BD view.
230
- * Fix listings email notification for free fees.
231
- * Prevent fatal error on abandoned payment notification class when listing is not available.
232
- * Prevent reCAPTCHA scripts load when not used on BD pages.
233
- * Update 'manage_recurring' URL inside recurring warning when deleting a listing.
234
- * Fix CSV import row number. Allow importing 1 listing CSV file.
235
- * Allow main box (quick search) renders when is called from shortcode.
236
- * Modify 'CC this e-mail address too' option usage to support multiple addresses.
237
- * Fix new listings status and email notification after submit issues.
238
-
239
- = Version 5.5.13.1 =
240
- * Validate queried object exists and is valid before setting BD query var. (#4385)
241
-
242
- = Version 5.5.13 =
243
- * Allow Plugin uninstall even if there are active subscriptions.
244
- * Allow Zip Code Search field catch a filter to change textarea value.
245
- * Make sure WPBDP_Admin class file was loaded before instantiate.
246
- * Fix Auth.net postback processing warning.
247
- * Remove password fields for account creation during listing submits (WP confirmation email is used instead).
248
- * Format checkbox fieldtype options before rendering in submit/edit view.
249
- * Style Plugin layout for Twenty Twenty WP theme.
250
- * Prevent unpaid listings to go published.
251
- * Create setting to allow reCAPTCHA validation when editing listings.
252
-
253
- = Version 5.5.12 =
254
- * Allow access to search shortcode.
255
- * Remove not used query var to prevent compatibility issues.
256
- * Cast listing keys array to prevent invalid foreach argument in random listings Widget.
257
- * Verify renewal reminder email was sent after clicking the button on listing WP dashboard.
258
- * Add notice for admins when submit listing is restricted due to no fee plans available.
259
- * Apply filters to textarea input to support zip code search.
260
-
261
- = Version 5.5.11 =
262
- * Run iframe resize script after using document.ready JS action. (#4273)
263
- * Modify Random widget query to prevent using RAND() SQL function. (#4283)
264
- * Validate Field Label and Description max Length while adding/editing a listing. (#4286)
265
- * Keep Radio button field options if there are validation errors on save process.
266
- * Use user's first and last name (when available) to fill listing contact email template [name] placeholder. (#4289)
267
- * Redirect empty quick searches to "all listings" view. (#4303)
268
- * Fix featured listings shortcode to prevent displaying listings twice in different pages. (#4308)
269
-
270
- = Version 5.5.10 =
271
- * Display BD themes updates notifications and handle upgrades through Core Plugin.
272
- * Include [link-raw] placeholder for listing expiration notices.
273
- * Add setting for twitter field to enable follower count display.
274
- * Sanitize field label before applying wpbdp_display_field_label filter.
275
- * Allow listing owners editing listings with private fees.
276
- * Fix expiration date after listing renewal payment.
277
- * Remove non-used query var that could cause compatibility issues.
278
-
279
- = Version 5.5.9 =
280
- * Validate Beaver Builder Classes existence before setting compatibility code.
281
- * Set height tolerance for listing thumbnails.
282
- * Prevent workflow on WP_Error results.
283
-
284
- = Version 5.5.8 =
285
- * Make BD ADA compliant.
286
- * Include "Created Date" and "Modified Date" support for Listings CSV Export.
287
- * Hide required symbol and field description inside widgets
288
- * Fix quick search integration with BD modules.
289
- * Add compatibility with Cornerstone Page Builder Plugin.
290
- * Preserve WP permalink structure for Directory URLs.
291
- * Style receipt printing in checkout pages.
292
- * Validate field existence before calling method.
293
- * Update Italian translations.
294
- * ADD Compatibility for Beaver Themer.
295
- * Add "wpbdp_supported_post_types" filter to maybe include CPTs as supported post types for shortcodes.
296
- * Upgrade jQuery-File-Upload library version to 9.32.0.
297
- * Fix access key login redirection.
298
- * Fix renewals login authentication parameters.
299
- * Update German translations.
300
- * Sanitize URL attribute on listings sort links preventing XSS attacks.
301
-
302
- = Version 5.5.7 =
303
- * Validate image size before setting listing thumbnail image.
304
-
305
- = Version 5.5.6 =
306
- * Fix quick search for multiple keywords.
307
- * Restore BD thumbnail image size name.
308
- * Fix order_by for sortbar queries.
309
- * Validate order_by content to prevent SQL errors.
310
- * Improve phone number field value validation.
311
- * Reword listing thumbnail size setting and include a description.
312
- * Fix behavior for social fieldtype with empty social_type value when icon display only setting is selected.
313
-
314
- = Version 5.5.5 =
315
- * New option to select listing main image size.
316
- * Validate pagination query argument for front page usage.
317
- * Split quick search query to prevent long queries and improve search speed.
318
- * Use "break" instead of "continue" when breaking switch case.
319
-
320
- = Version 5.5.4 =
321
- * Include Italian translations for Core Plugin.
322
- * Split listing search query to prevent long queries fails and improve search speed.
323
- * Fix regions CSV import parent regions association.
324
- * Prevent social-text or social-icons inputs been rendered depending on social field settings.
325
- * Change URL field value for empty input text.
326
- * Fix empty values validation for select form fields.
327
- * Display directory view under listing delete notice.
328
- * Filter empty address fields in payment payer address.
329
- * Include "Thank you for payment message" in submit confirmation page.
330
-
331
- = Version 5.5.3 =
332
- * Modify URL validator to improve URL filtering.
333
- * Upgrade Select2 version to 4.0.5.
334
- * Add "payment method required" notice for 100% discounted checkouts with recurring payments.
335
- * Add closing slash for directory posts links.
336
- * Combine fieldtype options and available Tags when displaying BD tags field.
337
- * Use tag instead of tag to render SVG social icons.
338
- * Fix redirect variable name.
339
-
340
- = Version 5.5.2 =
341
- * Prevent URL bugs for multi-site sites and child sites.
342
- * Add missing "Category" association field warning in Submit listing view.
343
- * Include "fee_id" in CSV headers table and import example.
344
- * Fix social fields layout in default theme.
345
- * Prevent infinite loop when default listing logs recreation fails.
346
- * Include "Private" listings in CSV export..
347
- * Add redirect_to parameter for non logged-in users trying to access to Manage Listings View.
348
- * Include "return to" button to go back to search, category and tag views.
349
- * Add social networks logos SVG files to be used by social fieldtype.
350
-
351
- = Version 5.5.1 =
352
- * Sanitize fee plan supported categories.
353
- * Prevent "Initial Payment" record generation when editing a listing.
354
- * Change user-agent parameter in license activation/deactivation and modules version check requests.
355
-
356
- = Version 5.5 =
357
- * Add support for private (admin-visible only) fee plans.
358
- * Add support for WP GDPR privacy hooks.
359
- * Include 'author', 'created date' and 'modified date' to listing display helpers.
360
- * Set listing thumbnail image when using CSV exporter/importer.
361
- * Add batch-size option to CSV Import settings.
362
- * Add option to include fee description in listing receipt.
363
- * Add Field ID and Shortname in Manage Form Fields Table.
364
- * Add option to allow/disallow Font Awesome styles enqueueing.
365
- * Add support for reCAPTCHA 3.0.
366
- * Fix category specific fee display in submit listing view.
367
- * Remove nofollow attribute from categories links.
368
- * Keep array keys when sorting images.
369
- * Add missing variable name in class-admin-listings.php.
370
- * Fix CSV Import/Export for social fields.
371
- * Sanitize textfield data before save and CSV export.
372
- * Verify listing's last payment status in renewals.
373
-
374
- = Version 5.4 =
375
- * New Form Field Type to handle Facebook, Twitter, LinkedIn, YouTube, Pinterest, Instagram, Tumblr, reddit, Flickr Social Networks, the field can handle other social fields, allowing users to upload the social network Icon.
376
- * Handle listing featured image set in dashboard.
377
- * Allow private fields to be displayed to admin users only.
378
- * Prevent layout break when trying to upload images no slots remaining.
379
- * Fix themes thumbnails aspect in Directory Themes page.
380
- * Remove extra spaces from search keywords before searching.
381
- * Send listing published notification when new listings status is "publish".
382
- * Update listing fee plan for free renewals.
383
- * Use Image BD Caption as title and alternative text.
384
- * Fix BD Default Theme styling in Twenty Nineteen Theme.
385
-
386
- = Version 5.3.4 =
387
- * Auto-create new BD Tags from multi-valuated (Select lists, Checkbox and Radio Button) field options.
388
- * List available BD Tags in "Directory Tags" metabox.
389
- * Add AED to supported currencies list.
390
- * Prevent listing buttons layout break in Gutenberg.
391
- * Prevent contact form layout break in Gutenberg.
392
- * Reorder client IP retrieving from environment variable.
393
- * Display account creation section before T&C.
394
- * Update integration with WPML plugin.
395
- * Update Submit listing workflow for category specific fields.
396
- * Add missing translations in submit-listing.js file.
397
-
398
- = Version 5.3.3 =
399
- * Include a link to delete listing's payment history using AJAX.
400
- * Add sort options filter to be used by modules.
401
- * Allow plan change in renew listing process.
402
- * Allow free listing renewal without payment gateway.
403
- * Allow validators to admin only (private) fields.
404
-
405
- = Version 5.3.2.1 =
406
- * Fixed issue where images showed on wrong side of listing.
407
-
408
- = Version 5.3.2 =
409
- * Add compatibility for ACF plugin used by Bold Move theme.
410
- * Update use-default-picture setting to select which views use default picture.
411
- * Open listing thumbnail in thickbox when setting is enabled.
412
- * Minor edit email notification template fixes.
413
- * Prevent fee plan auto-select in listing submit when multiple categories can be selected.
414
- * Set listing thumbnail as post thumbnail meta to improve SEO.
415
- * Prevent Login Redirect to main BD page if no referrer and user is not logged in.
416
- * Add missing html closing tag in login template.
417
-
418
- = Version 5.3.1 =
419
- * CSV export/import integration for image fieldtype (image_id and caption).
420
- * Fix expiration dates on listing information metabox for non-expiring listings.
421
- * Update WPML compatibility.
422
- * Allow delete the email notice applying to the expiration time of non-recurring listings.
423
- * Prevent login page redirect loop.
424
- * Prevent Divi issue with alpha filtering.
425
- * Prevent category specific validation when in preview form.
426
- * Fix typo in listing buttons template.
427
-
428
- = Version 5.3 =
429
- * Add enabled class for reCaptcha container in submit listing view.
430
- * Include validator for number of words in textfield and textarea fieldtypes.
431
- * Revert ACF compatibility, it could cause incompatibility with Yoast.
432
- * Add support for category specific fields in submit listing.
433
-
434
- = Version 5.2.2.1 =
435
- * Fixed fatal error specific to PHP 5.6.
436
-
437
- = Version 5.2.2 =
438
- * Validate current query is from BD before trying to modify pagination link.
439
- * Style contact form for better space usage.
440
- * Add missing parameter to get excerpt value.
441
- * Add pagination parameter to all shortcodes where it applies.
442
- * Include quick search filter to be used by modules.
443
- * Verify content field emptiness in textarea field.
444
-
445
- = Version 5.2.1.1 =
446
- * Added missing email bug fix
447
-
448
- = Version 5.2.1 =
449
- * Add compatibility with Advanced Custom Fields Plugin.
450
- * Allow empty value to clear Date fieldtype.
451
- * Extend expiration date for listings renewed before expiring.
452
- * Add description for quick search in general options when no fields are selected.
453
- * Update listing properties according to fee plan after payments.
454
- * Add email address when reporting a listing.
455
- * Fix quotes to prevent thickbox not been used in listing detail view.
456
- * Verify recaptcha.render exists before execution.
457
- * Refactor pagination in shortcodes.
458
- * Add compatibility to WPBDP_Email class with external email plugins.
459
- * Enhance Long Description field as excerpt in list view.
460
- * Add option to disable expiration emails.
461
-
462
- = Version 5.2 =
463
- * Add pagination to Latest, Random, Featured listings shortcodes.
464
- * Add [placeholders] to email notice templates.
465
- * Fix links where target="_blank" to include additional parameter to avoid XRF.
466
- * Prevent Link opens same page in listing view.
467
- * Update Scroll after plan selection and display T&C as last section in submit listing.
468
- * Add compatibility with Custom Permalinks plugin.
469
- * Add thumbnail and listing images compatibility for WPML translations.
470
- * Minor fixes for New Listing Notification email template.
471
-
472
- = Version 5.1.9 =
473
- * Fix CSV Importer to create initial payment for imported listings.
474
- * Do not renew listings with pending initial payments.
475
- * Allow [businessdirectory-listings] to use 'category' and 'tag' params together.
476
- * Fix code that prevents spamming listing owners.
477
- * Create necessary columns to prevent an old migration routine from failing.
478
- * Fix a bug that caused abandoned payment notifications to be sent, even if the feature was disabled.
479
- * Fix recent email problems.
480
-
481
- = Version 5.1.8 =
482
- * Update Form Field ‘tag’ attribute when the field's association changes.
483
- * Show 'No listing found' error message on Edit Listing when no listing ID is provided.
484
- * Add option to prevent sticky listings from floating to the top of directory view.
485
- * Prevent users from editing any listing by using the listing ID.
486
- * Update German translation for Terms and Conditions link.
487
-
488
- = Version 5.1.7 =
489
- * Update German translation.
490
- * Show an indicator when listings are created without a fee plan.
491
- * Update error message when trying to change from/to URL or Image field types.
492
- * Form Fields on Submit listing and Preview Form now use all available width.
493
- * Submit listing now supports requiring at least one image is uploaded.
494
- * Remove 'Please select a category' error that appears incorrectly.
495
- * Prevent extra images from appearing when main image is deleted.
496
- * Fix uncaught Exception error on Listing Subscription.
497
- * Set a Listing as 'Featured' when it's fee plan 'Is featured listing/sticky?' setting is updated.
498
- * Update documentation links in plugin admin interface.
499
- * Prevent URL form field inputs from been hidden or out of container in submit/edit view.
500
- * Prevent form from been cleared when changing plan during Submit.
501
- * Add support for 'multipart/alternative' Content-Type in emails.
502
- * Include “Select All” option in Checkbox fields.
503
- * Add admin notices when a fee plan doesn’t meet requirements to be set as recurring.
504
- * Update listing information metabox according to plan change.
505
- * Make Listing's Access Key available to email templates through the new [access_key] placeholder.
506
-
507
- = Version 5.1.6.1 =
508
- * Fixed issue where PHP versions earlier than 5.6 had fatal error in flagging
509
-
510
- = Version 5.1.6 =
511
- * Add support to require that one image is uploaded with a listing.
512
- * Add Flag Listing feature.
513
- * Use plugin/module version to register scripts and styles.
514
- * Fix error in renewal email.
515
- * Fix incorrect translation to French for "Disable advanced CPT integration" setting.
516
- * Prevent more than one filter set as "current" in Directory list.
517
- * Improve behavior of TinyMCE editor on Submit and Edit Listing views.
518
- * Remove the ability to edit the “Featured” status from “Listing Information” metabox.
519
- * Restore Renew Listing and Manage Recurring Payments views.
520
- * Add “for” attribute to radio buttons “label” tags in settings page.
521
- * Reduce number of requests to get version information and check for license status.
522
- * If you configured the plugin to send copy (CC) of admin notifications to a different email address, the Claim Listing notification messages will now be send to that other address as well.
523
-
524
- = Version 5.1.5 =
525
- * Add deprecation comment for login-required template.
526
- * Fix PHP warnings and notices on Add New Listing admin screen.
527
- * Fix PHP Fatal error on Payments API.
528
- * Render 3rd party shortcodes on All Listings & Search views.
529
- * Update Manage Listings View to support Login URL setting.
530
- * Update store URL to use HTTPS.
531
-
532
- = Version 5.1.4 =
533
- * Fix SQL errors on functions that configured views for Directory admin screen.
534
- * Prevent SQL trying to count number of listings on categories and regions.
535
- * Fix: Navigating away from Edit Listing causes categories to be lost.
536
- * Fix PHP warnings and notices on Add New Listings.
537
- * Do not allow title, content and category fields to be marked as private.
538
-
539
- = Version 5.1.3 =
540
- * Add error message for revoked licenses.
541
- * Fix support for cyrillic characters in taxonomies slugs.
542
- * Do not change button padding if BD buttons style is disabled.
543
- * Fix JavaScript problem in E-mail Templates settings page.
544
- * Show indicator for required fields in Search form.
545
- * Restore abandoned payment email notification.
546
- * Allow users to restart abandoned payments.
547
- * Workaround missing `tag` column in `wpbdp_payments` table.
548
- * Add 'Send access keys' bulk action.
549
- * Update Spanish translation to include 100% of strings.
550
- * Add a CSS class for category id on list view.
551
- * Fix Date fields not working properly on Search.
552
- * Add Publish listings, Mark as pending review, Hide from directory bulk actions.
553
- * Restore post views on Manage Listing admin screen.
554
- * Display listing status as attribute in the attribute column.
555
- * Update Swedish translations.
556
- * Restore support for HTML in field descriptions.
557
- * Make sure admin receives the exact same contact e-mail as owners.
558
- * Fix required validator for multiselct, radio and checkbox fields.
559
- * Add wpbdp-listing-category-id-[ID] CSS class to listings on Listings view.
560
- * Add support for private fields for listings.
561
- * Allow content fields to be truncated on excerpt view.
562
- * Fix listing's admin URL in some notification e-mails.
563
- * Fix search by username on Manage Listings.
564
- * Add back the confirmation message for settings reset.
565
- * Update code to fix attachment's path.
566
- * Update appearance of Add Attachment form.
567
- * Update French translation.
568
- * Update Claim Listings module to support Login URL setting.
569
- * Automatically strip leading and trailing spaces when the value for the Google Maps API key setting is saved.
570
- * Fix Migrate plugin to work without Regions.
571
- * Update code used to verify PayPal IPNs.
572
- * Make 'Post Your Review' form visible on all devices.
573
- * Fix error that caused recurring listings not to be renewed even though payment was received.
574
- * Allow users to restart abandoned payments.
575
- * Now admins can choose ZIP code search modes.
576
- * Show full path to 'db' directory on ZIP Code Search.
577
- * Added support for Brazil's postal codes.
578
-
579
- = Version 5.1.2 =
580
- * Do not automatically select the first available category during listing submit.
581
- * Do not show payment receipt at the end of the submit process when listing is free.
582
- * Skip plan selection when there's only one plan available.
583
- * Do not show "Continue to Payment" label when directory is in free mode.
584
- * Add some compatibility code to prevent fatal errors when using the Facebook Open Tags plugin.
585
-
586
- = Version 5.1.1 =
587
- * Improve format detection for expiration dates on CSV imports.
588
- * Updated French translation.
589
- * Fix support for reCAPTCHA for listing submits.
590
- * Fix PHP notice in checkout view.
591
- * Execute admin views in a more adequate hook.
592
-
593
- = Version 5.1 =
594
- * Update CSV import & export to include/support fee plan information.
595
- * Allow multiple manual upgrades to be executed together.
596
- * Add hooks for customization of the contact form.
597
- * Add support for admin/customer renewal notification.
598
- * Add a post status filter to the backend.
599
- * Show "Listing Instructions" during submit.
600
- * Allow admins to upload images on the backend even for listings with no associated plan.
601
- * Allow admins to sort listings according to fee plan ordering.
602
- * Prevent number_format() expects parameter 1 to be float warning.
603
- * Hide submit's "Listing Images" section when images are globally disabled.
604
- * Fix PHP warnings when running on PHP 5.2.
605
- * Do not export rating values during CSV exports.
606
- * Fix PHP warning when choosing an image as the listing's thumbnail on the backend.
607
- * Fix a problem detecting listings associated to a given e-mail when using access keys.
608
- * Make sure database options are returned with the correct PHP type.
609
- * Dispatch admin views earlier to fix "headers already sent" PHP errors.
610
- * Prevent listings from being marked as "Featured" on the backend even when their plan doesn't have this flag.
611
- * Fix false validation errors on Date fields.
612
- * Save image meta (caption, position) correctly during submit.
613
-
614
- = Version 5.0.5 =
615
- * Add support to assign listing's fee plan during import.
616
- * Twitter field accepts Twitter handles only; no URLs are allowed. Now is not possible to add a URL validator to this field.
617
- * Fix JavaScript conflict with AWPCP.
618
- * Improved Uninstall workflow.
619
- * Fix a bug that caused region data to be ignored during import.
620
- * Update appearance of fee plans in Submit Listing view.
621
- * Fix a bug that made it impossible to edit email templates that included HTML tags.
622
- * Make sure 'flat' is always the pricing model for the free plan.
623
- * Do not show "Continue to Payment" if the Directory is in free mode.
624
-
625
- = Version 5.0.4 =
626
- * Correct priority of translation loading for premium modules.
627
- * Workaround a WP bug affecting hook names for sites using translations (https://core.trac.wordpress.org/ticket/18857)
628
- * Fix Featured Listings shortcodes.
629
- * Update CSV import & export icons.
630
- * Change e-mail subject for default expiration notices.
631
- * Move "Uninstall" link back to a menu item.
632
-
633
- = Version 5.0.3 =
634
- * Support WPML integration during Ajax requests.
635
- * Fix a problem in single-select category selector.
636
- * Fix encoding problem with redirect_to argument in Login view.
637
- * Listings can now be renewed before they expire.
638
- * Show registration and password reminder links in login form again.
639
- * Support migration from very old versions of BD.
640
- * Remove upgrade/downgrade to featured from bulk actions.
641
- * Fix bug that caused translation files for modules not to be loaded.
642
- * Allow WPML to translate fee descriptions.
643
- * Allow plugins to modify the settings callback on the admin.
644
-
645
- = Version 5.0.2 =
646
- * Fix load_textdomain() in WPBDP class.
647
- * Fix 'Undefined index: regions-slug' notice.
648
- * Fix behavior of fees table in Manage Fees.
649
- * Add integration for Advanced Excerpt plugin.
650
- * Add warning about PHP version requirements.
651
- * Update translation files for French.
652
- * Fix error that prevented "Preview Form" from working.
653
- * Fix compatibility issue that prevented Regions module from working correctly.
654
- * Fix some problems with the renewal process.
655
- * Update message shown for license activation errors.
656
-
657
- = Version 5.0.1 =
658
- * Fix link generation bug in WPML integration.
659
- * Do not disable "Choose One" option on search for single-valued selects.
660
- * Fix Fatal error in PHP 7.1 when too few arguments are passed to one of the plugin functions.
661
- * Prevent PHP Warning "Invalid argument supplied for foreach()" in Query Integration class.
662
- * Fix "Fatal error: Cannot create references to elements of a temporary array expression" from PHP 5.4 to allow users to see they're on an old PHP.
663
- * Prevent a Fatal error caused by Featured Levels 4.x during manual upgrade
664
-
665
- = Version 5.0 =
666
- * Added support for new fee plan pricing models: flat price, category-based, base + extra amount per category
667
- * Added a new Payments screen to manage all payments.
668
- * When sorting listings using the paid/free option, the paid amount is now taken into consideration.
669
- * Completely redesigned category and fee plan selection.
670
- * Listing statuses and attributes have been redesigned for improved UX on the backend.
671
- * Listing expiration date is now shown as a column on the backend.
672
- * Listings submitted by anonymous users can now be edited/renewed using Access Keys.
673
- * Added support for creating an account during listing submit.
674
- * Listing now have just one fee plan associated to them instead of one per category
675
- * Listing renewal now keeps the featured flag. (#634)
676
- * Listings can now have different background colors depending on their fee plan.
677
- * Added normalized CSS classes and IDs for listing views.
678
- * Redesigned listing information metabox.
679
- * Completely redesigned listing submit workflow using AJAX.
680
- * Added a "Timeline" metabox on the backend to clearly see a listing's history.
681
- * Admins can now create any number of listing expiration/reminder notices.
682
- * Simplify how premium modules integrate into BD.
683
- * Added business directory-quick-search shortcode to display the Quick Search form.
684
- * Added warning when reaching the image limit during listing submit/edit.
685
- * Allow users to edit categories for their listing if the plan allows it.
686
- * Added option to sort listings using the configured sort for their fee plans.
687
- * Added several hooks to allow adding content during the submit process and in other templates.
688
- * Allow admins to mark some fields as required for searching.
689
- * Added a more reliable cron implementation for scheduled events.
690
- * Refreshed the Settings API implementation to increase speed, reduce queries and add validation support.
691
- * Redesigned the settings screen for better UX.
692
- * Increased reliability of upgrades.
693
- * Added a new log mechanism for better debugging.
694
- * Updated the premium module initialization API.
695
- * License and update checking has been merged to cover both themes and premium modules, reducing external requests.
1
  === Business Directory Plugin - Listing Directories for WordPress ===
2
  Contributors: businessdirectoryplugin
3
+ Tags: business directory, listings, directory plugin, staff directory, member directory, company business directory, chamber of commerce business directory, church directory, address book, contact directory, local business directory, listings directory, link directory
4
  Requires at least: 4.8
5
  Requires PHP: 5.6
6
  Tested up to: 5.5
7
+ Stable tag: 5.7.2
8
  License: GPLv2 or later
9
 
10
  Build a local listings directory, directory of business providers, a Yellow-Pages business directory, Yelp-like review directory, property listings and more!
19
 
20
  Not only can you build a business directory, but you can also build any other kind of listings directory. Build a member directory, team or staff directory, company directory, and any other directory with our easy listing plugin.
21
 
22
+ Are you ready for a simple directory website builder for WordPress? With Business Directory Plugin, you can be in control without a developer.
23
 
24
+ Need a classifieds listings site? Try [Another WordPress Classifieds Plugin - AWPCP](https://wordpress.org/plugins/another-wordpress-classifieds-plugin/).
25
 
26
+ == Free Business Directory Plugin Features ==
27
+ See all [directory features](https://businessdirectoryplugin.com/features/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion).
28
 
29
  * Fully customizable form fields
30
  * Upload images per listing, allow restricted numbers of images based on fee plan
52
  These are optional, paid modules that you can use to enhance Business Directory Plugin's functionality and
53
  support future development.
54
 
55
+ For a complete and detailed list of business directory features, please visit: [BusinessDirectoryPlugin.com](https://businessdirectoryplugin.com/features/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion)
56
 
57
+ * [File Upload Module](https://businessdirectoryplugin.com/downloads/file-attachments-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Allow users to upload and manage attachments on directory listings. Include PDFs, text files, and images in business listings.
58
  * [Featured Levels Module](https://businessdirectoryplugin.com/downloads/featured-levels-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Assign features to paid or sticky listing plans to give users incentive to upgrade.
59
  * [ZIP Code Search Module](https://businessdirectoryplugin.com/downloads/zip-search-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - ZIP code/postal code radius and proximity searches supporting a number of countries.
60
  * [Regions Module](https://businessdirectoryplugin.com/downloads/regions-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Location based directory listing result filtering.
63
  * [Discount Codes Module](https://businessdirectoryplugin.com/downloads/discount-codes-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Ability to offer discount codes based on a % or fixed amount with expirations.
64
  * [Claim Listings Module](https://businessdirectoryplugin.com/downloads/claim-listings-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Post claimable listings in your business directory that other users can pay (or not) to claim.
65
 
66
+ == Payment Gateways for Paid Business Directory Listings (Premium) ==
67
 
68
  * [Stripe Gateway](https://businessdirectoryplugin.com/downloads/stripe-payment-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Accept paid listings with Stripe payments.
69
  * [PayPal Gateway](https://businessdirectoryplugin.com/downloads/paypal-gateway-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Accept payments using PayPal.
70
  * [2Checkout Gateway](https://businessdirectoryplugin.com/downloads/2checkout-gateway-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion)
71
  * [PayFast Gateway](https://businessdirectoryplugin.com/downloads/payfast-payment-module/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) - Accept payments using PayFast.
72
 
73
+ == Premium Business Directory Skins ==
74
  Transform your directory the easy way. With a few clicks, our directory themes will re-skin your directory. Our directory templates are designed for more customized directories without taking over as a full WordPress theme.
75
 
76
  * [Theme Pack](https://businessdirectoryplugin.com/downloads/business-directory-theme-pack/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) (best deal!)
86
 
87
  Love Business Directory plugin? [Please consider purchasing a Premium Module](https://businessdirectoryplugin.com/premium-modules/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion)!
88
 
89
+ == Usage Doc ==
90
+
91
+ For complete documentation on the plugin, please visit the [BD Documentation Site](https://businessdirectoryplugin.com/knowledge-base/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion). We also have a complete [FAQ Section](https://businessdirectoryplugin.com/article-categories/faqs/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) and our [Quick Start](https://businessdirectoryplugin.com/article-categories/getting-started/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) guide.
92
+
93
  == Installation ==
94
  Please see our detailed [Installation Guide](https://businessdirectoryplugin.com/knowledge-base/installation-guide/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion), the [Getting Started Guide](https://businessdirectoryplugin.com/article-categories/getting-started/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) for common how-to scenarios, and our [Initial Setup](https://businessdirectoryplugin.com/knowledge-base/installation-guide/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) page for instructions on how to get going quickly with Business Directory Plugin.
95
 
99
 
100
  [Visit the main site for feature lists and screenshots](https://businessdirectoryplugin.com/features/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion)
101
 
 
 
 
 
 
102
  == Frequently Asked Questions ==
103
 
104
  For the definitive FAQ section, please visit the [FAQ Section](https://businessdirectoryplugin.com/article-categories/faqs/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion), or our [Getting Started](https://businessdirectoryplugin.com/article-categories/getting-started/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) guide.
118
 
119
  In general, we like WooThemes as a solid company with great products and support. You can check them out [here](http://woothemes.com) Or [StudioPress](http://studiopress.com​​)
120
 
121
+ = Can Business Directory Plugin be translated into my language? =
122
  Yes it can. Business Directory Plugin comes with many user-provided translations under the /languages folder. It is already available in the following languages:
123
 
124
  * Spanish
130
  * Arabic
131
  * Swedish
132
 
133
+ And you can also easily [translate it yourself](https://translate.wordpress.org/projects/wp-plugins/business-directory-plugin/).
134
 
135
  = Is Business Directory Plugin compatible with WordPress Multisite (WPMU)? =
136
  Yes it is. However, you cannot "network-activate" the plugin (as this will share the database). Activate it on only the subsites on which you need a directory. This can be done under Plugins->Add New as the Administrator user. Do not "network activate" BD as the "super admin".
155
 
156
  == Changelog ==
157
 
158
+ = Version 5.7.2 =
159
+ * New: Switch language domain to 'business-directory-plugin' so the WP/org translating can be used. If you have custom translations, you'll need to rename to file from WPBDM-{language_code}_{Country_code} to business-directory-plugin-{language_code}_{Country_code}.
160
+ * New: Store "Terms and Conditions" consent date and display the data in directory listing timeline.
161
+ * New: Allow free listings to be recurrent.
162
+ * New: Added button in main box for accessing to Manage Listings View.
163
+ * New: Merge directory menus together under a unique "Directory".
164
+ * New: Update admin menu icon to match WordPress.
165
+ * Fix: Add labels to checkboxes and radio button to enhance accessibility.
166
+ * Fix: Enhance Access Key Login validation.
167
+ * Fix: Include owner's 'pending' and 'drafted' listings on Manage Listings View.
168
+ * Fix: Issue with translation array keys for multivalued fields options.
169
+ * Fix: Issue with the quick search behavior when search keyword is empty.
170
+
171
  = Version 5.7.1 =
172
  * Fix Random Listings shortcode attributes. (#4601)
173
  * Add data-breakpoints to directory container. (#4607)
195
  * Move 'WPBDP_URL' definition to 'init' action. (#4592)
196
  * Update jQuery File Upload to 10.30.1 version. (#4599)
197
 
198
+ <a href="https://businessdirectoryplugin.com/plugins/business-directory/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">See changelog for all versions</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/less/wpbdp.less CHANGED
@@ -1190,7 +1190,7 @@ body.business-directory #TB_secondLine {
1190
  .wpbdp-main-links .wpbdp-button,
1191
  .box-col.submit-btn input,
1192
  .listing-actions {
1193
- font-size: 1.5rem;
1194
  }
1195
 
1196
  .wpbdp-listing-excerpt {
1190
  .wpbdp-main-links .wpbdp-button,
1191
  .box-col.submit-btn input,
1192
  .listing-actions {
1193
+ font-size: 1.1rem;
1194
  }
1195
 
1196
  .wpbdp-listing-excerpt {
assets/css/wpbdp.min.css CHANGED
@@ -1 +1 @@
1
- .wpbdp-tag{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:10px !important;margin-right:2px;text-decoration:none !important;line-height:1.5 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.wpbdp-display-block{display:block}.wpbdp-cf:before,.wpbdp-cf:after,.cf:before,.cf:after{content:" ";display:table}.wpbdp-cf:after,.cf:after{clear:both}form#wpbdmsearchform{padding:12px 0;text-align:center}form#wpbdmsearchform input{display:inline}form#wpbdmsearchform .wpbdmsearchbutton{margin-top:5px}form#wpbdmsearchform a.advanced-search-link{font-size:70%;display:block}#wpbdp-search-form{padding-left:10px}#wpbdp-search-form .wpbdp-search-filter{margin-bottom:10px;clear:both}#wpbdp-search-form .wpbdp-search-filter>.wpbdp-search-field-label{display:block;width:40%;float:left}#wpbdp-search-form .wpbdp-search-filter>div.field{display:block;width:60%;margin-left:40%;padding-left:5px}#wpbdp-search-form .wpbdp-search-filter>div.field>input[type="text"]{box-sizing:border-box;width:90%}#wpbdp-search-form .wpbdp-search-filter>div.field>select{box-sizing:border-box;width:90%}#wpbdp-search-form input[type="submit"]{float:none;margin:auto}.wpbdp-clearfix:after,.cf:before,.cf:after{content:" ";display:table}.wpbdp-clearfix:after,.cf:after{clear:both}.wpbdp-pagination{margin:25px 0 0 0}.wpbdp-pagination .next{float:right}.listing-actions form{margin:0;padding:0;display:inline}.listing-actions input{margin:0;font-size:80%}.listing-actions input.delete-listing{margin-left:5px;margin-right:30px;color:#ff0000 !important}.listing-actions .back-to-dir{float:right}.listing-actions a.button{padding:5px 10px;font-size:11px;text-decoration:none;background-color:#e6e6e6;color:#7c7c7c;background-repeat:repeat-x;background-image:-moz-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-ms-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-webkit-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-o-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:linear-gradient(top, #f4f4f4, #e6e6e6);border:1px solid #d2d2d2;border-radius:3px;box-shadow:0 1px 2px rgba(64,64,64,0.1);margin-right:3px}.listing-actions a.button:hover{color:#5e5e5e;background-color:#ebebeb;background-repeat:repeat-x;background-image:-moz-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-ms-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-webkit-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-o-linear-gradient(top, #f9f9f9, #ebebeb);background-image:linear-gradient(top, #f9f9f9, #ebebeb)}.listing-actions a.delete-listing{margin-left:20px;color:#ff0000}.wpbdp-listing .listing-details .field-value{margin-bottom:10px;width:100%;float:none}.wpbdmsingledetails .singledetailsview .field-value{margin-bottom:10px}.field-value label,.field-value .field-label{color:#444;font-weight:bold}.wpbdp-listing-excerpt{padding:10px;border-bottom:dotted 1px #ddd}.wpbdp-listing-excerpt.odd{background:#eee}.wpbdp-listing-excerpt.sticky{background:#fff0cf;border-bottom:solid 1px #b37800;margin-top:30px}.wpbdp-listing-excerpt .listing-thumbnail{float:right;margin:0 10px 0 0}.wpbdp-listing-excerpt .listing-actions{margin-top:15px}.wpbdp-listing-single .listing-actions{margin-bottom:25px}.wpbdp-listing-single.sticky{margin-top:30px}.wpbdp-listing-excerpt .stickytag{float:right;margin-top:-20px}.wpbdp-listing-single .stickytag{float:right;margin-top:-100px}.wpbdp-listing-single .stickytag img{margin-left:-85px;position:absolute;overflow:hidden}.wpbdp-listing-excerpt .stickytag img{margin-top:-19px}.wpbdp-listing-excerpt .stickytag img,.wpbdp-listing-single .stickytag img{border:0;box-shadow:none;background:transparent;height:102px}.wpbdp-listing-single .listing-title{padding:2px 8px;background:#efefef;border:dotted 1px #ddd;margin-bottom:7px}.wpbdp-listing-single .listing-title h2{clear:none;margin:0}.wpbdp-listing-single .main-image{float:right;margin-left:10px;padding:5px}.wpbdp-listing-single .main-image a{position:relative !important}.wpbdp-listing-single .main-image img{border:solid 1px #333}.wpbdp-listing-single .extra-images{margin-top:10px;clear:both}.wpbdp-listing-single .extra-images ul{margin:0 auto;width:100%}.wpbdp-listing-single .extra-images ul li{list-style-type:none;display:inline;margin-left:5px}.wpbdp-listing-single .extra-images ul li img{display:inline;vertical-align:top;margin:0 auto;max-width:150px;border:solid 1px #333}.wpbdp-listing .social-fields{margin:20px 0;vertical-align:middle}.wpbdp-listing .social-fields .social-field{margin-bottom:10px}.wpbdp-listing .social-fields .social-field.twitter{display:inline-block;height:20px;margin-right:10px}.wpbdp-listing .social-fields .social-field.twitter iframe{margin-bottom:0}.wpbdp-listing .social-fields .social-field.facebook{display:inline-block;height:0;margin-right:10px}.wpbdp-listing .social-fields .social-field.facebook .fb-like span:first-of-type{vertical-align:middle !important}.wpbdp-listing .social-fields .social-field.linkedin{display:inline-block;margin-right:10px}.wpbdp-listing .social-fields .social-field.linkedin img{vertical-align:middle}.social-field-link{display:inline-block;margin-right:10px}.social-field-link .social-icon{display:inline-block;vertical-align:middle;background-color:transparent;color:#1a1a1a}.social-field-link a{box-shadow:none}.social-field-link a img{height:30px;width:auto}.social-field-link a object{height:34px;margin-bottom:0}.social-field-link.twitter object{border-radius:17px}.social-field-link.icon_first .social-icon{margin-right:5px}.social-field-link.text_first .social-text{margin-right:5px}@media screen and (max-width:500px){.social-field.facebook .fb-like>span{width:100% !important}}.wpbdp-listing-contact-form{margin-top:20px;border-top:dotted 1px #ddd;padding-top:20px;padding-left:10px}.wpbdp-listing-contact-form label,.wpbdp-listing-contact-form .wpbdp-contact-listing-title{display:block;margin-bottom:10px}.wpbdp-listing-contact-form input[type="text"]{width:98%}.wpbdp-listing-contact-form #wpbdp-contact-form-recaptcha{margin-bottom:20px}.wpbdp-listing-contact-form .send-message-button{margin-left:-10px}.wpbdp-listing-contact-form h3{margin-left:-10px}.wpbdp-listing-contact-form textarea{width:98% !important}.wpbdp-listing .comments{margin-top:20px}.wpbdp-bar{background:#f7f7f7;margin:10px 0 20px 0;padding:5px 10px}.wpbdp-bar:before,.wpbdp-bar:after{content:" ";display:table;clear:both}.wpbdp-bar .wpbdp-search-form{margin:0;padding:0 !important;margin-left:50%}.wpbdp-main-links a{margin-right:15px}.wpbdp-bar .left{float:left;text-align:center}.wpbdp-bar .right{width:300px;float:right}.wpbdp-listings-sort-options{font-size:90%;margin:5px 0;text-align:right}.wpbdp-listings-sort-options .current{font-weight:bold}#wpbdp-categories{clear:both}.wpbdp-categories{margin:0;padding-left:20px}.wpbdp-categories .cat-item{box-sizing:border-box;float:left;margin:0 0 20px;width:50%}.wpbdp-categories .cat-item:nth-child(2n+1){clear:left}.wpbdp-categories .cat-item .cat-item{margin:0;width:100%}.wpbdp-categories-tiny .cat-item{float:none;width:100%}.wpbdp-categories-tiny .cat-item:nth-child(2n+1){clear:none}.wpbdp-form-field{margin:12px 0}.wpbdp-form-field:first-child{margin-top:0}.wpbdp-form-field .wpbdp-form-field-label{margin:0 0 3px 0}.wpbdp-form-field .wpbdp-form-field-label label{display:inline-block;font-weight:bold}.wpbdp-form-field .wpbdp-form-field-label .wpbdp-form-field-required-indicator{margin-left:3px;font-size:90%}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-label{margin-bottom:0}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-description{margin-bottom:3px}.wpbdp-form-field .wpbdp-form-field-description{padding-left:6px;color:#666}.wpbdp-form-field .wpbdp-form-field-inner{padding-left:6px}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea,.wpbdp-form-field.wpbdp-form-field-type-textfield input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-select select,.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-twitter input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-facebook input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-linkedin input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-phone_number input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-date input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea{min-height:50px}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col{box-sizing:border-box;float:left;width:50%}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:first-child{padding-right:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:last-child{padding-left:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col .sublabel{margin:0;display:block}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-association-content textarea{min-height:80px}.wpbdp-form-field .field-description{font-size:90%;color:#696969;float:right}.wpbdp-form-field .sublabel{font-size:90%;margin-left:10px;margin-right:10px}.wpbdp-form-field.wpbdp-form-field-type-image .preview,.wpbdp-form-field.wpbdp-form-field-type-social-network .preview{margin-bottom:20px}.wpbdp-form-field.wpbdp-form-field-type-image a.delete,.wpbdp-form-field.wpbdp-form-field-type-social-network a.delete{color:#900000;margin-right:20px}.wpbdp-form-field.wpbdp-form-field-type-image input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .sublabel,.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .sublabel{display:block}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1),.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1){display:inline-block;width:30%;margin-right:40%;float:right}.wpbdp-form-field-validation-error-wrapper{margin:24px 0}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors{font-size:80%;color:#d64226;position:relative;background:#fff;border:1px solid #d64226;border-radius:4px;padding:4px 6px;margin:0 12px 3px 6px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after,.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{top:100%;left:12px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after{border-color:rgba(255,255,255,0);border-top-color:#fff;border-width:4px;margin-left:-4px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{border-color:rgba(214,66,38,0);border-top-color:#d64226;border-width:5px;margin-left:-5px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field{margin:0}.wpbdp-checkout-section{margin:0 0 1.5em 0;padding:.7em 1.2em;border:solid 1px #efefef}.wpbdp-checkout-section.wpbdp-checkout-errors{padding:0;border:none}.wpbdp-checkout-section h3{margin:0 0 1em 0;padding:0}.wpbdp-checkout-gateway-selection label{margin:0 10px 0 0}.wpbdp-checkout-gateway-selection label:last-child{margin-right:0}.wpbdp-checkout-gateway-selection label input,.wpbdp-checkout-gateway-selection label img{vertical-align:middle}.wpbdp-checkout-gateway-selection label img{margin-bottom:10px}.wpbdp-billing-detail-field{margin:0 0 1.5em 0;font-size:95%}.wpbdp-billing-detail-field label{margin:0;padding:0;font-weight:bold;display:block}.wpbdp-billing-detail-field .wpbdp-description{margin:0 0 4px 0;font-size:80%;color:#666;display:block}.wpbdp-billing-detail-field input[type="text"]{width:100%;box-sizing:border-box;padding:4px 6px}.wpbdp-billing-detail-field:last-child{margin-bottom:0}.wpbdp-billing-detail-field.wpbdp-required label:after{content:' *';color:#900000}.wpbdp-payment-receipt{border:1px solid #ccc;padding:1em 1.5em;margin:1.5em 0;font-size:90%}.wpbdp-payment-receipt h4{margin:0;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-date{color:#666}.wpbdp-payment-receipt .wpbdp-payment-status{float:right}.wpbdp-payment-receipt .wpbdp-payment-receipt-details{margin:1.5em .5em}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl{margin:0;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl dt{margin:0;padding:0;float:left;min-width:50%}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl dd{margin:0 0 5px 50%;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-print{margin:1.5em 0 0 0}.wpbdp-checkout-invoice table.wpbdp-payment-items-table th,.wpbdp-checkout-invoice table.wpbdp-payment-items-table td{font-size:95%}.wpbdp-checkout-invoice table.wpbdp-payment-items-table tr.item td:first-of-type{width:80%}.wpbdp-checkout-invoice table.wpbdp-payment-items-table .item-fee-description{margin-left:10px;font-size:85%;max-width:90%}.select2-results{font-size:11px}#wpbdp-submit-listing input[type="text"],#wpbdp-submit-listing textarea{box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section{margin:10px 0 0 0;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.expanded{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.collapsed{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .wpbdp-submit-listing-section-content{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.hidden{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header{background:#ccc;text-transform:uppercase;font-weight:bold;color:#333;padding:2px 10px;font-size:12px;cursor:pointer}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator{margin:0 10px 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator.expanded{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-content{padding:10px 20px;border:solid 1px #ccc;border-top:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}#wpbdp-submit-listing .wpbdp-submit-listing-section-content h4{margin:0 0 10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions{margin:10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions input[type="submit"]{float:right}#wpbdp-submit-listing .wpbdp-submit-listing-section-messages{margin:0 0 12px 0}#wpbdp-submit-listing .wpbdp-plan-selection-with-tip{margin:24px 0 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list{margin:0;padding:0;list-style-type:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list li{font-size:10px;margin:0 5px 0 0;padding:1px 6px;border-radius:3px;background:#5bc0de;color:#fff;font-weight:700;text-align:center;white-space:nowrap;vertical-align:baseline;border:none;display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection .wpbdp_continue_to_fields_action{text-align:right}#wpbdp-submit-listing .wpbdp-editor-area{height:422px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form{margin:15px 10px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #wpbdp-uploaded-images{margin:0 0 20px 0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image{padding:10px 0;border-bottom:dotted 1px #efefef}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-img{width:60px;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-extra input[type="text"]{width:60%;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link{float:right;font-size:11px;text-decoration:none;color:#900000;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link:hover{text-decoration:underline;color:#ff0000}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image:hover .wpbdp-image-delete-link{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image-draggable-highlight{width:160px;height:160px;margin:0 10px;background:red;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form-no-js{width:0;height:0;overflow:hidden;visibility:hidden}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area{float:left;width:72%;box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area.no-conditions{float:none;width:100%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions{float:right;width:25%;color:#666;font-size:90%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl{margin:0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl dt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#wpbdp-submit-listing textarea.wpbdp-submit-listing-tos{width:100%;min-height:100px}#wpbdp-submit-listing #change-plan-link{text-align:right;font-size:90%}#wpbdp-submit-listing #wpbdp-submit-listing-account-details{margin:10px 0 0 0}#wpbdp-submit-listing #wpbdp-submit-listing-account-details input[type="password"]{width:70%;display:inline-block}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter{float:right;width:20%;padding:4px;text-align:center;border:1px solid}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-0{background-color:#f1adad;border-color:#e35b5b}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-2{background-color:#fbc5a9;border-color:#f78b53}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-3{background-color:#ffe399;border-color:#ffc733}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-4{background-color:#c1e1b9;border-color:#83c373}#wpbdp-login-view .wpbdp-login-options{margin:30px 0 0 0;box-sizing:border-box}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option{width:50%;float:left;box-sizing:border-box}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option:first-child{padding:0 20px 0 0}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option:last-child{border-left:1px solid #ccc;padding:0 0 0 20px}#wpbdp-login-view #loginform #user_login,#wpbdp-login-view #loginform #user_pass{display:block}#wpbdp-login-view h4{font-size:21px;margin-top:0}#wpbdp-login-view .access-key-message{font-size:13px}#wpbdp-login-view input[type=text],#wpbdp-login-view input[type=password]{width:100%}.wpbdp-wp-theme-twentyseventeen #wpbdp-login-access-key-form input[type=submit]{margin-top:49px}.wpbdp-wp-theme-twentyseventeen #wpbdp-login-form h4{margin-bottom:74px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view h4{font-size:24px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view .access-key-message{font-size:16px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view #wpbdp-login-access-key-form input[type=submit]{margin-top:60px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view #wpbdp-login-form h4{margin-bottom:72px}.wpbdp-wp-theme-twentytwenty #wpbdp-login-access-key-form input[type=submit]{margin-top:44px}.wpbdp-wp-theme-twentytwenty #wpbdp-login-form h4{margin-bottom:57px}.wpbdp-msg{font-size:85%;padding:6px 12px;color:#555;margin:5px 0;background:#fffbcc;border-radius:3px}.wpbdp-msg ul{margin:0}.wpbdp-msg ul li{list-style-position:inside}.wpbdp-msg.error,.wpbdp-msg.wpbdp-error{color:#fff;background:#bc0b0b}.wpbdp-msg.tip{background:#d7f5ff}.wpbdp-submit-page table.fee-options{width:100%}.wpbdp-submit-page table.fee-options th,.wpbdp-submit-page table.fee-options td{text-align:center}.wpbdp-submit-page table.fee-options td.fee-label,.wpbdp-submit-page table.fee-options tr.fee-description td{text-align:left}.wpbdp-submit-page table.fee-options .fee-selection{width:5%}.wpbdp-submit-page table.fee-options tr.fee-option td.fee-label{font-weight:bold}.wpbdp-submit-page table.fee-options td.fee-description{font-size:90%;color:#666}#wpbdp-renewal-page .do-not-renew-listing{padding:15px 10px 10px;border-radius:2px;background-color:#f0f0f0}#wpbdp-renewal-page .do-not-renew-listing p:last-child{margin-bottom:0}#wpbdp-renewal-page .do-not-renew-listing input[type="submit"]{background:#bc0b0b}.wpbdp-recaptcha-error{color:#ff0000}#wpbdp-delete-listing-page form.confirm-form{margin-top:30px}#wpbdp-delete-listing-page input.delete-listing-confirm{margin-left:20px;color:#c00}#googlewallet-buy img{border:none;box-shadow:none}.wpbdp-checkout input[type="image"]{padding:0;border:none;box-shadow:none;width:auto}table#wpbdp-manage-recurring th.listing-title,table#wpbdp-manage-recurring td.listing-title{min-width:200px}table#wpbdp-manage-recurring a.cancel-subscription{color:#ff0000}#wpbdp-manage-recurring-cancel dl dd{margin-left:10px}.wpbdp-cancel-subscription-form{padding:15px 10px 10px;border-radius:2px;background-color:#f0f0f0}.wpbdp-cancel-subscription-form p:last-child{margin-bottom:0}.wpbdp-cancel-subscription-form input.button-primary[type="submit"]{background-color:#bc0b0b}.wpbdp-cc-form{padding:0;width:90%}.wpbdp-cc-form h4{margin:0}.wpbdp-cc-field input{width:auto}.wpbdp-cc-field label{display:block;font-weight:bold;text-align:right;padding-right:10px}#wpbdp-billing-information .billing-info-section h4{margin:10px 0 5px 0}#wpbdp-billing-information .billing-info-section table{margin:1.75em 0}#wpbdp-billing-information #wpbdp-billing-field-exp,#wpbdp-billing-information #wpbdp-billing-field-exp-year{width:40%;display:inline}#wpbdp-billing-information .form-buttons{margin:15px 0}.wpbdp-show-on-mobile{display:none}input[type="button"].wpbdp-show-on-mobile{display:none}@media screen and (max-width:500px){.wpbdp-show-on-mobile{display:inline !important}input[type="button"].wpbdp-hide-on-mobile{display:none}.wpbdp-hide-on-mobile{display:none}.wpbdp-bar form.wpbdp-search-form{display:block;margin-left:0;margin-top:10px}.wpbdp-bar form.wpbdp-search-form #intextbox{margin-bottom:5px;padding:4px}.wpbdp-bar form.wpbdp-search-form input[type="text"]{padding:4px 0;margin:0 0 2px 0}.wpbdp-listings-sort-options{font-size:90%}.wpbdp-listing.wpbdp-listing{font-size:90%}.wpbdp-listing.wpbdp-listing-excerpt .field-value>label{display:block}.wpbdp-listing.wpbdp-listing-excerpt .listing-thumbnail,.wpbdp-listing.wpbdp-listing-single .listing-thumbnail{float:none;padding:5px}.wpbdp-listing.wpbdp-listing-excerpt .listing-details,.wpbdp-listing.wpbdp-listing-single .listing-details{margin:0 5px;float:none;display:block}.wpbdp-listing .listing-actions input{font-size:70%}.wpbdp-listing .listing-actions input.back-to-dir{float:right}.wpbdp-listing.wpbdp-listing-single .main-image{display:block;float:none;padding:0;margin:0 0 10px 0;text-align:center;max-width:90%}.wpbdp-listing.wpbdp-listing-single .field-value>label{display:block}.wpbdp-submit-page.step-images #image-upload-dnd-area{font-size:90%;float:none !important;width:100% !important}.wpbdp-submit-page.step-images .dnd-area-inside-error{margin-top:30px}.wpbdp-submit-page.step-images #image-upload-conditions{width:100% !important;float:none !important;font-size:90%}.wpbdp-submit-page.step-images #image-upload-conditions dl{margin:0;padding:0}.wpbdp-submit-page.step-images #image-upload-conditions dl dt{margin:0;margin-right:5px;padding:0;float:left}.wpbdp-submit-page.step-images #image-upload-conditions dl dd{margin:0;padding:0;display:block}.wpbdp-submit-page.step-images .wpbdp-image img{max-width:50%}.wpbdp-listings-sort-options.wpbdp-show-on-mobile{margin-bottom:10px}}body.business-directory #TB_ImageOff .screen-reader-text,body.business-directory #TB_closeWindowButton .screen-reader-text{visibility:hidden}body.business-directory #TB_next{float:right}body.business-directory #TB_prev{float:left}body.business-directory #TB_caption{text-align:center;width:70%;height:auto}body.business-directory #TB_closeWindow{padding:0;height:0}body.business-directory #TB_closeWindow .screen-reader-text{display:none}body.business-directory #TB_secondLine{font-size:11px;color:#666}.wpbdp-form-row label{display:block}.wpbdp-form-row.wpbdp-form-textfield input[type="text"]{width:400px}.wpbdp-main-box,.wpbdp-main-box .box-row,.wpbdp-main-box .box-col{box-sizing:border-box}.wpbdp-main-box{background:#f7f7f7;margin:10px 0 20px 0;border-radius:4px;padding:10px;width:100%}.wpbdp-main-box .box-row{margin-bottom:4px}.wpbdp-main-box .box-col{margin-bottom:4px;width:100%}.wpbdp-main-box .box-col input{width:100%}.wpbdp-main-box .submit-btn input[type="submit"]{margin-top:0}.wpbdp-main-box .advanced-search-link{border:none;box-shadow:none;display:block;font-size:11px;text-align:right;text-decoration:none}.wpbdp-main-box-medium .box-col,.wpbdp-main-box-large .box-col{float:left}.wpbdp-main-box-medium .search-fields>.cols-1 .box-col,.wpbdp-main-box-large .search-fields>.cols-1 .box-col{width:100%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col,.wpbdp-main-box-large .search-fields>.cols-2 .box-col{width:50%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-2 .box-col:first-child{padding-right:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col:last-child,.wpbdp-main-box-large .search-fields>.cols-2 .box-col:last-child{padding-left:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col,.wpbdp-main-box-large .search-fields>.cols-3 .box-col{padding-left:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-3 .box-col:first-child{padding-right:5px}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-3 .box-col:first-child{padding:0;width:100%}.wpbdp-main-box-large .box-row{margin-bottom:0}.wpbdp-main-box-large .search-fields{padding-right:5px;width:78%}.wpbdp-main-box-large .submit-btn{padding-left:5px;width:22%}.wpbdp-main-links{text-align:right}.wpbdp-main-links .button{margin:0 5px;font-size:15px}.wpbdp-main-links .button:first-child{margin-left:0}.wpbdp-main-links .button:last-child{margin-right:0}.wpbdp-main-links-tiny .wpbdp-main-links .button{padding-top:10px;padding-bottom:10px;width:100%;margin:0 0 4px}.wpbdp-main-links-small .button{width:100%;margin:0 0 4px}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button{width:49%}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button:first-child{margin-right:1%}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button:last-child{margin-left:1%}.wpbdp-main-links-small .wpbdp-main-links-3-buttons .button:nth-child(2n){width:49%;margin-top:1%;margin-right:1%}.wpbdp-main-links-small .wpbdp-main-links-3-buttons .button:nth-child(2n+3){width:49%;margin-top:1%;margin-left:1%}.wpbdp-main-links-large .button{margin:0 3px}.wpbdp-with-button-styles .wpbdp-main-links-tiny .wpbdp-main-links .button{padding-top:10px;padding-bottom:10px}.wpbdp-with-button-styles .wpbdp-main-links-small .button{padding-top:10px;padding-bottom:10px}.wpbdp-with-button-styles .wpbdp-main-links-medium .wpbdp-main-links .button{padding-top:8px;padding-bottom:8px}.single-wpbdp_listing .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-show_category .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-show_tag .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-search .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-submit_listing .wpbdp-view-content-wrapper header.entry-header{display:none}.wpbdp-wp-theme-graphene.single-wpbdp_listing h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-show_category h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-show_tag h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-search h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-submit_listing h1.post-title{display:none}.wpbdp-wp-theme-genesis.wpbdp-view-show_category .archive-description,.wpbdp-wp-theme-genesis.wpbdp-view-show_tag .archive-description{display:none}.wpbdp-wp-theme-hmtpro5.wpbdp-view-show_category .post-details,.wpbdp-wp-theme-hmtpro5.wpbdp-view-show_tag .post-details{display:none}.wpbdp-wp-theme-atahualpa.wpbdp-view-show_category .post-footer,.wpbdp-wp-theme-atahualpa.wpbdp-view-show_tag .post-footer,.wpbdp-wp-theme-atahualpa.wpbdp-view-show_listing .post-footer{display:none}.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_category .entry-content .featured-image,.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_tag .entry-content .featured-image,.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_listing .entry-content .featured-image{display:none}.wpbdp-plan-info-box{padding:10px;margin:0 0 6px 0;border:1px solid #d2d2d2;border-radius:2px;background:#fafafa}.wpbdp-plan-info-box .wpbdp-plan-duration,.wpbdp-plan-info-box .wpbdp-plan-details,.wpbdp-plan-info-box .wpbdp-plan-price{float:left;box-sizing:border-box}.wpbdp-plan-info-box .wpbdp-plan-duration{width:20%;text-align:center}.wpbdp-plan-info-box .wpbdp-plan-duration-never-expires{font-size:20px;font-weight:bold;display:block;line-height:1em;text-transform:uppercase;word-wrap:break-word}.wpbdp-plan-info-box .wpbdp-plan-duration-amount{font-size:30px;font-weight:bold;display:block;line-height:1em}.wpbdp-plan-info-box .wpbdp-plan-duration-period{font-size:22px;display:block;line-height:1em}.wpbdp-plan-info-box .wpbdp-plan-details{width:55%;padding:0 10px}.wpbdp-plan-info-box .wpbdp-plan-description{margin:0 0 10px 0}.wpbdp-plan-info-box .wpbdp-plan-label{font-size:1.1em;font-weight:bold;margin-bottom:10px}.wpbdp-plan-info-box .wpbdp-plan-feature-list{margin:0 0 0 10px}.wpbdp-plan-info-box .wpbdp-plan-details p{margin:0}.wpbdp-plan-info-box .wpbdp-plan-feature-list li{list-style-position:inside;margin:0}.wpbdp-plan-info-box .wpbdp-plan-price{width:25%}.wpbdp-plan-info-box .wpbdp-plan-price label{font-size:20px;border:1px solid #f3f3f3;background:#fdfdfd;border-radius:2px;display:block;padding:4px 8px}.wpbdp-plan-info-box:not(.display-only) .wpbdp-plan-price label{cursor:pointer}.wpbdp-plan-info-box:not(.display-only) .wpbdp-plan-price label:hover{border-color:#d0d0d0;background:#fff}.wpbdp-plan-info-box .wpbdp-plan-price label input{margin:0 4px 0 0;vertical-align:2px}.wpbdp-plan-info-box .wpbdp-plan-disabled-msg{clear:both}.wpbdp-plan-info-box .wpbdp-plan-private-msg{width:100%;display:inline-block;text-align:right}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-details,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-price{width:100%}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration-amount,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration-period{display:inline}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-details{padding:0 0 4pt}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-label{font-size:1.5em;margin-bottom:5px}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-description{margin-bottom:5px}.wpbdp-plan-selection-wrapper.wpbdp-size-small .wpbdp-plan-details{width:47%}.wpbdp-plan-selection-wrapper.wpbdp-size-small .wpbdp-plan-price{width:32%}.wpbdp-drag-handle{width:6px;height:10px;display:inline-block;background:url('../../assets/images/drag-handle.png') 0 0;cursor:move;float:left;margin:5px 5px 0 0;vertical-align:middle}.wpbdp-help-tip{margin:10px 0}.wpbdp-help-tip .dashicons{vertical-align:middle}.wpbdp-help-tip .message{display:inline-block}.wpbdp-help-tip.small{font-size:12px}.wpbdp-help-tip.small .dashicons{font-size:15px;width:15px;height:15px}.wpbdp-hidden{display:none}.wpbdp-form-field-association-category .wpbdp-form-field-checkbox-item.disabled,.wpbdp-form-field-association-category .wpbdp-form-field-radio-item.disabled{opacity:.65}.wpbdp-form-field-association-category select{width:100%}.wpbdp-form-field-association-category .select2{width:100%}.wpbdp-form-field-association-category .select2 .select2-selection{border-radius:0}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice{font-size:11px;padding:1px 6px;border-radius:3px;font-weight:normal;white-space:nowrap;vertical-align:baseline;border:none}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice .select2-selection__choice__remove{margin-right:5px}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice,.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-search--inline{margin:5px 5px 0 0}.wpbdp-form-field-association-category .select2 .select2-search .select2-search__field{font-size:11px}#wpbdp-listing-flagging-page textarea{width:90%;min-height:150px;margin-bottom:10px}.wpbdp-wp-theme-twentysixteen .wpbdp-listing .social-fields .social-field.linkedin{vertical-align:text-top}.wpbdp-wp-theme-twentyseventeen .single-featured-image-header{display:none}.wpbdp-wp-theme-twentyseventeen .wpbdp-listing .social-fields .twitter.twitter-handle{vertical-align:text-top;padding-top:1px}.wpbdp-wp-theme-twentynineteen .wpbdp-listing .social-fields .twitter.twitter-handle{vertical-align:text-top}.wpbdp-wp-theme-twentytwenty .wpbdp-main-links .wpbdp-button,.wpbdp-wp-theme-twentytwenty .box-col.submit-btn input,.wpbdp-wp-theme-twentytwenty .listing-actions{font-size:1.5rem}.wpbdp-wp-theme-twentytwenty .wpbdp-listing-excerpt{font-size:1.8rem}.wpbdp-wp-theme-twentytwenty .wpbdp-listing .social-fields .social-field.facebook,.wpbdp-wp-theme-twentytwenty .wpbdp-listing .social-fields .social-field.instagram{margin-top:-5px;vertical-align:top}
1
+ .wpbdp-tag{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:10px !important;margin-right:2px;text-decoration:none !important;line-height:1.5 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.wpbdp-display-block{display:block}.wpbdp-cf:before,.wpbdp-cf:after,.cf:before,.cf:after{content:" ";display:table}.wpbdp-cf:after,.cf:after{clear:both}form#wpbdmsearchform{padding:12px 0;text-align:center}form#wpbdmsearchform input{display:inline}form#wpbdmsearchform .wpbdmsearchbutton{margin-top:5px}form#wpbdmsearchform a.advanced-search-link{font-size:70%;display:block}#wpbdp-search-form{padding-left:10px}#wpbdp-search-form .wpbdp-search-filter{margin-bottom:10px;clear:both}#wpbdp-search-form .wpbdp-search-filter>.wpbdp-search-field-label{display:block;width:40%;float:left}#wpbdp-search-form .wpbdp-search-filter>div.field{display:block;width:60%;margin-left:40%;padding-left:5px}#wpbdp-search-form .wpbdp-search-filter>div.field>input[type="text"]{box-sizing:border-box;width:90%}#wpbdp-search-form .wpbdp-search-filter>div.field>select{box-sizing:border-box;width:90%}#wpbdp-search-form input[type="submit"]{float:none;margin:auto}.wpbdp-clearfix:after,.cf:before,.cf:after{content:" ";display:table}.wpbdp-clearfix:after,.cf:after{clear:both}.wpbdp-pagination{margin:25px 0 0 0}.wpbdp-pagination .next{float:right}.listing-actions form{margin:0;padding:0;display:inline}.listing-actions input{margin:0;font-size:80%}.listing-actions input.delete-listing{margin-left:5px;margin-right:30px;color:#ff0000 !important}.listing-actions .back-to-dir{float:right}.listing-actions a.button{padding:5px 10px;font-size:11px;text-decoration:none;background-color:#e6e6e6;color:#7c7c7c;background-repeat:repeat-x;background-image:-moz-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-ms-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-webkit-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-o-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:linear-gradient(top, #f4f4f4, #e6e6e6);border:1px solid #d2d2d2;border-radius:3px;box-shadow:0 1px 2px rgba(64,64,64,0.1);margin-right:3px}.listing-actions a.button:hover{color:#5e5e5e;background-color:#ebebeb;background-repeat:repeat-x;background-image:-moz-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-ms-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-webkit-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-o-linear-gradient(top, #f9f9f9, #ebebeb);background-image:linear-gradient(top, #f9f9f9, #ebebeb)}.listing-actions a.delete-listing{margin-left:20px;color:#ff0000}.wpbdp-listing .listing-details .field-value{margin-bottom:10px;width:100%;float:none}.wpbdmsingledetails .singledetailsview .field-value{margin-bottom:10px}.field-value label,.field-value .field-label{color:#444;font-weight:bold}.wpbdp-listing-excerpt{padding:10px;border-bottom:dotted 1px #ddd}.wpbdp-listing-excerpt.odd{background:#eee}.wpbdp-listing-excerpt.sticky{background:#fff0cf;border-bottom:solid 1px #b37800;margin-top:30px}.wpbdp-listing-excerpt .listing-thumbnail{float:right;margin:0 10px 0 0}.wpbdp-listing-excerpt .listing-actions{margin-top:15px}.wpbdp-listing-single .listing-actions{margin-bottom:25px}.wpbdp-listing-single.sticky{margin-top:30px}.wpbdp-listing-excerpt .stickytag{float:right;margin-top:-20px}.wpbdp-listing-single .stickytag{float:right;margin-top:-100px}.wpbdp-listing-single .stickytag img{margin-left:-85px;position:absolute;overflow:hidden}.wpbdp-listing-excerpt .stickytag img{margin-top:-19px}.wpbdp-listing-excerpt .stickytag img,.wpbdp-listing-single .stickytag img{border:0;box-shadow:none;background:transparent;height:102px}.wpbdp-listing-single .listing-title{padding:2px 8px;background:#efefef;border:dotted 1px #ddd;margin-bottom:7px}.wpbdp-listing-single .listing-title h2{clear:none;margin:0}.wpbdp-listing-single .main-image{float:right;margin-left:10px;padding:5px}.wpbdp-listing-single .main-image a{position:relative !important}.wpbdp-listing-single .main-image img{border:solid 1px #333}.wpbdp-listing-single .extra-images{margin-top:10px;clear:both}.wpbdp-listing-single .extra-images ul{margin:0 auto;width:100%}.wpbdp-listing-single .extra-images ul li{list-style-type:none;display:inline;margin-left:5px}.wpbdp-listing-single .extra-images ul li img{display:inline;vertical-align:top;margin:0 auto;max-width:150px;border:solid 1px #333}.wpbdp-listing .social-fields{margin:20px 0;vertical-align:middle}.wpbdp-listing .social-fields .social-field{margin-bottom:10px}.wpbdp-listing .social-fields .social-field.twitter{display:inline-block;height:20px;margin-right:10px}.wpbdp-listing .social-fields .social-field.twitter iframe{margin-bottom:0}.wpbdp-listing .social-fields .social-field.facebook{display:inline-block;height:0;margin-right:10px}.wpbdp-listing .social-fields .social-field.facebook .fb-like span:first-of-type{vertical-align:middle !important}.wpbdp-listing .social-fields .social-field.linkedin{display:inline-block;margin-right:10px}.wpbdp-listing .social-fields .social-field.linkedin img{vertical-align:middle}.social-field-link{display:inline-block;margin-right:10px}.social-field-link .social-icon{display:inline-block;vertical-align:middle;background-color:transparent;color:#1a1a1a}.social-field-link a{box-shadow:none}.social-field-link a img{height:30px;width:auto}.social-field-link a object{height:34px;margin-bottom:0}.social-field-link.twitter object{border-radius:17px}.social-field-link.icon_first .social-icon{margin-right:5px}.social-field-link.text_first .social-text{margin-right:5px}@media screen and (max-width:500px){.social-field.facebook .fb-like>span{width:100% !important}}.wpbdp-listing-contact-form{margin-top:20px;border-top:dotted 1px #ddd;padding-top:20px;padding-left:10px}.wpbdp-listing-contact-form label,.wpbdp-listing-contact-form .wpbdp-contact-listing-title{display:block;margin-bottom:10px}.wpbdp-listing-contact-form input[type="text"]{width:98%}.wpbdp-listing-contact-form #wpbdp-contact-form-recaptcha{margin-bottom:20px}.wpbdp-listing-contact-form .send-message-button{margin-left:-10px}.wpbdp-listing-contact-form h3{margin-left:-10px}.wpbdp-listing-contact-form textarea{width:98% !important}.wpbdp-listing .comments{margin-top:20px}.wpbdp-bar{background:#f7f7f7;margin:10px 0 20px 0;padding:5px 10px}.wpbdp-bar:before,.wpbdp-bar:after{content:" ";display:table;clear:both}.wpbdp-bar .wpbdp-search-form{margin:0;padding:0 !important;margin-left:50%}.wpbdp-main-links a{margin-right:15px}.wpbdp-bar .left{float:left;text-align:center}.wpbdp-bar .right{width:300px;float:right}.wpbdp-listings-sort-options{font-size:90%;margin:5px 0;text-align:right}.wpbdp-listings-sort-options .current{font-weight:bold}#wpbdp-categories{clear:both}.wpbdp-categories{margin:0;padding-left:20px}.wpbdp-categories .cat-item{box-sizing:border-box;float:left;margin:0 0 20px;width:50%}.wpbdp-categories .cat-item:nth-child(2n+1){clear:left}.wpbdp-categories .cat-item .cat-item{margin:0;width:100%}.wpbdp-categories-tiny .cat-item{float:none;width:100%}.wpbdp-categories-tiny .cat-item:nth-child(2n+1){clear:none}.wpbdp-form-field{margin:12px 0}.wpbdp-form-field:first-child{margin-top:0}.wpbdp-form-field .wpbdp-form-field-label{margin:0 0 3px 0}.wpbdp-form-field .wpbdp-form-field-label label{display:inline-block;font-weight:bold}.wpbdp-form-field .wpbdp-form-field-label .wpbdp-form-field-required-indicator{margin-left:3px;font-size:90%}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-label{margin-bottom:0}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-description{margin-bottom:3px}.wpbdp-form-field .wpbdp-form-field-description{padding-left:6px;color:#666}.wpbdp-form-field .wpbdp-form-field-inner{padding-left:6px}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea,.wpbdp-form-field.wpbdp-form-field-type-textfield input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-select select,.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-twitter input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-facebook input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-linkedin input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-phone_number input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-date input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea{min-height:50px}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col{box-sizing:border-box;float:left;width:50%}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:first-child{padding-right:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:last-child{padding-left:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col .sublabel{margin:0;display:block}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-association-content textarea{min-height:80px}.wpbdp-form-field .field-description{font-size:90%;color:#696969;float:right}.wpbdp-form-field .sublabel{font-size:90%;margin-left:10px;margin-right:10px}.wpbdp-form-field.wpbdp-form-field-type-image .preview,.wpbdp-form-field.wpbdp-form-field-type-social-network .preview{margin-bottom:20px}.wpbdp-form-field.wpbdp-form-field-type-image a.delete,.wpbdp-form-field.wpbdp-form-field-type-social-network a.delete{color:#900000;margin-right:20px}.wpbdp-form-field.wpbdp-form-field-type-image input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .sublabel,.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .sublabel{display:block}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1),.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1){display:inline-block;width:30%;margin-right:40%;float:right}.wpbdp-form-field-validation-error-wrapper{margin:24px 0}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors{font-size:80%;color:#d64226;position:relative;background:#fff;border:1px solid #d64226;border-radius:4px;padding:4px 6px;margin:0 12px 3px 6px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after,.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{top:100%;left:12px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after{border-color:rgba(255,255,255,0);border-top-color:#fff;border-width:4px;margin-left:-4px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{border-color:rgba(214,66,38,0);border-top-color:#d64226;border-width:5px;margin-left:-5px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field{margin:0}.wpbdp-checkout-section{margin:0 0 1.5em 0;padding:.7em 1.2em;border:solid 1px #efefef}.wpbdp-checkout-section.wpbdp-checkout-errors{padding:0;border:none}.wpbdp-checkout-section h3{margin:0 0 1em 0;padding:0}.wpbdp-checkout-gateway-selection label{margin:0 10px 0 0}.wpbdp-checkout-gateway-selection label:last-child{margin-right:0}.wpbdp-checkout-gateway-selection label input,.wpbdp-checkout-gateway-selection label img{vertical-align:middle}.wpbdp-checkout-gateway-selection label img{margin-bottom:10px}.wpbdp-billing-detail-field{margin:0 0 1.5em 0;font-size:95%}.wpbdp-billing-detail-field label{margin:0;padding:0;font-weight:bold;display:block}.wpbdp-billing-detail-field .wpbdp-description{margin:0 0 4px 0;font-size:80%;color:#666;display:block}.wpbdp-billing-detail-field input[type="text"]{width:100%;box-sizing:border-box;padding:4px 6px}.wpbdp-billing-detail-field:last-child{margin-bottom:0}.wpbdp-billing-detail-field.wpbdp-required label:after{content:' *';color:#900000}.wpbdp-payment-receipt{border:1px solid #ccc;padding:1em 1.5em;margin:1.5em 0;font-size:90%}.wpbdp-payment-receipt h4{margin:0;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-date{color:#666}.wpbdp-payment-receipt .wpbdp-payment-status{float:right}.wpbdp-payment-receipt .wpbdp-payment-receipt-details{margin:1.5em .5em}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl{margin:0;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl dt{margin:0;padding:0;float:left;min-width:50%}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl dd{margin:0 0 5px 50%;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-print{margin:1.5em 0 0 0}.wpbdp-checkout-invoice table.wpbdp-payment-items-table th,.wpbdp-checkout-invoice table.wpbdp-payment-items-table td{font-size:95%}.wpbdp-checkout-invoice table.wpbdp-payment-items-table tr.item td:first-of-type{width:80%}.wpbdp-checkout-invoice table.wpbdp-payment-items-table .item-fee-description{margin-left:10px;font-size:85%;max-width:90%}.select2-results{font-size:11px}#wpbdp-submit-listing input[type="text"],#wpbdp-submit-listing textarea{box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section{margin:10px 0 0 0;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.expanded{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.collapsed{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .wpbdp-submit-listing-section-content{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.hidden{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header{background:#ccc;text-transform:uppercase;font-weight:bold;color:#333;padding:2px 10px;font-size:12px;cursor:pointer}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator{margin:0 10px 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator.expanded{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-content{padding:10px 20px;border:solid 1px #ccc;border-top:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}#wpbdp-submit-listing .wpbdp-submit-listing-section-content h4{margin:0 0 10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions{margin:10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions input[type="submit"]{float:right}#wpbdp-submit-listing .wpbdp-submit-listing-section-messages{margin:0 0 12px 0}#wpbdp-submit-listing .wpbdp-plan-selection-with-tip{margin:24px 0 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list{margin:0;padding:0;list-style-type:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list li{font-size:10px;margin:0 5px 0 0;padding:1px 6px;border-radius:3px;background:#5bc0de;color:#fff;font-weight:700;text-align:center;white-space:nowrap;vertical-align:baseline;border:none;display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection .wpbdp_continue_to_fields_action{text-align:right}#wpbdp-submit-listing .wpbdp-editor-area{height:422px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form{margin:15px 10px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #wpbdp-uploaded-images{margin:0 0 20px 0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image{padding:10px 0;border-bottom:dotted 1px #efefef}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-img{width:60px;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-extra input[type="text"]{width:60%;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link{float:right;font-size:11px;text-decoration:none;color:#900000;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link:hover{text-decoration:underline;color:#ff0000}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image:hover .wpbdp-image-delete-link{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image-draggable-highlight{width:160px;height:160px;margin:0 10px;background:red;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form-no-js{width:0;height:0;overflow:hidden;visibility:hidden}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area{float:left;width:72%;box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area.no-conditions{float:none;width:100%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions{float:right;width:25%;color:#666;font-size:90%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl{margin:0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl dt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#wpbdp-submit-listing textarea.wpbdp-submit-listing-tos{width:100%;min-height:100px}#wpbdp-submit-listing #change-plan-link{text-align:right;font-size:90%}#wpbdp-submit-listing #wpbdp-submit-listing-account-details{margin:10px 0 0 0}#wpbdp-submit-listing #wpbdp-submit-listing-account-details input[type="password"]{width:70%;display:inline-block}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter{float:right;width:20%;padding:4px;text-align:center;border:1px solid}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-0{background-color:#f1adad;border-color:#e35b5b}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-2{background-color:#fbc5a9;border-color:#f78b53}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-3{background-color:#ffe399;border-color:#ffc733}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-4{background-color:#c1e1b9;border-color:#83c373}#wpbdp-login-view .wpbdp-login-options{margin:30px 0 0 0;box-sizing:border-box}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option{width:50%;float:left;box-sizing:border-box}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option:first-child{padding:0 20px 0 0}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option:last-child{border-left:1px solid #ccc;padding:0 0 0 20px}#wpbdp-login-view #loginform #user_login,#wpbdp-login-view #loginform #user_pass{display:block}#wpbdp-login-view h4{font-size:21px;margin-top:0}#wpbdp-login-view .access-key-message{font-size:13px}#wpbdp-login-view input[type=text],#wpbdp-login-view input[type=password]{width:100%}.wpbdp-wp-theme-twentyseventeen #wpbdp-login-access-key-form input[type=submit]{margin-top:49px}.wpbdp-wp-theme-twentyseventeen #wpbdp-login-form h4{margin-bottom:74px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view h4{font-size:24px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view .access-key-message{font-size:16px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view #wpbdp-login-access-key-form input[type=submit]{margin-top:60px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view #wpbdp-login-form h4{margin-bottom:72px}.wpbdp-wp-theme-twentytwenty #wpbdp-login-access-key-form input[type=submit]{margin-top:44px}.wpbdp-wp-theme-twentytwenty #wpbdp-login-form h4{margin-bottom:57px}.wpbdp-msg{font-size:85%;padding:6px 12px;color:#555;margin:5px 0;background:#fffbcc;border-radius:3px}.wpbdp-msg ul{margin:0}.wpbdp-msg ul li{list-style-position:inside}.wpbdp-msg.error,.wpbdp-msg.wpbdp-error{color:#fff;background:#bc0b0b}.wpbdp-msg.tip{background:#d7f5ff}.wpbdp-submit-page table.fee-options{width:100%}.wpbdp-submit-page table.fee-options th,.wpbdp-submit-page table.fee-options td{text-align:center}.wpbdp-submit-page table.fee-options td.fee-label,.wpbdp-submit-page table.fee-options tr.fee-description td{text-align:left}.wpbdp-submit-page table.fee-options .fee-selection{width:5%}.wpbdp-submit-page table.fee-options tr.fee-option td.fee-label{font-weight:bold}.wpbdp-submit-page table.fee-options td.fee-description{font-size:90%;color:#666}#wpbdp-renewal-page .do-not-renew-listing{padding:15px 10px 10px;border-radius:2px;background-color:#f0f0f0}#wpbdp-renewal-page .do-not-renew-listing p:last-child{margin-bottom:0}#wpbdp-renewal-page .do-not-renew-listing input[type="submit"]{background:#bc0b0b}.wpbdp-recaptcha-error{color:#ff0000}#wpbdp-delete-listing-page form.confirm-form{margin-top:30px}#wpbdp-delete-listing-page input.delete-listing-confirm{margin-left:20px;color:#c00}#googlewallet-buy img{border:none;box-shadow:none}.wpbdp-checkout input[type="image"]{padding:0;border:none;box-shadow:none;width:auto}table#wpbdp-manage-recurring th.listing-title,table#wpbdp-manage-recurring td.listing-title{min-width:200px}table#wpbdp-manage-recurring a.cancel-subscription{color:#ff0000}#wpbdp-manage-recurring-cancel dl dd{margin-left:10px}.wpbdp-cancel-subscription-form{padding:15px 10px 10px;border-radius:2px;background-color:#f0f0f0}.wpbdp-cancel-subscription-form p:last-child{margin-bottom:0}.wpbdp-cancel-subscription-form input.button-primary[type="submit"]{background-color:#bc0b0b}.wpbdp-cc-form{padding:0;width:90%}.wpbdp-cc-form h4{margin:0}.wpbdp-cc-field input{width:auto}.wpbdp-cc-field label{display:block;font-weight:bold;text-align:right;padding-right:10px}#wpbdp-billing-information .billing-info-section h4{margin:10px 0 5px 0}#wpbdp-billing-information .billing-info-section table{margin:1.75em 0}#wpbdp-billing-information #wpbdp-billing-field-exp,#wpbdp-billing-information #wpbdp-billing-field-exp-year{width:40%;display:inline}#wpbdp-billing-information .form-buttons{margin:15px 0}.wpbdp-show-on-mobile{display:none}input[type="button"].wpbdp-show-on-mobile{display:none}@media screen and (max-width:500px){.wpbdp-show-on-mobile{display:inline !important}input[type="button"].wpbdp-hide-on-mobile{display:none}.wpbdp-hide-on-mobile{display:none}.wpbdp-bar form.wpbdp-search-form{display:block;margin-left:0;margin-top:10px}.wpbdp-bar form.wpbdp-search-form #intextbox{margin-bottom:5px;padding:4px}.wpbdp-bar form.wpbdp-search-form input[type="text"]{padding:4px 0;margin:0 0 2px 0}.wpbdp-listings-sort-options{font-size:90%}.wpbdp-listing.wpbdp-listing{font-size:90%}.wpbdp-listing.wpbdp-listing-excerpt .field-value>label{display:block}.wpbdp-listing.wpbdp-listing-excerpt .listing-thumbnail,.wpbdp-listing.wpbdp-listing-single .listing-thumbnail{float:none;padding:5px}.wpbdp-listing.wpbdp-listing-excerpt .listing-details,.wpbdp-listing.wpbdp-listing-single .listing-details{margin:0 5px;float:none;display:block}.wpbdp-listing .listing-actions input{font-size:70%}.wpbdp-listing .listing-actions input.back-to-dir{float:right}.wpbdp-listing.wpbdp-listing-single .main-image{display:block;float:none;padding:0;margin:0 0 10px 0;text-align:center;max-width:90%}.wpbdp-listing.wpbdp-listing-single .field-value>label{display:block}.wpbdp-submit-page.step-images #image-upload-dnd-area{font-size:90%;float:none !important;width:100% !important}.wpbdp-submit-page.step-images .dnd-area-inside-error{margin-top:30px}.wpbdp-submit-page.step-images #image-upload-conditions{width:100% !important;float:none !important;font-size:90%}.wpbdp-submit-page.step-images #image-upload-conditions dl{margin:0;padding:0}.wpbdp-submit-page.step-images #image-upload-conditions dl dt{margin:0;margin-right:5px;padding:0;float:left}.wpbdp-submit-page.step-images #image-upload-conditions dl dd{margin:0;padding:0;display:block}.wpbdp-submit-page.step-images .wpbdp-image img{max-width:50%}.wpbdp-listings-sort-options.wpbdp-show-on-mobile{margin-bottom:10px}}body.business-directory #TB_ImageOff .screen-reader-text,body.business-directory #TB_closeWindowButton .screen-reader-text{visibility:hidden}body.business-directory #TB_next{float:right}body.business-directory #TB_prev{float:left}body.business-directory #TB_caption{text-align:center;width:70%;height:auto}body.business-directory #TB_closeWindow{padding:0;height:0}body.business-directory #TB_closeWindow .screen-reader-text{display:none}body.business-directory #TB_secondLine{font-size:11px;color:#666}.wpbdp-form-row label{display:block}.wpbdp-form-row.wpbdp-form-textfield input[type="text"]{width:400px}.wpbdp-main-box,.wpbdp-main-box .box-row,.wpbdp-main-box .box-col{box-sizing:border-box}.wpbdp-main-box{background:#f7f7f7;margin:10px 0 20px 0;border-radius:4px;padding:10px;width:100%}.wpbdp-main-box .box-row{margin-bottom:4px}.wpbdp-main-box .box-col{margin-bottom:4px;width:100%}.wpbdp-main-box .box-col input{width:100%}.wpbdp-main-box .submit-btn input[type="submit"]{margin-top:0}.wpbdp-main-box .advanced-search-link{border:none;box-shadow:none;display:block;font-size:11px;text-align:right;text-decoration:none}.wpbdp-main-box-medium .box-col,.wpbdp-main-box-large .box-col{float:left}.wpbdp-main-box-medium .search-fields>.cols-1 .box-col,.wpbdp-main-box-large .search-fields>.cols-1 .box-col{width:100%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col,.wpbdp-main-box-large .search-fields>.cols-2 .box-col{width:50%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-2 .box-col:first-child{padding-right:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col:last-child,.wpbdp-main-box-large .search-fields>.cols-2 .box-col:last-child{padding-left:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col,.wpbdp-main-box-large .search-fields>.cols-3 .box-col{padding-left:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-3 .box-col:first-child{padding-right:5px}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-3 .box-col:first-child{padding:0;width:100%}.wpbdp-main-box-large .box-row{margin-bottom:0}.wpbdp-main-box-large .search-fields{padding-right:5px;width:78%}.wpbdp-main-box-large .submit-btn{padding-left:5px;width:22%}.wpbdp-main-links{text-align:right}.wpbdp-main-links .button{margin:0 5px;font-size:15px}.wpbdp-main-links .button:first-child{margin-left:0}.wpbdp-main-links .button:last-child{margin-right:0}.wpbdp-main-links-tiny .wpbdp-main-links .button{padding-top:10px;padding-bottom:10px;width:100%;margin:0 0 4px}.wpbdp-main-links-small .button{width:100%;margin:0 0 4px}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button{width:49%}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button:first-child{margin-right:1%}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button:last-child{margin-left:1%}.wpbdp-main-links-small .wpbdp-main-links-3-buttons .button:nth-child(2n){width:49%;margin-top:1%;margin-right:1%}.wpbdp-main-links-small .wpbdp-main-links-3-buttons .button:nth-child(2n+3){width:49%;margin-top:1%;margin-left:1%}.wpbdp-main-links-large .button{margin:0 3px}.wpbdp-with-button-styles .wpbdp-main-links-tiny .wpbdp-main-links .button{padding-top:10px;padding-bottom:10px}.wpbdp-with-button-styles .wpbdp-main-links-small .button{padding-top:10px;padding-bottom:10px}.wpbdp-with-button-styles .wpbdp-main-links-medium .wpbdp-main-links .button{padding-top:8px;padding-bottom:8px}.single-wpbdp_listing .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-show_category .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-show_tag .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-search .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-submit_listing .wpbdp-view-content-wrapper header.entry-header{display:none}.wpbdp-wp-theme-graphene.single-wpbdp_listing h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-show_category h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-show_tag h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-search h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-submit_listing h1.post-title{display:none}.wpbdp-wp-theme-genesis.wpbdp-view-show_category .archive-description,.wpbdp-wp-theme-genesis.wpbdp-view-show_tag .archive-description{display:none}.wpbdp-wp-theme-hmtpro5.wpbdp-view-show_category .post-details,.wpbdp-wp-theme-hmtpro5.wpbdp-view-show_tag .post-details{display:none}.wpbdp-wp-theme-atahualpa.wpbdp-view-show_category .post-footer,.wpbdp-wp-theme-atahualpa.wpbdp-view-show_tag .post-footer,.wpbdp-wp-theme-atahualpa.wpbdp-view-show_listing .post-footer{display:none}.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_category .entry-content .featured-image,.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_tag .entry-content .featured-image,.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_listing .entry-content .featured-image{display:none}.wpbdp-plan-info-box{padding:10px;margin:0 0 6px 0;border:1px solid #d2d2d2;border-radius:2px;background:#fafafa}.wpbdp-plan-info-box .wpbdp-plan-duration,.wpbdp-plan-info-box .wpbdp-plan-details,.wpbdp-plan-info-box .wpbdp-plan-price{float:left;box-sizing:border-box}.wpbdp-plan-info-box .wpbdp-plan-duration{width:20%;text-align:center}.wpbdp-plan-info-box .wpbdp-plan-duration-never-expires{font-size:20px;font-weight:bold;display:block;line-height:1em;text-transform:uppercase;word-wrap:break-word}.wpbdp-plan-info-box .wpbdp-plan-duration-amount{font-size:30px;font-weight:bold;display:block;line-height:1em}.wpbdp-plan-info-box .wpbdp-plan-duration-period{font-size:22px;display:block;line-height:1em}.wpbdp-plan-info-box .wpbdp-plan-details{width:55%;padding:0 10px}.wpbdp-plan-info-box .wpbdp-plan-description{margin:0 0 10px 0}.wpbdp-plan-info-box .wpbdp-plan-label{font-size:1.1em;font-weight:bold;margin-bottom:10px}.wpbdp-plan-info-box .wpbdp-plan-feature-list{margin:0 0 0 10px}.wpbdp-plan-info-box .wpbdp-plan-details p{margin:0}.wpbdp-plan-info-box .wpbdp-plan-feature-list li{list-style-position:inside;margin:0}.wpbdp-plan-info-box .wpbdp-plan-price{width:25%}.wpbdp-plan-info-box .wpbdp-plan-price label{font-size:20px;border:1px solid #f3f3f3;background:#fdfdfd;border-radius:2px;display:block;padding:4px 8px}.wpbdp-plan-info-box:not(.display-only) .wpbdp-plan-price label{cursor:pointer}.wpbdp-plan-info-box:not(.display-only) .wpbdp-plan-price label:hover{border-color:#d0d0d0;background:#fff}.wpbdp-plan-info-box .wpbdp-plan-price label input{margin:0 4px 0 0;vertical-align:2px}.wpbdp-plan-info-box .wpbdp-plan-disabled-msg{clear:both}.wpbdp-plan-info-box .wpbdp-plan-private-msg{width:100%;display:inline-block;text-align:right}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-details,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-price{width:100%}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration-amount,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration-period{display:inline}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-details{padding:0 0 4pt}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-label{font-size:1.5em;margin-bottom:5px}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-description{margin-bottom:5px}.wpbdp-plan-selection-wrapper.wpbdp-size-small .wpbdp-plan-details{width:47%}.wpbdp-plan-selection-wrapper.wpbdp-size-small .wpbdp-plan-price{width:32%}.wpbdp-drag-handle{width:6px;height:10px;display:inline-block;background:url('../../assets/images/drag-handle.png') 0 0;cursor:move;float:left;margin:5px 5px 0 0;vertical-align:middle}.wpbdp-help-tip{margin:10px 0}.wpbdp-help-tip .dashicons{vertical-align:middle}.wpbdp-help-tip .message{display:inline-block}.wpbdp-help-tip.small{font-size:12px}.wpbdp-help-tip.small .dashicons{font-size:15px;width:15px;height:15px}.wpbdp-hidden{display:none}.wpbdp-form-field-association-category .wpbdp-form-field-checkbox-item.disabled,.wpbdp-form-field-association-category .wpbdp-form-field-radio-item.disabled{opacity:.65}.wpbdp-form-field-association-category select{width:100%}.wpbdp-form-field-association-category .select2{width:100%}.wpbdp-form-field-association-category .select2 .select2-selection{border-radius:0}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice{font-size:11px;padding:1px 6px;border-radius:3px;font-weight:normal;white-space:nowrap;vertical-align:baseline;border:none}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice .select2-selection__choice__remove{margin-right:5px}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice,.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-search--inline{margin:5px 5px 0 0}.wpbdp-form-field-association-category .select2 .select2-search .select2-search__field{font-size:11px}#wpbdp-listing-flagging-page textarea{width:90%;min-height:150px;margin-bottom:10px}.wpbdp-wp-theme-twentysixteen .wpbdp-listing .social-fields .social-field.linkedin{vertical-align:text-top}.wpbdp-wp-theme-twentyseventeen .single-featured-image-header{display:none}.wpbdp-wp-theme-twentyseventeen .wpbdp-listing .social-fields .twitter.twitter-handle{vertical-align:text-top;padding-top:1px}.wpbdp-wp-theme-twentynineteen .wpbdp-listing .social-fields .twitter.twitter-handle{vertical-align:text-top}.wpbdp-wp-theme-twentytwenty .wpbdp-main-links .wpbdp-button,.wpbdp-wp-theme-twentytwenty .box-col.submit-btn input,.wpbdp-wp-theme-twentytwenty .listing-actions{font-size:1.1rem}.wpbdp-wp-theme-twentytwenty .wpbdp-listing-excerpt{font-size:1.8rem}.wpbdp-wp-theme-twentytwenty .wpbdp-listing .social-fields .social-field.facebook,.wpbdp-wp-theme-twentytwenty .wpbdp-listing .social-fields .social-field.instagram{margin-top:-5px;vertical-align:top}
assets/js/admin.js CHANGED
@@ -660,4 +660,4 @@ jQuery( function( $ ) {
660
 
661
  return true;
662
  } );
663
- });
660
 
661
  return true;
662
  } );
663
+ });
assets/js/user-selector.js CHANGED
@@ -19,24 +19,21 @@ jQuery( function($) {
19
 
20
  $.extend( UserSelector.prototype, {
21
 
22
- configure: function() {
23
- if (typeof this.options === 'undefined') {
24
- return;
25
- }
26
-
27
- if ( this.options.mode === 'ajax' ) {
28
- this.configureAjaxBehavior();
29
- return;
30
- }
31
-
32
- this.configureInlineBehavior();
33
- },
34
-
35
  configureAjaxBehavior: function() {
36
  var self = this;
37
  var options = $.extend( true, {}, self.options.select2, {
38
  ajax: {
 
 
 
 
 
 
39
  processResults: function( data ) {
 
 
 
 
40
  var items = $.map( data.items, function( item ) {
41
  return {
42
  id: item.ID,
@@ -101,11 +98,13 @@ jQuery( function($) {
101
  }
102
  } );
103
 
104
- // Edit listing screen
105
- $userSelect = $('#wpbdp-listing-owner').find( '.wpbdp-user-selector' );
 
106
 
107
- if ( $userSelect.length > 0 ) {
108
- $userSelector = new UserSelector( $userSelect, $userSelect.data( 'configuration' ) );
109
- }
 
110
 
111
  } );
19
 
20
  $.extend( UserSelector.prototype, {
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  configureAjaxBehavior: function() {
23
  var self = this;
24
  var options = $.extend( true, {}, self.options.select2, {
25
  ajax: {
26
+ data: function(params) {
27
+ params.security = self.options.security;
28
+ params.listing_id = self.options.listing_id;
29
+
30
+ return params;
31
+ },
32
  processResults: function( data ) {
33
+ if ( ! data.status ) {
34
+ return {results: {}};
35
+ }
36
+
37
  var items = $.map( data.items, function( item ) {
38
  return {
39
  id: item.ID,
98
  }
99
  } );
100
 
101
+ $(document).ready(function() {
102
+ // Edit listing screen
103
+ $userSelect = $('#wpbdp-listing-owner').find( '.wpbdp-user-selector' );
104
 
105
+ if ( $userSelect.length > 0 ) {
106
+ $userSelector = new UserSelector( $userSelect, $userSelect.data( 'configuration' ) );
107
+ }
108
+ } );
109
 
110
  } );
assets/js/user-selector.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function($){var UserSelector=function(select,options){var self=this;return self.$select=$(select),self.options=options,"undefined"!=typeof self.options&&("ajax"===self.options.mode?self.configureAjaxBehavior():self.configureInlineBehavior())};$.extend(UserSelector.prototype,{configure:function(){if("undefined"!=typeof this.options)return"ajax"===this.options.mode?void this.configureAjaxBehavior():void this.configureInlineBehavior()},configureAjaxBehavior:function(){var self=this,options=$.extend(!0,{},self.options.select2,{ajax:{processResults:function(data){var items=$.map(data.items,function(item){return{id:item.ID,text:item.user_login}});return{results:items}}}});if(self.$select.selectWoo(options),self.options.selected.id){var option=new Option(self.options.selected.text,self.options.selected.id,(!0),(!0));self.$select.append(option).trigger("change")}self.setupEventHandlers()},setupEventHandlers:function(){var self=this;self.$select.on("change.select2",function(){self.onChange()})},configureInlineBehavior:function(){var self=this;self.$select.selectWoo(self.options.select2),self.setupEventHandlers()},onChange:function(){var self=this;$.isFunction(self.options.onChange)&&self.options.onChange(self.getSelectedUser())},getSelectedUser:function(){var self=this,users=self.$select.selectWoo("data");return users&&users.length?{id:users[0].id,name:users[0].text}:{id:0,name:""}},clearSelectedUser:function(){var self=this;self.$select.val(null).trigger("change")}}),$userSelect=$("#wpbdp-listing-owner").find(".wpbdp-user-selector"),$userSelect.length>0&&($userSelector=new UserSelector($userSelect,$userSelect.data("configuration")))});
1
+ jQuery(function($){var UserSelector=function(select,options){var self=this;return self.$select=$(select),self.options=options,"undefined"!=typeof self.options&&("ajax"===self.options.mode?self.configureAjaxBehavior():self.configureInlineBehavior())};$.extend(UserSelector.prototype,{configureAjaxBehavior:function(){var self=this,options=$.extend(!0,{},self.options.select2,{ajax:{data:function(params){return params.security=self.options.security,params.listing_id=self.options.listing_id,params},processResults:function(data){if(!data.status)return{results:{}};var items=$.map(data.items,function(item){return{id:item.ID,text:item.user_login}});return{results:items}}}});if(self.$select.selectWoo(options),self.options.selected.id){var option=new Option(self.options.selected.text,self.options.selected.id,(!0),(!0));self.$select.append(option).trigger("change")}self.setupEventHandlers()},setupEventHandlers:function(){var self=this;self.$select.on("change.select2",function(){self.onChange()})},configureInlineBehavior:function(){var self=this;self.$select.selectWoo(self.options.select2),self.setupEventHandlers()},onChange:function(){var self=this;$.isFunction(self.options.onChange)&&self.options.onChange(self.getSelectedUser())},getSelectedUser:function(){var self=this,users=self.$select.selectWoo("data");return users&&users.length?{id:users[0].id,name:users[0].text}:{id:0,name:""}},clearSelectedUser:function(){var self=this;self.$select.val(null).trigger("change")}}),$(document).ready(function(){$userSelect=$("#wpbdp-listing-owner").find(".wpbdp-user-selector"),$userSelect.length>0&&($userSelector=new UserSelector($userSelect,$userSelect.data("configuration")))})});
business-directory-plugin.php CHANGED
@@ -3,15 +3,13 @@
3
  * Plugin Name: Business Directory Plugin
4
  * Plugin URI: https://businessdirectoryplugin.com
5
  * Description: Provides the ability to maintain a free or paid business directory on your WordPress powered site.
6
- * Version: 5.7.1
7
  * Author: Business Directory Team
8
  * Author URI: https://businessdirectoryplugin.com
9
- * Text Domain: WPBDM
10
  * Domain Path: /languages/
11
  * License: GPLv2 or any later version
12
  *
13
- * Copyright 2009-2016, Skyline Consulting and D. Rodenbaugh
14
- *
15
  * This program is free software; you can redistribute it and/or modify
16
  * it under the terms of the GNU General Public License, version 2 or later, as
17
  * published by the Free Software Foundation.
3
  * Plugin Name: Business Directory Plugin
4
  * Plugin URI: https://businessdirectoryplugin.com
5
  * Description: Provides the ability to maintain a free or paid business directory on your WordPress powered site.
6
+ * Version: 5.7.2
7
  * Author: Business Directory Team
8
  * Author URI: https://businessdirectoryplugin.com
9
+ * Text Domain: business-directory-plugin
10
  * Domain Path: /languages/
11
  * License: GPLv2 or any later version
12
  *
 
 
13
  * This program is free software; you can redistribute it and/or modify
14
  * it under the terms of the GNU General Public License, version 2 or later, as
15
  * published by the Free Software Foundation.
includes/admin/class-admin-controller.php CHANGED
@@ -76,10 +76,10 @@ class WPBDP__Admin__Controller {
76
 
77
  function _confirm_action( $args = array() ) {
78
  $defaults = array(
79
- 'title' => _x( 'Are you sure you want to do this?', 'admin confirm', 'WPBDM' ),
80
  'cancel_url' => '',
81
- 'cancel_text' => _x( 'No, go back', 'admin confirm', 'WPBDM' ),
82
- 'submit_text' => _x( 'Yes, I\'m sure', 'admin confirm', 'WPBDM' ),
83
  'explanation' => ''
84
  );
85
  $args = wp_parse_args( $args, $defaults );
76
 
77
  function _confirm_action( $args = array() ) {
78
  $defaults = array(
79
+ 'title' => _x( 'Are you sure you want to do this?', 'admin confirm', 'business-directory-plugin' ),
80
  'cancel_url' => '',
81
+ 'cancel_text' => _x( 'No, go back', 'admin confirm', 'business-directory-plugin' ),
82
+ 'submit_text' => _x( 'Yes, I\'m sure', 'admin confirm', 'business-directory-plugin' ),
83
  'explanation' => ''
84
  );
85
  $args = wp_parse_args( $args, $defaults );
includes/admin/class-admin-csv.php CHANGED
@@ -35,15 +35,15 @@ class WPBDP__Admin__Csv extends WPBDP__Admin__Controller {
35
 
36
  <?php if ( 'csv_import' == $current_tab ): ?>
37
  <div class="wpbdp-csv-import-top-buttons">
38
- <a href="<?php echo esc_url(add_query_arg('action', 'example-csv')); ?>" class="button"><?php _ex('See an example CSV import file', 'admin csv-import', 'WPBDM'); ?></a>
39
- <a href="#help" class="button"><?php _ex('Help', 'admin csv-import', 'WPBDM'); ?></a>
40
  </div>
41
  <?php endif; ?>
42
 
43
 
44
  <h2 class="nav-tab-wrapper">
45
- <a class="nav-tab <?php echo 'csv_import' == $current_tab ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( add_query_arg( 'tab', 'csv_import' ) ); ?>"><span class="dashicons dashicons-download"></span> <?php _ex( 'Import', 'admin csv', 'WPBDM' ); ?></a>
46
- <a class="nav-tab <?php echo 'csv_export' == $current_tab ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( add_query_arg( 'tab', 'csv_export' ) ); ?>"><span class="dashicons dashicons-upload"></span> <?php _ex( 'Export', 'admin csv', 'WPBDM' ); ?></a>
47
  </h2>
48
  <?php
49
  echo $output;
35
 
36
  <?php if ( 'csv_import' == $current_tab ): ?>
37
  <div class="wpbdp-csv-import-top-buttons">
38
+ <a href="<?php echo esc_url(add_query_arg('action', 'example-csv')); ?>" class="button"><?php _ex('See an example CSV import file', 'admin csv-import', 'business-directory-plugin' ); ?></a>
39
+ <a href="#help" class="button"><?php _ex('Help', 'admin csv-import', 'business-directory-plugin' ); ?></a>
40
  </div>
41
  <?php endif; ?>
42
 
43
 
44
  <h2 class="nav-tab-wrapper">
45
+ <a class="nav-tab <?php echo 'csv_import' == $current_tab ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( add_query_arg( 'tab', 'csv_import' ) ); ?>"><span class="dashicons dashicons-download"></span> <?php _ex( 'Import', 'admin csv', 'business-directory-plugin' ); ?></a>
46
+ <a class="nav-tab <?php echo 'csv_export' == $current_tab ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( add_query_arg( 'tab', 'csv_export' ) ); ?>"><span class="dashicons dashicons-upload"></span> <?php _ex( 'Export', 'admin csv', 'business-directory-plugin' ); ?></a>
47
  </h2>
48
  <?php
49
  echo $output;
includes/admin/class-admin-listings.php CHANGED
@@ -3,8 +3,6 @@
3
  * @package WPBDP/includes/Admin/Admin listings
4
  */
5
 
6
- // phpcs:disable
7
-
8
  /**
9
  * Class WPBDP_Admin_Listings
10
  *
@@ -12,7 +10,9 @@
12
  */
13
  class WPBDP_Admin_Listings {
14
 
15
- function __construct() {
 
 
16
  add_action( 'admin_init', array( $this, 'add_metaboxes' ) );
17
  add_action( 'wpbdp_admin_notices', array( $this, 'no_plan_edit_notice' ) );
18
 
@@ -32,7 +32,7 @@ class WPBDP_Admin_Listings {
32
  add_action( 'wpbdp_save_listing', array( $this, 'maybe_restore_listing_slug' ) );
33
  add_action( 'wpbdp_save_listing', array( $this, 'maybe_update_plan' ) );
34
 
35
- add_filter( 'get_sample_permalink_html', array( $this, 'maybe_hide_permalinks' ), 10, 5);
36
 
37
  // Filter by category.
38
  add_action( 'restrict_manage_posts', array( &$this, '_add_category_filter' ) );
@@ -45,9 +45,9 @@ class WPBDP_Admin_Listings {
45
 
46
  add_action( 'wp_ajax_wpbdp-clear-payment-history', array( &$this, 'ajax_clear_payment_history' ) );
47
 
48
- add_filter( 'tag_cloud_sort', array( $this, '_add_tag_cloud') );
49
 
50
- $listing_owner = new WPBDP__Admin__Listing_Owner();
51
  }
52
 
53
  // Category filter. {{
@@ -55,13 +55,13 @@ class WPBDP_Admin_Listings {
55
  global $typenow;
56
  global $wp_query;
57
 
58
- if ( WPBDP_POST_TYPE != $typenow ) {
59
  return;
60
  }
61
 
62
  wp_dropdown_categories(
63
  array(
64
- 'show_option_all' => _x( 'All categories', 'admin category filter', 'WPBDM' ),
65
  'taxonomy' => WPBDP_CATEGORY_TAX,
66
  'name' => WPBDP_CATEGORY_TAX,
67
  'orderby' => 'name',
@@ -73,7 +73,7 @@ class WPBDP_Admin_Listings {
73
  );
74
  }
75
 
76
- function _apply_category_filter( $query ) {
77
  if ( ! is_admin() ) {
78
  return;
79
  }
@@ -176,7 +176,7 @@ class WPBDP_Admin_Listings {
176
  }
177
 
178
  if ( ! $listing->has_fee_plan() ) {
179
- wpbdp_admin_message( _x( 'This listing doesn\'t have a fee plan assigned. This is required in order to determine the features available to this listing, as well as handling renewals.', 'admin listings', 'WPBDM' ), 'error' );
180
  }
181
  }
182
 
@@ -186,7 +186,7 @@ class WPBDP_Admin_Listings {
186
 
187
  add_meta_box(
188
  'wpbdp-listing-plan',
189
- __( 'Listing Information', 'WPBDM' ),
190
  array( $this, '_metabox_listing_info' ),
191
  WPBDP_POST_TYPE,
192
  'side',
@@ -194,7 +194,7 @@ class WPBDP_Admin_Listings {
194
  );
195
  add_meta_box(
196
  'wpbdp-listing-timeline',
197
- __( 'Listing Timeline', 'WPBDM' ),
198
  array( $this, '_metabox_listing_timeline' ),
199
  WPBDP_POST_TYPE,
200
  'side',
@@ -202,7 +202,7 @@ class WPBDP_Admin_Listings {
202
  );
203
  add_meta_box(
204
  'wpbdp-listing-fields',
205
- _x( 'Directory Listing Fields / Images', 'admin', 'WPBDM' ),
206
  array( 'WPBDP_Admin_Listing_Fields_Metabox', 'metabox_callback' ),
207
  WPBDP_POST_TYPE,
208
  'normal',
@@ -212,7 +212,7 @@ class WPBDP_Admin_Listings {
212
  if ( wpbdp_get_option( 'enable-listing-flagging' ) ) {
213
  add_meta_box(
214
  'wpbdp-listing-flagging',
215
- __( 'Listing Reports', 'WPBDM' ),
216
  array( $this, '_metabox_listing_flagging' ),
217
  WPBDP_POST_TYPE,
218
  'normal',
@@ -222,7 +222,7 @@ class WPBDP_Admin_Listings {
222
 
223
  add_meta_box(
224
  'wpbdp-listing-owner',
225
- __( 'Listing Owner', 'WPBDM' ),
226
  array( $this, '_metabox_listing_owner' ),
227
  WPBDP_POST_TYPE,
228
  'normal',
@@ -244,8 +244,8 @@ class WPBDP_Admin_Listings {
244
  }
245
 
246
  public function _metabox_listing_owner( $post ) {
247
- $owner_metabox = new WPBDP__Admin__Listing_Owner( $post->ID );
248
- echo $owner_metabox->render_metabox();
249
  }
250
 
251
  public function _metabox_listing_flagging( $post ) {
@@ -266,8 +266,8 @@ class WPBDP_Admin_Listings {
266
  // Insert category and expiration date after title.
267
  if ( 'title' == $c_key ) {
268
  $new_columns['title'] = $c_label;
269
- $new_columns['category'] = _x( 'Categories', 'admin', 'WPBDM' );
270
- $new_columns['expiration_date'] = __( 'Expires on', 'WPBDM' );
271
  continue;
272
  }
273
 
@@ -275,7 +275,7 @@ class WPBDP_Admin_Listings {
275
  }
276
 
277
  // Attributes goes last.
278
- $new_columns['attributes'] = __( 'Attributes', 'WPBDM' );
279
 
280
  $new_columns = apply_filters( 'wpbdp_admin_directory_columns', $new_columns );
281
  return $new_columns;
@@ -312,7 +312,7 @@ class WPBDP_Admin_Listings {
312
  if ( $exp_date ) {
313
  echo date_i18n( get_option( 'date_format' ), strtotime( $exp_date ) );
314
  } else {
315
- echo _x( 'Never', 'admin listings', 'WPBDM' );
316
  }
317
  }
318
 
@@ -323,7 +323,7 @@ class WPBDP_Admin_Listings {
323
  $attributes = array();
324
 
325
  if ( ! $plan ) {
326
- $attributes['no-fee-plan'] = '<span class="wpbdp-tag wpbdp-listing-attr-no-fee-plan">' . _x( 'No Fee Plan', 'listing attribute', 'WPBDM' ) . '</span>';
327
  }
328
 
329
  $listing_status = $listing->get_status();
@@ -338,33 +338,33 @@ class WPBDP_Admin_Listings {
338
 
339
  if ( $plan ) {
340
  if ( $plan->is_sticky ) {
341
- $attributes['featured'] = '<span class="wpbdp-tag wpbdp-listing-attr-featured">' . _x( 'Featured', 'admin listings', 'WPBDM' ) . '</span>';
342
  }
343
 
344
  if ( $plan->is_recurring ) {
345
- $attributes['recurring'] = '<span class="wpbdp-tag wpbdp-listing-attr-recurring">' . _x( 'Recurring', 'admin listings', 'WPBDM' ) . '</span>';
346
  }
347
 
348
  if ( 0.0 == $plan->fee_price ) {
349
- $attributes['free'] = '<span class="wpbdp-tag wpbdp-listing-attr-free">' . _x( 'Free', 'admin listings', 'WPBDM' ) . '</span>';
350
  } elseif ( 'pending_payment' != $listing->get_status() ) {
351
  $latest_payment = $listing->get_latest_payment();
352
 
353
- $attributes['payment'] = '<span class="wpbdp-tag wpbdp-listing-attr-payment-not-found">' . _x( 'Payment Not Found', 'admin listings', 'WPBDM' ) . '</span>';
354
  if ( $latest_payment && $latest_payment->status ) {
355
  $attributes['payment'] = '<span class="wpbdp-tag wpbdp-listing-attr-payment-' . $latest_payment->status . '">';
356
  $attributes['payment'] .= sprintf(
357
- _x( 'Payment %s', 'admin listings', 'WPBDM' ),
358
  $latest_payment->get_status_label( $latest_payment->status )
359
  );
360
  $attributes['payment'] .= '</span>';
361
  }
362
-
363
  }
364
  }
365
 
366
  if ( count( WPBDP__Listing_flagging::get_flagging_meta( $listing->get_id() ) ) ) {
367
- $attributes['reported'] = '<span class="wpbdp-tag wpbdp-listing-attr-reported">' . _x( 'Reported', 'admin listings', 'WPBDM' ) . '</span>';
368
  }
369
 
370
  $attributes = apply_filters( 'wpbdp_admin_directory_listing_attributes', $attributes, $listing );
@@ -424,7 +424,7 @@ class WPBDP_Admin_Listings {
424
  '<a href="%s" class="%s">%s <span class="count">(%s)</span></a>',
425
  esc_url( add_query_arg( 'listing_status', 'reported' ) ),
426
  wpbdp_getv( $_REQUEST, 'listing_status' ) == 'reported' ? 'current' : '',
427
- _x( 'Reported', 'listing status', 'WPBDM' ),
428
  number_format_i18n( $count )
429
  );
430
  }
@@ -473,12 +473,12 @@ class WPBDP_Admin_Listings {
473
  $actions['edit'] = sprintf(
474
  '<a href="%s">%s</a>',
475
  wpbdp_url( 'edit_listing', $post->ID ),
476
- _x( 'Edit Listing', 'admin actions', 'WPBDM' )
477
  );
478
  }
479
 
480
  if ( wpbdp_user_can( 'delete', $post->ID ) ) {
481
- $actions['delete'] = sprintf( '<a href="%s">%s</a>', wpbdp_url( 'delete_listing', $post->ID ), _x( 'Delete Listing', 'admin actions', 'WPBDM' ) );
482
  }
483
  }
484
 
@@ -489,12 +489,12 @@ class WPBDP_Admin_Listings {
489
  $listing = wpbdp_get_listing( $post->ID );
490
  $payments = $listing->get_payments();
491
  if ( $payments->count() > 1 ) {
492
- $actions['view-payments'] = '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp_admin_payments&listing=' . $listing->get_id() ) ) . '">' . _x( 'View Payments', 'admin actions', 'WPBDM' ) . '</a>';
493
  } else {
494
  $payment = $payments->get();
495
 
496
  if ( $payment ) {
497
- $actions['view-payments'] = '<a href="' . esc_url( $payment->get_admin_url() ) . '">' . _x( 'View Payment', 'admin actions', 'WPBDM' ) . '</a>';
498
  }
499
  }
500
 
@@ -530,7 +530,7 @@ class WPBDP_Admin_Listings {
530
 
531
  $listing = wpbdp_get_listing( $post_id );
532
 
533
- $thumbnail_id = intval( $_POST['_thumbnail_id'] ) > 0 ? intval( $_POST['_thumbnail_id'] ) : ( ! empty( $_POST['thumbnail_id'] ) ? intval( $_POST['thumbnail_id'] ) : 0 );
534
 
535
  // Update image information.
536
  if ( $thumbnail_id > 0 ) {
@@ -559,10 +559,10 @@ class WPBDP_Admin_Listings {
559
  if ( $post_name === get_post_field( 'post_name', $post_id ) ) {
560
  return;
561
  }
562
-
563
  if (
564
- ! $post_name ||
565
- ( isset( $_POST['edit_listing_slug'] ) && (bool)$_POST['edit_listing_slug'] ) ||
566
  ( isset( $_POST['action'] ) && 'inline-save' === $_POST['action'] && 'edit-wpbdp_listing' === $_POST['screen'] )
567
  ) {
568
  update_post_meta( $post_id, '_wpbdp[name]', get_post_field( 'post_name', $post_id ) );
@@ -577,12 +577,12 @@ class WPBDP_Admin_Listings {
577
  return $return;
578
  }
579
 
580
- if( WPBDP_POST_TYPE === $post->post_type ) {
581
  $return = sprintf(
582
  '<div class="wpbdp_allow_slug_edit"><label for="wpbdp_allow_slug_edit_input"><input id="wpbdp_allow_slug_edit_input" type="checkbox" name="edit_listing_slug" value="1" checked="%s" /> %s</label></div>',
583
  ( ! empty( $_POST['action'] ) && 'sample-permalink' == $_POST['action'] ) ? 'checked' : '',
584
- __( 'Edit listing permalink', 'WPBDM' )
585
- ) . sprintf(
586
  '<div class="wpbdp_listing_slug_edit %s">%s</div>',
587
  ( ! empty( $_POST['action'] ) && 'sample-permalink' == $_POST['action'] ) ? '' : 'hidden',
588
  $return
@@ -653,19 +653,19 @@ class WPBDP_Admin_Listings {
653
  if ( isset( $_GET['post_type'] ) && $_GET['post_type'] == WPBDP_POST_TYPE ) {
654
  $bulk_actions = array(
655
  'sep0' => '–',
656
- 'change-to-publish' => _x( 'Publish listings', 'admin actions', 'WPBDM' ),
657
- 'change-to-pending' => _x( 'Mark as "Pending Review"', 'admin actions', 'WPBDM' ),
658
- 'change-to-draft' => _x( 'Hide from directory (mark as "Draft")', 'admin actions', 'WPBDM' ),
659
  'sep1' => '–',
660
- 'renewlisting' => _x( 'Renew listings', 'admin actions', 'WPBDM' ),
661
- 'change-to-expired' => _x( 'Set listings as "Expired"', 'admin actions', 'WPBDM' ),
662
  /*
663
  Disabled as per https://github.com/drodenbaugh/BusinessDirectoryPlugin/issues/3279. */
664
- /*'approve-payments' => _x( 'Approve pending payments', 'admin actions', 'WPBDM' ),*/
665
  );
666
 
667
  if ( wpbdp_get_option( 'enable-key-access' ) ) {
668
- $bulk_actions['send-access-keys'] = _x( 'Send access keys', 'admin actions', 'WPBDM' );
669
  }
670
 
671
  $bulk_actions = apply_filters( 'wpbdp_admin_directory_bulk_actions', $bulk_actions );
@@ -676,11 +676,17 @@ class WPBDP_Admin_Listings {
676
  foreach ( $bulk_actions as $action => $text ) {
677
  echo sprintf(
678
  'jQuery(\'select[name="%s"]\').append(\'<option value="%s" data-uri="%s">%s</option>\');',
679
- 'action', 'listing-' . $action, esc_url( add_query_arg( 'wpbdmaction', $action ) ), $text
 
 
 
680
  );
681
  echo sprintf(
682
  'jQuery(\'select[name="%s"]\').append(\'<option value="%s" data-uri="%s">%s</option>\');',
683
- 'action2', 'listing-' . $action, esc_url( add_query_arg( 'wpbdmaction', $action ) ), $text
 
 
 
684
  );
685
  }
686
 
@@ -714,7 +720,7 @@ class WPBDP_Admin_Listings {
714
  wp_send_json_error( array( 'error' => $res->get_error_message() ) );
715
  }
716
 
717
- wp_send_json_success( array( 'message' => _x( 'Listing\'s payment history successfully deleted', 'admin listings', 'WPBDM' ) ) );
718
  }
719
 
720
  public function _add_tag_cloud( $tags ) {
3
  * @package WPBDP/includes/Admin/Admin listings
4
  */
5
 
 
 
6
  /**
7
  * Class WPBDP_Admin_Listings
8
  *
10
  */
11
  class WPBDP_Admin_Listings {
12
 
13
+ public $listing_owner = false;
14
+
15
+ public function __construct() {
16
  add_action( 'admin_init', array( $this, 'add_metaboxes' ) );
17
  add_action( 'wpbdp_admin_notices', array( $this, 'no_plan_edit_notice' ) );
18
 
32
  add_action( 'wpbdp_save_listing', array( $this, 'maybe_restore_listing_slug' ) );
33
  add_action( 'wpbdp_save_listing', array( $this, 'maybe_update_plan' ) );
34
 
35
+ add_filter( 'get_sample_permalink_html', array( $this, 'maybe_hide_permalinks' ), 10, 5 );
36
 
37
  // Filter by category.
38
  add_action( 'restrict_manage_posts', array( &$this, '_add_category_filter' ) );
45
 
46
  add_action( 'wp_ajax_wpbdp-clear-payment-history', array( &$this, 'ajax_clear_payment_history' ) );
47
 
48
+ add_filter( 'tag_cloud_sort', array( $this, '_add_tag_cloud' ) );
49
 
50
+ $this->listing_owner = new WPBDP__Admin__Listing_Owner();
51
  }
52
 
53
  // Category filter. {{
55
  global $typenow;
56
  global $wp_query;
57
 
58
+ if ( WPBDP_POST_TYPE !== $typenow ) {
59
  return;
60
  }
61
 
62
  wp_dropdown_categories(
63
  array(
64
+ 'show_option_all' => _x( 'All categories', 'admin category filter', 'business-directory-plugin' ),
65
  'taxonomy' => WPBDP_CATEGORY_TAX,
66
  'name' => WPBDP_CATEGORY_TAX,
67
  'orderby' => 'name',
73
  );
74
  }
75
 
76
+ public function _apply_category_filter( $query ) {
77
  if ( ! is_admin() ) {
78
  return;
79
  }
176
  }
177
 
178
  if ( ! $listing->has_fee_plan() ) {
179
+ wpbdp_admin_message( _x( 'This listing doesn\'t have a fee plan assigned. This is required in order to determine the features available to this listing, as well as handling renewals.', 'admin listings', 'business-directory-plugin' ), 'error' );
180
  }
181
  }
182
 
186
 
187
  add_meta_box(
188
  'wpbdp-listing-plan',
189
+ __( 'Listing Information', 'business-directory-plugin' ),
190
  array( $this, '_metabox_listing_info' ),
191
  WPBDP_POST_TYPE,
192
  'side',
194
  );
195
  add_meta_box(
196
  'wpbdp-listing-timeline',
197
+ __( 'Listing Timeline', 'business-directory-plugin' ),
198
  array( $this, '_metabox_listing_timeline' ),
199
  WPBDP_POST_TYPE,
200
  'side',
202
  );
203
  add_meta_box(
204
  'wpbdp-listing-fields',
205
+ _x( 'Directory Listing Fields / Images', 'admin', 'business-directory-plugin' ),
206
  array( 'WPBDP_Admin_Listing_Fields_Metabox', 'metabox_callback' ),
207
  WPBDP_POST_TYPE,
208
  'normal',
212
  if ( wpbdp_get_option( 'enable-listing-flagging' ) ) {
213
  add_meta_box(
214
  'wpbdp-listing-flagging',
215
+ __( 'Listing Reports', 'business-directory-plugin' ),
216
  array( $this, '_metabox_listing_flagging' ),
217
  WPBDP_POST_TYPE,
218
  'normal',
222
 
223
  add_meta_box(
224
  'wpbdp-listing-owner',
225
+ __( 'Listing Owner', 'business-directory-plugin' ),
226
  array( $this, '_metabox_listing_owner' ),
227
  WPBDP_POST_TYPE,
228
  'normal',
244
  }
245
 
246
  public function _metabox_listing_owner( $post ) {
247
+ $this->listing_owner->set_listing_id( $post->ID );
248
+ echo $this->listing_owner->render_metabox();
249
  }
250
 
251
  public function _metabox_listing_flagging( $post ) {
266
  // Insert category and expiration date after title.
267
  if ( 'title' == $c_key ) {
268
  $new_columns['title'] = $c_label;
269
+ $new_columns['category'] = _x( 'Categories', 'admin', 'business-directory-plugin' );
270
+ $new_columns['expiration_date'] = __( 'Expires on', 'business-directory-plugin' );
271
  continue;
272
  }
273
 
275
  }
276
 
277
  // Attributes goes last.
278
+ $new_columns['attributes'] = __( 'Attributes', 'business-directory-plugin' );
279
 
280
  $new_columns = apply_filters( 'wpbdp_admin_directory_columns', $new_columns );
281
  return $new_columns;
312
  if ( $exp_date ) {
313
  echo date_i18n( get_option( 'date_format' ), strtotime( $exp_date ) );
314
  } else {
315
+ echo _x( 'Never', 'admin listings', 'business-directory-plugin' );
316
  }
317
  }
318
 
323
  $attributes = array();
324
 
325
  if ( ! $plan ) {
326
+ $attributes['no-fee-plan'] = '<span class="wpbdp-tag wpbdp-listing-attr-no-fee-plan">' . _x( 'No Fee Plan', 'listing attribute', 'business-directory-plugin' ) . '</span>';
327
  }
328
 
329
  $listing_status = $listing->get_status();
338
 
339
  if ( $plan ) {
340
  if ( $plan->is_sticky ) {
341
+ $attributes['featured'] = '<span class="wpbdp-tag wpbdp-listing-attr-featured">' . _x( 'Featured', 'admin listings', 'business-directory-plugin' ) . '</span>';
342
  }
343
 
344
  if ( $plan->is_recurring ) {
345
+ $attributes['recurring'] = '<span class="wpbdp-tag wpbdp-listing-attr-recurring">' . _x( 'Recurring', 'admin listings', 'business-directory-plugin' ) . '</span>';
346
  }
347
 
348
  if ( 0.0 == $plan->fee_price ) {
349
+ $attributes['free'] = '<span class="wpbdp-tag wpbdp-listing-attr-free">' . _x( 'Free', 'admin listings', 'business-directory-plugin' ) . '</span>';
350
  } elseif ( 'pending_payment' != $listing->get_status() ) {
351
  $latest_payment = $listing->get_latest_payment();
352
 
353
+ $attributes['payment'] = '<span class="wpbdp-tag wpbdp-listing-attr-payment-not-found">' . _x( 'Payment Not Found', 'admin listings', 'business-directory-plugin' ) . '</span>';
354
  if ( $latest_payment && $latest_payment->status ) {
355
  $attributes['payment'] = '<span class="wpbdp-tag wpbdp-listing-attr-payment-' . $latest_payment->status . '">';
356
  $attributes['payment'] .= sprintf(
357
+ _x( 'Payment %s', 'admin listings', 'business-directory-plugin' ),
358
  $latest_payment->get_status_label( $latest_payment->status )
359
  );
360
  $attributes['payment'] .= '</span>';
361
  }
362
+
363
  }
364
  }
365
 
366
  if ( count( WPBDP__Listing_flagging::get_flagging_meta( $listing->get_id() ) ) ) {
367
+ $attributes['reported'] = '<span class="wpbdp-tag wpbdp-listing-attr-reported">' . _x( 'Reported', 'admin listings', 'business-directory-plugin' ) . '</span>';
368
  }
369
 
370
  $attributes = apply_filters( 'wpbdp_admin_directory_listing_attributes', $attributes, $listing );
424
  '<a href="%s" class="%s">%s <span class="count">(%s)</span></a>',
425
  esc_url( add_query_arg( 'listing_status', 'reported' ) ),
426
  wpbdp_getv( $_REQUEST, 'listing_status' ) == 'reported' ? 'current' : '',
427
+ _x( 'Reported', 'listing status', 'business-directory-plugin' ),
428
  number_format_i18n( $count )
429
  );
430
  }
473
  $actions['edit'] = sprintf(
474
  '<a href="%s">%s</a>',
475
  wpbdp_url( 'edit_listing', $post->ID ),
476
+ _x( 'Edit Listing', 'admin actions', 'business-directory-plugin' )
477
  );
478
  }
479
 
480
  if ( wpbdp_user_can( 'delete', $post->ID ) ) {
481
+ $actions['delete'] = sprintf( '<a href="%s">%s</a>', wpbdp_url( 'delete_listing', $post->ID ), _x( 'Delete Listing', 'admin actions', 'business-directory-plugin' ) );
482
  }
483
  }
484
 
489
  $listing = wpbdp_get_listing( $post->ID );
490
  $payments = $listing->get_payments();
491
  if ( $payments->count() > 1 ) {
492
+ $actions['view-payments'] = '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp_admin_payments&listing=' . $listing->get_id() ) ) . '">' . _x( 'View Payments', 'admin actions', 'business-directory-plugin' ) . '</a>';
493
  } else {
494
  $payment = $payments->get();
495
 
496
  if ( $payment ) {
497
+ $actions['view-payments'] = '<a href="' . esc_url( $payment->get_admin_url() ) . '">' . _x( 'View Payment', 'admin actions', 'business-directory-plugin' ) . '</a>';
498
  }
499
  }
500
 
530
 
531
  $listing = wpbdp_get_listing( $post_id );
532
 
533
+ $thumbnail_id = intval( $_POST['_thumbnail_id'] ) > 0 ? intval( $_POST['_thumbnail_id'] ) : ( ! empty( $_POST['thumbnail_id'] ) ? intval( $_POST['thumbnail_id'] ) : 0 );
534
 
535
  // Update image information.
536
  if ( $thumbnail_id > 0 ) {
559
  if ( $post_name === get_post_field( 'post_name', $post_id ) ) {
560
  return;
561
  }
562
+
563
  if (
564
+ ! $post_name ||
565
+ ( isset( $_POST['edit_listing_slug'] ) && (bool) $_POST['edit_listing_slug'] ) ||
566
  ( isset( $_POST['action'] ) && 'inline-save' === $_POST['action'] && 'edit-wpbdp_listing' === $_POST['screen'] )
567
  ) {
568
  update_post_meta( $post_id, '_wpbdp[name]', get_post_field( 'post_name', $post_id ) );
577
  return $return;
578
  }
579
 
580
+ if ( WPBDP_POST_TYPE === $post->post_type ) {
581
  $return = sprintf(
582
  '<div class="wpbdp_allow_slug_edit"><label for="wpbdp_allow_slug_edit_input"><input id="wpbdp_allow_slug_edit_input" type="checkbox" name="edit_listing_slug" value="1" checked="%s" /> %s</label></div>',
583
  ( ! empty( $_POST['action'] ) && 'sample-permalink' == $_POST['action'] ) ? 'checked' : '',
584
+ __( 'Edit listing permalink', 'business-directory-plugin' )
585
+ ) . sprintf(
586
  '<div class="wpbdp_listing_slug_edit %s">%s</div>',
587
  ( ! empty( $_POST['action'] ) && 'sample-permalink' == $_POST['action'] ) ? '' : 'hidden',
588
  $return
653
  if ( isset( $_GET['post_type'] ) && $_GET['post_type'] == WPBDP_POST_TYPE ) {
654
  $bulk_actions = array(
655
  'sep0' => '–',
656
+ 'change-to-publish' => _x( 'Publish listings', 'admin actions', 'business-directory-plugin' ),
657
+ 'change-to-pending' => _x( 'Mark as "Pending Review"', 'admin actions', 'business-directory-plugin' ),
658
+ 'change-to-draft' => _x( 'Hide from directory (mark as "Draft")', 'admin actions', 'business-directory-plugin' ),
659
  'sep1' => '–',
660
+ 'renewlisting' => _x( 'Renew listings', 'admin actions', 'business-directory-plugin' ),
661
+ 'change-to-expired' => _x( 'Set listings as "Expired"', 'admin actions', 'business-directory-plugin' ),
662
  /*
663
  Disabled as per https://github.com/drodenbaugh/BusinessDirectoryPlugin/issues/3279. */
664
+ /*'approve-payments' => _x( 'Approve pending payments', 'admin actions', 'business-directory-plugin' ),*/
665
  );
666
 
667
  if ( wpbdp_get_option( 'enable-key-access' ) ) {
668
+ $bulk_actions['send-access-keys'] = _x( 'Send access keys', 'admin actions', 'business-directory-plugin' );
669
  }
670
 
671
  $bulk_actions = apply_filters( 'wpbdp_admin_directory_bulk_actions', $bulk_actions );
676
  foreach ( $bulk_actions as $action => $text ) {
677
  echo sprintf(
678
  'jQuery(\'select[name="%s"]\').append(\'<option value="%s" data-uri="%s">%s</option>\');',
679
+ 'action',
680
+ 'listing-' . $action,
681
+ esc_url( add_query_arg( 'wpbdmaction', $action ) ),
682
+ $text
683
  );
684
  echo sprintf(
685
  'jQuery(\'select[name="%s"]\').append(\'<option value="%s" data-uri="%s">%s</option>\');',
686
+ 'action2',
687
+ 'listing-' . $action,
688
+ esc_url( add_query_arg( 'wpbdmaction', $action ) ),
689
+ $text
690
  );
691
  }
692
 
720
  wp_send_json_error( array( 'error' => $res->get_error_message() ) );
721
  }
722
 
723
+ wp_send_json_success( array( 'message' => _x( 'Listing\'s payment history successfully deleted', 'admin listings', 'business-directory-plugin' ) ) );
724
  }
725
 
726
  public function _add_tag_cloud( $tags ) {
includes/admin/class-admin.php CHANGED
@@ -20,1047 +20,1020 @@ require_once WPBDP_PATH . 'includes/admin/class-admin-controller.php';
20
 
21
  if ( ! class_exists( 'WPBDP_Admin' ) ) {
22
 
23
- /**
24
- * Class WPBDP_Admin
25
- */
26
- class WPBDP_Admin {
27
 
28
- private $menu = array();
29
- private $current_controller = null;
30
- private $current_controller_output = '';
31
 
32
- private $dropdown_users_args_stack = array();
33
 
34
- public $messages = array();
35
 
36
 
37
- public function __construct() {
38
- add_action('admin_init', array($this, 'handle_actions'));
39
 
40
- add_action('admin_init', array($this, 'check_for_required_pages'));
41
 
42
- add_action( 'admin_init', array( &$this, 'process_admin_action' ), 999 );
43
- add_action( 'admin_init', array( $this, 'register_listings_views' ) );
44
 
45
- add_action('admin_notices', array($this, 'admin_notices'));
46
- add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
47
 
48
- // Adds admin menus.
49
- add_action( 'admin_menu', array( &$this, 'admin_menu' ) );
50
 
51
- // Enables reordering of admin menus.
52
- add_filter( 'custom_menu_order', '__return_true' );
53
 
54
- // Puts the "Directory" and "Directory Admin" next to each other.
55
- add_filter( 'menu_order', array( &$this, 'admin_menu_reorder' ) );
56
 
57
- add_filter( 'manage_edit-' . WPBDP_CATEGORY_TAX . '_columns', array( &$this, 'add_custom_taxonomy_columns' ) );
58
- add_filter( 'manage_edit-' . WPBDP_TAGS_TAX . '_columns', array( &$this, 'tag_taxonomy_columns' ) );
59
- add_action( 'manage_' . WPBDP_CATEGORY_TAX . '_custom_column', array( &$this, 'custom_taxonomy_columns' ), 10, 3 );
60
 
61
- add_filter('wp_terms_checklist_args', array($this, '_checklist_args')); // fix issue #152
62
 
63
- add_action( 'wp_ajax_wpbdp-formfields-reorder', array( &$this, 'ajax_formfields_reorder' ) );
64
 
65
- add_action( 'wp_ajax_wpbdp-admin-fees-set-order', array( &$this, 'ajax_fees_set_order' ) );
66
- add_action( 'wp_ajax_wpbdp-admin-fees-reorder', array( &$this, 'ajax_fees_reorder' ) );
67
 
68
- add_action( 'wp_ajax_wpbdp-renderfieldsettings', array( 'WPBDP_FormFieldsAdmin', '_render_field_settings' ) );
69
 
70
- add_action( 'wp_ajax_wpbdp-create-main-page', array( &$this, 'ajax_create_main_page' ) );
71
- add_action( 'wp_ajax_wpbdp-drip_subscribe', array( &$this, 'ajax_drip_subscribe' ) );
72
- add_action( 'wp_ajax_wpbdp-set_site_tracking', 'WPBDP_SiteTracking::handle_ajax_response' );
73
- add_action( 'wp_ajax_wpbdp_dismiss_notification', array( &$this, 'ajax_dismiss_notification' ) );
74
 
75
- add_action( 'wpbdp_admin_ajax_dismiss_notification_server_requirements', array( $this, 'ajax_dismiss_notification_server_requirements' ) );
76
 
77
- add_action( 'current_screen', array( $this, 'admin_view_dispatch' ), 9999 );
78
- add_action( 'wp_ajax_wpbdp_admin_ajax', array( $this, 'admin_ajax_dispatch' ), 9999 );
79
 
80
- $this->listings = new WPBDP_Admin_Listings();
81
- $this->csv_import = new WPBDP_CSVImportAdmin();
82
- $this->csv_export = new WPBDP_Admin_CSVExport();
83
- $this->debug_page = new WPBDP_Admin_Debug_Page();
84
 
85
- // Post-install migrations.
86
- if ( get_option( 'wpbdp-migrate-18_0-featured-pending', false ) ) {
87
- require_once( WPBDP_PATH . 'includes/admin/upgrades/migrations/manual-upgrade-18_0-featured-levels.php' );
88
- $this->post_install_migration = new WPBDP__Manual_Upgrade__18_0__Featured_Levels();
89
- }
90
 
91
- require_once( WPBDP_INC . 'admin/settings/class-settings-admin.php' );
92
- $this->settings_admin = new WPBDP__Settings_Admin();
93
 
94
- if ( wpbdp_get_option( 'tracking-on' ) ) {
95
- $this->site_tracking = new WPBDP_SiteTracking();
 
96
  }
97
- }
98
 
99
- function enqueue_scripts() {
100
- global $wpbdp;
101
- global $pagenow;
102
-
103
- wp_enqueue_style(
104
- 'wpbdp-admin',
105
- WPBDP_URL . 'assets/css/admin.min.css',
106
- array(),
107
- WPBDP_VERSION
108
- );
109
-
110
- wp_enqueue_style( 'thickbox' );
111
-
112
- wp_enqueue_style(
113
- 'wpbdp-frontend-css',
114
- WPBDP_URL . 'assets/css/wpbdp.min.css',
115
- array(),
116
- WPBDP_VERSION
117
- );
118
-
119
- wp_enqueue_script(
120
- 'wpbdp-frontend-js',
121
- WPBDP_URL . 'assets/js/wpbdp.min.js',
122
- array( 'jquery' ),
123
- WPBDP_VERSION
124
- );
125
-
126
- wp_enqueue_script(
127
- 'wpbdp-admin-js',
128
- WPBDP_URL . 'assets/js/admin.min.js',
129
- array( 'jquery', 'thickbox', 'jquery-ui-sortable' ),
130
- WPBDP_VERSION
131
- );
132
-
133
- wp_enqueue_script(
134
- 'wpbdp-user-selector-js',
135
- WPBDP_URL . 'assets/js/user-selector.min.js',
136
- array( 'jquery', 'wpbdp-js-select2' ),
137
- WPBDP_VERSION
138
- );
139
-
140
- if ( 'post-new.php' == $pagenow || 'post.php' == $pagenow ) {
141
- wpbdp_enqueue_jquery_ui_style();
142
 
143
  wp_enqueue_style(
144
- 'wpbdp-listing-admin-metabox',
145
- WPBDP_URL . 'assets/css/admin-listing-metabox.min.css',
146
  array(),
147
  WPBDP_VERSION
148
  );
149
 
 
 
150
  wp_enqueue_style(
151
- 'wpbdp-listing-admin-timeline',
152
- WPBDP_URL . 'assets/css/admin-listing-timeline.min.css',
153
  array(),
154
  WPBDP_VERSION
155
  );
156
 
157
- wp_enqueue_style( 'wpbdp-dnd-upload' );
 
 
 
 
 
158
 
159
  wp_enqueue_script(
160
- 'wpbdp-admin-listing',
161
- WPBDP_URL . 'assets/js/admin-listing.min.js',
162
- array( 'wpbdp-admin-js', 'wpbdp-dnd-upload', 'jquery-ui-tooltip' ),
163
  WPBDP_VERSION
164
  );
165
 
166
  wp_enqueue_script(
167
- 'wpbdp-admin-listing-metabox',
168
- WPBDP_URL . 'assets/js/admin-listing-metabox.min.js',
169
- array( 'wpbdp-admin-js', 'jquery-ui-datepicker' ),
170
  WPBDP_VERSION
171
  );
172
 
173
- wp_localize_script( 'wpbdp-admin-listing-metabox', 'wpbdpListingMetaboxL10n', array(
174
- 'planDisplayFormat' => sprintf( '<a href="%s">%s</a>', admin_url( 'admin.php?page=wpbdp-admin-fees&wpbdp_view=edit-fee&id={{plan_id}}' ), '{{plan_label}}' ),
175
- 'noExpiration' => _x( 'Never', 'listing metabox', 'WPBDM' ),
176
- 'yes' => _x( 'Yes', 'listing metabox', 'WPBDM' ),
177
- 'no' => _x( 'No', 'listing metabox', 'WPBDM' )
178
- ) );
179
-
180
- wp_localize_script( 'wpbdp-admin-listing', 'WPBDP_admin_listings_config', array(
181
- 'messages' => array(
182
- 'preview_button_tooltip' => __( "Preview is only available after you've saved the first draft. This is due
183
- to how WordPress stores the data.", 'WPBDM' )
184
- )
185
- ) );
186
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
 
188
- // Ask for site tracking if needed.
189
- if ( ! wpbdp_get_option( 'tracking-on', false ) && get_option( 'wpbdp-show-tracking-pointer', 0 ) && current_user_can( 'administrator' ) ) {
190
- wp_enqueue_style( 'wp-pointer' );
191
- wp_enqueue_script( 'wp-pointer' );
192
- add_action( 'admin_print_footer_scripts', 'WPBDP_SiteTracking::request_js' );
 
 
 
 
 
 
 
193
  }
194
 
195
- if ( current_user_can( 'administrator' ) && get_option( 'wpbdp-show-drip-pointer', 0 ) ) {
196
- wp_enqueue_style( 'wp-pointer' );
197
- wp_enqueue_script( 'wp-pointer' );
198
- add_action( 'admin_print_footer_scripts', array( $this, 'drip_pointer' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199
  }
200
- }
201
 
202
- /**
203
- * @since 3.4.1
204
- */
205
- public function drip_pointer() {
206
- $current_user = wp_get_current_user();
207
-
208
- $js = '$.post( ajaxurl, { action: "wpbdp-drip_subscribe",
209
- email: $( "#wpbdp-drip-pointer-email" ).val(),
210
- nonce: "'. wp_create_nonce( 'drip pointer subscribe') .'",
211
- subscribe: "%d" } );';
212
-
213
- $content = '';
214
- $content .= _x( 'Find out how to create a compelling, thriving business directory from scratch in this ridiculously actionable (and FREE) 5-part email course. Get a FREE premium module just for signing up.', 'drip pointer', 'WPBDM' ) . '<br /><br />';
215
- $content .= '<label>';
216
- $content .= '<b>' . _x( 'Email Address:', 'drip pointer', 'WPBDM' ) . '</b>';
217
- $content .= '<br />';
218
- $content .= '<input type="text" id="wpbdp-drip-pointer-email" value="' . esc_attr( $current_user->user_email ) . '" />';
219
- $content .= '</label>';
220
-
221
- wpbdp_admin_pointer( '#wpadminbar',
222
- _x( 'Want to know the Secrets of Building an Awesome Business Directory?', 'drip pointer', 'WPBDM' ),
223
- $content,
224
- _x( 'Yes, please!', 'drip pointer', 'WPBDM' ),
225
- sprintf( $js, 1 ),
226
- _x( 'No, thanks', 'drip pointer', 'WPBDM' ),
227
- sprintf( $js, 0 ) );
228
- }
229
 
230
- /**
231
- * @since 3.5.3
232
- */
233
- public function ajax_create_main_page() {
234
- $nonce = isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '';
235
 
236
- if ( ! current_user_can( 'administrator' ) || ! $nonce || ! wp_verify_nonce( $nonce, 'create main page' ) )
237
- exit();
238
 
239
- if ( wpbdp_get_page_id( 'main' ) )
240
- exit();
 
 
 
241
 
242
- $page = array( 'post_status' => 'publish',
243
- 'post_title' => _x( 'Business Directory', 'admin', 'WPBDM' ),
244
- 'post_type' => 'page',
245
- 'post_content' => '[businessdirectory]' );
246
- $page_id = wp_insert_post( $page );
247
 
248
- if ( ! $page_id )
249
- exit();
 
 
 
 
250
 
251
- $res = new WPBDP_Ajax_Response();
252
- $res->set_message( str_replace( '<a>',
253
- '<a href="' . get_permalink( $page_id ) . '" target="_blank" rel="noopener">',
254
- _x( 'You\'re all set. Visit your new <a>Business Directory</a> page.', 'admin', 'WPBDM' ) ) );
255
- $res->send();
256
- }
257
 
258
- /**
259
- * @since 3.4.1
260
- */
261
- public function ajax_drip_subscribe() {
262
- $current_user = wp_get_current_user();
263
 
264
- $res = new WPBDP_Ajax_Response();
265
- $subscribe = ( '1' == $_POST['subscribe'] ) ? true : false;
266
 
267
- if ( ! get_option( 'wpbdp-show-drip-pointer', 0 ) || ! wp_verify_nonce( $_POST['nonce'], 'drip pointer subscribe' ) )
268
- $res->send_error();
269
 
270
- delete_option( 'wpbdp-show-drip-pointer' );
 
 
271
 
272
- if ( $subscribe ) {
273
- if ( ! filter_var( $_POST['email'], FILTER_VALIDATE_EMAIL ) )
274
- return $res->send_error( _x( 'Invalid e-mail address.', 'drip pointer', 'WPBDM' ) );
275
 
276
- // Build fields for POSTing to Drip.
277
- $data = array();
278
- $data['name'] = '';
279
 
280
- foreach ( array( 'first_name', 'display_name', 'user_login', 'username' ) as $k ) {
281
- if ( empty ( $current_user->{$k} ) )
282
- continue;
283
 
284
- $data['name'] = $current_user->{$k};
285
- break;
 
 
 
 
 
 
 
 
 
286
  }
287
 
288
- $data['email'] = $_POST['email'];
289
- $data['website'] = get_bloginfo( 'url' );
290
- $data['gmt_offset'] = get_option( 'gmt_offset' );
291
-
292
- $response = wp_remote_post( 'https://www.getdrip.com/forms/6877690/submissions', array(
293
- 'body' => array(
294
- 'fields[name]' => $data['name'],
295
- 'fields[email]' => $data['email'],
296
- 'fields[website]' => $data['website'],
297
- 'fields[gmt_offset]' => $data['gmt_offset'] )
298
- ) );
299
  }
300
 
301
- $res->send();
302
- }
 
 
303
 
304
- function admin_menu() {
305
- $badge_number = absint( apply_filters( 'wpbdp_admin_menu_badge_number', 0 ) );
306
- $count_html = $badge_number ? '<span class="update-plugins"><span class="plugin-count">' . $badge_number . '</span></span>' : '';
307
-
308
- add_menu_page( _x( 'Business Directory Admin', 'admin menu', "WPBDM" ),
309
- $count_html ? _x( 'Dir. Admin', 'admin menu', 'WPBDM' ) . $count_html : _x( 'Directory Admin', 'admin menu', 'WPBDM' ),
310
- 'administrator',
311
- 'wpbdp_admin',
312
- array( &$this, 'main_menu' ),
313
- WPBDP_URL . 'assets/images/menuico.png' );
314
-
315
- $menu['wpbdp-admin-add-listing'] = array(
316
- 'title' => _x('Add New Listing', 'admin menu', 'WPBDM'),
317
- 'url' => admin_url( sprintf( 'post-new.php?post_type=%s', WPBDP_POST_TYPE ) )
318
- );
319
- // $menu['wpbdp_admin_settings'] = array(
320
- // 'title' => _x('Manage Options', 'admin menu', 'WPBDM'),
321
- // 'callback' => array( $this, 'admin_settings' )
322
- // );
323
- $menu['wpbdp-admin-fees'] = array(
324
- 'title' => _x( 'Manage Fees', 'admin menu', 'WPBDM' )
325
- );
326
- $menu['wpbdp_all_listings'] = array(
327
- 'title' => _x('Listings', 'admin menu', 'WPBDM'),
328
- 'url' => admin_url( 'edit.php?post_type=' . WPBDP_POST_TYPE )
329
- );
330
- $menu['wpbdp_admin_formfields'] = array(
331
- 'title' => _x('Manage Form Fields', 'admin menu', 'WPBDM'),
332
- 'callback' => array('WPBDP_FormFieldsAdmin', 'admin_menu_cb')
333
- );
334
- $menu['wpbdp_admin_payments'] = array(
335
- 'title' => _x( 'Payment History', 'admin menu', 'WPBDM' )
336
- );
337
- $menu['wpbdp_admin_csv'] = array(
338
- 'title' => _x( 'CSV Import & Export', 'admin menu', 'WPBDM' )
339
- );
340
- // $menu['wpbdp-csv-import'] = array(
341
- // 'title' => _x( 'CSV Import', 'admin menu', 'WPBDM' ),
342
- // 'callback' => array( &$this->csv_import, 'dispatch' )
343
- // );
344
- // $menu['wpbdp-csv-export'] = array(
345
- // 'title' => _x( 'CSV Export', 'admin menu', 'WPBDM' ),
346
- // 'callback' => array( &$this->csv_export, 'dispatch' )
347
- // );
348
- $menu['wpbdp-debug-info'] = array(
349
- 'title' => _x( 'Debug', 'admin menu', 'WPBDM' ),
350
- 'callback' => array( &$this->debug_page, 'dispatch' )
351
- );
352
-
353
- // FIXME: before next-release
354
- // if (current_user_can('administrator')) {
355
- // $submenu['wpbdp_admin'][0][0] = _x('Main Menu', 'admin menu', 'WPBDM');
356
- // $submenu['wpbdp_admin'] = apply_filters( 'wpbdp_admin_menu_reorder', $submenu['wpbdp_admin'] );
357
-
358
- $this->menu = apply_filters( 'wpbdp_admin_menu_items', $menu );
359
- $this->prepare_menu( $this->menu );
360
-
361
- // Register menu items.
362
- foreach ( $this->menu as $item_slug => &$item_data ) {
363
- $item_data['hook'] = add_submenu_page( 'wpbdp_admin',
364
- $item_data['title'],
365
- $item_data['label'],
366
- 'administrator',
367
- $item_slug,
368
- array( $this, 'menu_dispatch' ) );
369
- }
370
- // $item_data = null;
371
- do_action('wpbdp_admin_menu', 'wpbdp_admin');
372
 
373
- if ( ! current_user_can( 'administrator' ) )
374
- return;
 
 
 
 
375
 
376
- add_submenu_page( 'wpbdp_admin',
377
- __( 'Uninstall Business Directory Plugin', 'WPBDM' ),
378
- __( 'Uninstall', 'WPBDM' ),
379
- 'administrator',
380
- 'wpbdp_uninstall',
381
- array( $this, 'uninstall_plugin' ) );
382
 
383
- // Handle some special menu items.
384
- foreach ( $GLOBALS['submenu']['wpbdp_admin'] as &$menu_item ) {
385
- if ( ! isset( $this->menu[ $menu_item[2] ] ) )
386
- continue;
387
 
388
- $menu_item_data = $this->menu[ $menu_item[2] ];
 
 
389
 
390
- if ( ! empty( $menu_item_data['url'] ) )
391
- $menu_item[2] = $menu_item_data['url'];
392
  }
393
 
394
- }
 
 
 
 
395
 
396
- /**
397
- * @since 5.0
398
- */
399
- private function prepare_menu( &$menu ) {
400
- $n = 1;
401
 
402
- foreach ( $menu as &$item ) {
403
- if ( ! isset( $item['priority'] ) )
404
- $item['priority'] = $n++;
405
 
406
- if ( ! isset( $item['title'] ) )
407
- $item['title'] = _x( 'Untitled Menu', 'admin', 'WPBDM' );
408
 
409
- if ( ! isset( $item['label'] ) )
410
- $item['label'] = $item['title'];
411
 
412
- if ( ! isset( $item['file'] ) )
413
- $item['file'] = '';
414
 
415
- if ( ! isset( $item['callback'] ) )
416
- $item['callback'] = '';
 
417
 
418
- if ( ! isset( $item['url'] ) )
419
- $item['url'] = '';
420
  }
421
 
422
- WPBDP_Utils::sort_by_property( $menu, 'priority' );
423
- }
 
 
 
424
 
425
- /**
426
- * @since 5.0
427
- */
428
- function admin_view_dispatch() {
429
- global $plugin_page;
430
 
431
- if ( ! isset( $plugin_page ) || ! isset( $this->menu[ $plugin_page ] ) )
432
- return;
 
433
 
434
- $item = $this->menu[ $plugin_page ];
435
- $slug = $plugin_page;
436
- $callback = $item['callback'];
437
 
 
 
 
438
 
439
- // Simple callback view are not processed here.
440
- if ( $callback && is_callable( $callback ) )
441
- return;
442
 
443
- $id = str_replace( array( 'wpbdp-admin-', 'wpbdp_admin_' ), '', $slug );
 
 
 
 
 
 
444
 
445
- $candidates = array( $item['file'],
446
- WPBDP_INC . 'admin/class-admin-' . $id . '.php',
447
- WPBDP_INC . 'admin/' . $id . '.php' );
448
- foreach ( $candidates as $c ) {
449
- if ( $c && file_exists( $c ) )
450
- require_once( $c );
451
- }
 
452
 
453
- // Maybe loading one of the candidate files made the callback available.
454
- if ( $callback && is_callable( $callback ) ) {
455
- ob_start();
456
- call_user_func( $callback );
457
- $this->current_controller_output = ob_get_contents();
458
- ob_end_clean();
459
- return;
460
- }
461
 
462
- $classname = 'WPBDP__Admin__' . ucfirst( $id );
 
463
 
464
- if ( ! class_exists( $classname ) )
465
- return;
466
 
467
- $this->current_controller = new $classname;
 
 
 
468
 
469
- ob_start();
470
- $this->current_controller->_dispatch();
471
- $this->current_controller_output = ob_get_contents();
472
- ob_end_clean();
473
 
474
- add_action( 'admin_enqueue_scripts', array( $this->current_controller, '_enqueue_scripts' ) );
475
- }
 
 
 
 
476
 
477
- /**
478
- * @since 5.0
479
- */
480
- function admin_ajax_dispatch() {
481
- if ( empty( $_REQUEST['handler'] ) )
482
- return;
483
 
484
- $handler = trim( $_REQUEST['handler'] );
485
- $handler = WPBDP__Utils::normalize( $handler );
 
486
 
487
- $parts = explode( '__', $handler );
488
- $controller_id = $parts[0];
489
- $function = isset( $parts[1] ) ? $parts[1] : '';
 
 
490
 
491
- $candidates = array( WPBDP_INC . 'admin/class-admin-' . $controller_id . '.php',
492
- WPBDP_INC . 'admin/' . $controller_id . '.php' );
493
- foreach ( $candidates as $c ) {
494
- if ( ! file_exists( $c ) )
495
- continue;
496
 
497
- require_once( $c );
498
- $classname = 'WPBDP__Admin__' . ucfirst( $controller_id );
499
 
500
- if ( ! class_exists( $classname ) )
501
- continue;
 
502
 
503
- $controller = new $classname;
504
- return $controller->_ajax_dispatch();
505
  }
506
 
507
- exit;
508
- }
509
-
510
- /**
511
- * @since 5.0
512
- */
513
- function menu_dispatch() {
514
- $output = $this->current_controller_output;
515
 
516
- if ( $output )
517
- return print( $output );
518
 
519
- global $plugin_page;
520
- if ( ! isset( $plugin_page ) || ! isset( $this->menu[ $plugin_page ] ) )
521
- return;
522
 
523
- $item = $this->menu[ $plugin_page ];
524
- $slug = $plugin_page;
525
- $callback = $item['callback'];
526
 
527
- if ( $callback ) {
528
- call_user_func( $callback );
 
529
  }
530
- }
531
 
532
- /**
533
- * Makes sure that both the "Directory" and "Directory Admin" menus are next to each other.
534
- */
535
- function admin_menu_reorder( $menu_order ) {
536
- $index1 = array_search( 'wpbdp_admin', $menu_order, true );
537
- $index2 = array_search( 'edit.php?post_type=' . WPBDP_POST_TYPE, $menu_order, true );
538
 
539
- if ( false === $index1 || false === $index2 )
540
- return $menu_order;
541
 
542
- $min = min( $index1, $index2 );
543
- $max = max( $index1, $index2 );
544
 
545
- return array_merge( array_slice( $menu_order, 0, $min ),
546
- array( $menu_order[ $min ], $menu_order[ $max ] ),
547
- array_slice( $menu_order, $min + 1, $max - $min - 1 ),
548
- array_slice( $menu_order, $max + 1 ) );
549
- }
550
 
551
- public function _checklist_args($args) {
552
- $args['checked_ontop'] = false;
553
- return $args;
554
- }
555
 
556
- public function ajax_formfields_reorder() {
557
- $response = new WPBDP_Ajax_Response();
558
 
559
- if ( ! current_user_can( 'administrator' ) )
560
- $response->send_error();
561
 
562
- $order = array_map( 'intval', isset( $_REQUEST['order'] ) ? $_REQUEST['order'] : array() );
563
 
564
- if ( ! $order )
565
- $response->send_error();
566
 
567
- global $wpbdp;
568
 
569
- if ( ! $wpbdp->formfields->set_fields_order( $order ) )
570
- $response->send_error();
571
 
572
- $response->send();
573
- }
574
 
575
- public function ajax_fees_set_order() {
576
- $nonce = isset( $_POST['_wpnonce'] ) ? $_POST['_wpnonce'] : '';
577
- $order = isset( $_POST['fee_order'] ) ? $_POST['fee_order'] : false;
578
 
579
- if ( ! wp_verify_nonce( $nonce, 'change fees order' ) || ! $order )
580
- exit();
581
 
582
- $res = new WPBDP_Ajax_Response();
583
- wpbdp_set_option( 'fee-order', $order );
584
- $res->send();
585
- }
 
 
 
586
 
587
- public function ajax_fees_reorder() {
588
- global $wpdb;
589
 
590
- $response = new WPBDP_Ajax_Response();
 
591
 
592
- if ( ! current_user_can( 'administrator' ) )
593
- $response->send_error();
594
 
595
- $order = array_map( 'intval', isset( $_REQUEST['order'] ) ? $_REQUEST['order'] : array() );
 
596
 
597
- if ( ! $order )
598
- $response->send_error();
599
 
600
- $wpdb->query( "UPDATE {$wpdb->prefix}wpbdp_plans SET weight = 0" );
 
 
 
 
601
 
602
- $weight = count( $order ) - 1;
603
- foreach( $order as $fee_id ) {
604
- $wpdb->update( $wpdb->prefix . 'wpbdp_plans', array( 'weight' => $weight ), array( 'id' => $fee_id ) );
605
- $weight--;
606
  }
607
 
608
- $response->send();
609
- }
 
 
 
 
 
610
 
611
- /*
612
- * AJAX listing actions.
613
- */
614
- function ajax_dismiss_notification() {
615
- $id = isset( $_POST['id'] ) ? $_POST['id'] : '';
616
- $nonce = isset( $_POST['nonce'] ) ? $_POST['nonce'] : '';
617
- $user_id = get_current_user_id();
618
 
619
- $res = new WPBDP_Ajax_Response();
 
 
620
 
621
- if ( ! $id || ! $nonce || ! $user_id || ! wp_verify_nonce( $nonce, 'dismiss notice ' . $id ) ) {
622
- $res->send_error();
623
- }
 
624
 
625
- if ( has_action( 'wpbdp_admin_ajax_dismiss_notification_' . $id ) ) {
626
- do_action( 'wpbdp_admin_ajax_dismiss_notification_' . $id, $user_id );
627
- return;
628
  }
629
 
630
- update_user_meta( $user_id, 'wpbdp_notice_dismissed[' . $id . ']', true );
631
- $res->send();
632
- }
 
 
 
 
633
 
634
- /**
635
- * TODO: Use notice, notice-{type} and is-dismissible CSS classes. Those are
636
- * the current standard
637
- */
638
- function admin_notices() {
639
- if ( ! current_user_can( 'administrator' ) )
640
- return;
641
 
642
- if ( ! isset( $this->displayed_warnings ) )
643
- $this->displayed_warnings = array();
 
 
644
 
645
- $this->check_server_requirements();
646
- $this->check_setup();
647
- $this->check_ajax_compat_mode();
648
- $this->check_deprecation_warnings();
649
 
650
- do_action( 'wpbdp_admin_notices' );
 
651
 
652
- foreach ($this->messages as $msg) {
653
- $msg_sha1 = sha1( is_array( $msg ) ? $msg[0] : $msg );
654
 
655
- if ( in_array( $msg_sha1, $this->displayed_warnings, true ) )
656
- continue;
657
 
658
- $this->displayed_warnings[] = $msg_sha1;
 
 
 
 
 
 
 
 
659
 
660
- if ( is_array( $msg ) ) {
661
- $class = isset( $msg[1] ) ? $msg[1] : 'updated';
662
- $text = isset( $msg[0] ) ? $msg[0] : '';
663
- $extra = isset( $msg[2] ) && is_array( $msg[2] ) ? $msg[2] : array();
664
- } else {
665
- $class = 'updated';
666
- $text = $msg;
667
- $extra = array();
668
- }
669
 
670
- echo '<div class="wpbdp-notice ' . $class . '">';
671
- echo '<p>' . $text . '</p>';
 
 
 
 
672
 
673
- if ( ! empty ( $extra['dismissible-id'] ) ) {
674
- printf( '<button type="button" class="notice-dismiss" data-dismissible-id="%s" data-nonce="%s"><span class="screen-reader-text">%s</span></button>',
675
- $extra['dismissible-id'],
676
- wp_create_nonce( 'dismiss notice ' . $extra['dismissible-id'] ),
677
- _x( 'Dismiss this notice.', 'admin', 'WPBDM' ) );
678
  }
679
 
680
- echo '</div>';
681
  }
682
 
683
- $this->messages = array();
684
- }
685
-
686
- function handle_actions() {
687
- if (!isset($_REQUEST['wpbdmaction']) || !isset($_REQUEST['post']))
688
- return;
689
 
690
- $action = $_REQUEST['wpbdmaction'];
691
- $posts = is_array($_REQUEST['post']) ? $_REQUEST['post'] : array($_REQUEST['post']);
692
 
693
- $listings_api = wpbdp_listings_api();
694
 
695
- if (!current_user_can('administrator'))
696
- exit;
697
 
698
- switch ($action) {
699
- case 'change-to-publish':
700
- case 'change-to-pending':
701
- case 'change-to-draft':
702
- $new_status = str_replace( 'change-to-', '', $action );
703
 
704
- foreach ($posts as $post_id) {
705
- wp_update_post( array( 'ID' => $post_id, 'post_status' => $new_status ) );
706
- }
707
 
708
- $this->messages[] = _nx('The listing has been updated.', 'The listings have been updated.', count($posts), 'admin', 'WPBDM');
709
- break;
710
 
711
- case 'change-to-expired':
712
- foreach ( $posts as $post_id ) {
713
- $listing = wpbdp_get_listing( $post_id );
714
- $listing->update_plan( array( 'expiration_date' => current_time( 'mysql' ) ) );
715
- $listing->set_status( 'expired' );
716
- }
717
 
718
- $this->messages[] = _nx('The listing has been updated.', 'The listings have been updated.', count($posts), 'admin', 'WPBDM');
719
- break;
720
 
721
- case 'change-to-complete':
722
- case 'approve-payments':
723
- foreach ( $posts as $post_id ) {
724
- $pending_payments = WPBDP_Payment::objects()->filter( array( 'listing_id' => $post_id, 'status' => 'pending' ) );
725
 
726
- foreach ( $pending_payments as $p ) {
727
- $p->status = 'completed';
728
- $p->save();
 
729
  }
730
- }
731
 
732
- break;
 
 
 
 
 
 
 
733
 
734
- case 'assignfee':
735
- $listing = WPBDP_Listing::get( $posts[0] );
736
- $fee_id = (int) $_GET['fee_id'];
737
- $listing->set_fee_plan( $fee_id );
738
 
739
- $this->messages[] = _x('The fee was successfully assigned.', 'admin', 'WPBDM');
 
 
 
 
740
 
741
- break;
 
742
 
743
- case 'renewlisting':
744
- foreach ( $posts as $post_id ):
745
- $listing = WPBDP_Listing::get( $post_id );
746
- $listing->renew();
747
- endforeach;
748
 
749
- $this->messages[] = _nx( 'Listing was renewed.', 'Listings were renewed.', count( $posts ), 'admin', 'WPBDM' );
750
- break;
751
 
752
- case 'send-renewal-email':
753
- $listing_id = intval( $_GET['listing_id'] );
754
- $listing = WPBDP_Listing::get( $listing_id );
 
755
 
756
- if ( ! $listing )
757
- break;
758
 
759
- if ( wpbdp()->listing_email_notification->send_notices( 'expiration', '0 days', $listing_id, true ) ) {
760
- $this->messages[] = _x( 'Renewal email sent.', 'admin', 'WPBDM' );
761
  break;
762
- }
763
-
764
- $this->messages[] = array ( _x( 'Could not send renewal email, notice template at listing expiration not found.', 'admin', 'WPBDM' ), 'error' );
765
 
766
- break;
 
767
 
768
- case 'delete-flagging':
769
- WPBDP__Listing_Flagging::remove_flagging( $_GET['listing_id'], $_GET['meta_pos'] );
770
 
771
- $this->messages[] = _nx( 'Listing report deleted.', 'Listing reports deleted.', $_GET['meta_pos'] == 'all' ? 2 : 1, 'admin', 'WPBDM' );
772
- break;
 
773
 
774
- case 'send-access-keys':
775
- $this->send_access_keys( $posts );
776
- break;
 
777
 
778
- default:
779
- do_action( 'wpbdp_admin_directory_handle_action', $action );
780
- break;
781
  }
782
 
783
- $_SERVER['REQUEST_URI'] = remove_query_arg( array('wpbdmaction', 'wpbdmfilter', 'transaction_id', 'category_id', 'fee_id', 'u', 'renewal_id', 'flagging_user' ), $_SERVER['REQUEST_URI'] );
784
- }
785
 
786
- private function send_access_keys( $posts ) {
787
- $listings_by_email_address = array();
788
 
789
- foreach ( $posts as $post_id ) {
790
- $listing = wpbdp_get_listing( $post_id );
 
791
 
792
- if ( ! $listing ) {
793
- continue;
794
- }
795
 
796
- $email_address = wpbusdirman_get_the_business_email( $post_id );
 
 
797
 
798
- if ( ! $email_address ) {
799
- continue;
800
  }
801
 
802
- $listings_by_email_address[ $email_address ][] = $listing;
803
- }
804
 
805
- $sender = $this->get_access_keys_sender();
806
- $message_sent = false;
 
 
 
 
 
807
 
808
- foreach ( $listings_by_email_address as $email_address => $listings ) {
809
- try {
810
- $message_sent = $message_sent || $sender->send_access_keys_for_listings( $listings, $email_address );
811
- } catch ( Exception $e ) {
812
- // pass
 
813
  }
 
 
 
 
 
814
  }
815
 
816
- // TODO: Add more descriptive messages to indicate how many listings were
817
- // processed successfully, how many failed and why.
818
- if ( $message_sent ) {
819
- $this->messages[] = _x( 'Access keys sent.', 'admin', 'WPBDM' );
820
- } else {
821
- $this->messages[] = _x( "The access keys couldn't be sent.", 'admin', 'WPBDM' );
822
  }
823
 
824
- // TODO: Redirect and show messages on page load.
825
- // if ( wp_redirect( remove_query_arg( array( 'action', 'post', 'wpbdmaction' ) ) ) ) {
826
- // exit();
827
- // }
828
- }
 
829
 
830
- public function get_access_keys_sender() {
831
- return new WPBDP__Access_Keys_Sender();
832
- }
833
 
834
- /**
835
- * @deprecated since 5.6.3
836
- * @see WPBDP__Admin__Listing_Owner::_dropdown_users_args
837
- */
838
- public function _dropdown_users_args( $query_args, $r ) {
839
- global $post;
840
 
841
- if ( isset( $r['wpbdp_skip_dropdown_users_args'] ) ) {
842
  return $query_args;
843
  }
844
 
845
- if ( is_admin() && get_post_type( $post ) == WPBDP_POST_TYPE ) {
846
- add_filter( 'wp_dropdown_users', array( $this, '_dropdown_users' ) );
847
- array_push( $this->dropdown_users_args_stack, $r );
848
- }
 
 
849
 
850
- return $query_args;
851
- }
852
 
853
- /**
854
- * @deprecated since 5.6.3
855
- * @see WPBDP__Admin__Listing_Owner::_dropdown_users
856
- */
857
- public function _dropdown_users( $output ) {
858
- global $post;
859
 
860
- remove_filter( 'wp_dropdown_users', array( $this, '_dropdown_users' ) );
861
 
862
- if ( ! $this->dropdown_users_args_stack ) {
863
- return $output;
 
 
 
 
 
 
 
 
 
 
 
864
  }
865
 
866
- $args = array_pop( $this->dropdown_users_args_stack );
 
 
 
 
 
 
867
 
868
- if ( $args['show_option_none'] ) {
869
- $selected = $args['option_none_value'];
870
- } else {
871
- $selected = ! empty( $post->ID ) ? $post->post_author : wp_get_current_user()->ID;
872
  }
873
 
874
- return wp_dropdown_users( array_merge( $args, array(
875
- 'echo' => false,
876
- 'selected' => $selected,
877
- 'include_selected' => true,
878
- 'who' => 'all',
879
- 'wpbdp_skip_dropdown_users_args' => true,
880
- ) ) );
881
- }
882
 
883
- public function add_custom_taxonomy_columns( $cols ) {
884
- $newcols = array_merge( array_slice( $cols, 0, 1 ),
885
- array( 'id' => _x( 'ID', 'admin category id', 'WPBDM' ) ),
886
- array_slice( $cols, 1, -1),
887
- array( 'posts' => _x('Listing Count', 'admin', 'WPBDM') ) );
888
- return $newcols;
889
- }
890
 
891
- public function tag_taxonomy_columns( $cols ) {
892
- $newcols = array_merge( array_slice( $cols, 0, -1 ),
893
- array( 'posts' => _x('Listing Count', 'admin', 'WPBDM') ) );
894
- return $newcols;
895
- }
896
 
897
- public function custom_taxonomy_columns( $value, $column_name, $id ) {
898
- if ( $column_name == 'id' )
899
- return $id;
900
 
901
- return $value;
902
- }
903
 
904
- /* Uninstall. */
905
- public function uninstall_plugin() {
906
- global $wpdb;
907
 
908
- $nonce = isset( $_POST['_wpnonce'] ) ? trim( $_POST['_wpnonce'] ) : '';
 
909
 
910
- if ( $nonce && wp_verify_nonce( $nonce, 'uninstall bd' ) ) {
911
- $installer = new WPBDP_Installer( 0 );
 
 
 
912
 
913
- // Delete listings.
914
- $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE post_type = %s", WPBDP_POST_TYPE ) );
 
 
915
 
916
- foreach ( $post_ids as $post_id )
917
- wp_delete_post( $post_id, true );
 
918
 
919
- // Drop tables.
920
- $tables = array_keys( $installer->get_database_schema() );
921
- foreach ( $tables as &$table ) {
922
- $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}wpbdp_{$table}" );
923
- }
924
 
925
- // Delete options.
926
- delete_option( 'wpbdp-db-version' );
927
- delete_option( 'wpbusdirman_db_version' );
928
- $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s", 'wpbdp%' ) );
929
-
930
- // Clear scheduled hooks.
931
- wp_clear_scheduled_hook('wpbdp_hourly_events');
932
- wp_clear_scheduled_hook('wpbdp_daily_events');
933
-
934
- $tracking = new WPBDP_SiteTracking();
935
- $tracking->track_uninstall( isset( $_POST['uninstall'] ) ? $_POST['uninstall'] : null );
936
-
937
- // Deactivate plugin.
938
- $real_path = WPBDP_PATH . 'business-directory-plugin.php';
939
- // if the plugin directory is a symlink, plugin_basename will return
940
- // the real path, which may not be the same path WP associated to
941
- // the plugin. Plugin paths must be of the form:
942
- // wp-content/plugins/plugin-directory/plugin-file.php
943
- $fixed_path = WP_CONTENT_DIR . '/plugins/' . basename(dirname($real_path)) . '/' . basename($real_path);
944
- deactivate_plugins($fixed_path, true);
945
-
946
- echo wpbdp_render_page(WPBDP_PATH . 'templates/admin/uninstall-complete.tpl.php');
947
- } else {
948
- echo wpbdp_render_page(WPBDP_PATH . 'templates/admin/uninstall-confirm.tpl.php');
949
- }
950
- }
951
 
952
- /* Required pages check. */
953
- public function check_for_required_pages() {
954
- if ( ! wpbdp_get_page_id( 'main' ) && current_user_can( 'administrator' ) ) {
955
- $message = _x('<b>Business Directory Plugin</b> requires a page with the <tt>[businessdirectory]</tt> shortcode to function properly.', 'admin', 'WPBDM');
956
- $message .= '<br />';
957
- $message .= _x('You can create this page by yourself or let Business Directory do this for you automatically.', 'admin', 'WPBDM');
958
- $message .= '<p>';
959
- $message .= sprintf( '<a href="#" class="button wpbdp-create-main-page-button" data-nonce="%s">%s</a>',
960
- wp_create_nonce( 'create main page' ),
961
- _x( 'Create required pages for me', 'admin', 'WPBDM' ) );
962
- $message .= '</p>';
963
-
964
- $this->messages[] = array($message, 'error');
965
  }
966
- }
967
 
968
- /**
969
- * @since 3.6.10
970
- */
971
- function process_admin_action() {
972
- if ( isset( $_REQUEST['wpbdp-action'] ) ) {
973
- do_action( 'wpbdp_action_' . $_REQUEST['wpbdp-action'] );
974
- // do_action( 'wpbdp_dispatch_' . $_REQUEST['wpbdp-action'] );
 
 
 
 
 
 
 
975
  }
976
- }
977
 
978
- private function check_server_requirements() {
979
- $php_version = explode( '.', phpversion() );
980
- $installed_version = $php_version[0] . '.' . $php_version[1];
981
-
982
- // PHP 5.6 is required.
983
- if ( version_compare( $installed_version, '5.6', '>=' ) ) {
984
- return;
 
985
  }
986
 
987
- $dismissed = get_transient( 'wpbdp_server_requirements_warning_dismissed' );
988
- if ( $dismissed ) {
989
- return;
990
- }
991
 
992
- $this->messages[] = array(
993
- sprintf(
994
- _x( '<strong>Business Directory Plugin</strong> requires <strong>PHP 5.6</strong> or later, but your server is running version <strong>%s</strong>. Please ask your provider to upgrade in order to prevent any issues with the plugin.', 'admin', 'WPBDM' ),
995
- $installed_version
996
- ),
997
- 'error dismissible',
998
- array( 'dismissible-id' => 'server_requirements' )
999
- );
1000
- }
1001
 
1002
- public function ajax_dismiss_notification_server_requirements() {
1003
- set_transient( 'wpbdp_server_requirements_warning_dismissed', true, WEEK_IN_SECONDS );
1004
- }
 
1005
 
1006
- public function check_setup() {
1007
- global $pagenow;
 
 
 
 
 
 
 
1008
 
1009
- if ( 'admin.php' != $pagenow || ! isset( $_GET['page'] ) || 'wpbdp_settings' != $_GET['page'] )
1010
- return;
 
1011
 
1012
- // Registration disabled message.
1013
- if ( wpbdp_get_option( 'require-login')
1014
- && ! get_option( 'users_can_register')
1015
- && ! get_user_meta( get_current_user_id(), 'wpbdp_notice_dismissed[registration_disabled]', true ) ) {
1016
- $this->messages[] = array(
1017
- str_replace( array( '[', ']' ), array( '<a href="' . admin_url( 'options-general.php' ) . '">', '</a>' ), _x( 'We noticed you want your Business Directory users to register before posting listings, but Registration for your site is currently disabled. Go [here] and check "Anyone can register" to make sure BD works properly.', 'admin', 'WPBDM' ) ),
1018
- 'error dismissible',
1019
- array( 'dismissible-id' => 'registration_disabled' )
1020
- );
 
 
 
 
 
 
 
1021
  }
1022
- }
1023
 
1024
- public function check_ajax_compat_mode() {
1025
- global $pagenow;
1026
 
1027
- if ( 'admin.php' != $pagenow || ! isset( $_GET['page'] ) || 'wpbdp_settings' != $_GET['page'] )
1028
- return;
1029
 
1030
- $notice = get_option( 'wpbdp-ajax-compat-mode-notice' );
1031
 
1032
- if ( ! $notice )
1033
- return;
1034
 
1035
- $this->messages[] = $notice;
1036
- delete_option( 'wpbdp-ajax-compat-mode-notice' );
1037
- }
1038
 
1039
- private function check_deprecation_warnings() {
1040
- global $wpbdp_deprecation_warnings;
1041
 
1042
- if ( ! empty( $wpbdp_deprecation_warnings ) ) {
1043
- foreach ( $wpbdp_deprecation_warnings as $warning ) {
1044
- $this->messages[] = $warning;
 
1045
  }
1046
  }
1047
- }
1048
 
1049
- public function main_menu() {
1050
- echo wpbdp_render_page( WPBDP_PATH . 'templates/admin/home.tpl.php' );
1051
- }
1052
 
1053
- public function register_listings_views() {
1054
- $view = new WPBDP__ListingsWithNoFeePlanView();
1055
 
1056
- add_filter( 'wpbdp_admin_directory_views', array( $view, 'filter_views' ), 10, 2 );
1057
- add_filter( 'wpbdp_admin_directory_filter', array( $view, 'filter_query_pieces' ), 10, 2 );
1058
- }
1059
- }
1060
 
1061
- function wpbdp_admin_message( $msg, $kind = '', $extra = array() ) {
1062
- global $wpbdp;
1063
- $wpbdp->admin->messages[] = ( $kind || $extra ) ? array( $msg, $kind, $extra ) : $msg;
1064
- }
1065
 
 
 
 
 
1066
  }
20
 
21
  if ( ! class_exists( 'WPBDP_Admin' ) ) {
22
 
23
+ /**
24
+ * Class WPBDP_Admin
25
+ */
26
+ class WPBDP_Admin {
27
 
28
+ private $menu = array();
29
+ private $current_controller = null;
30
+ private $current_controller_output = '';
31
 
32
+ private $dropdown_users_args_stack = array();
33
 
34
+ public $messages = array();
35
 
36
 
37
+ public function __construct() {
38
+ add_action('admin_init', array($this, 'handle_actions'));
39
 
40
+ add_action('admin_init', array($this, 'check_for_required_pages'));
41
 
42
+ add_action( 'admin_init', array( &$this, 'process_admin_action' ), 999 );
43
+ add_action( 'admin_init', array( $this, 'register_listings_views' ) );
44
 
45
+ add_action('admin_notices', array($this, 'admin_notices'));
46
+ add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
47
 
48
+ // Adds admin menus.
49
+ add_action( 'admin_menu', array( &$this, 'admin_menu' ) );
50
 
51
+ // Enables reordering of admin menus.
52
+ add_filter( 'custom_menu_order', '__return_true' );
53
 
54
+ // Puts the "Directory" and "Directory Admin" next to each other.
55
+ add_filter( 'menu_order', array( &$this, 'admin_menu_reorder' ) );
56
 
57
+ add_filter( 'manage_edit-' . WPBDP_CATEGORY_TAX . '_columns', array( &$this, 'add_custom_taxonomy_columns' ) );
58
+ add_filter( 'manage_edit-' . WPBDP_TAGS_TAX . '_columns', array( &$this, 'tag_taxonomy_columns' ) );
59
+ add_action( 'manage_' . WPBDP_CATEGORY_TAX . '_custom_column', array( &$this, 'custom_taxonomy_columns' ), 10, 3 );
60
 
61
+ add_filter('wp_terms_checklist_args', array($this, '_checklist_args')); // fix issue #152
62
 
63
+ add_action( 'wp_ajax_wpbdp-formfields-reorder', array( &$this, 'ajax_formfields_reorder' ) );
64
 
65
+ add_action( 'wp_ajax_wpbdp-admin-fees-set-order', array( &$this, 'ajax_fees_set_order' ) );
66
+ add_action( 'wp_ajax_wpbdp-admin-fees-reorder', array( &$this, 'ajax_fees_reorder' ) );
67
 
68
+ add_action( 'wp_ajax_wpbdp-renderfieldsettings', array( 'WPBDP_FormFieldsAdmin', '_render_field_settings' ) );
69
 
70
+ add_action( 'wp_ajax_wpbdp-create-main-page', array( &$this, 'ajax_create_main_page' ) );
71
+ add_action( 'wp_ajax_wpbdp-drip_subscribe', array( &$this, 'ajax_drip_subscribe' ) );
72
+ add_action( 'wp_ajax_wpbdp-set_site_tracking', 'WPBDP_SiteTracking::handle_ajax_response' );
73
+ add_action( 'wp_ajax_wpbdp_dismiss_notification', array( &$this, 'ajax_dismiss_notification' ) );
74
 
75
+ add_action( 'wpbdp_admin_ajax_dismiss_notification_server_requirements', array( $this, 'ajax_dismiss_notification_server_requirements' ) );
76
 
77
+ add_action( 'current_screen', array( $this, 'admin_view_dispatch' ), 9999 );
78
+ add_action( 'wp_ajax_wpbdp_admin_ajax', array( $this, 'admin_ajax_dispatch' ), 9999 );
79
 
80
+ $this->listings = new WPBDP_Admin_Listings();
81
+ $this->csv_import = new WPBDP_CSVImportAdmin();
82
+ $this->csv_export = new WPBDP_Admin_CSVExport();
83
+ $this->debug_page = new WPBDP_Admin_Debug_Page();
84
 
85
+ // Post-install migrations.
86
+ if ( get_option( 'wpbdp-migrate-18_0-featured-pending', false ) ) {
87
+ require_once( WPBDP_PATH . 'includes/admin/upgrades/migrations/manual-upgrade-18_0-featured-levels.php' );
88
+ $this->post_install_migration = new WPBDP__Manual_Upgrade__18_0__Featured_Levels();
89
+ }
90
 
91
+ require_once( WPBDP_INC . 'admin/settings/class-settings-admin.php' );
92
+ $this->settings_admin = new WPBDP__Settings_Admin();
93
 
94
+ if ( wpbdp_get_option( 'tracking-on' ) ) {
95
+ $this->site_tracking = new WPBDP_SiteTracking();
96
+ }
97
  }
 
98
 
99
+ function enqueue_scripts() {
100
+ global $wpbdp;
101
+ global $pagenow;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
  wp_enqueue_style(
104
+ 'wpbdp-admin',
105
+ WPBDP_URL . 'assets/css/admin.min.css',
106
  array(),
107
  WPBDP_VERSION
108
  );
109
 
110
+ wp_enqueue_style( 'thickbox' );
111
+
112
  wp_enqueue_style(
113
+ 'wpbdp-frontend-css',
114
+ WPBDP_URL . 'assets/css/wpbdp.min.css',
115
  array(),
116
  WPBDP_VERSION
117
  );
118
 
119
+ wp_enqueue_script(
120
+ 'wpbdp-frontend-js',
121
+ WPBDP_URL . 'assets/js/wpbdp.min.js',
122
+ array( 'jquery' ),
123
+ WPBDP_VERSION
124
+ );
125
 
126
  wp_enqueue_script(
127
+ 'wpbdp-admin-js',
128
+ WPBDP_URL . 'assets/js/admin.min.js',
129
+ array( 'jquery', 'thickbox', 'jquery-ui-sortable' ),
130
  WPBDP_VERSION
131
  );
132
 
133
  wp_enqueue_script(
134
+ 'wpbdp-user-selector-js',
135
+ WPBDP_URL . 'assets/js/user-selector.min.js',
136
+ array( 'jquery', 'wpbdp-js-select2' ),
137
  WPBDP_VERSION
138
  );
139
 
140
+ wp_enqueue_style( 'wpbdp-js-select2-css' );
141
+
142
+ if ( 'post-new.php' == $pagenow || 'post.php' == $pagenow ) {
143
+ wpbdp_enqueue_jquery_ui_style();
144
+
145
+ wp_enqueue_style(
146
+ 'wpbdp-listing-admin-metabox',
147
+ WPBDP_URL . 'assets/css/admin-listing-metabox.min.css',
148
+ array(),
149
+ WPBDP_VERSION
150
+ );
151
+
152
+ wp_enqueue_style(
153
+ 'wpbdp-listing-admin-timeline',
154
+ WPBDP_URL . 'assets/css/admin-listing-timeline.min.css',
155
+ array(),
156
+ WPBDP_VERSION
157
+ );
158
+
159
+ wp_enqueue_style( 'wpbdp-dnd-upload' );
160
+
161
+ wp_enqueue_script(
162
+ 'wpbdp-admin-listing',
163
+ WPBDP_URL . 'assets/js/admin-listing.min.js',
164
+ array( 'wpbdp-admin-js', 'wpbdp-dnd-upload', 'jquery-ui-tooltip' ),
165
+ WPBDP_VERSION
166
+ );
167
+
168
+ wp_enqueue_script(
169
+ 'wpbdp-admin-listing-metabox',
170
+ WPBDP_URL . 'assets/js/admin-listing-metabox.min.js',
171
+ array( 'wpbdp-admin-js', 'jquery-ui-datepicker' ),
172
+ WPBDP_VERSION
173
+ );
174
+
175
+ wp_localize_script( 'wpbdp-admin-listing-metabox', 'wpbdpListingMetaboxL10n', array(
176
+ 'planDisplayFormat' => sprintf( '<a href="%s">%s</a>', admin_url( 'admin.php?page=wpbdp-admin-fees&wpbdp_view=edit-fee&id={{plan_id}}' ), '{{plan_label}}' ),
177
+ 'noExpiration' => _x( 'Never', 'listing metabox', 'business-directory-plugin' ),
178
+ 'yes' => _x( 'Yes', 'listing metabox', 'business-directory-plugin' ),
179
+ 'no' => _x( 'No', 'listing metabox', 'business-directory-plugin' )
180
+ ) );
181
+
182
+ wp_localize_script( 'wpbdp-admin-listing', 'WPBDP_admin_listings_config', array(
183
+ 'messages' => array(
184
+ 'preview_button_tooltip' => __( "Preview is only available after you've saved the first draft. This is due
185
+ to how WordPress stores the data.", 'business-directory-plugin' )
186
+ )
187
+ ) );
188
+ }
189
 
190
+ // Ask for site tracking if needed.
191
+ if ( ! wpbdp_get_option( 'tracking-on', false ) && get_option( 'wpbdp-show-tracking-pointer', 0 ) && current_user_can( 'administrator' ) ) {
192
+ wp_enqueue_style( 'wp-pointer' );
193
+ wp_enqueue_script( 'wp-pointer' );
194
+ add_action( 'admin_print_footer_scripts', 'WPBDP_SiteTracking::request_js' );
195
+ }
196
+
197
+ if ( current_user_can( 'administrator' ) && get_option( 'wpbdp-show-drip-pointer', 0 ) ) {
198
+ wp_enqueue_style( 'wp-pointer' );
199
+ wp_enqueue_script( 'wp-pointer' );
200
+ add_action( 'admin_print_footer_scripts', array( $this, 'drip_pointer' ) );
201
+ }
202
  }
203
 
204
+ /**
205
+ * @since 3.4.1
206
+ */
207
+ public function drip_pointer() {
208
+ $current_user = wp_get_current_user();
209
+
210
+ $js = '$.post( ajaxurl, { action: "wpbdp-drip_subscribe",
211
+ email: $( "#wpbdp-drip-pointer-email" ).val(),
212
+ nonce: "'. wp_create_nonce( 'drip pointer subscribe') .'",
213
+ subscribe: "%d" } );';
214
+
215
+ $content = '';
216
+ $content .= _x( 'Find out how to create a compelling, thriving business directory from scratch in this ridiculously actionable (and FREE) 5-part email course. Get a FREE premium module just for signing up.', 'drip pointer', 'business-directory-plugin' ) . '<br /><br />';
217
+ $content .= '<label>';
218
+ $content .= '<b>' . _x( 'Email Address:', 'drip pointer', 'business-directory-plugin' ) . '</b>';
219
+ $content .= '<br />';
220
+ $content .= '<input type="text" id="wpbdp-drip-pointer-email" value="' . esc_attr( $current_user->user_email ) . '" />';
221
+ $content .= '</label>';
222
+
223
+ wpbdp_admin_pointer( '#wpadminbar',
224
+ _x( 'Want to know the Secrets of Building an Awesome Business Directory?', 'drip pointer', 'business-directory-plugin' ),
225
+ $content,
226
+ _x( 'Yes, please!', 'drip pointer', 'business-directory-plugin' ),
227
+ sprintf( $js, 1 ),
228
+ _x( 'No, thanks', 'drip pointer', 'business-directory-plugin' ),
229
+ sprintf( $js, 0 ) );
230
  }
 
231
 
232
+ /**
233
+ * @since 3.5.3
234
+ */
235
+ public function ajax_create_main_page() {
236
+ $nonce = isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
 
238
+ if ( ! current_user_can( 'administrator' ) || ! $nonce || ! wp_verify_nonce( $nonce, 'create main page' ) )
239
+ exit();
 
 
 
240
 
241
+ if ( wpbdp_get_page_id( 'main' ) )
242
+ exit();
243
 
244
+ $page = array( 'post_status' => 'publish',
245
+ 'post_title' => _x( 'Business Directory', 'admin', 'business-directory-plugin' ),
246
+ 'post_type' => 'page',
247
+ 'post_content' => '[businessdirectory]' );
248
+ $page_id = wp_insert_post( $page );
249
 
250
+ if ( ! $page_id )
251
+ exit();
 
 
 
252
 
253
+ $res = new WPBDP_Ajax_Response();
254
+ $res->set_message( str_replace( '<a>',
255
+ '<a href="' . get_permalink( $page_id ) . '" target="_blank" rel="noopener">',
256
+ _x( 'You\'re all set. Visit your new <a>Business Directory</a> page.', 'admin', 'business-directory-plugin' ) ) );
257
+ $res->send();
258
+ }
259
 
260
+ /**
261
+ * @since 3.4.1
262
+ */
263
+ public function ajax_drip_subscribe() {
264
+ $current_user = wp_get_current_user();
 
265
 
266
+ $res = new WPBDP_Ajax_Response();
267
+ $subscribe = ( '1' == $_POST['subscribe'] ) ? true : false;
 
 
 
268
 
269
+ if ( ! get_option( 'wpbdp-show-drip-pointer', 0 ) || ! wp_verify_nonce( $_POST['nonce'], 'drip pointer subscribe' ) )
270
+ $res->send_error();
271
 
272
+ delete_option( 'wpbdp-show-drip-pointer' );
 
273
 
274
+ if ( $subscribe ) {
275
+ if ( ! filter_var( $_POST['email'], FILTER_VALIDATE_EMAIL ) )
276
+ return $res->send_error( _x( 'Invalid e-mail address.', 'drip pointer', 'business-directory-plugin' ) );
277
 
278
+ // Build fields for POSTing to Drip.
279
+ $data = array();
280
+ $data['name'] = '';
281
 
282
+ foreach ( array( 'first_name', 'display_name', 'user_login', 'username' ) as $k ) {
283
+ if ( empty ( $current_user->{$k} ) )
284
+ continue;
285
 
286
+ $data['name'] = $current_user->{$k};
287
+ break;
288
+ }
289
 
290
+ $data['email'] = $_POST['email'];
291
+ $data['website'] = get_bloginfo( 'url' );
292
+ $data['gmt_offset'] = get_option( 'gmt_offset' );
293
+
294
+ $response = wp_remote_post( 'https://www.getdrip.com/forms/6877690/submissions', array(
295
+ 'body' => array(
296
+ 'fields[name]' => $data['name'],
297
+ 'fields[email]' => $data['email'],
298
+ 'fields[website]' => $data['website'],
299
+ 'fields[gmt_offset]' => $data['gmt_offset'] )
300
+ ) );
301
  }
302
 
303
+ $res->send();
 
 
 
 
 
 
 
 
 
 
304
  }
305
 
306
+ function admin_menu() {
307
+ if ( ! current_user_can( 'manage_categories' ) ) {
308
+ return;
309
+ }
310
 
311
+ $count_html = '';
312
+ if ( current_user_can( 'administrator' ) ) {
313
+ $badge_number = absint( apply_filters( 'wpbdp_admin_menu_badge_number', 0 ) );
314
+ $count_html = $badge_number ? '<span class="update-plugins"><span class="plugin-count">' . $badge_number . '</span></span>' : '';
315
+ }
316
+ $menu['wpbdp-admin-fees'] = array(
317
+ 'title' => _x( 'Manage Fees', 'admin menu', 'business-directory-plugin' )
318
+ );
319
+ $menu['wpbdp_admin_formfields'] = array(
320
+ 'title' => _x('Manage Form Fields', 'admin menu', 'business-directory-plugin'),
321
+ 'callback' => array('WPBDP_FormFieldsAdmin', 'admin_menu_cb')
322
+ );
323
+ $menu['wpbdp_admin_payments'] = array(
324
+ 'title' => _x( 'Payment History', 'admin menu', 'business-directory-plugin' )
325
+ );
326
+ $menu['wpbdp_admin_csv'] = array(
327
+ 'title' => _x( 'Import & Export', 'admin menu', 'business-directory-plugin' )
328
+ );
329
+ $menu['wpbdp-debug-info'] = array(
330
+ 'title' => _x( 'Debug', 'admin menu', 'business-directory-plugin' ),
331
+ 'callback' => array( &$this->debug_page, 'dispatch' )
332
+ );
333
+
334
+ $this->menu = apply_filters( 'wpbdp_admin_menu_items', $menu );
335
+ $this->prepare_menu( $this->menu );
336
+
337
+ // Register menu items.
338
+ foreach ( $this->menu as $item_slug => &$item_data ) {
339
+ $item_data['hook'] = add_submenu_page( 'edit.php?post_type=wpbdp_listing',
340
+ $item_data['title'],
341
+ $item_data['label'],
342
+ ( empty( $item_data['capability'] ) ? 'administrator' : $item_data['capability'] ),
343
+ $item_slug,
344
+ array( $this, 'menu_dispatch' ) );
345
+ }
346
+
347
+ do_action('wpbdp_admin_menu', 'edit.php?post_type=wpbdp_listing');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
348
 
349
+ add_submenu_page( 'edit.php?post_type=wpbdp_listing',
350
+ __( 'Uninstall Business Directory Plugin', 'business-directory-plugin' ),
351
+ __( 'Uninstall', 'business-directory-plugin' ),
352
+ 'administrator',
353
+ 'wpbdp_uninstall',
354
+ array( $this, 'uninstall_plugin' ) );
355
 
356
+ // Handle some special menu items.
357
+ foreach ( $GLOBALS['submenu']['edit.php?post_type=wpbdp_listing'] as &$menu_item ) {
358
+ if ( ! isset( $this->menu[ $menu_item[2] ] ) )
359
+ continue;
 
 
360
 
361
+ $menu_item_data = $this->menu[ $menu_item[2] ];
 
 
 
362
 
363
+ if ( ! empty( $menu_item_data['url'] ) )
364
+ $menu_item[2] = $menu_item_data['url'];
365
+ }
366
 
 
 
367
  }
368
 
369
+ /**
370
+ * @since 5.0
371
+ */
372
+ private function prepare_menu( &$menu ) {
373
+ $n = 1;
374
 
375
+ foreach ( $menu as &$item ) {
376
+ if ( ! isset( $item['priority'] ) )
377
+ $item['priority'] = $n++;
 
 
378
 
379
+ if ( ! isset( $item['title'] ) )
380
+ $item['title'] = _x( 'Untitled Menu', 'admin', 'business-directory-plugin' );
 
381
 
382
+ if ( ! isset( $item['label'] ) )
383
+ $item['label'] = $item['title'];
384
 
385
+ if ( ! isset( $item['file'] ) )
386
+ $item['file'] = '';
387
 
388
+ if ( ! isset( $item['callback'] ) )
389
+ $item['callback'] = '';
390
 
391
+ if ( ! isset( $item['url'] ) )
392
+ $item['url'] = '';
393
+ }
394
 
395
+ WPBDP_Utils::sort_by_property( $menu, 'priority' );
 
396
  }
397
 
398
+ /**
399
+ * @since 5.0
400
+ */
401
+ function admin_view_dispatch() {
402
+ global $plugin_page;
403
 
404
+ if ( ! isset( $plugin_page ) || ! isset( $this->menu[ $plugin_page ] ) )
405
+ return;
 
 
 
406
 
407
+ $item = $this->menu[ $plugin_page ];
408
+ $slug = $plugin_page;
409
+ $callback = $item['callback'];
410
 
 
 
 
411
 
412
+ // Simple callback view are not processed here.
413
+ if ( $callback && is_callable( $callback ) )
414
+ return;
415
 
416
+ $id = str_replace( array( 'wpbdp-admin-', 'wpbdp_admin_' ), '', $slug );
 
 
417
 
418
+ $candidates = array( $item['file'],
419
+ WPBDP_INC . 'admin/class-admin-' . $id . '.php',
420
+ WPBDP_INC . 'admin/' . $id . '.php' );
421
+ foreach ( $candidates as $c ) {
422
+ if ( $c && file_exists( $c ) )
423
+ require_once( $c );
424
+ }
425
 
426
+ // Maybe loading one of the candidate files made the callback available.
427
+ if ( $callback && is_callable( $callback ) ) {
428
+ ob_start();
429
+ call_user_func( $callback );
430
+ $this->current_controller_output = ob_get_contents();
431
+ ob_end_clean();
432
+ return;
433
+ }
434
 
435
+ $classname = 'WPBDP__Admin__' . ucfirst( $id );
 
 
 
 
 
 
 
436
 
437
+ if ( ! class_exists( $classname ) )
438
+ return;
439
 
440
+ $this->current_controller = new $classname;
 
441
 
442
+ ob_start();
443
+ $this->current_controller->_dispatch();
444
+ $this->current_controller_output = ob_get_contents();
445
+ ob_end_clean();
446
 
447
+ add_action( 'admin_enqueue_scripts', array( $this->current_controller, '_enqueue_scripts' ) );
448
+ }
 
 
449
 
450
+ /**
451
+ * @since 5.0
452
+ */
453
+ function admin_ajax_dispatch() {
454
+ if ( empty( $_REQUEST['handler'] ) )
455
+ return;
456
 
457
+ $handler = trim( $_REQUEST['handler'] );
458
+ $handler = WPBDP__Utils::normalize( $handler );
 
 
 
 
459
 
460
+ $parts = explode( '__', $handler );
461
+ $controller_id = $parts[0];
462
+ $function = isset( $parts[1] ) ? $parts[1] : '';
463
 
464
+ $candidates = array( WPBDP_INC . 'admin/class-admin-' . $controller_id . '.php',
465
+ WPBDP_INC . 'admin/' . $controller_id . '.php' );
466
+ foreach ( $candidates as $c ) {
467
+ if ( ! file_exists( $c ) )
468
+ continue;
469
 
470
+ require_once( $c );
471
+ $classname = 'WPBDP__Admin__' . ucfirst( $controller_id );
 
 
 
472
 
473
+ if ( ! class_exists( $classname ) )
474
+ continue;
475
 
476
+ $controller = new $classname;
477
+ return $controller->_ajax_dispatch();
478
+ }
479
 
480
+ exit;
 
481
  }
482
 
483
+ /**
484
+ * @since 5.0
485
+ */
486
+ function menu_dispatch() {
487
+ $output = $this->current_controller_output;
 
 
 
488
 
489
+ if ( $output )
490
+ return print( $output );
491
 
492
+ global $plugin_page;
493
+ if ( ! isset( $plugin_page ) || ! isset( $this->menu[ $plugin_page ] ) )
494
+ return;
495
 
496
+ $item = $this->menu[ $plugin_page ];
497
+ $slug = $plugin_page;
498
+ $callback = $item['callback'];
499
 
500
+ if ( $callback ) {
501
+ call_user_func( $callback );
502
+ }
503
  }
 
504
 
505
+ /**
506
+ * Makes sure that both the "Directory" and "Directory Admin" menus are next to each other.
507
+ */
508
+ function admin_menu_reorder( $menu_order ) {
509
+ $index1 = array_search( 'wpbdp_admin', $menu_order, true );
510
+ $index2 = array_search( 'edit.php?post_type=' . WPBDP_POST_TYPE, $menu_order, true );
511
 
512
+ if ( false === $index1 || false === $index2 )
513
+ return $menu_order;
514
 
515
+ $min = min( $index1, $index2 );
516
+ $max = max( $index1, $index2 );
517
 
518
+ return array_merge( array_slice( $menu_order, 0, $min ),
519
+ array( $menu_order[ $min ], $menu_order[ $max ] ),
520
+ array_slice( $menu_order, $min + 1, $max - $min - 1 ),
521
+ array_slice( $menu_order, $max + 1 ) );
522
+ }
523
 
524
+ public function _checklist_args($args) {
525
+ $args['checked_ontop'] = false;
526
+ return $args;
527
+ }
528
 
529
+ public function ajax_formfields_reorder() {
530
+ $response = new WPBDP_Ajax_Response();
531
 
532
+ if ( ! current_user_can( 'administrator' ) )
533
+ $response->send_error();
534
 
535
+ $order = array_map( 'intval', isset( $_REQUEST['order'] ) ? $_REQUEST['order'] : array() );
536
 
537
+ if ( ! $order )
538
+ $response->send_error();
539
 
540
+ global $wpbdp;
541
 
542
+ if ( ! $wpbdp->formfields->set_fields_order( $order ) )
543
+ $response->send_error();
544
 
545
+ $response->send();
546
+ }
547
 
548
+ public function ajax_fees_set_order() {
549
+ $nonce = isset( $_POST['_wpnonce'] ) ? $_POST['_wpnonce'] : '';
550
+ $order = isset( $_POST['fee_order'] ) ? $_POST['fee_order'] : false;
551
 
552
+ if ( ! wp_verify_nonce( $nonce, 'change fees order' ) || ! $order )
553
+ exit();
554
 
555
+ $res = new WPBDP_Ajax_Response();
556
+ wpbdp_set_option( 'fee-order', $order );
557
+ $res->send();
558
+ }
559
+
560
+ public function ajax_fees_reorder() {
561
+ global $wpdb;
562
 
563
+ $response = new WPBDP_Ajax_Response();
 
564
 
565
+ if ( ! current_user_can( 'administrator' ) )
566
+ $response->send_error();
567
 
568
+ $order = array_map( 'intval', isset( $_REQUEST['order'] ) ? $_REQUEST['order'] : array() );
 
569
 
570
+ if ( ! $order )
571
+ $response->send_error();
572
 
573
+ $wpdb->query( "UPDATE {$wpdb->prefix}wpbdp_plans SET weight = 0" );
 
574
 
575
+ $weight = count( $order ) - 1;
576
+ foreach( $order as $fee_id ) {
577
+ $wpdb->update( $wpdb->prefix . 'wpbdp_plans', array( 'weight' => $weight ), array( 'id' => $fee_id ) );
578
+ $weight--;
579
+ }
580
 
581
+ $response->send();
 
 
 
582
  }
583
 
584
+ /*
585
+ * AJAX listing actions.
586
+ */
587
+ function ajax_dismiss_notification() {
588
+ $id = isset( $_POST['id'] ) ? $_POST['id'] : '';
589
+ $nonce = isset( $_POST['nonce'] ) ? $_POST['nonce'] : '';
590
+ $user_id = get_current_user_id();
591
 
592
+ $res = new WPBDP_Ajax_Response();
 
 
 
 
 
 
593
 
594
+ if ( ! $id || ! $nonce || ! $user_id || ! wp_verify_nonce( $nonce, 'dismiss notice ' . $id ) ) {
595
+ $res->send_error();
596
+ }
597
 
598
+ if ( has_action( 'wpbdp_admin_ajax_dismiss_notification_' . $id ) ) {
599
+ do_action( 'wpbdp_admin_ajax_dismiss_notification_' . $id, $user_id );
600
+ return;
601
+ }
602
 
603
+ update_user_meta( $user_id, 'wpbdp_notice_dismissed[' . $id . ']', true );
604
+ $res->send();
 
605
  }
606
 
607
+ /**
608
+ * TODO: Use notice, notice-{type} and is-dismissible CSS classes. Those are
609
+ * the current standard
610
+ */
611
+ function admin_notices() {
612
+ if ( ! current_user_can( 'administrator' ) )
613
+ return;
614
 
615
+ if ( ! isset( $this->displayed_warnings ) )
616
+ $this->displayed_warnings = array();
 
 
 
 
 
617
 
618
+ $this->check_server_requirements();
619
+ $this->check_setup();
620
+ $this->check_ajax_compat_mode();
621
+ $this->check_deprecation_warnings();
622
 
623
+ do_action( 'wpbdp_admin_notices' );
 
 
 
624
 
625
+ foreach ($this->messages as $msg) {
626
+ $msg_sha1 = sha1( is_array( $msg ) ? $msg[0] : $msg );
627
 
628
+ if ( in_array( $msg_sha1, $this->displayed_warnings, true ) )
629
+ continue;
630
 
631
+ $this->displayed_warnings[] = $msg_sha1;
 
632
 
633
+ if ( is_array( $msg ) ) {
634
+ $class = isset( $msg[1] ) ? $msg[1] : 'updated';
635
+ $text = isset( $msg[0] ) ? $msg[0] : '';
636
+ $extra = isset( $msg[2] ) && is_array( $msg[2] ) ? $msg[2] : array();
637
+ } else {
638
+ $class = 'updated';
639
+ $text = $msg;
640
+ $extra = array();
641
+ }
642
 
643
+ echo '<div class="wpbdp-notice ' . $class . '">';
644
+ echo '<p>' . $text . '</p>';
 
 
 
 
 
 
 
645
 
646
+ if ( ! empty ( $extra['dismissible-id'] ) ) {
647
+ printf( '<button type="button" class="notice-dismiss" data-dismissible-id="%s" data-nonce="%s"><span class="screen-reader-text">%s</span></button>',
648
+ $extra['dismissible-id'],
649
+ wp_create_nonce( 'dismiss notice ' . $extra['dismissible-id'] ),
650
+ _x( 'Dismiss this notice.', 'admin', 'business-directory-plugin' ) );
651
+ }
652
 
653
+ echo '</div>';
 
 
 
 
654
  }
655
 
656
+ $this->messages = array();
657
  }
658
 
659
+ function handle_actions() {
660
+ if (!isset($_REQUEST['wpbdmaction']) || !isset($_REQUEST['post']))
661
+ return;
 
 
 
662
 
663
+ $action = $_REQUEST['wpbdmaction'];
664
+ $posts = is_array($_REQUEST['post']) ? $_REQUEST['post'] : array($_REQUEST['post']);
665
 
666
+ $listings_api = wpbdp_listings_api();
667
 
668
+ if (!current_user_can('administrator'))
669
+ exit;
670
 
671
+ switch ($action) {
672
+ case 'change-to-publish':
673
+ case 'change-to-pending':
674
+ case 'change-to-draft':
675
+ $new_status = str_replace( 'change-to-', '', $action );
676
 
677
+ foreach ($posts as $post_id) {
678
+ wp_update_post( array( 'ID' => $post_id, 'post_status' => $new_status ) );
679
+ }
680
 
681
+ $this->messages[] = _nx('The listing has been updated.', 'The listings have been updated.', count($posts), 'admin', 'business-directory-plugin');
682
+ break;
683
 
684
+ case 'change-to-expired':
685
+ foreach ( $posts as $post_id ) {
686
+ $listing = wpbdp_get_listing( $post_id );
687
+ $listing->update_plan( array( 'expiration_date' => current_time( 'mysql' ) ) );
688
+ $listing->set_status( 'expired' );
689
+ }
690
 
691
+ $this->messages[] = _nx('The listing has been updated.', 'The listings have been updated.', count($posts), 'admin', 'business-directory-plugin');
692
+ break;
693
 
694
+ case 'change-to-complete':
695
+ case 'approve-payments':
696
+ foreach ( $posts as $post_id ) {
697
+ $pending_payments = WPBDP_Payment::objects()->filter( array( 'listing_id' => $post_id, 'status' => 'pending' ) );
698
 
699
+ foreach ( $pending_payments as $p ) {
700
+ $p->status = 'completed';
701
+ $p->save();
702
+ }
703
  }
 
704
 
705
+ break;
706
+
707
+ case 'assignfee':
708
+ $listing = WPBDP_Listing::get( $posts[0] );
709
+ $fee_id = (int) $_GET['fee_id'];
710
+ $listing->set_fee_plan( $fee_id );
711
+
712
+ $this->messages[] = _x('The fee was successfully assigned.', 'admin', 'business-directory-plugin');
713
 
714
+ break;
 
 
 
715
 
716
+ case 'renewlisting':
717
+ foreach ( $posts as $post_id ):
718
+ $listing = WPBDP_Listing::get( $post_id );
719
+ $listing->renew();
720
+ endforeach;
721
 
722
+ $this->messages[] = _nx( 'Listing was renewed.', 'Listings were renewed.', count( $posts ), 'admin', 'business-directory-plugin' );
723
+ break;
724
 
725
+ case 'send-renewal-email':
726
+ $listing_id = intval( $_GET['listing_id'] );
727
+ $listing = WPBDP_Listing::get( $listing_id );
 
 
728
 
729
+ if ( ! $listing )
730
+ break;
731
 
732
+ if ( wpbdp()->listing_email_notification->send_notices( 'expiration', '0 days', $listing_id, true ) ) {
733
+ $this->messages[] = _x( 'Renewal email sent.', 'admin', 'business-directory-plugin' );
734
+ break;
735
+ }
736
 
737
+ $this->messages[] = array ( _x( 'Could not send renewal email, notice template at listing expiration not found.', 'admin', 'business-directory-plugin' ), 'error' );
 
738
 
 
 
739
  break;
 
 
 
740
 
741
+ case 'delete-flagging':
742
+ WPBDP__Listing_Flagging::remove_flagging( $_GET['listing_id'], $_GET['meta_pos'] );
743
 
744
+ $this->messages[] = _nx( 'Listing report deleted.', 'Listing reports deleted.', $_GET['meta_pos'] == 'all' ? 2 : 1, 'admin', 'business-directory-plugin' );
745
+ break;
746
 
747
+ case 'send-access-keys':
748
+ $this->send_access_keys( $posts );
749
+ break;
750
 
751
+ default:
752
+ do_action( 'wpbdp_admin_directory_handle_action', $action );
753
+ break;
754
+ }
755
 
756
+ $_SERVER['REQUEST_URI'] = remove_query_arg( array('wpbdmaction', 'wpbdmfilter', 'transaction_id', 'category_id', 'fee_id', 'u', 'renewal_id', 'flagging_user' ), $_SERVER['REQUEST_URI'] );
 
 
757
  }
758
 
759
+ private function send_access_keys( $posts ) {
760
+ $listings_by_email_address = array();
761
 
762
+ foreach ( $posts as $post_id ) {
763
+ $listing = wpbdp_get_listing( $post_id );
764
 
765
+ if ( ! $listing ) {
766
+ continue;
767
+ }
768
 
769
+ $email_address = wpbusdirman_get_the_business_email( $post_id );
 
 
770
 
771
+ if ( ! $email_address ) {
772
+ continue;
773
+ }
774
 
775
+ $listings_by_email_address[ $email_address ][] = $listing;
 
776
  }
777
 
778
+ $sender = $this->get_access_keys_sender();
779
+ $message_sent = false;
780
 
781
+ foreach ( $listings_by_email_address as $email_address => $listings ) {
782
+ try {
783
+ $message_sent = $message_sent || $sender->send_access_keys_for_listings( $listings, $email_address );
784
+ } catch ( Exception $e ) {
785
+ // pass
786
+ }
787
+ }
788
 
789
+ // TODO: Add more descriptive messages to indicate how many listings were
790
+ // processed successfully, how many failed and why.
791
+ if ( $message_sent ) {
792
+ $this->messages[] = _x( 'Access keys sent.', 'admin', 'business-directory-plugin' );
793
+ } else {
794
+ $this->messages[] = _x( "The access keys couldn't be sent.", 'admin', 'business-directory-plugin' );
795
  }
796
+
797
+ // TODO: Redirect and show messages on page load.
798
+ // if ( wp_redirect( remove_query_arg( array( 'action', 'post', 'wpbdmaction' ) ) ) ) {
799
+ // exit();
800
+ // }
801
  }
802
 
803
+ public function get_access_keys_sender() {
804
+ return new WPBDP__Access_Keys_Sender();
 
 
 
 
805
  }
806
 
807
+ /**
808
+ * @deprecated since 5.6.3
809
+ * @see WPBDP__Admin__Listing_Owner::_dropdown_users_args
810
+ */
811
+ public function _dropdown_users_args( $query_args, $r ) {
812
+ global $post;
813
 
814
+ if ( isset( $r['wpbdp_skip_dropdown_users_args'] ) ) {
815
+ return $query_args;
816
+ }
817
 
818
+ if ( is_admin() && get_post_type( $post ) == WPBDP_POST_TYPE ) {
819
+ add_filter( 'wp_dropdown_users', array( $this, '_dropdown_users' ) );
820
+ array_push( $this->dropdown_users_args_stack, $r );
821
+ }
 
 
822
 
 
823
  return $query_args;
824
  }
825
 
826
+ /**
827
+ * @deprecated since 5.6.3
828
+ * @see WPBDP__Admin__Listing_Owner::_dropdown_users
829
+ */
830
+ public function _dropdown_users( $output ) {
831
+ global $post;
832
 
833
+ remove_filter( 'wp_dropdown_users', array( $this, '_dropdown_users' ) );
 
834
 
835
+ if ( ! $this->dropdown_users_args_stack ) {
836
+ return $output;
837
+ }
 
 
 
838
 
839
+ $args = array_pop( $this->dropdown_users_args_stack );
840
 
841
+ if ( $args['show_option_none'] ) {
842
+ $selected = $args['option_none_value'];
843
+ } else {
844
+ $selected = ! empty( $post->ID ) ? $post->post_author : wp_get_current_user()->ID;
845
+ }
846
+
847
+ return wp_dropdown_users( array_merge( $args, array(
848
+ 'echo' => false,
849
+ 'selected' => $selected,
850
+ 'include_selected' => true,
851
+ 'who' => 'all',
852
+ 'wpbdp_skip_dropdown_users_args' => true,
853
+ ) ) );
854
  }
855
 
856
+ public function add_custom_taxonomy_columns( $cols ) {
857
+ $newcols = array_merge( array_slice( $cols, 0, 1 ),
858
+ array( 'id' => _x( 'ID', 'admin category id', 'business-directory-plugin' ) ),
859
+ array_slice( $cols, 1, -1),
860
+ array( 'posts' => _x('Listing Count', 'admin', 'business-directory-plugin') ) );
861
+ return $newcols;
862
+ }
863
 
864
+ public function tag_taxonomy_columns( $cols ) {
865
+ $newcols = array_merge( array_slice( $cols, 0, -1 ),
866
+ array( 'posts' => _x('Listing Count', 'admin', 'business-directory-plugin') ) );
867
+ return $newcols;
868
  }
869
 
870
+ public function custom_taxonomy_columns( $value, $column_name, $id ) {
871
+ if ( $column_name == 'id' )
872
+ return $id;
 
 
 
 
 
873
 
874
+ return $value;
875
+ }
 
 
 
 
 
876
 
877
+ /* Uninstall. */
878
+ public function uninstall_plugin() {
879
+ global $wpdb;
 
 
880
 
881
+ $nonce = isset( $_POST['_wpnonce'] ) ? trim( $_POST['_wpnonce'] ) : '';
 
 
882
 
883
+ if ( $nonce && wp_verify_nonce( $nonce, 'uninstall bd' ) ) {
884
+ $installer = new WPBDP_Installer( 0 );
885
 
886
+ // Delete listings.
887
+ $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE post_type = %s", WPBDP_POST_TYPE ) );
 
888
 
889
+ foreach ( $post_ids as $post_id )
890
+ wp_delete_post( $post_id, true );
891
 
892
+ // Drop tables.
893
+ $tables = array_keys( $installer->get_database_schema() );
894
+ foreach ( $tables as &$table ) {
895
+ $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}wpbdp_{$table}" );
896
+ }
897
 
898
+ // Delete options.
899
+ delete_option( 'wpbdp-db-version' );
900
+ delete_option( 'wpbusdirman_db_version' );
901
+ $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s", 'wpbdp%' ) );
902
 
903
+ // Clear scheduled hooks.
904
+ wp_clear_scheduled_hook('wpbdp_hourly_events');
905
+ wp_clear_scheduled_hook('wpbdp_daily_events');
906
 
907
+ $tracking = new WPBDP_SiteTracking();
908
+ $tracking->track_uninstall( isset( $_POST['uninstall'] ) ? $_POST['uninstall'] : null );
 
 
 
909
 
910
+ // Deactivate plugin.
911
+ $real_path = WPBDP_PATH . 'business-directory-plugin.php';
912
+ // if the plugin directory is a symlink, plugin_basename will return
913
+ // the real path, which may not be the same path WP associated to
914
+ // the plugin. Plugin paths must be of the form:
915
+ // wp-content/plugins/plugin-directory/plugin-file.php
916
+ $fixed_path = WP_CONTENT_DIR . '/plugins/' . basename(dirname($real_path)) . '/' . basename($real_path);
917
+ deactivate_plugins($fixed_path, true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
918
 
919
+ echo wpbdp_render_page(WPBDP_PATH . 'templates/admin/uninstall-complete.tpl.php');
920
+ } else {
921
+ echo wpbdp_render_page(WPBDP_PATH . 'templates/admin/uninstall-confirm.tpl.php');
922
+ }
 
 
 
 
 
 
 
 
 
923
  }
 
924
 
925
+ /* Required pages check. */
926
+ public function check_for_required_pages() {
927
+ if ( ! wpbdp_get_page_id( 'main' ) && current_user_can( 'administrator' ) ) {
928
+ $message = _x('<b>Business Directory Plugin</b> requires a page with the <tt>[businessdirectory]</tt> shortcode to function properly.', 'admin', 'business-directory-plugin');
929
+ $message .= '<br />';
930
+ $message .= _x('You can create this page by yourself or let Business Directory do this for you automatically.', 'admin', 'business-directory-plugin');
931
+ $message .= '<p>';
932
+ $message .= sprintf( '<a href="#" class="button wpbdp-create-main-page-button" data-nonce="%s">%s</a>',
933
+ wp_create_nonce( 'create main page' ),
934
+ _x( 'Create required pages for me', 'admin', 'business-directory-plugin' ) );
935
+ $message .= '</p>';
936
+
937
+ $this->messages[] = array($message, 'error');
938
+ }
939
  }
 
940
 
941
+ /**
942
+ * @since 3.6.10
943
+ */
944
+ function process_admin_action() {
945
+ if ( isset( $_REQUEST['wpbdp-action'] ) ) {
946
+ do_action( 'wpbdp_action_' . $_REQUEST['wpbdp-action'] );
947
+ // do_action( 'wpbdp_dispatch_' . $_REQUEST['wpbdp-action'] );
948
+ }
949
  }
950
 
951
+ private function check_server_requirements() {
952
+ $php_version = explode( '.', phpversion() );
953
+ $installed_version = $php_version[0] . '.' . $php_version[1];
 
954
 
955
+ // PHP 5.6 is required.
956
+ if ( version_compare( $installed_version, '5.6', '>=' ) ) {
957
+ return;
958
+ }
 
 
 
 
 
959
 
960
+ $dismissed = get_transient( 'wpbdp_server_requirements_warning_dismissed' );
961
+ if ( $dismissed ) {
962
+ return;
963
+ }
964
 
965
+ $this->messages[] = array(
966
+ sprintf(
967
+ _x( '<strong>Business Directory Plugin</strong> requires <strong>PHP 5.6</strong> or later, but your server is running version <strong>%s</strong>. Please ask your provider to upgrade in order to prevent any issues with the plugin.', 'admin', 'business-directory-plugin' ),
968
+ $installed_version
969
+ ),
970
+ 'error dismissible',
971
+ array( 'dismissible-id' => 'server_requirements' )
972
+ );
973
+ }
974
 
975
+ public function ajax_dismiss_notification_server_requirements() {
976
+ set_transient( 'wpbdp_server_requirements_warning_dismissed', true, WEEK_IN_SECONDS );
977
+ }
978
 
979
+ public function check_setup() {
980
+ global $pagenow;
981
+
982
+ if ( 'admin.php' != $pagenow || ! isset( $_GET['page'] ) || 'wpbdp_settings' != $_GET['page'] )
983
+ return;
984
+
985
+ // Registration disabled message.
986
+ if ( wpbdp_get_option( 'require-login')
987
+ && ! get_option( 'users_can_register')
988
+ && ! get_user_meta( get_current_user_id(), 'wpbdp_notice_dismissed[registration_disabled]', true ) ) {
989
+ $this->messages[] = array(
990
+ str_replace( array( '[', ']' ), array( '<a href="' . admin_url( 'options-general.php' ) . '">', '</a>' ), _x( 'We noticed you want your Business Directory users to register before posting listings, but Registration for your site is currently disabled. Go [here] and check "Anyone can register" to make sure BD works properly.', 'admin', 'business-directory-plugin' ) ),
991
+ 'error dismissible',
992
+ array( 'dismissible-id' => 'registration_disabled' )
993
+ );
994
+ }
995
  }
 
996
 
997
+ public function check_ajax_compat_mode() {
998
+ global $pagenow;
999
 
1000
+ if ( 'admin.php' != $pagenow || ! isset( $_GET['page'] ) || 'wpbdp_settings' != $_GET['page'] )
1001
+ return;
1002
 
1003
+ $notice = get_option( 'wpbdp-ajax-compat-mode-notice' );
1004
 
1005
+ if ( ! $notice )
1006
+ return;
1007
 
1008
+ $this->messages[] = $notice;
1009
+ delete_option( 'wpbdp-ajax-compat-mode-notice' );
1010
+ }
1011
 
1012
+ private function check_deprecation_warnings() {
1013
+ global $wpbdp_deprecation_warnings;
1014
 
1015
+ if ( ! empty( $wpbdp_deprecation_warnings ) ) {
1016
+ foreach ( $wpbdp_deprecation_warnings as $warning ) {
1017
+ $this->messages[] = $warning;
1018
+ }
1019
  }
1020
  }
 
1021
 
1022
+ public function main_menu() {
1023
+ echo wpbdp_render_page( WPBDP_PATH . 'templates/admin/home.tpl.php' );
1024
+ }
1025
 
1026
+ public function register_listings_views() {
1027
+ $view = new WPBDP__ListingsWithNoFeePlanView();
1028
 
1029
+ add_filter( 'wpbdp_admin_directory_views', array( $view, 'filter_views' ), 10, 2 );
1030
+ add_filter( 'wpbdp_admin_directory_filter', array( $view, 'filter_query_pieces' ), 10, 2 );
1031
+ }
 
1032
 
1033
+ }
 
 
 
1034
 
1035
+ function wpbdp_admin_message( $msg, $kind = '', $extra = array() ) {
1036
+ global $wpbdp;
1037
+ $wpbdp->admin->messages[] = ( $kind || $extra ) ? array( $msg, $kind, $extra ) : $msg;
1038
+ }
1039
  }
includes/admin/class-csv-exporter.php CHANGED
@@ -49,7 +49,7 @@ class WPBDP_CSVExporter {
49
  $this->settings['target-os'] = 'windows';
50
  }
51
 
52
- if ( $this->settings['target-os'] == 'macos' ) {
53
  $this->settings['csv-file-separator'] = "\t";
54
  }
55
 
@@ -73,6 +73,10 @@ class WPBDP_CSVExporter {
73
 
74
  $this->columns['fee_id'] = 'fee_id';
75
 
 
 
 
 
76
  if ( $this->settings['include-expiration-date'] ) {
77
  $this->columns['expires_on'] = 'expires_on';
78
  }
@@ -97,15 +101,15 @@ class WPBDP_CSVExporter {
97
  $this->workingdir = rtrim( $csvexportsdir . DIRECTORY_SEPARATOR . uniqid(), DIRECTORY_SEPARATOR ) . DIRECTORY_SEPARATOR;
98
 
99
  if ( ! mkdir( $this->workingdir, 0777 ) ) {
100
- $direrror = _x( 'Could not create a temporary directory for handling this CSV export.', 'admin csv-export', 'WPBDM' );
101
  }
102
  } else {
103
- $direrror = _x( 'Could not create wpbdp-csv-exports directory.', 'admin csv-export', 'WPBDM' );
104
  }
105
  }
106
 
107
  if ( $direrror ) {
108
- throw new Exception( sprintf( _x( 'Error while creating a temporary directory for CSV export: %s', 'admin csv-export', 'WPBDM' ), $direrror ) );
109
  }
110
  } else {
111
  $this->workingdir = $workingdir;
@@ -146,7 +150,7 @@ class WPBDP_CSVExporter {
146
  $shortnames = wpbdp_formfields_api()->get_short_names();
147
 
148
  foreach ( $state['columns'] as $fshortname ) {
149
- if ( in_array( $fshortname, array( 'images', 'username', 'expires_on', 'sequence_id', 'fee_id', 'created_date', 'modified_date' ) ) ) {
150
  $export->columns[ $fshortname ] = $fshortname;
151
  continue;
152
  }
@@ -324,13 +328,15 @@ class WPBDP_CSVExporter {
324
  $value = $listing->get_author_meta( 'login' );
325
  break;
326
  case 'images':
327
- $images = array();
 
 
328
 
329
- if ( $image_ids = $listing->get_images( 'ids' ) ) {
330
  $thumnail_id = $listing->get_thumbnail_id();
331
  $has_thumbnail = array_search( $thumnail_id, $image_ids, true );
332
  if ( $has_thumbnail ) {
333
- unset( $image_ids[$has_thumbnail] );
334
  array_unshift( $image_ids, $thumnail_id );
335
  }
336
 
@@ -386,6 +392,9 @@ class WPBDP_CSVExporter {
386
  get_option( 'date_format' ) . ' ' . get_option( 'time_format' ),
387
  $post_id
388
  );
 
 
 
389
  break;
390
  default:
391
  if ( is_object( $column_obj ) ) {
49
  $this->settings['target-os'] = 'windows';
50
  }
51
 
52
+ if ( $this->settings['target-os'] === 'macos' ) {
53
  $this->settings['csv-file-separator'] = "\t";
54
  }
55
 
73
 
74
  $this->columns['fee_id'] = 'fee_id';
75
 
76
+ if ( ! empty( $this->settings['include-tos-acceptance-date'] ) ) {
77
+ $this->columns['terms_and_conditions_acceptance_date'] = 'terms_and_conditions_acceptance_date';
78
+ }
79
+
80
  if ( $this->settings['include-expiration-date'] ) {
81
  $this->columns['expires_on'] = 'expires_on';
82
  }
101
  $this->workingdir = rtrim( $csvexportsdir . DIRECTORY_SEPARATOR . uniqid(), DIRECTORY_SEPARATOR ) . DIRECTORY_SEPARATOR;
102
 
103
  if ( ! mkdir( $this->workingdir, 0777 ) ) {
104
+ $direrror = _x( 'Could not create a temporary directory for handling this CSV export.', 'admin csv-export', 'business-directory-plugin' );
105
  }
106
  } else {
107
+ $direrror = _x( 'Could not create wpbdp-csv-exports directory.', 'admin csv-export', 'business-directory-plugin' );
108
  }
109
  }
110
 
111
  if ( $direrror ) {
112
+ throw new Exception( sprintf( _x( 'Error while creating a temporary directory for CSV export: %s', 'admin csv-export', 'business-directory-plugin' ), $direrror ) );
113
  }
114
  } else {
115
  $this->workingdir = $workingdir;
150
  $shortnames = wpbdp_formfields_api()->get_short_names();
151
 
152
  foreach ( $state['columns'] as $fshortname ) {
153
+ if ( in_array( $fshortname, array( 'images', 'username', 'expires_on', 'sequence_id', 'fee_id', 'created_date', 'modified_date', 'terms_and_conditions_acceptance_date' ) ) ) {
154
  $export->columns[ $fshortname ] = $fshortname;
155
  continue;
156
  }
328
  $value = $listing->get_author_meta( 'login' );
329
  break;
330
  case 'images':
331
+ $images = array();
332
+
333
+ $image_ids = $listing->get_images( 'ids' );
334
 
335
+ if ( $image_ids ) {
336
  $thumnail_id = $listing->get_thumbnail_id();
337
  $has_thumbnail = array_search( $thumnail_id, $image_ids, true );
338
  if ( $has_thumbnail ) {
339
+ unset( $image_ids[ $has_thumbnail ] );
340
  array_unshift( $image_ids, $thumnail_id );
341
  }
342
 
392
  get_option( 'date_format' ) . ' ' . get_option( 'time_format' ),
393
  $post_id
394
  );
395
+ break;
396
+ case 'terms_and_conditions_acceptance_date':
397
+ $value = get_post_meta( $post_id, '_wpbdp_tos_acceptance_date', true );
398
  break;
399
  default:
400
  if ( is_object( $column_obj ) ) {
includes/admin/class-csv-import.php CHANGED
@@ -500,13 +500,13 @@ class WPBDP_CSV_Import {
500
  if ( is_array( $t ) && isset( $t['term_id'] ) ) {
501
  $c['term_id'] = $t['term_id'];
502
  } elseif ( is_wp_error( $t ) ) {
503
- $message = _x( 'Could not create listing category "<category-name>". The operation failed with the following error: <error-message>.', 'admin csv-import', 'WPBDM' );
504
  $message = str_replace( '<category-name>', $c['name'], $message );
505
  $message = str_replace( '<error-message>', $t->get_error_message(), $message );
506
 
507
  $errors[] = $message;
508
  } else {
509
- $errors[] = sprintf( _x( 'Could not create listing category "%s"', 'admin csv-import', 'WPBDM' ), $c['name'] );
510
  }
511
  }
512
 
@@ -612,6 +612,19 @@ class WPBDP_CSV_Import {
612
  return $error;
613
  }
614
 
 
 
 
 
 
 
 
 
 
 
 
 
 
615
  if ( $state->images ) {
616
  $listing->set_thumbnail_id( $state->images[0] );
617
  }
@@ -630,7 +643,7 @@ class WPBDP_CSV_Import {
630
  'log_type' => 'payment.note',
631
  'object_id' => $payment->id,
632
  'actor' => is_admin() ? 'user:' . get_current_user_id() : 'system',
633
- 'message' => __( 'Listing imported by admin. Payment skipped.', 'WPBDM' ),
634
  )
635
  );
636
  }
@@ -681,7 +694,7 @@ class WPBDP_CSV_Import {
681
  case 'username':
682
  if ( $this->settings['assign-listings-to-user'] && $value ) {
683
  if ( ! username_exists( $value ) ) {
684
- $errors[] = sprintf( _x( 'Username "%s" does not exist', 'admin csv-import', 'WPBDM' ), $value );
685
  } else {
686
  $meta['username'] = $value;
687
  }
@@ -690,32 +703,12 @@ class WPBDP_CSV_Import {
690
  break;
691
 
692
  case 'expires_on':
693
- $trimmed_value = trim( $value, "/ \t\n\r\0\x0B" );
694
 
695
- if ( empty( $trimmed_value ) ) {
696
- break;
697
  }
698
-
699
- if ( preg_match( '#^(\d{1,4}/\d{1,2}/\d{1,4})(\s([0-1]?[0-9]|[2][0-3]):([0-5][0-9])(:[0-5][0-9])?)?$#', $trimmed_value ) ) {
700
- $date = strtotime( $trimmed_value );
701
- } else {
702
- $dates = explode( '/', $trimmed_value );
703
- $dates = array_map( 'strtotime', $dates );
704
- $dates = array_filter( $dates );
705
-
706
- $date = array_shift( $dates );
707
- }
708
-
709
- if ( ! $date ) {
710
- $message = _x( "The string <string> couldn't be converted into a valid date.", 'admin csv-import', 'WPBDM' );
711
- $message = str_replace( '<string>', '"' . $value . '"', $message );
712
-
713
- $errors[] = $message;
714
-
715
- break;
716
- }
717
-
718
- $expires_on = date( 'Y-m-d H:i:s', $date );
719
  break;
720
 
721
  case 'fee_id':
@@ -729,7 +722,7 @@ class WPBDP_CSV_Import {
729
  $plan = wpbdp_get_fee_plan( $submitted_fee_id );
730
 
731
  if ( ! $plan ) {
732
- $message = _x( 'There is no Fee Plan with ID = <fee-id>', 'admin csv-import', 'WPBDM' );
733
  $message = str_replace( '<fee-id>', $submitted_fee_id, $message );
734
 
735
  $errors[] = $message;
@@ -741,6 +734,14 @@ class WPBDP_CSV_Import {
741
 
742
  break;
743
 
 
 
 
 
 
 
 
 
744
  case 'sequence_id':
745
  $meta['sequence_id'] = absint( $value );
746
 
@@ -752,7 +753,7 @@ class WPBDP_CSV_Import {
752
  }
753
 
754
  if ( $field->is_required() && $field->is_empty_value( $value ) ) {
755
- $errors[] = sprintf( _x( 'Missing required field: %s', 'admin csv-import', 'WPBDM' ), $column );
756
  break;
757
  }
758
 
@@ -777,7 +778,7 @@ class WPBDP_CSV_Import {
777
  );
778
  } else {
779
  if ( ! $this->settings['create-missing-categories'] ) {
780
- $errors[] = sprintf( _x( 'Listing category "%s" does not exist', 'admin csv-import', 'WPBDM' ), $csv_category );
781
  continue;
782
  }
783
 
@@ -803,7 +804,7 @@ class WPBDP_CSV_Import {
803
  }
804
  }
805
 
806
- return array( compact( 'categories', 'fields', 'images', 'meta', 'expires_on', 'plan_id' ), $errors );
807
  }
808
 
809
  private function get_header() {
@@ -823,4 +824,32 @@ class WPBDP_CSV_Import {
823
 
824
  return $media_id;
825
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
826
  }
500
  if ( is_array( $t ) && isset( $t['term_id'] ) ) {
501
  $c['term_id'] = $t['term_id'];
502
  } elseif ( is_wp_error( $t ) ) {
503
+ $message = _x( 'Could not create listing category "<category-name>". The operation failed with the following error: <error-message>.', 'admin csv-import', 'business-directory-plugin' );
504
  $message = str_replace( '<category-name>', $c['name'], $message );
505
  $message = str_replace( '<error-message>', $t->get_error_message(), $message );
506
 
507
  $errors[] = $message;
508
  } else {
509
+ $errors[] = sprintf( _x( 'Could not create listing category "%s"', 'admin csv-import', 'business-directory-plugin' ), $c['name'] );
510
  }
511
  }
512
 
612
  return $error;
613
  }
614
 
615
+ if ( ! empty( $data['terms_and_conditions_acceptance_date'] ) ) {
616
+ update_post_meta( $listing->get_id(), '_wpbdp_tos_acceptance_date', $data['terms_and_conditions_acceptance_date'] );
617
+ if ( empty( $meta['sequence_id'] ) ) {
618
+ wpbdp_insert_log(
619
+ array(
620
+ 'log_type' => 'listing.terms_and_conditions_accepted',
621
+ 'object_id' => $listing->get_id(),
622
+ 'created_at' => $data['terms_and_conditions_acceptance_date']
623
+ )
624
+ );
625
+ }
626
+ }
627
+
628
  if ( $state->images ) {
629
  $listing->set_thumbnail_id( $state->images[0] );
630
  }
643
  'log_type' => 'payment.note',
644
  'object_id' => $payment->id,
645
  'actor' => is_admin() ? 'user:' . get_current_user_id() : 'system',
646
+ 'message' => __( 'Listing imported by admin. Payment skipped.', 'business-directory-plugin' ),
647
  )
648
  );
649
  }
694
  case 'username':
695
  if ( $this->settings['assign-listings-to-user'] && $value ) {
696
  if ( ! username_exists( $value ) ) {
697
+ $errors[] = sprintf( _x( 'Username "%s" does not exist', 'admin csv-import', 'business-directory-plugin' ), $value );
698
  } else {
699
  $meta['username'] = $value;
700
  }
703
  break;
704
 
705
  case 'expires_on':
706
+ $expires = $this->convert_to_date( $value, $errors );
707
 
708
+ if ( $expires ) {
709
+ $expires_on = $expires;
710
  }
711
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
712
  break;
713
 
714
  case 'fee_id':
722
  $plan = wpbdp_get_fee_plan( $submitted_fee_id );
723
 
724
  if ( ! $plan ) {
725
+ $message = _x( 'There is no Fee Plan with ID = <fee-id>', 'admin csv-import', 'business-directory-plugin' );
726
  $message = str_replace( '<fee-id>', $submitted_fee_id, $message );
727
 
728
  $errors[] = $message;
734
 
735
  break;
736
 
737
+ case 'terms_and_conditions_acceptance_date':
738
+ $tos_date = $this->convert_to_date( $value, $errors );
739
+
740
+ if ( $tos_date ) {
741
+ $terms_and_conditions_acceptance_date = $tos_date;
742
+ }
743
+ break;
744
+
745
  case 'sequence_id':
746
  $meta['sequence_id'] = absint( $value );
747
 
753
  }
754
 
755
  if ( $field->is_required() && $field->is_empty_value( $value ) ) {
756
+ $errors[] = sprintf( _x( 'Missing required field: %s', 'admin csv-import', 'business-directory-plugin' ), $column );
757
  break;
758
  }
759
 
778
  );
779
  } else {
780
  if ( ! $this->settings['create-missing-categories'] ) {
781
+ $errors[] = sprintf( _x( 'Listing category "%s" does not exist', 'admin csv-import', 'business-directory-plugin' ), $csv_category );
782
  continue;
783
  }
784
 
804
  }
805
  }
806
 
807
+ return array( compact( 'categories', 'fields', 'images', 'meta', 'expires_on', 'plan_id', 'terms_and_conditions_acceptance_date' ), $errors );
808
  }
809
 
810
  private function get_header() {
824
 
825
  return $media_id;
826
  }
827
+
828
+ private function convert_to_date( $value, &$errors ) {
829
+ $trimmed_value = trim( $value, "/ \t\n\r\0\x0B" );
830
+
831
+ if ( empty( $trimmed_value ) ) {
832
+ return false;
833
+ }
834
+
835
+ if ( preg_match( '#^(\d{1,4}/\d{1,2}/\d{1,4})(\s([0-1]?[0-9]|[2][0-3]):([0-5][0-9])(:[0-5][0-9])?)?$#', $trimmed_value ) ) {
836
+ $date = strtotime( $trimmed_value );
837
+ } else {
838
+ $dates = explode( '/', $trimmed_value );
839
+ $dates = array_map( 'strtotime', $dates );
840
+ $dates = array_filter( $dates );
841
+
842
+ $date = array_shift( $dates );
843
+ }
844
+
845
+ if ( ! $date ) {
846
+ $message = _x( "The string <string> couldn't be converted into a valid date.", 'admin csv-import', 'business-directory-plugin' );
847
+ $message = str_replace( '<string>', '"' . $value . '"', $message );
848
+
849
+ $errors[] = $message;
850
+ return false;
851
+ }
852
+
853
+ return date( 'Y-m-d H:i:s', $date );
854
+ }
855
  }
includes/admin/class-listing-fields-metabox.php CHANGED
@@ -25,10 +25,10 @@ class WPBDP_Admin_Listing_Fields_Metabox {
25
  echo '<div id="wpbdp-submit-listing">';
26
 
27
  echo '<ul class="wpbdp-admin-tab-nav subsubsub">';
28
- echo '<li><a href="#wpbdp-listing-fields-fields">' . _x( 'Fields', 'admin', 'WPBDM' ) . '</a> | </li>';
29
  echo '<li><a href="#wpbdp-listing-fields-images">';
30
- echo '<span class="with-image-count ' . ( $image_count > 0 ? '' : ' hidden' ) . '">' . sprintf( _x( 'Images (%s)', 'admin', 'WPBDM' ), '<span>' . $image_count . '</span>' ) . '</span>';
31
- echo '<span class="no-image-count' . ( $image_count > 0 ? ' hidden' : '' ) . '">' . _x( 'Images', 'admin', 'WPBDM' ) . '</span>';
32
  echo '</a></li>';
33
  echo '</ul>';
34
 
25
  echo '<div id="wpbdp-submit-listing">';
26
 
27
  echo '<ul class="wpbdp-admin-tab-nav subsubsub">';
28
+ echo '<li><a href="#wpbdp-listing-fields-fields">' . _x( 'Fields', 'admin', 'business-directory-plugin' ) . '</a> | </li>';
29
  echo '<li><a href="#wpbdp-listing-fields-images">';
30
+ echo '<span class="with-image-count ' . ( $image_count > 0 ? '' : ' hidden' ) . '">' . sprintf( _x( 'Images (%s)', 'admin', 'business-directory-plugin' ), '<span>' . $image_count . '</span>' ) . '</span>';
31
+ echo '<span class="no-image-count' . ( $image_count > 0 ? ' hidden' : '' ) . '">' . _x( 'Images', 'admin', 'business-directory-plugin' ) . '</span>';
32
  echo '</a></li>';
33
  echo '</ul>';
34
 
includes/admin/class-listing-owner.php CHANGED
@@ -6,6 +6,8 @@ class WPBDP__Admin__Listing_Owner {
6
 
7
  public static $users = array();
8
 
 
 
9
  private $dropdown_users_args_stack = array();
10
 
11
  public function __construct( $post_id = 0 ) {
@@ -18,9 +20,11 @@ class WPBDP__Admin__Listing_Owner {
18
  add_filter( 'wp_dropdown_users_args', array( $this, '_dropdown_users_args' ), 10, 2 );
19
 
20
  add_action( 'wp_ajax_wpbdp-autocomplete-users', array( $this, 'ajax_autocomplete_users' ) );
21
- add_action( 'wp_ajax_noprinv_wpbdp-autocomplete-users', array( $this, 'ajax_autocomplete_users' ) );
22
  }
23
 
 
 
 
24
 
25
  /**
26
  * @param array $query_args An array of configuration parameters.
@@ -33,7 +37,7 @@ class WPBDP__Admin__Listing_Owner {
33
 
34
  global $post;
35
 
36
- if ( is_admin() && get_post_type( $post ) == WPBDP_POST_TYPE ) {
37
  add_filter( 'wp_dropdown_users', array( $this, '_dropdown_users' ) );
38
  array_push( $this->dropdown_users_args_stack, $r );
39
  }
@@ -59,7 +63,7 @@ class WPBDP__Admin__Listing_Owner {
59
  $args = array_pop( $this->dropdown_users_args_stack );
60
 
61
  $params = array(
62
- 'default' => __( 'Please select a user', 'WPBDM' ),
63
  'id' => 'authors',
64
  'name' => 'post_author',
65
  'mode' => null,
@@ -84,9 +88,9 @@ class WPBDP__Admin__Listing_Owner {
84
 
85
  $params = array(
86
  'selected' => (int) $post->post_author,
87
- 'label' => __( 'Listing Owner', 'WPBDM' ),
88
  'label_class' => 'screen-reader-text',
89
- 'default' => __( 'Please select a user', 'WPBDM' ),
90
  'id' => 'post_author_override',
91
  'name' => 'post_author_override',
92
  'class' => array( 'wpbdp-user-selector' ),
@@ -114,14 +118,16 @@ class WPBDP__Admin__Listing_Owner {
114
  private function prepare_paramaters( $params ) {
115
  $params = wp_parse_args(
116
  $params,
117
- [
118
- 'label' => false,
119
- 'label_class' => false,
120
- 'required' => false,
121
- 'selected' => null,
122
- 'mode' => null,
123
- 'users' => [],
124
- ]
 
 
125
  );
126
 
127
  $params['mode'] = $this->get_mode( $params );
@@ -168,12 +174,15 @@ class WPBDP__Admin__Listing_Owner {
168
  private function get_ajax_mode_configuration( $params ) {
169
  $configuration = $this->get_common_configuration( $params );
170
 
171
- $configuration['select2'] = [
172
- 'ajax' => [
173
  'url' => add_query_arg( 'action', 'wpbdp-autocomplete-users', admin_url( 'admin-ajax.php' ) ),
174
  'dataType' => 'json',
175
- ],
176
- ];
 
 
 
177
 
178
  return $configuration;
179
  }
@@ -183,10 +192,13 @@ class WPBDP__Admin__Listing_Owner {
183
  * @since 5.6.3
184
  */
185
  private function get_common_configuration( $params ) {
186
- return [
187
- 'selected' => !empty ( $params['selected'] ) ? array( 'id' => $params['selected'], 'text' => self::$users[$params['selected']] ) : '',
 
 
 
188
  'mode' => $params['mode'],
189
- ];
190
  }
191
 
192
  /**
@@ -196,6 +208,7 @@ class WPBDP__Admin__Listing_Owner {
196
  private function prepare_inline_mode_parameters( $params ) {
197
  $params['users'] = self::$users;
198
  $params['configuration'] = $this->get_iniline_mode_configuration( $params );
 
199
 
200
  return $params;
201
  }
@@ -209,7 +222,7 @@ class WPBDP__Admin__Listing_Owner {
209
  private function get_iniline_mode_configuration( $params ) {
210
  $configuration = $this->get_common_configuration( $params );
211
 
212
- $configuration['select2'] = [];
213
 
214
  return $configuration;
215
  }
@@ -217,18 +230,31 @@ class WPBDP__Admin__Listing_Owner {
217
  public function ajax_autocomplete_users() {
218
  global $wpdb;
219
 
220
- $request = stripslashes_deep( $_REQUEST );
 
 
 
 
 
 
 
 
221
 
222
  $users = get_users(
223
  array(
224
- 'fields' => array( 'ID', 'user_login' ),
225
- 'search' => ! empty( $request['term'] ) ? "*{$request['term']}*" : '',
226
  'search_columns' => array( 'user_login', 'user_nicename', 'display_name' ),
227
- 'number' => 100,
228
- 'orderby' => 'ID',
229
- )
230
- );
231
 
232
- wp_send_json( array( 'status' => 'ok', 'items' => array_values( $users ) ) );
 
 
 
 
 
233
  }
234
- }
6
 
7
  public static $users = array();
8
 
9
+ public $listing_id = 0;
10
+
11
  private $dropdown_users_args_stack = array();
12
 
13
  public function __construct( $post_id = 0 ) {
20
  add_filter( 'wp_dropdown_users_args', array( $this, '_dropdown_users_args' ), 10, 2 );
21
 
22
  add_action( 'wp_ajax_wpbdp-autocomplete-users', array( $this, 'ajax_autocomplete_users' ) );
 
23
  }
24
 
25
+ public function set_listing_id( $listing_id ) {
26
+ $this->listing_id = $listing_id;
27
+ }
28
 
29
  /**
30
  * @param array $query_args An array of configuration parameters.
37
 
38
  global $post;
39
 
40
+ if ( is_admin() && get_post_type( $post ) === WPBDP_POST_TYPE ) {
41
  add_filter( 'wp_dropdown_users', array( $this, '_dropdown_users' ) );
42
  array_push( $this->dropdown_users_args_stack, $r );
43
  }
63
  $args = array_pop( $this->dropdown_users_args_stack );
64
 
65
  $params = array(
66
+ 'default' => __( 'Please select a user', 'business-directory-plugin' ),
67
  'id' => 'authors',
68
  'name' => 'post_author',
69
  'mode' => null,
88
 
89
  $params = array(
90
  'selected' => (int) $post->post_author,
91
+ 'label' => __( 'Listing Owner', 'business-directory-plugin' ),
92
  'label_class' => 'screen-reader-text',
93
+ 'default' => __( 'Please select a user', 'business-directory-plugin' ),
94
  'id' => 'post_author_override',
95
  'name' => 'post_author_override',
96
  'class' => array( 'wpbdp-user-selector' ),
118
  private function prepare_paramaters( $params ) {
119
  $params = wp_parse_args(
120
  $params,
121
+ array(
122
+ 'label' => false,
123
+ 'label_class' => false,
124
+ 'required' => false,
125
+ 'selected' => null,
126
+ 'mode' => null,
127
+ 'users' => array(),
128
+ 'nonce' => '',
129
+ 'listing_id' => '',
130
+ )
131
  );
132
 
133
  $params['mode'] = $this->get_mode( $params );
174
  private function get_ajax_mode_configuration( $params ) {
175
  $configuration = $this->get_common_configuration( $params );
176
 
177
+ $configuration['select2'] = array(
178
+ 'ajax' => array(
179
  'url' => add_query_arg( 'action', 'wpbdp-autocomplete-users', admin_url( 'admin-ajax.php' ) ),
180
  'dataType' => 'json',
181
+ ),
182
+ );
183
+
184
+ $configuration['security'] = wp_create_nonce( 'ajax_autocomplete_users_' . $this->listing_id );
185
+ $configuration['listing_id'] = $this->listing_id;
186
 
187
  return $configuration;
188
  }
192
  * @since 5.6.3
193
  */
194
  private function get_common_configuration( $params ) {
195
+ return array(
196
+ 'selected' => ! empty( $params['selected'] ) ? array(
197
+ 'id' => $params['selected'],
198
+ 'text' => self::$users[ $params['selected'] ],
199
+ ) : '',
200
  'mode' => $params['mode'],
201
+ );
202
  }
203
 
204
  /**
208
  private function prepare_inline_mode_parameters( $params ) {
209
  $params['users'] = self::$users;
210
  $params['configuration'] = $this->get_iniline_mode_configuration( $params );
211
+ $params['listing_id'] = $this->listing_id;
212
 
213
  return $params;
214
  }
222
  private function get_iniline_mode_configuration( $params ) {
223
  $configuration = $this->get_common_configuration( $params );
224
 
225
+ $configuration['select2'] = array();
226
 
227
  return $configuration;
228
  }
230
  public function ajax_autocomplete_users() {
231
  global $wpdb;
232
 
233
+ $request = wp_unslash( $_REQUEST );
234
+
235
+ if ( ! ( isset( $request['security'] ) && isset( $request['listing_id'] ) && wp_verify_nonce( $request['security'], 'ajax_autocomplete_users_' . $request['listing_id'] ) ) ) {
236
+ wp_send_json(
237
+ array(
238
+ 'status' => 'fail',
239
+ )
240
+ );
241
+ }
242
 
243
  $users = get_users(
244
  array(
245
+ 'fields' => array( 'ID', 'user_login' ),
246
+ 'search' => ! empty( $request['term'] ) ? "*{$request['term']}*" : '',
247
  'search_columns' => array( 'user_login', 'user_nicename', 'display_name' ),
248
+ 'number' => 100,
249
+ 'orderby' => 'ID',
250
+ )
251
+ );
252
 
253
+ wp_send_json(
254
+ array(
255
+ 'status' => 'ok',
256
+ 'items' => array_values( $users ),
257
+ )
258
+ );
259
  }
260
+ }
includes/admin/class-listings-personal-data-provider.php CHANGED
@@ -59,7 +59,7 @@ class WPBDP_ListingsPersonalDataProvider implements WPBDP_PersonalDataProviderIn
59
  private function get_privacy_fields_items() {
60
  $default_tags = WPBDP_Form_Field::$default_tags;
61
 
62
- $items = array( 'ID' => __( 'Listing ID', 'WPBDM' ) );
63
 
64
  foreach ( $default_tags as $tag ) {
65
  $items[ $tag ] = WPBDP_Form_Field::find_by_tag( $tag )->get_label();
@@ -110,7 +110,7 @@ class WPBDP_ListingsPersonalDataProvider implements WPBDP_PersonalDataProviderIn
110
  $items = $this->get_privacy_fields_items();
111
 
112
  $media_items = array(
113
- 'URL' => __( 'Image URL', 'WPBDM' ),
114
  );
115
 
116
  $export_items = array();
@@ -124,7 +124,7 @@ class WPBDP_ListingsPersonalDataProvider implements WPBDP_PersonalDataProviderIn
124
 
125
  $export_items[] = array(
126
  'group_id' => 'wpbdp-listings',
127
- 'group_label' => __( 'Business Directory Listings', 'WPBDM' ),
128
  'item_id' => "wpbdp-listing-{$listing_id}",
129
  'data' => apply_filters( 'wpbdp_export_listing_objects', $data, $listing_id, $this->data_formatter )
130
  );
@@ -158,7 +158,7 @@ class WPBDP_ListingsPersonalDataProvider implements WPBDP_PersonalDataProviderIn
158
  continue;
159
  }
160
  $items_retained = true;
161
- $message = __( 'An unknown error occurred while trying to delete information for listing {listing_id}.', 'WPBDM' );
162
  $message = str_replace( '{listing_id}', $listing, $message );
163
  $messages[] = $message;
164
  }
59
  private function get_privacy_fields_items() {
60
  $default_tags = WPBDP_Form_Field::$default_tags;
61
 
62
+ $items = array( 'ID' => __( 'Listing ID', 'business-directory-plugin' ) );
63
 
64
  foreach ( $default_tags as $tag ) {
65
  $items[ $tag ] = WPBDP_Form_Field::find_by_tag( $tag )->get_label();
110
  $items = $this->get_privacy_fields_items();
111
 
112
  $media_items = array(
113
+ 'URL' => __( 'Image URL', 'business-directory-plugin' ),
114
  );
115
 
116
  $export_items = array();
124
 
125
  $export_items[] = array(
126
  'group_id' => 'wpbdp-listings',
127
+ 'group_label' => __( 'Business Directory Listings', 'business-directory-plugin' ),
128
  'item_id' => "wpbdp-listing-{$listing_id}",
129
  'data' => apply_filters( 'wpbdp_export_listing_objects', $data, $listing_id, $this->data_formatter )
130
  );
158
  continue;
159
  }
160
  $items_retained = true;
161
+ $message = __( 'An unknown error occurred while trying to delete information for listing {listing_id}.', 'business-directory-plugin' );
162
  $message = str_replace( '{listing_id}', $listing, $message );
163
  $messages[] = $message;
164
  }
includes/admin/class-listings-with-no-fee-plan-view.php CHANGED
@@ -55,7 +55,7 @@ class WPBDP__ListingsWithNoFeePlanView {
55
 
56
  $views['wpbdp-no-fee-plan'] = $this->render_view_link(
57
  'no-fee-plan',
58
- _x( 'No Fee Plan', 'listings view', 'WPBDM' ),
59
  'wpbdmfilter',
60
  $listings_without_fee_plan,
61
  ! empty( $_GET['wpbdmfilter'] ) && 'no-fee-plan' == $_GET['wpbdmfilter']
55
 
56
  $views['wpbdp-no-fee-plan'] = $this->render_view_link(
57
  'no-fee-plan',
58
+ _x( 'No Fee Plan', 'listings view', 'business-directory-plugin' ),
59
  'wpbdmfilter',
60
  $listings_without_fee_plan,
61
  ! empty( $_GET['wpbdmfilter'] ) && 'no-fee-plan' == $_GET['wpbdmfilter']
includes/admin/class-payment-personal-data-provider.php CHANGED
@@ -53,8 +53,8 @@ class WPBDP_PaymentPersonalDataProvider implements WPBDP_PersonalDataProviderInt
53
  */
54
  public function export_objects( $payment_transactions ) {
55
  $items = array(
56
- 'ID' => __( 'Payment Transaction', 'WPBDM' ),
57
- 'payer_email' => __( 'Payer Email', 'WPBDM' ),
58
  );
59
  $export_items = array();
60
 
@@ -63,7 +63,7 @@ class WPBDP_PaymentPersonalDataProvider implements WPBDP_PersonalDataProviderInt
63
  $data = $this->data_formatter->format_data( $items, $this->get_payment_transaction_properties( $payment_transaction ) );
64
  $export_items[] = array(
65
  'group_id' => 'wpbdp-payments',
66
- 'group_label' => __( 'Listing Payments Information', 'WPBDM' ),
67
  'item_id' => "wpbdp -payment-transaction-{$payment_transaction->id}",
68
  'data' => $data,
69
  );
@@ -96,7 +96,7 @@ class WPBDP_PaymentPersonalDataProvider implements WPBDP_PersonalDataProviderInt
96
  continue;
97
  }
98
  $items_retained = true;
99
- $message = __( 'An unknown error occurred while trying to delete listing payment information for transaction {transaction_id}.', 'WPBDM' );
100
  $message = str_replace( '{transaction_id}', $payment_transaction->id, $message );
101
  $messages[] = $message;
102
  }
53
  */
54
  public function export_objects( $payment_transactions ) {
55
  $items = array(
56
+ 'ID' => __( 'Payment Transaction', 'business-directory-plugin' ),
57
+ 'payer_email' => __( 'Payer Email', 'business-directory-plugin' ),
58
  );
59
  $export_items = array();
60
 
63
  $data = $this->data_formatter->format_data( $items, $this->get_payment_transaction_properties( $payment_transaction ) );
64
  $export_items[] = array(
65
  'group_id' => 'wpbdp-payments',
66
+ 'group_label' => __( 'Listing Payments Information', 'business-directory-plugin' ),
67
  'item_id' => "wpbdp -payment-transaction-{$payment_transaction->id}",
68
  'data' => $data,
69
  );
96
  continue;
97
  }
98
  $items_retained = true;
99
+ $message = __( 'An unknown error occurred while trying to delete listing payment information for transaction {transaction_id}.', 'business-directory-plugin' );
100
  $message = str_replace( '{transaction_id}', $payment_transaction->id, $message );
101
  $messages[] = $message;
102
  }
includes/admin/class-personal-data-privacy.php CHANGED
@@ -58,7 +58,7 @@ class WPBDP_Personal_Data_Privacy {
58
  $data_formatter = new WPBDP_DataFormatter();
59
 
60
  $exporters['business-directory-plugin-listings'] = array(
61
- 'exporter_friendly_name' => __( 'Business Directory Plugin', 'WPBDM' ),
62
  'callback' => array(
63
  new WPBDP_PersonalDataExporter(
64
  new WPBDP_ListingsPersonalDataProvider(
@@ -70,7 +70,7 @@ class WPBDP_Personal_Data_Privacy {
70
  );
71
 
72
  $exporters['business-directory-plugin-payments'] = array(
73
- 'exporter_friendly_name' => __( 'Business Directory Plugin', 'WPBDM' ),
74
  'callback' => array(
75
  new WPBDP_PersonalDataExporter(
76
  new WPBDP_PaymentPersonalDataProvider( $data_formatter )
@@ -89,14 +89,14 @@ class WPBDP_Personal_Data_Privacy {
89
  */
90
  public function register_personal_data_erasers( $erasers ) {
91
  $erasers['business-directory-plugin-listings'] = array(
92
- 'eraser_friendly_name' => __( 'Business Directory Plugin', 'WPBDM' ),
93
  'callback' => array(
94
  new WPBDP_PersonalDataEraser( $this->get_listings_personal_data_provider() ),
95
  'erase_personal_data',
96
  ),
97
  );
98
  $erasers['business-directory-plugin-payments'] = array(
99
- 'eraser_friendly_name' => __( 'Business Directory Plugin', 'WPBDM' ),
100
  'callback' => array(
101
  new WPBDP_PersonalDataEraser( $this->get_payment_personal_data_provider() ),
102
  'erase_personal_data',
58
  $data_formatter = new WPBDP_DataFormatter();
59
 
60
  $exporters['business-directory-plugin-listings'] = array(
61
+ 'exporter_friendly_name' => __( 'Business Directory Plugin', 'business-directory-plugin' ),
62
  'callback' => array(
63
  new WPBDP_PersonalDataExporter(
64
  new WPBDP_ListingsPersonalDataProvider(
70
  );
71
 
72
  $exporters['business-directory-plugin-payments'] = array(
73
+ 'exporter_friendly_name' => __( 'Business Directory Plugin', 'business-directory-plugin' ),
74
  'callback' => array(
75
  new WPBDP_PersonalDataExporter(
76
  new WPBDP_PaymentPersonalDataProvider( $data_formatter )
89
  */
90
  public function register_personal_data_erasers( $erasers ) {
91
  $erasers['business-directory-plugin-listings'] = array(
92
+ 'eraser_friendly_name' => __( 'Business Directory Plugin', 'business-directory-plugin' ),
93
  'callback' => array(
94
  new WPBDP_PersonalDataEraser( $this->get_listings_personal_data_provider() ),
95
  'erase_personal_data',
96
  ),
97
  );
98
  $erasers['business-directory-plugin-payments'] = array(
99
+ 'eraser_friendly_name' => __( 'Business Directory Plugin', 'business-directory-plugin' ),
100
  'callback' => array(
101
  new WPBDP_PersonalDataEraser( $this->get_payment_personal_data_provider() ),
102
  'erase_personal_data',
includes/admin/class-themes-admin.php CHANGED
@@ -41,8 +41,8 @@ class WPBDP_Themes_Admin {
41
  $count_html = '';
42
 
43
  add_submenu_page( $slug,
44
- _x( 'Directory Themes', 'themes', 'WPBDM' ),
45
- $count_html ? sprintf( _x( 'Dir. Themes %s', 'themes', 'WPBDM' ), $count_html ) : _x( 'Directory Themes', 'themes', 'WPBDM' ),
46
  'administrator',
47
  'wpbdp-themes',
48
  array( &$this, 'dispatch' ) );
@@ -88,11 +88,11 @@ class WPBDP_Themes_Admin {
88
  return;
89
 
90
  $msg = '';
91
- $msg .= '<strong>' . _x( 'Business Directory Plugin - Your template overrides need to be reviewed!', 'admin themes', 'WPBDM' ) . '</strong>';
92
  $msg .= '<br />';
93
- $msg .= _x( 'Starting with version 4.0, Business Directory is using a new theming system that is not compatible with the templates used in previous versions.', 'admin themes', 'WPBDM' );
94
  $msg .= '<br />';
95
- $msg .= _x( 'Because of this, your template overrides below have been disabled. You should <a>review our documentation on customization</a> in order adjust your templates.', 'admin themes', 'WPBDM' );
96
  $msg .= '<br /><br />';
97
 
98
  foreach ( $overridden as $t => $relpath ) {
@@ -106,7 +106,7 @@ class WPBDP_Themes_Admin {
106
  global $wpbdp;
107
  global $pagenow;
108
 
109
- if ( 'admin.php' != $pagenow || ! isset( $_GET['page'] ) || 'wpbdp-themes' != $_GET['page'] )
110
  return;
111
 
112
  wp_enqueue_style(
@@ -131,7 +131,7 @@ class WPBDP_Themes_Admin {
131
  wp_die();
132
 
133
  if ( ! $this->api->set_active_theme( $theme_id ) )
134
- wp_die( sprintf( _x( 'Could not change the active theme to "%s".', 'themes', 'WPBDM' ), $theme_id ) );
135
 
136
  wp_redirect( admin_url( 'admin.php?page=wpbdp-themes&message=1' ) );
137
  exit;
@@ -172,10 +172,10 @@ class WPBDP_Themes_Admin {
172
 
173
  switch ( $msg ) {
174
  case 1:
175
- wpbdp_admin_message( sprintf( _x( 'Active theme changed to "%s".', 'themes', 'WPBDM' ), $this->api->get_active_theme() ) );
176
 
177
  if ( $missing_fields = $this->api->missing_suggested_fields( 'label' ) ) {
178
- $msg = sprintf( _x( '%s requires that you tag your existing fields to match some places we want to put your data on the theme. Below are fields we think are missing.', 'themes', 'WPBDM' ), $this->api->get_active_theme() );
179
  $msg .= '<br />';
180
 
181
  foreach ( $missing_fields as $mf )
@@ -184,23 +184,23 @@ class WPBDP_Themes_Admin {
184
  $msg .= '<br /><br />';
185
  $msg .= sprintf( '<a href="%s" class="button button-primary">%s</a>',
186
  admin_url( 'admin.php?page=wpbdp_admin_formfields&action=updatetags' ),
187
- _x( 'Map My Fields', 'themes', 'WPBDM' ) );
188
 
189
  wpbdp_admin_message( $msg, 'error' );
190
  }
191
 
192
  break;
193
  case 2:
194
- wpbdp_admin_message( _x( 'Suggested fields created successfully.', 'themes', 'WPBDM' ) );
195
  break;
196
  case 3:
197
- wpbdp_admin_message( _x( 'Theme installed successfully.', 'themes', 'WPBDM' ) );
198
  break;
199
  case 4:
200
- wpbdp_admin_message( _x( 'Theme was deleted successfully.', 'themes', 'WPBDM' ) );
201
  break;
202
  case 5:
203
- wpbdp_admin_message( _x( 'Could not delete theme directory. Check permissions.', 'themes', 'WPBDM' ), 'error' );
204
  break;
205
  default:
206
  break;
@@ -247,14 +247,14 @@ class WPBDP_Themes_Admin {
247
  $theme_file = isset( $_FILES['themezip'] ) ? $_FILES['themezip'] : false;
248
 
249
  if ( ! $theme_file || ! is_uploaded_file( $theme_file['tmp_name'] ) || UPLOAD_ERR_OK != $_FILES['themezip']['error'] ) {
250
- wpbdp_admin_message( _x( 'Please upload a valid theme file.', 'themes', 'WPBDM' ), 'error' );
251
  return;
252
  }
253
 
254
  $dest = wp_normalize_path( untrailingslashit( get_temp_dir() ) . DIRECTORY_SEPARATOR . $theme_file['name'] );
255
 
256
  if ( ! move_uploaded_file( $theme_file['tmp_name'], $dest ) ) {
257
- wpbdp_admin_message( sprintf( _x( 'Could not move "%s" to a temporary directory.', 'themes', 'WPBDM' ),
258
  $theme_file['name'] ),
259
  'error' );
260
  return;
@@ -329,7 +329,7 @@ class WPBDP_Themes_Admin {
329
  return;
330
 
331
  echo '<div class="wpbdp-theme-license-required-row">';
332
- echo str_replace( '<a>', '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp-themes&v=licenses' ) ) . '">', _x( 'Activate your <a>license key</a> to use this theme.', 'themes', 'WPBDM' ) );
333
  echo '</div>';
334
  }
335
 
@@ -370,13 +370,13 @@ class WPBDP_Themes_Admin {
370
  $theme = $this->api->get_theme( $theme_id );
371
 
372
  if ( ! $theme ) {
373
- $response['error'] = _x( 'Invalid theme ID', 'themes', 'WPBDM');
374
  return wp_send_json( $response );
375
  }
376
 
377
  $result = $this->run_update( $theme_id );
378
  if ( is_wp_error( $result ) ) {
379
- $response['error'] = sprintf( _x( 'Could not update theme: %s', 'themes', 'WPBDM' ), $result->get_error_message() );
380
  return wp_send_json( $response );
381
  }
382
 
41
  $count_html = '';
42
 
43
  add_submenu_page( $slug,
44
+ _x( 'Directory Themes', 'themes', 'business-directory-plugin' ),
45
+ $count_html ? sprintf( _x( 'Dir. Themes %s', 'themes', 'business-directory-plugin' ), $count_html ) : _x( 'Directory Themes', 'themes', 'business-directory-plugin' ),
46
  'administrator',
47
  'wpbdp-themes',
48
  array( &$this, 'dispatch' ) );
88
  return;
89
 
90
  $msg = '';
91
+ $msg .= '<strong>' . _x( 'Business Directory Plugin - Your template overrides need to be reviewed!', 'admin themes', 'business-directory-plugin' ) . '</strong>';
92
  $msg .= '<br />';
93
+ $msg .= _x( 'Starting with version 4.0, Business Directory is using a new theming system that is not compatible with the templates used in previous versions.', 'admin themes', 'business-directory-plugin' );
94
  $msg .= '<br />';
95
+ $msg .= _x( 'Because of this, your template overrides below have been disabled. You should <a>review our documentation on customization</a> in order adjust your templates.', 'admin themes', 'business-directory-plugin' );
96
  $msg .= '<br /><br />';
97
 
98
  foreach ( $overridden as $t => $relpath ) {
106
  global $wpbdp;
107
  global $pagenow;
108
 
109
+ if ( 'edit.php' != $pagenow || ! isset( $_GET['page'] ) || 'wpbdp-themes' != $_GET['page'] )
110
  return;
111
 
112
  wp_enqueue_style(
131
  wp_die();
132
 
133
  if ( ! $this->api->set_active_theme( $theme_id ) )
134
+ wp_die( sprintf( _x( 'Could not change the active theme to "%s".', 'themes', 'business-directory-plugin' ), $theme_id ) );
135
 
136
  wp_redirect( admin_url( 'admin.php?page=wpbdp-themes&message=1' ) );
137
  exit;
172
 
173
  switch ( $msg ) {
174
  case 1:
175
+ wpbdp_admin_message( sprintf( _x( 'Active theme changed to "%s".', 'themes', 'business-directory-plugin' ), $this->api->get_active_theme() ) );
176
 
177
  if ( $missing_fields = $this->api->missing_suggested_fields( 'label' ) ) {
178
+ $msg = sprintf( _x( '%s requires that you tag your existing fields to match some places we want to put your data on the theme. Below are fields we think are missing.', 'themes', 'business-directory-plugin' ), $this->api->get_active_theme() );
179
  $msg .= '<br />';
180
 
181
  foreach ( $missing_fields as $mf )
184
  $msg .= '<br /><br />';
185
  $msg .= sprintf( '<a href="%s" class="button button-primary">%s</a>',
186
  admin_url( 'admin.php?page=wpbdp_admin_formfields&action=updatetags' ),
187
+ _x( 'Map My Fields', 'themes', 'business-directory-plugin' ) );
188
 
189
  wpbdp_admin_message( $msg, 'error' );
190
  }
191
 
192
  break;
193
  case 2:
194
+ wpbdp_admin_message( _x( 'Suggested fields created successfully.', 'themes', 'business-directory-plugin' ) );
195
  break;
196
  case 3:
197
+ wpbdp_admin_message( _x( 'Theme installed successfully.', 'themes', 'business-directory-plugin' ) );
198
  break;
199
  case 4:
200
+ wpbdp_admin_message( _x( 'Theme was deleted successfully.', 'themes', 'business-directory-plugin' ) );
201
  break;
202
  case 5:
203
+ wpbdp_admin_message( _x( 'Could not delete theme directory. Check permissions.', 'themes', 'business-directory-plugin' ), 'error' );
204
  break;
205
  default:
206
  break;
247
  $theme_file = isset( $_FILES['themezip'] ) ? $_FILES['themezip'] : false;
248
 
249
  if ( ! $theme_file || ! is_uploaded_file( $theme_file['tmp_name'] ) || UPLOAD_ERR_OK != $_FILES['themezip']['error'] ) {
250
+ wpbdp_admin_message( _x( 'Please upload a valid theme file.', 'themes', 'business-directory-plugin' ), 'error' );
251
  return;
252
  }
253
 
254
  $dest = wp_normalize_path( untrailingslashit( get_temp_dir() ) . DIRECTORY_SEPARATOR . $theme_file['name'] );
255
 
256
  if ( ! move_uploaded_file( $theme_file['tmp_name'], $dest ) ) {
257
+ wpbdp_admin_message( sprintf( _x( 'Could not move "%s" to a temporary directory.', 'themes', 'business-directory-plugin' ),
258
  $theme_file['name'] ),
259
  'error' );
260
  return;
329
  return;
330
 
331
  echo '<div class="wpbdp-theme-license-required-row">';
332
+ echo str_replace( '<a>', '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp-themes&v=licenses' ) ) . '">', _x( 'Activate your <a>license key</a> to use this theme.', 'themes', 'business-directory-plugin' ) );
333
  echo '</div>';
334
  }
335
 
370
  $theme = $this->api->get_theme( $theme_id );
371
 
372
  if ( ! $theme ) {
373
+ $response['error'] = _x( 'Invalid theme ID', 'themes', 'business-directory-plugin');
374
  return wp_send_json( $response );
375
  }
376
 
377
  $result = $this->run_update( $theme_id );
378
  if ( is_wp_error( $result ) ) {
379
+ $response['error'] = sprintf( _x( 'Could not update theme: %s', 'themes', 'business-directory-plugin' ), $result->get_error_message() );
380
  return wp_send_json( $response );
381
  }
382
 
includes/admin/csv-export.php CHANGED
@@ -46,7 +46,7 @@ class WPBDP_Admin_CSVExport {
46
  } else {
47
  $state = json_decode( base64_decode( $_REQUEST['state'] ), true );
48
  if ( ! $state || ! is_array( $state ) || empty( $state['workingdir'] ) ) {
49
- $error = _x( 'Could not decode export state information.', 'admin csv-export', 'WPBDM' );
50
  }
51
 
52
  $export = WPBDP_CSVExporter::from_state( $state );
46
  } else {
47
  $state = json_decode( base64_decode( $_REQUEST['state'] ), true );
48
  if ( ! $state || ! is_array( $state ) || empty( $state['workingdir'] ) ) {
49
+ $error = _x( 'Could not decode export state information.', 'admin csv-export', 'business-directory-plugin' );
50
  }
51
 
52
  $export = WPBDP_CSVExporter::from_state( $state );
includes/admin/csv-import.php CHANGED
@@ -127,7 +127,7 @@ class WPBDP_CSVImportAdmin {
127
 
128
  if ( $field ) {
129
  if ( $field->get_association() == 'title' ) {
130
- return sprintf( _x( 'Business %s', 'admin csv-import', 'WPBDM' ), $letters[ rand( 0, strlen( $letters ) - 1 ) ] );
131
  } elseif ( $field->get_association() == 'category' ) {
132
  if ( $terms = get_terms( WPBDP_CATEGORY_TAX, 'number=5&hide_empty=0' ) ) {
133
  return $terms[ array_rand( $terms ) ]->name;
@@ -165,13 +165,13 @@ class WPBDP_CSVImportAdmin {
165
  return $users[ array_rand( $users ) ]->user_login;
166
  }
167
 
168
- return _x( 'Whatever', 'admin csv-import', 'WPBDM' );
169
  }
170
 
171
  private function example_csv() {
172
  echo wpbdp_admin_header(
173
- _x( 'Example CSV Import File', 'admin csv-import', 'WPBDM' ), null, array(
174
- array( _x( '← Return to "CSV Import"', 'admin csv-import', 'WPBDM' ), esc_url( remove_query_arg( 'action' ) ) ),
175
  ), false
176
  );
177
 
@@ -184,7 +184,7 @@ class WPBDP_CSVImportAdmin {
184
  )
185
  );
186
 
187
- // echo sprintf('<input type="button" value="%s" />', _x('Copy CSV', 'admin csv-import', 'WPBDM'));
188
  echo '<textarea class="wpbdp-csv-import-example" rows="30">';
189
 
190
  $fields = wpbdp_get_form_fields( array( 'field_type' => '-ratings' ) );
@@ -287,7 +287,7 @@ class WPBDP_CSVImportAdmin {
287
  _x(
288
  'A valid temporary directory with write permissions is required for CSV imports to function properly. Your server is using "%s" but this path does not seem to be writable. Please consult with your host.',
289
  'csv import',
290
- 'WPBDM'
291
  ),
292
  $import_dir
293
  )
@@ -327,13 +327,13 @@ class WPBDP_CSVImportAdmin {
327
  $sources[] = $_FILES['csv-file']['name'];
328
  $csv_file = $_FILES['csv-file']['tmp_name'];
329
  } elseif ( UPLOAD_ERR_NO_FILE != $_FILES['csv-file']['error'] ) {
330
- wpbdp_admin_message( _x( 'There was an error uploading the CSV file.', 'admin csv-import', 'WPBDM' ), 'error' );
331
  return $this->import_settings();
332
  }
333
  }
334
 
335
  if ( ! $csv_file ) {
336
- wpbdp_admin_message( _x( 'Please upload or select a CSV file.', 'admin csv-import', 'WPBDM' ), 'error' );
337
  return $this->import_settings();
338
  }
339
 
@@ -346,7 +346,7 @@ class WPBDP_CSVImportAdmin {
346
  if ( ! $zip_file && ! empty( $_FILES['images-file'] ) ) {
347
  if ( UPLOAD_ERR_NO_FILE == $_FILES['images-file']['error'] ) {
348
  } elseif ( ! is_uploaded_file( $_FILES['images-file']['tmp_name'] ) ) {
349
- wpbdp_admin_message( _x( 'There was an error uploading the images ZIP file.', 'admin csv-import', 'WPBDM' ), 'error' );
350
  return $this->import_settings();
351
  }
352
 
@@ -370,7 +370,7 @@ class WPBDP_CSVImportAdmin {
370
  $import->cleanup();
371
  }
372
 
373
- $error = _x( 'An error was detected while validating the CSV file for import. Please fix this before proceeding.', 'admin csv-import', 'WPBDM' );
374
  $error .= '<br />';
375
  $error .= '<b>' . $e->getMessage() . '</b>';
376
 
@@ -379,7 +379,7 @@ class WPBDP_CSVImportAdmin {
379
  }
380
 
381
  if ( $import->in_test_mode() ) {
382
- wpbdp_admin_message( _x( 'Import is in "test mode". Nothing will be inserted into the database.', 'admin csv-import', 'WPBDM' ) );
383
  }
384
 
385
  echo wpbdp_render_page(
127
 
128
  if ( $field ) {
129
  if ( $field->get_association() == 'title' ) {
130
+ return sprintf( _x( 'Business %s', 'admin csv-import', 'business-directory-plugin' ), $letters[ rand( 0, strlen( $letters ) - 1 ) ] );
131
  } elseif ( $field->get_association() == 'category' ) {
132
  if ( $terms = get_terms( WPBDP_CATEGORY_TAX, 'number=5&hide_empty=0' ) ) {
133
  return $terms[ array_rand( $terms ) ]->name;
165
  return $users[ array_rand( $users ) ]->user_login;
166
  }
167
 
168
+ return _x( 'Whatever', 'admin csv-import', 'business-directory-plugin' );
169
  }
170
 
171
  private function example_csv() {
172
  echo wpbdp_admin_header(
173
+ _x( 'Example CSV Import File', 'admin csv-import', 'business-directory-plugin' ), null, array(
174
+ array( _x( '← Return to "CSV Import"', 'admin csv-import', 'business-directory-plugin' ), esc_url( remove_query_arg( 'action' ) ) ),
175
  ), false
176
  );
177
 
184
  )
185
  );
186
 
187
+ // echo sprintf('<input type="button" value="%s" />', _x('Copy CSV', 'admin csv-import', 'business-directory-plugin'));
188
  echo '<textarea class="wpbdp-csv-import-example" rows="30">';
189
 
190
  $fields = wpbdp_get_form_fields( array( 'field_type' => '-ratings' ) );
287
  _x(
288
  'A valid temporary directory with write permissions is required for CSV imports to function properly. Your server is using "%s" but this path does not seem to be writable. Please consult with your host.',
289
  'csv import',
290
+ 'business-directory-plugin'
291
  ),
292
  $import_dir
293
  )
327
  $sources[] = $_FILES['csv-file']['name'];
328
  $csv_file = $_FILES['csv-file']['tmp_name'];
329
  } elseif ( UPLOAD_ERR_NO_FILE != $_FILES['csv-file']['error'] ) {
330
+ wpbdp_admin_message( _x( 'There was an error uploading the CSV file.', 'admin csv-import', 'business-directory-plugin' ), 'error' );
331
  return $this->import_settings();
332
  }
333
  }
334
 
335
  if ( ! $csv_file ) {
336
+ wpbdp_admin_message( _x( 'Please upload or select a CSV file.', 'admin csv-import', 'business-directory-plugin' ), 'error' );
337
  return $this->import_settings();
338
  }
339
 
346
  if ( ! $zip_file && ! empty( $_FILES['images-file'] ) ) {
347
  if ( UPLOAD_ERR_NO_FILE == $_FILES['images-file']['error'] ) {
348
  } elseif ( ! is_uploaded_file( $_FILES['images-file']['tmp_name'] ) ) {
349
+ wpbdp_admin_message( _x( 'There was an error uploading the images ZIP file.', 'admin csv-import', 'business-directory-plugin' ), 'error' );
350
  return $this->import_settings();
351
  }
352
 
370
  $import->cleanup();
371
  }
372
 
373
+ $error = _x( 'An error was detected while validating the CSV file for import. Please fix this before proceeding.', 'admin csv-import', 'business-directory-plugin' );
374
  $error .= '<br />';
375
  $error .= '<b>' . $e->getMessage() . '</b>';
376
 
379
  }
380
 
381
  if ( $import->in_test_mode() ) {
382
+ wpbdp_admin_message( _x( 'Import is in "test mode". Nothing will be inserted into the database.', 'admin csv-import', 'business-directory-plugin' ) );
383
  }
384
 
385
  echo wpbdp_render_page(
includes/admin/fees.php CHANGED
@@ -42,11 +42,11 @@ class WPBDP__Admin__Fees extends WPBDP__Admin__Controller {
42
  $table->prepare_items();
43
 
44
  $order_options = array();
45
- foreach ( array( 'label' => _x( 'Label', 'fees order', 'WPBDM' ),
46
- 'amount' => _x( 'Amount', 'fees order', 'WPBDM' ),
47
- 'days' => _x( 'Duration', 'fees order', 'WPBDM' ),
48
- 'images' => _x( 'Images', 'fees order', 'WPBDM' ),
49
- 'custom' => _x( 'Custom Order', 'fees order', 'WPBDM' ) ) as $k => $l ) {
50
  $order_options[ $k ] = $l;
51
  }
52
 
@@ -96,9 +96,9 @@ class WPBDP__Admin__Fees extends WPBDP__Admin__Controller {
96
 
97
  if ( ! is_wp_error( $result ) ) {
98
  if ( 'insert' == $mode ) {
99
- wpbdp_admin_message( _x( 'Fee plan added.', 'fees admin', 'WPBDM' ) );
100
  } else {
101
- wpbdp_admin_message( _x( 'Fee plan updated.', 'fees admin', 'WPBDM' ) );
102
  }
103
 
104
  return $this->_redirect( 'index' );
@@ -120,7 +120,7 @@ class WPBDP__Admin__Fees extends WPBDP__Admin__Controller {
120
  ) );
121
 
122
  if ( $do && $fee->delete() ) {
123
- wpbdp_admin_message( sprintf( _x( 'Fee "%s" deleted.', 'fees admin', 'WPBDM' ), $fee->label ) );
124
  return $this->_redirect( 'index' );
125
  }
126
 
@@ -132,7 +132,7 @@ class WPBDP__Admin__Fees extends WPBDP__Admin__Controller {
132
  $fee->enabled = ! $fee->enabled;
133
  $fee->save();
134
 
135
- wpbdp_admin_message( _x( 'Fee disabled.', 'fees admin', 'WPBDM' ) );
136
  return $this->_redirect( 'index' );
137
  }
138
 
42
  $table->prepare_items();
43
 
44
  $order_options = array();
45
+ foreach ( array( 'label' => _x( 'Label', 'fees order', 'business-directory-plugin' ),
46
+ 'amount' => _x( 'Amount', 'fees order', 'business-directory-plugin' ),
47
+ 'days' => _x( 'Duration', 'fees order', 'business-directory-plugin' ),
48
+ 'images' => _x( 'Images', 'fees order', 'business-directory-plugin' ),
49
+ 'custom' => _x( 'Custom Order', 'fees order', 'business-directory-plugin' ) ) as $k => $l ) {
50
  $order_options[ $k ] = $l;
51
  }
52
 
96
 
97
  if ( ! is_wp_error( $result ) ) {
98
  if ( 'insert' == $mode ) {
99
+ wpbdp_admin_message( _x( 'Fee plan added.', 'fees admin', 'business-directory-plugin' ) );
100
  } else {
101
+ wpbdp_admin_message( _x( 'Fee plan updated.', 'fees admin', 'business-directory-plugin' ) );
102
  }
103
 
104
  return $this->_redirect( 'index' );
120
  ) );
121
 
122
  if ( $do && $fee->delete() ) {
123
+ wpbdp_admin_message( sprintf( _x( 'Fee "%s" deleted.', 'fees admin', 'business-directory-plugin' ), $fee->label ) );
124
  return $this->_redirect( 'index' );
125
  }
126
 
132
  $fee->enabled = ! $fee->enabled;
133
  $fee->save();
134
 
135
+ wpbdp_admin_message( _x( 'Fee disabled.', 'fees admin', 'business-directory-plugin' ) );
136
  return $this->_redirect( 'index' );
137
  }
138
 
includes/admin/form-fields.php CHANGED
@@ -21,8 +21,8 @@ class WPBDP_FormFieldsTable extends WP_List_Table {
21
  public function __construct() {
22
  parent::__construct(
23
  array(
24
- 'singular' => _x( 'form field', 'form-fields admin', 'WPBDM' ),
25
- 'plural' => _x( 'form fields', 'form-fields admin', 'WPBDM' ),
26
  'ajax' => false,
27
  )
28
  );
@@ -30,11 +30,11 @@ class WPBDP_FormFieldsTable extends WP_List_Table {
30
 
31
  public function get_columns() {
32
  return array(
33
- 'order' => _x( 'Order', 'form-fields admin', 'WPBDM' ),
34
- 'label' => _x( 'Label / Association', 'form-fields admin', 'WPBDM' ),
35
- 'type' => _x( 'Type', 'form-fields admin', 'WPBDM' ),
36
- 'validator' => _x( 'Validator', 'form-fields admin', 'WPBDM' ),
37
- 'tags' => _x( 'Field Attributes', 'form-fields admin', 'WPBDM' ),
38
  );
39
  }
40
 
@@ -81,7 +81,7 @@ class WPBDP_FormFieldsTable extends WP_List_Table {
81
  )
82
  )
83
  ),
84
- _x( 'Edit', 'form-fields admin', 'WPBDM' )
85
  );
86
 
87
  if ( ! $field->has_behavior_flag( 'no-delete' ) ) {
@@ -95,7 +95,7 @@ class WPBDP_FormFieldsTable extends WP_List_Table {
95
  )
96
  )
97
  ),
98
- _x( 'Delete', 'form-fields admin', 'WPBDM' )
99
  );
100
  }
101
 
@@ -115,12 +115,12 @@ class WPBDP_FormFieldsTable extends WP_List_Table {
115
  );
116
  $html .= '<br/>';
117
  $html .= sprintf( '%s: %d',
118
- _x( 'ID', 'form-fields admin', 'WPBDM' ),
119
  $field->get_id()
120
  );
121
  $html .= '<br/>';
122
  $html .= sprintf( '%s: %s',
123
- _x( 'Shortname', 'form-fields admin', 'WPBDM' ),
124
  $field->get_shortname()
125
  );
126
  $html .= $this->row_actions( $actions );
@@ -142,30 +142,30 @@ class WPBDP_FormFieldsTable extends WP_List_Table {
142
  $html .= sprintf(
143
  '<span class="tag %s">%s</span>',
144
  $field->is_required() ? 'required' : 'optional',
145
- $field->is_required() ? _x( 'Required', 'form-fields admin', 'WPBDM' ) : _x( 'Optional', 'form-fields admin', 'WPBDM' )
146
  );
147
 
148
  if ( $field->has_display_flag( 'private' ) ) {
149
  $html .= sprintf(
150
  '<span class="tag %s">%s</span>',
151
  'private',
152
- _x( 'Private', 'form-fields admin', 'WPBDM' )
153
  );
154
  }
155
 
156
  if ( $field->display_in( 'excerpt' ) ) {
157
  $html .= sprintf(
158
  '<span class="tag in-excerpt" title="%s">%s</span>',
159
- _x( 'This field value is shown in the excerpt view of a listing.', 'form-fields admin', 'WPBDM' ),
160
- _x( 'In Excerpt', 'form-fields admin', 'WPBDM' )
161
  );
162
  }
163
 
164
  if ( $field->display_in( 'listing' ) ) {
165
  $html .= sprintf(
166
  '<span class="tag in-listing" title="%s">%s</span>',
167
- _x( 'This field value is shown in the single view of a listing.', 'form-fields admin', 'WPBDM' ),
168
- _x( 'In Listing', 'form-fields admin', 'WPBDM' )
169
  );
170
  }
171
 
@@ -200,23 +200,23 @@ class WPBDP_FormFieldsAdmin {
200
 
201
  if ( $missing = $wpbdp->formfields->get_missing_required_fields() ) {
202
  if ( count( $missing ) > 1 ) {
203
- $message = sprintf( _x( '<b>Business Directory Plugin</b> requires fields with the following associations in order to work correctly: <b>%s</b>.', 'admin', 'WPBDM' ), join( ', ', $missing ) );
204
  } else {
205
- $message = sprintf( _x( '<b>Business Directory Plugin</b> requires a field with a <b>%s</b> association in order to work correctly.', 'admin', 'WPBDM' ), array_pop( $missing ) );
206
  }
207
 
208
  $message .= '<br />';
209
- $message .= _x( 'You can create these custom fields by yourself inside "Manage Form Fields" or let Business Directory do this for you automatically.', 'admin', 'WPBDM' );
210
  $message .= '<br /><br />';
211
  $message .= sprintf(
212
  '<a href="%s">%s</a> | ',
213
  admin_url( 'admin.php?page=wpbdp_admin_formfields' ),
214
- _x( 'Go to "Manage Form Fields"', 'admin', 'WPBDM' )
215
  );
216
  $message .= sprintf(
217
  '<a href="%s">%s</a>',
218
  admin_url( 'admin.php?page=wpbdp_admin_formfields&action=createrequired' ),
219
- _x( 'Create these required fields for me', 'admin', 'WPBDM' )
220
  );
221
 
222
  $this->messages[] = array( $message, 'error' );
@@ -299,11 +299,11 @@ class WPBDP_FormFieldsAdmin {
299
 
300
  $html = '';
301
  $html .= wpbdp_admin_header(
302
- _x( 'Form Preview', 'form-fields admin', 'WPBDM' ),
303
  'formfields-preview',
304
  array(
305
  array(
306
- _x( '← Return to "Manage Form Fields"', 'form-fields admin', 'WPBDM' ),
307
  esc_url( remove_query_arg( 'action' ) )
308
  ),
309
  )
@@ -345,7 +345,7 @@ class WPBDP_FormFieldsAdmin {
345
  $res = $field->save();
346
 
347
  if ( ! is_wp_error( $res ) ) {
348
- $this->admin->messages[] = _x( 'Form fields updated.', 'form-fields admin', 'WPBDM' );
349
  return $this->fieldsTable();
350
  } else {
351
  $errmsg = '';
@@ -365,7 +365,7 @@ class WPBDP_FormFieldsAdmin {
365
  $msg = _x(
366
  '<b>Important</b>: Since the "<a>Display email address fields publicly?</a>" setting is disabled, display settings below will not be honored and this field will not be displayed on the frontend. If you want e-mail addresses to show on the frontend, you can <a>enable public display of e-mails</a>.',
367
  'form-fields admin',
368
- 'WPBDM'
369
  );
370
  $msg = str_replace(
371
  '<a>',
@@ -404,7 +404,7 @@ class WPBDP_FormFieldsAdmin {
404
  if ( is_wp_error( $ret ) ) {
405
  $this->admin->messages[] = array( $ret->get_error_message(), 'error' );
406
  } else {
407
- $this->admin->messages[] = _x( 'Field deleted.', 'form-fields admin', 'WPBDM' );
408
 
409
  $quick_search_fields = wpbdp_get_option( 'quick-search-fields' );
410
  $quick_search_fields = array_diff( $quick_search_fields, array( $_REQUEST['id'] ) );
@@ -427,7 +427,7 @@ class WPBDP_FormFieldsAdmin {
427
 
428
  if ( $missing = $wpbdp->formfields->get_missing_required_fields() ) {
429
  $wpbdp->formfields->create_default_fields( $missing );
430
- $this->admin->messages[] = _x( 'Required fields created successfully.', 'form-fields admin', 'WPBDM' );
431
  }
432
 
433
  return $this->fieldsTable();
@@ -440,22 +440,22 @@ class WPBDP_FormFieldsAdmin {
440
  $wpbdp->formfields->maybe_correct_tags();
441
 
442
  $special_tags = array(
443
- 'title' => _x( 'Title', 'form-fields admin', 'WPBDM' ),
444
- 'category' => _x( 'Category', 'form-fields admin', 'WPBDM' ),
445
- 'excerpt' => _x( 'Excerpt', 'form-fields admin', 'WPBDM' ),
446
- 'content' => _x( 'Content', 'form-fields admin', 'WPBDM' ),
447
- 'tags' => _x( 'Tags', 'form-fields admin', 'WPBDM' ),
448
- 'address' => _x( 'Address', 'form-fields admin', 'WPBDM' ),
449
- 'address2' => _x( 'Address 2', 'form-fields admin', 'WPBDM' ),
450
- 'city' => _x( 'City', 'form-fields admin', 'WPBDM' ),
451
- 'state' => _x( 'State', 'form-fields admin', 'WPBDM' ),
452
- 'country' => _x( 'Country', 'form-fields admin', 'WPBDM' ),
453
- 'zip' => _x( 'ZIP Code', 'form-fields admin', 'WPBDM' ),
454
- 'fax' => _x( 'FAX Number', 'form-fields admin', 'WPBDM' ),
455
- 'phone' => _x( 'Phone Number', 'form-fields admin', 'WPBDM' ),
456
- 'ratings' => _x( 'Ratings Field', 'form-fields admin', 'WPBDM' ),
457
- 'twitter' => _x( 'Twitter', 'form-fields admin', 'WPBDM' ),
458
- 'website' => _x( 'Website', 'form-fields admin', 'WPBDM' ),
459
  );
460
  $fixed_tags = array( 'title', 'category', 'excerpt', 'content', 'tags', 'ratings' );
461
  $field_tags = array();
@@ -485,7 +485,7 @@ class WPBDP_FormFieldsAdmin {
485
  );
486
  }
487
 
488
- wpbdp_admin_message( _x( 'Tags updated.', 'form-fields admin', 'WPBDM' ) );
489
  }
490
 
491
  $missing_fields = $wpbdp->themes->missing_suggested_fields( 'label' );
21
  public function __construct() {
22
  parent::__construct(
23
  array(
24
+ 'singular' => _x( 'form field', 'form-fields admin', 'business-directory-plugin' ),
25
+ 'plural' => _x( 'form fields', 'form-fields admin', 'business-directory-plugin' ),
26
  'ajax' => false,
27
  )
28
  );
30
 
31
  public function get_columns() {
32
  return array(
33
+ 'order' => _x( 'Order', 'form-fields admin', 'business-directory-plugin' ),
34
+ 'label' => _x( 'Label / Association', 'form-fields admin', 'business-directory-plugin' ),
35
+ 'type' => _x( 'Type', 'form-fields admin', 'business-directory-plugin' ),
36
+ 'validator' => _x( 'Validator', 'form-fields admin', 'business-directory-plugin' ),
37
+ 'tags' => _x( 'Field Attributes', 'form-fields admin', 'business-directory-plugin' ),
38
  );
39
  }
40
 
81
  )
82
  )
83
  ),
84
+ _x( 'Edit', 'form-fields admin', 'business-directory-plugin' )
85
  );
86
 
87
  if ( ! $field->has_behavior_flag( 'no-delete' ) ) {
95
  )
96
  )
97
  ),
98
+ _x( 'Delete', 'form-fields admin', 'business-directory-plugin' )
99
  );
100
  }
101
 
115
  );
116
  $html .= '<br/>';
117
  $html .= sprintf( '%s: %d',
118
+ _x( 'ID', 'form-fields admin', 'business-directory-plugin' ),
119
  $field->get_id()
120
  );
121
  $html .= '<br/>';
122
  $html .= sprintf( '%s: %s',
123
+ _x( 'Shortname', 'form-fields admin', 'business-directory-plugin' ),
124
  $field->get_shortname()
125
  );
126
  $html .= $this->row_actions( $actions );
142
  $html .= sprintf(
143
  '<span class="tag %s">%s</span>',
144
  $field->is_required() ? 'required' : 'optional',
145
+ $field->is_required() ? _x( 'Required', 'form-fields admin', 'business-directory-plugin' ) : _x( 'Optional', 'form-fields admin', 'business-directory-plugin' )
146
  );
147
 
148
  if ( $field->has_display_flag( 'private' ) ) {
149
  $html .= sprintf(
150
  '<span class="tag %s">%s</span>',
151
  'private',
152
+ _x( 'Private', 'form-fields admin', 'business-directory-plugin' )
153
  );
154
  }
155
 
156
  if ( $field->display_in( 'excerpt' ) ) {
157
  $html .= sprintf(
158
  '<span class="tag in-excerpt" title="%s">%s</span>',
159
+ _x( 'This field value is shown in the excerpt view of a listing.', 'form-fields admin', 'business-directory-plugin' ),
160
+ _x( 'In Excerpt', 'form-fields admin', 'business-directory-plugin' )
161
  );
162
  }
163
 
164
  if ( $field->display_in( 'listing' ) ) {
165
  $html .= sprintf(
166
  '<span class="tag in-listing" title="%s">%s</span>',
167
+ _x( 'This field value is shown in the single view of a listing.', 'form-fields admin', 'business-directory-plugin' ),
168
+ _x( 'In Listing', 'form-fields admin', 'business-directory-plugin' )
169
  );
170
  }
171
 
200
 
201
  if ( $missing = $wpbdp->formfields->get_missing_required_fields() ) {
202
  if ( count( $missing ) > 1 ) {
203
+ $message = sprintf( _x( '<b>Business Directory Plugin</b> requires fields with the following associations in order to work correctly: <b>%s</b>.', 'admin', 'business-directory-plugin' ), join( ', ', $missing ) );
204
  } else {
205
+ $message = sprintf( _x( '<b>Business Directory Plugin</b> requires a field with a <b>%s</b> association in order to work correctly.', 'admin', 'business-directory-plugin' ), array_pop( $missing ) );
206
  }
207
 
208
  $message .= '<br />';
209
+ $message .= _x( 'You can create these custom fields by yourself inside "Manage Form Fields" or let Business Directory do this for you automatically.', 'admin', 'business-directory-plugin' );
210
  $message .= '<br /><br />';
211
  $message .= sprintf(
212
  '<a href="%s">%s</a> | ',
213
  admin_url( 'admin.php?page=wpbdp_admin_formfields' ),
214
+ _x( 'Go to "Manage Form Fields"', 'admin', 'business-directory-plugin' )
215
  );
216
  $message .= sprintf(
217
  '<a href="%s">%s</a>',
218
  admin_url( 'admin.php?page=wpbdp_admin_formfields&action=createrequired' ),
219
+ _x( 'Create these required fields for me', 'admin', 'business-directory-plugin' )
220
  );
221
 
222
  $this->messages[] = array( $message, 'error' );
299
 
300
  $html = '';
301
  $html .= wpbdp_admin_header(
302
+ _x( 'Form Preview', 'form-fields admin', 'business-directory-plugin' ),
303
  'formfields-preview',
304
  array(
305
  array(
306
+ _x( '← Return to "Manage Form Fields"', 'form-fields admin', 'business-directory-plugin' ),
307
  esc_url( remove_query_arg( 'action' ) )
308
  ),
309
  )
345
  $res = $field->save();
346
 
347
  if ( ! is_wp_error( $res ) ) {
348
+ $this->admin->messages[] = _x( 'Form fields updated.', 'form-fields admin', 'business-directory-plugin' );
349
  return $this->fieldsTable();
350
  } else {
351
  $errmsg = '';
365
  $msg = _x(
366
  '<b>Important</b>: Since the "<a>Display email address fields publicly?</a>" setting is disabled, display settings below will not be honored and this field will not be displayed on the frontend. If you want e-mail addresses to show on the frontend, you can <a>enable public display of e-mails</a>.',
367
  'form-fields admin',
368
+ 'business-directory-plugin'
369
  );
370
  $msg = str_replace(
371
  '<a>',
404
  if ( is_wp_error( $ret ) ) {
405
  $this->admin->messages[] = array( $ret->get_error_message(), 'error' );
406
  } else {
407
+ $this->admin->messages[] = _x( 'Field deleted.', 'form-fields admin', 'business-directory-plugin' );
408
 
409
  $quick_search_fields = wpbdp_get_option( 'quick-search-fields' );
410
  $quick_search_fields = array_diff( $quick_search_fields, array( $_REQUEST['id'] ) );
427
 
428
  if ( $missing = $wpbdp->formfields->get_missing_required_fields() ) {
429
  $wpbdp->formfields->create_default_fields( $missing );
430
+ $this->admin->messages[] = _x( 'Required fields created successfully.', 'form-fields admin', 'business-directory-plugin' );
431
  }
432
 
433
  return $this->fieldsTable();
440
  $wpbdp->formfields->maybe_correct_tags();
441
 
442
  $special_tags = array(
443
+ 'title' => _x( 'Title', 'form-fields admin', 'business-directory-plugin' ),
444
+ 'category' => _x( 'Category', 'form-fields admin', 'business-directory-plugin' ),
445
+ 'excerpt' => _x( 'Excerpt', 'form-fields admin', 'business-directory-plugin' ),
446
+ 'content' => _x( 'Content', 'form-fields admin', 'business-directory-plugin' ),
447
+ 'tags' => _x( 'Tags', 'form-fields admin', 'business-directory-plugin' ),
448
+ 'address' => _x( 'Address', 'form-fields admin', 'business-directory-plugin' ),
449
+ 'address2' => _x( 'Address 2', 'form-fields admin', 'business-directory-plugin' ),
450
+ 'city' => _x( 'City', 'form-fields admin', 'business-directory-plugin' ),
451
+ 'state' => _x( 'State', 'form-fields admin', 'business-directory-plugin' ),
452
+ 'country' => _x( 'Country', 'form-fields admin', 'business-directory-plugin' ),
453
+ 'zip' => _x( 'ZIP Code', 'form-fields admin', 'business-directory-plugin' ),
454
+ 'fax' => _x( 'FAX Number', 'form-fields admin', 'business-directory-plugin' ),
455
+ 'phone' => _x( 'Phone Number', 'form-fields admin', 'business-directory-plugin' ),
456
+ 'ratings' => _x( 'Ratings Field', 'form-fields admin', 'business-directory-plugin' ),
457
+ 'twitter' => _x( 'Twitter', 'form-fields admin', 'business-directory-plugin' ),
458
+ 'website' => _x( 'Website', 'form-fields admin', 'business-directory-plugin' ),
459
  );
460
  $fixed_tags = array( 'title', 'category', 'excerpt', 'content', 'tags', 'ratings' );
461
  $field_tags = array();
485
  );
486
  }
487
 
488
+ wpbdp_admin_message( _x( 'Tags updated.', 'form-fields admin', 'business-directory-plugin' ) );
489
  }
490
 
491
  $missing_fields = $wpbdp->themes->missing_suggested_fields( 'label' );
includes/admin/helpers/class-fees-table.php CHANGED
@@ -21,8 +21,8 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
21
  public function __construct() {
22
  parent::__construct(
23
  array(
24
- 'singular' => _x( 'fee', 'fees admin', 'WPBDM' ),
25
- 'plural' => _x( 'fees', 'fees admin', 'WPBDM' ),
26
  'ajax' => false,
27
  )
28
  );
@@ -33,20 +33,20 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
33
  echo str_replace(
34
  '<a>',
35
  '<a href="' . admin_url( 'admin.php?page=wpbdp-admin-fees&wpbdp-view=add-fee' ) . '">',
36
- _x( 'There are no fees right now. You can <a>create one</a>, if you want.', 'fees admin', 'WPBDM' )
37
  );
38
  return;
39
  }
40
 
41
  switch ( $this->get_current_view() ) {
42
  case 'active':
43
- $view_name = _x( 'Active', 'fees admin', 'WPBDM' );
44
  break;
45
  case 'unavailable':
46
- $view_name = _x( 'Not Available', 'fees admin', 'WPBDM' );
47
  break;
48
  case 'disabled':
49
- $view_name = _x( 'Disabled', 'fees admin', 'WPBDM' );
50
  break;
51
  default:
52
  $view_name = '';
@@ -56,7 +56,7 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
56
  str_replace(
57
  '<a>',
58
  '<a href="' . admin_url( 'admin.php?page=wpbdp-admin-fees&wpbdp-view=add-fee' ) . '">',
59
- _x( 'There are no "%s" fees right now. You can <a>create one</a>, if you want.', 'fees admin', 'WPBDM' )
60
  ),
61
  $view_name
62
  );
@@ -79,7 +79,7 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
79
  '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
80
  esc_url( add_query_arg( 'fee_status', 'all' ) ),
81
  'all' === $this->get_current_view() ? 'current' : '',
82
- _x( 'All', 'admin fees table', 'WPBDM' ),
83
  number_format_i18n( $all )
84
  );
85
 
@@ -93,7 +93,7 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
93
  '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
94
  esc_url( add_query_arg( 'fee_status', 'active' ) ),
95
  'active' === $this->get_current_view() ? 'current' : '',
96
- _x( 'Active', 'admin fees table', 'WPBDM' ),
97
  number_format_i18n( $active )
98
  );
99
 
@@ -103,7 +103,7 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
103
  '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
104
  esc_url( add_query_arg( 'fee_status', 'unavailable' ) ),
105
  'unavailable' === $this->get_current_view() ? 'current' : '',
106
- _x( 'Not Available', 'admin fees table', 'WPBDM' ),
107
  number_format_i18n( $unavailable )
108
  );
109
 
@@ -111,7 +111,7 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
111
  '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
112
  esc_url( add_query_arg( 'fee_status', 'disabled' ) ),
113
  'disabled' === $this->get_current_view() ? 'current' : '',
114
- _x( 'Disabled', 'admin fees table', 'WPBDM' ),
115
  number_format_i18n( $disabled )
116
  );
117
 
@@ -120,11 +120,11 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
120
 
121
  public function get_columns() {
122
  $cols = array(
123
- 'label' => _x( 'Label', 'fees admin', 'WPBDM' ),
124
- 'amount' => _x( 'Amount', 'fees admin', 'WPBDM' ),
125
- 'duration' => _x( 'Duration', 'fees admin', 'WPBDM' ),
126
- 'images' => _x( 'Images', 'fees admin', 'WPBDM' ),
127
- 'attributes' => _x( 'Attributes', 'fees admin', 'WPBDM' ),
128
  );
129
 
130
  return $cols;
@@ -190,7 +190,7 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
190
  _ex(
191
  'This is the default free plan for your directory. You can\'t delete it and it\'s always free, but you can edit the name and other settings. It\'s only available when the directory is in Free mode. You can always create other fee plans, including ones for 0.00 (free) if you wish.',
192
  'fees admin',
193
- 'WPBDM'
194
  );
195
  echo '</div>';
196
  echo '</td>';
@@ -202,7 +202,7 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
202
  // echo '<tr class="wpbdp-item-message-tr">';
203
  // echo '<td colspan="' . count( $this->get_columns() ) . '">';
204
  // echo '<div>';
205
- // _ex( 'Fee plan disabled because directory is in free mode.', 'fees admin', 'WPBDM' );
206
  // echo '</div>';
207
  // echo '</td>';
208
  // echo '</tr>';
@@ -244,13 +244,13 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
244
  )
245
  )
246
  ),
247
- _x( 'Edit', 'fees admin', 'WPBDM' )
248
  );
249
 
250
  if ( 'free' === $fee->tag ) {
251
  // $actions['delete'] = sprintf('<a href="%s">%s</a>',
252
  // esc_url(add_query_arg(array('action' => 'deletefee', 'id' => $fee->id))),
253
- // _x('Disable', 'fees admin', 'WPBDM'));
254
  } else {
255
  if ( $fee->enabled ) {
256
  $actions['disable'] = sprintf(
@@ -263,7 +263,7 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
263
  )
264
  )
265
  ),
266
- _x( 'Disable', 'fees admin', 'WPBDM' )
267
  );
268
  } else {
269
  $actions['enable'] = sprintf(
@@ -276,7 +276,7 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
276
  )
277
  )
278
  ),
279
- _x( 'Enable', 'fees admin', 'WPBDM' )
280
  );
281
  }
282
 
@@ -290,7 +290,7 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
290
  )
291
  )
292
  ),
293
- _x( 'Delete', 'fees admin', 'WPBDM' )
294
  );
295
  }
296
 
@@ -300,7 +300,7 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
300
  $fee->id
301
  );
302
 
303
- $fee_id_string = _x( '<strong>Fee ID:</strong> <fee-id>', 'fees admin', 'WPBDM' );
304
  $fee_id_string = str_replace( '<fee-id>', $fee->id, $fee_id_string );
305
 
306
  $html .= sprintf(
@@ -323,12 +323,12 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
323
 
324
  public function column_amount( $fee ) {
325
  if ( 'variable' === $fee->pricing_model ) {
326
- return _x( 'Variable', 'fees admin', 'WPBDM' );
327
  } elseif ( 'extra' === $fee->pricing_model ) {
328
  $amount = wpbdp_currency_format( $fee->amount );
329
  $extra = wpbdp_currency_format( $fee->pricing_details['extra'] );
330
 
331
- return sprintf( _x( '%1$s + %2$s per category', 'fees admin', 'WPBDM' ), $amount, $extra );
332
  }
333
 
334
  return wpbdp_currency_format( $fee->amount );
@@ -336,18 +336,18 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
336
 
337
  public function column_duration( $fee ) {
338
  if ( $fee->days === 0 ) {
339
- return _x( 'Forever', 'fees admin', 'WPBDM' );
340
  }
341
- return sprintf( _nx( '%d day', '%d days', $fee->days, 'fees admin', 'WPBDM' ), $fee->days );
342
  }
343
 
344
  public function column_images( $fee ) {
345
- return sprintf( _nx( '%d image', '%d images', $fee->images, 'fees admin', 'WPBDM' ), $fee->images );
346
  }
347
 
348
  public function column_categories( $fee ) {
349
  if ( $fee->categories['all'] ) {
350
- return _x( 'All categories', 'fees admin', 'WPBDM' );
351
  }
352
 
353
  $names = array();
@@ -369,26 +369,26 @@ class WPBDP__Admin__Fees_Table extends WP_List_Table {
369
  $html .= '<span class="wpbdp-tag">';
370
 
371
  if ( ! $fee->enabled ) {
372
- $html .= _x( 'Disabled', 'fees admin', 'WPBDM' );
373
  } elseif ( ( ! wpbdp_payments_possible() && 'free' !== $fee->tag ) || ( wpbdp_payments_possible() && 'free' === $fee->tag ) ) {
374
- $html .= _x( 'Unavailable', 'fees admin', 'WPBDM' );
375
  } else {
376
- $html .= _x( 'Active', 'fees admin', 'WPBDM' );
377
  }
378
 
379
  $html .= '</span>';
380
  }
381
 
382
  if ( $fee->sticky ) {
383
- $html .= '<span class="wpbdp-tag">' . _x( 'Sticky', 'fees admin', 'WPBDM' ) . '</span>';
384
  }
385
 
386
  if ( $fee->recurring ) {
387
- $html .= '<span class="wpbdp-tag">' . _x( 'Recurring', 'fees admin', 'WPBDM' ) . '</span>';
388
  }
389
 
390
  if ( ! empty( $fee->extra_data['private'] ) ) {
391
- $html .= '<span class="wpbdp-tag">' . _x( 'Private', 'fees admin', 'WPBDM' ) . '</span>';
392
  }
393
 
394
  return $html;
21
  public function __construct() {
22
  parent::__construct(
23
  array(
24
+ 'singular' => _x( 'fee', 'fees admin', 'business-directory-plugin' ),
25
+ 'plural' => _x( 'fees', 'fees admin', 'business-directory-plugin' ),
26
  'ajax' => false,
27
  )
28
  );
33
  echo str_replace(
34
  '<a>',
35
  '<a href="' . admin_url( 'admin.php?page=wpbdp-admin-fees&wpbdp-view=add-fee' ) . '">',
36
+ _x( 'There are no fees right now. You can <a>create one</a>, if you want.', 'fees admin', 'business-directory-plugin' )
37
  );
38
  return;
39
  }
40
 
41
  switch ( $this->get_current_view() ) {
42
  case 'active':
43
+ $view_name = _x( 'Active', 'fees admin', 'business-directory-plugin' );
44
  break;
45
  case 'unavailable':
46
+ $view_name = _x( 'Not Available', 'fees admin', 'business-directory-plugin' );
47
  break;
48
  case 'disabled':
49
+ $view_name = _x( 'Disabled', 'fees admin', 'business-directory-plugin' );
50
  break;
51
  default:
52
  $view_name = '';
56
  str_replace(
57
  '<a>',
58
  '<a href="' . admin_url( 'admin.php?page=wpbdp-admin-fees&wpbdp-view=add-fee' ) . '">',
59
+ _x( 'There are no "%s" fees right now. You can <a>create one</a>, if you want.', 'fees admin', 'business-directory-plugin' )
60
  ),
61
  $view_name
62
  );
79
  '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
80
  esc_url( add_query_arg( 'fee_status', 'all' ) ),
81
  'all' === $this->get_current_view() ? 'current' : '',
82
+ _x( 'All', 'admin fees table', 'business-directory-plugin' ),
83
  number_format_i18n( $all )
84
  );
85
 
93
  '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
94
  esc_url( add_query_arg( 'fee_status', 'active' ) ),
95
  'active' === $this->get_current_view() ? 'current' : '',
96
+ _x( 'Active', 'admin fees table', 'business-directory-plugin' ),
97
  number_format_i18n( $active )
98
  );
99
 
103
  '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
104
  esc_url( add_query_arg( 'fee_status', 'unavailable' ) ),
105
  'unavailable' === $this->get_current_view() ? 'current' : '',
106
+ _x( 'Not Available', 'admin fees table', 'business-directory-plugin' ),
107
  number_format_i18n( $unavailable )
108
  );
109
 
111
  '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
112
  esc_url( add_query_arg( 'fee_status', 'disabled' ) ),
113
  'disabled' === $this->get_current_view() ? 'current' : '',
114
+ _x( 'Disabled', 'admin fees table', 'business-directory-plugin' ),
115
  number_format_i18n( $disabled )
116
  );
117
 
120
 
121
  public function get_columns() {
122
  $cols = array(
123
+ 'label' => _x( 'Label', 'fees admin', 'business-directory-plugin' ),
124
+ 'amount' => _x( 'Amount', 'fees admin', 'business-directory-plugin' ),
125
+ 'duration' => _x( 'Duration', 'fees admin', 'business-directory-plugin' ),
126
+ 'images' => _x( 'Images', 'fees admin', 'business-directory-plugin' ),
127
+ 'attributes' => _x( 'Attributes', 'fees admin', 'business-directory-plugin' ),
128
  );
129
 
130
  return $cols;
190
  _ex(
191
  'This is the default free plan for your directory. You can\'t delete it and it\'s always free, but you can edit the name and other settings. It\'s only available when the directory is in Free mode. You can always create other fee plans, including ones for 0.00 (free) if you wish.',
192
  'fees admin',
193
+ 'business-directory-plugin'
194
  );
195
  echo '</div>';
196
  echo '</td>';
202
  // echo '<tr class="wpbdp-item-message-tr">';
203
  // echo '<td colspan="' . count( $this->get_columns() ) . '">';
204
  // echo '<div>';
205
+ // _ex( 'Fee plan disabled because directory is in free mode.', 'fees admin', 'business-directory-plugin' );
206
  // echo '</div>';
207
  // echo '</td>';
208
  // echo '</tr>';
244
  )
245
  )
246
  ),
247
+ _x( 'Edit', 'fees admin', 'business-directory-plugin' )
248
  );
249
 
250
  if ( 'free' === $fee->tag ) {
251
  // $actions['delete'] = sprintf('<a href="%s">%s</a>',
252
  // esc_url(add_query_arg(array('action' => 'deletefee', 'id' => $fee->id))),
253
+ // _x('Disable', 'fees admin', 'business-directory-plugin' ));
254
  } else {
255
  if ( $fee->enabled ) {
256
  $actions['disable'] = sprintf(
263
  )
264
  )
265
  ),
266
+ _x( 'Disable', 'fees admin', 'business-directory-plugin' )
267
  );
268
  } else {
269
  $actions['enable'] = sprintf(
276
  )
277
  )
278
  ),
279
+ _x( 'Enable', 'fees admin', 'business-directory-plugin' )
280
  );
281
  }
282
 
290
  )
291
  )
292
  ),
293
+ _x( 'Delete', 'fees admin', 'business-directory-plugin' )
294
  );
295
  }
296
 
300
  $fee->id
301
  );
302
 
303
+ $fee_id_string = _x( '<strong>Fee ID:</strong> <fee-id>', 'fees admin', 'business-directory-plugin' );
304
  $fee_id_string = str_replace( '<fee-id>', $fee->id, $fee_id_string );
305
 
306
  $html .= sprintf(
323
 
324
  public function column_amount( $fee ) {
325
  if ( 'variable' === $fee->pricing_model ) {
326
+ return _x( 'Variable', 'fees admin', 'business-directory-plugin' );
327
  } elseif ( 'extra' === $fee->pricing_model ) {
328
  $amount = wpbdp_currency_format( $fee->amount );
329
  $extra = wpbdp_currency_format( $fee->pricing_details['extra'] );
330
 
331
+ return sprintf( _x( '%1$s + %2$s per category', 'fees admin', 'business-directory-plugin' ), $amount, $extra );
332
  }
333
 
334
  return wpbdp_currency_format( $fee->amount );
336
 
337
  public function column_duration( $fee ) {
338
  if ( $fee->days === 0 ) {
339
+ return _x( 'Forever', 'fees admin', 'business-directory-plugin' );
340
  }
341
+ return sprintf( _nx( '%d day', '%d days', $fee->days, 'fees admin', 'business-directory-plugin' ), $fee->days );
342
  }
343
 
344
  public function column_images( $fee ) {
345
+ return sprintf( _nx( '%d image', '%d images', $fee->images, 'fees admin', 'business-directory-plugin' ), $fee->images );
346
  }
347
 
348
  public function column_categories( $fee ) {
349
  if ( $fee->categories['all'] ) {
350
+ return _x( 'All categories', 'fees admin', 'business-directory-plugin' );
351
  }
352
 
353
  $names = array();
369
  $html .= '<span class="wpbdp-tag">';
370
 
371
  if ( ! $fee->enabled ) {
372
+ $html .= _x( 'Disabled', 'fees admin', 'business-directory-plugin' );
373
  } elseif ( ( ! wpbdp_payments_possible() && 'free' !== $fee->tag ) || ( wpbdp_payments_possible() && 'free' === $fee->tag ) ) {
374
+ $html .= _x( 'Unavailable', 'fees admin', 'business-directory-plugin' );
375
  } else {
376
+ $html .= _x( 'Active', 'fees admin', 'business-directory-plugin' );
377
  }
378
 
379
  $html .= '</span>';
380
  }
381
 
382
  if ( $fee->sticky ) {
383
+ $html .= '<span class="wpbdp-tag">' . _x( 'Sticky', 'fees admin', 'business-directory-plugin' ) . '</span>';
384
  }
385
 
386
  if ( $fee->recurring ) {
387
+ $html .= '<span class="wpbdp-tag">' . _x( 'Recurring', 'fees admin', 'business-directory-plugin' ) . '</span>';
388
  }
389
 
390
  if ( ! empty( $fee->extra_data['private'] ) ) {
391
+ $html .= '<span class="wpbdp-tag">' . _x( 'Private', 'fees admin', 'business-directory-plugin' ) . '</span>';
392
  }
393
 
394
  return $html;
includes/admin/helpers/class-listing-information-metabox.php CHANGED
@@ -12,15 +12,15 @@ class WPBDP__Admin__Metaboxes__Listing_Information {
12
  $tabs = array();
13
  $tabs[] = array(
14
  'id' => 'plan-info',
15
- 'label' => _x( 'Listing', 'listing metabox', 'WPBDM' ),
16
  'content' => $this->plan_info_tab() );
17
  $tabs[] = array(
18
  'id' => 'payments',
19
- 'label' => _x( 'Recent Payments', 'listing metabox', 'WPBDM' ),
20
  'content' => $this->payments_tab() );
21
  $tabs[] = array(
22
  'id' => 'other',
23
- 'label' => _x( 'Access Key', 'listing metabox', 'WPBDM' ),
24
  'content' => $this->other_tab() );
25
  $tabs = apply_filters( 'wpbdp_listing_metabox_tabs', $tabs, $this->listing );
26
 
12
  $tabs = array();
13
  $tabs[] = array(
14
  'id' => 'plan-info',
15
+ 'label' => _x( 'Listing', 'listing metabox', 'business-directory-plugin' ),
16
  'content' => $this->plan_info_tab() );
17
  $tabs[] = array(
18
  'id' => 'payments',
19
+ 'label' => _x( 'Recent Payments', 'listing metabox', 'business-directory-plugin' ),
20
  'content' => $this->payments_tab() );
21
  $tabs[] = array(
22
  'id' => 'other',
23
+ 'label' => _x( 'Access Key', 'listing metabox', 'business-directory-plugin' ),
24
  'content' => $this->other_tab() );
25
  $tabs = apply_filters( 'wpbdp_listing_metabox_tabs', $tabs, $this->listing );
26
 
includes/admin/helpers/class-listing-timeline.php CHANGED
@@ -83,6 +83,18 @@ class WPBDP__Listing_Timeline {
83
  return false;
84
  }
85
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  // Insert logs for payments.
87
  $payments = WPBDP_Payment::objects()->filter( array( 'listing_id' => $post->ID ) );
88
  foreach ( $payments as $p ) {
@@ -99,17 +111,22 @@ class WPBDP__Listing_Timeline {
99
  }
100
 
101
  private function process_listing_created( $item ) {
102
- $item->html = _x( 'Listing created', 'listing timeline', 'WPBDM' );
103
  return $item;
104
  }
105
 
106
  private function process_listing_expired( $item ) {
107
- $item->html = _x( 'Listing expired', 'listing timeline', 'WPBDM' );
108
  return $item;
109
  }
110
 
111
  private function process_listing_renewal( $item ) {
112
- $item->html = _x( 'Listing renewed', 'listing timeline', 'WPBDM' );
 
 
 
 
 
113
  return $item;
114
  }
115
 
@@ -124,11 +141,11 @@ class WPBDP__Listing_Timeline {
124
 
125
  if ( 'initial' === $payment->payment_type ) {
126
  if ( 'admin-submit' === $payment->context ) {
127
- $title = _x( 'Paid as admin', 'listing timeline', 'WPBDM' );
128
  } elseif ( 'csv-import' === $payment->context ) {
129
- $title = _x( 'Listing imported', 'listing timeline', 'WPBDM' );
130
  } else {
131
- $title = _x( 'Initial Payment', 'listing timeline', 'WPBDM' );
132
  }
133
  }
134
 
83
  return false;
84
  }
85
 
86
+ $tos_acceptance = get_post_meta( $this->listing->get_id(), '_wpbdp_tos_acceptance_date', true );
87
+
88
+ if ( $tos_acceptance ) {
89
+ wpbdp_insert_log(
90
+ array(
91
+ 'log_type' => 'listing.terms_and_conditions_accepted',
92
+ 'object_id' => $post->ID,
93
+ 'created_at' => $tos_acceptance
94
+ )
95
+ );
96
+ }
97
+
98
  // Insert logs for payments.
99
  $payments = WPBDP_Payment::objects()->filter( array( 'listing_id' => $post->ID ) );
100
  foreach ( $payments as $p ) {
111
  }
112
 
113
  private function process_listing_created( $item ) {
114
+ $item->html = _x( 'Listing created', 'listing timeline', 'business-directory-plugin' );
115
  return $item;
116
  }
117
 
118
  private function process_listing_expired( $item ) {
119
+ $item->html = _x( 'Listing expired', 'listing timeline', 'business-directory-plugin' );
120
  return $item;
121
  }
122
 
123
  private function process_listing_renewal( $item ) {
124
+ $item->html = _x( 'Listing renewed', 'listing timeline', 'business-directory-plugin' );
125
+ return $item;
126
+ }
127
+
128
+ private function process_listing_terms_and_conditions_accepted( $item ) {
129
+ $item->html = _x( 'T&C acceptance date', 'listing timeline', 'business-directory-plugin' );
130
  return $item;
131
  }
132
 
141
 
142
  if ( 'initial' === $payment->payment_type ) {
143
  if ( 'admin-submit' === $payment->context ) {
144
+ $title = _x( 'Paid as admin', 'listing timeline', 'business-directory-plugin' );
145
  } elseif ( 'csv-import' === $payment->context ) {
146
+ $title = _x( 'Listing imported', 'listing timeline', 'business-directory-plugin' );
147
  } else {
148
+ $title = _x( 'Initial Payment', 'listing timeline', 'business-directory-plugin' );
149
  }
150
  }
151
 
includes/admin/helpers/class-payments-table.php CHANGED
@@ -9,14 +9,14 @@ class WPBDP__Admin__Payments_Table extends WP_List_Table {
9
 
10
  public function __construct() {
11
  parent::__construct( array(
12
- 'singular' => _x( 'payment', 'payments admin', 'WPBDM' ),
13
- 'plural' => _x( 'payments', 'payments admin', 'WPBDM' ),
14
  'ajax' => false
15
  ) );
16
  }
17
 
18
  public function no_items() {
19
- echo _x( 'No payments found.', 'payments admin', 'WPBDM' );
20
  }
21
 
22
  public function get_current_view() {
@@ -29,7 +29,7 @@ class WPBDP__Admin__Payments_Table extends WP_List_Table {
29
  $views_ = array();
30
 
31
  $count = WPBDP_Payment::objects()->count();
32
- $views_['all'] = array( _x( 'All', 'payments admin', 'WPBDM' ), $count );
33
 
34
  foreach ( WPBDP_Payment::get_stati() as $status => $status_label ) {
35
  $count = WPBDP_Payment::objects()->filter( array( 'status' => $status ) )->count();
@@ -50,12 +50,12 @@ class WPBDP__Admin__Payments_Table extends WP_List_Table {
50
 
51
  public function get_columns() {
52
  $cols = array(
53
- 'listing' => _x( 'Listing', 'fees admin', 'WPBDM' ),
54
- 'payment_id' => _x( 'ID', 'fees admin', 'WPBDM' ),
55
- 'date' => _x( 'Date', 'fees admin', 'WPBDM' ),
56
- 'details' => _x( 'Payment History', 'fees admin', 'WPBDM' ),
57
- 'amount' => _x( 'Amount', 'fees admin', 'WPBDM' ),
58
- 'status' => _x( 'Status', 'fees admin', 'WPBDM' )
59
  );
60
 
61
  return $cols;
@@ -115,7 +115,7 @@ class WPBDP__Admin__Payments_Table extends WP_List_Table {
115
  }
116
 
117
  public function column_details( $payment ) {
118
- return '<a href="' . esc_url( add_query_arg( array( 'wpbdp-view' => 'details', 'payment-id' => $payment->id ) ) ) . '">' . _x( 'View Payment History', 'payments admin', 'WPBDM' ) . '</a>';
119
  }
120
 
121
  public function column_listing( $payment ) {
@@ -131,25 +131,25 @@ class WPBDP__Admin__Payments_Table extends WP_List_Table {
131
  // $actions = array();
132
  // $actions['edit'] = sprintf('<a href="%s">%s</a>',
133
  // esc_url(add_query_arg(array('wpbdp-view' => 'edit-fee', 'id' => $fee->id))),
134
- // _x('Edit', 'fees admin', 'WPBDM'));
135
  //
136
  // if ( 'free' == $fee->tag ) {
137
  // // $actions['delete'] = sprintf('<a href="%s">%s</a>',
138
  // // esc_url(add_query_arg(array('action' => 'deletefee', 'id' => $fee->id))),
139
- // // _x('Disable', 'fees admin', 'WPBDM'));
140
  // } else {
141
  // if ( $fee->enabled )
142
  // $actions['disable'] = sprintf('<a href="%s">%s</a>',
143
  // esc_url(add_query_arg(array('wpbdp-view' => 'toggle-fee', 'id' => $fee->id))),
144
- // _x('Disable', 'fees admin', 'WPBDM'));
145
  // else
146
  // $actions['enable'] = sprintf('<a href="%s">%s</a>',
147
  // esc_url(add_query_arg(array('wpbdp-view' => 'toggle-fee', 'id' => $fee->id))),
148
- // _x('Enable', 'fees admin', 'WPBDM'));
149
  //
150
  // $actions['delete'] = sprintf('<a href="%s">%s</a>',
151
  // esc_url(add_query_arg(array('wpbdp-view' => 'delete-fee', 'id' => $fee->id))),
152
- // _x('Delete', 'fees admin', 'WPBDM'));
153
  // }
154
  //
155
  // $html = '';
9
 
10
  public function __construct() {
11
  parent::__construct( array(
12
+ 'singular' => _x( 'payment', 'payments admin', 'business-directory-plugin' ),
13
+ 'plural' => _x( 'payments', 'payments admin', 'business-directory-plugin' ),
14
  'ajax' => false
15
  ) );
16
  }
17
 
18
  public function no_items() {
19
+ echo _x( 'No payments found.', 'payments admin', 'business-directory-plugin' );
20
  }
21
 
22
  public function get_current_view() {
29
  $views_ = array();
30
 
31
  $count = WPBDP_Payment::objects()->count();
32
+ $views_['all'] = array( _x( 'All', 'payments admin', 'business-directory-plugin' ), $count );
33
 
34
  foreach ( WPBDP_Payment::get_stati() as $status => $status_label ) {
35
  $count = WPBDP_Payment::objects()->filter( array( 'status' => $status ) )->count();
50
 
51
  public function get_columns() {
52
  $cols = array(
53
+ 'listing' => _x( 'Listing', 'fees admin', 'business-directory-plugin' ),
54
+ 'payment_id' => _x( 'ID', 'fees admin', 'business-directory-plugin' ),
55
+ 'date' => _x( 'Date', 'fees admin', 'business-directory-plugin' ),
56
+ 'details' => _x( 'Payment History', 'fees admin', 'business-directory-plugin' ),
57
+ 'amount' => _x( 'Amount', 'fees admin', 'business-directory-plugin' ),
58
+ 'status' => _x( 'Status', 'fees admin', 'business-directory-plugin' )
59
  );
60
 
61
  return $cols;
115
  }
116
 
117
  public function column_details( $payment ) {
118
+ return '<a href="' . esc_url( add_query_arg( array( 'wpbdp-view' => 'details', 'payment-id' => $payment->id ) ) ) . '">' . _x( 'View Payment History', 'payments admin', 'business-directory-plugin' ) . '</a>';
119
  }
120
 
121
  public function column_listing( $payment ) {
131
  // $actions = array();
132
  // $actions['edit'] = sprintf('<a href="%s">%s</a>',
133
  // esc_url(add_query_arg(array('wpbdp-view' => 'edit-fee', 'id' => $fee->id))),
134
+ // _x('Edit', 'fees admin', 'business-directory-plugin' ));
135
  //
136
  // if ( 'free' == $fee->tag ) {
137
  // // $actions['delete'] = sprintf('<a href="%s">%s</a>',
138
  // // esc_url(add_query_arg(array('action' => 'deletefee', 'id' => $fee->id))),
139
+ // // _x('Disable', 'fees admin', 'business-directory-plugin' ));
140
  // } else {
141
  // if ( $fee->enabled )
142
  // $actions['disable'] = sprintf('<a href="%s">%s</a>',
143
  // esc_url(add_query_arg(array('wpbdp-view' => 'toggle-fee', 'id' => $fee->id))),
144
+ // _x('Disable', 'fees admin', 'business-directory-plugin' ));
145
  // else
146
  // $actions['enable'] = sprintf('<a href="%s">%s</a>',
147
  // esc_url(add_query_arg(array('wpbdp-view' => 'toggle-fee', 'id' => $fee->id))),
148
+ // _x('Enable', 'fees admin', 'business-directory-plugin' ));
149
  //
150
  // $actions['delete'] = sprintf('<a href="%s">%s</a>',
151
  // esc_url(add_query_arg(array('wpbdp-view' => 'delete-fee', 'id' => $fee->id))),
152
+ // _x('Delete', 'fees admin', 'business-directory-plugin' ));
153
  // }
154
  //
155
  // $html = '';
includes/admin/page-debug.php CHANGED
@@ -13,7 +13,7 @@ class WPBDP_Admin_Debug_Page {
13
  $debug_info = array();
14
 
15
  // basic BD setup info & tests
16
- $debug_info['basic']['_title'] = _x( 'BD Info', 'debug-info', 'WPBDM' );
17
  $debug_info['basic']['BD version'] = WPBDP_VERSION;
18
  $debug_info['basic']['BD database revision (current)'] = WPBDP_Installer::DB_VERSION;
19
  $debug_info['basic']['BD database revision (installed)'] = get_option( 'wpbdp-db-version' );
@@ -39,8 +39,8 @@ class WPBDP_Admin_Debug_Page {
39
  $missing_tables[] = $t;
40
  }
41
  $debug_info['basic']['Table check'] = $missing_tables
42
- ? sprintf( _( 'Missing tables: %s', 'debug-info', 'WPBDM' ), implode(',', $missing_tables) )
43
- : _x( 'OK', 'debug-info', 'WPBDM' );
44
 
45
  $debug_info['basic']['Main Page'] = sprintf( '%d (%s)', wpbdp_get_page_id( 'main' ), get_post_status( wpbdp_get_page_id( 'main' ) ) );
46
  $debug_info['basic'] = apply_filters( 'wpbdp_debug_info_section', $debug_info['basic'], 'basic' );
@@ -48,7 +48,7 @@ class WPBDP_Admin_Debug_Page {
48
 
49
  // BD options
50
  $blacklisted = array( 'authorize-net-transaction-key', 'authorize-net-login-id', 'googlecheckout-merchant', 'paypal-business-email', 'wpbdp-2checkout-seller', 'recaptcha-public-key', 'recaptcha-private-key' );
51
- $debug_info['options']['_title'] = _x( 'BD Options', 'debug-info', 'WPBDM' );
52
 
53
  $settings_api = wpbdp_settings_api();
54
  $all_settings = $settings_api->get_registered_settings();
@@ -71,7 +71,7 @@ class WPBDP_Admin_Debug_Page {
71
  $debug_info['options'] = apply_filters( 'wpbdp_debug_info_section', $debug_info['options'], 'options' );
72
 
73
  // environment info
74
- $debug_info['environment']['_title'] = _x( 'Environment', 'debug-info', 'WPBDM' );
75
  $debug_info['environment']['WordPress version'] = get_bloginfo( 'version', 'raw' );
76
  $debug_info['environment']['OS'] = php_uname( 's' ) . ' ' . php_uname( 'r' ) . ' ' . php_uname( 'm' );
77
 
@@ -93,7 +93,7 @@ class WPBDP_Admin_Debug_Page {
93
  $debug_info['environment']['cURL version'] = $data['version'];
94
  $debug_info['environment']['cURL SSL library'] = $data['ssl_version'];
95
  $debug_info['environment']['Test SSL setup'] = array( 'exclude' => true,
96
- 'html' => '<a href="#" class="test-ssl-link">' . _x( 'Test SSL setup...', 'debug info', 'WPBDM' ) . '</a>' );
97
  } else {
98
  $debug_info['environment']['cURL version'] = 'N/A';
99
  $debug_info['environment']['cURL SSL library'] = 'N/A';
13
  $debug_info = array();
14
 
15
  // basic BD setup info & tests
16
+ $debug_info['basic']['_title'] = _x( 'BD Info', 'debug-info', 'business-directory-plugin' );
17
  $debug_info['basic']['BD version'] = WPBDP_VERSION;
18
  $debug_info['basic']['BD database revision (current)'] = WPBDP_Installer::DB_VERSION;
19
  $debug_info['basic']['BD database revision (installed)'] = get_option( 'wpbdp-db-version' );
39
  $missing_tables[] = $t;
40
  }
41
  $debug_info['basic']['Table check'] = $missing_tables
42
+ ? sprintf( _( 'Missing tables: %s', 'debug-info', 'business-directory-plugin' ), implode(',', $missing_tables) )
43
+ : _x( 'OK', 'debug-info', 'business-directory-plugin' );
44
 
45
  $debug_info['basic']['Main Page'] = sprintf( '%d (%s)', wpbdp_get_page_id( 'main' ), get_post_status( wpbdp_get_page_id( 'main' ) ) );
46
  $debug_info['basic'] = apply_filters( 'wpbdp_debug_info_section', $debug_info['basic'], 'basic' );
48
 
49
  // BD options
50
  $blacklisted = array( 'authorize-net-transaction-key', 'authorize-net-login-id', 'googlecheckout-merchant', 'paypal-business-email', 'wpbdp-2checkout-seller', 'recaptcha-public-key', 'recaptcha-private-key' );
51
+ $debug_info['options']['_title'] = _x( 'BD Options', 'debug-info', 'business-directory-plugin' );
52
 
53
  $settings_api = wpbdp_settings_api();
54
  $all_settings = $settings_api->get_registered_settings();
71
  $debug_info['options'] = apply_filters( 'wpbdp_debug_info_section', $debug_info['options'], 'options' );
72
 
73
  // environment info
74
+ $debug_info['environment']['_title'] = _x( 'Environment', 'debug-info', 'business-directory-plugin' );
75
  $debug_info['environment']['WordPress version'] = get_bloginfo( 'version', 'raw' );
76
  $debug_info['environment']['OS'] = php_uname( 's' ) . ' ' . php_uname( 'r' ) . ' ' . php_uname( 'm' );
77
 
93
  $debug_info['environment']['cURL version'] = $data['version'];
94
  $debug_info['environment']['cURL SSL library'] = $data['ssl_version'];
95
  $debug_info['environment']['Test SSL setup'] = array( 'exclude' => true,
96
+ 'html' => '<a href="#" class="test-ssl-link">' . _x( 'Test SSL setup...', 'debug info', 'business-directory-plugin' ) . '</a>' );
97
  } else {
98
  $debug_info['environment']['cURL version'] = 'N/A';
99
  $debug_info['environment']['cURL SSL library'] = 'N/A';
includes/admin/payments.php CHANGED
@@ -16,7 +16,7 @@ class WPBDP__Admin__Payments extends WPBDP__Admin__Controller {
16
  $_SERVER['REQUEST_URI'] = remove_query_arg( 'listing' );
17
 
18
  if ( ! empty( $_GET['message'] ) && 'payment_delete' == $_GET['message'] )
19
- wpbdp_admin_message( _x( 'Payment deleted.', 'payments admin', 'WPBDM' ) );
20
 
21
 
22
  require_once( WPBDP_INC . 'admin/helpers/class-payments-table.php' );
@@ -31,7 +31,7 @@ class WPBDP__Admin__Payments extends WPBDP__Admin__Controller {
31
  wpbdp_admin_message(
32
  str_replace( '<a>',
33
  '<a href="' . remove_query_arg( 'listing' ) . '">',
34
- sprintf( _x( 'You\'re seeing payments related to listing: "%s" (ID #%d). <a>Click here</a> to see all payments.', 'payments admin', 'WPBDM' ),
35
  esc_html( $listing->get_title() ),
36
  $listing->get_id() ) )
37
  );
@@ -42,7 +42,7 @@ class WPBDP__Admin__Payments extends WPBDP__Admin__Controller {
42
 
43
  function details() {
44
  if ( ! empty( $_GET['message'] ) && 1 == $_GET['message'] )
45
- wpbdp_admin_message( _x( 'Payment details updated.', 'payments admin', 'WPBDM' ) );
46
 
47
  $payment = WPBDP_Payment::objects()->get( $_GET['payment-id'] );
48
  return compact( 'payment' );
16
  $_SERVER['REQUEST_URI'] = remove_query_arg( 'listing' );
17
 
18
  if ( ! empty( $_GET['message'] ) && 'payment_delete' == $_GET['message'] )
19
+ wpbdp_admin_message( _x( 'Payment deleted.', 'payments admin', 'business-directory-plugin' ) );
20
 
21
 
22
  require_once( WPBDP_INC . 'admin/helpers/class-payments-table.php' );
31
  wpbdp_admin_message(
32
  str_replace( '<a>',
33
  '<a href="' . remove_query_arg( 'listing' ) . '">',
34
+ sprintf( _x( 'You\'re seeing payments related to listing: "%s" (ID #%d). <a>Click here</a> to see all payments.', 'payments admin', 'business-directory-plugin' ),
35
  esc_html( $listing->get_title() ),
36
  $listing->get_id() ) )
37
  );
42
 
43
  function details() {
44
  if ( ! empty( $_GET['message'] ) && 1 == $_GET['message'] )
45
+ wpbdp_admin_message( _x( 'Payment details updated.', 'payments admin', 'business-directory-plugin' ) );
46
 
47
  $payment = WPBDP_Payment::objects()->get( $_GET['payment-id'] );
48
  return compact( 'payment' );
includes/admin/settings/class-settings-admin.php CHANGED
@@ -43,9 +43,9 @@ class WPBDP__Settings_Admin {
43
 
44
  public function menu_item( $menu ) {
45
  $menu['wpbdp_settings'] = array(
46
- 'title' => _x( 'Manage Options', 'admin menu', 'WPBDM' ),
47
  'callback' => array( $this, 'settings_page' ),
48
- 'priority' => 2,
49
  );
50
  return $menu;
51
  }
@@ -339,7 +339,7 @@ class WPBDP__Settings_Admin {
339
  $setting['id'],
340
  'wpbdp_settings[' . $setting['id'] . ']',
341
  empty( $value ) ? 'display: none;' : '',
342
- _x( 'Remove', 'admin settings', 'WPBDM' )
343
  );
344
 
345
  $html .= '</div>';
@@ -390,7 +390,7 @@ class WPBDP__Settings_Admin {
390
  }
391
 
392
  if ( $setting['desc'] && $placeholders_text ) {
393
- $setting['desc'] = $setting['desc'] . '<br/><br/>' . sprintf( _x( 'Valid placeholders: %s', 'admin settings', 'WPBDM' ), $placeholders_text );
394
  } elseif ( $placeholders_text ) {
395
  $settings['desc'] = $placeholders_text;
396
  }
@@ -431,7 +431,7 @@ class WPBDP__Settings_Admin {
431
  public function setting_expiration_notices_callback( $setting, $value ) {
432
  ?>
433
  <div class="wpbdp-settings-expiration-notices">
434
- <button id="wpbdp-settings-expiration-notices-add-btn" class="button"><?php _ex( 'Add notice', 'expiration notices', 'WPBDM' ); ?></button>
435
 
436
  <div id="wpbdp-settings-expiration-notices-add">
437
  <?php
@@ -450,7 +450,7 @@ class WPBDP__Settings_Admin {
450
  </div>
451
 
452
  <?php if ( ! $value ) : ?>
453
- <p class="wpbdp-no-items"><?php _ex( 'No notices configured.', 'expiration notices', 'WPBDM' ); ?></p>
454
  <?php endif; ?>
455
 
456
  <?php
@@ -464,18 +464,18 @@ foreach ( $value as $i => $notice ) {
464
  'email_body' => $notice['body'],
465
  'extra_fields' => $this->setting_expiration_notices_email_extra_fields( 'wpbdp_settings[' . $setting['id'] . '][' . $i . ']', $uid, $notice ),
466
  'after_container' => $this->setting_expiration_notices_email_summary( $notice ),
467
- 'before_buttons' => '<a href="#" class="delete">' . _x( 'Delete', 'expiration notices', 'WPBDM' ) . '</a>',
468
  'placeholders' =>
469
  array(
470
- 'site' => _x( 'Site title (with link)', 'settings', 'WPBDM' ),
471
- 'author' => _x( 'Author\'s name', 'settings', 'WPBDM' ),
472
- 'listing' => _x( 'Listing\'s name (with link)', 'settings', 'WPBDM' ),
473
- 'expiration' => _x( 'Listing\'s expiration date', 'settings', 'WPBDM' ),
474
- 'link' => _x( 'Listing\'s renewal link, formatted with an anchor tag', 'settings', 'WPBDM' ),
475
- 'link-raw' => _x( 'Listing\'s renewal URL, unformatted by any tags', 'settings', 'WPBDM' ),
476
- 'category' => _x( 'Listing\'s categories', 'settings', 'WPBDM' ),
477
- 'payment_date' => _x( 'Listing\'s last payment date', 'settings', 'WPBDM' ),
478
- 'access_key' => _x( 'Listing\'s access key', 'settings', 'WPBDM' ),
479
  ),
480
  );
481
 
@@ -492,20 +492,20 @@ foreach ( $value as $i => $notice ) {
492
  $relative_time = ! empty( $notice['relative_time'] ) ? $notice['relative_time'] : '';
493
 
494
  if ( 'both' == $listings ) {
495
- $recurring_modifier = _x( 'recurring and non-recurring', 'expiration notices', 'WPBDM' );
496
  } elseif ( 'recurring' == $listings ) {
497
- $recurring_modifier = _x( 'recurring only', 'expiration notices', 'WPBDM' );
498
  } else {
499
- $recurring_modifier = _x( 'non-recurring only', 'expiration notices', 'WPBDM' );
500
  }
501
 
502
  if ( 'renewal' == $event ) {
503
- $summary = sprintf( _x( 'Sent when a listing (%s) is renewed.', 'expiration notices', 'WPBDM' ), $recurring_modifier );
504
  }
505
 
506
  if ( 'expiration' == $event ) {
507
  if ( '0 days' == $relative_time ) {
508
- $summary = sprintf( _x( 'Sent when a listing (%s) expires.', 'expiration notices', 'WPBDM' ), $recurring_modifier );
509
  } else {
510
  $relative_time_parts = explode( ' ', $relative_time );
511
  $relative_time_number = trim( str_replace( array( '+', '-' ), '', $relative_time_parts[0] ) );
@@ -513,22 +513,22 @@ foreach ( $value as $i => $notice ) {
513
 
514
  switch ( $relative_time_units ) {
515
  case 'days':
516
- $relative_time_h = sprintf( _nx( '%d day', '%d days', $relative_time_number, 'expiration notices', 'WPBDM' ), $relative_time_number );
517
  break;
518
  case 'weeks':
519
- $relative_time_h = sprintf( _nx( '%d week', '%d weeks', $relative_time_number, 'expiration notices', 'WPBDM' ), $relative_time_number );
520
  break;
521
  case 'months':
522
- $relative_time_h = sprintf( _nx( '%d month', '%d months', $relative_time_number, 'expiration notices', 'WPBDM' ), $relative_time_number );
523
  break;
524
  }
525
 
526
  if ( $relative_time[0] == '+' ) {
527
  /* translators: 1: relative time (e.g. 3 days), 2: recurring modifier (e.g. non-recuring only) */
528
- $summary = sprintf( _x( 'Sent %1$s before a listing (%2$s) expires.', 'expiration notices', 'WPBDM' ), $relative_time_h, $recurring_modifier );
529
  } else {
530
  /* translators: 1: relative time (e.g. 3 days), 2: recurring modifier (e.g. non-recuring only) */
531
- $summary = sprintf( _x( 'Sent %1$s after a listing (%2$s) expires.', 'expiration notices', 'WPBDM' ), $relative_time_h, $recurring_modifier );
532
  }
533
  }
534
  }
@@ -545,8 +545,8 @@ foreach ( $value as $i => $notice ) {
545
  private function setting_expiration_notices_schedule() {
546
  // Notices schedule.
547
  $notices_schedule = array(
548
- array( 'expiration', '0 days', _x( 'At the time of expiration', 'expiration notices', 'WPBDM' ) ),
549
- array( 'renewal', '0 days', _x( 'Right after a successful renewal', 'expiration notices', 'WPBDM' ) ),
550
  );
551
  foreach ( array(
552
  'days' => array( 1, 2, 3, 4, 5 ),
@@ -557,13 +557,13 @@ foreach ( $value as $i => $notice ) {
557
  foreach ( array( '+', '-' ) as $sign ) {
558
  switch ( $unit ) {
559
  case 'days':
560
- $label = sprintf( '+' == $sign ? _nx( '%d day before expiration', '%d days before expiration', $i, 'expiration notices', 'WPBDM' ) : _nx( '%d day after expiration', '%d days after expiration', $i, 'expiration notices', 'WPBDM' ), $i );
561
  break;
562
  case 'weeks':
563
- $label = sprintf( '+' == $sign ? _nx( '%d week before expiration', '%d weeks before expiration', $i, 'expiration notices', 'WPBDM' ) : _nx( '%d week after expiration', '%d weeks after expiration', $i, 'expiration notices', 'WPBDM' ), $i );
564
  break;
565
  case 'months':
566
- $label = sprintf( '+' == $sign ? _nx( '%d month before expiration', '%d months before expiration', $i, 'expiration notices', 'WPBDM' ) : _nx( '%d month after expiration', '%d months after expiration', $i, 'expiration notices', 'WPBDM' ), $i );
567
  break;
568
  }
569
 
@@ -590,17 +590,17 @@ foreach ( $value as $i => $notice ) {
590
  ob_start();
591
  ?>
592
  <tr>
593
- <th scope="row"><label for="<?php echo $uid; ?>-listings"><?php _ex( 'Applies to', 'expiration notices', 'WPBDM' ); ?></label></th>
594
  <td>
595
  <select id="<?php echo $uid; ?>-listings" name="<?php echo $name; ?>[listings]">
596
- <option value="non-recurring" <?php selected( 'non-recurring', $notice['listings'] ); ?>><?php _ex( 'Non-recurring listings', 'expiration notices', 'WPBDM' ); ?></option>
597
- <option value="recurring" <?php selected( 'recurring', $notice['listings'] ); ?>><?php _ex( 'Recurring listings', 'expiration notices', 'WPBDM' ); ?></option>
598
- <option value="both" <?php selected( 'both', $notice['listings'] ); ?>><?php _ex( 'Recurring and non-recurring listings', 'expiration notices', 'WPBDM' ); ?></option>
599
  </select>
600
  </td>
601
  </tr>
602
  <tr>
603
- <th scope="row"><label for="<?php echo $uid; ?>-relative-time-and-event"><?php _ex( 'When to send?', 'expiration notices', 'WPBDM' ); ?></label></th>
604
  <td>
605
  <input type="hidden" value="<?php echo $notice['event']; ?>" class="stored-notice-event" />
606
  <input type="hidden" value="<?php echo ! empty( $notice['relative_time'] ) ? $notice['relative_time'] : ''; ?>" class="stored-notice-relative-time" />
@@ -632,7 +632,7 @@ foreach ( $value as $i => $notice ) {
632
 
633
  if ( isset( $_REQUEST['message'] ) && $_REQUEST['message'] == 'reset' ) {
634
  $_SERVER['REQUEST_URI'] = remove_query_arg( array( 'message', 'settings-updated' ) );
635
- wpbdp_admin_message( _x( 'Settings reset to default.', 'settings', 'WPBDM' ) );
636
  wpbdp()->admin->admin_notices();
637
  }
638
 
43
 
44
  public function menu_item( $menu ) {
45
  $menu['wpbdp_settings'] = array(
46
+ 'title' => _x( 'Settings', 'admin menu', 'business-directory-plugin' ),
47
  'callback' => array( $this, 'settings_page' ),
48
+ 'priority' => 0,
49
  );
50
  return $menu;
51
  }
339
  $setting['id'],
340
  'wpbdp_settings[' . $setting['id'] . ']',
341
  empty( $value ) ? 'display: none;' : '',
342
+ _x( 'Remove', 'admin settings', 'business-directory-plugin' )
343
  );
344
 
345
  $html .= '</div>';
390
  }
391
 
392
  if ( $setting['desc'] && $placeholders_text ) {
393
+ $setting['desc'] = $setting['desc'] . '<br/><br/>' . sprintf( _x( 'Valid placeholders: %s', 'admin settings', 'business-directory-plugin' ), $placeholders_text );
394
  } elseif ( $placeholders_text ) {
395
  $settings['desc'] = $placeholders_text;
396
  }
431
  public function setting_expiration_notices_callback( $setting, $value ) {
432
  ?>
433
  <div class="wpbdp-settings-expiration-notices">
434
+ <button id="wpbdp-settings-expiration-notices-add-btn" class="button"><?php _ex( 'Add notice', 'expiration notices', 'business-directory-plugin' ); ?></button>
435
 
436
  <div id="wpbdp-settings-expiration-notices-add">
437
  <?php
450
  </div>
451
 
452
  <?php if ( ! $value ) : ?>
453
+ <p class="wpbdp-no-items"><?php _ex( 'No notices configured.', 'expiration notices', 'business-directory-plugin' ); ?></p>
454
  <?php endif; ?>
455
 
456
  <?php
464
  'email_body' => $notice['body'],
465
  'extra_fields' => $this->setting_expiration_notices_email_extra_fields( 'wpbdp_settings[' . $setting['id'] . '][' . $i . ']', $uid, $notice ),
466
  'after_container' => $this->setting_expiration_notices_email_summary( $notice ),
467
+ 'before_buttons' => '<a href="#" class="delete">' . _x( 'Delete', 'expiration notices', 'business-directory-plugin' ) . '</a>',
468
  'placeholders' =>
469
  array(
470
+ 'site' => _x( 'Site title (with link)', 'settings', 'business-directory-plugin' ),
471
+ 'author' => _x( 'Author\'s name', 'settings', 'business-directory-plugin' ),
472
+ 'listing' => _x( 'Listing\'s name (with link)', 'settings', 'business-directory-plugin' ),
473
+ 'expiration' => _x( 'Listing\'s expiration date', 'settings', 'business-directory-plugin' ),
474
+ 'link' => _x( 'Listing\'s renewal link, formatted with an anchor tag', 'settings', 'business-directory-plugin' ),
475
+ 'link-raw' => _x( 'Listing\'s renewal URL, unformatted by any tags', 'settings', 'business-directory-plugin' ),
476
+ 'category' => _x( 'Listing\'s categories', 'settings', 'business-directory-plugin' ),
477
+ 'payment_date' => _x( 'Listing\'s last payment date', 'settings', 'business-directory-plugin' ),
478
+ 'access_key' => _x( 'Listing\'s access key', 'settings', 'business-directory-plugin' ),
479
  ),
480
  );
481
 
492
  $relative_time = ! empty( $notice['relative_time'] ) ? $notice['relative_time'] : '';
493
 
494
  if ( 'both' == $listings ) {
495
+ $recurring_modifier = _x( 'recurring and non-recurring', 'expiration notices', 'business-directory-plugin' );
496
  } elseif ( 'recurring' == $listings ) {
497
+ $recurring_modifier = _x( 'recurring only', 'expiration notices', 'business-directory-plugin' );
498
  } else {
499
+ $recurring_modifier = _x( 'non-recurring only', 'expiration notices', 'business-directory-plugin' );
500
  }
501
 
502
  if ( 'renewal' == $event ) {
503
+ $summary = sprintf( _x( 'Sent when a listing (%s) is renewed.', 'expiration notices', 'business-directory-plugin' ), $recurring_modifier );
504
  }
505
 
506
  if ( 'expiration' == $event ) {
507
  if ( '0 days' == $relative_time ) {
508
+ $summary = sprintf( _x( 'Sent when a listing (%s) expires.', 'expiration notices', 'business-directory-plugin' ), $recurring_modifier );
509
  } else {
510
  $relative_time_parts = explode( ' ', $relative_time );
511
  $relative_time_number = trim( str_replace( array( '+', '-' ), '', $relative_time_parts[0] ) );
513
 
514
  switch ( $relative_time_units ) {
515
  case 'days':
516
+ $relative_time_h = sprintf( _nx( '%d day', '%d days', $relative_time_number, 'expiration notices', 'business-directory-plugin' ), $relative_time_number );
517
  break;
518
  case 'weeks':
519
+ $relative_time_h = sprintf( _nx( '%d week', '%d weeks', $relative_time_number, 'expiration notices', 'business-directory-plugin' ), $relative_time_number );
520
  break;
521
  case 'months':
522
+ $relative_time_h = sprintf( _nx( '%d month', '%d months', $relative_time_number, 'expiration notices', 'business-directory-plugin' ), $relative_time_number );
523
  break;
524
  }
525
 
526
  if ( $relative_time[0] == '+' ) {
527
  /* translators: 1: relative time (e.g. 3 days), 2: recurring modifier (e.g. non-recuring only) */
528
+ $summary = sprintf( _x( 'Sent %1$s before a listing (%2$s) expires.', 'expiration notices', 'business-directory-plugin' ), $relative_time_h, $recurring_modifier );
529
  } else {
530
  /* translators: 1: relative time (e.g. 3 days), 2: recurring modifier (e.g. non-recuring only) */
531
+ $summary = sprintf( _x( 'Sent %1$s after a listing (%2$s) expires.', 'expiration notices', 'business-directory-plugin' ), $relative_time_h, $recurring_modifier );
532
  }
533
  }
534
  }
545
  private function setting_expiration_notices_schedule() {
546
  // Notices schedule.
547
  $notices_schedule = array(
548
+ array( 'expiration', '0 days', _x( 'At the time of expiration', 'expiration notices', 'business-directory-plugin' ) ),
549
+ array( 'renewal', '0 days', _x( 'Right after a successful renewal', 'expiration notices', 'business-directory-plugin' ) ),
550
  );
551
  foreach ( array(
552
  'days' => array( 1, 2, 3, 4, 5 ),
557
  foreach ( array( '+', '-' ) as $sign ) {
558
  switch ( $unit ) {
559
  case 'days':
560
+ $label = sprintf( '+' == $sign ? _nx( '%d day before expiration', '%d days before expiration', $i, 'expiration notices', 'business-directory-plugin' ) : _nx( '%d day after expiration', '%d days after expiration', $i, 'expiration notices', 'business-directory-plugin' ), $i );
561
  break;
562
  case 'weeks':
563
+ $label = sprintf( '+' == $sign ? _nx( '%d week before expiration', '%d weeks before expiration', $i, 'expiration notices', 'business-directory-plugin' ) : _nx( '%d week after expiration', '%d weeks after expiration', $i, 'expiration notices', 'business-directory-plugin' ), $i );
564
  break;
565
  case 'months':
566
+ $label = sprintf( '+' == $sign ? _nx( '%d month before expiration', '%d months before expiration', $i, 'expiration notices', 'business-directory-plugin' ) : _nx( '%d month after expiration', '%d months after expiration', $i, 'expiration notices', 'business-directory-plugin' ), $i );
567
  break;
568
  }
569
 
590
  ob_start();
591
  ?>
592
  <tr>
593
+ <th scope="row"><label for="<?php echo $uid; ?>-listings"><?php _ex( 'Applies to', 'expiration notices', 'business-directory-plugin' ); ?></label></th>
594
  <td>
595
  <select id="<?php echo $uid; ?>-listings" name="<?php echo $name; ?>[listings]">
596
+ <option value="non-recurring" <?php selected( 'non-recurring', $notice['listings'] ); ?>><?php _ex( 'Non-recurring listings', 'expiration notices', 'business-directory-plugin' ); ?></option>
597
+ <option value="recurring" <?php selected( 'recurring', $notice['listings'] ); ?>><?php _ex( 'Recurring listings', 'expiration notices', 'business-directory-plugin' ); ?></option>
598
+ <option value="both" <?php selected( 'both', $notice['listings'] ); ?>><?php _ex( 'Recurring and non-recurring listings', 'expiration notices', 'business-directory-plugin' ); ?></option>
599
  </select>
600
  </td>
601
  </tr>
602
  <tr>
603
+ <th scope="row"><label for="<?php echo $uid; ?>-relative-time-and-event"><?php _ex( 'When to send?', 'expiration notices', 'business-directory-plugin' ); ?></label></th>
604
  <td>
605
  <input type="hidden" value="<?php echo $notice['event']; ?>" class="stored-notice-event" />
606
  <input type="hidden" value="<?php echo ! empty( $notice['relative_time'] ) ? $notice['relative_time'] : ''; ?>" class="stored-notice-relative-time" />
632
 
633
  if ( isset( $_REQUEST['message'] ) && $_REQUEST['message'] == 'reset' ) {
634
  $_SERVER['REQUEST_URI'] = remove_query_arg( array( 'message', 'settings-updated' ) );
635
+ wpbdp_admin_message( _x( 'Settings reset to default.', 'settings', 'business-directory-plugin' ) );
636
  wpbdp()->admin->admin_notices();
637
  }
638
 
includes/admin/settings/class-settings-bootstrap.php CHANGED
@@ -22,22 +22,21 @@
22
  final class WPBDP__Settings__Bootstrap {
23
 
24
  public static function register_initial_groups() {
25
- wpbdp_register_settings_group( 'general', _x( 'General', 'settings', 'WPBDM' ) );
26
 
27
- wpbdp_register_settings_group( 'listings', _x( 'Listings', 'settings', 'WPBDM' ) );
28
- wpbdp_register_settings_group( 'listings/main', _x( 'General Settings', 'settings', 'WPBDM' ), 'listings' );
29
 
30
- wpbdp_register_settings_group( 'email', _x( 'E-Mail', 'settings', 'WPBDM' ) );
31
- wpbdp_register_settings_group( 'email/main', _x( 'General Settings', 'settings', 'WPBDM' ), 'email' );
32
 
33
- wpbdp_register_settings_group( 'payment', _x( 'Payment', 'settings', 'WPBDM' ) );
34
- wpbdp_register_settings_group( 'payment/main', _x( 'General Settings', 'settings', 'WPBDM' ), 'payment' );
35
 
36
- wpbdp_register_settings_group( 'appearance', _x( 'Appearance', 'settings', 'WPBDM' ) );
37
- wpbdp_register_settings_group( 'appearance/main', _x( 'General Settings', 'settings', 'WPBDM' ), 'appearance' );
38
 
39
- // wpbdp_register_settings_group( 'licenses', _x( 'Licenses', 'settings', 'WPBDM' ) );
40
- wpbdp_register_settings_group( 'modules', _x( 'Premium Modules', 'settings', 'WPBDM' ) );
41
  }
42
 
43
  public static function register_initial_settings() {
@@ -49,15 +48,15 @@ final class WPBDP__Settings__Bootstrap {
49
  }
50
 
51
  private static function settings_general() {
52
- wpbdp_register_settings_group( 'general/main', _x( 'General Settings', 'settings', 'WPBDM' ), 'general' );
53
 
54
  // Permalinks.
55
- wpbdp_register_settings_group( 'permalink_settings', _x( 'Permalink Settings', 'settings', 'WPBDM' ), 'general/main' );
56
  wpbdp_register_setting(
57
  array(
58
  'id' => 'permalinks-directory-slug',
59
  'type' => 'text',
60
- 'name' => _x( 'Directory Listings Slug', 'settings', 'WPBDM' ),
61
  'default' => 'wpbdp_listing',
62
  'group' => 'permalink_settings',
63
  'validator' => 'no-spaces,trim,required',
@@ -67,8 +66,8 @@ final class WPBDP__Settings__Bootstrap {
67
  array(
68
  'id' => 'permalinks-category-slug',
69
  'type' => 'text',
70
- 'name' => _x( 'Categories Slug', 'settings', 'WPBDM' ),
71
- 'desc' => _x( 'The slug can\'t be in use by another term. Avoid "category", for instance.', 'settings', 'WPBDM' ),
72
  'default' => 'wpbdp_category',
73
  'group' => 'permalink_settings',
74
  'taxonomy' => WPBDP_CATEGORY_TAX,
@@ -79,8 +78,8 @@ final class WPBDP__Settings__Bootstrap {
79
  array(
80
  'id' => 'permalinks-tags-slug',
81
  'type' => 'text',
82
- 'name' => _x( 'Tags Slug', 'settings', 'WPBDM' ),
83
- 'desc' => _x( 'The slug can\'t be in use by another term. Avoid "tag", for instance.', 'settings', 'WPBDM' ),
84
  'default' => 'wpbdp_tag',
85
  'group' => 'permalink_settings',
86
  'taxonomy' => WPBDP_TAGS_TAX,
@@ -91,9 +90,9 @@ final class WPBDP__Settings__Bootstrap {
91
  array(
92
  'id' => 'permalinks-no-id',
93
  'type' => 'checkbox',
94
- 'name' => _x( 'Remove listing ID from directory URLs?', 'settings', 'WPBDM' ),
95
- 'desc' => _x( 'Check this setting to remove the ID for better SEO.', 'settings', 'WPBDM' ),
96
- 'tooltip' => _x( 'Prior to 3.5.1, we included the ID in the listing URL, like "/business-directory/1809/listing-title".', 'settings', 'WPBDM' ) . _x( '<strong>IMPORTANT:</strong> subpages of the main directory page cannot be accesed while this setting is checked.', 'admin settings', 'WPBDM' ),
97
  'group' => 'permalink_settings',
98
  )
99
  );
@@ -101,17 +100,17 @@ final class WPBDP__Settings__Bootstrap {
101
  // reCAPTCHA.
102
  wpbdp_register_settings_group(
103
  'recaptcha',
104
- _x( 'reCAPTCHA', 'settings', 'WPBDM' ),
105
  'general',
106
  array(
107
- 'desc' => str_replace( '<a>', '<a href="http://www.google.com/recaptcha" target="_blank" rel="noopener">', _x( 'Need API keys for reCAPTCHA? Get them <a>here</a>.', 'settings', 'WPBDM' ) ),
108
  )
109
  );
110
  wpbdp_register_setting(
111
  array(
112
  'id' => 'recaptcha-on',
113
  'type' => 'checkbox',
114
- 'name' => _x( 'Use reCAPTCHA for contact forms', 'settings', 'WPBDM' ),
115
  'group' => 'recaptcha',
116
  )
117
  );
@@ -119,7 +118,7 @@ final class WPBDP__Settings__Bootstrap {
119
  array(
120
  'id' => 'hide-recaptcha-loggedin',
121
  'type' => 'checkbox',
122
- 'name' => _x( 'Turn off reCAPTCHA for logged in users?', 'settings', 'WPBDM' ),
123
  'group' => 'recaptcha',
124
  )
125
  );
@@ -127,7 +126,7 @@ final class WPBDP__Settings__Bootstrap {
127
  array(
128
  'id' => 'recaptcha-for-submits',
129
  'type' => 'checkbox',
130
- 'name' => _x( 'Use reCAPTCHA for listing submits', 'settings', 'WPBDM' ),
131
  'group' => 'recaptcha',
132
  )
133
  );
@@ -135,7 +134,7 @@ final class WPBDP__Settings__Bootstrap {
135
  array(
136
  'id' => 'recaptcha-for-edits',
137
  'type' => 'checkbox',
138
- 'name' => _x( 'Use reCAPTCHA for edit listings', 'settings', 'WPBDM' ),
139
  'group' => 'recaptcha',
140
  )
141
  );
@@ -143,7 +142,7 @@ final class WPBDP__Settings__Bootstrap {
143
  array(
144
  'id' => 'recaptcha-for-flagging',
145
  'type' => 'checkbox',
146
- 'name' => _x( 'Use reCAPTCHA for report listings', 'settings', 'WPBDM' ),
147
  'group' => 'recaptcha',
148
  )
149
  );
@@ -151,7 +150,7 @@ final class WPBDP__Settings__Bootstrap {
151
  array(
152
  'id' => 'recaptcha-for-comments',
153
  'type' => 'checkbox',
154
- 'name' => _x( 'Use reCAPTCHA for listing comments?', 'settings', 'WPBDM' ),
155
  'group' => 'recaptcha',
156
  )
157
  );
@@ -159,7 +158,7 @@ final class WPBDP__Settings__Bootstrap {
159
  array(
160
  'id' => 'recaptcha-public-key',
161
  'type' => 'text',
162
- 'name' => _x( 'reCAPTCHA Public Key', 'settings', 'WPBDM' ),
163
  'default' => '',
164
  'group' => 'recaptcha',
165
  )
@@ -168,7 +167,7 @@ final class WPBDP__Settings__Bootstrap {
168
  array(
169
  'id' => 'recaptcha-private-key',
170
  'type' => 'text',
171
- 'name' => _x( 'reCAPTCHA Private Key', 'settings', 'WPBDM' ),
172
  'default' => '',
173
  'group' => 'recaptcha',
174
  )
@@ -177,7 +176,7 @@ final class WPBDP__Settings__Bootstrap {
177
  array(
178
  'id' => 'recaptcha-version',
179
  'type' => 'select',
180
- 'name' => _x( 'reCAPTCHA version', 'settings', 'WPBDM' ),
181
  'default' => 'v2',
182
  'options' => array(
183
  'v2' => 'V2',
@@ -190,22 +189,22 @@ final class WPBDP__Settings__Bootstrap {
190
  array(
191
  'id' => 'recaptcha-threshold',
192
  'type' => 'number',
193
- 'name' => _x( 'reCAPTCHA V3 threshold score', 'settings', 'WPBDM' ),
194
  'default' => 0.5,
195
  'min' => 0,
196
  'step' => 0.1,
197
  'max' => 1,
198
- 'desc' => _x( 'reCAPTCHA v3 returns a score (1.0 is very likely a good interaction, 0.0 is very likely a bot). Based on the score, you can take variable action in the context of your site. You can set here the score threshold, scores under this value will result in reCAPTCHA validation error.', 'settings', 'WPBDM'),
199
  'group' => 'recaptcha',
200
  )
201
  );
202
 
203
- wpbdp_register_settings_group( 'registration', _x( 'Registration', 'settings', 'WPBDM' ), 'general', array( 'desc' => _x( "We expect that a membership plugin supports the 'redirect_to' parameter for the URLs below to work. If the plugin does not support them, these settings will not function as expected. Please contact the membership plugin and ask them to support the WP standard 'redirect_to' query parameter.", 'settings', 'WPBDM' ) ) );
204
  wpbdp_register_setting(
205
  array(
206
  'id' => 'require-login',
207
  'type' => 'checkbox',
208
- 'name' => _x( 'Require login to post listings?', 'settings', 'WPBDM' ),
209
  'default' => 1,
210
  'group' => 'registration',
211
  )
@@ -214,7 +213,7 @@ final class WPBDP__Settings__Bootstrap {
214
  array(
215
  'id' => 'enable-key-access',
216
  'type' => 'checkbox',
217
- 'name' => _x( 'Allow anonymous users to edit/manage listings with an access key?', 'settings', 'WPBDM' ),
218
  'group' => 'registration',
219
  )
220
  );
@@ -222,9 +221,9 @@ final class WPBDP__Settings__Bootstrap {
222
  array(
223
  'id' => 'login-url',
224
  'type' => 'text',
225
- 'name' => _x( 'Login URL', 'settings', 'WPBDM' ),
226
- 'desc' => _x( 'Only enter this if using a membership plugin or custom login page.', 'settings', 'WPBDM' ),
227
- 'placeholder' => _x( 'URL of your membership plugin\'s login page.', 'settings', 'WPBDM' ),
228
  'default' => '',
229
  'group' => 'registration',
230
  )
@@ -233,9 +232,9 @@ final class WPBDP__Settings__Bootstrap {
233
  array(
234
  'id' => 'registration-url',
235
  'type' => 'text',
236
- 'name' => _x( 'Registration URL', 'settings', 'WPBDM' ),
237
- 'desc' => _x( 'Only enter this if using a membership plugin or custom registration page.', 'settings', 'WPBDM' ),
238
- 'placeholder' => _x( 'URL of your membership plugin\'s registration page.', 'settings', 'WPBDM' ),
239
  'default' => '',
240
  'group' => 'registration',
241
  )
@@ -244,81 +243,82 @@ final class WPBDP__Settings__Bootstrap {
244
  array(
245
  'id' => 'create-account-during-submit-mode',
246
  'type' => 'radio',
247
- 'name' => _x( 'Allow users to create accounts during listing submit?', 'settings', 'WPBDM' ),
248
  'default' => 'required',
249
  'options' => array(
250
- 'disabled' => _x( 'No', 'settings', 'WPBDM' ),
251
- 'optional' => _x( 'Yes, and make it optional', 'settings', 'WPBDM' ),
252
- 'required' => _x( 'Yes, and make it required', 'settings', 'WPBDM' ),
253
  ),
254
  'group' => 'registration',
255
  )
256
  );
257
 
258
  // Terms & Conditions.
259
- wpbdp_register_settings_group( 'tos_settings', _x( 'Terms and Conditions', 'settings', 'WPBDM' ), 'general/main' );
260
  wpbdp_register_setting(
261
  array(
262
  'id' => 'display-terms-and-conditions',
263
  'type' => 'checkbox',
264
- 'name' => _x( 'Display and require user agreement to Terms and Conditions', 'settings', 'WPBDM' ),
265
  'group' => 'tos_settings',
266
  )
267
  );
268
  wpbdp_register_setting(
269
  array(
270
- 'id' => 'terms-and-conditions',
271
- 'type' => 'textarea',
272
- 'name' => _x( 'Terms and Conditions', 'settings', 'WPBDM' ),
273
- 'desc' => _x( 'Enter text or a URL starting with http. If you use a URL, the Terms and Conditions text will be replaced by a link to the appropiate page.', 'settings', 'WPBDM' ),
274
- 'default' => '',
275
- 'placeholder' => _x( 'Terms and Conditions text goes here.', 'settings', 'WPBDM' ),
276
- 'group' => 'tos_settings',
 
277
  )
278
  );
279
 
280
  // Tracking.
281
- wpbdp_register_settings_group( 'tracking_settings', _x( 'Data Collection', 'settings', 'WPBDM' ), 'general/main' );
282
  wpbdp_register_setting(
283
  array(
284
  'id' => 'tracking-on',
285
  'type' => 'checkbox',
286
- 'name' => _x( 'Allow BD to anonymously collect information about your installed plugins, themes and WP version?', 'settings', 'WPBDM' ),
287
- 'desc' => str_replace( '<a>', '<a href="http://businessdirectoryplugin.com/what-we-track/" target="_blank" rel="noopener">', _x( '<a>Learn more</a> about what BD does and does NOT track.', 'admin settings', 'WPBDM' ) ),
288
  'group' => 'tracking_settings',
289
  )
290
  );
291
 
292
  // Search.
293
- wpbdp_register_settings_group( 'search_settings', _x( 'Directory Search', 'settings', 'WPBDM' ), 'general/main' );
294
  wpbdp_register_setting(
295
  array(
296
  'id' => 'search-form-in-results',
297
  'type' => 'radio',
298
- 'name' => _x( 'Search form display', 'settings', 'WPBDM' ),
299
  'default' => 'above',
300
  'options' => array(
301
- 'above' => _x( 'Above results', 'admin settings', 'WPBDM' ),
302
- 'below' => _x( 'Below results', 'admin settings', 'WPBDM' ),
303
- 'none' => _x( 'Don\'t show with results', 'admin settings', 'WPBDM' ),
304
  ),
305
  'group' => 'search_settings',
306
  )
307
  );
308
 
309
  $too_many_fields = '<span class="text-fields-warning wpbdp-note" style="display: none;">';
310
- $too_many_fields .= _x( 'You have selected a textarea field to be included in quick searches. Searches involving those fields are very expensive and could result in timeouts and/or general slowness.', 'admin settings', 'WPBDM' );
311
  $too_many_fields .= '</span>';
312
 
313
  list( $fields, $text_fields, $default_fields ) = self::get_quicksearch_fields();
314
- $no_fields = '<p><strong>' . _x( 'If no fields are selected, the following fields will be used in Quick Searches:', 'admin settings', 'WPBDM' ) . ' ' . implode( ', ', $default_fields ) . '.</strong></p>';
315
 
316
  wpbdp_register_setting(
317
  array(
318
  'id' => 'quick-search-fields',
319
  'type' => 'multicheck',
320
- 'name' => _x( 'Quick search fields', 'settings', 'WPBDM' ),
321
- 'desc' => _x( 'Choosing too many fields for inclusion into Quick Search can result in very slow search performance.', 'settings', 'WPBDM' ) . $no_fields . $too_many_fields,
322
  'default' => array(),
323
  'multiple' => true,
324
  'options' => $fields,
@@ -332,20 +332,20 @@ final class WPBDP__Settings__Bootstrap {
332
  array(
333
  'id' => 'quick-search-enable-performance-tricks',
334
  'type' => 'checkbox',
335
- 'name' => _x( 'Enable high performance searches?', 'settings', 'WPBDM' ),
336
- 'desc' => _x( 'Enabling this makes BD sacrifice result quality to improve speed. This is helpful if you\'re on shared hosting plans, where database performance is an issue.', 'settings', 'WPBDM' ),
337
  'group' => 'search_settings',
338
  )
339
  );
340
 
341
  // Advanced settings.
342
- wpbdp_register_settings_group( 'general/advanced', _x( 'Advanced', 'settings', 'WPBDM' ), 'general' );
343
 
344
  wpbdp_register_setting(
345
  array(
346
  'id' => 'disable-cpt',
347
  'type' => 'checkbox',
348
- 'name' => _x( 'Disable advanced CPT integration?', 'settings', 'WPBDM' ),
349
  'group' => 'general/advanced',
350
  )
351
  );
@@ -353,9 +353,9 @@ final class WPBDP__Settings__Bootstrap {
353
  array(
354
  'id' => 'ajax-compat-mode',
355
  'type' => 'checkbox',
356
- 'name' => _x( 'Enable AJAX compatibility mode?', 'settings', 'WPBDM' ),
357
- 'desc' => _x( 'Check this if you are having trouble with BD, particularly when importing or exporting CSV files.', 'admin settings', 'WPBDM' )
358
- . ' ' . str_replace( '<a>', '<a href="http://businessdirectoryplugin.com/support-forum/faq/how-to-check-for-plugin-and-theme-conflicts-with-bd/" target="_blank" rel="noopener">', _x( 'If this compatibility mode doesn\'t solve your issue, you may be experiencing a more serious conflict. <a>Here is an article</a> about how to test for theme and plugin conflicts with Business Directory.', 'settings', 'WPBDM' ) ),
359
  'group' => 'general/advanced',
360
  'on_update' => array( __CLASS__, 'setup_ajax_compat_mode' ),
361
  )
@@ -364,8 +364,8 @@ final class WPBDP__Settings__Bootstrap {
364
  array(
365
  'id' => 'disable-submit-listing',
366
  'type' => 'checkbox',
367
- 'name' => _x( 'Disable Frontend Listing Submission?', 'settings', 'WPBDM' ),
368
- 'desc' => _x( 'Prevents the Submit Listing button from showing on the main UI, but allows a shortcode for submit listing to function on other pages.', 'settings', 'WPBDM'),
369
  'group' => 'general/advanced',
370
  )
371
  );
@@ -373,8 +373,8 @@ final class WPBDP__Settings__Bootstrap {
373
  array(
374
  'id' => 'enqueue-fontawesome-styles',
375
  'type' => 'checkbox',
376
- 'name' => _x( 'Enqueue Business Directory\'s FontAwesome styles?', 'settings', 'WPBDM' ),
377
- 'desc' => _x( 'This helps to prevent conflicts with other plugins that already do this. Disable this only if you\'re having an issue with FontAwesome icons and have performed a conflict test to validate this is a multiple styles enqueueing issue.', 'settings', 'WPBDM'),
378
  'default' => true,
379
  'group' => 'general/advanced',
380
  )
@@ -405,16 +405,16 @@ final class WPBDP__Settings__Bootstrap {
405
  }
406
 
407
  private static function settings_listings() {
408
- wpbdp_register_settings_group( 'listings/post_category', _x( 'Post/Category Settings', 'settings', 'WPBDM' ), 'listings' );
409
- wpbdp_register_settings_group( 'listings/contact', _x( 'Contact Form', 'settings', 'WPBDM' ), 'listings' );
410
- wpbdp_register_settings_group( 'listings/report', _x( 'Report Listings', 'settings', 'WPBDM' ), 'listings' );
411
- wpbdp_register_settings_group( 'listings/sorting', _x( 'Listings Sorting', 'settings', 'WPBDM' ), 'listings' );
412
  wpbdp_register_setting(
413
  array(
414
  'id' => 'listings-per-page',
415
  'type' => 'number',
416
- 'name' => _x( 'Listings per page', 'settings', 'WPBDM' ),
417
- 'desc' => _x( 'Number of listings to show per page. Use a value of "0" to show all listings.', 'settings', 'WPBDM' ),
418
  'default' => '10',
419
  'min' => 0,
420
  'step' => 1,
@@ -425,8 +425,8 @@ final class WPBDP__Settings__Bootstrap {
425
  array(
426
  'id' => 'listing-duration',
427
  'type' => 'number',
428
- 'name' => _x( 'Listing duration for no-fee sites (in days)', 'settings', 'WPBDM' ),
429
- 'desc' => _x( 'Use a value of "0" to keep a listing alive indefinitely or enter a number less than 10 years (3650 days).', 'settings', 'WPBDM' ),
430
  'default' => '365',
431
  'min' => 0,
432
  'step' => 1,
@@ -438,7 +438,7 @@ final class WPBDP__Settings__Bootstrap {
438
  array(
439
  'id' => 'listing-renewal',
440
  'type' => 'checkbox',
441
- 'name' => _x( 'Turn on listing renewal option?', 'settings', 'WPBDM' ),
442
  'default' => true,
443
  'group' => 'listings/main',
444
  )
@@ -447,7 +447,7 @@ final class WPBDP__Settings__Bootstrap {
447
  array(
448
  'id' => 'listing-link-in-new-tab',
449
  'type' => 'checkbox',
450
- 'name' => _x( 'Open detailed view of listing in new tab?', 'settings', 'WPBDM' ),
451
  'default' => false,
452
  'group' => 'listings/main',
453
  )
@@ -457,7 +457,7 @@ final class WPBDP__Settings__Bootstrap {
457
  array(
458
  'id' => 'enable-listing-flagging',
459
  'type' => 'checkbox',
460
- 'name' => _x( 'Include button to report listings?', 'settings', 'WPBDM' ),
461
  'default' => false,
462
  'group' => 'listings/report',
463
  )
@@ -466,7 +466,7 @@ final class WPBDP__Settings__Bootstrap {
466
  array(
467
  'id' => 'listing-flagging-register-users',
468
  'type' => 'checkbox',
469
- 'name' => _x( 'Enable report listing for registered users only', 'settings', 'WPBDM' ),
470
  'default' => true,
471
  'group' => 'listings/report',
472
  'requirements' => array( 'enable-listing-flagging' ),
@@ -476,8 +476,8 @@ final class WPBDP__Settings__Bootstrap {
476
  array(
477
  'id' => 'listing-flagging-options',
478
  'type' => 'textarea',
479
- 'name' => _x( 'Report listing option list', 'settings', 'WPBDM' ),
480
- 'desc' => _x( 'Form option list to report a listing as inappropriate. One option per line.', 'settings', 'WPBDM' ),
481
  'default' => false,
482
  'group' => 'listings/report',
483
  'requirements' => array( 'enable-listing-flagging' ),
@@ -488,8 +488,8 @@ final class WPBDP__Settings__Bootstrap {
488
  array(
489
  'id' => 'show-contact-form',
490
  'type' => 'checkbox',
491
- 'name' => _x( 'Include listing contact form on listing pages?', 'settings', 'WPBDM' ),
492
- 'desc' => _x( 'Allows visitors to contact listing authors privately. Authors will receive the messages via email.', 'settings', 'WPBDM' ),
493
  'default' => true,
494
  'group' => 'listings/contact',
495
  )
@@ -498,7 +498,7 @@ final class WPBDP__Settings__Bootstrap {
498
  array(
499
  'id' => 'contact-form-require-login',
500
  'type' => 'checkbox',
501
- 'name' => _x( 'Require login for using the contact form?', 'settings', 'WPBDM' ),
502
  'default' => false,
503
  'group' => 'listings/contact',
504
  'requirements' => array( 'show-contact-form' ),
@@ -509,8 +509,8 @@ final class WPBDP__Settings__Bootstrap {
509
  array(
510
  'id' => 'contact-form-registered-users-limit',
511
  'type' => 'number',
512
- 'name' => _x( 'Maximum number of daily contact form submits from registered users', 'settings', 'WPBDM' ),
513
- 'desc' => _x( 'Use this to prevent spamming of listing owners from logged in users. 0 means unlimited submits per day.', 'settings', 'WPBDM' ),
514
  'default' => '0',
515
  'min' => 0,
516
  'step' => 1,
@@ -522,8 +522,8 @@ final class WPBDP__Settings__Bootstrap {
522
  array(
523
  'id' => 'contact-form-daily-limit',
524
  'type' => 'number',
525
- 'name' => _x( 'Maximum number of contact form submits for each listing per day', 'settings', 'WPBDM' ),
526
- 'desc' => _x( 'Use this to set contact submits limit for each listing in the directory. 0 means unlimited submits per day.', 'settings', 'WPBDM' ),
527
  'default' => '0',
528
  'min' => 0,
529
  'step' => 1,
@@ -535,13 +535,13 @@ final class WPBDP__Settings__Bootstrap {
535
  array(
536
  'id' => 'allow-comments-in-listings',
537
  'type' => 'radio',
538
- 'name' => _x( 'Include comment form on listing pages?', 'settings', 'WPBDM' ),
539
- 'desc' => _x( 'BD uses the standard comment inclusion from WordPress, but most themes only allow for comments on posts, not pages. Some themes handle both. BD is displayed on a page, so we need a theme that can handle both to show comments. Use the 2nd option if you want to allow comments on listings first, and if that doesn\'t work, try the 3rd option instead.', 'settings', 'WPBDM' ),
540
  'default' => get_option( 'wpbdp-show-comment-form', false ) ? 'allow-comments-and-insert-template' : 'do-not-allow-comments',
541
  'options' => array(
542
- 'do-not-allow-comments' => _x( 'Do not include comments in listings', 'admin settings', 'WPBDM' ),
543
- 'allow-comments' => _x( 'Include comment form, theme invoked (standard option)', 'admin settings', 'WPBDM' ),
544
- 'allow-comments-and-insert-template' => _x( "Include comment form, BD invoked (use only if 2nd option doesn't work)", 'admin settings', 'WPBDM' ),
545
  ),
546
  'group' => 'listings/main',
547
  )
@@ -550,7 +550,7 @@ final class WPBDP__Settings__Bootstrap {
550
  array(
551
  'id' => 'show-listings-under-categories',
552
  'type' => 'checkbox',
553
- 'name' => _x( 'Show listings under categories on main page?', 'settings', 'WPBDM' ),
554
  'default' => false,
555
  'group' => 'listings/main',
556
  )
@@ -559,14 +559,14 @@ final class WPBDP__Settings__Bootstrap {
559
  array(
560
  'id' => 'prevent-sticky-on-directory-view',
561
  'type' => 'multicheck',
562
- 'name' => _x( 'Prevent featured (sticky) status on BD pages?', 'settings', 'WPBDM' ),
563
- 'desc' => _x( 'Prevents featured listings from floating to the top of the selected page.', 'settings', 'WPBDM' ),
564
  'default' => array(),
565
  'options' => array(
566
- 'main' => _x( 'Directory view.', 'admin settings', 'WPBDM' ),
567
- 'all_listings' => _x( 'All Listings view.', 'admin settings', 'WPBDM' ),
568
- 'show_category' => _x( 'Category view.', 'admin settings', 'WPBDM' ),
569
- 'search' => _x( 'Search view.', 'admin settings', 'WPBDM' ),
570
  ),
571
  'group' => 'listings/main',
572
  )
@@ -574,7 +574,7 @@ final class WPBDP__Settings__Bootstrap {
574
  $admin = get_user_by( 'email', get_option( 'new_admin_email' ) );
575
  if ( ! $admin ) {
576
  $admin_users = get_users( array( 'fields' => array( 'ID' ), 'role' => 'administrator' ) );
577
-
578
  if ( $admin_users ) {
579
  $admin = $admin_users[0];
580
  }
@@ -582,10 +582,10 @@ final class WPBDP__Settings__Bootstrap {
582
  wpbdp_register_setting(
583
  array(
584
  'id' => 'default-listing-author',
585
- 'name' => _x( 'Default owner of \'Anonymous Submitted Listings\'', 'settings', 'WPBDM' ),
586
  'type' => 'select',
587
  'default' => $admin ? $admin->ID : '1',
588
- 'desc' => _x( 'New listings must have an author, If login is not required to submit listings, this user will own them, typically the administrator of the site or some other user that will never actually be managing a listing.', 'settings', 'WPBDM' ),
589
  'options' => wpbdp_users_dropdown(),
590
  'group' => 'listings/main',
591
  )
@@ -594,11 +594,11 @@ final class WPBDP__Settings__Bootstrap {
594
  array(
595
  'id' => 'status-on-uninstall',
596
  'type' => 'radio',
597
- 'name' => _x( 'Status of listings upon uninstalling plugin', 'settings', 'WPBDM' ),
598
  'default' => 'trash',
599
  'options' => array(
600
- 'draft' => _x( 'Draft', 'post status', 'WPBDM' ),
601
- 'trash' => _x( 'Trash', 'post status', 'WPBDM' ),
602
  ),
603
  'group' => 'listings/main',
604
  )
@@ -607,11 +607,11 @@ final class WPBDP__Settings__Bootstrap {
607
  array(
608
  'id' => 'deleted-status',
609
  'type' => 'radio',
610
- 'name' => _x( 'Status of deleted listings', 'settings', 'WPBDM' ),
611
  'default' => 'trash',
612
  'options' => array(
613
- 'draft' => _x( 'Draft', 'post status', 'WPBDM' ),
614
- 'trash' => _x( 'Trash', 'post status', 'WPBDM' ),
615
  ),
616
  'group' => 'listings/main',
617
  )
@@ -620,8 +620,8 @@ final class WPBDP__Settings__Bootstrap {
620
  array(
621
  'id' => 'submit-instructions',
622
  'type' => 'textarea',
623
- 'name' => _x( 'Submit Listing instructions message', 'settings', 'WPBDM' ),
624
- 'desc' => _x( 'This text is displayed at the first page of the Submit Listing process for Business Directory. You can use it for instructions about filling out the form or anything you want to tell users before they get started.', 'settings', 'WPBDM' ),
625
  'default' => '',
626
  'group' => 'listings/main',
627
  )
@@ -631,11 +631,11 @@ final class WPBDP__Settings__Bootstrap {
631
  array(
632
  'id' => 'new-post-status',
633
  'type' => 'radio',
634
- 'name' => _x( 'Default new post status', 'settings', 'WPBDM' ),
635
  'default' => 'pending',
636
  'options' => array(
637
- 'publish' => _x( 'Published', 'post status', 'WPBDM' ),
638
- 'pending' => _x( 'Pending', 'post status', 'WPBDM' ),
639
  ),
640
  'group' => 'listings/post_category',
641
  )
@@ -644,11 +644,11 @@ final class WPBDP__Settings__Bootstrap {
644
  array(
645
  'id' => 'edit-post-status',
646
  'type' => 'radio',
647
- 'name' => _x( 'Edit post status', 'settings', 'WPBDM' ),
648
  'default' => 'publish',
649
  'options' => array(
650
- 'publish' => _x( 'Published', 'post status', 'WPBDM' ),
651
- 'pending' => _x( 'Pending', 'post status', 'WPBDM' ),
652
  ),
653
  'group' => 'listings/post_category',
654
  )
@@ -657,12 +657,12 @@ final class WPBDP__Settings__Bootstrap {
657
  array(
658
  'id' => 'categories-order-by',
659
  'type' => 'radio',
660
- 'name' => _x( 'Order categories list by', 'settings', 'WPBDM' ),
661
  'default' => 'name',
662
  'options' => array(
663
- 'name' => _x( 'Name', 'admin settings', 'WPBDM' ),
664
- 'slug' => _x( 'Slug', 'admin settings', 'WPBDM' ),
665
- 'count' => _x( 'Listing Count', 'admin settings', 'WPBDM' ),
666
  ),
667
  'group' => 'listings/post_category',
668
  )
@@ -671,11 +671,11 @@ final class WPBDP__Settings__Bootstrap {
671
  array(
672
  'id' => 'categories-sort',
673
  'type' => 'radio',
674
- 'name' => _x( 'Sort order for categories', 'settings', 'WPBDM' ),
675
  'default' => 'ASC',
676
  'options' => array(
677
- 'ASC' => _x( 'Ascending', 'admin settings', 'WPBDM' ),
678
- 'DESC' => _x( 'Descending', 'admin settings', 'WPBDM' ),
679
  ),
680
  'group' => 'listings/post_category',
681
  )
@@ -684,7 +684,7 @@ final class WPBDP__Settings__Bootstrap {
684
  array(
685
  'id' => 'show-category-post-count',
686
  'type' => 'checkbox',
687
- 'name' => _x( 'Show category post count?', 'settings', 'WPBDM' ),
688
  'default' => true,
689
  'group' => 'listings/post_category',
690
  )
@@ -693,7 +693,7 @@ final class WPBDP__Settings__Bootstrap {
693
  array(
694
  'id' => 'hide-empty-categories',
695
  'type' => 'checkbox',
696
- 'name' => _x( 'Hide empty categories?', 'settings', 'WPBDM' ),
697
  'default' => false,
698
  'group' => 'listings/post_category',
699
  )
@@ -702,32 +702,32 @@ final class WPBDP__Settings__Bootstrap {
702
  array(
703
  'id' => 'show-only-parent-categories',
704
  'type' => 'checkbox',
705
- 'name' => _x( 'Show only parent categories in category list?', 'settings', 'WPBDM' ),
706
  'default' => false,
707
  'group' => 'listings/post_category',
708
  )
709
  );
710
 
711
- $msg = _x( 'Fee Plan Custom Order can be changed under <a>Manage Fees</a>', 'admin settings', 'WPBDM' );
712
  $msg = str_replace( '<a>', '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp-admin-fees' ) ) . '">', $msg );
713
  wpbdp_register_setting(
714
  array(
715
  'id' => 'listings-order-by',
716
  'type' => 'select',
717
- 'name' => _x( 'Order directory listings by', 'settings', 'WPBDM' ),
718
  'desc' => $msg,
719
  'default' => 'title',
720
  'options' => apply_filters( 'wpbdp_sort_options',
721
  array(
722
- 'title' => _x( 'Title', 'admin settings', 'WPBDM' ),
723
- 'author' => _x( 'Author', 'admin settings', 'WPBDM' ),
724
- 'date' => _x( 'Date posted', 'admin settings', 'WPBDM' ),
725
- 'modified' => _x( 'Date last modified', 'admin settings', 'WPBDM' ),
726
- 'rand' => _x( 'Random', 'admin settings', 'WPBDM' ),
727
- 'paid' => _x( 'Paid first then free. Inside each group by date.', 'admin settings', 'WPBDM' ),
728
- 'paid-title' => _x( 'Paid first then free. Inside each group by title.', 'admin settings', 'WPBDM' ),
729
- 'plan-order-date' => _x( 'Fee Plan Custom Order, then Date', 'admin settings', 'WPBDM' ),
730
- 'plan-order-title' => _x( 'Fee Plan Custom Order, then Title', 'admin settings', 'WPBDM' ),
731
  )
732
  ),
733
  'group' => 'listings/sorting',
@@ -737,12 +737,12 @@ final class WPBDP__Settings__Bootstrap {
737
  array(
738
  'id' => 'listings-sort',
739
  'type' => 'radio',
740
- 'name' => _x( 'Sort directory listings by', 'settings', 'WPBDM' ),
741
- 'desc' => _x( 'Ascending for ascending order A-Z, Descending for descending order Z-A', 'settings', 'WPBDM' ),
742
  'default' => 'ASC',
743
  'options' => array(
744
- 'ASC' => _x( 'Ascending', 'admin settings', 'WPBDM' ),
745
- 'DESC' => _x( 'Descending', 'admin settings', 'WPBDM' ),
746
  ),
747
  'group' => 'listings/sorting',
748
  )
@@ -751,7 +751,7 @@ final class WPBDP__Settings__Bootstrap {
751
  array(
752
  'id' => 'listings-sortbar-enabled',
753
  'type' => 'checkbox',
754
- 'name' => _x( 'Enable sort bar?', 'settings', 'WPBDM' ),
755
  'default' => false,
756
  'group' => 'listings/sorting',
757
  )
@@ -760,7 +760,7 @@ final class WPBDP__Settings__Bootstrap {
760
  array(
761
  'id' => 'listings-sortbar-fields',
762
  'type' => 'multicheck',
763
- 'name' => _x( 'Sortbar Fields', 'settings', 'WPBDM' ),
764
  'default' => array(),
765
  'options' => wpbdp_sortbar_get_field_options(),
766
  'group' => 'listings/sorting',
@@ -771,13 +771,13 @@ final class WPBDP__Settings__Bootstrap {
771
 
772
  private static function settings_appearance() {
773
  // Display Options.
774
- wpbdp_register_settings_group( 'display_options', _x( 'Directory Display Options', 'settings', 'WPBDM' ), 'appearance/main' );
775
  wpbdp_register_setting(
776
  array(
777
  'id' => 'show-submit-listing',
778
  'type' => 'checkbox',
779
- 'name' => _x( 'Show the "Submit listing" button.', 'settings', 'WPBDM' ),
780
- 'desc' => _x( 'Hides the button used by the main UI to allow listing submission, but does not shut off the use of the link for submitting listings (allows you to customize the submit listing button on your own)', 'settings', 'WPBDM'),
781
  'default' => true,
782
  'group' => 'display_options',
783
  'requirements' => array( '!disable-submit-listing' ),
@@ -787,7 +787,7 @@ final class WPBDP__Settings__Bootstrap {
787
  array(
788
  'id' => 'show-search-listings',
789
  'type' => 'checkbox',
790
- 'name' => _x( 'Show "Search listings".', 'settings', 'WPBDM' ),
791
  'default' => true,
792
  'group' => 'display_options',
793
  )
@@ -796,33 +796,42 @@ final class WPBDP__Settings__Bootstrap {
796
  array(
797
  'id' => 'show-view-listings',
798
  'type' => 'checkbox',
799
- 'name' => _x( 'Show the "View Listings" button.', 'settings', 'WPBDM' ),
800
  'default' => true,
801
  'group' => 'display_options',
802
  )
803
  );
 
 
 
 
 
 
 
 
 
804
  wpbdp_register_setting(
805
  array(
806
  'id' => 'show-directory-button',
807
  'type' => 'checkbox',
808
- 'name' => _x( 'Show the "Directory" button.', 'settings', 'WPBDM' ),
809
  'default' => true,
810
  'group' => 'display_options',
811
  )
812
  );
813
 
814
  // Themes.
815
- wpbdp_register_settings_group( 'themes', _x( 'Theme Settings', 'settings', 'WPBDM' ), 'appearance', array( 'desc' => str_replace( '<a>', '<a href="' . admin_url( 'admin.php?page=wpbdp-themes' ) . '">', _x( 'You can manage your themes on <a>Directory Themes</a>.', 'admin settings', 'WPBDM' ) ) ) );
816
 
817
  wpbdp_register_setting(
818
  array(
819
  'id' => 'themes-button-style',
820
  'type' => 'radio',
821
- 'name' => _x( 'Theme button style', 'settings', 'WPBDM' ),
822
  'default' => 'theme',
823
  'options' => array(
824
- 'theme' => _x( 'Use the BD theme style for BD buttons', 'admin settings', 'WPBDM' ),
825
- 'none' => _x( 'Use the WP theme style for BD buttons', 'admin settings', 'WPBDM' ),
826
  ),
827
  'group' => 'themes',
828
  )
@@ -831,20 +840,20 @@ final class WPBDP__Settings__Bootstrap {
831
  array(
832
  'id' => 'include-button-styles',
833
  'type' => 'checkbox',
834
- 'name' => _x( 'Include CSS rules to give their own style to View, Edit and Delete buttons?', 'settings', 'WPBDM' ),
835
  'default' => 1,
836
  'group' => 'themes',
837
  )
838
  );
839
 
840
  // Image.
841
- wpbdp_register_settings_group( 'appearance/image', _x( 'Image', 'settings', 'WPBDM' ), 'appearance' );
842
- wpbdp_register_settings_group( 'images/general', _x( 'Image Settings', 'settings', 'WPBDM' ), 'appearance/image', array( 'desc' => 'Any changes to these settings will affect new listings only. Existing listings will not be affected. If you wish to change existing listings, you will need to re-upload the image(s) on that listing after changing things here.' ) );
843
  wpbdp_register_setting(
844
  array(
845
  'id' => 'allow-images',
846
  'type' => 'checkbox',
847
- 'name' => _x( 'Allow images?', 'settings', 'WPBDM' ),
848
  'default' => true,
849
  'group' => 'images/general',
850
  )
@@ -855,7 +864,7 @@ final class WPBDP__Settings__Bootstrap {
855
  'type' => 'number',
856
  'min' => 0,
857
  'step' => 1,
858
- 'name' => _x( 'Min Image File Size (KB)', 'settings', 'WPBDM' ),
859
  'default' => '0',
860
  'group' => 'images/general',
861
  )
@@ -866,7 +875,7 @@ final class WPBDP__Settings__Bootstrap {
866
  'type' => 'number',
867
  'min' => 0,
868
  'step' => 1,
869
- 'name' => _x( 'Max Image File Size (KB)', 'settings', 'WPBDM' ),
870
  'default' => '10000',
871
  'group' => 'images/general',
872
  )
@@ -877,7 +886,7 @@ final class WPBDP__Settings__Bootstrap {
877
  'type' => 'number',
878
  'min' => 0,
879
  'step' => 1,
880
- 'name' => _x( 'Min image width (px)', 'settings', 'WPBDM' ),
881
  'default' => '0',
882
  'group' => 'images/general',
883
  )
@@ -886,7 +895,7 @@ final class WPBDP__Settings__Bootstrap {
886
  array(
887
  'id' => 'image-min-height',
888
  'type' => 'number',
889
- 'name' => _x( 'Min image height (px)', 'settings', 'WPBDM' ),
890
  'default' => '0',
891
  'min' => 0,
892
  'step' => 1,
@@ -899,7 +908,7 @@ final class WPBDP__Settings__Bootstrap {
899
  'type' => 'number',
900
  'min' => 0,
901
  'step' => 1,
902
- 'name' => _x( 'Max image width (px)', 'settings', 'WPBDM' ),
903
  'default' => '500',
904
  'group' => 'images/general',
905
  )
@@ -910,7 +919,7 @@ final class WPBDP__Settings__Bootstrap {
910
  'type' => 'number',
911
  'min' => 0,
912
  'step' => 1,
913
- 'name' => _x( 'Max image height (px)', 'settings', 'WPBDM' ),
914
  'default' => '500',
915
  'group' => 'images/general',
916
  )
@@ -921,21 +930,21 @@ final class WPBDP__Settings__Bootstrap {
921
  'type' => 'checkbox',
922
  'min' => 0,
923
  'step' => 1,
924
- 'name' => _x( 'Turn on thickbox/lightbox?', 'settings', 'WPBDM' ),
925
- 'desc' => _x( 'Uncheck if it conflicts with other elements or plugins installed on your site', 'settings', 'WPBDM' ),
926
  'default' => false,
927
  'group' => 'images/general',
928
  )
929
  );
930
 
931
- wpbdp_register_settings_group( 'image/thumbnails', _x( 'Thumbnails', 'settings', 'WPBDM' ), 'appearance/image' );
932
  wpbdp_register_setting(
933
  array(
934
  'id' => 'thumbnail-width',
935
  'type' => 'number',
936
  'min' => 0,
937
  'step' => 1,
938
- 'name' => _x( 'Thumbnail width (px)', 'settings', 'WPBDM' ),
939
  'default' => '150',
940
  'group' => 'image/thumbnails',
941
  )
@@ -946,7 +955,7 @@ final class WPBDP__Settings__Bootstrap {
946
  'type' => 'number',
947
  'min' => 0,
948
  'step' => 1,
949
- 'name' => _x( 'Thumbnail height (px)', 'settings', 'WPBDM' ),
950
  'default' => '150',
951
  'group' => 'image/thumbnails',
952
  )
@@ -955,19 +964,19 @@ final class WPBDP__Settings__Bootstrap {
955
  array(
956
  'id' => 'thumbnail-crop',
957
  'type' => 'checkbox',
958
- 'name' => _x( 'Crop thumbnails to exact dimensions?', 'settings', 'WPBDM' ),
959
- 'desc' => _x( 'When enabled images will match exactly the dimensions above but part of the image may be cropped out. If disabled, image thumbnails will be resized to match the specified width and their height will be adjusted proportionally. Depending on the uploaded images, thumbnails may have different heights.', 'settings', 'WPBDM' ),
960
  'default' => false,
961
  'group' => 'image/thumbnails',
962
  )
963
  );
964
 
965
- wpbdp_register_settings_group( 'image/listings', _x( 'Listings', 'settings', 'WPBDM' ), 'appearance/image' );
966
  wpbdp_register_setting(
967
  array(
968
  'id' => 'enforce-image-upload',
969
  'type' => 'checkbox',
970
- 'name' => _x( 'Enforce image upload on submit/edit?', 'settings', 'WPBDM' ),
971
  'default' => false,
972
  'group' => 'image/listings',
973
  )
@@ -976,11 +985,11 @@ final class WPBDP__Settings__Bootstrap {
976
  array(
977
  'id' => 'free-images',
978
  'type' => 'number',
979
- 'name' => _x( 'Number of free images', 'settings', 'WPBDM' ),
980
  'default' => '2',
981
  'min' => 0,
982
  'step' => 1,
983
- 'desc' => str_replace( '<a>', '<a href="' . admin_url( 'admin.php?page=wpbdp-admin-fees' ) . '">', _x( 'For paid listing images, configure that by adding or editing a <a>Fee Plan</a> instead of this setting, which is ignored for paid listings.', 'admin settings', 'WPBDM' ) ),
984
  'group' => 'image/listings',
985
  )
986
  );
@@ -988,11 +997,11 @@ final class WPBDP__Settings__Bootstrap {
988
  array(
989
  'id' => 'use-default-picture',
990
  'type' => 'multicheck',
991
- 'name' => _x( 'Use "Coming Soon" photo for listings without any (primary) images?', 'settings', 'WPBDM' ),
992
  'default' => array(),
993
  'options' => array(
994
- 'excerpt' => _x( 'Excerpt view.', 'admin settings', 'WPBDM' ),
995
- 'listing' => _x( 'Detail view.', 'admin settings', 'WPBDM' ),
996
  ),
997
  'group' => 'image/listings',
998
  )
@@ -1001,10 +1010,10 @@ final class WPBDP__Settings__Bootstrap {
1001
  array(
1002
  'id' => 'listing-main-image-default-size',
1003
  'type' => 'select',
1004
- 'name' => _x( 'Default thumbnail image size', 'settings', 'WPBDM' ),
1005
  'default' => 'wpbdp-thumb',
1006
  'options' => self::get_registered_image_sizes(),
1007
- 'desc' => _x( 'This indicates the size of the thumbnail to be used both in excerpt and detail views. For CROPPED image size values, we use the EXACT size defined. For all other values, we preserve the aspect ratio of the image and use the width as the starting point.', 'settings', 'WPBDM' ),
1008
  'group' => 'image/listings',
1009
  )
1010
  );
@@ -1012,27 +1021,27 @@ final class WPBDP__Settings__Bootstrap {
1012
  array(
1013
  'id' => 'show-thumbnail',
1014
  'type' => 'checkbox',
1015
- 'name' => _x( 'Show Thumbnail on main listings page?', 'settings', 'WPBDM' ),
1016
  'default' => true,
1017
  'group' => 'image/listings',
1018
  )
1019
  );
1020
  wpbdp_register_setting(
1021
  array(
1022
- 'id' => 'listings-sticky-image',
1023
- 'type' => 'file',
1024
- 'name' => _x( 'Featured Badge image', 'settings', 'WPBDM' ),
1025
- 'default' => '',
1026
- 'group' => 'image/listings',
1027
  )
1028
  );
1029
  wpbdp_register_setting(
1030
  array(
1031
  'id' => 'sticky-image-link-to',
1032
  'type' => 'url',
1033
- 'name' => _x( 'Featured Badge URL', 'settings', 'WPBDM' ),
1034
- 'desc' => _x( 'Use this to set Featured Badge image as a link to a defined URL.', 'settings', 'WPBDM' ),
1035
- 'placeholder' => _x( 'URL', 'settings', 'WPBDM' ),
1036
  'default' => '',
1037
  'group' => 'image/listings',
1038
  )
@@ -1041,12 +1050,11 @@ final class WPBDP__Settings__Bootstrap {
1041
  array(
1042
  'id' => 'display-sticky-badge',
1043
  'type' => 'multicheck',
1044
- 'name' => _x( 'Display featured (sticky) badge on listing:', 'settings', 'WPBDM' ),
1045
- 'desc' => _x( '', 'settings', 'WPBDM' ),
1046
  'default' => array( 'single' ),
1047
  'options' => array(
1048
- 'excerpt' => _x( 'Excerpt view.', 'admin settings', 'WPBDM' ),
1049
- 'single' => _x( 'Detail view.', 'admin settings', 'WPBDM' ),
1050
  ),
1051
  'group' => 'image/listings',
1052
  )
@@ -1058,7 +1066,7 @@ final class WPBDP__Settings__Bootstrap {
1058
  array(
1059
  'id' => 'fee-order',
1060
  'type' => 'silent',
1061
- 'name' => _x( 'Fee Order', 'settings', 'WPBDM' ),
1062
  'default' => array(
1063
  'method' => 'label',
1064
  'order' => 'asc',
@@ -1071,7 +1079,7 @@ final class WPBDP__Settings__Bootstrap {
1071
  array(
1072
  'id' => 'payments-on',
1073
  'type' => 'checkbox',
1074
- 'name' => _x( 'Turn On payments?', 'settings', 'WPBDM' ),
1075
  'default' => false,
1076
  'group' => 'payment/main',
1077
  )
@@ -1080,7 +1088,7 @@ final class WPBDP__Settings__Bootstrap {
1080
  array(
1081
  'id' => 'payments-test-mode',
1082
  'type' => 'checkbox',
1083
- 'name' => _x( 'Put payment gateways in test mode?', 'settings', 'WPBDM' ),
1084
  'default' => true,
1085
  'group' => 'payment/main',
1086
  'requirements' => array( 'payments-on' ),
@@ -1090,8 +1098,8 @@ final class WPBDP__Settings__Bootstrap {
1090
  array(
1091
  'id' => 'payments-use-https',
1092
  'type' => 'checkbox',
1093
- 'name' => _x( 'Perform checkouts on the secure (HTTPS) version of your site?', 'settings', 'WPBDM' ),
1094
- 'desc' => _x( 'Recommended for added security. For this to work you need to enable HTTPS on your server and obtain an SSL certificate.', 'settings', 'WPBDM' ),
1095
  'default' => false,
1096
  'group' => 'payment/main',
1097
  'requirements' => array( 'payments-on' ),
@@ -1099,17 +1107,17 @@ final class WPBDP__Settings__Bootstrap {
1099
  );
1100
 
1101
  $aed_usupported_gateways = apply_filters( 'wpbdp_aed_not_supported', wpbdp_get_option( 'authorize-net', false ) ? array( 'Authorize.net' ) : array() );
1102
- $desc = '';
1103
 
1104
  if ( $aed_usupported_gateways ) {
1105
  $desc = sprintf(
1106
- _x( 'AED currency is not supported by %s. %s', 'admin settings', 'WPBDM' ),
1107
  '<b>' . implode( ' or ', $aed_usupported_gateways ) . '</b>',
1108
  _n(
1109
  'If you are using this gateway, we recommend you disable it if you wish to collect payments in this currency.',
1110
  'If you are using these gateways, we recommend you disable them if you wish to collect payments in this currency.',
1111
  count( $aed_usupported_gateways ),
1112
- 'WPBDM'
1113
  )
1114
  );
1115
  }
@@ -1118,35 +1126,35 @@ final class WPBDP__Settings__Bootstrap {
1118
  array(
1119
  'id' => 'currency',
1120
  'type' => 'select',
1121
- 'name' => _x( 'Currency Code', 'settings', 'WPBDM' ),
1122
  'default' => 'USD',
1123
  'options' => array(
1124
- 'AUD' => _x( 'Australian Dollar (AUD)', 'admin settings', 'WPBDM' ),
1125
- 'BRL' => _x( 'Brazilian Real (BRL)', 'admin settings', 'WPBDM' ),
1126
- 'CAD' => _x( 'Canadian Dollar (CAD)', 'admin settings', 'WPBDM' ),
1127
- 'CZK' => _x( 'Czech Koruna (CZK)', 'admin settings', 'WPBDM' ),
1128
- 'DKK' => _x( 'Danish Krone (DKK)', 'admin settings', 'WPBDM' ),
1129
- 'AED' => _x( 'United Arab Emirates Dirham (AED)', 'admin settings', 'WPBDM' ),
1130
- 'EUR' => _x( 'Euro (EUR)', 'admin settings', 'WPBDM' ),
1131
- 'HKD' => _x( 'Hong Kong Dollar (HKD)', 'admin settings', 'WPBDM' ),
1132
- 'HUF' => _x( 'Hungarian Forint (HUF)', 'admin settings', 'WPBDM' ),
1133
- 'ILS' => _x( 'Israeli New Shequel (ILS)', 'admin settings', 'WPBDM' ),
1134
- 'JPY' => _x( 'Japanese Yen (JPY)', 'admin settings', 'WPBDM' ),
1135
- 'MAD' => _x( 'Moroccan Dirham (MAD)', 'admin settings', 'WPBDM' ),
1136
- 'MYR' => _x( 'Malasian Ringgit (MYR)', 'admin settings', 'WPBDM' ),
1137
- 'MXN' => _x( 'Mexican Peso (MXN)', 'admin settings', 'WPBDM' ),
1138
- 'NOK' => _x( 'Norwegian Krone (NOK)', 'admin settings', 'WPBDM' ),
1139
- 'NZD' => _x( 'New Zealand Dollar (NZD)', 'admin settings', 'WPBDM' ),
1140
- 'PHP' => _x( 'Philippine Peso (PHP)', 'admin settings', 'WPBDM' ),
1141
- 'PLN' => _x( 'Polish Zloty (PLN)', 'admin settings', 'WPBDM' ),
1142
- 'GBP' => _x( 'Pound Sterling (GBP)', 'admin settings', 'WPBDM' ),
1143
- 'SGD' => _x( 'Singapore Dollar (SGD)', 'admin settings', 'WPBDM' ),
1144
- 'SEK' => _x( 'Swedish Krona (SEK)', 'admin settings', 'WPBDM' ),
1145
- 'CHF' => _x( 'Swiss Franc (CHF)', 'admin settings', 'WPBDM' ),
1146
- 'TWD' => _x( 'Taiwan Dollar (TWD)', 'admin settings', 'WPBDM' ),
1147
- 'THB' => _x( 'Thai Baht (THB)', 'admin settings', 'WPBDM' ),
1148
- 'TRY' => _x( 'Turkish Lira (TRY)', 'admin settings', 'WPBDM' ),
1149
- 'USD' => _x( 'U.S. Dollar (USD)', 'admin settings', 'WPBDM' ),
1150
  ),
1151
  'desc' => $desc,
1152
  'group' => 'payment/main',
@@ -1157,7 +1165,7 @@ final class WPBDP__Settings__Bootstrap {
1157
  array(
1158
  'id' => 'currency-symbol',
1159
  'type' => 'text',
1160
- 'name' => _x( 'Currency Symbol', 'settings', 'WPBDM' ),
1161
  'default' => '$',
1162
  'group' => 'payment/main',
1163
  'requirements' => array( 'payments-on' ),
@@ -1167,12 +1175,12 @@ final class WPBDP__Settings__Bootstrap {
1167
  array(
1168
  'id' => 'currency-symbol-position',
1169
  'type' => 'radio',
1170
- 'name' => _x( 'Currency symbol display', 'settings', 'WPBDM' ),
1171
  'default' => 'left',
1172
  'options' => array(
1173
- 'left' => _x( 'Show currency symbol on the left', 'admin settings', 'WPBDM' ),
1174
- 'right' => _x( 'Show currency symbol on the right', 'admin settings', 'WPBDM' ),
1175
- 'none' => _x( 'Do not show currency symbol', 'admin settings', 'WPBDM' ),
1176
  ),
1177
  'group' => 'payment/main',
1178
  'requirements' => array( 'payments-on' ),
@@ -1182,7 +1190,7 @@ final class WPBDP__Settings__Bootstrap {
1182
  array(
1183
  'id' => 'include-fee-description',
1184
  'type' => 'checkbox',
1185
- 'name' => _x( 'Include fee description in receipt?', 'settings', 'WPBDM' ),
1186
  'default' => false,
1187
  'group' => 'payment/main',
1188
  'requirements' => array( 'payments-on' ),
@@ -1192,8 +1200,8 @@ final class WPBDP__Settings__Bootstrap {
1192
  array(
1193
  'id' => 'payment-message',
1194
  'type' => 'textarea',
1195
- 'name' => _x( 'Thank you for payment message', 'settings', 'WPBDM' ),
1196
- 'default' => _x( 'Thank you for your payment. Your payment is being verified and your listing reviewed. The verification and review process could take up to 48 hours.', 'admin settings', 'WPBDM' ),
1197
  'group' => 'payment/main',
1198
  'requirements' => array( 'payments-on' ),
1199
  )
@@ -1202,8 +1210,8 @@ final class WPBDP__Settings__Bootstrap {
1202
  array(
1203
  'id' => 'payment-abandonment',
1204
  'type' => 'checkbox',
1205
- 'name' => _x( 'Ask users to come back for abandoned payments?', 'settings', 'WPBDM' ),
1206
- 'desc' => _x( 'An abandoned payment is when a user attempts to place a listing and gets to the end, but fails to complete their payment for the listing. This results in listings that look like they failed, when the user simply didn\'t complete the transaction. BD can remind them to come back and continue.', 'settings', 'WPBDM' ),
1207
  'default' => false,
1208
  'group' => 'payment/main',
1209
  'requirements' => array( 'payments-on' ),
@@ -1213,8 +1221,8 @@ final class WPBDP__Settings__Bootstrap {
1213
  array(
1214
  'id' => 'payment-abandonment-threshold',
1215
  'type' => 'number',
1216
- 'name' => _x( 'Listing abandonment threshold (hours)', 'settings', 'WPBDM' ),
1217
- 'desc' => str_replace( '<a>', '<a href="' . admin_url( 'admin.php?page=wpbdp_settings&tab=email' ) . '#email-templates-payment-abandoned">', _x( 'Listings with pending payments are marked as abandoned after this time. You can also <a>customize the e-mail</a> users receive.', 'admin settings', 'WPBDM' ) ),
1218
  'default' => '24',
1219
  'min' => 0,
1220
  'step' => 1,
@@ -1225,13 +1233,13 @@ final class WPBDP__Settings__Bootstrap {
1225
  }
1226
 
1227
  private static function settings_email() {
1228
- wpbdp_register_settings_group( 'email/main/general', _x( 'General Settings', 'settings', 'WPBDM' ), 'email/main' );
1229
  wpbdp_register_setting(
1230
  array(
1231
  'id' => 'override-email-blocking',
1232
  'type' => 'checkbox',
1233
- 'name' => _x( 'Display email address fields publicly?', 'settings', 'WPBDM' ),
1234
- 'desc' => _x( 'Shows the email address of the listing owner to all web users. NOT RECOMMENDED as this increases spam to the address and allows spam bots to harvest it for future use.', 'settings', 'WPBDM' ),
1235
  'default' => false,
1236
  'group' => 'email/main/general',
1237
  )
@@ -1240,12 +1248,12 @@ final class WPBDP__Settings__Bootstrap {
1240
  array(
1241
  'id' => 'listing-email-mode',
1242
  'type' => 'radio',
1243
- 'name' => _x( 'How to determine the listing\'s email address?', 'settings', 'WPBDM' ),
1244
- 'desc' => _x( 'This affects emails sent to listing owners via contact forms or when their listings expire.', 'settings', 'WPBDM' ),
1245
  'default' => 'field',
1246
  'options' => array(
1247
- 'field' => _x( 'Try listing\'s email field first, then author\'s email.', 'admin settings', 'WPBDM' ),
1248
- 'user' => _x( 'Try author\'s email first and then listing\'s email field.', 'admin settings', 'WPBDM' ),
1249
  ),
1250
  'group' => 'email/main/general',
1251
  )
@@ -1254,33 +1262,33 @@ final class WPBDP__Settings__Bootstrap {
1254
  array(
1255
  'id' => 'listing-email-content-type',
1256
  'type' => 'radio',
1257
- 'name' => _x( 'Email Content-Type header', 'settings', 'WPBDM' ),
1258
- 'desc' => _x( 'Use this setting to control the format of the emails explicitly. Some plugins for email do not correctly support Content Type unless explicitly set, you can do that here. If you\'re unsure, try "HTML", "Plain" and then "Both".', 'settings', 'WPBDM' ),
1259
  'default' => 'html',
1260
  'options' => array(
1261
- 'plain' => _x( 'Plain (text/plain)', 'admin settings', 'WPBDM' ),
1262
- 'html' => _x( 'HTML (text/html)', 'admin settings', 'WPBDM' ),
1263
- 'both' => _x( 'Both (multipart/alternative)', 'admin settings', 'WPBDM' ),
1264
  ),
1265
  'group' => 'email/main/general',
1266
  )
1267
  );
1268
 
1269
- wpbdp_register_settings_group( 'email_notifications', _x( 'E-Mail Notifications', 'settings', 'WPBDM' ), 'email/main' );
1270
  wpbdp_register_setting(
1271
  array(
1272
  'id' => 'admin-notifications',
1273
  'type' => 'multicheck',
1274
- 'name' => _x( 'Notify admin via e-mail when...', 'settings', 'WPBDM' ),
1275
  'default' => array(),
1276
  'options' => array(
1277
- 'new-listing' => _x( 'A new listing is submitted.', 'admin settings', 'WPBDM' ),
1278
- 'listing-edit' => _x( 'A listing is edited.', 'admin settings', 'WPBDM' ),
1279
- 'renewal' => _x( 'A listing expires.', 'admin settings', 'WPBDM' ),
1280
- 'after_renewal' => _x( 'A listing is renewed.', 'admin settings', 'WPBDM' ),
1281
- 'payment-completed'=> _x( 'A listing payment is completed.', 'admin settings', 'WPBDM' ),
1282
- 'flagging_listing' => _x( 'A listing has been reported as inappropriate.', 'admin settings', 'WPBDM' ),
1283
- 'listing-contact' => _x( 'A contact message is sent to a listing\'s owner.', 'admin settings', 'WPBDM' ),
1284
  ),
1285
  'group' => 'email_notifications',
1286
  )
@@ -1289,47 +1297,47 @@ final class WPBDP__Settings__Bootstrap {
1289
  array(
1290
  'id' => 'admin-notifications-cc',
1291
  'type' => 'text',
1292
- 'name' => _x( 'CC this e-mail address too', 'settings', 'WPBDM' ),
1293
  'group' => 'email_notifications',
1294
  )
1295
  );
1296
 
1297
  $settings_url = admin_url( 'admin.php?page=wpbdp_settings&tab=email&subtab=email_templates' );
1298
- $description = _x( 'You can modify the text template used for most of these e-mails in the <templates-link>Templates</templates-link> tab.', 'settings', 'WPBDM' );
1299
  $description = str_replace( '<templates-link>', '<a href="' . $settings_url . '">', $description );
1300
  $description = str_replace( '</templates-link>', '</a>', $description );
1301
 
1302
  wpbdp_register_setting( array(
1303
  'id' => 'user-notifications',
1304
  'type' => 'multicheck',
1305
- 'name' => _x( 'Notify users via e-mail when...', 'settings', 'WPBDM' ),
1306
  'desc' => $description,
1307
  'default' => array( 'new-listing', 'listing-published', 'listing-expires' ),
1308
  'options' => array(
1309
- 'new-listing' => _x( 'Their listing is submitted.', 'admin settings', 'WPBDM' ),
1310
- 'listing-published' => _x( 'Their listing is approved/published.', 'admin settings', 'WPBDM' ),
1311
- 'payment-completed' => _x( 'A payment for their listing is completed.', 'admin settings', 'WPBDM' ),
1312
- 'listing-expires' => _x( 'Their listing expired or is about to expire.', 'admin settings', 'WPBDM' ),
1313
  ),
1314
- 'group' => 'email_notifications'
1315
  ) );
1316
 
1317
- wpbdp_register_settings_group( 'email_templates', _x( 'Templates', 'settings', 'WPBDM' ), 'email' );
1318
  wpbdp_register_setting(
1319
  array(
1320
  'id' => 'email-confirmation-message',
1321
  'type' => 'email_template',
1322
- 'name' => _x( 'Email confirmation message', 'settings', 'WPBDM' ),
1323
- 'desc' => _x( 'Sent after a listing has been submitted.', 'settings', 'WPBDM' ),
1324
  'default' => array(
1325
  'subject' => '[[site-title]] Listing "[listing]" received',
1326
  'body' => 'Your submission \'[listing]\' has been received and it\'s pending review. This review process could take up to 48 hours.',
1327
  ),
1328
  'placeholders' => array(
1329
- 'listing' => _x( 'Listing\'s title', 'admin settings', 'WPBDM' ),
1330
- 'fee_name' => _x( 'Listing\'s fee plan name', 'admin settings', 'WPBDM' ),
1331
- 'fee_description' => _x( 'Listing\'s fee plan description', 'admin settings', 'WPBDM' ),
1332
- 'fee_details' => _x( 'Listing\'s fee plan details', 'admin settings', 'WPBDM' ),
1333
  ),
1334
  'group' => 'email_templates',
1335
  )
@@ -1338,16 +1346,16 @@ final class WPBDP__Settings__Bootstrap {
1338
  array(
1339
  'id' => 'email-templates-listing-published',
1340
  'type' => 'email_template',
1341
- 'name' => _x( 'Listing published message', 'settings', 'WPBDM' ),
1342
- 'desc' => _x( 'Sent when the listing has been published or approved by an admin.', 'settings', 'WPBDM' ),
1343
  'default' => array(
1344
  'subject' => '[[site-title]] Listing "[listing]" published',
1345
- 'body' => _x( 'Your listing "[listing]" is now available at [listing-url] and can be viewed by the public.', 'admin settings', 'WPBDM' ),
1346
  ),
1347
  'placeholders' => array(
1348
- 'listing' => _x( 'Listing\'s title', 'admin settings', 'WPBDM' ),
1349
- 'listing-url' => _x( 'Listing\'s URL', 'admin settings', 'WPBDM' ),
1350
- 'access_key' => _x( 'Listing\'s Access Key', 'admin settings', 'WPBDM' ),
1351
  ),
1352
  'group' => 'email_templates',
1353
  )
@@ -1356,26 +1364,26 @@ final class WPBDP__Settings__Bootstrap {
1356
  array(
1357
  'id' => 'email-templates-contact',
1358
  'type' => 'email_template',
1359
- 'name' => _x( 'Listing Contact Message', 'settings', 'WPBDM' ),
1360
- 'desc' => _x( 'Sent to listing owners when someone uses the contact form on their listing pages.', 'settings', 'WPBDM' ),
1361
  'default' => array(
1362
  'subject' => '[[site-title]] Contact via "[listing]"',
1363
  'body' => '' .
1364
- sprintf( _x( 'You have received a reply from your listing at %s.', 'contact email', 'WPBDM' ), '[listing-url]' ) . "\n\n" .
1365
- sprintf( _x( 'Name: %s', 'contact email', 'WPBDM' ), '[name]' ) . "\n" .
1366
- sprintf( _x( 'E-Mail: %s', 'contact email', 'WPBDM' ), '[email]' ) . "\n" .
1367
- _x( 'Message:', 'contact email', 'WPBDM' ) . "\n" .
1368
- '[message]' . "\n\n" .
1369
- sprintf( _x( 'Time: %s', 'contact email', 'WPBDM' ), '[date]' ),
1370
  ),
1371
  'placeholders' => array(
1372
- 'listing-url' => _x( 'Listing\'s URL', 'admin settings', 'WPBDM' ),
1373
- 'listing' => _x( 'Listing\'s title', 'admin settings', 'WPBDM' ),
1374
- 'name' => _x( 'Sender\'s name', 'admin settings', 'WPBDM' ),
1375
- 'email' => _x( 'Sender\'s e-mail address', 'admin settings', 'WPBDM' ),
1376
- 'message' => _x( 'Contact message', 'admin settings', 'WPBDM' ),
1377
- 'date' => _x( 'Date and time the message was sent', 'admin settings', 'WPBDM' ),
1378
- 'access_key' => _x( 'Listing\'s Access Key', 'admin settings', 'WPBDM' ),
1379
  ),
1380
  'group' => 'email_templates',
1381
  )
@@ -1385,8 +1393,8 @@ final class WPBDP__Settings__Bootstrap {
1385
  array(
1386
  'id' => 'email-templates-payment-completed',
1387
  'type' => 'email_template',
1388
- 'name' => _x( 'Payment completed message', 'settings', 'WPBDM' ),
1389
- 'desc' => _x( 'Sent after a Listing\'s payment is verified by Gateway or admins.', 'settings', 'WPBDM' ),
1390
  'default' => array(
1391
  'subject' => '[[site-title]] Payment completed for "[listing]"',
1392
  'body' => '
@@ -1405,13 +1413,13 @@ final class WPBDP__Settings__Bootstrap {
1405
  - The Administrator of [site-title]',
1406
  ),
1407
  'placeholders' => array(
1408
- 'listing' => _x( 'Listing\'s title', 'admin settings', 'WPBDM' ),
1409
- 'fee_name' => _x( 'Listing\'s fee plan name', 'admin settings', 'WPBDM' ),
1410
- 'fee_description' => _x( 'Listing\'s fee plan description', 'admin settings', 'WPBDM' ),
1411
- 'fee_details' => _x( 'Listing\'s fee plan details', 'admin settings', 'WPBDM' ),
1412
- 'payment_details' => _x( 'Payment items details.', 'admin settings', 'WPBDM' ),
1413
- 'receipt_url' => _x( 'URL where user can review and print payment receipt.', 'admin settings', 'WPBDM' ),
1414
- 'gateway' => _x( 'Gateway used to process listing\'s payment.', 'admin settings', 'WPBDM' ),
1415
  ),
1416
  'group' => 'email_templates',
1417
  )
@@ -1421,8 +1429,8 @@ final class WPBDP__Settings__Bootstrap {
1421
  array(
1422
  'id' => 'email-templates-payment-abandoned',
1423
  'type' => 'email_template',
1424
- 'name' => _x( 'Payment abandoned reminder message', 'settings', 'WPBDM' ),
1425
- 'desc' => _x( 'Sent some time after a pending payment is abandoned by users.', 'settings', 'WPBDM' ),
1426
  'default' => array(
1427
  'subject' => '[[site-title]] Pending payment for "[listing]"',
1428
  'body' => '
@@ -1441,25 +1449,18 @@ final class WPBDP__Settings__Bootstrap {
1441
  - The Administrator of [site-title]',
1442
  ),
1443
  'placeholders' => array(
1444
- 'listing' => _x( 'Listing\'s title', 'admin settings', 'WPBDM' ),
1445
- 'link' => _x( 'Checkout URL link', 'admin settings', 'WPBDM' ),
1446
  ),
1447
  'group' => 'email_templates',
1448
  )
1449
  );
1450
 
1451
- // wpbdp_register_setting( array(
1452
- // 'id' => 'email-renewal-reminders_settings',
1453
- // 'type' => 'section',
1454
- // 'name' => _x( 'Expiration/Renewal Notices', 'settings', 'WPBDM' ),
1455
- // 'desc' => _x( 'You can configure here the text for the expiration/renewal emails and also how long before/after expiration/renewal they are sent.', 'settings', 'WPBDM' ),
1456
- // 'tab' => 'email'
1457
- // ) );
1458
  wpbdp_register_setting(
1459
  array(
1460
  'id' => 'expiration-notices',
1461
  'type' => 'expiration_notices',
1462
- 'name' => _x( 'E-Mail Notices', 'settings', 'WPBDM' ),
1463
  'default' => self::get_default_expiration_notices(),
1464
  'group' => 'email_templates',
1465
  'validator' => array( __class__, 'validate_expiration_notices' ),
@@ -1478,12 +1479,6 @@ final class WPBDP__Settings__Bootstrap {
1478
  'subject' => '[[site-title]] [listing] - Your listing is about to expire',
1479
  'body' => 'Your listing "[listing]" is about to expire at [site]. You can renew it here: [link].',
1480
  );
1481
- // array( 'placeholders' => array( 'listing' => _x( 'Listing\'s name (with link)', 'settings', 'WPBDM' ),
1482
- // 'author' => _x( 'Author\'s name', 'settings', 'WPBDM' ),
1483
- // 'expiration' => _x( 'Expiration date', 'settings', 'WPBDM' ),
1484
- // 'category' => _x( 'Category that is going to expire', 'settings', 'WPBDM' ),
1485
- // 'link' => _x( 'Link to renewal page', 'settings', 'WPBDM' ),
1486
- // 'site' => _x( 'Link to your site', 'settings', 'WPBDM' ) ) )
1487
  /* listing-renewal-message, non-recurring only */
1488
  $notices[] = array(
1489
  'event' => 'expiration',
@@ -1492,12 +1487,6 @@ final class WPBDP__Settings__Bootstrap {
1492
  'subject' => 'Your listing on [site-title] expired',
1493
  'body' => "Your listing \"[listing]\" in category [category] expired on [expiration]. To renew your listing click the link below.\n[link]",
1494
  );
1495
- // array( 'placeholders' => array( 'listing' => _x( 'Listing\'s name (with link)', 'settings', 'WPBDM' ),
1496
- // 'author' => _x( 'Author\'s name', 'settings', 'WPBDM' ),
1497
- // 'expiration' => _x( 'Expiration date', 'settings', 'WPBDM' ),
1498
- // 'category' => _x( 'Category that expired', 'settings', 'WPBDM' ),
1499
- // 'link' => _x( 'Link to renewal page', 'settings', 'WPBDM' ),
1500
- // 'site' => _x( 'Link to your site', 'settings', 'WPBDM' ) ) )
1501
  /* renewal-reminder-message, both recurring and non-recurring */
1502
  $notices[] = array(
1503
  'event' => 'expiration',
@@ -1506,12 +1495,6 @@ final class WPBDP__Settings__Bootstrap {
1506
  'subject' => '[[site-title]] [listing] - Expiration reminder',
1507
  'body' => "Dear Customer\nWe've noticed that you haven't renewed your listing \"[listing]\" for category [category] at [site] and just wanted to remind you that it expired on [expiration]. Please remember you can still renew it here: [link].",
1508
  );
1509
- // array( 'placeholders' => array( 'listing' => _x( 'Listing\'s name (with link)', 'settings', 'WPBDM' ),
1510
- // 'author' => _x( 'Author\'s name', 'settings', 'WPBDM' ),
1511
- // 'expiration' => _x( 'Expiration date', 'settings', 'WPBDM' ),
1512
- // 'category' => _x( 'Category that expired', 'settings', 'WPBDM' ),
1513
- // 'link' => _x( 'Link to renewal page', 'settings', 'WPBDM' ),
1514
- // 'site' => _x( 'Link to your site', 'settings', 'WPBDM' ) ) )
1515
  /* listing-autorenewal-notice, recurring only, controlled by the send-autorenewal-expiration-notice setting */
1516
  $notices[] = array(
1517
  'event' => 'expiration',
@@ -1520,12 +1503,6 @@ final class WPBDP__Settings__Bootstrap {
1520
  'subject' => '[[site-title]] [listing] - Renewal reminder',
1521
  'body' => "Hey [author],\n\nThis is just to remind you that your listing [listing] is going to be renewed on [expiration] for another period.\nIf you want to review or cancel your subscriptions please visit [link].\n\nIf you have any questions, contact us at [site].",
1522
  );
1523
- // array( 'placeholders' => array( 'listing' => _x( 'Listing\'s name (with link)', 'settings', 'WPBDM' ),
1524
- // 'author' => _x( 'Author\'s name', 'settings', 'WPBDM' ),
1525
- // 'date' => _x( 'Renewal date', 'settings', 'WPBDM' ),
1526
- // 'category' => _x( 'Category that is going to be renewed', 'settings', 'WPBDM' ),
1527
- // 'site' => _x( 'Link to your site', 'settings', 'WPBDM' ),
1528
- // 'link' => _x( 'Link to manage subscriptions', 'settings', 'WPBDM' ) ) )
1529
  /* listing-autorenewal-message, after IPN notification of renewal of recurring */
1530
  $notices[] = array(
1531
  'event' => 'renewal',
@@ -1534,17 +1511,6 @@ final class WPBDP__Settings__Bootstrap {
1534
  'subject' => '[[site-title]] [listing] renewed',
1535
  'body' => "Hey [author],\n\nThanks for your payment. We just renewed your listing [listing] on [payment_date] for another period.\n\nIf you have any questions, contact us at [site].",
1536
  );
1537
- // $replacements['listing'] = sprintf( '<a href="%s">%s</a>',
1538
- // get_permalink( $payment->get_listing_id() ),
1539
- // get_the_title( $payment->get_listing_id() ) );
1540
- // $replacements['author'] = get_the_author_meta( 'display_name', get_post( $payment->get_listing_id() )->post_author );
1541
- // $replacements['category'] = wpbdp_get_term_name( $recurring_item->rel_id_1 );
1542
- // $replacements['date'] = date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ),
1543
- // strtotime( $payment->get_processed_on() ) );
1544
- // $replacements['site'] = sprintf( '<a href="%s">%s</a>',
1545
- // get_bloginfo( 'url' ),
1546
- // get_bloginfo( 'name' ) );
1547
- //
1548
  return $notices;
1549
  }
1550
 
@@ -1581,7 +1547,7 @@ final class WPBDP__Settings__Bootstrap {
1581
  _x(
1582
  'Could not remove the "Business Directory Plugin - AJAX Compatibility Module". Please remove the file "%s" manually or deactivate the plugin.',
1583
  'admin settings',
1584
- 'WPBDM'
1585
  ),
1586
  $dest
1587
  ),
@@ -1594,12 +1560,12 @@ final class WPBDP__Settings__Bootstrap {
1594
  $success = true;
1595
 
1596
  if ( ! wp_mkdir_p( $mu_dir ) ) {
1597
- $message = array( sprintf( _x( 'Could not activate AJAX Compatibility mode: the directory "%s" could not be created.', 'admin settings', 'WPBDM' ), $mu_dir ), 'error' );
1598
  $success = false;
1599
  }
1600
 
1601
  if ( $success && ! copy( $source, $dest ) ) {
1602
- $message = array( sprintf( _x( 'Could not copy the AJAX compatibility plugin "%s". Compatibility mode was not activated.', 'admin settings', 'WPBDM' ), $dest ), 'error' );
1603
  $success = false;
1604
  }
1605
 
@@ -1629,10 +1595,10 @@ final class WPBDP__Settings__Bootstrap {
1629
 
1630
  global $_wp_additional_image_sizes;
1631
 
1632
- $sizes = array( 'uploaded' => _x( 'Uploaded Image (no resize)', 'admin settings', 'WPBDM' ) );
1633
 
1634
  foreach ( get_intermediate_image_sizes() as $_size ) {
1635
- if ( in_array( $_size, array('thumbnail', 'medium', 'medium_large', 'large') ) ) {
1636
  $name = 'WP ' . ucwords( str_replace( '_', ' ', $_size ) );
1637
  $width = get_option( "{$_size}_size_w" );
1638
  $height = get_option( "{$_size}_size_h" );
@@ -1650,7 +1616,7 @@ final class WPBDP__Settings__Bootstrap {
1650
  $name,
1651
  $width,
1652
  $height == 9999 ? '*' : $height,
1653
- $crop ? _x( 'Cropped', 'settings', 'WPBDM' ) : ''
1654
  );
1655
  }
1656
 
22
  final class WPBDP__Settings__Bootstrap {
23
 
24
  public static function register_initial_groups() {
25
+ wpbdp_register_settings_group( 'general', _x( 'General', 'settings', 'business-directory-plugin' ) );
26
 
27
+ wpbdp_register_settings_group( 'listings', _x( 'Listings', 'settings', 'business-directory-plugin' ) );
28
+ wpbdp_register_settings_group( 'listings/main', _x( 'General Settings', 'settings', 'business-directory-plugin' ), 'listings' );
29
 
30
+ wpbdp_register_settings_group( 'email', _x( 'E-Mail', 'settings', 'business-directory-plugin' ) );
31
+ wpbdp_register_settings_group( 'email/main', _x( 'General Settings', 'settings', 'business-directory-plugin' ), 'email' );
32
 
33
+ wpbdp_register_settings_group( 'payment', _x( 'Payment', 'settings', 'business-directory-plugin' ) );
34
+ wpbdp_register_settings_group( 'payment/main', _x( 'General Settings', 'settings', 'business-directory-plugin' ), 'payment' );
35
 
36
+ wpbdp_register_settings_group( 'appearance', _x( 'Appearance', 'settings', 'business-directory-plugin' ) );
37
+ wpbdp_register_settings_group( 'appearance/main', _x( 'General Settings', 'settings', 'business-directory-plugin' ), 'appearance' );
38
 
39
+ wpbdp_register_settings_group( 'modules', _x( 'Premium Modules', 'settings', 'business-directory-plugin' ) );
 
40
  }
41
 
42
  public static function register_initial_settings() {
48
  }
49
 
50
  private static function settings_general() {
51
+ wpbdp_register_settings_group( 'general/main', _x( 'General Settings', 'settings', 'business-directory-plugin' ), 'general' );
52
 
53
  // Permalinks.
54
+ wpbdp_register_settings_group( 'permalink_settings', _x( 'Permalink Settings', 'settings', 'business-directory-plugin' ), 'general/main' );
55
  wpbdp_register_setting(
56
  array(
57
  'id' => 'permalinks-directory-slug',
58
  'type' => 'text',
59
+ 'name' => _x( 'Directory Listings Slug', 'settings', 'business-directory-plugin' ),
60
  'default' => 'wpbdp_listing',
61
  'group' => 'permalink_settings',
62
  'validator' => 'no-spaces,trim,required',
66
  array(
67
  'id' => 'permalinks-category-slug',
68
  'type' => 'text',
69
+ 'name' => _x( 'Categories Slug', 'settings', 'business-directory-plugin' ),
70
+ 'desc' => _x( 'The slug can\'t be in use by another term. Avoid "category", for instance.', 'settings', 'business-directory-plugin' ),
71
  'default' => 'wpbdp_category',
72
  'group' => 'permalink_settings',
73
  'taxonomy' => WPBDP_CATEGORY_TAX,
78
  array(
79
  'id' => 'permalinks-tags-slug',
80
  'type' => 'text',
81
+ 'name' => _x( 'Tags Slug', 'settings', 'business-directory-plugin' ),
82
+ 'desc' => _x( 'The slug can\'t be in use by another term. Avoid "tag", for instance.', 'settings', 'business-directory-plugin' ),
83
  'default' => 'wpbdp_tag',
84
  'group' => 'permalink_settings',
85
  'taxonomy' => WPBDP_TAGS_TAX,
90
  array(
91
  'id' => 'permalinks-no-id',
92
  'type' => 'checkbox',
93
+ 'name' => _x( 'Remove listing ID from directory URLs?', 'settings', 'business-directory-plugin' ),
94
+ 'desc' => _x( 'Check this setting to remove the ID for better SEO.', 'settings', 'business-directory-plugin' ),
95
+ 'tooltip' => _x( 'Prior to 3.5.1, we included the ID in the listing URL, like "/business-directory/1809/listing-title".', 'settings', 'business-directory-plugin' ) . _x( '<strong>IMPORTANT:</strong> subpages of the main directory page cannot be accesed while this setting is checked.', 'admin settings', 'business-directory-plugin' ),
96
  'group' => 'permalink_settings',
97
  )
98
  );
100
  // reCAPTCHA.
101
  wpbdp_register_settings_group(
102
  'recaptcha',
103
+ _x( 'reCAPTCHA', 'settings', 'business-directory-plugin' ),
104
  'general',
105
  array(
106
+ 'desc' => str_replace( '<a>', '<a href="http://www.google.com/recaptcha" target="_blank" rel="noopener">', _x( 'Need API keys for reCAPTCHA? Get them <a>here</a>.', 'settings', 'business-directory-plugin' ) ),
107
  )
108
  );
109
  wpbdp_register_setting(
110
  array(
111
  'id' => 'recaptcha-on',
112
  'type' => 'checkbox',
113
+ 'name' => _x( 'Use reCAPTCHA for contact forms', 'settings', 'business-directory-plugin' ),
114
  'group' => 'recaptcha',
115
  )
116
  );
118
  array(
119
  'id' => 'hide-recaptcha-loggedin',
120
  'type' => 'checkbox',
121
+ 'name' => _x( 'Turn off reCAPTCHA for logged in users?', 'settings', 'business-directory-plugin' ),
122
  'group' => 'recaptcha',
123
  )
124
  );
126
  array(
127
  'id' => 'recaptcha-for-submits',
128
  'type' => 'checkbox',
129
+ 'name' => _x( 'Use reCAPTCHA for listing submits', 'settings', 'business-directory-plugin' ),
130
  'group' => 'recaptcha',
131
  )
132
  );
134
  array(
135
  'id' => 'recaptcha-for-edits',
136
  'type' => 'checkbox',
137
+ 'name' => _x( 'Use reCAPTCHA for edit listings', 'settings', 'business-directory-plugin' ),
138
  'group' => 'recaptcha',
139
  )
140
  );
142
  array(
143
  'id' => 'recaptcha-for-flagging',
144
  'type' => 'checkbox',
145
+ 'name' => _x( 'Use reCAPTCHA for report listings', 'settings', 'business-directory-plugin' ),
146
  'group' => 'recaptcha',
147
  )
148
  );
150
  array(
151
  'id' => 'recaptcha-for-comments',
152
  'type' => 'checkbox',
153
+ 'name' => _x( 'Use reCAPTCHA for listing comments?', 'settings', 'business-directory-plugin' ),
154
  'group' => 'recaptcha',
155
  )
156
  );
158
  array(
159
  'id' => 'recaptcha-public-key',
160
  'type' => 'text',
161
+ 'name' => _x( 'reCAPTCHA Public Key', 'settings', 'business-directory-plugin' ),
162
  'default' => '',
163
  'group' => 'recaptcha',
164
  )
167
  array(
168
  'id' => 'recaptcha-private-key',
169
  'type' => 'text',
170
+ 'name' => _x( 'reCAPTCHA Private Key', 'settings', 'business-directory-plugin' ),
171
  'default' => '',
172
  'group' => 'recaptcha',
173
  )
176
  array(
177
  'id' => 'recaptcha-version',
178
  'type' => 'select',
179
+ 'name' => _x( 'reCAPTCHA version', 'settings', 'business-directory-plugin' ),
180
  'default' => 'v2',
181
  'options' => array(
182
  'v2' => 'V2',
189
  array(
190
  'id' => 'recaptcha-threshold',
191
  'type' => 'number',
192
+ 'name' => _x( 'reCAPTCHA V3 threshold score', 'settings', 'business-directory-plugin' ),
193
  'default' => 0.5,
194
  'min' => 0,
195
  'step' => 0.1,
196
  'max' => 1,
197
+ 'desc' => _x( 'reCAPTCHA v3 returns a score (1.0 is very likely a good interaction, 0.0 is very likely a bot). Based on the score, you can take variable action in the context of your site. You can set here the score threshold, scores under this value will result in reCAPTCHA validation error.', 'settings', 'business-directory-plugin' ),
198
  'group' => 'recaptcha',
199
  )
200
  );
201
 
202
+ wpbdp_register_settings_group( 'registration', _x( 'Registration', 'settings', 'business-directory-plugin' ), 'general', array( 'desc' => _x( "We expect that a membership plugin supports the 'redirect_to' parameter for the URLs below to work. If the plugin does not support them, these settings will not function as expected. Please contact the membership plugin and ask them to support the WP standard 'redirect_to' query parameter.", 'settings', 'business-directory-plugin' ) ) );
203
  wpbdp_register_setting(
204
  array(
205
  'id' => 'require-login',
206
  'type' => 'checkbox',
207
+ 'name' => _x( 'Require login to post listings?', 'settings', 'business-directory-plugin' ),
208
  'default' => 1,
209
  'group' => 'registration',
210
  )
213
  array(
214
  'id' => 'enable-key-access',
215
  'type' => 'checkbox',
216
+ 'name' => _x( 'Allow anonymous users to edit/manage listings with an access key?', 'settings', 'business-directory-plugin' ),
217
  'group' => 'registration',
218
  )
219
  );
221
  array(
222
  'id' => 'login-url',
223
  'type' => 'text',
224
+ 'name' => _x( 'Login URL', 'settings', 'business-directory-plugin' ),
225
+ 'desc' => _x( 'Only enter this if using a membership plugin or custom login page.', 'settings', 'business-directory-plugin' ),
226
+ 'placeholder' => _x( 'URL of your membership plugin\'s login page.', 'settings', 'business-directory-plugin' ),
227
  'default' => '',
228
  'group' => 'registration',
229
  )
232
  array(
233
  'id' => 'registration-url',
234
  'type' => 'text',
235
+ 'name' => _x( 'Registration URL', 'settings', 'business-directory-plugin' ),
236
+ 'desc' => _x( 'Only enter this if using a membership plugin or custom registration page.', 'settings', 'business-directory-plugin' ),
237
+ 'placeholder' => _x( 'URL of your membership plugin\'s registration page.', 'settings', 'business-directory-plugin' ),
238
  'default' => '',
239
  'group' => 'registration',
240
  )
243
  array(
244
  'id' => 'create-account-during-submit-mode',
245
  'type' => 'radio',
246
+ 'name' => _x( 'Allow users to create accounts during listing submit?', 'settings', 'business-directory-plugin' ),
247
  'default' => 'required',
248
  'options' => array(
249
+ 'disabled' => _x( 'No', 'settings', 'business-directory-plugin' ),
250
+ 'optional' => _x( 'Yes, and make it optional', 'settings', 'business-directory-plugin' ),
251
+ 'required' => _x( 'Yes, and make it required', 'settings', 'business-directory-plugin' ),
252
  ),
253
  'group' => 'registration',
254
  )
255
  );
256
 
257
  // Terms & Conditions.
258
+ wpbdp_register_settings_group( 'tos_settings', _x( 'Terms and Conditions', 'settings', 'business-directory-plugin' ), 'general/main' );
259
  wpbdp_register_setting(
260
  array(
261
  'id' => 'display-terms-and-conditions',
262
  'type' => 'checkbox',
263
+ 'name' => _x( 'Display and require user agreement to Terms and Conditions', 'settings', 'business-directory-plugin' ),
264
  'group' => 'tos_settings',
265
  )
266
  );
267
  wpbdp_register_setting(
268
  array(
269
+ 'id' => 'terms-and-conditions',
270
+ 'type' => 'textarea',
271
+ 'name' => _x( 'Terms and Conditions', 'settings', 'business-directory-plugin' ),
272
+ 'desc' => _x( 'Enter text or a URL starting with http. If you use a URL, the Terms and Conditions text will be replaced by a link to the appropiate page.', 'settings', 'business-directory-plugin' ),
273
+ 'default' => '',
274
+ 'placeholder' => _x( 'Terms and Conditions text goes here.', 'settings', 'business-directory-plugin' ),
275
+ 'group' => 'tos_settings',
276
+ 'requirements' => array( 'display-terms-and-conditions' ),
277
  )
278
  );
279
 
280
  // Tracking.
281
+ wpbdp_register_settings_group( 'tracking_settings', _x( 'Data Collection', 'settings', 'business-directory-plugin' ), 'general/main' );
282
  wpbdp_register_setting(
283
  array(
284
  'id' => 'tracking-on',
285
  'type' => 'checkbox',
286
+ 'name' => _x( 'Allow BD to anonymously collect information about your installed plugins, themes and WP version?', 'settings', 'business-directory-plugin' ),
287
+ 'desc' => str_replace( '<a>', '<a href="http://businessdirectoryplugin.com/what-we-track/" target="_blank" rel="noopener">', _x( '<a>Learn more</a> about what BD does and does NOT track.', 'admin settings', 'business-directory-plugin' ) ),
288
  'group' => 'tracking_settings',
289
  )
290
  );
291
 
292
  // Search.
293
+ wpbdp_register_settings_group( 'search_settings', _x( 'Directory Search', 'settings', 'business-directory-plugin' ), 'general/main' );
294
  wpbdp_register_setting(
295
  array(
296
  'id' => 'search-form-in-results',
297
  'type' => 'radio',
298
+ 'name' => _x( 'Search form display', 'settings', 'business-directory-plugin' ),
299
  'default' => 'above',
300
  'options' => array(
301
+ 'above' => _x( 'Above results', 'admin settings', 'business-directory-plugin' ),
302
+ 'below' => _x( 'Below results', 'admin settings', 'business-directory-plugin' ),
303
+ 'none' => _x( 'Don\'t show with results', 'admin settings', 'business-directory-plugin' ),
304
  ),
305
  'group' => 'search_settings',
306
  )
307
  );
308
 
309
  $too_many_fields = '<span class="text-fields-warning wpbdp-note" style="display: none;">';
310
+ $too_many_fields .= _x( 'You have selected a textarea field to be included in quick searches. Searches involving those fields are very expensive and could result in timeouts and/or general slowness.', 'admin settings', 'business-directory-plugin' );
311
  $too_many_fields .= '</span>';
312
 
313
  list( $fields, $text_fields, $default_fields ) = self::get_quicksearch_fields();
314
+ $no_fields = '<p><strong>' . _x( 'If no fields are selected, the following fields will be used in Quick Searches:', 'admin settings', 'business-directory-plugin' ) . ' ' . implode( ', ', $default_fields ) . '.</strong></p>';
315
 
316
  wpbdp_register_setting(
317
  array(
318
  'id' => 'quick-search-fields',
319
  'type' => 'multicheck',
320
+ 'name' => _x( 'Quick search fields', 'settings', 'business-directory-plugin' ),
321
+ 'desc' => _x( 'Choosing too many fields for inclusion into Quick Search can result in very slow search performance.', 'settings', 'business-directory-plugin' ) . $no_fields . $too_many_fields,
322
  'default' => array(),
323
  'multiple' => true,
324
  'options' => $fields,
332
  array(
333
  'id' => 'quick-search-enable-performance-tricks',
334
  'type' => 'checkbox',
335
+ 'name' => _x( 'Enable high performance searches?', 'settings', 'business-directory-plugin' ),
336
+ 'desc' => _x( 'Enabling this makes BD sacrifice result quality to improve speed. This is helpful if you\'re on shared hosting plans, where database performance is an issue.', 'settings', 'business-directory-plugin' ),
337
  'group' => 'search_settings',
338
  )
339
  );
340
 
341
  // Advanced settings.
342
+ wpbdp_register_settings_group( 'general/advanced', _x( 'Advanced', 'settings', 'business-directory-plugin' ), 'general' );
343
 
344
  wpbdp_register_setting(
345
  array(
346
  'id' => 'disable-cpt',
347
  'type' => 'checkbox',
348
+ 'name' => _x( 'Disable advanced CPT integration?', 'settings', 'business-directory-plugin' ),
349
  'group' => 'general/advanced',
350
  )
351
  );
353
  array(
354
  'id' => 'ajax-compat-mode',
355
  'type' => 'checkbox',
356
+ 'name' => _x( 'Enable AJAX compatibility mode?', 'settings', 'business-directory-plugin' ),
357
+ 'desc' => _x( 'Check this if you are having trouble with BD, particularly when importing or exporting CSV files.', 'admin settings', 'business-directory-plugin' )
358
+ . ' ' . str_replace( '<a>', '<a href="http://businessdirectoryplugin.com/support-forum/faq/how-to-check-for-plugin-and-theme-conflicts-with-bd/" target="_blank" rel="noopener">', _x( 'If this compatibility mode doesn\'t solve your issue, you may be experiencing a more serious conflict. <a>Here is an article</a> about how to test for theme and plugin conflicts with Business Directory.', 'settings', 'business-directory-plugin' ) ),
359
  'group' => 'general/advanced',
360
  'on_update' => array( __CLASS__, 'setup_ajax_compat_mode' ),
361
  )
364
  array(
365
  'id' => 'disable-submit-listing',
366
  'type' => 'checkbox',
367
+ 'name' => _x( 'Disable Frontend Listing Submission?', 'settings', 'business-directory-plugin' ),
368
+ 'desc' => _x( 'Prevents the Submit Listing button from showing on the main UI, but allows a shortcode for submit listing to function on other pages.', 'settings', 'business-directory-plugin' ),
369
  'group' => 'general/advanced',
370
  )
371
  );
373
  array(
374
  'id' => 'enqueue-fontawesome-styles',
375
  'type' => 'checkbox',
376
+ 'name' => _x( 'Enqueue Business Directory\'s FontAwesome styles?', 'settings', 'business-directory-plugin' ),
377
+ 'desc' => _x( 'This helps to prevent conflicts with other plugins that already do this. Disable this only if you\'re having an issue with FontAwesome icons and have performed a conflict test to validate this is a multiple styles enqueueing issue.', 'settings', 'business-directory-plugin' ),
378
  'default' => true,
379
  'group' => 'general/advanced',
380
  )
405
  }
406
 
407
  private static function settings_listings() {
408
+ wpbdp_register_settings_group( 'listings/post_category', _x( 'Post/Category Settings', 'settings', 'business-directory-plugin' ), 'listings' );
409
+ wpbdp_register_settings_group( 'listings/contact', _x( 'Contact Form', 'settings', 'business-directory-plugin' ), 'listings' );
410
+ wpbdp_register_settings_group( 'listings/report', _x( 'Report Listings', 'settings', 'business-directory-plugin' ), 'listings' );
411
+ wpbdp_register_settings_group( 'listings/sorting', _x( 'Listings Sorting', 'settings', 'business-directory-plugin' ), 'listings' );
412
  wpbdp_register_setting(
413
  array(
414
  'id' => 'listings-per-page',
415
  'type' => 'number',
416
+ 'name' => _x( 'Listings per page', 'settings', 'business-directory-plugin' ),
417
+ 'desc' => _x( 'Number of listings to show per page. Use a value of "0" to show all listings.', 'settings', 'business-directory-plugin' ),
418
  'default' => '10',
419
  'min' => 0,
420
  'step' => 1,
425
  array(
426
  'id' => 'listing-duration',
427
  'type' => 'number',
428
+ 'name' => _x( 'Listing duration for no-fee sites (in days)', 'settings', 'business-directory-plugin' ),
429
+ 'desc' => _x( 'Use a value of "0" to keep a listing alive indefinitely or enter a number less than 10 years (3650 days).', 'settings', 'business-directory-plugin' ),
430
  'default' => '365',
431
  'min' => 0,
432
  'step' => 1,
438
  array(
439
  'id' => 'listing-renewal',
440
  'type' => 'checkbox',
441
+ 'name' => _x( 'Turn on listing renewal option?', 'settings', 'business-directory-plugin' ),
442
  'default' => true,
443
  'group' => 'listings/main',
444
  )
447
  array(
448
  'id' => 'listing-link-in-new-tab',
449
  'type' => 'checkbox',
450
+ 'name' => _x( 'Open detailed view of listing in new tab?', 'settings', 'business-directory-plugin' ),
451
  'default' => false,
452
  'group' => 'listings/main',
453
  )
457
  array(
458
  'id' => 'enable-listing-flagging',
459
  'type' => 'checkbox',
460
+ 'name' => _x( 'Include button to report listings?', 'settings', 'business-directory-plugin' ),
461
  'default' => false,
462
  'group' => 'listings/report',
463
  )
466
  array(
467
  'id' => 'listing-flagging-register-users',
468
  'type' => 'checkbox',
469
+ 'name' => _x( 'Enable report listing for registered users only', 'settings', 'business-directory-plugin' ),
470
  'default' => true,
471
  'group' => 'listings/report',
472
  'requirements' => array( 'enable-listing-flagging' ),
476
  array(
477
  'id' => 'listing-flagging-options',
478
  'type' => 'textarea',
479
+ 'name' => _x( 'Report listing option list', 'settings', 'business-directory-plugin' ),
480
+ 'desc' => _x( 'Form option list to report a listing as inappropriate. One option per line.', 'settings', 'business-directory-plugin' ),
481
  'default' => false,
482
  'group' => 'listings/report',
483
  'requirements' => array( 'enable-listing-flagging' ),
488
  array(
489
  'id' => 'show-contact-form',
490
  'type' => 'checkbox',
491
+ 'name' => _x( 'Include listing contact form on listing pages?', 'settings', 'business-directory-plugin' ),
492
+ 'desc' => _x( 'Allows visitors to contact listing authors privately. Authors will receive the messages via email.', 'settings', 'business-directory-plugin' ),
493
  'default' => true,
494
  'group' => 'listings/contact',
495
  )
498
  array(
499
  'id' => 'contact-form-require-login',
500
  'type' => 'checkbox',
501
+ 'name' => _x( 'Require login for using the contact form?', 'settings', 'business-directory-plugin' ),
502
  'default' => false,
503
  'group' => 'listings/contact',
504
  'requirements' => array( 'show-contact-form' ),
509
  array(
510
  'id' => 'contact-form-registered-users-limit',
511
  'type' => 'number',
512
+ 'name' => _x( 'Maximum number of daily contact form submits from registered users', 'settings', 'business-directory-plugin' ),
513
+ 'desc' => _x( 'Use this to prevent spamming of listing owners from logged in users. 0 means unlimited submits per day.', 'settings', 'business-directory-plugin' ),
514
  'default' => '0',
515
  'min' => 0,
516
  'step' => 1,
522
  array(
523
  'id' => 'contact-form-daily-limit',
524
  'type' => 'number',
525
+ 'name' => _x( 'Maximum number of contact form submits for each listing per day', 'settings', 'business-directory-plugin' ),
526
+ 'desc' => _x( 'Use this to set contact submits limit for each listing in the directory. 0 means unlimited submits per day.', 'settings', 'business-directory-plugin' ),
527
  'default' => '0',
528
  'min' => 0,
529
  'step' => 1,
535
  array(
536
  'id' => 'allow-comments-in-listings',
537
  'type' => 'radio',
538
+ 'name' => _x( 'Include comment form on listing pages?', 'settings', 'business-directory-plugin' ),
539
+ 'desc' => _x( 'BD uses the standard comment inclusion from WordPress, but most themes only allow for comments on posts, not pages. Some themes handle both. BD is displayed on a page, so we need a theme that can handle both to show comments. Use the 2nd option if you want to allow comments on listings first, and if that doesn\'t work, try the 3rd option instead.', 'settings', 'business-directory-plugin' ),
540
  'default' => get_option( 'wpbdp-show-comment-form', false ) ? 'allow-comments-and-insert-template' : 'do-not-allow-comments',
541
  'options' => array(
542
+ 'do-not-allow-comments' => _x( 'Do not include comments in listings', 'admin settings', 'business-directory-plugin' ),
543
+ 'allow-comments' => _x( 'Include comment form, theme invoked (standard option)', 'admin settings', 'business-directory-plugin' ),
544
+ 'allow-comments-and-insert-template' => _x( "Include comment form, BD invoked (use only if 2nd option doesn't work)", 'admin settings', 'business-directory-plugin' ),
545
  ),
546
  'group' => 'listings/main',
547
  )
550
  array(
551
  'id' => 'show-listings-under-categories',
552
  'type' => 'checkbox',
553
+ 'name' => _x( 'Show listings under categories on main page?', 'settings', 'business-directory-plugin' ),
554
  'default' => false,
555
  'group' => 'listings/main',
556
  )
559
  array(
560
  'id' => 'prevent-sticky-on-directory-view',
561
  'type' => 'multicheck',
562
+ 'name' => _x( 'Prevent featured (sticky) status on BD pages?', 'settings', 'business-directory-plugin' ),
563
+ 'desc' => _x( 'Prevents featured listings from floating to the top of the selected page.', 'settings', 'business-directory-plugin' ),
564
  'default' => array(),
565
  'options' => array(
566
+ 'main' => _x( 'Directory view.', 'admin settings', 'business-directory-plugin' ),
567
+ 'all_listings' => _x( 'All Listings view.', 'admin settings', 'business-directory-plugin' ),
568
+ 'show_category' => _x( 'Category view.', 'admin settings', 'business-directory-plugin' ),
569
+ 'search' => _x( 'Search view.', 'admin settings', 'business-directory-plugin' ),
570
  ),
571
  'group' => 'listings/main',
572
  )
574
  $admin = get_user_by( 'email', get_option( 'new_admin_email' ) );
575
  if ( ! $admin ) {
576
  $admin_users = get_users( array( 'fields' => array( 'ID' ), 'role' => 'administrator' ) );
577
+
578
  if ( $admin_users ) {
579
  $admin = $admin_users[0];
580
  }
582
  wpbdp_register_setting(
583
  array(
584
  'id' => 'default-listing-author',
585
+ 'name' => _x( 'Default owner of \'Anonymous Submitted Listings\'', 'settings', 'business-directory-plugin' ),
586
  'type' => 'select',
587
  'default' => $admin ? $admin->ID : '1',
588
+ 'desc' => _x( 'New listings must have an author, If login is not required to submit listings, this user will own them, typically the administrator of the site or some other user that will never actually be managing a listing.', 'settings', 'business-directory-plugin' ),
589
  'options' => wpbdp_users_dropdown(),
590
  'group' => 'listings/main',
591
  )
594
  array(
595
  'id' => 'status-on-uninstall',
596
  'type' => 'radio',
597
+ 'name' => _x( 'Status of listings upon uninstalling plugin', 'settings', 'business-directory-plugin' ),
598
  'default' => 'trash',
599
  'options' => array(
600
+ 'draft' => _x( 'Draft', 'post status', 'business-directory-plugin' ),
601
+ 'trash' => _x( 'Trash', 'post status', 'business-directory-plugin' ),
602
  ),
603
  'group' => 'listings/main',
604
  )
607
  array(
608
  'id' => 'deleted-status',
609
  'type' => 'radio',
610
+ 'name' => _x( 'Status of deleted listings', 'settings', 'business-directory-plugin' ),
611
  'default' => 'trash',
612
  'options' => array(
613
+ 'draft' => _x( 'Draft', 'post status', 'business-directory-plugin' ),
614
+ 'trash' => _x( 'Trash', 'post status', 'business-directory-plugin' ),
615
  ),
616
  'group' => 'listings/main',
617
  )
620
  array(
621
  'id' => 'submit-instructions',
622
  'type' => 'textarea',
623
+ 'name' => _x( 'Submit Listing instructions message', 'settings', 'business-directory-plugin' ),
624
+ 'desc' => _x( 'This text is displayed at the first page of the Submit Listing process for Business Directory. You can use it for instructions about filling out the form or anything you want to tell users before they get started.', 'settings', 'business-directory-plugin' ),
625
  'default' => '',
626
  'group' => 'listings/main',
627
  )
631
  array(
632
  'id' => 'new-post-status',
633
  'type' => 'radio',
634
+ 'name' => _x( 'Default new post status', 'settings', 'business-directory-plugin' ),
635
  'default' => 'pending',
636
  'options' => array(
637
+ 'publish' => _x( 'Published', 'post status', 'business-directory-plugin' ),
638
+ 'pending' => _x( 'Pending', 'post status', 'business-directory-plugin' ),
639
  ),
640
  'group' => 'listings/post_category',
641
  )
644
  array(
645
  'id' => 'edit-post-status',
646
  'type' => 'radio',
647
+ 'name' => _x( 'Edit post status', 'settings', 'business-directory-plugin' ),
648
  'default' => 'publish',
649
  'options' => array(
650
+ 'publish' => _x( 'Published', 'post status', 'business-directory-plugin' ),
651
+ 'pending' => _x( 'Pending', 'post status', 'business-directory-plugin' ),
652
  ),
653
  'group' => 'listings/post_category',
654
  )
657
  array(
658
  'id' => 'categories-order-by',
659
  'type' => 'radio',
660
+ 'name' => _x( 'Order categories list by', 'settings', 'business-directory-plugin' ),
661
  'default' => 'name',
662
  'options' => array(
663
+ 'name' => _x( 'Name', 'admin settings', 'business-directory-plugin' ),
664
+ 'slug' => _x( 'Slug', 'admin settings', 'business-directory-plugin' ),
665
+ 'count' => _x( 'Listing Count', 'admin settings', 'business-directory-plugin' ),
666
  ),
667
  'group' => 'listings/post_category',
668
  )
671
  array(
672
  'id' => 'categories-sort',
673
  'type' => 'radio',
674
+ 'name' => _x( 'Sort order for categories', 'settings', 'business-directory-plugin' ),
675
  'default' => 'ASC',
676
  'options' => array(
677
+ 'ASC' => _x( 'Ascending', 'admin settings', 'business-directory-plugin' ),
678
+ 'DESC' => _x( 'Descending', 'admin settings', 'business-directory-plugin' ),
679
  ),
680
  'group' => 'listings/post_category',
681
  )
684
  array(
685
  'id' => 'show-category-post-count',
686
  'type' => 'checkbox',
687
+ 'name' => _x( 'Show category post count?', 'settings', 'business-directory-plugin' ),
688
  'default' => true,
689
  'group' => 'listings/post_category',
690
  )
693
  array(
694
  'id' => 'hide-empty-categories',
695
  'type' => 'checkbox',
696
+ 'name' => _x( 'Hide empty categories?', 'settings', 'business-directory-plugin' ),
697
  'default' => false,
698
  'group' => 'listings/post_category',
699
  )
702
  array(
703
  'id' => 'show-only-parent-categories',
704
  'type' => 'checkbox',
705
+ 'name' => _x( 'Show only parent categories in category list?', 'settings', 'business-directory-plugin' ),
706
  'default' => false,
707
  'group' => 'listings/post_category',
708
  )
709
  );
710
 
711
+ $msg = _x( 'Fee Plan Custom Order can be changed under <a>Manage Fees</a>', 'admin settings', 'business-directory-plugin' );
712
  $msg = str_replace( '<a>', '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp-admin-fees' ) ) . '">', $msg );
713
  wpbdp_register_setting(
714
  array(
715
  'id' => 'listings-order-by',
716
  'type' => 'select',
717
+ 'name' => _x( 'Order directory listings by', 'settings', 'business-directory-plugin' ),
718
  'desc' => $msg,
719
  'default' => 'title',
720
  'options' => apply_filters( 'wpbdp_sort_options',
721
  array(
722
+ 'title' => _x( 'Title', 'admin settings', 'business-directory-plugin' ),
723
+ 'author' => _x( 'Author', 'admin settings', 'business-directory-plugin' ),
724
+ 'date' => _x( 'Date posted', 'admin settings', 'business-directory-plugin' ),
725
+ 'modified' => _x( 'Date last modified', 'admin settings', 'business-directory-plugin' ),
726
+ 'rand' => _x( 'Random', 'admin settings', 'business-directory-plugin' ),
727
+ 'paid' => _x( 'Paid first then free. Inside each group by date.', 'admin settings', 'business-directory-plugin' ),
728
+ 'paid-title' => _x( 'Paid first then free. Inside each group by title.', 'admin settings', 'business-directory-plugin' ),
729
+ 'plan-order-date' => _x( 'Fee Plan Custom Order, then Date', 'admin settings', 'business-directory-plugin' ),
730
+ 'plan-order-title' => _x( 'Fee Plan Custom Order, then Title', 'admin settings', 'business-directory-plugin' ),
731
  )
732
  ),
733
  'group' => 'listings/sorting',
737
  array(
738
  'id' => 'listings-sort',
739
  'type' => 'radio',
740
+ 'name' => _x( 'Sort directory listings by', 'settings', 'business-directory-plugin' ),
741
+ 'desc' => _x( 'Ascending for ascending order A-Z, Descending for descending order Z-A', 'settings', 'business-directory-plugin' ),
742
  'default' => 'ASC',
743
  'options' => array(
744
+ 'ASC' => _x( 'Ascending', 'admin settings', 'business-directory-plugin' ),
745
+ 'DESC' => _x( 'Descending', 'admin settings', 'business-directory-plugin' ),
746
  ),
747
  'group' => 'listings/sorting',
748
  )
751
  array(
752
  'id' => 'listings-sortbar-enabled',
753
  'type' => 'checkbox',
754
+ 'name' => _x( 'Enable sort bar?', 'settings', 'business-directory-plugin' ),
755
  'default' => false,
756
  'group' => 'listings/sorting',
757
  )
760
  array(
761
  'id' => 'listings-sortbar-fields',
762
  'type' => 'multicheck',
763
+ 'name' => _x( 'Sortbar Fields', 'settings', 'business-directory-plugin' ),
764
  'default' => array(),
765
  'options' => wpbdp_sortbar_get_field_options(),
766
  'group' => 'listings/sorting',
771
 
772
  private static function settings_appearance() {
773
  // Display Options.
774
+ wpbdp_register_settings_group( 'display_options', _x( 'Directory Display Options', 'settings', 'business-directory-plugin' ), 'appearance/main' );
775
  wpbdp_register_setting(
776
  array(
777
  'id' => 'show-submit-listing',
778
  'type' => 'checkbox',
779
+ 'name' => _x( 'Show the "Submit listing" button.', 'settings', 'business-directory-plugin' ),
780
+ 'desc' => _x( 'Hides the button used by the main UI to allow listing submission, but does not shut off the use of the link for submitting listings (allows you to customize the submit listing button on your own)', 'settings', 'business-directory-plugin' ),
781
  'default' => true,
782
  'group' => 'display_options',
783
  'requirements' => array( '!disable-submit-listing' ),
787
  array(
788
  'id' => 'show-search-listings',
789
  'type' => 'checkbox',
790
+ 'name' => _x( 'Show "Search listings".', 'settings', 'business-directory-plugin' ),
791
  'default' => true,
792
  'group' => 'display_options',
793
  )
796
  array(
797
  'id' => 'show-view-listings',
798
  'type' => 'checkbox',
799
+ 'name' => _x( 'Show the "View Listings" button.', 'settings', 'business-directory-plugin' ),
800
  'default' => true,
801
  'group' => 'display_options',
802
  )
803
  );
804
+ wpbdp_register_setting(
805
+ array(
806
+ 'id' => 'show-manage-listings',
807
+ 'type' => 'checkbox',
808
+ 'name' => _x( 'Show the "Manage Listings" button.', 'settings', 'business-directory-plugin' ),
809
+ 'default' => false,
810
+ 'group' => 'display_options',
811
+ )
812
+ );
813
  wpbdp_register_setting(
814
  array(
815
  'id' => 'show-directory-button',
816
  'type' => 'checkbox',
817
+ 'name' => _x( 'Show the "Directory" button.', 'settings', 'business-directory-plugin' ),
818
  'default' => true,
819
  'group' => 'display_options',
820
  )
821
  );
822
 
823
  // Themes.
824
+ wpbdp_register_settings_group( 'themes', _x( 'Theme Settings', 'settings', 'business-directory-plugin' ), 'appearance', array( 'desc' => str_replace( '<a>', '<a href="' . admin_url( 'admin.php?page=wpbdp-themes' ) . '">', _x( 'You can manage your themes on <a>Directory Themes</a>.', 'admin settings', 'business-directory-plugin' ) ) ) );
825
 
826
  wpbdp_register_setting(
827
  array(
828
  'id' => 'themes-button-style',
829
  'type' => 'radio',
830
+ 'name' => _x( 'Theme button style', 'settings', 'business-directory-plugin' ),
831
  'default' => 'theme',
832
  'options' => array(
833
+ 'theme' => _x( 'Use the BD theme style for BD buttons', 'admin settings', 'business-directory-plugin' ),
834
+ 'none' => _x( 'Use the WP theme style for BD buttons', 'admin settings', 'business-directory-plugin' ),
835
  ),
836
  'group' => 'themes',
837
  )
840
  array(
841
  'id' => 'include-button-styles',
842
  'type' => 'checkbox',
843
+ 'name' => _x( 'Include CSS rules to give their own style to View, Edit and Delete buttons?', 'settings', 'business-directory-plugin' ),
844
  'default' => 1,
845
  'group' => 'themes',
846
  )
847
  );
848
 
849
  // Image.
850
+ wpbdp_register_settings_group( 'appearance/image', _x( 'Image', 'settings', 'business-directory-plugin' ), 'appearance' );
851
+ wpbdp_register_settings_group( 'images/general', _x( 'Image Settings', 'settings', 'business-directory-plugin' ), 'appearance/image', array( 'desc' => 'Any changes to these settings will affect new listings only. Existing listings will not be affected. If you wish to change existing listings, you will need to re-upload the image(s) on that listing after changing things here.' ) );
852
  wpbdp_register_setting(
853
  array(
854
  'id' => 'allow-images',
855
  'type' => 'checkbox',
856
+ 'name' => _x( 'Allow images?', 'settings', 'business-directory-plugin' ),
857
  'default' => true,
858
  'group' => 'images/general',
859
  )
864
  'type' => 'number',
865
  'min' => 0,
866
  'step' => 1,
867
+ 'name' => _x( 'Min Image File Size (KB)', 'settings', 'business-directory-plugin' ),
868
  'default' => '0',
869
  'group' => 'images/general',
870
  )
875
  'type' => 'number',
876
  'min' => 0,
877
  'step' => 1,
878
+ 'name' => _x( 'Max Image File Size (KB)', 'settings', 'business-directory-plugin' ),
879
  'default' => '10000',
880
  'group' => 'images/general',
881
  )
886
  'type' => 'number',
887
  'min' => 0,
888
  'step' => 1,
889
+ 'name' => _x( 'Min image width (px)', 'settings', 'business-directory-plugin' ),
890
  'default' => '0',
891
  'group' => 'images/general',
892
  )
895
  array(
896
  'id' => 'image-min-height',
897
  'type' => 'number',
898
+ 'name' => _x( 'Min image height (px)', 'settings', 'business-directory-plugin' ),
899
  'default' => '0',
900
  'min' => 0,
901
  'step' => 1,
908
  'type' => 'number',
909
  'min' => 0,
910
  'step' => 1,
911
+ 'name' => _x( 'Max image width (px)', 'settings', 'business-directory-plugin' ),
912
  'default' => '500',
913
  'group' => 'images/general',
914
  )
919
  'type' => 'number',
920
  'min' => 0,
921
  'step' => 1,
922
+ 'name' => _x( 'Max image height (px)', 'settings', 'business-directory-plugin' ),
923
  'default' => '500',
924
  'group' => 'images/general',
925
  )
930
  'type' => 'checkbox',
931
  'min' => 0,
932
  'step' => 1,
933
+ 'name' => _x( 'Turn on thickbox/lightbox?', 'settings', 'business-directory-plugin' ),
934
+ 'desc' => _x( 'Uncheck if it conflicts with other elements or plugins installed on your site', 'settings', 'business-directory-plugin' ),
935
  'default' => false,
936
  'group' => 'images/general',
937
  )
938
  );
939
 
940
+ wpbdp_register_settings_group( 'image/thumbnails', _x( 'Thumbnails', 'settings', 'business-directory-plugin' ), 'appearance/image' );
941
  wpbdp_register_setting(
942
  array(
943
  'id' => 'thumbnail-width',
944
  'type' => 'number',
945
  'min' => 0,
946
  'step' => 1,
947
+ 'name' => _x( 'Thumbnail width (px)', 'settings', 'business-directory-plugin' ),
948
  'default' => '150',
949
  'group' => 'image/thumbnails',
950
  )
955
  'type' => 'number',
956
  'min' => 0,
957
  'step' => 1,
958
+ 'name' => _x( 'Thumbnail height (px)', 'settings', 'business-directory-plugin' ),
959
  'default' => '150',
960
  'group' => 'image/thumbnails',
961
  )
964
  array(
965
  'id' => 'thumbnail-crop',
966
  'type' => 'checkbox',
967
+ 'name' => _x( 'Crop thumbnails to exact dimensions?', 'settings', 'business-directory-plugin' ),
968
+ 'desc' => _x( 'When enabled images will match exactly the dimensions above but part of the image may be cropped out. If disabled, image thumbnails will be resized to match the specified width and their height will be adjusted proportionally. Depending on the uploaded images, thumbnails may have different heights.', 'settings', 'business-directory-plugin' ),
969
  'default' => false,
970
  'group' => 'image/thumbnails',
971
  )
972
  );
973
 
974
+ wpbdp_register_settings_group( 'image/listings', _x( 'Listings', 'settings', 'business-directory-plugin' ), 'appearance/image' );
975
  wpbdp_register_setting(
976
  array(
977
  'id' => 'enforce-image-upload',
978
  'type' => 'checkbox',
979
+ 'name' => _x( 'Enforce image upload on submit/edit?', 'settings', 'business-directory-plugin' ),
980
  'default' => false,
981
  'group' => 'image/listings',
982
  )
985
  array(
986
  'id' => 'free-images',
987
  'type' => 'number',
988
+ 'name' => _x( 'Number of free images', 'settings', 'business-directory-plugin' ),
989
  'default' => '2',
990
  'min' => 0,
991
  'step' => 1,
992
+ 'desc' => str_replace( '<a>', '<a href="' . admin_url( 'admin.php?page=wpbdp-admin-fees' ) . '">', _x( 'For paid listing images, configure that by adding or editing a <a>Fee Plan</a> instead of this setting, which is ignored for paid listings.', 'admin settings', 'business-directory-plugin' ) ),
993
  'group' => 'image/listings',
994
  )
995
  );
997
  array(
998
  'id' => 'use-default-picture',
999
  'type' => 'multicheck',
1000
+ 'name' => _x( 'Use "Coming Soon" photo for listings without any (primary) images?', 'settings', 'business-directory-plugin' ),
1001
  'default' => array(),
1002
  'options' => array(
1003
+ 'excerpt' => _x( 'Excerpt view.', 'admin settings', 'business-directory-plugin' ),
1004
+ 'listing' => _x( 'Detail view.', 'admin settings', 'business-directory-plugin' ),
1005
  ),
1006
  'group' => 'image/listings',
1007
  )
1010
  array(
1011
  'id' => 'listing-main-image-default-size',
1012
  'type' => 'select',
1013
+ 'name' => _x( 'Default thumbnail image size', 'settings', 'business-directory-plugin' ),
1014
  'default' => 'wpbdp-thumb',
1015
  'options' => self::get_registered_image_sizes(),
1016
+ 'desc' => _x( 'This indicates the size of the thumbnail to be used both in excerpt and detail views. For CROPPED image size values, we use the EXACT size defined. For all other values, we preserve the aspect ratio of the image and use the width as the starting point.', 'settings', 'business-directory-plugin' ),
1017
  'group' => 'image/listings',
1018
  )
1019
  );
1021
  array(
1022
  'id' => 'show-thumbnail',
1023
  'type' => 'checkbox',
1024
+ 'name' => _x( 'Show Thumbnail on main listings page?', 'settings', 'business-directory-plugin' ),
1025
  'default' => true,
1026
  'group' => 'image/listings',
1027
  )
1028
  );
1029
  wpbdp_register_setting(
1030
  array(
1031
+ 'id' => 'listings-sticky-image',
1032
+ 'type' => 'file',
1033
+ 'name' => _x( 'Featured Badge image', 'settings', 'business-directory-plugin' ),
1034
+ 'default' => '',
1035
+ 'group' => 'image/listings',
1036
  )
1037
  );
1038
  wpbdp_register_setting(
1039
  array(
1040
  'id' => 'sticky-image-link-to',
1041
  'type' => 'url',
1042
+ 'name' => _x( 'Featured Badge URL', 'settings', 'business-directory-plugin' ),
1043
+ 'desc' => _x( 'Use this to set Featured Badge image as a link to a defined URL.', 'settings', 'business-directory-plugin' ),
1044
+ 'placeholder' => _x( 'URL', 'settings', 'business-directory-plugin' ),
1045
  'default' => '',
1046
  'group' => 'image/listings',
1047
  )
1050
  array(
1051
  'id' => 'display-sticky-badge',
1052
  'type' => 'multicheck',
1053
+ 'name' => _x( 'Display featured (sticky) badge on listing:', 'settings', 'business-directory-plugin' ),
 
1054
  'default' => array( 'single' ),
1055
  'options' => array(
1056
+ 'excerpt' => _x( 'Excerpt view.', 'admin settings', 'business-directory-plugin' ),
1057
+ 'single' => _x( 'Detail view.', 'admin settings', 'business-directory-plugin' ),
1058
  ),
1059
  'group' => 'image/listings',
1060
  )
1066
  array(
1067
  'id' => 'fee-order',
1068
  'type' => 'silent',
1069
+ 'name' => _x( 'Fee Order', 'settings', 'business-directory-plugin' ),
1070
  'default' => array(
1071
  'method' => 'label',
1072
  'order' => 'asc',
1079
  array(
1080
  'id' => 'payments-on',
1081
  'type' => 'checkbox',
1082
+ 'name' => _x( 'Turn On payments?', 'settings', 'business-directory-plugin' ),
1083
  'default' => false,
1084
  'group' => 'payment/main',
1085
  )
1088
  array(
1089
  'id' => 'payments-test-mode',
1090
  'type' => 'checkbox',
1091
+ 'name' => _x( 'Put payment gateways in test mode?', 'settings', 'business-directory-plugin' ),
1092
  'default' => true,
1093
  'group' => 'payment/main',
1094
  'requirements' => array( 'payments-on' ),
1098
  array(
1099
  'id' => 'payments-use-https',
1100
  'type' => 'checkbox',
1101
+ 'name' => _x( 'Perform checkouts on the secure (HTTPS) version of your site?', 'settings', 'business-directory-plugin' ),
1102
+ 'desc' => _x( 'Recommended for added security. For this to work you need to enable HTTPS on your server and obtain an SSL certificate.', 'settings', 'business-directory-plugin' ),
1103
  'default' => false,
1104
  'group' => 'payment/main',
1105
  'requirements' => array( 'payments-on' ),
1107
  );
1108
 
1109
  $aed_usupported_gateways = apply_filters( 'wpbdp_aed_not_supported', wpbdp_get_option( 'authorize-net', false ) ? array( 'Authorize.net' ) : array() );
1110
+ $desc = '';
1111
 
1112
  if ( $aed_usupported_gateways ) {
1113
  $desc = sprintf(
1114
+ _x( 'AED currency is not supported by %1$s. %2$s', 'admin settings', 'business-directory-plugin' ),
1115
  '<b>' . implode( ' or ', $aed_usupported_gateways ) . '</b>',
1116
  _n(
1117
  'If you are using this gateway, we recommend you disable it if you wish to collect payments in this currency.',
1118
  'If you are using these gateways, we recommend you disable them if you wish to collect payments in this currency.',
1119
  count( $aed_usupported_gateways ),
1120
+ 'business-directory-plugin'
1121
  )
1122
  );
1123
  }
1126
  array(
1127
  'id' => 'currency',
1128
  'type' => 'select',
1129
+ 'name' => _x( 'Currency Code', 'settings', 'business-directory-plugin' ),
1130
  'default' => 'USD',
1131
  'options' => array(
1132
+ 'AUD' => _x( 'Australian Dollar (AUD)', 'admin settings', 'business-directory-plugin' ),
1133
+ 'BRL' => _x( 'Brazilian Real (BRL)', 'admin settings', 'business-directory-plugin' ),
1134
+ 'CAD' => _x( 'Canadian Dollar (CAD)', 'admin settings', 'business-directory-plugin' ),
1135
+ 'CZK' => _x( 'Czech Koruna (CZK)', 'admin settings', 'business-directory-plugin' ),
1136
+ 'DKK' => _x( 'Danish Krone (DKK)', 'admin settings', 'business-directory-plugin' ),
1137
+ 'AED' => _x( 'United Arab Emirates Dirham (AED)', 'admin settings', 'business-directory-plugin' ),
1138
+ 'EUR' => _x( 'Euro (EUR)', 'admin settings', 'business-directory-plugin' ),
1139
+ 'HKD' => _x( 'Hong Kong Dollar (HKD)', 'admin settings', 'business-directory-plugin' ),
1140
+ 'HUF' => _x( 'Hungarian Forint (HUF)', 'admin settings', 'business-directory-plugin' ),
1141
+ 'ILS' => _x( 'Israeli New Shequel (ILS)', 'admin settings', 'business-directory-plugin' ),
1142
+ 'JPY' => _x( 'Japanese Yen (JPY)', 'admin settings', 'business-directory-plugin' ),
1143
+ 'MAD' => _x( 'Moroccan Dirham (MAD)', 'admin settings', 'business-directory-plugin' ),
1144
+ 'MYR' => _x( 'Malasian Ringgit (MYR)', 'admin settings', 'business-directory-plugin' ),
1145
+ 'MXN' => _x( 'Mexican Peso (MXN)', 'admin settings', 'business-directory-plugin' ),
1146
+ 'NOK' => _x( 'Norwegian Krone (NOK)', 'admin settings', 'business-directory-plugin' ),
1147
+ 'NZD' => _x( 'New Zealand Dollar (NZD)', 'admin settings', 'business-directory-plugin' ),
1148
+ 'PHP' => _x( 'Philippine Peso (PHP)', 'admin settings', 'business-directory-plugin' ),
1149
+ 'PLN' => _x( 'Polish Zloty (PLN)', 'admin settings', 'business-directory-plugin' ),
1150
+ 'GBP' => _x( 'Pound Sterling (GBP)', 'admin settings', 'business-directory-plugin' ),
1151
+ 'SGD' => _x( 'Singapore Dollar (SGD)', 'admin settings', 'business-directory-plugin' ),
1152
+ 'SEK' => _x( 'Swedish Krona (SEK)', 'admin settings', 'business-directory-plugin' ),
1153
+ 'CHF' => _x( 'Swiss Franc (CHF)', 'admin settings', 'business-directory-plugin' ),
1154
+ 'TWD' => _x( 'Taiwan Dollar (TWD)', 'admin settings', 'business-directory-plugin' ),
1155
+ 'THB' => _x( 'Thai Baht (THB)', 'admin settings', 'business-directory-plugin' ),
1156
+ 'TRY' => _x( 'Turkish Lira (TRY)', 'admin settings', 'business-directory-plugin' ),
1157
+ 'USD' => _x( 'U.S. Dollar (USD)', 'admin settings', 'business-directory-plugin' ),
1158
  ),
1159
  'desc' => $desc,
1160
  'group' => 'payment/main',
1165
  array(
1166
  'id' => 'currency-symbol',
1167
  'type' => 'text',
1168
+ 'name' => _x( 'Currency Symbol', 'settings', 'business-directory-plugin' ),
1169
  'default' => '$',
1170
  'group' => 'payment/main',
1171
  'requirements' => array( 'payments-on' ),
1175
  array(
1176
  'id' => 'currency-symbol-position',
1177
  'type' => 'radio',
1178
+ 'name' => _x( 'Currency symbol display', 'settings', 'business-directory-plugin' ),
1179
  'default' => 'left',
1180
  'options' => array(
1181
+ 'left' => _x( 'Show currency symbol on the left', 'admin settings', 'business-directory-plugin' ),
1182
+ 'right' => _x( 'Show currency symbol on the right', 'admin settings', 'business-directory-plugin' ),
1183
+ 'none' => _x( 'Do not show currency symbol', 'admin settings', 'business-directory-plugin' ),
1184
  ),
1185
  'group' => 'payment/main',
1186
  'requirements' => array( 'payments-on' ),
1190
  array(
1191
  'id' => 'include-fee-description',
1192
  'type' => 'checkbox',
1193
+ 'name' => _x( 'Include fee description in receipt?', 'settings', 'business-directory-plugin' ),
1194
  'default' => false,
1195
  'group' => 'payment/main',
1196
  'requirements' => array( 'payments-on' ),
1200
  array(
1201
  'id' => 'payment-message',
1202
  'type' => 'textarea',
1203
+ 'name' => _x( 'Thank you for payment message', 'settings', 'business-directory-plugin' ),
1204
+ 'default' => _x( 'Thank you for your payment. Your payment is being verified and your listing reviewed. The verification and review process could take up to 48 hours.', 'admin settings', 'business-directory-plugin' ),
1205
  'group' => 'payment/main',
1206
  'requirements' => array( 'payments-on' ),
1207
  )
1210
  array(
1211
  'id' => 'payment-abandonment',
1212
  'type' => 'checkbox',
1213
+ 'name' => _x( 'Ask users to come back for abandoned payments?', 'settings', 'business-directory-plugin' ),
1214
+ 'desc' => _x( 'An abandoned payment is when a user attempts to place a listing and gets to the end, but fails to complete their payment for the listing. This results in listings that look like they failed, when the user simply didn\'t complete the transaction. BD can remind them to come back and continue.', 'settings', 'business-directory-plugin' ),
1215
  'default' => false,
1216
  'group' => 'payment/main',
1217
  'requirements' => array( 'payments-on' ),
1221
  array(
1222
  'id' => 'payment-abandonment-threshold',
1223
  'type' => 'number',
1224
+ 'name' => _x( 'Listing abandonment threshold (hours)', 'settings', 'business-directory-plugin' ),
1225
+ 'desc' => str_replace( '<a>', '<a href="' . admin_url( 'admin.php?page=wpbdp_settings&tab=email' ) . '#email-templates-payment-abandoned">', _x( 'Listings with pending payments are marked as abandoned after this time. You can also <a>customize the e-mail</a> users receive.', 'admin settings', 'business-directory-plugin' ) ),
1226
  'default' => '24',
1227
  'min' => 0,
1228
  'step' => 1,
1233
  }
1234
 
1235
  private static function settings_email() {
1236
+ wpbdp_register_settings_group( 'email/main/general', _x( 'General Settings', 'settings', 'business-directory-plugin' ), 'email/main' );
1237
  wpbdp_register_setting(
1238
  array(
1239
  'id' => 'override-email-blocking',
1240
  'type' => 'checkbox',
1241
+ 'name' => _x( 'Display email address fields publicly?', 'settings', 'business-directory-plugin' ),
1242
+ 'desc' => _x( 'Shows the email address of the listing owner to all web users. NOT RECOMMENDED as this increases spam to the address and allows spam bots to harvest it for future use.', 'settings', 'business-directory-plugin' ),
1243
  'default' => false,
1244
  'group' => 'email/main/general',
1245
  )
1248
  array(
1249
  'id' => 'listing-email-mode',
1250
  'type' => 'radio',
1251
+ 'name' => _x( 'How to determine the listing\'s email address?', 'settings', 'business-directory-plugin' ),
1252
+ 'desc' => _x( 'This affects emails sent to listing owners via contact forms or when their listings expire.', 'settings', 'business-directory-plugin' ),
1253
  'default' => 'field',
1254
  'options' => array(
1255
+ 'field' => _x( 'Try listing\'s email field first, then author\'s email.', 'admin settings', 'business-directory-plugin' ),
1256
+ 'user' => _x( 'Try author\'s email first and then listing\'s email field.', 'admin settings', 'business-directory-plugin' ),
1257
  ),
1258
  'group' => 'email/main/general',
1259
  )
1262
  array(
1263
  'id' => 'listing-email-content-type',
1264
  'type' => 'radio',
1265
+ 'name' => _x( 'Email Content-Type header', 'settings', 'business-directory-plugin' ),
1266
+ 'desc' => _x( 'Use this setting to control the format of the emails explicitly. Some plugins for email do not correctly support Content Type unless explicitly set, you can do that here. If you\'re unsure, try "HTML", "Plain" and then "Both".', 'settings', 'business-directory-plugin' ),
1267
  'default' => 'html',
1268
  'options' => array(
1269
+ 'plain' => _x( 'Plain (text/plain)', 'admin settings', 'business-directory-plugin' ),
1270
+ 'html' => _x( 'HTML (text/html)', 'admin settings', 'business-directory-plugin' ),
1271
+ 'both' => _x( 'Both (multipart/alternative)', 'admin settings', 'business-directory-plugin' ),
1272
  ),
1273
  'group' => 'email/main/general',
1274
  )
1275
  );
1276
 
1277
+ wpbdp_register_settings_group( 'email_notifications', _x( 'E-Mail Notifications', 'settings', 'business-directory-plugin' ), 'email/main' );
1278
  wpbdp_register_setting(
1279
  array(
1280
  'id' => 'admin-notifications',
1281
  'type' => 'multicheck',
1282
+ 'name' => _x( 'Notify admin via e-mail when...', 'settings', 'business-directory-plugin' ),
1283
  'default' => array(),
1284
  'options' => array(
1285
+ 'new-listing' => _x( 'A new listing is submitted.', 'admin settings', 'business-directory-plugin' ),
1286
+ 'listing-edit' => _x( 'A listing is edited.', 'admin settings', 'business-directory-plugin' ),
1287
+ 'renewal' => _x( 'A listing expires.', 'admin settings', 'business-directory-plugin' ),
1288
+ 'after_renewal' => _x( 'A listing is renewed.', 'admin settings', 'business-directory-plugin' ),
1289
+ 'payment-completed' => _x( 'A listing payment is completed.', 'admin settings', 'business-directory-plugin' ),
1290
+ 'flagging_listing' => _x( 'A listing has been reported as inappropriate.', 'admin settings', 'business-directory-plugin' ),
1291
+ 'listing-contact' => _x( 'A contact message is sent to a listing\'s owner.', 'admin settings', 'business-directory-plugin' ),
1292
  ),
1293
  'group' => 'email_notifications',
1294
  )
1297
  array(
1298
  'id' => 'admin-notifications-cc',
1299
  'type' => 'text',
1300
+ 'name' => _x( 'CC this e-mail address too', 'settings', 'business-directory-plugin' ),
1301
  'group' => 'email_notifications',
1302
  )
1303
  );
1304
 
1305
  $settings_url = admin_url( 'admin.php?page=wpbdp_settings&tab=email&subtab=email_templates' );
1306
+ $description = _x( 'You can modify the text template used for most of these e-mails in the <templates-link>Templates</templates-link> tab.', 'settings', 'business-directory-plugin' );
1307
  $description = str_replace( '<templates-link>', '<a href="' . $settings_url . '">', $description );
1308
  $description = str_replace( '</templates-link>', '</a>', $description );
1309
 
1310
  wpbdp_register_setting( array(
1311
  'id' => 'user-notifications',
1312
  'type' => 'multicheck',
1313
+ 'name' => _x( 'Notify users via e-mail when...', 'settings', 'business-directory-plugin' ),
1314
  'desc' => $description,
1315
  'default' => array( 'new-listing', 'listing-published', 'listing-expires' ),
1316
  'options' => array(
1317
+ 'new-listing' => _x( 'Their listing is submitted.', 'admin settings', 'business-directory-plugin' ),
1318
+ 'listing-published' => _x( 'Their listing is approved/published.', 'admin settings', 'business-directory-plugin' ),
1319
+ 'payment-completed' => _x( 'A payment for their listing is completed.', 'admin settings', 'business-directory-plugin' ),
1320
+ 'listing-expires' => _x( 'Their listing expired or is about to expire.', 'admin settings', 'business-directory-plugin' ),
1321
  ),
1322
+ 'group' => 'email_notifications',
1323
  ) );
1324
 
1325
+ wpbdp_register_settings_group( 'email_templates', _x( 'Templates', 'settings', 'business-directory-plugin' ), 'email' );
1326
  wpbdp_register_setting(
1327
  array(
1328
  'id' => 'email-confirmation-message',
1329
  'type' => 'email_template',
1330
+ 'name' => _x( 'Email confirmation message', 'settings', 'business-directory-plugin' ),
1331
+ 'desc' => _x( 'Sent after a listing has been submitted.', 'settings', 'business-directory-plugin' ),
1332
  'default' => array(
1333
  'subject' => '[[site-title]] Listing "[listing]" received',
1334
  'body' => 'Your submission \'[listing]\' has been received and it\'s pending review. This review process could take up to 48 hours.',
1335
  ),
1336
  'placeholders' => array(
1337
+ 'listing' => _x( 'Listing\'s title', 'admin settings', 'business-directory-plugin' ),
1338
+ 'fee_name' => _x( 'Listing\'s fee plan name', 'admin settings', 'business-directory-plugin' ),
1339
+ 'fee_description' => _x( 'Listing\'s fee plan description', 'admin settings', 'business-directory-plugin' ),
1340
+ 'fee_details' => _x( 'Listing\'s fee plan details', 'admin settings', 'business-directory-plugin' ),
1341
  ),
1342
  'group' => 'email_templates',
1343
  )
1346
  array(
1347
  'id' => 'email-templates-listing-published',
1348
  'type' => 'email_template',
1349
+ 'name' => _x( 'Listing published message', 'settings', 'business-directory-plugin' ),
1350
+ 'desc' => _x( 'Sent when the listing has been published or approved by an admin.', 'settings', 'business-directory-plugin' ),
1351
  'default' => array(
1352
  'subject' => '[[site-title]] Listing "[listing]" published',
1353
+ 'body' => _x( 'Your listing "[listing]" is now available at [listing-url] and can be viewed by the public.', 'admin settings', 'business-directory-plugin' ),
1354
  ),
1355
  'placeholders' => array(
1356
+ 'listing' => _x( 'Listing\'s title', 'admin settings', 'business-directory-plugin' ),
1357
+ 'listing-url' => _x( 'Listing\'s URL', 'admin settings', 'business-directory-plugin' ),
1358
+ 'access_key' => _x( 'Listing\'s Access Key', 'admin settings', 'business-directory-plugin' ),
1359
  ),
1360
  'group' => 'email_templates',
1361
  )
1364
  array(
1365
  'id' => 'email-templates-contact',
1366
  'type' => 'email_template',
1367
+ 'name' => _x( 'Listing Contact Message', 'settings', 'business-directory-plugin' ),
1368
+ 'desc' => _x( 'Sent to listing owners when someone uses the contact form on their listing pages.', 'settings', 'business-directory-plugin' ),
1369
  'default' => array(
1370
  'subject' => '[[site-title]] Contact via "[listing]"',
1371
  'body' => '' .
1372
+ sprintf( _x( 'You have received a reply from your listing at %s.', 'contact email', 'business-directory-plugin' ), '[listing-url]' ) . "\n\n" .
1373
+ sprintf( _x( 'Name: %s', 'contact email', 'business-directory-plugin' ), '[name]' ) . "\n" .
1374
+ sprintf( _x( 'E-Mail: %s', 'contact email', 'business-directory-plugin' ), '[email]' ) . "\n" .
1375
+ _x( 'Message:', 'contact email', 'business-directory-plugin' ) . "\n" .
1376
+ '[message]' . "\n\n" .
1377
+ sprintf( _x( 'Time: %s', 'contact email', 'business-directory-plugin' ), '[date]' ),
1378
  ),
1379
  'placeholders' => array(
1380
+ 'listing-url' => _x( 'Listing\'s URL', 'admin settings', 'business-directory-plugin' ),
1381
+ 'listing' => _x( 'Listing\'s title', 'admin settings', 'business-directory-plugin' ),
1382
+ 'name' => _x( 'Sender\'s name', 'admin settings', 'business-directory-plugin' ),
1383
+ 'email' => _x( 'Sender\'s e-mail address', 'admin settings', 'business-directory-plugin' ),
1384
+ 'message' => _x( 'Contact message', 'admin settings', 'business-directory-plugin' ),
1385
+ 'date' => _x( 'Date and time the message was sent', 'admin settings', 'business-directory-plugin' ),
1386
+ 'access_key' => _x( 'Listing\'s Access Key', 'admin settings', 'business-directory-plugin' ),
1387
  ),
1388
  'group' => 'email_templates',
1389
  )
1393
  array(
1394
  'id' => 'email-templates-payment-completed',
1395
  'type' => 'email_template',
1396
+ 'name' => _x( 'Payment completed message', 'settings', 'business-directory-plugin' ),
1397
+ 'desc' => _x( 'Sent after a Listing\'s payment is verified by Gateway or admins.', 'settings', 'business-directory-plugin' ),
1398
  'default' => array(
1399
  'subject' => '[[site-title]] Payment completed for "[listing]"',
1400
  'body' => '
1413
  - The Administrator of [site-title]',
1414
  ),
1415
  'placeholders' => array(
1416
+ 'listing' => _x( 'Listing\'s title', 'admin settings', 'business-directory-plugin' ),
1417
+ 'fee_name' => _x( 'Listing\'s fee plan name', 'admin settings', 'business-directory-plugin' ),
1418
+ 'fee_description' => _x( 'Listing\'s fee plan description', 'admin settings', 'business-directory-plugin' ),
1419
+ 'fee_details' => _x( 'Listing\'s fee plan details', 'admin settings', 'business-directory-plugin' ),
1420
+ 'payment_details' => _x( 'Payment items details.', 'admin settings', 'business-directory-plugin' ),
1421
+ 'receipt_url' => _x( 'URL where user can review and print payment receipt.', 'admin settings', 'business-directory-plugin' ),
1422
+ 'gateway' => _x( 'Gateway used to process listing\'s payment.', 'admin settings', 'business-directory-plugin' ),
1423
  ),
1424
  'group' => 'email_templates',
1425
  )
1429
  array(
1430
  'id' => 'email-templates-payment-abandoned',
1431
  'type' => 'email_template',
1432
+ 'name' => _x( 'Payment abandoned reminder message', 'settings', 'business-directory-plugin' ),
1433
+ 'desc' => _x( 'Sent some time after a pending payment is abandoned by users.', 'settings', 'business-directory-plugin' ),
1434
  'default' => array(
1435
  'subject' => '[[site-title]] Pending payment for "[listing]"',
1436
  'body' => '
1449
  - The Administrator of [site-title]',
1450
  ),
1451
  'placeholders' => array(
1452
+ 'listing' => _x( 'Listing\'s title', 'admin settings', 'business-directory-plugin' ),
1453
+ 'link' => _x( 'Checkout URL link', 'admin settings', 'business-directory-plugin' ),
1454
  ),
1455
  'group' => 'email_templates',
1456
  )
1457
  );
1458
 
 
 
 
 
 
 
 
1459
  wpbdp_register_setting(
1460
  array(
1461
  'id' => 'expiration-notices',
1462
  'type' => 'expiration_notices',
1463
+ 'name' => _x( 'E-Mail Notices', 'settings', 'business-directory-plugin' ),
1464
  'default' => self::get_default_expiration_notices(),
1465
  'group' => 'email_templates',
1466
  'validator' => array( __class__, 'validate_expiration_notices' ),
1479
  'subject' => '[[site-title]] [listing] - Your listing is about to expire',
1480
  'body' => 'Your listing "[listing]" is about to expire at [site]. You can renew it here: [link].',
1481
  );
 
 
 
 
 
 
1482
  /* listing-renewal-message, non-recurring only */
1483
  $notices[] = array(
1484
  'event' => 'expiration',
1487
  'subject' => 'Your listing on [site-title] expired',
1488
  'body' => "Your listing \"[listing]\" in category [category] expired on [expiration]. To renew your listing click the link below.\n[link]",
1489
  );
 
 
 
 
 
 
1490
  /* renewal-reminder-message, both recurring and non-recurring */
1491
  $notices[] = array(
1492
  'event' => 'expiration',
1495
  'subject' => '[[site-title]] [listing] - Expiration reminder',
1496
  'body' => "Dear Customer\nWe've noticed that you haven't renewed your listing \"[listing]\" for category [category] at [site] and just wanted to remind you that it expired on [expiration]. Please remember you can still renew it here: [link].",
1497
  );
 
 
 
 
 
 
1498
  /* listing-autorenewal-notice, recurring only, controlled by the send-autorenewal-expiration-notice setting */
1499
  $notices[] = array(
1500
  'event' => 'expiration',
1503
  'subject' => '[[site-title]] [listing] - Renewal reminder',
1504
  'body' => "Hey [author],\n\nThis is just to remind you that your listing [listing] is going to be renewed on [expiration] for another period.\nIf you want to review or cancel your subscriptions please visit [link].\n\nIf you have any questions, contact us at [site].",
1505
  );
 
 
 
 
 
 
1506
  /* listing-autorenewal-message, after IPN notification of renewal of recurring */
1507
  $notices[] = array(
1508
  'event' => 'renewal',
1511
  'subject' => '[[site-title]] [listing] renewed',
1512
  'body' => "Hey [author],\n\nThanks for your payment. We just renewed your listing [listing] on [payment_date] for another period.\n\nIf you have any questions, contact us at [site].",
1513
  );
 
 
 
 
 
 
 
 
 
 
 
1514
  return $notices;
1515
  }
1516
 
1547
  _x(
1548
  'Could not remove the "Business Directory Plugin - AJAX Compatibility Module". Please remove the file "%s" manually or deactivate the plugin.',
1549
  'admin settings',
1550
+ 'business-directory-plugin'
1551
  ),
1552
  $dest
1553
  ),
1560
  $success = true;
1561
 
1562
  if ( ! wp_mkdir_p( $mu_dir ) ) {
1563
+ $message = array( sprintf( _x( 'Could not activate AJAX Compatibility mode: the directory "%s" could not be created.', 'admin settings', 'business-directory-plugin' ), $mu_dir ), 'error' );
1564
  $success = false;
1565
  }
1566
 
1567
  if ( $success && ! copy( $source, $dest ) ) {
1568
+ $message = array( sprintf( _x( 'Could not copy the AJAX compatibility plugin "%s". Compatibility mode was not activated.', 'admin settings', 'business-directory-plugin' ), $dest ), 'error' );
1569
  $success = false;
1570
  }
1571
 
1595
 
1596
  global $_wp_additional_image_sizes;
1597
 
1598
+ $sizes = array( 'uploaded' => _x( 'Uploaded Image (no resize)', 'admin settings', 'business-directory-plugin' ) );
1599
 
1600
  foreach ( get_intermediate_image_sizes() as $_size ) {
1601
+ if ( in_array( $_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
1602
  $name = 'WP ' . ucwords( str_replace( '_', ' ', $_size ) );
1603
  $width = get_option( "{$_size}_size_w" );
1604
  $height = get_option( "{$_size}_size_h" );
1616
  $name,
1617
  $width,
1618
  $height == 9999 ? '*' : $height,
1619
+ $crop ? _x( 'Cropped', 'settings', 'business-directory-plugin' ) : ''
1620
  );
1621
  }
1622
 
includes/admin/settings/class-settings.php CHANGED
@@ -90,72 +90,6 @@ class WPBDP__Settings {
90
  $this->options = $output;
91
 
92
  return $this->options;
93
-
94
- // function edd_settings_sanitize( $input = array() ) {
95
- // global $edd_options;
96
- // $doing_section = false;
97
- // if ( ! empty( $_POST['_wp_http_referer'] ) ) {
98
- // $doing_section = true;
99
- // }
100
- // $setting_types = edd_get_registered_settings_types();
101
- // $input = $input ? $input : array();
102
- // if ( $doing_section ) {
103
- // parse_str( $_POST['_wp_http_referer'], $referrer ); // Pull out the tab and section
104
- // $tab = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general';
105
- // $section = isset( $referrer['section'] ) ? $referrer['section'] : 'main';
106
- // if ( ! empty( $_POST['edd_section_override'] ) ) {
107
- // $section = sanitize_text_field( $_POST['edd_section_override'] );
108
- // }
109
- // $setting_types = edd_get_registered_settings_types( $tab, $section );
110
- // // Run a general sanitization for the tab for special fields (like taxes)
111
- // $input = apply_filters( 'edd_settings_' . $tab . '_sanitize', $input );
112
- // // Run a general sanitization for the section so custom tabs with sub-sections can save special data
113
- // $input = apply_filters( 'edd_settings_' . $tab . '-' . $section . '_sanitize', $input );
114
- // }
115
- // // Merge our new settings with the existing
116
- // $output = array_merge( $edd_options, $input );
117
- // foreach ( $setting_types as $key => $type ) {
118
- // if ( empty( $type ) ) {
119
- // continue;
120
- // }
121
- // // Some setting types are not actually settings, just keep moving along here
122
- // $non_setting_types = apply_filters( 'edd_non_setting_types', array(
123
- // 'header', 'descriptive_text', 'hook',
124
- // ) );
125
- // if ( in_array( $type, $non_setting_types ) ) {
126
- // continue;
127
- // }
128
- // if ( array_key_exists( $key, $output ) ) {
129
- // $output[ $key ] = apply_filters( 'edd_settings_sanitize_' . $type, $output[ $key ], $key );
130
- // $output[ $key ] = apply_filters( 'edd_settings_sanitize', $output[ $key ], $key );
131
- // }
132
- // if ( $doing_section ) {
133
- // switch( $type ) {
134
- // case 'checkbox':
135
- // case 'gateways':
136
- // case 'multicheck':
137
- // case 'payment_icons':
138
- // if ( array_key_exists( $key, $input ) && $output[ $key ] === '-1' ) {
139
- // unset( $output[ $key ] );
140
- // }
141
- // break;
142
- // default:
143
- // if ( array_key_exists( $key, $input ) && empty( $input[ $key ] ) || ( array_key_exists( $key, $output ) && ! array_key_exists( $key, $input ) ) ) {
144
- // unset( $output[ $key ] );
145
- // }
146
- // break;
147
- // }
148
- // } else {
149
- // if ( empty( $input[ $key ] ) ) {
150
- // unset( $output[ $key ] );
151
- // }
152
- // }
153
- // }
154
- // if ( $doing_section ) {
155
- // add_settings_error( 'edd-notices', '', __( 'Settings updated.', 'easy-digital-downloads' ), 'updated' );
156
- // }
157
- // return $output;
158
- // }
159
  }
160
 
161
  /**
@@ -326,7 +260,7 @@ class WPBDP__Settings {
326
  }
327
 
328
  public function set_option( $setting_id, $value = null ) {
329
- $old = get_option( 'wpbdp_settings' );
330
  $old[ $setting_id ] = $value;
331
  update_option( 'wpbdp_settings', $old );
332
  }
@@ -351,7 +285,7 @@ class WPBDP__Settings {
351
  $subtab = $group_slug . '/main';
352
 
353
  if ( ! isset( $this->groups[ $subtab ] ) ) {
354
- $this->register_group( $subtab, _x( 'General Settings', 'settings', 'WPBDM' ), $tab );
355
  }
356
 
357
  $this->register_group( "{$subtab}:{$slug}", $name, $subtab, array( 'desc' => $help_text ) );
@@ -374,53 +308,6 @@ class WPBDP__Settings {
374
  return;
375
  $args_ = func_get_args();
376
  wpbdp_debug_e( 'add setting called', $args_ );
377
-
378
- // list($group, $section) = explode(':', $section_key);
379
- // $args = !$args ? array() : $args;
380
- //
381
- // if (!$group || !$section)
382
- // return false;
383
- //
384
- // if ( isset($this->groups[$group]) && isset($this->groups[$group]->sections[$section]) ) {
385
- // $_default = $default;
386
- // if (is_null($_default)) {
387
- // switch ($type) {
388
- // case 'text':
389
- // case 'choice':
390
- // $_default = '';
391
- // break;
392
- // case 'boolean':
393
- // $_default = false;
394
- // break;
395
- // default:
396
- // $_default = null;
397
- // break;
398
- // }
399
- // }
400
- //
401
- // $setting = new StdClass();
402
- // $setting->name = esc_attr( $name );
403
- // $setting->label = $label;
404
- // $setting->help_text = $help_text;
405
- // $setting->default = $_default;
406
- // $setting->type = $type;
407
- // $setting->args = $args;
408
- // $setting->validator = $validator;
409
- // $setting->callback = $callback;
410
- //
411
- // $setup_cb = '_setting_' . $setting->type . '_setup';
412
- // if ( is_callable( array( $this, $setup_cb ) ) ) {
413
- // call_user_func_array( array( $this, $setup_cb ), array( &$setting ) );
414
- // }
415
- //
416
- // $this->groups[$group]->sections[$section]->settings[$name] = $setting;
417
- // }
418
-
419
- // if (!isset($this->settings[$name])) {
420
- // $this->settings[$name] = $setting;
421
- // }
422
-
423
- // return $name;
424
  }
425
 
426
  /**
@@ -553,7 +440,7 @@ class WPBDP__Settings {
553
  }
554
 
555
  if ( empty( $value ) ) {
556
- add_settings_error( 'wpbdp_settings', $setting_id, sprintf( _x( '"%s" can not be empty.', 'settings', 'WPBDM' ), $setting['name'] ), 'error' );
557
  $has_error = true;
558
  }
559
 
@@ -564,14 +451,14 @@ class WPBDP__Settings {
564
  $value = trim( $value );
565
 
566
  if ( empty( $value ) ) {
567
- add_settings_error( 'wpbdp_settings', $setting_id, sprintf( _x( '"%s" can not be empty.', 'settings', 'WPBDM' ), $setting['name'] ), 'error' );
568
  $has_error = true;
569
  }
570
 
571
  if ( ! empty( $setting ) && ! empty( $setting['taxonomy'] ) ) {
572
  foreach ( get_taxonomies( null, 'objects' ) as $taxonomy ) {
573
  if ( $taxonomy->rewrite && $taxonomy->rewrite['slug'] == $value && $taxonomy->name != $setting['taxonomy'] ) {
574
- add_settings_error( 'wpbdp_settings', $setting_id, sprintf( _x( 'The slug "%s" is already in use for another taxonomy.', 'settings', 'WPBDM' ), $value ), 'error' );
575
  $has_error = true;
576
  }
577
  }
@@ -726,6 +613,10 @@ class WPBDP__Settings {
726
  }
727
  }
728
 
 
 
 
 
729
  }
730
 
731
  // For backwards compat.
90
  $this->options = $output;
91
 
92
  return $this->options;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  }
94
 
95
  /**
260
  }
261
 
262
  public function set_option( $setting_id, $value = null ) {
263
+ $old = get_option( 'wpbdp_settings', array() );
264
  $old[ $setting_id ] = $value;
265
  update_option( 'wpbdp_settings', $old );
266
  }
285
  $subtab = $group_slug . '/main';
286
 
287
  if ( ! isset( $this->groups[ $subtab ] ) ) {
288
+ $this->register_group( $subtab, _x( 'General Settings', 'settings', 'business-directory-plugin' ), $tab );
289
  }
290
 
291
  $this->register_group( "{$subtab}:{$slug}", $name, $subtab, array( 'desc' => $help_text ) );
308
  return;
309
  $args_ = func_get_args();
310
  wpbdp_debug_e( 'add setting called', $args_ );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
  }
312
 
313
  /**
440
  }
441
 
442
  if ( empty( $value ) ) {
443
+ add_settings_error( 'wpbdp_settings', $setting_id, sprintf( _x( '"%s" can not be empty.', 'settings', 'business-directory-plugin' ), $setting['name'] ), 'error' );
444
  $has_error = true;
445
  }
446
 
451
  $value = trim( $value );
452
 
453
  if ( empty( $value ) ) {
454
+ add_settings_error( 'wpbdp_settings', $setting_id, sprintf( _x( '"%s" can not be empty.', 'settings', 'business-directory-plugin' ), $setting['name'] ), 'error' );
455
  $has_error = true;
456
  }
457
 
458
  if ( ! empty( $setting ) && ! empty( $setting['taxonomy'] ) ) {
459
  foreach ( get_taxonomies( null, 'objects' ) as $taxonomy ) {
460
  if ( $taxonomy->rewrite && $taxonomy->rewrite['slug'] == $value && $taxonomy->name != $setting['taxonomy'] ) {
461
+ add_settings_error( 'wpbdp_settings', $setting_id, sprintf( _x( 'The slug "%s" is already in use for another taxonomy.', 'settings', 'business-directory-plugin' ), $value ), 'error' );
462
  $has_error = true;
463
  }
464
  }
613
  }
614
  }
615
 
616
+ public function set_new_install_settings() {
617
+ $this->set_option( 'show-manage-listings', true );
618
+ }
619
+
620
  }
621
 
622
  // For backwards compat.
includes/admin/tracking.php CHANGED
@@ -185,11 +185,11 @@ class WPBDP_SiteTracking {
185
 
186
  public static function request_js() {
187
  $content = '';
188
- $content .= '<h3>' . _x( 'Help Improve Business Directory', 'tracking', 'WPBDM' ) . '</h3>';
189
  $content .= '<p>';
190
- $content .= _x( 'Can Business Directory keep track of your theme, plugins, and other non-personal, non-identifying information to help us in testing the plugin for future releases?', 'tracking', 'WPBDM' );
191
  $content .= '<br />';
192
- $content .= '&#149; ' . sprintf( '<a href="%s" target="_blank" rel="noopener">%s</a>', 'http://businessdirectoryplugin.com/what-we-track', _x( 'What do you track?', 'tracking', 'WPBDM' ) );
193
  $content .= '</p>';
194
  ?>
195
  <script type="text/javascript">
185
 
186
  public static function request_js() {
187
  $content = '';
188
+ $content .= '<h3>' . _x( 'Help Improve Business Directory', 'tracking', 'business-directory-plugin' ) . '</h3>';
189
  $content .= '<p>';
190
+ $content .= _x( 'Can Business Directory keep track of your theme, plugins, and other non-personal, non-identifying information to help us in testing the plugin for future releases?', 'tracking', 'business-directory-plugin' );
191
  $content .= '<br />';
192
+ $content .= '&#149; ' . sprintf( '<a href="%s" target="_blank" rel="noopener">%s</a>', 'http://businessdirectoryplugin.com/what-we-track', _x( 'What do you track?', 'tracking', 'business-directory-plugin' ) );
193
  $content .= '</p>';
194
  ?>
195
  <script type="text/javascript">
includes/admin/upgrades/class-installer-installation-error.php CHANGED
@@ -12,14 +12,14 @@ class WPBDP__Installer__Installation_Error {
12
 
13
  public function installation_error_notice() {
14
  print '<div class="notice notice-error"><p>';
15
- print '<strong>' . __( 'Business Directory - Installation Failed', 'WPBDM' ) . '</strong>';
16
  print '<br />';
17
- print __( 'Business Directory installation failed. An exception with following message was generated:', 'WPBDM' );
18
  print '<br/><br/>';
19
  print '<i>' . $this->exception->getMessage() . '</i>';
20
  print '<br /><br />';
21
 
22
- $message = __( 'Please <contact-link>contact customer support</a>.', 'WPBDM' );
23
  $message = str_replace( '<contact-link>', sprintf( '<a href="%s">', 'http://businessdirectoryplugin.com/contact/' ), $message );
24
 
25
  print $message;
12
 
13
  public function installation_error_notice() {
14
  print '<div class="notice notice-error"><p>';
15
+ print '<strong>' . __( 'Business Directory - Installation Failed', 'business-directory-plugin' ) . '</strong>';
16
  print '<br />';
17
+ print __( 'Business Directory installation failed. An exception with following message was generated:', 'business-directory-plugin' );
18
  print '<br/><br/>';
19
  print '<i>' . $this->exception->getMessage() . '</i>';
20
  print '<br /><br />';
21
 
22
+ $message = __( 'Please <contact-link>contact customer support</a>.', 'business-directory-plugin' );
23
  $message = str_replace( '<contact-link>', sprintf( '<a href="%s">', 'http://businessdirectoryplugin.com/contact/' ), $message );
24
 
25
  print $message;
includes/admin/upgrades/class-manual-upgrade-helper.php CHANGED
@@ -83,11 +83,11 @@ class WPBDP__Manual_Upgrade_Helper {
83
  return;
84
 
85
  print '<div class="error"><p>';
86
- print '<strong>' . __( 'Business Directory - Manual Upgrade Required', 'WPBDM' ) . '</strong>';
87
  print '<br />';
88
- _e( 'Business Directory features are currently disabled because the plugin needs to perform a manual upgrade before continuing.', 'WPBDM' );
89
  print '<br /><br />';
90
- printf( '<a class="button button-primary" href="%s">%s</a>', admin_url( 'admin.php?page=wpbdp-upgrade-page' ), __( 'Perform Manual Upgrade', 'WPBDM' ) );
91
  print '</p></div>';
92
  }
93
 
@@ -103,8 +103,8 @@ class WPBDP__Manual_Upgrade_Helper {
103
  }
104
 
105
  add_submenu_page( 'options.php',
106
- __( 'Business Directory - Manual Upgrade', 'WPBDM' ),
107
- __( 'Business Directory - Manual Upgrade', 'WPBDM' ),
108
  'administrator',
109
  'wpbdp-upgrade-page',
110
  array( &$this, 'upgrade_page' ) );
@@ -142,7 +142,7 @@ class WPBDP__Manual_Upgrade_Helper {
142
  }
143
 
144
  public function upgrade_page() {
145
- echo wpbdp_admin_header( __( 'Business Directory - Manual Upgrade', 'WPBDM' ), 'manual-upgrade', null, false );
146
  echo '<div class="wpbdp-manual-upgrade-wrapper">';
147
 
148
  if ( ! $this->is_configured() ) {
@@ -155,7 +155,7 @@ class WPBDP__Manual_Upgrade_Helper {
155
  echo '<form action="" method="post">';
156
  echo '<div class="wpbdp-manual-upgrade-configuration">';
157
  echo $output;
158
- echo '<div class="cf"><input type="submit" class="right button button-primary" value="' . _x( 'Continue', 'manual-upgrade', 'WPBDM' ) . '"/></div>';
159
  echo '</div>';
160
  echo '</form>';
161
  }
@@ -164,23 +164,23 @@ class WPBDP__Manual_Upgrade_Helper {
164
  if ( $this->is_configured() ) {
165
  echo '<div class="step-upgrade">';
166
  echo '<p>';
167
- _e( 'Business Directory features are currently disabled because the plugin needs to perform a manual upgrade before it can be used.', 'WPBDM' );
168
  echo '<br />';
169
- _e( 'Click "Start Upgrade" and wait until the process finishes.', 'WPBDM' );
170
  echo '</p>';
171
  echo '<p>';
172
- echo '<a href="#" class="start-upgrade button button-primary">' . _x( 'Start Upgrade', 'manual-upgrade', 'WPBDM' ) . '</a>';
173
  echo ' ';
174
- echo '<a href="#" class="pause-upgrade button">' . _x( 'Pause Upgrade', 'manual-upgrade', 'WPBDM' ) . '</a>';
175
  echo '</p>';
176
  echo '<textarea id="manual-upgrade-progress" rows="20" style="width: 90%; font-family: courier, monospaced; font-size: 12px;" readonly="readonly"></textarea>';
177
  echo '</div>';
178
 
179
  echo '<div class="step-done" style="display: none;">';
180
- echo '<p>' . _x( 'The upgrade was successfully performed. Business Directory Plugin is now available.', 'manual-upgrade', 'WPBDM' ) . '</p>';
181
  printf ( '<a href="%s" class="button button-primary">%s</a>',
182
  admin_url( 'admin.php?page=wpbdp_admin' ),
183
- _x( 'Go to "Directory Admin"', 'manual-upgrade', 'WPBDM' ) );
184
  echo '</div>';
185
  }
186
 
83
  return;
84
 
85
  print '<div class="error"><p>';
86
+ print '<strong>' . __( 'Business Directory - Manual Upgrade Required', 'business-directory-plugin' ) . '</strong>';
87
  print '<br />';
88
+ _e( 'Business Directory features are currently disabled because the plugin needs to perform a manual upgrade before continuing.', 'business-directory-plugin' );
89
  print '<br /><br />';
90
+ printf( '<a class="button button-primary" href="%s">%s</a>', admin_url( 'admin.php?page=wpbdp-upgrade-page' ), __( 'Perform Manual Upgrade', 'business-directory-plugin' ) );
91
  print '</p></div>';
92
  }
93
 
103
  }
104
 
105
  add_submenu_page( 'options.php',
106
+ __( 'Business Directory - Manual Upgrade', 'business-directory-plugin' ),
107
+ __( 'Business Directory - Manual Upgrade', 'business-directory-plugin' ),
108
  'administrator',
109
  'wpbdp-upgrade-page',
110
  array( &$this, 'upgrade_page' ) );
142
  }
143
 
144
  public function upgrade_page() {
145
+ echo wpbdp_admin_header( __( 'Business Directory - Manual Upgrade', 'business-directory-plugin' ), 'manual-upgrade', null, false );
146
  echo '<div class="wpbdp-manual-upgrade-wrapper">';
147
 
148
  if ( ! $this->is_configured() ) {
155
  echo '<form action="" method="post">';
156
  echo '<div class="wpbdp-manual-upgrade-configuration">';
157
  echo $output;
158
+ echo '<div class="cf"><input type="submit" class="right button button-primary" value="' . _x( 'Continue', 'manual-upgrade', 'business-directory-plugin' ) . '"/></div>';
159
  echo '</div>';
160
  echo '</form>';
161
  }
164
  if ( $this->is_configured() ) {
165
  echo '<div class="step-upgrade">';
166
  echo '<p>';
167
+ _e( 'Business Directory features are currently disabled because the plugin needs to perform a manual upgrade before it can be used.', 'business-directory-plugin' );
168
  echo '<br />';
169
+ _e( 'Click "Start Upgrade" and wait until the process finishes.', 'business-directory-plugin' );
170
  echo '</p>';
171
  echo '<p>';
172
+ echo '<a href="#" class="start-upgrade button button-primary">' . _x( 'Start Upgrade', 'manual-upgrade', 'business-directory-plugin' ) . '</a>';
173
  echo ' ';
174
+ echo '<a href="#" class="pause-upgrade button">' . _x( 'Pause Upgrade', 'manual-upgrade', 'business-directory-plugin' ) . '</a>';
175
  echo '</p>';
176
  echo '<textarea id="manual-upgrade-progress" rows="20" style="width: 90%; font-family: courier, monospaced; font-size: 12px;" readonly="readonly"></textarea>';
177
  echo '</div>';
178
 
179
  echo '<div class="step-done" style="display: none;">';
180
+ echo '<p>' . _x( 'The upgrade was successfully performed. Business Directory Plugin is now available.', 'manual-upgrade', 'business-directory-plugin' ) . '</p>';
181
  printf ( '<a href="%s" class="button button-primary">%s</a>',
182
  admin_url( 'admin.php?page=wpbdp_admin' ),
183
+ _x( 'Go to "Directory Admin"', 'manual-upgrade', 'business-directory-plugin' ) );
184
  echo '</div>';
185
  }
186
 
includes/admin/upgrades/class-migration.php CHANGED
@@ -26,7 +26,7 @@ class WPBDP__Migration {
26
  }
27
 
28
  public function run_manual_upgrade() {
29
- $default_status = _x( 'Migrating Business Directory database to version <version>.', 'installer', 'WPBDM' );
30
  $default_status = str_replace( '<version>', $this->version, $default_status );
31
 
32
  $default_response = array(
26
  }
27
 
28
  public function run_manual_upgrade() {
29
+ $default_status = _x( 'Migrating Business Directory database to version <version>.', 'installer', 'business-directory-plugin' );
30
  $default_status = str_replace( '<version>', $this->version, $default_status );
31
 
32
  $default_response = array(
includes/admin/upgrades/class-themes-updater.php CHANGED
@@ -125,10 +125,10 @@ class WPBDP_Themes_Updater {
125
  return;
126
 
127
  printf( '<div class="wpbdp-theme-update-info update-available" data-l10n-updating="%s" data-l10n-updated="%s">',
128
- _x( 'Updating theme...', 'themes', 'WPBDM' ),
129
- _x( 'Theme updated.', 'themes', 'WPBDM' ) );
130
  echo '<div class="update-message">';
131
- $msg = _x( 'New version available (<b>%s</b>). <a>Update now.</a>', 'themes', 'WPBDM' );
132
  $msg = sprintf( $msg, $update_info['latest'] );
133
  $msg = str_replace( '<a>', '<a href="#" data-theme-id="' . $theme->id . '" data-nonce="' . wp_create_nonce( 'update theme ' . $theme->id ) . '" class="update-link">', $msg );
134
  echo $msg;
@@ -156,13 +156,13 @@ class WPBDP_Themes_Updater {
156
 
157
  $result = $this->run_update( $theme_id );
158
  if ( is_wp_error( $result ) )
159
- $response->send_error( sprintf( _x( 'Could not update theme: %s', 'themes', 'WPBDM' ), $result->get_error_message() ) );
160
 
161
  $this->themes_api->find_themes( true );
162
 
163
  $response->add( 'html', wpbdp_render_page( WPBDP_PATH . 'templates/admin/themes-item.tpl.php',
164
  array( 'theme' => $this->themes_api->get_theme( $theme_id ) ) ) );
165
- $response->set_message( _x( 'Theme was updated successfully.', 'themes', 'WPBDM' ) );
166
  $response->send();
167
  }
168
 
125
  return;
126
 
127
  printf( '<div class="wpbdp-theme-update-info update-available" data-l10n-updating="%s" data-l10n-updated="%s">',
128
+ _x( 'Updating theme...', 'themes', 'business-directory-plugin' ),
129
+ _x( 'Theme updated.', 'themes', 'business-directory-plugin' ) );
130
  echo '<div class="update-message">';
131
+ $msg = _x( 'New version available (<b>%s</b>). <a>Update now.</a>', 'themes', 'business-directory-plugin' );
132
  $msg = sprintf( $msg, $update_info['latest'] );
133
  $msg = str_replace( '<a>', '<a href="#" data-theme-id="' . $theme->id . '" data-nonce="' . wp_create_nonce( 'update theme ' . $theme->id ) . '" class="update-link">', $msg );
134
  echo $msg;
156
 
157
  $result = $this->run_update( $theme_id );
158
  if ( is_wp_error( $result ) )
159
+ $response->send_error( sprintf( _x( 'Could not update theme: %s', 'themes', 'business-directory-plugin' ), $result->get_error_message() ) );
160
 
161
  $this->themes_api->find_themes( true );
162
 
163
  $response->add( 'html', wpbdp_render_page( WPBDP_PATH . 'templates/admin/themes-item.tpl.php',
164
  array( 'theme' => $this->themes_api->get_theme( $theme_id ) ) ) );
165
+ $response->set_message( _x( 'Theme was updated successfully.', 'themes', 'business-directory-plugin' ) );
166
  $response->send();
167
  }
168
 
includes/admin/upgrades/migrations/manual-upgrade-18_0-featured-levels.php CHANGED
@@ -17,8 +17,8 @@ class WPBDP__Manual_Upgrade__18_0__Featured_Levels {
17
 
18
  function add_upgrade_page() {
19
  add_submenu_page( 'options.php',
20
- __( 'Business Directory - Featured Levels Migration', 'WPBDM' ),
21
- __( 'Business Directory - Featured Levels Migration', 'WPBDM' ),
22
  'administrator',
23
  'wpbdp_migration_18_0_featured_levels',
24
  array( &$this, 'migration_page' ) );
@@ -157,7 +157,7 @@ class WPBDP__Manual_Upgrade__18_0__Featured_Levels {
157
 
158
  unset( $levels['normal'] );
159
  if ( ! isset( $levels['sticky'] ) ) {
160
- $levels['sticky'] = array( 'name' => _x( 'Featured Listing', 'listings-api', 'WPBDM' ),
161
  'description' => wpbdp_get_option( 'featured-description' ),
162
  'cost' => floatval( wpbdp_get_option( 'featured-price' ) ) );
163
  }
@@ -166,29 +166,29 @@ class WPBDP__Manual_Upgrade__18_0__Featured_Levels {
166
  if ( $config = $this->_validate_config( $levels ) ) {
167
  $this->_update_db( $config );
168
 
169
- echo wpbdp_admin_header( __( 'Business Directory - Featured Levels Migration', 'WPBDM' ), 'manual-upgrade', null, false );
170
- echo _x( 'Featured Levels migration is complete.', 'migrate-18', 'WPBDM' );
171
  echo '<br /><br />';
172
- echo '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp_admin' ) ) . '" class="button button-secondary">' . _x( '← Return to Directory dashboard', 'upgrade-18', 'WPBDM' ) . '</a>';
173
  echo wpbdp_admin_footer();
174
 
175
  return;
176
  }
177
 
178
- echo wpbdp_admin_header( __( 'Business Directory - Featured Levels Migration', 'WPBDM' ), 'manual-upgrade', null, false );
179
  echo '<div class="wpbdp-manual-upgrade-wrapper">';
180
 
181
  echo '<div id="wpbdp-manual-upgrade-18_0-config">';
182
 
183
- echo '<div id="add-fee-form" data-title="' . _x( 'Configure Plan', 'upgrade-18', 'WPBDM' ) . '">';
184
  echo $this->_fee_form();
185
  echo '</div>';
186
 
187
- _ex( 'Business Directory <b>version 5.0</b> is changing how Featured Levels plugin works. We are leaving restricted features for fee plans, but removing the confusing notion of a "featured level" that was limited to sticky listings.', 'migrate-18', 'WPBDM');
188
  echo '<br />';
189
- _ex( 'We need to migrate your existing "featured levels" to fee plans for use by the upgrade. YOUR DATA WILL NOT BE LOST HERE! Our new setup will make it easier to configure and manage your listings with restricted feature access. If you are unsure about what to do here, <support-link>contact support</support-link> and <cancel-link>cancel migration</cancel-link>.', 'migrate-18', 'WPBDM');
190
  echo '<br /><br />';
191
- _ex( 'Before we do the migration, we need to ask a few simple questions to move your data from the old "featured level" to the new "restricted feature fee plan" that is right for you.', 'migrate-18', 'WPBDM');
192
 
193
 
194
  // Compute listing counts.
@@ -206,8 +206,8 @@ class WPBDP__Manual_Upgrade__18_0__Featured_Levels {
206
  echo '<table id="fee-decisions">';
207
  echo '<thead>';
208
  echo '<tr>';
209
- echo '<th class="level-name">' . _x( 'Featured Level', 'upgrade-18', 'WPBDM' ) . '</th>';
210
- echo '<th>' . _x( 'What to do with it?', 'upgrade-18', 'WPBDM' ) . '</th>';
211
  echo '</tr>';
212
  echo '</thead>';
213
  echo '<tbody>';
@@ -216,24 +216,24 @@ class WPBDP__Manual_Upgrade__18_0__Featured_Levels {
216
  echo '<tr>';
217
  echo '<td class="level-name">';
218
  echo '<strong>' . $level['name'] . '</strong><br />';
219
- echo sprintf( _nx( '%d listing is on this level.', '%d listings are on this level.', $level['count'], 'upgrade-18', 'WPBDM' ), $level['count'] );
220
  echo '</td>';
221
  echo '<td>';
222
  echo '<select data-level-id="' . $level_id . '" class="level-migration" name="level[' . $level_id . '][strategy]">';
223
- echo '<option class="placeholder" value="">' . _x( 'Select an option', 'upgrade-18', 'WPBDM' ) . '</option>';
224
- echo '<option data-description="' . esc_attr( _x( 'Remove "sticky" status for listings.', 'upgrade-18', 'WPBDM' ) ) . '" value="remove">' . _x( 'Remove this (old) level, and leave the listing on the old fee plan.', 'upgrade-18', 'WPBDM' ) . '</option>';
225
 
226
  if ( $fee_options )
227
- echo '<option data-description="' . esc_attr( _x( 'May change "sticky" status depending on fee plan.', 'upgrade-18', 'WPBDM' ) ) . '" value="move">' . _x( 'Move listings with this level to existing fee plan.', 'upgrade-18', 'WPBDM' ) . '</option>';
228
 
229
- echo '<option data-description="' . esc_attr( _x( 'Keep "sticky" status of listings.', 'upgrade-18', 'WPBDM' ) ) . '" value="create">' . _x( 'Replace this level with a new fee plan.', 'upgrade-18', 'WPBDM' ) . '</option>';
230
 
231
  echo '</select>';
232
  echo '<div class="option-description"></div>';
233
 
234
  if ( $fee_options ):
235
  echo '<div class="option-configuration option-move" >';
236
- echo _x( 'Move to: ', 'migrate-18', 'WPBDM' );
237
  echo '<select name="level[' . $level_id . '][move_to]">';
238
  echo $fee_options;
239
  echo '</select>';
@@ -243,13 +243,13 @@ class WPBDP__Manual_Upgrade__18_0__Featured_Levels {
243
  echo '<div class="option-configuration option-create">';
244
  echo '<input type="hidden" name="level[' . $level_id . '][details]" />';
245
 
246
- echo '<h4>' . _x( 'New plan summary', 'migrate-18', 'WPBDM') . '</h4>';
247
  echo '<table class="new-fee-summary" data-level-id="' . $level_id . '">';
248
  echo '<thead><tr>';
249
- echo '<th>' . _x( 'Fee Label', 'migrate-18', 'WPBDM' ) . '</th>';
250
- echo '<th>' . _x( 'Amount', 'migrate-18', 'WPBDM' ) . '</th>';
251
- echo '<th>' . _x( 'Duration', 'migrate-18', 'WPBDM' ) . '</th>';
252
- echo '<th>' . _x( 'Images', 'migrate-18', 'WPBDM' ) . '</th>';
253
  echo '</tr></thead>';
254
  echo '<tbody>';
255
  echo '<tr>';
@@ -270,7 +270,7 @@ class WPBDP__Manual_Upgrade__18_0__Featured_Levels {
270
  echo '</table>';
271
 
272
  echo '<p>';
273
- echo '<input type="submit" value="' . _x( 'Perform migration', 'migrate-18', 'WPBDM' ) . '" class="button button-primary" />';
274
  echo '</p>';
275
 
276
  echo '</form>';
@@ -314,12 +314,12 @@ class WPBDP__Manual_Upgrade__18_0__Featured_Levels {
314
 
315
  echo '<div class="wpbdp-notice error"><p>';
316
  echo '<strong>';
317
- echo _x( 'Business Directory Plugin - Featured Levels migration required.', 'migrate-18', 'WPBDM' );
318
  echo '</strong><br />';
319
  echo str_replace(
320
  '<a>',
321
  '<a href="' . admin_url( 'admin.php?page=wpbdp_migration_18_0_featured_levels' ) . '">',
322
- _x( 'Featured levels were removed in 5.0. You need to perform your <a>Featured Levels migration here</a>.', 'migrate-18', 'WPBDM' )
323
  );
324
  echo '</p></div>';
325
  }
17
 
18
  function add_upgrade_page() {
19
  add_submenu_page( 'options.php',
20
+ __( 'Business Directory - Featured Levels Migration', 'business-directory-plugin' ),
21
+ __( 'Business Directory - Featured Levels Migration', 'business-directory-plugin' ),
22
  'administrator',
23
  'wpbdp_migration_18_0_featured_levels',
24
  array( &$this, 'migration_page' ) );
157
 
158
  unset( $levels['normal'] );
159
  if ( ! isset( $levels['sticky'] ) ) {
160
+ $levels['sticky'] = array( 'name' => _x( 'Featured Listing', 'listings-api', 'business-directory-plugin' ),
161
  'description' => wpbdp_get_option( 'featured-description' ),
162
  'cost' => floatval( wpbdp_get_option( 'featured-price' ) ) );
163
  }
166
  if ( $config = $this->_validate_config( $levels ) ) {
167
  $this->_update_db( $config );
168
 
169
+ echo wpbdp_admin_header( __( 'Business Directory - Featured Levels Migration', 'business-directory-plugin' ), 'manual-upgrade', null, false );
170
+ echo _x( 'Featured Levels migration is complete.', 'migrate-18', 'business-directory-plugin' );
171
  echo '<br /><br />';
172
+ echo '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp_admin' ) ) . '" class="button button-secondary">' . _x( '← Return to Directory dashboard', 'upgrade-18', 'business-directory-plugin' ) . '</a>';
173
  echo wpbdp_admin_footer();
174
 
175
  return;
176
  }
177
 
178
+ echo wpbdp_admin_header( __( 'Business Directory - Featured Levels Migration', 'business-directory-plugin' ), 'manual-upgrade', null, false );
179
  echo '<div class="wpbdp-manual-upgrade-wrapper">';
180
 
181
  echo '<div id="wpbdp-manual-upgrade-18_0-config">';
182
 
183
+ echo '<div id="add-fee-form" data-title="' . _x( 'Configure Plan', 'upgrade-18', 'business-directory-plugin' ) . '">';
184
  echo $this->_fee_form();
185
  echo '</div>';
186
 
187
+ _ex( 'Business Directory <b>version 5.0</b> is changing how Featured Levels plugin works. We are leaving restricted features for fee plans, but removing the confusing notion of a "featured level" that was limited to sticky listings.', 'migrate-18', 'business-directory-plugin' );
188
  echo '<br />';
189
+ _ex( 'We need to migrate your existing "featured levels" to fee plans for use by the upgrade. YOUR DATA WILL NOT BE LOST HERE! Our new setup will make it easier to configure and manage your listings with restricted feature access. If you are unsure about what to do here, <support-link>contact support</support-link> and <cancel-link>cancel migration</cancel-link>.', 'migrate-18', 'business-directory-plugin' );
190
  echo '<br /><br />';
191
+ _ex( 'Before we do the migration, we need to ask a few simple questions to move your data from the old "featured level" to the new "restricted feature fee plan" that is right for you.', 'migrate-18', 'business-directory-plugin' );
192
 
193
 
194
  // Compute listing counts.
206
  echo '<table id="fee-decisions">';
207
  echo '<thead>';
208
  echo '<tr>';
209
+ echo '<th class="level-name">' . _x( 'Featured Level', 'upgrade-18', 'business-directory-plugin' ) . '</th>';
210
+ echo '<th>' . _x( 'What to do with it?', 'upgrade-18', 'business-directory-plugin' ) . '</th>';
211
  echo '</tr>';
212
  echo '</thead>';
213
  echo '<tbody>';
216
  echo '<tr>';
217
  echo '<td class="level-name">';
218
  echo '<strong>' . $level['name'] . '</strong><br />';
219
+ echo sprintf( _nx( '%d listing is on this level.', '%d listings are on this level.', $level['count'], 'upgrade-18', 'business-directory-plugin' ), $level['count'] );
220
  echo '</td>';
221
  echo '<td>';
222
  echo '<select data-level-id="' . $level_id . '" class="level-migration" name="level[' . $level_id . '][strategy]">';
223
+ echo '<option class="placeholder" value="">' . _x( 'Select an option', 'upgrade-18', 'business-directory-plugin' ) . '</option>';
224
+ echo '<option data-description="' . esc_attr( _x( 'Remove "sticky" status for listings.', 'upgrade-18', 'business-directory-plugin' ) ) . '" value="remove">' . _x( 'Remove this (old) level, and leave the listing on the old fee plan.', 'upgrade-18', 'business-directory-plugin' ) . '</option>';
225
 
226
  if ( $fee_options )
227
+ echo '<option data-description="' . esc_attr( _x( 'May change "sticky" status depending on fee plan.', 'upgrade-18', 'business-directory-plugin' ) ) . '" value="move">' . _x( 'Move listings with this level to existing fee plan.', 'upgrade-18', 'business-directory-plugin' ) . '</option>';
228
 
229
+ echo '<option data-description="' . esc_attr( _x( 'Keep "sticky" status of listings.', 'upgrade-18', 'business-directory-plugin' ) ) . '" value="create">' . _x( 'Replace this level with a new fee plan.', 'upgrade-18', 'business-directory-plugin' ) . '</option>';
230
 
231
  echo '</select>';
232
  echo '<div class="option-description"></div>';
233
 
234
  if ( $fee_options ):
235
  echo '<div class="option-configuration option-move" >';
236
+ echo _x( 'Move to: ', 'migrate-18', 'business-directory-plugin' );
237
  echo '<select name="level[' . $level_id . '][move_to]">';
238
  echo $fee_options;
239
  echo '</select>';
243
  echo '<div class="option-configuration option-create">';
244
  echo '<input type="hidden" name="level[' . $level_id . '][details]" />';
245
 
246
+ echo '<h4>' . _x( 'New plan summary', 'migrate-18', 'business-directory-plugin' ) . '</h4>';
247
  echo '<table class="new-fee-summary" data-level-id="' . $level_id . '">';
248
  echo '<thead><tr>';
249
+ echo '<th>' . _x( 'Fee Label', 'migrate-18', 'business-directory-plugin' ) . '</th>';
250
+ echo '<th>' . _x( 'Amount', 'migrate-18', 'business-directory-plugin' ) . '</th>';
251
+ echo '<th>' . _x( 'Duration', 'migrate-18', 'business-directory-plugin' ) . '</th>';
252
+ echo '<th>' . _x( 'Images', 'migrate-18', 'business-directory-plugin' ) . '</th>';
253
  echo '</tr></thead>';
254
  echo '<tbody>';
255
  echo '<tr>';
270
  echo '</table>';
271
 
272
  echo '<p>';
273
+ echo '<input type="submit" value="' . _x( 'Perform migration', 'migrate-18', 'business-directory-plugin' ) . '" class="button button-primary" />';
274
  echo '</p>';
275
 
276
  echo '</form>';
314
 
315
  echo '<div class="wpbdp-notice error"><p>';
316
  echo '<strong>';
317
+ echo _x( 'Business Directory Plugin - Featured Levels migration required.', 'migrate-18', 'business-directory-plugin' );
318
  echo '</strong><br />';
319
  echo str_replace(
320
  '<a>',
321
  '<a href="' . admin_url( 'admin.php?page=wpbdp_migration_18_0_featured_levels' ) . '">',
322
+ _x( 'Featured levels were removed in 5.0. You need to perform your <a>Featured Levels migration here</a>.', 'migrate-18', 'business-directory-plugin' )
323
  );
324
  echo '</p></div>';
325
  }
includes/admin/upgrades/migrations/migration-17_0.php CHANGED
@@ -74,7 +74,7 @@ class WPBDP__Migrations__17_0 extends WPBDP__Migration {
74
 
75
  $records_left = $this->count_listing_meta_with_invalid_characters( array_keys( $form_fields ) );
76
 
77
- $message = _x( 'Cleaning up stored meta data for Checkbox, Radio and Select fields... (%d records left)', 'installer', 'WPBDM' );
78
 
79
  return array(
80
  'ok' => true,
74
 
75
  $records_left = $this->count_listing_meta_with_invalid_characters( array_keys( $form_fields ) );
76
 
77
+ $message = _x( 'Cleaning up stored meta data for Checkbox, Radio and Select fields... (%d records left)', 'installer', 'business-directory-plugin' );
78
 
79
  return array(
80
  'ok' => true,
includes/admin/upgrades/migrations/migration-18_0.php CHANGED
@@ -84,7 +84,7 @@ class WPBDP__Migrations__18_0 extends WPBDP__Migration {
84
  update_option( 'wpbdp_settings', $settings );
85
  update_option( 'wpbdp_licenses', $licenses );
86
 
87
- $msg = _x( 'Migrating license information to new format...', 'installer', 'WPBDM' );
88
  return true;
89
  }
90
 
@@ -193,7 +193,7 @@ class WPBDP__Migrations__18_0 extends WPBDP__Migration {
193
 
194
  update_option( 'wpbdp-expiration-notices', $notices );
195
 
196
- $msg = _x( 'Migrating email notices to new format...', 'installer', 'WPBDM' );
197
  return true;
198
  }
199
 
@@ -204,7 +204,7 @@ class WPBDP__Migrations__18_0 extends WPBDP__Migration {
204
  public function _migrate_fee_plans( &$msg ) {
205
  global $wpdb;
206
 
207
- $msg = _x( 'Migrating fee plans...', 'installer', 'WPBDM' );
208
 
209
  if ( ! wpbdp_table_exists( $wpdb->prefix . 'wpbdp_fees' ) ) {
210
  return true;
@@ -248,7 +248,7 @@ class WPBDP__Migrations__18_0 extends WPBDP__Migration {
248
  }
249
 
250
  if ( ! $success ) {
251
- $msg = sprintf( _x( '! Could not migrate fee "%s" (%d)', 'installer', 'WPBDM' ), $fee->label, $fee->id );
252
  return false;
253
  }
254
  }
@@ -321,12 +321,12 @@ class WPBDP__Migrations__18_0 extends WPBDP__Migration {
321
  }
322
 
323
  if ( false === $wpdb->update( $wpdb->prefix . 'wpbdp_payments', array( 'payment_items' => serialize( $items ), 'payment_type' => $payment_type ), array( 'id' => $payment_id ) ) ) {
324
- $msg = sprintf( _x( '! Could not migrate payment #%d', 'installer', 'WPBDM' ), $payment_id );
325
  return false;
326
  }
327
  }
328
 
329
- $msg = sprintf( _x( 'Updating payment items format: %d items remaining...', 'installer', 'WPBDM' ), max( $count - $batch_size, 0 ) );
330
  return false;
331
  }
332
 
@@ -388,7 +388,7 @@ class WPBDP__Migrations__18_0 extends WPBDP__Migration {
388
  $l->get_status( true );
389
  }
390
 
391
- $msg = sprintf( _x( 'Migrating listing information: %d items remaining...', 'installer', 'WPBDM' ), max( $count - $batch_size, 0 ) );
392
  return false;
393
  }
394
 
84
  update_option( 'wpbdp_settings', $settings );
85
  update_option( 'wpbdp_licenses', $licenses );
86
 
87
+ $msg = _x( 'Migrating license information to new format...', 'installer', 'business-directory-plugin' );
88
  return true;
89
  }
90
 
193
 
194
  update_option( 'wpbdp-expiration-notices', $notices );
195
 
196
+ $msg = _x( 'Migrating email notices to new format...', 'installer', 'business-directory-plugin' );
197
  return true;
198
  }
199
 
204
  public function _migrate_fee_plans( &$msg ) {
205
  global $wpdb;
206
 
207
+ $msg = _x( 'Migrating fee plans...', 'installer', 'business-directory-plugin' );
208
 
209
  if ( ! wpbdp_table_exists( $wpdb->prefix . 'wpbdp_fees' ) ) {
210
  return true;
248
  }
249
 
250
  if ( ! $success ) {
251
+ $msg = sprintf( _x( '! Could not migrate fee "%s" (%d)', 'installer', 'business-directory-plugin' ), $fee->label, $fee->id );
252
  return false;
253
  }
254
  }
321
  }
322
 
323
  if ( false === $wpdb->update( $wpdb->prefix . 'wpbdp_payments', array( 'payment_items' => serialize( $items ), 'payment_type' => $payment_type ), array( 'id' => $payment_id ) ) ) {
324
+ $msg = sprintf( _x( '! Could not migrate payment #%d', 'installer', 'business-directory-plugin' ), $payment_id );
325
  return false;
326
  }
327
  }
328
 
329
+ $msg = sprintf( _x( 'Updating payment items format: %d items remaining...', 'installer', 'business-directory-plugin' ), max( $count - $batch_size, 0 ) );
330
  return false;
331
  }
332
 
388
  $l->get_status( true );
389
  }
390
 
391
+ $msg = sprintf( _x( 'Migrating listing information: %d items remaining...', 'installer', 'business-directory-plugin' ), max( $count - $batch_size, 0 ) );
392
  return false;
393
  }
394
 
includes/admin/upgrades/migrations/migration-3_2.php CHANGED
@@ -74,7 +74,7 @@ class WPBDP__Migrations__3_2 extends WPBDP__Migration {
74
  if ( class_exists( 'WPBDP_RegionsPlugin' ) && version_compare( WPBDP_RegionsPlugin::VERSION, '1.1', '<' ) ) {
75
  deactivate_plugins( 'business-directory-regions/business-directory-regions.php', true );
76
  echo sprintf( '<div class="error"><p>%s</p></div>',
77
- _x( '<b>Business Directory Plugin - Regions Module</b> was disabled because it is incompatible with the current version of Business Directory. Please update the Regions module.', 'installer', 'WPBDM' )
78
  );
79
  }
80
  }
74
  if ( class_exists( 'WPBDP_RegionsPlugin' ) && version_compare( WPBDP_RegionsPlugin::VERSION, '1.1', '<' ) ) {
75
  deactivate_plugins( 'business-directory-regions/business-directory-regions.php', true );
76
  echo sprintf( '<div class="error"><p>%s</p></div>',
77
+ _x( '<b>Business Directory Plugin - Regions Module</b> was disabled because it is incompatible with the current version of Business Directory. Please update the Regions module.', 'installer', 'business-directory-plugin' )
78
  );
79
  }
80
  }
includes/admin/upgrades/migrations/migration-3_7.php CHANGED
@@ -34,7 +34,7 @@ class WPBDP__Migrations__3_7 extends WPBDP__Migration {
34
  public function upgrade_to_3_7_migrate_payments() {
35
  global $wpdb;
36
 
37
- $status_msg = _x( 'Migrating payments information.', 'installer', 'WPBDM' );
38
 
39
  // Remove/update listing fees.
40
  if ( ! $wpdb->get_col( $wpdb->prepare( "SHOW COLUMNS FROM {$wpdb->prefix}wpbdp_listing_fees LIKE %s", 'migrated' ) ) ) {
@@ -58,7 +58,7 @@ class WPBDP__Migrations__3_7 extends WPBDP__Migration {
58
  $fees_done = ( $n_fees_migrated == $n_fees ) ? true : false;
59
 
60
  if ( ! $fees_done ) {
61
- $status_msg = sprintf( _x( 'Cleaning up listing fees information... %d/%d', 'installer', 'WPBDM' ), $n_fees_migrated, $n_fees );
62
 
63
  $fees = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}wpbdp_listing_fees WHERE migrated = %d ORDER BY id ASC LIMIT 50", 0 ), ARRAY_A );
64
 
@@ -116,7 +116,7 @@ class WPBDP__Migrations__3_7 extends WPBDP__Migration {
116
  }
117
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->postmeta} WHERE meta_key = %s", '_wpbdp[payment_status]' ) );
118
  } else {
119
- $status_msg = sprintf( _x( 'Migrating previous transactions to new Payments API... %d/%d', 'installer', 'WPBDM' ), $n_transactions_migrated, $n_transactions );
120
 
121
  $transactions = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}wpbdp_payments WHERE migrated = %d ORDER BY id ASC LIMIT 50", 0 ), ARRAY_A );
122
 
@@ -145,7 +145,7 @@ class WPBDP__Migrations__3_7 extends WPBDP__Migration {
145
  array( 'payment_id' => $t['id'],
146
  'amount' => $t['amount'],
147
  'item_type' => 'charge',
148
- 'description' => _x( 'Initial listing payment (BD < 3.4)', 'installer', 'WPBDM' )
149
  ) );
150
  $wpdb->update( $wpdb->prefix . 'wpbdp_payments', $t, array( 'id' => $t['id'] ) );
151
 
@@ -156,7 +156,7 @@ class WPBDP__Migrations__3_7 extends WPBDP__Migration {
156
  array( 'payment_id' => $t['id'],
157
  'amount' => $t['amount'],
158
  'item_type' => 'charge',
159
- 'description' => _x( 'Listing edit payment (BD < 3.4)', 'installer', 'WPBDM' )
160
  ) );
161
  $wpdb->update( $wpdb->prefix . 'wpbdp_payments', $t, array( 'id' => $t['id'] ) );
162
 
@@ -177,7 +177,7 @@ class WPBDP__Migrations__3_7 extends WPBDP__Migration {
177
  $item['payment_id'] = $t['id'];
178
  $item['amount'] = $t['amount'];
179
  $item['item_type'] = 'fee';
180
- $item['description'] = sprintf( _x( 'Renewal fee "%s" for category "%s"', 'installer', 'WPBDM' ),
181
  $fee_info->fee['label'],
182
  wpbdp_get_term_name( $fee_info->category_id ) );
183
  $item['data'] = serialize( array( 'fee' => $fee_info->fee ) );
@@ -196,7 +196,7 @@ class WPBDP__Migrations__3_7 extends WPBDP__Migration {
196
  array( 'payment_id' => $t['id'],
197
  'amount' => $t['amount'],
198
  'item_type' => 'upgrade',
199
- 'description' => _x( 'Listing upgrade to featured', 'installer', 'WPBDM' )
200
  ) );
201
  $wpdb->update( $wpdb->prefix . 'wpbdp_payments', $t, array( 'id' => $t['id'] ) );
202
 
34
  public function upgrade_to_3_7_migrate_payments() {
35
  global $wpdb;
36
 
37
+ $status_msg = _x( 'Migrating payments information.', 'installer', 'business-directory-plugin' );
38
 
39
  // Remove/update listing fees.
40
  if ( ! $wpdb->get_col( $wpdb->prepare( "SHOW COLUMNS FROM {$wpdb->prefix}wpbdp_listing_fees LIKE %s", 'migrated' ) ) ) {
58
  $fees_done = ( $n_fees_migrated == $n_fees ) ? true : false;
59
 
60
  if ( ! $fees_done ) {
61
+ $status_msg = sprintf( _x( 'Cleaning up listing fees information... %d/%d', 'installer', 'business-directory-plugin' ), $n_fees_migrated, $n_fees );
62
 
63
  $fees = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}wpbdp_listing_fees WHERE migrated = %d ORDER BY id ASC LIMIT 50", 0 ), ARRAY_A );
64
 
116
  }
117
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->postmeta} WHERE meta_key = %s", '_wpbdp[payment_status]' ) );
118
  } else {
119
+ $status_msg = sprintf( _x( 'Migrating previous transactions to new Payments API... %d/%d', 'installer', 'business-directory-plugin' ), $n_transactions_migrated, $n_transactions );
120
 
121
  $transactions = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}wpbdp_payments WHERE migrated = %d ORDER BY id ASC LIMIT 50", 0 ), ARRAY_A );
122
 
145
  array( 'payment_id' => $t['id'],
146
  'amount' => $t['amount'],
147
  'item_type' => 'charge',
148
+ 'description' => _x( 'Initial listing payment (BD < 3.4)', 'installer', 'business-directory-plugin' )
149
  ) );
150
  $wpdb->update( $wpdb->prefix . 'wpbdp_payments', $t, array( 'id' => $t['id'] ) );
151
 
156
  array( 'payment_id' => $t['id'],
157
  'amount' => $t['amount'],
158
  'item_type' => 'charge',
159
+ 'description' => _x( 'Listing edit payment (BD < 3.4)', 'installer', 'business-directory-plugin' )
160
  ) );
161
  $wpdb->update( $wpdb->prefix . 'wpbdp_payments', $t, array( 'id' => $t['id'] ) );
162
 
177
  $item['payment_id'] = $t['id'];
178
  $item['amount'] = $t['amount'];
179
  $item['item_type'] = 'fee';
180
+ $item['description'] = sprintf( _x( 'Renewal fee "%s" for category "%s"', 'installer', 'business-directory-plugin' ),
181
  $fee_info->fee['label'],
182
  wpbdp_get_term_name( $fee_info->category_id ) );
183
  $item['data'] = serialize( array( 'fee' => $fee_info->fee ) );
196
  array( 'payment_id' => $t['id'],
197
  'amount' => $t['amount'],
198
  'item_type' => 'upgrade',
199
+ 'description' => _x( 'Listing upgrade to featured', 'installer', 'business-directory-plugin' )
200
  ) );
201
  $wpdb->update( $wpdb->prefix . 'wpbdp_payments', $t, array( 'id' => $t['id'] ) );
202
 
includes/class-cpt-integration.php CHANGED
@@ -12,50 +12,56 @@ class WPBDP__CPT_Integration {
12
  private function register_post_type() {
13
  // Listing type.
14
  $args = array(
15
- 'labels' => array(
16
- 'name' => _x( 'Directory', 'post type general name', 'WPBDM' ),
17
- 'singular_name' => _x( 'Listing', 'post type singular name', 'WPBDM' ),
18
- 'add_new' => _x( 'Add New Listing', 'listing', 'WPBDM' ),
19
- 'add_new_item' => _x( 'Add New Listing', 'post type', 'WPBDM' ),
20
- 'edit_item' => __( 'Edit Listing', 'WPBDM' ),
21
- 'new_item' => __( 'New Listing', 'WPBDM' ),
22
- 'view_item' => __( 'View Listing', 'WPBDM' ),
23
- 'search_items' => __( 'Search Listings', 'WPBDM' ),
24
- 'not_found' => __( 'No listings found', 'WPBDM' ),
25
- 'not_found_in_trash' => __( 'No listings found in trash', 'WPBDM' )
 
26
  ),
27
- 'public' => true,
28
- 'menu_icon' => WPBDP_URL . 'assets/images/menuico.png',
29
- 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments', 'custom-fields' ),
30
- 'rewrite' => array(
31
- 'slug' => wpbdp_get_option( 'permalinks-directory-slug', WPBDP_POST_TYPE ),
 
32
  'with_front' => true,
33
- 'feeds' => true
 
 
 
 
34
  )
35
  );
36
  register_post_type( WPBDP_POST_TYPE, $args );
37
 
38
  // Category tax.
39
  $cat_args = array(
40
- 'labels' => array(
41
- 'name' => __( 'Directory Categories', 'WPBDM' ),
42
- 'singular_name' => __( 'Directory Category', 'WPBDM' )
43
  ),
44
  'hierarchical' => true,
45
- 'public' => true,
46
- 'rewrite' => array( 'slug' => wpbdp_get_option( 'permalinks-category-slug', WPBDP_CATEGORY_TAX ) )
47
  );
48
  register_taxonomy( WPBDP_CATEGORY_TAX, WPBDP_POST_TYPE, $cat_args );
49
 
50
  // Tag tax.
51
  $tags_args = array(
52
- 'labels' => array(
53
- 'name' => __( 'Directory Tags', 'WPBDM' ),
54
- 'singular_name' => __( 'Directory Tag', 'WPBDM' )
55
  ),
56
  'hierarchical' => false,
57
- 'public' => true,
58
- 'rewrite' => array( 'slug' => wpbdp_get_option( 'permalinks-tags-slug', WPBDP_TAGS_TAX ) )
59
  );
60
 
61
  $tags_slug = wpbdp_get_option( 'permalinks-tags-slug', WPBDP_TAGS_TAX );
@@ -65,13 +71,13 @@ class WPBDP__CPT_Integration {
65
  public function register_hooks() {
66
  add_filter( 'post_type_link', array( &$this, '_post_link' ), 10, 3 );
67
  add_filter( 'get_shortlink', array( &$this, '_short_link' ), 10, 4 );
68
- // add_filter('post_type_link', array($this, '_post_link_qtranslate'), 11, 2); // basic support for qTranslate
69
- add_filter('preview_post_link', array($this, '_preview_post_link'), 10, 2);
70
 
71
- add_filter('term_link', array($this, '_category_link'), 10, 3);
72
- add_filter('term_link', array($this, '_tag_link'), 10, 3);
 
 
73
 
74
- add_filter('comments_open', array($this, '_allow_comments'), 10, 2);
75
 
76
  add_filter( 'bulk_post_updated_messages', array( $this, 'bulk_post_updated_messages' ), 10, 2 );
77
 
@@ -83,46 +89,50 @@ class WPBDP__CPT_Integration {
83
  add_action( 'save_post', array( $this, 'save_post' ), 10, 3 );
84
  }
85
 
86
- public function _category_link($link, $category, $taxonomy) {
87
- if ( WPBDP_CATEGORY_TAX != $taxonomy )
88
  return $link;
 
89
 
90
  if ( ! wpbdp_rewrite_on() ) {
91
- if ( wpbdp_get_option( 'disable-cpt' ) )
92
  return wpbdp_url( '/' ) . '&_' . wpbdp_get_option( 'permalinks-category-slug' ) . '=' . $category->slug;
 
93
 
94
  return $link;
95
  }
96
 
97
- $link = wpbdp_url(
98
  sprintf(
99
  '/%s/%s%s',
100
  wpbdp_get_option( 'permalinks-category-slug' ),
101
  $category->slug,
102
- substr( $link, -1) === '/' ? '/' : ''
103
  )
104
  );
105
 
106
  return apply_filters( 'wpbdp_category_link', $link, $category );
107
  }
108
 
109
- public function _tag_link($link, $tag, $taxonomy) {
110
- if ( WPBDP_TAGS_TAX != $taxonomy )
111
  return $link;
 
112
 
113
  if ( ! wpbdp_rewrite_on() ) {
114
- if ( wpbdp_get_option( 'disable-cpt' ) )
115
  $link = wpbdp_url( '/' ) . '&_' . wpbdp_get_option( 'permalinks-tags-slug' ) . '=' . $tag->slug;
 
116
 
117
  return $link;
118
  }
119
 
120
- $link = wpbdp_url(
121
  sprintf(
122
  '/%s/%s%s',
123
  wpbdp_get_option( 'permalinks-tags-slug' ),
124
  $tag->slug,
125
- substr( $link, -1) === '/' ? '/' : ''
126
  )
127
  );
128
 
@@ -130,23 +140,26 @@ class WPBDP__CPT_Integration {
130
  }
131
 
132
  public function _post_link( $link, $post = null, $leavename = false ) {
133
- if ( WPBDP_POST_TYPE != get_post_type( $post ) )
134
  return $link;
 
135
 
136
- if ( $querystring = parse_url( $link, PHP_URL_QUERY ) )
137
  $querystring = '?' . $querystring;
138
- else
139
  $querystring = '';
 
140
 
141
- $querystring = substr( $link, -1) === '/' || $querystring ? '/' : '' . $querystring;
142
 
143
  if ( ! wpbdp_rewrite_on() ) {
144
  if ( wpbdp_get_option( 'disable-cpt' ) ) {
145
  $link = wpbdp_url( '/' ) . '&' . '_' . wpbdp_get_option( 'permalinks-directory-slug' ) . '=' . $post->post_name;
146
  }
147
  } else {
148
- if ( $leavename )
149
  return wpbdp_url( '/' . '%' . WPBDP_POST_TYPE . '%' . $querystring );
 
150
 
151
  if ( wpbdp_get_option( 'permalinks-no-id' ) ) {
152
  if ( $post->post_name ) {
@@ -166,34 +179,39 @@ class WPBDP__CPT_Integration {
166
  }
167
 
168
  public function _short_link( $shortlink, $id = 0, $context = 'post', $allow_slugs = true ) {
169
- if ( 'post' !== $context || WPBDP_POST_TYPE != get_post_type( $id ) )
170
  return $shortlink;
 
171
 
172
  $post = get_post( $id );
173
  return $this->_post_link( $shortlink, $post );
174
  }
175
 
176
  public function _post_link_qtranslate( $url, $post ) {
177
- if ( is_admin() || !function_exists( 'qtrans_convertURL' ) )
178
  return $url;
 
179
 
180
  global $q_config;
181
 
182
- $lang = isset( $_GET['lang'] ) ? $_GET['lang'] : $q_config['language'];
183
  $default_lang = $q_config['default_language'];
184
 
185
- if ( $lang != $default_lang )
186
  return add_query_arg( 'lang', $lang, $url );
 
187
 
188
  return $url;
189
  }
190
 
191
  public function _preview_post_link( $url, $post = null ) {
192
- if ( is_null( $post ) && isset( $GLOBALS['post'] ) )
193
  $post = $GLOBALS['post'];
 
194
 
195
- if ( WPBDP_POST_TYPE != get_post_type( $post ) )
196
- return $url ;
 
197
 
198
  if ( wpbdp_rewrite_on() ) {
199
  if ( ! wpbdp_get_option( 'permalinks-no-id' ) || ! empty( $post->post_name ) ) {
@@ -204,10 +222,11 @@ class WPBDP__CPT_Integration {
204
  return $url;
205
  }
206
 
207
- public function _allow_comments($open, $post_id) {
208
  // comments on directory pages
209
- if ($post_id == wpbdp_get_page_id('main'))
210
  return false;
 
211
 
212
  // comments on listings
213
  if ( get_post_type( $post_id ) == WPBDP_POST_TYPE ) {
@@ -226,47 +245,47 @@ class WPBDP__CPT_Integration {
226
  * @param array $bulk_messages Array of messages.
227
  * @param array $bulk_counts Array of how many objects were updated.
228
  * @return array
229
- *
230
  * @since 5.5.11
231
  */
232
  public function bulk_post_updated_messages( $bulk_messages, $bulk_counts ) {
233
- $bulk_messages[WPBDP_POST_TYPE] = array(
234
  /* translators: %s: listing count */
235
- 'updated' => _n( '%s listing updated.', '%s listings updated.', $bulk_counts['updated'], 'WPBDM' ),
236
  /* translators: %s: listing count */
237
- 'locked' => _n( '%s listing not updated, somebody is editing it.', '%s listings not updated, somebody is editing them.', $bulk_counts['locked'], 'WPBDM' ),
238
  /* translators: %s: listing count */
239
- 'deleted' => _n( '%s listing permanently deleted.', '%s listings permanently deleted.', $bulk_counts['deleted'], 'WPBDM' ),
240
  /* translators: %s: listing count */
241
- 'trashed' => _n( '%s listing moved to the Trash.', '%s listings moved to the Trash.', $bulk_counts['trashed'], 'WPBDM' ),
242
  /* translators: %s: listing count */
243
- 'untrashed' => _n( '%s listing restored from the Trash.', '%s listings restored from the Trash.', $bulk_counts['untrashed'], 'WPBDM' ),
244
  );
245
-
246
  return $bulk_messages;
247
  }
248
 
249
  /**
250
- *
251
  * @since 5.5.11
252
  */
253
  public function pre_listing_delete( $check, $post ) {
254
- if( WPBDP_POST_TYPE !== $post->post_type ) {
255
  return $check;
256
  }
257
 
258
  $listing = wpbdp_get_listing( $post->ID );
259
 
260
- if( ! $listing->has_subscription() ) {
261
  return $check;
262
  }
263
-
264
  $subscription = $listing->get_subscription();
265
 
266
  if ( ! $subscription ) {
267
  global $wpdb;
268
  $subscription_id = $wpdb->get_var( $wpdb->prepare( "SELECT subscription_id FROM {$wpdb->prefix}wpbdp_listings WHERE listing_id = %d AND is_recurring = %d", $this->id, 1 ) );
269
-
270
  if ( ! $subscription_id ) {
271
  return $check;
272
  }
@@ -302,11 +321,13 @@ class WPBDP__CPT_Integration {
302
 
303
  /**
304
  * Handles cleanup after a listing is deleted.
 
305
  * @since 3.4
306
  */
307
  public function after_listing_delete( $post_id ) {
308
- if ( WPBDP_POST_TYPE != get_post_type( $post_id ) )
309
  return;
 
310
 
311
  $listing = wpbdp_get_listing( $post_id );
312
  $listing->after_delete( 'delete_post' );
@@ -316,18 +337,21 @@ class WPBDP__CPT_Integration {
316
  * @since 5.0
317
  */
318
  public function save_post( $post_id, $post, $update ) {
319
- if ( WPBDP_POST_TYPE != $post->post_type )
320
  return;
 
321
 
322
- if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
323
  return;
 
324
 
325
  if ( ! $update ) {
326
  wpbdp_insert_log( array( 'log_type' => 'listing.created', 'object_id' => $post_id ) );
327
  }
328
 
329
- if ( 'auto-draft' == $post->post_status )
330
  return;
 
331
 
332
  $listing = wpbdp_get_listing( $post_id );
333
  $listing->_after_save( $update ? 'save_post' : 'submit-new' );
@@ -336,8 +360,24 @@ class WPBDP__CPT_Integration {
336
  public function handle_delete_term( $term_id, $tt_id, $taxonomy ) {
337
  global $wpdb;
338
 
339
- if ( WPBDP_CATEGORY_TAX != $taxonomy )
340
  return;
 
341
  }
342
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
  }
12
  private function register_post_type() {
13
  // Listing type.
14
  $args = array(
15
+ 'labels' => array(
16
+ 'name' => _x( 'Directory', 'post type general name', 'business-directory-plugin' ),
17
+ 'singular_name' => _x( 'Listing', 'post type singular name', 'business-directory-plugin' ),
18
+ 'add_new' => _x( 'Add New Listing', 'listing', 'business-directory-plugin' ),
19
+ 'add_new_item' => _x( 'Add New Listing', 'post type', 'business-directory-plugin' ),
20
+ 'edit_item' => __( 'Edit Listing', 'business-directory-plugin' ),
21
+ 'new_item' => __( 'New Listing', 'business-directory-plugin' ),
22
+ 'view_item' => __( 'View Listing', 'business-directory-plugin' ),
23
+ 'search_items' => __( 'Search Listings', 'business-directory-plugin' ),
24
+ 'all_items' => __( 'Directory Listings', 'business-directory-plugin' ),
25
+ 'not_found' => __( 'No listings found', 'business-directory-plugin' ),
26
+ 'not_found_in_trash' => __( 'No listings found in trash', 'business-directory-plugin' ),
27
  ),
28
+ 'public' => true,
29
+ 'show_ui' => true,
30
+ 'menu_icon' => self::menu_icon(),
31
+ 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments', 'custom-fields' ),
32
+ 'rewrite' => array(
33
+ 'slug' => wpbdp_get_option( 'permalinks-directory-slug', WPBDP_POST_TYPE ),
34
  'with_front' => true,
35
+ 'feeds' => true,
36
+ ),
37
+ 'taxonomies' => array(
38
+ WPBDP_CATEGORY_TAX,
39
+ WPBDP_TAGS_TAX,
40
  )
41
  );
42
  register_post_type( WPBDP_POST_TYPE, $args );
43
 
44
  // Category tax.
45
  $cat_args = array(
46
+ 'labels' => array(
47
+ 'name' => __( 'Directory Categories', 'business-directory-plugin' ),
48
+ 'singular_name' => __( 'Directory Category', 'business-directory-plugin' ),
49
  ),
50
  'hierarchical' => true,
51
+ 'public' => true,
52
+ 'rewrite' => array( 'slug' => wpbdp_get_option( 'permalinks-category-slug', WPBDP_CATEGORY_TAX ) ),
53
  );
54
  register_taxonomy( WPBDP_CATEGORY_TAX, WPBDP_POST_TYPE, $cat_args );
55
 
56
  // Tag tax.
57
  $tags_args = array(
58
+ 'labels' => array(
59
+ 'name' => __( 'Directory Tags', 'business-directory-plugin' ),
60
+ 'singular_name' => __( 'Directory Tag', 'business-directory-plugin' ),
61
  ),
62
  'hierarchical' => false,
63
+ 'public' => true,
64
+ 'rewrite' => array( 'slug' => wpbdp_get_option( 'permalinks-tags-slug', WPBDP_TAGS_TAX ) ),
65
  );
66
 
67
  $tags_slug = wpbdp_get_option( 'permalinks-tags-slug', WPBDP_TAGS_TAX );
71
  public function register_hooks() {
72
  add_filter( 'post_type_link', array( &$this, '_post_link' ), 10, 3 );
73
  add_filter( 'get_shortlink', array( &$this, '_short_link' ), 10, 4 );
 
 
74
 
75
+ add_filter( 'preview_post_link', array( $this, '_preview_post_link' ), 10, 2 );
76
+
77
+ add_filter( 'term_link', array( $this, '_category_link' ), 10, 3 );
78
+ add_filter( 'term_link', array( $this, '_tag_link' ), 10, 3 );
79
 
80
+ add_filter( 'comments_open', array( $this, '_allow_comments' ), 10, 2 );
81
 
82
  add_filter( 'bulk_post_updated_messages', array( $this, 'bulk_post_updated_messages' ), 10, 2 );
83
 
89
  add_action( 'save_post', array( $this, 'save_post' ), 10, 3 );
90
  }
91
 
92
+ public function _category_link( $link, $category, $taxonomy) {
93
+ if ( WPBDP_CATEGORY_TAX != $taxonomy ) {
94
  return $link;
95
+ }
96
 
97
  if ( ! wpbdp_rewrite_on() ) {
98
+ if ( wpbdp_get_option( 'disable-cpt' ) ) {
99
  return wpbdp_url( '/' ) . '&_' . wpbdp_get_option( 'permalinks-category-slug' ) . '=' . $category->slug;
100
+ }
101
 
102
  return $link;
103
  }
104
 
105
+ $link = wpbdp_url(
106
  sprintf(
107
  '/%s/%s%s',
108
  wpbdp_get_option( 'permalinks-category-slug' ),
109
  $category->slug,
110
+ substr( $link, -1 ) === '/' ? '/' : ''
111
  )
112
  );
113
 
114
  return apply_filters( 'wpbdp_category_link', $link, $category );
115
  }
116
 
117
+ public function _tag_link( $link, $tag, $taxonomy) {
118
+ if ( WPBDP_TAGS_TAX != $taxonomy ) {
119
  return $link;
120
+ }
121
 
122
  if ( ! wpbdp_rewrite_on() ) {
123
+ if ( wpbdp_get_option( 'disable-cpt' ) ) {
124
  $link = wpbdp_url( '/' ) . '&_' . wpbdp_get_option( 'permalinks-tags-slug' ) . '=' . $tag->slug;
125
+ }
126
 
127
  return $link;
128
  }
129
 
130
+ $link = wpbdp_url(
131
  sprintf(
132
  '/%s/%s%s',
133
  wpbdp_get_option( 'permalinks-tags-slug' ),
134
  $tag->slug,
135
+ substr( $link, -1 ) === '/' ? '/' : ''
136
  )
137
  );
138
 
140
  }
141
 
142
  public function _post_link( $link, $post = null, $leavename = false ) {
143
+ if ( WPBDP_POST_TYPE != get_post_type( $post ) ) {
144
  return $link;
145
+ }
146
 
147
+ if ( $querystring = parse_url( $link, PHP_URL_QUERY ) ) {
148
  $querystring = '?' . $querystring;
149
+ } else {
150
  $querystring = '';
151
+ }
152
 
153
+ $querystring = substr( $link, -1 ) === '/' || $querystring ? '/' : '' . $querystring;
154
 
155
  if ( ! wpbdp_rewrite_on() ) {
156
  if ( wpbdp_get_option( 'disable-cpt' ) ) {
157
  $link = wpbdp_url( '/' ) . '&' . '_' . wpbdp_get_option( 'permalinks-directory-slug' ) . '=' . $post->post_name;
158
  }
159
  } else {
160
+ if ( $leavename ) {
161
  return wpbdp_url( '/' . '%' . WPBDP_POST_TYPE . '%' . $querystring );
162
+ }
163
 
164
  if ( wpbdp_get_option( 'permalinks-no-id' ) ) {
165
  if ( $post->post_name ) {
179
  }
180
 
181
  public function _short_link( $shortlink, $id = 0, $context = 'post', $allow_slugs = true ) {
182
+ if ( 'post' !== $context || WPBDP_POST_TYPE != get_post_type( $id ) ) {
183
  return $shortlink;
184
+ }
185
 
186
  $post = get_post( $id );
187
  return $this->_post_link( $shortlink, $post );
188
  }
189
 
190
  public function _post_link_qtranslate( $url, $post ) {
191
+ if ( is_admin() || ! function_exists( 'qtrans_convertURL' ) ) {
192
  return $url;
193
+ }
194
 
195
  global $q_config;
196
 
197
+ $lang = isset( $_GET['lang'] ) ? $_GET['lang'] : $q_config['language'];
198
  $default_lang = $q_config['default_language'];
199
 
200
+ if ( $lang != $default_lang ) {
201
  return add_query_arg( 'lang', $lang, $url );
202
+ }
203
 
204
  return $url;
205
  }
206
 
207
  public function _preview_post_link( $url, $post = null ) {
208
+ if ( is_null( $post ) && isset( $GLOBALS['post'] ) ) {
209
  $post = $GLOBALS['post'];
210
+ }
211
 
212
+ if ( WPBDP_POST_TYPE != get_post_type( $post ) ) {
213
+ return $url;
214
+ }
215
 
216
  if ( wpbdp_rewrite_on() ) {
217
  if ( ! wpbdp_get_option( 'permalinks-no-id' ) || ! empty( $post->post_name ) ) {
222
  return $url;
223
  }
224
 
225
+ public function _allow_comments( $open, $post_id) {
226
  // comments on directory pages
227
+ if ($post_id == wpbdp_get_page_id( 'main' )) {
228
  return false;
229
+ }
230
 
231
  // comments on listings
232
  if ( get_post_type( $post_id ) == WPBDP_POST_TYPE ) {
245
  * @param array $bulk_messages Array of messages.
246
  * @param array $bulk_counts Array of how many objects were updated.
247
  * @return array
248
+ *
249
  * @since 5.5.11
250
  */
251
  public function bulk_post_updated_messages( $bulk_messages, $bulk_counts ) {
252
+ $bulk_messages[ WPBDP_POST_TYPE ] = array(
253
  /* translators: %s: listing count */
254
+ 'updated' => _n( '%s listing updated.', '%s listings updated.', $bulk_counts['updated'], 'business-directory-plugin' ),
255
  /* translators: %s: listing count */
256
+ 'locked' => _n( '%s listing not updated, somebody is editing it.', '%s listings not updated, somebody is editing them.', $bulk_counts['locked'], 'business-directory-plugin' ),
257
  /* translators: %s: listing count */
258
+ 'deleted' => _n( '%s listing permanently deleted.', '%s listings permanently deleted.', $bulk_counts['deleted'], 'business-directory-plugin' ),
259
  /* translators: %s: listing count */
260
+ 'trashed' => _n( '%s listing moved to the Trash.', '%s listings moved to the Trash.', $bulk_counts['trashed'], 'business-directory-plugin' ),
261
  /* translators: %s: listing count */
262
+ 'untrashed' => _n( '%s listing restored from the Trash.', '%s listings restored from the Trash.', $bulk_counts['untrashed'], 'business-directory-plugin' ),
263
  );
264
+
265
  return $bulk_messages;
266
  }
267
 
268
  /**
269
+ *
270
  * @since 5.5.11
271
  */
272
  public function pre_listing_delete( $check, $post ) {
273
+ if ( WPBDP_POST_TYPE !== $post->post_type ) {
274
  return $check;
275
  }
276
 
277
  $listing = wpbdp_get_listing( $post->ID );
278
 
279
+ if ( ! $listing->has_subscription() ) {
280
  return $check;
281
  }
282
+
283
  $subscription = $listing->get_subscription();
284
 
285
  if ( ! $subscription ) {
286
  global $wpdb;
287
  $subscription_id = $wpdb->get_var( $wpdb->prepare( "SELECT subscription_id FROM {$wpdb->prefix}wpbdp_listings WHERE listing_id = %d AND is_recurring = %d", $this->id, 1 ) );
288
+
289
  if ( ! $subscription_id ) {
290
  return $check;
291
  }
321
 
322
  /**
323
  * Handles cleanup after a listing is deleted.
324
+ *
325
  * @since 3.4
326
  */
327
  public function after_listing_delete( $post_id ) {
328
+ if ( WPBDP_POST_TYPE != get_post_type( $post_id ) ) {
329
  return;
330
+ }
331
 
332
  $listing = wpbdp_get_listing( $post_id );
333
  $listing->after_delete( 'delete_post' );
337
  * @since 5.0
338
  */
339
  public function save_post( $post_id, $post, $update ) {
340
+ if ( WPBDP_POST_TYPE != $post->post_type ) {
341
  return;
342
+ }
343
 
344
+ if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
345
  return;
346
+ }
347
 
348
  if ( ! $update ) {
349
  wpbdp_insert_log( array( 'log_type' => 'listing.created', 'object_id' => $post_id ) );
350
  }
351
 
352
+ if ( 'auto-draft' == $post->post_status ) {
353
  return;
354
+ }
355
 
356
  $listing = wpbdp_get_listing( $post_id );
357
  $listing->_after_save( $update ? 'save_post' : 'submit-new' );
360
  public function handle_delete_term( $term_id, $tt_id, $taxonomy ) {
361
  global $wpdb;
362
 
363
+ if ( WPBDP_CATEGORY_TAX != $taxonomy ) {
364
  return;
365
+ }
366
  }
367
 
368
+ public static function menu_icon( $atts = array() ) {
369
+ $defaults = array(
370
+ 'height' => 18,
371
+ 'width' => 18,
372
+ 'fill' => '#a0a5aa',
373
+ );
374
+ $atts = array_merge( $defaults, $atts );
375
+
376
+ $icon = '<svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="address-card" class="svg-inline--fa fa-address-card fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" width="' . esc_attr( $atts['width'] ) . '" height="' . esc_attr( $atts['height'] ) . '" >
377
+ <path fill="' . $atts['fill'] . '" d="M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z">
378
+ </path>
379
+ </svg>';
380
+
381
+ return 'data:image/svg+xml;base64,' . base64_encode( $icon );
382
+ }
383
  }
includes/class-fee-plan.php CHANGED
@@ -161,9 +161,9 @@ final class WPBDP__Fee_Plan {
161
 
162
  if ( wpbdp_get_option( 'allow-images' ) ) {
163
  if ( ! $this->images ) {
164
- $items['images'] = _x( 'No images allowed.', 'fee plan', 'WPBDM' );
165
  } else {
166
- $items['images'] = sprintf( _nx( '%d image allowed.', '%d images allowed.', $this->images, 'fee plan', 'WPBDM' ), $this->images );
167
  }
168
  }
169
 
@@ -317,25 +317,21 @@ final class WPBDP__Fee_Plan {
317
  $errors = array();
318
 
319
  if ( ! $this->label ) {
320
- $errors['label'] = _x( 'Fee label is required.', 'fees-api', 'WPBDM' );
321
  }
322
 
323
  // limit 'duration' because of TIMESTAMP limited range (issue #157).
324
  // FIXME: this is not a long-term fix. we should move to DATETIME to avoid this entirely.
325
  if ( $this->days > 3650 ) {
326
- $errors['days'] = _x( 'Fee listing duration must be a number less than 10 years (3650 days).', 'fees-api', 'WPBDM' );
327
  }
328
 
329
  if ( 1 == $this->recurring ) {
330
  if ( 0 === $this->days ) {
331
- $errors[] = str_replace( '<a>', '<a href="#wpbdp-fee-form-days">', _x( 'To set this fee as "Recurring" you must have a time for the listing to renew (e.g. 30 days). To avoid issues with the listing, please edit the <a>fee plan</a> appropriately.', 'fees-api', 'WPBDM' ) );
332
  }
333
 
334
- $error_message = _x( 'To set this fee as "Recurring" you must set a price for your fee plan. To avoid issues with the listing, please edit the <a>fee plan</a> appropriately.', 'fees-api', 'WPBDM' );
335
-
336
- if ( 'flat' === $this->pricing_model && 0 == $this->amount ) {
337
- $errors[] = str_replace( '<a>', '<a href="#wpbdp-fee-form-fee-price">', $error_message );
338
- }
339
 
340
  if ( 'variable' === $this->pricing_model && 0 === array_sum( $this->pricing_details ) ) {
341
  $errors[] = str_replace( '<a>', '<a href="#wpbdp-fee-form-fee-category">', $error_message );
161
 
162
  if ( wpbdp_get_option( 'allow-images' ) ) {
163
  if ( ! $this->images ) {
164
+ $items['images'] = _x( 'No images allowed.', 'fee plan', 'business-directory-plugin' );
165
  } else {
166
+ $items['images'] = sprintf( _nx( '%d image allowed.', '%d images allowed.', $this->images, 'fee plan', 'business-directory-plugin' ), $this->images );
167
  }
168
  }
169
 
317
  $errors = array();
318
 
319
  if ( ! $this->label ) {
320
+ $errors['label'] = _x( 'Fee label is required.', 'fees-api', 'business-directory-plugin' );
321
  }
322
 
323
  // limit 'duration' because of TIMESTAMP limited range (issue #157).
324
  // FIXME: this is not a long-term fix. we should move to DATETIME to avoid this entirely.
325
  if ( $this->days > 3650 ) {
326
+ $errors['days'] = _x( 'Fee listing duration must be a number less than 10 years (3650 days).', 'fees-api', 'business-directory-plugin' );
327
  }
328
 
329
  if ( 1 == $this->recurring ) {
330
  if ( 0 === $this->days ) {
331
+ $errors[] = str_replace( '<a>', '<a href="#wpbdp-fee-form-days">', _x( 'To set this fee as "Recurring" you must have a time for the listing to renew (e.g. 30 days). To avoid issues with the listing, please edit the <a>fee plan</a> appropriately.', 'fees-api', 'business-directory-plugin' ) );
332
  }
333
 
334
+ $error_message = _x( 'To set this fee as "Recurring" you must set a price for your fee plan. To avoid issues with the listing, please edit the <a>fee plan</a> appropriately.', 'fees-api', 'business-directory-plugin' );
 
 
 
 
335
 
336
  if ( 'variable' === $this->pricing_model && 0 === array_sum( $this->pricing_details ) ) {
337
  $errors[] = str_replace( '<a>', '<a href="#wpbdp-fee-form-fee-category">', $error_message );
includes/class-fees-api.php CHANGED
@@ -58,7 +58,7 @@ class WPBDP_Fees_API {
58
  $wpdb->insert( $wpdb->prefix . 'wpbdp_plans',
59
  array( 'id' => 0,
60
  'tag' => 'free',
61
- 'label' => _x( 'Free Listing', 'fees-api', 'WPBDM' ),
62
  'amount' => 0.0,
63
  'images' => absint( wpbdp_get_option( 'free-images' ) ),
64
  'days' => absint( wpbdp_get_option( 'listing-duration' ) ),
58
  $wpdb->insert( $wpdb->prefix . 'wpbdp_plans',
59
  array( 'id' => 0,
60
  'tag' => 'free',
61
+ 'label' => _x( 'Free Listing', 'fees-api', 'business-directory-plugin' ),
62
  'amount' => 0.0,
63
  'images' => absint( wpbdp_get_option( 'free-images' ) ),
64
  'days' => absint( wpbdp_get_option( 'listing-duration' ) ),
includes/class-listing-email-notification.php CHANGED
@@ -134,7 +134,7 @@ class WPBDP__Listing_Email_Notification {
134
 
135
  $user_notifications = wpbdp_get_option( 'user-notifications' );
136
 
137
- if ( ! in_array( 'listing-expires', $user_notifications, true ) ) {
138
  return false;
139
  }
140
 
@@ -244,7 +244,7 @@ class WPBDP__Listing_Email_Notification {
244
  $admin_email = new WPBDP_Email();
245
 
246
  // translators: [%s] is the name of the blog.
247
- $admin_email->subject = sprintf( _x( '[%s] New listing notification', 'notify email', 'WPBDM' ), get_bloginfo( 'name' ) );
248
  $admin_email->to[] = get_bloginfo( 'admin_email' );
249
 
250
  if ( wpbdp_get_option( 'admin-notifications-cc' ) ) {
@@ -312,7 +312,7 @@ class WPBDP__Listing_Email_Notification {
312
  $email = new WPBDP_Email();
313
 
314
  // translators: [%s] is the name of the blog.
315
- $email->subject = sprintf( _x( '[%s] Listing edit notification', 'notify email', 'WPBDM' ), get_bloginfo( 'name' ) );
316
  $email->to[] = get_bloginfo( 'admin_email' );
317
 
318
  if ( wpbdp_get_option( 'admin-notifications-cc' ) ) {
@@ -384,7 +384,7 @@ class WPBDP__Listing_Email_Notification {
384
  $admin_email = new WPBDP_Email();
385
 
386
  // translators: %s is the name of the blog.
387
- $admin_email->subject = sprintf( _x( '[%s] Reported listing notification', 'notify email', 'WPBDM' ), get_bloginfo( 'name' ) );
388
  $admin_email->to[] = get_bloginfo( 'admin_email' );
389
 
390
  if ( wpbdp_get_option( 'admin-notifications-cc' ) ) {
@@ -431,7 +431,7 @@ class WPBDP__Listing_Email_Notification {
431
  $admin_email = new WPBDP_Email();
432
 
433
  // translators: [%s] is the name of the blog.
434
- $admin_email->subject = sprintf( _x( '[%s] New payment notification', 'notify email', 'WPBDM' ), get_bloginfo( 'name' ) );
435
  $admin_email->to[] = get_bloginfo( 'admin_email' );
436
 
437
  if ( wpbdp_get_option( 'admin-notifications-cc' ) ) {
134
 
135
  $user_notifications = wpbdp_get_option( 'user-notifications' );
136
 
137
+ if ( ! in_array( 'listing-expires', (array) $user_notifications, true ) ) {
138
  return false;
139
  }
140
 
244
  $admin_email = new WPBDP_Email();
245
 
246
  // translators: [%s] is the name of the blog.
247
+ $admin_email->subject = sprintf( _x( '[%s] New listing notification', 'notify email', 'business-directory-plugin' ), get_bloginfo( 'name' ) );
248
  $admin_email->to[] = get_bloginfo( 'admin_email' );
249
 
250
  if ( wpbdp_get_option( 'admin-notifications-cc' ) ) {
312
  $email = new WPBDP_Email();
313
 
314
  // translators: [%s] is the name of the blog.
315
+ $email->subject = sprintf( _x( '[%s] Listing edit notification', 'notify email', 'business-directory-plugin' ), get_bloginfo( 'name' ) );
316
  $email->to[] = get_bloginfo( 'admin_email' );
317
 
318
  if ( wpbdp_get_option( 'admin-notifications-cc' ) ) {
384
  $admin_email = new WPBDP_Email();
385
 
386
  // translators: %s is the name of the blog.
387
+ $admin_email->subject = sprintf( _x( '[%s] Reported listing notification', 'notify email', 'business-directory-plugin' ), get_bloginfo( 'name' ) );
388
  $admin_email->to[] = get_bloginfo( 'admin_email' );
389
 
390
  if ( wpbdp_get_option( 'admin-notifications-cc' ) ) {
431
  $admin_email = new WPBDP_Email();
432
 
433
  // translators: [%s] is the name of the blog.
434
+ $admin_email->subject = sprintf( _x( '[%s] New payment notification', 'notify email', 'business-directory-plugin' ), get_bloginfo( 'name' ) );
435
  $admin_email->to[] = get_bloginfo( 'admin_email' );
436
 
437
  if ( wpbdp_get_option( 'admin-notifications-cc' ) ) {
includes/class-listing-expiration.php CHANGED
@@ -37,7 +37,9 @@ class WPBDP__Listing_Expiration {
37
 
38
  foreach ( $listings as $listing_id ) {
39
  $l = wpbdp_get_listing( $listing_id );
40
- $l->set_status( 'expired' );
 
 
41
  }
42
  }
43
 
@@ -51,7 +53,7 @@ class WPBDP__Listing_Expiration {
51
 
52
  $user_notifications = wpbdp_get_option( 'user-notifications' );
53
 
54
- if ( ! in_array( 'listing-expires', $user_notifications, true ) ) {
55
  return;
56
  }
57
 
@@ -96,6 +98,23 @@ class WPBDP__Listing_Expiration {
96
 
97
  return $listings;
98
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  }
100
 
101
  // phpcs:enable
37
 
38
  foreach ( $listings as $listing_id ) {
39
  $l = wpbdp_get_listing( $listing_id );
40
+ if ( ! $this->maybe_renew_free_listing( $l ) ) {
41
+ $l->set_status( 'expired' );
42
+ }
43
  }
44
  }
45
 
53
 
54
  $user_notifications = wpbdp_get_option( 'user-notifications' );
55
 
56
+ if ( ! in_array( 'listing-expires', (array) $user_notifications, true ) ) {
57
  return;
58
  }
59
 
98
 
99
  return $listings;
100
  }
101
+
102
+ private function maybe_renew_free_listing( $listing ) {
103
+ $plan = $listing->get_fee_plan();
104
+
105
+ if( ! $plan->is_recurring ) {
106
+ return false;
107
+ }
108
+
109
+ // Paid fee plans should be renewed through gateways.
110
+ if ( 0 < $plan->fee_price ) {
111
+ return false;
112
+ }
113
+
114
+ $listing->renew();
115
+
116
+ return true;
117
+ }
118
  }
119
 
120
  // phpcs:enable
includes/class-listing.php CHANGED
@@ -314,7 +314,7 @@ class WPBDP_Listing {
314
  $payments = $this->get_latest_payments();
315
 
316
  if ( ! $payments ) {
317
- return new WP_Error( 'No listing payments', _x( "Listing has no registered payments", 'listing', 'WPBDM' ) );
318
  }
319
 
320
  foreach ( $payments as $payment ) {
@@ -322,7 +322,7 @@ class WPBDP_Listing {
322
  return new WP_Error(
323
  'payment delete error',
324
  sprintf( "%s: %s",
325
- _x( "Can't delete payment", 'listing', 'WPBDM' ),
326
  $payment->id
327
  )
328
  );
@@ -361,7 +361,7 @@ class WPBDP_Listing {
361
  $this->set_post_status( 'draft' );
362
  }
363
 
364
- wpbdp_insert_log( array( 'log_type' => 'listing.expired', 'object_id' => $this->id, 'message' => _x( 'Listing expired', 'listing', 'WPBDM' ) ) );
365
  do_action( 'wpbdp_listing_expired', $this );
366
  break;
367
  default:
@@ -521,7 +521,7 @@ class WPBDP_Listing {
521
  $fee = null;
522
 
523
  $res->fee = $fee;
524
- $res->fee_label = $fee ? $fee->label : _x( '(Unavailable Plan)', 'listing', 'WPBDM' );
525
  $res->expired = $res->expiration_date ? strtotime( $res->expiration_date ) <= current_time( 'timestamp' ) : false;
526
 
527
  return $res;
@@ -678,9 +678,9 @@ class WPBDP_Listing {
678
  ) );
679
 
680
  if ( $plan->is_recurring ) {
681
- $item_description = sprintf( _x( 'Plan "%s" (recurring)', 'listing', 'WPBDM' ), $plan->fee_label );
682
  } else {
683
- $item_description = sprintf( _x( 'Plan "%s"', 'listing', 'WPBDM' ), $plan->fee_label );
684
  }
685
 
686
  $payment->payment_items[] = array(
@@ -781,15 +781,15 @@ class WPBDP_Listing {
781
  */
782
  public static function get_stati() {
783
  $stati = array(
784
- 'unknown' => _x( 'Unknown', 'listing status', 'WPBDM' ),
785
- 'legacy' => _x( 'Legacy', 'listing status', 'WPBDM' ),
786
- 'incomplete' => _x( 'Incomplete', 'listing status', 'WPBDM' ),
787
- 'pending_payment' => _x( 'Pending Payment', 'listing status', 'WPBDM' ),
788
- 'complete' => _x( 'Complete', 'listing status', 'WPBDM' ),
789
- 'pending_upgrade' => _x( 'Pending Upgrade', 'listing status', 'WPBDM' ),
790
- 'expired' => _x( 'Expired', 'listing status', 'WPBDM' ),
791
- 'pending_renewal' => _x( 'Pending Renewal', 'listing status', 'WPBDM' ),
792
- 'abandoned' => _x( 'Abandoned', 'listing status', 'WPBDM' ),
793
  );
794
  $stati = apply_filters( 'wpbdp_listing_stati', $stati );
795
 
@@ -863,10 +863,20 @@ class WPBDP_Listing {
863
 
864
  global $wpdb;
865
 
866
- return intval( $wpdb->get_var(
867
- $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->postmeta} WHERE meta_key = %s AND meta_value = %s",
868
  '_wpbdp[access_key]',
869
  $key )
 
 
 
 
 
 
 
 
 
 
870
  ) ) > 0;
871
  }
872
 
314
  $payments = $this->get_latest_payments();
315
 
316
  if ( ! $payments ) {
317
+ return new WP_Error( 'No listing payments', _x( "Listing has no registered payments", 'listing', 'business-directory-plugin' ) );
318
  }
319
 
320
  foreach ( $payments as $payment ) {
322
  return new WP_Error(
323
  'payment delete error',
324
  sprintf( "%s: %s",
325
+ _x( "Can't delete payment", 'listing', 'business-directory-plugin' ),
326
  $payment->id
327
  )
328
  );
361
  $this->set_post_status( 'draft' );
362
  }
363
 
364
+ wpbdp_insert_log( array( 'log_type' => 'listing.expired', 'object_id' => $this->id, 'message' => _x( 'Listing expired', 'listing', 'business-directory-plugin' ) ) );
365
  do_action( 'wpbdp_listing_expired', $this );
366
  break;
367
  default:
521
  $fee = null;
522
 
523
  $res->fee = $fee;
524
+ $res->fee_label = $fee ? $fee->label : _x( '(Unavailable Plan)', 'listing', 'business-directory-plugin' );
525
  $res->expired = $res->expiration_date ? strtotime( $res->expiration_date ) <= current_time( 'timestamp' ) : false;
526
 
527
  return $res;
678
  ) );
679
 
680
  if ( $plan->is_recurring ) {
681
+ $item_description = sprintf( _x( 'Plan "%s" (recurring)', 'listing', 'business-directory-plugin' ), $plan->fee_label );
682
  } else {
683
+ $item_description = sprintf( _x( 'Plan "%s"', 'listing', 'business-directory-plugin' ), $plan->fee_label );
684
  }
685
 
686
  $payment->payment_items[] = array(
781
  */
782
  public static function get_stati() {
783
  $stati = array(
784
+ 'unknown' => _x( 'Unknown', 'listing status', 'business-directory-plugin' ),
785
+ 'legacy' => _x( 'Legacy', 'listing status', 'business-directory-plugin' ),
786
+ 'incomplete' => _x( 'Incomplete', 'listing status', 'business-directory-plugin' ),
787
+ 'pending_payment' => _x( 'Pending Payment', 'listing status', 'business-directory-plugin' ),
788
+ 'complete' => _x( 'Complete', 'listing status', 'business-directory-plugin' ),
789
+ 'pending_upgrade' => _x( 'Pending Upgrade', 'listing status', 'business-directory-plugin' ),
790
+ 'expired' => _x( 'Expired', 'listing status', 'business-directory-plugin' ),
791
+ 'pending_renewal' => _x( 'Pending Renewal', 'listing status', 'business-directory-plugin' ),
792
+ 'abandoned' => _x( 'Abandoned', 'listing status', 'business-directory-plugin' ),
793
  );
794
  $stati = apply_filters( 'wpbdp_listing_stati', $stati );
795
 
863
 
864
  global $wpdb;
865
 
866
+ $post_id = $wpdb->get_var(
867
+ $wpdb->prepare( "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = %s AND meta_value = %s",
868
  '_wpbdp[access_key]',
869
  $key )
870
+ );
871
+
872
+ if ( ! $post_id ) {
873
+ return false;
874
+ }
875
+
876
+ return intval( $wpdb->get_var(
877
+ $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->postmeta} WHERE post_id = %d AND meta_value = %s",
878
+ $post_id,
879
+ $email )
880
  ) ) > 0;
881
  }
882
 
includes/class-listings-api.php CHANGED
@@ -30,7 +30,7 @@ if ( ! class_exists( 'WPBDP_Listings_API' ) ) {
30
  array(
31
  'log_type' => 'listing.renewal',
32
  'object_id' => $payment->listing_id,
33
- 'message' => _x( 'Listing renewed', 'listings api', 'WPBDM' ),
34
  )
35
  );
36
  }
30
  array(
31
  'log_type' => 'listing.renewal',
32
  'object_id' => $payment->listing_id,
33
+ 'message' => _x( 'Listing renewed', 'listings api', 'business-directory-plugin' ),
34
  )
35
  );
36
  }
includes/class-meta.php CHANGED
@@ -34,7 +34,7 @@ class WPBDP__Meta {
34
  $feed_links = array();
35
 
36
  if ( 'main' === $current_view || 'all_listings' === $current_view ) {
37
- $feed_title = sprintf( _x( '%s Feed', 'rss feed', 'WPBDM'), $main_page_title );
38
  $feed_url = esc_url( add_query_arg( 'post_type', WPBDP_POST_TYPE, get_bloginfo( 'rss2_url' ) ) );
39
 
40
  $feed_links[] = sprintf( $link_template, $feed_title, $feed_url );
@@ -152,17 +152,17 @@ class WPBDP__Meta {
152
 
153
  switch ( $current_view ) {
154
  case 'submit_listing':
155
- $view_title = _x( 'Submit A Listing', 'views', 'WPBDM' );
156
  return $this->_maybe_do_wpseo_title( $view_title, $title, $sep, $seplocation );
157
  break;
158
 
159
  case 'search':
160
- $view_title = _x( 'Find a Listing', 'title', 'WPBDM' );
161
  return $this->_maybe_do_wpseo_title( $view_title, $title, $sep, $seplocation );
162
  break;
163
 
164
  case 'all_listings':
165
- $view_title = _x( 'View All Listings', 'title', 'WPBDM' );
166
  return $this->_maybe_do_wpseo_title( $view_title, $title, $sep, $seplocation );
167
  break;
168
 
@@ -191,7 +191,7 @@ class WPBDP__Meta {
191
  return $wpseo_front->get_title_from_options( 'title-tax-' . $term->taxonomy, $term );
192
  }
193
 
194
- return sprintf( _x( 'Listings tagged: %s', 'title', 'WPBDM' ), $term->name ) . ' ' . $sep . ' ' . $title;
195
 
196
  break;
197
 
34
  $feed_links = array();
35
 
36
  if ( 'main' === $current_view || 'all_listings' === $current_view ) {
37
+ $feed_title = sprintf( _x( '%s Feed', 'rss feed', 'business-directory-plugin' ), $main_page_title );
38
  $feed_url = esc_url( add_query_arg( 'post_type', WPBDP_POST_TYPE, get_bloginfo( 'rss2_url' ) ) );
39
 
40
  $feed_links[] = sprintf( $link_template, $feed_title, $feed_url );
152
 
153
  switch ( $current_view ) {
154
  case 'submit_listing':
155
+ $view_title = _x( 'Submit A Listing', 'views', 'business-directory-plugin' );
156
  return $this->_maybe_do_wpseo_title( $view_title, $title, $sep, $seplocation );
157
  break;
158
 
159
  case 'search':
160
+ $view_title = _x( 'Find a Listing', 'title', 'business-directory-plugin' );
161
  return $this->_maybe_do_wpseo_title( $view_title, $title, $sep, $seplocation );
162
  break;
163
 
164
  case 'all_listings':
165
+ $view_title = _x( 'View All Listings', 'title', 'business-directory-plugin' );
166
  return $this->_maybe_do_wpseo_title( $view_title, $title, $sep, $seplocation );
167
  break;
168
 
191
  return $wpseo_front->get_title_from_options( 'title-tax-' . $term->taxonomy, $term );
192
  }
193
 
194
+ return sprintf( _x( 'Listings tagged: %s', 'title', 'business-directory-plugin' ), $term->name ) . ' ' . $sep . ' ' . $title;
195
 
196
  break;
197
 
includes/class-payment-gateway.php CHANGED
@@ -98,7 +98,7 @@ abstract class WPBDP__Payment_Gateway {
98
  $field_value = isset( $_POST[ $req_field ] ) ? $_POST[ $req_field ] : '';
99
 
100
  if ( ! $field_value ) {
101
- $errors[ $req_field ] = _x( 'This field is required (' . $req_field . ').', 'payment-gateway', 'WPBDM' );
102
  }
103
  }
104
 
@@ -139,7 +139,7 @@ abstract class WPBDP__Payment_Gateway {
139
  }
140
 
141
  public function cancel_subscription( $listing, $subscription ) {
142
- $message = __( "There was an unexpected error trying to cancel your subscription. Please contact the website's administrator mentioning this problem. The administrator should be able to cancel your subscription contacting the payment processor directly.", 'WPBDM' );
143
  throw new Exception( $message );
144
  }
145
  }
98
  $field_value = isset( $_POST[ $req_field ] ) ? $_POST[ $req_field ] : '';
99
 
100
  if ( ! $field_value ) {
101
+ $errors[ $req_field ] = _x( 'This field is required (' . $req_field . ').', 'payment-gateway', 'business-directory-plugin' );
102
  }
103
  }
104
 
139
  }
140
 
141
  public function cancel_subscription( $listing, $subscription ) {
142
+ $message = __( "There was an unexpected error trying to cancel your subscription. Please contact the website's administrator mentioning this problem. The administrator should be able to cancel your subscription contacting the payment processor directly.", 'business-directory-plugin' );
143
  throw new Exception( $message );
144
  }
145
  }
includes/class-payment-gateways.php CHANGED
@@ -81,7 +81,7 @@ class WPBDP__Payment_Gateways {
81
  wpbdp_register_settings_group( 'gateway_' . $gateway->get_id(), $gateway->get_title(), 'payment', array( 'desc' => $gateway->get_settings_text() ) );
82
  wpbdp_register_setting( array(
83
  'id' => $gateway->get_id(),
84
- 'name' => sprintf( _x( 'Enable %s?', 'payment-gateways', 'WPBDM' ), $gateway->get_title() ),
85
  'type' => 'checkbox',
86
  'default' => false,
87
  'group' => 'gateway_' . $gateway->get_id(),
@@ -112,9 +112,9 @@ class WPBDP__Payment_Gateways {
112
  } elseif ( $gateway->is_enabled( false ) ) {
113
  $errors = rtrim( '&#149; ' . implode( ' &#149; ', $gateway->validate_settings() ), '.' );
114
 
115
- $msg = _x( 'The <gateway> gateway is enabled but not properly configured. The gateway won\'t be available until the following problems are fixed: <problems>.', 'payment-gateways', 'WPBDM' );
116
  $msg .= '<br />';
117
- $msg .= _x( 'Please check the <link>payment settings</link>.', 'payment-gateways', 'WPBDM' );
118
 
119
  $msg = str_replace( '<gateway>', '<b>' . $gateway->get_title() .'</b>', $msg );
120
  $msg = str_replace( '<problems>', '<b>' . $errors . '</b>', $msg );
@@ -125,7 +125,7 @@ class WPBDP__Payment_Gateways {
125
  }
126
 
127
  if ( ! $at_least_one_gateway ) {
128
- $msg = _x( 'You have payments turned on but no gateway is active and properly configured. Go to <link>Manage Options - Payment</link> to change the payment settings. Until you change this, the directory will operate in <i>Free Mode</i>.', 'payment-gateways', 'WPBDM' );
129
  $msg = str_replace( array( '<link>', '</link>' ), array( '<a href="' . admin_url( 'admin.php?page=wpbdp_settings&tab=payment' ) . '">', '</a>' ), $msg );
130
  wpbdp_admin_message( $msg, 'error' );
131
  }
81
  wpbdp_register_settings_group( 'gateway_' . $gateway->get_id(), $gateway->get_title(), 'payment', array( 'desc' => $gateway->get_settings_text() ) );
82
  wpbdp_register_setting( array(
83
  'id' => $gateway->get_id(),
84
+ 'name' => sprintf( _x( 'Enable %s?', 'payment-gateways', 'business-directory-plugin' ), $gateway->get_title() ),
85
  'type' => 'checkbox',
86
  'default' => false,
87
  'group' => 'gateway_' . $gateway->get_id(),
112
  } elseif ( $gateway->is_enabled( false ) ) {
113
  $errors = rtrim( '&#149; ' . implode( ' &#149; ', $gateway->validate_settings() ), '.' );
114
 
115
+ $msg = _x( 'The <gateway> gateway is enabled but not properly configured. The gateway won\'t be available until the following problems are fixed: <problems>.', 'payment-gateways', 'business-directory-plugin' );
116
  $msg .= '<br />';
117
+ $msg .= _x( 'Please check the <link>payment settings</link>.', 'payment-gateways', 'business-directory-plugin' );
118
 
119
  $msg = str_replace( '<gateway>', '<b>' . $gateway->get_title() .'</b>', $msg );
120
  $msg = str_replace( '<problems>', '<b>' . $errors . '</b>', $msg );
125
  }
126
 
127
  if ( ! $at_least_one_gateway ) {
128
+ $msg = _x( 'You have payments turned on but no gateway is active and properly configured. Go to <link>Manage Options - Payment</link> to change the payment settings. Until you change this, the directory will operate in <i>Free Mode</i>.', 'payment-gateways', 'business-directory-plugin' );
129
  $msg = str_replace( array( '<link>', '</link>' ), array( '<a href="' . admin_url( 'admin.php?page=wpbdp_settings&tab=payment' ) . '">', '</a>' ), $msg );
130
  wpbdp_admin_message( $msg, 'error' );
131
  }
includes/class-payment.php CHANGED
@@ -53,8 +53,10 @@ class WPBDP_Payment extends WPBDP__DB__Model {
53
  $this->amount += floatval( $item['amount'] );
54
  }
55
 
56
- if ( 0.0 == $this->amount && ! $this->has_item_type( 'recurring_plan' ) ) {
57
- $this->status = 'completed';
 
 
58
  }
59
  }
60
 
@@ -79,7 +81,7 @@ class WPBDP_Payment extends WPBDP__DB__Model {
79
  'log_type' => 'payment.status_change',
80
  'actor' => is_admin() ? 'user:' . get_current_user_id() : 'system',
81
  'object_id' => $this->id,
82
- 'message' => sprintf( _x( 'Payment status changed from "%1$s" to "%2$s".', 'payment', 'WPBDM' ), $this->old_status, $this->status ),
83
  )
84
  );
85
  do_action_ref_array( 'WPBDP_Payment::status_change', array( &$this, $this->old_status, $this->status ) );
@@ -120,10 +122,10 @@ class WPBDP_Payment extends WPBDP__DB__Model {
120
 
121
  switch ( $this->payment_type ) {
122
  case 'initial':
123
- $summary = sprintf( _x( 'Initial payment ("%s")', 'payment', 'WPBDM' ), $this->get_listing()->get_title() );
124
  break;
125
  case 'renewal':
126
- $summary = sprintf( _x( 'Renewal payment ("%s")', 'payment', 'WPBDM' ), $this->get_listing()->get_title() );
127
  break;
128
  default:
129
  break;
@@ -135,9 +137,9 @@ class WPBDP_Payment extends WPBDP__DB__Model {
135
  }
136
 
137
  if ( 'admin-submit' == $this->context ) {
138
- $summary = sprintf( _x( '%s. Admin Posted.', 'payment summary', 'WPBDM' ), $summary );
139
  } elseif ( 'csv-import' == $this->context ) {
140
- $summary = sprintf( _x( '%s. Imported Listing.', 'payment summary', 'WPBDM' ), $summary );
141
  }
142
 
143
  return $summary;
@@ -204,7 +206,7 @@ class WPBDP_Payment extends WPBDP__DB__Model {
204
  }
205
 
206
  public function process_as_admin() {
207
- // $this->payment_items[0]['description'] .= ' ' . _x( '(admin, no charge)', 'submit listing', 'WPBDM' );
208
  // $this->payment_items[0]['amount'] = 0.0;
209
  $this->status = 'completed';
210
  $this->context = 'admin-submit';
@@ -215,7 +217,7 @@ class WPBDP_Payment extends WPBDP__DB__Model {
215
  'log_type' => 'payment.note',
216
  'object_id' => $this->id,
217
  'actor' => is_admin() ? 'user:' . get_current_user_id() : 'system',
218
- 'message' => _x( 'Listing submitted by admin. Payment skipped.', 'submit listing', 'WPBDM' ),
219
  )
220
  );
221
  }
@@ -310,12 +312,12 @@ class WPBDP_Payment extends WPBDP__DB__Model {
310
  */
311
  public static function get_stati() {
312
  $stati = array();
313
- $stati['pending'] = _x( 'Pending', 'payment', 'WPBDM' );
314
- $stati['failed'] = _x( 'Failed', 'payment', 'WPBDM' );
315
- $stati['completed'] = _x( 'Completed', 'payment', 'WPBDM' );
316
- $stati['canceled'] = _x( 'Canceled', 'payment', 'WPBDM' );
317
- $stati['on-hold'] = _x( 'On Hold', 'payment', 'WPBDM' );
318
- $stati['refunded'] = _x( 'Refunded', 'payment', 'WPBDM' );
319
 
320
  return $stati;
321
  }
53
  $this->amount += floatval( $item['amount'] );
54
  }
55
 
56
+ if ( 0.0 == $this->amount ) {
57
+ if( ! $this->has_item_type( 'discount_code' ) ) {
58
+ $this->status = 'completed';
59
+ }
60
  }
61
  }
62
 
81
  'log_type' => 'payment.status_change',
82
  'actor' => is_admin() ? 'user:' . get_current_user_id() : 'system',
83
  'object_id' => $this->id,
84
+ 'message' => sprintf( _x( 'Payment status changed from "%1$s" to "%2$s".', 'payment', 'business-directory-plugin' ), $this->old_status, $this->status ),
85
  )
86
  );
87
  do_action_ref_array( 'WPBDP_Payment::status_change', array( &$this, $this->old_status, $this->status ) );
122
 
123
  switch ( $this->payment_type ) {
124
  case 'initial':
125
+ $summary = sprintf( _x( 'Initial payment ("%s")', 'payment', 'business-directory-plugin' ), $this->get_listing()->get_title() );
126
  break;
127
  case 'renewal':
128
+ $summary = sprintf( _x( 'Renewal payment ("%s")', 'payment', 'business-directory-plugin' ), $this->get_listing()->get_title() );
129
  break;
130
  default:
131
  break;
137
  }
138
 
139
  if ( 'admin-submit' == $this->context ) {
140
+ $summary = sprintf( _x( '%s. Admin Posted.', 'payment summary', 'business-directory-plugin' ), $summary );
141
  } elseif ( 'csv-import' == $this->context ) {
142
+ $summary = sprintf( _x( '%s. Imported Listing.', 'payment summary', 'business-directory-plugin' ), $summary );
143
  }
144
 
145
  return $summary;
206
  }
207
 
208
  public function process_as_admin() {
209
+ // $this->payment_items[0]['description'] .= ' ' . _x( '(admin, no charge)', 'submit listing', 'business-directory-plugin' );
210
  // $this->payment_items[0]['amount'] = 0.0;
211
  $this->status = 'completed';
212
  $this->context = 'admin-submit';
217
  'log_type' => 'payment.note',
218
  'object_id' => $this->id,
219
  'actor' => is_admin() ? 'user:' . get_current_user_id() : 'system',
220
+ 'message' => _x( 'Listing submitted by admin. Payment skipped.', 'submit listing', 'business-directory-plugin' ),
221
  )
222
  );
223
  }
312
  */
313
  public static function get_stati() {
314
  $stati = array();
315
+ $stati['pending'] = _x( 'Pending', 'payment', 'business-directory-plugin' );
316
+ $stati['failed'] = _x( 'Failed', 'payment', 'business-directory-plugin' );
317
+ $stati['completed'] = _x( 'Completed', 'payment', 'business-directory-plugin' );
318
+ $stati['canceled'] = _x( 'Canceled', 'payment', 'business-directory-plugin' );
319
+ $stati['on-hold'] = _x( 'On Hold', 'payment', 'business-directory-plugin' );
320
+ $stati['refunded'] = _x( 'Refunded', 'payment', 'business-directory-plugin' );
321
 
322
  return $stati;
323
  }
includes/class-recaptcha.php CHANGED
@@ -33,7 +33,7 @@ class WPBDP_reCAPTCHA {
33
 
34
  $this->version = wpbdp_get_option( 'recaptcha-version', 'v2' );
35
  $this->threshold = wpbdp_get_option( 'recaptcha-threshold', 0.5 );
36
- $this->error_message = 'v2' === $this->version ? _x( 'The reCAPTCHA wasn\'t entered correctly.', 'recaptcha', 'WPBDM' ) : _x( 'The reCAPTCHA validation score failed.', 'recaptcha', 'WPBDM' );
37
 
38
  add_action( 'wp_enqueue_scripts', array( &$this, '_enqueue_js_api' ) );
39
 
@@ -252,7 +252,7 @@ JS;
252
  return $submit_sections;
253
  }
254
 
255
- $submit_sections['recaptcha'] = array( 'title' => _x( 'reCAPTCHA', 'recaptcha', 'WPBDM' ) );
256
 
257
  return $submit_sections;
258
  }
33
 
34
  $this->version = wpbdp_get_option( 'recaptcha-version', 'v2' );
35
  $this->threshold = wpbdp_get_option( 'recaptcha-threshold', 0.5 );
36
+ $this->error_message = 'v2' === $this->version ? _x( 'The reCAPTCHA wasn\'t entered correctly.', 'recaptcha', 'business-directory-plugin' ) : _x( 'The reCAPTCHA validation score failed.', 'recaptcha', 'business-directory-plugin' );
37
 
38
  add_action( 'wp_enqueue_scripts', array( &$this, '_enqueue_js_api' ) );
39
 
252
  return $submit_sections;
253
  }
254
 
255
+ $submit_sections['recaptcha'] = array( 'title' => _x( 'reCAPTCHA', 'recaptcha', 'business-directory-plugin' ) );
256
 
257
  return $submit_sections;
258
  }
includes/class-view.php CHANGED
@@ -106,7 +106,7 @@ class WPBDP__View {
106
 
107
  return $this->_redirect( $login_url );
108
  } else {
109
- return wpbdp_render_msg( _x( 'Invalid credentials.', 'views', 'WPBDM' ), 'error' );
110
  }
111
  }
112
 
106
 
107
  return $this->_redirect( $login_url );
108
  } else {
109
+ return wpbdp_render_msg( _x( 'Invalid credentials.', 'views', 'business-directory-plugin' ), 'error' );
110
  }
111
  }
112
 
includes/class-wpbdp.php CHANGED
@@ -21,7 +21,7 @@ final class WPBDP {
21
  }
22
 
23
  private function setup_constants() {
24
- define( 'WPBDP_VERSION', '5.7.1' );
25
 
26
  define( 'WPBDP_PATH', wp_normalize_path( plugin_dir_path( WPBDP_PLUGIN_FILE ) ) );
27
  define( 'WPBDP_INC', trailingslashit( WPBDP_PATH . 'includes' ) );
@@ -243,7 +243,7 @@ final class WPBDP {
243
  // $languages_dir = str_replace( trailingslashit( WP_PLUGIN_DIR ), '', WPBDP_PATH . 'languages' );
244
 
245
  $languages_dir = trailingslashit( basename( WPBDP_PATH ) ) . 'languages';
246
- load_plugin_textdomain( 'WPBDM', false, $languages_dir );
247
  }
248
 
249
  public function plugin_activation() {
@@ -260,7 +260,7 @@ final class WPBDP {
260
 
261
  public function plugin_action_links( $links ) {
262
  $links = array_merge(
263
- array( 'settings' => '<a href="' . admin_url( 'admin.php?page=wpbdp_settings' ) . '">' . _x( 'Settings', 'admin plugins', 'WPBDM' ) . '</a>' ),
264
  $links
265
  );
266
 
@@ -351,7 +351,7 @@ final class WPBDP {
351
 
352
  if ( ! current_user_can( 'administrator' ) ) {
353
  if ( 0 >= $slots_available ) {
354
- return $res->send_error( _x( 'Can not upload any more images for this listing.', 'listing image upload', 'WPBDM' ) );
355
  } elseif ( $slots_available < count( $files ) ) {
356
  return $res->send_error(
357
  sprintf(
@@ -360,7 +360,7 @@ final class WPBDP {
360
  'You\'re trying to upload %d images, but only have %d slots available. Please adjust your selection.',
361
  $slots_available,
362
  'listing image upload',
363
- 'WPBDM'
364
  ),
365
  count( $files ),
366
  $slots_available
@@ -449,13 +449,13 @@ final class WPBDP {
449
  $listing_id = intval( $data['listing_id'] );
450
 
451
  if ( ! $listing_id ) {
452
- return wp_send_json_error( array( 'errors' => _x( 'Could not find listing ID', 'admin listings', 'WPBDM' ) ) );
453
  }
454
 
455
  $image_ids = isset( $data['image_ids'] ) ? $data['image_ids'] : array();
456
 
457
  if( ! $image_ids ) {
458
- return wp_send_json_error( array( 'errors' => _x( 'Could not find image ID', 'admin listings', 'WPBDM' ) ) );
459
  }
460
 
461
  $image_ids = is_array( $image_ids ) ? $image_ids : array( $image_ids );
@@ -491,14 +491,14 @@ final class WPBDP {
491
  str_replace(
492
  '<a>',
493
  '<a href="' . admin_url( 'admin.php?page=wpbdp-upgrade-page' ) . '">',
494
- __( 'The directory features are disabled at this time because a <a>manual upgrade</a> is pending.', 'WPBDM' )
495
  ),
496
  'error'
497
  );
498
  }
499
 
500
  return wpbdp_render_msg(
501
- __( 'The directory is not available at this time. Please try again in a few minutes or contact the administrator if the problem persists.', 'WPBDM' ),
502
  'error'
503
  );
504
  }
21
  }
22
 
23
  private function setup_constants() {
24
+ define( 'WPBDP_VERSION', '5.7.2' );
25
 
26
  define( 'WPBDP_PATH', wp_normalize_path( plugin_dir_path( WPBDP_PLUGIN_FILE ) ) );
27
  define( 'WPBDP_INC', trailingslashit( WPBDP_PATH . 'includes' ) );
243
  // $languages_dir = str_replace( trailingslashit( WP_PLUGIN_DIR ), '', WPBDP_PATH . 'languages' );
244
 
245
  $languages_dir = trailingslashit( basename( WPBDP_PATH ) ) . 'languages';
246
+ load_plugin_textdomain( 'business-directory-plugin', false, $languages_dir );
247
  }
248
 
249
  public function plugin_activation() {
260
 
261
  public function plugin_action_links( $links ) {
262
  $links = array_merge(
263
+ array( 'settings' => '<a href="' . admin_url( 'admin.php?page=wpbdp_settings' ) . '">' . _x( 'Settings', 'admin plugins', 'business-directory-plugin' ) . '</a>' ),
264
  $links
265
  );
266
 
351
 
352
  if ( ! current_user_can( 'administrator' ) ) {
353
  if ( 0 >= $slots_available ) {
354
+ return $res->send_error( _x( 'Can not upload any more images for this listing.', 'listing image upload', 'business-directory-plugin' ) );
355
  } elseif ( $slots_available < count( $files ) ) {
356
  return $res->send_error(
357
  sprintf(
360
  'You\'re trying to upload %d images, but only have %d slots available. Please adjust your selection.',
361
  $slots_available,
362
  'listing image upload',
363
+ 'business-directory-plugin'
364
  ),
365
  count( $files ),
366
  $slots_available
449
  $listing_id = intval( $data['listing_id'] );
450
 
451
  if ( ! $listing_id ) {
452
+ return wp_send_json_error( array( 'errors' => _x( 'Could not find listing ID', 'admin listings', 'business-directory-plugin' ) ) );
453
  }
454
 
455
  $image_ids = isset( $data['image_ids'] ) ? $data['image_ids'] : array();
456
 
457
  if( ! $image_ids ) {
458
+ return wp_send_json_error( array( 'errors' => _x( 'Could not find image ID', 'admin listings', 'business-directory-plugin' ) ) );
459
  }
460
 
461
  $image_ids = is_array( $image_ids ) ? $image_ids : array( $image_ids );
491
  str_replace(
492
  '<a>',
493
  '<a href="' . admin_url( 'admin.php?page=wpbdp-upgrade-page' ) . '">',
494
+ __( 'The directory features are disabled at this time because a <a>manual upgrade</a> is pending.', 'business-directory-plugin' )
495
  ),
496
  'error'
497
  );
498
  }
499
 
500
  return wpbdp_render_msg(
501
+ __( 'The directory is not available at this time. Please try again in a few minutes or contact the administrator if the problem persists.', 'business-directory-plugin' ),
502
  'error'
503
  );
504
  }
includes/compatibility/class-navxt-integration.php CHANGED
@@ -193,15 +193,15 @@ class WPBDP_NavXT_Integration {
193
  }
194
 
195
  function before_submit( $trail ) {
196
- $trail->add( new bcn_breadcrumb( _x( 'Submit Listing', 'navxt', 'WPBDM' ) ) );
197
  }
198
 
199
  function before_edit( $trail ) {
200
- $trail->add( new bcn_breadcrumb( _x( 'Edit Listing', 'navxt', 'WPBDM' ) ) );
201
  }
202
 
203
  function before_search( $trail ) {
204
- $trail->add( new bcn_breadcrumb( _x( 'Search', 'navxt', 'WPBDM' ) ) );
205
  }
206
 
207
  // }}
193
  }
194
 
195
  function before_submit( $trail ) {
196
+ $trail->add( new bcn_breadcrumb( _x( 'Submit Listing', 'navxt', 'business-directory-plugin' ) ) );
197
  }
198
 
199
  function before_edit( $trail ) {
200
+ $trail->add( new bcn_breadcrumb( _x( 'Edit Listing', 'navxt', 'business-directory-plugin' ) ) );
201
  }
202
 
203
  function before_search( $trail ) {
204
+ $trail->add( new bcn_breadcrumb( _x( 'Search', 'navxt', 'business-directory-plugin' ) ) );
205
  }
206
 
207
  // }}
includes/compatibility/class-wpml-compat.php CHANGED
@@ -388,7 +388,7 @@ class WPBDP_WPML_Compat {
388
  }
389
 
390
  function translate_form_field_option_data( $value, $key, $field ) {
391
- if ( ! is_object( $field ) || empty( $value ) || 'options' !== $key || ! function_exists( 'icl_t' ) ) {
392
  return $value;
393
  }
394
 
@@ -402,7 +402,13 @@ class WPBDP_WPML_Compat {
402
  implode( "\n", $value )
403
  );
404
 
405
- return $options ? array_map( 'trim', explode( "\n", $options ) ) : $value;
 
 
 
 
 
 
406
  }
407
 
408
  // }}}
388
  }
389
 
390
  function translate_form_field_option_data( $value, $key, $field ) {
391
+ if ( ! is_object( $field ) || empty( $value ) || 'options' !== $key || ! function_exists( 'icl_t' ) || ! is_array( $value ) ) {
392
  return $value;
393
  }
394
 
402
  implode( "\n", $value )
403
  );
404
 
405
+ $options = array_map( 'trim', explode( "\n", $options ) );
406
+
407
+ if ( ! $options || count( $value ) !== count( $options ) ) {
408
+ return $value;
409
+ }
410
+
411
+ return array_combine( array_keys( $value ), $options );
412
  }
413
 
414
  // }}}
includes/fields/class-fieldtypes-checkbox.php CHANGED
@@ -19,7 +19,7 @@ if ( ! class_exists( 'WPBDP_CategoryFormInputWalker' ) ) {
19
  class WPBDP_FieldTypes_Checkbox extends WPBDP_Form_Field_Type {
20
 
21
  public function __construct() {
22
- parent::__construct( _x( 'Checkbox', 'form-fields api', 'WPBDM' ) );
23
  }
24
 
25
  public function get_id() {
@@ -52,7 +52,7 @@ class WPBDP_FieldTypes_Checkbox extends WPBDP_Form_Field_Type {
52
  'depth' => 0,
53
  'walker' => new WPBDP_CategoryFormInputWalker( 'checkbox', $value, $field ),
54
  'show_option_none' => '',
55
- 'show_option_all' => '1' == $field->data( 'allow_select_all' ) ? _x( 'Select all', 'checkbox form field', 'WPBDM' ) : '',
56
  'title_li' => '',
57
  )
58
  );
@@ -93,7 +93,7 @@ class WPBDP_FieldTypes_Checkbox extends WPBDP_Form_Field_Type {
93
  '<div class="wpbdp-inner-field-option wpbdp-inner-field-option-select_all"><label for="wpbdp-field-%2$s"><input id="wpbdp-field-%2$s" type="checkbox" name="%s" value="%s"/> %s</label></div>',
94
  'checkbox_select_all[' . $field->get_id() . ']',
95
  'select_all-' . $field->get_id(),
96
- _x( 'Select All', 'form-fields admin', 'WPBDM' )
97
  );
98
  }
99
 
@@ -111,7 +111,7 @@ class WPBDP_FieldTypes_Checkbox extends WPBDP_Form_Field_Type {
111
 
112
  $settings = array();
113
 
114
- $settings['options'][] = _x( 'Field Options (for select lists, radio buttons and checkboxes).', 'form-fields admin', 'WPBDM' ) . '<span class="description">(required)</span>';
115
 
116
  $content = '<span class="description">One option per line</span><br />';
117
  $content .= '<textarea name="field[x_options]" cols="50" rows="2">';
@@ -123,11 +123,11 @@ class WPBDP_FieldTypes_Checkbox extends WPBDP_Form_Field_Type {
123
 
124
  $settings['options'][] = $content;
125
 
126
- $settings['select_all'][] = _x( 'Include "Select all"?', 'form-fields admin', 'WPBDM' );
127
 
128
  $content = '<label>';
129
  $content .= '<input name="field[allow_select_all]" value="1" type="checkbox" ' . ( ( $field && '1' == $field->data( 'allow_select_all' ) ) ? 'checked="checked"' : '' ) . '/>';
130
- $content .= _x( 'Display "Select all" option among options above.', 'form-fields admin', 'WPBDM' );
131
  $content .= '</label>';
132
 
133
  $settings['select_all'][] = $content;
@@ -143,7 +143,7 @@ class WPBDP_FieldTypes_Checkbox extends WPBDP_Form_Field_Type {
143
  $options = stripslashes( trim( $_POST['field']['x_options'] ) );
144
 
145
  if ( ! $options && $field->get_association() != 'tags' ) {
146
- return new WP_Error( 'wpbdp-invalid-settings', _x( 'Field list of options is required.', 'form-fields admin', 'WPBDM' ) );
147
  }
148
 
149
  $options = $options ? array_map( 'trim', explode( "\n", $options ) ) : array();
19
  class WPBDP_FieldTypes_Checkbox extends WPBDP_Form_Field_Type {
20
 
21
  public function __construct() {
22
+ parent::__construct( _x( 'Checkbox', 'form-fields api', 'business-directory-plugin' ) );
23
  }
24
 
25
  public function get_id() {
52
  'depth' => 0,
53
  'walker' => new WPBDP_CategoryFormInputWalker( 'checkbox', $value, $field ),
54
  'show_option_none' => '',
55
+ 'show_option_all' => '1' == $field->data( 'allow_select_all' ) ? _x( 'Select all', 'checkbox form field', 'business-directory-plugin' ) : '',
56
  'title_li' => '',
57
  )
58
  );
93
  '<div class="wpbdp-inner-field-option wpbdp-inner-field-option-select_all"><label for="wpbdp-field-%2$s"><input id="wpbdp-field-%2$s" type="checkbox" name="%s" value="%s"/> %s</label></div>',
94
  'checkbox_select_all[' . $field->get_id() . ']',
95
  'select_all-' . $field->get_id(),
96
+ _x( 'Select All', 'form-fields admin', 'business-directory-plugin' )
97
  );
98
  }
99
 
111
 
112
  $settings = array();
113
 
114
+ $settings['options'][] = _x( 'Field Options (for select lists, radio buttons and checkboxes).', 'form-fields admin', 'business-directory-plugin' ) . '<span class="description">(required)</span>';
115
 
116
  $content = '<span class="description">One option per line</span><br />';
117
  $content .= '<textarea name="field[x_options]" cols="50" rows="2">';
123
 
124
  $settings['options'][] = $content;
125
 
126
+ $settings['select_all'][] = _x( 'Include "Select all"?', 'form-fields admin', 'business-directory-plugin' );
127
 
128
  $content = '<label>';
129
  $content .= '<input name="field[allow_select_all]" value="1" type="checkbox" ' . ( ( $field && '1' == $field->data( 'allow_select_all' ) ) ? 'checked="checked"' : '' ) . '/>';
130
+ $content .= _x( 'Display "Select all" option among options above.', 'form-fields admin', 'business-directory-plugin' );
131
  $content .= '</label>';
132
 
133
  $settings['select_all'][] = $content;
143
  $options = stripslashes( trim( $_POST['field']['x_options'] ) );
144
 
145
  if ( ! $options && $field->get_association() != 'tags' ) {
146
+ return new WP_Error( 'wpbdp-invalid-settings', _x( 'Field list of options is required.', 'form-fields admin', 'business-directory-plugin' ) );
147
  }
148
 
149
  $options = $options ? array_map( 'trim', explode( "\n", $options ) ) : array();
includes/fields/class-fieldtypes-date.php CHANGED
@@ -11,7 +11,7 @@
11
  class WPBDP_FieldTypes_Date extends WPBDP_FieldTypes_TextField {
12
 
13
  public function get_name() {
14
- return _x( 'Date Field', 'form-fields api', 'WPBDM' );
15
  }
16
 
17
  public function get_id() {
@@ -34,11 +34,11 @@ class WPBDP_FieldTypes_Date extends WPBDP_FieldTypes_TextField {
34
  $select .= sprintf( '<label><input type="radio" name="field[x_date_format]" value="%s" %s />%s</label><br />',
35
  $format,
36
  checked ( $format, $current_format, false ),
37
- sprintf( _x( '%s (ex. %s)', 'form-fields api', 'WPBDM' ), strtoupper( $format ), date( $data['date_format'], $now ) ) );
38
  }
39
 
40
  $settings = array(
41
- 'date_format' => array( _x( 'Date Format', 'form-fields api', 'WPBDM' ),
42
  $select )
43
  );
44
 
@@ -63,10 +63,10 @@ class WPBDP_FieldTypes_Date extends WPBDP_FieldTypes_TextField {
63
 
64
  $args = array();
65
  $args['format'] = 'yyyymmdd';
66
- $args['messages'] = array( 'incorrect_format' => sprintf( _x( '%s must be in the format %s.', 'date field', 'WPBDM' ),
67
  esc_attr( $field->get_label() ),
68
  $this->date_format( $field ) ),
69
- 'invalid' => sprintf( _x( '%s must be a valid date.', 'date field', 'WPBDM' ),
70
  esc_attr( $field->get_label() ) ) );
71
  return $args;
72
  }
11
  class WPBDP_FieldTypes_Date extends WPBDP_FieldTypes_TextField {
12
 
13
  public function get_name() {
14
+ return _x( 'Date Field', 'form-fields api', 'business-directory-plugin' );
15
  }
16
 
17
  public function get_id() {
34
  $select .= sprintf( '<label><input type="radio" name="field[x_date_format]" value="%s" %s />%s</label><br />',
35
  $format,
36
  checked ( $format, $current_format, false ),
37
+ sprintf( _x( '%s (ex. %s)', 'form-fields api', 'business-directory-plugin' ), strtoupper( $format ), date( $data['date_format'], $now ) ) );
38
  }
39
 
40
  $settings = array(
41
+ 'date_format' => array( _x( 'Date Format', 'form-fields api', 'business-directory-plugin' ),
42
  $select )
43
  );
44
 
63
 
64
  $args = array();
65
  $args['format'] = 'yyyymmdd';
66
+ $args['messages'] = array( 'incorrect_format' => sprintf( _x( '%s must be in the format %s.', 'date field', 'business-directory-plugin' ),
67
  esc_attr( $field->get_label() ),
68
  $this->date_format( $field ) ),
69
+ 'invalid' => sprintf( _x( '%s must be a valid date.', 'date field', 'business-directory-plugin' ),
70
  esc_attr( $field->get_label() ) ) );
71
  return $args;
72
  }
includes/fields/class-fieldtypes-facebook.php CHANGED
@@ -3,7 +3,7 @@
3
  class WPBDP_FieldTypes_Facebook extends WPBDP_Form_Field_Type {
4
 
5
  public function __construct() {
6
- parent::__construct( _x('Social Site (Facebook page)', 'form-fields api', 'WPBDM') );
7
  }
8
 
9
  public function get_id() {
3
  class WPBDP_FieldTypes_Facebook extends WPBDP_Form_Field_Type {
4
 
5
  public function __construct() {
6
+ parent::__construct( _x('Social Site (Facebook page)', 'form-fields api', 'business-directory-plugin' ) );
7
  }
8
 
9
  public function get_id() {
includes/fields/class-fieldtypes-image.php CHANGED
@@ -10,7 +10,7 @@
10
  class WPBDP_FieldTypes_Image extends WPBDP_Form_Field_Type {
11
 
12
  public function __construct() {
13
- parent::__construct( _x( 'Image (file upload)', 'form-fields api', 'WPBDM' ) );
14
 
15
  // TODO(fes-revamp): maybe this should go somewhere else?
16
  add_action( 'wp_ajax_wpbdp-file-field-upload', array( $this, '_ajax_file_field_upload' ) );
@@ -40,7 +40,7 @@ class WPBDP_FieldTypes_Image extends WPBDP_Form_Field_Type {
40
  $args['caption_required'] = $field->data( 'caption_required' );
41
  $args['messages'] = array(
42
  'caption_required' => sprintf(
43
- _x( 'Caption for %s is required.', 'date field', 'WPBDM' ),
44
  esc_attr( $field->get_label() )
45
  ),
46
  );
@@ -54,10 +54,10 @@ class WPBDP_FieldTypes_Image extends WPBDP_Form_Field_Type {
54
 
55
  $settings = array();
56
 
57
- $settings['display-caption'][] = _x( 'Display caption?', 'form-fields admin', 'WPBDM' );
58
  $settings['display-caption'][] = '<input type="checkbox" value="1" name="field[x_display_caption]" ' . ( $field && $field->data( 'display_caption' ) ? ' checked="checked"' : '' ) . ' />';
59
 
60
- $settings['caption-required'][] = _x( 'Field Caption required?', 'form-fields admin', 'WPBDM' );
61
  $settings['caption-required'][] = '<input type="checkbox" value="1" name="field[x_caption_required]" ' . ( $field && $field->data( 'caption_required' ) ? ' checked="checked"' : '' ) . ' />';
62
 
63
  return self::render_admin_settings( $settings );
@@ -99,7 +99,7 @@ class WPBDP_FieldTypes_Image extends WPBDP_Form_Field_Type {
99
  '<a href="http://google.com" class="delete" onclick="return WPBDP.fileUpload.deleteUpload(%d, \'%s\');">%s</a>',
100
  $field->get_id(),
101
  'listingfields[' . $field->get_id() . '][0]',
102
- _x( 'Remove', 'form-fields-api', 'WPBDM' )
103
  );
104
 
105
  $html .= sprintf(
@@ -122,7 +122,7 @@ class WPBDP_FieldTypes_Image extends WPBDP_Form_Field_Type {
122
  }
123
 
124
  if ( ! $listing_id ) {
125
- return wpbdp_render_msg( _x( 'Field unavailable at the moment.', 'form fields', 'WPBDM' ), 'error' );
126
  }
127
 
128
  if ( is_admin() ) {
@@ -142,11 +142,11 @@ class WPBDP_FieldTypes_Image extends WPBDP_Form_Field_Type {
142
  $html .= '<div class="wpbdp_media_images_wrapper">';
143
  $html .= sprintf(
144
  '<input type="button" class="button" value="%s" id="wpbdp_media_manager" data-action="%s"/>',
145
- __( 'Select from Media', 'WPBDM' ),
146
  $ajax_url
147
  );
148
  $html .= '</div>';
149
- $html .= _x( 'or', 'templates image upload', 'WPBDM' );
150
  $html .= '</div>';
151
  }
152
 
@@ -306,7 +306,7 @@ class WPBDP_FieldTypes_Image extends WPBDP_Form_Field_Type {
306
  $image_id = isset( $data['image_ids'] ) ? $data['image_ids'] : 0;
307
 
308
  if( ! $image_id ) {
309
- return wp_send_json_error( array( 'errors' => _x( 'Could not find image ID', 'admin listings', 'WPBDM' ) ) );
310
  }
311
 
312
  $element = ! empty( $_REQUEST['element'] ) ? $_REQUEST['element'] : 'listingfields[' . $field_id . '][0]';
10
  class WPBDP_FieldTypes_Image extends WPBDP_Form_Field_Type {
11
 
12
  public function __construct() {
13
+ parent::__construct( _x( 'Image (file upload)', 'form-fields api', 'business-directory-plugin' ) );
14
 
15
  // TODO(fes-revamp): maybe this should go somewhere else?
16
  add_action( 'wp_ajax_wpbdp-file-field-upload', array( $this, '_ajax_file_field_upload' ) );
40
  $args['caption_required'] = $field->data( 'caption_required' );
41
  $args['messages'] = array(
42
  'caption_required' => sprintf(
43
+ _x( 'Caption for %s is required.', 'date field', 'business-directory-plugin' ),
44
  esc_attr( $field->get_label() )
45
  ),
46
  );
54
 
55
  $settings = array();
56
 
57
+ $settings['display-caption'][] = _x( 'Display caption?', 'form-fields admin', 'business-directory-plugin' );
58
  $settings['display-caption'][] = '<input type="checkbox" value="1" name="field[x_display_caption]" ' . ( $field && $field->data( 'display_caption' ) ? ' checked="checked"' : '' ) . ' />';
59
 
60
+ $settings['caption-required'][] = _x( 'Field Caption required?', 'form-fields admin', 'business-directory-plugin' );
61
  $settings['caption-required'][] = '<input type="checkbox" value="1" name="field[x_caption_required]" ' . ( $field && $field->data( 'caption_required' ) ? ' checked="checked"' : '' ) . ' />';
62
 
63
  return self::render_admin_settings( $settings );
99
  '<a href="http://google.com" class="delete" onclick="return WPBDP.fileUpload.deleteUpload(%d, \'%s\');">%s</a>',
100
  $field->get_id(),
101
  'listingfields[' . $field->get_id() . '][0]',
102
+ _x( 'Remove', 'form-fields-api', 'business-directory-plugin' )
103
  );
104
 
105
  $html .= sprintf(
122
  }
123
 
124
  if ( ! $listing_id ) {
125
+ return wpbdp_render_msg( _x( 'Field unavailable at the moment.', 'form fields', 'business-directory-plugin' ), 'error' );
126
  }
127
 
128
  if ( is_admin() ) {
142
  $html .= '<div class="wpbdp_media_images_wrapper">';
143
  $html .= sprintf(
144
  '<input type="button" class="button" value="%s" id="wpbdp_media_manager" data-action="%s"/>',
145
+ __( 'Select from Media', 'business-directory-plugin' ),
146
  $ajax_url
147
  );
148
  $html .= '</div>';
149
+ $html .= _x( 'or', 'templates image upload', 'business-directory-plugin' );
150
  $html .= '</div>';
151
  }
152
 
306
  $image_id = isset( $data['image_ids'] ) ? $data['image_ids'] : 0;
307
 
308
  if( ! $image_id ) {
309
+ return wp_send_json_error( array( 'errors' => _x( 'Could not find image ID', 'admin listings', 'business-directory-plugin' ) ) );
310
  }
311
 
312
  $element = ! empty( $_REQUEST['element'] ) ? $_REQUEST['element'] : 'listingfields[' . $field_id . '][0]';
includes/fields/class-fieldtypes-linkedin.php CHANGED
@@ -13,7 +13,7 @@
13
  class WPBDP_FieldTypes_LinkedIn extends WPBDP_Form_Field_Type {
14
 
15
  public function __construct() {
16
- parent::__construct( _x( 'Social Site (LinkedIn profile)', 'form-fields api', 'WPBDM' ) );
17
  }
18
 
19
  public function get_id() {
@@ -28,7 +28,7 @@ class WPBDP_FieldTypes_LinkedIn extends WPBDP_Form_Field_Type {
28
  // LinkedIn fields are rendered as normal textfields
29
  global $wpbdp;
30
 
31
- $field_settings['placeholder'] = _x( 'You can add your Company ID or profile URL here.', 'form-fields api', 'WPBDM' );
32
 
33
  return $wpbdp->formfields->get_field_type( 'textfield' )->render_field_inner( $field, $value, $context, $extra, $field_settings );
34
  }
13
  class WPBDP_FieldTypes_LinkedIn extends WPBDP_Form_Field_Type {
14
 
15
  public function __construct() {
16
+ parent::__construct( _x( 'Social Site (LinkedIn profile)', 'form-fields api', 'business-directory-plugin' ) );
17
  }
18
 
19
  public function get_id() {
28
  // LinkedIn fields are rendered as normal textfields
29
  global $wpbdp;
30
 
31
+ $field_settings['placeholder'] = _x( 'You can add your Company ID or profile URL here.', 'form-fields api', 'business-directory-plugin' );
32
 
33
  return $wpbdp->formfields->get_field_type( 'textfield' )->render_field_inner( $field, $value, $context, $extra, $field_settings );
34
  }
includes/fields/class-fieldtypes-multiselect.php CHANGED
@@ -3,12 +3,12 @@
3
  class WPBDP_FieldTypes_MultiSelect extends WPBDP_FieldTypes_Select {
4
 
5
  public function __construct() {
6
- parent::__construct( _x('Multiple select list', 'form-fields api', 'WPBDM') );
7
  $this->set_multiple( true );
8
  }
9
 
10
  public function get_name() {
11
- return _x( 'Multiselect List', 'form-fields api', 'WPBDM' );
12
  }
13
 
14
  public function get_id() {
@@ -22,8 +22,8 @@ class WPBDP_FieldTypes_MultiSelect extends WPBDP_FieldTypes_Select {
22
  protected function get_field_settings( $field=null, $association=null ) {
23
  $settings = parent::get_field_settings( $field, $association );
24
 
25
- $label = _x( 'Number of options visible without scrolling', 'form-fields-admin', 'WPBDM' );
26
- $description = _x( 'The height of the list will be adjusted to accommodate the specified number of options.', 'form-fields-admin', 'WPBDM' );
27
 
28
  $content = '<span class="description">' . $description . '</span><br />';
29
  $content.= '<input name="field[x_size]" type="number" value="%d">';
3
  class WPBDP_FieldTypes_MultiSelect extends WPBDP_FieldTypes_Select {
4
 
5
  public function __construct() {
6
+ parent::__construct( _x('Multiple select list', 'form-fields api', 'business-directory-plugin' ) );
7
  $this->set_multiple( true );
8
  }
9
 
10
  public function get_name() {
11
+ return _x( 'Multiselect List', 'form-fields api', 'business-directory-plugin' );
12
  }
13
 
14
  public function get_id() {
22
  protected function get_field_settings( $field=null, $association=null ) {
23
  $settings = parent::get_field_settings( $field, $association );
24
 
25
+ $label = _x( 'Number of options visible without scrolling', 'form-fields-admin', 'business-directory-plugin' );
26
+ $description = _x( 'The height of the list will be adjusted to accommodate the specified number of options.', 'form-fields-admin', 'business-directory-plugin' );
27
 
28
  $content = '<span class="description">' . $description . '</span><br />';
29
  $content.= '<input name="field[x_size]" type="number" value="%d">';
includes/fields/class-fieldtypes-phone-number.php CHANGED
@@ -10,7 +10,7 @@ class WPBDP_FieldTypes_Phone_Number extends WPBDP_FieldTypes_Textfield {
10
  }
11
 
12
  public function get_name() {
13
- return _x( 'Phone Number', 'form fields', 'WPBDM' );
14
  }
15
 
16
  public function get_supported_associations() {
10
  }
11
 
12
  public function get_name() {
13
+ return _x( 'Phone Number', 'form fields', 'business-directory-plugin' );
14
  }
15
 
16
  public function get_supported_associations() {
includes/fields/class-fieldtypes-radiobutton.php CHANGED
@@ -19,7 +19,7 @@ if ( ! class_exists( 'WPBDP_CategoryFormInputWalker' ) ) {
19
  class WPBDP_FieldTypes_RadioButton extends WPBDP_Form_Field_Type {
20
 
21
  public function __construct() {
22
- parent::__construct( _x( 'Radio button', 'form-fields api', 'WPBDM' ) );
23
  }
24
 
25
  public function get_id() {
@@ -91,7 +91,7 @@ class WPBDP_FieldTypes_RadioButton extends WPBDP_Form_Field_Type {
91
  return '';
92
  }
93
 
94
- $label = _x( 'Field Options (for select lists, radio buttons and checkboxes).', 'form-fields admin', 'WPBDM' ) . '<span class="description">(required)</span>';
95
 
96
  $content = '<span class="description">One option per line</span><br />';
97
  $content .= '<textarea name="field[x_options]" cols="50" rows="2">';
@@ -113,7 +113,7 @@ class WPBDP_FieldTypes_RadioButton extends WPBDP_Form_Field_Type {
113
  $options = stripslashes( trim( $_POST['field']['x_options'] ) );
114
 
115
  if ( ! $options && $field->get_association() != 'tags' ) {
116
- return new WP_Error( 'wpbdp-invalid-settings', _x( 'Field list of options is required.', 'form-fields admin', 'WPBDM' ) );
117
  }
118
 
119
  $options = $options ? array_map( 'trim', explode( "\n", $options ) ) : array();
19
  class WPBDP_FieldTypes_RadioButton extends WPBDP_Form_Field_Type {
20
 
21
  public function __construct() {
22
+ parent::__construct( _x( 'Radio button', 'form-fields api', 'business-directory-plugin' ) );
23
  }
24
 
25
  public function get_id() {
91
  return '';
92
  }
93
 
94
+ $label = _x( 'Field Options (for select lists, radio buttons and checkboxes).', 'form-fields admin', 'business-directory-plugin' ) . '<span class="description">(required)</span>';
95
 
96
  $content = '<span class="description">One option per line</span><br />';
97
  $content .= '<textarea name="field[x_options]" cols="50" rows="2">';
113
  $options = stripslashes( trim( $_POST['field']['x_options'] ) );
114
 
115
  if ( ! $options && $field->get_association() != 'tags' ) {
116
+ return new WP_Error( 'wpbdp-invalid-settings', _x( 'Field list of options is required.', 'form-fields admin', 'business-directory-plugin' ) );
117
  }
118
 
119
  $options = $options ? array_map( 'trim', explode( "\n", $options ) ) : array();
includes/fields/class-fieldtypes-select.php CHANGED
@@ -25,7 +25,7 @@ class WPBDP_FieldTypes_Select extends WPBDP_Form_Field_Type {
25
  * WPBDP_FieldTypes_Select constructor.
26
  */
27
  public function __construct() {
28
- parent::__construct( _x( 'Select List', 'form-fields api', 'WPBDM' ) );
29
  }
30
 
31
  public function get_id() {
@@ -109,7 +109,7 @@ class WPBDP_FieldTypes_Select extends WPBDP_Form_Field_Type {
109
  );
110
 
111
  if ( ( 'submit' == $context || 'search' == $context ) && ! $this->is_multiple() ) {
112
- $args['show_option_none'] = _x( '-- Choose One --', 'form-fields-api category-select', 'WPBDM' );
113
 
114
  if ( 'submit' == $context ) {
115
  $args['option_none_value'] = '';
@@ -129,7 +129,7 @@ class WPBDP_FieldTypes_Select extends WPBDP_Form_Field_Type {
129
  $this->set_multiple( false );
130
  }
131
  } elseif ( 'search' == $context && $this->is_multiple() ) {
132
- $args['show_option_none'] = _x( '-- Choose Terms --', 'form-fields-api category-select', 'WPBDM' );
133
  }
134
 
135
  $args = apply_filters( 'wpbdp_field_type_select_categories_args', $args, $field, $value, $context, $extra, $field_settings );
@@ -176,7 +176,7 @@ class WPBDP_FieldTypes_Select extends WPBDP_Form_Field_Type {
176
  if ( $field->data( 'empty_on_search' ) && $context == 'search' ) {
177
  $html .= sprintf(
178
  '<option value="-1">%s</option>',
179
- _x( '-- Choose One --', 'form-fields-api category-select', 'WPBDM' )
180
  );
181
  }
182
 
@@ -187,7 +187,7 @@ class WPBDP_FieldTypes_Select extends WPBDP_Form_Field_Type {
187
  }
188
 
189
  if ( $show_empty_option ) {
190
- $default_label = _x( '— None —', 'form-fields-api select', 'WPBDM' );
191
  $empty_option_label = $field->data( 'empty_option_label', $default_label );
192
  $html .= '<option value="">' . $empty_option_label . '</option>';
193
  }
@@ -235,7 +235,7 @@ class WPBDP_FieldTypes_Select extends WPBDP_Form_Field_Type {
235
 
236
  $settings = array();
237
 
238
- $settings['options'][] = _x( 'Field Options (for select lists, radio buttons and checkboxes).', 'form-fields admin', 'WPBDM' ) . '<span class="description">(required)</span>';
239
 
240
  $content = '<span class="description">One option per line</span><br />';
241
  $content .= '<textarea name="field[x_options]" cols="50" rows="2">';
@@ -247,7 +247,7 @@ class WPBDP_FieldTypes_Select extends WPBDP_Form_Field_Type {
247
 
248
  $settings['options'][] = $content;
249
 
250
- $settings['empty_on_search'][] = _x( 'Allow empty selection on search?', 'form-fields admin', 'WPBDM' );
251
 
252
  $content = '<span class="description">Empty search selection means users can make this field optional in searching. Turn it off if the field must always be searched on.</span><br />';
253
  $content .= '<input type="checkbox" value="1" name="field[x_empty_on_search]" ' . ( ! $field ? ' checked="checked"' : ( $field->data( 'empty_on_search' ) ? ' checked="checked"' : '' ) ) . ' />';
@@ -265,7 +265,7 @@ class WPBDP_FieldTypes_Select extends WPBDP_Form_Field_Type {
265
  $options = stripslashes( trim( $_POST['field']['x_options'] ) );
266
 
267
  if ( ! $options && $field->get_association() != 'tags' ) {
268
- return new WP_Error( 'wpbdp-invalid-settings', _x( 'Field list of options is required.', 'form-fields admin', 'WPBDM' ) );
269
  }
270
 
271
  $options = $options ? array_map( 'trim', explode( "\n", $options ) ) : array();
25
  * WPBDP_FieldTypes_Select constructor.
26
  */
27
  public function __construct() {
28
+ parent::__construct( _x( 'Select List', 'form-fields api', 'business-directory-plugin' ) );
29
  }
30
 
31
  public function get_id() {
109
  );
110
 
111
  if ( ( 'submit' == $context || 'search' == $context ) && ! $this->is_multiple() ) {
112
+ $args['show_option_none'] = _x( '-- Choose One --', 'form-fields-api category-select', 'business-directory-plugin' );
113
 
114
  if ( 'submit' == $context ) {
115
  $args['option_none_value'] = '';
129
  $this->set_multiple( false );
130
  }
131
  } elseif ( 'search' == $context && $this->is_multiple() ) {
132
+ $args['show_option_none'] = _x( '-- Choose Terms --', 'form-fields-api category-select', 'business-directory-plugin' );
133
  }
134
 
135
  $args = apply_filters( 'wpbdp_field_type_select_categories_args', $args, $field, $value, $context, $extra, $field_settings );
176
  if ( $field->data( 'empty_on_search' ) && $context == 'search' ) {
177
  $html .= sprintf(
178
  '<option value="-1">%s</option>',
179
+ _x( '-- Choose One --', 'form-fields-api category-select', 'business-directory-plugin' )
180
  );
181
  }
182
 
187
  }
188
 
189
  if ( $show_empty_option ) {
190
+ $default_label = _x( '— None —', 'form-fields-api select', 'business-directory-plugin' );
191
  $empty_option_label = $field->data( 'empty_option_label', $default_label );
192
  $html .= '<option value="">' . $empty_option_label . '</option>';
193
  }
235
 
236
  $settings = array();
237
 
238
+ $settings['options'][] = _x( 'Field Options (for select lists, radio buttons and checkboxes).', 'form-fields admin', 'business-directory-plugin' ) . '<span class="description">(required)</span>';
239
 
240
  $content = '<span class="description">One option per line</span><br />';
241
  $content .= '<textarea name="field[x_options]" cols="50" rows="2">';
247
 
248
  $settings['options'][] = $content;
249
 
250
+ $settings['empty_on_search'][] = _x( 'Allow empty selection on search?', 'form-fields admin', 'business-directory-plugin' );
251
 
252
  $content = '<span class="description">Empty search selection means users can make this field optional in searching. Turn it off if the field must always be searched on.</span><br />';
253
  $content .= '<input type="checkbox" value="1" name="field[x_empty_on_search]" ' . ( ! $field ? ' checked="checked"' : ( $field->data( 'empty_on_search' ) ? ' checked="checked"' : '' ) ) . ' />';
265
  $options = stripslashes( trim( $_POST['field']['x_options'] ) );
266
 
267
  if ( ! $options && $field->get_association() != 'tags' ) {
268
+ return new WP_Error( 'wpbdp-invalid-settings', _x( 'Field list of options is required.', 'form-fields admin', 'business-directory-plugin' ) );
269
  }
270
 
271
  $options = $options ? array_map( 'trim', explode( "\n", $options ) ) : array();
includes/fields/class-fieldtypes-social.php CHANGED
@@ -32,7 +32,7 @@ class WPBDP_FieldTypes_Social extends WPBDP_Form_Field_Type {
32
  * WPBDP_FieldTypes_Social constructor.
33
  */
34
  public function __construct() {
35
- parent::__construct( _x( 'Social Site (Other)', 'form-fields api', 'WPBDM' ) );
36
 
37
  add_action( 'wp_enqueue_scripts', array( $this, '_enqueue_scripts' ) );
38
  add_action( 'admin_enqueue_scripts', array( $this, '_enqueue_scripts' ) );
@@ -73,7 +73,7 @@ class WPBDP_FieldTypes_Social extends WPBDP_Form_Field_Type {
73
 
74
  $content .= '</select>';
75
 
76
- $settings['display_order'][] = _x( 'Field Display Order', 'form-fields admin', 'WPBDM' );
77
  $settings['display_order'][] = $content;
78
 
79
  return self::render_admin_settings( $settings );
@@ -92,7 +92,7 @@ class WPBDP_FieldTypes_Social extends WPBDP_Form_Field_Type {
92
  $html .= '<div class="wpbdp-social-url">';
93
  $html .= sprintf(
94
  '<span class="sublabel">%s</span>',
95
- _x( 'URL:', 'form-fields api', 'WPBDM' )
96
  );
97
  $html .= sprintf(
98
  '<input type="text" id="%s" name="%s" value="%s" %s />',
@@ -112,7 +112,7 @@ class WPBDP_FieldTypes_Social extends WPBDP_Form_Field_Type {
112
  if ( 'icon_only' !== $field->data( 'display_order' ) ) {
113
  $text_input = sprintf(
114
  '<label for="wpbdp-field-%2$d-social-text"><span class="sublabel">%s</span></label>',
115
- _x( 'Text:', 'form-fields api', 'WPBDM' ),
116
  $field->get_id()
117
  );
118
 
@@ -120,7 +120,7 @@ class WPBDP_FieldTypes_Social extends WPBDP_Form_Field_Type {
120
  '<input id="wpbdp-field-%1$d-social-text" type="text" name="listingfields[%s][social-text]" value="%s" placeholder="%s">',
121
  $field->get_id(),
122
  ! empty( $value['social-text'] ) ? $value['social-text'] : '',
123
- _x( 'Text to be displayed for social field', 'form-fields api', 'WPBDM' )
124
  );
125
  }
126
 
@@ -138,7 +138,7 @@ class WPBDP_FieldTypes_Social extends WPBDP_Form_Field_Type {
138
  if ( 'text_only' !== $field->data( 'display_order' ) ) {
139
  $icon_input = sprintf(
140
  '<span class="sublabel">%s</span>',
141
- _x( 'Type:', 'form-fields api', 'WPBDM' )
142
  );
143
 
144
  foreach ( $this->social_types as $type ) {
@@ -174,7 +174,7 @@ class WPBDP_FieldTypes_Social extends WPBDP_Form_Field_Type {
174
  '<a href="http://google.com" class="delete" onclick="return WPBDP.fileUpload.deleteUpload(%d, \'%s\');">%s</a>',
175
  $field->get_id(),
176
  'listingfields[' . $field->get_id() . '][social-icon]',
177
- _x( 'Remove', 'form-fields-api', 'WPBDM' )
178
  );
179
 
180
  $icon_input .= '</div>';
32
  * WPBDP_FieldTypes_Social constructor.
33
  */
34
  public function __construct() {
35
+ parent::__construct( _x( 'Social Site (Other)', 'form-fields api', 'business-directory-plugin' ) );
36
 
37
  add_action( 'wp_enqueue_scripts', array( $this, '_enqueue_scripts' ) );
38
  add_action( 'admin_enqueue_scripts', array( $this, '_enqueue_scripts' ) );
73
 
74
  $content .= '</select>';
75
 
76
+ $settings['display_order'][] = _x( 'Field Display Order', 'form-fields admin', 'business-directory-plugin' );
77
  $settings['display_order'][] = $content;
78
 
79
  return self::render_admin_settings( $settings );
92
  $html .= '<div class="wpbdp-social-url">';
93
  $html .= sprintf(
94
  '<span class="sublabel">%s</span>',
95
+ _x( 'URL:', 'form-fields api', 'business-directory-plugin' )
96
  );
97
  $html .= sprintf(
98
  '<input type="text" id="%s" name="%s" value="%s" %s />',
112
  if ( 'icon_only' !== $field->data( 'display_order' ) ) {
113
  $text_input = sprintf(
114
  '<label for="wpbdp-field-%2$d-social-text"><span class="sublabel">%s</span></label>',
115
+ _x( 'Text:', 'form-fields api', 'business-directory-plugin' ),
116
  $field->get_id()
117
  );
118
 
120
  '<input id="wpbdp-field-%1$d-social-text" type="text" name="listingfields[%s][social-text]" value="%s" placeholder="%s">',
121
  $field->get_id(),
122
  ! empty( $value['social-text'] ) ? $value['social-text'] : '',
123
+ _x( 'Text to be displayed for social field', 'form-fields api', 'business-directory-plugin' )
124
  );
125
  }
126
 
138
  if ( 'text_only' !== $field->data( 'display_order' ) ) {
139
  $icon_input = sprintf(
140
  '<span class="sublabel">%s</span>',
141
+ _x( 'Type:', 'form-fields api', 'business-directory-plugin' )
142
  );
143
 
144
  foreach ( $this->social_types as $type ) {
174
  '<a href="http://google.com" class="delete" onclick="return WPBDP.fileUpload.deleteUpload(%d, \'%s\');">%s</a>',
175
  $field->get_id(),
176
  'listingfields[' . $field->get_id() . '][social-icon]',
177
+ _x( 'Remove', 'form-fields-api', 'business-directory-plugin' )
178
  );
179
 
180
  $icon_input .= '</div>';
includes/fields/class-fieldtypes-textarea.php CHANGED
@@ -13,7 +13,7 @@ class WPBDP_FieldTypes_TextArea extends WPBDP_Form_Field_Type {
13
  private $quicktags_settings = array();
14
 
15
  public function __construct() {
16
- parent::__construct( _x('Textarea', 'form-fields api', 'WPBDM') );
17
 
18
  add_filter( 'wpbdp_form_field_html_value', array( $this, 'maybe_shorten_output_in_excerpt' ), 10, 4 );
19
  add_filter( 'wpbdp_render_listing_fields', array( $this, 'maybe_hide_excerpt_field' ), 10, 3 );
@@ -194,47 +194,47 @@ class WPBDP_FieldTypes_TextArea extends WPBDP_Form_Field_Type {
194
  public function render_field_settings( &$field=null, $association=null ) {
195
  $settings = array();
196
 
197
- $settings['allow_html'][] = _x( 'Allow HTML input for this field?', 'form-fields admin', 'WPBDM' );
198
  $settings['allow_html'][] = '<input type="checkbox" value="1" name="field[allow_html]" ' . ( $field && $field->data( 'allow_html' ) ? ' checked="checked"' : '' ) . ' />';
199
 
200
- $settings['allow_iframes'][] = _x( 'Allow IFRAME tags in content?', 'form-fields admin', 'WPBDM' );
201
  $settings['allow_iframes'][] =
202
  '<div class="iframe-confirm wpbdp-note warning">' .
203
- '<p>' . _x( 'Enabling iframe support in your listings can allow users to execute arbitrary scripts on a page if they want, which can possibly infect your site with malware. We do NOT recommend using this setting UNLESS you are posting the listings yourself and have sole control over the content. Are you sure you want to enable this?', 'admin form-fields', 'WPBDM' ) . '</p>' .
204
- '<a href="#" class="button no">' . _x( 'No', 'form-fields admin', 'WPBDM' ) . '</a> ' .
205
- '<a href="#" class="button button-primary yes">' . _x( 'Yes', 'form-fields admin', 'WPBDM' ) . '</a>' .
206
  '</div>' .
207
  '<input type="checkbox" value="1" name="field[allow_iframes]" ' . ( $field && $field->data( 'allow_iframes' ) ? ' checked="checked"' : '' ) . ' />';
208
 
209
  if ( ( $field && in_array( $field->get_association(), array( 'content', 'excerpt' ) ) ) || ( in_array( $association, array( 'content', 'excerpt' ) ) ) ) {
210
- $settings['allow_shortcodes'][] = _x( 'Allow WordPress shortcodes in this field?', 'form-fields admin', 'WPBDM' );
211
  $settings['allow_shortcodes'][] = '<input type="checkbox" value="1" name="field[allow_shortcodes]" ' . ( $field && $field->data( 'allow_shortcodes' ) ? ' checked="checked"' : '' ) . ' />';
212
  }
213
 
214
  if ( ( $field && $field->get_association() == 'content' ) || ( $association == 'content' ) ) {
215
- $settings['wysiwyg_editor'][] = _x( 'Display a WYSIWYG editor on the frontend?', 'form-fields admin', 'WPBDM' );
216
  $settings['wysiwyg_editor'][] = '<input type="checkbox" value="1" name="field[wysiwyg_editor]" ' . ( $field && $field->data( 'wysiwyg_editor' ) ? ' checked="checked"' : '' ) . ' />';
217
 
218
- $desc = _x( '<b>Warning:</b> Users can use this feature to get around your image limits in fee plans.', 'form-fields admin', 'WPBDM' );
219
- $settings['wysiwyg_images'][] = _x( 'Allow images in WYSIWYG editor?', 'form-fields admin', 'WPBDM' );
220
  $settings['wysiwyg_images'][] = '<input type="checkbox" value="1" name="field[wysiwyg_images]" ' . ( $field && $field->data( 'wysiwyg_images' ) ? ' checked="checked"' : '' ) . ' /> <span class="description">' . $desc . '</span>';
221
 
222
- $desc = _x( '<b>Advanced users only!</b> Unless you\'ve been told to change this, don\'t switch it unless you know what you\'re doing.', 'form-fields admin', 'WPBDM' );
223
- $settings['allow_filters'][] = _x( 'Apply "the_content" filter before displaying this field?', 'form-fields admin', 'WPBDM' );
224
  $settings['allow_filters'][] = '<input type="checkbox" value="1" name="field[allow_filters]" ' . ( $field && $field->data( 'allow_filters' ) ? ' checked="checked"' : '' ) . ' /> <span class="description">' . $desc . '</span>';
225
 
226
- $settings['excerpt_override'][] = _x( 'Use shortened version of Description field as excerpt', 'form-fields admin', 'WPBDM' );
227
- $settings['excerpt_override'][] = '<input type="radio" value="1" name="field[excerpt_override]" ' . ( $field && 1 === $field->data( 'excerpt_override' ) ? ' checked="checked"' : '' ) . '/>' . _x( 'Enable always (override the Short Description given with a shortened Long Description)', 'form-fields admin', 'WPBDM' ) . '<br/>
228
- <input type="radio" value="2" name="field[excerpt_override]" ' . ( $field && 2 === $field->data( 'excerpt_override' ) ? ' checked="checked"' : '' ) . '/>' . _x( 'Enable conditionally (override ONLY when Short Description is empty with a shortened Long Description)', 'form-fields admin', 'WPBDM' ) . '<br/>
229
- <input type="radio" value="0" name="field[excerpt_override]" ' . ( $field && ! in_array( $field->data( 'excerpt_override' ), array( 1, 2 ) ) ? ' checked="checked"' : '' ) . '/>' . _x( 'Disable (use the Short Description all the time, empty or not)', 'form-fields admin', 'WPBDM' );
230
 
231
- $desc = _x( 'Truncates the description field to the value set here. To display all of the description, set to 0.', 'form-fields admin', 'WPBDM' );
232
- $settings['max_length'][] = _x( 'Number of Characters from Short Description/Excerpt to Display in List View (only)', 'form-fields admin', 'WPBDM' );
233
  $settings['max_length'][] = '<input type="number" value="' . ( $field && $field->data( 'max_length' ) ? $field->data( 'max_length' ) : 0 ) . '" name="field[max_length]" /> <span class="wpbdp-setting-description">' . $desc . '</span>';
234
  }
235
 
236
  if ( ( $field && $field->get_association() == 'excerpt' ) || ( $association == 'excerpt' ) ) {
237
- $settings['auto_excerpt'][] = _x( 'Automatically generate excerpt from content field?', 'form-fields admin', 'WPBDM' );
238
  $settings['auto_excerpt'][] = '<input type="checkbox" value="1" name="field[auto_excerpt]" ' . ( $field && $field->data( 'auto_excerpt' ) ? ' checked="checked"' : '' ) . ' /> ';
239
  }
240
 
13
  private $quicktags_settings = array();
14
 
15
  public function __construct() {
16
+ parent::__construct( _x('Textarea', 'form-fields api', 'business-directory-plugin' ) );
17
 
18
  add_filter( 'wpbdp_form_field_html_value', array( $this, 'maybe_shorten_output_in_excerpt' ), 10, 4 );
19
  add_filter( 'wpbdp_render_listing_fields', array( $this, 'maybe_hide_excerpt_field' ), 10, 3 );
194
  public function render_field_settings( &$field=null, $association=null ) {
195
  $settings = array();
196
 
197
+ $settings['allow_html'][] = _x( 'Allow HTML input for this field?', 'form-fields admin', 'business-directory-plugin' );
198
  $settings['allow_html'][] = '<input type="checkbox" value="1" name="field[allow_html]" ' . ( $field && $field->data( 'allow_html' ) ? ' checked="checked"' : '' ) . ' />';
199
 
200
+ $settings['allow_iframes'][] = _x( 'Allow IFRAME tags in content?', 'form-fields admin', 'business-directory-plugin' );
201
  $settings['allow_iframes'][] =
202
  '<div class="iframe-confirm wpbdp-note warning">' .
203
+ '<p>' . _x( 'Enabling iframe support in your listings can allow users to execute arbitrary scripts on a page if they want, which can possibly infect your site with malware. We do NOT recommend using this setting UNLESS you are posting the listings yourself and have sole control over the content. Are you sure you want to enable this?', 'admin form-fields', 'business-directory-plugin' ) . '</p>' .
204
+ '<a href="#" class="button no">' . _x( 'No', 'form-fields admin', 'business-directory-plugin' ) . '</a> ' .
205
+ '<a href="#" class="button button-primary yes">' . _x( 'Yes', 'form-fields admin', 'business-directory-plugin' ) . '</a>' .
206
  '</div>' .
207
  '<input type="checkbox" value="1" name="field[allow_iframes]" ' . ( $field && $field->data( 'allow_iframes' ) ? ' checked="checked"' : '' ) . ' />';
208
 
209
  if ( ( $field && in_array( $field->get_association(), array( 'content', 'excerpt' ) ) ) || ( in_array( $association, array( 'content', 'excerpt' ) ) ) ) {
210
+ $settings['allow_shortcodes'][] = _x( 'Allow WordPress shortcodes in this field?', 'form-fields admin', 'business-directory-plugin' );
211
  $settings['allow_shortcodes'][] = '<input type="checkbox" value="1" name="field[allow_shortcodes]" ' . ( $field && $field->data( 'allow_shortcodes' ) ? ' checked="checked"' : '' ) . ' />';
212
  }
213
 
214
  if ( ( $field && $field->get_association() == 'content' ) || ( $association == 'content' ) ) {
215
+ $settings['wysiwyg_editor'][] = _x( 'Display a WYSIWYG editor on the frontend?', 'form-fields admin', 'business-directory-plugin' );
216
  $settings['wysiwyg_editor'][] = '<input type="checkbox" value="1" name="field[wysiwyg_editor]" ' . ( $field && $field->data( 'wysiwyg_editor' ) ? ' checked="checked"' : '' ) . ' />';
217
 
218
+ $desc = _x( '<b>Warning:</b> Users can use this feature to get around your image limits in fee plans.', 'form-fields admin', 'business-directory-plugin' );
219
+ $settings['wysiwyg_images'][] = _x( 'Allow images in WYSIWYG editor?', 'form-fields admin', 'business-directory-plugin' );
220
  $settings['wysiwyg_images'][] = '<input type="checkbox" value="1" name="field[wysiwyg_images]" ' . ( $field && $field->data( 'wysiwyg_images' ) ? ' checked="checked"' : '' ) . ' /> <span class="description">' . $desc . '</span>';
221
 
222
+ $desc = _x( '<b>Advanced users only!</b> Unless you\'ve been told to change this, don\'t switch it unless you know what you\'re doing.', 'form-fields admin', 'business-directory-plugin' );
223
+ $settings['allow_filters'][] = _x( 'Apply "the_content" filter before displaying this field?', 'form-fields admin', 'business-directory-plugin' );
224
  $settings['allow_filters'][] = '<input type="checkbox" value="1" name="field[allow_filters]" ' . ( $field && $field->data( 'allow_filters' ) ? ' checked="checked"' : '' ) . ' /> <span class="description">' . $desc . '</span>';
225
 
226
+ $settings['excerpt_override'][] = _x( 'Use shortened version of Description field as excerpt', 'form-fields admin', 'business-directory-plugin' );
227
+ $settings['excerpt_override'][] = '<input type="radio" value="1" name="field[excerpt_override]" ' . ( $field && 1 === $field->data( 'excerpt_override' ) ? ' checked="checked"' : '' ) . '/>' . _x( 'Enable always (override the Short Description given with a shortened Long Description)', 'form-fields admin', 'business-directory-plugin' ) . '<br/>
228
+ <input type="radio" value="2" name="field[excerpt_override]" ' . ( $field && 2 === $field->data( 'excerpt_override' ) ? ' checked="checked"' : '' ) . '/>' . _x( 'Enable conditionally (override ONLY when Short Description is empty with a shortened Long Description)', 'form-fields admin', 'business-directory-plugin' ) . '<br/>
229
+ <input type="radio" value="0" name="field[excerpt_override]" ' . ( $field && ! in_array( $field->data( 'excerpt_override' ), array( 1, 2 ) ) ? ' checked="checked"' : '' ) . '/>' . _x( 'Disable (use the Short Description all the time, empty or not)', 'form-fields admin', 'business-directory-plugin' );
230
 
231
+ $desc = _x( 'Truncates the description field to the value set here. To display all of the description, set to 0.', 'form-fields admin', 'business-directory-plugin' );
232
+ $settings['max_length'][] = _x( 'Number of Characters from Short Description/Excerpt to Display in List View (only)', 'form-fields admin', 'business-directory-plugin' );
233
  $settings['max_length'][] = '<input type="number" value="' . ( $field && $field->data( 'max_length' ) ? $field->data( 'max_length' ) : 0 ) . '" name="field[max_length]" /> <span class="wpbdp-setting-description">' . $desc . '</span>';
234
  }
235
 
236
  if ( ( $field && $field->get_association() == 'excerpt' ) || ( $association == 'excerpt' ) ) {
237
+ $settings['auto_excerpt'][] = _x( 'Automatically generate excerpt from content field?', 'form-fields admin', 'business-directory-plugin' );
238
  $settings['auto_excerpt'][] = '<input type="checkbox" value="1" name="field[auto_excerpt]" ' . ( $field && $field->data( 'auto_excerpt' ) ? ' checked="checked"' : '' ) . ' /> ';
239
  }
240
 
includes/fields/class-fieldtypes-textfield.php CHANGED
@@ -10,7 +10,7 @@
10
  class WPBDP_FieldTypes_TextField extends WPBDP_Form_Field_Type {
11
 
12
  public function __construct() {
13
- parent::__construct( _x( 'Textfield', 'form-fields api', 'WPBDM' ) );
14
  }
15
 
16
  public function get_id() {
@@ -37,7 +37,7 @@ class WPBDP_FieldTypes_TextField extends WPBDP_Form_Field_Type {
37
  }
38
 
39
  if ( is_array( $value ) ) {
40
- return $value[0];
41
  }
42
 
43
  return $value;
@@ -54,7 +54,7 @@ class WPBDP_FieldTypes_TextField extends WPBDP_Form_Field_Type {
54
  $html = '';
55
 
56
  if ( $field->has_validator( 'date' ) ) {
57
- $html .= _x( 'Format 01/31/1969', 'form-fields api', 'WPBDM' );
58
  }
59
 
60
  if ( isset( $field_settings['html_before'] ) ) {
10
  class WPBDP_FieldTypes_TextField extends WPBDP_Form_Field_Type {
11
 
12
  public function __construct() {
13
+ parent::__construct( _x( 'Textfield', 'form-fields api', 'business-directory-plugin' ) );
14
  }
15
 
16
  public function get_id() {
37
  }
38
 
39
  if ( is_array( $value ) ) {
40
+ return array_shift( $value );
41
  }
42
 
43
  return $value;
54
  $html = '';
55
 
56
  if ( $field->has_validator( 'date' ) ) {
57
+ $html .= _x( 'Format 01/31/1969', 'form-fields api', 'business-directory-plugin' );
58
  }
59
 
60
  if ( isset( $field_settings['html_before'] ) ) {
includes/fields/class-fieldtypes-twitter.php CHANGED
@@ -3,7 +3,7 @@
3
  class WPBDP_FieldTypes_Twitter extends WPBDP_Form_Field_Type {
4
 
5
  public function __construct() {
6
- parent::__construct( _x('Social Site (Twitter handle)', 'form-fields api', 'WPBDM') );
7
  }
8
 
9
  public function get_id() {
@@ -80,7 +80,7 @@ class WPBDP_FieldTypes_Twitter extends WPBDP_Form_Field_Type {
80
  public function render_field_settings( &$field=null, $association=null ) {
81
  $settings = array();
82
 
83
- $settings['show_count'][] = _x( 'Show followers count?', 'form-fields admin', 'WPBDM' );
84
  $settings['show_count'][] = '<input type="checkbox" value="1" name="field[show_count]" ' . ( $field && $field->data( 'show_count' ) ? ' checked="checked"' : '' ) . ' />';
85
 
86
  return self::render_admin_settings( $settings );
3
  class WPBDP_FieldTypes_Twitter extends WPBDP_Form_Field_Type {
4
 
5
  public function __construct() {
6
+ parent::__construct( _x('Social Site (Twitter handle)', 'form-fields api', 'business-directory-plugin' ) );
7
  }
8
 
9
  public function get_id() {
80
  public function render_field_settings( &$field=null, $association=null ) {
81
  $settings = array();
82
 
83
+ $settings['show_count'][] = _x( 'Show followers count?', 'form-fields admin', 'business-directory-plugin' );
84
  $settings['show_count'][] = '<input type="checkbox" value="1" name="field[show_count]" ' . ( $field && $field->data( 'show_count' ) ? ' checked="checked"' : '' ) . ' />';
85
 
86
  return self::render_admin_settings( $settings );
includes/fields/class-fieldtypes-url.php CHANGED
@@ -15,7 +15,7 @@
15
  class WPBDP_FieldTypes_URL extends WPBDP_Form_Field_Type {
16
 
17
  public function __construct() {
18
- parent::__construct( _x( 'URL Field', 'form-fields api', 'WPBDM' ) );
19
  add_filter( 'wpbdp_form_field_css_classes', array( $this, 'css_classes' ), 10, 3 );
20
  }
21
 
@@ -33,10 +33,10 @@ class WPBDP_FieldTypes_URL extends WPBDP_Form_Field_Type {
33
 
34
  $settings = array();
35
 
36
- $settings['new-window'][] = _x( 'Open link in a new window?', 'form-fields admin', 'WPBDM' );
37
  $settings['new-window'][] = '<input type="checkbox" value="1" name="field[x_open_in_new_window]" ' . ( $field && $field->data( 'open_in_new_window' ) ? ' checked="checked"' : '' ) . ' />';
38
 
39
- $settings['nofollow'][] = _x( 'Use rel="nofollow" when displaying the link?', 'form-fields admin', 'WPBDM' );
40
  $settings['nofollow'][] = '<input type="checkbox" value="1" name="field[x_use_nofollow]" ' . ( $field && $field->data( 'use_nofollow' ) ? ' checked="checked"' : '' ) . ' />';
41
 
42
  return self::render_admin_settings( $settings );
@@ -146,7 +146,11 @@ class WPBDP_FieldTypes_URL extends WPBDP_Form_Field_Type {
146
 
147
  $html = '';
148
  $html .= '<div class="wpbdp-url-field-col">';
149
- $html .= sprintf( '<span class="sublabel">%s</span>', _x( 'URL:', 'form-fields api', 'WPBDM' ) );
 
 
 
 
150
  $html .= sprintf( '<input type="text" id="%s" name="%s" value="%s" />',
151
  'wpbdp-field-' . $field->get_id(),
152
  'listingfields[' . $field->get_id() . '][0]',
@@ -157,7 +161,7 @@ class WPBDP_FieldTypes_URL extends WPBDP_Form_Field_Type {
157
  $html .= sprintf(
158
  '<label for="%s"><span class="sublabel">%s</span></label>',
159
  'wpbdp-field-' . $field->get_id() . '-title',
160
- _x( 'Link Text (optional):','form-fields api', 'WPBDM' )
161
  );
162
  $html .= sprintf( '<input type="text" id="%s" name="%s" value="%s" placeholder="" />',
163
  'wpbdp-field-' . $field->get_id() . '-title',
15
  class WPBDP_FieldTypes_URL extends WPBDP_Form_Field_Type {
16
 
17
  public function __construct() {
18
+ parent::__construct( _x( 'URL Field', 'form-fields api', 'business-directory-plugin' ) );
19
  add_filter( 'wpbdp_form_field_css_classes', array( $this, 'css_classes' ), 10, 3 );
20
  }
21
 
33
 
34
  $settings = array();
35
 
36
+ $settings['new-window'][] = _x( 'Open link in a new window?', 'form-fields admin', 'business-directory-plugin' );
37
  $settings['new-window'][] = '<input type="checkbox" value="1" name="field[x_open_in_new_window]" ' . ( $field && $field->data( 'open_in_new_window' ) ? ' checked="checked"' : '' ) . ' />';
38
 
39
+ $settings['nofollow'][] = _x( 'Use rel="nofollow" when displaying the link?', 'form-fields admin', 'business-directory-plugin' );
40
  $settings['nofollow'][] = '<input type="checkbox" value="1" name="field[x_use_nofollow]" ' . ( $field && $field->data( 'use_nofollow' ) ? ' checked="checked"' : '' ) . ' />';
41
 
42
  return self::render_admin_settings( $settings );
146
 
147
  $html = '';
148
  $html .= '<div class="wpbdp-url-field-col">';
149
+ $html .= sprintf(
150
+ '<label for="%s"><span class="sublabel">%s</span></label>',
151
+ 'wpbdp-field-' . $field->get_id() . '-url',
152
+ _x( 'URL:', 'form-fields api', 'business-directory-plugin' )
153
+ );
154
  $html .= sprintf( '<input type="text" id="%s" name="%s" value="%s" />',
155
  'wpbdp-field-' . $field->get_id(),
156
  'listingfields[' . $field->get_id() . '][0]',
161
  $html .= sprintf(
162
  '<label for="%s"><span class="sublabel">%s</span></label>',
163
  'wpbdp-field-' . $field->get_id() . '-title',
164
+ _x( 'Link Text (optional):','form-fields api', 'business-directory-plugin' )
165
  );
166
  $html .= sprintf( '<input type="text" id="%s" name="%s" value="%s" placeholder="" />',
167
  'wpbdp-field-' . $field->get_id() . '-title',
includes/fields/class-form-field.php CHANGED
@@ -65,7 +65,7 @@ class WPBDP_Form_Field {
65
  $this->type = is_object( $attrs['field_type'] ) ? $attrs['field_type'] : WPBDP_FormFields::instance()->get_field_type( $attrs['field_type'] );
66
 
67
  if ( ! $this->type ) {
68
- throw new Exception( _x( 'Invalid form field type', 'form-fields-api', 'WPBDM' ) );
69
  }
70
 
71
  /*
@@ -590,15 +590,15 @@ class WPBDP_Form_Field {
590
  $api = wpbdp_formfields_api();
591
 
592
  if ( ! $this->label || trim( $this->label ) == '' ) {
593
- return new WP_Error( 'wpbdp-save-error', _x( 'Field label is required.', 'form-fields-api', 'WPBDM' ) );
594
  }
595
 
596
  if ( strlen( $this->label ) > 255 ) {
597
- return new WP_Error( 'wpbdp-save-error', _x( 'Field label max length is 255 characters.', 'form-fields-api', 'WPBDM' ) );
598
  }
599
 
600
  if ( strlen( $this->description ) > 255 ) {
601
- return new WP_Error( 'wpbdp-save-error', _x( 'Field description max length is 255 characters.', 'form-fields-api', 'WPBDM' ) );
602
  }
603
 
604
  // If performing a field conversion, make sure the types are compatible.
@@ -609,10 +609,10 @@ class WPBDP_Form_Field {
609
  if ( $orig_type != $new_type ) {
610
  if ( 'url' == $new_type || 'image' == $new_type || 'url' == $orig_type || 'image' == $orig_type ) {
611
  $this->type = WPBDP_FormFields::instance()->get_field_type( $orig_type );
612
- $error_msg = _x( 'You can\'t change from %2$s field type to the one you wanted--the types are incompatible internally. If you want to switch to a field of type %1$s, delete this current field and create a NEW field of type %1$s instead.', 'form-fields-api', 'WPBDM' );
613
 
614
  if ( WPBDP_Listing::count_listings() ) {
615
- $error_msg .= '<br/><br/>' . _x( '<strong>WARNING</strong>: If you delete this field, the data from it in existing listings will be deleted as well.', 'form-fields-api', 'WPBDM' );
616
  }
617
 
618
  $error_msg = sprintf( $error_msg, '<strong>' . strtoupper( $new_type ) . '</strong>', '<strong>' . strtoupper( $orig_type ) . '</strong>' );
@@ -646,7 +646,7 @@ class WPBDP_Form_Field {
646
  if ( in_array( 'unique', $flags ) ) {
647
  if ( $otherfields = wpbdp_get_form_fields( 'association=' . $this->association ) ) {
648
  if ( ( count( $otherfields ) > 1 ) || ( $otherfields[0]->get_id() != $this->id ) ) {
649
- return new WP_Error( 'wpbdp-field-error', sprintf( _x( 'There can only be one field with association "%s". Please select another association.', 'form-fields-api', 'WPBDM' ), $this->association ) );
650
  }
651
  }
652
  }
@@ -656,7 +656,7 @@ class WPBDP_Form_Field {
656
  }
657
 
658
  if ( ! in_array( $this->type->get_id(), (array) $wpbdp->formfields->get_association_field_types( $this->association ) ) ) {
659
- return new WP_Error( 'wpbdp-field-error', sprintf( _x( '"%s" is an invalid field type for this association.', 'form-fields-api', 'WPBDM' ), $this->type->get_name() ) );
660
  }
661
 
662
  $res = $this->type->before_field_update( $this );
@@ -701,7 +701,7 @@ class WPBDP_Form_Field {
701
  */
702
  public function delete() {
703
  if ( ! $this->id ) {
704
- return new WP_Error( 'wpbdp-delete-error', _x( 'Invalid field ID', 'form-fields-api', 'WPBDM' ) );
705
  }
706
 
707
  global $wpbdp;
@@ -711,7 +711,7 @@ class WPBDP_Form_Field {
711
  $otherfields = wpbdp_get_form_fields( array( 'association' => $this->association ) );
712
 
713
  if ( ! $otherfields || ( $otherfields[0]->get_id() == $this->id ) ) {
714
- return new WP_Error( 'wpbdp-delete-error', _x( "This form field can't be deleted because it is required for the plugin to work.", 'form-fields api', 'WPBDM' ) );
715
  }
716
  }
717
 
@@ -726,7 +726,7 @@ class WPBDP_Form_Field {
726
 
727
  $this->id = 0;
728
  } else {
729
- return new WP_Error( 'wpbdp-delete-error', _x( 'An error occurred while trying to delete this field.', 'form-fields-api', 'WPBDM' ) );
730
  }
731
 
732
  return true;
65
  $this->type = is_object( $attrs['field_type'] ) ? $attrs['field_type'] : WPBDP_FormFields::instance()->get_field_type( $attrs['field_type'] );
66
 
67
  if ( ! $this->type ) {
68
+ throw new Exception( _x( 'Invalid form field type', 'form-fields-api', 'business-directory-plugin' ) );
69
  }
70
 
71
  /*
590
  $api = wpbdp_formfields_api();
591
 
592
  if ( ! $this->label || trim( $this->label ) == '' ) {
593
+ return new WP_Error( 'wpbdp-save-error', _x( 'Field label is required.', 'form-fields-api', 'business-directory-plugin' ) );
594
  }
595
 
596
  if ( strlen( $this->label ) > 255 ) {
597
+ return new WP_Error( 'wpbdp-save-error', _x( 'Field label max length is 255 characters.', 'form-fields-api', 'business-directory-plugin' ) );
598
  }
599
 
600
  if ( strlen( $this->description ) > 255 ) {
601
+ return new WP_Error( 'wpbdp-save-error', _x( 'Field description max length is 255 characters.', 'form-fields-api', 'business-directory-plugin' ) );
602
  }
603
 
604
  // If performing a field conversion, make sure the types are compatible.
609
  if ( $orig_type != $new_type ) {
610
  if ( 'url' == $new_type || 'image' == $new_type || 'url' == $orig_type || 'image' == $orig_type ) {
611
  $this->type = WPBDP_FormFields::instance()->get_field_type( $orig_type );
612
+ $error_msg = _x( 'You can\'t change from %2$s field type to the one you wanted--the types are incompatible internally. If you want to switch to a field of type %1$s, delete this current field and create a NEW field of type %1$s instead.', 'form-fields-api', 'business-directory-plugin' );
613
 
614
  if ( WPBDP_Listing::count_listings() ) {
615
+ $error_msg .= '<br/><br/>' . _x( '<strong>WARNING</strong>: If you delete this field, the data from it in existing listings will be deleted as well.', 'form-fields-api', 'business-directory-plugin' );
616
  }
617
 
618
  $error_msg = sprintf( $error_msg, '<strong>' . strtoupper( $new_type ) . '</strong>', '<strong>' . strtoupper( $orig_type ) . '</strong>' );
646
  if ( in_array( 'unique', $flags ) ) {
647
  if ( $otherfields = wpbdp_get_form_fields( 'association=' . $this->association ) ) {
648
  if ( ( count( $otherfields ) > 1 ) || ( $otherfields[0]->get_id() != $this->id ) ) {
649
+ return new WP_Error( 'wpbdp-field-error', sprintf( _x( 'There can only be one field with association "%s". Please select another association.', 'form-fields-api', 'business-directory-plugin' ), $this->association ) );
650
  }
651
  }
652
  }
656
  }
657
 
658
  if ( ! in_array( $this->type->get_id(), (array) $wpbdp->formfields->get_association_field_types( $this->association ) ) ) {
659
+ return new WP_Error( 'wpbdp-field-error', sprintf( _x( '"%s" is an invalid field type for this association.', 'form-fields-api', 'business-directory-plugin' ), $this->type->get_name() ) );
660
  }
661
 
662
  $res = $this->type->before_field_update( $this );
701
  */
702
  public function delete() {
703
  if ( ! $this->id ) {
704
+ return new WP_Error( 'wpbdp-delete-error', _x( 'Invalid field ID', 'form-fields-api', 'business-directory-plugin' ) );
705
  }
706
 
707
  global $wpbdp;
711
  $otherfields = wpbdp_get_form_fields( array( 'association' => $this->association ) );
712
 
713
  if ( ! $otherfields || ( $otherfields[0]->get_id() == $this->id ) ) {
714
+ return new WP_Error( 'wpbdp-delete-error', _x( "This form field can't be deleted because it is required for the plugin to work.", 'form-fields api', 'business-directory-plugin' ) );
715
  }
716
  }
717
 
726
 
727
  $this->id = 0;
728
  } else {
729
+ return new WP_Error( 'wpbdp-delete-error', _x( 'An error occurred while trying to delete this field.', 'form-fields-api', 'business-directory-plugin' ) );
730
  }
731
 
732
  return true;
includes/form-fields.php CHANGED
@@ -38,14 +38,14 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
38
 
39
  private function __construct() {
40
  // register core associations
41
- $this->register_association( 'title', _x( 'Post Title', 'form-fields api', 'WPBDM' ), array( 'required', 'unique' ) );
42
- $this->register_association( 'content', _x( 'Post Content', 'form-fields api', 'WPBDM' ), array( 'required', 'unique', 'optional' ) );
43
- $this->register_association( 'excerpt', _x( 'Post Excerpt', 'form-fields api', 'WPBDM' ), array( 'unique' ) );
44
- $this->register_association( 'category', _x( 'Post Category', 'form-fields api', 'WPBDM' ), array( 'required', 'unique' ) );
45
- $this->register_association( 'tags', _x( 'Post Tags', 'form-fields api', 'WPBDM' ), array( 'unique' ) );
46
- $this->register_association( 'meta', _x( 'Post Metadata', 'form-fields api', 'WPBDM' ) );
47
 
48
- $this->register_association( 'custom', _x( 'Custom', 'form-fields api', 'WPBDM' ), array( 'private' ) );
49
 
50
  // register core field types
51
  $this->register_field_type( 'WPBDP_FieldTypes_TextField', 'textfield' );
@@ -352,7 +352,7 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
352
  public function get_default_fields( $id = '' ) {
353
  $default_fields = array(
354
  'title' => array(
355
- 'label' => __( 'Business Name', 'WPBDM' ),
356
  'field_type' => 'textfield',
357
  'association' => 'title',
358
  'weight' => 9,
@@ -361,7 +361,7 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
361
  'tag' => 'title',
362
  ),
363
  'category' => array(
364
- 'label' => __( 'Business Genre', 'WPBDM' ),
365
  'field_type' => 'select',
366
  'association' => 'category',
367
  'weight' => 8,
@@ -370,7 +370,7 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
370
  'tag' => 'category',
371
  ),
372
  'excerpt' => array(
373
- 'label' => __( 'Short Business Description', 'WPBDM' ),
374
  'field_type' => 'textarea',
375
  'association' => 'excerpt',
376
  'weight' => 7,
@@ -378,7 +378,7 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
378
  'tag' => 'excerpt',
379
  ),
380
  'content' => array(
381
- 'label' => __( 'Long Business Description', 'WPBDM' ),
382
  'field_type' => 'textarea',
383
  'association' => 'content',
384
  'weight' => 6,
@@ -387,7 +387,7 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
387
  'tag' => 'content',
388
  ),
389
  'website' => array(
390
- 'label' => __( 'Business Website Address', 'WPBDM' ),
391
  'field_type' => 'url',
392
  'association' => 'meta',
393
  'weight' => 5,
@@ -396,7 +396,7 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
396
  'tag' => 'website',
397
  ),
398
  'phone' => array(
399
- 'label' => __( 'Business Phone Number', 'WPBDM' ),
400
  'field_type' => 'textfield',
401
  'association' => 'meta',
402
  'weight' => 4,
@@ -404,7 +404,7 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
404
  'tag' => 'phone',
405
  ),
406
  'fax' => array(
407
- 'label' => __( 'Business Fax', 'WPBDM' ),
408
  'field_type' => 'textfield',
409
  'association' => 'meta',
410
  'weight' => 3,
@@ -412,7 +412,7 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
412
  'tag' => 'fax',
413
  ),
414
  'email' => array(
415
- 'label' => __( 'Business Contact Email', 'WPBDM' ),
416
  'field_type' => 'textfield',
417
  'association' => 'meta',
418
  'weight' => 2,
@@ -421,7 +421,7 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
421
  'tag' => 'email',
422
  ),
423
  'tags' => array(
424
- 'label' => __( 'Business Tags', 'WPBDM' ),
425
  'field_type' => 'textfield',
426
  'association' => 'tags',
427
  'weight' => 1,
@@ -429,7 +429,7 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
429
  'tag' => 'tags',
430
  ),
431
  'address' => array(
432
- 'label' => __( 'Business Address', 'WPBDM' ),
433
  'field_type' => 'textarea',
434
  'association' => 'meta',
435
  'weight' => 1,
@@ -437,7 +437,7 @@ if ( ! class_exists( 'WPBDP_FormFields' ) ) {
437
  'tag' => 'address',
438
  ),
439
  'zip' => array(
440
- 'label' => __( 'ZIP Code', 'WPBDM' ),
441
  'field_type' => 'textfield',
442
  'association' => 'meta',
443
  'weight' => 1,
@@ -567,19 +567,19 @@ if ( ! class_exists( 'WPBDP_FieldValidation' ) ) {
567
  */
568
  public function get_validators() {
569
  $validators = array(
570
- 'email' => _x( 'Email Validator', 'form-fields-api', 'WPBDM' ),
571
- 'url' => _x( 'URL Validator', 'form-fields-api', 'WPBDM' ),
572
- 'integer_number' => _x( 'Whole Number Validator', 'form-fields-api', 'WPBDM' ),
573
- 'decimal_number' => _x( 'Decimal Number Validator', 'form-fields-api', 'WPBDM' ),
574
- 'date_' => _x( 'Date Validator', 'form-fields-api', 'WPBDM' ),
575
- 'word_number' => _x( 'Word Count Validator', 'form-fields-api', 'WPBDM' ),
576
  );
577
 
578
  return $validators;
579
  }
580
 
581
  public function validate_field( $field, $value, $validator, $args = array() ) {
582
- $args['field-label'] = is_object( $field ) && $field ? apply_filters( 'wpbdp_render_field_label', $field->get_label(), $field ) : _x( 'Field', 'form-fields-api validation', 'WPBDM' );
583
  $args['field'] = $field;
584
 
585
  return call_user_func( array( $this, $validator ), $value, $args );
@@ -600,12 +600,12 @@ if ( ! class_exists( 'WPBDP_FieldValidation' ) ) {
600
 
601
  if ( $args['field'] && $args['field']->get_association() == 'category' ) {
602
  if ( is_array( $value ) && count( $value ) == 1 && ! $value[0] ) {
603
- return WPBDP_ValidationError( sprintf( _x( '%s is required.', 'form-fields-api validation', 'WPBDM' ), esc_attr( $args['field-label'] ) ) );
604
  }
605
  }
606
 
607
  if ( ( $args['field'] && $args['field']->is_empty_value( $value ) ) || ! $value || ( is_string( $value ) && ! $args['allow_whitespace'] && ! trim( $value ) ) ) {
608
- return WPBDP_ValidationError( sprintf( _x( '%s is required.', 'form-fields-api validation', 'WPBDM' ), esc_attr( $args['field-label'] ) ) );
609
  }
610
  }
611
 
@@ -621,7 +621,7 @@ if ( ! class_exists( 'WPBDP_FieldValidation' ) ) {
621
  _x(
622
  '%s is badly formatted. Valid URL format required. Include http://',
623
  'form-fields-api validation',
624
- 'WPBDM'
625
  ),
626
  esc_attr( $args['field-label'] )
627
  )
@@ -640,21 +640,21 @@ if ( ! class_exists( 'WPBDP_FieldValidation' ) ) {
640
  }
641
 
642
  if ( ! $valid ) {
643
- return WPBDP_ValidationError( sprintf( _x( '%s is badly formatted. Valid Email format required.', 'form-fields-api validation', 'WPBDM' ), esc_attr( $args['field-label'] ) ) );
644
  }
645
  }
646
 
647
  /* IntegerNumberValidator */
648
  private function integer_number( $value, $args = array() ) {
649
  if ( ! ctype_digit( $value ) ) {
650
- return WPBDP_ValidationError( sprintf( _x( '%s must be a number. Decimal values are not allowed.', 'form-fields-api validation', 'WPBDM' ), esc_attr( $args['field-label'] ) ) );
651
  }
652
  }
653
 
654
  /* DecimalNumberValidator */
655
  private function decimal_number( $value, $args = array() ) {
656
  if ( ! is_numeric( $value ) ) {
657
- return WPBDP_ValidationError( sprintf( _x( '%s must be a number.', 'form-fields-api validation', 'WPBDM' ), esc_attr( $args['field-label'] ) ) );
658
  }
659
  }
660
 
@@ -673,7 +673,7 @@ if ( ! class_exists( 'WPBDP_FieldValidation' ) ) {
673
  $value_ = str_replace( array( '/', '.', '-' ), '', $value );
674
 
675
  if ( strlen( $format_ ) != strlen( $value_ ) ) {
676
- return WPBDP_ValidationError( ( ! empty( $args['messages']['incorrect_format'] ) ) ? $args['messages']['incorrect_format'] : sprintf( _x( '%1$s must be in the format %2$s.', 'form-fields-api validation', 'WPBDM' ), esc_attr( $args['field-label'] ), $format ) );
677
  }
678
 
679
  $d = '0';
@@ -711,14 +711,14 @@ if ( ! class_exists( 'WPBDP_FieldValidation' ) ) {
711
  }
712
 
713
  if ( ! ctype_digit( $m ) || ! ctype_digit( $d ) || ! ctype_digit( $y ) || ! checkdate( $m, $d, $y ) ) {
714
- return WPBDP_ValidationError( ( ! empty( $args['messages']['invalid'] ) ) ? $args['messages']['invalid'] : sprintf( _x( '%s must be a valid date.', 'form-fields-api validation', 'WPBDM' ), esc_attr( $args['field-label'] ) ) );
715
  }
716
  }
717
 
718
  /* Image Caption Validator */
719
  private function caption_( $value, $args = array() ) {
720
  if ( $args['caption_required'] && empty( $value[1] ) ) {
721
- return WPBDP_ValidationError( ! empty( $args['messages']['caption_required'] ) ? $args['messages']['caption_required'] : sprintf( _x( 'Caption for %s is required.', 'image field', 'WPBDM' ), esc_attr( $args['field-label'] ) ) );
722
  }
723
  }
724
 
@@ -734,7 +734,7 @@ if ( ! class_exists( 'WPBDP_FieldValidation' ) ) {
734
  $input_array = preg_split("/[\s,]+/", $no_html_text );
735
 
736
  if( $word_count < count( $input_array ) ) {
737
- return WPBDP_ValidationError( sprintf( _x( '%s must have less than %d words.', 'form-fields-api validation', 'WPBDM' ), esc_attr( $args['field-label'] ), $word_count ) );
738
  }
739
 
740
  }
@@ -753,7 +753,7 @@ if ( ! class_exists( 'WPBDP_FieldValidation' ) ) {
753
  }
754
 
755
  if ( ! in_array( $value, $values ) ) {
756
- return WPBDP_ValidationError( sprintf( _x( '%1$s is invalid. Value most be one of %2$s.', 'form-fields-api validation', 'WPBDM' ), esc_attr( $args['field-label'] ), call_user_func( $formatter, $values ) ) );
757
  }
758
  }
759
 
38
 
39
  private function __construct() {
40
  // register core associations
41
+ $this->register_association( 'title', _x( 'Post Title', 'form-fields api', 'business-directory-plugin' ), array( 'required', 'unique' ) );
42
+ $this->register_association( 'content', _x( 'Post Content', 'form-fields api', 'business-directory-plugin' ), array( 'required', 'unique', 'optional' ) );
43
+ $this->register_association( 'excerpt', _x( 'Post Excerpt', 'form-fields api', 'business-directory-plugin' ), array( 'unique' ) );
44
+ $this->register_association( 'category', _x( 'Post Category', 'form-fields api', 'business-directory-plugin' ), array( 'required', 'unique' ) );
45
+ $this->register_association( 'tags', _x( 'Post Tags', 'form-fields api', 'business-directory-plugin' ), array( 'unique' ) );
46
+ $this->register_association( 'meta', _x( 'Post Metadata', 'form-fields api', 'business-directory-plugin' ) );
47
 
48
+ $this->register_association( 'custom', _x( 'Custom', 'form-fields api', 'business-directory-plugin' ), array( 'private' ) );
49
 
50
  // register core field types
51
  $this->register_field_type( 'WPBDP_FieldTypes_TextField', 'textfield' );
352
  public function get_default_fields( $id = '' ) {
353
  $default_fields = array(
354
  'title' => array(
355
+ 'label' => __( 'Business Name', 'business-directory-plugin' ),
356
  'field_type' => 'textfield',
357
  'association' => 'title',
358
  'weight' => 9,
361
  'tag' => 'title',
362
  ),
363
  'category' => array(
364
+ 'label' => __( 'Business Genre', 'business-directory-plugin' ),
365
  'field_type' => 'select',
366
  'association' => 'category',
367
  'weight' => 8,
370
  'tag' => 'category',
371
  ),
372
  'excerpt' => array(
373
+ 'label' => __( 'Short Business Description', 'business-directory-plugin' ),
374
  'field_type' => 'textarea',
375
  'association' => 'excerpt',
376
  'weight' => 7,
378
  'tag' => 'excerpt',
379
  ),
380
  'content' => array(
381
+ 'label' => __( 'Long Business Description', 'business-directory-plugin' ),
382
  'field_type' => 'textarea',
383
  'association' => 'content',
384
  'weight' => 6,
387
  'tag' => 'content',
388
  ),
389
  'website' => array(
390
+ 'label' => __( 'Business Website Address', 'business-directory-plugin' ),
391
  'field_type' => 'url',
392
  'association' => 'meta',
393
  'weight' => 5,
396
  'tag' => 'website',
397
  ),
398
  'phone' => array(
399
+ 'label' => __( 'Business Phone Number', 'business-directory-plugin' ),
400
  'field_type' => 'textfield',
401
  'association' => 'meta',
402
  'weight' => 4,
404
  'tag' => 'phone',
405
  ),
406
  'fax' => array(
407
+ 'label' => __( 'Business Fax', 'business-directory-plugin' ),
408
  'field_type' => 'textfield',
409
  'association' => 'meta',
410
  'weight' => 3,
412
  'tag' => 'fax',
413
  ),
414
  'email' => array(
415
+ 'label' => __( 'Business Contact Email', 'business-directory-plugin' ),
416
  'field_type' => 'textfield',
417
  'association' => 'meta',
418
  'weight' => 2,
421
  'tag' => 'email',
422
  ),
423
  'tags' => array(
424
+ 'label' => __( 'Business Tags', 'business-directory-plugin' ),
425
  'field_type' => 'textfield',
426
  'association' => 'tags',
427
  'weight' => 1,
429
  'tag' => 'tags',
430
  ),
431
  'address' => array(
432
+ 'label' => __( 'Business Address', 'business-directory-plugin' ),
433
  'field_type' => 'textarea',
434
  'association' => 'meta',
435
  'weight' => 1,
437
  'tag' => 'address',
438
  ),
439
  'zip' => array(
440
+ 'label' => __( 'ZIP Code', 'business-directory-plugin' ),
441
  'field_type' => 'textfield',
442
  'association' => 'meta',
443
  'weight' => 1,
567
  */
568
  public function get_validators() {
569
  $validators = array(
570
+ 'email' => _x( 'Email Validator', 'form-fields-api', 'business-directory-plugin' ),
571
+ 'url' => _x( 'URL Validator', 'form-fields-api', 'business-directory-plugin' ),
572
+ 'integer_number' => _x( 'Whole Number Validator', 'form-fields-api', 'business-directory-plugin' ),
573
+ 'decimal_number' => _x( 'Decimal Number Validator', 'form-fields-api', 'business-directory-plugin' ),
574
+ 'date_' => _x( 'Date Validator', 'form-fields-api', 'business-directory-plugin' ),
575
+ 'word_number' => _x( 'Word Count Validator', 'form-fields-api', 'business-directory-plugin' ),
576
  );
577
 
578
  return $validators;
579
  }
580
 
581
  public function validate_field( $field, $value, $validator, $args = array() ) {
582
+ $args['field-label'] = is_object( $field ) && $field ? apply_filters( 'wpbdp_render_field_label', $field->get_label(), $field ) : _x( 'Field', 'form-fields-api validation', 'business-directory-plugin' );
583
  $args['field'] = $field;
584
 
585
  return call_user_func( array( $this, $validator ), $value, $args );
600
 
601
  if ( $args['field'] && $args['field']->get_association() == 'category' ) {
602
  if ( is_array( $value ) && count( $value ) == 1 && ! $value[0] ) {
603
+ return WPBDP_ValidationError( sprintf( _x( '%s is required.', 'form-fields-api validation', 'business-directory-plugin' ), esc_attr( $args['field-label'] ) ) );
604
  }
605
  }
606
 
607
  if ( ( $args['field'] && $args['field']->is_empty_value( $value ) ) || ! $value || ( is_string( $value ) && ! $args['allow_whitespace'] && ! trim( $value ) ) ) {
608
+ return WPBDP_ValidationError( sprintf( _x( '%s is required.', 'form-fields-api validation', 'business-directory-plugin' ), esc_attr( $args['field-label'] ) ) );
609
  }
610
  }
611
 
621
  _x(
622
  '%s is badly formatted. Valid URL format required. Include http://',
623
  'form-fields-api validation',
624
+ 'business-directory-plugin'
625
  ),
626
  esc_attr( $args['field-label'] )
627
  )
640
  }
641
 
642
  if ( ! $valid ) {
643
+ return WPBDP_ValidationError( sprintf( _x( '%s is badly formatted. Valid Email format required.', 'form-fields-api validation', 'business-directory-plugin' ), esc_attr( $args['field-label'] ) ) );
644
  }
645
  }
646
 
647
  /* IntegerNumberValidator */
648
  private function integer_number( $value, $args = array() ) {
649
  if ( ! ctype_digit( $value ) ) {
650
+ return WPBDP_ValidationError( sprintf( _x( '%s must be a number. Decimal values are not allowed.', 'form-fields-api validation', 'business-directory-plugin' ), esc_attr( $args['field-label'] ) ) );
651
  }
652
  }
653
 
654
  /* DecimalNumberValidator */
655
  private function decimal_number( $value, $args = array() ) {
656
  if ( ! is_numeric( $value ) ) {
657
+ return WPBDP_ValidationError( sprintf( _x( '%s must be a number.', 'form-fields-api validation', 'business-directory-plugin' ), esc_attr( $args['field-label'] ) ) );
658
  }
659
  }
660
 
673
  $value_ = str_replace( array( '/', '.', '-' ), '', $value );
674
 
675
  if ( strlen( $format_ ) != strlen( $value_ ) ) {
676
+ return WPBDP_ValidationError( ( ! empty( $args['messages']['incorrect_format'] ) ) ? $args['messages']['incorrect_format'] : sprintf( _x( '%1$s must be in the format %2$s.', 'form-fields-api validation', 'business-directory-plugin' ), esc_attr( $args['field-label'] ), $format ) );
677
  }
678
 
679
  $d = '0';
711
  }
712
 
713
  if ( ! ctype_digit( $m ) || ! ctype_digit( $d ) || ! ctype_digit( $y ) || ! checkdate( $m, $d, $y ) ) {
714
+ return WPBDP_ValidationError( ( ! empty( $args['messages']['invalid'] ) ) ? $args['messages']['invalid'] : sprintf( _x( '%s must be a valid date.', 'form-fields-api validation', 'business-directory-plugin' ), esc_attr( $args['field-label'] ) ) );
715
  }
716
  }
717
 
718
  /* Image Caption Validator */
719
  private function caption_( $value, $args = array() ) {
720
  if ( $args['caption_required'] && empty( $value[1] ) ) {
721
+ return WPBDP_ValidationError( ! empty( $args['messages']['caption_required'] ) ? $args['messages']['caption_required'] : sprintf( _x( 'Caption for %s is required.', 'image field', 'business-directory-plugin' ), esc_attr( $args['field-label'] ) ) );
722
  }
723
  }
724
 
734
  $input_array = preg_split("/[\s,]+/", $no_html_text );
735
 
736
  if( $word_count < count( $input_array ) ) {
737
+ return WPBDP_ValidationError( sprintf( _x( '%s must have less than %d words.', 'form-fields-api validation', 'business-directory-plugin' ), esc_attr( $args['field-label'] ), $word_count ) );
738
  }
739
 
740
  }
753
  }
754
 
755
  if ( ! in_array( $value, $values ) ) {
756
+ return WPBDP_ValidationError( sprintf( _x( '%1$s is invalid. Value most be one of %2$s.', 'form-fields-api validation', 'business-directory-plugin' ), esc_attr( $args['field-label'] ), call_user_func( $formatter, $values ) ) );
757
  }
758
  }
759
 
includes/functions.php CHANGED
@@ -538,7 +538,7 @@ function wpbdp_currency_format( $amount, $args = array() ) {
538
  extract( $args );
539
 
540
  if ( ! $force_numeric && $amount == '0' ) {
541
- return __( 'Free', 'WPBDM' );
542
  }
543
 
544
  if ( ! $symbol )
@@ -688,6 +688,7 @@ function wpbdp_url( $pathorview = '/', $args = array() ) {
688
  case 'submit_listing':
689
  case 'all_listings':
690
  case 'view_listings':
 
691
  case 'search':
692
  case 'login':
693
  case 'request_access_keys':
@@ -1189,10 +1190,10 @@ function wpbdp_sortbar_get_field_options() {
1189
 
1190
  $options = apply_filters( 'wpbdp_sortbar_get_field_options', $options );
1191
 
1192
- $options['user_login'] = _x( 'User', 'admin settings', 'WPBDM' );
1193
- $options['user_registered'] = _x( 'User registration date', 'admin settings', 'WPBDM' );
1194
- $options['date'] = _x( 'Date posted', 'admin settings', 'WPBDM' );
1195
- $options['modified'] = _x( 'Date last modified', 'admin settings', 'WPBDM' );
1196
 
1197
  return $options;
1198
  }
@@ -1269,16 +1270,16 @@ function wpbdp_get_return_link() {
1269
 
1270
  if ( $referer_vars && isset( $referer_vars['wpbdp_view'] ) ) {
1271
  if ( 'search' === $referer_vars['wpbdp_view'] ) {
1272
- $msg = _x( 'Return to results', 'templates', 'WPBDM' );
1273
  }
1274
 
1275
  if ( 'all_listings' === $referer_vars['wpbdp_view'] ) {
1276
- $msg = _x( 'Go back', 'templates', 'WPBDM' );
1277
  }
1278
  }
1279
 
1280
  if ( strpos( $referer, wpbdp_get_option( 'permalinks-category-slug' ) ) || strpos( $referer, wpbdp_get_option( 'permalinks-tags-slug' ) ) ) {
1281
- $msg = _x( 'Go back', 'templates', 'WPBDM' );
1282
  }
1283
 
1284
  if ( $msg ) {
538
  extract( $args );
539
 
540
  if ( ! $force_numeric && $amount == '0' ) {
541
+ return __( 'Free', 'business-directory-plugin' );
542
  }
543
 
544
  if ( ! $symbol )
688
  case 'submit_listing':
689
  case 'all_listings':
690
  case 'view_listings':
691
+ case 'manage_listings':
692
  case 'search':
693
  case 'login':
694
  case 'request_access_keys':
1190
 
1191
  $options = apply_filters( 'wpbdp_sortbar_get_field_options', $options );
1192
 
1193
+ $options['user_login'] = _x( 'User', 'admin settings', 'business-directory-plugin' );
1194
+ $options['user_registered'] = _x( 'User registration date', 'admin settings', 'business-directory-plugin' );
1195
+ $options['date'] = _x( 'Date posted', 'admin settings', 'business-directory-plugin' );
1196
+ $options['modified'] = _x( 'Date last modified', 'admin settings', 'business-directory-plugin' );
1197
 
1198
  return $options;
1199
  }
1270
 
1271
  if ( $referer_vars && isset( $referer_vars['wpbdp_view'] ) ) {
1272
  if ( 'search' === $referer_vars['wpbdp_view'] ) {
1273
+ $msg = _x( 'Return to results', 'templates', 'business-directory-plugin' );
1274
  }
1275
 
1276
  if ( 'all_listings' === $referer_vars['wpbdp_view'] ) {
1277
+ $msg = _x( 'Go back', 'templates', 'business-directory-plugin' );
1278
  }
1279
  }
1280
 
1281
  if ( strpos( $referer, wpbdp_get_option( 'permalinks-category-slug' ) ) || strpos( $referer, wpbdp_get_option( 'permalinks-tags-slug' ) ) ) {
1282
+ $msg = _x( 'Go back', 'templates', 'business-directory-plugin' );
1283
  }
1284
 
1285
  if ( $msg ) {
includes/gateways/class-gateway-authorize-net.php CHANGED
@@ -17,7 +17,7 @@ class WPBDP__Gateway__Authorize_Net extends WPBDP__Payment_Gateway {
17
  }
18
 
19
  public function get_title() {
20
- return _x( 'Authorize.net', 'authorize-net', 'WPBDM' );
21
  }
22
 
23
  public function get_integration_method() {
@@ -35,8 +35,8 @@ class WPBDP__Gateway__Authorize_Net extends WPBDP__Payment_Gateway {
35
 
36
  public function get_settings() {
37
  return array(
38
- array( 'id' => 'login-id', 'name' => _x( 'Login ID', 'authorize-net', 'WPBDM' ), 'type' => 'text' ),
39
- array( 'id' => 'transaction-key', 'name' => _x( 'Transaction Key', 'authorize-net', 'WPBDM' ), 'type' => 'text' )
40
  );
41
  }
42
 
@@ -45,7 +45,7 @@ class WPBDP__Gateway__Authorize_Net extends WPBDP__Payment_Gateway {
45
  */
46
  private function get_authnet( $class = NULL ) {
47
  if ( ! class_exists( 'AuthorizeNet' . $class ) ) {
48
- require_once( WPBDP_PATH . 'vendors/anet_php_sdk/AuthorizeNet.php' );
49
  }
50
 
51
  if ( ! $class ) {
@@ -68,10 +68,10 @@ class WPBDP__Gateway__Authorize_Net extends WPBDP__Payment_Gateway {
68
  $errors = array();
69
 
70
  if ( ! $login_id )
71
- $errors[] = _x( 'Login ID is missing.', 'authorize-net', 'WPBDM' );
72
 
73
  if ( ! $trans_key )
74
- $errors[] = _x( 'Transaction Key is missing.', 'authorize-net', 'WPBDM' );
75
 
76
  return $errors;
77
  }
@@ -100,7 +100,7 @@ class WPBDP__Gateway__Authorize_Net extends WPBDP__Payment_Gateway {
100
  $payment->gateway_tx_id = $response->transaction_id;
101
 
102
  if ( $response->held ) {
103
- $error_msg = sprintf( _x( 'Payment is being held for review by the payment gateway. The following reason was given: "%s".', 'authorize-net', 'WPBDM' ),
104
  '(' . $response->response_reason_code . ') ' . rtrim( $response->response_reason_text, '.' ) );
105
  $payment->log( $error_msg );
106
  }
@@ -109,7 +109,7 @@ class WPBDP__Gateway__Authorize_Net extends WPBDP__Payment_Gateway {
109
 
110
  return array( 'result' => 'success' );
111
  } elseif ( $response->error ) {
112
- $error_msg = sprintf( _x( 'The payment gateway didn\'t accept the credit card or billing information. The following reason was given: "%s".', 'authorize-net', 'WPBDM' ),
113
  '(' . $response->response_reason_code . ') ' . rtrim( $response->response_reason_text, '.' ) );
114
  $payment->log( $error_msg );
115
  $payment->save();
@@ -118,7 +118,7 @@ class WPBDP__Gateway__Authorize_Net extends WPBDP__Payment_Gateway {
118
  }
119
 
120
  // Payment failed for other reasons.
121
- $error_msg = sprintf( _x( 'Payment was rejected. The following reason was given: "%s".', 'authorize-net', 'WPBDM' ),
122
  '(' . $response->response_reason_code . ') ' . rtrim( $response->response_reason_text, '.' ) );
123
  $payment->status = 'failed';
124
  $payment->log( $error_msg );
@@ -176,7 +176,7 @@ class WPBDP__Gateway__Authorize_Net extends WPBDP__Payment_Gateway {
176
  $response = $arb->createSubscription( $subscription );
177
 
178
  if ( ! $response->isOk() ) {
179
- $error_msg = sprintf( _x( 'Payment failed. Reason: %s', 'authorize-net', 'WPBDM' ), $response->getMessageText() );
180
  $payment->log( $error_msg );
181
 
182
  return array( 'result' => 'failure', 'error' => $error_msg );
@@ -201,7 +201,7 @@ class WPBDP__Gateway__Authorize_Net extends WPBDP__Payment_Gateway {
201
  $recurring_item = $payment->find_item( 'recurring_plan' );
202
 
203
  $name = '';
204
- $name .= $listing->get_title() ? $listing->get_title() : sprintf( _x( 'Listing #%d', 'authorize-net', 'WPBDM' ), $listing->get_id() );
205
  $name .= ' - ';
206
  $name .= $recurring_item['description'];
207
 
@@ -353,11 +353,11 @@ class WPBDP__Gateway__Authorize_Net extends WPBDP__Payment_Gateway {
353
  $response = $arb->cancelSubscription( $susc_id );
354
 
355
  if ( ! $response->isOk() ) {
356
- $msg = __( 'An error occurred while trying to cancel your subscription. Please try again later or contact the site administrator.', 'WPBDM' );
357
 
358
  if ( current_user_can( 'administrator' ) ) {
359
  $msg = sprintf(
360
- __( 'An error occurred while trying to cancel Authorize.net subscription with ID %s. You can try again later or cancel subscription from gateway dashboard.', 'WPBDM' ),
361
  $susc_id
362
  );
363
  }
@@ -369,4 +369,4 @@ class WPBDP__Gateway__Authorize_Net extends WPBDP__Payment_Gateway {
369
  $subscription->cancel();
370
  }
371
 
372
- }
17
  }
18
 
19
  public function get_title() {
20
+ return _x( 'Authorize.net', 'authorize-net', 'business-directory-plugin' );
21
  }
22
 
23
  public function get_integration_method() {
35
 
36
  public function get_settings() {
37
  return array(
38
+ array( 'id' => 'login-id', 'name' => _x( 'Login ID', 'authorize-net', 'business-directory-plugin' ), 'type' => 'text' ),
39
+ array( 'id' => 'transaction-key', 'name' => _x( 'Transaction Key', 'authorize-net', 'business-directory-plugin' ), 'type' => 'text' )
40
  );
41
  }
42
 
45
  */
46
  private function get_authnet( $class = NULL ) {
47
  if ( ! class_exists( 'AuthorizeNet' . $class ) ) {
48
+ require_once WPBDP_PATH . 'vendors/anet_php_sdk/AuthorizeNet.php';
49
  }
50
 
51
  if ( ! $class ) {
68
  $errors = array();
69
 
70
  if ( ! $login_id )
71
+ $errors[] = _x( 'Login ID is missing.', 'authorize-net', 'business-directory-plugin' );
72
 
73
  if ( ! $trans_key )
74
+ $errors[] = _x( 'Transaction Key is missing.', 'authorize-net', 'business-directory-plugin' );
75
 
76
  return $errors;
77
  }
100
  $payment->gateway_tx_id = $response->transaction_id;
101
 
102
  if ( $response->held ) {
103
+ $error_msg = sprintf( _x( 'Payment is being held for review by the payment gateway. The following reason was given: "%s".', 'authorize-net', 'business-directory-plugin' ),
104
  '(' . $response->response_reason_code . ') ' . rtrim( $response->response_reason_text, '.' ) );
105
  $payment->log( $error_msg );
106
  }
109
 
110
  return array( 'result' => 'success' );
111
  } elseif ( $response->error ) {
112
+ $error_msg = sprintf( _x( 'The payment gateway didn\'t accept the credit card or billing information. The following reason was given: "%s".', 'authorize-net', 'business-directory-plugin' ),
113
  '(' . $response->response_reason_code . ') ' . rtrim( $response->response_reason_text, '.' ) );
114
  $payment->log( $error_msg );
115
  $payment->save();
118
  }
119
 
120
  // Payment failed for other reasons.
121
+ $error_msg = sprintf( _x( 'Payment was rejected. The following reason was given: "%s".', 'authorize-net', 'business-directory-plugin' ),
122
  '(' . $response->response_reason_code . ') ' . rtrim( $response->response_reason_text, '.' ) );
123
  $payment->status = 'failed';
124
  $payment->log( $error_msg );
176
  $response = $arb->createSubscription( $subscription );
177
 
178
  if ( ! $response->isOk() ) {
179
+ $error_msg = sprintf( _x( 'Payment failed. Reason: %s', 'authorize-net', 'business-directory-plugin' ), $response->getMessageText() );
180
  $payment->log( $error_msg );
181
 
182
  return array( 'result' => 'failure', 'error' => $error_msg );
201
  $recurring_item = $payment->find_item( 'recurring_plan' );
202
 
203
  $name = '';
204
+ $name .= $listing->get_title() ? $listing->get_title() : sprintf( _x( 'Listing #%d', 'authorize-net', 'business-directory-plugin' ), $listing->get_id() );
205
  $name .= ' - ';
206
  $name .= $recurring_item['description'];
207
 
353
  $response = $arb->cancelSubscription( $susc_id );
354
 
355
  if ( ! $response->isOk() ) {
356
+ $msg = __( 'An error occurred while trying to cancel your subscription. Please try again later or contact the site administrator.', 'business-directory-plugin' );
357
 
358
  if ( current_user_can( 'administrator' ) ) {
359
  $msg = sprintf(
360
+ __( 'An error occurred while trying to cancel Authorize.net subscription with ID %s. You can try again later or cancel subscription from gateway dashboard.', 'business-directory-plugin' ),
361
  $susc_id
362
  );
363
  }
369
  $subscription->cancel();
370
  }
371
 
372
+ }
includes/helpers/class-access-keys-sender.php CHANGED
@@ -17,7 +17,7 @@ class WPBDP__Access_Keys_Sender {
17
  */
18
  public function send_access_keys( $email_address ) {
19
  if ( ! $email_address || ! is_email( $email_address ) ) {
20
- $message = _x( '<email-address> is not a valid e-mail address.', 'access keys sender', 'WPBDM' );
21
  $message = str_replace( '<email-address>', esc_html( $email_address ), $message );
22
 
23
  throw new Exception( $message );
@@ -26,7 +26,7 @@ class WPBDP__Access_Keys_Sender {
26
  $listings = $this->find_listings_by_email_address( $email_address );
27
 
28
  if ( empty( $listings ) ) {
29
- $message = _x( 'There are no listings associated to e-mail address <email-address>.', 'access keys sender', 'WPBDM' );
30
  $message = str_replace( '<email-address>', esc_html( $email_address ), $message );
31
 
32
  throw new Exception( $message );
@@ -43,11 +43,11 @@ class WPBDP__Access_Keys_Sender {
43
  )
44
  );
45
 
46
- $message->subject = sprintf( '[%s] %s', get_bloginfo( 'name' ), _x( 'Listing Access Keys', 'access keys sender', 'WPBDM' ) );
47
  $message->to = $email_address;
48
 
49
  if ( ! $message->send() ) {
50
- $message = _x( 'An error occurred while sending the access keys for e-mail address <email-address>. Please try again.', 'access keys sender', 'WPBDM' );
51
  $message = str_replace( '<email-address>', esc_html( $email_address ), $message );
52
 
53
  throw new Exception( $message );
17
  */
18
  public function send_access_keys( $email_address ) {
19
  if ( ! $email_address || ! is_email( $email_address ) ) {
20
+ $message = _x( '<email-address> is not a valid e-mail address.', 'access keys sender', 'business-directory-plugin' );
21
  $message = str_replace( '<email-address>', esc_html( $email_address ), $message );
22
 
23
  throw new Exception( $message );
26
  $listings = $this->find_listings_by_email_address( $email_address );
27
 
28
  if ( empty( $listings ) ) {
29
+ $message = _x( 'There are no listings associated to e-mail address <email-address>.', 'access keys sender', 'business-directory-plugin' );
30
  $message = str_replace( '<email-address>', esc_html( $email_address ), $message );
31
 
32
  throw new Exception( $message );
43
  )
44
  );
45
 
46
+ $message->subject = sprintf( '[%s] %s', get_bloginfo( 'name' ), _x( 'Listing Access Keys', 'access keys sender', 'business-directory-plugin' ) );
47
  $message->to = $email_address;
48
 
49
  if ( ! $message->send() ) {
50
+ $message = _x( 'An error occurred while sending the access keys for e-mail address <email-address>. Please try again.', 'access keys sender', 'business-directory-plugin' );
51
  $message = str_replace( '<email-address>', esc_html( $email_address ), $message );
52
 
53
  throw new Exception( $message );
includes/helpers/class-category-form-input-walker.php CHANGED
@@ -19,25 +19,27 @@ class WPBDP_CategoryFormInputWalker extends Walker {
19
  switch ( $this->input_type ) {
20
  case 'checkbox':
21
  $output .= '<div class="wpbdp-form-field-checkbox-item wpbdmcheckboxclass">';
22
- $output .= sprintf( '<input type="checkbox" class="%s" name="%s" value="%s" %s style="margin-left: %dpx;" />%s',
23
  $this->field->is_required() ? 'required' : '',
24
  'listingfields[' . $this->field->get_id() . '][]',
25
  $category->term_id,
26
  in_array( $category->term_id, is_array( $this->selected ) ? $this->selected : array( $this->selected ) ) ? 'checked="checked"' : '',
27
  $depth * 10,
28
- esc_attr( $category->name )
 
29
  );
30
  $output .= '</div>';
31
  break;
32
  case 'radio':
33
  default:
34
- $output .= sprintf( '<div class="wpbdm-form-field-radio-item"><input type="radio" name="%s" class="%s" value="%s" %s style="margin-left: %dpx;"> %s</div>',
35
  'listingfields[' . $this->field->get_id() . ']',
36
  $this->field->is_required() ? 'inradio required' : 'inradio',
37
  $category->term_id,
38
  $this->selected == $category->term_id ? 'checked="checked"' : '',
39
  $depth * 10,
40
- esc_attr( $category->name )
 
41
  );
42
  break;
43
  }
19
  switch ( $this->input_type ) {
20
  case 'checkbox':
21
  $output .= '<div class="wpbdp-form-field-checkbox-item wpbdmcheckboxclass">';
22
+ $output .= sprintf( '<label for="wpbdp-field-%7$d-%6$s"><input id="wpbdp-field-%7$d-%6$s" type="checkbox" class="%s" name="%s" value="%s" %s style="margin-left: %dpx;" /> %s</label>',
23
  $this->field->is_required() ? 'required' : '',
24
  'listingfields[' . $this->field->get_id() . '][]',
25
  $category->term_id,
26
  in_array( $category->term_id, is_array( $this->selected ) ? $this->selected : array( $this->selected ) ) ? 'checked="checked"' : '',
27
  $depth * 10,
28
+ esc_attr( $category->name ),
29
+ $this->field->get_id()
30
  );
31
  $output .= '</div>';
32
  break;
33
  case 'radio':
34
  default:
35
+ $output .= sprintf( '<div class="wpbdm-form-field-radio-item"><label for="wpbdp-field-%6$d-%5$s"><input id="wpbdp-field-%6$d-%5$s" type="radio" name="%s" class="%s" value="%s" %s style="margin-left: %dpx;"> %s</label></div>',
36
  'listingfields[' . $this->field->get_id() . ']',
37
  $this->field->is_required() ? 'inradio required' : 'inradio',
38
  $category->term_id,
39
  $this->selected == $category->term_id ? 'checked="checked"' : '',
40
  $depth * 10,
41
+ esc_attr( $category->name ),
42
+ $this->field->get_id()
43
  );
44
  break;
45
  }
includes/helpers/class-fs.php CHANGED
@@ -109,7 +109,7 @@ final class WPBDP_FS {
109
 
110
  if ( ! wp_is_writable( $destdir ) ) {
111
  return new WP_Error( 'dest-not-writable',
112
- sprintf( _x( 'Destination dir "%s" is not writable.', 'fs helper', 'WPBDM' ), $destdir ) );
113
  }
114
 
115
  $normalized = basename( basename( strtolower( $zipfile ), '.zip' ), '.tmp' );
109
 
110
  if ( ! wp_is_writable( $destdir ) ) {
111
  return new WP_Error( 'dest-not-writable',
112
+ sprintf( _x( 'Destination dir "%s" is not writable.', 'fs helper', 'business-directory-plugin' ), $destdir ) );
113
  }
114
 
115
  $normalized = basename( basename( strtolower( $zipfile ), '.zip' ), '.tmp' );
includes/helpers/class-listing-search.php CHANGED
@@ -93,7 +93,7 @@ class WPBDP__Listing_Search {
93
  $this->tree = self::tree_simplify( $this->tree );
94
 
95
  // Prepare query template.
96
- $this->query_template = $this->_traverse_tree( $this->tree );
97
 
98
  // Build query.
99
  $query_pieces = array(
@@ -114,7 +114,7 @@ class WPBDP__Listing_Search {
114
 
115
  if ( ! empty( $res['where'] ) && $fields_count < 6 ) {
116
  $query_pieces['where'] = str_replace( '%' . $key . '%', $res['where'], $query_pieces['where'] );
117
- $fields_count += $this->is_quick_search ? 0 : 1;
118
  } else {
119
  // This prevents incorrect queries from being created.
120
  $query_pieces['where'] = str_replace( 'AND %' . $key . '%', '', $query_pieces['where'] );
@@ -130,7 +130,7 @@ class WPBDP__Listing_Search {
130
  }
131
 
132
  if ( ! $this->is_quick_search && $fields_count < 6 ) {
133
- unset( $this->parts[$key] );
134
  $this->tree = $this->tree_remove_field( $this->tree, $field );
135
  }
136
  }
@@ -238,7 +238,7 @@ class WPBDP__Listing_Search {
238
  $res = array();
239
 
240
  // Quick search.
241
- if ( ! empty( $request['kw'] ) ) {
242
  if ( wpbdp_get_option( 'quick-search-enable-performance-tricks' ) ) {
243
  $request['kw'] = array( trim( $request['kw'] ) );
244
  } else {
@@ -376,4 +376,12 @@ class WPBDP__Listing_Search {
376
  public static function tree_simplify( $tree ) {
377
  return $tree;
378
  }
 
 
 
 
 
 
 
 
379
  }
93
  $this->tree = self::tree_simplify( $this->tree );
94
 
95
  // Prepare query template.
96
+ $this->query_template = $this->get_query_template();
97
 
98
  // Build query.
99
  $query_pieces = array(
114
 
115
  if ( ! empty( $res['where'] ) && $fields_count < 6 ) {
116
  $query_pieces['where'] = str_replace( '%' . $key . '%', $res['where'], $query_pieces['where'] );
117
+ $fields_count += $this->is_quick_search ? 0 : 1;
118
  } else {
119
  // This prevents incorrect queries from being created.
120
  $query_pieces['where'] = str_replace( 'AND %' . $key . '%', '', $query_pieces['where'] );
130
  }
131
 
132
  if ( ! $this->is_quick_search && $fields_count < 6 ) {
133
+ unset( $this->parts[ $key ] );
134
  $this->tree = $this->tree_remove_field( $this->tree, $field );
135
  }
136
  }
238
  $res = array();
239
 
240
  // Quick search.
241
+ if ( isset( $request['kw'] ) ) {
242
  if ( wpbdp_get_option( 'quick-search-enable-performance-tricks' ) ) {
243
  $request['kw'] = array( trim( $request['kw'] ) );
244
  } else {
376
  public static function tree_simplify( $tree ) {
377
  return $tree;
378
  }
379
+
380
+ public function get_query_template() {
381
+ if ( $this->is_quick_search && empty( $this->original_request['kw'] ) ) {
382
+ return '( 1=1 )';
383
+ }
384
+
385
+ return $this->_traverse_tree( $this->tree );
386
+ }
387
  }
includes/helpers/listing_flagging.php CHANGED
@@ -39,7 +39,7 @@ class WPBDP__Listing_Flagging {
39
 
40
  public static function get_flagging_meta( $listing_id, $key = 'all' ) {
41
  if ( ! $listing_id ) {
42
- return new WP_Error( 'missing_data', _x( 'Listing ID is required to save a report', 'flag listing', 'WPBDM' ) );
43
  }
44
 
45
  $flagging_data = get_post_meta( $listing_id, '_wpbdp_flagged_data', true );
@@ -62,7 +62,7 @@ class WPBDP__Listing_Flagging {
62
 
63
  public static function add_flagging( $listing_id, $data ) {
64
  if ( ! $listing_id ) {
65
- return new WP_Error( 'missing_data', _x( 'Listing ID is required to save a report', 'flag listing', 'WPBDM' ) );
66
  }
67
 
68
  $defaults = array( 'user_id' => 0, 'ip' => 0, 'reason' => '', 'comments' => '' );
@@ -70,18 +70,18 @@ class WPBDP__Listing_Flagging {
70
  $data = array_merge( $defaults, $data );
71
 
72
  if ( ! $data[ 'user_id' ] && ! $data[ 'ip' ] ) {
73
- return new WP_Error( 'missing_data', _x( 'User ID or IP address is required to save a report', 'flag listing', 'WPBDM' ) );
74
  }
75
 
76
  $flagging_options = self::get_flagging_options();
77
 
78
  if ( ! empty( $flagging_options ) ) {
79
  if ( empty( $data['reason'] ) ) {
80
- return new WP_Error( 'missing_data', _x( 'Report reason is required to save a report', 'flag listing', 'WPBDM' ) );
81
  }
82
  } else {
83
  if ( empty( $data['comments'] ) ) {
84
- return new WP_Error( 'missing_data', _x( 'Report comment is required to save a report', 'flag listing', 'WPBDM' ) );
85
  }
86
  }
87
 
39
 
40
  public static function get_flagging_meta( $listing_id, $key = 'all' ) {
41
  if ( ! $listing_id ) {
42
+ return new WP_Error( 'missing_data', _x( 'Listing ID is required to save a report', 'flag listing', 'business-directory-plugin' ) );
43
  }
44
 
45
  $flagging_data = get_post_meta( $listing_id, '_wpbdp_flagged_data', true );
62
 
63
  public static function add_flagging( $listing_id, $data ) {
64
  if ( ! $listing_id ) {
65
+ return new WP_Error( 'missing_data', _x( 'Listing ID is required to save a report', 'flag listing', 'business-directory-plugin' ) );
66
  }
67
 
68
  $defaults = array( 'user_id' => 0, 'ip' => 0, 'reason' => '', 'comments' => '' );
70
  $data = array_merge( $defaults, $data );
71
 
72
  if ( ! $data[ 'user_id' ] && ! $data[ 'ip' ] ) {
73
+ return new WP_Error( 'missing_data', _x( 'User ID or IP address is required to save a report', 'flag listing', 'business-directory-plugin' ) );
74
  }
75
 
76
  $flagging_options = self::get_flagging_options();
77
 
78
  if ( ! empty( $flagging_options ) ) {
79
  if ( empty( $data['reason'] ) ) {
80
+ return new WP_Error( 'missing_data', _x( 'Report reason is required to save a report', 'flag listing', 'business-directory-plugin' ) );
81
  }
82
  } else {
83
  if ( empty( $data['comments'] ) ) {
84
+ return new WP_Error( 'missing_data', _x( 'Report comment is required to save a report', 'flag listing', 'business-directory-plugin' ) );
85
  }
86
  }
87
 
includes/installer.php CHANGED
@@ -68,15 +68,16 @@ class WPBDP_Installer {
68
  global $wpbdp;
69
 
70
  // Create default category.
71
- wp_insert_term( _x( 'General', 'default category name', 'WPBDM' ), WPBDP_CATEGORY_TAX );
72
 
73
  $wpbdp->formfields->create_default_fields();
 
74
 
75
  add_option( 'wpbdp-show-drip-pointer', 1 );
76
  add_option( 'wpbdp-show-tracking-pointer', 1 );
77
 
78
  // Create default paid fee.
79
- $fee = new WPBDP__Fee_Plan( array( 'label' => _x( 'Default Fee', 'installer', 'WPBDM' ),
80
  'amount' => 1.0,
81
  'days' => 365,
82
  'images' => 1,
68
  global $wpbdp;
69
 
70
  // Create default category.
71
+ wp_insert_term( _x( 'General', 'default category name', 'business-directory-plugin' ), WPBDP_CATEGORY_TAX );
72
 
73
  $wpbdp->formfields->create_default_fields();
74
+ $wpbdp->settings->set_new_install_settings();
75
 
76
  add_option( 'wpbdp-show-drip-pointer', 1 );
77
  add_option( 'wpbdp-show-tracking-pointer', 1 );
78
 
79
  // Create default paid fee.
80
+ $fee = new WPBDP__Fee_Plan( array( 'label' => _x( 'Default Fee', 'installer', 'business-directory-plugin' ),
81
  'amount' => 1.0,
82
  'days' => 365,
83
  'images' => 1,
includes/licensing.php CHANGED
@@ -92,16 +92,16 @@ class WPBDP_Licensing {
92
  return;
93
  }
94
 
95
- wpbdp_register_settings_group( 'licenses', __( 'Licenses', 'WPBDM' ) );
96
  wpbdp_register_settings_group(
97
- 'licenses/main', __( 'Licenses', 'WPBDM' ), 'licenses', array(
98
  'desc' => $this->get_settings_section_description(),
99
  'custom_form' => true,
100
  )
101
  );
102
 
103
  if ( $modules ) {
104
- wpbdp_register_settings_group( 'licenses/modules', _x( 'Premium Modules', 'settings', 'WPBDM' ), 'licenses/main' );
105
 
106
  foreach ( $modules as $module ) {
107
  wpbdp_register_setting(
@@ -119,7 +119,7 @@ class WPBDP_Licensing {
119
  }
120
 
121
  if ( $themes ) {
122
- wpbdp_register_settings_group( 'licenses/themes', _x( 'Themes', 'settings', 'WPBDM' ), 'licenses/main' );
123
 
124
  foreach ( $themes as $theme ) {
125
  wpbdp_register_setting(
@@ -144,7 +144,7 @@ class WPBDP_Licensing {
144
  return '';
145
  }
146
 
147
- $description = _x( 'The IP address of your server is <ip-address>. Please make sure to include that information if you need to contact support about problems trying to activate your licenses.', 'settings', 'WPBDM' );
148
  $description = str_replace( '<ip-address>', '<strong>' . $ip_address . '</strong>', $description );
149
 
150
  return $description;
@@ -170,9 +170,9 @@ class WPBDP_Licensing {
170
  $html .= '<div class="wpbdp-license-key-activation-ui wpbdp-license-status-' . $license_status . '" data-licensing="' . esc_attr( $licensing_info_attr ) . '">';
171
  $html .= '<span class="wpbdp-license-warning-icon dashicons dashicons-warning"></span>';
172
  $html .= '<span class="wpbdp-license-ok-icon dashicons dashicons-yes"></span>';
173
- $html .= '<input type="text" id="' . $setting['id'] . '" class="wpbdp-license-key-input" name="wpbdp_settings[' . $setting['id'] . ']" value="' . esc_attr( $value ) . '" ' . ( 'valid' == $license_status ? 'readonly="readonly"' : '' ) . ' placeholder="' . _x( 'Enter License Key here', 'admin settings', 'WPBDM' ) . '"/>';
174
- $html .= '<input type="button" value="' . _x( 'Activate', 'settings', 'WPBDM' ) . '" data-working-msg="' . esc_attr( _x( 'Please wait...', 'settings', 'WPBDM' ) ) . '" class="button button-primary wpbdp-license-key-activate-btn" />';
175
- $html .= '<input type="button" value="' . _x( 'Deactivate', 'settings', 'WPBDM' ) . '" data-working-msg="' . esc_attr( _x( 'Please wait...', 'settings', 'WPBDM' ) ) . '" class="button wpbdp-license-key-deactivate-btn" />';
176
  $html .= '<div class="wpbdp-license-key-activation-status-msg wpbdp-hidden"></div>';
177
  $html .= '</div>';
178
 
@@ -217,15 +217,6 @@ class WPBDP_Licensing {
217
  if ( ! current_user_can( 'administrator' ) || ! $this->items ) {
218
  return;
219
  }
220
-
221
- add_submenu_page(
222
- 'wpbdp_admin',
223
- _x( 'Licenses', 'settings', 'WPBDM' ),
224
- _x( 'Licenses', 'settings', 'WPBDM' ),
225
- 'administrator',
226
- 'wpbdp-licenses',
227
- '__return_false'
228
- );
229
  global $submenu;
230
 
231
  foreach ( $submenu as $menu_id => &$m ) {
@@ -294,13 +285,13 @@ class WPBDP_Licensing {
294
 
295
  private function activate_license( $item_type, $item_id ) {
296
  if ( ! in_array( $item_id, array_keys( $this->items ), true ) ) {
297
- return new WP_Error( 'invalid-module', _x( 'Invalid item ID', 'licensing', 'WPBDM' ), $module );
298
  }
299
 
300
  $key = wpbdp_get_option( 'license-key-' . $item_type . '-' . $item_id );
301
 
302
  if ( ! $key ) {
303
- return new WP_Error( 'no-license-provided', _x( 'No license key provided', 'licensing', 'WPBDM' ) );
304
  }
305
 
306
  $request = array(
@@ -324,11 +315,11 @@ class WPBDP_Licensing {
324
  update_option( 'wpbdp_licenses', $this->licenses );
325
 
326
  if ( 'revoked' === $license_data->error ) {
327
- $message = '<strong>' . _x( 'The license key was revoked.', 'licensing', 'WPBDM' ) . '</strong>';
328
  $message .= '<br/><br/>';
329
- $message .= _x( 'If you think this is a mistake, please contact <support-link>Business Directory support</support-link> and let them know your license is being reported as revoked by the licensing software.', 'licensing', 'WPBDM' );
330
  $message .= '<br/><br/>';
331
- $message .= _x( 'Please include the email address you used to purchase <module-name> with your report.', 'licensing', 'WPBDM' );
332
 
333
  $message = str_replace( '<support-link>', '<a href="https://businessdirectoryplugin.com/contact">', $message );
334
  $message = str_replace( '</support-link>', '</a>', $message );
@@ -339,7 +330,7 @@ class WPBDP_Licensing {
339
 
340
  return new WP_Error( 'revoked-license', $message );
341
  } else {
342
- $message = _x( 'License key is invalid', 'licensing', 'WPBDM' );
343
 
344
  return new WP_Error( 'invalid-license', $message );
345
  }
@@ -356,7 +347,7 @@ class WPBDP_Licensing {
356
 
357
  private function deactivate_license( $item_type, $item_id ) {
358
  if ( ! in_array( $item_id, array_keys( $this->items ), true ) ) {
359
- return new WP_Error( 'invalid-module', _x( 'Invalid module ID', 'licensing', 'WPBDM' ), $module );
360
  }
361
 
362
  // Remove licensing information.
@@ -382,11 +373,11 @@ class WPBDP_Licensing {
382
  $license_data = json_decode( wp_remote_retrieve_body( $response ) );
383
 
384
  if ( ! is_object( $license_data ) || ! $license_data || ! isset( $license_data->license ) ) {
385
- return new WP_Error( 'invalid-license', _x( 'License key is invalid', 'licensing', 'WPBDM' ) );
386
  }
387
 
388
  if ( 'deactivated' !== $license_data->license ) {
389
- return new WP_Error( 'deactivation-failed', _x( 'Deactivation failed', 'licensing', 'WPBDM' ) );
390
  }
391
 
392
  return true;
@@ -394,13 +385,13 @@ class WPBDP_Licensing {
394
 
395
  private function handle_failed_license_request( $response ) {
396
  if ( ! function_exists( 'curl_init' ) ) {
397
- $message = '<strong>' . _x( "It was not possible to establish a connection with Business Directory's server. cURL was not found in your system", 'licensing', 'WPBDM' ) . '</strong>';
398
  $message .= '<br/><br/>';
399
- $message .= _x( 'To ensure the security of our systems and adhere to industry best practices, we require that your server uses a recent version of cURL and a version of OpenSSL that supports TLSv1.2 (minimum version with support is OpenSSL 1.0.1c).', 'licensing', 'WPBDM' );
400
  $message .= '<br/><br/>';
401
- $message .= _x( 'Upgrading your system will not only allow you to communicate with Business Directory servers but also help you prepare your website to interact with services using the latest security standards.', 'licensing', 'WPBDM' );
402
  $message .= '<br/><br/>';
403
- $message .= _x( 'Please contact your hosting provider and ask them to upgrade your system. Include this message if necessary', 'licensing', 'WPBDM' );
404
  return new WP_Error( 'request-failed', $message );
405
  }
406
  $ch = curl_init();
@@ -416,13 +407,13 @@ class WPBDP_Licensing {
416
  curl_close( $ch );
417
 
418
  if ( in_array( $error_number, array( 7 ), true ) ) {
419
- $message = '<strong>' . _x( "It was not possible to establish a connection with Business Directory's server. The connection failed with the following error:", 'licensing', 'WPBDM' ) . '</strong>';
420
  $message .= '<br/><br/>';
421
  $message .= '<code>curl: (' . $error_number . ') ' . $error_message . '</code>';
422
  $message .= '<br/><br/>';
423
- $message .= _x( 'It looks like your server is not authorized to make requests to Business Directory servers. Please contact <support-link>Business Directory support</support-link> and ask them to add your IP address <ip-address> to the whitelist.', 'licensing', 'WPBDM' );
424
  $message .= '<br/><br/>';
425
- $message .= _x( 'Include this error message with your report.', 'licensing', 'WPBDM' );
426
 
427
  $message = str_replace( '<support-link>', '<a href="https://businessdirectoryplugin.com/contact">', $message );
428
  $message = str_replace( '</support-link>', '</a>', $message );
@@ -432,23 +423,23 @@ class WPBDP_Licensing {
432
 
433
  return new WP_Error( 'connection-refused', $message );
434
  } elseif ( in_array( $error_number, array( 35 ), true ) ) {
435
- $message = '<strong>' . _x( "It was not possible to establish a connection with Business Directory's server. A problem occurred in the SSL/TSL handshake:", 'licensing', 'WPBDM' ) . '</strong>';
436
 
437
  $message .= '<br/><br/>';
438
  $message .= '<code>curl: (' . $error_number . ') ' . $error_message . '</code>';
439
  $message .= '<br/><br/>';
440
- $message .= _x( 'To ensure the security of our systems and adhere to industry best practices, we require that your server uses a recent version of cURL and a version of OpenSSL that supports TLSv1.2 (minimum version with support is OpenSSL 1.0.1c).', 'licensing', 'WPBDM' );
441
  $message .= '<br/><br/>';
442
- $message .= _x( 'Upgrading your system will not only allow you to communicate with Business Directory servers but also help you prepare your website to interact with services using the latest security standards.', 'licensing', 'WPBDM' );
443
  $message .= '<br/><br/>';
444
- $message .= _x( 'Please contact your hosting provider and ask them to upgrade your system. Include this message if necessary.', 'licensing', 'WPBDM' );
445
 
446
  // The javascript handler already adds a dot at the end.
447
  $message = rtrim( $message, '.' );
448
 
449
  return new WP_Error( 'request-failed', $message );
450
  } else {
451
- return new WP_Error( 'request-failed', _x( 'Could not contact licensing server', 'licensing', 'WPBDM' ) );
452
  }
453
  }
454
 
@@ -470,11 +461,11 @@ class WPBDP_Licensing {
470
  $response_message = wp_remote_retrieve_response_message( $response );
471
 
472
  if ( 403 == $response_code ) {
473
- $message = '<strong>' . _x( 'The server returned a 403 Forbidden error.', 'licensing', 'WPBDM' ) . '</strong>';
474
  $message .= '<br/><br/>';
475
- $message .= _x( 'It looks like your server is not authorized to make requests to Business Directory servers. Please contact <support-link>Business Directory support</support-link> and ask them to add your IP address <ip-address> to the whitelist.', 'licensing', 'WPBDM' );
476
  $message .= '<br/><br/>';
477
- $message .= _x( 'Include this error message with your report.', 'licensing', 'WPBDM' );
478
 
479
  $message = str_replace( '<support-link>', '<a href="https://businessdirectoryplugin.com/contact">', $message );
480
  $message = str_replace( '</support-link>', '</a>', $message );
@@ -538,7 +529,7 @@ class WPBDP_Licensing {
538
  }
539
 
540
  echo '<div id="wpbdp-licensing-issues-warning" class="error"><p>';
541
- echo '<b>' . _x( 'Business Directory - Please verify your license keys', 'licensing', 'WPBDM' ) . '</b><br />';
542
 
543
  echo '<ul>';
544
  if ( $modules ) {
@@ -548,7 +539,7 @@ class WPBDP_Licensing {
548
  }
549
 
550
  echo '<li>';
551
- printf( _x( 'The following premium modules will not work until a valid license key is provided: %s.', 'licensing', 'WPBDM' ), $modules_str );
552
  echo '</li>';
553
  }
554
 
@@ -559,7 +550,7 @@ class WPBDP_Licensing {
559
  }
560
 
561
  echo '<li>';
562
- printf( _x( 'You need to activate the license keys for the following themes before they can be used: %s.', 'licensing', 'WPBDM' ), $themes_str );
563
  echo '</li>';
564
  }
565
 
@@ -567,7 +558,7 @@ class WPBDP_Licensing {
567
 
568
  echo '<p>';
569
  echo '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp_settings&tab=licenses' ) ) . '" class="button button-primary">';
570
- echo _x( 'Review my license keys', 'licensing', 'WPBDM' );
571
  echo '</a>';
572
  echo '</p>';
573
 
@@ -594,7 +585,7 @@ class WPBDP_Licensing {
594
 
595
  echo '<div id="wpbdp-licensing-issues-warning" class="wpbdp-notice notice notice-error is-dismissible" data-dismissible-id="' . esc_attr( $notice_id ) . '" data-nonce="' . esc_attr( $nonce ) . '">';
596
  echo '<p>';
597
- echo '<b>' . _x( 'Business Directory - License key expired', 'licensing', 'WPBDM' ) . '</b><br />';
598
 
599
  echo '<ul>';
600
  if ( $modules ) {
@@ -604,7 +595,7 @@ class WPBDP_Licensing {
604
  }
605
 
606
  echo '<li>';
607
- printf( _x( 'The license key for the following modules has expired: %s. The modules will continue to work but you will not receive any more updates until the license is renewed.', 'licensing', 'WPBDM' ), $modules_str );
608
  echo '</li>';
609
  }
610
 
@@ -615,7 +606,7 @@ class WPBDP_Licensing {
615
  }
616
 
617
  echo '<li>';
618
- printf( _x( 'The license key for the following themes has expired: %s. The themes will continue to work but you will not receive any more updates until the license is renewed.', 'licensing', 'WPBDM' ), $themes_str );
619
  echo '</li>';
620
  }
621
 
@@ -623,7 +614,7 @@ class WPBDP_Licensing {
623
 
624
  echo '<p>';
625
  echo '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp_settings&tab=licenses' ) ) . '" class="button button-primary">';
626
- echo _x( 'Review my license keys', 'licensing', 'WPBDM' );
627
  echo '</a>';
628
  echo '</p>';
629
 
@@ -715,7 +706,7 @@ class WPBDP_Licensing {
715
  }
716
 
717
  if ( ! $key ) {
718
- $response->send_error( _x( 'Please enter a license key.', 'licensing', 'WPBDM' ) );
719
  }
720
 
721
  // Store the new license key. This clears stored information about the license.
@@ -724,9 +715,9 @@ class WPBDP_Licensing {
724
  $result = $this->activate_license( $item_type, $item_id );
725
 
726
  if ( is_wp_error( $result ) ) {
727
- $response->send_error( sprintf( _x( 'Could not activate license: %s.', 'licensing', 'WPBDM' ), $result->get_error_message() ) );
728
  } else {
729
- $response->set_message( _x( 'License activated', 'licensing', 'WPBDM' ) );
730
  $response->send();
731
  }
732
  }
@@ -746,9 +737,9 @@ class WPBDP_Licensing {
746
  $response = new WPBDP_Ajax_Response();
747
 
748
  if ( is_wp_error( $result ) ) {
749
- $response->send_error( sprintf( _x( 'Could not deactivate license: %s.', 'licensing', 'WPBDM' ), $result->get_error_message() ) );
750
  } else {
751
- $response->set_message( _x( 'License deactivated', 'licensing', 'WPBDM' ) );
752
  $response->send();
753
  }
754
  }
@@ -951,7 +942,7 @@ function wpbdp_licensing_register_module( $name, $file_, $version ) {
951
 
952
  // TODO: Use numbered placeholders with sprintf or named placeholders with str_replace.
953
  /* translators: "<module-name>" version <version-number> is not... */
954
- wpbdp_deprecation_warning( sprintf( _x( '"%1$s" version %2$s is not compatible with Business Directory Plugin 5.0. Please update this module to the latest available version.', 'deprecation', 'WPBDM' ), '<strong>' . esc_html( $name ) . '</strong>', '<strong>' . $version . '</strong>' ) );
955
  $wpbdp_compat_modules_registry[] = array( $name, $file_, $version );
956
 
957
  return false;
92
  return;
93
  }
94
 
95
+ wpbdp_register_settings_group( 'licenses', __( 'Licenses', 'business-directory-plugin' ) );
96
  wpbdp_register_settings_group(
97
+ 'licenses/main', __( 'Licenses', 'business-directory-plugin' ), 'licenses', array(
98
  'desc' => $this->get_settings_section_description(),
99
  'custom_form' => true,
100
  )
101
  );
102
 
103
  if ( $modules ) {
104
+ wpbdp_register_settings_group( 'licenses/modules', _x( 'Premium Modules', 'settings', 'business-directory-plugin' ), 'licenses/main' );
105
 
106
  foreach ( $modules as $module ) {
107
  wpbdp_register_setting(
119
  }
120
 
121
  if ( $themes ) {
122
+ wpbdp_register_settings_group( 'licenses/themes', _x( 'Themes', 'settings', 'business-directory-plugin' ), 'licenses/main' );
123
 
124
  foreach ( $themes as $theme ) {
125
  wpbdp_register_setting(
144
  return '';
145
  }
146
 
147
+ $description = _x( 'The IP address of your server is <ip-address>. Please make sure to include that information if you need to contact support about problems trying to activate your licenses.', 'settings', 'business-directory-plugin' );
148
  $description = str_replace( '<ip-address>', '<strong>' . $ip_address . '</strong>', $description );
149
 
150
  return $description;
170
  $html .= '<div class="wpbdp-license-key-activation-ui wpbdp-license-status-' . $license_status . '" data-licensing="' . esc_attr( $licensing_info_attr ) . '">';
171
  $html .= '<span class="wpbdp-license-warning-icon dashicons dashicons-warning"></span>';
172
  $html .= '<span class="wpbdp-license-ok-icon dashicons dashicons-yes"></span>';
173
+ $html .= '<input type="text" id="' . $setting['id'] . '" class="wpbdp-license-key-input" name="wpbdp_settings[' . $setting['id'] . ']" value="' . esc_attr( $value ) . '" ' . ( 'valid' == $license_status ? 'readonly="readonly"' : '' ) . ' placeholder="' . _x( 'Enter License Key here', 'admin settings', 'business-directory-plugin' ) . '"/>';
174
+ $html .= '<input type="button" value="' . _x( 'Activate', 'settings', 'business-directory-plugin' ) . '" data-working-msg="' . esc_attr( _x( 'Please wait...', 'settings', 'business-directory-plugin' ) ) . '" class="button button-primary wpbdp-license-key-activate-btn" />';
175
+ $html .= '<input type="button" value="' . _x( 'Deactivate', 'settings', 'business-directory-plugin' ) . '" data-working-msg="' . esc_attr( _x( 'Please wait...', 'settings', 'business-directory-plugin' ) ) . '" class="button wpbdp-license-key-deactivate-btn" />';
176
  $html .= '<div class="wpbdp-license-key-activation-status-msg wpbdp-hidden"></div>';
177
  $html .= '</div>';
178
 
217
  if ( ! current_user_can( 'administrator' ) || ! $this->items ) {
218
  return;
219
  }
 
 
 
 
 
 
 
 
 
220
  global $submenu;
221
 
222
  foreach ( $submenu as $menu_id => &$m ) {
285
 
286
  private function activate_license( $item_type, $item_id ) {
287
  if ( ! in_array( $item_id, array_keys( $this->items ), true ) ) {
288
+ return new WP_Error( 'invalid-module', _x( 'Invalid item ID', 'licensing', 'business-directory-plugin' ), $module );
289
  }
290
 
291
  $key = wpbdp_get_option( 'license-key-' . $item_type . '-' . $item_id );
292
 
293
  if ( ! $key ) {
294
+ return new WP_Error( 'no-license-provided', _x( 'No license key provided', 'licensing', 'business-directory-plugin' ) );
295
  }
296
 
297
  $request = array(
315
  update_option( 'wpbdp_licenses', $this->licenses );
316
 
317
  if ( 'revoked' === $license_data->error ) {
318
+ $message = '<strong>' . _x( 'The license key was revoked.', 'licensing', 'business-directory-plugin' ) . '</strong>';
319
  $message .= '<br/><br/>';
320
+ $message .= _x( 'If you think this is a mistake, please contact <support-link>Business Directory support</support-link> and let them know your license is being reported as revoked by the licensing software.', 'licensing', 'business-directory-plugin' );
321
  $message .= '<br/><br/>';
322
+ $message .= _x( 'Please include the email address you used to purchase <module-name> with your report.', 'licensing', 'business-directory-plugin' );
323
 
324
  $message = str_replace( '<support-link>', '<a href="https://businessdirectoryplugin.com/contact">', $message );
325
  $message = str_replace( '</support-link>', '</a>', $message );
330
 
331
  return new WP_Error( 'revoked-license', $message );
332
  } else {
333
+ $message = _x( 'License key is invalid', 'licensing', 'business-directory-plugin' );
334
 
335
  return new WP_Error( 'invalid-license', $message );
336
  }
347
 
348
  private function deactivate_license( $item_type, $item_id ) {
349
  if ( ! in_array( $item_id, array_keys( $this->items ), true ) ) {
350
+ return new WP_Error( 'invalid-module', _x( 'Invalid module ID', 'licensing', 'business-directory-plugin' ), $module );
351
  }
352
 
353
  // Remove licensing information.
373
  $license_data = json_decode( wp_remote_retrieve_body( $response ) );
374
 
375
  if ( ! is_object( $license_data ) || ! $license_data || ! isset( $license_data->license ) ) {
376
+ return new WP_Error( 'invalid-license', _x( 'License key is invalid', 'licensing', 'business-directory-plugin' ) );
377
  }
378
 
379
  if ( 'deactivated' !== $license_data->license ) {
380
+ return new WP_Error( 'deactivation-failed', _x( 'Deactivation failed', 'licensing', 'business-directory-plugin' ) );
381
  }
382
 
383
  return true;
385
 
386
  private function handle_failed_license_request( $response ) {
387
  if ( ! function_exists( 'curl_init' ) ) {
388
+ $message = '<strong>' . _x( "It was not possible to establish a connection with Business Directory's server. cURL was not found in your system", 'licensing', 'business-directory-plugin' ) . '</strong>';
389
  $message .= '<br/><br/>';
390
+ $message .= _x( 'To ensure the security of our systems and adhere to industry best practices, we require that your server uses a recent version of cURL and a version of OpenSSL that supports TLSv1.2 (minimum version with support is OpenSSL 1.0.1c).', 'licensing', 'business-directory-plugin' );
391
  $message .= '<br/><br/>';
392
+ $message .= _x( 'Upgrading your system will not only allow you to communicate with Business Directory servers but also help you prepare your website to interact with services using the latest security standards.', 'licensing', 'business-directory-plugin' );
393
  $message .= '<br/><br/>';
394
+ $message .= _x( 'Please contact your hosting provider and ask them to upgrade your system. Include this message if necessary', 'licensing', 'business-directory-plugin' );
395
  return new WP_Error( 'request-failed', $message );
396
  }
397
  $ch = curl_init();
407
  curl_close( $ch );
408
 
409
  if ( in_array( $error_number, array( 7 ), true ) ) {
410
+ $message = '<strong>' . _x( "It was not possible to establish a connection with Business Directory's server. The connection failed with the following error:", 'licensing', 'business-directory-plugin' ) . '</strong>';
411
  $message .= '<br/><br/>';
412
  $message .= '<code>curl: (' . $error_number . ') ' . $error_message . '</code>';
413
  $message .= '<br/><br/>';
414
+ $message .= _x( 'It looks like your server is not authorized to make requests to Business Directory servers. Please contact <support-link>Business Directory support</support-link> and ask them to add your IP address <ip-address> to the allow list.', 'licensing', 'business-directory-plugin' );
415
  $message .= '<br/><br/>';
416
+ $message .= _x( 'Include this error message with your report.', 'licensing', 'business-directory-plugin' );
417
 
418
  $message = str_replace( '<support-link>', '<a href="https://businessdirectoryplugin.com/contact">', $message );
419
  $message = str_replace( '</support-link>', '</a>', $message );
423
 
424
  return new WP_Error( 'connection-refused', $message );
425
  } elseif ( in_array( $error_number, array( 35 ), true ) ) {
426
+ $message = '<strong>' . _x( "It was not possible to establish a connection with Business Directory's server. A problem occurred in the SSL/TSL handshake:", 'licensing', 'business-directory-plugin' ) . '</strong>';
427
 
428
  $message .= '<br/><br/>';
429
  $message .= '<code>curl: (' . $error_number . ') ' . $error_message . '</code>';
430
  $message .= '<br/><br/>';
431
+ $message .= _x( 'To ensure the security of our systems and adhere to industry best practices, we require that your server uses a recent version of cURL and a version of OpenSSL that supports TLSv1.2 (minimum version with support is OpenSSL 1.0.1c).', 'licensing', 'business-directory-plugin' );
432
  $message .= '<br/><br/>';
433
+ $message .= _x( 'Upgrading your system will not only allow you to communicate with Business Directory servers but also help you prepare your website to interact with services using the latest security standards.', 'licensing', 'business-directory-plugin' );
434
  $message .= '<br/><br/>';
435
+ $message .= _x( 'Please contact your hosting provider and ask them to upgrade your system. Include this message if necessary.', 'licensing', 'business-directory-plugin' );
436
 
437
  // The javascript handler already adds a dot at the end.
438
  $message = rtrim( $message, '.' );
439
 
440
  return new WP_Error( 'request-failed', $message );
441
  } else {
442
+ return new WP_Error( 'request-failed', _x( 'Could not contact licensing server', 'licensing', 'business-directory-plugin' ) );
443
  }
444
  }
445
 
461
  $response_message = wp_remote_retrieve_response_message( $response );
462
 
463
  if ( 403 == $response_code ) {
464
+ $message = '<strong>' . _x( 'The server returned a 403 Forbidden error.', 'licensing', 'business-directory-plugin' ) . '</strong>';
465
  $message .= '<br/><br/>';
466
+ $message .= _x( 'It looks like your server is not authorized to make requests to Business Directory servers. Please contact <support-link>Business Directory support</support-link> and ask them to add your IP address <ip-address> to the allow list.', 'licensing', 'business-directory-plugin' );
467
  $message .= '<br/><br/>';
468
+ $message .= _x( 'Include this error message with your report.', 'licensing', 'business-directory-plugin' );
469
 
470
  $message = str_replace( '<support-link>', '<a href="https://businessdirectoryplugin.com/contact">', $message );
471
  $message = str_replace( '</support-link>', '</a>', $message );
529
  }
530
 
531
  echo '<div id="wpbdp-licensing-issues-warning" class="error"><p>';
532
+ echo '<b>' . _x( 'Business Directory - Please verify your license keys', 'licensing', 'business-directory-plugin' ) . '</b><br />';
533
 
534
  echo '<ul>';
535
  if ( $modules ) {
539
  }
540
 
541
  echo '<li>';
542
+ printf( _x( 'The following premium modules will not work until a valid license key is provided: %s.', 'licensing', 'business-directory-plugin' ), $modules_str );
543
  echo '</li>';
544
  }
545
 
550
  }
551
 
552
  echo '<li>';
553
+ printf( _x( 'You need to activate the license keys for the following themes before they can be used: %s.', 'licensing', 'business-directory-plugin' ), $themes_str );
554
  echo '</li>';
555
  }
556
 
558
 
559
  echo '<p>';
560
  echo '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp_settings&tab=licenses' ) ) . '" class="button button-primary">';
561
+ echo _x( 'Review my license keys', 'licensing', 'business-directory-plugin' );
562
  echo '</a>';
563
  echo '</p>';
564
 
585
 
586
  echo '<div id="wpbdp-licensing-issues-warning" class="wpbdp-notice notice notice-error is-dismissible" data-dismissible-id="' . esc_attr( $notice_id ) . '" data-nonce="' . esc_attr( $nonce ) . '">';
587
  echo '<p>';
588
+ echo '<b>' . _x( 'Business Directory - License key expired', 'licensing', 'business-directory-plugin' ) . '</b><br />';
589
 
590
  echo '<ul>';
591
  if ( $modules ) {
595
  }
596
 
597
  echo '<li>';
598
+ printf( _x( 'The license key for the following modules has expired: %s. The modules will continue to work but you will not receive any more updates until the license is renewed.', 'licensing', 'business-directory-plugin' ), $modules_str );
599
  echo '</li>';
600
  }
601
 
606
  }
607
 
608
  echo '<li>';
609
+ printf( _x( 'The license key for the following themes has expired: %s. The themes will continue to work but you will not receive any more updates until the license is renewed.', 'licensing', 'business-directory-plugin' ), $themes_str );
610
  echo '</li>';
611
  }
612
 
614
 
615
  echo '<p>';
616
  echo '<a href="' . esc_url( admin_url( 'admin.php?page=wpbdp_settings&tab=licenses' ) ) . '" class="button button-primary">';
617
+ echo _x( 'Review my license keys', 'licensing', 'business-directory-plugin' );
618
  echo '</a>';
619
  echo '</p>';
620
 
706
  }
707
 
708
  if ( ! $key ) {
709
+ $response->send_error( _x( 'Please enter a license key.', 'licensing', 'business-directory-plugin' ) );
710
  }
711
 
712
  // Store the new license key. This clears stored information about the license.
715
  $result = $this->activate_license( $item_type, $item_id );
716
 
717
  if ( is_wp_error( $result ) ) {
718
+ $response->send_error( sprintf( _x( 'Could not activate license: %s.', 'licensing', 'business-directory-plugin' ), $result->get_error_message() ) );
719
  } else {
720
+ $response->set_message( _x( 'License activated', 'licensing', 'business-directory-plugin' ) );
721
  $response->send();
722
  }
723
  }
737
  $response = new WPBDP_Ajax_Response();
738
 
739
  if ( is_wp_error( $result ) ) {
740
+ $response->send_error( sprintf( _x( 'Could not deactivate license: %s.', 'licensing', 'business-directory-plugin' ), $result->get_error_message() ) );
741
  } else {
742
+ $response->set_message( _x( 'License deactivated', 'licensing', 'business-directory-plugin' ) );
743
  $response->send();
744
  }
745
  }
942
 
943
  // TODO: Use numbered placeholders with sprintf or named placeholders with str_replace.
944
  /* translators: "<module-name>" version <version-number> is not... */
945
+ wpbdp_deprecation_warning( sprintf( _x( '"%1$s" version %2$s is not compatible with Business Directory Plugin 5.0. Please update this module to the latest available version.', 'deprecation', 'business-directory-plugin' ), '<strong>' . esc_html( $name ) . '</strong>', '<strong>' . $version . '</strong>' ) );
946
  $wpbdp_compat_modules_registry[] = array( $name, $file_, $version );
947
 
948
  return false;
includes/payment.php CHANGED
@@ -35,14 +35,14 @@ class WPBDP_PaymentsAPI {
35
  $payment = $subscription->get_parent_payment();
36
 
37
  if ( ! $payment ) {
38
- $message = __( "We couldn't find a payment associated with the given subscription.", 'WPBDM' );
39
  throw new Exception( $message );
40
  }
41
 
42
  $gateway = $GLOBALS['wpbdp']->payment_gateways->get( $payment->gateway );
43
 
44
  if ( ! $gateway ) {
45
- $message = __( 'The payment gateway "<payment-gateway>" is not available.', 'WPBDM' );
46
  $message = str_replace( '<payment-gateway>', $gateway, $message );
47
  throw new Exception( $message );
48
  }
@@ -64,7 +64,7 @@ class WPBDP_PaymentsAPI {
64
  <div id="wpbdp-payment-receipt" class="wpbdp-payment-receipt">
65
 
66
  <div class="wpbdp-payment-receipt-header">
67
- <h4><?php printf( _x( 'Payment #%s', 'payments', 'WPBDM' ), $payment->id ); ?></h4>
68
  <span class="wpbdp-payment-receipt-date"><?php echo date( 'Y-m-d H:i', strtotime( $payment->created_at ) ); ?></span>
69
 
70
  <span class="wpbdp-tag wpbdp-payment-status wpbdp-payment-status-<?php echo $payment->status; ?>"><?php echo WPBDP_Payment::get_status_label( $payment->status ); ?></span>
@@ -72,12 +72,12 @@ class WPBDP_PaymentsAPI {
72
  <div class="wpbdp-payment-receipt-details">
73
  <dl>
74
  <?php if ( $payment->gateway ): ?>
75
- <dt><?php _ex( 'Gateway:', 'payments', 'WPBDM' ); ?></dt>
76
  <dd><?php echo $payment->gateway; ?></dd>
77
- <dt><?php _ex( 'Gateway Transaction ID:', 'payments', 'WPBDM' ); ?></dt>
78
  <dd><?php echo $payment->gateway_tx_id ? $payment->gateway_tx_id : '—'; ?></dd>
79
  <?php endif; ?>
80
- <dt><?php _ex( 'Bill To:', 'payments', 'WPBDM' ); ?></dt>
81
  <dd>
82
  <?php
83
  $bill_to = '';
@@ -95,7 +95,7 @@ class WPBDP_PaymentsAPI {
95
  <?php echo $this->render_invoice( $payment ); ?>
96
 
97
  </div>
98
- <input type="button" class="wpbdp-payment-receipt-print" value="<?php _ex( 'Print Receipt', 'checkout', 'WPBDM' ); ?>" />
99
 
100
  <?php
101
  do_action( 'wpbdp_after_render_receipt', $payment );
@@ -178,12 +178,12 @@ class WPBDP_PaymentsAPI {
178
  $views['pending-abandonment'] = sprintf( '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
179
  esc_url( add_query_arg( 'wpbdmfilter', 'pending-abandonment', remove_query_arg( 'listing_status' ) ) ),
180
  'pending-abandonment' == wpbdp_getv( $_REQUEST, 'wpbdmfilter' ) ? 'current' : '',
181
- _x( 'Pending Abandonment', 'admin', 'WPBDM' ),
182
  number_format_i18n( $count_pending ) );
183
  $views['abandoned'] = sprintf( '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
184
  esc_url( add_query_arg( 'wpbdmfilter', 'abandoned', remove_query_arg( 'listing_status' ) ) ),
185
  'abandoned' == wpbdp_getv( $_REQUEST, 'wpbdmfilter' ) ? 'current' : '',
186
- _x( 'Abandoned', 'admin', 'WPBDM' ),
187
  number_format_i18n( $count_abandoned ) );
188
 
189
  return $views;
@@ -275,7 +275,7 @@ class WPBDP_PaymentsAPI {
275
  return;
276
  }
277
 
278
- echo '<input type="submit" name="return-to-fee-select" value="' . _x( 'Return to fee selection', 'templates', 'WPBDM' ) . '" style="margin-bottom: 1.5em;" />';
279
  }
280
 
281
  function maybe_fee_select_redirect( $checkout ) {
35
  $payment = $subscription->get_parent_payment();
36
 
37
  if ( ! $payment ) {
38
+ $message = __( "We couldn't find a payment associated with the given subscription.", 'business-directory-plugin' );
39
  throw new Exception( $message );
40
  }
41
 
42
  $gateway = $GLOBALS['wpbdp']->payment_gateways->get( $payment->gateway );
43
 
44
  if ( ! $gateway ) {
45
+ $message = __( 'The payment gateway "<payment-gateway>" is not available.', 'business-directory-plugin' );
46
  $message = str_replace( '<payment-gateway>', $gateway, $message );
47
  throw new Exception( $message );
48
  }
64
  <div id="wpbdp-payment-receipt" class="wpbdp-payment-receipt">
65
 
66
  <div class="wpbdp-payment-receipt-header">
67
+ <h4><?php printf( _x( 'Payment #%s', 'payments', 'business-directory-plugin' ), $payment->id ); ?></h4>
68
  <span class="wpbdp-payment-receipt-date"><?php echo date( 'Y-m-d H:i', strtotime( $payment->created_at ) ); ?></span>
69
 
70
  <span class="wpbdp-tag wpbdp-payment-status wpbdp-payment-status-<?php echo $payment->status; ?>"><?php echo WPBDP_Payment::get_status_label( $payment->status ); ?></span>
72
  <div class="wpbdp-payment-receipt-details">
73
  <dl>
74
  <?php if ( $payment->gateway ): ?>
75
+ <dt><?php _ex( 'Gateway:', 'payments', 'business-directory-plugin' ); ?></dt>
76
  <dd><?php echo $payment->gateway; ?></dd>
77
+ <dt><?php _ex( 'Gateway Transaction ID:', 'payments', 'business-directory-plugin' ); ?></dt>
78
  <dd><?php echo $payment->gateway_tx_id ? $payment->gateway_tx_id : '—'; ?></dd>
79
  <?php endif; ?>
80
+ <dt><?php _ex( 'Bill To:', 'payments', 'business-directory-plugin' ); ?></dt>
81
  <dd>
82
  <?php
83
  $bill_to = '';
95
  <?php echo $this->render_invoice( $payment ); ?>
96
 
97
  </div>
98
+ <input type="button" class="wpbdp-payment-receipt-print" value="<?php _ex( 'Print Receipt', 'checkout', 'business-directory-plugin' ); ?>" />
99
 
100
  <?php
101
  do_action( 'wpbdp_after_render_receipt', $payment );
178
  $views['pending-abandonment'] = sprintf( '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
179
  esc_url( add_query_arg( 'wpbdmfilter', 'pending-abandonment', remove_query_arg( 'listing_status' ) ) ),
180
  'pending-abandonment' == wpbdp_getv( $_REQUEST, 'wpbdmfilter' ) ? 'current' : '',
181
+ _x( 'Pending Abandonment', 'admin', 'business-directory-plugin' ),
182
  number_format_i18n( $count_pending ) );
183
  $views['abandoned'] = sprintf( '<a href="%s" class="%s">%s</a> <span class="count">(%s)</span></a>',
184
  esc_url( add_query_arg( 'wpbdmfilter', 'abandoned', remove_query_arg( 'listing_status' ) ) ),
185
  'abandoned' == wpbdp_getv( $_REQUEST, 'wpbdmfilter' ) ? 'current' : '',
186
+ _x( 'Abandoned', 'admin', 'business-directory-plugin' ),
187
  number_format_i18n( $count_abandoned ) );
188
 
189
  return $views;
275
  return;
276
  }
277
 
278
+ echo '<input type="submit" name="return-to-fee-select" value="' . _x( 'Return to fee selection', 'templates', 'business-directory-plugin' ) . '" style="margin-bottom: 1.5em;" />';
279
  }
280
 
281
  function maybe_fee_select_redirect( $checkout ) {
includes/templates-ui.php CHANGED
@@ -205,7 +205,7 @@ function wpbdp_list_categories( $args = array() ) {
205
  'hide_empty' => false,
206
  'parent_only' => false,
207
  'parent' => 0,
208
- 'no_items_msg' => _x( 'No listing categories found.', 'templates', 'WPBDM' ),
209
  )
210
  );
211
 
@@ -267,6 +267,10 @@ function wpbdp_main_links( $buttons = null ) {
267
  if ( wpbdp_get_option( 'show-submit-listing' ) ) {
268
  $buttons[] = 'create';
269
  }
 
 
 
 
270
  }
271
 
272
  $buttons = array_filter( array_unique( $buttons ) );
@@ -285,7 +289,7 @@ function wpbdp_main_links( $buttons = null ) {
285
  if ( in_array( 'directory', $buttons ) ) {
286
  $html .= sprintf(
287
  '<input id="wpbdp-bar-show-directory-button" type="button" value="%s" onclick="window.location.href = \'%s\'" class="button wpbdp-button" />',
288
- __( 'Directory', 'WPBDM' ),
289
  wpbdp_url( '/' )
290
  );
291
  $buttons_count++;
@@ -294,16 +298,25 @@ function wpbdp_main_links( $buttons = null ) {
294
  if ( in_array( 'listings', $buttons ) ) {
295
  $html .= sprintf(
296
  '<input id="wpbdp-bar-view-listings-button" type="button" value="%s" onclick="window.location.href = \'%s\'" class="button wpbdp-button" />',
297
- __( 'View All Listings', 'WPBDM' ),
298
  wpbdp_url( 'all_listings' )
299
  );
300
  $buttons_count++;
301
  }
302
 
 
 
 
 
 
 
 
 
 
303
  if ( in_array( 'create', $buttons ) ) {
304
  $html .= sprintf(
305
  '<input id="wpbdp-bar-submit-listing-button" type="button" value="%s" onclick="window.location.href = \'%s\'" class="button wpbdp-button" />',
306
- __( 'Create A Listing', 'WPBDM' ),
307
  wpbdp_url( 'submit_listing' )
308
  );
309
  $buttons_count++;
@@ -342,12 +355,12 @@ function wpbdp_search_form() {
342
  $html .= '<input id="intextbox" maxlength="150" name="q" size="20" type="text" value="" />';
343
  $html .= sprintf(
344
  '<input id="wpbdmsearchsubmit" class="submit wpbdp-button wpbdp-submit" type="submit" value="%s" />',
345
- _x( 'Search Listings', 'templates', 'WPBDM' )
346
  );
347
  $html .= sprintf(
348
  '<a href="%s" class="advanced-search-link">%s</a>',
349
  esc_url( wpbdp_url( 'search' ) ),
350
- _x( 'Advanced Search', 'templates', 'WPBDM' )
351
  );
352
  $html .= '</form>';
353
 
@@ -382,7 +395,7 @@ function wpbdp_listing_sort_options( $filters = array( 'wpbdp_listing_sort_optio
382
 
383
  $html = '';
384
  $html .= '<div class="wpbdp-listings-sort-options wpbdp-hide-on-mobile">';
385
- $html .= _x( 'Sort By:', 'templates sort', 'WPBDM' ) . ' ';
386
 
387
  foreach ( $sort_options as $id => $option ) {
388
  $default_order = isset( $option[2] ) && ! empty( $option[2] ) ? strtoupper( $option[2] ) : 'ASC';
@@ -405,7 +418,7 @@ function wpbdp_listing_sort_options( $filters = array( 'wpbdp_listing_sort_optio
405
  $html .= sprintf(
406
  '(<a href="%s" class="reset" rel="nofollow">%s</a>)',
407
  esc_attr( remove_query_arg( 'wpbdp_sort' ) ),
408
- _x( 'Reset', 'sort', 'WPBDM' )
409
  );
410
  }
411
  $html .= '</div>';
@@ -414,7 +427,7 @@ function wpbdp_listing_sort_options( $filters = array( 'wpbdp_listing_sort_optio
414
 
415
  $html .= '<label for="wpbdp-sort-bar" style="display:none;">Sort By:</label>';
416
  $html .= '<select id="wpbdp-sort-bar" class="">';
417
- $html .= '<option value="0" class="header-option">' . _x( 'Sort By:', 'templates sort', 'WPBDM' ) . '</option>';
418
 
419
  foreach ( $sort_options as $id => $option ) {
420
  $default_order = isset( $option[2] ) && ! empty( $option[2] ) ? strtoupper( $option[2] ) : 'ASC';
@@ -433,7 +446,7 @@ function wpbdp_listing_sort_options( $filters = array( 'wpbdp_listing_sort_optio
433
  $html .= sprintf(
434
  '<option value="%s" class="header-option">%s</option>',
435
  esc_attr( remove_query_arg( 'wpbdp_sort' ) ),
436
- _x( '(Reset)', 'sort', 'WPBDM' )
437
  );
438
  }
439
 
205
  'hide_empty' => false,
206
  'parent_only' => false,
207
  'parent' => 0,
208
+ 'no_items_msg' => _x( 'No listing categories found.', 'templates', 'business-directory-plugin' ),
209
  )
210
  );
211
 
267
  if ( wpbdp_get_option( 'show-submit-listing' ) ) {
268
  $buttons[] = 'create';
269
  }
270
+
271
+ if ( wpbdp_get_option( 'show-manage-listings' ) && is_user_logged_in() ) {
272
+ $buttons[] = 'manage';
273
+ }
274
  }
275
 
276
  $buttons = array_filter( array_unique( $buttons ) );
289
  if ( in_array( 'directory', $buttons ) ) {
290
  $html .= sprintf(
291
  '<input id="wpbdp-bar-show-directory-button" type="button" value="%s" onclick="window.location.href = \'%s\'" class="button wpbdp-button" />',
292
+ __( 'Directory', 'business-directory-plugin' ),
293
  wpbdp_url( '/' )
294
  );
295
  $buttons_count++;
298
  if ( in_array( 'listings', $buttons ) ) {
299
  $html .= sprintf(
300
  '<input id="wpbdp-bar-view-listings-button" type="button" value="%s" onclick="window.location.href = \'%s\'" class="button wpbdp-button" />',
301
+ __( 'View All Listings', 'business-directory-plugin' ),
302
  wpbdp_url( 'all_listings' )
303
  );
304
  $buttons_count++;
305
  }
306
 
307
+ if ( in_array( 'manage', $buttons ) ) {
308
+ $html .= sprintf(
309
+ '<input id="wpbdp-bar-manage-listing-button" type="button" value="%s" onclick="window.location.href = \'%s\'" class="button wpbdp-button" />',
310
+ __( 'Manage Listings', 'business-directory-plugin' ),
311
+ wpbdp_url( 'manage_listings' )
312
+ );
313
+ $buttons_count++;
314
+ }
315
+
316
  if ( in_array( 'create', $buttons ) ) {
317
  $html .= sprintf(
318
  '<input id="wpbdp-bar-submit-listing-button" type="button" value="%s" onclick="window.location.href = \'%s\'" class="button wpbdp-button" />',
319
+ __( 'Create A Listing', 'business-directory-plugin' ),
320
  wpbdp_url( 'submit_listing' )
321
  );
322
  $buttons_count++;
355
  $html .= '<input id="intextbox" maxlength="150" name="q" size="20" type="text" value="" />';
356
  $html .= sprintf(
357
  '<input id="wpbdmsearchsubmit" class="submit wpbdp-button wpbdp-submit" type="submit" value="%s" />',
358
+ _x( 'Search Listings', 'templates', 'business-directory-plugin' )
359
  );
360
  $html .= sprintf(
361
  '<a href="%s" class="advanced-search-link">%s</a>',
362
  esc_url( wpbdp_url( 'search' ) ),
363
+ _x( 'Advanced Search', 'templates', 'business-directory-plugin' )
364
  );
365
  $html .= '</form>';
366
 
395
 
396
  $html = '';
397
  $html .= '<div class="wpbdp-listings-sort-options wpbdp-hide-on-mobile">';
398
+ $html .= _x( 'Sort By:', 'templates sort', 'business-directory-plugin' ) . ' ';
399
 
400
  foreach ( $sort_options as $id => $option ) {
401
  $default_order = isset( $option[2] ) && ! empty( $option[2] ) ? strtoupper( $option[2] ) : 'ASC';
418
  $html .= sprintf(
419
  '(<a href="%s" class="reset" rel="nofollow">%s</a>)',
420
  esc_attr( remove_query_arg( 'wpbdp_sort' ) ),
421
+ _x( 'Reset', 'sort', 'business-directory-plugin' )
422
  );
423
  }
424
  $html .= '</div>';
427
 
428
  $html .= '<label for="wpbdp-sort-bar" style="display:none;">Sort By:</label>';
429
  $html .= '<select id="wpbdp-sort-bar" class="">';
430
+ $html .= '<option value="0" class="header-option">' . _x( 'Sort By:', 'templates sort', 'business-directory-plugin' ) . '</option>';
431
 
432
  foreach ( $sort_options as $id => $option ) {
433
  $default_order = isset( $option[2] ) && ! empty( $option[2] ) ? strtoupper( $option[2] ) : 'ASC';
446
  $html .= sprintf(
447
  '<option value="%s" class="header-option">%s</option>',
448
  esc_attr( remove_query_arg( 'wpbdp_sort' ) ),
449
+ _x( '(Reset)', 'sort', 'business-directory-plugin' )
450
  );
451
  }
452
 
includes/themes.php CHANGED
@@ -919,7 +919,7 @@ class WPBDP_Themes {
919
  WPBDP_FS::rmdir( $temp_dir );
920
  return new WP_Error(
921
  'no-theme-file',
922
- _x( 'ZIP file is not a valid BD theme file.', 'themes', 'WPBDM' )
923
  );
924
  }
925
 
@@ -927,7 +927,7 @@ class WPBDP_Themes {
927
  WPBDP_FS::rmdir( $temp_dir );
928
  return new WP_Error(
929
  'no-themes-directory',
930
- _x( 'Could not create themes directory.', 'themes', 'WPBDM' )
931
  );
932
  }
933
 
@@ -938,7 +938,7 @@ class WPBDP_Themes {
938
  return new WP_Error(
939
  'old-theme-not-removed',
940
  sprintf(
941
- _x( 'Could not remove previous theme directory "%s".', 'themes', 'WPBDM' ),
942
  $dest_dir
943
  )
944
  );
@@ -946,7 +946,7 @@ class WPBDP_Themes {
946
 
947
  if ( ! WPBDP_FS::movedir( $package_dir, $themes_dir ) ) {
948
  WPBDP_FS::rmdir( $temp_dir );
949
- return new WP_Error( 'theme-not-copied', _x( 'Could not move new theme into theme directory.', 'themes', 'WPBDM' ) );
950
  }
951
 
952
  WPBDP_FS::rmdir( $temp_dir );
919
  WPBDP_FS::rmdir( $temp_dir );
920
  return new WP_Error(
921
  'no-theme-file',
922
+ _x( 'ZIP file is not a valid BD theme file.', 'themes', 'business-directory-plugin' )
923
  );
924
  }
925
 
927
  WPBDP_FS::rmdir( $temp_dir );
928
  return new WP_Error(
929
  'no-themes-directory',
930
+ _x( 'Could not create themes directory.', 'themes', 'business-directory-plugin' )
931
  );
932
  }
933
 
938
  return new WP_Error(
939
  'old-theme-not-removed',
940
  sprintf(
941
+ _x( 'Could not remove previous theme directory "%s".', 'themes', 'business-directory-plugin' ),
942
  $dest_dir
943
  )
944
  );
946
 
947
  if ( ! WPBDP_FS::movedir( $package_dir, $themes_dir ) ) {
948
  WPBDP_FS::rmdir( $temp_dir );
949
+ return new WP_Error( 'theme-not-copied', _x( 'Could not move new theme into theme directory.', 'themes', 'business-directory-plugin' ) );
950
  }
951
 
952
  WPBDP_FS::rmdir( $temp_dir );
includes/utils.php CHANGED
@@ -210,7 +210,7 @@ function wpbdp_media_upload_check_env( &$error ) {
210
  $posted_size = intval( $_SERVER['CONTENT_LENGTH'] );
211
 
212
  if ( $posted_size > $post_max ) {
213
- $error = _x( 'POSTed data exceeds PHP config. maximum. See "post_max_size" directive.', 'utils', 'WPBDM' );
214
  return false;
215
  }
216
  }
@@ -258,7 +258,7 @@ function wpbdp_media_upload($file_, $use_media_library=true, $check_image=false,
258
 
259
  if ($file['error'] == 0) {
260
  if ($constraints['max-size'] > 0 && $file['size'] > $constraints['max-size'] ) {
261
- $error_msg = sprintf( _x( 'File size (%s) exceeds maximum file size of %s', 'utils', 'WPBDM' ),
262
  size_format ($file['size'], 2),
263
  size_format ($constraints['max-size'], 2)
264
  );
@@ -266,7 +266,7 @@ function wpbdp_media_upload($file_, $use_media_library=true, $check_image=false,
266
  }
267
 
268
  if ( $constraints['min-size'] > 0 && $file['size'] < $constraints['min-size'] ) {
269
- $error_msg = sprintf( _x( 'File size (%s) is inferior to the required minimum file size of %s', 'utils', 'WPBDM' ),
270
  size_format( $file['size'], 2 ),
271
  size_format( $constraints['min-size'], 2 )
272
  );
@@ -275,21 +275,21 @@ function wpbdp_media_upload($file_, $use_media_library=true, $check_image=false,
275
 
276
  if ( is_array( $constraints['mimetypes'] ) ) {
277
  if ( !in_array( strtolower( $file['type'] ), $constraints['mimetypes'] ) ) {
278
- $error_msg = sprintf( _x( 'File type "%s" is not allowed', 'utils', 'WPBDM' ), $file['type'] );
279
  return false;
280
  }
281
  }
282
 
283
  // We do not accept TIFF format. Compatibility issues.
284
  if ( in_array( strtolower( $file['type'] ), array('image/tiff') ) ) {
285
- $error_msg = sprintf( _x( 'File type "%s" is not allowed', 'utils', 'WPBDM' ), $file['type'] );
286
  return false;
287
  }
288
 
289
  $upload = $sideload ? wp_handle_sideload( $file, array( 'test_form' => FALSE ) ) : wp_handle_upload( $file, array('test_form' => FALSE) );
290
 
291
  if( ! $upload || ! is_array( $upload ) || isset( $upload['error'] ) ) {
292
- $error_msg = isset( $upload['error'] ) ? $upload['error'] : _x( 'Unkown error while uploading file.', 'utils', 'WPBDM' );
293
  return false;
294
  }
295
 
@@ -308,7 +308,7 @@ function wpbdp_media_upload($file_, $use_media_library=true, $check_image=false,
308
  if ( $check_image && ! wp_attachment_is_image( $attachment_id ) ) {
309
  wp_delete_attachment( $attachment_id, true );
310
 
311
- $error_msg = _x('Uploaded file is not an image', 'utils', 'WPBDM');
312
  return false;
313
  }
314
 
@@ -317,25 +317,25 @@ function wpbdp_media_upload($file_, $use_media_library=true, $check_image=false,
317
  $failed = false;
318
 
319
  if ( ! $failed && $meta && $constraints['min-width'] > 0 && $meta['width'] < $constraints['min-width'] ) {
320
- $error_msg = sprintf( _x( 'Image width (%s px) is inferior to minimum required width of %s px.', 'utils', 'WPBDM' ),
321
  $meta['width'],
322
  $constraints['min-width'] );
323
  }
324
 
325
  if ( ! $failed && $meta && $constraints['min-height'] > 0 && $meta['height'] < $constraints['min-height'] ) {
326
- $error_msg = sprintf( _x( 'Image height (%s px) is inferior to minimum required height of %s px.', 'utils', 'WPBDM' ),
327
  $meta['height'],
328
  $constraints['min-height'] );
329
  }
330
 
331
  if ( ! $failed && $meta && $constraints['max-width'] > 0 && $meta['width'] > $constraints['max-width'] ) {
332
- $error_msg = sprintf( _x( 'Image width (%s px) is greater than maximum allowed width of %s px.', 'utils', 'WPBDM' ),
333
  $meta['width'],
334
  $constraints['max-width'] );
335
  }
336
 
337
  if ( ! $failed && $meta && $constraints['max-height'] > 0 && $meta['height'] > $constraints['max-height'] ) {
338
- $error_msg = sprintf( _x( 'Image height (%s px) is greater than maximum required height of %s px.', 'utils', 'WPBDM' ),
339
  $meta['height'],
340
  $constraints['max-height'] );
341
  }
@@ -349,7 +349,7 @@ function wpbdp_media_upload($file_, $use_media_library=true, $check_image=false,
349
  return $attachment_id;
350
  }
351
  } else {
352
- $error_msg = _x('Error while uploading file', 'utils', 'WPBDM');
353
  }
354
 
355
  return false;
210
  $posted_size = intval( $_SERVER['CONTENT_LENGTH'] );
211
 
212
  if ( $posted_size > $post_max ) {
213
+ $error = _x( 'POSTed data exceeds PHP config. maximum. See "post_max_size" directive.', 'utils', 'business-directory-plugin' );
214
  return false;
215
  }
216
  }
258
 
259
  if ($file['error'] == 0) {
260
  if ($constraints['max-size'] > 0 && $file['size'] > $constraints['max-size'] ) {
261
+ $error_msg = sprintf( _x( 'File size (%s) exceeds maximum file size of %s', 'utils', 'business-directory-plugin' ),
262
  size_format ($file['size'], 2),
263
  size_format ($constraints['max-size'], 2)
264
  );
266
  }
267
 
268
  if ( $constraints['min-size'] > 0 && $file['size'] < $constraints['min-size'] ) {
269
+ $error_msg = sprintf( _x( 'File size (%s) is inferior to the required minimum file size of %s', 'utils', 'business-directory-plugin' ),
270
  size_format( $file['size'], 2 ),
271
  size_format( $constraints['min-size'], 2 )
272
  );
275
 
276
  if ( is_array( $constraints['mimetypes'] ) ) {
277
  if ( !in_array( strtolower( $file['type'] ), $constraints['mimetypes'] ) ) {
278
+ $error_msg = sprintf( _x( 'File type "%s" is not allowed', 'utils', 'business-directory-plugin' ), $file['type'] );
279
  return false;
280
  }
281
  }
282
 
283
  // We do not accept TIFF format. Compatibility issues.
284
  if ( in_array( strtolower( $file['type'] ), array('image/tiff') ) ) {
285
+ $error_msg = sprintf( _x( 'File type "%s" is not allowed', 'utils', 'business-directory-plugin' ), $file['type'] );
286
  return false;
287
  }
288
 
289
  $upload = $sideload ? wp_handle_sideload( $file, array( 'test_form' => FALSE ) ) : wp_handle_upload( $file, array('test_form' => FALSE) );
290
 
291
  if( ! $upload || ! is_array( $upload ) || isset( $upload['error'] ) ) {
292
+ $error_msg = isset( $upload['error'] ) ? $upload['error'] : _x( 'Unkown error while uploading file.', 'utils', 'business-directory-plugin' );
293
  return false;
294
  }
295
 
308
  if ( $check_image && ! wp_attachment_is_image( $attachment_id ) ) {
309
  wp_delete_attachment( $attachment_id, true );
310
 
311
+ $error_msg = _x('Uploaded file is not an image', 'utils', 'business-directory-plugin' );
312
  return false;
313
  }
314
 
317
  $failed = false;
318
 
319
  if ( ! $failed && $meta && $constraints['min-width'] > 0 && $meta['width'] < $constraints['min-width'] ) {
320
+ $error_msg = sprintf( _x( 'Image width (%s px) is inferior to minimum required width of %s px.', 'utils', 'business-directory-plugin' ),
321
  $meta['width'],
322
  $constraints['min-width'] );
323
  }
324
 
325
  if ( ! $failed && $meta && $constraints['min-height'] > 0 && $meta['height'] < $constraints['min-height'] ) {
326
+ $error_msg = sprintf( _x( 'Image height (%s px) is inferior to minimum required height of %s px.', 'utils', 'business-directory-plugin' ),
327
  $meta['height'],
328
  $constraints['min-height'] );
329
  }
330
 
331
  if ( ! $failed && $meta && $constraints['max-width'] > 0 && $meta['width'] > $constraints['max-width'] ) {
332
+ $error_msg = sprintf( _x( 'Image width (%s px) is greater than maximum allowed width of %s px.', 'utils', 'business-directory-plugin' ),
333
  $meta['width'],
334
  $constraints['max-width'] );
335
  }
336
 
337
  if ( ! $failed && $meta && $constraints['max-height'] > 0 && $meta['height'] > $constraints['max-height'] ) {
338
+ $error_msg = sprintf( _x( 'Image height (%s px) is greater than maximum required height of %s px.', 'utils', 'business-directory-plugin' ),
339
  $meta['height'],
340
  $constraints['max-height'] );
341
  }
349
  return $attachment_id;
350
  }
351
  } else {
352
+ $error_msg = _x('Error while uploading file', 'utils', 'business-directory-plugin' );
353
  }
354
 
355
  return false;
includes/views/all_listings.php CHANGED
@@ -3,7 +3,7 @@
3
  class WPBDP__Views__All_Listings extends WPBDP__View {
4
 
5
  public function get_title() {
6
- return _x( 'View All Listings', 'views', 'WPBDM' );
7
  }
8
 
9
  public function dispatch() {
3
  class WPBDP__Views__All_Listings extends WPBDP__View {
4
 
5
  public function get_title() {
6
+ return _x( 'View All Listings', 'views', 'business-directory-plugin' );
7
  }
8
 
9
  public function dispatch() {
includes/views/checkout.php CHANGED
@@ -128,7 +128,7 @@ class WPBDP__Views__Checkout extends WPBDP__View {
128
  $this->fetch_payment();
129
 
130
  if ( ! wpbdp()->payment_gateways->can_pay() && 0 < $this->payment->amount ) {
131
- wp_die( _x( 'Can not process a payment at this time. Please try again later.', 'checkout', 'WPBDM' ) );
132
  }
133
 
134
  // We don't set gateway and validate nonce for non-pending payments or pending with already a gateway set.
@@ -165,7 +165,7 @@ class WPBDP__Views__Checkout extends WPBDP__View {
165
  $nonce = ! empty( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '';
166
 
167
  if ( ! wp_verify_nonce( $nonce, 'wpbdp-checkout-' . $this->payment_id ) ) {
168
- wp_die( _x( 'Invalid nonce received.', 'checkout', 'WPBDM' ) );
169
  }
170
  }
171
 
@@ -182,12 +182,12 @@ class WPBDP__Views__Checkout extends WPBDP__View {
182
  }
183
 
184
  if ( ! wpbdp()->payment_gateways->can_use( $chosen_gateway ) ) {
185
- wp_die( _x( 'Invalid gateway selected.', 'checkout', 'WPBDM' ) );
186
  }
187
 
188
  $this->gateway = wpbdp()->payment_gateways->get( $chosen_gateway );
189
  if ( ! $this->gateway->supports_currency( $this->payment->currency_code ) ) {
190
- wp_die( _x( 'Selected gateway does not support payment\'s currency.', 'checkout', 'WPBDM' ) );
191
  }
192
  }
193
 
@@ -196,7 +196,7 @@ class WPBDP__Views__Checkout extends WPBDP__View {
196
  // $checkout_form .= wpbdp_capture_action( 'wpbdp_checkout_form_top', $this->payment );
197
  $checkout_form .= $this->gateway->render_form( $this->payment, $this->errors );
198
  // $checkout_form .= wpbdp_capture_action( 'wpbdp_checkout_form_bottom', $this->payment );
199
- $checkout_form .= '<div class="wpbdp-checkout-submit"><input type="submit" value="' . _x( 'Pay Now', 'checkout', 'WPBDM' ) . '" /></div>';
200
 
201
  return $checkout_form;
202
  }
@@ -243,7 +243,7 @@ class WPBDP__Views__Checkout extends WPBDP__View {
243
  if ( ! empty( $res['error'] ) ) {
244
  $this->errors = array_merge( $this->errors, array( $res['error'] ) );
245
  } else {
246
- $this->errors[] = _x( 'Unknown gateway error.', 'checkout', 'WPBDM' );
247
  }
248
 
249
  // Forget about the card (just in case).
@@ -263,7 +263,7 @@ class WPBDP__Views__Checkout extends WPBDP__View {
263
 
264
  private function handle_return_request() {
265
  if ( ! $this->gateway ) {
266
- wp_die( _x( 'There was an error trying to process your request. No gateway is selected.', 'checkout', 'WPBDM' ) );
267
  }
268
 
269
  $this->payment->gateway = $this->gateway->get_id();
128
  $this->fetch_payment();
129
 
130
  if ( ! wpbdp()->payment_gateways->can_pay() && 0 < $this->payment->amount ) {
131
+ wp_die( _x( 'Can not process a payment at this time. Please try again later.', 'checkout', 'business-directory-plugin' ) );
132
  }
133
 
134
  // We don't set gateway and validate nonce for non-pending payments or pending with already a gateway set.
165
  $nonce = ! empty( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '';
166
 
167
  if ( ! wp_verify_nonce( $nonce, 'wpbdp-checkout-' . $this->payment_id ) ) {
168
+ wp_die( _x( 'Invalid nonce received.', 'checkout', 'business-directory-plugin' ) );
169
  }
170
  }
171
 
182
  }
183
 
184
  if ( ! wpbdp()->payment_gateways->can_use( $chosen_gateway ) ) {
185
+ wp_die( _x( 'Invalid gateway selected.', 'checkout', 'business-directory-plugin' ) );
186
  }
187
 
188
  $this->gateway = wpbdp()->payment_gateways->get( $chosen_gateway );
189
  if ( ! $this->gateway->supports_currency( $this->payment->currency_code ) ) {
190
+ wp_die( _x( 'Selected gateway does not support payment\'s currency.', 'checkout', 'business-directory-plugin' ) );
191
  }
192
  }
193
 
196
  // $checkout_form .= wpbdp_capture_action( 'wpbdp_checkout_form_top', $this->payment );
197
  $checkout_form .= $this->gateway->render_form( $this->payment, $this->errors );
198
  // $checkout_form .= wpbdp_capture_action( 'wpbdp_checkout_form_bottom', $this->payment );
199
+ $checkout_form .= '<div class="wpbdp-checkout-submit"><input type="submit" value="' . _x( 'Pay Now', 'checkout', 'business-directory-plugin' ) . '" /></div>';
200
 
201
  return $checkout_form;
202
  }
243
  if ( ! empty( $res['error'] ) ) {
244
  $this->errors = array_merge( $this->errors, array( $res['error'] ) );
245
  } else {
246
+ $this->errors[] = _x( 'Unknown gateway error.', 'checkout', 'business-directory-plugin' );
247
  }
248
 
249
  // Forget about the card (just in case).
263
 
264
  private function handle_return_request() {
265
  if ( ! $this->gateway ) {
266
+ wp_die( _x( 'There was an error trying to process your request. No gateway is selected.', 'checkout', 'business-directory-plugin' ) );
267
  }
268
 
269
  $this->payment->gateway = $this->gateway->get_id();
includes/views/delete_listing.php CHANGED
@@ -35,7 +35,7 @@ class WPBDP__Views__Delete_Listing extends WPBDP__Authenticated_Listing_View {
35
 
36
  if ( $nonce && wp_verify_nonce( $nonce, 'delete listing ' . $this->listing->get_id() ) ) {
37
  $this->listing->delete();
38
- $html = wpbdp_render_msg( _x( 'Your listing has been deleted.', 'delete listing', 'WPBDM' ) );
39
  $v = wpbdp_load_view( 'main' );
40
  $html .= $v->dispatch();
41
  return $html;
35
 
36
  if ( $nonce && wp_verify_nonce( $nonce, 'delete listing ' . $this->listing->get_id() ) ) {
37
  $this->listing->delete();
38
+ $html = wpbdp_render_msg( _x( 'Your listing has been deleted.', 'delete listing', 'business-directory-plugin' ) );
39
  $v = wpbdp_load_view( 'main' );
40
  $html .= $v->dispatch();
41
  return $html;
includes/views/flag_listing.php CHANGED
@@ -56,7 +56,7 @@ class WPBDP__Views__Flag_Listing extends WPBDP__View {
56
  if ( is_wp_error( $result ) ) {
57
  $this->errors[] = $result->get_error_message();
58
  } else {
59
- $flagging_msg = _x( 'The listing <i>%s</i> has been reported. <a>Return to directory</a>', 'flag listing', 'WPBDM' );
60
  $flagging_msg = sprintf( $flagging_msg, $this->listing->get_title() );
61
  $flagging_msg = str_replace( '<a>', '<a href="' . esc_url( wpbdp_url( 'main' ) ) . '">', $flagging_msg );
62
 
@@ -68,7 +68,7 @@ class WPBDP__Views__Flag_Listing extends WPBDP__View {
68
  // $flagging_pos = WPBDP__Listing_Flagging::user_has_flagged( $listing_id, $current_user );
69
  // WPBDP__Listing_Flagging::remove_flagging( $listing_id, $flagging_pos );
70
  //
71
- // $flagging_msg = _x( 'The listing <i>%s</i> has been unreported. <a>Return to listing</a>', 'flag listing', 'WPBDM' );
72
  // $flagging_msg = sprintf( $flagging_msg, $this->listing->get_title() );
73
  // $flagging_msg = str_replace( '<a>', '<a href="' . $this->listing->get_permalink() . '">', $flagging_msg );
74
  //
@@ -109,7 +109,7 @@ class WPBDP__Views__Flag_Listing extends WPBDP__View {
109
  $report['email'] = sanitize_email( $current_user ? $current_user->data->user_email : ( isset( $_POST['reportauthoremail'] ) ? trim( $_POST['reportauthoremail'] ) : '' ) );
110
 
111
  if ( false !== WPBDP__Listing_Flagging::ip_has_flagged( $this->listing_id, $report['ip'] ) ) {
112
- $this->errors[] = _x( 'Your current IP address already reported this listing.', 'flag listing', 'WPBDM' );
113
  }
114
 
115
  $error_msg = '';
@@ -122,20 +122,20 @@ class WPBDP__Views__Flag_Listing extends WPBDP__View {
122
 
123
  if ( ! empty( $flagging_options ) ) {
124
  if ( ! $report['reason'] ) {
125
- $this->errors[] = _x( 'You must select the reason to report this listing as inappropriate.', 'flag listing', 'WPBDM' );
126
  }
127
  } else {
128
  if ( ! $report['comments'] ) {
129
- $this->errors[] = _x( 'You must enter the reason to report this listing as inappropriate.', 'flag listing', 'WPBDM' );
130
  }
131
  }
132
 
133
  if ( ! $report['name'] ) {
134
- $this->errors[] = _x( 'Please enter your name.', 'flag listing', 'WPBDM' );
135
  }
136
 
137
  if ( ! $report['email'] ) {
138
- $this->errors[] = _x( 'Please enter your email.', 'flag listing', 'WPBDM' );
139
  }
140
 
141
  if ( $this->errors ) {
56
  if ( is_wp_error( $result ) ) {
57
  $this->errors[] = $result->get_error_message();
58
  } else {
59
+ $flagging_msg = _x( 'The listing <i>%s</i> has been reported. <a>Return to directory</a>', 'flag listing', 'business-directory-plugin' );
60
  $flagging_msg = sprintf( $flagging_msg, $this->listing->get_title() );
61
  $flagging_msg = str_replace( '<a>', '<a href="' . esc_url( wpbdp_url( 'main' ) ) . '">', $flagging_msg );
62
 
68
  // $flagging_pos = WPBDP__Listing_Flagging::user_has_flagged( $listing_id, $current_user );
69
  // WPBDP__Listing_Flagging::remove_flagging( $listing_id, $flagging_pos );
70
  //
71
+ // $flagging_msg = _x( 'The listing <i>%s</i> has been unreported. <a>Return to listing</a>', 'flag listing', 'business-directory-plugin' );
72
  // $flagging_msg = sprintf( $flagging_msg, $this->listing->get_title() );
73
  // $flagging_msg = str_replace( '<a>', '<a href="' . $this->listing->get_permalink() . '">', $flagging_msg );
74
  //
109
  $report['email'] = sanitize_email( $current_user ? $current_user->data->user_email : ( isset( $_POST['reportauthoremail'] ) ? trim( $_POST['reportauthoremail'] ) : '' ) );
110
 
111
  if ( false !== WPBDP__Listing_Flagging::ip_has_flagged( $this->listing_id, $report['ip'] ) ) {
112
+ $this->errors[] = _x( 'Your current IP address already reported this listing.', 'flag listing', 'business-directory-plugin' );
113
  }
114
 
115
  $error_msg = '';
122
 
123
  if ( ! empty( $flagging_options ) ) {
124
  if ( ! $report['reason'] ) {
125
+ $this->errors[] = _x( 'You must select the reason to report this listing as inappropriate.', 'flag listing', 'business-directory-plugin' );
126
  }
127
  } else {
128
  if ( ! $report['comments'] ) {
129
+ $this->errors[] = _x( 'You must enter the reason to report this listing as inappropriate.', 'flag listing', 'business-directory-plugin' );
130
  }
131
  }
132
 
133
  if ( ! $report['name'] ) {
134
+ $this->errors[] = _x( 'Please enter your name.', 'flag listing', 'business-directory-plugin' );
135
  }
136
 
137
  if ( ! $report['email'] ) {
138
+ $this->errors[] = _x( 'Please enter your email.', 'flag listing', 'business-directory-plugin' );
139
  }
140
 
141
  if ( $this->errors ) {
includes/views/listing_contact.php CHANGED
@@ -52,15 +52,15 @@ class WPBDP__Views__Listing_Contact extends WPBDP__View {
52
  }
53
 
54
  if ( ! $this->name ) {
55
- $this->errors[] = _x( 'Please enter your name.', 'contact-message', 'WPBDM' );
56
  }
57
 
58
  if ( ! wpbdp_validate_value( $this->email, 'email' ) ) {
59
- $this->errors[] = _x( 'Please enter a valid email.', 'contact-message', 'WPBDM' );
60
  }
61
 
62
  if ( ! $this->message ) {
63
- $this->errors[] = _x( 'You did not enter a message.', 'contact-message', 'WPBDM' );
64
  }
65
 
66
  $error_msg = '';
@@ -79,7 +79,7 @@ class WPBDP__Views__Listing_Contact extends WPBDP__View {
79
  $error_msg = str_replace(
80
  '<a>',
81
  '<a href="' . esc_url( add_query_arg( 'redirect_to', urlencode( apply_filters( 'the_permalink', get_permalink() ) ), wpbdp_url( 'login' ) ) ) . '">',
82
- _x( 'Please <a>log in</a> to be able to send messages to the listing owner.', 'contact form', 'WPBDM' )
83
  );
84
  return false;
85
  }
@@ -178,7 +178,7 @@ class WPBDP__Views__Listing_Contact extends WPBDP__View {
178
  }
179
 
180
  if ( $data['count'] >= $daily_limit ) {
181
- $error_msg = _x( 'This contact form is temporarily disabled. Please try again later.', 'contact form', 'WPBDM' );
182
  return false;
183
  }
184
 
@@ -197,11 +197,11 @@ class WPBDP__Views__Listing_Contact extends WPBDP__View {
197
  $html .= '<div class="wpbdp-listing-contact-form">';
198
 
199
  if ( ! $_POST ) {
200
- $html .= '<div><input type="button" class="wpbdp-show-on-mobile send-message-button wpbdp-button" value="' . _x( 'Contact listing owner', 'templates', 'WPBDM' ) . '" /></div>';
201
  $html .= '<div class="wpbdp-hide-on-mobile contact-form-wrapper">';
202
  }
203
 
204
- $html .= '<h3>' . _x( 'Send Message to listing owner', 'templates', 'WPBDM' ) . '</h3>';
205
 
206
  $form = '';
207
 
@@ -267,12 +267,12 @@ class WPBDP__Views__Listing_Contact extends WPBDP__View {
267
  $html = '';
268
 
269
  if ( $email->send() ) {
270
- $html .= wpbdp_render_msg( _x( 'Your message has been sent.', 'contact-message', 'WPBDM' ) );
271
  $this->update_contacts( $listing_id );
272
 
273
  // Notify admin.
274
  if ( in_array( 'listing-contact', wpbdp_get_option( 'admin-notifications' ), true ) ) {
275
- // $replacements[ 'listing-url' ] = sprintf( _x( '%s (admin: %s)', 'contact-message', 'WPBDM' ),
276
  // $replacements['listing-url'],
277
  // get_edit_post_link( $listing_id ) );
278
  // $admin_email = wpbdp_email_from_template( 'email-templates-contact', $replacements );
@@ -289,10 +289,10 @@ class WPBDP__Views__Listing_Contact extends WPBDP__View {
289
  $admin_email->send();
290
  }
291
  } else {
292
- $html .= wpbdp_render_msg( _x( 'There was a problem encountered. Your message has not been sent', 'contact-message', 'WPBDM' ), 'error' );
293
  }
294
 
295
- $html .= sprintf( '<p><a href="%s">%s</a></p>', get_permalink( $listing_id ), _x( 'Return to listing.', 'contact-message', 'WPBDM' ) );
296
  return $html;
297
  }
298
 
52
  }
53
 
54
  if ( ! $this->name ) {
55
+ $this->errors[] = _x( 'Please enter your name.', 'contact-message', 'business-directory-plugin' );
56
  }
57
 
58
  if ( ! wpbdp_validate_value( $this->email, 'email' ) ) {
59
+ $this->errors[] = _x( 'Please enter a valid email.', 'contact-message', 'business-directory-plugin' );
60
  }
61
 
62
  if ( ! $this->message ) {
63
+ $this->errors[] = _x( 'You did not enter a message.', 'contact-message', 'business-directory-plugin' );
64
  }
65
 
66
  $error_msg = '';
79
  $error_msg = str_replace(
80
  '<a>',
81
  '<a href="' . esc_url( add_query_arg( 'redirect_to', urlencode( apply_filters( 'the_permalink', get_permalink() ) ), wpbdp_url( 'login' ) ) ) . '">',
82
+ _x( 'Please <a>log in</a> to be able to send messages to the listing owner.', 'contact form', 'business-directory-plugin' )
83
  );
84
  return false;
85
  }
178
  }
179
 
180
  if ( $data['count'] >= $daily_limit ) {
181
+ $error_msg = _x( 'This contact form is temporarily disabled. Please try again later.', 'contact form', 'business-directory-plugin' );
182
  return false;
183
  }
184
 
197
  $html .= '<div class="wpbdp-listing-contact-form">';
198
 
199
  if ( ! $_POST ) {
200
+ $html .= '<div><input type="button" class="wpbdp-show-on-mobile send-message-button wpbdp-button" value="' . _x( 'Contact listing owner', 'templates', 'business-directory-plugin' ) . '" /></div>';
201
  $html .= '<div class="wpbdp-hide-on-mobile contact-form-wrapper">';
202
  }
203
 
204
+ $html .= '<h3>' . _x( 'Send Message to listing owner', 'templates', 'business-directory-plugin' ) . '</h3>';
205
 
206
  $form = '';
207
 
267
  $html = '';
268
 
269
  if ( $email->send() ) {
270
+ $html .= wpbdp_render_msg( _x( 'Your message has been sent.', 'contact-message', 'business-directory-plugin' ) );
271
  $this->update_contacts( $listing_id );
272
 
273
  // Notify admin.
274
  if ( in_array( 'listing-contact', wpbdp_get_option( 'admin-notifications' ), true ) ) {
275
+ // $replacements[ 'listing-url' ] = sprintf( _x( '%s (admin: %s)', 'contact-message', 'business-directory-plugin' ),
276
  // $replacements['listing-url'],
277
  // get_edit_post_link( $listing_id ) );
278
  // $admin_email = wpbdp_email_from_template( 'email-templates-contact', $replacements );
289
  $admin_email->send();
290
  }
291
  } else {
292
+ $html .= wpbdp_render_msg( _x( 'There was a problem encountered. Your message has not been sent', 'contact-message', 'business-directory-plugin' ), 'error' );
293
  }
294
 
295
+ $html .= sprintf( '<p><a href="%s">%s</a></p>', get_permalink( $listing_id ), _x( 'Return to listing.', 'contact-message', 'business-directory-plugin' ) );
296
  return $html;
297
  }
298
 
includes/views/login.php CHANGED
@@ -29,6 +29,8 @@ class WPBDP__Views__Login extends WPBDP__View {
29
  return $this->_redirect( $redirect_to );
30
  }
31
 
 
 
32
  $login_url = trim( wpbdp_get_option( 'login-url' ) );
33
 
34
  if ( $login_url ) {
@@ -44,7 +46,7 @@ class WPBDP__Views__Login extends WPBDP__View {
44
  $redirect_to = add_query_arg( 'access_key_hash', $hash, $redirect_to );
45
  $this->_redirect( $redirect_to );
46
  } else {
47
- $errors = array( _x( 'Please enter a valid e-mail/access key combination.', 'views:login', 'WPBDM' ) );
48
  }
49
  }
50
 
@@ -52,6 +54,7 @@ class WPBDP__Views__Login extends WPBDP__View {
52
  'redirect_to' => $redirect_to,
53
  'access_key_enabled' => $key_access_enabled,
54
  'request_access_key_url' => add_query_arg( 'redirect_to', urlencode( $redirect_to ), wpbdp_url( 'request_access_keys' ) ),
 
55
  );
56
 
57
  return $this->_render( 'login', $params );
29
  return $this->_redirect( $redirect_to );
30
  }
31
 
32
+ $errors = array();
33
+
34
  $login_url = trim( wpbdp_get_option( 'login-url' ) );
35
 
36
  if ( $login_url ) {
46
  $redirect_to = add_query_arg( 'access_key_hash', $hash, $redirect_to );
47
  $this->_redirect( $redirect_to );
48
  } else {
49
+ $errors = array( _x( 'Please enter a valid e-mail/access key combination.', 'views:login', 'business-directory-plugin' ) );
50
  }
51
  }
52
 
54
  'redirect_to' => $redirect_to,
55
  'access_key_enabled' => $key_access_enabled,
56
  'request_access_key_url' => add_query_arg( 'redirect_to', urlencode( $redirect_to ), wpbdp_url( 'request_access_keys' ) ),
57
+ 'errors' => $errors
58
  );
59
 
60
  return $this->_render( 'login', $params );
includes/views/main.php CHANGED
@@ -6,9 +6,9 @@ class WPBDP__Views__Main extends WPBDP__View {
6
 
7
  if ( count(get_terms(WPBDP_CATEGORY_TAX, array('hide_empty' => 0))) == 0 ) {
8
  if (is_user_logged_in() && current_user_can('install_plugins')) {
9
- $html .= wpbdp_render_msg( _x('There are no categories assigned to the business directory yet. You need to assign some categories to the business directory. Only admins can see this message. Regular users are seeing a message that there are currently no listings in the directory. Listings cannot be added until you assign categories to the business directory.', 'templates', 'WPBDM'), 'error' );
10
  } else {
11
- $html .= "<p>" . _x('There are currently no listings in the directory.', 'templates', 'WPBDM') . "</p>";
12
  }
13
  }
14
 
@@ -16,7 +16,7 @@ class WPBDP__Views__Main extends WPBDP__View {
16
  wp_count_terms( WPBDP_CATEGORY_TAX, 'hide_empty=0' ) > 0 && wp_count_terms( WPBDP_CATEGORY_TAX, 'hide_empty=1' ) == 0 ) {
17
  $msg = _x( 'You have "Hide Empty Categories" on and some categories that don\'t have listings in them. That means they won\'t show up on the front end of your site. If you didn\'t want that, click <a>here</a> to change the setting.',
18
  'templates',
19
- 'WPBDM' );
20
  $msg = str_replace( '<a>',
21
  '<a href="' . admin_url( 'admin.php?page=wpbdp_settings&tab=listings#hide-empty-categories' ) . '">',
22
  $msg );
6
 
7
  if ( count(get_terms(WPBDP_CATEGORY_TAX, array('hide_empty' => 0))) == 0 ) {
8
  if (is_user_logged_in() && current_user_can('install_plugins')) {
9
+ $html .= wpbdp_render_msg( _x('There are no categories assigned to the business directory yet. You need to assign some categories to the business directory. Only admins can see this message. Regular users are seeing a message that there are currently no listings in the directory. Listings cannot be added until you assign categories to the business directory.', 'templates', 'business-directory-plugin' ), 'error' );
10
  } else {
11
+ $html .= "<p>" . _x('There are currently no listings in the directory.', 'templates', 'business-directory-plugin' ) . "</p>";
12
  }
13
  }
14
 
16
  wp_count_terms( WPBDP_CATEGORY_TAX, 'hide_empty=0' ) > 0 && wp_count_terms( WPBDP_CATEGORY_TAX, 'hide_empty=1' ) == 0 ) {
17
  $msg = _x( 'You have "Hide Empty Categories" on and some categories that don\'t have listings in them. That means they won\'t show up on the front end of your site. If you didn\'t want that, click <a>here</a> to change the setting.',
18
  'templates',
19
+ 'business-directory-plugin' );
20
  $msg = str_replace( '<a>',
21
  '<a href="' . admin_url( 'admin.php?page=wpbdp_settings&tab=listings#hide-empty-categories' ) . '">',
22
  $msg );
includes/views/manage_listings.php CHANGED
@@ -13,11 +13,20 @@
13
  */
14
  class WPBDP__Views__Manage_Listings extends WPBDP__View {
15
 
 
 
 
 
 
 
 
 
 
16
  public function dispatch() {
17
  $current_user = is_user_logged_in() ? wp_get_current_user() : null;
18
 
19
  if ( ! $current_user ) {
20
- $login_msg = _x( 'Please <a>login</a> to manage your listings.', 'view:manage-listings', 'WPBDM' );
21
  $login_msg = str_replace(
22
  '<a>',
23
  '<a href="' . esc_attr( add_query_arg( 'redirect_to', urlencode( apply_filters( 'the_permalink', get_permalink() ) ), wpbdp_url( 'login' ) ) ) . '">',
@@ -28,7 +37,7 @@ class WPBDP__Views__Manage_Listings extends WPBDP__View {
28
 
29
  $args = array(
30
  'post_type' => WPBDP_POST_TYPE,
31
- 'post_status' => 'publish',
32
  'paged' => get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1,
33
  'author' => $current_user->ID,
34
  'wpbdp_main_query' => true
@@ -38,11 +47,59 @@ class WPBDP__Views__Manage_Listings extends WPBDP__View {
38
 
39
  $html = $this->_render_page( 'manage_listings', array( 'current_user' => $current_user,
40
  'query' => $q,
41
- '_bar' => $this->show_search_bar ) );
42
 
43
  wpbdp_pop_query();
44
 
45
  return $html;
46
  }
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  }
13
  */
14
  class WPBDP__Views__Manage_Listings extends WPBDP__View {
15
 
16
+ public function __construct( $args = null ) {
17
+ parent::__construct( $args );
18
+ add_filter( 'wpbdp_form_field_html_value', array( $this, 'remove_expired_listings_title_links' ), 10, 3 );
19
+ add_filter( 'wpbdp_user_can_view', array( $this, 'maybe_remove_listing_buttons'), 20, 3 );
20
+ add_filter( 'wpbdp_user_can_edit', array( $this, 'maybe_remove_listing_buttons'), 20, 3 );
21
+ add_filter( 'wpbdp_user_can_flagging', array( $this, 'maybe_remove_listing_buttons'), 20, 3 );
22
+ add_filter( 'wpbdp-listing-buttons', array( $this, 'maybe_add_renew_button' ), 10, 2 );
23
+ }
24
+
25
  public function dispatch() {
26
  $current_user = is_user_logged_in() ? wp_get_current_user() : null;
27
 
28
  if ( ! $current_user ) {
29
+ $login_msg = _x( 'Please <a>login</a> to manage your listings.', 'view:manage-listings', 'business-directory-plugin' );
30
  $login_msg = str_replace(
31
  '<a>',
32
  '<a href="' . esc_attr( add_query_arg( 'redirect_to', urlencode( apply_filters( 'the_permalink', get_permalink() ) ), wpbdp_url( 'login' ) ) ) . '">',
37
 
38
  $args = array(
39
  'post_type' => WPBDP_POST_TYPE,
40
+ 'post_status' => array( 'publish', 'pending', 'draft' ),
41
  'paged' => get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1,
42
  'author' => $current_user->ID,
43
  'wpbdp_main_query' => true
47
 
48
  $html = $this->_render_page( 'manage_listings', array( 'current_user' => $current_user,
49
  'query' => $q,
50
+ '_bar' => ! empty( $this->show_search_bar ) ? $this->show_search_bar : false ) );
51
 
52
  wpbdp_pop_query();
53
 
54
  return $html;
55
  }
56
 
57
+ public function remove_expired_listings_title_links( $value, $listing_id, $field ) {
58
+ if ( 'title' !== $field->get_association() || current_user_can( 'administrator' ) ) {
59
+ return $value;
60
+ }
61
+
62
+ $listing = wpbdp_get_listing( $listing_id );
63
+ $listing_status = $listing->get_status();
64
+
65
+ if ( 'complete' === $listing_status ) {
66
+ return $value;
67
+ }
68
+
69
+ return sprintf( '%s (%s)', $field->plain_value( $listing_id ), $listing_status );
70
+ }
71
+
72
+ public function maybe_remove_listing_buttons( $res, $listing_id, $user_id ) {
73
+ if ( current_user_can( 'administrator' ) ) {
74
+ return $res;
75
+ }
76
+
77
+ $listing = wpbdp_get_listing( $listing_id );
78
+ $listing_status = $listing->get_status();
79
+
80
+ if ( 'complete' === $listing_status ) {
81
+ return $res;
82
+ }
83
+
84
+ return false;
85
+
86
+ }
87
+
88
+ public function maybe_add_renew_button( $buttons, $listing_id ) {
89
+ $listing = wpbdp_get_listing( $listing_id );
90
+ $listing_status = $listing->get_status();
91
+
92
+ if ( 'complete' === $listing_status ) {
93
+ return $buttons;
94
+ }
95
+
96
+ $buttons = sprintf(
97
+ '<a class="wpbdp-button button renew-listing" href="%s" %s >%s</a>',
98
+ $listing->get_renewal_url(),
99
+ esc_html( 'target="_blank" rel="noopener"' ),
100
+ _x( 'Renew Listing', 'view:manage-listings', 'business-directory-plugin' )
101
+ ) . $buttons;
102
+
103
+ return $buttons;
104
+ }
105
  }
includes/views/manage_recurring.php CHANGED
@@ -33,7 +33,7 @@ class WPBDP__Views__Manage_Recurring extends WPBDP__View {
33
  }
34
 
35
  if ( ! $listing ) {
36
- $message = _x( "The listing with id = <listing-id> doesn't exists.", 'manage subscription', 'WPBDM' );
37
  $message = str_replace( '<listing-id>', $listing_id, $message );
38
 
39
  return wpbdp_render_msg( $message, 'error' );
@@ -46,7 +46,7 @@ class WPBDP__Views__Manage_Recurring extends WPBDP__View {
46
  }
47
 
48
  if ( ! $cancel_subscription_nonce || wp_create_nonce( 'cancel-subscription-' . $listing->get_id() ) != $cancel_subscription_nonce ) {
49
- $message = _x( 'You are not authorized to cancel this subscription. The link you followed is invalid.', 'manage subscriptions', 'WPBDM' );
50
  return wpbdp_render_msg( $message, 'error' );
51
  }
52
 
@@ -57,7 +57,7 @@ class WPBDP__Views__Manage_Recurring extends WPBDP__View {
57
  }
58
 
59
  if ( ! $subscription ) {
60
- return wpbdp_render_msg( _x( 'Invalid subscription.', 'manage subscriptions', 'WPBDM' ), 'error' );
61
  }
62
 
63
  if ( ! empty( $_POST['return-to-subscriptions'] ) ) {
@@ -80,7 +80,7 @@ class WPBDP__Views__Manage_Recurring extends WPBDP__View {
80
  return wpbdp_render_msg( $e->getMessage(), 'error' );
81
  }
82
 
83
- return wpbdp_render_msg( _x( 'Your subscription was canceled.', 'manage subscriptions', 'WPBDM' ) );
84
  }
85
 
86
  public function render_cancel_subscription_page( $listing, $subscription ) {
@@ -97,7 +97,7 @@ class WPBDP__Views__Manage_Recurring extends WPBDP__View {
97
  $listings = $this->get_recurring_listings();
98
 
99
  if ( ! $listings ) {
100
- return wpbdp_render_msg( _x( 'You are not on recurring payments for any of your listings.', 'manage listings', 'WPBDM' ) );
101
  }
102
 
103
  return wpbdp_render( 'manage-recurring', array( 'listings' => $listings ), false );
33
  }
34
 
35
  if ( ! $listing ) {
36
+ $message = _x( "The listing with id = <listing-id> doesn't exists.", 'manage subscription', 'business-directory-plugin' );
37
  $message = str_replace( '<listing-id>', $listing_id, $message );
38
 
39
  return wpbdp_render_msg( $message, 'error' );
46
  }
47
 
48
  if ( ! $cancel_subscription_nonce || wp_create_nonce( 'cancel-subscription-' . $listing->get_id() ) != $cancel_subscription_nonce ) {
49
+ $message = _x( 'You are not authorized to cancel this subscription. The link you followed is invalid.', 'manage subscriptions', 'business-directory-plugin' );
50
  return wpbdp_render_msg( $message, 'error' );
51
  }
52
 
57
  }
58
 
59
  if ( ! $subscription ) {
60
+ return wpbdp_render_msg( _x( 'Invalid subscription.', 'manage subscriptions', 'business-directory-plugin' ), 'error' );
61
  }
62
 
63
  if ( ! empty( $_POST['return-to-subscriptions'] ) ) {
80
  return wpbdp_render_msg( $e->getMessage(), 'error' );
81
  }
82
 
83
+ return wpbdp_render_msg( _x( 'Your subscription was canceled.', 'manage subscriptions', 'business-directory-plugin' ) );
84
  }
85
 
86
  public function render_cancel_subscription_page( $listing, $subscription ) {
97
  $listings = $this->get_recurring_listings();
98
 
99
  if ( ! $listings ) {
100
+ return wpbdp_render_msg( _x( 'You are not on recurring payments for any of your listings.', 'manage listings', 'business-directory-plugin' ) );
101
  }
102
 
103
  return wpbdp_render( 'manage-recurring', array( 'listings' => $listings ), false );
includes/views/renew_listing.php CHANGED
@@ -23,13 +23,13 @@ class WPBDP__Views__Renew_Listing extends WPBDP__Authenticated_Listing_View {
23
  global $wpdb;
24
 
25
  if ( ! wpbdp_get_option( 'listing-renewal' ) ) {
26
- return wpbdp_render_msg( _x( 'Listing renewal is disabled at this moment. Please try again later.', 'renewal', 'WPBDM' ), 'error' );
27
  }
28
 
29
  $renewal_id = ! empty( $_GET['renewal_id'] ) ? $_GET['renewal_id'] : 0;
30
 
31
  if ( ! ( $this->listing = WPBDP_Listing::get( $renewal_id ) ) ) {
32
- return wpbdp_render_msg( _x( 'Your renewal ID is invalid. Please use the URL you were given on the renewal e-mail message.', 'renewal', 'WPBDM' ), 'error' );
33
  }
34
 
35
  $this->_auth_required(
@@ -55,9 +55,9 @@ class WPBDP__Views__Renew_Listing extends WPBDP__Authenticated_Listing_View {
55
 
56
  if ( isset( $_POST['cancel-renewal'] ) ) {
57
  if ( $this->listing->delete() ) {
58
- return wpbdp_render_msg( _x( 'Your listing has been removed from the directory.', 'renewal', 'WPBDM' ) );
59
  } else {
60
- return wpbdp_render_msg( _x( 'Could not remove listing from directory.', 'renewal', 'WPBDM' ), 'error' );
61
  }
62
  }
63
 
@@ -130,7 +130,7 @@ class WPBDP__Views__Renew_Listing extends WPBDP__Authenticated_Listing_View {
130
  $payment->payment_items = array();
131
  $payment->payment_items[] = array(
132
  'type' => 'plan',
133
- 'description' => sprintf( _x( 'Fee "%s" renewal.', 'listings', 'WPBDM' ), $fee->label ),
134
  'amount' => $fee->calculate_amount( $this->listing->get_categories() ),
135
  'fee_id' => $fee->id,
136
  'fee_days' => $fee->days,
23
  global $wpdb;
24
 
25
  if ( ! wpbdp_get_option( 'listing-renewal' ) ) {
26
+ return wpbdp_render_msg( _x( 'Listing renewal is disabled at this moment. Please try again later.', 'renewal', 'business-directory-plugin' ), 'error' );
27
  }
28
 
29
  $renewal_id = ! empty( $_GET['renewal_id'] ) ? $_GET['renewal_id'] : 0;
30
 
31
  if ( ! ( $this->listing = WPBDP_Listing::get( $renewal_id ) ) ) {
32
+ return wpbdp_render_msg( _x( 'Your renewal ID is invalid. Please use the URL you were given on the renewal e-mail message.', 'renewal', 'business-directory-plugin' ), 'error' );
33
  }
34
 
35
  $this->_auth_required(
55
 
56
  if ( isset( $_POST['cancel-renewal'] ) ) {
57
  if ( $this->listing->delete() ) {
58
+ return wpbdp_render_msg( _x( 'Your listing has been removed from the directory.', 'renewal', 'business-directory-plugin' ) );
59
  } else {
60
+ return wpbdp_render_msg( _x( 'Could not remove listing from directory.', 'renewal', 'business-directory-plugin' ), 'error' );
61
  }
62
  }
63
 
130
  $payment->payment_items = array();
131
  $payment->payment_items[] = array(
132
  'type' => 'plan',
133
+ 'description' => sprintf( _x( 'Fee "%s" renewal.', 'listings', 'business-directory-plugin' ), $fee->label ),
134
  'amount' => $fee->calculate_amount( $this->listing->get_categories() ),
135
  'fee_id' => $fee->id,
136
  'fee_days' => $fee->days,
includes/views/request_access_keys.php CHANGED
@@ -10,7 +10,7 @@ class WPBDP__Views__Request_Access_Keys extends WPBDP__View {
10
  str_replace(
11
  '<a>',
12
  '<a href="' . esc_url( wpbdp_get_page_link( 'main' ) ) . '">',
13
- _x( 'Did you mean to <a>access the Directory</a>?', 'request_access_keys', 'WPBDM' )
14
  ),
15
  'error'
16
  );
@@ -36,12 +36,12 @@ class WPBDP__Views__Request_Access_Keys extends WPBDP__View {
36
 
37
  if ( $message_sent ) {
38
  $html = '';
39
- $html .= wpbdp_render_msg( _x( 'Access keys have been sent to your e-mail address.', 'request_access_keys', 'WPBDM' ) );
40
 
41
  if ( ! empty( $_POST['redirect_to'] ) ) {
42
  $html .= '<p>';
43
  $html .= '<a href="' . esc_url( $_POST['redirect_to'] ) .'">';
44
- $html .= _x( '← Return to previous page', 'request_access_keys', 'WPBDM' );
45
  $html .= '</a>';
46
  $html .= '<p>';
47
  }
10
  str_replace(
11
  '<a>',
12
  '<a href="' . esc_url( wpbdp_get_page_link( 'main' ) ) . '">',
13
+ _x( 'Did you mean to <a>access the Directory</a>?', 'request_access_keys', 'business-directory-plugin' )
14
  ),
15
  'error'
16
  );
36
 
37
  if ( $message_sent ) {
38
  $html = '';
39
+ $html .= wpbdp_render_msg( _x( 'Access keys have been sent to your e-mail address.', 'request_access_keys', 'business-directory-plugin' ) );
40
 
41
  if ( ! empty( $_POST['redirect_to'] ) ) {
42
  $html .= '<p>';
43
  $html .= '<a href="' . esc_url( $_POST['redirect_to'] ) .'">';
44
+ $html .= _x( '← Return to previous page', 'request_access_keys', 'business-directory-plugin' );
45
  $html .= '</a>';
46
  $html .= '<p>';
47
  }
includes/views/search.php CHANGED
@@ -12,7 +12,7 @@ require_once WPBDP_PATH . 'includes/helpers/class-listing-search.php';
12
  class WPBDP__Views__Search extends WPBDP__View {
13
 
14
  public function get_title() {
15
- return _x( 'Find A Listing', 'views', 'WPBDM' );
16
  }
17
 
18
  public function dispatch() {
@@ -43,7 +43,7 @@ class WPBDP__Views__Search extends WPBDP__View {
43
  $value = $field->value_from_GET();
44
 
45
  if ( ! $value || $field->is_empty_value( $value ) ) {
46
- $validation_errors[] = sprintf( _x( '"%s" is required.', 'search', 'WPBDM' ), $field->get_label() );
47
  }
48
  }
49
  }
12
  class WPBDP__Views__Search extends WPBDP__View {
13
 
14
  public function get_title() {
15
+ return _x( 'Find A Listing', 'views', 'business-directory-plugin' );
16
  }
17
 
18
  public function dispatch() {
43
  $value = $field->value_from_GET();
44
 
45
  if ( ! $value || $field->is_empty_value( $value ) ) {
46
+ $validation_errors[] = sprintf( _x( '"%s" is required.', 'search', 'business-directory-plugin' ), $field->get_label() );
47
  }
48
  }
49
  }
includes/views/show_listing.php CHANGED
@@ -3,13 +3,14 @@
3
  class WPBDP__Views__Show_Listing extends WPBDP__View {
4
 
5
  public function dispatch() {
6
- if ( ! wpbdp_user_can( 'view', null ) )
7
  $this->_http_404();
 
8
 
9
 
10
  $html = '';
11
  if ( 'publish' != get_post_status( get_the_ID() ) && current_user_can( 'edit_posts' ) ) {
12
- $html .= wpbdp_render_msg( _x('This is just a preview. The listing has not been published yet.', 'preview', 'WPBDM') );
13
  }
14
 
15
  /* // Handle ?v=viewname argument for alternative views (other than 'single').
3
  class WPBDP__Views__Show_Listing extends WPBDP__View {
4
 
5
  public function dispatch() {
6
+ if ( ! wpbdp_user_can( 'view', null ) ) {
7
  $this->_http_404();
8
+ }
9
 
10
 
11
  $html = '';
12
  if ( 'publish' != get_post_status( get_the_ID() ) && current_user_can( 'edit_posts' ) ) {
13
+ $html .= wpbdp_render_msg( _x('This is just a preview. The listing has not been published yet.', 'preview', 'business-directory-plugin' ) );
14
  }
15
 
16
  /* // Handle ?v=viewname argument for alternative views (other than 'single').
includes/views/submit_listing.php CHANGED
@@ -28,7 +28,7 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
28
 
29
 
30
  public function get_title() {
31
- return _x( 'Submit A Listing', 'views', 'WPBDM' );
32
  }
33
 
34
  public function enqueue_resources() {
@@ -38,7 +38,8 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
38
  'wpbdp-submit-listing',
39
  WPBDP_URL . 'assets/js/submit-listing.min.js',
40
  array(),
41
- WPBDP_VERSION
 
42
  );
43
 
44
  wp_enqueue_script( 'wpbdp-checkout' );
@@ -59,13 +60,15 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
59
  }
60
 
61
  wp_localize_script(
62
- 'wpbdp-submit-listing', 'wpbdpSubmitListingL10n', array(
63
- 'categoriesPlaceholderTxt' => _x( 'Click this field to add categories', 'submit listing', 'WPBDM' ),
64
- 'completeListingTxt' => _x( 'Complete Listing', 'submit listing', 'WPBDM' ),
65
- 'continueToPaymentTxt' => _x( 'Continue to Payment', 'submit listing', 'WPBDM' ),
 
 
66
  'isAdmin' => current_user_can( 'administrator' ),
67
- 'waitAMoment' => _x( 'Please wait a moment!', 'submit listing', 'WPBDM' ),
68
- 'somethingWentWrong' => _x( 'Something went wrong!', 'submit listing', 'WPBDM' ),
69
  )
70
  );
71
 
@@ -90,9 +93,9 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
90
  $message = '';
91
 
92
  if ( empty( $_REQUEST['listing_id'] ) ) {
93
- $message = _x( 'No listing ID was specified.', 'submit listing', 'WPBDM' );
94
  } elseif ( ! wpbdp_user_can( 'edit', $_GET['listing_id'] ) ) {
95
- $message = _x( "You can't edit this listing.", 'submit listing', 'WPBDM' );
96
  }
97
 
98
  if ( $message ) {
@@ -107,7 +110,7 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
107
  if ( $this->editing ) {
108
  $auth_parameters = array(
109
  'wpbdp_view' => 'edit_listing',
110
- 'redirect_query_args' => array( 'listing_id' => $this->listing->get_id() )
111
  );
112
  }
113
 
@@ -146,12 +149,12 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
146
  str_replace(
147
  '<a>',
148
  '<a href="' . esc_url( $this->listing->get_admin_edit_link() ) . '">',
149
- _x( 'This listing can\'t be edited at this time because it has no fee plan associated. Please <a>edit the listing</a> on the backend and associate it to a fee plan.', 'submit listing', 'WPBDM' )
150
  ),
151
  'error'
152
  );
153
  } else {
154
- return wpbdp_render_msg( _x( 'This listing can\'t be edited at this time. Please try again later or contact the admin if the problem persists.', 'submit listing', 'WPBDM' ), 'error' );
155
  }
156
  }
157
 
@@ -174,7 +177,7 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
174
  }
175
 
176
  if ( current_user_can( 'administrator' ) ) {
177
- $this->messages( _x( 'You\'re logged in as admin, payment will be skipped.', 'submit listing', 'WPBDM' ), 'notice', 'general' );
178
  }
179
 
180
  $instructions = trim( wpbdp_get_option( 'submit-instructions' ) );
@@ -297,7 +300,8 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
297
 
298
  $sections[ $section['id'] ] = $section;
299
  $sections[ $section['id'] ]['html'] = wpbdp_render(
300
- 'submit-listing-section', array(
 
301
  'section' => $section,
302
  'messages' => $messages_html,
303
  )
@@ -345,9 +349,9 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
345
 
346
  if ( 'submit_listing' === wpbdp_current_view() && wpbdp_get_option( 'disable-submit-listing' ) ) {
347
  if ( current_user_can( 'administrator' ) ) {
348
- $msg = _x( '<b>View not available</b>. Do you have the "Disable Frontend Listing Submission?" setting checked?', 'templates', 'WPBDM' );
349
  } else {
350
- $msg = _x( 'Listing submission has been disabled. Contact the administrator for details.', 'templates', 'WPBDM' );
351
  }
352
 
353
  return false;
@@ -400,17 +404,17 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
400
 
401
  if ( $this->can_edit_plan_or_categories() ) {
402
  $sections['plan_selection'] = array(
403
- 'title' => $this->skip_plan_selection ? _x( 'Category selection', 'submit listing', 'WPBDM' ) : _x( 'Category & plan selection', 'submit listing', 'WPBDM' ),
404
  );
405
  }
406
 
407
  $sections['listing_fields'] = array(
408
- 'title' => _x( 'Listing Information', 'submit listing', 'WPBDM' ),
409
  );
410
 
411
  if ( wpbdp_get_option( 'allow-images' ) ) {
412
  $sections['listing_images'] = array(
413
- 'title' => _x( 'Listing Images', 'submit listing', 'WPBDM' ),
414
  );
415
  }
416
 
@@ -418,13 +422,13 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
418
 
419
  if ( ! $this->editing && ! wpbdp_get_option( 'require-login' ) && 'disabled' !== wpbdp_get_option( 'create-account-during-submit-mode' ) && ! is_user_logged_in() ) {
420
  $sections['account_creation'] = array(
421
- 'title' => _x( 'Account Creation', 'submit listing', 'WPBDM' ),
422
  );
423
  }
424
 
425
  if ( ! $this->editing && wpbdp_get_option( 'display-terms-and-conditions' ) ) {
426
  $sections['terms_and_conditions'] = array(
427
- 'title' => _x( 'Terms and Conditions', 'submit listing', 'WPBDM' ),
428
  );
429
  }
430
 
@@ -461,7 +465,7 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
461
  if ( ! $this->listing->has_fee_plan() && 'plan_selection' !== $section['id'] ) {
462
  $section['flags'][] = 'collapsed';
463
  $section['flags'][] = 'disabled';
464
- $section['html'] = _x( '(Please choose a fee plan above)', 'submit listing', 'WPBDM' );
465
  $section['state'] = 'disabled';
466
  continue;
467
  }
@@ -511,34 +515,34 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
511
  $plans = $this->available_plans;
512
 
513
  if ( ! $plans && ! $this->editing ) {
514
- $msg = _x( 'Can not submit a listing at this moment. Please try again later.', 'submit listing', 'WPBDM' );
515
  if ( current_user_can( 'administrator' ) ) {
516
  $msg .= '<br><br>';
517
- $msg .= _x( '<b>There are no Fee Plans available</b>, without a fee plan site users can\'t submit a listing. %s to create a fee plan', 'templates', 'WPBDM' );
518
 
519
  $msg = sprintf(
520
  $msg,
521
  sprintf(
522
  '<a href="%s">%s</a>',
523
  admin_url( 'admin.php?page=wpbdp-admin-fees' ),
524
- _x( 'Go to "Manage Fees"', 'admin', 'WPBDM' )
525
  )
526
  );
527
  }
528
  wp_die( $msg );
529
  }
530
 
531
- $msg = _x( 'Listing submission is not available at the moment. Contact the administrator for details.', 'templates', 'WPBDM' );
532
 
533
  if ( current_user_can( 'administrator' ) ) {
534
- $msg = _x( '<b>View not available</b>, there is no "Category" association field. %s and create a new field with this association, or assign this association to an existing field', 'templates', 'WPBDM' );
535
 
536
  $msg = sprintf(
537
  $msg,
538
  sprintf(
539
  '<a href="%s">%s</a>',
540
  admin_url( 'admin.php?page=wpbdp_admin_formfields' ),
541
- _x( 'Go to "Manage Form Fields"', 'admin', 'WPBDM' )
542
  )
543
  );
544
  }
@@ -553,7 +557,7 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
553
  $categories = $category_field->value_from_POST();
554
  if ( ! $categories && ! empty( $_POST ) ) {
555
  $this->data['previous_categories'] = array();
556
- $this->messages( _x( 'Please select a category.', 'submit listing', 'WPBDM' ), 'error', 'plan_selection' );
557
  }
558
  } else {
559
  $categories = $category_field->value_from_POST();
@@ -566,7 +570,7 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
566
  }
567
 
568
  if ( $this->saving() && ! $categories ) {
569
- $this->messages( _x( 'Please select a category for your listing.', 'submit listing', 'WPBDM' ), 'error', 'plan_selection' );
570
  $this->prevent_save = true;
571
  }
572
  } else {
@@ -586,9 +590,9 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
586
 
587
  if ( ! $plan || ! $plan->enabled || ! $plan->supports_category_selection( $categories ) ) {
588
  if ( $this->editing ) {
589
- $this->messages( _x( 'Please choose a valid category for your plan.', 'submit listing', 'WPBDM' ), 'error', 'plan_selection' );
590
  } else {
591
- $this->messages( _x( 'Please choose a valid fee plan for your category selection.', 'submit listing', 'WPBDM' ), 'error', 'plan_selection' );
592
  }
593
 
594
  $this->prevent_save = true;
@@ -673,7 +677,8 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
673
  if ( ! empty( $_POST['save_listing'] ) ) {
674
  $field_errors = null;
675
  $validate_res = apply_filters_ref_array(
676
- 'wpbdp_listing_submit_validate_field', array(
 
677
  $field->validate( $value, $field_errors ),
678
  &$field_errors,
679
  &$field,
@@ -697,7 +702,7 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
697
  do_action_ref_array( 'WPBDP_Listing::set_field_values', array( &$this->listing, $field_values ) );
698
 
699
  if ( $validation_errors ) {
700
- $this->messages( _x( 'Something went wrong. Please check the form for errors, correct them and submit again.', 'listing submit', 'WPBDM' ), 'error', 'listing_fields' );
701
  $this->prevent_save = true;
702
  }
703
 
@@ -781,7 +786,7 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
781
 
782
  if ( ! empty( $_POST['save_listing'] ) && ! count( $images_meta ) && wpbdp_get_option( 'enforce-image-upload' ) ) {
783
  $this->prevent_save = true;
784
- $this->messages( _x( 'Image upload is required, please provide at least one image and submit again.', 'listing submit', 'WPBDM' ), 'error', 'listing_images' );
785
  }
786
 
787
  $thumbnail_id = $this->listing->get_thumbnail_id();
@@ -827,22 +832,22 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
827
  $error = false;
828
 
829
  if ( ! $form_username ) {
830
- $this->messages( _x( 'Please enter your desired username.', 'submit listing', 'WPBDM' ), 'error', 'account_creation' );
831
  $error = true;
832
  }
833
 
834
  if ( ! $error && ! $form_email ) {
835
- $this->messages( _x( 'Please enter the e-mail for your new account.', 'submit listing', 'WPBDM' ), 'error', 'account_creation' );
836
  $error = true;
837
  }
838
 
839
  if ( ! $error && $form_username && username_exists( $form_username ) ) {
840
- $this->messages( _x( 'The username you chose is already in use. Please use a different one.', 'submit listing', 'WPBDM' ), 'error', 'account_creation' );
841
  $error = true;
842
  }
843
 
844
  if ( ! $error && $form_email && email_exists( $form_email ) ) {
845
- $this->messages( _x( 'The e-mail address you chose for your account is already in use.', 'submit listing', 'WPBDM' ), 'error', 'account_creation' );
846
  $error = true;
847
  }
848
 
@@ -857,20 +862,20 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
857
 
858
  if ( 'optional' == $mode ) {
859
  $html .= '<input id="wpbdp-submit-listing-create_account" type="checkbox" name="create-account" value="create-account" ' . checked( true, $form_create, false ) . '/>';
860
- $html .= '<label for="wpbdp-submit-listing-create_account">' . _x( 'Create a user account on this site', 'submit listing', 'WPBDM' ) . '</label>';
861
  }
862
 
863
  $html .= '<div id="wpbdp-submit-listing-account-details" class="' . ( ( 'optional' == $mode && ! $form_create ) ? 'wpbdp-hidden' : '' ) . '">';
864
 
865
  if ( 'required' == $mode ) {
866
  $html .= '<p>';
867
- $html .= _x( 'You need to create an account on the site. Please fill out the form below.', 'submit listing', 'WPBDM' );
868
  $html .= '</p>';
869
  }
870
 
871
  $html .= '<div class="wpbdp-form-field wpbdp-form-field-type-textfield">';
872
  $html .= '<div class="wpbdp-form-field-label">';
873
- $html .= '<label for="wpbdp-submit-listing-user_username">' . _x( 'Username:', 'submit listing', 'WPBDM' ) . '</label>';
874
  $html .= '</div>';
875
  $html .= '<div class="wpbdp-form-field-inner">';
876
  $html .= '<input id="wpbdp-submit-listing-user_username" type="text" name="user_username" value="' . esc_attr( $form_username ) .'" />';
@@ -879,7 +884,7 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
879
 
880
  $html .= '<div class="wpbdp-form-field wpbdp-form-field-type-textfield">';
881
  $html .= '<div class="wpbdp-form-field-label">';
882
- $html .= '<label for="wpbdp-submit-listing-user_email">' . _x( 'Email:', 'submit listing', 'WPBDM' ) . '</label>';
883
  $html .= '</div>';
884
  $html .= '<div class="wpbdp-form-field-inner">';
885
  $html .= '<input id="wpbdp-submit-listing-user_email" type="text" name="user_email" value="' . esc_attr( $form_email ) . '" />';
@@ -890,32 +895,40 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
890
  }
891
 
892
  private function terms_and_conditions() {
 
 
 
 
893
  $tos = trim( wpbdp_get_option( 'terms-and-conditions' ) );
894
 
895
- if ( ! $tos )
896
  return false;
 
 
 
897
 
898
  $is_url = wpbdp_starts_with( $tos, 'http://', false ) || wpbdp_starts_with( $tos, 'https://', false );
899
  $accepted = ! empty( $_POST['terms-and-conditions-agreement'] ) && 1 == $_POST['terms-and-conditions-agreement'];
900
 
901
  if ( $this->saving() && ! $accepted ) {
902
- $this->messages( _x( 'Please agree to the Terms and Conditions.', 'templates', 'WPBDM' ), 'error', 'terms_and_conditions' );
903
  $this->prevent_save = true;
904
  }
905
-
906
- $html = '';
 
 
907
 
908
  if ( ! $is_url ) {
909
  $html .= '<label for="wpbdp-terms-and-conditions">';
910
- $html .= _x( 'Terms and Conditions:', 'templates', 'WPBDM' );
911
  $html .= '</label><br />';
912
  $html .= sprintf( '<textarea id="wpbdp-terms-and-conditions" readonly="readonly" class="wpbdp-submit-listing-tos">%s</textarea>', esc_textarea( $tos ) );
913
- $html .= '<br />';
914
  }
915
 
916
  $html .= '<label for="wpbdp-terms-and-conditions-agreement">';
917
  $html .= '<input id="wpbdp-terms-and-conditions-agreement" type="checkbox" name="terms-and-conditions-agreement" value="1" ' . ( $accepted ? 'checked="checked"' : '' ) . ' />';
918
- $label = _x( 'I agree to the <a>Terms and Conditions</a>', 'templates', 'WPBDM' );
919
 
920
  if ( $is_url )
921
  $label = str_replace( '<a>', '<a href="' . esc_url( $tos ) . '" target="_blank" rel="noopener">', $label );
@@ -941,6 +954,17 @@ class WPBDP__Views__Submit_Listing extends WPBDP__Authenticated_Listing_View {
941
  wp_update_post( array( 'ID' => $this->listing->get_id(), 'post_author' => $user_id ) );
942
  }
943
 
 
 
 
 
 
 
 
 
 
 
 
944
  // XXX: what to do with this?
945
  // $extra = wpbdp_capture_action_array( 'wpbdp_listing_form_extra_sections', array( &$this->state ) );
946
  // return $this->render( 'extra-sections', array( 'output' => $extra ) );
28
 
29
 
30
  public function get_title() {
31
+ return _x( 'Submit A Listing', 'views', 'business-directory-plugin' );
32
  }
33
 
34
  public function enqueue_resources() {
38
  'wpbdp-submit-listing',
39
  WPBDP_URL . 'assets/js/submit-listing.min.js',
40
  array(),
41
+ WPBDP_VERSION,
42
+ false
43
  );
44
 
45
  wp_enqueue_script( 'wpbdp-checkout' );
60
  }
61
 
62
  wp_localize_script(
63
+ 'wpbdp-submit-listing',
64
+ 'wpbdpSubmitListingL10n',
65
+ array(
66
+ 'categoriesPlaceholderTxt' => _x( 'Click this field to add categories', 'submit listing', 'business-directory-plugin' ),
67
+ 'completeListingTxt' => _x( 'Complete Listing', 'submit listing', 'business-directory-plugin' ),
68
+ 'continueToPaymentTxt' => _x( 'Continue to Payment', 'submit listing', 'business-directory-plugin' ),
69
  'isAdmin' => current_user_can( 'administrator' ),
70
+ 'waitAMoment' => _x( 'Please wait a moment!', 'submit listing', 'business-directory-plugin' ),
71
+ 'somethingWentWrong' => _x( 'Something went wrong!', 'submit listing', 'business-directory-plugin' ),
72
  )
73
  );
74
 
93
  $message = '';
94
 
95
  if ( empty( $_REQUEST['listing_id'] ) ) {
96
+ $message = _x( 'No listing ID was specified.', 'submit listing', 'business-directory-plugin' );
97
  } elseif ( ! wpbdp_user_can( 'edit', $_GET['listing_id'] ) ) {
98
+ $message = _x( "You can't edit this listing.", 'submit listing', 'business-directory-plugin' );
99
  }
100
 
101
  if ( $message ) {
110
  if ( $this->editing ) {
111
  $auth_parameters = array(
112
  'wpbdp_view' => 'edit_listing',
113
+ 'redirect_query_args' => array( 'listing_id' => $this->listing->get_id() ),
114
  );
115
  }
116
 
149
  str_replace(
150
  '<a>',
151
  '<a href="' . esc_url( $this->listing->get_admin_edit_link() ) . '">',
152
+ _x( 'This listing can\'t be edited at this time because it has no fee plan associated. Please <a>edit the listing</a> on the backend and associate it to a fee plan.', 'submit listing', 'business-directory-plugin' )
153
  ),
154
  'error'
155
  );
156
  } else {
157
+ return wpbdp_render_msg( _x( 'This listing can\'t be edited at this time. Please try again later or contact the admin if the problem persists.', 'submit listing', 'business-directory-plugin' ), 'error' );
158
  }
159
  }
160
 
177
  }
178
 
179
  if ( current_user_can( 'administrator' ) ) {
180
+ $this->messages( _x( 'You\'re logged in as admin, payment will be skipped.', 'submit listing', 'business-directory-plugin' ), 'notice', 'general' );
181
  }
182
 
183
  $instructions = trim( wpbdp_get_option( 'submit-instructions' ) );
300
 
301
  $sections[ $section['id'] ] = $section;
302
  $sections[ $section['id'] ]['html'] = wpbdp_render(
303
+ 'submit-listing-section',
304
+ array(
305
  'section' => $section,
306
  'messages' => $messages_html,
307
  )
349
 
350
  if ( 'submit_listing' === wpbdp_current_view() && wpbdp_get_option( 'disable-submit-listing' ) ) {
351
  if ( current_user_can( 'administrator' ) ) {
352
+ $msg = _x( '<b>View not available</b>. Do you have the "Disable Frontend Listing Submission?" setting checked?', 'templates', 'business-directory-plugin' );
353
  } else {
354
+ $msg = _x( 'Listing submission has been disabled. Contact the administrator for details.', 'templates', 'business-directory-plugin' );
355
  }
356
 
357
  return false;
404
 
405
  if ( $this->can_edit_plan_or_categories() ) {
406
  $sections['plan_selection'] = array(
407
+ 'title' => $this->skip_plan_selection ? _x( 'Category selection', 'submit listing', 'business-directory-plugin' ) : _x( 'Category & plan selection', 'submit listing', 'business-directory-plugin' ),
408
  );
409
  }
410
 
411
  $sections['listing_fields'] = array(
412
+ 'title' => _x( 'Listing Information', 'submit listing', 'business-directory-plugin' ),
413
  );
414
 
415
  if ( wpbdp_get_option( 'allow-images' ) ) {
416
  $sections['listing_images'] = array(
417
+ 'title' => _x( 'Listing Images', 'submit listing', 'business-directory-plugin' ),
418
  );
419
  }
420
 
422
 
423
  if ( ! $this->editing && ! wpbdp_get_option( 'require-login' ) && 'disabled' !== wpbdp_get_option( 'create-account-during-submit-mode' ) && ! is_user_logged_in() ) {
424
  $sections['account_creation'] = array(
425
+ 'title' => _x( 'Account Creation', 'submit listing', 'business-directory-plugin' ),
426
  );
427
  }
428
 
429
  if ( ! $this->editing && wpbdp_get_option( 'display-terms-and-conditions' ) ) {
430
  $sections['terms_and_conditions'] = array(
431
+ 'title' => _x( 'Terms and Conditions', 'submit listing', 'business-directory-plugin' ),
432
  );
433
  }
434
 
465
  if ( ! $this->listing->has_fee_plan() && 'plan_selection' !== $section['id'] ) {
466
  $section['flags'][] = 'collapsed';
467
  $section['flags'][] = 'disabled';
468
+ $section['html'] = _x( '(Please choose a fee plan above)', 'submit listing', 'business-directory-plugin' );
469
  $section['state'] = 'disabled';
470
  continue;
471
  }
515
  $plans = $this->available_plans;
516
 
517
  if ( ! $plans && ! $this->editing ) {
518
+ $msg = _x( 'Can not submit a listing at this moment. Please try again later.', 'submit listing', 'business-directory-plugin' );
519
  if ( current_user_can( 'administrator' ) ) {
520
  $msg .= '<br><br>';
521
+ $msg .= _x( '<b>There are no Fee Plans available</b>, without a fee plan site users can\'t submit a listing. %s to create a fee plan', 'templates', 'business-directory-plugin' );
522
 
523
  $msg = sprintf(
524
  $msg,
525
  sprintf(
526
  '<a href="%s">%s</a>',
527
  admin_url( 'admin.php?page=wpbdp-admin-fees' ),
528
+ _x( 'Go to "Manage Fees"', 'admin', 'business-directory-plugin' )
529
  )
530
  );
531
  }
532
  wp_die( $msg );
533
  }
534
 
535
+ $msg = _x( 'Listing submission is not available at the moment. Contact the administrator for details.', 'templates', 'business-directory-plugin' );
536
 
537
  if ( current_user_can( 'administrator' ) ) {
538
+ $msg = _x( '<b>View not available</b>, there is no "Category" association field. %s and create a new field with this association, or assign this association to an existing field', 'templates', 'business-directory-plugin' );
539
 
540
  $msg = sprintf(
541
  $msg,
542
  sprintf(
543
  '<a href="%s">%s</a>',
544
  admin_url( 'admin.php?page=wpbdp_admin_formfields' ),
545
+ _x( 'Go to "Manage Form Fields"', 'admin', 'business-directory-plugin' )
546
  )
547
  );
548
  }
557
  $categories = $category_field->value_from_POST();
558
  if ( ! $categories && ! empty( $_POST ) ) {
559
  $this->data['previous_categories'] = array();
560
+ $this->messages( _x( 'Please select a category.', 'submit listing', 'business-directory-plugin' ), 'error', 'plan_selection' );
561
  }
562
  } else {
563
  $categories = $category_field->value_from_POST();
570
  }
571
 
572
  if ( $this->saving() && ! $categories ) {
573
+ $this->messages( _x( 'Please select a category for your listing.', 'submit listing', 'business-directory-plugin' ), 'error', 'plan_selection' );
574
  $this->prevent_save = true;
575
  }
576
  } else {
590
 
591
  if ( ! $plan || ! $plan->enabled || ! $plan->supports_category_selection( $categories ) ) {
592
  if ( $this->editing ) {
593
+ $this->messages( _x( 'Please choose a valid category for your plan.', 'submit listing', 'business-directory-plugin' ), 'error', 'plan_selection' );
594
  } else {
595
+ $this->messages( _x( 'Please choose a valid fee plan for your category selection.', 'submit listing', 'business-directory-plugin' ), 'error', 'plan_selection' );
596
  }
597
 
598
  $this->prevent_save = true;
677
  if ( ! empty( $_POST['save_listing'] ) ) {
678
  $field_errors = null;
679
  $validate_res = apply_filters_ref_array(
680
+ 'wpbdp_listing_submit_validate_field',
681
+ array(
682
  $field->validate( $value, $field_errors ),
683
  &$field_errors,
684
  &$field,
702
  do_action_ref_array( 'WPBDP_Listing::set_field_values', array( &$this->listing, $field_values ) );
703
 
704
  if ( $validation_errors ) {
705
+ $this->messages( _x( 'Something went wrong. Please check the form for errors, correct them and submit again.', 'listing submit', 'business-directory-plugin' ), 'error', 'listing_fields' );
706
  $this->prevent_save = true;
707
  }
708
 
786
 
787
  if ( ! empty( $_POST['save_listing'] ) && ! count( $images_meta ) && wpbdp_get_option( 'enforce-image-upload' ) ) {
788
  $this->prevent_save = true;
789
+ $this->messages( _x( 'Image upload is required, please provide at least one image and submit again.', 'listing submit', 'business-directory-plugin' ), 'error', 'listing_images' );
790
  }
791
 
792
  $thumbnail_id = $this->listing->get_thumbnail_id();
832
  $error = false;
833
 
834
  if ( ! $form_username ) {
835
+ $this->messages( _x( 'Please enter your desired username.', 'submit listing', 'business-directory-plugin' ), 'error', 'account_creation' );
836
  $error = true;
837
  }
838
 
839
  if ( ! $error && ! $form_email ) {
840
+ $this->messages( _x( 'Please enter the e-mail for your new account.', 'submit listing', 'business-directory-plugin' ), 'error', 'account_creation' );
841
  $error = true;
842
  }
843
 
844
  if ( ! $error && $form_username && username_exists( $form_username ) ) {
845
+ $this->messages( _x( 'The username you chose is already in use. Please use a different one.', 'submit listing', 'business-directory-plugin' ), 'error', 'account_creation' );
846
  $error = true;
847
  }
848
 
849
  if ( ! $error && $form_email && email_exists( $form_email ) ) {
850
+ $this->messages( _x( 'The e-mail address you chose for your account is already in use.', 'submit listing', 'business-directory-plugin' ), 'error', 'account_creation' );
851
  $error = true;
852
  }
853
 
862
 
863
  if ( 'optional' == $mode ) {
864
  $html .= '<input id="wpbdp-submit-listing-create_account" type="checkbox" name="create-account" value="create-account" ' . checked( true, $form_create, false ) . '/>';
865
+ $html .= '<label for="wpbdp-submit-listing-create_account">' . _x( 'Create a user account on this site', 'submit listing', 'business-directory-plugin' ) . '</label>';
866
  }
867
 
868
  $html .= '<div id="wpbdp-submit-listing-account-details" class="' . ( ( 'optional' == $mode && ! $form_create ) ? 'wpbdp-hidden' : '' ) . '">';
869
 
870
  if ( 'required' == $mode ) {
871
  $html .= '<p>';
872
+ $html .= _x( 'You need to create an account on the site. Please fill out the form below.', 'submit listing', 'business-directory-plugin' );
873
  $html .= '</p>';
874
  }
875
 
876
  $html .= '<div class="wpbdp-form-field wpbdp-form-field-type-textfield">';
877
  $html .= '<div class="wpbdp-form-field-label">';
878
+ $html .= '<label for="wpbdp-submit-listing-user_username">' . _x( 'Username:', 'submit listing', 'business-directory-plugin' ) . '</label>';
879
  $html .= '</div>';
880
  $html .= '<div class="wpbdp-form-field-inner">';
881
  $html .= '<input id="wpbdp-submit-listing-user_username" type="text" name="user_username" value="' . esc_attr( $form_username ) .'" />';
884
 
885
  $html .= '<div class="wpbdp-form-field wpbdp-form-field-type-textfield">';
886
  $html .= '<div class="wpbdp-form-field-label">';
887
+ $html .= '<label for="wpbdp-submit-listing-user_email">' . _x( 'Email:', 'submit listing', 'business-directory-plugin' ) . '</label>';
888
  $html .= '</div>';
889
  $html .= '<div class="wpbdp-form-field-inner">';
890
  $html .= '<input id="wpbdp-submit-listing-user_email" type="text" name="user_email" value="' . esc_attr( $form_email ) . '" />';
895
  }
896
 
897
  private function terms_and_conditions() {
898
+ if ( ! wpbdp_get_option( 'display-terms-and-conditions' ) ) {
899
+ return false;
900
+ }
901
+
902
  $tos = trim( wpbdp_get_option( 'terms-and-conditions' ) );
903
 
904
+ if ( empty( $tos ) ) {
905
  return false;
906
+ }
907
+
908
+ $html = '';
909
 
910
  $is_url = wpbdp_starts_with( $tos, 'http://', false ) || wpbdp_starts_with( $tos, 'https://', false );
911
  $accepted = ! empty( $_POST['terms-and-conditions-agreement'] ) && 1 == $_POST['terms-and-conditions-agreement'];
912
 
913
  if ( $this->saving() && ! $accepted ) {
914
+ $this->messages( _x( 'Please agree to the Terms and Conditions.', 'templates', 'business-directory-plugin' ), 'error', 'terms_and_conditions' );
915
  $this->prevent_save = true;
916
  }
917
+
918
+ if ( $this->saving() && ! $this->prevent_save && $accepted ) {
919
+ $this->data['tos_acceptance'] = date( 'Y-m-d H:i:s' );
920
+ }
921
 
922
  if ( ! $is_url ) {
923
  $html .= '<label for="wpbdp-terms-and-conditions">';
924
+ $html .= _x( 'Terms and Conditions:', 'templates', 'business-directory-plugin' );
925
  $html .= '</label><br />';
926
  $html .= sprintf( '<textarea id="wpbdp-terms-and-conditions" readonly="readonly" class="wpbdp-submit-listing-tos">%s</textarea>', esc_textarea( $tos ) );
 
927
  }
928
 
929
  $html .= '<label for="wpbdp-terms-and-conditions-agreement">';
930
  $html .= '<input id="wpbdp-terms-and-conditions-agreement" type="checkbox" name="terms-and-conditions-agreement" value="1" ' . ( $accepted ? 'checked="checked"' : '' ) . ' />';
931
+ $label = _x( 'I agree to the <a>Terms and Conditions</a>', 'templates', 'business-directory-plugin' );
932
 
933
  if ( $is_url )
934
  $label = str_replace( '<a>', '<a href="' . esc_url( $tos ) . '" target="_blank" rel="noopener">', $label );
954
  wp_update_post( array( 'ID' => $this->listing->get_id(), 'post_author' => $user_id ) );
955
  }
956
 
957
+ if ( ! empty( $this->data['tos_acceptance'] ) ) {
958
+ update_post_meta( $this->listing->get_id(), '_wpbdp_tos_acceptance_date', $this->data['tos_acceptance'] );
959
+ wpbdp_insert_log(
960
+ array(
961
+ 'log_type' => 'listing.terms_and_conditions_accepted',
962
+ 'object_id' => $this->listing->get_id(),
963
+ 'created_at' => $this->data['tos_acceptance']
964
+ )
965
+ );
966
+ }
967
+
968
  // XXX: what to do with this?
969
  // $extra = wpbdp_capture_action_array( 'wpbdp_listing_form_extra_sections', array( &$this->state ) );
970
  // return $this->render( 'extra-sections', array( 'output' => $extra ) );
includes/widgets/class-listings-widget.php CHANGED
@@ -42,13 +42,13 @@ class WPBDP_Listings_Widget extends WP_Widget {
42
  public function form( $instance ) {
43
  printf( '<p><label for="%s">%s</label> <input class="widefat" id="%s" name="%s" type="text" value="%s" /></p>',
44
  $this->get_field_id( 'title' ),
45
- _x( 'Title:', 'widgets', 'WPBDM' ),
46
  $this->get_field_id( 'title' ),
47
  $this->get_field_name( 'title' ),
48
  esc_attr( $this->get_field_value( $instance, 'title' ) ) );
49
  printf( '<p><label for="%s">%s</label> <input id="%s" name="%s" type="text" value="%s" size="5" /></p>',
50
  $this->get_field_id( 'number_of_listings' ),
51
- _x( 'Number of listings to display:', 'widgets', 'WPBDM' ),
52
  $this->get_field_id( 'number_of_listings' ),
53
  $this->get_field_name( 'number_of_listings' ),
54
  intval( $this->get_field_value( $instance, 'number_of_listings' ) ) );
@@ -57,7 +57,7 @@ class WPBDP_Listings_Widget extends WP_Widget {
57
 
58
  if ( in_array( 'images', $this->supports ) ) {
59
  echo '<h4>';
60
- _ex( 'Thumbnails', 'widgets', 'WPBDM' );
61
  echo '</h4>';
62
 
63
  printf( '<p><input id="%s" class="wpbdp-toggle-images" name="%s" type="checkbox" value="1" %s /> <label for="%s">%s</label></p>',
@@ -65,28 +65,28 @@ class WPBDP_Listings_Widget extends WP_Widget {
65
  $this->get_field_name( 'show_images' ),
66
  $this->get_field_value( $instance, 'show_images' ) ? 'checked="checked"' : '',
67
  $this->get_field_id( 'show_images' ),
68
- _x( 'Show thumbnails', 'widgets', 'WPBDM' ) );
69
 
70
  echo '<p class="thumbnail-width-config" style="' . ( $this->get_field_value( $instance, 'show_images' ) ? '' : 'display: none;' ) . '">';
71
  echo '<label for="' . $this->get_field_id( 'thumbnail_width' ) . '">';
72
- _ex( 'Image width (in px):', 'widgets', 'WPBDM' );
73
  echo '</label> ';
74
  printf( '<input type="text" name="%s" id="%s" value="%s" size="5" />',
75
  $this->get_field_name( 'thumbnail_width' ),
76
  $this->get_field_id( 'thumbnail_width' ),
77
  $this->get_field_value( $instance, 'thumbnail_width' ) );
78
- echo '<br /><span class="help">' . _x( 'Leave blank for automatic width.', 'widgets', 'WPBDM' ) . '</span>';
79
  echo '</p>';
80
 
81
  echo '<p class="thumbnail-height-config" style="' . ( $this->get_field_value( $instance, 'show_images' ) ? '' : 'display: none;' ) . '">';
82
  echo '<label for="' . $this->get_field_id( 'thumbnail_height' ) . '">';
83
- _ex( 'Image height (in px):', 'widgets', 'WPBDM' );
84
  echo '</label> ';
85
  printf( '<input type="text" name="%s" id="%s" value="%s" size="5" />',
86
  $this->get_field_name( 'thumbnail_height' ),
87
  $this->get_field_id( 'thumbnail_height' ),
88
  $this->get_field_value( $instance, 'thumbnail_height' ) );
89
- echo '<br /><span class="help">' . _x( 'Leave blank for automatic height.', 'widgets', 'WPBDM' ) . '</span>';
90
  echo '</p>';
91
  }
92
  }
42
  public function form( $instance ) {
43
  printf( '<p><label for="%s">%s</label> <input class="widefat" id="%s" name="%s" type="text" value="%s" /></p>',
44
  $this->get_field_id( 'title' ),
45
+ _x( 'Title:', 'widgets', 'business-directory-plugin' ),
46
  $this->get_field_id( 'title' ),
47
  $this->get_field_name( 'title' ),
48
  esc_attr( $this->get_field_value( $instance, 'title' ) ) );
49
  printf( '<p><label for="%s">%s</label> <input id="%s" name="%s" type="text" value="%s" size="5" /></p>',
50
  $this->get_field_id( 'number_of_listings' ),
51
+ _x( 'Number of listings to display:', 'widgets', 'business-directory-plugin' ),
52
  $this->get_field_id( 'number_of_listings' ),
53
  $this->get_field_name( 'number_of_listings' ),
54
  intval( $this->get_field_value( $instance, 'number_of_listings' ) ) );
57
 
58
  if ( in_array( 'images', $this->supports ) ) {
59
  echo '<h4>';
60
+ _ex( 'Thumbnails', 'widgets', 'business-directory-plugin' );
61
  echo '</h4>';
62
 
63
  printf( '<p><input id="%s" class="wpbdp-toggle-images" name="%s" type="checkbox" value="1" %s /> <label for="%s">%s</label></p>',
65
  $this->get_field_name( 'show_images' ),
66
  $this->get_field_value( $instance, 'show_images' ) ? 'checked="checked"' : '',
67
  $this->get_field_id( 'show_images' ),
68
+ _x( 'Show thumbnails', 'widgets', 'business-directory-plugin' ) );
69
 
70
  echo '<p class="thumbnail-width-config" style="' . ( $this->get_field_value( $instance, 'show_images' ) ? '' : 'display: none;' ) . '">';
71
  echo '<label for="' . $this->get_field_id( 'thumbnail_width' ) . '">';
72
+ _ex( 'Image width (in px):', 'widgets', 'business-directory-plugin' );
73
  echo '</label> ';
74
  printf( '<input type="text" name="%s" id="%s" value="%s" size="5" />',
75
  $this->get_field_name( 'thumbnail_width' ),
76
  $this->get_field_id( 'thumbnail_width' ),
77
  $this->get_field_value( $instance, 'thumbnail_width' ) );
78
+ echo '<br /><span class="help">' . _x( 'Leave blank for automatic width.', 'widgets', 'business-directory-plugin' ) . '</span>';
79
  echo '</p>';
80
 
81
  echo '<p class="thumbnail-height-config" style="' . ( $this->get_field_value( $instance, 'show_images' ) ? '' : 'display: none;' ) . '">';
82
  echo '<label for="' . $this->get_field_id( 'thumbnail_height' ) . '">';
83
+ _ex( 'Image height (in px):', 'widgets', 'business-directory-plugin' );
84
  echo '</label> ';
85
  printf( '<input type="text" name="%s" id="%s" value="%s" size="5" />',
86
  $this->get_field_name( 'thumbnail_height' ),
87
  $this->get_field_id( 'thumbnail_height' ),
88
  $this->get_field_value( $instance, 'thumbnail_height' ) );
89
+ echo '<br /><span class="help">' . _x( 'Leave blank for automatic height.', 'widgets', 'business-directory-plugin' ) . '</span>';
90
  echo '</p>';
91
  }
92
  }
includes/widgets/widget-featured-listings.php CHANGED
@@ -8,10 +8,10 @@ require_once( WPBDP_PATH . 'includes/widgets/class-listings-widget.php' );
8
  class WPBDP_FeaturedListingsWidget extends WPBDP_Listings_Widget {
9
 
10
  public function __construct() {
11
- parent::__construct( _x( 'Business Directory - Featured Listings', 'widgets', 'WPBDM' ),
12
- _x( 'Displays a list of the featured/sticky listings in the directory.', 'widgets', 'WPBDM' ) );
13
 
14
- $this->set_default_option_value( 'title', _x( 'Featured Listings', 'widgets', 'WPBDM' ) );
15
  }
16
 
17
  protected function _form( $instance ) {
@@ -20,7 +20,7 @@ class WPBDP_FeaturedListingsWidget extends WPBDP_Listings_Widget {
20
  $this->get_field_name( 'random_order' ),
21
  ( isset( $instance['random_order'] ) && $instance['random_order'] == 1 ) ? 'checked="checked"' : '',
22
  $this->get_field_id( 'random_order' ),
23
- _x( 'Display listings in random order', 'widgets', 'WPBDM' )
24
  );
25
  }
26
 
8
  class WPBDP_FeaturedListingsWidget extends WPBDP_Listings_Widget {
9
 
10
  public function __construct() {
11
+ parent::__construct( _x( 'Business Directory - Featured Listings', 'widgets', 'business-directory-plugin' ),
12
+ _x( 'Displays a list of the featured/sticky listings in the directory.', 'widgets', 'business-directory-plugin' ) );
13
 
14
+ $this->set_default_option_value( 'title', _x( 'Featured Listings', 'widgets', 'business-directory-plugin' ) );
15
  }
16
 
17
  protected function _form( $instance ) {
20
  $this->get_field_name( 'random_order' ),
21
  ( isset( $instance['random_order'] ) && $instance['random_order'] == 1 ) ? 'checked="checked"' : '',
22
  $this->get_field_id( 'random_order' ),
23
+ _x( 'Display listings in random order', 'widgets', 'business-directory-plugin' )
24
  );
25
  }
26
 
includes/widgets/widget-latest-listings.php CHANGED
@@ -8,10 +8,10 @@ require_once( WPBDP_PATH . 'includes/widgets/class-listings-widget.php' );
8
  class WPBDP_LatestListingsWidget extends WPBDP_Listings_Widget {
9
 
10
  public function __construct() {
11
- parent::__construct( _x( 'Business Directory - Latest Listings', 'widgets', 'WPBDM' ),
12
- _x('Displays a list of the latest listings in the Business Directory.', 'widgets', 'WPBDM' ) );
13
 
14
- $this->set_default_option_value( 'title', _x( 'Latest Listings', 'widgets', 'WPBDM' ) );
15
  }
16
 
17
  public function get_listings( $instance ) {
8
  class WPBDP_LatestListingsWidget extends WPBDP_Listings_Widget {
9
 
10
  public function __construct() {
11
+ parent::__construct( _x( 'Business Directory - Latest Listings', 'widgets', 'business-directory-plugin' ),
12
+ _x('Displays a list of the latest listings in the Business Directory.', 'widgets', 'business-directory-plugin' ) );
13
 
14
+ $this->set_default_option_value( 'title', _x( 'Latest Listings', 'widgets', 'business-directory-plugin' ) );
15
  }
16
 
17
  public function get_listings( $instance ) {
includes/widgets/widget-random-listings.php CHANGED
@@ -8,10 +8,10 @@ require_once( WPBDP_PATH . 'includes/widgets/class-listings-widget.php' );
8
  class WPBDP_RandomListingsWidget extends WPBDP_Listings_Widget {
9
 
10
  public function __construct() {
11
- parent::__construct( _x( 'Business Directory - Random Listings', 'widgets', 'WPBDM' ),
12
- _x( 'Displays a list of random listings from the Business Directory.', 'widgets', 'WPBDM' ) );
13
 
14
- $this->set_default_option_value( 'title', _x( 'Random Listings', 'widgets', 'WPBDM' ) );
15
  }
16
 
17
  public function get_listings( $instance ) {
8
  class WPBDP_RandomListingsWidget extends WPBDP_Listings_Widget {
9
 
10
  public function __construct() {
11
+ parent::__construct( _x( 'Business Directory - Random Listings', 'widgets', 'business-directory-plugin' ),
12
+ _x( 'Displays a list of random listings from the Business Directory.', 'widgets', 'business-directory-plugin' ) );
13
 
14
+ $this->set_default_option_value( 'title', _x( 'Random Listings', 'widgets', 'business-directory-plugin' ) );
15
  }
16
 
17
  public function get_listings( $instance ) {
includes/widgets/widget-search.php CHANGED
@@ -7,26 +7,26 @@ class WPBDP_SearchWidget extends WP_Widget {
7
 
8
  public function __construct() {
9
  parent::__construct(false,
10
- _x('Business Directory - Search', 'widgets', 'WPBDM'),
11
- array('description' => _x('Displays a search form to look for Business Directory listings.', 'widgets', 'WPBDM')));
12
  }
13
 
14
  public function form($instance) {
15
  if (isset($instance['title']))
16
  $title = $instance['title'];
17
  else
18
- $title = _x('Search the Business Directory', 'widgets', 'WPBDM');
19
 
20
  echo sprintf('<p><label for="%s">%s</label> <input class="widefat" id="%s" name="%s" type="text" value="%s" /></p>',
21
  $this->get_field_id('title'),
22
- _x('Title:', 'widgets', 'WPBDM'),
23
  $this->get_field_id('title'),
24
  $this->get_field_name('title'),
25
  esc_attr($title)
26
  );
27
  echo '<p>';
28
 
29
- echo _x('Form Style:', 'widgets', 'WPBDM');
30
  echo '<br/>';
31
  echo sprintf('<input id="%s" name="%s" type="radio" value="%s" %s/> <label for="%s">%s</label>',
32
  $this->get_field_id('use_basic_form'),
@@ -34,7 +34,7 @@ class WPBDP_SearchWidget extends WP_Widget {
34
  'basic',
35
  wpbdp_getv($instance, 'form_mode', 'basic') == 'basic' ? 'checked="checked"' : '',
36
  $this->get_field_id('use_basic_form'),
37
- _x('Basic', 'widgets', 'WPBDM') );
38
  echo '&nbsp;&nbsp;';
39
  echo sprintf('<input id="%s" name="%s" type="radio" value="%s" %s/> <label for="%s">%s</label>',
40
  $this->get_field_id('use_advanced_form'),
@@ -42,12 +42,12 @@ class WPBDP_SearchWidget extends WP_Widget {
42
  'advanced',
43
  wpbdp_getv($instance, 'form_mode', 'basic') == 'advanced' ? 'checked="checked"' : '',
44
  $this->get_field_id('use_advanced_form'),
45
- _x('Advanced', 'widgets', 'WPBDM') );
46
  echo '</p>';
47
 
48
  echo '<p class="wpbdp-search-widget-advanced-settings">';
49
- echo _x('Search Fields (advanced mode):', 'widgets', 'WPBDM') . '<br/>';
50
- echo ' <span class="description">' . _x('Display the following fields in the form.', 'widgets', 'WPBDM') . '</span>';
51
 
52
  $instance_fields = wpbdp_getv( $instance, 'search_fields', array() );
53
 
@@ -105,7 +105,7 @@ class WPBDP_SearchWidget extends WP_Widget {
105
  echo '<input id="wpbdp-keyword-field" type="text" name="kw" value="" />';
106
  }
107
 
108
- echo sprintf('<p><input type="submit" value="%s" class="submit wpbdp-search-widget-submit" /></p>', _x('Search', 'widgets', 'WPBDM'));
109
  echo '</form>';
110
 
111
  echo $after_widget;
7
 
8
  public function __construct() {
9
  parent::__construct(false,
10
+ _x('Business Directory - Search', 'widgets', 'business-directory-plugin' ),
11
+ array('description' => _x('Displays a search form to look for Business Directory listings.', 'widgets', 'business-directory-plugin' )));
12
  }
13
 
14
  public function form($instance) {
15
  if (isset($instance['title']))
16
  $title = $instance['title'];
17
  else
18
+ $title = _x('Search the Business Directory', 'widgets', 'business-directory-plugin' );
19
 
20
  echo sprintf('<p><label for="%s">%s</label> <input class="widefat" id="%s" name="%s" type="text" value="%s" /></p>',
21
  $this->get_field_id('title'),
22
+ _x('Title:', 'widgets', 'business-directory-plugin' ),
23
  $this->get_field_id('title'),
24
  $this->get_field_name('title'),
25
  esc_attr($title)
26
  );
27
  echo '<p>';
28
 
29
+ echo _x('Form Style:', 'widgets', 'business-directory-plugin' );
30
  echo '<br/>';
31
  echo sprintf('<input id="%s" name="%s" type="radio" value="%s" %s/> <label for="%s">%s</label>',
32
  $this->get_field_id('use_basic_form'),
34
  'basic',
35
  wpbdp_getv($instance, 'form_mode', 'basic') == 'basic' ? 'checked="checked"' : '',
36
  $this->get_field_id('use_basic_form'),
37
+ _x('Basic', 'widgets', 'business-directory-plugin' ) );
38
  echo '&nbsp;&nbsp;';
39
  echo sprintf('<input id="%s" name="%s" type="radio" value="%s" %s/> <label for="%s">%s</label>',
40
  $this->get_field_id('use_advanced_form'),
42
  'advanced',
43
  wpbdp_getv($instance, 'form_mode', 'basic') == 'advanced' ? 'checked="checked"' : '',
44
  $this->get_field_id('use_advanced_form'),
45
+ _x('Advanced', 'widgets', 'business-directory-plugin' ) );
46
  echo '</p>';
47
 
48
  echo '<p class="wpbdp-search-widget-advanced-settings">';
49
+ echo _x('Search Fields (advanced mode):', 'widgets', 'business-directory-plugin' ) . '<br/>';
50
+ echo ' <span class="description">' . _x('Display the following fields in the form.', 'widgets', 'business-directory-plugin' ) . '</span>';
51
 
52
  $instance_fields = wpbdp_getv( $instance, 'search_fields', array() );
53
 
105
  echo '<input id="wpbdp-keyword-field" type="text" name="kw" value="" />';
106
  }
107
 
108
+ echo sprintf('<p><input type="submit" value="%s" class="submit wpbdp-search-widget-submit" /></p>', _x('Search', 'widgets', 'business-directory-plugin' ));
109
  echo '</form>';
110
 
111
  echo $after_widget;
languages/WPBDM-ar.mo DELETED
Binary file
languages/WPBDM-de_DE.mo DELETED
Binary file
languages/WPBDM-es_ES.mo DELETED
Binary file
languages/WPBDM-fr_FR.mo DELETED
Binary file
languages/WPBDM-it_IT.mo DELETED
Binary file
languages/WPBDM-nl_NL.mo DELETED
Binary file
languages/WPBDM-pl_PL.mo DELETED
Binary file
languages/WPBDM-ru_RU.mo DELETED
Binary file
languages/WPBDM-sv_SE.mo DELETED
Binary file
languages/business-directory-plugin-ar.mo ADDED
Binary file
languages/{WPBDM-ar.po → business-directory-plugin-ar.po} RENAMED
@@ -5,7 +5,7 @@ msgstr ""
5
  "Project-Id-Version: Business Directory Plugin v5.7.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
7
  "directory-plugin\n"
8
- "POT-Creation-Date: 2020-06-17 20:29:07+00:00\n"
9
  "PO-Revision-Date: 2017-01-16 17:47-0500\n"
10
  "Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
11
  "Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
@@ -33,7 +33,7 @@ msgid "Listing Reports"
33
  msgstr "الإعلان منتهي التاريخ"
34
 
35
  #: includes/admin/class-admin-listings.php:225
36
- #: includes/admin/class-listing-owner.php:87
37
  #, fuzzy
38
  msgid "Listing Owner"
39
  msgstr "الإعلان منتهي التاريخ"
@@ -53,31 +53,32 @@ msgstr "سمات الحقل"
53
  msgid "Edit listing permalink"
54
  msgstr "تعديل رسوم الإعلان"
55
 
56
- #: includes/admin/class-admin.php:182
 
57
  msgid ""
58
  "Preview is only available after you've saved the first draft. This is due\n"
59
- "to how WordPress stores the data."
60
  msgstr ""
61
  "المعاينة متاحة فقط بعد أن تحفظ المسودة الأولى. ويرجع ذلك إلى طريقة حفظ "
62
  "البيانات من طرف ووردبريس."
63
 
64
- #: includes/admin/class-admin.php:377
65
  #, fuzzy
66
  msgid "Uninstall Business Directory Plugin"
67
  msgstr "حذف إضافة دليل الأعمال"
68
 
69
- #: includes/admin/class-admin.php:378
70
  #, fuzzy
71
  msgid "Uninstall"
72
  msgstr "حذف"
73
 
74
- #: includes/admin/class-csv-import.php:633
75
  #, fuzzy
76
  msgid "Listing imported by admin. Payment skipped."
77
  msgstr "Poster annonce(paiement initial)"
78
 
79
- #: includes/admin/class-listing-owner.php:62
80
- #: includes/admin/class-listing-owner.php:89
81
  #, fuzzy
82
  msgid "Please select a user"
83
  msgstr "المرجو تحديد خيار رسوم التصنيف \"%s\"."
@@ -134,7 +135,7 @@ msgstr "Business Directory Plugin"
134
  msgid "Missing tables: %s"
135
  msgstr "الجداول المفقودة: %s"
136
 
137
- #: includes/admin/settings/class-settings-bootstrap.php:1108
138
  msgid ""
139
  "If you are using this gateway, we recommend you disable it if you wish to "
140
  "collect payments in this currency."
@@ -221,31 +222,36 @@ msgid "Search Listings"
221
  msgstr "البحث في الإعلانات"
222
 
223
  #: includes/class-cpt-integration.php:24
 
 
 
 
 
224
  msgid "No listings found"
225
  msgstr "لم يتم العثور على إعلانات"
226
 
227
- #: includes/class-cpt-integration.php:25
228
  msgid "No listings found in trash"
229
  msgstr "لم يتم العثور على إعلانات في سلة المهملات"
230
 
231
- #: includes/class-cpt-integration.php:41
232
  msgid "Directory Categories"
233
  msgstr "تصنيفات الدليل"
234
 
235
- #: includes/class-cpt-integration.php:42
236
  msgid "Directory Category"
237
  msgstr "تصنيف الدليل"
238
 
239
- #: includes/class-cpt-integration.php:53
240
  msgid "Directory Tags"
241
  msgstr "وسوم الدليل"
242
 
243
- #: includes/class-cpt-integration.php:54
244
  msgid "Directory Tag"
245
  msgstr "وسم الدليل"
246
 
247
  #. translators: %s: listing count
248
- #: includes/class-cpt-integration.php:235
249
  #, fuzzy
250
  msgid "%s listing updated."
251
  msgid_plural "%s listings updated."
@@ -257,7 +263,7 @@ msgstr[4] "تم تحرير الإعلان"
257
  msgstr[5] "تم تحرير الإعلان"
258
 
259
  #. translators: %s: listing count
260
- #: includes/class-cpt-integration.php:237
261
  msgid "%s listing not updated, somebody is editing it."
262
  msgid_plural "%s listings not updated, somebody is editing them."
263
  msgstr[0] ""
@@ -268,7 +274,7 @@ msgstr[4] ""
268
  msgstr[5] ""
269
 
270
  #. translators: %s: listing count
271
- #: includes/class-cpt-integration.php:239
272
  #, fuzzy
273
  msgid "%s listing permanently deleted."
274
  msgid_plural "%s listings permanently deleted."
@@ -280,7 +286,7 @@ msgstr[4] "إنتهاء صلاحية الإعلان"
280
  msgstr[5] "إنتهاء صلاحية الإعلان"
281
 
282
  #. translators: %s: listing count
283
- #: includes/class-cpt-integration.php:241
284
  #, fuzzy
285
  msgid "%s listing moved to the Trash."
286
  msgid_plural "%s listings moved to the Trash."
@@ -292,7 +298,7 @@ msgstr[4] "لم يتم العثور على إعلانات في سلة المهم
292
  msgstr[5] "لم يتم العثور على إعلانات في سلة المهملات"
293
 
294
  #. translators: %s: listing count
295
- #: includes/class-cpt-integration.php:243
296
  #, fuzzy
297
  msgid "%s listing restored from the Trash."
298
  msgid_plural "%s listings restored from the Trash."
@@ -379,13 +385,13 @@ msgstr "الرمز البريدي"
379
  msgid "Free"
380
  msgstr "مجاني"
381
 
382
- #: includes/gateways/class-gateway-authorize-net.php:356
383
  msgid ""
384
  "An error occurred while trying to cancel your subscription. Please try again "
385
  "later or contact the site administrator."
386
  msgstr ""
387
 
388
- #: includes/gateways/class-gateway-authorize-net.php:360
389
  msgid ""
390
  "An error occurred while trying to cancel Authorize.net subscription with ID "
391
  "%s. You can try again later or cancel subscription from gateway dashboard."
@@ -404,15 +410,20 @@ msgstr ""
404
  msgid "The payment gateway \"<payment-gateway>\" is not available."
405
  msgstr ""
406
 
407
- #: includes/templates-ui.php:288
408
  msgid "Directory"
409
  msgstr "الدليل"
410
 
411
- #: includes/templates-ui.php:297
412
  msgid "View All Listings"
413
  msgstr "مشاهدة جميع الإعلانات"
414
 
415
- #: includes/templates-ui.php:306
 
 
 
 
 
416
  msgid "Create A Listing"
417
  msgstr "إنشاء إعلان"
418
 
@@ -420,6 +431,17 @@ msgstr "إنشاء إعلان"
420
  msgid "l F j, Y \\a\\t g:i a"
421
  msgstr "l F j, Y \\a\\t g:i a"
422
 
 
 
 
 
 
 
 
 
 
 
 
423
  #: templates/admin/home.tpl.php:53
424
  #, fuzzy
425
  msgid "Manage Options"
@@ -476,10 +498,10 @@ msgstr "إعادة تعيين الوضع الافتراضي"
476
  msgid "← Return to Directory"
477
  msgstr "العودة إلى الدليل."
478
 
479
- #. Plugin URI of the plugin/theme
480
  #, fuzzy
481
- msgid "https://www.businessdirectoryplugin.com"
482
- msgstr "http://www.businessdirectoryplugin.com"
483
 
484
  #. Description of the plugin/theme
485
  msgid ""
@@ -490,13 +512,9 @@ msgstr ""
490
  "ووردبريس."
491
 
492
  #. Author of the plugin/theme
493
- msgid "D. Rodenbaugh"
494
- msgstr "D. Rodenbaugh"
495
-
496
- #. Author URI of the plugin/theme
497
  #, fuzzy
498
- msgid "https://businessdirectoryplugin.com"
499
- msgstr "http://businessdirectoryplugin.com"
500
 
501
  #: includes/admin/class-admin-controller.php:79
502
  #, fuzzy
@@ -536,31 +554,31 @@ msgctxt "admin csv-import"
536
  msgid "Could not create listing category \"%s\""
537
  msgstr "لا يمكن إنشاء تصنيف الإعلان \"%s\""
538
 
539
- #: includes/admin/class-csv-import.php:684
540
  msgctxt "admin csv-import"
541
  msgid "Username \"%s\" does not exist"
542
  msgstr "إسم المستخدم \"%s\" غير موجود"
543
 
544
- #: includes/admin/class-csv-import.php:710
545
- msgctxt "admin csv-import"
546
- msgid "The string <string> couldn't be converted into a valid date."
547
- msgstr ""
548
-
549
- #: includes/admin/class-csv-import.php:732
550
  msgctxt "admin csv-import"
551
  msgid "There is no Fee Plan with ID = <fee-id>"
552
  msgstr ""
553
 
554
- #: includes/admin/class-csv-import.php:755
555
  msgctxt "admin csv-import"
556
  msgid "Missing required field: %s"
557
  msgstr "حقل مطلوب مفقود: %s"
558
 
559
- #: includes/admin/class-csv-import.php:780
560
  msgctxt "admin csv-import"
561
  msgid "Listing category \"%s\" does not exist"
562
  msgstr "تصنيف الإعلان \"%s\" غير موجود"
563
 
 
 
 
 
 
564
  #: includes/admin/csv-import.php:130
565
  msgctxt "admin csv-import"
566
  msgid "Business %s"
@@ -1079,7 +1097,7 @@ msgctxt "admin listings"
1079
  msgid "Reported"
1080
  msgstr ""
1081
 
1082
- #: includes/admin/class-admin-listings.php:717
1083
  msgctxt "admin listings"
1084
  msgid "Listing's payment history successfully deleted"
1085
  msgstr ""
@@ -1130,27 +1148,27 @@ msgctxt "admin"
1130
  msgid "Categories"
1131
  msgstr "التصنيفات"
1132
 
1133
- #: includes/admin/class-admin.php:243
1134
  msgctxt "admin"
1135
  msgid "Business Directory"
1136
  msgstr "دليل الأعمال"
1137
 
1138
- #: includes/admin/class-admin.php:254
1139
  msgctxt "admin"
1140
  msgid "You're all set. Visit your new <a>Business Directory</a> page."
1141
  msgstr "أنت مستعد. قم بزيارة صفحة <a>دليل الأعمال</a> الجديدة."
1142
 
1143
- #: includes/admin/class-admin.php:407
1144
  msgctxt "admin"
1145
  msgid "Untitled Menu"
1146
  msgstr ""
1147
 
1148
- #: includes/admin/class-admin.php:677
1149
  msgctxt "admin"
1150
  msgid "Dismiss this notice."
1151
  msgstr "إخفاء هذا التنبيه."
1152
 
1153
- #: includes/admin/class-admin.php:708 includes/admin/class-admin.php:718
1154
  #, fuzzy
1155
  msgctxt "admin"
1156
  msgid "The listing has been updated."
@@ -1162,12 +1180,12 @@ msgstr[3] "تمت ترقية الإعلانات."
1162
  msgstr[4] "تمت ترقية الإعلانات."
1163
  msgstr[5] "تمت ترقية الإعلانات."
1164
 
1165
- #: includes/admin/class-admin.php:739
1166
  msgctxt "admin"
1167
  msgid "The fee was successfully assigned."
1168
  msgstr "تم تعيين الرسوم بنجاح."
1169
 
1170
- #: includes/admin/class-admin.php:749
1171
  msgctxt "admin"
1172
  msgid "Listing was renewed."
1173
  msgid_plural "Listings were renewed."
@@ -1178,19 +1196,19 @@ msgstr[3] "تم تجديد الإعلانات."
1178
  msgstr[4] "تم تجديد الإعلانات."
1179
  msgstr[5] "تم تجديد الإعلانات."
1180
 
1181
- #: includes/admin/class-admin.php:760
1182
  msgctxt "admin"
1183
  msgid "Renewal email sent."
1184
  msgstr "تم إرسال بريد التجديد."
1185
 
1186
- #: includes/admin/class-admin.php:764
1187
  msgctxt "admin"
1188
  msgid ""
1189
  "Could not send renewal email, notice template at listing expiration not "
1190
  "found."
1191
  msgstr ""
1192
 
1193
- #: includes/admin/class-admin.php:771
1194
  #, fuzzy
1195
  msgctxt "admin"
1196
  msgid "Listing report deleted."
@@ -1202,23 +1220,23 @@ msgstr[3] "إنتهاء صلاحية الإعلان"
1202
  msgstr[4] "إنتهاء صلاحية الإعلان"
1203
  msgstr[5] "إنتهاء صلاحية الإعلان"
1204
 
1205
- #: includes/admin/class-admin.php:819
1206
  #, fuzzy
1207
  msgctxt "admin"
1208
  msgid "Access keys sent."
1209
  msgstr "مفتاح الوصول"
1210
 
1211
- #: includes/admin/class-admin.php:821
1212
  msgctxt "admin"
1213
  msgid "The access keys couldn't be sent."
1214
  msgstr ""
1215
 
1216
- #: includes/admin/class-admin.php:887 includes/admin/class-admin.php:893
1217
  msgctxt "admin"
1218
  msgid "Listing Count"
1219
  msgstr "عدد الإعلانات"
1220
 
1221
- #: includes/admin/class-admin.php:955
1222
  msgctxt "admin"
1223
  msgid ""
1224
  "<b>Business Directory Plugin</b> requires a page with the "
@@ -1227,7 +1245,7 @@ msgstr ""
1227
  "<b>إضافة دليل الأعمال</b> تتطلب صفحة فيها الكود القصير "
1228
  "<tt>[businessdirectory]</tt> لكي تعمل بشكل صحيح."
1229
 
1230
- #: includes/admin/class-admin.php:957
1231
  msgctxt "admin"
1232
  msgid ""
1233
  "You can create this page by yourself or let Business Directory do this for "
@@ -1236,12 +1254,12 @@ msgstr ""
1236
  "يمكنك إنشاء هذه الصفحة بنفسك أو ترك دليل الأعمال القيام بذلك نيابة عنك "
1237
  "تلقائياً."
1238
 
1239
- #: includes/admin/class-admin.php:961
1240
  msgctxt "admin"
1241
  msgid "Create required pages for me"
1242
  msgstr "إنشاء الصفحات المطلوب نيابة عني"
1243
 
1244
- #: includes/admin/class-admin.php:994
1245
  msgctxt "admin"
1246
  msgid ""
1247
  "<strong>Business Directory Plugin</strong> requires <strong>PHP 5.6</strong> "
@@ -1249,7 +1267,7 @@ msgid ""
1249
  "your provider to upgrade in order to prevent any issues with the plugin."
1250
  msgstr ""
1251
 
1252
- #: includes/admin/class-admin.php:1017
1253
  msgctxt "admin"
1254
  msgid ""
1255
  "We noticed you want your Business Directory users to register before posting "
@@ -1305,7 +1323,7 @@ msgstr ""
1305
  "يمكنك إنشاء هذه الحقول المخصصة بنفسك داخل \"إدارة الحقول\" أو السماح لدليل "
1306
  "الأعمال للقيام بذلك نيابة عنك تلقائياً."
1307
 
1308
- #: includes/admin/form-fields.php:214 includes/views/submit_listing.php:541
1309
  msgctxt "admin"
1310
  msgid "Go to \"Manage Form Fields\""
1311
  msgstr "إنتقل إلى \"إدارة حقول\""
@@ -1325,7 +1343,7 @@ msgctxt "admin"
1325
  msgid "Abandoned"
1326
  msgstr "متخلى عنه"
1327
 
1328
- #: includes/views/submit_listing.php:524
1329
  #, fuzzy
1330
  msgctxt "admin"
1331
  msgid "Go to \"Manage Fees\""
@@ -1450,14 +1468,14 @@ msgctxt "admin actions"
1450
  msgid "Send access keys"
1451
  msgstr "مفتاح الوصول"
1452
 
1453
- #: includes/admin/class-admin.php:175
1454
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:75
1455
  #, fuzzy
1456
  msgctxt "listing metabox"
1457
  msgid "Never"
1458
  msgstr "أبداً"
1459
 
1460
- #: includes/admin/class-admin.php:176
1461
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1462
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1463
  #, fuzzy
@@ -1465,7 +1483,7 @@ msgctxt "listing metabox"
1465
  msgid "Yes"
1466
  msgstr "نعم"
1467
 
1468
- #: includes/admin/class-admin.php:177
1469
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1470
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1471
  #, fuzzy
@@ -1597,7 +1615,7 @@ msgctxt "listing metabox"
1597
  msgid "Is Recurring?"
1598
  msgstr "(متكرر)"
1599
 
1600
- #: includes/admin/class-admin.php:214
1601
  msgctxt "drip pointer"
1602
  msgid ""
1603
  "Find out how to create a compelling, thriving business directory from "
@@ -1608,104 +1626,80 @@ msgstr ""
1608
  "(مجانا) مكونة من 5 أجزاء (ترسل عبر البريد الإلكتروني). أحصل على وحدة ممتازة "
1609
  "(premium module) مجانا بمجرد تسجيلك."
1610
 
1611
- #: includes/admin/class-admin.php:216
1612
  msgctxt "drip pointer"
1613
  msgid "Email Address:"
1614
  msgstr "عنوان البريد الإلكتروني:"
1615
 
1616
- #: includes/admin/class-admin.php:222
1617
  msgctxt "drip pointer"
1618
  msgid "Want to know the Secrets of Building an Awesome Business Directory?"
1619
  msgstr "هل تريد معرفة \"أسرار بناء\" \"دليل أعمال مدهش\"؟"
1620
 
1621
- #: includes/admin/class-admin.php:224
1622
  msgctxt "drip pointer"
1623
  msgid "Yes, please!"
1624
  msgstr "نعم، من فضلك!"
1625
 
1626
- #: includes/admin/class-admin.php:226
1627
  msgctxt "drip pointer"
1628
  msgid "No, thanks"
1629
  msgstr "لا، شكرًا"
1630
 
1631
- #: includes/admin/class-admin.php:274
1632
  msgctxt "drip pointer"
1633
  msgid "Invalid e-mail address."
1634
  msgstr "عنوان البريد الإلكتروني غير صالح!"
1635
 
1636
- #: includes/admin/class-admin.php:308
1637
- msgctxt "admin menu"
1638
- msgid "Business Directory Admin"
1639
- msgstr "مدير دليل الأعمال"
1640
-
1641
- #: includes/admin/class-admin.php:309
1642
- msgctxt "admin menu"
1643
- msgid "Dir. Admin"
1644
- msgstr "مدير الدليل"
1645
-
1646
- #: includes/admin/class-admin.php:309
1647
- msgctxt "admin menu"
1648
- msgid "Directory Admin"
1649
- msgstr "مدير الدليل"
1650
-
1651
- #: includes/admin/class-admin.php:316
1652
- msgctxt "admin menu"
1653
- msgid "Add New Listing"
1654
- msgstr "إضافة إعلان جديد"
1655
-
1656
- #: includes/admin/class-admin.php:324
1657
  msgctxt "admin menu"
1658
  msgid "Manage Fees"
1659
  msgstr "إدارة الرسوم"
1660
 
1661
- #: includes/admin/class-admin.php:327
1662
- msgctxt "admin menu"
1663
- msgid "Listings"
1664
- msgstr "الإعلانات"
1665
-
1666
- #: includes/admin/class-admin.php:331
1667
  msgctxt "admin menu"
1668
  msgid "Manage Form Fields"
1669
  msgstr "إدارة حقول الاستمارة"
1670
 
1671
- #: includes/admin/class-admin.php:335
1672
  #, fuzzy
1673
  msgctxt "admin menu"
1674
  msgid "Payment History"
1675
  msgstr "سجل المدفوعات"
1676
 
1677
- #: includes/admin/class-admin.php:338
1678
  #, fuzzy
1679
  msgctxt "admin menu"
1680
- msgid "CSV Import & Export"
1681
  msgstr "استيراد CSV"
1682
 
1683
- #: includes/admin/class-admin.php:349
1684
  msgctxt "admin menu"
1685
  msgid "Debug"
1686
  msgstr "تصحيح الأخطاء"
1687
 
1688
  #: includes/admin/settings/class-settings-admin.php:46
 
1689
  msgctxt "admin menu"
1690
- msgid "Manage Options"
1691
- msgstr "إدارة الخيارات"
1692
 
1693
- #: includes/admin/class-admin.php:885
1694
  msgctxt "admin category id"
1695
  msgid "ID"
1696
  msgstr "المعرف"
1697
 
1698
- #: includes/admin/class-csv-exporter.php:100
1699
  msgctxt "admin csv-export"
1700
  msgid "Could not create a temporary directory for handling this CSV export."
1701
  msgstr "لا يمكن إنشاء مجلد مؤقت للتعامل مع تصدير CSV."
1702
 
1703
- #: includes/admin/class-csv-exporter.php:103
1704
  msgctxt "admin csv-export"
1705
  msgid "Could not create wpbdp-csv-exports directory."
1706
  msgstr "تعذر إنشاء مجلد wpbdp-csv-exports."
1707
 
1708
- #: includes/admin/class-csv-exporter.php:108
1709
  msgctxt "admin csv-export"
1710
  msgid "Error while creating a temporary directory for CSV export: %s"
1711
  msgstr "حدث خطأ أثناء إنشاء مجلد مؤقت لتصدير CSV: %s"
@@ -1715,17 +1709,6 @@ msgctxt "admin csv-export"
1715
  msgid "Could not decode export state information."
1716
  msgstr ""
1717
 
1718
- #: templates/admin/csv-export.tpl.php:5
1719
- msgctxt "admin csv-export"
1720
- msgid ""
1721
- "An unknown error occurred during the export. Please make sure you have "
1722
- "enough free disk space and memory available to PHP. Check your error logs "
1723
- "for details."
1724
- msgstr ""
1725
- "حدث خطأ غير معروف أثناء عملية التصدير. الرجاء التأكد من أن لديك ما يكفي من "
1726
- "المساحة الفارغة على القرص والذاكرة المتاحة إلى بي إتش بي. تحقق من سجلات "
1727
- "الخطأ الخاص بك للحصول على التفاصيل."
1728
-
1729
  #: templates/admin/csv-export.tpl.php:14
1730
  msgctxt "admin csv-export"
1731
  msgid ""
@@ -1738,47 +1721,47 @@ msgstr ""
1738
  "حاول تعطيل إضافات أخرى أولاً و/أو زيادة قيم التوجيهات 'memory_limit' و "
1739
  "'max_execution_time' في الخادم الخاص بك بتعديل ملف الإعدادات php.ini."
1740
 
1741
- #: templates/admin/csv-export.tpl.php:26
1742
  msgctxt "admin csv-export"
1743
  msgid "Export Configuration"
1744
  msgstr "ضبط التصدير"
1745
 
1746
- #: templates/admin/csv-export.tpl.php:29
1747
  msgctxt "admin csv-export"
1748
  msgid "Export settings"
1749
  msgstr "إعدادات التصدير"
1750
 
1751
- #: templates/admin/csv-export.tpl.php:33
1752
  msgctxt "admin csv-export"
1753
  msgid "Which listings to export?"
1754
  msgstr "أي لائحة تريد التصدير؟"
1755
 
1756
- #: templates/admin/csv-export.tpl.php:37
1757
  msgctxt "admin csv-export"
1758
  msgid "All"
1759
  msgstr "الكل"
1760
 
1761
- #: templates/admin/csv-export.tpl.php:38
1762
  msgctxt "admin csv-export"
1763
  msgid "Active Only"
1764
  msgstr "المفعل فقط"
1765
 
1766
- #: templates/admin/csv-export.tpl.php:39
1767
  msgctxt "admin csv-export"
1768
  msgid "Active + Pending Renewal"
1769
  msgstr "مفعل + ريثما يتم التجديد"
1770
 
1771
- #: templates/admin/csv-export.tpl.php:45
1772
  msgctxt "admin csv-export"
1773
  msgid "Export images?"
1774
  msgstr "تصدير الصور؟"
1775
 
1776
- #: templates/admin/csv-export.tpl.php:50
1777
  msgctxt "admin csv-export"
1778
  msgid "Export images"
1779
  msgstr "تصدير الصور"
1780
 
1781
- #: templates/admin/csv-export.tpl.php:52
1782
  msgctxt "admin csv-export"
1783
  msgid ""
1784
  "When checked, instead of just a CSV file a ZIP file will be generated with "
@@ -1787,17 +1770,17 @@ msgstr ""
1787
  "عند اختيار الخانة، بدلاً من مجرد ملف CSV سيتم إنشاء ملف مضغوط مع ملف CSV "
1788
  "ولائحة الصور."
1789
 
1790
- #: templates/admin/csv-export.tpl.php:58
1791
  msgctxt "admin csv-export"
1792
  msgid "Additional metadata to export:"
1793
  msgstr "بيانات تعريف إضافية للتصدير:"
1794
 
1795
- #: templates/admin/csv-export.tpl.php:63
1796
  msgctxt "admin csv-export"
1797
  msgid "Include unique IDs for each listing (sequence_id column)."
1798
  msgstr "تتضمن معرفات (IDs) فريدة لكل إعلان (عمود sequence_id)."
1799
 
1800
- #: templates/admin/csv-export.tpl.php:65
1801
  msgctxt "admin csv-export"
1802
  msgid ""
1803
  "If you plan to re-import the listings into BD and don't want new ones "
@@ -1806,49 +1789,55 @@ msgstr ""
1806
  "إذا كنت تخطط لإعادة استيراد الإعلانات إلى \"دليل الأعمال\" ولا تريد إنشاء "
1807
  "أخرى جديدة، قم بتحديد هذا الخيار!"
1808
 
1809
- #: templates/admin/csv-export.tpl.php:71
1810
  msgctxt "admin csv-export"
1811
  msgid "Author information (username)"
1812
  msgstr "معلومات الكاتب (إسم المستخدم)"
1813
 
1814
- #: templates/admin/csv-export.tpl.php:76
1815
  msgctxt "admin csv-export"
1816
  msgid "Listing expiration date"
1817
  msgstr "إنتهاء صلاحية الإعلان"
1818
 
1819
- #: templates/admin/csv-export.tpl.php:80
1820
  #, fuzzy
1821
  msgctxt "admin csv-export"
1822
  msgid "Listing created date"
1823
  msgstr "صور الإعلانات"
1824
 
1825
- #: templates/admin/csv-export.tpl.php:84
1826
  #, fuzzy
1827
  msgctxt "admin csv-export"
1828
  msgid "Listing last updated date"
1829
  msgstr "إنتهاء صلاحية الإعلان"
1830
 
1831
- #: templates/admin/csv-export.tpl.php:89
 
 
 
 
 
 
1832
  msgctxt "admin csv-export"
1833
  msgid "CSV File Settings"
1834
  msgstr "إعدادات ملف CSV"
1835
 
1836
- #: templates/admin/csv-export.tpl.php:93
1837
  msgctxt "admin csv-export"
1838
  msgid "What operating system will you use to edit the CSV file?"
1839
  msgstr ""
1840
 
1841
- #: templates/admin/csv-export.tpl.php:100
1842
  msgctxt "admin csv-export"
1843
  msgid "Windows"
1844
  msgstr ""
1845
 
1846
- #: templates/admin/csv-export.tpl.php:105
1847
  msgctxt "admin csv-export"
1848
  msgid "macOS"
1849
  msgstr ""
1850
 
1851
- #: templates/admin/csv-export.tpl.php:107
1852
  msgctxt "admin csv-export"
1853
  msgid ""
1854
  "Windows and macOS versions of MS Excel handle CSV files differently. To make "
@@ -1857,27 +1846,27 @@ msgid ""
1857
  "each operating system."
1858
  msgstr ""
1859
 
1860
- #: templates/admin/csv-export.tpl.php:112
1861
  msgctxt "admin csv-export"
1862
  msgid "Image Separator"
1863
  msgstr "فاصلة الصورة "
1864
 
1865
- #: templates/admin/csv-export.tpl.php:123
1866
  msgctxt "admin csv-export"
1867
  msgid "Category Separator"
1868
  msgstr "فاصلة التصنيف"
1869
 
1870
- #: templates/admin/csv-export.tpl.php:135
1871
  msgctxt "admin csv-export"
1872
  msgid "Export Listings"
1873
  msgstr "الإعلانات المصدرة"
1874
 
1875
- #: templates/admin/csv-export.tpl.php:141
1876
  msgctxt "admin csv-export"
1877
  msgid "Export in Progress..."
1878
  msgstr "جاري التصدير..."
1879
 
1880
- #: templates/admin/csv-export.tpl.php:142
1881
  msgctxt "admin csv-export"
1882
  msgid ""
1883
  "Your export file is being prepared. Please <u>do not leave</u> this page "
@@ -1885,39 +1874,40 @@ msgid ""
1885
  msgstr ""
1886
  "جاري إعداد ملف التصدير. المرجو <u>عدم ترك</u> هذه الصفحة حتى انتهاء التصدير."
1887
 
1888
- #: templates/admin/csv-export.tpl.php:145
1889
  msgctxt "admin csv-export"
1890
  msgid "No. of listings:"
1891
  msgstr "أرقام الإعلانات:"
1892
 
1893
- #: templates/admin/csv-export.tpl.php:147
1894
  msgctxt "admin csv-export"
1895
  msgid "Approximate export file size:"
1896
  msgstr "الحجم التقريبي لملف التصدير:"
1897
 
1898
- #: templates/admin/csv-export.tpl.php:154
1899
  msgctxt "admin csv-export"
1900
  msgid "Cancel Export"
1901
  msgstr "إلغاء التصدير"
1902
 
1903
- #: templates/admin/csv-export.tpl.php:159
1904
  msgctxt "admin csv-export"
1905
  msgid "Export Complete"
1906
  msgstr "تم التصدير"
1907
 
1908
- #: templates/admin/csv-export.tpl.php:160
1909
  msgctxt "admin csv-export"
1910
  msgid ""
1911
  "Your export file has been successfully created and it is now ready for "
1912
  "download."
1913
  msgstr "تم بنجاح إنشاء ملف التصدير، والآن جاهز للتحميل."
1914
 
1915
- #: templates/admin/csv-export.tpl.php:163
 
1916
  msgctxt "admin csv-export"
1917
- msgid "Download %s (%s)"
1918
  msgstr "تحميل %s (%s)"
1919
 
1920
- #: templates/admin/csv-export.tpl.php:169
1921
  msgctxt "admin csv-export"
1922
  msgid ""
1923
  "Click \"Cleanup\" once the file has been downloaded in order to remove all "
@@ -1926,22 +1916,22 @@ msgstr ""
1926
  "إضغط على \"تنظيف\" بعد تحميل الملف بغية إزالة جميع البيانات المؤقتة التي تم "
1927
  "إنشاؤها بواسطة \"دليل الأعمال\" أثناء عملية التصدير."
1928
 
1929
- #: templates/admin/csv-export.tpl.php:170
1930
  msgctxt "admin csv-export"
1931
  msgid "Cleanup"
1932
  msgstr "نظف"
1933
 
1934
- #: templates/admin/csv-export.tpl.php:175
1935
  msgctxt "admin csv-export"
1936
  msgid "Export Canceled"
1937
  msgstr "ألغي التصدير"
1938
 
1939
- #: templates/admin/csv-export.tpl.php:176
1940
  msgctxt "admin csv-export"
1941
  msgid "The export has been canceled."
1942
  msgstr "تم إلغاء التصدير"
1943
 
1944
- #: templates/admin/csv-export.tpl.php:177
1945
  msgctxt "admin csv-export"
1946
  msgid "← Return to CSV Export"
1947
  msgstr "← العودة إلى تصدير CSV"
@@ -3388,36 +3378,41 @@ msgctxt "admin fees table"
3388
  msgid "Disabled"
3389
  msgstr "معطل"
3390
 
3391
- #: includes/admin/helpers/class-listing-timeline.php:102
3392
  #, fuzzy
3393
  msgctxt "listing timeline"
3394
  msgid "Listing created"
3395
  msgstr "صور الإعلانات"
3396
 
3397
- #: includes/admin/helpers/class-listing-timeline.php:107
3398
  #, fuzzy
3399
  msgctxt "listing timeline"
3400
  msgid "Listing expired"
3401
  msgstr "الإعلان منتهي التاريخ"
3402
 
3403
- #: includes/admin/helpers/class-listing-timeline.php:112
3404
  #, fuzzy
3405
  msgctxt "listing timeline"
3406
  msgid "Listing renewed"
3407
  msgstr "تم تجديد الإعلان."
3408
 
3409
- #: includes/admin/helpers/class-listing-timeline.php:127
 
 
 
 
 
3410
  msgctxt "listing timeline"
3411
  msgid "Paid as admin"
3412
  msgstr ""
3413
 
3414
- #: includes/admin/helpers/class-listing-timeline.php:129
3415
  #, fuzzy
3416
  msgctxt "listing timeline"
3417
  msgid "Listing imported"
3418
  msgstr "الإعلان منتهي التاريخ"
3419
 
3420
- #: includes/admin/helpers/class-listing-timeline.php:131
3421
  #, fuzzy
3422
  msgctxt "listing timeline"
3423
  msgid "Initial Payment"
@@ -3669,7 +3664,7 @@ msgctxt "admin settings"
3669
  msgid "Valid placeholders: %s"
3670
  msgstr "العناصر النائبة صالحة: %s"
3671
 
3672
- #: includes/admin/settings/class-settings-bootstrap.php:96
3673
  msgctxt "admin settings"
3674
  msgid ""
3675
  "<strong>IMPORTANT:</strong> subpages of the main directory page cannot be "
@@ -3805,13 +3800,13 @@ msgid "Author"
3805
  msgstr "الكاتب"
3806
 
3807
  #: includes/admin/settings/class-settings-bootstrap.php:724
3808
- #: includes/functions.php:1194
3809
  msgctxt "admin settings"
3810
  msgid "Date posted"
3811
  msgstr "تاريخ النشر"
3812
 
3813
  #: includes/admin/settings/class-settings-bootstrap.php:725
3814
- #: includes/functions.php:1195
3815
  msgctxt "admin settings"
3816
  msgid "Date last modified"
3817
  msgstr "تاريخ آخر تعديل"
@@ -3841,22 +3836,22 @@ msgctxt "admin settings"
3841
  msgid "Fee Plan Custom Order, then Title"
3842
  msgstr ""
3843
 
3844
- #: includes/admin/settings/class-settings-bootstrap.php:815
3845
  msgctxt "admin settings"
3846
  msgid "You can manage your themes on <a>Directory Themes</a>."
3847
  msgstr "يمكنك إدارة قوالبك في <a>قوالب الدليل</a>."
3848
 
3849
- #: includes/admin/settings/class-settings-bootstrap.php:824
3850
  msgctxt "admin settings"
3851
  msgid "Use the BD theme style for BD buttons"
3852
  msgstr "إستخدم نمط قالب دليل الأعمال لأزرار دليل الأعمال"
3853
 
3854
- #: includes/admin/settings/class-settings-bootstrap.php:825
3855
  msgctxt "admin settings"
3856
  msgid "Use the WP theme style for BD buttons"
3857
  msgstr "إستخدم نمط قالب ووردبريس لأزرار دليل الأعمال"
3858
 
3859
- #: includes/admin/settings/class-settings-bootstrap.php:983
3860
  msgctxt "admin settings"
3861
  msgid ""
3862
  "For paid listing images, configure that by adding or editing a <a>Fee Plan</"
@@ -3865,171 +3860,171 @@ msgstr ""
3865
  "بالنسبة لصور الإعلانات المدفوعة، قم بإعدادها بإضافة أو تحرير <a>رسوم الخطة</"
3866
  "a> بدلاً من هذا الإعداد، الذي هو تجاهل الإعلانات المدفوعة."
3867
 
3868
- #: includes/admin/settings/class-settings-bootstrap.php:994
3869
- #: includes/admin/settings/class-settings-bootstrap.php:1048
3870
  #, fuzzy
3871
  msgctxt "admin settings"
3872
  msgid "Excerpt view."
3873
  msgstr "مقتطف"
3874
 
3875
- #: includes/admin/settings/class-settings-bootstrap.php:995
3876
- #: includes/admin/settings/class-settings-bootstrap.php:1049
3877
  #, fuzzy
3878
  msgctxt "admin settings"
3879
  msgid "Detail view."
3880
  msgstr "الدليل"
3881
 
3882
- #: includes/admin/settings/class-settings-bootstrap.php:1106
3883
  msgctxt "admin settings"
3884
- msgid "AED currency is not supported by %s. %s"
3885
  msgstr ""
3886
 
3887
- #: includes/admin/settings/class-settings-bootstrap.php:1124
3888
  msgctxt "admin settings"
3889
  msgid "Australian Dollar (AUD)"
3890
  msgstr "الدولار الأسترالي (AUD)"
3891
 
3892
- #: includes/admin/settings/class-settings-bootstrap.php:1125
3893
  msgctxt "admin settings"
3894
  msgid "Brazilian Real (BRL)"
3895
  msgstr "الريال البرازيلي (BRL)"
3896
 
3897
- #: includes/admin/settings/class-settings-bootstrap.php:1126
3898
  msgctxt "admin settings"
3899
  msgid "Canadian Dollar (CAD)"
3900
  msgstr "الدولار الكندي (CAD)"
3901
 
3902
- #: includes/admin/settings/class-settings-bootstrap.php:1127
3903
  msgctxt "admin settings"
3904
  msgid "Czech Koruna (CZK)"
3905
  msgstr "الكورونا التشيكية (CZK)"
3906
 
3907
- #: includes/admin/settings/class-settings-bootstrap.php:1128
3908
  msgctxt "admin settings"
3909
  msgid "Danish Krone (DKK)"
3910
  msgstr "الكرونة الدانماركية (DKK)"
3911
 
3912
- #: includes/admin/settings/class-settings-bootstrap.php:1129
3913
  msgctxt "admin settings"
3914
  msgid "United Arab Emirates Dirham (AED)"
3915
  msgstr ""
3916
 
3917
- #: includes/admin/settings/class-settings-bootstrap.php:1130
3918
  msgctxt "admin settings"
3919
  msgid "Euro (EUR)"
3920
  msgstr "اليورو (EUR)"
3921
 
3922
- #: includes/admin/settings/class-settings-bootstrap.php:1131
3923
  msgctxt "admin settings"
3924
  msgid "Hong Kong Dollar (HKD)"
3925
  msgstr "دولار هونج كونج (HKD)"
3926
 
3927
- #: includes/admin/settings/class-settings-bootstrap.php:1132
3928
  msgctxt "admin settings"
3929
  msgid "Hungarian Forint (HUF)"
3930
  msgstr "الفورنت الهنغاري (HUF)"
3931
 
3932
- #: includes/admin/settings/class-settings-bootstrap.php:1133
3933
  msgctxt "admin settings"
3934
  msgid "Israeli New Shequel (ILS)"
3935
  msgstr "الشكيل الإسرائيلي الجديد (ILS)"
3936
 
3937
- #: includes/admin/settings/class-settings-bootstrap.php:1134
3938
  msgctxt "admin settings"
3939
  msgid "Japanese Yen (JPY)"
3940
  msgstr "الين الياباني (JPY)"
3941
 
3942
- #: includes/admin/settings/class-settings-bootstrap.php:1135
3943
  msgctxt "admin settings"
3944
  msgid "Moroccan Dirham (MAD)"
3945
  msgstr ""
3946
 
3947
- #: includes/admin/settings/class-settings-bootstrap.php:1136
3948
  msgctxt "admin settings"
3949
  msgid "Malasian Ringgit (MYR)"
3950
  msgstr "الرينغيت الماليزي (MYR)"
3951
 
3952
- #: includes/admin/settings/class-settings-bootstrap.php:1137
3953
  msgctxt "admin settings"
3954
  msgid "Mexican Peso (MXN)"
3955
  msgstr "بيزو مكسيكي (MXN)"
3956
 
3957
- #: includes/admin/settings/class-settings-bootstrap.php:1138
3958
  msgctxt "admin settings"
3959
  msgid "Norwegian Krone (NOK)"
3960
  msgstr "الكرون النرويجي (NOK)"
3961
 
3962
- #: includes/admin/settings/class-settings-bootstrap.php:1139
3963
  msgctxt "admin settings"
3964
  msgid "New Zealand Dollar (NZD)"
3965
  msgstr "الدولار النيوزيلندي (NZD)"
3966
 
3967
- #: includes/admin/settings/class-settings-bootstrap.php:1140
3968
  msgctxt "admin settings"
3969
  msgid "Philippine Peso (PHP)"
3970
  msgstr "بيزو فلبيني (PHP)"
3971
 
3972
- #: includes/admin/settings/class-settings-bootstrap.php:1141
3973
  msgctxt "admin settings"
3974
  msgid "Polish Zloty (PLN)"
3975
  msgstr "الزلوتي البولندي (PLN)"
3976
 
3977
- #: includes/admin/settings/class-settings-bootstrap.php:1142
3978
  msgctxt "admin settings"
3979
  msgid "Pound Sterling (GBP)"
3980
  msgstr "الجنيه الإسترليني (GBP)"
3981
 
3982
- #: includes/admin/settings/class-settings-bootstrap.php:1143
3983
  msgctxt "admin settings"
3984
  msgid "Singapore Dollar (SGD)"
3985
  msgstr "دولار سنغافوري (SGD)"
3986
 
3987
- #: includes/admin/settings/class-settings-bootstrap.php:1144
3988
  msgctxt "admin settings"
3989
  msgid "Swedish Krona (SEK)"
3990
  msgstr "الكرونا السويدية (SEK)"
3991
 
3992
- #: includes/admin/settings/class-settings-bootstrap.php:1145
3993
  msgctxt "admin settings"
3994
  msgid "Swiss Franc (CHF)"
3995
  msgstr "الفرنك السويسري (CHF)"
3996
 
3997
- #: includes/admin/settings/class-settings-bootstrap.php:1146
3998
  msgctxt "admin settings"
3999
  msgid "Taiwan Dollar (TWD)"
4000
  msgstr "الدولار التايواني (TWD)"
4001
 
4002
- #: includes/admin/settings/class-settings-bootstrap.php:1147
4003
  msgctxt "admin settings"
4004
  msgid "Thai Baht (THB)"
4005
  msgstr "البات التايلندي (THB)"
4006
 
4007
- #: includes/admin/settings/class-settings-bootstrap.php:1148
4008
  msgctxt "admin settings"
4009
  msgid "Turkish Lira (TRY)"
4010
  msgstr "الليرة التركية (TRY)"
4011
 
4012
- #: includes/admin/settings/class-settings-bootstrap.php:1149
4013
  msgctxt "admin settings"
4014
  msgid "U.S. Dollar (USD)"
4015
  msgstr "الدولار الأمريكي (USD)"
4016
 
4017
- #: includes/admin/settings/class-settings-bootstrap.php:1173
4018
  msgctxt "admin settings"
4019
  msgid "Show currency symbol on the left"
4020
  msgstr "إظهار رمز العملة على اليسار"
4021
 
4022
- #: includes/admin/settings/class-settings-bootstrap.php:1174
4023
  msgctxt "admin settings"
4024
  msgid "Show currency symbol on the right"
4025
  msgstr "إظهار رمز العملة على اليمين"
4026
 
4027
- #: includes/admin/settings/class-settings-bootstrap.php:1175
4028
  msgctxt "admin settings"
4029
  msgid "Do not show currency symbol"
4030
  msgstr "عدم إظهار رمز العملة"
4031
 
4032
- #: includes/admin/settings/class-settings-bootstrap.php:1196
4033
  msgctxt "admin settings"
4034
  msgid ""
4035
  "Thank you for your payment. Your payment is being verified and your listing "
@@ -4038,7 +4033,7 @@ msgstr ""
4038
  "شكرا لك على الدفع. يتم الآن التحقق من الدفع وفحص إعلانك. يمكن أن تأخذ عملية "
4039
  "التحقق والمراجعة مدة 48 ساعة."
4040
 
4041
- #: includes/admin/settings/class-settings-bootstrap.php:1217
4042
  msgctxt "admin settings"
4043
  msgid ""
4044
  "Listings with pending payments are marked as abandoned after this time. You "
@@ -4047,122 +4042,122 @@ msgstr ""
4047
  "الإعلانات مع الدفعات المعلقة تعد متخلى عنها بعد هذا الوقت. يمكنك أيضا "
4048
  "<a>تخصيص البريد الإلكتروني</a> الذي يتلقاه الأعضاء."
4049
 
4050
- #: includes/admin/settings/class-settings-bootstrap.php:1247
4051
  msgctxt "admin settings"
4052
  msgid "Try listing's email field first, then author's email."
4053
  msgstr "جرب البريد الإلكتروني للإعلانات أولاً، ثم البريد الإلكتروني للكاتب."
4054
 
4055
- #: includes/admin/settings/class-settings-bootstrap.php:1248
4056
  msgctxt "admin settings"
4057
  msgid "Try author's email first and then listing's email field."
4058
  msgstr "جرب البريد الإلكتروني للكاتب أولاً، ثم البريد الإلكتروني للإعلانات."
4059
 
4060
- #: includes/admin/settings/class-settings-bootstrap.php:1261
4061
  msgctxt "admin settings"
4062
  msgid "Plain (text/plain)"
4063
  msgstr ""
4064
 
4065
- #: includes/admin/settings/class-settings-bootstrap.php:1262
4066
  msgctxt "admin settings"
4067
  msgid "HTML (text/html)"
4068
  msgstr ""
4069
 
4070
- #: includes/admin/settings/class-settings-bootstrap.php:1263
4071
  msgctxt "admin settings"
4072
  msgid "Both (multipart/alternative)"
4073
  msgstr ""
4074
 
4075
- #: includes/admin/settings/class-settings-bootstrap.php:1277
4076
  msgctxt "admin settings"
4077
  msgid "A new listing is submitted."
4078
  msgstr "يتم إضافة إعلان جديد"
4079
 
4080
- #: includes/admin/settings/class-settings-bootstrap.php:1278
4081
  msgctxt "admin settings"
4082
  msgid "A listing is edited."
4083
  msgstr "تم تحرير الإعلان"
4084
 
4085
- #: includes/admin/settings/class-settings-bootstrap.php:1279
4086
  msgctxt "admin settings"
4087
  msgid "A listing expires."
4088
  msgstr "الإعلان منتهي التاريخ"
4089
 
4090
- #: includes/admin/settings/class-settings-bootstrap.php:1280
4091
  #, fuzzy
4092
  msgctxt "admin settings"
4093
  msgid "A listing is renewed."
4094
  msgstr "تم تحرير الإعلان"
4095
 
4096
- #: includes/admin/settings/class-settings-bootstrap.php:1281
4097
  #, fuzzy
4098
  msgctxt "admin settings"
4099
  msgid "A listing payment is completed."
4100
  msgstr "تم تحرير الإعلان"
4101
 
4102
- #: includes/admin/settings/class-settings-bootstrap.php:1282
4103
  #, fuzzy
4104
  msgctxt "admin settings"
4105
  msgid "A listing has been reported as inappropriate."
4106
  msgstr "تمت ترقية الإعلان."
4107
 
4108
- #: includes/admin/settings/class-settings-bootstrap.php:1283
4109
  msgctxt "admin settings"
4110
  msgid "A contact message is sent to a listing's owner."
4111
  msgstr "يتم إرسال رسالة اتصال لمالك الإعلان."
4112
 
4113
- #: includes/admin/settings/class-settings-bootstrap.php:1309
4114
  msgctxt "admin settings"
4115
  msgid "Their listing is submitted."
4116
  msgstr "يتم إضافة الإعلان الخاص بهم"
4117
 
4118
- #: includes/admin/settings/class-settings-bootstrap.php:1310
4119
  msgctxt "admin settings"
4120
  msgid "Their listing is approved/published."
4121
  msgstr "تمت الموافقة ونشر الإعلان الخاص بهم"
4122
 
4123
- #: includes/admin/settings/class-settings-bootstrap.php:1311
4124
  #, fuzzy
4125
  msgctxt "admin settings"
4126
  msgid "A payment for their listing is completed."
4127
  msgstr "يتم إضافة الإعلان الخاص بهم"
4128
 
4129
- #: includes/admin/settings/class-settings-bootstrap.php:1312
4130
  #, fuzzy
4131
  msgctxt "admin settings"
4132
  msgid "Their listing expired or is about to expire."
4133
  msgstr "يتم إضافة الإعلان الخاص بهم"
4134
 
4135
- #: includes/admin/settings/class-settings-bootstrap.php:1329
4136
- #: includes/admin/settings/class-settings-bootstrap.php:1348
4137
- #: includes/admin/settings/class-settings-bootstrap.php:1373
4138
- #: includes/admin/settings/class-settings-bootstrap.php:1408
4139
- #: includes/admin/settings/class-settings-bootstrap.php:1444
4140
  msgctxt "admin settings"
4141
  msgid "Listing's title"
4142
  msgstr "عنوان الإعلان"
4143
 
4144
- #: includes/admin/settings/class-settings-bootstrap.php:1330
4145
- #: includes/admin/settings/class-settings-bootstrap.php:1409
4146
  #, fuzzy
4147
  msgctxt "admin settings"
4148
  msgid "Listing's fee plan name"
4149
  msgstr "إنتهاء صلاحية الإعلان"
4150
 
4151
- #: includes/admin/settings/class-settings-bootstrap.php:1331
4152
- #: includes/admin/settings/class-settings-bootstrap.php:1410
4153
  #, fuzzy
4154
  msgctxt "admin settings"
4155
  msgid "Listing's fee plan description"
4156
  msgstr "تحديد رسوم الإعلان"
4157
 
4158
- #: includes/admin/settings/class-settings-bootstrap.php:1332
4159
- #: includes/admin/settings/class-settings-bootstrap.php:1411
4160
  #, fuzzy
4161
  msgctxt "admin settings"
4162
  msgid "Listing's fee plan details"
4163
  msgstr "إنتهاء صلاحية الإعلان"
4164
 
4165
- #: includes/admin/settings/class-settings-bootstrap.php:1345
4166
  msgctxt "admin settings"
4167
  msgid ""
4168
  "Your listing \"[listing]\" is now available at [listing-url] and can be "
@@ -4171,65 +4166,65 @@ msgstr ""
4171
  "القائمة الخاصة بك \"[listing]\" متوفر الآن في [listing-url] ويمكن مشاهدتها "
4172
  "من قبل العموم."
4173
 
4174
- #: includes/admin/settings/class-settings-bootstrap.php:1349
4175
- #: includes/admin/settings/class-settings-bootstrap.php:1372
4176
  msgctxt "admin settings"
4177
  msgid "Listing's URL"
4178
  msgstr "عنوان URL الإعلان"
4179
 
4180
- #: includes/admin/settings/class-settings-bootstrap.php:1350
4181
- #: includes/admin/settings/class-settings-bootstrap.php:1378
4182
  #, fuzzy
4183
  msgctxt "admin settings"
4184
  msgid "Listing's Access Key"
4185
  msgstr "مفاتيح وصول الإعلان"
4186
 
4187
- #: includes/admin/settings/class-settings-bootstrap.php:1374
4188
  #, fuzzy
4189
  msgctxt "admin settings"
4190
  msgid "Sender's name"
4191
  msgstr "إسم الكاتب"
4192
 
4193
- #: includes/admin/settings/class-settings-bootstrap.php:1375
4194
  #, fuzzy
4195
  msgctxt "admin settings"
4196
  msgid "Sender's e-mail address"
4197
  msgstr "إدخال بريدك إلكتروني"
4198
 
4199
- #: includes/admin/settings/class-settings-bootstrap.php:1376
4200
  #, fuzzy
4201
  msgctxt "admin settings"
4202
  msgid "Contact message"
4203
  msgstr "رسالة اتصال الإعلان"
4204
 
4205
- #: includes/admin/settings/class-settings-bootstrap.php:1377
4206
  msgctxt "admin settings"
4207
  msgid "Date and time the message was sent"
4208
  msgstr ""
4209
 
4210
- #: includes/admin/settings/class-settings-bootstrap.php:1412
4211
  #, fuzzy
4212
  msgctxt "admin settings"
4213
  msgid "Payment items details."
4214
  msgstr "تفاصيل الدفع"
4215
 
4216
- #: includes/admin/settings/class-settings-bootstrap.php:1413
4217
  msgctxt "admin settings"
4218
  msgid "URL where user can review and print payment receipt."
4219
  msgstr ""
4220
 
4221
- #: includes/admin/settings/class-settings-bootstrap.php:1414
4222
  #, fuzzy
4223
  msgctxt "admin settings"
4224
  msgid "Gateway used to process listing's payment."
4225
  msgstr "تعذر معالجة الدفع."
4226
 
4227
- #: includes/admin/settings/class-settings-bootstrap.php:1445
4228
  msgctxt "admin settings"
4229
  msgid "Checkout URL link"
4230
  msgstr "رابط URL إتمام الشراء"
4231
 
4232
- #: includes/admin/settings/class-settings-bootstrap.php:1581
4233
  msgctxt "admin settings"
4234
  msgid ""
4235
  "Could not remove the \"Business Directory Plugin - AJAX Compatibility Module"
@@ -4238,32 +4233,32 @@ msgstr ""
4238
  "تعذر إزالة \"إضافة دليل الأعمال – وحدة التوافق أجاكس\". المرجو إزالة الملف "
4239
  "\"%s\" يدوياً أو قم بإلغاء تفعيل الإضافة."
4240
 
4241
- #: includes/admin/settings/class-settings-bootstrap.php:1597
4242
  msgctxt "admin settings"
4243
  msgid ""
4244
  "Could not activate AJAX Compatibility mode: the directory \"%s\" could not "
4245
  "be created."
4246
  msgstr "لا يمكن تفعيل وضع التوافق أجاكس: تعذر إنشاء المجلد \"%s\"."
4247
 
4248
- #: includes/admin/settings/class-settings-bootstrap.php:1602
4249
  msgctxt "admin settings"
4250
  msgid ""
4251
  "Could not copy the AJAX compatibility plugin \"%s\". Compatibility mode was "
4252
  "not activated."
4253
  msgstr "تعذر نسخ إضافة التوافق أجاكس \"%s\". لم يتم تفعيل وضع التوافق."
4254
 
4255
- #: includes/admin/settings/class-settings-bootstrap.php:1632
4256
  #, fuzzy
4257
  msgctxt "admin settings"
4258
  msgid "Uploaded Image (no resize)"
4259
  msgstr "رفع الصور"
4260
 
4261
- #: includes/functions.php:1192
4262
  msgctxt "admin settings"
4263
  msgid "User"
4264
  msgstr "عضو"
4265
 
4266
- #: includes/functions.php:1193
4267
  msgctxt "admin settings"
4268
  msgid "User registration date"
4269
  msgstr "تاريخ تسجيل العضو"
@@ -4542,7 +4537,7 @@ msgid "General"
4542
  msgstr "عام"
4543
 
4544
  #: includes/admin/settings/class-settings-bootstrap.php:27
4545
- #: includes/admin/settings/class-settings-bootstrap.php:965
4546
  #, fuzzy
4547
  msgctxt "settings"
4548
  msgid "Listings"
@@ -4552,9 +4547,9 @@ msgstr "الإعلانات"
4552
  #: includes/admin/settings/class-settings-bootstrap.php:31
4553
  #: includes/admin/settings/class-settings-bootstrap.php:34
4554
  #: includes/admin/settings/class-settings-bootstrap.php:37
4555
- #: includes/admin/settings/class-settings-bootstrap.php:52
4556
- #: includes/admin/settings/class-settings-bootstrap.php:1228
4557
- #: includes/admin/settings/class-settings.php:354
4558
  #, fuzzy
4559
  msgctxt "settings"
4560
  msgid "General Settings"
@@ -4577,31 +4572,31 @@ msgctxt "settings"
4577
  msgid "Appearance"
4578
  msgstr ""
4579
 
4580
- #: includes/admin/settings/class-settings-bootstrap.php:40
4581
  #: includes/licensing.php:104
4582
  msgctxt "settings"
4583
  msgid "Premium Modules"
4584
  msgstr "وحدات ممتازة (Premium)"
4585
 
4586
- #: includes/admin/settings/class-settings-bootstrap.php:55
4587
  #, fuzzy
4588
  msgctxt "settings"
4589
  msgid "Permalink Settings"
4590
  msgstr "إعدادات الرابط الثابت"
4591
 
4592
- #: includes/admin/settings/class-settings-bootstrap.php:60
4593
  #, fuzzy
4594
  msgctxt "settings"
4595
  msgid "Directory Listings Slug"
4596
  msgstr "رابط لطيف لإعلانات الدليل"
4597
 
4598
- #: includes/admin/settings/class-settings-bootstrap.php:70
4599
  #, fuzzy
4600
  msgctxt "settings"
4601
  msgid "Categories Slug"
4602
  msgstr "رابط لطيف للتصنيفات"
4603
 
4604
- #: includes/admin/settings/class-settings-bootstrap.php:71
4605
  #, fuzzy
4606
  msgctxt "settings"
4607
  msgid ""
@@ -4610,13 +4605,13 @@ msgstr ""
4610
  "لا يمكن أن يكون الرابط اللطيف مستخدم من طرف مصطلح آخر. تجنب \"category\"، "
4611
  "على سبيل المثال."
4612
 
4613
- #: includes/admin/settings/class-settings-bootstrap.php:82
4614
  #, fuzzy
4615
  msgctxt "settings"
4616
  msgid "Tags Slug"
4617
  msgstr "رابط لطيف للوسوم"
4618
 
4619
- #: includes/admin/settings/class-settings-bootstrap.php:83
4620
  #, fuzzy
4621
  msgctxt "settings"
4622
  msgid "The slug can't be in use by another term. Avoid \"tag\", for instance."
@@ -4624,18 +4619,18 @@ msgstr ""
4624
  "لا يمكن أن يكون الرابط اللطيف مستخدم من طرف مصطلح آخر. تجنب \"tag\"، على "
4625
  "سبيل المثال."
4626
 
4627
- #: includes/admin/settings/class-settings-bootstrap.php:94
4628
  #, fuzzy
4629
  msgctxt "settings"
4630
  msgid "Remove listing ID from directory URLs?"
4631
  msgstr "إزالة معرف الإعلان من روابط URLs الدليل؟"
4632
 
4633
- #: includes/admin/settings/class-settings-bootstrap.php:95
4634
  msgctxt "settings"
4635
  msgid "Check this setting to remove the ID for better SEO."
4636
  msgstr ""
4637
 
4638
- #: includes/admin/settings/class-settings-bootstrap.php:96
4639
  #, fuzzy
4640
  msgctxt "settings"
4641
  msgid ""
@@ -4646,78 +4641,78 @@ msgstr ""
4646
  "الأعمال/1809/عنوان-الإعلان\". تحقق من هذا الإعداد لإزالة المعرف لأفضل أرشفة "
4647
  "SEO."
4648
 
4649
- #: includes/admin/settings/class-settings-bootstrap.php:104
4650
  #, fuzzy
4651
  msgctxt "settings"
4652
  msgid "reCAPTCHA"
4653
  msgstr "إعدادات reCaptcha"
4654
 
4655
- #: includes/admin/settings/class-settings-bootstrap.php:107
4656
  #, fuzzy
4657
  msgctxt "settings"
4658
  msgid "Need API keys for reCAPTCHA? Get them <a>here</a>."
4659
  msgstr "بحاجة إلى مفاتيح API ل reCAPTCHA؟ أحصل عليها <a>هنا</a>."
4660
 
4661
- #: includes/admin/settings/class-settings-bootstrap.php:114
4662
  #, fuzzy
4663
  msgctxt "settings"
4664
  msgid "Use reCAPTCHA for contact forms"
4665
  msgstr "إستخدم reCAPTCHA لاستمارة الاتصال"
4666
 
4667
- #: includes/admin/settings/class-settings-bootstrap.php:122
4668
  #, fuzzy
4669
  msgctxt "settings"
4670
  msgid "Turn off reCAPTCHA for logged in users?"
4671
  msgstr "إيقاف reCAPTCHA للأعضاء الذين سجلوا الدخول؟"
4672
 
4673
- #: includes/admin/settings/class-settings-bootstrap.php:130
4674
  #, fuzzy
4675
  msgctxt "settings"
4676
  msgid "Use reCAPTCHA for listing submits"
4677
  msgstr "إستخدم reCAPTCHA أثناء إضافة إعلان"
4678
 
4679
- #: includes/admin/settings/class-settings-bootstrap.php:138
4680
  #, fuzzy
4681
  msgctxt "settings"
4682
  msgid "Use reCAPTCHA for edit listings"
4683
  msgstr "إستخدم reCAPTCHA في تعليقات الإعلان؟"
4684
 
4685
- #: includes/admin/settings/class-settings-bootstrap.php:146
4686
  #, fuzzy
4687
  msgctxt "settings"
4688
  msgid "Use reCAPTCHA for report listings"
4689
  msgstr "إستخدم reCAPTCHA في تعليقات الإعلان؟"
4690
 
4691
- #: includes/admin/settings/class-settings-bootstrap.php:154
4692
  #, fuzzy
4693
  msgctxt "settings"
4694
  msgid "Use reCAPTCHA for listing comments?"
4695
  msgstr "إستخدم reCAPTCHA في تعليقات الإعلان؟"
4696
 
4697
- #: includes/admin/settings/class-settings-bootstrap.php:162
4698
  #, fuzzy
4699
  msgctxt "settings"
4700
  msgid "reCAPTCHA Public Key"
4701
  msgstr "مفتاح عام reCAPTCHA"
4702
 
4703
- #: includes/admin/settings/class-settings-bootstrap.php:171
4704
  #, fuzzy
4705
  msgctxt "settings"
4706
  msgid "reCAPTCHA Private Key"
4707
  msgstr "مفتاح خاص reCAPTCHA"
4708
 
4709
- #: includes/admin/settings/class-settings-bootstrap.php:180
4710
  #, fuzzy
4711
  msgctxt "settings"
4712
  msgid "reCAPTCHA version"
4713
  msgstr "إعدادات reCaptcha"
4714
 
4715
- #: includes/admin/settings/class-settings-bootstrap.php:193
4716
  msgctxt "settings"
4717
  msgid "reCAPTCHA V3 threshold score"
4718
  msgstr ""
4719
 
4720
- #: includes/admin/settings/class-settings-bootstrap.php:198
4721
  msgctxt "settings"
4722
  msgid ""
4723
  "reCAPTCHA v3 returns a score (1.0 is very likely a good interaction, 0.0 is "
@@ -4726,13 +4721,13 @@ msgid ""
4726
  "this value will result in reCAPTCHA validation error."
4727
  msgstr ""
4728
 
4729
- #: includes/admin/settings/class-settings-bootstrap.php:203
4730
  #, fuzzy
4731
  msgctxt "settings"
4732
  msgid "Registration"
4733
  msgstr "Enregistrement"
4734
 
4735
- #: includes/admin/settings/class-settings-bootstrap.php:203
4736
  #, fuzzy
4737
  msgctxt "settings"
4738
  msgid ""
@@ -4746,24 +4741,24 @@ msgstr ""
4746
  "الاتصال بعضوية الإضافة، واطلب منهم دعم معامل الاستعلام القياسي 'redirect_to' "
4747
  "لووردبريس."
4748
 
4749
- #: includes/admin/settings/class-settings-bootstrap.php:208
4750
  #, fuzzy
4751
  msgctxt "settings"
4752
  msgid "Require login to post listings?"
4753
  msgstr "يتطلب تسجيل الدخول لنشر الإعلانات؟"
4754
 
4755
- #: includes/admin/settings/class-settings-bootstrap.php:217
4756
  msgctxt "settings"
4757
  msgid "Allow anonymous users to edit/manage listings with an access key?"
4758
  msgstr ""
4759
 
4760
- #: includes/admin/settings/class-settings-bootstrap.php:225
4761
  #, fuzzy
4762
  msgctxt "settings"
4763
  msgid "Login URL"
4764
  msgstr "رابط تسجيل الدخول"
4765
 
4766
- #: includes/admin/settings/class-settings-bootstrap.php:226
4767
  #, fuzzy
4768
  msgctxt "settings"
4769
  msgid "Only enter this if using a membership plugin or custom login page."
@@ -4771,18 +4766,18 @@ msgstr ""
4771
  "رابط URL لصفحة تسجيل الدخول لعضوية الإضافة الخاصة بك. فقط أدخل هذا إذا كان "
4772
  "هناك استخدام لعضوية الإضافة أو صفحة تسجيل دخول مخصصة."
4773
 
4774
- #: includes/admin/settings/class-settings-bootstrap.php:227
4775
  msgctxt "settings"
4776
  msgid "URL of your membership plugin's login page."
4777
  msgstr ""
4778
 
4779
- #: includes/admin/settings/class-settings-bootstrap.php:236
4780
  #, fuzzy
4781
  msgctxt "settings"
4782
  msgid "Registration URL"
4783
  msgstr "رابط التسجيل"
4784
 
4785
- #: includes/admin/settings/class-settings-bootstrap.php:237
4786
  #, fuzzy
4787
  msgctxt "settings"
4788
  msgid ""
@@ -4791,47 +4786,47 @@ msgstr ""
4791
  "رابط URL لصفحة التسجيل في عضوية الإضافة الخاصة بك. فقط أدخل هذا إذا كان "
4792
  "هناك استخدام لعضوية الإضافة أو صفحة تسجيل مخصصة."
4793
 
4794
- #: includes/admin/settings/class-settings-bootstrap.php:238
4795
  msgctxt "settings"
4796
  msgid "URL of your membership plugin's registration page."
4797
  msgstr ""
4798
 
4799
- #: includes/admin/settings/class-settings-bootstrap.php:247
4800
  msgctxt "settings"
4801
  msgid "Allow users to create accounts during listing submit?"
4802
  msgstr ""
4803
 
4804
- #: includes/admin/settings/class-settings-bootstrap.php:250
4805
  #, fuzzy
4806
  msgctxt "settings"
4807
  msgid "No"
4808
  msgstr "لا"
4809
 
4810
- #: includes/admin/settings/class-settings-bootstrap.php:251
4811
  msgctxt "settings"
4812
  msgid "Yes, and make it optional"
4813
  msgstr ""
4814
 
4815
- #: includes/admin/settings/class-settings-bootstrap.php:252
4816
  #, fuzzy
4817
  msgctxt "settings"
4818
  msgid "Yes, and make it required"
4819
  msgstr "الإسم العائلي مطلوب."
4820
 
4821
- #: includes/admin/settings/class-settings-bootstrap.php:259
4822
- #: includes/admin/settings/class-settings-bootstrap.php:272
4823
  #, fuzzy
4824
  msgctxt "settings"
4825
  msgid "Terms and Conditions"
4826
  msgstr "شروط وأحكام"
4827
 
4828
- #: includes/admin/settings/class-settings-bootstrap.php:264
4829
  #, fuzzy
4830
  msgctxt "settings"
4831
  msgid "Display and require user agreement to Terms and Conditions"
4832
  msgstr "عرض وطلب موافقة العضو على الشروط والأحكام"
4833
 
4834
- #: includes/admin/settings/class-settings-bootstrap.php:273
4835
  #, fuzzy
4836
  msgctxt "settings"
4837
  msgid ""
@@ -4841,7 +4836,7 @@ msgstr ""
4841
  "أدخل النص أو عنوان URL يبدأ ب http. إذا كنت تستخدم عنوان URL، سيتم استبدال "
4842
  "نص الأحكام والشروط برابط إلى الصفحة المناسبة."
4843
 
4844
- #: includes/admin/settings/class-settings-bootstrap.php:275
4845
  #, fuzzy
4846
  msgctxt "settings"
4847
  msgid "Terms and Conditions text goes here."
@@ -5292,88 +5287,94 @@ msgstr "إظهار زر \"مشاهدة الإعلانات\"."
5292
  #: includes/admin/settings/class-settings-bootstrap.php:808
5293
  #, fuzzy
5294
  msgctxt "settings"
 
 
 
 
 
 
5295
  msgid "Show the \"Directory\" button."
5296
  msgstr "إظهار زر \"الدليل\"."
5297
 
5298
- #: includes/admin/settings/class-settings-bootstrap.php:815
5299
  #, fuzzy
5300
  msgctxt "settings"
5301
  msgid "Theme Settings"
5302
  msgstr "إعدادات الصورة"
5303
 
5304
- #: includes/admin/settings/class-settings-bootstrap.php:821
5305
  #, fuzzy
5306
  msgctxt "settings"
5307
  msgid "Theme button style"
5308
  msgstr "نمط زر القالب"
5309
 
5310
- #: includes/admin/settings/class-settings-bootstrap.php:834
5311
  msgctxt "settings"
5312
  msgid ""
5313
  "Include CSS rules to give their own style to View, Edit and Delete buttons?"
5314
  msgstr ""
5315
 
5316
- #: includes/admin/settings/class-settings-bootstrap.php:841
5317
  #, fuzzy
5318
  msgctxt "settings"
5319
  msgid "Image"
5320
  msgstr "الصورة"
5321
 
5322
- #: includes/admin/settings/class-settings-bootstrap.php:842
5323
  #, fuzzy
5324
  msgctxt "settings"
5325
  msgid "Image Settings"
5326
  msgstr "إعدادات الصورة"
5327
 
5328
- #: includes/admin/settings/class-settings-bootstrap.php:847
5329
  #, fuzzy
5330
  msgctxt "settings"
5331
  msgid "Allow images?"
5332
  msgstr "السماح بالصور؟"
5333
 
5334
- #: includes/admin/settings/class-settings-bootstrap.php:858
5335
  #, fuzzy
5336
  msgctxt "settings"
5337
  msgid "Min Image File Size (KB)"
5338
  msgstr "أقل حجم لملف الصورة (KB)"
5339
 
5340
- #: includes/admin/settings/class-settings-bootstrap.php:869
5341
  #, fuzzy
5342
  msgctxt "settings"
5343
  msgid "Max Image File Size (KB)"
5344
  msgstr "أقصى حجم لملف الصورة (KB)"
5345
 
5346
- #: includes/admin/settings/class-settings-bootstrap.php:880
5347
  #, fuzzy
5348
  msgctxt "settings"
5349
  msgid "Min image width (px)"
5350
  msgstr "أقل عرض للصورة (px)"
5351
 
5352
- #: includes/admin/settings/class-settings-bootstrap.php:889
5353
  #, fuzzy
5354
  msgctxt "settings"
5355
  msgid "Min image height (px)"
5356
  msgstr "أقل ارتفاع للصورة (px)"
5357
 
5358
- #: includes/admin/settings/class-settings-bootstrap.php:902
5359
  #, fuzzy
5360
  msgctxt "settings"
5361
  msgid "Max image width (px)"
5362
  msgstr "أقصى عرض للصورة (px)"
5363
 
5364
- #: includes/admin/settings/class-settings-bootstrap.php:913
5365
  #, fuzzy
5366
  msgctxt "settings"
5367
  msgid "Max image height (px)"
5368
  msgstr "أقصى ارتفاع للصورة (px)"
5369
 
5370
- #: includes/admin/settings/class-settings-bootstrap.php:924
5371
  #, fuzzy
5372
  msgctxt "settings"
5373
  msgid "Turn on thickbox/lightbox?"
5374
  msgstr "تشغيل thickbox/lightbox؟"
5375
 
5376
- #: includes/admin/settings/class-settings-bootstrap.php:925
5377
  #, fuzzy
5378
  msgctxt "settings"
5379
  msgid ""
@@ -5382,31 +5383,31 @@ msgstr ""
5382
  "قم بإلغاء التحديد إذا كان يتعارض مع العناصر الأخرى أو الإضافات المثبتة على "
5383
  "موقعك"
5384
 
5385
- #: includes/admin/settings/class-settings-bootstrap.php:931
5386
  #, fuzzy
5387
  msgctxt "settings"
5388
  msgid "Thumbnails"
5389
  msgstr "الصور المصغرة"
5390
 
5391
- #: includes/admin/settings/class-settings-bootstrap.php:938
5392
  #, fuzzy
5393
  msgctxt "settings"
5394
  msgid "Thumbnail width (px)"
5395
  msgstr "عرض الصور المصغرة (px)"
5396
 
5397
- #: includes/admin/settings/class-settings-bootstrap.php:949
5398
  #, fuzzy
5399
  msgctxt "settings"
5400
  msgid "Thumbnail height (px)"
5401
  msgstr "ارتفاع الصورة المصغرة (px)"
5402
 
5403
- #: includes/admin/settings/class-settings-bootstrap.php:958
5404
  #, fuzzy
5405
  msgctxt "settings"
5406
  msgid "Crop thumbnails to exact dimensions?"
5407
  msgstr "قطع الصور المصغرة للأبعاد المناسبة؟"
5408
 
5409
- #: includes/admin/settings/class-settings-bootstrap.php:959
5410
  #, fuzzy
5411
  msgctxt "settings"
5412
  msgid ""
@@ -5420,29 +5421,29 @@ msgstr ""
5420
  "تعديل الارتفاع بشكل متناسب. اعتماداً على الصور المرفوعة, قد تكون ارتفاعات "
5421
  "الصور المصغرة مختلفة."
5422
 
5423
- #: includes/admin/settings/class-settings-bootstrap.php:970
5424
  msgctxt "settings"
5425
  msgid "Enforce image upload on submit/edit?"
5426
  msgstr ""
5427
 
5428
- #: includes/admin/settings/class-settings-bootstrap.php:979
5429
  #, fuzzy
5430
  msgctxt "settings"
5431
  msgid "Number of free images"
5432
  msgstr "عدد الصور المجانية"
5433
 
5434
- #: includes/admin/settings/class-settings-bootstrap.php:991
5435
  msgctxt "settings"
5436
  msgid "Use \"Coming Soon\" photo for listings without any (primary) images?"
5437
  msgstr ""
5438
 
5439
- #: includes/admin/settings/class-settings-bootstrap.php:1004
5440
  #, fuzzy
5441
  msgctxt "settings"
5442
  msgid "Default thumbnail image size"
5443
  msgstr "إعلان العضو الافتراضي"
5444
 
5445
- #: includes/admin/settings/class-settings-bootstrap.php:1007
5446
  msgctxt "settings"
5447
  msgid ""
5448
  "This indicates the size of the thumbnail to be used both in excerpt and "
@@ -5451,65 +5452,65 @@ msgid ""
5451
  "width as the starting point."
5452
  msgstr ""
5453
 
5454
- #: includes/admin/settings/class-settings-bootstrap.php:1015
5455
  #, fuzzy
5456
  msgctxt "settings"
5457
  msgid "Show Thumbnail on main listings page?"
5458
  msgstr "إظهار صورة مصغرة في صفحة الإعلانات الرئيسية؟"
5459
 
5460
- #: includes/admin/settings/class-settings-bootstrap.php:1024
5461
  #, fuzzy
5462
  msgctxt "settings"
5463
  msgid "Featured Badge image"
5464
  msgstr "وحدة المستويات المميزة"
5465
 
5466
- #: includes/admin/settings/class-settings-bootstrap.php:1033
5467
  #, fuzzy
5468
  msgctxt "settings"
5469
  msgid "Featured Badge URL"
5470
  msgstr "وحدة المستويات المميزة"
5471
 
5472
- #: includes/admin/settings/class-settings-bootstrap.php:1034
5473
  msgctxt "settings"
5474
  msgid "Use this to set Featured Badge image as a link to a defined URL."
5475
  msgstr ""
5476
 
5477
- #: includes/admin/settings/class-settings-bootstrap.php:1035
5478
  #, fuzzy
5479
  msgctxt "settings"
5480
  msgid "URL"
5481
  msgstr "رابط URL"
5482
 
5483
- #: includes/admin/settings/class-settings-bootstrap.php:1044
5484
  msgctxt "settings"
5485
  msgid "Display featured (sticky) badge on listing:"
5486
  msgstr ""
5487
 
5488
- #: includes/admin/settings/class-settings-bootstrap.php:1061
5489
  #, fuzzy
5490
  msgctxt "settings"
5491
  msgid "Fee Order"
5492
  msgstr "ترتيب"
5493
 
5494
- #: includes/admin/settings/class-settings-bootstrap.php:1074
5495
  #, fuzzy
5496
  msgctxt "settings"
5497
  msgid "Turn On payments?"
5498
  msgstr "تشغيل الدفعات؟"
5499
 
5500
- #: includes/admin/settings/class-settings-bootstrap.php:1083
5501
  #, fuzzy
5502
  msgctxt "settings"
5503
  msgid "Put payment gateways in test mode?"
5504
  msgstr "وضع بوابات الدفع في وضع الاختبار؟"
5505
 
5506
- #: includes/admin/settings/class-settings-bootstrap.php:1093
5507
  #, fuzzy
5508
  msgctxt "settings"
5509
  msgid "Perform checkouts on the secure (HTTPS) version of your site?"
5510
  msgstr "تنفيذ إنهاء الشراء على الإصدار الآمن (HTTPS) لموقع الويب الخاص بك؟"
5511
 
5512
- #: includes/admin/settings/class-settings-bootstrap.php:1094
5513
  #, fuzzy
5514
  msgctxt "settings"
5515
  msgid ""
@@ -5519,42 +5520,42 @@ msgstr ""
5519
  "موصى به لأمن أكثر. لكي يعمل هذا أنت بحاجة إلى تمكين HTTPS على الخادم الخاص "
5520
  "بك و <a>الحصول على شهادة SSL</a>."
5521
 
5522
- #: includes/admin/settings/class-settings-bootstrap.php:1121
5523
  #, fuzzy
5524
  msgctxt "settings"
5525
  msgid "Currency Code"
5526
  msgstr "رمز العملة"
5527
 
5528
- #: includes/admin/settings/class-settings-bootstrap.php:1160
5529
  #, fuzzy
5530
  msgctxt "settings"
5531
  msgid "Currency Symbol"
5532
  msgstr "رمز العملة"
5533
 
5534
- #: includes/admin/settings/class-settings-bootstrap.php:1170
5535
  #, fuzzy
5536
  msgctxt "settings"
5537
  msgid "Currency symbol display"
5538
  msgstr "عرض رمز العملة"
5539
 
5540
- #: includes/admin/settings/class-settings-bootstrap.php:1185
5541
  msgctxt "settings"
5542
  msgid "Include fee description in receipt?"
5543
  msgstr ""
5544
 
5545
- #: includes/admin/settings/class-settings-bootstrap.php:1195
5546
  #, fuzzy
5547
  msgctxt "settings"
5548
  msgid "Thank you for payment message"
5549
  msgstr "رسالة الشكر على الدفع"
5550
 
5551
- #: includes/admin/settings/class-settings-bootstrap.php:1205
5552
  #, fuzzy
5553
  msgctxt "settings"
5554
  msgid "Ask users to come back for abandoned payments?"
5555
  msgstr "أطلب من الأعضاء العودة للمدفوعات المتخلى عنها؟"
5556
 
5557
- #: includes/admin/settings/class-settings-bootstrap.php:1206
5558
  #, fuzzy
5559
  msgctxt "settings"
5560
  msgid ""
@@ -5567,19 +5568,19 @@ msgstr ""
5567
  "إتمام الدفع للإعلان. هذا ينتج عنه أن الإعلانات تبدو وكأنها فشلت، وذلك عندما "
5568
  "لا يكمل العضو المعاملة ببساطة. دليل الأعمال يستطيع تذكيرهم للعودة والاستمرار."
5569
 
5570
- #: includes/admin/settings/class-settings-bootstrap.php:1216
5571
  #, fuzzy
5572
  msgctxt "settings"
5573
  msgid "Listing abandonment threshold (hours)"
5574
  msgstr "عتبة التخلي على الإعلان (ساعات)"
5575
 
5576
- #: includes/admin/settings/class-settings-bootstrap.php:1233
5577
  #, fuzzy
5578
  msgctxt "settings"
5579
  msgid "Display email address fields publicly?"
5580
  msgstr "عرض حقول عنوان البريد الإلكتروني علنا؟"
5581
 
5582
- #: includes/admin/settings/class-settings-bootstrap.php:1234
5583
  #, fuzzy
5584
  msgctxt "settings"
5585
  msgid ""
@@ -5591,13 +5592,13 @@ msgstr ""
5591
  "لأن هذا يزيد من الرسائل المزعجة إلى العنوان ويسمح للمتطفلين بجمع عنوانين "
5592
  "البريد للاستخدام في المستقبل."
5593
 
5594
- #: includes/admin/settings/class-settings-bootstrap.php:1243
5595
  #, fuzzy
5596
  msgctxt "settings"
5597
  msgid "How to determine the listing's email address?"
5598
  msgstr "كيفية تحديد عنوان البريد الإلكتروني في الإعلان؟"
5599
 
5600
- #: includes/admin/settings/class-settings-bootstrap.php:1244
5601
  #, fuzzy
5602
  msgctxt "settings"
5603
  msgid ""
@@ -5607,12 +5608,12 @@ msgstr ""
5607
  "هذا يؤثر على رسائل البريد الإلكتروني المرسلة إلى مالكي الإعلانات عبر نموذج "
5608
  "الاتصال أو عندما ينتهي تاريخ الإعلانات."
5609
 
5610
- #: includes/admin/settings/class-settings-bootstrap.php:1257
5611
  msgctxt "settings"
5612
  msgid "Email Content-Type header"
5613
  msgstr ""
5614
 
5615
- #: includes/admin/settings/class-settings-bootstrap.php:1258
5616
  msgctxt "settings"
5617
  msgid ""
5618
  "Use this setting to control the format of the emails explicitly. Some "
@@ -5621,25 +5622,25 @@ msgid ""
5621
  "then \"Both\"."
5622
  msgstr ""
5623
 
5624
- #: includes/admin/settings/class-settings-bootstrap.php:1269
5625
  #, fuzzy
5626
  msgctxt "settings"
5627
  msgid "E-Mail Notifications"
5628
  msgstr "تنبيهات البريد الإلكتروني"
5629
 
5630
- #: includes/admin/settings/class-settings-bootstrap.php:1274
5631
  #, fuzzy
5632
  msgctxt "settings"
5633
  msgid "Notify admin via e-mail when..."
5634
  msgstr "إبلاغ المدير عن طريق البريد الإلكتروني عندما..."
5635
 
5636
- #: includes/admin/settings/class-settings-bootstrap.php:1292
5637
  #, fuzzy
5638
  msgctxt "settings"
5639
  msgid "CC this e-mail address too"
5640
  msgstr "إرسال نسخة من الرسالة الى عنوان البريد الإلكتروني هذا أيضا"
5641
 
5642
- #: includes/admin/settings/class-settings-bootstrap.php:1298
5643
  #, fuzzy
5644
  msgctxt "settings"
5645
  msgid ""
@@ -5648,49 +5649,49 @@ msgid ""
5648
  msgstr ""
5649
  "يمكنك تعديل قالب النص المستخدم لمعظم رسائل البريد الإلكتروني هذه أدناه."
5650
 
5651
- #: includes/admin/settings/class-settings-bootstrap.php:1305
5652
  #, fuzzy
5653
  msgctxt "settings"
5654
  msgid "Notify users via e-mail when..."
5655
  msgstr "إعلام الأعضاء عن طريق البريد الإلكتروني عندما..."
5656
 
5657
- #: includes/admin/settings/class-settings-bootstrap.php:1317
5658
  #, fuzzy
5659
  msgctxt "settings"
5660
  msgid "Templates"
5661
  msgstr "قوالب البريد الإلكتروني"
5662
 
5663
- #: includes/admin/settings/class-settings-bootstrap.php:1322
5664
  #, fuzzy
5665
  msgctxt "settings"
5666
  msgid "Email confirmation message"
5667
  msgstr "رسالة تأكيد البريد الإلكتروني"
5668
 
5669
- #: includes/admin/settings/class-settings-bootstrap.php:1323
5670
  #, fuzzy
5671
  msgctxt "settings"
5672
  msgid "Sent after a listing has been submitted."
5673
  msgstr "ترسل بعد أن يضاف الإعلان."
5674
 
5675
- #: includes/admin/settings/class-settings-bootstrap.php:1341
5676
  #, fuzzy
5677
  msgctxt "settings"
5678
  msgid "Listing published message"
5679
  msgstr "رسالة نشر الإعلان"
5680
 
5681
- #: includes/admin/settings/class-settings-bootstrap.php:1342
5682
  #, fuzzy
5683
  msgctxt "settings"
5684
  msgid "Sent when the listing has been published or approved by an admin."
5685
  msgstr "ترسل عندما يتم نشر الإعلان أو الموافقة عليه من طرف المدير."
5686
 
5687
- #: includes/admin/settings/class-settings-bootstrap.php:1359
5688
  #, fuzzy
5689
  msgctxt "settings"
5690
  msgid "Listing Contact Message"
5691
  msgstr "رسالة اتصال الإعلان"
5692
 
5693
- #: includes/admin/settings/class-settings-bootstrap.php:1360
5694
  #, fuzzy
5695
  msgctxt "settings"
5696
  msgid ""
@@ -5700,48 +5701,48 @@ msgstr ""
5700
  "ترسل إلى مالكي الإعلانات عندما يستخدم شخص ما نموذج جهة الاتصال في صفحات "
5701
  "الإعلانات الخاصة بهم."
5702
 
5703
- #: includes/admin/settings/class-settings-bootstrap.php:1388
5704
  #, fuzzy
5705
  msgctxt "settings"
5706
  msgid "Payment completed message"
5707
  msgstr "رسالة تذكير بالتخلي عن الدفع"
5708
 
5709
- #: includes/admin/settings/class-settings-bootstrap.php:1389
5710
  #, fuzzy
5711
  msgctxt "settings"
5712
  msgid "Sent after a Listing's payment is verified by Gateway or admins."
5713
  msgstr "ترسل أحيانا بعد أن يتخلي الأعضاء عن الدفعة المنتظرة."
5714
 
5715
- #: includes/admin/settings/class-settings-bootstrap.php:1424
5716
  #, fuzzy
5717
  msgctxt "settings"
5718
  msgid "Payment abandoned reminder message"
5719
  msgstr "رسالة تذكير بالتخلي عن الدفع"
5720
 
5721
- #: includes/admin/settings/class-settings-bootstrap.php:1425
5722
  #, fuzzy
5723
  msgctxt "settings"
5724
  msgid "Sent some time after a pending payment is abandoned by users."
5725
  msgstr "ترسل أحيانا بعد أن يتخلي الأعضاء عن الدفعة المنتظرة."
5726
 
5727
- #: includes/admin/settings/class-settings-bootstrap.php:1462
5728
  #, fuzzy
5729
  msgctxt "settings"
5730
  msgid "E-Mail Notices"
5731
  msgstr "تنبيهات البريد الإلكتروني"
5732
 
5733
- #: includes/admin/settings/class-settings-bootstrap.php:1653
5734
  msgctxt "settings"
5735
  msgid "Cropped"
5736
  msgstr ""
5737
 
5738
- #: includes/admin/settings/class-settings.php:556
5739
- #: includes/admin/settings/class-settings.php:567
5740
  msgctxt "settings"
5741
  msgid "\"%s\" can not be empty."
5742
  msgstr ""
5743
 
5744
- #: includes/admin/settings/class-settings.php:574
5745
  msgctxt "settings"
5746
  msgid "The slug \"%s\" is already in use for another taxonomy."
5747
  msgstr ""
@@ -5777,11 +5778,6 @@ msgctxt "settings"
5777
  msgid "Deactivate"
5778
  msgstr "قم بالتفعيل"
5779
 
5780
- #: includes/licensing.php:223 includes/licensing.php:224
5781
- msgctxt "settings"
5782
- msgid "Licenses"
5783
- msgstr "التراخيص"
5784
-
5785
  #: templates/admin/settings-page.tpl.php:7
5786
  msgctxt "settings"
5787
  msgid "Reset Defaults"
@@ -5816,27 +5812,27 @@ msgctxt "post status"
5816
  msgid "Pending"
5817
  msgstr " في الانتظار"
5818
 
5819
- #: includes/admin/settings/class-settings-bootstrap.php:1364
5820
  msgctxt "contact email"
5821
  msgid "You have received a reply from your listing at %s."
5822
  msgstr "تلقيت ردا من الإعلان الخاص بك في %s."
5823
 
5824
- #: includes/admin/settings/class-settings-bootstrap.php:1365
5825
  msgctxt "contact email"
5826
  msgid "Name: %s"
5827
  msgstr "الإسم: %s"
5828
 
5829
- #: includes/admin/settings/class-settings-bootstrap.php:1366
5830
  msgctxt "contact email"
5831
  msgid "E-Mail: %s"
5832
  msgstr "البريد الإلكتروني: %s"
5833
 
5834
- #: includes/admin/settings/class-settings-bootstrap.php:1367
5835
  msgctxt "contact email"
5836
  msgid "Message:"
5837
  msgstr "الرسالة:"
5838
 
5839
- #: includes/admin/settings/class-settings-bootstrap.php:1369
5840
  msgctxt "contact email"
5841
  msgid "Time: %s"
5842
  msgstr "الوقت: %s"
@@ -5999,7 +5995,7 @@ msgctxt "installer"
5999
  msgid "Listing upgrade to featured"
6000
  msgstr "الترقية الى إعلان مميز"
6001
 
6002
- #: includes/installer.php:79
6003
  msgctxt "installer"
6004
  msgid "Default Fee"
6005
  msgstr "رسوم افتراضية"
@@ -6515,113 +6511,113 @@ msgstr ""
6515
  "href=\"%s\">إدارة الخيارات - الدفع</a> لتغيير إعدادات الدفع. حتى تقوم بتغيير "
6516
  "ذلك، فإن الدليل سيعمل بـ <i>الوضع المجاني.</i>"
6517
 
6518
- #: includes/class-payment.php:82
6519
  msgctxt "payment"
6520
  msgid "Payment status changed from \"%1$s\" to \"%2$s\"."
6521
  msgstr ""
6522
 
6523
- #: includes/class-payment.php:123
6524
  #, fuzzy
6525
  msgctxt "payment"
6526
  msgid "Initial payment (\"%s\")"
6527
  msgstr "الدفعة الأولية"
6528
 
6529
- #: includes/class-payment.php:126
6530
  #, fuzzy
6531
  msgctxt "payment"
6532
  msgid "Renewal payment (\"%s\")"
6533
  msgstr "رفض الدفع"
6534
 
6535
- #: includes/class-payment.php:313
6536
  #, fuzzy
6537
  msgctxt "payment"
6538
  msgid "Pending"
6539
  msgstr " في الانتظار"
6540
 
6541
- #: includes/class-payment.php:314
6542
  msgctxt "payment"
6543
  msgid "Failed"
6544
  msgstr ""
6545
 
6546
- #: includes/class-payment.php:315
6547
  #, fuzzy
6548
  msgctxt "payment"
6549
  msgid "Completed"
6550
  msgstr "إكتمل"
6551
 
6552
- #: includes/class-payment.php:316
6553
  #, fuzzy
6554
  msgctxt "payment"
6555
  msgid "Canceled"
6556
  msgstr "ألغيت"
6557
 
6558
- #: includes/class-payment.php:317
6559
  msgctxt "payment"
6560
  msgid "On Hold"
6561
  msgstr ""
6562
 
6563
- #: includes/class-payment.php:318
6564
  msgctxt "payment"
6565
  msgid "Refunded"
6566
  msgstr ""
6567
 
6568
- #: includes/class-payment.php:138
6569
  msgctxt "payment summary"
6570
  msgid "%s. Admin Posted."
6571
  msgstr ""
6572
 
6573
- #: includes/class-payment.php:140
6574
  #, fuzzy
6575
  msgctxt "payment summary"
6576
  msgid "%s. Imported Listing."
6577
  msgstr "استيراد الإعلانات"
6578
 
6579
- #: includes/class-payment.php:218
6580
  #, fuzzy
6581
  msgctxt "submit listing"
6582
  msgid "Listing submitted by admin. Payment skipped."
6583
  msgstr "Poster annonce(paiement initial)"
6584
 
6585
- #: includes/views/submit_listing.php:63
6586
  msgctxt "submit listing"
6587
  msgid "Click this field to add categories"
6588
  msgstr ""
6589
 
6590
- #: includes/views/submit_listing.php:64 templates/submit-listing.tpl.php:23
6591
  #, fuzzy
6592
  msgctxt "submit listing"
6593
  msgid "Complete Listing"
6594
  msgstr "حذف الإعلان"
6595
 
6596
- #: includes/views/submit_listing.php:65 templates/submit-listing.tpl.php:28
6597
  #, fuzzy
6598
  msgctxt "submit listing"
6599
  msgid "Continue to Payment"
6600
  msgstr "الدفعة الأولية"
6601
 
6602
- #: includes/views/submit_listing.php:67
6603
  msgctxt "submit listing"
6604
  msgid "Please wait a moment!"
6605
  msgstr ""
6606
 
6607
- #: includes/views/submit_listing.php:68
6608
  msgctxt "submit listing"
6609
  msgid "Something went wrong!"
6610
  msgstr ""
6611
 
6612
- #: includes/views/submit_listing.php:93
6613
  #, fuzzy
6614
  msgctxt "submit listing"
6615
  msgid "No listing ID was specified."
6616
  msgstr "تم تحرير الإعلان"
6617
 
6618
- #: includes/views/submit_listing.php:95
6619
  #, fuzzy
6620
  msgctxt "submit listing"
6621
  msgid "You can't edit this listing."
6622
  msgstr "التصنيفات لهذا الإعلان"
6623
 
6624
- #: includes/views/submit_listing.php:149
6625
  msgctxt "submit listing"
6626
  msgid ""
6627
  "This listing can't be edited at this time because it has no fee plan "
@@ -6629,60 +6625,60 @@ msgid ""
6629
  "to a fee plan."
6630
  msgstr ""
6631
 
6632
- #: includes/views/submit_listing.php:154
6633
  msgctxt "submit listing"
6634
  msgid ""
6635
  "This listing can't be edited at this time. Please try again later or contact "
6636
  "the admin if the problem persists."
6637
  msgstr ""
6638
 
6639
- #: includes/views/submit_listing.php:177
6640
  #, fuzzy
6641
  msgctxt "submit listing"
6642
  msgid "You're logged in as admin, payment will be skipped."
6643
  msgstr "لقد تم تسجيل دخولك كمدير. سيتم تخطي أي خطوات للدفع."
6644
 
6645
- #: includes/views/submit_listing.php:403
6646
  #, fuzzy
6647
  msgctxt "submit listing"
6648
  msgid "Category selection"
6649
  msgstr "إختيار تصنيف"
6650
 
6651
- #: includes/views/submit_listing.php:403
6652
  #, fuzzy
6653
  msgctxt "submit listing"
6654
  msgid "Category & plan selection"
6655
  msgstr "إختيار تصنيف"
6656
 
6657
- #: includes/views/submit_listing.php:408
6658
  #, fuzzy
6659
  msgctxt "submit listing"
6660
  msgid "Listing Information"
6661
  msgstr "معلومات حول الإعلان"
6662
 
6663
- #: includes/views/submit_listing.php:413
6664
  #, fuzzy
6665
  msgctxt "submit listing"
6666
  msgid "Listing Images"
6667
  msgstr "صور الإعلانات"
6668
 
6669
- #: includes/views/submit_listing.php:421
6670
  msgctxt "submit listing"
6671
  msgid "Account Creation"
6672
  msgstr ""
6673
 
6674
- #: includes/views/submit_listing.php:427
6675
  #, fuzzy
6676
  msgctxt "submit listing"
6677
  msgid "Terms and Conditions"
6678
  msgstr "شروط وأحكام"
6679
 
6680
- #: includes/views/submit_listing.php:464
6681
  msgctxt "submit listing"
6682
  msgid "(Please choose a fee plan above)"
6683
  msgstr ""
6684
 
6685
- #: includes/views/submit_listing.php:514
6686
  #, fuzzy
6687
  msgctxt "submit listing"
6688
  msgid "Can not submit a listing at this moment. Please try again later."
@@ -6690,69 +6686,69 @@ msgstr ""
6690
  "لا يمكن أن نقوم بمعالجة الدفع الخاص بك في هذه اللحظة. المرجو المحاولة مرة "
6691
  "أخرى لاحقاً."
6692
 
6693
- #: includes/views/submit_listing.php:556
6694
  #, fuzzy
6695
  msgctxt "submit listing"
6696
  msgid "Please select a category."
6697
  msgstr "المرجو تحديد خيار رسوم التصنيف \"%s\"."
6698
 
6699
- #: includes/views/submit_listing.php:569
6700
  #, fuzzy
6701
  msgctxt "submit listing"
6702
  msgid "Please select a category for your listing."
6703
  msgstr "المرجو تحديد خيار رسوم التصنيف \"%s\"."
6704
 
6705
- #: includes/views/submit_listing.php:589
6706
  msgctxt "submit listing"
6707
  msgid "Please choose a valid category for your plan."
6708
  msgstr ""
6709
 
6710
- #: includes/views/submit_listing.php:591
6711
  #, fuzzy
6712
  msgctxt "submit listing"
6713
  msgid "Please choose a valid fee plan for your category selection."
6714
  msgstr "المرجو تحديد خيار رسوم التصنيف \"%s\"."
6715
 
6716
- #: includes/views/submit_listing.php:830
6717
  #, fuzzy
6718
  msgctxt "submit listing"
6719
  msgid "Please enter your desired username."
6720
  msgstr "يرجى إدخال إسمك."
6721
 
6722
- #: includes/views/submit_listing.php:835
6723
  #, fuzzy
6724
  msgctxt "submit listing"
6725
  msgid "Please enter the e-mail for your new account."
6726
  msgstr "يرجى إدخال إسمك."
6727
 
6728
- #: includes/views/submit_listing.php:840
6729
  msgctxt "submit listing"
6730
  msgid "The username you chose is already in use. Please use a different one."
6731
  msgstr ""
6732
 
6733
- #: includes/views/submit_listing.php:845
6734
  msgctxt "submit listing"
6735
  msgid "The e-mail address you chose for your account is already in use."
6736
  msgstr ""
6737
 
6738
- #: includes/views/submit_listing.php:860
6739
  msgctxt "submit listing"
6740
  msgid "Create a user account on this site"
6741
  msgstr ""
6742
 
6743
- #: includes/views/submit_listing.php:867
6744
  msgctxt "submit listing"
6745
  msgid ""
6746
  "You need to create an account on the site. Please fill out the form below."
6747
  msgstr ""
6748
 
6749
- #: includes/views/submit_listing.php:873
6750
  #, fuzzy
6751
  msgctxt "submit listing"
6752
  msgid "Username:"
6753
  msgstr "عضو"
6754
 
6755
- #: includes/views/submit_listing.php:882
6756
  #, fuzzy
6757
  msgctxt "submit listing"
6758
  msgid "Email:"
@@ -6919,7 +6915,7 @@ msgid "Social Site (Other)"
6919
  msgstr "الموقع الاجتماعي (التعامل مع التغريدات)"
6920
 
6921
  #: includes/fields/class-fieldtypes-social.php:95
6922
- #: includes/fields/class-fieldtypes-url.php:149
6923
  msgctxt "form-fields api"
6924
  msgid "URL:"
6925
  msgstr "رابط URL:"
@@ -6966,7 +6962,7 @@ msgctxt "form-fields api"
6966
  msgid "URL Field"
6967
  msgstr "حقل الرابط"
6968
 
6969
- #: includes/fields/class-fieldtypes-url.php:160
6970
  msgctxt "form-fields api"
6971
  msgid "Link Text (optional):"
6972
  msgstr "رابط نصي (اختياري):"
@@ -7246,13 +7242,13 @@ msgctxt "image field"
7246
  msgid "Caption for %s is required."
7247
  msgstr "البلد المطلوب."
7248
 
7249
- #: includes/functions.php:1272
7250
  #, fuzzy
7251
  msgctxt "templates"
7252
  msgid "Return to results"
7253
  msgstr "العودة إلى الدليل."
7254
 
7255
- #: includes/functions.php:1276 includes/functions.php:1281
7256
  msgctxt "templates"
7257
  msgid "Go back"
7258
  msgstr ""
@@ -7268,12 +7264,12 @@ msgctxt "templates"
7268
  msgid "No listing categories found."
7269
  msgstr "لم يتم العثور على تصنيفات الإعلانات."
7270
 
7271
- #: includes/templates-ui.php:345
7272
  msgctxt "templates"
7273
  msgid "Search Listings"
7274
  msgstr "البحث في الإعلانات"
7275
 
7276
- #: includes/templates-ui.php:350
7277
  msgctxt "templates"
7278
  msgid "Advanced Search"
7279
  msgstr "بحث متقدم"
@@ -7318,7 +7314,7 @@ msgstr ""
7318
  "إعلانات بداخلها. هذا يعني أنها لن تظهر على الواجهة الأمامية للموقع الخاص بك. "
7319
  "إذا كنت لا تريد ذلك، إضغط <a>هنا</a> لتغيير الإعداد."
7320
 
7321
- #: includes/views/submit_listing.php:348
7322
  msgctxt "templates"
7323
  msgid ""
7324
  "<b>View not available</b>. Do you have the \"Disable Frontend Listing "
@@ -7327,27 +7323,27 @@ msgstr ""
7327
  "<b>المشاهدة غير متوفرة</b>. هل لديك \"تعطيل إضافة إعلان من واجهة الموقع؟\" "
7328
  "محددة في الإعدادات؟"
7329
 
7330
- #: includes/views/submit_listing.php:350
7331
  msgctxt "templates"
7332
  msgid ""
7333
  "Listing submission has been disabled. Contact the administrator for details."
7334
  msgstr ""
7335
 
7336
- #: includes/views/submit_listing.php:517
7337
  msgctxt "templates"
7338
  msgid ""
7339
  "<b>There are no Fee Plans available</b>, without a fee plan site users can't "
7340
  "submit a listing. %s to create a fee plan"
7341
  msgstr ""
7342
 
7343
- #: includes/views/submit_listing.php:531
7344
  msgctxt "templates"
7345
  msgid ""
7346
  "Listing submission is not available at the moment. Contact the administrator "
7347
  "for details."
7348
  msgstr ""
7349
 
7350
- #: includes/views/submit_listing.php:534
7351
  msgctxt "templates"
7352
  msgid ""
7353
  "<b>View not available</b>, there is no \"Category\" association field. %s "
@@ -7355,17 +7351,17 @@ msgid ""
7355
  "an existing field"
7356
  msgstr ""
7357
 
7358
- #: includes/views/submit_listing.php:902
7359
  msgctxt "templates"
7360
  msgid "Please agree to the Terms and Conditions."
7361
  msgstr "يرجى الموافقة على الشروط والأحكام."
7362
 
7363
- #: includes/views/submit_listing.php:910
7364
  msgctxt "templates"
7365
  msgid "Terms and Conditions:"
7366
  msgstr "شروط وأحكام:"
7367
 
7368
- #: includes/views/submit_listing.php:918
7369
  #, fuzzy
7370
  msgctxt "templates"
7371
  msgid "I agree to the <a>Terms and Conditions</a>"
@@ -7379,19 +7375,19 @@ msgid "No listings found."
7379
  msgstr "لم يتم العثور على أي إعلانات."
7380
 
7381
  #: templates/businessdirectory-listings.tpl.php:38
7382
- #: templates/listings.tpl.php:31
7383
  msgctxt "templates"
7384
  msgid "&laquo; Previous "
7385
  msgstr "&laquo; السابق"
7386
 
7387
  #: templates/businessdirectory-listings.tpl.php:39
7388
- #: templates/listings.tpl.php:32
7389
  msgctxt "templates"
7390
  msgid "Next &raquo;"
7391
  msgstr "التالي &raquo;"
7392
 
7393
  #: templates/deprecated/search.tpl.php:24 templates/manage-listings.tpl.php:8
7394
- #: templates/manage_listings.tpl.php:8
7395
  msgctxt "templates"
7396
  msgid "Return to directory"
7397
  msgstr "العودة إلى الدليل."
@@ -7465,7 +7461,7 @@ msgctxt "templates"
7465
  msgid "Lost your password?"
7466
  msgstr "فقدت كلمة المرور؟"
7467
 
7468
- #: templates/manage-listings.tpl.php:3 templates/manage_listings.tpl.php:3
7469
  msgctxt "templates"
7470
  msgid ""
7471
  "Your current listings are shown below. To edit a listing click the edit "
@@ -7474,7 +7470,7 @@ msgstr ""
7474
  "أدناه توجد إعلاناتك الحالية. لتحرير إعلان ما إضغط على زر تحرير. لحذف إعلان "
7475
  "ما إضغط على زر حذف."
7476
 
7477
- #: templates/manage-listings.tpl.php:6 templates/manage_listings.tpl.php:6
7478
  msgctxt "templates"
7479
  msgid "You do not currently have any listings in the directory."
7480
  msgstr "أنت لا تملك حاليا أي إعلانات في الدليل."
@@ -7676,35 +7672,37 @@ msgctxt "templates"
7676
  msgid "There are no images currently attached to your listing."
7677
  msgstr "لا توجد أي صور مرفقة حاليا إلى إعلانك."
7678
 
7679
- #: includes/gateways/class-gateway-authorize-net.php:20
7680
  #, fuzzy
7681
  msgctxt "authorize-net"
7682
  msgid "Authorize.net"
7683
  msgstr "تفعيل Authorize.net؟"
7684
 
7685
- #: includes/gateways/class-gateway-authorize-net.php:38
7686
  #, fuzzy
7687
  msgctxt "authorize-net"
7688
  msgid "Login ID"
7689
  msgstr "معرف تسجيل الدخول"
7690
 
7691
- #: includes/gateways/class-gateway-authorize-net.php:39
7692
  #, fuzzy
7693
  msgctxt "authorize-net"
7694
  msgid "Transaction Key"
7695
  msgstr "مفتاح المعاملة"
7696
 
7697
- #: includes/gateways/class-gateway-authorize-net.php:71
7698
  msgctxt "authorize-net"
7699
  msgid "Login ID is missing."
7700
  msgstr "معرف تسجيل الدخول مفقود."
7701
 
7702
- #: includes/gateways/class-gateway-authorize-net.php:74
7703
  msgctxt "authorize-net"
7704
  msgid "Transaction Key is missing."
7705
  msgstr "مفتاح المعاملة مفقود."
7706
 
7707
- #: includes/gateways/class-gateway-authorize-net.php:103
 
 
7708
  #, fuzzy
7709
  msgctxt "authorize-net"
7710
  msgid ""
@@ -7713,7 +7711,7 @@ msgid ""
7713
  msgstr ""
7714
  "الدفع الخاص بك خاضع للمراجعة من طرف قسم الدفع. وذلك للسبب التالي: \"%s\"."
7715
 
7716
- #: includes/gateways/class-gateway-authorize-net.php:112
7717
  #, fuzzy
7718
  msgctxt "authorize-net"
7719
  msgid ""
@@ -7723,22 +7721,34 @@ msgstr ""
7723
  "لم تقبل بوابة الدفع بطاقة الائتمان أو معلومات الفوترة الخاصة بك. وذلك للسبب "
7724
  "التالي: \"%s\"."
7725
 
7726
- #: includes/gateways/class-gateway-authorize-net.php:121
 
 
 
 
 
7727
  msgctxt "authorize-net"
7728
  msgid "Payment was rejected. The following reason was given: \"%s\"."
7729
  msgstr "رفض الدفع. وذلك للسبب التالي: \"%s\"."
7730
 
7731
- #: includes/gateways/class-gateway-authorize-net.php:179
 
7732
  msgctxt "authorize-net"
7733
  msgid "Payment failed. Reason: %s"
7734
  msgstr ""
7735
 
7736
- #: includes/gateways/class-gateway-authorize-net.php:204
7737
  #, fuzzy
7738
  msgctxt "authorize-net"
7739
  msgid "Listing #%d"
7740
  msgstr "تحرير الإعلان"
7741
 
 
 
 
 
 
 
7742
  #: includes/helpers/class-access-keys-sender.php:20
7743
  #, fuzzy
7744
  msgctxt "access keys sender"
@@ -7886,24 +7896,24 @@ msgctxt "default category name"
7886
  msgid "General"
7887
  msgstr "عام"
7888
 
7889
- #: includes/licensing.php:297
7890
  #, fuzzy
7891
  msgctxt "licensing"
7892
  msgid "Invalid item ID"
7893
  msgstr "معرف حقل غير صالح"
7894
 
7895
- #: includes/licensing.php:303
7896
  msgctxt "licensing"
7897
  msgid "No license key provided"
7898
  msgstr "لم يتم تقديم أي مفتاح الترخيص"
7899
 
7900
- #: includes/licensing.php:327
7901
  #, fuzzy
7902
  msgctxt "licensing"
7903
  msgid "The license key was revoked."
7904
  msgstr "لم يتم تقديم أي مفتاح الترخيص"
7905
 
7906
- #: includes/licensing.php:329
7907
  msgctxt "licensing"
7908
  msgid ""
7909
  "If you think this is a mistake, please contact <support-link>Business "
@@ -7911,36 +7921,36 @@ msgid ""
7911
  "reported as revoked by the licensing software."
7912
  msgstr ""
7913
 
7914
- #: includes/licensing.php:331
7915
  msgctxt "licensing"
7916
  msgid ""
7917
  "Please include the email address you used to purchase <module-name> with "
7918
  "your report."
7919
  msgstr ""
7920
 
7921
- #: includes/licensing.php:342 includes/licensing.php:385
7922
  msgctxt "licensing"
7923
  msgid "License key is invalid"
7924
  msgstr "مفتاح الترخيص غير صالح"
7925
 
7926
- #: includes/licensing.php:359
7927
  msgctxt "licensing"
7928
  msgid "Invalid module ID"
7929
  msgstr "معرف وحدة غير صالح"
7930
 
7931
- #: includes/licensing.php:389
7932
  msgctxt "licensing"
7933
  msgid "Deactivation failed"
7934
  msgstr "فشل التعطيل"
7935
 
7936
- #: includes/licensing.php:397
7937
  msgctxt "licensing"
7938
  msgid ""
7939
  "It was not possible to establish a connection with Business Directory's "
7940
  "server. cURL was not found in your system"
7941
  msgstr ""
7942
 
7943
- #: includes/licensing.php:399 includes/licensing.php:440
7944
  msgctxt "licensing"
7945
  msgid ""
7946
  "To ensure the security of our systems and adhere to industry best practices, "
@@ -7949,7 +7959,7 @@ msgid ""
7949
  "1.0.1c)."
7950
  msgstr ""
7951
 
7952
- #: includes/licensing.php:401 includes/licensing.php:442
7953
  msgctxt "licensing"
7954
  msgid ""
7955
  "Upgrading your system will not only allow you to communicate with Business "
@@ -7957,65 +7967,65 @@ msgid ""
7957
  "services using the latest security standards."
7958
  msgstr ""
7959
 
7960
- #: includes/licensing.php:403
7961
  msgctxt "licensing"
7962
  msgid ""
7963
  "Please contact your hosting provider and ask them to upgrade your system. "
7964
  "Include this message if necessary"
7965
  msgstr ""
7966
 
7967
- #: includes/licensing.php:419
7968
  msgctxt "licensing"
7969
  msgid ""
7970
  "It was not possible to establish a connection with Business Directory's "
7971
  "server. The connection failed with the following error:"
7972
  msgstr ""
7973
 
7974
- #: includes/licensing.php:423 includes/licensing.php:475
7975
  msgctxt "licensing"
7976
  msgid ""
7977
  "It looks like your server is not authorized to make requests to Business "
7978
  "Directory servers. Please contact <support-link>Business Directory support</"
7979
- "support-link> and ask them to add your IP address <ip-address> to the "
7980
- "whitelist."
7981
  msgstr ""
7982
 
7983
- #: includes/licensing.php:425 includes/licensing.php:477
7984
  msgctxt "licensing"
7985
  msgid "Include this error message with your report."
7986
  msgstr ""
7987
 
7988
- #: includes/licensing.php:435
7989
  msgctxt "licensing"
7990
  msgid ""
7991
  "It was not possible to establish a connection with Business Directory's "
7992
  "server. A problem occurred in the SSL/TSL handshake:"
7993
  msgstr ""
7994
 
7995
- #: includes/licensing.php:444
7996
  msgctxt "licensing"
7997
  msgid ""
7998
  "Please contact your hosting provider and ask them to upgrade your system. "
7999
  "Include this message if necessary."
8000
  msgstr ""
8001
 
8002
- #: includes/licensing.php:451
8003
  msgctxt "licensing"
8004
  msgid "Could not contact licensing server"
8005
  msgstr "لا يمكن الاتصال بخادم الترخيص"
8006
 
8007
- #: includes/licensing.php:473
8008
  msgctxt "licensing"
8009
  msgid "The server returned a 403 Forbidden error."
8010
  msgstr ""
8011
 
8012
- #: includes/licensing.php:541
8013
  #, fuzzy
8014
  msgctxt "licensing"
8015
  msgid "Business Directory - Please verify your license keys"
8016
  msgstr "دليل الأعمال - إعادة تعيين الافتراضي"
8017
 
8018
- #: includes/licensing.php:551
8019
  #, fuzzy
8020
  msgctxt "licensing"
8021
  msgid ""
@@ -8026,26 +8036,26 @@ msgstr ""
8026
  "المفعول. إذهب إلى <a>إدارة الخيارات - التراخيص</a> لإدخال معلومات الترخيص "
8027
  "الخاص بك."
8028
 
8029
- #: includes/licensing.php:562
8030
  msgctxt "licensing"
8031
  msgid ""
8032
  "You need to activate the license keys for the following themes before they "
8033
  "can be used: %s."
8034
  msgstr ""
8035
 
8036
- #: includes/licensing.php:570 includes/licensing.php:626
8037
  #, fuzzy
8038
  msgctxt "licensing"
8039
  msgid "Review my license keys"
8040
  msgstr "تجديد مفتاح الترخيص"
8041
 
8042
- #: includes/licensing.php:597
8043
  #, fuzzy
8044
  msgctxt "licensing"
8045
  msgid "Business Directory - License key expired"
8046
  msgstr "دليل الأعمال - مفتاح الترخيص منتهي"
8047
 
8048
- #: includes/licensing.php:607
8049
  #, fuzzy
8050
  msgctxt "licensing"
8051
  msgid ""
@@ -8056,7 +8066,7 @@ msgstr ""
8056
  "انتهت صلاحية مفتاح الترخيص <span class=\"module-name\">%s %s</span>. سوف "
8057
  "يستمر عمل الوحدة ولكن لن تتلقى أي مزيد من التحديثات حتى يتم تجديد الترخيص."
8058
 
8059
- #: includes/licensing.php:618
8060
  #, fuzzy
8061
  msgctxt "licensing"
8062
  msgid ""
@@ -8067,34 +8077,34 @@ msgstr ""
8067
  "انتهت صلاحية مفتاح الترخيص <span class=\"module-name\">%s %s</span>. سوف "
8068
  "يستمر عمل الوحدة ولكن لن تتلقى أي مزيد من التحديثات حتى يتم تجديد الترخيص."
8069
 
8070
- #: includes/licensing.php:718
8071
  #, fuzzy
8072
  msgctxt "licensing"
8073
  msgid "Please enter a license key."
8074
  msgstr "يرجى إدخال بريد إلكتروني صحيح."
8075
 
8076
- #: includes/licensing.php:727
8077
  msgctxt "licensing"
8078
  msgid "Could not activate license: %s."
8079
  msgstr "لا يمكن تفعيل الترخيص: %s."
8080
 
8081
- #: includes/licensing.php:729
8082
  msgctxt "licensing"
8083
  msgid "License activated"
8084
  msgstr "تم تفعيل ترخيص"
8085
 
8086
- #: includes/licensing.php:749
8087
  msgctxt "licensing"
8088
  msgid "Could not deactivate license: %s."
8089
  msgstr "لا يمكن إلغاء الترخيص: %s."
8090
 
8091
- #: includes/licensing.php:751
8092
  msgctxt "licensing"
8093
  msgid "License deactivated"
8094
  msgstr "تم إلغاء تفعيل الترخيص"
8095
 
8096
  #. translators: "<module-name>" version <version-number> is not...
8097
- #: includes/licensing.php:954
8098
  msgctxt "deprecation"
8099
  msgid ""
8100
  "\"%1$s\" version %2$s is not compatible with Business Directory Plugin 5.0. "
@@ -8408,17 +8418,17 @@ msgctxt "checkout"
8408
  msgid "Next"
8409
  msgstr ""
8410
 
8411
- #: includes/templates-ui.php:385 includes/templates-ui.php:417
8412
  msgctxt "templates sort"
8413
  msgid "Sort By:"
8414
  msgstr "ترتيب حسب:"
8415
 
8416
- #: includes/templates-ui.php:408
8417
  msgctxt "sort"
8418
  msgid "Reset"
8419
  msgstr "إعادة تعيين"
8420
 
8421
- #: includes/templates-ui.php:436
8422
  msgctxt "sort"
8423
  msgid "(Reset)"
8424
  msgstr "(إعادة تعيين)"
@@ -8567,7 +8577,7 @@ msgctxt "contact form"
8567
  msgid "This contact form is temporarily disabled. Please try again later."
8568
  msgstr "نموذج الاتصال هذا معطل مؤقتا. المرجو المحاولة مرة أخرى لاحقا."
8569
 
8570
- #: includes/views/login.php:47
8571
  #, fuzzy
8572
  msgctxt "views:login"
8573
  msgid "Please enter a valid e-mail/access key combination."
@@ -8585,41 +8595,47 @@ msgctxt "views:login"
8585
  msgid "... or use an Access Key"
8586
  msgstr "مفاتيح وصول الإعلان"
8587
 
8588
- #: templates/login.tpl.php:53
8589
  #, fuzzy
8590
  msgctxt "views:login"
8591
  msgid "Please enter your access key and e-mail address."
8592
  msgstr "المرجو إدخال بريد إلكتروني صحيح."
8593
 
8594
- #: templates/login.tpl.php:59 templates/login.tpl.php:61
8595
  #, fuzzy
8596
  msgctxt "views:login"
8597
  msgid "E-Mail Address"
8598
  msgstr "عنوان البريد الإلكتروني:"
8599
 
8600
- #: templates/login.tpl.php:65 templates/login.tpl.php:67
8601
  #, fuzzy
8602
  msgctxt "views:login"
8603
  msgid "Access Key"
8604
  msgstr "مفتاح الوصول"
8605
 
8606
- #: templates/login.tpl.php:69
8607
  #, fuzzy
8608
  msgctxt "views:login"
8609
  msgid "Use Access Key"
8610
  msgstr "مفتاح الوصول"
8611
 
8612
- #: templates/login.tpl.php:70
8613
  msgctxt "views:login"
8614
  msgid "Request access key?"
8615
  msgstr ""
8616
 
8617
- #: includes/views/manage_listings.php:20
8618
  #, fuzzy
8619
  msgctxt "view:manage-listings"
8620
  msgid "Please <a>login</a> to manage your listings."
8621
  msgstr "يرجى <a>تسجيل الدخول</a> ليتتمكن من إرسال رسائل إلى مالك الإعلان."
8622
 
 
 
 
 
 
 
8623
  #: includes/views/manage_recurring.php:36
8624
  msgctxt "manage subscription"
8625
  msgid "The listing with id = <listing-id> doesn't exists."
@@ -8795,21 +8811,21 @@ msgctxt "search"
8795
  msgid "Clear"
8796
  msgstr "مسح"
8797
 
8798
- #: includes/views/show_listing.php:12
8799
  msgctxt "preview"
8800
  msgid "This is just a preview. The listing has not been published yet."
8801
  msgstr ""
8802
  "Il s'agit seulement d'une pré-visualisation. L'annonce n'a pas encore été "
8803
  "publiée."
8804
 
8805
- #: includes/views/submit_listing.php:700
8806
  msgctxt "listing submit"
8807
  msgid ""
8808
  "Something went wrong. Please check the form for errors, correct them and "
8809
  "submit again."
8810
  msgstr ""
8811
 
8812
- #: includes/views/submit_listing.php:784
8813
  msgctxt "listing submit"
8814
  msgid ""
8815
  "Image upload is required, please provide at least one image and submit again."
@@ -8957,8 +8973,9 @@ msgctxt "widgets"
8957
  msgid "Search"
8958
  msgstr "بحث"
8959
 
8960
- #: templates/admin/csv-export.tpl.php:93 templates/admin/csv-export.tpl.php:112
8961
- #: templates/admin/csv-export.tpl.php:123 templates/admin/csv-import.tpl.php:50
 
8962
  #: templates/admin/csv-import.tpl.php:116
8963
  #: templates/admin/csv-import.tpl.php:142
8964
  #: templates/admin/csv-import.tpl.php:153
@@ -9872,6 +9889,41 @@ msgctxt "themes/default"
9872
  msgid "Address"
9873
  msgstr "العنوان"
9874
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9875
  #, fuzzy
9876
  #~ msgctxt "admin listings"
9877
  #~ msgid "Paid"
5
  "Project-Id-Version: Business Directory Plugin v5.7.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
7
  "directory-plugin\n"
8
+ "POT-Creation-Date: 2020-08-27 15:16:00+00:00\n"
9
  "PO-Revision-Date: 2017-01-16 17:47-0500\n"
10
  "Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
11
  "Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
33
  msgstr "الإعلان منتهي التاريخ"
34
 
35
  #: includes/admin/class-admin-listings.php:225
36
+ #: includes/admin/class-listing-owner.php:91
37
  #, fuzzy
38
  msgid "Listing Owner"
39
  msgstr "الإعلان منتهي التاريخ"
53
  msgid "Edit listing permalink"
54
  msgstr "تعديل رسوم الإعلان"
55
 
56
+ #: includes/admin/class-admin.php:184
57
+ #, fuzzy
58
  msgid ""
59
  "Preview is only available after you've saved the first draft. This is due\n"
60
+ " to how WordPress stores the data."
61
  msgstr ""
62
  "المعاينة متاحة فقط بعد أن تحفظ المسودة الأولى. ويرجع ذلك إلى طريقة حفظ "
63
  "البيانات من طرف ووردبريس."
64
 
65
+ #: includes/admin/class-admin.php:350
66
  #, fuzzy
67
  msgid "Uninstall Business Directory Plugin"
68
  msgstr "حذف إضافة دليل الأعمال"
69
 
70
+ #: includes/admin/class-admin.php:351
71
  #, fuzzy
72
  msgid "Uninstall"
73
  msgstr "حذف"
74
 
75
+ #: includes/admin/class-csv-import.php:646
76
  #, fuzzy
77
  msgid "Listing imported by admin. Payment skipped."
78
  msgstr "Poster annonce(paiement initial)"
79
 
80
+ #: includes/admin/class-listing-owner.php:66
81
+ #: includes/admin/class-listing-owner.php:93
82
  #, fuzzy
83
  msgid "Please select a user"
84
  msgstr "المرجو تحديد خيار رسوم التصنيف \"%s\"."
135
  msgid "Missing tables: %s"
136
  msgstr "الجداول المفقودة: %s"
137
 
138
+ #: includes/admin/settings/class-settings-bootstrap.php:1116
139
  msgid ""
140
  "If you are using this gateway, we recommend you disable it if you wish to "
141
  "collect payments in this currency."
222
  msgstr "البحث في الإعلانات"
223
 
224
  #: includes/class-cpt-integration.php:24
225
+ #, fuzzy
226
+ msgid "Directory Listings"
227
+ msgstr "رابط لطيف لإعلانات الدليل"
228
+
229
+ #: includes/class-cpt-integration.php:25
230
  msgid "No listings found"
231
  msgstr "لم يتم العثور على إعلانات"
232
 
233
+ #: includes/class-cpt-integration.php:26
234
  msgid "No listings found in trash"
235
  msgstr "لم يتم العثور على إعلانات في سلة المهملات"
236
 
237
+ #: includes/class-cpt-integration.php:47
238
  msgid "Directory Categories"
239
  msgstr "تصنيفات الدليل"
240
 
241
+ #: includes/class-cpt-integration.php:48
242
  msgid "Directory Category"
243
  msgstr "تصنيف الدليل"
244
 
245
+ #: includes/class-cpt-integration.php:59
246
  msgid "Directory Tags"
247
  msgstr "وسوم الدليل"
248
 
249
+ #: includes/class-cpt-integration.php:60
250
  msgid "Directory Tag"
251
  msgstr "وسم الدليل"
252
 
253
  #. translators: %s: listing count
254
+ #: includes/class-cpt-integration.php:254
255
  #, fuzzy
256
  msgid "%s listing updated."
257
  msgid_plural "%s listings updated."
263
  msgstr[5] "تم تحرير الإعلان"
264
 
265
  #. translators: %s: listing count
266
+ #: includes/class-cpt-integration.php:256
267
  msgid "%s listing not updated, somebody is editing it."
268
  msgid_plural "%s listings not updated, somebody is editing them."
269
  msgstr[0] ""
274
  msgstr[5] ""
275
 
276
  #. translators: %s: listing count
277
+ #: includes/class-cpt-integration.php:258
278
  #, fuzzy
279
  msgid "%s listing permanently deleted."
280
  msgid_plural "%s listings permanently deleted."
286
  msgstr[5] "إنتهاء صلاحية الإعلان"
287
 
288
  #. translators: %s: listing count
289
+ #: includes/class-cpt-integration.php:260
290
  #, fuzzy
291
  msgid "%s listing moved to the Trash."
292
  msgid_plural "%s listings moved to the Trash."
298
  msgstr[5] "لم يتم العثور على إعلانات في سلة المهملات"
299
 
300
  #. translators: %s: listing count
301
+ #: includes/class-cpt-integration.php:262
302
  #, fuzzy
303
  msgid "%s listing restored from the Trash."
304
  msgid_plural "%s listings restored from the Trash."
385
  msgid "Free"
386
  msgstr "مجاني"
387
 
388
+ #: includes/gateways/class-gateway-authorize-net.php:498
389
  msgid ""
390
  "An error occurred while trying to cancel your subscription. Please try again "
391
  "later or contact the site administrator."
392
  msgstr ""
393
 
394
+ #: includes/gateways/class-gateway-authorize-net.php:502
395
  msgid ""
396
  "An error occurred while trying to cancel Authorize.net subscription with ID "
397
  "%s. You can try again later or cancel subscription from gateway dashboard."
410
  msgid "The payment gateway \"<payment-gateway>\" is not available."
411
  msgstr ""
412
 
413
+ #: includes/templates-ui.php:292
414
  msgid "Directory"
415
  msgstr "الدليل"
416
 
417
+ #: includes/templates-ui.php:301
418
  msgid "View All Listings"
419
  msgstr "مشاهدة جميع الإعلانات"
420
 
421
+ #: includes/templates-ui.php:310
422
+ #, fuzzy
423
+ msgid "Manage Listings"
424
+ msgstr "إدارة الإعلانات المدفوعة"
425
+
426
+ #: includes/templates-ui.php:319
427
  msgid "Create A Listing"
428
  msgstr "إنشاء إعلان"
429
 
431
  msgid "l F j, Y \\a\\t g:i a"
432
  msgstr "l F j, Y \\a\\t g:i a"
433
 
434
+ #: templates/admin/csv-export.tpl.php:6
435
+ #, fuzzy
436
+ msgid ""
437
+ "An unknown error occurred during the export. Please make sure you have "
438
+ "enough free disk space and memory available to PHP. Check your error logs "
439
+ "for details."
440
+ msgstr ""
441
+ "حدث خطأ غير معروف أثناء عملية التصدير. الرجاء التأكد من أن لديك ما يكفي من "
442
+ "المساحة الفارغة على القرص والذاكرة المتاحة إلى بي إتش بي. تحقق من سجلات "
443
+ "الخطأ الخاص بك للحصول على التفاصيل."
444
+
445
  #: templates/admin/home.tpl.php:53
446
  #, fuzzy
447
  msgid "Manage Options"
498
  msgid "← Return to Directory"
499
  msgstr "العودة إلى الدليل."
500
 
501
+ #. Author URI of the plugin/theme
502
  #, fuzzy
503
+ msgid "https://businessdirectoryplugin.com"
504
+ msgstr "http://businessdirectoryplugin.com"
505
 
506
  #. Description of the plugin/theme
507
  msgid ""
512
  "ووردبريس."
513
 
514
  #. Author of the plugin/theme
 
 
 
 
515
  #, fuzzy
516
+ msgid "Business Directory Team"
517
+ msgstr "دليل الأعمال"
518
 
519
  #: includes/admin/class-admin-controller.php:79
520
  #, fuzzy
554
  msgid "Could not create listing category \"%s\""
555
  msgstr "لا يمكن إنشاء تصنيف الإعلان \"%s\""
556
 
557
+ #: includes/admin/class-csv-import.php:697
558
  msgctxt "admin csv-import"
559
  msgid "Username \"%s\" does not exist"
560
  msgstr "إسم المستخدم \"%s\" غير موجود"
561
 
562
+ #: includes/admin/class-csv-import.php:725
 
 
 
 
 
563
  msgctxt "admin csv-import"
564
  msgid "There is no Fee Plan with ID = <fee-id>"
565
  msgstr ""
566
 
567
+ #: includes/admin/class-csv-import.php:756
568
  msgctxt "admin csv-import"
569
  msgid "Missing required field: %s"
570
  msgstr "حقل مطلوب مفقود: %s"
571
 
572
+ #: includes/admin/class-csv-import.php:781
573
  msgctxt "admin csv-import"
574
  msgid "Listing category \"%s\" does not exist"
575
  msgstr "تصنيف الإعلان \"%s\" غير موجود"
576
 
577
+ #: includes/admin/class-csv-import.php:846
578
+ msgctxt "admin csv-import"
579
+ msgid "The string <string> couldn't be converted into a valid date."
580
+ msgstr ""
581
+
582
  #: includes/admin/csv-import.php:130
583
  msgctxt "admin csv-import"
584
  msgid "Business %s"
1097
  msgid "Reported"
1098
  msgstr ""
1099
 
1100
+ #: includes/admin/class-admin-listings.php:723
1101
  msgctxt "admin listings"
1102
  msgid "Listing's payment history successfully deleted"
1103
  msgstr ""
1148
  msgid "Categories"
1149
  msgstr "التصنيفات"
1150
 
1151
+ #: includes/admin/class-admin.php:245
1152
  msgctxt "admin"
1153
  msgid "Business Directory"
1154
  msgstr "دليل الأعمال"
1155
 
1156
+ #: includes/admin/class-admin.php:256
1157
  msgctxt "admin"
1158
  msgid "You're all set. Visit your new <a>Business Directory</a> page."
1159
  msgstr "أنت مستعد. قم بزيارة صفحة <a>دليل الأعمال</a> الجديدة."
1160
 
1161
+ #: includes/admin/class-admin.php:380
1162
  msgctxt "admin"
1163
  msgid "Untitled Menu"
1164
  msgstr ""
1165
 
1166
+ #: includes/admin/class-admin.php:650
1167
  msgctxt "admin"
1168
  msgid "Dismiss this notice."
1169
  msgstr "إخفاء هذا التنبيه."
1170
 
1171
+ #: includes/admin/class-admin.php:681 includes/admin/class-admin.php:691
1172
  #, fuzzy
1173
  msgctxt "admin"
1174
  msgid "The listing has been updated."
1180
  msgstr[4] "تمت ترقية الإعلانات."
1181
  msgstr[5] "تمت ترقية الإعلانات."
1182
 
1183
+ #: includes/admin/class-admin.php:712
1184
  msgctxt "admin"
1185
  msgid "The fee was successfully assigned."
1186
  msgstr "تم تعيين الرسوم بنجاح."
1187
 
1188
+ #: includes/admin/class-admin.php:722
1189
  msgctxt "admin"
1190
  msgid "Listing was renewed."
1191
  msgid_plural "Listings were renewed."
1196
  msgstr[4] "تم تجديد الإعلانات."
1197
  msgstr[5] "تم تجديد الإعلانات."
1198
 
1199
+ #: includes/admin/class-admin.php:733
1200
  msgctxt "admin"
1201
  msgid "Renewal email sent."
1202
  msgstr "تم إرسال بريد التجديد."
1203
 
1204
+ #: includes/admin/class-admin.php:737
1205
  msgctxt "admin"
1206
  msgid ""
1207
  "Could not send renewal email, notice template at listing expiration not "
1208
  "found."
1209
  msgstr ""
1210
 
1211
+ #: includes/admin/class-admin.php:744
1212
  #, fuzzy
1213
  msgctxt "admin"
1214
  msgid "Listing report deleted."
1220
  msgstr[4] "إنتهاء صلاحية الإعلان"
1221
  msgstr[5] "إنتهاء صلاحية الإعلان"
1222
 
1223
+ #: includes/admin/class-admin.php:792
1224
  #, fuzzy
1225
  msgctxt "admin"
1226
  msgid "Access keys sent."
1227
  msgstr "مفتاح الوصول"
1228
 
1229
+ #: includes/admin/class-admin.php:794
1230
  msgctxt "admin"
1231
  msgid "The access keys couldn't be sent."
1232
  msgstr ""
1233
 
1234
+ #: includes/admin/class-admin.php:860 includes/admin/class-admin.php:866
1235
  msgctxt "admin"
1236
  msgid "Listing Count"
1237
  msgstr "عدد الإعلانات"
1238
 
1239
+ #: includes/admin/class-admin.php:928
1240
  msgctxt "admin"
1241
  msgid ""
1242
  "<b>Business Directory Plugin</b> requires a page with the "
1245
  "<b>إضافة دليل الأعمال</b> تتطلب صفحة فيها الكود القصير "
1246
  "<tt>[businessdirectory]</tt> لكي تعمل بشكل صحيح."
1247
 
1248
+ #: includes/admin/class-admin.php:930
1249
  msgctxt "admin"
1250
  msgid ""
1251
  "You can create this page by yourself or let Business Directory do this for "
1254
  "يمكنك إنشاء هذه الصفحة بنفسك أو ترك دليل الأعمال القيام بذلك نيابة عنك "
1255
  "تلقائياً."
1256
 
1257
+ #: includes/admin/class-admin.php:934
1258
  msgctxt "admin"
1259
  msgid "Create required pages for me"
1260
  msgstr "إنشاء الصفحات المطلوب نيابة عني"
1261
 
1262
+ #: includes/admin/class-admin.php:967
1263
  msgctxt "admin"
1264
  msgid ""
1265
  "<strong>Business Directory Plugin</strong> requires <strong>PHP 5.6</strong> "
1267
  "your provider to upgrade in order to prevent any issues with the plugin."
1268
  msgstr ""
1269
 
1270
+ #: includes/admin/class-admin.php:990
1271
  msgctxt "admin"
1272
  msgid ""
1273
  "We noticed you want your Business Directory users to register before posting "
1323
  "يمكنك إنشاء هذه الحقول المخصصة بنفسك داخل \"إدارة الحقول\" أو السماح لدليل "
1324
  "الأعمال للقيام بذلك نيابة عنك تلقائياً."
1325
 
1326
+ #: includes/admin/form-fields.php:214 includes/views/submit_listing.php:545
1327
  msgctxt "admin"
1328
  msgid "Go to \"Manage Form Fields\""
1329
  msgstr "إنتقل إلى \"إدارة حقول\""
1343
  msgid "Abandoned"
1344
  msgstr "متخلى عنه"
1345
 
1346
+ #: includes/views/submit_listing.php:528
1347
  #, fuzzy
1348
  msgctxt "admin"
1349
  msgid "Go to \"Manage Fees\""
1468
  msgid "Send access keys"
1469
  msgstr "مفتاح الوصول"
1470
 
1471
+ #: includes/admin/class-admin.php:177
1472
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:75
1473
  #, fuzzy
1474
  msgctxt "listing metabox"
1475
  msgid "Never"
1476
  msgstr "أبداً"
1477
 
1478
+ #: includes/admin/class-admin.php:178
1479
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1480
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1481
  #, fuzzy
1483
  msgid "Yes"
1484
  msgstr "نعم"
1485
 
1486
+ #: includes/admin/class-admin.php:179
1487
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1488
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1489
  #, fuzzy
1615
  msgid "Is Recurring?"
1616
  msgstr "(متكرر)"
1617
 
1618
+ #: includes/admin/class-admin.php:216
1619
  msgctxt "drip pointer"
1620
  msgid ""
1621
  "Find out how to create a compelling, thriving business directory from "
1626
  "(مجانا) مكونة من 5 أجزاء (ترسل عبر البريد الإلكتروني). أحصل على وحدة ممتازة "
1627
  "(premium module) مجانا بمجرد تسجيلك."
1628
 
1629
+ #: includes/admin/class-admin.php:218
1630
  msgctxt "drip pointer"
1631
  msgid "Email Address:"
1632
  msgstr "عنوان البريد الإلكتروني:"
1633
 
1634
+ #: includes/admin/class-admin.php:224
1635
  msgctxt "drip pointer"
1636
  msgid "Want to know the Secrets of Building an Awesome Business Directory?"
1637
  msgstr "هل تريد معرفة \"أسرار بناء\" \"دليل أعمال مدهش\"؟"
1638
 
1639
+ #: includes/admin/class-admin.php:226
1640
  msgctxt "drip pointer"
1641
  msgid "Yes, please!"
1642
  msgstr "نعم، من فضلك!"
1643
 
1644
+ #: includes/admin/class-admin.php:228
1645
  msgctxt "drip pointer"
1646
  msgid "No, thanks"
1647
  msgstr "لا، شكرًا"
1648
 
1649
+ #: includes/admin/class-admin.php:276
1650
  msgctxt "drip pointer"
1651
  msgid "Invalid e-mail address."
1652
  msgstr "عنوان البريد الإلكتروني غير صالح!"
1653
 
1654
+ #: includes/admin/class-admin.php:317
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1655
  msgctxt "admin menu"
1656
  msgid "Manage Fees"
1657
  msgstr "إدارة الرسوم"
1658
 
1659
+ #: includes/admin/class-admin.php:320
 
 
 
 
 
1660
  msgctxt "admin menu"
1661
  msgid "Manage Form Fields"
1662
  msgstr "إدارة حقول الاستمارة"
1663
 
1664
+ #: includes/admin/class-admin.php:324
1665
  #, fuzzy
1666
  msgctxt "admin menu"
1667
  msgid "Payment History"
1668
  msgstr "سجل المدفوعات"
1669
 
1670
+ #: includes/admin/class-admin.php:327
1671
  #, fuzzy
1672
  msgctxt "admin menu"
1673
+ msgid "Import & Export"
1674
  msgstr "استيراد CSV"
1675
 
1676
+ #: includes/admin/class-admin.php:330
1677
  msgctxt "admin menu"
1678
  msgid "Debug"
1679
  msgstr "تصحيح الأخطاء"
1680
 
1681
  #: includes/admin/settings/class-settings-admin.php:46
1682
+ #, fuzzy
1683
  msgctxt "admin menu"
1684
+ msgid "Settings"
1685
+ msgstr "إعدادات"
1686
 
1687
+ #: includes/admin/class-admin.php:858
1688
  msgctxt "admin category id"
1689
  msgid "ID"
1690
  msgstr "المعرف"
1691
 
1692
+ #: includes/admin/class-csv-exporter.php:104
1693
  msgctxt "admin csv-export"
1694
  msgid "Could not create a temporary directory for handling this CSV export."
1695
  msgstr "لا يمكن إنشاء مجلد مؤقت للتعامل مع تصدير CSV."
1696
 
1697
+ #: includes/admin/class-csv-exporter.php:107
1698
  msgctxt "admin csv-export"
1699
  msgid "Could not create wpbdp-csv-exports directory."
1700
  msgstr "تعذر إنشاء مجلد wpbdp-csv-exports."
1701
 
1702
+ #: includes/admin/class-csv-exporter.php:112
1703
  msgctxt "admin csv-export"
1704
  msgid "Error while creating a temporary directory for CSV export: %s"
1705
  msgstr "حدث خطأ أثناء إنشاء مجلد مؤقت لتصدير CSV: %s"
1709
  msgid "Could not decode export state information."
1710
  msgstr ""
1711
 
 
 
 
 
 
 
 
 
 
 
 
1712
  #: templates/admin/csv-export.tpl.php:14
1713
  msgctxt "admin csv-export"
1714
  msgid ""
1721
  "حاول تعطيل إضافات أخرى أولاً و/أو زيادة قيم التوجيهات 'memory_limit' و "
1722
  "'max_execution_time' في الخادم الخاص بك بتعديل ملف الإعدادات php.ini."
1723
 
1724
+ #: templates/admin/csv-export.tpl.php:29
1725
  msgctxt "admin csv-export"
1726
  msgid "Export Configuration"
1727
  msgstr "ضبط التصدير"
1728
 
1729
+ #: templates/admin/csv-export.tpl.php:32
1730
  msgctxt "admin csv-export"
1731
  msgid "Export settings"
1732
  msgstr "إعدادات التصدير"
1733
 
1734
+ #: templates/admin/csv-export.tpl.php:36
1735
  msgctxt "admin csv-export"
1736
  msgid "Which listings to export?"
1737
  msgstr "أي لائحة تريد التصدير؟"
1738
 
1739
+ #: templates/admin/csv-export.tpl.php:40
1740
  msgctxt "admin csv-export"
1741
  msgid "All"
1742
  msgstr "الكل"
1743
 
1744
+ #: templates/admin/csv-export.tpl.php:41
1745
  msgctxt "admin csv-export"
1746
  msgid "Active Only"
1747
  msgstr "المفعل فقط"
1748
 
1749
+ #: templates/admin/csv-export.tpl.php:42
1750
  msgctxt "admin csv-export"
1751
  msgid "Active + Pending Renewal"
1752
  msgstr "مفعل + ريثما يتم التجديد"
1753
 
1754
+ #: templates/admin/csv-export.tpl.php:48
1755
  msgctxt "admin csv-export"
1756
  msgid "Export images?"
1757
  msgstr "تصدير الصور؟"
1758
 
1759
+ #: templates/admin/csv-export.tpl.php:53
1760
  msgctxt "admin csv-export"
1761
  msgid "Export images"
1762
  msgstr "تصدير الصور"
1763
 
1764
+ #: templates/admin/csv-export.tpl.php:55
1765
  msgctxt "admin csv-export"
1766
  msgid ""
1767
  "When checked, instead of just a CSV file a ZIP file will be generated with "
1770
  "عند اختيار الخانة، بدلاً من مجرد ملف CSV سيتم إنشاء ملف مضغوط مع ملف CSV "
1771
  "ولائحة الصور."
1772
 
1773
+ #: templates/admin/csv-export.tpl.php:61
1774
  msgctxt "admin csv-export"
1775
  msgid "Additional metadata to export:"
1776
  msgstr "بيانات تعريف إضافية للتصدير:"
1777
 
1778
+ #: templates/admin/csv-export.tpl.php:66
1779
  msgctxt "admin csv-export"
1780
  msgid "Include unique IDs for each listing (sequence_id column)."
1781
  msgstr "تتضمن معرفات (IDs) فريدة لكل إعلان (عمود sequence_id)."
1782
 
1783
+ #: templates/admin/csv-export.tpl.php:68
1784
  msgctxt "admin csv-export"
1785
  msgid ""
1786
  "If you plan to re-import the listings into BD and don't want new ones "
1789
  "إذا كنت تخطط لإعادة استيراد الإعلانات إلى \"دليل الأعمال\" ولا تريد إنشاء "
1790
  "أخرى جديدة، قم بتحديد هذا الخيار!"
1791
 
1792
+ #: templates/admin/csv-export.tpl.php:74
1793
  msgctxt "admin csv-export"
1794
  msgid "Author information (username)"
1795
  msgstr "معلومات الكاتب (إسم المستخدم)"
1796
 
1797
+ #: templates/admin/csv-export.tpl.php:79
1798
  msgctxt "admin csv-export"
1799
  msgid "Listing expiration date"
1800
  msgstr "إنتهاء صلاحية الإعلان"
1801
 
1802
+ #: templates/admin/csv-export.tpl.php:83
1803
  #, fuzzy
1804
  msgctxt "admin csv-export"
1805
  msgid "Listing created date"
1806
  msgstr "صور الإعلانات"
1807
 
1808
+ #: templates/admin/csv-export.tpl.php:87
1809
  #, fuzzy
1810
  msgctxt "admin csv-export"
1811
  msgid "Listing last updated date"
1812
  msgstr "إنتهاء صلاحية الإعلان"
1813
 
1814
+ #: templates/admin/csv-export.tpl.php:91
1815
+ #, fuzzy
1816
+ msgctxt "admin csv-export"
1817
+ msgid "Listing T&C acceptance date"
1818
+ msgstr "صور الإعلانات"
1819
+
1820
+ #: templates/admin/csv-export.tpl.php:96
1821
  msgctxt "admin csv-export"
1822
  msgid "CSV File Settings"
1823
  msgstr "إعدادات ملف CSV"
1824
 
1825
+ #: templates/admin/csv-export.tpl.php:100
1826
  msgctxt "admin csv-export"
1827
  msgid "What operating system will you use to edit the CSV file?"
1828
  msgstr ""
1829
 
1830
+ #: templates/admin/csv-export.tpl.php:107
1831
  msgctxt "admin csv-export"
1832
  msgid "Windows"
1833
  msgstr ""
1834
 
1835
+ #: templates/admin/csv-export.tpl.php:112
1836
  msgctxt "admin csv-export"
1837
  msgid "macOS"
1838
  msgstr ""
1839
 
1840
+ #: templates/admin/csv-export.tpl.php:114
1841
  msgctxt "admin csv-export"
1842
  msgid ""
1843
  "Windows and macOS versions of MS Excel handle CSV files differently. To make "
1846
  "each operating system."
1847
  msgstr ""
1848
 
1849
+ #: templates/admin/csv-export.tpl.php:119
1850
  msgctxt "admin csv-export"
1851
  msgid "Image Separator"
1852
  msgstr "فاصلة الصورة "
1853
 
1854
+ #: templates/admin/csv-export.tpl.php:130
1855
  msgctxt "admin csv-export"
1856
  msgid "Category Separator"
1857
  msgstr "فاصلة التصنيف"
1858
 
1859
+ #: templates/admin/csv-export.tpl.php:142
1860
  msgctxt "admin csv-export"
1861
  msgid "Export Listings"
1862
  msgstr "الإعلانات المصدرة"
1863
 
1864
+ #: templates/admin/csv-export.tpl.php:148
1865
  msgctxt "admin csv-export"
1866
  msgid "Export in Progress..."
1867
  msgstr "جاري التصدير..."
1868
 
1869
+ #: templates/admin/csv-export.tpl.php:149
1870
  msgctxt "admin csv-export"
1871
  msgid ""
1872
  "Your export file is being prepared. Please <u>do not leave</u> this page "
1874
  msgstr ""
1875
  "جاري إعداد ملف التصدير. المرجو <u>عدم ترك</u> هذه الصفحة حتى انتهاء التصدير."
1876
 
1877
+ #: templates/admin/csv-export.tpl.php:152
1878
  msgctxt "admin csv-export"
1879
  msgid "No. of listings:"
1880
  msgstr "أرقام الإعلانات:"
1881
 
1882
+ #: templates/admin/csv-export.tpl.php:154
1883
  msgctxt "admin csv-export"
1884
  msgid "Approximate export file size:"
1885
  msgstr "الحجم التقريبي لملف التصدير:"
1886
 
1887
+ #: templates/admin/csv-export.tpl.php:161
1888
  msgctxt "admin csv-export"
1889
  msgid "Cancel Export"
1890
  msgstr "إلغاء التصدير"
1891
 
1892
+ #: templates/admin/csv-export.tpl.php:166
1893
  msgctxt "admin csv-export"
1894
  msgid "Export Complete"
1895
  msgstr "تم التصدير"
1896
 
1897
+ #: templates/admin/csv-export.tpl.php:167
1898
  msgctxt "admin csv-export"
1899
  msgid ""
1900
  "Your export file has been successfully created and it is now ready for "
1901
  "download."
1902
  msgstr "تم بنجاح إنشاء ملف التصدير، والآن جاهز للتحميل."
1903
 
1904
+ #: templates/admin/csv-export.tpl.php:171
1905
+ #, fuzzy
1906
  msgctxt "admin csv-export"
1907
+ msgid "Download %1$s (%2$s)"
1908
  msgstr "تحميل %s (%s)"
1909
 
1910
+ #: templates/admin/csv-export.tpl.php:178
1911
  msgctxt "admin csv-export"
1912
  msgid ""
1913
  "Click \"Cleanup\" once the file has been downloaded in order to remove all "
1916
  "إضغط على \"تنظيف\" بعد تحميل الملف بغية إزالة جميع البيانات المؤقتة التي تم "
1917
  "إنشاؤها بواسطة \"دليل الأعمال\" أثناء عملية التصدير."
1918
 
1919
+ #: templates/admin/csv-export.tpl.php:179
1920
  msgctxt "admin csv-export"
1921
  msgid "Cleanup"
1922
  msgstr "نظف"
1923
 
1924
+ #: templates/admin/csv-export.tpl.php:184
1925
  msgctxt "admin csv-export"
1926
  msgid "Export Canceled"
1927
  msgstr "ألغي التصدير"
1928
 
1929
+ #: templates/admin/csv-export.tpl.php:185
1930
  msgctxt "admin csv-export"
1931
  msgid "The export has been canceled."
1932
  msgstr "تم إلغاء التصدير"
1933
 
1934
+ #: templates/admin/csv-export.tpl.php:186
1935
  msgctxt "admin csv-export"
1936
  msgid "← Return to CSV Export"
1937
  msgstr "← العودة إلى تصدير CSV"
3378
  msgid "Disabled"
3379
  msgstr "معطل"
3380
 
3381
+ #: includes/admin/helpers/class-listing-timeline.php:114
3382
  #, fuzzy
3383
  msgctxt "listing timeline"
3384
  msgid "Listing created"
3385
  msgstr "صور الإعلانات"
3386
 
3387
+ #: includes/admin/helpers/class-listing-timeline.php:119
3388
  #, fuzzy
3389
  msgctxt "listing timeline"
3390
  msgid "Listing expired"
3391
  msgstr "الإعلان منتهي التاريخ"
3392
 
3393
+ #: includes/admin/helpers/class-listing-timeline.php:124
3394
  #, fuzzy
3395
  msgctxt "listing timeline"
3396
  msgid "Listing renewed"
3397
  msgstr "تم تجديد الإعلان."
3398
 
3399
+ #: includes/admin/helpers/class-listing-timeline.php:129
3400
+ msgctxt "listing timeline"
3401
+ msgid "T&C acceptance date"
3402
+ msgstr ""
3403
+
3404
+ #: includes/admin/helpers/class-listing-timeline.php:144
3405
  msgctxt "listing timeline"
3406
  msgid "Paid as admin"
3407
  msgstr ""
3408
 
3409
+ #: includes/admin/helpers/class-listing-timeline.php:146
3410
  #, fuzzy
3411
  msgctxt "listing timeline"
3412
  msgid "Listing imported"
3413
  msgstr "الإعلان منتهي التاريخ"
3414
 
3415
+ #: includes/admin/helpers/class-listing-timeline.php:148
3416
  #, fuzzy
3417
  msgctxt "listing timeline"
3418
  msgid "Initial Payment"
3664
  msgid "Valid placeholders: %s"
3665
  msgstr "العناصر النائبة صالحة: %s"
3666
 
3667
+ #: includes/admin/settings/class-settings-bootstrap.php:95
3668
  msgctxt "admin settings"
3669
  msgid ""
3670
  "<strong>IMPORTANT:</strong> subpages of the main directory page cannot be "
3800
  msgstr "الكاتب"
3801
 
3802
  #: includes/admin/settings/class-settings-bootstrap.php:724
3803
+ #: includes/functions.php:1195
3804
  msgctxt "admin settings"
3805
  msgid "Date posted"
3806
  msgstr "تاريخ النشر"
3807
 
3808
  #: includes/admin/settings/class-settings-bootstrap.php:725
3809
+ #: includes/functions.php:1196
3810
  msgctxt "admin settings"
3811
  msgid "Date last modified"
3812
  msgstr "تاريخ آخر تعديل"
3836
  msgid "Fee Plan Custom Order, then Title"
3837
  msgstr ""
3838
 
3839
+ #: includes/admin/settings/class-settings-bootstrap.php:824
3840
  msgctxt "admin settings"
3841
  msgid "You can manage your themes on <a>Directory Themes</a>."
3842
  msgstr "يمكنك إدارة قوالبك في <a>قوالب الدليل</a>."
3843
 
3844
+ #: includes/admin/settings/class-settings-bootstrap.php:833
3845
  msgctxt "admin settings"
3846
  msgid "Use the BD theme style for BD buttons"
3847
  msgstr "إستخدم نمط قالب دليل الأعمال لأزرار دليل الأعمال"
3848
 
3849
+ #: includes/admin/settings/class-settings-bootstrap.php:834
3850
  msgctxt "admin settings"
3851
  msgid "Use the WP theme style for BD buttons"
3852
  msgstr "إستخدم نمط قالب ووردبريس لأزرار دليل الأعمال"
3853
 
3854
+ #: includes/admin/settings/class-settings-bootstrap.php:992
3855
  msgctxt "admin settings"
3856
  msgid ""
3857
  "For paid listing images, configure that by adding or editing a <a>Fee Plan</"
3860
  "بالنسبة لصور الإعلانات المدفوعة، قم بإعدادها بإضافة أو تحرير <a>رسوم الخطة</"
3861
  "a> بدلاً من هذا الإعداد، الذي هو تجاهل الإعلانات المدفوعة."
3862
 
3863
+ #: includes/admin/settings/class-settings-bootstrap.php:1003
3864
+ #: includes/admin/settings/class-settings-bootstrap.php:1056
3865
  #, fuzzy
3866
  msgctxt "admin settings"
3867
  msgid "Excerpt view."
3868
  msgstr "مقتطف"
3869
 
3870
+ #: includes/admin/settings/class-settings-bootstrap.php:1004
3871
+ #: includes/admin/settings/class-settings-bootstrap.php:1057
3872
  #, fuzzy
3873
  msgctxt "admin settings"
3874
  msgid "Detail view."
3875
  msgstr "الدليل"
3876
 
3877
+ #: includes/admin/settings/class-settings-bootstrap.php:1114
3878
  msgctxt "admin settings"
3879
+ msgid "AED currency is not supported by %1$s. %2$s"
3880
  msgstr ""
3881
 
3882
+ #: includes/admin/settings/class-settings-bootstrap.php:1132
3883
  msgctxt "admin settings"
3884
  msgid "Australian Dollar (AUD)"
3885
  msgstr "الدولار الأسترالي (AUD)"
3886
 
3887
+ #: includes/admin/settings/class-settings-bootstrap.php:1133
3888
  msgctxt "admin settings"
3889
  msgid "Brazilian Real (BRL)"
3890
  msgstr "الريال البرازيلي (BRL)"
3891
 
3892
+ #: includes/admin/settings/class-settings-bootstrap.php:1134
3893
  msgctxt "admin settings"
3894
  msgid "Canadian Dollar (CAD)"
3895
  msgstr "الدولار الكندي (CAD)"
3896
 
3897
+ #: includes/admin/settings/class-settings-bootstrap.php:1135
3898
  msgctxt "admin settings"
3899
  msgid "Czech Koruna (CZK)"
3900
  msgstr "الكورونا التشيكية (CZK)"
3901
 
3902
+ #: includes/admin/settings/class-settings-bootstrap.php:1136
3903
  msgctxt "admin settings"
3904
  msgid "Danish Krone (DKK)"
3905
  msgstr "الكرونة الدانماركية (DKK)"
3906
 
3907
+ #: includes/admin/settings/class-settings-bootstrap.php:1137
3908
  msgctxt "admin settings"
3909
  msgid "United Arab Emirates Dirham (AED)"
3910
  msgstr ""
3911
 
3912
+ #: includes/admin/settings/class-settings-bootstrap.php:1138
3913
  msgctxt "admin settings"
3914
  msgid "Euro (EUR)"
3915
  msgstr "اليورو (EUR)"
3916
 
3917
+ #: includes/admin/settings/class-settings-bootstrap.php:1139
3918
  msgctxt "admin settings"
3919
  msgid "Hong Kong Dollar (HKD)"
3920
  msgstr "دولار هونج كونج (HKD)"
3921
 
3922
+ #: includes/admin/settings/class-settings-bootstrap.php:1140
3923
  msgctxt "admin settings"
3924
  msgid "Hungarian Forint (HUF)"
3925
  msgstr "الفورنت الهنغاري (HUF)"
3926
 
3927
+ #: includes/admin/settings/class-settings-bootstrap.php:1141
3928
  msgctxt "admin settings"
3929
  msgid "Israeli New Shequel (ILS)"
3930
  msgstr "الشكيل الإسرائيلي الجديد (ILS)"
3931
 
3932
+ #: includes/admin/settings/class-settings-bootstrap.php:1142
3933
  msgctxt "admin settings"
3934
  msgid "Japanese Yen (JPY)"
3935
  msgstr "الين الياباني (JPY)"
3936
 
3937
+ #: includes/admin/settings/class-settings-bootstrap.php:1143
3938
  msgctxt "admin settings"
3939
  msgid "Moroccan Dirham (MAD)"
3940
  msgstr ""
3941
 
3942
+ #: includes/admin/settings/class-settings-bootstrap.php:1144
3943
  msgctxt "admin settings"
3944
  msgid "Malasian Ringgit (MYR)"
3945
  msgstr "الرينغيت الماليزي (MYR)"
3946
 
3947
+ #: includes/admin/settings/class-settings-bootstrap.php:1145
3948
  msgctxt "admin settings"
3949
  msgid "Mexican Peso (MXN)"
3950
  msgstr "بيزو مكسيكي (MXN)"
3951
 
3952
+ #: includes/admin/settings/class-settings-bootstrap.php:1146
3953
  msgctxt "admin settings"
3954
  msgid "Norwegian Krone (NOK)"
3955
  msgstr "الكرون النرويجي (NOK)"
3956
 
3957
+ #: includes/admin/settings/class-settings-bootstrap.php:1147
3958
  msgctxt "admin settings"
3959
  msgid "New Zealand Dollar (NZD)"
3960
  msgstr "الدولار النيوزيلندي (NZD)"
3961
 
3962
+ #: includes/admin/settings/class-settings-bootstrap.php:1148
3963
  msgctxt "admin settings"
3964
  msgid "Philippine Peso (PHP)"
3965
  msgstr "بيزو فلبيني (PHP)"
3966
 
3967
+ #: includes/admin/settings/class-settings-bootstrap.php:1149
3968
  msgctxt "admin settings"
3969
  msgid "Polish Zloty (PLN)"
3970
  msgstr "الزلوتي البولندي (PLN)"
3971
 
3972
+ #: includes/admin/settings/class-settings-bootstrap.php:1150
3973
  msgctxt "admin settings"
3974
  msgid "Pound Sterling (GBP)"
3975
  msgstr "الجنيه الإسترليني (GBP)"
3976
 
3977
+ #: includes/admin/settings/class-settings-bootstrap.php:1151
3978
  msgctxt "admin settings"
3979
  msgid "Singapore Dollar (SGD)"
3980
  msgstr "دولار سنغافوري (SGD)"
3981
 
3982
+ #: includes/admin/settings/class-settings-bootstrap.php:1152
3983
  msgctxt "admin settings"
3984
  msgid "Swedish Krona (SEK)"
3985
  msgstr "الكرونا السويدية (SEK)"
3986
 
3987
+ #: includes/admin/settings/class-settings-bootstrap.php:1153
3988
  msgctxt "admin settings"
3989
  msgid "Swiss Franc (CHF)"
3990
  msgstr "الفرنك السويسري (CHF)"
3991
 
3992
+ #: includes/admin/settings/class-settings-bootstrap.php:1154
3993
  msgctxt "admin settings"
3994
  msgid "Taiwan Dollar (TWD)"
3995
  msgstr "الدولار التايواني (TWD)"
3996
 
3997
+ #: includes/admin/settings/class-settings-bootstrap.php:1155
3998
  msgctxt "admin settings"
3999
  msgid "Thai Baht (THB)"
4000
  msgstr "البات التايلندي (THB)"
4001
 
4002
+ #: includes/admin/settings/class-settings-bootstrap.php:1156
4003
  msgctxt "admin settings"
4004
  msgid "Turkish Lira (TRY)"
4005
  msgstr "الليرة التركية (TRY)"
4006
 
4007
+ #: includes/admin/settings/class-settings-bootstrap.php:1157
4008
  msgctxt "admin settings"
4009
  msgid "U.S. Dollar (USD)"
4010
  msgstr "الدولار الأمريكي (USD)"
4011
 
4012
+ #: includes/admin/settings/class-settings-bootstrap.php:1181
4013
  msgctxt "admin settings"
4014
  msgid "Show currency symbol on the left"
4015
  msgstr "إظهار رمز العملة على اليسار"
4016
 
4017
+ #: includes/admin/settings/class-settings-bootstrap.php:1182
4018
  msgctxt "admin settings"
4019
  msgid "Show currency symbol on the right"
4020
  msgstr "إظهار رمز العملة على اليمين"
4021
 
4022
+ #: includes/admin/settings/class-settings-bootstrap.php:1183
4023
  msgctxt "admin settings"
4024
  msgid "Do not show currency symbol"
4025
  msgstr "عدم إظهار رمز العملة"
4026
 
4027
+ #: includes/admin/settings/class-settings-bootstrap.php:1204
4028
  msgctxt "admin settings"
4029
  msgid ""
4030
  "Thank you for your payment. Your payment is being verified and your listing "
4033
  "شكرا لك على الدفع. يتم الآن التحقق من الدفع وفحص إعلانك. يمكن أن تأخذ عملية "
4034
  "التحقق والمراجعة مدة 48 ساعة."
4035
 
4036
+ #: includes/admin/settings/class-settings-bootstrap.php:1225
4037
  msgctxt "admin settings"
4038
  msgid ""
4039
  "Listings with pending payments are marked as abandoned after this time. You "
4042
  "الإعلانات مع الدفعات المعلقة تعد متخلى عنها بعد هذا الوقت. يمكنك أيضا "
4043
  "<a>تخصيص البريد الإلكتروني</a> الذي يتلقاه الأعضاء."
4044
 
4045
+ #: includes/admin/settings/class-settings-bootstrap.php:1255
4046
  msgctxt "admin settings"
4047
  msgid "Try listing's email field first, then author's email."
4048
  msgstr "جرب البريد الإلكتروني للإعلانات أولاً، ثم البريد الإلكتروني للكاتب."
4049
 
4050
+ #: includes/admin/settings/class-settings-bootstrap.php:1256
4051
  msgctxt "admin settings"
4052
  msgid "Try author's email first and then listing's email field."
4053
  msgstr "جرب البريد الإلكتروني للكاتب أولاً، ثم البريد الإلكتروني للإعلانات."
4054
 
4055
+ #: includes/admin/settings/class-settings-bootstrap.php:1269
4056
  msgctxt "admin settings"
4057
  msgid "Plain (text/plain)"
4058
  msgstr ""
4059
 
4060
+ #: includes/admin/settings/class-settings-bootstrap.php:1270
4061
  msgctxt "admin settings"
4062
  msgid "HTML (text/html)"
4063
  msgstr ""
4064
 
4065
+ #: includes/admin/settings/class-settings-bootstrap.php:1271
4066
  msgctxt "admin settings"
4067
  msgid "Both (multipart/alternative)"
4068
  msgstr ""
4069
 
4070
+ #: includes/admin/settings/class-settings-bootstrap.php:1285
4071
  msgctxt "admin settings"
4072
  msgid "A new listing is submitted."
4073
  msgstr "يتم إضافة إعلان جديد"
4074
 
4075
+ #: includes/admin/settings/class-settings-bootstrap.php:1286
4076
  msgctxt "admin settings"
4077
  msgid "A listing is edited."
4078
  msgstr "تم تحرير الإعلان"
4079
 
4080
+ #: includes/admin/settings/class-settings-bootstrap.php:1287
4081
  msgctxt "admin settings"
4082
  msgid "A listing expires."
4083
  msgstr "الإعلان منتهي التاريخ"
4084
 
4085
+ #: includes/admin/settings/class-settings-bootstrap.php:1288
4086
  #, fuzzy
4087
  msgctxt "admin settings"
4088
  msgid "A listing is renewed."
4089
  msgstr "تم تحرير الإعلان"
4090
 
4091
+ #: includes/admin/settings/class-settings-bootstrap.php:1289
4092
  #, fuzzy
4093
  msgctxt "admin settings"
4094
  msgid "A listing payment is completed."
4095
  msgstr "تم تحرير الإعلان"
4096
 
4097
+ #: includes/admin/settings/class-settings-bootstrap.php:1290
4098
  #, fuzzy
4099
  msgctxt "admin settings"
4100
  msgid "A listing has been reported as inappropriate."
4101
  msgstr "تمت ترقية الإعلان."
4102
 
4103
+ #: includes/admin/settings/class-settings-bootstrap.php:1291
4104
  msgctxt "admin settings"
4105
  msgid "A contact message is sent to a listing's owner."
4106
  msgstr "يتم إرسال رسالة اتصال لمالك الإعلان."
4107
 
4108
+ #: includes/admin/settings/class-settings-bootstrap.php:1317
4109
  msgctxt "admin settings"
4110
  msgid "Their listing is submitted."
4111
  msgstr "يتم إضافة الإعلان الخاص بهم"
4112
 
4113
+ #: includes/admin/settings/class-settings-bootstrap.php:1318
4114
  msgctxt "admin settings"
4115
  msgid "Their listing is approved/published."
4116
  msgstr "تمت الموافقة ونشر الإعلان الخاص بهم"
4117
 
4118
+ #: includes/admin/settings/class-settings-bootstrap.php:1319
4119
  #, fuzzy
4120
  msgctxt "admin settings"
4121
  msgid "A payment for their listing is completed."
4122
  msgstr "يتم إضافة الإعلان الخاص بهم"
4123
 
4124
+ #: includes/admin/settings/class-settings-bootstrap.php:1320
4125
  #, fuzzy
4126
  msgctxt "admin settings"
4127
  msgid "Their listing expired or is about to expire."
4128
  msgstr "يتم إضافة الإعلان الخاص بهم"
4129
 
4130
+ #: includes/admin/settings/class-settings-bootstrap.php:1337
4131
+ #: includes/admin/settings/class-settings-bootstrap.php:1356
4132
+ #: includes/admin/settings/class-settings-bootstrap.php:1381
4133
+ #: includes/admin/settings/class-settings-bootstrap.php:1416
4134
+ #: includes/admin/settings/class-settings-bootstrap.php:1452
4135
  msgctxt "admin settings"
4136
  msgid "Listing's title"
4137
  msgstr "عنوان الإعلان"
4138
 
4139
+ #: includes/admin/settings/class-settings-bootstrap.php:1338
4140
+ #: includes/admin/settings/class-settings-bootstrap.php:1417
4141
  #, fuzzy
4142
  msgctxt "admin settings"
4143
  msgid "Listing's fee plan name"
4144
  msgstr "إنتهاء صلاحية الإعلان"
4145
 
4146
+ #: includes/admin/settings/class-settings-bootstrap.php:1339
4147
+ #: includes/admin/settings/class-settings-bootstrap.php:1418
4148
  #, fuzzy
4149
  msgctxt "admin settings"
4150
  msgid "Listing's fee plan description"
4151
  msgstr "تحديد رسوم الإعلان"
4152
 
4153
+ #: includes/admin/settings/class-settings-bootstrap.php:1340
4154
+ #: includes/admin/settings/class-settings-bootstrap.php:1419
4155
  #, fuzzy
4156
  msgctxt "admin settings"
4157
  msgid "Listing's fee plan details"
4158
  msgstr "إنتهاء صلاحية الإعلان"
4159
 
4160
+ #: includes/admin/settings/class-settings-bootstrap.php:1353
4161
  msgctxt "admin settings"
4162
  msgid ""
4163
  "Your listing \"[listing]\" is now available at [listing-url] and can be "
4166
  "القائمة الخاصة بك \"[listing]\" متوفر الآن في [listing-url] ويمكن مشاهدتها "
4167
  "من قبل العموم."
4168
 
4169
+ #: includes/admin/settings/class-settings-bootstrap.php:1357
4170
+ #: includes/admin/settings/class-settings-bootstrap.php:1380
4171
  msgctxt "admin settings"
4172
  msgid "Listing's URL"
4173
  msgstr "عنوان URL الإعلان"
4174
 
4175
+ #: includes/admin/settings/class-settings-bootstrap.php:1358
4176
+ #: includes/admin/settings/class-settings-bootstrap.php:1386
4177
  #, fuzzy
4178
  msgctxt "admin settings"
4179
  msgid "Listing's Access Key"
4180
  msgstr "مفاتيح وصول الإعلان"
4181
 
4182
+ #: includes/admin/settings/class-settings-bootstrap.php:1382
4183
  #, fuzzy
4184
  msgctxt "admin settings"
4185
  msgid "Sender's name"
4186
  msgstr "إسم الكاتب"
4187
 
4188
+ #: includes/admin/settings/class-settings-bootstrap.php:1383
4189
  #, fuzzy
4190
  msgctxt "admin settings"
4191
  msgid "Sender's e-mail address"
4192
  msgstr "إدخال بريدك إلكتروني"
4193
 
4194
+ #: includes/admin/settings/class-settings-bootstrap.php:1384
4195
  #, fuzzy
4196
  msgctxt "admin settings"
4197
  msgid "Contact message"
4198
  msgstr "رسالة اتصال الإعلان"
4199
 
4200
+ #: includes/admin/settings/class-settings-bootstrap.php:1385
4201
  msgctxt "admin settings"
4202
  msgid "Date and time the message was sent"
4203
  msgstr ""
4204
 
4205
+ #: includes/admin/settings/class-settings-bootstrap.php:1420
4206
  #, fuzzy
4207
  msgctxt "admin settings"
4208
  msgid "Payment items details."
4209
  msgstr "تفاصيل الدفع"
4210
 
4211
+ #: includes/admin/settings/class-settings-bootstrap.php:1421
4212
  msgctxt "admin settings"
4213
  msgid "URL where user can review and print payment receipt."
4214
  msgstr ""
4215
 
4216
+ #: includes/admin/settings/class-settings-bootstrap.php:1422
4217
  #, fuzzy
4218
  msgctxt "admin settings"
4219
  msgid "Gateway used to process listing's payment."
4220
  msgstr "تعذر معالجة الدفع."
4221
 
4222
+ #: includes/admin/settings/class-settings-bootstrap.php:1453
4223
  msgctxt "admin settings"
4224
  msgid "Checkout URL link"
4225
  msgstr "رابط URL إتمام الشراء"
4226
 
4227
+ #: includes/admin/settings/class-settings-bootstrap.php:1547
4228
  msgctxt "admin settings"
4229
  msgid ""
4230
  "Could not remove the \"Business Directory Plugin - AJAX Compatibility Module"
4233
  "تعذر إزالة \"إضافة دليل الأعمال – وحدة التوافق أجاكس\". المرجو إزالة الملف "
4234
  "\"%s\" يدوياً أو قم بإلغاء تفعيل الإضافة."
4235
 
4236
+ #: includes/admin/settings/class-settings-bootstrap.php:1563
4237
  msgctxt "admin settings"
4238
  msgid ""
4239
  "Could not activate AJAX Compatibility mode: the directory \"%s\" could not "
4240
  "be created."
4241
  msgstr "لا يمكن تفعيل وضع التوافق أجاكس: تعذر إنشاء المجلد \"%s\"."
4242
 
4243
+ #: includes/admin/settings/class-settings-bootstrap.php:1568
4244
  msgctxt "admin settings"
4245
  msgid ""
4246
  "Could not copy the AJAX compatibility plugin \"%s\". Compatibility mode was "
4247
  "not activated."
4248
  msgstr "تعذر نسخ إضافة التوافق أجاكس \"%s\". لم يتم تفعيل وضع التوافق."
4249
 
4250
+ #: includes/admin/settings/class-settings-bootstrap.php:1598
4251
  #, fuzzy
4252
  msgctxt "admin settings"
4253
  msgid "Uploaded Image (no resize)"
4254
  msgstr "رفع الصور"
4255
 
4256
+ #: includes/functions.php:1193
4257
  msgctxt "admin settings"
4258
  msgid "User"
4259
  msgstr "عضو"
4260
 
4261
+ #: includes/functions.php:1194
4262
  msgctxt "admin settings"
4263
  msgid "User registration date"
4264
  msgstr "تاريخ تسجيل العضو"
4537
  msgstr "عام"
4538
 
4539
  #: includes/admin/settings/class-settings-bootstrap.php:27
4540
+ #: includes/admin/settings/class-settings-bootstrap.php:974
4541
  #, fuzzy
4542
  msgctxt "settings"
4543
  msgid "Listings"
4547
  #: includes/admin/settings/class-settings-bootstrap.php:31
4548
  #: includes/admin/settings/class-settings-bootstrap.php:34
4549
  #: includes/admin/settings/class-settings-bootstrap.php:37
4550
+ #: includes/admin/settings/class-settings-bootstrap.php:51
4551
+ #: includes/admin/settings/class-settings-bootstrap.php:1236
4552
+ #: includes/admin/settings/class-settings.php:288
4553
  #, fuzzy
4554
  msgctxt "settings"
4555
  msgid "General Settings"
4572
  msgid "Appearance"
4573
  msgstr ""
4574
 
4575
+ #: includes/admin/settings/class-settings-bootstrap.php:39
4576
  #: includes/licensing.php:104
4577
  msgctxt "settings"
4578
  msgid "Premium Modules"
4579
  msgstr "وحدات ممتازة (Premium)"
4580
 
4581
+ #: includes/admin/settings/class-settings-bootstrap.php:54
4582
  #, fuzzy
4583
  msgctxt "settings"
4584
  msgid "Permalink Settings"
4585
  msgstr "إعدادات الرابط الثابت"
4586
 
4587
+ #: includes/admin/settings/class-settings-bootstrap.php:59
4588
  #, fuzzy
4589
  msgctxt "settings"
4590
  msgid "Directory Listings Slug"
4591
  msgstr "رابط لطيف لإعلانات الدليل"
4592
 
4593
+ #: includes/admin/settings/class-settings-bootstrap.php:69
4594
  #, fuzzy
4595
  msgctxt "settings"
4596
  msgid "Categories Slug"
4597
  msgstr "رابط لطيف للتصنيفات"
4598
 
4599
+ #: includes/admin/settings/class-settings-bootstrap.php:70
4600
  #, fuzzy
4601
  msgctxt "settings"
4602
  msgid ""
4605
  "لا يمكن أن يكون الرابط اللطيف مستخدم من طرف مصطلح آخر. تجنب \"category\"، "
4606
  "على سبيل المثال."
4607
 
4608
+ #: includes/admin/settings/class-settings-bootstrap.php:81
4609
  #, fuzzy
4610
  msgctxt "settings"
4611
  msgid "Tags Slug"
4612
  msgstr "رابط لطيف للوسوم"
4613
 
4614
+ #: includes/admin/settings/class-settings-bootstrap.php:82
4615
  #, fuzzy
4616
  msgctxt "settings"
4617
  msgid "The slug can't be in use by another term. Avoid \"tag\", for instance."
4619
  "لا يمكن أن يكون الرابط اللطيف مستخدم من طرف مصطلح آخر. تجنب \"tag\"، على "
4620
  "سبيل المثال."
4621
 
4622
+ #: includes/admin/settings/class-settings-bootstrap.php:93
4623
  #, fuzzy
4624
  msgctxt "settings"
4625
  msgid "Remove listing ID from directory URLs?"
4626
  msgstr "إزالة معرف الإعلان من روابط URLs الدليل؟"
4627
 
4628
+ #: includes/admin/settings/class-settings-bootstrap.php:94
4629
  msgctxt "settings"
4630
  msgid "Check this setting to remove the ID for better SEO."
4631
  msgstr ""
4632
 
4633
+ #: includes/admin/settings/class-settings-bootstrap.php:95
4634
  #, fuzzy
4635
  msgctxt "settings"
4636
  msgid ""
4641
  "الأعمال/1809/عنوان-الإعلان\". تحقق من هذا الإعداد لإزالة المعرف لأفضل أرشفة "
4642
  "SEO."
4643
 
4644
+ #: includes/admin/settings/class-settings-bootstrap.php:103
4645
  #, fuzzy
4646
  msgctxt "settings"
4647
  msgid "reCAPTCHA"
4648
  msgstr "إعدادات reCaptcha"
4649
 
4650
+ #: includes/admin/settings/class-settings-bootstrap.php:106
4651
  #, fuzzy
4652
  msgctxt "settings"
4653
  msgid "Need API keys for reCAPTCHA? Get them <a>here</a>."
4654
  msgstr "بحاجة إلى مفاتيح API ل reCAPTCHA؟ أحصل عليها <a>هنا</a>."
4655
 
4656
+ #: includes/admin/settings/class-settings-bootstrap.php:113
4657
  #, fuzzy
4658
  msgctxt "settings"
4659
  msgid "Use reCAPTCHA for contact forms"
4660
  msgstr "إستخدم reCAPTCHA لاستمارة الاتصال"
4661
 
4662
+ #: includes/admin/settings/class-settings-bootstrap.php:121
4663
  #, fuzzy
4664
  msgctxt "settings"
4665
  msgid "Turn off reCAPTCHA for logged in users?"
4666
  msgstr "إيقاف reCAPTCHA للأعضاء الذين سجلوا الدخول؟"
4667
 
4668
+ #: includes/admin/settings/class-settings-bootstrap.php:129
4669
  #, fuzzy
4670
  msgctxt "settings"
4671
  msgid "Use reCAPTCHA for listing submits"
4672
  msgstr "إستخدم reCAPTCHA أثناء إضافة إعلان"
4673
 
4674
+ #: includes/admin/settings/class-settings-bootstrap.php:137
4675
  #, fuzzy
4676
  msgctxt "settings"
4677
  msgid "Use reCAPTCHA for edit listings"
4678
  msgstr "إستخدم reCAPTCHA في تعليقات الإعلان؟"
4679
 
4680
+ #: includes/admin/settings/class-settings-bootstrap.php:145
4681
  #, fuzzy
4682
  msgctxt "settings"
4683
  msgid "Use reCAPTCHA for report listings"
4684
  msgstr "إستخدم reCAPTCHA في تعليقات الإعلان؟"
4685
 
4686
+ #: includes/admin/settings/class-settings-bootstrap.php:153
4687
  #, fuzzy
4688
  msgctxt "settings"
4689
  msgid "Use reCAPTCHA for listing comments?"
4690
  msgstr "إستخدم reCAPTCHA في تعليقات الإعلان؟"
4691
 
4692
+ #: includes/admin/settings/class-settings-bootstrap.php:161
4693
  #, fuzzy
4694
  msgctxt "settings"
4695
  msgid "reCAPTCHA Public Key"
4696
  msgstr "مفتاح عام reCAPTCHA"
4697
 
4698
+ #: includes/admin/settings/class-settings-bootstrap.php:170
4699
  #, fuzzy
4700
  msgctxt "settings"
4701
  msgid "reCAPTCHA Private Key"
4702
  msgstr "مفتاح خاص reCAPTCHA"
4703
 
4704
+ #: includes/admin/settings/class-settings-bootstrap.php:179
4705
  #, fuzzy
4706
  msgctxt "settings"
4707
  msgid "reCAPTCHA version"
4708
  msgstr "إعدادات reCaptcha"
4709
 
4710
+ #: includes/admin/settings/class-settings-bootstrap.php:192
4711
  msgctxt "settings"
4712
  msgid "reCAPTCHA V3 threshold score"
4713
  msgstr ""
4714
 
4715
+ #: includes/admin/settings/class-settings-bootstrap.php:197
4716
  msgctxt "settings"
4717
  msgid ""
4718
  "reCAPTCHA v3 returns a score (1.0 is very likely a good interaction, 0.0 is "
4721
  "this value will result in reCAPTCHA validation error."
4722
  msgstr ""
4723
 
4724
+ #: includes/admin/settings/class-settings-bootstrap.php:202
4725
  #, fuzzy
4726
  msgctxt "settings"
4727
  msgid "Registration"
4728
  msgstr "Enregistrement"
4729
 
4730
+ #: includes/admin/settings/class-settings-bootstrap.php:202
4731
  #, fuzzy
4732
  msgctxt "settings"
4733
  msgid ""
4741
  "الاتصال بعضوية الإضافة، واطلب منهم دعم معامل الاستعلام القياسي 'redirect_to' "
4742
  "لووردبريس."
4743
 
4744
+ #: includes/admin/settings/class-settings-bootstrap.php:207
4745
  #, fuzzy
4746
  msgctxt "settings"
4747
  msgid "Require login to post listings?"
4748
  msgstr "يتطلب تسجيل الدخول لنشر الإعلانات؟"
4749
 
4750
+ #: includes/admin/settings/class-settings-bootstrap.php:216
4751
  msgctxt "settings"
4752
  msgid "Allow anonymous users to edit/manage listings with an access key?"
4753
  msgstr ""
4754
 
4755
+ #: includes/admin/settings/class-settings-bootstrap.php:224
4756
  #, fuzzy
4757
  msgctxt "settings"
4758
  msgid "Login URL"
4759
  msgstr "رابط تسجيل الدخول"
4760
 
4761
+ #: includes/admin/settings/class-settings-bootstrap.php:225
4762
  #, fuzzy
4763
  msgctxt "settings"
4764
  msgid "Only enter this if using a membership plugin or custom login page."
4766
  "رابط URL لصفحة تسجيل الدخول لعضوية الإضافة الخاصة بك. فقط أدخل هذا إذا كان "
4767
  "هناك استخدام لعضوية الإضافة أو صفحة تسجيل دخول مخصصة."
4768
 
4769
+ #: includes/admin/settings/class-settings-bootstrap.php:226
4770
  msgctxt "settings"
4771
  msgid "URL of your membership plugin's login page."
4772
  msgstr ""
4773
 
4774
+ #: includes/admin/settings/class-settings-bootstrap.php:235
4775
  #, fuzzy
4776
  msgctxt "settings"
4777
  msgid "Registration URL"
4778
  msgstr "رابط التسجيل"
4779
 
4780
+ #: includes/admin/settings/class-settings-bootstrap.php:236
4781
  #, fuzzy
4782
  msgctxt "settings"
4783
  msgid ""
4786
  "رابط URL لصفحة التسجيل في عضوية الإضافة الخاصة بك. فقط أدخل هذا إذا كان "
4787
  "هناك استخدام لعضوية الإضافة أو صفحة تسجيل مخصصة."
4788
 
4789
+ #: includes/admin/settings/class-settings-bootstrap.php:237
4790
  msgctxt "settings"
4791
  msgid "URL of your membership plugin's registration page."
4792
  msgstr ""
4793
 
4794
+ #: includes/admin/settings/class-settings-bootstrap.php:246
4795
  msgctxt "settings"
4796
  msgid "Allow users to create accounts during listing submit?"
4797
  msgstr ""
4798
 
4799
+ #: includes/admin/settings/class-settings-bootstrap.php:249
4800
  #, fuzzy
4801
  msgctxt "settings"
4802
  msgid "No"
4803
  msgstr "لا"
4804
 
4805
+ #: includes/admin/settings/class-settings-bootstrap.php:250
4806
  msgctxt "settings"
4807
  msgid "Yes, and make it optional"
4808
  msgstr ""
4809
 
4810
+ #: includes/admin/settings/class-settings-bootstrap.php:251
4811
  #, fuzzy
4812
  msgctxt "settings"
4813
  msgid "Yes, and make it required"
4814
  msgstr "الإسم العائلي مطلوب."
4815
 
4816
+ #: includes/admin/settings/class-settings-bootstrap.php:258
4817
+ #: includes/admin/settings/class-settings-bootstrap.php:271
4818
  #, fuzzy
4819
  msgctxt "settings"
4820
  msgid "Terms and Conditions"
4821
  msgstr "شروط وأحكام"
4822
 
4823
+ #: includes/admin/settings/class-settings-bootstrap.php:263
4824
  #, fuzzy
4825
  msgctxt "settings"
4826
  msgid "Display and require user agreement to Terms and Conditions"
4827
  msgstr "عرض وطلب موافقة العضو على الشروط والأحكام"
4828
 
4829
+ #: includes/admin/settings/class-settings-bootstrap.php:272
4830
  #, fuzzy
4831
  msgctxt "settings"
4832
  msgid ""
4836
  "أدخل النص أو عنوان URL يبدأ ب http. إذا كنت تستخدم عنوان URL، سيتم استبدال "
4837
  "نص الأحكام والشروط برابط إلى الصفحة المناسبة."
4838
 
4839
+ #: includes/admin/settings/class-settings-bootstrap.php:274
4840
  #, fuzzy
4841
  msgctxt "settings"
4842
  msgid "Terms and Conditions text goes here."
5287
  #: includes/admin/settings/class-settings-bootstrap.php:808
5288
  #, fuzzy
5289
  msgctxt "settings"
5290
+ msgid "Show the \"Manage Listings\" button."
5291
+ msgstr "إظهار زر \"مشاهدة الإعلانات\"."
5292
+
5293
+ #: includes/admin/settings/class-settings-bootstrap.php:817
5294
+ #, fuzzy
5295
+ msgctxt "settings"
5296
  msgid "Show the \"Directory\" button."
5297
  msgstr "إظهار زر \"الدليل\"."
5298
 
5299
+ #: includes/admin/settings/class-settings-bootstrap.php:824
5300
  #, fuzzy
5301
  msgctxt "settings"
5302
  msgid "Theme Settings"
5303
  msgstr "إعدادات الصورة"
5304
 
5305
+ #: includes/admin/settings/class-settings-bootstrap.php:830
5306
  #, fuzzy
5307
  msgctxt "settings"
5308
  msgid "Theme button style"
5309
  msgstr "نمط زر القالب"
5310
 
5311
+ #: includes/admin/settings/class-settings-bootstrap.php:843
5312
  msgctxt "settings"
5313
  msgid ""
5314
  "Include CSS rules to give their own style to View, Edit and Delete buttons?"
5315
  msgstr ""
5316
 
5317
+ #: includes/admin/settings/class-settings-bootstrap.php:850
5318
  #, fuzzy
5319
  msgctxt "settings"
5320
  msgid "Image"
5321
  msgstr "الصورة"
5322
 
5323
+ #: includes/admin/settings/class-settings-bootstrap.php:851
5324
  #, fuzzy
5325
  msgctxt "settings"
5326
  msgid "Image Settings"
5327
  msgstr "إعدادات الصورة"
5328
 
5329
+ #: includes/admin/settings/class-settings-bootstrap.php:856
5330
  #, fuzzy
5331
  msgctxt "settings"
5332
  msgid "Allow images?"
5333
  msgstr "السماح بالصور؟"
5334
 
5335
+ #: includes/admin/settings/class-settings-bootstrap.php:867
5336
  #, fuzzy
5337
  msgctxt "settings"
5338
  msgid "Min Image File Size (KB)"
5339
  msgstr "أقل حجم لملف الصورة (KB)"
5340
 
5341
+ #: includes/admin/settings/class-settings-bootstrap.php:878
5342
  #, fuzzy
5343
  msgctxt "settings"
5344
  msgid "Max Image File Size (KB)"
5345
  msgstr "أقصى حجم لملف الصورة (KB)"
5346
 
5347
+ #: includes/admin/settings/class-settings-bootstrap.php:889
5348
  #, fuzzy
5349
  msgctxt "settings"
5350
  msgid "Min image width (px)"
5351
  msgstr "أقل عرض للصورة (px)"
5352
 
5353
+ #: includes/admin/settings/class-settings-bootstrap.php:898
5354
  #, fuzzy
5355
  msgctxt "settings"
5356
  msgid "Min image height (px)"
5357
  msgstr "أقل ارتفاع للصورة (px)"
5358
 
5359
+ #: includes/admin/settings/class-settings-bootstrap.php:911
5360
  #, fuzzy
5361
  msgctxt "settings"
5362
  msgid "Max image width (px)"
5363
  msgstr "أقصى عرض للصورة (px)"
5364
 
5365
+ #: includes/admin/settings/class-settings-bootstrap.php:922
5366
  #, fuzzy
5367
  msgctxt "settings"
5368
  msgid "Max image height (px)"
5369
  msgstr "أقصى ارتفاع للصورة (px)"
5370
 
5371
+ #: includes/admin/settings/class-settings-bootstrap.php:933
5372
  #, fuzzy
5373
  msgctxt "settings"
5374
  msgid "Turn on thickbox/lightbox?"
5375
  msgstr "تشغيل thickbox/lightbox؟"
5376
 
5377
+ #: includes/admin/settings/class-settings-bootstrap.php:934
5378
  #, fuzzy
5379
  msgctxt "settings"
5380
  msgid ""
5383
  "قم بإلغاء التحديد إذا كان يتعارض مع العناصر الأخرى أو الإضافات المثبتة على "
5384
  "موقعك"
5385
 
5386
+ #: includes/admin/settings/class-settings-bootstrap.php:940
5387
  #, fuzzy
5388
  msgctxt "settings"
5389
  msgid "Thumbnails"
5390
  msgstr "الصور المصغرة"
5391
 
5392
+ #: includes/admin/settings/class-settings-bootstrap.php:947
5393
  #, fuzzy
5394
  msgctxt "settings"
5395
  msgid "Thumbnail width (px)"
5396
  msgstr "عرض الصور المصغرة (px)"
5397
 
5398
+ #: includes/admin/settings/class-settings-bootstrap.php:958
5399
  #, fuzzy
5400
  msgctxt "settings"
5401
  msgid "Thumbnail height (px)"
5402
  msgstr "ارتفاع الصورة المصغرة (px)"
5403
 
5404
+ #: includes/admin/settings/class-settings-bootstrap.php:967
5405
  #, fuzzy
5406
  msgctxt "settings"
5407
  msgid "Crop thumbnails to exact dimensions?"
5408
  msgstr "قطع الصور المصغرة للأبعاد المناسبة؟"
5409
 
5410
+ #: includes/admin/settings/class-settings-bootstrap.php:968
5411
  #, fuzzy
5412
  msgctxt "settings"
5413
  msgid ""
5421
  "تعديل الارتفاع بشكل متناسب. اعتماداً على الصور المرفوعة, قد تكون ارتفاعات "
5422
  "الصور المصغرة مختلفة."
5423
 
5424
+ #: includes/admin/settings/class-settings-bootstrap.php:979
5425
  msgctxt "settings"
5426
  msgid "Enforce image upload on submit/edit?"
5427
  msgstr ""
5428
 
5429
+ #: includes/admin/settings/class-settings-bootstrap.php:988
5430
  #, fuzzy
5431
  msgctxt "settings"
5432
  msgid "Number of free images"
5433
  msgstr "عدد الصور المجانية"
5434
 
5435
+ #: includes/admin/settings/class-settings-bootstrap.php:1000
5436
  msgctxt "settings"
5437
  msgid "Use \"Coming Soon\" photo for listings without any (primary) images?"
5438
  msgstr ""
5439
 
5440
+ #: includes/admin/settings/class-settings-bootstrap.php:1013
5441
  #, fuzzy
5442
  msgctxt "settings"
5443
  msgid "Default thumbnail image size"
5444
  msgstr "إعلان العضو الافتراضي"
5445
 
5446
+ #: includes/admin/settings/class-settings-bootstrap.php:1016
5447
  msgctxt "settings"
5448
  msgid ""
5449
  "This indicates the size of the thumbnail to be used both in excerpt and "
5452
  "width as the starting point."
5453
  msgstr ""
5454
 
5455
+ #: includes/admin/settings/class-settings-bootstrap.php:1024
5456
  #, fuzzy
5457
  msgctxt "settings"
5458
  msgid "Show Thumbnail on main listings page?"
5459
  msgstr "إظهار صورة مصغرة في صفحة الإعلانات الرئيسية؟"
5460
 
5461
+ #: includes/admin/settings/class-settings-bootstrap.php:1033
5462
  #, fuzzy
5463
  msgctxt "settings"
5464
  msgid "Featured Badge image"
5465
  msgstr "وحدة المستويات المميزة"
5466
 
5467
+ #: includes/admin/settings/class-settings-bootstrap.php:1042
5468
  #, fuzzy
5469
  msgctxt "settings"
5470
  msgid "Featured Badge URL"
5471
  msgstr "وحدة المستويات المميزة"
5472
 
5473
+ #: includes/admin/settings/class-settings-bootstrap.php:1043
5474
  msgctxt "settings"
5475
  msgid "Use this to set Featured Badge image as a link to a defined URL."
5476
  msgstr ""
5477
 
5478
+ #: includes/admin/settings/class-settings-bootstrap.php:1044
5479
  #, fuzzy
5480
  msgctxt "settings"
5481
  msgid "URL"
5482
  msgstr "رابط URL"
5483
 
5484
+ #: includes/admin/settings/class-settings-bootstrap.php:1053
5485
  msgctxt "settings"
5486
  msgid "Display featured (sticky) badge on listing:"
5487
  msgstr ""
5488
 
5489
+ #: includes/admin/settings/class-settings-bootstrap.php:1069
5490
  #, fuzzy
5491
  msgctxt "settings"
5492
  msgid "Fee Order"
5493
  msgstr "ترتيب"
5494
 
5495
+ #: includes/admin/settings/class-settings-bootstrap.php:1082
5496
  #, fuzzy
5497
  msgctxt "settings"
5498
  msgid "Turn On payments?"
5499
  msgstr "تشغيل الدفعات؟"
5500
 
5501
+ #: includes/admin/settings/class-settings-bootstrap.php:1091
5502
  #, fuzzy
5503
  msgctxt "settings"
5504
  msgid "Put payment gateways in test mode?"
5505
  msgstr "وضع بوابات الدفع في وضع الاختبار؟"
5506
 
5507
+ #: includes/admin/settings/class-settings-bootstrap.php:1101
5508
  #, fuzzy
5509
  msgctxt "settings"
5510
  msgid "Perform checkouts on the secure (HTTPS) version of your site?"
5511
  msgstr "تنفيذ إنهاء الشراء على الإصدار الآمن (HTTPS) لموقع الويب الخاص بك؟"
5512
 
5513
+ #: includes/admin/settings/class-settings-bootstrap.php:1102
5514
  #, fuzzy
5515
  msgctxt "settings"
5516
  msgid ""
5520
  "موصى به لأمن أكثر. لكي يعمل هذا أنت بحاجة إلى تمكين HTTPS على الخادم الخاص "
5521
  "بك و <a>الحصول على شهادة SSL</a>."
5522
 
5523
+ #: includes/admin/settings/class-settings-bootstrap.php:1129
5524
  #, fuzzy
5525
  msgctxt "settings"
5526
  msgid "Currency Code"
5527
  msgstr "رمز العملة"
5528
 
5529
+ #: includes/admin/settings/class-settings-bootstrap.php:1168
5530
  #, fuzzy
5531
  msgctxt "settings"
5532
  msgid "Currency Symbol"
5533
  msgstr "رمز العملة"
5534
 
5535
+ #: includes/admin/settings/class-settings-bootstrap.php:1178
5536
  #, fuzzy
5537
  msgctxt "settings"
5538
  msgid "Currency symbol display"
5539
  msgstr "عرض رمز العملة"
5540
 
5541
+ #: includes/admin/settings/class-settings-bootstrap.php:1193
5542
  msgctxt "settings"
5543
  msgid "Include fee description in receipt?"
5544
  msgstr ""
5545
 
5546
+ #: includes/admin/settings/class-settings-bootstrap.php:1203
5547
  #, fuzzy
5548
  msgctxt "settings"
5549
  msgid "Thank you for payment message"
5550
  msgstr "رسالة الشكر على الدفع"
5551
 
5552
+ #: includes/admin/settings/class-settings-bootstrap.php:1213
5553
  #, fuzzy
5554
  msgctxt "settings"
5555
  msgid "Ask users to come back for abandoned payments?"
5556
  msgstr "أطلب من الأعضاء العودة للمدفوعات المتخلى عنها؟"
5557
 
5558
+ #: includes/admin/settings/class-settings-bootstrap.php:1214
5559
  #, fuzzy
5560
  msgctxt "settings"
5561
  msgid ""
5568
  "إتمام الدفع للإعلان. هذا ينتج عنه أن الإعلانات تبدو وكأنها فشلت، وذلك عندما "
5569
  "لا يكمل العضو المعاملة ببساطة. دليل الأعمال يستطيع تذكيرهم للعودة والاستمرار."
5570
 
5571
+ #: includes/admin/settings/class-settings-bootstrap.php:1224
5572
  #, fuzzy
5573
  msgctxt "settings"
5574
  msgid "Listing abandonment threshold (hours)"
5575
  msgstr "عتبة التخلي على الإعلان (ساعات)"
5576
 
5577
+ #: includes/admin/settings/class-settings-bootstrap.php:1241
5578
  #, fuzzy
5579
  msgctxt "settings"
5580
  msgid "Display email address fields publicly?"
5581
  msgstr "عرض حقول عنوان البريد الإلكتروني علنا؟"
5582
 
5583
+ #: includes/admin/settings/class-settings-bootstrap.php:1242
5584
  #, fuzzy
5585
  msgctxt "settings"
5586
  msgid ""
5592
  "لأن هذا يزيد من الرسائل المزعجة إلى العنوان ويسمح للمتطفلين بجمع عنوانين "
5593
  "البريد للاستخدام في المستقبل."
5594
 
5595
+ #: includes/admin/settings/class-settings-bootstrap.php:1251
5596
  #, fuzzy
5597
  msgctxt "settings"
5598
  msgid "How to determine the listing's email address?"
5599
  msgstr "كيفية تحديد عنوان البريد الإلكتروني في الإعلان؟"
5600
 
5601
+ #: includes/admin/settings/class-settings-bootstrap.php:1252
5602
  #, fuzzy
5603
  msgctxt "settings"
5604
  msgid ""
5608
  "هذا يؤثر على رسائل البريد الإلكتروني المرسلة إلى مالكي الإعلانات عبر نموذج "
5609
  "الاتصال أو عندما ينتهي تاريخ الإعلانات."
5610
 
5611
+ #: includes/admin/settings/class-settings-bootstrap.php:1265
5612
  msgctxt "settings"
5613
  msgid "Email Content-Type header"
5614
  msgstr ""
5615
 
5616
+ #: includes/admin/settings/class-settings-bootstrap.php:1266
5617
  msgctxt "settings"
5618
  msgid ""
5619
  "Use this setting to control the format of the emails explicitly. Some "
5622
  "then \"Both\"."
5623
  msgstr ""
5624
 
5625
+ #: includes/admin/settings/class-settings-bootstrap.php:1277
5626
  #, fuzzy
5627
  msgctxt "settings"
5628
  msgid "E-Mail Notifications"
5629
  msgstr "تنبيهات البريد الإلكتروني"
5630
 
5631
+ #: includes/admin/settings/class-settings-bootstrap.php:1282
5632
  #, fuzzy
5633
  msgctxt "settings"
5634
  msgid "Notify admin via e-mail when..."
5635
  msgstr "إبلاغ المدير عن طريق البريد الإلكتروني عندما..."
5636
 
5637
+ #: includes/admin/settings/class-settings-bootstrap.php:1300
5638
  #, fuzzy
5639
  msgctxt "settings"
5640
  msgid "CC this e-mail address too"
5641
  msgstr "إرسال نسخة من الرسالة الى عنوان البريد الإلكتروني هذا أيضا"
5642
 
5643
+ #: includes/admin/settings/class-settings-bootstrap.php:1306
5644
  #, fuzzy
5645
  msgctxt "settings"
5646
  msgid ""
5649
  msgstr ""
5650
  "يمكنك تعديل قالب النص المستخدم لمعظم رسائل البريد الإلكتروني هذه أدناه."
5651
 
5652
+ #: includes/admin/settings/class-settings-bootstrap.php:1313
5653
  #, fuzzy
5654
  msgctxt "settings"
5655
  msgid "Notify users via e-mail when..."
5656
  msgstr "إعلام الأعضاء عن طريق البريد الإلكتروني عندما..."
5657
 
5658
+ #: includes/admin/settings/class-settings-bootstrap.php:1325
5659
  #, fuzzy
5660
  msgctxt "settings"
5661
  msgid "Templates"
5662
  msgstr "قوالب البريد الإلكتروني"
5663
 
5664
+ #: includes/admin/settings/class-settings-bootstrap.php:1330
5665
  #, fuzzy
5666
  msgctxt "settings"
5667
  msgid "Email confirmation message"
5668
  msgstr "رسالة تأكيد البريد الإلكتروني"
5669
 
5670
+ #: includes/admin/settings/class-settings-bootstrap.php:1331
5671
  #, fuzzy
5672
  msgctxt "settings"
5673
  msgid "Sent after a listing has been submitted."
5674
  msgstr "ترسل بعد أن يضاف الإعلان."
5675
 
5676
+ #: includes/admin/settings/class-settings-bootstrap.php:1349
5677
  #, fuzzy
5678
  msgctxt "settings"
5679
  msgid "Listing published message"
5680
  msgstr "رسالة نشر الإعلان"
5681
 
5682
+ #: includes/admin/settings/class-settings-bootstrap.php:1350
5683
  #, fuzzy
5684
  msgctxt "settings"
5685
  msgid "Sent when the listing has been published or approved by an admin."
5686
  msgstr "ترسل عندما يتم نشر الإعلان أو الموافقة عليه من طرف المدير."
5687
 
5688
+ #: includes/admin/settings/class-settings-bootstrap.php:1367
5689
  #, fuzzy
5690
  msgctxt "settings"
5691
  msgid "Listing Contact Message"
5692
  msgstr "رسالة اتصال الإعلان"
5693
 
5694
+ #: includes/admin/settings/class-settings-bootstrap.php:1368
5695
  #, fuzzy
5696
  msgctxt "settings"
5697
  msgid ""
5701
  "ترسل إلى مالكي الإعلانات عندما يستخدم شخص ما نموذج جهة الاتصال في صفحات "
5702
  "الإعلانات الخاصة بهم."
5703
 
5704
+ #: includes/admin/settings/class-settings-bootstrap.php:1396
5705
  #, fuzzy
5706
  msgctxt "settings"
5707
  msgid "Payment completed message"
5708
  msgstr "رسالة تذكير بالتخلي عن الدفع"
5709
 
5710
+ #: includes/admin/settings/class-settings-bootstrap.php:1397
5711
  #, fuzzy
5712
  msgctxt "settings"
5713
  msgid "Sent after a Listing's payment is verified by Gateway or admins."
5714
  msgstr "ترسل أحيانا بعد أن يتخلي الأعضاء عن الدفعة المنتظرة."
5715
 
5716
+ #: includes/admin/settings/class-settings-bootstrap.php:1432
5717
  #, fuzzy
5718
  msgctxt "settings"
5719
  msgid "Payment abandoned reminder message"
5720
  msgstr "رسالة تذكير بالتخلي عن الدفع"
5721
 
5722
+ #: includes/admin/settings/class-settings-bootstrap.php:1433
5723
  #, fuzzy
5724
  msgctxt "settings"
5725
  msgid "Sent some time after a pending payment is abandoned by users."
5726
  msgstr "ترسل أحيانا بعد أن يتخلي الأعضاء عن الدفعة المنتظرة."
5727
 
5728
+ #: includes/admin/settings/class-settings-bootstrap.php:1463
5729
  #, fuzzy
5730
  msgctxt "settings"
5731
  msgid "E-Mail Notices"
5732
  msgstr "تنبيهات البريد الإلكتروني"
5733
 
5734
+ #: includes/admin/settings/class-settings-bootstrap.php:1619
5735
  msgctxt "settings"
5736
  msgid "Cropped"
5737
  msgstr ""
5738
 
5739
+ #: includes/admin/settings/class-settings.php:443
5740
+ #: includes/admin/settings/class-settings.php:454
5741
  msgctxt "settings"
5742
  msgid "\"%s\" can not be empty."
5743
  msgstr ""
5744
 
5745
+ #: includes/admin/settings/class-settings.php:461
5746
  msgctxt "settings"
5747
  msgid "The slug \"%s\" is already in use for another taxonomy."
5748
  msgstr ""
5778
  msgid "Deactivate"
5779
  msgstr "قم بالتفعيل"
5780
 
 
 
 
 
 
5781
  #: templates/admin/settings-page.tpl.php:7
5782
  msgctxt "settings"
5783
  msgid "Reset Defaults"
5812
  msgid "Pending"
5813
  msgstr " في الانتظار"
5814
 
5815
+ #: includes/admin/settings/class-settings-bootstrap.php:1372
5816
  msgctxt "contact email"
5817
  msgid "You have received a reply from your listing at %s."
5818
  msgstr "تلقيت ردا من الإعلان الخاص بك في %s."
5819
 
5820
+ #: includes/admin/settings/class-settings-bootstrap.php:1373
5821
  msgctxt "contact email"
5822
  msgid "Name: %s"
5823
  msgstr "الإسم: %s"
5824
 
5825
+ #: includes/admin/settings/class-settings-bootstrap.php:1374
5826
  msgctxt "contact email"
5827
  msgid "E-Mail: %s"
5828
  msgstr "البريد الإلكتروني: %s"
5829
 
5830
+ #: includes/admin/settings/class-settings-bootstrap.php:1375
5831
  msgctxt "contact email"
5832
  msgid "Message:"
5833
  msgstr "الرسالة:"
5834
 
5835
+ #: includes/admin/settings/class-settings-bootstrap.php:1377
5836
  msgctxt "contact email"
5837
  msgid "Time: %s"
5838
  msgstr "الوقت: %s"
5995
  msgid "Listing upgrade to featured"
5996
  msgstr "الترقية الى إعلان مميز"
5997
 
5998
+ #: includes/installer.php:80
5999
  msgctxt "installer"
6000
  msgid "Default Fee"
6001
  msgstr "رسوم افتراضية"
6511
  "href=\"%s\">إدارة الخيارات - الدفع</a> لتغيير إعدادات الدفع. حتى تقوم بتغيير "
6512
  "ذلك، فإن الدليل سيعمل بـ <i>الوضع المجاني.</i>"
6513
 
6514
+ #: includes/class-payment.php:84
6515
  msgctxt "payment"
6516
  msgid "Payment status changed from \"%1$s\" to \"%2$s\"."
6517
  msgstr ""
6518
 
6519
+ #: includes/class-payment.php:125
6520
  #, fuzzy
6521
  msgctxt "payment"
6522
  msgid "Initial payment (\"%s\")"
6523
  msgstr "الدفعة الأولية"
6524
 
6525
+ #: includes/class-payment.php:128
6526
  #, fuzzy
6527
  msgctxt "payment"
6528
  msgid "Renewal payment (\"%s\")"
6529
  msgstr "رفض الدفع"
6530
 
6531
+ #: includes/class-payment.php:315
6532
  #, fuzzy
6533
  msgctxt "payment"
6534
  msgid "Pending"
6535
  msgstr " في الانتظار"
6536
 
6537
+ #: includes/class-payment.php:316
6538
  msgctxt "payment"
6539
  msgid "Failed"
6540
  msgstr ""
6541
 
6542
+ #: includes/class-payment.php:317
6543
  #, fuzzy
6544
  msgctxt "payment"
6545
  msgid "Completed"
6546
  msgstr "إكتمل"
6547
 
6548
+ #: includes/class-payment.php:318
6549
  #, fuzzy
6550
  msgctxt "payment"
6551
  msgid "Canceled"
6552
  msgstr "ألغيت"
6553
 
6554
+ #: includes/class-payment.php:319
6555
  msgctxt "payment"
6556
  msgid "On Hold"
6557
  msgstr ""
6558
 
6559
+ #: includes/class-payment.php:320
6560
  msgctxt "payment"
6561
  msgid "Refunded"
6562
  msgstr ""
6563
 
6564
+ #: includes/class-payment.php:140
6565
  msgctxt "payment summary"
6566
  msgid "%s. Admin Posted."
6567
  msgstr ""
6568
 
6569
+ #: includes/class-payment.php:142
6570
  #, fuzzy
6571
  msgctxt "payment summary"
6572
  msgid "%s. Imported Listing."
6573
  msgstr "استيراد الإعلانات"
6574
 
6575
+ #: includes/class-payment.php:220
6576
  #, fuzzy
6577
  msgctxt "submit listing"
6578
  msgid "Listing submitted by admin. Payment skipped."
6579
  msgstr "Poster annonce(paiement initial)"
6580
 
6581
+ #: includes/views/submit_listing.php:66
6582
  msgctxt "submit listing"
6583
  msgid "Click this field to add categories"
6584
  msgstr ""
6585
 
6586
+ #: includes/views/submit_listing.php:67 templates/submit-listing.tpl.php:23
6587
  #, fuzzy
6588
  msgctxt "submit listing"
6589
  msgid "Complete Listing"
6590
  msgstr "حذف الإعلان"
6591
 
6592
+ #: includes/views/submit_listing.php:68 templates/submit-listing.tpl.php:28
6593
  #, fuzzy
6594
  msgctxt "submit listing"
6595
  msgid "Continue to Payment"
6596
  msgstr "الدفعة الأولية"
6597
 
6598
+ #: includes/views/submit_listing.php:70
6599
  msgctxt "submit listing"
6600
  msgid "Please wait a moment!"
6601
  msgstr ""
6602
 
6603
+ #: includes/views/submit_listing.php:71
6604
  msgctxt "submit listing"
6605
  msgid "Something went wrong!"
6606
  msgstr ""
6607
 
6608
+ #: includes/views/submit_listing.php:96
6609
  #, fuzzy
6610
  msgctxt "submit listing"
6611
  msgid "No listing ID was specified."
6612
  msgstr "تم تحرير الإعلان"
6613
 
6614
+ #: includes/views/submit_listing.php:98
6615
  #, fuzzy
6616
  msgctxt "submit listing"
6617
  msgid "You can't edit this listing."
6618
  msgstr "التصنيفات لهذا الإعلان"
6619
 
6620
+ #: includes/views/submit_listing.php:152
6621
  msgctxt "submit listing"
6622
  msgid ""
6623
  "This listing can't be edited at this time because it has no fee plan "
6625
  "to a fee plan."
6626
  msgstr ""
6627
 
6628
+ #: includes/views/submit_listing.php:157
6629
  msgctxt "submit listing"
6630
  msgid ""
6631
  "This listing can't be edited at this time. Please try again later or contact "
6632
  "the admin if the problem persists."
6633
  msgstr ""
6634
 
6635
+ #: includes/views/submit_listing.php:180
6636
  #, fuzzy
6637
  msgctxt "submit listing"
6638
  msgid "You're logged in as admin, payment will be skipped."
6639
  msgstr "لقد تم تسجيل دخولك كمدير. سيتم تخطي أي خطوات للدفع."
6640
 
6641
+ #: includes/views/submit_listing.php:407
6642
  #, fuzzy
6643
  msgctxt "submit listing"
6644
  msgid "Category selection"
6645
  msgstr "إختيار تصنيف"
6646
 
6647
+ #: includes/views/submit_listing.php:407
6648
  #, fuzzy
6649
  msgctxt "submit listing"
6650
  msgid "Category & plan selection"
6651
  msgstr "إختيار تصنيف"
6652
 
6653
+ #: includes/views/submit_listing.php:412
6654
  #, fuzzy
6655
  msgctxt "submit listing"
6656
  msgid "Listing Information"
6657
  msgstr "معلومات حول الإعلان"
6658
 
6659
+ #: includes/views/submit_listing.php:417
6660
  #, fuzzy
6661
  msgctxt "submit listing"
6662
  msgid "Listing Images"
6663
  msgstr "صور الإعلانات"
6664
 
6665
+ #: includes/views/submit_listing.php:425
6666
  msgctxt "submit listing"
6667
  msgid "Account Creation"
6668
  msgstr ""
6669
 
6670
+ #: includes/views/submit_listing.php:431
6671
  #, fuzzy
6672
  msgctxt "submit listing"
6673
  msgid "Terms and Conditions"
6674
  msgstr "شروط وأحكام"
6675
 
6676
+ #: includes/views/submit_listing.php:468
6677
  msgctxt "submit listing"
6678
  msgid "(Please choose a fee plan above)"
6679
  msgstr ""
6680
 
6681
+ #: includes/views/submit_listing.php:518
6682
  #, fuzzy
6683
  msgctxt "submit listing"
6684
  msgid "Can not submit a listing at this moment. Please try again later."
6686
  "لا يمكن أن نقوم بمعالجة الدفع الخاص بك في هذه اللحظة. المرجو المحاولة مرة "
6687
  "أخرى لاحقاً."
6688
 
6689
+ #: includes/views/submit_listing.php:560
6690
  #, fuzzy
6691
  msgctxt "submit listing"
6692
  msgid "Please select a category."
6693
  msgstr "المرجو تحديد خيار رسوم التصنيف \"%s\"."
6694
 
6695
+ #: includes/views/submit_listing.php:573
6696
  #, fuzzy
6697
  msgctxt "submit listing"
6698
  msgid "Please select a category for your listing."
6699
  msgstr "المرجو تحديد خيار رسوم التصنيف \"%s\"."
6700
 
6701
+ #: includes/views/submit_listing.php:593
6702
  msgctxt "submit listing"
6703
  msgid "Please choose a valid category for your plan."
6704
  msgstr ""
6705
 
6706
+ #: includes/views/submit_listing.php:595
6707
  #, fuzzy
6708
  msgctxt "submit listing"
6709
  msgid "Please choose a valid fee plan for your category selection."
6710
  msgstr "المرجو تحديد خيار رسوم التصنيف \"%s\"."
6711
 
6712
+ #: includes/views/submit_listing.php:835
6713
  #, fuzzy
6714
  msgctxt "submit listing"
6715
  msgid "Please enter your desired username."
6716
  msgstr "يرجى إدخال إسمك."
6717
 
6718
+ #: includes/views/submit_listing.php:840
6719
  #, fuzzy
6720
  msgctxt "submit listing"
6721
  msgid "Please enter the e-mail for your new account."
6722
  msgstr "يرجى إدخال إسمك."
6723
 
6724
+ #: includes/views/submit_listing.php:845
6725
  msgctxt "submit listing"
6726
  msgid "The username you chose is already in use. Please use a different one."
6727
  msgstr ""
6728
 
6729
+ #: includes/views/submit_listing.php:850
6730
  msgctxt "submit listing"
6731
  msgid "The e-mail address you chose for your account is already in use."
6732
  msgstr ""
6733
 
6734
+ #: includes/views/submit_listing.php:865
6735
  msgctxt "submit listing"
6736
  msgid "Create a user account on this site"
6737
  msgstr ""
6738
 
6739
+ #: includes/views/submit_listing.php:872
6740
  msgctxt "submit listing"
6741
  msgid ""
6742
  "You need to create an account on the site. Please fill out the form below."
6743
  msgstr ""
6744
 
6745
+ #: includes/views/submit_listing.php:878
6746
  #, fuzzy
6747
  msgctxt "submit listing"
6748
  msgid "Username:"
6749
  msgstr "عضو"
6750
 
6751
+ #: includes/views/submit_listing.php:887
6752
  #, fuzzy
6753
  msgctxt "submit listing"
6754
  msgid "Email:"
6915
  msgstr "الموقع الاجتماعي (التعامل مع التغريدات)"
6916
 
6917
  #: includes/fields/class-fieldtypes-social.php:95
6918
+ #: includes/fields/class-fieldtypes-url.php:152
6919
  msgctxt "form-fields api"
6920
  msgid "URL:"
6921
  msgstr "رابط URL:"
6962
  msgid "URL Field"
6963
  msgstr "حقل الرابط"
6964
 
6965
+ #: includes/fields/class-fieldtypes-url.php:164
6966
  msgctxt "form-fields api"
6967
  msgid "Link Text (optional):"
6968
  msgstr "رابط نصي (اختياري):"
7242
  msgid "Caption for %s is required."
7243
  msgstr "البلد المطلوب."
7244
 
7245
+ #: includes/functions.php:1273
7246
  #, fuzzy
7247
  msgctxt "templates"
7248
  msgid "Return to results"
7249
  msgstr "العودة إلى الدليل."
7250
 
7251
+ #: includes/functions.php:1277 includes/functions.php:1282
7252
  msgctxt "templates"
7253
  msgid "Go back"
7254
  msgstr ""
7264
  msgid "No listing categories found."
7265
  msgstr "لم يتم العثور على تصنيفات الإعلانات."
7266
 
7267
+ #: includes/templates-ui.php:358
7268
  msgctxt "templates"
7269
  msgid "Search Listings"
7270
  msgstr "البحث في الإعلانات"
7271
 
7272
+ #: includes/templates-ui.php:363
7273
  msgctxt "templates"
7274
  msgid "Advanced Search"
7275
  msgstr "بحث متقدم"
7314
  "إعلانات بداخلها. هذا يعني أنها لن تظهر على الواجهة الأمامية للموقع الخاص بك. "
7315
  "إذا كنت لا تريد ذلك، إضغط <a>هنا</a> لتغيير الإعداد."
7316
 
7317
+ #: includes/views/submit_listing.php:352
7318
  msgctxt "templates"
7319
  msgid ""
7320
  "<b>View not available</b>. Do you have the \"Disable Frontend Listing "
7323
  "<b>المشاهدة غير متوفرة</b>. هل لديك \"تعطيل إضافة إعلان من واجهة الموقع؟\" "
7324
  "محددة في الإعدادات؟"
7325
 
7326
+ #: includes/views/submit_listing.php:354
7327
  msgctxt "templates"
7328
  msgid ""
7329
  "Listing submission has been disabled. Contact the administrator for details."
7330
  msgstr ""
7331
 
7332
+ #: includes/views/submit_listing.php:521
7333
  msgctxt "templates"
7334
  msgid ""
7335
  "<b>There are no Fee Plans available</b>, without a fee plan site users can't "
7336
  "submit a listing. %s to create a fee plan"
7337
  msgstr ""
7338
 
7339
+ #: includes/views/submit_listing.php:535
7340
  msgctxt "templates"
7341
  msgid ""
7342
  "Listing submission is not available at the moment. Contact the administrator "
7343
  "for details."
7344
  msgstr ""
7345
 
7346
+ #: includes/views/submit_listing.php:538
7347
  msgctxt "templates"
7348
  msgid ""
7349
  "<b>View not available</b>, there is no \"Category\" association field. %s "
7351
  "an existing field"
7352
  msgstr ""
7353
 
7354
+ #: includes/views/submit_listing.php:914
7355
  msgctxt "templates"
7356
  msgid "Please agree to the Terms and Conditions."
7357
  msgstr "يرجى الموافقة على الشروط والأحكام."
7358
 
7359
+ #: includes/views/submit_listing.php:924
7360
  msgctxt "templates"
7361
  msgid "Terms and Conditions:"
7362
  msgstr "شروط وأحكام:"
7363
 
7364
+ #: includes/views/submit_listing.php:931
7365
  #, fuzzy
7366
  msgctxt "templates"
7367
  msgid "I agree to the <a>Terms and Conditions</a>"
7375
  msgstr "لم يتم العثور على أي إعلانات."
7376
 
7377
  #: templates/businessdirectory-listings.tpl.php:38
7378
+ #: templates/listings.tpl.php:31 templates/manage_listings.tpl.php:33
7379
  msgctxt "templates"
7380
  msgid "&laquo; Previous "
7381
  msgstr "&laquo; السابق"
7382
 
7383
  #: templates/businessdirectory-listings.tpl.php:39
7384
+ #: templates/listings.tpl.php:32 templates/manage_listings.tpl.php:34
7385
  msgctxt "templates"
7386
  msgid "Next &raquo;"
7387
  msgstr "التالي &raquo;"
7388
 
7389
  #: templates/deprecated/search.tpl.php:24 templates/manage-listings.tpl.php:8
7390
+ #: templates/manage_listings.tpl.php:16
7391
  msgctxt "templates"
7392
  msgid "Return to directory"
7393
  msgstr "العودة إلى الدليل."
7461
  msgid "Lost your password?"
7462
  msgstr "فقدت كلمة المرور؟"
7463
 
7464
+ #: templates/manage-listings.tpl.php:3 templates/manage_listings.tpl.php:20
7465
  msgctxt "templates"
7466
  msgid ""
7467
  "Your current listings are shown below. To edit a listing click the edit "
7470
  "أدناه توجد إعلاناتك الحالية. لتحرير إعلان ما إضغط على زر تحرير. لحذف إعلان "
7471
  "ما إضغط على زر حذف."
7472
 
7473
+ #: templates/manage-listings.tpl.php:6 templates/manage_listings.tpl.php:11
7474
  msgctxt "templates"
7475
  msgid "You do not currently have any listings in the directory."
7476
  msgstr "أنت لا تملك حاليا أي إعلانات في الدليل."
7672
  msgid "There are no images currently attached to your listing."
7673
  msgstr "لا توجد أي صور مرفقة حاليا إلى إعلانك."
7674
 
7675
+ #: includes/gateways/class-gateway-authorize-net.php:35
7676
  #, fuzzy
7677
  msgctxt "authorize-net"
7678
  msgid "Authorize.net"
7679
  msgstr "تفعيل Authorize.net؟"
7680
 
7681
+ #: includes/gateways/class-gateway-authorize-net.php:53
7682
  #, fuzzy
7683
  msgctxt "authorize-net"
7684
  msgid "Login ID"
7685
  msgstr "معرف تسجيل الدخول"
7686
 
7687
+ #: includes/gateways/class-gateway-authorize-net.php:54
7688
  #, fuzzy
7689
  msgctxt "authorize-net"
7690
  msgid "Transaction Key"
7691
  msgstr "مفتاح المعاملة"
7692
 
7693
+ #: includes/gateways/class-gateway-authorize-net.php:98
7694
  msgctxt "authorize-net"
7695
  msgid "Login ID is missing."
7696
  msgstr "معرف تسجيل الدخول مفقود."
7697
 
7698
+ #: includes/gateways/class-gateway-authorize-net.php:101
7699
  msgctxt "authorize-net"
7700
  msgid "Transaction Key is missing."
7701
  msgstr "مفتاح المعاملة مفقود."
7702
 
7703
+ #: includes/gateways/class-gateway-authorize-net.php:172
7704
+ #: includes/gateways/class-gateway-authorize-net.php:191
7705
+ #: includes/gateways/class-gateway-authorize-net.php:201
7706
  #, fuzzy
7707
  msgctxt "authorize-net"
7708
  msgid ""
7711
  msgstr ""
7712
  "الدفع الخاص بك خاضع للمراجعة من طرف قسم الدفع. وذلك للسبب التالي: \"%s\"."
7713
 
7714
+ #: includes/gateways/class-gateway-authorize-net.php:210
7715
  #, fuzzy
7716
  msgctxt "authorize-net"
7717
  msgid ""
7721
  "لم تقبل بوابة الدفع بطاقة الائتمان أو معلومات الفوترة الخاصة بك. وذلك للسبب "
7722
  "التالي: \"%s\"."
7723
 
7724
+ #: includes/gateways/class-gateway-authorize-net.php:216
7725
+ msgctxt "authorize-net"
7726
+ msgid "No response returned"
7727
+ msgstr ""
7728
+
7729
+ #: includes/gateways/class-gateway-authorize-net.php:220
7730
  msgctxt "authorize-net"
7731
  msgid "Payment was rejected. The following reason was given: \"%s\"."
7732
  msgstr "رفض الدفع. وذلك للسبب التالي: \"%s\"."
7733
 
7734
+ #: includes/gateways/class-gateway-authorize-net.php:281
7735
+ #: includes/gateways/class-gateway-authorize-net.php:328
7736
  msgctxt "authorize-net"
7737
  msgid "Payment failed. Reason: %s"
7738
  msgstr ""
7739
 
7740
+ #: includes/gateways/class-gateway-authorize-net.php:339
7741
  #, fuzzy
7742
  msgctxt "authorize-net"
7743
  msgid "Listing #%d"
7744
  msgstr "تحرير الإعلان"
7745
 
7746
+ #: includes/gateways/class-gateway-authorize-net.php:599
7747
+ #, fuzzy
7748
+ msgctxt "authorize-net"
7749
+ msgid "Customer"
7750
+ msgstr "تخصيص"
7751
+
7752
  #: includes/helpers/class-access-keys-sender.php:20
7753
  #, fuzzy
7754
  msgctxt "access keys sender"
7896
  msgid "General"
7897
  msgstr "عام"
7898
 
7899
+ #: includes/licensing.php:288
7900
  #, fuzzy
7901
  msgctxt "licensing"
7902
  msgid "Invalid item ID"
7903
  msgstr "معرف حقل غير صالح"
7904
 
7905
+ #: includes/licensing.php:294
7906
  msgctxt "licensing"
7907
  msgid "No license key provided"
7908
  msgstr "لم يتم تقديم أي مفتاح الترخيص"
7909
 
7910
+ #: includes/licensing.php:318
7911
  #, fuzzy
7912
  msgctxt "licensing"
7913
  msgid "The license key was revoked."
7914
  msgstr "لم يتم تقديم أي مفتاح الترخيص"
7915
 
7916
+ #: includes/licensing.php:320
7917
  msgctxt "licensing"
7918
  msgid ""
7919
  "If you think this is a mistake, please contact <support-link>Business "
7921
  "reported as revoked by the licensing software."
7922
  msgstr ""
7923
 
7924
+ #: includes/licensing.php:322
7925
  msgctxt "licensing"
7926
  msgid ""
7927
  "Please include the email address you used to purchase <module-name> with "
7928
  "your report."
7929
  msgstr ""
7930
 
7931
+ #: includes/licensing.php:333 includes/licensing.php:376
7932
  msgctxt "licensing"
7933
  msgid "License key is invalid"
7934
  msgstr "مفتاح الترخيص غير صالح"
7935
 
7936
+ #: includes/licensing.php:350
7937
  msgctxt "licensing"
7938
  msgid "Invalid module ID"
7939
  msgstr "معرف وحدة غير صالح"
7940
 
7941
+ #: includes/licensing.php:380
7942
  msgctxt "licensing"
7943
  msgid "Deactivation failed"
7944
  msgstr "فشل التعطيل"
7945
 
7946
+ #: includes/licensing.php:388
7947
  msgctxt "licensing"
7948
  msgid ""
7949
  "It was not possible to establish a connection with Business Directory's "
7950
  "server. cURL was not found in your system"
7951
  msgstr ""
7952
 
7953
+ #: includes/licensing.php:390 includes/licensing.php:431
7954
  msgctxt "licensing"
7955
  msgid ""
7956
  "To ensure the security of our systems and adhere to industry best practices, "
7959
  "1.0.1c)."
7960
  msgstr ""
7961
 
7962
+ #: includes/licensing.php:392 includes/licensing.php:433
7963
  msgctxt "licensing"
7964
  msgid ""
7965
  "Upgrading your system will not only allow you to communicate with Business "
7967
  "services using the latest security standards."
7968
  msgstr ""
7969
 
7970
+ #: includes/licensing.php:394
7971
  msgctxt "licensing"
7972
  msgid ""
7973
  "Please contact your hosting provider and ask them to upgrade your system. "
7974
  "Include this message if necessary"
7975
  msgstr ""
7976
 
7977
+ #: includes/licensing.php:410
7978
  msgctxt "licensing"
7979
  msgid ""
7980
  "It was not possible to establish a connection with Business Directory's "
7981
  "server. The connection failed with the following error:"
7982
  msgstr ""
7983
 
7984
+ #: includes/licensing.php:414 includes/licensing.php:466
7985
  msgctxt "licensing"
7986
  msgid ""
7987
  "It looks like your server is not authorized to make requests to Business "
7988
  "Directory servers. Please contact <support-link>Business Directory support</"
7989
+ "support-link> and ask them to add your IP address <ip-address> to the allow "
7990
+ "list."
7991
  msgstr ""
7992
 
7993
+ #: includes/licensing.php:416 includes/licensing.php:468
7994
  msgctxt "licensing"
7995
  msgid "Include this error message with your report."
7996
  msgstr ""
7997
 
7998
+ #: includes/licensing.php:426
7999
  msgctxt "licensing"
8000
  msgid ""
8001
  "It was not possible to establish a connection with Business Directory's "
8002
  "server. A problem occurred in the SSL/TSL handshake:"
8003
  msgstr ""
8004
 
8005
+ #: includes/licensing.php:435
8006
  msgctxt "licensing"
8007
  msgid ""
8008
  "Please contact your hosting provider and ask them to upgrade your system. "
8009
  "Include this message if necessary."
8010
  msgstr ""
8011
 
8012
+ #: includes/licensing.php:442
8013
  msgctxt "licensing"
8014
  msgid "Could not contact licensing server"
8015
  msgstr "لا يمكن الاتصال بخادم الترخيص"
8016
 
8017
+ #: includes/licensing.php:464
8018
  msgctxt "licensing"
8019
  msgid "The server returned a 403 Forbidden error."
8020
  msgstr ""
8021
 
8022
+ #: includes/licensing.php:532
8023
  #, fuzzy
8024
  msgctxt "licensing"
8025
  msgid "Business Directory - Please verify your license keys"
8026
  msgstr "دليل الأعمال - إعادة تعيين الافتراضي"
8027
 
8028
+ #: includes/licensing.php:542
8029
  #, fuzzy
8030
  msgctxt "licensing"
8031
  msgid ""
8036
  "المفعول. إذهب إلى <a>إدارة الخيارات - التراخيص</a> لإدخال معلومات الترخيص "
8037
  "الخاص بك."
8038
 
8039
+ #: includes/licensing.php:553
8040
  msgctxt "licensing"
8041
  msgid ""
8042
  "You need to activate the license keys for the following themes before they "
8043
  "can be used: %s."
8044
  msgstr ""
8045
 
8046
+ #: includes/licensing.php:561 includes/licensing.php:617
8047
  #, fuzzy
8048
  msgctxt "licensing"
8049
  msgid "Review my license keys"
8050
  msgstr "تجديد مفتاح الترخيص"
8051
 
8052
+ #: includes/licensing.php:588
8053
  #, fuzzy
8054
  msgctxt "licensing"
8055
  msgid "Business Directory - License key expired"
8056
  msgstr "دليل الأعمال - مفتاح الترخيص منتهي"
8057
 
8058
+ #: includes/licensing.php:598
8059
  #, fuzzy
8060
  msgctxt "licensing"
8061
  msgid ""
8066
  "انتهت صلاحية مفتاح الترخيص <span class=\"module-name\">%s %s</span>. سوف "
8067
  "يستمر عمل الوحدة ولكن لن تتلقى أي مزيد من التحديثات حتى يتم تجديد الترخيص."
8068
 
8069
+ #: includes/licensing.php:609
8070
  #, fuzzy
8071
  msgctxt "licensing"
8072
  msgid ""
8077
  "انتهت صلاحية مفتاح الترخيص <span class=\"module-name\">%s %s</span>. سوف "
8078
  "يستمر عمل الوحدة ولكن لن تتلقى أي مزيد من التحديثات حتى يتم تجديد الترخيص."
8079
 
8080
+ #: includes/licensing.php:709
8081
  #, fuzzy
8082
  msgctxt "licensing"
8083
  msgid "Please enter a license key."
8084
  msgstr "يرجى إدخال بريد إلكتروني صحيح."
8085
 
8086
+ #: includes/licensing.php:718
8087
  msgctxt "licensing"
8088
  msgid "Could not activate license: %s."
8089
  msgstr "لا يمكن تفعيل الترخيص: %s."
8090
 
8091
+ #: includes/licensing.php:720
8092
  msgctxt "licensing"
8093
  msgid "License activated"
8094
  msgstr "تم تفعيل ترخيص"
8095
 
8096
+ #: includes/licensing.php:740
8097
  msgctxt "licensing"
8098
  msgid "Could not deactivate license: %s."
8099
  msgstr "لا يمكن إلغاء الترخيص: %s."
8100
 
8101
+ #: includes/licensing.php:742
8102
  msgctxt "licensing"
8103
  msgid "License deactivated"
8104
  msgstr "تم إلغاء تفعيل الترخيص"
8105
 
8106
  #. translators: "<module-name>" version <version-number> is not...
8107
+ #: includes/licensing.php:945
8108
  msgctxt "deprecation"
8109
  msgid ""
8110
  "\"%1$s\" version %2$s is not compatible with Business Directory Plugin 5.0. "
8418
  msgid "Next"
8419
  msgstr ""
8420
 
8421
+ #: includes/templates-ui.php:398 includes/templates-ui.php:430
8422
  msgctxt "templates sort"
8423
  msgid "Sort By:"
8424
  msgstr "ترتيب حسب:"
8425
 
8426
+ #: includes/templates-ui.php:421
8427
  msgctxt "sort"
8428
  msgid "Reset"
8429
  msgstr "إعادة تعيين"
8430
 
8431
+ #: includes/templates-ui.php:449
8432
  msgctxt "sort"
8433
  msgid "(Reset)"
8434
  msgstr "(إعادة تعيين)"
8577
  msgid "This contact form is temporarily disabled. Please try again later."
8578
  msgstr "نموذج الاتصال هذا معطل مؤقتا. المرجو المحاولة مرة أخرى لاحقا."
8579
 
8580
+ #: includes/views/login.php:49
8581
  #, fuzzy
8582
  msgctxt "views:login"
8583
  msgid "Please enter a valid e-mail/access key combination."
8595
  msgid "... or use an Access Key"
8596
  msgstr "مفاتيح وصول الإعلان"
8597
 
8598
+ #: templates/login.tpl.php:60
8599
  #, fuzzy
8600
  msgctxt "views:login"
8601
  msgid "Please enter your access key and e-mail address."
8602
  msgstr "المرجو إدخال بريد إلكتروني صحيح."
8603
 
8604
+ #: templates/login.tpl.php:66 templates/login.tpl.php:68
8605
  #, fuzzy
8606
  msgctxt "views:login"
8607
  msgid "E-Mail Address"
8608
  msgstr "عنوان البريد الإلكتروني:"
8609
 
8610
+ #: templates/login.tpl.php:72 templates/login.tpl.php:74
8611
  #, fuzzy
8612
  msgctxt "views:login"
8613
  msgid "Access Key"
8614
  msgstr "مفتاح الوصول"
8615
 
8616
+ #: templates/login.tpl.php:76
8617
  #, fuzzy
8618
  msgctxt "views:login"
8619
  msgid "Use Access Key"
8620
  msgstr "مفتاح الوصول"
8621
 
8622
+ #: templates/login.tpl.php:77
8623
  msgctxt "views:login"
8624
  msgid "Request access key?"
8625
  msgstr ""
8626
 
8627
+ #: includes/views/manage_listings.php:29
8628
  #, fuzzy
8629
  msgctxt "view:manage-listings"
8630
  msgid "Please <a>login</a> to manage your listings."
8631
  msgstr "يرجى <a>تسجيل الدخول</a> ليتتمكن من إرسال رسائل إلى مالك الإعلان."
8632
 
8633
+ #: includes/views/manage_listings.php:100
8634
+ #, fuzzy
8635
+ msgctxt "view:manage-listings"
8636
+ msgid "Renew Listing"
8637
+ msgstr "تجديد الإعلان"
8638
+
8639
  #: includes/views/manage_recurring.php:36
8640
  msgctxt "manage subscription"
8641
  msgid "The listing with id = <listing-id> doesn't exists."
8811
  msgid "Clear"
8812
  msgstr "مسح"
8813
 
8814
+ #: includes/views/show_listing.php:13
8815
  msgctxt "preview"
8816
  msgid "This is just a preview. The listing has not been published yet."
8817
  msgstr ""
8818
  "Il s'agit seulement d'une pré-visualisation. L'annonce n'a pas encore été "
8819
  "publiée."
8820
 
8821
+ #: includes/views/submit_listing.php:705
8822
  msgctxt "listing submit"
8823
  msgid ""
8824
  "Something went wrong. Please check the form for errors, correct them and "
8825
  "submit again."
8826
  msgstr ""
8827
 
8828
+ #: includes/views/submit_listing.php:789
8829
  msgctxt "listing submit"
8830
  msgid ""
8831
  "Image upload is required, please provide at least one image and submit again."
8973
  msgid "Search"
8974
  msgstr "بحث"
8975
 
8976
+ #: templates/admin/csv-export.tpl.php:100
8977
+ #: templates/admin/csv-export.tpl.php:119
8978
+ #: templates/admin/csv-export.tpl.php:130 templates/admin/csv-import.tpl.php:50
8979
  #: templates/admin/csv-import.tpl.php:116
8980
  #: templates/admin/csv-import.tpl.php:142
8981
  #: templates/admin/csv-import.tpl.php:153
9889
  msgid "Address"
9890
  msgstr "العنوان"
9891
 
9892
+ #, fuzzy
9893
+ #~ msgid "https://www.businessdirectoryplugin.com"
9894
+ #~ msgstr "http://www.businessdirectoryplugin.com"
9895
+
9896
+ #~ msgid "D. Rodenbaugh"
9897
+ #~ msgstr "D. Rodenbaugh"
9898
+
9899
+ #~ msgctxt "admin menu"
9900
+ #~ msgid "Business Directory Admin"
9901
+ #~ msgstr "مدير دليل الأعمال"
9902
+
9903
+ #~ msgctxt "admin menu"
9904
+ #~ msgid "Dir. Admin"
9905
+ #~ msgstr "مدير الدليل"
9906
+
9907
+ #~ msgctxt "admin menu"
9908
+ #~ msgid "Directory Admin"
9909
+ #~ msgstr "مدير الدليل"
9910
+
9911
+ #~ msgctxt "admin menu"
9912
+ #~ msgid "Add New Listing"
9913
+ #~ msgstr "إضافة إعلان جديد"
9914
+
9915
+ #~ msgctxt "admin menu"
9916
+ #~ msgid "Listings"
9917
+ #~ msgstr "الإعلانات"
9918
+
9919
+ #~ msgctxt "admin menu"
9920
+ #~ msgid "Manage Options"
9921
+ #~ msgstr "إدارة الخيارات"
9922
+
9923
+ #~ msgctxt "settings"
9924
+ #~ msgid "Licenses"
9925
+ #~ msgstr "التراخيص"
9926
+
9927
  #, fuzzy
9928
  #~ msgctxt "admin listings"
9929
  #~ msgid "Paid"
languages/business-directory-plugin-de_DE.mo ADDED
Binary file
languages/{WPBDM-de_DE.po → business-directory-plugin-de_DE.po} RENAMED
@@ -5,7 +5,7 @@ msgstr ""
5
  "Project-Id-Version: Business Directory Plugin v5.7.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
7
  "directory-plugin\n"
8
- "POT-Creation-Date: 2020-06-17 20:29:07+00:00\n"
9
  "PO-Revision-Date: 2020-06-17 15:32-0500\n"
10
  "Last-Translator: Axel J. Metayer <axel@kfz.net>\n"
11
  "Language-Team: Business Directory Plugin <support@businessdirectoryplugin."
@@ -32,7 +32,7 @@ msgid "Listing Reports"
32
  msgstr "Ein Eintrag läuft aus."
33
 
34
  #: includes/admin/class-admin-listings.php:225
35
- #: includes/admin/class-listing-owner.php:87
36
  #, fuzzy
37
  msgid "Listing Owner"
38
  msgstr "Ein Eintrag läuft aus."
@@ -52,32 +52,33 @@ msgstr "Feld Attribute"
52
  msgid "Edit listing permalink"
53
  msgstr "Eintrag Bearbeiten"
54
 
55
- #: includes/admin/class-admin.php:182
 
56
  msgid ""
57
  "Preview is only available after you've saved the first draft. This is due\n"
58
- "to how WordPress stores the data."
59
  msgstr ""
60
  "Vorschau ist nur verfügbar, nachdem Sie den ersten Entwurf gespeichert "
61
  "haben.\n"
62
  "Dies liegt daran wie WordPress die Daten speichert."
63
 
64
- #: includes/admin/class-admin.php:377
65
  #, fuzzy
66
  msgid "Uninstall Business Directory Plugin"
67
  msgstr "Branchenverzeichnis deinstallieren"
68
 
69
- #: includes/admin/class-admin.php:378
70
  #, fuzzy
71
  msgid "Uninstall"
72
  msgstr "Deinstallieren"
73
 
74
- #: includes/admin/class-csv-import.php:633
75
  #, fuzzy
76
  msgid "Listing imported by admin. Payment skipped."
77
  msgstr "Eintrag zusenden (Initialbezahlung)"
78
 
79
- #: includes/admin/class-listing-owner.php:62
80
- #: includes/admin/class-listing-owner.php:89
81
  #, fuzzy
82
  msgid "Please select a user"
83
  msgstr "Bitte wähle eine Preisoption für die Kategorie \"%s\""
@@ -134,7 +135,7 @@ msgstr "Business Directory Plugin"
134
  msgid "Missing tables: %s"
135
  msgstr "Nicht vorhandene Tabellen: %s"
136
 
137
- #: includes/admin/settings/class-settings-bootstrap.php:1108
138
  msgid ""
139
  "If you are using this gateway, we recommend you disable it if you wish to "
140
  "collect payments in this currency."
@@ -220,31 +221,36 @@ msgid "Search Listings"
220
  msgstr "Einträge durchsuchen"
221
 
222
  #: includes/class-cpt-integration.php:24
 
 
 
 
 
223
  msgid "No listings found"
224
  msgstr "Keine Einträge gefunden"
225
 
226
- #: includes/class-cpt-integration.php:25
227
  msgid "No listings found in trash"
228
  msgstr "Keine Einträge im Papierkorb gefunden"
229
 
230
- #: includes/class-cpt-integration.php:41
231
  msgid "Directory Categories"
232
  msgstr "Verz. Kategorien"
233
 
234
- #: includes/class-cpt-integration.php:42
235
  msgid "Directory Category"
236
  msgstr "Verzeichnis Kategorie"
237
 
238
- #: includes/class-cpt-integration.php:53
239
  msgid "Directory Tags"
240
  msgstr "Verz. Tags"
241
 
242
- #: includes/class-cpt-integration.php:54
243
  msgid "Directory Tag"
244
  msgstr "Verzeichnis Tag"
245
 
246
  #. translators: %s: listing count
247
- #: includes/class-cpt-integration.php:235
248
  #, fuzzy
249
  msgid "%s listing updated."
250
  msgid_plural "%s listings updated."
@@ -252,14 +258,14 @@ msgstr[0] "Ein Eintrag wurde bearbeitet."
252
  msgstr[1] "Ein Eintrag wurde bearbeitet."
253
 
254
  #. translators: %s: listing count
255
- #: includes/class-cpt-integration.php:237
256
  msgid "%s listing not updated, somebody is editing it."
257
  msgid_plural "%s listings not updated, somebody is editing them."
258
  msgstr[0] ""
259
  msgstr[1] ""
260
 
261
  #. translators: %s: listing count
262
- #: includes/class-cpt-integration.php:239
263
  #, fuzzy
264
  msgid "%s listing permanently deleted."
265
  msgid_plural "%s listings permanently deleted."
@@ -267,7 +273,7 @@ msgstr[0] "Eintrag Enddatum"
267
  msgstr[1] "Eintrag Enddatum"
268
 
269
  #. translators: %s: listing count
270
- #: includes/class-cpt-integration.php:241
271
  #, fuzzy
272
  msgid "%s listing moved to the Trash."
273
  msgid_plural "%s listings moved to the Trash."
@@ -275,7 +281,7 @@ msgstr[0] "Keine Einträge im Papierkorb gefunden"
275
  msgstr[1] "Keine Einträge im Papierkorb gefunden"
276
 
277
  #. translators: %s: listing count
278
- #: includes/class-cpt-integration.php:243
279
  #, fuzzy
280
  msgid "%s listing restored from the Trash."
281
  msgid_plural "%s listings restored from the Trash."
@@ -358,13 +364,13 @@ msgstr "Postleitzahl"
358
  msgid "Free"
359
  msgstr "Kostenlos"
360
 
361
- #: includes/gateways/class-gateway-authorize-net.php:356
362
  msgid ""
363
  "An error occurred while trying to cancel your subscription. Please try again "
364
  "later or contact the site administrator."
365
  msgstr ""
366
 
367
- #: includes/gateways/class-gateway-authorize-net.php:360
368
  msgid ""
369
  "An error occurred while trying to cancel Authorize.net subscription with ID "
370
  "%s. You can try again later or cancel subscription from gateway dashboard."
@@ -383,15 +389,20 @@ msgstr ""
383
  msgid "The payment gateway \"<payment-gateway>\" is not available."
384
  msgstr ""
385
 
386
- #: includes/templates-ui.php:288
387
  msgid "Directory"
388
  msgstr "Verzeichnis"
389
 
390
- #: includes/templates-ui.php:297
391
  msgid "View All Listings"
392
  msgstr "Alle Einträge anschauen"
393
 
394
- #: includes/templates-ui.php:306
 
 
 
 
 
395
  msgid "Create A Listing"
396
  msgstr "Eintrag erstellen"
397
 
@@ -399,6 +410,17 @@ msgstr "Eintrag erstellen"
399
  msgid "l F j, Y \\a\\t g:i a"
400
  msgstr "l F j, Y \\a\\t g:i a"
401
 
 
 
 
 
 
 
 
 
 
 
 
402
  #: templates/admin/home.tpl.php:53
403
  #, fuzzy
404
  msgid "Manage Options"
@@ -455,10 +477,10 @@ msgstr "Standards zurücksetzen"
455
  msgid "← Return to Directory"
456
  msgstr "← Zurück zum Verzeichnis"
457
 
458
- #. Plugin URI of the plugin/theme
459
  #, fuzzy
460
- msgid "https://www.businessdirectoryplugin.com"
461
- msgstr "http://www.businessdirectoryplugin.com"
462
 
463
  #. Description of the plugin/theme
464
  msgid ""
@@ -469,13 +491,9 @@ msgstr ""
469
  "auf Ihrer WordPress Webseite zu betreiben."
470
 
471
  #. Author of the plugin/theme
472
- msgid "D. Rodenbaugh"
473
- msgstr "D. Rodenbaugh"
474
-
475
- #. Author URI of the plugin/theme
476
  #, fuzzy
477
- msgid "https://businessdirectoryplugin.com"
478
- msgstr "http://businessdirectoryplugin.com"
479
 
480
  #: includes/admin/class-admin-controller.php:79
481
  #, fuzzy
@@ -517,31 +535,31 @@ msgctxt "admin csv-import"
517
  msgid "Could not create listing category \"%s\""
518
  msgstr "Konnte Eintragskategorie nicht erstellen \"%s\""
519
 
520
- #: includes/admin/class-csv-import.php:684
521
  msgctxt "admin csv-import"
522
  msgid "Username \"%s\" does not exist"
523
  msgstr "Benutzername \"%s\" existiert nicht"
524
 
525
- #: includes/admin/class-csv-import.php:710
526
- msgctxt "admin csv-import"
527
- msgid "The string <string> couldn't be converted into a valid date."
528
- msgstr ""
529
-
530
- #: includes/admin/class-csv-import.php:732
531
  msgctxt "admin csv-import"
532
  msgid "There is no Fee Plan with ID = <fee-id>"
533
  msgstr ""
534
 
535
- #: includes/admin/class-csv-import.php:755
536
  msgctxt "admin csv-import"
537
  msgid "Missing required field: %s"
538
  msgstr "Benötigtes nicht vorhandenes Feld: %s"
539
 
540
- #: includes/admin/class-csv-import.php:780
541
  msgctxt "admin csv-import"
542
  msgid "Listing category \"%s\" does not exist"
543
  msgstr "Eintragskategorie \"%s\" existiert nicht"
544
 
 
 
 
 
 
545
  #: includes/admin/csv-import.php:130
546
  msgctxt "admin csv-import"
547
  msgid "Business %s"
@@ -1073,7 +1091,7 @@ msgctxt "admin listings"
1073
  msgid "Reported"
1074
  msgstr ""
1075
 
1076
- #: includes/admin/class-admin-listings.php:717
1077
  msgctxt "admin listings"
1078
  msgid "Listing's payment history successfully deleted"
1079
  msgstr ""
@@ -1124,29 +1142,29 @@ msgctxt "admin"
1124
  msgid "Categories"
1125
  msgstr "Kategorien"
1126
 
1127
- #: includes/admin/class-admin.php:243
1128
  msgctxt "admin"
1129
  msgid "Business Directory"
1130
  msgstr "Branchenverzeichnis"
1131
 
1132
- #: includes/admin/class-admin.php:254
1133
  msgctxt "admin"
1134
  msgid "You're all set. Visit your new <a>Business Directory</a> page."
1135
  msgstr ""
1136
  "Sie haben alles konfiguriert. Besuchen sie Ihr neues <a>Branchenverzeichnis</"
1137
  "a>."
1138
 
1139
- #: includes/admin/class-admin.php:407
1140
  msgctxt "admin"
1141
  msgid "Untitled Menu"
1142
  msgstr ""
1143
 
1144
- #: includes/admin/class-admin.php:677
1145
  msgctxt "admin"
1146
  msgid "Dismiss this notice."
1147
  msgstr "Diese Nachricht ignorieren."
1148
 
1149
- #: includes/admin/class-admin.php:708 includes/admin/class-admin.php:718
1150
  #, fuzzy
1151
  msgctxt "admin"
1152
  msgid "The listing has been updated."
@@ -1154,31 +1172,31 @@ msgid_plural "The listings have been updated."
1154
  msgstr[0] "Der Eintrag wurde aktualisiert"
1155
  msgstr[1] "Die Einträge wurden aktualisiert."
1156
 
1157
- #: includes/admin/class-admin.php:739
1158
  msgctxt "admin"
1159
  msgid "The fee was successfully assigned."
1160
  msgstr "Der Preis wurde erfolgreich zugewiesen."
1161
 
1162
- #: includes/admin/class-admin.php:749
1163
  msgctxt "admin"
1164
  msgid "Listing was renewed."
1165
  msgid_plural "Listings were renewed."
1166
  msgstr[0] "Eintrag wurde aktualisiert."
1167
  msgstr[1] "Einträge wurden aktualisiert."
1168
 
1169
- #: includes/admin/class-admin.php:760
1170
  msgctxt "admin"
1171
  msgid "Renewal email sent."
1172
  msgstr "E-mail erneut senden."
1173
 
1174
- #: includes/admin/class-admin.php:764
1175
  msgctxt "admin"
1176
  msgid ""
1177
  "Could not send renewal email, notice template at listing expiration not "
1178
  "found."
1179
  msgstr ""
1180
 
1181
- #: includes/admin/class-admin.php:771
1182
  #, fuzzy
1183
  msgctxt "admin"
1184
  msgid "Listing report deleted."
@@ -1186,23 +1204,23 @@ msgid_plural "Listing reports deleted."
1186
  msgstr[0] "Eintrag Enddatum"
1187
  msgstr[1] "Eintrag Enddatum"
1188
 
1189
- #: includes/admin/class-admin.php:819
1190
  #, fuzzy
1191
  msgctxt "admin"
1192
  msgid "Access keys sent."
1193
  msgstr "Eintrag Felder / Bilder"
1194
 
1195
- #: includes/admin/class-admin.php:821
1196
  msgctxt "admin"
1197
  msgid "The access keys couldn't be sent."
1198
  msgstr ""
1199
 
1200
- #: includes/admin/class-admin.php:887 includes/admin/class-admin.php:893
1201
  msgctxt "admin"
1202
  msgid "Listing Count"
1203
  msgstr "Anzahl Einträge"
1204
 
1205
- #: includes/admin/class-admin.php:955
1206
  msgctxt "admin"
1207
  msgid ""
1208
  "<b>Business Directory Plugin</b> requires a page with the "
@@ -1211,7 +1229,7 @@ msgstr ""
1211
  "<b>Branchenverzeichnis Erweiterung</b> benötigt eine Seite mit dem "
1212
  "<tt>[businessdirectory]</tt> shortcode um zu funktionieren."
1213
 
1214
- #: includes/admin/class-admin.php:957
1215
  msgctxt "admin"
1216
  msgid ""
1217
  "You can create this page by yourself or let Business Directory do this for "
@@ -1220,12 +1238,12 @@ msgstr ""
1220
  "Du kannst diese Seite selbst erstellen oder vom Branchenverzeichnis "
1221
  "automatisch erstellen lassen."
1222
 
1223
- #: includes/admin/class-admin.php:961
1224
  msgctxt "admin"
1225
  msgid "Create required pages for me"
1226
  msgstr "Erstelle benötigte Seiten für mich"
1227
 
1228
- #: includes/admin/class-admin.php:994
1229
  msgctxt "admin"
1230
  msgid ""
1231
  "<strong>Business Directory Plugin</strong> requires <strong>PHP 5.6</strong> "
@@ -1233,7 +1251,7 @@ msgid ""
1233
  "your provider to upgrade in order to prevent any issues with the plugin."
1234
  msgstr ""
1235
 
1236
- #: includes/admin/class-admin.php:1017
1237
  msgctxt "admin"
1238
  msgid ""
1239
  "We noticed you want your Business Directory users to register before posting "
@@ -1291,7 +1309,7 @@ msgstr ""
1291
  "Sie können diese benutzerdefinierten Felder selbst erzeugen \"Formularfelder "
1292
  "verwalten\" oder vom Branchenverzeichnis automatisch erstellen lassen."
1293
 
1294
- #: includes/admin/form-fields.php:214 includes/views/submit_listing.php:541
1295
  msgctxt "admin"
1296
  msgid "Go to \"Manage Form Fields\""
1297
  msgstr "zu \"Formularfelder verwalten\""
@@ -1311,7 +1329,7 @@ msgctxt "admin"
1311
  msgid "Abandoned"
1312
  msgstr "Abgebrochen"
1313
 
1314
- #: includes/views/submit_listing.php:524
1315
  #, fuzzy
1316
  msgctxt "admin"
1317
  msgid "Go to \"Manage Fees\""
@@ -1436,14 +1454,14 @@ msgctxt "admin actions"
1436
  msgid "Send access keys"
1437
  msgstr "Eintrag Felder / Bilder"
1438
 
1439
- #: includes/admin/class-admin.php:175
1440
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:75
1441
  #, fuzzy
1442
  msgctxt "listing metabox"
1443
  msgid "Never"
1444
  msgstr "niemals"
1445
 
1446
- #: includes/admin/class-admin.php:176
1447
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1448
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1449
  #, fuzzy
@@ -1451,7 +1469,7 @@ msgctxt "listing metabox"
1451
  msgid "Yes"
1452
  msgstr "Ja"
1453
 
1454
- #: includes/admin/class-admin.php:177
1455
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1456
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1457
  #, fuzzy
@@ -1585,7 +1603,7 @@ msgctxt "listing metabox"
1585
  msgid "Is Recurring?"
1586
  msgstr "(wiederkehrend)"
1587
 
1588
- #: includes/admin/class-admin.php:214
1589
  msgctxt "drip pointer"
1590
  msgid ""
1591
  "Find out how to create a compelling, thriving business directory from "
@@ -1596,108 +1614,84 @@ msgstr ""
1596
  "von Grund aufbauen mit diesem einfachen (und kostenlosen) 5-teiligen E-Mail-"
1597
  "Kurs. Sie erhalten ein kostenloses Premium-Modul nur für die Anmeldung."
1598
 
1599
- #: includes/admin/class-admin.php:216
1600
  msgctxt "drip pointer"
1601
  msgid "Email Address:"
1602
  msgstr "E-Mail Adresse:"
1603
 
1604
- #: includes/admin/class-admin.php:222
1605
  msgctxt "drip pointer"
1606
  msgid "Want to know the Secrets of Building an Awesome Business Directory?"
1607
  msgstr ""
1608
  "Möchten Sie mehr über die Geheimnisse eines erfolgreichen Verzeichnisses "
1609
  "wissen?"
1610
 
1611
- #: includes/admin/class-admin.php:224
1612
  msgctxt "drip pointer"
1613
  msgid "Yes, please!"
1614
  msgstr "Ja, bitte!"
1615
 
1616
- #: includes/admin/class-admin.php:226
1617
  msgctxt "drip pointer"
1618
  msgid "No, thanks"
1619
  msgstr "Nein, danke"
1620
 
1621
- #: includes/admin/class-admin.php:274
1622
  msgctxt "drip pointer"
1623
  msgid "Invalid e-mail address."
1624
  msgstr "Ungültiger Erneuerungszustand."
1625
 
1626
- #: includes/admin/class-admin.php:308
1627
- msgctxt "admin menu"
1628
- msgid "Business Directory Admin"
1629
- msgstr "Branchenverzeichnis Administration"
1630
-
1631
- #: includes/admin/class-admin.php:309
1632
- msgctxt "admin menu"
1633
- msgid "Dir. Admin"
1634
- msgstr "Verzeichnis Administration"
1635
-
1636
- #: includes/admin/class-admin.php:309
1637
- msgctxt "admin menu"
1638
- msgid "Directory Admin"
1639
- msgstr "Verzeichnis Administration"
1640
-
1641
- #: includes/admin/class-admin.php:316
1642
- msgctxt "admin menu"
1643
- msgid "Add New Listing"
1644
- msgstr "Neuer Eintrag"
1645
-
1646
- #: includes/admin/class-admin.php:324
1647
  msgctxt "admin menu"
1648
  msgid "Manage Fees"
1649
  msgstr "Preise Verwalten"
1650
 
1651
- #: includes/admin/class-admin.php:327
1652
- msgctxt "admin menu"
1653
- msgid "Listings"
1654
- msgstr "Einträge"
1655
-
1656
- #: includes/admin/class-admin.php:331
1657
  msgctxt "admin menu"
1658
  msgid "Manage Form Fields"
1659
  msgstr "Felder verwalten"
1660
 
1661
- #: includes/admin/class-admin.php:335
1662
  #, fuzzy
1663
  msgctxt "admin menu"
1664
  msgid "Payment History"
1665
  msgstr "Bezahlhistorie"
1666
 
1667
- #: includes/admin/class-admin.php:338
1668
  #, fuzzy
1669
  msgctxt "admin menu"
1670
- msgid "CSV Import & Export"
1671
  msgstr "CSV Import"
1672
 
1673
- #: includes/admin/class-admin.php:349
1674
  msgctxt "admin menu"
1675
  msgid "Debug"
1676
  msgstr "Fehlerkorrektur"
1677
 
1678
  #: includes/admin/settings/class-settings-admin.php:46
 
1679
  msgctxt "admin menu"
1680
- msgid "Manage Options"
1681
- msgstr "Optionen Verwalten"
1682
 
1683
- #: includes/admin/class-admin.php:885
1684
  msgctxt "admin category id"
1685
  msgid "ID"
1686
  msgstr "ID"
1687
 
1688
- #: includes/admin/class-csv-exporter.php:100
1689
  msgctxt "admin csv-export"
1690
  msgid "Could not create a temporary directory for handling this CSV export."
1691
  msgstr ""
1692
  "Es konnte kein temporäres Verzeichnis erstellt werden um den CSV Export "
1693
  "durchzuführen."
1694
 
1695
- #: includes/admin/class-csv-exporter.php:103
1696
  msgctxt "admin csv-export"
1697
  msgid "Could not create wpbdp-csv-exports directory."
1698
  msgstr "wpbdp-csv-exports Verzeichnis konnte nicht erstellt werden."
1699
 
1700
- #: includes/admin/class-csv-exporter.php:108
1701
  msgctxt "admin csv-export"
1702
  msgid "Error while creating a temporary directory for CSV export: %s"
1703
  msgstr ""
@@ -1709,17 +1703,6 @@ msgctxt "admin csv-export"
1709
  msgid "Could not decode export state information."
1710
  msgstr ""
1711
 
1712
- #: templates/admin/csv-export.tpl.php:5
1713
- msgctxt "admin csv-export"
1714
- msgid ""
1715
- "An unknown error occurred during the export. Please make sure you have "
1716
- "enough free disk space and memory available to PHP. Check your error logs "
1717
- "for details."
1718
- msgstr ""
1719
- "Ein unvorhergesehener Fehler ist während des Exports aufgetreten. Bitte "
1720
- "stelle sicher, dass du genügend Speicherplatz für PHP vorhanden ist. Schaue "
1721
- "ins Fehlerprotokoll."
1722
-
1723
  #: templates/admin/csv-export.tpl.php:14
1724
  msgctxt "admin csv-export"
1725
  msgid ""
@@ -1733,47 +1716,47 @@ msgstr ""
1733
  "Erweiterungen abzuschalten und/oder den Wert von 'memory_limit' und "
1734
  "'max_execution_time' in deiner php.ini Konfigurationsdatei anzupassen."
1735
 
1736
- #: templates/admin/csv-export.tpl.php:26
1737
  msgctxt "admin csv-export"
1738
  msgid "Export Configuration"
1739
  msgstr "Export Konfiguration"
1740
 
1741
- #: templates/admin/csv-export.tpl.php:29
1742
  msgctxt "admin csv-export"
1743
  msgid "Export settings"
1744
  msgstr "Export Einstellungen"
1745
 
1746
- #: templates/admin/csv-export.tpl.php:33
1747
  msgctxt "admin csv-export"
1748
  msgid "Which listings to export?"
1749
  msgstr "Welche Einträge sollen exportiert werden?"
1750
 
1751
- #: templates/admin/csv-export.tpl.php:37
1752
  msgctxt "admin csv-export"
1753
  msgid "All"
1754
  msgstr "Alle"
1755
 
1756
- #: templates/admin/csv-export.tpl.php:38
1757
  msgctxt "admin csv-export"
1758
  msgid "Active Only"
1759
  msgstr "Nur Aktiv"
1760
 
1761
- #: templates/admin/csv-export.tpl.php:39
1762
  msgctxt "admin csv-export"
1763
  msgid "Active + Pending Renewal"
1764
  msgstr "Aktiv + Ausstehende Erneuerungen"
1765
 
1766
- #: templates/admin/csv-export.tpl.php:45
1767
  msgctxt "admin csv-export"
1768
  msgid "Export images?"
1769
  msgstr "Bilder exportieren?"
1770
 
1771
- #: templates/admin/csv-export.tpl.php:50
1772
  msgctxt "admin csv-export"
1773
  msgid "Export images"
1774
  msgstr "Bilder exportieren"
1775
 
1776
- #: templates/admin/csv-export.tpl.php:52
1777
  msgctxt "admin csv-export"
1778
  msgid ""
1779
  "When checked, instead of just a CSV file a ZIP file will be generated with "
@@ -1782,17 +1765,17 @@ msgstr ""
1782
  "Wenn aktiviert, wird anstatt nur einer CSV-Datei, eine ZIP Datei generiert, "
1783
  "die sowohl eine CSV-Datei und Eintragsbilder enthält."
1784
 
1785
- #: templates/admin/csv-export.tpl.php:58
1786
  msgctxt "admin csv-export"
1787
  msgid "Additional metadata to export:"
1788
  msgstr "zu exportierende zusätzliche Metadaten"
1789
 
1790
- #: templates/admin/csv-export.tpl.php:63
1791
  msgctxt "admin csv-export"
1792
  msgid "Include unique IDs for each listing (sequence_id column)."
1793
  msgstr "Füge Schlüssel Ids für jeden Eintrag hinzu (sequence_id_column)"
1794
 
1795
- #: templates/admin/csv-export.tpl.php:65
1796
  msgctxt "admin csv-export"
1797
  msgid ""
1798
  "If you plan to re-import the listings into BD and don't want new ones "
@@ -1801,49 +1784,55 @@ msgstr ""
1801
  "Wenn Sie vorhaben die Einträge in BD erneut zu importieren und keine neuen "
1802
  "erstellen wollen, wählen Sie diese Option!"
1803
 
1804
- #: templates/admin/csv-export.tpl.php:71
1805
  msgctxt "admin csv-export"
1806
  msgid "Author information (username)"
1807
  msgstr "Author Informationen (Benutzername)"
1808
 
1809
- #: templates/admin/csv-export.tpl.php:76
1810
  msgctxt "admin csv-export"
1811
  msgid "Listing expiration date"
1812
  msgstr "Eintrag Enddatum"
1813
 
1814
- #: templates/admin/csv-export.tpl.php:80
1815
  #, fuzzy
1816
  msgctxt "admin csv-export"
1817
  msgid "Listing created date"
1818
  msgstr "Eintrag Bilder"
1819
 
1820
- #: templates/admin/csv-export.tpl.php:84
1821
  #, fuzzy
1822
  msgctxt "admin csv-export"
1823
  msgid "Listing last updated date"
1824
  msgstr "Eintrag Enddatum"
1825
 
1826
- #: templates/admin/csv-export.tpl.php:89
 
 
 
 
 
 
1827
  msgctxt "admin csv-export"
1828
  msgid "CSV File Settings"
1829
  msgstr "CSV-Datei Einstellungen"
1830
 
1831
- #: templates/admin/csv-export.tpl.php:93
1832
  msgctxt "admin csv-export"
1833
  msgid "What operating system will you use to edit the CSV file?"
1834
  msgstr "Welches Betriebssystem verwenden Sie, um die CSV-Datei zu bearbeiten?"
1835
 
1836
- #: templates/admin/csv-export.tpl.php:100
1837
  msgctxt "admin csv-export"
1838
  msgid "Windows"
1839
  msgstr "Windows"
1840
 
1841
- #: templates/admin/csv-export.tpl.php:105
1842
  msgctxt "admin csv-export"
1843
  msgid "macOS"
1844
  msgstr "MacOS"
1845
 
1846
- #: templates/admin/csv-export.tpl.php:107
1847
  msgctxt "admin csv-export"
1848
  msgid ""
1849
  "Windows and macOS versions of MS Excel handle CSV files differently. To make "
@@ -1857,27 +1846,27 @@ msgstr ""
1857
  "müssen wir für jedes Betriebssystem unterschiedliche Versionen der Datei "
1858
  "generieren."
1859
 
1860
- #: templates/admin/csv-export.tpl.php:112
1861
  msgctxt "admin csv-export"
1862
  msgid "Image Separator"
1863
  msgstr "Bildtrenner"
1864
 
1865
- #: templates/admin/csv-export.tpl.php:123
1866
  msgctxt "admin csv-export"
1867
  msgid "Category Separator"
1868
  msgstr "Kategorietrenner"
1869
 
1870
- #: templates/admin/csv-export.tpl.php:135
1871
  msgctxt "admin csv-export"
1872
  msgid "Export Listings"
1873
  msgstr "Export Einträge"
1874
 
1875
- #: templates/admin/csv-export.tpl.php:141
1876
  msgctxt "admin csv-export"
1877
  msgid "Export in Progress..."
1878
  msgstr "Export wird durchgeführt..."
1879
 
1880
- #: templates/admin/csv-export.tpl.php:142
1881
  msgctxt "admin csv-export"
1882
  msgid ""
1883
  "Your export file is being prepared. Please <u>do not leave</u> this page "
@@ -1886,27 +1875,27 @@ msgstr ""
1886
  "Die Exportdatei wurde vorbereitet. Bitte <u>verlasse</u> diese Seite nicht "
1887
  "bis der Export abgeschlossen wurde."
1888
 
1889
- #: templates/admin/csv-export.tpl.php:145
1890
  msgctxt "admin csv-export"
1891
  msgid "No. of listings:"
1892
  msgstr "Anzahl der Einträge:"
1893
 
1894
- #: templates/admin/csv-export.tpl.php:147
1895
  msgctxt "admin csv-export"
1896
  msgid "Approximate export file size:"
1897
  msgstr "Exportdatei Größe ca. :"
1898
 
1899
- #: templates/admin/csv-export.tpl.php:154
1900
  msgctxt "admin csv-export"
1901
  msgid "Cancel Export"
1902
  msgstr "Export abbrechen"
1903
 
1904
- #: templates/admin/csv-export.tpl.php:159
1905
  msgctxt "admin csv-export"
1906
  msgid "Export Complete"
1907
  msgstr "Export vollständig"
1908
 
1909
- #: templates/admin/csv-export.tpl.php:160
1910
  msgctxt "admin csv-export"
1911
  msgid ""
1912
  "Your export file has been successfully created and it is now ready for "
@@ -1915,12 +1904,13 @@ msgstr ""
1915
  "Der Export wurde erfolgreich generiert und steht nun zum Herunterladen zur "
1916
  "Verfügung."
1917
 
1918
- #: templates/admin/csv-export.tpl.php:163
 
1919
  msgctxt "admin csv-export"
1920
- msgid "Download %s (%s)"
1921
  msgstr "Herunterladen %s (%s)"
1922
 
1923
- #: templates/admin/csv-export.tpl.php:169
1924
  msgctxt "admin csv-export"
1925
  msgid ""
1926
  "Click \"Cleanup\" once the file has been downloaded in order to remove all "
@@ -1929,22 +1919,22 @@ msgstr ""
1929
  "Klicke \"Bereinigen\" wenn die Datei heruntergeladen wurde um alle "
1930
  "temporären Daten zu löschen, die während des Exportprozesses erzeugt wurden."
1931
 
1932
- #: templates/admin/csv-export.tpl.php:170
1933
  msgctxt "admin csv-export"
1934
  msgid "Cleanup"
1935
  msgstr "Bereinigen"
1936
 
1937
- #: templates/admin/csv-export.tpl.php:175
1938
  msgctxt "admin csv-export"
1939
  msgid "Export Canceled"
1940
  msgstr "Export abgebrochen"
1941
 
1942
- #: templates/admin/csv-export.tpl.php:176
1943
  msgctxt "admin csv-export"
1944
  msgid "The export has been canceled."
1945
  msgstr "Der Export wurde abgebrochen."
1946
 
1947
- #: templates/admin/csv-export.tpl.php:177
1948
  msgctxt "admin csv-export"
1949
  msgid "← Return to CSV Export"
1950
  msgstr "← Zurück nach CSV Export"
@@ -3405,36 +3395,41 @@ msgctxt "admin fees table"
3405
  msgid "Disabled"
3406
  msgstr "Inaktiv"
3407
 
3408
- #: includes/admin/helpers/class-listing-timeline.php:102
3409
  #, fuzzy
3410
  msgctxt "listing timeline"
3411
  msgid "Listing created"
3412
  msgstr "Eintrag Bilder"
3413
 
3414
- #: includes/admin/helpers/class-listing-timeline.php:107
3415
  #, fuzzy
3416
  msgctxt "listing timeline"
3417
  msgid "Listing expired"
3418
  msgstr "Ein Eintrag läuft aus."
3419
 
3420
- #: includes/admin/helpers/class-listing-timeline.php:112
3421
  #, fuzzy
3422
  msgctxt "listing timeline"
3423
  msgid "Listing renewed"
3424
  msgstr "Eintrag wurde aktualisiert."
3425
 
3426
- #: includes/admin/helpers/class-listing-timeline.php:127
 
 
 
 
 
3427
  msgctxt "listing timeline"
3428
  msgid "Paid as admin"
3429
  msgstr ""
3430
 
3431
- #: includes/admin/helpers/class-listing-timeline.php:129
3432
  #, fuzzy
3433
  msgctxt "listing timeline"
3434
  msgid "Listing imported"
3435
  msgstr "Ein Eintrag läuft aus."
3436
 
3437
- #: includes/admin/helpers/class-listing-timeline.php:131
3438
  #, fuzzy
3439
  msgctxt "listing timeline"
3440
  msgid "Initial Payment"
@@ -3685,7 +3680,7 @@ msgctxt "admin settings"
3685
  msgid "Valid placeholders: %s"
3686
  msgstr "Gültige Platzhalter: %s"
3687
 
3688
- #: includes/admin/settings/class-settings-bootstrap.php:96
3689
  msgctxt "admin settings"
3690
  msgid ""
3691
  "<strong>IMPORTANT:</strong> subpages of the main directory page cannot be "
@@ -3821,13 +3816,13 @@ msgid "Author"
3821
  msgstr "Author"
3822
 
3823
  #: includes/admin/settings/class-settings-bootstrap.php:724
3824
- #: includes/functions.php:1194
3825
  msgctxt "admin settings"
3826
  msgid "Date posted"
3827
  msgstr "Datum gepostet"
3828
 
3829
  #: includes/admin/settings/class-settings-bootstrap.php:725
3830
- #: includes/functions.php:1195
3831
  msgctxt "admin settings"
3832
  msgid "Date last modified"
3833
  msgstr "Datum zuletzt verändert"
@@ -3857,22 +3852,22 @@ msgctxt "admin settings"
3857
  msgid "Fee Plan Custom Order, then Title"
3858
  msgstr ""
3859
 
3860
- #: includes/admin/settings/class-settings-bootstrap.php:815
3861
  msgctxt "admin settings"
3862
  msgid "You can manage your themes on <a>Directory Themes</a>."
3863
  msgstr ""
3864
 
3865
- #: includes/admin/settings/class-settings-bootstrap.php:824
3866
  msgctxt "admin settings"
3867
  msgid "Use the BD theme style for BD buttons"
3868
  msgstr ""
3869
 
3870
- #: includes/admin/settings/class-settings-bootstrap.php:825
3871
  msgctxt "admin settings"
3872
  msgid "Use the WP theme style for BD buttons"
3873
  msgstr ""
3874
 
3875
- #: includes/admin/settings/class-settings-bootstrap.php:983
3876
  msgctxt "admin settings"
3877
  msgid ""
3878
  "For paid listing images, configure that by adding or editing a <a>Fee Plan</"
@@ -3882,171 +3877,171 @@ msgstr ""
3882
  "erstellen eines <a>Preisplan</a> an Stelle dieser Einstellungen, die von "
3883
  "bezahlten Einträgen ignoriert wird."
3884
 
3885
- #: includes/admin/settings/class-settings-bootstrap.php:994
3886
- #: includes/admin/settings/class-settings-bootstrap.php:1048
3887
  #, fuzzy
3888
  msgctxt "admin settings"
3889
  msgid "Excerpt view."
3890
  msgstr "Im Textauszug"
3891
 
3892
- #: includes/admin/settings/class-settings-bootstrap.php:995
3893
- #: includes/admin/settings/class-settings-bootstrap.php:1049
3894
  #, fuzzy
3895
  msgctxt "admin settings"
3896
  msgid "Detail view."
3897
  msgstr "Verzeichnis"
3898
 
3899
- #: includes/admin/settings/class-settings-bootstrap.php:1106
3900
  msgctxt "admin settings"
3901
- msgid "AED currency is not supported by %s. %s"
3902
  msgstr ""
3903
 
3904
- #: includes/admin/settings/class-settings-bootstrap.php:1124
3905
  msgctxt "admin settings"
3906
  msgid "Australian Dollar (AUD)"
3907
  msgstr "Australischer Dollar (AUD)"
3908
 
3909
- #: includes/admin/settings/class-settings-bootstrap.php:1125
3910
  msgctxt "admin settings"
3911
  msgid "Brazilian Real (BRL)"
3912
  msgstr "Brasilianischer Real (BRL)"
3913
 
3914
- #: includes/admin/settings/class-settings-bootstrap.php:1126
3915
  msgctxt "admin settings"
3916
  msgid "Canadian Dollar (CAD)"
3917
  msgstr "Kanadischer Dollar (CAD)"
3918
 
3919
- #: includes/admin/settings/class-settings-bootstrap.php:1127
3920
  msgctxt "admin settings"
3921
  msgid "Czech Koruna (CZK)"
3922
  msgstr "Tschechische Koruna (CZK)"
3923
 
3924
- #: includes/admin/settings/class-settings-bootstrap.php:1128
3925
  msgctxt "admin settings"
3926
  msgid "Danish Krone (DKK)"
3927
  msgstr "Dänische Krone (DKK)"
3928
 
3929
- #: includes/admin/settings/class-settings-bootstrap.php:1129
3930
  msgctxt "admin settings"
3931
  msgid "United Arab Emirates Dirham (AED)"
3932
  msgstr ""
3933
 
3934
- #: includes/admin/settings/class-settings-bootstrap.php:1130
3935
  msgctxt "admin settings"
3936
  msgid "Euro (EUR)"
3937
  msgstr "Euro (EUR)"
3938
 
3939
- #: includes/admin/settings/class-settings-bootstrap.php:1131
3940
  msgctxt "admin settings"
3941
  msgid "Hong Kong Dollar (HKD)"
3942
  msgstr "Hong Kong Dollar (HKD)"
3943
 
3944
- #: includes/admin/settings/class-settings-bootstrap.php:1132
3945
  msgctxt "admin settings"
3946
  msgid "Hungarian Forint (HUF)"
3947
  msgstr "Ungarischer Forint (HUF)"
3948
 
3949
- #: includes/admin/settings/class-settings-bootstrap.php:1133
3950
  msgctxt "admin settings"
3951
  msgid "Israeli New Shequel (ILS)"
3952
  msgstr "Israelischer Neuer Schequel (ILS)"
3953
 
3954
- #: includes/admin/settings/class-settings-bootstrap.php:1134
3955
  msgctxt "admin settings"
3956
  msgid "Japanese Yen (JPY)"
3957
  msgstr "Japanischer Jen (JPY)"
3958
 
3959
- #: includes/admin/settings/class-settings-bootstrap.php:1135
3960
  msgctxt "admin settings"
3961
  msgid "Moroccan Dirham (MAD)"
3962
  msgstr ""
3963
 
3964
- #: includes/admin/settings/class-settings-bootstrap.php:1136
3965
  msgctxt "admin settings"
3966
  msgid "Malasian Ringgit (MYR)"
3967
  msgstr "Malaysischer Ringgit (MYR)"
3968
 
3969
- #: includes/admin/settings/class-settings-bootstrap.php:1137
3970
  msgctxt "admin settings"
3971
  msgid "Mexican Peso (MXN)"
3972
  msgstr "Mexikanischer Peso (MXN)"
3973
 
3974
- #: includes/admin/settings/class-settings-bootstrap.php:1138
3975
  msgctxt "admin settings"
3976
  msgid "Norwegian Krone (NOK)"
3977
  msgstr "Norwegische Krone (NOK)"
3978
 
3979
- #: includes/admin/settings/class-settings-bootstrap.php:1139
3980
  msgctxt "admin settings"
3981
  msgid "New Zealand Dollar (NZD)"
3982
  msgstr "Neuseeland Dollar (NZD)"
3983
 
3984
- #: includes/admin/settings/class-settings-bootstrap.php:1140
3985
  msgctxt "admin settings"
3986
  msgid "Philippine Peso (PHP)"
3987
  msgstr "Philippinischer Peso (PHP)"
3988
 
3989
- #: includes/admin/settings/class-settings-bootstrap.php:1141
3990
  msgctxt "admin settings"
3991
  msgid "Polish Zloty (PLN)"
3992
  msgstr "Polnischer Zloty (PLN)"
3993
 
3994
- #: includes/admin/settings/class-settings-bootstrap.php:1142
3995
  msgctxt "admin settings"
3996
  msgid "Pound Sterling (GBP)"
3997
  msgstr "Pfund Sterling (GBP)"
3998
 
3999
- #: includes/admin/settings/class-settings-bootstrap.php:1143
4000
  msgctxt "admin settings"
4001
  msgid "Singapore Dollar (SGD)"
4002
  msgstr "Singapore Dollar (SGD)"
4003
 
4004
- #: includes/admin/settings/class-settings-bootstrap.php:1144
4005
  msgctxt "admin settings"
4006
  msgid "Swedish Krona (SEK)"
4007
  msgstr "Schwedische Krone (SEK)"
4008
 
4009
- #: includes/admin/settings/class-settings-bootstrap.php:1145
4010
  msgctxt "admin settings"
4011
  msgid "Swiss Franc (CHF)"
4012
  msgstr "Schweizer Franken (CHF)"
4013
 
4014
- #: includes/admin/settings/class-settings-bootstrap.php:1146
4015
  msgctxt "admin settings"
4016
  msgid "Taiwan Dollar (TWD)"
4017
  msgstr "Taiwanischer Dollar (TWD)"
4018
 
4019
- #: includes/admin/settings/class-settings-bootstrap.php:1147
4020
  msgctxt "admin settings"
4021
  msgid "Thai Baht (THB)"
4022
  msgstr "Thailändischer Baht (THB)"
4023
 
4024
- #: includes/admin/settings/class-settings-bootstrap.php:1148
4025
  msgctxt "admin settings"
4026
  msgid "Turkish Lira (TRY)"
4027
  msgstr "Türkische Lira (TRY)"
4028
 
4029
- #: includes/admin/settings/class-settings-bootstrap.php:1149
4030
  msgctxt "admin settings"
4031
  msgid "U.S. Dollar (USD)"
4032
  msgstr "U.S. Dollar"
4033
 
4034
- #: includes/admin/settings/class-settings-bootstrap.php:1173
4035
  msgctxt "admin settings"
4036
  msgid "Show currency symbol on the left"
4037
  msgstr "Währungssymbol links anzeigen"
4038
 
4039
- #: includes/admin/settings/class-settings-bootstrap.php:1174
4040
  msgctxt "admin settings"
4041
  msgid "Show currency symbol on the right"
4042
  msgstr "Währungssymbol rechts anzeigen"
4043
 
4044
- #: includes/admin/settings/class-settings-bootstrap.php:1175
4045
  msgctxt "admin settings"
4046
  msgid "Do not show currency symbol"
4047
  msgstr "Währungssymbol nicht anzeigen"
4048
 
4049
- #: includes/admin/settings/class-settings-bootstrap.php:1196
4050
  msgctxt "admin settings"
4051
  msgid ""
4052
  "Thank you for your payment. Your payment is being verified and your listing "
@@ -4056,130 +4051,130 @@ msgstr ""
4056
  "geprüft. Die Verifizierung und die Prüfung können 48 Stunden in Anspruch "
4057
  "nehmen."
4058
 
4059
- #: includes/admin/settings/class-settings-bootstrap.php:1217
4060
  msgctxt "admin settings"
4061
  msgid ""
4062
  "Listings with pending payments are marked as abandoned after this time. You "
4063
  "can also <a>customize the e-mail</a> users receive."
4064
  msgstr ""
4065
 
4066
- #: includes/admin/settings/class-settings-bootstrap.php:1247
4067
  msgctxt "admin settings"
4068
  msgid "Try listing's email field first, then author's email."
4069
  msgstr "Versuchen Sie das E-Mail-Feld zuerst, dann die E-Mail des Autors."
4070
 
4071
- #: includes/admin/settings/class-settings-bootstrap.php:1248
4072
  msgctxt "admin settings"
4073
  msgid "Try author's email first and then listing's email field."
4074
  msgstr ""
4075
  "Probieren sie erst die E-Mail des Authors und dann die E-Mail des Felds."
4076
 
4077
- #: includes/admin/settings/class-settings-bootstrap.php:1261
4078
  msgctxt "admin settings"
4079
  msgid "Plain (text/plain)"
4080
  msgstr ""
4081
 
4082
- #: includes/admin/settings/class-settings-bootstrap.php:1262
4083
  msgctxt "admin settings"
4084
  msgid "HTML (text/html)"
4085
  msgstr ""
4086
 
4087
- #: includes/admin/settings/class-settings-bootstrap.php:1263
4088
  msgctxt "admin settings"
4089
  msgid "Both (multipart/alternative)"
4090
  msgstr ""
4091
 
4092
- #: includes/admin/settings/class-settings-bootstrap.php:1277
4093
  msgctxt "admin settings"
4094
  msgid "A new listing is submitted."
4095
  msgstr "Ein neuer Eintrag wurde übermittelt."
4096
 
4097
- #: includes/admin/settings/class-settings-bootstrap.php:1278
4098
  msgctxt "admin settings"
4099
  msgid "A listing is edited."
4100
  msgstr "Ein Eintrag wurde bearbeitet."
4101
 
4102
- #: includes/admin/settings/class-settings-bootstrap.php:1279
4103
  msgctxt "admin settings"
4104
  msgid "A listing expires."
4105
  msgstr "Ein Eintrag läuft aus."
4106
 
4107
- #: includes/admin/settings/class-settings-bootstrap.php:1280
4108
  #, fuzzy
4109
  msgctxt "admin settings"
4110
  msgid "A listing is renewed."
4111
  msgstr "Ein Eintrag wurde bearbeitet."
4112
 
4113
- #: includes/admin/settings/class-settings-bootstrap.php:1281
4114
  #, fuzzy
4115
  msgctxt "admin settings"
4116
  msgid "A listing payment is completed."
4117
  msgstr "Ein Eintrag wurde bearbeitet."
4118
 
4119
- #: includes/admin/settings/class-settings-bootstrap.php:1282
4120
  #, fuzzy
4121
  msgctxt "admin settings"
4122
  msgid "A listing has been reported as inappropriate."
4123
  msgstr "Der Eintrag wurde aktualisiert"
4124
 
4125
- #: includes/admin/settings/class-settings-bootstrap.php:1283
4126
  msgctxt "admin settings"
4127
  msgid "A contact message is sent to a listing's owner."
4128
  msgstr "Eine Nachricht wurde an einen Eintrags-Eigentümer versendet."
4129
 
4130
- #: includes/admin/settings/class-settings-bootstrap.php:1309
4131
  msgctxt "admin settings"
4132
  msgid "Their listing is submitted."
4133
  msgstr "Ihr Eintrag ist eingereicht."
4134
 
4135
- #: includes/admin/settings/class-settings-bootstrap.php:1310
4136
  msgctxt "admin settings"
4137
  msgid "Their listing is approved/published."
4138
  msgstr "Ihr Eintrag ist genehmigt/veröffentlicht."
4139
 
4140
- #: includes/admin/settings/class-settings-bootstrap.php:1311
4141
  #, fuzzy
4142
  msgctxt "admin settings"
4143
  msgid "A payment for their listing is completed."
4144
  msgstr "Ihr Eintrag ist eingereicht."
4145
 
4146
- #: includes/admin/settings/class-settings-bootstrap.php:1312
4147
  #, fuzzy
4148
  msgctxt "admin settings"
4149
  msgid "Their listing expired or is about to expire."
4150
  msgstr "Ihr Eintrag ist eingereicht."
4151
 
4152
- #: includes/admin/settings/class-settings-bootstrap.php:1329
4153
- #: includes/admin/settings/class-settings-bootstrap.php:1348
4154
- #: includes/admin/settings/class-settings-bootstrap.php:1373
4155
- #: includes/admin/settings/class-settings-bootstrap.php:1408
4156
- #: includes/admin/settings/class-settings-bootstrap.php:1444
4157
  msgctxt "admin settings"
4158
  msgid "Listing's title"
4159
  msgstr "Eintrag Titel"
4160
 
4161
- #: includes/admin/settings/class-settings-bootstrap.php:1330
4162
- #: includes/admin/settings/class-settings-bootstrap.php:1409
4163
  #, fuzzy
4164
  msgctxt "admin settings"
4165
  msgid "Listing's fee plan name"
4166
  msgstr "Eintrag Enddatum"
4167
 
4168
- #: includes/admin/settings/class-settings-bootstrap.php:1331
4169
- #: includes/admin/settings/class-settings-bootstrap.php:1410
4170
  #, fuzzy
4171
  msgctxt "admin settings"
4172
  msgid "Listing's fee plan description"
4173
  msgstr "Auswahl der Preispakete"
4174
 
4175
- #: includes/admin/settings/class-settings-bootstrap.php:1332
4176
- #: includes/admin/settings/class-settings-bootstrap.php:1411
4177
  #, fuzzy
4178
  msgctxt "admin settings"
4179
  msgid "Listing's fee plan details"
4180
  msgstr "Eintrag Enddatum"
4181
 
4182
- #: includes/admin/settings/class-settings-bootstrap.php:1345
4183
  msgctxt "admin settings"
4184
  msgid ""
4185
  "Your listing \"[listing]\" is now available at [listing-url] and can be "
@@ -4188,97 +4183,97 @@ msgstr ""
4188
  "Dein Eintrag \"[listing]\" ist jetzt verfügbar unter [listing-url] und "
4189
  "kann öffentlich eingesehen werden."
4190
 
4191
- #: includes/admin/settings/class-settings-bootstrap.php:1349
4192
- #: includes/admin/settings/class-settings-bootstrap.php:1372
4193
  msgctxt "admin settings"
4194
  msgid "Listing's URL"
4195
  msgstr "Eintrags URL"
4196
 
4197
- #: includes/admin/settings/class-settings-bootstrap.php:1350
4198
- #: includes/admin/settings/class-settings-bootstrap.php:1378
4199
  #, fuzzy
4200
  msgctxt "admin settings"
4201
  msgid "Listing's Access Key"
4202
  msgstr "Eintrag Felder / Bilder"
4203
 
4204
- #: includes/admin/settings/class-settings-bootstrap.php:1374
4205
  #, fuzzy
4206
  msgctxt "admin settings"
4207
  msgid "Sender's name"
4208
  msgstr "Authorname"
4209
 
4210
- #: includes/admin/settings/class-settings-bootstrap.php:1375
4211
  #, fuzzy
4212
  msgctxt "admin settings"
4213
  msgid "Sender's e-mail address"
4214
  msgstr "Ungültiger Erneuerungszustand."
4215
 
4216
- #: includes/admin/settings/class-settings-bootstrap.php:1376
4217
  #, fuzzy
4218
  msgctxt "admin settings"
4219
  msgid "Contact message"
4220
  msgstr "Neue Eintrag Anweisungen"
4221
 
4222
- #: includes/admin/settings/class-settings-bootstrap.php:1377
4223
  msgctxt "admin settings"
4224
  msgid "Date and time the message was sent"
4225
  msgstr ""
4226
 
4227
- #: includes/admin/settings/class-settings-bootstrap.php:1412
4228
  #, fuzzy
4229
  msgctxt "admin settings"
4230
  msgid "Payment items details."
4231
  msgstr "Bezahldetails"
4232
 
4233
- #: includes/admin/settings/class-settings-bootstrap.php:1413
4234
  msgctxt "admin settings"
4235
  msgid "URL where user can review and print payment receipt."
4236
  msgstr ""
4237
 
4238
- #: includes/admin/settings/class-settings-bootstrap.php:1414
4239
  #, fuzzy
4240
  msgctxt "admin settings"
4241
  msgid "Gateway used to process listing's payment."
4242
  msgstr "Bezahlung ausführen"
4243
 
4244
- #: includes/admin/settings/class-settings-bootstrap.php:1445
4245
  msgctxt "admin settings"
4246
  msgid "Checkout URL link"
4247
  msgstr "Kasse"
4248
 
4249
- #: includes/admin/settings/class-settings-bootstrap.php:1581
4250
  msgctxt "admin settings"
4251
  msgid ""
4252
  "Could not remove the \"Business Directory Plugin - AJAX Compatibility Module"
4253
  "\". Please remove the file \"%s\" manually or deactivate the plugin."
4254
  msgstr ""
4255
 
4256
- #: includes/admin/settings/class-settings-bootstrap.php:1597
4257
  msgctxt "admin settings"
4258
  msgid ""
4259
  "Could not activate AJAX Compatibility mode: the directory \"%s\" could not "
4260
  "be created."
4261
  msgstr ""
4262
 
4263
- #: includes/admin/settings/class-settings-bootstrap.php:1602
4264
  msgctxt "admin settings"
4265
  msgid ""
4266
  "Could not copy the AJAX compatibility plugin \"%s\". Compatibility mode was "
4267
  "not activated."
4268
  msgstr ""
4269
 
4270
- #: includes/admin/settings/class-settings-bootstrap.php:1632
4271
  #, fuzzy
4272
  msgctxt "admin settings"
4273
  msgid "Uploaded Image (no resize)"
4274
  msgstr "Dateien hochladen"
4275
 
4276
- #: includes/functions.php:1192
4277
  msgctxt "admin settings"
4278
  msgid "User"
4279
  msgstr "Benutzer"
4280
 
4281
- #: includes/functions.php:1193
4282
  msgctxt "admin settings"
4283
  msgid "User registration date"
4284
  msgstr "Eintrag Enddatum"
@@ -4521,7 +4516,7 @@ msgid "General"
4521
  msgstr "Allgemein"
4522
 
4523
  #: includes/admin/settings/class-settings-bootstrap.php:27
4524
- #: includes/admin/settings/class-settings-bootstrap.php:965
4525
  #, fuzzy
4526
  msgctxt "settings"
4527
  msgid "Listings"
@@ -4531,9 +4526,9 @@ msgstr "Einträge"
4531
  #: includes/admin/settings/class-settings-bootstrap.php:31
4532
  #: includes/admin/settings/class-settings-bootstrap.php:34
4533
  #: includes/admin/settings/class-settings-bootstrap.php:37
4534
- #: includes/admin/settings/class-settings-bootstrap.php:52
4535
- #: includes/admin/settings/class-settings-bootstrap.php:1228
4536
- #: includes/admin/settings/class-settings.php:354
4537
  #, fuzzy
4538
  msgctxt "settings"
4539
  msgid "General Settings"
@@ -4556,31 +4551,31 @@ msgctxt "settings"
4556
  msgid "Appearance"
4557
  msgstr ""
4558
 
4559
- #: includes/admin/settings/class-settings-bootstrap.php:40
4560
  #: includes/licensing.php:104
4561
  msgctxt "settings"
4562
  msgid "Premium Modules"
4563
  msgstr "Premium Module"
4564
 
4565
- #: includes/admin/settings/class-settings-bootstrap.php:55
4566
  #, fuzzy
4567
  msgctxt "settings"
4568
  msgid "Permalink Settings"
4569
  msgstr "Permalink Einstellungen"
4570
 
4571
- #: includes/admin/settings/class-settings-bootstrap.php:60
4572
  #, fuzzy
4573
  msgctxt "settings"
4574
  msgid "Directory Listings Slug"
4575
  msgstr "Verzeichniseintrag Entwurf"
4576
 
4577
- #: includes/admin/settings/class-settings-bootstrap.php:70
4578
  #, fuzzy
4579
  msgctxt "settings"
4580
  msgid "Categories Slug"
4581
  msgstr "Kategorie Entwurf"
4582
 
4583
- #: includes/admin/settings/class-settings-bootstrap.php:71
4584
  #, fuzzy
4585
  msgctxt "settings"
4586
  msgid ""
@@ -4589,13 +4584,13 @@ msgstr ""
4589
  "Der Entwurf kann nicht von anderen Ausdrücken verwendet werden. Meide "
4590
  "\"Kategorie\" für diese Instanz."
4591
 
4592
- #: includes/admin/settings/class-settings-bootstrap.php:82
4593
  #, fuzzy
4594
  msgctxt "settings"
4595
  msgid "Tags Slug"
4596
  msgstr "Tags Entwurf"
4597
 
4598
- #: includes/admin/settings/class-settings-bootstrap.php:83
4599
  #, fuzzy
4600
  msgctxt "settings"
4601
  msgid "The slug can't be in use by another term. Avoid \"tag\", for instance."
@@ -4603,18 +4598,18 @@ msgstr ""
4603
  "Der Entwurf kann nicht von anderen Ausdrücken verwendet werden. Meide \"tag"
4604
  "\" für diese Instanz."
4605
 
4606
- #: includes/admin/settings/class-settings-bootstrap.php:94
4607
  #, fuzzy
4608
  msgctxt "settings"
4609
  msgid "Remove listing ID from directory URLs?"
4610
  msgstr "Entferne Eintrag ID von diesen Verzeichnis URLs?"
4611
 
4612
- #: includes/admin/settings/class-settings-bootstrap.php:95
4613
  msgctxt "settings"
4614
  msgid "Check this setting to remove the ID for better SEO."
4615
  msgstr ""
4616
 
4617
- #: includes/admin/settings/class-settings-bootstrap.php:96
4618
  #, fuzzy
4619
  msgctxt "settings"
4620
  msgid ""
@@ -4626,78 +4621,78 @@ msgstr ""
4626
  "die ID aus der URL zu entfernen um einen SEO und Benutzerfreundlichkeits-"
4627
  "Mehrwert zu erhalten."
4628
 
4629
- #: includes/admin/settings/class-settings-bootstrap.php:104
4630
  #, fuzzy
4631
  msgctxt "settings"
4632
  msgid "reCAPTCHA"
4633
  msgstr "reCAPTCHA Einstellungen"
4634
 
4635
- #: includes/admin/settings/class-settings-bootstrap.php:107
4636
  #, fuzzy
4637
  msgctxt "settings"
4638
  msgid "Need API keys for reCAPTCHA? Get them <a>here</a>."
4639
  msgstr "Brauchst du API Schlüssel für reCAPTCHA? <a>Hier</a> bekommst du sie."
4640
 
4641
- #: includes/admin/settings/class-settings-bootstrap.php:114
4642
  #, fuzzy
4643
  msgctxt "settings"
4644
  msgid "Use reCAPTCHA for contact forms"
4645
  msgstr "Benutze reCAPTCHA für Kontaktformen"
4646
 
4647
- #: includes/admin/settings/class-settings-bootstrap.php:122
4648
  #, fuzzy
4649
  msgctxt "settings"
4650
  msgid "Turn off reCAPTCHA for logged in users?"
4651
  msgstr "reCAPTCHA für angemeldete Benutzern ausschalten?"
4652
 
4653
- #: includes/admin/settings/class-settings-bootstrap.php:130
4654
  #, fuzzy
4655
  msgctxt "settings"
4656
  msgid "Use reCAPTCHA for listing submits"
4657
  msgstr "Benutze reCAPTCHA für Eintragzusendungen"
4658
 
4659
- #: includes/admin/settings/class-settings-bootstrap.php:138
4660
  #, fuzzy
4661
  msgctxt "settings"
4662
  msgid "Use reCAPTCHA for edit listings"
4663
  msgstr "Benutze reCAPTCHA für Eintragkommentare?"
4664
 
4665
- #: includes/admin/settings/class-settings-bootstrap.php:146
4666
  #, fuzzy
4667
  msgctxt "settings"
4668
  msgid "Use reCAPTCHA for report listings"
4669
  msgstr "Benutze reCAPTCHA für Eintragkommentare?"
4670
 
4671
- #: includes/admin/settings/class-settings-bootstrap.php:154
4672
  #, fuzzy
4673
  msgctxt "settings"
4674
  msgid "Use reCAPTCHA for listing comments?"
4675
  msgstr "Benutze reCAPTCHA für Eintragkommentare?"
4676
 
4677
- #: includes/admin/settings/class-settings-bootstrap.php:162
4678
  #, fuzzy
4679
  msgctxt "settings"
4680
  msgid "reCAPTCHA Public Key"
4681
  msgstr "reCAPTCHA öffentlicher Schlüssel"
4682
 
4683
- #: includes/admin/settings/class-settings-bootstrap.php:171
4684
  #, fuzzy
4685
  msgctxt "settings"
4686
  msgid "reCAPTCHA Private Key"
4687
  msgstr "reCAPTCHA privater Schlüssel"
4688
 
4689
- #: includes/admin/settings/class-settings-bootstrap.php:180
4690
  #, fuzzy
4691
  msgctxt "settings"
4692
  msgid "reCAPTCHA version"
4693
  msgstr "reCAPTCHA Einstellungen"
4694
 
4695
- #: includes/admin/settings/class-settings-bootstrap.php:193
4696
  msgctxt "settings"
4697
  msgid "reCAPTCHA V3 threshold score"
4698
  msgstr ""
4699
 
4700
- #: includes/admin/settings/class-settings-bootstrap.php:198
4701
  msgctxt "settings"
4702
  msgid ""
4703
  "reCAPTCHA v3 returns a score (1.0 is very likely a good interaction, 0.0 is "
@@ -4706,13 +4701,13 @@ msgid ""
4706
  "this value will result in reCAPTCHA validation error."
4707
  msgstr ""
4708
 
4709
- #: includes/admin/settings/class-settings-bootstrap.php:203
4710
  #, fuzzy
4711
  msgctxt "settings"
4712
  msgid "Registration"
4713
  msgstr "Registrierung"
4714
 
4715
- #: includes/admin/settings/class-settings-bootstrap.php:203
4716
  msgctxt "settings"
4717
  msgid ""
4718
  "We expect that a membership plugin supports the 'redirect_to' parameter for "
@@ -4721,24 +4716,24 @@ msgid ""
4721
  "them to support the WP standard 'redirect_to' query parameter."
4722
  msgstr ""
4723
 
4724
- #: includes/admin/settings/class-settings-bootstrap.php:208
4725
  #, fuzzy
4726
  msgctxt "settings"
4727
  msgid "Require login to post listings?"
4728
  msgstr "Zurück zum Eintrag."
4729
 
4730
- #: includes/admin/settings/class-settings-bootstrap.php:217
4731
  msgctxt "settings"
4732
  msgid "Allow anonymous users to edit/manage listings with an access key?"
4733
  msgstr ""
4734
 
4735
- #: includes/admin/settings/class-settings-bootstrap.php:225
4736
  #, fuzzy
4737
  msgctxt "settings"
4738
  msgid "Login URL"
4739
  msgstr "Login"
4740
 
4741
- #: includes/admin/settings/class-settings-bootstrap.php:226
4742
  #, fuzzy
4743
  msgctxt "settings"
4744
  msgid "Only enter this if using a membership plugin or custom login page."
@@ -4747,18 +4742,18 @@ msgstr ""
4747
  "ein Membership Plugin oder eine benutzerdefinierte Registrierungseite "
4748
  "benutzt. "
4749
 
4750
- #: includes/admin/settings/class-settings-bootstrap.php:227
4751
  msgctxt "settings"
4752
  msgid "URL of your membership plugin's login page."
4753
  msgstr ""
4754
 
4755
- #: includes/admin/settings/class-settings-bootstrap.php:236
4756
  #, fuzzy
4757
  msgctxt "settings"
4758
  msgid "Registration URL"
4759
  msgstr "Registrierungs URL"
4760
 
4761
- #: includes/admin/settings/class-settings-bootstrap.php:237
4762
  #, fuzzy
4763
  msgctxt "settings"
4764
  msgid ""
@@ -4768,41 +4763,41 @@ msgstr ""
4768
  "ein Membership Plugin oder eine benutzerdefinierte Registrierungseite "
4769
  "benutzt. "
4770
 
4771
- #: includes/admin/settings/class-settings-bootstrap.php:238
4772
  msgctxt "settings"
4773
  msgid "URL of your membership plugin's registration page."
4774
  msgstr ""
4775
 
4776
- #: includes/admin/settings/class-settings-bootstrap.php:247
4777
  msgctxt "settings"
4778
  msgid "Allow users to create accounts during listing submit?"
4779
  msgstr ""
4780
 
4781
- #: includes/admin/settings/class-settings-bootstrap.php:250
4782
  #, fuzzy
4783
  msgctxt "settings"
4784
  msgid "No"
4785
  msgstr "Nein"
4786
 
4787
- #: includes/admin/settings/class-settings-bootstrap.php:251
4788
  msgctxt "settings"
4789
  msgid "Yes, and make it optional"
4790
  msgstr ""
4791
 
4792
- #: includes/admin/settings/class-settings-bootstrap.php:252
4793
  #, fuzzy
4794
  msgctxt "settings"
4795
  msgid "Yes, and make it required"
4796
  msgstr "%s ist ein Pflichtfeld."
4797
 
4798
- #: includes/admin/settings/class-settings-bootstrap.php:259
4799
- #: includes/admin/settings/class-settings-bootstrap.php:272
4800
  #, fuzzy
4801
  msgctxt "settings"
4802
  msgid "Terms and Conditions"
4803
  msgstr "Bedingungen und Konditionen"
4804
 
4805
- #: includes/admin/settings/class-settings-bootstrap.php:264
4806
  #, fuzzy
4807
  msgctxt "settings"
4808
  msgid "Display and require user agreement to Terms and Conditions"
@@ -4810,7 +4805,7 @@ msgstr ""
4810
  "Zeige und setze Benutzervereinbarung als Pflichtfeld in Bedingungen und "
4811
  "Konditionen"
4812
 
4813
- #: includes/admin/settings/class-settings-bootstrap.php:273
4814
  #, fuzzy
4815
  msgctxt "settings"
4816
  msgid ""
@@ -4821,7 +4816,7 @@ msgstr ""
4821
  "werden Bedingungen und Konditionen ersetzt durch einen Link der "
4822
  "dazugehörigen Seite."
4823
 
4824
- #: includes/admin/settings/class-settings-bootstrap.php:275
4825
  #, fuzzy
4826
  msgctxt "settings"
4827
  msgid "Terms and Conditions text goes here."
@@ -5259,87 +5254,93 @@ msgstr "\"Einträge anschauen\" Schaltfläche anzeigen"
5259
  #: includes/admin/settings/class-settings-bootstrap.php:808
5260
  #, fuzzy
5261
  msgctxt "settings"
 
 
 
 
 
 
5262
  msgid "Show the \"Directory\" button."
5263
  msgstr "\"Verzeichnis\" Schaltfläche anzeigen"
5264
 
5265
- #: includes/admin/settings/class-settings-bootstrap.php:815
5266
  #, fuzzy
5267
  msgctxt "settings"
5268
  msgid "Theme Settings"
5269
  msgstr "Bildeinstellungen"
5270
 
5271
- #: includes/admin/settings/class-settings-bootstrap.php:821
5272
  msgctxt "settings"
5273
  msgid "Theme button style"
5274
  msgstr ""
5275
 
5276
- #: includes/admin/settings/class-settings-bootstrap.php:834
5277
  msgctxt "settings"
5278
  msgid ""
5279
  "Include CSS rules to give their own style to View, Edit and Delete buttons?"
5280
  msgstr ""
5281
 
5282
- #: includes/admin/settings/class-settings-bootstrap.php:841
5283
  #, fuzzy
5284
  msgctxt "settings"
5285
  msgid "Image"
5286
  msgstr "Bild"
5287
 
5288
- #: includes/admin/settings/class-settings-bootstrap.php:842
5289
  #, fuzzy
5290
  msgctxt "settings"
5291
  msgid "Image Settings"
5292
  msgstr "Bildeinstellungen"
5293
 
5294
- #: includes/admin/settings/class-settings-bootstrap.php:847
5295
  #, fuzzy
5296
  msgctxt "settings"
5297
  msgid "Allow images?"
5298
  msgstr "Bilder erlauben?"
5299
 
5300
- #: includes/admin/settings/class-settings-bootstrap.php:858
5301
  #, fuzzy
5302
  msgctxt "settings"
5303
  msgid "Min Image File Size (KB)"
5304
  msgstr "Maximale Bildgröße (KB)"
5305
 
5306
- #: includes/admin/settings/class-settings-bootstrap.php:869
5307
  #, fuzzy
5308
  msgctxt "settings"
5309
  msgid "Max Image File Size (KB)"
5310
  msgstr "Maximale Bildgröße (KB)"
5311
 
5312
- #: includes/admin/settings/class-settings-bootstrap.php:880
5313
  #, fuzzy
5314
  msgctxt "settings"
5315
  msgid "Min image width (px)"
5316
  msgstr "Bildergröße (in px):"
5317
 
5318
- #: includes/admin/settings/class-settings-bootstrap.php:889
5319
  #, fuzzy
5320
  msgctxt "settings"
5321
  msgid "Min image height (px)"
5322
  msgstr "Bilderhöhe (in px):"
5323
 
5324
- #: includes/admin/settings/class-settings-bootstrap.php:902
5325
  #, fuzzy
5326
  msgctxt "settings"
5327
  msgid "Max image width (px)"
5328
  msgstr "Maximale Bildbreite"
5329
 
5330
- #: includes/admin/settings/class-settings-bootstrap.php:913
5331
  #, fuzzy
5332
  msgctxt "settings"
5333
  msgid "Max image height (px)"
5334
  msgstr "Maximale Bildhöhe"
5335
 
5336
- #: includes/admin/settings/class-settings-bootstrap.php:924
5337
  #, fuzzy
5338
  msgctxt "settings"
5339
  msgid "Turn on thickbox/lightbox?"
5340
  msgstr "Kontrollkästchen/Leuchtkasten aktivieren?"
5341
 
5342
- #: includes/admin/settings/class-settings-bootstrap.php:925
5343
  #, fuzzy
5344
  msgctxt "settings"
5345
  msgid ""
@@ -5348,31 +5349,31 @@ msgstr ""
5348
  "Deaktivieren wenn Konflikte mit anderen Elementen oder installierten "
5349
  "Erweiterungen entstehen"
5350
 
5351
- #: includes/admin/settings/class-settings-bootstrap.php:931
5352
  #, fuzzy
5353
  msgctxt "settings"
5354
  msgid "Thumbnails"
5355
  msgstr "Thumbnails"
5356
 
5357
- #: includes/admin/settings/class-settings-bootstrap.php:938
5358
  #, fuzzy
5359
  msgctxt "settings"
5360
  msgid "Thumbnail width (px)"
5361
  msgstr "Thumbnailbreite"
5362
 
5363
- #: includes/admin/settings/class-settings-bootstrap.php:949
5364
  #, fuzzy
5365
  msgctxt "settings"
5366
  msgid "Thumbnail height (px)"
5367
  msgstr "Thumbnailbreite"
5368
 
5369
- #: includes/admin/settings/class-settings-bootstrap.php:958
5370
  #, fuzzy
5371
  msgctxt "settings"
5372
  msgid "Crop thumbnails to exact dimensions?"
5373
  msgstr "Vorschaubild auf die exakte Maße abschneiden?"
5374
 
5375
- #: includes/admin/settings/class-settings-bootstrap.php:959
5376
  #, fuzzy
5377
  msgctxt "settings"
5378
  msgid ""
@@ -5388,29 +5389,29 @@ msgstr ""
5388
  "Abhängig von den hochgeladenen Bildern können Thumbnails unterschiedliche "
5389
  "Höhen haben."
5390
 
5391
- #: includes/admin/settings/class-settings-bootstrap.php:970
5392
  msgctxt "settings"
5393
  msgid "Enforce image upload on submit/edit?"
5394
  msgstr ""
5395
 
5396
- #: includes/admin/settings/class-settings-bootstrap.php:979
5397
  #, fuzzy
5398
  msgctxt "settings"
5399
  msgid "Number of free images"
5400
  msgstr "Nummer der freien Bilder"
5401
 
5402
- #: includes/admin/settings/class-settings-bootstrap.php:991
5403
  msgctxt "settings"
5404
  msgid "Use \"Coming Soon\" photo for listings without any (primary) images?"
5405
  msgstr ""
5406
 
5407
- #: includes/admin/settings/class-settings-bootstrap.php:1004
5408
  #, fuzzy
5409
  msgctxt "settings"
5410
  msgid "Default thumbnail image size"
5411
  msgstr "Voreingestellter-Nutzer"
5412
 
5413
- #: includes/admin/settings/class-settings-bootstrap.php:1007
5414
  msgctxt "settings"
5415
  msgid ""
5416
  "This indicates the size of the thumbnail to be used both in excerpt and "
@@ -5419,66 +5420,66 @@ msgid ""
5419
  "width as the starting point."
5420
  msgstr ""
5421
 
5422
- #: includes/admin/settings/class-settings-bootstrap.php:1015
5423
  #, fuzzy
5424
  msgctxt "settings"
5425
  msgid "Show Thumbnail on main listings page?"
5426
  msgstr "Thumbnail auf der Eintragshauptseite anzeigen?"
5427
 
5428
- #: includes/admin/settings/class-settings-bootstrap.php:1024
5429
  #, fuzzy
5430
  msgctxt "settings"
5431
  msgid "Featured Badge image"
5432
  msgstr "Featured Levels Module"
5433
 
5434
- #: includes/admin/settings/class-settings-bootstrap.php:1033
5435
  #, fuzzy
5436
  msgctxt "settings"
5437
  msgid "Featured Badge URL"
5438
  msgstr "Featured Levels Module"
5439
 
5440
- #: includes/admin/settings/class-settings-bootstrap.php:1034
5441
  msgctxt "settings"
5442
  msgid "Use this to set Featured Badge image as a link to a defined URL."
5443
  msgstr ""
5444
 
5445
- #: includes/admin/settings/class-settings-bootstrap.php:1035
5446
  #, fuzzy
5447
  msgctxt "settings"
5448
  msgid "URL"
5449
  msgstr "URL"
5450
 
5451
- #: includes/admin/settings/class-settings-bootstrap.php:1044
5452
  msgctxt "settings"
5453
  msgid "Display featured (sticky) badge on listing:"
5454
  msgstr ""
5455
 
5456
- #: includes/admin/settings/class-settings-bootstrap.php:1061
5457
  #, fuzzy
5458
  msgctxt "settings"
5459
  msgid "Fee Order"
5460
  msgstr "Auftrag"
5461
 
5462
- #: includes/admin/settings/class-settings-bootstrap.php:1074
5463
  #, fuzzy
5464
  msgctxt "settings"
5465
  msgid "Turn On payments?"
5466
  msgstr "Bezahlungen aktivieren?"
5467
 
5468
- #: includes/admin/settings/class-settings-bootstrap.php:1083
5469
  #, fuzzy
5470
  msgctxt "settings"
5471
  msgid "Put payment gateways in test mode?"
5472
  msgstr "Bezahlungsgateway im Testmodus ausführen?"
5473
 
5474
- #: includes/admin/settings/class-settings-bootstrap.php:1093
5475
  #, fuzzy
5476
  msgctxt "settings"
5477
  msgid "Perform checkouts on the secure (HTTPS) version of your site?"
5478
  msgstr ""
5479
  "Aktiviere (HTTPS) sichere Verbindung für den Bestellprozess deiner Seite?"
5480
 
5481
- #: includes/admin/settings/class-settings-bootstrap.php:1094
5482
  #, fuzzy
5483
  msgctxt "settings"
5484
  msgid ""
@@ -5488,41 +5489,41 @@ msgstr ""
5488
  "Empfohlen zur Erweiterung der Sicherheit. Aktiviere HTTPS auf deinem Server "
5489
  "und <a>erhalte ein SSL Zertifikat</a>"
5490
 
5491
- #: includes/admin/settings/class-settings-bootstrap.php:1121
5492
  #, fuzzy
5493
  msgctxt "settings"
5494
  msgid "Currency Code"
5495
  msgstr "Währungsschlüssel"
5496
 
5497
- #: includes/admin/settings/class-settings-bootstrap.php:1160
5498
  #, fuzzy
5499
  msgctxt "settings"
5500
  msgid "Currency Symbol"
5501
  msgstr "Währungssymbol"
5502
 
5503
- #: includes/admin/settings/class-settings-bootstrap.php:1170
5504
  #, fuzzy
5505
  msgctxt "settings"
5506
  msgid "Currency symbol display"
5507
  msgstr "Währungssymbol Anzeige"
5508
 
5509
- #: includes/admin/settings/class-settings-bootstrap.php:1185
5510
  msgctxt "settings"
5511
  msgid "Include fee description in receipt?"
5512
  msgstr ""
5513
 
5514
- #: includes/admin/settings/class-settings-bootstrap.php:1195
5515
  #, fuzzy
5516
  msgctxt "settings"
5517
  msgid "Thank you for payment message"
5518
  msgstr "Danke für die Bezahlung Nachricht"
5519
 
5520
- #: includes/admin/settings/class-settings-bootstrap.php:1205
5521
  msgctxt "settings"
5522
  msgid "Ask users to come back for abandoned payments?"
5523
  msgstr ""
5524
 
5525
- #: includes/admin/settings/class-settings-bootstrap.php:1206
5526
  msgctxt "settings"
5527
  msgid ""
5528
  "An abandoned payment is when a user attempts to place a listing and gets to "
@@ -5531,19 +5532,19 @@ msgid ""
5531
  "the transaction. BD can remind them to come back and continue."
5532
  msgstr ""
5533
 
5534
- #: includes/admin/settings/class-settings-bootstrap.php:1216
5535
  #, fuzzy
5536
  msgctxt "settings"
5537
  msgid "Listing abandonment threshold (hours)"
5538
  msgstr "Eintragsabbuchungsemail Grenze (in tagen)"
5539
 
5540
- #: includes/admin/settings/class-settings-bootstrap.php:1233
5541
  #, fuzzy
5542
  msgctxt "settings"
5543
  msgid "Display email address fields publicly?"
5544
  msgstr "E-mail Adressfeld öffentlich anzeigen?"
5545
 
5546
- #: includes/admin/settings/class-settings-bootstrap.php:1234
5547
  #, fuzzy
5548
  msgctxt "settings"
5549
  msgid ""
@@ -5553,13 +5554,13 @@ msgid ""
5553
  msgstr ""
5554
  "E-mailadresse allen Benutzern anzeigen. NICHT ZU EMPFEHLEN. Achtung Spam!"
5555
 
5556
- #: includes/admin/settings/class-settings-bootstrap.php:1243
5557
  #, fuzzy
5558
  msgctxt "settings"
5559
  msgid "How to determine the listing's email address?"
5560
  msgstr "Wie legt man die E-mailadresse für einen Eintrag fest?"
5561
 
5562
- #: includes/admin/settings/class-settings-bootstrap.php:1244
5563
  #, fuzzy
5564
  msgctxt "settings"
5565
  msgid ""
@@ -5569,12 +5570,12 @@ msgstr ""
5569
  "Dies bewirkt, dass eine E-mail an den Eigentümer geschickt wird, wenn der "
5570
  "Eintrag abläuft."
5571
 
5572
- #: includes/admin/settings/class-settings-bootstrap.php:1257
5573
  msgctxt "settings"
5574
  msgid "Email Content-Type header"
5575
  msgstr ""
5576
 
5577
- #: includes/admin/settings/class-settings-bootstrap.php:1258
5578
  msgctxt "settings"
5579
  msgid ""
5580
  "Use this setting to control the format of the emails explicitly. Some "
@@ -5583,25 +5584,25 @@ msgid ""
5583
  "then \"Both\"."
5584
  msgstr ""
5585
 
5586
- #: includes/admin/settings/class-settings-bootstrap.php:1269
5587
  #, fuzzy
5588
  msgctxt "settings"
5589
  msgid "E-Mail Notifications"
5590
  msgstr "Email Erinnerung"
5591
 
5592
- #: includes/admin/settings/class-settings-bootstrap.php:1274
5593
  #, fuzzy
5594
  msgctxt "settings"
5595
  msgid "Notify admin via e-mail when..."
5596
  msgstr "Administrator per E-mail informieren wenn... "
5597
 
5598
- #: includes/admin/settings/class-settings-bootstrap.php:1292
5599
  #, fuzzy
5600
  msgctxt "settings"
5601
  msgid "CC this e-mail address too"
5602
  msgstr "CC diese E-mail an"
5603
 
5604
- #: includes/admin/settings/class-settings-bootstrap.php:1298
5605
  #, fuzzy
5606
  msgctxt "settings"
5607
  msgid ""
@@ -5611,37 +5612,37 @@ msgstr ""
5611
  "Du kannst dieses Texttemplate verändern, das für die meisten der E-"
5612
  "mailadressen unten verwendet wird."
5613
 
5614
- #: includes/admin/settings/class-settings-bootstrap.php:1305
5615
  #, fuzzy
5616
  msgctxt "settings"
5617
  msgid "Notify users via e-mail when..."
5618
  msgstr "Benachrichtige Benutzer per E-mail wenn..."
5619
 
5620
- #: includes/admin/settings/class-settings-bootstrap.php:1317
5621
  #, fuzzy
5622
  msgctxt "settings"
5623
  msgid "Templates"
5624
  msgstr "E-mail Templates"
5625
 
5626
- #: includes/admin/settings/class-settings-bootstrap.php:1322
5627
  #, fuzzy
5628
  msgctxt "settings"
5629
  msgid "Email confirmation message"
5630
  msgstr "Email Bestätigungsnachricht"
5631
 
5632
- #: includes/admin/settings/class-settings-bootstrap.php:1323
5633
  #, fuzzy
5634
  msgctxt "settings"
5635
  msgid "Sent after a listing has been submitted."
5636
  msgstr "Senden nachdem der Eintrag eingestellt wurde."
5637
 
5638
- #: includes/admin/settings/class-settings-bootstrap.php:1341
5639
  #, fuzzy
5640
  msgctxt "settings"
5641
  msgid "Listing published message"
5642
  msgstr "Eintrag veröffentlicht Nachricht"
5643
 
5644
- #: includes/admin/settings/class-settings-bootstrap.php:1342
5645
  #, fuzzy
5646
  msgctxt "settings"
5647
  msgid "Sent when the listing has been published or approved by an admin."
@@ -5649,13 +5650,13 @@ msgstr ""
5649
  "Senden wenn der Eintrag vom Administrator genehmigt oder veröffentlicht "
5650
  "wurde."
5651
 
5652
- #: includes/admin/settings/class-settings-bootstrap.php:1359
5653
  #, fuzzy
5654
  msgctxt "settings"
5655
  msgid "Listing Contact Message"
5656
  msgstr "Neue Eintrag Anweisungen"
5657
 
5658
- #: includes/admin/settings/class-settings-bootstrap.php:1360
5659
  #, fuzzy
5660
  msgctxt "settings"
5661
  msgid ""
@@ -5665,46 +5666,46 @@ msgstr ""
5665
  "An den Eigentümer senden wenn jemand die Kontaktform auf Ihrer Eintragsseite "
5666
  "verwendet."
5667
 
5668
- #: includes/admin/settings/class-settings-bootstrap.php:1388
5669
  #, fuzzy
5670
  msgctxt "settings"
5671
  msgid "Payment completed message"
5672
  msgstr "Erneuerungserinnerung E-mail Nachricht"
5673
 
5674
- #: includes/admin/settings/class-settings-bootstrap.php:1389
5675
  msgctxt "settings"
5676
  msgid "Sent after a Listing's payment is verified by Gateway or admins."
5677
  msgstr ""
5678
 
5679
- #: includes/admin/settings/class-settings-bootstrap.php:1424
5680
  #, fuzzy
5681
  msgctxt "settings"
5682
  msgid "Payment abandoned reminder message"
5683
  msgstr "Erneuerungserinnerung E-mail Nachricht"
5684
 
5685
- #: includes/admin/settings/class-settings-bootstrap.php:1425
5686
  msgctxt "settings"
5687
  msgid "Sent some time after a pending payment is abandoned by users."
5688
  msgstr ""
5689
 
5690
- #: includes/admin/settings/class-settings-bootstrap.php:1462
5691
  #, fuzzy
5692
  msgctxt "settings"
5693
  msgid "E-Mail Notices"
5694
  msgstr "Email Erinnerung"
5695
 
5696
- #: includes/admin/settings/class-settings-bootstrap.php:1653
5697
  msgctxt "settings"
5698
  msgid "Cropped"
5699
  msgstr ""
5700
 
5701
- #: includes/admin/settings/class-settings.php:556
5702
- #: includes/admin/settings/class-settings.php:567
5703
  msgctxt "settings"
5704
  msgid "\"%s\" can not be empty."
5705
  msgstr ""
5706
 
5707
- #: includes/admin/settings/class-settings.php:574
5708
  msgctxt "settings"
5709
  msgid "The slug \"%s\" is already in use for another taxonomy."
5710
  msgstr ""
@@ -5740,11 +5741,6 @@ msgctxt "settings"
5740
  msgid "Deactivate"
5741
  msgstr "Aktiviere Lizenz"
5742
 
5743
- #: includes/licensing.php:223 includes/licensing.php:224
5744
- msgctxt "settings"
5745
- msgid "Licenses"
5746
- msgstr "Lizenz"
5747
-
5748
  #: templates/admin/settings-page.tpl.php:7
5749
  msgctxt "settings"
5750
  msgid "Reset Defaults"
@@ -5779,27 +5775,27 @@ msgctxt "post status"
5779
  msgid "Pending"
5780
  msgstr "Ausstehend"
5781
 
5782
- #: includes/admin/settings/class-settings-bootstrap.php:1364
5783
  msgctxt "contact email"
5784
  msgid "You have received a reply from your listing at %s."
5785
  msgstr "Sie haben eine Antwort auf Ihren Eintrag erhalten am %s."
5786
 
5787
- #: includes/admin/settings/class-settings-bootstrap.php:1365
5788
  msgctxt "contact email"
5789
  msgid "Name: %s"
5790
  msgstr "Name: %s"
5791
 
5792
- #: includes/admin/settings/class-settings-bootstrap.php:1366
5793
  msgctxt "contact email"
5794
  msgid "E-Mail: %s"
5795
  msgstr "E-mail: %s"
5796
 
5797
- #: includes/admin/settings/class-settings-bootstrap.php:1367
5798
  msgctxt "contact email"
5799
  msgid "Message:"
5800
  msgstr "Nachricht:"
5801
 
5802
- #: includes/admin/settings/class-settings-bootstrap.php:1369
5803
  msgctxt "contact email"
5804
  msgid "Time: %s"
5805
  msgstr "Zeit: %s"
@@ -5965,7 +5961,7 @@ msgctxt "installer"
5965
  msgid "Listing upgrade to featured"
5966
  msgstr "Eintrag aktualisieren auf Hervorhebung"
5967
 
5968
- #: includes/installer.php:79
5969
  msgctxt "installer"
5970
  msgid "Default Fee"
5971
  msgstr "Standard Preis"
@@ -6470,113 +6466,113 @@ msgstr ""
6470
  "Bezahleinstellungen zu ändern. Das Verzeichnis wird im <i>kostenlosen Modus</"
6471
  "i> ausgeführt, bis die Änderungen gemacht wurden."
6472
 
6473
- #: includes/class-payment.php:82
6474
  msgctxt "payment"
6475
  msgid "Payment status changed from \"%1$s\" to \"%2$s\"."
6476
  msgstr ""
6477
 
6478
- #: includes/class-payment.php:123
6479
  #, fuzzy
6480
  msgctxt "payment"
6481
  msgid "Initial payment (\"%s\")"
6482
  msgstr "Initialbezahlung"
6483
 
6484
- #: includes/class-payment.php:126
6485
  #, fuzzy
6486
  msgctxt "payment"
6487
  msgid "Renewal payment (\"%s\")"
6488
  msgstr "Bezahlung zurückweisen"
6489
 
6490
- #: includes/class-payment.php:313
6491
  #, fuzzy
6492
  msgctxt "payment"
6493
  msgid "Pending"
6494
  msgstr "Ausstehend"
6495
 
6496
- #: includes/class-payment.php:314
6497
  msgctxt "payment"
6498
  msgid "Failed"
6499
  msgstr ""
6500
 
6501
- #: includes/class-payment.php:315
6502
  #, fuzzy
6503
  msgctxt "payment"
6504
  msgid "Completed"
6505
  msgstr "Abgeschlossen"
6506
 
6507
- #: includes/class-payment.php:316
6508
  #, fuzzy
6509
  msgctxt "payment"
6510
  msgid "Canceled"
6511
  msgstr "Abgebrochen"
6512
 
6513
- #: includes/class-payment.php:317
6514
  msgctxt "payment"
6515
  msgid "On Hold"
6516
  msgstr ""
6517
 
6518
- #: includes/class-payment.php:318
6519
  msgctxt "payment"
6520
  msgid "Refunded"
6521
  msgstr ""
6522
 
6523
- #: includes/class-payment.php:138
6524
  msgctxt "payment summary"
6525
  msgid "%s. Admin Posted."
6526
  msgstr ""
6527
 
6528
- #: includes/class-payment.php:140
6529
  #, fuzzy
6530
  msgctxt "payment summary"
6531
  msgid "%s. Imported Listing."
6532
  msgstr "Einträge importieren"
6533
 
6534
- #: includes/class-payment.php:218
6535
  #, fuzzy
6536
  msgctxt "submit listing"
6537
  msgid "Listing submitted by admin. Payment skipped."
6538
  msgstr "Eintrag zusenden (Initialbezahlung)"
6539
 
6540
- #: includes/views/submit_listing.php:63
6541
  msgctxt "submit listing"
6542
  msgid "Click this field to add categories"
6543
  msgstr ""
6544
 
6545
- #: includes/views/submit_listing.php:64 templates/submit-listing.tpl.php:23
6546
  #, fuzzy
6547
  msgctxt "submit listing"
6548
  msgid "Complete Listing"
6549
  msgstr "Eintrag Löschen"
6550
 
6551
- #: includes/views/submit_listing.php:65 templates/submit-listing.tpl.php:28
6552
  #, fuzzy
6553
  msgctxt "submit listing"
6554
  msgid "Continue to Payment"
6555
  msgstr "Initialbezahlung"
6556
 
6557
- #: includes/views/submit_listing.php:67
6558
  msgctxt "submit listing"
6559
  msgid "Please wait a moment!"
6560
  msgstr ""
6561
 
6562
- #: includes/views/submit_listing.php:68
6563
  msgctxt "submit listing"
6564
  msgid "Something went wrong!"
6565
  msgstr ""
6566
 
6567
- #: includes/views/submit_listing.php:93
6568
  #, fuzzy
6569
  msgctxt "submit listing"
6570
  msgid "No listing ID was specified."
6571
  msgstr "Ein Eintrag wurde bearbeitet."
6572
 
6573
- #: includes/views/submit_listing.php:95
6574
  #, fuzzy
6575
  msgctxt "submit listing"
6576
  msgid "You can't edit this listing."
6577
  msgstr "Kategorie für diesen Eintrag"
6578
 
6579
- #: includes/views/submit_listing.php:149
6580
  msgctxt "submit listing"
6581
  msgid ""
6582
  "This listing can't be edited at this time because it has no fee plan "
@@ -6584,14 +6580,14 @@ msgid ""
6584
  "to a fee plan."
6585
  msgstr ""
6586
 
6587
- #: includes/views/submit_listing.php:154
6588
  msgctxt "submit listing"
6589
  msgid ""
6590
  "This listing can't be edited at this time. Please try again later or contact "
6591
  "the admin if the problem persists."
6592
  msgstr ""
6593
 
6594
- #: includes/views/submit_listing.php:177
6595
  #, fuzzy
6596
  msgctxt "submit listing"
6597
  msgid "You're logged in as admin, payment will be skipped."
@@ -6599,47 +6595,47 @@ msgstr ""
6599
  "Du bist als Administrator eingeloggt. Alle Bezahlungsschritte werden "
6600
  "übersprungen."
6601
 
6602
- #: includes/views/submit_listing.php:403
6603
  #, fuzzy
6604
  msgctxt "submit listing"
6605
  msgid "Category selection"
6606
  msgstr "Kategorien auswählen"
6607
 
6608
- #: includes/views/submit_listing.php:403
6609
  #, fuzzy
6610
  msgctxt "submit listing"
6611
  msgid "Category & plan selection"
6612
  msgstr "Kategorien auswählen"
6613
 
6614
- #: includes/views/submit_listing.php:408
6615
  #, fuzzy
6616
  msgctxt "submit listing"
6617
  msgid "Listing Information"
6618
  msgstr "Eintrag Informationen"
6619
 
6620
- #: includes/views/submit_listing.php:413
6621
  #, fuzzy
6622
  msgctxt "submit listing"
6623
  msgid "Listing Images"
6624
  msgstr "Eintrag Bilder"
6625
 
6626
- #: includes/views/submit_listing.php:421
6627
  msgctxt "submit listing"
6628
  msgid "Account Creation"
6629
  msgstr ""
6630
 
6631
- #: includes/views/submit_listing.php:427
6632
  #, fuzzy
6633
  msgctxt "submit listing"
6634
  msgid "Terms and Conditions"
6635
  msgstr "Bedingungen und Konditionen"
6636
 
6637
- #: includes/views/submit_listing.php:464
6638
  msgctxt "submit listing"
6639
  msgid "(Please choose a fee plan above)"
6640
  msgstr ""
6641
 
6642
- #: includes/views/submit_listing.php:514
6643
  #, fuzzy
6644
  msgctxt "submit listing"
6645
  msgid "Can not submit a listing at this moment. Please try again later."
@@ -6647,69 +6643,69 @@ msgstr ""
6647
  "Ihre Zahlung kann momentan nicht ausgeführt werden. Bitte versuchen Sie es "
6648
  "später noch einmal."
6649
 
6650
- #: includes/views/submit_listing.php:556
6651
  #, fuzzy
6652
  msgctxt "submit listing"
6653
  msgid "Please select a category."
6654
  msgstr "Bitte wähle eine Preisoption für die Kategorie \"%s\""
6655
 
6656
- #: includes/views/submit_listing.php:569
6657
  #, fuzzy
6658
  msgctxt "submit listing"
6659
  msgid "Please select a category for your listing."
6660
  msgstr "Bitte wähle eine Preisoption für die Kategorie \"%s\""
6661
 
6662
- #: includes/views/submit_listing.php:589
6663
  msgctxt "submit listing"
6664
  msgid "Please choose a valid category for your plan."
6665
  msgstr ""
6666
 
6667
- #: includes/views/submit_listing.php:591
6668
  #, fuzzy
6669
  msgctxt "submit listing"
6670
  msgid "Please choose a valid fee plan for your category selection."
6671
  msgstr "Bitte wähle eine Preisoption für die Kategorie \"%s\""
6672
 
6673
- #: includes/views/submit_listing.php:830
6674
  #, fuzzy
6675
  msgctxt "submit listing"
6676
  msgid "Please enter your desired username."
6677
  msgstr "Bitte geben Sie einen Namen ein."
6678
 
6679
- #: includes/views/submit_listing.php:835
6680
  #, fuzzy
6681
  msgctxt "submit listing"
6682
  msgid "Please enter the e-mail for your new account."
6683
  msgstr "Bitte geben Sie einen Namen ein."
6684
 
6685
- #: includes/views/submit_listing.php:840
6686
  msgctxt "submit listing"
6687
  msgid "The username you chose is already in use. Please use a different one."
6688
  msgstr ""
6689
 
6690
- #: includes/views/submit_listing.php:845
6691
  msgctxt "submit listing"
6692
  msgid "The e-mail address you chose for your account is already in use."
6693
  msgstr ""
6694
 
6695
- #: includes/views/submit_listing.php:860
6696
  msgctxt "submit listing"
6697
  msgid "Create a user account on this site"
6698
  msgstr ""
6699
 
6700
- #: includes/views/submit_listing.php:867
6701
  msgctxt "submit listing"
6702
  msgid ""
6703
  "You need to create an account on the site. Please fill out the form below."
6704
  msgstr ""
6705
 
6706
- #: includes/views/submit_listing.php:873
6707
  #, fuzzy
6708
  msgctxt "submit listing"
6709
  msgid "Username:"
6710
  msgstr "Benutzer"
6711
 
6712
- #: includes/views/submit_listing.php:882
6713
  #, fuzzy
6714
  msgctxt "submit listing"
6715
  msgid "Email:"
@@ -6872,7 +6868,7 @@ msgid "Social Site (Other)"
6872
  msgstr "Soziale Seite (Twitter)"
6873
 
6874
  #: includes/fields/class-fieldtypes-social.php:95
6875
- #: includes/fields/class-fieldtypes-url.php:149
6876
  msgctxt "form-fields api"
6877
  msgid "URL:"
6878
  msgstr "URL:"
@@ -6919,7 +6915,7 @@ msgctxt "form-fields api"
6919
  msgid "URL Field"
6920
  msgstr "URL Feld"
6921
 
6922
- #: includes/fields/class-fieldtypes-url.php:160
6923
  msgctxt "form-fields api"
6924
  msgid "Link Text (optional):"
6925
  msgstr "Link Text (optional):"
@@ -7201,12 +7197,12 @@ msgctxt "image field"
7201
  msgid "Caption for %s is required."
7202
  msgstr "%s ist ein Pflichtfeld."
7203
 
7204
- #: includes/functions.php:1272
7205
  msgctxt "templates"
7206
  msgid "Return to results"
7207
  msgstr "Zurück zu den Ergebnissen"
7208
 
7209
- #: includes/functions.php:1276 includes/functions.php:1281
7210
  msgctxt "templates"
7211
  msgid "Go back"
7212
  msgstr "Geh zurück"
@@ -7222,12 +7218,12 @@ msgctxt "templates"
7222
  msgid "No listing categories found."
7223
  msgstr "Keine Eintragskategorie gefunden."
7224
 
7225
- #: includes/templates-ui.php:345
7226
  msgctxt "templates"
7227
  msgid "Search Listings"
7228
  msgstr "Eintrag suchen"
7229
 
7230
- #: includes/templates-ui.php:350
7231
  msgctxt "templates"
7232
  msgid "Advanced Search"
7233
  msgstr "Erweiterte Suche"
@@ -7274,7 +7270,7 @@ msgstr ""
7274
  "angezeigt. Wenn du das nicht möchtest, klicke <a>hier</a> um die "
7275
  "Einstellungen zu ändern."
7276
 
7277
- #: includes/views/submit_listing.php:348
7278
  msgctxt "templates"
7279
  msgid ""
7280
  "<b>View not available</b>. Do you have the \"Disable Frontend Listing "
@@ -7283,27 +7279,27 @@ msgstr ""
7283
  "<b>View not available</b>. Do you have the \"Disable Frontend Listing "
7284
  "Submission?\" setting checked?"
7285
 
7286
- #: includes/views/submit_listing.php:350
7287
  msgctxt "templates"
7288
  msgid ""
7289
  "Listing submission has been disabled. Contact the administrator for details."
7290
  msgstr ""
7291
 
7292
- #: includes/views/submit_listing.php:517
7293
  msgctxt "templates"
7294
  msgid ""
7295
  "<b>There are no Fee Plans available</b>, without a fee plan site users can't "
7296
  "submit a listing. %s to create a fee plan"
7297
  msgstr ""
7298
 
7299
- #: includes/views/submit_listing.php:531
7300
  msgctxt "templates"
7301
  msgid ""
7302
  "Listing submission is not available at the moment. Contact the administrator "
7303
  "for details."
7304
  msgstr ""
7305
 
7306
- #: includes/views/submit_listing.php:534
7307
  msgctxt "templates"
7308
  msgid ""
7309
  "<b>View not available</b>, there is no \"Category\" association field. %s "
@@ -7311,17 +7307,17 @@ msgid ""
7311
  "an existing field"
7312
  msgstr ""
7313
 
7314
- #: includes/views/submit_listing.php:902
7315
  msgctxt "templates"
7316
  msgid "Please agree to the Terms and Conditions."
7317
  msgstr "Bitte akzeptieren Sie die Allgemeinen Geschäftsbedingungen."
7318
 
7319
- #: includes/views/submit_listing.php:910
7320
  msgctxt "templates"
7321
  msgid "Terms and Conditions:"
7322
  msgstr "AGBs:"
7323
 
7324
- #: includes/views/submit_listing.php:918
7325
  msgctxt "templates"
7326
  msgid "I agree to the <a>Terms and Conditions</a>"
7327
  msgstr "Ich akzeptiere die <a>AGB</a>s"
@@ -7334,19 +7330,19 @@ msgid "No listings found."
7334
  msgstr "Kein Eintrag vorhanden."
7335
 
7336
  #: templates/businessdirectory-listings.tpl.php:38
7337
- #: templates/listings.tpl.php:31
7338
  msgctxt "templates"
7339
  msgid "&laquo; Previous "
7340
  msgstr "&laquo; Vorher"
7341
 
7342
  #: templates/businessdirectory-listings.tpl.php:39
7343
- #: templates/listings.tpl.php:32
7344
  msgctxt "templates"
7345
  msgid "Next &raquo;"
7346
  msgstr "Nächste &raquo;"
7347
 
7348
  #: templates/deprecated/search.tpl.php:24 templates/manage-listings.tpl.php:8
7349
- #: templates/manage_listings.tpl.php:8
7350
  msgctxt "templates"
7351
  msgid "Return to directory"
7352
  msgstr "Zurück zum Verzeichnis"
@@ -7421,7 +7417,7 @@ msgctxt "templates"
7421
  msgid "Lost your password?"
7422
  msgstr "Passwort verloren?"
7423
 
7424
- #: templates/manage-listings.tpl.php:3 templates/manage_listings.tpl.php:3
7425
  msgctxt "templates"
7426
  msgid ""
7427
  "Your current listings are shown below. To edit a listing click the edit "
@@ -7430,7 +7426,7 @@ msgstr ""
7430
  "Dein aktueller Eintrag siehe unten. Um den Eintrag zu bearbeiten klicke auf "
7431
  "den Bearbeiten Button. Um ein Eintrag zu löschen klicke den Löschen Button."
7432
 
7433
- #: templates/manage-listings.tpl.php:6 templates/manage_listings.tpl.php:6
7434
  msgctxt "templates"
7435
  msgid "You do not currently have any listings in the directory."
7436
  msgstr "Momentan sind keine Einträge im Verzeichnis vorhanden."
@@ -7633,35 +7629,37 @@ msgctxt "templates"
7633
  msgid "There are no images currently attached to your listing."
7634
  msgstr "Im Moment sind keine Bilder dem Eintrag angehängt."
7635
 
7636
- #: includes/gateways/class-gateway-authorize-net.php:20
7637
  #, fuzzy
7638
  msgctxt "authorize-net"
7639
  msgid "Authorize.net"
7640
  msgstr "Aktiviere Lizenz"
7641
 
7642
- #: includes/gateways/class-gateway-authorize-net.php:38
7643
  #, fuzzy
7644
  msgctxt "authorize-net"
7645
  msgid "Login ID"
7646
  msgstr "Login"
7647
 
7648
- #: includes/gateways/class-gateway-authorize-net.php:39
7649
  #, fuzzy
7650
  msgctxt "authorize-net"
7651
  msgid "Transaction Key"
7652
  msgstr "Transaktionen"
7653
 
7654
- #: includes/gateways/class-gateway-authorize-net.php:71
7655
  msgctxt "authorize-net"
7656
  msgid "Login ID is missing."
7657
  msgstr "Verkäufer ID nicht angegeben."
7658
 
7659
- #: includes/gateways/class-gateway-authorize-net.php:74
7660
  msgctxt "authorize-net"
7661
  msgid "Transaction Key is missing."
7662
  msgstr "Transaktionen"
7663
 
7664
- #: includes/gateways/class-gateway-authorize-net.php:103
 
 
7665
  #, fuzzy
7666
  msgctxt "authorize-net"
7667
  msgid ""
@@ -7671,7 +7669,7 @@ msgstr ""
7671
  "Ihre Zahlung wartet derzeit auf eine Prüfung. Folgender Grund wurde "
7672
  "angegeben: \"%s\"."
7673
 
7674
- #: includes/gateways/class-gateway-authorize-net.php:112
7675
  #, fuzzy
7676
  msgctxt "authorize-net"
7677
  msgid ""
@@ -7681,22 +7679,34 @@ msgstr ""
7681
  "Das Bezahlung mit Ihrer Kreditkarte ist fehlgeschlagen. Folgender Grund "
7682
  "wurde angeben: \"%s\"."
7683
 
7684
- #: includes/gateways/class-gateway-authorize-net.php:121
 
 
 
 
 
7685
  msgctxt "authorize-net"
7686
  msgid "Payment was rejected. The following reason was given: \"%s\"."
7687
  msgstr "Die Zahlung wurde abgelehnt. Folgender Grund wurde angegeben: \"%s\"."
7688
 
7689
- #: includes/gateways/class-gateway-authorize-net.php:179
 
7690
  msgctxt "authorize-net"
7691
  msgid "Payment failed. Reason: %s"
7692
  msgstr ""
7693
 
7694
- #: includes/gateways/class-gateway-authorize-net.php:204
7695
  #, fuzzy
7696
  msgctxt "authorize-net"
7697
  msgid "Listing #%d"
7698
  msgstr "Eintrag bearbeiten"
7699
 
 
 
 
 
 
 
7700
  #: includes/helpers/class-access-keys-sender.php:20
7701
  #, fuzzy
7702
  msgctxt "access keys sender"
@@ -7847,24 +7857,24 @@ msgctxt "default category name"
7847
  msgid "General"
7848
  msgstr "Allgemein"
7849
 
7850
- #: includes/licensing.php:297
7851
  #, fuzzy
7852
  msgctxt "licensing"
7853
  msgid "Invalid item ID"
7854
  msgstr "Ungültige Feld ID"
7855
 
7856
- #: includes/licensing.php:303
7857
  msgctxt "licensing"
7858
  msgid "No license key provided"
7859
  msgstr "Kein Lizenzschlüssel"
7860
 
7861
- #: includes/licensing.php:327
7862
  #, fuzzy
7863
  msgctxt "licensing"
7864
  msgid "The license key was revoked."
7865
  msgstr "Kein Lizenzschlüssel"
7866
 
7867
- #: includes/licensing.php:329
7868
  msgctxt "licensing"
7869
  msgid ""
7870
  "If you think this is a mistake, please contact <support-link>Business "
@@ -7872,36 +7882,36 @@ msgid ""
7872
  "reported as revoked by the licensing software."
7873
  msgstr ""
7874
 
7875
- #: includes/licensing.php:331
7876
  msgctxt "licensing"
7877
  msgid ""
7878
  "Please include the email address you used to purchase <module-name> with "
7879
  "your report."
7880
  msgstr ""
7881
 
7882
- #: includes/licensing.php:342 includes/licensing.php:385
7883
  msgctxt "licensing"
7884
  msgid "License key is invalid"
7885
  msgstr "Lizenzschlüssel ungültig "
7886
 
7887
- #: includes/licensing.php:359
7888
  msgctxt "licensing"
7889
  msgid "Invalid module ID"
7890
  msgstr "Ungültige Modul ID"
7891
 
7892
- #: includes/licensing.php:389
7893
  msgctxt "licensing"
7894
  msgid "Deactivation failed"
7895
  msgstr "Deaktivierung fehlgeschlagen"
7896
 
7897
- #: includes/licensing.php:397
7898
  msgctxt "licensing"
7899
  msgid ""
7900
  "It was not possible to establish a connection with Business Directory's "
7901
  "server. cURL was not found in your system"
7902
  msgstr ""
7903
 
7904
- #: includes/licensing.php:399 includes/licensing.php:440
7905
  msgctxt "licensing"
7906
  msgid ""
7907
  "To ensure the security of our systems and adhere to industry best practices, "
@@ -7910,7 +7920,7 @@ msgid ""
7910
  "1.0.1c)."
7911
  msgstr ""
7912
 
7913
- #: includes/licensing.php:401 includes/licensing.php:442
7914
  msgctxt "licensing"
7915
  msgid ""
7916
  "Upgrading your system will not only allow you to communicate with Business "
@@ -7918,65 +7928,65 @@ msgid ""
7918
  "services using the latest security standards."
7919
  msgstr ""
7920
 
7921
- #: includes/licensing.php:403
7922
  msgctxt "licensing"
7923
  msgid ""
7924
  "Please contact your hosting provider and ask them to upgrade your system. "
7925
  "Include this message if necessary"
7926
  msgstr ""
7927
 
7928
- #: includes/licensing.php:419
7929
  msgctxt "licensing"
7930
  msgid ""
7931
  "It was not possible to establish a connection with Business Directory's "
7932
  "server. The connection failed with the following error:"
7933
  msgstr ""
7934
 
7935
- #: includes/licensing.php:423 includes/licensing.php:475
7936
  msgctxt "licensing"
7937
  msgid ""
7938
  "It looks like your server is not authorized to make requests to Business "
7939
  "Directory servers. Please contact <support-link>Business Directory support</"
7940
- "support-link> and ask them to add your IP address <ip-address> to the "
7941
- "whitelist."
7942
  msgstr ""
7943
 
7944
- #: includes/licensing.php:425 includes/licensing.php:477
7945
  msgctxt "licensing"
7946
  msgid "Include this error message with your report."
7947
  msgstr ""
7948
 
7949
- #: includes/licensing.php:435
7950
  msgctxt "licensing"
7951
  msgid ""
7952
  "It was not possible to establish a connection with Business Directory's "
7953
  "server. A problem occurred in the SSL/TSL handshake:"
7954
  msgstr ""
7955
 
7956
- #: includes/licensing.php:444
7957
  msgctxt "licensing"
7958
  msgid ""
7959
  "Please contact your hosting provider and ask them to upgrade your system. "
7960
  "Include this message if necessary."
7961
  msgstr ""
7962
 
7963
- #: includes/licensing.php:451
7964
  msgctxt "licensing"
7965
  msgid "Could not contact licensing server"
7966
  msgstr "Eine Verbindung zum Lizenzserver konnte nicht hergestellt werden."
7967
 
7968
- #: includes/licensing.php:473
7969
  msgctxt "licensing"
7970
  msgid "The server returned a 403 Forbidden error."
7971
  msgstr ""
7972
 
7973
- #: includes/licensing.php:541
7974
  #, fuzzy
7975
  msgctxt "licensing"
7976
  msgid "Business Directory - Please verify your license keys"
7977
  msgstr "Branchenverzeichnis - letzte Einträge"
7978
 
7979
- #: includes/licensing.php:551
7980
  #, fuzzy
7981
  msgctxt "licensing"
7982
  msgid ""
@@ -7987,26 +7997,26 @@ msgstr ""
7987
  "Lizenzschlüssel angegeben wurde. Gehen Sie zu <a>Optionen verwalten - "
7988
  "Lizenzen</a>, um Ihre Lizenzinformation einzugeben."
7989
 
7990
- #: includes/licensing.php:562
7991
  msgctxt "licensing"
7992
  msgid ""
7993
  "You need to activate the license keys for the following themes before they "
7994
  "can be used: %s."
7995
  msgstr ""
7996
 
7997
- #: includes/licensing.php:570 includes/licensing.php:626
7998
  #, fuzzy
7999
  msgctxt "licensing"
8000
  msgid "Review my license keys"
8001
  msgstr "Erneuere Lizenzschlüssel"
8002
 
8003
- #: includes/licensing.php:597
8004
  #, fuzzy
8005
  msgctxt "licensing"
8006
  msgid "Business Directory - License key expired"
8007
  msgstr "Branchenverzeichnis - Lizenzschlüssel abgelaufen"
8008
 
8009
- #: includes/licensing.php:607
8010
  #, fuzzy
8011
  msgctxt "licensing"
8012
  msgid ""
@@ -8018,7 +8028,7 @@ msgstr ""
8018
  "abgelaufen. Das Modul wird weiter ausgeführt, jedoch nicht weiter "
8019
  "aktualisiert, bis ein neuer Lizenzschlüssel eingegeben wurde."
8020
 
8021
- #: includes/licensing.php:618
8022
  #, fuzzy
8023
  msgctxt "licensing"
8024
  msgid ""
@@ -8030,34 +8040,34 @@ msgstr ""
8030
  "abgelaufen. Das Modul wird weiter ausgeführt, jedoch nicht weiter "
8031
  "aktualisiert, bis ein neuer Lizenzschlüssel eingegeben wurde."
8032
 
8033
- #: includes/licensing.php:718
8034
  #, fuzzy
8035
  msgctxt "licensing"
8036
  msgid "Please enter a license key."
8037
  msgstr "Bitte eine gültige E-mailadresse eingeben."
8038
 
8039
- #: includes/licensing.php:727
8040
  msgctxt "licensing"
8041
  msgid "Could not activate license: %s."
8042
  msgstr "Konnte Lizenz nicht aktivieren: %s"
8043
 
8044
- #: includes/licensing.php:729
8045
  msgctxt "licensing"
8046
  msgid "License activated"
8047
  msgstr "Lizenz aktiviert"
8048
 
8049
- #: includes/licensing.php:749
8050
  msgctxt "licensing"
8051
  msgid "Could not deactivate license: %s."
8052
  msgstr "Konnte Lizenz nicht deaktivieren: %s"
8053
 
8054
- #: includes/licensing.php:751
8055
  msgctxt "licensing"
8056
  msgid "License deactivated"
8057
  msgstr "Lizenz deaktiviert"
8058
 
8059
  #. translators: "<module-name>" version <version-number> is not...
8060
- #: includes/licensing.php:954
8061
  msgctxt "deprecation"
8062
  msgid ""
8063
  "\"%1$s\" version %2$s is not compatible with Business Directory Plugin 5.0. "
@@ -8369,17 +8379,17 @@ msgctxt "checkout"
8369
  msgid "Next"
8370
  msgstr ""
8371
 
8372
- #: includes/templates-ui.php:385 includes/templates-ui.php:417
8373
  msgctxt "templates sort"
8374
  msgid "Sort By:"
8375
  msgstr "Sortieren nach"
8376
 
8377
- #: includes/templates-ui.php:408
8378
  msgctxt "sort"
8379
  msgid "Reset"
8380
  msgstr "Zurücksetzen"
8381
 
8382
- #: includes/templates-ui.php:436
8383
  msgctxt "sort"
8384
  msgid "(Reset)"
8385
  msgstr "Zurücksetzen"
@@ -8537,7 +8547,7 @@ msgstr ""
8537
  "Diese Kontaktform ist momentan temporär deaktiviert. Bitte versuchen Sie es "
8538
  "später erneut."
8539
 
8540
- #: includes/views/login.php:47
8541
  #, fuzzy
8542
  msgctxt "views:login"
8543
  msgid "Please enter a valid e-mail/access key combination."
@@ -8555,41 +8565,47 @@ msgctxt "views:login"
8555
  msgid "... or use an Access Key"
8556
  msgstr "Eintrag Felder / Bilder"
8557
 
8558
- #: templates/login.tpl.php:53
8559
  #, fuzzy
8560
  msgctxt "views:login"
8561
  msgid "Please enter your access key and e-mail address."
8562
  msgstr "Bitte eine gültige E-mailadresse eingeben."
8563
 
8564
- #: templates/login.tpl.php:59 templates/login.tpl.php:61
8565
  #, fuzzy
8566
  msgctxt "views:login"
8567
  msgid "E-Mail Address"
8568
  msgstr "E-Mail Adresse:"
8569
 
8570
- #: templates/login.tpl.php:65 templates/login.tpl.php:67
8571
  #, fuzzy
8572
  msgctxt "views:login"
8573
  msgid "Access Key"
8574
  msgstr "Eintrag Felder / Bilder"
8575
 
8576
- #: templates/login.tpl.php:69
8577
  #, fuzzy
8578
  msgctxt "views:login"
8579
  msgid "Use Access Key"
8580
  msgstr "Eintrag Felder / Bilder"
8581
 
8582
- #: templates/login.tpl.php:70
8583
  msgctxt "views:login"
8584
  msgid "Request access key?"
8585
  msgstr ""
8586
 
8587
- #: includes/views/manage_listings.php:20
8588
  #, fuzzy
8589
  msgctxt "view:manage-listings"
8590
  msgid "Please <a>login</a> to manage your listings."
8591
  msgstr "Bitte <a>einloggen</a> um eine Nachricht an den Inhaber zu senden."
8592
 
 
 
 
 
 
 
8593
  #: includes/views/manage_recurring.php:36
8594
  msgctxt "manage subscription"
8595
  msgid "The listing with id = <listing-id> doesn't exists."
@@ -8768,19 +8784,19 @@ msgctxt "search"
8768
  msgid "Clear"
8769
  msgstr "Zurücksetzen"
8770
 
8771
- #: includes/views/show_listing.php:12
8772
  msgctxt "preview"
8773
  msgid "This is just a preview. The listing has not been published yet."
8774
  msgstr "Dies ist nur eine Vorschau. Der Eintrag wurde bisher nicht publiziert."
8775
 
8776
- #: includes/views/submit_listing.php:700
8777
  msgctxt "listing submit"
8778
  msgid ""
8779
  "Something went wrong. Please check the form for errors, correct them and "
8780
  "submit again."
8781
  msgstr ""
8782
 
8783
- #: includes/views/submit_listing.php:784
8784
  msgctxt "listing submit"
8785
  msgid ""
8786
  "Image upload is required, please provide at least one image and submit again."
@@ -8930,8 +8946,9 @@ msgctxt "widgets"
8930
  msgid "Search"
8931
  msgstr "Suche"
8932
 
8933
- #: templates/admin/csv-export.tpl.php:93 templates/admin/csv-export.tpl.php:112
8934
- #: templates/admin/csv-export.tpl.php:123 templates/admin/csv-import.tpl.php:50
 
8935
  #: templates/admin/csv-import.tpl.php:116
8936
  #: templates/admin/csv-import.tpl.php:142
8937
  #: templates/admin/csv-import.tpl.php:153
@@ -9860,6 +9877,41 @@ msgctxt "themes/default"
9860
  msgid "Address"
9861
  msgstr "Adresse"
9862
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9863
  #, fuzzy
9864
  #~ msgctxt "admin listings"
9865
  #~ msgid "Paid"
5
  "Project-Id-Version: Business Directory Plugin v5.7.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
7
  "directory-plugin\n"
8
+ "POT-Creation-Date: 2020-08-27 15:16:00+00:00\n"
9
  "PO-Revision-Date: 2020-06-17 15:32-0500\n"
10
  "Last-Translator: Axel J. Metayer <axel@kfz.net>\n"
11
  "Language-Team: Business Directory Plugin <support@businessdirectoryplugin."
32
  msgstr "Ein Eintrag läuft aus."
33
 
34
  #: includes/admin/class-admin-listings.php:225
35
+ #: includes/admin/class-listing-owner.php:91
36
  #, fuzzy
37
  msgid "Listing Owner"
38
  msgstr "Ein Eintrag läuft aus."
52
  msgid "Edit listing permalink"
53
  msgstr "Eintrag Bearbeiten"
54
 
55
+ #: includes/admin/class-admin.php:184
56
+ #, fuzzy
57
  msgid ""
58
  "Preview is only available after you've saved the first draft. This is due\n"
59
+ " to how WordPress stores the data."
60
  msgstr ""
61
  "Vorschau ist nur verfügbar, nachdem Sie den ersten Entwurf gespeichert "
62
  "haben.\n"
63
  "Dies liegt daran wie WordPress die Daten speichert."
64
 
65
+ #: includes/admin/class-admin.php:350
66
  #, fuzzy
67
  msgid "Uninstall Business Directory Plugin"
68
  msgstr "Branchenverzeichnis deinstallieren"
69
 
70
+ #: includes/admin/class-admin.php:351
71
  #, fuzzy
72
  msgid "Uninstall"
73
  msgstr "Deinstallieren"
74
 
75
+ #: includes/admin/class-csv-import.php:646
76
  #, fuzzy
77
  msgid "Listing imported by admin. Payment skipped."
78
  msgstr "Eintrag zusenden (Initialbezahlung)"
79
 
80
+ #: includes/admin/class-listing-owner.php:66
81
+ #: includes/admin/class-listing-owner.php:93
82
  #, fuzzy
83
  msgid "Please select a user"
84
  msgstr "Bitte wähle eine Preisoption für die Kategorie \"%s\""
135
  msgid "Missing tables: %s"
136
  msgstr "Nicht vorhandene Tabellen: %s"
137
 
138
+ #: includes/admin/settings/class-settings-bootstrap.php:1116
139
  msgid ""
140
  "If you are using this gateway, we recommend you disable it if you wish to "
141
  "collect payments in this currency."
221
  msgstr "Einträge durchsuchen"
222
 
223
  #: includes/class-cpt-integration.php:24
224
+ #, fuzzy
225
+ msgid "Directory Listings"
226
+ msgstr "Verzeichniseintrag Entwurf"
227
+
228
+ #: includes/class-cpt-integration.php:25
229
  msgid "No listings found"
230
  msgstr "Keine Einträge gefunden"
231
 
232
+ #: includes/class-cpt-integration.php:26
233
  msgid "No listings found in trash"
234
  msgstr "Keine Einträge im Papierkorb gefunden"
235
 
236
+ #: includes/class-cpt-integration.php:47
237
  msgid "Directory Categories"
238
  msgstr "Verz. Kategorien"
239
 
240
+ #: includes/class-cpt-integration.php:48
241
  msgid "Directory Category"
242
  msgstr "Verzeichnis Kategorie"
243
 
244
+ #: includes/class-cpt-integration.php:59
245
  msgid "Directory Tags"
246
  msgstr "Verz. Tags"
247
 
248
+ #: includes/class-cpt-integration.php:60
249
  msgid "Directory Tag"
250
  msgstr "Verzeichnis Tag"
251
 
252
  #. translators: %s: listing count
253
+ #: includes/class-cpt-integration.php:254
254
  #, fuzzy
255
  msgid "%s listing updated."
256
  msgid_plural "%s listings updated."
258
  msgstr[1] "Ein Eintrag wurde bearbeitet."
259
 
260
  #. translators: %s: listing count
261
+ #: includes/class-cpt-integration.php:256
262
  msgid "%s listing not updated, somebody is editing it."
263
  msgid_plural "%s listings not updated, somebody is editing them."
264
  msgstr[0] ""
265
  msgstr[1] ""
266
 
267
  #. translators: %s: listing count
268
+ #: includes/class-cpt-integration.php:258
269
  #, fuzzy
270
  msgid "%s listing permanently deleted."
271
  msgid_plural "%s listings permanently deleted."
273
  msgstr[1] "Eintrag Enddatum"
274
 
275
  #. translators: %s: listing count
276
+ #: includes/class-cpt-integration.php:260
277
  #, fuzzy
278
  msgid "%s listing moved to the Trash."
279
  msgid_plural "%s listings moved to the Trash."
281
  msgstr[1] "Keine Einträge im Papierkorb gefunden"
282
 
283
  #. translators: %s: listing count
284
+ #: includes/class-cpt-integration.php:262
285
  #, fuzzy
286
  msgid "%s listing restored from the Trash."
287
  msgid_plural "%s listings restored from the Trash."
364
  msgid "Free"
365
  msgstr "Kostenlos"
366
 
367
+ #: includes/gateways/class-gateway-authorize-net.php:498
368
  msgid ""
369
  "An error occurred while trying to cancel your subscription. Please try again "
370
  "later or contact the site administrator."
371
  msgstr ""
372
 
373
+ #: includes/gateways/class-gateway-authorize-net.php:502
374
  msgid ""
375
  "An error occurred while trying to cancel Authorize.net subscription with ID "
376
  "%s. You can try again later or cancel subscription from gateway dashboard."
389
  msgid "The payment gateway \"<payment-gateway>\" is not available."
390
  msgstr ""
391
 
392
+ #: includes/templates-ui.php:292
393
  msgid "Directory"
394
  msgstr "Verzeichnis"
395
 
396
+ #: includes/templates-ui.php:301
397
  msgid "View All Listings"
398
  msgstr "Alle Einträge anschauen"
399
 
400
+ #: includes/templates-ui.php:310
401
+ #, fuzzy
402
+ msgid "Manage Listings"
403
+ msgstr "Bezahlte Einträge verwalten"
404
+
405
+ #: includes/templates-ui.php:319
406
  msgid "Create A Listing"
407
  msgstr "Eintrag erstellen"
408
 
410
  msgid "l F j, Y \\a\\t g:i a"
411
  msgstr "l F j, Y \\a\\t g:i a"
412
 
413
+ #: templates/admin/csv-export.tpl.php:6
414
+ #, fuzzy
415
+ msgid ""
416
+ "An unknown error occurred during the export. Please make sure you have "
417
+ "enough free disk space and memory available to PHP. Check your error logs "
418
+ "for details."
419
+ msgstr ""
420
+ "Ein unvorhergesehener Fehler ist während des Exports aufgetreten. Bitte "
421
+ "stelle sicher, dass du genügend Speicherplatz für PHP vorhanden ist. Schaue "
422
+ "ins Fehlerprotokoll."
423
+
424
  #: templates/admin/home.tpl.php:53
425
  #, fuzzy
426
  msgid "Manage Options"
477
  msgid "← Return to Directory"
478
  msgstr "← Zurück zum Verzeichnis"
479
 
480
+ #. Author URI of the plugin/theme
481
  #, fuzzy
482
+ msgid "https://businessdirectoryplugin.com"
483
+ msgstr "http://businessdirectoryplugin.com"
484
 
485
  #. Description of the plugin/theme
486
  msgid ""
491
  "auf Ihrer WordPress Webseite zu betreiben."
492
 
493
  #. Author of the plugin/theme
 
 
 
 
494
  #, fuzzy
495
+ msgid "Business Directory Team"
496
+ msgstr "Branchenverzeichnis"
497
 
498
  #: includes/admin/class-admin-controller.php:79
499
  #, fuzzy
535
  msgid "Could not create listing category \"%s\""
536
  msgstr "Konnte Eintragskategorie nicht erstellen \"%s\""
537
 
538
+ #: includes/admin/class-csv-import.php:697
539
  msgctxt "admin csv-import"
540
  msgid "Username \"%s\" does not exist"
541
  msgstr "Benutzername \"%s\" existiert nicht"
542
 
543
+ #: includes/admin/class-csv-import.php:725
 
 
 
 
 
544
  msgctxt "admin csv-import"
545
  msgid "There is no Fee Plan with ID = <fee-id>"
546
  msgstr ""
547
 
548
+ #: includes/admin/class-csv-import.php:756
549
  msgctxt "admin csv-import"
550
  msgid "Missing required field: %s"
551
  msgstr "Benötigtes nicht vorhandenes Feld: %s"
552
 
553
+ #: includes/admin/class-csv-import.php:781
554
  msgctxt "admin csv-import"
555
  msgid "Listing category \"%s\" does not exist"
556
  msgstr "Eintragskategorie \"%s\" existiert nicht"
557
 
558
+ #: includes/admin/class-csv-import.php:846
559
+ msgctxt "admin csv-import"
560
+ msgid "The string <string> couldn't be converted into a valid date."
561
+ msgstr ""
562
+
563
  #: includes/admin/csv-import.php:130
564
  msgctxt "admin csv-import"
565
  msgid "Business %s"
1091
  msgid "Reported"
1092
  msgstr ""
1093
 
1094
+ #: includes/admin/class-admin-listings.php:723
1095
  msgctxt "admin listings"
1096
  msgid "Listing's payment history successfully deleted"
1097
  msgstr ""
1142
  msgid "Categories"
1143
  msgstr "Kategorien"
1144
 
1145
+ #: includes/admin/class-admin.php:245
1146
  msgctxt "admin"
1147
  msgid "Business Directory"
1148
  msgstr "Branchenverzeichnis"
1149
 
1150
+ #: includes/admin/class-admin.php:256
1151
  msgctxt "admin"
1152
  msgid "You're all set. Visit your new <a>Business Directory</a> page."
1153
  msgstr ""
1154
  "Sie haben alles konfiguriert. Besuchen sie Ihr neues <a>Branchenverzeichnis</"
1155
  "a>."
1156
 
1157
+ #: includes/admin/class-admin.php:380
1158
  msgctxt "admin"
1159
  msgid "Untitled Menu"
1160
  msgstr ""
1161
 
1162
+ #: includes/admin/class-admin.php:650
1163
  msgctxt "admin"
1164
  msgid "Dismiss this notice."
1165
  msgstr "Diese Nachricht ignorieren."
1166
 
1167
+ #: includes/admin/class-admin.php:681 includes/admin/class-admin.php:691
1168
  #, fuzzy
1169
  msgctxt "admin"
1170
  msgid "The listing has been updated."
1172
  msgstr[0] "Der Eintrag wurde aktualisiert"
1173
  msgstr[1] "Die Einträge wurden aktualisiert."
1174
 
1175
+ #: includes/admin/class-admin.php:712
1176
  msgctxt "admin"
1177
  msgid "The fee was successfully assigned."
1178
  msgstr "Der Preis wurde erfolgreich zugewiesen."
1179
 
1180
+ #: includes/admin/class-admin.php:722
1181
  msgctxt "admin"
1182
  msgid "Listing was renewed."
1183
  msgid_plural "Listings were renewed."
1184
  msgstr[0] "Eintrag wurde aktualisiert."
1185
  msgstr[1] "Einträge wurden aktualisiert."
1186
 
1187
+ #: includes/admin/class-admin.php:733
1188
  msgctxt "admin"
1189
  msgid "Renewal email sent."
1190
  msgstr "E-mail erneut senden."
1191
 
1192
+ #: includes/admin/class-admin.php:737
1193
  msgctxt "admin"
1194
  msgid ""
1195
  "Could not send renewal email, notice template at listing expiration not "
1196
  "found."
1197
  msgstr ""
1198
 
1199
+ #: includes/admin/class-admin.php:744
1200
  #, fuzzy
1201
  msgctxt "admin"
1202
  msgid "Listing report deleted."
1204
  msgstr[0] "Eintrag Enddatum"
1205
  msgstr[1] "Eintrag Enddatum"
1206
 
1207
+ #: includes/admin/class-admin.php:792
1208
  #, fuzzy
1209
  msgctxt "admin"
1210
  msgid "Access keys sent."
1211
  msgstr "Eintrag Felder / Bilder"
1212
 
1213
+ #: includes/admin/class-admin.php:794
1214
  msgctxt "admin"
1215
  msgid "The access keys couldn't be sent."
1216
  msgstr ""
1217
 
1218
+ #: includes/admin/class-admin.php:860 includes/admin/class-admin.php:866
1219
  msgctxt "admin"
1220
  msgid "Listing Count"
1221
  msgstr "Anzahl Einträge"
1222
 
1223
+ #: includes/admin/class-admin.php:928
1224
  msgctxt "admin"
1225
  msgid ""
1226
  "<b>Business Directory Plugin</b> requires a page with the "
1229
  "<b>Branchenverzeichnis Erweiterung</b> benötigt eine Seite mit dem "
1230
  "<tt>[businessdirectory]</tt> shortcode um zu funktionieren."
1231
 
1232
+ #: includes/admin/class-admin.php:930
1233
  msgctxt "admin"
1234
  msgid ""
1235
  "You can create this page by yourself or let Business Directory do this for "
1238
  "Du kannst diese Seite selbst erstellen oder vom Branchenverzeichnis "
1239
  "automatisch erstellen lassen."
1240
 
1241
+ #: includes/admin/class-admin.php:934
1242
  msgctxt "admin"
1243
  msgid "Create required pages for me"
1244
  msgstr "Erstelle benötigte Seiten für mich"
1245
 
1246
+ #: includes/admin/class-admin.php:967
1247
  msgctxt "admin"
1248
  msgid ""
1249
  "<strong>Business Directory Plugin</strong> requires <strong>PHP 5.6</strong> "
1251
  "your provider to upgrade in order to prevent any issues with the plugin."
1252
  msgstr ""
1253
 
1254
+ #: includes/admin/class-admin.php:990
1255
  msgctxt "admin"
1256
  msgid ""
1257
  "We noticed you want your Business Directory users to register before posting "
1309
  "Sie können diese benutzerdefinierten Felder selbst erzeugen \"Formularfelder "
1310
  "verwalten\" oder vom Branchenverzeichnis automatisch erstellen lassen."
1311
 
1312
+ #: includes/admin/form-fields.php:214 includes/views/submit_listing.php:545
1313
  msgctxt "admin"
1314
  msgid "Go to \"Manage Form Fields\""
1315
  msgstr "zu \"Formularfelder verwalten\""
1329
  msgid "Abandoned"
1330
  msgstr "Abgebrochen"
1331
 
1332
+ #: includes/views/submit_listing.php:528
1333
  #, fuzzy
1334
  msgctxt "admin"
1335
  msgid "Go to \"Manage Fees\""
1454
  msgid "Send access keys"
1455
  msgstr "Eintrag Felder / Bilder"
1456
 
1457
+ #: includes/admin/class-admin.php:177
1458
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:75
1459
  #, fuzzy
1460
  msgctxt "listing metabox"
1461
  msgid "Never"
1462
  msgstr "niemals"
1463
 
1464
+ #: includes/admin/class-admin.php:178
1465
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1466
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1467
  #, fuzzy
1469
  msgid "Yes"
1470
  msgstr "Ja"
1471
 
1472
+ #: includes/admin/class-admin.php:179
1473
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1474
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1475
  #, fuzzy
1603
  msgid "Is Recurring?"
1604
  msgstr "(wiederkehrend)"
1605
 
1606
+ #: includes/admin/class-admin.php:216
1607
  msgctxt "drip pointer"
1608
  msgid ""
1609
  "Find out how to create a compelling, thriving business directory from "
1614
  "von Grund aufbauen mit diesem einfachen (und kostenlosen) 5-teiligen E-Mail-"
1615
  "Kurs. Sie erhalten ein kostenloses Premium-Modul nur für die Anmeldung."
1616
 
1617
+ #: includes/admin/class-admin.php:218
1618
  msgctxt "drip pointer"
1619
  msgid "Email Address:"
1620
  msgstr "E-Mail Adresse:"
1621
 
1622
+ #: includes/admin/class-admin.php:224
1623
  msgctxt "drip pointer"
1624
  msgid "Want to know the Secrets of Building an Awesome Business Directory?"
1625
  msgstr ""
1626
  "Möchten Sie mehr über die Geheimnisse eines erfolgreichen Verzeichnisses "
1627
  "wissen?"
1628
 
1629
+ #: includes/admin/class-admin.php:226
1630
  msgctxt "drip pointer"
1631
  msgid "Yes, please!"
1632
  msgstr "Ja, bitte!"
1633
 
1634
+ #: includes/admin/class-admin.php:228
1635
  msgctxt "drip pointer"
1636
  msgid "No, thanks"
1637
  msgstr "Nein, danke"
1638
 
1639
+ #: includes/admin/class-admin.php:276
1640
  msgctxt "drip pointer"
1641
  msgid "Invalid e-mail address."
1642
  msgstr "Ungültiger Erneuerungszustand."
1643
 
1644
+ #: includes/admin/class-admin.php:317
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1645
  msgctxt "admin menu"
1646
  msgid "Manage Fees"
1647
  msgstr "Preise Verwalten"
1648
 
1649
+ #: includes/admin/class-admin.php:320
 
 
 
 
 
1650
  msgctxt "admin menu"
1651
  msgid "Manage Form Fields"
1652
  msgstr "Felder verwalten"
1653
 
1654
+ #: includes/admin/class-admin.php:324
1655
  #, fuzzy
1656
  msgctxt "admin menu"
1657
  msgid "Payment History"
1658
  msgstr "Bezahlhistorie"
1659
 
1660
+ #: includes/admin/class-admin.php:327
1661
  #, fuzzy
1662
  msgctxt "admin menu"
1663
+ msgid "Import & Export"
1664
  msgstr "CSV Import"
1665
 
1666
+ #: includes/admin/class-admin.php:330
1667
  msgctxt "admin menu"
1668
  msgid "Debug"
1669
  msgstr "Fehlerkorrektur"
1670
 
1671
  #: includes/admin/settings/class-settings-admin.php:46
1672
+ #, fuzzy
1673
  msgctxt "admin menu"
1674
+ msgid "Settings"
1675
+ msgstr "Einstellungen"
1676
 
1677
+ #: includes/admin/class-admin.php:858
1678
  msgctxt "admin category id"
1679
  msgid "ID"
1680
  msgstr "ID"
1681
 
1682
+ #: includes/admin/class-csv-exporter.php:104
1683
  msgctxt "admin csv-export"
1684
  msgid "Could not create a temporary directory for handling this CSV export."
1685
  msgstr ""
1686
  "Es konnte kein temporäres Verzeichnis erstellt werden um den CSV Export "
1687
  "durchzuführen."
1688
 
1689
+ #: includes/admin/class-csv-exporter.php:107
1690
  msgctxt "admin csv-export"
1691
  msgid "Could not create wpbdp-csv-exports directory."
1692
  msgstr "wpbdp-csv-exports Verzeichnis konnte nicht erstellt werden."
1693
 
1694
+ #: includes/admin/class-csv-exporter.php:112
1695
  msgctxt "admin csv-export"
1696
  msgid "Error while creating a temporary directory for CSV export: %s"
1697
  msgstr ""
1703
  msgid "Could not decode export state information."
1704
  msgstr ""
1705
 
 
 
 
 
 
 
 
 
 
 
 
1706
  #: templates/admin/csv-export.tpl.php:14
1707
  msgctxt "admin csv-export"
1708
  msgid ""
1716
  "Erweiterungen abzuschalten und/oder den Wert von 'memory_limit' und "
1717
  "'max_execution_time' in deiner php.ini Konfigurationsdatei anzupassen."
1718
 
1719
+ #: templates/admin/csv-export.tpl.php:29
1720
  msgctxt "admin csv-export"
1721
  msgid "Export Configuration"
1722
  msgstr "Export Konfiguration"
1723
 
1724
+ #: templates/admin/csv-export.tpl.php:32
1725
  msgctxt "admin csv-export"
1726
  msgid "Export settings"
1727
  msgstr "Export Einstellungen"
1728
 
1729
+ #: templates/admin/csv-export.tpl.php:36
1730
  msgctxt "admin csv-export"
1731
  msgid "Which listings to export?"
1732
  msgstr "Welche Einträge sollen exportiert werden?"
1733
 
1734
+ #: templates/admin/csv-export.tpl.php:40
1735
  msgctxt "admin csv-export"
1736
  msgid "All"
1737
  msgstr "Alle"
1738
 
1739
+ #: templates/admin/csv-export.tpl.php:41
1740
  msgctxt "admin csv-export"
1741
  msgid "Active Only"
1742
  msgstr "Nur Aktiv"
1743
 
1744
+ #: templates/admin/csv-export.tpl.php:42
1745
  msgctxt "admin csv-export"
1746
  msgid "Active + Pending Renewal"
1747
  msgstr "Aktiv + Ausstehende Erneuerungen"
1748
 
1749
+ #: templates/admin/csv-export.tpl.php:48
1750
  msgctxt "admin csv-export"
1751
  msgid "Export images?"
1752
  msgstr "Bilder exportieren?"
1753
 
1754
+ #: templates/admin/csv-export.tpl.php:53
1755
  msgctxt "admin csv-export"
1756
  msgid "Export images"
1757
  msgstr "Bilder exportieren"
1758
 
1759
+ #: templates/admin/csv-export.tpl.php:55
1760
  msgctxt "admin csv-export"
1761
  msgid ""
1762
  "When checked, instead of just a CSV file a ZIP file will be generated with "
1765
  "Wenn aktiviert, wird anstatt nur einer CSV-Datei, eine ZIP Datei generiert, "
1766
  "die sowohl eine CSV-Datei und Eintragsbilder enthält."
1767
 
1768
+ #: templates/admin/csv-export.tpl.php:61
1769
  msgctxt "admin csv-export"
1770
  msgid "Additional metadata to export:"
1771
  msgstr "zu exportierende zusätzliche Metadaten"
1772
 
1773
+ #: templates/admin/csv-export.tpl.php:66
1774
  msgctxt "admin csv-export"
1775
  msgid "Include unique IDs for each listing (sequence_id column)."
1776
  msgstr "Füge Schlüssel Ids für jeden Eintrag hinzu (sequence_id_column)"
1777
 
1778
+ #: templates/admin/csv-export.tpl.php:68
1779
  msgctxt "admin csv-export"
1780
  msgid ""
1781
  "If you plan to re-import the listings into BD and don't want new ones "
1784
  "Wenn Sie vorhaben die Einträge in BD erneut zu importieren und keine neuen "
1785
  "erstellen wollen, wählen Sie diese Option!"
1786
 
1787
+ #: templates/admin/csv-export.tpl.php:74
1788
  msgctxt "admin csv-export"
1789
  msgid "Author information (username)"
1790
  msgstr "Author Informationen (Benutzername)"
1791
 
1792
+ #: templates/admin/csv-export.tpl.php:79
1793
  msgctxt "admin csv-export"
1794
  msgid "Listing expiration date"
1795
  msgstr "Eintrag Enddatum"
1796
 
1797
+ #: templates/admin/csv-export.tpl.php:83
1798
  #, fuzzy
1799
  msgctxt "admin csv-export"
1800
  msgid "Listing created date"
1801
  msgstr "Eintrag Bilder"
1802
 
1803
+ #: templates/admin/csv-export.tpl.php:87
1804
  #, fuzzy
1805
  msgctxt "admin csv-export"
1806
  msgid "Listing last updated date"
1807
  msgstr "Eintrag Enddatum"
1808
 
1809
+ #: templates/admin/csv-export.tpl.php:91
1810
+ #, fuzzy
1811
+ msgctxt "admin csv-export"
1812
+ msgid "Listing T&C acceptance date"
1813
+ msgstr "Eintrag Bilder"
1814
+
1815
+ #: templates/admin/csv-export.tpl.php:96
1816
  msgctxt "admin csv-export"
1817
  msgid "CSV File Settings"
1818
  msgstr "CSV-Datei Einstellungen"
1819
 
1820
+ #: templates/admin/csv-export.tpl.php:100
1821
  msgctxt "admin csv-export"
1822
  msgid "What operating system will you use to edit the CSV file?"
1823
  msgstr "Welches Betriebssystem verwenden Sie, um die CSV-Datei zu bearbeiten?"
1824
 
1825
+ #: templates/admin/csv-export.tpl.php:107
1826
  msgctxt "admin csv-export"
1827
  msgid "Windows"
1828
  msgstr "Windows"
1829
 
1830
+ #: templates/admin/csv-export.tpl.php:112
1831
  msgctxt "admin csv-export"
1832
  msgid "macOS"
1833
  msgstr "MacOS"
1834
 
1835
+ #: templates/admin/csv-export.tpl.php:114
1836
  msgctxt "admin csv-export"
1837
  msgid ""
1838
  "Windows and macOS versions of MS Excel handle CSV files differently. To make "
1846
  "müssen wir für jedes Betriebssystem unterschiedliche Versionen der Datei "
1847
  "generieren."
1848
 
1849
+ #: templates/admin/csv-export.tpl.php:119
1850
  msgctxt "admin csv-export"
1851
  msgid "Image Separator"
1852
  msgstr "Bildtrenner"
1853
 
1854
+ #: templates/admin/csv-export.tpl.php:130
1855
  msgctxt "admin csv-export"
1856
  msgid "Category Separator"
1857
  msgstr "Kategorietrenner"
1858
 
1859
+ #: templates/admin/csv-export.tpl.php:142
1860
  msgctxt "admin csv-export"
1861
  msgid "Export Listings"
1862
  msgstr "Export Einträge"
1863
 
1864
+ #: templates/admin/csv-export.tpl.php:148
1865
  msgctxt "admin csv-export"
1866
  msgid "Export in Progress..."
1867
  msgstr "Export wird durchgeführt..."
1868
 
1869
+ #: templates/admin/csv-export.tpl.php:149
1870
  msgctxt "admin csv-export"
1871
  msgid ""
1872
  "Your export file is being prepared. Please <u>do not leave</u> this page "
1875
  "Die Exportdatei wurde vorbereitet. Bitte <u>verlasse</u> diese Seite nicht "
1876
  "bis der Export abgeschlossen wurde."
1877
 
1878
+ #: templates/admin/csv-export.tpl.php:152
1879
  msgctxt "admin csv-export"
1880
  msgid "No. of listings:"
1881
  msgstr "Anzahl der Einträge:"
1882
 
1883
+ #: templates/admin/csv-export.tpl.php:154
1884
  msgctxt "admin csv-export"
1885
  msgid "Approximate export file size:"
1886
  msgstr "Exportdatei Größe ca. :"
1887
 
1888
+ #: templates/admin/csv-export.tpl.php:161
1889
  msgctxt "admin csv-export"
1890
  msgid "Cancel Export"
1891
  msgstr "Export abbrechen"
1892
 
1893
+ #: templates/admin/csv-export.tpl.php:166
1894
  msgctxt "admin csv-export"
1895
  msgid "Export Complete"
1896
  msgstr "Export vollständig"
1897
 
1898
+ #: templates/admin/csv-export.tpl.php:167
1899
  msgctxt "admin csv-export"
1900
  msgid ""
1901
  "Your export file has been successfully created and it is now ready for "
1904
  "Der Export wurde erfolgreich generiert und steht nun zum Herunterladen zur "
1905
  "Verfügung."
1906
 
1907
+ #: templates/admin/csv-export.tpl.php:171
1908
+ #, fuzzy
1909
  msgctxt "admin csv-export"
1910
+ msgid "Download %1$s (%2$s)"
1911
  msgstr "Herunterladen %s (%s)"
1912
 
1913
+ #: templates/admin/csv-export.tpl.php:178
1914
  msgctxt "admin csv-export"
1915
  msgid ""
1916
  "Click \"Cleanup\" once the file has been downloaded in order to remove all "
1919
  "Klicke \"Bereinigen\" wenn die Datei heruntergeladen wurde um alle "
1920
  "temporären Daten zu löschen, die während des Exportprozesses erzeugt wurden."
1921
 
1922
+ #: templates/admin/csv-export.tpl.php:179
1923
  msgctxt "admin csv-export"
1924
  msgid "Cleanup"
1925
  msgstr "Bereinigen"
1926
 
1927
+ #: templates/admin/csv-export.tpl.php:184
1928
  msgctxt "admin csv-export"
1929
  msgid "Export Canceled"
1930
  msgstr "Export abgebrochen"
1931
 
1932
+ #: templates/admin/csv-export.tpl.php:185
1933
  msgctxt "admin csv-export"
1934
  msgid "The export has been canceled."
1935
  msgstr "Der Export wurde abgebrochen."
1936
 
1937
+ #: templates/admin/csv-export.tpl.php:186
1938
  msgctxt "admin csv-export"
1939
  msgid "← Return to CSV Export"
1940
  msgstr "← Zurück nach CSV Export"
3395
  msgid "Disabled"
3396
  msgstr "Inaktiv"
3397
 
3398
+ #: includes/admin/helpers/class-listing-timeline.php:114
3399
  #, fuzzy
3400
  msgctxt "listing timeline"
3401
  msgid "Listing created"
3402
  msgstr "Eintrag Bilder"
3403
 
3404
+ #: includes/admin/helpers/class-listing-timeline.php:119
3405
  #, fuzzy
3406
  msgctxt "listing timeline"
3407
  msgid "Listing expired"
3408
  msgstr "Ein Eintrag läuft aus."
3409
 
3410
+ #: includes/admin/helpers/class-listing-timeline.php:124
3411
  #, fuzzy
3412
  msgctxt "listing timeline"
3413
  msgid "Listing renewed"
3414
  msgstr "Eintrag wurde aktualisiert."
3415
 
3416
+ #: includes/admin/helpers/class-listing-timeline.php:129
3417
+ msgctxt "listing timeline"
3418
+ msgid "T&C acceptance date"
3419
+ msgstr ""
3420
+
3421
+ #: includes/admin/helpers/class-listing-timeline.php:144
3422
  msgctxt "listing timeline"
3423
  msgid "Paid as admin"
3424
  msgstr ""
3425
 
3426
+ #: includes/admin/helpers/class-listing-timeline.php:146
3427
  #, fuzzy
3428
  msgctxt "listing timeline"
3429
  msgid "Listing imported"
3430
  msgstr "Ein Eintrag läuft aus."
3431
 
3432
+ #: includes/admin/helpers/class-listing-timeline.php:148
3433
  #, fuzzy
3434
  msgctxt "listing timeline"
3435
  msgid "Initial Payment"
3680
  msgid "Valid placeholders: %s"
3681
  msgstr "Gültige Platzhalter: %s"
3682
 
3683
+ #: includes/admin/settings/class-settings-bootstrap.php:95
3684
  msgctxt "admin settings"
3685
  msgid ""
3686
  "<strong>IMPORTANT:</strong> subpages of the main directory page cannot be "
3816
  msgstr "Author"
3817
 
3818
  #: includes/admin/settings/class-settings-bootstrap.php:724
3819
+ #: includes/functions.php:1195
3820
  msgctxt "admin settings"
3821
  msgid "Date posted"
3822
  msgstr "Datum gepostet"
3823
 
3824
  #: includes/admin/settings/class-settings-bootstrap.php:725
3825
+ #: includes/functions.php:1196
3826
  msgctxt "admin settings"
3827
  msgid "Date last modified"
3828
  msgstr "Datum zuletzt verändert"
3852
  msgid "Fee Plan Custom Order, then Title"
3853
  msgstr ""
3854
 
3855
+ #: includes/admin/settings/class-settings-bootstrap.php:824
3856
  msgctxt "admin settings"
3857
  msgid "You can manage your themes on <a>Directory Themes</a>."
3858
  msgstr ""
3859
 
3860
+ #: includes/admin/settings/class-settings-bootstrap.php:833
3861
  msgctxt "admin settings"
3862
  msgid "Use the BD theme style for BD buttons"
3863
  msgstr ""
3864
 
3865
+ #: includes/admin/settings/class-settings-bootstrap.php:834
3866
  msgctxt "admin settings"
3867
  msgid "Use the WP theme style for BD buttons"
3868
  msgstr ""
3869
 
3870
+ #: includes/admin/settings/class-settings-bootstrap.php:992
3871
  msgctxt "admin settings"
3872
  msgid ""
3873
  "For paid listing images, configure that by adding or editing a <a>Fee Plan</"
3877
  "erstellen eines <a>Preisplan</a> an Stelle dieser Einstellungen, die von "
3878
  "bezahlten Einträgen ignoriert wird."
3879
 
3880
+ #: includes/admin/settings/class-settings-bootstrap.php:1003
3881
+ #: includes/admin/settings/class-settings-bootstrap.php:1056
3882
  #, fuzzy
3883
  msgctxt "admin settings"
3884
  msgid "Excerpt view."
3885
  msgstr "Im Textauszug"
3886
 
3887
+ #: includes/admin/settings/class-settings-bootstrap.php:1004
3888
+ #: includes/admin/settings/class-settings-bootstrap.php:1057
3889
  #, fuzzy
3890
  msgctxt "admin settings"
3891
  msgid "Detail view."
3892
  msgstr "Verzeichnis"
3893
 
3894
+ #: includes/admin/settings/class-settings-bootstrap.php:1114
3895
  msgctxt "admin settings"
3896
+ msgid "AED currency is not supported by %1$s. %2$s"
3897
  msgstr ""
3898
 
3899
+ #: includes/admin/settings/class-settings-bootstrap.php:1132
3900
  msgctxt "admin settings"
3901
  msgid "Australian Dollar (AUD)"
3902
  msgstr "Australischer Dollar (AUD)"
3903
 
3904
+ #: includes/admin/settings/class-settings-bootstrap.php:1133
3905
  msgctxt "admin settings"
3906
  msgid "Brazilian Real (BRL)"
3907
  msgstr "Brasilianischer Real (BRL)"
3908
 
3909
+ #: includes/admin/settings/class-settings-bootstrap.php:1134
3910
  msgctxt "admin settings"
3911
  msgid "Canadian Dollar (CAD)"
3912
  msgstr "Kanadischer Dollar (CAD)"
3913
 
3914
+ #: includes/admin/settings/class-settings-bootstrap.php:1135
3915
  msgctxt "admin settings"
3916
  msgid "Czech Koruna (CZK)"
3917
  msgstr "Tschechische Koruna (CZK)"
3918
 
3919
+ #: includes/admin/settings/class-settings-bootstrap.php:1136
3920
  msgctxt "admin settings"
3921
  msgid "Danish Krone (DKK)"
3922
  msgstr "Dänische Krone (DKK)"
3923
 
3924
+ #: includes/admin/settings/class-settings-bootstrap.php:1137
3925
  msgctxt "admin settings"
3926
  msgid "United Arab Emirates Dirham (AED)"
3927
  msgstr ""
3928
 
3929
+ #: includes/admin/settings/class-settings-bootstrap.php:1138
3930
  msgctxt "admin settings"
3931
  msgid "Euro (EUR)"
3932
  msgstr "Euro (EUR)"
3933
 
3934
+ #: includes/admin/settings/class-settings-bootstrap.php:1139
3935
  msgctxt "admin settings"
3936
  msgid "Hong Kong Dollar (HKD)"
3937
  msgstr "Hong Kong Dollar (HKD)"
3938
 
3939
+ #: includes/admin/settings/class-settings-bootstrap.php:1140
3940
  msgctxt "admin settings"
3941
  msgid "Hungarian Forint (HUF)"
3942
  msgstr "Ungarischer Forint (HUF)"
3943
 
3944
+ #: includes/admin/settings/class-settings-bootstrap.php:1141
3945
  msgctxt "admin settings"
3946
  msgid "Israeli New Shequel (ILS)"
3947
  msgstr "Israelischer Neuer Schequel (ILS)"
3948
 
3949
+ #: includes/admin/settings/class-settings-bootstrap.php:1142
3950
  msgctxt "admin settings"
3951
  msgid "Japanese Yen (JPY)"
3952
  msgstr "Japanischer Jen (JPY)"
3953
 
3954
+ #: includes/admin/settings/class-settings-bootstrap.php:1143
3955
  msgctxt "admin settings"
3956
  msgid "Moroccan Dirham (MAD)"
3957
  msgstr ""
3958
 
3959
+ #: includes/admin/settings/class-settings-bootstrap.php:1144
3960
  msgctxt "admin settings"
3961
  msgid "Malasian Ringgit (MYR)"
3962
  msgstr "Malaysischer Ringgit (MYR)"
3963
 
3964
+ #: includes/admin/settings/class-settings-bootstrap.php:1145
3965
  msgctxt "admin settings"
3966
  msgid "Mexican Peso (MXN)"
3967
  msgstr "Mexikanischer Peso (MXN)"
3968
 
3969
+ #: includes/admin/settings/class-settings-bootstrap.php:1146
3970
  msgctxt "admin settings"
3971
  msgid "Norwegian Krone (NOK)"
3972
  msgstr "Norwegische Krone (NOK)"
3973
 
3974
+ #: includes/admin/settings/class-settings-bootstrap.php:1147
3975
  msgctxt "admin settings"
3976
  msgid "New Zealand Dollar (NZD)"
3977
  msgstr "Neuseeland Dollar (NZD)"
3978
 
3979
+ #: includes/admin/settings/class-settings-bootstrap.php:1148
3980
  msgctxt "admin settings"
3981
  msgid "Philippine Peso (PHP)"
3982
  msgstr "Philippinischer Peso (PHP)"
3983
 
3984
+ #: includes/admin/settings/class-settings-bootstrap.php:1149
3985
  msgctxt "admin settings"
3986
  msgid "Polish Zloty (PLN)"
3987
  msgstr "Polnischer Zloty (PLN)"
3988
 
3989
+ #: includes/admin/settings/class-settings-bootstrap.php:1150
3990
  msgctxt "admin settings"
3991
  msgid "Pound Sterling (GBP)"
3992
  msgstr "Pfund Sterling (GBP)"
3993
 
3994
+ #: includes/admin/settings/class-settings-bootstrap.php:1151
3995
  msgctxt "admin settings"
3996
  msgid "Singapore Dollar (SGD)"
3997
  msgstr "Singapore Dollar (SGD)"
3998
 
3999
+ #: includes/admin/settings/class-settings-bootstrap.php:1152
4000
  msgctxt "admin settings"
4001
  msgid "Swedish Krona (SEK)"
4002
  msgstr "Schwedische Krone (SEK)"
4003
 
4004
+ #: includes/admin/settings/class-settings-bootstrap.php:1153
4005
  msgctxt "admin settings"
4006
  msgid "Swiss Franc (CHF)"
4007
  msgstr "Schweizer Franken (CHF)"
4008
 
4009
+ #: includes/admin/settings/class-settings-bootstrap.php:1154
4010
  msgctxt "admin settings"
4011
  msgid "Taiwan Dollar (TWD)"
4012
  msgstr "Taiwanischer Dollar (TWD)"
4013
 
4014
+ #: includes/admin/settings/class-settings-bootstrap.php:1155
4015
  msgctxt "admin settings"
4016
  msgid "Thai Baht (THB)"
4017
  msgstr "Thailändischer Baht (THB)"
4018
 
4019
+ #: includes/admin/settings/class-settings-bootstrap.php:1156
4020
  msgctxt "admin settings"
4021
  msgid "Turkish Lira (TRY)"
4022
  msgstr "Türkische Lira (TRY)"
4023
 
4024
+ #: includes/admin/settings/class-settings-bootstrap.php:1157
4025
  msgctxt "admin settings"
4026
  msgid "U.S. Dollar (USD)"
4027
  msgstr "U.S. Dollar"
4028
 
4029
+ #: includes/admin/settings/class-settings-bootstrap.php:1181
4030
  msgctxt "admin settings"
4031
  msgid "Show currency symbol on the left"
4032
  msgstr "Währungssymbol links anzeigen"
4033
 
4034
+ #: includes/admin/settings/class-settings-bootstrap.php:1182
4035
  msgctxt "admin settings"
4036
  msgid "Show currency symbol on the right"
4037
  msgstr "Währungssymbol rechts anzeigen"
4038
 
4039
+ #: includes/admin/settings/class-settings-bootstrap.php:1183
4040
  msgctxt "admin settings"
4041
  msgid "Do not show currency symbol"
4042
  msgstr "Währungssymbol nicht anzeigen"
4043
 
4044
+ #: includes/admin/settings/class-settings-bootstrap.php:1204
4045
  msgctxt "admin settings"
4046
  msgid ""
4047
  "Thank you for your payment. Your payment is being verified and your listing "
4051
  "geprüft. Die Verifizierung und die Prüfung können 48 Stunden in Anspruch "
4052
  "nehmen."
4053
 
4054
+ #: includes/admin/settings/class-settings-bootstrap.php:1225
4055
  msgctxt "admin settings"
4056
  msgid ""
4057
  "Listings with pending payments are marked as abandoned after this time. You "
4058
  "can also <a>customize the e-mail</a> users receive."
4059
  msgstr ""
4060
 
4061
+ #: includes/admin/settings/class-settings-bootstrap.php:1255
4062
  msgctxt "admin settings"
4063
  msgid "Try listing's email field first, then author's email."
4064
  msgstr "Versuchen Sie das E-Mail-Feld zuerst, dann die E-Mail des Autors."
4065
 
4066
+ #: includes/admin/settings/class-settings-bootstrap.php:1256
4067
  msgctxt "admin settings"
4068
  msgid "Try author's email first and then listing's email field."
4069
  msgstr ""
4070
  "Probieren sie erst die E-Mail des Authors und dann die E-Mail des Felds."
4071
 
4072
+ #: includes/admin/settings/class-settings-bootstrap.php:1269
4073
  msgctxt "admin settings"
4074
  msgid "Plain (text/plain)"
4075
  msgstr ""
4076
 
4077
+ #: includes/admin/settings/class-settings-bootstrap.php:1270
4078
  msgctxt "admin settings"
4079
  msgid "HTML (text/html)"
4080
  msgstr ""
4081
 
4082
+ #: includes/admin/settings/class-settings-bootstrap.php:1271
4083
  msgctxt "admin settings"
4084
  msgid "Both (multipart/alternative)"
4085
  msgstr ""
4086
 
4087
+ #: includes/admin/settings/class-settings-bootstrap.php:1285
4088
  msgctxt "admin settings"
4089
  msgid "A new listing is submitted."
4090
  msgstr "Ein neuer Eintrag wurde übermittelt."
4091
 
4092
+ #: includes/admin/settings/class-settings-bootstrap.php:1286
4093
  msgctxt "admin settings"
4094
  msgid "A listing is edited."
4095
  msgstr "Ein Eintrag wurde bearbeitet."
4096
 
4097
+ #: includes/admin/settings/class-settings-bootstrap.php:1287
4098
  msgctxt "admin settings"
4099
  msgid "A listing expires."
4100
  msgstr "Ein Eintrag läuft aus."
4101
 
4102
+ #: includes/admin/settings/class-settings-bootstrap.php:1288
4103
  #, fuzzy
4104
  msgctxt "admin settings"
4105
  msgid "A listing is renewed."
4106
  msgstr "Ein Eintrag wurde bearbeitet."
4107
 
4108
+ #: includes/admin/settings/class-settings-bootstrap.php:1289
4109
  #, fuzzy
4110
  msgctxt "admin settings"
4111
  msgid "A listing payment is completed."
4112
  msgstr "Ein Eintrag wurde bearbeitet."
4113
 
4114
+ #: includes/admin/settings/class-settings-bootstrap.php:1290
4115
  #, fuzzy
4116
  msgctxt "admin settings"
4117
  msgid "A listing has been reported as inappropriate."
4118
  msgstr "Der Eintrag wurde aktualisiert"
4119
 
4120
+ #: includes/admin/settings/class-settings-bootstrap.php:1291
4121
  msgctxt "admin settings"
4122
  msgid "A contact message is sent to a listing's owner."
4123
  msgstr "Eine Nachricht wurde an einen Eintrags-Eigentümer versendet."
4124
 
4125
+ #: includes/admin/settings/class-settings-bootstrap.php:1317
4126
  msgctxt "admin settings"
4127
  msgid "Their listing is submitted."
4128
  msgstr "Ihr Eintrag ist eingereicht."
4129
 
4130
+ #: includes/admin/settings/class-settings-bootstrap.php:1318
4131
  msgctxt "admin settings"
4132
  msgid "Their listing is approved/published."
4133
  msgstr "Ihr Eintrag ist genehmigt/veröffentlicht."
4134
 
4135
+ #: includes/admin/settings/class-settings-bootstrap.php:1319
4136
  #, fuzzy
4137
  msgctxt "admin settings"
4138
  msgid "A payment for their listing is completed."
4139
  msgstr "Ihr Eintrag ist eingereicht."
4140
 
4141
+ #: includes/admin/settings/class-settings-bootstrap.php:1320
4142
  #, fuzzy
4143
  msgctxt "admin settings"
4144
  msgid "Their listing expired or is about to expire."
4145
  msgstr "Ihr Eintrag ist eingereicht."
4146
 
4147
+ #: includes/admin/settings/class-settings-bootstrap.php:1337
4148
+ #: includes/admin/settings/class-settings-bootstrap.php:1356
4149
+ #: includes/admin/settings/class-settings-bootstrap.php:1381
4150
+ #: includes/admin/settings/class-settings-bootstrap.php:1416
4151
+ #: includes/admin/settings/class-settings-bootstrap.php:1452
4152
  msgctxt "admin settings"
4153
  msgid "Listing's title"
4154
  msgstr "Eintrag Titel"
4155
 
4156
+ #: includes/admin/settings/class-settings-bootstrap.php:1338
4157
+ #: includes/admin/settings/class-settings-bootstrap.php:1417
4158
  #, fuzzy
4159
  msgctxt "admin settings"
4160
  msgid "Listing's fee plan name"
4161
  msgstr "Eintrag Enddatum"
4162
 
4163
+ #: includes/admin/settings/class-settings-bootstrap.php:1339
4164
+ #: includes/admin/settings/class-settings-bootstrap.php:1418
4165
  #, fuzzy
4166
  msgctxt "admin settings"
4167
  msgid "Listing's fee plan description"
4168
  msgstr "Auswahl der Preispakete"
4169
 
4170
+ #: includes/admin/settings/class-settings-bootstrap.php:1340
4171
+ #: includes/admin/settings/class-settings-bootstrap.php:1419
4172
  #, fuzzy
4173
  msgctxt "admin settings"
4174
  msgid "Listing's fee plan details"
4175
  msgstr "Eintrag Enddatum"
4176
 
4177
+ #: includes/admin/settings/class-settings-bootstrap.php:1353
4178
  msgctxt "admin settings"
4179
  msgid ""
4180
  "Your listing \"[listing]\" is now available at [listing-url] and can be "
4183
  "Dein Eintrag \"[listing]\" ist jetzt verfügbar unter [listing-url] und "
4184
  "kann öffentlich eingesehen werden."
4185
 
4186
+ #: includes/admin/settings/class-settings-bootstrap.php:1357
4187
+ #: includes/admin/settings/class-settings-bootstrap.php:1380
4188
  msgctxt "admin settings"
4189
  msgid "Listing's URL"
4190
  msgstr "Eintrags URL"
4191
 
4192
+ #: includes/admin/settings/class-settings-bootstrap.php:1358
4193
+ #: includes/admin/settings/class-settings-bootstrap.php:1386
4194
  #, fuzzy
4195
  msgctxt "admin settings"
4196
  msgid "Listing's Access Key"
4197
  msgstr "Eintrag Felder / Bilder"
4198
 
4199
+ #: includes/admin/settings/class-settings-bootstrap.php:1382
4200
  #, fuzzy
4201
  msgctxt "admin settings"
4202
  msgid "Sender's name"
4203
  msgstr "Authorname"
4204
 
4205
+ #: includes/admin/settings/class-settings-bootstrap.php:1383
4206
  #, fuzzy
4207
  msgctxt "admin settings"
4208
  msgid "Sender's e-mail address"
4209
  msgstr "Ungültiger Erneuerungszustand."
4210
 
4211
+ #: includes/admin/settings/class-settings-bootstrap.php:1384
4212
  #, fuzzy
4213
  msgctxt "admin settings"
4214
  msgid "Contact message"
4215
  msgstr "Neue Eintrag Anweisungen"
4216
 
4217
+ #: includes/admin/settings/class-settings-bootstrap.php:1385
4218
  msgctxt "admin settings"
4219
  msgid "Date and time the message was sent"
4220
  msgstr ""
4221
 
4222
+ #: includes/admin/settings/class-settings-bootstrap.php:1420
4223
  #, fuzzy
4224
  msgctxt "admin settings"
4225
  msgid "Payment items details."
4226
  msgstr "Bezahldetails"
4227
 
4228
+ #: includes/admin/settings/class-settings-bootstrap.php:1421
4229
  msgctxt "admin settings"
4230
  msgid "URL where user can review and print payment receipt."
4231
  msgstr ""
4232
 
4233
+ #: includes/admin/settings/class-settings-bootstrap.php:1422
4234
  #, fuzzy
4235
  msgctxt "admin settings"
4236
  msgid "Gateway used to process listing's payment."
4237
  msgstr "Bezahlung ausführen"
4238
 
4239
+ #: includes/admin/settings/class-settings-bootstrap.php:1453
4240
  msgctxt "admin settings"
4241
  msgid "Checkout URL link"
4242
  msgstr "Kasse"
4243
 
4244
+ #: includes/admin/settings/class-settings-bootstrap.php:1547
4245
  msgctxt "admin settings"
4246
  msgid ""
4247
  "Could not remove the \"Business Directory Plugin - AJAX Compatibility Module"
4248
  "\". Please remove the file \"%s\" manually or deactivate the plugin."
4249
  msgstr ""
4250
 
4251
+ #: includes/admin/settings/class-settings-bootstrap.php:1563
4252
  msgctxt "admin settings"
4253
  msgid ""
4254
  "Could not activate AJAX Compatibility mode: the directory \"%s\" could not "
4255
  "be created."
4256
  msgstr ""
4257
 
4258
+ #: includes/admin/settings/class-settings-bootstrap.php:1568
4259
  msgctxt "admin settings"
4260
  msgid ""
4261
  "Could not copy the AJAX compatibility plugin \"%s\". Compatibility mode was "
4262
  "not activated."
4263
  msgstr ""
4264
 
4265
+ #: includes/admin/settings/class-settings-bootstrap.php:1598
4266
  #, fuzzy
4267
  msgctxt "admin settings"
4268
  msgid "Uploaded Image (no resize)"
4269
  msgstr "Dateien hochladen"
4270
 
4271
+ #: includes/functions.php:1193
4272
  msgctxt "admin settings"
4273
  msgid "User"
4274
  msgstr "Benutzer"
4275
 
4276
+ #: includes/functions.php:1194
4277
  msgctxt "admin settings"
4278
  msgid "User registration date"
4279
  msgstr "Eintrag Enddatum"
4516
  msgstr "Allgemein"
4517
 
4518
  #: includes/admin/settings/class-settings-bootstrap.php:27
4519
+ #: includes/admin/settings/class-settings-bootstrap.php:974
4520
  #, fuzzy
4521
  msgctxt "settings"
4522
  msgid "Listings"
4526
  #: includes/admin/settings/class-settings-bootstrap.php:31
4527
  #: includes/admin/settings/class-settings-bootstrap.php:34
4528
  #: includes/admin/settings/class-settings-bootstrap.php:37
4529
+ #: includes/admin/settings/class-settings-bootstrap.php:51
4530
+ #: includes/admin/settings/class-settings-bootstrap.php:1236
4531
+ #: includes/admin/settings/class-settings.php:288
4532
  #, fuzzy
4533
  msgctxt "settings"
4534
  msgid "General Settings"
4551
  msgid "Appearance"
4552
  msgstr ""
4553
 
4554
+ #: includes/admin/settings/class-settings-bootstrap.php:39
4555
  #: includes/licensing.php:104
4556
  msgctxt "settings"
4557
  msgid "Premium Modules"
4558
  msgstr "Premium Module"
4559
 
4560
+ #: includes/admin/settings/class-settings-bootstrap.php:54
4561
  #, fuzzy
4562
  msgctxt "settings"
4563
  msgid "Permalink Settings"
4564
  msgstr "Permalink Einstellungen"
4565
 
4566
+ #: includes/admin/settings/class-settings-bootstrap.php:59
4567
  #, fuzzy
4568
  msgctxt "settings"
4569
  msgid "Directory Listings Slug"
4570
  msgstr "Verzeichniseintrag Entwurf"
4571
 
4572
+ #: includes/admin/settings/class-settings-bootstrap.php:69
4573
  #, fuzzy
4574
  msgctxt "settings"
4575
  msgid "Categories Slug"
4576
  msgstr "Kategorie Entwurf"
4577
 
4578
+ #: includes/admin/settings/class-settings-bootstrap.php:70
4579
  #, fuzzy
4580
  msgctxt "settings"
4581
  msgid ""
4584
  "Der Entwurf kann nicht von anderen Ausdrücken verwendet werden. Meide "
4585
  "\"Kategorie\" für diese Instanz."
4586
 
4587
+ #: includes/admin/settings/class-settings-bootstrap.php:81
4588
  #, fuzzy
4589
  msgctxt "settings"
4590
  msgid "Tags Slug"
4591
  msgstr "Tags Entwurf"
4592
 
4593
+ #: includes/admin/settings/class-settings-bootstrap.php:82
4594
  #, fuzzy
4595
  msgctxt "settings"
4596
  msgid "The slug can't be in use by another term. Avoid \"tag\", for instance."
4598
  "Der Entwurf kann nicht von anderen Ausdrücken verwendet werden. Meide \"tag"
4599
  "\" für diese Instanz."
4600
 
4601
+ #: includes/admin/settings/class-settings-bootstrap.php:93
4602
  #, fuzzy
4603
  msgctxt "settings"
4604
  msgid "Remove listing ID from directory URLs?"
4605
  msgstr "Entferne Eintrag ID von diesen Verzeichnis URLs?"
4606
 
4607
+ #: includes/admin/settings/class-settings-bootstrap.php:94
4608
  msgctxt "settings"
4609
  msgid "Check this setting to remove the ID for better SEO."
4610
  msgstr ""
4611
 
4612
+ #: includes/admin/settings/class-settings-bootstrap.php:95
4613
  #, fuzzy
4614
  msgctxt "settings"
4615
  msgid ""
4621
  "die ID aus der URL zu entfernen um einen SEO und Benutzerfreundlichkeits-"
4622
  "Mehrwert zu erhalten."
4623
 
4624
+ #: includes/admin/settings/class-settings-bootstrap.php:103
4625
  #, fuzzy
4626
  msgctxt "settings"
4627
  msgid "reCAPTCHA"
4628
  msgstr "reCAPTCHA Einstellungen"
4629
 
4630
+ #: includes/admin/settings/class-settings-bootstrap.php:106
4631
  #, fuzzy
4632
  msgctxt "settings"
4633
  msgid "Need API keys for reCAPTCHA? Get them <a>here</a>."
4634
  msgstr "Brauchst du API Schlüssel für reCAPTCHA? <a>Hier</a> bekommst du sie."
4635
 
4636
+ #: includes/admin/settings/class-settings-bootstrap.php:113
4637
  #, fuzzy
4638
  msgctxt "settings"
4639
  msgid "Use reCAPTCHA for contact forms"
4640
  msgstr "Benutze reCAPTCHA für Kontaktformen"
4641
 
4642
+ #: includes/admin/settings/class-settings-bootstrap.php:121
4643
  #, fuzzy
4644
  msgctxt "settings"
4645
  msgid "Turn off reCAPTCHA for logged in users?"
4646
  msgstr "reCAPTCHA für angemeldete Benutzern ausschalten?"
4647
 
4648
+ #: includes/admin/settings/class-settings-bootstrap.php:129
4649
  #, fuzzy
4650
  msgctxt "settings"
4651
  msgid "Use reCAPTCHA for listing submits"
4652
  msgstr "Benutze reCAPTCHA für Eintragzusendungen"
4653
 
4654
+ #: includes/admin/settings/class-settings-bootstrap.php:137
4655
  #, fuzzy
4656
  msgctxt "settings"
4657
  msgid "Use reCAPTCHA for edit listings"
4658
  msgstr "Benutze reCAPTCHA für Eintragkommentare?"
4659
 
4660
+ #: includes/admin/settings/class-settings-bootstrap.php:145
4661
  #, fuzzy
4662
  msgctxt "settings"
4663
  msgid "Use reCAPTCHA for report listings"
4664
  msgstr "Benutze reCAPTCHA für Eintragkommentare?"
4665
 
4666
+ #: includes/admin/settings/class-settings-bootstrap.php:153
4667
  #, fuzzy
4668
  msgctxt "settings"
4669
  msgid "Use reCAPTCHA for listing comments?"
4670
  msgstr "Benutze reCAPTCHA für Eintragkommentare?"
4671
 
4672
+ #: includes/admin/settings/class-settings-bootstrap.php:161
4673
  #, fuzzy
4674
  msgctxt "settings"
4675
  msgid "reCAPTCHA Public Key"
4676
  msgstr "reCAPTCHA öffentlicher Schlüssel"
4677
 
4678
+ #: includes/admin/settings/class-settings-bootstrap.php:170
4679
  #, fuzzy
4680
  msgctxt "settings"
4681
  msgid "reCAPTCHA Private Key"
4682
  msgstr "reCAPTCHA privater Schlüssel"
4683
 
4684
+ #: includes/admin/settings/class-settings-bootstrap.php:179
4685
  #, fuzzy
4686
  msgctxt "settings"
4687
  msgid "reCAPTCHA version"
4688
  msgstr "reCAPTCHA Einstellungen"
4689
 
4690
+ #: includes/admin/settings/class-settings-bootstrap.php:192
4691
  msgctxt "settings"
4692
  msgid "reCAPTCHA V3 threshold score"
4693
  msgstr ""
4694
 
4695
+ #: includes/admin/settings/class-settings-bootstrap.php:197
4696
  msgctxt "settings"
4697
  msgid ""
4698
  "reCAPTCHA v3 returns a score (1.0 is very likely a good interaction, 0.0 is "
4701
  "this value will result in reCAPTCHA validation error."
4702
  msgstr ""
4703
 
4704
+ #: includes/admin/settings/class-settings-bootstrap.php:202
4705
  #, fuzzy
4706
  msgctxt "settings"
4707
  msgid "Registration"
4708
  msgstr "Registrierung"
4709
 
4710
+ #: includes/admin/settings/class-settings-bootstrap.php:202
4711
  msgctxt "settings"
4712
  msgid ""
4713
  "We expect that a membership plugin supports the 'redirect_to' parameter for "
4716
  "them to support the WP standard 'redirect_to' query parameter."
4717
  msgstr ""
4718
 
4719
+ #: includes/admin/settings/class-settings-bootstrap.php:207
4720
  #, fuzzy
4721
  msgctxt "settings"
4722
  msgid "Require login to post listings?"
4723
  msgstr "Zurück zum Eintrag."
4724
 
4725
+ #: includes/admin/settings/class-settings-bootstrap.php:216
4726
  msgctxt "settings"
4727
  msgid "Allow anonymous users to edit/manage listings with an access key?"
4728
  msgstr ""
4729
 
4730
+ #: includes/admin/settings/class-settings-bootstrap.php:224
4731
  #, fuzzy
4732
  msgctxt "settings"
4733
  msgid "Login URL"
4734
  msgstr "Login"
4735
 
4736
+ #: includes/admin/settings/class-settings-bootstrap.php:225
4737
  #, fuzzy
4738
  msgctxt "settings"
4739
  msgid "Only enter this if using a membership plugin or custom login page."
4742
  "ein Membership Plugin oder eine benutzerdefinierte Registrierungseite "
4743
  "benutzt. "
4744
 
4745
+ #: includes/admin/settings/class-settings-bootstrap.php:226
4746
  msgctxt "settings"
4747
  msgid "URL of your membership plugin's login page."
4748
  msgstr ""
4749
 
4750
+ #: includes/admin/settings/class-settings-bootstrap.php:235
4751
  #, fuzzy
4752
  msgctxt "settings"
4753
  msgid "Registration URL"
4754
  msgstr "Registrierungs URL"
4755
 
4756
+ #: includes/admin/settings/class-settings-bootstrap.php:236
4757
  #, fuzzy
4758
  msgctxt "settings"
4759
  msgid ""
4763
  "ein Membership Plugin oder eine benutzerdefinierte Registrierungseite "
4764
  "benutzt. "
4765
 
4766
+ #: includes/admin/settings/class-settings-bootstrap.php:237
4767
  msgctxt "settings"
4768
  msgid "URL of your membership plugin's registration page."
4769
  msgstr ""
4770
 
4771
+ #: includes/admin/settings/class-settings-bootstrap.php:246
4772
  msgctxt "settings"
4773
  msgid "Allow users to create accounts during listing submit?"
4774
  msgstr ""
4775
 
4776
+ #: includes/admin/settings/class-settings-bootstrap.php:249
4777
  #, fuzzy
4778
  msgctxt "settings"
4779
  msgid "No"
4780
  msgstr "Nein"
4781
 
4782
+ #: includes/admin/settings/class-settings-bootstrap.php:250
4783
  msgctxt "settings"
4784
  msgid "Yes, and make it optional"
4785
  msgstr ""
4786
 
4787
+ #: includes/admin/settings/class-settings-bootstrap.php:251
4788
  #, fuzzy
4789
  msgctxt "settings"
4790
  msgid "Yes, and make it required"
4791
  msgstr "%s ist ein Pflichtfeld."
4792
 
4793
+ #: includes/admin/settings/class-settings-bootstrap.php:258
4794
+ #: includes/admin/settings/class-settings-bootstrap.php:271
4795
  #, fuzzy
4796
  msgctxt "settings"
4797
  msgid "Terms and Conditions"
4798
  msgstr "Bedingungen und Konditionen"
4799
 
4800
+ #: includes/admin/settings/class-settings-bootstrap.php:263
4801
  #, fuzzy
4802
  msgctxt "settings"
4803
  msgid "Display and require user agreement to Terms and Conditions"
4805
  "Zeige und setze Benutzervereinbarung als Pflichtfeld in Bedingungen und "
4806
  "Konditionen"
4807
 
4808
+ #: includes/admin/settings/class-settings-bootstrap.php:272
4809
  #, fuzzy
4810
  msgctxt "settings"
4811
  msgid ""
4816
  "werden Bedingungen und Konditionen ersetzt durch einen Link der "
4817
  "dazugehörigen Seite."
4818
 
4819
+ #: includes/admin/settings/class-settings-bootstrap.php:274
4820
  #, fuzzy
4821
  msgctxt "settings"
4822
  msgid "Terms and Conditions text goes here."
5254
  #: includes/admin/settings/class-settings-bootstrap.php:808
5255
  #, fuzzy
5256
  msgctxt "settings"
5257
+ msgid "Show the \"Manage Listings\" button."
5258
+ msgstr "\"Einträge anschauen\" Schaltfläche anzeigen"
5259
+
5260
+ #: includes/admin/settings/class-settings-bootstrap.php:817
5261
+ #, fuzzy
5262
+ msgctxt "settings"
5263
  msgid "Show the \"Directory\" button."
5264
  msgstr "\"Verzeichnis\" Schaltfläche anzeigen"
5265
 
5266
+ #: includes/admin/settings/class-settings-bootstrap.php:824
5267
  #, fuzzy
5268
  msgctxt "settings"
5269
  msgid "Theme Settings"
5270
  msgstr "Bildeinstellungen"
5271
 
5272
+ #: includes/admin/settings/class-settings-bootstrap.php:830
5273
  msgctxt "settings"
5274
  msgid "Theme button style"
5275
  msgstr ""
5276
 
5277
+ #: includes/admin/settings/class-settings-bootstrap.php:843
5278
  msgctxt "settings"
5279
  msgid ""
5280
  "Include CSS rules to give their own style to View, Edit and Delete buttons?"
5281
  msgstr ""
5282
 
5283
+ #: includes/admin/settings/class-settings-bootstrap.php:850
5284
  #, fuzzy
5285
  msgctxt "settings"
5286
  msgid "Image"
5287
  msgstr "Bild"
5288
 
5289
+ #: includes/admin/settings/class-settings-bootstrap.php:851
5290
  #, fuzzy
5291
  msgctxt "settings"
5292
  msgid "Image Settings"
5293
  msgstr "Bildeinstellungen"
5294
 
5295
+ #: includes/admin/settings/class-settings-bootstrap.php:856
5296
  #, fuzzy
5297
  msgctxt "settings"
5298
  msgid "Allow images?"
5299
  msgstr "Bilder erlauben?"
5300
 
5301
+ #: includes/admin/settings/class-settings-bootstrap.php:867
5302
  #, fuzzy
5303
  msgctxt "settings"
5304
  msgid "Min Image File Size (KB)"
5305
  msgstr "Maximale Bildgröße (KB)"
5306
 
5307
+ #: includes/admin/settings/class-settings-bootstrap.php:878
5308
  #, fuzzy
5309
  msgctxt "settings"
5310
  msgid "Max Image File Size (KB)"
5311
  msgstr "Maximale Bildgröße (KB)"
5312
 
5313
+ #: includes/admin/settings/class-settings-bootstrap.php:889
5314
  #, fuzzy
5315
  msgctxt "settings"
5316
  msgid "Min image width (px)"
5317
  msgstr "Bildergröße (in px):"
5318
 
5319
+ #: includes/admin/settings/class-settings-bootstrap.php:898
5320
  #, fuzzy
5321
  msgctxt "settings"
5322
  msgid "Min image height (px)"
5323
  msgstr "Bilderhöhe (in px):"
5324
 
5325
+ #: includes/admin/settings/class-settings-bootstrap.php:911
5326
  #, fuzzy
5327
  msgctxt "settings"
5328
  msgid "Max image width (px)"
5329
  msgstr "Maximale Bildbreite"
5330
 
5331
+ #: includes/admin/settings/class-settings-bootstrap.php:922
5332
  #, fuzzy
5333
  msgctxt "settings"
5334
  msgid "Max image height (px)"
5335
  msgstr "Maximale Bildhöhe"
5336
 
5337
+ #: includes/admin/settings/class-settings-bootstrap.php:933
5338
  #, fuzzy
5339
  msgctxt "settings"
5340
  msgid "Turn on thickbox/lightbox?"
5341
  msgstr "Kontrollkästchen/Leuchtkasten aktivieren?"
5342
 
5343
+ #: includes/admin/settings/class-settings-bootstrap.php:934
5344
  #, fuzzy
5345
  msgctxt "settings"
5346
  msgid ""
5349
  "Deaktivieren wenn Konflikte mit anderen Elementen oder installierten "
5350
  "Erweiterungen entstehen"
5351
 
5352
+ #: includes/admin/settings/class-settings-bootstrap.php:940
5353
  #, fuzzy
5354
  msgctxt "settings"
5355
  msgid "Thumbnails"
5356
  msgstr "Thumbnails"
5357
 
5358
+ #: includes/admin/settings/class-settings-bootstrap.php:947
5359
  #, fuzzy
5360
  msgctxt "settings"
5361
  msgid "Thumbnail width (px)"
5362
  msgstr "Thumbnailbreite"
5363
 
5364
+ #: includes/admin/settings/class-settings-bootstrap.php:958
5365
  #, fuzzy
5366
  msgctxt "settings"
5367
  msgid "Thumbnail height (px)"
5368
  msgstr "Thumbnailbreite"
5369
 
5370
+ #: includes/admin/settings/class-settings-bootstrap.php:967
5371
  #, fuzzy
5372
  msgctxt "settings"
5373
  msgid "Crop thumbnails to exact dimensions?"
5374
  msgstr "Vorschaubild auf die exakte Maße abschneiden?"
5375
 
5376
+ #: includes/admin/settings/class-settings-bootstrap.php:968
5377
  #, fuzzy
5378
  msgctxt "settings"
5379
  msgid ""
5389
  "Abhängig von den hochgeladenen Bildern können Thumbnails unterschiedliche "
5390
  "Höhen haben."
5391
 
5392
+ #: includes/admin/settings/class-settings-bootstrap.php:979
5393
  msgctxt "settings"
5394
  msgid "Enforce image upload on submit/edit?"
5395
  msgstr ""
5396
 
5397
+ #: includes/admin/settings/class-settings-bootstrap.php:988
5398
  #, fuzzy
5399
  msgctxt "settings"
5400
  msgid "Number of free images"
5401
  msgstr "Nummer der freien Bilder"
5402
 
5403
+ #: includes/admin/settings/class-settings-bootstrap.php:1000
5404
  msgctxt "settings"
5405
  msgid "Use \"Coming Soon\" photo for listings without any (primary) images?"
5406
  msgstr ""
5407
 
5408
+ #: includes/admin/settings/class-settings-bootstrap.php:1013
5409
  #, fuzzy
5410
  msgctxt "settings"
5411
  msgid "Default thumbnail image size"
5412
  msgstr "Voreingestellter-Nutzer"
5413
 
5414
+ #: includes/admin/settings/class-settings-bootstrap.php:1016
5415
  msgctxt "settings"
5416
  msgid ""
5417
  "This indicates the size of the thumbnail to be used both in excerpt and "
5420
  "width as the starting point."
5421
  msgstr ""
5422
 
5423
+ #: includes/admin/settings/class-settings-bootstrap.php:1024
5424
  #, fuzzy
5425
  msgctxt "settings"
5426
  msgid "Show Thumbnail on main listings page?"
5427
  msgstr "Thumbnail auf der Eintragshauptseite anzeigen?"
5428
 
5429
+ #: includes/admin/settings/class-settings-bootstrap.php:1033
5430
  #, fuzzy
5431
  msgctxt "settings"
5432
  msgid "Featured Badge image"
5433
  msgstr "Featured Levels Module"
5434
 
5435
+ #: includes/admin/settings/class-settings-bootstrap.php:1042
5436
  #, fuzzy
5437
  msgctxt "settings"
5438
  msgid "Featured Badge URL"
5439
  msgstr "Featured Levels Module"
5440
 
5441
+ #: includes/admin/settings/class-settings-bootstrap.php:1043
5442
  msgctxt "settings"
5443
  msgid "Use this to set Featured Badge image as a link to a defined URL."
5444
  msgstr ""
5445
 
5446
+ #: includes/admin/settings/class-settings-bootstrap.php:1044
5447
  #, fuzzy
5448
  msgctxt "settings"
5449
  msgid "URL"
5450
  msgstr "URL"
5451
 
5452
+ #: includes/admin/settings/class-settings-bootstrap.php:1053
5453
  msgctxt "settings"
5454
  msgid "Display featured (sticky) badge on listing:"
5455
  msgstr ""
5456
 
5457
+ #: includes/admin/settings/class-settings-bootstrap.php:1069
5458
  #, fuzzy
5459
  msgctxt "settings"
5460
  msgid "Fee Order"
5461
  msgstr "Auftrag"
5462
 
5463
+ #: includes/admin/settings/class-settings-bootstrap.php:1082
5464
  #, fuzzy
5465
  msgctxt "settings"
5466
  msgid "Turn On payments?"
5467
  msgstr "Bezahlungen aktivieren?"
5468
 
5469
+ #: includes/admin/settings/class-settings-bootstrap.php:1091
5470
  #, fuzzy
5471
  msgctxt "settings"
5472
  msgid "Put payment gateways in test mode?"
5473
  msgstr "Bezahlungsgateway im Testmodus ausführen?"
5474
 
5475
+ #: includes/admin/settings/class-settings-bootstrap.php:1101
5476
  #, fuzzy
5477
  msgctxt "settings"
5478
  msgid "Perform checkouts on the secure (HTTPS) version of your site?"
5479
  msgstr ""
5480
  "Aktiviere (HTTPS) sichere Verbindung für den Bestellprozess deiner Seite?"
5481
 
5482
+ #: includes/admin/settings/class-settings-bootstrap.php:1102
5483
  #, fuzzy
5484
  msgctxt "settings"
5485
  msgid ""
5489
  "Empfohlen zur Erweiterung der Sicherheit. Aktiviere HTTPS auf deinem Server "
5490
  "und <a>erhalte ein SSL Zertifikat</a>"
5491
 
5492
+ #: includes/admin/settings/class-settings-bootstrap.php:1129
5493
  #, fuzzy
5494
  msgctxt "settings"
5495
  msgid "Currency Code"
5496
  msgstr "Währungsschlüssel"
5497
 
5498
+ #: includes/admin/settings/class-settings-bootstrap.php:1168
5499
  #, fuzzy
5500
  msgctxt "settings"
5501
  msgid "Currency Symbol"
5502
  msgstr "Währungssymbol"
5503
 
5504
+ #: includes/admin/settings/class-settings-bootstrap.php:1178
5505
  #, fuzzy
5506
  msgctxt "settings"
5507
  msgid "Currency symbol display"
5508
  msgstr "Währungssymbol Anzeige"
5509
 
5510
+ #: includes/admin/settings/class-settings-bootstrap.php:1193
5511
  msgctxt "settings"
5512
  msgid "Include fee description in receipt?"
5513
  msgstr ""
5514
 
5515
+ #: includes/admin/settings/class-settings-bootstrap.php:1203
5516
  #, fuzzy
5517
  msgctxt "settings"
5518
  msgid "Thank you for payment message"
5519
  msgstr "Danke für die Bezahlung Nachricht"
5520
 
5521
+ #: includes/admin/settings/class-settings-bootstrap.php:1213
5522
  msgctxt "settings"
5523
  msgid "Ask users to come back for abandoned payments?"
5524
  msgstr ""
5525
 
5526
+ #: includes/admin/settings/class-settings-bootstrap.php:1214
5527
  msgctxt "settings"
5528
  msgid ""
5529
  "An abandoned payment is when a user attempts to place a listing and gets to "
5532
  "the transaction. BD can remind them to come back and continue."
5533
  msgstr ""
5534
 
5535
+ #: includes/admin/settings/class-settings-bootstrap.php:1224
5536
  #, fuzzy
5537
  msgctxt "settings"
5538
  msgid "Listing abandonment threshold (hours)"
5539
  msgstr "Eintragsabbuchungsemail Grenze (in tagen)"
5540
 
5541
+ #: includes/admin/settings/class-settings-bootstrap.php:1241
5542
  #, fuzzy
5543
  msgctxt "settings"
5544
  msgid "Display email address fields publicly?"
5545
  msgstr "E-mail Adressfeld öffentlich anzeigen?"
5546
 
5547
+ #: includes/admin/settings/class-settings-bootstrap.php:1242
5548
  #, fuzzy
5549
  msgctxt "settings"
5550
  msgid ""
5554
  msgstr ""
5555
  "E-mailadresse allen Benutzern anzeigen. NICHT ZU EMPFEHLEN. Achtung Spam!"
5556
 
5557
+ #: includes/admin/settings/class-settings-bootstrap.php:1251
5558
  #, fuzzy
5559
  msgctxt "settings"
5560
  msgid "How to determine the listing's email address?"
5561
  msgstr "Wie legt man die E-mailadresse für einen Eintrag fest?"
5562
 
5563
+ #: includes/admin/settings/class-settings-bootstrap.php:1252
5564
  #, fuzzy
5565
  msgctxt "settings"
5566
  msgid ""
5570
  "Dies bewirkt, dass eine E-mail an den Eigentümer geschickt wird, wenn der "
5571
  "Eintrag abläuft."
5572
 
5573
+ #: includes/admin/settings/class-settings-bootstrap.php:1265
5574
  msgctxt "settings"
5575
  msgid "Email Content-Type header"
5576
  msgstr ""
5577
 
5578
+ #: includes/admin/settings/class-settings-bootstrap.php:1266
5579
  msgctxt "settings"
5580
  msgid ""
5581
  "Use this setting to control the format of the emails explicitly. Some "
5584
  "then \"Both\"."
5585
  msgstr ""
5586
 
5587
+ #: includes/admin/settings/class-settings-bootstrap.php:1277
5588
  #, fuzzy
5589
  msgctxt "settings"
5590
  msgid "E-Mail Notifications"
5591
  msgstr "Email Erinnerung"
5592
 
5593
+ #: includes/admin/settings/class-settings-bootstrap.php:1282
5594
  #, fuzzy
5595
  msgctxt "settings"
5596
  msgid "Notify admin via e-mail when..."
5597
  msgstr "Administrator per E-mail informieren wenn... "
5598
 
5599
+ #: includes/admin/settings/class-settings-bootstrap.php:1300
5600
  #, fuzzy
5601
  msgctxt "settings"
5602
  msgid "CC this e-mail address too"
5603
  msgstr "CC diese E-mail an"
5604
 
5605
+ #: includes/admin/settings/class-settings-bootstrap.php:1306
5606
  #, fuzzy
5607
  msgctxt "settings"
5608
  msgid ""
5612
  "Du kannst dieses Texttemplate verändern, das für die meisten der E-"
5613
  "mailadressen unten verwendet wird."
5614
 
5615
+ #: includes/admin/settings/class-settings-bootstrap.php:1313
5616
  #, fuzzy
5617
  msgctxt "settings"
5618
  msgid "Notify users via e-mail when..."
5619
  msgstr "Benachrichtige Benutzer per E-mail wenn..."
5620
 
5621
+ #: includes/admin/settings/class-settings-bootstrap.php:1325
5622
  #, fuzzy
5623
  msgctxt "settings"
5624
  msgid "Templates"
5625
  msgstr "E-mail Templates"
5626
 
5627
+ #: includes/admin/settings/class-settings-bootstrap.php:1330
5628
  #, fuzzy
5629
  msgctxt "settings"
5630
  msgid "Email confirmation message"
5631
  msgstr "Email Bestätigungsnachricht"
5632
 
5633
+ #: includes/admin/settings/class-settings-bootstrap.php:1331
5634
  #, fuzzy
5635
  msgctxt "settings"
5636
  msgid "Sent after a listing has been submitted."
5637
  msgstr "Senden nachdem der Eintrag eingestellt wurde."
5638
 
5639
+ #: includes/admin/settings/class-settings-bootstrap.php:1349
5640
  #, fuzzy
5641
  msgctxt "settings"
5642
  msgid "Listing published message"
5643
  msgstr "Eintrag veröffentlicht Nachricht"
5644
 
5645
+ #: includes/admin/settings/class-settings-bootstrap.php:1350
5646
  #, fuzzy
5647
  msgctxt "settings"
5648
  msgid "Sent when the listing has been published or approved by an admin."
5650
  "Senden wenn der Eintrag vom Administrator genehmigt oder veröffentlicht "
5651
  "wurde."
5652
 
5653
+ #: includes/admin/settings/class-settings-bootstrap.php:1367
5654
  #, fuzzy
5655
  msgctxt "settings"
5656
  msgid "Listing Contact Message"
5657
  msgstr "Neue Eintrag Anweisungen"
5658
 
5659
+ #: includes/admin/settings/class-settings-bootstrap.php:1368
5660
  #, fuzzy
5661
  msgctxt "settings"
5662
  msgid ""
5666
  "An den Eigentümer senden wenn jemand die Kontaktform auf Ihrer Eintragsseite "
5667
  "verwendet."
5668
 
5669
+ #: includes/admin/settings/class-settings-bootstrap.php:1396
5670
  #, fuzzy
5671
  msgctxt "settings"
5672
  msgid "Payment completed message"
5673
  msgstr "Erneuerungserinnerung E-mail Nachricht"
5674
 
5675
+ #: includes/admin/settings/class-settings-bootstrap.php:1397
5676
  msgctxt "settings"
5677
  msgid "Sent after a Listing's payment is verified by Gateway or admins."
5678
  msgstr ""
5679
 
5680
+ #: includes/admin/settings/class-settings-bootstrap.php:1432
5681
  #, fuzzy
5682
  msgctxt "settings"
5683
  msgid "Payment abandoned reminder message"
5684
  msgstr "Erneuerungserinnerung E-mail Nachricht"
5685
 
5686
+ #: includes/admin/settings/class-settings-bootstrap.php:1433
5687
  msgctxt "settings"
5688
  msgid "Sent some time after a pending payment is abandoned by users."
5689
  msgstr ""
5690
 
5691
+ #: includes/admin/settings/class-settings-bootstrap.php:1463
5692
  #, fuzzy
5693
  msgctxt "settings"
5694
  msgid "E-Mail Notices"
5695
  msgstr "Email Erinnerung"
5696
 
5697
+ #: includes/admin/settings/class-settings-bootstrap.php:1619
5698
  msgctxt "settings"
5699
  msgid "Cropped"
5700
  msgstr ""
5701
 
5702
+ #: includes/admin/settings/class-settings.php:443
5703
+ #: includes/admin/settings/class-settings.php:454
5704
  msgctxt "settings"
5705
  msgid "\"%s\" can not be empty."
5706
  msgstr ""
5707
 
5708
+ #: includes/admin/settings/class-settings.php:461
5709
  msgctxt "settings"
5710
  msgid "The slug \"%s\" is already in use for another taxonomy."
5711
  msgstr ""
5741
  msgid "Deactivate"
5742
  msgstr "Aktiviere Lizenz"
5743
 
 
 
 
 
 
5744
  #: templates/admin/settings-page.tpl.php:7
5745
  msgctxt "settings"
5746
  msgid "Reset Defaults"
5775
  msgid "Pending"
5776
  msgstr "Ausstehend"
5777
 
5778
+ #: includes/admin/settings/class-settings-bootstrap.php:1372
5779
  msgctxt "contact email"
5780
  msgid "You have received a reply from your listing at %s."
5781
  msgstr "Sie haben eine Antwort auf Ihren Eintrag erhalten am %s."
5782
 
5783
+ #: includes/admin/settings/class-settings-bootstrap.php:1373
5784
  msgctxt "contact email"
5785
  msgid "Name: %s"
5786
  msgstr "Name: %s"
5787
 
5788
+ #: includes/admin/settings/class-settings-bootstrap.php:1374
5789
  msgctxt "contact email"
5790
  msgid "E-Mail: %s"
5791
  msgstr "E-mail: %s"
5792
 
5793
+ #: includes/admin/settings/class-settings-bootstrap.php:1375
5794
  msgctxt "contact email"
5795
  msgid "Message:"
5796
  msgstr "Nachricht:"
5797
 
5798
+ #: includes/admin/settings/class-settings-bootstrap.php:1377
5799
  msgctxt "contact email"
5800
  msgid "Time: %s"
5801
  msgstr "Zeit: %s"
5961
  msgid "Listing upgrade to featured"
5962
  msgstr "Eintrag aktualisieren auf Hervorhebung"
5963
 
5964
+ #: includes/installer.php:80
5965
  msgctxt "installer"
5966
  msgid "Default Fee"
5967
  msgstr "Standard Preis"
6466
  "Bezahleinstellungen zu ändern. Das Verzeichnis wird im <i>kostenlosen Modus</"
6467
  "i> ausgeführt, bis die Änderungen gemacht wurden."
6468
 
6469
+ #: includes/class-payment.php:84
6470
  msgctxt "payment"
6471
  msgid "Payment status changed from \"%1$s\" to \"%2$s\"."
6472
  msgstr ""
6473
 
6474
+ #: includes/class-payment.php:125
6475
  #, fuzzy
6476
  msgctxt "payment"
6477
  msgid "Initial payment (\"%s\")"
6478
  msgstr "Initialbezahlung"
6479
 
6480
+ #: includes/class-payment.php:128
6481
  #, fuzzy
6482
  msgctxt "payment"
6483
  msgid "Renewal payment (\"%s\")"
6484
  msgstr "Bezahlung zurückweisen"
6485
 
6486
+ #: includes/class-payment.php:315
6487
  #, fuzzy
6488
  msgctxt "payment"
6489
  msgid "Pending"
6490
  msgstr "Ausstehend"
6491
 
6492
+ #: includes/class-payment.php:316
6493
  msgctxt "payment"
6494
  msgid "Failed"
6495
  msgstr ""
6496
 
6497
+ #: includes/class-payment.php:317
6498
  #, fuzzy
6499
  msgctxt "payment"
6500
  msgid "Completed"
6501
  msgstr "Abgeschlossen"
6502
 
6503
+ #: includes/class-payment.php:318
6504
  #, fuzzy
6505
  msgctxt "payment"
6506
  msgid "Canceled"
6507
  msgstr "Abgebrochen"
6508
 
6509
+ #: includes/class-payment.php:319
6510
  msgctxt "payment"
6511
  msgid "On Hold"
6512
  msgstr ""
6513
 
6514
+ #: includes/class-payment.php:320
6515
  msgctxt "payment"
6516
  msgid "Refunded"
6517
  msgstr ""
6518
 
6519
+ #: includes/class-payment.php:140
6520
  msgctxt "payment summary"
6521
  msgid "%s. Admin Posted."
6522
  msgstr ""
6523
 
6524
+ #: includes/class-payment.php:142
6525
  #, fuzzy
6526
  msgctxt "payment summary"
6527
  msgid "%s. Imported Listing."
6528
  msgstr "Einträge importieren"
6529
 
6530
+ #: includes/class-payment.php:220
6531
  #, fuzzy
6532
  msgctxt "submit listing"
6533
  msgid "Listing submitted by admin. Payment skipped."
6534
  msgstr "Eintrag zusenden (Initialbezahlung)"
6535
 
6536
+ #: includes/views/submit_listing.php:66
6537
  msgctxt "submit listing"
6538
  msgid "Click this field to add categories"
6539
  msgstr ""
6540
 
6541
+ #: includes/views/submit_listing.php:67 templates/submit-listing.tpl.php:23
6542
  #, fuzzy
6543
  msgctxt "submit listing"
6544
  msgid "Complete Listing"
6545
  msgstr "Eintrag Löschen"
6546
 
6547
+ #: includes/views/submit_listing.php:68 templates/submit-listing.tpl.php:28
6548
  #, fuzzy
6549
  msgctxt "submit listing"
6550
  msgid "Continue to Payment"
6551
  msgstr "Initialbezahlung"
6552
 
6553
+ #: includes/views/submit_listing.php:70
6554
  msgctxt "submit listing"
6555
  msgid "Please wait a moment!"
6556
  msgstr ""
6557
 
6558
+ #: includes/views/submit_listing.php:71
6559
  msgctxt "submit listing"
6560
  msgid "Something went wrong!"
6561
  msgstr ""
6562
 
6563
+ #: includes/views/submit_listing.php:96
6564
  #, fuzzy
6565
  msgctxt "submit listing"
6566
  msgid "No listing ID was specified."
6567
  msgstr "Ein Eintrag wurde bearbeitet."
6568
 
6569
+ #: includes/views/submit_listing.php:98
6570
  #, fuzzy
6571
  msgctxt "submit listing"
6572
  msgid "You can't edit this listing."
6573
  msgstr "Kategorie für diesen Eintrag"
6574
 
6575
+ #: includes/views/submit_listing.php:152
6576
  msgctxt "submit listing"
6577
  msgid ""
6578
  "This listing can't be edited at this time because it has no fee plan "
6580
  "to a fee plan."
6581
  msgstr ""
6582
 
6583
+ #: includes/views/submit_listing.php:157
6584
  msgctxt "submit listing"
6585
  msgid ""
6586
  "This listing can't be edited at this time. Please try again later or contact "
6587
  "the admin if the problem persists."
6588
  msgstr ""
6589
 
6590
+ #: includes/views/submit_listing.php:180
6591
  #, fuzzy
6592
  msgctxt "submit listing"
6593
  msgid "You're logged in as admin, payment will be skipped."
6595
  "Du bist als Administrator eingeloggt. Alle Bezahlungsschritte werden "
6596
  "übersprungen."
6597
 
6598
+ #: includes/views/submit_listing.php:407
6599
  #, fuzzy
6600
  msgctxt "submit listing"
6601
  msgid "Category selection"
6602
  msgstr "Kategorien auswählen"
6603
 
6604
+ #: includes/views/submit_listing.php:407
6605
  #, fuzzy
6606
  msgctxt "submit listing"
6607
  msgid "Category & plan selection"
6608
  msgstr "Kategorien auswählen"
6609
 
6610
+ #: includes/views/submit_listing.php:412
6611
  #, fuzzy
6612
  msgctxt "submit listing"
6613
  msgid "Listing Information"
6614
  msgstr "Eintrag Informationen"
6615
 
6616
+ #: includes/views/submit_listing.php:417
6617
  #, fuzzy
6618
  msgctxt "submit listing"
6619
  msgid "Listing Images"
6620
  msgstr "Eintrag Bilder"
6621
 
6622
+ #: includes/views/submit_listing.php:425
6623
  msgctxt "submit listing"
6624
  msgid "Account Creation"
6625
  msgstr ""
6626
 
6627
+ #: includes/views/submit_listing.php:431
6628
  #, fuzzy
6629
  msgctxt "submit listing"
6630
  msgid "Terms and Conditions"
6631
  msgstr "Bedingungen und Konditionen"
6632
 
6633
+ #: includes/views/submit_listing.php:468
6634
  msgctxt "submit listing"
6635
  msgid "(Please choose a fee plan above)"
6636
  msgstr ""
6637
 
6638
+ #: includes/views/submit_listing.php:518
6639
  #, fuzzy
6640
  msgctxt "submit listing"
6641
  msgid "Can not submit a listing at this moment. Please try again later."
6643
  "Ihre Zahlung kann momentan nicht ausgeführt werden. Bitte versuchen Sie es "
6644
  "später noch einmal."
6645
 
6646
+ #: includes/views/submit_listing.php:560
6647
  #, fuzzy
6648
  msgctxt "submit listing"
6649
  msgid "Please select a category."
6650
  msgstr "Bitte wähle eine Preisoption für die Kategorie \"%s\""
6651
 
6652
+ #: includes/views/submit_listing.php:573
6653
  #, fuzzy
6654
  msgctxt "submit listing"
6655
  msgid "Please select a category for your listing."
6656
  msgstr "Bitte wähle eine Preisoption für die Kategorie \"%s\""
6657
 
6658
+ #: includes/views/submit_listing.php:593
6659
  msgctxt "submit listing"
6660
  msgid "Please choose a valid category for your plan."
6661
  msgstr ""
6662
 
6663
+ #: includes/views/submit_listing.php:595
6664
  #, fuzzy
6665
  msgctxt "submit listing"
6666
  msgid "Please choose a valid fee plan for your category selection."
6667
  msgstr "Bitte wähle eine Preisoption für die Kategorie \"%s\""
6668
 
6669
+ #: includes/views/submit_listing.php:835
6670
  #, fuzzy
6671
  msgctxt "submit listing"
6672
  msgid "Please enter your desired username."
6673
  msgstr "Bitte geben Sie einen Namen ein."
6674
 
6675
+ #: includes/views/submit_listing.php:840
6676
  #, fuzzy
6677
  msgctxt "submit listing"
6678
  msgid "Please enter the e-mail for your new account."
6679
  msgstr "Bitte geben Sie einen Namen ein."
6680
 
6681
+ #: includes/views/submit_listing.php:845
6682
  msgctxt "submit listing"
6683
  msgid "The username you chose is already in use. Please use a different one."
6684
  msgstr ""
6685
 
6686
+ #: includes/views/submit_listing.php:850
6687
  msgctxt "submit listing"
6688
  msgid "The e-mail address you chose for your account is already in use."
6689
  msgstr ""
6690
 
6691
+ #: includes/views/submit_listing.php:865
6692
  msgctxt "submit listing"
6693
  msgid "Create a user account on this site"
6694
  msgstr ""
6695
 
6696
+ #: includes/views/submit_listing.php:872
6697
  msgctxt "submit listing"
6698
  msgid ""
6699
  "You need to create an account on the site. Please fill out the form below."
6700
  msgstr ""
6701
 
6702
+ #: includes/views/submit_listing.php:878
6703
  #, fuzzy
6704
  msgctxt "submit listing"
6705
  msgid "Username:"
6706
  msgstr "Benutzer"
6707
 
6708
+ #: includes/views/submit_listing.php:887
6709
  #, fuzzy
6710
  msgctxt "submit listing"
6711
  msgid "Email:"
6868
  msgstr "Soziale Seite (Twitter)"
6869
 
6870
  #: includes/fields/class-fieldtypes-social.php:95
6871
+ #: includes/fields/class-fieldtypes-url.php:152
6872
  msgctxt "form-fields api"
6873
  msgid "URL:"
6874
  msgstr "URL:"
6915
  msgid "URL Field"
6916
  msgstr "URL Feld"
6917
 
6918
+ #: includes/fields/class-fieldtypes-url.php:164
6919
  msgctxt "form-fields api"
6920
  msgid "Link Text (optional):"
6921
  msgstr "Link Text (optional):"
7197
  msgid "Caption for %s is required."
7198
  msgstr "%s ist ein Pflichtfeld."
7199
 
7200
+ #: includes/functions.php:1273
7201
  msgctxt "templates"
7202
  msgid "Return to results"
7203
  msgstr "Zurück zu den Ergebnissen"
7204
 
7205
+ #: includes/functions.php:1277 includes/functions.php:1282
7206
  msgctxt "templates"
7207
  msgid "Go back"
7208
  msgstr "Geh zurück"
7218
  msgid "No listing categories found."
7219
  msgstr "Keine Eintragskategorie gefunden."
7220
 
7221
+ #: includes/templates-ui.php:358
7222
  msgctxt "templates"
7223
  msgid "Search Listings"
7224
  msgstr "Eintrag suchen"
7225
 
7226
+ #: includes/templates-ui.php:363
7227
  msgctxt "templates"
7228
  msgid "Advanced Search"
7229
  msgstr "Erweiterte Suche"
7270
  "angezeigt. Wenn du das nicht möchtest, klicke <a>hier</a> um die "
7271
  "Einstellungen zu ändern."
7272
 
7273
+ #: includes/views/submit_listing.php:352
7274
  msgctxt "templates"
7275
  msgid ""
7276
  "<b>View not available</b>. Do you have the \"Disable Frontend Listing "
7279
  "<b>View not available</b>. Do you have the \"Disable Frontend Listing "
7280
  "Submission?\" setting checked?"
7281
 
7282
+ #: includes/views/submit_listing.php:354
7283
  msgctxt "templates"
7284
  msgid ""
7285
  "Listing submission has been disabled. Contact the administrator for details."
7286
  msgstr ""
7287
 
7288
+ #: includes/views/submit_listing.php:521
7289
  msgctxt "templates"
7290
  msgid ""
7291
  "<b>There are no Fee Plans available</b>, without a fee plan site users can't "
7292
  "submit a listing. %s to create a fee plan"
7293
  msgstr ""
7294
 
7295
+ #: includes/views/submit_listing.php:535
7296
  msgctxt "templates"
7297
  msgid ""
7298
  "Listing submission is not available at the moment. Contact the administrator "
7299
  "for details."
7300
  msgstr ""
7301
 
7302
+ #: includes/views/submit_listing.php:538
7303
  msgctxt "templates"
7304
  msgid ""
7305
  "<b>View not available</b>, there is no \"Category\" association field. %s "
7307
  "an existing field"
7308
  msgstr ""
7309
 
7310
+ #: includes/views/submit_listing.php:914
7311
  msgctxt "templates"
7312
  msgid "Please agree to the Terms and Conditions."
7313
  msgstr "Bitte akzeptieren Sie die Allgemeinen Geschäftsbedingungen."
7314
 
7315
+ #: includes/views/submit_listing.php:924
7316
  msgctxt "templates"
7317
  msgid "Terms and Conditions:"
7318
  msgstr "AGBs:"
7319
 
7320
+ #: includes/views/submit_listing.php:931
7321
  msgctxt "templates"
7322
  msgid "I agree to the <a>Terms and Conditions</a>"
7323
  msgstr "Ich akzeptiere die <a>AGB</a>s"
7330
  msgstr "Kein Eintrag vorhanden."
7331
 
7332
  #: templates/businessdirectory-listings.tpl.php:38
7333
+ #: templates/listings.tpl.php:31 templates/manage_listings.tpl.php:33
7334
  msgctxt "templates"
7335
  msgid "&laquo; Previous "
7336
  msgstr "&laquo; Vorher"
7337
 
7338
  #: templates/businessdirectory-listings.tpl.php:39
7339
+ #: templates/listings.tpl.php:32 templates/manage_listings.tpl.php:34
7340
  msgctxt "templates"
7341
  msgid "Next &raquo;"
7342
  msgstr "Nächste &raquo;"
7343
 
7344
  #: templates/deprecated/search.tpl.php:24 templates/manage-listings.tpl.php:8
7345
+ #: templates/manage_listings.tpl.php:16
7346
  msgctxt "templates"
7347
  msgid "Return to directory"
7348
  msgstr "Zurück zum Verzeichnis"
7417
  msgid "Lost your password?"
7418
  msgstr "Passwort verloren?"
7419
 
7420
+ #: templates/manage-listings.tpl.php:3 templates/manage_listings.tpl.php:20
7421
  msgctxt "templates"
7422
  msgid ""
7423
  "Your current listings are shown below. To edit a listing click the edit "
7426
  "Dein aktueller Eintrag siehe unten. Um den Eintrag zu bearbeiten klicke auf "
7427
  "den Bearbeiten Button. Um ein Eintrag zu löschen klicke den Löschen Button."
7428
 
7429
+ #: templates/manage-listings.tpl.php:6 templates/manage_listings.tpl.php:11
7430
  msgctxt "templates"
7431
  msgid "You do not currently have any listings in the directory."
7432
  msgstr "Momentan sind keine Einträge im Verzeichnis vorhanden."
7629
  msgid "There are no images currently attached to your listing."
7630
  msgstr "Im Moment sind keine Bilder dem Eintrag angehängt."
7631
 
7632
+ #: includes/gateways/class-gateway-authorize-net.php:35
7633
  #, fuzzy
7634
  msgctxt "authorize-net"
7635
  msgid "Authorize.net"
7636
  msgstr "Aktiviere Lizenz"
7637
 
7638
+ #: includes/gateways/class-gateway-authorize-net.php:53
7639
  #, fuzzy
7640
  msgctxt "authorize-net"
7641
  msgid "Login ID"
7642
  msgstr "Login"
7643
 
7644
+ #: includes/gateways/class-gateway-authorize-net.php:54
7645
  #, fuzzy
7646
  msgctxt "authorize-net"
7647
  msgid "Transaction Key"
7648
  msgstr "Transaktionen"
7649
 
7650
+ #: includes/gateways/class-gateway-authorize-net.php:98
7651
  msgctxt "authorize-net"
7652
  msgid "Login ID is missing."
7653
  msgstr "Verkäufer ID nicht angegeben."
7654
 
7655
+ #: includes/gateways/class-gateway-authorize-net.php:101
7656
  msgctxt "authorize-net"
7657
  msgid "Transaction Key is missing."
7658
  msgstr "Transaktionen"
7659
 
7660
+ #: includes/gateways/class-gateway-authorize-net.php:172
7661
+ #: includes/gateways/class-gateway-authorize-net.php:191
7662
+ #: includes/gateways/class-gateway-authorize-net.php:201
7663
  #, fuzzy
7664
  msgctxt "authorize-net"
7665
  msgid ""
7669
  "Ihre Zahlung wartet derzeit auf eine Prüfung. Folgender Grund wurde "
7670
  "angegeben: \"%s\"."
7671
 
7672
+ #: includes/gateways/class-gateway-authorize-net.php:210
7673
  #, fuzzy
7674
  msgctxt "authorize-net"
7675
  msgid ""
7679
  "Das Bezahlung mit Ihrer Kreditkarte ist fehlgeschlagen. Folgender Grund "
7680
  "wurde angeben: \"%s\"."
7681
 
7682
+ #: includes/gateways/class-gateway-authorize-net.php:216
7683
+ msgctxt "authorize-net"
7684
+ msgid "No response returned"
7685
+ msgstr ""
7686
+
7687
+ #: includes/gateways/class-gateway-authorize-net.php:220
7688
  msgctxt "authorize-net"
7689
  msgid "Payment was rejected. The following reason was given: \"%s\"."
7690
  msgstr "Die Zahlung wurde abgelehnt. Folgender Grund wurde angegeben: \"%s\"."
7691
 
7692
+ #: includes/gateways/class-gateway-authorize-net.php:281
7693
+ #: includes/gateways/class-gateway-authorize-net.php:328
7694
  msgctxt "authorize-net"
7695
  msgid "Payment failed. Reason: %s"
7696
  msgstr ""
7697
 
7698
+ #: includes/gateways/class-gateway-authorize-net.php:339
7699
  #, fuzzy
7700
  msgctxt "authorize-net"
7701
  msgid "Listing #%d"
7702
  msgstr "Eintrag bearbeiten"
7703
 
7704
+ #: includes/gateways/class-gateway-authorize-net.php:599
7705
+ #, fuzzy
7706
+ msgctxt "authorize-net"
7707
+ msgid "Customer"
7708
+ msgstr "Benutzerdefiniert"
7709
+
7710
  #: includes/helpers/class-access-keys-sender.php:20
7711
  #, fuzzy
7712
  msgctxt "access keys sender"
7857
  msgid "General"
7858
  msgstr "Allgemein"
7859
 
7860
+ #: includes/licensing.php:288
7861
  #, fuzzy
7862
  msgctxt "licensing"
7863
  msgid "Invalid item ID"
7864
  msgstr "Ungültige Feld ID"
7865
 
7866
+ #: includes/licensing.php:294
7867
  msgctxt "licensing"
7868
  msgid "No license key provided"
7869
  msgstr "Kein Lizenzschlüssel"
7870
 
7871
+ #: includes/licensing.php:318
7872
  #, fuzzy
7873
  msgctxt "licensing"
7874
  msgid "The license key was revoked."
7875
  msgstr "Kein Lizenzschlüssel"
7876
 
7877
+ #: includes/licensing.php:320
7878
  msgctxt "licensing"
7879
  msgid ""
7880
  "If you think this is a mistake, please contact <support-link>Business "
7882
  "reported as revoked by the licensing software."
7883
  msgstr ""
7884
 
7885
+ #: includes/licensing.php:322
7886
  msgctxt "licensing"
7887
  msgid ""
7888
  "Please include the email address you used to purchase <module-name> with "
7889
  "your report."
7890
  msgstr ""
7891
 
7892
+ #: includes/licensing.php:333 includes/licensing.php:376
7893
  msgctxt "licensing"
7894
  msgid "License key is invalid"
7895
  msgstr "Lizenzschlüssel ungültig "
7896
 
7897
+ #: includes/licensing.php:350
7898
  msgctxt "licensing"
7899
  msgid "Invalid module ID"
7900
  msgstr "Ungültige Modul ID"
7901
 
7902
+ #: includes/licensing.php:380
7903
  msgctxt "licensing"
7904
  msgid "Deactivation failed"
7905
  msgstr "Deaktivierung fehlgeschlagen"
7906
 
7907
+ #: includes/licensing.php:388
7908
  msgctxt "licensing"
7909
  msgid ""
7910
  "It was not possible to establish a connection with Business Directory's "
7911
  "server. cURL was not found in your system"
7912
  msgstr ""
7913
 
7914
+ #: includes/licensing.php:390 includes/licensing.php:431
7915
  msgctxt "licensing"
7916
  msgid ""
7917
  "To ensure the security of our systems and adhere to industry best practices, "
7920
  "1.0.1c)."
7921
  msgstr ""
7922
 
7923
+ #: includes/licensing.php:392 includes/licensing.php:433
7924
  msgctxt "licensing"
7925
  msgid ""
7926
  "Upgrading your system will not only allow you to communicate with Business "
7928
  "services using the latest security standards."
7929
  msgstr ""
7930
 
7931
+ #: includes/licensing.php:394
7932
  msgctxt "licensing"
7933
  msgid ""
7934
  "Please contact your hosting provider and ask them to upgrade your system. "
7935
  "Include this message if necessary"
7936
  msgstr ""
7937
 
7938
+ #: includes/licensing.php:410
7939
  msgctxt "licensing"
7940
  msgid ""
7941
  "It was not possible to establish a connection with Business Directory's "
7942
  "server. The connection failed with the following error:"
7943
  msgstr ""
7944
 
7945
+ #: includes/licensing.php:414 includes/licensing.php:466
7946
  msgctxt "licensing"
7947
  msgid ""
7948
  "It looks like your server is not authorized to make requests to Business "
7949
  "Directory servers. Please contact <support-link>Business Directory support</"
7950
+ "support-link> and ask them to add your IP address <ip-address> to the allow "
7951
+ "list."
7952
  msgstr ""
7953
 
7954
+ #: includes/licensing.php:416 includes/licensing.php:468
7955
  msgctxt "licensing"
7956
  msgid "Include this error message with your report."
7957
  msgstr ""
7958
 
7959
+ #: includes/licensing.php:426
7960
  msgctxt "licensing"
7961
  msgid ""
7962
  "It was not possible to establish a connection with Business Directory's "
7963
  "server. A problem occurred in the SSL/TSL handshake:"
7964
  msgstr ""
7965
 
7966
+ #: includes/licensing.php:435
7967
  msgctxt "licensing"
7968
  msgid ""
7969
  "Please contact your hosting provider and ask them to upgrade your system. "
7970
  "Include this message if necessary."
7971
  msgstr ""
7972
 
7973
+ #: includes/licensing.php:442
7974
  msgctxt "licensing"
7975
  msgid "Could not contact licensing server"
7976
  msgstr "Eine Verbindung zum Lizenzserver konnte nicht hergestellt werden."
7977
 
7978
+ #: includes/licensing.php:464
7979
  msgctxt "licensing"
7980
  msgid "The server returned a 403 Forbidden error."
7981
  msgstr ""
7982
 
7983
+ #: includes/licensing.php:532
7984
  #, fuzzy
7985
  msgctxt "licensing"
7986
  msgid "Business Directory - Please verify your license keys"
7987
  msgstr "Branchenverzeichnis - letzte Einträge"
7988
 
7989
+ #: includes/licensing.php:542
7990
  #, fuzzy
7991
  msgctxt "licensing"
7992
  msgid ""
7997
  "Lizenzschlüssel angegeben wurde. Gehen Sie zu <a>Optionen verwalten - "
7998
  "Lizenzen</a>, um Ihre Lizenzinformation einzugeben."
7999
 
8000
+ #: includes/licensing.php:553
8001
  msgctxt "licensing"
8002
  msgid ""
8003
  "You need to activate the license keys for the following themes before they "
8004
  "can be used: %s."
8005
  msgstr ""
8006
 
8007
+ #: includes/licensing.php:561 includes/licensing.php:617
8008
  #, fuzzy
8009
  msgctxt "licensing"
8010
  msgid "Review my license keys"
8011
  msgstr "Erneuere Lizenzschlüssel"
8012
 
8013
+ #: includes/licensing.php:588
8014
  #, fuzzy
8015
  msgctxt "licensing"
8016
  msgid "Business Directory - License key expired"
8017
  msgstr "Branchenverzeichnis - Lizenzschlüssel abgelaufen"
8018
 
8019
+ #: includes/licensing.php:598
8020
  #, fuzzy
8021
  msgctxt "licensing"
8022
  msgid ""
8028
  "abgelaufen. Das Modul wird weiter ausgeführt, jedoch nicht weiter "
8029
  "aktualisiert, bis ein neuer Lizenzschlüssel eingegeben wurde."
8030
 
8031
+ #: includes/licensing.php:609
8032
  #, fuzzy
8033
  msgctxt "licensing"
8034
  msgid ""
8040
  "abgelaufen. Das Modul wird weiter ausgeführt, jedoch nicht weiter "
8041
  "aktualisiert, bis ein neuer Lizenzschlüssel eingegeben wurde."
8042
 
8043
+ #: includes/licensing.php:709
8044
  #, fuzzy
8045
  msgctxt "licensing"
8046
  msgid "Please enter a license key."
8047
  msgstr "Bitte eine gültige E-mailadresse eingeben."
8048
 
8049
+ #: includes/licensing.php:718
8050
  msgctxt "licensing"
8051
  msgid "Could not activate license: %s."
8052
  msgstr "Konnte Lizenz nicht aktivieren: %s"
8053
 
8054
+ #: includes/licensing.php:720
8055
  msgctxt "licensing"
8056
  msgid "License activated"
8057
  msgstr "Lizenz aktiviert"
8058
 
8059
+ #: includes/licensing.php:740
8060
  msgctxt "licensing"
8061
  msgid "Could not deactivate license: %s."
8062
  msgstr "Konnte Lizenz nicht deaktivieren: %s"
8063
 
8064
+ #: includes/licensing.php:742
8065
  msgctxt "licensing"
8066
  msgid "License deactivated"
8067
  msgstr "Lizenz deaktiviert"
8068
 
8069
  #. translators: "<module-name>" version <version-number> is not...
8070
+ #: includes/licensing.php:945
8071
  msgctxt "deprecation"
8072
  msgid ""
8073
  "\"%1$s\" version %2$s is not compatible with Business Directory Plugin 5.0. "
8379
  msgid "Next"
8380
  msgstr ""
8381
 
8382
+ #: includes/templates-ui.php:398 includes/templates-ui.php:430
8383
  msgctxt "templates sort"
8384
  msgid "Sort By:"
8385
  msgstr "Sortieren nach"
8386
 
8387
+ #: includes/templates-ui.php:421
8388
  msgctxt "sort"
8389
  msgid "Reset"
8390
  msgstr "Zurücksetzen"
8391
 
8392
+ #: includes/templates-ui.php:449
8393
  msgctxt "sort"
8394
  msgid "(Reset)"
8395
  msgstr "Zurücksetzen"
8547
  "Diese Kontaktform ist momentan temporär deaktiviert. Bitte versuchen Sie es "
8548
  "später erneut."
8549
 
8550
+ #: includes/views/login.php:49
8551
  #, fuzzy
8552
  msgctxt "views:login"
8553
  msgid "Please enter a valid e-mail/access key combination."
8565
  msgid "... or use an Access Key"
8566
  msgstr "Eintrag Felder / Bilder"
8567
 
8568
+ #: templates/login.tpl.php:60
8569
  #, fuzzy
8570
  msgctxt "views:login"
8571
  msgid "Please enter your access key and e-mail address."
8572
  msgstr "Bitte eine gültige E-mailadresse eingeben."
8573
 
8574
+ #: templates/login.tpl.php:66 templates/login.tpl.php:68
8575
  #, fuzzy
8576
  msgctxt "views:login"
8577
  msgid "E-Mail Address"
8578
  msgstr "E-Mail Adresse:"
8579
 
8580
+ #: templates/login.tpl.php:72 templates/login.tpl.php:74
8581
  #, fuzzy
8582
  msgctxt "views:login"
8583
  msgid "Access Key"
8584
  msgstr "Eintrag Felder / Bilder"
8585
 
8586
+ #: templates/login.tpl.php:76
8587
  #, fuzzy
8588
  msgctxt "views:login"
8589
  msgid "Use Access Key"
8590
  msgstr "Eintrag Felder / Bilder"
8591
 
8592
+ #: templates/login.tpl.php:77
8593
  msgctxt "views:login"
8594
  msgid "Request access key?"
8595
  msgstr ""
8596
 
8597
+ #: includes/views/manage_listings.php:29
8598
  #, fuzzy
8599
  msgctxt "view:manage-listings"
8600
  msgid "Please <a>login</a> to manage your listings."
8601
  msgstr "Bitte <a>einloggen</a> um eine Nachricht an den Inhaber zu senden."
8602
 
8603
+ #: includes/views/manage_listings.php:100
8604
+ #, fuzzy
8605
+ msgctxt "view:manage-listings"
8606
+ msgid "Renew Listing"
8607
+ msgstr "Eintrag erneuern"
8608
+
8609
  #: includes/views/manage_recurring.php:36
8610
  msgctxt "manage subscription"
8611
  msgid "The listing with id = <listing-id> doesn't exists."
8784
  msgid "Clear"
8785
  msgstr "Zurücksetzen"
8786
 
8787
+ #: includes/views/show_listing.php:13
8788
  msgctxt "preview"
8789
  msgid "This is just a preview. The listing has not been published yet."
8790
  msgstr "Dies ist nur eine Vorschau. Der Eintrag wurde bisher nicht publiziert."
8791
 
8792
+ #: includes/views/submit_listing.php:705
8793
  msgctxt "listing submit"
8794
  msgid ""
8795
  "Something went wrong. Please check the form for errors, correct them and "
8796
  "submit again."
8797
  msgstr ""
8798
 
8799
+ #: includes/views/submit_listing.php:789
8800
  msgctxt "listing submit"
8801
  msgid ""
8802
  "Image upload is required, please provide at least one image and submit again."
8946
  msgid "Search"
8947
  msgstr "Suche"
8948
 
8949
+ #: templates/admin/csv-export.tpl.php:100
8950
+ #: templates/admin/csv-export.tpl.php:119
8951
+ #: templates/admin/csv-export.tpl.php:130 templates/admin/csv-import.tpl.php:50
8952
  #: templates/admin/csv-import.tpl.php:116
8953
  #: templates/admin/csv-import.tpl.php:142
8954
  #: templates/admin/csv-import.tpl.php:153
9877
  msgid "Address"
9878
  msgstr "Adresse"
9879
 
9880
+ #, fuzzy
9881
+ #~ msgid "https://www.businessdirectoryplugin.com"
9882
+ #~ msgstr "http://www.businessdirectoryplugin.com"
9883
+
9884
+ #~ msgid "D. Rodenbaugh"
9885
+ #~ msgstr "D. Rodenbaugh"
9886
+
9887
+ #~ msgctxt "admin menu"
9888
+ #~ msgid "Business Directory Admin"
9889
+ #~ msgstr "Branchenverzeichnis Administration"
9890
+
9891
+ #~ msgctxt "admin menu"
9892
+ #~ msgid "Dir. Admin"
9893
+ #~ msgstr "Verzeichnis Administration"
9894
+
9895
+ #~ msgctxt "admin menu"
9896
+ #~ msgid "Directory Admin"
9897
+ #~ msgstr "Verzeichnis Administration"
9898
+
9899
+ #~ msgctxt "admin menu"
9900
+ #~ msgid "Add New Listing"
9901
+ #~ msgstr "Neuer Eintrag"
9902
+
9903
+ #~ msgctxt "admin menu"
9904
+ #~ msgid "Listings"
9905
+ #~ msgstr "Einträge"
9906
+
9907
+ #~ msgctxt "admin menu"
9908
+ #~ msgid "Manage Options"
9909
+ #~ msgstr "Optionen Verwalten"
9910
+
9911
+ #~ msgctxt "settings"
9912
+ #~ msgid "Licenses"
9913
+ #~ msgstr "Lizenz"
9914
+
9915
  #, fuzzy
9916
  #~ msgctxt "admin listings"
9917
  #~ msgid "Paid"
languages/{WPBDM-en_US.mo → business-directory-plugin-en_US.mo} RENAMED
Binary file
languages/{WPBDM-en_US.po → business-directory-plugin-en_US.po} RENAMED
@@ -5,7 +5,7 @@ msgstr ""
5
  "Project-Id-Version: Business Directory Plugin v5.7.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
7
  "directory-plugin\n"
8
- "POT-Creation-Date: 2020-06-17 20:29:07+00:00\n"
9
  "PO-Revision-Date: 2020-06-17 15:32-0500\n"
10
  "Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
11
  "Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
@@ -30,7 +30,7 @@ msgid "Listing Reports"
30
  msgstr ""
31
 
32
  #: includes/admin/class-admin-listings.php:225
33
- #: includes/admin/class-listing-owner.php:87
34
  msgid "Listing Owner"
35
  msgstr ""
36
 
@@ -46,26 +46,26 @@ msgstr ""
46
  msgid "Edit listing permalink"
47
  msgstr ""
48
 
49
- #: includes/admin/class-admin.php:182
50
  msgid ""
51
  "Preview is only available after you've saved the first draft. This is due\n"
52
- "to how WordPress stores the data."
53
  msgstr ""
54
 
55
- #: includes/admin/class-admin.php:377
56
  msgid "Uninstall Business Directory Plugin"
57
  msgstr ""
58
 
59
- #: includes/admin/class-admin.php:378
60
  msgid "Uninstall"
61
  msgstr ""
62
 
63
- #: includes/admin/class-csv-import.php:633
64
  msgid "Listing imported by admin. Payment skipped."
65
  msgstr ""
66
 
67
- #: includes/admin/class-listing-owner.php:62
68
- #: includes/admin/class-listing-owner.php:89
69
  msgid "Please select a user"
70
  msgstr ""
71
 
@@ -113,7 +113,7 @@ msgstr ""
113
  msgid "Missing tables: %s"
114
  msgstr ""
115
 
116
- #: includes/admin/settings/class-settings-bootstrap.php:1108
117
  msgid ""
118
  "If you are using this gateway, we recommend you disable it if you wish to "
119
  "collect payments in this currency."
@@ -191,59 +191,63 @@ msgid "Search Listings"
191
  msgstr ""
192
 
193
  #: includes/class-cpt-integration.php:24
194
- msgid "No listings found"
195
  msgstr ""
196
 
197
  #: includes/class-cpt-integration.php:25
 
 
 
 
198
  msgid "No listings found in trash"
199
  msgstr ""
200
 
201
- #: includes/class-cpt-integration.php:41
202
  msgid "Directory Categories"
203
  msgstr ""
204
 
205
- #: includes/class-cpt-integration.php:42
206
  msgid "Directory Category"
207
  msgstr ""
208
 
209
- #: includes/class-cpt-integration.php:53
210
  msgid "Directory Tags"
211
  msgstr ""
212
 
213
- #: includes/class-cpt-integration.php:54
214
  msgid "Directory Tag"
215
  msgstr ""
216
 
217
  #. translators: %s: listing count
218
- #: includes/class-cpt-integration.php:235
219
  msgid "%s listing updated."
220
  msgid_plural "%s listings updated."
221
  msgstr[0] ""
222
  msgstr[1] ""
223
 
224
  #. translators: %s: listing count
225
- #: includes/class-cpt-integration.php:237
226
  msgid "%s listing not updated, somebody is editing it."
227
  msgid_plural "%s listings not updated, somebody is editing them."
228
  msgstr[0] ""
229
  msgstr[1] ""
230
 
231
  #. translators: %s: listing count
232
- #: includes/class-cpt-integration.php:239
233
  msgid "%s listing permanently deleted."
234
  msgid_plural "%s listings permanently deleted."
235
  msgstr[0] ""
236
  msgstr[1] ""
237
 
238
  #. translators: %s: listing count
239
- #: includes/class-cpt-integration.php:241
240
  msgid "%s listing moved to the Trash."
241
  msgid_plural "%s listings moved to the Trash."
242
  msgstr[0] ""
243
  msgstr[1] ""
244
 
245
  #. translators: %s: listing count
246
- #: includes/class-cpt-integration.php:243
247
  msgid "%s listing restored from the Trash."
248
  msgid_plural "%s listings restored from the Trash."
249
  msgstr[0] ""
@@ -322,13 +326,13 @@ msgstr ""
322
  msgid "Free"
323
  msgstr ""
324
 
325
- #: includes/gateways/class-gateway-authorize-net.php:356
326
  msgid ""
327
  "An error occurred while trying to cancel your subscription. Please try again "
328
  "later or contact the site administrator."
329
  msgstr ""
330
 
331
- #: includes/gateways/class-gateway-authorize-net.php:360
332
  msgid ""
333
  "An error occurred while trying to cancel Authorize.net subscription with ID "
334
  "%s. You can try again later or cancel subscription from gateway dashboard."
@@ -346,15 +350,19 @@ msgstr ""
346
  msgid "The payment gateway \"<payment-gateway>\" is not available."
347
  msgstr ""
348
 
349
- #: includes/templates-ui.php:288
350
  msgid "Directory"
351
  msgstr ""
352
 
353
- #: includes/templates-ui.php:297
354
  msgid "View All Listings"
355
  msgstr ""
356
 
357
- #: includes/templates-ui.php:306
 
 
 
 
358
  msgid "Create A Listing"
359
  msgstr ""
360
 
@@ -362,6 +370,13 @@ msgstr ""
362
  msgid "l F j, Y \\a\\t g:i a"
363
  msgstr ""
364
 
 
 
 
 
 
 
 
365
  #: templates/admin/home.tpl.php:53
366
  msgid "Manage Options"
367
  msgstr ""
@@ -412,8 +427,8 @@ msgstr ""
412
  msgid "← Return to Directory"
413
  msgstr ""
414
 
415
- #. Plugin URI of the plugin/theme
416
- msgid "https://www.businessdirectoryplugin.com"
417
  msgstr ""
418
 
419
  #. Description of the plugin/theme
@@ -423,11 +438,7 @@ msgid ""
423
  msgstr ""
424
 
425
  #. Author of the plugin/theme
426
- msgid "D. Rodenbaugh"
427
- msgstr ""
428
-
429
- #. Author URI of the plugin/theme
430
- msgid "https://businessdirectoryplugin.com"
431
  msgstr ""
432
 
433
  #: includes/admin/class-admin-controller.php:79
@@ -467,31 +478,31 @@ msgctxt "admin csv-import"
467
  msgid "Could not create listing category \"%s\""
468
  msgstr ""
469
 
470
- #: includes/admin/class-csv-import.php:684
471
  msgctxt "admin csv-import"
472
  msgid "Username \"%s\" does not exist"
473
  msgstr ""
474
 
475
- #: includes/admin/class-csv-import.php:710
476
- msgctxt "admin csv-import"
477
- msgid "The string <string> couldn't be converted into a valid date."
478
- msgstr ""
479
-
480
- #: includes/admin/class-csv-import.php:732
481
  msgctxt "admin csv-import"
482
  msgid "There is no Fee Plan with ID = <fee-id>"
483
  msgstr ""
484
 
485
- #: includes/admin/class-csv-import.php:755
486
  msgctxt "admin csv-import"
487
  msgid "Missing required field: %s"
488
  msgstr ""
489
 
490
- #: includes/admin/class-csv-import.php:780
491
  msgctxt "admin csv-import"
492
  msgid "Listing category \"%s\" does not exist"
493
  msgstr ""
494
 
 
 
 
 
 
495
  #: includes/admin/csv-import.php:130
496
  msgctxt "admin csv-import"
497
  msgid "Business %s"
@@ -974,7 +985,7 @@ msgctxt "admin listings"
974
  msgid "Reported"
975
  msgstr ""
976
 
977
- #: includes/admin/class-admin-listings.php:717
978
  msgctxt "admin listings"
979
  msgid "Listing's payment history successfully deleted"
980
  msgstr ""
@@ -1019,99 +1030,99 @@ msgctxt "admin"
1019
  msgid "Categories"
1020
  msgstr ""
1021
 
1022
- #: includes/admin/class-admin.php:243
1023
  msgctxt "admin"
1024
  msgid "Business Directory"
1025
  msgstr ""
1026
 
1027
- #: includes/admin/class-admin.php:254
1028
  msgctxt "admin"
1029
  msgid "You're all set. Visit your new <a>Business Directory</a> page."
1030
  msgstr ""
1031
 
1032
- #: includes/admin/class-admin.php:407
1033
  msgctxt "admin"
1034
  msgid "Untitled Menu"
1035
  msgstr ""
1036
 
1037
- #: includes/admin/class-admin.php:677
1038
  msgctxt "admin"
1039
  msgid "Dismiss this notice."
1040
  msgstr ""
1041
 
1042
- #: includes/admin/class-admin.php:708 includes/admin/class-admin.php:718
1043
  msgctxt "admin"
1044
  msgid "The listing has been updated."
1045
  msgid_plural "The listings have been updated."
1046
  msgstr[0] ""
1047
  msgstr[1] ""
1048
 
1049
- #: includes/admin/class-admin.php:739
1050
  msgctxt "admin"
1051
  msgid "The fee was successfully assigned."
1052
  msgstr ""
1053
 
1054
- #: includes/admin/class-admin.php:749
1055
  msgctxt "admin"
1056
  msgid "Listing was renewed."
1057
  msgid_plural "Listings were renewed."
1058
  msgstr[0] ""
1059
  msgstr[1] ""
1060
 
1061
- #: includes/admin/class-admin.php:760
1062
  msgctxt "admin"
1063
  msgid "Renewal email sent."
1064
  msgstr ""
1065
 
1066
- #: includes/admin/class-admin.php:764
1067
  msgctxt "admin"
1068
  msgid ""
1069
  "Could not send renewal email, notice template at listing expiration not "
1070
  "found."
1071
  msgstr ""
1072
 
1073
- #: includes/admin/class-admin.php:771
1074
  msgctxt "admin"
1075
  msgid "Listing report deleted."
1076
  msgid_plural "Listing reports deleted."
1077
  msgstr[0] ""
1078
  msgstr[1] ""
1079
 
1080
- #: includes/admin/class-admin.php:819
1081
  msgctxt "admin"
1082
  msgid "Access keys sent."
1083
  msgstr ""
1084
 
1085
- #: includes/admin/class-admin.php:821
1086
  msgctxt "admin"
1087
  msgid "The access keys couldn't be sent."
1088
  msgstr ""
1089
 
1090
- #: includes/admin/class-admin.php:887 includes/admin/class-admin.php:893
1091
  msgctxt "admin"
1092
  msgid "Listing Count"
1093
  msgstr ""
1094
 
1095
- #: includes/admin/class-admin.php:955
1096
  msgctxt "admin"
1097
  msgid ""
1098
  "<b>Business Directory Plugin</b> requires a page with the "
1099
  "<tt>[businessdirectory]</tt> shortcode to function properly."
1100
  msgstr ""
1101
 
1102
- #: includes/admin/class-admin.php:957
1103
  msgctxt "admin"
1104
  msgid ""
1105
  "You can create this page by yourself or let Business Directory do this for "
1106
  "you automatically."
1107
  msgstr ""
1108
 
1109
- #: includes/admin/class-admin.php:961
1110
  msgctxt "admin"
1111
  msgid "Create required pages for me"
1112
  msgstr ""
1113
 
1114
- #: includes/admin/class-admin.php:994
1115
  msgctxt "admin"
1116
  msgid ""
1117
  "<strong>Business Directory Plugin</strong> requires <strong>PHP 5.6</strong> "
@@ -1119,7 +1130,7 @@ msgid ""
1119
  "your provider to upgrade in order to prevent any issues with the plugin."
1120
  msgstr ""
1121
 
1122
- #: includes/admin/class-admin.php:1017
1123
  msgctxt "admin"
1124
  msgid ""
1125
  "We noticed you want your Business Directory users to register before posting "
@@ -1163,7 +1174,7 @@ msgid ""
1163
  "or let Business Directory do this for you automatically."
1164
  msgstr ""
1165
 
1166
- #: includes/admin/form-fields.php:214 includes/views/submit_listing.php:541
1167
  msgctxt "admin"
1168
  msgid "Go to \"Manage Form Fields\""
1169
  msgstr ""
@@ -1183,7 +1194,7 @@ msgctxt "admin"
1183
  msgid "Abandoned"
1184
  msgstr ""
1185
 
1186
- #: includes/views/submit_listing.php:524
1187
  msgctxt "admin"
1188
  msgid "Go to \"Manage Fees\""
1189
  msgstr ""
@@ -1293,20 +1304,20 @@ msgctxt "admin actions"
1293
  msgid "Send access keys"
1294
  msgstr ""
1295
 
1296
- #: includes/admin/class-admin.php:175
1297
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:75
1298
  msgctxt "listing metabox"
1299
  msgid "Never"
1300
  msgstr ""
1301
 
1302
- #: includes/admin/class-admin.php:176
1303
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1304
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1305
  msgctxt "listing metabox"
1306
  msgid "Yes"
1307
  msgstr ""
1308
 
1309
- #: includes/admin/class-admin.php:177
1310
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1311
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1312
  msgctxt "listing metabox"
@@ -1419,7 +1430,7 @@ msgctxt "listing metabox"
1419
  msgid "Is Recurring?"
1420
  msgstr ""
1421
 
1422
- #: includes/admin/class-admin.php:214
1423
  msgctxt "drip pointer"
1424
  msgid ""
1425
  "Find out how to create a compelling, thriving business directory from "
@@ -1427,102 +1438,77 @@ msgid ""
1427
  "a FREE premium module just for signing up."
1428
  msgstr ""
1429
 
1430
- #: includes/admin/class-admin.php:216
1431
  msgctxt "drip pointer"
1432
  msgid "Email Address:"
1433
  msgstr ""
1434
 
1435
- #: includes/admin/class-admin.php:222
1436
  msgctxt "drip pointer"
1437
  msgid "Want to know the Secrets of Building an Awesome Business Directory?"
1438
  msgstr ""
1439
 
1440
- #: includes/admin/class-admin.php:224
1441
  msgctxt "drip pointer"
1442
  msgid "Yes, please!"
1443
  msgstr ""
1444
 
1445
- #: includes/admin/class-admin.php:226
1446
  msgctxt "drip pointer"
1447
  msgid "No, thanks"
1448
  msgstr ""
1449
 
1450
- #: includes/admin/class-admin.php:274
1451
  msgctxt "drip pointer"
1452
  msgid "Invalid e-mail address."
1453
  msgstr ""
1454
 
1455
- #: includes/admin/class-admin.php:308
1456
- msgctxt "admin menu"
1457
- msgid "Business Directory Admin"
1458
- msgstr ""
1459
-
1460
- #: includes/admin/class-admin.php:309
1461
- msgctxt "admin menu"
1462
- msgid "Dir. Admin"
1463
- msgstr ""
1464
-
1465
- #: includes/admin/class-admin.php:309
1466
- msgctxt "admin menu"
1467
- msgid "Directory Admin"
1468
- msgstr ""
1469
-
1470
- #: includes/admin/class-admin.php:316
1471
- msgctxt "admin menu"
1472
- msgid "Add New Listing"
1473
- msgstr ""
1474
-
1475
- #: includes/admin/class-admin.php:324
1476
  msgctxt "admin menu"
1477
  msgid "Manage Fees"
1478
  msgstr ""
1479
 
1480
- #: includes/admin/class-admin.php:327
1481
- msgctxt "admin menu"
1482
- msgid "Listings"
1483
- msgstr ""
1484
-
1485
- #: includes/admin/class-admin.php:331
1486
  msgctxt "admin menu"
1487
  msgid "Manage Form Fields"
1488
  msgstr ""
1489
 
1490
- #: includes/admin/class-admin.php:335
1491
  msgctxt "admin menu"
1492
  msgid "Payment History"
1493
  msgstr ""
1494
 
1495
- #: includes/admin/class-admin.php:338
1496
  msgctxt "admin menu"
1497
- msgid "CSV Import & Export"
1498
  msgstr ""
1499
 
1500
- #: includes/admin/class-admin.php:349
1501
  msgctxt "admin menu"
1502
  msgid "Debug"
1503
  msgstr ""
1504
 
1505
  #: includes/admin/settings/class-settings-admin.php:46
1506
  msgctxt "admin menu"
1507
- msgid "Manage Options"
1508
  msgstr ""
1509
 
1510
- #: includes/admin/class-admin.php:885
1511
  msgctxt "admin category id"
1512
  msgid "ID"
1513
  msgstr ""
1514
 
1515
- #: includes/admin/class-csv-exporter.php:100
1516
  msgctxt "admin csv-export"
1517
  msgid "Could not create a temporary directory for handling this CSV export."
1518
  msgstr ""
1519
 
1520
- #: includes/admin/class-csv-exporter.php:103
1521
  msgctxt "admin csv-export"
1522
  msgid "Could not create wpbdp-csv-exports directory."
1523
  msgstr ""
1524
 
1525
- #: includes/admin/class-csv-exporter.php:108
1526
  msgctxt "admin csv-export"
1527
  msgid "Error while creating a temporary directory for CSV export: %s"
1528
  msgstr ""
@@ -1532,14 +1518,6 @@ msgctxt "admin csv-export"
1532
  msgid "Could not decode export state information."
1533
  msgstr ""
1534
 
1535
- #: templates/admin/csv-export.tpl.php:5
1536
- msgctxt "admin csv-export"
1537
- msgid ""
1538
- "An unknown error occurred during the export. Please make sure you have "
1539
- "enough free disk space and memory available to PHP. Check your error logs "
1540
- "for details."
1541
- msgstr ""
1542
-
1543
  #: templates/admin/csv-export.tpl.php:14
1544
  msgctxt "admin csv-export"
1545
  msgid ""
@@ -1549,111 +1527,116 @@ msgid ""
1549
  "server's php.ini configuration file."
1550
  msgstr ""
1551
 
1552
- #: templates/admin/csv-export.tpl.php:26
1553
  msgctxt "admin csv-export"
1554
  msgid "Export Configuration"
1555
  msgstr ""
1556
 
1557
- #: templates/admin/csv-export.tpl.php:29
1558
  msgctxt "admin csv-export"
1559
  msgid "Export settings"
1560
  msgstr ""
1561
 
1562
- #: templates/admin/csv-export.tpl.php:33
1563
  msgctxt "admin csv-export"
1564
  msgid "Which listings to export?"
1565
  msgstr ""
1566
 
1567
- #: templates/admin/csv-export.tpl.php:37
1568
  msgctxt "admin csv-export"
1569
  msgid "All"
1570
  msgstr ""
1571
 
1572
- #: templates/admin/csv-export.tpl.php:38
1573
  msgctxt "admin csv-export"
1574
  msgid "Active Only"
1575
  msgstr ""
1576
 
1577
- #: templates/admin/csv-export.tpl.php:39
1578
  msgctxt "admin csv-export"
1579
  msgid "Active + Pending Renewal"
1580
  msgstr ""
1581
 
1582
- #: templates/admin/csv-export.tpl.php:45
1583
  msgctxt "admin csv-export"
1584
  msgid "Export images?"
1585
  msgstr ""
1586
 
1587
- #: templates/admin/csv-export.tpl.php:50
1588
  msgctxt "admin csv-export"
1589
  msgid "Export images"
1590
  msgstr ""
1591
 
1592
- #: templates/admin/csv-export.tpl.php:52
1593
  msgctxt "admin csv-export"
1594
  msgid ""
1595
  "When checked, instead of just a CSV file a ZIP file will be generated with "
1596
  "both a CSV file and listing images."
1597
  msgstr ""
1598
 
1599
- #: templates/admin/csv-export.tpl.php:58
1600
  msgctxt "admin csv-export"
1601
  msgid "Additional metadata to export:"
1602
  msgstr ""
1603
 
1604
- #: templates/admin/csv-export.tpl.php:63
1605
  msgctxt "admin csv-export"
1606
  msgid "Include unique IDs for each listing (sequence_id column)."
1607
  msgstr ""
1608
 
1609
- #: templates/admin/csv-export.tpl.php:65
1610
  msgctxt "admin csv-export"
1611
  msgid ""
1612
  "If you plan to re-import the listings into BD and don't want new ones "
1613
  "created, select this option!"
1614
  msgstr ""
1615
 
1616
- #: templates/admin/csv-export.tpl.php:71
1617
  msgctxt "admin csv-export"
1618
  msgid "Author information (username)"
1619
  msgstr ""
1620
 
1621
- #: templates/admin/csv-export.tpl.php:76
1622
  msgctxt "admin csv-export"
1623
  msgid "Listing expiration date"
1624
  msgstr ""
1625
 
1626
- #: templates/admin/csv-export.tpl.php:80
1627
  msgctxt "admin csv-export"
1628
  msgid "Listing created date"
1629
  msgstr ""
1630
 
1631
- #: templates/admin/csv-export.tpl.php:84
1632
  msgctxt "admin csv-export"
1633
  msgid "Listing last updated date"
1634
  msgstr ""
1635
 
1636
- #: templates/admin/csv-export.tpl.php:89
 
 
 
 
 
1637
  msgctxt "admin csv-export"
1638
  msgid "CSV File Settings"
1639
  msgstr ""
1640
 
1641
- #: templates/admin/csv-export.tpl.php:93
1642
  msgctxt "admin csv-export"
1643
  msgid "What operating system will you use to edit the CSV file?"
1644
  msgstr ""
1645
 
1646
- #: templates/admin/csv-export.tpl.php:100
1647
  msgctxt "admin csv-export"
1648
  msgid "Windows"
1649
  msgstr ""
1650
 
1651
- #: templates/admin/csv-export.tpl.php:105
1652
  msgctxt "admin csv-export"
1653
  msgid "macOS"
1654
  msgstr ""
1655
 
1656
- #: templates/admin/csv-export.tpl.php:107
1657
  msgctxt "admin csv-export"
1658
  msgid ""
1659
  "Windows and macOS versions of MS Excel handle CSV files differently. To make "
@@ -1662,88 +1645,88 @@ msgid ""
1662
  "each operating system."
1663
  msgstr ""
1664
 
1665
- #: templates/admin/csv-export.tpl.php:112
1666
  msgctxt "admin csv-export"
1667
  msgid "Image Separator"
1668
  msgstr ""
1669
 
1670
- #: templates/admin/csv-export.tpl.php:123
1671
  msgctxt "admin csv-export"
1672
  msgid "Category Separator"
1673
  msgstr ""
1674
 
1675
- #: templates/admin/csv-export.tpl.php:135
1676
  msgctxt "admin csv-export"
1677
  msgid "Export Listings"
1678
  msgstr ""
1679
 
1680
- #: templates/admin/csv-export.tpl.php:141
1681
  msgctxt "admin csv-export"
1682
  msgid "Export in Progress..."
1683
  msgstr ""
1684
 
1685
- #: templates/admin/csv-export.tpl.php:142
1686
  msgctxt "admin csv-export"
1687
  msgid ""
1688
  "Your export file is being prepared. Please <u>do not leave</u> this page "
1689
  "until the export finishes."
1690
  msgstr ""
1691
 
1692
- #: templates/admin/csv-export.tpl.php:145
1693
  msgctxt "admin csv-export"
1694
  msgid "No. of listings:"
1695
  msgstr ""
1696
 
1697
- #: templates/admin/csv-export.tpl.php:147
1698
  msgctxt "admin csv-export"
1699
  msgid "Approximate export file size:"
1700
  msgstr ""
1701
 
1702
- #: templates/admin/csv-export.tpl.php:154
1703
  msgctxt "admin csv-export"
1704
  msgid "Cancel Export"
1705
  msgstr ""
1706
 
1707
- #: templates/admin/csv-export.tpl.php:159
1708
  msgctxt "admin csv-export"
1709
  msgid "Export Complete"
1710
  msgstr ""
1711
 
1712
- #: templates/admin/csv-export.tpl.php:160
1713
  msgctxt "admin csv-export"
1714
  msgid ""
1715
  "Your export file has been successfully created and it is now ready for "
1716
  "download."
1717
  msgstr ""
1718
 
1719
- #: templates/admin/csv-export.tpl.php:163
1720
  msgctxt "admin csv-export"
1721
- msgid "Download %s (%s)"
1722
  msgstr ""
1723
 
1724
- #: templates/admin/csv-export.tpl.php:169
1725
  msgctxt "admin csv-export"
1726
  msgid ""
1727
  "Click \"Cleanup\" once the file has been downloaded in order to remove all "
1728
  "temporary data created by Business Directory during the export process."
1729
  msgstr ""
1730
 
1731
- #: templates/admin/csv-export.tpl.php:170
1732
  msgctxt "admin csv-export"
1733
  msgid "Cleanup"
1734
  msgstr ""
1735
 
1736
- #: templates/admin/csv-export.tpl.php:175
1737
  msgctxt "admin csv-export"
1738
  msgid "Export Canceled"
1739
  msgstr ""
1740
 
1741
- #: templates/admin/csv-export.tpl.php:176
1742
  msgctxt "admin csv-export"
1743
  msgid "The export has been canceled."
1744
  msgstr ""
1745
 
1746
- #: templates/admin/csv-export.tpl.php:177
1747
  msgctxt "admin csv-export"
1748
  msgid "← Return to CSV Export"
1749
  msgstr ""
@@ -3092,32 +3075,37 @@ msgctxt "admin fees table"
3092
  msgid "Disabled"
3093
  msgstr ""
3094
 
3095
- #: includes/admin/helpers/class-listing-timeline.php:102
3096
  msgctxt "listing timeline"
3097
  msgid "Listing created"
3098
  msgstr ""
3099
 
3100
- #: includes/admin/helpers/class-listing-timeline.php:107
3101
  msgctxt "listing timeline"
3102
  msgid "Listing expired"
3103
  msgstr ""
3104
 
3105
- #: includes/admin/helpers/class-listing-timeline.php:112
3106
  msgctxt "listing timeline"
3107
  msgid "Listing renewed"
3108
  msgstr ""
3109
 
3110
- #: includes/admin/helpers/class-listing-timeline.php:127
 
 
 
 
 
3111
  msgctxt "listing timeline"
3112
  msgid "Paid as admin"
3113
  msgstr ""
3114
 
3115
- #: includes/admin/helpers/class-listing-timeline.php:129
3116
  msgctxt "listing timeline"
3117
  msgid "Listing imported"
3118
  msgstr ""
3119
 
3120
- #: includes/admin/helpers/class-listing-timeline.php:131
3121
  msgctxt "listing timeline"
3122
  msgid "Initial Payment"
3123
  msgstr ""
@@ -3335,7 +3323,7 @@ msgctxt "admin settings"
3335
  msgid "Valid placeholders: %s"
3336
  msgstr ""
3337
 
3338
- #: includes/admin/settings/class-settings-bootstrap.php:96
3339
  msgctxt "admin settings"
3340
  msgid ""
3341
  "<strong>IMPORTANT:</strong> subpages of the main directory page cannot be "
@@ -3462,13 +3450,13 @@ msgid "Author"
3462
  msgstr ""
3463
 
3464
  #: includes/admin/settings/class-settings-bootstrap.php:724
3465
- #: includes/functions.php:1194
3466
  msgctxt "admin settings"
3467
  msgid "Date posted"
3468
  msgstr ""
3469
 
3470
  #: includes/admin/settings/class-settings-bootstrap.php:725
3471
- #: includes/functions.php:1195
3472
  msgctxt "admin settings"
3473
  msgid "Date last modified"
3474
  msgstr ""
@@ -3498,402 +3486,402 @@ msgctxt "admin settings"
3498
  msgid "Fee Plan Custom Order, then Title"
3499
  msgstr ""
3500
 
3501
- #: includes/admin/settings/class-settings-bootstrap.php:815
3502
  msgctxt "admin settings"
3503
  msgid "You can manage your themes on <a>Directory Themes</a>."
3504
  msgstr ""
3505
 
3506
- #: includes/admin/settings/class-settings-bootstrap.php:824
3507
  msgctxt "admin settings"
3508
  msgid "Use the BD theme style for BD buttons"
3509
  msgstr ""
3510
 
3511
- #: includes/admin/settings/class-settings-bootstrap.php:825
3512
  msgctxt "admin settings"
3513
  msgid "Use the WP theme style for BD buttons"
3514
  msgstr ""
3515
 
3516
- #: includes/admin/settings/class-settings-bootstrap.php:983
3517
  msgctxt "admin settings"
3518
  msgid ""
3519
  "For paid listing images, configure that by adding or editing a <a>Fee Plan</"
3520
  "a> instead of this setting, which is ignored for paid listings."
3521
  msgstr ""
3522
 
3523
- #: includes/admin/settings/class-settings-bootstrap.php:994
3524
- #: includes/admin/settings/class-settings-bootstrap.php:1048
3525
  msgctxt "admin settings"
3526
  msgid "Excerpt view."
3527
  msgstr ""
3528
 
3529
- #: includes/admin/settings/class-settings-bootstrap.php:995
3530
- #: includes/admin/settings/class-settings-bootstrap.php:1049
3531
  msgctxt "admin settings"
3532
  msgid "Detail view."
3533
  msgstr ""
3534
 
3535
- #: includes/admin/settings/class-settings-bootstrap.php:1106
3536
  msgctxt "admin settings"
3537
- msgid "AED currency is not supported by %s. %s"
3538
  msgstr ""
3539
 
3540
- #: includes/admin/settings/class-settings-bootstrap.php:1124
3541
  msgctxt "admin settings"
3542
  msgid "Australian Dollar (AUD)"
3543
  msgstr ""
3544
 
3545
- #: includes/admin/settings/class-settings-bootstrap.php:1125
3546
  msgctxt "admin settings"
3547
  msgid "Brazilian Real (BRL)"
3548
  msgstr ""
3549
 
3550
- #: includes/admin/settings/class-settings-bootstrap.php:1126
3551
  msgctxt "admin settings"
3552
  msgid "Canadian Dollar (CAD)"
3553
  msgstr ""
3554
 
3555
- #: includes/admin/settings/class-settings-bootstrap.php:1127
3556
  msgctxt "admin settings"
3557
  msgid "Czech Koruna (CZK)"
3558
  msgstr ""
3559
 
3560
- #: includes/admin/settings/class-settings-bootstrap.php:1128
3561
  msgctxt "admin settings"
3562
  msgid "Danish Krone (DKK)"
3563
  msgstr ""
3564
 
3565
- #: includes/admin/settings/class-settings-bootstrap.php:1129
3566
  msgctxt "admin settings"
3567
  msgid "United Arab Emirates Dirham (AED)"
3568
  msgstr ""
3569
 
3570
- #: includes/admin/settings/class-settings-bootstrap.php:1130
3571
  msgctxt "admin settings"
3572
  msgid "Euro (EUR)"
3573
  msgstr ""
3574
 
3575
- #: includes/admin/settings/class-settings-bootstrap.php:1131
3576
  msgctxt "admin settings"
3577
  msgid "Hong Kong Dollar (HKD)"
3578
  msgstr ""
3579
 
3580
- #: includes/admin/settings/class-settings-bootstrap.php:1132
3581
  msgctxt "admin settings"
3582
  msgid "Hungarian Forint (HUF)"
3583
  msgstr ""
3584
 
3585
- #: includes/admin/settings/class-settings-bootstrap.php:1133
3586
  msgctxt "admin settings"
3587
  msgid "Israeli New Shequel (ILS)"
3588
  msgstr ""
3589
 
3590
- #: includes/admin/settings/class-settings-bootstrap.php:1134
3591
  msgctxt "admin settings"
3592
  msgid "Japanese Yen (JPY)"
3593
  msgstr ""
3594
 
3595
- #: includes/admin/settings/class-settings-bootstrap.php:1135
3596
  msgctxt "admin settings"
3597
  msgid "Moroccan Dirham (MAD)"
3598
  msgstr ""
3599
 
3600
- #: includes/admin/settings/class-settings-bootstrap.php:1136
3601
  msgctxt "admin settings"
3602
  msgid "Malasian Ringgit (MYR)"
3603
  msgstr ""
3604
 
3605
- #: includes/admin/settings/class-settings-bootstrap.php:1137
3606
  msgctxt "admin settings"
3607
  msgid "Mexican Peso (MXN)"
3608
  msgstr ""
3609
 
3610
- #: includes/admin/settings/class-settings-bootstrap.php:1138
3611
  msgctxt "admin settings"
3612
  msgid "Norwegian Krone (NOK)"
3613
  msgstr ""
3614
 
3615
- #: includes/admin/settings/class-settings-bootstrap.php:1139
3616
  msgctxt "admin settings"
3617
  msgid "New Zealand Dollar (NZD)"
3618
  msgstr ""
3619
 
3620
- #: includes/admin/settings/class-settings-bootstrap.php:1140
3621
  msgctxt "admin settings"
3622
  msgid "Philippine Peso (PHP)"
3623
  msgstr ""
3624
 
3625
- #: includes/admin/settings/class-settings-bootstrap.php:1141
3626
  msgctxt "admin settings"
3627
  msgid "Polish Zloty (PLN)"
3628
  msgstr ""
3629
 
3630
- #: includes/admin/settings/class-settings-bootstrap.php:1142
3631
  msgctxt "admin settings"
3632
  msgid "Pound Sterling (GBP)"
3633
  msgstr ""
3634
 
3635
- #: includes/admin/settings/class-settings-bootstrap.php:1143
3636
  msgctxt "admin settings"
3637
  msgid "Singapore Dollar (SGD)"
3638
  msgstr ""
3639
 
3640
- #: includes/admin/settings/class-settings-bootstrap.php:1144
3641
  msgctxt "admin settings"
3642
  msgid "Swedish Krona (SEK)"
3643
  msgstr ""
3644
 
3645
- #: includes/admin/settings/class-settings-bootstrap.php:1145
3646
  msgctxt "admin settings"
3647
  msgid "Swiss Franc (CHF)"
3648
  msgstr ""
3649
 
3650
- #: includes/admin/settings/class-settings-bootstrap.php:1146
3651
  msgctxt "admin settings"
3652
  msgid "Taiwan Dollar (TWD)"
3653
  msgstr ""
3654
 
3655
- #: includes/admin/settings/class-settings-bootstrap.php:1147
3656
  msgctxt "admin settings"
3657
  msgid "Thai Baht (THB)"
3658
  msgstr ""
3659
 
3660
- #: includes/admin/settings/class-settings-bootstrap.php:1148
3661
  msgctxt "admin settings"
3662
  msgid "Turkish Lira (TRY)"
3663
  msgstr ""
3664
 
3665
- #: includes/admin/settings/class-settings-bootstrap.php:1149
3666
  msgctxt "admin settings"
3667
  msgid "U.S. Dollar (USD)"
3668
  msgstr ""
3669
 
3670
- #: includes/admin/settings/class-settings-bootstrap.php:1173
3671
  msgctxt "admin settings"
3672
  msgid "Show currency symbol on the left"
3673
  msgstr ""
3674
 
3675
- #: includes/admin/settings/class-settings-bootstrap.php:1174
3676
  msgctxt "admin settings"
3677
  msgid "Show currency symbol on the right"
3678
  msgstr ""
3679
 
3680
- #: includes/admin/settings/class-settings-bootstrap.php:1175
3681
  msgctxt "admin settings"
3682
  msgid "Do not show currency symbol"
3683
  msgstr ""
3684
 
3685
- #: includes/admin/settings/class-settings-bootstrap.php:1196
3686
  msgctxt "admin settings"
3687
  msgid ""
3688
  "Thank you for your payment. Your payment is being verified and your listing "
3689
  "reviewed. The verification and review process could take up to 48 hours."
3690
  msgstr ""
3691
 
3692
- #: includes/admin/settings/class-settings-bootstrap.php:1217
3693
  msgctxt "admin settings"
3694
  msgid ""
3695
  "Listings with pending payments are marked as abandoned after this time. You "
3696
  "can also <a>customize the e-mail</a> users receive."
3697
  msgstr ""
3698
 
3699
- #: includes/admin/settings/class-settings-bootstrap.php:1247
3700
  msgctxt "admin settings"
3701
  msgid "Try listing's email field first, then author's email."
3702
  msgstr ""
3703
 
3704
- #: includes/admin/settings/class-settings-bootstrap.php:1248
3705
  msgctxt "admin settings"
3706
  msgid "Try author's email first and then listing's email field."
3707
  msgstr ""
3708
 
3709
- #: includes/admin/settings/class-settings-bootstrap.php:1261
3710
  msgctxt "admin settings"
3711
  msgid "Plain (text/plain)"
3712
  msgstr ""
3713
 
3714
- #: includes/admin/settings/class-settings-bootstrap.php:1262
3715
  msgctxt "admin settings"
3716
  msgid "HTML (text/html)"
3717
  msgstr ""
3718
 
3719
- #: includes/admin/settings/class-settings-bootstrap.php:1263
3720
  msgctxt "admin settings"
3721
  msgid "Both (multipart/alternative)"
3722
  msgstr ""
3723
 
3724
- #: includes/admin/settings/class-settings-bootstrap.php:1277
3725
  msgctxt "admin settings"
3726
  msgid "A new listing is submitted."
3727
  msgstr ""
3728
 
3729
- #: includes/admin/settings/class-settings-bootstrap.php:1278
3730
  msgctxt "admin settings"
3731
  msgid "A listing is edited."
3732
  msgstr ""
3733
 
3734
- #: includes/admin/settings/class-settings-bootstrap.php:1279
3735
  msgctxt "admin settings"
3736
  msgid "A listing expires."
3737
  msgstr ""
3738
 
3739
- #: includes/admin/settings/class-settings-bootstrap.php:1280
3740
  msgctxt "admin settings"
3741
  msgid "A listing is renewed."
3742
  msgstr ""
3743
 
3744
- #: includes/admin/settings/class-settings-bootstrap.php:1281
3745
  msgctxt "admin settings"
3746
  msgid "A listing payment is completed."
3747
  msgstr ""
3748
 
3749
- #: includes/admin/settings/class-settings-bootstrap.php:1282
3750
  msgctxt "admin settings"
3751
  msgid "A listing has been reported as inappropriate."
3752
  msgstr ""
3753
 
3754
- #: includes/admin/settings/class-settings-bootstrap.php:1283
3755
  msgctxt "admin settings"
3756
  msgid "A contact message is sent to a listing's owner."
3757
  msgstr ""
3758
 
3759
- #: includes/admin/settings/class-settings-bootstrap.php:1309
3760
  msgctxt "admin settings"
3761
  msgid "Their listing is submitted."
3762
  msgstr ""
3763
 
3764
- #: includes/admin/settings/class-settings-bootstrap.php:1310
3765
  msgctxt "admin settings"
3766
  msgid "Their listing is approved/published."
3767
  msgstr ""
3768
 
3769
- #: includes/admin/settings/class-settings-bootstrap.php:1311
3770
  msgctxt "admin settings"
3771
  msgid "A payment for their listing is completed."
3772
  msgstr ""
3773
 
3774
- #: includes/admin/settings/class-settings-bootstrap.php:1312
3775
  msgctxt "admin settings"
3776
  msgid "Their listing expired or is about to expire."
3777
  msgstr ""
3778
 
3779
- #: includes/admin/settings/class-settings-bootstrap.php:1329
3780
- #: includes/admin/settings/class-settings-bootstrap.php:1348
3781
- #: includes/admin/settings/class-settings-bootstrap.php:1373
3782
- #: includes/admin/settings/class-settings-bootstrap.php:1408
3783
- #: includes/admin/settings/class-settings-bootstrap.php:1444
3784
  msgctxt "admin settings"
3785
  msgid "Listing's title"
3786
  msgstr ""
3787
 
3788
- #: includes/admin/settings/class-settings-bootstrap.php:1330
3789
- #: includes/admin/settings/class-settings-bootstrap.php:1409
3790
  msgctxt "admin settings"
3791
  msgid "Listing's fee plan name"
3792
  msgstr ""
3793
 
3794
- #: includes/admin/settings/class-settings-bootstrap.php:1331
3795
- #: includes/admin/settings/class-settings-bootstrap.php:1410
3796
  msgctxt "admin settings"
3797
  msgid "Listing's fee plan description"
3798
  msgstr ""
3799
 
3800
- #: includes/admin/settings/class-settings-bootstrap.php:1332
3801
- #: includes/admin/settings/class-settings-bootstrap.php:1411
3802
  msgctxt "admin settings"
3803
  msgid "Listing's fee plan details"
3804
  msgstr ""
3805
 
3806
- #: includes/admin/settings/class-settings-bootstrap.php:1345
3807
  msgctxt "admin settings"
3808
  msgid ""
3809
  "Your listing \"[listing]\" is now available at [listing-url] and can be "
3810
  "viewed by the public."
3811
  msgstr ""
3812
 
3813
- #: includes/admin/settings/class-settings-bootstrap.php:1349
3814
- #: includes/admin/settings/class-settings-bootstrap.php:1372
3815
  msgctxt "admin settings"
3816
  msgid "Listing's URL"
3817
  msgstr ""
3818
 
3819
- #: includes/admin/settings/class-settings-bootstrap.php:1350
3820
- #: includes/admin/settings/class-settings-bootstrap.php:1378
3821
  msgctxt "admin settings"
3822
  msgid "Listing's Access Key"
3823
  msgstr ""
3824
 
3825
- #: includes/admin/settings/class-settings-bootstrap.php:1374
3826
  msgctxt "admin settings"
3827
  msgid "Sender's name"
3828
  msgstr ""
3829
 
3830
- #: includes/admin/settings/class-settings-bootstrap.php:1375
3831
  msgctxt "admin settings"
3832
  msgid "Sender's e-mail address"
3833
  msgstr ""
3834
 
3835
- #: includes/admin/settings/class-settings-bootstrap.php:1376
3836
  msgctxt "admin settings"
3837
  msgid "Contact message"
3838
  msgstr ""
3839
 
3840
- #: includes/admin/settings/class-settings-bootstrap.php:1377
3841
  msgctxt "admin settings"
3842
  msgid "Date and time the message was sent"
3843
  msgstr ""
3844
 
3845
- #: includes/admin/settings/class-settings-bootstrap.php:1412
3846
  msgctxt "admin settings"
3847
  msgid "Payment items details."
3848
  msgstr ""
3849
 
3850
- #: includes/admin/settings/class-settings-bootstrap.php:1413
3851
  msgctxt "admin settings"
3852
  msgid "URL where user can review and print payment receipt."
3853
  msgstr ""
3854
 
3855
- #: includes/admin/settings/class-settings-bootstrap.php:1414
3856
  msgctxt "admin settings"
3857
  msgid "Gateway used to process listing's payment."
3858
  msgstr ""
3859
 
3860
- #: includes/admin/settings/class-settings-bootstrap.php:1445
3861
  msgctxt "admin settings"
3862
  msgid "Checkout URL link"
3863
  msgstr ""
3864
 
3865
- #: includes/admin/settings/class-settings-bootstrap.php:1581
3866
  msgctxt "admin settings"
3867
  msgid ""
3868
  "Could not remove the \"Business Directory Plugin - AJAX Compatibility Module"
3869
  "\". Please remove the file \"%s\" manually or deactivate the plugin."
3870
  msgstr ""
3871
 
3872
- #: includes/admin/settings/class-settings-bootstrap.php:1597
3873
  msgctxt "admin settings"
3874
  msgid ""
3875
  "Could not activate AJAX Compatibility mode: the directory \"%s\" could not "
3876
  "be created."
3877
  msgstr ""
3878
 
3879
- #: includes/admin/settings/class-settings-bootstrap.php:1602
3880
  msgctxt "admin settings"
3881
  msgid ""
3882
  "Could not copy the AJAX compatibility plugin \"%s\". Compatibility mode was "
3883
  "not activated."
3884
  msgstr ""
3885
 
3886
- #: includes/admin/settings/class-settings-bootstrap.php:1632
3887
  msgctxt "admin settings"
3888
  msgid "Uploaded Image (no resize)"
3889
  msgstr ""
3890
 
3891
- #: includes/functions.php:1192
3892
  msgctxt "admin settings"
3893
  msgid "User"
3894
  msgstr ""
3895
 
3896
- #: includes/functions.php:1193
3897
  msgctxt "admin settings"
3898
  msgid "User registration date"
3899
  msgstr ""
@@ -4116,7 +4104,7 @@ msgid "General"
4116
  msgstr ""
4117
 
4118
  #: includes/admin/settings/class-settings-bootstrap.php:27
4119
- #: includes/admin/settings/class-settings-bootstrap.php:965
4120
  msgctxt "settings"
4121
  msgid "Listings"
4122
  msgstr ""
@@ -4125,9 +4113,9 @@ msgstr ""
4125
  #: includes/admin/settings/class-settings-bootstrap.php:31
4126
  #: includes/admin/settings/class-settings-bootstrap.php:34
4127
  #: includes/admin/settings/class-settings-bootstrap.php:37
4128
- #: includes/admin/settings/class-settings-bootstrap.php:52
4129
- #: includes/admin/settings/class-settings-bootstrap.php:1228
4130
- #: includes/admin/settings/class-settings.php:354
4131
  msgctxt "settings"
4132
  msgid "General Settings"
4133
  msgstr ""
@@ -4147,121 +4135,121 @@ msgctxt "settings"
4147
  msgid "Appearance"
4148
  msgstr ""
4149
 
4150
- #: includes/admin/settings/class-settings-bootstrap.php:40
4151
  #: includes/licensing.php:104
4152
  msgctxt "settings"
4153
  msgid "Premium Modules"
4154
  msgstr ""
4155
 
4156
- #: includes/admin/settings/class-settings-bootstrap.php:55
4157
  msgctxt "settings"
4158
  msgid "Permalink Settings"
4159
  msgstr ""
4160
 
4161
- #: includes/admin/settings/class-settings-bootstrap.php:60
4162
  msgctxt "settings"
4163
  msgid "Directory Listings Slug"
4164
  msgstr ""
4165
 
4166
- #: includes/admin/settings/class-settings-bootstrap.php:70
4167
  msgctxt "settings"
4168
  msgid "Categories Slug"
4169
  msgstr ""
4170
 
4171
- #: includes/admin/settings/class-settings-bootstrap.php:71
4172
  msgctxt "settings"
4173
  msgid ""
4174
  "The slug can't be in use by another term. Avoid \"category\", for instance."
4175
  msgstr ""
4176
 
4177
- #: includes/admin/settings/class-settings-bootstrap.php:82
4178
  msgctxt "settings"
4179
  msgid "Tags Slug"
4180
  msgstr ""
4181
 
4182
- #: includes/admin/settings/class-settings-bootstrap.php:83
4183
  msgctxt "settings"
4184
  msgid "The slug can't be in use by another term. Avoid \"tag\", for instance."
4185
  msgstr ""
4186
 
4187
- #: includes/admin/settings/class-settings-bootstrap.php:94
4188
  msgctxt "settings"
4189
  msgid "Remove listing ID from directory URLs?"
4190
  msgstr ""
4191
 
4192
- #: includes/admin/settings/class-settings-bootstrap.php:95
4193
  msgctxt "settings"
4194
  msgid "Check this setting to remove the ID for better SEO."
4195
  msgstr ""
4196
 
4197
- #: includes/admin/settings/class-settings-bootstrap.php:96
4198
  msgctxt "settings"
4199
  msgid ""
4200
  "Prior to 3.5.1, we included the ID in the listing URL, like \"/business-"
4201
  "directory/1809/listing-title\"."
4202
  msgstr ""
4203
 
4204
- #: includes/admin/settings/class-settings-bootstrap.php:104
4205
  msgctxt "settings"
4206
  msgid "reCAPTCHA"
4207
  msgstr ""
4208
 
4209
- #: includes/admin/settings/class-settings-bootstrap.php:107
4210
  msgctxt "settings"
4211
  msgid "Need API keys for reCAPTCHA? Get them <a>here</a>."
4212
  msgstr ""
4213
 
4214
- #: includes/admin/settings/class-settings-bootstrap.php:114
4215
  msgctxt "settings"
4216
  msgid "Use reCAPTCHA for contact forms"
4217
  msgstr ""
4218
 
4219
- #: includes/admin/settings/class-settings-bootstrap.php:122
4220
  msgctxt "settings"
4221
  msgid "Turn off reCAPTCHA for logged in users?"
4222
  msgstr ""
4223
 
4224
- #: includes/admin/settings/class-settings-bootstrap.php:130
4225
  msgctxt "settings"
4226
  msgid "Use reCAPTCHA for listing submits"
4227
  msgstr ""
4228
 
4229
- #: includes/admin/settings/class-settings-bootstrap.php:138
4230
  msgctxt "settings"
4231
  msgid "Use reCAPTCHA for edit listings"
4232
  msgstr ""
4233
 
4234
- #: includes/admin/settings/class-settings-bootstrap.php:146
4235
  msgctxt "settings"
4236
  msgid "Use reCAPTCHA for report listings"
4237
  msgstr ""
4238
 
4239
- #: includes/admin/settings/class-settings-bootstrap.php:154
4240
  msgctxt "settings"
4241
  msgid "Use reCAPTCHA for listing comments?"
4242
  msgstr ""
4243
 
4244
- #: includes/admin/settings/class-settings-bootstrap.php:162
4245
  msgctxt "settings"
4246
  msgid "reCAPTCHA Public Key"
4247
  msgstr ""
4248
 
4249
- #: includes/admin/settings/class-settings-bootstrap.php:171
4250
  msgctxt "settings"
4251
  msgid "reCAPTCHA Private Key"
4252
  msgstr ""
4253
 
4254
- #: includes/admin/settings/class-settings-bootstrap.php:180
4255
  msgctxt "settings"
4256
  msgid "reCAPTCHA version"
4257
  msgstr ""
4258
 
4259
- #: includes/admin/settings/class-settings-bootstrap.php:193
4260
  msgctxt "settings"
4261
  msgid "reCAPTCHA V3 threshold score"
4262
  msgstr ""
4263
 
4264
- #: includes/admin/settings/class-settings-bootstrap.php:198
4265
  msgctxt "settings"
4266
  msgid ""
4267
  "reCAPTCHA v3 returns a score (1.0 is very likely a good interaction, 0.0 is "
@@ -4270,12 +4258,12 @@ msgid ""
4270
  "this value will result in reCAPTCHA validation error."
4271
  msgstr ""
4272
 
4273
- #: includes/admin/settings/class-settings-bootstrap.php:203
4274
  msgctxt "settings"
4275
  msgid "Registration"
4276
  msgstr ""
4277
 
4278
- #: includes/admin/settings/class-settings-bootstrap.php:203
4279
  msgctxt "settings"
4280
  msgid ""
4281
  "We expect that a membership plugin supports the 'redirect_to' parameter for "
@@ -4284,86 +4272,86 @@ msgid ""
4284
  "them to support the WP standard 'redirect_to' query parameter."
4285
  msgstr ""
4286
 
4287
- #: includes/admin/settings/class-settings-bootstrap.php:208
4288
  msgctxt "settings"
4289
  msgid "Require login to post listings?"
4290
  msgstr ""
4291
 
4292
- #: includes/admin/settings/class-settings-bootstrap.php:217
4293
  msgctxt "settings"
4294
  msgid "Allow anonymous users to edit/manage listings with an access key?"
4295
  msgstr ""
4296
 
4297
- #: includes/admin/settings/class-settings-bootstrap.php:225
4298
  msgctxt "settings"
4299
  msgid "Login URL"
4300
  msgstr ""
4301
 
4302
- #: includes/admin/settings/class-settings-bootstrap.php:226
4303
  msgctxt "settings"
4304
  msgid "Only enter this if using a membership plugin or custom login page."
4305
  msgstr ""
4306
 
4307
- #: includes/admin/settings/class-settings-bootstrap.php:227
4308
  msgctxt "settings"
4309
  msgid "URL of your membership plugin's login page."
4310
  msgstr ""
4311
 
4312
- #: includes/admin/settings/class-settings-bootstrap.php:236
4313
  msgctxt "settings"
4314
  msgid "Registration URL"
4315
  msgstr ""
4316
 
4317
- #: includes/admin/settings/class-settings-bootstrap.php:237
4318
  msgctxt "settings"
4319
  msgid ""
4320
  "Only enter this if using a membership plugin or custom registration page."
4321
  msgstr ""
4322
 
4323
- #: includes/admin/settings/class-settings-bootstrap.php:238
4324
  msgctxt "settings"
4325
  msgid "URL of your membership plugin's registration page."
4326
  msgstr ""
4327
 
4328
- #: includes/admin/settings/class-settings-bootstrap.php:247
4329
  msgctxt "settings"
4330
  msgid "Allow users to create accounts during listing submit?"
4331
  msgstr ""
4332
 
4333
- #: includes/admin/settings/class-settings-bootstrap.php:250
4334
  msgctxt "settings"
4335
  msgid "No"
4336
  msgstr ""
4337
 
4338
- #: includes/admin/settings/class-settings-bootstrap.php:251
4339
  msgctxt "settings"
4340
  msgid "Yes, and make it optional"
4341
  msgstr ""
4342
 
4343
- #: includes/admin/settings/class-settings-bootstrap.php:252
4344
  msgctxt "settings"
4345
  msgid "Yes, and make it required"
4346
  msgstr ""
4347
 
4348
- #: includes/admin/settings/class-settings-bootstrap.php:259
4349
- #: includes/admin/settings/class-settings-bootstrap.php:272
4350
  msgctxt "settings"
4351
  msgid "Terms and Conditions"
4352
  msgstr ""
4353
 
4354
- #: includes/admin/settings/class-settings-bootstrap.php:264
4355
  msgctxt "settings"
4356
  msgid "Display and require user agreement to Terms and Conditions"
4357
  msgstr ""
4358
 
4359
- #: includes/admin/settings/class-settings-bootstrap.php:273
4360
  msgctxt "settings"
4361
  msgid ""
4362
  "Enter text or a URL starting with http. If you use a URL, the Terms and "
4363
  "Conditions text will be replaced by a link to the appropiate page."
4364
  msgstr ""
4365
 
4366
- #: includes/admin/settings/class-settings-bootstrap.php:275
4367
  msgctxt "settings"
4368
  msgid "Terms and Conditions text goes here."
4369
  msgstr ""
@@ -4737,102 +4725,107 @@ msgstr ""
4737
 
4738
  #: includes/admin/settings/class-settings-bootstrap.php:808
4739
  msgctxt "settings"
 
 
 
 
 
4740
  msgid "Show the \"Directory\" button."
4741
  msgstr ""
4742
 
4743
- #: includes/admin/settings/class-settings-bootstrap.php:815
4744
  msgctxt "settings"
4745
  msgid "Theme Settings"
4746
  msgstr ""
4747
 
4748
- #: includes/admin/settings/class-settings-bootstrap.php:821
4749
  msgctxt "settings"
4750
  msgid "Theme button style"
4751
  msgstr ""
4752
 
4753
- #: includes/admin/settings/class-settings-bootstrap.php:834
4754
  msgctxt "settings"
4755
  msgid ""
4756
  "Include CSS rules to give their own style to View, Edit and Delete buttons?"
4757
  msgstr ""
4758
 
4759
- #: includes/admin/settings/class-settings-bootstrap.php:841
4760
  msgctxt "settings"
4761
  msgid "Image"
4762
  msgstr ""
4763
 
4764
- #: includes/admin/settings/class-settings-bootstrap.php:842
4765
  msgctxt "settings"
4766
  msgid "Image Settings"
4767
  msgstr ""
4768
 
4769
- #: includes/admin/settings/class-settings-bootstrap.php:847
4770
  msgctxt "settings"
4771
  msgid "Allow images?"
4772
  msgstr ""
4773
 
4774
- #: includes/admin/settings/class-settings-bootstrap.php:858
4775
  msgctxt "settings"
4776
  msgid "Min Image File Size (KB)"
4777
  msgstr ""
4778
 
4779
- #: includes/admin/settings/class-settings-bootstrap.php:869
4780
  msgctxt "settings"
4781
  msgid "Max Image File Size (KB)"
4782
  msgstr ""
4783
 
4784
- #: includes/admin/settings/class-settings-bootstrap.php:880
4785
  msgctxt "settings"
4786
  msgid "Min image width (px)"
4787
  msgstr ""
4788
 
4789
- #: includes/admin/settings/class-settings-bootstrap.php:889
4790
  msgctxt "settings"
4791
  msgid "Min image height (px)"
4792
  msgstr ""
4793
 
4794
- #: includes/admin/settings/class-settings-bootstrap.php:902
4795
  msgctxt "settings"
4796
  msgid "Max image width (px)"
4797
  msgstr ""
4798
 
4799
- #: includes/admin/settings/class-settings-bootstrap.php:913
4800
  msgctxt "settings"
4801
  msgid "Max image height (px)"
4802
  msgstr ""
4803
 
4804
- #: includes/admin/settings/class-settings-bootstrap.php:924
4805
  msgctxt "settings"
4806
  msgid "Turn on thickbox/lightbox?"
4807
  msgstr ""
4808
 
4809
- #: includes/admin/settings/class-settings-bootstrap.php:925
4810
  msgctxt "settings"
4811
  msgid ""
4812
  "Uncheck if it conflicts with other elements or plugins installed on your site"
4813
  msgstr ""
4814
 
4815
- #: includes/admin/settings/class-settings-bootstrap.php:931
4816
  msgctxt "settings"
4817
  msgid "Thumbnails"
4818
  msgstr ""
4819
 
4820
- #: includes/admin/settings/class-settings-bootstrap.php:938
4821
  msgctxt "settings"
4822
  msgid "Thumbnail width (px)"
4823
  msgstr ""
4824
 
4825
- #: includes/admin/settings/class-settings-bootstrap.php:949
4826
  msgctxt "settings"
4827
  msgid "Thumbnail height (px)"
4828
  msgstr ""
4829
 
4830
- #: includes/admin/settings/class-settings-bootstrap.php:958
4831
  msgctxt "settings"
4832
  msgid "Crop thumbnails to exact dimensions?"
4833
  msgstr ""
4834
 
4835
- #: includes/admin/settings/class-settings-bootstrap.php:959
4836
  msgctxt "settings"
4837
  msgid ""
4838
  "When enabled images will match exactly the dimensions above but part of the "
@@ -4841,27 +4834,27 @@ msgid ""
4841
  "Depending on the uploaded images, thumbnails may have different heights."
4842
  msgstr ""
4843
 
4844
- #: includes/admin/settings/class-settings-bootstrap.php:970
4845
  msgctxt "settings"
4846
  msgid "Enforce image upload on submit/edit?"
4847
  msgstr ""
4848
 
4849
- #: includes/admin/settings/class-settings-bootstrap.php:979
4850
  msgctxt "settings"
4851
  msgid "Number of free images"
4852
  msgstr ""
4853
 
4854
- #: includes/admin/settings/class-settings-bootstrap.php:991
4855
  msgctxt "settings"
4856
  msgid "Use \"Coming Soon\" photo for listings without any (primary) images?"
4857
  msgstr ""
4858
 
4859
- #: includes/admin/settings/class-settings-bootstrap.php:1004
4860
  msgctxt "settings"
4861
  msgid "Default thumbnail image size"
4862
  msgstr ""
4863
 
4864
- #: includes/admin/settings/class-settings-bootstrap.php:1007
4865
  msgctxt "settings"
4866
  msgid ""
4867
  "This indicates the size of the thumbnail to be used both in excerpt and "
@@ -4870,94 +4863,94 @@ msgid ""
4870
  "width as the starting point."
4871
  msgstr ""
4872
 
4873
- #: includes/admin/settings/class-settings-bootstrap.php:1015
4874
  msgctxt "settings"
4875
  msgid "Show Thumbnail on main listings page?"
4876
  msgstr ""
4877
 
4878
- #: includes/admin/settings/class-settings-bootstrap.php:1024
4879
  msgctxt "settings"
4880
  msgid "Featured Badge image"
4881
  msgstr ""
4882
 
4883
- #: includes/admin/settings/class-settings-bootstrap.php:1033
4884
  msgctxt "settings"
4885
  msgid "Featured Badge URL"
4886
  msgstr ""
4887
 
4888
- #: includes/admin/settings/class-settings-bootstrap.php:1034
4889
  msgctxt "settings"
4890
  msgid "Use this to set Featured Badge image as a link to a defined URL."
4891
  msgstr ""
4892
 
4893
- #: includes/admin/settings/class-settings-bootstrap.php:1035
4894
  msgctxt "settings"
4895
  msgid "URL"
4896
  msgstr ""
4897
 
4898
- #: includes/admin/settings/class-settings-bootstrap.php:1044
4899
  msgctxt "settings"
4900
  msgid "Display featured (sticky) badge on listing:"
4901
  msgstr ""
4902
 
4903
- #: includes/admin/settings/class-settings-bootstrap.php:1061
4904
  msgctxt "settings"
4905
  msgid "Fee Order"
4906
  msgstr ""
4907
 
4908
- #: includes/admin/settings/class-settings-bootstrap.php:1074
4909
  msgctxt "settings"
4910
  msgid "Turn On payments?"
4911
  msgstr ""
4912
 
4913
- #: includes/admin/settings/class-settings-bootstrap.php:1083
4914
  msgctxt "settings"
4915
  msgid "Put payment gateways in test mode?"
4916
  msgstr ""
4917
 
4918
- #: includes/admin/settings/class-settings-bootstrap.php:1093
4919
  msgctxt "settings"
4920
  msgid "Perform checkouts on the secure (HTTPS) version of your site?"
4921
  msgstr ""
4922
 
4923
- #: includes/admin/settings/class-settings-bootstrap.php:1094
4924
  msgctxt "settings"
4925
  msgid ""
4926
  "Recommended for added security. For this to work you need to enable HTTPS on "
4927
  "your server and obtain an SSL certificate."
4928
  msgstr ""
4929
 
4930
- #: includes/admin/settings/class-settings-bootstrap.php:1121
4931
  msgctxt "settings"
4932
  msgid "Currency Code"
4933
  msgstr ""
4934
 
4935
- #: includes/admin/settings/class-settings-bootstrap.php:1160
4936
  msgctxt "settings"
4937
  msgid "Currency Symbol"
4938
  msgstr ""
4939
 
4940
- #: includes/admin/settings/class-settings-bootstrap.php:1170
4941
  msgctxt "settings"
4942
  msgid "Currency symbol display"
4943
  msgstr ""
4944
 
4945
- #: includes/admin/settings/class-settings-bootstrap.php:1185
4946
  msgctxt "settings"
4947
  msgid "Include fee description in receipt?"
4948
  msgstr ""
4949
 
4950
- #: includes/admin/settings/class-settings-bootstrap.php:1195
4951
  msgctxt "settings"
4952
  msgid "Thank you for payment message"
4953
  msgstr ""
4954
 
4955
- #: includes/admin/settings/class-settings-bootstrap.php:1205
4956
  msgctxt "settings"
4957
  msgid "Ask users to come back for abandoned payments?"
4958
  msgstr ""
4959
 
4960
- #: includes/admin/settings/class-settings-bootstrap.php:1206
4961
  msgctxt "settings"
4962
  msgid ""
4963
  "An abandoned payment is when a user attempts to place a listing and gets to "
@@ -4966,17 +4959,17 @@ msgid ""
4966
  "the transaction. BD can remind them to come back and continue."
4967
  msgstr ""
4968
 
4969
- #: includes/admin/settings/class-settings-bootstrap.php:1216
4970
  msgctxt "settings"
4971
  msgid "Listing abandonment threshold (hours)"
4972
  msgstr ""
4973
 
4974
- #: includes/admin/settings/class-settings-bootstrap.php:1233
4975
  msgctxt "settings"
4976
  msgid "Display email address fields publicly?"
4977
  msgstr ""
4978
 
4979
- #: includes/admin/settings/class-settings-bootstrap.php:1234
4980
  msgctxt "settings"
4981
  msgid ""
4982
  "Shows the email address of the listing owner to all web users. NOT "
@@ -4984,24 +4977,24 @@ msgid ""
4984
  "harvest it for future use."
4985
  msgstr ""
4986
 
4987
- #: includes/admin/settings/class-settings-bootstrap.php:1243
4988
  msgctxt "settings"
4989
  msgid "How to determine the listing's email address?"
4990
  msgstr ""
4991
 
4992
- #: includes/admin/settings/class-settings-bootstrap.php:1244
4993
  msgctxt "settings"
4994
  msgid ""
4995
  "This affects emails sent to listing owners via contact forms or when their "
4996
  "listings expire."
4997
  msgstr ""
4998
 
4999
- #: includes/admin/settings/class-settings-bootstrap.php:1257
5000
  msgctxt "settings"
5001
  msgid "Email Content-Type header"
5002
  msgstr ""
5003
 
5004
- #: includes/admin/settings/class-settings-bootstrap.php:1258
5005
  msgctxt "settings"
5006
  msgid ""
5007
  "Use this setting to control the format of the emails explicitly. Some "
@@ -5010,107 +5003,107 @@ msgid ""
5010
  "then \"Both\"."
5011
  msgstr ""
5012
 
5013
- #: includes/admin/settings/class-settings-bootstrap.php:1269
5014
  msgctxt "settings"
5015
  msgid "E-Mail Notifications"
5016
  msgstr ""
5017
 
5018
- #: includes/admin/settings/class-settings-bootstrap.php:1274
5019
  msgctxt "settings"
5020
  msgid "Notify admin via e-mail when..."
5021
  msgstr ""
5022
 
5023
- #: includes/admin/settings/class-settings-bootstrap.php:1292
5024
  msgctxt "settings"
5025
  msgid "CC this e-mail address too"
5026
  msgstr ""
5027
 
5028
- #: includes/admin/settings/class-settings-bootstrap.php:1298
5029
  msgctxt "settings"
5030
  msgid ""
5031
  "You can modify the text template used for most of these e-mails in the "
5032
  "<templates-link>Templates</templates-link> tab."
5033
  msgstr ""
5034
 
5035
- #: includes/admin/settings/class-settings-bootstrap.php:1305
5036
  msgctxt "settings"
5037
  msgid "Notify users via e-mail when..."
5038
  msgstr ""
5039
 
5040
- #: includes/admin/settings/class-settings-bootstrap.php:1317
5041
  msgctxt "settings"
5042
  msgid "Templates"
5043
  msgstr ""
5044
 
5045
- #: includes/admin/settings/class-settings-bootstrap.php:1322
5046
  msgctxt "settings"
5047
  msgid "Email confirmation message"
5048
  msgstr ""
5049
 
5050
- #: includes/admin/settings/class-settings-bootstrap.php:1323
5051
  msgctxt "settings"
5052
  msgid "Sent after a listing has been submitted."
5053
  msgstr ""
5054
 
5055
- #: includes/admin/settings/class-settings-bootstrap.php:1341
5056
  msgctxt "settings"
5057
  msgid "Listing published message"
5058
  msgstr ""
5059
 
5060
- #: includes/admin/settings/class-settings-bootstrap.php:1342
5061
  msgctxt "settings"
5062
  msgid "Sent when the listing has been published or approved by an admin."
5063
  msgstr ""
5064
 
5065
- #: includes/admin/settings/class-settings-bootstrap.php:1359
5066
  msgctxt "settings"
5067
  msgid "Listing Contact Message"
5068
  msgstr ""
5069
 
5070
- #: includes/admin/settings/class-settings-bootstrap.php:1360
5071
  msgctxt "settings"
5072
  msgid ""
5073
  "Sent to listing owners when someone uses the contact form on their listing "
5074
  "pages."
5075
  msgstr ""
5076
 
5077
- #: includes/admin/settings/class-settings-bootstrap.php:1388
5078
  msgctxt "settings"
5079
  msgid "Payment completed message"
5080
  msgstr ""
5081
 
5082
- #: includes/admin/settings/class-settings-bootstrap.php:1389
5083
  msgctxt "settings"
5084
  msgid "Sent after a Listing's payment is verified by Gateway or admins."
5085
  msgstr ""
5086
 
5087
- #: includes/admin/settings/class-settings-bootstrap.php:1424
5088
  msgctxt "settings"
5089
  msgid "Payment abandoned reminder message"
5090
  msgstr ""
5091
 
5092
- #: includes/admin/settings/class-settings-bootstrap.php:1425
5093
  msgctxt "settings"
5094
  msgid "Sent some time after a pending payment is abandoned by users."
5095
  msgstr ""
5096
 
5097
- #: includes/admin/settings/class-settings-bootstrap.php:1462
5098
  msgctxt "settings"
5099
  msgid "E-Mail Notices"
5100
  msgstr ""
5101
 
5102
- #: includes/admin/settings/class-settings-bootstrap.php:1653
5103
  msgctxt "settings"
5104
  msgid "Cropped"
5105
  msgstr ""
5106
 
5107
- #: includes/admin/settings/class-settings.php:556
5108
- #: includes/admin/settings/class-settings.php:567
5109
  msgctxt "settings"
5110
  msgid "\"%s\" can not be empty."
5111
  msgstr ""
5112
 
5113
- #: includes/admin/settings/class-settings.php:574
5114
  msgctxt "settings"
5115
  msgid "The slug \"%s\" is already in use for another taxonomy."
5116
  msgstr ""
@@ -5143,11 +5136,6 @@ msgctxt "settings"
5143
  msgid "Deactivate"
5144
  msgstr ""
5145
 
5146
- #: includes/licensing.php:223 includes/licensing.php:224
5147
- msgctxt "settings"
5148
- msgid "Licenses"
5149
- msgstr ""
5150
-
5151
  #: templates/admin/settings-page.tpl.php:7
5152
  msgctxt "settings"
5153
  msgid "Reset Defaults"
@@ -5182,27 +5170,27 @@ msgctxt "post status"
5182
  msgid "Pending"
5183
  msgstr ""
5184
 
5185
- #: includes/admin/settings/class-settings-bootstrap.php:1364
5186
  msgctxt "contact email"
5187
  msgid "You have received a reply from your listing at %s."
5188
  msgstr ""
5189
 
5190
- #: includes/admin/settings/class-settings-bootstrap.php:1365
5191
  msgctxt "contact email"
5192
  msgid "Name: %s"
5193
  msgstr ""
5194
 
5195
- #: includes/admin/settings/class-settings-bootstrap.php:1366
5196
  msgctxt "contact email"
5197
  msgid "E-Mail: %s"
5198
  msgstr ""
5199
 
5200
- #: includes/admin/settings/class-settings-bootstrap.php:1367
5201
  msgctxt "contact email"
5202
  msgid "Message:"
5203
  msgstr ""
5204
 
5205
- #: includes/admin/settings/class-settings-bootstrap.php:1369
5206
  msgctxt "contact email"
5207
  msgid "Time: %s"
5208
  msgstr ""
@@ -5352,7 +5340,7 @@ msgctxt "installer"
5352
  msgid "Listing upgrade to featured"
5353
  msgstr ""
5354
 
5355
- #: includes/installer.php:79
5356
  msgctxt "installer"
5357
  msgid "Default Fee"
5358
  msgstr ""
@@ -5813,102 +5801,102 @@ msgid ""
5813
  "<i>Free Mode</i>."
5814
  msgstr ""
5815
 
5816
- #: includes/class-payment.php:82
5817
  msgctxt "payment"
5818
  msgid "Payment status changed from \"%1$s\" to \"%2$s\"."
5819
  msgstr ""
5820
 
5821
- #: includes/class-payment.php:123
5822
  msgctxt "payment"
5823
  msgid "Initial payment (\"%s\")"
5824
  msgstr ""
5825
 
5826
- #: includes/class-payment.php:126
5827
  msgctxt "payment"
5828
  msgid "Renewal payment (\"%s\")"
5829
  msgstr ""
5830
 
5831
- #: includes/class-payment.php:313
5832
  msgctxt "payment"
5833
  msgid "Pending"
5834
  msgstr ""
5835
 
5836
- #: includes/class-payment.php:314
5837
  msgctxt "payment"
5838
  msgid "Failed"
5839
  msgstr ""
5840
 
5841
- #: includes/class-payment.php:315
5842
  msgctxt "payment"
5843
  msgid "Completed"
5844
  msgstr ""
5845
 
5846
- #: includes/class-payment.php:316
5847
  msgctxt "payment"
5848
  msgid "Canceled"
5849
  msgstr ""
5850
 
5851
- #: includes/class-payment.php:317
5852
  msgctxt "payment"
5853
  msgid "On Hold"
5854
  msgstr ""
5855
 
5856
- #: includes/class-payment.php:318
5857
  msgctxt "payment"
5858
  msgid "Refunded"
5859
  msgstr ""
5860
 
5861
- #: includes/class-payment.php:138
5862
  msgctxt "payment summary"
5863
  msgid "%s. Admin Posted."
5864
  msgstr ""
5865
 
5866
- #: includes/class-payment.php:140
5867
  msgctxt "payment summary"
5868
  msgid "%s. Imported Listing."
5869
  msgstr ""
5870
 
5871
- #: includes/class-payment.php:218
5872
  msgctxt "submit listing"
5873
  msgid "Listing submitted by admin. Payment skipped."
5874
  msgstr ""
5875
 
5876
- #: includes/views/submit_listing.php:63
5877
  msgctxt "submit listing"
5878
  msgid "Click this field to add categories"
5879
  msgstr ""
5880
 
5881
- #: includes/views/submit_listing.php:64 templates/submit-listing.tpl.php:23
5882
  msgctxt "submit listing"
5883
  msgid "Complete Listing"
5884
  msgstr ""
5885
 
5886
- #: includes/views/submit_listing.php:65 templates/submit-listing.tpl.php:28
5887
  msgctxt "submit listing"
5888
  msgid "Continue to Payment"
5889
  msgstr ""
5890
 
5891
- #: includes/views/submit_listing.php:67
5892
  msgctxt "submit listing"
5893
  msgid "Please wait a moment!"
5894
  msgstr ""
5895
 
5896
- #: includes/views/submit_listing.php:68
5897
  msgctxt "submit listing"
5898
  msgid "Something went wrong!"
5899
  msgstr ""
5900
 
5901
- #: includes/views/submit_listing.php:93
5902
  msgctxt "submit listing"
5903
  msgid "No listing ID was specified."
5904
  msgstr ""
5905
 
5906
- #: includes/views/submit_listing.php:95
5907
  msgctxt "submit listing"
5908
  msgid "You can't edit this listing."
5909
  msgstr ""
5910
 
5911
- #: includes/views/submit_listing.php:149
5912
  msgctxt "submit listing"
5913
  msgid ""
5914
  "This listing can't be edited at this time because it has no fee plan "
@@ -5916,115 +5904,115 @@ msgid ""
5916
  "to a fee plan."
5917
  msgstr ""
5918
 
5919
- #: includes/views/submit_listing.php:154
5920
  msgctxt "submit listing"
5921
  msgid ""
5922
  "This listing can't be edited at this time. Please try again later or contact "
5923
  "the admin if the problem persists."
5924
  msgstr ""
5925
 
5926
- #: includes/views/submit_listing.php:177
5927
  msgctxt "submit listing"
5928
  msgid "You're logged in as admin, payment will be skipped."
5929
  msgstr ""
5930
 
5931
- #: includes/views/submit_listing.php:403
5932
  msgctxt "submit listing"
5933
  msgid "Category selection"
5934
  msgstr ""
5935
 
5936
- #: includes/views/submit_listing.php:403
5937
  msgctxt "submit listing"
5938
  msgid "Category & plan selection"
5939
  msgstr ""
5940
 
5941
- #: includes/views/submit_listing.php:408
5942
  msgctxt "submit listing"
5943
  msgid "Listing Information"
5944
  msgstr ""
5945
 
5946
- #: includes/views/submit_listing.php:413
5947
  msgctxt "submit listing"
5948
  msgid "Listing Images"
5949
  msgstr ""
5950
 
5951
- #: includes/views/submit_listing.php:421
5952
  msgctxt "submit listing"
5953
  msgid "Account Creation"
5954
  msgstr ""
5955
 
5956
- #: includes/views/submit_listing.php:427
5957
  msgctxt "submit listing"
5958
  msgid "Terms and Conditions"
5959
  msgstr ""
5960
 
5961
- #: includes/views/submit_listing.php:464
5962
  msgctxt "submit listing"
5963
  msgid "(Please choose a fee plan above)"
5964
  msgstr ""
5965
 
5966
- #: includes/views/submit_listing.php:514
5967
  msgctxt "submit listing"
5968
  msgid "Can not submit a listing at this moment. Please try again later."
5969
  msgstr ""
5970
 
5971
- #: includes/views/submit_listing.php:556
5972
  msgctxt "submit listing"
5973
  msgid "Please select a category."
5974
  msgstr ""
5975
 
5976
- #: includes/views/submit_listing.php:569
5977
  msgctxt "submit listing"
5978
  msgid "Please select a category for your listing."
5979
  msgstr ""
5980
 
5981
- #: includes/views/submit_listing.php:589
5982
  msgctxt "submit listing"
5983
  msgid "Please choose a valid category for your plan."
5984
  msgstr ""
5985
 
5986
- #: includes/views/submit_listing.php:591
5987
  msgctxt "submit listing"
5988
  msgid "Please choose a valid fee plan for your category selection."
5989
  msgstr ""
5990
 
5991
- #: includes/views/submit_listing.php:830
5992
  msgctxt "submit listing"
5993
  msgid "Please enter your desired username."
5994
  msgstr ""
5995
 
5996
- #: includes/views/submit_listing.php:835
5997
  msgctxt "submit listing"
5998
  msgid "Please enter the e-mail for your new account."
5999
  msgstr ""
6000
 
6001
- #: includes/views/submit_listing.php:840
6002
  msgctxt "submit listing"
6003
  msgid "The username you chose is already in use. Please use a different one."
6004
  msgstr ""
6005
 
6006
- #: includes/views/submit_listing.php:845
6007
  msgctxt "submit listing"
6008
  msgid "The e-mail address you chose for your account is already in use."
6009
  msgstr ""
6010
 
6011
- #: includes/views/submit_listing.php:860
6012
  msgctxt "submit listing"
6013
  msgid "Create a user account on this site"
6014
  msgstr ""
6015
 
6016
- #: includes/views/submit_listing.php:867
6017
  msgctxt "submit listing"
6018
  msgid ""
6019
  "You need to create an account on the site. Please fill out the form below."
6020
  msgstr ""
6021
 
6022
- #: includes/views/submit_listing.php:873
6023
  msgctxt "submit listing"
6024
  msgid "Username:"
6025
  msgstr ""
6026
 
6027
- #: includes/views/submit_listing.php:882
6028
  msgctxt "submit listing"
6029
  msgid "Email:"
6030
  msgstr ""
@@ -6176,7 +6164,7 @@ msgid "Social Site (Other)"
6176
  msgstr ""
6177
 
6178
  #: includes/fields/class-fieldtypes-social.php:95
6179
- #: includes/fields/class-fieldtypes-url.php:149
6180
  msgctxt "form-fields api"
6181
  msgid "URL:"
6182
  msgstr ""
@@ -6221,7 +6209,7 @@ msgctxt "form-fields api"
6221
  msgid "URL Field"
6222
  msgstr ""
6223
 
6224
- #: includes/fields/class-fieldtypes-url.php:160
6225
  msgctxt "form-fields api"
6226
  msgid "Link Text (optional):"
6227
  msgstr ""
@@ -6491,12 +6479,12 @@ msgctxt "image field"
6491
  msgid "Caption for %s is required."
6492
  msgstr ""
6493
 
6494
- #: includes/functions.php:1272
6495
  msgctxt "templates"
6496
  msgid "Return to results"
6497
  msgstr ""
6498
 
6499
- #: includes/functions.php:1276 includes/functions.php:1281
6500
  msgctxt "templates"
6501
  msgid "Go back"
6502
  msgstr ""
@@ -6511,12 +6499,12 @@ msgctxt "templates"
6511
  msgid "No listing categories found."
6512
  msgstr ""
6513
 
6514
- #: includes/templates-ui.php:345
6515
  msgctxt "templates"
6516
  msgid "Search Listings"
6517
  msgstr ""
6518
 
6519
- #: includes/templates-ui.php:350
6520
  msgctxt "templates"
6521
  msgid "Advanced Search"
6522
  msgstr ""
@@ -6554,34 +6542,34 @@ msgid ""
6554
  "site. If you didn't want that, click <a>here</a> to change the setting."
6555
  msgstr ""
6556
 
6557
- #: includes/views/submit_listing.php:348
6558
  msgctxt "templates"
6559
  msgid ""
6560
  "<b>View not available</b>. Do you have the \"Disable Frontend Listing "
6561
  "Submission?\" setting checked?"
6562
  msgstr ""
6563
 
6564
- #: includes/views/submit_listing.php:350
6565
  msgctxt "templates"
6566
  msgid ""
6567
  "Listing submission has been disabled. Contact the administrator for details."
6568
  msgstr ""
6569
 
6570
- #: includes/views/submit_listing.php:517
6571
  msgctxt "templates"
6572
  msgid ""
6573
  "<b>There are no Fee Plans available</b>, without a fee plan site users can't "
6574
  "submit a listing. %s to create a fee plan"
6575
  msgstr ""
6576
 
6577
- #: includes/views/submit_listing.php:531
6578
  msgctxt "templates"
6579
  msgid ""
6580
  "Listing submission is not available at the moment. Contact the administrator "
6581
  "for details."
6582
  msgstr ""
6583
 
6584
- #: includes/views/submit_listing.php:534
6585
  msgctxt "templates"
6586
  msgid ""
6587
  "<b>View not available</b>, there is no \"Category\" association field. %s "
@@ -6589,17 +6577,17 @@ msgid ""
6589
  "an existing field"
6590
  msgstr ""
6591
 
6592
- #: includes/views/submit_listing.php:902
6593
  msgctxt "templates"
6594
  msgid "Please agree to the Terms and Conditions."
6595
  msgstr ""
6596
 
6597
- #: includes/views/submit_listing.php:910
6598
  msgctxt "templates"
6599
  msgid "Terms and Conditions:"
6600
  msgstr ""
6601
 
6602
- #: includes/views/submit_listing.php:918
6603
  msgctxt "templates"
6604
  msgid "I agree to the <a>Terms and Conditions</a>"
6605
  msgstr ""
@@ -6612,19 +6600,19 @@ msgid "No listings found."
6612
  msgstr ""
6613
 
6614
  #: templates/businessdirectory-listings.tpl.php:38
6615
- #: templates/listings.tpl.php:31
6616
  msgctxt "templates"
6617
  msgid "&laquo; Previous "
6618
  msgstr ""
6619
 
6620
  #: templates/businessdirectory-listings.tpl.php:39
6621
- #: templates/listings.tpl.php:32
6622
  msgctxt "templates"
6623
  msgid "Next &raquo;"
6624
  msgstr ""
6625
 
6626
  #: templates/deprecated/search.tpl.php:24 templates/manage-listings.tpl.php:8
6627
- #: templates/manage_listings.tpl.php:8
6628
  msgctxt "templates"
6629
  msgid "Return to directory"
6630
  msgstr ""
@@ -6692,14 +6680,14 @@ msgctxt "templates"
6692
  msgid "Lost your password?"
6693
  msgstr ""
6694
 
6695
- #: templates/manage-listings.tpl.php:3 templates/manage_listings.tpl.php:3
6696
  msgctxt "templates"
6697
  msgid ""
6698
  "Your current listings are shown below. To edit a listing click the edit "
6699
  "button. To delete a listing click the delete button."
6700
  msgstr ""
6701
 
6702
- #: templates/manage-listings.tpl.php:6 templates/manage_listings.tpl.php:6
6703
  msgctxt "templates"
6704
  msgid "You do not currently have any listings in the directory."
6705
  msgstr ""
@@ -6892,60 +6880,73 @@ msgctxt "templates"
6892
  msgid "There are no images currently attached to your listing."
6893
  msgstr ""
6894
 
6895
- #: includes/gateways/class-gateway-authorize-net.php:20
6896
  msgctxt "authorize-net"
6897
  msgid "Authorize.net"
6898
  msgstr ""
6899
 
6900
- #: includes/gateways/class-gateway-authorize-net.php:38
6901
  msgctxt "authorize-net"
6902
  msgid "Login ID"
6903
  msgstr ""
6904
 
6905
- #: includes/gateways/class-gateway-authorize-net.php:39
6906
  msgctxt "authorize-net"
6907
  msgid "Transaction Key"
6908
  msgstr ""
6909
 
6910
- #: includes/gateways/class-gateway-authorize-net.php:71
6911
  msgctxt "authorize-net"
6912
  msgid "Login ID is missing."
6913
  msgstr ""
6914
 
6915
- #: includes/gateways/class-gateway-authorize-net.php:74
6916
  msgctxt "authorize-net"
6917
  msgid "Transaction Key is missing."
6918
  msgstr ""
6919
 
6920
- #: includes/gateways/class-gateway-authorize-net.php:103
 
 
6921
  msgctxt "authorize-net"
6922
  msgid ""
6923
  "Payment is being held for review by the payment gateway. The following "
6924
  "reason was given: \"%s\"."
6925
  msgstr ""
6926
 
6927
- #: includes/gateways/class-gateway-authorize-net.php:112
6928
  msgctxt "authorize-net"
6929
  msgid ""
6930
  "The payment gateway didn't accept the credit card or billing information. "
6931
  "The following reason was given: \"%s\"."
6932
  msgstr ""
6933
 
6934
- #: includes/gateways/class-gateway-authorize-net.php:121
 
 
 
 
 
6935
  msgctxt "authorize-net"
6936
  msgid "Payment was rejected. The following reason was given: \"%s\"."
6937
  msgstr ""
6938
 
6939
- #: includes/gateways/class-gateway-authorize-net.php:179
 
6940
  msgctxt "authorize-net"
6941
  msgid "Payment failed. Reason: %s"
6942
  msgstr ""
6943
 
6944
- #: includes/gateways/class-gateway-authorize-net.php:204
6945
  msgctxt "authorize-net"
6946
  msgid "Listing #%d"
6947
  msgstr ""
6948
 
 
 
 
 
 
6949
  #: includes/helpers/class-access-keys-sender.php:20
6950
  msgctxt "access keys sender"
6951
  msgid "<email-address> is not a valid e-mail address."
@@ -7071,22 +7072,22 @@ msgctxt "default category name"
7071
  msgid "General"
7072
  msgstr ""
7073
 
7074
- #: includes/licensing.php:297
7075
  msgctxt "licensing"
7076
  msgid "Invalid item ID"
7077
  msgstr ""
7078
 
7079
- #: includes/licensing.php:303
7080
  msgctxt "licensing"
7081
  msgid "No license key provided"
7082
  msgstr ""
7083
 
7084
- #: includes/licensing.php:327
7085
  msgctxt "licensing"
7086
  msgid "The license key was revoked."
7087
  msgstr ""
7088
 
7089
- #: includes/licensing.php:329
7090
  msgctxt "licensing"
7091
  msgid ""
7092
  "If you think this is a mistake, please contact <support-link>Business "
@@ -7094,36 +7095,36 @@ msgid ""
7094
  "reported as revoked by the licensing software."
7095
  msgstr ""
7096
 
7097
- #: includes/licensing.php:331
7098
  msgctxt "licensing"
7099
  msgid ""
7100
  "Please include the email address you used to purchase <module-name> with "
7101
  "your report."
7102
  msgstr ""
7103
 
7104
- #: includes/licensing.php:342 includes/licensing.php:385
7105
  msgctxt "licensing"
7106
  msgid "License key is invalid"
7107
  msgstr ""
7108
 
7109
- #: includes/licensing.php:359
7110
  msgctxt "licensing"
7111
  msgid "Invalid module ID"
7112
  msgstr ""
7113
 
7114
- #: includes/licensing.php:389
7115
  msgctxt "licensing"
7116
  msgid "Deactivation failed"
7117
  msgstr ""
7118
 
7119
- #: includes/licensing.php:397
7120
  msgctxt "licensing"
7121
  msgid ""
7122
  "It was not possible to establish a connection with Business Directory's "
7123
  "server. cURL was not found in your system"
7124
  msgstr ""
7125
 
7126
- #: includes/licensing.php:399 includes/licensing.php:440
7127
  msgctxt "licensing"
7128
  msgid ""
7129
  "To ensure the security of our systems and adhere to industry best practices, "
@@ -7132,7 +7133,7 @@ msgid ""
7132
  "1.0.1c)."
7133
  msgstr ""
7134
 
7135
- #: includes/licensing.php:401 includes/licensing.php:442
7136
  msgctxt "licensing"
7137
  msgid ""
7138
  "Upgrading your system will not only allow you to communicate with Business "
@@ -7140,88 +7141,88 @@ msgid ""
7140
  "services using the latest security standards."
7141
  msgstr ""
7142
 
7143
- #: includes/licensing.php:403
7144
  msgctxt "licensing"
7145
  msgid ""
7146
  "Please contact your hosting provider and ask them to upgrade your system. "
7147
  "Include this message if necessary"
7148
  msgstr ""
7149
 
7150
- #: includes/licensing.php:419
7151
  msgctxt "licensing"
7152
  msgid ""
7153
  "It was not possible to establish a connection with Business Directory's "
7154
  "server. The connection failed with the following error:"
7155
  msgstr ""
7156
 
7157
- #: includes/licensing.php:423 includes/licensing.php:475
7158
  msgctxt "licensing"
7159
  msgid ""
7160
  "It looks like your server is not authorized to make requests to Business "
7161
  "Directory servers. Please contact <support-link>Business Directory support</"
7162
- "support-link> and ask them to add your IP address <ip-address> to the "
7163
- "whitelist."
7164
  msgstr ""
7165
 
7166
- #: includes/licensing.php:425 includes/licensing.php:477
7167
  msgctxt "licensing"
7168
  msgid "Include this error message with your report."
7169
  msgstr ""
7170
 
7171
- #: includes/licensing.php:435
7172
  msgctxt "licensing"
7173
  msgid ""
7174
  "It was not possible to establish a connection with Business Directory's "
7175
  "server. A problem occurred in the SSL/TSL handshake:"
7176
  msgstr ""
7177
 
7178
- #: includes/licensing.php:444
7179
  msgctxt "licensing"
7180
  msgid ""
7181
  "Please contact your hosting provider and ask them to upgrade your system. "
7182
  "Include this message if necessary."
7183
  msgstr ""
7184
 
7185
- #: includes/licensing.php:451
7186
  msgctxt "licensing"
7187
  msgid "Could not contact licensing server"
7188
  msgstr ""
7189
 
7190
- #: includes/licensing.php:473
7191
  msgctxt "licensing"
7192
  msgid "The server returned a 403 Forbidden error."
7193
  msgstr ""
7194
 
7195
- #: includes/licensing.php:541
7196
  msgctxt "licensing"
7197
  msgid "Business Directory - Please verify your license keys"
7198
  msgstr ""
7199
 
7200
- #: includes/licensing.php:551
7201
  msgctxt "licensing"
7202
  msgid ""
7203
  "The following premium modules will not work until a valid license key is "
7204
  "provided: %s."
7205
  msgstr ""
7206
 
7207
- #: includes/licensing.php:562
7208
  msgctxt "licensing"
7209
  msgid ""
7210
  "You need to activate the license keys for the following themes before they "
7211
  "can be used: %s."
7212
  msgstr ""
7213
 
7214
- #: includes/licensing.php:570 includes/licensing.php:626
7215
  msgctxt "licensing"
7216
  msgid "Review my license keys"
7217
  msgstr ""
7218
 
7219
- #: includes/licensing.php:597
7220
  msgctxt "licensing"
7221
  msgid "Business Directory - License key expired"
7222
  msgstr ""
7223
 
7224
- #: includes/licensing.php:607
7225
  msgctxt "licensing"
7226
  msgid ""
7227
  "The license key for the following modules has expired: %s. The modules will "
@@ -7229,7 +7230,7 @@ msgid ""
7229
  "is renewed."
7230
  msgstr ""
7231
 
7232
- #: includes/licensing.php:618
7233
  msgctxt "licensing"
7234
  msgid ""
7235
  "The license key for the following themes has expired: %s. The themes will "
@@ -7237,33 +7238,33 @@ msgid ""
7237
  "is renewed."
7238
  msgstr ""
7239
 
7240
- #: includes/licensing.php:718
7241
  msgctxt "licensing"
7242
  msgid "Please enter a license key."
7243
  msgstr ""
7244
 
7245
- #: includes/licensing.php:727
7246
  msgctxt "licensing"
7247
  msgid "Could not activate license: %s."
7248
  msgstr ""
7249
 
7250
- #: includes/licensing.php:729
7251
  msgctxt "licensing"
7252
  msgid "License activated"
7253
  msgstr ""
7254
 
7255
- #: includes/licensing.php:749
7256
  msgctxt "licensing"
7257
  msgid "Could not deactivate license: %s."
7258
  msgstr ""
7259
 
7260
- #: includes/licensing.php:751
7261
  msgctxt "licensing"
7262
  msgid "License deactivated"
7263
  msgstr ""
7264
 
7265
  #. translators: "<module-name>" version <version-number> is not...
7266
- #: includes/licensing.php:954
7267
  msgctxt "deprecation"
7268
  msgid ""
7269
  "\"%1$s\" version %2$s is not compatible with Business Directory Plugin 5.0. "
@@ -7542,17 +7543,17 @@ msgctxt "checkout"
7542
  msgid "Next"
7543
  msgstr ""
7544
 
7545
- #: includes/templates-ui.php:385 includes/templates-ui.php:417
7546
  msgctxt "templates sort"
7547
  msgid "Sort By:"
7548
  msgstr ""
7549
 
7550
- #: includes/templates-ui.php:408
7551
  msgctxt "sort"
7552
  msgid "Reset"
7553
  msgstr ""
7554
 
7555
- #: includes/templates-ui.php:436
7556
  msgctxt "sort"
7557
  msgid "(Reset)"
7558
  msgstr ""
@@ -7693,7 +7694,7 @@ msgctxt "contact form"
7693
  msgid "This contact form is temporarily disabled. Please try again later."
7694
  msgstr ""
7695
 
7696
- #: includes/views/login.php:47
7697
  msgctxt "views:login"
7698
  msgid "Please enter a valid e-mail/access key combination."
7699
  msgstr ""
@@ -7708,36 +7709,41 @@ msgctxt "views:login"
7708
  msgid "... or use an Access Key"
7709
  msgstr ""
7710
 
7711
- #: templates/login.tpl.php:53
7712
  msgctxt "views:login"
7713
  msgid "Please enter your access key and e-mail address."
7714
  msgstr ""
7715
 
7716
- #: templates/login.tpl.php:59 templates/login.tpl.php:61
7717
  msgctxt "views:login"
7718
  msgid "E-Mail Address"
7719
  msgstr ""
7720
 
7721
- #: templates/login.tpl.php:65 templates/login.tpl.php:67
7722
  msgctxt "views:login"
7723
  msgid "Access Key"
7724
  msgstr ""
7725
 
7726
- #: templates/login.tpl.php:69
7727
  msgctxt "views:login"
7728
  msgid "Use Access Key"
7729
  msgstr ""
7730
 
7731
- #: templates/login.tpl.php:70
7732
  msgctxt "views:login"
7733
  msgid "Request access key?"
7734
  msgstr ""
7735
 
7736
- #: includes/views/manage_listings.php:20
7737
  msgctxt "view:manage-listings"
7738
  msgid "Please <a>login</a> to manage your listings."
7739
  msgstr ""
7740
 
 
 
 
 
 
7741
  #: includes/views/manage_recurring.php:36
7742
  msgctxt "manage subscription"
7743
  msgid "The listing with id = <listing-id> doesn't exists."
@@ -7897,19 +7903,19 @@ msgctxt "search"
7897
  msgid "Clear"
7898
  msgstr ""
7899
 
7900
- #: includes/views/show_listing.php:12
7901
  msgctxt "preview"
7902
  msgid "This is just a preview. The listing has not been published yet."
7903
  msgstr ""
7904
 
7905
- #: includes/views/submit_listing.php:700
7906
  msgctxt "listing submit"
7907
  msgid ""
7908
  "Something went wrong. Please check the form for errors, correct them and "
7909
  "submit again."
7910
  msgstr ""
7911
 
7912
- #: includes/views/submit_listing.php:784
7913
  msgctxt "listing submit"
7914
  msgid ""
7915
  "Image upload is required, please provide at least one image and submit again."
@@ -8056,8 +8062,9 @@ msgctxt "widgets"
8056
  msgid "Search"
8057
  msgstr ""
8058
 
8059
- #: templates/admin/csv-export.tpl.php:93 templates/admin/csv-export.tpl.php:112
8060
- #: templates/admin/csv-export.tpl.php:123 templates/admin/csv-import.tpl.php:50
 
8061
  #: templates/admin/csv-import.tpl.php:116
8062
  #: templates/admin/csv-import.tpl.php:142
8063
  #: templates/admin/csv-import.tpl.php:153
5
  "Project-Id-Version: Business Directory Plugin v5.7.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
7
  "directory-plugin\n"
8
+ "POT-Creation-Date: 2020-08-27 15:16:00+00:00\n"
9
  "PO-Revision-Date: 2020-06-17 15:32-0500\n"
10
  "Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
11
  "Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
30
  msgstr ""
31
 
32
  #: includes/admin/class-admin-listings.php:225
33
+ #: includes/admin/class-listing-owner.php:91
34
  msgid "Listing Owner"
35
  msgstr ""
36
 
46
  msgid "Edit listing permalink"
47
  msgstr ""
48
 
49
+ #: includes/admin/class-admin.php:184
50
  msgid ""
51
  "Preview is only available after you've saved the first draft. This is due\n"
52
+ " to how WordPress stores the data."
53
  msgstr ""
54
 
55
+ #: includes/admin/class-admin.php:350
56
  msgid "Uninstall Business Directory Plugin"
57
  msgstr ""
58
 
59
+ #: includes/admin/class-admin.php:351
60
  msgid "Uninstall"
61
  msgstr ""
62
 
63
+ #: includes/admin/class-csv-import.php:646
64
  msgid "Listing imported by admin. Payment skipped."
65
  msgstr ""
66
 
67
+ #: includes/admin/class-listing-owner.php:66
68
+ #: includes/admin/class-listing-owner.php:93
69
  msgid "Please select a user"
70
  msgstr ""
71
 
113
  msgid "Missing tables: %s"
114
  msgstr ""
115
 
116
+ #: includes/admin/settings/class-settings-bootstrap.php:1116
117
  msgid ""
118
  "If you are using this gateway, we recommend you disable it if you wish to "
119
  "collect payments in this currency."
191
  msgstr ""
192
 
193
  #: includes/class-cpt-integration.php:24
194
+ msgid "Directory Listings"
195
  msgstr ""
196
 
197
  #: includes/class-cpt-integration.php:25
198
+ msgid "No listings found"
199
+ msgstr ""
200
+
201
+ #: includes/class-cpt-integration.php:26
202
  msgid "No listings found in trash"
203
  msgstr ""
204
 
205
+ #: includes/class-cpt-integration.php:47
206
  msgid "Directory Categories"
207
  msgstr ""
208
 
209
+ #: includes/class-cpt-integration.php:48
210
  msgid "Directory Category"
211
  msgstr ""
212
 
213
+ #: includes/class-cpt-integration.php:59
214
  msgid "Directory Tags"
215
  msgstr ""
216
 
217
+ #: includes/class-cpt-integration.php:60
218
  msgid "Directory Tag"
219
  msgstr ""
220
 
221
  #. translators: %s: listing count
222
+ #: includes/class-cpt-integration.php:254
223
  msgid "%s listing updated."
224
  msgid_plural "%s listings updated."
225
  msgstr[0] ""
226
  msgstr[1] ""
227
 
228
  #. translators: %s: listing count
229
+ #: includes/class-cpt-integration.php:256
230
  msgid "%s listing not updated, somebody is editing it."
231
  msgid_plural "%s listings not updated, somebody is editing them."
232
  msgstr[0] ""
233
  msgstr[1] ""
234
 
235
  #. translators: %s: listing count
236
+ #: includes/class-cpt-integration.php:258
237
  msgid "%s listing permanently deleted."
238
  msgid_plural "%s listings permanently deleted."
239
  msgstr[0] ""
240
  msgstr[1] ""
241
 
242
  #. translators: %s: listing count
243
+ #: includes/class-cpt-integration.php:260
244
  msgid "%s listing moved to the Trash."
245
  msgid_plural "%s listings moved to the Trash."
246
  msgstr[0] ""
247
  msgstr[1] ""
248
 
249
  #. translators: %s: listing count
250
+ #: includes/class-cpt-integration.php:262
251
  msgid "%s listing restored from the Trash."
252
  msgid_plural "%s listings restored from the Trash."
253
  msgstr[0] ""
326
  msgid "Free"
327
  msgstr ""
328
 
329
+ #: includes/gateways/class-gateway-authorize-net.php:498
330
  msgid ""
331
  "An error occurred while trying to cancel your subscription. Please try again "
332
  "later or contact the site administrator."
333
  msgstr ""
334
 
335
+ #: includes/gateways/class-gateway-authorize-net.php:502
336
  msgid ""
337
  "An error occurred while trying to cancel Authorize.net subscription with ID "
338
  "%s. You can try again later or cancel subscription from gateway dashboard."
350
  msgid "The payment gateway \"<payment-gateway>\" is not available."
351
  msgstr ""
352
 
353
+ #: includes/templates-ui.php:292
354
  msgid "Directory"
355
  msgstr ""
356
 
357
+ #: includes/templates-ui.php:301
358
  msgid "View All Listings"
359
  msgstr ""
360
 
361
+ #: includes/templates-ui.php:310
362
+ msgid "Manage Listings"
363
+ msgstr ""
364
+
365
+ #: includes/templates-ui.php:319
366
  msgid "Create A Listing"
367
  msgstr ""
368
 
370
  msgid "l F j, Y \\a\\t g:i a"
371
  msgstr ""
372
 
373
+ #: templates/admin/csv-export.tpl.php:6
374
+ msgid ""
375
+ "An unknown error occurred during the export. Please make sure you have "
376
+ "enough free disk space and memory available to PHP. Check your error logs "
377
+ "for details."
378
+ msgstr ""
379
+
380
  #: templates/admin/home.tpl.php:53
381
  msgid "Manage Options"
382
  msgstr ""
427
  msgid "← Return to Directory"
428
  msgstr ""
429
 
430
+ #. Author URI of the plugin/theme
431
+ msgid "https://businessdirectoryplugin.com"
432
  msgstr ""
433
 
434
  #. Description of the plugin/theme
438
  msgstr ""
439
 
440
  #. Author of the plugin/theme
441
+ msgid "Business Directory Team"
 
 
 
 
442
  msgstr ""
443
 
444
  #: includes/admin/class-admin-controller.php:79
478
  msgid "Could not create listing category \"%s\""
479
  msgstr ""
480
 
481
+ #: includes/admin/class-csv-import.php:697
482
  msgctxt "admin csv-import"
483
  msgid "Username \"%s\" does not exist"
484
  msgstr ""
485
 
486
+ #: includes/admin/class-csv-import.php:725
 
 
 
 
 
487
  msgctxt "admin csv-import"
488
  msgid "There is no Fee Plan with ID = <fee-id>"
489
  msgstr ""
490
 
491
+ #: includes/admin/class-csv-import.php:756
492
  msgctxt "admin csv-import"
493
  msgid "Missing required field: %s"
494
  msgstr ""
495
 
496
+ #: includes/admin/class-csv-import.php:781
497
  msgctxt "admin csv-import"
498
  msgid "Listing category \"%s\" does not exist"
499
  msgstr ""
500
 
501
+ #: includes/admin/class-csv-import.php:846
502
+ msgctxt "admin csv-import"
503
+ msgid "The string <string> couldn't be converted into a valid date."
504
+ msgstr ""
505
+
506
  #: includes/admin/csv-import.php:130
507
  msgctxt "admin csv-import"
508
  msgid "Business %s"
985
  msgid "Reported"
986
  msgstr ""
987
 
988
+ #: includes/admin/class-admin-listings.php:723
989
  msgctxt "admin listings"
990
  msgid "Listing's payment history successfully deleted"
991
  msgstr ""
1030
  msgid "Categories"
1031
  msgstr ""
1032
 
1033
+ #: includes/admin/class-admin.php:245
1034
  msgctxt "admin"
1035
  msgid "Business Directory"
1036
  msgstr ""
1037
 
1038
+ #: includes/admin/class-admin.php:256
1039
  msgctxt "admin"
1040
  msgid "You're all set. Visit your new <a>Business Directory</a> page."
1041
  msgstr ""
1042
 
1043
+ #: includes/admin/class-admin.php:380
1044
  msgctxt "admin"
1045
  msgid "Untitled Menu"
1046
  msgstr ""
1047
 
1048
+ #: includes/admin/class-admin.php:650
1049
  msgctxt "admin"
1050
  msgid "Dismiss this notice."
1051
  msgstr ""
1052
 
1053
+ #: includes/admin/class-admin.php:681 includes/admin/class-admin.php:691
1054
  msgctxt "admin"
1055
  msgid "The listing has been updated."
1056
  msgid_plural "The listings have been updated."
1057
  msgstr[0] ""
1058
  msgstr[1] ""
1059
 
1060
+ #: includes/admin/class-admin.php:712
1061
  msgctxt "admin"
1062
  msgid "The fee was successfully assigned."
1063
  msgstr ""
1064
 
1065
+ #: includes/admin/class-admin.php:722
1066
  msgctxt "admin"
1067
  msgid "Listing was renewed."
1068
  msgid_plural "Listings were renewed."
1069
  msgstr[0] ""
1070
  msgstr[1] ""
1071
 
1072
+ #: includes/admin/class-admin.php:733
1073
  msgctxt "admin"
1074
  msgid "Renewal email sent."
1075
  msgstr ""
1076
 
1077
+ #: includes/admin/class-admin.php:737
1078
  msgctxt "admin"
1079
  msgid ""
1080
  "Could not send renewal email, notice template at listing expiration not "
1081
  "found."
1082
  msgstr ""
1083
 
1084
+ #: includes/admin/class-admin.php:744
1085
  msgctxt "admin"
1086
  msgid "Listing report deleted."
1087
  msgid_plural "Listing reports deleted."
1088
  msgstr[0] ""
1089
  msgstr[1] ""
1090
 
1091
+ #: includes/admin/class-admin.php:792
1092
  msgctxt "admin"
1093
  msgid "Access keys sent."
1094
  msgstr ""
1095
 
1096
+ #: includes/admin/class-admin.php:794
1097
  msgctxt "admin"
1098
  msgid "The access keys couldn't be sent."
1099
  msgstr ""
1100
 
1101
+ #: includes/admin/class-admin.php:860 includes/admin/class-admin.php:866
1102
  msgctxt "admin"
1103
  msgid "Listing Count"
1104
  msgstr ""
1105
 
1106
+ #: includes/admin/class-admin.php:928
1107
  msgctxt "admin"
1108
  msgid ""
1109
  "<b>Business Directory Plugin</b> requires a page with the "
1110
  "<tt>[businessdirectory]</tt> shortcode to function properly."
1111
  msgstr ""
1112
 
1113
+ #: includes/admin/class-admin.php:930
1114
  msgctxt "admin"
1115
  msgid ""
1116
  "You can create this page by yourself or let Business Directory do this for "
1117
  "you automatically."
1118
  msgstr ""
1119
 
1120
+ #: includes/admin/class-admin.php:934
1121
  msgctxt "admin"
1122
  msgid "Create required pages for me"
1123
  msgstr ""
1124
 
1125
+ #: includes/admin/class-admin.php:967
1126
  msgctxt "admin"
1127
  msgid ""
1128
  "<strong>Business Directory Plugin</strong> requires <strong>PHP 5.6</strong> "
1130
  "your provider to upgrade in order to prevent any issues with the plugin."
1131
  msgstr ""
1132
 
1133
+ #: includes/admin/class-admin.php:990
1134
  msgctxt "admin"
1135
  msgid ""
1136
  "We noticed you want your Business Directory users to register before posting "
1174
  "or let Business Directory do this for you automatically."
1175
  msgstr ""
1176
 
1177
+ #: includes/admin/form-fields.php:214 includes/views/submit_listing.php:545
1178
  msgctxt "admin"
1179
  msgid "Go to \"Manage Form Fields\""
1180
  msgstr ""
1194
  msgid "Abandoned"
1195
  msgstr ""
1196
 
1197
+ #: includes/views/submit_listing.php:528
1198
  msgctxt "admin"
1199
  msgid "Go to \"Manage Fees\""
1200
  msgstr ""
1304
  msgid "Send access keys"
1305
  msgstr ""
1306
 
1307
+ #: includes/admin/class-admin.php:177
1308
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:75
1309
  msgctxt "listing metabox"
1310
  msgid "Never"
1311
  msgstr ""
1312
 
1313
+ #: includes/admin/class-admin.php:178
1314
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1315
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1316
  msgctxt "listing metabox"
1317
  msgid "Yes"
1318
  msgstr ""
1319
 
1320
+ #: includes/admin/class-admin.php:179
1321
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1322
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1323
  msgctxt "listing metabox"
1430
  msgid "Is Recurring?"
1431
  msgstr ""
1432
 
1433
+ #: includes/admin/class-admin.php:216
1434
  msgctxt "drip pointer"
1435
  msgid ""
1436
  "Find out how to create a compelling, thriving business directory from "
1438
  "a FREE premium module just for signing up."
1439
  msgstr ""
1440
 
1441
+ #: includes/admin/class-admin.php:218
1442
  msgctxt "drip pointer"
1443
  msgid "Email Address:"
1444
  msgstr ""
1445
 
1446
+ #: includes/admin/class-admin.php:224
1447
  msgctxt "drip pointer"
1448
  msgid "Want to know the Secrets of Building an Awesome Business Directory?"
1449
  msgstr ""
1450
 
1451
+ #: includes/admin/class-admin.php:226
1452
  msgctxt "drip pointer"
1453
  msgid "Yes, please!"
1454
  msgstr ""
1455
 
1456
+ #: includes/admin/class-admin.php:228
1457
  msgctxt "drip pointer"
1458
  msgid "No, thanks"
1459
  msgstr ""
1460
 
1461
+ #: includes/admin/class-admin.php:276
1462
  msgctxt "drip pointer"
1463
  msgid "Invalid e-mail address."
1464
  msgstr ""
1465
 
1466
+ #: includes/admin/class-admin.php:317
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1467
  msgctxt "admin menu"
1468
  msgid "Manage Fees"
1469
  msgstr ""
1470
 
1471
+ #: includes/admin/class-admin.php:320
 
 
 
 
 
1472
  msgctxt "admin menu"
1473
  msgid "Manage Form Fields"
1474
  msgstr ""
1475
 
1476
+ #: includes/admin/class-admin.php:324
1477
  msgctxt "admin menu"
1478
  msgid "Payment History"
1479
  msgstr ""
1480
 
1481
+ #: includes/admin/class-admin.php:327
1482
  msgctxt "admin menu"
1483
+ msgid "Import & Export"
1484
  msgstr ""
1485
 
1486
+ #: includes/admin/class-admin.php:330
1487
  msgctxt "admin menu"
1488
  msgid "Debug"
1489
  msgstr ""
1490
 
1491
  #: includes/admin/settings/class-settings-admin.php:46
1492
  msgctxt "admin menu"
1493
+ msgid "Settings"
1494
  msgstr ""
1495
 
1496
+ #: includes/admin/class-admin.php:858
1497
  msgctxt "admin category id"
1498
  msgid "ID"
1499
  msgstr ""
1500
 
1501
+ #: includes/admin/class-csv-exporter.php:104
1502
  msgctxt "admin csv-export"
1503
  msgid "Could not create a temporary directory for handling this CSV export."
1504
  msgstr ""
1505
 
1506
+ #: includes/admin/class-csv-exporter.php:107
1507
  msgctxt "admin csv-export"
1508
  msgid "Could not create wpbdp-csv-exports directory."
1509
  msgstr ""
1510
 
1511
+ #: includes/admin/class-csv-exporter.php:112
1512
  msgctxt "admin csv-export"
1513
  msgid "Error while creating a temporary directory for CSV export: %s"
1514
  msgstr ""
1518
  msgid "Could not decode export state information."
1519
  msgstr ""
1520
 
 
 
 
 
 
 
 
 
1521
  #: templates/admin/csv-export.tpl.php:14
1522
  msgctxt "admin csv-export"
1523
  msgid ""
1527
  "server's php.ini configuration file."
1528
  msgstr ""
1529
 
1530
+ #: templates/admin/csv-export.tpl.php:29
1531
  msgctxt "admin csv-export"
1532
  msgid "Export Configuration"
1533
  msgstr ""
1534
 
1535
+ #: templates/admin/csv-export.tpl.php:32
1536
  msgctxt "admin csv-export"
1537
  msgid "Export settings"
1538
  msgstr ""
1539
 
1540
+ #: templates/admin/csv-export.tpl.php:36
1541
  msgctxt "admin csv-export"
1542
  msgid "Which listings to export?"
1543
  msgstr ""
1544
 
1545
+ #: templates/admin/csv-export.tpl.php:40
1546
  msgctxt "admin csv-export"
1547
  msgid "All"
1548
  msgstr ""
1549
 
1550
+ #: templates/admin/csv-export.tpl.php:41
1551
  msgctxt "admin csv-export"
1552
  msgid "Active Only"
1553
  msgstr ""
1554
 
1555
+ #: templates/admin/csv-export.tpl.php:42
1556
  msgctxt "admin csv-export"
1557
  msgid "Active + Pending Renewal"
1558
  msgstr ""
1559
 
1560
+ #: templates/admin/csv-export.tpl.php:48
1561
  msgctxt "admin csv-export"
1562
  msgid "Export images?"
1563
  msgstr ""
1564
 
1565
+ #: templates/admin/csv-export.tpl.php:53
1566
  msgctxt "admin csv-export"
1567
  msgid "Export images"
1568
  msgstr ""
1569
 
1570
+ #: templates/admin/csv-export.tpl.php:55
1571
  msgctxt "admin csv-export"
1572
  msgid ""
1573
  "When checked, instead of just a CSV file a ZIP file will be generated with "
1574
  "both a CSV file and listing images."
1575
  msgstr ""
1576
 
1577
+ #: templates/admin/csv-export.tpl.php:61
1578
  msgctxt "admin csv-export"
1579
  msgid "Additional metadata to export:"
1580
  msgstr ""
1581
 
1582
+ #: templates/admin/csv-export.tpl.php:66
1583
  msgctxt "admin csv-export"
1584
  msgid "Include unique IDs for each listing (sequence_id column)."
1585
  msgstr ""
1586
 
1587
+ #: templates/admin/csv-export.tpl.php:68
1588
  msgctxt "admin csv-export"
1589
  msgid ""
1590
  "If you plan to re-import the listings into BD and don't want new ones "
1591
  "created, select this option!"
1592
  msgstr ""
1593
 
1594
+ #: templates/admin/csv-export.tpl.php:74
1595
  msgctxt "admin csv-export"
1596
  msgid "Author information (username)"
1597
  msgstr ""
1598
 
1599
+ #: templates/admin/csv-export.tpl.php:79
1600
  msgctxt "admin csv-export"
1601
  msgid "Listing expiration date"
1602
  msgstr ""
1603
 
1604
+ #: templates/admin/csv-export.tpl.php:83
1605
  msgctxt "admin csv-export"
1606
  msgid "Listing created date"
1607
  msgstr ""
1608
 
1609
+ #: templates/admin/csv-export.tpl.php:87
1610
  msgctxt "admin csv-export"
1611
  msgid "Listing last updated date"
1612
  msgstr ""
1613
 
1614
+ #: templates/admin/csv-export.tpl.php:91
1615
+ msgctxt "admin csv-export"
1616
+ msgid "Listing T&C acceptance date"
1617
+ msgstr ""
1618
+
1619
+ #: templates/admin/csv-export.tpl.php:96
1620
  msgctxt "admin csv-export"
1621
  msgid "CSV File Settings"
1622
  msgstr ""
1623
 
1624
+ #: templates/admin/csv-export.tpl.php:100
1625
  msgctxt "admin csv-export"
1626
  msgid "What operating system will you use to edit the CSV file?"
1627
  msgstr ""
1628
 
1629
+ #: templates/admin/csv-export.tpl.php:107
1630
  msgctxt "admin csv-export"
1631
  msgid "Windows"
1632
  msgstr ""
1633
 
1634
+ #: templates/admin/csv-export.tpl.php:112
1635
  msgctxt "admin csv-export"
1636
  msgid "macOS"
1637
  msgstr ""
1638
 
1639
+ #: templates/admin/csv-export.tpl.php:114
1640
  msgctxt "admin csv-export"
1641
  msgid ""
1642
  "Windows and macOS versions of MS Excel handle CSV files differently. To make "
1645
  "each operating system."
1646
  msgstr ""
1647
 
1648
+ #: templates/admin/csv-export.tpl.php:119
1649
  msgctxt "admin csv-export"
1650
  msgid "Image Separator"
1651
  msgstr ""
1652
 
1653
+ #: templates/admin/csv-export.tpl.php:130
1654
  msgctxt "admin csv-export"
1655
  msgid "Category Separator"
1656
  msgstr ""
1657
 
1658
+ #: templates/admin/csv-export.tpl.php:142
1659
  msgctxt "admin csv-export"
1660
  msgid "Export Listings"
1661
  msgstr ""
1662
 
1663
+ #: templates/admin/csv-export.tpl.php:148
1664
  msgctxt "admin csv-export"
1665
  msgid "Export in Progress..."
1666
  msgstr ""
1667
 
1668
+ #: templates/admin/csv-export.tpl.php:149
1669
  msgctxt "admin csv-export"
1670
  msgid ""
1671
  "Your export file is being prepared. Please <u>do not leave</u> this page "
1672
  "until the export finishes."
1673
  msgstr ""
1674
 
1675
+ #: templates/admin/csv-export.tpl.php:152
1676
  msgctxt "admin csv-export"
1677
  msgid "No. of listings:"
1678
  msgstr ""
1679
 
1680
+ #: templates/admin/csv-export.tpl.php:154
1681
  msgctxt "admin csv-export"
1682
  msgid "Approximate export file size:"
1683
  msgstr ""
1684
 
1685
+ #: templates/admin/csv-export.tpl.php:161
1686
  msgctxt "admin csv-export"
1687
  msgid "Cancel Export"
1688
  msgstr ""
1689
 
1690
+ #: templates/admin/csv-export.tpl.php:166
1691
  msgctxt "admin csv-export"
1692
  msgid "Export Complete"
1693
  msgstr ""
1694
 
1695
+ #: templates/admin/csv-export.tpl.php:167
1696
  msgctxt "admin csv-export"
1697
  msgid ""
1698
  "Your export file has been successfully created and it is now ready for "
1699
  "download."
1700
  msgstr ""
1701
 
1702
+ #: templates/admin/csv-export.tpl.php:171
1703
  msgctxt "admin csv-export"
1704
+ msgid "Download %1$s (%2$s)"
1705
  msgstr ""
1706
 
1707
+ #: templates/admin/csv-export.tpl.php:178
1708
  msgctxt "admin csv-export"
1709
  msgid ""
1710
  "Click \"Cleanup\" once the file has been downloaded in order to remove all "
1711
  "temporary data created by Business Directory during the export process."
1712
  msgstr ""
1713
 
1714
+ #: templates/admin/csv-export.tpl.php:179
1715
  msgctxt "admin csv-export"
1716
  msgid "Cleanup"
1717
  msgstr ""
1718
 
1719
+ #: templates/admin/csv-export.tpl.php:184
1720
  msgctxt "admin csv-export"
1721
  msgid "Export Canceled"
1722
  msgstr ""
1723
 
1724
+ #: templates/admin/csv-export.tpl.php:185
1725
  msgctxt "admin csv-export"
1726
  msgid "The export has been canceled."
1727
  msgstr ""
1728
 
1729
+ #: templates/admin/csv-export.tpl.php:186
1730
  msgctxt "admin csv-export"
1731
  msgid "← Return to CSV Export"
1732
  msgstr ""
3075
  msgid "Disabled"
3076
  msgstr ""
3077
 
3078
+ #: includes/admin/helpers/class-listing-timeline.php:114
3079
  msgctxt "listing timeline"
3080
  msgid "Listing created"
3081
  msgstr ""
3082
 
3083
+ #: includes/admin/helpers/class-listing-timeline.php:119
3084
  msgctxt "listing timeline"
3085
  msgid "Listing expired"
3086
  msgstr ""
3087
 
3088
+ #: includes/admin/helpers/class-listing-timeline.php:124
3089
  msgctxt "listing timeline"
3090
  msgid "Listing renewed"
3091
  msgstr ""
3092
 
3093
+ #: includes/admin/helpers/class-listing-timeline.php:129
3094
+ msgctxt "listing timeline"
3095
+ msgid "T&C acceptance date"
3096
+ msgstr ""
3097
+
3098
+ #: includes/admin/helpers/class-listing-timeline.php:144
3099
  msgctxt "listing timeline"
3100
  msgid "Paid as admin"
3101
  msgstr ""
3102
 
3103
+ #: includes/admin/helpers/class-listing-timeline.php:146
3104
  msgctxt "listing timeline"
3105
  msgid "Listing imported"
3106
  msgstr ""
3107
 
3108
+ #: includes/admin/helpers/class-listing-timeline.php:148
3109
  msgctxt "listing timeline"
3110
  msgid "Initial Payment"
3111
  msgstr ""
3323
  msgid "Valid placeholders: %s"
3324
  msgstr ""
3325
 
3326
+ #: includes/admin/settings/class-settings-bootstrap.php:95
3327
  msgctxt "admin settings"
3328
  msgid ""
3329
  "<strong>IMPORTANT:</strong> subpages of the main directory page cannot be "
3450
  msgstr ""
3451
 
3452
  #: includes/admin/settings/class-settings-bootstrap.php:724
3453
+ #: includes/functions.php:1195
3454
  msgctxt "admin settings"
3455
  msgid "Date posted"
3456
  msgstr ""
3457
 
3458
  #: includes/admin/settings/class-settings-bootstrap.php:725
3459
+ #: includes/functions.php:1196
3460
  msgctxt "admin settings"
3461
  msgid "Date last modified"
3462
  msgstr ""
3486
  msgid "Fee Plan Custom Order, then Title"
3487
  msgstr ""
3488
 
3489
+ #: includes/admin/settings/class-settings-bootstrap.php:824
3490
  msgctxt "admin settings"
3491
  msgid "You can manage your themes on <a>Directory Themes</a>."
3492
  msgstr ""
3493
 
3494
+ #: includes/admin/settings/class-settings-bootstrap.php:833
3495
  msgctxt "admin settings"
3496
  msgid "Use the BD theme style for BD buttons"
3497
  msgstr ""
3498
 
3499
+ #: includes/admin/settings/class-settings-bootstrap.php:834
3500
  msgctxt "admin settings"
3501
  msgid "Use the WP theme style for BD buttons"
3502
  msgstr ""
3503
 
3504
+ #: includes/admin/settings/class-settings-bootstrap.php:992
3505
  msgctxt "admin settings"
3506
  msgid ""
3507
  "For paid listing images, configure that by adding or editing a <a>Fee Plan</"
3508
  "a> instead of this setting, which is ignored for paid listings."
3509
  msgstr ""
3510
 
3511
+ #: includes/admin/settings/class-settings-bootstrap.php:1003
3512
+ #: includes/admin/settings/class-settings-bootstrap.php:1056
3513
  msgctxt "admin settings"
3514
  msgid "Excerpt view."
3515
  msgstr ""
3516
 
3517
+ #: includes/admin/settings/class-settings-bootstrap.php:1004
3518
+ #: includes/admin/settings/class-settings-bootstrap.php:1057
3519
  msgctxt "admin settings"
3520
  msgid "Detail view."
3521
  msgstr ""
3522
 
3523
+ #: includes/admin/settings/class-settings-bootstrap.php:1114
3524
  msgctxt "admin settings"
3525
+ msgid "AED currency is not supported by %1$s. %2$s"
3526
  msgstr ""
3527
 
3528
+ #: includes/admin/settings/class-settings-bootstrap.php:1132
3529
  msgctxt "admin settings"
3530
  msgid "Australian Dollar (AUD)"
3531
  msgstr ""
3532
 
3533
+ #: includes/admin/settings/class-settings-bootstrap.php:1133
3534
  msgctxt "admin settings"
3535
  msgid "Brazilian Real (BRL)"
3536
  msgstr ""
3537
 
3538
+ #: includes/admin/settings/class-settings-bootstrap.php:1134
3539
  msgctxt "admin settings"
3540
  msgid "Canadian Dollar (CAD)"
3541
  msgstr ""
3542
 
3543
+ #: includes/admin/settings/class-settings-bootstrap.php:1135
3544
  msgctxt "admin settings"
3545
  msgid "Czech Koruna (CZK)"
3546
  msgstr ""
3547
 
3548
+ #: includes/admin/settings/class-settings-bootstrap.php:1136
3549
  msgctxt "admin settings"
3550
  msgid "Danish Krone (DKK)"
3551
  msgstr ""
3552
 
3553
+ #: includes/admin/settings/class-settings-bootstrap.php:1137
3554
  msgctxt "admin settings"
3555
  msgid "United Arab Emirates Dirham (AED)"
3556
  msgstr ""
3557
 
3558
+ #: includes/admin/settings/class-settings-bootstrap.php:1138
3559
  msgctxt "admin settings"
3560
  msgid "Euro (EUR)"
3561
  msgstr ""
3562
 
3563
+ #: includes/admin/settings/class-settings-bootstrap.php:1139
3564
  msgctxt "admin settings"
3565
  msgid "Hong Kong Dollar (HKD)"
3566
  msgstr ""
3567
 
3568
+ #: includes/admin/settings/class-settings-bootstrap.php:1140
3569
  msgctxt "admin settings"
3570
  msgid "Hungarian Forint (HUF)"
3571
  msgstr ""
3572
 
3573
+ #: includes/admin/settings/class-settings-bootstrap.php:1141
3574
  msgctxt "admin settings"
3575
  msgid "Israeli New Shequel (ILS)"
3576
  msgstr ""
3577
 
3578
+ #: includes/admin/settings/class-settings-bootstrap.php:1142
3579
  msgctxt "admin settings"
3580
  msgid "Japanese Yen (JPY)"
3581
  msgstr ""
3582
 
3583
+ #: includes/admin/settings/class-settings-bootstrap.php:1143
3584
  msgctxt "admin settings"
3585
  msgid "Moroccan Dirham (MAD)"
3586
  msgstr ""
3587
 
3588
+ #: includes/admin/settings/class-settings-bootstrap.php:1144
3589
  msgctxt "admin settings"
3590
  msgid "Malasian Ringgit (MYR)"
3591
  msgstr ""
3592
 
3593
+ #: includes/admin/settings/class-settings-bootstrap.php:1145
3594
  msgctxt "admin settings"
3595
  msgid "Mexican Peso (MXN)"
3596
  msgstr ""
3597
 
3598
+ #: includes/admin/settings/class-settings-bootstrap.php:1146
3599
  msgctxt "admin settings"
3600
  msgid "Norwegian Krone (NOK)"
3601
  msgstr ""
3602
 
3603
+ #: includes/admin/settings/class-settings-bootstrap.php:1147
3604
  msgctxt "admin settings"
3605
  msgid "New Zealand Dollar (NZD)"
3606
  msgstr ""
3607
 
3608
+ #: includes/admin/settings/class-settings-bootstrap.php:1148
3609
  msgctxt "admin settings"
3610
  msgid "Philippine Peso (PHP)"
3611
  msgstr ""
3612
 
3613
+ #: includes/admin/settings/class-settings-bootstrap.php:1149
3614
  msgctxt "admin settings"
3615
  msgid "Polish Zloty (PLN)"
3616
  msgstr ""
3617
 
3618
+ #: includes/admin/settings/class-settings-bootstrap.php:1150
3619
  msgctxt "admin settings"
3620
  msgid "Pound Sterling (GBP)"
3621
  msgstr ""
3622
 
3623
+ #: includes/admin/settings/class-settings-bootstrap.php:1151
3624
  msgctxt "admin settings"
3625
  msgid "Singapore Dollar (SGD)"
3626
  msgstr ""
3627
 
3628
+ #: includes/admin/settings/class-settings-bootstrap.php:1152
3629
  msgctxt "admin settings"
3630
  msgid "Swedish Krona (SEK)"
3631
  msgstr ""
3632
 
3633
+ #: includes/admin/settings/class-settings-bootstrap.php:1153
3634
  msgctxt "admin settings"
3635
  msgid "Swiss Franc (CHF)"
3636
  msgstr ""
3637
 
3638
+ #: includes/admin/settings/class-settings-bootstrap.php:1154
3639
  msgctxt "admin settings"
3640
  msgid "Taiwan Dollar (TWD)"
3641
  msgstr ""
3642
 
3643
+ #: includes/admin/settings/class-settings-bootstrap.php:1155
3644
  msgctxt "admin settings"
3645
  msgid "Thai Baht (THB)"
3646
  msgstr ""
3647
 
3648
+ #: includes/admin/settings/class-settings-bootstrap.php:1156
3649
  msgctxt "admin settings"
3650
  msgid "Turkish Lira (TRY)"
3651
  msgstr ""
3652
 
3653
+ #: includes/admin/settings/class-settings-bootstrap.php:1157
3654
  msgctxt "admin settings"
3655
  msgid "U.S. Dollar (USD)"
3656
  msgstr ""
3657
 
3658
+ #: includes/admin/settings/class-settings-bootstrap.php:1181
3659
  msgctxt "admin settings"
3660
  msgid "Show currency symbol on the left"
3661
  msgstr ""
3662
 
3663
+ #: includes/admin/settings/class-settings-bootstrap.php:1182
3664
  msgctxt "admin settings"
3665
  msgid "Show currency symbol on the right"
3666
  msgstr ""
3667
 
3668
+ #: includes/admin/settings/class-settings-bootstrap.php:1183
3669
  msgctxt "admin settings"
3670
  msgid "Do not show currency symbol"
3671
  msgstr ""
3672
 
3673
+ #: includes/admin/settings/class-settings-bootstrap.php:1204
3674
  msgctxt "admin settings"
3675
  msgid ""
3676
  "Thank you for your payment. Your payment is being verified and your listing "
3677
  "reviewed. The verification and review process could take up to 48 hours."
3678
  msgstr ""
3679
 
3680
+ #: includes/admin/settings/class-settings-bootstrap.php:1225
3681
  msgctxt "admin settings"
3682
  msgid ""
3683
  "Listings with pending payments are marked as abandoned after this time. You "
3684
  "can also <a>customize the e-mail</a> users receive."
3685
  msgstr ""
3686
 
3687
+ #: includes/admin/settings/class-settings-bootstrap.php:1255
3688
  msgctxt "admin settings"
3689
  msgid "Try listing's email field first, then author's email."
3690
  msgstr ""
3691
 
3692
+ #: includes/admin/settings/class-settings-bootstrap.php:1256
3693
  msgctxt "admin settings"
3694
  msgid "Try author's email first and then listing's email field."
3695
  msgstr ""
3696
 
3697
+ #: includes/admin/settings/class-settings-bootstrap.php:1269
3698
  msgctxt "admin settings"
3699
  msgid "Plain (text/plain)"
3700
  msgstr ""
3701
 
3702
+ #: includes/admin/settings/class-settings-bootstrap.php:1270
3703
  msgctxt "admin settings"
3704
  msgid "HTML (text/html)"
3705
  msgstr ""
3706
 
3707
+ #: includes/admin/settings/class-settings-bootstrap.php:1271
3708
  msgctxt "admin settings"
3709
  msgid "Both (multipart/alternative)"
3710
  msgstr ""
3711
 
3712
+ #: includes/admin/settings/class-settings-bootstrap.php:1285
3713
  msgctxt "admin settings"
3714
  msgid "A new listing is submitted."
3715
  msgstr ""
3716
 
3717
+ #: includes/admin/settings/class-settings-bootstrap.php:1286
3718
  msgctxt "admin settings"
3719
  msgid "A listing is edited."
3720
  msgstr ""
3721
 
3722
+ #: includes/admin/settings/class-settings-bootstrap.php:1287
3723
  msgctxt "admin settings"
3724
  msgid "A listing expires."
3725
  msgstr ""
3726
 
3727
+ #: includes/admin/settings/class-settings-bootstrap.php:1288
3728
  msgctxt "admin settings"
3729
  msgid "A listing is renewed."
3730
  msgstr ""
3731
 
3732
+ #: includes/admin/settings/class-settings-bootstrap.php:1289
3733
  msgctxt "admin settings"
3734
  msgid "A listing payment is completed."
3735
  msgstr ""
3736
 
3737
+ #: includes/admin/settings/class-settings-bootstrap.php:1290
3738
  msgctxt "admin settings"
3739
  msgid "A listing has been reported as inappropriate."
3740
  msgstr ""
3741
 
3742
+ #: includes/admin/settings/class-settings-bootstrap.php:1291
3743
  msgctxt "admin settings"
3744
  msgid "A contact message is sent to a listing's owner."
3745
  msgstr ""
3746
 
3747
+ #: includes/admin/settings/class-settings-bootstrap.php:1317
3748
  msgctxt "admin settings"
3749
  msgid "Their listing is submitted."
3750
  msgstr ""
3751
 
3752
+ #: includes/admin/settings/class-settings-bootstrap.php:1318
3753
  msgctxt "admin settings"
3754
  msgid "Their listing is approved/published."
3755
  msgstr ""
3756
 
3757
+ #: includes/admin/settings/class-settings-bootstrap.php:1319
3758
  msgctxt "admin settings"
3759
  msgid "A payment for their listing is completed."
3760
  msgstr ""
3761
 
3762
+ #: includes/admin/settings/class-settings-bootstrap.php:1320
3763
  msgctxt "admin settings"
3764
  msgid "Their listing expired or is about to expire."
3765
  msgstr ""
3766
 
3767
+ #: includes/admin/settings/class-settings-bootstrap.php:1337
3768
+ #: includes/admin/settings/class-settings-bootstrap.php:1356
3769
+ #: includes/admin/settings/class-settings-bootstrap.php:1381
3770
+ #: includes/admin/settings/class-settings-bootstrap.php:1416
3771
+ #: includes/admin/settings/class-settings-bootstrap.php:1452
3772
  msgctxt "admin settings"
3773
  msgid "Listing's title"
3774
  msgstr ""
3775
 
3776
+ #: includes/admin/settings/class-settings-bootstrap.php:1338
3777
+ #: includes/admin/settings/class-settings-bootstrap.php:1417
3778
  msgctxt "admin settings"
3779
  msgid "Listing's fee plan name"
3780
  msgstr ""
3781
 
3782
+ #: includes/admin/settings/class-settings-bootstrap.php:1339
3783
+ #: includes/admin/settings/class-settings-bootstrap.php:1418
3784
  msgctxt "admin settings"
3785
  msgid "Listing's fee plan description"
3786
  msgstr ""
3787
 
3788
+ #: includes/admin/settings/class-settings-bootstrap.php:1340
3789
+ #: includes/admin/settings/class-settings-bootstrap.php:1419
3790
  msgctxt "admin settings"
3791
  msgid "Listing's fee plan details"
3792
  msgstr ""
3793
 
3794
+ #: includes/admin/settings/class-settings-bootstrap.php:1353
3795
  msgctxt "admin settings"
3796
  msgid ""
3797
  "Your listing \"[listing]\" is now available at [listing-url] and can be "
3798
  "viewed by the public."
3799
  msgstr ""
3800
 
3801
+ #: includes/admin/settings/class-settings-bootstrap.php:1357
3802
+ #: includes/admin/settings/class-settings-bootstrap.php:1380
3803
  msgctxt "admin settings"
3804
  msgid "Listing's URL"
3805
  msgstr ""
3806
 
3807
+ #: includes/admin/settings/class-settings-bootstrap.php:1358
3808
+ #: includes/admin/settings/class-settings-bootstrap.php:1386
3809
  msgctxt "admin settings"
3810
  msgid "Listing's Access Key"
3811
  msgstr ""
3812
 
3813
+ #: includes/admin/settings/class-settings-bootstrap.php:1382
3814
  msgctxt "admin settings"
3815
  msgid "Sender's name"
3816
  msgstr ""
3817
 
3818
+ #: includes/admin/settings/class-settings-bootstrap.php:1383
3819
  msgctxt "admin settings"
3820
  msgid "Sender's e-mail address"
3821
  msgstr ""
3822
 
3823
+ #: includes/admin/settings/class-settings-bootstrap.php:1384
3824
  msgctxt "admin settings"
3825
  msgid "Contact message"
3826
  msgstr ""
3827
 
3828
+ #: includes/admin/settings/class-settings-bootstrap.php:1385
3829
  msgctxt "admin settings"
3830
  msgid "Date and time the message was sent"
3831
  msgstr ""
3832
 
3833
+ #: includes/admin/settings/class-settings-bootstrap.php:1420
3834
  msgctxt "admin settings"
3835
  msgid "Payment items details."
3836
  msgstr ""
3837
 
3838
+ #: includes/admin/settings/class-settings-bootstrap.php:1421
3839
  msgctxt "admin settings"
3840
  msgid "URL where user can review and print payment receipt."
3841
  msgstr ""
3842
 
3843
+ #: includes/admin/settings/class-settings-bootstrap.php:1422
3844
  msgctxt "admin settings"
3845
  msgid "Gateway used to process listing's payment."
3846
  msgstr ""
3847
 
3848
+ #: includes/admin/settings/class-settings-bootstrap.php:1453
3849
  msgctxt "admin settings"
3850
  msgid "Checkout URL link"
3851
  msgstr ""
3852
 
3853
+ #: includes/admin/settings/class-settings-bootstrap.php:1547
3854
  msgctxt "admin settings"
3855
  msgid ""
3856
  "Could not remove the \"Business Directory Plugin - AJAX Compatibility Module"
3857
  "\". Please remove the file \"%s\" manually or deactivate the plugin."
3858
  msgstr ""
3859
 
3860
+ #: includes/admin/settings/class-settings-bootstrap.php:1563
3861
  msgctxt "admin settings"
3862
  msgid ""
3863
  "Could not activate AJAX Compatibility mode: the directory \"%s\" could not "
3864
  "be created."
3865
  msgstr ""
3866
 
3867
+ #: includes/admin/settings/class-settings-bootstrap.php:1568
3868
  msgctxt "admin settings"
3869
  msgid ""
3870
  "Could not copy the AJAX compatibility plugin \"%s\". Compatibility mode was "
3871
  "not activated."
3872
  msgstr ""
3873
 
3874
+ #: includes/admin/settings/class-settings-bootstrap.php:1598
3875
  msgctxt "admin settings"
3876
  msgid "Uploaded Image (no resize)"
3877
  msgstr ""
3878
 
3879
+ #: includes/functions.php:1193
3880
  msgctxt "admin settings"
3881
  msgid "User"
3882
  msgstr ""
3883
 
3884
+ #: includes/functions.php:1194
3885
  msgctxt "admin settings"
3886
  msgid "User registration date"
3887
  msgstr ""
4104
  msgstr ""
4105
 
4106
  #: includes/admin/settings/class-settings-bootstrap.php:27
4107
+ #: includes/admin/settings/class-settings-bootstrap.php:974
4108
  msgctxt "settings"
4109
  msgid "Listings"
4110
  msgstr ""
4113
  #: includes/admin/settings/class-settings-bootstrap.php:31
4114
  #: includes/admin/settings/class-settings-bootstrap.php:34
4115
  #: includes/admin/settings/class-settings-bootstrap.php:37
4116
+ #: includes/admin/settings/class-settings-bootstrap.php:51
4117
+ #: includes/admin/settings/class-settings-bootstrap.php:1236
4118
+ #: includes/admin/settings/class-settings.php:288
4119
  msgctxt "settings"
4120
  msgid "General Settings"
4121
  msgstr ""
4135
  msgid "Appearance"
4136
  msgstr ""
4137
 
4138
+ #: includes/admin/settings/class-settings-bootstrap.php:39
4139
  #: includes/licensing.php:104
4140
  msgctxt "settings"
4141
  msgid "Premium Modules"
4142
  msgstr ""
4143
 
4144
+ #: includes/admin/settings/class-settings-bootstrap.php:54
4145
  msgctxt "settings"
4146
  msgid "Permalink Settings"
4147
  msgstr ""
4148
 
4149
+ #: includes/admin/settings/class-settings-bootstrap.php:59
4150
  msgctxt "settings"
4151
  msgid "Directory Listings Slug"
4152
  msgstr ""
4153
 
4154
+ #: includes/admin/settings/class-settings-bootstrap.php:69
4155
  msgctxt "settings"
4156
  msgid "Categories Slug"
4157
  msgstr ""
4158
 
4159
+ #: includes/admin/settings/class-settings-bootstrap.php:70
4160
  msgctxt "settings"
4161
  msgid ""
4162
  "The slug can't be in use by another term. Avoid \"category\", for instance."
4163
  msgstr ""
4164
 
4165
+ #: includes/admin/settings/class-settings-bootstrap.php:81
4166
  msgctxt "settings"
4167
  msgid "Tags Slug"
4168
  msgstr ""
4169
 
4170
+ #: includes/admin/settings/class-settings-bootstrap.php:82
4171
  msgctxt "settings"
4172
  msgid "The slug can't be in use by another term. Avoid \"tag\", for instance."
4173
  msgstr ""
4174
 
4175
+ #: includes/admin/settings/class-settings-bootstrap.php:93
4176
  msgctxt "settings"
4177
  msgid "Remove listing ID from directory URLs?"
4178
  msgstr ""
4179
 
4180
+ #: includes/admin/settings/class-settings-bootstrap.php:94
4181
  msgctxt "settings"
4182
  msgid "Check this setting to remove the ID for better SEO."
4183
  msgstr ""
4184
 
4185
+ #: includes/admin/settings/class-settings-bootstrap.php:95
4186
  msgctxt "settings"
4187
  msgid ""
4188
  "Prior to 3.5.1, we included the ID in the listing URL, like \"/business-"
4189
  "directory/1809/listing-title\"."
4190
  msgstr ""
4191
 
4192
+ #: includes/admin/settings/class-settings-bootstrap.php:103
4193
  msgctxt "settings"
4194
  msgid "reCAPTCHA"
4195
  msgstr ""
4196
 
4197
+ #: includes/admin/settings/class-settings-bootstrap.php:106
4198
  msgctxt "settings"
4199
  msgid "Need API keys for reCAPTCHA? Get them <a>here</a>."
4200
  msgstr ""
4201
 
4202
+ #: includes/admin/settings/class-settings-bootstrap.php:113
4203
  msgctxt "settings"
4204
  msgid "Use reCAPTCHA for contact forms"
4205
  msgstr ""
4206
 
4207
+ #: includes/admin/settings/class-settings-bootstrap.php:121
4208
  msgctxt "settings"
4209
  msgid "Turn off reCAPTCHA for logged in users?"
4210
  msgstr ""
4211
 
4212
+ #: includes/admin/settings/class-settings-bootstrap.php:129
4213
  msgctxt "settings"
4214
  msgid "Use reCAPTCHA for listing submits"
4215
  msgstr ""
4216
 
4217
+ #: includes/admin/settings/class-settings-bootstrap.php:137
4218
  msgctxt "settings"
4219
  msgid "Use reCAPTCHA for edit listings"
4220
  msgstr ""
4221
 
4222
+ #: includes/admin/settings/class-settings-bootstrap.php:145
4223
  msgctxt "settings"
4224
  msgid "Use reCAPTCHA for report listings"
4225
  msgstr ""
4226
 
4227
+ #: includes/admin/settings/class-settings-bootstrap.php:153
4228
  msgctxt "settings"
4229
  msgid "Use reCAPTCHA for listing comments?"
4230
  msgstr ""
4231
 
4232
+ #: includes/admin/settings/class-settings-bootstrap.php:161
4233
  msgctxt "settings"
4234
  msgid "reCAPTCHA Public Key"
4235
  msgstr ""
4236
 
4237
+ #: includes/admin/settings/class-settings-bootstrap.php:170
4238
  msgctxt "settings"
4239
  msgid "reCAPTCHA Private Key"
4240
  msgstr ""
4241
 
4242
+ #: includes/admin/settings/class-settings-bootstrap.php:179
4243
  msgctxt "settings"
4244
  msgid "reCAPTCHA version"
4245
  msgstr ""
4246
 
4247
+ #: includes/admin/settings/class-settings-bootstrap.php:192
4248
  msgctxt "settings"
4249
  msgid "reCAPTCHA V3 threshold score"
4250
  msgstr ""
4251
 
4252
+ #: includes/admin/settings/class-settings-bootstrap.php:197
4253
  msgctxt "settings"
4254
  msgid ""
4255
  "reCAPTCHA v3 returns a score (1.0 is very likely a good interaction, 0.0 is "
4258
  "this value will result in reCAPTCHA validation error."
4259
  msgstr ""
4260
 
4261
+ #: includes/admin/settings/class-settings-bootstrap.php:202
4262
  msgctxt "settings"
4263
  msgid "Registration"
4264
  msgstr ""
4265
 
4266
+ #: includes/admin/settings/class-settings-bootstrap.php:202
4267
  msgctxt "settings"
4268
  msgid ""
4269
  "We expect that a membership plugin supports the 'redirect_to' parameter for "
4272
  "them to support the WP standard 'redirect_to' query parameter."
4273
  msgstr ""
4274
 
4275
+ #: includes/admin/settings/class-settings-bootstrap.php:207
4276
  msgctxt "settings"
4277
  msgid "Require login to post listings?"
4278
  msgstr ""
4279
 
4280
+ #: includes/admin/settings/class-settings-bootstrap.php:216
4281
  msgctxt "settings"
4282
  msgid "Allow anonymous users to edit/manage listings with an access key?"
4283
  msgstr ""
4284
 
4285
+ #: includes/admin/settings/class-settings-bootstrap.php:224
4286
  msgctxt "settings"
4287
  msgid "Login URL"
4288
  msgstr ""
4289
 
4290
+ #: includes/admin/settings/class-settings-bootstrap.php:225
4291
  msgctxt "settings"
4292
  msgid "Only enter this if using a membership plugin or custom login page."
4293
  msgstr ""
4294
 
4295
+ #: includes/admin/settings/class-settings-bootstrap.php:226
4296
  msgctxt "settings"
4297
  msgid "URL of your membership plugin's login page."
4298
  msgstr ""
4299
 
4300
+ #: includes/admin/settings/class-settings-bootstrap.php:235
4301
  msgctxt "settings"
4302
  msgid "Registration URL"
4303
  msgstr ""
4304
 
4305
+ #: includes/admin/settings/class-settings-bootstrap.php:236
4306
  msgctxt "settings"
4307
  msgid ""
4308
  "Only enter this if using a membership plugin or custom registration page."
4309
  msgstr ""
4310
 
4311
+ #: includes/admin/settings/class-settings-bootstrap.php:237
4312
  msgctxt "settings"
4313
  msgid "URL of your membership plugin's registration page."
4314
  msgstr ""
4315
 
4316
+ #: includes/admin/settings/class-settings-bootstrap.php:246
4317
  msgctxt "settings"
4318
  msgid "Allow users to create accounts during listing submit?"
4319
  msgstr ""
4320
 
4321
+ #: includes/admin/settings/class-settings-bootstrap.php:249
4322
  msgctxt "settings"
4323
  msgid "No"
4324
  msgstr ""
4325
 
4326
+ #: includes/admin/settings/class-settings-bootstrap.php:250
4327
  msgctxt "settings"
4328
  msgid "Yes, and make it optional"
4329
  msgstr ""
4330
 
4331
+ #: includes/admin/settings/class-settings-bootstrap.php:251
4332
  msgctxt "settings"
4333
  msgid "Yes, and make it required"
4334
  msgstr ""
4335
 
4336
+ #: includes/admin/settings/class-settings-bootstrap.php:258
4337
+ #: includes/admin/settings/class-settings-bootstrap.php:271
4338
  msgctxt "settings"
4339
  msgid "Terms and Conditions"
4340
  msgstr ""
4341
 
4342
+ #: includes/admin/settings/class-settings-bootstrap.php:263
4343
  msgctxt "settings"
4344
  msgid "Display and require user agreement to Terms and Conditions"
4345
  msgstr ""
4346
 
4347
+ #: includes/admin/settings/class-settings-bootstrap.php:272
4348
  msgctxt "settings"
4349
  msgid ""
4350
  "Enter text or a URL starting with http. If you use a URL, the Terms and "
4351
  "Conditions text will be replaced by a link to the appropiate page."
4352
  msgstr ""
4353
 
4354
+ #: includes/admin/settings/class-settings-bootstrap.php:274
4355
  msgctxt "settings"
4356
  msgid "Terms and Conditions text goes here."
4357
  msgstr ""
4725
 
4726
  #: includes/admin/settings/class-settings-bootstrap.php:808
4727
  msgctxt "settings"
4728
+ msgid "Show the \"Manage Listings\" button."
4729
+ msgstr ""
4730
+
4731
+ #: includes/admin/settings/class-settings-bootstrap.php:817
4732
+ msgctxt "settings"
4733
  msgid "Show the \"Directory\" button."
4734
  msgstr ""
4735
 
4736
+ #: includes/admin/settings/class-settings-bootstrap.php:824
4737
  msgctxt "settings"
4738
  msgid "Theme Settings"
4739
  msgstr ""
4740
 
4741
+ #: includes/admin/settings/class-settings-bootstrap.php:830
4742
  msgctxt "settings"
4743
  msgid "Theme button style"
4744
  msgstr ""
4745
 
4746
+ #: includes/admin/settings/class-settings-bootstrap.php:843
4747
  msgctxt "settings"
4748
  msgid ""
4749
  "Include CSS rules to give their own style to View, Edit and Delete buttons?"
4750
  msgstr ""
4751
 
4752
+ #: includes/admin/settings/class-settings-bootstrap.php:850
4753
  msgctxt "settings"
4754
  msgid "Image"
4755
  msgstr ""
4756
 
4757
+ #: includes/admin/settings/class-settings-bootstrap.php:851
4758
  msgctxt "settings"
4759
  msgid "Image Settings"
4760
  msgstr ""
4761
 
4762
+ #: includes/admin/settings/class-settings-bootstrap.php:856
4763
  msgctxt "settings"
4764
  msgid "Allow images?"
4765
  msgstr ""
4766
 
4767
+ #: includes/admin/settings/class-settings-bootstrap.php:867
4768
  msgctxt "settings"
4769
  msgid "Min Image File Size (KB)"
4770
  msgstr ""
4771
 
4772
+ #: includes/admin/settings/class-settings-bootstrap.php:878
4773
  msgctxt "settings"
4774
  msgid "Max Image File Size (KB)"
4775
  msgstr ""
4776
 
4777
+ #: includes/admin/settings/class-settings-bootstrap.php:889
4778
  msgctxt "settings"
4779
  msgid "Min image width (px)"
4780
  msgstr ""
4781
 
4782
+ #: includes/admin/settings/class-settings-bootstrap.php:898
4783
  msgctxt "settings"
4784
  msgid "Min image height (px)"
4785
  msgstr ""
4786
 
4787
+ #: includes/admin/settings/class-settings-bootstrap.php:911
4788
  msgctxt "settings"
4789
  msgid "Max image width (px)"
4790
  msgstr ""
4791
 
4792
+ #: includes/admin/settings/class-settings-bootstrap.php:922
4793
  msgctxt "settings"
4794
  msgid "Max image height (px)"
4795
  msgstr ""
4796
 
4797
+ #: includes/admin/settings/class-settings-bootstrap.php:933
4798
  msgctxt "settings"
4799
  msgid "Turn on thickbox/lightbox?"
4800
  msgstr ""
4801
 
4802
+ #: includes/admin/settings/class-settings-bootstrap.php:934
4803
  msgctxt "settings"
4804
  msgid ""
4805
  "Uncheck if it conflicts with other elements or plugins installed on your site"
4806
  msgstr ""
4807
 
4808
+ #: includes/admin/settings/class-settings-bootstrap.php:940
4809
  msgctxt "settings"
4810
  msgid "Thumbnails"
4811
  msgstr ""
4812
 
4813
+ #: includes/admin/settings/class-settings-bootstrap.php:947
4814
  msgctxt "settings"
4815
  msgid "Thumbnail width (px)"
4816
  msgstr ""
4817
 
4818
+ #: includes/admin/settings/class-settings-bootstrap.php:958
4819
  msgctxt "settings"
4820
  msgid "Thumbnail height (px)"
4821
  msgstr ""
4822
 
4823
+ #: includes/admin/settings/class-settings-bootstrap.php:967
4824
  msgctxt "settings"
4825
  msgid "Crop thumbnails to exact dimensions?"
4826
  msgstr ""
4827
 
4828
+ #: includes/admin/settings/class-settings-bootstrap.php:968
4829
  msgctxt "settings"
4830
  msgid ""
4831
  "When enabled images will match exactly the dimensions above but part of the "
4834
  "Depending on the uploaded images, thumbnails may have different heights."
4835
  msgstr ""
4836
 
4837
+ #: includes/admin/settings/class-settings-bootstrap.php:979
4838
  msgctxt "settings"
4839
  msgid "Enforce image upload on submit/edit?"
4840
  msgstr ""
4841
 
4842
+ #: includes/admin/settings/class-settings-bootstrap.php:988
4843
  msgctxt "settings"
4844
  msgid "Number of free images"
4845
  msgstr ""
4846
 
4847
+ #: includes/admin/settings/class-settings-bootstrap.php:1000
4848
  msgctxt "settings"
4849
  msgid "Use \"Coming Soon\" photo for listings without any (primary) images?"
4850
  msgstr ""
4851
 
4852
+ #: includes/admin/settings/class-settings-bootstrap.php:1013
4853
  msgctxt "settings"
4854
  msgid "Default thumbnail image size"
4855
  msgstr ""
4856
 
4857
+ #: includes/admin/settings/class-settings-bootstrap.php:1016
4858
  msgctxt "settings"
4859
  msgid ""
4860
  "This indicates the size of the thumbnail to be used both in excerpt and "
4863
  "width as the starting point."
4864
  msgstr ""
4865
 
4866
+ #: includes/admin/settings/class-settings-bootstrap.php:1024
4867
  msgctxt "settings"
4868
  msgid "Show Thumbnail on main listings page?"
4869
  msgstr ""
4870
 
4871
+ #: includes/admin/settings/class-settings-bootstrap.php:1033
4872
  msgctxt "settings"
4873
  msgid "Featured Badge image"
4874
  msgstr ""
4875
 
4876
+ #: includes/admin/settings/class-settings-bootstrap.php:1042
4877
  msgctxt "settings"
4878
  msgid "Featured Badge URL"
4879
  msgstr ""
4880
 
4881
+ #: includes/admin/settings/class-settings-bootstrap.php:1043
4882
  msgctxt "settings"
4883
  msgid "Use this to set Featured Badge image as a link to a defined URL."
4884
  msgstr ""
4885
 
4886
+ #: includes/admin/settings/class-settings-bootstrap.php:1044
4887
  msgctxt "settings"
4888
  msgid "URL"
4889
  msgstr ""
4890
 
4891
+ #: includes/admin/settings/class-settings-bootstrap.php:1053
4892
  msgctxt "settings"
4893
  msgid "Display featured (sticky) badge on listing:"
4894
  msgstr ""
4895
 
4896
+ #: includes/admin/settings/class-settings-bootstrap.php:1069
4897
  msgctxt "settings"
4898
  msgid "Fee Order"
4899
  msgstr ""
4900
 
4901
+ #: includes/admin/settings/class-settings-bootstrap.php:1082
4902
  msgctxt "settings"
4903
  msgid "Turn On payments?"
4904
  msgstr ""
4905
 
4906
+ #: includes/admin/settings/class-settings-bootstrap.php:1091
4907
  msgctxt "settings"
4908
  msgid "Put payment gateways in test mode?"
4909
  msgstr ""
4910
 
4911
+ #: includes/admin/settings/class-settings-bootstrap.php:1101
4912
  msgctxt "settings"
4913
  msgid "Perform checkouts on the secure (HTTPS) version of your site?"
4914
  msgstr ""
4915
 
4916
+ #: includes/admin/settings/class-settings-bootstrap.php:1102
4917
  msgctxt "settings"
4918
  msgid ""
4919
  "Recommended for added security. For this to work you need to enable HTTPS on "
4920
  "your server and obtain an SSL certificate."
4921
  msgstr ""
4922
 
4923
+ #: includes/admin/settings/class-settings-bootstrap.php:1129
4924
  msgctxt "settings"
4925
  msgid "Currency Code"
4926
  msgstr ""
4927
 
4928
+ #: includes/admin/settings/class-settings-bootstrap.php:1168
4929
  msgctxt "settings"
4930
  msgid "Currency Symbol"
4931
  msgstr ""
4932
 
4933
+ #: includes/admin/settings/class-settings-bootstrap.php:1178
4934
  msgctxt "settings"
4935
  msgid "Currency symbol display"
4936
  msgstr ""
4937
 
4938
+ #: includes/admin/settings/class-settings-bootstrap.php:1193
4939
  msgctxt "settings"
4940
  msgid "Include fee description in receipt?"
4941
  msgstr ""
4942
 
4943
+ #: includes/admin/settings/class-settings-bootstrap.php:1203
4944
  msgctxt "settings"
4945
  msgid "Thank you for payment message"
4946
  msgstr ""
4947
 
4948
+ #: includes/admin/settings/class-settings-bootstrap.php:1213
4949
  msgctxt "settings"
4950
  msgid "Ask users to come back for abandoned payments?"
4951
  msgstr ""
4952
 
4953
+ #: includes/admin/settings/class-settings-bootstrap.php:1214
4954
  msgctxt "settings"
4955
  msgid ""
4956
  "An abandoned payment is when a user attempts to place a listing and gets to "
4959
  "the transaction. BD can remind them to come back and continue."
4960
  msgstr ""
4961
 
4962
+ #: includes/admin/settings/class-settings-bootstrap.php:1224
4963
  msgctxt "settings"
4964
  msgid "Listing abandonment threshold (hours)"
4965
  msgstr ""
4966
 
4967
+ #: includes/admin/settings/class-settings-bootstrap.php:1241
4968
  msgctxt "settings"
4969
  msgid "Display email address fields publicly?"
4970
  msgstr ""
4971
 
4972
+ #: includes/admin/settings/class-settings-bootstrap.php:1242
4973
  msgctxt "settings"
4974
  msgid ""
4975
  "Shows the email address of the listing owner to all web users. NOT "
4977
  "harvest it for future use."
4978
  msgstr ""
4979
 
4980
+ #: includes/admin/settings/class-settings-bootstrap.php:1251
4981
  msgctxt "settings"
4982
  msgid "How to determine the listing's email address?"
4983
  msgstr ""
4984
 
4985
+ #: includes/admin/settings/class-settings-bootstrap.php:1252
4986
  msgctxt "settings"
4987
  msgid ""
4988
  "This affects emails sent to listing owners via contact forms or when their "
4989
  "listings expire."
4990
  msgstr ""
4991
 
4992
+ #: includes/admin/settings/class-settings-bootstrap.php:1265
4993
  msgctxt "settings"
4994
  msgid "Email Content-Type header"
4995
  msgstr ""
4996
 
4997
+ #: includes/admin/settings/class-settings-bootstrap.php:1266
4998
  msgctxt "settings"
4999
  msgid ""
5000
  "Use this setting to control the format of the emails explicitly. Some "
5003
  "then \"Both\"."
5004
  msgstr ""
5005
 
5006
+ #: includes/admin/settings/class-settings-bootstrap.php:1277
5007
  msgctxt "settings"
5008
  msgid "E-Mail Notifications"
5009
  msgstr ""
5010
 
5011
+ #: includes/admin/settings/class-settings-bootstrap.php:1282
5012
  msgctxt "settings"
5013
  msgid "Notify admin via e-mail when..."
5014
  msgstr ""
5015
 
5016
+ #: includes/admin/settings/class-settings-bootstrap.php:1300
5017
  msgctxt "settings"
5018
  msgid "CC this e-mail address too"
5019
  msgstr ""
5020
 
5021
+ #: includes/admin/settings/class-settings-bootstrap.php:1306
5022
  msgctxt "settings"
5023
  msgid ""
5024
  "You can modify the text template used for most of these e-mails in the "
5025
  "<templates-link>Templates</templates-link> tab."
5026
  msgstr ""
5027
 
5028
+ #: includes/admin/settings/class-settings-bootstrap.php:1313
5029
  msgctxt "settings"
5030
  msgid "Notify users via e-mail when..."
5031
  msgstr ""
5032
 
5033
+ #: includes/admin/settings/class-settings-bootstrap.php:1325
5034
  msgctxt "settings"
5035
  msgid "Templates"
5036
  msgstr ""
5037
 
5038
+ #: includes/admin/settings/class-settings-bootstrap.php:1330
5039
  msgctxt "settings"
5040
  msgid "Email confirmation message"
5041
  msgstr ""
5042
 
5043
+ #: includes/admin/settings/class-settings-bootstrap.php:1331
5044
  msgctxt "settings"
5045
  msgid "Sent after a listing has been submitted."
5046
  msgstr ""
5047
 
5048
+ #: includes/admin/settings/class-settings-bootstrap.php:1349
5049
  msgctxt "settings"
5050
  msgid "Listing published message"
5051
  msgstr ""
5052
 
5053
+ #: includes/admin/settings/class-settings-bootstrap.php:1350
5054
  msgctxt "settings"
5055
  msgid "Sent when the listing has been published or approved by an admin."
5056
  msgstr ""
5057
 
5058
+ #: includes/admin/settings/class-settings-bootstrap.php:1367
5059
  msgctxt "settings"
5060
  msgid "Listing Contact Message"
5061
  msgstr ""
5062
 
5063
+ #: includes/admin/settings/class-settings-bootstrap.php:1368
5064
  msgctxt "settings"
5065
  msgid ""
5066
  "Sent to listing owners when someone uses the contact form on their listing "
5067
  "pages."
5068
  msgstr ""
5069
 
5070
+ #: includes/admin/settings/class-settings-bootstrap.php:1396
5071
  msgctxt "settings"
5072
  msgid "Payment completed message"
5073
  msgstr ""
5074
 
5075
+ #: includes/admin/settings/class-settings-bootstrap.php:1397
5076
  msgctxt "settings"
5077
  msgid "Sent after a Listing's payment is verified by Gateway or admins."
5078
  msgstr ""
5079
 
5080
+ #: includes/admin/settings/class-settings-bootstrap.php:1432
5081
  msgctxt "settings"
5082
  msgid "Payment abandoned reminder message"
5083
  msgstr ""
5084
 
5085
+ #: includes/admin/settings/class-settings-bootstrap.php:1433
5086
  msgctxt "settings"
5087
  msgid "Sent some time after a pending payment is abandoned by users."
5088
  msgstr ""
5089
 
5090
+ #: includes/admin/settings/class-settings-bootstrap.php:1463
5091
  msgctxt "settings"
5092
  msgid "E-Mail Notices"
5093
  msgstr ""
5094
 
5095
+ #: includes/admin/settings/class-settings-bootstrap.php:1619
5096
  msgctxt "settings"
5097
  msgid "Cropped"
5098
  msgstr ""
5099
 
5100
+ #: includes/admin/settings/class-settings.php:443
5101
+ #: includes/admin/settings/class-settings.php:454
5102
  msgctxt "settings"
5103
  msgid "\"%s\" can not be empty."
5104
  msgstr ""
5105
 
5106
+ #: includes/admin/settings/class-settings.php:461
5107
  msgctxt "settings"
5108
  msgid "The slug \"%s\" is already in use for another taxonomy."
5109
  msgstr ""
5136
  msgid "Deactivate"
5137
  msgstr ""
5138
 
 
 
 
 
 
5139
  #: templates/admin/settings-page.tpl.php:7
5140
  msgctxt "settings"
5141
  msgid "Reset Defaults"
5170
  msgid "Pending"
5171
  msgstr ""
5172
 
5173
+ #: includes/admin/settings/class-settings-bootstrap.php:1372
5174
  msgctxt "contact email"
5175
  msgid "You have received a reply from your listing at %s."
5176
  msgstr ""
5177
 
5178
+ #: includes/admin/settings/class-settings-bootstrap.php:1373
5179
  msgctxt "contact email"
5180
  msgid "Name: %s"
5181
  msgstr ""
5182
 
5183
+ #: includes/admin/settings/class-settings-bootstrap.php:1374
5184
  msgctxt "contact email"
5185
  msgid "E-Mail: %s"
5186
  msgstr ""
5187
 
5188
+ #: includes/admin/settings/class-settings-bootstrap.php:1375
5189
  msgctxt "contact email"
5190
  msgid "Message:"
5191
  msgstr ""
5192
 
5193
+ #: includes/admin/settings/class-settings-bootstrap.php:1377
5194
  msgctxt "contact email"
5195
  msgid "Time: %s"
5196
  msgstr ""
5340
  msgid "Listing upgrade to featured"
5341
  msgstr ""
5342
 
5343
+ #: includes/installer.php:80
5344
  msgctxt "installer"
5345
  msgid "Default Fee"
5346
  msgstr ""
5801
  "<i>Free Mode</i>."
5802
  msgstr ""
5803
 
5804
+ #: includes/class-payment.php:84
5805
  msgctxt "payment"
5806
  msgid "Payment status changed from \"%1$s\" to \"%2$s\"."
5807
  msgstr ""
5808
 
5809
+ #: includes/class-payment.php:125
5810
  msgctxt "payment"
5811
  msgid "Initial payment (\"%s\")"
5812
  msgstr ""
5813
 
5814
+ #: includes/class-payment.php:128
5815
  msgctxt "payment"
5816
  msgid "Renewal payment (\"%s\")"
5817
  msgstr ""
5818
 
5819
+ #: includes/class-payment.php:315
5820
  msgctxt "payment"
5821
  msgid "Pending"
5822
  msgstr ""
5823
 
5824
+ #: includes/class-payment.php:316
5825
  msgctxt "payment"
5826
  msgid "Failed"
5827
  msgstr ""
5828
 
5829
+ #: includes/class-payment.php:317
5830
  msgctxt "payment"
5831
  msgid "Completed"
5832
  msgstr ""
5833
 
5834
+ #: includes/class-payment.php:318
5835
  msgctxt "payment"
5836
  msgid "Canceled"
5837
  msgstr ""
5838
 
5839
+ #: includes/class-payment.php:319
5840
  msgctxt "payment"
5841
  msgid "On Hold"
5842
  msgstr ""
5843
 
5844
+ #: includes/class-payment.php:320
5845
  msgctxt "payment"
5846
  msgid "Refunded"
5847
  msgstr ""
5848
 
5849
+ #: includes/class-payment.php:140
5850
  msgctxt "payment summary"
5851
  msgid "%s. Admin Posted."
5852
  msgstr ""
5853
 
5854
+ #: includes/class-payment.php:142
5855
  msgctxt "payment summary"
5856
  msgid "%s. Imported Listing."
5857
  msgstr ""
5858
 
5859
+ #: includes/class-payment.php:220
5860
  msgctxt "submit listing"
5861
  msgid "Listing submitted by admin. Payment skipped."
5862
  msgstr ""
5863
 
5864
+ #: includes/views/submit_listing.php:66
5865
  msgctxt "submit listing"
5866
  msgid "Click this field to add categories"
5867
  msgstr ""
5868
 
5869
+ #: includes/views/submit_listing.php:67 templates/submit-listing.tpl.php:23
5870
  msgctxt "submit listing"
5871
  msgid "Complete Listing"
5872
  msgstr ""
5873
 
5874
+ #: includes/views/submit_listing.php:68 templates/submit-listing.tpl.php:28
5875
  msgctxt "submit listing"
5876
  msgid "Continue to Payment"
5877
  msgstr ""
5878
 
5879
+ #: includes/views/submit_listing.php:70
5880
  msgctxt "submit listing"
5881
  msgid "Please wait a moment!"
5882
  msgstr ""
5883
 
5884
+ #: includes/views/submit_listing.php:71
5885
  msgctxt "submit listing"
5886
  msgid "Something went wrong!"
5887
  msgstr ""
5888
 
5889
+ #: includes/views/submit_listing.php:96
5890
  msgctxt "submit listing"
5891
  msgid "No listing ID was specified."
5892
  msgstr ""
5893
 
5894
+ #: includes/views/submit_listing.php:98
5895
  msgctxt "submit listing"
5896
  msgid "You can't edit this listing."
5897
  msgstr ""
5898
 
5899
+ #: includes/views/submit_listing.php:152
5900
  msgctxt "submit listing"
5901
  msgid ""
5902
  "This listing can't be edited at this time because it has no fee plan "
5904
  "to a fee plan."
5905
  msgstr ""
5906
 
5907
+ #: includes/views/submit_listing.php:157
5908
  msgctxt "submit listing"
5909
  msgid ""
5910
  "This listing can't be edited at this time. Please try again later or contact "
5911
  "the admin if the problem persists."
5912
  msgstr ""
5913
 
5914
+ #: includes/views/submit_listing.php:180
5915
  msgctxt "submit listing"
5916
  msgid "You're logged in as admin, payment will be skipped."
5917
  msgstr ""
5918
 
5919
+ #: includes/views/submit_listing.php:407
5920
  msgctxt "submit listing"
5921
  msgid "Category selection"
5922
  msgstr ""
5923
 
5924
+ #: includes/views/submit_listing.php:407
5925
  msgctxt "submit listing"
5926
  msgid "Category & plan selection"
5927
  msgstr ""
5928
 
5929
+ #: includes/views/submit_listing.php:412
5930
  msgctxt "submit listing"
5931
  msgid "Listing Information"
5932
  msgstr ""
5933
 
5934
+ #: includes/views/submit_listing.php:417
5935
  msgctxt "submit listing"
5936
  msgid "Listing Images"
5937
  msgstr ""
5938
 
5939
+ #: includes/views/submit_listing.php:425
5940
  msgctxt "submit listing"
5941
  msgid "Account Creation"
5942
  msgstr ""
5943
 
5944
+ #: includes/views/submit_listing.php:431
5945
  msgctxt "submit listing"
5946
  msgid "Terms and Conditions"
5947
  msgstr ""
5948
 
5949
+ #: includes/views/submit_listing.php:468
5950
  msgctxt "submit listing"
5951
  msgid "(Please choose a fee plan above)"
5952
  msgstr ""
5953
 
5954
+ #: includes/views/submit_listing.php:518
5955
  msgctxt "submit listing"
5956
  msgid "Can not submit a listing at this moment. Please try again later."
5957
  msgstr ""
5958
 
5959
+ #: includes/views/submit_listing.php:560
5960
  msgctxt "submit listing"
5961
  msgid "Please select a category."
5962
  msgstr ""
5963
 
5964
+ #: includes/views/submit_listing.php:573
5965
  msgctxt "submit listing"
5966
  msgid "Please select a category for your listing."
5967
  msgstr ""
5968
 
5969
+ #: includes/views/submit_listing.php:593
5970
  msgctxt "submit listing"
5971
  msgid "Please choose a valid category for your plan."
5972
  msgstr ""
5973
 
5974
+ #: includes/views/submit_listing.php:595
5975
  msgctxt "submit listing"
5976
  msgid "Please choose a valid fee plan for your category selection."
5977
  msgstr ""
5978
 
5979
+ #: includes/views/submit_listing.php:835
5980
  msgctxt "submit listing"
5981
  msgid "Please enter your desired username."
5982
  msgstr ""
5983
 
5984
+ #: includes/views/submit_listing.php:840
5985
  msgctxt "submit listing"
5986
  msgid "Please enter the e-mail for your new account."
5987
  msgstr ""
5988
 
5989
+ #: includes/views/submit_listing.php:845
5990
  msgctxt "submit listing"
5991
  msgid "The username you chose is already in use. Please use a different one."
5992
  msgstr ""
5993
 
5994
+ #: includes/views/submit_listing.php:850
5995
  msgctxt "submit listing"
5996
  msgid "The e-mail address you chose for your account is already in use."
5997
  msgstr ""
5998
 
5999
+ #: includes/views/submit_listing.php:865
6000
  msgctxt "submit listing"
6001
  msgid "Create a user account on this site"
6002
  msgstr ""
6003
 
6004
+ #: includes/views/submit_listing.php:872
6005
  msgctxt "submit listing"
6006
  msgid ""
6007
  "You need to create an account on the site. Please fill out the form below."
6008
  msgstr ""
6009
 
6010
+ #: includes/views/submit_listing.php:878
6011
  msgctxt "submit listing"
6012
  msgid "Username:"
6013
  msgstr ""
6014
 
6015
+ #: includes/views/submit_listing.php:887
6016
  msgctxt "submit listing"
6017
  msgid "Email:"
6018
  msgstr ""
6164
  msgstr ""
6165
 
6166
  #: includes/fields/class-fieldtypes-social.php:95
6167
+ #: includes/fields/class-fieldtypes-url.php:152
6168
  msgctxt "form-fields api"
6169
  msgid "URL:"
6170
  msgstr ""
6209
  msgid "URL Field"
6210
  msgstr ""
6211
 
6212
+ #: includes/fields/class-fieldtypes-url.php:164
6213
  msgctxt "form-fields api"
6214
  msgid "Link Text (optional):"
6215
  msgstr ""
6479
  msgid "Caption for %s is required."
6480
  msgstr ""
6481
 
6482
+ #: includes/functions.php:1273
6483
  msgctxt "templates"
6484
  msgid "Return to results"
6485
  msgstr ""
6486
 
6487
+ #: includes/functions.php:1277 includes/functions.php:1282
6488
  msgctxt "templates"
6489
  msgid "Go back"
6490
  msgstr ""
6499
  msgid "No listing categories found."
6500
  msgstr ""
6501
 
6502
+ #: includes/templates-ui.php:358
6503
  msgctxt "templates"
6504
  msgid "Search Listings"
6505
  msgstr ""
6506
 
6507
+ #: includes/templates-ui.php:363
6508
  msgctxt "templates"
6509
  msgid "Advanced Search"
6510
  msgstr ""
6542
  "site. If you didn't want that, click <a>here</a> to change the setting."
6543
  msgstr ""
6544
 
6545
+ #: includes/views/submit_listing.php:352
6546
  msgctxt "templates"
6547
  msgid ""
6548
  "<b>View not available</b>. Do you have the \"Disable Frontend Listing "
6549
  "Submission?\" setting checked?"
6550
  msgstr ""
6551
 
6552
+ #: includes/views/submit_listing.php:354
6553
  msgctxt "templates"
6554
  msgid ""
6555
  "Listing submission has been disabled. Contact the administrator for details."
6556
  msgstr ""
6557
 
6558
+ #: includes/views/submit_listing.php:521
6559
  msgctxt "templates"
6560
  msgid ""
6561
  "<b>There are no Fee Plans available</b>, without a fee plan site users can't "
6562
  "submit a listing. %s to create a fee plan"
6563
  msgstr ""
6564
 
6565
+ #: includes/views/submit_listing.php:535
6566
  msgctxt "templates"
6567
  msgid ""
6568
  "Listing submission is not available at the moment. Contact the administrator "
6569
  "for details."
6570
  msgstr ""
6571
 
6572
+ #: includes/views/submit_listing.php:538
6573
  msgctxt "templates"
6574
  msgid ""
6575
  "<b>View not available</b>, there is no \"Category\" association field. %s "
6577
  "an existing field"
6578
  msgstr ""
6579
 
6580
+ #: includes/views/submit_listing.php:914
6581
  msgctxt "templates"
6582
  msgid "Please agree to the Terms and Conditions."
6583
  msgstr ""
6584
 
6585
+ #: includes/views/submit_listing.php:924
6586
  msgctxt "templates"
6587
  msgid "Terms and Conditions:"
6588
  msgstr ""
6589
 
6590
+ #: includes/views/submit_listing.php:931
6591
  msgctxt "templates"
6592
  msgid "I agree to the <a>Terms and Conditions</a>"
6593
  msgstr ""
6600
  msgstr ""
6601
 
6602
  #: templates/businessdirectory-listings.tpl.php:38
6603
+ #: templates/listings.tpl.php:31 templates/manage_listings.tpl.php:33
6604
  msgctxt "templates"
6605
  msgid "&laquo; Previous "
6606
  msgstr ""
6607
 
6608
  #: templates/businessdirectory-listings.tpl.php:39
6609
+ #: templates/listings.tpl.php:32 templates/manage_listings.tpl.php:34
6610
  msgctxt "templates"
6611
  msgid "Next &raquo;"
6612
  msgstr ""
6613
 
6614
  #: templates/deprecated/search.tpl.php:24 templates/manage-listings.tpl.php:8
6615
+ #: templates/manage_listings.tpl.php:16
6616
  msgctxt "templates"
6617
  msgid "Return to directory"
6618
  msgstr ""
6680
  msgid "Lost your password?"
6681
  msgstr ""
6682
 
6683
+ #: templates/manage-listings.tpl.php:3 templates/manage_listings.tpl.php:20
6684
  msgctxt "templates"
6685
  msgid ""
6686
  "Your current listings are shown below. To edit a listing click the edit "
6687
  "button. To delete a listing click the delete button."
6688
  msgstr ""
6689
 
6690
+ #: templates/manage-listings.tpl.php:6 templates/manage_listings.tpl.php:11
6691
  msgctxt "templates"
6692
  msgid "You do not currently have any listings in the directory."
6693
  msgstr ""
6880
  msgid "There are no images currently attached to your listing."
6881
  msgstr ""
6882
 
6883
+ #: includes/gateways/class-gateway-authorize-net.php:35
6884
  msgctxt "authorize-net"
6885
  msgid "Authorize.net"
6886
  msgstr ""
6887
 
6888
+ #: includes/gateways/class-gateway-authorize-net.php:53
6889
  msgctxt "authorize-net"
6890
  msgid "Login ID"
6891
  msgstr ""
6892
 
6893
+ #: includes/gateways/class-gateway-authorize-net.php:54
6894
  msgctxt "authorize-net"
6895
  msgid "Transaction Key"
6896
  msgstr ""
6897
 
6898
+ #: includes/gateways/class-gateway-authorize-net.php:98
6899
  msgctxt "authorize-net"
6900
  msgid "Login ID is missing."
6901
  msgstr ""
6902
 
6903
+ #: includes/gateways/class-gateway-authorize-net.php:101
6904
  msgctxt "authorize-net"
6905
  msgid "Transaction Key is missing."
6906
  msgstr ""
6907
 
6908
+ #: includes/gateways/class-gateway-authorize-net.php:172
6909
+ #: includes/gateways/class-gateway-authorize-net.php:191
6910
+ #: includes/gateways/class-gateway-authorize-net.php:201
6911
  msgctxt "authorize-net"
6912
  msgid ""
6913
  "Payment is being held for review by the payment gateway. The following "
6914
  "reason was given: \"%s\"."
6915
  msgstr ""
6916
 
6917
+ #: includes/gateways/class-gateway-authorize-net.php:210
6918
  msgctxt "authorize-net"
6919
  msgid ""
6920
  "The payment gateway didn't accept the credit card or billing information. "
6921
  "The following reason was given: \"%s\"."
6922
  msgstr ""
6923
 
6924
+ #: includes/gateways/class-gateway-authorize-net.php:216
6925
+ msgctxt "authorize-net"
6926
+ msgid "No response returned"
6927
+ msgstr ""
6928
+
6929
+ #: includes/gateways/class-gateway-authorize-net.php:220
6930
  msgctxt "authorize-net"
6931
  msgid "Payment was rejected. The following reason was given: \"%s\"."
6932
  msgstr ""
6933
 
6934
+ #: includes/gateways/class-gateway-authorize-net.php:281
6935
+ #: includes/gateways/class-gateway-authorize-net.php:328
6936
  msgctxt "authorize-net"
6937
  msgid "Payment failed. Reason: %s"
6938
  msgstr ""
6939
 
6940
+ #: includes/gateways/class-gateway-authorize-net.php:339
6941
  msgctxt "authorize-net"
6942
  msgid "Listing #%d"
6943
  msgstr ""
6944
 
6945
+ #: includes/gateways/class-gateway-authorize-net.php:599
6946
+ msgctxt "authorize-net"
6947
+ msgid "Customer"
6948
+ msgstr ""
6949
+
6950
  #: includes/helpers/class-access-keys-sender.php:20
6951
  msgctxt "access keys sender"
6952
  msgid "<email-address> is not a valid e-mail address."
7072
  msgid "General"
7073
  msgstr ""
7074
 
7075
+ #: includes/licensing.php:288
7076
  msgctxt "licensing"
7077
  msgid "Invalid item ID"
7078
  msgstr ""
7079
 
7080
+ #: includes/licensing.php:294
7081
  msgctxt "licensing"
7082
  msgid "No license key provided"
7083
  msgstr ""
7084
 
7085
+ #: includes/licensing.php:318
7086
  msgctxt "licensing"
7087
  msgid "The license key was revoked."
7088
  msgstr ""
7089
 
7090
+ #: includes/licensing.php:320
7091
  msgctxt "licensing"
7092
  msgid ""
7093
  "If you think this is a mistake, please contact <support-link>Business "
7095
  "reported as revoked by the licensing software."
7096
  msgstr ""
7097
 
7098
+ #: includes/licensing.php:322
7099
  msgctxt "licensing"
7100
  msgid ""
7101
  "Please include the email address you used to purchase <module-name> with "
7102
  "your report."
7103
  msgstr ""
7104
 
7105
+ #: includes/licensing.php:333 includes/licensing.php:376
7106
  msgctxt "licensing"
7107
  msgid "License key is invalid"
7108
  msgstr ""
7109
 
7110
+ #: includes/licensing.php:350
7111
  msgctxt "licensing"
7112
  msgid "Invalid module ID"
7113
  msgstr ""
7114
 
7115
+ #: includes/licensing.php:380
7116
  msgctxt "licensing"
7117
  msgid "Deactivation failed"
7118
  msgstr ""
7119
 
7120
+ #: includes/licensing.php:388
7121
  msgctxt "licensing"
7122
  msgid ""
7123
  "It was not possible to establish a connection with Business Directory's "
7124
  "server. cURL was not found in your system"
7125
  msgstr ""
7126
 
7127
+ #: includes/licensing.php:390 includes/licensing.php:431
7128
  msgctxt "licensing"
7129
  msgid ""
7130
  "To ensure the security of our systems and adhere to industry best practices, "
7133
  "1.0.1c)."
7134
  msgstr ""
7135
 
7136
+ #: includes/licensing.php:392 includes/licensing.php:433
7137
  msgctxt "licensing"
7138
  msgid ""
7139
  "Upgrading your system will not only allow you to communicate with Business "
7141
  "services using the latest security standards."
7142
  msgstr ""
7143
 
7144
+ #: includes/licensing.php:394
7145
  msgctxt "licensing"
7146
  msgid ""
7147
  "Please contact your hosting provider and ask them to upgrade your system. "
7148
  "Include this message if necessary"
7149
  msgstr ""
7150
 
7151
+ #: includes/licensing.php:410
7152
  msgctxt "licensing"
7153
  msgid ""
7154
  "It was not possible to establish a connection with Business Directory's "
7155
  "server. The connection failed with the following error:"
7156
  msgstr ""
7157
 
7158
+ #: includes/licensing.php:414 includes/licensing.php:466
7159
  msgctxt "licensing"
7160
  msgid ""
7161
  "It looks like your server is not authorized to make requests to Business "
7162
  "Directory servers. Please contact <support-link>Business Directory support</"
7163
+ "support-link> and ask them to add your IP address <ip-address> to the allow "
7164
+ "list."
7165
  msgstr ""
7166
 
7167
+ #: includes/licensing.php:416 includes/licensing.php:468
7168
  msgctxt "licensing"
7169
  msgid "Include this error message with your report."
7170
  msgstr ""
7171
 
7172
+ #: includes/licensing.php:426
7173
  msgctxt "licensing"
7174
  msgid ""
7175
  "It was not possible to establish a connection with Business Directory's "
7176
  "server. A problem occurred in the SSL/TSL handshake:"
7177
  msgstr ""
7178
 
7179
+ #: includes/licensing.php:435
7180
  msgctxt "licensing"
7181
  msgid ""
7182
  "Please contact your hosting provider and ask them to upgrade your system. "
7183
  "Include this message if necessary."
7184
  msgstr ""
7185
 
7186
+ #: includes/licensing.php:442
7187
  msgctxt "licensing"
7188
  msgid "Could not contact licensing server"
7189
  msgstr ""
7190
 
7191
+ #: includes/licensing.php:464
7192
  msgctxt "licensing"
7193
  msgid "The server returned a 403 Forbidden error."
7194
  msgstr ""
7195
 
7196
+ #: includes/licensing.php:532
7197
  msgctxt "licensing"
7198
  msgid "Business Directory - Please verify your license keys"
7199
  msgstr ""
7200
 
7201
+ #: includes/licensing.php:542
7202
  msgctxt "licensing"
7203
  msgid ""
7204
  "The following premium modules will not work until a valid license key is "
7205
  "provided: %s."
7206
  msgstr ""
7207
 
7208
+ #: includes/licensing.php:553
7209
  msgctxt "licensing"
7210
  msgid ""
7211
  "You need to activate the license keys for the following themes before they "
7212
  "can be used: %s."
7213
  msgstr ""
7214
 
7215
+ #: includes/licensing.php:561 includes/licensing.php:617
7216
  msgctxt "licensing"
7217
  msgid "Review my license keys"
7218
  msgstr ""
7219
 
7220
+ #: includes/licensing.php:588
7221
  msgctxt "licensing"
7222
  msgid "Business Directory - License key expired"
7223
  msgstr ""
7224
 
7225
+ #: includes/licensing.php:598
7226
  msgctxt "licensing"
7227
  msgid ""
7228
  "The license key for the following modules has expired: %s. The modules will "
7230
  "is renewed."
7231
  msgstr ""
7232
 
7233
+ #: includes/licensing.php:609
7234
  msgctxt "licensing"
7235
  msgid ""
7236
  "The license key for the following themes has expired: %s. The themes will "
7238
  "is renewed."
7239
  msgstr ""
7240
 
7241
+ #: includes/licensing.php:709
7242
  msgctxt "licensing"
7243
  msgid "Please enter a license key."
7244
  msgstr ""
7245
 
7246
+ #: includes/licensing.php:718
7247
  msgctxt "licensing"
7248
  msgid "Could not activate license: %s."
7249
  msgstr ""
7250
 
7251
+ #: includes/licensing.php:720
7252
  msgctxt "licensing"
7253
  msgid "License activated"
7254
  msgstr ""
7255
 
7256
+ #: includes/licensing.php:740
7257
  msgctxt "licensing"
7258
  msgid "Could not deactivate license: %s."
7259
  msgstr ""
7260
 
7261
+ #: includes/licensing.php:742
7262
  msgctxt "licensing"
7263
  msgid "License deactivated"
7264
  msgstr ""
7265
 
7266
  #. translators: "<module-name>" version <version-number> is not...
7267
+ #: includes/licensing.php:945
7268
  msgctxt "deprecation"
7269
  msgid ""
7270
  "\"%1$s\" version %2$s is not compatible with Business Directory Plugin 5.0. "
7543
  msgid "Next"
7544
  msgstr ""
7545
 
7546
+ #: includes/templates-ui.php:398 includes/templates-ui.php:430
7547
  msgctxt "templates sort"
7548
  msgid "Sort By:"
7549
  msgstr ""
7550
 
7551
+ #: includes/templates-ui.php:421
7552
  msgctxt "sort"
7553
  msgid "Reset"
7554
  msgstr ""
7555
 
7556
+ #: includes/templates-ui.php:449
7557
  msgctxt "sort"
7558
  msgid "(Reset)"
7559
  msgstr ""
7694
  msgid "This contact form is temporarily disabled. Please try again later."
7695
  msgstr ""
7696
 
7697
+ #: includes/views/login.php:49
7698
  msgctxt "views:login"
7699
  msgid "Please enter a valid e-mail/access key combination."
7700
  msgstr ""
7709
  msgid "... or use an Access Key"
7710
  msgstr ""
7711
 
7712
+ #: templates/login.tpl.php:60
7713
  msgctxt "views:login"
7714
  msgid "Please enter your access key and e-mail address."
7715
  msgstr ""
7716
 
7717
+ #: templates/login.tpl.php:66 templates/login.tpl.php:68
7718
  msgctxt "views:login"
7719
  msgid "E-Mail Address"
7720
  msgstr ""
7721
 
7722
+ #: templates/login.tpl.php:72 templates/login.tpl.php:74
7723
  msgctxt "views:login"
7724
  msgid "Access Key"
7725
  msgstr ""
7726
 
7727
+ #: templates/login.tpl.php:76
7728
  msgctxt "views:login"
7729
  msgid "Use Access Key"
7730
  msgstr ""
7731
 
7732
+ #: templates/login.tpl.php:77
7733
  msgctxt "views:login"
7734
  msgid "Request access key?"
7735
  msgstr ""
7736
 
7737
+ #: includes/views/manage_listings.php:29
7738
  msgctxt "view:manage-listings"
7739
  msgid "Please <a>login</a> to manage your listings."
7740
  msgstr ""
7741
 
7742
+ #: includes/views/manage_listings.php:100
7743
+ msgctxt "view:manage-listings"
7744
+ msgid "Renew Listing"
7745
+ msgstr ""
7746
+
7747
  #: includes/views/manage_recurring.php:36
7748
  msgctxt "manage subscription"
7749
  msgid "The listing with id = <listing-id> doesn't exists."
7903
  msgid "Clear"
7904
  msgstr ""
7905
 
7906
+ #: includes/views/show_listing.php:13
7907
  msgctxt "preview"
7908
  msgid "This is just a preview. The listing has not been published yet."
7909
  msgstr ""
7910
 
7911
+ #: includes/views/submit_listing.php:705
7912
  msgctxt "listing submit"
7913
  msgid ""
7914
  "Something went wrong. Please check the form for errors, correct them and "
7915
  "submit again."
7916
  msgstr ""
7917
 
7918
+ #: includes/views/submit_listing.php:789
7919
  msgctxt "listing submit"
7920
  msgid ""
7921
  "Image upload is required, please provide at least one image and submit again."
8062
  msgid "Search"
8063
  msgstr ""
8064
 
8065
+ #: templates/admin/csv-export.tpl.php:100
8066
+ #: templates/admin/csv-export.tpl.php:119
8067
+ #: templates/admin/csv-export.tpl.php:130 templates/admin/csv-import.tpl.php:50
8068
  #: templates/admin/csv-import.tpl.php:116
8069
  #: templates/admin/csv-import.tpl.php:142
8070
  #: templates/admin/csv-import.tpl.php:153
languages/business-directory-plugin-es_ES.mo ADDED
Binary file
languages/{WPBDM-es_ES.po → business-directory-plugin-es_ES.po} RENAMED
@@ -5,15 +5,15 @@ msgstr ""
5
  "Project-Id-Version: Business Directory Plugin v5.7.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
7
  "directory-plugin\n"
8
- "POT-Creation-Date: 2020-06-17 20:29:07+00:00\n"
9
- "PO-Revision-Date: 2020-06-30 17:15-0500\n"
10
  "Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
11
  "Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
12
  "Language: es_ES\n"
13
  "MIME-Version: 1.0\n"
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
  "Content-Transfer-Encoding: 8bit\n"
16
- "X-Generator: Poedit 2.3.1\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
  "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,-1,-1,543\n"
19
  "X-Poedit-SourceCharset: UTF-8\n"
@@ -31,7 +31,7 @@ msgid "Listing Reports"
31
  msgstr "Reportes"
32
 
33
  #: includes/admin/class-admin-listings.php:225
34
- #: includes/admin/class-listing-owner.php:87
35
  msgid "Listing Owner"
36
  msgstr "Dueño del listado"
37
 
@@ -47,29 +47,29 @@ msgstr "Atributos"
47
  msgid "Edit listing permalink"
48
  msgstr "Editar enlace del listado"
49
 
50
- #: includes/admin/class-admin.php:182
51
  msgid ""
52
  "Preview is only available after you've saved the first draft. This is due\n"
53
- "to how WordPress stores the data."
54
  msgstr ""
55
- "Debido a la forma en que WordPress almacena la información, la per-"
56
- "visualización está disponible solo después de que se guarde el primer "
57
- "borrador."
58
 
59
- #: includes/admin/class-admin.php:377
60
  msgid "Uninstall Business Directory Plugin"
61
  msgstr "Desinstalar Business Directory Plugin"
62
 
63
- #: includes/admin/class-admin.php:378
64
  msgid "Uninstall"
65
  msgstr "Desinstalar"
66
 
67
- #: includes/admin/class-csv-import.php:633
68
  msgid "Listing imported by admin. Payment skipped."
69
  msgstr "El listado fue importado por el administrador. No se realizó pago."
70
 
71
- #: includes/admin/class-listing-owner.php:62
72
- #: includes/admin/class-listing-owner.php:89
73
  msgid "Please select a user"
74
  msgstr "Por favor seleccione un usuario"
75
 
@@ -121,7 +121,7 @@ msgstr "Directorio de Negocios"
121
  msgid "Missing tables: %s"
122
  msgstr "Tablas faltantes: %s"
123
 
124
- #: includes/admin/settings/class-settings-bootstrap.php:1108
125
  msgid ""
126
  "If you are using this gateway, we recommend you disable it if you wish to "
127
  "collect payments in this currency."
@@ -212,59 +212,64 @@ msgid "Search Listings"
212
  msgstr "Buscar Listados"
213
 
214
  #: includes/class-cpt-integration.php:24
 
 
 
 
 
215
  msgid "No listings found"
216
  msgstr "No se encontraron listados"
217
 
218
- #: includes/class-cpt-integration.php:25
219
  msgid "No listings found in trash"
220
  msgstr "No se encontraron listados en la papelera"
221
 
222
- #: includes/class-cpt-integration.php:41
223
  msgid "Directory Categories"
224
  msgstr "Categorías de Directorio"
225
 
226
- #: includes/class-cpt-integration.php:42
227
  msgid "Directory Category"
228
  msgstr "Categoría de Directorio"
229
 
230
- #: includes/class-cpt-integration.php:53
231
  msgid "Directory Tags"
232
  msgstr "Etiquetas de Directorio"
233
 
234
- #: includes/class-cpt-integration.php:54
235
  msgid "Directory Tag"
236
  msgstr "Etiqueta de Directorio"
237
 
238
  #. translators: %s: listing count
239
- #: includes/class-cpt-integration.php:235
240
  msgid "%s listing updated."
241
  msgid_plural "%s listings updated."
242
  msgstr[0] "%s listado actualizado."
243
  msgstr[1] "%s listados actualizados."
244
 
245
  #. translators: %s: listing count
246
- #: includes/class-cpt-integration.php:237
247
  msgid "%s listing not updated, somebody is editing it."
248
  msgid_plural "%s listings not updated, somebody is editing them."
249
  msgstr[0] "%s listado no actualizado, alguien está editándolo."
250
  msgstr[1] "%s listados no actualizados, alguien los está editándonos."
251
 
252
  #. translators: %s: listing count
253
- #: includes/class-cpt-integration.php:239
254
  msgid "%s listing permanently deleted."
255
  msgid_plural "%s listings permanently deleted."
256
  msgstr[0] "%s listado eliminado permanentemente."
257
  msgstr[1] "%s listados eliminados permanentemente."
258
 
259
  #. translators: %s: listing count
260
- #: includes/class-cpt-integration.php:241
261
  msgid "%s listing moved to the Trash."
262
  msgid_plural "%s listings moved to the Trash."
263
  msgstr[0] "%s listado se trasladó a la Papelera."
264
  msgstr[1] "%s listados se trasladaron a la Papelera."
265
 
266
  #. translators: %s: listing count
267
- #: includes/class-cpt-integration.php:243
268
  msgid "%s listing restored from the Trash."
269
  msgid_plural "%s listings restored from the Trash."
270
  msgstr[0] "%s listado restablecido de la Papelera."
@@ -352,7 +357,7 @@ msgstr "Código Postal"
352
  msgid "Free"
353
  msgstr "Gratuito"
354
 
355
- #: includes/gateways/class-gateway-authorize-net.php:356
356
  msgid ""
357
  "An error occurred while trying to cancel your subscription. Please try again "
358
  "later or contact the site administrator."
@@ -360,7 +365,7 @@ msgstr ""
360
  "Se ha producido un error al intentar cancelar la suscripción. Inténtelo de "
361
  "nuevo más tarde o póngase en contacto con el administrador del sitio."
362
 
363
- #: includes/gateways/class-gateway-authorize-net.php:360
364
  msgid ""
365
  "An error occurred while trying to cancel Authorize.net subscription with ID "
366
  "%s. You can try again later or cancel subscription from gateway dashboard."
@@ -381,15 +386,19 @@ msgstr "No se encontró ningún pago asociado con la subscripción elegida."
381
  msgid "The payment gateway \"<payment-gateway>\" is not available."
382
  msgstr "La pasarela de pago “<payment-gateway>” no está disponible."
383
 
384
- #: includes/templates-ui.php:288
385
  msgid "Directory"
386
  msgstr "Directorio"
387
 
388
- #: includes/templates-ui.php:297
389
  msgid "View All Listings"
390
  msgstr "Ver Todos los Listados"
391
 
392
- #: includes/templates-ui.php:306
 
 
 
 
393
  msgid "Create A Listing"
394
  msgstr "Crear un Listado"
395
 
@@ -397,6 +406,16 @@ msgstr "Crear un Listado"
397
  msgid "l F j, Y \\a\\t g:i a"
398
  msgstr "l F j, Y \\a\\t g:i a"
399
 
 
 
 
 
 
 
 
 
 
 
400
  #: templates/admin/home.tpl.php:53
401
  msgid "Manage Options"
402
  msgstr "Configuraciones"
@@ -450,8 +469,8 @@ msgstr "Restaurar valores por defecto"
450
  msgid "← Return to Directory"
451
  msgstr "← Regresar al Directorio"
452
 
453
- #. Plugin URI of the plugin/theme
454
- msgid "https://www.businessdirectoryplugin.com"
455
  msgstr ""
456
 
457
  #. Description of the plugin/theme
@@ -463,11 +482,7 @@ msgstr ""
463
  "sitio de WordPress."
464
 
465
  #. Author of the plugin/theme
466
- msgid "D. Rodenbaugh"
467
- msgstr "D. Rodenbaugh"
468
-
469
- #. Author URI of the plugin/theme
470
- msgid "https://businessdirectoryplugin.com"
471
  msgstr ""
472
 
473
  #: includes/admin/class-admin-controller.php:79
@@ -509,31 +524,31 @@ msgctxt "admin csv-import"
509
  msgid "Could not create listing category \"%s\""
510
  msgstr "No se pudo crear la categoría \"%s\""
511
 
512
- #: includes/admin/class-csv-import.php:684
513
  msgctxt "admin csv-import"
514
  msgid "Username \"%s\" does not exist"
515
  msgstr "El usuario \"%s\" no existe"
516
 
517
- #: includes/admin/class-csv-import.php:710
518
- msgctxt "admin csv-import"
519
- msgid "The string <string> couldn't be converted into a valid date."
520
- msgstr "La cadena <string> no pudo ser interpretada como una fecha válida."
521
-
522
- #: includes/admin/class-csv-import.php:732
523
  msgctxt "admin csv-import"
524
  msgid "There is no Fee Plan with ID = <fee-id>"
525
  msgstr "No existe una comisión con ID = <fee-id>"
526
 
527
- #: includes/admin/class-csv-import.php:755
528
  msgctxt "admin csv-import"
529
  msgid "Missing required field: %s"
530
  msgstr "Falta campo requerido: %s"
531
 
532
- #: includes/admin/class-csv-import.php:780
533
  msgctxt "admin csv-import"
534
  msgid "Listing category \"%s\" does not exist"
535
  msgstr "La categoría \"%s\" no existe"
536
 
 
 
 
 
 
537
  #: includes/admin/csv-import.php:130
538
  msgctxt "admin csv-import"
539
  msgid "Business %s"
@@ -1053,7 +1068,7 @@ msgctxt "admin listings"
1053
  msgid "Reported"
1054
  msgstr "Reportado"
1055
 
1056
- #: includes/admin/class-admin-listings.php:717
1057
  msgctxt "admin listings"
1058
  msgid "Listing's payment history successfully deleted"
1059
  msgstr "El historial de pagos del listado se eliminó correctamente"
@@ -1098,52 +1113,52 @@ msgctxt "admin"
1098
  msgid "Categories"
1099
  msgstr "Categorías"
1100
 
1101
- #: includes/admin/class-admin.php:243
1102
  msgctxt "admin"
1103
  msgid "Business Directory"
1104
  msgstr "Directorio de Negocios"
1105
 
1106
- #: includes/admin/class-admin.php:254
1107
  msgctxt "admin"
1108
  msgid "You're all set. Visit your new <a>Business Directory</a> page."
1109
  msgstr ""
1110
  "Está todo listo. Visite la página de su nuevo <a>Directorio de Negocios</a>."
1111
 
1112
- #: includes/admin/class-admin.php:407
1113
  msgctxt "admin"
1114
  msgid "Untitled Menu"
1115
  msgstr "Menú sin título"
1116
 
1117
- #: includes/admin/class-admin.php:677
1118
  msgctxt "admin"
1119
  msgid "Dismiss this notice."
1120
  msgstr "Ignorar."
1121
 
1122
- #: includes/admin/class-admin.php:708 includes/admin/class-admin.php:718
1123
  msgctxt "admin"
1124
  msgid "The listing has been updated."
1125
  msgid_plural "The listings have been updated."
1126
  msgstr[0] "El listado ha sido actualizado."
1127
  msgstr[1] "Los listados han sido actualizados."
1128
 
1129
- #: includes/admin/class-admin.php:739
1130
  msgctxt "admin"
1131
  msgid "The fee was successfully assigned."
1132
  msgstr "La comisión se asignó satisfactoriamente."
1133
 
1134
- #: includes/admin/class-admin.php:749
1135
  msgctxt "admin"
1136
  msgid "Listing was renewed."
1137
  msgid_plural "Listings were renewed."
1138
  msgstr[0] "El listado ha sido renovado."
1139
  msgstr[1] "Los listados fueron renovados."
1140
 
1141
- #: includes/admin/class-admin.php:760
1142
  msgctxt "admin"
1143
  msgid "Renewal email sent."
1144
  msgstr "Mensaje de correo electrónico de renovación enviado."
1145
 
1146
- #: includes/admin/class-admin.php:764
1147
  msgctxt "admin"
1148
  msgid ""
1149
  "Could not send renewal email, notice template at listing expiration not "
@@ -1152,29 +1167,29 @@ msgstr ""
1152
  "No se pudo enviar el correo electrónico de renovación, no se encontró la "
1153
  "plantilla de notificación al momento de expirar e listado."
1154
 
1155
- #: includes/admin/class-admin.php:771
1156
  msgctxt "admin"
1157
  msgid "Listing report deleted."
1158
  msgid_plural "Listing reports deleted."
1159
  msgstr[0] "Reporte eliminado."
1160
  msgstr[1] "Reportes eliminados."
1161
 
1162
- #: includes/admin/class-admin.php:819
1163
  msgctxt "admin"
1164
  msgid "Access keys sent."
1165
  msgstr "Claves de acceso enviadas."
1166
 
1167
- #: includes/admin/class-admin.php:821
1168
  msgctxt "admin"
1169
  msgid "The access keys couldn't be sent."
1170
  msgstr "No se pudo enviar las claves de acceso."
1171
 
1172
- #: includes/admin/class-admin.php:887 includes/admin/class-admin.php:893
1173
  msgctxt "admin"
1174
  msgid "Listing Count"
1175
  msgstr "Conteo de Listados"
1176
 
1177
- #: includes/admin/class-admin.php:955
1178
  msgctxt "admin"
1179
  msgid ""
1180
  "<b>Business Directory Plugin</b> requires a page with the "
@@ -1183,7 +1198,7 @@ msgstr ""
1183
  "<b>Business Directory Plugin</b> requiere una página con el shortcode "
1184
  "<tt>[businessdirectory]</tt> para funcionar adecuadamente."
1185
 
1186
- #: includes/admin/class-admin.php:957
1187
  msgctxt "admin"
1188
  msgid ""
1189
  "You can create this page by yourself or let Business Directory do this for "
@@ -1192,12 +1207,12 @@ msgstr ""
1192
  "Puede crear esta página usted mismo o dejar que Business Directory lo haga "
1193
  "por usted automáticamente."
1194
 
1195
- #: includes/admin/class-admin.php:961
1196
  msgctxt "admin"
1197
  msgid "Create required pages for me"
1198
  msgstr "Crear las páginas requeridas por mi"
1199
 
1200
- #: includes/admin/class-admin.php:994
1201
  msgctxt "admin"
1202
  msgid ""
1203
  "<strong>Business Directory Plugin</strong> requires <strong>PHP 5.6</strong> "
@@ -1209,7 +1224,7 @@ msgstr ""
1209
  "Por favor comuníquese con su proveedor de hosting para actualizar su sistema "
1210
  "y evitar problemas de compatibilidad."
1211
 
1212
- #: includes/admin/class-admin.php:1017
1213
  msgctxt "admin"
1214
  msgid ""
1215
  "We noticed you want your Business Directory users to register before posting "
@@ -1264,7 +1279,7 @@ msgstr ""
1264
  "Puede crear estos campos usted mismo en \"Administrar Campos de Formulario\" "
1265
  "o puede dejar que Business Directory haga esto por usted automáticamente."
1266
 
1267
- #: includes/admin/form-fields.php:214 includes/views/submit_listing.php:541
1268
  msgctxt "admin"
1269
  msgid "Go to \"Manage Form Fields\""
1270
  msgstr "Ir a \"Administrar Campos de Formulario\""
@@ -1284,7 +1299,7 @@ msgctxt "admin"
1284
  msgid "Abandoned"
1285
  msgstr "Abandonados"
1286
 
1287
- #: includes/views/submit_listing.php:524
1288
  msgctxt "admin"
1289
  msgid "Go to \"Manage Fees\""
1290
  msgstr "Ir a \"Administrar Comisiones“"
@@ -1394,20 +1409,20 @@ msgctxt "admin actions"
1394
  msgid "Send access keys"
1395
  msgstr "Enviar claves de acceso"
1396
 
1397
- #: includes/admin/class-admin.php:175
1398
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:75
1399
  msgctxt "listing metabox"
1400
  msgid "Never"
1401
  msgstr "Nunca"
1402
 
1403
- #: includes/admin/class-admin.php:176
1404
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1405
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1406
  msgctxt "listing metabox"
1407
  msgid "Yes"
1408
  msgstr "Sí"
1409
 
1410
- #: includes/admin/class-admin.php:177
1411
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1412
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1413
  msgctxt "listing metabox"
@@ -1520,7 +1535,7 @@ msgctxt "listing metabox"
1520
  msgid "Is Recurring?"
1521
  msgstr "¿Es recurrente?"
1522
 
1523
- #: includes/admin/class-admin.php:214
1524
  msgctxt "drip pointer"
1525
  msgid ""
1526
  "Find out how to create a compelling, thriving business directory from "
@@ -1531,105 +1546,80 @@ msgstr ""
1531
  "cero en este curso GRATUITO por e-mail de 5 partes. Obtenga un módulo "
1532
  "premium GRATIS solo por inscribirse."
1533
 
1534
- #: includes/admin/class-admin.php:216
1535
  msgctxt "drip pointer"
1536
  msgid "Email Address:"
1537
  msgstr "Correo electrónico:"
1538
 
1539
- #: includes/admin/class-admin.php:222
1540
  msgctxt "drip pointer"
1541
  msgid "Want to know the Secrets of Building an Awesome Business Directory?"
1542
  msgstr ""
1543
  "Quiere conocer los secretos para crear un Directorio de Negocios "
1544
  "impresionante?"
1545
 
1546
- #: includes/admin/class-admin.php:224
1547
  msgctxt "drip pointer"
1548
  msgid "Yes, please!"
1549
  msgstr "Sí, por favor!"
1550
 
1551
- #: includes/admin/class-admin.php:226
1552
  msgctxt "drip pointer"
1553
  msgid "No, thanks"
1554
  msgstr "No, gracias"
1555
 
1556
- #: includes/admin/class-admin.php:274
1557
  msgctxt "drip pointer"
1558
  msgid "Invalid e-mail address."
1559
  msgstr "Dirección de correo-e inválida."
1560
 
1561
- #: includes/admin/class-admin.php:308
1562
- msgctxt "admin menu"
1563
- msgid
5
  "Project-Id-Version: Business Directory Plugin v5.7.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
7
  "directory-plugin\n"
8
+ "POT-Creation-Date: 2020-08-27 15:16:00+00:00\n"
9
+ "PO-Revision-Date: 2020-08-26 12:50-0500\n"
10
  "Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
11
  "Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
12
  "Language: es_ES\n"
13
  "MIME-Version: 1.0\n"
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
  "Content-Transfer-Encoding: 8bit\n"
16
+ "X-Generator: Poedit 2.4.1\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
  "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,-1,-1,543\n"
19
  "X-Poedit-SourceCharset: UTF-8\n"
31
  msgstr "Reportes"
32
 
33
  #: includes/admin/class-admin-listings.php:225
34
+ #: includes/admin/class-listing-owner.php:91
35
  msgid "Listing Owner"
36
  msgstr "Dueño del listado"
37
 
47
  msgid "Edit listing permalink"
48
  msgstr "Editar enlace del listado"
49
 
50
+ #: includes/admin/class-admin.php:184
51
  msgid ""
52
  "Preview is only available after you've saved the first draft. This is due\n"
53
+ " to how WordPress stores the data."
54
  msgstr ""
55
+ "La vista previa solo está disponible después de guardar el primer borrador. "
56
+ "Esto se debe a\n"
57
+ " la forma en que WordPress almacena los datos."
58
 
59
+ #: includes/admin/class-admin.php:350
60
  msgid "Uninstall Business Directory Plugin"
61
  msgstr "Desinstalar Business Directory Plugin"
62
 
63
+ #: includes/admin/class-admin.php:351
64
  msgid "Uninstall"
65
  msgstr "Desinstalar"
66
 
67
+ #: includes/admin/class-csv-import.php:646
68
  msgid "Listing imported by admin. Payment skipped."
69
  msgstr "El listado fue importado por el administrador. No se realizó pago."
70
 
71
+ #: includes/admin/class-listing-owner.php:66
72
+ #: includes/admin/class-listing-owner.php:93
73
  msgid "Please select a user"
74
  msgstr "Por favor seleccione un usuario"
75
 
121
  msgid "Missing tables: %s"
122
  msgstr "Tablas faltantes: %s"
123
 
124
+ #: includes/admin/settings/class-settings-bootstrap.php:1116
125
  msgid ""
126
  "If you are using this gateway, we recommend you disable it if you wish to "
127
  "collect payments in this currency."
212
  msgstr "Buscar Listados"
213
 
214
  #: includes/class-cpt-integration.php:24
215
+ #, fuzzy
216
+ msgid "Directory Listings"
217
+ msgstr "Slug de listados"
218
+
219
+ #: includes/class-cpt-integration.php:25
220
  msgid "No listings found"
221
  msgstr "No se encontraron listados"
222
 
223
+ #: includes/class-cpt-integration.php:26
224
  msgid "No listings found in trash"
225
  msgstr "No se encontraron listados en la papelera"
226
 
227
+ #: includes/class-cpt-integration.php:47
228
  msgid "Directory Categories"
229
  msgstr "Categorías de Directorio"
230
 
231
+ #: includes/class-cpt-integration.php:48
232
  msgid "Directory Category"
233
  msgstr "Categoría de Directorio"
234
 
235
+ #: includes/class-cpt-integration.php:59
236
  msgid "Directory Tags"
237
  msgstr "Etiquetas de Directorio"
238
 
239
+ #: includes/class-cpt-integration.php:60
240
  msgid "Directory Tag"
241
  msgstr "Etiqueta de Directorio"
242
 
243
  #. translators: %s: listing count
244
+ #: includes/class-cpt-integration.php:254
245
  msgid "%s listing updated."
246
  msgid_plural "%s listings updated."
247
  msgstr[0] "%s listado actualizado."
248
  msgstr[1] "%s listados actualizados."
249
 
250
  #. translators: %s: listing count
251
+ #: includes/class-cpt-integration.php:256
252
  msgid "%s listing not updated, somebody is editing it."
253
  msgid_plural "%s listings not updated, somebody is editing them."
254
  msgstr[0] "%s listado no actualizado, alguien está editándolo."
255
  msgstr[1] "%s listados no actualizados, alguien los está editándonos."
256
 
257
  #. translators: %s: listing count
258
+ #: includes/class-cpt-integration.php:258
259
  msgid "%s listing permanently deleted."
260
  msgid_plural "%s listings permanently deleted."
261
  msgstr[0] "%s listado eliminado permanentemente."
262
  msgstr[1] "%s listados eliminados permanentemente."
263
 
264
  #. translators: %s: listing count
265
+ #: includes/class-cpt-integration.php:260
266
  msgid "%s listing moved to the Trash."
267
  msgid_plural "%s listings moved to the Trash."
268
  msgstr[0] "%s listado se trasladó a la Papelera."
269
  msgstr[1] "%s listados se trasladaron a la Papelera."
270
 
271
  #. translators: %s: listing count
272
+ #: includes/class-cpt-integration.php:262
273
  msgid "%s listing restored from the Trash."
274
  msgid_plural "%s listings restored from the Trash."
275
  msgstr[0] "%s listado restablecido de la Papelera."
357
  msgid "Free"
358
  msgstr "Gratuito"
359
 
360
+ #: includes/gateways/class-gateway-authorize-net.php:498
361
  msgid ""
362
  "An error occurred while trying to cancel your subscription. Please try again "
363
  "later or contact the site administrator."
365
  "Se ha producido un error al intentar cancelar la suscripción. Inténtelo de "
366
  "nuevo más tarde o póngase en contacto con el administrador del sitio."
367
 
368
+ #: includes/gateways/class-gateway-authorize-net.php:502
369
  msgid ""
370
  "An error occurred while trying to cancel Authorize.net subscription with ID "
371
  "%s. You can try again later or cancel subscription from gateway dashboard."
386
  msgid "The payment gateway \"<payment-gateway>\" is not available."
387
  msgstr "La pasarela de pago “<payment-gateway>” no está disponible."
388
 
389
+ #: includes/templates-ui.php:292
390
  msgid "Directory"
391
  msgstr "Directorio"
392
 
393
+ #: includes/templates-ui.php:301
394
  msgid "View All Listings"
395
  msgstr "Ver Todos los Listados"
396
 
397
+ #: includes/templates-ui.php:310
398
+ msgid "Manage Listings"
399
+ msgstr "Administrar Listados"
400
+
401
+ #: includes/templates-ui.php:319
402
  msgid "Create A Listing"
403
  msgstr "Crear un Listado"
404
 
406
  msgid "l F j, Y \\a\\t g:i a"
407
  msgstr "l F j, Y \\a\\t g:i a"
408
 
409
+ #: templates/admin/csv-export.tpl.php:6
410
+ msgid ""
411
+ "An unknown error occurred during the export. Please make sure you have "
412
+ "enough free disk space and memory available to PHP. Check your error logs "
413
+ "for details."
414
+ msgstr ""
415
+ "Un error desconocido ocurrió durante la exportación. Por favor revise que "
416
+ "tiene suficiente espacio en disco y memoria disponibles para PHP. Revise los "
417
+ "registros de error de su servidor para más detalles."
418
+
419
  #: templates/admin/home.tpl.php:53
420
  msgid "Manage Options"
421
  msgstr "Configuraciones"
469
  msgid "← Return to Directory"
470
  msgstr "← Regresar al Directorio"
471
 
472
+ #. Author URI of the plugin/theme
473
+ msgid "https://businessdirectoryplugin.com"
474
  msgstr ""
475
 
476
  #. Description of the plugin/theme
482
  "sitio de WordPress."
483
 
484
  #. Author of the plugin/theme
485
+ msgid "Business Directory Team"
 
 
 
 
486
  msgstr ""
487
 
488
  #: includes/admin/class-admin-controller.php:79
524
  msgid "Could not create listing category \"%s\""
525
  msgstr "No se pudo crear la categoría \"%s\""
526
 
527
+ #: includes/admin/class-csv-import.php:697
528
  msgctxt "admin csv-import"
529
  msgid "Username \"%s\" does not exist"
530
  msgstr "El usuario \"%s\" no existe"
531
 
532
+ #: includes/admin/class-csv-import.php:725
 
 
 
 
 
533
  msgctxt "admin csv-import"
534
  msgid "There is no Fee Plan with ID = <fee-id>"
535
  msgstr "No existe una comisión con ID = <fee-id>"
536
 
537
+ #: includes/admin/class-csv-import.php:756
538
  msgctxt "admin csv-import"
539
  msgid "Missing required field: %s"
540
  msgstr "Falta campo requerido: %s"
541
 
542
+ #: includes/admin/class-csv-import.php:781
543
  msgctxt "admin csv-import"
544
  msgid "Listing category \"%s\" does not exist"
545
  msgstr "La categoría \"%s\" no existe"
546
 
547
+ #: includes/admin/class-csv-import.php:846
548
+ msgctxt "admin csv-import"
549
+ msgid "The string <string> couldn't be converted into a valid date."
550
+ msgstr "La cadena <string> no pudo ser interpretada como una fecha válida."
551
+
552
  #: includes/admin/csv-import.php:130
553
  msgctxt "admin csv-import"
554
  msgid "Business %s"
1068
  msgid "Reported"
1069
  msgstr "Reportado"
1070
 
1071
+ #: includes/admin/class-admin-listings.php:723
1072
  msgctxt "admin listings"
1073
  msgid "Listing's payment history successfully deleted"
1074
  msgstr "El historial de pagos del listado se eliminó correctamente"
1113
  msgid "Categories"
1114
  msgstr "Categorías"
1115
 
1116
+ #: includes/admin/class-admin.php:245
1117
  msgctxt "admin"
1118
  msgid "Business Directory"
1119
  msgstr "Directorio de Negocios"
1120
 
1121
+ #: includes/admin/class-admin.php:256
1122
  msgctxt "admin"
1123
  msgid "You're all set. Visit your new <a>Business Directory</a> page."
1124
  msgstr ""
1125
  "Está todo listo. Visite la página de su nuevo <a>Directorio de Negocios</a>."
1126
 
1127
+ #: includes/admin/class-admin.php:380
1128
  msgctxt "admin"
1129
  msgid "Untitled Menu"
1130
  msgstr "Menú sin título"
1131
 
1132
+ #: includes/admin/class-admin.php:650
1133
  msgctxt "admin"
1134
  msgid "Dismiss this notice."
1135
  msgstr "Ignorar."
1136
 
1137
+ #: includes/admin/class-admin.php:681 includes/admin/class-admin.php:691
1138
  msgctxt "admin"
1139
  msgid "The listing has been updated."
1140
  msgid_plural "The listings have been updated."
1141
  msgstr[0] "El listado ha sido actualizado."
1142
  msgstr[1] "Los listados han sido actualizados."
1143
 
1144
+ #: includes/admin/class-admin.php:712
1145
  msgctxt "admin"
1146
  msgid "The fee was successfully assigned."
1147
  msgstr "La comisión se asignó satisfactoriamente."
1148
 
1149
+ #: includes/admin/class-admin.php:722
1150
  msgctxt "admin"
1151
  msgid "Listing was renewed."
1152
  msgid_plural "Listings were renewed."
1153
  msgstr[0] "El listado ha sido renovado."
1154
  msgstr[1] "Los listados fueron renovados."
1155
 
1156
+ #: includes/admin/class-admin.php:733
1157
  msgctxt "admin"
1158
  msgid "Renewal email sent."
1159
  msgstr "Mensaje de correo electrónico de renovación enviado."
1160
 
1161
+ #: includes/admin/class-admin.php:737
1162
  msgctxt "admin"
1163
  msgid ""
1164
  "Could not send renewal email, notice template at listing expiration not "
1167
  "No se pudo enviar el correo electrónico de renovación, no se encontró la "
1168
  "plantilla de notificación al momento de expirar e listado."
1169
 
1170
+ #: includes/admin/class-admin.php:744
1171
  msgctxt "admin"
1172
  msgid "Listing report deleted."
1173
  msgid_plural "Listing reports deleted."
1174
  msgstr[0] "Reporte eliminado."
1175
  msgstr[1] "Reportes eliminados."
1176
 
1177
+ #: includes/admin/class-admin.php:792
1178
  msgctxt "admin"
1179
  msgid "Access keys sent."
1180
  msgstr "Claves de acceso enviadas."
1181
 
1182
+ #: includes/admin/class-admin.php:794
1183
  msgctxt "admin"
1184
  msgid "The access keys couldn't be sent."
1185
  msgstr "No se pudo enviar las claves de acceso."
1186
 
1187
+ #: includes/admin/class-admin.php:860 includes/admin/class-admin.php:866
1188
  msgctxt "admin"
1189
  msgid "Listing Count"
1190
  msgstr "Conteo de Listados"
1191
 
1192
+ #: includes/admin/class-admin.php:928
1193
  msgctxt "admin"
1194
  msgid ""
1195
  "<b>Business Directory Plugin</b> requires a page with the "
1198
  "<b>Business Directory Plugin</b> requiere una página con el shortcode "
1199
  "<tt>[businessdirectory]</tt> para funcionar adecuadamente."
1200
 
1201
+ #: includes/admin/class-admin.php:930
1202
  msgctxt "admin"
1203
  msgid ""
1204
  "You can create this page by yourself or let Business Directory do this for "
1207
  "Puede crear esta página usted mismo o dejar que Business Directory lo haga "
1208
  "por usted automáticamente."
1209
 
1210
+ #: includes/admin/class-admin.php:934
1211
  msgctxt "admin"
1212
  msgid "Create required pages for me"
1213
  msgstr "Crear las páginas requeridas por mi"
1214
 
1215
+ #: includes/admin/class-admin.php:967
1216
  msgctxt "admin"
1217
  msgid ""
1218
  "<strong>Business Directory Plugin</strong> requires <strong>PHP 5.6</strong> "
1224
  "Por favor comuníquese con su proveedor de hosting para actualizar su sistema "
1225
  "y evitar problemas de compatibilidad."
1226
 
1227
+ #: includes/admin/class-admin.php:990
1228
  msgctxt "admin"
1229
  msgid ""
1230
  "We noticed you want your Business Directory users to register before posting "
1279
  "Puede crear estos campos usted mismo en \"Administrar Campos de Formulario\" "
1280
  "o puede dejar que Business Directory haga esto por usted automáticamente."
1281
 
1282
+ #: includes/admin/form-fields.php:214 includes/views/submit_listing.php:545
1283
  msgctxt "admin"
1284
  msgid "Go to \"Manage Form Fields\""
1285
  msgstr "Ir a \"Administrar Campos de Formulario\""
1299
  msgid "Abandoned"
1300
  msgstr "Abandonados"
1301
 
1302
+ #: includes/views/submit_listing.php:528
1303
  msgctxt "admin"
1304
  msgid "Go to \"Manage Fees\""
1305
  msgstr "Ir a \"Administrar Comisiones“"
1409
  msgid "Send access keys"
1410
  msgstr "Enviar claves de acceso"
1411
 
1412
+ #: includes/admin/class-admin.php:177
1413
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:75
1414
  msgctxt "listing metabox"
1415
  msgid "Never"
1416
  msgstr "Nunca"
1417
 
1418
+ #: includes/admin/class-admin.php:178
1419
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1420
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1421
  msgctxt "listing metabox"
1422
  msgid "Yes"
1423
  msgstr "Sí"
1424
 
1425
+ #: includes/admin/class-admin.php:179
1426
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:99
1427
  #: templates/admin/metaboxes-listing-information-plan.tpl.php:106
1428
  msgctxt "listing metabox"
1535
  msgid "Is Recurring?"
1536
  msgstr "¿Es recurrente?"
1537
 
1538
+ #: includes/admin/class-admin.php:216
1539
  msgctxt "drip pointer"
1540
  msgid ""
1541
  "Find out how to create a compelling, thriving business directory from "
1546
  "cero en este curso GRATUITO por e-mail de 5 partes. Obtenga un módulo "
1547
  "premium GRATIS solo por inscribirse."
1548
 
1549
+ #: includes/admin/class-admin.php:218
1550
  msgctxt "drip pointer"
1551
  msgid "Email Address:"
1552
  msgstr "Correo electrónico:"
1553
 
1554
+ #: includes/admin/class-admin.php:224
1555
  msgctxt "drip pointer"
1556
  msgid "Want to know the Secrets of Building an Awesome Business Directory?"
1557
  msgstr ""
1558
  "Quiere conocer los secretos para crear un Directorio de Negocios "
1559
  "impresionante?"
1560
 
1561
+ #: includes/admin/class-admin.php:226
1562
  msgctxt "drip pointer"
1563
  msgid "Yes, please!"
1564
  msgstr "Sí, por favor!"
1565
 
1566
+ #: includes/admin/class-admin.php:228
1567
  msgctxt "drip pointer"
1568
  msgid "No, thanks"
1569
  msgstr "No, gracias"
1570
 
1571
+ #: includes/admin/class-admin.php:276
1572
  msgctxt "drip pointer"
1573
  msgid "Invalid e-mail address."
1574
  msgstr "Dirección de correo-e inválida."
1575