Version Description
Download this release
Release Info
Developer | cklosows |
Plugin | Easy Digital Downloads |
Version | 2.7.12 |
Comparing to | |
See all releases |
Code changes from version 2.8.15 to 2.7.12
- assets/css/edd-admin.css +63 -358
- assets/css/edd-admin.min.css +1 -1
- assets/js/admin-backwards-compatibility.js +0 -73
- assets/js/admin-backwards-compatibility.min.js +0 -1
- assets/js/admin-scripts.js +61 -88
- assets/js/admin-scripts.min.js +1 -2
- assets/js/edd-ajax.js +16 -41
- assets/js/edd-ajax.min.js +1 -1
- assets/js/edd-checkout-global.js +0 -30
- assets/js/edd-checkout-global.min.js +1 -1
- assets/js/jquery.payment.min.js +0 -1
- easy-digital-downloads.php +4 -5
- includes/EDD_SL_Plugin_Updater.php +6 -20
- includes/actions.php +6 -4
- includes/admin/add-ons.php +22 -57
- includes/admin/admin-actions.php +0 -55
- includes/admin/customers/customer-actions.php +4 -18
- includes/admin/customers/customers.php +2 -2
- includes/admin/discounts/add-discount.php +10 -10
- includes/admin/discounts/discount-actions.php +1 -3
- includes/admin/discounts/edit-discount.php +5 -5
- includes/admin/downloads/metabox.php +275 -485
- includes/admin/import/class-batch-import-downloads.php +1 -1
- includes/admin/import/class-batch-import-payments.php +7 -19
- includes/admin/payments/class-payments-table.php +29 -107
- includes/admin/payments/view-order-details.php +17 -35
- includes/admin/reporting/class-categories-reports-table.php +0 -1
- includes/admin/reporting/class-file-downloads-logs-list-table.php +1 -10
- includes/admin/reporting/class-sales-logs-list-table.php +4 -5
- includes/admin/reporting/export/class-batch-export-payments.php +5 -12
- includes/admin/reporting/export/class-batch-export-sales.php +15 -19
- includes/admin/reporting/graphing.php +13 -14
- includes/admin/settings/register-settings.php +119 -166
- includes/admin/thickbox.php +0 -1
- includes/admin/tools.php +34 -132
- includes/admin/tools/class-edd-tools-recount-all-stats.php +2 -11
- includes/admin/tools/class-edd-tools-recount-download-stats.php +2 -11
- includes/admin/tools/class-edd-tools-recount-single-customer-stats.php +6 -15
- includes/admin/tools/class-edd-tools-recount-store-earnings.php +2 -11
- includes/admin/tools/class-edd-tools-reset-stats.php +2 -11
- includes/admin/tracking.php +17 -5
- includes/ajax-functions.php +9 -28
- includes/api/class-edd-api.php +6 -29
- includes/cart/class-edd-cart.php +9 -23
- includes/cart/functions.php +7 -0
- includes/checkout/functions.php +5 -23
- includes/checkout/template.php +5 -54
- includes/class-edd-cli.php +7 -23
- includes/class-edd-customer-query.php +0 -750
- includes/class-edd-customer.php +17 -37
- includes/class-edd-db-customers.php +218 -162
- includes/class-edd-discount.php +11 -18
- includes/class-edd-fees.php +0 -11
- includes/class-edd-html-elements.php +17 -71
- includes/class-edd-license-handler.php +4 -2
- includes/class-edd-logging.php +0 -147
- includes/class-edd-register-meta.php +1 -8
- includes/class-edd-session.php +7 -41
- includes/class-edd-stats.php +1 -1
- includes/country-functions.php +0 -51
- includes/deprecated-functions.php +1 -18
- includes/discount-functions.php +9 -74
- includes/emails/actions.php +4 -8
- includes/emails/class-edd-email-tags.php +7 -8
- includes/emails/class-edd-emails.php +1 -5
- includes/emails/functions.php +22 -68
- includes/emails/template.php +23 -21
- includes/error-tracking.php +7 -18
- includes/gateways/amazon-payments.php +0 -3
- includes/gateways/paypal-standard.php +16 -167
- includes/libraries/array2xml.php +0 -4
- includes/libraries/class-ArrayToXML.php +0 -134
- includes/login-register.php +7 -5
- includes/misc-functions.php +38 -25
- includes/payments/actions.php +23 -79
- includes/payments/class-edd-payment.php +41 -159
- includes/payments/class-payments-query.php +10 -83
- includes/payments/functions.php +9 -45
- includes/process-download.php +3 -8
- includes/process-purchase.php +32 -50
- includes/scripts.php +23 -54
- includes/shortcodes.php +40 -2
- includes/tax-functions.php +2 -2
- includes/template-actions.php +0 -34
- includes/template-functions.php +3 -44
- includes/user-functions.php +37 -66
- includes/widgets.php +1 -1
- languages/easy-digital-downloads.pot +1219 -1403
- readme.txt +31 -213
- templates/edd.css +12 -37
- templates/edd.min.css +1 -1
- templates/history-downloads.php +1 -1
- templates/history-purchases.php +2 -2
- templates/shortcode-download.php +0 -56
- templates/shortcode-login.php +2 -4
- templates/shortcode-profile-editor.php +4 -3
- templates/shortcode-receipt.php +6 -8
- templates/shortcode-register.php +1 -9
- templates/widget-cart-item.php +1 -1
assets/css/edd-admin.css
CHANGED
@@ -64,13 +64,6 @@ a.edd-delete:hover {
|
|
64 |
z-index: 9999 !important;
|
65 |
}
|
66 |
|
67 |
-
.download_page_edd-settings .edd-settings-payment-icon-wrapper {
|
68 |
-
margin-right:10px;
|
69 |
-
line-height:16px;
|
70 |
-
height:16px;
|
71 |
-
display: table;
|
72 |
-
}
|
73 |
-
|
74 |
/* =Add Ons Styles
|
75 |
-------------------------------------------------------------- */
|
76 |
|
@@ -89,9 +82,6 @@ a.edd-delete:hover {
|
|
89 |
#edd-add-ons h2 {
|
90 |
margin: 0 0 15px;
|
91 |
}
|
92 |
-
.edd-add-ons-view-wrapper {
|
93 |
-
height: 50px;
|
94 |
-
}
|
95 |
#edd-add-ons h2 .button-primary {
|
96 |
position: absolute;
|
97 |
}
|
@@ -141,34 +131,13 @@ a.edd-delete:hover {
|
|
141 |
height: 100px;
|
142 |
min-width: 200px;
|
143 |
}
|
144 |
-
#edd-add-discount input[type="
|
145 |
-
#edd-edit-discount input[type="
|
146 |
-
width:
|
147 |
-
}
|
148 |
-
|
149 |
-
#edd-add-discount input.edd-price-field,
|
150 |
-
#edd-edit-discount input.edd-price-field {
|
151 |
-
padding: 3px 5px;
|
152 |
-
width: 75px;
|
153 |
}
|
154 |
|
155 |
/* Payment History Styles
|
156 |
-------------------------------------------------------------- */
|
157 |
-
.edit-php.post-type-download .wrap .wp-heading-inline,
|
158 |
-
.download_page_edd-addons .wrap .wp-heading-inline {
|
159 |
-
display: none;
|
160 |
-
}
|
161 |
-
|
162 |
-
.edit-php.post-type-download .wrap > .page-title-action,
|
163 |
-
.download_page_edd-addons .wrap > .page-title-action {
|
164 |
-
display: none;
|
165 |
-
}
|
166 |
-
|
167 |
-
.edit-php.post-type-download .wrap .nav-tab-wrapper .page-title-action,
|
168 |
-
.download_page_edd-addons .wrap .nav-tab-wrapper .page-title-action {
|
169 |
-
top: 7px;
|
170 |
-
margin-left: 5px;
|
171 |
-
}
|
172 |
|
173 |
#edd-payment-filters {
|
174 |
background: #f5f5f5;
|
@@ -194,9 +163,6 @@ a.edd-delete:hover {
|
|
194 |
#edd-payment-filters p {
|
195 |
color: #777;
|
196 |
}
|
197 |
-
#edd-payment-date-filters input {
|
198 |
-
vertical-align: middle;
|
199 |
-
}
|
200 |
tr.status-refunded td {
|
201 |
background: #cecece;
|
202 |
border-top-color: #ccc;
|
@@ -242,6 +208,8 @@ tr.status-refunded td {
|
|
242 |
/* Metabox Styles
|
243 |
-------------------------------------------------------------- */
|
244 |
|
|
|
|
|
245 |
.edd_files_name_label {
|
246 |
width: 225px;
|
247 |
float: left;
|
@@ -256,204 +224,20 @@ tr.status-refunded td {
|
|
256 |
#postbox-container-1 .edd_files_url_label {
|
257 |
width: 80px;
|
258 |
}
|
259 |
-
.
|
260 |
-
margin: 10px 0;
|
261 |
-
}
|
262 |
-
.edd-add-repeatable-row .submit {
|
263 |
-
padding: 0 !important;
|
264 |
-
}
|
265 |
-
.edd_variable_prices_wrapper:not(:first-child),
|
266 |
-
.edd_repeatable_upload_wrapper:not(:first-child) {
|
267 |
-
margin-top: 12px;
|
268 |
-
}
|
269 |
-
.edd-repeatable-row-actions {
|
270 |
-
color: #777;
|
271 |
-
font-size: 12px;
|
272 |
-
}
|
273 |
-
.edd-repeatable-row-actions a {
|
274 |
-
text-decoration: none;
|
275 |
-
width: auto;
|
276 |
-
cursor: pointer;
|
277 |
-
vertical-align: middle;
|
278 |
-
}
|
279 |
-
.edd-repeatable-row-actions .toggle-custom-price-option-section {
|
280 |
-
color: #777;
|
281 |
-
}
|
282 |
-
.edd-repeatable-row-actions .toggle-custom-price-option-section:hover {
|
283 |
-
color: #444;
|
284 |
-
}
|
285 |
-
.edd-repeatable-row-header,
|
286 |
-
.edd-bundle-products-header {
|
287 |
-
clear: both;
|
288 |
-
background: #f1f1f1;
|
289 |
-
border: 1px solid #e5e5e5;
|
290 |
-
}
|
291 |
-
.edd-repeatable-row-header {
|
292 |
-
cursor: move;
|
293 |
-
}
|
294 |
-
.edd-repeatable-row-header:before,
|
295 |
-
.edd-repeatable-row-header:after,
|
296 |
-
.edd-bundled-product-row:before,
|
297 |
-
.edd-bundled-product-row:after {
|
298 |
-
content: '';
|
299 |
-
display: table;
|
300 |
-
}
|
301 |
-
.edd-repeatable-row-header:after,
|
302 |
-
.edd-bundled-product-row:after {
|
303 |
-
clear: both;
|
304 |
-
}
|
305 |
-
.edd-repeatable-row-title {
|
306 |
-
float: left;
|
307 |
-
font-weight: 600;
|
308 |
-
}
|
309 |
-
.edd-bundled-product-item-reorder .edd-product-file-reorder {
|
310 |
-
color: #e5e5e5;
|
311 |
-
font-family: "dashicons";
|
312 |
-
content: "\f545";
|
313 |
-
font-size: 18px;
|
314 |
-
font-weight: 300;
|
315 |
-
margin-left: 4px;
|
316 |
-
vertical-align: top;
|
317 |
-
transition: .2s color;
|
318 |
-
}
|
319 |
-
.edd-bundled-product-item-reorder .edd-product-file-reorder:hover {
|
320 |
-
color: #bbb;
|
321 |
-
}
|
322 |
-
.edd-repeatable-row-title,
|
323 |
-
.edd-repeatable-row-actions {
|
324 |
-
padding: 8px;
|
325 |
-
box-sizing: border-box;
|
326 |
-
}
|
327 |
-
.edd-repeatable-row-actions {
|
328 |
-
float: right;
|
329 |
-
text-align: right;
|
330 |
-
padding: 8px;
|
331 |
-
}
|
332 |
-
.edd-repeatable-row-actions .edd-remove-row,
|
333 |
-
.edd-bundled-product-row .edd-remove-row {
|
334 |
-
font-size: 12px;
|
335 |
-
width: auto;
|
336 |
-
cursor: pointer;
|
337 |
-
}
|
338 |
-
.edd-repeatable-row-standard-fields,
|
339 |
-
.edd-bundled-product-row {
|
340 |
-
background: #f9f9f9;
|
341 |
-
padding: 8px;
|
342 |
-
border-width: 0 1px 1px;
|
343 |
-
border-style: solid;
|
344 |
-
border-color: #e5e5e5;
|
345 |
-
}
|
346 |
-
.edd-repeatable-row-setting-label {
|
347 |
-
display: block;
|
348 |
-
margin-bottom: 4px;
|
349 |
-
}
|
350 |
-
.edd-repeatable-row-setting-label .edd-help-tip {
|
351 |
-
display: inline-block;
|
352 |
-
margin-left: 4px;
|
353 |
-
}
|
354 |
-
.edd-option-name,
|
355 |
-
.edd-option-price,
|
356 |
-
.edd_repeatable_default,
|
357 |
-
.edd-file-name,
|
358 |
-
.edd-file-url,
|
359 |
-
.edd-file-assignment,
|
360 |
-
.edd-bundled-product-row .edd-bundled-product-item-reorder,
|
361 |
-
.edd-bundled-product-row .edd-bundled-product-item,
|
362 |
-
.edd-bundled-product-row .edd-bundled-product-price-assignment,
|
363 |
-
.edd-bundled-product-row .edd-bundled-product-actions {
|
364 |
display: inline-block;
|
365 |
-
vertical-align: top;
|
366 |
}
|
367 |
-
.
|
368 |
-
|
369 |
-
margin-right: 5%;
|
370 |
-
}
|
371 |
-
.edd-option-price {
|
372 |
-
min-width: 100px;
|
373 |
-
}
|
374 |
-
.edd_repeatable_default {
|
375 |
-
text-align: center;
|
376 |
-
min-width: 80px;
|
377 |
-
}
|
378 |
-
.edd-file-name {
|
379 |
-
width: 18%;
|
380 |
-
margin-right: 3%;
|
381 |
-
}
|
382 |
-
.edd-file-url {
|
383 |
-
width: 65%;
|
384 |
-
}
|
385 |
-
.edd-repeatable-row-standard-fields.has-variable-pricing .edd-file-url {
|
386 |
-
width: 38%;
|
387 |
-
margin-right: 5%;
|
388 |
-
}
|
389 |
-
.edd-file-assignment {
|
390 |
-
width: 27%;
|
391 |
-
}
|
392 |
-
.edd-file-assignment .edd-repeatable-row-setting-label {
|
393 |
-
margin-bottom: 0;
|
394 |
}
|
395 |
-
.
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
border-color: #e5e5e5;
|
400 |
-
box-sizing: border-box;
|
401 |
width: 100%;
|
402 |
}
|
403 |
-
.
|
404 |
-
|
405 |
-
padding: 10px 8px;
|
406 |
-
border-bottom: 1px solid rgba( 222, 222, 222, 0.3 );
|
407 |
-
}
|
408 |
-
.edd-custom-price-option-section:last-child {
|
409 |
-
border-bottom: none;
|
410 |
-
}
|
411 |
-
label.edd_prices_shipping { /* remove once Simple Shipping markup is improved */
|
412 |
-
display: none !important;
|
413 |
-
}
|
414 |
-
.edd-custom-price-option-section-title {
|
415 |
-
display: block;
|
416 |
-
font-size: 14px;
|
417 |
-
font-weight: 600;
|
418 |
-
padding: 0 0 10px;
|
419 |
-
}
|
420 |
-
.edd-custom-price-option-section > *:not(.edd-custom-price-option-section-title) {
|
421 |
-
display: inline-block;
|
422 |
-
padding-right: 20px;
|
423 |
-
vertical-align: top;
|
424 |
-
margin-bottom: 4px;
|
425 |
-
}
|
426 |
-
.edd-custom-price-option-section > *:not(.edd-custom-price-option-section-title) label {
|
427 |
-
display: block;
|
428 |
-
margin-bottom: 2px;
|
429 |
-
}
|
430 |
-
.edd-bundle-products-header {
|
431 |
-
font-weight: 600;
|
432 |
-
padding: 8px;
|
433 |
-
}
|
434 |
-
.edd-bundled-product-row .edd-bundled-product-item-reorder {
|
435 |
-
min-width: 30px;
|
436 |
-
margin-right: 8px;
|
437 |
-
}
|
438 |
-
.edd-bundled-product-row .edd-bundled-product-item-reorder .edd-product-file-reorder {
|
439 |
-
font-size: 20px;
|
440 |
-
font-weight: 300;
|
441 |
-
padding: 16px 4px 0;
|
442 |
-
cursor: move;
|
443 |
-
}
|
444 |
-
.edd-bundled-product-row .edd-bundled-product-item {
|
445 |
-
width: 60%;
|
446 |
-
margin-right: 3%;
|
447 |
-
}
|
448 |
-
.edd-bundled-product-row.has-variable-pricing .edd-bundled-product-item {
|
449 |
-
width: 47%;
|
450 |
-
}
|
451 |
-
.edd-bundled-product-row .edd-bundled-product-price-assignment {
|
452 |
-
width: 23%;
|
453 |
-
margin-right: 3%;
|
454 |
-
}
|
455 |
-
.edd-bundled-product-row .edd-bundled-product-actions {
|
456 |
-
float: right;
|
457 |
}
|
458 |
.edd_repeatable_upload_wrapper .edd_repeatable_upload_field_container {
|
459 |
position: relative;
|
@@ -463,12 +247,36 @@ label.edd_prices_shipping { /* remove once Simple Shipping markup is improved */
|
|
463 |
display: block;
|
464 |
padding: 2px 8px 2px;
|
465 |
position: absolute;
|
466 |
-
top:
|
467 |
right: 7px;
|
468 |
}
|
469 |
.edd_upload_field {
|
470 |
padding-right: 8em;
|
471 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
472 |
textarea#edd-payment-note {
|
473 |
width: 100%;
|
474 |
height: 4em;
|
@@ -502,28 +310,13 @@ input[class*="edd-price-field"] {
|
|
502 |
min-width: 100%;
|
503 |
}
|
504 |
#edd_product_notes_field {
|
505 |
-
|
506 |
-
|
507 |
height: 4em;
|
508 |
-
width: 100%;
|
509 |
}
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
border: none;
|
514 |
-
cursor: pointer;
|
515 |
-
display: inline-block;
|
516 |
-
padding: 0;
|
517 |
-
overflow: hidden;
|
518 |
-
margin: 8px 0 0 0;
|
519 |
-
text-indent: -9999px;
|
520 |
-
width: 10px;
|
521 |
-
height: 10px;
|
522 |
-
}
|
523 |
-
.edd_remove_repeatable:active,
|
524 |
-
.edd_remove_repeatable:hover,
|
525 |
-
.edd_remove_repeatable:focus {
|
526 |
-
background-position: -10px 0 !important;
|
527 |
}
|
528 |
|
529 |
/* Payment Details
|
@@ -540,9 +333,6 @@ input[class*="edd-price-field"] {
|
|
540 |
#edd-edit-order-form .column:nth-child(2n+1) {
|
541 |
margin-right: 0;
|
542 |
}
|
543 |
-
#edd-edit-order-form input.large-text {
|
544 |
-
width: 90%;
|
545 |
-
}
|
546 |
.edd-edit-purchase-element ul li.download {
|
547 |
width: 35%;
|
548 |
}
|
@@ -689,9 +479,6 @@ input[class*="edd-price-field"] {
|
|
689 |
font-size: 14px;
|
690 |
font-weight: 500;
|
691 |
}
|
692 |
-
.edd-edit-purchase-element .edd-purchased-download-title .deleted {
|
693 |
-
color: #777;
|
694 |
-
}
|
695 |
.edd-edit-purchase-element .edd-purchased-download-actions {
|
696 |
color: #777;
|
697 |
line-height: 1.4;
|
@@ -991,8 +778,6 @@ td.edd_order_price {
|
|
991 |
padding: 12px 12px 4px;
|
992 |
overflow: auto;
|
993 |
margin: 20px -12px -23px;
|
994 |
-
position: relative;
|
995 |
-
width: 100%;
|
996 |
}
|
997 |
.edd-import-export-form .notice-wrap .spinner {
|
998 |
margin: 4px 10px 8px;
|
@@ -1182,6 +967,23 @@ td.edd_order_price {
|
|
1182 |
clear: both;
|
1183 |
}
|
1184 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1185 |
/* System Info page styles
|
1186 |
-------------------------------------------------------------- */
|
1187 |
|
@@ -1225,8 +1027,7 @@ td.edd_order_price {
|
|
1225 |
-------------------------------------------------------------- */
|
1226 |
|
1227 |
.edd-select-chosen {
|
1228 |
-
width:
|
1229 |
-
max-width: 300px;
|
1230 |
}
|
1231 |
.chosen-container-multi .chosen-choices {
|
1232 |
background-image: none;
|
@@ -1334,10 +1135,6 @@ td.edd_order_price {
|
|
1334 |
width: 100%;
|
1335 |
min-height: 230px;
|
1336 |
}
|
1337 |
-
|
1338 |
-
#edd-edit-order-form input.large-text {
|
1339 |
-
width: 100%;
|
1340 |
-
}
|
1341 |
}
|
1342 |
|
1343 |
/* Customer Styles
|
@@ -1671,8 +1468,7 @@ td.edd_order_price {
|
|
1671 |
#edd-item-card-wrapper .customer-section {
|
1672 |
margin-bottom: 0;
|
1673 |
}
|
1674 |
-
#edd-item-card-wrapper .widefat td,
|
1675 |
-
#edd-item-card-wrapper .widefat th {
|
1676 |
padding: 4px 6px;
|
1677 |
max-width: 100px!important;
|
1678 |
display: table-cell;
|
@@ -1692,88 +1488,6 @@ td.edd_order_price {
|
|
1692 |
#edd-item-tab-wrapper-list li:nth-child(even) {
|
1693 |
border-width: 0 0 1px 0;
|
1694 |
}
|
1695 |
-
.edd-repeatable-row-title,
|
1696 |
-
.edd-repeatable-row-actions {
|
1697 |
-
text-align: left;
|
1698 |
-
width: 100%;
|
1699 |
-
}
|
1700 |
-
.edd-repeatable-row-title {
|
1701 |
-
padding-bottom: 0;
|
1702 |
-
}
|
1703 |
-
.edd-option-name,
|
1704 |
-
.edd-option-price,
|
1705 |
-
.edd_repeatable_default,
|
1706 |
-
.edd-bundled-product-item-reorder,
|
1707 |
-
.edd-bundled-product-row .edd-bundled-product-item,
|
1708 |
-
.edd-bundled-product-row .edd-bundled-product-price-assignment,
|
1709 |
-
.edd-file-name,
|
1710 |
-
.edd-file-url,
|
1711 |
-
.edd-file-assignment {
|
1712 |
-
float: none;
|
1713 |
-
text-align: left;
|
1714 |
-
width: 100% !important;
|
1715 |
-
margin: 10px 0;
|
1716 |
-
}
|
1717 |
-
.edd-bundled-product-row .edd-bundled-product-actions {
|
1718 |
-
float: none;
|
1719 |
-
}
|
1720 |
-
.edd-bundled-product-row .edd-bundled-product-item-reorder .edd-product-file-reorder {
|
1721 |
-
padding: 0;
|
1722 |
-
}
|
1723 |
-
|
1724 |
-
#edd-payment-filters span {
|
1725 |
-
display: block;
|
1726 |
-
margin: 2px 0;
|
1727 |
-
}
|
1728 |
-
|
1729 |
-
#edd-payment-filters a,
|
1730 |
-
.download_page_edd-reports .button {
|
1731 |
-
text-align: center;
|
1732 |
-
}
|
1733 |
-
|
1734 |
-
#edd-payment-date-filters span {
|
1735 |
-
display: block;
|
1736 |
-
}
|
1737 |
-
#edd-payment-date-filters span > input {
|
1738 |
-
float: right;
|
1739 |
-
}
|
1740 |
-
|
1741 |
-
#edd-add-discount select[multiple] option,
|
1742 |
-
#edd-edit-discount select[multiple] option {
|
1743 |
-
height: 20px;
|
1744 |
-
}
|
1745 |
-
|
1746 |
-
.download_page_edd-tools .inside input[type="text"],
|
1747 |
-
.download_page_edd-tools .inside select,
|
1748 |
-
.download_page_edd-tools .inside input[type="submit"],
|
1749 |
-
.download_page_edd-settings .inside input[type="button"],
|
1750 |
-
.download_page_edd-reports .inside input[type="text"],
|
1751 |
-
.download_page_edd-reports .inside select,
|
1752 |
-
.download_page_edd-reports .inside input[type="submit"],
|
1753 |
-
.download_page_edd-reports .inside .button,
|
1754 |
-
#system-info-textarea,
|
1755 |
-
#edd-add-discount input[type="text"],
|
1756 |
-
#edd-edit-discount input[type="text"],
|
1757 |
-
#edd-payment-filters input:not([type='radio']),
|
1758 |
-
#edd-payment-filters select,
|
1759 |
-
#edd-payment-filters a {
|
1760 |
-
width: 100%;
|
1761 |
-
}
|
1762 |
-
|
1763 |
-
#edd-add-discount select[multiple],
|
1764 |
-
#edd-edit-discount select[multiple],
|
1765 |
-
.download_page_edd-tools select[multiple] {
|
1766 |
-
height: 200px !important;
|
1767 |
-
}
|
1768 |
-
|
1769 |
-
.download_page_edd-settings input[type="checkbox"] {
|
1770 |
-
margin: 2px 0;
|
1771 |
-
}
|
1772 |
-
|
1773 |
-
.post-type-download input[type="checkbox"] {
|
1774 |
-
margin-left: 2px;
|
1775 |
-
}
|
1776 |
-
|
1777 |
}
|
1778 |
|
1779 |
/* Tools Styles
|
@@ -1786,12 +1500,3 @@ td.edd_order_price {
|
|
1786 |
display: none;
|
1787 |
line-height: 24px;
|
1788 |
}
|
1789 |
-
|
1790 |
-
#edd-debug-log p.submit {
|
1791 |
-
margin: 20px 0 0;
|
1792 |
-
padding: 0;
|
1793 |
-
}
|
1794 |
-
|
1795 |
-
#edd-debug-log .edd-inline-button {
|
1796 |
-
margin-left: 5px;
|
1797 |
-
}
|
64 |
z-index: 9999 !important;
|
65 |
}
|
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
/* =Add Ons Styles
|
68 |
-------------------------------------------------------------- */
|
69 |
|
82 |
#edd-add-ons h2 {
|
83 |
margin: 0 0 15px;
|
84 |
}
|
|
|
|
|
|
|
85 |
#edd-add-ons h2 .button-primary {
|
86 |
position: absolute;
|
87 |
}
|
131 |
height: 100px;
|
132 |
min-width: 200px;
|
133 |
}
|
134 |
+
#edd-add-discount input[type="checkbox"],
|
135 |
+
#edd-edit-discount input[type="checkbox"] {
|
136 |
+
width: 15px;
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
}
|
138 |
|
139 |
/* Payment History Styles
|
140 |
-------------------------------------------------------------- */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
|
142 |
#edd-payment-filters {
|
143 |
background: #f5f5f5;
|
163 |
#edd-payment-filters p {
|
164 |
color: #777;
|
165 |
}
|
|
|
|
|
|
|
166 |
tr.status-refunded td {
|
167 |
background: #cecece;
|
168 |
border-top-color: #ccc;
|
208 |
/* Metabox Styles
|
209 |
-------------------------------------------------------------- */
|
210 |
|
211 |
+
.edd_file_help_labels {
|
212 |
+
}
|
213 |
.edd_files_name_label {
|
214 |
width: 225px;
|
215 |
float: left;
|
224 |
#postbox-container-1 .edd_files_url_label {
|
225 |
width: 80px;
|
226 |
}
|
227 |
+
.edd_add_repeatable {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
display: inline-block;
|
|
|
229 |
}
|
230 |
+
.edd_repeatable_row td {
|
231 |
+
vertical-align: middle;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
}
|
233 |
+
#downloadinformation .edd_meta_table_wrap table input,
|
234 |
+
#downloadinformation .edd_meta_table_wrap table select,
|
235 |
+
#downloadinformation .edd_meta_table_wrap table textarea {
|
236 |
+
margin: 4px 0;
|
|
|
|
|
237 |
width: 100%;
|
238 |
}
|
239 |
+
#downloadinformation .edd_meta_table_wrap table .submit input {
|
240 |
+
width: auto;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
}
|
242 |
.edd_repeatable_upload_wrapper .edd_repeatable_upload_field_container {
|
243 |
position: relative;
|
247 |
display: block;
|
248 |
padding: 2px 8px 2px;
|
249 |
position: absolute;
|
250 |
+
top: 2px;
|
251 |
right: 7px;
|
252 |
}
|
253 |
.edd_upload_field {
|
254 |
padding-right: 8em;
|
255 |
}
|
256 |
+
.edd_remove_repeatable {
|
257 |
+
border: none;
|
258 |
+
cursor: pointer;
|
259 |
+
display: inline-block;
|
260 |
+
padding: 0;
|
261 |
+
overflow: hidden;
|
262 |
+
margin: 8px 0 0 0;
|
263 |
+
text-indent: -9999px;
|
264 |
+
width: 10px;
|
265 |
+
height: 10px;
|
266 |
+
}
|
267 |
+
.edd_remove_repeatable:active,
|
268 |
+
.edd_remove_repeatable:hover,
|
269 |
+
.edd_remove_repeatable:focus {
|
270 |
+
background-position: -10px 0!important;
|
271 |
+
}
|
272 |
+
.edd_draghandle {
|
273 |
+
background: url(../images/edd-cross-hair.png);
|
274 |
+
cursor: move;
|
275 |
+
display: block;
|
276 |
+
margin: 4px 0 0 0;
|
277 |
+
width: 20px;
|
278 |
+
height: 20px;
|
279 |
+
}
|
280 |
textarea#edd-payment-note {
|
281 |
width: 100%;
|
282 |
height: 4em;
|
310 |
min-width: 100%;
|
311 |
}
|
312 |
#edd_product_notes_field {
|
313 |
+
margin: 0;
|
314 |
+
width: 98%;
|
315 |
height: 4em;
|
|
|
316 |
}
|
317 |
+
.edd_repeatable_default_wrapper {
|
318 |
+
text-align: center;
|
319 |
+
width: 25px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
320 |
}
|
321 |
|
322 |
/* Payment Details
|
333 |
#edd-edit-order-form .column:nth-child(2n+1) {
|
334 |
margin-right: 0;
|
335 |
}
|
|
|
|
|
|
|
336 |
.edd-edit-purchase-element ul li.download {
|
337 |
width: 35%;
|
338 |
}
|
479 |
font-size: 14px;
|
480 |
font-weight: 500;
|
481 |
}
|
|
|
|
|
|
|
482 |
.edd-edit-purchase-element .edd-purchased-download-actions {
|
483 |
color: #777;
|
484 |
line-height: 1.4;
|
778 |
padding: 12px 12px 4px;
|
779 |
overflow: auto;
|
780 |
margin: 20px -12px -23px;
|
|
|
|
|
781 |
}
|
782 |
.edd-import-export-form .notice-wrap .spinner {
|
783 |
margin: 4px 10px 8px;
|
967 |
clear: both;
|
968 |
}
|
969 |
|
970 |
+
/* Taxonomy styles
|
971 |
+
-------------------------------------------------------------- */
|
972 |
+
|
973 |
+
.post-type-download .fixed .column-name {
|
974 |
+
width: 27%;
|
975 |
+
}
|
976 |
+
.post-type-download .fixed .column-description {
|
977 |
+
width: 30%;
|
978 |
+
}
|
979 |
+
.post-type-download .fixed .column-slug {
|
980 |
+
width: 23%;
|
981 |
+
}
|
982 |
+
.post-type-download .fixed .column-posts {
|
983 |
+
text-align: left;
|
984 |
+
width: 17%;
|
985 |
+
}
|
986 |
+
|
987 |
/* System Info page styles
|
988 |
-------------------------------------------------------------- */
|
989 |
|
1027 |
-------------------------------------------------------------- */
|
1028 |
|
1029 |
.edd-select-chosen {
|
1030 |
+
width: 300px;
|
|
|
1031 |
}
|
1032 |
.chosen-container-multi .chosen-choices {
|
1033 |
background-image: none;
|
1135 |
width: 100%;
|
1136 |
min-height: 230px;
|
1137 |
}
|
|
|
|
|
|
|
|
|
1138 |
}
|
1139 |
|
1140 |
/* Customer Styles
|
1468 |
#edd-item-card-wrapper .customer-section {
|
1469 |
margin-bottom: 0;
|
1470 |
}
|
1471 |
+
#edd-item-card-wrapper .widefat td, .widefat th {
|
|
|
1472 |
padding: 4px 6px;
|
1473 |
max-width: 100px!important;
|
1474 |
display: table-cell;
|
1488 |
#edd-item-tab-wrapper-list li:nth-child(even) {
|
1489 |
border-width: 0 0 1px 0;
|
1490 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1491 |
}
|
1492 |
|
1493 |
/* Tools Styles
|
1500 |
display: none;
|
1501 |
line-height: 24px;
|
1502 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/css/edd-admin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#edd-add-ons .edd-extension .third-party,.download_page_edd-addons .wrap .wp-heading-inline,.download_page_edd-addons .wrap>.page-title-action,.edd-hidden,.edit-php.post-type-download .wrap .wp-heading-inline,.edit-php.post-type-download .wrap>.page-title-action{display:none}#edd-payment-date-filters input,.edd-mobile-link{vertical-align:middle}.edd-clearfix:after{content:".";display:block;height:0;text-indent:-9999px;visibility:hidden}.edd-wrap a{text-decoration:none}a.edd-delete{color:#a00}a.edd-delete:hover{color:red}.download_page_edd-settings .form-table label{color:#666;font-size:14px;font-style:italic;margin:4px 0 0}.download_page_edd-settings .form-table input.small-text~label,.download_page_edd-settings .form-table input[type=checkbox]+label{display:inline}.download_page_edd-settings .form-table tr>th>h3,.download_page_edd-settings .form-table tr>th>strong{font-size:1.2em;font-weight:600;margin:0 auto}.edd-help-tip{cursor:help}.edd-ui-tooltip{background:#333!important;border-width:1px!important;border-radius:3px!important;box-shadow:1px 1px 2px 1px rgba(214,214,214,.5)!important;color:#dedede!important;max-width:300px!important;padding:7px!important;text-rendering:optimizeLegibility;text-shadow:none!important;z-index:9999!important}.download_page_edd-settings .edd-settings-payment-icon-wrapper{margin-right:10px;line-height:16px;height:16px;display:table}#edd-add-ons h2.nav-tab-wrapper{position:relative}#edd-add-ons h2 .button-primary,.edd-tab-span{position:absolute}.edd-tab-span{top:-6px;right:0}.edd-add-ons-footer{padding-top:10px}#edd-add-ons h2{margin:0 0 15px}.edd-add-ons-view-wrapper{height:50px}#edd-add-ons .edd-extension{background:#fff;border:1px solid #ccc;float:left;padding:14px;position:relative;margin:0 15px 15px 0;width:320px;height:315px}#edd-add-ons .edd-extension h3{font-size:13px;margin:0 0 8px}#edd-add-ons .edd-extension .button-secondary{position:absolute;bottom:14px;left:14px}#edd-add-ons .edd-browse-all{clear:both;width:100%}#edd-add-ons .edd-starter-package{background-color:#85c0e5;border-color:#62a9d7;color:#fff}#edd-add-ons .edd-starter-package h3{color:#fff}#edd-payment-filters p,.edd-repeatable-row-actions .toggle-custom-price-option-section{color:#777}#edd-add-ons .edd-extension .wp-post-image{width:100%;height:auto}#edd-products{height:100px;min-width:200px}#edd-add-discount input[type=text],#edd-edit-discount input[type=text]{width:300px}#edd-add-discount input.edd-price-field,#edd-edit-discount input.edd-price-field{padding:3px 5px;width:75px}.download_page_edd-addons .wrap .nav-tab-wrapper .page-title-action,.edit-php.post-type-download .wrap .nav-tab-wrapper .page-title-action{top:7px;margin-left:5px}#edd-payment-filters{background:#f5f5f5;clear:both;background-image:-webkit-gradient(linear,left bottom,left top,from(#f5f5f5),to(#fafafa));background-image:-webkit-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-moz-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-o-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:linear-gradient(to top,#f5f5f5,#fafafa);border-color:#dfdfdf;border-width:1px;border-style:solid;border-radius:3px;font-size:13px;line-height:2.1em;overflow:auto;padding:12px;margin:8px 0}#edd-payments-filter ul.subsubsub{margin-bottom:8px}tr.status-refunded td{background:#cecece;border-top-color:#ccc}.wp-list-table.downloads th#ID{width:80px}.wp-list-table.downloads th#details{width:130px}.wp-list-table.downloads th#date{width:140px}.wp-list-table.downloads th#user{width:130px}.edd-mobile-link{line-height:32px}.edd-mobile-link img{max-width:80%;height:auto;float:left}@media handheld,only screen and (max-width:640px){.wp-list-table.downloads th{width:auto!important}}.download_page_edd-payment-history .ui-dialog .ui-dialog-titlebar-close span{margin-left:-8px;margin-top:-8px}#edd-download-link-textarea{width:100%}.edd_files_name_label{width:225px;float:left}.edd_files_url_label{width:220px;float:left}#postbox-container-1 .edd_files_name_label,#postbox-container-1 .edd_files_url_label{width:80px}.edd-add-repeatable-row{margin:10px 0}.edd-add-repeatable-row .submit{padding:0!important}.edd_repeatable_upload_wrapper:not(:first-child),.edd_variable_prices_wrapper:not(:first-child){margin-top:12px}.edd-repeatable-row-actions{color:#777;font-size:12px}.edd-repeatable-row-actions a{text-decoration:none;width:auto;cursor:pointer;vertical-align:middle}.edd-repeatable-row-actions .toggle-custom-price-option-section:hover{color:#444}.edd-bundle-products-header,.edd-repeatable-row-header{clear:both;background:#f1f1f1;border:1px solid #e5e5e5}.edd-repeatable-row-header{cursor:move}.edd-bundled-product-row:after,.edd-bundled-product-row:before,.edd-repeatable-row-header:after,.edd-repeatable-row-header:before{content:'';display:table}.edd-bundled-product-row:after,.edd-repeatable-row-header:after{clear:both}.edd-repeatable-row-title{float:left;font-weight:600}.edd-admin-box .right,.edd-bundled-product-row .edd-bundled-product-actions{float:right}.edd-bundled-product-item-reorder .edd-product-file-reorder{color:#e5e5e5;font-family:dashicons;content:"\f545";font-size:18px;font-weight:300;margin-left:4px;vertical-align:top;transition:.2s color}.edd-bundled-product-item-reorder .edd-product-file-reorder:hover{color:#bbb}.edd-repeatable-row-actions,.edd-repeatable-row-title{padding:8px;box-sizing:border-box}.edd-repeatable-row-actions{float:right;text-align:right;padding:8px}.edd-bundled-product-row .edd-remove-row,.edd-repeatable-row-actions .edd-remove-row{font-size:12px;width:auto;cursor:pointer}.edd-bundled-product-row,.edd-repeatable-row-standard-fields{background:#f9f9f9;padding:8px;border-width:0 1px 1px;border-style:solid;border-color:#e5e5e5}.edd-repeatable-row-setting-label{display:block;margin-bottom:4px}.edd-repeatable-row-setting-label .edd-help-tip{display:inline-block;margin-left:4px}.edd-bundled-product-row .edd-bundled-product-actions,.edd-bundled-product-row .edd-bundled-product-item,.edd-bundled-product-row .edd-bundled-product-item-reorder,.edd-bundled-product-row .edd-bundled-product-price-assignment,.edd-file-assignment,.edd-file-name,.edd-file-url,.edd-option-name,.edd-option-price,.edd_repeatable_default{display:inline-block;vertical-align:top}.edd-option-name{width:38%;margin-right:5%}.edd-option-price{min-width:100px}.edd_repeatable_default{text-align:center;min-width:80px}.edd-file-name{width:18%;margin-right:3%}.edd-file-url{width:65%}.edd-repeatable-row-standard-fields.has-variable-pricing .edd-file-url{width:38%;margin-right:5%}.edd-file-assignment{width:27%}.edd-file-assignment .edd-repeatable-row-setting-label{margin-bottom:0}.edd-custom-price-option-sections-wrap{display:none;border-width:0 1px 1px;border-style:solid;border-color:#e5e5e5;box-sizing:border-box;width:100%}.edd-custom-price-option-section{display:block;padding:10px 8px;border-bottom:1px solid rgba(222,222,222,.3)}.edd-custom-price-option-section:last-child{border-bottom:none}label.edd_prices_shipping{display:none!important}.edd-custom-price-option-section-title{display:block;font-size:14px;font-weight:600;padding:0 0 10px}.edd-custom-price-option-section>:not(.edd-custom-price-option-section-title){display:inline-block;padding-right:20px;vertical-align:top;margin-bottom:4px}.edd-custom-price-option-section>:not(.edd-custom-price-option-section-title) label{display:block;margin-bottom:2px}.edd-bundle-products-header{font-weight:600;padding:8px}.edd-bundled-product-row .edd-bundled-product-item-reorder{min-width:30px;margin-right:8px}.edd-bundled-product-row .edd-bundled-product-item-reorder .edd-product-file-reorder{font-size:20px;font-weight:300;padding:16px 4px 0;cursor:move}.edd-admin-box .label,.edd-admin-box-inside .strong{font-weight:600}.edd-bundled-product-row .edd-bundled-product-item{width:60%;margin-right:3%}.edd-bundled-product-row.has-variable-pricing .edd-bundled-product-item{width:47%}.edd-bundled-product-row .edd-bundled-product-price-assignment{width:23%;margin-right:3%}.edd_repeatable_upload_wrapper .edd_repeatable_upload_field_container{position:relative}.edd_upload_file{background:#fff;display:block;padding:2px 8px;position:absolute;top:3px;right:7px}.edd_upload_field{padding-right:8em}textarea#edd-payment-note{width:100%;height:4em;margin:0}#edd-purchased-files .row .edd-purchased-files-list-wrapper .download{line-height:1.4}#edd-purchased-files .edd-purchased-files-list-wrapper .edd-purchased-option{color:#666}input[class*=edd-price-field]{padding:3px 5px;width:75px}#edd-order-download-quantity[type=number].small-text,#edd-order-download-tax[type=text].small-text,[class*=item_] [class*=edd-payment-details-download-][type=number].small-text{height:25px}#edd-order-download-quantity[type=number].small-text,.item_price .edd-payment-details-download-quantity[type=number].small-text{width:55px}#edd-order-download-tax[type=text].small-text,.item_tax .edd-payment-details-download-item-tax[type=number].small-text{width:75px}.edd_repeatable_product_wrapper .edd-select,.edd_repeatable_upload_wrapper .pricing select{min-width:100%}#edd_product_notes_field{display:block;margin:12px 0 0;height:4em;width:100%}.edd_remove_repeatable{border:none;cursor:pointer;display:inline-block;padding:0;overflow:hidden;margin:8px 0 0;text-indent:-9999px;width:10px;height:10px}.edd_remove_repeatable:active,.edd_remove_repeatable:focus,.edd_remove_repeatable:hover{background-position:-10px 0!important}#edd-edit-order-form .column{width:32%}.edd-edit-purchase-element[class*=columns-] ul li{padding-right:1%}#edd-edit-order-form .column:nth-child(2n+1),#edd-edit-order-form .columns-4 .column:nth-child(2n+1),#edd-edit-order-form .columns-5 .column:nth-child(3n+1){margin-right:0}#edd-edit-order-form input.large-text{width:90%}.edd-edit-purchase-element ul li.download{width:35%}.edd-edit-purchase-element ul li.item_price{width:15%}.edd-edit-purchase-element ul li.item_price.item_quantity{width:25%}.edd-edit-purchase-element ul li.item_tax{width:15%}.edd-edit-purchase-element ul li.price{width:20%}.edd-admin-box-inside{border-bottom:1px solid #eee;clear:both;padding:3px 12px;margin:0;word-break:break-word}.rtl .edd-admin-box-inside{padding:5px 10px 5px 0}.edd-payment-fees .fee-label{color:#666;font-weight:400}.rtl .edd-admin-box .right{float:left;margin-left:10px}#edd-customer-details .actions,#edd-order-recalc-total{float:right}#edd-order-details .inside,#edd-order-update .inside{margin:0;padding:0}#edd-order-update input.edd_datepicker{width:180px}#edd-order-update input[type=number].edd-payment-time-hour,#edd-order-update input[type=number].edd-payment-time-min{width:50px}#edd-order-update .edd-tax-rate{color:#9c9c9c;font-style:italic}#edd-order-resend-receipt .inside{margin-top:11px}#edd-order-resend-receipt .edd-order-resend-receipt-addresses{margin-top:10px}.edd-admin-box-inside:last-child{border-bottom:0}#edd-edit-order-form .data-payment-key{word-break:break-all}.edd-order-update-box #major-publishing-actions .button-secondary{margin-right:10px}.edd-edit-purchase-element .edd-select-chosen{width:196px}#edd-customer-details .order-data-address input,#edd-customer-details .order-data-column p.data input,#edd-edit-order-form .column input,#edd-order-address-country-wrap select,.edd-edit-purchase-element ul{clear:both;display:block}#edd-customer-details .customer-info .column{width:49%}.edd-order-data input.small-text{margin:0}.edd-order-data input.med-text{margin:0;width:100px}#edd-order-update span.label{display:inline;width:50px}.edd-order-update-box .button-primary{margin-right:0}#edd-edit-order-form .column .description{padding-right:10px}#edd-edit-order-form .column,.edd-edit-purchase-element ul li{display:inline-block;line-height:1.4;position:relative;margin:0;vertical-align:middle}.edd-edit-purchase-element .row{padding:12px}.edd-edit-purchase-element .row:not(:last-child){border-bottom:1px solid #eee}.edd-edit-purchase-element .row:nth-child(odd):not(.header){background-color:#f9f9f9}.edd-edit-purchase-element .row.header{padding:6px 12px;font-weight:600;vertical-align:top}.edd-edit-purchase-element ul{font-size:0}.edd-edit-purchase-element ul li{font-size:13px}#edd-order-data .data span{color:#666;font-weight:600}.edd-edit-purchase-element .inside{padding:12px}.edd-edit-purchase-element .edd-purchased-download-title{font-size:14px;font-weight:500}.edd-edit-purchase-element .edd-purchased-download-title .deleted{color:#777}.edd-edit-purchase-element .edd-purchased-download-actions{color:#777;line-height:1.4}.edd-edit-purchase-element .edd-purchased-download-actions .edd-purchased-download-actions-label{font-weight:500}.edd-edit-purchase-element .edd-purchased-download-actions a{color:#777;font-size:12px}.edd-edit-purchase-element .edd-purchased-download-actions a:hover{color:#444}.edd-edit-purchase-element .edd-purchased-download-actions .edd-order-remove-download{color:#a00}.edd-edit-purchase-element .edd-purchased-download-actions .edd-order-remove-download:hover{color:red}#edd_products .edd-select,.edd_repeatable_product_wrapper .edd-select,.edd_repeatable_upload_wrapper .pricing select{min-width:100%;max-width:200px}.edd_repeatable_product_wrapper td{overflow:visible}.edd-payment-details-label-mobile{display:none}@media screen and (max-width:1284px){.edd-edit-purchase-element ul li.download{padding-bottom:15px;width:100%}.edd-edit-purchase-element .edd-purchased-download-title{font-size:16px}.edd-edit-purchase-element ul li.item_price{width:22%}.edd-edit-purchase-element ul li.item_price.item_quantity{width:35%}.edd-edit-purchase-element ul li.item_tax{width:25%}.edd-edit-purchase-element ul li.price{width:20%}.edd-edit-purchase-element .edd-purchased-download-actions{padding-top:10px}.edd-add-download-to-purchase-header,.edd-purchased-files-header{display:none}.edd-payment-details-label-mobile{display:block;font-weight:500;padding-bottom:6px}}@media screen and (max-width:1024px){.edd-edit-purchase-element ul li.item_price.item_quantity{width:40%}.edd-edit-purchase-element ul li.price{width:24%}.edd-edit-purchase-element .edd-purchased-download-actions{padding-top:15px}.edd-edit-purchase-element .edd-purchased-download-actions,.edd-edit-purchase-element .edd-purchased-download-actions a{font-size:14px}}@media screen and (max-width:782px){#edd-edit-order-form .column{width:49%}.edd-edit-purchase-element ul li.item_price,.edd-edit-purchase-element ul li.item_price.item_quantity{padding-bottom:10px}.edd-edit-purchase-element ul li.item_price.item_quantity{width:35%}.edd-edit-purchase-element ul li.item_tax,.edd-edit-purchase-element ul li.price{width:20%;padding-bottom:10px}.edd-payment-details-label-mobile{font-size:14px;font-weight:500}.edd-payment-details-download-amount,.edd-price-currency{font-size:16px}.order-data-column input[type=email]{padding:6px 10px}}@media screen and (max-width:600px){.edd-edit-purchase-element ul li.item_price,.edd-edit-purchase-element ul li.item_price.item_quantity,.edd-edit-purchase-element ul li.item_tax{width:100%;padding-bottom:20px}.edd-edit-purchase-element .edd-add-download-to-purchase ul li.item_tax,.edd-edit-purchase-element ul li.price{width:100%;padding-bottom:0}.edd-edit-purchase-element .edd-add-download-to-purchase-actions{padding-top:15px}#edd-edit-order-form .column{width:100%}}#edd_product_stats .label{display:inline-block}#edd_product_stats hr{border-style:solid;border-width:1px;border-color:#ccc #fff #fff #ccc}#edd_product_stats .product-earnings-stats:before,#edd_product_stats .product-sales-stats:before{color:#82878c;font:400 20px/1 dashicons;display:inline-block;padding:0 2px 0 0;position:relative;top:0;left:-1px;speak:none;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#edd-item-card-wrapper a.delete,#edd-item-stats-wrapper a,.customer-edit-link a,.disconnect-user a,.wrap-licenses .edd-license-data.edd-license-expired a:hover,.wrap-licenses .edd-license-data.license-expires-soon-notice a:hover,.wrap-licenses .edd-license-data[class*=edd-license-] a:hover{text-decoration:none}#edd_product_stats .product-sales-stats:before{content:'\f174'}#edd_product_stats .product-earnings-stats:before{content:'\f239'}.edd_dashboard_widget table thead td{border-bottom:1px solid #ececec;color:#777}.edd_dashboard_widget .table_left{float:left;width:45%}.edd_dashboard_widget .table_right{float:right;width:45%}.edd_dashboard_widget .inside{font-size:12px}.edd_dashboard_widget td{padding:3px 0}.edd_dashboard_widget .b,.edd_dashboard_widget .t{line-height:1.5;vertical-align:middle}.edd_dashboard_widget .b{font-size:14px;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;padding-right:6px;width:auto}.edd_dashboard_widget .t{font-size:12px;padding-right:12px;color:#777;width:100%}.edd_dashboard_widget .label_heading{border-top:1px solid #ececec;color:#8f8f8f;font-family:Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;display:block;padding-top:10px;margin:0 0 8px 12px}.edd_dashboard_widget .edd_dashboard_widget_subheading{border-top:1px solid #ececec;color:#8f8f8f;font-size:14px;padding-top:10px;margin:1em 0 0}.edd_dashboard_widget .edd_dashboard_widget_subheading+.table{margin:8px 0 0}.edd_dashboard_widget .edd_price_label{background:#00769c;border-radius:3px;color:#fff;font-size:10px;padding:2px 4px;margin-right:2px}.edd_dashboard_widget table{width:100%;margin-left:0;margin-bottom:1em}td.edd_order_label{width:80%}td.edd_order_price{text-align:right}@media handheld,only screen and (max-width:1000px){.edd_dashboard_widget .edd-recent-email{display:none}}#edd-dashboard-widgets-wrap .postbox h3{cursor:default}#edd-date-range-options,#edd-graphs-date-options{float:left}#edd-date-range-options span{float:left;line-height:24px;height:24px;margin-right:6px}.edd-import-export-form{position:relative}.edd-import-export-form .edd-progress{background:#ddd;position:absolute;bottom:15px;width:95%;height:15px}.edd-import-export-form .edd-progress div{background:#ccc;height:100%;width:0}.edd-import-export-form .notice-wrap{background-color:#f4f4f4;border-style:solid;border-width:1px 0;border-color:#eae9e9;padding:12px 12px 4px;overflow:auto;margin:20px -12px -23px;position:relative;width:100%}.edd-import-export-form .notice-wrap .spinner{margin:4px 10px 8px;float:right}.admin-color-fresh .edd-import-export-form .edd-progress div{background:#0073aa}.admin-color-light .edd-import-export-form .edd-progress div{background:#888}.admin-color-blue .edd-import-export-form .edd-progress div{background:#096484}.admin-color-coffee .edd-import-export-form .edd-progress div{background:#c7a589}.admin-color-ectoplasm .edd-import-export-form .edd-progress div{background:#a3b745}.admin-color-midnight .edd-import-export-form .edd-progress div{background:#e14d43}.admin-color-sunrise .edd-import-export-form .edd-progress div{background:#dd823b}#edd-graphs-filter label{vertical-align:inherit}#edd-graphs-filter .graph-option-section{float:left;line-height:2.5em;padding-right:5px}.edd-mix-totals{background-color:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);padding:10px}.edd-mix-chart{display:inline-block;width:49%;vertical-align:top}.edd-graph-notes{color:#9c9c9c}.edd-graph-notes span{display:block}.edd-pie-graph .legend{display:none}.edd-pie-legend{overflow:auto;margin-top:10px}.edd-legend-item-wrapper{color:#333;display:inline-block;font-size:8pt;padding:2px 5px 0;width:48%;height:20px}.edd-legend-color{border:1px solid #cfcfcf;display:inline-block;margin-right:5px;width:20px;height:15px}.edd-pie-legend-item{display:inline-block;vertical-align:top;width:80%}#edd_tax_rates{margin:1em 0 0}#edd_tax_rates .edd_tax_country *,#edd_tax_rates .edd_tax_state *{max-width:100%}#edd_tax_rates .edd_tax_country,#edd_tax_rates .edd_tax_state{width:180px}#edd_tax_rates .edd_tax_rate{width:80px}#edd_tax_rates th{padding:15px 10px}.wrap-licenses .form-table,.wrap-licenses caption,.wrap-licenses tbody,.wrap-licenses td,.wrap-licenses tfoot,.wrap-licenses th,.wrap-licenses thead,.wrap-licenses tr{display:block}.wrap-licenses .form-table tr{float:left;margin:0 15px 15px 0;background:#fff;border:1px solid #ccc;width:30.5%;max-width:350px;padding:14px;min-height:220px;position:relative;box-sizing:border-box}.wrap-licenses .form-table th{background:#f9f9f9;padding:14px;border-bottom:1px solid #ccc;margin:-14px -14px 20px;width:100%}.wrap-licenses .form-table td{padding:0}.wrap-licenses td input.regular-text{margin:0 0 8px;width:100%}.wrap-licenses .edd-license-data[class*=edd-license-]{position:absolute;background:#fafafa;padding:14px;border-top:1px solid #eee;margin:20px -14px -14px;min-height:67px;width:100%;bottom:14px;box-sizing:border-box}.wrap-licenses .edd-license-data[class*=edd-license-] a{color:#444}.wrap-licenses .edd-license-data.license-expires-soon-notice{background-color:#00a0d2;color:#fff;border-color:#00a0d2}.wrap-licenses .edd-license-data.edd-license-expired{background-color:#e24e4e;color:#fff;border-color:#e24e4e}.wrap-licenses .edd-license-data.edd-license-error,.wrap-licenses .edd-license-data.edd-license-invalid,.wrap-licenses .edd-license-data.edd-license-item_name_mismatch,.wrap-licenses .edd-license-data.edd-license-missing,.wrap-licenses .edd-license-data.edd-license-site_inactive{background-color:#ffebcd;border-color:#ffebcd}.wrap-licenses .edd-license-data p{font-size:13px;margin-top:0}.wrap-licenses .edd-license-data.edd-license-expired a,.wrap-licenses .edd-license-data.license-expires-soon-notice a{color:#fff}.wrap-licenses p.submit{clear:both}#system-info-textarea{background:0 0;font-family:Menlo,Monaco,monospace;display:block;overflow:auto;white-space:pre;width:800px;height:400px}#TB_window #edd-add-download:active,#TB_window #edd-add-download:focus,#TB_window #edd-add-download:hover{color:#fff}.edd-graph .y1Axis{color:#edc240!important}.edd-graph .y2Axis{color:#afd8f8!important}.download_page_edd-tools .apikeys .column-user{width:192px}.edd-select-chosen{width:100%;max-width:300px}.chosen-container-multi .chosen-choices{background-image:none;border-color:#dfdfdf;-webkit-border-radius:3px;border-radius:3px}.chosen-container-multi .chosen-choices input{border-color:#dfdfdf;height:27px!important;margin:2px}.chosen-container .chosen-drop{border-color:#aaa;-webkit-box-shadow:1px 1px 2px rgba(0,0,0,.1);box-shadow:1px 1px 2px rgba(0,0,0,.1)}.chosen-container .search-field{float:none!important}.chosen-container .search-field input{width:90%!important}.chosen-container-active .chosen-choices{border-color:#aaa;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-webkit-border-bottom-left-radius:0;-webkit-box-shadow:1px 1px 2px rgba(0,0,0,.1);box-shadow:1px 1px 2px rgba(0,0,0,.1);border-radius:3px 3px 0 0}.download_page_edd-tools .tablenav .actions{overflow:visible}.edd_user_search_wrap{position:relative;overflow:visible}.edd_user_search_results{position:absolute;left:0;top:27px}.edd_user_search_results a.edd-ajax-user-cancel{position:absolute;right:6px;top:2px}.edd_user_search_results ul{background:#f0f0f0;border:1px solid #dfdfdf;overflow-y:scroll;padding:10px 10px 4px;margin:0;max-height:200px;width:300px}.wp-list-table .type-download .row-actions{color:#999}@media screen and (max-width:1100px){.edd-mix-chart{display:block;width:100%}.wrap-licenses .form-table tr{width:46%;max-width:none;min-height:230px}}@media screen and (max-width:782px){.post-type-download .nav-tab-wrapper a{font-size:70%;padding:2px 4px}.download_page_edd-tools .apikeys .column-user{width:80px}.license-expiration-date-notice,.license-lifetime-notice,.license-null{padding-left:0}[class^=license-] input[type=text]{margin-bottom:3px}}#edd-item-tab-wrapper-list li a,#edd-item-tab-wrapper-list li.active{display:block;padding:8px 10px 8px 6px}@media screen and (max-width:600px){.wrap-licenses .form-table tr{width:100%;min-height:230px}#edd-edit-order-form input.large-text{width:100%}}#edd-item-wrapper{background:#f5f5f5;border:1px solid #e5e5e5;webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);max-width:830px}#edd-item-wrapper:after{content:"";display:block;clear:both;visibility:hidden;font-size:0;height:0}#edd-item-tab-wrapper{float:left;width:18%;z-index:1}#edd-item-tab-wrapper-list{background:#fff;margin:0}#edd-item-tab-wrapper-list li{display:block;background-color:#eaeaea;color:#444;font-size:12px;border-bottom:1px solid #e5e5e5;margin-bottom:0;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;word-wrap:break-word}#edd-item-tab-wrapper-list li.active{background-color:#fff}#edd-item-tab-wrapper-list .inactive a,#edd-item-tab-wrapper-list .inactive a:visited{background-color:#f5f5f5;color:#444;text-decoration:none}#edd-item-tab-wrapper-list .inactive a:hover{background-color:#fff}#edd-item-tab-wrapper-list .dashicons{color:#444;font-size:16px;min-width:24px;height:auto}#edd-item-card-wrapper .left{float:left}#edd-item-card-wrapper .right{float:right}#edd-item-card-wrapper input{font-weight:400}#edd-item-card-wrapper .customer-id,.customer-info .customer-name{font-size:24px;font-weight:600}#edd-item-card-wrapper{background-color:#fff;border:1px solid #e5e5e5;display:inline-block;margin-left:-1px;min-height:200px;width:700px;z-index:2}.edd-item-has-tabs #edd-item-card-wrapper{border-width:0 0 0 1px;width:82%}#edd-item-card-wrapper .customer-section{border-bottom:1px solid #eee;margin-bottom:10px;overflow:auto}#edd-item-card-wrapper .customer-section table{margin-bottom:20px}#edd-item-card-wrapper>div{padding:0 20px}#edd-item-card-wrapper>div:first-child{padding-top:20px}#edd-item-card-wrapper>div:last-child{border:none;padding-bottom:20px}#edd-item-card-wrapper .avatar-wrap{padding-right:10px;text-align:center}#edd-item-card-wrapper .customer-main-wrapper input{width:200px}#edd-item-card-wrapper .customer-address-wrapper{margin-right:25px;max-width:33%;width:202px}#edd-item-card-wrapper .customer-address-wrapper select{width:200px}#edd-item-card-wrapper .customer-info{margin-top:5px;margin-bottom:10px;min-height:185px}#edd-item-card-wrapper .info-wrapper{min-height:125px;overflow:visible}#edd-item-card-wrapper a.delete{color:red;margin-right:5px}.customer-edit-link a,.disconnect-user a{font-size:12px;font-weight:400}#customer-edit-actions{line-height:28px;margin-bottom:20px;text-align:center}#customer-edit-actions .button-secondary{margin-right:10px}#edd-item-card-wrapper .row-title{width:30%}#edd-item-card-wrapper .info-item{display:block;line-height:16px;padding-bottom:5px}#edd-item-card-wrapper .edit-item{display:none}#edd-item-card-wrapper .edd_user_search_results{left:1px;top:16px}#edd-item-card-wrapper .edd_user_search_results ul{width:200px}#edd-item-stats-wrapper{margin:0 auto;min-height:30px;text-align:center}#edd-item-stats-wrapper li{font-size:14px;float:left;line-height:22px;width:50%}#edd-item-stats-wrapper .dashicons{color:#888}#edd-item-tables-wrapper table{text-align:center;width:100%}#edd-item-tables-wrapper th{text-align:center}#edd-item-tables-wrapper .downloads tr>td:first-child,#edd-item-tables-wrapper .downloads tr>th:first-child,#edd-item-tables-wrapper .emails tr>td:first-child,#edd-item-tables-wrapper .emails tr>th:first-child{text-align:left}#edd-item-tables-wrapper .downloads tr>td:only-child,.delete-customer{text-align:center}#edd-item-tables-wrapper .emails .add-customer-email-row td{background-color:#f9f9f9;border-top:1px solid #e5e5e5}#edd-item-tables-wrapper .emails .primary-email-icon{font-size:13px;vertical-align:middle;line-height:1.5em}#edd-item-tables-wrapper .emails input{vertical-align:middle;margin:6px 0}#edd-item-tables-wrapper .emails .spinner{float:none}#edd-item-notes-wrapper{min-height:50px}.edd-item-notes-header img,.edd-item-notes-header span{font-weight:600;line-height:30px;vertical-align:middle}.customer-note-input{margin-bottom:5px;width:100%}#edd-customer-notes div:nth-of-type(even){background-color:#fcfcfc}.customer-note-wrapper{border-bottom:1px solid #f9f9f9;min-height:38px;padding:7px 0 7px 7px}.customer-note-wrapper span{display:block}.note-content-wrap{padding-top:7px}#edd-item-card-wrapper .notice-wrap{padding-left:20px;padding-right:20px;margin-left:-20px;margin-right:-20px}@media screen and (max-width:810px) and (min-width:656px){.customer-info .customer-name{font-size:16px}#edd-item-card-wrapper .widefat td,.widefat th{padding:4px 6px;max-width:100px!important;display:table-cell}}@media screen and (max-width:781px){#edd-item-card-wrapper,#edd-item-tab-wrapper{margin:0;width:100%}#edd-item-tab-wrapper-list{background:#fff;margin:0}#edd-item-tab-wrapper-list li{float:left;display:inline;font-size:14px;box-sizing:border-box;border-width:0 1px 1px 0;border-style:solid;border-color:#e5e5e5;width:33.33333%}#edd-item-tab-wrapper-list li:nth-child(3n+3){border-width:0 0 1px}#edd-item-tab-wrapper-list .dashicons{font-size:18px}.edd-item-has-tabs #edd-item-card-wrapper{border-top:1px solid #e5e5e5;border-left:0;margin-top:-1px;width:100%}}@media screen and (max-width:656px){#edd-item-card-wrapper .customer-id,.customer-info .customer-name{font-size:16px}#edd-item-card-wrapper .customer-info{min-height:220px}.edd-item-info.customer-info{position:relative}#edd-item-card-wrapper .customer-address-wrapper{float:none;position:absolute;top:84px;left:110px;max-width:200px}#edd-item-card-wrapper .customer-main-wrapper{float:none;position:absolute;left:110px}#edd-item-card-wrapper #edd-item-stats-wrapper{padding-left:0;padding-right:0}#edd-item-card-wrapper .customer-section{margin-bottom:0}#edd-item-card-wrapper .widefat td,#edd-item-card-wrapper .widefat th{padding:4px 6px;max-width:100px!important;display:table-cell;overflow:hidden}}@media screen and (max-width:480px){#edd-item-tab-wrapper-list li{width:50%}#edd-item-tab-wrapper-list li:nth-child(3n+3){border-width:0 1px 1px 0}#edd-item-tab-wrapper-list li:nth-child(even){border-width:0 0 1px}.edd-repeatable-row-actions,.edd-repeatable-row-title{text-align:left;width:100%}.edd-repeatable-row-title{padding-bottom:0}.edd-bundled-product-item-reorder,.edd-bundled-product-row .edd-bundled-product-item,.edd-bundled-product-row .edd-bundled-product-price-assignment,.edd-file-assignment,.edd-file-name,.edd-file-url,.edd-option-name,.edd-option-price,.edd_repeatable_default{float:none;text-align:left;width:100%!important;margin:10px 0}.edd-bundled-product-row .edd-bundled-product-actions{float:none}.edd-bundled-product-row .edd-bundled-product-item-reorder .edd-product-file-reorder{padding:0}#edd-payment-filters span{display:block;margin:2px 0}#edd-payment-filters a,.download_page_edd-reports .button{text-align:center}#edd-payment-date-filters span{display:block}#edd-payment-date-filters span>input{float:right}#edd-add-discount select[multiple] option,#edd-edit-discount select[multiple] option{height:20px}#edd-add-discount input[type=text],#edd-edit-discount input[type=text],#edd-payment-filters a,#edd-payment-filters input:not([type=radio]),#edd-payment-filters select,#system-info-textarea,.download_page_edd-reports .inside .button,.download_page_edd-reports .inside input[type=submit],.download_page_edd-reports .inside input[type=text],.download_page_edd-reports .inside select,.download_page_edd-settings .inside input[type=button],.download_page_edd-tools .inside input[type=submit],.download_page_edd-tools .inside input[type=text],.download_page_edd-tools .inside select{width:100%}#edd-add-discount select[multiple],#edd-edit-discount select[multiple],.download_page_edd-tools select[multiple]{height:200px!important}.download_page_edd-settings input[type=checkbox]{margin:2px 0}.post-type-download input[type=checkbox]{margin-left:2px}}.recount-stats-controls form{display:inline}.edd-recount-stats-descriptions span{display:none;line-height:24px}#edd-debug-log p.submit{margin:20px 0 0;padding:0}#edd-debug-log .edd-inline-button{margin-left:5px}
|
1 |
+
.edd-hidden{display:none}.edd-clearfix:after{content:".";display:block;height:0;text-indent:-9999px;visibility:hidden}.edd-wrap a{text-decoration:none}a.edd-delete{color:#a00}a.edd-delete:hover{color:red}.download_page_edd-settings .form-table label{color:#666;font-size:14px;font-style:italic;margin:4px 0 0}.download_page_edd-settings .form-table input.small-text ~ label,.download_page_edd-settings .form-table input[type="checkbox"] + label{display:inline}.download_page_edd-settings .form-table tr > th > strong,.download_page_edd-settings .form-table tr > th > h3{font-size:1.2em;font-weight:600;margin:0 auto}.edd-help-tip{cursor:help}.edd-ui-tooltip{background:#333!important;border-width:1px!important;border-radius:3px!important;box-shadow:1px 1px 2px 1px rgba(214,214,214,0.5)!important;color:#dedede!important;max-width:300px!important;padding:7px!important;text-rendering:optimizeLegibility;text-shadow:none!important;z-index:9999!important}#edd-add-ons h2.nav-tab-wrapper{position:relative}.edd-tab-span{top:-6px;right:0;position:absolute}.edd-add-ons-footer{padding-top:10px}#edd-add-ons h2{margin:0 0 15px}#edd-add-ons h2 .button-primary{position:absolute}#edd-add-ons .edd-extension{background:#fff;border:1px solid #ccc;float:left;padding:14px;position:relative;margin:0 15px 15px 0;width:320px;height:315px}#edd-add-ons .edd-extension h3{font-size:13px;margin:0 0 8px}#edd-add-ons .edd-extension .button-secondary{position:absolute;bottom:14px;left:14px}#edd-add-ons .edd-browse-all{clear:both;width:100%}#edd-add-ons .edd-extension .third-party{display:none}#edd-add-ons .edd-starter-package{background-color:#85c0e5;border-color:#62a9d7;color:#fff}#edd-add-ons .edd-starter-package h3{color:#fff}#edd-add-ons .edd-extension .wp-post-image{width:100%;height:auto}#edd-products{height:100px;min-width:200px}#edd-add-discount input[type="checkbox"],#edd-edit-discount input[type="checkbox"]{width:15px}#edd-payment-filters{background:#f5f5f5;clear:both;background-image:-webkit-gradient(linear,left bottom,left top,from(#f5f5f5),to(#fafafa));background-image:-webkit-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-moz-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-o-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:linear-gradient(to top,#f5f5f5,#fafafa);border-color:#dfdfdf;border-width:1px;border-style:solid;border-radius:3px;font-size:13px;line-height:2.1em;overflow:auto;padding:12px;margin:8px 0}#edd-payments-filter ul.subsubsub{margin-bottom:8px}#edd-payment-filters p{color:#777}tr.status-refunded td{background:#cecece;border-top-color:#ccc}.wp-list-table.downloads th#ID{width:80px}.wp-list-table.downloads th#details{width:130px}.wp-list-table.downloads th#date{width:140px}.wp-list-table.downloads th#user{width:130px}.edd-mobile-link{line-height:32px;vertical-align:middle}.edd-mobile-link img{max-width:80%;height:auto;float:left}@media handheld,only screen and (max-width: 640px){.wp-list-table.downloads th{width:auto!important}}.download_page_edd-payment-history .ui-dialog .ui-dialog-titlebar-close span{margin-left:-8px;margin-top:-8px}#edd-download-link-textarea{width:100%}.edd_files_name_label{width:225px;float:left}.edd_files_url_label{width:220px;float:left}#postbox-container-1 .edd_files_name_label{width:80px}#postbox-container-1 .edd_files_url_label{width:80px}.edd_add_repeatable{display:inline-block}.edd_repeatable_row td{vertical-align:middle}#downloadinformation .edd_meta_table_wrap table input,#downloadinformation .edd_meta_table_wrap table select,#downloadinformation .edd_meta_table_wrap table textarea{margin:4px 0;width:100%}#downloadinformation .edd_meta_table_wrap table .submit input{width:auto}.edd_repeatable_upload_wrapper .edd_repeatable_upload_field_container{position:relative}.edd_upload_file{background:#fff;display:block;padding:2px 8px;position:absolute;top:2px;right:7px}.edd_upload_field{padding-right:8em}.edd_remove_repeatable{border:none;cursor:pointer;display:inline-block;padding:0;overflow:hidden;margin:8px 0 0;text-indent:-9999px;width:10px;height:10px}.edd_remove_repeatable:active,.edd_remove_repeatable:hover,.edd_remove_repeatable:focus{background-position:-10px 0!important}.edd_draghandle{background:url(../images/edd-cross-hair.png);cursor:move;display:block;margin:4px 0 0;width:20px;height:20px}textarea#edd-payment-note{width:100%;height:4em;margin:0}#edd-purchased-files .row .edd-purchased-files-list-wrapper .download{line-height:1.4}#edd-purchased-files .edd-purchased-files-list-wrapper .edd-purchased-option{color:#666}input[class*="edd-price-field"]{padding:3px 5px;width:75px}[class*="item_"] [class*="edd-payment-details-download-"][type="number"].small-text,#edd-order-download-quantity[type="number"].small-text,#edd-order-download-tax[type="text"].small-text{height:25px}.item_price .edd-payment-details-download-quantity[type="number"].small-text,#edd-order-download-quantity[type="number"].small-text{width:55px}.item_tax .edd-payment-details-download-item-tax[type="number"].small-text,#edd-order-download-tax[type="text"].small-text{width:75px}.edd_repeatable_upload_wrapper .pricing select,.edd_repeatable_product_wrapper .edd-select{min-width:100%}#edd_product_notes_field{margin:0;width:98%;height:4em}.edd_repeatable_default_wrapper{text-align:center;width:25px}#edd-edit-order-form .column{width:32%}.edd-edit-purchase-element[class*="columns-"] ul li{padding-right:1%}#edd-edit-order-form .columns-4 .column:nth-child(2n+1),#edd-edit-order-form .columns-5 .column:nth-child(3n+1),#edd-edit-order-form .column:nth-child(2n+1){margin-right:0}.edd-edit-purchase-element ul li.download{width:35%}.edd-edit-purchase-element ul li.item_price{width:15%}.edd-edit-purchase-element ul li.item_price.item_quantity{width:25%}.edd-edit-purchase-element ul li.item_tax{width:15%}.edd-edit-purchase-element ul li.price{width:20%}.edd-admin-box .label{font-weight:600}.edd-admin-box-inside{border-bottom:1px solid #eee;clear:both;padding:3px 12px;margin:0;word-break:break-word}.rtl .edd-admin-box-inside{padding:5px 10px 5px 0}.edd-admin-box-inside .strong{font-weight:600}.edd-payment-fees .fee-label{color:#666;font-weight:400}.edd-admin-box .right{float:right}.rtl .edd-admin-box .right{float:left;margin-left:10px}#edd-order-update .inside,#edd-order-details .inside{margin:0;padding:0}#edd-order-update input.edd_datepicker{width:180px}#edd-order-update input[type="number"].edd-payment-time-hour,#edd-order-update input[type="number"].edd-payment-time-min{width:50px}#edd-order-update .edd-tax-rate{color:#9c9c9c;font-style:italic}#edd-order-resend-receipt .inside{margin-top:11px}#edd-order-resend-receipt .edd-order-resend-receipt-addresses{margin-top:10px}.edd-admin-box-inside:last-child{border-bottom:0}#edd-edit-order-form .data-payment-key{word-break:break-all}.edd-order-update-box #major-publishing-actions .button-secondary{margin-right:10px}.edd-edit-purchase-element .edd-select-chosen{width:196px}.edd-edit-purchase-element ul,#edd-order-address-country-wrap select,#edd-customer-details .order-data-address input,#edd-edit-order-form .column input,#edd-customer-details .order-data-column p.data input{clear:both;display:block}#edd-customer-details .customer-info .column{width:49%}#edd-customer-details .actions{float:right}.edd-order-data input.small-text{margin:0}.edd-order-data input.med-text{margin:0;width:100px}#edd-order-update span.label{display:inline;width:50px}.edd-order-update-box .button-primary{margin-right:0}#edd-edit-order-form .column .description{padding-right:10px}#edd-edit-order-form .column,.edd-edit-purchase-element ul li{display:inline-block;line-height:1.4;position:relative;margin:0;vertical-align:middle}.edd-edit-purchase-element .row{padding:12px}.edd-edit-purchase-element .row:not(:last-child){border-bottom:1px solid #eee}.edd-edit-purchase-element .row:nth-child(odd):not(.header){background-color:#f9f9f9}.edd-edit-purchase-element .row.header{padding:6px 12px;font-weight:600;vertical-align:top}.edd-edit-purchase-element ul{font-size:0}.edd-edit-purchase-element ul li{font-size:13px}#edd-order-data .data span{color:#666;font-weight:600}.edd-edit-purchase-element .inside{padding:12px}.edd-edit-purchase-element .edd-purchased-download-title{font-size:14px;font-weight:500}.edd-edit-purchase-element .edd-purchased-download-actions{color:#777;line-height:1.4}.edd-edit-purchase-element .edd-purchased-download-actions .edd-purchased-download-actions-label{font-weight:500}.edd-edit-purchase-element .edd-purchased-download-actions a{color:#777;font-size:12px}.edd-edit-purchase-element .edd-purchased-download-actions a:hover{color:#444}.edd-edit-purchase-element .edd-purchased-download-actions .edd-order-remove-download{color:#a00}.edd-edit-purchase-element .edd-purchased-download-actions .edd-order-remove-download:hover{color:red}#edd-order-recalc-total{float:right}.edd_repeatable_upload_wrapper .pricing select,.edd_repeatable_product_wrapper .edd-select,#edd_products .edd-select{min-width:100%;max-width:200px}.edd_repeatable_product_wrapper td{overflow:visible}.edd-payment-details-label-mobile{display:none}@media screen and ( max-width: 1284px ){.edd-edit-purchase-element ul li.download{padding-bottom:15px;width:100%}.edd-edit-purchase-element .edd-purchased-download-title{font-size:16px}.edd-edit-purchase-element ul li.item_price{width:22%}.edd-edit-purchase-element ul li.item_price.item_quantity{width:35%}.edd-edit-purchase-element ul li.item_tax{width:25%}.edd-edit-purchase-element ul li.price{width:20%}.edd-edit-purchase-element .edd-purchased-download-actions{padding-top:10px}.edd-purchased-files-header,.edd-add-download-to-purchase-header{display:none}.edd-payment-details-label-mobile{display:block;font-weight:500;padding-bottom:6px}}@media screen and ( max-width: 1024px ){.edd-edit-purchase-element ul li.item_price.item_quantity{width:40%}.edd-edit-purchase-element ul li.price{width:24%}.edd-edit-purchase-element .edd-purchased-download-actions{padding-top:15px}.edd-edit-purchase-element .edd-purchased-download-actions,.edd-edit-purchase-element .edd-purchased-download-actions a{font-size:14px}}@media screen and ( max-width: 782px ){#edd-edit-order-form .column{width:49%}.edd-edit-purchase-element ul li.item_price,.edd-edit-purchase-element ul li.item_price.item_quantity{padding-bottom:10px}.edd-edit-purchase-element ul li.item_price.item_quantity{width:35%}.edd-edit-purchase-element ul li.item_tax,.edd-edit-purchase-element ul li.price{width:20%;padding-bottom:10px}.edd-payment-details-label-mobile{font-size:14px;font-weight:500}.edd-price-currency,.edd-payment-details-download-amount{font-size:16px}.order-data-column input[type="email"]{padding:6px 10px}}@media screen and ( max-width: 600px ){.edd-edit-purchase-element ul li.item_price,.edd-edit-purchase-element ul li.item_price.item_quantity,.edd-edit-purchase-element ul li.item_tax{width:100%;padding-bottom:20px}.edd-edit-purchase-element ul li.price,.edd-edit-purchase-element .edd-add-download-to-purchase ul li.item_tax{width:100%;padding-bottom:0}.edd-edit-purchase-element .edd-add-download-to-purchase-actions{padding-top:15px}#edd-edit-order-form .column{width:100%}}#edd_product_stats .label{display:inline-block}#edd_product_stats hr{border-style:solid;border-width:1px;border-color:#ccc #fff #fff #ccc}#edd_product_stats .product-sales-stats:before,#edd_product_stats .product-earnings-stats:before{color:#82878c;font:normal 20px/1 dashicons;display:inline-block;padding:0 2px 0 0;position:relative;top:0;left:-1px;speak:none;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#edd_product_stats .product-sales-stats:before{content:'\f174'}#edd_product_stats .product-earnings-stats:before{content:'\f239'}.edd_dashboard_widget table thead td{border-bottom:1px solid #ececec;color:#777}.edd_dashboard_widget .table_left{float:left;width:45%}.edd_dashboard_widget .table_right{float:right;width:45%}.edd_dashboard_widget .inside{font-size:12px}.edd_dashboard_widget td{padding:3px 0}.edd_dashboard_widget .b,.edd_dashboard_widget .t{line-height:1.5;vertical-align:middle}.edd_dashboard_widget .b{font-size:14px;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;padding-right:6px;width:auto}.edd_dashboard_widget .t{font-size:12px;padding-right:12px;color:#777;width:100%}.edd_dashboard_widget .label_heading{border-top:1px solid #ececec;color:#8f8f8f;font-family:Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;display:block;padding-top:10px;margin:0 0 8px 12px}.edd_dashboard_widget .edd_dashboard_widget_subheading{border-top:1px solid #ececec;color:#8f8f8f;font-size:14px;padding-top:10px;margin:1em 0 0}.edd_dashboard_widget .edd_dashboard_widget_subheading + .table{margin:8px 0 0}.edd_dashboard_widget .edd_price_label{background:#00769c;border-radius:3px;color:#fff;font-size:10px;padding:2px 4px;margin-right:2px}.edd_dashboard_widget table{width:100%;margin-left:0;margin-bottom:1em}td.edd_order_label{width:80%}td.edd_order_price{text-align:right}@media handheld,only screen and (max-width: 1000px){.edd_dashboard_widget .edd-recent-email{display:none}}#edd-dashboard-widgets-wrap .postbox h3{cursor:default}#edd-graphs-date-options,#edd-date-range-options{float:left}#edd-date-range-options span{float:left;line-height:24px;height:24px;margin-right:6px}.edd-import-export-form{position:relative}.edd-import-export-form .edd-progress{background:#ddd;position:absolute;bottom:15px;width:95%;height:15px}.edd-import-export-form .edd-progress div{background:#ccc;height:100%;width:0}.edd-import-export-form .notice-wrap{background-color:#f4f4f4;border-style:solid;border-width:1px 0;border-color:#eae9e9;padding:12px 12px 4px;overflow:auto;margin:20px -12px -23px}.edd-import-export-form .notice-wrap .spinner{margin:4px 10px 8px;float:right}.admin-color-fresh .edd-import-export-form .edd-progress div{background:#0073aa}.admin-color-light .edd-import-export-form .edd-progress div{background:#888}.admin-color-blue .edd-import-export-form .edd-progress div{background:#096484}.admin-color-coffee .edd-import-export-form .edd-progress div{background:#c7a589}.admin-color-ectoplasm .edd-import-export-form .edd-progress div{background:#a3b745}.admin-color-midnight .edd-import-export-form .edd-progress div{background:#e14d43}.admin-color-sunrise .edd-import-export-form .edd-progress div{background:#dd823b}#edd-graphs-filter label{vertical-align:inherit}#edd-graphs-filter .graph-option-section{float:left;line-height:2.5em;padding-right:5px}.edd-mix-totals{background-color:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,0.04);padding:10px}.edd-mix-chart{display:inline-block;width:49%;vertical-align:top}.edd-graph-notes{color:#9c9c9c}.edd-graph-notes span{display:block}.edd-pie-graph .legend{display:none}.edd-pie-legend{overflow:auto;margin-top:10px}.edd-legend-item-wrapper{color:#333;display:inline-block;font-size:8pt;padding:2px 5px 0;width:48%;height:20px}.edd-legend-color{border:1px solid #cfcfcf;display:inline-block;margin-right:5px;width:20px;height:15px}.edd-pie-legend-item{display:inline-block;vertical-align:top;width:80%}#edd_tax_rates{margin:1em 0 0}#edd_tax_rates .edd_tax_country *,#edd_tax_rates .edd_tax_state *{max-width:100%}#edd_tax_rates .edd_tax_country,#edd_tax_rates .edd_tax_state{width:180px}#edd_tax_rates .edd_tax_rate{width:80px}#edd_tax_rates th{padding:15px 10px}.wrap-licenses .form-table,.wrap-licenses thead,.wrap-licenses tbody,.wrap-licenses tfoot,.wrap-licenses tr,.wrap-licenses td,.wrap-licenses th,.wrap-licenses caption{display:block}.wrap-licenses .form-table tr{float:left;margin:0 15px 15px 0;background:#fff;border:1px solid #ccc;width:30.5%;max-width:350px;padding:14px;min-height:220px;position:relative;box-sizing:border-box}.wrap-licenses .form-table th{background:#f9f9f9;padding:14px;border-bottom:1px solid #ccc;margin:-14px -14px 20px;width:100%}.wrap-licenses .form-table td{padding:0}.wrap-licenses td input.regular-text{margin:0 0 8px;width:100%}.wrap-licenses .edd-license-data[class*="edd-license-"]{position:absolute;background:#fafafa;padding:14px;border-top:1px solid #eee;margin:20px -14px -14px;min-height:67px;width:100%;bottom:14px;box-sizing:border-box}.wrap-licenses .edd-license-data[class*="edd-license-"] a{color:#444}.wrap-licenses .edd-license-data[class*="edd-license-"] a:hover{text-decoration:none}.wrap-licenses .edd-license-data.license-expires-soon-notice{background-color:#00a0d2;color:#fff;border-color:#00a0d2}.wrap-licenses .edd-license-data.edd-license-expired{background-color:#e24e4e;color:#fff;border-color:#e24e4e}.wrap-licenses .edd-license-data.edd-license-error,.wrap-licenses .edd-license-data.edd-license-missing,.wrap-licenses .edd-license-data.edd-license-invalid,.wrap-licenses .edd-license-data.edd-license-site_inactive,.wrap-licenses .edd-license-data.edd-license-item_name_mismatch{background-color:#ffebcd;border-color:#ffebcd}.wrap-licenses .edd-license-data p{font-size:13px;margin-top:0}.wrap-licenses .edd-license-data.license-expires-soon-notice a,.wrap-licenses .edd-license-data.edd-license-expired a{color:#fff}.wrap-licenses .edd-license-data.license-expires-soon-notice a:hover,.wrap-licenses .edd-license-data.edd-license-expired a:hover{text-decoration:none}.wrap-licenses p.submit{clear:both}.post-type-download .fixed .column-name{width:27%}.post-type-download .fixed .column-description{width:30%}.post-type-download .fixed .column-slug{width:23%}.post-type-download .fixed .column-posts{text-align:left;width:17%}#system-info-textarea{background:none;font-family:Menlo,Monaco,monospace;display:block;overflow:auto;white-space:pre;width:800px;height:400px}#TB_window #edd-add-download:hover,#TB_window #edd-add-download:active,#TB_window #edd-add-download:focus{color:#fff}.edd-graph .y1Axis{color:#edc240!important}.edd-graph .y2Axis{color:#afd8f8!important}.download_page_edd-tools .apikeys .column-user{width:192px}.edd-select-chosen{width:300px}.chosen-container-multi .chosen-choices{background-image:none;border-color:#dfdfdf;-webkit-border-radius:3px;border-radius:3px}.chosen-container-multi .chosen-choices input{border-color:#dfdfdf;height:27px!important;margin:2px}.chosen-container .chosen-drop{border-color:#aaa;-webkit-box-shadow:1px 1px 2px rgba(0,0,0,0.1);box-shadow:1px 1px 2px rgba(0,0,0,0.1)}.chosen-container .search-field{float:none!important}.chosen-container .search-field input{width:90%!important}.chosen-container-active .chosen-choices{border-color:#aaa;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;-webkit-box-shadow:1px 1px 2px rgba(0,0,0,0.1);box-shadow:1px 1px 2px rgba(0,0,0,0.1)}.download_page_edd-tools .tablenav .actions{overflow:visible}.edd_user_search_wrap{position:relative;overflow:visible}.edd_user_search_results{position:absolute;left:0;top:27px}.edd_user_search_results a.edd-ajax-user-cancel{position:absolute;right:6px;top:2px}.edd_user_search_results ul{background:#f0f0f0;border:1px solid #dfdfdf;overflow-y:scroll;padding:10px 10px 4px;margin:0;max-height:200px;width:300px}.wp-list-table .type-download .row-actions{color:#999}@media screen and ( max-width: 1100px ){.edd-mix-chart{display:block;width:100%}.wrap-licenses .form-table tr{width:46%;max-width:none;min-height:230px}}@media screen and ( max-width: 782px ){.post-type-download .nav-tab-wrapper a{font-size:70%;padding:2px 4px}.download_page_edd-tools .apikeys .column-user{width:80px}.license-lifetime-notice,.license-expiration-date-notice,.license-null{padding-left:0}[class^="license-"] input[type="text"]{margin-bottom:3px}}@media screen and ( max-width: 600px ){.wrap-licenses .form-table tr{width:100%;min-height:230px}}#edd-item-wrapper{background:#f5f5f5;border:1px solid #e5e5e5;webkit-box-shadow:0 1px 1px rgba(0,0,0,0.04);box-shadow:0 1px 1px rgba(0,0,0,0.04);max-width:830px}#edd-item-wrapper:after{content:"";display:block;clear:both;visibility:hidden;font-size:0;height:0}#edd-item-tab-wrapper{float:left;width:18%;z-index:1}#edd-item-tab-wrapper-list{background:#fff;margin:0}#edd-item-tab-wrapper-list li{display:block;background-color:#eaeaea;color:#444;font-size:12px;border-bottom:1px solid #e5e5e5;margin-bottom:0;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;word-wrap:break-word}#edd-item-tab-wrapper-list li a{display:block;padding:8px 10px 8px 6px}#edd-item-tab-wrapper-list li.active{display:block;background-color:#fff;padding:8px 10px 8px 6px}#edd-item-tab-wrapper-list .inactive a,#edd-item-tab-wrapper-list .inactive a:visited{background-color:#f5f5f5;color:#444;text-decoration:none}#edd-item-tab-wrapper-list .inactive a:hover{background-color:#fff}#edd-item-tab-wrapper-list .dashicons{color:#444;font-size:16px;min-width:24px;height:auto}#edd-item-card-wrapper .left{float:left}#edd-item-card-wrapper .right{float:right}#edd-item-card-wrapper input{font-weight:400}#edd-item-card-wrapper{background-color:#fff;border:1px solid #e5e5e5;display:inline-block;margin-left:-1px;min-height:200px;width:700px;z-index:2}.edd-item-has-tabs #edd-item-card-wrapper{border-width:0 0 0 1px;width:82%}#edd-item-card-wrapper .customer-section{border-bottom:1px solid #eee;margin-bottom:10px;overflow:auto}#edd-item-card-wrapper .customer-section table{margin-bottom:20px}#edd-item-card-wrapper > div{padding:0 20px}#edd-item-card-wrapper > div:first-child{padding-top:20px}#edd-item-card-wrapper > div:last-child{border:none;padding-bottom:20px}#edd-item-card-wrapper .avatar-wrap{padding-right:10px;text-align:center}#edd-item-card-wrapper .customer-id{font-size:24px;font-weight:600}#edd-item-card-wrapper .customer-main-wrapper input{width:200px}#edd-item-card-wrapper .customer-address-wrapper{margin-right:25px;max-width:33%;width:202px}#edd-item-card-wrapper .customer-address-wrapper select{width:200px}#edd-item-card-wrapper .customer-info{margin-top:5px;margin-bottom:10px;min-height:185px}#edd-item-card-wrapper .info-wrapper{min-height:125px;overflow:visible}#edd-item-card-wrapper a.delete{color:red;margin-right:5px;text-decoration:none}.customer-info .customer-name{font-size:24px;font-weight:600}.customer-edit-link a,.disconnect-user a{font-size:12px;font-weight:400;text-decoration:none}#customer-edit-actions{line-height:28px;margin-bottom:20px;text-align:center}#customer-edit-actions .button-secondary{margin-right:10px}#edd-item-card-wrapper .row-title{width:30%}#edd-item-card-wrapper .info-item{display:block;line-height:16px;padding-bottom:5px}#edd-item-card-wrapper .edit-item{display:none}#edd-item-card-wrapper .edd_user_search_results{left:1px;top:16px}#edd-item-card-wrapper .edd_user_search_results ul{width:200px}#edd-item-stats-wrapper{margin:0 auto;min-height:30px;text-align:center}#edd-item-stats-wrapper li{font-size:14px;float:left;line-height:22px;width:50%}#edd-item-stats-wrapper a{text-decoration:none}#edd-item-stats-wrapper .dashicons{color:#888}#edd-item-tables-wrapper table{text-align:center;width:100%}#edd-item-tables-wrapper th{text-align:center}#edd-item-tables-wrapper .downloads tr > th:first-child,#edd-item-tables-wrapper .downloads tr > td:first-child,#edd-item-tables-wrapper .emails tr > th:first-child,#edd-item-tables-wrapper .emails tr > td:first-child{text-align:left}#edd-item-tables-wrapper .downloads tr > td:only-child{text-align:center}#edd-item-tables-wrapper .emails .add-customer-email-row td{background-color:#f9f9f9;border-top:1px solid #e5e5e5}#edd-item-tables-wrapper .emails .primary-email-icon{font-size:13px;vertical-align:middle;line-height:1.5em}#edd-item-tables-wrapper .emails input{vertical-align:middle;margin:6px 0}#edd-item-tables-wrapper .emails .spinner{float:none}#edd-item-notes-wrapper{min-height:50px}.edd-item-notes-header span,.edd-item-notes-header img{font-weight:600;line-height:30px;vertical-align:middle}.customer-note-input{margin-bottom:5px;width:100%}#edd-customer-notes div:nth-of-type(even){background-color:#fcfcfc}.customer-note-wrapper{border-bottom:1px solid #f9f9f9;min-height:38px;padding:7px 0 7px 7px}.customer-note-wrapper span{display:block}.note-content-wrap{padding-top:7px}.delete-customer{text-align:center}#edd-item-card-wrapper .notice-wrap{padding-left:20px;padding-right:20px;margin-left:-20px;margin-right:-20px}@media screen and ( max-width: 810px ) and ( min-width: 656px ){.customer-info .customer-name{font-size:16px}#edd-item-card-wrapper .widefat td,.widefat th{padding:4px 6px;max-width:100px!important;display:table-cell}}@media screen and ( max-width: 781px ){#edd-item-tab-wrapper,#edd-item-card-wrapper{margin:0;width:100%}#edd-item-tab-wrapper-list{background:#fff;margin:0}#edd-item-tab-wrapper-list li{float:left;display:inline;font-size:14px;box-sizing:border-box;border-width:0 1px 1px 0;border-style:solid;border-color:#e5e5e5;width:33.33333%}#edd-item-tab-wrapper-list li:nth-child(3n+3){border-width:0 0 1px}#edd-item-tab-wrapper-list .dashicons{font-size:18px}.edd-item-has-tabs #edd-item-card-wrapper{border-top:1px solid #e5e5e5;border-left:0;margin-top:-1px;width:100%}}@media screen and ( max-width: 656px ){#edd-item-card-wrapper .customer-info{min-height:220px}.edd-item-info.customer-info{position:relative}#edd-item-card-wrapper .customer-address-wrapper{float:none;position:absolute;top:84px;left:110px;max-width:200px}#edd-item-card-wrapper .customer-main-wrapper{float:none;position:absolute;left:110px}.customer-info .customer-name{font-size:16px}#edd-item-card-wrapper #edd-item-stats-wrapper{padding-left:0;padding-right:0}#edd-item-card-wrapper .customer-section{margin-bottom:0}#edd-item-card-wrapper .widefat td,.widefat th{padding:4px 6px;max-width:100px!important;display:table-cell;overflow:hidden}#edd-item-card-wrapper .customer-id{font-size:16px}}@media screen and ( max-width: 480px ){#edd-item-tab-wrapper-list li{width:50%}#edd-item-tab-wrapper-list li:nth-child(3n+3){border-width:0 1px 1px 0}#edd-item-tab-wrapper-list li:nth-child(even){border-width:0 0 1px}}.recount-stats-controls form{display:inline}.edd-recount-stats-descriptions span{display:none;line-height:24px}
|
assets/js/admin-backwards-compatibility.js
DELETED
@@ -1,73 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* Developer Notice: The contents of this JavaScript file are not to be relied on in any future versions of EDD
|
3 |
-
* These exist as a backwards compatibility measure for https://github.com/easydigitaldownloads/easy-digital-downloads/issues/2704
|
4 |
-
*/
|
5 |
-
jQuery(document).ready(function ($) {
|
6 |
-
|
7 |
-
// Adjust location of setting labels for settings in the new containers created below (back compat)
|
8 |
-
$( document.body ).find( '.edd-custom-price-option-sections .edd-legacy-setting-label' ).each(function() {
|
9 |
-
$(this).prependTo($(this).nextAll('span:not(:has(>.edd-legacy-setting-label))').first());
|
10 |
-
});
|
11 |
-
|
12 |
-
// Build HTML containers for existing price option settings (back compat)
|
13 |
-
$( document.body ).find( '.edd-custom-price-option-sections' ).each(function() {
|
14 |
-
$(this).find('[class*="purchase_limit"]').wrapAll( '<div class="edd-purchase-limit-price-option-settings-legacy edd-custom-price-option-section"></div>' );
|
15 |
-
$(this).find('[class*="shipping"]').wrapAll( '<div class="edd-simple-shipping-price-option-settings-legacy edd-custom-price-option-section" style="display: none;"></div>' );
|
16 |
-
$(this).find('[class*="sl-"]').wrapAll( '<div class="edd-sl-price-option-settings-legacy edd-custom-price-option-section"></div>' );
|
17 |
-
$(this).find('[class*="edd-recurring-"]').wrapAll( '<div class="edd-recurring-price-option-settings-legacy edd-custom-price-option-section"></div>' );
|
18 |
-
});
|
19 |
-
|
20 |
-
// only display Simple Shipping/Software Licensing sections if enabled (back compat)
|
21 |
-
$( document.body ).find( '#edd_enable_shipping', '#edd_license_enabled' ).each(function() {
|
22 |
-
var variable_pricing = $('#edd_variable_pricing').is( ':checked' );
|
23 |
-
var ss_checked = $( '#edd_enable_shipping' ).is( ':checked' );
|
24 |
-
var ss_section = $( '.edd-simple-shipping-price-option-settings-legacy' );
|
25 |
-
var sl_checked = $( '#edd_license_enabled' ).is( ':checked' );
|
26 |
-
var sl_section = $( '.edd-sl-price-option-settings-legacy' );
|
27 |
-
if ( variable_pricing ) {
|
28 |
-
if ( ss_checked ) {
|
29 |
-
ss_section.show();
|
30 |
-
} else {
|
31 |
-
ss_section.hide();
|
32 |
-
}
|
33 |
-
if ( sl_checked ) {
|
34 |
-
sl_section.show();
|
35 |
-
} else {
|
36 |
-
sl_section.hide();
|
37 |
-
}
|
38 |
-
}
|
39 |
-
});
|
40 |
-
$( '#edd_enable_shipping' ).on( 'change', function() {
|
41 |
-
var enabled = $(this).is( ':checked' );
|
42 |
-
var section = $( '.edd-simple-shipping-price-option-settings-legacy' );
|
43 |
-
if ( enabled ) {
|
44 |
-
section.show();
|
45 |
-
} else {
|
46 |
-
section.hide();
|
47 |
-
}
|
48 |
-
});
|
49 |
-
$( '#edd_license_enabled' ).on( 'change', function() {
|
50 |
-
var enabled = $(this).is( ':checked' );
|
51 |
-
var section = $( '.edd-sl-price-option-settings-legacy' );
|
52 |
-
if ( enabled ) {
|
53 |
-
section.show();
|
54 |
-
} else {
|
55 |
-
section.hide();
|
56 |
-
}
|
57 |
-
});
|
58 |
-
|
59 |
-
// Create section titles for newly created HTML containers (back compat)
|
60 |
-
$( document.body ).find( '.edd-purchase-limit-price-option-settings-legacy' ).each(function() {
|
61 |
-
$(this).prepend( '<span class="edd-custom-price-option-section-title">' + edd_backcompat_vars.purchase_limit_settings + '</span>' );
|
62 |
-
});
|
63 |
-
$( document.body ).find( '.edd-simple-shipping-price-option-settings-legacy' ).each(function() {
|
64 |
-
$(this).prepend( '<span class="edd-custom-price-option-section-title">' + edd_backcompat_vars.simple_shipping_settings + '</span>' );
|
65 |
-
});
|
66 |
-
$( document.body ).find( '.edd-sl-price-option-settings-legacy' ).each(function() {
|
67 |
-
$(this).prepend( '<span class="edd-custom-price-option-section-title">' + edd_backcompat_vars.software_licensing_settings + '</span>' );
|
68 |
-
});
|
69 |
-
$( document.body ).find( '.edd-recurring-price-option-settings-legacy' ).each(function() {
|
70 |
-
$(this).prepend( '<span class="edd-custom-price-option-section-title">' + edd_backcompat_vars.recurring_payments_settings + '</span>' );
|
71 |
-
});
|
72 |
-
|
73 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/js/admin-backwards-compatibility.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
jQuery(document).ready(function(e){e(document.body).find(".edd-custom-price-option-sections .edd-legacy-setting-label").each(function(){e(this).prependTo(e(this).nextAll("span:not(:has(>.edd-legacy-setting-label))").first())}),e(document.body).find(".edd-custom-price-option-sections").each(function(){e(this).find('[class*="purchase_limit"]').wrapAll('<div class="edd-purchase-limit-price-option-settings-legacy edd-custom-price-option-section"></div>'),e(this).find('[class*="shipping"]').wrapAll('<div class="edd-simple-shipping-price-option-settings-legacy edd-custom-price-option-section" style="display: none;"></div>'),e(this).find('[class*="sl-"]').wrapAll('<div class="edd-sl-price-option-settings-legacy edd-custom-price-option-section"></div>'),e(this).find('[class*="edd-recurring-"]').wrapAll('<div class="edd-recurring-price-option-settings-legacy edd-custom-price-option-section"></div>')}),e(document.body).find("#edd_enable_shipping","#edd_license_enabled").each(function(){var i=e("#edd_variable_pricing").is(":checked"),s=e("#edd_enable_shipping").is(":checked"),n=e(".edd-simple-shipping-price-option-settings-legacy"),t=e("#edd_license_enabled").is(":checked"),c=e(".edd-sl-price-option-settings-legacy");i&&(s?n.show():n.hide(),t?c.show():c.hide())}),e("#edd_enable_shipping").on("change",function(){var i=e(this).is(":checked"),s=e(".edd-simple-shipping-price-option-settings-legacy");i?s.show():s.hide()}),e("#edd_license_enabled").on("change",function(){var i=e(this).is(":checked"),s=e(".edd-sl-price-option-settings-legacy");i?s.show():s.hide()}),e(document.body).find(".edd-purchase-limit-price-option-settings-legacy").each(function(){e(this).prepend('<span class="edd-custom-price-option-section-title">'+edd_backcompat_vars.purchase_limit_settings+"</span>")}),e(document.body).find(".edd-simple-shipping-price-option-settings-legacy").each(function(){e(this).prepend('<span class="edd-custom-price-option-section-title">'+edd_backcompat_vars.simple_shipping_settings+"</span>")}),e(document.body).find(".edd-sl-price-option-settings-legacy").each(function(){e(this).prepend('<span class="edd-custom-price-option-section-title">'+edd_backcompat_vars.software_licensing_settings+"</span>")}),e(document.body).find(".edd-recurring-price-option-settings-legacy").each(function(){e(this).prepend('<span class="edd-custom-price-option-section-title">'+edd_backcompat_vars.recurring_payments_settings+"</span>")})});
|
|
assets/js/admin-scripts.js
CHANGED
@@ -1,8 +1,23 @@
|
|
1 |
jQuery(document).ready(function ($) {
|
2 |
|
3 |
// Tooltips
|
4 |
-
|
5 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
7 |
/**
|
8 |
* Download Configuration Metabox
|
@@ -21,7 +36,7 @@ jQuery(document).ready(function ($) {
|
|
21 |
|
22 |
// Retrieve the highest current key
|
23 |
var key = highest = 1;
|
24 |
-
row.parent().find( '.edd_repeatable_row' ).each(function() {
|
25 |
var current = $(this).data( 'key' );
|
26 |
if( parseInt( current ) > highest ) {
|
27 |
highest = current;
|
@@ -39,7 +54,8 @@ jQuery(document).ready(function ($) {
|
|
39 |
clone.removeClass( 'edd_add_blank' );
|
40 |
|
41 |
clone.attr( 'data-key', key );
|
42 |
-
clone.find( 'input, select, textarea' ).val( '' )
|
|
|
43 |
var name = $( this ).attr( 'name' );
|
44 |
var id = $( this ).attr( 'id' );
|
45 |
|
@@ -75,12 +91,11 @@ jQuery(document).ready(function ($) {
|
|
75 |
|
76 |
clone.find( '.edd_repeatable_condition_field' ).each ( function() {
|
77 |
$( this ).find( 'option:eq(0)' ).prop( 'selected', 'selected' );
|
78 |
-
})
|
79 |
|
80 |
// Remove Chosen elements
|
81 |
clone.find( '.search-choice' ).remove();
|
82 |
clone.find( '.chosen-container' ).remove();
|
83 |
-
edd_attach_tooltips(clone.find('.edd-help-tip'));
|
84 |
|
85 |
return clone;
|
86 |
},
|
@@ -89,7 +104,7 @@ jQuery(document).ready(function ($) {
|
|
89 |
$( document.body ).on( 'click', '.submit .edd_add_repeatable', function(e) {
|
90 |
e.preventDefault();
|
91 |
var button = $( this ),
|
92 |
-
row = button.parent().parent().prev( '
|
93 |
clone = EDD_Download_Configuration.clone_repeatable(row);
|
94 |
|
95 |
clone.insertAfter( row ).find('input, textarea, select').filter(':visible').eq(0).focus();
|
@@ -107,10 +122,10 @@ jQuery(document).ready(function ($) {
|
|
107 |
|
108 |
move : function() {
|
109 |
|
110 |
-
$(".edd_repeatable_table
|
111 |
-
handle: '.
|
112 |
var count = 0;
|
113 |
-
$(this).find( '
|
114 |
$(this).find( 'input.edd_repeatable_index' ).each(function() {
|
115 |
$( this ).val( count );
|
116 |
});
|
@@ -122,22 +137,22 @@ jQuery(document).ready(function ($) {
|
|
122 |
},
|
123 |
|
124 |
remove : function() {
|
125 |
-
$( document.body ).on( 'click', '.
|
126 |
e.preventDefault();
|
127 |
|
128 |
-
var row = $(this).
|
129 |
-
count = row.parent().find( '
|
130 |
type = $(this).data('type'),
|
131 |
-
repeatable = '
|
132 |
focusElement,
|
133 |
focusable,
|
134 |
firstFocusable;
|
135 |
|
136 |
// Set focus on next element if removing the first row. Otherwise set focus on previous element.
|
137 |
-
if ( $(this).is( '.ui-sortable
|
138 |
-
focusElement = row.next( '
|
139 |
} else {
|
140 |
-
focusElement = row.prev( '
|
141 |
}
|
142 |
|
143 |
focusable = focusElement.find( 'select, input, textarea, button' ).filter( ':visible' );
|
@@ -149,7 +164,7 @@ jQuery(document).ready(function ($) {
|
|
149 |
$( '.edd_repeatable_condition_field option[value="' + price_row_id + '"]' ).remove();
|
150 |
}
|
151 |
|
152 |
-
if
|
153 |
$( 'input, select', row ).val( '' );
|
154 |
row.fadeOut( 'fast' ).remove();
|
155 |
firstFocusable.focus();
|
@@ -204,16 +219,13 @@ jQuery(document).ready(function ($) {
|
|
204 |
$( document.body ).on( 'change', '#edd_variable_pricing', function(e) {
|
205 |
var checked = $(this).is(':checked');
|
206 |
var single = $( '#edd_regular_price_field' );
|
207 |
-
var variable = $( '#edd_variable_price_fields
|
208 |
-
var bundleRow = $( '.edd-bundled-product-row, .edd-repeatable-row-standard-fields' );
|
209 |
if ( checked ) {
|
210 |
single.hide();
|
211 |
variable.show();
|
212 |
-
bundleRow.addClass( 'has-variable-pricing' );
|
213 |
} else {
|
214 |
single.show();
|
215 |
variable.hide();
|
216 |
-
bundleRow.removeClass( 'has-variable-pricing' );
|
217 |
}
|
218 |
});
|
219 |
},
|
@@ -297,7 +309,7 @@ jQuery(document).ready(function ($) {
|
|
297 |
clone = EDD_Download_Configuration.clone_repeatable( row );
|
298 |
|
299 |
clone.find( '.edd_repeatable_attachment_id_field' ).val( attachment.id );
|
300 |
-
clone.find( '
|
301 |
clone.find( '.edd_repeatable_upload_field' ).val( selectedURL );
|
302 |
clone.find( '.edd_repeatable_name_field' ).val( selectedName );
|
303 |
clone.insertAfter( row );
|
@@ -318,7 +330,7 @@ jQuery(document).ready(function ($) {
|
|
318 |
updatePrices: function() {
|
319 |
$( '#edd_price_fields' ).on( 'keyup', '.edd_variable_prices_name', function() {
|
320 |
|
321 |
-
var key = $( this ).parents( '
|
322 |
name = $( this ).val(),
|
323 |
field_option = $( '.edd_repeatable_condition_field option[value=' + key + ']' );
|
324 |
|
@@ -336,29 +348,6 @@ jQuery(document).ready(function ($) {
|
|
336 |
|
337 |
};
|
338 |
|
339 |
-
// Toggle display of entire custom settings section for a price option
|
340 |
-
$( document.body ).on( 'click', '.toggle-custom-price-option-section', function(e) {
|
341 |
-
e.preventDefault();
|
342 |
-
var show = $(this).html() == edd_vars.show_advanced_settings ? true : false;
|
343 |
-
|
344 |
-
if ( show ) {
|
345 |
-
$(this).html( edd_vars.hide_advanced_settings );
|
346 |
-
} else {
|
347 |
-
$(this).html( edd_vars.show_advanced_settings );
|
348 |
-
}
|
349 |
-
|
350 |
-
var header = $(this).parents('.edd-repeatable-row-header');
|
351 |
-
header.siblings('.edd-custom-price-option-sections-wrap').slideToggle();
|
352 |
-
|
353 |
-
var first_input;
|
354 |
-
if ( show ) {
|
355 |
-
first_input = $(":input:not(input[type=button],input[type=submit],button):visible:first", header.siblings('.edd-custom-price-option-sections-wrap'));
|
356 |
-
} else {
|
357 |
-
first_input = $(":input:not(input[type=button],input[type=submit],button):visible:first", header.siblings('.edd-repeatable-row-standard-fields'));
|
358 |
-
}
|
359 |
-
first_input.focus();
|
360 |
-
});
|
361 |
-
|
362 |
EDD_Download_Configuration.init();
|
363 |
|
364 |
//$('#edit-slug-box').remove();
|
@@ -424,7 +413,7 @@ jQuery(document).ready(function ($) {
|
|
424 |
// Remove a download from a purchase
|
425 |
$('#edd-purchased-files').on('click', '.edd-order-remove-download', function() {
|
426 |
|
427 |
-
var count = $( document.body ).find( '#edd-purchased-files > .row
|
428 |
|
429 |
if ( count === 1 ) {
|
430 |
alert( edd_vars.one_download_min );
|
@@ -618,9 +607,9 @@ jQuery(document).ready(function ($) {
|
|
618 |
var row = $(this).parents('ul.edd-purchased-files-list-wrapper');
|
619 |
$( '.edd-order-payment-recalc-totals' ).show();
|
620 |
|
621 |
-
var quantity = row.find('input.edd-payment-details-download-quantity').val()
|
622 |
-
var item_price = row.find('input.edd-payment-details-download-item-price').val()
|
623 |
-
var item_tax = row.find('input.edd-payment-details-download-item-tax').val()
|
624 |
|
625 |
item_price = parseFloat( item_price );
|
626 |
if ( isNaN( item_price ) ) {
|
@@ -1080,7 +1069,7 @@ jQuery(document).ready(function ($) {
|
|
1080 |
taxes : function() {
|
1081 |
var no_states = $('select.edd-no-states');
|
1082 |
if( no_states.length ) {
|
1083 |
-
no_states.closest('tr').
|
1084 |
}
|
1085 |
|
1086 |
// Update base state field based on selected base country
|
@@ -1093,9 +1082,9 @@ jQuery(document).ready(function ($) {
|
|
1093 |
};
|
1094 |
$.post(ajaxurl, data, function (response) {
|
1095 |
if( 'nostates' == response ) {
|
1096 |
-
$tr.next().
|
1097 |
} else {
|
1098 |
-
$tr.next().
|
1099 |
$tr.next().find('select').replaceWith( response );
|
1100 |
}
|
1101 |
});
|
@@ -1277,19 +1266,24 @@ jQuery(document).ready(function ($) {
|
|
1277 |
});
|
1278 |
|
1279 |
$('.edd-select-chosen .chosen-search input').each( function() {
|
1280 |
-
var
|
1281 |
-
|
1282 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1283 |
$(this).attr( 'placeholder', placeholder );
|
1284 |
});
|
1285 |
|
1286 |
// Add placeholders for Chosen input fields
|
1287 |
$( '.chosen-choices' ).on( 'click', function () {
|
1288 |
-
|
1289 |
-
if ( typeof placeholder === "undefined" ) {
|
1290 |
-
placeholder = edd_vars.type_to_search;
|
1291 |
-
}
|
1292 |
-
$(this).children('li').children('input').attr( 'placeholder', placeholder );
|
1293 |
});
|
1294 |
|
1295 |
// Variables for setting up the typing timer
|
@@ -1417,7 +1411,7 @@ jQuery(document).ready(function ($) {
|
|
1417 |
} );
|
1418 |
},
|
1419 |
recount_stats : function() {
|
1420 |
-
$(
|
1421 |
|
1422 |
var export_form = $('#edd-tools-recount-form');
|
1423 |
var selected_type = $('option:selected', this).data('type');
|
@@ -1453,7 +1447,7 @@ jQuery(document).ready(function ($) {
|
|
1453 |
$('#' + selected_type ).show();
|
1454 |
} );
|
1455 |
|
1456 |
-
$(
|
1457 |
var checked = $(this).is(':checked');
|
1458 |
if ( checked ) {
|
1459 |
$('#recount-stats-submit').removeClass('button-disabled').removeAttr('disabled');
|
@@ -1600,7 +1594,7 @@ jQuery(document).ready(function ($) {
|
|
1600 |
},
|
1601 |
|
1602 |
dismiss_message : function() {
|
1603 |
-
$(
|
1604 |
$('#edd-batch-success').parent().slideUp('fast');
|
1605 |
});
|
1606 |
}
|
@@ -1706,7 +1700,7 @@ jQuery(document).ready(function ($) {
|
|
1706 |
|
1707 |
});
|
1708 |
|
1709 |
-
$(
|
1710 |
|
1711 |
e.preventDefault();
|
1712 |
|
@@ -2048,7 +2042,7 @@ jQuery(document).ready(function ($) {
|
|
2048 |
});
|
2049 |
}
|
2050 |
|
2051 |
-
$(document
|
2052 |
if(e.keyCode == 13 && (e.metaKey || e.ctrlKey)) {
|
2053 |
$('#add-customer-note').click();
|
2054 |
}
|
@@ -2099,24 +2093,3 @@ var eddLegendFormatterEarnings = function (label, series) {
|
|
2099 |
jQuery('#edd-pie-legend-' + series.edd_vars.id).append( item );
|
2100 |
return item;
|
2101 |
}
|
2102 |
-
|
2103 |
-
function edd_attach_tooltips( selector ) {
|
2104 |
-
// Tooltips
|
2105 |
-
selector.tooltip({
|
2106 |
-
content: function() {
|
2107 |
-
return jQuery(this).prop('title');
|
2108 |
-
},
|
2109 |
-
tooltipClass: 'edd-ui-tooltip',
|
2110 |
-
position: {
|
2111 |
-
my: 'center top',
|
2112 |
-
at: 'center bottom+10',
|
2113 |
-
collision: 'flipfit'
|
2114 |
-
},
|
2115 |
-
hide: {
|
2116 |
-
duration: 200
|
2117 |
-
},
|
2118 |
-
show: {
|
2119 |
-
duration: 200
|
2120 |
-
}
|
2121 |
-
});
|
2122 |
-
}
|
1 |
jQuery(document).ready(function ($) {
|
2 |
|
3 |
// Tooltips
|
4 |
+
$('.edd-help-tip').tooltip({
|
5 |
+
content: function() {
|
6 |
+
return $(this).prop('title');
|
7 |
+
},
|
8 |
+
tooltipClass: 'edd-ui-tooltip',
|
9 |
+
position: {
|
10 |
+
my: 'center top',
|
11 |
+
at: 'center bottom+10',
|
12 |
+
collision: 'flipfit',
|
13 |
+
},
|
14 |
+
hide: {
|
15 |
+
duration: 200,
|
16 |
+
},
|
17 |
+
show: {
|
18 |
+
duration: 200,
|
19 |
+
},
|
20 |
+
});
|
21 |
|
22 |
/**
|
23 |
* Download Configuration Metabox
|
36 |
|
37 |
// Retrieve the highest current key
|
38 |
var key = highest = 1;
|
39 |
+
row.parent().find( 'tr.edd_repeatable_row' ).each(function() {
|
40 |
var current = $(this).data( 'key' );
|
41 |
if( parseInt( current ) > highest ) {
|
42 |
highest = current;
|
54 |
clone.removeClass( 'edd_add_blank' );
|
55 |
|
56 |
clone.attr( 'data-key', key );
|
57 |
+
clone.find( 'td input, td select, textarea' ).val( '' );
|
58 |
+
clone.find( 'input, select, textarea' ).each(function() {
|
59 |
var name = $( this ).attr( 'name' );
|
60 |
var id = $( this ).attr( 'id' );
|
61 |
|
91 |
|
92 |
clone.find( '.edd_repeatable_condition_field' ).each ( function() {
|
93 |
$( this ).find( 'option:eq(0)' ).prop( 'selected', 'selected' );
|
94 |
+
} )
|
95 |
|
96 |
// Remove Chosen elements
|
97 |
clone.find( '.search-choice' ).remove();
|
98 |
clone.find( '.chosen-container' ).remove();
|
|
|
99 |
|
100 |
return clone;
|
101 |
},
|
104 |
$( document.body ).on( 'click', '.submit .edd_add_repeatable', function(e) {
|
105 |
e.preventDefault();
|
106 |
var button = $( this ),
|
107 |
+
row = button.parent().parent().prev( 'tr' ),
|
108 |
clone = EDD_Download_Configuration.clone_repeatable(row);
|
109 |
|
110 |
clone.insertAfter( row ).find('input, textarea, select').filter(':visible').eq(0).focus();
|
122 |
|
123 |
move : function() {
|
124 |
|
125 |
+
$(".edd_repeatable_table tbody").sortable({
|
126 |
+
handle: '.edd_draghandle', items: '.edd_repeatable_row', opacity: 0.6, cursor: 'move', axis: 'y', update: function() {
|
127 |
var count = 0;
|
128 |
+
$(this).find( 'tr' ).each(function() {
|
129 |
$(this).find( 'input.edd_repeatable_index' ).each(function() {
|
130 |
$( this ).val( count );
|
131 |
});
|
137 |
},
|
138 |
|
139 |
remove : function() {
|
140 |
+
$( document.body ).on( 'click', '.edd_remove_repeatable', function(e) {
|
141 |
e.preventDefault();
|
142 |
|
143 |
+
var row = $(this).parent().parent( 'tr' ),
|
144 |
+
count = row.parent().find( 'tr' ).length - 1,
|
145 |
type = $(this).data('type'),
|
146 |
+
repeatable = 'tr.edd_repeatable_' + type + 's',
|
147 |
focusElement,
|
148 |
focusable,
|
149 |
firstFocusable;
|
150 |
|
151 |
// Set focus on next element if removing the first row. Otherwise set focus on previous element.
|
152 |
+
if ( $(this).is( '.ui-sortable tr:first-child .edd_remove_repeatable:first-child' ) ) {
|
153 |
+
focusElement = row.next( 'tr' );
|
154 |
} else {
|
155 |
+
focusElement = row.prev( 'tr' );
|
156 |
}
|
157 |
|
158 |
focusable = focusElement.find( 'select, input, textarea, button' ).filter( ':visible' );
|
164 |
$( '.edd_repeatable_condition_field option[value="' + price_row_id + '"]' ).remove();
|
165 |
}
|
166 |
|
167 |
+
if( count > 1 ) {
|
168 |
$( 'input, select', row ).val( '' );
|
169 |
row.fadeOut( 'fast' ).remove();
|
170 |
firstFocusable.focus();
|
219 |
$( document.body ).on( 'change', '#edd_variable_pricing', function(e) {
|
220 |
var checked = $(this).is(':checked');
|
221 |
var single = $( '#edd_regular_price_field' );
|
222 |
+
var variable = $( '#edd_variable_price_fields,.edd_repeatable_table .pricing' );
|
|
|
223 |
if ( checked ) {
|
224 |
single.hide();
|
225 |
variable.show();
|
|
|
226 |
} else {
|
227 |
single.show();
|
228 |
variable.hide();
|
|
|
229 |
}
|
230 |
});
|
231 |
},
|
309 |
clone = EDD_Download_Configuration.clone_repeatable( row );
|
310 |
|
311 |
clone.find( '.edd_repeatable_attachment_id_field' ).val( attachment.id );
|
312 |
+
clone.find( 'edd_repeatable_thumbnail_size_field' ).val( selectedSize );
|
313 |
clone.find( '.edd_repeatable_upload_field' ).val( selectedURL );
|
314 |
clone.find( '.edd_repeatable_name_field' ).val( selectedName );
|
315 |
clone.insertAfter( row );
|
330 |
updatePrices: function() {
|
331 |
$( '#edd_price_fields' ).on( 'keyup', '.edd_variable_prices_name', function() {
|
332 |
|
333 |
+
var key = $( this ).parents( 'tr' ).data( 'key' ),
|
334 |
name = $( this ).val(),
|
335 |
field_option = $( '.edd_repeatable_condition_field option[value=' + key + ']' );
|
336 |
|
348 |
|
349 |
};
|
350 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
351 |
EDD_Download_Configuration.init();
|
352 |
|
353 |
//$('#edit-slug-box').remove();
|
413 |
// Remove a download from a purchase
|
414 |
$('#edd-purchased-files').on('click', '.edd-order-remove-download', function() {
|
415 |
|
416 |
+
var count = $( document.body ).find( '#edd-purchased-files > .row' ).length;
|
417 |
|
418 |
if ( count === 1 ) {
|
419 |
alert( edd_vars.one_download_min );
|
607 |
var row = $(this).parents('ul.edd-purchased-files-list-wrapper');
|
608 |
$( '.edd-order-payment-recalc-totals' ).show();
|
609 |
|
610 |
+
var quantity = row.find('input.edd-payment-details-download-quantity').val();
|
611 |
+
var item_price = row.find('input.edd-payment-details-download-item-price').val();
|
612 |
+
var item_tax = row.find('input.edd-payment-details-download-item-tax').val();
|
613 |
|
614 |
item_price = parseFloat( item_price );
|
615 |
if ( isNaN( item_price ) ) {
|
1069 |
taxes : function() {
|
1070 |
var no_states = $('select.edd-no-states');
|
1071 |
if( no_states.length ) {
|
1072 |
+
no_states.closest('tr').hide();
|
1073 |
}
|
1074 |
|
1075 |
// Update base state field based on selected base country
|
1082 |
};
|
1083 |
$.post(ajaxurl, data, function (response) {
|
1084 |
if( 'nostates' == response ) {
|
1085 |
+
$tr.next().hide();
|
1086 |
} else {
|
1087 |
+
$tr.next().show();
|
1088 |
$tr.next().find('select').replaceWith( response );
|
1089 |
}
|
1090 |
});
|
1266 |
});
|
1267 |
|
1268 |
$('.edd-select-chosen .chosen-search input').each( function() {
|
1269 |
+
var type = $(this).parent().parent().parent().prev('select.edd-select-chosen').data('search-type');
|
1270 |
+
var placeholder = '';
|
1271 |
+
|
1272 |
+
if ( type === 'download' ) {
|
1273 |
+
placeholder = edd_vars.search_placeholder;
|
1274 |
+
} else {
|
1275 |
+
var type = 'search_placeholder_' + type;
|
1276 |
+
if ( edd_vars[type] ) {
|
1277 |
+
placeholder = edd_vars[type];
|
1278 |
+
}
|
1279 |
+
}
|
1280 |
+
|
1281 |
$(this).attr( 'placeholder', placeholder );
|
1282 |
});
|
1283 |
|
1284 |
// Add placeholders for Chosen input fields
|
1285 |
$( '.chosen-choices' ).on( 'click', function () {
|
1286 |
+
$(this).children('li').children('input').attr( 'placeholder', edd_vars.type_to_search );
|
|
|
|
|
|
|
|
|
1287 |
});
|
1288 |
|
1289 |
// Variables for setting up the typing timer
|
1411 |
} );
|
1412 |
},
|
1413 |
recount_stats : function() {
|
1414 |
+
$( 'body').on( 'change', '#recount-stats-type', function() {
|
1415 |
|
1416 |
var export_form = $('#edd-tools-recount-form');
|
1417 |
var selected_type = $('option:selected', this).data('type');
|
1447 |
$('#' + selected_type ).show();
|
1448 |
} );
|
1449 |
|
1450 |
+
$('body').on('change', '#confirm-reset', function() {
|
1451 |
var checked = $(this).is(':checked');
|
1452 |
if ( checked ) {
|
1453 |
$('#recount-stats-submit').removeClass('button-disabled').removeAttr('disabled');
|
1594 |
},
|
1595 |
|
1596 |
dismiss_message : function() {
|
1597 |
+
$('body').on( 'click', '#edd-batch-success .notice-dismiss', function() {
|
1598 |
$('#edd-batch-success').parent().slideUp('fast');
|
1599 |
});
|
1600 |
}
|
1700 |
|
1701 |
});
|
1702 |
|
1703 |
+
$('body').on('click', '.edd-import-proceed', function(e) {
|
1704 |
|
1705 |
e.preventDefault();
|
1706 |
|
2042 |
});
|
2043 |
}
|
2044 |
|
2045 |
+
$(document).on('keydown', '.customer-note-input', function(e) {
|
2046 |
if(e.keyCode == 13 && (e.metaKey || e.ctrlKey)) {
|
2047 |
$('#add-customer-note').click();
|
2048 |
}
|
2093 |
jQuery('#edd-pie-legend-' + series.edd_vars.id).append( item );
|
2094 |
return item;
|
2095 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/js/admin-scripts.min.js
CHANGED
@@ -1,2 +1 @@
|
|
1 |
-
function edd_attach_tooltips(e){e.tooltip({content:function(){return jQuery(this).prop("title")},tooltipClass:"edd-ui-tooltip",position:{my:"center top",at:"center bottom+10",collision:"flipfit"},hide:{duration:200},show:{duration:200}})}jQuery(document).ready(function(e){var t=e(".edd-help-tip");edd_attach_tooltips(t);var d={init:function(){this.add(),this.move(),this.remove(),this.type(),this.prices(),this.files(),this.updatePrices()},clone_repeatable:function(t){var d=highest=1;return t.parent().find(".edd_repeatable_row").each(function(){var t=e(this).data("key");parseInt(t)>highest&&(highest=t)}),d=highest+=1,clone=t.clone(),clone.find("select").each(function(){e(this).val(t.find('select[name="'+e(this).attr("name")+'"]').val())}),clone.removeClass("edd_add_blank"),clone.attr("data-key",d),clone.find("input, select, textarea").val("").each(function(){var t=e(this).attr("name"),a=e(this).attr("id");t&&(t=t.replace(/\[(\d+)\]/,"["+parseInt(d)+"]"),e(this).attr("name",t)),e(this).attr("data-key",d),"undefined"!=typeof a&&(a=a.replace(/(\d+)/,parseInt(d)),e(this).attr("id",a))}),clone.find("span.edd_price_id").each(function(){e(this).text(parseInt(d))}),clone.find("span.edd_file_id").each(function(){e(this).text(parseInt(d))}),clone.find(".edd_repeatable_default_input").each(function(){e(this).val(parseInt(d)).removeAttr("checked")}),clone.find(".edd_repeatable_condition_field").each(function(){e(this).find("option:eq(0)").prop("selected","selected")}),clone.find(".search-choice").remove(),clone.find(".chosen-container").remove(),edd_attach_tooltips(clone.find(".edd-help-tip")),clone},add:function(){e(document.body).on("click",".submit .edd_add_repeatable",function(t){t.preventDefault();var a=e(this),n=a.parent().parent().prev(".edd_repeatable_row"),i=d.clone_repeatable(n);i.insertAfter(n).find("input, textarea, select").filter(":visible").eq(0).focus(),i.find(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),i.find(".edd-select-chosen").css("width","100%"),i.find(".edd-select-chosen .chosen-search input").attr("placeholder",edd_vars.search_placeholder)})},move:function(){e(".edd_repeatable_table .edd-repeatables-wrap").sortable({handle:".edd-draghandle-anchor",items:".edd_repeatable_row",opacity:.6,cursor:"move",axis:"y",update:function(){var t=0;e(this).find(".edd_repeatable_row").each(function(){e(this).find("input.edd_repeatable_index").each(function(){e(this).val(t)}),t++})}})},remove:function(){e(document.body).on("click",".edd-remove-row, .edd_remove_repeatable",function(t){t.preventDefault();var d,a,n,i=e(this).parents(".edd_repeatable_row"),o=i.parent().find(".edd_repeatable_row").length,r=e(this).data("type"),s="div.edd_repeatable_"+r+"s";if(d=e(this).is(".ui-sortable .edd_repeatable_row:first-child .edd-remove-row, .ui-sortable .edd_repeatable_row:first-child .edd_remove_repeatable")?i.next(".edd_repeatable_row"):i.prev(".edd_repeatable_row"),a=d.find("select, input, textarea, button").filter(":visible"),n=a.eq(0),"price"===r){var c=i.data("key");e('.edd_repeatable_condition_field option[value="'+c+'"]').remove()}if(o>1)e("input, select",i).val(""),i.fadeOut("fast").remove(),n.focus();else switch(r){case"price":alert(edd_vars.one_price_min);break;case"file":e("input, select",i).val("");break;default:alert(edd_vars.one_field_min)}e(s).each(function(t){e(this).find("input, select").each(function(){var d=e(this).attr("name");d=d.replace(/\[(\d+)\]/,"["+t+"]"),e(this).attr("name",d).attr("id",d)})})})},type:function(){e(document.body).on("change","#_edd_product_type",function(t){var d=e("#edd_products"),a=e("#edd_download_files"),n=e("#edd_download_limit_wrap");"bundle"===e(this).val()?(d.show(),a.hide(),n.hide()):(d.hide(),a.show(),n.show())})},prices:function(){e(document.body).on("change","#edd_variable_pricing",function(t){var d=e(this).is(":checked"),a=e("#edd_regular_price_field"),n=e("#edd_variable_price_fields, .edd_repeatable_table .pricing"),i=e(".edd-bundled-product-row, .edd-repeatable-row-standard-fields");d?(a.hide(),n.show(),i.addClass("has-variable-pricing")):(a.show(),n.hide(),i.removeClass("has-variable-pricing"))})},files:function(){var t;window.formfield="",e(document.body).on("click",".edd_upload_file_button",function(a){a.preventDefault();var n=e(this);return window.formfield=e(this).closest(".edd_repeatable_upload_wrapper"),t?void t.open():(t=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:n.data("uploader-title"),button:{text:n.data("uploader-button-text")},multiple:"0"==e(this).data("multiple")?!1:!0}),t.on("menu:render:default",function(e){var t={};e.unset("library-separator"),e.unset("gallery"),e.unset("featured-image"),e.unset("embed"),e.set(t)}),t.on("insert",function(){var a=t.state().get("selection");a.each(function(t,a){t=t.toJSON();var n="image"===t.type?e(".attachment-display-settings .size option:selected").val():!1,i=t.url,o=t.title.length>0?t.title:t.filename;if(n&&"undefined"!=typeof t.sizes[n]&&(i=t.sizes[n].url),"image"===t.type&&(o=n&&"undefined"!=typeof t.sizes[n]?o+"-"+t.sizes[n].width+"x"+t.sizes[n].height:o+"-"+t.width+"x"+t.height),0===a)window.formfield.find(".edd_repeatable_attachment_id_field").val(t.id),window.formfield.find(".edd_repeatable_thumbnail_size_field").val(n),window.formfield.find(".edd_repeatable_upload_field").val(i),window.formfield.find(".edd_repeatable_name_field").val(o);else{var r=window.formfield,s=d.clone_repeatable(r);s.find(".edd_repeatable_attachment_id_field").val(t.id),s.find(".edd_repeatable_thumbnail_size_field").val(n),s.find(".edd_repeatable_upload_field").val(i),s.find(".edd_repeatable_name_field").val(o),s.insertAfter(r)}})}),void t.open())});var t;window.formfield=""},updatePrices:function(){e("#edd_price_fields").on("keyup",".edd_variable_prices_name",function(){var t=e(this).parents(".edd_repeatable_row").data("key"),d=e(this).val(),a=e(".edd_repeatable_condition_field option[value="+t+"]");a.length>0?a.text(d):e(".edd_repeatable_condition_field").append(e("<option></option>").attr("value",t).text(d))})}};e(document.body).on("click",".toggle-custom-price-option-section",function(t){t.preventDefault();var d=e(this).html()==edd_vars.show_advanced_settings?!0:!1;d?e(this).html(edd_vars.hide_advanced_settings):e(this).html(edd_vars.show_advanced_settings);var a=e(this).parents(".edd-repeatable-row-header");a.siblings(".edd-custom-price-option-sections-wrap").slideToggle();var n;n=d?e(":input:not(input[type=button],input[type=submit],button):visible:first",a.siblings(".edd-custom-price-option-sections-wrap")):e(":input:not(input[type=button],input[type=submit],button):visible:first",a.siblings(".edd-repeatable-row-standard-fields")),n.focus()}),d.init();var a=e(".edd_datepicker");if(a.length>0){var n="mm/dd/yy";a.datepicker({dateFormat:n})}var i={init:function(){this.edit_address(),this.remove_download(),this.add_download(),this.change_customer(),this.new_customer(),this.edit_price(),this.recalculate_total(),this.variable_prices_check(),this.add_note(),this.remove_note(),this.resend_receipt(),this.copy_download_link()},edit_address:function(){e('select[name="edd-payment-address[0][country]"]').change(function(){var t=e(this),d={action:"edd_get_shop_states",country:t.val(),field_name:"edd-payment-address[0][state]"};return e.post(ajaxurl,d,function(t){var d=e("#edd-order-address-state-wrap select, #edd-order-address-state-wrap input");e("#edd-order-address-state-wrap .chosen-container").remove(),"nostates"==t?d.replaceWith('<input type="text" name="edd-payment-address[0][state]" value="" class="edd-edit-toggles medium-text"/>'):d.replaceWith(t)}),!1})},remove_download:function(){e("#edd-purchased-files").on("click",".edd-order-remove-download",function(){var t=e(document.body).find("#edd-purchased-files > .row:not(.header)").length;if(1===t)return alert(edd_vars.one_download_min),!1;if(confirm(edd_vars.delete_payment_download)){var d=e(this).data("key"),a=(e(".edd-payment-id").val(),e('input[name="edd-payment-details-downloads['+d+'][id]"]').val()),n=e('input[name="edd-payment-details-downloads['+d+'][price_id]"]').val(),i=e('input[name="edd-payment-details-downloads['+d+'][quantity]"]').val(),o=e('input[name="edd-payment-details-downloads['+d+'][amount]"]').val();if(e('input[name="edd-payment-details-downloads['+d+'][tax]"]'))var r=e('input[name="edd-payment-details-downloads['+d+'][tax]"]').val();if(e('input[name="edd-payment-details-downloads['+d+'][fees]"]'))var r=e.parseJSON(e('input[name="edd-payment-details-downloads['+d+'][fees]"]').val());var s=e('input[name="edd-payment-removed"]').val();s=e.parseJSON(s),s.length<1&&(s={});var c=[{id:a,price_id:n,quantity:i,amount:o,cart_index:d}];s[d]=c,e('input[name="edd-payment-removed"]').val(JSON.stringify(s)),e(this).parent().parent().remove(),r&&r.length&&e.each(r,function(t,d){e('*li[data-fee-id="'+d+'"]').remove()}),e("#edd-payment-downloads-changed").val(1),e(".edd-order-payment-recalc-totals").show()}return!1})},change_customer:function(){e("#edd-customer-details").on("click",".edd-payment-change-customer, .edd-payment-change-customer-cancel",function(t){t.preventDefault();var d=e(this).hasClass("edd-payment-change-customer"),a=e(this).hasClass("edd-payment-change-customer-cancel");d?(e(".customer-info").hide(),e(".change-customer").show(),e(".edd-payment-change-customer-input").css("width","auto")):a&&(e(".customer-info").show(),e(".change-customer").hide())})},new_customer:function(){e("#edd-customer-details").on("click",".edd-payment-new-customer, .edd-payment-new-customer-cancel",function(t){t.preventDefault();var d=e(this).hasClass("edd-payment-new-customer"),a=e(this).hasClass("edd-payment-new-customer-cancel");d?(e(".customer-info").hide(),e(".new-customer").show()):a&&(e(".customer-info").show(),e(".new-customer").hide());var d=e("#edd-new-customer");e(".new-customer").is(":visible")?d.val(1):d.val(0)})},add_download:function(){e(".edd-edit-purchase-element").on("click","#edd-order-add-download",function(t){t.preventDefault();var d=e("#edd_order_download_select"),a=e("#edd-order-download-quantity"),n=e("#edd-order-download-price"),i=e("#edd-order-download-tax"),o=e(".edd_price_options_select option:selected"),r=d.val(),s=d.find(":selected").text(),c=a.val(),l=n.val(),p=i.val(),u=o.val(),_=o.text();if(1>r)return!1;if(l||(l=0),l=parseFloat(l),isNaN(l))return alert(edd_vars.numeric_item_price),!1;if(p=parseFloat(p),isNaN(p))return alert(edd_vars.numeric_item_tax),!1;if(isNaN(parseInt(c)))return alert(edd_vars.numeric_quantity),!1;_&&(s=s+" - "+_);var m=e("#edd-purchased-files div.row").length,f=e("#edd-purchased-files div.row:last").clone();f.find(".download span").html('<a href="post.php?post='+r+'&action=edit"></a>'),f.find(".download span a").text(s),f.find(".edd-payment-details-download-item-price").val(l.toFixed(edd_vars.currency_decimals)),f.find(".edd-payment-details-download-item-tax").val(p.toFixed(edd_vars.currency_decimals)),f.find("input.edd-payment-details-download-id").val(r),f.find("input.edd-payment-details-download-price-id").val(u);var h=l*c+p;h=h.toFixed(edd_vars.currency_decimals),f.find("span.edd-payment-details-download-amount").text(h),f.find("input.edd-payment-details-download-amount").val(h),f.find("input.edd-payment-details-download-quantity").val(c),f.find("input.edd-payment-details-download-has-log").val(0),f.find(".edd-copy-download-link-wrapper").remove(),f.find("input").each(function(){var t=e(this).attr("name");t=t.replace(/\[(\d+)\]/,"["+parseInt(m)+"]"),e(this).attr("name",t).attr("id",t)}),f.find("a.edd-order-remove-download").attr("data-key",parseInt(m)),e("#edd-payment-downloads-changed").val(1),e(f).insertAfter("#edd-purchased-files div.row:last"),e(".edd-order-payment-recalc-totals").show(),e(".edd-add-download-field").val("")})},edit_price:function(){e(document.body).on("change keyup",".edd-payment-item-input",function(){var t=e(this).parents("ul.edd-purchased-files-list-wrapper");e(".edd-order-payment-recalc-totals").show();var d=t.find("input.edd-payment-details-download-quantity").val().replace(edd_vars.thousands_separator,""),a=t.find("input.edd-payment-details-download-item-price").val().replace(edd_vars.thousands_separator,""),n=t.find("input.edd-payment-details-download-item-tax").val().replace(edd_vars.thousands_separator,"");if(a=parseFloat(a),isNaN(a))return alert(edd_vars.numeric_item_price),!1;n=parseFloat(n),isNaN(n)&&(n=0),isNaN(parseInt(d))&&(d=1);var i=a*d+n;i=i.toFixed(edd_vars.currency_decimals),t.find("input.edd-payment-details-download-amount").val(i),t.find("span.edd-payment-details-download-amount").text(i)})},recalculate_total:function(){e("#edd-order-recalc-total").on("click",function(t){t.preventDefault();var d=0,a=0,n=e("#edd-purchased-files .row input.edd-payment-details-download-amount"),i=e("#edd-purchased-files .row input.edd-payment-details-download-item-tax");n.length&&n.each(function(){d+=parseFloat(e(this).val())}),i.length&&i.each(function(){a+=parseFloat(e(this).val())}),e(".edd-payment-fees").length&&e(".edd-payment-fees span.fee-amount").each(function(){d+=parseFloat(e(this).data("fee"))}),e("input[name=edd-payment-total]").val(d.toFixed(edd_vars.currency_decimals)),e("input[name=edd-payment-tax]").val(a.toFixed(edd_vars.currency_decimals))})},variable_prices_check:function(){e(".edd-edit-purchase-element").on("change","select#edd_order_download_select",function(){var t=e(this),d=t.val();if(parseInt(d)>0){var a={action:"edd_check_for_download_price_variations",download_id:d};e.ajax({type:"POST",data:a,url:ajaxurl,success:function(d){e(".edd_price_options_select").remove(),e(d).insertAfter(t.next())}}).fail(function(e){window.console&&window.console.log&&console.log(e)})}})},add_note:function(){e("#edd-add-payment-note").on("click",function(t){t.preventDefault();var d={action:"edd_insert_payment_note",payment_id:e(this).data("payment-id"),note:e("#edd-payment-note").val()};if(d.note)e.ajax({type:"POST",data:d,url:ajaxurl,success:function(t){e("#edd-payment-notes-inner").append(t),e(".edd-no-payment-notes").hide(),e("#edd-payment-note").val("")}}).fail(function(e){window.console&&window.console.log&&console.log(e)});else{var a=e("#edd-payment-note").css("border-color");e("#edd-payment-note").css("border-color","red"),setTimeout(function(){e("#edd-payment-note").css("border-color",a)},500)}})},remove_note:function(){e(document.body).on("click",".edd-delete-payment-note",function(t){if(t.preventDefault(),confirm(edd_vars.delete_payment_note)){var d={action:"edd_delete_payment_note",payment_id:e(this).data("payment-id"),note_id:e(this).data("note-id")};return e.ajax({type:"POST",data:d,url:ajaxurl,success:function(t){return e("#edd-payment-note-"+d.note_id).remove(),e(".edd-payment-note").length||e(".edd-no-payment-notes").show(),!1}}).fail(function(e){window.console&&window.console.log&&console.log(e)}),!0}})},resend_receipt:function(){var t=e(".edd-order-resend-receipt-addresses");e(document.body).on("click","#edd-select-receipt-email",function(e){e.preventDefault(),t.slideDown()}),e(document.body).on("change",".edd-order-resend-receipt-email",function(){var t=e("#edd-select-receipt-email").prop("href")+"&email="+e(this).val();confirm(edd_vars.resend_receipt)&&(window.location=t)}),e(document.body).on("click","#edd-resend-receipt",function(e){return confirm(edd_vars.resend_receipt)})},copy_download_link:function(){e(document.body).on("click",".edd-copy-download-link",function(t){t.preventDefault();var d=e(this),a={action:"edd_get_file_download_link",payment_id:e('input[name="edd_payment_id"]').val(),download_id:d.data("download-id"),price_id:d.data("price-id")};e.ajax({type:"POST",data:a,url:ajaxurl,success:function(t){return e("#edd-download-link").dialog({width:400}).html('<textarea rows="10" cols="40" id="edd-download-link-textarea">'+t+"</textarea>"),e("#edd-download-link-textarea").focus().select(),!1}}).fail(function(e){window.console&&window.console.log&&console.log(e)})})}};i.init();var o={init:function(){this.type_select(),this.product_requirements()},type_select:function(){e("#edd-edit-discount #edd-type, #edd-add-discount #edd-type").change(function(){var t=e(this).val();e(".edd-amount-description").hide(),e(".edd-amount-description."+t+"-discount").show()})},product_requirements:function(){e("#products").change(function(){var t=e("#edd-discount-product-conditions");e(this).val()?t.show():t.hide()})}};o.init();var r={init:function(){this.date_options(),this.customers_export()},date_options:function(){e("#edd-graphs-date-options").change(function(){var t=e(this),d=e("#edd-date-range-options");"other"===t.val()?d.show():d.hide()})},customers_export:function(){e("#edd_customer_export_download").change(function(){var t=e(this),d=e("option:selected",t).val(),a=e("#edd_customer_export_option");if("0"===t.val()?a.show():a.hide(),0!=parseInt(d)){var n={action:"edd_check_for_download_price_variations",download_id:d,all_prices:!0},i=e(".edd_price_options_select");e.post(ajaxurl,n,function(t){i.remove(),e("#edd_customer_export_download_chosen").after(t)})}else i.remove()})}};r.init();var s={init:function(){this.general(),this.taxes(),this.emails(),this.misc()},general:function(){var t=e(".edd-color-picker");if(t.length&&t.wpColorPicker(),"undefined"==typeof wp||"1"!==edd_vars.new_media_ui){var d=e(".edd_settings_upload_button");d.length>0&&(window.formfield="",e(document.body).on("click",d,function(t){t.preventDefault(),window.formfield=e(this).parent().prev(),window.tbframe_interval=setInterval(function(){jQuery("#TB_iframeContent").contents().find(".savesend .button").val(edd_vars.use_this_file).end().find("#insert-gallery, .wp-post-thumbnail").hide()},2e3),tb_show(edd_vars.add_new_download,"media-upload.php?TB_iframe=true")}),window.edd_send_to_editor=window.send_to_editor,window.send_to_editor=function(t){window.formfield?(imgurl=e("a","<div>"+t+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(t),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1})}else{var a;window.formfield="",e(document.body).on("click",".edd_settings_upload_button",function(t){t.preventDefault();var d=e(this);return window.formfield=e(this).parent().prev(),a?void a.open():(a=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:d.data("uploader_title"),button:{text:d.data("uploader_button_text")},multiple:!1}),a.on("menu:render:default",function(e){var t={};e.unset("library-separator"),e.unset("gallery"),e.unset("featured-image"),e.unset("embed"),e.set(t)}),a.on("insert",function(){var e=a.state().get("selection");e.each(function(e,t){e=e.toJSON(),window.formfield.val(e.url)})}),void a.open())});var a;window.formfield=""}},taxes:function(){var t=e("select.edd-no-states");t.length&&t.closest("tr").addClass("hidden"),e('select[name="edd_settings[base_country]"]').change(function(){var t=e(this),d=t.closest("tr"),a={action:"edd_get_shop_states",country:e(this).val(),field_name:"edd_settings[base_state]"};return e.post(ajaxurl,a,function(e){"nostates"==e?d.next().addClass("hidden"):(d.next().removeClass("hidden"),d.next().find("select").replaceWith(e))}),!1}),e(document.body).on("change","#edd_tax_rates select.edd-tax-country",function(){var t=e(this),d={action:"edd_get_shop_states",country:e(this).val(),field_name:t.attr("name").replace("country","state")};return e.post(ajaxurl,d,function(e){if("nostates"==e){var a='<input type="text" name="'+d.field_name+'" value=""/>';t.parent().next().find("select").replaceWith(a)}else t.parent().next().find("input,select").show(),t.parent().next().find("input,select").replaceWith(e)}),!1}),e("#edd_add_tax_rate").on("click",function(){var t=e("#edd_tax_rates tr:last"),d=t.clone(),a=t.parent().find("tr").length;return d.find("td input").not(":input[type=checkbox]").val(""),d.find('td [type="checkbox"]').attr("checked",!1),d.find("input, select").each(function(){var t=e(this).attr("name");t=t.replace(/\[(\d+)\]/,"["+parseInt(a)+"]"),e(this).attr("name",t).attr("id",t)}),d.find("label").each(function(){var t=e(this).attr("for");t=t.replace(/\[(\d+)\]/,"["+parseInt(a)+"]"),e(this).attr("for",t)}),d.insertAfter(t),!1}),e(document.body).on("click","#edd_tax_rates .edd_remove_tax_rate",function(){if(confirm(edd_vars.delete_tax_rate)){var t=e("#edd_tax_rates tr:visible"),d=t.length;2===d?(e("#edd_tax_rates select").val(""),e('#edd_tax_rates input[type="text"]').val(""),e('#edd_tax_rates input[type="number"]').val(""),e('#edd_tax_rates input[type="checkbox"]').attr("checked",!1)):e(this).closest("tr").remove(),e("#edd_tax_rates tr").each(function(t){e(this).children().find("input, select").each(function(){var d=e(this).attr("name");d=d.replace(/\[(\d+)\]/,"["+(t-1)+"]"),e(this).attr("name",d).attr("id",d)})})}return!1})},emails:function(){var t=e("#email-preview-wrap");if(t.length){var d=e("#email-preview");t.colorbox({inline:!0,href:d,width:"80%",height:"auto"})}},misc:function(){var t=e('select[name="edd_settings[download_method]"]'),d=t.parent().parent().next();"direct"==t.val()&&(d.hide(),d.find("input").prop("checked",!1)),t.on("change",function(){"direct"==e(this).val()?(d.hide(),d.find("input").prop("checked",!1)):d.show()})}};s.init(),e(".download_page_edd-payment-history .row-actions .delete a, a.edd-delete-payment").on("click",function(){return confirm(edd_vars.delete_payment)?!0:!1}),e("#the-list").on("click",".editinline",function(){var t=e(this).closest("tr").attr("id");t=t.replace("post-","");var d=e("#post-"+t),a=d.find(".column-price .downloadprice-"+t).val();a!=e("#post-"+t+".column-price .downloadprice-"+t).val()?e(".regprice","#edd-download-data").val(a).attr("disabled",!1):e(".regprice","#edd-download-data").val(edd_vars.quick_edit_warning).attr("disabled","disabled")}),e(document.body).on("click","#bulk_edit",function(){var t=e("#bulk-edit"),d=new Array;t.find("#bulk-titles").children().each(function(){d.push(e(this).attr("id").replace(/^(ttle)/i,""))});var a=e('#edd-download-data input[name="_edd_regprice"]').val(),n={action:"edd_save_bulk_edit",edd_bulk_nonce:d,post_ids:d,price:a};e.post(ajaxurl,n)}),e(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),e(".edd-select-chosen .chosen-search input").each(function(){var t=e(this).parent().parent().parent().prev("select.edd-select-chosen"),d=(t.data("search-type"),t.data("search-placeholder"));e(this).attr("placeholder",d)}),e(".chosen-choices").on("click",function(){var t=e(this).parent().prev().data("search-placeholder");"undefined"==typeof t&&(t=edd_vars.type_to_search),e(this).children("li").children("input").attr("placeholder",t)});var c,l=342;e(document.body).on("keyup",".edd-select.chosen-container .chosen-search input, .edd-select.chosen-container .search-field input",function(t){var d=e(this).val(),a=e(this).closest(".edd-select-chosen"),n=(a.attr("id").replace("_chosen",""),a.prev()),i=a.hasClass("no-bundles"),o=a.hasClass("variations"),r=t.which,s="edd_download_search";if(a.prev().data("search-type")){if("no_ajax"==n.data("search-type"))return;s="edd_"+n.data("search-type")+"_search"}d.length<=3&&"edd_download_search"==s||16==r||13==r||91==r||17==r||37==r||38==r||39==r||40==r||(clearTimeout(c),c=setTimeout(function(){e.ajax({type:"GET",url:ajaxurl,data:{action:s,s:d,no_bundles:i,variations:o},dataType:"json",beforeSend:function(){n.closest("ul.chosen-results").empty()},success:function(t){e("option:not(:selected)",n).remove(),e.each(t,function(t,d){e('option[value="'+d.id+'"]',n).length||n.prepend('<option value="'+d.id+'">'+d.name+"</option>")}),e(".edd-select-chosen").trigger("chosen:updated"),n.next().find("input").val(d)}}).fail(function(e){window.console&&window.console.log&&console.log(e)}).done(function(e){})},l))}),e("#post").on("click",".edd-thickbox",function(){e(".edd-select-chosen","#choose-download").css("width","100%")});var p={init:function(){this.revoke_api_key(),this.regenerate_api_key(),this.create_api_key(),this.recount_stats()},revoke_api_key:function(){e(document.body).on("click",".edd-revoke-api-key",function(e){return confirm(edd_vars.revoke_api_key)})},regenerate_api_key:function(){e(document.body).on("click",".edd-regenerate-api-key",function(e){return confirm(edd_vars.regenerate_api_key)})},create_api_key:function(){e(document.body).on("submit","#api-key-generate-form",function(t){var d=e('input[type="text"][name="user_id"]');d.css("border-color","#ddd");var a=d.val();return a.length<1||0==a?(d.css("border-color","#ff0000"),!1):void 0})},recount_stats:function(){e(document.body).on("change","#recount-stats-type",function(){var t=e("#edd-tools-recount-form"),d=e("option:selected",this).data("type"),a=e("#recount-stats-submit"),n=e("#tools-product-dropdown");if(t.find(".notice-wrap").remove(),a.removeClass("button-disabled").attr("disabled",!1),n.hide(),e(".edd-recount-stats-descriptions span").hide(),"recount-download"===d)n.show(),n.find(".edd-select-chosen").css("width","auto");else if("reset-stats"===d){t.append('<div class="notice-wrap"></div>');var i=t.find(".notice-wrap");i.html('<div class="notice notice-warning"><p><input type="checkbox" id="confirm-reset" name="confirm_reset_store" value="1" /> <label for="confirm-reset">'+edd_vars.reset_stats_warn+"</label></p></div>"),e("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}else n.hide(),n.val(0);e("#"+d).show()}),e(document.body).on("change","#confirm-reset",function(){var t=e(this).is(":checked");t?e("#recount-stats-submit").removeClass("button-disabled").removeAttr("disabled"):e("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}),e("#edd-tools-recount-form").submit(function(t){var d=e("#recount-stats-type").val(),a=e(this),n=e("option:selected",this).data("type");if("reset-stats"===n){var i=e("#confirm-reset").is(":checked");if(i)return!0;r=!0}a.find(".notice-wrap").remove(),a.append('<div class="notice-wrap"></div>');var o=a.find(".notice-wrap"),r=!1;if((null===d||0===d)&&(o.html('<div class="updated error"><p>'+edd_vars.batch_export_no_class+"</p></div>"),r=!0),"recount-download"===n){var s=e('select[name="download_id"]').val();0==s&&(o.html('<div class="updated error"><p>'+edd_vars.batch_export_no_reqs+"</p></div>"),r=!0)}return r?(a.find(".button-disabled").removeClass("button-disabled"),!1):void 0})}};p.init();var u={init:function(){this.submit(),this.dismiss_message()},submit:function(){var t=this;e(document.body).on("submit",".edd-export-form",function(d){d.preventDefault();var a=e(this).find('input[type="submit"]');if(!a.hasClass("button-disabled")){var n=e(this).serialize();a.addClass("button-disabled"),e(this).find(".notice-wrap").remove(),e(this).append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),t.process_step(1,n,t)}})},process_step:function(t,d,a){e.ajax({type:"POST",url:ajaxurl,data:{form:d,action:"edd_do_ajax_export",step:t},dataType:"json",success:function(t){if("done"==t.step||t.error||t.success){var n=e(".edd-export-form").find(".edd-progress").parent().parent(),i=n.find(".notice-wrap");if(n.find(".button-disabled").removeClass("button-disabled"),t.error){var o=t.message;i.html('<div class="updated error"><p>'+o+"</p></div>")}else if(t.success){var r=t.message;i.html('<div id="edd-batch-success" class="updated notice is-dismissible"><p>'+r+'<span class="notice-dismiss"></span></p></div>')}else i.remove(),window.location=t.url}else e(".edd-progress div").animate({width:t.percentage+"%"},50,function(){}),a.process_step(parseInt(t.step),d,a)}}).fail(function(e){window.console&&window.console.log&&console.log(e)})},dismiss_message:function(){e(document.body).on("click","#edd-batch-success .notice-dismiss",function(){e("#edd-batch-success").parent().slideUp("fast")})}};u.init();var _={init:function(){this.submit()},submit:function(){var t=this;e(".edd-import-form").ajaxForm({beforeSubmit:t.before_submit,success:t.success,complete:t.complete,dataType:"json",error:t.error})},before_submit:function(t,d,a){if(d.find(".notice-wrap").remove(),d.append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),!(window.File&&window.FileReader&&window.FileList&&window.Blob)){var n=e(".edd-import-form").find(".edd-progress").parent().parent(),i=n.find(".notice-wrap");return n.find(".button-disabled").removeClass("button-disabled"),i.html('<div class="update error"><p>'+edd_vars.unsupported_browser+"</p></div>"),!1}},success:function(e,t,d,a){},complete:function(t){var d=jQuery.parseJSON(t.responseText);if(d.success){var a=e(".edd-import-form .notice-wrap").parent();a.find(".edd-import-file-wrap,.notice-wrap").remove(),a.find(".edd-import-options").slideDown();var n=a.find("select.edd-import-csv-column"),i=(n.parent().parent(),""),o=d.data.columns.sort(function(e,t){return t>e?-1:e>t?1:0});e.each(o,function(e,t){i+='<option value="'+t+'">'+t+"</option>"}),n.append(i),n.on("change",function(){var t=e(this).val();t&&0!=d.data.first_row[t]?e(this).parent().next().html(d.data.first_row[t]):e(this).parent().next().html("")}),e(document.body).on("click",".edd-import-proceed",function(e){e.preventDefault(),a.append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),d.data.mapping=a.serialize(),_.process_step(1,d.data,self)})}else _.error(t)},error:function(t){var d=jQuery.parseJSON(t.responseText),a=e(".edd-import-form").find(".edd-progress").parent().parent(),n=a.find(".notice-wrap");a.find(".button-disabled").removeClass("button-disabled"),d.data.error?n.html('<div class="update error"><p>'+d.data.error+"</p></div>"):n.remove()},process_step:function(t,d,a){e.ajax({type:"POST",url:ajaxurl,data:{form:d.form,nonce:d.nonce,"class":d["class"],upload:d.upload,mapping:d.mapping,action:"edd_do_ajax_import",step:t},dataType:"json",success:function(t){if("done"==t.data.step||t.data.error){var n=e(".edd-import-form").find(".edd-progress").parent().parent(),i=n.find(".notice-wrap");n.find(".button-disabled").removeClass("button-disabled"),t.data.error?i.html('<div class="update error"><p>'+t.data.error+"</p></div>"):(n.find(".edd-import-options").hide(),e("html, body").animate({scrollTop:n.parent().offset().top},500),i.html('<div class="updated"><p>'+t.data.message+"</p></div>"))}else e(".edd-progress div").animate({width:t.data.percentage+"%"},50,function(){}),_.process_step(parseInt(t.data.step),d,a)}}).fail(function(e){window.console&&window.console.log&&console.log(e)})}};_.init();var m={vars:{customer_card_wrap_editable:e(".edd-customer-card-wrapper .editable"),customer_card_wrap_edit_item:e(".edd-customer-card-wrapper .edit-item"),user_id:e('input[name="customerinfo[user_id]"]'),state_input:e(':input[name="customerinfo[state]"]'),note:e("#customer-note")},init:function(){this.edit_customer(),this.add_email(),this.user_search(),this.remove_user(),this.cancel_edit(),this.change_country(),this.add_note(),this.delete_checked()},edit_customer:function(){e(document.body).on("click","#edit-customer",function(e){e.preventDefault(),m.vars.customer_card_wrap_editable.hide(),m.vars.customer_card_wrap_edit_item.fadeIn().css("display","block")})},add_email:function(){e(document.body).on("click","#add-customer-email",function(t){t.preventDefault();var d=e(this),a=d.parent();a.parent().find(".notice-wrap").remove(),a.find(".spinner").css("visibility","visible"),d.attr("disabled",!0);var n=a.find('input[name="customer-id"]').val(),i=a.find('input[name="additional-email"]').val(),o=a.find('input[name="make-additional-primary"]').is(":checked"),r=a.find('input[name="add_email_nonce"]').val(),s={edd_action:"customer-add-email",customer_id:n,email:i,primary:o,_wpnonce:r};e.post(ajaxurl,s,function(e){!0===e.success?window.location.href=e.redirect:(d.attr("disabled",!1),
|
2 |
-
a.after('<div class="notice-wrap"><div class="notice notice-error inline"><p>'+e.message+"</p></div></div>"),a.find(".spinner").css("visibility","hidden"))},"json")})},user_search:function(){e(document.body).on("click.eddSelectUser",".edd_user_search_results a",function(t){t.preventDefault();var d=e(this).data("userid");m.vars.user_id.val(d)})},remove_user:function(){e(document.body).on("click","#disconnect-customer",function(t){t.preventDefault();var d=e('input[name="customerinfo[id]"]').val(),a={edd_action:"disconnect-userid",customer_id:d,_wpnonce:e("#edit-customer-info #_wpnonce").val()};e.post(ajaxurl,a,function(e){window.location.href=window.location.href},"json")})},cancel_edit:function(){e(document.body).on("click","#edd-edit-customer-cancel",function(t){t.preventDefault(),m.vars.customer_card_wrap_edit_item.hide(),m.vars.customer_card_wrap_editable.show(),e(".edd_user_search_results").html("")})},change_country:function(){e('select[name="customerinfo[country]"]').change(function(){var t=e(this),d={action:"edd_get_shop_states",country:t.val(),field_name:"customerinfo[state]"};return e.post(ajaxurl,d,function(e){"nostates"==e?m.vars.state_input.replaceWith('<input type="text" name="'+d.field_name+'" value="" class="edd-edit-toggles medium-text"/>'):m.vars.state_input.replaceWith(e)}),!1})},add_note:function(){e(document.body).on("click","#add-customer-note",function(t){t.preventDefault();var d={edd_action:"add-customer-note",customer_id:e("#customer-id").val(),customer_note:m.vars.note.val(),add_customer_note_nonce:e("#add_customer_note_nonce").val()};if(d.customer_note)e.ajax({type:"POST",data:d,url:ajaxurl,success:function(t){e("#edd-customer-notes").prepend(t),e(".edd-no-customer-notes").hide(),m.vars.note.val("")}}).fail(function(e){window.console&&window.console.log&&console.log(e)});else{var a=m.vars.note.css("border-color");m.vars.note.css("border-color","red"),setTimeout(function(){m.vars.note.css("border-color",a)},500)}})},delete_checked:function(){e("#edd-customer-delete-confirm").change(function(){var t=e("#edd-customer-delete-records"),d=e("#edd-delete-customer");e(this).prop("checked")?(t.attr("disabled",!1),d.attr("disabled",!1)):(t.attr("disabled",!0),t.prop("checked",!1),d.attr("disabled",!0))})}};m.init(),e(".edd-ajax-user-search").keyup(function(){var t=e(this).val(),d="";e(this).data("exclude")&&(d=e(this).data("exclude")),e(".edd-ajax").show();var a={action:"edd_search_users",user_name:t,exclude:d};document.body.style.cursor="wait",e.ajax({type:"POST",data:a,dataType:"json",url:ajaxurl,success:function(t){e(".edd-ajax").hide(),e(".edd_user_search_results").removeClass("hidden"),e(".edd_user_search_results span").html(""),e(t.results).appendTo(".edd_user_search_results span"),document.body.style.cursor="default"}})}),e(document.body).on("click.eddSelectUser",".edd_user_search_results span a",function(t){t.preventDefault();var d=e(this).data("login");e(".edd-ajax-user-search").val(d),e(".edd_user_search_results").addClass("hidden"),e(".edd_user_search_results span").html("")}),e(document.body).on("click.eddCancelUserSearch",".edd_user_search_results a.edd-ajax-user-cancel",function(t){t.preventDefault(),e(".edd-ajax-user-search").val(""),e(".edd_user_search_results").addClass("hidden"),e(".edd_user_search_results span").html("")}),e("#edd_dashboard_sales").length&&e.ajax({type:"GET",data:{action:"edd_load_dashboard_widget"},url:ajaxurl,success:function(t){e("#edd_dashboard_sales .inside").html(t)}}),e(document.body).on("keydown",".customer-note-input",function(t){13==t.keyCode&&(t.metaKey||t.ctrlKey)&&e("#add-customer-note").click()})});var eddFormatCurrency=function(e){var t=parseFloat(e),d=edd_vars.currency,a=edd_vars.currency_decimals;return t.toLocaleString(d,{style:"currency",currency:d,minimumFractionDigits:a,maximumFractionDigits:a})},eddFormatNumber=function(e){var t=parseFloat(e),d=edd_vars.currency;edd_vars.currency_decimals;return t.toLocaleString(d,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:0})},eddLabelFormatter=function(e,t){return'<div style="font-size:12px; text-align:center; padding:2px">'+e+"</div>"},eddLegendFormatterSales=function(e,t){var d=e.toLowerCase().replace(/\s/g,"-"),a='<div class="edd-legend-color" style="background-color: '+t.color+'"></div>',n='<div class="edd-pie-legend-item">'+e+": "+Math.round(t.percent)+"% ("+eddFormatNumber(t.data[0][1])+")</div>",i='<div id="'+t.edd_vars.id+d+'" class="edd-legend-item-wrapper">'+a+n+"</div>";return jQuery("#edd-pie-legend-"+t.edd_vars.id).append(i),i},eddLegendFormatterEarnings=function(e,t){var d=e.toLowerCase().replace(/\s/g,"-"),a='<div class="edd-legend-color" style="background-color: '+t.color+'"></div>',n='<div class="edd-pie-legend-item">'+e+": "+Math.round(t.percent)+"% ("+eddFormatCurrency(t.data[0][1])+")</div>",i='<div id="'+t.edd_vars.id+d+'" class="edd-legend-item-wrapper">'+a+n+"</div>";return jQuery("#edd-pie-legend-"+t.edd_vars.id).append(i),i};
|
1 |
+
jQuery(document).ready(function(a){a(".edd-help-tip").tooltip({content:function(){return a(this).prop("title")},tooltipClass:"edd-ui-tooltip",position:{my:"center top",at:"center bottom+10",collision:"flipfit"},hide:{duration:200},show:{duration:200}});var b={init:function(){this.add(),this.move(),this.remove(),this.type(),this.prices(),this.files(),this.updatePrices()},clone_repeatable:function(b){var c=highest=1;return b.parent().find("tr.edd_repeatable_row").each(function(){var b=a(this).data("key");parseInt(b)>highest&&(highest=b)}),c=highest+=1,clone=b.clone(),clone.find("select").each(function(){a(this).val(b.find('select[name="'+a(this).attr("name")+'"]').val())}),clone.removeClass("edd_add_blank"),clone.attr("data-key",c),clone.find("td input, td select, textarea").val(""),clone.find("input, select, textarea").each(function(){var b=a(this).attr("name"),d=a(this).attr("id");b&&(b=b.replace(/\[(\d+)\]/,"["+parseInt(c)+"]"),a(this).attr("name",b)),a(this).attr("data-key",c),void 0!==d&&(d=d.replace(/(\d+)/,parseInt(c)),a(this).attr("id",d))}),clone.find("span.edd_price_id").each(function(){a(this).text(parseInt(c))}),clone.find("span.edd_file_id").each(function(){a(this).text(parseInt(c))}),clone.find(".edd_repeatable_default_input").each(function(){a(this).val(parseInt(c)).removeAttr("checked")}),clone.find(".edd_repeatable_condition_field").each(function(){a(this).find("option:eq(0)").prop("selected","selected")}),clone.find(".search-choice").remove(),clone.find(".chosen-container").remove(),clone},add:function(){a(document.body).on("click",".submit .edd_add_repeatable",function(c){c.preventDefault();var d=a(this),e=d.parent().parent().prev("tr"),f=b.clone_repeatable(e);f.insertAfter(e).find("input, textarea, select").filter(":visible").eq(0).focus(),f.find(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),f.find(".edd-select-chosen").css("width","100%"),f.find(".edd-select-chosen .chosen-search input").attr("placeholder",edd_vars.search_placeholder)})},move:function(){a(".edd_repeatable_table tbody").sortable({handle:".edd_draghandle",items:".edd_repeatable_row",opacity:.6,cursor:"move",axis:"y",update:function(){var b=0;a(this).find("tr").each(function(){a(this).find("input.edd_repeatable_index").each(function(){a(this).val(b)}),b++})}})},remove:function(){a(document.body).on("click",".edd_remove_repeatable",function(b){b.preventDefault();var g,h,i,c=a(this).parent().parent("tr"),d=c.parent().find("tr").length-1,e=a(this).data("type"),f="tr.edd_repeatable_"+e+"s";if(g=a(this).is(".ui-sortable tr:first-child .edd_remove_repeatable:first-child")?c.next("tr"):c.prev("tr"),h=g.find("select, input, textarea, button").filter(":visible"),i=h.eq(0),"price"===e){var j=c.data("key");a('.edd_repeatable_condition_field option[value="'+j+'"]').remove()}if(d>1)a("input, select",c).val(""),c.fadeOut("fast").remove(),i.focus();else switch(e){case"price":alert(edd_vars.one_price_min);break;case"file":a("input, select",c).val("");break;default:alert(edd_vars.one_field_min)}a(f).each(function(b){a(this).find("input, select").each(function(){var c=a(this).attr("name");c=c.replace(/\[(\d+)\]/,"["+b+"]"),a(this).attr("name",c).attr("id",c)})})})},type:function(){a(document.body).on("change","#_edd_product_type",function(b){var c=a("#edd_products"),d=a("#edd_download_files"),e=a("#edd_download_limit_wrap");"bundle"===a(this).val()?(c.show(),d.hide(),e.hide()):(c.hide(),d.show(),e.show())})},prices:function(){a(document.body).on("change","#edd_variable_pricing",function(b){var c=a(this).is(":checked"),d=a("#edd_regular_price_field"),e=a("#edd_variable_price_fields,.edd_repeatable_table .pricing");c?(d.hide(),e.show()):(d.show(),e.hide())})},files:function(){var c;window.formfield="",a(document.body).on("click",".edd_upload_file_button",function(d){d.preventDefault();var e=a(this);if(window.formfield=a(this).closest(".edd_repeatable_upload_wrapper"),c)return void c.open();c=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:e.data("uploader-title"),button:{text:e.data("uploader-button-text")},multiple:"0"!=a(this).data("multiple")}),c.on("menu:render:default",function(a){var b={};a.unset("library-separator"),a.unset("gallery"),a.unset("featured-image"),a.unset("embed"),a.set(b)}),c.on("insert",function(){c.state().get("selection").each(function(c,d){c=c.toJSON();var e="image"===c.type&&a(".attachment-display-settings .size option:selected").val(),f=c.url,g=c.title.length>0?c.title:c.filename;if(e&&void 0!==c.sizes[e]&&(f=c.sizes[e].url),"image"===c.type&&(g=e&&void 0!==c.sizes[e]?g+"-"+c.sizes[e].width+"x"+c.sizes[e].height:g+"-"+c.width+"x"+c.height),0===d)window.formfield.find(".edd_repeatable_attachment_id_field").val(c.id),window.formfield.find(".edd_repeatable_thumbnail_size_field").val(e),window.formfield.find(".edd_repeatable_upload_field").val(f),window.formfield.find(".edd_repeatable_name_field").val(g);else{var h=window.formfield,i=b.clone_repeatable(h);i.find(".edd_repeatable_attachment_id_field").val(c.id),i.find("edd_repeatable_thumbnail_size_field").val(e),i.find(".edd_repeatable_upload_field").val(f),i.find(".edd_repeatable_name_field").val(g),i.insertAfter(h)}})}),c.open()});var c;window.formfield=""},updatePrices:function(){a("#edd_price_fields").on("keyup",".edd_variable_prices_name",function(){var b=a(this).parents("tr").data("key"),c=a(this).val(),d=a(".edd_repeatable_condition_field option[value="+b+"]");d.length>0?d.text(c):a(".edd_repeatable_condition_field").append(a("<option></option>").attr("value",b).text(c))})}};b.init();var c=a(".edd_datepicker");if(c.length>0){c.datepicker({dateFormat:"mm/dd/yy"})}({init:function(){this.edit_address(),this.remove_download(),this.add_download(),this.change_customer(),this.new_customer(),this.edit_price(),this.recalculate_total(),this.variable_prices_check(),this.add_note(),this.remove_note(),this.resend_receipt(),this.copy_download_link()},edit_address:function(){a('select[name="edd-payment-address[0][country]"]').change(function(){var b=a(this),c={action:"edd_get_shop_states",country:b.val(),field_name:"edd-payment-address[0][state]"};return a.post(ajaxurl,c,function(b){var c=a("#edd-order-address-state-wrap select, #edd-order-address-state-wrap input");a("#edd-order-address-state-wrap .chosen-container").remove(),"nostates"==b?c.replaceWith('<input type="text" name="edd-payment-address[0][state]" value="" class="edd-edit-toggles medium-text"/>'):c.replaceWith(b)}),!1})},remove_download:function(){a("#edd-purchased-files").on("click",".edd-order-remove-download",function(){if(1===a(document.body).find("#edd-purchased-files > .row").length)return alert(edd_vars.one_download_min),!1;if(confirm(edd_vars.delete_payment_download)){var c=a(this).data("key"),e=(a(".edd-payment-id").val(),a('input[name="edd-payment-details-downloads['+c+'][id]"]').val()),f=a('input[name="edd-payment-details-downloads['+c+'][price_id]"]').val(),g=a('input[name="edd-payment-details-downloads['+c+'][quantity]"]').val(),h=a('input[name="edd-payment-details-downloads['+c+'][amount]"]').val();if(a('input[name="edd-payment-details-downloads['+c+'][tax]"]'))var i=a('input[name="edd-payment-details-downloads['+c+'][tax]"]').val();if(a('input[name="edd-payment-details-downloads['+c+'][fees]"]'))var i=a.parseJSON(a('input[name="edd-payment-details-downloads['+c+'][fees]"]').val());var j=a('input[name="edd-payment-removed"]').val();j=a.parseJSON(j),j.length<1&&(j={});var k=[{id:e,price_id:f,quantity:g,amount:h,cart_index:c}];j[c]=k,a('input[name="edd-payment-removed"]').val(JSON.stringify(j)),a(this).parent().parent().remove(),i&&i.length&&a.each(i,function(b,c){a('*li[data-fee-id="'+c+'"]').remove()}),a("#edd-payment-downloads-changed").val(1),a(".edd-order-payment-recalc-totals").show()}return!1})},change_customer:function(){a("#edd-customer-details").on("click",".edd-payment-change-customer, .edd-payment-change-customer-cancel",function(b){b.preventDefault();var c=a(this).hasClass("edd-payment-change-customer"),d=a(this).hasClass("edd-payment-change-customer-cancel");c?(a(".customer-info").hide(),a(".change-customer").show(),a(".edd-payment-change-customer-input").css("width","auto")):d&&(a(".customer-info").show(),a(".change-customer").hide())})},new_customer:function(){a("#edd-customer-details").on("click",".edd-payment-new-customer, .edd-payment-new-customer-cancel",function(b){b.preventDefault();var c=a(this).hasClass("edd-payment-new-customer"),d=a(this).hasClass("edd-payment-new-customer-cancel");c?(a(".customer-info").hide(),a(".new-customer").show()):d&&(a(".customer-info").show(),a(".new-customer").hide());var c=a("#edd-new-customer");a(".new-customer").is(":visible")?c.val(1):c.val(0)})},add_download:function(){a(".edd-edit-purchase-element").on("click","#edd-order-add-download",function(b){b.preventDefault();var c=a("#edd_order_download_select"),d=a("#edd-order-download-quantity"),e=a("#edd-order-download-price"),f=a("#edd-order-download-tax"),g=a(".edd_price_options_select option:selected"),h=c.val(),i=c.find(":selected").text(),j=d.val(),k=e.val(),l=f.val(),m=g.val(),n=g.text();if(h<1)return!1;if(k||(k=0),k=parseFloat(k),isNaN(k))return alert(edd_vars.numeric_item_price),!1;if(l=parseFloat(l),isNaN(l))return alert(edd_vars.numeric_item_tax),!1;if(isNaN(parseInt(j)))return alert(edd_vars.numeric_quantity),!1;n&&(i=i+" - "+n);var o=a("#edd-purchased-files div.row").length,p=a("#edd-purchased-files div.row:last").clone();p.find(".download span").html('<a href="post.php?post='+h+'&action=edit"></a>'),p.find(".download span a").text(i),p.find(".edd-payment-details-download-item-price").val(k.toFixed(edd_vars.currency_decimals)),p.find(".edd-payment-details-download-item-tax").val(l.toFixed(edd_vars.currency_decimals)),p.find("input.edd-payment-details-download-id").val(h),p.find("input.edd-payment-details-download-price-id").val(m);var q=k*j+l;q=q.toFixed(edd_vars.currency_decimals),p.find("span.edd-payment-details-download-amount").text(q),p.find("input.edd-payment-details-download-amount").val(q),p.find("input.edd-payment-details-download-quantity").val(j),p.find("input.edd-payment-details-download-has-log").val(0),p.find(".edd-copy-download-link-wrapper").remove(),p.find("input").each(function(){var b=a(this).attr("name");b=b.replace(/\[(\d+)\]/,"["+parseInt(o)+"]"),a(this).attr("name",b).attr("id",b)}),p.find("a.edd-order-remove-download").attr("data-key",parseInt(o)),a("#edd-payment-downloads-changed").val(1),a(p).insertAfter("#edd-purchased-files div.row:last"),a(".edd-order-payment-recalc-totals").show(),a(".edd-add-download-field").val("")})},edit_price:function(){a(document.body).on("change keyup",".edd-payment-item-input",function(){var b=a(this).parents("ul.edd-purchased-files-list-wrapper");a(".edd-order-payment-recalc-totals").show();var c=b.find("input.edd-payment-details-download-quantity").val(),d=b.find("input.edd-payment-details-download-item-price").val(),e=b.find("input.edd-payment-details-download-item-tax").val();if(d=parseFloat(d),isNaN(d))return alert(edd_vars.numeric_item_price),!1;e=parseFloat(e),isNaN(e)&&(e=0),isNaN(parseInt(c))&&(c=1);var f=d*c+e;f=f.toFixed(edd_vars.currency_decimals),b.find("input.edd-payment-details-download-amount").val(f),b.find("span.edd-payment-details-download-amount").text(f)})},recalculate_total:function(){a("#edd-order-recalc-total").on("click",function(b){b.preventDefault();var c=0,d=0,e=a("#edd-purchased-files .row input.edd-payment-details-download-amount"),f=a("#edd-purchased-files .row input.edd-payment-details-download-item-tax");e.length&&e.each(function(){c+=parseFloat(a(this).val())}),f.length&&f.each(function(){d+=parseFloat(a(this).val())}),a(".edd-payment-fees").length&&a(".edd-payment-fees span.fee-amount").each(function(){c+=parseFloat(a(this).data("fee"))}),a("input[name=edd-payment-total]").val(c.toFixed(edd_vars.currency_decimals)),a("input[name=edd-payment-tax]").val(d.toFixed(edd_vars.currency_decimals))})},variable_prices_check:function(){a(".edd-edit-purchase-element").on("change","select#edd_order_download_select",function(){var b=a(this),c=b.val();if(parseInt(c)>0){var d={action:"edd_check_for_download_price_variations",download_id:c};a.ajax({type:"POST",data:d,url:ajaxurl,success:function(c){a(".edd_price_options_select").remove(),a(c).insertAfter(b.next())}}).fail(function(a){window.console&&window.console.log&&console.log(a)})}})},add_note:function(){a("#edd-add-payment-note").on("click",function(b){b.preventDefault();var c={action:"edd_insert_payment_note",payment_id:a(this).data("payment-id"),note:a("#edd-payment-note").val()};if(c.note)a.ajax({type:"POST",data:c,url:ajaxurl,success:function(b){a("#edd-payment-notes-inner").append(b),a(".edd-no-payment-notes").hide(),a("#edd-payment-note").val("")}}).fail(function(a){window.console&&window.console.log&&console.log(a)});else{var d=a("#edd-payment-note").css("border-color");a("#edd-payment-note").css("border-color","red"),setTimeout(function(){a("#edd-payment-note").css("border-color",d)},500)}})},remove_note:function(){a(document.body).on("click",".edd-delete-payment-note",function(b){if(b.preventDefault(),confirm(edd_vars.delete_payment_note)){var c={action:"edd_delete_payment_note",payment_id:a(this).data("payment-id"),note_id:a(this).data("note-id")};return a.ajax({type:"POST",data:c,url:ajaxurl,success:function(b){return a("#edd-payment-note-"+c.note_id).remove(),a(".edd-payment-note").length||a(".edd-no-payment-notes").show(),!1}}).fail(function(a){window.console&&window.console.log&&console.log(a)}),!0}})},resend_receipt:function(){var b=a(".edd-order-resend-receipt-addresses");a(document.body).on("click","#edd-select-receipt-email",function(a){a.preventDefault(),b.slideDown()}),a(document.body).on("change",".edd-order-resend-receipt-email",function(){var b=a("#edd-select-receipt-email").prop("href")+"&email="+a(this).val();confirm(edd_vars.resend_receipt)&&(window.location=b)}),a(document.body).on("click","#edd-resend-receipt",function(a){return confirm(edd_vars.resend_receipt)})},copy_download_link:function(){a(document.body).on("click",".edd-copy-download-link",function(b){b.preventDefault();var c=a(this),d={action:"edd_get_file_download_link",payment_id:a('input[name="edd_payment_id"]').val(),download_id:c.data("download-id"),price_id:c.data("price-id")};a.ajax({type:"POST",data:d,url:ajaxurl,success:function(b){return a("#edd-download-link").dialog({width:400}).html('<textarea rows="10" cols="40" id="edd-download-link-textarea">'+b+"</textarea>"),a("#edd-download-link-textarea").focus().select(),!1}}).fail(function(a){window.console&&window.console.log&&console.log(a)})})}}).init(),{init:function(){this.type_select(),this.product_requirements()},type_select:function(){a("#edd-edit-discount #edd-type, #edd-add-discount #edd-type").change(function(){var b=a(this).val();a(".edd-amount-description").hide(),a(".edd-amount-description."+b+"-discount").show()})},product_requirements:function(){a("#products").change(function(){var b=a("#edd-discount-product-conditions");a(this).val()?b.show():b.hide()})}}.init(),{init:function(){this.date_options(),this.customers_export()},date_options:function(){a("#edd-graphs-date-options").change(function(){var b=a(this),c=a("#edd-date-range-options");"other"===b.val()?c.show():c.hide()})},customers_export:function(){a("#edd_customer_export_download").change(function(){var b=a(this),c=a("option:selected",b).val(),d=a("#edd_customer_export_option");if("0"===b.val()?d.show():d.hide(),0!=parseInt(c)){var e={action:"edd_check_for_download_price_variations",download_id:c,all_prices:!0},f=a(".edd_price_options_select");a.post(ajaxurl,e,function(b){f.remove(),a("#edd_customer_export_download_chosen").after(b)})}else f.remove()})}}.init(),{init:function(){this.general(),this.taxes(),this.emails(),this.misc()},general:function(){var b=a(".edd-color-picker");if(b.length&&b.wpColorPicker(),"undefined"==typeof wp||"1"!==edd_vars.new_media_ui){var c=a(".edd_settings_upload_button");c.length>0&&(window.formfield="",a(document.body).on("click",c,function(b){b.preventDefault(),window.formfield=a(this).parent().prev(),window.tbframe_interval=setInterval(function(){jQuery("#TB_iframeContent").contents().find(".savesend .button").val(edd_vars.use_this_file).end().find("#insert-gallery, .wp-post-thumbnail").hide()},2e3),tb_show(edd_vars.add_new_download,"media-upload.php?TB_iframe=true")}),window.edd_send_to_editor=window.send_to_editor,window.send_to_editor=function(b){window.formfield?(imgurl=a("a","<div>"+b+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(b),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1})}else{var d;window.formfield="",a(document.body).on("click",".edd_settings_upload_button",function(b){b.preventDefault();var c=a(this);if(window.formfield=a(this).parent().prev(),d)return void d.open();d=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:c.data("uploader_title"),button:{text:c.data("uploader_button_text")},multiple:!1}),d.on("menu:render:default",function(a){var b={};a.unset("library-separator"),a.unset("gallery"),a.unset("featured-image"),a.unset("embed"),a.set(b)}),d.on("insert",function(){d.state().get("selection").each(function(a,b){a=a.toJSON(),window.formfield.val(a.url)})}),d.open()});var d;window.formfield=""}},taxes:function(){var b=a("select.edd-no-states");b.length&&b.closest("tr").hide(),a('select[name="edd_settings[base_country]"]').change(function(){var b=a(this),c=b.closest("tr"),d={action:"edd_get_shop_states",country:a(this).val(),field_name:"edd_settings[base_state]"};return a.post(ajaxurl,d,function(a){"nostates"==a?c.next().hide():(c.next().show(),c.next().find("select").replaceWith(a))}),!1}),a(document.body).on("change","#edd_tax_rates select.edd-tax-country",function(){var b=a(this),c={action:"edd_get_shop_states",country:a(this).val(),field_name:b.attr("name").replace("country","state")};return a.post(ajaxurl,c,function(a){if("nostates"==a){var d='<input type="text" name="'+c.field_name+'" value=""/>';b.parent().next().find("select").replaceWith(d)}else b.parent().next().find("input,select").show(),b.parent().next().find("input,select").replaceWith(a)}),!1}),a("#edd_add_tax_rate").on("click",function(){var b=a("#edd_tax_rates tr:last"),c=b.clone(),d=b.parent().find("tr").length;return c.find("td input").not(":input[type=checkbox]").val(""),c.find('td [type="checkbox"]').attr("checked",!1),c.find("input, select").each(function(){var b=a(this).attr("name");b=b.replace(/\[(\d+)\]/,"["+parseInt(d)+"]"),a(this).attr("name",b).attr("id",b)}),c.find("label").each(function(){var b=a(this).attr("for");b=b.replace(/\[(\d+)\]/,"["+parseInt(d)+"]"),a(this).attr("for",b)}),c.insertAfter(b),!1}),a(document.body).on("click","#edd_tax_rates .edd_remove_tax_rate",function(){if(confirm(edd_vars.delete_tax_rate)){2===a("#edd_tax_rates tr:visible").length?(a("#edd_tax_rates select").val(""),a('#edd_tax_rates input[type="text"]').val(""),a('#edd_tax_rates input[type="number"]').val(""),a('#edd_tax_rates input[type="checkbox"]').attr("checked",!1)):a(this).closest("tr").remove(),a("#edd_tax_rates tr").each(function(b){a(this).children().find("input, select").each(function(){var c=a(this).attr("name");c=c.replace(/\[(\d+)\]/,"["+(b-1)+"]"),a(this).attr("name",c).attr("id",c)})})}return!1})},emails:function(){var b=a("#email-preview-wrap");if(b.length){var c=a("#email-preview");b.colorbox({inline:!0,href:c,width:"80%",height:"auto"})}},misc:function(){var b=a('select[name="edd_settings[download_method]"]'),c=b.parent().parent().next();"direct"==b.val()&&(c.hide(),c.find("input").prop("checked",!1)),b.on("change",function(){"direct"==a(this).val()?(c.hide(),c.find("input").prop("checked",!1)):c.show()})}}.init(),a(".download_page_edd-payment-history .row-actions .delete a, a.edd-delete-payment").on("click",function(){return!!confirm(edd_vars.delete_payment)}),a("#the-list").on("click",".editinline",function(){var b=a(this).closest("tr").attr("id");b=b.replace("post-","");var c=a("#post-"+b),d=c.find(".column-price .downloadprice-"+b).val();d!=a("#post-"+b+".column-price .downloadprice-"+b).val()?a(".regprice","#edd-download-data").val(d).attr("disabled",!1):a(".regprice","#edd-download-data").val(edd_vars.quick_edit_warning).attr("disabled","disabled")}),a(document.body).on("click","#bulk_edit",function(){var b=a("#bulk-edit"),c=new Array;b.find("#bulk-titles").children().each(function(){c.push(a(this).attr("id").replace(/^(ttle)/i,""))});var d=a('#edd-download-data input[name="_edd_regprice"]').val(),e={action:"edd_save_bulk_edit",edd_bulk_nonce:c,post_ids:c,price:d};a.post(ajaxurl,e)}),a(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),a(".edd-select-chosen .chosen-search input").each(function(){var b=a(this).parent().parent().parent().prev("select.edd-select-chosen").data("search-type"),c="";if("download"===b)c=edd_vars.search_placeholder;else{var b="search_placeholder_"+b;edd_vars[b]&&(c=edd_vars[b])}a(this).attr("placeholder",c)}),a(".chosen-choices").on("click",function(){a(this).children("li").children("input").attr("placeholder",edd_vars.type_to_search)});var i;a(document.body).on("keyup",".edd-select.chosen-container .chosen-search input, .edd-select.chosen-container .search-field input",function(b){var c=a(this).val(),d=a(this).closest(".edd-select-chosen"),f=(d.attr("id").replace("_chosen",""),d.prev()),g=d.hasClass("no-bundles"),h=d.hasClass("variations"),k=b.which,l="edd_download_search";if(d.prev().data("search-type")){if("no_ajax"==f.data("search-type"))return;l="edd_"+f.data("search-type")+"_search"}c.length<=3&&"edd_download_search"==l||16==k||13==k||91==k||17==k||37==k||38==k||39==k||40==k||(clearTimeout(i),i=setTimeout(function(){a.ajax({type:"GET",url:ajaxurl,data:{action:l,s:c,no_bundles:g,variations:h},dataType:"json",beforeSend:function(){f.closest("ul.chosen-results").empty()},success:function(b){a("option:not(:selected)",f).remove(),a.each(b,function(b,c){a('option[value="'+c.id+'"]',f).length||f.prepend('<option value="'+c.id+'">'+c.name+"</option>")}),a(".edd-select-chosen").trigger("chosen:updated"),f.next().find("input").val(c)}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){})},342))}),a("#post").on("click",".edd-thickbox",function(){a(".edd-select-chosen","#choose-download").css("width","100%")}),{init:function(){this.revoke_api_key(),this.regenerate_api_key(),this.create_api_key(),this.recount_stats()},revoke_api_key:function(){a(document.body).on("click",".edd-revoke-api-key",function(a){return confirm(edd_vars.revoke_api_key)})},regenerate_api_key:function(){a(document.body).on("click",".edd-regenerate-api-key",function(a){return confirm(edd_vars.regenerate_api_key)})},create_api_key:function(){a(document.body).on("submit","#api-key-generate-form",function(b){var c=a('input[type="text"][name="user_id"]');c.css("border-color","#ddd");var d=c.val();if(d.length<1||0==d)return c.css("border-color","#ff0000"),!1})},recount_stats:function(){a("body").on("change","#recount-stats-type",function(){var b=a("#edd-tools-recount-form"),c=a("option:selected",this).data("type"),d=a("#recount-stats-submit"),e=a("#tools-product-dropdown");if(b.find(".notice-wrap").remove(),d.removeClass("button-disabled").attr("disabled",!1),e.hide(),a(".edd-recount-stats-descriptions span").hide(),"recount-download"===c)e.show(),e.find(".edd-select-chosen").css("width","auto");else if("reset-stats"===c){b.append('<div class="notice-wrap"></div>');var f=b.find(".notice-wrap");f.html('<div class="notice notice-warning"><p><input type="checkbox" id="confirm-reset" name="confirm_reset_store" value="1" /> <label for="confirm-reset">'+edd_vars.reset_stats_warn+"</label></p></div>"),a("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}else e.hide(),e.val(0);a("#"+c).show()}),a("body").on("change","#confirm-reset",function(){a(this).is(":checked")?a("#recount-stats-submit").removeClass("button-disabled").removeAttr("disabled"):a("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}),a("#edd-tools-recount-form").submit(function(b){var c=a("#recount-stats-type").val(),d=a(this),e=a("option:selected",this).data("type");if("reset-stats"===e){if(a("#confirm-reset").is(":checked"))return!0;h=!0}d.find(".notice-wrap").remove(),d.append('<div class="notice-wrap"></div>');var g=d.find(".notice-wrap"),h=!1;if(null!==c&&0!==c||(g.html('<div class="updated error"><p>'+edd_vars.batch_export_no_class+"</p></div>"),h=!0),"recount-download"===e){0==a('select[name="download_id"]').val()&&(g.html('<div class="updated error"><p>'+edd_vars.batch_export_no_reqs+"</p></div>"),h=!0)}if(h)return d.find(".button-disabled").removeClass("button-disabled"),!1})}}.init(),{init:function(){this.submit(),this.dismiss_message()},submit:function(){var b=this;a(document.body).on("submit",".edd-export-form",function(c){c.preventDefault();var d=a(this).find('input[type="submit"]');if(!d.hasClass("button-disabled")){var e=a(this).serialize();d.addClass("button-disabled"),a(this).find(".notice-wrap").remove(),a(this).append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),b.process_step(1,e,b)}})},process_step:function(b,c,d){a.ajax({type:"POST",url:ajaxurl,data:{form:c,action:"edd_do_ajax_export",step:b},dataType:"json",success:function(b){if("done"==b.step||b.error||b.success){var e=a(".edd-export-form").find(".edd-progress").parent().parent(),f=e.find(".notice-wrap");if(e.find(".button-disabled").removeClass("button-disabled"),b.error){var g=b.message;f.html('<div class="updated error"><p>'+g+"</p></div>")}else if(b.success){var h=b.message;f.html('<div id="edd-batch-success" class="updated notice is-dismissible"><p>'+h+'<span class="notice-dismiss"></span></p></div>')}else f.remove(),window.location=b.url}else a(".edd-progress div").animate({width:b.percentage+"%"},50,function(){}),d.process_step(parseInt(b.step),c,d)}}).fail(function(a){window.console&&window.console.log&&console.log(a)})},dismiss_message:function(){a("body").on("click","#edd-batch-success .notice-dismiss",function(){a("#edd-batch-success").parent().slideUp("fast")})}}.init();var m={init:function(){this.submit()},submit:function(){var b=this;a(".edd-import-form").ajaxForm({beforeSubmit:b.before_submit,success:b.success,complete:b.complete,dataType:"json",error:b.error})},before_submit:function(b,c,d){if(c.find(".notice-wrap").remove(),c.append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),!(window.File&&window.FileReader&&window.FileList&&window.Blob)){var e=a(".edd-import-form").find(".edd-progress").parent().parent(),f=e.find(".notice-wrap");return e.find(".button-disabled").removeClass("button-disabled"),f.html('<div class="update error"><p>'+edd_vars.unsupported_browser+"</p></div>"),!1}},success:function(a,b,c,d){},complete:function(b){var c=jQuery.parseJSON(b.responseText);if(c.success){var d=a(".edd-import-form .notice-wrap").parent();d.find(".edd-import-file-wrap,.notice-wrap").remove(),d.find(".edd-import-options").slideDown();var e=d.find("select.edd-import-csv-column"),g=(e.parent().parent(),""),h=c.data.columns.sort(function(a,b){return a<b?-1:a>b?1:0});a.each(h,function(a,b){g+='<option value="'+b+'">'+b+"</option>"}),e.append(g),e.on("change",function(){var b=a(this).val();b&&0!=c.data.first_row[b]?a(this).parent().next().html(c.data.first_row[b]):a(this).parent().next().html("")}),a("body").on("click",".edd-import-proceed",function(a){a.preventDefault(),d.append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),c.data.mapping=d.serialize(),m.process_step(1,c.data,self)})}else m.error(b)},error:function(b){var c=jQuery.parseJSON(b.responseText),d=a(".edd-import-form").find(".edd-progress").parent().parent(),e=d.find(".notice-wrap");d.find(".button-disabled").removeClass("button-disabled"),c.data.error?e.html('<div class="update error"><p>'+c.data.error+"</p></div>"):e.remove()},process_step:function(b,c,d){a.ajax({type:"POST",url:ajaxurl,data:{form:c.form,nonce:c.nonce,class:c.class,upload:c.upload,mapping:c.mapping,action:"edd_do_ajax_import",step:b},dataType:"json",success:function(b){if("done"==b.data.step||b.data.error){var e=a(".edd-import-form").find(".edd-progress").parent().parent(),f=e.find(".notice-wrap");e.find(".button-disabled").removeClass("button-disabled"),b.data.error?f.html('<div class="update error"><p>'+b.data.error+"</p></div>"):(e.find(".edd-import-options").hide(),a("html, body").animate({scrollTop:e.parent().offset().top},500),f.html('<div class="updated"><p>'+b.data.message+"</p></div>"))}else a(".edd-progress div").animate({width:b.data.percentage+"%"},50,function(){}),m.process_step(parseInt(b.data.step),c,d)}}).fail(function(a){window.console&&window.console.log&&console.log(a)})}};m.init();var n={vars:{customer_card_wrap_editable:a(".edd-customer-card-wrapper .editable"),customer_card_wrap_edit_item:a(".edd-customer-card-wrapper .edit-item"),user_id:a('input[name="customerinfo[user_id]"]'),state_input:a(':input[name="customerinfo[state]"]'),note:a("#customer-note")},init:function(){this.edit_customer(),this.add_email(),this.user_search(),this.remove_user(),this.cancel_edit(),this.change_country(),this.add_note(),this.delete_checked()},edit_customer:function(){a(document.body).on("click","#edit-customer",function(a){a.preventDefault(),n.vars.customer_card_wrap_editable.hide(),n.vars.customer_card_wrap_edit_item.fadeIn().css("display","block")})},add_email:function(){a(document.body).on("click","#add-customer-email",function(b){b.preventDefault();var c=a(this),d=c.parent();d.parent().find(".notice-wrap").remove(),d.find(".spinner").css("visibility","visible"),c.attr("disabled",!0);var e=d.find('input[name="customer-id"]').val(),f=d.find('input[name="additional-email"]').val(),g=d.find('input[name="make-additional-primary"]').is(":checked"),h=d.find('input[name="add_email_nonce"]').val(),i={edd_action:"customer-add-email",customer_id:e,email:f,primary:g,_wpnonce:h};a.post(ajaxurl,i,function(a){!0===a.success?window.location.href=a.redirect:(c.attr("disabled",!1),d.after('<div class="notice-wrap"><div class="notice notice-error inline"><p>'+a.message+"</p></div></div>"),d.find(".spinner").css("visibility","hidden"))},"json")})},user_search:function(){a(document.body).on("click.eddSelectUser",".edd_user_search_results a",function(b){b.preventDefault();var c=a(this).data("userid");n.vars.user_id.val(c)})},remove_user:function(){a(document.body).on("click","#disconnect-customer",function(b){b.preventDefault();var c=a('input[name="customerinfo[id]"]').val(),d={edd_action:"disconnect-userid",customer_id:c,_wpnonce:a("#edit-customer-info #_wpnonce").val()};a.post(ajaxurl,d,function(a){window.location.href=window.location.href},"json")})},cancel_edit:function(){a(document.body).on("click","#edd-edit-customer-cancel",function(b){b.preventDefault(),n.vars.customer_card_wrap_edit_item.hide(),n.vars.customer_card_wrap_editable.show(),a(".edd_user_search_results").html("")})},change_country:function(){a('select[name="customerinfo[country]"]').change(function(){var b=a(this),c={action:"edd_get_shop_states",country:b.val(),field_name:"customerinfo[state]"};return a.post(ajaxurl,c,function(a){"nostates"==a?n.vars.state_input.replaceWith('<input type="text" name="'+c.field_name+'" value="" class="edd-edit-toggles medium-text"/>'):n.vars.state_input.replaceWith(a)}),!1})},add_note:function(){a(document.body).on("click","#add-customer-note",function(b){b.preventDefault();var c={edd_action:"add-customer-note",customer_id:a("#customer-id").val(),customer_note:n.vars.note.val(),add_customer_note_nonce:a("#add_customer_note_nonce").val()};if(c.customer_note)a.ajax({type:"POST",data:c,url:ajaxurl,success:function(b){a("#edd-customer-notes").prepend(b),a(".edd-no-customer-notes").hide(),n.vars.note.val("")}}).fail(function(a){window.console&&window.console.log&&console.log(a)});else{var d=n.vars.note.css("border-color");n.vars.note.css("border-color","red"),setTimeout(function(){n.vars.note.css("border-color",d)},500)}})},delete_checked:function(){a("#edd-customer-delete-confirm").change(function(){var b=a("#edd-customer-delete-records"),c=a("#edd-delete-customer");a(this).prop("checked")?(b.attr("disabled",!1),c.attr("disabled",!1)):(b.attr("disabled",!0),b.prop("checked",!1),c.attr("disabled",!0))})}};n.init(),a(".edd-ajax-user-search").keyup(function(){var b=a(this).val(),c="";a(this).data("exclude")&&(c=a(this).data("exclude")),a(".edd-ajax").show();var d={action:"edd_search_users",user_name:b,exclude:c};document.body.style.cursor="wait",a.ajax({type:"POST",data:d,dataType:"json",url:ajaxurl,success:function(b){a(".edd-ajax").hide(),a(".edd_user_search_results").removeClass("hidden"),a(".edd_user_search_results span").html(""),a(b.results).appendTo(".edd_user_search_results span"),document.body.style.cursor="default"}})}),a(document.body).on("click.eddSelectUser",".edd_user_search_results span a",function(b){b.preventDefault();var c=a(this).data("login");a(".edd-ajax-user-search").val(c),a(".edd_user_search_results").addClass("hidden"),a(".edd_user_search_results span").html("")}),a(document.body).on("click.eddCancelUserSearch",".edd_user_search_results a.edd-ajax-user-cancel",function(b){b.preventDefault(),a(".edd-ajax-user-search").val(""),a(".edd_user_search_results").addClass("hidden"),a(".edd_user_search_results span").html("")}),a("#edd_dashboard_sales").length&&a.ajax({type:"GET",data:{action:"edd_load_dashboard_widget"},url:ajaxurl,success:function(b){a("#edd_dashboard_sales .inside").html(b)}}),a(document).on("keydown",".customer-note-input",function(b){13==b.keyCode&&(b.metaKey||b.ctrlKey)&&a("#add-customer-note").click()})});var eddFormatCurrency=function(a){var b=parseFloat(a),c=edd_vars.currency,d=edd_vars.currency_decimals;return b.toLocaleString(c,{style:"currency",currency:c,minimumFractionDigits:d,maximumFractionDigits:d})},eddFormatNumber=function(a){var b=parseFloat(a),c=edd_vars.currency;edd_vars.currency_decimals;return b.toLocaleString(c,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:0})},eddLabelFormatter=function(a,b){return'<div style="font-size:12px; text-align:center; padding:2px">'+a+"</div>"},eddLegendFormatterSales=function(a,b){var c=a.toLowerCase().replace(/\s/g,"-"),d='<div class="edd-legend-color" style="background-color: '+b.color+'"></div>',e='<div class="edd-pie-legend-item">'+a+": "+Math.round(b.percent)+"% ("+eddFormatNumber(b.data[0][1])+")</div>",f='<div id="'+b.edd_vars.id+c+'" class="edd-legend-item-wrapper">'+d+e+"</div>";return jQuery("#edd-pie-legend-"+b.edd_vars.id).append(f),f},eddLegendFormatterEarnings=function(a,b){var c=a.toLowerCase().replace(/\s/g,"-"),d='<div class="edd-legend-color" style="background-color: '+b.color+'"></div>',e='<div class="edd-pie-legend-item">'+a+": "+Math.round(b.percent)+"% ("+eddFormatCurrency(b.data[0][1])+")</div>",f='<div id="'+b.edd_vars.id+c+'" class="edd-legend-item-wrapper">'+d+e+"</div>";return jQuery("#edd-pie-legend-"+b.edd_vars.id).append(f),f};
|
|
assets/js/edd-ajax.js
CHANGED
@@ -6,7 +6,7 @@ jQuery(document).ready(function ($) {
|
|
6 |
$('a.edd-add-to-cart').addClass('edd-has-js');
|
7 |
|
8 |
// Send Remove from Cart requests
|
9 |
-
$(
|
10 |
var $this = $(this),
|
11 |
item = $this.data('cart-item'),
|
12 |
action = $this.data('action'),
|
@@ -57,7 +57,7 @@ jQuery(document).ready(function ($) {
|
|
57 |
}
|
58 |
|
59 |
$('span.edd-cart-quantity').text( response.cart_quantity );
|
60 |
-
$(
|
61 |
if ( edd_scripts.taxes_enabled ) {
|
62 |
$('.cart_item.edd_subtotal span').html( response.subtotal );
|
63 |
$('.cart_item.edd_cart_tax span').html( response.tax );
|
@@ -79,7 +79,7 @@ jQuery(document).ready(function ($) {
|
|
79 |
});
|
80 |
}
|
81 |
|
82 |
-
$(
|
83 |
}
|
84 |
}
|
85 |
}).fail(function (response) {
|
@@ -94,7 +94,7 @@ jQuery(document).ready(function ($) {
|
|
94 |
});
|
95 |
|
96 |
// Send Add to Cart request
|
97 |
-
$(
|
98 |
|
99 |
e.preventDefault();
|
100 |
|
@@ -230,7 +230,7 @@ jQuery(document).ready(function ($) {
|
|
230 |
|
231 |
$('span.edd-cart-quantity').each(function() {
|
232 |
$(this).text(response.cart_quantity);
|
233 |
-
$(
|
234 |
});
|
235 |
|
236 |
// Show the "number of items in cart" message
|
@@ -270,7 +270,7 @@ jQuery(document).ready(function ($) {
|
|
270 |
// Re-enable the add to cart button
|
271 |
$this.prop('disabled', false);
|
272 |
|
273 |
-
$(
|
274 |
|
275 |
}
|
276 |
}
|
@@ -351,33 +351,14 @@ jQuery(document).ready(function ($) {
|
|
351 |
});
|
352 |
|
353 |
// Auto load first payment gateway
|
354 |
-
if( edd_scripts.is_checkout == '1' ) {
|
355 |
-
|
356 |
-
var chosen_gateway = false;
|
357 |
-
var ajax_needed = false;
|
358 |
-
|
359 |
-
if ( $('select#edd-gateway, input.edd-gateway').length ) {
|
360 |
-
chosen_gateway = $("meta[name='edd-chosen-gateway']").attr('content');
|
361 |
-
ajax_needed = true;
|
362 |
-
}
|
363 |
-
|
364 |
if( ! chosen_gateway ) {
|
365 |
chosen_gateway = edd_scripts.default_gateway;
|
366 |
}
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
// If we need to ajax in a gateway form, send the requests for the POST.
|
371 |
-
setTimeout( function() {
|
372 |
-
edd_load_gateway( chosen_gateway );
|
373 |
-
}, 200);
|
374 |
-
|
375 |
-
} else {
|
376 |
-
|
377 |
-
// The form is already on page, just trigger that the gateway is loaded so further action can be taken.
|
378 |
-
$('body').trigger('edd_gateway_loaded', [ chosen_gateway ]);
|
379 |
-
|
380 |
-
}
|
381 |
}
|
382 |
|
383 |
$(document).on('click', '#edd_purchase_form #edd_purchase_submit input[type=submit]', function(e) {
|
@@ -408,26 +389,20 @@ jQuery(document).ready(function ($) {
|
|
408 |
$('.edd-loading-ajax').remove();
|
409 |
$('.edd_errors').remove();
|
410 |
$('.edd-error').hide();
|
411 |
-
$(
|
412 |
$('#edd-purchase-button').prop( 'disabled', false );
|
413 |
-
|
414 |
-
$(document.body).trigger( 'edd_checkout_error', [ data ] );
|
415 |
}
|
416 |
});
|
417 |
|
418 |
});
|
419 |
|
420 |
-
$(
|
421 |
|
422 |
function update_state_field() {
|
423 |
|
424 |
var $this = $(this);
|
425 |
var $form;
|
426 |
var is_checkout = typeof edd_global_vars !== 'undefined';
|
427 |
-
var field_name = 'card_state';
|
428 |
-
if ( $(this).attr('id') == 'edd_address_country' ) {
|
429 |
-
field_name = 'edd_address_state';
|
430 |
-
}
|
431 |
|
432 |
if( 'card_state' != $this.attr('id') ) {
|
433 |
|
@@ -435,7 +410,7 @@ jQuery(document).ready(function ($) {
|
|
435 |
var postData = {
|
436 |
action: 'edd_get_shop_states',
|
437 |
country: $this.val(),
|
438 |
-
field_name:
|
439 |
};
|
440 |
|
441 |
$.ajax({
|
@@ -462,7 +437,7 @@ jQuery(document).ready(function ($) {
|
|
462 |
}
|
463 |
|
464 |
if ( is_checkout ) {
|
465 |
-
$(
|
466 |
}
|
467 |
|
468 |
}
|
@@ -485,7 +460,7 @@ jQuery(document).ready(function ($) {
|
|
485 |
}
|
486 |
|
487 |
// If is_checkout, recalculate sales tax on postalCode change.
|
488 |
-
$(
|
489 |
if (typeof edd_global_vars !== 'undefined') {
|
490 |
recalculate_taxes();
|
491 |
}
|
6 |
$('a.edd-add-to-cart').addClass('edd-has-js');
|
7 |
|
8 |
// Send Remove from Cart requests
|
9 |
+
$('body').on('click.eddRemoveFromCart', '.edd-remove-from-cart', function (event) {
|
10 |
var $this = $(this),
|
11 |
item = $this.data('cart-item'),
|
12 |
action = $this.data('action'),
|
57 |
}
|
58 |
|
59 |
$('span.edd-cart-quantity').text( response.cart_quantity );
|
60 |
+
$('body').trigger('edd_quantity_updated', [ response.cart_quantity ]);
|
61 |
if ( edd_scripts.taxes_enabled ) {
|
62 |
$('.cart_item.edd_subtotal span').html( response.subtotal );
|
63 |
$('.cart_item.edd_cart_tax span').html( response.tax );
|
79 |
});
|
80 |
}
|
81 |
|
82 |
+
$('body').trigger('edd_cart_item_removed', [ response ]);
|
83 |
}
|
84 |
}
|
85 |
}).fail(function (response) {
|
94 |
});
|
95 |
|
96 |
// Send Add to Cart request
|
97 |
+
$('body').on('click.eddAddToCart', '.edd-add-to-cart', function (e) {
|
98 |
|
99 |
e.preventDefault();
|
100 |
|
230 |
|
231 |
$('span.edd-cart-quantity').each(function() {
|
232 |
$(this).text(response.cart_quantity);
|
233 |
+
$('body').trigger('edd_quantity_updated', [ response.cart_quantity ]);
|
234 |
});
|
235 |
|
236 |
// Show the "number of items in cart" message
|
270 |
// Re-enable the add to cart button
|
271 |
$this.prop('disabled', false);
|
272 |
|
273 |
+
$('body').trigger('edd_cart_item_added', [ response ]);
|
274 |
|
275 |
}
|
276 |
}
|
351 |
});
|
352 |
|
353 |
// Auto load first payment gateway
|
354 |
+
if( edd_scripts.is_checkout == '1' && $('select#edd-gateway, input.edd-gateway').length ) {
|
355 |
+
var chosen_gateway = $("meta[name='edd-chosen-gateway']").attr('content');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
356 |
if( ! chosen_gateway ) {
|
357 |
chosen_gateway = edd_scripts.default_gateway;
|
358 |
}
|
359 |
+
setTimeout( function() {
|
360 |
+
edd_load_gateway( chosen_gateway );
|
361 |
+
}, 200);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
}
|
363 |
|
364 |
$(document).on('click', '#edd_purchase_form #edd_purchase_submit input[type=submit]', function(e) {
|
389 |
$('.edd-loading-ajax').remove();
|
390 |
$('.edd_errors').remove();
|
391 |
$('.edd-error').hide();
|
392 |
+
$('#edd_purchase_submit').before(data);
|
393 |
$('#edd-purchase-button').prop( 'disabled', false );
|
|
|
|
|
394 |
}
|
395 |
});
|
396 |
|
397 |
});
|
398 |
|
399 |
+
$('body').on('change', '#edd_cc_address input.card_state, #edd_cc_address select, #edd_address_country', update_state_field);
|
400 |
|
401 |
function update_state_field() {
|
402 |
|
403 |
var $this = $(this);
|
404 |
var $form;
|
405 |
var is_checkout = typeof edd_global_vars !== 'undefined';
|
|
|
|
|
|
|
|
|
406 |
|
407 |
if( 'card_state' != $this.attr('id') ) {
|
408 |
|
410 |
var postData = {
|
411 |
action: 'edd_get_shop_states',
|
412 |
country: $this.val(),
|
413 |
+
field_name: 'card_state'
|
414 |
};
|
415 |
|
416 |
$.ajax({
|
437 |
}
|
438 |
|
439 |
if ( is_checkout ) {
|
440 |
+
$('body').trigger('edd_cart_billing_address_updated', [ response ]);
|
441 |
}
|
442 |
|
443 |
}
|
460 |
}
|
461 |
|
462 |
// If is_checkout, recalculate sales tax on postalCode change.
|
463 |
+
$('body').on('change', '#edd_cc_address input[name=card_zip]', function () {
|
464 |
if (typeof edd_global_vars !== 'undefined') {
|
465 |
recalculate_taxes();
|
466 |
}
|
assets/js/edd-ajax.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
function edd_load_gateway(
|
1 |
+
function edd_load_gateway(a){jQuery(".edd-cart-ajax").show(),jQuery("#edd_purchase_form_wrap").html('<span class="edd-loading-ajax edd-loading"></span>');var b=edd_scripts.ajaxurl;b+=b.indexOf("?")>0?"&":"?",b=b+"payment-mode="+a,jQuery.post(b,{action:"edd_load_gateway",edd_payment_mode:a},function(b){jQuery("#edd_purchase_form_wrap").html(b),jQuery(".edd-no-js").hide(),jQuery("body").trigger("edd_gateway_loaded",[a])})}var edd_scripts;jQuery(document).ready(function(a){function c(){var c,b=a(this),d="undefined"!=typeof edd_global_vars;if("card_state"!=b.attr("id")){var e={action:"edd_get_shop_states",country:b.val(),field_name:"card_state"};a.ajax({type:"POST",data:e,url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(e){c=d?a("#edd_purchase_form"):b.closest("form");var f='input[name="card_state"], select[name="card_state"], input[name="edd_address_state"], select[name="edd_address_state"]';if("nostates"==a.trim(e)){var g='<input type="text" name="card_state" class="card-state edd-input required" value=""/>';c.find(f).replaceWith(g)}else c.find(f).replaceWith(e);d&&a("body").trigger("edd_cart_billing_address_updated",[e])}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){d&&recalculate_taxes()})}else d&&recalculate_taxes();return!1}if(a(".edd-no-js").hide(),a("a.edd-add-to-cart").addClass("edd-has-js"),a("body").on("click.eddRemoveFromCart",".edd-remove-from-cart",function(b){var c=a(this),d=c.data("cart-item"),e=c.data("action"),f=c.data("download-id"),g={action:e,cart_item:d};return a.ajax({type:"POST",data:g,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(b){if(b.removed){if(parseInt(edd_scripts.position_in_cart,10)===parseInt(d,10)||edd_scripts.has_purchase_links)return window.location=window.location,!1;a(".edd-cart").each(function(){a(this).find("[data-cart-item='"+d+"']").parent().remove()}),a(".edd-cart").each(function(){var b=0;a(this).find("[data-cart-item]").each(function(){a(this).attr("data-cart-item",b),b+=1})}),a("[id^=edd_purchase_"+f+"]").length&&(a("[id^=edd_purchase_"+f+"] .edd_go_to_checkout").hide(),a("[id^=edd_purchase_"+f+"] a.edd-add-to-cart").show().removeAttr("data-edd-loading"),"1"==edd_scripts.quantities_enabled&&a("[id^=edd_purchase_"+f+"] .edd_download_quantity_wrapper").show()),a("span.edd-cart-quantity").text(b.cart_quantity),a("body").trigger("edd_quantity_updated",[b.cart_quantity]),edd_scripts.taxes_enabled&&(a(".cart_item.edd_subtotal span").html(b.subtotal),a(".cart_item.edd_cart_tax span").html(b.tax)),a(".cart_item.edd_total span").html(b.total),0==b.cart_quantity&&(a(".cart_item.edd_subtotal,.edd-cart-number-of-items,.cart_item.edd_checkout,.cart_item.edd_cart_tax,.cart_item.edd_total").hide(),a(".edd-cart").each(function(){var b=a(this).parent();b&&(b.addClass("cart-empty"),b.removeClass("cart-not-empty")),a(this).append('<li class="cart_item empty">'+edd_scripts.empty_cart_message+"</li>")})),a("body").trigger("edd_cart_item_removed",[b])}}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){}),!1}),a("body").on("click.eddAddToCart",".edd-add-to-cart",function(b){b.preventDefault();var c=a(this),d=c.closest("form");c.prop("disabled",!0);var f=(c.find(".edd-loading"),c.closest("div"));c.attr("data-edd-loading","");var d=c.parents("form").last(),g=c.data("download-id"),h=c.data("variable-price"),i=c.data("price-mode"),j=[],k=!0;if("yes"==h)if(d.find(".edd_price_option_"+g+'[type="hidden"]').length>0)j[0]=a(".edd_price_option_"+g,d).val(),d.find(".edd-submit").data("price")&&d.find(".edd-submit").data("price")>0&&(k=!1);else{if(!d.find(".edd_price_option_"+g+":checked",d).length)return c.removeAttr("data-edd-loading"),alert(edd_scripts.select_option),b.stopPropagation(),c.prop("disabled",!1),!1;d.find(".edd_price_option_"+g+":checked",d).each(function(b){if(j[b]=a(this).val(),!0===k){var c=a(this).data("price");c&&c>0&&(k=!1)}})}else j[0]=g,c.data("price")&&c.data("price")>0&&(k=!1);if(k&&d.find(".edd_action_input").val("add_to_cart"),"straight_to_gateway"==d.find(".edd_action_input").val())return d.submit(),!0;var l=c.data("action"),m={action:l,download_id:g,price_ids:j,post_data:a(d).serialize()};return a.ajax({type:"POST",data:m,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(b){var e="1"==edd_scripts.redirect_to_checkout,j="1"==d.find("#edd_redirect_to_checkout").val();if(e&&j||!e&&j)window.location=edd_scripts.checkout_page;else{"1"===edd_scripts.taxes_enabled&&(a(".cart_item.edd_subtotal").show(),a(".cart_item.edd_cart_tax").show()),a(".cart_item.edd_total").show(),a(".cart_item.edd_checkout").show(),a(".cart_item.empty").length&&a(".cart_item.empty").hide(),a(".widget_edd_cart_widget .edd-cart").each(function(c){var d=a(this).find(".edd-cart-meta:first");a(b.cart_item).insertBefore(d);var e=a(this).parent();e&&(e.addClass("cart-not-empty"),e.removeClass("cart-empty"))}),"1"===edd_scripts.taxes_enabled&&(a(".edd-cart-meta.edd_subtotal span").html(b.subtotal),a(".edd-cart-meta.edd_cart_tax span").html(b.tax)),a(".edd-cart-meta.edd_total span").html(b.total);a(".edd-cart-item-title",b.cart_item).length;if(a("span.edd-cart-quantity").each(function(){a(this).text(b.cart_quantity),a("body").trigger("edd_quantity_updated",[b.cart_quantity])}),"none"==a(".edd-cart-number-of-items").css("display")&&a(".edd-cart-number-of-items").show("slow"),"no"!=h&&"multi"==i||(a("a.edd-add-to-cart",f).toggle(),a(".edd_go_to_checkout",f).css("display","inline-block")),"multi"==i&&c.removeAttr("data-edd-loading"),a(".edd_download_purchase_form").length&&("no"==h||!d.find(".edd_price_option_"+g).is("input:hidden"))){var l=a('.edd_download_purchase_form *[data-download-id="'+g+'"]').parents("form");a("a.edd-add-to-cart",l).hide(),"multi"!=i&&l.find(".edd_download_quantity_wrapper").slideUp(),a(".edd_go_to_checkout",l).show().removeAttr("data-edd-loading")}"incart"!=b&&(a(".edd-cart-added-alert",f).fadeIn(),setTimeout(function(){a(".edd-cart-added-alert",f).fadeOut()},3e3)),c.prop("disabled",!1),a("body").trigger("edd_cart_item_added",[b])}}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){}),!1}),a("#edd_checkout_form_wrap").on("click",".edd_checkout_register_login",function(){var b=a(this),c={action:b.data("action")};return a(".edd-cart-ajax").show(),a.post(edd_scripts.ajaxurl,c,function(b){a("#edd_checkout_login_register").html(edd_scripts.loading),a("#edd_checkout_login_register").html(b),a(".edd-cart-ajax").hide()}),!1}),a(document).on("click","#edd_purchase_form #edd_login_fields input[type=submit]",function(b){b.preventDefault();var c=a(this).val();a(this).val(edd_global_vars.purchase_loading),a(this).after('<span class="edd-loading-ajax edd-loading"></span>');var d={action:"edd_process_checkout_login",edd_ajax:1,edd_user_login:a("#edd_login_fields #edd_user_login").val(),edd_user_pass:a("#edd_login_fields #edd_user_pass").val()};a.post(edd_global_vars.ajaxurl,d,function(b){"success"==a.trim(b)?(a(".edd_errors").remove(),window.location=edd_scripts.checkout_page):(a("#edd_login_fields input[type=submit]").val(c),a(".edd-loading-ajax").remove(),a(".edd_errors").remove(),a("#edd-user-login-submit").before(b))})}),a("select#edd-gateway, input.edd-gateway").change(function(b){var c=a("#edd-gateway option:selected, input.edd-gateway:checked").val();return"0"!=c&&(edd_load_gateway(c),!1)}),"1"==edd_scripts.is_checkout&&a("select#edd-gateway, input.edd-gateway").length){var b=a("meta[name='edd-chosen-gateway']").attr("content");b||(b=edd_scripts.default_gateway),setTimeout(function(){edd_load_gateway(b)},200)}a(document).on("click","#edd_purchase_form #edd_purchase_submit input[type=submit]",function(b){var c=document.getElementById("edd_purchase_form");if("function"!=typeof c.checkValidity||!1!==c.checkValidity()){b.preventDefault();var d=a(this).val();a(this).val(edd_global_vars.purchase_loading),a(this).prop("disabled",!0),a(this).after('<span class="edd-loading-ajax edd-loading"></span>'),a.post(edd_global_vars.ajaxurl,a("#edd_purchase_form").serialize()+"&action=edd_process_checkout&edd_ajax=true",function(b){"success"==a.trim(b)?(a(".edd_errors").remove(),a(".edd-error").hide(),a(c).submit()):(a("#edd-purchase-button").val(d),a(".edd-loading-ajax").remove(),a(".edd_errors").remove(),a(".edd-error").hide(),a("#edd_purchase_submit").before(b),a("#edd-purchase-button").prop("disabled",!1))})}}),a("body").on("change","#edd_cc_address input.card_state, #edd_cc_address select, #edd_address_country",c),a("body").on("change","#edd_cc_address input[name=card_zip]",function(){"undefined"!=typeof edd_global_vars&&recalculate_taxes()})});
|
assets/js/edd-checkout-global.js
CHANGED
@@ -14,28 +14,10 @@ window.EDD_Checkout = (function($) {
|
|
14 |
before_discount = $edd_cart_amount.text();
|
15 |
$checkout_form_wrap = $('#edd_checkout_form_wrap');
|
16 |
|
17 |
-
$body.on('edd_gateway_loaded', function( e ) {
|
18 |
-
edd_format_card_number( $form );
|
19 |
-
});
|
20 |
-
|
21 |
$body.on('keyup change', '.edd-do-validate .card-number', function() {
|
22 |
edd_validate_card( $(this) );
|
23 |
});
|
24 |
|
25 |
-
$body.on('blur change', '.card-name', function() {
|
26 |
-
var name_field = $(this);
|
27 |
-
|
28 |
-
name_field.validateCreditCard(function(result) {
|
29 |
-
if(result.card_type != null) {
|
30 |
-
name_field.removeClass('valid').addClass('error');
|
31 |
-
$('#edd-purchase-button').attr('disabled', 'disabled');
|
32 |
-
} else {
|
33 |
-
name_field.removeClass('error').addClass('valid');
|
34 |
-
$('#edd-purchase-button').removeAttr('disabled');
|
35 |
-
}
|
36 |
-
});
|
37 |
-
});
|
38 |
-
|
39 |
// Make sure a gateway is selected
|
40 |
$body.on('submit', '#edd_payment_mode', function() {
|
41 |
var gateway = $('#edd-gateway option:selected').val();
|
@@ -116,18 +98,6 @@ window.EDD_Checkout = (function($) {
|
|
116 |
});
|
117 |
}
|
118 |
|
119 |
-
function edd_format_card_number( form ) {
|
120 |
-
var card_number = form.find('.card-number'),
|
121 |
-
card_cvc = form.find('.card-cvc'),
|
122 |
-
card_expiry = form.find('.card-expiry');
|
123 |
-
|
124 |
-
if ( card_number.length && 'function' === typeof card_number.payment ) {
|
125 |
-
card_number.payment('formatCardNumber');
|
126 |
-
card_cvc.payment('formatCardCVC');
|
127 |
-
card_expiry.payment('formatCardExpiry');
|
128 |
-
}
|
129 |
-
}
|
130 |
-
|
131 |
function apply_discount(event) {
|
132 |
|
133 |
event.preventDefault();
|
14 |
before_discount = $edd_cart_amount.text();
|
15 |
$checkout_form_wrap = $('#edd_checkout_form_wrap');
|
16 |
|
|
|
|
|
|
|
|
|
17 |
$body.on('keyup change', '.edd-do-validate .card-number', function() {
|
18 |
edd_validate_card( $(this) );
|
19 |
});
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
// Make sure a gateway is selected
|
22 |
$body.on('submit', '#edd_payment_mode', function() {
|
23 |
var gateway = $('#edd-gateway option:selected').val();
|
98 |
});
|
99 |
}
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
function apply_discount(event) {
|
102 |
|
103 |
event.preventDefault();
|
assets/js/edd-checkout-global.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
function recalculate_taxes(
|
1 |
+
function recalculate_taxes(a){if("1"==edd_global_vars.taxes_enabled){var b=jQuery("#edd_cc_address");a||(a=b.find("#card_state").val());var c={action:"edd_recalculate_taxes",billing_country:b.find("#billing_country").val(),state:a,card_zip:b.find("input[name=card_zip]").val()},d=++ajax_tax_count;jQuery.ajax({type:"POST",data:c,dataType:"json",url:edd_global_vars.ajaxurl,xhrFields:{withCredentials:!0},success:function(a){if(d===ajax_tax_count){jQuery("#edd_checkout_cart_form").replaceWith(a.html),jQuery(".edd_cart_amount").html(a.total);var b=new Object;b.postdata=c,b.response=a,jQuery("body").trigger("edd_taxes_recalculated",[b])}}}).fail(function(a){window.console&&window.console.log&&(console.log(a),d===ajax_tax_count&&jQuery("body").trigger("edd_taxes_recalculated",[tax_data]))})}}window.EDD_Checkout=function(a){"use strict";function g(){b=a(document.body),c=a("#edd_purchase_form"),d=a(".edd_cart_amount"),e=d.text(),f=a("#edd_checkout_form_wrap"),b.on("keyup change",".edd-do-validate .card-number",function(){h(a(this))}),b.on("submit","#edd_payment_mode",function(){var b=a("#edd-gateway option:selected").val();if(0==b)return alert(edd_global_vars.no_gateway),!1}),b.on("click","#edd_payment_mode_select input",function(){a("#edd_payment_mode_select label.edd-gateway-option-selected").removeClass("edd-gateway-option-selected"),a("#edd_payment_mode_select input:checked").parent().addClass("edd-gateway-option-selected")}),f.on("click",".edd-apply-discount",i),f.on("keypress","#edd-discount",function(a){if("13"==a.keyCode)return!1}),f.on("keyup","#edd-discount",function(a){"13"==a.keyCode&&f.find(".edd-apply-discount").trigger("click")}),b.on("click",".edd_discount_remove",j),b.on("click",".edd_discount_link",function(b){b.preventDefault(),a(".edd_discount_link").parent().hide(),a("#edd-discount-code-wrap").show().find("#edd-discount").focus()}),b.find("#edd-discount-code-wrap").hide(),b.find("#edd_show_discount").show(),b.on("change",".edd-item-quantity",k),b.on("click",".edd-amazon-logout #Logout",function(a){a.preventDefault(),amazon.Login.logout(),window.location=edd_amazon.checkoutUri})}function h(b){var c=b;c.validateCreditCard(function(b){var d=a(".card-type");null==b.card_type?(d.removeClass().addClass("off card-type"),c.removeClass("valid"),c.addClass("error")):(d.removeClass("off"),d.addClass(b.card_type.name),b.length_valid&&b.luhn_valid?(c.addClass("valid"),c.removeClass("error")):(c.removeClass("valid"),c.addClass("error")))})}function i(c){c.preventDefault();var e=(a(this),a("#edd-discount").val()),g=a("#edd-discount-loader");if(""==e||e==edd_global_vars.enter_discount)return!1;var h={action:"edd_apply_discount",code:e,form:a("#edd_purchase_form").serialize()};return a("#edd-discount-error-wrap").html("").hide(),g.show(),a.ajax({type:"POST",data:h,dataType:"json",url:edd_global_vars.ajaxurl,xhrFields:{withCredentials:!0},success:function(c){if(c)if("valid"==c.msg){a(".edd_cart_discount").html(c.html),a(".edd_cart_discount_row").show(),a(".edd_cart_amount").each(function(){a(this).text(c.total),a(this).data("total",c.total_plain)}),a("#edd-discount",f).val(""),recalculate_taxes();var d=a("#edd_cc_fields .edd-input, #edd_cc_fields .edd-select,#edd_cc_address .edd-input, #edd_cc_address .edd-select,#edd_payment_mode_select .edd-input, #edd_payment_mode_select .edd-select");"0.00"==c.total_plain?(a("#edd_cc_fields,#edd_cc_address,#edd_payment_mode_select").slideUp(),d.removeAttr("required"),a('input[name="edd-gateway"]').val("manual")):(d.is(".card-address-2")||d.attr("required","required"),a("#edd_cc_fields,#edd_cc_address").slideDown()),b.trigger("edd_discount_applied",[c])}else a("#edd-discount-error-wrap").html('<span class="edd_error">'+c.msg+"</span>"),a("#edd-discount-error-wrap").show(),b.trigger("edd_discount_invalid",[c]);else window.console&&window.console.log&&console.log(c),b.trigger("edd_discount_failed",[c]);g.hide()}}).fail(function(a){window.console&&window.console.log&&console.log(a)}),!1}function j(c){var d=a(this),e={action:"edd_remove_discount",code:d.data("code")};return a.ajax({type:"POST",data:e,dataType:"json",url:edd_global_vars.ajaxurl,xhrFields:{withCredentials:!0},success:function(c){var d="0"+edd_global_vars.decimal_separator+"00";a(".edd_cart_amount").each(function(){edd_global_vars.currency_sign+d!=a(this).text()&&d+edd_global_vars.currency_sign!=a(this).text()||window.location.reload(),a(this).text(c.total),a(this).data("total",c.total_plain)}),a(".edd_cart_discount").html(c.html),c.discounts||a(".edd_cart_discount_row").hide(),recalculate_taxes(),a("#edd_cc_fields,#edd_cc_address").slideDown(),b.trigger("edd_discount_removed",[c])}}).fail(function(a){window.console&&window.console.log&&console.log(a)}),!1}function k(c){var d=a(this),e=d.val(),f=d.data("key"),g=d.closest(".edd_cart_item").data("download-id"),h=d.parent().find('input[name="edd-cart-download-'+f+'-options"]').val(),i=a("#edd_cc_address"),j=i.find("#billing_country").val(),k=i.find("#card_state").val(),l={action:"edd_update_quantity",quantity:e,download_id:g,options:h,billing_country:j,card_state:k};return a.ajax({type:"POST",data:l,dataType:"json",url:edd_global_vars.ajaxurl,xhrFields:{withCredentials:!0},success:function(c){a(".edd_cart_subtotal_amount").each(function(){a(this).text(c.subtotal)}),a(".edd_cart_tax_amount").each(function(){a(this).text(c.taxes)}),a(".edd_cart_amount").each(function(){a(this).text(c.total),b.trigger("edd_quantity_updated",[c])})}}).fail(function(a){window.console&&window.console.log&&console.log(a)}),!1}var b,c,d,e,f;return{init:g,recalculate_taxes:recalculate_taxes}}(window.jQuery),window.jQuery(document).ready(EDD_Checkout.init);var ajax_tax_count=0;
|
assets/js/jquery.payment.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
(function(){var t,e,n,r,a,o,i,l,u,s,c,h,p,g,v,f,d,m,y,C,T,w,$,D,S=[].slice,k=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=window.jQuery||window.Zepto||window.$,t.payment={},t.payment.fn={},t.fn.payment=function(){var e,n;return n=arguments[0],e=2<=arguments.length?S.call(arguments,1):[],t.payment.fn[n].apply(this,e)},a=/(\d{1,4})/g,t.payment.cards=r=[{type:"maestro",patterns:[5018,502,503,506,56,58,639,6220,67],format:a,length:[12,13,14,15,16,17,18,19],cvcLength:[3],luhn:!0},{type:"forbrugsforeningen",patterns:[600],format:a,length:[16],cvcLength:[3],luhn:!0},{type:"dankort",patterns:[5019],format:a,length:[16],cvcLength:[3],luhn:!0},{type:"visa",patterns:[4],format:a,length:[13,16],cvcLength:[3],luhn:!0},{type:"mastercard",patterns:[51,52,53,54,55,22,23,24,25,26,27],format:a,length:[16],cvcLength:[3],luhn:!0},{type:"amex",patterns:[34,37],format:/(\d{1,4})(\d{1,6})?(\d{1,5})?/,length:[15],cvcLength:[3,4],luhn:!0},{type:"dinersclub",patterns:[30,36,38,39],format:/(\d{1,4})(\d{1,6})?(\d{1,4})?/,length:[14],cvcLength:[3],luhn:!0},{type:"discover",patterns:[60,64,65,622],format:a,length:[16],cvcLength:[3],luhn:!0},{type:"unionpay",patterns:[62,88],format:a,length:[16,17,18,19],cvcLength:[3],luhn:!1},{type:"jcb",patterns:[35],format:a,length:[16],cvcLength:[3],luhn:!0}],e=function(t){var e,n,a,o,i,l,u,s;for(t=(t+"").replace(/\D/g,""),o=0,l=r.length;l>o;o++)for(e=r[o],s=e.patterns,i=0,u=s.length;u>i;i++)if(a=s[i],n=a+"",t.substr(0,n.length)===n)return e},n=function(t){var e,n,a;for(n=0,a=r.length;a>n;n++)if(e=r[n],e.type===t)return e},p=function(t){var e,n,r,a,o,i;for(r=!0,a=0,n=(t+"").split("").reverse(),o=0,i=n.length;i>o;o++)e=n[o],e=parseInt(e,10),(r=!r)&&(e*=2),e>9&&(e-=9),a+=e;return a%10===0},h=function(t){var e;return null!=t.prop("selectionStart")&&t.prop("selectionStart")!==t.prop("selectionEnd")?!0:null!=("undefined"!=typeof document&&null!==document&&null!=(e=document.selection)?e.createRange:void 0)&&document.selection.createRange().text?!0:!1},$=function(t,e){var n,r,a,o,i,l;try{r=e.prop("selectionStart")}catch(u){o=u,r=null}return i=e.val(),e.val(t),null!==r&&e.is(":focus")?(r===i.length&&(r=t.length),i!==t&&(l=i.slice(r-1,+r+1||9e9),n=t.slice(r-1,+r+1||9e9),a=t[r],/\d/.test(a)&&l===""+a+" "&&n===" "+a&&(r+=1)),e.prop("selectionStart",r),e.prop("selectionEnd",r)):void 0},m=function(t){var e,n,r,a,o,i,l,u;for(null==t&&(t=""),r="0123456789",a="0123456789",i="",e=t.split(""),l=0,u=e.length;u>l;l++)n=e[l],o=r.indexOf(n),o>-1&&(n=a[o]),i+=n;return i},d=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var t;return t=n.val(),t=m(t),t=t.replace(/\D/g,""),$(t,n)})},v=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var e;return e=n.val(),e=m(e),e=t.payment.formatCardNumber(e),$(e,n)})},l=function(n){var r,a,o,i,l,u,s;return o=String.fromCharCode(n.which),!/^\d+$/.test(o)||(r=t(n.currentTarget),s=r.val(),a=e(s+o),i=(s.replace(/\D/g,"")+o).length,u=16,a&&(u=a.length[a.length.length-1]),i>=u||null!=r.prop("selectionStart")&&r.prop("selectionStart")!==s.length)?void 0:(l=a&&"amex"===a.type?/^(\d{4}|\d{4}\s\d{6})$/:/(?:^|\s)(\d{4})$/,l.test(s)?(n.preventDefault(),setTimeout(function(){return r.val(s+" "+o)})):l.test(s+o)?(n.preventDefault(),setTimeout(function(){return r.val(s+o+" ")})):void 0)},o=function(e){var n,r;return n=t(e.currentTarget),r=n.val(),8!==e.which||null!=n.prop("selectionStart")&&n.prop("selectionStart")!==r.length?void 0:/\d\s$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d\s$/,""))})):/\s\d?$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d$/,""))})):void 0},f=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var e;return e=n.val(),e=m(e),e=t.payment.formatExpiry(e),$(e,n)})},u=function(e){var n,r,a;return r=String.fromCharCode(e.which),/^\d+$/.test(r)?(n=t(e.currentTarget),a=n.val()+r,/^\d$/.test(a)&&"0"!==a&&"1"!==a?(e.preventDefault(),setTimeout(function(){return n.val("0"+a+" / ")})):/^\d\d$/.test(a)?(e.preventDefault(),setTimeout(function(){var t,e;return t=parseInt(a[0],10),e=parseInt(a[1],10),e>2&&0!==t?n.val("0"+t+" / "+e):n.val(""+a+" / ")})):void 0):void 0},s=function(e){var n,r,a;return r=String.fromCharCode(e.which),/^\d+$/.test(r)?(n=t(e.currentTarget),a=n.val(),/^\d\d$/.test(a)?n.val(""+a+" / "):void 0):void 0},c=function(e){var n,r,a;return a=String.fromCharCode(e.which),"/"===a||" "===a?(n=t(e.currentTarget),r=n.val(),/^\d$/.test(r)&&"0"!==r?n.val("0"+r+" / "):void 0):void 0},i=function(e){var n,r;return n=t(e.currentTarget),r=n.val(),8!==e.which||null!=n.prop("selectionStart")&&n.prop("selectionStart")!==r.length?void 0:/\d\s\/\s$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d\s\/\s$/,""))})):void 0},g=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var t;return t=n.val(),t=m(t),t=t.replace(/\D/g,"").slice(0,4),$(t,n)})},w=function(t){var e;return t.metaKey||t.ctrlKey?!0:32===t.which?!1:0===t.which?!0:t.which<33?!0:(e=String.fromCharCode(t.which),!!/[\d\s]/.test(e))},C=function(n){var r,a,o,i;return r=t(n.currentTarget),o=String.fromCharCode(n.which),/^\d+$/.test(o)&&!h(r)?(i=(r.val()+o).replace(/\D/g,""),a=e(i),a?i.length<=a.length[a.length.length-1]:i.length<=16):void 0},T=function(e){var n,r,a;return n=t(e.currentTarget),r=String.fromCharCode(e.which),/^\d+$/.test(r)&&!h(n)?(a=n.val()+r,a=a.replace(/\D/g,""),a.length>6?!1:void 0):void 0},y=function(e){var n,r,a;return n=t(e.currentTarget),r=String.fromCharCode(e.which),/^\d+$/.test(r)&&!h(n)?(a=n.val()+r,a.length<=4):void 0},D=function(e){var n,a,o,i,l;return n=t(e.currentTarget),l=n.val(),i=t.payment.cardType(l)||"unknown",n.hasClass(i)?void 0:(a=function(){var t,e,n;for(n=[],t=0,e=r.length;e>t;t++)o=r[t],n.push(o.type);return n}(),n.removeClass("unknown"),n.removeClass(a.join(" ")),n.addClass(i),n.toggleClass("identified","unknown"!==i),n.trigger("payment.cardType",i))},t.payment.fn.formatCardCVC=function(){return this.on("keypress",w),this.on("keypress",y),this.on("paste",g),this.on("change",g),this.on("input",g),this},t.payment.fn.formatCardExpiry=function(){return this.on("keypress",w),this.on("keypress",T),this.on("keypress",u),this.on("keypress",c),this.on("keypress",s),this.on("keydown",i),this.on("change",f),this.on("input",f),this},t.payment.fn.formatCardNumber=function(){return this.on("keypress",w),this.on("keypress",C),this.on("keypress",l),this.on("keydown",o),this.on("keyup",D),this.on("paste",v),this.on("change",v),this.on("input",v),this.on("input",D),this},t.payment.fn.restrictNumeric=function(){return this.on("keypress",w),this.on("paste",d),this.on("change",d),this.on("input",d),this},t.payment.fn.cardExpiryVal=function(){return t.payment.cardExpiryVal(t(this).val())},t.payment.cardExpiryVal=function(t){var e,n,r,a;return a=t.split(/[\s\/]+/,2),e=a[0],r=a[1],2===(null!=r?r.length:void 0)&&/^\d+$/.test(r)&&(n=(new Date).getFullYear(),n=n.toString().slice(0,2),r=n+r),e=parseInt(e,10),r=parseInt(r,10),{month:e,year:r}},t.payment.validateCardNumber=function(t){var n,r;return t=(t+"").replace(/\s+|-/g,""),/^\d+$/.test(t)?(n=e(t),n?(r=t.length,k.call(n.length,r)>=0&&(n.luhn===!1||p(t))):!1):!1},t.payment.validateCardExpiry=function(e,n){var r,a,o;return"object"==typeof e&&"month"in e&&(o=e,e=o.month,n=o.year),e&&n?(e=t.trim(e),n=t.trim(n),/^\d+$/.test(e)&&/^\d+$/.test(n)&&e>=1&&12>=e?(2===n.length&&(n=70>n?"20"+n:"19"+n),4!==n.length?!1:(a=new Date(n,e),r=new Date,a.setMonth(a.getMonth()-1),a.setMonth(a.getMonth()+1,1),a>r)):!1):!1},t.payment.validateCardCVC=function(e,r){var a,o;return e=t.trim(e),/^\d+$/.test(e)?(a=n(r),null!=a?(o=e.length,k.call(a.cvcLength,o)>=0):e.length>=3&&e.length<=4):!1},t.payment.cardType=function(t){var n;return t?(null!=(n=e(t))?n.type:void 0)||null:null},t.payment.formatCardNumber=function(n){var r,a,o,i;return n=n.replace(/\D/g,""),(r=e(n))?(o=r.length[r.length.length-1],n=n.slice(0,o),r.format.global?null!=(i=n.match(r.format))?i.join(" "):void 0:(a=r.format.exec(n),null!=a?(a.shift(),a=t.grep(a,function(t){return t}),a.join(" ")):void 0)):n},t.payment.formatExpiry=function(t){var e,n,r,a;return(n=t.match(/^\D*(\d{1,2})(\D+)?(\d{1,4})?/))?(e=n[1]||"",r=n[2]||"",a=n[3]||"",a.length>0?r=" / ":" /"===r?(e=e.substring(0,1),r=""):2===e.length||r.length>0?r=" / ":1===e.length&&"0"!==e&&"1"!==e&&(e="0"+e,r=" / "),e+r+a):""}}).call(this);
|
|
easy-digital-downloads.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: The easiest way to sell digital products with WordPress.
|
6 |
* Author: Easy Digital Downloads
|
7 |
* Author URI: https://easydigitaldownloads.com
|
8 |
-
* Version: 2.
|
9 |
* Text Domain: easy-digital-downloads
|
10 |
* Domain Path: languages
|
11 |
*
|
@@ -25,7 +25,7 @@
|
|
25 |
* @package EDD
|
26 |
* @category Core
|
27 |
* @author Pippin Williamson
|
28 |
-
* @version 2.
|
29 |
*/
|
30 |
|
31 |
// Exit if accessed directly.
|
@@ -206,7 +206,7 @@ final class Easy_Digital_Downloads {
|
|
206 |
|
207 |
// Plugin version.
|
208 |
if ( ! defined( 'EDD_VERSION' ) ) {
|
209 |
-
define( 'EDD_VERSION', '2.
|
210 |
}
|
211 |
|
212 |
// Plugin Folder Path.
|
@@ -250,7 +250,6 @@ final class Easy_Digital_Downloads {
|
|
250 |
require_once EDD_PLUGIN_DIR . 'includes/ajax-functions.php';
|
251 |
require_once EDD_PLUGIN_DIR . 'includes/api/class-edd-api.php';
|
252 |
require_once EDD_PLUGIN_DIR . 'includes/template-functions.php';
|
253 |
-
require_once EDD_PLUGIN_DIR . 'includes/template-actions.php';
|
254 |
require_once EDD_PLUGIN_DIR . 'includes/checkout/template.php';
|
255 |
require_once EDD_PLUGIN_DIR . 'includes/checkout/functions.php';
|
256 |
require_once EDD_PLUGIN_DIR . 'includes/cart/class-edd-cart.php';
|
@@ -260,7 +259,6 @@ final class Easy_Digital_Downloads {
|
|
260 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-db.php';
|
261 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-db-customers.php';
|
262 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-db-customer-meta.php';
|
263 |
-
require_once EDD_PLUGIN_DIR . 'includes/class-edd-customer-query.php';
|
264 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-customer.php';
|
265 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-discount.php';
|
266 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-download.php';
|
@@ -294,6 +292,7 @@ final class Easy_Digital_Downloads {
|
|
294 |
require_once EDD_PLUGIN_DIR . 'includes/payments/class-payment-stats.php';
|
295 |
require_once EDD_PLUGIN_DIR . 'includes/payments/class-payments-query.php';
|
296 |
require_once EDD_PLUGIN_DIR . 'includes/payments/class-edd-payment.php';
|
|
|
297 |
require_once EDD_PLUGIN_DIR . 'includes/download-functions.php';
|
298 |
require_once EDD_PLUGIN_DIR . 'includes/scripts.php';
|
299 |
require_once EDD_PLUGIN_DIR . 'includes/post-types.php';
|
5 |
* Description: The easiest way to sell digital products with WordPress.
|
6 |
* Author: Easy Digital Downloads
|
7 |
* Author URI: https://easydigitaldownloads.com
|
8 |
+
* Version: 2.7.12
|
9 |
* Text Domain: easy-digital-downloads
|
10 |
* Domain Path: languages
|
11 |
*
|
25 |
* @package EDD
|
26 |
* @category Core
|
27 |
* @author Pippin Williamson
|
28 |
+
* @version 2.7.12
|
29 |
*/
|
30 |
|
31 |
// Exit if accessed directly.
|
206 |
|
207 |
// Plugin version.
|
208 |
if ( ! defined( 'EDD_VERSION' ) ) {
|
209 |
+
define( 'EDD_VERSION', '2.7.12' );
|
210 |
}
|
211 |
|
212 |
// Plugin Folder Path.
|
250 |
require_once EDD_PLUGIN_DIR . 'includes/ajax-functions.php';
|
251 |
require_once EDD_PLUGIN_DIR . 'includes/api/class-edd-api.php';
|
252 |
require_once EDD_PLUGIN_DIR . 'includes/template-functions.php';
|
|
|
253 |
require_once EDD_PLUGIN_DIR . 'includes/checkout/template.php';
|
254 |
require_once EDD_PLUGIN_DIR . 'includes/checkout/functions.php';
|
255 |
require_once EDD_PLUGIN_DIR . 'includes/cart/class-edd-cart.php';
|
259 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-db.php';
|
260 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-db-customers.php';
|
261 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-db-customer-meta.php';
|
|
|
262 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-customer.php';
|
263 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-discount.php';
|
264 |
require_once EDD_PLUGIN_DIR . 'includes/class-edd-download.php';
|
292 |
require_once EDD_PLUGIN_DIR . 'includes/payments/class-payment-stats.php';
|
293 |
require_once EDD_PLUGIN_DIR . 'includes/payments/class-payments-query.php';
|
294 |
require_once EDD_PLUGIN_DIR . 'includes/payments/class-edd-payment.php';
|
295 |
+
require_once EDD_PLUGIN_DIR . 'includes/misc-functions.php';
|
296 |
require_once EDD_PLUGIN_DIR . 'includes/download-functions.php';
|
297 |
require_once EDD_PLUGIN_DIR . 'includes/scripts.php';
|
298 |
require_once EDD_PLUGIN_DIR . 'includes/post-types.php';
|
includes/EDD_SL_Plugin_Updater.php
CHANGED
@@ -7,7 +7,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
7 |
* Allows plugins to use their own update API.
|
8 |
*
|
9 |
* @author Easy Digital Downloads
|
10 |
-
* @version 1.6.
|
11 |
*/
|
12 |
class EDD_SL_Plugin_Updater {
|
13 |
|
@@ -307,13 +307,11 @@ class EDD_SL_Plugin_Updater {
|
|
307 |
* @return object $array
|
308 |
*/
|
309 |
public function http_request_args( $args, $url ) {
|
310 |
-
|
311 |
-
$verify_ssl = $this->verify_ssl();
|
312 |
if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
|
313 |
-
$args['sslverify'] =
|
314 |
}
|
315 |
return $args;
|
316 |
-
|
317 |
}
|
318 |
|
319 |
/**
|
@@ -353,8 +351,7 @@ class EDD_SL_Plugin_Updater {
|
|
353 |
'beta' => ! empty( $data['beta'] ),
|
354 |
);
|
355 |
|
356 |
-
$
|
357 |
-
$request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) );
|
358 |
|
359 |
if ( ! is_wp_error( $request ) ) {
|
360 |
$request = json_decode( wp_remote_retrieve_body( $request ) );
|
@@ -416,8 +413,7 @@ class EDD_SL_Plugin_Updater {
|
|
416 |
'beta' => ! empty( $data['beta'] )
|
417 |
);
|
418 |
|
419 |
-
$
|
420 |
-
$request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) );
|
421 |
|
422 |
if ( ! is_wp_error( $request ) ) {
|
423 |
$version_info = json_decode( wp_remote_retrieve_body( $request ) );
|
@@ -474,18 +470,8 @@ class EDD_SL_Plugin_Updater {
|
|
474 |
'value' => json_encode( $value )
|
475 |
);
|
476 |
|
477 |
-
update_option( $cache_key, $data
|
478 |
-
|
479 |
-
}
|
480 |
|
481 |
-
/**
|
482 |
-
* Returns if the SSL of the store should be verified.
|
483 |
-
*
|
484 |
-
* @since 1.6.13
|
485 |
-
* @return bool
|
486 |
-
*/
|
487 |
-
private function verify_ssl() {
|
488 |
-
return (bool) apply_filters( 'edd_sl_api_request_verify_ssl', true, $this );
|
489 |
}
|
490 |
|
491 |
}
|
7 |
* Allows plugins to use their own update API.
|
8 |
*
|
9 |
* @author Easy Digital Downloads
|
10 |
+
* @version 1.6.12
|
11 |
*/
|
12 |
class EDD_SL_Plugin_Updater {
|
13 |
|
307 |
* @return object $array
|
308 |
*/
|
309 |
public function http_request_args( $args, $url ) {
|
310 |
+
// If it is an https request and we are performing a package download, disable ssl verification
|
|
|
311 |
if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
|
312 |
+
$args['sslverify'] = false;
|
313 |
}
|
314 |
return $args;
|
|
|
315 |
}
|
316 |
|
317 |
/**
|
351 |
'beta' => ! empty( $data['beta'] ),
|
352 |
);
|
353 |
|
354 |
+
$request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
|
|
|
355 |
|
356 |
if ( ! is_wp_error( $request ) ) {
|
357 |
$request = json_decode( wp_remote_retrieve_body( $request ) );
|
413 |
'beta' => ! empty( $data['beta'] )
|
414 |
);
|
415 |
|
416 |
+
$request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
|
|
|
417 |
|
418 |
if ( ! is_wp_error( $request ) ) {
|
419 |
$version_info = json_decode( wp_remote_retrieve_body( $request ) );
|
470 |
'value' => json_encode( $value )
|
471 |
);
|
472 |
|
473 |
+
update_option( $cache_key, $data );
|
|
|
|
|
474 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
475 |
}
|
476 |
|
477 |
}
|
includes/actions.php
CHANGED
@@ -21,8 +21,9 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
21 |
* @return void
|
22 |
*/
|
23 |
function edd_get_actions() {
|
24 |
-
|
25 |
-
|
|
|
26 |
}
|
27 |
}
|
28 |
add_action( 'init', 'edd_get_actions' );
|
@@ -36,8 +37,9 @@ add_action( 'init', 'edd_get_actions' );
|
|
36 |
* @return void
|
37 |
*/
|
38 |
function edd_post_actions() {
|
39 |
-
|
40 |
-
|
|
|
41 |
}
|
42 |
}
|
43 |
add_action( 'init', 'edd_post_actions' );
|
21 |
* @return void
|
22 |
*/
|
23 |
function edd_get_actions() {
|
24 |
+
$key = ! empty( $_GET['edd_action'] ) ? sanitize_key( $_GET['edd_action'] ) : false;
|
25 |
+
if ( ! empty( $key ) ) {
|
26 |
+
do_action( "edd_{$key}" , $_GET );
|
27 |
}
|
28 |
}
|
29 |
add_action( 'init', 'edd_get_actions' );
|
37 |
* @return void
|
38 |
*/
|
39 |
function edd_post_actions() {
|
40 |
+
$key = ! empty( $_POST['edd_action'] ) ? sanitize_key( $_POST['edd_action'] ) : false;
|
41 |
+
if ( ! empty( $key ) ) {
|
42 |
+
do_action( "edd_{$key}", $_POST );
|
43 |
}
|
44 |
}
|
45 |
add_action( 'init', 'edd_post_actions' );
|
includes/admin/add-ons.php
CHANGED
@@ -21,71 +21,41 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
21 |
* @return void
|
22 |
*/
|
23 |
function edd_add_ons_page() {
|
24 |
-
$add_ons_tabs = apply_filters( 'edd_add_ons_tabs', array( 'popular' =>
|
25 |
-
$active_tab
|
26 |
-
|
27 |
-
// Set a new campaign for tracking purposes
|
28 |
-
$campaign = isset( $_GET['view'] ) && strtolower( $_GET['view'] ) === 'integrations' ? 'EDDIntegrationsPage' : 'EDDAddonsPage';
|
29 |
|
30 |
ob_start(); ?>
|
31 |
<div class="wrap" id="edd-add-ons">
|
32 |
-
<h1
|
33 |
-
|
34 |
-
<hr class="wp-header-end">
|
35 |
-
<?php edd_display_product_tabs(); ?>
|
36 |
-
<h2>
|
37 |
-
<?php _e( 'Apps and Integrations for Easy Digital Downloads', 'easy-digital-downloads' ); ?>
|
38 |
<span>
|
39 |
-
<a href="http://easydigitaldownloads.com/extensions/?utm_source=plugin-addons-page&utm_medium=plugin&utm_campaign
|
40 |
</span>
|
41 |
-
</
|
42 |
-
<p><?php _e( 'These <em><strong>add functionality</strong></em> to your Easy Digital Downloads powered store.', 'easy-digital-downloads' ); ?></p>
|
43 |
-
<
|
44 |
-
|
45 |
-
|
46 |
-
$total_tabs = count( $add_ons_tabs );
|
47 |
-
$i = 1;
|
48 |
-
foreach( $add_ons_tabs as $tab_id => $tab_name ) {
|
49 |
-
|
50 |
-
$tab_url = add_query_arg( array(
|
51 |
-
'settings-updated' => false,
|
52 |
-
'tab' => $tab_id
|
53 |
-
) );
|
54 |
|
55 |
-
|
56 |
-
|
57 |
-
|
|
|
58 |
|
59 |
-
|
60 |
|
61 |
-
|
62 |
-
echo '<a href="' . esc_url( $tab_url ) . '" class="' . $active . '">';
|
63 |
echo esc_html( $tab_name );
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
$count = '29';
|
70 |
-
}
|
71 |
-
|
72 |
-
echo ' <span class="count">(' . $count . ')</span>';
|
73 |
-
echo '</li>';
|
74 |
-
|
75 |
-
if ( $i !== $total_tabs ) {
|
76 |
-
echo ' | ';
|
77 |
-
}
|
78 |
-
|
79 |
-
$i++;
|
80 |
-
}
|
81 |
-
?>
|
82 |
-
</ul>
|
83 |
-
</div>
|
84 |
<div id="tab_container">
|
85 |
<?php echo edd_add_ons_get_feed( $active_tab ); ?>
|
86 |
<div class="clear"></div>
|
87 |
<div class="edd-add-ons-footer">
|
88 |
-
<a href="http://easydigitaldownloads.com/extensions/?utm_source=plugin-addons-page&utm_medium=plugin&utm_campaign
|
89 |
</div>
|
90 |
</div><!-- #tab_container-->
|
91 |
</div>
|
@@ -123,10 +93,5 @@ function edd_add_ons_get_feed( $tab = 'popular' ) {
|
|
123 |
}
|
124 |
}
|
125 |
|
126 |
-
if ( isset( $_GET['view'] ) && 'integrations' === $_GET['view'] ) {
|
127 |
-
// Set a new campaign for tracking purposes
|
128 |
-
$cache = str_replace( 'EDDAddonsPage', 'EDDIntegrationsPage', $cache );
|
129 |
-
}
|
130 |
-
|
131 |
return $cache;
|
132 |
}
|
21 |
* @return void
|
22 |
*/
|
23 |
function edd_add_ons_page() {
|
24 |
+
$add_ons_tabs = apply_filters( 'edd_add_ons_tabs', array( 'popular' => 'Popular', 'new' => 'New') );
|
25 |
+
$active_tab = isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'], $add_ons_tabs ) ? $_GET['tab'] : 'popular';
|
|
|
|
|
|
|
26 |
|
27 |
ob_start(); ?>
|
28 |
<div class="wrap" id="edd-add-ons">
|
29 |
+
<h1>
|
30 |
+
<?php _e( 'Extensions for Easy Digital Downloads', 'easy-digital-downloads' ); ?>
|
|
|
|
|
|
|
|
|
31 |
<span>
|
32 |
+
<a href="http://easydigitaldownloads.com/extensions/?utm_source=plugin-addons-page&utm_medium=plugin&utm_campaign=EDD%20Addons%20Page&utm_content=All%20Extensions" class="button-primary" target="_blank"><?php _e( 'Browse All Extensions', 'easy-digital-downloads' ); ?></a>
|
33 |
</span>
|
34 |
+
</h1>
|
35 |
+
<p><?php _e( 'These extensions <em><strong>add functionality</strong></em> to your Easy Digital Downloads powered store.', 'easy-digital-downloads' ); ?></p>
|
36 |
+
<h2 class="nav-tab-wrapper">
|
37 |
+
<?php
|
38 |
+
foreach( $add_ons_tabs as $tab_id => $tab_name ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
|
40 |
+
$tab_url = add_query_arg( array(
|
41 |
+
'settings-updated' => false,
|
42 |
+
'tab' => $tab_id
|
43 |
+
) );
|
44 |
|
45 |
+
$active = $active_tab == $tab_id ? ' nav-tab-active' : '';
|
46 |
|
47 |
+
echo '<a href="' . esc_url( $tab_url ) . '" class="nav-tab' . $active . '">';
|
|
|
48 |
echo esc_html( $tab_name );
|
49 |
+
echo '</a>';
|
50 |
+
}
|
51 |
+
?>
|
52 |
+
<span class="edd-tab-span"><img src="<?php echo EDD_PLUGIN_URL; ?>assets/images/edd-peeking.png" /></span>
|
53 |
+
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
<div id="tab_container">
|
55 |
<?php echo edd_add_ons_get_feed( $active_tab ); ?>
|
56 |
<div class="clear"></div>
|
57 |
<div class="edd-add-ons-footer">
|
58 |
+
<a href="http://easydigitaldownloads.com/extensions/?utm_source=plugin-addons-page&utm_medium=plugin&utm_campaign=EDD%20Addons%20Page&utm_content=All%20Extensions" class="button-primary" target="_blank"><?php _e( 'Browse All Extensions', 'easy-digital-downloads' ); ?></a>
|
59 |
</div>
|
60 |
</div><!-- #tab_container-->
|
61 |
</div>
|
93 |
}
|
94 |
}
|
95 |
|
|
|
|
|
|
|
|
|
|
|
96 |
return $cache;
|
97 |
}
|
includes/admin/admin-actions.php
CHANGED
@@ -29,58 +29,3 @@ function edd_process_actions() {
|
|
29 |
}
|
30 |
}
|
31 |
add_action( 'admin_init', 'edd_process_actions' );
|
32 |
-
|
33 |
-
/**
|
34 |
-
* When the Download list table loads, call the function to view our tabs.
|
35 |
-
*
|
36 |
-
* @since 2.8.9
|
37 |
-
* @param $views
|
38 |
-
*
|
39 |
-
* @return mixed
|
40 |
-
*/
|
41 |
-
function edd_products_tabs( $views ) {
|
42 |
-
edd_display_product_tabs();
|
43 |
-
|
44 |
-
return $views;
|
45 |
-
}
|
46 |
-
add_filter( 'views_edit-download', 'edd_products_tabs', 10, 1 );
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Displays the product tabs for 'Products' and 'Apps and Integrations'
|
50 |
-
*
|
51 |
-
* @since 2.8.9
|
52 |
-
*/
|
53 |
-
function edd_display_product_tabs() {
|
54 |
-
?>
|
55 |
-
<h2 class="nav-tab-wrapper">
|
56 |
-
<?php
|
57 |
-
$tabs = array(
|
58 |
-
'products' => array(
|
59 |
-
'name' => edd_get_label_plural(),
|
60 |
-
'url' => admin_url( 'edit.php?post_type=download' ),
|
61 |
-
),
|
62 |
-
'integrations' => array(
|
63 |
-
'name' => __( 'Apps and Integrations', 'easy-digital-downloads' ),
|
64 |
-
'url' => admin_url( 'edit.php?post_type=download&page=edd-addons&view=integrations' ),
|
65 |
-
),
|
66 |
-
);
|
67 |
-
|
68 |
-
$tabs = apply_filters( 'edd_add_ons_tabs', $tabs );
|
69 |
-
$active_tab = isset( $_GET['page'] ) && $_GET['page'] === 'edd-addons' ? 'integrations' : 'products';
|
70 |
-
foreach( $tabs as $tab_id => $tab ) {
|
71 |
-
|
72 |
-
$active = $active_tab == $tab_id ? ' nav-tab-active' : '';
|
73 |
-
|
74 |
-
echo '<a href="' . esc_url( $tab['url'] ) . '" class="nav-tab' . $active . '">';
|
75 |
-
echo esc_html( $tab['name'] );
|
76 |
-
echo '</a>';
|
77 |
-
}
|
78 |
-
?>
|
79 |
-
|
80 |
-
<a href="<?php echo admin_url( 'post-new.php?post_type=download' ); ?>" class="page-title-action">
|
81 |
-
<?php _e( 'Add New' ); // No text domain so it just follows what WP Core does ?>
|
82 |
-
</a>
|
83 |
-
</h2>
|
84 |
-
<br />
|
85 |
-
<?php
|
86 |
-
}
|
29 |
}
|
30 |
}
|
31 |
add_action( 'admin_init', 'edd_process_actions' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/admin/customers/customer-actions.php
CHANGED
@@ -250,11 +250,11 @@ function edd_add_customer_email( $args ) {
|
|
250 |
|
251 |
$user = wp_get_current_user();
|
252 |
$user_login = ! empty( $user->user_login ) ? $user->user_login : 'EDDBot';
|
253 |
-
$customer_note =
|
254 |
$customer->add_note( $customer_note );
|
255 |
|
256 |
if ( $primary ) {
|
257 |
-
$customer_note =
|
258 |
$customer->add_note( $customer_note );
|
259 |
}
|
260 |
|
@@ -308,7 +308,7 @@ function edd_remove_customer_email() {
|
|
308 |
|
309 |
$user = wp_get_current_user();
|
310 |
$user_login = ! empty( $user->user_login ) ? $user->user_login : 'EDDBot';
|
311 |
-
$customer_note =
|
312 |
$customer->add_note( $customer_note );
|
313 |
|
314 |
} else {
|
@@ -352,7 +352,7 @@ function edd_set_customer_primary_email() {
|
|
352 |
|
353 |
$user = wp_get_current_user();
|
354 |
$user_login = ! empty( $user->user_login ) ? $user->user_login : 'EDDBot';
|
355 |
-
$customer_note =
|
356 |
$customer->add_note( $customer_note );
|
357 |
|
358 |
} else {
|
@@ -637,17 +637,3 @@ function edd_include_single_customer_recount_tool_batch_processer( $class ) {
|
|
637 |
}
|
638 |
|
639 |
}
|
640 |
-
|
641 |
-
/**
|
642 |
-
* Sets up additional action calls for the set_last_changed method in the EDD_DB_Customers class.
|
643 |
-
*
|
644 |
-
* @since 2.8.7
|
645 |
-
* @param void
|
646 |
-
* @return void
|
647 |
-
*/
|
648 |
-
function edd_customer_action_calls() {
|
649 |
-
add_action( 'added_customer_meta', array( EDD()->customers, 'set_last_changed' ) );
|
650 |
-
add_action( 'updated_customer_meta', array( EDD()->customers, 'set_last_changed' ) );
|
651 |
-
add_action( 'deleted_customer_meta', array( EDD()->customers, 'set_last_changed' ) );
|
652 |
-
}
|
653 |
-
add_action( 'init', 'edd_customer_action_calls' );
|
250 |
|
251 |
$user = wp_get_current_user();
|
252 |
$user_login = ! empty( $user->user_login ) ? $user->user_login : 'EDDBot';
|
253 |
+
$customer_note = __( sprintf( 'Email address %s added by %s', $email, $user_login ), 'easy-digital-downloads' );
|
254 |
$customer->add_note( $customer_note );
|
255 |
|
256 |
if ( $primary ) {
|
257 |
+
$customer_note = __( sprintf( 'Email address %s set as primary by %s', $email, $user_login ), 'easy-digital-downloads' );
|
258 |
$customer->add_note( $customer_note );
|
259 |
}
|
260 |
|
308 |
|
309 |
$user = wp_get_current_user();
|
310 |
$user_login = ! empty( $user->user_login ) ? $user->user_login : 'EDDBot';
|
311 |
+
$customer_note = __( sprintf( 'Email address %s removed by %s', $_GET['email'], $user_login ), 'easy-digital-downloads' );
|
312 |
$customer->add_note( $customer_note );
|
313 |
|
314 |
} else {
|
352 |
|
353 |
$user = wp_get_current_user();
|
354 |
$user_login = ! empty( $user->user_login ) ? $user->user_login : 'EDDBot';
|
355 |
+
$customer_note = __( sprintf( 'Email address %s set as primary by %s', $_GET['email'], $user_login ), 'easy-digital-downloads' );
|
356 |
$customer->add_note( $customer_note );
|
357 |
|
358 |
} else {
|
637 |
}
|
638 |
|
639 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/admin/customers/customers.php
CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
14 |
function edd_customers_page() {
|
15 |
$default_views = edd_customer_views();
|
16 |
$requested_view = isset( $_GET['view'] ) ? sanitize_text_field( $_GET['view'] ) : 'customers';
|
17 |
-
if ( array_key_exists( $requested_view, $default_views ) &&
|
18 |
edd_render_customer_view( $requested_view, $default_views );
|
19 |
} else {
|
20 |
edd_customers_list();
|
@@ -164,7 +164,7 @@ function edd_render_customer_view( $view, $callbacks ) {
|
|
164 |
</div>
|
165 |
|
166 |
<div id="edd-item-card-wrapper" class="edd-customer-card-wrapper" style="float: left">
|
167 |
-
<?php
|
168 |
</div>
|
169 |
</div>
|
170 |
|
14 |
function edd_customers_page() {
|
15 |
$default_views = edd_customer_views();
|
16 |
$requested_view = isset( $_GET['view'] ) ? sanitize_text_field( $_GET['view'] ) : 'customers';
|
17 |
+
if ( array_key_exists( $requested_view, $default_views ) && function_exists( $default_views[$requested_view] ) ) {
|
18 |
edd_render_customer_view( $requested_view, $default_views );
|
19 |
} else {
|
20 |
edd_customers_list();
|
164 |
</div>
|
165 |
|
166 |
<div id="edd-item-card-wrapper" class="edd-customer-card-wrapper" style="float: left">
|
167 |
+
<?php $callbacks[$view]( $customer ) ?>
|
168 |
</div>
|
169 |
</div>
|
170 |
|
includes/admin/discounts/add-discount.php
CHANGED
@@ -23,8 +23,8 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
23 |
<label for="edd-name"><?php _e( 'Name', 'easy-digital-downloads' ); ?></label>
|
24 |
</th>
|
25 |
<td>
|
26 |
-
<input name="name" required="required" id="edd-name" type="text" value="" />
|
27 |
-
<p class="description"><?php _e( 'The name of this discount
|
28 |
</td>
|
29 |
</tr>
|
30 |
<?php do_action( 'edd_add_discount_form_before_code' ); ?>
|
@@ -33,7 +33,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
33 |
<label for="edd-code"><?php _e( 'Code', 'easy-digital-downloads' ); ?></label>
|
34 |
</th>
|
35 |
<td>
|
36 |
-
<input type="text" required="required" id="edd-code" name="code" value="" pattern="[a-zA-Z0-9
|
37 |
<p class="description"><?php _e( 'Enter a code for this discount, such as 10PERCENT. Only alphanumeric characters are allowed.', 'easy-digital-downloads' ); ?></p>
|
38 |
</td>
|
39 |
</tr>
|
@@ -56,7 +56,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
56 |
<label for="edd-amount"><?php _e( 'Amount', 'easy-digital-downloads' ); ?></label>
|
57 |
</th>
|
58 |
<td>
|
59 |
-
<input type="text" required="required"
|
60 |
<p class="description edd-amount-description flat-discount" style="display:none;"><?php printf( __( 'Enter the discount amount in %s', 'easy-digital-downloads' ), edd_get_currency() ); ?></p>
|
61 |
<p class="description edd-amount-description percent-discount"><?php _e( 'Enter the discount percentage. 10 = 10%', 'easy-digital-downloads' ); ?></p>
|
62 |
</td>
|
@@ -120,7 +120,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
120 |
<label for="edd-start"><?php _e( 'Start date', 'easy-digital-downloads' ); ?></label>
|
121 |
</th>
|
122 |
<td>
|
123 |
-
<input name="start" id="edd-start" type="text" value="" class="edd_datepicker"/>
|
124 |
<p class="description"><?php _e( 'Enter the start date for this discount code in the format of mm/dd/yyyy. For no start date, leave blank. If entered, the discount can only be used after or on this date.', 'easy-digital-downloads' ); ?></p>
|
125 |
</td>
|
126 |
</tr>
|
@@ -130,8 +130,8 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
130 |
<label for="edd-expiration"><?php _e( 'Expiration date', 'easy-digital-downloads' ); ?></label>
|
131 |
</th>
|
132 |
<td>
|
133 |
-
<input name="expiration" id="edd-expiration" type="text" class="edd_datepicker"/>
|
134 |
-
<p class="description"><?php _e( 'Enter the expiration date for this discount code in the format of mm/dd/yyyy. For no expiration, leave blank
|
135 |
</td>
|
136 |
</tr>
|
137 |
<?php do_action( 'edd_add_discount_form_before_min_cart_amount' ); ?>
|
@@ -140,8 +140,8 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
140 |
<label for="edd-min-cart-amount"><?php _e( 'Minimum Amount', 'easy-digital-downloads' ); ?></label>
|
141 |
</th>
|
142 |
<td>
|
143 |
-
<input type="text" id="edd-min-cart-amount" name="min_price" value="" />
|
144 |
-
<p class="description"><?php _e( 'The minimum
|
145 |
</td>
|
146 |
</tr>
|
147 |
<?php do_action( 'edd_add_discount_form_before_max_uses' ); ?>
|
@@ -150,7 +150,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
150 |
<label for="edd-max-uses"><?php _e( 'Max Uses', 'easy-digital-downloads' ); ?></label>
|
151 |
</th>
|
152 |
<td>
|
153 |
-
<input type="text" id="edd-max-uses" name="max" value="" />
|
154 |
<p class="description"><?php _e( 'The maximum number of times this discount can be used. Leave blank for unlimited.', 'easy-digital-downloads' ); ?></p>
|
155 |
</td>
|
156 |
</tr>
|
23 |
<label for="edd-name"><?php _e( 'Name', 'easy-digital-downloads' ); ?></label>
|
24 |
</th>
|
25 |
<td>
|
26 |
+
<input name="name" required="required" id="edd-name" type="text" value="" style="width: 300px;"/>
|
27 |
+
<p class="description"><?php _e( 'The name of this discount', 'easy-digital-downloads' ); ?></p>
|
28 |
</td>
|
29 |
</tr>
|
30 |
<?php do_action( 'edd_add_discount_form_before_code' ); ?>
|
33 |
<label for="edd-code"><?php _e( 'Code', 'easy-digital-downloads' ); ?></label>
|
34 |
</th>
|
35 |
<td>
|
36 |
+
<input type="text" required="required" id="edd-code" name="code" value="" pattern="[a-zA-Z0-9]+" style="width: 300px;"/>
|
37 |
<p class="description"><?php _e( 'Enter a code for this discount, such as 10PERCENT. Only alphanumeric characters are allowed.', 'easy-digital-downloads' ); ?></p>
|
38 |
</td>
|
39 |
</tr>
|
56 |
<label for="edd-amount"><?php _e( 'Amount', 'easy-digital-downloads' ); ?></label>
|
57 |
</th>
|
58 |
<td>
|
59 |
+
<input type="text" required="required" id="edd-amount" name="amount" value="" style="width: 40px;"/>
|
60 |
<p class="description edd-amount-description flat-discount" style="display:none;"><?php printf( __( 'Enter the discount amount in %s', 'easy-digital-downloads' ), edd_get_currency() ); ?></p>
|
61 |
<p class="description edd-amount-description percent-discount"><?php _e( 'Enter the discount percentage. 10 = 10%', 'easy-digital-downloads' ); ?></p>
|
62 |
</td>
|
120 |
<label for="edd-start"><?php _e( 'Start date', 'easy-digital-downloads' ); ?></label>
|
121 |
</th>
|
122 |
<td>
|
123 |
+
<input name="start" id="edd-start" type="text" value="" style="width: 300px;" class="edd_datepicker"/>
|
124 |
<p class="description"><?php _e( 'Enter the start date for this discount code in the format of mm/dd/yyyy. For no start date, leave blank. If entered, the discount can only be used after or on this date.', 'easy-digital-downloads' ); ?></p>
|
125 |
</td>
|
126 |
</tr>
|
130 |
<label for="edd-expiration"><?php _e( 'Expiration date', 'easy-digital-downloads' ); ?></label>
|
131 |
</th>
|
132 |
<td>
|
133 |
+
<input name="expiration" id="edd-expiration" type="text" style="width: 300px;" class="edd_datepicker"/>
|
134 |
+
<p class="description"><?php _e( 'Enter the expiration date for this discount code in the format of mm/dd/yyyy. For no expiration, leave blank', 'easy-digital-downloads' ); ?></p>
|
135 |
</td>
|
136 |
</tr>
|
137 |
<?php do_action( 'edd_add_discount_form_before_min_cart_amount' ); ?>
|
140 |
<label for="edd-min-cart-amount"><?php _e( 'Minimum Amount', 'easy-digital-downloads' ); ?></label>
|
141 |
</th>
|
142 |
<td>
|
143 |
+
<input type="text" id="edd-min-cart-amount" name="min_price" value="" style="width: 40px;"/>
|
144 |
+
<p class="description"><?php _e( 'The minimum amount that must be purchased before this discount can be used. Leave blank for no minimum.', 'easy-digital-downloads' ); ?></p>
|
145 |
</td>
|
146 |
</tr>
|
147 |
<?php do_action( 'edd_add_discount_form_before_max_uses' ); ?>
|
150 |
<label for="edd-max-uses"><?php _e( 'Max Uses', 'easy-digital-downloads' ); ?></label>
|
151 |
</th>
|
152 |
<td>
|
153 |
+
<input type="text" id="edd-max-uses" name="max" value="" style="width: 40px;"/>
|
154 |
<p class="description"><?php _e( 'The maximum number of times this discount can be used. Leave blank for unlimited.', 'easy-digital-downloads' ); ?></p>
|
155 |
</td>
|
156 |
</tr>
|
includes/admin/discounts/discount-actions.php
CHANGED
@@ -38,9 +38,7 @@ function edd_add_discount( $data ) {
|
|
38 |
edd_die();
|
39 |
}
|
40 |
|
41 |
-
|
42 |
-
$sanitized = preg_replace('/[^a-zA-Z0-9-_]+/', '', $data['code'] );
|
43 |
-
if ( strtoupper( $data['code'] ) !== strtoupper( $sanitized ) ) {
|
44 |
wp_redirect( add_query_arg( 'edd-message', 'discount_invalid_code' ) );
|
45 |
edd_die();
|
46 |
}
|
38 |
edd_die();
|
39 |
}
|
40 |
|
41 |
+
if ( ! ctype_alnum( $data['code'] ) ) {
|
|
|
|
|
42 |
wp_redirect( add_query_arg( 'edd-message', 'discount_invalid_code' ) );
|
43 |
edd_die();
|
44 |
}
|
includes/admin/discounts/edit-discount.php
CHANGED
@@ -37,7 +37,7 @@ $condition_display = empty( $product_reqs ) ? ' style="display:none;"' : '';
|
|
37 |
<label for="edd-name"><?php _e( 'Name', 'easy-digital-downloads' ); ?></label>
|
38 |
</th>
|
39 |
<td>
|
40 |
-
<input name="name" required="required" id="edd-name" type="text" value="<?php echo esc_attr( stripslashes( $discount->post_title ) ); ?>" />
|
41 |
<p class="description"><?php _e( 'The name of this discount', 'easy-digital-downloads' ); ?></p>
|
42 |
</td>
|
43 |
</tr>
|
@@ -47,7 +47,7 @@ $condition_display = empty( $product_reqs ) ? ' style="display:none;"' : '';
|
|
47 |
<label for="edd-code"><?php _e( 'Code', 'easy-digital-downloads' ); ?></label>
|
48 |
</th>
|
49 |
<td>
|
50 |
-
<input type="text" required="required" id="edd-code" name="code" value="<?php echo esc_attr( edd_get_discount_code( $discount_id ) ); ?>" pattern="[a-zA-Z0-9
|
51 |
<p class="description"><?php _e( 'Enter a code for this discount, such as 10PERCENT. Only alphanumeric characters are allowed.', 'easy-digital-downloads' ); ?></p>
|
52 |
</td>
|
53 |
</tr>
|
@@ -70,7 +70,7 @@ $condition_display = empty( $product_reqs ) ? ' style="display:none;"' : '';
|
|
70 |
<label for="edd-amount"><?php _e( 'Amount', 'easy-digital-downloads' ); ?></label>
|
71 |
</th>
|
72 |
<td>
|
73 |
-
<input type="text"
|
74 |
<p class="description edd-amount-description flat"<?php echo $flat_display; ?>><?php printf( __( 'Enter the discount amount in %s', 'easy-digital-downloads' ), edd_get_currency() ); ?></p>
|
75 |
<p class="description edd-amount-description percent"<?php echo $percent_display; ?>><?php _e( 'Enter the discount percentage. 10 = 10%', 'easy-digital-downloads' ); ?></p>
|
76 |
</td>
|
@@ -135,7 +135,7 @@ $condition_display = empty( $product_reqs ) ? ' style="display:none;"' : '';
|
|
135 |
<label for="edd-start"><?php _e( 'Start date', 'easy-digital-downloads' ); ?></label>
|
136 |
</th>
|
137 |
<td>
|
138 |
-
<input name="start" id="edd-start" type="text" value="<?php echo esc_attr( edd_get_discount_start_date( $discount_id ) ); ?>"
|
139 |
<p class="description"><?php _e( 'Enter the start date for this discount code in the format of mm/dd/yyyy. For no start date, leave blank. If entered, the discount can only be used after or on this date.', 'easy-digital-downloads' ); ?></p>
|
140 |
</td>
|
141 |
</tr>
|
@@ -145,7 +145,7 @@ $condition_display = empty( $product_reqs ) ? ' style="display:none;"' : '';
|
|
145 |
<label for="edd-expiration"><?php _e( 'Expiration date', 'easy-digital-downloads' ); ?></label>
|
146 |
</th>
|
147 |
<td>
|
148 |
-
<input name="expiration" id="edd-expiration" type="text" value="<?php echo esc_attr( edd_get_discount_expiration( $discount_id ) ); ?>"
|
149 |
<p class="description"><?php _e( 'Enter the expiration date for this discount code in the format of mm/dd/yyyy. For no expiration, leave blank', 'easy-digital-downloads' ); ?></p>
|
150 |
</td>
|
151 |
</tr>
|
37 |
<label for="edd-name"><?php _e( 'Name', 'easy-digital-downloads' ); ?></label>
|
38 |
</th>
|
39 |
<td>
|
40 |
+
<input name="name" required="required" id="edd-name" type="text" value="<?php echo esc_attr( stripslashes( $discount->post_title ) ); ?>" style="width: 300px;"/>
|
41 |
<p class="description"><?php _e( 'The name of this discount', 'easy-digital-downloads' ); ?></p>
|
42 |
</td>
|
43 |
</tr>
|
47 |
<label for="edd-code"><?php _e( 'Code', 'easy-digital-downloads' ); ?></label>
|
48 |
</th>
|
49 |
<td>
|
50 |
+
<input type="text" required="required" id="edd-code" name="code" value="<?php echo esc_attr( edd_get_discount_code( $discount_id ) ); ?>" pattern="[a-zA-Z0-9]+" style="width: 300px;"/>
|
51 |
<p class="description"><?php _e( 'Enter a code for this discount, such as 10PERCENT. Only alphanumeric characters are allowed.', 'easy-digital-downloads' ); ?></p>
|
52 |
</td>
|
53 |
</tr>
|
70 |
<label for="edd-amount"><?php _e( 'Amount', 'easy-digital-downloads' ); ?></label>
|
71 |
</th>
|
72 |
<td>
|
73 |
+
<input type="text" required="required" id="edd-amount" name="amount" value="<?php echo esc_attr( edd_get_discount_amount( $discount_id ) ); ?>" style="width: 40px;"/>
|
74 |
<p class="description edd-amount-description flat"<?php echo $flat_display; ?>><?php printf( __( 'Enter the discount amount in %s', 'easy-digital-downloads' ), edd_get_currency() ); ?></p>
|
75 |
<p class="description edd-amount-description percent"<?php echo $percent_display; ?>><?php _e( 'Enter the discount percentage. 10 = 10%', 'easy-digital-downloads' ); ?></p>
|
76 |
</td>
|
135 |
<label for="edd-start"><?php _e( 'Start date', 'easy-digital-downloads' ); ?></label>
|
136 |
</th>
|
137 |
<td>
|
138 |
+
<input name="start" id="edd-start" type="text" value="<?php echo esc_attr( edd_get_discount_start_date( $discount_id ) ); ?>" style="width: 300px;" class="edd_datepicker"/>
|
139 |
<p class="description"><?php _e( 'Enter the start date for this discount code in the format of mm/dd/yyyy. For no start date, leave blank. If entered, the discount can only be used after or on this date.', 'easy-digital-downloads' ); ?></p>
|
140 |
</td>
|
141 |
</tr>
|
145 |
<label for="edd-expiration"><?php _e( 'Expiration date', 'easy-digital-downloads' ); ?></label>
|
146 |
</th>
|
147 |
<td>
|
148 |
+
<input name="expiration" id="edd-expiration" type="text" value="<?php echo esc_attr( edd_get_discount_expiration( $discount_id ) ); ?>" style="width: 300px;" class="edd_datepicker"/>
|
149 |
<p class="description"><?php _e( 'Enter the expiration date for this discount code in the format of mm/dd/yyyy. For no expiration, leave blank', 'easy-digital-downloads' ); ?></p>
|
150 |
</td>
|
151 |
</tr>
|
includes/admin/downloads/metabox.php
CHANGED
@@ -42,11 +42,6 @@ function edd_add_download_meta_box() {
|
|
42 |
/** Product Stats */
|
43 |
add_meta_box( 'edd_product_stats', sprintf( __( '%1$s Stats', 'easy-digital-downloads' ), edd_get_label_singular(), edd_get_label_plural() ), 'edd_render_stats_meta_box', $post_type, 'side', 'high' );
|
44 |
}
|
45 |
-
|
46 |
-
if ( ! class_exists( 'EDD_Reviews' ) ) {
|
47 |
-
add_meta_box( 'edd-reviews-status', __( 'Product Reviews', 'easy-digital-downloads' ), 'edd_render_review_status_metabox', 'download', 'side', 'low' );
|
48 |
-
}
|
49 |
-
|
50 |
}
|
51 |
}
|
52 |
add_action( 'add_meta_boxes', 'edd_add_download_meta_box' );
|
@@ -302,7 +297,7 @@ function edd_render_price_field( $post_id ) {
|
|
302 |
$price_display = $variable_pricing ? ' style="display:none;"' : '';
|
303 |
$variable_display = $variable_pricing ? '' : ' style="display:none;"';
|
304 |
$currency_position = edd_get_option( 'currency_position', 'before' );
|
305 |
-
|
306 |
<p>
|
307 |
<strong><?php echo apply_filters( 'edd_price_options_heading', __( 'Pricing Options:', 'easy-digital-downloads' ) ); ?></strong>
|
308 |
</p>
|
@@ -343,37 +338,47 @@ function edd_render_price_field( $post_id ) {
|
|
343 |
<label for="_edd_price_options_mode"><?php echo apply_filters( 'edd_multi_option_purchase_text', __( 'Enable multi-option purchase mode. Allows multiple price options to be added to your cart at once', 'easy-digital-downloads' ) ); ?></label>
|
344 |
</p>
|
345 |
<div id="edd_price_fields" class="edd_meta_table_wrap">
|
346 |
-
<
|
347 |
-
|
348 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
<?php
|
350 |
if ( ! empty( $prices ) ) :
|
351 |
|
352 |
foreach ( $prices as $key => $value ) :
|
353 |
-
$name =
|
354 |
-
$index = ( isset( $value['index'] ) && $value['index'] !== '' ) ? $value['index'] : $key;
|
355 |
$amount = isset( $value['amount'] ) ? $value['amount'] : '';
|
356 |
-
$
|
|
|
357 |
?>
|
358 |
-
<
|
359 |
<?php do_action( 'edd_render_price_row', $key, $args, $post_id, $index ); ?>
|
360 |
-
</
|
361 |
<?php
|
362 |
endforeach;
|
363 |
else :
|
364 |
?>
|
365 |
-
<
|
366 |
<?php do_action( 'edd_render_price_row', 1, array(), $post_id, 1 ); ?>
|
367 |
-
</
|
368 |
<?php endif; ?>
|
369 |
|
370 |
-
<
|
371 |
-
<
|
372 |
-
<button class="button-secondary edd_add_repeatable"><?php _e( 'Add New Price', 'easy-digital-downloads' ); ?></button>
|
373 |
-
</
|
374 |
-
</
|
375 |
-
</
|
376 |
-
</
|
377 |
</div>
|
378 |
</div><!--end #edd_variable_price_fields-->
|
379 |
<?php
|
@@ -393,8 +398,6 @@ add_action( 'edd_meta_box_price_fields', 'edd_render_price_field', 10 );
|
|
393 |
* @param $post_id
|
394 |
*/
|
395 |
function edd_render_price_row( $key, $args = array(), $post_id, $index ) {
|
396 |
-
global $wp_filter;
|
397 |
-
|
398 |
$defaults = array(
|
399 |
'name' => null,
|
400 |
'amount' => null
|
@@ -402,131 +405,58 @@ function edd_render_price_row( $key, $args = array(), $post_id, $index ) {
|
|
402 |
|
403 |
$args = wp_parse_args( $args, $defaults );
|
404 |
|
405 |
-
$default_price_id
|
406 |
-
$currency_position
|
407 |
-
$custom_price_options = isset( $wp_filter['edd_download_price_option_row'] ) ? true : false;
|
408 |
-
|
409 |
-
// Run our advanced settings now, so we know if we need to display the settings.
|
410 |
-
// Output buffer so that the headers run, so we can log them and use them later
|
411 |
-
ob_start();
|
412 |
-
do_action( 'edd_download_price_table_head', $post_id );
|
413 |
-
ob_end_clean();
|
414 |
|
415 |
-
ob_start();
|
416 |
-
do_action( 'edd_download_price_table_row', $post_id, $key, $args );
|
417 |
-
$show_advanced = ob_get_clean();
|
418 |
?>
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
$actions = array();
|
432 |
-
if ( ! empty( $show_advanced ) || $custom_price_options ) {
|
433 |
-
$actions['show_advanced'] = '<a href="#" class="toggle-custom-price-option-section">' . __( 'Show advanced settings', 'easy-digital-downloads' ) . '</a>';
|
434 |
-
}
|
435 |
-
|
436 |
-
$actions['remove'] = '<a class="edd-remove-row edd-delete" data-type="price">' . sprintf( __( 'Remove', 'easy-digital-downloads' ), $key ) . '<span class="screen-reader-text">' . sprintf( __( 'Remove price option %s', 'easy-digital-downloads' ), $key ) . '</span></a>';
|
437 |
-
?>
|
438 |
-
<span class="edd-repeatable-row-actions">
|
439 |
-
<?php echo implode( ' | ', $actions ); ?>
|
440 |
-
</span>
|
441 |
-
</div>
|
442 |
-
|
443 |
-
<div class="edd-repeatable-row-standard-fields">
|
444 |
-
|
445 |
-
<div class="edd-option-name">
|
446 |
-
<span class="edd-repeatable-row-setting-label"><?php _e( 'Option Name', 'easy-digital-downloads' ); ?></span>
|
447 |
-
<?php echo EDD()->html->text( array(
|
448 |
-
'name' => 'edd_variable_prices[' . $key . '][name]',
|
449 |
-
'value' => esc_attr( $args['name'] ),
|
450 |
-
'placeholder' => __( 'Option Name', 'easy-digital-downloads' ),
|
451 |
-
'class' => 'edd_variable_prices_name large-text'
|
452 |
-
) ); ?>
|
453 |
-
</div>
|
454 |
|
455 |
-
|
456 |
-
|
457 |
-
<?php
|
458 |
$price_args = array(
|
459 |
'name' => 'edd_variable_prices[' . $key . '][amount]',
|
460 |
'value' => $args['amount'],
|
461 |
'placeholder' => edd_format_amount( 9.99 ),
|
462 |
'class' => 'edd-price-field'
|
463 |
);
|
464 |
-
|
465 |
-
|
466 |
-
<span class="edd-price-input-group">
|
467 |
-
<?php if( $currency_position == 'before' ) : ?>
|
468 |
-
<span><?php echo edd_currency_filter( '' ); ?></span>
|
469 |
-
<?php echo EDD()->html->text( $price_args ); ?>
|
470 |
-
<?php else : ?>
|
471 |
-
<?php echo EDD()->html->text( $price_args ); ?>
|
472 |
-
<?php echo edd_currency_filter( '' ); ?>
|
473 |
-
<?php endif; ?>
|
474 |
-
</span>
|
475 |
-
</div>
|
476 |
-
|
477 |
-
<div class="edd_repeatable_default edd_repeatable_default_wrapper">
|
478 |
-
<span class="edd-repeatable-row-setting-label"><?php _e( 'Default', 'easy-digital-downloads' ); ?></span>
|
479 |
-
<label class="edd-default-price">
|
480 |
-
<input type="radio" <?php checked( $default_price_id, $key, true ); ?> class="edd_repeatable_default_input" name="_edd_default_price_id" value="<?php echo $key; ?>" />
|
481 |
-
<span class="screen-reader-text"><?php printf( __( 'Set ID %s as default price', 'easy-digital-downloads' ), $key ); ?></span>
|
482 |
-
</label>
|
483 |
-
</div>
|
484 |
|
485 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
486 |
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
*/
|
491 |
-
if ( ! empty( $show_advanced ) || $custom_price_options ) {
|
492 |
-
?>
|
493 |
|
494 |
-
|
495 |
-
<?php
|
496 |
-
$elements = str_replace(
|
497 |
-
array(
|
498 |
-
'<td>',
|
499 |
-
'<td ',
|
500 |
-
'</td>',
|
501 |
-
'<th>',
|
502 |
-
'<th ',
|
503 |
-
'</th>',
|
504 |
-
'class="times"',
|
505 |
-
'class="signup_fee"',
|
506 |
-
),
|
507 |
-
array(
|
508 |
-
'<span class="edd-custom-price-option-section">',
|
509 |
-
'<span ',
|
510 |
-
'</span>',
|
511 |
-
'<label class="edd-legacy-setting-label">',
|
512 |
-
'<label ',
|
513 |
-
'</label>',
|
514 |
-
'class="edd-recurring-times times"', // keep old class for back compat
|
515 |
-
'class="edd-recurring-signup-fee signup_fee"' // keep old class for back compat
|
516 |
-
),
|
517 |
-
$show_advanced
|
518 |
-
);
|
519 |
-
?>
|
520 |
-
<div class="edd-custom-price-option-sections">
|
521 |
-
<?php
|
522 |
-
echo $elements;
|
523 |
-
do_action( 'edd_download_price_option_row', $post_id, $key, $args );
|
524 |
-
?>
|
525 |
-
</div>
|
526 |
-
</div>
|
527 |
|
528 |
-
|
529 |
-
|
|
|
|
|
530 |
}
|
531 |
add_action( 'edd_render_price_row', 'edd_render_price_row', 10, 4 );
|
532 |
|
@@ -554,7 +484,7 @@ function edd_render_product_type_field( $post_id = 0 ) {
|
|
554 |
'show_option_all' => false,
|
555 |
'show_option_none' => false
|
556 |
) ); ?>
|
557 |
-
<label for="
|
558 |
<span alt="f223" class="edd-help-tip dashicons dashicons-editor-help" title="<?php _e( '<strong>Product Type</strong>: Sell this item as a single product, or use the Bundle type to sell a collection of products.', 'easy-digital-downloads' ); ?>"></span>
|
559 |
</p>
|
560 |
<?php
|
@@ -574,144 +504,125 @@ function edd_render_products_field( $post_id ) {
|
|
574 |
$products = $download->get_bundled_downloads();
|
575 |
$variable_pricing = $download->has_variable_prices();
|
576 |
$variable_display = $variable_pricing ? '' : 'display:none;';
|
577 |
-
$variable_class = $variable_pricing ? ' has-variable-pricing' : '';
|
578 |
$prices = $download->get_prices();
|
579 |
?>
|
580 |
<div id="edd_products"<?php echo $display; ?>>
|
581 |
<div id="edd_file_fields" class="edd_meta_table_wrap">
|
582 |
-
<
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
}
|
625 |
-
}
|
626 |
-
|
627 |
-
$price_assignments = edd_get_bundle_pricing_variations( $post_id );
|
628 |
-
$price_assignments = $price_assignments[0];
|
629 |
-
|
630 |
-
$selected = isset( $price_assignments[ $index ] ) ? $price_assignments[ $index ] : null;
|
631 |
-
|
632 |
-
echo EDD()->html->select( array(
|
633 |
-
'name' => '_edd_bundled_products_conditions['. $index .']',
|
634 |
-
'class' => 'edd_repeatable_condition_field',
|
635 |
-
'options' => $options,
|
636 |
-
'show_option_none' => false,
|
637 |
-
'selected' => $selected
|
638 |
-
) );
|
639 |
-
?>
|
640 |
-
</div>
|
641 |
-
<span class="edd-bundled-product-actions">
|
642 |
-
<a class="edd-remove-row edd-delete" data-type="file"><?php printf( __( 'Remove', 'easy-digital-downloads' ), $index ); ?><span class="screen-reader-text"><?php printf( __( 'Remove bundle option %s', 'easy-digital-downloads' ), $index ); ?></span></a>
|
643 |
-
</span>
|
644 |
-
<?php do_action( 'edd_download_products_table_row', $post_id ); ?>
|
645 |
-
</div>
|
646 |
-
</div>
|
647 |
-
<?php $index++; ?>
|
648 |
-
<?php endforeach; ?>
|
649 |
-
|
650 |
-
<?php else: ?>
|
651 |
-
|
652 |
-
<div class="edd-bundle-products-header">
|
653 |
-
<span class="edd-bundle-products-title"><?php printf( __( 'Bundled %s:', 'easy-digital-downloads' ), edd_get_label_plural() ); ?></span>
|
654 |
-
</div>
|
655 |
-
<div class="edd_repeatable_product_wrapper edd_repeatable_row" data-key="1">
|
656 |
-
<div class="edd-bundled-product-row<?php echo $variable_class; ?>">
|
657 |
-
|
658 |
-
<div class="edd-bundled-product-item-reorder">
|
659 |
-
<span class="edd-product-file-reorder edd-draghandle-anchor dashicons dashicons-move" title="<?php printf( __( 'Click and drag to re-order bundled %s', 'easy-digital-downloads' ), edd_get_label_plural() ); ?>"></span>
|
660 |
-
<input type="hidden" name="edd_bundled_products[1][index]" class="edd_repeatable_index" value="1"/>
|
661 |
-
</div>
|
662 |
-
<div class="edd-bundled-product-item">
|
663 |
-
<span class="edd-repeatable-row-setting-label"><?php printf( __( 'Select %s:', 'easy-digital-downloads' ), edd_get_label_singular() ); ?></span>
|
664 |
-
<?php
|
665 |
-
echo EDD()->html->product_dropdown( array(
|
666 |
-
'name' => '_edd_bundled_products[]',
|
667 |
-
'id' => 'edd_bundled_products_1',
|
668 |
-
'multiple' => false,
|
669 |
-
'chosen' => true,
|
670 |
-
'bundles' => false,
|
671 |
-
'variations' => true,
|
672 |
-
) );
|
673 |
-
?>
|
674 |
-
</div>
|
675 |
-
<div class="edd-bundled-product-price-assignment pricing" style="<?php echo $variable_display; ?>">
|
676 |
-
<span class="edd-repeatable-row-setting-label"><?php _e( 'Price assignment:', 'easy-digital-downloads' ); ?></span>
|
677 |
-
<?php
|
678 |
-
$options = array();
|
679 |
-
|
680 |
-
if ( $prices ) {
|
681 |
-
foreach ( $prices as $price_key => $price ) {
|
682 |
-
$options[ $price_key ] = $prices[ $price_key ]['name'];
|
683 |
-
}
|
684 |
}
|
|
|
685 |
|
686 |
-
|
687 |
-
|
688 |
-
echo EDD()->html->select( array(
|
689 |
-
'name' => '_edd_bundled_products_conditions[1]',
|
690 |
-
'class' => 'edd_repeatable_condition_field',
|
691 |
-
'options' => $options,
|
692 |
-
'show_option_none' => false,
|
693 |
-
'selected' => null,
|
694 |
-
) );
|
695 |
-
?>
|
696 |
-
</div>
|
697 |
-
<span class="edd-bundled-product-actions">
|
698 |
-
<a class="edd-remove-row edd-delete" data-type="file" ><?php printf( __( 'Remove', 'easy-digital-downloads' ) ); ?><span class="screen-reader-text"><?php __( 'Remove bundle option 1', 'easy-digital-downloads' ); ?></span></a>
|
699 |
-
</span>
|
700 |
-
<?php do_action( 'edd_download_products_table_row', $post_id ); ?>
|
701 |
-
</div>
|
702 |
-
</div>
|
703 |
|
704 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
705 |
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
|
712 |
-
|
713 |
|
714 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
715 |
</div>
|
716 |
</div>
|
717 |
<?php
|
@@ -738,46 +649,59 @@ function edd_render_files_field( $post_id = 0 ) {
|
|
738 |
$variable_display = $variable_pricing ? '' : 'display:none;';
|
739 |
?>
|
740 |
<div id="edd_download_files"<?php echo $display; ?>>
|
|
|
|
|
|
|
741 |
|
742 |
<input type="hidden" id="edd_download_files" class="edd_repeatable_upload_name_field" value=""/>
|
743 |
|
744 |
<div id="edd_file_fields" class="edd_meta_table_wrap">
|
745 |
-
<
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
781 |
</div>
|
782 |
</div>
|
783 |
<?php
|
@@ -812,75 +736,67 @@ function edd_render_file_row( $key = '', $args = array(), $post_id, $index ) {
|
|
812 |
|
813 |
$variable_pricing = edd_has_variable_prices( $post_id );
|
814 |
$variable_display = $variable_pricing ? '' : ' style="display:none;"';
|
815 |
-
$variable_class = $variable_pricing ? ' has-variable-pricing' : '';
|
816 |
?>
|
817 |
-
<div class="edd-repeatable-row-header edd-draghandle-anchor">
|
818 |
-
<span class="edd-repeatable-row-title" title="<?php _e( 'Click and drag to re-order files', 'easy-digital-downloads' ); ?>">
|
819 |
-
<?php printf( __( '%1$s file ID: %2$s', 'easy-digital-downloads' ), edd_get_label_singular(), '<span class="edd_file_id">' . $key . '</span>' ); ?>
|
820 |
-
<input type="hidden" name="edd_download_files[<?php echo $key; ?>][index]" class="edd_repeatable_index" value="<?php echo $index; ?>"/>
|
821 |
-
</span>
|
822 |
-
<span class="edd-repeatable-row-actions">
|
823 |
-
<a class="edd-remove-row edd-delete" data-type="file"><?php printf( __( 'Remove', 'easy-digital-downloads' ), $key ); ?><span class="screen-reader-text"><?php printf( __( 'Remove file %s', 'easy-digital-downloads' ), $key ); ?></span>
|
824 |
-
</a>
|
825 |
-
</span>
|
826 |
-
</div>
|
827 |
|
828 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
829 |
|
830 |
-
|
831 |
-
|
832 |
-
<input type="hidden" name="edd_download_files[<?php echo absint( $key ); ?>][attachment_id]" class="edd_repeatable_attachment_id_field" value="<?php echo esc_attr( absint( $args['attachment_id'] ) ); ?>"/>
|
833 |
-
<input type="hidden" name="edd_download_files[<?php echo absint( $key ); ?>][thumbnail_size]" class="edd_repeatable_thumbnail_size_field" value="<?php echo esc_attr( $args['thumbnail_size'] ); ?>"/>
|
834 |
<?php echo EDD()->html->text( array(
|
835 |
-
'name' => 'edd_download_files[' . $key . '][
|
836 |
-
'value' => $args['
|
837 |
-
'placeholder' => __( '
|
838 |
-
'class' => '
|
839 |
) ); ?>
|
840 |
-
</div>
|
841 |
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
<?php echo EDD()->html->text( array(
|
846 |
-
'name' => 'edd_download_files[' . $key . '][file]',
|
847 |
-
'value' => $args['file'],
|
848 |
-
'placeholder' => __( 'Upload or enter the file URL', 'easy-digital-downloads' ),
|
849 |
-
'class' => 'edd_repeatable_upload_field edd_upload_field large-text'
|
850 |
-
) ); ?>
|
851 |
-
|
852 |
-
<span class="edd_upload_file">
|
853 |
-
<a href="#" data-uploader-title="<?php _e( 'Insert File', 'easy-digital-downloads' ); ?>" data-uploader-button-text="<?php _e( 'Insert', 'easy-digital-downloads' ); ?>" class="edd_upload_file_button" onclick="return false;"><?php _e( 'Upload a File', 'easy-digital-downloads' ); ?></a>
|
854 |
-
</span>
|
855 |
-
</div>
|
856 |
</div>
|
|
|
857 |
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
<?php
|
863 |
-
$options = array();
|
864 |
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
}
|
869 |
}
|
|
|
870 |
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
|
881 |
-
|
|
|
|
|
882 |
|
883 |
-
|
|
|
|
|
|
|
|
|
884 |
<?php
|
885 |
}
|
886 |
add_action( 'edd_render_file_row', 'edd_render_file_row', 10, 4 );
|
@@ -953,20 +869,6 @@ add_action( 'edd_meta_box_settings_fields', 'edd_render_download_limit_row', 20
|
|
953 |
* @return void
|
954 |
*/
|
955 |
function edd_render_dowwn_tax_options( $post_id = 0 ) {
|
956 |
-
edd_render_down_tax_options( $post_id );
|
957 |
-
}
|
958 |
-
|
959 |
-
/**
|
960 |
-
* Product tax settings
|
961 |
-
*
|
962 |
-
* Outputs the option to mark whether a product is exclusive of tax
|
963 |
-
*
|
964 |
-
* @since 1.9
|
965 |
-
* @since 2.8.12 Fixed miss-spelling in function name. See https://github.com/easydigitaldownloads/easy-digital-downloads/issues/5101
|
966 |
-
* @param int $post_id Download (Post) ID
|
967 |
-
* @return void
|
968 |
-
*/
|
969 |
-
function edd_render_down_tax_options( $post_id = 0 ) {
|
970 |
if( ! current_user_can( 'manage_shop_settings' ) || ! edd_use_taxes() ) {
|
971 |
return;
|
972 |
}
|
@@ -983,7 +885,7 @@ function edd_render_down_tax_options( $post_id = 0 ) {
|
|
983 |
</label>
|
984 |
<?php
|
985 |
}
|
986 |
-
add_action( 'edd_meta_box_settings_fields', '
|
987 |
|
988 |
/**
|
989 |
* Product quantity settings
|
@@ -1202,115 +1104,3 @@ function edd_render_stats_meta_box() {
|
|
1202 |
<?php
|
1203 |
do_action('edd_stats_meta_box');
|
1204 |
}
|
1205 |
-
|
1206 |
-
/**
|
1207 |
-
* Outputs a metabox for the Product Reviews extension to show or activate it.
|
1208 |
-
*
|
1209 |
-
* @since 2.8
|
1210 |
-
* @return void
|
1211 |
-
*/
|
1212 |
-
function edd_render_review_status_metabox() {
|
1213 |
-
ob_start();
|
1214 |
-
|
1215 |
-
$possible_locations = array( 'edd-reviews/edd-reviews.php', 'EDD-Reviews/edd-reviews.php' );
|
1216 |
-
$plugin_found = false;
|
1217 |
-
foreach ( $possible_locations as $location ) {
|
1218 |
-
if ( 0 !== validate_plugin( $location ) ) {
|
1219 |
-
continue;
|
1220 |
-
}
|
1221 |
-
|
1222 |
-
$plugin_found = $location;
|
1223 |
-
break;
|
1224 |
-
}
|
1225 |
-
if ( false !== $plugin_found ) {
|
1226 |
-
|
1227 |
-
$base_url = wp_nonce_url( admin_url( 'plugins.php' ), 'activate-plugin_' . $plugin_found );
|
1228 |
-
$args = array(
|
1229 |
-
'action' => 'activate',
|
1230 |
-
'plugin' => sanitize_text_field( $plugin_found ),
|
1231 |
-
'plugin_status' => 'all',
|
1232 |
-
);
|
1233 |
-
$activate_url = add_query_arg( $args, $base_url );
|
1234 |
-
?><p style="text-align: center;"><a href="<?php echo esc_url( $activate_url ); ?>" class="button-secondary"><?php _e( 'Activate Reviews', 'easy-digital-downloads' ); ?></a></p><?php
|
1235 |
-
|
1236 |
-
} else {
|
1237 |
-
|
1238 |
-
$base_url = 'https://easydigitaldownloads.com/downloads/product-reviews';
|
1239 |
-
$args = array(
|
1240 |
-
'utm_source' => 'edit-download',
|
1241 |
-
'utm_medium' => 'enable-reviews',
|
1242 |
-
'utm_campaign' => 'admin',
|
1243 |
-
);
|
1244 |
-
$url = add_query_arg( $args, $base_url );
|
1245 |
-
?>
|
1246 |
-
<p>
|
1247 |
-
<?php printf( __( 'Would you like to enable reviews for this product? Check out our <a target="_blank" href="%s">Product Reviews</a> extension.', 'easy-digital-downloads' ), $url ); ?>
|
1248 |
-
</p>
|
1249 |
-
<?php
|
1250 |
-
|
1251 |
-
}
|
1252 |
-
|
1253 |
-
|
1254 |
-
$rendered = ob_get_contents();
|
1255 |
-
ob_end_clean();
|
1256 |
-
|
1257 |
-
echo $rendered;
|
1258 |
-
}
|
1259 |
-
|
1260 |
-
/**
|
1261 |
-
* Internal use only: This is to help with https://github.com/easydigitaldownloads/easy-digital-downloads/issues/2704
|
1262 |
-
*
|
1263 |
-
* This function takes any hooked functions for edd_download_price_table_head and re-registers them into the edd_download_price_table_row
|
1264 |
-
* action. It will also de-register any original table_row data, so that labels appear before their setting, then re-registers the table_row.
|
1265 |
-
*
|
1266 |
-
* @since 2.8
|
1267 |
-
*
|
1268 |
-
* @param $arg1
|
1269 |
-
* @param $arg2
|
1270 |
-
* @param $arg3
|
1271 |
-
*
|
1272 |
-
* @return void
|
1273 |
-
*/
|
1274 |
-
function edd_hijack_edd_download_price_table_head( $arg1, $arg2, $arg3 ) {
|
1275 |
-
global $wp_filter;
|
1276 |
-
|
1277 |
-
$found_fields = isset( $wp_filter['edd_download_price_table_row'] ) ? $wp_filter['edd_download_price_table_row'] : false;
|
1278 |
-
$found_headers = isset( $wp_filter['edd_download_price_table_head'] ) ? $wp_filter['edd_download_price_table_head'] : false;
|
1279 |
-
|
1280 |
-
$re_register = array();
|
1281 |
-
|
1282 |
-
if ( ! $found_fields && ! $found_headers ) {
|
1283 |
-
return;
|
1284 |
-
}
|
1285 |
-
|
1286 |
-
foreach ( $found_fields->callbacks as $priority => $callbacks ) {
|
1287 |
-
if ( -1 === $priority ) {
|
1288 |
-
continue; // Skip our -1 priority so we don't break the interwebs
|
1289 |
-
}
|
1290 |
-
|
1291 |
-
if ( is_object( $found_headers ) && property_exists( $found_headers, 'callbacks' ) && array_key_exists( $priority, $found_headers->callbacks ) ) {
|
1292 |
-
|
1293 |
-
// De-register any row data.
|
1294 |
-
foreach ( $callbacks as $callback ) {
|
1295 |
-
$re_register[ $priority ][] = $callback;
|
1296 |
-
remove_action( 'edd_download_price_table_row', $callback['function'], $priority, $callback['accepted_args'] );
|
1297 |
-
}
|
1298 |
-
|
1299 |
-
// Register any header data.
|
1300 |
-
foreach( $found_headers->callbacks[ $priority ] as $callback ) {
|
1301 |
-
if ( is_callable( $callback['function'] ) ) {
|
1302 |
-
add_action( 'edd_download_price_table_row', $callback['function'], $priority, 1 );
|
1303 |
-
}
|
1304 |
-
}
|
1305 |
-
}
|
1306 |
-
|
1307 |
-
}
|
1308 |
-
|
1309 |
-
// Now that we've re-registered our headers first...re-register the inputs
|
1310 |
-
foreach ( $re_register as $priority => $callbacks ) {
|
1311 |
-
foreach ( $callbacks as $callback ) {
|
1312 |
-
add_action( 'edd_download_price_table_row', $callback['function'], $priority, $callback['accepted_args'] );
|
1313 |
-
}
|
1314 |
-
}
|
1315 |
-
}
|
1316 |
-
add_action( 'edd_download_price_table_row', 'edd_hijack_edd_download_price_table_head', -1, 3 );
|
42 |
/** Product Stats */
|
43 |
add_meta_box( 'edd_product_stats', sprintf( __( '%1$s Stats', 'easy-digital-downloads' ), edd_get_label_singular(), edd_get_label_plural() ), 'edd_render_stats_meta_box', $post_type, 'side', 'high' );
|
44 |
}
|
|
|
|
|
|
|
|
|
|
|
45 |
}
|
46 |
}
|
47 |
add_action( 'add_meta_boxes', 'edd_add_download_meta_box' );
|
297 |
$price_display = $variable_pricing ? ' style="display:none;"' : '';
|
298 |
$variable_display = $variable_pricing ? '' : ' style="display:none;"';
|
299 |
$currency_position = edd_get_option( 'currency_position', 'before' );
|
300 |
+
?>
|
301 |
<p>
|
302 |
<strong><?php echo apply_filters( 'edd_price_options_heading', __( 'Pricing Options:', 'easy-digital-downloads' ) ); ?></strong>
|
303 |
</p>
|
338 |
<label for="_edd_price_options_mode"><?php echo apply_filters( 'edd_multi_option_purchase_text', __( 'Enable multi-option purchase mode. Allows multiple price options to be added to your cart at once', 'easy-digital-downloads' ) ); ?></label>
|
339 |
</p>
|
340 |
<div id="edd_price_fields" class="edd_meta_table_wrap">
|
341 |
+
<table class="widefat edd_repeatable_table" width="100%" cellpadding="0" cellspacing="0">
|
342 |
+
<thead>
|
343 |
+
<tr>
|
344 |
+
<th style="width: 20px"></th>
|
345 |
+
<th><?php _e( 'Option Name', 'easy-digital-downloads' ); ?></th>
|
346 |
+
<th style="width: 100px"><?php _e( 'Price', 'easy-digital-downloads' ); ?></th>
|
347 |
+
<th class="edd_repeatable_default"><?php _e( 'Default', 'easy-digital-downloads' ); ?></th>
|
348 |
+
<th style="width: 15px"><?php _e( 'ID', 'easy-digital-downloads' ); ?></th>
|
349 |
+
<?php do_action( 'edd_download_price_table_head', $post_id ); ?>
|
350 |
+
<th style="width: 2%"></th>
|
351 |
+
</tr>
|
352 |
+
</thead>
|
353 |
+
<tbody>
|
354 |
<?php
|
355 |
if ( ! empty( $prices ) ) :
|
356 |
|
357 |
foreach ( $prices as $key => $value ) :
|
358 |
+
$name = isset( $value['name'] ) ? $value['name'] : '';
|
|
|
359 |
$amount = isset( $value['amount'] ) ? $value['amount'] : '';
|
360 |
+
$index = isset( $value['index'] ) ? $value['index'] : $key;
|
361 |
+
$args = apply_filters( 'edd_price_row_args', compact( 'name', 'amount' ), $value );
|
362 |
?>
|
363 |
+
<tr class="edd_variable_prices_wrapper edd_repeatable_row" data-key="<?php echo esc_attr( $key ); ?>">
|
364 |
<?php do_action( 'edd_render_price_row', $key, $args, $post_id, $index ); ?>
|
365 |
+
</tr>
|
366 |
<?php
|
367 |
endforeach;
|
368 |
else :
|
369 |
?>
|
370 |
+
<tr class="edd_variable_prices_wrapper edd_repeatable_row" data-key="1">
|
371 |
<?php do_action( 'edd_render_price_row', 1, array(), $post_id, 1 ); ?>
|
372 |
+
</tr>
|
373 |
<?php endif; ?>
|
374 |
|
375 |
+
<tr>
|
376 |
+
<td class="submit" colspan="4" style="float: none; clear:both; background:#fff;">
|
377 |
+
<button class="button-secondary edd_add_repeatable" style="margin: 6px 0;"><?php _e( 'Add New Price', 'easy-digital-downloads' ); ?></button>
|
378 |
+
</td>
|
379 |
+
</tr>
|
380 |
+
</tbody>
|
381 |
+
</table>
|
382 |
</div>
|
383 |
</div><!--end #edd_variable_price_fields-->
|
384 |
<?php
|
398 |
* @param $post_id
|
399 |
*/
|
400 |
function edd_render_price_row( $key, $args = array(), $post_id, $index ) {
|
|
|
|
|
401 |
$defaults = array(
|
402 |
'name' => null,
|
403 |
'amount' => null
|
405 |
|
406 |
$args = wp_parse_args( $args, $defaults );
|
407 |
|
408 |
+
$default_price_id = edd_get_default_variable_price( $post_id );
|
409 |
+
$currency_position = edd_get_option( 'currency_position', 'before' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
410 |
|
|
|
|
|
|
|
411 |
?>
|
412 |
+
<td>
|
413 |
+
<span class="edd_draghandle"></span>
|
414 |
+
<input type="hidden" name="edd_variable_prices[<?php echo $key; ?>][index]" class="edd_repeatable_index" value="<?php echo $index; ?>"/>
|
415 |
+
</td>
|
416 |
+
<td>
|
417 |
+
<?php echo EDD()->html->text( array(
|
418 |
+
'name' => 'edd_variable_prices[' . $key . '][name]',
|
419 |
+
'value' => esc_attr( $args['name'] ),
|
420 |
+
'placeholder' => __( 'Option Name', 'easy-digital-downloads' ),
|
421 |
+
'class' => 'edd_variable_prices_name large-text'
|
422 |
+
) ); ?>
|
423 |
+
</td>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
424 |
|
425 |
+
<td>
|
426 |
+
<?php
|
|
|
427 |
$price_args = array(
|
428 |
'name' => 'edd_variable_prices[' . $key . '][amount]',
|
429 |
'value' => $args['amount'],
|
430 |
'placeholder' => edd_format_amount( 9.99 ),
|
431 |
'class' => 'edd-price-field'
|
432 |
);
|
433 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
434 |
|
435 |
+
<?php if( $currency_position == 'before' ) : ?>
|
436 |
+
<span><?php echo edd_currency_filter( '' ); ?></span>
|
437 |
+
<?php echo EDD()->html->text( $price_args ); ?>
|
438 |
+
<?php else : ?>
|
439 |
+
<?php echo EDD()->html->text( $price_args ); ?>
|
440 |
+
<?php echo edd_currency_filter( '' ); ?>
|
441 |
+
<?php endif; ?>
|
442 |
+
</td>
|
443 |
+
<td class="edd_repeatable_default_wrapper">
|
444 |
+
<label class="edd-default-price">
|
445 |
+
<input type="radio" <?php checked( $default_price_id, $key, true ); ?> class="edd_repeatable_default_input" name="_edd_default_price_id" value="<?php echo $key; ?>" />
|
446 |
+
<span class="screen-reader-text"><?php printf( __( 'Set ID %s as default price', 'easy-digital-downloads' ), $key ); ?></span>
|
447 |
+
</label>
|
448 |
+
</td>
|
449 |
|
450 |
+
<td>
|
451 |
+
<span class="edd_price_id"><?php echo $key; ?></span>
|
452 |
+
</td>
|
|
|
|
|
|
|
453 |
|
454 |
+
<?php do_action( 'edd_download_price_table_row', $post_id, $key, $args ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
455 |
|
456 |
+
<td>
|
457 |
+
<button class="edd_remove_repeatable" data-type="price" style="background: url(<?php echo admin_url('/images/xit.gif'); ?>) no-repeat;"><span class="screen-reader-text"><?php printf( __( 'Remove price option %s', 'easy-digital-downloads' ), $key ); ?></span><span aria-hidden="true">×</span></button>
|
458 |
+
</td>
|
459 |
+
<?php
|
460 |
}
|
461 |
add_action( 'edd_render_price_row', 'edd_render_price_row', 10, 4 );
|
462 |
|
484 |
'show_option_all' => false,
|
485 |
'show_option_none' => false
|
486 |
) ); ?>
|
487 |
+
<label for="edd_product_type"><?php _e( 'Select a product type', 'easy-digital-downloads' ); ?></label>
|
488 |
<span alt="f223" class="edd-help-tip dashicons dashicons-editor-help" title="<?php _e( '<strong>Product Type</strong>: Sell this item as a single product, or use the Bundle type to sell a collection of products.', 'easy-digital-downloads' ); ?>"></span>
|
489 |
</p>
|
490 |
<?php
|
504 |
$products = $download->get_bundled_downloads();
|
505 |
$variable_pricing = $download->has_variable_prices();
|
506 |
$variable_display = $variable_pricing ? '' : 'display:none;';
|
|
|
507 |
$prices = $download->get_prices();
|
508 |
?>
|
509 |
<div id="edd_products"<?php echo $display; ?>>
|
510 |
<div id="edd_file_fields" class="edd_meta_table_wrap">
|
511 |
+
<table class="widefat edd_repeatable_table" width="100%" cellpadding="0" cellspacing="0">
|
512 |
+
<thead>
|
513 |
+
<tr>
|
514 |
+
<th style="width: 20px"></th>
|
515 |
+
<th><?php printf( __( 'Bundled %s:', 'easy-digital-downloads' ), edd_get_label_plural() ); ?></th>
|
516 |
+
<th></th>
|
517 |
+
<th class="pricing" style="width: 20%; <?php echo $variable_display; ?>"><?php _e( 'Price Assignment', 'easy-digital-downloads' ); ?></th>
|
518 |
+
<?php do_action( 'edd_download_products_table_head', $post_id ); ?>
|
519 |
+
</tr>
|
520 |
+
</thead>
|
521 |
+
<tbody>
|
522 |
+
<?php if ( $products ) : ?>
|
523 |
+
<?php $index = 1; ?>
|
524 |
+
<?php foreach ( $products as $key => $product ) : ?>
|
525 |
+
<tr class="edd_repeatable_product_wrapper edd_repeatable_row" data-key="<?php echo esc_attr( $index ); ?>">
|
526 |
+
<td>
|
527 |
+
<span class="edd_draghandle"></span>
|
528 |
+
<input type="hidden" name="edd_bundled_products[<?php echo $index; ?>][index]" class="edd_repeatable_index" value="<?php echo $index; ?>"/>
|
529 |
+
</td>
|
530 |
+
<td>
|
531 |
+
<?php
|
532 |
+
echo EDD()->html->product_dropdown( array(
|
533 |
+
'name' => '_edd_bundled_products[]',
|
534 |
+
'id' => 'edd_bundled_products_' . $index,
|
535 |
+
'selected' => $product,
|
536 |
+
'multiple' => false,
|
537 |
+
'chosen' => true,
|
538 |
+
'bundles' => false,
|
539 |
+
'variations' => true,
|
540 |
+
) );
|
541 |
+
?>
|
542 |
+
</td>
|
543 |
+
<td>
|
544 |
+
<button class="edd_remove_repeatable" data-type="file" style="background: url(<?php echo admin_url('/images/xit.gif'); ?>) no-repeat;"><span class="screen-reader-text"><?php printf( __( 'Remove bundle option %s', 'easy-digital-downloads' ), $index ); ?></span><span aria-hidden="true">×</span></button>
|
545 |
+
</td>
|
546 |
+
<td class="pricing" style="<?php echo $variable_display; ?>">
|
547 |
+
<?php
|
548 |
+
$options = array();
|
549 |
+
|
550 |
+
if ( $prices ) {
|
551 |
+
foreach ( $prices as $price_key => $price ) {
|
552 |
+
$options[ $price_key ] = $prices[ $price_key ]['name'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
553 |
}
|
554 |
+
}
|
555 |
|
556 |
+
$price_assignments = edd_get_bundle_pricing_variations( $post_id );
|
557 |
+
$price_assignments = $price_assignments[0];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
558 |
|
559 |
+
$selected = isset( $price_assignments[ $index ] ) ? $price_assignments[ $index ] : null;
|
560 |
+
|
561 |
+
echo EDD()->html->select( array(
|
562 |
+
'name' => '_edd_bundled_products_conditions['. $index .']',
|
563 |
+
'class' => 'edd_repeatable_condition_field',
|
564 |
+
'options' => $options,
|
565 |
+
'show_option_none' => false,
|
566 |
+
'selected' => $selected
|
567 |
+
) );
|
568 |
+
?>
|
569 |
+
</td>
|
570 |
+
<?php do_action( 'edd_download_products_table_row', $post_id ); ?>
|
571 |
+
</tr>
|
572 |
+
<?php $index++; ?>
|
573 |
+
<?php endforeach; ?>
|
574 |
+
<?php else: ?>
|
575 |
+
<tr class="edd_repeatable_product_wrapper edd_repeatable_row" data-key="1">
|
576 |
+
<td>
|
577 |
+
<span class="edd_draghandle"></span>
|
578 |
+
<input type="hidden" name="edd_bundled_products[1][index]" class="edd_repeatable_index" value="1"/>
|
579 |
+
</td>
|
580 |
+
<td>
|
581 |
+
<?php
|
582 |
+
echo EDD()->html->product_dropdown( array(
|
583 |
+
'name' => '_edd_bundled_products[]',
|
584 |
+
'id' => 'edd_bundled_products_1',
|
585 |
+
'multiple' => false,
|
586 |
+
'chosen' => true,
|
587 |
+
'bundles' => false,
|
588 |
+
'variations' => true,
|
589 |
+
) );
|
590 |
+
?>
|
591 |
+
</td>
|
592 |
+
<td>
|
593 |
+
<button class="edd_remove_repeatable" data-type="file" style="background: url(<?php echo admin_url('/images/xit.gif'); ?>) no-repeat;"><span class="screen-reader-text"><?php echo __( 'Remove bundle option', 'easy-digital-downloads' ); ?></span><span aria-hidden="true">×</span></button>
|
594 |
+
</td>
|
595 |
+
<td class="pricing" style="<?php echo $variable_display; ?>">
|
596 |
+
<?php
|
597 |
+
$options = array();
|
598 |
|
599 |
+
if ( $prices ) {
|
600 |
+
foreach ( $prices as $price_key => $price ) {
|
601 |
+
$options[ $price_key ] = $prices[ $price_key ]['name'];
|
602 |
+
}
|
603 |
+
}
|
604 |
|
605 |
+
$price_assignments = edd_get_bundle_pricing_variations( $post_id );
|
606 |
|
607 |
+
echo EDD()->html->select( array(
|
608 |
+
'name' => '_edd_bundled_products_conditions[1]',
|
609 |
+
'class' => 'edd_repeatable_condition_field',
|
610 |
+
'options' => $options,
|
611 |
+
'show_option_none' => false,
|
612 |
+
'selected' => null,
|
613 |
+
) );
|
614 |
+
?>
|
615 |
+
</td>
|
616 |
+
<?php do_action( 'edd_download_products_table_row', $post_id ); ?>
|
617 |
+
</tr>
|
618 |
+
<?php endif; ?>
|
619 |
+
<tr>
|
620 |
+
<td class="submit" colspan="3" style="float: none; clear:both; background: #fff;">
|
621 |
+
<button class="button-secondary edd_add_repeatable" style="margin: 6px 0 10px;"><?php _e( 'Add New File', 'easy-digital-downloads' ); ?></button>
|
622 |
+
</td>
|
623 |
+
</tr>
|
624 |
+
</tbody>
|
625 |
+
</table>
|
626 |
</div>
|
627 |
</div>
|
628 |
<?php
|
649 |
$variable_display = $variable_pricing ? '' : 'display:none;';
|
650 |
?>
|
651 |
<div id="edd_download_files"<?php echo $display; ?>>
|
652 |
+
<p>
|
653 |
+
<strong><?php _e( 'File Downloads:', 'easy-digital-downloads' ); ?></strong>
|
654 |
+
</p>
|
655 |
|
656 |
<input type="hidden" id="edd_download_files" class="edd_repeatable_upload_name_field" value=""/>
|
657 |
|
658 |
<div id="edd_file_fields" class="edd_meta_table_wrap">
|
659 |
+
<table class="widefat edd_repeatable_table" width="100%" cellpadding="0" cellspacing="0">
|
660 |
+
<thead>
|
661 |
+
<tr>
|
662 |
+
<th style="width: 20px"></th>
|
663 |
+
<th style="width: 20%"><?php _e( 'File Name', 'easy-digital-downloads' ); ?></th>
|
664 |
+
<th><?php _e( 'File URL', 'easy-digital-downloads' ); ?></th>
|
665 |
+
<th class="pricing" style="width: 20%; <?php echo $variable_display; ?>">
|
666 |
+
<?php _e( 'Price Assignment', 'easy-digital-downloads' ); ?>
|
667 |
+
<span alt="f223" class="edd-help-tip dashicons dashicons-editor-help" title="<?php _e( '<strong>Price Assignment</strong>: With variable pricing enabled, you can choose to allow certain price variations access to specific files, or allow all price variations to access a file.', 'easy-digital-downloads' ); ?>"></span>
|
668 |
+
</th>
|
669 |
+
<th style="width: 15px"><?php _e( 'ID', 'easy-digital-downloads' ); ?></th>
|
670 |
+
<?php do_action( 'edd_download_file_table_head', $post_id ); ?>
|
671 |
+
<th style="width: 2%"></th>
|
672 |
+
</tr>
|
673 |
+
</thead>
|
674 |
+
<tbody>
|
675 |
+
<?php
|
676 |
+
if ( ! empty( $files ) && is_array( $files ) ) :
|
677 |
+
foreach ( $files as $key => $value ) :
|
678 |
+
$index = isset( $value['index'] ) ? $value['index'] : $key;
|
679 |
+
$name = isset( $value['name'] ) ? $value['name'] : '';
|
680 |
+
$file = isset( $value['file'] ) ? $value['file'] : '';
|
681 |
+
$condition = isset( $value['condition'] ) ? $value['condition'] : false;
|
682 |
+
$attachment_id = isset( $value['attachment_id'] ) ? absint( $value['attachment_id'] ) : false;
|
683 |
+
$thumbnail_size = isset( $value['thumbnail_size'] ) ? $value['thumbnail_size'] : '';
|
684 |
+
|
685 |
+
$args = apply_filters( 'edd_file_row_args', compact( 'name', 'file', 'condition', 'attachment_id', 'thumbnail_size' ), $value );
|
686 |
+
?>
|
687 |
+
<tr class="edd_repeatable_upload_wrapper edd_repeatable_row" data-key="<?php echo esc_attr( $key ); ?>">
|
688 |
+
<?php do_action( 'edd_render_file_row', $key, $args, $post_id, $index ); ?>
|
689 |
+
</tr>
|
690 |
+
<?php
|
691 |
+
endforeach;
|
692 |
+
else :
|
693 |
+
?>
|
694 |
+
<tr class="edd_repeatable_upload_wrapper edd_repeatable_row">
|
695 |
+
<?php do_action( 'edd_render_file_row', 1, array(), $post_id, 0 ); ?>
|
696 |
+
</tr>
|
697 |
+
<?php endif; ?>
|
698 |
+
<tr>
|
699 |
+
<td class="submit" colspan="4" style="float: none; clear:both; background: #fff;">
|
700 |
+
<button class="button-secondary edd_add_repeatable" style="margin: 6px 0 10px;"><?php _e( 'Add New File', 'easy-digital-downloads' ); ?></button>
|
701 |
+
</td>
|
702 |
+
</tr>
|
703 |
+
</tbody>
|
704 |
+
</table>
|
705 |
</div>
|
706 |
</div>
|
707 |
<?php
|
736 |
|
737 |
$variable_pricing = edd_has_variable_prices( $post_id );
|
738 |
$variable_display = $variable_pricing ? '' : ' style="display:none;"';
|
|
|
739 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
740 |
|
741 |
+
<td>
|
742 |
+
<span class="edd_draghandle"></span>
|
743 |
+
<input type="hidden" name="edd_download_files[<?php echo $key; ?>][index]" class="edd_repeatable_index" value="<?php echo $index; ?>"/>
|
744 |
+
</td>
|
745 |
+
<td>
|
746 |
+
<input type="hidden" name="edd_download_files[<?php echo absint( $key ); ?>][attachment_id]" class="edd_repeatable_attachment_id_field" value="<?php echo esc_attr( absint( $args['attachment_id'] ) ); ?>"/>
|
747 |
+
<input type="hidden" name="edd_download_files[<?php echo absint( $key ); ?>][thumbnail_size]" class="edd_repeatable_thumbnail_size_field" value="<?php echo esc_attr( $args['thumbnail_size'] ); ?>"/>
|
748 |
+
<?php echo EDD()->html->text( array(
|
749 |
+
'name' => 'edd_download_files[' . $key . '][name]',
|
750 |
+
'value' => $args['name'],
|
751 |
+
'placeholder' => __( 'File Name', 'easy-digital-downloads' ),
|
752 |
+
'class' => 'edd_repeatable_name_field large-text'
|
753 |
+
) ); ?>
|
754 |
+
</td>
|
755 |
|
756 |
+
<td>
|
757 |
+
<div class="edd_repeatable_upload_field_container">
|
|
|
|
|
758 |
<?php echo EDD()->html->text( array(
|
759 |
+
'name' => 'edd_download_files[' . $key . '][file]',
|
760 |
+
'value' => $args['file'],
|
761 |
+
'placeholder' => __( 'Upload or enter the file URL', 'easy-digital-downloads' ),
|
762 |
+
'class' => 'edd_repeatable_upload_field edd_upload_field large-text'
|
763 |
) ); ?>
|
|
|
764 |
|
765 |
+
<span class="edd_upload_file">
|
766 |
+
<a href="#" data-uploader-title="<?php _e( 'Insert File', 'easy-digital-downloads' ); ?>" data-uploader-button-text="<?php _e( 'Insert', 'easy-digital-downloads' ); ?>" class="edd_upload_file_button" onclick="return false;"><?php _e( 'Upload a File', 'easy-digital-downloads' ); ?></a>
|
767 |
+
</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
768 |
</div>
|
769 |
+
</td>
|
770 |
|
771 |
+
<td class="pricing"<?php echo $variable_display; ?>>
|
772 |
+
<?php
|
773 |
+
$options = array();
|
|
|
|
|
|
|
774 |
|
775 |
+
if ( $prices ) {
|
776 |
+
foreach ( $prices as $price_key => $price ) {
|
777 |
+
$options[ $price_key ] = $prices[ $price_key ]['name'];
|
|
|
778 |
}
|
779 |
+
}
|
780 |
|
781 |
+
echo EDD()->html->select( array(
|
782 |
+
'name' => 'edd_download_files[' . $key . '][condition]',
|
783 |
+
'class' => 'edd_repeatable_condition_field',
|
784 |
+
'options' => $options,
|
785 |
+
'selected' => $args['condition'],
|
786 |
+
'show_option_none' => false
|
787 |
+
) );
|
788 |
+
?>
|
789 |
+
</td>
|
790 |
|
791 |
+
<td>
|
792 |
+
<span class="edd_file_id"><?php echo $key; ?></span>
|
793 |
+
</td>
|
794 |
|
795 |
+
<?php do_action( 'edd_download_file_table_row', $post_id, $key, $args ); ?>
|
796 |
+
|
797 |
+
<td>
|
798 |
+
<button class="edd_remove_repeatable" data-type="file" style="background: url(<?php echo admin_url('/images/xit.gif'); ?>) no-repeat;"><span class="screen-reader-text"><?php printf( __( 'Remove file option %s', 'easy-digital-downloads' ), $key ); ?></span><span aria-hidden="true">×</span></button>
|
799 |
+
</td>
|
800 |
<?php
|
801 |
}
|
802 |
add_action( 'edd_render_file_row', 'edd_render_file_row', 10, 4 );
|
869 |
* @return void
|
870 |
*/
|
871 |
function edd_render_dowwn_tax_options( $post_id = 0 ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
872 |
if( ! current_user_can( 'manage_shop_settings' ) || ! edd_use_taxes() ) {
|
873 |
return;
|
874 |
}
|
885 |
</label>
|
886 |
<?php
|
887 |
}
|
888 |
+
add_action( 'edd_meta_box_settings_fields', 'edd_render_dowwn_tax_options', 30 );
|
889 |
|
890 |
/**
|
891 |
* Product quantity settings
|
1104 |
<?php
|
1105 |
do_action('edd_stats_meta_box');
|
1106 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/admin/import/class-batch-import-downloads.php
CHANGED
@@ -257,7 +257,7 @@ class EDD_Batch_Downloads_Import extends EDD_Batch_Import {
|
|
257 |
public function get_percentage_complete() {
|
258 |
|
259 |
if( $this->total > 0 ) {
|
260 |
-
$percentage = ( $this->step
|
261 |
}
|
262 |
|
263 |
if( $percentage > 100 ) {
|
257 |
public function get_percentage_complete() {
|
258 |
|
259 |
if( $this->total > 0 ) {
|
260 |
+
$percentage = ( $this->step / $this->total ) * 100;
|
261 |
}
|
262 |
|
263 |
if( $percentage > 100 ) {
|
includes/admin/import/class-batch-import-payments.php
CHANGED
@@ -85,11 +85,6 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
|
|
85 |
|
86 |
if( $offset > $this->total ) {
|
87 |
$this->done = true;
|
88 |
-
|
89 |
-
// Clean up the temporary records in the payment import process
|
90 |
-
global $wpdb;
|
91 |
-
$sql = "DELETE FROM {$wpdb->prefix}edd_customermeta WHERE meta_key = '_canonical_import_id'";
|
92 |
-
$wpdb->query( $sql );
|
93 |
}
|
94 |
|
95 |
if( ! $this->done && $this->csv->data ) {
|
@@ -302,7 +297,6 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
|
|
302 |
$download_name = $download['download'];
|
303 |
$price = $download['price'];
|
304 |
$tax = $download['tax'];
|
305 |
-
$price_id = $download['price_id'];
|
306 |
} else {
|
307 |
$download_name = $download;
|
308 |
}
|
@@ -315,15 +309,11 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
|
|
315 |
|
316 |
$item_price = ! isset( $price ) ? edd_get_download_price( $download_id ) : $price;
|
317 |
$item_tax = ! isset( $tax ) ? ( $download_count > 1 ? 0.00 : $payment->tax ) : $tax;
|
318 |
-
$price_id = ! isset( $price_id ) ? false : $price_id;
|
319 |
|
320 |
-
$
|
321 |
'item_price' => $item_price,
|
322 |
-
'tax' => $item_tax
|
323 |
-
|
324 |
-
);
|
325 |
-
|
326 |
-
$payment->add_download( $download_id, $args );
|
327 |
|
328 |
}
|
329 |
|
@@ -541,16 +531,14 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
|
|
541 |
foreach( $downloads as $key => $download ) {
|
542 |
|
543 |
$d = (array) explode( '|', $download );
|
544 |
-
|
545 |
$price = trim( substr( $d[1], 0, strpos( $d[1], '{' ) ) );
|
546 |
-
$tax = isset( $matches[1]
|
547 |
-
$price_id = isset( $matches[1][1] ) ? trim( $matches[1][1] ) : false;
|
548 |
|
549 |
$d_array[] = array(
|
550 |
'download' => trim( $d[0] ),
|
551 |
'price' => $price - $tax,
|
552 |
-
'tax' => $tax
|
553 |
-
'price_id' => $price_id,
|
554 |
);
|
555 |
|
556 |
}
|
@@ -572,7 +560,7 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
|
|
572 |
$total = count( $this->csv->data );
|
573 |
|
574 |
if( $total > 0 ) {
|
575 |
-
$percentage = ( $this->step
|
576 |
}
|
577 |
|
578 |
if( $percentage > 100 ) {
|
85 |
|
86 |
if( $offset > $this->total ) {
|
87 |
$this->done = true;
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
89 |
|
90 |
if( ! $this->done && $this->csv->data ) {
|
297 |
$download_name = $download['download'];
|
298 |
$price = $download['price'];
|
299 |
$tax = $download['tax'];
|
|
|
300 |
} else {
|
301 |
$download_name = $download;
|
302 |
}
|
309 |
|
310 |
$item_price = ! isset( $price ) ? edd_get_download_price( $download_id ) : $price;
|
311 |
$item_tax = ! isset( $tax ) ? ( $download_count > 1 ? 0.00 : $payment->tax ) : $tax;
|
|
|
312 |
|
313 |
+
$payment->add_download( $download_id, array(
|
314 |
'item_price' => $item_price,
|
315 |
+
'tax' => $item_tax
|
316 |
+
) );
|
|
|
|
|
|
|
317 |
|
318 |
}
|
319 |
|
531 |
foreach( $downloads as $key => $download ) {
|
532 |
|
533 |
$d = (array) explode( '|', $download );
|
534 |
+
preg_match( '/\{(\d+(\.\d+|\d+))\}/', $d[1], $matches );
|
535 |
$price = trim( substr( $d[1], 0, strpos( $d[1], '{' ) ) );
|
536 |
+
$tax = isset( $matches[1] ) ? trim( $matches[1] ) : 0;
|
|
|
537 |
|
538 |
$d_array[] = array(
|
539 |
'download' => trim( $d[0] ),
|
540 |
'price' => $price - $tax,
|
541 |
+
'tax' => $tax
|
|
|
542 |
);
|
543 |
|
544 |
}
|
560 |
$total = count( $this->csv->data );
|
561 |
|
562 |
if( $total > 0 ) {
|
563 |
+
$percentage = ( $this->step / $total ) * 100;
|
564 |
}
|
565 |
|
566 |
if( $percentage > 100 ) {
|
includes/admin/payments/class-payments-table.php
CHANGED
@@ -66,14 +66,6 @@ class EDD_Payment_History_Table extends WP_List_Table {
|
|
66 |
*/
|
67 |
public $pending_count;
|
68 |
|
69 |
-
/**
|
70 |
-
* Total number of processing payments
|
71 |
-
*
|
72 |
-
* @var int
|
73 |
-
* @since 2.8
|
74 |
-
*/
|
75 |
-
public $processing_count;
|
76 |
-
|
77 |
/**
|
78 |
* Total number of refunded payments
|
79 |
*
|
@@ -133,59 +125,19 @@ class EDD_Payment_History_Table extends WP_List_Table {
|
|
133 |
$start_date = isset( $_GET['start-date'] ) ? sanitize_text_field( $_GET['start-date'] ) : null;
|
134 |
$end_date = isset( $_GET['end-date'] ) ? sanitize_text_field( $_GET['end-date'] ) : null;
|
135 |
$status = isset( $_GET['status'] ) ? $_GET['status'] : '';
|
136 |
-
|
137 |
-
$all_gateways = edd_get_payment_gateways();
|
138 |
-
$gateways = array();
|
139 |
-
$selected_gateway = isset( $_GET['gateway'] ) ? sanitize_text_field( $_GET['gateway'] ) : 'all';
|
140 |
-
|
141 |
-
if ( ! empty( $all_gateways ) ) {
|
142 |
-
$gateways['all'] = __( 'All Gateways', 'edd' );
|
143 |
-
|
144 |
-
foreach( $all_gateways as $slug => $admin_label ) {
|
145 |
-
$gateways[ $slug ] = $admin_label['admin_label'];
|
146 |
-
}
|
147 |
-
}
|
148 |
-
|
149 |
-
/**
|
150 |
-
* Allow gateways that aren't registered the standard way to be displayed in the dropdown.
|
151 |
-
*
|
152 |
-
* @since 2.8.11
|
153 |
-
*/
|
154 |
-
$gateways = apply_filters( 'edd_payments_table_gateways', $gateways );
|
155 |
-
?>
|
156 |
<div id="edd-payment-filters">
|
157 |
<span id="edd-payment-date-filters">
|
158 |
-
<
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
<span>
|
163 |
-
<label for="end-date"><?php _e( 'End Date:', 'easy-digital-downloads' ); ?></label>
|
164 |
-
<input type="text" id="end-date" name="end-date" class="edd_datepicker" value="<?php echo $end_date; ?>" placeholder="mm/dd/yyyy"/>
|
165 |
-
</span>
|
166 |
-
</span>
|
167 |
-
<span id="edd-payment-gateway-filter">
|
168 |
-
<?php
|
169 |
-
if ( ! empty( $gateways ) ) {
|
170 |
-
echo EDD()->html->select( array(
|
171 |
-
'options' => $gateways,
|
172 |
-
'name' => 'gateway',
|
173 |
-
'id' => 'gateway',
|
174 |
-
'selected' => $selected_gateway,
|
175 |
-
'show_option_all' => false,
|
176 |
-
'show_option_none' => false
|
177 |
-
) );
|
178 |
-
}
|
179 |
-
?>
|
180 |
-
</span>
|
181 |
-
<span id="edd-payment-after-core-filters">
|
182 |
-
<?php do_action( 'edd_payment_advanced_filters_after_fields' ); ?>
|
183 |
<input type="submit" class="button-secondary" value="<?php _e( 'Apply', 'easy-digital-downloads' ); ?>"/>
|
184 |
</span>
|
185 |
<?php if( ! empty( $status ) ) : ?>
|
186 |
<input type="hidden" name="status" value="<?php echo esc_attr( $status ); ?>"/>
|
187 |
<?php endif; ?>
|
188 |
-
<?php if( ! empty( $start_date ) || ! empty( $end_date )
|
189 |
<a href="<?php echo admin_url( 'edit.php?post_type=download&page=edd-payment-history' ); ?>" class="button-secondary"><?php _e( 'Clear Filter', 'easy-digital-downloads' ); ?></a>
|
190 |
<?php endif; ?>
|
191 |
<?php do_action( 'edd_payment_advanced_filters_row' ); ?>
|
@@ -235,25 +187,23 @@ class EDD_Payment_History_Table extends WP_List_Table {
|
|
235 |
*/
|
236 |
public function get_views() {
|
237 |
|
238 |
-
$current
|
239 |
-
$total_count
|
240 |
-
$complete_count
|
241 |
-
$pending_count
|
242 |
-
$
|
243 |
-
$
|
244 |
-
$
|
245 |
-
$
|
246 |
-
$revoked_count = ' <span class="count">(' . $this->revoked_count . ')</span>';
|
247 |
|
248 |
$views = array(
|
249 |
-
'all'
|
250 |
-
'publish'
|
251 |
-
'pending'
|
252 |
-
'
|
253 |
-
'
|
254 |
-
'
|
255 |
-
'
|
256 |
-
'abandoned' => sprintf( '<a href="%s"%s>%s</a>', add_query_arg( array( 'status' => 'abandoned', 'paged' => FALSE ) ), $current === 'abandoned' ? ' class="current"' : '', __('Abandoned','easy-digital-downloads' ) . $abandoned_count ),
|
257 |
);
|
258 |
|
259 |
return apply_filters( 'edd_payments_table_views', $views );
|
@@ -445,7 +395,6 @@ class EDD_Payment_History_Table extends WP_List_Table {
|
|
445 |
'delete' => __( 'Delete', 'easy-digital-downloads' ),
|
446 |
'set-status-publish' => __( 'Set To Completed', 'easy-digital-downloads' ),
|
447 |
'set-status-pending' => __( 'Set To Pending', 'easy-digital-downloads' ),
|
448 |
-
'set-status-processing' => __( 'Set To Processing', 'easy-digital-downloads' ),
|
449 |
'set-status-refunded' => __( 'Set To Refunded', 'easy-digital-downloads' ),
|
450 |
'set-status-revoked' => __( 'Set To Revoked', 'easy-digital-downloads' ),
|
451 |
'set-status-failed' => __( 'Set To Failed', 'easy-digital-downloads' ),
|
@@ -490,10 +439,6 @@ class EDD_Payment_History_Table extends WP_List_Table {
|
|
490 |
edd_update_payment_status( $id, 'pending' );
|
491 |
}
|
492 |
|
493 |
-
if ( 'set-status-processing' === $this->current_action() ) {
|
494 |
-
edd_update_payment_status( $id, 'processing' );
|
495 |
-
}
|
496 |
-
|
497 |
if ( 'set-status-refunded' === $this->current_action() ) {
|
498 |
edd_update_payment_status( $id, 'refunded' );
|
499 |
}
|
@@ -519,6 +464,7 @@ class EDD_Payment_History_Table extends WP_List_Table {
|
|
519 |
}
|
520 |
|
521 |
if( 'resend-receipt' === $this->current_action() ) {
|
|
|
522 |
edd_email_purchase_receipt( $id, false );
|
523 |
}
|
524 |
|
@@ -564,18 +510,13 @@ class EDD_Payment_History_Table extends WP_List_Table {
|
|
564 |
$args['end-date'] = urldecode( $_GET['end-date'] );
|
565 |
}
|
566 |
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
$
|
572 |
-
$this->
|
573 |
-
$this->
|
574 |
-
$this->processing_count = $payment_count->processing;
|
575 |
-
$this->refunded_count = $payment_count->refunded;
|
576 |
-
$this->failed_count = $payment_count->failed;
|
577 |
-
$this->revoked_count = $payment_count->revoked;
|
578 |
-
$this->abandoned_count = $payment_count->abandoned;
|
579 |
|
580 |
foreach( $payment_count as $count ) {
|
581 |
$this->total_count += $count;
|
@@ -604,26 +545,11 @@ class EDD_Payment_History_Table extends WP_List_Table {
|
|
604 |
$search = isset( $_GET['s'] ) ? sanitize_text_field( $_GET['s'] ) : null;
|
605 |
$start_date = isset( $_GET['start-date'] ) ? sanitize_text_field( $_GET['start-date'] ) : null;
|
606 |
$end_date = isset( $_GET['end-date'] ) ? sanitize_text_field( $_GET['end-date'] ) : $start_date;
|
607 |
-
$gateway = isset( $_GET['gateway'] ) ? sanitize_text_field( $_GET['gateway'] ) : null;
|
608 |
-
|
609 |
-
/**
|
610 |
-
* Introduced as part of #6063. Allow a gateway to specified based on the context.
|
611 |
-
*
|
612 |
-
* @see https://github.com/easydigitaldownloads/easy-digital-downloads/issues/6063
|
613 |
-
* @since 2.8.11
|
614 |
-
*
|
615 |
-
* @param string $gateway
|
616 |
-
*/
|
617 |
-
$gateway = apply_filters( 'edd_payments_table_search_gateway', $gateway );
|
618 |
|
619 |
if( ! empty( $search ) ) {
|
620 |
$status = 'any'; // Force all payment statuses when searching
|
621 |
}
|
622 |
|
623 |
-
if ( $gateway === 'all' ) {
|
624 |
-
$gateway = null;
|
625 |
-
}
|
626 |
-
|
627 |
$args = array(
|
628 |
'output' => 'payments',
|
629 |
'number' => $per_page,
|
@@ -640,7 +566,6 @@ class EDD_Payment_History_Table extends WP_List_Table {
|
|
640 |
's' => $search,
|
641 |
'start_date' => $start_date,
|
642 |
'end_date' => $end_date,
|
643 |
-
'gateway' => $gateway
|
644 |
);
|
645 |
|
646 |
if( is_string( $search ) && false !== strpos( $search, 'txn:' ) ) {
|
@@ -687,9 +612,6 @@ class EDD_Payment_History_Table extends WP_List_Table {
|
|
687 |
case 'pending':
|
688 |
$total_items = $this->pending_count;
|
689 |
break;
|
690 |
-
case 'processing':
|
691 |
-
$total_items = $this->processing_count;
|
692 |
-
break;
|
693 |
case 'refunded':
|
694 |
$total_items = $this->refunded_count;
|
695 |
break;
|
66 |
*/
|
67 |
public $pending_count;
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
/**
|
70 |
* Total number of refunded payments
|
71 |
*
|
125 |
$start_date = isset( $_GET['start-date'] ) ? sanitize_text_field( $_GET['start-date'] ) : null;
|
126 |
$end_date = isset( $_GET['end-date'] ) ? sanitize_text_field( $_GET['end-date'] ) : null;
|
127 |
$status = isset( $_GET['status'] ) ? $_GET['status'] : '';
|
128 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
<div id="edd-payment-filters">
|
130 |
<span id="edd-payment-date-filters">
|
131 |
+
<label for="start-date"><?php _e( 'Start Date:', 'easy-digital-downloads' ); ?></label>
|
132 |
+
<input type="text" id="start-date" name="start-date" class="edd_datepicker" value="<?php echo $start_date; ?>" placeholder="mm/dd/yyyy"/>
|
133 |
+
<label for="end-date"><?php _e( 'End Date:', 'easy-digital-downloads' ); ?></label>
|
134 |
+
<input type="text" id="end-date" name="end-date" class="edd_datepicker" value="<?php echo $end_date; ?>" placeholder="mm/dd/yyyy"/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
<input type="submit" class="button-secondary" value="<?php _e( 'Apply', 'easy-digital-downloads' ); ?>"/>
|
136 |
</span>
|
137 |
<?php if( ! empty( $status ) ) : ?>
|
138 |
<input type="hidden" name="status" value="<?php echo esc_attr( $status ); ?>"/>
|
139 |
<?php endif; ?>
|
140 |
+
<?php if( ! empty( $start_date ) || ! empty( $end_date ) ) : ?>
|
141 |
<a href="<?php echo admin_url( 'edit.php?post_type=download&page=edd-payment-history' ); ?>" class="button-secondary"><?php _e( 'Clear Filter', 'easy-digital-downloads' ); ?></a>
|
142 |
<?php endif; ?>
|
143 |
<?php do_action( 'edd_payment_advanced_filters_row' ); ?>
|
187 |
*/
|
188 |
public function get_views() {
|
189 |
|
190 |
+
$current = isset( $_GET['status'] ) ? $_GET['status'] : '';
|
191 |
+
$total_count = ' <span class="count">(' . $this->total_count . ')</span>';
|
192 |
+
$complete_count = ' <span class="count">(' . $this->complete_count . ')</span>';
|
193 |
+
$pending_count = ' <span class="count">(' . $this->pending_count . ')</span>';
|
194 |
+
$refunded_count = ' <span class="count">(' . $this->refunded_count . ')</span>';
|
195 |
+
$failed_count = ' <span class="count">(' . $this->failed_count . ')</span>';
|
196 |
+
$abandoned_count = ' <span class="count">(' . $this->abandoned_count . ')</span>';
|
197 |
+
$revoked_count = ' <span class="count">(' . $this->revoked_count . ')</span>';
|
|
|
198 |
|
199 |
$views = array(
|
200 |
+
'all' => sprintf( '<a href="%s"%s>%s</a>', remove_query_arg( array( 'status', 'paged' ) ), $current === 'all' || $current == '' ? ' class="current"' : '', __('All','easy-digital-downloads' ) . $total_count ),
|
201 |
+
'publish' => sprintf( '<a href="%s"%s>%s</a>', add_query_arg( array( 'status' => 'publish', 'paged' => FALSE ) ), $current === 'publish' ? ' class="current"' : '', __('Completed','easy-digital-downloads' ) . $complete_count ),
|
202 |
+
'pending' => sprintf( '<a href="%s"%s>%s</a>', add_query_arg( array( 'status' => 'pending', 'paged' => FALSE ) ), $current === 'pending' ? ' class="current"' : '', __('Pending','easy-digital-downloads' ) . $pending_count ),
|
203 |
+
'refunded' => sprintf( '<a href="%s"%s>%s</a>', add_query_arg( array( 'status' => 'refunded', 'paged' => FALSE ) ), $current === 'refunded' ? ' class="current"' : '', __('Refunded','easy-digital-downloads' ) . $refunded_count ),
|
204 |
+
'revoked' => sprintf( '<a href="%s"%s>%s</a>', add_query_arg( array( 'status' => 'revoked', 'paged' => FALSE ) ), $current === 'revoked' ? ' class="current"' : '', __('Revoked','easy-digital-downloads' ) . $revoked_count ),
|
205 |
+
'failed' => sprintf( '<a href="%s"%s>%s</a>', add_query_arg( array( 'status' => 'failed', 'paged' => FALSE ) ), $current === 'failed' ? ' class="current"' : '', __('Failed','easy-digital-downloads' ) . $failed_count ),
|
206 |
+
'abandoned' => sprintf( '<a href="%s"%s>%s</a>', add_query_arg( array( 'status' => 'abandoned', 'paged' => FALSE ) ), $current === 'abandoned' ? ' class="current"' : '', __('Abandoned','easy-digital-downloads' ) . $abandoned_count ),
|
|
|
207 |
);
|
208 |
|
209 |
return apply_filters( 'edd_payments_table_views', $views );
|
395 |
'delete' => __( 'Delete', 'easy-digital-downloads' ),
|
396 |
'set-status-publish' => __( 'Set To Completed', 'easy-digital-downloads' ),
|
397 |
'set-status-pending' => __( 'Set To Pending', 'easy-digital-downloads' ),
|
|
|
398 |
'set-status-refunded' => __( 'Set To Refunded', 'easy-digital-downloads' ),
|
399 |
'set-status-revoked' => __( 'Set To Revoked', 'easy-digital-downloads' ),
|
400 |
'set-status-failed' => __( 'Set To Failed', 'easy-digital-downloads' ),
|
439 |
edd_update_payment_status( $id, 'pending' );
|
440 |
}
|
441 |
|
|
|
|
|
|
|
|
|
442 |
if ( 'set-status-refunded' === $this->current_action() ) {
|
443 |
edd_update_payment_status( $id, 'refunded' );
|
444 |
}
|
464 |
}
|
465 |
|
466 |
if( 'resend-receipt' === $this->current_action() ) {
|
467 |
+
|
468 |
edd_email_purchase_receipt( $id, false );
|
469 |
}
|
470 |
|
510 |
$args['end-date'] = urldecode( $_GET['end-date'] );
|
511 |
}
|
512 |
|
513 |
+
$payment_count = edd_count_payments( $args );
|
514 |
+
$this->complete_count = $payment_count->publish;
|
515 |
+
$this->pending_count = $payment_count->pending;
|
516 |
+
$this->refunded_count = $payment_count->refunded;
|
517 |
+
$this->failed_count = $payment_count->failed;
|
518 |
+
$this->revoked_count = $payment_count->revoked;
|
519 |
+
$this->abandoned_count = $payment_count->abandoned;
|
|
|
|
|
|
|
|
|
|
|
520 |
|
521 |
foreach( $payment_count as $count ) {
|
522 |
$this->total_count += $count;
|
545 |
$search = isset( $_GET['s'] ) ? sanitize_text_field( $_GET['s'] ) : null;
|
546 |
$start_date = isset( $_GET['start-date'] ) ? sanitize_text_field( $_GET['start-date'] ) : null;
|
547 |
$end_date = isset( $_GET['end-date'] ) ? sanitize_text_field( $_GET['end-date'] ) : $start_date;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
548 |
|
549 |
if( ! empty( $search ) ) {
|
550 |
$status = 'any'; // Force all payment statuses when searching
|
551 |
}
|
552 |
|
|
|
|
|
|
|
|
|
553 |
$args = array(
|
554 |
'output' => 'payments',
|
555 |
'number' => $per_page,
|
566 |
's' => $search,
|
567 |
'start_date' => $start_date,
|
568 |
'end_date' => $end_date,
|
|
|
569 |
);
|
570 |
|
571 |
if( is_string( $search ) && false !== strpos( $search, 'txn:' ) ) {
|
612 |
case 'pending':
|
613 |
$total_items = $this->pending_count;
|
614 |
break;
|
|
|
|
|
|
|
615 |
case 'refunded':
|
616 |
$total_items = $this->refunded_count;
|
617 |
break;
|
includes/admin/payments/view-order-details.php
CHANGED
@@ -393,7 +393,6 @@ $customer = new EDD_Customer( $payment->customer_id );
|
|
393 |
$item_tax = isset( $cart_item['tax'] ) ? $cart_item['tax'] : 0;
|
394 |
$price_id = isset( $cart_item['item_number']['options']['price_id'] ) ? $cart_item['item_number']['options']['price_id'] : null;
|
395 |
$quantity = isset( $cart_item['quantity'] ) && $cart_item['quantity'] > 0 ? $cart_item['quantity'] : 1;
|
396 |
-
$download = new EDD_Download( $item_id );
|
397 |
|
398 |
if( false === $price ) {
|
399 |
|
@@ -404,27 +403,16 @@ $customer = new EDD_Customer( $payment->customer_id );
|
|
404 |
|
405 |
<li class="download">
|
406 |
<span class="edd-purchased-download-title">
|
407 |
-
<?php
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
echo ' - ' . edd_get_price_option_name( $item_id, $price_id, $payment_id );
|
414 |
-
}
|
415 |
}
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
<span class="deleted">
|
420 |
-
<?php if ( ! empty( $cart_item['name'] ) ) : ?>
|
421 |
-
<?php echo $cart_item['name']; ?> -
|
422 |
-
<em>(<?php _e( 'Deleted', 'easy-digital-downloads' ); ?>)</em>
|
423 |
-
<?php else: ?>
|
424 |
-
<em><?php printf( __( '%s deleted', 'easy-digital-downloads' ), edd_get_label_singular() ); ?></em>
|
425 |
-
<?php endif; ?>
|
426 |
-
</span>
|
427 |
-
<?php endif; ?>
|
428 |
</span>
|
429 |
<input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][id]" class="edd-payment-details-download-id" value="<?php echo esc_attr( $item_id ); ?>"/>
|
430 |
<input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][price_id]" class="edd-payment-details-download-price-id" value="<?php echo esc_attr( $price_id ); ?>"/>
|
@@ -467,7 +455,7 @@ $customer = new EDD_Customer( $payment->customer_id );
|
|
467 |
<?php _ex( 'Tax', 'payment details purchased item tax - mobile', 'easy-digital-downloads' ); ?>
|
468 |
</span>
|
469 |
<?php echo edd_currency_symbol( $currency_code ); ?>
|
470 |
-
<input type="
|
471 |
</li>
|
472 |
<?php endif; ?>
|
473 |
|
@@ -697,23 +685,23 @@ $customer = new EDD_Customer( $payment->customer_id );
|
|
697 |
<div class="column">
|
698 |
<p>
|
699 |
<strong class="order-data-address-line"><?php _e( 'Street Address Line 1:', 'easy-digital-downloads' ); ?></strong><br/>
|
700 |
-
<input type="text" name="edd-payment-address[0][line1]" value="<?php echo esc_attr( $address['line1'] ); ?>" class="
|
701 |
</p>
|
702 |
<p>
|
703 |
<strong class="order-data-address-line"><?php _e( 'Street Address Line 2:', 'easy-digital-downloads' ); ?></strong><br/>
|
704 |
-
<input type="text" name="edd-payment-address[0][line2]" value="<?php echo esc_attr( $address['line2'] ); ?>" class="
|
705 |
</p>
|
706 |
|
707 |
</div>
|
708 |
<div class="column">
|
709 |
<p>
|
710 |
<strong class="order-data-address-line"><?php echo _x( 'City:', 'Address City', 'easy-digital-downloads' ); ?></strong><br/>
|
711 |
-
<input type="text" name="edd-payment-address[0][city]" value="<?php echo esc_attr( $address['city'] ); ?>" class="
|
712 |
|
713 |
</p>
|
714 |
<p>
|
715 |
<strong class="order-data-address-line"><?php echo _x( 'Zip / Postal Code:', 'Zip / Postal code of address', 'easy-digital-downloads' ); ?></strong><br/>
|
716 |
-
<input type="text" name="edd-payment-address[0][zip]" value="<?php echo esc_attr( $address['zip'] ); ?>" class="
|
717 |
|
718 |
</p>
|
719 |
</div>
|
@@ -730,10 +718,7 @@ $customer = new EDD_Customer( $payment->customer_id );
|
|
730 |
'show_option_none' => false,
|
731 |
'chosen' => true,
|
732 |
'placeholder' => __( 'Select a country', 'easy-digital-downloads' ),
|
733 |
-
'data' => array(
|
734 |
-
'search-type' => 'no_ajax',
|
735 |
-
'search-placeholder' => __( 'Type to search all Countries', 'easy-digital-downloads' ),
|
736 |
-
),
|
737 |
) );
|
738 |
?>
|
739 |
</p>
|
@@ -751,13 +736,10 @@ $customer = new EDD_Customer( $payment->customer_id );
|
|
751 |
'show_option_none' => false,
|
752 |
'chosen' => true,
|
753 |
'placeholder' => __( 'Select a state', 'easy-digital-downloads' ),
|
754 |
-
'data' => array(
|
755 |
-
'search-type' => 'no_ajax',
|
756 |
-
'search-placeholder' => __( 'Type to search all States/Provinces', 'easy-digital-downloads' ),
|
757 |
-
),
|
758 |
) );
|
759 |
} else { ?>
|
760 |
-
<input type="text" name="edd-payment-address[0][state]" value="<?php echo esc_attr( $address['state'] ); ?>" class="
|
761 |
<?php
|
762 |
} ?>
|
763 |
</p>
|
393 |
$item_tax = isset( $cart_item['tax'] ) ? $cart_item['tax'] : 0;
|
394 |
$price_id = isset( $cart_item['item_number']['options']['price_id'] ) ? $cart_item['item_number']['options']['price_id'] : null;
|
395 |
$quantity = isset( $cart_item['quantity'] ) && $cart_item['quantity'] > 0 ? $cart_item['quantity'] : 1;
|
|
|
396 |
|
397 |
if( false === $price ) {
|
398 |
|
403 |
|
404 |
<li class="download">
|
405 |
<span class="edd-purchased-download-title">
|
406 |
+
<a href="<?php echo admin_url( 'post.php?post=' . $item_id . '&action=edit' ); ?>">
|
407 |
+
<?php echo get_the_title( $item_id );
|
408 |
+
if ( isset( $cart_items[ $key ]['item_number'] ) && isset( $cart_items[ $key ]['item_number']['options'] ) ) {
|
409 |
+
$price_options = $cart_items[ $key ]['item_number']['options'];
|
410 |
+
if ( edd_has_variable_prices( $item_id ) && isset( $price_id ) ) {
|
411 |
+
echo ' - ' . edd_get_price_option_name( $item_id, $price_id, $payment_id );
|
|
|
|
|
412 |
}
|
413 |
+
}
|
414 |
+
?>
|
415 |
+
</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
416 |
</span>
|
417 |
<input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][id]" class="edd-payment-details-download-id" value="<?php echo esc_attr( $item_id ); ?>"/>
|
418 |
<input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][price_id]" class="edd-payment-details-download-price-id" value="<?php echo esc_attr( $price_id ); ?>"/>
|
455 |
<?php _ex( 'Tax', 'payment details purchased item tax - mobile', 'easy-digital-downloads' ); ?>
|
456 |
</span>
|
457 |
<?php echo edd_currency_symbol( $currency_code ); ?>
|
458 |
+
<input type="number" step="0.01" min="0" class="small-text edd-payment-details-download-item-tax edd-payment-item-input" name="edd-payment-details-downloads[<?php echo $key; ?>][item_tax]" value="<?php echo edd_format_amount( $item_tax ); ?>" />
|
459 |
</li>
|
460 |
<?php endif; ?>
|
461 |
|
685 |
<div class="column">
|
686 |
<p>
|
687 |
<strong class="order-data-address-line"><?php _e( 'Street Address Line 1:', 'easy-digital-downloads' ); ?></strong><br/>
|
688 |
+
<input type="text" name="edd-payment-address[0][line1]" value="<?php echo esc_attr( $address['line1'] ); ?>" class="medium-text" />
|
689 |
</p>
|
690 |
<p>
|
691 |
<strong class="order-data-address-line"><?php _e( 'Street Address Line 2:', 'easy-digital-downloads' ); ?></strong><br/>
|
692 |
+
<input type="text" name="edd-payment-address[0][line2]" value="<?php echo esc_attr( $address['line2'] ); ?>" class="medium-text" />
|
693 |
</p>
|
694 |
|
695 |
</div>
|
696 |
<div class="column">
|
697 |
<p>
|
698 |
<strong class="order-data-address-line"><?php echo _x( 'City:', 'Address City', 'easy-digital-downloads' ); ?></strong><br/>
|
699 |
+
<input type="text" name="edd-payment-address[0][city]" value="<?php echo esc_attr( $address['city'] ); ?>" class="medium-text"/>
|
700 |
|
701 |
</p>
|
702 |
<p>
|
703 |
<strong class="order-data-address-line"><?php echo _x( 'Zip / Postal Code:', 'Zip / Postal code of address', 'easy-digital-downloads' ); ?></strong><br/>
|
704 |
+
<input type="text" name="edd-payment-address[0][zip]" value="<?php echo esc_attr( $address['zip'] ); ?>" class="medium-text"/>
|
705 |
|
706 |
</p>
|
707 |
</div>
|
718 |
'show_option_none' => false,
|
719 |
'chosen' => true,
|
720 |
'placeholder' => __( 'Select a country', 'easy-digital-downloads' ),
|
721 |
+
'data' => array( 'search-type' => 'no_ajax' ),
|
|
|
|
|
|
|
722 |
) );
|
723 |
?>
|
724 |
</p>
|
736 |
'show_option_none' => false,
|
737 |
'chosen' => true,
|
738 |
'placeholder' => __( 'Select a state', 'easy-digital-downloads' ),
|
739 |
+
'data' => array( 'search-type' => 'no_ajax' ),
|
|
|
|
|
|
|
740 |
) );
|
741 |
} else { ?>
|
742 |
+
<input type="text" name="edd-payment-address[0][state]" value="<?php echo esc_attr( $address['state'] ); ?>" class="medium-text"/>
|
743 |
<?php
|
744 |
} ?>
|
745 |
</p>
|
includes/admin/reporting/class-categories-reports-table.php
CHANGED
@@ -163,7 +163,6 @@ class EDD_Categories_Reports_Table extends WP_List_Table {
|
|
163 |
$term_args = array(
|
164 |
'parent' => 0,
|
165 |
'hierarchical' => 0,
|
166 |
-
'hide_empty' => false
|
167 |
);
|
168 |
|
169 |
$categories = get_terms( 'download_category', $term_args );
|
163 |
$term_args = array(
|
164 |
'parent' => 0,
|
165 |
'hierarchical' => 0,
|
|
|
166 |
);
|
167 |
|
168 |
$categories = get_terms( 'download_category', $term_args );
|
includes/admin/reporting/class-file-downloads-logs-list-table.php
CHANGED
@@ -127,8 +127,6 @@ class EDD_File_Downloads_Log_Table extends WP_List_Table {
|
|
127 |
return '<a href="' . add_query_arg( 'user', $item[ 'customer' ]->email ) . '">' . $item['customer']->name . '</a>';
|
128 |
case 'payment_id' :
|
129 |
return $item['payment_id'] !== false ? '<a href="' . admin_url( 'edit.php?post_type=download&page=edd-payment-history&view=view-order-details&id=' . $item['payment_id'] ) . '">' . edd_get_payment_number( $item['payment_id'] ) . '</a>' : '';
|
130 |
-
case 'ip' :
|
131 |
-
return '<a href="https://ipinfo.io/' . $item['ip'] . '" target="_blank" rel="noopener noreferrer">' . $item['ip'] . '</a>';
|
132 |
default:
|
133 |
return $item[ $column_name ];
|
134 |
}
|
@@ -401,15 +399,8 @@ class EDD_File_Downloads_Log_Table extends WP_List_Table {
|
|
401 |
$files = $this->queried_files[ $log->post_parent ];
|
402 |
}
|
403 |
|
404 |
-
// Filter the download files
|
405 |
-
$files = apply_filters( 'edd_log_file_download_download_files', $files, $log, $meta );
|
406 |
-
|
407 |
$file_id = (int) $meta['_edd_log_file_id'][0];
|
408 |
$file_id = $file_id !== false ? $file_id : 0;
|
409 |
-
|
410 |
-
// Filter the $file_id
|
411 |
-
$file_id = apply_filters( 'edd_log_file_download_file_id', $file_id, $log );
|
412 |
-
|
413 |
$file_name = isset( $files[ $file_id ]['name'] ) ? $files[ $file_id ]['name'] : null;
|
414 |
|
415 |
if ( ( $this->file_search && strpos( strtolower( $file_name ), strtolower( $this->get_search() ) ) !== false ) || ! $this->file_search ) {
|
@@ -471,4 +462,4 @@ class EDD_File_Downloads_Log_Table extends WP_List_Table {
|
|
471 |
public function has_items() {
|
472 |
return true;
|
473 |
}
|
474 |
-
}
|
127 |
return '<a href="' . add_query_arg( 'user', $item[ 'customer' ]->email ) . '">' . $item['customer']->name . '</a>';
|
128 |
case 'payment_id' :
|
129 |
return $item['payment_id'] !== false ? '<a href="' . admin_url( 'edit.php?post_type=download&page=edd-payment-history&view=view-order-details&id=' . $item['payment_id'] ) . '">' . edd_get_payment_number( $item['payment_id'] ) . '</a>' : '';
|
|
|
|
|
130 |
default:
|
131 |
return $item[ $column_name ];
|
132 |
}
|
399 |
$files = $this->queried_files[ $log->post_parent ];
|
400 |
}
|
401 |
|
|
|
|
|
|
|
402 |
$file_id = (int) $meta['_edd_log_file_id'][0];
|
403 |
$file_id = $file_id !== false ? $file_id : 0;
|
|
|
|
|
|
|
|
|
404 |
$file_name = isset( $files[ $file_id ]['name'] ) ? $files[ $file_id ]['name'] : null;
|
405 |
|
406 |
if ( ( $this->file_search && strpos( strtolower( $file_name ), strtolower( $this->get_search() ) ) !== false ) || ! $this->file_search ) {
|
462 |
public function has_items() {
|
463 |
return true;
|
464 |
}
|
465 |
+
}
|
includes/admin/reporting/class-sales-logs-list-table.php
CHANGED
@@ -315,11 +315,10 @@ class EDD_Sales_Log_Table extends WP_List_Table {
|
|
315 |
$download = empty( $_GET['s'] ) ? $this->get_filtered_download() : null;
|
316 |
|
317 |
$log_query = array(
|
318 |
-
'post_parent'
|
319 |
-
'log_type'
|
320 |
-
'paged'
|
321 |
-
'meta_query'
|
322 |
-
'posts_per_page' => $this->per_page,
|
323 |
);
|
324 |
|
325 |
$logs = $edd_logs->get_connected_logs( $log_query );
|
315 |
$download = empty( $_GET['s'] ) ? $this->get_filtered_download() : null;
|
316 |
|
317 |
$log_query = array(
|
318 |
+
'post_parent' => $download,
|
319 |
+
'log_type' => 'sale',
|
320 |
+
'paged' => $paged,
|
321 |
+
'meta_query' => $this->get_meta_query(),
|
|
|
322 |
);
|
323 |
|
324 |
$logs = $edd_logs->get_connected_logs( $log_query );
|
includes/admin/reporting/export/class-batch-export-payments.php
CHANGED
@@ -63,8 +63,7 @@ class EDD_Batch_Payments_Export extends EDD_Batch_Export {
|
|
63 |
'currency' => __( 'Currency', 'easy-digital-downloads' ),
|
64 |
'ip' => __( 'IP Address', 'easy-digital-downloads' ),
|
65 |
'mode' => __( 'Mode (Live|Test)', 'easy-digital-downloads' ),
|
66 |
-
'status' => __( 'Status', 'easy-digital-downloads' )
|
67 |
-
'country_name' => __( 'Country Name', 'easy-digital-downloads' ),
|
68 |
);
|
69 |
|
70 |
if( ! edd_use_skus() ){
|
@@ -111,6 +110,8 @@ class EDD_Batch_Payments_Export extends EDD_Batch_Export {
|
|
111 |
|
112 |
}
|
113 |
|
|
|
|
|
114 |
$payments = edd_get_payments( $args );
|
115 |
|
116 |
if( $payments ) {
|
@@ -141,8 +142,7 @@ class EDD_Batch_Payments_Export extends EDD_Batch_Export {
|
|
141 |
$price = edd_get_download_final_price( $id, $user_info, $price_override );
|
142 |
}
|
143 |
|
144 |
-
$download_tax
|
145 |
-
$download_price_id = isset( $download['item_number']['options']['price_id'] ) ? absint( $download['item_number']['options']['price_id'] ) : false;
|
146 |
|
147 |
/* Set up verbose product column */
|
148 |
|
@@ -183,12 +183,6 @@ class EDD_Batch_Payments_Export extends EDD_Batch_Export {
|
|
183 |
|
184 |
/* Set up raw products column - Nothing but product names */
|
185 |
$products_raw .= html_entity_decode( get_the_title( $id ) ) . '|' . $price . '{' . $download_tax . '}';
|
186 |
-
|
187 |
-
// if we have a Price ID, include it.
|
188 |
-
if ( false !== $download_price_id ) {
|
189 |
-
$products_raw .= '{' . $download_price_id . '}';
|
190 |
-
}
|
191 |
-
|
192 |
if ( $key != ( count( $downloads ) -1 ) ) {
|
193 |
|
194 |
$products_raw .= ' / ';
|
@@ -230,8 +224,7 @@ class EDD_Batch_Payments_Export extends EDD_Batch_Export {
|
|
230 |
'currency' => $payment->currency,
|
231 |
'ip' => $payment->ip,
|
232 |
'mode' => $payment->get_meta( '_edd_payment_mode', true ),
|
233 |
-
'status' => ( 'publish' === $payment->status ) ? 'complete' : $payment->status
|
234 |
-
'country_name' => isset( $user_info['address']['country'] ) ? edd_get_country_name( $user_info['address']['country'] ) : '',
|
235 |
);
|
236 |
|
237 |
}
|
63 |
'currency' => __( 'Currency', 'easy-digital-downloads' ),
|
64 |
'ip' => __( 'IP Address', 'easy-digital-downloads' ),
|
65 |
'mode' => __( 'Mode (Live|Test)', 'easy-digital-downloads' ),
|
66 |
+
'status' => __( 'Status', 'easy-digital-downloads' )
|
|
|
67 |
);
|
68 |
|
69 |
if( ! edd_use_skus() ){
|
110 |
|
111 |
}
|
112 |
|
113 |
+
//echo json_encode($args ); exit;
|
114 |
+
|
115 |
$payments = edd_get_payments( $args );
|
116 |
|
117 |
if( $payments ) {
|
142 |
$price = edd_get_download_final_price( $id, $user_info, $price_override );
|
143 |
}
|
144 |
|
145 |
+
$download_tax = isset( $download['tax'] ) ? $download['tax'] : 0;
|
|
|
146 |
|
147 |
/* Set up verbose product column */
|
148 |
|
183 |
|
184 |
/* Set up raw products column - Nothing but product names */
|
185 |
$products_raw .= html_entity_decode( get_the_title( $id ) ) . '|' . $price . '{' . $download_tax . '}';
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
if ( $key != ( count( $downloads ) -1 ) ) {
|
187 |
|
188 |
$products_raw .= ' / ';
|
224 |
'currency' => $payment->currency,
|
225 |
'ip' => $payment->ip,
|
226 |
'mode' => $payment->get_meta( '_edd_payment_mode', true ),
|
227 |
+
'status' => ( 'publish' === $payment->status ) ? 'complete' : $payment->status
|
|
|
228 |
);
|
229 |
|
230 |
}
|
includes/admin/reporting/export/class-batch-export-sales.php
CHANGED
@@ -37,13 +37,12 @@ class EDD_Batch_Sales_Export extends EDD_Batch_Export {
|
|
37 |
*/
|
38 |
public function csv_cols() {
|
39 |
$cols = array(
|
40 |
-
'ID'
|
41 |
-
'user_id'
|
42 |
-
'
|
43 |
-
'
|
44 |
-
'
|
45 |
-
'
|
46 |
-
'date' => __( 'Date', 'easy-digital-downloads' ),
|
47 |
);
|
48 |
|
49 |
return $cols;
|
@@ -65,9 +64,7 @@ class EDD_Batch_Sales_Export extends EDD_Batch_Export {
|
|
65 |
$args = array(
|
66 |
'log_type' => 'sale',
|
67 |
'posts_per_page' => 30,
|
68 |
-
'paged' => $this->step
|
69 |
-
'orderby' => 'ID',
|
70 |
-
'order' => 'ASC',
|
71 |
);
|
72 |
|
73 |
if ( ! empty( $this->start ) || ! empty( $this->end ) ) {
|
@@ -115,13 +112,12 @@ class EDD_Batch_Sales_Export extends EDD_Batch_Export {
|
|
115 |
}
|
116 |
}
|
117 |
$data[] = array(
|
118 |
-
'ID'
|
119 |
-
'user_id'
|
120 |
-
'
|
121 |
-
'
|
122 |
-
'
|
123 |
-
'
|
124 |
-
'date' => get_post_field( 'post_date', $payment_id ),
|
125 |
);
|
126 |
}
|
127 |
|
@@ -182,7 +178,7 @@ class EDD_Batch_Sales_Export extends EDD_Batch_Export {
|
|
182 |
|
183 |
public function set_properties( $request ) {
|
184 |
$this->start = isset( $request['start'] ) ? sanitize_text_field( $request['start'] ) : '';
|
185 |
-
$this->end = isset( $request['end'] ) ? sanitize_text_field( $request['end'] )
|
186 |
$this->download_id = isset( $request['download_id'] ) ? absint( $request['download_id'] ) : 0;
|
187 |
}
|
188 |
-
}
|
37 |
*/
|
38 |
public function csv_cols() {
|
39 |
$cols = array(
|
40 |
+
'ID' => __( 'Log ID', 'easy-digital-downloads' ),
|
41 |
+
'user_id' => __( 'User', 'easy-digital-downloads' ),
|
42 |
+
'download' => edd_get_label_singular(),
|
43 |
+
'amount' => __( 'Item Amount', 'easy-digital-downloads' ),
|
44 |
+
'payment_id' => __( 'Payment ID', 'easy-digital-downloads' ),
|
45 |
+
'date' => __( 'Date', 'easy-digital-downloads' ),
|
|
|
46 |
);
|
47 |
|
48 |
return $cols;
|
64 |
$args = array(
|
65 |
'log_type' => 'sale',
|
66 |
'posts_per_page' => 30,
|
67 |
+
'paged' => $this->step
|
|
|
|
|
68 |
);
|
69 |
|
70 |
if ( ! empty( $this->start ) || ! empty( $this->end ) ) {
|
112 |
}
|
113 |
}
|
114 |
$data[] = array(
|
115 |
+
'ID' => $log->ID,
|
116 |
+
'user_id' => $customer->user_id,
|
117 |
+
'download' => $download->post_title,
|
118 |
+
'amount' => $amount,
|
119 |
+
'payment_id' => $payment->ID,
|
120 |
+
'date' => get_post_field( 'post_date', $payment_id ),
|
|
|
121 |
);
|
122 |
}
|
123 |
|
178 |
|
179 |
public function set_properties( $request ) {
|
180 |
$this->start = isset( $request['start'] ) ? sanitize_text_field( $request['start'] ) : '';
|
181 |
+
$this->end = isset( $request['end'] ) ? sanitize_text_field( $request['end'] ) : '';
|
182 |
$this->download_id = isset( $request['download_id'] ) ? absint( $request['download_id'] ) : 0;
|
183 |
}
|
184 |
+
}
|
includes/admin/reporting/graphing.php
CHANGED
@@ -23,10 +23,10 @@ function edd_reports_graph() {
|
|
23 |
$dates = edd_get_report_dates();
|
24 |
|
25 |
// Determine graph options
|
26 |
-
switch ( $dates['range'] )
|
27 |
case 'today' :
|
28 |
case 'yesterday' :
|
29 |
-
$day_by_day
|
30 |
break;
|
31 |
case 'last_year' :
|
32 |
case 'this_year' :
|
@@ -48,7 +48,7 @@ function edd_reports_graph() {
|
|
48 |
default:
|
49 |
$day_by_day = true;
|
50 |
break;
|
51 |
-
|
52 |
|
53 |
$earnings_totals = 0.00; // Total earnings for time period shown
|
54 |
$sales_totals = 0; // Total sales for time period shown
|
@@ -415,23 +415,25 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
|
|
415 |
$dates = edd_get_report_dates();
|
416 |
|
417 |
// Determine graph options
|
418 |
-
switch ( $dates['range'] )
|
419 |
case 'today' :
|
420 |
case 'yesterday' :
|
421 |
-
$day_by_day
|
422 |
break;
|
423 |
case 'last_year' :
|
|
|
|
|
424 |
case 'this_year' :
|
425 |
-
$day_by_day
|
426 |
break;
|
427 |
case 'last_quarter' :
|
|
|
|
|
428 |
case 'this_quarter' :
|
429 |
-
$day_by_day =
|
430 |
break;
|
431 |
case 'other' :
|
432 |
-
if
|
433 |
-
$day_by_day = true;
|
434 |
-
} elseif ( $dates['m_end'] - $dates['m_start'] >= 3 || ( $dates['year_end'] > $dates['year'] && ( $dates['m_start'] - $dates['m_end'] ) != 10 ) ) {
|
435 |
$day_by_day = false;
|
436 |
} else {
|
437 |
$day_by_day = true;
|
@@ -440,7 +442,7 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
|
|
440 |
default:
|
441 |
$day_by_day = true;
|
442 |
break;
|
443 |
-
|
444 |
|
445 |
$earnings_totals = (float) 0.00; // Total earnings for time period shown
|
446 |
$sales_totals = 0; // Total sales for time period shown
|
@@ -542,9 +544,6 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
|
|
542 |
if ( $month_start < $month_end ) {
|
543 |
$d = 1;
|
544 |
}
|
545 |
-
} elseif ( $i > $month_start && $i < $month_end ) {
|
546 |
-
$num_of_days = cal_days_in_month( CAL_GREGORIAN, $i, $y );
|
547 |
-
$d = 1;
|
548 |
} else {
|
549 |
$num_of_days = cal_days_in_month( CAL_GREGORIAN, $i, $y );
|
550 |
}
|
23 |
$dates = edd_get_report_dates();
|
24 |
|
25 |
// Determine graph options
|
26 |
+
switch ( $dates['range'] ) :
|
27 |
case 'today' :
|
28 |
case 'yesterday' :
|
29 |
+
$day_by_day = true;
|
30 |
break;
|
31 |
case 'last_year' :
|
32 |
case 'this_year' :
|
48 |
default:
|
49 |
$day_by_day = true;
|
50 |
break;
|
51 |
+
endswitch;
|
52 |
|
53 |
$earnings_totals = 0.00; // Total earnings for time period shown
|
54 |
$sales_totals = 0; // Total sales for time period shown
|
415 |
$dates = edd_get_report_dates();
|
416 |
|
417 |
// Determine graph options
|
418 |
+
switch ( $dates['range'] ) :
|
419 |
case 'today' :
|
420 |
case 'yesterday' :
|
421 |
+
$day_by_day = true;
|
422 |
break;
|
423 |
case 'last_year' :
|
424 |
+
$day_by_day = false;
|
425 |
+
break;
|
426 |
case 'this_year' :
|
427 |
+
$day_by_day = false;
|
428 |
break;
|
429 |
case 'last_quarter' :
|
430 |
+
$day_by_day = false;
|
431 |
+
break;
|
432 |
case 'this_quarter' :
|
433 |
+
$day_by_day = false;
|
434 |
break;
|
435 |
case 'other' :
|
436 |
+
if( $dates['m_end'] - $dates['m_start'] >= 2 || $dates['year_end'] > $dates['year'] ) {
|
|
|
|
|
437 |
$day_by_day = false;
|
438 |
} else {
|
439 |
$day_by_day = true;
|
442 |
default:
|
443 |
$day_by_day = true;
|
444 |
break;
|
445 |
+
endswitch;
|
446 |
|
447 |
$earnings_totals = (float) 0.00; // Total earnings for time period shown
|
448 |
$sales_totals = 0; // Total sales for time period shown
|
544 |
if ( $month_start < $month_end ) {
|
545 |
$d = 1;
|
546 |
}
|
|
|
|
|
|
|
547 |
} else {
|
548 |
$num_of_days = cal_days_in_month( CAL_GREGORIAN, $i, $y );
|
549 |
}
|
includes/admin/settings/register-settings.php
CHANGED
@@ -85,7 +85,6 @@ function edd_update_option( $key = '', $value = false ) {
|
|
85 |
* @return boolean True if removed, false if not.
|
86 |
*/
|
87 |
function edd_delete_option( $key = '' ) {
|
88 |
-
global $edd_options;
|
89 |
|
90 |
// If no key, exit
|
91 |
if ( empty( $key ) ){
|
@@ -102,13 +101,6 @@ function edd_delete_option( $key = '' ) {
|
|
102 |
|
103 |
}
|
104 |
|
105 |
-
// Remove this option from the global EDD settings to the array_merge in edd_settings_sanitize() doesn't re-add it.
|
106 |
-
if( isset( $edd_options[ $key ] ) ) {
|
107 |
-
|
108 |
-
unset( $edd_options[ $key ] );
|
109 |
-
|
110 |
-
}
|
111 |
-
|
112 |
$did_update = update_option( 'edd_settings', $options );
|
113 |
|
114 |
// If it updated, let's update the global variable
|
@@ -200,7 +192,6 @@ function edd_register_settings() {
|
|
200 |
'max' => null,
|
201 |
'step' => null,
|
202 |
'chosen' => null,
|
203 |
-
'multiple' => null,
|
204 |
'placeholder' => null,
|
205 |
'allow_blank' => true,
|
206 |
'readonly' => false,
|
@@ -241,9 +232,6 @@ function edd_get_registered_settings() {
|
|
241 |
* 'Whitelisted' EDD settings, filters are provided for each settings
|
242 |
* section to allow extensions and other plugins to add their own settings
|
243 |
*/
|
244 |
-
|
245 |
-
$shop_states = edd_get_shop_states( edd_get_shop_country() );
|
246 |
-
|
247 |
$edd_settings = array(
|
248 |
/** General Settings */
|
249 |
'general' => apply_filters( 'edd_settings_general',
|
@@ -251,7 +239,7 @@ function edd_get_registered_settings() {
|
|
251 |
'main' => array(
|
252 |
'page_settings' => array(
|
253 |
'id' => 'page_settings',
|
254 |
-
'name' => '<h3>' . __( '
|
255 |
'desc' => '',
|
256 |
'type' => 'header',
|
257 |
'tooltip_title' => __( 'Page Settings', 'easy-digital-downloads' ),
|
@@ -297,7 +285,7 @@ function edd_get_registered_settings() {
|
|
297 |
'id' => 'login_redirect_page',
|
298 |
'name' => __( 'Login Redirect Page', 'easy-digital-downloads' ),
|
299 |
'desc' => sprintf(
|
300 |
-
__( '
|
301 |
),
|
302 |
'type' => 'select',
|
303 |
'options' => edd_get_pages(),
|
@@ -328,11 +316,10 @@ function edd_get_registered_settings() {
|
|
328 |
'type' => 'shop_states',
|
329 |
'chosen' => true,
|
330 |
'placeholder' => __( 'Select a state', 'easy-digital-downloads' ),
|
331 |
-
'class' => ( empty( $shop_states ) ) ? 'hidden' : '',
|
332 |
),
|
333 |
'tracking_settings' => array(
|
334 |
'id' => 'tracking_settings',
|
335 |
-
'name' => '<h3>' . __( 'Tracking', 'easy-digital-downloads' ) . '</h3>',
|
336 |
'desc' => '',
|
337 |
'type' => 'header',
|
338 |
),
|
@@ -340,13 +327,19 @@ function edd_get_registered_settings() {
|
|
340 |
'id' => 'allow_tracking',
|
341 |
'name' => __( 'Allow Usage Tracking?', 'easy-digital-downloads' ),
|
342 |
'desc' => sprintf(
|
343 |
-
__( 'Allow Easy Digital Downloads to anonymously track how this plugin is used and help us make the plugin better. Opt-in to tracking and our newsletter and immediately be emailed a discount to the EDD shop, valid towards the <a href="%s" target="_blank">purchase of extensions</a>. No sensitive data is tracked.', 'easy-digital-downloads' ),
|
344 |
'https://easydigitaldownloads.com/downloads/?utm_source=' . substr( md5( get_bloginfo( 'name' ) ), 0, 10 ) . '&utm_medium=admin&utm_term=settings&utm_campaign=EDDUsageTracking'
|
345 |
),
|
346 |
'type' => 'checkbox',
|
347 |
),
|
348 |
),
|
349 |
'currency' => array(
|
|
|
|
|
|
|
|
|
|
|
|
|
350 |
'currency' => array(
|
351 |
'id' => 'currency',
|
352 |
'name' => __( 'Currency', 'easy-digital-downloads' ),
|
@@ -368,7 +361,7 @@ function edd_get_registered_settings() {
|
|
368 |
'thousands_separator' => array(
|
369 |
'id' => 'thousands_separator',
|
370 |
'name' => __( 'Thousands Separator', 'easy-digital-downloads' ),
|
371 |
-
'desc' => __( 'The symbol (usually , or .) to separate thousands
|
372 |
'type' => 'text',
|
373 |
'size' => 'small',
|
374 |
'std' => ',',
|
@@ -376,7 +369,7 @@ function edd_get_registered_settings() {
|
|
376 |
'decimal_separator' => array(
|
377 |
'id' => 'decimal_separator',
|
378 |
'name' => __( 'Decimal Separator', 'easy-digital-downloads' ),
|
379 |
-
'desc' => __( 'The symbol (usually , or .) to separate decimal points
|
380 |
'type' => 'text',
|
381 |
'size' => 'small',
|
382 |
'std' => '.',
|
@@ -385,7 +378,7 @@ function edd_get_registered_settings() {
|
|
385 |
'api' => array(
|
386 |
'api_settings' => array(
|
387 |
'id' => 'api_settings',
|
388 |
-
'name' => '<h3>' . __( 'API', 'easy-digital-downloads' ) . '</h3>',
|
389 |
'desc' => '',
|
390 |
'type' => 'header',
|
391 |
'tooltip_title' => __( 'API Settings', 'easy-digital-downloads' ),
|
@@ -409,6 +402,12 @@ function edd_get_registered_settings() {
|
|
409 |
'gateways' => apply_filters('edd_settings_gateways',
|
410 |
array(
|
411 |
'main' => array(
|
|
|
|
|
|
|
|
|
|
|
|
|
412 |
'test_mode' => array(
|
413 |
'id' => 'test_mode',
|
414 |
'name' => __( 'Test Mode', 'easy-digital-downloads' ),
|
@@ -432,7 +431,7 @@ function edd_get_registered_settings() {
|
|
432 |
'accepted_cards' => array(
|
433 |
'id' => 'accepted_cards',
|
434 |
'name' => __( 'Accepted Payment Method Icons', 'easy-digital-downloads' ),
|
435 |
-
'desc' => __( 'Display icons for the selected payment methods
|
436 |
'type' => 'payment_icons',
|
437 |
'options' => apply_filters('edd_accepted_payment_icons', array(
|
438 |
'mastercard' => 'Mastercard',
|
@@ -450,6 +449,11 @@ function edd_get_registered_settings() {
|
|
450 |
'emails' => apply_filters('edd_settings_emails',
|
451 |
array(
|
452 |
'main' => array(
|
|
|
|
|
|
|
|
|
|
|
453 |
'email_template' => array(
|
454 |
'id' => 'email_template',
|
455 |
'name' => __( 'Email Template', 'easy-digital-downloads' ),
|
@@ -463,6 +467,19 @@ function edd_get_registered_settings() {
|
|
463 |
'desc' => __( 'Upload or choose a logo to be displayed at the top of the purchase receipt emails. Displayed on HTML emails only.', 'easy-digital-downloads' ),
|
464 |
'type' => 'upload',
|
465 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
466 |
'from_name' => array(
|
467 |
'id' => 'from_name',
|
468 |
'name' => __( 'From Name', 'easy-digital-downloads' ),
|
@@ -474,34 +491,20 @@ function edd_get_registered_settings() {
|
|
474 |
'id' => 'from_email',
|
475 |
'name' => __( 'From Email', 'easy-digital-downloads' ),
|
476 |
'desc' => __( 'Email to send purchase receipts from. This will act as the "from" and "reply-to" address.', 'easy-digital-downloads' ),
|
477 |
-
'type' => '
|
478 |
'std' => get_bloginfo( 'admin_email' ),
|
479 |
),
|
480 |
-
'email_settings' => array(
|
481 |
-
'id' => 'email_settings',
|
482 |
-
'name' => '',
|
483 |
-
'desc' => '',
|
484 |
-
'type' => 'hook',
|
485 |
-
),
|
486 |
-
),
|
487 |
-
'purchase_receipts' => array(
|
488 |
-
'purchase_receipt_email_settings' => array(
|
489 |
-
'id' => 'purchase_receipt_email_settings',
|
490 |
-
'name' => '',
|
491 |
-
'desc' => '',
|
492 |
-
'type' => 'hook',
|
493 |
-
),
|
494 |
'purchase_subject' => array(
|
495 |
'id' => 'purchase_subject',
|
496 |
'name' => __( 'Purchase Email Subject', 'easy-digital-downloads' ),
|
497 |
-
'desc' => __( 'Enter the subject line for the purchase receipt email
|
498 |
'type' => 'text',
|
499 |
'std' => __( 'Purchase Receipt', 'easy-digital-downloads' ),
|
500 |
),
|
501 |
'purchase_heading' => array(
|
502 |
'id' => 'purchase_heading',
|
503 |
'name' => __( 'Purchase Email Heading', 'easy-digital-downloads' ),
|
504 |
-
'desc' => __( 'Enter the heading for the purchase receipt email
|
505 |
'type' => 'text',
|
506 |
'std' => __( 'Purchase Receipt', 'easy-digital-downloads' ),
|
507 |
),
|
@@ -514,10 +517,15 @@ function edd_get_registered_settings() {
|
|
514 |
),
|
515 |
),
|
516 |
'sale_notifications' => array(
|
|
|
|
|
|
|
|
|
|
|
517 |
'sale_notification_subject' => array(
|
518 |
'id' => 'sale_notification_subject',
|
519 |
'name' => __( 'Sale Notification Subject', 'easy-digital-downloads' ),
|
520 |
-
'desc' => __( 'Enter the subject line for the sale notification email
|
521 |
'type' => 'text',
|
522 |
'std' => 'New download purchase - Order #{payment_id}',
|
523 |
),
|
@@ -531,7 +539,7 @@ function edd_get_registered_settings() {
|
|
531 |
'admin_notice_emails' => array(
|
532 |
'id' => 'admin_notice_emails',
|
533 |
'name' => __( 'Sale Notification Emails', 'easy-digital-downloads' ),
|
534 |
-
'desc' => __( 'Enter the email address(es) that should receive a notification anytime a sale is made, one per line
|
535 |
'type' => 'textarea',
|
536 |
'std' => get_bloginfo( 'admin_email' ),
|
537 |
),
|
@@ -548,13 +556,18 @@ function edd_get_registered_settings() {
|
|
548 |
'styles' => apply_filters('edd_settings_styles',
|
549 |
array(
|
550 |
'main' => array(
|
|
|
|
|
|
|
|
|
|
|
551 |
'disable_styles' => array(
|
552 |
'id' => 'disable_styles',
|
553 |
'name' => __( 'Disable Styles', 'easy-digital-downloads' ),
|
554 |
'desc' => __( 'Check this to disable all included styling of buttons, checkout fields, and all other elements.', 'easy-digital-downloads' ),
|
555 |
'type' => 'checkbox',
|
556 |
'tooltip_title' => __( 'Disabling Styles', 'easy-digital-downloads' ),
|
557 |
-
'tooltip_desc' => __(
|
558 |
),
|
559 |
'button_header' => array(
|
560 |
'id' => 'button_header',
|
@@ -583,6 +596,11 @@ function edd_get_registered_settings() {
|
|
583 |
'taxes' => apply_filters('edd_settings_taxes',
|
584 |
array(
|
585 |
'main' => array(
|
|
|
|
|
|
|
|
|
|
|
586 |
'tax_help' => array(
|
587 |
'id' => 'tax_help',
|
588 |
'name' => __( 'Need help?', 'easy-digital-downloads' ),
|
@@ -658,6 +676,11 @@ function edd_get_registered_settings() {
|
|
658 |
'misc' => apply_filters('edd_settings_misc',
|
659 |
array(
|
660 |
'main' => array(
|
|
|
|
|
|
|
|
|
|
|
661 |
'redirect_on_add' => array(
|
662 |
'id' => 'redirect_on_add',
|
663 |
'name' => __( 'Redirect to Checkout', 'easy-digital-downloads' ),
|
@@ -668,14 +691,8 @@ function edd_get_registered_settings() {
|
|
668 |
),
|
669 |
'item_quantities' => array(
|
670 |
'id' => 'item_quantities',
|
671 |
-
'name' => __('
|
672 |
-
'desc' =>
|
673 |
-
'type' => 'checkbox',
|
674 |
-
),
|
675 |
-
'debug_mode' => array(
|
676 |
-
'id' => 'debug_mode',
|
677 |
-
'name' => __( 'Debug Mode', 'easy-digital-downloads' ),
|
678 |
-
'desc' => __( 'Check this box to enable debug mode. When enabled, debug messages will be logged and shown in Downloads → Tools → Debug Log.', 'easy-digital-downloads' ),
|
679 |
'type' => 'checkbox',
|
680 |
),
|
681 |
'uninstall_on_delete' => array(
|
@@ -686,6 +703,11 @@ function edd_get_registered_settings() {
|
|
686 |
),
|
687 |
),
|
688 |
'checkout' => array(
|
|
|
|
|
|
|
|
|
|
|
689 |
'enforce_ssl' => array(
|
690 |
'id' => 'enforce_ssl',
|
691 |
'name' => __( 'Enforce SSL on Checkout', 'easy-digital-downloads' ),
|
@@ -729,6 +751,11 @@ function edd_get_registered_settings() {
|
|
729 |
),
|
730 |
),
|
731 |
'button_text' => array(
|
|
|
|
|
|
|
|
|
|
|
732 |
'checkout_label' => array(
|
733 |
'id' => 'checkout_label',
|
734 |
'name' => __( 'Complete Purchase Text', 'easy-digital-downloads' ),
|
@@ -736,13 +763,6 @@ function edd_get_registered_settings() {
|
|
736 |
'type' => 'text',
|
737 |
'std' => __( 'Purchase', 'easy-digital-downloads' ),
|
738 |
),
|
739 |
-
'free_checkout_label' => array(
|
740 |
-
'id' => 'free_checkout_label',
|
741 |
-
'name' => __( 'Register Text', 'easy-digital-downloads' ),
|
742 |
-
'desc' => __( 'The button label for completing a free purchase.', 'easy-digital-downloads' ),
|
743 |
-
'type' => 'text',
|
744 |
-
'std' => __( 'Free Download', 'easy-digital-downloads' ),
|
745 |
-
),
|
746 |
'add_to_cart_text' => array(
|
747 |
'id' => 'add_to_cart_text',
|
748 |
'name' => __( 'Add to Cart Text', 'easy-digital-downloads' ),
|
@@ -759,6 +779,11 @@ function edd_get_registered_settings() {
|
|
759 |
),
|
760 |
),
|
761 |
'file_downloads' => array(
|
|
|
|
|
|
|
|
|
|
|
762 |
'download_method' => array(
|
763 |
'id' => 'download_method',
|
764 |
'name' => __( 'Download Method', 'easy-digital-downloads' ),
|
@@ -805,6 +830,11 @@ function edd_get_registered_settings() {
|
|
805 |
),
|
806 |
),
|
807 |
'accounting' => array(
|
|
|
|
|
|
|
|
|
|
|
808 |
'enable_skus' => array(
|
809 |
'id' => 'enable_skus',
|
810 |
'name' => __( 'Enable SKU Entry', 'easy-digital-downloads' ),
|
@@ -839,6 +869,11 @@ function edd_get_registered_settings() {
|
|
839 |
),
|
840 |
),
|
841 |
'site_terms' => array(
|
|
|
|
|
|
|
|
|
|
|
842 |
'show_agree_to_terms' => array(
|
843 |
'id' => 'show_agree_to_terms',
|
844 |
'name' => __( 'Agree to Terms', 'easy-digital-downloads' ),
|
@@ -881,9 +916,9 @@ function edd_get_registered_settings() {
|
|
881 |
* @since 1.0.8.2
|
882 |
*
|
883 |
* @param array $input The value inputted in the field
|
884 |
-
* @global
|
885 |
*
|
886 |
-
* @return string $input
|
887 |
*/
|
888 |
function edd_settings_sanitize( $input = array() ) {
|
889 |
global $edd_options;
|
@@ -902,12 +937,6 @@ function edd_settings_sanitize( $input = array() ) {
|
|
902 |
$tab = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general';
|
903 |
$section = isset( $referrer['section'] ) ? $referrer['section'] : 'main';
|
904 |
|
905 |
-
if ( ! empty( $_POST['edd_section_override'] ) ) {
|
906 |
-
$section = sanitize_text_field( $_POST['edd_section_override'] );
|
907 |
-
}
|
908 |
-
|
909 |
-
$setting_types = edd_get_registered_settings_types( $tab, $section );
|
910 |
-
|
911 |
// Run a general sanitization for the tab for special fields (like taxes)
|
912 |
$input = apply_filters( 'edd_settings_' . $tab . '_sanitize', $input );
|
913 |
|
@@ -950,7 +979,7 @@ function edd_settings_sanitize( $input = array() ) {
|
|
950 |
}
|
951 |
break;
|
952 |
default:
|
953 |
-
if ( array_key_exists( $key, $input ) && empty( $input[ $key ] )
|
954 |
unset( $output[ $key ] );
|
955 |
}
|
956 |
break;
|
@@ -975,23 +1004,15 @@ function edd_settings_sanitize( $input = array() ) {
|
|
975 |
* in a much cleaner set of logic in edd_settings_sanitize
|
976 |
*
|
977 |
* @since 2.6.5
|
978 |
-
* @since 2.8 - Added the ability to filter setting types by tab and section
|
979 |
-
*
|
980 |
-
* @param $filtered_tab bool|string A tab to filter setting types by.
|
981 |
-
* @param $filtered_section bool|string A section to filter setting types by.
|
982 |
* @return array Key is the setting ID, value is the type of setting it is registered as
|
983 |
*/
|
984 |
-
function edd_get_registered_settings_types(
|
985 |
$settings = edd_get_registered_settings();
|
986 |
$setting_types = array();
|
987 |
|
988 |
-
foreach ( $settings as $
|
989 |
|
990 |
-
|
991 |
-
continue;
|
992 |
-
}
|
993 |
-
|
994 |
-
foreach ( $tab as $section_id => $section_or_setting ) {
|
995 |
|
996 |
// See if we have a setting registered at the tab level for backwards compatibility
|
997 |
if ( is_array( $section_or_setting ) && array_key_exists( 'type', $section_or_setting ) ) {
|
@@ -999,10 +1020,6 @@ function edd_get_registered_settings_types( $filtered_tab = false, $filtered_sec
|
|
999 |
continue;
|
1000 |
}
|
1001 |
|
1002 |
-
if ( false !== $filtered_section && $filtered_section !== $section_id ) {
|
1003 |
-
continue;
|
1004 |
-
}
|
1005 |
-
|
1006 |
foreach ( $section_or_setting as $section => $section_settings ) {
|
1007 |
$setting_types[ $section_settings['id'] ] = $section_settings['type'];
|
1008 |
}
|
@@ -1018,7 +1035,7 @@ function edd_get_registered_settings_types( $filtered_tab = false, $filtered_sec
|
|
1018 |
*
|
1019 |
* @since 2.5
|
1020 |
* @param array $input The value inputted in the field
|
1021 |
-
* @return string $input
|
1022 |
*/
|
1023 |
function edd_settings_sanitize_misc_file_downloads( $input ) {
|
1024 |
|
@@ -1040,7 +1057,7 @@ add_filter( 'edd_settings_misc-file_downloads_sanitize', 'edd_settings_sanitize_
|
|
1040 |
*
|
1041 |
* @since 2.5
|
1042 |
* @param array $input The value inputted in the field
|
1043 |
-
* @return string $input
|
1044 |
*/
|
1045 |
function edd_settings_sanitize_misc_accounting( $input ) {
|
1046 |
|
@@ -1067,7 +1084,7 @@ add_filter( 'edd_settings_misc-accounting_sanitize', 'edd_settings_sanitize_misc
|
|
1067 |
*
|
1068 |
* @since 1.6
|
1069 |
* @param array $input The value inputted in the field
|
1070 |
-
* @return string $input
|
1071 |
*/
|
1072 |
function edd_settings_sanitize_taxes( $input ) {
|
1073 |
|
@@ -1094,7 +1111,7 @@ add_filter( 'edd_settings_taxes_sanitize', 'edd_settings_sanitize_taxes' );
|
|
1094 |
*
|
1095 |
* @since 2.7
|
1096 |
* @param array $input The value inputted in the field
|
1097 |
-
* @return string $input
|
1098 |
*/
|
1099 |
function edd_settings_sanitize_gateways( $input ) {
|
1100 |
|
@@ -1132,7 +1149,7 @@ add_filter( 'edd_settings_gateways_sanitize', 'edd_settings_sanitize_gateways' )
|
|
1132 |
*
|
1133 |
* @since 1.8
|
1134 |
* @param array $input The field value
|
1135 |
-
* @return string $input
|
1136 |
*/
|
1137 |
function edd_sanitize_text_field( $input ) {
|
1138 |
$tags = array(
|
@@ -1148,6 +1165,7 @@ function edd_sanitize_text_field( $input ) {
|
|
1148 |
'href' => array(),
|
1149 |
'title' => array(),
|
1150 |
'class' => array(),
|
|
|
1151 |
'id' => array(),
|
1152 |
),
|
1153 |
'strong' => array(),
|
@@ -1265,35 +1283,35 @@ function edd_get_registered_settings_sections() {
|
|
1265 |
|
1266 |
$sections = array(
|
1267 |
'general' => apply_filters( 'edd_settings_sections_general', array(
|
1268 |
-
'main' => __( 'General', 'easy-digital-downloads' ),
|
1269 |
-
'currency' => __( 'Currency', 'easy-digital-downloads' ),
|
1270 |
-
'api' => __( 'API', 'easy-digital-downloads' ),
|
1271 |
) ),
|
1272 |
'gateways' => apply_filters( 'edd_settings_sections_gateways', array(
|
1273 |
-
'main' => __( '
|
1274 |
'paypal' => __( 'PayPal Standard', 'easy-digital-downloads' ),
|
1275 |
) ),
|
1276 |
'emails' => apply_filters( 'edd_settings_sections_emails', array(
|
1277 |
-
'main' => __( '
|
1278 |
'purchase_receipts' => __( 'Purchase Receipts', 'easy-digital-downloads' ),
|
1279 |
'sale_notifications' => __( 'New Sale Notifications', 'easy-digital-downloads' ),
|
1280 |
) ),
|
1281 |
'styles' => apply_filters( 'edd_settings_sections_styles', array(
|
1282 |
-
'main' => __( '
|
1283 |
) ),
|
1284 |
'taxes' => apply_filters( 'edd_settings_sections_taxes', array(
|
1285 |
-
'main' => __( '
|
1286 |
) ),
|
1287 |
'extensions' => apply_filters( 'edd_settings_sections_extensions', array(
|
1288 |
'main' => __( 'Main', 'easy-digital-downloads' )
|
1289 |
) ),
|
1290 |
'licenses' => apply_filters( 'edd_settings_sections_licenses', array() ),
|
1291 |
'misc' => apply_filters( 'edd_settings_sections_misc', array(
|
1292 |
-
'main' => __( '
|
1293 |
-
'checkout' => __( 'Checkout', 'easy-digital-downloads' ),
|
1294 |
'button_text' => __( 'Button Text', 'easy-digital-downloads' ),
|
1295 |
'file_downloads' => __( 'File Downloads', 'easy-digital-downloads' ),
|
1296 |
-
'accounting' => __( 'Accounting', 'easy-digital-downloads' ),
|
1297 |
'site_terms' => __( 'Terms of Agreement', 'easy-digital-downloads' ),
|
1298 |
) ),
|
1299 |
);
|
@@ -1424,7 +1442,7 @@ function edd_payment_icons_callback( $args ) {
|
|
1424 |
$enabled = NULL;
|
1425 |
}
|
1426 |
|
1427 |
-
$html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']"
|
1428 |
|
1429 |
$html .= '<input name="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" class="' . $class . '" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/> ';
|
1430 |
|
@@ -1530,13 +1548,6 @@ function edd_gateways_callback( $args ) {
|
|
1530 |
$html .= '<input name="edd_settings[' . esc_attr( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" class="' . $class . '" type="checkbox" value="1" ' . checked('1', $enabled, false) . '/> ';
|
1531 |
$html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']">' . esc_html( $option['admin_label'] ) . '</label><br/>';
|
1532 |
endforeach;
|
1533 |
-
$url_args = array(
|
1534 |
-
'utm_source' => 'settings',
|
1535 |
-
'utm_medium' => 'gateways',
|
1536 |
-
'utm_campaign' => 'admin',
|
1537 |
-
);
|
1538 |
-
$url = esc_url( add_query_arg( $url_args, 'https://easydigitaldownloads.com/downloads/category/extensions/gateways/' ) );
|
1539 |
-
$html .= '<p class="description">' . sprintf( __( 'Don\'t see what you need? More Payment Gateway options are available <a href="%s">here</a>.', 'easy-digital-downloads' ), $url ) . '</p>';
|
1540 |
|
1541 |
echo apply_filters( 'edd_after_setting_output', $html, $args );
|
1542 |
}
|
@@ -1611,46 +1622,6 @@ function edd_text_callback( $args ) {
|
|
1611 |
echo apply_filters( 'edd_after_setting_output', $html, $args );
|
1612 |
}
|
1613 |
|
1614 |
-
/**
|
1615 |
-
* Email Callback
|
1616 |
-
*
|
1617 |
-
* Renders email fields.
|
1618 |
-
*
|
1619 |
-
* @since 2.8
|
1620 |
-
* @param array $args Arguments passed by the setting
|
1621 |
-
*
|
1622 |
-
* @return void
|
1623 |
-
*/
|
1624 |
-
function edd_email_callback( $args ) {
|
1625 |
-
$edd_option = edd_get_option( $args['id'] );
|
1626 |
-
|
1627 |
-
if ( $edd_option ) {
|
1628 |
-
$value = $edd_option;
|
1629 |
-
} elseif( ! empty( $args['allow_blank'] ) && empty( $edd_option ) ) {
|
1630 |
-
$value = '';
|
1631 |
-
} else {
|
1632 |
-
$value = isset( $args['std'] ) ? $args['std'] : '';
|
1633 |
-
}
|
1634 |
-
|
1635 |
-
if ( isset( $args['faux'] ) && true === $args['faux'] ) {
|
1636 |
-
$args['readonly'] = true;
|
1637 |
-
$value = isset( $args['std'] ) ? $args['std'] : '';
|
1638 |
-
$name = '';
|
1639 |
-
} else {
|
1640 |
-
$name = 'name="edd_settings[' . esc_attr( $args['id'] ) . ']"';
|
1641 |
-
}
|
1642 |
-
|
1643 |
-
$class = edd_sanitize_html_class( $args['field_class'] );
|
1644 |
-
|
1645 |
-
$disabled = ! empty( $args['disabled'] ) ? ' disabled="disabled"' : '';
|
1646 |
-
$readonly = $args['readonly'] === true ? ' readonly="readonly"' : '';
|
1647 |
-
$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
|
1648 |
-
$html = '<input type="email" class="' . $class . ' ' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" ' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"' . $readonly . $disabled . ' placeholder="' . esc_attr( $args['placeholder'] ) . '"/>';
|
1649 |
-
$html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
|
1650 |
-
|
1651 |
-
echo apply_filters( 'edd_after_setting_output', $html, $args );
|
1652 |
-
}
|
1653 |
-
|
1654 |
/**
|
1655 |
* Number Callback
|
1656 |
*
|
@@ -1778,14 +1749,7 @@ function edd_select_callback($args) {
|
|
1778 |
if ( $edd_option ) {
|
1779 |
$value = $edd_option;
|
1780 |
} else {
|
1781 |
-
|
1782 |
-
// Properly set default fallback if the Select Field allows Multiple values
|
1783 |
-
if ( empty( $args['multiple'] ) ) {
|
1784 |
-
$value = isset( $args['std'] ) ? $args['std'] : '';
|
1785 |
-
} else {
|
1786 |
-
$value = ! empty( $args['std'] ) ? $args['std'] : array();
|
1787 |
-
}
|
1788 |
-
|
1789 |
}
|
1790 |
|
1791 |
if ( isset( $args['placeholder'] ) ) {
|
@@ -1797,25 +1761,14 @@ function edd_select_callback($args) {
|
|
1797 |
$class = edd_sanitize_html_class( $args['field_class'] );
|
1798 |
|
1799 |
if ( isset( $args['chosen'] ) ) {
|
1800 |
-
$class .= ' edd-
|
1801 |
}
|
1802 |
|
1803 |
-
|
1804 |
-
$name_attr = 'edd_settings[' . esc_attr( $args['id'] ) . ']';
|
1805 |
-
$name_attr = ( $args['multiple'] ) ? $name_attr . '[]' : $name_attr;
|
1806 |
-
|
1807 |
-
$html = '<select id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="' . $name_attr . '" class="' . $class . '" data-placeholder="' . esc_html( $placeholder ) . '" ' . ( ( $args['multiple'] ) ? 'multiple="true"' : '' ) . '>';
|
1808 |
|
1809 |
foreach ( $args['options'] as $option => $name ) {
|
1810 |
-
|
1811 |
-
|
1812 |
-
$selected = selected( $option, $value, false );
|
1813 |
-
$html .= '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( $name ) . '</option>';
|
1814 |
-
} else {
|
1815 |
-
// Do an in_array() check to output selected attribute for Multiple
|
1816 |
-
$html .= '<option value="' . esc_attr( $option ) . '" ' . ( ( in_array( $option, $value ) ) ? 'selected="true"' : '' ) . '>' . esc_html( $name ) . '</option>';
|
1817 |
-
}
|
1818 |
-
|
1819 |
}
|
1820 |
|
1821 |
$html .= '</select>';
|
85 |
* @return boolean True if removed, false if not.
|
86 |
*/
|
87 |
function edd_delete_option( $key = '' ) {
|
|
|
88 |
|
89 |
// If no key, exit
|
90 |
if ( empty( $key ) ){
|
101 |
|
102 |
}
|
103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
$did_update = update_option( 'edd_settings', $options );
|
105 |
|
106 |
// If it updated, let's update the global variable
|
192 |
'max' => null,
|
193 |
'step' => null,
|
194 |
'chosen' => null,
|
|
|
195 |
'placeholder' => null,
|
196 |
'allow_blank' => true,
|
197 |
'readonly' => false,
|
232 |
* 'Whitelisted' EDD settings, filters are provided for each settings
|
233 |
* section to allow extensions and other plugins to add their own settings
|
234 |
*/
|
|
|
|
|
|
|
235 |
$edd_settings = array(
|
236 |
/** General Settings */
|
237 |
'general' => apply_filters( 'edd_settings_general',
|
239 |
'main' => array(
|
240 |
'page_settings' => array(
|
241 |
'id' => 'page_settings',
|
242 |
+
'name' => '<h3>' . __( 'Page Settings', 'easy-digital-downloads' ) . '</h3>',
|
243 |
'desc' => '',
|
244 |
'type' => 'header',
|
245 |
'tooltip_title' => __( 'Page Settings', 'easy-digital-downloads' ),
|
285 |
'id' => 'login_redirect_page',
|
286 |
'name' => __( 'Login Redirect Page', 'easy-digital-downloads' ),
|
287 |
'desc' => sprintf(
|
288 |
+
__( 'This is the page where buyers will be redirected by default once they log in. The [edd_login redirect="%s"] shortcode with the redirect attribute can override this setting.', 'easy-digital-downloads' ), trailingslashit( home_url() )
|
289 |
),
|
290 |
'type' => 'select',
|
291 |
'options' => edd_get_pages(),
|
316 |
'type' => 'shop_states',
|
317 |
'chosen' => true,
|
318 |
'placeholder' => __( 'Select a state', 'easy-digital-downloads' ),
|
|
|
319 |
),
|
320 |
'tracking_settings' => array(
|
321 |
'id' => 'tracking_settings',
|
322 |
+
'name' => '<h3>' . __( 'Tracking Settings', 'easy-digital-downloads' ) . '</h3>',
|
323 |
'desc' => '',
|
324 |
'type' => 'header',
|
325 |
),
|
327 |
'id' => 'allow_tracking',
|
328 |
'name' => __( 'Allow Usage Tracking?', 'easy-digital-downloads' ),
|
329 |
'desc' => sprintf(
|
330 |
+
__( 'Allow Easy Digital Downloads to anonymously track how this plugin is used and help us make the plugin better. Opt-in to tracking and our newsletter and immediately be emailed a 20% discount to the EDD shop, valid towards the <a href="%s" target="_blank">purchase of extensions</a>. No sensitive data is tracked.', 'easy-digital-downloads' ),
|
331 |
'https://easydigitaldownloads.com/downloads/?utm_source=' . substr( md5( get_bloginfo( 'name' ) ), 0, 10 ) . '&utm_medium=admin&utm_term=settings&utm_campaign=EDDUsageTracking'
|
332 |
),
|
333 |
'type' => 'checkbox',
|
334 |
),
|
335 |
),
|
336 |
'currency' => array(
|
337 |
+
'currency_settings' => array(
|
338 |
+
'id' => 'currency_settings',
|
339 |
+
'name' => '<h3>' . __( 'Currency Settings', 'easy-digital-downloads' ) . '</h3>',
|
340 |
+
'desc' => '',
|
341 |
+
'type' => 'header',
|
342 |
+
),
|
343 |
'currency' => array(
|
344 |
'id' => 'currency',
|
345 |
'name' => __( 'Currency', 'easy-digital-downloads' ),
|
361 |
'thousands_separator' => array(
|
362 |
'id' => 'thousands_separator',
|
363 |
'name' => __( 'Thousands Separator', 'easy-digital-downloads' ),
|
364 |
+
'desc' => __( 'The symbol (usually , or .) to separate thousands', 'easy-digital-downloads' ),
|
365 |
'type' => 'text',
|
366 |
'size' => 'small',
|
367 |
'std' => ',',
|
369 |
'decimal_separator' => array(
|
370 |
'id' => 'decimal_separator',
|
371 |
'name' => __( 'Decimal Separator', 'easy-digital-downloads' ),
|
372 |
+
'desc' => __( 'The symbol (usually , or .) to separate decimal points', 'easy-digital-downloads' ),
|
373 |
'type' => 'text',
|
374 |
'size' => 'small',
|
375 |
'std' => '.',
|
378 |
'api' => array(
|
379 |
'api_settings' => array(
|
380 |
'id' => 'api_settings',
|
381 |
+
'name' => '<h3>' . __( 'API Settings', 'easy-digital-downloads' ) . '</h3>',
|
382 |
'desc' => '',
|
383 |
'type' => 'header',
|
384 |
'tooltip_title' => __( 'API Settings', 'easy-digital-downloads' ),
|
402 |
'gateways' => apply_filters('edd_settings_gateways',
|
403 |
array(
|
404 |
'main' => array(
|
405 |
+
'gateway_settings' => array(
|
406 |
+
'id' => 'api_header',
|
407 |
+
'name' => '<h3>' . __( 'Gateway Settings', 'easy-digital-downloads' ) . '</h3>',
|
408 |
+
'desc' => '',
|
409 |
+
'type' => 'header',
|
410 |
+
),
|
411 |
'test_mode' => array(
|
412 |
'id' => 'test_mode',
|
413 |
'name' => __( 'Test Mode', 'easy-digital-downloads' ),
|
431 |
'accepted_cards' => array(
|
432 |
'id' => 'accepted_cards',
|
433 |
'name' => __( 'Accepted Payment Method Icons', 'easy-digital-downloads' ),
|
434 |
+
'desc' => __( 'Display icons for the selected payment methods', 'easy-digital-downloads' ) . '<br/>' . __( 'You will also need to configure your gateway settings if you are accepting credit cards', 'easy-digital-downloads' ),
|
435 |
'type' => 'payment_icons',
|
436 |
'options' => apply_filters('edd_accepted_payment_icons', array(
|
437 |
'mastercard' => 'Mastercard',
|
449 |
'emails' => apply_filters('edd_settings_emails',
|
450 |
array(
|
451 |
'main' => array(
|
452 |
+
'email_settings_header' => array(
|
453 |
+
'id' => 'email_settings_header',
|
454 |
+
'name' => '<h3>' . __( 'Email Settings', 'easy-digital-downloads' ) . '</h3>',
|
455 |
+
'type' => 'header',
|
456 |
+
),
|
457 |
'email_template' => array(
|
458 |
'id' => 'email_template',
|
459 |
'name' => __( 'Email Template', 'easy-digital-downloads' ),
|
467 |
'desc' => __( 'Upload or choose a logo to be displayed at the top of the purchase receipt emails. Displayed on HTML emails only.', 'easy-digital-downloads' ),
|
468 |
'type' => 'upload',
|
469 |
),
|
470 |
+
'email_settings' => array(
|
471 |
+
'id' => 'email_settings',
|
472 |
+
'name' => '',
|
473 |
+
'desc' => '',
|
474 |
+
'type' => 'hook',
|
475 |
+
),
|
476 |
+
),
|
477 |
+
'purchase_receipts' => array(
|
478 |
+
'purchase_receipt_settings' => array(
|
479 |
+
'id' => 'purchase_receipt_settings',
|
480 |
+
'name' => '<h3>' . __( 'Purchase Receipts', 'easy-digital-downloads' ) . '</h3>',
|
481 |
+
'type' => 'header',
|
482 |
+
),
|
483 |
'from_name' => array(
|
484 |
'id' => 'from_name',
|
485 |
'name' => __( 'From Name', 'easy-digital-downloads' ),
|
491 |
'id' => 'from_email',
|
492 |
'name' => __( 'From Email', 'easy-digital-downloads' ),
|
493 |
'desc' => __( 'Email to send purchase receipts from. This will act as the "from" and "reply-to" address.', 'easy-digital-downloads' ),
|
494 |
+
'type' => 'text',
|
495 |
'std' => get_bloginfo( 'admin_email' ),
|
496 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
497 |
'purchase_subject' => array(
|
498 |
'id' => 'purchase_subject',
|
499 |
'name' => __( 'Purchase Email Subject', 'easy-digital-downloads' ),
|
500 |
+
'desc' => __( 'Enter the subject line for the purchase receipt email', 'easy-digital-downloads' ),
|
501 |
'type' => 'text',
|
502 |
'std' => __( 'Purchase Receipt', 'easy-digital-downloads' ),
|
503 |
),
|
504 |
'purchase_heading' => array(
|
505 |
'id' => 'purchase_heading',
|
506 |
'name' => __( 'Purchase Email Heading', 'easy-digital-downloads' ),
|
507 |
+
'desc' => __( 'Enter the heading for the purchase receipt email', 'easy-digital-downloads' ),
|
508 |
'type' => 'text',
|
509 |
'std' => __( 'Purchase Receipt', 'easy-digital-downloads' ),
|
510 |
),
|
517 |
),
|
518 |
),
|
519 |
'sale_notifications' => array(
|
520 |
+
'sale_notification_settings' => array(
|
521 |
+
'id' => 'sale_notification_settings',
|
522 |
+
'name' => '<h3>' . __( 'Sale Notifications', 'easy-digital-downloads' ) . '</h3>',
|
523 |
+
'type' => 'header',
|
524 |
+
),
|
525 |
'sale_notification_subject' => array(
|
526 |
'id' => 'sale_notification_subject',
|
527 |
'name' => __( 'Sale Notification Subject', 'easy-digital-downloads' ),
|
528 |
+
'desc' => __( 'Enter the subject line for the sale notification email', 'easy-digital-downloads' ),
|
529 |
'type' => 'text',
|
530 |
'std' => 'New download purchase - Order #{payment_id}',
|
531 |
),
|
539 |
'admin_notice_emails' => array(
|
540 |
'id' => 'admin_notice_emails',
|
541 |
'name' => __( 'Sale Notification Emails', 'easy-digital-downloads' ),
|
542 |
+
'desc' => __( 'Enter the email address(es) that should receive a notification anytime a sale is made, one per line', 'easy-digital-downloads' ),
|
543 |
'type' => 'textarea',
|
544 |
'std' => get_bloginfo( 'admin_email' ),
|
545 |
),
|
556 |
'styles' => apply_filters('edd_settings_styles',
|
557 |
array(
|
558 |
'main' => array(
|
559 |
+
'style_settings' => array(
|
560 |
+
'id' => 'style_settings',
|
561 |
+
'name' => '<h3>' . __( 'Style Settings', 'easy-digital-downloads' ) . '</h3>',
|
562 |
+
'type' => 'header',
|
563 |
+
),
|
564 |
'disable_styles' => array(
|
565 |
'id' => 'disable_styles',
|
566 |
'name' => __( 'Disable Styles', 'easy-digital-downloads' ),
|
567 |
'desc' => __( 'Check this to disable all included styling of buttons, checkout fields, and all other elements.', 'easy-digital-downloads' ),
|
568 |
'type' => 'checkbox',
|
569 |
'tooltip_title' => __( 'Disabling Styles', 'easy-digital-downloads' ),
|
570 |
+
'tooltip_desc' => __( 'If your theme has a complete custom CSS file for Easy Digital Downloads, you may wish to disable our default styles. This is not recommended unless your sure your theme has a complete custom CSS.', 'easy-digital-downloads' ),
|
571 |
),
|
572 |
'button_header' => array(
|
573 |
'id' => 'button_header',
|
596 |
'taxes' => apply_filters('edd_settings_taxes',
|
597 |
array(
|
598 |
'main' => array(
|
599 |
+
'tax_settings' => array(
|
600 |
+
'id' => 'tax_settings',
|
601 |
+
'name' => '<h3>' . __( 'Tax Settings', 'easy-digital-downloads' ) . '</h3>',
|
602 |
+
'type' => 'header',
|
603 |
+
),
|
604 |
'tax_help' => array(
|
605 |
'id' => 'tax_help',
|
606 |
'name' => __( 'Need help?', 'easy-digital-downloads' ),
|
676 |
'misc' => apply_filters('edd_settings_misc',
|
677 |
array(
|
678 |
'main' => array(
|
679 |
+
'misc_settings' => array(
|
680 |
+
'id' => 'misc_settings',
|
681 |
+
'name' => '<h3>' . __( 'Misc Settings', 'easy-digital-downloads' ) . '</h3>',
|
682 |
+
'type' => 'header',
|
683 |
+
),
|
684 |
'redirect_on_add' => array(
|
685 |
'id' => 'redirect_on_add',
|
686 |
'name' => __( 'Redirect to Checkout', 'easy-digital-downloads' ),
|
691 |
),
|
692 |
'item_quantities' => array(
|
693 |
'id' => 'item_quantities',
|
694 |
+
'name' => __('Item Quantities','easy-digital-downloads' ),
|
695 |
+
'desc' => __('Allow item quantities to be changed.','easy-digital-downloads' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
696 |
'type' => 'checkbox',
|
697 |
),
|
698 |
'uninstall_on_delete' => array(
|
703 |
),
|
704 |
),
|
705 |
'checkout' => array(
|
706 |
+
'checkout_settings' => array(
|
707 |
+
'id' => 'checkout_settings',
|
708 |
+
'name' => '<h3>' . __( 'Checkout Settings', 'easy-digital-downloads' ) . '</h3>',
|
709 |
+
'type' => 'header',
|
710 |
+
),
|
711 |
'enforce_ssl' => array(
|
712 |
'id' => 'enforce_ssl',
|
713 |
'name' => __( 'Enforce SSL on Checkout', 'easy-digital-downloads' ),
|
751 |
),
|
752 |
),
|
753 |
'button_text' => array(
|
754 |
+
'button_settings' => array(
|
755 |
+
'id' => 'button_settings',
|
756 |
+
'name' => '<h3>' . __( 'Button Text', 'easy-digital-downloads' ) . '</h3>',
|
757 |
+
'type' => 'header',
|
758 |
+
),
|
759 |
'checkout_label' => array(
|
760 |
'id' => 'checkout_label',
|
761 |
'name' => __( 'Complete Purchase Text', 'easy-digital-downloads' ),
|
763 |
'type' => 'text',
|
764 |
'std' => __( 'Purchase', 'easy-digital-downloads' ),
|
765 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
766 |
'add_to_cart_text' => array(
|
767 |
'id' => 'add_to_cart_text',
|
768 |
'name' => __( 'Add to Cart Text', 'easy-digital-downloads' ),
|
779 |
),
|
780 |
),
|
781 |
'file_downloads' => array(
|
782 |
+
'file_settings' => array(
|
783 |
+
'id' => 'file_settings',
|
784 |
+
'name' => '<h3>' . __( 'File Download Settings', 'easy-digital-downloads' ) . '</h3>',
|
785 |
+
'type' => 'header',
|
786 |
+
),
|
787 |
'download_method' => array(
|
788 |
'id' => 'download_method',
|
789 |
'name' => __( 'Download Method', 'easy-digital-downloads' ),
|
830 |
),
|
831 |
),
|
832 |
'accounting' => array(
|
833 |
+
'accounting_settings' => array(
|
834 |
+
'id' => 'accounting_settings',
|
835 |
+
'name' => '<h3>' . __( 'Accounting Settings', 'easy-digital-downloads' ) . '</h3>',
|
836 |
+
'type' => 'header',
|
837 |
+
),
|
838 |
'enable_skus' => array(
|
839 |
'id' => 'enable_skus',
|
840 |
'name' => __( 'Enable SKU Entry', 'easy-digital-downloads' ),
|
869 |
),
|
870 |
),
|
871 |
'site_terms' => array(
|
872 |
+
'terms_settings' => array(
|
873 |
+
'id' => 'terms_settings',
|
874 |
+
'name' => '<h3>' . __( 'Agreement Settings', 'easy-digital-downloads' ) . '</h3>',
|
875 |
+
'type' => 'header',
|
876 |
+
),
|
877 |
'show_agree_to_terms' => array(
|
878 |
'id' => 'show_agree_to_terms',
|
879 |
'name' => __( 'Agree to Terms', 'easy-digital-downloads' ),
|
916 |
* @since 1.0.8.2
|
917 |
*
|
918 |
* @param array $input The value inputted in the field
|
919 |
+
* @global $edd_options Array of all the EDD Options
|
920 |
*
|
921 |
+
* @return string $input Sanitizied value
|
922 |
*/
|
923 |
function edd_settings_sanitize( $input = array() ) {
|
924 |
global $edd_options;
|
937 |
$tab = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general';
|
938 |
$section = isset( $referrer['section'] ) ? $referrer['section'] : 'main';
|
939 |
|
|
|
|
|
|
|
|
|
|
|
|
|
940 |
// Run a general sanitization for the tab for special fields (like taxes)
|
941 |
$input = apply_filters( 'edd_settings_' . $tab . '_sanitize', $input );
|
942 |
|
979 |
}
|
980 |
break;
|
981 |
default:
|
982 |
+
if ( array_key_exists( $key, $input ) && empty( $input[ $key ] ) ) {
|
983 |
unset( $output[ $key ] );
|
984 |
}
|
985 |
break;
|
1004 |
* in a much cleaner set of logic in edd_settings_sanitize
|
1005 |
*
|
1006 |
* @since 2.6.5
|
|
|
|
|
|
|
|
|
1007 |
* @return array Key is the setting ID, value is the type of setting it is registered as
|
1008 |
*/
|
1009 |
+
function edd_get_registered_settings_types() {
|
1010 |
$settings = edd_get_registered_settings();
|
1011 |
$setting_types = array();
|
1012 |
|
1013 |
+
foreach ( $settings as $tab ) {
|
1014 |
|
1015 |
+
foreach ( $tab as $section_or_setting ) {
|
|
|
|
|
|
|
|
|
1016 |
|
1017 |
// See if we have a setting registered at the tab level for backwards compatibility
|
1018 |
if ( is_array( $section_or_setting ) && array_key_exists( 'type', $section_or_setting ) ) {
|
1020 |
continue;
|
1021 |
}
|
1022 |
|
|
|
|
|
|
|
|
|
1023 |
foreach ( $section_or_setting as $section => $section_settings ) {
|
1024 |
$setting_types[ $section_settings['id'] ] = $section_settings['type'];
|
1025 |
}
|
1035 |
*
|
1036 |
* @since 2.5
|
1037 |
* @param array $input The value inputted in the field
|
1038 |
+
* @return string $input Sanitizied value
|
1039 |
*/
|
1040 |
function edd_settings_sanitize_misc_file_downloads( $input ) {
|
1041 |
|
1057 |
*
|
1058 |
* @since 2.5
|
1059 |
* @param array $input The value inputted in the field
|
1060 |
+
* @return string $input Sanitizied value
|
1061 |
*/
|
1062 |
function edd_settings_sanitize_misc_accounting( $input ) {
|
1063 |
|
1084 |
*
|
1085 |
* @since 1.6
|
1086 |
* @param array $input The value inputted in the field
|
1087 |
+
* @return string $input Sanitizied value
|
1088 |
*/
|
1089 |
function edd_settings_sanitize_taxes( $input ) {
|
1090 |
|
1111 |
*
|
1112 |
* @since 2.7
|
1113 |
* @param array $input The value inputted in the field
|
1114 |
+
* @return string $input Sanitizied value
|
1115 |
*/
|
1116 |
function edd_settings_sanitize_gateways( $input ) {
|
1117 |
|
1149 |
*
|
1150 |
* @since 1.8
|
1151 |
* @param array $input The field value
|
1152 |
+
* @return string $input Sanitizied value
|
1153 |
*/
|
1154 |
function edd_sanitize_text_field( $input ) {
|
1155 |
$tags = array(
|
1165 |
'href' => array(),
|
1166 |
'title' => array(),
|
1167 |
'class' => array(),
|
1168 |
+
'title' => array(),
|
1169 |
'id' => array(),
|
1170 |
),
|
1171 |
'strong' => array(),
|
1283 |
|
1284 |
$sections = array(
|
1285 |
'general' => apply_filters( 'edd_settings_sections_general', array(
|
1286 |
+
'main' => __( 'General Settings', 'easy-digital-downloads' ),
|
1287 |
+
'currency' => __( 'Currency Settings', 'easy-digital-downloads' ),
|
1288 |
+
'api' => __( 'API Settings', 'easy-digital-downloads' ),
|
1289 |
) ),
|
1290 |
'gateways' => apply_filters( 'edd_settings_sections_gateways', array(
|
1291 |
+
'main' => __( 'Gateway Settings', 'easy-digital-downloads' ),
|
1292 |
'paypal' => __( 'PayPal Standard', 'easy-digital-downloads' ),
|
1293 |
) ),
|
1294 |
'emails' => apply_filters( 'edd_settings_sections_emails', array(
|
1295 |
+
'main' => __( 'Email Settings', 'easy-digital-downloads' ),
|
1296 |
'purchase_receipts' => __( 'Purchase Receipts', 'easy-digital-downloads' ),
|
1297 |
'sale_notifications' => __( 'New Sale Notifications', 'easy-digital-downloads' ),
|
1298 |
) ),
|
1299 |
'styles' => apply_filters( 'edd_settings_sections_styles', array(
|
1300 |
+
'main' => __( 'Style Settings', 'easy-digital-downloads' ),
|
1301 |
) ),
|
1302 |
'taxes' => apply_filters( 'edd_settings_sections_taxes', array(
|
1303 |
+
'main' => __( 'Tax Settings', 'easy-digital-downloads' ),
|
1304 |
) ),
|
1305 |
'extensions' => apply_filters( 'edd_settings_sections_extensions', array(
|
1306 |
'main' => __( 'Main', 'easy-digital-downloads' )
|
1307 |
) ),
|
1308 |
'licenses' => apply_filters( 'edd_settings_sections_licenses', array() ),
|
1309 |
'misc' => apply_filters( 'edd_settings_sections_misc', array(
|
1310 |
+
'main' => __( 'Misc Settings', 'easy-digital-downloads' ),
|
1311 |
+
'checkout' => __( 'Checkout Settings', 'easy-digital-downloads' ),
|
1312 |
'button_text' => __( 'Button Text', 'easy-digital-downloads' ),
|
1313 |
'file_downloads' => __( 'File Downloads', 'easy-digital-downloads' ),
|
1314 |
+
'accounting' => __( 'Accounting Settings', 'easy-digital-downloads' ),
|
1315 |
'site_terms' => __( 'Terms of Agreement', 'easy-digital-downloads' ),
|
1316 |
) ),
|
1317 |
);
|
1442 |
$enabled = NULL;
|
1443 |
}
|
1444 |
|
1445 |
+
$html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
|
1446 |
|
1447 |
$html .= '<input name="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" class="' . $class . '" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/> ';
|
1448 |
|
1548 |
$html .= '<input name="edd_settings[' . esc_attr( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" class="' . $class . '" type="checkbox" value="1" ' . checked('1', $enabled, false) . '/> ';
|
1549 |
$html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']">' . esc_html( $option['admin_label'] ) . '</label><br/>';
|
1550 |
endforeach;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1551 |
|
1552 |
echo apply_filters( 'edd_after_setting_output', $html, $args );
|
1553 |
}
|
1622 |
echo apply_filters( 'edd_after_setting_output', $html, $args );
|
1623 |
}
|
1624 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1625 |
/**
|
1626 |
* Number Callback
|
1627 |
*
|
1749 |
if ( $edd_option ) {
|
1750 |
$value = $edd_option;
|
1751 |
} else {
|
1752 |
+
$value = isset( $args['std'] ) ? $args['std'] : '';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1753 |
}
|
1754 |
|
1755 |
if ( isset( $args['placeholder'] ) ) {
|
1761 |
$class = edd_sanitize_html_class( $args['field_class'] );
|
1762 |
|
1763 |
if ( isset( $args['chosen'] ) ) {
|
1764 |
+
$class .= ' edd-chosen';
|
1765 |
}
|
1766 |
|
1767 |
+
$html = '<select id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" class="' . $class . '" data-placeholder="' . esc_html( $placeholder ) . '" />';
|
|
|
|
|
|
|
|
|
1768 |
|
1769 |
foreach ( $args['options'] as $option => $name ) {
|
1770 |
+
$selected = selected( $option, $value, false );
|
1771 |
+
$html .= '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( $name ) . '</option>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1772 |
}
|
1773 |
|
1774 |
$html .= '</select>';
|
includes/admin/thickbox.php
CHANGED
@@ -29,7 +29,6 @@ function edd_media_button() {
|
|
29 |
$output = '<a href="#TB_inline?width=640&inlineId=choose-download" class="thickbox button edd-thickbox" style="padding-left: .4em;">' . $img . sprintf( __( 'Insert %s', 'easy-digital-downloads' ), strtolower( edd_get_label_singular() ) ) . '</a>';
|
30 |
|
31 |
}
|
32 |
-
|
33 |
echo $output;
|
34 |
}
|
35 |
add_action( 'media_buttons', 'edd_media_button', 11 );
|
29 |
$output = '<a href="#TB_inline?width=640&inlineId=choose-download" class="thickbox button edd-thickbox" style="padding-left: .4em;">' . $img . sprintf( __( 'Insert %s', 'easy-digital-downloads' ), strtolower( edd_get_label_singular() ) ) . '</a>';
|
30 |
|
31 |
}
|
|
|
32 |
echo $output;
|
33 |
}
|
34 |
add_action( 'media_buttons', 'edd_media_button', 11 );
|
includes/admin/tools.php
CHANGED
@@ -27,6 +27,7 @@ function edd_tools_page() {
|
|
27 |
$active_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'general';
|
28 |
?>
|
29 |
<div class="wrap">
|
|
|
30 |
<h2><?php _e( 'Easy Digital Downloads Tools', 'easy-digital-downloads' ); ?></h2>
|
31 |
<h2 class="nav-tab-wrapper">
|
32 |
<?php
|
@@ -73,11 +74,6 @@ function edd_get_tools_tabs() {
|
|
73 |
}
|
74 |
|
75 |
$tabs['system_info'] = __( 'System Info', 'easy-digital-downloads' );
|
76 |
-
|
77 |
-
if( edd_is_debug_mode() ) {
|
78 |
-
$tabs['debug_log'] = __( 'Debug Log', 'easy-digital-downloads' );
|
79 |
-
}
|
80 |
-
|
81 |
$tabs['import_export'] = __( 'Import/Export', 'easy-digital-downloads' );
|
82 |
|
83 |
return apply_filters( 'edd_tools_tabs', $tabs );
|
@@ -101,11 +97,11 @@ function edd_tools_banned_emails_display() {
|
|
101 |
<div class="postbox">
|
102 |
<h3><span><?php _e( 'Banned Emails', 'easy-digital-downloads' ); ?></span></h3>
|
103 |
<div class="inside">
|
104 |
-
<p><?php _e( 'Emails placed in the box below will not be allowed to make purchases.', 'easy-digital-downloads' ); ?></p>
|
105 |
<form method="post" action="<?php echo admin_url( 'edit.php?post_type=download&page=edd-tools&tab=general' ); ?>">
|
106 |
<p>
|
107 |
<textarea name="banned_emails" rows="10" class="large-text"><?php echo implode( "\n", edd_get_banned_emails() ); ?></textarea>
|
108 |
-
<span class="description"><?php _e( 'Enter emails and/or domains (starting with
|
109 |
</p>
|
110 |
<p>
|
111 |
<input type="hidden" name="edd_action" value="save_banned_emails" />
|
@@ -399,8 +395,10 @@ function edd_tools_banned_emails_save() {
|
|
399 |
$emails = array_map( 'sanitize_text_field', $emails );
|
400 |
|
401 |
foreach( $emails as $id => $email ) {
|
402 |
-
if( ! is_email( $email )
|
403 |
-
|
|
|
|
|
404 |
}
|
405 |
}
|
406 |
} else {
|
@@ -475,7 +473,7 @@ function edd_tools_import_export_display() {
|
|
475 |
?>
|
476 |
</p>
|
477 |
|
478 |
-
<table class="widefat edd_repeatable_table
|
479 |
<thead>
|
480 |
<tr>
|
481 |
<th><strong><?php _e( 'Payment Field', 'easy-digital-downloads' ); ?></strong></th>
|
@@ -493,7 +491,7 @@ function edd_tools_import_export_display() {
|
|
493 |
</td>
|
494 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
495 |
</tr>
|
496 |
-
<tr>
|
497 |
<td><?php _e( 'Email', 'easy-digital-downloads' ); ?></td>
|
498 |
<td>
|
499 |
<select name="edd-import-field[email]" class="edd-import-csv-column">
|
@@ -511,7 +509,7 @@ function edd_tools_import_export_display() {
|
|
511 |
</td>
|
512 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
513 |
</tr>
|
514 |
-
<tr>
|
515 |
<td><?php _e( 'Last Name', 'easy-digital-downloads' ); ?></td>
|
516 |
<td>
|
517 |
<select name="edd-import-field[last_name]" class="edd-import-csv-column">
|
@@ -529,7 +527,7 @@ function edd_tools_import_export_display() {
|
|
529 |
</td>
|
530 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
531 |
</tr>
|
532 |
-
<tr>
|
533 |
<td><?php _e( 'Discount Code(s)', 'easy-digital-downloads' ); ?></td>
|
534 |
<td>
|
535 |
<select name="edd-import-field[discounts]" class="edd-import-csv-column">
|
@@ -547,7 +545,7 @@ function edd_tools_import_export_display() {
|
|
547 |
</td>
|
548 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
549 |
</tr>
|
550 |
-
<tr>
|
551 |
<td><?php _e( 'Mode (Live|Test)', 'easy-digital-downloads' ); ?></td>
|
552 |
<td>
|
553 |
<select name="edd-import-field[mode]" class="edd-import-csv-column">
|
@@ -565,7 +563,7 @@ function edd_tools_import_export_display() {
|
|
565 |
</td>
|
566 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
567 |
</tr>
|
568 |
-
<tr>
|
569 |
<td><?php _e( 'Payment Method', 'easy-digital-downloads' ); ?></td>
|
570 |
<td>
|
571 |
<select name="edd-import-field[gateway]" class="edd-import-csv-column">
|
@@ -583,7 +581,7 @@ function edd_tools_import_export_display() {
|
|
583 |
</td>
|
584 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
585 |
</tr>
|
586 |
-
<tr>
|
587 |
<td><?php _e( 'Date', 'easy-digital-downloads' ); ?></td>
|
588 |
<td>
|
589 |
<select name="edd-import-field[date]" class="edd-import-csv-column">
|
@@ -601,7 +599,7 @@ function edd_tools_import_export_display() {
|
|
601 |
</td>
|
602 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
603 |
</tr>
|
604 |
-
<tr>
|
605 |
<td><?php _e( 'Purchased Product(s)', 'easy-digital-downloads' ); ?></td>
|
606 |
<td>
|
607 |
<select name="edd-import-field[downloads]" class="edd-import-csv-column">
|
@@ -619,7 +617,7 @@ function edd_tools_import_export_display() {
|
|
619 |
</td>
|
620 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
621 |
</tr>
|
622 |
-
<tr>
|
623 |
<td><?php _e( 'Subtotal', 'easy-digital-downloads' ); ?></td>
|
624 |
<td>
|
625 |
<select name="edd-import-field[subtotal]" class="edd-import-csv-column">
|
@@ -637,7 +635,7 @@ function edd_tools_import_export_display() {
|
|
637 |
</td>
|
638 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
639 |
</tr>
|
640 |
-
<tr>
|
641 |
<td><?php _e( 'Total', 'easy-digital-downloads' ); ?></td>
|
642 |
<td>
|
643 |
<select name="edd-import-field[total]" class="edd-import-csv-column">
|
@@ -655,7 +653,7 @@ function edd_tools_import_export_display() {
|
|
655 |
</td>
|
656 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
657 |
</tr>
|
658 |
-
<tr>
|
659 |
<td><?php _e( 'User', 'easy-digital-downloads' ); ?></td>
|
660 |
<td>
|
661 |
<select name="edd-import-field[user_id]" class="edd-import-csv-column">
|
@@ -673,7 +671,7 @@ function edd_tools_import_export_display() {
|
|
673 |
</td>
|
674 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
675 |
</tr>
|
676 |
-
<tr>
|
677 |
<td><?php _e( 'Address Line 2', 'easy-digital-downloads' ); ?></td>
|
678 |
<td>
|
679 |
<select name="edd-import-field[line2]" class="edd-import-csv-column">
|
@@ -682,7 +680,7 @@ function edd_tools_import_export_display() {
|
|
682 |
</td>
|
683 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
684 |
</tr>
|
685 |
-
<tr>
|
686 |
<td><?php _e( 'City', 'easy-digital-downloads' ); ?></td>
|
687 |
<td>
|
688 |
<select name="edd-import-field[city]" class="edd-import-csv-column">
|
@@ -700,7 +698,7 @@ function edd_tools_import_export_display() {
|
|
700 |
</td>
|
701 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
702 |
</tr>
|
703 |
-
<tr>
|
704 |
<td><?php _e( 'Zip / Postal Code', 'easy-digital-downloads' ); ?></td>
|
705 |
<td>
|
706 |
<select name="edd-import-field[zip]" class="edd-import-csv-column">
|
@@ -757,7 +755,7 @@ function edd_tools_import_export_display() {
|
|
757 |
?>
|
758 |
</p>
|
759 |
|
760 |
-
<table class="widefat edd_repeatable_table
|
761 |
<thead>
|
762 |
<tr>
|
763 |
<th><strong><?php _e( 'Product Field', 'easy-digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773,7 @@ function edd_tools_import_export_display() {
|
|
775 |
</td>
|
776 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
777 |
</tr>
|
778 |
-
<tr>
|
779 |
<td><?php _e( 'Product Categories', 'easy-digital-downloads' ); ?></td>
|
780 |
<td>
|
781 |
<select name="edd-import-field[categories]" class="edd-import-csv-column">
|
@@ -793,7 +791,7 @@ function edd_tools_import_export_display() {
|
|
793 |
</td>
|
794 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
795 |
</tr>
|
796 |
-
<tr>
|
797 |
<td><?php _e( 'Product Description', 'easy-digital-downloads' ); ?></td>
|
798 |
<td>
|
799 |
<select name="edd-import-field[post_content]" class="edd-import-csv-column">
|
@@ -811,7 +809,7 @@ function edd_tools_import_export_display() {
|
|
811 |
</td>
|
812 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
813 |
</tr>
|
814 |
-
<tr>
|
815 |
<td><?php _e( 'Product Image', 'easy-digital-downloads' ); ?></td>
|
816 |
<td>
|
817 |
<select name="edd-import-field[featured_image]" class="edd-import-csv-column">
|
@@ -829,7 +827,7 @@ function edd_tools_import_export_display() {
|
|
829 |
</td>
|
830 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
831 |
</tr>
|
832 |
-
<tr>
|
833 |
<td><?php _e( 'Product Price(s)', 'easy-digital-downloads' ); ?></td>
|
834 |
<td>
|
835 |
<select name="edd-import-field[price]" class="edd-import-csv-column">
|
@@ -847,7 +845,7 @@ function edd_tools_import_export_display() {
|
|
847 |
</td>
|
848 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
849 |
</tr>
|
850 |
-
<tr>
|
851 |
<td><?php _e( 'Product Slug', 'easy-digital-downloads' ); ?></td>
|
852 |
<td>
|
853 |
<select name="edd-import-field[post_name]" class="edd-import-csv-column">
|
@@ -865,7 +863,7 @@ function edd_tools_import_export_display() {
|
|
865 |
</td>
|
866 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
867 |
</tr>
|
868 |
-
<tr>
|
869 |
<td><?php _e( 'Product Tags', 'easy-digital-downloads' ); ?></td>
|
870 |
<td>
|
871 |
<select name="edd-import-field[tags]" class="edd-import-csv-column">
|
@@ -883,7 +881,7 @@ function edd_tools_import_export_display() {
|
|
883 |
</td>
|
884 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
885 |
</tr>
|
886 |
-
<tr>
|
887 |
<td><?php _e( 'Download Files', 'easy-digital-downloads' ); ?></td>
|
888 |
<td>
|
889 |
<select name="edd-import-field[files]" class="edd-import-csv-column">
|
@@ -901,7 +899,7 @@ function edd_tools_import_export_display() {
|
|
901 |
</td>
|
902 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
903 |
</tr>
|
904 |
-
<tr>
|
905 |
<td><?php _e( 'Sale Count', 'easy-digital-downloads' ); ?></td>
|
906 |
<td>
|
907 |
<select name="edd-import-field[sales]" class="edd-import-csv-column">
|
@@ -983,12 +981,8 @@ function edd_tools_import_export_process_export() {
|
|
983 |
if( ! current_user_can( 'manage_shop_settings' ) )
|
984 |
return;
|
985 |
|
986 |
-
$
|
987 |
-
$
|
988 |
-
$settings = array(
|
989 |
-
'edd_settings' => $edd_settings,
|
990 |
-
'edd_tax_rates' => $edd_tax_rates,
|
991 |
-
);
|
992 |
|
993 |
ignore_user_abort( true );
|
994 |
|
@@ -1036,23 +1030,7 @@ function edd_tools_import_export_process_import() {
|
|
1036 |
// Retrieve the settings from the file and convert the json object to an array
|
1037 |
$settings = edd_object_to_array( json_decode( file_get_contents( $import_file ) ) );
|
1038 |
|
1039 |
-
|
1040 |
-
|
1041 |
-
// Process a settings export from a pre 2.8 version of EDD
|
1042 |
-
update_option( 'edd_settings', $settings );
|
1043 |
-
|
1044 |
-
} else {
|
1045 |
-
|
1046 |
-
// Update the settings from a 2.8+ export file
|
1047 |
-
$edd_settings = $settings['edd_settings'];
|
1048 |
-
update_option( 'edd_settings', $edd_settings );
|
1049 |
-
|
1050 |
-
$edd_tax_rates = $settings['edd_tax_rates'];
|
1051 |
-
update_option( 'edd_tax_rates', $edd_tax_rates );
|
1052 |
-
|
1053 |
-
}
|
1054 |
-
|
1055 |
-
|
1056 |
|
1057 |
wp_safe_redirect( admin_url( 'edit.php?post_type=download&page=edd-tools&edd-message=settings-imported' ) ); exit;
|
1058 |
|
@@ -1060,79 +1038,6 @@ function edd_tools_import_export_process_import() {
|
|
1060 |
add_action( 'edd_import_settings', 'edd_tools_import_export_process_import' );
|
1061 |
|
1062 |
|
1063 |
-
/**
|
1064 |
-
* Display the debug log tab
|
1065 |
-
*
|
1066 |
-
* @since 2.8.7
|
1067 |
-
* @return void
|
1068 |
-
*/
|
1069 |
-
function edd_tools_debug_log_display() {
|
1070 |
-
|
1071 |
-
global $edd_logs;
|
1072 |
-
|
1073 |
-
if( ! current_user_can( 'manage_shop_settings' ) || ! edd_is_debug_mode() ) {
|
1074 |
-
return;
|
1075 |
-
}
|
1076 |
-
|
1077 |
-
?>
|
1078 |
-
<div class="postbox">
|
1079 |
-
<h3><span><?php esc_html_e( 'Debug Log', 'easy-digital-downloads' ); ?></span></h3>
|
1080 |
-
<div class="inside">
|
1081 |
-
<form id="edd-debug-log" method="post">
|
1082 |
-
<p><?php _e( 'Use this tool to help debug Easy Digital Downloads functionality. Developers may use the <a href="https://github.com/easydigitaldownloads/easy-digital-downloads/blob/master/includes/class-edd-logging.php">EDD_Logging class</a> to record debug data.', 'easy-digital-downloads' ); ?></p>
|
1083 |
-
<textarea readonly="readonly" class="large-text" rows="15" name="edd-debug-log-contents"><?php echo esc_textarea( $edd_logs->get_file_contents() ); ?></textarea>
|
1084 |
-
<p class="submit">
|
1085 |
-
<input type="hidden" name="edd_action" value="submit_debug_log" />
|
1086 |
-
<?php
|
1087 |
-
submit_button( __( 'Download Debug Log File', 'easy-digital-downloads' ), 'primary', 'edd-download-debug-log', false );
|
1088 |
-
submit_button( __( 'Clear Log', 'easy-digital-downloads' ), 'secondary edd-inline-button', 'edd-clear-debug-log', false );
|
1089 |
-
submit_button( __( 'Copy Entire Log', 'easy-digital-downloads' ), 'secondary edd-inline-button', 'edd-copy-debug-log', false, array( 'onclick' => "this.form['edd-debug-log-contents'].focus();this.form['edd-debug-log-contents'].select();document.execCommand('copy');return false;" ) );
|
1090 |
-
?>
|
1091 |
-
</p>
|
1092 |
-
<?php wp_nonce_field( 'edd-debug-log-action' ); ?>
|
1093 |
-
</form>
|
1094 |
-
</div><!-- .inside -->
|
1095 |
-
</div><!-- .postbox -->
|
1096 |
-
<?php
|
1097 |
-
}
|
1098 |
-
add_action( 'edd_tools_tab_debug_log', 'edd_tools_debug_log_display' );
|
1099 |
-
|
1100 |
-
/**
|
1101 |
-
* Handles submit actions for the debug log.
|
1102 |
-
*
|
1103 |
-
* @since 2.8.7
|
1104 |
-
*/
|
1105 |
-
function edd_handle_submit_debug_log() {
|
1106 |
-
|
1107 |
-
global $edd_logs;
|
1108 |
-
|
1109 |
-
if ( ! current_user_can( 'manage_shop_settings' ) ) {
|
1110 |
-
return;
|
1111 |
-
}
|
1112 |
-
|
1113 |
-
check_admin_referer( 'edd-debug-log-action' );
|
1114 |
-
|
1115 |
-
if ( isset( $_REQUEST['edd-download-debug-log'] ) ) {
|
1116 |
-
nocache_headers();
|
1117 |
-
|
1118 |
-
header( 'Content-Type: text/plain' );
|
1119 |
-
header( 'Content-Disposition: attachment; filename="edd-debug-log.txt"' );
|
1120 |
-
|
1121 |
-
echo wp_strip_all_tags( $_REQUEST['edd-debug-log-contents'] );
|
1122 |
-
exit;
|
1123 |
-
|
1124 |
-
} elseif ( isset( $_REQUEST['edd-clear-debug-log'] ) ) {
|
1125 |
-
|
1126 |
-
// Clear the debug log.
|
1127 |
-
$edd_logs->clear_log_file();
|
1128 |
-
|
1129 |
-
wp_safe_redirect( admin_url( 'edit.php?post_type=download&page=edd-tools&tab=debug_log' ) );
|
1130 |
-
exit;
|
1131 |
-
|
1132 |
-
}
|
1133 |
-
}
|
1134 |
-
add_action( 'edd_submit_debug_log', 'edd_handle_submit_debug_log' );
|
1135 |
-
|
1136 |
/**
|
1137 |
* Display the system info tab
|
1138 |
*
|
@@ -1210,12 +1115,10 @@ function edd_tools_sysinfo_get() {
|
|
1210 |
|
1211 |
$return = apply_filters( 'edd_sysinfo_after_user_browser', $return );
|
1212 |
|
1213 |
-
$locale = get_locale();
|
1214 |
-
|
1215 |
// WordPress configuration
|
1216 |
$return .= "\n" . '-- WordPress Configuration' . "\n\n";
|
1217 |
$return .= 'Version: ' . get_bloginfo( 'version' ) . "\n";
|
1218 |
-
$return .= 'Language: ' . (
|
1219 |
$return .= 'Permalink Structure: ' . ( get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : 'Default' ) . "\n";
|
1220 |
$return .= 'Active Theme: ' . $theme . "\n";
|
1221 |
if ( $parent_theme !== $theme ) {
|
@@ -1276,7 +1179,6 @@ function edd_tools_sysinfo_get() {
|
|
1276 |
$return .= 'Decimal Separator: ' . edd_get_option( 'decimal_separator', '.' ) . "\n";
|
1277 |
$return .= 'Thousands Separator: ' . edd_get_option( 'thousands_separator', ',' ) . "\n";
|
1278 |
$return .= 'Upgrades Completed: ' . implode( ',', edd_get_completed_upgrades() ) . "\n";
|
1279 |
-
$return .= 'Download Link Expiration: ' . edd_get_option( 'download_link_expiration' ) . " hour(s)\n";
|
1280 |
|
1281 |
$return = apply_filters( 'edd_sysinfo_after_edd_config', $return );
|
1282 |
|
27 |
$active_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'general';
|
28 |
?>
|
29 |
<div class="wrap">
|
30 |
+
<?php screen_icon(); ?>
|
31 |
<h2><?php _e( 'Easy Digital Downloads Tools', 'easy-digital-downloads' ); ?></h2>
|
32 |
<h2 class="nav-tab-wrapper">
|
33 |
<?php
|
74 |
}
|
75 |
|
76 |
$tabs['system_info'] = __( 'System Info', 'easy-digital-downloads' );
|
|
|
|
|
|
|
|
|
|
|
77 |
$tabs['import_export'] = __( 'Import/Export', 'easy-digital-downloads' );
|
78 |
|
79 |
return apply_filters( 'edd_tools_tabs', $tabs );
|
97 |
<div class="postbox">
|
98 |
<h3><span><?php _e( 'Banned Emails', 'easy-digital-downloads' ); ?></span></h3>
|
99 |
<div class="inside">
|
100 |
+
<p><?php _e( 'Emails placed in the box below will not be allowed to make purchases. To ban an entire domain, enter the domain starting with "@".', 'easy-digital-downloads' ); ?></p>
|
101 |
<form method="post" action="<?php echo admin_url( 'edit.php?post_type=download&page=edd-tools&tab=general' ); ?>">
|
102 |
<p>
|
103 |
<textarea name="banned_emails" rows="10" class="large-text"><?php echo implode( "\n", edd_get_banned_emails() ); ?></textarea>
|
104 |
+
<span class="description"><?php _e( 'Enter emails and/or domains (starting with @) to disallow, one per line.', 'easy-digital-downloads' ); ?></span>
|
105 |
</p>
|
106 |
<p>
|
107 |
<input type="hidden" name="edd_action" value="save_banned_emails" />
|
395 |
$emails = array_map( 'sanitize_text_field', $emails );
|
396 |
|
397 |
foreach( $emails as $id => $email ) {
|
398 |
+
if( ! is_email( $email ) ) {
|
399 |
+
if( $email[0] != '@' ) {
|
400 |
+
unset( $emails[$id] );
|
401 |
+
}
|
402 |
}
|
403 |
}
|
404 |
} else {
|
473 |
?>
|
474 |
</p>
|
475 |
|
476 |
+
<table class="widefat edd_repeatable_table" width="100%" cellpadding="0" cellspacing="0">
|
477 |
<thead>
|
478 |
<tr>
|
479 |
<th><strong><?php _e( 'Payment Field', 'easy-digital-downloads' ); ?></strong></th>
|
491 |
</td>
|
492 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
493 |
</tr>
|
494 |
+
<tr class="alternate">
|
495 |
<td><?php _e( 'Email', 'easy-digital-downloads' ); ?></td>
|
496 |
<td>
|
497 |
<select name="edd-import-field[email]" class="edd-import-csv-column">
|
509 |
</td>
|
510 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
511 |
</tr>
|
512 |
+
<tr class="alternate">
|
513 |
<td><?php _e( 'Last Name', 'easy-digital-downloads' ); ?></td>
|
514 |
<td>
|
515 |
<select name="edd-import-field[last_name]" class="edd-import-csv-column">
|
527 |
</td>
|
528 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
529 |
</tr>
|
530 |
+
<tr class="alternate">
|
531 |
<td><?php _e( 'Discount Code(s)', 'easy-digital-downloads' ); ?></td>
|
532 |
<td>
|
533 |
<select name="edd-import-field[discounts]" class="edd-import-csv-column">
|
545 |
</td>
|
546 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
547 |
</tr>
|
548 |
+
<tr class="alternate">
|
549 |
<td><?php _e( 'Mode (Live|Test)', 'easy-digital-downloads' ); ?></td>
|
550 |
<td>
|
551 |
<select name="edd-import-field[mode]" class="edd-import-csv-column">
|
563 |
</td>
|
564 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
565 |
</tr>
|
566 |
+
<tr class="alternate">
|
567 |
<td><?php _e( 'Payment Method', 'easy-digital-downloads' ); ?></td>
|
568 |
<td>
|
569 |
<select name="edd-import-field[gateway]" class="edd-import-csv-column">
|
581 |
</td>
|
582 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
583 |
</tr>
|
584 |
+
<tr class="alternate">
|
585 |
<td><?php _e( 'Date', 'easy-digital-downloads' ); ?></td>
|
586 |
<td>
|
587 |
<select name="edd-import-field[date]" class="edd-import-csv-column">
|
599 |
</td>
|
600 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
601 |
</tr>
|
602 |
+
<tr class="alternate">
|
603 |
<td><?php _e( 'Purchased Product(s)', 'easy-digital-downloads' ); ?></td>
|
604 |
<td>
|
605 |
<select name="edd-import-field[downloads]" class="edd-import-csv-column">
|
617 |
</td>
|
618 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
619 |
</tr>
|
620 |
+
<tr class="alternate">
|
621 |
<td><?php _e( 'Subtotal', 'easy-digital-downloads' ); ?></td>
|
622 |
<td>
|
623 |
<select name="edd-import-field[subtotal]" class="edd-import-csv-column">
|
635 |
</td>
|
636 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
637 |
</tr>
|
638 |
+
<tr class="alternate">
|
639 |
<td><?php _e( 'Total', 'easy-digital-downloads' ); ?></td>
|
640 |
<td>
|
641 |
<select name="edd-import-field[total]" class="edd-import-csv-column">
|
653 |
</td>
|
654 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
655 |
</tr>
|
656 |
+
<tr class="alternate">
|
657 |
<td><?php _e( 'User', 'easy-digital-downloads' ); ?></td>
|
658 |
<td>
|
659 |
<select name="edd-import-field[user_id]" class="edd-import-csv-column">
|
671 |
</td>
|
672 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
673 |
</tr>
|
674 |
+
<tr class="alternate">
|
675 |
<td><?php _e( 'Address Line 2', 'easy-digital-downloads' ); ?></td>
|
676 |
<td>
|
677 |
<select name="edd-import-field[line2]" class="edd-import-csv-column">
|
680 |
</td>
|
681 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
682 |
</tr>
|
683 |
+
<tr class="alternate">
|
684 |
<td><?php _e( 'City', 'easy-digital-downloads' ); ?></td>
|
685 |
<td>
|
686 |
<select name="edd-import-field[city]" class="edd-import-csv-column">
|
698 |
</td>
|
699 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
700 |
</tr>
|
701 |
+
<tr class="alternate">
|
702 |
<td><?php _e( 'Zip / Postal Code', 'easy-digital-downloads' ); ?></td>
|
703 |
<td>
|
704 |
<select name="edd-import-field[zip]" class="edd-import-csv-column">
|
755 |
?>
|
756 |
</p>
|
757 |
|
758 |
+
<table class="widefat edd_repeatable_table" width="100%" cellpadding="0" cellspacing="0">
|
759 |
<thead>
|
760 |
<tr>
|
761 |
<th><strong><?php _e( 'Product Field', 'easy-digital-downloads' ); ?></strong></th>
|
773 |
</td>
|
774 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
775 |
</tr>
|
776 |
+
<tr class="alternate">
|
777 |
<td><?php _e( 'Product Categories', 'easy-digital-downloads' ); ?></td>
|
778 |
<td>
|
779 |
<select name="edd-import-field[categories]" class="edd-import-csv-column">
|
791 |
</td>
|
792 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
793 |
</tr>
|
794 |
+
<tr class="alternate">
|
795 |
<td><?php _e( 'Product Description', 'easy-digital-downloads' ); ?></td>
|
796 |
<td>
|
797 |
<select name="edd-import-field[post_content]" class="edd-import-csv-column">
|
809 |
</td>
|
810 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
811 |
</tr>
|
812 |
+
<tr class="alternate">
|
813 |
<td><?php _e( 'Product Image', 'easy-digital-downloads' ); ?></td>
|
814 |
<td>
|
815 |
<select name="edd-import-field[featured_image]" class="edd-import-csv-column">
|
827 |
</td>
|
828 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
829 |
</tr>
|
830 |
+
<tr class="alternate">
|
831 |
<td><?php _e( 'Product Price(s)', 'easy-digital-downloads' ); ?></td>
|
832 |
<td>
|
833 |
<select name="edd-import-field[price]" class="edd-import-csv-column">
|
845 |
</td>
|
846 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
847 |
</tr>
|
848 |
+
<tr class="alternate">
|
849 |
<td><?php _e( 'Product Slug', 'easy-digital-downloads' ); ?></td>
|
850 |
<td>
|
851 |
<select name="edd-import-field[post_name]" class="edd-import-csv-column">
|
863 |
</td>
|
864 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
865 |
</tr>
|
866 |
+
<tr class="alternate">
|
867 |
<td><?php _e( 'Product Tags', 'easy-digital-downloads' ); ?></td>
|
868 |
<td>
|
869 |
<select name="edd-import-field[tags]" class="edd-import-csv-column">
|
881 |
</td>
|
882 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
883 |
</tr>
|
884 |
+
<tr class="alternate">
|
885 |
<td><?php _e( 'Download Files', 'easy-digital-downloads' ); ?></td>
|
886 |
<td>
|
887 |
<select name="edd-import-field[files]" class="edd-import-csv-column">
|
899 |
</td>
|
900 |
<td class="edd-import-preview-field"><?php _e( '- select field to preview data -', 'easy-digital-downloads' ); ?></td>
|
901 |
</tr>
|
902 |
+
<tr class="alternate">
|
903 |
<td><?php _e( 'Sale Count', 'easy-digital-downloads' ); ?></td>
|
904 |
<td>
|
905 |
<select name="edd-import-field[sales]" class="edd-import-csv-column">
|
981 |
if( ! current_user_can( 'manage_shop_settings' ) )
|
982 |
return;
|
983 |
|
984 |
+
$settings = array();
|
985 |
+
$settings = get_option( 'edd_settings' );
|
|
|
|
|
|
|
|
|
986 |
|
987 |
ignore_user_abort( true );
|
988 |
|
1030 |
// Retrieve the settings from the file and convert the json object to an array
|
1031 |
$settings = edd_object_to_array( json_decode( file_get_contents( $import_file ) ) );
|
1032 |
|
1033 |
+
update_option( 'edd_settings', $settings );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1034 |
|
1035 |
wp_safe_redirect( admin_url( 'edit.php?post_type=download&page=edd-tools&edd-message=settings-imported' ) ); exit;
|
1036 |
|
1038 |
add_action( 'edd_import_settings', 'edd_tools_import_export_process_import' );
|
1039 |
|
1040 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1041 |
/**
|
1042 |
* Display the system info tab
|
1043 |
*
|
1115 |
|
1116 |
$return = apply_filters( 'edd_sysinfo_after_user_browser', $return );
|
1117 |
|
|
|
|
|
1118 |
// WordPress configuration
|
1119 |
$return .= "\n" . '-- WordPress Configuration' . "\n\n";
|
1120 |
$return .= 'Version: ' . get_bloginfo( 'version' ) . "\n";
|
1121 |
+
$return .= 'Language: ' . ( defined( 'WPLANG' ) && WPLANG ? WPLANG : 'en_US' ) . "\n";
|
1122 |
$return .= 'Permalink Structure: ' . ( get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : 'Default' ) . "\n";
|
1123 |
$return .= 'Active Theme: ' . $theme . "\n";
|
1124 |
if ( $parent_theme !== $theme ) {
|
1179 |
$return .= 'Decimal Separator: ' . edd_get_option( 'decimal_separator', '.' ) . "\n";
|
1180 |
$return .= 'Thousands Separator: ' . edd_get_option( 'thousands_separator', ',' ) . "\n";
|
1181 |
$return .= 'Upgrades Completed: ' . implode( ',', edd_get_completed_upgrades() ) . "\n";
|
|
|
1182 |
|
1183 |
$return = apply_filters( 'edd_sysinfo_after_edd_config', $return );
|
1184 |
|
includes/admin/tools/class-edd-tools-recount-all-stats.php
CHANGED
@@ -343,16 +343,7 @@ class EDD_Tools_Recount_All_Stats extends EDD_Batch_Export {
|
|
343 |
global $wpdb;
|
344 |
$value = $wpdb->get_var( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = '%s'", $key ) );
|
345 |
|
346 |
-
|
347 |
-
return false;
|
348 |
-
}
|
349 |
-
|
350 |
-
$maybe_json = json_decode( $value );
|
351 |
-
if ( ! is_null( $maybe_json ) ) {
|
352 |
-
$value = json_decode( $value, true );
|
353 |
-
}
|
354 |
-
|
355 |
-
return $value;
|
356 |
}
|
357 |
|
358 |
/**
|
@@ -366,7 +357,7 @@ class EDD_Tools_Recount_All_Stats extends EDD_Batch_Export {
|
|
366 |
private function store_data( $key, $value ) {
|
367 |
global $wpdb;
|
368 |
|
369 |
-
$value =
|
370 |
|
371 |
$data = array(
|
372 |
'option_name' => $key,
|
343 |
global $wpdb;
|
344 |
$value = $wpdb->get_var( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = '%s'", $key ) );
|
345 |
|
346 |
+
return empty( $value ) ? false : maybe_unserialize( $value );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
347 |
}
|
348 |
|
349 |
/**
|
357 |
private function store_data( $key, $value ) {
|
358 |
global $wpdb;
|
359 |
|
360 |
+
$value = maybe_serialize( $value );
|
361 |
|
362 |
$data = array(
|
363 |
'option_name' => $key,
|
includes/admin/tools/class-edd-tools-recount-download-stats.php
CHANGED
@@ -272,16 +272,7 @@ class EDD_Tools_Recount_Download_Stats extends EDD_Batch_Export {
|
|
272 |
global $wpdb;
|
273 |
$value = $wpdb->get_var( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = '%s'", $key ) );
|
274 |
|
275 |
-
|
276 |
-
return false;
|
277 |
-
}
|
278 |
-
|
279 |
-
$maybe_json = json_decode( $value );
|
280 |
-
if ( ! is_null( $maybe_json ) ) {
|
281 |
-
$value = json_decode( $value, true );
|
282 |
-
}
|
283 |
-
|
284 |
-
return $value;
|
285 |
}
|
286 |
|
287 |
/**
|
@@ -295,7 +286,7 @@ class EDD_Tools_Recount_Download_Stats extends EDD_Batch_Export {
|
|
295 |
private function store_data( $key, $value ) {
|
296 |
global $wpdb;
|
297 |
|
298 |
-
$value =
|
299 |
|
300 |
$data = array(
|
301 |
'option_name' => $key,
|
272 |
global $wpdb;
|
273 |
$value = $wpdb->get_var( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = '%s'", $key ) );
|
274 |
|
275 |
+
return empty( $value ) ? false : maybe_unserialize( $value );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
276 |
}
|
277 |
|
278 |
/**
|
286 |
private function store_data( $key, $value ) {
|
287 |
global $wpdb;
|
288 |
|
289 |
+
$value = maybe_serialize( $value );
|
290 |
|
291 |
$data = array(
|
292 |
'option_name' => $key,
|
includes/admin/tools/class-edd-tools-recount-single-customer-stats.php
CHANGED
@@ -111,7 +111,7 @@ class EDD_Tools_Recount_Single_Customer_Stats extends EDD_Batch_Export {
|
|
111 |
*/
|
112 |
public function get_percentage_complete() {
|
113 |
|
114 |
-
$payments = $this->get_stored_data( 'edd_recount_customer_payments_' . $this->customer_id
|
115 |
$total = count( $payments );
|
116 |
|
117 |
$percentage = 100;
|
@@ -156,10 +156,10 @@ class EDD_Tools_Recount_Single_Customer_Stats extends EDD_Batch_Export {
|
|
156 |
return true;
|
157 |
} else {
|
158 |
$customer = new EDD_Customer( $this->customer_id );
|
159 |
-
$payment_ids =
|
160 |
$this->delete_data( 'edd_stats_found_payments_' . $customer->id );
|
161 |
|
162 |
-
$removed_payments = array_unique(
|
163 |
|
164 |
// Find non-existing payments (deleted) and total up the purchase count
|
165 |
$purchase_count = 0;
|
@@ -266,20 +266,11 @@ class EDD_Tools_Recount_Single_Customer_Stats extends EDD_Batch_Export {
|
|
266 |
* @param string $key The option_name
|
267 |
* @return mixed Returns the data from the database
|
268 |
*/
|
269 |
-
private function get_stored_data( $key
|
270 |
global $wpdb;
|
271 |
$value = $wpdb->get_var( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = '%s'", $key ) );
|
272 |
|
273 |
-
|
274 |
-
return $default;
|
275 |
-
}
|
276 |
-
|
277 |
-
$maybe_json = json_decode( $value );
|
278 |
-
if ( ! is_null( $maybe_json ) && ! is_numeric( $value ) ) {
|
279 |
-
$value = $maybe_json;
|
280 |
-
}
|
281 |
-
|
282 |
-
return $value;
|
283 |
}
|
284 |
|
285 |
/**
|
@@ -293,7 +284,7 @@ class EDD_Tools_Recount_Single_Customer_Stats extends EDD_Batch_Export {
|
|
293 |
private function store_data( $key, $value ) {
|
294 |
global $wpdb;
|
295 |
|
296 |
-
$value =
|
297 |
|
298 |
$data = array(
|
299 |
'option_name' => $key,
|
111 |
*/
|
112 |
public function get_percentage_complete() {
|
113 |
|
114 |
+
$payments = $this->get_stored_data( 'edd_recount_customer_payments_' . $this->customer_id );
|
115 |
$total = count( $payments );
|
116 |
|
117 |
$percentage = 100;
|
156 |
return true;
|
157 |
} else {
|
158 |
$customer = new EDD_Customer( $this->customer_id );
|
159 |
+
$payment_ids = get_option( 'edd_stats_found_payments_' . $customer->id, array() );
|
160 |
$this->delete_data( 'edd_stats_found_payments_' . $customer->id );
|
161 |
|
162 |
+
$removed_payments = array_unique( get_option( 'edd_stats_missing_payments' . $customer->id, array() ) );
|
163 |
|
164 |
// Find non-existing payments (deleted) and total up the purchase count
|
165 |
$purchase_count = 0;
|
266 |
* @param string $key The option_name
|
267 |
* @return mixed Returns the data from the database
|
268 |
*/
|
269 |
+
private function get_stored_data( $key ) {
|
270 |
global $wpdb;
|
271 |
$value = $wpdb->get_var( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = '%s'", $key ) );
|
272 |
|
273 |
+
return empty( $value ) ? false : maybe_unserialize( $value );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
274 |
}
|
275 |
|
276 |
/**
|
284 |
private function store_data( $key, $value ) {
|
285 |
global $wpdb;
|
286 |
|
287 |
+
$value = maybe_serialize( $value );
|
288 |
|
289 |
$data = array(
|
290 |
'option_name' => $key,
|
includes/admin/tools/class-edd-tools-recount-store-earnings.php
CHANGED
@@ -207,16 +207,7 @@ class EDD_Tools_Recount_Store_Earnings extends EDD_Batch_Export {
|
|
207 |
global $wpdb;
|
208 |
$value = $wpdb->get_var( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = '%s'", $key ) );
|
209 |
|
210 |
-
|
211 |
-
return false;
|
212 |
-
}
|
213 |
-
|
214 |
-
$maybe_json = json_decode( $value );
|
215 |
-
if ( ! is_null( $maybe_json ) ) {
|
216 |
-
$value = json_decode( $value, true );
|
217 |
-
}
|
218 |
-
|
219 |
-
return $value;
|
220 |
}
|
221 |
|
222 |
/**
|
@@ -230,7 +221,7 @@ class EDD_Tools_Recount_Store_Earnings extends EDD_Batch_Export {
|
|
230 |
private function store_data( $key, $value ) {
|
231 |
global $wpdb;
|
232 |
|
233 |
-
$value =
|
234 |
|
235 |
$data = array(
|
236 |
'option_name' => $key,
|
207 |
global $wpdb;
|
208 |
$value = $wpdb->get_var( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = '%s'", $key ) );
|
209 |
|
210 |
+
return empty( $value ) ? false : maybe_unserialize( $value );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
211 |
}
|
212 |
|
213 |
/**
|
221 |
private function store_data( $key, $value ) {
|
222 |
global $wpdb;
|
223 |
|
224 |
+
$value = maybe_serialize( $value );
|
225 |
|
226 |
$data = array(
|
227 |
'option_name' => $key,
|
includes/admin/tools/class-edd-tools-reset-stats.php
CHANGED
@@ -283,16 +283,7 @@ class EDD_Tools_Reset_Stats extends EDD_Batch_Export {
|
|
283 |
global $wpdb;
|
284 |
$value = $wpdb->get_var( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = '%s'", $key ) );
|
285 |
|
286 |
-
|
287 |
-
return false;
|
288 |
-
}
|
289 |
-
|
290 |
-
$maybe_json = json_decode( $value );
|
291 |
-
if ( ! is_null( $maybe_json ) ) {
|
292 |
-
$value = json_decode( $value, true );
|
293 |
-
}
|
294 |
-
|
295 |
-
return $value;
|
296 |
}
|
297 |
|
298 |
/**
|
@@ -306,7 +297,7 @@ class EDD_Tools_Reset_Stats extends EDD_Batch_Export {
|
|
306 |
private function store_data( $key, $value ) {
|
307 |
global $wpdb;
|
308 |
|
309 |
-
$value =
|
310 |
|
311 |
$data = array(
|
312 |
'option_name' => $key,
|
283 |
global $wpdb;
|
284 |
$value = $wpdb->get_var( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = '%s'", $key ) );
|
285 |
|
286 |
+
return empty( $value ) ? false : maybe_unserialize( $value );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
287 |
}
|
288 |
|
289 |
/**
|
297 |
private function store_data( $key, $value ) {
|
298 |
global $wpdb;
|
299 |
|
300 |
+
$value = maybe_serialize( $value );
|
301 |
|
302 |
$data = array(
|
303 |
'option_name' => $key,
|
includes/admin/tracking.php
CHANGED
@@ -38,9 +38,9 @@ class EDD_Tracking {
|
|
38 |
|
39 |
add_action( 'init', array( $this, 'schedule_send' ) );
|
40 |
add_action( 'edd_settings_general_sanitize', array( $this, 'check_for_settings_optin' ) );
|
41 |
-
add_action( 'edd_opt_into_tracking',
|
42 |
add_action( 'edd_opt_out_of_tracking', array( $this, 'check_for_optout' ) );
|
43 |
-
add_action( 'admin_notices',
|
44 |
|
45 |
}
|
46 |
|
@@ -178,6 +178,10 @@ class EDD_Tracking {
|
|
178 |
*/
|
179 |
public function check_for_optin( $data ) {
|
180 |
|
|
|
|
|
|
|
|
|
181 |
edd_update_option( 'allow_tracking', 1 );
|
182 |
|
183 |
$this->send_checkin( true );
|
@@ -193,6 +197,10 @@ class EDD_Tracking {
|
|
193 |
* @return void
|
194 |
*/
|
195 |
public function check_for_optout( $data ) {
|
|
|
|
|
|
|
|
|
196 |
edd_delete_option( 'allow_tracking' );
|
197 |
update_option( 'edd_tracking_notice', '1' );
|
198 |
wp_redirect( remove_query_arg( 'edd_action' ) ); exit;
|
@@ -211,12 +219,16 @@ class EDD_Tracking {
|
|
211 |
/**
|
212 |
* Schedule a weekly checkin
|
213 |
*
|
|
|
|
|
|
|
214 |
* @access public
|
215 |
* @return void
|
216 |
*/
|
217 |
public function schedule_send() {
|
218 |
-
|
219 |
-
|
|
|
220 |
}
|
221 |
|
222 |
/**
|
@@ -253,7 +265,7 @@ class EDD_Tracking {
|
|
253 |
$source = substr( md5( get_bloginfo( 'name' ) ), 0, 10 );
|
254 |
$extensions_url = 'https://easydigitaldownloads.com/downloads/?utm_source=' . $source . '&utm_medium=admin&utm_term=notice&utm_campaign=EDDUsageTracking';
|
255 |
echo '<div class="updated"><p>';
|
256 |
-
echo sprintf( __( 'Allow Easy Digital Downloads to track plugin usage? Opt-in to tracking and our newsletter and immediately be emailed a discount to the EDD shop, valid towards the <a href="%s" target="_blank">purchase of extensions</a>. No sensitive data is tracked.', 'easy-digital-downloads' ), $extensions_url );
|
257 |
echo ' <a href="' . esc_url( $optin_url ) . '" class="button-secondary">' . __( 'Allow', 'easy-digital-downloads' ) . '</a>';
|
258 |
echo ' <a href="' . esc_url( $optout_url ) . '" class="button-secondary">' . __( 'Do not allow', 'easy-digital-downloads' ) . '</a>';
|
259 |
echo '</p></div>';
|
38 |
|
39 |
add_action( 'init', array( $this, 'schedule_send' ) );
|
40 |
add_action( 'edd_settings_general_sanitize', array( $this, 'check_for_settings_optin' ) );
|
41 |
+
add_action( 'edd_opt_into_tracking', array( $this, 'check_for_optin' ) );
|
42 |
add_action( 'edd_opt_out_of_tracking', array( $this, 'check_for_optout' ) );
|
43 |
+
add_action( 'admin_notices', array( $this, 'admin_notice' ) );
|
44 |
|
45 |
}
|
46 |
|
178 |
*/
|
179 |
public function check_for_optin( $data ) {
|
180 |
|
181 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
182 |
+
return;
|
183 |
+
}
|
184 |
+
|
185 |
edd_update_option( 'allow_tracking', 1 );
|
186 |
|
187 |
$this->send_checkin( true );
|
197 |
* @return void
|
198 |
*/
|
199 |
public function check_for_optout( $data ) {
|
200 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
201 |
+
return;
|
202 |
+
}
|
203 |
+
|
204 |
edd_delete_option( 'allow_tracking' );
|
205 |
update_option( 'edd_tracking_notice', '1' );
|
206 |
wp_redirect( remove_query_arg( 'edd_action' ) ); exit;
|
219 |
/**
|
220 |
* Schedule a weekly checkin
|
221 |
*
|
222 |
+
* We send once a week (while tracking is allowed) to check in, which can be
|
223 |
+
* used to determine active sites.
|
224 |
+
*
|
225 |
* @access public
|
226 |
* @return void
|
227 |
*/
|
228 |
public function schedule_send() {
|
229 |
+
if ( edd_doing_cron() ) {
|
230 |
+
add_action( 'edd_weekly_scheduled_events', array( $this, 'send_checkin' ) );
|
231 |
+
}
|
232 |
}
|
233 |
|
234 |
/**
|
265 |
$source = substr( md5( get_bloginfo( 'name' ) ), 0, 10 );
|
266 |
$extensions_url = 'https://easydigitaldownloads.com/downloads/?utm_source=' . $source . '&utm_medium=admin&utm_term=notice&utm_campaign=EDDUsageTracking';
|
267 |
echo '<div class="updated"><p>';
|
268 |
+
echo sprintf( __( 'Allow Easy Digital Downloads to track plugin usage? Opt-in to tracking and our newsletter and immediately be emailed a 20%s discount to the EDD shop, valid towards the <a href="%s" target="_blank">purchase of extensions</a>. No sensitive data is tracked.', 'easy-digital-downloads' ), '%', $extensions_url );
|
269 |
echo ' <a href="' . esc_url( $optin_url ) . '" class="button-secondary">' . __( 'Allow', 'easy-digital-downloads' ) . '</a>';
|
270 |
echo ' <a href="' . esc_url( $optout_url ) . '" class="button-secondary">' . __( 'Do not allow', 'easy-digital-downloads' ) . '</a>';
|
271 |
echo '</p></div>';
|
includes/ajax-functions.php
CHANGED
@@ -388,25 +388,19 @@ function edd_load_checkout_register_fields() {
|
|
388 |
add_action('wp_ajax_nopriv_checkout_register', 'edd_load_checkout_register_fields');
|
389 |
|
390 |
/**
|
391 |
-
* Get Download Title via AJAX
|
392 |
*
|
393 |
* @since 1.0
|
394 |
-
* @since 2.8 Restrict to just the download post type
|
395 |
* @return void
|
396 |
*/
|
397 |
function edd_ajax_get_download_title() {
|
398 |
if ( isset( $_POST['download_id'] ) ) {
|
399 |
-
$
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
if ( $post_title ) {
|
405 |
-
echo $title = $post_title;
|
406 |
-
}
|
407 |
}
|
408 |
-
|
409 |
-
echo $title;
|
410 |
}
|
411 |
edd_die();
|
412 |
}
|
@@ -522,22 +516,9 @@ function edd_ajax_download_search() {
|
|
522 |
$where .= "AND `ID` NOT IN (" . $exclude . ") ";
|
523 |
}
|
524 |
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
$status = apply_filters( 'edd_product_dropdown_status', array( 'publish', 'draft', 'private', 'future' ) );
|
529 |
-
}
|
530 |
-
|
531 |
-
if ( is_array( $status ) && ! empty( $status ) ) {
|
532 |
-
|
533 |
-
$status = array_map( 'sanitize_text_field', $status );
|
534 |
-
$status_in = "'" . join( "', '", $status ) . "'";
|
535 |
-
$where .= "AND `post_status` IN ({$status_in}) ";
|
536 |
-
|
537 |
-
} else {
|
538 |
-
|
539 |
-
$where .= "AND `post_status` = `publish` ";
|
540 |
-
|
541 |
}
|
542 |
|
543 |
// Limit the result sets
|
388 |
add_action('wp_ajax_nopriv_checkout_register', 'edd_load_checkout_register_fields');
|
389 |
|
390 |
/**
|
391 |
+
* Get Download Title via AJAX (used only in WordPress Admin)
|
392 |
*
|
393 |
* @since 1.0
|
|
|
394 |
* @return void
|
395 |
*/
|
396 |
function edd_ajax_get_download_title() {
|
397 |
if ( isset( $_POST['download_id'] ) ) {
|
398 |
+
$title = get_the_title( $_POST['download_id'] );
|
399 |
+
if ( $title ) {
|
400 |
+
echo $title;
|
401 |
+
} else {
|
402 |
+
echo 'fail';
|
|
|
|
|
|
|
403 |
}
|
|
|
|
|
404 |
}
|
405 |
edd_die();
|
406 |
}
|
516 |
$where .= "AND `ID` NOT IN (" . $exclude . ") ";
|
517 |
}
|
518 |
|
519 |
+
// If the user can't edit products, limit to just published items
|
520 |
+
if( ! current_user_can( 'edit_products' ) ) {
|
521 |
+
$where .= "AND `post_status` = 'publish' ";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
522 |
}
|
523 |
|
524 |
// Limit the result sets
|
includes/api/class-edd-api.php
CHANGED
@@ -301,7 +301,7 @@ class EDD_API {
|
|
301 |
* @uses EDD_API::invalid_key()
|
302 |
* @uses EDD_API::invalid_auth()
|
303 |
* @since 1.5
|
304 |
-
* @return
|
305 |
*/
|
306 |
private function validate_request() {
|
307 |
global $wp_query;
|
@@ -313,7 +313,6 @@ class EDD_API {
|
|
313 |
|
314 |
if ( empty( $wp_query->query_vars['token'] ) || empty( $wp_query->query_vars['key'] ) ) {
|
315 |
$this->missing_auth();
|
316 |
-
return false;
|
317 |
}
|
318 |
|
319 |
// Auth was provided, include the upgrade routine so we can use the fallback api checks
|
@@ -323,7 +322,6 @@ class EDD_API {
|
|
323 |
if ( ! ( $user = $this->get_user( $wp_query->query_vars['key'] ) ) ) {
|
324 |
|
325 |
$this->invalid_key();
|
326 |
-
return false;
|
327 |
|
328 |
} else {
|
329 |
|
@@ -331,14 +329,11 @@ class EDD_API {
|
|
331 |
$secret = $this->get_user_secret_key( $user );
|
332 |
$public = urldecode( $wp_query->query_vars['key'] );
|
333 |
|
334 |
-
|
335 |
-
if ( $valid ) {
|
336 |
$this->is_valid_request = true;
|
337 |
} else {
|
338 |
$this->invalid_auth();
|
339 |
-
return false;
|
340 |
}
|
341 |
-
|
342 |
}
|
343 |
} elseif ( ! empty( $wp_query->query_vars['edd-api'] ) && $this->is_public_query() ) {
|
344 |
$this->is_valid_request = true;
|
@@ -1899,11 +1894,9 @@ class EDD_API {
|
|
1899 |
|
1900 |
case 'xml' :
|
1901 |
|
1902 |
-
require_once EDD_PLUGIN_DIR . 'includes/libraries/
|
1903 |
-
$
|
1904 |
-
$xml
|
1905 |
-
|
1906 |
-
echo $xml;
|
1907 |
|
1908 |
break;
|
1909 |
|
@@ -2274,20 +2267,4 @@ class EDD_API {
|
|
2274 |
return apply_filters( 'edd_api_log_requests', true );
|
2275 |
}
|
2276 |
|
2277 |
-
|
2278 |
-
* Check API keys vs token
|
2279 |
-
*
|
2280 |
-
* @access public
|
2281 |
-
* @since 2.8.2
|
2282 |
-
*
|
2283 |
-
* @param string $secret Secret key
|
2284 |
-
* @param string $public Public key
|
2285 |
-
* @param string $token Token used in API request
|
2286 |
-
*
|
2287 |
-
* @return bool
|
2288 |
-
*/
|
2289 |
-
public function check_keys( $secret, $public, $token ) {
|
2290 |
-
return hash_equals( md5( $secret . $public ), $token );
|
2291 |
-
}
|
2292 |
-
|
2293 |
-
}
|
301 |
* @uses EDD_API::invalid_key()
|
302 |
* @uses EDD_API::invalid_auth()
|
303 |
* @since 1.5
|
304 |
+
* @return void
|
305 |
*/
|
306 |
private function validate_request() {
|
307 |
global $wp_query;
|
313 |
|
314 |
if ( empty( $wp_query->query_vars['token'] ) || empty( $wp_query->query_vars['key'] ) ) {
|
315 |
$this->missing_auth();
|
|
|
316 |
}
|
317 |
|
318 |
// Auth was provided, include the upgrade routine so we can use the fallback api checks
|
322 |
if ( ! ( $user = $this->get_user( $wp_query->query_vars['key'] ) ) ) {
|
323 |
|
324 |
$this->invalid_key();
|
|
|
325 |
|
326 |
} else {
|
327 |
|
329 |
$secret = $this->get_user_secret_key( $user );
|
330 |
$public = urldecode( $wp_query->query_vars['key'] );
|
331 |
|
332 |
+
if ( hash_equals( md5( $secret . $public ), $token ) ) {
|
|
|
333 |
$this->is_valid_request = true;
|
334 |
} else {
|
335 |
$this->invalid_auth();
|
|
|
336 |
}
|
|
|
337 |
}
|
338 |
} elseif ( ! empty( $wp_query->query_vars['edd-api'] ) && $this->is_public_query() ) {
|
339 |
$this->is_valid_request = true;
|
1894 |
|
1895 |
case 'xml' :
|
1896 |
|
1897 |
+
require_once EDD_PLUGIN_DIR . 'includes/libraries/array2xml.php';
|
1898 |
+
$xml = Array2XML::createXML( 'edd', $this->data );
|
1899 |
+
echo $xml->saveXML();
|
|
|
|
|
1900 |
|
1901 |
break;
|
1902 |
|
2267 |
return apply_filters( 'edd_api_log_requests', true );
|
2268 |
}
|
2269 |
|
2270 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/cart/class-edd-cart.php
CHANGED
@@ -137,7 +137,7 @@ class EDD_Cart {
|
|
137 |
$this->get_contents_details();
|
138 |
$this->get_all_fees();
|
139 |
$this->get_discounts_from_session();
|
140 |
-
$this->get_quantity();
|
141 |
}
|
142 |
|
143 |
/**
|
@@ -173,7 +173,7 @@ class EDD_Cart {
|
|
173 |
*
|
174 |
* @since 2.7
|
175 |
* @access public
|
176 |
-
* @return
|
177 |
*/
|
178 |
public function get_contents() {
|
179 |
if ( ! did_action( 'edd_cart_contents_loaded_from_session' ) ) {
|
@@ -228,7 +228,6 @@ class EDD_Cart {
|
|
228 |
}
|
229 |
|
230 |
$item['quantity'] = edd_item_quantities_enabled() ? absint( $item['quantity'] ) : 1;
|
231 |
-
$item['quantity'] = max( 1, $item['quantity'] ); // Force quantity to 1
|
232 |
|
233 |
$options = isset( $item['options'] ) ? $item['options'] : array();
|
234 |
|
@@ -239,24 +238,17 @@ class EDD_Cart {
|
|
239 |
$discount = apply_filters( 'edd_get_cart_content_details_item_discount_amount', $discount, $item );
|
240 |
$quantity = $this->get_item_quantity( $item['id'], $options );
|
241 |
$fees = $this->get_fees( 'fee', $item['id'], $price_id );
|
242 |
-
$subtotal =
|
243 |
|
244 |
-
// Subtotal for tax calculation must
|
245 |
$subtotal_for_tax = $subtotal;
|
246 |
|
247 |
foreach ( $fees as $fee ) {
|
248 |
-
|
249 |
$fee_amount = (float) $fee['amount'];
|
250 |
$subtotal += $fee_amount;
|
251 |
-
|
252 |
-
if( $fee_amount > 0 ) {
|
253 |
-
continue;
|
254 |
-
}
|
255 |
-
|
256 |
-
$subtotal_for_tax += $fee_amount;
|
257 |
}
|
258 |
|
259 |
-
$tax
|
260 |
|
261 |
if ( edd_prices_include_tax() ) {
|
262 |
$subtotal -= round( $tax, edd_currency_decimal_filter() );
|
@@ -301,7 +293,7 @@ class EDD_Cart {
|
|
301 |
*/
|
302 |
public function get_discounts() {
|
303 |
$this->get_discounts_from_session();
|
304 |
-
$this->discounts = ! empty( $this->discounts ) ? explode( '|', $this->discounts ) :
|
305 |
return $this->discounts;
|
306 |
}
|
307 |
|
@@ -330,8 +322,7 @@ class EDD_Cart {
|
|
330 |
|
331 |
$has_discounts = false;
|
332 |
|
333 |
-
|
334 |
-
if ( ! empty( $discounts ) ) {
|
335 |
$has_discounts = true;
|
336 |
}
|
337 |
|
@@ -665,7 +656,7 @@ class EDD_Cart {
|
|
665 |
|
666 |
$discounts = false === $discount ? $this->get_discounts() : array( $discount );
|
667 |
|
668 |
-
if (
|
669 |
foreach ( $discounts as $discount ) {
|
670 |
$code_id = edd_get_discount_id_by_code( $discount );
|
671 |
|
@@ -846,7 +837,7 @@ class EDD_Cart {
|
|
846 |
$quantity = 1;
|
847 |
}
|
848 |
|
849 |
-
return
|
850 |
}
|
851 |
|
852 |
/**
|
@@ -1286,11 +1277,6 @@ class EDD_Cart {
|
|
1286 |
}
|
1287 |
$cart_tax += $this->get_tax_on_fees();
|
1288 |
|
1289 |
-
$subtotal = $this->get_subtotal();
|
1290 |
-
if ( empty( $subtotal ) ) {
|
1291 |
-
$cart_tax = 0;
|
1292 |
-
}
|
1293 |
-
|
1294 |
$cart_tax = apply_filters( 'edd_get_cart_tax', edd_sanitize_amount( $cart_tax ) );
|
1295 |
|
1296 |
return $cart_tax;
|
137 |
$this->get_contents_details();
|
138 |
$this->get_all_fees();
|
139 |
$this->get_discounts_from_session();
|
140 |
+
$this->quantity = $this->get_quantity();
|
141 |
}
|
142 |
|
143 |
/**
|
173 |
*
|
174 |
* @since 2.7
|
175 |
* @access public
|
176 |
+
* @return void
|
177 |
*/
|
178 |
public function get_contents() {
|
179 |
if ( ! did_action( 'edd_cart_contents_loaded_from_session' ) ) {
|
228 |
}
|
229 |
|
230 |
$item['quantity'] = edd_item_quantities_enabled() ? absint( $item['quantity'] ) : 1;
|
|
|
231 |
|
232 |
$options = isset( $item['options'] ) ? $item['options'] : array();
|
233 |
|
238 |
$discount = apply_filters( 'edd_get_cart_content_details_item_discount_amount', $discount, $item );
|
239 |
$quantity = $this->get_item_quantity( $item['id'], $options );
|
240 |
$fees = $this->get_fees( 'fee', $item['id'], $price_id );
|
241 |
+
$subtotal = $item_price * $quantity;
|
242 |
|
243 |
+
// Subtotal for tax calculation must bwe exclusive of fees. See $this->get_tax_on_fees()
|
244 |
$subtotal_for_tax = $subtotal;
|
245 |
|
246 |
foreach ( $fees as $fee ) {
|
|
|
247 |
$fee_amount = (float) $fee['amount'];
|
248 |
$subtotal += $fee_amount;
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
}
|
250 |
|
251 |
+
$tax = $this->get_item_tax( $item['id'], $options, $subtotal_for_tax - $discount );
|
252 |
|
253 |
if ( edd_prices_include_tax() ) {
|
254 |
$subtotal -= round( $tax, edd_currency_decimal_filter() );
|
293 |
*/
|
294 |
public function get_discounts() {
|
295 |
$this->get_discounts_from_session();
|
296 |
+
$this->discounts = ! empty( $this->discounts ) ? explode( '|', $this->discounts ) : false;
|
297 |
return $this->discounts;
|
298 |
}
|
299 |
|
322 |
|
323 |
$has_discounts = false;
|
324 |
|
325 |
+
if ( $this->get_discounts() ) {
|
|
|
326 |
$has_discounts = true;
|
327 |
}
|
328 |
|
656 |
|
657 |
$discounts = false === $discount ? $this->get_discounts() : array( $discount );
|
658 |
|
659 |
+
if ( $discounts ) {
|
660 |
foreach ( $discounts as $discount ) {
|
661 |
$code_id = edd_get_discount_id_by_code( $discount );
|
662 |
|
837 |
$quantity = 1;
|
838 |
}
|
839 |
|
840 |
+
return apply_filters( 'edd_get_cart_item_quantity', $quantity, $download_id, $options );
|
841 |
}
|
842 |
|
843 |
/**
|
1277 |
}
|
1278 |
$cart_tax += $this->get_tax_on_fees();
|
1279 |
|
|
|
|
|
|
|
|
|
|
|
1280 |
$cart_tax = apply_filters( 'edd_get_cart_tax', edd_sanitize_amount( $cart_tax ) );
|
1281 |
|
1282 |
return $cart_tax;
|
includes/cart/functions.php
CHANGED
@@ -603,6 +603,8 @@ function edd_get_cart_token() {
|
|
603 |
/**
|
604 |
* Delete Saved Carts after one week
|
605 |
*
|
|
|
|
|
606 |
* @since 1.8
|
607 |
* @global $wpdb
|
608 |
* @return void
|
@@ -610,6 +612,11 @@ function edd_get_cart_token() {
|
|
610 |
function edd_delete_saved_carts() {
|
611 |
global $wpdb;
|
612 |
|
|
|
|
|
|
|
|
|
|
|
613 |
$start = date( 'Y-m-d', strtotime( '-7 days' ) );
|
614 |
$carts = $wpdb->get_results(
|
615 |
"
|
603 |
/**
|
604 |
* Delete Saved Carts after one week
|
605 |
*
|
606 |
+
* This function is only intended to be used by WordPress cron.
|
607 |
+
*
|
608 |
* @since 1.8
|
609 |
* @global $wpdb
|
610 |
* @return void
|
612 |
function edd_delete_saved_carts() {
|
613 |
global $wpdb;
|
614 |
|
615 |
+
// Bail if not in WordPress cron
|
616 |
+
if ( ! edd_doing_cron() ) {
|
617 |
+
return;
|
618 |
+
}
|
619 |
+
|
620 |
$start = date( 'Y-m-d', strtotime( '-7 days' ) );
|
621 |
$carts = $wpdb->get_results(
|
622 |
"
|
includes/checkout/functions.php
CHANGED
@@ -259,51 +259,33 @@ function edd_get_banned_emails() {
|
|
259 |
* Determines if an email is banned
|
260 |
*
|
261 |
* @since 2.0
|
262 |
-
* @
|
263 |
-
* @return bool
|
264 |
*/
|
265 |
function edd_is_email_banned( $email = '' ) {
|
266 |
|
267 |
-
$email = trim( $email );
|
268 |
if( empty( $email ) ) {
|
269 |
return false;
|
270 |
}
|
271 |
|
272 |
-
$email = strtolower( $email );
|
273 |
$banned_emails = edd_get_banned_emails();
|
274 |
|
275 |
if( ! is_array( $banned_emails ) || empty( $banned_emails ) ) {
|
276 |
return false;
|
277 |
}
|
278 |
|
279 |
-
$return = false;
|
280 |
foreach( $banned_emails as $banned_email ) {
|
281 |
-
|
282 |
-
$banned_email = strtolower( $banned_email );
|
283 |
-
|
284 |
if( is_email( $banned_email ) ) {
|
285 |
-
|
286 |
-
// Complete email address
|
287 |
-
$return = ( $banned_email == $email ? true : false );
|
288 |
-
|
289 |
-
} elseif ( strpos( $banned_email, '.' ) === 0 ) {
|
290 |
-
|
291 |
-
// TLD block
|
292 |
-
$return = ( substr( $email, ( strlen( $banned_email ) * -1 ) ) == $banned_email ) ? true : false;
|
293 |
-
|
294 |
} else {
|
295 |
-
|
296 |
-
// Domain block
|
297 |
-
$return = ( stristr( $email, $banned_email ) ? true : false );
|
298 |
-
|
299 |
}
|
300 |
|
301 |
-
if( true === $
|
302 |
break;
|
303 |
}
|
304 |
}
|
305 |
|
306 |
-
return apply_filters( 'edd_is_email_banned', $
|
307 |
}
|
308 |
|
309 |
/**
|
259 |
* Determines if an email is banned
|
260 |
*
|
261 |
* @since 2.0
|
262 |
+
* @return bool
|
|
|
263 |
*/
|
264 |
function edd_is_email_banned( $email = '' ) {
|
265 |
|
|
|
266 |
if( empty( $email ) ) {
|
267 |
return false;
|
268 |
}
|
269 |
|
|
|
270 |
$banned_emails = edd_get_banned_emails();
|
271 |
|
272 |
if( ! is_array( $banned_emails ) || empty( $banned_emails ) ) {
|
273 |
return false;
|
274 |
}
|
275 |
|
|
|
276 |
foreach( $banned_emails as $banned_email ) {
|
|
|
|
|
|
|
277 |
if( is_email( $banned_email ) ) {
|
278 |
+
$ret = ( $banned_email == trim( $email ) ? true : false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
279 |
} else {
|
280 |
+
$ret = ( stristr( trim( $email ), $banned_email ) ? true : false );
|
|
|
|
|
|
|
281 |
}
|
282 |
|
283 |
+
if( true === $ret ) {
|
284 |
break;
|
285 |
}
|
286 |
}
|
287 |
|
288 |
+
return apply_filters( 'edd_is_email_banned', $ret, $email );
|
289 |
}
|
290 |
|
291 |
/**
|
includes/checkout/template.php
CHANGED
@@ -246,7 +246,7 @@ function edd_get_cc_form() {
|
|
246 |
<span class="card-type"></span>
|
247 |
</label>
|
248 |
<span class="edd-description"><?php _e( 'The (typically) 16 digits on the front of your credit card.', 'easy-digital-downloads' ); ?></span>
|
249 |
-
<input type="tel" pattern="
|
250 |
</p>
|
251 |
<p id="edd-card-cvc-wrap">
|
252 |
<label for="card_cvc" class="edd-label">
|
@@ -326,18 +326,6 @@ function edd_default_cc_address_fields() {
|
|
326 |
|
327 |
}
|
328 |
|
329 |
-
/**
|
330 |
-
* Billing Address Details.
|
331 |
-
*
|
332 |
-
* Allows filtering the customer address details that will be pre-populated on the checkout form.
|
333 |
-
*
|
334 |
-
* @since 2.8
|
335 |
-
*
|
336 |
-
* @param array $address The customer address.
|
337 |
-
* @param array $customer The customer data from the session
|
338 |
-
*/
|
339 |
-
$customer['address'] = apply_filters( 'edd_checkout_billing_details_address', $customer['address'], $customer );
|
340 |
-
|
341 |
ob_start(); ?>
|
342 |
<fieldset id="edd_cc_address" class="cc-address">
|
343 |
<legend><?php _e( 'Billing Details', 'easy-digital-downloads' ); ?></legend>
|
@@ -745,10 +733,8 @@ function edd_discount_field() {
|
|
745 |
<?php _e( 'Discount', 'easy-digital-downloads' ); ?>
|
746 |
</label>
|
747 |
<span class="edd-description"><?php _e( 'Enter a coupon code if you have one.', 'easy-digital-downloads' ); ?></span>
|
748 |
-
<
|
749 |
-
|
750 |
-
<input type="submit" class="edd-apply-discount edd-submit button <?php echo $color . ' ' . $style; ?>" value="<?php echo _x( 'Apply', 'Apply discount at checkout', 'easy-digital-downloads' ); ?>"/>
|
751 |
-
</span>
|
752 |
<span class="edd-discount-loader edd-loading" id="edd-discount-loader" style="display:none;"></span>
|
753 |
<span id="edd-discount-error-wrap" class="edd_error edd-alert edd-alert-error" aria-hidden="true" style="display:none;"></span>
|
754 |
</p>
|
@@ -770,8 +756,6 @@ function edd_terms_agreement() {
|
|
770 |
if ( edd_get_option( 'show_agree_to_terms', false ) ) {
|
771 |
$agree_text = edd_get_option( 'agree_text', '' );
|
772 |
$agree_label = edd_get_option( 'agree_label', __( 'Agree to Terms?', 'easy-digital-downloads' ) );
|
773 |
-
|
774 |
-
ob_start();
|
775 |
?>
|
776 |
<fieldset id="edd_terms_agreement">
|
777 |
<div id="edd_terms" style="display:none;">
|
@@ -791,9 +775,6 @@ function edd_terms_agreement() {
|
|
791 |
</div>
|
792 |
</fieldset>
|
793 |
<?php
|
794 |
-
$html_output = ob_get_clean();
|
795 |
-
|
796 |
-
echo apply_filters( 'edd_checkout_terms_agreement_html', $html_output );
|
797 |
}
|
798 |
}
|
799 |
add_action( 'edd_purchase_form_before_submit', 'edd_terms_agreement' );
|
@@ -887,12 +868,11 @@ function edd_checkout_button_purchase() {
|
|
887 |
* @return string
|
888 |
*/
|
889 |
function edd_get_checkout_button_purchase_label() {
|
|
|
890 |
|
891 |
if ( edd_get_cart_total() ) {
|
892 |
-
$label = edd_get_option( 'checkout_label', '' );
|
893 |
$complete_purchase = ! empty( $label ) ? $label : __( 'Purchase', 'easy-digital-downloads' );
|
894 |
} else {
|
895 |
-
$label = edd_get_option( 'free_checkout_label', '' );
|
896 |
$complete_purchase = ! empty( $label ) ? $label : __( 'Free Download', 'easy-digital-downloads' );
|
897 |
}
|
898 |
|
@@ -970,34 +950,5 @@ add_filter( 'the_content', 'edd_filter_success_page_content', 99999 );
|
|
970 |
* @return boolean
|
971 |
*/
|
972 |
function edd_receipt_show_download_files( $item_id, $receipt_args, $item = array() ) {
|
973 |
-
|
974 |
-
$ret = true;
|
975 |
-
|
976 |
-
/*
|
977 |
-
* If re-download is disabled, set return to false
|
978 |
-
*
|
979 |
-
* When the purchase session is still present AND the receipt being shown is for that purchase,
|
980 |
-
* file download links are still shown. Once session expires, links are disabled
|
981 |
-
*/
|
982 |
-
if ( edd_no_redownload() ) {
|
983 |
-
|
984 |
-
$key = isset( $_GET['payment_key'] ) ? sanitize_text_field( $_GET['payment_key'] ) : '';
|
985 |
-
$session = edd_get_purchase_session();
|
986 |
-
|
987 |
-
if ( ! empty( $key ) && ! empty( $session ) && $key != $session['purchase_key'] ) {
|
988 |
-
|
989 |
-
// We have session data but the payment key provided is not for this session
|
990 |
-
$ret = false;
|
991 |
-
|
992 |
-
} elseif ( empty( $session ) ) {
|
993 |
-
|
994 |
-
// No session data is present but a key has been provided
|
995 |
-
$ret = false;
|
996 |
-
|
997 |
-
}
|
998 |
-
|
999 |
-
|
1000 |
-
}
|
1001 |
-
|
1002 |
-
return apply_filters( 'edd_receipt_show_download_files', $ret, $item_id, $receipt_args, $item );
|
1003 |
}
|
246 |
<span class="card-type"></span>
|
247 |
</label>
|
248 |
<span class="edd-description"><?php _e( 'The (typically) 16 digits on the front of your credit card.', 'easy-digital-downloads' ); ?></span>
|
249 |
+
<input type="tel" pattern="[0-9]{13,16}" autocomplete="off" name="card_number" id="card_number" class="card-number edd-input required" placeholder="<?php _e( 'Card number', 'easy-digital-downloads' ); ?>" />
|
250 |
</p>
|
251 |
<p id="edd-card-cvc-wrap">
|
252 |
<label for="card_cvc" class="edd-label">
|
326 |
|
327 |
}
|
328 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
329 |
ob_start(); ?>
|
330 |
<fieldset id="edd_cc_address" class="cc-address">
|
331 |
<legend><?php _e( 'Billing Details', 'easy-digital-downloads' ); ?></legend>
|
733 |
<?php _e( 'Discount', 'easy-digital-downloads' ); ?>
|
734 |
</label>
|
735 |
<span class="edd-description"><?php _e( 'Enter a coupon code if you have one.', 'easy-digital-downloads' ); ?></span>
|
736 |
+
<input class="edd-input" type="text" id="edd-discount" name="edd-discount" placeholder="<?php _e( 'Enter discount', 'easy-digital-downloads' ); ?>"/>
|
737 |
+
<input type="submit" class="edd-apply-discount edd-submit button <?php echo $color . ' ' . $style; ?>" value="<?php echo _x( 'Apply', 'Apply discount at checkout', 'easy-digital-downloads' ); ?>"/>
|
|
|
|
|
738 |
<span class="edd-discount-loader edd-loading" id="edd-discount-loader" style="display:none;"></span>
|
739 |
<span id="edd-discount-error-wrap" class="edd_error edd-alert edd-alert-error" aria-hidden="true" style="display:none;"></span>
|
740 |
</p>
|
756 |
if ( edd_get_option( 'show_agree_to_terms', false ) ) {
|
757 |
$agree_text = edd_get_option( 'agree_text', '' );
|
758 |
$agree_label = edd_get_option( 'agree_label', __( 'Agree to Terms?', 'easy-digital-downloads' ) );
|
|
|
|
|
759 |
?>
|
760 |
<fieldset id="edd_terms_agreement">
|
761 |
<div id="edd_terms" style="display:none;">
|
775 |
</div>
|
776 |
</fieldset>
|
777 |
<?php
|
|
|
|
|
|
|
778 |
}
|
779 |
}
|
780 |
add_action( 'edd_purchase_form_before_submit', 'edd_terms_agreement' );
|
868 |
* @return string
|
869 |
*/
|
870 |
function edd_get_checkout_button_purchase_label() {
|
871 |
+
$label = edd_get_option( 'checkout_label', '' );
|
872 |
|
873 |
if ( edd_get_cart_total() ) {
|
|
|
874 |
$complete_purchase = ! empty( $label ) ? $label : __( 'Purchase', 'easy-digital-downloads' );
|
875 |
} else {
|
|
|
876 |
$complete_purchase = ! empty( $label ) ? $label : __( 'Free Download', 'easy-digital-downloads' );
|
877 |
}
|
878 |
|
950 |
* @return boolean
|
951 |
*/
|
952 |
function edd_receipt_show_download_files( $item_id, $receipt_args, $item = array() ) {
|
953 |
+
return apply_filters( 'edd_receipt_show_download_files', true, $item_id, $receipt_args, $item );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
954 |
}
|
includes/class-edd-cli.php
CHANGED
@@ -363,20 +363,12 @@ class EDD_CLI extends WP_CLI_Command {
|
|
363 |
*
|
364 |
* ## OPTIONS
|
365 |
*
|
366 |
-
*
|
367 |
-
*
|
368 |
* ## EXAMPLES
|
369 |
-
*
|
370 |
* wp edd sales
|
371 |
-
* wp edd sales --email=john@test.com
|
372 |
*/
|
373 |
public function sales( $args, $assoc_args ) {
|
374 |
-
|
375 |
-
$email = isset( $assoc_args ) && array_key_exists( 'email', $assoc_args ) ? $assoc_args['email'] : '';
|
376 |
-
|
377 |
-
global $wp_query;
|
378 |
-
|
379 |
-
$wp_query->query_vars['email'] = $email;
|
380 |
|
381 |
$sales = $this->api->get_recent_sales();
|
382 |
|
@@ -495,7 +487,7 @@ class EDD_CLI extends WP_CLI_Command {
|
|
495 |
*
|
496 |
* ## EXAMPLES
|
497 |
*
|
498 |
-
* wp edd payments create --number=10 --status=
|
499 |
* wp edd payments create --number=10 --id=103
|
500 |
*/
|
501 |
public function payments( $args, $assoc_args ) {
|
@@ -579,8 +571,6 @@ class EDD_CLI extends WP_CLI_Command {
|
|
579 |
'discount' => 'none'
|
580 |
);
|
581 |
|
582 |
-
$progress = \WP_CLI\Utils\make_progress_bar( 'Creating Payments', $number );
|
583 |
-
|
584 |
for( $i = 0; $i < $number; $i++ ) {
|
585 |
|
586 |
$products = array();
|
@@ -593,7 +583,7 @@ class EDD_CLI extends WP_CLI_Command {
|
|
593 |
'post_type' => 'download',
|
594 |
'orderby' => 'rand',
|
595 |
'order' => 'ASC',
|
596 |
-
'posts_per_page'=>
|
597 |
) );
|
598 |
|
599 |
} else {
|
@@ -627,13 +617,11 @@ class EDD_CLI extends WP_CLI_Command {
|
|
627 |
$prices = edd_get_variable_prices( $download->ID );
|
628 |
|
629 |
if( false === $price_id || ! array_key_exists( $price_id, (array) $prices ) ) {
|
630 |
-
$
|
631 |
-
} else {
|
632 |
-
$item_price_id = $price_id;
|
633 |
}
|
634 |
|
635 |
-
$item_price = $prices[ $
|
636 |
-
$options['price_id'] = $
|
637 |
|
638 |
} else {
|
639 |
|
@@ -713,12 +701,8 @@ class EDD_CLI extends WP_CLI_Command {
|
|
713 |
$payment->save();
|
714 |
}
|
715 |
|
716 |
-
$progress->tick();
|
717 |
-
|
718 |
}
|
719 |
|
720 |
-
$progress->finish();
|
721 |
-
|
722 |
WP_CLI::success( sprintf( __( 'Created %s payments', 'easy-digital-downloads' ), $number ) );
|
723 |
return;
|
724 |
}
|
363 |
*
|
364 |
* ## OPTIONS
|
365 |
*
|
366 |
+
*
|
|
|
367 |
* ## EXAMPLES
|
368 |
+
*
|
369 |
* wp edd sales
|
|
|
370 |
*/
|
371 |
public function sales( $args, $assoc_args ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
372 |
|
373 |
$sales = $this->api->get_recent_sales();
|
374 |
|
487 |
*
|
488 |
* ## EXAMPLES
|
489 |
*
|
490 |
+
* wp edd payments create --number=10 --status=completed
|
491 |
* wp edd payments create --number=10 --id=103
|
492 |
*/
|
493 |
public function payments( $args, $assoc_args ) {
|
571 |
'discount' => 'none'
|
572 |
);
|
573 |
|
|
|
|
|
574 |
for( $i = 0; $i < $number; $i++ ) {
|
575 |
|
576 |
$products = array();
|
583 |
'post_type' => 'download',
|
584 |
'orderby' => 'rand',
|
585 |
'order' => 'ASC',
|
586 |
+
'posts_per_page'=> 1
|
587 |
) );
|
588 |
|
589 |
} else {
|
617 |
$prices = edd_get_variable_prices( $download->ID );
|
618 |
|
619 |
if( false === $price_id || ! array_key_exists( $price_id, (array) $prices ) ) {
|
620 |
+
$price_id = rand( 0, count( $prices ) - 1 );
|
|
|
|
|
621 |
}
|
622 |
|
623 |
+
$item_price = $prices[ $price_id ]['amount'];
|
624 |
+
$options['price_id'] = $price_id;
|
625 |
|
626 |
} else {
|
627 |
|
701 |
$payment->save();
|
702 |
}
|
703 |
|
|
|
|
|
704 |
}
|
705 |
|
|
|
|
|
706 |
WP_CLI::success( sprintf( __( 'Created %s payments', 'easy-digital-downloads' ), $number ) );
|
707 |
return;
|
708 |
}
|
includes/class-edd-customer-query.php
DELETED
@@ -1,750 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Customer query class
|
4 |
-
*
|
5 |
-
* This class should be used for querying customers.
|
6 |
-
*
|
7 |
-
* @package EDD
|
8 |
-
* @subpackage Classes/Customer Query
|
9 |
-
* @copyright Copyright (c) 2015, Pippin Williamson
|
10 |
-
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
11 |
-
* @since 2.8
|
12 |
-
*/
|
13 |
-
|
14 |
-
// Exit if accessed directly
|
15 |
-
if ( ! defined( 'ABSPATH' ) ) exit;
|
16 |
-
|
17 |
-
class EDD_Customer_Query {
|
18 |
-
|
19 |
-
/**
|
20 |
-
* SQL for database query.
|
21 |
-
*
|
22 |
-
* @access public
|
23 |
-
* @since 2.8
|
24 |
-
* @var string
|
25 |
-
*/
|
26 |
-
public $request;
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Date query container.
|
30 |
-
*
|
31 |
-
* @access public
|
32 |
-
* @since 2.8
|
33 |
-
* @var object WP_Date_Query
|
34 |
-
*/
|
35 |
-
public $date_query = false;
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Meta query container.
|
39 |
-
*
|
40 |
-
* @access public
|
41 |
-
* @since 2.8
|
42 |
-
* @var object WP_Meta_Query
|
43 |
-
*/
|
44 |
-
public $meta_query = false;
|
45 |
-
|
46 |
-
/**
|
47 |
-
* Query vars set by the user.
|
48 |
-
*
|
49 |
-
* @access public
|
50 |
-
* @since 2.8
|
51 |
-
* @var array
|
52 |
-
*/
|
53 |
-
public $query_vars;
|
54 |
-
|
55 |
-
/**
|
56 |
-
* Default values for query vars.
|
57 |
-
*
|
58 |
-
* @access public
|
59 |
-
* @since 2.8
|
60 |
-
* @var array
|
61 |
-
*/
|
62 |
-
public $query_var_defaults;
|
63 |
-
|
64 |
-
/**
|
65 |
-
* List of customers located by the query.
|
66 |
-
*
|
67 |
-
* @access public
|
68 |
-
* @since 2.8
|
69 |
-
* @var array
|
70 |
-
*/
|
71 |
-
public $items;
|
72 |
-
|
73 |
-
/**
|
74 |
-
* The amount of found customers for the current query.
|
75 |
-
*
|
76 |
-
* @access public
|
77 |
-
* @since 2.8
|
78 |
-
* @var int
|
79 |
-
*/
|
80 |
-
public $found_items = 0;
|
81 |
-
|
82 |
-
/**
|
83 |
-
* The number of pages.
|
84 |
-
*
|
85 |
-
* @access public
|
86 |
-
* @since 2.8
|
87 |
-
* @var int
|
88 |
-
*/
|
89 |
-
public $max_num_pages = 0;
|
90 |
-
|
91 |
-
/**
|
92 |
-
* SQL query clauses.
|
93 |
-
*
|
94 |
-
* @access protected
|
95 |
-
* @since 2.8
|
96 |
-
* @var array
|
97 |
-
*/
|
98 |
-
protected $sql_clauses = array(
|
99 |
-
'select' => '',
|
100 |
-
'from' => '',
|
101 |
-
'where' => array(),
|
102 |
-
'groupby' => '',
|
103 |
-
'orderby' => '',
|
104 |
-
'limits' => '',
|
105 |
-
);
|
106 |
-
|
107 |
-
/**
|
108 |
-
* Metadata query clauses.
|
109 |
-
*
|
110 |
-
* @access protected
|
111 |
-
* @since 2.8
|
112 |
-
* @var array
|
113 |
-
*/
|
114 |
-
protected $meta_query_clauses = array();
|
115 |
-
|
116 |
-
/**
|
117 |
-
* EDD_DB_Customers instance.
|
118 |
-
*
|
119 |
-
* @access protected
|
120 |
-
* @since 2.8
|
121 |
-
* @var EDD_DB_Customers
|
122 |
-
*/
|
123 |
-
protected $edd_db_customers;
|
124 |
-
|
125 |
-
/**
|
126 |
-
* The name of our database table.
|
127 |
-
*
|
128 |
-
* @access protected
|
129 |
-
* @since 2.8
|
130 |
-
* @var string
|
131 |
-
*/
|
132 |
-
protected $table_name;
|
133 |
-
|
134 |
-
/**
|
135 |
-
* The meta type.
|
136 |
-
*
|
137 |
-
* @access protected
|
138 |
-
* @since 2.8
|
139 |
-
* @var string
|
140 |
-
*/
|
141 |
-
protected $meta_type;
|
142 |
-
|
143 |
-
/**
|
144 |
-
* The name of the primary column.
|
145 |
-
*
|
146 |
-
* @access protected
|
147 |
-
* @since 2.8
|
148 |
-
* @var string
|
149 |
-
*/
|
150 |
-
protected $primary_key;
|
151 |
-
|
152 |
-
/**
|
153 |
-
* The name of the date column.
|
154 |
-
*
|
155 |
-
* @access protected
|
156 |
-
* @since 2.8
|
157 |
-
* @var string
|
158 |
-
*/
|
159 |
-
protected $date_key;
|
160 |
-
|
161 |
-
/**
|
162 |
-
* The name of the cache group.
|
163 |
-
*
|
164 |
-
* @access protected
|
165 |
-
* @since 2.8
|
166 |
-
* @var string
|
167 |
-
*/
|
168 |
-
protected $cache_group;
|
169 |
-
|
170 |
-
/**
|
171 |
-
* Constructor.
|
172 |
-
*
|
173 |
-
* Sets up the customer query defaults and optionally runs a query.
|
174 |
-
*
|
175 |
-
* @access public
|
176 |
-
* @since 2.8
|
177 |
-
*
|
178 |
-
* @param string|array $query {
|
179 |
-
* Optional. Array or query string of customer query parameters. Default empty.
|
180 |
-
*
|
181 |
-
* @type int $number Maximum number of customers to retrieve. Default 20.
|
182 |
-
* @type int $offset Number of customers to offset the query. Default 0.
|
183 |
-
* @type string|array $orderby Customer status or array of statuses. To use 'meta_value'
|
184 |
-
* or 'meta_value_num', `$meta_key` must also be provided.
|
185 |
-
* To sort by a specific `$meta_query` clause, use that
|
186 |
-
* clause's array key. Accepts 'id', 'user_id', 'name',
|
187 |
-
* 'email', 'payment_ids', 'purchase_value', 'purchase_count',
|
188 |
-
* 'notes', 'date_created', 'meta_value', 'meta_value_num',
|
189 |
-
* the value of `$meta_key`, and the array keys of `$meta_query`.
|
190 |
-
* Also accepts false, an empty array, or 'none' to disable the
|
191 |
-
* `ORDER BY` clause. Default 'id'.
|
192 |
-
* @type string $order How to order retrieved customers. Accepts 'ASC', 'DESC'.
|
193 |
-
* Default 'DESC'.
|
194 |
-
* @type string|array $include String or array of customer IDs to include. Default empty.
|
195 |
-
* @type string|array $exclude String or array of customer IDs to exclude. Default empty.
|
196 |
-
* @type string|array $users_include String or array of customer user IDs to include. Default
|
197 |
-
* empty.
|
198 |
-
* @type string|array $users_exclude String or array of customer user IDs to exclude. Default
|
199 |
-
* empty.
|
200 |
-
* @type string|array $email Limit results to those customers affiliated with one of
|
201 |
-
* the given emails. Default empty.
|
202 |
-
* @type string $search Search term(s) to retrieve matching customers for. Searches
|
203 |
-
* through customer names. Default empty.
|
204 |
-
* @type string|array $search_columns Columns to search using the value of `$search`. Default 'name'.
|
205 |
-
* @type string $meta_key Include customers with a matching customer meta key.
|
206 |
-
* Default empty.
|
207 |
-
* @type string $meta_value Include customers with a matching customer meta value.
|
208 |
-
* Requires `$meta_key` to be set. Default empty.
|
209 |
-
* @type array $meta_query Meta query clauses to limit retrieved customers by.
|
210 |
-
* See `WP_Meta_Query`. Default empty.
|
211 |
-
* @type array $date_query Date query clauses to limit retrieved customers by.
|
212 |
-
* See `WP_Date_Query`. Default empty.
|
213 |
-
* @type bool $count Whether to return a count (true) instead of an array of
|
214 |
-
* customer objects. Default false.
|
215 |
-
* @type bool $no_found_rows Whether to disable the `SQL_CALC_FOUND_ROWS` query.
|
216 |
-
* Default true.
|
217 |
-
* }
|
218 |
-
*/
|
219 |
-
public function __construct( $query = '', $edd_db_customers = null ) {
|
220 |
-
if ( $edd_db_customers ) {
|
221 |
-
$this->edd_db_customers = $edd_db_customers;
|
222 |
-
} else {
|
223 |
-
$this->edd_db_customers = EDD()->customers;
|
224 |
-
}
|
225 |
-
|
226 |
-
$this->table_name = $this->edd_db_customers->table_name;
|
227 |
-
$this->meta_type = $this->edd_db_customers->meta_type;
|
228 |
-
$this->primary_key = $this->edd_db_customers->primary_key;
|
229 |
-
$this->date_key = $this->edd_db_customers->date_key;
|
230 |
-
$this->cache_group = $this->edd_db_customers->cache_group;
|
231 |
-
|
232 |
-
$this->query_var_defaults = array(
|
233 |
-
'number' => 20,
|
234 |
-
'offset' => 0,
|
235 |
-
'orderby' => 'id',
|
236 |
-
'order' => 'DESC',
|
237 |
-
'include' => '',
|
238 |
-
'exclude' => '',
|
239 |
-
'users_include' => '',
|
240 |
-
'users_exclude' => '',
|
241 |
-
'email' => '',
|
242 |
-
'search' => '',
|
243 |
-
'meta_key' => '',
|
244 |
-
'meta_value' => '',
|
245 |
-
'meta_query' => '',
|
246 |
-
'date_query' => null,
|
247 |
-
'count' => false,
|
248 |
-
'no_found_rows' => true,
|
249 |
-
);
|
250 |
-
|
251 |
-
if ( ! empty( $query ) ) {
|
252 |
-
$this->query( $query );
|
253 |
-
}
|
254 |
-
}
|
255 |
-
|
256 |
-
/**
|
257 |
-
* Sets up the query for retrieving customers.
|
258 |
-
*
|
259 |
-
* @access public
|
260 |
-
* @since 2.8
|
261 |
-
*
|
262 |
-
* @see EDD_Customer_Query::__construct()
|
263 |
-
*
|
264 |
-
* @param string|array $query Array or query string of parameters. See EDD_Customer_Query::__construct().
|
265 |
-
* @return array|int List of customers, or number of customers when 'count' is passed as a query var.
|
266 |
-
*/
|
267 |
-
public function query( $query ) {
|
268 |
-
$this->query_vars = wp_parse_args( $query );
|
269 |
-
$items = $this->get_items();
|
270 |
-
|
271 |
-
return $items;
|
272 |
-
}
|
273 |
-
|
274 |
-
/**
|
275 |
-
* Parses arguments passed to the customer query with default query parameters.
|
276 |
-
*
|
277 |
-
* @access protected
|
278 |
-
* @since 2.8
|
279 |
-
*/
|
280 |
-
protected function parse_query() {
|
281 |
-
$this->query_vars = wp_parse_args( $this->query_vars, $this->query_var_defaults );
|
282 |
-
|
283 |
-
if ( $this->query_vars['number'] < 1 ) {
|
284 |
-
$this->query_vars['number'] = 999999999999;
|
285 |
-
}
|
286 |
-
|
287 |
-
$this->query_vars['offset'] = absint( $this->query_vars['offset'] );
|
288 |
-
|
289 |
-
if ( ! empty( $this->query_vars['date_query'] ) && is_array( $this->query_vars['date_query'] ) ) {
|
290 |
-
$this->date_query = new WP_Date_Query( $this->query_vars['date_query'], $this->table_name . '.' . $this->date_key );
|
291 |
-
}
|
292 |
-
|
293 |
-
$this->meta_query = new WP_Meta_Query();
|
294 |
-
$this->meta_query->parse_query_vars( $this->query_vars );
|
295 |
-
|
296 |
-
if ( ! empty( $this->meta_query->queries ) ) {
|
297 |
-
$this->meta_query_clauses = $this->meta_query->get_sql( $this->meta_type, $this->table_name, $this->primary_key, $this );
|
298 |
-
}
|
299 |
-
|
300 |
-
/**
|
301 |
-
* Fires after the customer query vars have been parsed.
|
302 |
-
*
|
303 |
-
* @since 2.8
|
304 |
-
*
|
305 |
-
* @param EDD_Customer_Query &$this The EDD_Customer_Query instance (passed by reference).
|
306 |
-
*/
|
307 |
-
do_action_ref_array( 'edd_parse_customer_query', array( &$this ) );
|
308 |
-
}
|
309 |
-
|
310 |
-
/**
|
311 |
-
* Retrieves a list of customers matching the query vars.
|
312 |
-
*
|
313 |
-
* Tries to use a cached value and otherwise uses `EDD_Customer_Query::query_items()`.
|
314 |
-
*
|
315 |
-
* @access protected
|
316 |
-
* @since 2.8
|
317 |
-
*
|
318 |
-
* @return array|int List of customers, or number of customers when 'count' is passed as a query var.
|
319 |
-
*/
|
320 |
-
protected function get_items() {
|
321 |
-
$this->parse_query();
|
322 |
-
|
323 |
-
/**
|
324 |
-
* Fires before customers are retrieved.
|
325 |
-
*
|
326 |
-
* @since 2.8
|
327 |
-
*
|
328 |
-
* @param EDD_Customer_Query &$this Current instance of EDD_Customer_Query, passed by reference.
|
329 |
-
*/
|
330 |
-
do_action_ref_array( 'edd_pre_get_customers', array( &$this ) );
|
331 |
-
|
332 |
-
// $args can include anything. Only use the args defined in the query_var_defaults to compute the key.
|
333 |
-
$key = md5( serialize( wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) ) ) );
|
334 |
-
|
335 |
-
$last_changed = $this->edd_db_customers->get_last_changed();
|
336 |
-
|
337 |
-
$cache_key = "query:$key:$last_changed";
|
338 |
-
$cache_value = wp_cache_get( $cache_key, $this->cache_group );
|
339 |
-
|
340 |
-
if ( false === $cache_value ) {
|
341 |
-
$items = $this->query_items();
|
342 |
-
|
343 |
-
if ( $items ) {
|
344 |
-
$this->set_found_items();
|
345 |
-
}
|
346 |
-
|
347 |
-
$cache_value = array(
|
348 |
-
'items' => $items,
|
349 |
-
'found_items' => $this->found_items,
|
350 |
-
);
|
351 |
-
wp_cache_add( $cache_key, $cache_value, $this->cache_group );
|
352 |
-
} else {
|
353 |
-
$items = $cache_value['items'];
|
354 |
-
$this->found_items = $cache_value['found_items'];
|
355 |
-
}
|
356 |
-
|
357 |
-
if ( $this->found_items && $this->query_vars['number'] ) {
|
358 |
-
$this->max_num_pages = ceil( $this->found_items / $this->query_vars['number'] );
|
359 |
-
}
|
360 |
-
|
361 |
-
// If querying for a count only, there's nothing more to do.
|
362 |
-
if ( $this->query_vars['count'] ) {
|
363 |
-
// $items is actually a count in this case.
|
364 |
-
return intval( $items[0]->count );
|
365 |
-
}
|
366 |
-
|
367 |
-
$this->items = $items;
|
368 |
-
|
369 |
-
return $this->items;
|
370 |
-
}
|
371 |
-
|
372 |
-
/**
|
373 |
-
* Runs a database query to retrieve customers.
|
374 |
-
*
|
375 |
-
* @access protected
|
376 |
-
* @since 2.8
|
377 |
-
*
|
378 |
-
* @global wpdb $wpdb WordPress database abstraction object.
|
379 |
-
*
|
380 |
-
* @return @return array|int List of customers, or number of customers when 'count' is passed as a query var.
|
381 |
-
*/
|
382 |
-
protected function query_items() {
|
383 |
-
global $wpdb;
|
384 |
-
|
385 |
-
$fields = $this->construct_request_fields();
|
386 |
-
$join = $this->construct_request_join();
|
387 |
-
|
388 |
-
$this->sql_clauses['where'] = $this->construct_request_where();
|
389 |
-
|
390 |
-
$orderby = $this->construct_request_orderby();
|
391 |
-
$limits = $this->construct_request_limits();
|
392 |
-
$groupby = $this->construct_request_groupby();
|
393 |
-
|
394 |
-
$found_rows = ! $this->query_vars['no_found_rows'] ? 'SQL_CALC_FOUND_ROWS' : '';
|
395 |
-
|
396 |
-
$where = implode( ' AND ', $this->sql_clauses['where'] );
|
397 |
-
|
398 |
-
if ( $where ) {
|
399 |
-
$where = "WHERE $where";
|
400 |
-
}
|
401 |
-
|
402 |
-
if ( $orderby ) {
|
403 |
-
$orderby = "ORDER BY $orderby";
|
404 |
-
}
|
405 |
-
|
406 |
-
if ( $groupby ) {
|
407 |
-
$groupby = "GROUP BY $groupby";
|
408 |
-
}
|
409 |
-
|
410 |
-
$this->sql_clauses['select'] = "SELECT $found_rows $fields";
|
411 |
-
$this->sql_clauses['from'] = "FROM $this->table_name $join";
|
412 |
-
$this->sql_clauses['groupby'] = $groupby;
|
413 |
-
$this->sql_clauses['orderby'] = $orderby;
|
414 |
-
$this->sql_clauses['limits'] = $limits;
|
415 |
-
|
416 |
-
$this->request = "{$this->sql_clauses['select']} {$this->sql_clauses['from']} {$where} {$this->sql_clauses['groupby']} {$this->sql_clauses['orderby']} {$this->sql_clauses['limits']}";
|
417 |
-
$results = $wpdb->get_results( $this->request );
|
418 |
-
|
419 |
-
return $results;
|
420 |
-
}
|
421 |
-
|
422 |
-
/**
|
423 |
-
* Populates the found_items property for the current query if the limit clause was used.
|
424 |
-
*
|
425 |
-
* @access protected
|
426 |
-
* @since 2.8
|
427 |
-
*
|
428 |
-
* @global wpdb $wpdb WordPress database abstraction object.
|
429 |
-
*/
|
430 |
-
protected function set_found_items() {
|
431 |
-
global $wpdb;
|
432 |
-
|
433 |
-
if ( $this->query_vars['number'] && ! $this->query_vars['no_found_rows'] ) {
|
434 |
-
/**
|
435 |
-
* Filters the query used to retrieve the count of found customers.
|
436 |
-
*
|
437 |
-
* @since 2.8
|
438 |
-
*
|
439 |
-
* @param string $found_customers_query SQL query. Default 'SELECT FOUND_ROWS()'.
|
440 |
-
* @param EDD_Customer_Query $customer_query The `EDD_Customer_Query` instance.
|
441 |
-
*/
|
442 |
-
$found_items_query = apply_filters( 'edd_found_customers_query', 'SELECT FOUND_ROWS()', $this );
|
443 |
-
|
444 |
-
$this->found_items = (int) $wpdb->get_var( $found_items_query );
|
445 |
-
}
|
446 |
-
}
|
447 |
-
|
448 |
-
/**
|
449 |
-
* Constructs the fields segment of the SQL request.
|
450 |
-
*
|
451 |
-
* @access protected
|
452 |
-
* @since 2.8
|
453 |
-
*
|
454 |
-
* @return string SQL fields segment.
|
455 |
-
*/
|
456 |
-
protected function construct_request_fields() {
|
457 |
-
if ( $this->query_vars['count'] ) {
|
458 |
-
return "COUNT($this->primary_key) AS count";
|
459 |
-
}
|
460 |
-
|
461 |
-
return "$this->table_name.*";
|
462 |
-
}
|
463 |
-
|
464 |
-
/**
|
465 |
-
* Constructs the join segment of the SQL request.
|
466 |
-
*
|
467 |
-
* @access protected
|
468 |
-
* @since 2.8
|
469 |
-
*
|
470 |
-
* @return string SQL join segment.
|
471 |
-
*/
|
472 |
-
protected function construct_request_join() {
|
473 |
-
$join = '';
|
474 |
-
|
475 |
-
if ( ! empty( $this->meta_query_clauses['join'] ) ) {
|
476 |
-
$join .= $this->meta_query_clauses['join'];
|
477 |
-
}
|
478 |
-
|
479 |
-
if ( ! empty( $this->query_vars['email'] ) && ! is_array( $this->query_vars['email'] ) ) {
|
480 |
-
$meta_table = _get_meta_table( $this->meta_type );
|
481 |
-
|
482 |
-
$join_type = false !== strpos( $join, 'INNER JOIN' ) ? 'INNER JOIN' : 'LEFT JOIN';
|
483 |
-
|
484 |
-
$join .= " $join_type $meta_table AS email_mt ON $this->table_name.$this->primary_key = email_mt.{$this->meta_type}_id";
|
485 |
-
}
|
486 |
-
|
487 |
-
return $join;
|
488 |
-
}
|
489 |
-
|
490 |
-
/**
|
491 |
-
* Constructs the where segment of the SQL request.
|
492 |
-
*
|
493 |
-
* @access protected
|
494 |
-
* @since 2.8
|
495 |
-
*
|
496 |
-
* @return string SQL where segment.
|
497 |
-
*/
|
498 |
-
protected function construct_request_where() {
|
499 |
-
global $wpdb;
|
500 |
-
|
501 |
-
$where = array();
|
502 |
-
|
503 |
-
if ( ! empty( $this->query_vars['include'] ) ) {
|
504 |
-
$include_ids = implode( ',', wp_parse_id_list( $this->query_vars['include'] ) );
|
505 |
-
$where['include'] = "$this->primary_key IN ( $include_ids )";
|
506 |
-
}
|
507 |
-
|
508 |
-
if ( ! empty( $this->query_vars['exclude'] ) ) {
|
509 |
-
$exclude_ids = implode( ',', wp_parse_id_list( $this->query_vars['exclude'] ) );
|
510 |
-
$where['exclude'] = "$this->primary_key NOT IN ( $exclude_ids )";
|
511 |
-
}
|
512 |
-
|
513 |
-
if ( ! empty( $this->query_vars['users_include'] ) ) {
|
514 |
-
$users_include_ids = implode( ',', wp_parse_id_list( $this->query_vars['users_include'] ) );
|
515 |
-
$where['users_include'] = "user_id IN ( $users_include_ids )";
|
516 |
-
}
|
517 |
-
|
518 |
-
if ( ! empty( $this->query_vars['users_exclude'] ) ) {
|
519 |
-
$users_exclude_ids = implode( ',', wp_parse_id_list( $this->query_vars['users_exclude'] ) );
|
520 |
-
$where['users_exclude'] = "user_id NOT IN ( $users_exclude_ids )";
|
521 |
-
}
|
522 |
-
|
523 |
-
if ( ! empty( $this->query_vars['email'] ) ) {
|
524 |
-
if ( is_array( $this->query_vars['email'] ) ) {
|
525 |
-
$email_placeholders = implode( ', ', array_fill( 0, count( $this->query_vars['email'] ), '%s' ) );
|
526 |
-
|
527 |
-
$where['email'] = $wpdb->prepare( "email IN( $email_placeholders )", $this->query_vars['email'] );
|
528 |
-
} else {
|
529 |
-
$where['email'] = $wpdb->prepare( "( ( email_mt.meta_key = 'additional_email' AND email_mt.meta_value = %s ) OR email = %s )", $this->query_vars['email'], $this->query_vars['email'] );
|
530 |
-
}
|
531 |
-
}
|
532 |
-
|
533 |
-
if ( strlen( $this->query_vars['search'] ) ) {
|
534 |
-
if ( ! empty( $this->query_vars['search_columns'] ) ) {
|
535 |
-
$search_columns = array_map( 'sanitize_key', (array) $this->query_vars['search_columns'] );
|
536 |
-
} else {
|
537 |
-
$search_columns = array( 'name' );
|
538 |
-
}
|
539 |
-
|
540 |
-
$where['search'] = $this->get_search_sql( $this->query_vars['search'], $search_columns );
|
541 |
-
}
|
542 |
-
|
543 |
-
if ( $this->date_query ) {
|
544 |
-
$where['date_query'] = preg_replace( '/^\s*AND\s*/', '', $this->date_query->get_sql() );
|
545 |
-
}
|
546 |
-
|
547 |
-
if ( ! empty( $this->meta_query_clauses['where'] ) ) {
|
548 |
-
$where['meta_query'] = preg_replace( '/^\s*AND\s*/', '', $this->meta_query_clauses['where'] );
|
549 |
-
}
|
550 |
-
|
551 |
-
return $where;
|
552 |
-
}
|
553 |
-
|
554 |
-
/**
|
555 |
-
* Constructs the orderby segment of the SQL request.
|
556 |
-
*
|
557 |
-
* @access protected
|
558 |
-
* @since 2.8
|
559 |
-
*
|
560 |
-
* @return string SQL orderby segment.
|
561 |
-
*/
|
562 |
-
protected function construct_request_orderby() {
|
563 |
-
if ( in_array( $this->query_vars['orderby'], array( 'none', array(), false ), true ) ) {
|
564 |
-
return '';
|
565 |
-
}
|
566 |
-
|
567 |
-
if ( empty( $this->query_vars['orderby'] ) ) {
|
568 |
-
return $this->primary_key . ' ' . $this->parse_order_string( $this->query_vars['order'] );
|
569 |
-
}
|
570 |
-
|
571 |
-
if ( is_string( $this->query_vars['orderby'] ) ) {
|
572 |
-
$ordersby = array( $this->query_vars['orderby'] => $this->query_vars['order'] );
|
573 |
-
} else {
|
574 |
-
$ordersby = $this->query_vars['orderby'];
|
575 |
-
}
|
576 |
-
|
577 |
-
$orderby_array = array();
|
578 |
-
|
579 |
-
foreach ( $ordersby as $orderby => $order ) {
|
580 |
-
$parsed_orderby = $this->parse_orderby_string( $orderby );
|
581 |
-
if ( ! $parsed_orderby ) {
|
582 |
-
continue;
|
583 |
-
}
|
584 |
-
|
585 |
-
$parsed_order = $this->parse_order_string( $order, $orderby );
|
586 |
-
|
587 |
-
if ( $parsed_order ) {
|
588 |
-
$orderby_array[] = $parsed_orderby . ' ' . $parsed_order;
|
589 |
-
} else {
|
590 |
-
$orderby_array[] = $parsed_orderby;
|
591 |
-
}
|
592 |
-
}
|
593 |
-
|
594 |
-
return implode( ', ', $orderby_array );
|
595 |
-
}
|
596 |
-
|
597 |
-
/**
|
598 |
-
* Constructs the limits segment of the SQL request.
|
599 |
-
*
|
600 |
-
* @access protected
|
601 |
-
* @since 2.8
|
602 |
-
*
|
603 |
-
* @return string SQL limits segment.
|
604 |
-
*/
|
605 |
-
protected function construct_request_limits() {
|
606 |
-
if ( $this->query_vars['number'] ) {
|
607 |
-
if ( $this->query_vars['offset'] ) {
|
608 |
-
return "LIMIT {$this->query_vars['offset']},{$this->query_vars['number']}";
|
609 |
-
}
|
610 |
-
|
611 |
-
return "LIMIT {$this->query_vars['number']}";
|
612 |
-
}
|
613 |
-
|
614 |
-
return '';
|
615 |
-
}
|
616 |
-
|
617 |
-
/**
|
618 |
-
* Constructs the groupby segment of the SQL request.
|
619 |
-
*
|
620 |
-
* @access protected
|
621 |
-
* @since 2.8
|
622 |
-
*
|
623 |
-
* @return string SQL groupby segment.
|
624 |
-
*/
|
625 |
-
protected function construct_request_groupby() {
|
626 |
-
if ( ! empty( $this->meta_query_clauses['join'] ) || ( ! empty( $this->query_vars['email'] ) && ! is_array( $this->query_vars['email'] ) ) ) {
|
627 |
-
return "$this->table_name.$this->primary_key";
|
628 |
-
}
|
629 |
-
|
630 |
-
return '';
|
631 |
-
}
|
632 |
-
|
633 |
-
/**
|
634 |
-
* Used internally to generate an SQL string for searching across multiple columns.
|
635 |
-
*
|
636 |
-
* @access protected
|
637 |
-
* @since 2.8
|
638 |
-
*
|
639 |
-
* @global wpdb $wpdb WordPress database abstraction object.
|
640 |
-
*
|
641 |
-
* @param string $string Search string.
|
642 |
-
* @param array $columns Columns to search.
|
643 |
-
* @return string Search SQL.
|
644 |
-
*/
|
645 |
-
protected function get_search_sql( $string, $columns ) {
|
646 |
-
global $wpdb;
|
647 |
-
|
648 |
-
if ( false !== strpos( $string, '*' ) ) {
|
649 |
-
$like = '%' . implode( '%', array_map( array( $wpdb, 'esc_like' ), explode( '*', $string ) ) ) . '%';
|
650 |
-
} else {
|
651 |
-
$like = '%' . $wpdb->esc_like( $string ) . '%';
|
652 |
-
}
|
653 |
-
|
654 |
-
$searches = array();
|
655 |
-
foreach ( $columns as $column ) {
|
656 |
-
$searches[] = $wpdb->prepare( "$column LIKE %s", $like );
|
657 |
-
}
|
658 |
-
|
659 |
-
return '(' . implode( ' OR ', $searches ) . ')';
|
660 |
-
}
|
661 |
-
|
662 |
-
/**
|
663 |
-
* Parses a single orderby string.
|
664 |
-
*
|
665 |
-
* @access protected
|
666 |
-
* @since 2.8
|
667 |
-
*
|
668 |
-
* @param string $orderby Orderby string.
|
669 |
-
* @return string Parsed orderby string to use in the SQL request, or an empty string.
|
670 |
-
*/
|
671 |
-
protected function parse_orderby_string( $orderby ) {
|
672 |
-
if ( 'include' === $orderby ) {
|
673 |
-
if ( empty( $this->query_vars['include'] ) ) {
|
674 |
-
return '';
|
675 |
-
}
|
676 |
-
|
677 |
-
$ids = implode( ',', wp_parse_id_list( $this->query_vars['include'] ) );
|
678 |
-
|
679 |
-
return "FIELD( $this->table_name.$this->primary_key, $ids )";
|
680 |
-
}
|
681 |
-
|
682 |
-
if ( ! empty( $this->meta_query_clauses['where'] ) ) {
|
683 |
-
$meta_table = _get_meta_table( $this->meta_type );
|
684 |
-
|
685 |
-
if ( $this->query_vars['meta_key'] === $orderby || 'meta_value' === $orderby ) {
|
686 |
-
return "$meta_table.meta_value";
|
687 |
-
}
|
688 |
-
|
689 |
-
if ( 'meta_value_num' === $orderby ) {
|
690 |
-
return "$meta_table.meta_value+0";
|
691 |
-
}
|
692 |
-
|
693 |
-
$meta_query_clauses = $this->meta_query->get_clauses();
|
694 |
-
|
695 |
-
if ( isset( $meta_query_clauses[ $orderby ] ) ) {
|
696 |
-
return sprintf( "CAST(%s.meta_value AS %s)", esc_sql( $meta_query_clauses[ $orderby ]['alias'] ), esc_sql( $meta_query_clauses[ $orderby ]['cast'] ) );
|
697 |
-
}
|
698 |
-
}
|
699 |
-
|
700 |
-
$allowed_keys = $this->get_allowed_orderby_keys();
|
701 |
-
|
702 |
-
if ( in_array( $orderby, $allowed_keys, true ) ) {
|
703 |
-
/* This column needs special handling here. */
|
704 |
-
if ( 'purchase_value' === $orderby ) {
|
705 |
-
return "$this->table_name.purchase_value+0";
|
706 |
-
}
|
707 |
-
|
708 |
-
return "$this->table_name.$orderby";
|
709 |
-
}
|
710 |
-
|
711 |
-
return '';
|
712 |
-
}
|
713 |
-
|
714 |
-
/**
|
715 |
-
* Parses a single order string.
|
716 |
-
*
|
717 |
-
* @access protected
|
718 |
-
* @since 2.8
|
719 |
-
*
|
720 |
-
* @param string $orderby Order string.
|
721 |
-
* @return string Parsed order string to use in the SQL request, or an empty string.
|
722 |
-
*/
|
723 |
-
protected function parse_order_string( $order, $orderby ) {
|
724 |
-
if ( 'include' === $orderby ) {
|
725 |
-
return '';
|
726 |
-
}
|
727 |
-
|
728 |
-
if ( ! is_string( $order ) || empty( $order ) ) {
|
729 |
-
return 'DESC';
|
730 |
-
}
|
731 |
-
|
732 |
-
if ( 'ASC' === strtoupper( $order ) ) {
|
733 |
-
return 'ASC';
|
734 |
-
} else {
|
735 |
-
return 'DESC';
|
736 |
-
}
|
737 |
-
}
|
738 |
-
|
739 |
-
/**
|
740 |
-
* Returns the basic allowed keys to use for the orderby clause.
|
741 |
-
*
|
742 |
-
* @access protected
|
743 |
-
* @since 2.8
|
744 |
-
*
|
745 |
-
* @return array Allowed keys.
|
746 |
-
*/
|
747 |
-
protected function get_allowed_orderby_keys() {
|
748 |
-
return array_keys( $this->edd_db_customers->get_columns() );
|
749 |
-
}
|
750 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-edd-customer.php
CHANGED
@@ -87,14 +87,7 @@ class EDD_Customer {
|
|
87 |
*
|
88 |
* @since 2.3
|
89 |
*/
|
90 |
-
|
91 |
-
|
92 |
-
/**
|
93 |
-
* The raw notes values, for internal use only
|
94 |
-
*
|
95 |
-
* @since 2.8
|
96 |
-
*/
|
97 |
-
private $raw_notes = null;
|
98 |
|
99 |
/**
|
100 |
* The Database Abstraction
|
@@ -127,6 +120,7 @@ class EDD_Customer {
|
|
127 |
$customer = $this->db->get_customer_by( $field, $_id_or_email );
|
128 |
|
129 |
if ( empty( $customer ) || ! is_object( $customer ) ) {
|
|
|
130 |
return false;
|
131 |
}
|
132 |
|
@@ -152,17 +146,7 @@ class EDD_Customer {
|
|
152 |
switch ( $key ) {
|
153 |
|
154 |
case 'notes':
|
155 |
-
|
156 |
-
$this->$key = $value;
|
157 |
-
}
|
158 |
-
break;
|
159 |
-
|
160 |
-
case 'purchase_value':
|
161 |
-
$this->$key = floatval( $value );
|
162 |
-
break;
|
163 |
-
|
164 |
-
case 'purchase_count':
|
165 |
-
$this->$key = absint( $value );
|
166 |
break;
|
167 |
|
168 |
default:
|
@@ -504,7 +488,7 @@ class EDD_Customer {
|
|
504 |
|
505 |
}
|
506 |
|
507 |
-
do_action( 'edd_customer_pre_attach_payment', $payment->ID, $this->id
|
508 |
|
509 |
$payment_added = $this->update( array( 'payment_ids' => $new_payment_ids ) );
|
510 |
|
@@ -524,7 +508,7 @@ class EDD_Customer {
|
|
524 |
|
525 |
}
|
526 |
|
527 |
-
do_action( 'edd_customer_post_attach_payment', $payment_added, $payment->ID, $this->id
|
528 |
|
529 |
return $payment_added;
|
530 |
}
|
@@ -587,7 +571,7 @@ class EDD_Customer {
|
|
587 |
|
588 |
}
|
589 |
|
590 |
-
do_action( 'edd_customer_post_remove_payment', $payment_removed, $payment->ID, $this->id
|
591 |
|
592 |
return $payment_removed;
|
593 |
|
@@ -609,13 +593,13 @@ class EDD_Customer {
|
|
609 |
|
610 |
$new_total = (int) $this->purchase_count + (int) $count;
|
611 |
|
612 |
-
do_action( 'edd_customer_pre_increase_purchase_count', $count, $this->id
|
613 |
|
614 |
if ( $this->update( array( 'purchase_count' => $new_total ) ) ) {
|
615 |
$this->purchase_count = $new_total;
|
616 |
}
|
617 |
|
618 |
-
do_action( 'edd_customer_post_increase_purchase_count', $this->purchase_count, $count, $this->id
|
619 |
|
620 |
return $this->purchase_count;
|
621 |
}
|
@@ -640,13 +624,13 @@ class EDD_Customer {
|
|
640 |
$new_total = 0;
|
641 |
}
|
642 |
|
643 |
-
do_action( 'edd_customer_pre_decrease_purchase_count', $count, $this->id
|
644 |
|
645 |
if ( $this->update( array( 'purchase_count' => $new_total ) ) ) {
|
646 |
$this->purchase_count = $new_total;
|
647 |
}
|
648 |
|
649 |
-
do_action( 'edd_customer_post_decrease_purchase_count', $this->purchase_count, $count, $this->id
|
650 |
|
651 |
return $this->purchase_count;
|
652 |
}
|
@@ -659,7 +643,8 @@ class EDD_Customer {
|
|
659 |
* @return mixed If successful, the new value, otherwise false
|
660 |
*/
|
661 |
public function increase_value( $value = 0.00 ) {
|
662 |
-
$value
|
|
|
663 |
$new_value = floatval( $this->purchase_value ) + $value;
|
664 |
|
665 |
do_action( 'edd_customer_pre_increase_value', $value, $this->id, $this );
|
@@ -761,16 +746,15 @@ class EDD_Customer {
|
|
761 |
$new_note = apply_filters( 'edd_customer_add_note_string', $note_string );
|
762 |
$notes .= "\n\n" . $new_note;
|
763 |
|
764 |
-
do_action( 'edd_customer_pre_add_note', $new_note, $this->id
|
765 |
|
766 |
$updated = $this->update( array( 'notes' => $notes ) );
|
767 |
|
768 |
if ( $updated ) {
|
769 |
-
$this->
|
770 |
-
$this->notes = $this->get_notes();
|
771 |
}
|
772 |
|
773 |
-
do_action( 'edd_customer_post_add_note', $this->notes, $new_note, $this->id
|
774 |
|
775 |
// Return the formatted note, so we can test, as well as update any displays
|
776 |
return $new_note;
|
@@ -785,13 +769,9 @@ class EDD_Customer {
|
|
785 |
*/
|
786 |
private function get_raw_notes() {
|
787 |
|
788 |
-
|
789 |
-
return $this->raw_notes;
|
790 |
-
}
|
791 |
-
|
792 |
-
$this->raw_notes = $this->db->get_column( 'notes', $this->id );
|
793 |
|
794 |
-
return (string) $
|
795 |
|
796 |
}
|
797 |
|
87 |
*
|
88 |
* @since 2.3
|
89 |
*/
|
90 |
+
public $notes;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
|
92 |
/**
|
93 |
* The Database Abstraction
|
120 |
$customer = $this->db->get_customer_by( $field, $_id_or_email );
|
121 |
|
122 |
if ( empty( $customer ) || ! is_object( $customer ) ) {
|
123 |
+
|
124 |
return false;
|
125 |
}
|
126 |
|
146 |
switch ( $key ) {
|
147 |
|
148 |
case 'notes':
|
149 |
+
$this->$key = $this->get_notes();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
break;
|
151 |
|
152 |
default:
|
488 |
|
489 |
}
|
490 |
|
491 |
+
do_action( 'edd_customer_pre_attach_payment', $payment->ID, $this->id );
|
492 |
|
493 |
$payment_added = $this->update( array( 'payment_ids' => $new_payment_ids ) );
|
494 |
|
508 |
|
509 |
}
|
510 |
|
511 |
+
do_action( 'edd_customer_post_attach_payment', $payment_added, $payment->ID, $this->id );
|
512 |
|
513 |
return $payment_added;
|
514 |
}
|
571 |
|
572 |
}
|
573 |
|
574 |
+
do_action( 'edd_customer_post_remove_payment', $payment_removed, $payment->ID, $this->id );
|
575 |
|
576 |
return $payment_removed;
|
577 |
|
593 |
|
594 |
$new_total = (int) $this->purchase_count + (int) $count;
|
595 |
|
596 |
+
do_action( 'edd_customer_pre_increase_purchase_count', $count, $this->id );
|
597 |
|
598 |
if ( $this->update( array( 'purchase_count' => $new_total ) ) ) {
|
599 |
$this->purchase_count = $new_total;
|
600 |
}
|
601 |
|
602 |
+
do_action( 'edd_customer_post_increase_purchase_count', $this->purchase_count, $count, $this->id );
|
603 |
|
604 |
return $this->purchase_count;
|
605 |
}
|
624 |
$new_total = 0;
|
625 |
}
|
626 |
|
627 |
+
do_action( 'edd_customer_pre_decrease_purchase_count', $count, $this->id );
|
628 |
|
629 |
if ( $this->update( array( 'purchase_count' => $new_total ) ) ) {
|
630 |
$this->purchase_count = $new_total;
|
631 |
}
|
632 |
|
633 |
+
do_action( 'edd_customer_post_decrease_purchase_count', $this->purchase_count, $count, $this->id );
|
634 |
|
635 |
return $this->purchase_count;
|
636 |
}
|
643 |
* @return mixed If successful, the new value, otherwise false
|
644 |
*/
|
645 |
public function increase_value( $value = 0.00 ) {
|
646 |
+
$value = apply_filters( 'edd_customer_increase_value', $value, $this );
|
647 |
+
|
648 |
$new_value = floatval( $this->purchase_value ) + $value;
|
649 |
|
650 |
do_action( 'edd_customer_pre_increase_value', $value, $this->id, $this );
|
746 |
$new_note = apply_filters( 'edd_customer_add_note_string', $note_string );
|
747 |
$notes .= "\n\n" . $new_note;
|
748 |
|
749 |
+
do_action( 'edd_customer_pre_add_note', $new_note, $this->id );
|
750 |
|
751 |
$updated = $this->update( array( 'notes' => $notes ) );
|
752 |
|
753 |
if ( $updated ) {
|
754 |
+
$this->notes = $this->get_notes();
|
|
|
755 |
}
|
756 |
|
757 |
+
do_action( 'edd_customer_post_add_note', $this->notes, $new_note, $this->id );
|
758 |
|
759 |
// Return the formatted note, so we can test, as well as update any displays
|
760 |
return $new_note;
|
769 |
*/
|
770 |
private function get_raw_notes() {
|
771 |
|
772 |
+
$all_notes = $this->db->get_column( 'notes', $this->id );
|
|
|
|
|
|
|
|
|
773 |
|
774 |
+
return (string) $all_notes;
|
775 |
|
776 |
}
|
777 |
|
includes/class-edd-db-customers.php
CHANGED
@@ -21,33 +21,6 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
21 |
*/
|
22 |
class EDD_DB_Customers extends EDD_DB {
|
23 |
|
24 |
-
/**
|
25 |
-
* The metadata type.
|
26 |
-
*
|
27 |
-
* @access public
|
28 |
-
* @since 2.8
|
29 |
-
* @var string
|
30 |
-
*/
|
31 |
-
public $meta_type = 'customer';
|
32 |
-
|
33 |
-
/**
|
34 |
-
* The name of the date column.
|
35 |
-
*
|
36 |
-
* @access public
|
37 |
-
* @since 2.8
|
38 |
-
* @var string
|
39 |
-
*/
|
40 |
-
public $date_key = 'date_created';
|
41 |
-
|
42 |
-
/**
|
43 |
-
* The name of the cache group.
|
44 |
-
*
|
45 |
-
* @access public
|
46 |
-
* @since 2.8
|
47 |
-
* @var string
|
48 |
-
*/
|
49 |
-
public $cache_group = 'customers';
|
50 |
-
|
51 |
/**
|
52 |
* Get things started
|
53 |
*
|
@@ -164,40 +137,6 @@ class EDD_DB_Customers extends EDD_DB {
|
|
164 |
|
165 |
}
|
166 |
|
167 |
-
/**
|
168 |
-
* Insert a new customer
|
169 |
-
*
|
170 |
-
* @access public
|
171 |
-
* @since 2.1
|
172 |
-
* @return int
|
173 |
-
*/
|
174 |
-
public function insert( $data, $type = '' ) {
|
175 |
-
$result = parent::insert( $data, $type );
|
176 |
-
|
177 |
-
if ( $result ) {
|
178 |
-
$this->set_last_changed();
|
179 |
-
}
|
180 |
-
|
181 |
-
return $result;
|
182 |
-
}
|
183 |
-
|
184 |
-
/**
|
185 |
-
* Update a customer
|
186 |
-
*
|
187 |
-
* @access public
|
188 |
-
* @since 2.1
|
189 |
-
* @return bool
|
190 |
-
*/
|
191 |
-
public function update( $row_id, $data = array(), $where = '' ) {
|
192 |
-
$result = parent::update( $row_id, $data, $where );
|
193 |
-
|
194 |
-
if ( $result ) {
|
195 |
-
$this->set_last_changed();
|
196 |
-
}
|
197 |
-
|
198 |
-
return $result;
|
199 |
-
}
|
200 |
-
|
201 |
/**
|
202 |
* Delete a customer
|
203 |
*
|
@@ -219,14 +158,7 @@ class EDD_DB_Customers extends EDD_DB {
|
|
219 |
if ( $customer->id > 0 ) {
|
220 |
|
221 |
global $wpdb;
|
222 |
-
|
223 |
-
$result = $wpdb->delete( $this->table_name, array( 'id' => $customer->id ), array( '%d' ) );
|
224 |
-
|
225 |
-
if ( $result ) {
|
226 |
-
$this->set_last_changed();
|
227 |
-
}
|
228 |
-
|
229 |
-
return $result;
|
230 |
|
231 |
} else {
|
232 |
return false;
|
@@ -387,6 +319,8 @@ class EDD_DB_Customers extends EDD_DB {
|
|
387 |
* @return mixed Upon success, an object of the customer. Upon failure, NULL
|
388 |
*/
|
389 |
public function get_customer_by( $field = 'id', $value = 0 ) {
|
|
|
|
|
390 |
if ( empty( $field ) || empty( $value ) ) {
|
391 |
return NULL;
|
392 |
}
|
@@ -417,32 +351,40 @@ class EDD_DB_Customers extends EDD_DB {
|
|
417 |
return false;
|
418 |
}
|
419 |
|
420 |
-
$args = array( 'number' => 1 );
|
421 |
-
|
422 |
switch ( $field ) {
|
423 |
case 'id':
|
424 |
$db_field = 'id';
|
425 |
-
$args['include'] = array( $value );
|
426 |
break;
|
427 |
case 'email':
|
428 |
-
$
|
|
|
429 |
break;
|
430 |
case 'user_id':
|
431 |
-
$
|
432 |
break;
|
433 |
default:
|
434 |
return false;
|
435 |
}
|
436 |
|
437 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
438 |
|
439 |
-
$results = $query->query( $args );
|
440 |
|
441 |
-
if ( empty( $results ) ) {
|
442 |
return false;
|
443 |
}
|
444 |
|
445 |
-
return
|
446 |
}
|
447 |
|
448 |
/**
|
@@ -452,12 +394,129 @@ class EDD_DB_Customers extends EDD_DB {
|
|
452 |
* @since 2.1
|
453 |
*/
|
454 |
public function get_customers( $args = array() ) {
|
455 |
-
$args = $this->prepare_customer_query_args( $args );
|
456 |
-
$args['count'] = false;
|
457 |
|
458 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
459 |
|
460 |
-
return $query->query( $args );
|
461 |
}
|
462 |
|
463 |
|
@@ -468,107 +527,104 @@ class EDD_DB_Customers extends EDD_DB {
|
|
468 |
* @since 2.1
|
469 |
*/
|
470 |
public function count( $args = array() ) {
|
471 |
-
$args = $this->prepare_customer_query_args( $args );
|
472 |
-
$args['count'] = true;
|
473 |
-
$args['offset'] = 0;
|
474 |
|
475 |
-
|
476 |
-
$results = $query->query( $args );
|
477 |
|
478 |
-
|
479 |
-
|
480 |
|
481 |
-
|
482 |
-
|
483 |
-
*
|
484 |
-
* This method ensures that old arguments transition seamlessly to the new system.
|
485 |
-
*
|
486 |
-
* @access protected
|
487 |
-
* @since 2.8
|
488 |
-
*
|
489 |
-
* @param array $args Arguments for `EDD_Customer_Query`.
|
490 |
-
* @return array Prepared arguments.
|
491 |
-
*/
|
492 |
-
protected function prepare_customer_query_args( $args ) {
|
493 |
-
if ( ! empty( $args['id'] ) ) {
|
494 |
-
$args['include'] = $args['id'];
|
495 |
-
unset( $args['id'] );
|
496 |
-
}
|
497 |
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
|
|
|
|
|
|
502 |
|
503 |
-
if ( ! empty( $args['name'] ) ) {
|
504 |
-
$args['search'] = '***' . $args['name'] . '***';
|
505 |
-
unset( $args['name'] );
|
506 |
}
|
507 |
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
if
|
512 |
-
$
|
513 |
-
'after' => date( 'Y-m-d 00:00:00', strtotime( $args['date']['start'] ) ),
|
514 |
-
'inclusive' => true,
|
515 |
-
);
|
516 |
-
$date_query[] = array(
|
517 |
-
'before' => date( 'Y-m-d 23:59:59', strtotime( $args['date']['end'] ) ),
|
518 |
-
'inclusive' => true,
|
519 |
-
);
|
520 |
} else {
|
521 |
-
$
|
522 |
-
'year' => date( 'Y', strtotime( $args['date'] ) ),
|
523 |
-
'month' => date( 'm', strtotime( $args['date'] ) ),
|
524 |
-
'day' => date( 'd', strtotime( $args['date'] ) ),
|
525 |
-
);
|
526 |
}
|
527 |
|
528 |
-
|
529 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
530 |
} else {
|
531 |
-
$
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
);
|
536 |
}
|
|
|
537 |
|
538 |
-
|
|
|
|
|
539 |
}
|
540 |
|
541 |
-
|
542 |
-
|
543 |
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
553 |
|
554 |
-
/**
|
555 |
-
* Retrieves the value of the last_changed cache key for customers.
|
556 |
-
*
|
557 |
-
* @access public
|
558 |
-
* @since 2.8
|
559 |
-
*/
|
560 |
-
public function get_last_changed() {
|
561 |
-
if ( function_exists( 'wp_cache_get_last_changed' ) ) {
|
562 |
-
return wp_cache_get_last_changed( $this->cache_group );
|
563 |
}
|
564 |
|
565 |
-
$
|
566 |
-
|
567 |
-
|
568 |
-
|
|
|
|
|
|
|
|
|
569 |
}
|
570 |
|
571 |
-
return $
|
|
|
572 |
}
|
573 |
|
574 |
/**
|
21 |
*/
|
22 |
class EDD_DB_Customers extends EDD_DB {
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
/**
|
25 |
* Get things started
|
26 |
*
|
137 |
|
138 |
}
|
139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
/**
|
141 |
* Delete a customer
|
142 |
*
|
158 |
if ( $customer->id > 0 ) {
|
159 |
|
160 |
global $wpdb;
|
161 |
+
return $wpdb->delete( $this->table_name, array( 'id' => $customer->id ), array( '%d' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
|
163 |
} else {
|
164 |
return false;
|
319 |
* @return mixed Upon success, an object of the customer. Upon failure, NULL
|
320 |
*/
|
321 |
public function get_customer_by( $field = 'id', $value = 0 ) {
|
322 |
+
global $wpdb;
|
323 |
+
|
324 |
if ( empty( $field ) || empty( $value ) ) {
|
325 |
return NULL;
|
326 |
}
|
351 |
return false;
|
352 |
}
|
353 |
|
|
|
|
|
354 |
switch ( $field ) {
|
355 |
case 'id':
|
356 |
$db_field = 'id';
|
|
|
357 |
break;
|
358 |
case 'email':
|
359 |
+
$value = sanitize_text_field( $value );
|
360 |
+
$db_field = 'email';
|
361 |
break;
|
362 |
case 'user_id':
|
363 |
+
$db_field = 'user_id';
|
364 |
break;
|
365 |
default:
|
366 |
return false;
|
367 |
}
|
368 |
|
369 |
+
if ( ! $customer = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $this->table_name WHERE $db_field = %s LIMIT 1", $value ) ) ) {
|
370 |
+
|
371 |
+
// Look for customer from an additional email
|
372 |
+
if( 'email' === $field ) {
|
373 |
+
|
374 |
+
$meta_table = EDD()->customer_meta->table_name;
|
375 |
+
$customer_id = $wpdb->get_var( $wpdb->prepare( "SELECT customer_id FROM $meta_table WHERE meta_key = 'additional_email' AND meta_value = '%s' LIMIT 1", $value ) );
|
376 |
+
|
377 |
+
if( ! empty( $customer_id ) ) {
|
378 |
+
return $this->get( $customer_id );
|
379 |
+
}
|
380 |
+
|
381 |
+
}
|
382 |
|
|
|
383 |
|
|
|
384 |
return false;
|
385 |
}
|
386 |
|
387 |
+
return $customer;
|
388 |
}
|
389 |
|
390 |
/**
|
394 |
* @since 2.1
|
395 |
*/
|
396 |
public function get_customers( $args = array() ) {
|
|
|
|
|
397 |
|
398 |
+
global $wpdb;
|
399 |
+
|
400 |
+
$defaults = array(
|
401 |
+
'number' => 20,
|
402 |
+
'offset' => 0,
|
403 |
+
'user_id' => 0,
|
404 |
+
'orderby' => 'id',
|
405 |
+
'order' => 'DESC',
|
406 |
+
);
|
407 |
+
|
408 |
+
$args = wp_parse_args( $args, $defaults );
|
409 |
+
|
410 |
+
if( $args['number'] < 1 ) {
|
411 |
+
$args['number'] = 999999999999;
|
412 |
+
}
|
413 |
+
|
414 |
+
$join = '';
|
415 |
+
$where = ' WHERE 1=1 ';
|
416 |
+
|
417 |
+
// specific customers
|
418 |
+
if( ! empty( $args['id'] ) ) {
|
419 |
+
|
420 |
+
if( is_array( $args['id'] ) ) {
|
421 |
+
$ids = implode( ',', array_map('intval', $args['id'] ) );
|
422 |
+
} else {
|
423 |
+
$ids = intval( $args['id'] );
|
424 |
+
}
|
425 |
+
|
426 |
+
$where .= " AND `id` IN( {$ids} ) ";
|
427 |
+
|
428 |
+
}
|
429 |
+
|
430 |
+
// customers for specific user accounts
|
431 |
+
if( ! empty( $args['user_id'] ) ) {
|
432 |
+
|
433 |
+
if( is_array( $args['user_id'] ) ) {
|
434 |
+
$user_ids = implode( ',', array_map('intval', $args['user_id'] ) );
|
435 |
+
} else {
|
436 |
+
$user_ids = intval( $args['user_id'] );
|
437 |
+
}
|
438 |
+
|
439 |
+
$where .= " AND `user_id` IN( {$user_ids} ) ";
|
440 |
+
|
441 |
+
}
|
442 |
+
|
443 |
+
//specific customers by email
|
444 |
+
if( ! empty( $args['email'] ) ) {
|
445 |
+
|
446 |
+
if( is_array( $args['email'] ) ) {
|
447 |
+
|
448 |
+
$emails_count = count( $args['email'] );
|
449 |
+
$emails_placeholder = array_fill( 0, $emails_count, '%s' );
|
450 |
+
$emails = implode( ', ', $emails_placeholder );
|
451 |
+
|
452 |
+
$where .= $wpdb->prepare( " AND `email` IN( $emails ) ", $args['email'] );
|
453 |
+
} else {
|
454 |
+
$meta_table = $wpdb->prefix . 'edd_customermeta';
|
455 |
+
$customers_table = $this->table_name;
|
456 |
+
|
457 |
+
$join .= " LEFT JOIN $meta_table ON $customers_table.id = $meta_table.customer_id";
|
458 |
+
$where .= $wpdb->prepare( " AND ( ( `meta_key` = 'additional_email' AND `meta_value` = %s ) OR `email` = %s )", $args['email'], $args['email'] );
|
459 |
+
}
|
460 |
+
}
|
461 |
+
|
462 |
+
// specific customers by name
|
463 |
+
if( ! empty( $args['name'] ) ) {
|
464 |
+
$where .= $wpdb->prepare( " AND `name` LIKE '%%%%" . '%s' . "%%%%' ", $args['name'] );
|
465 |
+
}
|
466 |
+
|
467 |
+
// Customers created for a specific date or in a date range
|
468 |
+
if( ! empty( $args['date'] ) ) {
|
469 |
+
|
470 |
+
if( is_array( $args['date'] ) ) {
|
471 |
+
|
472 |
+
if( ! empty( $args['date']['start'] ) ) {
|
473 |
+
|
474 |
+
$start = date( 'Y-m-d 00:00:00', strtotime( $args['date']['start'] ) );
|
475 |
+
$where .= " AND `date_created` >= '{$start}'";
|
476 |
+
|
477 |
+
}
|
478 |
+
|
479 |
+
if( ! empty( $args['date']['end'] ) ) {
|
480 |
+
|
481 |
+
$end = date( 'Y-m-d 23:59:59', strtotime( $args['date']['end'] ) );
|
482 |
+
$where .= " AND `date_created` <= '{$end}'";
|
483 |
+
|
484 |
+
}
|
485 |
+
|
486 |
+
} else {
|
487 |
+
|
488 |
+
$year = date( 'Y', strtotime( $args['date'] ) );
|
489 |
+
$month = date( 'm', strtotime( $args['date'] ) );
|
490 |
+
$day = date( 'd', strtotime( $args['date'] ) );
|
491 |
+
|
492 |
+
$where .= " AND $year = YEAR ( date_created ) AND $month = MONTH ( date_created ) AND $day = DAY ( date_created )";
|
493 |
+
}
|
494 |
+
|
495 |
+
}
|
496 |
+
|
497 |
+
$args['orderby'] = ! array_key_exists( $args['orderby'], $this->get_columns() ) ? 'id' : $args['orderby'];
|
498 |
+
|
499 |
+
if( 'purchase_value' == $args['orderby'] ) {
|
500 |
+
$args['orderby'] = 'purchase_value+0';
|
501 |
+
}
|
502 |
+
|
503 |
+
$cache_key = md5( 'edd_customers_' . serialize( $args ) );
|
504 |
+
|
505 |
+
$customers = wp_cache_get( $cache_key, 'customers' );
|
506 |
+
|
507 |
+
$args['orderby'] = esc_sql( $args['orderby'] );
|
508 |
+
$args['order'] = esc_sql( $args['order'] );
|
509 |
+
|
510 |
+
$customers = false;
|
511 |
+
|
512 |
+
if( $customers === false ) {
|
513 |
+
$query = $wpdb->prepare( "SELECT * FROM $this->table_name $join $where GROUP BY $this->primary_key ORDER BY {$args['orderby']} {$args['order']} LIMIT %d,%d;", absint( $args['offset'] ), absint( $args['number'] ) );
|
514 |
+
$customers = $wpdb->get_results( $query );
|
515 |
+
wp_cache_set( $cache_key, $customers, 'customers', 3600 );
|
516 |
+
}
|
517 |
+
|
518 |
+
return $customers;
|
519 |
|
|
|
520 |
}
|
521 |
|
522 |
|
527 |
* @since 2.1
|
528 |
*/
|
529 |
public function count( $args = array() ) {
|
|
|
|
|
|
|
530 |
|
531 |
+
global $wpdb;
|
|
|
532 |
|
533 |
+
$join = '';
|
534 |
+
$where = ' WHERE 1=1 ';
|
535 |
|
536 |
+
// specific customers
|
537 |
+
if( ! empty( $args['id'] ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
538 |
|
539 |
+
if( is_array( $args['id'] ) ) {
|
540 |
+
$ids = implode( ',', array_map('intval', $args['id'] ) );
|
541 |
+
} else {
|
542 |
+
$ids = intval( $args['id'] );
|
543 |
+
}
|
544 |
+
|
545 |
+
$where .= " AND `id` IN( {$ids} ) ";
|
546 |
|
|
|
|
|
|
|
547 |
}
|
548 |
|
549 |
+
// customers for specific user accounts
|
550 |
+
if( ! empty( $args['user_id'] ) ) {
|
551 |
+
|
552 |
+
if( is_array( $args['user_id'] ) ) {
|
553 |
+
$user_ids = implode( ',', array_map('intval', $args['user_id'] ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
554 |
} else {
|
555 |
+
$user_ids = intval( $args['user_id'] );
|
|
|
|
|
|
|
|
|
556 |
}
|
557 |
|
558 |
+
$where .= " AND `user_id` IN( {$user_ids} ) ";
|
559 |
+
|
560 |
+
}
|
561 |
+
|
562 |
+
//specific customers by email
|
563 |
+
if( ! empty( $args['email'] ) ) {
|
564 |
+
|
565 |
+
if( is_array( $args['email'] ) ) {
|
566 |
+
|
567 |
+
$emails_count = count( $args['email'] );
|
568 |
+
$emails_placeholder = array_fill( 0, $emails_count, '%s' );
|
569 |
+
$emails = implode( ', ', $emails_placeholder );
|
570 |
+
|
571 |
+
$where .= $wpdb->prepare( " AND `email` IN( $emails ) ", $args['email'] );
|
572 |
} else {
|
573 |
+
$meta_table = $wpdb->prefix . 'edd_customermeta';
|
574 |
+
$customers_table = $this->table_name;
|
575 |
+
|
576 |
+
$join .= " LEFT JOIN $meta_table ON $customers_table.id = $meta_table.customer_id";
|
577 |
+
$where .= $wpdb->prepare( " AND ( ( `meta_key` = 'additional_email' AND `meta_value` = %s ) OR `email` = %s )", $args['email'], $args['email'] );
|
578 |
}
|
579 |
+
}
|
580 |
|
581 |
+
// specific customers by name
|
582 |
+
if( ! empty( $args['name'] ) ) {
|
583 |
+
$where .= $wpdb->prepare( " AND `name` LIKE '%%%%" . '%s' . "%%%%' ", $args['name'] );
|
584 |
}
|
585 |
|
586 |
+
// Customers created for a specific date or in a date range
|
587 |
+
if( ! empty( $args['date'] ) ) {
|
588 |
|
589 |
+
if( is_array( $args['date'] ) ) {
|
590 |
+
|
591 |
+
if( ! empty( $args['date']['start'] ) ) {
|
592 |
+
|
593 |
+
$start = date( 'Y-m-d 00:00:00', strtotime( $args['date']['start'] ) );
|
594 |
+
$where .= " AND `date_created` >= '{$start}'";
|
595 |
+
|
596 |
+
}
|
597 |
+
|
598 |
+
if( ! empty( $args['date']['end'] ) ) {
|
599 |
+
|
600 |
+
$end = date( 'Y-m-d 23:59:59', strtotime( $args['date']['end'] ) );
|
601 |
+
$where .= " AND `date_created` <= '{$end}'";
|
602 |
+
|
603 |
+
}
|
604 |
+
|
605 |
+
} else {
|
606 |
+
|
607 |
+
$year = date( 'Y', strtotime( $args['date'] ) );
|
608 |
+
$month = date( 'm', strtotime( $args['date'] ) );
|
609 |
+
$day = date( 'd', strtotime( $args['date'] ) );
|
610 |
+
|
611 |
+
$where .= " AND $year = YEAR ( date_created ) AND $month = MONTH ( date_created ) AND $day = DAY ( date_created )";
|
612 |
+
}
|
613 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
614 |
}
|
615 |
|
616 |
+
$cache_key = md5( 'edd_customers_count' . serialize( $args ) );
|
617 |
+
|
618 |
+
$count = wp_cache_get( $cache_key, 'customers' );
|
619 |
+
|
620 |
+
if( $count === false ) {
|
621 |
+
$query = "SELECT COUNT($this->primary_key) FROM " . $this->table_name . "{$join} {$where};";
|
622 |
+
$count = $wpdb->get_var( $query);
|
623 |
+
wp_cache_set( $cache_key, $count, 'customers', 3600 );
|
624 |
}
|
625 |
|
626 |
+
return absint( $count );
|
627 |
+
|
628 |
}
|
629 |
|
630 |
/**
|
includes/class-edd-discount.php
CHANGED
@@ -1155,9 +1155,6 @@ class EDD_Discount {
|
|
1155 |
}
|
1156 |
|
1157 |
if ( true == $saved ) {
|
1158 |
-
global $edd_get_discounts_cache;
|
1159 |
-
$edd_get_discounts_cache = array();
|
1160 |
-
|
1161 |
$this->setup_discount( WP_Post::get_instance( $this->ID ) );
|
1162 |
|
1163 |
/**
|
@@ -1184,12 +1181,6 @@ class EDD_Discount {
|
|
1184 |
* @return mixed bool|int false if data isn't passed and class not instantiated for creation, or post ID for the new discount.
|
1185 |
*/
|
1186 |
public function add( $args ) {
|
1187 |
-
|
1188 |
-
// If no code is provided, return early with false
|
1189 |
-
if ( empty( $args['code'] ) ) {
|
1190 |
-
return false;
|
1191 |
-
}
|
1192 |
-
|
1193 |
$meta = $this->build_meta( $args );
|
1194 |
|
1195 |
if ( ! empty( $this->ID ) && $this->exists() ) {
|
@@ -1615,7 +1606,9 @@ class EDD_Discount {
|
|
1615 |
|
1616 |
// Ensure we have requirements before proceeding
|
1617 |
if ( ! $return && ! empty( $product_reqs ) ) {
|
1618 |
-
|
|
|
|
|
1619 |
case 'all' :
|
1620 |
|
1621 |
// Default back to true
|
@@ -1623,7 +1616,7 @@ class EDD_Discount {
|
|
1623 |
|
1624 |
foreach ( $product_reqs as $download_id ) {
|
1625 |
|
1626 |
-
if
|
1627 |
continue;
|
1628 |
}
|
1629 |
|
@@ -1647,7 +1640,7 @@ class EDD_Discount {
|
|
1647 |
|
1648 |
foreach ( $product_reqs as $download_id ) {
|
1649 |
|
1650 |
-
if
|
1651 |
continue;
|
1652 |
}
|
1653 |
|
@@ -1673,12 +1666,12 @@ class EDD_Discount {
|
|
1673 |
}
|
1674 |
|
1675 |
if ( ! empty( $excluded_ps ) ) {
|
1676 |
-
if (
|
1677 |
-
$return = false;
|
1678 |
-
|
1679 |
if ( $set_error ) {
|
1680 |
edd_set_error( 'edd-discount-error', __( 'This discount is not valid for the cart contents.', 'easy-digital-downloads' ) );
|
1681 |
}
|
|
|
|
|
1682 |
}
|
1683 |
}
|
1684 |
|
@@ -1756,7 +1749,7 @@ class EDD_Discount {
|
|
1756 |
continue;
|
1757 |
}
|
1758 |
|
1759 |
-
if ( in_array( $payment->status, array( 'abandoned', 'failed'
|
1760 |
continue;
|
1761 |
}
|
1762 |
|
@@ -1810,8 +1803,8 @@ class EDD_Discount {
|
|
1810 |
$this->is_started( $set_error ) &&
|
1811 |
! $this->is_maxed_out( $set_error ) &&
|
1812 |
! $this->is_used( $user, $set_error ) &&
|
1813 |
-
$this->
|
1814 |
-
$this->
|
1815 |
) {
|
1816 |
$return = true;
|
1817 |
}
|
1155 |
}
|
1156 |
|
1157 |
if ( true == $saved ) {
|
|
|
|
|
|
|
1158 |
$this->setup_discount( WP_Post::get_instance( $this->ID ) );
|
1159 |
|
1160 |
/**
|
1181 |
* @return mixed bool|int false if data isn't passed and class not instantiated for creation, or post ID for the new discount.
|
1182 |
*/
|
1183 |
public function add( $args ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
1184 |
$meta = $this->build_meta( $args );
|
1185 |
|
1186 |
if ( ! empty( $this->ID ) && $this->exists() ) {
|
1606 |
|
1607 |
// Ensure we have requirements before proceeding
|
1608 |
if ( ! $return && ! empty( $product_reqs ) ) {
|
1609 |
+
|
1610 |
+
switch( $this->product_condition ) {
|
1611 |
+
|
1612 |
case 'all' :
|
1613 |
|
1614 |
// Default back to true
|
1616 |
|
1617 |
foreach ( $product_reqs as $download_id ) {
|
1618 |
|
1619 |
+
if( empty( $download_id ) ) {
|
1620 |
continue;
|
1621 |
}
|
1622 |
|
1640 |
|
1641 |
foreach ( $product_reqs as $download_id ) {
|
1642 |
|
1643 |
+
if( empty( $download_id ) ) {
|
1644 |
continue;
|
1645 |
}
|
1646 |
|
1666 |
}
|
1667 |
|
1668 |
if ( ! empty( $excluded_ps ) ) {
|
1669 |
+
if ( $cart_ids == $excluded_ps ) {
|
|
|
|
|
1670 |
if ( $set_error ) {
|
1671 |
edd_set_error( 'edd-discount-error', __( 'This discount is not valid for the cart contents.', 'easy-digital-downloads' ) );
|
1672 |
}
|
1673 |
+
|
1674 |
+
$return = false;
|
1675 |
}
|
1676 |
}
|
1677 |
|
1749 |
continue;
|
1750 |
}
|
1751 |
|
1752 |
+
if ( in_array( $payment->status, array( 'abandoned', 'failed' ) ) ) {
|
1753 |
continue;
|
1754 |
}
|
1755 |
|
1803 |
$this->is_started( $set_error ) &&
|
1804 |
! $this->is_maxed_out( $set_error ) &&
|
1805 |
! $this->is_used( $user, $set_error ) &&
|
1806 |
+
$this->is_min_price_met( $set_error ) &&
|
1807 |
+
$this->is_product_requirements_met( $set_error )
|
1808 |
) {
|
1809 |
$return = true;
|
1810 |
}
|
includes/class-edd-fees.php
CHANGED
@@ -204,21 +204,10 @@ class EDD_Fees {
|
|
204 |
|
205 |
if ( ! empty( $fees ) && ! empty( $download_id ) ) {
|
206 |
// Remove fees that don't belong to the specified Download
|
207 |
-
$applied_fees = array();
|
208 |
foreach ( $fees as $key => $fee ) {
|
209 |
-
|
210 |
if ( empty( $fee['download_id'] ) || (int) $download_id !== (int) $fee['download_id'] ) {
|
211 |
unset( $fees[ $key ] );
|
212 |
}
|
213 |
-
|
214 |
-
$fee_hash = md5( $fee['amount'] . $fee['label'] . $fee['type'] );
|
215 |
-
|
216 |
-
if ( in_array( $fee_hash, $applied_fees ) ) {
|
217 |
-
unset( $fees[ $key ] );
|
218 |
-
}
|
219 |
-
|
220 |
-
$applied_fees[] = $fee_hash;
|
221 |
-
|
222 |
}
|
223 |
}
|
224 |
|
204 |
|
205 |
if ( ! empty( $fees ) && ! empty( $download_id ) ) {
|
206 |
// Remove fees that don't belong to the specified Download
|
|
|
207 |
foreach ( $fees as $key => $fee ) {
|
|
|
208 |
if ( empty( $fee['download_id'] ) || (int) $download_id !== (int) $fee['download_id'] ) {
|
209 |
unset( $fees[ $key ] );
|
210 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
211 |
}
|
212 |
}
|
213 |
|
includes/class-edd-html-elements.php
CHANGED
@@ -42,10 +42,7 @@ class EDD_HTML_Elements {
|
|
42 |
'bundles' => true,
|
43 |
'variations' => false,
|
44 |
'placeholder' => sprintf( __( 'Choose a %s', 'easy-digital-downloads' ), edd_get_label_singular() ),
|
45 |
-
'data' => array(
|
46 |
-
'search-type' => 'download',
|
47 |
-
'search-placeholder' => sprintf( __( 'Type to search all %s', 'easy-digital-downloads' ), edd_get_label_plural() )
|
48 |
-
),
|
49 |
);
|
50 |
|
51 |
$args = wp_parse_args( $args, $defaults );
|
@@ -54,27 +51,9 @@ class EDD_HTML_Elements {
|
|
54 |
'post_type' => 'download',
|
55 |
'orderby' => 'title',
|
56 |
'order' => 'ASC',
|
57 |
-
'posts_per_page' => $args['number']
|
58 |
);
|
59 |
|
60 |
-
if ( ! current_user_can( 'edit_products' ) ) {
|
61 |
-
$product_args['post_status'] = apply_filters( 'edd_product_dropdown_status_nopriv', array( 'publish' ) );
|
62 |
-
} else {
|
63 |
-
$product_args['post_status'] = apply_filters( 'edd_product_dropdown_status', array( 'publish', 'draft', 'private', 'future' ) );
|
64 |
-
}
|
65 |
-
|
66 |
-
if ( is_array( $product_args['post_status'] ) ) {
|
67 |
-
|
68 |
-
// Given the array, sanitize them.
|
69 |
-
$product_args['post_status'] = array_map( 'sanitize_text_field', $product_args['post_status'] );
|
70 |
-
|
71 |
-
} else {
|
72 |
-
|
73 |
-
// If we didn't get an array, fallback to 'publish'.
|
74 |
-
$product_args['post_status'] = array( 'publish' );
|
75 |
-
|
76 |
-
}
|
77 |
-
|
78 |
// Maybe disable bundles
|
79 |
if( ! $args['bundles'] ) {
|
80 |
$product_args['meta_query'] = array(
|
@@ -87,36 +66,7 @@ class EDD_HTML_Elements {
|
|
87 |
);
|
88 |
}
|
89 |
|
90 |
-
$
|
91 |
-
|
92 |
-
// Since it's possible to have selected items not within the queried limit, we need to include the selected items.
|
93 |
-
$products = get_posts( $product_args );
|
94 |
-
$existing_ids = wp_list_pluck( $products, 'ID' );
|
95 |
-
if ( ! empty( $args['selected'] ) ) {
|
96 |
-
|
97 |
-
$selected_items = $args['selected'];
|
98 |
-
if ( ! is_array( $selected_items ) ) {
|
99 |
-
$selected_items = array( $selected_items );
|
100 |
-
}
|
101 |
-
|
102 |
-
foreach ( $selected_items as $selected_item ) {
|
103 |
-
if ( ! in_array( $selected_item, $existing_ids ) ) {
|
104 |
-
|
105 |
-
// If the selected item has a variation, we just need the product ID.
|
106 |
-
$has_variation = strpos( $selected_item, '_' );
|
107 |
-
if ( false !== $has_variation ) {
|
108 |
-
$selected_item = substr( $selected_item, 0, $has_variation );
|
109 |
-
}
|
110 |
-
|
111 |
-
$post = get_post( $selected_item );
|
112 |
-
if ( ! is_null( $post ) ) {
|
113 |
-
$products[] = $post;
|
114 |
-
}
|
115 |
-
}
|
116 |
-
}
|
117 |
-
|
118 |
-
}
|
119 |
-
|
120 |
$options = array();
|
121 |
$options[0] = '';
|
122 |
if ( $products ) {
|
@@ -125,9 +75,10 @@ class EDD_HTML_Elements {
|
|
125 |
if ( $args['variations'] && edd_has_variable_prices( $product->ID ) ) {
|
126 |
$prices = edd_get_variable_prices( $product->ID );
|
127 |
foreach ( $prices as $key => $value ) {
|
128 |
-
$name
|
129 |
-
|
130 |
-
|
|
|
131 |
}
|
132 |
}
|
133 |
}
|
@@ -148,11 +99,12 @@ class EDD_HTML_Elements {
|
|
148 |
$prices = edd_get_variable_prices( (int) $parsed_item['download_id'] );
|
149 |
foreach ( $prices as $key => $value ) {
|
150 |
|
151 |
-
$name
|
|
|
152 |
|
153 |
-
if ( $name && (int) $parsed_item['price_id'] === (int) $
|
154 |
|
155 |
-
$options[ absint( $product->ID ) . '_' . $
|
156 |
|
157 |
}
|
158 |
|
@@ -178,11 +130,12 @@ class EDD_HTML_Elements {
|
|
178 |
|
179 |
foreach ( $prices as $key => $value ) {
|
180 |
|
181 |
-
$name
|
|
|
182 |
|
183 |
-
if ( $name && (int) $parsed_item['price_id'] === (int) $
|
184 |
|
185 |
-
$options[ absint( $product->ID ) . '_' . $
|
186 |
|
187 |
}
|
188 |
|
@@ -242,10 +195,7 @@ class EDD_HTML_Elements {
|
|
242 |
'chosen' => true,
|
243 |
'placeholder' => __( 'Select a Customer', 'easy-digital-downloads' ),
|
244 |
'number' => 30,
|
245 |
-
'data' => array(
|
246 |
-
'search-type' => 'customer',
|
247 |
-
'search-placeholder' => __( 'Type to search all Customers', 'easy-digital-downloads' )
|
248 |
-
),
|
249 |
);
|
250 |
|
251 |
$args = wp_parse_args( $args, $defaults );
|
@@ -319,10 +269,7 @@ class EDD_HTML_Elements {
|
|
319 |
'chosen' => true,
|
320 |
'placeholder' => __( 'Select a User', 'easy-digital-downloads' ),
|
321 |
'number' => 30,
|
322 |
-
'data' => array(
|
323 |
-
'search-type' => 'user',
|
324 |
-
'search-placeholder' => __( 'Type to search all Users', 'easy-digital-downloads' ),
|
325 |
-
),
|
326 |
);
|
327 |
|
328 |
$args = wp_parse_args( $args, $defaults );
|
@@ -805,5 +752,4 @@ class EDD_HTML_Elements {
|
|
805 |
|
806 |
return $output;
|
807 |
}
|
808 |
-
|
809 |
}
|
42 |
'bundles' => true,
|
43 |
'variations' => false,
|
44 |
'placeholder' => sprintf( __( 'Choose a %s', 'easy-digital-downloads' ), edd_get_label_singular() ),
|
45 |
+
'data' => array( 'search-type' => 'download' ),
|
|
|
|
|
|
|
46 |
);
|
47 |
|
48 |
$args = wp_parse_args( $args, $defaults );
|
51 |
'post_type' => 'download',
|
52 |
'orderby' => 'title',
|
53 |
'order' => 'ASC',
|
54 |
+
'posts_per_page' => $args['number']
|
55 |
);
|
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
// Maybe disable bundles
|
58 |
if( ! $args['bundles'] ) {
|
59 |
$product_args['meta_query'] = array(
|
66 |
);
|
67 |
}
|
68 |
|
69 |
+
$products = get_posts( $product_args );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
$options = array();
|
71 |
$options[0] = '';
|
72 |
if ( $products ) {
|
75 |
if ( $args['variations'] && edd_has_variable_prices( $product->ID ) ) {
|
76 |
$prices = edd_get_variable_prices( $product->ID );
|
77 |
foreach ( $prices as $key => $value ) {
|
78 |
+
$name = ! empty( $value['name'] ) ? $value['name'] : '';
|
79 |
+
$index = ! empty( $value['index'] ) ? $value['index'] : $key;
|
80 |
+
if ( $name && $index ) {
|
81 |
+
$options[ absint( $product->ID ) . '_' . $index ] = esc_html( $product->post_title . ': ' . $name );
|
82 |
}
|
83 |
}
|
84 |
}
|
99 |
$prices = edd_get_variable_prices( (int) $parsed_item['download_id'] );
|
100 |
foreach ( $prices as $key => $value ) {
|
101 |
|
102 |
+
$name = isset( $value['name'] ) ? $value['name'] : '';
|
103 |
+
$index = isset( $value['index'] ) ? $value['index'] : $key;
|
104 |
|
105 |
+
if ( $name && $index && (int) $parsed_item['price_id'] === (int) $index ) {
|
106 |
|
107 |
+
$options[ absint( $product->ID ) . '_' . $index ] = esc_html( get_the_title( (int) $parsed_item['download_id'] ) . ': ' . $name );
|
108 |
|
109 |
}
|
110 |
|
130 |
|
131 |
foreach ( $prices as $key => $value ) {
|
132 |
|
133 |
+
$name = isset( $value['name'] ) ? $value['name'] : '';
|
134 |
+
$index = isset( $value['index'] ) ? $value['index'] : $key;
|
135 |
|
136 |
+
if ( $name && $index && (int) $parsed_item['price_id'] === (int) $index ) {
|
137 |
|
138 |
+
$options[ absint( $product->ID ) . '_' . $index ] = esc_html( get_the_title( (int) $parsed_item['download_id'] ) . ': ' . $name );
|
139 |
|
140 |
}
|
141 |
|
195 |
'chosen' => true,
|
196 |
'placeholder' => __( 'Select a Customer', 'easy-digital-downloads' ),
|
197 |
'number' => 30,
|
198 |
+
'data' => array( 'search-type' => 'customer' ),
|
|
|
|
|
|
|
199 |
);
|
200 |
|
201 |
$args = wp_parse_args( $args, $defaults );
|
269 |
'chosen' => true,
|
270 |
'placeholder' => __( 'Select a User', 'easy-digital-downloads' ),
|
271 |
'number' => 30,
|
272 |
+
'data' => array( 'search-type' => 'user' ),
|
|
|
|
|
|
|
273 |
);
|
274 |
|
275 |
$args = wp_parse_args( $args, $defaults );
|
752 |
|
753 |
return $output;
|
754 |
}
|
|
|
755 |
}
|
includes/class-edd-license-handler.php
CHANGED
@@ -104,7 +104,9 @@ class EDD_License {
|
|
104 |
add_action( 'admin_init', array( $this, 'deactivate_license' ) );
|
105 |
|
106 |
// Check that license is valid once per week
|
107 |
-
|
|
|
|
|
108 |
|
109 |
// For testing license notices, uncomment this line to force checks on every page load
|
110 |
//add_action( 'admin_init', array( $this, 'weekly_license_check' ) );
|
@@ -134,7 +136,7 @@ class EDD_License {
|
|
134 |
'version' => $this->version,
|
135 |
'license' => $this->license,
|
136 |
'author' => $this->author,
|
137 |
-
'beta' =>
|
138 |
);
|
139 |
|
140 |
if( ! empty( $this->item_id ) ) {
|
104 |
add_action( 'admin_init', array( $this, 'deactivate_license' ) );
|
105 |
|
106 |
// Check that license is valid once per week
|
107 |
+
if ( edd_doing_cron() ) {
|
108 |
+
add_action( 'edd_weekly_scheduled_events', array( $this, 'weekly_license_check' ) );
|
109 |
+
}
|
110 |
|
111 |
// For testing license notices, uncomment this line to force checks on every page load
|
112 |
//add_action( 'admin_init', array( $this, 'weekly_license_check' ) );
|
136 |
'version' => $this->version,
|
137 |
'license' => $this->license,
|
138 |
'author' => $this->author,
|
139 |
+
'beta' => edd_extension_has_beta_support( $this->item_shortname ),
|
140 |
);
|
141 |
|
142 |
if( ! empty( $this->item_id ) ) {
|
includes/class-edd-logging.php
CHANGED
@@ -21,43 +21,18 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
21 |
*/
|
22 |
class EDD_Logging {
|
23 |
|
24 |
-
public $is_writable = true;
|
25 |
-
private $filename = '';
|
26 |
-
private $file = '';
|
27 |
-
|
28 |
/**
|
29 |
* Set up the EDD Logging Class
|
30 |
*
|
31 |
* @since 1.3.1
|
32 |
*/
|
33 |
public function __construct() {
|
34 |
-
|
35 |
// Create the log post type
|
36 |
add_action( 'init', array( $this, 'register_post_type' ), 1 );
|
37 |
|
38 |
// Create types taxonomy and default types
|
39 |
add_action( 'init', array( $this, 'register_taxonomy' ), 1 );
|
40 |
|
41 |
-
add_action( 'plugins_loaded', array( $this, 'setup_log_file' ), 0 );
|
42 |
-
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* Sets up the log file if it is writable
|
47 |
-
*
|
48 |
-
* @since 2.8.7
|
49 |
-
* @return void
|
50 |
-
*/
|
51 |
-
public function setup_log_file() {
|
52 |
-
|
53 |
-
$upload_dir = wp_upload_dir();
|
54 |
-
$this->filename = wp_hash( home_url( '/' ) ) . '-edd-debug.log';
|
55 |
-
$this->file = trailingslashit( $upload_dir['basedir'] ) . $this->filename;
|
56 |
-
|
57 |
-
if ( ! is_writeable( $upload_dir['basedir'] ) ) {
|
58 |
-
$this->is_writable = false;
|
59 |
-
}
|
60 |
-
|
61 |
}
|
62 |
|
63 |
/**
|
@@ -375,108 +350,6 @@ class EDD_Logging {
|
|
375 |
}
|
376 |
}
|
377 |
|
378 |
-
/**
|
379 |
-
* Retrieve the log data
|
380 |
-
*
|
381 |
-
* @since 2.8.7
|
382 |
-
* @return string
|
383 |
-
*/
|
384 |
-
public function get_file_contents() {
|
385 |
-
return $this->get_file();
|
386 |
-
}
|
387 |
-
|
388 |
-
/**
|
389 |
-
* Log message to file
|
390 |
-
*
|
391 |
-
* @since 2.8.7
|
392 |
-
* @return void
|
393 |
-
*/
|
394 |
-
public function log_to_file( $message = '' ) {
|
395 |
-
$message = date( 'Y-n-d H:i:s' ) . ' - ' . $message . "\r\n";
|
396 |
-
$this->write_to_log( $message );
|
397 |
-
|
398 |
-
}
|
399 |
-
|
400 |
-
/**
|
401 |
-
* Retrieve the file data is written to
|
402 |
-
*
|
403 |
-
* @since 2.8.7
|
404 |
-
* @return string
|
405 |
-
*/
|
406 |
-
protected function get_file() {
|
407 |
-
|
408 |
-
$file = '';
|
409 |
-
|
410 |
-
if ( @file_exists( $this->file ) ) {
|
411 |
-
|
412 |
-
if ( ! is_writeable( $this->file ) ) {
|
413 |
-
$this->is_writable = false;
|
414 |
-
}
|
415 |
-
|
416 |
-
$file = @file_get_contents( $this->file );
|
417 |
-
|
418 |
-
} else {
|
419 |
-
|
420 |
-
@file_put_contents( $this->file, '' );
|
421 |
-
@chmod( $this->file, 0664 );
|
422 |
-
|
423 |
-
}
|
424 |
-
|
425 |
-
return $file;
|
426 |
-
}
|
427 |
-
|
428 |
-
/**
|
429 |
-
* Write the log message
|
430 |
-
*
|
431 |
-
* @since 2.8.7
|
432 |
-
* @return void
|
433 |
-
*/
|
434 |
-
protected function write_to_log( $message = '' ) {
|
435 |
-
$file = $this->get_file();
|
436 |
-
$file .= $message;
|
437 |
-
@file_put_contents( $this->file, $file );
|
438 |
-
}
|
439 |
-
|
440 |
-
/**
|
441 |
-
* Delete the log file or removes all contents in the log file if we cannot delete it
|
442 |
-
*
|
443 |
-
* @since 2.8.7
|
444 |
-
* @return void
|
445 |
-
*/
|
446 |
-
public function clear_log_file() {
|
447 |
-
@unlink( $this->file );
|
448 |
-
|
449 |
-
if ( file_exists( $this->file ) ) {
|
450 |
-
|
451 |
-
// it's still there, so maybe server doesn't have delete rights
|
452 |
-
chmod( $this->file, 0664 ); // Try to give the server delete rights
|
453 |
-
@unlink( $this->file );
|
454 |
-
|
455 |
-
// See if it's still there
|
456 |
-
if ( @file_exists( $this->file ) ) {
|
457 |
-
|
458 |
-
/*
|
459 |
-
* Remove all contents of the log file if we cannot delete it
|
460 |
-
*/
|
461 |
-
if ( is_writeable( $this->file ) ) {
|
462 |
-
|
463 |
-
file_put_contents( $this->file, '' );
|
464 |
-
|
465 |
-
} else {
|
466 |
-
|
467 |
-
return false;
|
468 |
-
|
469 |
-
}
|
470 |
-
|
471 |
-
}
|
472 |
-
|
473 |
-
}
|
474 |
-
|
475 |
-
$this->file = '';
|
476 |
-
return true;
|
477 |
-
|
478 |
-
}
|
479 |
-
|
480 |
}
|
481 |
|
482 |
// Initiate the logging system
|
@@ -505,23 +378,3 @@ function edd_record_log( $title = '', $message = '', $parent = 0, $type = null )
|
|
505 |
$log = $edd_logs->add( $title, $message, $parent, $type );
|
506 |
return $log;
|
507 |
}
|
508 |
-
|
509 |
-
|
510 |
-
/**
|
511 |
-
* Logs a message to the debug log file
|
512 |
-
*
|
513 |
-
* @since 2.8.7
|
514 |
-
*
|
515 |
-
* @param string $message
|
516 |
-
* @global $edd_logs EDD Logs Object
|
517 |
-
* @return void
|
518 |
-
*/
|
519 |
-
function edd_debug_log( $message = '' ) {
|
520 |
-
global $edd_logs;
|
521 |
-
|
522 |
-
if( edd_is_debug_mode() ) {
|
523 |
-
|
524 |
-
$edd_logs->log_to_file( $message );
|
525 |
-
|
526 |
-
}
|
527 |
-
}
|
21 |
*/
|
22 |
class EDD_Logging {
|
23 |
|
|
|
|
|
|
|
|
|
24 |
/**
|
25 |
* Set up the EDD Logging Class
|
26 |
*
|
27 |
* @since 1.3.1
|
28 |
*/
|
29 |
public function __construct() {
|
|
|
30 |
// Create the log post type
|
31 |
add_action( 'init', array( $this, 'register_post_type' ), 1 );
|
32 |
|
33 |
// Create types taxonomy and default types
|
34 |
add_action( 'init', array( $this, 'register_taxonomy' ), 1 );
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
}
|
37 |
|
38 |
/**
|
350 |
}
|
351 |
}
|
352 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
}
|
354 |
|
355 |
// Initiate the logging system
|
378 |
$log = $edd_logs->add( $title, $message, $parent, $type );
|
379 |
return $log;
|
380 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-edd-register-meta.php
CHANGED
@@ -159,7 +159,7 @@ class EDD_Register_Meta {
|
|
159 |
array(
|
160 |
'sanitize_callback' => 'sanitize_text_field',
|
161 |
'type' => 'string',
|
162 |
-
'description' => __(
|
163 |
'show_in_rest' => true,
|
164 |
)
|
165 |
);
|
@@ -379,14 +379,7 @@ class EDD_Register_Meta {
|
|
379 |
}
|
380 |
|
381 |
if ( is_serialized( $value ) ) {
|
382 |
-
|
383 |
-
preg_match( '/[oO]\s*:\s*\d+\s*:\s*"\s*(?!(?i)(stdClass))/', $value, $matches );
|
384 |
-
if ( ! empty( $matches ) ) {
|
385 |
-
return false;
|
386 |
-
}
|
387 |
-
|
388 |
$value = (array) maybe_unserialize( $value );
|
389 |
-
|
390 |
}
|
391 |
|
392 |
}
|
159 |
array(
|
160 |
'sanitize_callback' => 'sanitize_text_field',
|
161 |
'type' => 'string',
|
162 |
+
'description' => __( 'Defines how this products `Purchase` button should behave, either add to cart or buy now.', 'easy-digital-downloads' ),
|
163 |
'show_in_rest' => true,
|
164 |
)
|
165 |
);
|
379 |
}
|
380 |
|
381 |
if ( is_serialized( $value ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
382 |
$value = (array) maybe_unserialize( $value );
|
|
|
383 |
}
|
384 |
|
385 |
}
|
includes/class-edd-session.php
CHANGED
@@ -156,45 +156,11 @@ class EDD_Session {
|
|
156 |
* @access public
|
157 |
* @since 1.5
|
158 |
* @param string $key Session key
|
159 |
-
* @return
|
160 |
*/
|
161 |
public function get( $key ) {
|
162 |
-
|
163 |
-
$key
|
164 |
-
$return = false;
|
165 |
-
|
166 |
-
if ( isset( $this->session[ $key ] ) && ! empty( $this->session[ $key ] ) ) {
|
167 |
-
|
168 |
-
preg_match( '/[oO]\s*:\s*\d+\s*:\s*"\s*(?!(?i)(stdClass))/', $this->session[ $key ], $matches );
|
169 |
-
if ( ! empty( $matches ) ) {
|
170 |
-
$this->set( $key, null );
|
171 |
-
return false;
|
172 |
-
}
|
173 |
-
|
174 |
-
if ( is_numeric( $this->session[ $key ] ) ) {
|
175 |
-
$return = $this->session[ $key ];
|
176 |
-
} else {
|
177 |
-
|
178 |
-
$maybe_json = json_decode( $this->session[ $key ] );
|
179 |
-
|
180 |
-
// Since json_last_error is PHP 5.3+, we have to rely on a `null` value for failing to parse JSON.
|
181 |
-
if ( is_null( $maybe_json ) ) {
|
182 |
-
$is_serialized = is_serialized( $this->session[ $key ] );
|
183 |
-
if ( $is_serialized ) {
|
184 |
-
$value = @unserialize( $this->session[ $key ] );
|
185 |
-
$this->set( $key, (array) $value );
|
186 |
-
$return = $value;
|
187 |
-
} else {
|
188 |
-
$return = $this->session[ $key ];
|
189 |
-
}
|
190 |
-
} else {
|
191 |
-
$return = json_decode( $this->session[ $key ], true );
|
192 |
-
}
|
193 |
-
|
194 |
-
}
|
195 |
-
}
|
196 |
-
|
197 |
-
return $return;
|
198 |
}
|
199 |
|
200 |
/**
|
@@ -203,17 +169,17 @@ class EDD_Session {
|
|
203 |
* @since 1.5
|
204 |
*
|
205 |
* @param string $key Session key
|
206 |
-
* @param
|
207 |
-
* @return
|
208 |
*/
|
209 |
public function set( $key, $value ) {
|
210 |
|
211 |
$key = sanitize_key( $key );
|
212 |
|
213 |
if ( is_array( $value ) ) {
|
214 |
-
$this->session[ $key ] =
|
215 |
} else {
|
216 |
-
$this->session[ $key ] =
|
217 |
}
|
218 |
|
219 |
if( $this->use_php_sessions ) {
|
156 |
* @access public
|
157 |
* @since 1.5
|
158 |
* @param string $key Session key
|
159 |
+
* @return string Session variable
|
160 |
*/
|
161 |
public function get( $key ) {
|
162 |
+
$key = sanitize_key( $key );
|
163 |
+
return isset( $this->session[ $key ] ) ? maybe_unserialize( $this->session[ $key ] ) : false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
}
|
165 |
|
166 |
/**
|
169 |
* @since 1.5
|
170 |
*
|
171 |
* @param string $key Session key
|
172 |
+
* @param integer $value Session variable
|
173 |
+
* @return string Session variable
|
174 |
*/
|
175 |
public function set( $key, $value ) {
|
176 |
|
177 |
$key = sanitize_key( $key );
|
178 |
|
179 |
if ( is_array( $value ) ) {
|
180 |
+
$this->session[ $key ] = serialize( $value );
|
181 |
} else {
|
182 |
+
$this->session[ $key ] = $value;
|
183 |
}
|
184 |
|
185 |
if( $this->use_php_sessions ) {
|
includes/class-edd-stats.php
CHANGED
@@ -136,7 +136,7 @@ class EDD_Stats {
|
|
136 |
$month = date( 'n', current_time( 'timestamp' ) );
|
137 |
$year = date( 'Y', current_time( 'timestamp' ) );
|
138 |
|
139 |
-
if (
|
140 |
|
141 |
// This is a predefined date rate, such as last_week
|
142 |
switch( $date ) {
|
136 |
$month = date( 'n', current_time( 'timestamp' ) );
|
137 |
$year = date( 'Y', current_time( 'timestamp' ) );
|
138 |
|
139 |
+
if ( array_key_exists( $date, $this->get_predefined_dates() ) ) {
|
140 |
|
141 |
// This is a predefined date rate, such as last_week
|
142 |
switch( $date ) {
|
includes/country-functions.php
CHANGED
@@ -54,9 +54,6 @@ function edd_get_shop_states( $country = null ) {
|
|
54 |
case 'US' :
|
55 |
$states = edd_get_states_list();
|
56 |
break;
|
57 |
-
case 'AO' :
|
58 |
-
$states = edd_get_angola_provinces_list();
|
59 |
-
break;
|
60 |
case 'CA' :
|
61 |
$states = edd_get_provinces_list();
|
62 |
break;
|
@@ -480,38 +477,6 @@ function edd_get_states_list() {
|
|
480 |
return apply_filters( 'edd_us_states', $states );
|
481 |
}
|
482 |
|
483 |
-
/**
|
484 |
-
* Get Angola States
|
485 |
-
*
|
486 |
-
* @since 2.8.5
|
487 |
-
* @return array $states A list of states
|
488 |
-
*/
|
489 |
-
function edd_get_angola_provinces_list() {
|
490 |
-
$provinces = array(
|
491 |
-
'' => '',
|
492 |
-
'BGO' => 'Bengo',
|
493 |
-
'BGU' => 'Benguela',
|
494 |
-
'BIE' => 'Bié',
|
495 |
-
'CAB' => 'Cabinda',
|
496 |
-
'CNN' => 'Cunene',
|
497 |
-
'HUA' => 'Huambo',
|
498 |
-
'HUI' => 'Huíla',
|
499 |
-
'CCU' => 'Kuando Kubango', // Cuando Cubango
|
500 |
-
'CNO' => 'Kwanza-Norte', // Cuanza Norte
|
501 |
-
'CUS' => 'Kwanza-Sul', // Cuanza Sul
|
502 |
-
'LUA' => 'Luanda',
|
503 |
-
'LNO' => 'Lunda-Norte', // Lunda Norte
|
504 |
-
'LSU' => 'Lunda-Sul', // Lunda Sul
|
505 |
-
'MAL' => 'Malanje', // Malanje
|
506 |
-
'MOX' => 'Moxico',
|
507 |
-
'NAM' => 'Namibe',
|
508 |
-
'UIG' => 'Uíge',
|
509 |
-
'ZAI' => 'Zaire'
|
510 |
-
);
|
511 |
-
|
512 |
-
return apply_filters( 'edd_angola_provinces', $provinces );
|
513 |
-
}
|
514 |
-
|
515 |
/**
|
516 |
* Get Provinces List
|
517 |
*
|
@@ -1657,19 +1622,3 @@ function edd_get_spain_states_list() {
|
|
1657 |
|
1658 |
return apply_filters( 'edd_spain_states', $states );
|
1659 |
}
|
1660 |
-
|
1661 |
-
/**
|
1662 |
-
* Given a country code, return the country name
|
1663 |
-
*
|
1664 |
-
* @since 2.8.7
|
1665 |
-
* @param string $country_code The ISO Code for the country
|
1666 |
-
*
|
1667 |
-
* @return string
|
1668 |
-
*/
|
1669 |
-
function edd_get_country_name( $country_code = '' ) {
|
1670 |
-
$country_list = edd_get_country_list();
|
1671 |
-
$country_name = isset( $country_list[ $country_code ] ) ? $country_list[ $country_code ] : $country_code;
|
1672 |
-
|
1673 |
-
return apply_filters( 'edd_get_country_name', $country_name, $country_code );
|
1674 |
-
}
|
1675 |
-
|
54 |
case 'US' :
|
55 |
$states = edd_get_states_list();
|
56 |
break;
|
|
|
|
|
|
|
57 |
case 'CA' :
|
58 |
$states = edd_get_provinces_list();
|
59 |
break;
|
477 |
return apply_filters( 'edd_us_states', $states );
|
478 |
}
|
479 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
480 |
/**
|
481 |
* Get Provinces List
|
482 |
*
|
1622 |
|
1623 |
return apply_filters( 'edd_spain_states', $states );
|
1624 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/deprecated-functions.php
CHANGED
@@ -714,21 +714,4 @@ function edd_get_sales_by_date( $day = null, $month_num = null, $year = null, $h
|
|
714 |
$result = $cached[ $key ];
|
715 |
|
716 |
return $result;
|
717 |
-
}
|
718 |
-
|
719 |
-
/**
|
720 |
-
* Set the Page Style for PayPal Purchase page
|
721 |
-
*
|
722 |
-
* @since 1.4.1
|
723 |
-
* @deprecated 2.8
|
724 |
-
* @return string
|
725 |
-
*/
|
726 |
-
function edd_get_paypal_page_style() {
|
727 |
-
|
728 |
-
$backtrace = debug_backtrace();
|
729 |
-
|
730 |
-
_edd_deprecated_function( __FUNCTION__, '2.8', 'edd_get_paypal_image_url', $backtrace );
|
731 |
-
|
732 |
-
$page_style = trim( edd_get_option( 'paypal_page_style', 'PayPal' ) );
|
733 |
-
return apply_filters( 'edd_paypal_page_style', $page_style );
|
734 |
-
}
|
714 |
$result = $cached[ $key ];
|
715 |
|
716 |
return $result;
|
717 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/discount-functions.php
CHANGED
@@ -32,32 +32,19 @@ function edd_get_discounts( $args = array() ) {
|
|
32 |
|
33 |
$args = wp_parse_args( $args, $defaults );
|
34 |
|
35 |
-
$
|
36 |
-
$discounts = edd_get_discounts_cache( $discounts_hash );
|
37 |
-
|
38 |
-
if ( false === $discounts ) {
|
39 |
-
$discounts = get_posts( $args );
|
40 |
-
edd_set_discounts_cache( $discounts_hash, $discounts );
|
41 |
-
}
|
42 |
|
43 |
if ( $discounts ) {
|
44 |
return $discounts;
|
45 |
}
|
46 |
|
47 |
-
// If no discounts are found and we are searching, re-query with a meta key to find discounts by code
|
48 |
if( ! $discounts && ! empty( $args['s'] ) ) {
|
|
|
49 |
$args['meta_key'] = '_edd_discount_code';
|
50 |
$args['meta_value'] = $args['s'];
|
51 |
$args['meta_compare'] = 'LIKE';
|
52 |
unset( $args['s'] );
|
53 |
-
|
54 |
-
$discounts_hash = md5( json_encode( $args ) );
|
55 |
-
$discounts = edd_get_discounts_cache( $discounts_hash );
|
56 |
-
|
57 |
-
if ( false === $discounts ) {
|
58 |
-
$discounts = get_posts( $args );
|
59 |
-
edd_set_discounts_cache( $discounts_hash, $discounts );
|
60 |
-
}
|
61 |
}
|
62 |
|
63 |
if( $discounts ) {
|
@@ -129,10 +116,10 @@ function edd_get_discount( $discount_id = 0 ) {
|
|
129 |
* @since 2.7 Updated to use EDD_Discount object
|
130 |
*
|
131 |
* @param string $code Discount code.
|
132 |
-
* @return
|
133 |
*/
|
134 |
function edd_get_discount_by_code( $code = '' ) {
|
135 |
-
$discount =
|
136 |
|
137 |
if ( ! $discount->ID > 0 ) {
|
138 |
return false;
|
@@ -196,28 +183,17 @@ function edd_get_discount_by( $field = '', $value = '' ) {
|
|
196 |
* @return mixed bool|int The discount ID of the discount code, or false on failure.
|
197 |
*/
|
198 |
function edd_store_discount( $details, $discount_id = null ) {
|
199 |
-
$return = false;
|
200 |
-
|
201 |
if ( null == $discount_id ) {
|
202 |
$discount = new EDD_Discount;
|
203 |
$discount->add( $details );
|
204 |
-
|
205 |
-
if ( ! empty( $discount->ID ) ) {
|
206 |
-
$return = $discount->ID;
|
207 |
-
}
|
208 |
} else {
|
209 |
$discount = new EDD_Discount( $discount_id );
|
210 |
$discount->update( $details );
|
211 |
-
|
212 |
}
|
213 |
|
214 |
-
|
215 |
-
if ( false !== $return ) {
|
216 |
-
global $edd_get_discounts_cache;
|
217 |
-
$edd_get_discounts_cache = array();
|
218 |
-
}
|
219 |
-
|
220 |
-
return $return;
|
221 |
}
|
222 |
|
223 |
/**
|
@@ -814,7 +790,7 @@ function edd_get_cart_discounts_html( $discounts = false ) {
|
|
814 |
$discounts = EDD()->cart->get_discounts();
|
815 |
}
|
816 |
|
817 |
-
if (
|
818 |
return;
|
819 |
}
|
820 |
|
@@ -1076,47 +1052,6 @@ function edd_discount_status_cleanup() {
|
|
1076 |
}
|
1077 |
|
1078 |
}
|
1079 |
-
|
1080 |
-
/**
|
1081 |
-
* Check to see if this set of discounts has been queried for already.
|
1082 |
-
*
|
1083 |
-
* @since 2.8.7
|
1084 |
-
* @param $hash string The hash of the edd_get_discount args.
|
1085 |
-
*
|
1086 |
-
* @return bool|mixed Found discounts if already queried, or false if it has not been queried yet.
|
1087 |
-
*/
|
1088 |
-
function edd_get_discounts_cache( $hash ) {
|
1089 |
-
global $edd_get_discounts_cache;
|
1090 |
-
|
1091 |
-
if ( ! is_array( $edd_get_discounts_cache ) ) {
|
1092 |
-
$edd_get_discounts_cache = array();
|
1093 |
-
}
|
1094 |
-
|
1095 |
-
if ( ! isset( $edd_get_discounts_cache[ $hash ] ) ) {
|
1096 |
-
return false;
|
1097 |
-
}
|
1098 |
-
|
1099 |
-
return $edd_get_discounts_cache[ $hash ];
|
1100 |
-
}
|
1101 |
-
|
1102 |
-
/**
|
1103 |
-
* Store found discounts with the hash.
|
1104 |
-
* This is a non-persistent cache and uses a PHP global.
|
1105 |
-
*
|
1106 |
-
* @since 2.8.7
|
1107 |
-
* @param $hash string The hash of the arguments from edd_get_discounts.
|
1108 |
-
* @param $data array The data to store for this hash.
|
1109 |
-
*/
|
1110 |
-
function edd_set_discounts_cache( $hash, $data ) {
|
1111 |
-
global $edd_get_discounts_cache;
|
1112 |
-
|
1113 |
-
if ( ! is_array( $edd_get_discounts_cache ) ) {
|
1114 |
-
$edd_get_discounts_cache = array();
|
1115 |
-
}
|
1116 |
-
|
1117 |
-
$edd_get_discounts_cache[ $hash ] = $data;
|
1118 |
-
}
|
1119 |
-
|
1120 |
/**
|
1121 |
* Disabled until https://github.com/easydigitaldownloads/easy-digital-downloads/issues/5619 is completed
|
1122 |
* See https://github.com/easydigitaldownloads/easy-digital-downloads/issues/5631
|
32 |
|
33 |
$args = wp_parse_args( $args, $defaults );
|
34 |
|
35 |
+
$discounts = get_posts( $args );
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
|
37 |
if ( $discounts ) {
|
38 |
return $discounts;
|
39 |
}
|
40 |
|
|
|
41 |
if( ! $discounts && ! empty( $args['s'] ) ) {
|
42 |
+
// If no discounts are found and we are searching, re-query with a meta key to find discounts by code
|
43 |
$args['meta_key'] = '_edd_discount_code';
|
44 |
$args['meta_value'] = $args['s'];
|
45 |
$args['meta_compare'] = 'LIKE';
|
46 |
unset( $args['s'] );
|
47 |
+
$discounts = get_posts( $args );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
}
|
49 |
|
50 |
if( $discounts ) {
|
116 |
* @since 2.7 Updated to use EDD_Discount object
|
117 |
*
|
118 |
* @param string $code Discount code.
|
119 |
+
* @return mixed object|bool EDD_Discount object or false if not found.
|
120 |
*/
|
121 |
function edd_get_discount_by_code( $code = '' ) {
|
122 |
+
$discount = new EDD_Discount( $code, true );
|
123 |
|
124 |
if ( ! $discount->ID > 0 ) {
|
125 |
return false;
|
183 |
* @return mixed bool|int The discount ID of the discount code, or false on failure.
|
184 |
*/
|
185 |
function edd_store_discount( $details, $discount_id = null ) {
|
|
|
|
|
186 |
if ( null == $discount_id ) {
|
187 |
$discount = new EDD_Discount;
|
188 |
$discount->add( $details );
|
189 |
+
return $discount->ID;
|
|
|
|
|
|
|
190 |
} else {
|
191 |
$discount = new EDD_Discount( $discount_id );
|
192 |
$discount->update( $details );
|
193 |
+
return $discount->ID;
|
194 |
}
|
195 |
|
196 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
}
|
198 |
|
199 |
/**
|
790 |
$discounts = EDD()->cart->get_discounts();
|
791 |
}
|
792 |
|
793 |
+
if ( ! $discounts ) {
|
794 |
return;
|
795 |
}
|
796 |
|
1052 |
}
|
1053 |
|
1054 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1055 |
/**
|
1056 |
* Disabled until https://github.com/easydigitaldownloads/easy-digital-downloads/issues/5619 is completed
|
1057 |
* See https://github.com/easydigitaldownloads/easy-digital-downloads/issues/5631
|
includes/emails/actions.php
CHANGED
@@ -16,23 +16,19 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
16 |
* Triggers Purchase Receipt to be sent after the payment status is updated
|
17 |
*
|
18 |
* @since 1.0.8.4
|
19 |
-
* @
|
20 |
-
*
|
21 |
-
* @param int $payment_id Payment ID.
|
22 |
-
* @param EDD_Payment $payment Payment object for payment ID.
|
23 |
-
* @param EDD_Customer $customer Customer object for associated payment.
|
24 |
* @return void
|
25 |
*/
|
26 |
-
function edd_trigger_purchase_receipt( $payment_id
|
27 |
// Make sure we don't send a purchase receipt while editing a payment
|
28 |
if ( isset( $_POST['edd-action'] ) && 'edit_payment' == $_POST['edd-action'] ) {
|
29 |
return;
|
30 |
}
|
31 |
|
32 |
// Send email with secure download link
|
33 |
-
edd_email_purchase_receipt( $payment_id
|
34 |
}
|
35 |
-
add_action( 'edd_complete_purchase', 'edd_trigger_purchase_receipt', 999,
|
36 |
|
37 |
/**
|
38 |
* Resend the Email Purchase Receipt. (This can be done from the Payment History page)
|
16 |
* Triggers Purchase Receipt to be sent after the payment status is updated
|
17 |
*
|
18 |
* @since 1.0.8.4
|
19 |
+
* @param int $payment_id Payment ID
|
|
|
|
|
|
|
|
|
20 |
* @return void
|
21 |
*/
|
22 |
+
function edd_trigger_purchase_receipt( $payment_id ) {
|
23 |
// Make sure we don't send a purchase receipt while editing a payment
|
24 |
if ( isset( $_POST['edd-action'] ) && 'edit_payment' == $_POST['edd-action'] ) {
|
25 |
return;
|
26 |
}
|
27 |
|
28 |
// Send email with secure download link
|
29 |
+
edd_email_purchase_receipt( $payment_id );
|
30 |
}
|
31 |
+
add_action( 'edd_complete_purchase', 'edd_trigger_purchase_receipt', 999, 1 );
|
32 |
|
33 |
/**
|
34 |
* Resend the Email Purchase Receipt. (This can be done from the Payment History page)
|
includes/emails/class-edd-email-tags.php
CHANGED
@@ -439,15 +439,15 @@ function edd_email_tag_download_list( $payment_id ) {
|
|
439 |
|
440 |
} elseif ( edd_is_bundled_product( $item['id'] ) ) {
|
441 |
|
442 |
-
$bundled_products = apply_filters( 'edd_email_tag_bundled_products', edd_get_bundled_products( $item['id']
|
443 |
|
444 |
foreach ( $bundled_products as $bundle_item ) {
|
445 |
|
446 |
$download_list .= '<div class="edd_bundled_product"><strong>' . get_the_title( $bundle_item ) . '</strong></div>';
|
447 |
|
448 |
-
$
|
449 |
|
450 |
-
foreach ( $
|
451 |
if ( $show_links ) {
|
452 |
$download_list .= '<div>';
|
453 |
$file_url = edd_get_download_file_url( $payment_data['key'], $email, $filekey, $bundle_item, $price_id );
|
@@ -460,8 +460,7 @@ function edd_email_tag_download_list( $payment_id ) {
|
|
460 |
}
|
461 |
}
|
462 |
}
|
463 |
-
|
464 |
-
} else {
|
465 |
|
466 |
$no_downloads_message = apply_filters( 'edd_receipt_no_files_found_text', __( 'No downloadable files found.', 'easy-digital-downloads' ), $item['id'] );
|
467 |
$no_downloads_message = apply_filters( 'edd_email_receipt_no_downloads_message', $no_downloads_message, $item['id'], $price_id, $payment_id );
|
@@ -653,7 +652,7 @@ function edd_email_tag_first_name( $payment_id ) {
|
|
653 |
return '';
|
654 |
}
|
655 |
|
656 |
-
$email_name = edd_get_email_names( $user_info
|
657 |
|
658 |
return $email_name['name'];
|
659 |
}
|
@@ -674,7 +673,7 @@ function edd_email_tag_fullname( $payment_id ) {
|
|
674 |
return '';
|
675 |
}
|
676 |
|
677 |
-
$email_name = edd_get_email_names( $user_info
|
678 |
return $email_name['fullname'];
|
679 |
}
|
680 |
|
@@ -694,7 +693,7 @@ function edd_email_tag_username( $payment_id ) {
|
|
694 |
return '';
|
695 |
}
|
696 |
|
697 |
-
$email_name = edd_get_email_names( $user_info
|
698 |
return $email_name['username'];
|
699 |
}
|
700 |
|
439 |
|
440 |
} elseif ( edd_is_bundled_product( $item['id'] ) ) {
|
441 |
|
442 |
+
$bundled_products = apply_filters( 'edd_email_tag_bundled_products', edd_get_bundled_products( $item['id'] ), $item, $payment_id, 'download_list' );
|
443 |
|
444 |
foreach ( $bundled_products as $bundle_item ) {
|
445 |
|
446 |
$download_list .= '<div class="edd_bundled_product"><strong>' . get_the_title( $bundle_item ) . '</strong></div>';
|
447 |
|
448 |
+
$files = edd_get_download_files( $bundle_item );
|
449 |
|
450 |
+
foreach ( $files as $filekey => $file ) {
|
451 |
if ( $show_links ) {
|
452 |
$download_list .= '<div>';
|
453 |
$file_url = edd_get_download_file_url( $payment_data['key'], $email, $filekey, $bundle_item, $price_id );
|
460 |
}
|
461 |
}
|
462 |
}
|
463 |
+
}else{
|
|
|
464 |
|
465 |
$no_downloads_message = apply_filters( 'edd_receipt_no_files_found_text', __( 'No downloadable files found.', 'easy-digital-downloads' ), $item['id'] );
|
466 |
$no_downloads_message = apply_filters( 'edd_email_receipt_no_downloads_message', $no_downloads_message, $item['id'], $price_id, $payment_id );
|
652 |
return '';
|
653 |
}
|
654 |
|
655 |
+
$email_name = edd_get_email_names( $user_info );
|
656 |
|
657 |
return $email_name['name'];
|
658 |
}
|
673 |
return '';
|
674 |
}
|
675 |
|
676 |
+
$email_name = edd_get_email_names( $user_info );
|
677 |
return $email_name['fullname'];
|
678 |
}
|
679 |
|
693 |
return '';
|
694 |
}
|
695 |
|
696 |
+
$email_name = edd_get_email_names( $user_info );
|
697 |
return $email_name['username'];
|
698 |
}
|
699 |
|
includes/emails/class-edd-emails.php
CHANGED
@@ -124,11 +124,7 @@ class EDD_Emails {
|
|
124 |
*/
|
125 |
public function get_from_address() {
|
126 |
if ( ! $this->from_address ) {
|
127 |
-
$this->from_address = edd_get_option( 'from_email' );
|
128 |
-
}
|
129 |
-
|
130 |
-
if( empty( $this->from_address ) || ! is_email( $this->from_address ) ) {
|
131 |
-
$this->from_address = get_option( 'admin_email' );
|
132 |
}
|
133 |
|
134 |
return apply_filters( 'edd_email_from_address', $this->from_address, $this );
|
124 |
*/
|
125 |
public function get_from_address() {
|
126 |
if ( ! $this->from_address ) {
|
127 |
+
$this->from_address = edd_get_option( 'from_email', get_option( 'admin_email' ) );
|
|
|
|
|
|
|
|
|
128 |
}
|
129 |
|
130 |
return apply_filters( 'edd_email_from_address', $this->from_address, $this );
|
includes/emails/functions.php
CHANGED
@@ -17,20 +17,13 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
17 |
* customizable Purchase Receipt
|
18 |
*
|
19 |
* @since 1.0
|
20 |
-
* @
|
21 |
-
*
|
22 |
-
* @param int $payment_id Payment ID
|
23 |
-
* @param bool $admin_notice Whether to send the admin email notification or not (default: true)
|
24 |
-
* @param EDD_Payment $payment Payment object for payment ID.
|
25 |
-
* @param EDD_Customer $customer Customer object for associated payment.
|
26 |
* @return void
|
27 |
*/
|
28 |
-
function edd_email_purchase_receipt( $payment_id, $admin_notice = true, $to_email = ''
|
29 |
-
if ( is_null( $payment ) ) {
|
30 |
-
$payment = edd_get_payment( $payment_id );
|
31 |
-
}
|
32 |
|
33 |
-
$payment_data =
|
34 |
|
35 |
$from_name = edd_get_option( 'from_name', wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES ) );
|
36 |
$from_name = apply_filters( 'edd_purchase_from_name', $from_name, $payment_id, $payment_data );
|
@@ -38,8 +31,10 @@ function edd_email_purchase_receipt( $payment_id, $admin_notice = true, $to_emai
|
|
38 |
$from_email = edd_get_option( 'from_email', get_bloginfo( 'admin_email' ) );
|
39 |
$from_email = apply_filters( 'edd_purchase_from_address', $from_email, $payment_id, $payment_data );
|
40 |
|
41 |
-
if
|
42 |
-
|
|
|
|
|
43 |
}
|
44 |
|
45 |
$subject = edd_get_option( 'purchase_subject', __( 'Purchase Receipt', 'easy-digital-downloads' ) );
|
@@ -215,67 +210,26 @@ function edd_get_default_sale_notification_email() {
|
|
215 |
*
|
216 |
* @since 1.9
|
217 |
* @param $user_info
|
218 |
-
* @param $payment EDD_Payment for getting the names
|
219 |
*
|
220 |
* @return array $email_names
|
221 |
*/
|
222 |
-
function edd_get_email_names( $user_info
|
223 |
$email_names = array();
|
224 |
-
$
|
225 |
-
|
226 |
-
if ( $payment instanceof EDD_Payment ) {
|
227 |
-
|
228 |
-
if ( $payment->user_id > 0 ) {
|
229 |
-
|
230 |
-
$user_data = get_userdata( $payment->user_id );
|
231 |
-
$email_names['name'] = $payment->first_name;
|
232 |
-
$email_names['fullname'] = trim( $payment->first_name . ' ' . $payment->last_name );
|
233 |
-
$email_names['username'] = $user_data->user_login;
|
234 |
-
|
235 |
-
} elseif ( ! empty( $payment->first_name ) ) {
|
236 |
-
|
237 |
-
$email_names['name'] = $payment->first_name;
|
238 |
-
$email_names['fullname'] = trim( $payment->first_name . ' ' . $payment->last_name );
|
239 |
-
$email_names['username'] = $payment->first_name;
|
240 |
-
|
241 |
-
} else {
|
242 |
-
|
243 |
-
$email_names['name'] = $payment->email;
|
244 |
-
$email_names['username'] = $payment->email;
|
245 |
-
|
246 |
-
}
|
247 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
} else {
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
preg_match( '/[oO]\s*:\s*\d+\s*:\s*"\s*(?!(?i)(stdClass))/', $user_info, $matches );
|
253 |
-
if ( ! empty( $matches ) ) {
|
254 |
-
return array(
|
255 |
-
'name' => '',
|
256 |
-
'fullname' => '',
|
257 |
-
'username' => '',
|
258 |
-
);
|
259 |
-
} else {
|
260 |
-
$user_info = maybe_unserialize( $user_info );
|
261 |
-
}
|
262 |
-
|
263 |
-
}
|
264 |
-
|
265 |
-
if ( isset( $user_info['id'] ) && $user_info['id'] > 0 && isset( $user_info['first_name'] ) ) {
|
266 |
-
$user_data = get_userdata( $user_info['id'] );
|
267 |
-
$email_names['name'] = $user_info['first_name'];
|
268 |
-
$email_names['fullname'] = $user_info['first_name'] . ' ' . $user_info['last_name'];
|
269 |
-
$email_names['username'] = $user_data->user_login;
|
270 |
-
} elseif ( isset( $user_info['first_name'] ) ) {
|
271 |
-
$email_names['name'] = $user_info['first_name'];
|
272 |
-
$email_names['fullname'] = $user_info['first_name'] . ' ' . $user_info['last_name'];
|
273 |
-
$email_names['username'] = $user_info['first_name'];
|
274 |
-
} else {
|
275 |
-
$email_names['name'] = $user_info['email'];
|
276 |
-
$email_names['username'] = $user_info['email'];
|
277 |
-
}
|
278 |
-
|
279 |
}
|
280 |
|
281 |
return $email_names;
|
17 |
* customizable Purchase Receipt
|
18 |
*
|
19 |
* @since 1.0
|
20 |
+
* @param int $payment_id Payment ID
|
21 |
+
* @param bool $admin_notice Whether to send the admin email notification or not (default: true)
|
|
|
|
|
|
|
|
|
22 |
* @return void
|
23 |
*/
|
24 |
+
function edd_email_purchase_receipt( $payment_id, $admin_notice = true, $to_email = '' ) {
|
|
|
|
|
|
|
25 |
|
26 |
+
$payment_data = edd_get_payment_meta( $payment_id );
|
27 |
|
28 |
$from_name = edd_get_option( 'from_name', wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES ) );
|
29 |
$from_name = apply_filters( 'edd_purchase_from_name', $from_name, $payment_id, $payment_data );
|
31 |
$from_email = edd_get_option( 'from_email', get_bloginfo( 'admin_email' ) );
|
32 |
$from_email = apply_filters( 'edd_purchase_from_address', $from_email, $payment_id, $payment_data );
|
33 |
|
34 |
+
if( empty( $to_email ) ) {
|
35 |
+
|
36 |
+
$to_email = edd_get_payment_user_email( $payment_id );
|
37 |
+
|
38 |
}
|
39 |
|
40 |
$subject = edd_get_option( 'purchase_subject', __( 'Purchase Receipt', 'easy-digital-downloads' ) );
|
210 |
*
|
211 |
* @since 1.9
|
212 |
* @param $user_info
|
|
|
213 |
*
|
214 |
* @return array $email_names
|
215 |
*/
|
216 |
+
function edd_get_email_names( $user_info ) {
|
217 |
$email_names = array();
|
218 |
+
$user_info = maybe_unserialize( $user_info );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
|
220 |
+
$email_names['fullname'] = '';
|
221 |
+
if ( isset( $user_info['id'] ) && $user_info['id'] > 0 && isset( $user_info['first_name'] ) ) {
|
222 |
+
$user_data = get_userdata( $user_info['id'] );
|
223 |
+
$email_names['name'] = $user_info['first_name'];
|
224 |
+
$email_names['fullname'] = $user_info['first_name'] . ' ' . $user_info['last_name'];
|
225 |
+
$email_names['username'] = $user_data->user_login;
|
226 |
+
} elseif ( isset( $user_info['first_name'] ) ) {
|
227 |
+
$email_names['name'] = $user_info['first_name'];
|
228 |
+
$email_names['fullname'] = $user_info['first_name'] . ' ' . $user_info['last_name'];
|
229 |
+
$email_names['username'] = $user_info['first_name'];
|
230 |
} else {
|
231 |
+
$email_names['name'] = $user_info['email'];
|
232 |
+
$email_names['username'] = $user_info['email'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
}
|
234 |
|
235 |
return $email_names;
|
includes/emails/template.php
CHANGED
@@ -115,7 +115,7 @@ function edd_email_template_preview() {
|
|
115 |
<?php
|
116 |
echo ob_get_clean();
|
117 |
}
|
118 |
-
add_action( '
|
119 |
|
120 |
/**
|
121 |
* Displays the email preview
|
@@ -138,7 +138,7 @@ function edd_display_email_template_preview() {
|
|
138 |
}
|
139 |
|
140 |
|
141 |
-
EDD()->emails->heading =
|
142 |
|
143 |
echo EDD()->emails->build_email( edd_email_preview_template_tags( edd_get_email_body_content( 0, array() ) ) );
|
144 |
|
@@ -181,47 +181,49 @@ function edd_get_email_body_content( $payment_id = 0, $payment_data = array() )
|
|
181 |
* @return string $email_body Body of the email
|
182 |
*/
|
183 |
function edd_get_sale_notification_body_content( $payment_id = 0, $payment_data = array() ) {
|
184 |
-
$
|
|
|
185 |
|
186 |
-
if( $
|
187 |
-
$user_data = get_userdata( $
|
188 |
$name = $user_data->display_name;
|
189 |
-
} elseif(
|
190 |
-
$name = $
|
191 |
} else {
|
192 |
-
$name = $
|
193 |
}
|
194 |
|
195 |
$download_list = '';
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
$
|
201 |
-
|
202 |
-
|
203 |
-
|
|
|
204 |
}
|
205 |
}
|
206 |
$download_list .= html_entity_decode( $title, ENT_COMPAT, 'UTF-8' ) . "\n";
|
207 |
}
|
208 |
}
|
209 |
|
210 |
-
$gateway = edd_get_gateway_admin_label( $
|
211 |
|
212 |
$default_email_body = __( 'Hello', 'easy-digital-downloads' ) . "\n\n" . sprintf( __( 'A %s purchase has been made', 'easy-digital-downloads' ), edd_get_label_plural() ) . ".\n\n";
|
213 |
$default_email_body .= sprintf( __( '%s sold:', 'easy-digital-downloads' ), edd_get_label_plural() ) . "\n\n";
|
214 |
$default_email_body .= $download_list . "\n\n";
|
215 |
$default_email_body .= __( 'Purchased by: ', 'easy-digital-downloads' ) . " " . html_entity_decode( $name, ENT_COMPAT, 'UTF-8' ) . "\n";
|
216 |
-
$default_email_body .= __( 'Amount: ', 'easy-digital-downloads' ) . " " . html_entity_decode( edd_currency_filter( edd_format_amount( $
|
217 |
$default_email_body .= __( 'Payment Method: ', 'easy-digital-downloads' ) . " " . $gateway . "\n\n";
|
218 |
$default_email_body .= __( 'Thank you', 'easy-digital-downloads' );
|
219 |
|
220 |
-
$
|
221 |
-
$
|
222 |
|
223 |
//$email_body = edd_email_template_tags( $email, $payment_data, $payment_id, true );
|
224 |
-
$email_body = edd_do_email_tags( $
|
225 |
|
226 |
$email_body = apply_filters( 'edd_email_template_wpautop', true ) ? wpautop( $email_body ) : $email_body;
|
227 |
|
115 |
<?php
|
116 |
echo ob_get_clean();
|
117 |
}
|
118 |
+
add_action( 'edd_email_settings', 'edd_email_template_preview' );
|
119 |
|
120 |
/**
|
121 |
* Displays the email preview
|
138 |
}
|
139 |
|
140 |
|
141 |
+
EDD()->emails->heading = __( 'Purchase Receipt', 'easy-digital-downloads' );
|
142 |
|
143 |
echo EDD()->emails->build_email( edd_email_preview_template_tags( edd_get_email_body_content( 0, array() ) ) );
|
144 |
|
181 |
* @return string $email_body Body of the email
|
182 |
*/
|
183 |
function edd_get_sale_notification_body_content( $payment_id = 0, $payment_data = array() ) {
|
184 |
+
$user_info = maybe_unserialize( $payment_data['user_info'] );
|
185 |
+
$email = edd_get_payment_user_email( $payment_id );
|
186 |
|
187 |
+
if( isset( $user_info['id'] ) && $user_info['id'] > 0 ) {
|
188 |
+
$user_data = get_userdata( $user_info['id'] );
|
189 |
$name = $user_data->display_name;
|
190 |
+
} elseif( isset( $user_info['first_name'] ) && isset( $user_info['last_name'] ) ) {
|
191 |
+
$name = $user_info['first_name'] . ' ' . $user_info['last_name'];
|
192 |
} else {
|
193 |
+
$name = $email;
|
194 |
}
|
195 |
|
196 |
$download_list = '';
|
197 |
+
$downloads = maybe_unserialize( $payment_data['downloads'] );
|
198 |
+
|
199 |
+
if( is_array( $downloads ) ) {
|
200 |
+
foreach( $downloads as $download ) {
|
201 |
+
$id = isset( $payment_data['cart_details'] ) ? $download['id'] : $download;
|
202 |
+
$title = get_the_title( $id );
|
203 |
+
if( isset( $download['options'] ) ) {
|
204 |
+
if( isset( $download['options']['price_id'] ) ) {
|
205 |
+
$title .= ' - ' . edd_get_price_option_name( $id, $download['options']['price_id'], $payment_id );
|
206 |
}
|
207 |
}
|
208 |
$download_list .= html_entity_decode( $title, ENT_COMPAT, 'UTF-8' ) . "\n";
|
209 |
}
|
210 |
}
|
211 |
|
212 |
+
$gateway = edd_get_gateway_admin_label( edd_get_payment_meta( $payment_id, '_edd_payment_gateway', true ) );
|
213 |
|
214 |
$default_email_body = __( 'Hello', 'easy-digital-downloads' ) . "\n\n" . sprintf( __( 'A %s purchase has been made', 'easy-digital-downloads' ), edd_get_label_plural() ) . ".\n\n";
|
215 |
$default_email_body .= sprintf( __( '%s sold:', 'easy-digital-downloads' ), edd_get_label_plural() ) . "\n\n";
|
216 |
$default_email_body .= $download_list . "\n\n";
|
217 |
$default_email_body .= __( 'Purchased by: ', 'easy-digital-downloads' ) . " " . html_entity_decode( $name, ENT_COMPAT, 'UTF-8' ) . "\n";
|
218 |
+
$default_email_body .= __( 'Amount: ', 'easy-digital-downloads' ) . " " . html_entity_decode( edd_currency_filter( edd_format_amount( edd_get_payment_amount( $payment_id ) ) ), ENT_COMPAT, 'UTF-8' ) . "\n";
|
219 |
$default_email_body .= __( 'Payment Method: ', 'easy-digital-downloads' ) . " " . $gateway . "\n\n";
|
220 |
$default_email_body .= __( 'Thank you', 'easy-digital-downloads' );
|
221 |
|
222 |
+
$email = edd_get_option( 'sale_notification', false );
|
223 |
+
$email = $email ? stripslashes( $email ) : $default_email_body;
|
224 |
|
225 |
//$email_body = edd_email_template_tags( $email, $payment_data, $payment_id, true );
|
226 |
+
$email_body = edd_do_email_tags( $email, $payment_id );
|
227 |
|
228 |
$email_body = apply_filters( 'edd_email_template_wpautop', true ) ? wpautop( $email_body ) : $email_body;
|
229 |
|
includes/error-tracking.php
CHANGED
@@ -27,25 +27,16 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
27 |
function edd_print_errors() {
|
28 |
$errors = edd_get_errors();
|
29 |
if ( $errors ) {
|
30 |
-
|
31 |
$classes = apply_filters( 'edd_error_class', array(
|
32 |
'edd_errors', 'edd-alert', 'edd-alert-error'
|
33 |
) );
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
echo '<p class="edd_error" id="edd_error_' . $error_id . '"><strong>' . __( 'Error', 'easy-digital-downloads' ) . '</strong>: ' . $error . '</p>';
|
41 |
-
|
42 |
-
}
|
43 |
-
|
44 |
-
echo '</div>';
|
45 |
-
}
|
46 |
-
|
47 |
edd_clear_errors();
|
48 |
-
|
49 |
}
|
50 |
}
|
51 |
add_action( 'edd_purchase_form_before_submit', 'edd_print_errors' );
|
@@ -63,9 +54,7 @@ add_action( 'edd_print_errors', 'edd_print_errors' );
|
|
63 |
* @return mixed array if errors are present, false if none found
|
64 |
*/
|
65 |
function edd_get_errors() {
|
66 |
-
|
67 |
-
$errors = apply_filters( 'edd_errors', $errors );
|
68 |
-
return $errors;
|
69 |
}
|
70 |
|
71 |
/**
|
27 |
function edd_print_errors() {
|
28 |
$errors = edd_get_errors();
|
29 |
if ( $errors ) {
|
|
|
30 |
$classes = apply_filters( 'edd_error_class', array(
|
31 |
'edd_errors', 'edd-alert', 'edd-alert-error'
|
32 |
) );
|
33 |
+
echo '<div class="' . implode( ' ', $classes ) . '">';
|
34 |
+
// Loop error codes and display errors
|
35 |
+
foreach ( $errors as $error_id => $error ) {
|
36 |
+
echo '<p class="edd_error" id="edd_error_' . $error_id . '"><strong>' . __( 'Error', 'easy-digital-downloads' ) . '</strong>: ' . $error . '</p>';
|
37 |
+
}
|
38 |
+
echo '</div>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
edd_clear_errors();
|
|
|
40 |
}
|
41 |
}
|
42 |
add_action( 'edd_purchase_form_before_submit', 'edd_print_errors' );
|
54 |
* @return mixed array if errors are present, false if none found
|
55 |
*/
|
56 |
function edd_get_errors() {
|
57 |
+
return EDD()->session->get( 'edd_errors' );
|
|
|
|
|
58 |
}
|
59 |
|
60 |
/**
|
includes/gateways/amazon-payments.php
CHANGED
@@ -161,9 +161,6 @@ final class EDD_Amazon_Payments {
|
|
161 |
add_filter( 'edd_accepted_payment_icons', array( $this, 'register_payment_icon' ), 10, 1 );
|
162 |
add_filter( 'edd_show_gateways', array( $this, 'maybe_hide_gateway_select' ) );
|
163 |
|
164 |
-
// Since the Amazon Gateway loads scripts on page, it needs the scripts to load in the header.
|
165 |
-
add_filter( 'edd_load_scripts_in_footer', '__return_false' );
|
166 |
-
|
167 |
if ( is_admin() ) {
|
168 |
add_filter( 'edd_settings_sections_gateways', array( $this, 'register_gateway_section' ), 1, 1 );
|
169 |
add_filter( 'edd_settings_gateways', array( $this, 'register_gateway_settings' ), 1, 1 );
|
161 |
add_filter( 'edd_accepted_payment_icons', array( $this, 'register_payment_icon' ), 10, 1 );
|
162 |
add_filter( 'edd_show_gateways', array( $this, 'maybe_hide_gateway_select' ) );
|
163 |
|
|
|
|
|
|
|
164 |
if ( is_admin() ) {
|
165 |
add_filter( 'edd_settings_sections_gateways', array( $this, 'register_gateway_section' ), 1, 1 );
|
166 |
add_filter( 'edd_settings_gateways', array( $this, 'register_gateway_settings' ), 1, 1 );
|
includes/gateways/paypal-standard.php
CHANGED
@@ -58,30 +58,17 @@ function edd_register_paypal_gateway_settings( $gateway_settings ) {
|
|
58 |
'type' => 'text',
|
59 |
'size' => 'regular',
|
60 |
),
|
61 |
-
'
|
62 |
-
'id' => '
|
63 |
-
'name' => __( 'PayPal
|
64 |
-
'desc' => __( '
|
65 |
-
'type' => '
|
66 |
'size' => 'regular',
|
67 |
),
|
68 |
);
|
69 |
|
70 |
-
$pdt_desc = sprintf(
|
71 |
-
__( 'Enter your PayPal Identity Token in order to enable Payment Data Transfer (PDT). This allows payments to be verified without relying on the PayPal IPN. See our <a href="%s" target="_blank">documentation</a> for further information.', 'easy-digital-downloads' ),
|
72 |
-
'http://docs.easydigitaldownloads.com/article/918-paypal-standard'
|
73 |
-
);
|
74 |
-
|
75 |
-
$paypal_settings['paypal_identify_token'] = array(
|
76 |
-
'id' => 'paypal_identity_token',
|
77 |
-
'name' => __( 'PayPal Identity Token', 'easy-digital-downloads' ),
|
78 |
-
'type' => 'text',
|
79 |
-
'desc' => $pdt_desc,
|
80 |
-
'size' => 'regular',
|
81 |
-
);
|
82 |
-
|
83 |
$disable_ipn_desc = sprintf(
|
84 |
-
__( 'If
|
85 |
'http://docs.easydigitaldownloads.com/article/190-payments-not-marked-as-complete'
|
86 |
);
|
87 |
|
@@ -224,7 +211,7 @@ function edd_process_paypal_purchase( $purchase_data ) {
|
|
224 |
'return' => $return_url,
|
225 |
'cancel_return' => edd_get_failed_transaction_uri( '?payment-id=' . $payment ),
|
226 |
'notify_url' => $listener_url,
|
227 |
-
'
|
228 |
'cbt' => get_bloginfo( 'name' ),
|
229 |
'bn' => 'EasyDigitalDownloads_SP'
|
230 |
);
|
@@ -299,8 +286,6 @@ function edd_process_paypal_purchase( $purchase_data ) {
|
|
299 |
|
300 |
$paypal_args = apply_filters( 'edd_paypal_redirect_args', $paypal_args, $purchase_data );
|
301 |
|
302 |
-
edd_debug_log( 'PayPal arguments: ' . print_r( $paypal_args, true ) );
|
303 |
-
|
304 |
// Build query
|
305 |
$paypal_redirect .= http_build_query( $paypal_args );
|
306 |
|
@@ -324,9 +309,6 @@ add_action( 'edd_gateway_paypal', 'edd_process_paypal_purchase' );
|
|
324 |
function edd_listen_for_paypal_ipn() {
|
325 |
// Regular PayPal IPN
|
326 |
if ( isset( $_GET['edd-listener'] ) && $_GET['edd-listener'] == 'IPN' ) {
|
327 |
-
|
328 |
-
edd_debug_log( 'PayPal IPN endpoint loaded' );
|
329 |
-
|
330 |
do_action( 'edd_verify_paypal_ipn' );
|
331 |
}
|
332 |
}
|
@@ -344,8 +326,6 @@ function edd_process_paypal_ipn() {
|
|
344 |
return;
|
345 |
}
|
346 |
|
347 |
-
edd_debug_log( 'edd_process_paypal_ipn() running during PayPal IPN processing' );
|
348 |
-
|
349 |
// Set initial post data to empty string
|
350 |
$post_data = '';
|
351 |
|
@@ -395,19 +375,6 @@ function edd_process_paypal_ipn() {
|
|
395 |
|
396 |
}
|
397 |
|
398 |
-
/**
|
399 |
-
* PayPal Web IPN Verification
|
400 |
-
*
|
401 |
-
* Allows filtering the IPN Verification data that PayPal passes back in via IPN with PayPal Standard
|
402 |
-
*
|
403 |
-
* @since 2.8.13
|
404 |
-
*
|
405 |
-
* @param array $data The PayPal Web Accept Data
|
406 |
-
*/
|
407 |
-
$encoded_data_array = apply_filters( 'edd_process_paypal_ipn_data', $encoded_data_array );
|
408 |
-
|
409 |
-
edd_debug_log( 'encoded_data_array data array: ' . print_r( $encoded_data_array, true ) );
|
410 |
-
|
411 |
if ( ! edd_get_option( 'disable_paypal_verification' ) ) {
|
412 |
|
413 |
// Validate the IPN
|
@@ -430,26 +397,21 @@ function edd_process_paypal_ipn() {
|
|
430 |
'body' => $encoded_data_array
|
431 |
);
|
432 |
|
433 |
-
edd_debug_log( 'Attempting to verify PayPal IPN. Data sent for verification: ' . print_r( $remote_post_vars, true ) );
|
434 |
-
|
435 |
// Get response
|
436 |
$api_response = wp_remote_post( edd_get_paypal_redirect( true, true ), $remote_post_vars );
|
437 |
|
438 |
if ( is_wp_error( $api_response ) ) {
|
439 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid IPN verification response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $api_response ) ) );
|
440 |
-
edd_debug_log( 'Invalid IPN verification response. IPN data: ' . print_r( $api_response, true ) );
|
441 |
|
442 |
return; // Something went wrong
|
443 |
}
|
444 |
|
445 |
if ( wp_remote_retrieve_body( $api_response ) !== 'VERIFIED' && edd_get_option( 'disable_paypal_verification', false ) ) {
|
446 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid IPN verification response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $api_response ) ) );
|
447 |
-
edd_debug_log( 'Invalid IPN verification response. IPN data: ' . print_r( $api_response, true ) );
|
448 |
|
449 |
return; // Response not okay
|
450 |
}
|
451 |
|
452 |
-
edd_debug_log( 'IPN verified successfully' );
|
453 |
}
|
454 |
|
455 |
// Check if $post_data_array has been populated
|
@@ -495,19 +457,6 @@ add_action( 'edd_verify_paypal_ipn', 'edd_process_paypal_ipn' );
|
|
495 |
* @return void
|
496 |
*/
|
497 |
function edd_process_paypal_web_accept_and_cart( $data, $payment_id ) {
|
498 |
-
|
499 |
-
/**
|
500 |
-
* PayPal Web Accept Data
|
501 |
-
*
|
502 |
-
* Allows filtering the Web Accept data that PayPal passes back in via IPN with PayPal Standard
|
503 |
-
*
|
504 |
-
* @since 2.8.13
|
505 |
-
*
|
506 |
-
* @param array $data The PayPal Web Accept Data
|
507 |
-
* @param int $payment_id The Payment ID associated with this IPN request
|
508 |
-
*/
|
509 |
-
$data = apply_filters( 'edd_paypal_web_accept_and_cart_data', $data, $payment_id );
|
510 |
-
|
511 |
if ( $data['txn_type'] != 'web_accept' && $data['txn_type'] != 'cart' && $data['payment_status'] != 'Refunded' ) {
|
512 |
return;
|
513 |
}
|
@@ -533,7 +482,6 @@ function edd_process_paypal_web_accept_and_cart( $data, $payment_id ) {
|
|
533 |
// Verify payment recipient
|
534 |
if ( strcasecmp( $business_email, trim( edd_get_option( 'paypal_email', false ) ) ) != 0 ) {
|
535 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid business email in IPN response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $data ) ), $payment_id );
|
536 |
-
edd_debug_log( 'Invalid business email in IPN response. IPN data: ' . print_r( $data, true ) );
|
537 |
edd_update_payment_status( $payment_id, 'failed' );
|
538 |
edd_insert_payment_note( $payment_id, __( 'Payment failed due to invalid PayPal business email.', 'easy-digital-downloads' ) );
|
539 |
return;
|
@@ -543,7 +491,6 @@ function edd_process_paypal_web_accept_and_cart( $data, $payment_id ) {
|
|
543 |
if ( $currency_code != strtolower( $payment->currency ) ) {
|
544 |
|
545 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid currency in IPN response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $data ) ), $payment_id );
|
546 |
-
edd_debug_log( 'Invalid currency in IPN response. IPN data: ' . print_r( $data, true ) );
|
547 |
edd_update_payment_status( $payment_id, 'failed' );
|
548 |
edd_insert_payment_note( $payment_id, __( 'Payment failed due to invalid currency in PayPal IPN.', 'easy-digital-downloads' ) );
|
549 |
return;
|
@@ -603,14 +550,12 @@ function edd_process_paypal_web_accept_and_cart( $data, $payment_id ) {
|
|
603 |
if ( number_format( (float) $paypal_amount, 2 ) < number_format( (float) $payment_amount, 2 ) ) {
|
604 |
// The prices don't match
|
605 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid payment amount in IPN response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $data ) ), $payment_id );
|
606 |
-
edd_debug_log( 'Invalid payment amount in IPN response. IPN data: ' . printf( $data, true ) );
|
607 |
edd_update_payment_status( $payment_id, 'failed' );
|
608 |
edd_insert_payment_note( $payment_id, __( 'Payment failed due to invalid amount in PayPal IPN.', 'easy-digital-downloads' ) );
|
609 |
return;
|
610 |
}
|
611 |
if ( $purchase_key != edd_get_payment_key( $payment_id ) ) {
|
612 |
// Purchase keys don't match
|
613 |
-
edd_debug_log( 'Invalid purchase key in IPN response. IPN data: ' . printf( $data, true ) );
|
614 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid purchase key in IPN response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $data ) ), $payment_id );
|
615 |
edd_update_payment_status( $payment_id, 'failed' );
|
616 |
edd_insert_payment_note( $payment_id, __( 'Payment failed due to invalid purchase key in PayPal IPN.', 'easy-digital-downloads' ) );
|
@@ -691,7 +636,6 @@ function edd_process_paypal_web_accept_and_cart( $data, $payment_id ) {
|
|
691 |
|
692 |
if( ! empty( $note ) ) {
|
693 |
|
694 |
-
edd_debug_log( 'Payment not marked as completed because: ' . $note );
|
695 |
edd_insert_payment_note( $payment_id, $note );
|
696 |
|
697 |
}
|
@@ -710,19 +654,8 @@ add_action( 'edd_paypal_web_accept', 'edd_process_paypal_web_accept_and_cart', 1
|
|
710 |
*/
|
711 |
function edd_process_paypal_refund( $data, $payment_id = 0 ) {
|
712 |
|
713 |
-
/**
|
714 |
-
* PayPal Process Refund Data
|
715 |
-
*
|
716 |
-
* Allows filtering the Refund data that PayPal passes back in via IPN with PayPal Standard
|
717 |
-
*
|
718 |
-
* @since 2.8.13
|
719 |
-
*
|
720 |
-
* @param array $data The PayPal Refund data
|
721 |
-
* @param int $payment_id The Payment ID associated with this IPN request
|
722 |
-
*/
|
723 |
-
$data = apply_filters( 'edd_process_paypal_refund_data', $data, $payment_id );
|
724 |
-
|
725 |
// Collect payment details
|
|
|
726 |
if( empty( $payment_id ) ) {
|
727 |
return;
|
728 |
}
|
@@ -796,18 +729,18 @@ function edd_get_paypal_redirect( $ssl_check = false, $ipn = false ) {
|
|
796 |
}
|
797 |
|
798 |
/**
|
799 |
-
*
|
800 |
*
|
801 |
-
* @since
|
802 |
* @return string
|
803 |
*/
|
804 |
-
function
|
805 |
-
$
|
806 |
-
return apply_filters( '
|
807 |
}
|
808 |
|
809 |
/**
|
810 |
-
* Shows "Purchase Processing" message for PayPal payments are still pending on site return
|
811 |
*
|
812 |
* This helps address the Race Condition, as detailed in issue #1839
|
813 |
*
|
@@ -829,9 +762,9 @@ function edd_paypal_success_page_content( $content ) {
|
|
829 |
$payment_id = edd_get_purchase_id_by_key( $session['purchase_key'] );
|
830 |
}
|
831 |
|
832 |
-
$payment =
|
833 |
|
834 |
-
if ( $payment
|
835 |
|
836 |
// Payment is still pending so show processing indicator to fix the Race Condition, issue #
|
837 |
ob_start();
|
@@ -847,90 +780,6 @@ function edd_paypal_success_page_content( $content ) {
|
|
847 |
}
|
848 |
add_filter( 'edd_payment_confirm_paypal', 'edd_paypal_success_page_content' );
|
849 |
|
850 |
-
/**
|
851 |
-
* Mark payment as complete on return from PayPal if a PayPal Identity Token is present.
|
852 |
-
*
|
853 |
-
* See https://github.com/easydigitaldownloads/easy-digital-downloads/issues/6197
|
854 |
-
*
|
855 |
-
* @since 2.8.13
|
856 |
-
* @return void
|
857 |
-
*/
|
858 |
-
function edd_paypal_process_pdt_on_return() {
|
859 |
-
|
860 |
-
if ( ! isset( $_GET['payment-id'] ) || ! isset( $_GET['tx'] ) ) {
|
861 |
-
return;
|
862 |
-
}
|
863 |
-
|
864 |
-
$token = edd_get_option( 'paypal_identity_token' );
|
865 |
-
|
866 |
-
if( ! edd_is_success_page() || ! $token || ! edd_is_gateway_active( 'paypal' ) ) {
|
867 |
-
return;
|
868 |
-
}
|
869 |
-
|
870 |
-
$payment_id = isset( $_GET['payment-id'] ) ? absint( $_GET['payment-id'] ) : false;
|
871 |
-
|
872 |
-
if( empty( $payment_id ) ) {
|
873 |
-
return;
|
874 |
-
}
|
875 |
-
|
876 |
-
$payment = new EDD_Payment( $payment_id );
|
877 |
-
|
878 |
-
if( $token && ! empty( $_GET['tx'] ) && $payment->ID > 0 ) {
|
879 |
-
|
880 |
-
// An identity token has been provided in settings so let's immediately verify the purchase
|
881 |
-
|
882 |
-
$remote_post_vars = array(
|
883 |
-
'method' => 'POST',
|
884 |
-
'timeout' => 45,
|
885 |
-
'redirection' => 5,
|
886 |
-
'httpversion' => '1.1',
|
887 |
-
'blocking' => true,
|
888 |
-
'headers' => array(
|
889 |
-
'host' => 'www.paypal.com',
|
890 |
-
'connection' => 'close',
|
891 |
-
'content-type' => 'application/x-www-form-urlencoded',
|
892 |
-
'post' => '/cgi-bin/webscr HTTP/1.1',
|
893 |
-
'user-agent' => 'EDD PDT Verification/' . EDD_VERSION . '; ' . get_bloginfo( 'url' )
|
894 |
-
|
895 |
-
),
|
896 |
-
'sslverify' => false,
|
897 |
-
'body' => array(
|
898 |
-
'tx' => sanitize_text_field( $_GET['tx'] ),
|
899 |
-
'at' => $token,
|
900 |
-
'cmd' => '_notify-synch',
|
901 |
-
)
|
902 |
-
);
|
903 |
-
|
904 |
-
// Sanitize the data for debug logging.
|
905 |
-
$debug_args = $remote_post_vars;
|
906 |
-
$debug_args['body']['at'] = str_pad( substr( $debug_args['body']['at'], -6 ), strlen( $debug_args['body']['at'] ), '*', STR_PAD_LEFT );
|
907 |
-
edd_debug_log( 'Attempting to verify PayPal payment with PDT. Args: ' . print_r( $debug_args, true ) );
|
908 |
-
|
909 |
-
$request = wp_remote_post( edd_get_paypal_redirect( true, true ), $remote_post_vars );
|
910 |
-
|
911 |
-
if ( ! is_wp_error( $request ) ) {
|
912 |
-
|
913 |
-
$body = wp_remote_retrieve_body( $request );
|
914 |
-
|
915 |
-
if( false !== strpos( $body, 'SUCCESS' ) ) {
|
916 |
-
|
917 |
-
// Purchase verified, set to completed
|
918 |
-
$payment->status = 'publish';
|
919 |
-
$payment->transaction_id = sanitize_text_field( $_GET['tx'] );
|
920 |
-
$payment->save();
|
921 |
-
|
922 |
-
}
|
923 |
-
|
924 |
-
} else {
|
925 |
-
|
926 |
-
edd_debug_log( 'Attempt to verify PayPal payment with PDT failed. Request return: ' . print_r( $request, true ) );
|
927 |
-
|
928 |
-
}
|
929 |
-
}
|
930 |
-
|
931 |
-
}
|
932 |
-
add_action( 'template_redirect', 'edd_paypal_process_pdt_on_return' );
|
933 |
-
|
934 |
/**
|
935 |
* Given a Payment ID, extract the transaction ID
|
936 |
*
|
58 |
'type' => 'text',
|
59 |
'size' => 'regular',
|
60 |
),
|
61 |
+
'paypal_page_style' => array(
|
62 |
+
'id' => 'paypal_page_style',
|
63 |
+
'name' => __( 'PayPal Page Style', 'easy-digital-downloads' ),
|
64 |
+
'desc' => __( 'Enter the name of the page style to use, or leave blank for default', 'easy-digital-downloads' ),
|
65 |
+
'type' => 'text',
|
66 |
'size' => 'regular',
|
67 |
),
|
68 |
);
|
69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
$disable_ipn_desc = sprintf(
|
71 |
+
__( 'If payments are not getting marked as complete, then check this box. This forces the site to use a slightly less secure method of verifying purchases. See our <a href="%s" target="_blank">FAQ</a> for further information.', 'easy-digital-downloads' ),
|
72 |
'http://docs.easydigitaldownloads.com/article/190-payments-not-marked-as-complete'
|
73 |
);
|
74 |
|
211 |
'return' => $return_url,
|
212 |
'cancel_return' => edd_get_failed_transaction_uri( '?payment-id=' . $payment ),
|
213 |
'notify_url' => $listener_url,
|
214 |
+
'page_style' => edd_get_paypal_page_style(),
|
215 |
'cbt' => get_bloginfo( 'name' ),
|
216 |
'bn' => 'EasyDigitalDownloads_SP'
|
217 |
);
|
286 |
|
287 |
$paypal_args = apply_filters( 'edd_paypal_redirect_args', $paypal_args, $purchase_data );
|
288 |
|
|
|
|
|
289 |
// Build query
|
290 |
$paypal_redirect .= http_build_query( $paypal_args );
|
291 |
|
309 |
function edd_listen_for_paypal_ipn() {
|
310 |
// Regular PayPal IPN
|
311 |
if ( isset( $_GET['edd-listener'] ) && $_GET['edd-listener'] == 'IPN' ) {
|
|
|
|
|
|
|
312 |
do_action( 'edd_verify_paypal_ipn' );
|
313 |
}
|
314 |
}
|
326 |
return;
|
327 |
}
|
328 |
|
|
|
|
|
329 |
// Set initial post data to empty string
|
330 |
$post_data = '';
|
331 |
|
375 |
|
376 |
}
|
377 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
378 |
if ( ! edd_get_option( 'disable_paypal_verification' ) ) {
|
379 |
|
380 |
// Validate the IPN
|
397 |
'body' => $encoded_data_array
|
398 |
);
|
399 |
|
|
|
|
|
400 |
// Get response
|
401 |
$api_response = wp_remote_post( edd_get_paypal_redirect( true, true ), $remote_post_vars );
|
402 |
|
403 |
if ( is_wp_error( $api_response ) ) {
|
404 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid IPN verification response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $api_response ) ) );
|
|
|
405 |
|
406 |
return; // Something went wrong
|
407 |
}
|
408 |
|
409 |
if ( wp_remote_retrieve_body( $api_response ) !== 'VERIFIED' && edd_get_option( 'disable_paypal_verification', false ) ) {
|
410 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid IPN verification response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $api_response ) ) );
|
|
|
411 |
|
412 |
return; // Response not okay
|
413 |
}
|
414 |
|
|
|
415 |
}
|
416 |
|
417 |
// Check if $post_data_array has been populated
|
457 |
* @return void
|
458 |
*/
|
459 |
function edd_process_paypal_web_accept_and_cart( $data, $payment_id ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
460 |
if ( $data['txn_type'] != 'web_accept' && $data['txn_type'] != 'cart' && $data['payment_status'] != 'Refunded' ) {
|
461 |
return;
|
462 |
}
|
482 |
// Verify payment recipient
|
483 |
if ( strcasecmp( $business_email, trim( edd_get_option( 'paypal_email', false ) ) ) != 0 ) {
|
484 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid business email in IPN response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $data ) ), $payment_id );
|
|
|
485 |
edd_update_payment_status( $payment_id, 'failed' );
|
486 |
edd_insert_payment_note( $payment_id, __( 'Payment failed due to invalid PayPal business email.', 'easy-digital-downloads' ) );
|
487 |
return;
|
491 |
if ( $currency_code != strtolower( $payment->currency ) ) {
|
492 |
|
493 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid currency in IPN response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $data ) ), $payment_id );
|
|
|
494 |
edd_update_payment_status( $payment_id, 'failed' );
|
495 |
edd_insert_payment_note( $payment_id, __( 'Payment failed due to invalid currency in PayPal IPN.', 'easy-digital-downloads' ) );
|
496 |
return;
|
550 |
if ( number_format( (float) $paypal_amount, 2 ) < number_format( (float) $payment_amount, 2 ) ) {
|
551 |
// The prices don't match
|
552 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid payment amount in IPN response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $data ) ), $payment_id );
|
|
|
553 |
edd_update_payment_status( $payment_id, 'failed' );
|
554 |
edd_insert_payment_note( $payment_id, __( 'Payment failed due to invalid amount in PayPal IPN.', 'easy-digital-downloads' ) );
|
555 |
return;
|
556 |
}
|
557 |
if ( $purchase_key != edd_get_payment_key( $payment_id ) ) {
|
558 |
// Purchase keys don't match
|
|
|
559 |
edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid purchase key in IPN response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $data ) ), $payment_id );
|
560 |
edd_update_payment_status( $payment_id, 'failed' );
|
561 |
edd_insert_payment_note( $payment_id, __( 'Payment failed due to invalid purchase key in PayPal IPN.', 'easy-digital-downloads' ) );
|
636 |
|
637 |
if( ! empty( $note ) ) {
|
638 |
|
|
|
639 |
edd_insert_payment_note( $payment_id, $note );
|
640 |
|
641 |
}
|
654 |
*/
|
655 |
function edd_process_paypal_refund( $data, $payment_id = 0 ) {
|
656 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
657 |
// Collect payment details
|
658 |
+
|
659 |
if( empty( $payment_id ) ) {
|
660 |
return;
|
661 |
}
|
729 |
}
|
730 |
|
731 |
/**
|
732 |
+
* Set the Page Style for PayPal Purchase page
|
733 |
*
|
734 |
+
* @since 1.4.1
|
735 |
* @return string
|
736 |
*/
|
737 |
+
function edd_get_paypal_page_style() {
|
738 |
+
$page_style = trim( edd_get_option( 'paypal_page_style', 'PayPal' ) );
|
739 |
+
return apply_filters( 'edd_paypal_page_style', $page_style );
|
740 |
}
|
741 |
|
742 |
/**
|
743 |
+
* Shows "Purchase Processing" message for PayPal payments are still pending on site return
|
744 |
*
|
745 |
* This helps address the Race Condition, as detailed in issue #1839
|
746 |
*
|
762 |
$payment_id = edd_get_purchase_id_by_key( $session['purchase_key'] );
|
763 |
}
|
764 |
|
765 |
+
$payment = get_post( $payment_id );
|
766 |
|
767 |
+
if ( $payment && 'pending' == $payment->post_status ) {
|
768 |
|
769 |
// Payment is still pending so show processing indicator to fix the Race Condition, issue #
|
770 |
ob_start();
|
780 |
}
|
781 |
add_filter( 'edd_payment_confirm_paypal', 'edd_paypal_success_page_content' );
|
782 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
783 |
/**
|
784 |
* Given a Payment ID, extract the transaction ID
|
785 |
*
|
includes/libraries/array2xml.php
CHANGED
@@ -27,10 +27,6 @@ class Array2XML {
|
|
27 |
* @return DomDocument
|
28 |
*/
|
29 |
public static function &createXML($node_name, $arr=array()) {
|
30 |
-
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
|
31 |
-
_edd_deprecated_function( 'array2xml::createXML', '2.8.11', 'ArrayToXML::buildXML' );
|
32 |
-
}
|
33 |
-
|
34 |
$xml = self::getXMLRoot();
|
35 |
$xml->appendChild(self::convert($node_name, $arr));
|
36 |
|
27 |
* @return DomDocument
|
28 |
*/
|
29 |
public static function &createXML($node_name, $arr=array()) {
|
|
|
|
|
|
|
|
|
30 |
$xml = self::getXMLRoot();
|
31 |
$xml->appendChild(self::convert($node_name, $arr));
|
32 |
|
includes/libraries/class-ArrayToXML.php
DELETED
@@ -1,134 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Based on: http://stackoverflow.com/questions/99350/passing-php-associative-arrays-to-and-from-xml
|
5 |
-
*/
|
6 |
-
class ArrayToXML
|
7 |
-
{
|
8 |
-
private $version;
|
9 |
-
private $encoding;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Construct ArrayToXML object with selected version and encoding
|
13 |
-
*
|
14 |
-
* for available values check XmlWriter docs http://www.php.net/manual/en/function.xmlwriter-start-document.php
|
15 |
-
* @param string $xmlVersion XML Version, default 1.0
|
16 |
-
* @param string $xmlEncoding XML Encoding, default UTF-8
|
17 |
-
*/
|
18 |
-
public function __construct($xmlVersion = '1.0', $xmlEncoding = 'UTF-8')
|
19 |
-
{
|
20 |
-
$this->version = $xmlVersion;
|
21 |
-
$this->encoding = $xmlEncoding;
|
22 |
-
}
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Build an XML Data Set
|
26 |
-
*
|
27 |
-
* @param array $data Associative Array containing values to be parsed into an XML Data Set(s)
|
28 |
-
* @param string $startElement Root Opening Tag, default data
|
29 |
-
* @return string XML String containing values
|
30 |
-
* @return mixed Boolean false on failure, string XML result on success
|
31 |
-
*/
|
32 |
-
public function buildXML($data, $startElement = 'data')
|
33 |
-
{
|
34 |
-
if (!is_array($data)) {
|
35 |
-
$err = 'Invalid variable type supplied, expected array not found on line ' . __LINE__ . ' in Class: ' . __CLASS__ . ' Method: ' . __METHOD__;
|
36 |
-
trigger_error($err);
|
37 |
-
return false; //return false error occurred
|
38 |
-
}
|
39 |
-
$xml = new XmlWriter();
|
40 |
-
$xml->openMemory();
|
41 |
-
$xml->startDocument($this->version, $this->encoding);
|
42 |
-
$xml->startElement($startElement);
|
43 |
-
|
44 |
-
$data = $this->writeAttr($xml, $data);
|
45 |
-
$this->writeEl($xml, $data);
|
46 |
-
|
47 |
-
$xml->endElement(); //write end element
|
48 |
-
//returns the XML results
|
49 |
-
return $xml->outputMemory(true);
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Write keys in $data prefixed with @ as XML attributes, if $data is an array.
|
54 |
-
* When an @ prefixed key is found, a '%' key is expected to indicate the element itself,
|
55 |
-
* and '#' prefixed key indicates CDATA content
|
56 |
-
*
|
57 |
-
* @param XMLWriter $xml object
|
58 |
-
* @param array $data with attributes filtered out
|
59 |
-
* @return array $data | $nonAttributes
|
60 |
-
*/
|
61 |
-
protected function writeAttr(XMLWriter $xml, $data)
|
62 |
-
{
|
63 |
-
if (is_array($data)) {
|
64 |
-
$nonAttributes = array();
|
65 |
-
foreach ($data as $key => $val) {
|
66 |
-
//handle an attribute with elements
|
67 |
-
if ($key[0] == '@') {
|
68 |
-
$xml->writeAttribute(substr($key, 1), $val);
|
69 |
-
} else if ($key[0] == '%') {
|
70 |
-
if (is_array($val)) $nonAttributes = $val;
|
71 |
-
else $xml->text($val);
|
72 |
-
} elseif ($key[0] == '#') {
|
73 |
-
if (is_array($val)) $nonAttributes = $val;
|
74 |
-
else {
|
75 |
-
$xml->startElement(substr($key, 1));
|
76 |
-
$xml->writeCData($val);
|
77 |
-
$xml->endElement();
|
78 |
-
}
|
79 |
-
}else if($key[0] == "!"){
|
80 |
-
if (is_array($val)) $nonAttributes = $val;
|
81 |
-
else $xml->writeCData($val);
|
82 |
-
}
|
83 |
-
//ignore normal elements
|
84 |
-
else $nonAttributes[$key] = $val;
|
85 |
-
}
|
86 |
-
return $nonAttributes;
|
87 |
-
} else return $data;
|
88 |
-
}
|
89 |
-
|
90 |
-
/**
|
91 |
-
* Write XML as per Associative Array
|
92 |
-
*
|
93 |
-
* @param XMLWriter $xml object
|
94 |
-
* @param array $data Associative Data Array
|
95 |
-
*/
|
96 |
-
protected function writeEl(XMLWriter $xml, $data)
|
97 |
-
{
|
98 |
-
foreach ($data as $key => $value) {
|
99 |
-
if (is_array($value) && !$this->isAssoc($value)) { //numeric array
|
100 |
-
foreach ($value as $itemValue) {
|
101 |
-
if (is_array($itemValue)) {
|
102 |
-
$xml->startElement($key);
|
103 |
-
$itemValue = $this->writeAttr($xml, $itemValue);
|
104 |
-
$this->writeEl($xml, $itemValue);
|
105 |
-
$xml->endElement();
|
106 |
-
} else {
|
107 |
-
$itemValue = $this->writeAttr($xml, $itemValue);
|
108 |
-
$xml->writeElement($key, "$itemValue");
|
109 |
-
}
|
110 |
-
}
|
111 |
-
} else if (is_array($value)) { //associative array
|
112 |
-
$xml->startElement($key);
|
113 |
-
$value = $this->writeAttr($xml, $value);
|
114 |
-
$this->writeEl($xml, $value);
|
115 |
-
$xml->endElement();
|
116 |
-
} else { //scalar
|
117 |
-
$value = $this->writeAttr($xml, $value);
|
118 |
-
$xml->writeElement($key, "$value");
|
119 |
-
}
|
120 |
-
}
|
121 |
-
}
|
122 |
-
|
123 |
-
/**
|
124 |
-
* Check if array is associative with string based keys
|
125 |
-
* FROM: http://stackoverflow.com/questions/173400/php-arrays-a-good-way-to-check-if-an-array-is-associative-or-sequential/4254008#4254008
|
126 |
-
*
|
127 |
-
* @param array $array Array to check
|
128 |
-
* @return bool
|
129 |
-
*/
|
130 |
-
protected function isAssoc($array)
|
131 |
-
{
|
132 |
-
return (bool)count(array_filter(array_keys($array), 'is_string'));
|
133 |
-
}
|
134 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/login-register.php
CHANGED
@@ -55,7 +55,9 @@ function edd_register_form( $redirect = '' ) {
|
|
55 |
|
56 |
ob_start();
|
57 |
|
58 |
-
|
|
|
|
|
59 |
|
60 |
return apply_filters( 'edd_register_form', ob_get_clean() );
|
61 |
}
|
@@ -79,13 +81,13 @@ function edd_process_login_form( $data ) {
|
|
79 |
|
80 |
if ( wp_check_password( $data['edd_user_pass'], $user_data->user_pass, $user_data->ID ) ) {
|
81 |
|
82 |
-
if ( isset( $data['
|
83 |
-
$data['
|
84 |
} else {
|
85 |
-
$data['
|
86 |
}
|
87 |
|
88 |
-
edd_log_user_in( $user_data->ID, $data['edd_user_login'], $data['edd_user_pass'], $data['
|
89 |
} else {
|
90 |
edd_set_error( 'password_incorrect', __( 'The password you entered is incorrect', 'easy-digital-downloads' ) );
|
91 |
}
|
55 |
|
56 |
ob_start();
|
57 |
|
58 |
+
if( ! is_user_logged_in() ) {
|
59 |
+
edd_get_template_part( 'shortcode', 'register' );
|
60 |
+
}
|
61 |
|
62 |
return apply_filters( 'edd_register_form', ob_get_clean() );
|
63 |
}
|
81 |
|
82 |
if ( wp_check_password( $data['edd_user_pass'], $user_data->user_pass, $user_data->ID ) ) {
|
83 |
|
84 |
+
if ( isset( $data['remember'] ) ) {
|
85 |
+
$data['remember'] = true;
|
86 |
} else {
|
87 |
+
$data['remember'] = false;
|
88 |
}
|
89 |
|
90 |
+
edd_log_user_in( $user_data->ID, $data['edd_user_login'], $data['edd_user_pass'], $data['remember'] );
|
91 |
} else {
|
92 |
edd_set_error( 'password_incorrect', __( 'The password you entered is incorrect', 'easy-digital-downloads' ) );
|
93 |
}
|
includes/misc-functions.php
CHANGED
@@ -23,20 +23,6 @@ function edd_is_test_mode() {
|
|
23 |
return (bool) apply_filters( 'edd_is_test_mode', $ret );
|
24 |
}
|
25 |
|
26 |
-
/**
|
27 |
-
* Is Debug Mode
|
28 |
-
*
|
29 |
-
* @since 2.8.7
|
30 |
-
* @return bool $ret True if debug mode is enabled, false otherwise
|
31 |
-
*/
|
32 |
-
function edd_is_debug_mode() {
|
33 |
-
$ret = edd_get_option( 'debug_mode', false );
|
34 |
-
if( defined( 'EDD_DEBUG_MODE' ) && EDD_DEBUG_MODE ) {
|
35 |
-
$ret = true;
|
36 |
-
}
|
37 |
-
return (bool) apply_filters( 'edd_is_debug_mode', $ret );
|
38 |
-
}
|
39 |
-
|
40 |
/**
|
41 |
* Checks if Guest checkout is enabled
|
42 |
*
|
@@ -183,9 +169,7 @@ function edd_get_ip() {
|
|
183 |
$ip = $_SERVER['HTTP_CLIENT_IP'];
|
184 |
} elseif ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
|
185 |
//to check ip is pass from proxy
|
186 |
-
|
187 |
-
$ip = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
|
188 |
-
$ip = trim($ip[0]);
|
189 |
} elseif( ! empty( $_SERVER['REMOTE_ADDR'] ) ) {
|
190 |
$ip = $_SERVER['REMOTE_ADDR'];
|
191 |
}
|
@@ -343,8 +327,7 @@ function edd_get_currencies() {
|
|
343 |
'INR' => __( 'Indian Rupee (₹)', 'easy-digital-downloads' ),
|
344 |
'TRY' => __( 'Turkish Lira (₺)', 'easy-digital-downloads' ),
|
345 |
'RIAL' => __( 'Iranian Rial (﷼)', 'easy-digital-downloads' ),
|
346 |
-
'RUB' => __( 'Russian Rubles', 'easy-digital-downloads' )
|
347 |
-
'AOA' => __( 'Angolan Kwanza', 'easy-digital-downloads' ),
|
348 |
);
|
349 |
|
350 |
return apply_filters( 'edd_currencies', $currencies );
|
@@ -396,9 +379,6 @@ function edd_currency_symbol( $currency = '' ) {
|
|
396 |
case "JPY" :
|
397 |
$symbol = '¥';
|
398 |
break;
|
399 |
-
case "AOA" :
|
400 |
-
$symbol = 'Kz';
|
401 |
-
break;
|
402 |
default :
|
403 |
$symbol = $currency;
|
404 |
break;
|
@@ -610,7 +590,7 @@ function edd_is_func_disabled( $function ) {
|
|
610 |
* @author Chris Christoff
|
611 |
*
|
612 |
* @param unknown $v
|
613 |
-
* @return int
|
614 |
*/
|
615 |
function edd_let_to_num( $v ) {
|
616 |
$l = substr( $v, -1 );
|
@@ -628,7 +608,7 @@ function edd_let_to_num( $v ) {
|
|
628 |
break;
|
629 |
}
|
630 |
|
631 |
-
return
|
632 |
}
|
633 |
|
634 |
/**
|
@@ -676,11 +656,19 @@ function edd_get_upload_dir() {
|
|
676 |
/**
|
677 |
* Delete symbolic links after they have been used
|
678 |
*
|
|
|
|
|
679 |
* @access public
|
680 |
* @since 1.5
|
681 |
* @return void
|
682 |
*/
|
683 |
function edd_cleanup_file_symlinks() {
|
|
|
|
|
|
|
|
|
|
|
|
|
684 |
$path = edd_get_symlink_dir();
|
685 |
$dir = opendir( $path );
|
686 |
|
@@ -899,7 +887,7 @@ if ( ! function_exists( 'getallheaders' ) ) :
|
|
899 |
* @return array
|
900 |
*/
|
901 |
function getallheaders() {
|
902 |
-
$headers =
|
903 |
foreach ( $_SERVER as $name => $value ) {
|
904 |
if ( substr( $name, 0, 5 ) == 'HTTP_' ) {
|
905 |
$headers[ str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value;
|
@@ -950,3 +938,28 @@ function edd_can_view_receipt( $payment_key = '' ) {
|
|
950 |
|
951 |
return (bool) apply_filters( 'edd_can_view_receipt', $return, $payment_key );
|
952 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
return (bool) apply_filters( 'edd_is_test_mode', $ret );
|
24 |
}
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
/**
|
27 |
* Checks if Guest checkout is enabled
|
28 |
*
|
169 |
$ip = $_SERVER['HTTP_CLIENT_IP'];
|
170 |
} elseif ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
|
171 |
//to check ip is pass from proxy
|
172 |
+
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
|
|
|
|
173 |
} elseif( ! empty( $_SERVER['REMOTE_ADDR'] ) ) {
|
174 |
$ip = $_SERVER['REMOTE_ADDR'];
|
175 |
}
|
327 |
'INR' => __( 'Indian Rupee (₹)', 'easy-digital-downloads' ),
|
328 |
'TRY' => __( 'Turkish Lira (₺)', 'easy-digital-downloads' ),
|
329 |
'RIAL' => __( 'Iranian Rial (﷼)', 'easy-digital-downloads' ),
|
330 |
+
'RUB' => __( 'Russian Rubles', 'easy-digital-downloads' )
|
|
|
331 |
);
|
332 |
|
333 |
return apply_filters( 'edd_currencies', $currencies );
|
379 |
case "JPY" :
|
380 |
$symbol = '¥';
|
381 |
break;
|
|
|
|
|
|
|
382 |
default :
|
383 |
$symbol = $currency;
|
384 |
break;
|
590 |
* @author Chris Christoff
|
591 |
*
|
592 |
* @param unknown $v
|
593 |
+
* @return int|string
|
594 |
*/
|
595 |
function edd_let_to_num( $v ) {
|
596 |
$l = substr( $v, -1 );
|
608 |
break;
|
609 |
}
|
610 |
|
611 |
+
return $ret;
|
612 |
}
|
613 |
|
614 |
/**
|
656 |
/**
|
657 |
* Delete symbolic links after they have been used
|
658 |
*
|
659 |
+
* This function is only intended to be used by WordPress cron.
|
660 |
+
*
|
661 |
* @access public
|
662 |
* @since 1.5
|
663 |
* @return void
|
664 |
*/
|
665 |
function edd_cleanup_file_symlinks() {
|
666 |
+
|
667 |
+
// Bail if not in WordPress cron
|
668 |
+
if ( ! edd_doing_cron() ) {
|
669 |
+
return;
|
670 |
+
}
|
671 |
+
|
672 |
$path = edd_get_symlink_dir();
|
673 |
$dir = opendir( $path );
|
674 |
|
887 |
* @return array
|
888 |
*/
|
889 |
function getallheaders() {
|
890 |
+
$headers = '';
|
891 |
foreach ( $_SERVER as $name => $value ) {
|
892 |
if ( substr( $name, 0, 5 ) == 'HTTP_' ) {
|
893 |
$headers[ str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value;
|
938 |
|
939 |
return (bool) apply_filters( 'edd_can_view_receipt', $return, $payment_key );
|
940 |
}
|
941 |
+
|
942 |
+
/**
|
943 |
+
* Abstraction for WordPress cron checking, to avoid code duplication.
|
944 |
+
*
|
945 |
+
* In future versions of EDD, this function will be changed to only refer to
|
946 |
+
* EDD specific cron related jobs. You probably won't want to use it until then.
|
947 |
+
*
|
948 |
+
* @since 2.8.16
|
949 |
+
*
|
950 |
+
* @return boolean
|
951 |
+
*/
|
952 |
+
function edd_doing_cron() {
|
953 |
+
|
954 |
+
// Bail if not doing WordPress cron (>4.8.0)
|
955 |
+
if ( function_exists( 'wp_doing_cron' ) && wp_doing_cron() ) {
|
956 |
+
return true;
|
957 |
+
|
958 |
+
// Bail if not doing WordPress cron (<4.8.0)
|
959 |
+
} elseif ( defined( 'DOING_CRON' ) && ( true === DOING_CRON ) ) {
|
960 |
+
return true;
|
961 |
+
}
|
962 |
+
|
963 |
+
// Default to false
|
964 |
+
return false;
|
965 |
+
}
|
includes/payments/actions.php
CHANGED
@@ -121,33 +121,7 @@ function edd_complete_purchase( $payment_id, $new_status, $old_status ) {
|
|
121 |
$payment->completed_date = current_time( 'mysql' );
|
122 |
$payment->save();
|
123 |
|
124 |
-
|
125 |
-
* Runs **when** a purchase is marked as "complete".
|
126 |
-
*
|
127 |
-
* @since 2.8 - Added EDD_Payment and EDD_Customer object to action.
|
128 |
-
*
|
129 |
-
* @param int $payment_id Payment ID.
|
130 |
-
* @param EDD_Payment $payment EDD_Payment object containing all payment data.
|
131 |
-
* @param EDD_Customer $customer EDD_Customer object containing all customer data.
|
132 |
-
*/
|
133 |
-
do_action( 'edd_complete_purchase', $payment_id, $payment, $customer );
|
134 |
-
|
135 |
-
// If cron doesn't work on a site, allow the filter to use __return_false and run the events immediately.
|
136 |
-
$use_cron = apply_filters( 'edd_use_after_payment_actions', true, $payment_id );
|
137 |
-
if ( false === $use_cron ) {
|
138 |
-
/**
|
139 |
-
* Runs **after** a purchase is marked as "complete".
|
140 |
-
*
|
141 |
-
* @see edd_process_after_payment_actions()
|
142 |
-
*
|
143 |
-
* @since 2.8 - Added EDD_Payment and EDD_Customer object to action.
|
144 |
-
*
|
145 |
-
* @param int $payment_id Payment ID.
|
146 |
-
* @param EDD_Payment $payment EDD_Payment object containing all payment data.
|
147 |
-
* @param EDD_Customer $customer EDD_Customer object containing all customer data.
|
148 |
-
*/
|
149 |
-
do_action( 'edd_after_payment_actions', $payment_id, $payment, $customer );
|
150 |
-
}
|
151 |
|
152 |
}
|
153 |
|
@@ -156,49 +130,6 @@ function edd_complete_purchase( $payment_id, $new_status, $old_status ) {
|
|
156 |
}
|
157 |
add_action( 'edd_update_payment_status', 'edd_complete_purchase', 100, 3 );
|
158 |
|
159 |
-
/**
|
160 |
-
* Schedules the one time event via WP_Cron to fire after purchase actions.
|
161 |
-
*
|
162 |
-
* Is run on the edd_complete_purchase action.
|
163 |
-
*
|
164 |
-
* @since 2.8
|
165 |
-
* @param $payment_id
|
166 |
-
*/
|
167 |
-
function edd_schedule_after_payment_action( $payment_id ) {
|
168 |
-
$use_cron = apply_filters( 'edd_use_after_payment_actions', true, $payment_id );
|
169 |
-
if ( $use_cron ) {
|
170 |
-
$after_payment_delay = apply_filters( 'edd_after_payment_actions_delay', 30, $payment_id );
|
171 |
-
|
172 |
-
// Use time() instead of current_time( 'timestamp' ) to avoid scheduling the event in the past when server time
|
173 |
-
// and WordPress timezone are different.
|
174 |
-
wp_schedule_single_event( time() + $after_payment_delay, 'edd_after_payment_scheduled_actions', array( $payment_id, false ) );
|
175 |
-
}
|
176 |
-
}
|
177 |
-
add_action( 'edd_complete_purchase', 'edd_schedule_after_payment_action', 10, 1 );
|
178 |
-
|
179 |
-
/**
|
180 |
-
* Executes the one time event used for after purchase actions.
|
181 |
-
*
|
182 |
-
* @since 2.8
|
183 |
-
* @param $payment_id
|
184 |
-
* @param $force
|
185 |
-
*/
|
186 |
-
function edd_process_after_payment_actions( $payment_id = 0, $force = false ) {
|
187 |
-
if ( empty( $payment_id ) ) {
|
188 |
-
return;
|
189 |
-
}
|
190 |
-
|
191 |
-
$payment = new EDD_Payment( $payment_id );
|
192 |
-
$has_fired = $payment->get_meta( '_edd_complete_actions_run' );
|
193 |
-
if ( ! empty( $has_fired ) && false === $force ) {
|
194 |
-
return;
|
195 |
-
}
|
196 |
-
|
197 |
-
$payment->add_note( __( 'After payment actions processed.', 'easy-digital-downloads' ) );
|
198 |
-
$payment->update_meta( '_edd_complete_actions_run', time() ); // This is in GMT
|
199 |
-
do_action( 'edd_after_payment_actions', $payment_id );
|
200 |
-
}
|
201 |
-
add_action( 'edd_after_payment_scheduled_actions', 'edd_process_after_payment_actions', 10, 1 );
|
202 |
|
203 |
/**
|
204 |
* Record payment status change
|
@@ -284,10 +215,18 @@ add_action( 'edd_upgrade_payments', 'edd_update_old_payments_with_totals' );
|
|
284 |
/**
|
285 |
* Updates week-old+ 'pending' orders to 'abandoned'
|
286 |
*
|
|
|
|
|
287 |
* @since 1.6
|
288 |
* @return void
|
289 |
*/
|
290 |
function edd_mark_abandoned_orders() {
|
|
|
|
|
|
|
|
|
|
|
|
|
291 |
$args = array(
|
292 |
'status' => 'pending',
|
293 |
'number' => -1,
|
@@ -438,7 +377,16 @@ function edd_recover_payment() {
|
|
438 |
return;
|
439 |
}
|
440 |
|
441 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
442 |
$redirect = get_permalink( edd_get_option( 'purchase_history_page' ) );
|
443 |
edd_set_error( 'edd-payment-recovery-user-mismatch', __( 'Error resuming payment.', 'easy-digital-downloads' ) );
|
444 |
wp_redirect( $redirect );
|
@@ -517,9 +465,8 @@ add_action( 'template_redirect', 'edd_recovery_user_mismatch' );
|
|
517 |
function edd_recovery_force_login_fields() {
|
518 |
$resuming_payment = EDD()->session->get( 'edd_resume_payment' );
|
519 |
if ( $resuming_payment ) {
|
520 |
-
$payment
|
521 |
-
$
|
522 |
-
if ( ( $requires_login && ! is_user_logged_in() ) && ( $payment->user_id > 0 && ( ! is_user_logged_in() ) ) ) {
|
523 |
?>
|
524 |
<div class="edd-alert edd-alert-info">
|
525 |
<p><?php _e( 'To complete this payment, please login to your account.', 'easy-digital-downloads' ); ?></p>
|
@@ -551,11 +498,8 @@ add_action( 'edd_purchase_form_before_register_login', 'edd_recovery_force_login
|
|
551 |
function edd_recovery_verify_logged_in( $verified_data, $post_data ) {
|
552 |
$resuming_payment = EDD()->session->get( 'edd_resume_payment' );
|
553 |
if ( $resuming_payment ) {
|
554 |
-
$payment
|
555 |
-
|
556 |
-
$same_email = strtolower( $payment->email ) === strtolower( $post_data['edd_email'] );
|
557 |
-
|
558 |
-
if ( ( is_user_logged_in() && ! $same_user ) || ( ! is_user_logged_in() && (int) $payment->user_id > 0 && ! $same_email ) ) {
|
559 |
edd_set_error( 'recovery_requires_login', __( 'To complete this payment, please login to your account.', 'easy-digital-downloads' ) );
|
560 |
}
|
561 |
}
|
121 |
$payment->completed_date = current_time( 'mysql' );
|
122 |
$payment->save();
|
123 |
|
124 |
+
do_action( 'edd_complete_purchase', $payment_id );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
|
126 |
}
|
127 |
|
130 |
}
|
131 |
add_action( 'edd_update_payment_status', 'edd_complete_purchase', 100, 3 );
|
132 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
|
134 |
/**
|
135 |
* Record payment status change
|
215 |
/**
|
216 |
* Updates week-old+ 'pending' orders to 'abandoned'
|
217 |
*
|
218 |
+
* This function is only intended to be used by WordPress cron.
|
219 |
+
*
|
220 |
* @since 1.6
|
221 |
* @return void
|
222 |
*/
|
223 |
function edd_mark_abandoned_orders() {
|
224 |
+
|
225 |
+
// Bail if not in WordPress cron
|
226 |
+
if ( ! edd_doing_cron() ) {
|
227 |
+
return;
|
228 |
+
}
|
229 |
+
|
230 |
$args = array(
|
231 |
'status' => 'pending',
|
232 |
'number' => -1,
|
377 |
return;
|
378 |
}
|
379 |
|
380 |
+
if (
|
381 |
+
// Logged in, but wrong user ID
|
382 |
+
( is_user_logged_in() && $payment->user_id != get_current_user_id() )
|
383 |
+
|
384 |
+
// ...OR...
|
385 |
+
||
|
386 |
+
|
387 |
+
// Logged out, but payment is for a user
|
388 |
+
( ! is_user_logged_in() && ! empty( $payment->user_id ) )
|
389 |
+
) {
|
390 |
$redirect = get_permalink( edd_get_option( 'purchase_history_page' ) );
|
391 |
edd_set_error( 'edd-payment-recovery-user-mismatch', __( 'Error resuming payment.', 'easy-digital-downloads' ) );
|
392 |
wp_redirect( $redirect );
|
465 |
function edd_recovery_force_login_fields() {
|
466 |
$resuming_payment = EDD()->session->get( 'edd_resume_payment' );
|
467 |
if ( $resuming_payment ) {
|
468 |
+
$payment = new EDD_Payment( $resuming_payment );
|
469 |
+
if ( $payment->user_id > 0 && ( ! is_user_logged_in() ) ) {
|
|
|
470 |
?>
|
471 |
<div class="edd-alert edd-alert-info">
|
472 |
<p><?php _e( 'To complete this payment, please login to your account.', 'easy-digital-downloads' ); ?></p>
|
498 |
function edd_recovery_verify_logged_in( $verified_data, $post_data ) {
|
499 |
$resuming_payment = EDD()->session->get( 'edd_resume_payment' );
|
500 |
if ( $resuming_payment ) {
|
501 |
+
$payment = new EDD_Payment( $resuming_payment );
|
502 |
+
if ( ! empty( $payment->user_id ) && ( ! is_user_logged_in() || $payment->user_id != get_current_user_id() ) ) {
|
|
|
|
|
|
|
503 |
edd_set_error( 'recovery_requires_login', __( 'To complete this payment, please login to your account.', 'easy-digital-downloads' ) );
|
504 |
}
|
505 |
}
|
includes/payments/class-edd-payment.php
CHANGED
@@ -97,14 +97,6 @@ class EDD_Payment {
|
|
97 |
*/
|
98 |
protected $tax = 0;
|
99 |
|
100 |
-
/**
|
101 |
-
* The amount the payment has been discounted through discount codes
|
102 |
-
*
|
103 |
-
* @since 2.8.7
|
104 |
-
* @var int
|
105 |
-
*/
|
106 |
-
protected $discounted_amount = 0;
|
107 |
-
|
108 |
/**
|
109 |
* The tax rate charged on this payment
|
110 |
*
|
@@ -565,19 +557,40 @@ class EDD_Payment {
|
|
565 |
$this->ID = $payment_id;
|
566 |
$this->_ID = $payment_id;
|
567 |
|
568 |
-
$customer =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
569 |
|
570 |
$this->customer_id = $customer->id;
|
571 |
$this->pending['customer_id'] = $this->customer_id;
|
572 |
$customer->attach_payment( $this->ID, false );
|
573 |
|
574 |
-
/**
|
575 |
-
* This run of the edd_payment_meta filter is for backwards compatibility purposes. The filter will also run in the EDD_Payment::save
|
576 |
-
* method. By keeping this here, it retains compatbility of adding payment meta prior to the payment being inserted, as was previously supported
|
577 |
-
* by edd_insert_payment().
|
578 |
-
*
|
579 |
-
* @reference: https://github.com/easydigitaldownloads/easy-digital-downloads/issues/5838
|
580 |
-
*/
|
581 |
$this->payment_meta = apply_filters( 'edd_payment_meta', $this->payment_meta, $payment_data );
|
582 |
if ( ! empty( $this->payment_meta['fees'] ) ) {
|
583 |
$this->fees = array_merge( $this->payment_meta['fees'], $this->fees );
|
@@ -628,14 +641,6 @@ class EDD_Payment {
|
|
628 |
$this->ID = $this->_ID;
|
629 |
}
|
630 |
|
631 |
-
$customer = $this->maybe_create_customer();
|
632 |
-
if ( $this->customer_id != $customer->id ) {
|
633 |
-
|
634 |
-
$this->customer_id = $customer->id;
|
635 |
-
$this->pending['customer_id'] = $this->customer_id;
|
636 |
-
|
637 |
-
}
|
638 |
-
|
639 |
// If we have something pending, let's save it
|
640 |
if ( ! empty( $this->pending ) ) {
|
641 |
|
@@ -878,13 +883,10 @@ class EDD_Payment {
|
|
878 |
|
879 |
case 'customer_id':
|
880 |
$this->update_meta( '_edd_payment_customer_id', $this->customer_id );
|
881 |
-
$customer = new EDD_Customer( $this->customer_id );
|
882 |
-
$customer->attach_payment( $this->ID, false );
|
883 |
break;
|
884 |
|
885 |
case 'user_id':
|
886 |
$this->update_meta( '_edd_payment_user_id', $this->user_id );
|
887 |
-
$this->user_info['id'] = $this->user_id;
|
888 |
break;
|
889 |
|
890 |
case 'first_name':
|
@@ -1205,12 +1207,8 @@ class EDD_Payment {
|
|
1205 |
|
1206 |
$download = new EDD_Download( $download_id );
|
1207 |
|
1208 |
-
|
1209 |
-
|
1210 |
-
*
|
1211 |
-
* We need to allow this to process though for a missing post ID, in case it's a download that was deleted.
|
1212 |
-
*/
|
1213 |
-
if( ! empty( $download->ID ) && $download->post_type !== 'download' ) {
|
1214 |
return false;
|
1215 |
}
|
1216 |
|
@@ -1407,15 +1405,14 @@ class EDD_Payment {
|
|
1407 |
return false;
|
1408 |
}
|
1409 |
|
1410 |
-
|
1411 |
-
$merged_item['
|
|
|
1412 |
|
1413 |
-
$
|
1414 |
-
$
|
1415 |
-
$
|
1416 |
-
$modified_download
|
1417 |
-
$modified_download['action'] = 'modify';
|
1418 |
-
$modified_download['previous_data'] = $current_args;
|
1419 |
|
1420 |
$this->pending['downloads'][] = $modified_download;
|
1421 |
|
@@ -1810,13 +1807,6 @@ class EDD_Payment {
|
|
1810 |
|
1811 |
$meta = apply_filters( 'edd_get_payment_meta_' . $meta_key, $meta, $this->ID );
|
1812 |
|
1813 |
-
if ( is_serialized( $meta ) ) {
|
1814 |
-
preg_match( '/[oO]\s*:\s*\d+\s*:\s*"\s*(?!(?i)(stdClass))/', $meta, $matches );
|
1815 |
-
if ( ! empty( $matches ) ) {
|
1816 |
-
$meta = array();
|
1817 |
-
}
|
1818 |
-
}
|
1819 |
-
|
1820 |
return apply_filters( 'edd_get_payment_meta', $meta, $this->ID, $meta_key );
|
1821 |
}
|
1822 |
|
@@ -1870,41 +1860,6 @@ class EDD_Payment {
|
|
1870 |
return update_post_meta( $this->ID, $meta_key, $meta_value, $prev_value );
|
1871 |
}
|
1872 |
|
1873 |
-
/**
|
1874 |
-
* Add an item to the payment meta
|
1875 |
-
*
|
1876 |
-
* @since 2.8
|
1877 |
-
* @param string $meta_key
|
1878 |
-
* @param string $meta_value
|
1879 |
-
* @param bool $unique
|
1880 |
-
*
|
1881 |
-
* @return bool|false|int
|
1882 |
-
*/
|
1883 |
-
public function add_meta( $meta_key = '', $meta_value = '', $unique = false ) {
|
1884 |
-
if ( empty( $meta_key ) ) {
|
1885 |
-
return false;
|
1886 |
-
}
|
1887 |
-
|
1888 |
-
return add_post_meta( $this->ID, $meta_key, $meta_value, $unique );
|
1889 |
-
}
|
1890 |
-
|
1891 |
-
/**
|
1892 |
-
* Delete an item from payment meta
|
1893 |
-
*
|
1894 |
-
* @since 2.8
|
1895 |
-
* @param string $meta_key
|
1896 |
-
* @param string $meta_value
|
1897 |
-
*
|
1898 |
-
* @return bool
|
1899 |
-
*/
|
1900 |
-
public function delete_meta( $meta_key = '', $meta_value = '' ) {
|
1901 |
-
if ( empty( $meta_key ) ) {
|
1902 |
-
return false;
|
1903 |
-
}
|
1904 |
-
|
1905 |
-
return delete_post_meta( $this->ID, $meta_key, $meta_value );
|
1906 |
-
}
|
1907 |
-
|
1908 |
/**
|
1909 |
* Determines if this payment is able to be resumed by the user.
|
1910 |
*
|
@@ -2326,7 +2281,7 @@ class EDD_Payment {
|
|
2326 |
$user_id = $this->get_meta( '_edd_payment_user_id', true );
|
2327 |
$customer = new EDD_Customer( $this->customer_id );
|
2328 |
|
2329 |
-
// Make sure it exists, and that it matches that of the
|
2330 |
if( empty( $user_id ) || ( ! empty( $customer->user_id ) && (int) $user_id !== (int) $customer->user_id ) ) {
|
2331 |
|
2332 |
$user_id = $customer->user_id;
|
@@ -2368,17 +2323,8 @@ class EDD_Payment {
|
|
2368 |
'discount' => $this->discounts,
|
2369 |
);
|
2370 |
|
2371 |
-
$user_info = isset( $this->payment_meta['user_info'] ) ? $this->payment_meta['user_info'] : array();
|
2372 |
-
|
2373 |
-
if ( is_serialized( $user_info ) ) {
|
2374 |
-
preg_match( '/[oO]\s*:\s*\d+\s*:\s*"\s*(?!(?i)(stdClass))/', $user_info, $matches );
|
2375 |
-
if ( ! empty( $matches ) ) {
|
2376 |
-
$user_info = array();
|
2377 |
-
}
|
2378 |
-
}
|
2379 |
-
|
2380 |
-
// As per Github issue #4248, we need to run maybe_unserialize here still.
|
2381 |
-
$user_info = wp_parse_args( maybe_unserialize( $user_info ), $defaults );
|
2382 |
|
2383 |
// Ensure email index is in the old user info array
|
2384 |
if( empty( $user_info['email'] ) ) {
|
@@ -2574,20 +2520,6 @@ class EDD_Payment {
|
|
2574 |
return apply_filters( 'edd_payment_discounts', $this->discounts, $this->ID, $this );
|
2575 |
}
|
2576 |
|
2577 |
-
/**
|
2578 |
-
* Return the discounted amount of the payment.
|
2579 |
-
*
|
2580 |
-
* @since 2.8.7
|
2581 |
-
* @return float
|
2582 |
-
*/
|
2583 |
-
private function get_discounted_amount() {
|
2584 |
-
$total = $this->total;
|
2585 |
-
$fees = $this->fees_total;
|
2586 |
-
$tax = $this->tax;
|
2587 |
-
|
2588 |
-
return floatval( apply_filters( 'edd_payment_discounted_amount', $total - ( $fees + $tax ), $this ) );
|
2589 |
-
}
|
2590 |
-
|
2591 |
/**
|
2592 |
* Retrieve payment currency
|
2593 |
*
|
@@ -2729,54 +2661,4 @@ class EDD_Payment {
|
|
2729 |
return in_array( $this->status, $in_process_statuses );
|
2730 |
}
|
2731 |
|
2732 |
-
/**
|
2733 |
-
* Determines if a customer needs to be created given the current payment details.
|
2734 |
-
*
|
2735 |
-
* @since 2.8.4
|
2736 |
-
*
|
2737 |
-
* @return EDD_Customer The customer object of the existing customer or new customer.
|
2738 |
-
*/
|
2739 |
-
private function maybe_create_customer() {
|
2740 |
-
$customer = new stdClass;
|
2741 |
-
|
2742 |
-
if ( did_action( 'edd_pre_process_purchase' ) && is_user_logged_in() ) {
|
2743 |
-
|
2744 |
-
$customer = new EDD_customer( get_current_user_id(), true );
|
2745 |
-
|
2746 |
-
// Customer is logged in but used a different email to purchase with so assign to their customer record
|
2747 |
-
if( ! empty( $customer->id ) && $this->email != $customer->email ) {
|
2748 |
-
$customer->add_email( $this->email );
|
2749 |
-
}
|
2750 |
-
|
2751 |
-
}
|
2752 |
-
|
2753 |
-
if ( empty( $customer->id ) ) {
|
2754 |
-
$customer = new EDD_Customer( $this->email );
|
2755 |
-
}
|
2756 |
-
|
2757 |
-
if ( empty( $customer->id ) ) {
|
2758 |
-
|
2759 |
-
if( empty( $this->first_name ) && empty( $this->last_name ) ) {
|
2760 |
-
|
2761 |
-
$name = $this->email;
|
2762 |
-
|
2763 |
-
} else {
|
2764 |
-
|
2765 |
-
$name = $this->first_name . ' ' . $this->last_name;
|
2766 |
-
|
2767 |
-
}
|
2768 |
-
|
2769 |
-
$customer_data = array(
|
2770 |
-
'name' => $name,
|
2771 |
-
'email' => $this->email,
|
2772 |
-
'user_id' => $this->user_id,
|
2773 |
-
);
|
2774 |
-
|
2775 |
-
$customer->create( $customer_data );
|
2776 |
-
|
2777 |
-
}
|
2778 |
-
|
2779 |
-
return $customer;
|
2780 |
-
}
|
2781 |
-
|
2782 |
}
|
97 |
*/
|
98 |
protected $tax = 0;
|
99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
/**
|
101 |
* The tax rate charged on this payment
|
102 |
*
|
557 |
$this->ID = $payment_id;
|
558 |
$this->_ID = $payment_id;
|
559 |
|
560 |
+
$customer = new stdClass;
|
561 |
+
|
562 |
+
if ( did_action( 'edd_pre_process_purchase' ) && is_user_logged_in() ) {
|
563 |
+
|
564 |
+
$customer = new EDD_customer( get_current_user_id(), true );
|
565 |
+
|
566 |
+
// Customer is logged in but used a different email to purchase with so assign to their customer record
|
567 |
+
if( ! empty( $customer->id ) && $this->email != $customer->email ) {
|
568 |
+
$customer->add_email( $this->email );
|
569 |
+
}
|
570 |
+
|
571 |
+
}
|
572 |
+
|
573 |
+
if ( empty( $customer->id ) ) {
|
574 |
+
$customer = new EDD_Customer( $this->email );
|
575 |
+
}
|
576 |
+
|
577 |
+
if ( empty( $customer->id ) ) {
|
578 |
+
|
579 |
+
$customer_data = array(
|
580 |
+
'name' => ! is_email( $payment_title ) ? $this->first_name . ' ' . $this->last_name : '',
|
581 |
+
'email' => $this->email,
|
582 |
+
'user_id' => $this->user_id,
|
583 |
+
);
|
584 |
+
|
585 |
+
$customer->create( $customer_data );
|
586 |
+
|
587 |
+
}
|
588 |
+
|
589 |
|
590 |
$this->customer_id = $customer->id;
|
591 |
$this->pending['customer_id'] = $this->customer_id;
|
592 |
$customer->attach_payment( $this->ID, false );
|
593 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
594 |
$this->payment_meta = apply_filters( 'edd_payment_meta', $this->payment_meta, $payment_data );
|
595 |
if ( ! empty( $this->payment_meta['fees'] ) ) {
|
596 |
$this->fees = array_merge( $this->payment_meta['fees'], $this->fees );
|
641 |
$this->ID = $this->_ID;
|
642 |
}
|
643 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
644 |
// If we have something pending, let's save it
|
645 |
if ( ! empty( $this->pending ) ) {
|
646 |
|
883 |
|
884 |
case 'customer_id':
|
885 |
$this->update_meta( '_edd_payment_customer_id', $this->customer_id );
|
|
|
|
|
886 |
break;
|
887 |
|
888 |
case 'user_id':
|
889 |
$this->update_meta( '_edd_payment_user_id', $this->user_id );
|
|
|
890 |
break;
|
891 |
|
892 |
case 'first_name':
|
1207 |
|
1208 |
$download = new EDD_Download( $download_id );
|
1209 |
|
1210 |
+
// Bail if this post isn't a download
|
1211 |
+
if( ! $download || $download->post_type !== 'download' ) {
|
|
|
|
|
|
|
|
|
1212 |
return false;
|
1213 |
}
|
1214 |
|
1405 |
return false;
|
1406 |
}
|
1407 |
|
1408 |
+
$new_subtotal = $merged_item['item_price'] * $merged_item['quantity'];
|
1409 |
+
$merged_item['subtotal'] = $new_subtotal;
|
1410 |
+
$merged_item['price'] = $new_subtotal + $merged_item['tax'];
|
1411 |
|
1412 |
+
$this->cart_details[ $cart_index ] = $merged_item;
|
1413 |
+
$modified_download = $merged_item;
|
1414 |
+
$modified_download['action'] = 'modify';
|
1415 |
+
$modified_download['previous_data'] = $current_args;
|
|
|
|
|
1416 |
|
1417 |
$this->pending['downloads'][] = $modified_download;
|
1418 |
|
1807 |
|
1808 |
$meta = apply_filters( 'edd_get_payment_meta_' . $meta_key, $meta, $this->ID );
|
1809 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1810 |
return apply_filters( 'edd_get_payment_meta', $meta, $this->ID, $meta_key );
|
1811 |
}
|
1812 |
|
1860 |
return update_post_meta( $this->ID, $meta_key, $meta_value, $prev_value );
|
1861 |
}
|
1862 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1863 |
/**
|
1864 |
* Determines if this payment is able to be resumed by the user.
|
1865 |
*
|
2281 |
$user_id = $this->get_meta( '_edd_payment_user_id', true );
|
2282 |
$customer = new EDD_Customer( $this->customer_id );
|
2283 |
|
2284 |
+
// Make sure it exists, and that it matches that of the associted customer record
|
2285 |
if( empty( $user_id ) || ( ! empty( $customer->user_id ) && (int) $user_id !== (int) $customer->user_id ) ) {
|
2286 |
|
2287 |
$user_id = $customer->user_id;
|
2323 |
'discount' => $this->discounts,
|
2324 |
);
|
2325 |
|
2326 |
+
$user_info = isset( $this->payment_meta['user_info'] ) ? maybe_unserialize( $this->payment_meta['user_info'] ) : array();
|
2327 |
+
$user_info = wp_parse_args( $user_info, $defaults );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2328 |
|
2329 |
// Ensure email index is in the old user info array
|
2330 |
if( empty( $user_info['email'] ) ) {
|
2520 |
return apply_filters( 'edd_payment_discounts', $this->discounts, $this->ID, $this );
|
2521 |
}
|
2522 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2523 |
/**
|
2524 |
* Retrieve payment currency
|
2525 |
*
|
2661 |
return in_array( $this->status, $in_process_statuses );
|
2662 |
}
|
2663 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2664 |
}
|
includes/payments/class-payments-query.php
CHANGED
@@ -49,24 +49,6 @@ class EDD_Payments_Query extends EDD_Stats {
|
|
49 |
*/
|
50 |
public $payments = array();
|
51 |
|
52 |
-
/**
|
53 |
-
* Holds a boolean to determine if there is an existing $wp_query global.
|
54 |
-
*
|
55 |
-
* @var bool
|
56 |
-
* @access private
|
57 |
-
* @since 2.8
|
58 |
-
*/
|
59 |
-
private $existing_query;
|
60 |
-
|
61 |
-
/**
|
62 |
-
* If an existing global $post item exists before we start our query, maintain it for later 'reset'.
|
63 |
-
*
|
64 |
-
* @var WP_Post|null
|
65 |
-
* @access private
|
66 |
-
* @since 2.8
|
67 |
-
*/
|
68 |
-
private $existing_post;
|
69 |
-
|
70 |
/**
|
71 |
* Default query arguments.
|
72 |
*
|
@@ -98,9 +80,7 @@ class EDD_Payments_Query extends EDD_Stats {
|
|
98 |
'search_in_notes' => false,
|
99 |
'children' => false,
|
100 |
'fields' => null,
|
101 |
-
'download' => null
|
102 |
-
'gateway' => null,
|
103 |
-
'post__in' => null,
|
104 |
);
|
105 |
|
106 |
// We need to store an array of the args used to instantiate the class, so that we can use it in later hooks.
|
@@ -141,10 +121,6 @@ class EDD_Payments_Query extends EDD_Stats {
|
|
141 |
*/
|
142 |
public function init() {
|
143 |
|
144 |
-
// Before we start setting up queries, let's store any existing queries that might be in globals.
|
145 |
-
$this->existing_query = isset( $GLOBALS['wp_query'] ) && isset( $GLOBALS['wp_query']->post );
|
146 |
-
$this->existing_post = isset( $GLOBALS['post'] ) ? $GLOBALS['post'] : null;
|
147 |
-
|
148 |
}
|
149 |
|
150 |
/**
|
@@ -156,7 +132,7 @@ class EDD_Payments_Query extends EDD_Stats {
|
|
156 |
*
|
157 |
* @access public
|
158 |
* @since 1.8
|
159 |
-
* @return
|
160 |
*/
|
161 |
public function get_payments() {
|
162 |
|
@@ -170,11 +146,9 @@ class EDD_Payments_Query extends EDD_Stats {
|
|
170 |
$this->user();
|
171 |
$this->customer();
|
172 |
$this->search();
|
173 |
-
$this->gateway();
|
174 |
$this->mode();
|
175 |
$this->children();
|
176 |
$this->download();
|
177 |
-
$this->post__in();
|
178 |
|
179 |
do_action( 'edd_pre_get_payments', $this );
|
180 |
|
@@ -190,7 +164,6 @@ class EDD_Payments_Query extends EDD_Stats {
|
|
190 |
}
|
191 |
|
192 |
if ( $query->have_posts() ) {
|
193 |
-
|
194 |
while ( $query->have_posts() ) {
|
195 |
$query->the_post();
|
196 |
|
@@ -205,14 +178,13 @@ class EDD_Payments_Query extends EDD_Stats {
|
|
205 |
$this->payments[] = apply_filters( 'edd_payment', $payment, $payment_id, $this );
|
206 |
}
|
207 |
|
|
|
208 |
}
|
209 |
|
210 |
add_action( 'edd_post_get_payments', array( $this, 'date_filter_post' ) );
|
211 |
|
212 |
do_action( 'edd_post_get_payments', $this );
|
213 |
|
214 |
-
$this->maybe_reset_globals();
|
215 |
-
|
216 |
return $this->payments;
|
217 |
}
|
218 |
|
@@ -381,39 +353,6 @@ class EDD_Payments_Query extends EDD_Stats {
|
|
381 |
) );
|
382 |
}
|
383 |
|
384 |
-
/**
|
385 |
-
* Specific gateway
|
386 |
-
*
|
387 |
-
* @access public
|
388 |
-
* @since 2.8
|
389 |
-
* @return void
|
390 |
-
*/
|
391 |
-
public function gateway() {
|
392 |
-
if ( is_null( $this->args['gateway'] ) ) {
|
393 |
-
return;
|
394 |
-
}
|
395 |
-
|
396 |
-
$this->__set( 'meta_query', array(
|
397 |
-
'key' => '_edd_payment_gateway',
|
398 |
-
'value' => $this->args['gateway']
|
399 |
-
) );
|
400 |
-
}
|
401 |
-
|
402 |
-
/**
|
403 |
-
* Specific payments
|
404 |
-
*
|
405 |
-
* @access public
|
406 |
-
* @since 2.8.7
|
407 |
-
* @return void
|
408 |
-
*/
|
409 |
-
public function post__in() {
|
410 |
-
if ( is_null( $this->args['post__in'] ) ) {
|
411 |
-
return;
|
412 |
-
}
|
413 |
-
|
414 |
-
$this->__set( 'post__in', $this->args['post__in'] );
|
415 |
-
}
|
416 |
-
|
417 |
/**
|
418 |
* Search
|
419 |
*
|
@@ -486,7 +425,13 @@ class EDD_Payments_Query extends EDD_Stats {
|
|
486 |
|
487 |
$this->__unset( 's' );
|
488 |
|
489 |
-
} elseif (
|
|
|
|
|
|
|
|
|
|
|
|
|
490 |
|
491 |
$search_meta = array(
|
492 |
'key' => '_edd_payment_number',
|
@@ -622,22 +567,4 @@ class EDD_Payments_Query extends EDD_Stats {
|
|
622 |
$this->__unset( 'download' );
|
623 |
|
624 |
}
|
625 |
-
|
626 |
-
/**
|
627 |
-
* Based off the current global variables for $wp_query and $post, we may need to reset some data or just restore it.
|
628 |
-
*
|
629 |
-
* @since 2.8
|
630 |
-
* @access private
|
631 |
-
* @return void
|
632 |
-
*/
|
633 |
-
private function maybe_reset_globals() {
|
634 |
-
// Based off our pre-iteration, let's reset the globals.
|
635 |
-
if ( $this->existing_query ) {
|
636 |
-
wp_reset_postdata();
|
637 |
-
} elseif ( $this->existing_post ) {
|
638 |
-
$GLOBALS['post'] = $this->existing_post;
|
639 |
-
} else {
|
640 |
-
unset( $GLOBALS['post'] );
|
641 |
-
}
|
642 |
-
}
|
643 |
}
|
49 |
*/
|
50 |
public $payments = array();
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
/**
|
53 |
* Default query arguments.
|
54 |
*
|
80 |
'search_in_notes' => false,
|
81 |
'children' => false,
|
82 |
'fields' => null,
|
83 |
+
'download' => null
|
|
|
|
|
84 |
);
|
85 |
|
86 |
// We need to store an array of the args used to instantiate the class, so that we can use it in later hooks.
|
121 |
*/
|
122 |
public function init() {
|
123 |
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
|
126 |
/**
|
132 |
*
|
133 |
* @access public
|
134 |
* @since 1.8
|
135 |
+
* @return object
|
136 |
*/
|
137 |
public function get_payments() {
|
138 |
|
146 |
$this->user();
|
147 |
$this->customer();
|
148 |
$this->search();
|
|
|
149 |
$this->mode();
|
150 |
$this->children();
|
151 |
$this->download();
|
|
|
152 |
|
153 |
do_action( 'edd_pre_get_payments', $this );
|
154 |
|
164 |
}
|
165 |
|
166 |
if ( $query->have_posts() ) {
|
|
|
167 |
while ( $query->have_posts() ) {
|
168 |
$query->the_post();
|
169 |
|
178 |
$this->payments[] = apply_filters( 'edd_payment', $payment, $payment_id, $this );
|
179 |
}
|
180 |
|
181 |
+
wp_reset_postdata();
|
182 |
}
|
183 |
|
184 |
add_action( 'edd_post_get_payments', array( $this, 'date_filter_post' ) );
|
185 |
|
186 |
do_action( 'edd_post_get_payments', $this );
|
187 |
|
|
|
|
|
188 |
return $this->payments;
|
189 |
}
|
190 |
|
353 |
) );
|
354 |
}
|
355 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
356 |
/**
|
357 |
* Search
|
358 |
*
|
425 |
|
426 |
$this->__unset( 's' );
|
427 |
|
428 |
+
} elseif (
|
429 |
+
edd_get_option( 'enable_sequential' ) &&
|
430 |
+
(
|
431 |
+
false !== strpos( $search, edd_get_option( 'sequential_prefix' ) ) ||
|
432 |
+
false !== strpos( $search, edd_get_option( 'sequential_postfix' ) )
|
433 |
+
)
|
434 |
+
) {
|
435 |
|
436 |
$search_meta = array(
|
437 |
'key' => '_edd_payment_number',
|
567 |
$this->__unset( 'download' );
|
568 |
|
569 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
570 |
}
|
includes/payments/functions.php
CHANGED
@@ -167,6 +167,7 @@ function edd_insert_payment( $payment_data = array() ) {
|
|
167 |
}
|
168 |
|
169 |
if ( $resume_payment ) {
|
|
|
170 |
$payment->date = date( 'Y-m-d G:i:s', current_time( 'timestamp' ) );
|
171 |
|
172 |
$payment->add_note( __( 'Payment recovery processed', 'easy-digital-downloads' ) );
|
@@ -184,19 +185,6 @@ function edd_insert_payment( $payment_data = array() ) {
|
|
184 |
$payment->remove_download( $download['id'], $item_args );
|
185 |
}
|
186 |
|
187 |
-
if ( strtolower( $payment->email ) !== strtolower( $payment_data['user_info']['email'] ) ) {
|
188 |
-
|
189 |
-
// Remove the payment from the previous customer.
|
190 |
-
$previous_customer = new EDD_Customer( $payment->customer_id );
|
191 |
-
$previous_customer->remove_payment( $payment->ID, false );
|
192 |
-
|
193 |
-
// Redefine the email frst and last names.
|
194 |
-
$payment->email = $payment_data['user_info']['email'];
|
195 |
-
$payment->first_name = $payment_data['user_info']['first_name'];
|
196 |
-
$payment->last_name = $payment_data['user_info']['last_name'];
|
197 |
-
|
198 |
-
}
|
199 |
-
|
200 |
// Remove any remainders of possible fees from items.
|
201 |
$payment->save();
|
202 |
|
@@ -474,7 +462,6 @@ function edd_count_payments( $args = array() ) {
|
|
474 |
'start-date' => null,
|
475 |
'end-date' => null,
|
476 |
'download' => null,
|
477 |
-
'gateway' => null
|
478 |
);
|
479 |
|
480 |
$args = wp_parse_args( $args, $defaults );
|
@@ -536,7 +523,7 @@ function edd_count_payments( $args = array() ) {
|
|
536 |
$join = "LEFT JOIN $wpdb->postmeta m ON m.meta_key = '_edd_log_payment_id' AND m.post_id = p.ID ";
|
537 |
$join .= "INNER JOIN $wpdb->posts p2 ON m.meta_value = p2.ID ";
|
538 |
$where = "WHERE p.post_type = 'edd_log' ";
|
539 |
-
$where .= $wpdb->prepare( "AND p.post_parent = %d ", $search );
|
540 |
|
541 |
} elseif ( is_numeric( $args['s'] ) ) {
|
542 |
|
@@ -574,18 +561,6 @@ function edd_count_payments( $args = array() ) {
|
|
574 |
|
575 |
}
|
576 |
|
577 |
-
// Limit payments count by gateway
|
578 |
-
if ( ! empty( $args['gateway'] ) ) {
|
579 |
-
|
580 |
-
$join .= "LEFT JOIN $wpdb->postmeta g ON (p.ID = g.post_id)";
|
581 |
-
$where .= $wpdb->prepare( "
|
582 |
-
AND g.meta_key = '_edd_payment_gateway'
|
583 |
-
AND g.meta_value = %s",
|
584 |
-
$args['gateway']
|
585 |
-
);
|
586 |
-
|
587 |
-
}
|
588 |
-
|
589 |
// Limit payments count by date
|
590 |
if ( ! empty( $args['start-date'] ) && false !== strpos( $args['start-date'], '/' ) ) {
|
591 |
|
@@ -751,8 +726,7 @@ function edd_get_payment_statuses() {
|
|
751 |
'refunded' => __( 'Refunded', 'easy-digital-downloads' ),
|
752 |
'failed' => __( 'Failed', 'easy-digital-downloads' ),
|
753 |
'abandoned' => __( 'Abandoned', 'easy-digital-downloads' ),
|
754 |
-
'revoked' => __( 'Revoked', 'easy-digital-downloads' )
|
755 |
-
'processing' => __( 'Processing', 'easy-digital-downloads' )
|
756 |
);
|
757 |
|
758 |
return apply_filters( 'edd_payment_statuses', $payment_statuses );
|
@@ -877,8 +851,8 @@ function edd_get_total_earnings() {
|
|
877 |
* @return float $total Total earnings
|
878 |
*/
|
879 |
function edd_increase_total_earnings( $amount = 0 ) {
|
880 |
-
$total =
|
881 |
-
$total +=
|
882 |
update_option( 'edd_earnings_total', $total );
|
883 |
return $total;
|
884 |
}
|
@@ -980,9 +954,7 @@ function edd_get_payment_meta_cart_details( $payment_id, $include_bundle_files =
|
|
980 |
if( 'bundle' != edd_get_download_type( $cart_item['id'] ) )
|
981 |
continue;
|
982 |
|
983 |
-
$
|
984 |
-
$products = edd_get_bundled_products( $cart_item['id'], $price_id );
|
985 |
-
|
986 |
if ( empty( $products ) )
|
987 |
continue;
|
988 |
|
@@ -1444,19 +1416,11 @@ function edd_set_payment_transaction_id( $payment_id = 0, $transaction_id = '' )
|
|
1444 |
*/
|
1445 |
function edd_get_purchase_id_by_key( $key ) {
|
1446 |
global $wpdb;
|
1447 |
-
$global_key_string = 'edd_purchase_id_by_key' . $key;
|
1448 |
-
global $$global_key_string;
|
1449 |
-
|
1450 |
-
if ( null !== $$global_key_string ) {
|
1451 |
-
return $$global_key_string;
|
1452 |
-
}
|
1453 |
|
1454 |
$purchase = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_edd_payment_purchase_key' AND meta_value = %s LIMIT 1", $key ) );
|
1455 |
|
1456 |
-
if ( $purchase != NULL )
|
1457 |
-
|
1458 |
-
return $$global_key_string;
|
1459 |
-
}
|
1460 |
|
1461 |
return 0;
|
1462 |
}
|
@@ -1593,7 +1557,7 @@ function edd_get_payment_note_html( $note, $payment_id = 0 ) {
|
|
1593 |
$note_html = '<div class="edd-payment-note" id="edd-payment-note-' . $note->comment_ID . '">';
|
1594 |
$note_html .='<p>';
|
1595 |
$note_html .= '<strong>' . $user . '</strong> – ' . date_i18n( $date_format, strtotime( $note->comment_date ) ) . '<br/>';
|
1596 |
-
$note_html .=
|
1597 |
$note_html .= ' – <a href="' . esc_url( $delete_note_url ) . '" class="edd-delete-payment-note" data-note-id="' . absint( $note->comment_ID ) . '" data-payment-id="' . absint( $payment_id ) . '">' . __( 'Delete', 'easy-digital-downloads' ) . '</a>';
|
1598 |
$note_html .= '</p>';
|
1599 |
$note_html .= '</div>';
|
167 |
}
|
168 |
|
169 |
if ( $resume_payment ) {
|
170 |
+
|
171 |
$payment->date = date( 'Y-m-d G:i:s', current_time( 'timestamp' ) );
|
172 |
|
173 |
$payment->add_note( __( 'Payment recovery processed', 'easy-digital-downloads' ) );
|
185 |
$payment->remove_download( $download['id'], $item_args );
|
186 |
}
|
187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
// Remove any remainders of possible fees from items.
|
189 |
$payment->save();
|
190 |
|
462 |
'start-date' => null,
|
463 |
'end-date' => null,
|
464 |
'download' => null,
|
|
|
465 |
);
|
466 |
|
467 |
$args = wp_parse_args( $args, $defaults );
|
523 |
$join = "LEFT JOIN $wpdb->postmeta m ON m.meta_key = '_edd_log_payment_id' AND m.post_id = p.ID ";
|
524 |
$join .= "INNER JOIN $wpdb->posts p2 ON m.meta_value = p2.ID ";
|
525 |
$where = "WHERE p.post_type = 'edd_log' ";
|
526 |
+
$where .= $wpdb->prepare( "AND p.post_parent = %d} ", $search );
|
527 |
|
528 |
} elseif ( is_numeric( $args['s'] ) ) {
|
529 |
|
561 |
|
562 |
}
|
563 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
564 |
// Limit payments count by date
|
565 |
if ( ! empty( $args['start-date'] ) && false !== strpos( $args['start-date'], '/' ) ) {
|
566 |
|
726 |
'refunded' => __( 'Refunded', 'easy-digital-downloads' ),
|
727 |
'failed' => __( 'Failed', 'easy-digital-downloads' ),
|
728 |
'abandoned' => __( 'Abandoned', 'easy-digital-downloads' ),
|
729 |
+
'revoked' => __( 'Revoked', 'easy-digital-downloads' )
|
|
|
730 |
);
|
731 |
|
732 |
return apply_filters( 'edd_payment_statuses', $payment_statuses );
|
851 |
* @return float $total Total earnings
|
852 |
*/
|
853 |
function edd_increase_total_earnings( $amount = 0 ) {
|
854 |
+
$total = edd_get_total_earnings();
|
855 |
+
$total += $amount;
|
856 |
update_option( 'edd_earnings_total', $total );
|
857 |
return $total;
|
858 |
}
|
954 |
if( 'bundle' != edd_get_download_type( $cart_item['id'] ) )
|
955 |
continue;
|
956 |
|
957 |
+
$products = edd_get_bundled_products( $cart_item['id'] );
|
|
|
|
|
958 |
if ( empty( $products ) )
|
959 |
continue;
|
960 |
|
1416 |
*/
|
1417 |
function edd_get_purchase_id_by_key( $key ) {
|
1418 |
global $wpdb;
|
|
|
|
|
|
|
|
|
|
|
|
|
1419 |
|
1420 |
$purchase = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_edd_payment_purchase_key' AND meta_value = %s LIMIT 1", $key ) );
|
1421 |
|
1422 |
+
if ( $purchase != NULL )
|
1423 |
+
return $purchase;
|
|
|
|
|
1424 |
|
1425 |
return 0;
|
1426 |
}
|
1557 |
$note_html = '<div class="edd-payment-note" id="edd-payment-note-' . $note->comment_ID . '">';
|
1558 |
$note_html .='<p>';
|
1559 |
$note_html .= '<strong>' . $user . '</strong> – ' . date_i18n( $date_format, strtotime( $note->comment_date ) ) . '<br/>';
|
1560 |
+
$note_html .= $note->comment_content;
|
1561 |
$note_html .= ' – <a href="' . esc_url( $delete_note_url ) . '" class="edd-delete-payment-note" data-note-id="' . absint( $note->comment_ID ) . '" data-payment-id="' . absint( $payment_id ) . '">' . __( 'Delete', 'easy-digital-downloads' ) . '</a>';
|
1562 |
$note_html .= '</p>';
|
1563 |
$note_html .= '</div>';
|
includes/process-download.php
CHANGED
@@ -141,15 +141,10 @@ function edd_process_download() {
|
|
141 |
$file_details = parse_url( $requested_file );
|
142 |
$schemes = array( 'http', 'https' ); // Direct URL schemes
|
143 |
|
144 |
-
$supported_streams = stream_get_wrappers();
|
145 |
-
if ( strtoupper( substr( PHP_OS, 0, 3 ) ) !== 'WIN' && isset( $file_details['scheme'] ) && ! in_array( $file_details['scheme'], $supported_streams ) ) {
|
146 |
-
wp_die( __( 'Error downloading file. Please contact support.', 'easy-digital-downloads' ), __( 'File download error', 'easy-digital-downloads' ), 501 );
|
147 |
-
}
|
148 |
-
|
149 |
if ( ( ! isset( $file_details['scheme'] ) || ! in_array( $file_details['scheme'], $schemes ) ) && isset( $file_details['path'] ) && file_exists( $requested_file ) ) {
|
150 |
|
151 |
/**
|
152 |
-
* Download method is
|
153 |
* We need to switch to a direct download in order for the file to download properly
|
154 |
*/
|
155 |
$method = 'direct';
|
@@ -196,7 +191,7 @@ function edd_process_download() {
|
|
196 |
header("Robots: none");
|
197 |
header("Content-Type: " . $ctype . "");
|
198 |
header("Content-Description: File Transfer");
|
199 |
-
header("Content-Disposition: attachment; filename=\"" . apply_filters( 'edd_requested_file_name', basename( $requested_file )
|
200 |
header("Content-Transfer-Encoding: binary");
|
201 |
|
202 |
// If the file isn't locally hosted, process the redirect
|
@@ -742,7 +737,7 @@ function edd_readfile_chunked( $file, $retbytes = true ) {
|
|
742 |
$chunksize = 1024 * 1024;
|
743 |
$buffer = '';
|
744 |
$cnt = 0;
|
745 |
-
$handle = @fopen( $file, '
|
746 |
|
747 |
if ( $size = @filesize( $file ) ) {
|
748 |
header("Content-Length: " . $size );
|
141 |
$file_details = parse_url( $requested_file );
|
142 |
$schemes = array( 'http', 'https' ); // Direct URL schemes
|
143 |
|
|
|
|
|
|
|
|
|
|
|
144 |
if ( ( ! isset( $file_details['scheme'] ) || ! in_array( $file_details['scheme'], $schemes ) ) && isset( $file_details['path'] ) && file_exists( $requested_file ) ) {
|
145 |
|
146 |
/**
|
147 |
+
* Download method is seto to Redirect in settings but an absolute path was provided
|
148 |
* We need to switch to a direct download in order for the file to download properly
|
149 |
*/
|
150 |
$method = 'direct';
|
191 |
header("Robots: none");
|
192 |
header("Content-Type: " . $ctype . "");
|
193 |
header("Content-Description: File Transfer");
|
194 |
+
header("Content-Disposition: attachment; filename=\"" . apply_filters( 'edd_requested_file_name', basename( $requested_file ) ) . "\"");
|
195 |
header("Content-Transfer-Encoding: binary");
|
196 |
|
197 |
// If the file isn't locally hosted, process the redirect
|
737 |
$chunksize = 1024 * 1024;
|
738 |
$buffer = '';
|
739 |
$cnt = 0;
|
740 |
+
$handle = @fopen( $file, 'r' );
|
741 |
|
742 |
if ( $size = @filesize( $file ) ) {
|
743 |
header("Content-Length: " . $size );
|
includes/process-purchase.php
CHANGED
@@ -71,37 +71,9 @@ function edd_process_purchase_form() {
|
|
71 |
'first_name' => $user['user_first'],
|
72 |
'last_name' => $user['user_last'],
|
73 |
'discount' => $valid_data['discount'],
|
74 |
-
'address' =>
|
75 |
);
|
76 |
|
77 |
-
// Update a customer record if they have added/updated information
|
78 |
-
$customer = new EDD_Customer( $user_info['email'] );
|
79 |
-
|
80 |
-
$name = $user_info['first_name'] . ' ' . $user_info['last_name'];
|
81 |
-
if ( empty( $customer->name ) || $name != $customer->name ) {
|
82 |
-
$update_data = array(
|
83 |
-
'name' => $name
|
84 |
-
);
|
85 |
-
|
86 |
-
// Update the customer's name and update the user record too
|
87 |
-
$customer->update( $update_data );
|
88 |
-
wp_update_user( array(
|
89 |
-
'ID' => get_current_user_id(),
|
90 |
-
'first_name' => $user_info['first_name'],
|
91 |
-
'last_name' => $user_info['last_name']
|
92 |
-
) );
|
93 |
-
}
|
94 |
-
|
95 |
-
// Update the customer's address if different to what's in the database
|
96 |
-
$address = get_user_meta( $customer->user_id, '_edd_user_address', true );
|
97 |
-
if ( ! is_array( $address ) ) {
|
98 |
-
$address = array();
|
99 |
-
}
|
100 |
-
|
101 |
-
if ( 0 == strlen( implode( $address ) ) || count( array_diff( $address, $user_info['address'] ) ) > 0 ) {
|
102 |
-
update_user_meta( $user['user_id'], '_edd_user_address', $user_info['address'] );
|
103 |
-
}
|
104 |
-
|
105 |
$auth_key = defined( 'AUTH_KEY' ) ? AUTH_KEY : '';
|
106 |
|
107 |
$card_country = isset( $valid_data['cc_info']['card_country'] ) ? $valid_data['cc_info']['card_country'] : false;
|
@@ -195,7 +167,7 @@ function edd_checkout_check_existing_email( $valid_data, $post ) {
|
|
195 |
if ( $email != strtolower( $customer->email ) && ( is_array( $customer->emails ) && ! in_array( $email, array_map( 'strtolower', $customer->emails ) ) ) ) {
|
196 |
$found_customer = new EDD_Customer( $email );
|
197 |
if ( $found_customer->id > 0 ) {
|
198 |
-
edd_set_error( 'edd-customer-email-exists',
|
199 |
}
|
200 |
}
|
201 |
|
@@ -847,12 +819,12 @@ function edd_get_purchase_form_user( $valid_data = array() ) {
|
|
847 |
|
848 |
// Get the user's billing address details
|
849 |
$user['address'] = array();
|
850 |
-
$user['address']['line1'] = ! empty( $_POST['card_address'] ) ? sanitize_text_field( $_POST['card_address'] ) :
|
851 |
-
$user['address']['line2'] = ! empty( $_POST['card_address_2'] ) ? sanitize_text_field( $_POST['card_address_2'] ) :
|
852 |
-
$user['address']['city'] = ! empty( $_POST['card_city'] ) ? sanitize_text_field( $_POST['card_city'] ) :
|
853 |
-
$user['address']['state'] = ! empty( $_POST['card_state'] ) ? sanitize_text_field( $_POST['card_state'] ) :
|
854 |
-
$user['address']['country'] = ! empty( $_POST['billing_country'] ) ? sanitize_text_field( $_POST['billing_country'] ) :
|
855 |
-
$user['address']['zip'] = ! empty( $_POST['card_zip'] ) ? sanitize_text_field( $_POST['card_zip'] ) :
|
856 |
|
857 |
if ( empty( $user['address']['country'] ) )
|
858 |
$user['address'] = false; // Country will always be set if address fields are present
|
@@ -877,7 +849,7 @@ function edd_purchase_form_validate_cc() {
|
|
877 |
$card_data = edd_get_purchase_cc_info();
|
878 |
|
879 |
// Validate the card zip
|
880 |
-
if ( ! empty( $card_data['card_zip'] )
|
881 |
if ( ! edd_purchase_form_validate_cc_zip( $card_data['card_zip'], $card_data['card_country'] ) ) {
|
882 |
edd_set_error( 'invalid_cc_zip', __( 'The zip / postal code you entered for your billing address is invalid', 'easy-digital-downloads' ) );
|
883 |
}
|
@@ -1102,37 +1074,47 @@ function edd_purchase_form_validate_cc_zip( $zip = 0, $country_code = '' ) {
|
|
1102 |
* @return void
|
1103 |
*/
|
1104 |
function edd_check_purchase_email( $valid_data, $posted ) {
|
1105 |
-
|
1106 |
-
$banned
|
1107 |
|
1108 |
if( empty( $banned ) ) {
|
1109 |
return;
|
1110 |
}
|
1111 |
|
1112 |
-
$user_emails = array( $posted['edd_email'] );
|
1113 |
if( is_user_logged_in() ) {
|
1114 |
|
1115 |
// The user is logged in, check that their account email is not banned
|
1116 |
-
$user_data
|
1117 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1118 |
|
1119 |
} elseif( isset( $posted['edd-purchase-var'] ) && $posted['edd-purchase-var'] == 'needs-to-login' ) {
|
1120 |
|
1121 |
// The user is logging in, check that their email is not banned
|
1122 |
-
|
1123 |
-
|
|
|
1124 |
}
|
1125 |
|
1126 |
-
}
|
1127 |
|
1128 |
-
|
1129 |
-
if
|
1130 |
-
|
1131 |
-
edd_set_error( 'email_banned', __( 'An internal error has occurred, please try again or contact support.', 'easy-digital-downloads' ) );
|
1132 |
-
break;
|
1133 |
}
|
|
|
1134 |
}
|
1135 |
|
|
|
|
|
|
|
|
|
1136 |
}
|
1137 |
add_action( 'edd_checkout_error_checks', 'edd_check_purchase_email', 10, 2 );
|
1138 |
|
71 |
'first_name' => $user['user_first'],
|
72 |
'last_name' => $user['user_last'],
|
73 |
'discount' => $valid_data['discount'],
|
74 |
+
'address' => $user['address']
|
75 |
);
|
76 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
$auth_key = defined( 'AUTH_KEY' ) ? AUTH_KEY : '';
|
78 |
|
79 |
$card_country = isset( $valid_data['cc_info']['card_country'] ) ? $valid_data['cc_info']['card_country'] : false;
|
167 |
if ( $email != strtolower( $customer->email ) && ( is_array( $customer->emails ) && ! in_array( $email, array_map( 'strtolower', $customer->emails ) ) ) ) {
|
168 |
$found_customer = new EDD_Customer( $email );
|
169 |
if ( $found_customer->id > 0 ) {
|
170 |
+
edd_set_error( 'edd-customer-email-exists', __( sprintf( 'The email address %s is already in use.', $email ), 'easy-digital-downloads' ) );
|
171 |
}
|
172 |
}
|
173 |
|
819 |
|
820 |
// Get the user's billing address details
|
821 |
$user['address'] = array();
|
822 |
+
$user['address']['line1'] = ! empty( $_POST['card_address'] ) ? sanitize_text_field( $_POST['card_address'] ) : false;
|
823 |
+
$user['address']['line2'] = ! empty( $_POST['card_address_2'] ) ? sanitize_text_field( $_POST['card_address_2'] ) : false;
|
824 |
+
$user['address']['city'] = ! empty( $_POST['card_city'] ) ? sanitize_text_field( $_POST['card_city'] ) : false;
|
825 |
+
$user['address']['state'] = ! empty( $_POST['card_state'] ) ? sanitize_text_field( $_POST['card_state'] ) : false;
|
826 |
+
$user['address']['country'] = ! empty( $_POST['billing_country'] ) ? sanitize_text_field( $_POST['billing_country'] ) : false;
|
827 |
+
$user['address']['zip'] = ! empty( $_POST['card_zip'] ) ? sanitize_text_field( $_POST['card_zip'] ) : false;
|
828 |
|
829 |
if ( empty( $user['address']['country'] ) )
|
830 |
$user['address'] = false; // Country will always be set if address fields are present
|
849 |
$card_data = edd_get_purchase_cc_info();
|
850 |
|
851 |
// Validate the card zip
|
852 |
+
if ( ! empty( $card_data['card_zip'] ) ) {
|
853 |
if ( ! edd_purchase_form_validate_cc_zip( $card_data['card_zip'], $card_data['card_country'] ) ) {
|
854 |
edd_set_error( 'invalid_cc_zip', __( 'The zip / postal code you entered for your billing address is invalid', 'easy-digital-downloads' ) );
|
855 |
}
|
1074 |
* @return void
|
1075 |
*/
|
1076 |
function edd_check_purchase_email( $valid_data, $posted ) {
|
1077 |
+
$is_banned = false;
|
1078 |
+
$banned = edd_get_banned_emails();
|
1079 |
|
1080 |
if( empty( $banned ) ) {
|
1081 |
return;
|
1082 |
}
|
1083 |
|
|
|
1084 |
if( is_user_logged_in() ) {
|
1085 |
|
1086 |
// The user is logged in, check that their account email is not banned
|
1087 |
+
$user_data = get_userdata( get_current_user_id() );
|
1088 |
+
if( edd_is_email_banned( $user_data->user_email ) ) {
|
1089 |
+
|
1090 |
+
$is_banned = true;
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
if( edd_is_email_banned( $posted['edd_email'] ) ) {
|
1094 |
+
$is_banned = true;
|
1095 |
+
}
|
1096 |
|
1097 |
} elseif( isset( $posted['edd-purchase-var'] ) && $posted['edd-purchase-var'] == 'needs-to-login' ) {
|
1098 |
|
1099 |
// The user is logging in, check that their email is not banned
|
1100 |
+
$user_data = get_user_by( 'login', $posted['edd_user_login'] );
|
1101 |
+
if( $user_data && edd_is_email_banned( $user_data->user_email ) ) {
|
1102 |
+
$is_banned = true;
|
1103 |
}
|
1104 |
|
1105 |
+
} else {
|
1106 |
|
1107 |
+
// Guest purchase, check that the email is not banned
|
1108 |
+
if( edd_is_email_banned( $posted['edd_email'] ) ) {
|
1109 |
+
$is_banned = true;
|
|
|
|
|
1110 |
}
|
1111 |
+
|
1112 |
}
|
1113 |
|
1114 |
+
if( $is_banned ) {
|
1115 |
+
// Set an error and give the customer a general error (don't alert them that they were banned)
|
1116 |
+
edd_set_error( 'email_banned', __( 'An internal error has occurred, please try again or contact support.', 'easy-digital-downloads' ) );
|
1117 |
+
}
|
1118 |
}
|
1119 |
add_action( 'edd_checkout_error_checks', 'edd_check_purchase_email', 10, 2 );
|
1120 |
|
includes/scripts.php
CHANGED
@@ -39,45 +39,38 @@ function edd_load_scripts() {
|
|
39 |
$has_purchase_links = true;
|
40 |
}
|
41 |
|
42 |
-
$in_footer = edd_scripts_in_footer();
|
43 |
-
|
44 |
if ( edd_is_checkout() ) {
|
45 |
if ( edd_is_cc_verify_enabled() ) {
|
46 |
-
wp_register_script( 'creditCardValidator', $js_dir . 'jquery.creditCardValidator' . $suffix . '.js', array( 'jquery' ), EDD_VERSION
|
47 |
-
|
48 |
-
// Registered so gateways can enqueue it when they support the space formatting. wp_enqueue_script( 'jQuery.payment' );
|
49 |
-
wp_register_script( 'jQuery.payment', $js_dir . 'jquery.payment.min.js', array( 'jquery' ), EDD_VERSION, $in_footer );
|
50 |
-
|
51 |
wp_enqueue_script( 'creditCardValidator' );
|
52 |
}
|
53 |
|
54 |
-
wp_register_script( 'edd-checkout-global', $js_dir . 'edd-checkout-global' . $suffix . '.js', array( 'jquery' ), EDD_VERSION
|
55 |
wp_enqueue_script( 'edd-checkout-global' );
|
56 |
|
57 |
wp_localize_script( 'edd-checkout-global', 'edd_global_vars', apply_filters( 'edd_global_checkout_script_vars', array(
|
58 |
-
'ajaxurl'
|
59 |
-
'checkout_nonce'
|
60 |
-
'
|
61 |
-
'
|
62 |
-
'
|
63 |
-
'
|
64 |
-
'
|
65 |
-
'
|
66 |
-
'
|
67 |
-
'
|
68 |
-
'
|
69 |
-
'
|
70 |
-
'
|
71 |
-
'
|
72 |
-
'
|
73 |
-
'
|
74 |
-
'edd_version' => EDD_VERSION
|
75 |
) ) );
|
76 |
}
|
77 |
|
78 |
// Load AJAX scripts, if enabled
|
79 |
if ( ! edd_is_ajax_disabled() ) {
|
80 |
-
wp_register_script( 'edd-ajax', $js_dir . 'edd-ajax' . $suffix . '.js', array( 'jquery' ), EDD_VERSION
|
81 |
wp_enqueue_script( 'edd-ajax' );
|
82 |
|
83 |
wp_localize_script( 'edd-ajax', 'edd_scripts', apply_filters( 'edd_ajax_script_vars', array(
|
@@ -220,8 +213,6 @@ function edd_load_admin_scripts( $hook ) {
|
|
220 |
'currency_sign' => edd_currency_filter( '' ),
|
221 |
'currency_pos' => edd_get_option( 'currency_position', 'before' ),
|
222 |
'currency_decimals' => edd_currency_decimal_filter(),
|
223 |
-
'decimal_separator' => edd_get_option( 'decimal_separator', '.' ),
|
224 |
-
'thousands_separator' => edd_get_option( 'thousands_separator', ',' ),
|
225 |
'new_media_ui' => apply_filters( 'edd_use_35_media_ui', 1 ),
|
226 |
'remove_text' => __( 'Remove', 'easy-digital-downloads' ),
|
227 |
'type_to_search' => sprintf( __( 'Type to search %s', 'easy-digital-downloads' ), edd_get_label_plural() ),
|
@@ -229,25 +220,13 @@ function edd_load_admin_scripts( $hook ) {
|
|
229 |
'batch_export_no_class' => __( 'You must choose a method.', 'easy-digital-downloads' ),
|
230 |
'batch_export_no_reqs' => __( 'Required fields not completed.', 'easy-digital-downloads' ),
|
231 |
'reset_stats_warn' => __( 'Are you sure you want to reset your store? This process is <strong><em>not reversible</em></strong>. Please be sure you have a recent backup.', 'easy-digital-downloads' ),
|
|
|
|
|
|
|
|
|
232 |
'unsupported_browser' => __( 'We are sorry but your browser is not compatible with this kind of file upload. Please upgrade your browser.', 'easy-digital-downloads' ),
|
233 |
-
'show_advanced_settings' => __( 'Show advanced settings', 'easy-digital-downloads' ),
|
234 |
-
'hide_advanced_settings' => __( 'Hide advanced settings', 'easy-digital-downloads' ),
|
235 |
));
|
236 |
|
237 |
-
/*
|
238 |
-
* This bit of JavaScript is to facilitate #2704, in order to not break backwards compatibility with the old Variable Price Rows
|
239 |
-
* while we transition to an entire new markup. They should not be relied on for long-term usage.
|
240 |
-
*
|
241 |
-
* @see https://github.com/easydigitaldownloads/easy-digital-downloads/issues/2704
|
242 |
-
*/
|
243 |
-
wp_register_script( 'edd-admin-scripts-compatibility', $js_dir . 'admin-backwards-compatibility' . $suffix . '.js', array( 'jquery', 'edd-admin-scripts' ), EDD_VERSION );
|
244 |
-
wp_localize_script( 'edd-admin-scripts-compatibility', 'edd_backcompat_vars', array(
|
245 |
-
'purchase_limit_settings' => __( 'Purchase Limit Settings', 'easy-digital-downloads' ),
|
246 |
-
'simple_shipping_settings' => __( 'Simple Shipping Settings', 'easy-digital-downloads' ),
|
247 |
-
'software_licensing_settings' => __( 'Software Licensing Settings', 'easy-digital-downloads' ),
|
248 |
-
'recurring_payments_settings' => __( 'Recurring Payments Settings', 'easy-digital-downloads' ),
|
249 |
-
) );
|
250 |
-
|
251 |
wp_enqueue_style( 'wp-color-picker' );
|
252 |
wp_enqueue_script( 'wp-color-picker' );
|
253 |
|
@@ -368,13 +347,3 @@ function edd_load_head_styles() {
|
|
368 |
<?php
|
369 |
}
|
370 |
add_action( 'wp_head', 'edd_load_head_styles' );
|
371 |
-
|
372 |
-
/**
|
373 |
-
* Determine if the frontend scripts should be loaded in the footer or header (default: footer)
|
374 |
-
*
|
375 |
-
* @since 2.8.6
|
376 |
-
* @return mixed
|
377 |
-
*/
|
378 |
-
function edd_scripts_in_footer() {
|
379 |
-
return apply_filters( 'edd_load_scripts_in_footer', true );
|
380 |
-
}
|
39 |
$has_purchase_links = true;
|
40 |
}
|
41 |
|
|
|
|
|
42 |
if ( edd_is_checkout() ) {
|
43 |
if ( edd_is_cc_verify_enabled() ) {
|
44 |
+
wp_register_script( 'creditCardValidator', $js_dir . 'jquery.creditCardValidator' . $suffix . '.js', array( 'jquery' ), EDD_VERSION );
|
|
|
|
|
|
|
|
|
45 |
wp_enqueue_script( 'creditCardValidator' );
|
46 |
}
|
47 |
|
48 |
+
wp_register_script( 'edd-checkout-global', $js_dir . 'edd-checkout-global' . $suffix . '.js', array( 'jquery' ), EDD_VERSION );
|
49 |
wp_enqueue_script( 'edd-checkout-global' );
|
50 |
|
51 |
wp_localize_script( 'edd-checkout-global', 'edd_global_vars', apply_filters( 'edd_global_checkout_script_vars', array(
|
52 |
+
'ajaxurl' => edd_get_ajax_url(),
|
53 |
+
'checkout_nonce' => wp_create_nonce( 'edd_checkout_nonce' ),
|
54 |
+
'currency_sign' => edd_currency_filter(''),
|
55 |
+
'currency_pos' => edd_get_option( 'currency_position', 'before' ),
|
56 |
+
'decimal_separator' => edd_get_option( 'decimal_separator', '.' ),
|
57 |
+
'thousands_separator'=> edd_get_option( 'thousands_separator', ',' ),
|
58 |
+
'no_gateway' => __( 'Please select a payment method', 'easy-digital-downloads' ),
|
59 |
+
'no_discount' => __( 'Please enter a discount code', 'easy-digital-downloads' ), // Blank discount code message
|
60 |
+
'enter_discount' => __( 'Enter discount', 'easy-digital-downloads' ),
|
61 |
+
'discount_applied' => __( 'Discount Applied', 'easy-digital-downloads' ), // Discount verified message
|
62 |
+
'no_email' => __( 'Please enter an email address before applying a discount code', 'easy-digital-downloads' ),
|
63 |
+
'no_username' => __( 'Please enter a username before applying a discount code', 'easy-digital-downloads' ),
|
64 |
+
'purchase_loading' => __( 'Please Wait...', 'easy-digital-downloads' ),
|
65 |
+
'complete_purchase' => edd_get_checkout_button_purchase_label(),
|
66 |
+
'taxes_enabled' => edd_use_taxes() ? '1' : '0',
|
67 |
+
'edd_version' => EDD_VERSION
|
|
|
68 |
) ) );
|
69 |
}
|
70 |
|
71 |
// Load AJAX scripts, if enabled
|
72 |
if ( ! edd_is_ajax_disabled() ) {
|
73 |
+
wp_register_script( 'edd-ajax', $js_dir . 'edd-ajax' . $suffix . '.js', array( 'jquery' ), EDD_VERSION );
|
74 |
wp_enqueue_script( 'edd-ajax' );
|
75 |
|
76 |
wp_localize_script( 'edd-ajax', 'edd_scripts', apply_filters( 'edd_ajax_script_vars', array(
|
213 |
'currency_sign' => edd_currency_filter( '' ),
|
214 |
'currency_pos' => edd_get_option( 'currency_position', 'before' ),
|
215 |
'currency_decimals' => edd_currency_decimal_filter(),
|
|
|
|
|
216 |
'new_media_ui' => apply_filters( 'edd_use_35_media_ui', 1 ),
|
217 |
'remove_text' => __( 'Remove', 'easy-digital-downloads' ),
|
218 |
'type_to_search' => sprintf( __( 'Type to search %s', 'easy-digital-downloads' ), edd_get_label_plural() ),
|
220 |
'batch_export_no_class' => __( 'You must choose a method.', 'easy-digital-downloads' ),
|
221 |
'batch_export_no_reqs' => __( 'Required fields not completed.', 'easy-digital-downloads' ),
|
222 |
'reset_stats_warn' => __( 'Are you sure you want to reset your store? This process is <strong><em>not reversible</em></strong>. Please be sure you have a recent backup.', 'easy-digital-downloads' ),
|
223 |
+
'search_placeholder' => sprintf( __( 'Type to search all %s', 'easy-digital-downloads' ), edd_get_label_plural() ),
|
224 |
+
'search_placeholder_customer' => __( 'Type to search all Customers', 'easy-digital-downloads' ),
|
225 |
+
'search_placeholder_country' => __( 'Type to search all Countries', 'easy-digital-downloads' ),
|
226 |
+
'search_placeholder_state' => __( 'Type to search all States/Provinces', 'easy-digital-downloads' ),
|
227 |
'unsupported_browser' => __( 'We are sorry but your browser is not compatible with this kind of file upload. Please upgrade your browser.', 'easy-digital-downloads' ),
|
|
|
|
|
228 |
));
|
229 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
wp_enqueue_style( 'wp-color-picker' );
|
231 |
wp_enqueue_script( 'wp-color-picker' );
|
232 |
|
347 |
<?php
|
348 |
}
|
349 |
add_action( 'wp_head', 'edd_load_head_styles' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/shortcodes.php
CHANGED
@@ -580,9 +580,47 @@ function edd_downloads_query( $atts, $content = null ) {
|
|
580 |
ob_start(); ?>
|
581 |
<div class="edd_downloads_list <?php echo apply_filters( 'edd_downloads_list_wrapper_class', $wrapper_class, $atts ); ?>">
|
582 |
<?php while ( $downloads->have_posts() ) : $downloads->the_post(); ?>
|
583 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
584 |
<?php $i++; endwhile; ?>
|
585 |
|
|
|
|
|
586 |
<?php wp_reset_postdata(); ?>
|
587 |
|
588 |
<?php if ( filter_var( $atts['pagination'], FILTER_VALIDATE_BOOLEAN ) ) : ?>
|
@@ -932,7 +970,7 @@ function edd_process_profile_editor_remove_email() {
|
|
932 |
|
933 |
$user = wp_get_current_user();
|
934 |
$user_login = ! empty( $user->user_login ) ? $user->user_login : 'EDDBot';
|
935 |
-
$customer_note =
|
936 |
$customer->add_note( $customer_note );
|
937 |
|
938 |
} else {
|
580 |
ob_start(); ?>
|
581 |
<div class="edd_downloads_list <?php echo apply_filters( 'edd_downloads_list_wrapper_class', $wrapper_class, $atts ); ?>">
|
582 |
<?php while ( $downloads->have_posts() ) : $downloads->the_post(); ?>
|
583 |
+
<?php $schema = edd_add_schema_microdata() ? 'itemscope itemtype="http://schema.org/Product" ' : ''; ?>
|
584 |
+
<div <?php echo $schema; ?>class="<?php echo apply_filters( 'edd_download_class', 'edd_download', get_the_ID(), $atts, $i ); ?>" id="edd_download_<?php echo get_the_ID(); ?>">
|
585 |
+
<div class="<?php echo apply_filters( 'edd_download_inner_class', 'edd_download_inner', get_the_ID(), $atts, $i ); ?>">
|
586 |
+
<?php
|
587 |
+
|
588 |
+
do_action( 'edd_download_before' );
|
589 |
+
|
590 |
+
if ( 'false' != $atts['thumbnails'] ) :
|
591 |
+
edd_get_template_part( 'shortcode', 'content-image' );
|
592 |
+
do_action( 'edd_download_after_thumbnail' );
|
593 |
+
endif;
|
594 |
+
|
595 |
+
edd_get_template_part( 'shortcode', 'content-title' );
|
596 |
+
do_action( 'edd_download_after_title' );
|
597 |
+
|
598 |
+
if ( $atts['excerpt'] == 'yes' && $atts['full_content'] != 'yes' ) {
|
599 |
+
edd_get_template_part( 'shortcode', 'content-excerpt' );
|
600 |
+
do_action( 'edd_download_after_content' );
|
601 |
+
} else if ( $atts['full_content'] == 'yes' ) {
|
602 |
+
edd_get_template_part( 'shortcode', 'content-full' );
|
603 |
+
do_action( 'edd_download_after_content' );
|
604 |
+
}
|
605 |
+
|
606 |
+
if ( $atts['price'] == 'yes' ) {
|
607 |
+
edd_get_template_part( 'shortcode', 'content-price' );
|
608 |
+
do_action( 'edd_download_after_price' );
|
609 |
+
}
|
610 |
+
|
611 |
+
if ( $atts['buy_button'] == 'yes' )
|
612 |
+
edd_get_template_part( 'shortcode', 'content-cart-button' );
|
613 |
+
|
614 |
+
do_action( 'edd_download_after' );
|
615 |
+
|
616 |
+
?>
|
617 |
+
</div>
|
618 |
+
</div>
|
619 |
+
<?php if ( $atts['columns'] != 0 && $i % $atts['columns'] == 0 ) { ?><div style="clear:both;"></div><?php } ?>
|
620 |
<?php $i++; endwhile; ?>
|
621 |
|
622 |
+
<div style="clear:both;"></div>
|
623 |
+
|
624 |
<?php wp_reset_postdata(); ?>
|
625 |
|
626 |
<?php if ( filter_var( $atts['pagination'], FILTER_VALIDATE_BOOLEAN ) ) : ?>
|
970 |
|
971 |
$user = wp_get_current_user();
|
972 |
$user_login = ! empty( $user->user_login ) ? $user->user_login : 'EDDBot';
|
973 |
+
$customer_note = __( sprintf( 'Email address %s removed by %s', $_GET['email'], $user_login ), 'easy-digital-downloads' );
|
974 |
$customer->add_note( $customer_note );
|
975 |
|
976 |
} else {
|
includes/tax-functions.php
CHANGED
@@ -55,7 +55,7 @@ function edd_get_tax_rate( $country = false, $state = false ) {
|
|
55 |
if( empty( $country ) ) {
|
56 |
if( ! empty( $_POST['billing_country'] ) ) {
|
57 |
$country = $_POST['billing_country'];
|
58 |
-
} elseif( is_user_logged_in() && ! empty( $user_address
|
59 |
$country = $user_address['country'];
|
60 |
}
|
61 |
$country = ! empty( $country ) ? $country : edd_get_shop_country();
|
@@ -66,7 +66,7 @@ function edd_get_tax_rate( $country = false, $state = false ) {
|
|
66 |
$state = $_POST['state'];
|
67 |
} elseif( ! empty( $_POST['card_state'] ) ) {
|
68 |
$state = $_POST['card_state'];
|
69 |
-
} elseif( is_user_logged_in() && ! empty( $user_address
|
70 |
$state = $user_address['state'];
|
71 |
}
|
72 |
$state = ! empty( $state ) ? $state : edd_get_shop_state();
|
55 |
if( empty( $country ) ) {
|
56 |
if( ! empty( $_POST['billing_country'] ) ) {
|
57 |
$country = $_POST['billing_country'];
|
58 |
+
} elseif( is_user_logged_in() && ! empty( $user_address ) ) {
|
59 |
$country = $user_address['country'];
|
60 |
}
|
61 |
$country = ! empty( $country ) ? $country : edd_get_shop_country();
|
66 |
$state = $_POST['state'];
|
67 |
} elseif( ! empty( $_POST['card_state'] ) ) {
|
68 |
$state = $_POST['card_state'];
|
69 |
+
} elseif( is_user_logged_in() && ! empty( $user_address ) ) {
|
70 |
$state = $user_address['state'];
|
71 |
}
|
72 |
$state = ! empty( $state ) ? $state : edd_get_shop_state();
|
includes/template-actions.php
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Manage actions and callbacks related to templates.
|
4 |
-
*
|
5 |
-
* @package EDD
|
6 |
-
* @subpackage Templates
|
7 |
-
* @copyright Copyright (c) 2017, Pippin Williamson
|
8 |
-
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
9 |
-
* @since 2.8
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Output a message and login form on the profile editor when the
|
14 |
-
* current visitor is not logged in.
|
15 |
-
*
|
16 |
-
* @since 2.8
|
17 |
-
*/
|
18 |
-
function edd_profile_editor_logged_out() {
|
19 |
-
echo '<p class="edd-logged-out">' . esc_html( 'You need to login to edit your profile.', 'easy-digital-downloads' ) . '</p>';
|
20 |
-
echo edd_login_form(); // WPCS: XSS ok.
|
21 |
-
}
|
22 |
-
add_action( 'edd_profile_editor_logged_out', 'edd_profile_editor_logged_out' );
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Output a message on the login form when a user is already logged in.
|
26 |
-
*
|
27 |
-
* This remains mainly for backwards compatibility.
|
28 |
-
*
|
29 |
-
* @since 2.8
|
30 |
-
*/
|
31 |
-
function edd_login_form_logged_in() {
|
32 |
-
echo '<p class="edd-logged-in">' . esc_html( 'You are already logged in', 'easy-digital-downloads' ) . '</p>';
|
33 |
-
}
|
34 |
-
add_action( 'edd_login_form_logged_in', 'edd_login_form_logged_in' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/template-functions.php
CHANGED
@@ -51,20 +51,9 @@ function edd_get_purchase_link( $args = array() ) {
|
|
51 |
|
52 |
$purchase_page = edd_get_option( 'purchase_page', false );
|
53 |
if ( ! $purchase_page || $purchase_page == 0 ) {
|
54 |
-
|
55 |
-
global $no_checkout_error_displayed;
|
56 |
-
if ( ! is_null( $no_checkout_error_displayed ) ) {
|
57 |
-
return false;
|
58 |
-
}
|
59 |
-
|
60 |
-
|
61 |
edd_set_error( 'set_checkout', sprintf( __( 'No checkout page has been configured. Visit <a href="%s">Settings</a> to set one.', 'easy-digital-downloads' ), admin_url( 'edit.php?post_type=download&page=edd-settings' ) ) );
|
62 |
edd_print_errors();
|
63 |
-
|
64 |
-
$no_checkout_error_displayed = true;
|
65 |
-
|
66 |
return false;
|
67 |
-
|
68 |
}
|
69 |
|
70 |
$post_id = is_object( $post ) ? $post->ID : 0;
|
@@ -133,6 +122,8 @@ function edd_get_purchase_link( $args = array() ) {
|
|
133 |
|
134 |
}
|
135 |
|
|
|
|
|
136 |
$data_price = 'data-price="' . $data_price_value . '"';
|
137 |
|
138 |
$button_text = ! empty( $args['text'] ) ? ' – ' . $args['text'] : '';
|
@@ -297,14 +288,7 @@ function edd_purchase_variable_pricing( $download_id = 0, $args = array() ) {
|
|
297 |
|
298 |
$item_prop = edd_add_schema_microdata() ? ' itemprop="description"' : '';
|
299 |
|
300 |
-
|
301 |
-
$price_output = '<span class="edd_price_option_name"' . $item_prop . '>' . esc_html( $price['name'] ) . '</span><span class="edd_price_option_sep"> – </span><span class="edd_price_option_price">' . edd_currency_filter( edd_format_amount( $price['amount'] ) ) . '</span>';
|
302 |
-
|
303 |
-
// Filter the default price output
|
304 |
-
$price_output = apply_filters( 'edd_price_option_output', $price_output, $download_id, $key, $price, $form_id, $item_prop );
|
305 |
-
|
306 |
-
// Output the filtered price output
|
307 |
-
echo $price_output;
|
308 |
|
309 |
if( edd_add_schema_microdata() ) {
|
310 |
echo '<meta itemprop="price" content="' . esc_attr( $price['amount'] ) .'" />';
|
@@ -1113,28 +1097,3 @@ function edd_get_bundle_item_price_id( $bundle_item ) {
|
|
1113 |
|
1114 |
return $bundle_price_id;
|
1115 |
}
|
1116 |
-
|
1117 |
-
/**
|
1118 |
-
* Load a template file for a single download item.
|
1119 |
-
*
|
1120 |
-
* This is a wrapper function for backwards compatibility so the
|
1121 |
-
* shortcode's attributes can be passed to the template file via
|
1122 |
-
* a global variable.
|
1123 |
-
*
|
1124 |
-
* @since 2.8.0
|
1125 |
-
*
|
1126 |
-
* @param array $atts The [downloads] shortcode attributes.
|
1127 |
-
* @param int $i The current item count.
|
1128 |
-
*/
|
1129 |
-
function edd_download_shortcode_item( $atts, $i ) {
|
1130 |
-
global $edd_download_shortcode_item_atts, $edd_download_shortcode_item_i;
|
1131 |
-
|
1132 |
-
/**
|
1133 |
-
* The variables are registered as part of the global scope so the template can access them.
|
1134 |
-
*/
|
1135 |
-
$edd_download_shortcode_item_atts = $atts;
|
1136 |
-
$edd_download_shortcode_item_i = $i;
|
1137 |
-
|
1138 |
-
edd_get_template_part( 'shortcode', 'download' );
|
1139 |
-
}
|
1140 |
-
add_action( 'edd_download_shortcode_item', 'edd_download_shortcode_item', 10, 2 );
|
51 |
|
52 |
$purchase_page = edd_get_option( 'purchase_page', false );
|
53 |
if ( ! $purchase_page || $purchase_page == 0 ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
edd_set_error( 'set_checkout', sprintf( __( 'No checkout page has been configured. Visit <a href="%s">Settings</a> to set one.', 'easy-digital-downloads' ), admin_url( 'edit.php?post_type=download&page=edd-settings' ) ) );
|
55 |
edd_print_errors();
|
|
|
|
|
|
|
56 |
return false;
|
|
|
57 |
}
|
58 |
|
59 |
$post_id = is_object( $post ) ? $post->ID : 0;
|
122 |
|
123 |
}
|
124 |
|
125 |
+
$args['display_price'] = $data_price_value;
|
126 |
+
|
127 |
$data_price = 'data-price="' . $data_price_value . '"';
|
128 |
|
129 |
$button_text = ! empty( $args['text'] ) ? ' – ' . $args['text'] : '';
|
288 |
|
289 |
$item_prop = edd_add_schema_microdata() ? ' itemprop="description"' : '';
|
290 |
|
291 |
+
echo '<span class="edd_price_option_name"' . $item_prop . '>' . esc_html( $price['name'] ) . '</span><span class="edd_price_option_sep"> – </span><span class="edd_price_option_price">' . edd_currency_filter( edd_format_amount( $price['amount'] ) ) . '</span>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
292 |
|
293 |
if( edd_add_schema_microdata() ) {
|
294 |
echo '<meta itemprop="price" content="' . esc_attr( $price['amount'] ) .'" />';
|
1097 |
|
1098 |
return $bundle_price_id;
|
1099 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/user-functions.php
CHANGED
@@ -126,21 +126,15 @@ function edd_get_users_purchased_products( $user = 0, $status = 'complete' ) {
|
|
126 |
}
|
127 |
|
128 |
// Get all the items purchased
|
129 |
-
$limit_payments = apply_filters( 'edd_users_purchased_products_payments', 9999 );
|
130 |
$payment_ids = array_reverse( explode( ',', $customer->payment_ids ) );
|
131 |
-
$
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
'number' => $limit_payments,
|
136 |
-
);
|
137 |
-
$payments_query = new EDD_Payments_Query( $payment_args );
|
138 |
-
$payments = $payments_query->get_payments();
|
139 |
-
|
140 |
$purchase_data = array();
|
141 |
|
142 |
-
foreach ( $
|
143 |
-
$purchase_data[] = $
|
144 |
}
|
145 |
|
146 |
if ( empty( $purchase_data ) ) {
|
@@ -403,42 +397,6 @@ function edd_validate_username( $username ) {
|
|
403 |
return (bool) apply_filters( 'edd_validate_username', $valid, $username );
|
404 |
}
|
405 |
|
406 |
-
/**
|
407 |
-
* Attach the customer to an existing user account when completing guest purchase
|
408 |
-
*
|
409 |
-
* This only runs when a user account already exists and a guest purchase is made
|
410 |
-
* with the account's email address
|
411 |
-
*
|
412 |
-
* After attaching the customer to the user ID, the account is set to pending
|
413 |
-
*
|
414 |
-
* @since 2.8
|
415 |
-
* @param bool $success True if payment was added successfully, false otherwise
|
416 |
-
* @param int $payment_id The ID of the EDD_Payment that was added
|
417 |
-
* @param int $customer_id The ID of the EDD_Customer object
|
418 |
-
* @param object $customer The EDD_Customer object
|
419 |
-
* @return void
|
420 |
-
*/
|
421 |
-
function edd_connect_guest_customer_to_existing_user( $success, $payment_id, $customer_id, $customer ) {
|
422 |
-
|
423 |
-
if( ! empty( $customer->user_id ) ) {
|
424 |
-
return;
|
425 |
-
}
|
426 |
-
|
427 |
-
$user = get_user_by( 'email', $customer->email );
|
428 |
-
|
429 |
-
if( ! $user ) {
|
430 |
-
return;
|
431 |
-
}
|
432 |
-
|
433 |
-
$customer->update( array( 'user_id' => $user->ID ) );
|
434 |
-
|
435 |
-
// Set a flag to force the account to be verified before purchase history can be accessed
|
436 |
-
edd_set_user_to_pending( $user->ID );
|
437 |
-
edd_send_user_verification_email( $user->ID );
|
438 |
-
|
439 |
-
}
|
440 |
-
add_action( 'edd_customer_post_attach_payment', 'edd_connect_guest_customer_to_existing_user', 10, 4 );
|
441 |
-
|
442 |
/**
|
443 |
* Attach the newly created user_id to a customer, if one exists
|
444 |
*
|
@@ -473,7 +431,7 @@ function edd_add_past_purchases_to_new_user( $user_id ) {
|
|
473 |
|
474 |
$email = get_the_author_meta( 'user_email', $user_id );
|
475 |
|
476 |
-
$payments = edd_get_payments( array( 's' => $email
|
477 |
|
478 |
if( $payments ) {
|
479 |
|
@@ -483,14 +441,18 @@ function edd_add_past_purchases_to_new_user( $user_id ) {
|
|
483 |
edd_send_user_verification_email( $user_id );
|
484 |
|
485 |
foreach( $payments as $payment ) {
|
486 |
-
if (
|
487 |
-
|
488 |
-
continue; // This payment already associated with an account
|
489 |
-
}
|
490 |
-
|
491 |
-
$payment->user_id = $user_id;
|
492 |
-
$payment->save();
|
493 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
494 |
}
|
495 |
}
|
496 |
|
@@ -528,14 +490,23 @@ function edd_get_customer_address( $user_id = 0 ) {
|
|
528 |
$address = array();
|
529 |
}
|
530 |
|
531 |
-
|
532 |
-
'line1'
|
533 |
-
|
534 |
-
|
535 |
-
'
|
536 |
-
|
537 |
-
|
538 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
539 |
|
540 |
return $address;
|
541 |
}
|
@@ -654,9 +625,9 @@ function edd_set_user_to_verified( $user_id = 0 ) {
|
|
654 |
* @since 2.4.4
|
655 |
* @return bool
|
656 |
*/
|
657 |
-
function edd_user_pending_verification( $user_id =
|
658 |
|
659 |
-
if(
|
660 |
$user_id = get_current_user_id();
|
661 |
}
|
662 |
|
126 |
}
|
127 |
|
128 |
// Get all the items purchased
|
|
|
129 |
$payment_ids = array_reverse( explode( ',', $customer->payment_ids ) );
|
130 |
+
$limit_payments = apply_filters( 'edd_users_purchased_products_payments', 50 );
|
131 |
+
if ( ! empty( $limit_payments ) ) {
|
132 |
+
$payment_ids = array_slice( $payment_ids, 0, $limit_payments );
|
133 |
+
}
|
|
|
|
|
|
|
|
|
|
|
134 |
$purchase_data = array();
|
135 |
|
136 |
+
foreach ( $payment_ids as $payment_id ) {
|
137 |
+
$purchase_data[] = edd_get_payment_meta_downloads( $payment_id );
|
138 |
}
|
139 |
|
140 |
if ( empty( $purchase_data ) ) {
|
397 |
return (bool) apply_filters( 'edd_validate_username', $valid, $username );
|
398 |
}
|
399 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
400 |
/**
|
401 |
* Attach the newly created user_id to a customer, if one exists
|
402 |
*
|
431 |
|
432 |
$email = get_the_author_meta( 'user_email', $user_id );
|
433 |
|
434 |
+
$payments = edd_get_payments( array( 's' => $email ) );
|
435 |
|
436 |
if( $payments ) {
|
437 |
|
441 |
edd_send_user_verification_email( $user_id );
|
442 |
|
443 |
foreach( $payments as $payment ) {
|
444 |
+
if( intval( edd_get_payment_user_id( $payment->ID ) ) > 0 ) {
|
445 |
+
continue; // This payment already associated with an account
|
|
|
|
|
|
|
|
|
|
|
446 |
}
|
447 |
+
|
448 |
+
$meta = edd_get_payment_meta( $payment->ID );
|
449 |
+
$meta['user_info'] = maybe_unserialize( $meta['user_info'] );
|
450 |
+
$meta['user_info']['id'] = $user_id;
|
451 |
+
$meta['user_info'] = $meta['user_info'];
|
452 |
+
|
453 |
+
// Store the updated user ID in the payment meta
|
454 |
+
edd_update_payment_meta( $payment->ID, '_edd_payment_meta', $meta );
|
455 |
+
edd_update_payment_meta( $payment->ID, '_edd_payment_user_id', $user_id );
|
456 |
}
|
457 |
}
|
458 |
|
490 |
$address = array();
|
491 |
}
|
492 |
|
493 |
+
if( ! isset( $address['line1'] ) )
|
494 |
+
$address['line1'] = '';
|
495 |
+
|
496 |
+
if( ! isset( $address['line2'] ) )
|
497 |
+
$address['line2'] = '';
|
498 |
+
|
499 |
+
if( ! isset( $address['city'] ) )
|
500 |
+
$address['city'] = '';
|
501 |
+
|
502 |
+
if( ! isset( $address['zip'] ) )
|
503 |
+
$address['zip'] = '';
|
504 |
+
|
505 |
+
if( ! isset( $address['country'] ) )
|
506 |
+
$address['country'] = '';
|
507 |
+
|
508 |
+
if( ! isset( $address['state'] ) )
|
509 |
+
$address['state'] = '';
|
510 |
|
511 |
return $address;
|
512 |
}
|
625 |
* @since 2.4.4
|
626 |
* @return bool
|
627 |
*/
|
628 |
+
function edd_user_pending_verification( $user_id = 0 ) {
|
629 |
|
630 |
+
if( empty( $user_id ) ) {
|
631 |
$user_id = get_current_user_id();
|
632 |
}
|
633 |
|
includes/widgets.php
CHANGED
@@ -404,7 +404,7 @@ class EDD_Product_Details_Widget extends WP_Widget {
|
|
404 |
<!-- Download title -->
|
405 |
<p>
|
406 |
<input <?php checked( $instance['download_title'], 'on' ); ?> id="<?php echo esc_attr( $this->get_field_id( 'download_title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'download_title' ) ); ?>" type="checkbox" />
|
407 |
-
<label for="<?php echo esc_attr( $this->get_field_id( 'download_title' ) ); ?>"><?php
|
408 |
</p>
|
409 |
|
410 |
<!-- Show purchase button -->
|
404 |
<!-- Download title -->
|
405 |
<p>
|
406 |
<input <?php checked( $instance['download_title'], 'on' ); ?> id="<?php echo esc_attr( $this->get_field_id( 'download_title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'download_title' ) ); ?>" type="checkbox" />
|
407 |
+
<label for="<?php echo esc_attr( $this->get_field_id( 'download_title' ) ); ?>"><?php _e( 'Show Title', 'easy-digital-downloads' ); ?></label>
|
408 |
</p>
|
409 |
|
410 |
<!-- Show purchase button -->
|
languages/easy-digital-downloads.pot
CHANGED
@@ -2,27 +2,27 @@
|
|
2 |
# This file is distributed under the same license as the Easy Digital Downloads package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Easy Digital Downloads 2.8
|
6 |
"Report-Msgid-Bugs-To: https://easydigitaldownloads.com/\n"
|
7 |
-
"POT-Creation-Date: 2017-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
"PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: WP-Translations (http://wp-translations.org/)\n"
|
13 |
"Language-Team: WP-Translations <wpt@wp-translations.org>\n"
|
|
|
|
|
|
|
|
|
14 |
"Language: en_US\n"
|
15 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
16 |
"X-Poedit-Country: United States\n"
|
17 |
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
-
"X-Poedit-KeywordsList: "
|
19 |
-
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
20 |
-
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
21 |
"X-Poedit-Basepath: ../\n"
|
22 |
"X-Poedit-SearchPath-0: .\n"
|
23 |
"X-Poedit-Bookmarks: \n"
|
24 |
"X-Textdomain-Support: yes\n"
|
25 |
-
"X-Generator: grunt-wp-i18n1.0.0\n"
|
26 |
|
27 |
#: easy-digital-downloads.php:183 easy-digital-downloads.php:195
|
28 |
msgid "Cheatin’ huh?"
|
@@ -38,21 +38,21 @@ msgid ""
|
|
38 |
"or %5$supdate now%6$s."
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: includes/EDD_SL_Plugin_Updater.php:
|
42 |
msgid "You do not have permission to install plugin updates"
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: includes/EDD_SL_Plugin_Updater.php:
|
46 |
#: includes/admin/customers/customer-actions.php:301
|
47 |
#: includes/admin/customers/customer-actions.php:345
|
48 |
#: includes/admin/customers/customer-actions.php:603
|
49 |
#: includes/admin/discounts/discount-actions.php:30
|
50 |
-
#: includes/admin/discounts/discount-actions.php:
|
51 |
-
#: includes/admin/discounts/discount-actions.php:
|
52 |
-
#: includes/admin/discounts/discount-actions.php:
|
53 |
-
#: includes/admin/discounts/discount-actions.php:
|
54 |
-
#: includes/admin/discounts/discount-actions.php:
|
55 |
-
#: includes/admin/discounts/discount-actions.php:
|
56 |
#: includes/admin/discounts/edit-discount.php:16
|
57 |
#: includes/admin/downloads/dashboard-columns.php:171
|
58 |
#: includes/admin/import/class-batch-import-downloads.php:65
|
@@ -78,7 +78,7 @@ msgstr ""
|
|
78 |
#: includes/admin/tools/class-edd-tools-recount-single-customer-stats.php:149
|
79 |
#: includes/admin/tools/class-edd-tools-recount-store-earnings.php:154
|
80 |
#: includes/admin/tools/class-edd-tools-reset-stats.php:180
|
81 |
-
#: includes/admin/tools.php:
|
82 |
#: includes/admin/upgrades/upgrade-functions.php:205
|
83 |
#: includes/admin/upgrades/upgrade-functions.php:521
|
84 |
#: includes/admin/upgrades/upgrade-functions.php:603
|
@@ -87,68 +87,46 @@ msgstr ""
|
|
87 |
#: includes/admin/upgrades/upgrade-functions.php:885
|
88 |
#: includes/admin/upgrades/upgrade-functions.php:1013
|
89 |
#: includes/admin/upgrades/upgrade-functions.php:1098
|
90 |
-
#: includes/api/class-edd-api.php:
|
91 |
-
#: includes/api/class-edd-api.php:
|
92 |
-
#: includes/cart/class-edd-cart.php:
|
93 |
#: includes/class-edd-license-handler.php:307
|
94 |
#: includes/deprecated-functions.php:517 includes/deprecated-functions.php:532
|
95 |
#: includes/deprecated-functions.php:542 includes/download-functions.php:1248
|
96 |
-
#: includes/emails/actions.php:
|
97 |
-
#: includes/error-tracking.php:
|
98 |
-
#: includes/gateways/manual.php:33 includes/gateways/paypal-standard.php:
|
99 |
-
#: includes/process-download.php:
|
100 |
-
#: includes/query-filters.php:48 includes/user-functions.php:
|
101 |
-
#: includes/user-functions.php:
|
102 |
msgid "Error"
|
103 |
msgstr ""
|
104 |
|
105 |
-
#: includes/admin/add-ons.php:
|
106 |
-
msgid "
|
107 |
-
msgstr ""
|
108 |
-
|
109 |
-
#: includes/admin/add-ons.php:24
|
110 |
-
msgid "New"
|
111 |
msgstr ""
|
112 |
|
113 |
-
#: includes/admin/add-ons.php:
|
114 |
-
msgid "
|
115 |
msgstr ""
|
116 |
|
117 |
-
#: includes/admin/add-ons.php:
|
118 |
-
msgid "Apps and Integrations for Easy Digital Downloads"
|
119 |
-
msgstr ""
|
120 |
-
|
121 |
-
#: includes/admin/add-ons.php:39 includes/admin/add-ons.php:88
|
122 |
-
msgid "Browse All Integrations"
|
123 |
-
msgstr ""
|
124 |
-
|
125 |
-
#: includes/admin/add-ons.php:42
|
126 |
msgid ""
|
127 |
-
"These <em><strong>add functionality</strong></em> to your Easy
|
128 |
-
"Downloads powered store."
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: includes/admin/add-ons.php:
|
132 |
msgid ""
|
133 |
"There was an error retrieving the extensions list from the server. Please "
|
134 |
"try again later."
|
135 |
msgstr ""
|
136 |
|
137 |
-
#: includes/admin/admin-actions.php:63
|
138 |
-
msgid "Apps and Integrations"
|
139 |
-
msgstr ""
|
140 |
-
|
141 |
-
#: includes/admin/admin-actions.php:81
|
142 |
-
#: includes/admin/discounts/discount-codes.php:33 includes/post-types.php:30
|
143 |
-
#: includes/post-types.php:77 includes/post-types.php:107
|
144 |
-
msgid "Add New"
|
145 |
-
msgstr ""
|
146 |
-
|
147 |
#: includes/admin/admin-footer.php:27
|
148 |
msgid ""
|
149 |
"Thank you for using <a href=\"%1$s\" target=\"_blank\">Easy Digital "
|
150 |
-
"Downloads</a>! Please <a href=\"%2$s\" target=\"_blank\">rate us on "
|
151 |
-
"WordPress.org</a>"
|
152 |
msgstr ""
|
153 |
|
154 |
#: includes/admin/admin-pages.php:38
|
@@ -195,7 +173,7 @@ msgstr ""
|
|
195 |
|
196 |
#: includes/admin/admin-pages.php:43 includes/admin/plugins.php:57
|
197 |
#: includes/admin/settings/contextual-help.php:87
|
198 |
-
#: includes/admin/settings/register-settings.php:
|
199 |
msgid "Extensions"
|
200 |
msgstr ""
|
201 |
|
@@ -208,7 +186,7 @@ msgstr ""
|
|
208 |
msgid "API Key"
|
209 |
msgstr ""
|
210 |
|
211 |
-
#: includes/admin/class-api-keys-table.php:53 includes/admin/tools.php:
|
212 |
msgid "API Keys"
|
213 |
msgstr ""
|
214 |
|
@@ -225,8 +203,8 @@ msgid "Revoke"
|
|
225 |
msgstr ""
|
226 |
|
227 |
#: includes/admin/class-api-keys-table.php:176
|
228 |
-
#: includes/checkout/template.php:
|
229 |
-
#: templates/shortcode-register.php:
|
230 |
msgid "Username"
|
231 |
msgstr ""
|
232 |
|
@@ -246,7 +224,7 @@ msgstr ""
|
|
246 |
msgid "Generate New API Keys"
|
247 |
msgstr ""
|
248 |
|
249 |
-
#: includes/admin/class-edd-notices.php:48 includes/template-functions.php:
|
250 |
msgid ""
|
251 |
"No checkout page has been configured. Visit <a href=\"%s\">Settings</a> to "
|
252 |
"set one."
|
@@ -406,8 +384,8 @@ msgid "Failed to set primary email"
|
|
406 |
msgstr ""
|
407 |
|
408 |
#: includes/admin/customers/class-customer-table.php:72
|
409 |
-
#: includes/admin/payments/class-payments-table.php:
|
410 |
-
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:
|
411 |
#: includes/admin/reporting/class-sales-logs-list-table.php:131
|
412 |
msgid "Customer"
|
413 |
msgstr ""
|
@@ -427,9 +405,9 @@ msgstr ""
|
|
427 |
#: includes/admin/customers/class-customer-table.php:161
|
428 |
#: includes/admin/discounts/class-discount-codes-table.php:221
|
429 |
#: includes/admin/discounts/class-discount-codes-table.php:289
|
430 |
-
#: includes/admin/payments/class-payments-table.php:
|
431 |
-
#: includes/admin/payments/class-payments-table.php:
|
432 |
-
#: includes/payments/functions.php:
|
433 |
msgid "Delete"
|
434 |
msgstr ""
|
435 |
|
@@ -442,7 +420,7 @@ msgstr ""
|
|
442 |
#: includes/admin/discounts/class-discount-codes-table.php:145
|
443 |
#: includes/admin/discounts/edit-discount.php:37
|
444 |
#: includes/admin/downloads/dashboard-columns.php:31
|
445 |
-
#: includes/admin/payments/view-order-details.php:
|
446 |
#: includes/admin/reporting/class-export-customers.php:76
|
447 |
#: includes/admin/reporting/export/class-batch-export-customers.php:43
|
448 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:44
|
@@ -510,7 +488,7 @@ msgid "An error has occured. Please try again."
|
|
510 |
msgstr ""
|
511 |
|
512 |
#: includes/admin/customers/customer-actions.php:207
|
513 |
-
#: includes/user-functions.php:
|
514 |
msgid "Nonce verification failed."
|
515 |
msgstr ""
|
516 |
|
@@ -530,31 +508,17 @@ msgstr ""
|
|
530 |
msgid "Email successfully added to customer."
|
531 |
msgstr ""
|
532 |
|
533 |
-
#: includes/admin/customers/customer-actions.php:253
|
534 |
-
msgid "Email address %s added by %s"
|
535 |
-
msgstr ""
|
536 |
-
|
537 |
-
#: includes/admin/customers/customer-actions.php:257
|
538 |
-
#: includes/admin/customers/customer-actions.php:355
|
539 |
-
msgid "Email address %s set as primary by %s"
|
540 |
-
msgstr ""
|
541 |
-
|
542 |
#: includes/admin/customers/customer-actions.php:301
|
543 |
#: includes/admin/customers/customer-actions.php:345
|
544 |
#: includes/admin/customers/customer-actions.php:603
|
545 |
#: includes/admin/import/import-functions.php:31
|
546 |
#: includes/admin/import/import-functions.php:113
|
547 |
#: includes/admin/reporting/export/export-actions.php:23
|
548 |
-
#: includes/api/class-edd-api.php:
|
549 |
#: includes/class-edd-license-handler.php:307
|
550 |
msgid "Nonce verification failed"
|
551 |
msgstr ""
|
552 |
|
553 |
-
#: includes/admin/customers/customer-actions.php:311
|
554 |
-
#: includes/shortcodes.php:935
|
555 |
-
msgid "Email address %s removed by %s"
|
556 |
-
msgstr ""
|
557 |
-
|
558 |
#: includes/admin/customers/customer-actions.php:395
|
559 |
msgid "A note is required"
|
560 |
msgstr ""
|
@@ -605,7 +569,7 @@ msgid "Invalid Customer ID Provided."
|
|
605 |
msgstr ""
|
606 |
|
607 |
#: includes/admin/customers/customers.php:116
|
608 |
-
#: includes/admin/payments/view-order-details.php:
|
609 |
msgid "Customer Details"
|
610 |
msgstr ""
|
611 |
|
@@ -628,14 +592,14 @@ msgstr ""
|
|
628 |
#: includes/admin/customers/customers.php:242
|
629 |
#: includes/admin/reporting/class-export-payments.php:68
|
630 |
#: includes/admin/reporting/export/class-batch-export-payments.php:48
|
631 |
-
#: includes/admin/tools.php:
|
632 |
#: templates/shortcode-profile-editor.php:152
|
633 |
msgid "City"
|
634 |
msgstr ""
|
635 |
|
636 |
#: includes/admin/customers/customers.php:269
|
637 |
-
#: includes/admin/settings/register-settings.php:
|
638 |
-
#: includes/admin/tools.php:
|
639 |
#: templates/shortcode-profile-editor.php:171
|
640 |
msgid "State / Province"
|
641 |
msgstr ""
|
@@ -662,7 +626,7 @@ msgstr ""
|
|
662 |
|
663 |
#: includes/admin/customers/customers.php:312
|
664 |
#: includes/admin/reporting/class-export-payments.php:187
|
665 |
-
#: includes/admin/reporting/export/class-batch-export-payments.php:
|
666 |
msgid "none"
|
667 |
msgstr ""
|
668 |
|
@@ -676,9 +640,9 @@ msgstr ""
|
|
676 |
|
677 |
#: includes/admin/customers/customers.php:328
|
678 |
#: includes/admin/customers/customers.php:610
|
679 |
-
#: includes/admin/payments/view-order-details.php:
|
680 |
-
#: includes/admin/payments/view-order-details.php:
|
681 |
-
#: includes/admin/thickbox.php:
|
682 |
msgid "Cancel"
|
683 |
msgstr ""
|
684 |
|
@@ -703,24 +667,24 @@ msgid ""
|
|
703 |
msgstr ""
|
704 |
|
705 |
#: includes/admin/customers/customers.php:378
|
706 |
-
#: includes/admin/payments/class-payments-table.php:
|
707 |
-
#: includes/admin/payments/view-order-details.php:
|
708 |
#: includes/admin/reporting/class-export-customers.php:68
|
709 |
#: includes/admin/reporting/class-export-customers.php:79
|
710 |
#: includes/admin/reporting/class-export-payments.php:63
|
711 |
#: includes/admin/reporting/export/class-batch-export-customers.php:44
|
712 |
#: includes/admin/reporting/export/class-batch-export-payments.php:42
|
713 |
-
#: includes/admin/tools.php:
|
714 |
msgid "Email"
|
715 |
msgstr ""
|
716 |
|
717 |
#: includes/admin/customers/customers.php:379
|
718 |
#: includes/admin/customers/customers.php:438
|
719 |
#: includes/admin/customers/customers.php:471
|
720 |
-
#: includes/admin/payments/view-order-details.php:
|
721 |
-
#: includes/admin/payments/view-order-details.php:
|
722 |
-
#: includes/admin/payments/view-order-details.php:
|
723 |
-
#: includes/admin/payments/view-order-details.php:
|
724 |
#: templates/checkout_cart.php:13
|
725 |
msgid "Actions"
|
726 |
msgstr ""
|
@@ -731,12 +695,8 @@ msgid "Make Primary"
|
|
731 |
msgstr ""
|
732 |
|
733 |
#: includes/admin/customers/customers.php:401
|
734 |
-
#: includes/admin/
|
735 |
-
#: includes/admin/
|
736 |
-
#: includes/admin/downloads/metabox.php:698
|
737 |
-
#: includes/admin/downloads/metabox.php:823
|
738 |
-
#: includes/admin/payments/view-order-details.php:490
|
739 |
-
#: includes/admin/settings/register-settings.php:2021 includes/scripts.php:226
|
740 |
#: templates/checkout_cart.php:57 templates/checkout_cart.php:75
|
741 |
#: templates/shortcode-profile-editor.php:123
|
742 |
msgid "Remove"
|
@@ -760,7 +720,9 @@ msgid "Recent Payments"
|
|
760 |
msgstr ""
|
761 |
|
762 |
#: includes/admin/customers/customers.php:434
|
763 |
-
#: includes/admin/
|
|
|
|
|
764 |
#: includes/admin/reporting/class-export-payments.php:61
|
765 |
#: includes/admin/reporting/class-export.php:69
|
766 |
#: includes/admin/reporting/export/class-batch-export-customers.php:42
|
@@ -773,7 +735,7 @@ msgstr ""
|
|
773 |
#: includes/admin/discounts/add-discount.php:56
|
774 |
#: includes/admin/discounts/class-discount-codes-table.php:147
|
775 |
#: includes/admin/discounts/edit-discount.php:70
|
776 |
-
#: includes/admin/payments/class-payments-table.php:
|
777 |
#: includes/admin/reporting/class-export-payments.php:74
|
778 |
#: includes/admin/reporting/export/class-batch-export-payments.php:55
|
779 |
#: templates/history-purchases.php:20
|
@@ -782,19 +744,19 @@ msgstr ""
|
|
782 |
|
783 |
#: includes/admin/customers/customers.php:436
|
784 |
#: includes/admin/downloads/dashboard-columns.php:37
|
785 |
-
#: includes/admin/payments/class-payments-table.php:
|
786 |
#: includes/admin/reporting/class-api-requests-logs-list-table.php:94
|
787 |
#: includes/admin/reporting/class-export-download-history.php:64
|
788 |
#: includes/admin/reporting/class-export-payments.php:80
|
789 |
#: includes/admin/reporting/class-export.php:70
|
790 |
-
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:
|
791 |
#: includes/admin/reporting/class-gateway-error-logs-list-table.php:134
|
792 |
#: includes/admin/reporting/class-sales-logs-list-table.php:135
|
793 |
#: includes/admin/reporting/export/class-batch-export-api-requests.php:47
|
794 |
#: includes/admin/reporting/export/class-batch-export-file-downloads.php:42
|
795 |
#: includes/admin/reporting/export/class-batch-export-payments.php:61
|
796 |
-
#: includes/admin/reporting/export/class-batch-export-sales.php:
|
797 |
-
#: includes/admin/tools.php:
|
798 |
#: templates/shortcode-receipt.php:59
|
799 |
msgid "Date"
|
800 |
msgstr ""
|
@@ -802,11 +764,11 @@ msgstr ""
|
|
802 |
#: includes/admin/customers/customers.php:437
|
803 |
#: includes/admin/discounts/class-discount-codes-table.php:151
|
804 |
#: includes/admin/discounts/edit-discount.php:175
|
805 |
-
#: includes/admin/payments/class-payments-table.php:
|
806 |
#: includes/admin/reporting/class-export-payments.php:82
|
807 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:49
|
808 |
#: includes/admin/reporting/export/class-batch-export-payments.php:66
|
809 |
-
#: includes/admin/tools.php:
|
810 |
msgid "Status"
|
811 |
msgstr ""
|
812 |
|
@@ -852,7 +814,7 @@ msgstr ""
|
|
852 |
msgid "Delete Customer"
|
853 |
msgstr ""
|
854 |
|
855 |
-
#: includes/admin/customers/customers.php:638 includes/admin/tools.php:
|
856 |
msgid "Recount Customer Stats"
|
857 |
msgstr ""
|
858 |
|
@@ -862,7 +824,7 @@ msgid ""
|
|
862 |
"customer."
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: includes/admin/customers/customers.php:646 includes/admin/tools.php:
|
866 |
msgid "Recount Stats"
|
867 |
msgstr ""
|
868 |
|
@@ -889,7 +851,7 @@ msgstr ""
|
|
889 |
#: includes/admin/reporting/class-download-reports-table.php:112
|
890 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:59
|
891 |
#: includes/admin/reporting/graphing.php:333
|
892 |
-
#: includes/admin/reporting/graphing.php:
|
893 |
#: includes/admin/reporting/reports.php:55
|
894 |
msgid "Earnings"
|
895 |
msgstr ""
|
@@ -902,12 +864,12 @@ msgstr[0] ""
|
|
902 |
msgstr[1] ""
|
903 |
|
904 |
#: includes/admin/dashboard-widgets.php:80
|
905 |
-
#: includes/admin/reporting/graphing.php:
|
906 |
msgid "Last Month"
|
907 |
msgstr ""
|
908 |
|
909 |
#: includes/admin/dashboard-widgets.php:105
|
910 |
-
#: includes/admin/reporting/graphing.php:
|
911 |
msgid "Today"
|
912 |
msgstr ""
|
913 |
|
@@ -917,7 +879,7 @@ msgstr ""
|
|
917 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:58
|
918 |
#: includes/admin/reporting/export/class-batch-export-earnings-report.php:66
|
919 |
#: includes/admin/reporting/graphing.php:334
|
920 |
-
#: includes/admin/reporting/graphing.php:
|
921 |
#: includes/admin/reporting/logs.php:145
|
922 |
msgid "Sales"
|
923 |
msgstr ""
|
@@ -928,7 +890,7 @@ msgstr ""
|
|
928 |
|
929 |
#: includes/admin/dashboard-widgets.php:138
|
930 |
#: includes/admin/reporting/class-categories-reports-table.php:85
|
931 |
-
#: includes/admin/tools.php:
|
932 |
msgid "Total Earnings"
|
933 |
msgstr ""
|
934 |
|
@@ -957,7 +919,8 @@ msgid "Go Back"
|
|
957 |
msgstr ""
|
958 |
|
959 |
#: includes/admin/discounts/add-discount.php:27
|
960 |
-
|
|
|
961 |
msgstr ""
|
962 |
|
963 |
#: includes/admin/discounts/add-discount.php:33
|
@@ -1071,9 +1034,10 @@ msgid "Expiration date"
|
|
1071 |
msgstr ""
|
1072 |
|
1073 |
#: includes/admin/discounts/add-discount.php:134
|
|
|
1074 |
msgid ""
|
1075 |
"Enter the expiration date for this discount code in the format of "
|
1076 |
-
"mm/dd/yyyy. For no expiration, leave blank
|
1077 |
msgstr ""
|
1078 |
|
1079 |
#: includes/admin/discounts/add-discount.php:140
|
@@ -1082,9 +1046,10 @@ msgid "Minimum Amount"
|
|
1082 |
msgstr ""
|
1083 |
|
1084 |
#: includes/admin/discounts/add-discount.php:144
|
|
|
1085 |
msgid ""
|
1086 |
-
"The minimum
|
1087 |
-
"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
#: includes/admin/discounts/add-discount.php:150
|
@@ -1114,8 +1079,8 @@ msgid "Add Discount Code"
|
|
1114 |
msgstr ""
|
1115 |
|
1116 |
#: includes/admin/discounts/class-discount-codes-table.php:127
|
1117 |
-
#: includes/admin/payments/class-payments-table.php:
|
1118 |
-
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:
|
1119 |
#: includes/admin/reporting/class-sales-logs-list-table.php:290
|
1120 |
msgid "All"
|
1121 |
msgstr ""
|
@@ -1204,13 +1169,8 @@ msgstr ""
|
|
1204 |
|
1205 |
#: includes/admin/discounts/contextual-help.php:38
|
1206 |
#: includes/admin/settings/contextual-help.php:42
|
1207 |
-
#: includes/admin/settings/register-settings.php:
|
1208 |
-
#: includes/admin/
|
1209 |
-
#: includes/admin/settings/register-settings.php:1273
|
1210 |
-
#: includes/admin/settings/register-settings.php:1277
|
1211 |
-
#: includes/admin/settings/register-settings.php:1282
|
1212 |
-
#: includes/admin/settings/register-settings.php:1285
|
1213 |
-
#: includes/admin/tools.php:68
|
1214 |
msgid "General"
|
1215 |
msgstr ""
|
1216 |
|
@@ -1314,27 +1274,32 @@ msgid ""
|
|
1314 |
msgstr ""
|
1315 |
|
1316 |
#: includes/admin/discounts/discount-actions.php:30
|
1317 |
-
#: includes/admin/discounts/discount-actions.php:
|
1318 |
msgid "You do not have permission to create discount codes"
|
1319 |
msgstr ""
|
1320 |
|
1321 |
-
#: includes/admin/discounts/discount-actions.php:
|
1322 |
-
#: includes/admin/discounts/discount-actions.php:
|
1323 |
msgid "You do not have permission to edit discount codes"
|
1324 |
msgstr ""
|
1325 |
|
1326 |
-
#: includes/admin/discounts/discount-actions.php:
|
1327 |
-
#: includes/admin/discounts/discount-actions.php:
|
1328 |
-
#: includes/admin/discounts/discount-actions.php:
|
1329 |
msgid "Trying to cheat or something?"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
-
#: includes/admin/discounts/discount-actions.php:
|
1333 |
msgid "You do not have permission to delete discount codes"
|
1334 |
msgstr ""
|
1335 |
|
|
|
|
|
|
|
|
|
|
|
1336 |
#: includes/admin/discounts/discount-codes.php:36
|
1337 |
-
#: includes/admin/payments/class-payments-table.php:
|
1338 |
#: includes/admin/reporting/logs.php:62 includes/admin/reporting/logs.php:122
|
1339 |
msgid "Search"
|
1340 |
msgstr ""
|
@@ -1347,22 +1312,6 @@ msgstr ""
|
|
1347 |
msgid "Edit Discount"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
-
#: includes/admin/discounts/edit-discount.php:41
|
1351 |
-
msgid "The name of this discount"
|
1352 |
-
msgstr ""
|
1353 |
-
|
1354 |
-
#: includes/admin/discounts/edit-discount.php:149
|
1355 |
-
msgid ""
|
1356 |
-
"Enter the expiration date for this discount code in the format of "
|
1357 |
-
"mm/dd/yyyy. For no expiration, leave blank"
|
1358 |
-
msgstr ""
|
1359 |
-
|
1360 |
-
#: includes/admin/discounts/edit-discount.php:169
|
1361 |
-
msgid ""
|
1362 |
-
"The minimum amount that must be purchased before this discount can be used. "
|
1363 |
-
"Leave blank for no minimum."
|
1364 |
-
msgstr ""
|
1365 |
-
|
1366 |
#: includes/admin/discounts/edit-discount.php:182
|
1367 |
msgid "The status of this discount code."
|
1368 |
msgstr ""
|
@@ -1484,8 +1433,8 @@ msgstr ""
|
|
1484 |
|
1485 |
#: includes/admin/downloads/dashboard-columns.php:34
|
1486 |
#: includes/admin/downloads/dashboard-columns.php:286
|
1487 |
-
#: includes/admin/downloads/metabox.php:
|
1488 |
-
#: includes/admin/payments/view-order-details.php:
|
1489 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:52
|
1490 |
#: templates/shortcode-receipt.php:130
|
1491 |
msgid "Price"
|
@@ -1524,229 +1473,191 @@ msgstr ""
|
|
1524 |
msgid "%1$s Stats"
|
1525 |
msgstr ""
|
1526 |
|
1527 |
-
#: includes/admin/downloads/metabox.php:
|
1528 |
-
msgid "Product Reviews"
|
1529 |
-
msgstr ""
|
1530 |
-
|
1531 |
-
#: includes/admin/downloads/metabox.php:307
|
1532 |
msgid "Pricing Options:"
|
1533 |
msgstr ""
|
1534 |
|
1535 |
-
#: includes/admin/downloads/metabox.php:
|
1536 |
msgid "Enable variable pricing"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
-
#: includes/admin/downloads/metabox.php:
|
1540 |
msgid ""
|
1541 |
"Enable multi-option purchase mode. Allows multiple price options to be "
|
1542 |
"added to your cart at once"
|
1543 |
msgstr ""
|
1544 |
|
1545 |
-
#: includes/admin/downloads/metabox.php:
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
#: includes/admin/downloads/metabox.php:426
|
1550 |
-
msgid "Click and drag to re-order price options"
|
1551 |
-
msgstr ""
|
1552 |
-
|
1553 |
-
#: includes/admin/downloads/metabox.php:427
|
1554 |
-
msgid "Price ID: %s"
|
1555 |
msgstr ""
|
1556 |
|
1557 |
-
#: includes/admin/downloads/metabox.php:
|
1558 |
-
msgid "
|
1559 |
msgstr ""
|
1560 |
|
1561 |
-
#: includes/admin/downloads/metabox.php:
|
1562 |
-
msgid "
|
1563 |
msgstr ""
|
1564 |
|
1565 |
#: includes/admin/downloads/metabox.php:446
|
1566 |
-
|
1567 |
-
msgid "Option Name"
|
1568 |
-
msgstr ""
|
1569 |
-
|
1570 |
-
#: includes/admin/downloads/metabox.php:478 includes/download-functions.php:511
|
1571 |
-
msgid "Default"
|
1572 |
msgstr ""
|
1573 |
|
1574 |
-
#: includes/admin/downloads/metabox.php:
|
1575 |
-
msgid "
|
1576 |
msgstr ""
|
1577 |
|
1578 |
-
#: includes/admin/downloads/metabox.php:
|
1579 |
msgid "Product Type Options:"
|
1580 |
msgstr ""
|
1581 |
|
1582 |
-
#: includes/admin/downloads/metabox.php:
|
1583 |
msgid "Select a product type"
|
1584 |
msgstr ""
|
1585 |
|
1586 |
-
#: includes/admin/downloads/metabox.php:
|
1587 |
msgid ""
|
1588 |
"<strong>Product Type</strong>: Sell this item as a single product, or use "
|
1589 |
"the Bundle type to sell a collection of products."
|
1590 |
msgstr ""
|
1591 |
|
1592 |
-
#: includes/admin/downloads/metabox.php:
|
1593 |
-
msgid "Bundled %s"
|
1594 |
-
msgstr ""
|
1595 |
-
|
1596 |
-
#: includes/admin/downloads/metabox.php:599
|
1597 |
-
#: includes/admin/downloads/metabox.php:659
|
1598 |
-
msgid "Click and drag to re-order bundled %s"
|
1599 |
-
msgstr ""
|
1600 |
-
|
1601 |
-
#: includes/admin/downloads/metabox.php:603
|
1602 |
-
#: includes/admin/downloads/metabox.php:663
|
1603 |
-
msgid "Select %s:"
|
1604 |
msgstr ""
|
1605 |
|
1606 |
-
#: includes/admin/downloads/metabox.php:
|
1607 |
-
#: includes/admin/downloads/metabox.php:
|
1608 |
-
msgid "Price
|
1609 |
msgstr ""
|
1610 |
|
1611 |
-
#: includes/admin/downloads/metabox.php:
|
1612 |
msgid "Remove bundle option %s"
|
1613 |
msgstr ""
|
1614 |
|
1615 |
-
#: includes/admin/downloads/metabox.php:
|
1616 |
-
msgid "
|
1617 |
-
msgstr ""
|
1618 |
-
|
1619 |
-
#: includes/admin/downloads/metabox.php:698
|
1620 |
-
msgid "Remove bundle option 1"
|
1621 |
msgstr ""
|
1622 |
|
1623 |
-
#: includes/admin/downloads/metabox.php:
|
1624 |
-
#: includes/admin/downloads/metabox.php:
|
1625 |
msgid "Add New File"
|
1626 |
msgstr ""
|
1627 |
|
1628 |
-
#: includes/admin/downloads/metabox.php:
|
1629 |
-
msgid "
|
1630 |
-
msgstr ""
|
1631 |
-
|
1632 |
-
#: includes/admin/downloads/metabox.php:819
|
1633 |
-
msgid "%1$s file ID: %2$s"
|
1634 |
-
msgstr ""
|
1635 |
-
|
1636 |
-
#: includes/admin/downloads/metabox.php:823
|
1637 |
-
msgid "Remove file %s"
|
1638 |
msgstr ""
|
1639 |
|
1640 |
-
#: includes/admin/downloads/metabox.php:
|
1641 |
-
#: includes/admin/downloads/metabox.php:
|
1642 |
msgid "File Name"
|
1643 |
msgstr ""
|
1644 |
|
1645 |
-
#: includes/admin/downloads/metabox.php:
|
1646 |
msgid "File URL"
|
1647 |
msgstr ""
|
1648 |
|
1649 |
-
#: includes/admin/downloads/metabox.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1650 |
msgid "Upload or enter the file URL"
|
1651 |
msgstr ""
|
1652 |
|
1653 |
-
#: includes/admin/downloads/metabox.php:
|
1654 |
msgid "Insert File"
|
1655 |
msgstr ""
|
1656 |
|
1657 |
-
#: includes/admin/downloads/metabox.php:
|
1658 |
msgid "Insert"
|
1659 |
msgstr ""
|
1660 |
|
1661 |
-
#: includes/admin/downloads/metabox.php:
|
1662 |
msgid "Upload a File"
|
1663 |
msgstr ""
|
1664 |
|
1665 |
-
#: includes/admin/downloads/metabox.php:
|
1666 |
-
msgid "
|
1667 |
msgstr ""
|
1668 |
|
1669 |
-
#: includes/admin/downloads/metabox.php:
|
1670 |
-
msgid ""
|
1671 |
-
"<strong>Price Assignment</strong>: With variable pricing enabled, you can "
|
1672 |
-
"choose to allow certain price variations access to specific files, or allow "
|
1673 |
-
"all price variations to access a file."
|
1674 |
-
msgstr ""
|
1675 |
-
|
1676 |
-
#: includes/admin/downloads/metabox.php:905
|
1677 |
msgid "Insert into %s"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
-
#: includes/admin/downloads/metabox.php:
|
1681 |
msgid "File Download Limit:"
|
1682 |
msgstr ""
|
1683 |
|
1684 |
-
#: includes/admin/downloads/metabox.php:
|
1685 |
msgid "Leave blank for global setting or 0 for unlimited"
|
1686 |
msgstr ""
|
1687 |
|
1688 |
-
#: includes/admin/downloads/metabox.php:
|
1689 |
msgid ""
|
1690 |
"<strong>File Download Limit</strong>: Limit the number of times a customer "
|
1691 |
"who purchased this product can access their download links."
|
1692 |
msgstr ""
|
1693 |
|
1694 |
-
#: includes/admin/downloads/metabox.php:
|
1695 |
msgid "Ignore Tax:"
|
1696 |
msgstr ""
|
1697 |
|
1698 |
-
#: includes/admin/downloads/metabox.php:
|
1699 |
msgid "Mark this product as exclusive of tax"
|
1700 |
msgstr ""
|
1701 |
|
1702 |
-
#: includes/admin/downloads/metabox.php:
|
1703 |
msgid "Item Quantities:"
|
1704 |
msgstr ""
|
1705 |
|
1706 |
-
#: includes/admin/downloads/metabox.php:
|
1707 |
msgid "Disable quantity input for this product"
|
1708 |
msgstr ""
|
1709 |
|
1710 |
-
#: includes/admin/downloads/metabox.php:
|
1711 |
msgid ""
|
1712 |
"<strong>Item Quantities</strong>: if disabled, customers will not be "
|
1713 |
"provided an option to change the number they wish to purchase."
|
1714 |
msgstr ""
|
1715 |
|
1716 |
-
#: includes/admin/downloads/metabox.php:
|
1717 |
-
#: includes/admin/settings/register-settings.php:
|
1718 |
-
#: includes/admin/thickbox.php:
|
1719 |
-
#: includes/shortcodes.php:49 includes/template-functions.php:
|
1720 |
msgid "Purchase"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: includes/admin/downloads/metabox.php:
|
1724 |
msgid "Purchase Shortcode:"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
-
#: includes/admin/downloads/metabox.php:
|
1728 |
msgid ""
|
1729 |
"<strong>Purchse Shortcode</strong>: Use this shortcode to output a purchase "
|
1730 |
"link for this product in the location of your choosing."
|
1731 |
msgstr ""
|
1732 |
|
1733 |
-
#: includes/admin/downloads/metabox.php:
|
1734 |
msgid "Accounting Options:"
|
1735 |
msgstr ""
|
1736 |
|
1737 |
-
#: includes/admin/downloads/metabox.php:
|
1738 |
msgid "Enter an SKU for this %s."
|
1739 |
msgstr ""
|
1740 |
|
1741 |
-
#: includes/admin/downloads/metabox.php:
|
1742 |
msgid "Button Options:"
|
1743 |
msgstr ""
|
1744 |
|
1745 |
-
#: includes/admin/downloads/metabox.php:
|
1746 |
msgid "Disable the automatic output of the purchase button"
|
1747 |
msgstr ""
|
1748 |
|
1749 |
-
#: includes/admin/downloads/metabox.php:
|
1750 |
msgid ""
|
1751 |
"<strong>Automatic Output</strong>: By default, the purchase buttons will be "
|
1752 |
"displayed at the bottom of the download, when disabled you will need to use "
|
@@ -1754,23 +1665,23 @@ msgid ""
|
|
1754 |
"where you prefer."
|
1755 |
msgstr ""
|
1756 |
|
1757 |
-
#: includes/admin/downloads/metabox.php:
|
1758 |
-
#: includes/admin/settings/register-settings.php:
|
1759 |
-
#: includes/admin/thickbox.php:
|
1760 |
msgid "Add to Cart"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: includes/admin/downloads/metabox.php:
|
1764 |
-
#: includes/admin/settings/register-settings.php:
|
1765 |
-
#: includes/template-functions.php:
|
1766 |
msgid "Buy Now"
|
1767 |
msgstr ""
|
1768 |
|
1769 |
-
#: includes/admin/downloads/metabox.php:
|
1770 |
msgid "Purchase button behavior"
|
1771 |
msgstr ""
|
1772 |
|
1773 |
-
#: includes/admin/downloads/metabox.php:
|
1774 |
msgid ""
|
1775 |
"<strong>Button Behavior</strong>: Add to Cart buttons follow a traditional "
|
1776 |
"eCommerce flow. A Buy Now button bypasses most of the process, taking the "
|
@@ -1778,53 +1689,43 @@ msgid ""
|
|
1778 |
"process of buying the product."
|
1779 |
msgstr ""
|
1780 |
|
1781 |
-
#: includes/admin/downloads/metabox.php:
|
1782 |
msgid ""
|
1783 |
"<strong>Button Behavior</strong>: Add to Cart buttons follow a traditional "
|
1784 |
"eCommerce flow. Buy Now buttons are only available for stores that have a "
|
1785 |
"single supported gateway active and that do not use taxes."
|
1786 |
msgstr ""
|
1787 |
|
1788 |
-
#: includes/admin/downloads/metabox.php:
|
1789 |
msgid ""
|
1790 |
"Special notes or instructions for this product. These notes will be added "
|
1791 |
"to the purchase receipt."
|
1792 |
msgstr ""
|
1793 |
|
1794 |
-
#: includes/admin/downloads/metabox.php:
|
1795 |
msgid "Sales:"
|
1796 |
msgstr ""
|
1797 |
|
1798 |
-
#: includes/admin/downloads/metabox.php:
|
1799 |
msgid "Earnings:"
|
1800 |
msgstr ""
|
1801 |
|
1802 |
-
#: includes/admin/downloads/metabox.php:
|
1803 |
msgid "View File Download Log"
|
1804 |
msgstr ""
|
1805 |
|
1806 |
-
#: includes/admin/downloads/metabox.php:1234
|
1807 |
-
msgid "Activate Reviews"
|
1808 |
-
msgstr ""
|
1809 |
-
|
1810 |
-
#: includes/admin/downloads/metabox.php:1247
|
1811 |
-
msgid ""
|
1812 |
-
"Would you like to enable reviews for this product? Check out our <a "
|
1813 |
-
"target=\"_blank\" href=\"%s\">Product Reviews</a> extension."
|
1814 |
-
msgstr ""
|
1815 |
-
|
1816 |
#: includes/admin/import/class-batch-import-downloads.php:65
|
1817 |
#: includes/admin/import/class-batch-import-payments.php:76
|
1818 |
#: includes/admin/import/class-batch-import.php:159
|
1819 |
msgid "You do not have permission to import data."
|
1820 |
msgstr ""
|
1821 |
|
1822 |
-
#: includes/admin/import/class-batch-import-payments.php:
|
1823 |
#: includes/admin/reporting/export/class-batch-export-payments.php:53
|
1824 |
msgid "Products (Raw)"
|
1825 |
msgstr ""
|
1826 |
|
1827 |
-
#: includes/admin/import/class-batch-import-payments.php:
|
1828 |
msgid "payments"
|
1829 |
msgstr ""
|
1830 |
|
@@ -1863,7 +1764,7 @@ msgstr ""
|
|
1863 |
#: includes/admin/payments/actions.php:316
|
1864 |
#: includes/admin/payments/actions.php:332
|
1865 |
#: includes/admin/payments/actions.php:359
|
1866 |
-
#: includes/admin/payments/actions.php:379 includes/emails/actions.php:
|
1867 |
msgid "You do not have permission to edit this payment record"
|
1868 |
msgstr ""
|
1869 |
|
@@ -1879,123 +1780,110 @@ msgstr ""
|
|
1879 |
msgid "Error Updating Payment"
|
1880 |
msgstr ""
|
1881 |
|
1882 |
-
#: includes/admin/payments/class-payments-table.php:
|
1883 |
-
msgid "All Gateways"
|
1884 |
-
msgstr ""
|
1885 |
-
|
1886 |
-
#: includes/admin/payments/class-payments-table.php:159
|
1887 |
msgid "Start Date:"
|
1888 |
msgstr ""
|
1889 |
|
1890 |
-
#: includes/admin/payments/class-payments-table.php:
|
1891 |
msgid "End Date:"
|
1892 |
msgstr ""
|
1893 |
|
1894 |
-
#: includes/admin/payments/class-payments-table.php:
|
1895 |
#: includes/admin/reporting/logs.php:179
|
1896 |
msgid "Apply"
|
1897 |
msgstr ""
|
1898 |
|
1899 |
-
#: includes/admin/payments/class-payments-table.php:
|
1900 |
msgid "Clear Filter"
|
1901 |
msgstr ""
|
1902 |
|
1903 |
-
#: includes/admin/payments/class-payments-table.php:
|
1904 |
msgid "Completed"
|
1905 |
msgstr ""
|
1906 |
|
1907 |
-
#: includes/admin/payments/class-payments-table.php:
|
1908 |
-
#: includes/payments/functions.php:
|
1909 |
msgid "Pending"
|
1910 |
msgstr ""
|
1911 |
|
1912 |
-
#: includes/admin/payments/class-payments-table.php:
|
1913 |
-
#: includes/payments/functions.php:
|
1914 |
-
msgid "Processing"
|
1915 |
-
msgstr ""
|
1916 |
-
|
1917 |
-
#: includes/admin/payments/class-payments-table.php:253
|
1918 |
-
#: includes/payments/functions.php:751
|
1919 |
msgid "Refunded"
|
1920 |
msgstr ""
|
1921 |
|
1922 |
-
#: includes/admin/payments/class-payments-table.php:
|
1923 |
#: includes/admin/reporting/export/class-batch-export-earnings-report.php:68
|
1924 |
-
#: includes/payments/functions.php:
|
1925 |
msgid "Revoked"
|
1926 |
msgstr ""
|
1927 |
|
1928 |
-
#: includes/admin/payments/class-payments-table.php:
|
1929 |
#: includes/admin/reporting/export/class-batch-export-earnings-report.php:70
|
1930 |
-
#: includes/payments/functions.php:
|
1931 |
msgid "Failed"
|
1932 |
msgstr ""
|
1933 |
|
1934 |
-
#: includes/admin/payments/class-payments-table.php:
|
1935 |
#: includes/admin/reporting/export/class-batch-export-earnings-report.php:69
|
1936 |
-
#: includes/payments/functions.php:
|
1937 |
msgid "Abandoned"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
-
#: includes/admin/payments/class-payments-table.php:
|
1941 |
#: templates/history-purchases.php:21
|
1942 |
msgid "Details"
|
1943 |
msgstr ""
|
1944 |
|
1945 |
-
#: includes/admin/payments/class-payments-table.php:
|
1946 |
#: includes/admin/payments/payments-history.php:90
|
1947 |
msgid "View Order Details"
|
1948 |
msgstr ""
|
1949 |
|
1950 |
-
#: includes/admin/payments/class-payments-table.php:
|
1951 |
msgid "Resend Purchase Receipt"
|
1952 |
msgstr ""
|
1953 |
|
1954 |
-
#: includes/admin/payments/class-payments-table.php:
|
1955 |
msgid "(unknown)"
|
1956 |
msgstr ""
|
1957 |
|
1958 |
-
#: includes/admin/payments/class-payments-table.php:
|
1959 |
msgid "(customer missing)"
|
1960 |
msgstr ""
|
1961 |
|
1962 |
-
#: includes/admin/payments/class-payments-table.php:
|
1963 |
msgid "Set To Completed"
|
1964 |
msgstr ""
|
1965 |
|
1966 |
-
#: includes/admin/payments/class-payments-table.php:
|
1967 |
msgid "Set To Pending"
|
1968 |
msgstr ""
|
1969 |
|
1970 |
-
#: includes/admin/payments/class-payments-table.php:
|
1971 |
-
msgid "Set To Processing"
|
1972 |
-
msgstr ""
|
1973 |
-
|
1974 |
-
#: includes/admin/payments/class-payments-table.php:449
|
1975 |
msgid "Set To Refunded"
|
1976 |
msgstr ""
|
1977 |
|
1978 |
-
#: includes/admin/payments/class-payments-table.php:
|
1979 |
msgid "Set To Revoked"
|
1980 |
msgstr ""
|
1981 |
|
1982 |
-
#: includes/admin/payments/class-payments-table.php:
|
1983 |
msgid "Set To Failed"
|
1984 |
msgstr ""
|
1985 |
|
1986 |
-
#: includes/admin/payments/class-payments-table.php:
|
1987 |
msgid "Set To Abandoned"
|
1988 |
msgstr ""
|
1989 |
|
1990 |
-
#: includes/admin/payments/class-payments-table.php:
|
1991 |
msgid "Set To Preapproval"
|
1992 |
msgstr ""
|
1993 |
|
1994 |
-
#: includes/admin/payments/class-payments-table.php:
|
1995 |
msgid "Set To Cancelled"
|
1996 |
msgstr ""
|
1997 |
|
1998 |
-
#: includes/admin/payments/class-payments-table.php:
|
1999 |
msgid "Resend Email Receipts"
|
2000 |
msgstr ""
|
2001 |
|
@@ -2192,7 +2080,7 @@ msgstr[0] ""
|
|
2192 |
msgstr[1] ""
|
2193 |
|
2194 |
#: includes/admin/payments/view-order-details.php:152
|
2195 |
-
#: includes/admin/settings/register-settings.php:
|
2196 |
msgid "None"
|
2197 |
msgstr ""
|
2198 |
|
@@ -2202,10 +2090,10 @@ msgid "Fees"
|
|
2202 |
msgstr ""
|
2203 |
|
2204 |
#: includes/admin/payments/view-order-details.php:175
|
2205 |
-
#: includes/admin/payments/view-order-details.php:
|
2206 |
#: includes/admin/reporting/class-export-payments.php:75
|
2207 |
#: includes/admin/reporting/export/class-batch-export-payments.php:56
|
2208 |
-
#: includes/admin/tools.php:
|
2209 |
#: templates/shortcode-receipt.php:90
|
2210 |
msgid "Tax"
|
2211 |
msgstr ""
|
@@ -2279,7 +2167,7 @@ msgid ""
|
|
2279 |
msgstr ""
|
2280 |
|
2281 |
#: includes/admin/payments/view-order-details.php:308
|
2282 |
-
#: includes/admin/reporting/reports.php:34 includes/class-edd-logging.php:
|
2283 |
msgid "Logs"
|
2284 |
msgstr ""
|
2285 |
|
@@ -2295,105 +2183,89 @@ msgstr ""
|
|
2295 |
msgid "View all purchases of customer"
|
2296 |
msgstr ""
|
2297 |
|
2298 |
-
#: includes/admin/payments/view-order-details.php:
|
2299 |
-
msgid "Deleted"
|
2300 |
-
msgstr ""
|
2301 |
-
|
2302 |
-
#: includes/admin/payments/view-order-details.php:424
|
2303 |
-
msgid "%s deleted"
|
2304 |
-
msgstr ""
|
2305 |
-
|
2306 |
-
#: includes/admin/payments/view-order-details.php:487
|
2307 |
msgid "Copy Download Link(s)"
|
2308 |
msgstr ""
|
2309 |
|
2310 |
-
#: includes/admin/payments/view-order-details.php:
|
2311 |
msgid "No %s included with this purchase"
|
2312 |
msgstr ""
|
2313 |
|
2314 |
-
#: includes/admin/payments/view-order-details.php:
|
2315 |
-
#: includes/admin/payments/view-order-details.php:
|
2316 |
msgid "Add New %s"
|
2317 |
msgstr ""
|
2318 |
|
2319 |
-
#: includes/admin/payments/view-order-details.php:
|
2320 |
msgid " & Quantity"
|
2321 |
msgstr ""
|
2322 |
|
2323 |
-
#: includes/admin/payments/view-order-details.php:
|
2324 |
msgid "Assign to another customer"
|
2325 |
msgstr ""
|
2326 |
|
2327 |
-
#: includes/admin/payments/view-order-details.php:
|
2328 |
msgid "New Customer"
|
2329 |
msgstr ""
|
2330 |
|
2331 |
-
#: includes/admin/payments/view-order-details.php:
|
2332 |
msgid "Select a customer"
|
2333 |
msgstr ""
|
2334 |
|
2335 |
-
#: includes/admin/payments/view-order-details.php:
|
2336 |
-
#: includes/class-edd-html-elements.php:247
|
2337 |
msgid "Type to search all Customers"
|
2338 |
msgstr ""
|
2339 |
|
2340 |
-
#: includes/admin/payments/view-order-details.php:
|
2341 |
msgid "Click \"Save Payment\" to change the customer"
|
2342 |
msgstr ""
|
2343 |
|
2344 |
-
#: includes/admin/payments/view-order-details.php:
|
2345 |
msgid "Click \"Save Payment\" to create new customer"
|
2346 |
msgstr ""
|
2347 |
|
2348 |
-
#: includes/admin/payments/view-order-details.php:
|
2349 |
-
#: includes/checkout/template.php:
|
2350 |
msgid "Billing Address"
|
2351 |
msgstr ""
|
2352 |
|
2353 |
-
#: includes/admin/payments/view-order-details.php:
|
2354 |
msgid "Street Address Line 1:"
|
2355 |
msgstr ""
|
2356 |
|
2357 |
-
#: includes/admin/payments/view-order-details.php:
|
2358 |
msgid "Street Address Line 2:"
|
2359 |
msgstr ""
|
2360 |
|
2361 |
-
#: includes/admin/payments/view-order-details.php:
|
2362 |
-
#: includes/admin/settings/register-settings.php:
|
2363 |
msgid "Select a country"
|
2364 |
msgstr ""
|
2365 |
|
2366 |
-
#: includes/admin/payments/view-order-details.php:
|
2367 |
-
|
2368 |
-
msgstr ""
|
2369 |
-
|
2370 |
-
#: includes/admin/payments/view-order-details.php:753
|
2371 |
-
#: includes/admin/settings/register-settings.php:330
|
2372 |
msgid "Select a state"
|
2373 |
msgstr ""
|
2374 |
|
2375 |
-
#: includes/admin/payments/view-order-details.php:
|
2376 |
-
msgid "Type to search all States/Provinces"
|
2377 |
-
msgstr ""
|
2378 |
-
|
2379 |
-
#: includes/admin/payments/view-order-details.php:777
|
2380 |
msgid "Payment Notes"
|
2381 |
msgstr ""
|
2382 |
|
2383 |
-
#: includes/admin/payments/view-order-details.php:
|
2384 |
msgid "No payment notes"
|
2385 |
msgstr ""
|
2386 |
|
2387 |
-
#: includes/admin/payments/view-order-details.php:
|
2388 |
msgid "Add Note"
|
2389 |
msgstr ""
|
2390 |
|
2391 |
#: includes/admin/plugins.php:27
|
|
|
2392 |
msgid "General Settings"
|
2393 |
msgstr ""
|
2394 |
|
2395 |
#: includes/admin/reporting/class-api-requests-logs-list-table.php:89
|
2396 |
-
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:
|
2397 |
#: includes/admin/reporting/class-gateway-error-logs-list-table.php:129
|
2398 |
#: includes/admin/reporting/class-sales-logs-list-table.php:130
|
2399 |
#: includes/admin/reporting/export/class-batch-export-api-requests.php:40
|
@@ -2451,15 +2323,15 @@ msgstr ""
|
|
2451 |
msgid "Monthly Earnings Avg"
|
2452 |
msgstr ""
|
2453 |
|
2454 |
-
#: includes/admin/reporting/class-categories-reports-table.php:
|
2455 |
msgid "Less than 1"
|
2456 |
msgstr ""
|
2457 |
|
2458 |
-
#: includes/admin/reporting/class-categories-reports-table.php:
|
2459 |
msgid "No sales for dates provided."
|
2460 |
msgstr ""
|
2461 |
|
2462 |
-
#: includes/admin/reporting/class-categories-reports-table.php:
|
2463 |
msgid "No earnings for dates provided."
|
2464 |
msgstr ""
|
2465 |
|
@@ -2482,7 +2354,7 @@ msgstr ""
|
|
2482 |
#: includes/admin/reporting/class-export-customers.php:66
|
2483 |
#: includes/admin/reporting/class-export-payments.php:64
|
2484 |
#: includes/admin/reporting/export/class-batch-export-payments.php:44
|
2485 |
-
#: includes/admin/tools.php:
|
2486 |
#: includes/checkout/template.php:199 templates/shortcode-profile-editor.php:38
|
2487 |
msgid "First Name"
|
2488 |
msgstr ""
|
@@ -2490,7 +2362,7 @@ msgstr ""
|
|
2490 |
#: includes/admin/reporting/class-export-customers.php:67
|
2491 |
#: includes/admin/reporting/class-export-payments.php:65
|
2492 |
#: includes/admin/reporting/export/class-batch-export-payments.php:45
|
2493 |
-
#: includes/admin/tools.php:
|
2494 |
#: includes/checkout/template.php:209 templates/shortcode-profile-editor.php:43
|
2495 |
msgid "Last Name"
|
2496 |
msgstr ""
|
@@ -2513,11 +2385,11 @@ msgid "Downloaded by"
|
|
2513 |
msgstr ""
|
2514 |
|
2515 |
#: includes/admin/reporting/class-export-download-history.php:66
|
2516 |
-
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:
|
2517 |
#: includes/admin/reporting/export/class-batch-export-api-requests.php:42
|
2518 |
#: includes/admin/reporting/export/class-batch-export-file-downloads.php:44
|
2519 |
#: includes/admin/reporting/export/class-batch-export-payments.php:64
|
2520 |
-
#: includes/admin/tools.php:
|
2521 |
msgid "IP Address"
|
2522 |
msgstr ""
|
2523 |
|
@@ -2527,14 +2399,14 @@ msgid "Product"
|
|
2527 |
msgstr ""
|
2528 |
|
2529 |
#: includes/admin/reporting/class-export-download-history.php:68
|
2530 |
-
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:
|
2531 |
#: includes/admin/reporting/export/class-batch-export-file-downloads.php:46
|
2532 |
msgid "File"
|
2533 |
msgstr ""
|
2534 |
|
2535 |
#: includes/admin/reporting/class-export-payments.php:62
|
2536 |
#: includes/admin/reporting/export/class-batch-export-payments.php:41
|
2537 |
-
#: includes/admin/tools.php:
|
2538 |
msgid "Payment Number"
|
2539 |
msgstr ""
|
2540 |
|
@@ -2555,14 +2427,14 @@ msgstr ""
|
|
2555 |
|
2556 |
#: includes/admin/reporting/class-export-payments.php:70
|
2557 |
#: includes/admin/reporting/export/class-batch-export-payments.php:50
|
2558 |
-
#: includes/admin/settings/register-settings.php:
|
2559 |
-
#: includes/admin/tools.php:
|
2560 |
msgid "Country"
|
2561 |
msgstr ""
|
2562 |
|
2563 |
#: includes/admin/reporting/class-export-payments.php:71
|
2564 |
#: includes/admin/reporting/export/class-batch-export-payments.php:51
|
2565 |
-
#: includes/admin/tools.php:
|
2566 |
#: templates/shortcode-profile-editor.php:157
|
2567 |
msgid "Zip / Postal Code"
|
2568 |
msgstr ""
|
@@ -2579,31 +2451,31 @@ msgstr ""
|
|
2579 |
|
2580 |
#: includes/admin/reporting/class-export-payments.php:77
|
2581 |
#: includes/admin/reporting/export/class-batch-export-payments.php:58
|
2582 |
-
#: includes/admin/tools.php:
|
2583 |
msgid "Payment Method"
|
2584 |
msgstr ""
|
2585 |
|
2586 |
#: includes/admin/reporting/class-export-payments.php:78
|
2587 |
#: includes/admin/reporting/export/class-batch-export-payments.php:59
|
2588 |
-
#: includes/admin/tools.php:
|
2589 |
msgid "Transaction ID"
|
2590 |
msgstr ""
|
2591 |
|
2592 |
#: includes/admin/reporting/class-export-payments.php:79
|
2593 |
#: includes/admin/reporting/export/class-batch-export-payments.php:60
|
2594 |
-
#: includes/admin/tools.php:
|
2595 |
msgid "Purchase Key"
|
2596 |
msgstr ""
|
2597 |
|
2598 |
#: includes/admin/reporting/class-export-payments.php:81
|
2599 |
#: includes/admin/reporting/export/class-batch-export-payments.php:62
|
2600 |
#: includes/admin/reporting/export/class-batch-export-sales.php:41
|
2601 |
-
#: includes/admin/tools.php:
|
2602 |
msgid "User"
|
2603 |
msgstr ""
|
2604 |
|
2605 |
#: includes/admin/reporting/class-export-payments.php:192
|
2606 |
-
#: includes/admin/reporting/export/class-batch-export-payments.php:
|
2607 |
msgid "guest"
|
2608 |
msgstr ""
|
2609 |
|
@@ -2617,16 +2489,16 @@ msgstr ""
|
|
2617 |
msgid "You do not have permission to export data."
|
2618 |
msgstr ""
|
2619 |
|
2620 |
-
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:
|
2621 |
#: includes/admin/reporting/class-gateway-error-logs-list-table.php:130
|
2622 |
#: includes/admin/reporting/class-sales-logs-list-table.php:134
|
2623 |
#: includes/admin/reporting/export/class-batch-export-payments.php:40
|
2624 |
-
#: includes/admin/reporting/export/class-batch-export-sales.php:
|
2625 |
msgid "Payment ID"
|
2626 |
msgstr ""
|
2627 |
|
2628 |
#: includes/admin/reporting/class-gateway-error-logs-list-table.php:79
|
2629 |
-
#: includes/gateways/manual.php:73 includes/gateways/paypal-standard.php:
|
2630 |
msgid "Payment Error"
|
2631 |
msgstr ""
|
2632 |
|
@@ -2656,7 +2528,7 @@ msgid "Pending / Failed Sales"
|
|
2656 |
msgstr ""
|
2657 |
|
2658 |
#: includes/admin/reporting/class-sales-logs-list-table.php:133
|
2659 |
-
#: includes/admin/reporting/export/class-batch-export-sales.php:
|
2660 |
msgid "Item Amount"
|
2661 |
msgstr ""
|
2662 |
|
@@ -2667,7 +2539,7 @@ msgid ""
|
|
2667 |
msgstr ""
|
2668 |
|
2669 |
#: includes/admin/reporting/contextual-help.php:48
|
2670 |
-
#: includes/admin/reporting/reports.php:32 includes/admin/tools.php:
|
2671 |
msgid "Export"
|
2672 |
msgstr ""
|
2673 |
|
@@ -2771,8 +2643,8 @@ msgid "Files"
|
|
2771 |
msgstr ""
|
2772 |
|
2773 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:54
|
2774 |
-
#: includes/admin/settings/register-settings.php:
|
2775 |
-
#: includes/admin/tools.php:
|
2776 |
msgid "File Download Limit"
|
2777 |
msgstr ""
|
2778 |
|
@@ -2782,7 +2654,7 @@ msgstr ""
|
|
2782 |
|
2783 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:56
|
2784 |
#: includes/emails/class-edd-email-tags.php:411
|
2785 |
-
#: includes/emails/class-edd-email-tags.php:
|
2786 |
#: templates/shortcode-receipt.php:125
|
2787 |
msgid "SKU"
|
2788 |
msgstr ""
|
@@ -2812,8 +2684,7 @@ msgid "Gross Amount"
|
|
2812 |
msgstr ""
|
2813 |
|
2814 |
#: includes/admin/reporting/export/class-batch-export-payments.php:43
|
2815 |
-
#: includes/admin/
|
2816 |
-
#: includes/admin/tools.php:524
|
2817 |
msgid "Customer ID"
|
2818 |
msgstr ""
|
2819 |
|
@@ -2822,20 +2693,15 @@ msgid "Products (Verbose)"
|
|
2822 |
msgstr ""
|
2823 |
|
2824 |
#: includes/admin/reporting/export/class-batch-export-payments.php:63
|
2825 |
-
#: includes/admin/settings/register-settings.php:
|
2826 |
-
#: includes/admin/settings/register-settings.php:1269
|
2827 |
msgid "Currency"
|
2828 |
msgstr ""
|
2829 |
|
2830 |
#: includes/admin/reporting/export/class-batch-export-payments.php:65
|
2831 |
-
#: includes/admin/tools.php:
|
2832 |
msgid "Mode (Live|Test)"
|
2833 |
msgstr ""
|
2834 |
|
2835 |
-
#: includes/admin/reporting/export/class-batch-export-payments.php:67
|
2836 |
-
msgid "Country Name"
|
2837 |
-
msgstr ""
|
2838 |
-
|
2839 |
#: includes/admin/reporting/export/export-functions.php:49
|
2840 |
msgid "Export location or file not writable"
|
2841 |
msgstr ""
|
@@ -2853,12 +2719,12 @@ msgid "Earnings Over Time"
|
|
2853 |
msgstr ""
|
2854 |
|
2855 |
#: includes/admin/reporting/graphing.php:361
|
2856 |
-
#: includes/admin/reporting/graphing.php:
|
2857 |
msgid "Total earnings for period shown: "
|
2858 |
msgstr ""
|
2859 |
|
2860 |
#: includes/admin/reporting/graphing.php:369
|
2861 |
-
#: includes/admin/reporting/graphing.php:
|
2862 |
msgid "Total sales for period shown: "
|
2863 |
msgstr ""
|
2864 |
|
@@ -2874,84 +2740,84 @@ msgstr ""
|
|
2874 |
msgid "Excludes sales tax."
|
2875 |
msgstr ""
|
2876 |
|
2877 |
-
#: includes/admin/reporting/graphing.php:
|
2878 |
msgid "Earnings Over Time for %s"
|
2879 |
msgstr ""
|
2880 |
|
2881 |
-
#: includes/admin/reporting/graphing.php:
|
2882 |
msgid "Average monthly earnings: %s"
|
2883 |
msgstr ""
|
2884 |
|
2885 |
-
#: includes/admin/reporting/graphing.php:
|
2886 |
msgid "Average monthly sales: %s"
|
2887 |
msgstr ""
|
2888 |
|
2889 |
-
#: includes/admin/reporting/graphing.php:
|
2890 |
msgid "Yesterday"
|
2891 |
msgstr ""
|
2892 |
|
2893 |
-
#: includes/admin/reporting/graphing.php:
|
2894 |
msgid "This Week"
|
2895 |
msgstr ""
|
2896 |
|
2897 |
-
#: includes/admin/reporting/graphing.php:
|
2898 |
msgid "Last Week"
|
2899 |
msgstr ""
|
2900 |
|
2901 |
-
#: includes/admin/reporting/graphing.php:
|
2902 |
msgid "Last 30 Days"
|
2903 |
msgstr ""
|
2904 |
|
2905 |
-
#: includes/admin/reporting/graphing.php:
|
2906 |
msgid "This Month"
|
2907 |
msgstr ""
|
2908 |
|
2909 |
-
#: includes/admin/reporting/graphing.php:
|
2910 |
msgid "This Quarter"
|
2911 |
msgstr ""
|
2912 |
|
2913 |
-
#: includes/admin/reporting/graphing.php:
|
2914 |
msgid "Last Quarter"
|
2915 |
msgstr ""
|
2916 |
|
2917 |
-
#: includes/admin/reporting/graphing.php:
|
2918 |
msgid "This Year"
|
2919 |
msgstr ""
|
2920 |
|
2921 |
-
#: includes/admin/reporting/graphing.php:
|
2922 |
msgid "Last Year"
|
2923 |
msgstr ""
|
2924 |
|
2925 |
-
#: includes/admin/reporting/graphing.php:
|
2926 |
msgid "Custom"
|
2927 |
msgstr ""
|
2928 |
|
2929 |
-
#: includes/admin/reporting/graphing.php:
|
2930 |
msgid "From"
|
2931 |
msgstr ""
|
2932 |
|
2933 |
-
#: includes/admin/reporting/graphing.php:
|
2934 |
msgid "To"
|
2935 |
msgstr ""
|
2936 |
|
2937 |
-
#: includes/admin/reporting/graphing.php:
|
2938 |
msgid "Exclude Taxes"
|
2939 |
msgstr ""
|
2940 |
|
2941 |
-
#: includes/admin/reporting/graphing.php:
|
2942 |
msgid "Filter"
|
2943 |
msgstr ""
|
2944 |
|
2945 |
-
#: includes/admin/reporting/graphing.php:
|
2946 |
msgid "Clicking this will clear the reports cache"
|
2947 |
msgstr ""
|
2948 |
|
2949 |
-
#: includes/admin/reporting/graphing.php:
|
2950 |
msgid "Refresh Reports"
|
2951 |
msgstr ""
|
2952 |
|
2953 |
#: includes/admin/reporting/logs.php:144
|
2954 |
-
#: includes/admin/settings/register-settings.php:
|
2955 |
msgid "File Downloads"
|
2956 |
msgstr ""
|
2957 |
|
@@ -2981,7 +2847,7 @@ msgstr ""
|
|
2981 |
|
2982 |
#: includes/admin/reporting/reports.php:59
|
2983 |
#: includes/admin/settings/contextual-help.php:71
|
2984 |
-
#: includes/admin/settings/register-settings.php:
|
2985 |
msgid "Taxes"
|
2986 |
msgstr ""
|
2987 |
|
@@ -3025,7 +2891,7 @@ msgid ""
|
|
3025 |
"year."
|
3026 |
msgstr ""
|
3027 |
|
3028 |
-
#: includes/admin/reporting/reports.php:325 includes/admin/tools.php:
|
3029 |
msgid "Submit"
|
3030 |
msgstr ""
|
3031 |
|
@@ -3123,8 +2989,8 @@ msgid ""
|
|
3123 |
msgstr ""
|
3124 |
|
3125 |
#: includes/admin/settings/contextual-help.php:48
|
3126 |
-
#: includes/admin/settings/register-settings.php:
|
3127 |
-
#: includes/admin/settings/register-settings.php:
|
3128 |
msgid "Payment Gateways"
|
3129 |
msgstr ""
|
3130 |
|
@@ -3153,7 +3019,7 @@ msgid ""
|
|
3153 |
msgstr ""
|
3154 |
|
3155 |
#: includes/admin/settings/contextual-help.php:57
|
3156 |
-
#: includes/admin/settings/register-settings.php:
|
3157 |
msgid "Emails"
|
3158 |
msgstr ""
|
3159 |
|
@@ -3173,7 +3039,7 @@ msgid ""
|
|
3173 |
msgstr ""
|
3174 |
|
3175 |
#: includes/admin/settings/contextual-help.php:65
|
3176 |
-
#: includes/admin/settings/register-settings.php:
|
3177 |
msgid "Styles"
|
3178 |
msgstr ""
|
3179 |
|
@@ -3256,7 +3122,6 @@ msgid ""
|
|
3256 |
msgstr ""
|
3257 |
|
3258 |
#: includes/admin/settings/contextual-help.php:93
|
3259 |
-
#: includes/admin/settings/register-settings.php:1292
|
3260 |
msgid "Miscellaneous"
|
3261 |
msgstr ""
|
3262 |
|
@@ -3270,15 +3135,12 @@ msgstr ""
|
|
3270 |
msgid "A description of all the options are provided beside their input boxes."
|
3271 |
msgstr ""
|
3272 |
|
3273 |
-
#: includes/admin/settings/register-settings.php:
|
3274 |
-
|
3275 |
-
msgstr ""
|
3276 |
-
|
3277 |
-
#: includes/admin/settings/register-settings.php:257
|
3278 |
msgid "Page Settings"
|
3279 |
msgstr ""
|
3280 |
|
3281 |
-
#: includes/admin/settings/register-settings.php:
|
3282 |
msgid ""
|
3283 |
"Easy Digital Downloads uses the pages below for handling the display of "
|
3284 |
"checkout, purchase confirmation, purchase history, and purchase failures. "
|
@@ -3287,464 +3149,495 @@ msgid ""
|
|
3287 |
"in the page content area."
|
3288 |
msgstr ""
|
3289 |
|
3290 |
-
#: includes/admin/settings/register-settings.php:
|
3291 |
msgid "Checkout Page"
|
3292 |
msgstr ""
|
3293 |
|
3294 |
-
#: includes/admin/settings/register-settings.php:
|
3295 |
msgid ""
|
3296 |
"This is the checkout page where buyers will complete their purchases. The "
|
3297 |
"[download_checkout] shortcode must be on this page."
|
3298 |
msgstr ""
|
3299 |
|
3300 |
-
#: includes/admin/settings/register-settings.php:
|
3301 |
-
#: includes/admin/settings/register-settings.php:
|
3302 |
-
#: includes/admin/settings/register-settings.php:
|
3303 |
-
#: includes/admin/settings/register-settings.php:
|
3304 |
-
#: includes/admin/settings/register-settings.php:
|
3305 |
msgid "Select a page"
|
3306 |
msgstr ""
|
3307 |
|
3308 |
-
#: includes/admin/settings/register-settings.php:
|
3309 |
msgid "Success Page"
|
3310 |
msgstr ""
|
3311 |
|
3312 |
-
#: includes/admin/settings/register-settings.php:
|
3313 |
msgid ""
|
3314 |
"This is the page buyers are sent to after completing their purchases. The "
|
3315 |
"[edd_receipt] shortcode should be on this page."
|
3316 |
msgstr ""
|
3317 |
|
3318 |
-
#: includes/admin/settings/register-settings.php:
|
3319 |
msgid "Failed Transaction Page"
|
3320 |
msgstr ""
|
3321 |
|
3322 |
-
#: includes/admin/settings/register-settings.php:
|
3323 |
msgid ""
|
3324 |
"This is the page buyers are sent to if their transaction is cancelled or "
|
3325 |
"fails."
|
3326 |
msgstr ""
|
3327 |
|
3328 |
-
#: includes/admin/settings/register-settings.php:
|
3329 |
msgid "Purchase History Page"
|
3330 |
msgstr ""
|
3331 |
|
3332 |
-
#: includes/admin/settings/register-settings.php:
|
3333 |
msgid ""
|
3334 |
"This page shows a complete purchase history for the current user, including "
|
3335 |
"download links. The [purchase_history] shortcode should be on this page."
|
3336 |
msgstr ""
|
3337 |
|
3338 |
-
#: includes/admin/settings/register-settings.php:
|
3339 |
msgid "Login Redirect Page"
|
3340 |
msgstr ""
|
3341 |
|
3342 |
-
#: includes/admin/settings/register-settings.php:
|
3343 |
msgid ""
|
3344 |
-
"
|
3345 |
-
"
|
3346 |
-
"
|
3347 |
msgstr ""
|
3348 |
|
3349 |
-
#: includes/admin/settings/register-settings.php:
|
3350 |
msgid "Store Location"
|
3351 |
msgstr ""
|
3352 |
|
3353 |
-
#: includes/admin/settings/register-settings.php:
|
3354 |
msgid "Store Location Settings"
|
3355 |
msgstr ""
|
3356 |
|
3357 |
-
#: includes/admin/settings/register-settings.php:
|
3358 |
msgid ""
|
3359 |
"Easy Digital Downloads will use the following Country and State to pre-fill "
|
3360 |
"fields at checkout. This will also pre-calculate any taxes defined if the "
|
3361 |
"location below has taxes enabled."
|
3362 |
msgstr ""
|
3363 |
|
3364 |
-
#: includes/admin/settings/register-settings.php:
|
3365 |
msgid "Base Country"
|
3366 |
msgstr ""
|
3367 |
|
3368 |
-
#: includes/admin/settings/register-settings.php:
|
3369 |
msgid "Where does your store operate from?"
|
3370 |
msgstr ""
|
3371 |
|
3372 |
-
#: includes/admin/settings/register-settings.php:
|
3373 |
msgid "Base State / Province"
|
3374 |
msgstr ""
|
3375 |
|
3376 |
-
#: includes/admin/settings/register-settings.php:
|
3377 |
msgid "What state / province does your store operate from?"
|
3378 |
msgstr ""
|
3379 |
|
3380 |
-
#: includes/admin/settings/register-settings.php:
|
3381 |
-
msgid "Tracking"
|
3382 |
msgstr ""
|
3383 |
|
3384 |
-
#: includes/admin/settings/register-settings.php:
|
3385 |
msgid "Allow Usage Tracking?"
|
3386 |
msgstr ""
|
3387 |
|
3388 |
-
#: includes/admin/settings/register-settings.php:
|
3389 |
msgid ""
|
3390 |
"Allow Easy Digital Downloads to anonymously track how this plugin is used "
|
3391 |
"and help us make the plugin better. Opt-in to tracking and our newsletter "
|
3392 |
-
"and immediately be emailed a discount to the EDD shop, valid
|
3393 |
-
"href=\"%s\" target=\"_blank\">purchase of extensions</a>. No
|
3394 |
-
"is tracked."
|
3395 |
msgstr ""
|
3396 |
|
3397 |
-
#: includes/admin/settings/register-settings.php:
|
|
|
|
|
|
|
|
|
|
|
3398 |
msgid ""
|
3399 |
"Choose your currency. Note that some payment gateways have currency "
|
3400 |
"restrictions."
|
3401 |
msgstr ""
|
3402 |
|
3403 |
-
#: includes/admin/settings/register-settings.php:
|
3404 |
msgid "Currency Position"
|
3405 |
msgstr ""
|
3406 |
|
3407 |
-
#: includes/admin/settings/register-settings.php:
|
3408 |
msgid "Choose the location of the currency sign."
|
3409 |
msgstr ""
|
3410 |
|
3411 |
-
#: includes/admin/settings/register-settings.php:
|
3412 |
msgid "Before - $10"
|
3413 |
msgstr ""
|
3414 |
|
3415 |
-
#: includes/admin/settings/register-settings.php:
|
3416 |
msgid "After - 10$"
|
3417 |
msgstr ""
|
3418 |
|
3419 |
-
#: includes/admin/settings/register-settings.php:
|
3420 |
msgid "Thousands Separator"
|
3421 |
msgstr ""
|
3422 |
|
3423 |
-
#: includes/admin/settings/register-settings.php:
|
3424 |
-
msgid "The symbol (usually , or .) to separate thousands
|
3425 |
msgstr ""
|
3426 |
|
3427 |
-
#: includes/admin/settings/register-settings.php:
|
3428 |
msgid "Decimal Separator"
|
3429 |
msgstr ""
|
3430 |
|
3431 |
-
#: includes/admin/settings/register-settings.php:
|
3432 |
-
msgid "The symbol (usually , or .) to separate decimal points
|
3433 |
-
msgstr ""
|
3434 |
-
|
3435 |
-
#: includes/admin/settings/register-settings.php:388
|
3436 |
-
#: includes/admin/settings/register-settings.php:1270
|
3437 |
-
msgid "API"
|
3438 |
msgstr ""
|
3439 |
|
3440 |
-
#: includes/admin/settings/register-settings.php:
|
|
|
|
|
3441 |
msgid "API Settings"
|
3442 |
msgstr ""
|
3443 |
|
3444 |
-
#: includes/admin/settings/register-settings.php:
|
3445 |
msgid ""
|
3446 |
"The Easy Digital Downloads REST API provides access to store data through "
|
3447 |
"our API endpoints. Enable this setting if you would like all user accounts "
|
3448 |
"to be able to generate their own API keys."
|
3449 |
msgstr ""
|
3450 |
|
3451 |
-
#: includes/admin/settings/register-settings.php:
|
3452 |
msgid "Allow User Keys"
|
3453 |
msgstr ""
|
3454 |
|
3455 |
-
#: includes/admin/settings/register-settings.php:
|
3456 |
msgid ""
|
3457 |
"Check this box to allow all users to generate API keys. Users with the "
|
3458 |
"'manage_shop_settings' capability are always allowed to generate keys."
|
3459 |
msgstr ""
|
3460 |
|
3461 |
-
#: includes/admin/settings/register-settings.php:
|
3462 |
msgid ""
|
3463 |
"Visit the <a href=\"%s\" target=\"_blank\">REST API documentation</a> for "
|
3464 |
"further information."
|
3465 |
msgstr ""
|
3466 |
|
3467 |
-
#: includes/admin/settings/register-settings.php:
|
|
|
|
|
|
|
|
|
|
|
3468 |
msgid "Test Mode"
|
3469 |
msgstr ""
|
3470 |
|
3471 |
-
#: includes/admin/settings/register-settings.php:
|
3472 |
msgid ""
|
3473 |
"While in test mode no live transactions are processed. To fully use test "
|
3474 |
"mode, you must have a sandbox (test) account for the payment gateway you "
|
3475 |
"are testing."
|
3476 |
msgstr ""
|
3477 |
|
3478 |
-
#: includes/admin/settings/register-settings.php:
|
3479 |
msgid "Choose the payment gateways you want to enable."
|
3480 |
msgstr ""
|
3481 |
|
3482 |
-
#: includes/admin/settings/register-settings.php:
|
3483 |
msgid "Default Gateway"
|
3484 |
msgstr ""
|
3485 |
|
3486 |
-
#: includes/admin/settings/register-settings.php:
|
3487 |
msgid "This gateway will be loaded automatically with the checkout page."
|
3488 |
msgstr ""
|
3489 |
|
3490 |
-
#: includes/admin/settings/register-settings.php:
|
3491 |
msgid "Accepted Payment Method Icons"
|
3492 |
msgstr ""
|
3493 |
|
3494 |
-
#: includes/admin/settings/register-settings.php:
|
3495 |
-
msgid "Display icons for the selected payment methods
|
3496 |
msgstr ""
|
3497 |
|
3498 |
-
#: includes/admin/settings/register-settings.php:
|
3499 |
msgid ""
|
3500 |
"You will also need to configure your gateway settings if you are accepting "
|
3501 |
-
"credit cards
|
|
|
|
|
|
|
|
|
|
|
3502 |
msgstr ""
|
3503 |
|
3504 |
-
#: includes/admin/settings/register-settings.php:
|
3505 |
msgid "Email Template"
|
3506 |
msgstr ""
|
3507 |
|
3508 |
-
#: includes/admin/settings/register-settings.php:
|
3509 |
msgid ""
|
3510 |
"Choose a template. Click \"Save Changes\" then \"Preview Purchase Receipt\" "
|
3511 |
"to see the new template."
|
3512 |
msgstr ""
|
3513 |
|
3514 |
-
#: includes/admin/settings/register-settings.php:
|
3515 |
msgid "Logo"
|
3516 |
msgstr ""
|
3517 |
|
3518 |
-
#: includes/admin/settings/register-settings.php:
|
3519 |
msgid ""
|
3520 |
"Upload or choose a logo to be displayed at the top of the purchase receipt "
|
3521 |
"emails. Displayed on HTML emails only."
|
3522 |
msgstr ""
|
3523 |
|
3524 |
-
#: includes/admin/settings/register-settings.php:
|
|
|
|
|
|
|
|
|
|
|
3525 |
msgid "From Name"
|
3526 |
msgstr ""
|
3527 |
|
3528 |
-
#: includes/admin/settings/register-settings.php:
|
3529 |
msgid ""
|
3530 |
"The name purchase receipts are said to come from. This should probably be "
|
3531 |
"your site or shop name."
|
3532 |
msgstr ""
|
3533 |
|
3534 |
-
#: includes/admin/settings/register-settings.php:
|
3535 |
msgid "From Email"
|
3536 |
msgstr ""
|
3537 |
|
3538 |
-
#: includes/admin/settings/register-settings.php:
|
3539 |
msgid ""
|
3540 |
"Email to send purchase receipts from. This will act as the \"from\" and "
|
3541 |
"\"reply-to\" address."
|
3542 |
msgstr ""
|
3543 |
|
3544 |
-
#: includes/admin/settings/register-settings.php:
|
3545 |
msgid "Purchase Email Subject"
|
3546 |
msgstr ""
|
3547 |
|
3548 |
-
#: includes/admin/settings/register-settings.php:
|
3549 |
-
msgid "Enter the subject line for the purchase receipt email
|
3550 |
msgstr ""
|
3551 |
|
3552 |
-
#: includes/admin/settings/register-settings.php:
|
3553 |
-
#: includes/admin/settings/register-settings.php:
|
3554 |
-
#: includes/admin/settings/register-settings.php:
|
3555 |
-
#: includes/emails/functions.php:
|
3556 |
-
#: includes/emails/functions.php:
|
3557 |
#: includes/emails/template.php:141
|
3558 |
msgid "Purchase Receipt"
|
3559 |
msgstr ""
|
3560 |
|
3561 |
-
#: includes/admin/settings/register-settings.php:
|
3562 |
msgid "Purchase Email Heading"
|
3563 |
msgstr ""
|
3564 |
|
3565 |
-
#: includes/admin/settings/register-settings.php:
|
3566 |
-
msgid "Enter the heading for the purchase receipt email
|
3567 |
msgstr ""
|
3568 |
|
3569 |
-
#: includes/admin/settings/register-settings.php:
|
3570 |
msgid ""
|
3571 |
"Enter the text that is sent as purchase receipt email to users after "
|
3572 |
"completion of a successful purchase. HTML is accepted. Available template "
|
3573 |
"tags:"
|
3574 |
msgstr ""
|
3575 |
|
3576 |
-
#: includes/admin/settings/register-settings.php:
|
3577 |
#: includes/emails/template.php:159
|
3578 |
msgid "Dear"
|
3579 |
msgstr ""
|
3580 |
|
3581 |
-
#: includes/admin/settings/register-settings.php:
|
3582 |
#: includes/emails/template.php:160
|
3583 |
msgid ""
|
3584 |
"Thank you for your purchase. Please click on the link(s) below to download "
|
3585 |
"your files."
|
3586 |
msgstr ""
|
3587 |
|
3588 |
-
#: includes/admin/settings/register-settings.php:
|
|
|
|
|
|
|
|
|
3589 |
msgid "Sale Notification Subject"
|
3590 |
msgstr ""
|
3591 |
|
3592 |
-
#: includes/admin/settings/register-settings.php:
|
3593 |
-
msgid "Enter the subject line for the sale notification email
|
3594 |
msgstr ""
|
3595 |
|
3596 |
-
#: includes/admin/settings/register-settings.php:
|
3597 |
msgid "Sale Notification"
|
3598 |
msgstr ""
|
3599 |
|
3600 |
-
#: includes/admin/settings/register-settings.php:
|
3601 |
msgid ""
|
3602 |
"Enter the text that is sent as sale notification email after completion of "
|
3603 |
"a purchase. HTML is accepted. Available template tags:"
|
3604 |
msgstr ""
|
3605 |
|
3606 |
-
#: includes/admin/settings/register-settings.php:
|
3607 |
msgid "Sale Notification Emails"
|
3608 |
msgstr ""
|
3609 |
|
3610 |
-
#: includes/admin/settings/register-settings.php:
|
3611 |
msgid ""
|
3612 |
"Enter the email address(es) that should receive a notification anytime a "
|
3613 |
-
"sale is made, one per line
|
3614 |
msgstr ""
|
3615 |
|
3616 |
-
#: includes/admin/settings/register-settings.php:
|
3617 |
msgid "Disable Admin Notifications"
|
3618 |
msgstr ""
|
3619 |
|
3620 |
-
#: includes/admin/settings/register-settings.php:
|
3621 |
msgid "Check this box if you do not want to receive sales notification emails."
|
3622 |
msgstr ""
|
3623 |
|
3624 |
-
#: includes/admin/settings/register-settings.php:
|
|
|
|
|
|
|
|
|
|
|
3625 |
msgid "Disable Styles"
|
3626 |
msgstr ""
|
3627 |
|
3628 |
-
#: includes/admin/settings/register-settings.php:
|
3629 |
msgid ""
|
3630 |
"Check this to disable all included styling of buttons, checkout fields, and "
|
3631 |
"all other elements."
|
3632 |
msgstr ""
|
3633 |
|
3634 |
-
#: includes/admin/settings/register-settings.php:
|
3635 |
msgid "Disabling Styles"
|
3636 |
msgstr ""
|
3637 |
|
3638 |
-
#: includes/admin/settings/register-settings.php:
|
3639 |
msgid ""
|
3640 |
"If your theme has a complete custom CSS file for Easy Digital Downloads, "
|
3641 |
"you may wish to disable our default styles. This is not recommended unless "
|
3642 |
-
"
|
3643 |
msgstr ""
|
3644 |
|
3645 |
-
#: includes/admin/settings/register-settings.php:
|
3646 |
msgid "Buttons"
|
3647 |
msgstr ""
|
3648 |
|
3649 |
-
#: includes/admin/settings/register-settings.php:
|
3650 |
msgid "Options for add to cart and purchase buttons"
|
3651 |
msgstr ""
|
3652 |
|
3653 |
-
#: includes/admin/settings/register-settings.php:
|
3654 |
msgid "Default Button Style"
|
3655 |
msgstr ""
|
3656 |
|
3657 |
-
#: includes/admin/settings/register-settings.php:
|
3658 |
msgid "Choose the style you want to use for the buttons."
|
3659 |
msgstr ""
|
3660 |
|
3661 |
-
#: includes/admin/settings/register-settings.php:
|
3662 |
msgid "Default Button Color"
|
3663 |
msgstr ""
|
3664 |
|
3665 |
-
#: includes/admin/settings/register-settings.php:
|
3666 |
msgid "Choose the color you want to use for the buttons."
|
3667 |
msgstr ""
|
3668 |
|
3669 |
-
#: includes/admin/settings/register-settings.php:
|
|
|
|
|
|
|
|
|
|
|
3670 |
msgid "Need help?"
|
3671 |
msgstr ""
|
3672 |
|
3673 |
-
#: includes/admin/settings/register-settings.php:
|
3674 |
msgid ""
|
3675 |
"Visit the <a href=\"%s\" target=\"_blank\">Tax setup documentation</a> for "
|
3676 |
"further information. If you need VAT support, there are options listed on "
|
3677 |
"the documentation page."
|
3678 |
msgstr ""
|
3679 |
|
3680 |
-
#: includes/admin/settings/register-settings.php:
|
3681 |
msgid "Enable Taxes"
|
3682 |
msgstr ""
|
3683 |
|
3684 |
-
#: includes/admin/settings/register-settings.php:
|
3685 |
msgid "Check this to enable taxes on purchases."
|
3686 |
msgstr ""
|
3687 |
|
3688 |
-
#: includes/admin/settings/register-settings.php:
|
3689 |
msgid "Enabling Taxes"
|
3690 |
msgstr ""
|
3691 |
|
3692 |
-
#: includes/admin/settings/register-settings.php:
|
3693 |
msgid ""
|
3694 |
"With taxes enabled, Easy Digital Downloads will use the rules below to "
|
3695 |
"charge tax to customers. With taxes enabled, customers are required to "
|
3696 |
"input their address on checkout so that taxes can be properly calculated."
|
3697 |
msgstr ""
|
3698 |
|
3699 |
-
#: includes/admin/settings/register-settings.php:
|
3700 |
msgid "Tax Rates"
|
3701 |
msgstr ""
|
3702 |
|
3703 |
-
#: includes/admin/settings/register-settings.php:
|
3704 |
msgid ""
|
3705 |
"Add tax rates for specific regions. Enter a percentage, such as 6.5 for "
|
3706 |
"6.5%."
|
3707 |
msgstr ""
|
3708 |
|
3709 |
-
#: includes/admin/settings/register-settings.php:
|
3710 |
-
#: includes/admin/settings/register-settings.php:
|
3711 |
msgid "Fallback Tax Rate"
|
3712 |
msgstr ""
|
3713 |
|
3714 |
-
#: includes/admin/settings/register-settings.php:
|
3715 |
msgid ""
|
3716 |
"Customers not in a specific rate will be charged this tax rate. Enter a "
|
3717 |
"percentage, such as 6.5 for 6.5%. "
|
3718 |
msgstr ""
|
3719 |
|
3720 |
-
#: includes/admin/settings/register-settings.php:
|
3721 |
msgid ""
|
3722 |
"If the customer's address fails to meet the above tax rules, you can define "
|
3723 |
"a `default` tax rate to be applied to all other customers. Enter a "
|
3724 |
"percentage, such as 6.5 for 6.5%."
|
3725 |
msgstr ""
|
3726 |
|
3727 |
-
#: includes/admin/settings/register-settings.php:
|
3728 |
msgid "Prices entered with tax"
|
3729 |
msgstr ""
|
3730 |
|
3731 |
-
#: includes/admin/settings/register-settings.php:
|
3732 |
msgid "This option affects how you enter prices."
|
3733 |
msgstr ""
|
3734 |
|
3735 |
-
#: includes/admin/settings/register-settings.php:
|
3736 |
msgid "Yes, I will enter prices inclusive of tax"
|
3737 |
msgstr ""
|
3738 |
|
3739 |
-
#: includes/admin/settings/register-settings.php:
|
3740 |
msgid "No, I will enter prices exclusive of tax"
|
3741 |
msgstr ""
|
3742 |
|
3743 |
-
#: includes/admin/settings/register-settings.php:
|
3744 |
msgid "Prices Inclusive of Tax"
|
3745 |
msgstr ""
|
3746 |
|
3747 |
-
#: includes/admin/settings/register-settings.php:
|
3748 |
msgid ""
|
3749 |
"When using prices inclusive of tax, you will be entering your prices as the "
|
3750 |
"total amount you want a customer to pay for the download, including tax. "
|
@@ -3752,207 +3645,201 @@ msgid ""
|
|
3752 |
"for the defined total price."
|
3753 |
msgstr ""
|
3754 |
|
3755 |
-
#: includes/admin/settings/register-settings.php:
|
3756 |
msgid "Display Tax Rate on Prices"
|
3757 |
msgstr ""
|
3758 |
|
3759 |
-
#: includes/admin/settings/register-settings.php:
|
3760 |
msgid "Some countries require a notice when product prices include tax."
|
3761 |
msgstr ""
|
3762 |
|
3763 |
-
#: includes/admin/settings/register-settings.php:
|
3764 |
msgid "Display during checkout"
|
3765 |
msgstr ""
|
3766 |
|
3767 |
-
#: includes/admin/settings/register-settings.php:
|
3768 |
msgid "Should prices on the checkout page be shown with or without tax?"
|
3769 |
msgstr ""
|
3770 |
|
3771 |
-
#: includes/admin/settings/register-settings.php:
|
3772 |
msgid "Including tax"
|
3773 |
msgstr ""
|
3774 |
|
3775 |
-
#: includes/admin/settings/register-settings.php:
|
3776 |
msgid "Excluding tax"
|
3777 |
msgstr ""
|
3778 |
|
3779 |
-
#: includes/admin/settings/register-settings.php:
|
3780 |
msgid "Taxes Displayed for Products on Checkout"
|
3781 |
msgstr ""
|
3782 |
|
3783 |
-
#: includes/admin/settings/register-settings.php:
|
3784 |
msgid ""
|
3785 |
"This option will determine whether the product price displays with or "
|
3786 |
"without tax on checkout."
|
3787 |
msgstr ""
|
3788 |
|
3789 |
-
#: includes/admin/settings/register-settings.php:
|
3790 |
-
#: includes/admin/settings/register-settings.php:
|
|
|
|
|
|
|
|
|
|
|
3791 |
msgid "Redirect to Checkout"
|
3792 |
msgstr ""
|
3793 |
|
3794 |
-
#: includes/admin/settings/register-settings.php:
|
3795 |
msgid "Immediately redirect to checkout after adding an item to the cart?"
|
3796 |
msgstr ""
|
3797 |
|
3798 |
-
#: includes/admin/settings/register-settings.php:
|
3799 |
msgid ""
|
3800 |
"When enabled, once an item has been added to the cart, the customer will be "
|
3801 |
"redirected directly to your checkout page. This is useful for stores that "
|
3802 |
"sell single items."
|
3803 |
msgstr ""
|
3804 |
|
3805 |
-
#: includes/admin/settings/register-settings.php:
|
3806 |
-
msgid "
|
3807 |
-
msgstr ""
|
3808 |
-
|
3809 |
-
#: includes/admin/settings/register-settings.php:672
|
3810 |
-
msgid ""
|
3811 |
-
"Allow quantities to be adjusted when adding %s to the cart, and while "
|
3812 |
-
"viewing the checkout cart."
|
3813 |
-
msgstr ""
|
3814 |
-
|
3815 |
-
#: includes/admin/settings/register-settings.php:677
|
3816 |
-
msgid "Debug Mode"
|
3817 |
msgstr ""
|
3818 |
|
3819 |
-
#: includes/admin/settings/register-settings.php:
|
3820 |
-
msgid ""
|
3821 |
-
"Check this box to enable debug mode. When enabled, debug messages will be "
|
3822 |
-
"logged and shown in Downloads → Tools → Debug Log."
|
3823 |
msgstr ""
|
3824 |
|
3825 |
-
#: includes/admin/settings/register-settings.php:
|
3826 |
msgid "Remove Data on Uninstall?"
|
3827 |
msgstr ""
|
3828 |
|
3829 |
-
#: includes/admin/settings/register-settings.php:
|
3830 |
msgid ""
|
3831 |
"Check this box if you would like EDD to completely remove all of its data "
|
3832 |
"when the plugin is deleted."
|
3833 |
msgstr ""
|
3834 |
|
3835 |
-
#: includes/admin/settings/register-settings.php:
|
|
|
|
|
|
|
|
|
|
|
3836 |
msgid "Enforce SSL on Checkout"
|
3837 |
msgstr ""
|
3838 |
|
3839 |
-
#: includes/admin/settings/register-settings.php:
|
3840 |
msgid ""
|
3841 |
"Check this to force users to be redirected to the secure checkout page. You "
|
3842 |
"must have an SSL certificate installed to use this option."
|
3843 |
msgstr ""
|
3844 |
|
3845 |
-
#: includes/admin/settings/register-settings.php:
|
3846 |
-
#: includes/admin/settings/register-settings.php:
|
3847 |
msgid "Require Login"
|
3848 |
msgstr ""
|
3849 |
|
3850 |
-
#: includes/admin/settings/register-settings.php:
|
3851 |
msgid "Require that users be logged-in to purchase files."
|
3852 |
msgstr ""
|
3853 |
|
3854 |
-
#: includes/admin/settings/register-settings.php:
|
3855 |
msgid ""
|
3856 |
"You can require that customers create and login to user accounts prior to "
|
3857 |
"purchasing from your store by enabling this option. When unchecked, users "
|
3858 |
"can purchase without being logged in by using their name and email address."
|
3859 |
msgstr ""
|
3860 |
|
3861 |
-
#: includes/admin/settings/register-settings.php:
|
3862 |
msgid "Show Register / Login Form?"
|
3863 |
msgstr ""
|
3864 |
|
3865 |
-
#: includes/admin/settings/register-settings.php:
|
3866 |
msgid ""
|
3867 |
"Display the registration and login forms on the checkout page for "
|
3868 |
"non-logged-in users."
|
3869 |
msgstr ""
|
3870 |
|
3871 |
-
#: includes/admin/settings/register-settings.php:
|
3872 |
msgid "Registration and Login Forms"
|
3873 |
msgstr ""
|
3874 |
|
3875 |
-
#: includes/admin/settings/register-settings.php:
|
3876 |
msgid "Registration Form Only"
|
3877 |
msgstr ""
|
3878 |
|
3879 |
-
#: includes/admin/settings/register-settings.php:
|
3880 |
msgid "Login Form Only"
|
3881 |
msgstr ""
|
3882 |
|
3883 |
-
#: includes/admin/settings/register-settings.php:
|
3884 |
msgid "Multiple Discounts"
|
3885 |
msgstr ""
|
3886 |
|
3887 |
-
#: includes/admin/settings/register-settings.php:
|
3888 |
msgid "Allow customers to use multiple discounts on the same purchase?"
|
3889 |
msgstr ""
|
3890 |
|
3891 |
-
#: includes/admin/settings/register-settings.php:
|
3892 |
msgid "Enable Cart Saving"
|
3893 |
msgstr ""
|
3894 |
|
3895 |
-
#: includes/admin/settings/register-settings.php:
|
3896 |
msgid "Check this to enable cart saving on the checkout."
|
3897 |
msgstr ""
|
3898 |
|
3899 |
-
#: includes/admin/settings/register-settings.php:
|
3900 |
msgid "Cart Saving"
|
3901 |
msgstr ""
|
3902 |
|
3903 |
-
#: includes/admin/settings/register-settings.php:
|
3904 |
msgid ""
|
3905 |
"Cart saving allows shoppers to create a temporary link to their current "
|
3906 |
"shopping cart so they can come back to it later, or share it with someone."
|
3907 |
msgstr ""
|
3908 |
|
3909 |
-
#: includes/admin/settings/register-settings.php:
|
3910 |
-
|
3911 |
-
|
3912 |
-
|
3913 |
-
#: includes/admin/settings/register-settings.php:735
|
3914 |
-
msgid "The button label for completing a purchase."
|
3915 |
-
msgstr ""
|
3916 |
-
|
3917 |
-
#: includes/admin/settings/register-settings.php:741
|
3918 |
-
msgid "Register Text"
|
3919 |
msgstr ""
|
3920 |
|
3921 |
-
#: includes/admin/settings/register-settings.php:
|
3922 |
-
msgid "
|
3923 |
msgstr ""
|
3924 |
|
3925 |
-
#: includes/admin/settings/register-settings.php:
|
3926 |
-
|
3927 |
-
msgid "Free Download"
|
3928 |
msgstr ""
|
3929 |
|
3930 |
-
#: includes/admin/settings/register-settings.php:
|
3931 |
msgid "Add to Cart Text"
|
3932 |
msgstr ""
|
3933 |
|
3934 |
-
#: includes/admin/settings/register-settings.php:
|
3935 |
msgid "Text shown on the Add to Cart Buttons."
|
3936 |
msgstr ""
|
3937 |
|
3938 |
-
#: includes/admin/settings/register-settings.php:
|
3939 |
msgid "Buy Now Text"
|
3940 |
msgstr ""
|
3941 |
|
3942 |
-
#: includes/admin/settings/register-settings.php:
|
3943 |
msgid "Text shown on the Buy Now Buttons."
|
3944 |
msgstr ""
|
3945 |
|
3946 |
-
#: includes/admin/settings/register-settings.php:
|
3947 |
-
|
|
|
|
|
|
|
|
|
3948 |
msgid "Download Method"
|
3949 |
msgstr ""
|
3950 |
|
3951 |
-
#: includes/admin/settings/register-settings.php:
|
3952 |
msgid "Select the file download method. Note, not all methods work on all servers."
|
3953 |
msgstr ""
|
3954 |
|
3955 |
-
#: includes/admin/settings/register-settings.php:
|
3956 |
msgid ""
|
3957 |
"Due to its consistency in multiple platforms and better file protection, "
|
3958 |
"'forced' is the default method. Because Easy Digital Downloads uses PHP to "
|
@@ -3963,35 +3850,35 @@ msgid ""
|
|
3963 |
"method can help resolve this."
|
3964 |
msgstr ""
|
3965 |
|
3966 |
-
#: includes/admin/settings/register-settings.php:
|
3967 |
msgid "Forced"
|
3968 |
msgstr ""
|
3969 |
|
3970 |
-
#: includes/admin/settings/register-settings.php:
|
3971 |
msgid "Redirect"
|
3972 |
msgstr ""
|
3973 |
|
3974 |
-
#: includes/admin/settings/register-settings.php:
|
3975 |
msgid "Symlink File Downloads?"
|
3976 |
msgstr ""
|
3977 |
|
3978 |
-
#: includes/admin/settings/register-settings.php:
|
3979 |
msgid ""
|
3980 |
"Check this if you are delivering really large files or having problems with "
|
3981 |
"file downloads completing."
|
3982 |
msgstr ""
|
3983 |
|
3984 |
-
#: includes/admin/settings/register-settings.php:
|
3985 |
msgid ""
|
3986 |
"The maximum number of times files can be downloaded for purchases. Can be "
|
3987 |
"overwritten for each %s."
|
3988 |
msgstr ""
|
3989 |
|
3990 |
-
#: includes/admin/settings/register-settings.php:
|
3991 |
msgid "File Download Limits"
|
3992 |
msgstr ""
|
3993 |
|
3994 |
-
#: includes/admin/settings/register-settings.php:
|
3995 |
msgid ""
|
3996 |
"Set the global default for the number of times a customer can download "
|
3997 |
"items they purchase. Using a value of 0 is unlimited. This can be defined "
|
@@ -3999,18 +3886,18 @@ msgid ""
|
|
3999 |
"individual purchase."
|
4000 |
msgstr ""
|
4001 |
|
4002 |
-
#: includes/admin/settings/register-settings.php:
|
4003 |
-
#: includes/admin/settings/register-settings.php:
|
4004 |
msgid "Download Link Expiration"
|
4005 |
msgstr ""
|
4006 |
|
4007 |
-
#: includes/admin/settings/register-settings.php:
|
4008 |
msgid ""
|
4009 |
"How long should download links be valid for? Default is 24 hours from the "
|
4010 |
"time they are generated. Enter a time in hours."
|
4011 |
msgstr ""
|
4012 |
|
4013 |
-
#: includes/admin/settings/register-settings.php:
|
4014 |
msgid ""
|
4015 |
"When a customer receives a link to their downloads via email, in their "
|
4016 |
"receipt, or in their purchase history, the link will only be valid for the "
|
@@ -4019,303 +3906,288 @@ msgid ""
|
|
4019 |
"customer."
|
4020 |
msgstr ""
|
4021 |
|
4022 |
-
#: includes/admin/settings/register-settings.php:
|
4023 |
msgid "Disable Redownload?"
|
4024 |
msgstr ""
|
4025 |
|
4026 |
-
#: includes/admin/settings/register-settings.php:
|
4027 |
msgid ""
|
4028 |
"Check this if you do not want to allow users to redownload items from their "
|
4029 |
"purchase history."
|
4030 |
msgstr ""
|
4031 |
|
4032 |
-
#: includes/admin/settings/register-settings.php:
|
|
|
|
|
|
|
|
|
|
|
4033 |
msgid "Enable SKU Entry"
|
4034 |
msgstr ""
|
4035 |
|
4036 |
-
#: includes/admin/settings/register-settings.php:
|
4037 |
msgid ""
|
4038 |
"Check this box to allow entry of product SKUs. SKUs will be shown on "
|
4039 |
"purchase receipt and exported purchase histories."
|
4040 |
msgstr ""
|
4041 |
|
4042 |
-
#: includes/admin/settings/register-settings.php:
|
4043 |
msgid "Sequential Order Numbers"
|
4044 |
msgstr ""
|
4045 |
|
4046 |
-
#: includes/admin/settings/register-settings.php:
|
4047 |
msgid "Check this box to enable sequential order numbers."
|
4048 |
msgstr ""
|
4049 |
|
4050 |
-
#: includes/admin/settings/register-settings.php:
|
4051 |
msgid "Sequential Starting Number"
|
4052 |
msgstr ""
|
4053 |
|
4054 |
-
#: includes/admin/settings/register-settings.php:
|
4055 |
msgid "The number at which the sequence should begin."
|
4056 |
msgstr ""
|
4057 |
|
4058 |
-
#: includes/admin/settings/register-settings.php:
|
4059 |
msgid "Sequential Number Prefix"
|
4060 |
msgstr ""
|
4061 |
|
4062 |
-
#: includes/admin/settings/register-settings.php:
|
4063 |
msgid "A prefix to prepend to all sequential order numbers."
|
4064 |
msgstr ""
|
4065 |
|
4066 |
-
#: includes/admin/settings/register-settings.php:
|
4067 |
msgid "Sequential Number Postfix"
|
4068 |
msgstr ""
|
4069 |
|
4070 |
-
#: includes/admin/settings/register-settings.php:
|
4071 |
msgid "A postfix to append to all sequential order numbers."
|
4072 |
msgstr ""
|
4073 |
|
4074 |
-
#: includes/admin/settings/register-settings.php:
|
|
|
|
|
|
|
|
|
4075 |
msgid "Agree to Terms"
|
4076 |
msgstr ""
|
4077 |
|
4078 |
-
#: includes/admin/settings/register-settings.php:
|
4079 |
msgid ""
|
4080 |
"Check this to show an agree to terms on the checkout that users must agree "
|
4081 |
"to before purchasing."
|
4082 |
msgstr ""
|
4083 |
|
4084 |
-
#: includes/admin/settings/register-settings.php:
|
4085 |
msgid "Agree to Terms Label"
|
4086 |
msgstr ""
|
4087 |
|
4088 |
-
#: includes/admin/settings/register-settings.php:
|
4089 |
msgid "Label shown next to the agree to terms check box."
|
4090 |
msgstr ""
|
4091 |
|
4092 |
-
#: includes/admin/settings/register-settings.php:
|
4093 |
msgid "Agreement Text"
|
4094 |
msgstr ""
|
4095 |
|
4096 |
-
#: includes/admin/settings/register-settings.php:
|
4097 |
msgid "If Agree to Terms is checked, enter the agreement terms here."
|
4098 |
msgstr ""
|
4099 |
|
4100 |
-
#: includes/admin/settings/register-settings.php:
|
4101 |
msgid "Buy Now Disabled"
|
4102 |
msgstr ""
|
4103 |
|
4104 |
-
#: includes/admin/settings/register-settings.php:
|
4105 |
msgid ""
|
4106 |
"Buy Now buttons are only available for stores that have a single supported "
|
4107 |
"gateway active and that do not use taxes."
|
4108 |
msgstr ""
|
4109 |
|
4110 |
-
#: includes/admin/settings/register-settings.php:
|
4111 |
msgid "Settings updated."
|
4112 |
msgstr ""
|
4113 |
|
4114 |
-
#: includes/admin/settings/register-settings.php:
|
4115 |
msgid "Error setting default gateway. No gateways are enabled."
|
4116 |
msgstr ""
|
4117 |
|
4118 |
-
#: includes/admin/settings/register-settings.php:
|
4119 |
msgid "%s could not be set as the default gateway. It must first be enabled."
|
4120 |
msgstr ""
|
4121 |
|
4122 |
-
#: includes/admin/settings/register-settings.php:
|
4123 |
msgid "Licenses"
|
4124 |
msgstr ""
|
4125 |
|
4126 |
-
#: includes/admin/settings/register-settings.php:
|
4127 |
msgid "Misc"
|
4128 |
msgstr ""
|
4129 |
|
4130 |
-
#: includes/admin/settings/register-settings.php:
|
4131 |
#: includes/gateways/functions.php:25 includes/gateways/paypal-standard.php:33
|
4132 |
msgid "PayPal Standard"
|
4133 |
msgstr ""
|
4134 |
|
4135 |
-
#: includes/admin/settings/register-settings.php:
|
4136 |
-
msgid "Purchase Receipts"
|
4137 |
-
msgstr ""
|
4138 |
-
|
4139 |
-
#: includes/admin/settings/register-settings.php:1279
|
4140 |
msgid "New Sale Notifications"
|
4141 |
msgstr ""
|
4142 |
|
4143 |
-
#: includes/admin/settings/register-settings.php:
|
4144 |
msgid "Main"
|
4145 |
msgstr ""
|
4146 |
|
4147 |
-
#: includes/admin/settings/register-settings.php:
|
4148 |
-
#: includes/template-functions.php:191 templates/widget-cart-checkout.php:6
|
4149 |
-
#: templates/widget-cart-empty.php:7
|
4150 |
-
msgid "Checkout"
|
4151 |
-
msgstr ""
|
4152 |
-
|
4153 |
-
#: includes/admin/settings/register-settings.php:1294
|
4154 |
-
msgid "Button Text"
|
4155 |
-
msgstr ""
|
4156 |
-
|
4157 |
-
#: includes/admin/settings/register-settings.php:1296
|
4158 |
-
msgid "Accounting"
|
4159 |
-
msgstr ""
|
4160 |
-
|
4161 |
-
#: includes/admin/settings/register-settings.php:1297
|
4162 |
msgid "Terms of Agreement"
|
4163 |
msgstr ""
|
4164 |
|
4165 |
-
#: includes/admin/settings/register-settings.php:
|
4166 |
-
msgid ""
|
4167 |
-
"Don't see what you need? More Payment Gateway options are available <a "
|
4168 |
-
"href=\"%s\">here</a>."
|
4169 |
-
msgstr ""
|
4170 |
-
|
4171 |
-
#: includes/admin/settings/register-settings.php:1760
|
4172 |
msgid "The callback function used for the %s setting is missing."
|
4173 |
msgstr ""
|
4174 |
|
4175 |
-
#: includes/admin/settings/register-settings.php:
|
4176 |
msgid "Upload File"
|
4177 |
msgstr ""
|
4178 |
|
4179 |
-
#: includes/admin/settings/register-settings.php:
|
4180 |
msgid "Country Wide"
|
4181 |
msgstr ""
|
4182 |
|
4183 |
-
#: includes/admin/settings/register-settings.php:
|
4184 |
msgid "Rate"
|
4185 |
msgstr ""
|
4186 |
|
4187 |
-
#: includes/admin/settings/register-settings.php:
|
4188 |
msgid ""
|
4189 |
"<strong>Regional tax rates: </strong>When a customer enters an address on "
|
4190 |
"checkout that matches the specified region for this tax rate, the cart tax "
|
4191 |
"will adjust automatically. Enter a percentage, such as 6.5 for 6.5%."
|
4192 |
msgstr ""
|
4193 |
|
4194 |
-
#: includes/admin/settings/register-settings.php:
|
4195 |
-
#: includes/admin/settings/register-settings.php:
|
4196 |
msgid "Choose a country"
|
4197 |
msgstr ""
|
4198 |
|
4199 |
-
#: includes/admin/settings/register-settings.php:
|
4200 |
msgid "Choose a state"
|
4201 |
msgstr ""
|
4202 |
|
4203 |
-
#: includes/admin/settings/register-settings.php:
|
4204 |
-
#: includes/admin/settings/register-settings.php:
|
4205 |
msgid "Apply to whole country"
|
4206 |
msgstr ""
|
4207 |
|
4208 |
-
#: includes/admin/settings/register-settings.php:
|
4209 |
-
#: includes/admin/settings/register-settings.php:
|
4210 |
msgid "Remove Rate"
|
4211 |
msgstr ""
|
4212 |
|
4213 |
-
#: includes/admin/settings/register-settings.php:
|
4214 |
msgid "Add Tax Rate"
|
4215 |
msgstr ""
|
4216 |
|
4217 |
-
#: includes/admin/settings/register-settings.php:
|
4218 |
msgid ""
|
4219 |
"Your license key expired on %s. Please <a href=\"%s\" "
|
4220 |
"target=\"_blank\">renew your license key</a>."
|
4221 |
msgstr ""
|
4222 |
|
4223 |
-
#: includes/admin/settings/register-settings.php:
|
4224 |
msgid ""
|
4225 |
"Your license key has been disabled. Please <a href=\"%s\" "
|
4226 |
"target=\"_blank\">contact support</a> for more information."
|
4227 |
msgstr ""
|
4228 |
|
4229 |
-
#: includes/admin/settings/register-settings.php:
|
4230 |
msgid ""
|
4231 |
"Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account "
|
4232 |
"page</a> and verify it."
|
4233 |
msgstr ""
|
4234 |
|
4235 |
-
#: includes/admin/settings/register-settings.php:
|
4236 |
msgid ""
|
4237 |
"Your %s is not active for this URL. Please <a href=\"%s\" "
|
4238 |
"target=\"_blank\">visit your account page</a> to manage your license key "
|
4239 |
"URLs."
|
4240 |
msgstr ""
|
4241 |
|
4242 |
-
#: includes/admin/settings/register-settings.php:
|
4243 |
msgid "This appears to be an invalid license key for %s."
|
4244 |
msgstr ""
|
4245 |
|
4246 |
-
#: includes/admin/settings/register-settings.php:
|
4247 |
msgid ""
|
4248 |
"Your license key has reached its activation limit. <a href=\"%s\">View "
|
4249 |
"possible upgrades</a> now."
|
4250 |
msgstr ""
|
4251 |
|
4252 |
-
#: includes/admin/settings/register-settings.php:
|
4253 |
msgid ""
|
4254 |
"The key you entered belongs to a bundle, please use the product specific "
|
4255 |
"license key."
|
4256 |
msgstr ""
|
4257 |
|
4258 |
-
#: includes/admin/settings/register-settings.php:
|
4259 |
msgid "unknown_error"
|
4260 |
msgstr ""
|
4261 |
|
4262 |
-
#: includes/admin/settings/register-settings.php:
|
4263 |
msgid ""
|
4264 |
"There was an error with this license key: %s. Please <a href=\"%s\">contact "
|
4265 |
"our support team</a>."
|
4266 |
msgstr ""
|
4267 |
|
4268 |
-
#: includes/admin/settings/register-settings.php:
|
4269 |
msgid "License key never expires."
|
4270 |
msgstr ""
|
4271 |
|
4272 |
-
#: includes/admin/settings/register-settings.php:
|
4273 |
msgid ""
|
4274 |
"Your license key expires soon! It expires on %s. <a href=\"%s\" "
|
4275 |
"target=\"_blank\">Renew your license key</a>."
|
4276 |
msgstr ""
|
4277 |
|
4278 |
-
#: includes/admin/settings/register-settings.php:
|
4279 |
msgid "Your license key expires on %s."
|
4280 |
msgstr ""
|
4281 |
|
4282 |
-
#: includes/admin/settings/register-settings.php:
|
4283 |
msgid "To receive updates, please enter your valid %s license key."
|
4284 |
msgstr ""
|
4285 |
|
4286 |
-
#: includes/admin/settings/register-settings.php:
|
4287 |
msgid "Deactivate License"
|
4288 |
msgstr ""
|
4289 |
|
4290 |
-
#: includes/admin/thickbox.php:29 includes/admin/thickbox.php:
|
4291 |
msgid "Insert %s"
|
4292 |
msgstr ""
|
4293 |
|
4294 |
-
#: includes/admin/thickbox.php:
|
4295 |
msgid "You must choose a download"
|
4296 |
msgstr ""
|
4297 |
|
4298 |
-
#: includes/admin/thickbox.php:
|
4299 |
msgid "Use the form below to insert the shortcode for purchasing a %s"
|
4300 |
msgstr ""
|
4301 |
|
4302 |
-
#: includes/admin/thickbox.php:
|
4303 |
msgid "Choose the button behavior"
|
4304 |
msgstr ""
|
4305 |
|
4306 |
-
#: includes/admin/thickbox.php:
|
4307 |
msgid "Direct Purchase Link"
|
4308 |
msgstr ""
|
4309 |
|
4310 |
-
#: includes/admin/thickbox.php:
|
4311 |
msgid "Choose a style"
|
4312 |
msgstr ""
|
4313 |
|
4314 |
-
#: includes/admin/thickbox.php:
|
4315 |
msgid "Choose a button color"
|
4316 |
msgstr ""
|
4317 |
|
4318 |
-
#: includes/admin/thickbox.php:
|
4319 |
msgid "Link text . . ."
|
4320 |
msgstr ""
|
4321 |
|
@@ -4344,101 +4216,97 @@ msgstr ""
|
|
4344 |
msgid "Customers, earnings, sales, discounts and logs successfully reset."
|
4345 |
msgstr ""
|
4346 |
|
4347 |
-
#: includes/admin/tools.php:
|
4348 |
msgid "Easy Digital Downloads Tools"
|
4349 |
msgstr ""
|
4350 |
|
4351 |
-
#: includes/admin/tools.php:
|
4352 |
msgid "Beta Versions"
|
4353 |
msgstr ""
|
4354 |
|
4355 |
-
#: includes/admin/tools.php:
|
4356 |
msgid "System Info"
|
4357 |
msgstr ""
|
4358 |
|
4359 |
-
#: includes/admin/tools.php:
|
4360 |
-
msgid "Debug Log"
|
4361 |
-
msgstr ""
|
4362 |
-
|
4363 |
-
#: includes/admin/tools.php:81
|
4364 |
msgid "Import/Export"
|
4365 |
msgstr ""
|
4366 |
|
4367 |
-
#: includes/admin/tools.php:
|
4368 |
msgid "Banned Emails"
|
4369 |
msgstr ""
|
4370 |
|
4371 |
-
#: includes/admin/tools.php:
|
4372 |
-
msgid "
|
|
|
|
|
4373 |
msgstr ""
|
4374 |
|
4375 |
-
#: includes/admin/tools.php:
|
4376 |
-
msgid ""
|
4377 |
-
"Enter emails and/or domains (starting with \"@\") and/or TLDs (starting "
|
4378 |
-
"with \".\") to disallow, one per line."
|
4379 |
msgstr ""
|
4380 |
|
4381 |
-
#: includes/admin/tools.php:
|
4382 |
msgid "Save"
|
4383 |
msgstr ""
|
4384 |
|
4385 |
-
#: includes/admin/tools.php:
|
4386 |
msgid "Use these tools to recount / reset store stats."
|
4387 |
msgstr ""
|
4388 |
|
4389 |
-
#: includes/admin/tools.php:
|
4390 |
msgid "Please select an option"
|
4391 |
msgstr ""
|
4392 |
|
4393 |
-
#: includes/admin/tools.php:
|
4394 |
msgid "Recount Store Earnings and Sales"
|
4395 |
msgstr ""
|
4396 |
|
4397 |
-
#: includes/admin/tools.php:
|
4398 |
msgid "Recount Earnings and Sales for a %s"
|
4399 |
msgstr ""
|
4400 |
|
4401 |
-
#: includes/admin/tools.php:
|
4402 |
msgid "Recount Earnings and Sales for All %s"
|
4403 |
msgstr ""
|
4404 |
|
4405 |
-
#: includes/admin/tools.php:
|
4406 |
msgid "Reset Store"
|
4407 |
msgstr ""
|
4408 |
|
4409 |
-
#: includes/admin/tools.php:
|
4410 |
msgid "Recalculates the total store earnings and sales."
|
4411 |
msgstr ""
|
4412 |
|
4413 |
-
#: includes/admin/tools.php:
|
4414 |
msgid "Recalculates the earnings and sales stats for a specific %s."
|
4415 |
msgstr ""
|
4416 |
|
4417 |
-
#: includes/admin/tools.php:
|
4418 |
msgid "Recalculates the earnings and sales stats for all %s."
|
4419 |
msgstr ""
|
4420 |
|
4421 |
-
#: includes/admin/tools.php:
|
4422 |
msgid "Recalculates the lifetime value and purchase counts for all customers."
|
4423 |
msgstr ""
|
4424 |
|
4425 |
-
#: includes/admin/tools.php:
|
4426 |
msgid ""
|
4427 |
"<strong>Deletes</strong> all payment records, customers, and related log "
|
4428 |
"entries."
|
4429 |
msgstr ""
|
4430 |
|
4431 |
-
#: includes/admin/tools.php:
|
4432 |
msgid "Clear Incomplete Upgrade Notice"
|
4433 |
msgstr ""
|
4434 |
|
4435 |
-
#: includes/admin/tools.php:
|
4436 |
msgid ""
|
4437 |
"Sometimes a database upgrade notice may not be cleared after an upgrade is "
|
4438 |
"completed due to conflicts with other extensions or other minor issues."
|
4439 |
msgstr ""
|
4440 |
|
4441 |
-
#: includes/admin/tools.php:
|
4442 |
msgid ""
|
4443 |
"If you're certain these upgrades have been completed, you can clear these "
|
4444 |
"upgrade notices by clicking the button below. If you have any questions "
|
@@ -4446,18 +4314,18 @@ msgid ""
|
|
4446 |
"we'll be happy to help."
|
4447 |
msgstr ""
|
4448 |
|
4449 |
-
#: includes/admin/tools.php:
|
4450 |
msgid ""
|
4451 |
"These API keys allow you to use the <a href=\"%s\">EDD REST API</a> to "
|
4452 |
"retrieve store data in JSON or XML for external applications or devices, "
|
4453 |
"such as the <a href=\"%s\">EDD mobile app</a>."
|
4454 |
msgstr ""
|
4455 |
|
4456 |
-
#: includes/admin/tools.php:
|
4457 |
msgid "Enable Beta Versions"
|
4458 |
msgstr ""
|
4459 |
|
4460 |
-
#: includes/admin/tools.php:
|
4461 |
msgid ""
|
4462 |
"Checking any of the below checkboxes will opt you in to receive pre-release "
|
4463 |
"update notifications. You can opt-out at any time. Pre-release updates do "
|
@@ -4465,23 +4333,23 @@ msgid ""
|
|
4465 |
"update notifications."
|
4466 |
msgstr ""
|
4467 |
|
4468 |
-
#: includes/admin/tools.php:
|
4469 |
msgid "Get updates for pre-release versions of %s"
|
4470 |
msgstr ""
|
4471 |
|
4472 |
-
#: includes/admin/tools.php:
|
4473 |
msgid "Import Payment History"
|
4474 |
msgstr ""
|
4475 |
|
4476 |
-
#: includes/admin/tools.php:
|
4477 |
msgid "Import a CSV file of payment records."
|
4478 |
msgstr ""
|
4479 |
|
4480 |
-
#: includes/admin/tools.php:
|
4481 |
msgid "Import CSV"
|
4482 |
msgstr ""
|
4483 |
|
4484 |
-
#: includes/admin/tools.php:
|
4485 |
msgid ""
|
4486 |
"Each column loaded from the CSV needs to be mapped to a payment field. "
|
4487 |
"Select the column that should be mapped to each field below. Any columns "
|
@@ -4489,114 +4357,114 @@ msgid ""
|
|
4489 |
"guide</a> for assistance with importing payment records."
|
4490 |
msgstr ""
|
4491 |
|
4492 |
-
#: includes/admin/tools.php:
|
4493 |
msgid "Payment Field"
|
4494 |
msgstr ""
|
4495 |
|
4496 |
-
#: includes/admin/tools.php:
|
4497 |
msgid "CSV Column"
|
4498 |
msgstr ""
|
4499 |
|
4500 |
-
#: includes/admin/tools.php:
|
4501 |
msgid "Data Preview"
|
4502 |
msgstr ""
|
4503 |
|
4504 |
-
#: includes/admin/tools.php:
|
4505 |
msgid "Currency Code"
|
4506 |
msgstr ""
|
4507 |
|
4508 |
-
#: includes/admin/tools.php:
|
4509 |
-
#: includes/admin/tools.php:
|
4510 |
-
#: includes/admin/tools.php:
|
4511 |
-
#: includes/admin/tools.php:
|
4512 |
-
#: includes/admin/tools.php:
|
4513 |
-
#: includes/admin/tools.php:
|
4514 |
-
#: includes/admin/tools.php:
|
4515 |
-
#: includes/admin/tools.php:
|
4516 |
-
#: includes/admin/tools.php:
|
4517 |
-
#: includes/admin/tools.php:
|
4518 |
-
#: includes/admin/tools.php:
|
4519 |
-
#: includes/admin/tools.php:
|
4520 |
-
#: includes/admin/tools.php:
|
4521 |
-
#: includes/admin/tools.php:
|
4522 |
-
#: includes/admin/tools.php:
|
4523 |
-
#: includes/admin/tools.php:
|
4524 |
-
#: includes/admin/tools.php:
|
4525 |
-
#: includes/admin/tools.php:
|
4526 |
-
#: includes/admin/tools.php:
|
4527 |
-
#: includes/admin/tools.php:
|
4528 |
-
#: includes/admin/tools.php:
|
4529 |
-
#: includes/admin/tools.php:
|
4530 |
msgid "- Ignore this field -"
|
4531 |
msgstr ""
|
4532 |
|
4533 |
-
#: includes/admin/tools.php:
|
4534 |
-
#: includes/admin/tools.php:
|
4535 |
-
#: includes/admin/tools.php:
|
4536 |
-
#: includes/admin/tools.php:
|
4537 |
-
#: includes/admin/tools.php:
|
4538 |
-
#: includes/admin/tools.php:
|
4539 |
-
#: includes/admin/tools.php:
|
4540 |
-
#: includes/admin/tools.php:
|
4541 |
-
#: includes/admin/tools.php:
|
4542 |
-
#: includes/admin/tools.php:
|
4543 |
-
#: includes/admin/tools.php:
|
4544 |
-
#: includes/admin/tools.php:
|
4545 |
-
#: includes/admin/tools.php:
|
4546 |
-
#: includes/admin/tools.php:
|
4547 |
-
#: includes/admin/tools.php:
|
4548 |
-
#: includes/admin/tools.php:
|
4549 |
-
#: includes/admin/tools.php:
|
4550 |
-
#: includes/admin/tools.php:
|
4551 |
-
#: includes/admin/tools.php:
|
4552 |
-
#: includes/admin/tools.php:
|
4553 |
-
#: includes/admin/tools.php:
|
4554 |
-
#: includes/admin/tools.php:
|
4555 |
msgid "- select field to preview data -"
|
4556 |
msgstr ""
|
4557 |
|
4558 |
-
#: includes/admin/tools.php:
|
4559 |
msgid "Discount Code(s)"
|
4560 |
msgstr ""
|
4561 |
|
4562 |
-
#: includes/admin/tools.php:
|
4563 |
msgid "Parent Payment ID"
|
4564 |
msgstr ""
|
4565 |
|
4566 |
-
#: includes/admin/tools.php:
|
4567 |
msgid "Purchased Product(s)"
|
4568 |
msgstr ""
|
4569 |
|
4570 |
-
#: includes/admin/tools.php:
|
4571 |
#: templates/shortcode-receipt.php:98
|
4572 |
msgid "Subtotal"
|
4573 |
msgstr ""
|
4574 |
|
4575 |
-
#: includes/admin/tools.php:
|
4576 |
msgid "Total"
|
4577 |
msgstr ""
|
4578 |
|
4579 |
-
#: includes/admin/tools.php:
|
4580 |
msgid "Address Line 1"
|
4581 |
msgstr ""
|
4582 |
|
4583 |
-
#: includes/admin/tools.php:
|
4584 |
msgid "Address Line 2"
|
4585 |
msgstr ""
|
4586 |
|
4587 |
-
#: includes/admin/tools.php:
|
4588 |
msgid "Process Import"
|
4589 |
msgstr ""
|
4590 |
|
4591 |
-
#: includes/admin/tools.php:
|
4592 |
msgid "Import Download Products"
|
4593 |
msgstr ""
|
4594 |
|
4595 |
-
#: includes/admin/tools.php:
|
4596 |
msgid "Import a CSV file of products."
|
4597 |
msgstr ""
|
4598 |
|
4599 |
-
#: includes/admin/tools.php:
|
4600 |
msgid ""
|
4601 |
"Each column loaded from the CSV needs to be mapped to a Download product "
|
4602 |
"field. Select the column that should be mapped to each field below. Any "
|
@@ -4605,135 +4473,114 @@ msgid ""
|
|
4605 |
"products."
|
4606 |
msgstr ""
|
4607 |
|
4608 |
-
#: includes/admin/tools.php:
|
4609 |
msgid "Product Field"
|
4610 |
msgstr ""
|
4611 |
|
4612 |
-
#: includes/admin/tools.php:
|
4613 |
msgid "Product Author"
|
4614 |
msgstr ""
|
4615 |
|
4616 |
-
#: includes/admin/tools.php:
|
4617 |
msgid "Product Categories"
|
4618 |
msgstr ""
|
4619 |
|
4620 |
-
#: includes/admin/tools.php:
|
4621 |
msgid "Product Creation Date"
|
4622 |
msgstr ""
|
4623 |
|
4624 |
-
#: includes/admin/tools.php:
|
4625 |
msgid "Product Description"
|
4626 |
msgstr ""
|
4627 |
|
4628 |
-
#: includes/admin/tools.php:
|
4629 |
msgid "Product Excerpt"
|
4630 |
msgstr ""
|
4631 |
|
4632 |
-
#: includes/admin/tools.php:
|
4633 |
msgid "Product Image"
|
4634 |
msgstr ""
|
4635 |
|
4636 |
-
#: includes/admin/tools.php:
|
4637 |
msgid "Product Notes"
|
4638 |
msgstr ""
|
4639 |
|
4640 |
-
#: includes/admin/tools.php:
|
4641 |
msgid "Product Price(s)"
|
4642 |
msgstr ""
|
4643 |
|
4644 |
-
#: includes/admin/tools.php:
|
4645 |
msgid "Product SKU"
|
4646 |
msgstr ""
|
4647 |
|
4648 |
-
#: includes/admin/tools.php:
|
4649 |
msgid "Product Slug"
|
4650 |
msgstr ""
|
4651 |
|
4652 |
-
#: includes/admin/tools.php:
|
4653 |
msgid "Product Status"
|
4654 |
msgstr ""
|
4655 |
|
4656 |
-
#: includes/admin/tools.php:
|
4657 |
msgid "Product Tags"
|
4658 |
msgstr ""
|
4659 |
|
4660 |
-
#: includes/admin/tools.php:
|
4661 |
msgid "Product Title"
|
4662 |
msgstr ""
|
4663 |
|
4664 |
-
#: includes/admin/tools.php:
|
4665 |
msgid "Download Files"
|
4666 |
msgstr ""
|
4667 |
|
4668 |
-
#: includes/admin/tools.php:
|
4669 |
msgid "Sale Count"
|
4670 |
msgstr ""
|
4671 |
|
4672 |
-
#: includes/admin/tools.php:
|
4673 |
msgid "Export Settings"
|
4674 |
msgstr ""
|
4675 |
|
4676 |
-
#: includes/admin/tools.php:
|
4677 |
msgid ""
|
4678 |
"Export the Easy Digital Downloads settings for this site as a .json file. "
|
4679 |
"This allows you to easily import the configuration into another site."
|
4680 |
msgstr ""
|
4681 |
|
4682 |
-
#: includes/admin/tools.php:
|
4683 |
msgid ""
|
4684 |
"To export shop data (purchases, customers, etc), visit the <a "
|
4685 |
"href=\"%s\">Reports</a> page."
|
4686 |
msgstr ""
|
4687 |
|
4688 |
-
#: includes/admin/tools.php:
|
4689 |
msgid "Import Settings"
|
4690 |
msgstr ""
|
4691 |
|
4692 |
-
#: includes/admin/tools.php:
|
4693 |
msgid ""
|
4694 |
"Import the Easy Digital Downloads settings from a .json file. This file can "
|
4695 |
"be obtained by exporting the settings on another site using the form above."
|
4696 |
msgstr ""
|
4697 |
|
4698 |
-
#: includes/admin/tools.php:
|
4699 |
msgid "Import"
|
4700 |
msgstr ""
|
4701 |
|
4702 |
-
#: includes/admin/tools.php:
|
4703 |
msgid "Please upload a valid .json file"
|
4704 |
msgstr ""
|
4705 |
|
4706 |
-
#: includes/admin/tools.php:
|
4707 |
msgid "Please upload a file to import"
|
4708 |
msgstr ""
|
4709 |
|
4710 |
-
#: includes/admin/tools.php:1082
|
4711 |
-
msgid ""
|
4712 |
-
"Use this tool to help debug Easy Digital Downloads functionality. "
|
4713 |
-
"Developers may use the <a "
|
4714 |
-
"href=\"https://github.com/easydigitaldownloads/easy-digital-downloads/blob/"
|
4715 |
-
"master/includes/class-edd-logging.php\">EDD_Logging class</a> to record "
|
4716 |
-
"debug data."
|
4717 |
-
msgstr ""
|
4718 |
-
|
4719 |
-
#: includes/admin/tools.php:1087
|
4720 |
-
msgid "Download Debug Log File"
|
4721 |
-
msgstr ""
|
4722 |
-
|
4723 |
-
#: includes/admin/tools.php:1088
|
4724 |
-
msgid "Clear Log"
|
4725 |
-
msgstr ""
|
4726 |
-
|
4727 |
-
#: includes/admin/tools.php:1089
|
4728 |
-
msgid "Copy Entire Log"
|
4729 |
-
msgstr ""
|
4730 |
-
|
4731 |
#: includes/admin/tracking.php:256
|
4732 |
msgid ""
|
4733 |
"Allow Easy Digital Downloads to track plugin usage? Opt-in to tracking and "
|
4734 |
-
"our newsletter and immediately be emailed a discount to the EDD shop,
|
4735 |
-
"towards the <a href=\"%s\" target=\"_blank\">purchase of
|
4736 |
-
"sensitive data is tracked."
|
4737 |
msgstr ""
|
4738 |
|
4739 |
#: includes/admin/tracking.php:257
|
@@ -4848,131 +4695,131 @@ msgstr ""
|
|
4848 |
msgid "Step %d of approximately %d running"
|
4849 |
msgstr ""
|
4850 |
|
4851 |
-
#: includes/ajax-functions.php:
|
4852 |
msgid "No results found"
|
4853 |
msgstr ""
|
4854 |
|
4855 |
-
#: includes/ajax-functions.php:
|
4856 |
-
#: includes/class-edd-html-elements.php:
|
4857 |
msgid "No users found"
|
4858 |
msgstr ""
|
4859 |
|
4860 |
-
#: includes/ajax-functions.php:
|
4861 |
msgid "All Prices"
|
4862 |
msgstr ""
|
4863 |
|
4864 |
-
#: includes/api/class-edd-api-v2.php:143 includes/api/class-edd-api.php:
|
4865 |
-
#: includes/api/class-edd-api.php:
|
4866 |
msgid "Product %s not found!"
|
4867 |
msgstr ""
|
4868 |
|
4869 |
-
#: includes/api/class-edd-api-v2.php:218 includes/api/class-edd-api.php:
|
4870 |
-
#: includes/api/class-edd-api.php:
|
4871 |
msgid "The end date must be later than the start date!"
|
4872 |
msgstr ""
|
4873 |
|
4874 |
-
#: includes/api/class-edd-api-v2.php:319 includes/api/class-edd-api.php:
|
4875 |
msgid "Customer %s not found!"
|
4876 |
msgstr ""
|
4877 |
|
4878 |
-
#: includes/api/class-edd-api-v2.php:324 includes/api/class-edd-api.php:
|
4879 |
msgid "No customers found!"
|
4880 |
msgstr ""
|
4881 |
|
4882 |
-
#: includes/api/class-edd-api.php:
|
4883 |
msgid "You must specify both a token and API key!"
|
4884 |
msgstr ""
|
4885 |
|
4886 |
-
#: includes/api/class-edd-api.php:
|
4887 |
msgid "Your request could not be authenticated!"
|
4888 |
msgstr ""
|
4889 |
|
4890 |
-
#: includes/api/class-edd-api.php:
|
4891 |
msgid "Invalid API key!"
|
4892 |
msgstr ""
|
4893 |
|
4894 |
-
#: includes/api/class-edd-api.php:
|
4895 |
msgid "Invalid API version!"
|
4896 |
msgstr ""
|
4897 |
|
4898 |
-
#: includes/api/class-edd-api.php:
|
4899 |
msgid "Invalid query!"
|
4900 |
msgstr ""
|
4901 |
|
4902 |
-
#: includes/api/class-edd-api.php:
|
4903 |
msgid "Invalid or no date range specified!"
|
4904 |
msgstr ""
|
4905 |
|
4906 |
-
#: includes/api/class-edd-api.php:
|
4907 |
msgid "No discounts found!"
|
4908 |
msgstr ""
|
4909 |
|
4910 |
-
#: includes/api/class-edd-api.php:
|
4911 |
msgid "Discount %s not found!"
|
4912 |
msgstr ""
|
4913 |
|
4914 |
-
#: includes/api/class-edd-api.php:
|
4915 |
msgid "No download logs found!"
|
4916 |
msgstr ""
|
4917 |
|
4918 |
-
#: includes/api/class-edd-api.php:
|
4919 |
msgid "Easy Digital Downloads API Keys"
|
4920 |
msgstr ""
|
4921 |
|
4922 |
-
#: includes/api/class-edd-api.php:
|
4923 |
msgid "Generate API Key"
|
4924 |
msgstr ""
|
4925 |
|
4926 |
-
#: includes/api/class-edd-api.php:
|
4927 |
msgid "Public key:"
|
4928 |
msgstr ""
|
4929 |
|
4930 |
-
#: includes/api/class-edd-api.php:
|
4931 |
msgid "Secret key:"
|
4932 |
msgstr ""
|
4933 |
|
4934 |
-
#: includes/api/class-edd-api.php:
|
4935 |
msgid "Token:"
|
4936 |
msgstr ""
|
4937 |
|
4938 |
-
#: includes/api/class-edd-api.php:
|
4939 |
msgid "Revoke API Keys"
|
4940 |
msgstr ""
|
4941 |
|
4942 |
-
#: includes/api/class-edd-api.php:
|
4943 |
msgid "User ID Required"
|
4944 |
msgstr ""
|
4945 |
|
4946 |
-
#: includes/api/class-edd-api.php:
|
4947 |
msgid "You do not have permission to %s API keys for this user"
|
4948 |
msgstr ""
|
4949 |
|
4950 |
-
#: includes/cart/class-edd-cart.php:
|
4951 |
msgid "includes %s tax"
|
4952 |
msgstr ""
|
4953 |
|
4954 |
-
#: includes/cart/class-edd-cart.php:
|
4955 |
msgid "excludes %s tax"
|
4956 |
msgstr ""
|
4957 |
|
4958 |
-
#: includes/cart/class-edd-cart.php:
|
4959 |
#: templates/shortcode-profile-editor.php:22
|
4960 |
msgid "Success"
|
4961 |
msgstr ""
|
4962 |
|
4963 |
-
#: includes/cart/class-edd-cart.php:
|
4964 |
msgid "Cart saved successfully. You can restore your cart using this URL:"
|
4965 |
msgstr ""
|
4966 |
|
4967 |
-
#: includes/cart/class-edd-cart.php:
|
4968 |
msgid "Cart restoration failed. Invalid token."
|
4969 |
msgstr ""
|
4970 |
|
4971 |
-
#: includes/cart/class-edd-cart.php:
|
4972 |
msgid "The cart cannot be restored. Invalid token."
|
4973 |
msgstr ""
|
4974 |
|
4975 |
-
#: includes/cart/class-edd-cart.php:
|
4976 |
msgid "Cart restored successfully."
|
4977 |
msgstr ""
|
4978 |
|
@@ -5076,173 +4923,177 @@ msgstr ""
|
|
5076 |
msgid "The date your credit card expires, typically on the front of the card."
|
5077 |
msgstr ""
|
5078 |
|
5079 |
-
#: includes/checkout/template.php:
|
5080 |
msgid "Billing Details"
|
5081 |
msgstr ""
|
5082 |
|
5083 |
-
#: includes/checkout/template.php:
|
5084 |
msgid "The primary billing address for your credit card."
|
5085 |
msgstr ""
|
5086 |
|
5087 |
-
#: includes/checkout/template.php:
|
5088 |
msgid "Address line 1"
|
5089 |
msgstr ""
|
5090 |
|
5091 |
-
#: includes/checkout/template.php:
|
5092 |
msgid "Billing Address Line 2 (optional)"
|
5093 |
msgstr ""
|
5094 |
|
5095 |
-
#: includes/checkout/template.php:
|
5096 |
msgid "The suite, apt no, PO box, etc, associated with your billing address."
|
5097 |
msgstr ""
|
5098 |
|
5099 |
-
#: includes/checkout/template.php:
|
5100 |
msgid "Address line 2"
|
5101 |
msgstr ""
|
5102 |
|
5103 |
-
#: includes/checkout/template.php:
|
5104 |
msgid "Billing City"
|
5105 |
msgstr ""
|
5106 |
|
5107 |
-
#: includes/checkout/template.php:
|
5108 |
msgid "The city for your billing address."
|
5109 |
msgstr ""
|
5110 |
|
5111 |
-
#: includes/checkout/template.php:
|
5112 |
msgid "Billing Zip / Postal Code"
|
5113 |
msgstr ""
|
5114 |
|
5115 |
-
#: includes/checkout/template.php:
|
5116 |
msgid "The zip or postal code for your billing address."
|
5117 |
msgstr ""
|
5118 |
|
5119 |
-
#: includes/checkout/template.php:
|
5120 |
msgid "Billing Country"
|
5121 |
msgstr ""
|
5122 |
|
5123 |
-
#: includes/checkout/template.php:
|
5124 |
msgid "The country for your billing address."
|
5125 |
msgstr ""
|
5126 |
|
5127 |
-
#: includes/checkout/template.php:
|
5128 |
msgid "Billing State / Province"
|
5129 |
msgstr ""
|
5130 |
|
5131 |
-
#: includes/checkout/template.php:
|
5132 |
msgid "The state or province for your billing address."
|
5133 |
msgstr ""
|
5134 |
|
5135 |
-
#: includes/checkout/template.php:
|
5136 |
msgid "Already have an account?"
|
5137 |
msgstr ""
|
5138 |
|
5139 |
-
#: includes/checkout/template.php:
|
5140 |
msgid "Login"
|
5141 |
msgstr ""
|
5142 |
|
5143 |
-
#: includes/checkout/template.php:
|
5144 |
msgid "Create an account"
|
5145 |
msgstr ""
|
5146 |
|
5147 |
-
#: includes/checkout/template.php:
|
5148 |
msgid "(optional)"
|
5149 |
msgstr ""
|
5150 |
|
5151 |
-
#: includes/checkout/template.php:
|
5152 |
msgid "The username you will use to log into your account."
|
5153 |
msgstr ""
|
5154 |
|
5155 |
-
#: includes/checkout/template.php:
|
5156 |
-
#: includes/checkout/template.php:
|
5157 |
-
#: templates/shortcode-register.php:
|
5158 |
msgid "Password"
|
5159 |
msgstr ""
|
5160 |
|
5161 |
-
#: includes/checkout/template.php:
|
5162 |
msgid "The password used to access your account."
|
5163 |
msgstr ""
|
5164 |
|
5165 |
-
#: includes/checkout/template.php:
|
5166 |
msgid "Password Again"
|
5167 |
msgstr ""
|
5168 |
|
5169 |
-
#: includes/checkout/template.php:
|
5170 |
msgid "Confirm your password."
|
5171 |
msgstr ""
|
5172 |
|
5173 |
-
#: includes/checkout/template.php:
|
5174 |
msgid "Confirm password"
|
5175 |
msgstr ""
|
5176 |
|
5177 |
-
#: includes/checkout/template.php:
|
5178 |
msgid "Need to create an account?"
|
5179 |
msgstr ""
|
5180 |
|
5181 |
-
#: includes/checkout/template.php:
|
5182 |
msgid "Register"
|
5183 |
msgstr ""
|
5184 |
|
5185 |
-
#: includes/checkout/template.php:
|
5186 |
msgid "or checkout as a guest."
|
5187 |
msgstr ""
|
5188 |
|
5189 |
-
#: includes/checkout/template.php:
|
5190 |
msgid "Username or Email"
|
5191 |
msgstr ""
|
5192 |
|
5193 |
-
#: includes/checkout/template.php:
|
5194 |
msgid "Your username or email address"
|
5195 |
msgstr ""
|
5196 |
|
5197 |
-
#: includes/checkout/template.php:
|
5198 |
msgid "Your password"
|
5199 |
msgstr ""
|
5200 |
|
5201 |
-
#: includes/checkout/template.php:
|
5202 |
msgid "Select Payment Method"
|
5203 |
msgstr ""
|
5204 |
|
5205 |
-
#: includes/checkout/template.php:
|
5206 |
msgid "Have a discount code?"
|
5207 |
msgstr ""
|
5208 |
|
5209 |
-
#: includes/checkout/template.php:
|
5210 |
msgid "Discount"
|
5211 |
msgstr ""
|
5212 |
|
5213 |
-
#: includes/checkout/template.php:
|
5214 |
msgid "Enter a coupon code if you have one."
|
5215 |
msgstr ""
|
5216 |
|
5217 |
-
#: includes/checkout/template.php:
|
5218 |
-
#: includes/scripts.php:
|
5219 |
msgid "Enter discount"
|
5220 |
msgstr ""
|
5221 |
|
5222 |
-
#: includes/checkout/template.php:
|
5223 |
msgid "Agree to Terms?"
|
5224 |
msgstr ""
|
5225 |
|
5226 |
-
#: includes/checkout/template.php:
|
5227 |
msgid "Show Terms"
|
5228 |
msgstr ""
|
5229 |
|
5230 |
-
#: includes/checkout/template.php:
|
5231 |
msgid "Hide Terms"
|
5232 |
msgstr ""
|
5233 |
|
5234 |
-
#: includes/checkout/template.php:
|
5235 |
msgid "Purchase Total:"
|
5236 |
msgstr ""
|
5237 |
|
5238 |
-
#: includes/checkout/template.php:
|
5239 |
msgid "Go back"
|
5240 |
msgstr ""
|
5241 |
|
5242 |
-
#: includes/checkout/template.php:
|
5243 |
msgid "Next"
|
5244 |
msgstr ""
|
5245 |
|
|
|
|
|
|
|
|
|
5246 |
#: includes/class-edd-cache-helper.php:117
|
5247 |
msgid ""
|
5248 |
"In order for <strong>database caching</strong> to work with Easy Digital "
|
@@ -5343,7 +5194,7 @@ msgstr ""
|
|
5343 |
msgid "ID: %d"
|
5344 |
msgstr ""
|
5345 |
|
5346 |
-
#: includes/class-edd-cli.php:194 includes/class-edd-cli.php:
|
5347 |
msgid "Status: %s"
|
5348 |
msgstr ""
|
5349 |
|
@@ -5395,7 +5246,7 @@ msgstr ""
|
|
5395 |
msgid "%d customers created in %d seconds"
|
5396 |
msgstr ""
|
5397 |
|
5398 |
-
#: includes/class-edd-cli.php:328 includes/class-edd-html-elements.php:
|
5399 |
msgid "No customers found"
|
5400 |
msgstr ""
|
5401 |
|
@@ -5403,8 +5254,8 @@ msgstr ""
|
|
5403 |
msgid "Customer User ID: %s"
|
5404 |
msgstr ""
|
5405 |
|
5406 |
-
#: includes/class-edd-cli.php:335 includes/user-functions.php:
|
5407 |
-
#: includes/user-functions.php:
|
5408 |
msgid "Username: %s"
|
5409 |
msgstr ""
|
5410 |
|
@@ -5420,7 +5271,7 @@ msgstr ""
|
|
5420 |
msgid "Last Name: %s"
|
5421 |
msgstr ""
|
5422 |
|
5423 |
-
#: includes/class-edd-cli.php:346 includes/class-edd-cli.php:
|
5424 |
msgid "Email: %s"
|
5425 |
msgstr ""
|
5426 |
|
@@ -5436,128 +5287,128 @@ msgstr ""
|
|
5436 |
msgid "Total Downloads: %s"
|
5437 |
msgstr ""
|
5438 |
|
5439 |
-
#: includes/class-edd-cli.php:
|
5440 |
msgid "No sales found"
|
5441 |
msgstr ""
|
5442 |
|
5443 |
-
#: includes/class-edd-cli.php:
|
5444 |
msgid "Purchase Key: %s"
|
5445 |
msgstr ""
|
5446 |
|
5447 |
-
#: includes/class-edd-cli.php:
|
5448 |
msgid "Date: %s"
|
5449 |
msgstr ""
|
5450 |
|
5451 |
-
#: includes/class-edd-cli.php:
|
5452 |
msgid "Subtotal: %s"
|
5453 |
msgstr ""
|
5454 |
|
5455 |
-
#: includes/class-edd-cli.php:
|
5456 |
msgid "Tax: %s"
|
5457 |
msgstr ""
|
5458 |
|
5459 |
-
#: includes/class-edd-cli.php:
|
5460 |
msgid "Fees:"
|
5461 |
msgstr ""
|
5462 |
|
5463 |
-
#: includes/class-edd-cli.php:
|
5464 |
msgid " Fee: %s - %s"
|
5465 |
msgstr ""
|
5466 |
|
5467 |
-
#: includes/class-edd-cli.php:
|
5468 |
msgid "Total: %s"
|
5469 |
msgstr ""
|
5470 |
|
5471 |
-
#: includes/class-edd-cli.php:
|
5472 |
msgid "Gateway: %s"
|
5473 |
msgstr ""
|
5474 |
|
5475 |
-
#: includes/class-edd-cli.php:
|
5476 |
msgid "Products:"
|
5477 |
msgstr ""
|
5478 |
|
5479 |
-
#: includes/class-edd-cli.php:
|
5480 |
msgid " Product: %s - %s"
|
5481 |
msgstr ""
|
5482 |
|
5483 |
-
#: includes/class-edd-cli.php:
|
5484 |
#: includes/shortcodes.php:270
|
5485 |
msgid "No discounts found"
|
5486 |
msgstr ""
|
5487 |
|
5488 |
-
#: includes/class-edd-cli.php:
|
5489 |
msgid "Name: %s"
|
5490 |
msgstr ""
|
5491 |
|
5492 |
-
#: includes/class-edd-cli.php:
|
5493 |
msgid "Code: %s"
|
5494 |
msgstr ""
|
5495 |
|
5496 |
-
#: includes/class-edd-cli.php:
|
5497 |
msgid "Amount: %s"
|
5498 |
msgstr ""
|
5499 |
|
5500 |
-
#: includes/class-edd-cli.php:
|
5501 |
msgid "Uses: %s"
|
5502 |
msgstr ""
|
5503 |
|
5504 |
-
#: includes/class-edd-cli.php:
|
5505 |
msgid "Max Uses: %s"
|
5506 |
msgstr ""
|
5507 |
|
5508 |
-
#: includes/class-edd-cli.php:
|
5509 |
msgid "Unlimited"
|
5510 |
msgstr ""
|
5511 |
|
5512 |
-
#: includes/class-edd-cli.php:
|
5513 |
msgid "Start Date: %s"
|
5514 |
msgstr ""
|
5515 |
|
5516 |
-
#: includes/class-edd-cli.php:
|
5517 |
msgid "No Start Date"
|
5518 |
msgstr ""
|
5519 |
|
5520 |
-
#: includes/class-edd-cli.php:
|
5521 |
msgid "Expiration Date: %s"
|
5522 |
msgstr ""
|
5523 |
|
5524 |
-
#: includes/class-edd-cli.php:
|
5525 |
msgid "No Expiration"
|
5526 |
msgstr ""
|
5527 |
|
5528 |
-
#: includes/class-edd-cli.php:
|
5529 |
msgid "Product Requirements:"
|
5530 |
msgstr ""
|
5531 |
|
5532 |
-
#: includes/class-edd-cli.php:
|
5533 |
msgid " Product: %s"
|
5534 |
msgstr ""
|
5535 |
|
5536 |
-
#: includes/class-edd-cli.php:
|
5537 |
msgid "Global Discount: %s"
|
5538 |
msgstr ""
|
5539 |
|
5540 |
-
#: includes/class-edd-cli.php:
|
5541 |
msgid "Single Use: %s"
|
5542 |
msgstr ""
|
5543 |
|
5544 |
-
#: includes/class-edd-cli.php:
|
5545 |
msgid "No action specified, did you mean"
|
5546 |
msgstr ""
|
5547 |
|
5548 |
-
#: includes/class-edd-cli.php:
|
5549 |
msgid "Invalid action specified, did you mean"
|
5550 |
msgstr ""
|
5551 |
|
5552 |
-
#: includes/class-edd-cli.php:
|
5553 |
msgid "Invalid status '%s', defaulting to 'complete'"
|
5554 |
msgstr ""
|
5555 |
|
5556 |
-
#: includes/class-edd-cli.php:
|
5557 |
msgid "Specified ID is not a product"
|
5558 |
msgstr ""
|
5559 |
|
5560 |
-
#: includes/class-edd-cli.php:
|
5561 |
msgid "Created %s payments"
|
5562 |
msgstr ""
|
5563 |
|
@@ -5565,36 +5416,36 @@ msgstr ""
|
|
5565 |
msgid "Once Weekly"
|
5566 |
msgstr ""
|
5567 |
|
5568 |
-
#: includes/class-edd-customer.php:
|
5569 |
#: includes/class-edd-download.php:196
|
5570 |
msgid "Can't get property %s"
|
5571 |
msgstr ""
|
5572 |
|
5573 |
-
#: includes/class-edd-discount.php:
|
5574 |
msgid "This discount has reached its maximum usage."
|
5575 |
msgstr ""
|
5576 |
|
5577 |
-
#: includes/class-edd-discount.php:
|
5578 |
msgid "Minimum order of %s not met."
|
5579 |
msgstr ""
|
5580 |
|
5581 |
-
#: includes/class-edd-discount.php:
|
5582 |
msgid "The product requirements for this discount are not met."
|
5583 |
msgstr ""
|
5584 |
|
5585 |
-
#: includes/class-edd-discount.php:
|
5586 |
msgid "This discount is not valid for the cart contents."
|
5587 |
msgstr ""
|
5588 |
|
5589 |
-
#: includes/class-edd-discount.php:
|
5590 |
msgid "This discount has already been redeemed."
|
5591 |
msgstr ""
|
5592 |
|
5593 |
-
#: includes/class-edd-discount.php:
|
5594 |
msgid "This discount is expired."
|
5595 |
msgstr ""
|
5596 |
|
5597 |
-
#: includes/class-edd-discount.php:
|
5598 |
msgid "This discount is not active."
|
5599 |
msgstr ""
|
5600 |
|
@@ -5602,35 +5453,27 @@ msgstr ""
|
|
5602 |
msgid "New Download Product"
|
5603 |
msgstr ""
|
5604 |
|
5605 |
-
#: includes/class-edd-html-elements.php:44 includes/scripts.php:
|
5606 |
msgid "Choose a %s"
|
5607 |
msgstr ""
|
5608 |
|
5609 |
-
#: includes/class-edd-html-elements.php:
|
5610 |
-
msgid "Type to search all %s"
|
5611 |
-
msgstr ""
|
5612 |
-
|
5613 |
-
#: includes/class-edd-html-elements.php:243
|
5614 |
msgid "Select a Customer"
|
5615 |
msgstr ""
|
5616 |
|
5617 |
-
#: includes/class-edd-html-elements.php:
|
5618 |
msgid "No customer attached"
|
5619 |
msgstr ""
|
5620 |
|
5621 |
-
#: includes/class-edd-html-elements.php:
|
5622 |
msgid "Select a User"
|
5623 |
msgstr ""
|
5624 |
|
5625 |
-
#: includes/class-edd-html-elements.php:
|
5626 |
-
msgid "Type to search all Users"
|
5627 |
-
msgstr ""
|
5628 |
-
|
5629 |
-
#: includes/class-edd-html-elements.php:411
|
5630 |
msgid "Select a discount"
|
5631 |
msgstr ""
|
5632 |
|
5633 |
-
#: includes/class-edd-html-elements.php:
|
5634 |
msgid "Enter username"
|
5635 |
msgstr ""
|
5636 |
|
@@ -5681,8 +5524,8 @@ msgstr ""
|
|
5681 |
|
5682 |
#: includes/class-edd-register-meta.php:162
|
5683 |
msgid ""
|
5684 |
-
"Defines how this
|
5685 |
-
"cart or buy now"
|
5686 |
msgstr ""
|
5687 |
|
5688 |
#: includes/class-edd-register-meta.php:177
|
@@ -5757,211 +5600,211 @@ msgstr ""
|
|
5757 |
msgid "Improper date provided."
|
5758 |
msgstr ""
|
5759 |
|
5760 |
-
#: includes/country-functions.php:
|
5761 |
msgid "A Coruña"
|
5762 |
msgstr ""
|
5763 |
|
5764 |
-
#: includes/country-functions.php:
|
5765 |
msgid "Araba"
|
5766 |
msgstr ""
|
5767 |
|
5768 |
-
#: includes/country-functions.php:
|
5769 |
msgid "Albacete"
|
5770 |
msgstr ""
|
5771 |
|
5772 |
-
#: includes/country-functions.php:
|
5773 |
msgid "Alicante"
|
5774 |
msgstr ""
|
5775 |
|
5776 |
-
#: includes/country-functions.php:
|
5777 |
msgid "Almería"
|
5778 |
msgstr ""
|
5779 |
|
5780 |
-
#: includes/country-functions.php:
|
5781 |
msgid "Asturias"
|
5782 |
msgstr ""
|
5783 |
|
5784 |
-
#: includes/country-functions.php:
|
5785 |
msgid "Ávila"
|
5786 |
msgstr ""
|
5787 |
|
5788 |
-
#: includes/country-functions.php:
|
5789 |
msgid "Badajoz"
|
5790 |
msgstr ""
|
5791 |
|
5792 |
-
#: includes/country-functions.php:
|
5793 |
msgid "Baleares"
|
5794 |
msgstr ""
|
5795 |
|
5796 |
-
#: includes/country-functions.php:
|
5797 |
msgid "Barcelona"
|
5798 |
msgstr ""
|
5799 |
|
5800 |
-
#: includes/country-functions.php:
|
5801 |
msgid "Burgos"
|
5802 |
msgstr ""
|
5803 |
|
5804 |
-
#: includes/country-functions.php:
|
5805 |
msgid "Cáceres"
|
5806 |
msgstr ""
|
5807 |
|
5808 |
-
#: includes/country-functions.php:
|
5809 |
msgid "Cádiz"
|
5810 |
msgstr ""
|
5811 |
|
5812 |
-
#: includes/country-functions.php:
|
5813 |
msgid "Cantabria"
|
5814 |
msgstr ""
|
5815 |
|
5816 |
-
#: includes/country-functions.php:
|
5817 |
msgid "Castellón"
|
5818 |
msgstr ""
|
5819 |
|
5820 |
-
#: includes/country-functions.php:
|
5821 |
msgid "Ceuta"
|
5822 |
msgstr ""
|
5823 |
|
5824 |
-
#: includes/country-functions.php:
|
5825 |
msgid "Ciudad Real"
|
5826 |
msgstr ""
|
5827 |
|
5828 |
-
#: includes/country-functions.php:
|
5829 |
msgid "Córdoba"
|
5830 |
msgstr ""
|
5831 |
|
5832 |
-
#: includes/country-functions.php:
|
5833 |
msgid "Cuenca"
|
5834 |
msgstr ""
|
5835 |
|
5836 |
-
#: includes/country-functions.php:
|
5837 |
msgid "Girona"
|
5838 |
msgstr ""
|
5839 |
|
5840 |
-
#: includes/country-functions.php:
|
5841 |
msgid "Granada"
|
5842 |
msgstr ""
|
5843 |
|
5844 |
-
#: includes/country-functions.php:
|
5845 |
msgid "Guadalajara"
|
5846 |
msgstr ""
|
5847 |
|
5848 |
-
#: includes/country-functions.php:
|
5849 |
msgid "Gipuzkoa"
|
5850 |
msgstr ""
|
5851 |
|
5852 |
-
#: includes/country-functions.php:
|
5853 |
msgid "Huelva"
|
5854 |
msgstr ""
|
5855 |
|
5856 |
-
#: includes/country-functions.php:
|
5857 |
msgid "Huesca"
|
5858 |
msgstr ""
|
5859 |
|
5860 |
-
#: includes/country-functions.php:
|
5861 |
msgid "Jaén"
|
5862 |
msgstr ""
|
5863 |
|
5864 |
-
#: includes/country-functions.php:
|
5865 |
msgid "La Rioja"
|
5866 |
msgstr ""
|
5867 |
|
5868 |
-
#: includes/country-functions.php:
|
5869 |
msgid "Las Palmas"
|
5870 |
msgstr ""
|
5871 |
|
5872 |
-
#: includes/country-functions.php:
|
5873 |
msgid "León"
|
5874 |
msgstr ""
|
5875 |
|
5876 |
-
#: includes/country-functions.php:
|
5877 |
msgid "Lleida"
|
5878 |
msgstr ""
|
5879 |
|
5880 |
-
#: includes/country-functions.php:
|
5881 |
msgid "Lugo"
|
5882 |
msgstr ""
|
5883 |
|
5884 |
-
#: includes/country-functions.php:
|
5885 |
msgid "Madrid"
|
5886 |
msgstr ""
|
5887 |
|
5888 |
-
#: includes/country-functions.php:
|
5889 |
msgid "Málaga"
|
5890 |
msgstr ""
|
5891 |
|
5892 |
-
#: includes/country-functions.php:
|
5893 |
msgid "Melilla"
|
5894 |
msgstr ""
|
5895 |
|
5896 |
-
#: includes/country-functions.php:
|
5897 |
msgid "Murcia"
|
5898 |
msgstr ""
|
5899 |
|
5900 |
-
#: includes/country-functions.php:
|
5901 |
msgid "Navarra"
|
5902 |
msgstr ""
|
5903 |
|
5904 |
-
#: includes/country-functions.php:
|
5905 |
msgid "Ourense"
|
5906 |
msgstr ""
|
5907 |
|
5908 |
-
#: includes/country-functions.php:
|
5909 |
msgid "Palencia"
|
5910 |
msgstr ""
|
5911 |
|
5912 |
-
#: includes/country-functions.php:
|
5913 |
msgid "Pontevedra"
|
5914 |
msgstr ""
|
5915 |
|
5916 |
-
#: includes/country-functions.php:
|
5917 |
msgid "Salamanca"
|
5918 |
msgstr ""
|
5919 |
|
5920 |
-
#: includes/country-functions.php:
|
5921 |
msgid "Santa Cruz de Tenerife"
|
5922 |
msgstr ""
|
5923 |
|
5924 |
-
#: includes/country-functions.php:
|
5925 |
msgid "Segovia"
|
5926 |
msgstr ""
|
5927 |
|
5928 |
-
#: includes/country-functions.php:
|
5929 |
msgid "Sevilla"
|
5930 |
msgstr ""
|
5931 |
|
5932 |
-
#: includes/country-functions.php:
|
5933 |
msgid "Soria"
|
5934 |
msgstr ""
|
5935 |
|
5936 |
-
#: includes/country-functions.php:
|
5937 |
msgid "Tarragona"
|
5938 |
msgstr ""
|
5939 |
|
5940 |
-
#: includes/country-functions.php:
|
5941 |
msgid "Teruel"
|
5942 |
msgstr ""
|
5943 |
|
5944 |
-
#: includes/country-functions.php:
|
5945 |
msgid "Toledo"
|
5946 |
msgstr ""
|
5947 |
|
5948 |
-
#: includes/country-functions.php:
|
5949 |
msgid "Valencia"
|
5950 |
msgstr ""
|
5951 |
|
5952 |
-
#: includes/country-functions.php:
|
5953 |
msgid "Valladolid"
|
5954 |
msgstr ""
|
5955 |
|
5956 |
-
#: includes/country-functions.php:
|
5957 |
msgid "Bizkaia"
|
5958 |
msgstr ""
|
5959 |
|
5960 |
-
#: includes/country-functions.php:
|
5961 |
msgid "Zamora"
|
5962 |
msgstr ""
|
5963 |
|
5964 |
-
#: includes/country-functions.php:
|
5965 |
msgid "Zaragoza"
|
5966 |
msgstr ""
|
5967 |
|
@@ -6063,7 +5906,7 @@ msgid ""
|
|
6063 |
"of a purchase. HTML is accepted. Available template tags:"
|
6064 |
msgstr ""
|
6065 |
|
6066 |
-
#: includes/deprecated-functions.php:517 includes/process-download.php:
|
6067 |
msgid "Sorry but you have hit your download limit for this file."
|
6068 |
msgstr ""
|
6069 |
|
@@ -6088,33 +5931,33 @@ msgid "The buyer's IP Address"
|
|
6088 |
msgstr ""
|
6089 |
|
6090 |
#: includes/emails/class-edd-email-tags.php:407
|
6091 |
-
#: includes/emails/class-edd-email-tags.php:
|
6092 |
#: templates/shortcode-receipt.php:128
|
6093 |
msgid "Quantity"
|
6094 |
msgstr ""
|
6095 |
|
6096 |
-
#: includes/emails/class-edd-email-tags.php:
|
6097 |
-
#: templates/history-downloads.php:74 templates/shortcode-receipt.php:
|
6098 |
msgid "No downloadable files found."
|
6099 |
msgstr ""
|
6100 |
|
6101 |
-
#: includes/emails/class-edd-email-tags.php:
|
6102 |
msgid "%1$sView it in your browser %2$s"
|
6103 |
msgstr ""
|
6104 |
|
6105 |
-
#: includes/emails/class-edd-emails.php:
|
6106 |
msgid "Default Template"
|
6107 |
msgstr ""
|
6108 |
|
6109 |
-
#: includes/emails/class-edd-emails.php:
|
6110 |
msgid "No template, plain text only"
|
6111 |
msgstr ""
|
6112 |
|
6113 |
-
#: includes/emails/class-edd-emails.php:
|
6114 |
msgid "You cannot send email with EDD_Emails until init/admin_init has been reached"
|
6115 |
msgstr ""
|
6116 |
|
6117 |
-
#: includes/emails/class-edd-emails.php:
|
6118 |
msgid ""
|
6119 |
"Email from Easy Digital Downloads failed to send.\n"
|
6120 |
"Send time: %s\n"
|
@@ -6123,39 +5966,39 @@ msgid ""
|
|
6123 |
"\n"
|
6124 |
msgstr ""
|
6125 |
|
6126 |
-
#: includes/emails/functions.php:
|
6127 |
msgid "New download purchase - Order #%1$s"
|
6128 |
msgstr ""
|
6129 |
|
6130 |
-
#: includes/emails/functions.php:
|
6131 |
msgid "New Sale!"
|
6132 |
msgstr ""
|
6133 |
|
6134 |
-
#: includes/emails/functions.php:
|
6135 |
msgid "Hello"
|
6136 |
msgstr ""
|
6137 |
|
6138 |
-
#: includes/emails/functions.php:
|
6139 |
msgid "A %s purchase has been made"
|
6140 |
msgstr ""
|
6141 |
|
6142 |
-
#: includes/emails/functions.php:
|
6143 |
msgid "%s sold:"
|
6144 |
msgstr ""
|
6145 |
|
6146 |
-
#: includes/emails/functions.php:
|
6147 |
msgid "Purchased by: "
|
6148 |
msgstr ""
|
6149 |
|
6150 |
-
#: includes/emails/functions.php:
|
6151 |
msgid "Amount: "
|
6152 |
msgstr ""
|
6153 |
|
6154 |
-
#: includes/emails/functions.php:
|
6155 |
msgid "Payment Method: "
|
6156 |
msgstr ""
|
6157 |
|
6158 |
-
#: includes/emails/functions.php:
|
6159 |
msgid "Thank you"
|
6160 |
msgstr ""
|
6161 |
|
@@ -6183,11 +6026,11 @@ msgstr ""
|
|
6183 |
msgid "Send Test Email"
|
6184 |
msgstr ""
|
6185 |
|
6186 |
-
#: includes/emails/template.php:
|
6187 |
msgid "Missing purchase key."
|
6188 |
msgstr ""
|
6189 |
|
6190 |
-
#: includes/emails/template.php:
|
6191 |
msgid "Receipt"
|
6192 |
msgstr ""
|
6193 |
|
@@ -6195,140 +6038,140 @@ msgstr ""
|
|
6195 |
msgid "You must enable a payment gateway to use Easy Digital Downloads"
|
6196 |
msgstr ""
|
6197 |
|
6198 |
-
#: includes/gateways/amazon-payments.php:
|
6199 |
msgid "There is an error with the Amazon Payments configuration."
|
6200 |
msgstr ""
|
6201 |
|
6202 |
-
#: includes/gateways/amazon-payments.php:
|
6203 |
-
#: includes/gateways/amazon-payments.php:
|
6204 |
msgid "Amazon"
|
6205 |
msgstr ""
|
6206 |
|
6207 |
-
#: includes/gateways/amazon-payments.php:
|
6208 |
msgid "Amazon Payments"
|
6209 |
msgstr ""
|
6210 |
|
6211 |
-
#: includes/gateways/amazon-payments.php:
|
6212 |
msgid "Amazon Payments Settings"
|
6213 |
msgstr ""
|
6214 |
|
6215 |
-
#: includes/gateways/amazon-payments.php:
|
6216 |
msgid "Register with Amazon"
|
6217 |
msgstr ""
|
6218 |
|
6219 |
-
#: includes/gateways/amazon-payments.php:
|
6220 |
msgid "Connect Easy Digital Downloads to Amazon"
|
6221 |
msgstr ""
|
6222 |
|
6223 |
-
#: includes/gateways/amazon-payments.php:
|
6224 |
msgid "Once registration is complete, enter your API credentials below."
|
6225 |
msgstr ""
|
6226 |
|
6227 |
-
#: includes/gateways/amazon-payments.php:
|
6228 |
msgid "Seller ID"
|
6229 |
msgstr ""
|
6230 |
|
6231 |
-
#: includes/gateways/amazon-payments.php:
|
6232 |
msgid "Found in the Integration settings. Also called a Merchant ID"
|
6233 |
msgstr ""
|
6234 |
|
6235 |
-
#: includes/gateways/amazon-payments.php:
|
6236 |
msgid "MWS Access Key"
|
6237 |
msgstr ""
|
6238 |
|
6239 |
-
#: includes/gateways/amazon-payments.php:
|
6240 |
-
#: includes/gateways/amazon-payments.php:
|
6241 |
msgid "Found on Seller Central in the MWS Keys section"
|
6242 |
msgstr ""
|
6243 |
|
6244 |
-
#: includes/gateways/amazon-payments.php:
|
6245 |
msgid "MWS Secret Key"
|
6246 |
msgstr ""
|
6247 |
|
6248 |
-
#: includes/gateways/amazon-payments.php:
|
6249 |
msgid "Client ID"
|
6250 |
msgstr ""
|
6251 |
|
6252 |
-
#: includes/gateways/amazon-payments.php:
|
6253 |
msgid "The Amazon Client ID. Should look like `amzn1.application-oa2...`"
|
6254 |
msgstr ""
|
6255 |
|
6256 |
-
#: includes/gateways/amazon-payments.php:
|
6257 |
msgid "Amazon MWS Callback URL"
|
6258 |
msgstr ""
|
6259 |
|
6260 |
-
#: includes/gateways/amazon-payments.php:
|
6261 |
msgid ""
|
6262 |
"The Return URL to provide in your MWS Application. Enter this under your "
|
6263 |
"Login and Pay → Web Settings"
|
6264 |
msgstr ""
|
6265 |
|
6266 |
-
#: includes/gateways/amazon-payments.php:
|
6267 |
msgid "Amazon Merchant IPN URL"
|
6268 |
msgstr ""
|
6269 |
|
6270 |
-
#: includes/gateways/amazon-payments.php:
|
6271 |
msgid ""
|
6272 |
"The IPN URL to provide in your MWS account. Enter this under your <a "
|
6273 |
"href=\"%s\">Integration Settings</a>"
|
6274 |
msgstr ""
|
6275 |
|
6276 |
-
#: includes/gateways/amazon-payments.php:
|
6277 |
msgid "Currently logged into Amazon as"
|
6278 |
msgstr ""
|
6279 |
|
6280 |
-
#: includes/gateways/amazon-payments.php:
|
6281 |
msgid "Logout"
|
6282 |
msgstr ""
|
6283 |
|
6284 |
-
#: includes/gateways/amazon-payments.php:
|
6285 |
-
#: includes/gateways/amazon-payments.php:
|
6286 |
msgid "Missing Reference ID, please try again"
|
6287 |
msgstr ""
|
6288 |
|
6289 |
-
#: includes/gateways/amazon-payments.php:
|
6290 |
msgid ""
|
6291 |
"Your payment could not be authorized, please try a different payment "
|
6292 |
"method. Reason: %s"
|
6293 |
msgstr ""
|
6294 |
|
6295 |
-
#: includes/gateways/amazon-payments.php:
|
6296 |
msgid "There was an issue processing your payment. Amazon error: %s"
|
6297 |
msgstr ""
|
6298 |
|
6299 |
-
#: includes/gateways/amazon-payments.php:
|
6300 |
msgid "Invalid Amazon seller ID"
|
6301 |
msgstr ""
|
6302 |
|
6303 |
-
#: includes/gateways/amazon-payments.php:
|
6304 |
-
#: includes/gateways/amazon-payments.php:
|
6305 |
-
#: includes/gateways/paypal-standard.php:
|
6306 |
-
#: includes/gateways/paypal-standard.php:
|
6307 |
-
#: includes/gateways/paypal-standard.php:
|
6308 |
-
#: includes/gateways/paypal-standard.php:
|
6309 |
-
#: includes/gateways/paypal-standard.php:
|
6310 |
-
#: includes/gateways/paypal-standard.php:
|
6311 |
msgid "IPN Error"
|
6312 |
msgstr ""
|
6313 |
|
6314 |
-
#: includes/gateways/amazon-payments.php:
|
6315 |
msgid "Capture declined in Amazon"
|
6316 |
msgstr ""
|
6317 |
|
6318 |
-
#: includes/gateways/amazon-payments.php:
|
6319 |
-
#: includes/gateways/amazon-payments.php:
|
6320 |
msgid "Refund completed in Amazon. Refund ID: %s"
|
6321 |
msgstr ""
|
6322 |
|
6323 |
-
#: includes/gateways/amazon-payments.php:
|
6324 |
msgid "Refund declined in Amazon. Refund ID: %s"
|
6325 |
msgstr ""
|
6326 |
|
6327 |
-
#: includes/gateways/amazon-payments.php:
|
6328 |
msgid "Refund initiated in Amazon. Reference ID: %s"
|
6329 |
msgstr ""
|
6330 |
|
6331 |
-
#: includes/gateways/amazon-payments.php:
|
6332 |
msgid "Refund request failed in Amazon."
|
6333 |
msgstr ""
|
6334 |
|
@@ -6348,7 +6191,7 @@ msgstr ""
|
|
6348 |
msgid "The requested price ID does not exist."
|
6349 |
msgstr ""
|
6350 |
|
6351 |
-
#: includes/gateways/manual.php:33 includes/gateways/paypal-standard.php:
|
6352 |
msgid "Nonce verification has failed"
|
6353 |
msgstr ""
|
6354 |
|
@@ -6371,138 +6214,126 @@ msgid "Enter your PayPal account's email"
|
|
6371 |
msgstr ""
|
6372 |
|
6373 |
#: includes/gateways/paypal-standard.php:63
|
6374 |
-
msgid "PayPal
|
6375 |
msgstr ""
|
6376 |
|
6377 |
#: includes/gateways/paypal-standard.php:64
|
6378 |
-
msgid "
|
6379 |
msgstr ""
|
6380 |
|
6381 |
#: includes/gateways/paypal-standard.php:71
|
6382 |
msgid ""
|
6383 |
-
"
|
6384 |
-
"
|
6385 |
-
"
|
6386 |
"information."
|
6387 |
msgstr ""
|
6388 |
|
6389 |
#: includes/gateways/paypal-standard.php:77
|
6390 |
-
msgid "PayPal Identity Token"
|
6391 |
-
msgstr ""
|
6392 |
-
|
6393 |
-
#: includes/gateways/paypal-standard.php:84
|
6394 |
-
msgid ""
|
6395 |
-
"If you are unable to use Payment Data Transfer and payments are not getting "
|
6396 |
-
"marked as complete, then check this box. This forces the site to use a "
|
6397 |
-
"slightly less secure method of verifying purchases. See our <a href=\"%s\" "
|
6398 |
-
"target=\"_blank\">FAQ</a> for further information."
|
6399 |
-
msgstr ""
|
6400 |
-
|
6401 |
-
#: includes/gateways/paypal-standard.php:90
|
6402 |
msgid "Disable PayPal IPN Verification"
|
6403 |
msgstr ""
|
6404 |
|
6405 |
-
#: includes/gateways/paypal-standard.php:
|
6406 |
msgid "API Credentials"
|
6407 |
msgstr ""
|
6408 |
|
6409 |
-
#: includes/gateways/paypal-standard.php:
|
6410 |
msgid ""
|
6411 |
"API credentials are necessary to process PayPal refunds from inside "
|
6412 |
"WordPress. These can be obtained from <a href=\"%s\" target=\"_blank\">your "
|
6413 |
"PayPal account</a>."
|
6414 |
msgstr ""
|
6415 |
|
6416 |
-
#: includes/gateways/paypal-standard.php:
|
6417 |
msgid "Live API Username"
|
6418 |
msgstr ""
|
6419 |
|
6420 |
-
#: includes/gateways/paypal-standard.php:
|
6421 |
msgid "Your PayPal live API username. "
|
6422 |
msgstr ""
|
6423 |
|
6424 |
-
#: includes/gateways/paypal-standard.php:
|
6425 |
msgid "Live API Password"
|
6426 |
msgstr ""
|
6427 |
|
6428 |
-
#: includes/gateways/paypal-standard.php:
|
6429 |
msgid "Your PayPal live API password."
|
6430 |
msgstr ""
|
6431 |
|
6432 |
-
#: includes/gateways/paypal-standard.php:
|
6433 |
msgid "Live API Signature"
|
6434 |
msgstr ""
|
6435 |
|
6436 |
-
#: includes/gateways/paypal-standard.php:
|
6437 |
msgid "Your PayPal live API signature."
|
6438 |
msgstr ""
|
6439 |
|
6440 |
-
#: includes/gateways/paypal-standard.php:
|
6441 |
msgid "Test API Username"
|
6442 |
msgstr ""
|
6443 |
|
6444 |
-
#: includes/gateways/paypal-standard.php:
|
6445 |
msgid "Your PayPal test API username."
|
6446 |
msgstr ""
|
6447 |
|
6448 |
-
#: includes/gateways/paypal-standard.php:
|
6449 |
msgid "Test API Password"
|
6450 |
msgstr ""
|
6451 |
|
6452 |
-
#: includes/gateways/paypal-standard.php:
|
6453 |
msgid "Your PayPal test API password."
|
6454 |
msgstr ""
|
6455 |
|
6456 |
-
#: includes/gateways/paypal-standard.php:
|
6457 |
msgid "Test API Signature"
|
6458 |
msgstr ""
|
6459 |
|
6460 |
-
#: includes/gateways/paypal-standard.php:
|
6461 |
msgid "Your PayPal test API signature."
|
6462 |
msgstr ""
|
6463 |
|
6464 |
-
#: includes/gateways/paypal-standard.php:
|
6465 |
msgid "Payment creation failed before sending buyer to PayPal. Payment data: %s"
|
6466 |
msgstr ""
|
6467 |
|
6468 |
-
#: includes/gateways/paypal-standard.php:
|
6469 |
-
#: includes/gateways/paypal-standard.php:
|
6470 |
msgid "Invalid IPN verification response. IPN data: %s"
|
6471 |
msgstr ""
|
6472 |
|
6473 |
-
#: includes/gateways/paypal-standard.php:
|
6474 |
msgid "Invalid business email in IPN response. IPN data: %s"
|
6475 |
msgstr ""
|
6476 |
|
6477 |
-
#: includes/gateways/paypal-standard.php:
|
6478 |
msgid "Payment failed due to invalid PayPal business email."
|
6479 |
msgstr ""
|
6480 |
|
6481 |
-
#: includes/gateways/paypal-standard.php:
|
6482 |
msgid "Invalid currency in IPN response. IPN data: %s"
|
6483 |
msgstr ""
|
6484 |
|
6485 |
-
#: includes/gateways/paypal-standard.php:
|
6486 |
msgid "Payment failed due to invalid currency in PayPal IPN."
|
6487 |
msgstr ""
|
6488 |
|
6489 |
-
#: includes/gateways/paypal-standard.php:
|
6490 |
msgid "Invalid payment amount in IPN response. IPN data: %s"
|
6491 |
msgstr ""
|
6492 |
|
6493 |
-
#: includes/gateways/paypal-standard.php:
|
6494 |
msgid "Payment failed due to invalid amount in PayPal IPN."
|
6495 |
msgstr ""
|
6496 |
|
6497 |
-
#: includes/gateways/paypal-standard.php:
|
6498 |
msgid "Invalid purchase key in IPN response. IPN data: %s"
|
6499 |
msgstr ""
|
6500 |
|
6501 |
-
#: includes/gateways/paypal-standard.php:
|
6502 |
msgid "Payment failed due to invalid purchase key in PayPal IPN."
|
6503 |
msgstr ""
|
6504 |
|
6505 |
-
#: includes/gateways/paypal-standard.php:
|
6506 |
#: tests/helpers/class-helper-payment.php:131
|
6507 |
#: tests/helpers/class-helper-payment.php:234
|
6508 |
#: tests/helpers/class-helper-payment.php:342
|
@@ -6513,82 +6344,87 @@ msgstr ""
|
|
6513 |
msgid "PayPal Transaction ID: %s"
|
6514 |
msgstr ""
|
6515 |
|
6516 |
-
#: includes/gateways/paypal-standard.php:
|
6517 |
msgid "Payment made via eCheck and will clear automatically in 5-8 days"
|
6518 |
msgstr ""
|
6519 |
|
6520 |
-
#: includes/gateways/paypal-standard.php:
|
6521 |
msgid ""
|
6522 |
"Payment requires a confirmed customer address and must be accepted manually "
|
6523 |
"through PayPal"
|
6524 |
msgstr ""
|
6525 |
|
6526 |
-
#: includes/gateways/paypal-standard.php:
|
6527 |
msgid ""
|
6528 |
"Payment must be accepted manually through PayPal due to international "
|
6529 |
"account regulations"
|
6530 |
msgstr ""
|
6531 |
|
6532 |
-
#: includes/gateways/paypal-standard.php:
|
6533 |
msgid ""
|
6534 |
"Payment received in non-shop currency and must be accepted manually through "
|
6535 |
"PayPal"
|
6536 |
msgstr ""
|
6537 |
|
6538 |
-
#: includes/gateways/paypal-standard.php:
|
6539 |
msgid ""
|
6540 |
"Payment is being reviewed by PayPal staff as high-risk or in possible "
|
6541 |
"violation of government regulations"
|
6542 |
msgstr ""
|
6543 |
|
6544 |
-
#: includes/gateways/paypal-standard.php:
|
6545 |
msgid "Payment was sent to non-confirmed or non-registered email address."
|
6546 |
msgstr ""
|
6547 |
|
6548 |
-
#: includes/gateways/paypal-standard.php:
|
6549 |
msgid "PayPal account must be upgraded before this payment can be accepted"
|
6550 |
msgstr ""
|
6551 |
|
6552 |
-
#: includes/gateways/paypal-standard.php:
|
6553 |
msgid ""
|
6554 |
"PayPal account is not verified. Verify account in order to accept this "
|
6555 |
"payment"
|
6556 |
msgstr ""
|
6557 |
|
6558 |
-
#: includes/gateways/paypal-standard.php:
|
6559 |
msgid ""
|
6560 |
"Payment is pending for unknown reasons. Contact PayPal support for "
|
6561 |
"assistance"
|
6562 |
msgstr ""
|
6563 |
|
6564 |
-
#: includes/gateways/paypal-standard.php:
|
6565 |
msgid "Partial PayPal refund processed: %s"
|
6566 |
msgstr ""
|
6567 |
|
6568 |
-
#: includes/gateways/paypal-standard.php:
|
6569 |
msgid "PayPal Payment #%s Refunded for reason: %s"
|
6570 |
msgstr ""
|
6571 |
|
6572 |
-
#: includes/gateways/paypal-standard.php:
|
6573 |
msgid "PayPal Refund Transaction ID: %s"
|
6574 |
msgstr ""
|
6575 |
|
6576 |
-
#: includes/gateways/paypal-standard.php:
|
6577 |
msgid "Refund Payment in PayPal"
|
6578 |
msgstr ""
|
6579 |
|
6580 |
-
#: includes/gateways/paypal-standard.php:
|
6581 |
msgid "PayPal refund failed for unknown reason."
|
6582 |
msgstr ""
|
6583 |
|
6584 |
-
#: includes/gateways/paypal-standard.php:
|
6585 |
msgid "PayPal refund transaction ID: %s"
|
6586 |
msgstr ""
|
6587 |
|
6588 |
-
#: includes/gateways/paypal-standard.php:
|
6589 |
msgid "PayPal refund failed: %s"
|
6590 |
msgstr ""
|
6591 |
|
|
|
|
|
|
|
|
|
|
|
6592 |
#: includes/install.php:111
|
6593 |
msgid "Purchase Confirmation"
|
6594 |
msgstr ""
|
@@ -6601,217 +6437,209 @@ msgstr ""
|
|
6601 |
msgid "Purchase History"
|
6602 |
msgstr ""
|
6603 |
|
6604 |
-
#: includes/login-register.php:
|
6605 |
msgid "The password you entered is incorrect"
|
6606 |
msgstr ""
|
6607 |
|
6608 |
-
#: includes/login-register.php:
|
6609 |
msgid "The username you entered does not exist"
|
6610 |
msgstr ""
|
6611 |
|
6612 |
-
#: includes/login-register.php:
|
6613 |
-
#: includes/process-purchase.php:
|
6614 |
msgid "Invalid username"
|
6615 |
msgstr ""
|
6616 |
|
6617 |
-
#: includes/login-register.php:
|
6618 |
msgid "Username already taken"
|
6619 |
msgstr ""
|
6620 |
|
6621 |
-
#: includes/login-register.php:
|
6622 |
msgid "Email address already taken"
|
6623 |
msgstr ""
|
6624 |
|
6625 |
-
#: includes/login-register.php:
|
6626 |
-
#: includes/process-purchase.php:
|
6627 |
msgid "Invalid email"
|
6628 |
msgstr ""
|
6629 |
|
6630 |
-
#: includes/login-register.php:
|
6631 |
msgid "Invalid payment email"
|
6632 |
msgstr ""
|
6633 |
|
6634 |
-
#: includes/login-register.php:
|
6635 |
msgid "Please enter a password"
|
6636 |
msgstr ""
|
6637 |
|
6638 |
-
#: includes/login-register.php:
|
6639 |
msgid "Passwords do not match"
|
6640 |
msgstr ""
|
6641 |
|
6642 |
-
#: includes/misc-functions.php:
|
6643 |
msgid "US Dollars ($)"
|
6644 |
msgstr ""
|
6645 |
|
6646 |
-
#: includes/misc-functions.php:
|
6647 |
msgid "Euros (€)"
|
6648 |
msgstr ""
|
6649 |
|
6650 |
-
#: includes/misc-functions.php:
|
6651 |
msgid "Pound Sterling (£)"
|
6652 |
msgstr ""
|
6653 |
|
6654 |
-
#: includes/misc-functions.php:
|
6655 |
msgid "Australian Dollars ($)"
|
6656 |
msgstr ""
|
6657 |
|
6658 |
-
#: includes/misc-functions.php:
|
6659 |
msgid "Brazilian Real (R$)"
|
6660 |
msgstr ""
|
6661 |
|
6662 |
-
#: includes/misc-functions.php:
|
6663 |
msgid "Canadian Dollars ($)"
|
6664 |
msgstr ""
|
6665 |
|
6666 |
-
#: includes/misc-functions.php:
|
6667 |
msgid "Czech Koruna"
|
6668 |
msgstr ""
|
6669 |
|
6670 |
-
#: includes/misc-functions.php:
|
6671 |
msgid "Danish Krone"
|
6672 |
msgstr ""
|
6673 |
|
6674 |
-
#: includes/misc-functions.php:
|
6675 |
msgid "Hong Kong Dollar ($)"
|
6676 |
msgstr ""
|
6677 |
|
6678 |
-
#: includes/misc-functions.php:
|
6679 |
msgid "Hungarian Forint"
|
6680 |
msgstr ""
|
6681 |
|
6682 |
-
#: includes/misc-functions.php:
|
6683 |
msgid "Israeli Shekel (₪)"
|
6684 |
msgstr ""
|
6685 |
|
6686 |
-
#: includes/misc-functions.php:
|
6687 |
msgid "Japanese Yen (¥)"
|
6688 |
msgstr ""
|
6689 |
|
6690 |
-
#: includes/misc-functions.php:
|
6691 |
msgid "Malaysian Ringgits"
|
6692 |
msgstr ""
|
6693 |
|
6694 |
-
#: includes/misc-functions.php:
|
6695 |
msgid "Mexican Peso ($)"
|
6696 |
msgstr ""
|
6697 |
|
6698 |
-
#: includes/misc-functions.php:
|
6699 |
msgid "New Zealand Dollar ($)"
|
6700 |
msgstr ""
|
6701 |
|
6702 |
-
#: includes/misc-functions.php:
|
6703 |
msgid "Norwegian Krone"
|
6704 |
msgstr ""
|
6705 |
|
6706 |
-
#: includes/misc-functions.php:
|
6707 |
msgid "Philippine Pesos"
|
6708 |
msgstr ""
|
6709 |
|
6710 |
-
#: includes/misc-functions.php:
|
6711 |
msgid "Polish Zloty"
|
6712 |
msgstr ""
|
6713 |
|
6714 |
-
#: includes/misc-functions.php:
|
6715 |
msgid "Singapore Dollar ($)"
|
6716 |
msgstr ""
|
6717 |
|
6718 |
-
#: includes/misc-functions.php:
|
6719 |
msgid "Swedish Krona"
|
6720 |
msgstr ""
|
6721 |
|
6722 |
-
#: includes/misc-functions.php:
|
6723 |
msgid "Swiss Franc"
|
6724 |
msgstr ""
|
6725 |
|
6726 |
-
#: includes/misc-functions.php:
|
6727 |
msgid "Taiwan New Dollars"
|
6728 |
msgstr ""
|
6729 |
|
6730 |
-
#: includes/misc-functions.php:
|
6731 |
msgid "Thai Baht (฿)"
|
6732 |
msgstr ""
|
6733 |
|
6734 |
-
#: includes/misc-functions.php:
|
6735 |
msgid "Indian Rupee (₹)"
|
6736 |
msgstr ""
|
6737 |
|
6738 |
-
#: includes/misc-functions.php:
|
6739 |
msgid "Turkish Lira (₺)"
|
6740 |
msgstr ""
|
6741 |
|
6742 |
-
#: includes/misc-functions.php:
|
6743 |
msgid "Iranian Rial (﷼)"
|
6744 |
msgstr ""
|
6745 |
|
6746 |
-
#: includes/misc-functions.php:
|
6747 |
msgid "Russian Rubles"
|
6748 |
msgstr ""
|
6749 |
|
6750 |
-
#: includes/misc-functions.php:
|
6751 |
-
msgid "Angolan Kwanza"
|
6752 |
-
msgstr ""
|
6753 |
-
|
6754 |
-
#: includes/misc-functions.php:536
|
6755 |
msgid ""
|
6756 |
"%1$s is <strong>deprecated</strong> since Easy Digital Downloads version "
|
6757 |
"%2$s! Use %3$s instead."
|
6758 |
msgstr ""
|
6759 |
|
6760 |
-
#: includes/misc-functions.php:
|
6761 |
msgid ""
|
6762 |
"%1$s is <strong>deprecated</strong> since Easy Digital Downloads version "
|
6763 |
"%2$s with no alternative available."
|
6764 |
msgstr ""
|
6765 |
|
6766 |
-
#: includes/misc-functions.php:
|
6767 |
msgid ""
|
6768 |
"The %1$s argument of %2$s is <strong>deprecated</strong> since Easy Digital "
|
6769 |
"Downloads version %3$s! Please use %4$s instead."
|
6770 |
msgstr ""
|
6771 |
|
6772 |
-
#: includes/misc-functions.php:
|
6773 |
msgid ""
|
6774 |
"The %1$s argument of %2$s is <strong>deprecated</strong> since Easy Digital "
|
6775 |
"Downloads version %3$s with no alternative available."
|
6776 |
msgstr ""
|
6777 |
|
6778 |
-
#: includes/payments/actions.php:
|
6779 |
-
msgid "After payment actions processed."
|
6780 |
-
msgstr ""
|
6781 |
-
|
6782 |
-
#: includes/payments/actions.php:219
|
6783 |
msgid "Status changed from %s to %s"
|
6784 |
msgstr ""
|
6785 |
|
6786 |
-
#: includes/payments/actions.php:
|
6787 |
msgid "Error resuming payment."
|
6788 |
msgstr ""
|
6789 |
|
6790 |
-
#: includes/payments/actions.php:
|
6791 |
msgid "Payment recovery triggered URL"
|
6792 |
msgstr ""
|
6793 |
|
6794 |
-
#: includes/payments/actions.php:
|
6795 |
msgid "To complete this payment, please login to your account."
|
6796 |
msgstr ""
|
6797 |
|
6798 |
-
#: includes/payments/actions.php:
|
6799 |
msgid "Lost Password"
|
6800 |
msgstr ""
|
6801 |
|
6802 |
-
#: includes/payments/actions.php:
|
6803 |
msgid "Lost Password?"
|
6804 |
msgstr ""
|
6805 |
|
6806 |
-
#: includes/payments/functions.php:
|
6807 |
msgid "Payment recovery processed"
|
6808 |
msgstr ""
|
6809 |
|
6810 |
-
#: includes/payments/functions.php:
|
6811 |
msgid "Complete"
|
6812 |
msgstr ""
|
6813 |
|
6814 |
-
#: includes/payments/functions.php:
|
6815 |
msgid "EDD Bot"
|
6816 |
msgstr ""
|
6817 |
|
@@ -7113,133 +6941,121 @@ msgid_plural "%1$s %3$s restored from the Trash."
|
|
7113 |
msgstr[0] ""
|
7114 |
msgstr[1] ""
|
7115 |
|
7116 |
-
#: includes/process-download.php:
|
7117 |
-
msgid "Error downloading file. Please contact support."
|
7118 |
-
msgstr ""
|
7119 |
-
|
7120 |
-
#: includes/process-download.php:146
|
7121 |
-
msgid "File download error"
|
7122 |
-
msgstr ""
|
7123 |
-
|
7124 |
-
#: includes/process-download.php:288
|
7125 |
msgid "You do not have permission to download this file"
|
7126 |
msgstr ""
|
7127 |
|
7128 |
-
#: includes/process-download.php:
|
7129 |
msgid "Purchase Verification Failed"
|
7130 |
msgstr ""
|
7131 |
|
7132 |
-
#: includes/process-download.php:
|
7133 |
msgid "Invalid file"
|
7134 |
msgstr ""
|
7135 |
|
7136 |
-
#: includes/process-download.php:
|
7137 |
msgid "The requested file could not be found. Error 404."
|
7138 |
msgstr ""
|
7139 |
|
7140 |
-
#: includes/process-download.php:
|
7141 |
msgid "File not found"
|
7142 |
msgstr ""
|
7143 |
|
7144 |
-
#: includes/process-purchase.php:31 includes/scripts.php:
|
7145 |
msgid "Your cart is empty"
|
7146 |
msgstr ""
|
7147 |
|
7148 |
-
#: includes/process-purchase.php:
|
7149 |
-
msgid "The email address %s is already in use."
|
7150 |
-
msgstr ""
|
7151 |
-
|
7152 |
-
#: includes/process-purchase.php:317
|
7153 |
msgid "The selected payment gateway is not enabled"
|
7154 |
msgstr ""
|
7155 |
|
7156 |
-
#: includes/process-purchase.php:
|
7157 |
msgid "One or more of the discounts you entered is invalid"
|
7158 |
msgstr ""
|
7159 |
|
7160 |
-
#: includes/process-purchase.php:
|
7161 |
msgid "You must agree to the terms of use"
|
7162 |
msgstr ""
|
7163 |
|
7164 |
-
#: includes/process-purchase.php:
|
7165 |
msgid "Please enter a valid email address"
|
7166 |
msgstr ""
|
7167 |
|
7168 |
-
#: includes/process-purchase.php:
|
7169 |
msgid "Please enter your first name"
|
7170 |
msgstr ""
|
7171 |
|
7172 |
-
#: includes/process-purchase.php:
|
7173 |
msgid "Please enter your zip / postal code"
|
7174 |
msgstr ""
|
7175 |
|
7176 |
-
#: includes/process-purchase.php:
|
7177 |
msgid "Please enter your billing city"
|
7178 |
msgstr ""
|
7179 |
|
7180 |
-
#: includes/process-purchase.php:
|
7181 |
msgid "Please select your billing country"
|
7182 |
msgstr ""
|
7183 |
|
7184 |
-
#: includes/process-purchase.php:
|
7185 |
msgid "Please enter billing state / province"
|
7186 |
msgstr ""
|
7187 |
|
7188 |
-
#: includes/process-purchase.php:
|
7189 |
msgid "The user information is invalid"
|
7190 |
msgstr ""
|
7191 |
|
7192 |
-
#: includes/process-purchase.php:
|
7193 |
msgid "Invalid username. Only lowercase letters (a-z) and numbers are allowed"
|
7194 |
msgstr ""
|
7195 |
|
7196 |
-
#: includes/process-purchase.php:
|
7197 |
msgid "You must register or login to complete your purchase"
|
7198 |
msgstr ""
|
7199 |
|
7200 |
-
#: includes/process-purchase.php:
|
7201 |
msgid ""
|
7202 |
"Email already used. Login or use a different email to complete your "
|
7203 |
"purchase."
|
7204 |
msgstr ""
|
7205 |
|
7206 |
-
#: includes/process-purchase.php:
|
7207 |
msgid "Enter an email"
|
7208 |
msgstr ""
|
7209 |
|
7210 |
-
#: includes/process-purchase.php:
|
7211 |
msgid "Passwords don't match"
|
7212 |
msgstr ""
|
7213 |
|
7214 |
-
#: includes/process-purchase.php:
|
7215 |
msgid "Enter a password"
|
7216 |
msgstr ""
|
7217 |
|
7218 |
-
#: includes/process-purchase.php:
|
7219 |
msgid "Enter the password confirmation"
|
7220 |
msgstr ""
|
7221 |
|
7222 |
-
#: includes/process-purchase.php:
|
7223 |
msgid "You must login or register to complete your purchase"
|
7224 |
msgstr ""
|
7225 |
|
7226 |
-
#: includes/process-purchase.php:
|
7227 |
msgid "The password you entered is incorrect. %sReset Password%s"
|
7228 |
msgstr ""
|
7229 |
|
7230 |
-
#: includes/process-purchase.php:
|
7231 |
msgid "You must be logged into an account to purchase"
|
7232 |
msgstr ""
|
7233 |
|
7234 |
-
#: includes/process-purchase.php:
|
7235 |
msgid "The zip / postal code you entered for your billing address is invalid"
|
7236 |
msgstr ""
|
7237 |
|
7238 |
-
#: includes/process-purchase.php:
|
7239 |
msgid "An internal error has occurred, please try again or contact support."
|
7240 |
msgstr ""
|
7241 |
|
7242 |
-
#: includes/process-purchase.php:
|
7243 |
msgid "There was an error completing your purchase. Please try again."
|
7244 |
msgstr ""
|
7245 |
|
@@ -7247,291 +7063,283 @@ msgstr ""
|
|
7247 |
msgid "You do not have permission to view this file."
|
7248 |
msgstr ""
|
7249 |
|
7250 |
-
#: includes/scripts.php:
|
7251 |
msgid "Please select a payment method"
|
7252 |
msgstr ""
|
7253 |
|
7254 |
-
#: includes/scripts.php:
|
7255 |
msgid "Please enter a discount code"
|
7256 |
msgstr ""
|
7257 |
|
7258 |
-
#: includes/scripts.php:
|
7259 |
msgid "Discount Applied"
|
7260 |
msgstr ""
|
7261 |
|
7262 |
-
#: includes/scripts.php:
|
7263 |
msgid "Please enter an email address before applying a discount code"
|
7264 |
msgstr ""
|
7265 |
|
7266 |
-
#: includes/scripts.php:
|
7267 |
msgid "Please enter a username before applying a discount code"
|
7268 |
msgstr ""
|
7269 |
|
7270 |
-
#: includes/scripts.php:
|
7271 |
msgid "Please Wait..."
|
7272 |
msgstr ""
|
7273 |
|
7274 |
-
#: includes/scripts.php:
|
7275 |
msgid "You have already added this item to your cart"
|
7276 |
msgstr ""
|
7277 |
|
7278 |
-
#: includes/scripts.php:
|
7279 |
msgid "Loading"
|
7280 |
msgstr ""
|
7281 |
|
7282 |
-
#: includes/scripts.php:
|
7283 |
msgid "Add New Download"
|
7284 |
msgstr ""
|
7285 |
|
7286 |
-
#: includes/scripts.php:
|
7287 |
msgid "Use This File"
|
7288 |
msgstr ""
|
7289 |
|
7290 |
-
#: includes/scripts.php:
|
7291 |
msgid "Sorry, not available for variable priced products."
|
7292 |
msgstr ""
|
7293 |
|
7294 |
-
#: includes/scripts.php:
|
7295 |
msgid "Are you sure you wish to delete this payment?"
|
7296 |
msgstr ""
|
7297 |
|
7298 |
-
#: includes/scripts.php:
|
7299 |
msgid "Are you sure you wish to delete this note?"
|
7300 |
msgstr ""
|
7301 |
|
7302 |
-
#: includes/scripts.php:
|
7303 |
msgid "Are you sure you wish to delete this tax rate?"
|
7304 |
msgstr ""
|
7305 |
|
7306 |
-
#: includes/scripts.php:
|
7307 |
msgid "Are you sure you wish to revoke this API key?"
|
7308 |
msgstr ""
|
7309 |
|
7310 |
-
#: includes/scripts.php:
|
7311 |
msgid "Are you sure you wish to regenerate this API key?"
|
7312 |
msgstr ""
|
7313 |
|
7314 |
-
#: includes/scripts.php:
|
7315 |
msgid "Are you sure you wish to resend the purchase receipt?"
|
7316 |
msgstr ""
|
7317 |
|
7318 |
-
#: includes/scripts.php:
|
7319 |
msgid "Copy these links to your clipboard and give them to your customer"
|
7320 |
msgstr ""
|
7321 |
|
7322 |
-
#: includes/scripts.php:
|
7323 |
msgid "Are you sure you wish to delete this %s?"
|
7324 |
msgstr ""
|
7325 |
|
7326 |
-
#: includes/scripts.php:
|
7327 |
msgid "You must have at least one price"
|
7328 |
msgstr ""
|
7329 |
|
7330 |
-
#: includes/scripts.php:
|
7331 |
msgid "You must have at least one field"
|
7332 |
msgstr ""
|
7333 |
|
7334 |
-
#: includes/scripts.php:
|
7335 |
msgid "Payments must contain at least one item"
|
7336 |
msgstr ""
|
7337 |
|
7338 |
-
#: includes/scripts.php:
|
7339 |
msgid "Choose one or more %s"
|
7340 |
msgstr ""
|
7341 |
|
7342 |
-
#: includes/scripts.php:
|
7343 |
msgid "Item price must be numeric"
|
7344 |
msgstr ""
|
7345 |
|
7346 |
-
#: includes/scripts.php:
|
7347 |
msgid "Item tax must be numeric"
|
7348 |
msgstr ""
|
7349 |
|
7350 |
-
#: includes/scripts.php:
|
7351 |
msgid "Quantity must be numeric"
|
7352 |
msgstr ""
|
7353 |
|
7354 |
-
#: includes/scripts.php:
|
7355 |
msgid "Type to search %s"
|
7356 |
msgstr ""
|
7357 |
|
7358 |
-
#: includes/scripts.php:
|
7359 |
msgid "You must choose a method."
|
7360 |
msgstr ""
|
7361 |
|
7362 |
-
#: includes/scripts.php:
|
7363 |
msgid "Required fields not completed."
|
7364 |
msgstr ""
|
7365 |
|
7366 |
-
#: includes/scripts.php:
|
7367 |
msgid ""
|
7368 |
"Are you sure you want to reset your store? This process is <strong><em>not "
|
7369 |
"reversible</em></strong>. Please be sure you have a recent backup."
|
7370 |
msgstr ""
|
7371 |
|
7372 |
-
#: includes/scripts.php:
|
7373 |
-
msgid ""
|
7374 |
-
"We are sorry but your browser is not compatible with this kind of file "
|
7375 |
-
"upload. Please upgrade your browser."
|
7376 |
-
msgstr ""
|
7377 |
-
|
7378 |
-
#: includes/scripts.php:234
|
7379 |
-
msgid "Hide advanced settings"
|
7380 |
-
msgstr ""
|
7381 |
-
|
7382 |
-
#: includes/scripts.php:245
|
7383 |
-
msgid "Purchase Limit Settings"
|
7384 |
msgstr ""
|
7385 |
|
7386 |
-
#: includes/scripts.php:
|
7387 |
-
msgid "
|
7388 |
msgstr ""
|
7389 |
|
7390 |
-
#: includes/scripts.php:
|
7391 |
-
msgid "
|
7392 |
msgstr ""
|
7393 |
|
7394 |
-
#: includes/scripts.php:
|
7395 |
-
msgid "
|
|
|
|
|
7396 |
msgstr ""
|
7397 |
|
7398 |
#: includes/shortcodes.php:294
|
7399 |
msgid "Purchase All Items"
|
7400 |
msgstr ""
|
7401 |
|
7402 |
-
#: includes/shortcodes.php:
|
7403 |
msgid "Sorry, trouble retrieving payment receipt."
|
7404 |
msgstr ""
|
7405 |
|
7406 |
-
#: includes/shortcodes.php:
|
7407 |
msgid "You must be logged in to view this payment receipt."
|
7408 |
msgstr ""
|
7409 |
|
7410 |
-
#: includes/shortcodes.php:
|
7411 |
msgid "Receipt could not be retrieved, your purchase session has expired."
|
7412 |
msgstr ""
|
7413 |
|
7414 |
-
#: includes/shortcodes.php:
|
7415 |
msgid "The passwords you entered do not match. Please try again."
|
7416 |
msgstr ""
|
7417 |
|
7418 |
-
#: includes/shortcodes.php:
|
7419 |
msgid "The email you entered is invalid. Please enter a valid email."
|
7420 |
msgstr ""
|
7421 |
|
7422 |
-
#: includes/shortcodes.php:
|
7423 |
msgid "The email you entered belongs to another user. Please use another."
|
7424 |
msgstr ""
|
7425 |
|
7426 |
-
#: includes/shortcodes.php:
|
7427 |
msgid "Error removing email address from profile. Please try again later."
|
7428 |
msgstr ""
|
7429 |
|
7430 |
-
#: includes/template-functions.php:
|
7431 |
msgid "Free"
|
7432 |
msgstr ""
|
7433 |
|
7434 |
-
#: includes/template-functions.php:
|
7435 |
msgid "Added to cart"
|
7436 |
msgstr ""
|
7437 |
|
7438 |
-
#: includes/template-functions.php:
|
7439 |
msgid "Includes %1$s% tax"
|
7440 |
msgstr ""
|
7441 |
|
7442 |
-
#: includes/template-functions.php:
|
7443 |
msgid "Excluding %1$s% tax"
|
7444 |
msgstr ""
|
7445 |
|
7446 |
-
#: includes/template-functions.php:
|
7447 |
msgid "White"
|
7448 |
msgstr ""
|
7449 |
|
7450 |
-
#: includes/template-functions.php:
|
7451 |
msgid "Gray"
|
7452 |
msgstr ""
|
7453 |
|
7454 |
-
#: includes/template-functions.php:
|
7455 |
msgid "Blue"
|
7456 |
msgstr ""
|
7457 |
|
7458 |
-
#: includes/template-functions.php:
|
7459 |
msgid "Red"
|
7460 |
msgstr ""
|
7461 |
|
7462 |
-
#: includes/template-functions.php:
|
7463 |
msgid "Green"
|
7464 |
msgstr ""
|
7465 |
|
7466 |
-
#: includes/template-functions.php:
|
7467 |
msgid "Yellow"
|
7468 |
msgstr ""
|
7469 |
|
7470 |
-
#: includes/template-functions.php:
|
7471 |
msgid "Orange"
|
7472 |
msgstr ""
|
7473 |
|
7474 |
-
#: includes/template-functions.php:
|
7475 |
msgid "Dark Gray"
|
7476 |
msgstr ""
|
7477 |
|
7478 |
-
#: includes/template-functions.php:
|
7479 |
msgid "Inherit"
|
7480 |
msgstr ""
|
7481 |
|
7482 |
-
#: includes/template-functions.php:
|
7483 |
msgid "Button"
|
7484 |
msgstr ""
|
7485 |
|
7486 |
-
#: includes/template-functions.php:
|
7487 |
msgid "Plain Text"
|
7488 |
msgstr ""
|
7489 |
|
7490 |
-
#: includes/user-functions.php:
|
7491 |
msgid "[%s] New User Registration"
|
7492 |
msgstr ""
|
7493 |
|
7494 |
-
#: includes/user-functions.php:
|
7495 |
msgid "New user registration"
|
7496 |
msgstr ""
|
7497 |
|
7498 |
-
#: includes/user-functions.php:
|
7499 |
msgid "E-mail: %s"
|
7500 |
msgstr ""
|
7501 |
|
7502 |
-
#: includes/user-functions.php:
|
7503 |
msgid "[%s] Your username and password"
|
7504 |
msgstr ""
|
7505 |
|
7506 |
-
#: includes/user-functions.php:
|
7507 |
msgid "Your account info"
|
7508 |
msgstr ""
|
7509 |
|
7510 |
-
#: includes/user-functions.php:
|
7511 |
msgid "Password entered at checkout"
|
7512 |
msgstr ""
|
7513 |
|
7514 |
-
#: includes/user-functions.php:
|
7515 |
msgid "Password entered at registration"
|
7516 |
msgstr ""
|
7517 |
|
7518 |
-
#: includes/user-functions.php:
|
7519 |
msgid "Password: %s"
|
7520 |
msgstr ""
|
7521 |
|
7522 |
-
#: includes/user-functions.php:
|
7523 |
msgid "Click here to log in"
|
7524 |
msgstr ""
|
7525 |
|
7526 |
-
#: includes/user-functions.php:
|
7527 |
msgid "To log in, visit: %s"
|
7528 |
msgstr ""
|
7529 |
|
7530 |
-
#: includes/user-functions.php:
|
7531 |
msgid "Verify your account"
|
7532 |
msgstr ""
|
7533 |
|
7534 |
-
#: includes/user-functions.php:
|
7535 |
msgid ""
|
7536 |
"Hello %s,\n"
|
7537 |
"\n"
|
@@ -7541,33 +7349,33 @@ msgid ""
|
|
7541 |
"Link missing? Visit the following URL: %s"
|
7542 |
msgstr ""
|
7543 |
|
7544 |
-
#: includes/user-functions.php:
|
7545 |
msgid ""
|
7546 |
"Sorry but your account verification link has expired. <a href=\"%s\">Click "
|
7547 |
"here</a> to request a new verification URL."
|
7548 |
msgstr ""
|
7549 |
|
7550 |
-
#: includes/user-functions.php:
|
7551 |
msgid "You must be logged in to verify your account."
|
7552 |
msgstr ""
|
7553 |
|
7554 |
-
#: includes/user-functions.php:
|
7555 |
msgid "Notice"
|
7556 |
msgstr ""
|
7557 |
|
7558 |
-
#: includes/user-functions.php:
|
7559 |
msgid "Your account has already been verified."
|
7560 |
msgstr ""
|
7561 |
|
7562 |
-
#: includes/user-functions.php:
|
7563 |
msgid "Invalid verification token provided."
|
7564 |
msgstr ""
|
7565 |
|
7566 |
-
#: includes/user-functions.php:
|
7567 |
msgid "Easy Digital Downloads <a href=\"%s\">iOS App</a>"
|
7568 |
msgstr ""
|
7569 |
|
7570 |
-
#: includes/user-functions.php:
|
7571 |
msgid "Add to iOS App"
|
7572 |
msgstr ""
|
7573 |
|
@@ -7640,7 +7448,7 @@ msgid "%s ID"
|
|
7640 |
msgstr ""
|
7641 |
|
7642 |
#: includes/widgets.php:407
|
7643 |
-
msgid "Show
|
7644 |
msgstr ""
|
7645 |
|
7646 |
#: includes/widgets.php:413
|
@@ -7709,6 +7517,10 @@ msgstr ""
|
|
7709 |
msgid "Log In"
|
7710 |
msgstr ""
|
7711 |
|
|
|
|
|
|
|
|
|
7712 |
#: templates/shortcode-profile-editor.php:18
|
7713 |
msgid "Saved cart"
|
7714 |
msgstr ""
|
@@ -7765,6 +7577,10 @@ msgstr ""
|
|
7765 |
msgid "Save Changes"
|
7766 |
msgstr ""
|
7767 |
|
|
|
|
|
|
|
|
|
7768 |
#: templates/shortcode-receipt.php:12
|
7769 |
msgid "The specified receipt ID appears to be invalid"
|
7770 |
msgstr ""
|
@@ -7785,15 +7601,15 @@ msgstr ""
|
|
7785 |
msgid "Discount(s)"
|
7786 |
msgstr ""
|
7787 |
|
7788 |
-
#: templates/shortcode-receipt.php:
|
7789 |
msgid "No downloadable files found for this bundled item."
|
7790 |
msgstr ""
|
7791 |
|
7792 |
-
#: templates/shortcode-register.php:
|
7793 |
msgid "Register New Account"
|
7794 |
msgstr ""
|
7795 |
|
7796 |
-
#: templates/shortcode-register.php:
|
7797 |
msgid "Confirm Password"
|
7798 |
msgstr ""
|
7799 |
|
@@ -7875,62 +7691,62 @@ msgctxt "payment details purchased item total - full screen"
|
|
7875 |
msgid "%s Total"
|
7876 |
msgstr ""
|
7877 |
|
7878 |
-
#: includes/admin/payments/view-order-details.php:
|
7879 |
msgctxt "payment details purchased item price - mobile"
|
7880 |
msgid "Price"
|
7881 |
msgstr ""
|
7882 |
|
7883 |
-
#: includes/admin/payments/view-order-details.php:
|
7884 |
msgctxt "payment details purchased item quantity - mobile"
|
7885 |
msgid " & Quantity"
|
7886 |
msgstr ""
|
7887 |
|
7888 |
-
#: includes/admin/payments/view-order-details.php:
|
7889 |
msgctxt "payment details purchased item tax - mobile"
|
7890 |
msgid "Tax"
|
7891 |
msgstr ""
|
7892 |
|
7893 |
-
#: includes/admin/payments/view-order-details.php:
|
7894 |
msgctxt "payment details purchased item total - mobile"
|
7895 |
msgid "%s Total"
|
7896 |
msgstr ""
|
7897 |
|
7898 |
-
#: includes/admin/payments/view-order-details.php:
|
7899 |
msgctxt "payment details select item to add - mobile"
|
7900 |
msgid "Select New %s To Add"
|
7901 |
msgstr ""
|
7902 |
|
7903 |
-
#: includes/admin/payments/view-order-details.php:
|
7904 |
msgctxt "payment details add item price - mobile"
|
7905 |
msgid "Price"
|
7906 |
msgstr ""
|
7907 |
|
7908 |
-
#: includes/admin/payments/view-order-details.php:
|
7909 |
msgctxt "payment details add item quantity - mobile"
|
7910 |
msgid " & Quantity"
|
7911 |
msgstr ""
|
7912 |
|
7913 |
-
#: includes/admin/payments/view-order-details.php:
|
7914 |
msgctxt "payment details add item tax - mobile"
|
7915 |
msgid "Tax"
|
7916 |
msgstr ""
|
7917 |
|
7918 |
-
#: includes/admin/payments/view-order-details.php:
|
7919 |
msgctxt "Address City"
|
7920 |
msgid "City:"
|
7921 |
msgstr ""
|
7922 |
|
7923 |
-
#: includes/admin/payments/view-order-details.php:
|
7924 |
msgctxt "Zip / Postal code of address"
|
7925 |
msgid "Zip / Postal Code:"
|
7926 |
msgstr ""
|
7927 |
|
7928 |
-
#: includes/admin/payments/view-order-details.php:
|
7929 |
msgctxt "Address country"
|
7930 |
msgid "Country:"
|
7931 |
msgstr ""
|
7932 |
|
7933 |
-
#: includes/admin/payments/view-order-details.php:
|
7934 |
msgctxt "State / province of address"
|
7935 |
msgid "State / Province:"
|
7936 |
msgstr ""
|
@@ -7940,37 +7756,37 @@ msgctxt "Date one to date two"
|
|
7940 |
msgid "to"
|
7941 |
msgstr ""
|
7942 |
|
7943 |
-
#: includes/checkout/template.php:
|
7944 |
msgctxt "Entering a discount code"
|
7945 |
msgid "Click to enter it"
|
7946 |
msgstr ""
|
7947 |
|
7948 |
-
#: includes/checkout/template.php:
|
7949 |
msgctxt "Apply discount at checkout"
|
7950 |
msgid "Apply"
|
7951 |
msgstr ""
|
7952 |
|
7953 |
-
#: includes/class-edd-discount.php:
|
7954 |
msgctxt "error shown when attempting to use a discount before its start date"
|
7955 |
msgid "This discount is invalid."
|
7956 |
msgstr ""
|
7957 |
|
7958 |
-
#: includes/class-edd-discount.php:
|
7959 |
msgctxt "error for when a discount is invalid based on its configuration"
|
7960 |
msgid "This discount is invalid."
|
7961 |
msgstr ""
|
7962 |
|
7963 |
-
#: includes/class-edd-html-elements.php:
|
7964 |
msgctxt "plural: Example: \"All Categories\""
|
7965 |
msgid "All %s"
|
7966 |
msgstr ""
|
7967 |
|
7968 |
-
#: includes/class-edd-html-elements.php:
|
7969 |
msgctxt "all dropdown items"
|
7970 |
msgid "All"
|
7971 |
msgstr ""
|
7972 |
|
7973 |
-
#: includes/class-edd-html-elements.php:
|
7974 |
msgctxt "no dropdown items"
|
7975 |
msgid "None"
|
7976 |
msgstr ""
|
@@ -7980,7 +7796,7 @@ msgctxt "download post type name"
|
|
7980 |
msgid "%2$s"
|
7981 |
msgstr ""
|
7982 |
|
7983 |
-
#: includes/shortcodes.php:
|
7984 |
msgctxt "download post type name"
|
7985 |
msgid "No %s found"
|
7986 |
msgstr ""
|
2 |
# This file is distributed under the same license as the Easy Digital Downloads package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Easy Digital Downloads 2.7.8\n"
|
6 |
"Report-Msgid-Bugs-To: https://easydigitaldownloads.com/\n"
|
7 |
+
"POT-Creation-Date: 2017-05-02 16:05:18+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
"PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: WP-Translations (http://wp-translations.org/)\n"
|
13 |
"Language-Team: WP-Translations <wpt@wp-translations.org>\n"
|
14 |
+
"X-Generator: grunt-wp-i18n 0.5.0\n"
|
15 |
+
"X-Poedit-KeywordsList: "
|
16 |
+
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
17 |
+
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
18 |
"Language: en_US\n"
|
19 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
20 |
"X-Poedit-Country: United States\n"
|
21 |
"X-Poedit-SourceCharset: UTF-8\n"
|
|
|
|
|
|
|
22 |
"X-Poedit-Basepath: ../\n"
|
23 |
"X-Poedit-SearchPath-0: .\n"
|
24 |
"X-Poedit-Bookmarks: \n"
|
25 |
"X-Textdomain-Support: yes\n"
|
|
|
26 |
|
27 |
#: easy-digital-downloads.php:183 easy-digital-downloads.php:195
|
28 |
msgid "Cheatin’ huh?"
|
38 |
"or %5$supdate now%6$s."
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: includes/EDD_SL_Plugin_Updater.php:396
|
42 |
msgid "You do not have permission to install plugin updates"
|
43 |
msgstr ""
|
44 |
|
45 |
+
#: includes/EDD_SL_Plugin_Updater.php:396
|
46 |
#: includes/admin/customers/customer-actions.php:301
|
47 |
#: includes/admin/customers/customer-actions.php:345
|
48 |
#: includes/admin/customers/customer-actions.php:603
|
49 |
#: includes/admin/discounts/discount-actions.php:30
|
50 |
+
#: includes/admin/discounts/discount-actions.php:110
|
51 |
+
#: includes/admin/discounts/discount-actions.php:170
|
52 |
+
#: includes/admin/discounts/discount-actions.php:174
|
53 |
+
#: includes/admin/discounts/discount-actions.php:195
|
54 |
+
#: includes/admin/discounts/discount-actions.php:199
|
55 |
+
#: includes/admin/discounts/discount-actions.php:220
|
56 |
#: includes/admin/discounts/edit-discount.php:16
|
57 |
#: includes/admin/downloads/dashboard-columns.php:171
|
58 |
#: includes/admin/import/class-batch-import-downloads.php:65
|
78 |
#: includes/admin/tools/class-edd-tools-recount-single-customer-stats.php:149
|
79 |
#: includes/admin/tools/class-edd-tools-recount-store-earnings.php:154
|
80 |
#: includes/admin/tools/class-edd-tools-reset-stats.php:180
|
81 |
+
#: includes/admin/tools.php:1021 includes/admin/tools.php:1027
|
82 |
#: includes/admin/upgrades/upgrade-functions.php:205
|
83 |
#: includes/admin/upgrades/upgrade-functions.php:521
|
84 |
#: includes/admin/upgrades/upgrade-functions.php:603
|
87 |
#: includes/admin/upgrades/upgrade-functions.php:885
|
88 |
#: includes/admin/upgrades/upgrade-functions.php:1013
|
89 |
#: includes/admin/upgrades/upgrade-functions.php:1098
|
90 |
+
#: includes/api/class-edd-api.php:1983 includes/api/class-edd-api.php:1988
|
91 |
+
#: includes/api/class-edd-api.php:2000 includes/api/class-edd-api.php:2002
|
92 |
+
#: includes/cart/class-edd-cart.php:1456 includes/cart/class-edd-cart.php:1470
|
93 |
#: includes/class-edd-license-handler.php:307
|
94 |
#: includes/deprecated-functions.php:517 includes/deprecated-functions.php:532
|
95 |
#: includes/deprecated-functions.php:542 includes/download-functions.php:1248
|
96 |
+
#: includes/emails/actions.php:49 includes/emails/template.php:245
|
97 |
+
#: includes/error-tracking.php:36 includes/gateways/functions.php:221
|
98 |
+
#: includes/gateways/manual.php:33 includes/gateways/paypal-standard.php:155
|
99 |
+
#: includes/process-download.php:284 includes/process-download.php:817
|
100 |
+
#: includes/query-filters.php:48 includes/user-functions.php:851
|
101 |
+
#: includes/user-functions.php:876 includes/user-functions.php:929
|
102 |
msgid "Error"
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: includes/admin/add-ons.php:30
|
106 |
+
msgid "Extensions for Easy Digital Downloads"
|
|
|
|
|
|
|
|
|
107 |
msgstr ""
|
108 |
|
109 |
+
#: includes/admin/add-ons.php:32 includes/admin/add-ons.php:58
|
110 |
+
msgid "Browse All Extensions"
|
111 |
msgstr ""
|
112 |
|
113 |
+
#: includes/admin/add-ons.php:35
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
msgid ""
|
115 |
+
"These extensions <em><strong>add functionality</strong></em> to your Easy "
|
116 |
+
"Digital Downloads powered store."
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: includes/admin/add-ons.php:92
|
120 |
msgid ""
|
121 |
"There was an error retrieving the extensions list from the server. Please "
|
122 |
"try again later."
|
123 |
msgstr ""
|
124 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
#: includes/admin/admin-footer.php:27
|
126 |
msgid ""
|
127 |
"Thank you for using <a href=\"%1$s\" target=\"_blank\">Easy Digital "
|
128 |
+
"Downloads</a>! Please <a href=\"%2$s\" target=\"_blank\">rate us</a> on <a "
|
129 |
+
"href=\"%2$s\" target=\"_blank\">WordPress.org</a>"
|
130 |
msgstr ""
|
131 |
|
132 |
#: includes/admin/admin-pages.php:38
|
173 |
|
174 |
#: includes/admin/admin-pages.php:43 includes/admin/plugins.php:57
|
175 |
#: includes/admin/settings/contextual-help.php:87
|
176 |
+
#: includes/admin/settings/register-settings.php:1238
|
177 |
msgid "Extensions"
|
178 |
msgstr ""
|
179 |
|
186 |
msgid "API Key"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: includes/admin/class-api-keys-table.php:53 includes/admin/tools.php:70
|
190 |
msgid "API Keys"
|
191 |
msgstr ""
|
192 |
|
203 |
msgstr ""
|
204 |
|
205 |
#: includes/admin/class-api-keys-table.php:176
|
206 |
+
#: includes/checkout/template.php:472 includes/checkout/template.php:478
|
207 |
+
#: templates/shortcode-register.php:18
|
208 |
msgid "Username"
|
209 |
msgstr ""
|
210 |
|
224 |
msgid "Generate New API Keys"
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: includes/admin/class-edd-notices.php:48 includes/template-functions.php:54
|
228 |
msgid ""
|
229 |
"No checkout page has been configured. Visit <a href=\"%s\">Settings</a> to "
|
230 |
"set one."
|
384 |
msgstr ""
|
385 |
|
386 |
#: includes/admin/customers/class-customer-table.php:72
|
387 |
+
#: includes/admin/payments/class-payments-table.php:227
|
388 |
+
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:146
|
389 |
#: includes/admin/reporting/class-sales-logs-list-table.php:131
|
390 |
msgid "Customer"
|
391 |
msgstr ""
|
405 |
#: includes/admin/customers/class-customer-table.php:161
|
406 |
#: includes/admin/discounts/class-discount-codes-table.php:221
|
407 |
#: includes/admin/discounts/class-discount-codes-table.php:289
|
408 |
+
#: includes/admin/payments/class-payments-table.php:323
|
409 |
+
#: includes/admin/payments/class-payments-table.php:395
|
410 |
+
#: includes/payments/functions.php:1561
|
411 |
msgid "Delete"
|
412 |
msgstr ""
|
413 |
|
420 |
#: includes/admin/discounts/class-discount-codes-table.php:145
|
421 |
#: includes/admin/discounts/edit-discount.php:37
|
422 |
#: includes/admin/downloads/dashboard-columns.php:31
|
423 |
+
#: includes/admin/payments/view-order-details.php:648
|
424 |
#: includes/admin/reporting/class-export-customers.php:76
|
425 |
#: includes/admin/reporting/export/class-batch-export-customers.php:43
|
426 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:44
|
488 |
msgstr ""
|
489 |
|
490 |
#: includes/admin/customers/customer-actions.php:207
|
491 |
+
#: includes/user-functions.php:876
|
492 |
msgid "Nonce verification failed."
|
493 |
msgstr ""
|
494 |
|
508 |
msgid "Email successfully added to customer."
|
509 |
msgstr ""
|
510 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
511 |
#: includes/admin/customers/customer-actions.php:301
|
512 |
#: includes/admin/customers/customer-actions.php:345
|
513 |
#: includes/admin/customers/customer-actions.php:603
|
514 |
#: includes/admin/import/import-functions.php:31
|
515 |
#: includes/admin/import/import-functions.php:113
|
516 |
#: includes/admin/reporting/export/export-actions.php:23
|
517 |
+
#: includes/api/class-edd-api.php:1983
|
518 |
#: includes/class-edd-license-handler.php:307
|
519 |
msgid "Nonce verification failed"
|
520 |
msgstr ""
|
521 |
|
|
|
|
|
|
|
|
|
|
|
522 |
#: includes/admin/customers/customer-actions.php:395
|
523 |
msgid "A note is required"
|
524 |
msgstr ""
|
569 |
msgstr ""
|
570 |
|
571 |
#: includes/admin/customers/customers.php:116
|
572 |
+
#: includes/admin/payments/view-order-details.php:601
|
573 |
msgid "Customer Details"
|
574 |
msgstr ""
|
575 |
|
592 |
#: includes/admin/customers/customers.php:242
|
593 |
#: includes/admin/reporting/class-export-payments.php:68
|
594 |
#: includes/admin/reporting/export/class-batch-export-payments.php:48
|
595 |
+
#: includes/admin/tools.php:684 includes/checkout/template.php:361
|
596 |
#: templates/shortcode-profile-editor.php:152
|
597 |
msgid "City"
|
598 |
msgstr ""
|
599 |
|
600 |
#: includes/admin/customers/customers.php:269
|
601 |
+
#: includes/admin/settings/register-settings.php:1971
|
602 |
+
#: includes/admin/tools.php:693 includes/checkout/template.php:423
|
603 |
#: templates/shortcode-profile-editor.php:171
|
604 |
msgid "State / Province"
|
605 |
msgstr ""
|
626 |
|
627 |
#: includes/admin/customers/customers.php:312
|
628 |
#: includes/admin/reporting/class-export-payments.php:187
|
629 |
+
#: includes/admin/reporting/export/class-batch-export-payments.php:218
|
630 |
msgid "none"
|
631 |
msgstr ""
|
632 |
|
640 |
|
641 |
#: includes/admin/customers/customers.php:328
|
642 |
#: includes/admin/customers/customers.php:610
|
643 |
+
#: includes/admin/payments/view-order-details.php:639
|
644 |
+
#: includes/admin/payments/view-order-details.php:659
|
645 |
+
#: includes/admin/thickbox.php:131 includes/class-edd-html-elements.php:750
|
646 |
msgid "Cancel"
|
647 |
msgstr ""
|
648 |
|
667 |
msgstr ""
|
668 |
|
669 |
#: includes/admin/customers/customers.php:378
|
670 |
+
#: includes/admin/payments/class-payments-table.php:223
|
671 |
+
#: includes/admin/payments/view-order-details.php:652
|
672 |
#: includes/admin/reporting/class-export-customers.php:68
|
673 |
#: includes/admin/reporting/class-export-customers.php:79
|
674 |
#: includes/admin/reporting/class-export-payments.php:63
|
675 |
#: includes/admin/reporting/export/class-batch-export-customers.php:44
|
676 |
#: includes/admin/reporting/export/class-batch-export-payments.php:42
|
677 |
+
#: includes/admin/tools.php:495 templates/shortcode-register.php:23
|
678 |
msgid "Email"
|
679 |
msgstr ""
|
680 |
|
681 |
#: includes/admin/customers/customers.php:379
|
682 |
#: includes/admin/customers/customers.php:438
|
683 |
#: includes/admin/customers/customers.php:471
|
684 |
+
#: includes/admin/payments/view-order-details.php:510
|
685 |
+
#: includes/admin/payments/view-order-details.php:573
|
686 |
+
#: includes/admin/payments/view-order-details.php:636
|
687 |
+
#: includes/admin/payments/view-order-details.php:656
|
688 |
#: templates/checkout_cart.php:13
|
689 |
msgid "Actions"
|
690 |
msgstr ""
|
695 |
msgstr ""
|
696 |
|
697 |
#: includes/admin/customers/customers.php:401
|
698 |
+
#: includes/admin/payments/view-order-details.php:478
|
699 |
+
#: includes/admin/settings/register-settings.php:1974 includes/scripts.php:217
|
|
|
|
|
|
|
|
|
700 |
#: templates/checkout_cart.php:57 templates/checkout_cart.php:75
|
701 |
#: templates/shortcode-profile-editor.php:123
|
702 |
msgid "Remove"
|
720 |
msgstr ""
|
721 |
|
722 |
#: includes/admin/customers/customers.php:434
|
723 |
+
#: includes/admin/downloads/metabox.php:348
|
724 |
+
#: includes/admin/downloads/metabox.php:669
|
725 |
+
#: includes/admin/payments/class-payments-table.php:222
|
726 |
#: includes/admin/reporting/class-export-payments.php:61
|
727 |
#: includes/admin/reporting/class-export.php:69
|
728 |
#: includes/admin/reporting/export/class-batch-export-customers.php:42
|
735 |
#: includes/admin/discounts/add-discount.php:56
|
736 |
#: includes/admin/discounts/class-discount-codes-table.php:147
|
737 |
#: includes/admin/discounts/edit-discount.php:70
|
738 |
+
#: includes/admin/payments/class-payments-table.php:225
|
739 |
#: includes/admin/reporting/class-export-payments.php:74
|
740 |
#: includes/admin/reporting/export/class-batch-export-payments.php:55
|
741 |
#: templates/history-purchases.php:20
|
744 |
|
745 |
#: includes/admin/customers/customers.php:436
|
746 |
#: includes/admin/downloads/dashboard-columns.php:37
|
747 |
+
#: includes/admin/payments/class-payments-table.php:226
|
748 |
#: includes/admin/reporting/class-api-requests-logs-list-table.php:94
|
749 |
#: includes/admin/reporting/class-export-download-history.php:64
|
750 |
#: includes/admin/reporting/class-export-payments.php:80
|
751 |
#: includes/admin/reporting/class-export.php:70
|
752 |
+
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:150
|
753 |
#: includes/admin/reporting/class-gateway-error-logs-list-table.php:134
|
754 |
#: includes/admin/reporting/class-sales-logs-list-table.php:135
|
755 |
#: includes/admin/reporting/export/class-batch-export-api-requests.php:47
|
756 |
#: includes/admin/reporting/export/class-batch-export-file-downloads.php:42
|
757 |
#: includes/admin/reporting/export/class-batch-export-payments.php:61
|
758 |
+
#: includes/admin/reporting/export/class-batch-export-sales.php:45
|
759 |
+
#: includes/admin/tools.php:585 templates/history-purchases.php:19
|
760 |
#: templates/shortcode-receipt.php:59
|
761 |
msgid "Date"
|
762 |
msgstr ""
|
764 |
#: includes/admin/customers/customers.php:437
|
765 |
#: includes/admin/discounts/class-discount-codes-table.php:151
|
766 |
#: includes/admin/discounts/edit-discount.php:175
|
767 |
+
#: includes/admin/payments/class-payments-table.php:228
|
768 |
#: includes/admin/reporting/class-export-payments.php:82
|
769 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:49
|
770 |
#: includes/admin/reporting/export/class-batch-export-payments.php:66
|
771 |
+
#: includes/admin/tools.php:612
|
772 |
msgid "Status"
|
773 |
msgstr ""
|
774 |
|
814 |
msgid "Delete Customer"
|
815 |
msgstr ""
|
816 |
|
817 |
+
#: includes/admin/customers/customers.php:638 includes/admin/tools.php:149
|
818 |
msgid "Recount Customer Stats"
|
819 |
msgstr ""
|
820 |
|
824 |
"customer."
|
825 |
msgstr ""
|
826 |
|
827 |
+
#: includes/admin/customers/customers.php:646 includes/admin/tools.php:136
|
828 |
msgid "Recount Stats"
|
829 |
msgstr ""
|
830 |
|
851 |
#: includes/admin/reporting/class-download-reports-table.php:112
|
852 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:59
|
853 |
#: includes/admin/reporting/graphing.php:333
|
854 |
+
#: includes/admin/reporting/graphing.php:633
|
855 |
#: includes/admin/reporting/reports.php:55
|
856 |
msgid "Earnings"
|
857 |
msgstr ""
|
864 |
msgstr[1] ""
|
865 |
|
866 |
#: includes/admin/dashboard-widgets.php:80
|
867 |
+
#: includes/admin/reporting/graphing.php:675 includes/class-edd-stats.php:89
|
868 |
msgid "Last Month"
|
869 |
msgstr ""
|
870 |
|
871 |
#: includes/admin/dashboard-widgets.php:105
|
872 |
+
#: includes/admin/reporting/graphing.php:669 includes/class-edd-stats.php:84
|
873 |
msgid "Today"
|
874 |
msgstr ""
|
875 |
|
879 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:58
|
880 |
#: includes/admin/reporting/export/class-batch-export-earnings-report.php:66
|
881 |
#: includes/admin/reporting/graphing.php:334
|
882 |
+
#: includes/admin/reporting/graphing.php:634
|
883 |
#: includes/admin/reporting/logs.php:145
|
884 |
msgid "Sales"
|
885 |
msgstr ""
|
890 |
|
891 |
#: includes/admin/dashboard-widgets.php:138
|
892 |
#: includes/admin/reporting/class-categories-reports-table.php:85
|
893 |
+
#: includes/admin/tools.php:912
|
894 |
msgid "Total Earnings"
|
895 |
msgstr ""
|
896 |
|
919 |
msgstr ""
|
920 |
|
921 |
#: includes/admin/discounts/add-discount.php:27
|
922 |
+
#: includes/admin/discounts/edit-discount.php:41
|
923 |
+
msgid "The name of this discount"
|
924 |
msgstr ""
|
925 |
|
926 |
#: includes/admin/discounts/add-discount.php:33
|
1034 |
msgstr ""
|
1035 |
|
1036 |
#: includes/admin/discounts/add-discount.php:134
|
1037 |
+
#: includes/admin/discounts/edit-discount.php:149
|
1038 |
msgid ""
|
1039 |
"Enter the expiration date for this discount code in the format of "
|
1040 |
+
"mm/dd/yyyy. For no expiration, leave blank"
|
1041 |
msgstr ""
|
1042 |
|
1043 |
#: includes/admin/discounts/add-discount.php:140
|
1046 |
msgstr ""
|
1047 |
|
1048 |
#: includes/admin/discounts/add-discount.php:144
|
1049 |
+
#: includes/admin/discounts/edit-discount.php:169
|
1050 |
msgid ""
|
1051 |
+
"The minimum amount that must be purchased before this discount can be used. "
|
1052 |
+
"Leave blank for no minimum."
|
1053 |
msgstr ""
|
1054 |
|
1055 |
#: includes/admin/discounts/add-discount.php:150
|
1079 |
msgstr ""
|
1080 |
|
1081 |
#: includes/admin/discounts/class-discount-codes-table.php:127
|
1082 |
+
#: includes/admin/payments/class-payments-table.php:200
|
1083 |
+
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:348
|
1084 |
#: includes/admin/reporting/class-sales-logs-list-table.php:290
|
1085 |
msgid "All"
|
1086 |
msgstr ""
|
1169 |
|
1170 |
#: includes/admin/discounts/contextual-help.php:38
|
1171 |
#: includes/admin/settings/contextual-help.php:42
|
1172 |
+
#: includes/admin/settings/register-settings.php:1231
|
1173 |
+
#: includes/admin/tools.php:69
|
|
|
|
|
|
|
|
|
|
|
1174 |
msgid "General"
|
1175 |
msgstr ""
|
1176 |
|
1274 |
msgstr ""
|
1275 |
|
1276 |
#: includes/admin/discounts/discount-actions.php:30
|
1277 |
+
#: includes/admin/discounts/discount-actions.php:224
|
1278 |
msgid "You do not have permission to create discount codes"
|
1279 |
msgstr ""
|
1280 |
|
1281 |
+
#: includes/admin/discounts/discount-actions.php:110
|
1282 |
+
#: includes/admin/discounts/discount-actions.php:199
|
1283 |
msgid "You do not have permission to edit discount codes"
|
1284 |
msgstr ""
|
1285 |
|
1286 |
+
#: includes/admin/discounts/discount-actions.php:170
|
1287 |
+
#: includes/admin/discounts/discount-actions.php:195
|
1288 |
+
#: includes/admin/discounts/discount-actions.php:220
|
1289 |
msgid "Trying to cheat or something?"
|
1290 |
msgstr ""
|
1291 |
|
1292 |
+
#: includes/admin/discounts/discount-actions.php:174
|
1293 |
msgid "You do not have permission to delete discount codes"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
+
#: includes/admin/discounts/discount-codes.php:33 includes/post-types.php:30
|
1297 |
+
#: includes/post-types.php:77 includes/post-types.php:107
|
1298 |
+
msgid "Add New"
|
1299 |
+
msgstr ""
|
1300 |
+
|
1301 |
#: includes/admin/discounts/discount-codes.php:36
|
1302 |
+
#: includes/admin/payments/class-payments-table.php:144
|
1303 |
#: includes/admin/reporting/logs.php:62 includes/admin/reporting/logs.php:122
|
1304 |
msgid "Search"
|
1305 |
msgstr ""
|
1312 |
msgid "Edit Discount"
|
1313 |
msgstr ""
|
1314 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1315 |
#: includes/admin/discounts/edit-discount.php:182
|
1316 |
msgid "The status of this discount code."
|
1317 |
msgstr ""
|
1433 |
|
1434 |
#: includes/admin/downloads/dashboard-columns.php:34
|
1435 |
#: includes/admin/downloads/dashboard-columns.php:286
|
1436 |
+
#: includes/admin/downloads/metabox.php:346
|
1437 |
+
#: includes/admin/payments/view-order-details.php:498
|
1438 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:52
|
1439 |
#: templates/shortcode-receipt.php:130
|
1440 |
msgid "Price"
|
1473 |
msgid "%1$s Stats"
|
1474 |
msgstr ""
|
1475 |
|
1476 |
+
#: includes/admin/downloads/metabox.php:302
|
|
|
|
|
|
|
|
|
1477 |
msgid "Pricing Options:"
|
1478 |
msgstr ""
|
1479 |
|
1480 |
+
#: includes/admin/downloads/metabox.php:308
|
1481 |
msgid "Enable variable pricing"
|
1482 |
msgstr ""
|
1483 |
|
1484 |
+
#: includes/admin/downloads/metabox.php:338
|
1485 |
msgid ""
|
1486 |
"Enable multi-option purchase mode. Allows multiple price options to be "
|
1487 |
"added to your cart at once"
|
1488 |
msgstr ""
|
1489 |
|
1490 |
+
#: includes/admin/downloads/metabox.php:345
|
1491 |
+
#: includes/admin/downloads/metabox.php:420
|
1492 |
+
msgid "Option Name"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1493 |
msgstr ""
|
1494 |
|
1495 |
+
#: includes/admin/downloads/metabox.php:347 includes/download-functions.php:511
|
1496 |
+
msgid "Default"
|
1497 |
msgstr ""
|
1498 |
|
1499 |
+
#: includes/admin/downloads/metabox.php:377
|
1500 |
+
msgid "Add New Price"
|
1501 |
msgstr ""
|
1502 |
|
1503 |
#: includes/admin/downloads/metabox.php:446
|
1504 |
+
msgid "Set ID %s as default price"
|
|
|
|
|
|
|
|
|
|
|
1505 |
msgstr ""
|
1506 |
|
1507 |
+
#: includes/admin/downloads/metabox.php:457
|
1508 |
+
msgid "Remove price option %s"
|
1509 |
msgstr ""
|
1510 |
|
1511 |
+
#: includes/admin/downloads/metabox.php:476
|
1512 |
msgid "Product Type Options:"
|
1513 |
msgstr ""
|
1514 |
|
1515 |
+
#: includes/admin/downloads/metabox.php:487
|
1516 |
msgid "Select a product type"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
+
#: includes/admin/downloads/metabox.php:488
|
1520 |
msgid ""
|
1521 |
"<strong>Product Type</strong>: Sell this item as a single product, or use "
|
1522 |
"the Bundle type to sell a collection of products."
|
1523 |
msgstr ""
|
1524 |
|
1525 |
+
#: includes/admin/downloads/metabox.php:515
|
1526 |
+
msgid "Bundled %s:"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1527 |
msgstr ""
|
1528 |
|
1529 |
+
#: includes/admin/downloads/metabox.php:517
|
1530 |
+
#: includes/admin/downloads/metabox.php:666
|
1531 |
+
msgid "Price Assignment"
|
1532 |
msgstr ""
|
1533 |
|
1534 |
+
#: includes/admin/downloads/metabox.php:544
|
1535 |
msgid "Remove bundle option %s"
|
1536 |
msgstr ""
|
1537 |
|
1538 |
+
#: includes/admin/downloads/metabox.php:593
|
1539 |
+
msgid "Remove bundle option"
|
|
|
|
|
|
|
|
|
1540 |
msgstr ""
|
1541 |
|
1542 |
+
#: includes/admin/downloads/metabox.php:621
|
1543 |
+
#: includes/admin/downloads/metabox.php:700
|
1544 |
msgid "Add New File"
|
1545 |
msgstr ""
|
1546 |
|
1547 |
+
#: includes/admin/downloads/metabox.php:653
|
1548 |
+
msgid "File Downloads:"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1549 |
msgstr ""
|
1550 |
|
1551 |
+
#: includes/admin/downloads/metabox.php:663
|
1552 |
+
#: includes/admin/downloads/metabox.php:751
|
1553 |
msgid "File Name"
|
1554 |
msgstr ""
|
1555 |
|
1556 |
+
#: includes/admin/downloads/metabox.php:664
|
1557 |
msgid "File URL"
|
1558 |
msgstr ""
|
1559 |
|
1560 |
+
#: includes/admin/downloads/metabox.php:667
|
1561 |
+
msgid ""
|
1562 |
+
"<strong>Price Assignment</strong>: With variable pricing enabled, you can "
|
1563 |
+
"choose to allow certain price variations access to specific files, or allow "
|
1564 |
+
"all price variations to access a file."
|
1565 |
+
msgstr ""
|
1566 |
+
|
1567 |
+
#: includes/admin/downloads/metabox.php:761
|
1568 |
msgid "Upload or enter the file URL"
|
1569 |
msgstr ""
|
1570 |
|
1571 |
+
#: includes/admin/downloads/metabox.php:766
|
1572 |
msgid "Insert File"
|
1573 |
msgstr ""
|
1574 |
|
1575 |
+
#: includes/admin/downloads/metabox.php:766
|
1576 |
msgid "Insert"
|
1577 |
msgstr ""
|
1578 |
|
1579 |
+
#: includes/admin/downloads/metabox.php:766
|
1580 |
msgid "Upload a File"
|
1581 |
msgstr ""
|
1582 |
|
1583 |
+
#: includes/admin/downloads/metabox.php:798
|
1584 |
+
msgid "Remove file option %s"
|
1585 |
msgstr ""
|
1586 |
|
1587 |
+
#: includes/admin/downloads/metabox.php:821
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1588 |
msgid "Insert into %s"
|
1589 |
msgstr ""
|
1590 |
|
1591 |
+
#: includes/admin/downloads/metabox.php:847
|
1592 |
msgid "File Download Limit:"
|
1593 |
msgstr ""
|
1594 |
|
1595 |
+
#: includes/admin/downloads/metabox.php:854
|
1596 |
msgid "Leave blank for global setting or 0 for unlimited"
|
1597 |
msgstr ""
|
1598 |
|
1599 |
+
#: includes/admin/downloads/metabox.php:856
|
1600 |
msgid ""
|
1601 |
"<strong>File Download Limit</strong>: Limit the number of times a customer "
|
1602 |
"who purchased this product can access their download links."
|
1603 |
msgstr ""
|
1604 |
|
1605 |
+
#: includes/admin/downloads/metabox.php:878
|
1606 |
msgid "Ignore Tax:"
|
1607 |
msgstr ""
|
1608 |
|
1609 |
+
#: includes/admin/downloads/metabox.php:884
|
1610 |
msgid "Mark this product as exclusive of tax"
|
1611 |
msgstr ""
|
1612 |
|
1613 |
+
#: includes/admin/downloads/metabox.php:906
|
1614 |
msgid "Item Quantities:"
|
1615 |
msgstr ""
|
1616 |
|
1617 |
+
#: includes/admin/downloads/metabox.php:912
|
1618 |
msgid "Disable quantity input for this product"
|
1619 |
msgstr ""
|
1620 |
|
1621 |
+
#: includes/admin/downloads/metabox.php:914
|
1622 |
msgid ""
|
1623 |
"<strong>Item Quantities</strong>: if disabled, customers will not be "
|
1624 |
"provided an option to change the number they wish to purchase."
|
1625 |
msgstr ""
|
1626 |
|
1627 |
+
#: includes/admin/downloads/metabox.php:933
|
1628 |
+
#: includes/admin/settings/register-settings.php:764
|
1629 |
+
#: includes/admin/thickbox.php:58 includes/checkout/template.php:874
|
1630 |
+
#: includes/shortcodes.php:49 includes/template-functions.php:67
|
1631 |
msgid "Purchase"
|
1632 |
msgstr ""
|
1633 |
|
1634 |
+
#: includes/admin/downloads/metabox.php:940
|
1635 |
msgid "Purchase Shortcode:"
|
1636 |
msgstr ""
|
1637 |
|
1638 |
+
#: includes/admin/downloads/metabox.php:941
|
1639 |
msgid ""
|
1640 |
"<strong>Purchse Shortcode</strong>: Use this shortcode to output a purchase "
|
1641 |
"link for this product in the location of your choosing."
|
1642 |
msgstr ""
|
1643 |
|
1644 |
+
#: includes/admin/downloads/metabox.php:962
|
1645 |
msgid "Accounting Options:"
|
1646 |
msgstr ""
|
1647 |
|
1648 |
+
#: includes/admin/downloads/metabox.php:970
|
1649 |
msgid "Enter an SKU for this %s."
|
1650 |
msgstr ""
|
1651 |
|
1652 |
+
#: includes/admin/downloads/metabox.php:989
|
1653 |
msgid "Button Options:"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
+
#: includes/admin/downloads/metabox.php:996
|
1657 |
msgid "Disable the automatic output of the purchase button"
|
1658 |
msgstr ""
|
1659 |
|
1660 |
+
#: includes/admin/downloads/metabox.php:997
|
1661 |
msgid ""
|
1662 |
"<strong>Automatic Output</strong>: By default, the purchase buttons will be "
|
1663 |
"displayed at the bottom of the download, when disabled you will need to use "
|
1665 |
"where you prefer."
|
1666 |
msgstr ""
|
1667 |
|
1668 |
+
#: includes/admin/downloads/metabox.php:1007
|
1669 |
+
#: includes/admin/settings/register-settings.php:771
|
1670 |
+
#: includes/admin/thickbox.php:96
|
1671 |
msgid "Add to Cart"
|
1672 |
msgstr ""
|
1673 |
|
1674 |
+
#: includes/admin/downloads/metabox.php:1008
|
1675 |
+
#: includes/admin/settings/register-settings.php:778 includes/shortcodes.php:47
|
1676 |
+
#: includes/template-functions.php:67
|
1677 |
msgid "Buy Now"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
+
#: includes/admin/downloads/metabox.php:1021
|
1681 |
msgid "Purchase button behavior"
|
1682 |
msgstr ""
|
1683 |
|
1684 |
+
#: includes/admin/downloads/metabox.php:1023
|
1685 |
msgid ""
|
1686 |
"<strong>Button Behavior</strong>: Add to Cart buttons follow a traditional "
|
1687 |
"eCommerce flow. A Buy Now button bypasses most of the process, taking the "
|
1689 |
"process of buying the product."
|
1690 |
msgstr ""
|
1691 |
|
1692 |
+
#: includes/admin/downloads/metabox.php:1025
|
1693 |
msgid ""
|
1694 |
"<strong>Button Behavior</strong>: Add to Cart buttons follow a traditional "
|
1695 |
"eCommerce flow. Buy Now buttons are only available for stores that have a "
|
1696 |
"single supported gateway active and that do not use taxes."
|
1697 |
msgstr ""
|
1698 |
|
1699 |
+
#: includes/admin/downloads/metabox.php:1063
|
1700 |
msgid ""
|
1701 |
"Special notes or instructions for this product. These notes will be added "
|
1702 |
"to the purchase receipt."
|
1703 |
msgstr ""
|
1704 |
|
1705 |
+
#: includes/admin/downloads/metabox.php:1090
|
1706 |
msgid "Sales:"
|
1707 |
msgstr ""
|
1708 |
|
1709 |
+
#: includes/admin/downloads/metabox.php:1095
|
1710 |
msgid "Earnings:"
|
1711 |
msgstr ""
|
1712 |
|
1713 |
+
#: includes/admin/downloads/metabox.php:1102
|
1714 |
msgid "View File Download Log"
|
1715 |
msgstr ""
|
1716 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1717 |
#: includes/admin/import/class-batch-import-downloads.php:65
|
1718 |
#: includes/admin/import/class-batch-import-payments.php:76
|
1719 |
#: includes/admin/import/class-batch-import.php:159
|
1720 |
msgid "You do not have permission to import data."
|
1721 |
msgstr ""
|
1722 |
|
1723 |
+
#: includes/admin/import/class-batch-import-payments.php:279
|
1724 |
#: includes/admin/reporting/export/class-batch-export-payments.php:53
|
1725 |
msgid "Products (Raw)"
|
1726 |
msgstr ""
|
1727 |
|
1728 |
+
#: includes/admin/import/class-batch-import-payments.php:590
|
1729 |
msgid "payments"
|
1730 |
msgstr ""
|
1731 |
|
1764 |
#: includes/admin/payments/actions.php:316
|
1765 |
#: includes/admin/payments/actions.php:332
|
1766 |
#: includes/admin/payments/actions.php:359
|
1767 |
+
#: includes/admin/payments/actions.php:379 includes/emails/actions.php:49
|
1768 |
msgid "You do not have permission to edit this payment record"
|
1769 |
msgstr ""
|
1770 |
|
1780 |
msgid "Error Updating Payment"
|
1781 |
msgstr ""
|
1782 |
|
1783 |
+
#: includes/admin/payments/class-payments-table.php:131
|
|
|
|
|
|
|
|
|
1784 |
msgid "Start Date:"
|
1785 |
msgstr ""
|
1786 |
|
1787 |
+
#: includes/admin/payments/class-payments-table.php:133
|
1788 |
msgid "End Date:"
|
1789 |
msgstr ""
|
1790 |
|
1791 |
+
#: includes/admin/payments/class-payments-table.php:135
|
1792 |
#: includes/admin/reporting/logs.php:179
|
1793 |
msgid "Apply"
|
1794 |
msgstr ""
|
1795 |
|
1796 |
+
#: includes/admin/payments/class-payments-table.php:141
|
1797 |
msgid "Clear Filter"
|
1798 |
msgstr ""
|
1799 |
|
1800 |
+
#: includes/admin/payments/class-payments-table.php:201
|
1801 |
msgid "Completed"
|
1802 |
msgstr ""
|
1803 |
|
1804 |
+
#: includes/admin/payments/class-payments-table.php:202
|
1805 |
+
#: includes/payments/functions.php:724
|
1806 |
msgid "Pending"
|
1807 |
msgstr ""
|
1808 |
|
1809 |
+
#: includes/admin/payments/class-payments-table.php:203
|
1810 |
+
#: includes/payments/functions.php:726
|
|
|
|
|
|
|
|
|
|
|
1811 |
msgid "Refunded"
|
1812 |
msgstr ""
|
1813 |
|
1814 |
+
#: includes/admin/payments/class-payments-table.php:204
|
1815 |
#: includes/admin/reporting/export/class-batch-export-earnings-report.php:68
|
1816 |
+
#: includes/payments/functions.php:729
|
1817 |
msgid "Revoked"
|
1818 |
msgstr ""
|
1819 |
|
1820 |
+
#: includes/admin/payments/class-payments-table.php:205
|
1821 |
#: includes/admin/reporting/export/class-batch-export-earnings-report.php:70
|
1822 |
+
#: includes/payments/functions.php:727
|
1823 |
msgid "Failed"
|
1824 |
msgstr ""
|
1825 |
|
1826 |
+
#: includes/admin/payments/class-payments-table.php:206
|
1827 |
#: includes/admin/reporting/export/class-batch-export-earnings-report.php:69
|
1828 |
+
#: includes/payments/functions.php:728
|
1829 |
msgid "Abandoned"
|
1830 |
msgstr ""
|
1831 |
|
1832 |
+
#: includes/admin/payments/class-payments-table.php:224
|
1833 |
#: templates/history-purchases.php:21
|
1834 |
msgid "Details"
|
1835 |
msgstr ""
|
1836 |
|
1837 |
+
#: includes/admin/payments/class-payments-table.php:289
|
1838 |
#: includes/admin/payments/payments-history.php:90
|
1839 |
msgid "View Order Details"
|
1840 |
msgstr ""
|
1841 |
|
1842 |
+
#: includes/admin/payments/class-payments-table.php:320
|
1843 |
msgid "Resend Purchase Receipt"
|
1844 |
msgstr ""
|
1845 |
|
1846 |
+
#: includes/admin/payments/class-payments-table.php:328
|
1847 |
msgid "(unknown)"
|
1848 |
msgstr ""
|
1849 |
|
1850 |
+
#: includes/admin/payments/class-payments-table.php:381
|
1851 |
msgid "(customer missing)"
|
1852 |
msgstr ""
|
1853 |
|
1854 |
+
#: includes/admin/payments/class-payments-table.php:396
|
1855 |
msgid "Set To Completed"
|
1856 |
msgstr ""
|
1857 |
|
1858 |
+
#: includes/admin/payments/class-payments-table.php:397
|
1859 |
msgid "Set To Pending"
|
1860 |
msgstr ""
|
1861 |
|
1862 |
+
#: includes/admin/payments/class-payments-table.php:398
|
|
|
|
|
|
|
|
|
1863 |
msgid "Set To Refunded"
|
1864 |
msgstr ""
|
1865 |
|
1866 |
+
#: includes/admin/payments/class-payments-table.php:399
|
1867 |
msgid "Set To Revoked"
|
1868 |
msgstr ""
|
1869 |
|
1870 |
+
#: includes/admin/payments/class-payments-table.php:400
|
1871 |
msgid "Set To Failed"
|
1872 |
msgstr ""
|
1873 |
|
1874 |
+
#: includes/admin/payments/class-payments-table.php:401
|
1875 |
msgid "Set To Abandoned"
|
1876 |
msgstr ""
|
1877 |
|
1878 |
+
#: includes/admin/payments/class-payments-table.php:402
|
1879 |
msgid "Set To Preapproval"
|
1880 |
msgstr ""
|
1881 |
|
1882 |
+
#: includes/admin/payments/class-payments-table.php:403
|
1883 |
msgid "Set To Cancelled"
|
1884 |
msgstr ""
|
1885 |
|
1886 |
+
#: includes/admin/payments/class-payments-table.php:404
|
1887 |
msgid "Resend Email Receipts"
|
1888 |
msgstr ""
|
1889 |
|
2080 |
msgstr[1] ""
|
2081 |
|
2082 |
#: includes/admin/payments/view-order-details.php:152
|
2083 |
+
#: includes/admin/settings/register-settings.php:735
|
2084 |
msgid "None"
|
2085 |
msgstr ""
|
2086 |
|
2090 |
msgstr ""
|
2091 |
|
2092 |
#: includes/admin/payments/view-order-details.php:175
|
2093 |
+
#: includes/admin/payments/view-order-details.php:506
|
2094 |
#: includes/admin/reporting/class-export-payments.php:75
|
2095 |
#: includes/admin/reporting/export/class-batch-export-payments.php:56
|
2096 |
+
#: includes/admin/tools.php:630 templates/checkout_cart.php:120
|
2097 |
#: templates/shortcode-receipt.php:90
|
2098 |
msgid "Tax"
|
2099 |
msgstr ""
|
2167 |
msgstr ""
|
2168 |
|
2169 |
#: includes/admin/payments/view-order-details.php:308
|
2170 |
+
#: includes/admin/reporting/reports.php:34 includes/class-edd-logging.php:48
|
2171 |
msgid "Logs"
|
2172 |
msgstr ""
|
2173 |
|
2183 |
msgid "View all purchases of customer"
|
2184 |
msgstr ""
|
2185 |
|
2186 |
+
#: includes/admin/payments/view-order-details.php:475
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2187 |
msgid "Copy Download Link(s)"
|
2188 |
msgstr ""
|
2189 |
|
2190 |
+
#: includes/admin/payments/view-order-details.php:487
|
2191 |
msgid "No %s included with this purchase"
|
2192 |
msgstr ""
|
2193 |
|
2194 |
+
#: includes/admin/payments/view-order-details.php:495
|
2195 |
+
#: includes/admin/payments/view-order-details.php:575
|
2196 |
msgid "Add New %s"
|
2197 |
msgstr ""
|
2198 |
|
2199 |
+
#: includes/admin/payments/view-order-details.php:500
|
2200 |
msgid " & Quantity"
|
2201 |
msgstr ""
|
2202 |
|
2203 |
+
#: includes/admin/payments/view-order-details.php:614
|
2204 |
msgid "Assign to another customer"
|
2205 |
msgstr ""
|
2206 |
|
2207 |
+
#: includes/admin/payments/view-order-details.php:616
|
2208 |
msgid "New Customer"
|
2209 |
msgstr ""
|
2210 |
|
2211 |
+
#: includes/admin/payments/view-order-details.php:622
|
2212 |
msgid "Select a customer"
|
2213 |
msgstr ""
|
2214 |
|
2215 |
+
#: includes/admin/payments/view-order-details.php:628 includes/scripts.php:224
|
|
|
2216 |
msgid "Type to search all Customers"
|
2217 |
msgstr ""
|
2218 |
|
2219 |
+
#: includes/admin/payments/view-order-details.php:642
|
2220 |
msgid "Click \"Save Payment\" to change the customer"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
+
#: includes/admin/payments/view-order-details.php:662
|
2224 |
msgid "Click \"Save Payment\" to create new customer"
|
2225 |
msgstr ""
|
2226 |
|
2227 |
+
#: includes/admin/payments/view-order-details.php:677
|
2228 |
+
#: includes/checkout/template.php:335
|
2229 |
msgid "Billing Address"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
+
#: includes/admin/payments/view-order-details.php:687
|
2233 |
msgid "Street Address Line 1:"
|
2234 |
msgstr ""
|
2235 |
|
2236 |
+
#: includes/admin/payments/view-order-details.php:691
|
2237 |
msgid "Street Address Line 2:"
|
2238 |
msgstr ""
|
2239 |
|
2240 |
+
#: includes/admin/payments/view-order-details.php:720
|
2241 |
+
#: includes/admin/settings/register-settings.php:310
|
2242 |
msgid "Select a country"
|
2243 |
msgstr ""
|
2244 |
|
2245 |
+
#: includes/admin/payments/view-order-details.php:738
|
2246 |
+
#: includes/admin/settings/register-settings.php:318
|
|
|
|
|
|
|
|
|
2247 |
msgid "Select a state"
|
2248 |
msgstr ""
|
2249 |
|
2250 |
+
#: includes/admin/payments/view-order-details.php:759
|
|
|
|
|
|
|
|
|
2251 |
msgid "Payment Notes"
|
2252 |
msgstr ""
|
2253 |
|
2254 |
+
#: includes/admin/payments/view-order-details.php:774
|
2255 |
msgid "No payment notes"
|
2256 |
msgstr ""
|
2257 |
|
2258 |
+
#: includes/admin/payments/view-order-details.php:780
|
2259 |
msgid "Add Note"
|
2260 |
msgstr ""
|
2261 |
|
2262 |
#: includes/admin/plugins.php:27
|
2263 |
+
#: includes/admin/settings/register-settings.php:1286
|
2264 |
msgid "General Settings"
|
2265 |
msgstr ""
|
2266 |
|
2267 |
#: includes/admin/reporting/class-api-requests-logs-list-table.php:89
|
2268 |
+
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:144
|
2269 |
#: includes/admin/reporting/class-gateway-error-logs-list-table.php:129
|
2270 |
#: includes/admin/reporting/class-sales-logs-list-table.php:130
|
2271 |
#: includes/admin/reporting/export/class-batch-export-api-requests.php:40
|
2323 |
msgid "Monthly Earnings Avg"
|
2324 |
msgstr ""
|
2325 |
|
2326 |
+
#: includes/admin/reporting/class-categories-reports-table.php:222
|
2327 |
msgid "Less than 1"
|
2328 |
msgstr ""
|
2329 |
|
2330 |
+
#: includes/admin/reporting/class-categories-reports-table.php:329
|
2331 |
msgid "No sales for dates provided."
|
2332 |
msgstr ""
|
2333 |
|
2334 |
+
#: includes/admin/reporting/class-categories-reports-table.php:370
|
2335 |
msgid "No earnings for dates provided."
|
2336 |
msgstr ""
|
2337 |
|
2354 |
#: includes/admin/reporting/class-export-customers.php:66
|
2355 |
#: includes/admin/reporting/class-export-payments.php:64
|
2356 |
#: includes/admin/reporting/export/class-batch-export-payments.php:44
|
2357 |
+
#: includes/admin/tools.php:504 includes/checkout/template.php:193
|
2358 |
#: includes/checkout/template.php:199 templates/shortcode-profile-editor.php:38
|
2359 |
msgid "First Name"
|
2360 |
msgstr ""
|
2362 |
#: includes/admin/reporting/class-export-customers.php:67
|
2363 |
#: includes/admin/reporting/class-export-payments.php:65
|
2364 |
#: includes/admin/reporting/export/class-batch-export-payments.php:45
|
2365 |
+
#: includes/admin/tools.php:513 includes/checkout/template.php:203
|
2366 |
#: includes/checkout/template.php:209 templates/shortcode-profile-editor.php:43
|
2367 |
msgid "Last Name"
|
2368 |
msgstr ""
|
2385 |
msgstr ""
|
2386 |
|
2387 |
#: includes/admin/reporting/class-export-download-history.php:66
|
2388 |
+
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:149
|
2389 |
#: includes/admin/reporting/export/class-batch-export-api-requests.php:42
|
2390 |
#: includes/admin/reporting/export/class-batch-export-file-downloads.php:44
|
2391 |
#: includes/admin/reporting/export/class-batch-export-payments.php:64
|
2392 |
+
#: includes/admin/tools.php:540
|
2393 |
msgid "IP Address"
|
2394 |
msgstr ""
|
2395 |
|
2399 |
msgstr ""
|
2400 |
|
2401 |
#: includes/admin/reporting/class-export-download-history.php:68
|
2402 |
+
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:148
|
2403 |
#: includes/admin/reporting/export/class-batch-export-file-downloads.php:46
|
2404 |
msgid "File"
|
2405 |
msgstr ""
|
2406 |
|
2407 |
#: includes/admin/reporting/class-export-payments.php:62
|
2408 |
#: includes/admin/reporting/export/class-batch-export-payments.php:41
|
2409 |
+
#: includes/admin/tools.php:576
|
2410 |
msgid "Payment Number"
|
2411 |
msgstr ""
|
2412 |
|
2427 |
|
2428 |
#: includes/admin/reporting/class-export-payments.php:70
|
2429 |
#: includes/admin/reporting/export/class-batch-export-payments.php:50
|
2430 |
+
#: includes/admin/settings/register-settings.php:1970
|
2431 |
+
#: includes/admin/tools.php:711 templates/shortcode-profile-editor.php:162
|
2432 |
msgid "Country"
|
2433 |
msgstr ""
|
2434 |
|
2435 |
#: includes/admin/reporting/class-export-payments.php:71
|
2436 |
#: includes/admin/reporting/export/class-batch-export-payments.php:51
|
2437 |
+
#: includes/admin/tools.php:702 includes/checkout/template.php:371
|
2438 |
#: templates/shortcode-profile-editor.php:157
|
2439 |
msgid "Zip / Postal Code"
|
2440 |
msgstr ""
|
2451 |
|
2452 |
#: includes/admin/reporting/class-export-payments.php:77
|
2453 |
#: includes/admin/reporting/export/class-batch-export-payments.php:58
|
2454 |
+
#: includes/admin/tools.php:567 templates/shortcode-receipt.php:53
|
2455 |
msgid "Payment Method"
|
2456 |
msgstr ""
|
2457 |
|
2458 |
#: includes/admin/reporting/class-export-payments.php:78
|
2459 |
#: includes/admin/reporting/export/class-batch-export-payments.php:59
|
2460 |
+
#: includes/admin/tools.php:648
|
2461 |
msgid "Transaction ID"
|
2462 |
msgstr ""
|
2463 |
|
2464 |
#: includes/admin/reporting/class-export-payments.php:79
|
2465 |
#: includes/admin/reporting/export/class-batch-export-payments.php:60
|
2466 |
+
#: includes/admin/tools.php:594
|
2467 |
msgid "Purchase Key"
|
2468 |
msgstr ""
|
2469 |
|
2470 |
#: includes/admin/reporting/class-export-payments.php:81
|
2471 |
#: includes/admin/reporting/export/class-batch-export-payments.php:62
|
2472 |
#: includes/admin/reporting/export/class-batch-export-sales.php:41
|
2473 |
+
#: includes/admin/tools.php:657
|
2474 |
msgid "User"
|
2475 |
msgstr ""
|
2476 |
|
2477 |
#: includes/admin/reporting/class-export-payments.php:192
|
2478 |
+
#: includes/admin/reporting/export/class-batch-export-payments.php:223
|
2479 |
msgid "guest"
|
2480 |
msgstr ""
|
2481 |
|
2489 |
msgid "You do not have permission to export data."
|
2490 |
msgstr ""
|
2491 |
|
2492 |
+
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:147
|
2493 |
#: includes/admin/reporting/class-gateway-error-logs-list-table.php:130
|
2494 |
#: includes/admin/reporting/class-sales-logs-list-table.php:134
|
2495 |
#: includes/admin/reporting/export/class-batch-export-payments.php:40
|
2496 |
+
#: includes/admin/reporting/export/class-batch-export-sales.php:44
|
2497 |
msgid "Payment ID"
|
2498 |
msgstr ""
|
2499 |
|
2500 |
#: includes/admin/reporting/class-gateway-error-logs-list-table.php:79
|
2501 |
+
#: includes/gateways/manual.php:73 includes/gateways/paypal-standard.php:178
|
2502 |
msgid "Payment Error"
|
2503 |
msgstr ""
|
2504 |
|
2528 |
msgstr ""
|
2529 |
|
2530 |
#: includes/admin/reporting/class-sales-logs-list-table.php:133
|
2531 |
+
#: includes/admin/reporting/export/class-batch-export-sales.php:43
|
2532 |
msgid "Item Amount"
|
2533 |
msgstr ""
|
2534 |
|
2539 |
msgstr ""
|
2540 |
|
2541 |
#: includes/admin/reporting/contextual-help.php:48
|
2542 |
+
#: includes/admin/reporting/reports.php:32 includes/admin/tools.php:939
|
2543 |
msgid "Export"
|
2544 |
msgstr ""
|
2545 |
|
2643 |
msgstr ""
|
2644 |
|
2645 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:54
|
2646 |
+
#: includes/admin/settings/register-settings.php:807
|
2647 |
+
#: includes/admin/tools.php:894
|
2648 |
msgid "File Download Limit"
|
2649 |
msgstr ""
|
2650 |
|
2654 |
|
2655 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:56
|
2656 |
#: includes/emails/class-edd-email-tags.php:411
|
2657 |
+
#: includes/emails/class-edd-email-tags.php:532
|
2658 |
#: templates/shortcode-receipt.php:125
|
2659 |
msgid "SKU"
|
2660 |
msgstr ""
|
2684 |
msgstr ""
|
2685 |
|
2686 |
#: includes/admin/reporting/export/class-batch-export-payments.php:43
|
2687 |
+
#: includes/admin/tools.php:522
|
|
|
2688 |
msgid "Customer ID"
|
2689 |
msgstr ""
|
2690 |
|
2693 |
msgstr ""
|
2694 |
|
2695 |
#: includes/admin/reporting/export/class-batch-export-payments.php:63
|
2696 |
+
#: includes/admin/settings/register-settings.php:345
|
|
|
2697 |
msgid "Currency"
|
2698 |
msgstr ""
|
2699 |
|
2700 |
#: includes/admin/reporting/export/class-batch-export-payments.php:65
|
2701 |
+
#: includes/admin/tools.php:549
|
2702 |
msgid "Mode (Live|Test)"
|
2703 |
msgstr ""
|
2704 |
|
|
|
|
|
|
|
|
|
2705 |
#: includes/admin/reporting/export/export-functions.php:49
|
2706 |
msgid "Export location or file not writable"
|
2707 |
msgstr ""
|
2719 |
msgstr ""
|
2720 |
|
2721 |
#: includes/admin/reporting/graphing.php:361
|
2722 |
+
#: includes/admin/reporting/graphing.php:650
|
2723 |
msgid "Total earnings for period shown: "
|
2724 |
msgstr ""
|
2725 |
|
2726 |
#: includes/admin/reporting/graphing.php:369
|
2727 |
+
#: includes/admin/reporting/graphing.php:651
|
2728 |
msgid "Total sales for period shown: "
|
2729 |
msgstr ""
|
2730 |
|
2740 |
msgid "Excludes sales tax."
|
2741 |
msgstr ""
|
2742 |
|
2743 |
+
#: includes/admin/reporting/graphing.php:640
|
2744 |
msgid "Earnings Over Time for %s"
|
2745 |
msgstr ""
|
2746 |
|
2747 |
+
#: includes/admin/reporting/graphing.php:652
|
2748 |
msgid "Average monthly earnings: %s"
|
2749 |
msgstr ""
|
2750 |
|
2751 |
+
#: includes/admin/reporting/graphing.php:653
|
2752 |
msgid "Average monthly sales: %s"
|
2753 |
msgstr ""
|
2754 |
|
2755 |
+
#: includes/admin/reporting/graphing.php:670 includes/class-edd-stats.php:85
|
2756 |
msgid "Yesterday"
|
2757 |
msgstr ""
|
2758 |
|
2759 |
+
#: includes/admin/reporting/graphing.php:671 includes/class-edd-stats.php:86
|
2760 |
msgid "This Week"
|
2761 |
msgstr ""
|
2762 |
|
2763 |
+
#: includes/admin/reporting/graphing.php:672 includes/class-edd-stats.php:87
|
2764 |
msgid "Last Week"
|
2765 |
msgstr ""
|
2766 |
|
2767 |
+
#: includes/admin/reporting/graphing.php:673
|
2768 |
msgid "Last 30 Days"
|
2769 |
msgstr ""
|
2770 |
|
2771 |
+
#: includes/admin/reporting/graphing.php:674 includes/class-edd-stats.php:88
|
2772 |
msgid "This Month"
|
2773 |
msgstr ""
|
2774 |
|
2775 |
+
#: includes/admin/reporting/graphing.php:676 includes/class-edd-stats.php:90
|
2776 |
msgid "This Quarter"
|
2777 |
msgstr ""
|
2778 |
|
2779 |
+
#: includes/admin/reporting/graphing.php:677 includes/class-edd-stats.php:91
|
2780 |
msgid "Last Quarter"
|
2781 |
msgstr ""
|
2782 |
|
2783 |
+
#: includes/admin/reporting/graphing.php:678 includes/class-edd-stats.php:92
|
2784 |
msgid "This Year"
|
2785 |
msgstr ""
|
2786 |
|
2787 |
+
#: includes/admin/reporting/graphing.php:679 includes/class-edd-stats.php:93
|
2788 |
msgid "Last Year"
|
2789 |
msgstr ""
|
2790 |
|
2791 |
+
#: includes/admin/reporting/graphing.php:680
|
2792 |
msgid "Custom"
|
2793 |
msgstr ""
|
2794 |
|
2795 |
+
#: includes/admin/reporting/graphing.php:712
|
2796 |
msgid "From"
|
2797 |
msgstr ""
|
2798 |
|
2799 |
+
#: includes/admin/reporting/graphing.php:728
|
2800 |
msgid "To"
|
2801 |
msgstr ""
|
2802 |
|
2803 |
+
#: includes/admin/reporting/graphing.php:748
|
2804 |
msgid "Exclude Taxes"
|
2805 |
msgstr ""
|
2806 |
|
2807 |
+
#: includes/admin/reporting/graphing.php:753
|
2808 |
msgid "Filter"
|
2809 |
msgstr ""
|
2810 |
|
2811 |
+
#: includes/admin/reporting/graphing.php:968
|
2812 |
msgid "Clicking this will clear the reports cache"
|
2813 |
msgstr ""
|
2814 |
|
2815 |
+
#: includes/admin/reporting/graphing.php:968
|
2816 |
msgid "Refresh Reports"
|
2817 |
msgstr ""
|
2818 |
|
2819 |
#: includes/admin/reporting/logs.php:144
|
2820 |
+
#: includes/admin/settings/register-settings.php:1313
|
2821 |
msgid "File Downloads"
|
2822 |
msgstr ""
|
2823 |
|
2847 |
|
2848 |
#: includes/admin/reporting/reports.php:59
|
2849 |
#: includes/admin/settings/contextual-help.php:71
|
2850 |
+
#: includes/admin/settings/register-settings.php:1235
|
2851 |
msgid "Taxes"
|
2852 |
msgstr ""
|
2853 |
|
2891 |
"year."
|
2892 |
msgstr ""
|
2893 |
|
2894 |
+
#: includes/admin/reporting/reports.php:325 includes/admin/tools.php:165
|
2895 |
msgid "Submit"
|
2896 |
msgstr ""
|
2897 |
|
2989 |
msgstr ""
|
2990 |
|
2991 |
#: includes/admin/settings/contextual-help.php:48
|
2992 |
+
#: includes/admin/settings/register-settings.php:419
|
2993 |
+
#: includes/admin/settings/register-settings.php:1232
|
2994 |
msgid "Payment Gateways"
|
2995 |
msgstr ""
|
2996 |
|
3019 |
msgstr ""
|
3020 |
|
3021 |
#: includes/admin/settings/contextual-help.php:57
|
3022 |
+
#: includes/admin/settings/register-settings.php:1233
|
3023 |
msgid "Emails"
|
3024 |
msgstr ""
|
3025 |
|
3039 |
msgstr ""
|
3040 |
|
3041 |
#: includes/admin/settings/contextual-help.php:65
|
3042 |
+
#: includes/admin/settings/register-settings.php:1234
|
3043 |
msgid "Styles"
|
3044 |
msgstr ""
|
3045 |
|
3122 |
msgstr ""
|
3123 |
|
3124 |
#: includes/admin/settings/contextual-help.php:93
|
|
|
3125 |
msgid "Miscellaneous"
|
3126 |
msgstr ""
|
3127 |
|
3135 |
msgid "A description of all the options are provided beside their input boxes."
|
3136 |
msgstr ""
|
3137 |
|
3138 |
+
#: includes/admin/settings/register-settings.php:242
|
3139 |
+
#: includes/admin/settings/register-settings.php:245
|
|
|
|
|
|
|
3140 |
msgid "Page Settings"
|
3141 |
msgstr ""
|
3142 |
|
3143 |
+
#: includes/admin/settings/register-settings.php:246
|
3144 |
msgid ""
|
3145 |
"Easy Digital Downloads uses the pages below for handling the display of "
|
3146 |
"checkout, purchase confirmation, purchase history, and purchase failures. "
|
3149 |
"in the page content area."
|
3150 |
msgstr ""
|
3151 |
|
3152 |
+
#: includes/admin/settings/register-settings.php:250
|
3153 |
msgid "Checkout Page"
|
3154 |
msgstr ""
|
3155 |
|
3156 |
+
#: includes/admin/settings/register-settings.php:251
|
3157 |
msgid ""
|
3158 |
"This is the checkout page where buyers will complete their purchases. The "
|
3159 |
"[download_checkout] shortcode must be on this page."
|
3160 |
msgstr ""
|
3161 |
|
3162 |
+
#: includes/admin/settings/register-settings.php:255
|
3163 |
+
#: includes/admin/settings/register-settings.php:264
|
3164 |
+
#: includes/admin/settings/register-settings.php:273
|
3165 |
+
#: includes/admin/settings/register-settings.php:282
|
3166 |
+
#: includes/admin/settings/register-settings.php:293
|
3167 |
msgid "Select a page"
|
3168 |
msgstr ""
|
3169 |
|
3170 |
+
#: includes/admin/settings/register-settings.php:259
|
3171 |
msgid "Success Page"
|
3172 |
msgstr ""
|
3173 |
|
3174 |
+
#: includes/admin/settings/register-settings.php:260
|
3175 |
msgid ""
|
3176 |
"This is the page buyers are sent to after completing their purchases. The "
|
3177 |
"[edd_receipt] shortcode should be on this page."
|
3178 |
msgstr ""
|
3179 |
|
3180 |
+
#: includes/admin/settings/register-settings.php:268
|
3181 |
msgid "Failed Transaction Page"
|
3182 |
msgstr ""
|
3183 |
|
3184 |
+
#: includes/admin/settings/register-settings.php:269
|
3185 |
msgid ""
|
3186 |
"This is the page buyers are sent to if their transaction is cancelled or "
|
3187 |
"fails."
|
3188 |
msgstr ""
|
3189 |
|
3190 |
+
#: includes/admin/settings/register-settings.php:277
|
3191 |
msgid "Purchase History Page"
|
3192 |
msgstr ""
|
3193 |
|
3194 |
+
#: includes/admin/settings/register-settings.php:278
|
3195 |
msgid ""
|
3196 |
"This page shows a complete purchase history for the current user, including "
|
3197 |
"download links. The [purchase_history] shortcode should be on this page."
|
3198 |
msgstr ""
|
3199 |
|
3200 |
+
#: includes/admin/settings/register-settings.php:286
|
3201 |
msgid "Login Redirect Page"
|
3202 |
msgstr ""
|
3203 |
|
3204 |
+
#: includes/admin/settings/register-settings.php:288
|
3205 |
msgid ""
|
3206 |
+
"This is the page where buyers will be redirected by default once they log "
|
3207 |
+
"in. The [edd_login redirect=\"%s\"] shortcode with the redirect attribute "
|
3208 |
+
"can override this setting."
|
3209 |
msgstr ""
|
3210 |
|
3211 |
+
#: includes/admin/settings/register-settings.php:297
|
3212 |
msgid "Store Location"
|
3213 |
msgstr ""
|
3214 |
|
3215 |
+
#: includes/admin/settings/register-settings.php:300
|
3216 |
msgid "Store Location Settings"
|
3217 |
msgstr ""
|
3218 |
|
3219 |
+
#: includes/admin/settings/register-settings.php:301
|
3220 |
msgid ""
|
3221 |
"Easy Digital Downloads will use the following Country and State to pre-fill "
|
3222 |
"fields at checkout. This will also pre-calculate any taxes defined if the "
|
3223 |
"location below has taxes enabled."
|
3224 |
msgstr ""
|
3225 |
|
3226 |
+
#: includes/admin/settings/register-settings.php:305
|
3227 |
msgid "Base Country"
|
3228 |
msgstr ""
|
3229 |
|
3230 |
+
#: includes/admin/settings/register-settings.php:306
|
3231 |
msgid "Where does your store operate from?"
|
3232 |
msgstr ""
|
3233 |
|
3234 |
+
#: includes/admin/settings/register-settings.php:314
|
3235 |
msgid "Base State / Province"
|
3236 |
msgstr ""
|
3237 |
|
3238 |
+
#: includes/admin/settings/register-settings.php:315
|
3239 |
msgid "What state / province does your store operate from?"
|
3240 |
msgstr ""
|
3241 |
|
3242 |
+
#: includes/admin/settings/register-settings.php:322
|
3243 |
+
msgid "Tracking Settings"
|
3244 |
msgstr ""
|
3245 |
|
3246 |
+
#: includes/admin/settings/register-settings.php:328
|
3247 |
msgid "Allow Usage Tracking?"
|
3248 |
msgstr ""
|
3249 |
|
3250 |
+
#: includes/admin/settings/register-settings.php:330
|
3251 |
msgid ""
|
3252 |
"Allow Easy Digital Downloads to anonymously track how this plugin is used "
|
3253 |
"and help us make the plugin better. Opt-in to tracking and our newsletter "
|
3254 |
+
"and immediately be emailed a 20% discount to the EDD shop, valid "
|
3255 |
+
"towards the <a href=\"%s\" target=\"_blank\">purchase of extensions</a>. No "
|
3256 |
+
"sensitive data is tracked."
|
3257 |
msgstr ""
|
3258 |
|
3259 |
+
#: includes/admin/settings/register-settings.php:339
|
3260 |
+
#: includes/admin/settings/register-settings.php:1287
|
3261 |
+
msgid "Currency Settings"
|
3262 |
+
msgstr ""
|
3263 |
+
|
3264 |
+
#: includes/admin/settings/register-settings.php:346
|
3265 |
msgid ""
|
3266 |
"Choose your currency. Note that some payment gateways have currency "
|
3267 |
"restrictions."
|
3268 |
msgstr ""
|
3269 |
|
3270 |
+
#: includes/admin/settings/register-settings.php:353
|
3271 |
msgid "Currency Position"
|
3272 |
msgstr ""
|
3273 |
|
3274 |
+
#: includes/admin/settings/register-settings.php:354
|
3275 |
msgid "Choose the location of the currency sign."
|
3276 |
msgstr ""
|
3277 |
|
3278 |
+
#: includes/admin/settings/register-settings.php:357
|
3279 |
msgid "Before - $10"
|
3280 |
msgstr ""
|
3281 |
|
3282 |
+
#: includes/admin/settings/register-settings.php:358
|
3283 |
msgid "After - 10$"
|
3284 |
msgstr ""
|
3285 |
|
3286 |
+
#: includes/admin/settings/register-settings.php:363
|
3287 |
msgid "Thousands Separator"
|
3288 |
msgstr ""
|
3289 |
|
3290 |
+
#: includes/admin/settings/register-settings.php:364
|
3291 |
+
msgid "The symbol (usually , or .) to separate thousands"
|
3292 |
msgstr ""
|
3293 |
|
3294 |
+
#: includes/admin/settings/register-settings.php:371
|
3295 |
msgid "Decimal Separator"
|
3296 |
msgstr ""
|
3297 |
|
3298 |
+
#: includes/admin/settings/register-settings.php:372
|
3299 |
+
msgid "The symbol (usually , or .) to separate decimal points"
|
|
|
|
|
|
|
|
|
|
|
3300 |
msgstr ""
|
3301 |
|
3302 |
+
#: includes/admin/settings/register-settings.php:381
|
3303 |
+
#: includes/admin/settings/register-settings.php:384
|
3304 |
+
#: includes/admin/settings/register-settings.php:1288
|
3305 |
msgid "API Settings"
|
3306 |
msgstr ""
|
3307 |
|
3308 |
+
#: includes/admin/settings/register-settings.php:385
|
3309 |
msgid ""
|
3310 |
"The Easy Digital Downloads REST API provides access to store data through "
|
3311 |
"our API endpoints. Enable this setting if you would like all user accounts "
|
3312 |
"to be able to generate their own API keys."
|
3313 |
msgstr ""
|
3314 |
|
3315 |
+
#: includes/admin/settings/register-settings.php:389
|
3316 |
msgid "Allow User Keys"
|
3317 |
msgstr ""
|
3318 |
|
3319 |
+
#: includes/admin/settings/register-settings.php:390
|
3320 |
msgid ""
|
3321 |
"Check this box to allow all users to generate API keys. Users with the "
|
3322 |
"'manage_shop_settings' capability are always allowed to generate keys."
|
3323 |
msgstr ""
|
3324 |
|
3325 |
+
#: includes/admin/settings/register-settings.php:395
|
3326 |
msgid ""
|
3327 |
"Visit the <a href=\"%s\" target=\"_blank\">REST API documentation</a> for "
|
3328 |
"further information."
|
3329 |
msgstr ""
|
3330 |
|
3331 |
+
#: includes/admin/settings/register-settings.php:407
|
3332 |
+
#: includes/admin/settings/register-settings.php:1291
|
3333 |
+
msgid "Gateway Settings"
|
3334 |
+
msgstr ""
|
3335 |
+
|
3336 |
+
#: includes/admin/settings/register-settings.php:413
|
3337 |
msgid "Test Mode"
|
3338 |
msgstr ""
|
3339 |
|
3340 |
+
#: includes/admin/settings/register-settings.php:414
|
3341 |
msgid ""
|
3342 |
"While in test mode no live transactions are processed. To fully use test "
|
3343 |
"mode, you must have a sandbox (test) account for the payment gateway you "
|
3344 |
"are testing."
|
3345 |
msgstr ""
|
3346 |
|
3347 |
+
#: includes/admin/settings/register-settings.php:420
|
3348 |
msgid "Choose the payment gateways you want to enable."
|
3349 |
msgstr ""
|
3350 |
|
3351 |
+
#: includes/admin/settings/register-settings.php:426
|
3352 |
msgid "Default Gateway"
|
3353 |
msgstr ""
|
3354 |
|
3355 |
+
#: includes/admin/settings/register-settings.php:427
|
3356 |
msgid "This gateway will be loaded automatically with the checkout page."
|
3357 |
msgstr ""
|
3358 |
|
3359 |
+
#: includes/admin/settings/register-settings.php:433
|
3360 |
msgid "Accepted Payment Method Icons"
|
3361 |
msgstr ""
|
3362 |
|
3363 |
+
#: includes/admin/settings/register-settings.php:434
|
3364 |
+
msgid "Display icons for the selected payment methods"
|
3365 |
msgstr ""
|
3366 |
|
3367 |
+
#: includes/admin/settings/register-settings.php:434
|
3368 |
msgid ""
|
3369 |
"You will also need to configure your gateway settings if you are accepting "
|
3370 |
+
"credit cards"
|
3371 |
+
msgstr ""
|
3372 |
+
|
3373 |
+
#: includes/admin/settings/register-settings.php:454
|
3374 |
+
#: includes/admin/settings/register-settings.php:1295
|
3375 |
+
msgid "Email Settings"
|
3376 |
msgstr ""
|
3377 |
|
3378 |
+
#: includes/admin/settings/register-settings.php:459
|
3379 |
msgid "Email Template"
|
3380 |
msgstr ""
|
3381 |
|
3382 |
+
#: includes/admin/settings/register-settings.php:460
|
3383 |
msgid ""
|
3384 |
"Choose a template. Click \"Save Changes\" then \"Preview Purchase Receipt\" "
|
3385 |
"to see the new template."
|
3386 |
msgstr ""
|
3387 |
|
3388 |
+
#: includes/admin/settings/register-settings.php:466
|
3389 |
msgid "Logo"
|
3390 |
msgstr ""
|
3391 |
|
3392 |
+
#: includes/admin/settings/register-settings.php:467
|
3393 |
msgid ""
|
3394 |
"Upload or choose a logo to be displayed at the top of the purchase receipt "
|
3395 |
"emails. Displayed on HTML emails only."
|
3396 |
msgstr ""
|
3397 |
|
3398 |
+
#: includes/admin/settings/register-settings.php:480
|
3399 |
+
#: includes/admin/settings/register-settings.php:1296
|
3400 |
+
msgid "Purchase Receipts"
|
3401 |
+
msgstr ""
|
3402 |
+
|
3403 |
+
#: includes/admin/settings/register-settings.php:485
|
3404 |
msgid "From Name"
|
3405 |
msgstr ""
|
3406 |
|
3407 |
+
#: includes/admin/settings/register-settings.php:486
|
3408 |
msgid ""
|
3409 |
"The name purchase receipts are said to come from. This should probably be "
|
3410 |
"your site or shop name."
|
3411 |
msgstr ""
|
3412 |
|
3413 |
+
#: includes/admin/settings/register-settings.php:492
|
3414 |
msgid "From Email"
|
3415 |
msgstr ""
|
3416 |
|
3417 |
+
#: includes/admin/settings/register-settings.php:493
|
3418 |
msgid ""
|
3419 |
"Email to send purchase receipts from. This will act as the \"from\" and "
|
3420 |
"\"reply-to\" address."
|
3421 |
msgstr ""
|
3422 |
|
3423 |
+
#: includes/admin/settings/register-settings.php:499
|
3424 |
msgid "Purchase Email Subject"
|
3425 |
msgstr ""
|
3426 |
|
3427 |
+
#: includes/admin/settings/register-settings.php:500
|
3428 |
+
msgid "Enter the subject line for the purchase receipt email"
|
3429 |
msgstr ""
|
3430 |
|
3431 |
+
#: includes/admin/settings/register-settings.php:502
|
3432 |
+
#: includes/admin/settings/register-settings.php:509
|
3433 |
+
#: includes/admin/settings/register-settings.php:513
|
3434 |
+
#: includes/emails/functions.php:40 includes/emails/functions.php:44
|
3435 |
+
#: includes/emails/functions.php:82 includes/emails/functions.php:86
|
3436 |
#: includes/emails/template.php:141
|
3437 |
msgid "Purchase Receipt"
|
3438 |
msgstr ""
|
3439 |
|
3440 |
+
#: includes/admin/settings/register-settings.php:506
|
3441 |
msgid "Purchase Email Heading"
|
3442 |
msgstr ""
|
3443 |
|
3444 |
+
#: includes/admin/settings/register-settings.php:507
|
3445 |
+
msgid "Enter the heading for the purchase receipt email"
|
3446 |
msgstr ""
|
3447 |
|
3448 |
+
#: includes/admin/settings/register-settings.php:514
|
3449 |
msgid ""
|
3450 |
"Enter the text that is sent as purchase receipt email to users after "
|
3451 |
"completion of a successful purchase. HTML is accepted. Available template "
|
3452 |
"tags:"
|
3453 |
msgstr ""
|
3454 |
|
3455 |
+
#: includes/admin/settings/register-settings.php:516
|
3456 |
#: includes/emails/template.php:159
|
3457 |
msgid "Dear"
|
3458 |
msgstr ""
|
3459 |
|
3460 |
+
#: includes/admin/settings/register-settings.php:516
|
3461 |
#: includes/emails/template.php:160
|
3462 |
msgid ""
|
3463 |
"Thank you for your purchase. Please click on the link(s) below to download "
|
3464 |
"your files."
|
3465 |
msgstr ""
|
3466 |
|
3467 |
+
#: includes/admin/settings/register-settings.php:522
|
3468 |
+
msgid "Sale Notifications"
|
3469 |
+
msgstr ""
|
3470 |
+
|
3471 |
+
#: includes/admin/settings/register-settings.php:527
|
3472 |
msgid "Sale Notification Subject"
|
3473 |
msgstr ""
|
3474 |
|
3475 |
+
#: includes/admin/settings/register-settings.php:528
|
3476 |
+
msgid "Enter the subject line for the sale notification email"
|
3477 |
msgstr ""
|
3478 |
|
3479 |
+
#: includes/admin/settings/register-settings.php:534
|
3480 |
msgid "Sale Notification"
|
3481 |
msgstr ""
|
3482 |
|
3483 |
+
#: includes/admin/settings/register-settings.php:535
|
3484 |
msgid ""
|
3485 |
"Enter the text that is sent as sale notification email after completion of "
|
3486 |
"a purchase. HTML is accepted. Available template tags:"
|
3487 |
msgstr ""
|
3488 |
|
3489 |
+
#: includes/admin/settings/register-settings.php:541
|
3490 |
msgid "Sale Notification Emails"
|
3491 |
msgstr ""
|
3492 |
|
3493 |
+
#: includes/admin/settings/register-settings.php:542
|
3494 |
msgid ""
|
3495 |
"Enter the email address(es) that should receive a notification anytime a "
|
3496 |
+
"sale is made, one per line"
|
3497 |
msgstr ""
|
3498 |
|
3499 |
+
#: includes/admin/settings/register-settings.php:548
|
3500 |
msgid "Disable Admin Notifications"
|
3501 |
msgstr ""
|
3502 |
|
3503 |
+
#: includes/admin/settings/register-settings.php:549
|
3504 |
msgid "Check this box if you do not want to receive sales notification emails."
|
3505 |
msgstr ""
|
3506 |
|
3507 |
+
#: includes/admin/settings/register-settings.php:561
|
3508 |
+
#: includes/admin/settings/register-settings.php:1300
|
3509 |
+
msgid "Style Settings"
|
3510 |
+
msgstr ""
|
3511 |
+
|
3512 |
+
#: includes/admin/settings/register-settings.php:566
|
3513 |
msgid "Disable Styles"
|
3514 |
msgstr ""
|
3515 |
|
3516 |
+
#: includes/admin/settings/register-settings.php:567
|
3517 |
msgid ""
|
3518 |
"Check this to disable all included styling of buttons, checkout fields, and "
|
3519 |
"all other elements."
|
3520 |
msgstr ""
|
3521 |
|
3522 |
+
#: includes/admin/settings/register-settings.php:569
|
3523 |
msgid "Disabling Styles"
|
3524 |
msgstr ""
|
3525 |
|
3526 |
+
#: includes/admin/settings/register-settings.php:570
|
3527 |
msgid ""
|
3528 |
"If your theme has a complete custom CSS file for Easy Digital Downloads, "
|
3529 |
"you may wish to disable our default styles. This is not recommended unless "
|
3530 |
+
"your sure your theme has a complete custom CSS."
|
3531 |
msgstr ""
|
3532 |
|
3533 |
+
#: includes/admin/settings/register-settings.php:574
|
3534 |
msgid "Buttons"
|
3535 |
msgstr ""
|
3536 |
|
3537 |
+
#: includes/admin/settings/register-settings.php:575
|
3538 |
msgid "Options for add to cart and purchase buttons"
|
3539 |
msgstr ""
|
3540 |
|
3541 |
+
#: includes/admin/settings/register-settings.php:580
|
3542 |
msgid "Default Button Style"
|
3543 |
msgstr ""
|
3544 |
|
3545 |
+
#: includes/admin/settings/register-settings.php:581
|
3546 |
msgid "Choose the style you want to use for the buttons."
|
3547 |
msgstr ""
|
3548 |
|
3549 |
+
#: includes/admin/settings/register-settings.php:587
|
3550 |
msgid "Default Button Color"
|
3551 |
msgstr ""
|
3552 |
|
3553 |
+
#: includes/admin/settings/register-settings.php:588
|
3554 |
msgid "Choose the color you want to use for the buttons."
|
3555 |
msgstr ""
|
3556 |
|
3557 |
+
#: includes/admin/settings/register-settings.php:601
|
3558 |
+
#: includes/admin/settings/register-settings.php:1303
|
3559 |
+
msgid "Tax Settings"
|
3560 |
+
msgstr ""
|
3561 |
+
|
3562 |
+
#: includes/admin/settings/register-settings.php:606
|
3563 |
msgid "Need help?"
|
3564 |
msgstr ""
|
3565 |
|
3566 |
+
#: includes/admin/settings/register-settings.php:607
|
3567 |
msgid ""
|
3568 |
"Visit the <a href=\"%s\" target=\"_blank\">Tax setup documentation</a> for "
|
3569 |
"further information. If you need VAT support, there are options listed on "
|
3570 |
"the documentation page."
|
3571 |
msgstr ""
|
3572 |
|
3573 |
+
#: includes/admin/settings/register-settings.php:612
|
3574 |
msgid "Enable Taxes"
|
3575 |
msgstr ""
|
3576 |
|
3577 |
+
#: includes/admin/settings/register-settings.php:613
|
3578 |
msgid "Check this to enable taxes on purchases."
|
3579 |
msgstr ""
|
3580 |
|
3581 |
+
#: includes/admin/settings/register-settings.php:615
|
3582 |
msgid "Enabling Taxes"
|
3583 |
msgstr ""
|
3584 |
|
3585 |
+
#: includes/admin/settings/register-settings.php:616
|
3586 |
msgid ""
|
3587 |
"With taxes enabled, Easy Digital Downloads will use the rules below to "
|
3588 |
"charge tax to customers. With taxes enabled, customers are required to "
|
3589 |
"input their address on checkout so that taxes can be properly calculated."
|
3590 |
msgstr ""
|
3591 |
|
3592 |
+
#: includes/admin/settings/register-settings.php:620
|
3593 |
msgid "Tax Rates"
|
3594 |
msgstr ""
|
3595 |
|
3596 |
+
#: includes/admin/settings/register-settings.php:621
|
3597 |
msgid ""
|
3598 |
"Add tax rates for specific regions. Enter a percentage, such as 6.5 for "
|
3599 |
"6.5%."
|
3600 |
msgstr ""
|
3601 |
|
3602 |
+
#: includes/admin/settings/register-settings.php:626
|
3603 |
+
#: includes/admin/settings/register-settings.php:630
|
3604 |
msgid "Fallback Tax Rate"
|
3605 |
msgstr ""
|
3606 |
|
3607 |
+
#: includes/admin/settings/register-settings.php:627
|
3608 |
msgid ""
|
3609 |
"Customers not in a specific rate will be charged this tax rate. Enter a "
|
3610 |
"percentage, such as 6.5 for 6.5%. "
|
3611 |
msgstr ""
|
3612 |
|
3613 |
+
#: includes/admin/settings/register-settings.php:631
|
3614 |
msgid ""
|
3615 |
"If the customer's address fails to meet the above tax rules, you can define "
|
3616 |
"a `default` tax rate to be applied to all other customers. Enter a "
|
3617 |
"percentage, such as 6.5 for 6.5%."
|
3618 |
msgstr ""
|
3619 |
|
3620 |
+
#: includes/admin/settings/register-settings.php:635
|
3621 |
msgid "Prices entered with tax"
|
3622 |
msgstr ""
|
3623 |
|
3624 |
+
#: includes/admin/settings/register-settings.php:636
|
3625 |
msgid "This option affects how you enter prices."
|
3626 |
msgstr ""
|
3627 |
|
3628 |
+
#: includes/admin/settings/register-settings.php:640
|
3629 |
msgid "Yes, I will enter prices inclusive of tax"
|
3630 |
msgstr ""
|
3631 |
|
3632 |
+
#: includes/admin/settings/register-settings.php:641
|
3633 |
msgid "No, I will enter prices exclusive of tax"
|
3634 |
msgstr ""
|
3635 |
|
3636 |
+
#: includes/admin/settings/register-settings.php:643
|
3637 |
msgid "Prices Inclusive of Tax"
|
3638 |
msgstr ""
|
3639 |
|
3640 |
+
#: includes/admin/settings/register-settings.php:644
|
3641 |
msgid ""
|
3642 |
"When using prices inclusive of tax, you will be entering your prices as the "
|
3643 |
"total amount you want a customer to pay for the download, including tax. "
|
3645 |
"for the defined total price."
|
3646 |
msgstr ""
|
3647 |
|
3648 |
+
#: includes/admin/settings/register-settings.php:648
|
3649 |
msgid "Display Tax Rate on Prices"
|
3650 |
msgstr ""
|
3651 |
|
3652 |
+
#: includes/admin/settings/register-settings.php:649
|
3653 |
msgid "Some countries require a notice when product prices include tax."
|
3654 |
msgstr ""
|
3655 |
|
3656 |
+
#: includes/admin/settings/register-settings.php:654
|
3657 |
msgid "Display during checkout"
|
3658 |
msgstr ""
|
3659 |
|
3660 |
+
#: includes/admin/settings/register-settings.php:655
|
3661 |
msgid "Should prices on the checkout page be shown with or without tax?"
|
3662 |
msgstr ""
|
3663 |
|
3664 |
+
#: includes/admin/settings/register-settings.php:659
|
3665 |
msgid "Including tax"
|
3666 |
msgstr ""
|
3667 |
|
3668 |
+
#: includes/admin/settings/register-settings.php:660
|
3669 |
msgid "Excluding tax"
|
3670 |
msgstr ""
|
3671 |
|
3672 |
+
#: includes/admin/settings/register-settings.php:662
|
3673 |
msgid "Taxes Displayed for Products on Checkout"
|
3674 |
msgstr ""
|
3675 |
|
3676 |
+
#: includes/admin/settings/register-settings.php:663
|
3677 |
msgid ""
|
3678 |
"This option will determine whether the product price displays with or "
|
3679 |
"without tax on checkout."
|
3680 |
msgstr ""
|
3681 |
|
3682 |
+
#: includes/admin/settings/register-settings.php:681
|
3683 |
+
#: includes/admin/settings/register-settings.php:1310
|
3684 |
+
msgid "Misc Settings"
|
3685 |
+
msgstr ""
|
3686 |
+
|
3687 |
+
#: includes/admin/settings/register-settings.php:686
|
3688 |
+
#: includes/admin/settings/register-settings.php:689
|
3689 |
msgid "Redirect to Checkout"
|
3690 |
msgstr ""
|
3691 |
|
3692 |
+
#: includes/admin/settings/register-settings.php:687
|
3693 |
msgid "Immediately redirect to checkout after adding an item to the cart?"
|
3694 |
msgstr ""
|
3695 |
|
3696 |
+
#: includes/admin/settings/register-settings.php:690
|
3697 |
msgid ""
|
3698 |
"When enabled, once an item has been added to the cart, the customer will be "
|
3699 |
"redirected directly to your checkout page. This is useful for stores that "
|
3700 |
"sell single items."
|
3701 |
msgstr ""
|
3702 |
|
3703 |
+
#: includes/admin/settings/register-settings.php:694
|
3704 |
+
msgid "Item Quantities"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3705 |
msgstr ""
|
3706 |
|
3707 |
+
#: includes/admin/settings/register-settings.php:695
|
3708 |
+
msgid "Allow item quantities to be changed."
|
|
|
|
|
3709 |
msgstr ""
|
3710 |
|
3711 |
+
#: includes/admin/settings/register-settings.php:700
|
3712 |
msgid "Remove Data on Uninstall?"
|
3713 |
msgstr ""
|
3714 |
|
3715 |
+
#: includes/admin/settings/register-settings.php:701
|
3716 |
msgid ""
|
3717 |
"Check this box if you would like EDD to completely remove all of its data "
|
3718 |
"when the plugin is deleted."
|
3719 |
msgstr ""
|
3720 |
|
3721 |
+
#: includes/admin/settings/register-settings.php:708
|
3722 |
+
#: includes/admin/settings/register-settings.php:1311
|
3723 |
+
msgid "Checkout Settings"
|
3724 |
+
msgstr ""
|
3725 |
+
|
3726 |
+
#: includes/admin/settings/register-settings.php:713
|
3727 |
msgid "Enforce SSL on Checkout"
|
3728 |
msgstr ""
|
3729 |
|
3730 |
+
#: includes/admin/settings/register-settings.php:714
|
3731 |
msgid ""
|
3732 |
"Check this to force users to be redirected to the secure checkout page. You "
|
3733 |
"must have an SSL certificate installed to use this option."
|
3734 |
msgstr ""
|
3735 |
|
3736 |
+
#: includes/admin/settings/register-settings.php:719
|
3737 |
+
#: includes/admin/settings/register-settings.php:722
|
3738 |
msgid "Require Login"
|
3739 |
msgstr ""
|
3740 |
|
3741 |
+
#: includes/admin/settings/register-settings.php:720
|
3742 |
msgid "Require that users be logged-in to purchase files."
|
3743 |
msgstr ""
|
3744 |
|
3745 |
+
#: includes/admin/settings/register-settings.php:723
|
3746 |
msgid ""
|
3747 |
"You can require that customers create and login to user accounts prior to "
|
3748 |
"purchasing from your store by enabling this option. When unchecked, users "
|
3749 |
"can purchase without being logged in by using their name and email address."
|
3750 |
msgstr ""
|
3751 |
|
3752 |
+
#: includes/admin/settings/register-settings.php:727
|
3753 |
msgid "Show Register / Login Form?"
|
3754 |
msgstr ""
|
3755 |
|
3756 |
+
#: includes/admin/settings/register-settings.php:728
|
3757 |
msgid ""
|
3758 |
"Display the registration and login forms on the checkout page for "
|
3759 |
"non-logged-in users."
|
3760 |
msgstr ""
|
3761 |
|
3762 |
+
#: includes/admin/settings/register-settings.php:732
|
3763 |
msgid "Registration and Login Forms"
|
3764 |
msgstr ""
|
3765 |
|
3766 |
+
#: includes/admin/settings/register-settings.php:733
|
3767 |
msgid "Registration Form Only"
|
3768 |
msgstr ""
|
3769 |
|
3770 |
+
#: includes/admin/settings/register-settings.php:734
|
3771 |
msgid "Login Form Only"
|
3772 |
msgstr ""
|
3773 |
|
3774 |
+
#: includes/admin/settings/register-settings.php:740
|
3775 |
msgid "Multiple Discounts"
|
3776 |
msgstr ""
|
3777 |
|
3778 |
+
#: includes/admin/settings/register-settings.php:741
|
3779 |
msgid "Allow customers to use multiple discounts on the same purchase?"
|
3780 |
msgstr ""
|
3781 |
|
3782 |
+
#: includes/admin/settings/register-settings.php:746
|
3783 |
msgid "Enable Cart Saving"
|
3784 |
msgstr ""
|
3785 |
|
3786 |
+
#: includes/admin/settings/register-settings.php:747
|
3787 |
msgid "Check this to enable cart saving on the checkout."
|
3788 |
msgstr ""
|
3789 |
|
3790 |
+
#: includes/admin/settings/register-settings.php:749
|
3791 |
msgid "Cart Saving"
|
3792 |
msgstr ""
|
3793 |
|
3794 |
+
#: includes/admin/settings/register-settings.php:750
|
3795 |
msgid ""
|
3796 |
"Cart saving allows shoppers to create a temporary link to their current "
|
3797 |
"shopping cart so they can come back to it later, or share it with someone."
|
3798 |
msgstr ""
|
3799 |
|
3800 |
+
#: includes/admin/settings/register-settings.php:756
|
3801 |
+
#: includes/admin/settings/register-settings.php:1312
|
3802 |
+
msgid "Button Text"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3803 |
msgstr ""
|
3804 |
|
3805 |
+
#: includes/admin/settings/register-settings.php:761
|
3806 |
+
msgid "Complete Purchase Text"
|
3807 |
msgstr ""
|
3808 |
|
3809 |
+
#: includes/admin/settings/register-settings.php:762
|
3810 |
+
msgid "The button label for completing a purchase."
|
|
|
3811 |
msgstr ""
|
3812 |
|
3813 |
+
#: includes/admin/settings/register-settings.php:768
|
3814 |
msgid "Add to Cart Text"
|
3815 |
msgstr ""
|
3816 |
|
3817 |
+
#: includes/admin/settings/register-settings.php:769
|
3818 |
msgid "Text shown on the Add to Cart Buttons."
|
3819 |
msgstr ""
|
3820 |
|
3821 |
+
#: includes/admin/settings/register-settings.php:775
|
3822 |
msgid "Buy Now Text"
|
3823 |
msgstr ""
|
3824 |
|
3825 |
+
#: includes/admin/settings/register-settings.php:776
|
3826 |
msgid "Text shown on the Buy Now Buttons."
|
3827 |
msgstr ""
|
3828 |
|
3829 |
+
#: includes/admin/settings/register-settings.php:784
|
3830 |
+
msgid "File Download Settings"
|
3831 |
+
msgstr ""
|
3832 |
+
|
3833 |
+
#: includes/admin/settings/register-settings.php:789
|
3834 |
+
#: includes/admin/settings/register-settings.php:792
|
3835 |
msgid "Download Method"
|
3836 |
msgstr ""
|
3837 |
|
3838 |
+
#: includes/admin/settings/register-settings.php:790
|
3839 |
msgid "Select the file download method. Note, not all methods work on all servers."
|
3840 |
msgstr ""
|
3841 |
|
3842 |
+
#: includes/admin/settings/register-settings.php:793
|
3843 |
msgid ""
|
3844 |
"Due to its consistency in multiple platforms and better file protection, "
|
3845 |
"'forced' is the default method. Because Easy Digital Downloads uses PHP to "
|
3850 |
"method can help resolve this."
|
3851 |
msgstr ""
|
3852 |
|
3853 |
+
#: includes/admin/settings/register-settings.php:795
|
3854 |
msgid "Forced"
|
3855 |
msgstr ""
|
3856 |
|
3857 |
+
#: includes/admin/settings/register-settings.php:796
|
3858 |
msgid "Redirect"
|
3859 |
msgstr ""
|
3860 |
|
3861 |
+
#: includes/admin/settings/register-settings.php:801
|
3862 |
msgid "Symlink File Downloads?"
|
3863 |
msgstr ""
|
3864 |
|
3865 |
+
#: includes/admin/settings/register-settings.php:802
|
3866 |
msgid ""
|
3867 |
"Check this if you are delivering really large files or having problems with "
|
3868 |
"file downloads completing."
|
3869 |
msgstr ""
|
3870 |
|
3871 |
+
#: includes/admin/settings/register-settings.php:808
|
3872 |
msgid ""
|
3873 |
"The maximum number of times files can be downloaded for purchases. Can be "
|
3874 |
"overwritten for each %s."
|
3875 |
msgstr ""
|
3876 |
|
3877 |
+
#: includes/admin/settings/register-settings.php:811
|
3878 |
msgid "File Download Limits"
|
3879 |
msgstr ""
|
3880 |
|
3881 |
+
#: includes/admin/settings/register-settings.php:812
|
3882 |
msgid ""
|
3883 |
"Set the global default for the number of times a customer can download "
|
3884 |
"items they purchase. Using a value of 0 is unlimited. This can be defined "
|
3886 |
"individual purchase."
|
3887 |
msgstr ""
|
3888 |
|
3889 |
+
#: includes/admin/settings/register-settings.php:816
|
3890 |
+
#: includes/admin/settings/register-settings.php:818
|
3891 |
msgid "Download Link Expiration"
|
3892 |
msgstr ""
|
3893 |
|
3894 |
+
#: includes/admin/settings/register-settings.php:817
|
3895 |
msgid ""
|
3896 |
"How long should download links be valid for? Default is 24 hours from the "
|
3897 |
"time they are generated. Enter a time in hours."
|
3898 |
msgstr ""
|
3899 |
|
3900 |
+
#: includes/admin/settings/register-settings.php:819
|
3901 |
msgid ""
|
3902 |
"When a customer receives a link to their downloads via email, in their "
|
3903 |
"receipt, or in their purchase history, the link will only be valid for the "
|
3906 |
"customer."
|
3907 |
msgstr ""
|
3908 |
|
3909 |
+
#: includes/admin/settings/register-settings.php:827
|
3910 |
msgid "Disable Redownload?"
|
3911 |
msgstr ""
|
3912 |
|
3913 |
+
#: includes/admin/settings/register-settings.php:828
|
3914 |
msgid ""
|
3915 |
"Check this if you do not want to allow users to redownload items from their "
|
3916 |
"purchase history."
|
3917 |
msgstr ""
|
3918 |
|
3919 |
+
#: includes/admin/settings/register-settings.php:835
|
3920 |
+
#: includes/admin/settings/register-settings.php:1314
|
3921 |
+
msgid "Accounting Settings"
|
3922 |
+
msgstr ""
|
3923 |
+
|
3924 |
+
#: includes/admin/settings/register-settings.php:840
|
3925 |
msgid "Enable SKU Entry"
|
3926 |
msgstr ""
|
3927 |
|
3928 |
+
#: includes/admin/settings/register-settings.php:841
|
3929 |
msgid ""
|
3930 |
"Check this box to allow entry of product SKUs. SKUs will be shown on "
|
3931 |
"purchase receipt and exported purchase histories."
|
3932 |
msgstr ""
|
3933 |
|
3934 |
+
#: includes/admin/settings/register-settings.php:846
|
3935 |
msgid "Sequential Order Numbers"
|
3936 |
msgstr ""
|
3937 |
|
3938 |
+
#: includes/admin/settings/register-settings.php:847
|
3939 |
msgid "Check this box to enable sequential order numbers."
|
3940 |
msgstr ""
|
3941 |
|
3942 |
+
#: includes/admin/settings/register-settings.php:852
|
3943 |
msgid "Sequential Starting Number"
|
3944 |
msgstr ""
|
3945 |
|
3946 |
+
#: includes/admin/settings/register-settings.php:853
|
3947 |
msgid "The number at which the sequence should begin."
|
3948 |
msgstr ""
|
3949 |
|
3950 |
+
#: includes/admin/settings/register-settings.php:860
|
3951 |
msgid "Sequential Number Prefix"
|
3952 |
msgstr ""
|
3953 |
|
3954 |
+
#: includes/admin/settings/register-settings.php:861
|
3955 |
msgid "A prefix to prepend to all sequential order numbers."
|
3956 |
msgstr ""
|
3957 |
|
3958 |
+
#: includes/admin/settings/register-settings.php:866
|
3959 |
msgid "Sequential Number Postfix"
|
3960 |
msgstr ""
|
3961 |
|
3962 |
+
#: includes/admin/settings/register-settings.php:867
|
3963 |
msgid "A postfix to append to all sequential order numbers."
|
3964 |
msgstr ""
|
3965 |
|
3966 |
+
#: includes/admin/settings/register-settings.php:874
|
3967 |
+
msgid "Agreement Settings"
|
3968 |
+
msgstr ""
|
3969 |
+
|
3970 |
+
#: includes/admin/settings/register-settings.php:879
|
3971 |
msgid "Agree to Terms"
|
3972 |
msgstr ""
|
3973 |
|
3974 |
+
#: includes/admin/settings/register-settings.php:880
|
3975 |
msgid ""
|
3976 |
"Check this to show an agree to terms on the checkout that users must agree "
|
3977 |
"to before purchasing."
|
3978 |
msgstr ""
|
3979 |
|
3980 |
+
#: includes/admin/settings/register-settings.php:885
|
3981 |
msgid "Agree to Terms Label"
|
3982 |
msgstr ""
|
3983 |
|
3984 |
+
#: includes/admin/settings/register-settings.php:886
|
3985 |
msgid "Label shown next to the agree to terms check box."
|
3986 |
msgstr ""
|
3987 |
|
3988 |
+
#: includes/admin/settings/register-settings.php:892
|
3989 |
msgid "Agreement Text"
|
3990 |
msgstr ""
|
3991 |
|
3992 |
+
#: includes/admin/settings/register-settings.php:893
|
3993 |
msgid "If Agree to Terms is checked, enter the agreement terms here."
|
3994 |
msgstr ""
|
3995 |
|
3996 |
+
#: includes/admin/settings/register-settings.php:903
|
3997 |
msgid "Buy Now Disabled"
|
3998 |
msgstr ""
|
3999 |
|
4000 |
+
#: includes/admin/settings/register-settings.php:904
|
4001 |
msgid ""
|
4002 |
"Buy Now buttons are only available for stores that have a single supported "
|
4003 |
"gateway active and that do not use taxes."
|
4004 |
msgstr ""
|
4005 |
|
4006 |
+
#: includes/admin/settings/register-settings.php:996
|
4007 |
msgid "Settings updated."
|
4008 |
msgstr ""
|
4009 |
|
4010 |
+
#: includes/admin/settings/register-settings.php:1124
|
4011 |
msgid "Error setting default gateway. No gateways are enabled."
|
4012 |
msgstr ""
|
4013 |
|
4014 |
+
#: includes/admin/settings/register-settings.php:1137
|
4015 |
msgid "%s could not be set as the default gateway. It must first be enabled."
|
4016 |
msgstr ""
|
4017 |
|
4018 |
+
#: includes/admin/settings/register-settings.php:1241
|
4019 |
msgid "Licenses"
|
4020 |
msgstr ""
|
4021 |
|
4022 |
+
#: includes/admin/settings/register-settings.php:1244
|
4023 |
msgid "Misc"
|
4024 |
msgstr ""
|
4025 |
|
4026 |
+
#: includes/admin/settings/register-settings.php:1292
|
4027 |
#: includes/gateways/functions.php:25 includes/gateways/paypal-standard.php:33
|
4028 |
msgid "PayPal Standard"
|
4029 |
msgstr ""
|
4030 |
|
4031 |
+
#: includes/admin/settings/register-settings.php:1297
|
|
|
|
|
|
|
|
|
4032 |
msgid "New Sale Notifications"
|
4033 |
msgstr ""
|
4034 |
|
4035 |
+
#: includes/admin/settings/register-settings.php:1306
|
4036 |
msgid "Main"
|
4037 |
msgstr ""
|
4038 |
|
4039 |
+
#: includes/admin/settings/register-settings.php:1315
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4040 |
msgid "Terms of Agreement"
|
4041 |
msgstr ""
|
4042 |
|
4043 |
+
#: includes/admin/settings/register-settings.php:1731
|
|
|
|
|
|
|
|
|
|
|
|
|
4044 |
msgid "The callback function used for the %s setting is missing."
|
4045 |
msgstr ""
|
4046 |
|
4047 |
+
#: includes/admin/settings/register-settings.php:1871
|
4048 |
msgid "Upload File"
|
4049 |
msgstr ""
|
4050 |
|
4051 |
+
#: includes/admin/settings/register-settings.php:1972
|
4052 |
msgid "Country Wide"
|
4053 |
msgstr ""
|
4054 |
|
4055 |
+
#: includes/admin/settings/register-settings.php:1973
|
4056 |
msgid "Rate"
|
4057 |
msgstr ""
|
4058 |
|
4059 |
+
#: includes/admin/settings/register-settings.php:1973
|
4060 |
msgid ""
|
4061 |
"<strong>Regional tax rates: </strong>When a customer enters an address on "
|
4062 |
"checkout that matches the specified region for this tax rate, the cart tax "
|
4063 |
"will adjust automatically. Enter a percentage, such as 6.5 for 6.5%."
|
4064 |
msgstr ""
|
4065 |
|
4066 |
+
#: includes/admin/settings/register-settings.php:1990
|
4067 |
+
#: includes/admin/settings/register-settings.php:2035
|
4068 |
msgid "Choose a country"
|
4069 |
msgstr ""
|
4070 |
|
4071 |
+
#: includes/admin/settings/register-settings.php:2005
|
4072 |
msgid "Choose a state"
|
4073 |
msgstr ""
|
4074 |
|
4075 |
+
#: includes/admin/settings/register-settings.php:2017
|
4076 |
+
#: includes/admin/settings/register-settings.php:2045
|
4077 |
msgid "Apply to whole country"
|
4078 |
msgstr ""
|
4079 |
|
4080 |
+
#: includes/admin/settings/register-settings.php:2020
|
4081 |
+
#: includes/admin/settings/register-settings.php:2048
|
4082 |
msgid "Remove Rate"
|
4083 |
msgstr ""
|
4084 |
|
4085 |
+
#: includes/admin/settings/register-settings.php:2053
|
4086 |
msgid "Add Tax Rate"
|
4087 |
msgstr ""
|
4088 |
|
4089 |
+
#: includes/admin/settings/register-settings.php:2106
|
4090 |
msgid ""
|
4091 |
"Your license key expired on %s. Please <a href=\"%s\" "
|
4092 |
"target=\"_blank\">renew your license key</a>."
|
4093 |
msgstr ""
|
4094 |
|
4095 |
+
#: includes/admin/settings/register-settings.php:2119
|
4096 |
msgid ""
|
4097 |
"Your license key has been disabled. Please <a href=\"%s\" "
|
4098 |
"target=\"_blank\">contact support</a> for more information."
|
4099 |
msgstr ""
|
4100 |
|
4101 |
+
#: includes/admin/settings/register-settings.php:2131
|
4102 |
msgid ""
|
4103 |
"Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account "
|
4104 |
"page</a> and verify it."
|
4105 |
msgstr ""
|
4106 |
|
4107 |
+
#: includes/admin/settings/register-settings.php:2144
|
4108 |
msgid ""
|
4109 |
"Your %s is not active for this URL. Please <a href=\"%s\" "
|
4110 |
"target=\"_blank\">visit your account page</a> to manage your license key "
|
4111 |
"URLs."
|
4112 |
msgstr ""
|
4113 |
|
4114 |
+
#: includes/admin/settings/register-settings.php:2156
|
4115 |
msgid "This appears to be an invalid license key for %s."
|
4116 |
msgstr ""
|
4117 |
|
4118 |
+
#: includes/admin/settings/register-settings.php:2165
|
4119 |
msgid ""
|
4120 |
"Your license key has reached its activation limit. <a href=\"%s\">View "
|
4121 |
"possible upgrades</a> now."
|
4122 |
msgstr ""
|
4123 |
|
4124 |
+
#: includes/admin/settings/register-settings.php:2174
|
4125 |
msgid ""
|
4126 |
"The key you entered belongs to a bundle, please use the product specific "
|
4127 |
"license key."
|
4128 |
msgstr ""
|
4129 |
|
4130 |
+
#: includes/admin/settings/register-settings.php:2182
|
4131 |
msgid "unknown_error"
|
4132 |
msgstr ""
|
4133 |
|
4134 |
+
#: includes/admin/settings/register-settings.php:2183
|
4135 |
msgid ""
|
4136 |
"There was an error with this license key: %s. Please <a href=\"%s\">contact "
|
4137 |
"our support team</a>."
|
4138 |
msgstr ""
|
4139 |
|
4140 |
+
#: includes/admin/settings/register-settings.php:2203
|
4141 |
msgid "License key never expires."
|
4142 |
msgstr ""
|
4143 |
|
4144 |
+
#: includes/admin/settings/register-settings.php:2210
|
4145 |
msgid ""
|
4146 |
"Your license key expires soon! It expires on %s. <a href=\"%s\" "
|
4147 |
"target=\"_blank\">Renew your license key</a>."
|
4148 |
msgstr ""
|
4149 |
|
4150 |
+
#: includes/admin/settings/register-settings.php:2220
|
4151 |
msgid "Your license key expires on %s."
|
4152 |
msgstr ""
|
4153 |
|
4154 |
+
#: includes/admin/settings/register-settings.php:2238
|
4155 |
msgid "To receive updates, please enter your valid %s license key."
|
4156 |
msgstr ""
|
4157 |
|
4158 |
+
#: includes/admin/settings/register-settings.php:2251
|
4159 |
msgid "Deactivate License"
|
4160 |
msgstr ""
|
4161 |
|
4162 |
+
#: includes/admin/thickbox.php:29 includes/admin/thickbox.php:130
|
4163 |
msgid "Insert %s"
|
4164 |
msgstr ""
|
4165 |
|
4166 |
+
#: includes/admin/thickbox.php:62
|
4167 |
msgid "You must choose a download"
|
4168 |
msgstr ""
|
4169 |
|
4170 |
+
#: includes/admin/thickbox.php:88
|
4171 |
msgid "Use the form below to insert the shortcode for purchasing a %s"
|
4172 |
msgstr ""
|
4173 |
|
4174 |
+
#: includes/admin/thickbox.php:95
|
4175 |
msgid "Choose the button behavior"
|
4176 |
msgstr ""
|
4177 |
|
4178 |
+
#: includes/admin/thickbox.php:97
|
4179 |
msgid "Direct Purchase Link"
|
4180 |
msgstr ""
|
4181 |
|
4182 |
+
#: includes/admin/thickbox.php:103
|
4183 |
msgid "Choose a style"
|
4184 |
msgstr ""
|
4185 |
|
4186 |
+
#: includes/admin/thickbox.php:117
|
4187 |
msgid "Choose a button color"
|
4188 |
msgstr ""
|
4189 |
|
4190 |
+
#: includes/admin/thickbox.php:127
|
4191 |
msgid "Link text . . ."
|
4192 |
msgstr ""
|
4193 |
|
4216 |
msgid "Customers, earnings, sales, discounts and logs successfully reset."
|
4217 |
msgstr ""
|
4218 |
|
4219 |
+
#: includes/admin/tools.php:31
|
4220 |
msgid "Easy Digital Downloads Tools"
|
4221 |
msgstr ""
|
4222 |
|
4223 |
+
#: includes/admin/tools.php:73
|
4224 |
msgid "Beta Versions"
|
4225 |
msgstr ""
|
4226 |
|
4227 |
+
#: includes/admin/tools.php:76
|
4228 |
msgid "System Info"
|
4229 |
msgstr ""
|
4230 |
|
4231 |
+
#: includes/admin/tools.php:77
|
|
|
|
|
|
|
|
|
4232 |
msgid "Import/Export"
|
4233 |
msgstr ""
|
4234 |
|
4235 |
+
#: includes/admin/tools.php:98
|
4236 |
msgid "Banned Emails"
|
4237 |
msgstr ""
|
4238 |
|
4239 |
+
#: includes/admin/tools.php:100
|
4240 |
+
msgid ""
|
4241 |
+
"Emails placed in the box below will not be allowed to make purchases. To "
|
4242 |
+
"ban an entire domain, enter the domain starting with \"@\"."
|
4243 |
msgstr ""
|
4244 |
|
4245 |
+
#: includes/admin/tools.php:104
|
4246 |
+
msgid "Enter emails and/or domains (starting with @) to disallow, one per line."
|
|
|
|
|
4247 |
msgstr ""
|
4248 |
|
4249 |
+
#: includes/admin/tools.php:109 includes/admin/tools.php:294
|
4250 |
msgid "Save"
|
4251 |
msgstr ""
|
4252 |
|
4253 |
+
#: includes/admin/tools.php:138
|
4254 |
msgid "Use these tools to recount / reset store stats."
|
4255 |
msgstr ""
|
4256 |
|
4257 |
+
#: includes/admin/tools.php:145 includes/scripts.php:83
|
4258 |
msgid "Please select an option"
|
4259 |
msgstr ""
|
4260 |
|
4261 |
+
#: includes/admin/tools.php:146
|
4262 |
msgid "Recount Store Earnings and Sales"
|
4263 |
msgstr ""
|
4264 |
|
4265 |
+
#: includes/admin/tools.php:147
|
4266 |
msgid "Recount Earnings and Sales for a %s"
|
4267 |
msgstr ""
|
4268 |
|
4269 |
+
#: includes/admin/tools.php:148
|
4270 |
msgid "Recount Earnings and Sales for All %s"
|
4271 |
msgstr ""
|
4272 |
|
4273 |
+
#: includes/admin/tools.php:151
|
4274 |
msgid "Reset Store"
|
4275 |
msgstr ""
|
4276 |
|
4277 |
+
#: includes/admin/tools.php:170
|
4278 |
msgid "Recalculates the total store earnings and sales."
|
4279 |
msgstr ""
|
4280 |
|
4281 |
+
#: includes/admin/tools.php:171
|
4282 |
msgid "Recalculates the earnings and sales stats for a specific %s."
|
4283 |
msgstr ""
|
4284 |
|
4285 |
+
#: includes/admin/tools.php:172
|
4286 |
msgid "Recalculates the earnings and sales stats for all %s."
|
4287 |
msgstr ""
|
4288 |
|
4289 |
+
#: includes/admin/tools.php:173
|
4290 |
msgid "Recalculates the lifetime value and purchase counts for all customers."
|
4291 |
msgstr ""
|
4292 |
|
4293 |
+
#: includes/admin/tools.php:175
|
4294 |
msgid ""
|
4295 |
"<strong>Deletes</strong> all payment records, customers, and related log "
|
4296 |
"entries."
|
4297 |
msgstr ""
|
4298 |
|
4299 |
+
#: includes/admin/tools.php:205 includes/admin/tools.php:213
|
4300 |
msgid "Clear Incomplete Upgrade Notice"
|
4301 |
msgstr ""
|
4302 |
|
4303 |
+
#: includes/admin/tools.php:207
|
4304 |
msgid ""
|
4305 |
"Sometimes a database upgrade notice may not be cleared after an upgrade is "
|
4306 |
"completed due to conflicts with other extensions or other minor issues."
|
4307 |
msgstr ""
|
4308 |
|
4309 |
+
#: includes/admin/tools.php:208
|
4310 |
msgid ""
|
4311 |
"If you're certain these upgrades have been completed, you can clear these "
|
4312 |
"upgrade notices by clicking the button below. If you have any questions "
|
4314 |
"we'll be happy to help."
|
4315 |
msgstr ""
|
4316 |
|
4317 |
+
#: includes/admin/tools.php:245
|
4318 |
msgid ""
|
4319 |
"These API keys allow you to use the <a href=\"%s\">EDD REST API</a> to "
|
4320 |
"retrieve store data in JSON or XML for external applications or devices, "
|
4321 |
"such as the <a href=\"%s\">EDD mobile app</a>."
|
4322 |
msgstr ""
|
4323 |
|
4324 |
+
#: includes/admin/tools.php:274
|
4325 |
msgid "Enable Beta Versions"
|
4326 |
msgstr ""
|
4327 |
|
4328 |
+
#: includes/admin/tools.php:276
|
4329 |
msgid ""
|
4330 |
"Checking any of the below checkboxes will opt you in to receive pre-release "
|
4331 |
"update notifications. You can opt-out at any time. Pre-release updates do "
|
4333 |
"update notifications."
|
4334 |
msgstr ""
|
4335 |
|
4336 |
+
#: includes/admin/tools.php:286
|
4337 |
msgid "Get updates for pre-release versions of %s"
|
4338 |
msgstr ""
|
4339 |
|
4340 |
+
#: includes/admin/tools.php:448
|
4341 |
msgid "Import Payment History"
|
4342 |
msgstr ""
|
4343 |
|
4344 |
+
#: includes/admin/tools.php:450
|
4345 |
msgid "Import a CSV file of payment records."
|
4346 |
msgstr ""
|
4347 |
|
4348 |
+
#: includes/admin/tools.php:460 includes/admin/tools.php:742
|
4349 |
msgid "Import CSV"
|
4350 |
msgstr ""
|
4351 |
|
4352 |
+
#: includes/admin/tools.php:470
|
4353 |
msgid ""
|
4354 |
"Each column loaded from the CSV needs to be mapped to a payment field. "
|
4355 |
"Select the column that should be mapped to each field below. Any columns "
|
4357 |
"guide</a> for assistance with importing payment records."
|
4358 |
msgstr ""
|
4359 |
|
4360 |
+
#: includes/admin/tools.php:479
|
4361 |
msgid "Payment Field"
|
4362 |
msgstr ""
|
4363 |
|
4364 |
+
#: includes/admin/tools.php:480 includes/admin/tools.php:762
|
4365 |
msgid "CSV Column"
|
4366 |
msgstr ""
|
4367 |
|
4368 |
+
#: includes/admin/tools.php:481 includes/admin/tools.php:763
|
4369 |
msgid "Data Preview"
|
4370 |
msgstr ""
|
4371 |
|
4372 |
+
#: includes/admin/tools.php:486
|
4373 |
msgid "Currency Code"
|
4374 |
msgstr ""
|
4375 |
|
4376 |
+
#: includes/admin/tools.php:489 includes/admin/tools.php:498
|
4377 |
+
#: includes/admin/tools.php:507 includes/admin/tools.php:516
|
4378 |
+
#: includes/admin/tools.php:525 includes/admin/tools.php:534
|
4379 |
+
#: includes/admin/tools.php:543 includes/admin/tools.php:552
|
4380 |
+
#: includes/admin/tools.php:561 includes/admin/tools.php:570
|
4381 |
+
#: includes/admin/tools.php:579 includes/admin/tools.php:588
|
4382 |
+
#: includes/admin/tools.php:597 includes/admin/tools.php:606
|
4383 |
+
#: includes/admin/tools.php:615 includes/admin/tools.php:624
|
4384 |
+
#: includes/admin/tools.php:633 includes/admin/tools.php:642
|
4385 |
+
#: includes/admin/tools.php:651 includes/admin/tools.php:660
|
4386 |
+
#: includes/admin/tools.php:669 includes/admin/tools.php:678
|
4387 |
+
#: includes/admin/tools.php:687 includes/admin/tools.php:696
|
4388 |
+
#: includes/admin/tools.php:705 includes/admin/tools.php:714
|
4389 |
+
#: includes/admin/tools.php:771 includes/admin/tools.php:780
|
4390 |
+
#: includes/admin/tools.php:789 includes/admin/tools.php:798
|
4391 |
+
#: includes/admin/tools.php:807 includes/admin/tools.php:816
|
4392 |
+
#: includes/admin/tools.php:825 includes/admin/tools.php:834
|
4393 |
+
#: includes/admin/tools.php:843 includes/admin/tools.php:852
|
4394 |
+
#: includes/admin/tools.php:861 includes/admin/tools.php:870
|
4395 |
+
#: includes/admin/tools.php:879 includes/admin/tools.php:888
|
4396 |
+
#: includes/admin/tools.php:897 includes/admin/tools.php:906
|
4397 |
+
#: includes/admin/tools.php:915
|
4398 |
msgid "- Ignore this field -"
|
4399 |
msgstr ""
|
4400 |
|
4401 |
+
#: includes/admin/tools.php:492 includes/admin/tools.php:501
|
4402 |
+
#: includes/admin/tools.php:510 includes/admin/tools.php:519
|
4403 |
+
#: includes/admin/tools.php:528 includes/admin/tools.php:537
|
4404 |
+
#: includes/admin/tools.php:546 includes/admin/tools.php:555
|
4405 |
+
#: includes/admin/tools.php:564 includes/admin/tools.php:573
|
4406 |
+
#: includes/admin/tools.php:582 includes/admin/tools.php:591
|
4407 |
+
#: includes/admin/tools.php:600 includes/admin/tools.php:609
|
4408 |
+
#: includes/admin/tools.php:618 includes/admin/tools.php:627
|
4409 |
+
#: includes/admin/tools.php:636 includes/admin/tools.php:645
|
4410 |
+
#: includes/admin/tools.php:654 includes/admin/tools.php:663
|
4411 |
+
#: includes/admin/tools.php:672 includes/admin/tools.php:681
|
4412 |
+
#: includes/admin/tools.php:690 includes/admin/tools.php:699
|
4413 |
+
#: includes/admin/tools.php:708 includes/admin/tools.php:717
|
4414 |
+
#: includes/admin/tools.php:774 includes/admin/tools.php:783
|
4415 |
+
#: includes/admin/tools.php:792 includes/admin/tools.php:801
|
4416 |
+
#: includes/admin/tools.php:810 includes/admin/tools.php:819
|
4417 |
+
#: includes/admin/tools.php:828 includes/admin/tools.php:837
|
4418 |
+
#: includes/admin/tools.php:846 includes/admin/tools.php:855
|
4419 |
+
#: includes/admin/tools.php:864 includes/admin/tools.php:873
|
4420 |
+
#: includes/admin/tools.php:882 includes/admin/tools.php:891
|
4421 |
+
#: includes/admin/tools.php:900 includes/admin/tools.php:909
|
4422 |
+
#: includes/admin/tools.php:918
|
4423 |
msgid "- select field to preview data -"
|
4424 |
msgstr ""
|
4425 |
|
4426 |
+
#: includes/admin/tools.php:531
|
4427 |
msgid "Discount Code(s)"
|
4428 |
msgstr ""
|
4429 |
|
4430 |
+
#: includes/admin/tools.php:558
|
4431 |
msgid "Parent Payment ID"
|
4432 |
msgstr ""
|
4433 |
|
4434 |
+
#: includes/admin/tools.php:603
|
4435 |
msgid "Purchased Product(s)"
|
4436 |
msgstr ""
|
4437 |
|
4438 |
+
#: includes/admin/tools.php:621 templates/checkout_cart.php:102
|
4439 |
#: templates/shortcode-receipt.php:98
|
4440 |
msgid "Subtotal"
|
4441 |
msgstr ""
|
4442 |
|
4443 |
+
#: includes/admin/tools.php:639 templates/checkout_cart.php:129
|
4444 |
msgid "Total"
|
4445 |
msgstr ""
|
4446 |
|
4447 |
+
#: includes/admin/tools.php:666
|
4448 |
msgid "Address Line 1"
|
4449 |
msgstr ""
|
4450 |
|
4451 |
+
#: includes/admin/tools.php:675
|
4452 |
msgid "Address Line 2"
|
4453 |
msgstr ""
|
4454 |
|
4455 |
+
#: includes/admin/tools.php:722 includes/admin/tools.php:923
|
4456 |
msgid "Process Import"
|
4457 |
msgstr ""
|
4458 |
|
4459 |
+
#: includes/admin/tools.php:730
|
4460 |
msgid "Import Download Products"
|
4461 |
msgstr ""
|
4462 |
|
4463 |
+
#: includes/admin/tools.php:732
|
4464 |
msgid "Import a CSV file of products."
|
4465 |
msgstr ""
|
4466 |
|
4467 |
+
#: includes/admin/tools.php:752
|
4468 |
msgid ""
|
4469 |
"Each column loaded from the CSV needs to be mapped to a Download product "
|
4470 |
"field. Select the column that should be mapped to each field below. Any "
|
4473 |
"products."
|
4474 |
msgstr ""
|
4475 |
|
4476 |
+
#: includes/admin/tools.php:761
|
4477 |
msgid "Product Field"
|
4478 |
msgstr ""
|
4479 |
|
4480 |
+
#: includes/admin/tools.php:768
|
4481 |
msgid "Product Author"
|
4482 |
msgstr ""
|
4483 |
|
4484 |
+
#: includes/admin/tools.php:777
|
4485 |
msgid "Product Categories"
|
4486 |
msgstr ""
|
4487 |
|
4488 |
+
#: includes/admin/tools.php:786
|
4489 |
msgid "Product Creation Date"
|
4490 |
msgstr ""
|
4491 |
|
4492 |
+
#: includes/admin/tools.php:795
|
4493 |
msgid "Product Description"
|
4494 |
msgstr ""
|
4495 |
|
4496 |
+
#: includes/admin/tools.php:804
|
4497 |
msgid "Product Excerpt"
|
4498 |
msgstr ""
|
4499 |
|
4500 |
+
#: includes/admin/tools.php:813
|
4501 |
msgid "Product Image"
|
4502 |
msgstr ""
|
4503 |
|
4504 |
+
#: includes/admin/tools.php:822
|
4505 |
msgid "Product Notes"
|
4506 |
msgstr ""
|
4507 |
|
4508 |
+
#: includes/admin/tools.php:831
|
4509 |
msgid "Product Price(s)"
|
4510 |
msgstr ""
|
4511 |
|
4512 |
+
#: includes/admin/tools.php:840
|
4513 |
msgid "Product SKU"
|
4514 |
msgstr ""
|
4515 |
|
4516 |
+
#: includes/admin/tools.php:849
|
4517 |
msgid "Product Slug"
|
4518 |
msgstr ""
|
4519 |
|
4520 |
+
#: includes/admin/tools.php:858
|
4521 |
msgid "Product Status"
|
4522 |
msgstr ""
|
4523 |
|
4524 |
+
#: includes/admin/tools.php:867
|
4525 |
msgid "Product Tags"
|
4526 |
msgstr ""
|
4527 |
|
4528 |
+
#: includes/admin/tools.php:876
|
4529 |
msgid "Product Title"
|
4530 |
msgstr ""
|
4531 |
|
4532 |
+
#: includes/admin/tools.php:885
|
4533 |
msgid "Download Files"
|
4534 |
msgstr ""
|
4535 |
|
4536 |
+
#: includes/admin/tools.php:903
|
4537 |
msgid "Sale Count"
|
4538 |
msgstr ""
|
4539 |
|
4540 |
+
#: includes/admin/tools.php:931
|
4541 |
msgid "Export Settings"
|
4542 |
msgstr ""
|
4543 |
|
4544 |
+
#: includes/admin/tools.php:933
|
4545 |
msgid ""
|
4546 |
"Export the Easy Digital Downloads settings for this site as a .json file. "
|
4547 |
"This allows you to easily import the configuration into another site."
|
4548 |
msgstr ""
|
4549 |
|
4550 |
+
#: includes/admin/tools.php:934
|
4551 |
msgid ""
|
4552 |
"To export shop data (purchases, customers, etc), visit the <a "
|
4553 |
"href=\"%s\">Reports</a> page."
|
4554 |
msgstr ""
|
4555 |
|
4556 |
+
#: includes/admin/tools.php:946
|
4557 |
msgid "Import Settings"
|
4558 |
msgstr ""
|
4559 |
|
4560 |
+
#: includes/admin/tools.php:948
|
4561 |
msgid ""
|
4562 |
"Import the Easy Digital Downloads settings from a .json file. This file can "
|
4563 |
"be obtained by exporting the settings on another site using the form above."
|
4564 |
msgstr ""
|
4565 |
|
4566 |
+
#: includes/admin/tools.php:956
|
4567 |
msgid "Import"
|
4568 |
msgstr ""
|
4569 |
|
4570 |
+
#: includes/admin/tools.php:1021
|
4571 |
msgid "Please upload a valid .json file"
|
4572 |
msgstr ""
|
4573 |
|
4574 |
+
#: includes/admin/tools.php:1027
|
4575 |
msgid "Please upload a file to import"
|
4576 |
msgstr ""
|
4577 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4578 |
#: includes/admin/tracking.php:256
|
4579 |
msgid ""
|
4580 |
"Allow Easy Digital Downloads to track plugin usage? Opt-in to tracking and "
|
4581 |
+
"our newsletter and immediately be emailed a 20%s discount to the EDD shop, "
|
4582 |
+
"valid towards the <a href=\"%s\" target=\"_blank\">purchase of "
|
4583 |
+
"extensions</a>. No sensitive data is tracked."
|
4584 |
msgstr ""
|
4585 |
|
4586 |
#: includes/admin/tracking.php:257
|
4695 |
msgid "Step %d of approximately %d running"
|
4696 |
msgstr ""
|
4697 |
|
4698 |
+
#: includes/ajax-functions.php:564 includes/ajax-functions.php:616
|
4699 |
msgid "No results found"
|
4700 |
msgstr ""
|
4701 |
|
4702 |
+
#: includes/ajax-functions.php:665 includes/ajax-functions.php:757
|
4703 |
+
#: includes/class-edd-html-elements.php:289
|
4704 |
msgid "No users found"
|
4705 |
msgstr ""
|
4706 |
|
4707 |
+
#: includes/ajax-functions.php:707
|
4708 |
msgid "All Prices"
|
4709 |
msgstr ""
|
4710 |
|
4711 |
+
#: includes/api/class-edd-api-v2.php:143 includes/api/class-edd-api.php:1059
|
4712 |
+
#: includes/api/class-edd-api.php:1243 includes/api/class-edd-api.php:1425
|
4713 |
msgid "Product %s not found!"
|
4714 |
msgstr ""
|
4715 |
|
4716 |
+
#: includes/api/class-edd-api-v2.php:218 includes/api/class-edd-api.php:1164
|
4717 |
+
#: includes/api/class-edd-api.php:1260
|
4718 |
msgid "The end date must be later than the start date!"
|
4719 |
msgstr ""
|
4720 |
|
4721 |
+
#: includes/api/class-edd-api-v2.php:319 includes/api/class-edd-api.php:1000
|
4722 |
msgid "Customer %s not found!"
|
4723 |
msgstr ""
|
4724 |
|
4725 |
+
#: includes/api/class-edd-api-v2.php:324 includes/api/class-edd-api.php:1005
|
4726 |
msgid "No customers found!"
|
4727 |
msgstr ""
|
4728 |
|
4729 |
+
#: includes/api/class-edd-api.php:460
|
4730 |
msgid "You must specify both a token and API key!"
|
4731 |
msgstr ""
|
4732 |
|
4733 |
+
#: includes/api/class-edd-api.php:477
|
4734 |
msgid "Your request could not be authenticated!"
|
4735 |
msgstr ""
|
4736 |
|
4737 |
+
#: includes/api/class-edd-api.php:495
|
4738 |
msgid "Invalid API key!"
|
4739 |
msgstr ""
|
4740 |
|
4741 |
+
#: includes/api/class-edd-api.php:511
|
4742 |
msgid "Invalid API version!"
|
4743 |
msgstr ""
|
4744 |
|
4745 |
+
#: includes/api/class-edd-api.php:685
|
4746 |
msgid "Invalid query!"
|
4747 |
msgstr ""
|
4748 |
|
4749 |
+
#: includes/api/class-edd-api.php:1169 includes/api/class-edd-api.php:1265
|
4750 |
msgid "Invalid or no date range specified!"
|
4751 |
msgstr ""
|
4752 |
|
4753 |
+
#: includes/api/class-edd-api.php:1571
|
4754 |
msgid "No discounts found!"
|
4755 |
msgstr ""
|
4756 |
|
4757 |
+
#: includes/api/class-edd-api.php:1618
|
4758 |
msgid "Discount %s not found!"
|
4759 |
msgstr ""
|
4760 |
|
4761 |
+
#: includes/api/class-edd-api.php:1691
|
4762 |
msgid "No download logs found!"
|
4763 |
msgstr ""
|
4764 |
|
4765 |
+
#: includes/api/class-edd-api.php:1947 includes/user-functions.php:1011
|
4766 |
msgid "Easy Digital Downloads API Keys"
|
4767 |
msgstr ""
|
4768 |
|
4769 |
+
#: includes/api/class-edd-api.php:1956 includes/user-functions.php:1016
|
4770 |
msgid "Generate API Key"
|
4771 |
msgstr ""
|
4772 |
|
4773 |
+
#: includes/api/class-edd-api.php:1958 includes/user-functions.php:1018
|
4774 |
msgid "Public key:"
|
4775 |
msgstr ""
|
4776 |
|
4777 |
+
#: includes/api/class-edd-api.php:1959 includes/user-functions.php:1019
|
4778 |
msgid "Secret key:"
|
4779 |
msgstr ""
|
4780 |
|
4781 |
+
#: includes/api/class-edd-api.php:1960 includes/user-functions.php:1020
|
4782 |
msgid "Token:"
|
4783 |
msgstr ""
|
4784 |
|
4785 |
+
#: includes/api/class-edd-api.php:1962 includes/user-functions.php:1022
|
4786 |
msgid "Revoke API Keys"
|
4787 |
msgstr ""
|
4788 |
|
4789 |
+
#: includes/api/class-edd-api.php:1988
|
4790 |
msgid "User ID Required"
|
4791 |
msgstr ""
|
4792 |
|
4793 |
+
#: includes/api/class-edd-api.php:2000 includes/api/class-edd-api.php:2002
|
4794 |
msgid "You do not have permission to %s API keys for this user"
|
4795 |
msgstr ""
|
4796 |
|
4797 |
+
#: includes/cart/class-edd-cart.php:902
|
4798 |
msgid "includes %s tax"
|
4799 |
msgstr ""
|
4800 |
|
4801 |
+
#: includes/cart/class-edd-cart.php:904
|
4802 |
msgid "excludes %s tax"
|
4803 |
msgstr ""
|
4804 |
|
4805 |
+
#: includes/cart/class-edd-cart.php:1419 includes/cart/class-edd-cart.php:1482
|
4806 |
#: templates/shortcode-profile-editor.php:22
|
4807 |
msgid "Success"
|
4808 |
msgstr ""
|
4809 |
|
4810 |
+
#: includes/cart/class-edd-cart.php:1420
|
4811 |
msgid "Cart saved successfully. You can restore your cart using this URL:"
|
4812 |
msgstr ""
|
4813 |
|
4814 |
+
#: includes/cart/class-edd-cart.php:1456 includes/cart/class-edd-cart.php:1470
|
4815 |
msgid "Cart restoration failed. Invalid token."
|
4816 |
msgstr ""
|
4817 |
|
4818 |
+
#: includes/cart/class-edd-cart.php:1464 includes/cart/class-edd-cart.php:1473
|
4819 |
msgid "The cart cannot be restored. Invalid token."
|
4820 |
msgstr ""
|
4821 |
|
4822 |
+
#: includes/cart/class-edd-cart.php:1482
|
4823 |
msgid "Cart restored successfully."
|
4824 |
msgstr ""
|
4825 |
|
4923 |
msgid "The date your credit card expires, typically on the front of the card."
|
4924 |
msgstr ""
|
4925 |
|
4926 |
+
#: includes/checkout/template.php:331
|
4927 |
msgid "Billing Details"
|
4928 |
msgstr ""
|
4929 |
|
4930 |
+
#: includes/checkout/template.php:340
|
4931 |
msgid "The primary billing address for your credit card."
|
4932 |
msgstr ""
|
4933 |
|
4934 |
+
#: includes/checkout/template.php:341
|
4935 |
msgid "Address line 1"
|
4936 |
msgstr ""
|
4937 |
|
4938 |
+
#: includes/checkout/template.php:345
|
4939 |
msgid "Billing Address Line 2 (optional)"
|
4940 |
msgstr ""
|
4941 |
|
4942 |
+
#: includes/checkout/template.php:350
|
4943 |
msgid "The suite, apt no, PO box, etc, associated with your billing address."
|
4944 |
msgstr ""
|
4945 |
|
4946 |
+
#: includes/checkout/template.php:351
|
4947 |
msgid "Address line 2"
|
4948 |
msgstr ""
|
4949 |
|
4950 |
+
#: includes/checkout/template.php:355
|
4951 |
msgid "Billing City"
|
4952 |
msgstr ""
|
4953 |
|
4954 |
+
#: includes/checkout/template.php:360
|
4955 |
msgid "The city for your billing address."
|
4956 |
msgstr ""
|
4957 |
|
4958 |
+
#: includes/checkout/template.php:365
|
4959 |
msgid "Billing Zip / Postal Code"
|
4960 |
msgstr ""
|
4961 |
|
4962 |
+
#: includes/checkout/template.php:370
|
4963 |
msgid "The zip or postal code for your billing address."
|
4964 |
msgstr ""
|
4965 |
|
4966 |
+
#: includes/checkout/template.php:375
|
4967 |
msgid "Billing Country"
|
4968 |
msgstr ""
|
4969 |
|
4970 |
+
#: includes/checkout/template.php:380
|
4971 |
msgid "The country for your billing address."
|
4972 |
msgstr ""
|
4973 |
|
4974 |
+
#: includes/checkout/template.php:399
|
4975 |
msgid "Billing State / Province"
|
4976 |
msgstr ""
|
4977 |
|
4978 |
+
#: includes/checkout/template.php:404
|
4979 |
msgid "The state or province for your billing address."
|
4980 |
msgstr ""
|
4981 |
|
4982 |
+
#: includes/checkout/template.php:462
|
4983 |
msgid "Already have an account?"
|
4984 |
msgstr ""
|
4985 |
|
4986 |
+
#: includes/checkout/template.php:462 includes/checkout/template.php:564
|
4987 |
msgid "Login"
|
4988 |
msgstr ""
|
4989 |
|
4990 |
+
#: includes/checkout/template.php:468
|
4991 |
msgid "Create an account"
|
4992 |
msgstr ""
|
4993 |
|
4994 |
+
#: includes/checkout/template.php:468
|
4995 |
msgid "(optional)"
|
4996 |
msgstr ""
|
4997 |
|
4998 |
+
#: includes/checkout/template.php:477
|
4999 |
msgid "The username you will use to log into your account."
|
5000 |
msgstr ""
|
5001 |
|
5002 |
+
#: includes/checkout/template.php:482 includes/checkout/template.php:488
|
5003 |
+
#: includes/checkout/template.php:553 templates/shortcode-login.php:19
|
5004 |
+
#: templates/shortcode-register.php:28
|
5005 |
msgid "Password"
|
5006 |
msgstr ""
|
5007 |
|
5008 |
+
#: includes/checkout/template.php:487
|
5009 |
msgid "The password used to access your account."
|
5010 |
msgstr ""
|
5011 |
|
5012 |
+
#: includes/checkout/template.php:492
|
5013 |
msgid "Password Again"
|
5014 |
msgstr ""
|
5015 |
|
5016 |
+
#: includes/checkout/template.php:497
|
5017 |
msgid "Confirm your password."
|
5018 |
msgstr ""
|
5019 |
|
5020 |
+
#: includes/checkout/template.php:498
|
5021 |
msgid "Confirm password"
|
5022 |
msgstr ""
|
5023 |
|
5024 |
+
#: includes/checkout/template.php:535
|
5025 |
msgid "Need to create an account?"
|
5026 |
msgstr ""
|
5027 |
|
5028 |
+
#: includes/checkout/template.php:537 templates/shortcode-register.php:44
|
5029 |
msgid "Register"
|
5030 |
msgstr ""
|
5031 |
|
5032 |
+
#: includes/checkout/template.php:537
|
5033 |
msgid "or checkout as a guest."
|
5034 |
msgstr ""
|
5035 |
|
5036 |
+
#: includes/checkout/template.php:544 templates/shortcode-login.php:15
|
5037 |
msgid "Username or Email"
|
5038 |
msgstr ""
|
5039 |
|
5040 |
+
#: includes/checkout/template.php:549
|
5041 |
msgid "Your username or email address"
|
5042 |
msgstr ""
|
5043 |
|
5044 |
+
#: includes/checkout/template.php:558
|
5045 |
msgid "Your password"
|
5046 |
msgstr ""
|
5047 |
|
5048 |
+
#: includes/checkout/template.php:593
|
5049 |
msgid "Select Payment Method"
|
5050 |
msgstr ""
|
5051 |
|
5052 |
+
#: includes/checkout/template.php:729
|
5053 |
msgid "Have a discount code?"
|
5054 |
msgstr ""
|
5055 |
|
5056 |
+
#: includes/checkout/template.php:733
|
5057 |
msgid "Discount"
|
5058 |
msgstr ""
|
5059 |
|
5060 |
+
#: includes/checkout/template.php:735
|
5061 |
msgid "Enter a coupon code if you have one."
|
5062 |
msgstr ""
|
5063 |
|
5064 |
+
#: includes/checkout/template.php:736 includes/process-purchase.php:322
|
5065 |
+
#: includes/scripts.php:60
|
5066 |
msgid "Enter discount"
|
5067 |
msgstr ""
|
5068 |
|
5069 |
+
#: includes/checkout/template.php:758
|
5070 |
msgid "Agree to Terms?"
|
5071 |
msgstr ""
|
5072 |
|
5073 |
+
#: includes/checkout/template.php:769
|
5074 |
msgid "Show Terms"
|
5075 |
msgstr ""
|
5076 |
|
5077 |
+
#: includes/checkout/template.php:770
|
5078 |
msgid "Hide Terms"
|
5079 |
msgstr ""
|
5080 |
|
5081 |
+
#: includes/checkout/template.php:791
|
5082 |
msgid "Purchase Total:"
|
5083 |
msgstr ""
|
5084 |
|
5085 |
+
#: includes/checkout/template.php:817
|
5086 |
msgid "Go back"
|
5087 |
msgstr ""
|
5088 |
|
5089 |
+
#: includes/checkout/template.php:840
|
5090 |
msgid "Next"
|
5091 |
msgstr ""
|
5092 |
|
5093 |
+
#: includes/checkout/template.php:876
|
5094 |
+
msgid "Free Download"
|
5095 |
+
msgstr ""
|
5096 |
+
|
5097 |
#: includes/class-edd-cache-helper.php:117
|
5098 |
msgid ""
|
5099 |
"In order for <strong>database caching</strong> to work with Easy Digital "
|
5194 |
msgid "ID: %d"
|
5195 |
msgstr ""
|
5196 |
|
5197 |
+
#: includes/class-edd-cli.php:194 includes/class-edd-cli.php:456
|
5198 |
msgid "Status: %s"
|
5199 |
msgstr ""
|
5200 |
|
5246 |
msgid "%d customers created in %d seconds"
|
5247 |
msgstr ""
|
5248 |
|
5249 |
+
#: includes/class-edd-cli.php:328 includes/class-edd-html-elements.php:215
|
5250 |
msgid "No customers found"
|
5251 |
msgstr ""
|
5252 |
|
5254 |
msgid "Customer User ID: %s"
|
5255 |
msgstr ""
|
5256 |
|
5257 |
+
#: includes/class-edd-cli.php:335 includes/user-functions.php:538
|
5258 |
+
#: includes/user-functions.php:547
|
5259 |
msgid "Username: %s"
|
5260 |
msgstr ""
|
5261 |
|
5271 |
msgid "Last Name: %s"
|
5272 |
msgstr ""
|
5273 |
|
5274 |
+
#: includes/class-edd-cli.php:346 includes/class-edd-cli.php:383
|
5275 |
msgid "Email: %s"
|
5276 |
msgstr ""
|
5277 |
|
5287 |
msgid "Total Downloads: %s"
|
5288 |
msgstr ""
|
5289 |
|
5290 |
+
#: includes/class-edd-cli.php:376
|
5291 |
msgid "No sales found"
|
5292 |
msgstr ""
|
5293 |
|
5294 |
+
#: includes/class-edd-cli.php:382
|
5295 |
msgid "Purchase Key: %s"
|
5296 |
msgstr ""
|
5297 |
|
5298 |
+
#: includes/class-edd-cli.php:384
|
5299 |
msgid "Date: %s"
|
5300 |
msgstr ""
|
5301 |
|
5302 |
+
#: includes/class-edd-cli.php:385
|
5303 |
msgid "Subtotal: %s"
|
5304 |
msgstr ""
|
5305 |
|
5306 |
+
#: includes/class-edd-cli.php:386
|
5307 |
msgid "Tax: %s"
|
5308 |
msgstr ""
|
5309 |
|
5310 |
+
#: includes/class-edd-cli.php:389
|
5311 |
msgid "Fees:"
|
5312 |
msgstr ""
|
5313 |
|
5314 |
+
#: includes/class-edd-cli.php:392
|
5315 |
msgid " Fee: %s - %s"
|
5316 |
msgstr ""
|
5317 |
|
5318 |
+
#: includes/class-edd-cli.php:396
|
5319 |
msgid "Total: %s"
|
5320 |
msgstr ""
|
5321 |
|
5322 |
+
#: includes/class-edd-cli.php:398
|
5323 |
msgid "Gateway: %s"
|
5324 |
msgstr ""
|
5325 |
|
5326 |
+
#: includes/class-edd-cli.php:401
|
5327 |
msgid "Products:"
|
5328 |
msgstr ""
|
5329 |
|
5330 |
+
#: includes/class-edd-cli.php:405
|
5331 |
msgid " Product: %s - %s"
|
5332 |
msgstr ""
|
5333 |
|
5334 |
+
#: includes/class-edd-cli.php:436 includes/class-edd-html-elements.php:350
|
5335 |
#: includes/shortcodes.php:270
|
5336 |
msgid "No discounts found"
|
5337 |
msgstr ""
|
5338 |
|
5339 |
+
#: includes/class-edd-cli.php:442
|
5340 |
msgid "Name: %s"
|
5341 |
msgstr ""
|
5342 |
|
5343 |
+
#: includes/class-edd-cli.php:443
|
5344 |
msgid "Code: %s"
|
5345 |
msgstr ""
|
5346 |
|
5347 |
+
#: includes/class-edd-cli.php:451
|
5348 |
msgid "Amount: %s"
|
5349 |
msgstr ""
|
5350 |
|
5351 |
+
#: includes/class-edd-cli.php:452
|
5352 |
msgid "Uses: %s"
|
5353 |
msgstr ""
|
5354 |
|
5355 |
+
#: includes/class-edd-cli.php:453
|
5356 |
msgid "Max Uses: %s"
|
5357 |
msgstr ""
|
5358 |
|
5359 |
+
#: includes/class-edd-cli.php:453
|
5360 |
msgid "Unlimited"
|
5361 |
msgstr ""
|
5362 |
|
5363 |
+
#: includes/class-edd-cli.php:454
|
5364 |
msgid "Start Date: %s"
|
5365 |
msgstr ""
|
5366 |
|
5367 |
+
#: includes/class-edd-cli.php:454
|
5368 |
msgid "No Start Date"
|
5369 |
msgstr ""
|
5370 |
|
5371 |
+
#: includes/class-edd-cli.php:455
|
5372 |
msgid "Expiration Date: %s"
|
5373 |
msgstr ""
|
5374 |
|
5375 |
+
#: includes/class-edd-cli.php:455
|
5376 |
msgid "No Expiration"
|
5377 |
msgstr ""
|
5378 |
|
5379 |
+
#: includes/class-edd-cli.php:461
|
5380 |
msgid "Product Requirements:"
|
5381 |
msgstr ""
|
5382 |
|
5383 |
+
#: includes/class-edd-cli.php:464
|
5384 |
msgid " Product: %s"
|
5385 |
msgstr ""
|
5386 |
|
5387 |
+
#: includes/class-edd-cli.php:470
|
5388 |
msgid "Global Discount: %s"
|
5389 |
msgstr ""
|
5390 |
|
5391 |
+
#: includes/class-edd-cli.php:471
|
5392 |
msgid "Single Use: %s"
|
5393 |
msgstr ""
|
5394 |
|
5395 |
+
#: includes/class-edd-cli.php:499
|
5396 |
msgid "No action specified, did you mean"
|
5397 |
msgstr ""
|
5398 |
|
5399 |
+
#: includes/class-edd-cli.php:501
|
5400 |
msgid "Invalid action specified, did you mean"
|
5401 |
msgstr ""
|
5402 |
|
5403 |
+
#: includes/class-edd-cli.php:558
|
5404 |
msgid "Invalid status '%s', defaulting to 'complete'"
|
5405 |
msgstr ""
|
5406 |
|
5407 |
+
#: includes/class-edd-cli.php:594
|
5408 |
msgid "Specified ID is not a product"
|
5409 |
msgstr ""
|
5410 |
|
5411 |
+
#: includes/class-edd-cli.php:703
|
5412 |
msgid "Created %s payments"
|
5413 |
msgstr ""
|
5414 |
|
5416 |
msgid "Once Weekly"
|
5417 |
msgstr ""
|
5418 |
|
5419 |
+
#: includes/class-edd-customer.php:185 includes/class-edd-discount.php:254
|
5420 |
#: includes/class-edd-download.php:196
|
5421 |
msgid "Can't get property %s"
|
5422 |
msgstr ""
|
5423 |
|
5424 |
+
#: includes/class-edd-discount.php:1502
|
5425 |
msgid "This discount has reached its maximum usage."
|
5426 |
msgstr ""
|
5427 |
|
5428 |
+
#: includes/class-edd-discount.php:1536
|
5429 |
msgid "Minimum order of %s not met."
|
5430 |
msgstr ""
|
5431 |
|
5432 |
+
#: includes/class-edd-discount.php:1626 includes/class-edd-discount.php:1655
|
5433 |
msgid "The product requirements for this discount are not met."
|
5434 |
msgstr ""
|
5435 |
|
5436 |
+
#: includes/class-edd-discount.php:1671
|
5437 |
msgid "This discount is not valid for the cart contents."
|
5438 |
msgstr ""
|
5439 |
|
5440 |
+
#: includes/class-edd-discount.php:1763
|
5441 |
msgid "This discount has already been redeemed."
|
5442 |
msgstr ""
|
5443 |
|
5444 |
+
#: includes/class-edd-discount.php:1844
|
5445 |
msgid "This discount is expired."
|
5446 |
msgstr ""
|
5447 |
|
5448 |
+
#: includes/class-edd-discount.php:1849
|
5449 |
msgid "This discount is not active."
|
5450 |
msgstr ""
|
5451 |
|
5453 |
msgid "New Download Product"
|
5454 |
msgstr ""
|
5455 |
|
5456 |
+
#: includes/class-edd-html-elements.php:44 includes/scripts.php:207
|
5457 |
msgid "Choose a %s"
|
5458 |
msgstr ""
|
5459 |
|
5460 |
+
#: includes/class-edd-html-elements.php:196
|
|
|
|
|
|
|
|
|
5461 |
msgid "Select a Customer"
|
5462 |
msgstr ""
|
5463 |
|
5464 |
+
#: includes/class-edd-html-elements.php:210
|
5465 |
msgid "No customer attached"
|
5466 |
msgstr ""
|
5467 |
|
5468 |
+
#: includes/class-edd-html-elements.php:270
|
5469 |
msgid "Select a User"
|
5470 |
msgstr ""
|
5471 |
|
5472 |
+
#: includes/class-edd-html-elements.php:358
|
|
|
|
|
|
|
|
|
5473 |
msgid "Select a discount"
|
5474 |
msgstr ""
|
5475 |
|
5476 |
+
#: includes/class-edd-html-elements.php:735
|
5477 |
msgid "Enter username"
|
5478 |
msgstr ""
|
5479 |
|
5524 |
|
5525 |
#: includes/class-edd-register-meta.php:162
|
5526 |
msgid ""
|
5527 |
+
"Defines how this products `Purchase` button should behave, either add to "
|
5528 |
+
"cart or buy now."
|
5529 |
msgstr ""
|
5530 |
|
5531 |
#: includes/class-edd-register-meta.php:177
|
5600 |
msgid "Improper date provided."
|
5601 |
msgstr ""
|
5602 |
|
5603 |
+
#: includes/country-functions.php:1569
|
5604 |
msgid "A Coruña"
|
5605 |
msgstr ""
|
5606 |
|
5607 |
+
#: includes/country-functions.php:1570
|
5608 |
msgid "Araba"
|
5609 |
msgstr ""
|
5610 |
|
5611 |
+
#: includes/country-functions.php:1571
|
5612 |
msgid "Albacete"
|
5613 |
msgstr ""
|
5614 |
|
5615 |
+
#: includes/country-functions.php:1572
|
5616 |
msgid "Alicante"
|
5617 |
msgstr ""
|
5618 |
|
5619 |
+
#: includes/country-functions.php:1573
|
5620 |
msgid "Almería"
|
5621 |
msgstr ""
|
5622 |
|
5623 |
+
#: includes/country-functions.php:1574
|
5624 |
msgid "Asturias"
|
5625 |
msgstr ""
|
5626 |
|
5627 |
+
#: includes/country-functions.php:1575
|
5628 |
msgid "Ávila"
|
5629 |
msgstr ""
|
5630 |
|
5631 |
+
#: includes/country-functions.php:1576
|
5632 |
msgid "Badajoz"
|
5633 |
msgstr ""
|
5634 |
|
5635 |
+
#: includes/country-functions.php:1577
|
5636 |
msgid "Baleares"
|
5637 |
msgstr ""
|
5638 |
|
5639 |
+
#: includes/country-functions.php:1578
|
5640 |
msgid "Barcelona"
|
5641 |
msgstr ""
|
5642 |
|
5643 |
+
#: includes/country-functions.php:1579
|
5644 |
msgid "Burgos"
|
5645 |
msgstr ""
|
5646 |
|
5647 |
+
#: includes/country-functions.php:1580
|
5648 |
msgid "Cáceres"
|
5649 |
msgstr ""
|
5650 |
|
5651 |
+
#: includes/country-functions.php:1581
|
5652 |
msgid "Cádiz"
|
5653 |
msgstr ""
|
5654 |
|
5655 |
+
#: includes/country-functions.php:1582
|
5656 |
msgid "Cantabria"
|
5657 |
msgstr ""
|
5658 |
|
5659 |
+
#: includes/country-functions.php:1583
|
5660 |
msgid "Castellón"
|
5661 |
msgstr ""
|
5662 |
|
5663 |
+
#: includes/country-functions.php:1584
|
5664 |
msgid "Ceuta"
|
5665 |
msgstr ""
|
5666 |
|
5667 |
+
#: includes/country-functions.php:1585
|
5668 |
msgid "Ciudad Real"
|
5669 |
msgstr ""
|
5670 |
|
5671 |
+
#: includes/country-functions.php:1586
|
5672 |
msgid "Córdoba"
|
5673 |
msgstr ""
|
5674 |
|
5675 |
+
#: includes/country-functions.php:1587
|
5676 |
msgid "Cuenca"
|
5677 |
msgstr ""
|
5678 |
|
5679 |
+
#: includes/country-functions.php:1588
|
5680 |
msgid "Girona"
|
5681 |
msgstr ""
|
5682 |
|
5683 |
+
#: includes/country-functions.php:1589
|
5684 |
msgid "Granada"
|
5685 |
msgstr ""
|
5686 |
|
5687 |
+
#: includes/country-functions.php:1590
|
5688 |
msgid "Guadalajara"
|
5689 |
msgstr ""
|
5690 |
|
5691 |
+
#: includes/country-functions.php:1591
|
5692 |
msgid "Gipuzkoa"
|
5693 |
msgstr ""
|
5694 |
|
5695 |
+
#: includes/country-functions.php:1592
|
5696 |
msgid "Huelva"
|
5697 |
msgstr ""
|
5698 |
|
5699 |
+
#: includes/country-functions.php:1593
|
5700 |
msgid "Huesca"
|
5701 |
msgstr ""
|
5702 |
|
5703 |
+
#: includes/country-functions.php:1594
|
5704 |
msgid "Jaén"
|
5705 |
msgstr ""
|
5706 |
|
5707 |
+
#: includes/country-functions.php:1595
|
5708 |
msgid "La Rioja"
|
5709 |
msgstr ""
|
5710 |
|
5711 |
+
#: includes/country-functions.php:1596
|
5712 |
msgid "Las Palmas"
|
5713 |
msgstr ""
|
5714 |
|
5715 |
+
#: includes/country-functions.php:1597
|
5716 |
msgid "León"
|
5717 |
msgstr ""
|
5718 |
|
5719 |
+
#: includes/country-functions.php:1598
|
5720 |
msgid "Lleida"
|
5721 |
msgstr ""
|
5722 |
|
5723 |
+
#: includes/country-functions.php:1599
|
5724 |
msgid "Lugo"
|
5725 |
msgstr ""
|
5726 |
|
5727 |
+
#: includes/country-functions.php:1600
|
5728 |
msgid "Madrid"
|
5729 |
msgstr ""
|
5730 |
|
5731 |
+
#: includes/country-functions.php:1601
|
5732 |
msgid "Málaga"
|
5733 |
msgstr ""
|
5734 |
|
5735 |
+
#: includes/country-functions.php:1602
|
5736 |
msgid "Melilla"
|
5737 |
msgstr ""
|
5738 |
|
5739 |
+
#: includes/country-functions.php:1603
|
5740 |
msgid "Murcia"
|
5741 |
msgstr ""
|
5742 |
|
5743 |
+
#: includes/country-functions.php:1604
|
5744 |
msgid "Navarra"
|
5745 |
msgstr ""
|
5746 |
|
5747 |
+
#: includes/country-functions.php:1605
|
5748 |
msgid "Ourense"
|
5749 |
msgstr ""
|
5750 |
|
5751 |
+
#: includes/country-functions.php:1606
|
5752 |
msgid "Palencia"
|
5753 |
msgstr ""
|
5754 |
|
5755 |
+
#: includes/country-functions.php:1607
|
5756 |
msgid "Pontevedra"
|
5757 |
msgstr ""
|
5758 |
|
5759 |
+
#: includes/country-functions.php:1608
|
5760 |
msgid "Salamanca"
|
5761 |
msgstr ""
|
5762 |
|
5763 |
+
#: includes/country-functions.php:1609
|
5764 |
msgid "Santa Cruz de Tenerife"
|
5765 |
msgstr ""
|
5766 |
|
5767 |
+
#: includes/country-functions.php:1610
|
5768 |
msgid "Segovia"
|
5769 |
msgstr ""
|
5770 |
|
5771 |
+
#: includes/country-functions.php:1611
|
5772 |
msgid "Sevilla"
|
5773 |
msgstr ""
|
5774 |
|
5775 |
+
#: includes/country-functions.php:1612
|
5776 |
msgid "Soria"
|
5777 |
msgstr ""
|
5778 |
|
5779 |
+
#: includes/country-functions.php:1613
|
5780 |
msgid "Tarragona"
|
5781 |
msgstr ""
|
5782 |
|
5783 |
+
#: includes/country-functions.php:1614
|
5784 |
msgid "Teruel"
|
5785 |
msgstr ""
|
5786 |
|
5787 |
+
#: includes/country-functions.php:1615
|
5788 |
msgid "Toledo"
|
5789 |
msgstr ""
|
5790 |
|
5791 |
+
#: includes/country-functions.php:1616
|
5792 |
msgid "Valencia"
|
5793 |
msgstr ""
|
5794 |
|
5795 |
+
#: includes/country-functions.php:1617
|
5796 |
msgid "Valladolid"
|
5797 |
msgstr ""
|
5798 |
|
5799 |
+
#: includes/country-functions.php:1618
|
5800 |
msgid "Bizkaia"
|
5801 |
msgstr ""
|
5802 |
|
5803 |
+
#: includes/country-functions.php:1619
|
5804 |
msgid "Zamora"
|
5805 |
msgstr ""
|
5806 |
|
5807 |
+
#: includes/country-functions.php:1620
|
5808 |
msgid "Zaragoza"
|
5809 |
msgstr ""
|
5810 |
|
5906 |
"of a purchase. HTML is accepted. Available template tags:"
|
5907 |
msgstr ""
|
5908 |
|
5909 |
+
#: includes/deprecated-functions.php:517 includes/process-download.php:817
|
5910 |
msgid "Sorry but you have hit your download limit for this file."
|
5911 |
msgstr ""
|
5912 |
|
5931 |
msgstr ""
|
5932 |
|
5933 |
#: includes/emails/class-edd-email-tags.php:407
|
5934 |
+
#: includes/emails/class-edd-email-tags.php:528
|
5935 |
#: templates/shortcode-receipt.php:128
|
5936 |
msgid "Quantity"
|
5937 |
msgstr ""
|
5938 |
|
5939 |
+
#: includes/emails/class-edd-email-tags.php:465
|
5940 |
+
#: templates/history-downloads.php:74 templates/shortcode-receipt.php:205
|
5941 |
msgid "No downloadable files found."
|
5942 |
msgstr ""
|
5943 |
|
5944 |
+
#: includes/emails/class-edd-email-tags.php:856
|
5945 |
msgid "%1$sView it in your browser %2$s"
|
5946 |
msgstr ""
|
5947 |
|
5948 |
+
#: includes/emails/class-edd-emails.php:170
|
5949 |
msgid "Default Template"
|
5950 |
msgstr ""
|
5951 |
|
5952 |
+
#: includes/emails/class-edd-emails.php:171
|
5953 |
msgid "No template, plain text only"
|
5954 |
msgstr ""
|
5955 |
|
5956 |
+
#: includes/emails/class-edd-emails.php:287
|
5957 |
msgid "You cannot send email with EDD_Emails until init/admin_init has been reached"
|
5958 |
msgstr ""
|
5959 |
|
5960 |
+
#: includes/emails/class-edd-emails.php:314
|
5961 |
msgid ""
|
5962 |
"Email from Easy Digital Downloads failed to send.\n"
|
5963 |
"Send time: %s\n"
|
5966 |
"\n"
|
5967 |
msgstr ""
|
5968 |
|
5969 |
+
#: includes/emails/functions.php:131
|
5970 |
msgid "New download purchase - Order #%1$s"
|
5971 |
msgstr ""
|
5972 |
|
5973 |
+
#: includes/emails/functions.php:149
|
5974 |
msgid "New Sale!"
|
5975 |
msgstr ""
|
5976 |
|
5977 |
+
#: includes/emails/functions.php:194 includes/emails/template.php:214
|
5978 |
msgid "Hello"
|
5979 |
msgstr ""
|
5980 |
|
5981 |
+
#: includes/emails/functions.php:194 includes/emails/template.php:214
|
5982 |
msgid "A %s purchase has been made"
|
5983 |
msgstr ""
|
5984 |
|
5985 |
+
#: includes/emails/functions.php:195 includes/emails/template.php:215
|
5986 |
msgid "%s sold:"
|
5987 |
msgstr ""
|
5988 |
|
5989 |
+
#: includes/emails/functions.php:197 includes/emails/template.php:217
|
5990 |
msgid "Purchased by: "
|
5991 |
msgstr ""
|
5992 |
|
5993 |
+
#: includes/emails/functions.php:198 includes/emails/template.php:218
|
5994 |
msgid "Amount: "
|
5995 |
msgstr ""
|
5996 |
|
5997 |
+
#: includes/emails/functions.php:199 includes/emails/template.php:219
|
5998 |
msgid "Payment Method: "
|
5999 |
msgstr ""
|
6000 |
|
6001 |
+
#: includes/emails/functions.php:200 includes/emails/template.php:220
|
6002 |
msgid "Thank you"
|
6003 |
msgstr ""
|
6004 |
|
6026 |
msgid "Send Test Email"
|
6027 |
msgstr ""
|
6028 |
|
6029 |
+
#: includes/emails/template.php:245
|
6030 |
msgid "Missing purchase key."
|
6031 |
msgstr ""
|
6032 |
|
6033 |
+
#: includes/emails/template.php:260
|
6034 |
msgid "Receipt"
|
6035 |
msgstr ""
|
6036 |
|
6038 |
msgid "You must enable a payment gateway to use Easy Digital Downloads"
|
6039 |
msgstr ""
|
6040 |
|
6041 |
+
#: includes/gateways/amazon-payments.php:211
|
6042 |
msgid "There is an error with the Amazon Payments configuration."
|
6043 |
msgstr ""
|
6044 |
|
6045 |
+
#: includes/gateways/amazon-payments.php:283
|
6046 |
+
#: includes/gateways/amazon-payments.php:284
|
6047 |
msgid "Amazon"
|
6048 |
msgstr ""
|
6049 |
|
6050 |
+
#: includes/gateways/amazon-payments.php:336
|
6051 |
msgid "Amazon Payments"
|
6052 |
msgstr ""
|
6053 |
|
6054 |
+
#: includes/gateways/amazon-payments.php:354
|
6055 |
msgid "Amazon Payments Settings"
|
6056 |
msgstr ""
|
6057 |
|
6058 |
+
#: includes/gateways/amazon-payments.php:359
|
6059 |
msgid "Register with Amazon"
|
6060 |
msgstr ""
|
6061 |
|
6062 |
+
#: includes/gateways/amazon-payments.php:361
|
6063 |
msgid "Connect Easy Digital Downloads to Amazon"
|
6064 |
msgstr ""
|
6065 |
|
6066 |
+
#: includes/gateways/amazon-payments.php:364
|
6067 |
msgid "Once registration is complete, enter your API credentials below."
|
6068 |
msgstr ""
|
6069 |
|
6070 |
+
#: includes/gateways/amazon-payments.php:370
|
6071 |
msgid "Seller ID"
|
6072 |
msgstr ""
|
6073 |
|
6074 |
+
#: includes/gateways/amazon-payments.php:371
|
6075 |
msgid "Found in the Integration settings. Also called a Merchant ID"
|
6076 |
msgstr ""
|
6077 |
|
6078 |
+
#: includes/gateways/amazon-payments.php:377
|
6079 |
msgid "MWS Access Key"
|
6080 |
msgstr ""
|
6081 |
|
6082 |
+
#: includes/gateways/amazon-payments.php:378
|
6083 |
+
#: includes/gateways/amazon-payments.php:385
|
6084 |
msgid "Found on Seller Central in the MWS Keys section"
|
6085 |
msgstr ""
|
6086 |
|
6087 |
+
#: includes/gateways/amazon-payments.php:384
|
6088 |
msgid "MWS Secret Key"
|
6089 |
msgstr ""
|
6090 |
|
6091 |
+
#: includes/gateways/amazon-payments.php:391
|
6092 |
msgid "Client ID"
|
6093 |
msgstr ""
|
6094 |
|
6095 |
+
#: includes/gateways/amazon-payments.php:392
|
6096 |
msgid "The Amazon Client ID. Should look like `amzn1.application-oa2...`"
|
6097 |
msgstr ""
|
6098 |
|
6099 |
+
#: includes/gateways/amazon-payments.php:398
|
6100 |
msgid "Amazon MWS Callback URL"
|
6101 |
msgstr ""
|
6102 |
|
6103 |
+
#: includes/gateways/amazon-payments.php:399
|
6104 |
msgid ""
|
6105 |
"The Return URL to provide in your MWS Application. Enter this under your "
|
6106 |
"Login and Pay → Web Settings"
|
6107 |
msgstr ""
|
6108 |
|
6109 |
+
#: includes/gateways/amazon-payments.php:407
|
6110 |
msgid "Amazon Merchant IPN URL"
|
6111 |
msgstr ""
|
6112 |
|
6113 |
+
#: includes/gateways/amazon-payments.php:408
|
6114 |
msgid ""
|
6115 |
"The IPN URL to provide in your MWS account. Enter this under your <a "
|
6116 |
"href=\"%s\">Integration Settings</a>"
|
6117 |
msgstr ""
|
6118 |
|
6119 |
+
#: includes/gateways/amazon-payments.php:718
|
6120 |
msgid "Currently logged into Amazon as"
|
6121 |
msgstr ""
|
6122 |
|
6123 |
+
#: includes/gateways/amazon-payments.php:719
|
6124 |
msgid "Logout"
|
6125 |
msgstr ""
|
6126 |
|
6127 |
+
#: includes/gateways/amazon-payments.php:876
|
6128 |
+
#: includes/gateways/amazon-payments.php:891
|
6129 |
msgid "Missing Reference ID, please try again"
|
6130 |
msgstr ""
|
6131 |
|
6132 |
+
#: includes/gateways/amazon-payments.php:927
|
6133 |
msgid ""
|
6134 |
"Your payment could not be authorized, please try a different payment "
|
6135 |
"method. Reason: %s"
|
6136 |
msgstr ""
|
6137 |
|
6138 |
+
#: includes/gateways/amazon-payments.php:974
|
6139 |
msgid "There was an issue processing your payment. Amazon error: %s"
|
6140 |
msgstr ""
|
6141 |
|
6142 |
+
#: includes/gateways/amazon-payments.php:1110
|
6143 |
msgid "Invalid Amazon seller ID"
|
6144 |
msgstr ""
|
6145 |
|
6146 |
+
#: includes/gateways/amazon-payments.php:1110
|
6147 |
+
#: includes/gateways/amazon-payments.php:1164
|
6148 |
+
#: includes/gateways/paypal-standard.php:404
|
6149 |
+
#: includes/gateways/paypal-standard.php:410
|
6150 |
+
#: includes/gateways/paypal-standard.php:484
|
6151 |
+
#: includes/gateways/paypal-standard.php:493
|
6152 |
+
#: includes/gateways/paypal-standard.php:552
|
6153 |
+
#: includes/gateways/paypal-standard.php:559
|
6154 |
msgid "IPN Error"
|
6155 |
msgstr ""
|
6156 |
|
6157 |
+
#: includes/gateways/amazon-payments.php:1134
|
6158 |
msgid "Capture declined in Amazon"
|
6159 |
msgstr ""
|
6160 |
|
6161 |
+
#: includes/gateways/amazon-payments.php:1152
|
6162 |
+
#: includes/gateways/amazon-payments.php:1240
|
6163 |
msgid "Refund completed in Amazon. Refund ID: %s"
|
6164 |
msgstr ""
|
6165 |
|
6166 |
+
#: includes/gateways/amazon-payments.php:1233
|
6167 |
msgid "Refund declined in Amazon. Refund ID: %s"
|
6168 |
msgstr ""
|
6169 |
|
6170 |
+
#: includes/gateways/amazon-payments.php:1246
|
6171 |
msgid "Refund initiated in Amazon. Reference ID: %s"
|
6172 |
msgstr ""
|
6173 |
|
6174 |
+
#: includes/gateways/amazon-payments.php:1255
|
6175 |
msgid "Refund request failed in Amazon."
|
6176 |
msgstr ""
|
6177 |
|
6191 |
msgid "The requested price ID does not exist."
|
6192 |
msgstr ""
|
6193 |
|
6194 |
+
#: includes/gateways/manual.php:33 includes/gateways/paypal-standard.php:155
|
6195 |
msgid "Nonce verification has failed"
|
6196 |
msgstr ""
|
6197 |
|
6214 |
msgstr ""
|
6215 |
|
6216 |
#: includes/gateways/paypal-standard.php:63
|
6217 |
+
msgid "PayPal Page Style"
|
6218 |
msgstr ""
|
6219 |
|
6220 |
#: includes/gateways/paypal-standard.php:64
|
6221 |
+
msgid "Enter the name of the page style to use, or leave blank for default"
|
6222 |
msgstr ""
|
6223 |
|
6224 |
#: includes/gateways/paypal-standard.php:71
|
6225 |
msgid ""
|
6226 |
+
"If payments are not getting marked as complete, then check this box. This "
|
6227 |
+
"forces the site to use a slightly less secure method of verifying "
|
6228 |
+
"purchases. See our <a href=\"%s\" target=\"_blank\">FAQ</a> for further "
|
6229 |
"information."
|
6230 |
msgstr ""
|
6231 |
|
6232 |
#: includes/gateways/paypal-standard.php:77
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6233 |
msgid "Disable PayPal IPN Verification"
|
6234 |
msgstr ""
|
6235 |
|
6236 |
+
#: includes/gateways/paypal-standard.php:85
|
6237 |
msgid "API Credentials"
|
6238 |
msgstr ""
|
6239 |
|
6240 |
+
#: includes/gateways/paypal-standard.php:88
|
6241 |
msgid ""
|
6242 |
"API credentials are necessary to process PayPal refunds from inside "
|
6243 |
"WordPress. These can be obtained from <a href=\"%s\" target=\"_blank\">your "
|
6244 |
"PayPal account</a>."
|
6245 |
msgstr ""
|
6246 |
|
6247 |
+
#: includes/gateways/paypal-standard.php:94
|
6248 |
msgid "Live API Username"
|
6249 |
msgstr ""
|
6250 |
|
6251 |
+
#: includes/gateways/paypal-standard.php:95
|
6252 |
msgid "Your PayPal live API username. "
|
6253 |
msgstr ""
|
6254 |
|
6255 |
+
#: includes/gateways/paypal-standard.php:101
|
6256 |
msgid "Live API Password"
|
6257 |
msgstr ""
|
6258 |
|
6259 |
+
#: includes/gateways/paypal-standard.php:102
|
6260 |
msgid "Your PayPal live API password."
|
6261 |
msgstr ""
|
6262 |
|
6263 |
+
#: includes/gateways/paypal-standard.php:108
|
6264 |
msgid "Live API Signature"
|
6265 |
msgstr ""
|
6266 |
|
6267 |
+
#: includes/gateways/paypal-standard.php:109
|
6268 |
msgid "Your PayPal live API signature."
|
6269 |
msgstr ""
|
6270 |
|
6271 |
+
#: includes/gateways/paypal-standard.php:115
|
6272 |
msgid "Test API Username"
|
6273 |
msgstr ""
|
6274 |
|
6275 |
+
#: includes/gateways/paypal-standard.php:116
|
6276 |
msgid "Your PayPal test API username."
|
6277 |
msgstr ""
|
6278 |
|
6279 |
+
#: includes/gateways/paypal-standard.php:122
|
6280 |
msgid "Test API Password"
|
6281 |
msgstr ""
|
6282 |
|
6283 |
+
#: includes/gateways/paypal-standard.php:123
|
6284 |
msgid "Your PayPal test API password."
|
6285 |
msgstr ""
|
6286 |
|
6287 |
+
#: includes/gateways/paypal-standard.php:129
|
6288 |
msgid "Test API Signature"
|
6289 |
msgstr ""
|
6290 |
|
6291 |
+
#: includes/gateways/paypal-standard.php:130
|
6292 |
msgid "Your PayPal test API signature."
|
6293 |
msgstr ""
|
6294 |
|
6295 |
+
#: includes/gateways/paypal-standard.php:178
|
6296 |
msgid "Payment creation failed before sending buyer to PayPal. Payment data: %s"
|
6297 |
msgstr ""
|
6298 |
|
6299 |
+
#: includes/gateways/paypal-standard.php:404
|
6300 |
+
#: includes/gateways/paypal-standard.php:410
|
6301 |
msgid "Invalid IPN verification response. IPN data: %s"
|
6302 |
msgstr ""
|
6303 |
|
6304 |
+
#: includes/gateways/paypal-standard.php:484
|
6305 |
msgid "Invalid business email in IPN response. IPN data: %s"
|
6306 |
msgstr ""
|
6307 |
|
6308 |
+
#: includes/gateways/paypal-standard.php:486
|
6309 |
msgid "Payment failed due to invalid PayPal business email."
|
6310 |
msgstr ""
|
6311 |
|
6312 |
+
#: includes/gateways/paypal-standard.php:493
|
6313 |
msgid "Invalid currency in IPN response. IPN data: %s"
|
6314 |
msgstr ""
|
6315 |
|
6316 |
+
#: includes/gateways/paypal-standard.php:495
|
6317 |
msgid "Payment failed due to invalid currency in PayPal IPN."
|
6318 |
msgstr ""
|
6319 |
|
6320 |
+
#: includes/gateways/paypal-standard.php:552
|
6321 |
msgid "Invalid payment amount in IPN response. IPN data: %s"
|
6322 |
msgstr ""
|
6323 |
|
6324 |
+
#: includes/gateways/paypal-standard.php:554
|
6325 |
msgid "Payment failed due to invalid amount in PayPal IPN."
|
6326 |
msgstr ""
|
6327 |
|
6328 |
+
#: includes/gateways/paypal-standard.php:559
|
6329 |
msgid "Invalid purchase key in IPN response. IPN data: %s"
|
6330 |
msgstr ""
|
6331 |
|
6332 |
+
#: includes/gateways/paypal-standard.php:561
|
6333 |
msgid "Payment failed due to invalid purchase key in PayPal IPN."
|
6334 |
msgstr ""
|
6335 |
|
6336 |
+
#: includes/gateways/paypal-standard.php:567
|
6337 |
#: tests/helpers/class-helper-payment.php:131
|
6338 |
#: tests/helpers/class-helper-payment.php:234
|
6339 |
#: tests/helpers/class-helper-payment.php:342
|
6344 |
msgid "PayPal Transaction ID: %s"
|
6345 |
msgstr ""
|
6346 |
|
6347 |
+
#: includes/gateways/paypal-standard.php:581
|
6348 |
msgid "Payment made via eCheck and will clear automatically in 5-8 days"
|
6349 |
msgstr ""
|
6350 |
|
6351 |
+
#: includes/gateways/paypal-standard.php:588
|
6352 |
msgid ""
|
6353 |
"Payment requires a confirmed customer address and must be accepted manually "
|
6354 |
"through PayPal"
|
6355 |
msgstr ""
|
6356 |
|
6357 |
+
#: includes/gateways/paypal-standard.php:594
|
6358 |
msgid ""
|
6359 |
"Payment must be accepted manually through PayPal due to international "
|
6360 |
"account regulations"
|
6361 |
msgstr ""
|
6362 |
|
6363 |
+
#: includes/gateways/paypal-standard.php:600
|
6364 |
msgid ""
|
6365 |
"Payment received in non-shop currency and must be accepted manually through "
|
6366 |
"PayPal"
|
6367 |
msgstr ""
|
6368 |
|
6369 |
+
#: includes/gateways/paypal-standard.php:607
|
6370 |
msgid ""
|
6371 |
"Payment is being reviewed by PayPal staff as high-risk or in possible "
|
6372 |
"violation of government regulations"
|
6373 |
msgstr ""
|
6374 |
|
6375 |
+
#: includes/gateways/paypal-standard.php:613
|
6376 |
msgid "Payment was sent to non-confirmed or non-registered email address."
|
6377 |
msgstr ""
|
6378 |
|
6379 |
+
#: includes/gateways/paypal-standard.php:619
|
6380 |
msgid "PayPal account must be upgraded before this payment can be accepted"
|
6381 |
msgstr ""
|
6382 |
|
6383 |
+
#: includes/gateways/paypal-standard.php:625
|
6384 |
msgid ""
|
6385 |
"PayPal account is not verified. Verify account in order to accept this "
|
6386 |
"payment"
|
6387 |
msgstr ""
|
6388 |
|
6389 |
+
#: includes/gateways/paypal-standard.php:631
|
6390 |
msgid ""
|
6391 |
"Payment is pending for unknown reasons. Contact PayPal support for "
|
6392 |
"assistance"
|
6393 |
msgstr ""
|
6394 |
|
6395 |
+
#: includes/gateways/paypal-standard.php:672
|
6396 |
msgid "Partial PayPal refund processed: %s"
|
6397 |
msgstr ""
|
6398 |
|
6399 |
+
#: includes/gateways/paypal-standard.php:677
|
6400 |
msgid "PayPal Payment #%s Refunded for reason: %s"
|
6401 |
msgstr ""
|
6402 |
|
6403 |
+
#: includes/gateways/paypal-standard.php:678
|
6404 |
msgid "PayPal Refund Transaction ID: %s"
|
6405 |
msgstr ""
|
6406 |
|
6407 |
+
#: includes/gateways/paypal-standard.php:853
|
6408 |
msgid "Refund Payment in PayPal"
|
6409 |
msgstr ""
|
6410 |
|
6411 |
+
#: includes/gateways/paypal-standard.php:1002
|
6412 |
msgid "PayPal refund failed for unknown reason."
|
6413 |
msgstr ""
|
6414 |
|
6415 |
+
#: includes/gateways/paypal-standard.php:1012
|
6416 |
msgid "PayPal refund transaction ID: %s"
|
6417 |
msgstr ""
|
6418 |
|
6419 |
+
#: includes/gateways/paypal-standard.php:1016
|
6420 |
msgid "PayPal refund failed: %s"
|
6421 |
msgstr ""
|
6422 |
|
6423 |
+
#: includes/install.php:92 includes/template-functions.php:182
|
6424 |
+
#: templates/widget-cart-checkout.php:6 templates/widget-cart-empty.php:7
|
6425 |
+
msgid "Checkout"
|
6426 |
+
msgstr ""
|
6427 |
+
|
6428 |
#: includes/install.php:111
|
6429 |
msgid "Purchase Confirmation"
|
6430 |
msgstr ""
|
6437 |
msgid "Purchase History"
|
6438 |
msgstr ""
|
6439 |
|
6440 |
+
#: includes/login-register.php:92
|
6441 |
msgid "The password you entered is incorrect"
|
6442 |
msgstr ""
|
6443 |
|
6444 |
+
#: includes/login-register.php:95 includes/process-purchase.php:646
|
6445 |
msgid "The username you entered does not exist"
|
6446 |
msgstr ""
|
6447 |
|
6448 |
+
#: includes/login-register.php:149 includes/login-register.php:157
|
6449 |
+
#: includes/process-purchase.php:524
|
6450 |
msgid "Invalid username"
|
6451 |
msgstr ""
|
6452 |
|
6453 |
+
#: includes/login-register.php:153 includes/process-purchase.php:517
|
6454 |
msgid "Username already taken"
|
6455 |
msgstr ""
|
6456 |
|
6457 |
+
#: includes/login-register.php:161
|
6458 |
msgid "Email address already taken"
|
6459 |
msgstr ""
|
6460 |
|
6461 |
+
#: includes/login-register.php:165 includes/process-purchase.php:464
|
6462 |
+
#: includes/process-purchase.php:539 includes/process-purchase.php:679
|
6463 |
msgid "Invalid email"
|
6464 |
msgstr ""
|
6465 |
|
6466 |
+
#: includes/login-register.php:169
|
6467 |
msgid "Invalid payment email"
|
6468 |
msgstr ""
|
6469 |
|
6470 |
+
#: includes/login-register.php:173
|
6471 |
msgid "Please enter a password"
|
6472 |
msgstr ""
|
6473 |
|
6474 |
+
#: includes/login-register.php:177
|
6475 |
msgid "Passwords do not match"
|
6476 |
msgstr ""
|
6477 |
|
6478 |
+
#: includes/misc-functions.php:304 tests/tests-misc.php:62
|
6479 |
msgid "US Dollars ($)"
|
6480 |
msgstr ""
|
6481 |
|
6482 |
+
#: includes/misc-functions.php:305 tests/tests-misc.php:63
|
6483 |
msgid "Euros (€)"
|
6484 |
msgstr ""
|
6485 |
|
6486 |
+
#: includes/misc-functions.php:306 tests/tests-misc.php:64
|
6487 |
msgid "Pound Sterling (£)"
|
6488 |
msgstr ""
|
6489 |
|
6490 |
+
#: includes/misc-functions.php:307 tests/tests-misc.php:65
|
6491 |
msgid "Australian Dollars ($)"
|
6492 |
msgstr ""
|
6493 |
|
6494 |
+
#: includes/misc-functions.php:308 tests/tests-misc.php:66
|
6495 |
msgid "Brazilian Real (R$)"
|
6496 |
msgstr ""
|
6497 |
|
6498 |
+
#: includes/misc-functions.php:309 tests/tests-misc.php:67
|
6499 |
msgid "Canadian Dollars ($)"
|
6500 |
msgstr ""
|
6501 |
|
6502 |
+
#: includes/misc-functions.php:310 tests/tests-misc.php:68
|
6503 |
msgid "Czech Koruna"
|
6504 |
msgstr ""
|
6505 |
|
6506 |
+
#: includes/misc-functions.php:311 tests/tests-misc.php:69
|
6507 |
msgid "Danish Krone"
|
6508 |
msgstr ""
|
6509 |
|
6510 |
+
#: includes/misc-functions.php:312 tests/tests-misc.php:70
|
6511 |
msgid "Hong Kong Dollar ($)"
|
6512 |
msgstr ""
|
6513 |
|
6514 |
+
#: includes/misc-functions.php:313 tests/tests-misc.php:71
|
6515 |
msgid "Hungarian Forint"
|
6516 |
msgstr ""
|
6517 |
|
6518 |
+
#: includes/misc-functions.php:314 tests/tests-misc.php:72
|
6519 |
msgid "Israeli Shekel (₪)"
|
6520 |
msgstr ""
|
6521 |
|
6522 |
+
#: includes/misc-functions.php:315 tests/tests-misc.php:73
|
6523 |
msgid "Japanese Yen (¥)"
|
6524 |
msgstr ""
|
6525 |
|
6526 |
+
#: includes/misc-functions.php:316 tests/tests-misc.php:74
|
6527 |
msgid "Malaysian Ringgits"
|
6528 |
msgstr ""
|
6529 |
|
6530 |
+
#: includes/misc-functions.php:317 tests/tests-misc.php:75
|
6531 |
msgid "Mexican Peso ($)"
|
6532 |
msgstr ""
|
6533 |
|
6534 |
+
#: includes/misc-functions.php:318 tests/tests-misc.php:76
|
6535 |
msgid "New Zealand Dollar ($)"
|
6536 |
msgstr ""
|
6537 |
|
6538 |
+
#: includes/misc-functions.php:319 tests/tests-misc.php:77
|
6539 |
msgid "Norwegian Krone"
|
6540 |
msgstr ""
|
6541 |
|
6542 |
+
#: includes/misc-functions.php:320 tests/tests-misc.php:78
|
6543 |
msgid "Philippine Pesos"
|
6544 |
msgstr ""
|
6545 |
|
6546 |
+
#: includes/misc-functions.php:321 tests/tests-misc.php:79
|
6547 |
msgid "Polish Zloty"
|
6548 |
msgstr ""
|
6549 |
|
6550 |
+
#: includes/misc-functions.php:322 tests/tests-misc.php:80
|
6551 |
msgid "Singapore Dollar ($)"
|
6552 |
msgstr ""
|
6553 |
|
6554 |
+
#: includes/misc-functions.php:323 tests/tests-misc.php:81
|
6555 |
msgid "Swedish Krona"
|
6556 |
msgstr ""
|
6557 |
|
6558 |
+
#: includes/misc-functions.php:324 tests/tests-misc.php:82
|
6559 |
msgid "Swiss Franc"
|
6560 |
msgstr ""
|
6561 |
|
6562 |
+
#: includes/misc-functions.php:325 tests/tests-misc.php:83
|
6563 |
msgid "Taiwan New Dollars"
|
6564 |
msgstr ""
|
6565 |
|
6566 |
+
#: includes/misc-functions.php:326 tests/tests-misc.php:84
|
6567 |
msgid "Thai Baht (฿)"
|
6568 |
msgstr ""
|
6569 |
|
6570 |
+
#: includes/misc-functions.php:327 tests/tests-misc.php:85
|
6571 |
msgid "Indian Rupee (₹)"
|
6572 |
msgstr ""
|
6573 |
|
6574 |
+
#: includes/misc-functions.php:328 tests/tests-misc.php:86
|
6575 |
msgid "Turkish Lira (₺)"
|
6576 |
msgstr ""
|
6577 |
|
6578 |
+
#: includes/misc-functions.php:329 tests/tests-misc.php:87
|
6579 |
msgid "Iranian Rial (﷼)"
|
6580 |
msgstr ""
|
6581 |
|
6582 |
+
#: includes/misc-functions.php:330 tests/tests-misc.php:88
|
6583 |
msgid "Russian Rubles"
|
6584 |
msgstr ""
|
6585 |
|
6586 |
+
#: includes/misc-functions.php:516
|
|
|
|
|
|
|
|
|
6587 |
msgid ""
|
6588 |
"%1$s is <strong>deprecated</strong> since Easy Digital Downloads version "
|
6589 |
"%2$s! Use %3$s instead."
|
6590 |
msgstr ""
|
6591 |
|
6592 |
+
#: includes/misc-functions.php:520
|
6593 |
msgid ""
|
6594 |
"%1$s is <strong>deprecated</strong> since Easy Digital Downloads version "
|
6595 |
"%2$s with no alternative available."
|
6596 |
msgstr ""
|
6597 |
|
6598 |
+
#: includes/misc-functions.php:557
|
6599 |
msgid ""
|
6600 |
"The %1$s argument of %2$s is <strong>deprecated</strong> since Easy Digital "
|
6601 |
"Downloads version %3$s! Please use %4$s instead."
|
6602 |
msgstr ""
|
6603 |
|
6604 |
+
#: includes/misc-functions.php:561
|
6605 |
msgid ""
|
6606 |
"The %1$s argument of %2$s is <strong>deprecated</strong> since Easy Digital "
|
6607 |
"Downloads version %3$s with no alternative available."
|
6608 |
msgstr ""
|
6609 |
|
6610 |
+
#: includes/payments/actions.php:150
|
|
|
|
|
|
|
|
|
6611 |
msgid "Status changed from %s to %s"
|
6612 |
msgstr ""
|
6613 |
|
6614 |
+
#: includes/payments/actions.php:374 includes/payments/actions.php:434
|
6615 |
msgid "Error resuming payment."
|
6616 |
msgstr ""
|
6617 |
|
6618 |
+
#: includes/payments/actions.php:378
|
6619 |
msgid "Payment recovery triggered URL"
|
6620 |
msgstr ""
|
6621 |
|
6622 |
+
#: includes/payments/actions.php:455 includes/payments/actions.php:486
|
6623 |
msgid "To complete this payment, please login to your account."
|
6624 |
msgstr ""
|
6625 |
|
6626 |
+
#: includes/payments/actions.php:457
|
6627 |
msgid "Lost Password"
|
6628 |
msgstr ""
|
6629 |
|
6630 |
+
#: includes/payments/actions.php:458 templates/shortcode-login.php:33
|
6631 |
msgid "Lost Password?"
|
6632 |
msgstr ""
|
6633 |
|
6634 |
+
#: includes/payments/functions.php:173
|
6635 |
msgid "Payment recovery processed"
|
6636 |
msgstr ""
|
6637 |
|
6638 |
+
#: includes/payments/functions.php:725
|
6639 |
msgid "Complete"
|
6640 |
msgstr ""
|
6641 |
|
6642 |
+
#: includes/payments/functions.php:1546
|
6643 |
msgid "EDD Bot"
|
6644 |
msgstr ""
|
6645 |
|
6941 |
msgstr[0] ""
|
6942 |
msgstr[1] ""
|
6943 |
|
6944 |
+
#: includes/process-download.php:283
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6945 |
msgid "You do not have permission to download this file"
|
6946 |
msgstr ""
|
6947 |
|
6948 |
+
#: includes/process-download.php:284
|
6949 |
msgid "Purchase Verification Failed"
|
6950 |
msgstr ""
|
6951 |
|
6952 |
+
#: includes/process-download.php:893
|
6953 |
msgid "Invalid file"
|
6954 |
msgstr ""
|
6955 |
|
6956 |
+
#: includes/process-download.php:900
|
6957 |
msgid "The requested file could not be found. Error 404."
|
6958 |
msgstr ""
|
6959 |
|
6960 |
+
#: includes/process-download.php:901
|
6961 |
msgid "File not found"
|
6962 |
msgstr ""
|
6963 |
|
6964 |
+
#: includes/process-purchase.php:31 includes/scripts.php:81
|
6965 |
msgid "Your cart is empty"
|
6966 |
msgstr ""
|
6967 |
|
6968 |
+
#: includes/process-purchase.php:289
|
|
|
|
|
|
|
|
|
6969 |
msgid "The selected payment gateway is not enabled"
|
6970 |
msgstr ""
|
6971 |
|
6972 |
+
#: includes/process-purchase.php:349
|
6973 |
msgid "One or more of the discounts you entered is invalid"
|
6974 |
msgstr ""
|
6975 |
|
6976 |
+
#: includes/process-purchase.php:366
|
6977 |
msgid "You must agree to the terms of use"
|
6978 |
msgstr ""
|
6979 |
|
6980 |
+
#: includes/process-purchase.php:381
|
6981 |
msgid "Please enter a valid email address"
|
6982 |
msgstr ""
|
6983 |
|
6984 |
+
#: includes/process-purchase.php:385
|
6985 |
msgid "Please enter your first name"
|
6986 |
msgstr ""
|
6987 |
|
6988 |
+
#: includes/process-purchase.php:395
|
6989 |
msgid "Please enter your zip / postal code"
|
6990 |
msgstr ""
|
6991 |
|
6992 |
+
#: includes/process-purchase.php:399
|
6993 |
msgid "Please enter your billing city"
|
6994 |
msgstr ""
|
6995 |
|
6996 |
+
#: includes/process-purchase.php:403
|
6997 |
msgid "Please select your billing country"
|
6998 |
msgstr ""
|
6999 |
|
7000 |
+
#: includes/process-purchase.php:407
|
7001 |
msgid "Please enter billing state / province"
|
7002 |
msgstr ""
|
7003 |
|
7004 |
+
#: includes/process-purchase.php:469 includes/process-purchase.php:790
|
7005 |
msgid "The user information is invalid"
|
7006 |
msgstr ""
|
7007 |
|
7008 |
+
#: includes/process-purchase.php:522
|
7009 |
msgid "Invalid username. Only lowercase letters (a-z) and numbers are allowed"
|
7010 |
msgstr ""
|
7011 |
|
7012 |
+
#: includes/process-purchase.php:531
|
7013 |
msgid "You must register or login to complete your purchase"
|
7014 |
msgstr ""
|
7015 |
|
7016 |
+
#: includes/process-purchase.php:544
|
7017 |
msgid ""
|
7018 |
"Email already used. Login or use a different email to complete your "
|
7019 |
"purchase."
|
7020 |
msgstr ""
|
7021 |
|
7022 |
+
#: includes/process-purchase.php:552 includes/process-purchase.php:686
|
7023 |
msgid "Enter an email"
|
7024 |
msgstr ""
|
7025 |
|
7026 |
+
#: includes/process-purchase.php:560
|
7027 |
msgid "Passwords don't match"
|
7028 |
msgstr ""
|
7029 |
|
7030 |
+
#: includes/process-purchase.php:569 includes/process-purchase.php:642
|
7031 |
msgid "Enter a password"
|
7032 |
msgstr ""
|
7033 |
|
7034 |
+
#: includes/process-purchase.php:572
|
7035 |
msgid "Enter the password confirmation"
|
7036 |
msgstr ""
|
7037 |
|
7038 |
+
#: includes/process-purchase.php:596
|
7039 |
msgid "You must login or register to complete your purchase"
|
7040 |
msgstr ""
|
7041 |
|
7042 |
+
#: includes/process-purchase.php:623
|
7043 |
msgid "The password you entered is incorrect. %sReset Password%s"
|
7044 |
msgstr ""
|
7045 |
|
7046 |
+
#: includes/process-purchase.php:668
|
7047 |
msgid "You must be logged into an account to purchase"
|
7048 |
msgstr ""
|
7049 |
|
7050 |
+
#: includes/process-purchase.php:854
|
7051 |
msgid "The zip / postal code you entered for your billing address is invalid"
|
7052 |
msgstr ""
|
7053 |
|
7054 |
+
#: includes/process-purchase.php:1116
|
7055 |
msgid "An internal error has occurred, please try again or contact support."
|
7056 |
msgstr ""
|
7057 |
|
7058 |
+
#: includes/process-purchase.php:1149
|
7059 |
msgid "There was an error completing your purchase. Please try again."
|
7060 |
msgstr ""
|
7061 |
|
7063 |
msgid "You do not have permission to view this file."
|
7064 |
msgstr ""
|
7065 |
|
7066 |
+
#: includes/scripts.php:58
|
7067 |
msgid "Please select a payment method"
|
7068 |
msgstr ""
|
7069 |
|
7070 |
+
#: includes/scripts.php:59
|
7071 |
msgid "Please enter a discount code"
|
7072 |
msgstr ""
|
7073 |
|
7074 |
+
#: includes/scripts.php:61
|
7075 |
msgid "Discount Applied"
|
7076 |
msgstr ""
|
7077 |
|
7078 |
+
#: includes/scripts.php:62
|
7079 |
msgid "Please enter an email address before applying a discount code"
|
7080 |
msgstr ""
|
7081 |
|
7082 |
+
#: includes/scripts.php:63
|
7083 |
msgid "Please enter a username before applying a discount code"
|
7084 |
msgstr ""
|
7085 |
|
7086 |
+
#: includes/scripts.php:64
|
7087 |
msgid "Please Wait..."
|
7088 |
msgstr ""
|
7089 |
|
7090 |
+
#: includes/scripts.php:80
|
7091 |
msgid "You have already added this item to your cart"
|
7092 |
msgstr ""
|
7093 |
|
7094 |
+
#: includes/scripts.php:82 includes/template-functions.php:177
|
7095 |
msgid "Loading"
|
7096 |
msgstr ""
|
7097 |
|
7098 |
+
#: includes/scripts.php:193
|
7099 |
msgid "Add New Download"
|
7100 |
msgstr ""
|
7101 |
|
7102 |
+
#: includes/scripts.php:194
|
7103 |
msgid "Use This File"
|
7104 |
msgstr ""
|
7105 |
|
7106 |
+
#: includes/scripts.php:195
|
7107 |
msgid "Sorry, not available for variable priced products."
|
7108 |
msgstr ""
|
7109 |
|
7110 |
+
#: includes/scripts.php:196
|
7111 |
msgid "Are you sure you wish to delete this payment?"
|
7112 |
msgstr ""
|
7113 |
|
7114 |
+
#: includes/scripts.php:197
|
7115 |
msgid "Are you sure you wish to delete this note?"
|
7116 |
msgstr ""
|
7117 |
|
7118 |
+
#: includes/scripts.php:198
|
7119 |
msgid "Are you sure you wish to delete this tax rate?"
|
7120 |
msgstr ""
|
7121 |
|
7122 |
+
#: includes/scripts.php:199
|
7123 |
msgid "Are you sure you wish to revoke this API key?"
|
7124 |
msgstr ""
|
7125 |
|
7126 |
+
#: includes/scripts.php:200
|
7127 |
msgid "Are you sure you wish to regenerate this API key?"
|
7128 |
msgstr ""
|
7129 |
|
7130 |
+
#: includes/scripts.php:201
|
7131 |
msgid "Are you sure you wish to resend the purchase receipt?"
|
7132 |
msgstr ""
|
7133 |
|
7134 |
+
#: includes/scripts.php:202
|
7135 |
msgid "Copy these links to your clipboard and give them to your customer"
|
7136 |
msgstr ""
|
7137 |
|
7138 |
+
#: includes/scripts.php:203
|
7139 |
msgid "Are you sure you wish to delete this %s?"
|
7140 |
msgstr ""
|
7141 |
|
7142 |
+
#: includes/scripts.php:204
|
7143 |
msgid "You must have at least one price"
|
7144 |
msgstr ""
|
7145 |
|
7146 |
+
#: includes/scripts.php:205
|
7147 |
msgid "You must have at least one field"
|
7148 |
msgstr ""
|
7149 |
|
7150 |
+
#: includes/scripts.php:206
|
7151 |
msgid "Payments must contain at least one item"
|
7152 |
msgstr ""
|
7153 |
|
7154 |
+
#: includes/scripts.php:208
|
7155 |
msgid "Choose one or more %s"
|
7156 |
msgstr ""
|
7157 |
|
7158 |
+
#: includes/scripts.php:209
|
7159 |
msgid "Item price must be numeric"
|
7160 |
msgstr ""
|
7161 |
|
7162 |
+
#: includes/scripts.php:210
|
7163 |
msgid "Item tax must be numeric"
|
7164 |
msgstr ""
|
7165 |
|
7166 |
+
#: includes/scripts.php:211
|
7167 |
msgid "Quantity must be numeric"
|
7168 |
msgstr ""
|
7169 |
|
7170 |
+
#: includes/scripts.php:218
|
7171 |
msgid "Type to search %s"
|
7172 |
msgstr ""
|
7173 |
|
7174 |
+
#: includes/scripts.php:220
|
7175 |
msgid "You must choose a method."
|
7176 |
msgstr ""
|
7177 |
|
7178 |
+
#: includes/scripts.php:221
|
7179 |
msgid "Required fields not completed."
|
7180 |
msgstr ""
|
7181 |
|
7182 |
+
#: includes/scripts.php:222
|
7183 |
msgid ""
|
7184 |
"Are you sure you want to reset your store? This process is <strong><em>not "
|
7185 |
"reversible</em></strong>. Please be sure you have a recent backup."
|
7186 |
msgstr ""
|
7187 |
|
7188 |
+
#: includes/scripts.php:223
|
7189 |
+
msgid "Type to search all %s"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7190 |
msgstr ""
|
7191 |
|
7192 |
+
#: includes/scripts.php:225
|
7193 |
+
msgid "Type to search all Countries"
|
7194 |
msgstr ""
|
7195 |
|
7196 |
+
#: includes/scripts.php:226
|
7197 |
+
msgid "Type to search all States/Provinces"
|
7198 |
msgstr ""
|
7199 |
|
7200 |
+
#: includes/scripts.php:227
|
7201 |
+
msgid ""
|
7202 |
+
"We are sorry but your browser is not compatible with this kind of file "
|
7203 |
+
"upload. Please upgrade your browser."
|
7204 |
msgstr ""
|
7205 |
|
7206 |
#: includes/shortcodes.php:294
|
7207 |
msgid "Purchase All Items"
|
7208 |
msgstr ""
|
7209 |
|
7210 |
+
#: includes/shortcodes.php:710
|
7211 |
msgid "Sorry, trouble retrieving payment receipt."
|
7212 |
msgstr ""
|
7213 |
|
7214 |
+
#: includes/shortcodes.php:745
|
7215 |
msgid "You must be logged in to view this payment receipt."
|
7216 |
msgstr ""
|
7217 |
|
7218 |
+
#: includes/shortcodes.php:757
|
7219 |
msgid "Receipt could not be retrieved, your purchase session has expired."
|
7220 |
msgstr ""
|
7221 |
|
7222 |
+
#: includes/shortcodes.php:887
|
7223 |
msgid "The passwords you entered do not match. Please try again."
|
7224 |
msgstr ""
|
7225 |
|
7226 |
+
#: includes/shortcodes.php:897
|
7227 |
msgid "The email you entered is invalid. Please enter a valid email."
|
7228 |
msgstr ""
|
7229 |
|
7230 |
+
#: includes/shortcodes.php:902
|
7231 |
msgid "The email you entered belongs to another user. Please use another."
|
7232 |
msgstr ""
|
7233 |
|
7234 |
+
#: includes/shortcodes.php:977
|
7235 |
msgid "Error removing email address from profile. Please try again later."
|
7236 |
msgstr ""
|
7237 |
|
7238 |
+
#: includes/template-functions.php:134
|
7239 |
msgid "Free"
|
7240 |
msgstr ""
|
7241 |
|
7242 |
+
#: includes/template-functions.php:191
|
7243 |
msgid "Added to cart"
|
7244 |
msgstr ""
|
7245 |
|
7246 |
+
#: includes/template-functions.php:197
|
7247 |
msgid "Includes %1$s% tax"
|
7248 |
msgstr ""
|
7249 |
|
7250 |
+
#: includes/template-functions.php:199
|
7251 |
msgid "Excluding %1$s% tax"
|
7252 |
msgstr ""
|
7253 |
|
7254 |
+
#: includes/template-functions.php:477
|
7255 |
msgid "White"
|
7256 |
msgstr ""
|
7257 |
|
7258 |
+
#: includes/template-functions.php:481
|
7259 |
msgid "Gray"
|
7260 |
msgstr ""
|
7261 |
|
7262 |
+
#: includes/template-functions.php:485
|
7263 |
msgid "Blue"
|
7264 |
msgstr ""
|
7265 |
|
7266 |
+
#: includes/template-functions.php:489
|
7267 |
msgid "Red"
|
7268 |
msgstr ""
|
7269 |
|
7270 |
+
#: includes/template-functions.php:493
|
7271 |
msgid "Green"
|
7272 |
msgstr ""
|
7273 |
|
7274 |
+
#: includes/template-functions.php:497
|
7275 |
msgid "Yellow"
|
7276 |
msgstr ""
|
7277 |
|
7278 |
+
#: includes/template-functions.php:501
|
7279 |
msgid "Orange"
|
7280 |
msgstr ""
|
7281 |
|
7282 |
+
#: includes/template-functions.php:505
|
7283 |
msgid "Dark Gray"
|
7284 |
msgstr ""
|
7285 |
|
7286 |
+
#: includes/template-functions.php:509
|
7287 |
msgid "Inherit"
|
7288 |
msgstr ""
|
7289 |
|
7290 |
+
#: includes/template-functions.php:527
|
7291 |
msgid "Button"
|
7292 |
msgstr ""
|
7293 |
|
7294 |
+
#: includes/template-functions.php:528
|
7295 |
msgid "Plain Text"
|
7296 |
msgstr ""
|
7297 |
|
7298 |
+
#: includes/user-functions.php:536
|
7299 |
msgid "[%s] New User Registration"
|
7300 |
msgstr ""
|
7301 |
|
7302 |
+
#: includes/user-functions.php:537
|
7303 |
msgid "New user registration"
|
7304 |
msgstr ""
|
7305 |
|
7306 |
+
#: includes/user-functions.php:539
|
7307 |
msgid "E-mail: %s"
|
7308 |
msgstr ""
|
7309 |
|
7310 |
+
#: includes/user-functions.php:545
|
7311 |
msgid "[%s] Your username and password"
|
7312 |
msgstr ""
|
7313 |
|
7314 |
+
#: includes/user-functions.php:546
|
7315 |
msgid "Your account info"
|
7316 |
msgstr ""
|
7317 |
|
7318 |
+
#: includes/user-functions.php:550
|
7319 |
msgid "Password entered at checkout"
|
7320 |
msgstr ""
|
7321 |
|
7322 |
+
#: includes/user-functions.php:552
|
7323 |
msgid "Password entered at registration"
|
7324 |
msgstr ""
|
7325 |
|
7326 |
+
#: includes/user-functions.php:555
|
7327 |
msgid "Password: %s"
|
7328 |
msgstr ""
|
7329 |
|
7330 |
+
#: includes/user-functions.php:559
|
7331 |
msgid "Click here to log in"
|
7332 |
msgstr ""
|
7333 |
|
7334 |
+
#: includes/user-functions.php:563
|
7335 |
msgid "To log in, visit: %s"
|
7336 |
msgstr ""
|
7337 |
|
7338 |
+
#: includes/user-functions.php:719 includes/user-functions.php:720
|
7339 |
msgid "Verify your account"
|
7340 |
msgstr ""
|
7341 |
|
7342 |
+
#: includes/user-functions.php:722
|
7343 |
msgid ""
|
7344 |
"Hello %s,\n"
|
7345 |
"\n"
|
7349 |
"Link missing? Visit the following URL: %s"
|
7350 |
msgstr ""
|
7351 |
|
7352 |
+
#: includes/user-functions.php:847
|
7353 |
msgid ""
|
7354 |
"Sorry but your account verification link has expired. <a href=\"%s\">Click "
|
7355 |
"here</a> to request a new verification URL."
|
7356 |
msgstr ""
|
7357 |
|
7358 |
+
#: includes/user-functions.php:880
|
7359 |
msgid "You must be logged in to verify your account."
|
7360 |
msgstr ""
|
7361 |
|
7362 |
+
#: includes/user-functions.php:880 includes/user-functions.php:884
|
7363 |
msgid "Notice"
|
7364 |
msgstr ""
|
7365 |
|
7366 |
+
#: includes/user-functions.php:884
|
7367 |
msgid "Your account has already been verified."
|
7368 |
msgstr ""
|
7369 |
|
7370 |
+
#: includes/user-functions.php:929
|
7371 |
msgid "Invalid verification token provided."
|
7372 |
msgstr ""
|
7373 |
|
7374 |
+
#: includes/user-functions.php:1034
|
7375 |
msgid "Easy Digital Downloads <a href=\"%s\">iOS App</a>"
|
7376 |
msgstr ""
|
7377 |
|
7378 |
+
#: includes/user-functions.php:1041
|
7379 |
msgid "Add to iOS App"
|
7380 |
msgstr ""
|
7381 |
|
7448 |
msgstr ""
|
7449 |
|
7450 |
#: includes/widgets.php:407
|
7451 |
+
msgid "Show Title"
|
7452 |
msgstr ""
|
7453 |
|
7454 |
#: includes/widgets.php:413
|
7517 |
msgid "Log In"
|
7518 |
msgstr ""
|
7519 |
|
7520 |
+
#: templates/shortcode-login.php:40
|
7521 |
+
msgid "You are already logged in"
|
7522 |
+
msgstr ""
|
7523 |
+
|
7524 |
#: templates/shortcode-profile-editor.php:18
|
7525 |
msgid "Saved cart"
|
7526 |
msgstr ""
|
7577 |
msgid "Save Changes"
|
7578 |
msgstr ""
|
7579 |
|
7580 |
+
#: templates/shortcode-profile-editor.php:233
|
7581 |
+
msgid "You need to login to edit your profile."
|
7582 |
+
msgstr ""
|
7583 |
+
|
7584 |
#: templates/shortcode-receipt.php:12
|
7585 |
msgid "The specified receipt ID appears to be invalid"
|
7586 |
msgstr ""
|
7601 |
msgid "Discount(s)"
|
7602 |
msgstr ""
|
7603 |
|
7604 |
+
#: templates/shortcode-receipt.php:196
|
7605 |
msgid "No downloadable files found for this bundled item."
|
7606 |
msgstr ""
|
7607 |
|
7608 |
+
#: templates/shortcode-register.php:13
|
7609 |
msgid "Register New Account"
|
7610 |
msgstr ""
|
7611 |
|
7612 |
+
#: templates/shortcode-register.php:33
|
7613 |
msgid "Confirm Password"
|
7614 |
msgstr ""
|
7615 |
|
7691 |
msgid "%s Total"
|
7692 |
msgstr ""
|
7693 |
|
7694 |
+
#: includes/admin/payments/view-order-details.php:438
|
7695 |
msgctxt "payment details purchased item price - mobile"
|
7696 |
msgid "Price"
|
7697 |
msgstr ""
|
7698 |
|
7699 |
+
#: includes/admin/payments/view-order-details.php:440
|
7700 |
msgctxt "payment details purchased item quantity - mobile"
|
7701 |
msgid " & Quantity"
|
7702 |
msgstr ""
|
7703 |
|
7704 |
+
#: includes/admin/payments/view-order-details.php:455
|
7705 |
msgctxt "payment details purchased item tax - mobile"
|
7706 |
msgid "Tax"
|
7707 |
msgstr ""
|
7708 |
|
7709 |
+
#: includes/admin/payments/view-order-details.php:464
|
7710 |
msgctxt "payment details purchased item total - mobile"
|
7711 |
msgid "%s Total"
|
7712 |
msgstr ""
|
7713 |
|
7714 |
+
#: includes/admin/payments/view-order-details.php:518
|
7715 |
msgctxt "payment details select item to add - mobile"
|
7716 |
msgid "Select New %s To Add"
|
7717 |
msgstr ""
|
7718 |
|
7719 |
+
#: includes/admin/payments/view-order-details.php:530
|
7720 |
msgctxt "payment details add item price - mobile"
|
7721 |
msgid "Price"
|
7722 |
msgstr ""
|
7723 |
|
7724 |
+
#: includes/admin/payments/view-order-details.php:532
|
7725 |
msgctxt "payment details add item quantity - mobile"
|
7726 |
msgid " & Quantity"
|
7727 |
msgstr ""
|
7728 |
|
7729 |
+
#: includes/admin/payments/view-order-details.php:556
|
7730 |
msgctxt "payment details add item tax - mobile"
|
7731 |
msgid "Tax"
|
7732 |
msgstr ""
|
7733 |
|
7734 |
+
#: includes/admin/payments/view-order-details.php:698
|
7735 |
msgctxt "Address City"
|
7736 |
msgid "City:"
|
7737 |
msgstr ""
|
7738 |
|
7739 |
+
#: includes/admin/payments/view-order-details.php:703
|
7740 |
msgctxt "Zip / Postal code of address"
|
7741 |
msgid "Zip / Postal Code:"
|
7742 |
msgstr ""
|
7743 |
|
7744 |
+
#: includes/admin/payments/view-order-details.php:710
|
7745 |
msgctxt "Address country"
|
7746 |
msgid "Country:"
|
7747 |
msgstr ""
|
7748 |
|
7749 |
+
#: includes/admin/payments/view-order-details.php:726
|
7750 |
msgctxt "State / province of address"
|
7751 |
msgid "State / Province:"
|
7752 |
msgstr ""
|
7756 |
msgid "to"
|
7757 |
msgstr ""
|
7758 |
|
7759 |
+
#: includes/checkout/template.php:729
|
7760 |
msgctxt "Entering a discount code"
|
7761 |
msgid "Click to enter it"
|
7762 |
msgstr ""
|
7763 |
|
7764 |
+
#: includes/checkout/template.php:737
|
7765 |
msgctxt "Apply discount at checkout"
|
7766 |
msgid "Apply"
|
7767 |
msgstr ""
|
7768 |
|
7769 |
+
#: includes/class-edd-discount.php:1433
|
7770 |
msgctxt "error shown when attempting to use a discount before its start date"
|
7771 |
msgid "This discount is invalid."
|
7772 |
msgstr ""
|
7773 |
|
7774 |
+
#: includes/class-edd-discount.php:1812
|
7775 |
msgctxt "error for when a discount is invalid based on its configuration"
|
7776 |
msgid "This discount is invalid."
|
7777 |
msgstr ""
|
7778 |
|
7779 |
+
#: includes/class-edd-html-elements.php:386
|
7780 |
msgctxt "plural: Example: \"All Categories\""
|
7781 |
msgid "All %s"
|
7782 |
msgstr ""
|
7783 |
|
7784 |
+
#: includes/class-edd-html-elements.php:476
|
7785 |
msgctxt "all dropdown items"
|
7786 |
msgid "All"
|
7787 |
msgstr ""
|
7788 |
|
7789 |
+
#: includes/class-edd-html-elements.php:477
|
7790 |
msgctxt "no dropdown items"
|
7791 |
msgid "None"
|
7792 |
msgstr ""
|
7796 |
msgid "%2$s"
|
7797 |
msgstr ""
|
7798 |
|
7799 |
+
#: includes/shortcodes.php:663
|
7800 |
msgctxt "download post type name"
|
7801 |
msgid "No %s found"
|
7802 |
msgstr ""
|
readme.txt
CHANGED
@@ -4,9 +4,9 @@ Plugin URI: https://easydigitaldownloads.com
|
|
4 |
Contributors: easydigitaldownloads, mordauk, sunnyratilal, chriscct7, section214, sumobi, sdavis2702, cklosows, mindctrl, sksmatt, SpencerFinnell, johnstonphilip, brashrebel
|
5 |
Donate link: https://easydigitaldownloads.com/donate/
|
6 |
Tags: download, downloads, e-store, eshop, digital downloads, e-commerce, wp-ecommerce, wp ecommerce, ecommerce, ebook
|
7 |
-
Requires at least: 4.
|
8 |
-
Tested up to: 4.
|
9 |
-
Stable Tag: 2.
|
10 |
License: GNU Version 2 or Any Later Version
|
11 |
|
12 |
The easiest way to sell digital products with WordPress.
|
@@ -17,7 +17,7 @@ Easy Digital Downloads is a complete eCommerce solution for selling digital prod
|
|
17 |
|
18 |
= Sell effortlessly =
|
19 |
|
20 |
-
Whether it is software, documents, photos, ebooks, songs, graphics, or any other type of media file, Easy
|
21 |
|
22 |
= Localized for your language =
|
23 |
|
@@ -42,10 +42,15 @@ Payment gateways supported through free or premium extension:
|
|
42 |
* Braintree
|
43 |
* Authorize.net
|
44 |
* 2Checkout
|
|
|
45 |
* SOFORT Banking
|
|
|
46 |
* BitPay
|
47 |
* Coinbase
|
|
|
48 |
* Payza
|
|
|
|
|
49 |
|
50 |
See our [gateways category](https://easydigitaldownloads.com/downloads/category/gateways/?utm_source=extensions&utm_medium=description_tab&utm_content=gateways&utm_campaign=readme) in the extensions catalogue for a complete list of supported gateways. There are also a large number of additional gateways developed and supported by [3rd party developers](https://easydigitaldownloads.com/3rd-party-extensions/#gateways).
|
51 |
|
@@ -71,7 +76,7 @@ These are just a few of the extensions we offer to help super-charge your digita
|
|
71 |
|
72 |
= Built with developers in mind =
|
73 |
|
74 |
-
|
75 |
|
76 |
== Installation ==
|
77 |
|
@@ -156,6 +161,7 @@ Yes. Easy Digital Downloads also includes default support for Amazon Payments an
|
|
156 |
* [Check](https://easydigitaldownloads.com/downloads/check-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=check-payment-gateway&utm_campaign=readme)
|
157 |
* [Braintree](https://easydigitaldownloads.com/downloads/braintree-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=braintree-gateway&utm_campaign=readme)
|
158 |
* [PayPal Payments Advanced](https://easydigitaldownloads.com/downloads/paypal-payments-advanced/?utm_source=gateway&utm_medium=faq_tab&utm_content=paypal-payments-advanced&utm_campaign=readme)
|
|
|
159 |
* [ClickBank](https://easydigitaldownloads.com/downloads/edd-clickbank-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=clickbank&utm_campaign=readme)
|
160 |
* [Wallet](https://easydigitaldownloads.com/downloads/wallet/?utm_source=gateway&utm_medium=faq_tab&utm_content=wallet&utm_campaign=readme)
|
161 |
* [BitPay](https://easydigitaldownloads.com/downloads/bitpay-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=bitpay-payment-gateway&utm_campaign=readme)
|
@@ -163,14 +169,31 @@ Yes. Easy Digital Downloads also includes default support for Amazon Payments an
|
|
163 |
* [SOFORT Banking](https://easydigitaldownloads.com/downloads/sofort-banking-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=sofort-banking-gateway&utm_campaign=readme)
|
164 |
* [PayU India](https://easydigitaldownloads.com/downloads/payu-india-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=payu-india-payment-gateway&utm_campaign=readme)
|
165 |
* [Payza](https://easydigitaldownloads.com/downloads/payza-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=payza-payment-gateway&utm_campaign=readme)
|
|
|
|
|
166 |
* [PayPlug](https://easydigitaldownloads.com/downloads/payplug-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=payplug-gateway&utm_campaign=readme)
|
167 |
* [GoCardless](https://easydigitaldownloads.com/downloads/gocardless-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=gocardless-payment-gateway&utm_campaign=readme)
|
|
|
168 |
* [Zombaio](https://easydigitaldownloads.com/downloads/zombaio-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=zombaio-payment-gateway&utm_campaign=readme)
|
|
|
169 |
* [Realex](https://easydigitaldownloads.com/downloads/realex-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=realex-gateway&utm_campaign=readme)
|
170 |
* [CyberSource](https://easydigitaldownloads.com/downloads/cybersource-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=cybersource-gateway&utm_campaign=readme)
|
|
|
171 |
* [Paylane](https://easydigitaldownloads.com/downloads/paylane-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=paylane-payment-gateway&utm_campaign=readme)
|
172 |
* [ePay](https://easydigitaldownloads.com/downloads/epay-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=epay-payment-gateway&utm_campaign=readme)
|
173 |
* [Netbanx](https://easydigitaldownloads.com/downloads/netbanx-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=netbanx-payment-gateway&utm_campaign=readme)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
* [Realex](https://easydigitaldownloads.com/downloads/realex-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=realex-gateway&utm_campaign=readme)
|
175 |
* [PayTrace](https://easydigitaldownloads.com/downloads/paytrace/?utm_source=gateway&utm_medium=faq_tab&utm_content=paytrace&utm_campaign=readme)
|
176 |
* [iPay88](https://easydigitaldownloads.com/downloads/ipay88-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=ipay88-gateway&utm_campaign=readme)
|
@@ -190,211 +213,6 @@ Yes. Easy Digital Downloads also includes default support for Amazon Payments an
|
|
190 |
|
191 |
== Changelog ==
|
192 |
|
193 |
-
= 2.8.15, December 13, 2017 =
|
194 |
-
* Fix: Getting files of variable priced bundles products did not always respect variable price ID.
|
195 |
-
* Tweak: Added found payments to the hooks before and after the purchase history shortcode.
|
196 |
-
|
197 |
-
= 2.8.14, November 28, 2017 =
|
198 |
-
* Fix: Sales exports did not always include all payments from the last day of the range selected.
|
199 |
-
* Fix: Negative item fees can apply to same item multiple times if it's the same product.
|
200 |
-
* Fix: Campaign strings on Integrations were not consistent.
|
201 |
-
* Fix: Warning when converting dates to timestamps in EDD_Stats::convert_date()
|
202 |
-
|
203 |
-
= 2.8.13, November 20, 2017 =
|
204 |
-
* Fix: Cart details incorrectly reported item quantity as 0 in some cases.
|
205 |
-
* Fix: Prevent an edge case around adding past purchases to new users.
|
206 |
-
* Fix: Searching by custom order number only worked if a suffix or prefix is included.
|
207 |
-
* Fix: Corrected some translation issues.
|
208 |
-
* New: Allow filtering of the PayPal IPN data.
|
209 |
-
* New: Add support for Payment Data Transport (PDT) in PayPal Standard.
|
210 |
-
* Tweak: Removed MercadoPago from list of extensions in readme.
|
211 |
-
* Tweak: Added a colon that was missing on taxes & subtotal of the purchase confirmation.
|
212 |
-
* Tweak: Add debug logging to PayPal IPN capturing.
|
213 |
-
|
214 |
-
|
215 |
-
= 2.8.12, November 10, 2017 =
|
216 |
-
* Fix: Reverted some of the performance improvements due to edge case errors.
|
217 |
-
* Fix: Corrected a misspelled function edd_render_dowwn_tax_options.
|
218 |
-
* Fix: Invalid translation line while processing purchase.
|
219 |
-
* Fix: Improved the verbiage of the discount code amount description.
|
220 |
-
|
221 |
-
= 2.8.11, November 9, 2017 =
|
222 |
-
* Fix: Incorrect discount errors could be shown at checkout.
|
223 |
-
* Fix: Improved the performance of the EDD_Customer class.
|
224 |
-
* Fix: Improved the new Debug Log View usability.
|
225 |
-
* Fix: Corrected an issue with edd_user_pending_verification() when logged in as an admin.
|
226 |
-
* Fix: Custom date ranges for detailed product earnings break on multi-month views.
|
227 |
-
* Fix: Discount validation errors could occur when recovering pending payment.
|
228 |
-
* Fix: The product notes div was being rendered when no product notes added to download.
|
229 |
-
* New: Added a filter for edd_get_errors().
|
230 |
-
* New: Added link to ipinfo.io for the IP address on a file download log.
|
231 |
-
* Tweak: Removed an unused display_price argument in edd_get_purchase_link().
|
232 |
-
* Tweak: Update library for array2xml.php.
|
233 |
-
* Tweak: Added filters to allow modfiying the payment list table gateway filter selector.
|
234 |
-
|
235 |
-
= 2.8.10, October 20, 2017 =
|
236 |
-
|
237 |
-
* Fix: Incorrect URL for `Add New` button.
|
238 |
-
* Fix: Incorrectly called function on EDD_Payment::get_discounted_amount.
|
239 |
-
|
240 |
-
= 2.8.9, October 19, 2017 =
|
241 |
-
|
242 |
-
* Fix: Errors when trying to download some local files on Windows servers.
|
243 |
-
* Fix: "Recount" Progress Bar was invisible.
|
244 |
-
* Tweak: Added $price_id to the edd_purchase_receipt_after_files action.
|
245 |
-
* Tweak: Improve visibility of Apps & Integrations.
|
246 |
-
* Tweak: Corrected some spelling errors.
|
247 |
-
|
248 |
-
= 2.8.8, October 5, 2017 =
|
249 |
-
|
250 |
-
* Fix: A fatal error was triggered during the payment export.
|
251 |
-
* New: Added more parameters to the edd_requested_file_name filter.
|
252 |
-
|
253 |
-
= 2.8.7, October 2, 2017 =
|
254 |
-
|
255 |
-
* IMPORTANT: Product dropdown was losing selections when using variable pricing. Please verify any variable priced bundles you may have configured.
|
256 |
-
* Fix: File download errors could occur if the stream type was no longer registered.
|
257 |
-
* Fix: The 'No checkout page configured' error is now limited to once display per page.
|
258 |
-
* Fix: Calls to EDD_Customer->update_meta could throw a notice if called to early in the WordPress load process.
|
259 |
-
* Fix: The edd_get_users_purchased_products function did not respect the status argument passed in.
|
260 |
-
* Fix: The base state/province displayed empty when no pre-populated state or province data was available.
|
261 |
-
* Fix: Performance improvements to edd_get_discounts.
|
262 |
-
* Fix: Newly registered user's ID was not set on pre-existing payments.
|
263 |
-
* Fix: During purchase, the customer name was set to email if last name was empty.
|
264 |
-
* Fix: Corrected many non-numeric value and data handling issues in PHP 7.1.
|
265 |
-
* Fix: Corrected an issue with Chosen placeholders.
|
266 |
-
* New: Added the EDD_Logging class, to allow for easier debugging by developers.
|
267 |
-
* New: The country name has been added to the payment export.
|
268 |
-
* New: Added a discounts_total property to the EDD_Payment class.
|
269 |
-
* New: Hyphens are now allowed in discount codes.
|
270 |
-
* New: The Customer ID is now included in the sales report.
|
271 |
-
* Tweak: Added better responsiveness in WordPress admin.
|
272 |
-
* Tweak: Fixed a typo in the docs for the payments create CLI command.
|
273 |
-
* Tweak: Wrapped discount fields in <span> tags.
|
274 |
-
* Tweak: Fixed CSS targeting on edd_repeatable_thumbnail_size_field selector.
|
275 |
-
|
276 |
-
= 2.8.6, September 11, 2017 =
|
277 |
-
|
278 |
-
* Fix: Amazon Payments could cause Javascript error on checkout.
|
279 |
-
* Fix: edd_delete_option() helper function failed to fully remove option.
|
280 |
-
* Fix: It was possible to create a discount using edd_store_discount() without specifying a discount code.
|
281 |
-
* Fix: User Address information could be stored with boolean 'false' instead of an empty string.
|
282 |
-
* New: Made URLs included in payment notes clickable links.
|
283 |
-
* New: Added filter edd_load_scripts_in_footer to allow programmatic modifications of where frontend scripts are loaded.
|
284 |
-
|
285 |
-
= 2.8.5, September 7, 2017 =
|
286 |
-
|
287 |
-
* Fix: The Product Dropdown helper function included products in the trash.
|
288 |
-
* Fix: Deleted products could not be removed from payments.
|
289 |
-
* Fix: Incorrect cookie name was being used for the 'rememberme' option.
|
290 |
-
* Fix: Incorrect pagination was being used when viewing sales logs.
|
291 |
-
* Fix: Possible issue parsing headers when accessing via WP Rest API.
|
292 |
-
* Fix: Improved security of EDD_Session.
|
293 |
-
* New: Added a filter to the "Agree to Terms" markup.
|
294 |
-
* New: Added support for Angola (country, municipalities, and currency).
|
295 |
-
* New: Increased the width of the discount amount field when adding or editing discounts.
|
296 |
-
* New: Added ability to filter sales by email address in WP-CLI.
|
297 |
-
* Tweak: Updated form styling for login and register forms.
|
298 |
-
* Tweak: Removed clearing divs from the [downloads] shortcode.
|
299 |
-
* Tweak: Added inline docs for edd_payment_meta filter.
|
300 |
-
* Tweak: Ensure EDD_Cart:get_discounts() return type is consistent.
|
301 |
-
|
302 |
-
= 2.8.4, August 16, 2017 =
|
303 |
-
|
304 |
-
* Fix: Minor improvements to edd_get_customer_address() function.
|
305 |
-
* Fix: Negative product fees were not properly affecting subtotal used for tax calculations.
|
306 |
-
* Fix: Editing item price on a payment caused incorrect calculations when item price contained thousands separators.
|
307 |
-
* Fix: Download History shortcode was incorrectly using get_the_title instead of the supplied name.
|
308 |
-
* Fix: Resuming payment for guest payments while logged out could incorrectly prompt the user to login.
|
309 |
-
* Tweak: Download Details widget edit form used generic 'Show Title' instead of 'Show Download Title'.
|
310 |
-
* Tweak: Product Notes metabox field wasn't full width.
|
311 |
-
|
312 |
-
= 2.8.3, August 9, 2017 =
|
313 |
-
|
314 |
-
* Fix: Update HTML5 pattern on card field to account for whitespace.
|
315 |
-
* Fix: Don't enqueue jQuery.payment by default, allow gateways to enqueue when supported.
|
316 |
-
|
317 |
-
= 2.8.2, August 8, 2017 =
|
318 |
-
|
319 |
-
* New: Spaces are now auto-formatted into credit card number fields.
|
320 |
-
* Tweak: Decoupled API Authentication with $wp_query.
|
321 |
-
* Tweak: Quantities no longer show on the cart widget when they are disabled.
|
322 |
-
* Tweak: Renamed 'Item Quantities' setting to 'Cart Item Quantities' to remove confusion of its purpose.
|
323 |
-
* Tweak: Improvements to the consistency of settings descriptions.
|
324 |
-
* Tweak: Added search_columns argument to the EDD_Customer_Query class.
|
325 |
-
* Fix: Discounts with multiple exclusions could be applied to excluded products.
|
326 |
-
* Fix: Customer query pagination did not work correctly.
|
327 |
-
* Fix: Removed custom widths on the primary column of list table.
|
328 |
-
* Fix: 'Processing' status in Payments list table shows empty brackets when no processing payments.
|
329 |
-
* Fix: Billing fields were unnecessarily validated when cart total was $0.
|
330 |
-
* Fix: WPLANG is deprecated, use get_locale() instead.
|
331 |
-
* Fix: Prevent duplicate queries when edd_get_purchase_id_by_key() is called more than once for the same payment key.
|
332 |
-
* Fix: Prevent plain text purchase links from looking like buttons still.
|
333 |
-
|
334 |
-
= 2.8.1, July 27, 2017 =
|
335 |
-
|
336 |
-
* New: Include "processing" as payment status in the list table.
|
337 |
-
* Fix: Revert adjusting purchase amount when quantity changes.
|
338 |
-
* Fix: Variable pricing bundle purchases gave access to incorrect product files.
|
339 |
-
* Tweak: Update to 1.6.14 of the Plugin Updater.
|
340 |
-
|
341 |
-
= 2.8, July 25, 2017 =
|
342 |
-
|
343 |
-
* New: Design of repeatable rows, including variable prices and download files, has been redesigned to better accommodate more options and smaller screen sizes
|
344 |
-
* New: Variable price IDs now supported in payment import and export
|
345 |
-
* New: add_meta() and delete_meta() methods added to EDD_Payment
|
346 |
-
* New: Position of errors on checkout can now be changed through edd_global_checkout_script_vars filter
|
347 |
-
* New: edd_after_payment_actions action now fired through WP Cron after payment is completed
|
348 |
-
* New: EDD_Customer_Query class introduced
|
349 |
-
* New: Added support for PayPal Image URL setting
|
350 |
-
* New: Added support for filtering Payment History by used payment gateway
|
351 |
-
* New: Added shortcode-download.php template file
|
352 |
-
* Tweak: Use document.body in scripts where possible, for performance
|
353 |
-
* Tweak: Minimum WordPress version now set to 4.4
|
354 |
-
* Tweak: edd-ajax.js and edd-ajax.min.js now loaded in wp_footer
|
355 |
-
* Tweak: Improved performance of EDD_Customer by avoiding duplicate query to get notes
|
356 |
-
* Tweak: Banned Emails option now supports blocking addresses with just a TLD
|
357 |
-
* Tweak: Added new actions to template files to allow content to be more easily added to log in and registration forms
|
358 |
-
* Tweak: Chosen dropdown field of EDD_HTML_Elements now supports "multiple" parameter
|
359 |
-
* Tweak: Added a link to gateways extension category on gateway settings page to make gateways more easily discoverable
|
360 |
-
* Tweak: Updated the EDD add-on updater class to version 1.6.13
|
361 |
-
* Tweak: Added new edd_log_file_download_download_files filter and edd_log_file_download_file_id filter to get_logs() method of the file download list table
|
362 |
-
* Tweak: Empty categories now shown on Earnings by Category report
|
363 |
-
* Tweak: EDD_Customer object added to completed payment actions
|
364 |
-
* Tweak: Current customer instance added to all hooks and filters in EDD_Customer
|
365 |
-
* Tweak: Download link expiration time now shown on System Info
|
366 |
-
* Tweak: Added edd_checkout_billing_details_address filter to customer billing details on checkout
|
367 |
-
* Tweak: Purchase button amounts now automatically update as quantity input is changed
|
368 |
-
* Tweak: Customer records now updated with information entered on checkout
|
369 |
-
* Tweak: Improved translation flexibility of Complete Purchase button text
|
370 |
-
* Tweak: Added new edd_price_option_output filter to function that displays variable prices
|
371 |
-
* Tweak: Notes and price IDs now escaped on purchase receipt display
|
372 |
-
* Tweak: Improved description of login redirect page setting
|
373 |
-
* Tweak: Avoid hard-coding "striped" class on list tables
|
374 |
-
* Tweak: A link to Product Reviews extension has been added to product edit screen when Reviews plugin is not installed
|
375 |
-
* Tweak: Account for multiple reverse proxy IPs in $_SERVER['HTTP_X_FORWARDED_FOR']
|
376 |
-
* Tweak: Update phpunit dependency to latest of 3.7 branch
|
377 |
-
* Fix: Price ID not properly set when generating payment records with WP CLI
|
378 |
-
* Fix: Credit card name field validated as true when card number was entered
|
379 |
-
* Fix: Detect and correct invalid email addresses in From Address settings for purchase receipts and email notifications
|
380 |
-
* Fix: Sales export includes incorrect items
|
381 |
-
* Fix: Invalid SQL query due to extraneous curly brace
|
382 |
-
* Fix: Fatal error due to undefined function edd_extension_has_beta_support()
|
383 |
-
* Fix: Some admin screens not properly responsive for small screens
|
384 |
-
* Fix: misc-functions.php file loaded twice
|
385 |
-
* Fix: Corrupt file downloads due to non-binary setting passed to fopen()
|
386 |
-
* Fix: _canonical_import_id not deleted after payment import
|
387 |
-
* Fix: All products could be deleted on a payment
|
388 |
-
* Fix: 100% discount codes do not remove tax from tax-inclusive items
|
389 |
-
* Fix: Item tax not shown on payment screen when price contains commas
|
390 |
-
* Fix: Tax rates not included in settings import/export
|
391 |
-
* Fix: get_payments() method of EDD_Payments_Query affects global $post
|
392 |
-
* Fix: Customer record not properly linked to existing user record
|
393 |
-
* Fix: State / province field of customer address not saved properly
|
394 |
-
* Fix: Download links still shown on purchase confirmation when Disable Redownload is enabled
|
395 |
-
* Fix: select() method of EDD_HTML_Elements always uses "Downloads" as search placeholder
|
396 |
-
* Fix: Product Dropdown not always showing the selected item when large number of downloads exist
|
397 |
-
|
398 |
= 2.7.11, June 21, 2017 =
|
399 |
|
400 |
* Fix: Amazon Payments had errors being displayed at incorrect times.
|
@@ -420,7 +238,7 @@ Yes. Easy Digital Downloads also includes default support for Amazon Payments an
|
|
420 |
* Fix: Use once per customer option on discount codes does not respect case sensitivity
|
421 |
* Fix: Date filters on payment history not working properly
|
422 |
* Fix: Tax rates of less than 1 calculates an incorrect total
|
423 |
-
* Fix: edd_unset_cart_discount() is case
|
424 |
* Fix: PHP 7 compatibility flags due to safe_mode checks
|
425 |
* Fix: Download files not imported properly when file URL/path begins with a forward slash
|
426 |
* Fix: Pending verification message shown multiple times if the page contains multiple shortcodes
|
@@ -646,7 +464,7 @@ Yes. Easy Digital Downloads also includes default support for Amazon Payments an
|
|
646 |
* New: Allow exporting the file download history of a specific product.
|
647 |
* New: Add action after discount is added to the cart.
|
648 |
* New: Add action hook called "edd_payment_saved" for when EDD_Payment::save() is run.
|
649 |
-
* New: Add "author"
|
650 |
* Tweak: Correct branding of necessary assets.
|
651 |
* Tweak: Block self-pings in tracking check-ins.
|
652 |
* Tweak: Update author and author URI to Easy Digital Downloads.
|
@@ -1003,7 +821,7 @@ Yes. Easy Digital Downloads also includes default support for Amazon Payments an
|
|
1003 |
|
1004 |
* New: Added refund() method to EDD_Payment class
|
1005 |
* New: Added filters to enable/disable product and customer stat adjustments during refunds
|
1006 |
-
* New:
|
1007 |
* Tweak: Improved taxonomy labels for categories and tags
|
1008 |
* Tweak: Automatically flush permalinks when a 404 is detected on EDD archive pages
|
1009 |
* Tweak: Add proper 403 headers to REST API
|
4 |
Contributors: easydigitaldownloads, mordauk, sunnyratilal, chriscct7, section214, sumobi, sdavis2702, cklosows, mindctrl, sksmatt, SpencerFinnell, johnstonphilip, brashrebel
|
5 |
Donate link: https://easydigitaldownloads.com/donate/
|
6 |
Tags: download, downloads, e-store, eshop, digital downloads, e-commerce, wp-ecommerce, wp ecommerce, ecommerce, ebook
|
7 |
+
Requires at least: 4.0
|
8 |
+
Tested up to: 4.8
|
9 |
+
Stable Tag: 2.7.12
|
10 |
License: GNU Version 2 or Any Later Version
|
11 |
|
12 |
The easiest way to sell digital products with WordPress.
|
17 |
|
18 |
= Sell effortlessly =
|
19 |
|
20 |
+
Whether it is software, documents, photos, ebooks, songs, graphics, or any other type of media file, Easy Digtal Downloads provides a complete system for effortlessly selling your digital products.
|
21 |
|
22 |
= Localized for your language =
|
23 |
|
42 |
* Braintree
|
43 |
* Authorize.net
|
44 |
* 2Checkout
|
45 |
+
* Recurly
|
46 |
* SOFORT Banking
|
47 |
+
* NETbilling
|
48 |
* BitPay
|
49 |
* Coinbase
|
50 |
+
* Moneybookers / Skrill
|
51 |
* Payza
|
52 |
+
* MercadoPago
|
53 |
+
* PagSeguro
|
54 |
|
55 |
See our [gateways category](https://easydigitaldownloads.com/downloads/category/gateways/?utm_source=extensions&utm_medium=description_tab&utm_content=gateways&utm_campaign=readme) in the extensions catalogue for a complete list of supported gateways. There are also a large number of additional gateways developed and supported by [3rd party developers](https://easydigitaldownloads.com/3rd-party-extensions/#gateways).
|
56 |
|
76 |
|
77 |
= Built with developers in mind =
|
78 |
|
79 |
+
Extendable, adaptable, and open source -- Easy Digital Downloads is created with developers in mind. Contribute on [GitHub](https://github.com/easydigitaldownloads/easy-digital-downloads).
|
80 |
|
81 |
== Installation ==
|
82 |
|
161 |
* [Check](https://easydigitaldownloads.com/downloads/check-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=check-payment-gateway&utm_campaign=readme)
|
162 |
* [Braintree](https://easydigitaldownloads.com/downloads/braintree-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=braintree-gateway&utm_campaign=readme)
|
163 |
* [PayPal Payments Advanced](https://easydigitaldownloads.com/downloads/paypal-payments-advanced/?utm_source=gateway&utm_medium=faq_tab&utm_content=paypal-payments-advanced&utm_campaign=readme)
|
164 |
+
* [PagSeguro](https://easydigitaldownloads.com/downloads/pagseguro-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=pagseguro-payment-gateway&utm_campaign=readme)
|
165 |
* [ClickBank](https://easydigitaldownloads.com/downloads/edd-clickbank-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=clickbank&utm_campaign=readme)
|
166 |
* [Wallet](https://easydigitaldownloads.com/downloads/wallet/?utm_source=gateway&utm_medium=faq_tab&utm_content=wallet&utm_campaign=readme)
|
167 |
* [BitPay](https://easydigitaldownloads.com/downloads/bitpay-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=bitpay-payment-gateway&utm_campaign=readme)
|
169 |
* [SOFORT Banking](https://easydigitaldownloads.com/downloads/sofort-banking-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=sofort-banking-gateway&utm_campaign=readme)
|
170 |
* [PayU India](https://easydigitaldownloads.com/downloads/payu-india-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=payu-india-payment-gateway&utm_campaign=readme)
|
171 |
* [Payza](https://easydigitaldownloads.com/downloads/payza-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=payza-payment-gateway&utm_campaign=readme)
|
172 |
+
* [MercadoPago](https://easydigitaldownloads.com/downloads/mercadopago/?utm_source=gateway&utm_medium=faq_tab&utm_content=mercadopago&utm_campaign=readme)
|
173 |
+
* [First Data](https://easydigitaldownloads.com/downloads/first-data-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=first-data-payment-gateway&utm_campaign=readme)
|
174 |
* [PayPlug](https://easydigitaldownloads.com/downloads/payplug-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=payplug-gateway&utm_campaign=readme)
|
175 |
* [GoCardless](https://easydigitaldownloads.com/downloads/gocardless-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=gocardless-payment-gateway&utm_campaign=readme)
|
176 |
+
* [Dwolla](https://easydigitaldownloads.com/downloads/dwolla/?utm_source=gateway&utm_medium=faq_tab&utm_content=dwolla&utm_campaign=readme)
|
177 |
* [Zombaio](https://easydigitaldownloads.com/downloads/zombaio-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=zombaio-payment-gateway&utm_campaign=readme)
|
178 |
+
* [Recurly](https://easydigitaldownloads.com/downloads/recurly-com-checkout/?utm_source=gateway&utm_medium=faq_tab&utm_content=recurly-com-checkout&utm_campaign=readme)
|
179 |
* [Realex](https://easydigitaldownloads.com/downloads/realex-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=realex-gateway&utm_campaign=readme)
|
180 |
* [CyberSource](https://easydigitaldownloads.com/downloads/cybersource-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=cybersource-gateway&utm_campaign=readme)
|
181 |
+
* [NETbilling](https://easydigitaldownloads.com/downloads/netbilling-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=netbilling-gateway&utm_campaign=readme)
|
182 |
* [Paylane](https://easydigitaldownloads.com/downloads/paylane-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=paylane-payment-gateway&utm_campaign=readme)
|
183 |
* [ePay](https://easydigitaldownloads.com/downloads/epay-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=epay-payment-gateway&utm_campaign=readme)
|
184 |
* [Netbanx](https://easydigitaldownloads.com/downloads/netbanx-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=netbanx-payment-gateway&utm_campaign=readme)
|
185 |
+
* [NoChex](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
186 |
+
* [Network Merchants](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
187 |
+
* [Direct One](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
188 |
+
* [Moneris Solutions](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
189 |
+
* [My Virtual Merchant](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
190 |
+
* [NAB](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
191 |
+
* [eWay](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
192 |
+
* [Beanstream](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
193 |
+
* [Quickbooks](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
194 |
+
* [PayFast](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
195 |
+
* [WorldPay](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
196 |
+
* [Payment Express](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=gateway&utm_medium=faq_tab&utm_content=nochex-gateway&utm_campaign=readme#gateways)
|
197 |
* [Realex](https://easydigitaldownloads.com/downloads/realex-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=realex-gateway&utm_campaign=readme)
|
198 |
* [PayTrace](https://easydigitaldownloads.com/downloads/paytrace/?utm_source=gateway&utm_medium=faq_tab&utm_content=paytrace&utm_campaign=readme)
|
199 |
* [iPay88](https://easydigitaldownloads.com/downloads/ipay88-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=ipay88-gateway&utm_campaign=readme)
|
213 |
|
214 |
== Changelog ==
|
215 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
= 2.7.11, June 21, 2017 =
|
217 |
|
218 |
* Fix: Amazon Payments had errors being displayed at incorrect times.
|
238 |
* Fix: Use once per customer option on discount codes does not respect case sensitivity
|
239 |
* Fix: Date filters on payment history not working properly
|
240 |
* Fix: Tax rates of less than 1 calculates an incorrect total
|
241 |
+
* Fix: edd_unset_cart_discount() is case senstive when it should not be
|
242 |
* Fix: PHP 7 compatibility flags due to safe_mode checks
|
243 |
* Fix: Download files not imported properly when file URL/path begins with a forward slash
|
244 |
* Fix: Pending verification message shown multiple times if the page contains multiple shortcodes
|
464 |
* New: Allow exporting the file download history of a specific product.
|
465 |
* New: Add action after discount is added to the cart.
|
466 |
* New: Add action hook called "edd_payment_saved" for when EDD_Payment::save() is run.
|
467 |
+
* New: Add "author" paramater support to [downloads] shortcode with support for username or ID.
|
468 |
* Tweak: Correct branding of necessary assets.
|
469 |
* Tweak: Block self-pings in tracking check-ins.
|
470 |
* Tweak: Update author and author URI to Easy Digital Downloads.
|
821 |
|
822 |
* New: Added refund() method to EDD_Payment class
|
823 |
* New: Added filters to enable/disable product and customer stat adjustments during refunds
|
824 |
+
* New: Addded new hooks to EDD_Payment class that run before payment is setup
|
825 |
* Tweak: Improved taxonomy labels for categories and tags
|
826 |
* Tweak: Automatically flush permalinks when a 404 is detected on EDD archive pages
|
827 |
* Tweak: Add proper 403 headers to REST API
|
templates/edd.css
CHANGED
@@ -680,29 +680,15 @@ table#edd_purchase_receipt_products .edd_bundled_product_name {
|
|
680 |
|
681 |
/* =Registration / login Form
|
682 |
-------------------------------------------------------------- */
|
683 |
-
#edd_register_form legend,
|
684 |
-
#edd_login_form legend {
|
685 |
-
font-size: 120%;
|
686 |
-
margin-bottom: 1em;
|
687 |
-
}
|
688 |
-
|
689 |
-
#edd_register_form fieldset,
|
690 |
-
#edd_login_form fieldset {
|
691 |
-
border: none;
|
692 |
-
}
|
693 |
-
|
694 |
#edd_register_form .edd-input,
|
695 |
-
#edd_login_form .edd-input
|
696 |
-
-webkit-box-sizing: border-box;
|
697 |
-
-moz-box-sizing: border-box;
|
698 |
-
box-sizing: border-box;
|
699 |
-
}
|
700 |
-
|
701 |
#edd_register_form label,
|
702 |
#edd_login_form label {
|
703 |
-
|
|
|
704 |
}
|
705 |
|
|
|
706 |
/* =Profile Form
|
707 |
-------------------------------------------------------------- */
|
708 |
#edd_profile_editor_form p {
|
@@ -821,6 +807,13 @@ input[type="submit"].edd-submit:focus {
|
|
821 |
outline: 5px auto -webkit-focus-ring-color;
|
822 |
outline-offset: -2px;
|
823 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
824 |
.edd-submit.button:active {
|
825 |
background-image: none;
|
826 |
outline: 0;
|
@@ -829,10 +822,6 @@ input[type="submit"].edd-submit:focus {
|
|
829 |
}
|
830 |
.edd-submit.plain {
|
831 |
padding: 0;
|
832 |
-
border: none;
|
833 |
-
-webkit-border-radius: 0;
|
834 |
-
-moz-border-radius: 0;
|
835 |
-
border-radius: 0;
|
836 |
}
|
837 |
|
838 |
/** Gray (Default) */
|
@@ -981,11 +970,6 @@ input[type="submit"].edd-submit:focus {
|
|
981 |
|
982 |
/* =Downloads Shortcode
|
983 |
-------------------------------------------------------------- */
|
984 |
-
.edd_downloads_list:after {
|
985 |
-
content: "";
|
986 |
-
display: table;
|
987 |
-
clear: both;
|
988 |
-
}
|
989 |
.edd_download {
|
990 |
float: left;
|
991 |
}
|
@@ -1000,22 +984,13 @@ input[type="submit"].edd-submit:focus {
|
|
1000 |
padding: 0 8px 8px;
|
1001 |
margin: 0 0 10px;
|
1002 |
}
|
1003 |
-
.edd_download_columns_2 .edd_download:nth-child(2n+1),
|
1004 |
-
.edd_download_columns_3 .edd_download:nth-child(3n+1),
|
1005 |
-
.edd_download_columns_4 .edd_download:nth-child(4n+1),
|
1006 |
-
.edd_download_columns_5 .edd_download:nth-child(5n+1),
|
1007 |
-
.edd_download_columns_6 .edd_download:nth-child(6n+1) {
|
1008 |
-
clear: left;
|
1009 |
-
}
|
1010 |
.edd_download_image {
|
1011 |
max-width: 100%;
|
1012 |
}
|
1013 |
.edd_download .edd_price {
|
1014 |
margin-bottom: 10px;
|
1015 |
}
|
1016 |
-
|
1017 |
-
clear: both;
|
1018 |
-
}
|
1019 |
|
1020 |
/* =Misc styles
|
1021 |
-------------------------------------------------------------- */
|
680 |
|
681 |
/* =Registration / login Form
|
682 |
-------------------------------------------------------------- */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
683 |
#edd_register_form .edd-input,
|
684 |
+
#edd_login_form .edd-input,
|
|
|
|
|
|
|
|
|
|
|
685 |
#edd_register_form label,
|
686 |
#edd_login_form label {
|
687 |
+
display: inline-block;
|
688 |
+
width: 200px;
|
689 |
}
|
690 |
|
691 |
+
|
692 |
/* =Profile Form
|
693 |
-------------------------------------------------------------- */
|
694 |
#edd_profile_editor_form p {
|
807 |
outline: 5px auto -webkit-focus-ring-color;
|
808 |
outline-offset: -2px;
|
809 |
}
|
810 |
+
input[type="submit"].edd-submit:hover,
|
811 |
+
input[type="submit"].edd-submit:focus,
|
812 |
+
.edd-submit.button:hover,
|
813 |
+
.edd-submit.button:focus {
|
814 |
+
color: #333333;
|
815 |
+
text-decoration: none;
|
816 |
+
}
|
817 |
.edd-submit.button:active {
|
818 |
background-image: none;
|
819 |
outline: 0;
|
822 |
}
|
823 |
.edd-submit.plain {
|
824 |
padding: 0;
|
|
|
|
|
|
|
|
|
825 |
}
|
826 |
|
827 |
/** Gray (Default) */
|
970 |
|
971 |
/* =Downloads Shortcode
|
972 |
-------------------------------------------------------------- */
|
|
|
|
|
|
|
|
|
|
|
973 |
.edd_download {
|
974 |
float: left;
|
975 |
}
|
984 |
padding: 0 8px 8px;
|
985 |
margin: 0 0 10px;
|
986 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
987 |
.edd_download_image {
|
988 |
max-width: 100%;
|
989 |
}
|
990 |
.edd_download .edd_price {
|
991 |
margin-bottom: 10px;
|
992 |
}
|
993 |
+
|
|
|
|
|
994 |
|
995 |
/* =Misc styles
|
996 |
-------------------------------------------------------------- */
|
templates/edd.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
@charset "UTF-8";#edd_checkout_form_wrap label:after,.edd_clearfix:after{visibility:hidden;float:none;text-indent:-9999px;content:".";clear:both}#edd_login_form label,#edd_register_form label,.edd-amazon-logout a,input.edd_submit_plain{cursor:pointer}.edd-icon{display:inline-block;fill:currentColor;position:relative;top:-.0625em;vertical-align:middle;width:1em;height:1em}.edd-icon-lock{top:-.125rem}.edd-icon-spin{display:inline-block;-moz-animation:edd-icon-spin 2s infinite linear;-o-animation:edd-icon-spin 2s infinite linear;-webkit-animation:edd-icon-spin 2s infinite linear;animation:edd-icon-spin 2s infinite linear}@-moz-keyframes edd-icon-spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes edd-icon-spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes edd-icon-spin{0%{-o-transform:rotate(0)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes edd-icon-spin{0%{-ms-transform:rotate(0)}100%{-ms-transform:rotate(359deg)}}@keyframes edd-icon-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.edd_clearfix:after{display:block}#edd_checkout_cart{text-align:left;width:100%;border:none;margin:0 0 21px;table-layout:auto}#edd_checkout_cart td,#edd_checkout_cart th{text-align:left;border:1px solid #eee;color:#666;padding:.5em 1.387em}#edd_checkout_cart .edd_cart_header_row th{background:#fafafa;padding:1.387em}#edd_checkout_cart .edd_cart_discount_row th,#edd_checkout_cart .edd_cart_tax_row th{background:0 0}#edd_checkout_cart th{font-weight:700}#edd_checkout_cart td{line-height:25px;vertical-align:middle;background:#fff}#edd_checkout_cart td.edd_cart_actions,#edd_checkout_cart td:last-child,#edd_checkout_cart th.edd_cart_actions,#edd_checkout_cart th.edd_cart_total,#edd_checkout_cart th:last-child{text-align:right}#edd_checkout_cart td img{float:left;margin:0 8px 0 0;background:0 0;padding:0;border:none}#edd_checkout_cart input.edd-item-quantity{width:3em;padding:2px}#edd_checkout_cart .edd_discount{display:inline-block;margin-left:5px}.edd_discount_remove{display:inline-block;width:10px;height:11px;background:url(images/xit.gif) no-repeat;position:relative;top:3px}.edd_discount_remove:hover{background-position:-10px 0}#edd_checkout_cart br{display:none}#edd_checkout_cart a.edd-cart-saving-button{font-weight:400;text-decoration:none}#edd_checkout_form_wrap legend{display:block;font-size:120%;line-height:1;font-weight:700;width:100%;margin:0 0 21px;padding:0}#edd_checkout_form_wrap label{font-weight:700;display:block;position:relative;line-height:100%;font-size:95%;margin:0 0 5px}#edd_checkout_form_wrap label:after{display:block;height:0}#edd_checkout_form_wrap span.edd-description{color:#666;font-size:80%;display:block;margin:0 0 5px}#edd_checkout_form_wrap input.edd-input,#edd_checkout_form_wrap textarea.edd-input{display:inline-block;width:70%}#edd_checkout_form_wrap select.edd-select{display:block;width:60%}#edd_checkout_form_wrap select.edd-select.edd-select-small{display:inline;width:auto}#edd_checkout_form_wrap input.edd-input.error,#edd_checkout_form_wrap textarea.edd-input.error{border-color:#c4554e}#edd_checkout_form_wrap>p{margin:0 0 21px}#edd_checkout_form_wrap span.edd-required-indicator{color:#b94a48;display:inline}#edd_checkout_form_wrap input[type=text],#edd_checkout_form_wrap input[type=email],#edd_checkout_form_wrap input[type=password],#edd_checkout_form_wrap input[type=tel],#edd_checkout_form_wrap textarea{padding:4px 6px}#edd_checkout_form_wrap input[type=radio]{border:none;margin-right:5px}#edd_checkout_form_wrap input[type=checkbox]{display:inline-block;margin:0 5px 0 0}#edd_checkout_form_wrap input[type=checkbox]+label,#edd_checkout_form_wrap input[type=checkbox]+label:after{display:inline}#edd_checkout_form_wrap .edd-payment-icons{height:32px;display:block;margin:0 0 8px}#edd_checkout_form_wrap .edd-payment-icons img.payment-icon{max-height:32px;width:auto;margin:0 3px 0 0;float:left;background:0 0;padding:0;border:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#edd_checkout_form_wrap #edd-payment-mode-wrap label{display:inline-block;margin:0 20px 0 0}#edd_checkout_form_wrap #edd-payment-mode-wrap .edd-payment-mode-label{font-weight:700;display:inline-block;position:relative;margin-bottom:5px}#edd_checkout_form_wrap fieldset{border:1px solid #eee;padding:1.387em;margin:0 0 21px}#edd_checkout_form_wrap #edd_discount_code,#edd_checkout_form_wrap #edd_purchase_submit,#edd_checkout_form_wrap #edd_register_account_fields{padding:0;border:none}#edd_checkout_form_wrap fieldset fieldset{margin:0;border:none;padding:0}#edd_checkout_form_wrap #edd-login-account-wrap,#edd_checkout_form_wrap #edd-new-account-wrap,#edd_checkout_form_wrap #edd_final_total_wrap,#edd_checkout_form_wrap #edd_show_discount,#edd_checkout_form_wrap .edd-cart-adjustment{background:#fafafa;color:#666;padding:.5em 1.387em}#edd_checkout_form_wrap #edd-discount-code-wrap,#edd_checkout_form_wrap #edd_final_total_wrap,#edd_checkout_form_wrap #edd_show_discount{border:1px solid #eee}#edd_checkout_form_wrap .edd-cart-adjustment{padding:1.387em}#edd_checkout_form_wrap .edd-cart-adjustment input.edd-input,#edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit{display:inline-block}#edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit{padding:3px 12px;margin-bottom:2px}#edd_checkout_form_wrap #edd_purchase_final_total p,#edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_login_password,#edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_register_password{margin:0}#edd_checkout_form_wrap #edd-discount-error-wrap{width:100%;display:inline-block;margin:1em 0 0}#edd_checkout_form_wrap #edd-login-account-wrap,#edd_checkout_form_wrap #edd-new-account-wrap{margin:-1.387em -1.387em 21px;border-left:none;border-right:none;border-top:none}#edd_checkout_form_wrap #edd_payment_mode_select,#edd_checkout_form_wrap fieldset#edd_register_fields #edd_checkout_user_info{margin-bottom:21px}#edd_checkout_form_wrap fieldset#edd_register_account_fields legend{padding-top:11px}#edd_checkout_form_wrap fieldset#edd_cc_fields{border:1px solid #f0f0f0;background:#f9f9f9;position:relative}#edd_checkout_form_wrap fieldset#edd_cc_fields legend{border:none;padding:0}#edd_checkout_form_wrap fieldset p:last-child{margin-bottom:0}#edd_checkout_form_wrap fieldset#edd_cc_fields #edd-card-number-wrap{margin-top:5px}#edd_checkout_form_wrap #edd_purchase_final_total{margin:21px 0}#edd_secure_site_wrapper{padding:4px 4px 4px 0;font-weight:700}#edd_checkout_form_wrap input.edd-input.card-number.valid{background-image:url(images/tick.png);background-repeat:no-repeat;background-position:98% 50%}#edd_checkout_form_wrap span.exp-divider{display:inline}#edd_checkout_form_wrap span.card-type{position:absolute;top:-2px;right:0;width:43px;height:32px;background-size:43px 32px!important}#edd_checkout_form_wrap span.card-type.off{display:none}#edd_checkout_form_wrap span.card-type.visa{background:url(images/icons/visa.png) no-repeat}#edd_checkout_form_wrap span.card-type.mastercard{background:url(images/icons/mastercard.png) no-repeat}#edd_checkout_form_wrap span.card-type.discover{background:url(images/icons/discover.png) no-repeat}#edd_checkout_form_wrap span.card-type.amex{background:url(images/icons/americanexpress.png) no-repeat}#edd_checkout_form_wrap .edd-cart-ajax{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.edd-amazon-profile-wrapper{font-size:12px}.edd-amazon-profile-name{font-weight:600}.edd-amazon-logout{font-size:10px;line-height:12px}#edd-amazon-address-box,#edd-amazon-wallet-box{height:228px;width:350px}#edd-amazon-address-box{margin-bottom:15px}@media only screen and (min-width:768px){#edd-amazon-address-box,#edd-amazon-wallet-box{width:100%;height:228px}}.edd_purchase_submit_wrapper{position:relative}.edd_purchase_submit_wrapper a.edd-add-to-cart{text-decoration:none;display:none;position:relative;overflow:hidden}.edd_purchase_submit_wrapper a.edd-add-to-cart.edd-has-js{display:inline-block}.edd_purchase_submit_wrapper .edd-cart-ajax{display:none;position:relative;left:-35px}.edd-submit.button.edd-ajax-loading{padding-right:30px}.edd-add-to-cart .edd-add-to-cart-label{opacity:1;filter:alpha(opacity=100)}.edd-loading,.edd-loading:after{border-radius:50%;display:block;width:1.5em;height:1.5em}.edd-loading{-webkit-animation:edd-spinning 1.1s infinite linear;animation:edd-spinning 1.1s infinite linear;border-top:.2em solid rgba(255,255,255,.2);border-right:.2em solid rgba(255,255,255,.2);border-bottom:.2em solid rgba(255,255,255,.2);border-left:.2em solid #fff;font-size:.75em;position:absolute;left:calc(50% - .75em);top:calc(50% - .75em);opacity:0;filter:alpha(opacity=0);-ms-transform:translateZ(0);transform:translateZ(0)}.edd-discount-loader.edd-loading,.edd-loading-ajax.edd-loading,a.edd-add-to-cart.white .edd-loading{border-top-color:rgba(0,0,0,.2);border-right-color:rgba(0,0,0,.2);border-bottom-color:rgba(0,0,0,.2);border-left-color:#000}.edd-loading-ajax.edd-loading{display:inline-block;position:relative;top:0;left:.25em;vertical-align:middle;opacity:1}#edd_checkout_form_wrap .edd-cart-adjustment .edd-apply-discount.edd-submit{display:inline-block}.edd-discount-loader.edd-loading{display:inline-block;position:relative;left:auto;vertical-align:middle;width:1.25em;height:1.25em}@-webkit-keyframes edd-spinning{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes edd-spinning{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.edd-loading,a.edd-add-to-cart .edd-add-to-cart-label{-webkit-transition:.1s opacity!important;-moz-transition:.1s opacity!important;-ms-transition:.1s opacity!important;-o-transition:.1s opacity!important;transition:.1s opacity!important}.edd-add-to-cart[data-edd-loading] .edd-add-to-cart-label{opacity:0;filter:alpha(opacity=0)}.edd-add-to-cart[data-edd-loading] .edd-loading,.edd-discount-loader.edd-loading{opacity:1;filter:alpha(opacity=100)}.edd-cart-added-alert{color:#567622;display:block;position:absolute}.edd-cart-ajax,body.edd_receipt_page:before{position:relative}.edd_form input.edd-input.required,.edd_form select.edd-select.required{color:#000}body.edd_receipt_page{background-color:#fff;color:#141412;margin:0;font-family:Helvetica,sans-serif;font-size:12px}#edd_user_history .edd_purchase_status.cancelled,#edd_user_history .edd_purchase_status.failed,#edd_user_history .edd_purchase_status.pending,#edd_user_history .edd_purchase_status.revoked,table#edd_purchase_receipt .edd_receipt_payment_status.cancelled,table#edd_purchase_receipt .edd_receipt_payment_status.failed,table#edd_purchase_receipt .edd_receipt_payment_status.pending,table#edd_purchase_receipt .edd_receipt_payment_status.revoked{color:#f73f2e}body.edd_receipt_page #edd_receipt_wrapper{width:660px;margin:0 auto;padding:50px 0}body.edd_receipt_page table{display:table;width:100%;border-bottom:1px solid #ededed;border-collapse:collapse;border-spacing:0;font-size:14px;line-height:2;margin:0 0 20px}body.edd_receipt_page td,body.edd_receipt_page th{display:table-cell;text-align:left;border-top:1px solid #ededed;padding:6px 10px;font-weight:400}body.edd_receipt_page th{font-weight:700;text-transform:uppercase}body.edd_receipt_page h3{font-size:22px;margin:40px 0 5px;clear:both;display:block;font-weight:700}body.edd_receipt_page li{list-style:none}table#edd_purchase_receipt,table#edd_purchase_receipt_products{width:100%}table#edd_purchase_receipt td,table#edd_purchase_receipt th,table#edd_purchase_receipt_products td,table#edd_purchase_receipt_products th{text-align:left}table#edd_purchase_receipt_products li{list-style:none;margin:0 0 8px 10px}table#edd_purchase_receipt ul,table#edd_purchase_receipt_products ul.edd_purchase_receipt_files{margin:0;padding:0}table#edd_purchase_receipt li.edd_download_file{list-style:none;margin:0 0 8px}table#edd_purchase_receipt_products .edd_purchase_receipt_product_notes{font-style:italic}table#edd_purchase_receipt_products .edd_purchase_receipt_product_name{font-weight:700}table#edd_purchase_receipt_products .edd_bundled_product_name{font-style:italic;font-weight:700}#edd_user_history{text-align:left;width:100%;border-top:1px solid #f0f0f0;border-bottom:none}#edd_user_history td,#edd_user_history th{text-align:left;padding:3px 5px;border-bottom:1px solid #f0f0f0;border-top:none}#edd_user_history th{font-weight:700;background:#f5f5f5}#edd_user_history td{line-height:25px;vertical-align:middle}#edd_login_form legend,#edd_register_form legend{font-size:120%;margin-bottom:1em}#edd_login_form fieldset,#edd_register_form fieldset{border:none}#edd_login_form .edd-input,#edd_register_form .edd-input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#edd_profile_editor_form p{margin-bottom:8px}#edd_profile_editor_form label{display:inline-block}#edd_profile_editor_form .edd-profile-emails{list-style-type:none;display:inline-table;margin-left:0;margin-bottom:0}#edd_profile_editor_form .edd-profile-email{width:auto}#edd_profile_editor_form .edd-profile-email .actions{display:none}#edd_profile_editor_form .edd-profile-email:hover>span{display:inline-block}.edd_added_to_cart_alert{padding:5px;font-size:14px;border:1px solid #046a9e;background:#9ecce2;color:#333;margin:8px 0}.edd_added_to_cart_alert a.edd_alert_checkout_link{color:#000!important}input.edd_submit_plain{background:0 0!important;border:none!important;padding:0!important;display:inline}.single-download .edd_download_purchase_form{margin-bottom:1.387em}.edd_download_purchase_form .edd_download_quantity_wrapper{margin:0 0 .5em}.edd_download_purchase_form .edd_download_quantity_wrapper .edd-item-quantity{width:75px}.edd_download_purchase_form .edd_price_options{margin:0 0 15px}.edd_download_purchase_form .edd_price_options ul{margin:0;padding:0;list-style:none}.edd_download_purchase_form .edd_price_options li{display:block;padding:0;margin:0}.edd_download_purchase_form .edd_price_options span{display:inline;padding:0;margin:0}.edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper{padding-left:18px}.edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper *{font-size:80%}.edd_download_purchase_form .edd_price_options input.edd-item-quantity{display:inline;width:50px;max-width:90%}#edd-purchase-button,.edd-submit,input[type=submit].edd-submit{display:inline-block;padding:6px 12px;margin:0;font-size:14px;font-weight:400;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.edd-submit.button:focus,input[type=submit].edd-submit:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.edd-submit.button:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.edd-submit.plain{padding:0;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.edd-submit.button,.edd-submit.button.gray,.edd-submit.button:visited{color:#333;background:#f0f0f0;border-color:#ccc}.edd-submit.button.gray:active,.edd-submit.button.gray:focus,.edd-submit.button.gray:hover,.edd-submit.button:active,.edd-submit.button:focus,.edd-submit.button:hover{color:#333;background:#ebebeb;border-color:#adadad}.edd-submit.button.gray:active{background-image:none}.edd-submit.button.white{color:#333;background:#fff;border-color:#ccc}.edd-submit.button.white:active,.edd-submit.button.white:focus,.edd-submit.button.white:hover{color:#333;background:#ebebeb;border-color:#adadad}.edd-submit.button.white:active{background-image:none}.edd-submit.button.blue{color:#fff;background:#428bca;border-color:#357ebd}.edd-submit.button.blue.active,.edd-submit.button.blue:focus,.edd-submit.button.blue:hover{color:#fff;background:#3276b1;border-color:#285e8e}.edd-submit.button.blue.active{background-image:none}.edd-submit.button.red{color:#fff;background:#d9534f;border-color:#d43f3a}.edd-submit.button.red:active,.edd-submit.button.red:focus,.edd-submit.button.red:hover{color:#fff;background:#d2322d;border-color:#ac2925}.edd-submit.button.red:active{background-image:none}.edd-submit.button.green{color:#fff;background:#5cb85c;border-color:#4cae4c}.edd-submit.button.green:active,.edd-submit.button.green:focus,.edd-submit.button.green:hover{color:#fff;background:#47a447;border-color:#398439}.edd-submit.button.green:active{background-image:none}.edd-submit.button.yellow{color:#fff;background:#f0ad4e;border-color:#eea236}.edd-submit.button.yellow:active,.edd-submit.button.yellow:focus,.edd-submit.button.yellow:hover{color:#fff;background:#ed9c28;border-color:#d58512}.edd-submit.button.yellow:active{background-image:none}.edd-submit.button.orange{color:#fff;background:#ed9c28;border-color:#e3921e}.edd-submit.button.orange:active,.edd-submit.button.orange:focus,.edd-submit.button.orange:hover{color:#fff;background:#e59016;border-color:#d58512}.edd-submit.button.orange:active{background-image:none}.edd-submit.button.dark-gray{color:#fff;background:#363636;border-color:#222}.edd-submit.button.dark-gray:active,.edd-submit.button.dark-gray:focus,.edd-submit.button.dark-gray:hover{color:#fff;background:#333;border-color:#adadad}.edd-submit.button.dark-gray:active{background-image:none}.edd_downloads_list:after{content:"";display:table;clear:both}.edd_download{float:left}.edd_download_columns_1 .edd_download{width:100%}.edd_download_columns_2 .edd_download{width:50%}.edd_download_columns_0 .edd_download,.edd_download_columns_3 .edd_download{width:33%}.edd_download_columns_4 .edd_download{width:25%}.edd_download_columns_5 .edd_download{width:20%}.edd_download_columns_6 .edd_download{width:16.6%}.edd_download_inner{padding:0 8px 8px;margin:0 0 10px}.edd_download_columns_2 .edd_download:nth-child(2n+1),.edd_download_columns_3 .edd_download:nth-child(3n+1),.edd_download_columns_4 .edd_download:nth-child(4n+1),.edd_download_columns_5 .edd_download:nth-child(5n+1),.edd_download_columns_6 .edd_download:nth-child(6n+1){clear:left}.edd_download_image{max-width:100%}.edd_download .edd_price{margin-bottom:10px}#edd_download_pagination{clear:both}.edd-hide-on-empty.cart-empty{display:none}edd-hide-on-empty.cart-not.empty{display:block}.edd-cart-ajax{margin:0 8px 0 4px;top:2px;background:0 0;border:none;padding:0}.edd-cart-number-of-items{font-style:italic;color:grey}.edd-cart-meta.edd_subtotal{font-weight:700;font-style:italic}.edd-cart-meta.edd_cart_tax{font-size:1em;font-style:italic}.edd-cart-meta.edd_cart_tax::before{font-style:normal}.edd-cart-meta.edd_total{font-weight:700}.edd-cart-meta{padding:2px 5px}.edd-cart-meta.edd_subtotal,.edd-cart-meta.edd_total{background-color:#f9f9f9}.edd_errors:not(.edd-alert){-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #E6DB55;margin:0 0 21px;background:#FFFFE0;color:#333}.edd_error{padding:10px}p.edd_error{margin:0!important}.edd_success:not(.edd-alert){-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #b3ce89;margin:20px 0;background:#d5eab3;color:#567622;padding:6px 8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.edd-alert{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;margin-bottom:20px;padding:10px;border:1px solid transparent;vertical-align:middle}.edd-alert p{padding:0}.edd-alert p:not(:last-child){margin-bottom:5px}.edd-alert p:last-child{margin-bottom:0}.edd-alert-error{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.edd-alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.edd-alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.edd-alert-warn{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}
|
1 |
+
@charset "UTF-8";#edd_checkout_form_wrap label:after,.edd_clearfix:after{visibility:hidden;float:none;text-indent:-9999px;content:".";clear:both}.edd-icon{display:inline-block;fill:currentColor;position:relative;top:-.0625em;vertical-align:middle;width:1em;height:1em}.edd-icon-lock{top:-.125rem}.edd-icon-spin{display:inline-block;-moz-animation:edd-icon-spin 2s infinite linear;-o-animation:edd-icon-spin 2s infinite linear;-webkit-animation:edd-icon-spin 2s infinite linear;animation:edd-icon-spin 2s infinite linear}@-moz-keyframes edd-icon-spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes edd-icon-spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes edd-icon-spin{0%{-o-transform:rotate(0)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes edd-icon-spin{0%{-ms-transform:rotate(0)}100%{-ms-transform:rotate(359deg)}}@keyframes edd-icon-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.edd_clearfix:after{display:block}#edd_checkout_cart{text-align:left;width:100%;border:none;margin:0 0 21px;table-layout:auto}#edd_checkout_cart td,#edd_checkout_cart th{text-align:left;border:1px solid #eee;color:#666;padding:.5em 1.387em}#edd_checkout_cart .edd_cart_header_row th{background:#fafafa;padding:1.387em}#edd_checkout_cart .edd_cart_discount_row th,#edd_checkout_cart .edd_cart_tax_row th{background:0 0}#edd_checkout_cart th{font-weight:700}#edd_checkout_cart td{line-height:25px;vertical-align:middle;background:#fff}#edd_checkout_cart td.edd_cart_actions,#edd_checkout_cart td:last-child,#edd_checkout_cart th.edd_cart_actions,#edd_checkout_cart th.edd_cart_total,#edd_checkout_cart th:last-child{text-align:right}#edd_checkout_cart td img{float:left;margin:0 8px 0 0;background:0 0;padding:0;border:none}#edd_checkout_cart input.edd-item-quantity{width:3em;padding:2px}#edd_checkout_cart .edd_discount{display:inline-block;margin-left:5px}.edd_discount_remove{display:inline-block;width:10px;height:11px;background:url(images/xit.gif) no-repeat;position:relative;top:3px}.edd_discount_remove:hover{background-position:-10px 0}#edd_checkout_cart br{display:none}#edd_checkout_cart a.edd-cart-saving-button{font-weight:400;text-decoration:none}#edd_checkout_form_wrap legend{display:block;font-size:120%;line-height:1;font-weight:700;width:100%;margin:0 0 21px;padding:0}#edd_checkout_form_wrap label{font-weight:700;display:block;position:relative;line-height:100%;font-size:95%;margin:0 0 5px}#edd_checkout_form_wrap label:after{display:block;height:0}#edd_checkout_form_wrap span.edd-description{color:#666;font-size:80%;display:block;margin:0 0 5px}#edd_checkout_form_wrap input.edd-input,#edd_checkout_form_wrap textarea.edd-input{display:inline-block;width:70%}#edd_checkout_form_wrap select.edd-select{display:block;width:60%}#edd_checkout_form_wrap select.edd-select.edd-select-small{display:inline;width:auto}#edd_checkout_form_wrap input.edd-input.error,#edd_checkout_form_wrap textarea.edd-input.error{border-color:#c4554e}#edd_checkout_form_wrap>p{margin:0 0 21px}#edd_checkout_form_wrap span.edd-required-indicator{color:#b94a48;display:inline}#edd_checkout_form_wrap input[type=text],#edd_checkout_form_wrap input[type=email],#edd_checkout_form_wrap input[type=password],#edd_checkout_form_wrap input[type=tel],#edd_checkout_form_wrap textarea{padding:4px 6px}#edd_checkout_form_wrap input[type=radio]{border:none;margin-right:5px}#edd_checkout_form_wrap input[type=checkbox]{display:inline-block;margin:0 5px 0 0}#edd_checkout_form_wrap input[type=checkbox]+label,#edd_checkout_form_wrap input[type=checkbox]+label:after{display:inline}#edd_checkout_form_wrap .edd-payment-icons{height:32px;display:block;margin:0 0 8px}#edd_checkout_form_wrap .edd-payment-icons img.payment-icon{max-height:32px;width:auto;margin:0 3px 0 0;float:left;background:0 0;padding:0;border:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#edd_checkout_form_wrap #edd-payment-mode-wrap label{display:inline-block;margin:0 20px 0 0}#edd_checkout_form_wrap #edd-payment-mode-wrap .edd-payment-mode-label{font-weight:700;display:inline-block;position:relative;margin-bottom:5px}#edd_checkout_form_wrap fieldset{border:1px solid #eee;padding:1.387em;margin:0 0 21px}#edd_checkout_form_wrap #edd_discount_code,#edd_checkout_form_wrap #edd_purchase_submit,#edd_checkout_form_wrap #edd_register_account_fields{padding:0;border:none}#edd_checkout_form_wrap fieldset fieldset{margin:0;border:none;padding:0}#edd_checkout_form_wrap #edd-login-account-wrap,#edd_checkout_form_wrap #edd-new-account-wrap,#edd_checkout_form_wrap #edd_final_total_wrap,#edd_checkout_form_wrap #edd_show_discount,#edd_checkout_form_wrap .edd-cart-adjustment{background:#fafafa;color:#666;padding:.5em 1.387em}#edd_checkout_form_wrap #edd-discount-code-wrap,#edd_checkout_form_wrap #edd_final_total_wrap,#edd_checkout_form_wrap #edd_show_discount{border:1px solid #eee}#edd_checkout_form_wrap .edd-cart-adjustment{padding:1.387em}#edd_checkout_form_wrap .edd-cart-adjustment input.edd-input,#edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit{display:inline-block}#edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit{padding:3px 12px;margin-bottom:2px}#edd_checkout_form_wrap #edd_purchase_final_total p,#edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_login_password,#edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_register_password{margin:0}#edd_checkout_form_wrap #edd-discount-error-wrap{width:100%;display:inline-block;margin:1em 0 0}#edd_checkout_form_wrap #edd-login-account-wrap,#edd_checkout_form_wrap #edd-new-account-wrap{margin:-1.387em -1.387em 21px;border-left:none;border-right:none;border-top:none}#edd_checkout_form_wrap #edd_payment_mode_select,#edd_checkout_form_wrap fieldset#edd_register_fields #edd_checkout_user_info{margin-bottom:21px}#edd_checkout_form_wrap fieldset#edd_register_account_fields legend{padding-top:11px}#edd_checkout_form_wrap fieldset#edd_cc_fields{border:1px solid #f0f0f0;background:#f9f9f9;position:relative}#edd_checkout_form_wrap fieldset#edd_cc_fields legend{border:none;padding:0}#edd_checkout_form_wrap fieldset p:last-child{margin-bottom:0}#edd_checkout_form_wrap fieldset#edd_cc_fields #edd-card-number-wrap{margin-top:5px}#edd_checkout_form_wrap #edd_purchase_final_total{margin:21px 0}#edd_secure_site_wrapper{padding:4px 4px 4px 0;font-weight:700}#edd_checkout_form_wrap input.edd-input.card-number.valid{background-image:url(images/tick.png);background-repeat:no-repeat;background-position:98% 50%}#edd_checkout_form_wrap span.exp-divider{display:inline}#edd_checkout_form_wrap span.card-type{position:absolute;top:-2px;right:0;width:43px;height:32px;background-size:43px 32px!important}#edd_checkout_form_wrap span.card-type.off{display:none}#edd_checkout_form_wrap span.card-type.visa{background:url(images/icons/visa.png) no-repeat}#edd_checkout_form_wrap span.card-type.mastercard{background:url(images/icons/mastercard.png) no-repeat}#edd_checkout_form_wrap span.card-type.discover{background:url(images/icons/discover.png) no-repeat}#edd_checkout_form_wrap span.card-type.amex{background:url(images/icons/americanexpress.png) no-repeat}#edd_checkout_form_wrap .edd-cart-ajax{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.edd-amazon-profile-wrapper{font-size:12px}.edd-amazon-profile-name{font-weight:600}.edd-amazon-logout{font-size:10px;line-height:12px}.edd-amazon-logout a{cursor:pointer}#edd-amazon-address-box,#edd-amazon-wallet-box{height:228px;width:350px}#edd-amazon-address-box{margin-bottom:15px}@media only screen and (min-width:768px){#edd-amazon-address-box,#edd-amazon-wallet-box{width:100%;height:228px}}.edd_purchase_submit_wrapper{position:relative}.edd_purchase_submit_wrapper a.edd-add-to-cart{text-decoration:none;display:none;position:relative;overflow:hidden}.edd_purchase_submit_wrapper a.edd-add-to-cart.edd-has-js{display:inline-block}.edd_purchase_submit_wrapper .edd-cart-ajax{display:none;position:relative;left:-35px}.edd-submit.button.edd-ajax-loading{padding-right:30px}.edd-add-to-cart .edd-add-to-cart-label{opacity:1;filter:alpha(opacity=100)}.edd-loading,.edd-loading:after{border-radius:50%;display:block;width:1.5em;height:1.5em}.edd-loading{-webkit-animation:edd-spinning 1.1s infinite linear;animation:edd-spinning 1.1s infinite linear;border-top:.2em solid rgba(255,255,255,.2);border-right:.2em solid rgba(255,255,255,.2);border-bottom:.2em solid rgba(255,255,255,.2);border-left:.2em solid #fff;font-size:.75em;position:absolute;left:calc(50% - .75em);top:calc(50% - .75em);opacity:0;filter:alpha(opacity=0);-ms-transform:translateZ(0);transform:translateZ(0)}.edd-discount-loader.edd-loading,.edd-loading-ajax.edd-loading,a.edd-add-to-cart.white .edd-loading{border-top-color:rgba(0,0,0,.2);border-right-color:rgba(0,0,0,.2);border-bottom-color:rgba(0,0,0,.2);border-left-color:#000}.edd-loading-ajax.edd-loading{display:inline-block;position:relative;top:0;left:.25em;vertical-align:middle;opacity:1}#edd_checkout_form_wrap .edd-cart-adjustment .edd-apply-discount.edd-submit{display:inline-block}.edd-discount-loader.edd-loading{display:inline-block;position:relative;left:auto;vertical-align:middle;width:1.25em;height:1.25em}@-webkit-keyframes edd-spinning{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes edd-spinning{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.edd-loading,a.edd-add-to-cart .edd-add-to-cart-label{-webkit-transition:.1s opacity!important;-moz-transition:.1s opacity!important;-ms-transition:.1s opacity!important;-o-transition:.1s opacity!important;transition:.1s opacity!important}.edd-add-to-cart[data-edd-loading] .edd-add-to-cart-label{opacity:0;filter:alpha(opacity=0)}.edd-add-to-cart[data-edd-loading] .edd-loading,.edd-discount-loader.edd-loading{opacity:1;filter:alpha(opacity=100)}.edd-cart-added-alert{color:#567622;display:block;position:absolute}.edd-cart-ajax,body.edd_receipt_page:before{position:relative}.edd_form input.edd-input.required,.edd_form select.edd-select.required{color:#000}body.edd_receipt_page{background-color:#fff;color:#141412;margin:0;font-family:Helvetica,sans-serif;font-size:12px}#edd_user_history .edd_purchase_status.cancelled,#edd_user_history .edd_purchase_status.failed,#edd_user_history .edd_purchase_status.pending,#edd_user_history .edd_purchase_status.revoked,table#edd_purchase_receipt .edd_receipt_payment_status.cancelled,table#edd_purchase_receipt .edd_receipt_payment_status.failed,table#edd_purchase_receipt .edd_receipt_payment_status.pending,table#edd_purchase_receipt .edd_receipt_payment_status.revoked{color:#f73f2e}body.edd_receipt_page #edd_receipt_wrapper{width:660px;margin:0 auto;padding:50px 0}body.edd_receipt_page table{display:table;width:100%;border-bottom:1px solid #ededed;border-collapse:collapse;border-spacing:0;font-size:14px;line-height:2;margin:0 0 20px}body.edd_receipt_page td,body.edd_receipt_page th{display:table-cell;text-align:left;border-top:1px solid #ededed;padding:6px 10px;font-weight:400}body.edd_receipt_page th{font-weight:700;text-transform:uppercase}body.edd_receipt_page h3{font-size:22px;margin:40px 0 5px;clear:both;display:block;font-weight:700}body.edd_receipt_page li{list-style:none}table#edd_purchase_receipt,table#edd_purchase_receipt_products{width:100%}table#edd_purchase_receipt td,table#edd_purchase_receipt th,table#edd_purchase_receipt_products td,table#edd_purchase_receipt_products th{text-align:left}table#edd_purchase_receipt_products li{list-style:none;margin:0 0 8px 10px}table#edd_purchase_receipt ul,table#edd_purchase_receipt_products ul.edd_purchase_receipt_files{margin:0;padding:0}table#edd_purchase_receipt li.edd_download_file{list-style:none;margin:0 0 8px}table#edd_purchase_receipt_products .edd_purchase_receipt_product_notes{font-style:italic}table#edd_purchase_receipt_products .edd_purchase_receipt_product_name{font-weight:700}table#edd_purchase_receipt_products .edd_bundled_product_name{font-style:italic;font-weight:700}#edd_user_history{text-align:left;width:100%;border-top:1px solid #f0f0f0;border-bottom:none}#edd_user_history td,#edd_user_history th{text-align:left;padding:3px 5px;border-bottom:1px solid #f0f0f0;border-top:none}#edd_user_history th{font-weight:700;background:#f5f5f5}#edd_user_history td{line-height:25px;vertical-align:middle}#edd_login_form .edd-input,#edd_login_form label,#edd_register_form .edd-input,#edd_register_form label{display:inline-block;width:200px}#edd_profile_editor_form p{margin-bottom:8px}#edd_profile_editor_form label{display:inline-block}#edd_profile_editor_form .edd-profile-emails{list-style-type:none;display:inline-table;margin-left:0;margin-bottom:0}#edd_profile_editor_form .edd-profile-email{width:auto}#edd_profile_editor_form .edd-profile-email .actions{display:none}#edd_profile_editor_form .edd-profile-email:hover>span{display:inline-block}.edd_added_to_cart_alert{padding:5px;font-size:14px;border:1px solid #046a9e;background:#9ecce2;color:#333;margin:8px 0}.edd_added_to_cart_alert a.edd_alert_checkout_link{color:#000!important}input.edd_submit_plain{background:0 0!important;border:none!important;padding:0!important;display:inline;cursor:pointer}.single-download .edd_download_purchase_form{margin-bottom:1.387em}.edd_download_purchase_form .edd_download_quantity_wrapper{margin:0 0 .5em}.edd_download_purchase_form .edd_download_quantity_wrapper .edd-item-quantity{width:75px}.edd_download_purchase_form .edd_price_options{margin:0 0 15px}.edd_download_purchase_form .edd_price_options ul{margin:0;padding:0;list-style:none}.edd_download_purchase_form .edd_price_options li{display:block;padding:0;margin:0}.edd_download_purchase_form .edd_price_options span{display:inline;padding:0;margin:0}.edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper{padding-left:18px}.edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper *{font-size:80%}.edd_download_purchase_form .edd_price_options input.edd-item-quantity{display:inline;width:50px;max-width:90%}#edd-purchase-button,.edd-submit,input[type=submit].edd-submit{display:inline-block;padding:6px 12px;margin:0;font-size:14px;font-weight:400;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.edd-submit.button:focus,input[type=submit].edd-submit:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.edd-submit.button:focus,.edd-submit.button:hover,input[type=submit].edd-submit:focus,input[type=submit].edd-submit:hover{color:#333;text-decoration:none}.edd-submit.button:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.edd-submit.plain{padding:0}.edd-submit.button,.edd-submit.button.gray,.edd-submit.button:visited{color:#333;background:#f0f0f0;border-color:#ccc}.edd-submit.button.gray:active,.edd-submit.button.gray:focus,.edd-submit.button.gray:hover,.edd-submit.button:active,.edd-submit.button:focus,.edd-submit.button:hover{color:#333;background:#ebebeb;border-color:#adadad}.edd-submit.button.gray:active{background-image:none}.edd-submit.button.white{color:#333;background:#fff;border-color:#ccc}.edd-submit.button.white:active,.edd-submit.button.white:focus,.edd-submit.button.white:hover{color:#333;background:#ebebeb;border-color:#adadad}.edd-submit.button.white:active{background-image:none}.edd-submit.button.blue{color:#fff;background:#428bca;border-color:#357ebd}.edd-submit.button.blue.active,.edd-submit.button.blue:focus,.edd-submit.button.blue:hover{color:#fff;background:#3276b1;border-color:#285e8e}.edd-submit.button.blue.active{background-image:none}.edd-submit.button.red{color:#fff;background:#d9534f;border-color:#d43f3a}.edd-submit.button.red:active,.edd-submit.button.red:focus,.edd-submit.button.red:hover{color:#fff;background:#d2322d;border-color:#ac2925}.edd-submit.button.red:active{background-image:none}.edd-submit.button.green{color:#fff;background:#5cb85c;border-color:#4cae4c}.edd-submit.button.green:active,.edd-submit.button.green:focus,.edd-submit.button.green:hover{color:#fff;background:#47a447;border-color:#398439}.edd-submit.button.green:active{background-image:none}.edd-submit.button.yellow{color:#fff;background:#f0ad4e;border-color:#eea236}.edd-submit.button.yellow:active,.edd-submit.button.yellow:focus,.edd-submit.button.yellow:hover{color:#fff;background:#ed9c28;border-color:#d58512}.edd-submit.button.yellow:active{background-image:none}.edd-submit.button.orange{color:#fff;background:#ed9c28;border-color:#e3921e}.edd-submit.button.orange:active,.edd-submit.button.orange:focus,.edd-submit.button.orange:hover{color:#fff;background:#e59016;border-color:#d58512}.edd-submit.button.orange:active{background-image:none}.edd-submit.button.dark-gray{color:#fff;background:#363636;border-color:#222}.edd-submit.button.dark-gray:active,.edd-submit.button.dark-gray:focus,.edd-submit.button.dark-gray:hover{color:#fff;background:#333;border-color:#adadad}.edd-submit.button.dark-gray:active{background-image:none}.edd_download{float:left}.edd_download_columns_1 .edd_download{width:100%}.edd_download_columns_2 .edd_download{width:50%}.edd_download_columns_0 .edd_download,.edd_download_columns_3 .edd_download{width:33%}.edd_download_columns_4 .edd_download{width:25%}.edd_download_columns_5 .edd_download{width:20%}.edd_download_columns_6 .edd_download{width:16.6%}.edd_download_inner{padding:0 8px 8px;margin:0 0 10px}.edd_download_image{max-width:100%}.edd_download .edd_price{margin-bottom:10px}.edd-hide-on-empty.cart-empty{display:none}edd-hide-on-empty.cart-not.empty{display:block}.edd-cart-ajax{margin:0 8px 0 4px;top:2px;background:0 0;border:none;padding:0}.edd-cart-number-of-items{font-style:italic;color:grey}.edd-cart-meta.edd_subtotal{font-weight:700;font-style:italic}.edd-cart-meta.edd_cart_tax{font-size:1em;font-style:italic}.edd-cart-meta.edd_cart_tax::before{font-style:normal}.edd-cart-meta.edd_total{font-weight:700}.edd-cart-meta{padding:2px 5px}.edd-cart-meta.edd_subtotal,.edd-cart-meta.edd_total{background-color:#f9f9f9}.edd_errors:not(.edd-alert){-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #E6DB55;margin:0 0 21px;background:#FFFFE0;color:#333}.edd_error{padding:10px}p.edd_error{margin:0!important}.edd_success:not(.edd-alert){-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #b3ce89;margin:20px 0;background:#d5eab3;color:#567622;padding:6px 8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.edd-alert{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;margin-bottom:20px;padding:10px;border:1px solid transparent;vertical-align:middle}.edd-alert p{padding:0}.edd-alert p:not(:last-child){margin-bottom:5px}.edd-alert p:last-child{margin-bottom:0}.edd-alert-error{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.edd-alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.edd-alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.edd-alert-warn{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}
|
templates/history-downloads.php
CHANGED
@@ -37,7 +37,7 @@ if ( $purchases ) :
|
|
37 |
<?php
|
38 |
$price_id = edd_get_cart_item_price_id( $download );
|
39 |
$download_files = edd_get_download_files( $download['id'], $price_id );
|
40 |
-
$name = $download['
|
41 |
|
42 |
// Retrieve and append the price option name
|
43 |
if ( ! empty( $price_id ) && 0 !== $price_id ) {
|
37 |
<?php
|
38 |
$price_id = edd_get_cart_item_price_id( $download );
|
39 |
$download_files = edd_get_download_files( $download['id'], $price_id );
|
40 |
+
$name = get_the_title( $download['id'] );
|
41 |
|
42 |
// Retrieve and append the price option name
|
43 |
if ( ! empty( $price_id ) && 0 !== $price_id ) {
|
templates/history-purchases.php
CHANGED
@@ -10,7 +10,7 @@ endif;
|
|
10 |
if ( is_user_logged_in() ):
|
11 |
$payments = edd_get_users_purchases( get_current_user_id(), 20, true, 'any' );
|
12 |
if ( $payments ) :
|
13 |
-
do_action( 'edd_before_purchase_history'
|
14 |
<table id="edd_user_history" class="edd-table">
|
15 |
<thead>
|
16 |
<tr class="edd_purchase_row">
|
@@ -56,7 +56,7 @@ if ( is_user_logged_in() ):
|
|
56 |
) );
|
57 |
?>
|
58 |
</div>
|
59 |
-
<?php do_action( 'edd_after_purchase_history'
|
60 |
<?php wp_reset_postdata(); ?>
|
61 |
<?php else : ?>
|
62 |
<p class="edd-no-purchases"><?php _e('You have not made any purchases','easy-digital-downloads' ); ?></p>
|
10 |
if ( is_user_logged_in() ):
|
11 |
$payments = edd_get_users_purchases( get_current_user_id(), 20, true, 'any' );
|
12 |
if ( $payments ) :
|
13 |
+
do_action( 'edd_before_purchase_history' ); ?>
|
14 |
<table id="edd_user_history" class="edd-table">
|
15 |
<thead>
|
16 |
<tr class="edd_purchase_row">
|
56 |
) );
|
57 |
?>
|
58 |
</div>
|
59 |
+
<?php do_action( 'edd_after_purchase_history' ); ?>
|
60 |
<?php wp_reset_postdata(); ?>
|
61 |
<?php else : ?>
|
62 |
<p class="edd-no-purchases"><?php _e('You have not made any purchases','easy-digital-downloads' ); ?></p>
|
templates/shortcode-download.php
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* A single download inside of the [downloads] shortcode.
|
4 |
-
*
|
5 |
-
* @since 2.8.0
|
6 |
-
*
|
7 |
-
* @package EDD
|
8 |
-
* @category Template
|
9 |
-
* @author Easy Digital Downloads
|
10 |
-
* @version 1.0.0
|
11 |
-
*/
|
12 |
-
|
13 |
-
global $edd_download_shortcode_item_atts, $edd_download_shortcode_item_i;
|
14 |
-
?>
|
15 |
-
|
16 |
-
<?php $schema = edd_add_schema_microdata() ? 'itemscope itemtype="http://schema.org/Product" ' : ''; ?>
|
17 |
-
|
18 |
-
<div <?php echo $schema; ?>class="<?php echo esc_attr( apply_filters( 'edd_download_class', 'edd_download', get_the_ID(), $edd_download_shortcode_item_atts, $edd_download_shortcode_item_i ) ); ?>" id="edd_download_<?php the_ID(); ?>">
|
19 |
-
|
20 |
-
<div class="<?php echo esc_attr( apply_filters( 'edd_download_inner_class', 'edd_download_inner', get_the_ID(), $edd_download_shortcode_item_atts, $edd_download_shortcode_item_i ) ); ?>">
|
21 |
-
|
22 |
-
<?php
|
23 |
-
do_action( 'edd_download_before' );
|
24 |
-
|
25 |
-
if ( 'false' !== $edd_download_shortcode_item_atts['thumbnails'] ) :
|
26 |
-
edd_get_template_part( 'shortcode', 'content-image' );
|
27 |
-
do_action( 'edd_download_after_thumbnail' );
|
28 |
-
endif;
|
29 |
-
|
30 |
-
edd_get_template_part( 'shortcode', 'content-title' );
|
31 |
-
|
32 |
-
do_action( 'edd_download_after_title' );
|
33 |
-
|
34 |
-
if ( 'yes' === $edd_download_shortcode_item_atts['excerpt'] && 'yes' !== $edd_download_shortcode_item_atts['full_content'] ) :
|
35 |
-
edd_get_template_part( 'shortcode', 'content-excerpt' );
|
36 |
-
do_action( 'edd_download_after_content' );
|
37 |
-
elseif ( 'yes' === $edd_download_shortcode_item_atts['full_content'] ) :
|
38 |
-
edd_get_template_part( 'shortcode', 'content-full' );
|
39 |
-
do_action( 'edd_download_after_content' );
|
40 |
-
endif;
|
41 |
-
|
42 |
-
if ( 'yes' === $edd_download_shortcode_item_atts['price'] ) :
|
43 |
-
edd_get_template_part( 'shortcode', 'content-price' );
|
44 |
-
do_action( 'edd_download_after_price' );
|
45 |
-
endif;
|
46 |
-
|
47 |
-
if ( 'yes' === $edd_download_shortcode_item_atts['buy_button'] ) :
|
48 |
-
edd_get_template_part( 'shortcode', 'content-cart-button' );
|
49 |
-
endif;
|
50 |
-
|
51 |
-
do_action( 'edd_download_after' );
|
52 |
-
?>
|
53 |
-
|
54 |
-
</div>
|
55 |
-
|
56 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
templates/shortcode-login.php
CHANGED
@@ -26,7 +26,7 @@ if ( ! is_user_logged_in() ) :
|
|
26 |
<input type="hidden" name="edd_redirect" value="<?php echo esc_url( $edd_login_redirect ); ?>"/>
|
27 |
<input type="hidden" name="edd_login_nonce" value="<?php echo wp_create_nonce( 'edd-login-nonce' ); ?>"/>
|
28 |
<input type="hidden" name="edd_action" value="user_login"/>
|
29 |
-
<input id="edd_login_submit" type="submit" class="edd-submit" value="<?php _e( 'Log In', 'easy-digital-downloads' ); ?>"/>
|
30 |
</p>
|
31 |
<p class="edd-lost-password">
|
32 |
<a href="<?php echo wp_lostpassword_url(); ?>">
|
@@ -37,7 +37,5 @@ if ( ! is_user_logged_in() ) :
|
|
37 |
</fieldset>
|
38 |
</form>
|
39 |
<?php else : ?>
|
40 |
-
|
41 |
-
<?php do_action( 'edd_login_form_logged_in' ); ?>
|
42 |
-
|
43 |
<?php endif; ?>
|
26 |
<input type="hidden" name="edd_redirect" value="<?php echo esc_url( $edd_login_redirect ); ?>"/>
|
27 |
<input type="hidden" name="edd_login_nonce" value="<?php echo wp_create_nonce( 'edd-login-nonce' ); ?>"/>
|
28 |
<input type="hidden" name="edd_action" value="user_login"/>
|
29 |
+
<input id="edd_login_submit" type="submit" class="edd_submit edd-submit" value="<?php _e( 'Log In', 'easy-digital-downloads' ); ?>"/>
|
30 |
</p>
|
31 |
<p class="edd-lost-password">
|
32 |
<a href="<?php echo wp_lostpassword_url(); ?>">
|
37 |
</fieldset>
|
38 |
</form>
|
39 |
<?php else : ?>
|
40 |
+
<p class="edd-logged-in"><?php _e( 'You are already logged in', 'easy-digital-downloads' ); ?></p>
|
|
|
|
|
41 |
<?php endif; ?>
|
templates/shortcode-profile-editor.php
CHANGED
@@ -11,7 +11,7 @@ if ( is_user_logged_in() ):
|
|
11 |
$display_name = $current_user->display_name;
|
12 |
$address = edd_get_customer_address( $user_id );
|
13 |
$states = edd_get_shop_states( $address['country'] );
|
14 |
-
$state = $address['state'];
|
15 |
|
16 |
if ( edd_is_cart_saved() ): ?>
|
17 |
<?php $restore_url = add_query_arg( array( 'edd_action' => 'restore_cart', 'edd_cart_token' => edd_get_cart_token() ), edd_get_checkout_uri() ); ?>
|
@@ -199,7 +199,7 @@ if ( is_user_logged_in() ):
|
|
199 |
<input name="edd_new_user_pass1" id="edd_new_user_pass1" class="password edd-input" type="password"/>
|
200 |
</p>
|
201 |
|
202 |
-
<p id="
|
203 |
<label for="edd_user_pass"><?php _e( 'Re-enter Password', 'easy-digital-downloads' ); ?></label>
|
204 |
<input name="edd_new_user_pass2" id="edd_new_user_pass2" class="password edd-input" type="password"/>
|
205 |
<?php do_action( 'edd_profile_editor_password' ); ?>
|
@@ -230,5 +230,6 @@ if ( is_user_logged_in() ):
|
|
230 |
|
231 |
<?php
|
232 |
else:
|
233 |
-
|
|
|
234 |
endif;
|
11 |
$display_name = $current_user->display_name;
|
12 |
$address = edd_get_customer_address( $user_id );
|
13 |
$states = edd_get_shop_states( $address['country'] );
|
14 |
+
$state = ( ! empty( $address['state'] ) ) ? $address['state'] : '';
|
15 |
|
16 |
if ( edd_is_cart_saved() ): ?>
|
17 |
<?php $restore_url = add_query_arg( array( 'edd_action' => 'restore_cart', 'edd_cart_token' => edd_get_cart_token() ), edd_get_checkout_uri() ); ?>
|
199 |
<input name="edd_new_user_pass1" id="edd_new_user_pass1" class="password edd-input" type="password"/>
|
200 |
</p>
|
201 |
|
202 |
+
<p id="edd_profile_billing_address_wrap">
|
203 |
<label for="edd_user_pass"><?php _e( 'Re-enter Password', 'easy-digital-downloads' ); ?></label>
|
204 |
<input name="edd_new_user_pass2" id="edd_new_user_pass2" class="password edd-input" type="password"/>
|
205 |
<?php do_action( 'edd_profile_editor_password' ); ?>
|
230 |
|
231 |
<?php
|
232 |
else:
|
233 |
+
echo '<p>' . __( 'You need to login to edit your profile.', 'easy-digital-downloads' ) . '</p>';
|
234 |
+
echo edd_login_form();
|
235 |
endif;
|
templates/shortcode-receipt.php
CHANGED
@@ -87,7 +87,7 @@ $status = edd_get_payment_status( $payment, true );
|
|
87 |
|
88 |
<?php if( edd_use_taxes() ) : ?>
|
89 |
<tr>
|
90 |
-
<td><strong><?php _e( 'Tax', 'easy-digital-downloads' );
|
91 |
<td><?php echo edd_payment_tax( $payment->ID ); ?></td>
|
92 |
</tr>
|
93 |
<?php endif; ?>
|
@@ -95,7 +95,7 @@ $status = edd_get_payment_status( $payment, true );
|
|
95 |
<?php if ( filter_var( $edd_receipt_args['price'], FILTER_VALIDATE_BOOLEAN ) ) : ?>
|
96 |
|
97 |
<tr>
|
98 |
-
<td><strong><?php _e( 'Subtotal', 'easy-digital-downloads' );
|
99 |
<td>
|
100 |
<?php echo edd_payment_subtotal( $payment->ID ); ?>
|
101 |
</td>
|
@@ -149,14 +149,12 @@ $status = edd_get_payment_status( $payment, true );
|
|
149 |
<div class="edd_purchase_receipt_product_name">
|
150 |
<?php echo esc_html( $item['name'] ); ?>
|
151 |
<?php if ( edd_has_variable_prices( $item['id'] ) && ! is_null( $price_id ) ) : ?>
|
152 |
-
<span class="edd_purchase_receipt_price_name"> – <?php echo
|
153 |
<?php endif; ?>
|
154 |
</div>
|
155 |
|
156 |
-
<?php
|
157 |
-
|
158 |
-
if ( $edd_receipt_args['notes'] && ! empty( $notes ) ) : ?>
|
159 |
-
<div class="edd_purchase_receipt_product_notes"><?php echo wp_kses_post( wpautop( $notes ) ); ?></div>
|
160 |
<?php endif; ?>
|
161 |
|
162 |
<?php
|
@@ -211,7 +209,7 @@ $status = edd_get_payment_status( $payment, true );
|
|
211 |
|
212 |
<?php
|
213 |
// Allow extensions to extend the product cell
|
214 |
-
do_action( 'edd_purchase_receipt_after_files', $item['id'], $payment->ID, $meta
|
215 |
?>
|
216 |
</td>
|
217 |
<?php if ( edd_use_skus() ) : ?>
|
87 |
|
88 |
<?php if( edd_use_taxes() ) : ?>
|
89 |
<tr>
|
90 |
+
<td><strong><?php _e( 'Tax', 'easy-digital-downloads' ); ?></strong></td>
|
91 |
<td><?php echo edd_payment_tax( $payment->ID ); ?></td>
|
92 |
</tr>
|
93 |
<?php endif; ?>
|
95 |
<?php if ( filter_var( $edd_receipt_args['price'], FILTER_VALIDATE_BOOLEAN ) ) : ?>
|
96 |
|
97 |
<tr>
|
98 |
+
<td><strong><?php _e( 'Subtotal', 'easy-digital-downloads' ); ?></strong></td>
|
99 |
<td>
|
100 |
<?php echo edd_payment_subtotal( $payment->ID ); ?>
|
101 |
</td>
|
149 |
<div class="edd_purchase_receipt_product_name">
|
150 |
<?php echo esc_html( $item['name'] ); ?>
|
151 |
<?php if ( edd_has_variable_prices( $item['id'] ) && ! is_null( $price_id ) ) : ?>
|
152 |
+
<span class="edd_purchase_receipt_price_name"> – <?php echo edd_get_price_option_name( $item['id'], $price_id, $payment->ID ); ?></span>
|
153 |
<?php endif; ?>
|
154 |
</div>
|
155 |
|
156 |
+
<?php if ( $edd_receipt_args['notes'] ) : ?>
|
157 |
+
<div class="edd_purchase_receipt_product_notes"><?php echo wpautop( edd_get_product_notes( $item['id'] ) ); ?></div>
|
|
|
|
|
158 |
<?php endif; ?>
|
159 |
|
160 |
<?php
|
209 |
|
210 |
<?php
|
211 |
// Allow extensions to extend the product cell
|
212 |
+
do_action( 'edd_purchase_receipt_after_files', $item['id'], $payment->ID, $meta );
|
213 |
?>
|
214 |
</td>
|
215 |
<?php if ( edd_use_skus() ) : ?>
|
templates/shortcode-register.php
CHANGED
@@ -6,8 +6,6 @@ global $edd_register_redirect;
|
|
6 |
|
7 |
do_action( 'edd_print_errors' ); ?>
|
8 |
|
9 |
-
<?php if ( ! is_user_logged_in() ) : ?>
|
10 |
-
|
11 |
<form id="edd_register_form" class="edd_form" action="" method="post">
|
12 |
<?php do_action( 'edd_register_form_fields_top' ); ?>
|
13 |
|
@@ -43,7 +41,7 @@ do_action( 'edd_print_errors' ); ?>
|
|
43 |
<input type="hidden" name="edd_honeypot" value="" />
|
44 |
<input type="hidden" name="edd_action" value="user_register" />
|
45 |
<input type="hidden" name="edd_redirect" value="<?php echo esc_url( $edd_register_redirect ); ?>"/>
|
46 |
-
<input class="
|
47 |
</p>
|
48 |
|
49 |
<?php do_action( 'edd_register_form_fields_after' ); ?>
|
@@ -51,9 +49,3 @@ do_action( 'edd_print_errors' ); ?>
|
|
51 |
|
52 |
<?php do_action( 'edd_register_form_fields_bottom' ); ?>
|
53 |
</form>
|
54 |
-
|
55 |
-
<?php else : ?>
|
56 |
-
|
57 |
-
<?php do_action( 'edd_register_form_logged_in' ); ?>
|
58 |
-
|
59 |
-
<?php endif; ?>
|
6 |
|
7 |
do_action( 'edd_print_errors' ); ?>
|
8 |
|
|
|
|
|
9 |
<form id="edd_register_form" class="edd_form" action="" method="post">
|
10 |
<?php do_action( 'edd_register_form_fields_top' ); ?>
|
11 |
|
41 |
<input type="hidden" name="edd_honeypot" value="" />
|
42 |
<input type="hidden" name="edd_action" value="user_register" />
|
43 |
<input type="hidden" name="edd_redirect" value="<?php echo esc_url( $edd_register_redirect ); ?>"/>
|
44 |
+
<input class="button" name="edd_register_submit" type="submit" value="<?php esc_attr_e( 'Register', 'easy-digital-downloads' ); ?>" />
|
45 |
</p>
|
46 |
|
47 |
<?php do_action( 'edd_register_form_fields_after' ); ?>
|
49 |
|
50 |
<?php do_action( 'edd_register_form_fields_bottom' ); ?>
|
51 |
</form>
|
|
|
|
|
|
|
|
|
|
|
|
templates/widget-cart-item.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<li class="edd-cart-item">
|
2 |
<span class="edd-cart-item-title">{item_title}</span>
|
3 |
-
<span class="edd-cart-item-separator">-</span
|
4 |
<a href="{remove_url}" data-cart-item="{cart_item_id}" data-download-id="{item_id}" data-action="edd_remove_from_cart" class="edd-remove-from-cart"><?php _e( 'remove', 'easy-digital-downloads' ); ?></a>
|
5 |
</li>
|
1 |
<li class="edd-cart-item">
|
2 |
<span class="edd-cart-item-title">{item_title}</span>
|
3 |
+
<span class="edd-cart-item-separator">-</span><span class="edd-cart-item-quantity"> {item_quantity} @ </span><span class="edd-cart-item-price"> {item_amount} </span><span class="edd-cart-item-separator">-</span>
|
4 |
<a href="{remove_url}" data-cart-item="{cart_item_id}" data-download-id="{item_id}" data-action="edd_remove_from_cart" class="edd-remove-from-cart"><?php _e( 'remove', 'easy-digital-downloads' ); ?></a>
|
5 |
</li>
|