Version Description
Download this release
Release Info
Developer | cklosows |
Plugin | Easy Digital Downloads |
Version | 2.8.13 |
Comparing to | |
See all releases |
Code changes from version 2.8.12 to 2.8.13
- easy-digital-downloads.php +3 -3
- includes/admin/customers/customer-actions.php +4 -4
- includes/cart/class-edd-cart.php +1 -0
- includes/gateways/paypal-standard.php +156 -5
- includes/payments/class-payments-query.php +1 -7
- includes/shortcodes.php +1 -1
- includes/user-functions.php +7 -5
- languages/easy-digital-downloads.pot +120 -94
- readme.txt +13 -3
- templates/shortcode-receipt.php +2 -2
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.8.
|
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.8.
|
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.8.
|
210 |
}
|
211 |
|
212 |
// Plugin Folder Path.
|
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.8.13
|
9 |
* Text Domain: easy-digital-downloads
|
10 |
* Domain Path: languages
|
11 |
*
|
25 |
* @package EDD
|
26 |
* @category Core
|
27 |
* @author Pippin Williamson
|
28 |
+
* @version 2.8.13
|
29 |
*/
|
30 |
|
31 |
// Exit if accessed directly.
|
206 |
|
207 |
// Plugin version.
|
208 |
if ( ! defined( 'EDD_VERSION' ) ) {
|
209 |
+
define( 'EDD_VERSION', '2.8.13' );
|
210 |
}
|
211 |
|
212 |
// Plugin Folder Path.
|
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 {
|
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', 'easy-digital-downloads' ), $email, $user_login );
|
254 |
$customer->add_note( $customer_note );
|
255 |
|
256 |
if ( $primary ) {
|
257 |
+
$customer_note = sprintf( __( 'Email address %s set as primary by %s', 'easy-digital-downloads' ), $email, $user_login );
|
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', 'easy-digital-downloads' ), sanitize_email( $_GET['email'] ), $user_login );
|
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', 'easy-digital-downloads' ), sanitize_email( $_GET['email'] ), $user_login );
|
356 |
$customer->add_note( $customer_note );
|
357 |
|
358 |
} else {
|
includes/cart/class-edd-cart.php
CHANGED
@@ -228,6 +228,7 @@ class EDD_Cart {
|
|
228 |
}
|
229 |
|
230 |
$item['quantity'] = edd_item_quantities_enabled() ? absint( $item['quantity'] ) : 1;
|
|
|
231 |
|
232 |
$options = isset( $item['options'] ) ? $item['options'] : array();
|
233 |
|
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 |
|
includes/gateways/paypal-standard.php
CHANGED
@@ -67,8 +67,21 @@ function edd_register_paypal_gateway_settings( $gateway_settings ) {
|
|
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 |
|
@@ -286,6 +299,8 @@ function edd_process_paypal_purchase( $purchase_data ) {
|
|
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,6 +324,9 @@ add_action( 'edd_gateway_paypal', 'edd_process_paypal_purchase' );
|
|
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,6 +344,8 @@ function edd_process_paypal_ipn() {
|
|
326 |
return;
|
327 |
}
|
328 |
|
|
|
|
|
329 |
// Set initial post data to empty string
|
330 |
$post_data = '';
|
331 |
|
@@ -375,6 +395,19 @@ function edd_process_paypal_ipn() {
|
|
375 |
|
376 |
}
|
377 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
378 |
if ( ! edd_get_option( 'disable_paypal_verification' ) ) {
|
379 |
|
380 |
// Validate the IPN
|
@@ -397,21 +430,26 @@ function edd_process_paypal_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,6 +495,19 @@ add_action( 'edd_verify_paypal_ipn', 'edd_process_paypal_ipn' );
|
|
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,6 +533,7 @@ function edd_process_paypal_web_accept_and_cart( $data, $payment_id ) {
|
|
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,6 +543,7 @@ function edd_process_paypal_web_accept_and_cart( $data, $payment_id ) {
|
|
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,12 +603,14 @@ function edd_process_paypal_web_accept_and_cart( $data, $payment_id ) {
|
|
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,6 +691,7 @@ function edd_process_paypal_web_accept_and_cart( $data, $payment_id ) {
|
|
636 |
|
637 |
if( ! empty( $note ) ) {
|
638 |
|
|
|
639 |
edd_insert_payment_note( $payment_id, $note );
|
640 |
|
641 |
}
|
@@ -654,8 +710,19 @@ add_action( 'edd_paypal_web_accept', 'edd_process_paypal_web_accept_and_cart', 1
|
|
654 |
*/
|
655 |
function edd_process_paypal_refund( $data, $payment_id = 0 ) {
|
656 |
|
657 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
658 |
|
|
|
659 |
if( empty( $payment_id ) ) {
|
660 |
return;
|
661 |
}
|
@@ -740,7 +807,7 @@ function edd_get_paypal_image_url() {
|
|
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,9 +829,9 @@ function edd_paypal_success_page_content( $content ) {
|
|
762 |
$payment_id = edd_get_purchase_id_by_key( $session['purchase_key'] );
|
763 |
}
|
764 |
|
765 |
-
$payment =
|
766 |
|
767 |
-
if ( $payment && 'pending' == $payment->
|
768 |
|
769 |
// Payment is still pending so show processing indicator to fix the Race Condition, issue #
|
770 |
ob_start();
|
@@ -780,6 +847,90 @@ function edd_paypal_success_page_content( $content ) {
|
|
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 |
*
|
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 you are unable to use Payment Data Transfer and 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' ),
|
85 |
'http://docs.easydigitaldownloads.com/article/190-payments-not-marked-as-complete'
|
86 |
);
|
87 |
|
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 |
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 |
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 |
|
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 |
'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 |
* @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 |
// 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 |
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 |
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 |
|
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 |
*/
|
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 |
}
|
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 |
$payment_id = edd_get_purchase_id_by_key( $session['purchase_key'] );
|
830 |
}
|
831 |
|
832 |
+
$payment = new EDD_Payment( $payment_id );
|
833 |
|
834 |
+
if ( $payment->ID > 0 && 'pending' == $payment->status ) {
|
835 |
|
836 |
// Payment is still pending so show processing indicator to fix the Race Condition, issue #
|
837 |
ob_start();
|
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 |
*
|
includes/payments/class-payments-query.php
CHANGED
@@ -486,13 +486,7 @@ class EDD_Payments_Query extends EDD_Stats {
|
|
486 |
|
487 |
$this->__unset( 's' );
|
488 |
|
489 |
-
} elseif (
|
490 |
-
edd_get_option( 'enable_sequential' ) &&
|
491 |
-
(
|
492 |
-
false !== strpos( $search, edd_get_option( 'sequential_prefix' ) ) ||
|
493 |
-
false !== strpos( $search, edd_get_option( 'sequential_postfix' ) )
|
494 |
-
)
|
495 |
-
) {
|
496 |
|
497 |
$search_meta = array(
|
498 |
'key' => '_edd_payment_number',
|
486 |
|
487 |
$this->__unset( 's' );
|
488 |
|
489 |
+
} elseif ( edd_get_option( 'enable_sequential' ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
490 |
|
491 |
$search_meta = array(
|
492 |
'key' => '_edd_payment_number',
|
includes/shortcodes.php
CHANGED
@@ -932,7 +932,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 {
|
932 |
|
933 |
$user = wp_get_current_user();
|
934 |
$user_login = ! empty( $user->user_login ) ? $user->user_login : 'EDDBot';
|
935 |
+
$customer_note = sprintf( __( 'Email address %s removed by %s', 'easy-digital-downloads' ), sanitize_email( $_GET['email'] ), $user_login );
|
936 |
$customer->add_note( $customer_note );
|
937 |
|
938 |
} else {
|
includes/user-functions.php
CHANGED
@@ -483,12 +483,14 @@ 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 |
-
|
|
|
489 |
|
490 |
-
|
491 |
-
|
|
|
492 |
}
|
493 |
}
|
494 |
|
483 |
edd_send_user_verification_email( $user_id );
|
484 |
|
485 |
foreach( $payments as $payment ) {
|
486 |
+
if ( is_object( $payment ) && $payment instanceof EDD_Payment ) {
|
487 |
+
if ( intval( $payment->user_id ) > 0 ) {
|
488 |
+
continue; // This payment already associated with an account
|
489 |
+
}
|
490 |
|
491 |
+
$payment->user_id = $user_id;
|
492 |
+
$payment->save();
|
493 |
+
}
|
494 |
}
|
495 |
}
|
496 |
|
languages/easy-digital-downloads.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
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-11-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -89,16 +89,16 @@ msgstr ""
|
|
89 |
#: includes/admin/upgrades/upgrade-functions.php:1098
|
90 |
#: includes/api/class-edd-api.php:1990 includes/api/class-edd-api.php:1995
|
91 |
#: includes/api/class-edd-api.php:2007 includes/api/class-edd-api.php:2009
|
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:53 includes/emails/template.php:243
|
97 |
#: includes/error-tracking.php:40 includes/gateways/functions.php:221
|
98 |
-
#: includes/gateways/manual.php:33 includes/gateways/paypal-standard.php:
|
99 |
#: includes/process-download.php:289 includes/process-download.php:822
|
100 |
-
#: includes/query-filters.php:48 includes/user-functions.php:
|
101 |
-
#: includes/user-functions.php:
|
102 |
msgid "Error"
|
103 |
msgstr ""
|
104 |
|
@@ -510,7 +510,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,6 +530,15 @@ msgstr ""
|
|
530 |
msgid "Email successfully added to customer."
|
531 |
msgstr ""
|
532 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
533 |
#: includes/admin/customers/customer-actions.php:301
|
534 |
#: includes/admin/customers/customer-actions.php:345
|
535 |
#: includes/admin/customers/customer-actions.php:603
|
@@ -541,6 +550,11 @@ msgstr ""
|
|
541 |
msgid "Nonce verification failed"
|
542 |
msgstr ""
|
543 |
|
|
|
|
|
|
|
|
|
|
|
544 |
#: includes/admin/customers/customer-actions.php:395
|
545 |
msgid "A note is required"
|
546 |
msgstr ""
|
@@ -2612,7 +2626,7 @@ msgid "Payment ID"
|
|
2612 |
msgstr ""
|
2613 |
|
2614 |
#: includes/admin/reporting/class-gateway-error-logs-list-table.php:79
|
2615 |
-
#: includes/gateways/manual.php:73 includes/gateways/paypal-standard.php:
|
2616 |
msgid "Payment Error"
|
2617 |
msgstr ""
|
2618 |
|
@@ -4901,27 +4915,27 @@ msgstr ""
|
|
4901 |
msgid "No download logs found!"
|
4902 |
msgstr ""
|
4903 |
|
4904 |
-
#: includes/api/class-edd-api.php:1954 includes/user-functions.php:
|
4905 |
msgid "Easy Digital Downloads API Keys"
|
4906 |
msgstr ""
|
4907 |
|
4908 |
-
#: includes/api/class-edd-api.php:1963 includes/user-functions.php:
|
4909 |
msgid "Generate API Key"
|
4910 |
msgstr ""
|
4911 |
|
4912 |
-
#: includes/api/class-edd-api.php:1965 includes/user-functions.php:
|
4913 |
msgid "Public key:"
|
4914 |
msgstr ""
|
4915 |
|
4916 |
-
#: includes/api/class-edd-api.php:1966 includes/user-functions.php:
|
4917 |
msgid "Secret key:"
|
4918 |
msgstr ""
|
4919 |
|
4920 |
-
#: includes/api/class-edd-api.php:1967 includes/user-functions.php:
|
4921 |
msgid "Token:"
|
4922 |
msgstr ""
|
4923 |
|
4924 |
-
#: includes/api/class-edd-api.php:1969 includes/user-functions.php:
|
4925 |
msgid "Revoke API Keys"
|
4926 |
msgstr ""
|
4927 |
|
@@ -4933,32 +4947,32 @@ msgstr ""
|
|
4933 |
msgid "You do not have permission to %s API keys for this user"
|
4934 |
msgstr ""
|
4935 |
|
4936 |
-
#: includes/cart/class-edd-cart.php:
|
4937 |
msgid "includes %s tax"
|
4938 |
msgstr ""
|
4939 |
|
4940 |
-
#: includes/cart/class-edd-cart.php:
|
4941 |
msgid "excludes %s tax"
|
4942 |
msgstr ""
|
4943 |
|
4944 |
-
#: includes/cart/class-edd-cart.php:
|
4945 |
#: templates/shortcode-profile-editor.php:22
|
4946 |
msgid "Success"
|
4947 |
msgstr ""
|
4948 |
|
4949 |
-
#: includes/cart/class-edd-cart.php:
|
4950 |
msgid "Cart saved successfully. You can restore your cart using this URL:"
|
4951 |
msgstr ""
|
4952 |
|
4953 |
-
#: includes/cart/class-edd-cart.php:
|
4954 |
msgid "Cart restoration failed. Invalid token."
|
4955 |
msgstr ""
|
4956 |
|
4957 |
-
#: includes/cart/class-edd-cart.php:
|
4958 |
msgid "The cart cannot be restored. Invalid token."
|
4959 |
msgstr ""
|
4960 |
|
4961 |
-
#: includes/cart/class-edd-cart.php:
|
4962 |
msgid "Cart restored successfully."
|
4963 |
msgstr ""
|
4964 |
|
@@ -5389,8 +5403,8 @@ msgstr ""
|
|
5389 |
msgid "Customer User ID: %s"
|
5390 |
msgstr ""
|
5391 |
|
5392 |
-
#: includes/class-edd-cli.php:335 includes/user-functions.php:
|
5393 |
-
#: includes/user-functions.php:
|
5394 |
msgid "Username: %s"
|
5395 |
msgstr ""
|
5396 |
|
@@ -6288,12 +6302,12 @@ msgstr ""
|
|
6288 |
|
6289 |
#: includes/gateways/amazon-payments.php:1113
|
6290 |
#: includes/gateways/amazon-payments.php:1167
|
6291 |
-
#: includes/gateways/paypal-standard.php:
|
6292 |
-
#: includes/gateways/paypal-standard.php:
|
6293 |
-
#: includes/gateways/paypal-standard.php:
|
6294 |
-
#: includes/gateways/paypal-standard.php:
|
6295 |
-
#: includes/gateways/paypal-standard.php:
|
6296 |
-
#: includes/gateways/paypal-standard.php:
|
6297 |
msgid "IPN Error"
|
6298 |
msgstr ""
|
6299 |
|
@@ -6334,7 +6348,7 @@ msgstr ""
|
|
6334 |
msgid "The requested price ID does not exist."
|
6335 |
msgstr ""
|
6336 |
|
6337 |
-
#: includes/gateways/manual.php:33 includes/gateways/paypal-standard.php:
|
6338 |
msgid "Nonce verification has failed"
|
6339 |
msgstr ""
|
6340 |
|
@@ -6366,117 +6380,129 @@ msgstr ""
|
|
6366 |
|
6367 |
#: includes/gateways/paypal-standard.php:71
|
6368 |
msgid ""
|
6369 |
-
"
|
6370 |
-
"
|
6371 |
-
"
|
6372 |
"information."
|
6373 |
msgstr ""
|
6374 |
|
6375 |
#: includes/gateways/paypal-standard.php:77
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6376 |
msgid "Disable PayPal IPN Verification"
|
6377 |
msgstr ""
|
6378 |
|
6379 |
-
#: includes/gateways/paypal-standard.php:
|
6380 |
msgid "API Credentials"
|
6381 |
msgstr ""
|
6382 |
|
6383 |
-
#: includes/gateways/paypal-standard.php:
|
6384 |
msgid ""
|
6385 |
"API credentials are necessary to process PayPal refunds from inside "
|
6386 |
"WordPress. These can be obtained from <a href=\"%s\" target=\"_blank\">your "
|
6387 |
"PayPal account</a>."
|
6388 |
msgstr ""
|
6389 |
|
6390 |
-
#: includes/gateways/paypal-standard.php:
|
6391 |
msgid "Live API Username"
|
6392 |
msgstr ""
|
6393 |
|
6394 |
-
#: includes/gateways/paypal-standard.php:
|
6395 |
msgid "Your PayPal live API username. "
|
6396 |
msgstr ""
|
6397 |
|
6398 |
-
#: includes/gateways/paypal-standard.php:
|
6399 |
msgid "Live API Password"
|
6400 |
msgstr ""
|
6401 |
|
6402 |
-
#: includes/gateways/paypal-standard.php:
|
6403 |
msgid "Your PayPal live API password."
|
6404 |
msgstr ""
|
6405 |
|
6406 |
-
#: includes/gateways/paypal-standard.php:
|
6407 |
msgid "Live API Signature"
|
6408 |
msgstr ""
|
6409 |
|
6410 |
-
#: includes/gateways/paypal-standard.php:
|
6411 |
msgid "Your PayPal live API signature."
|
6412 |
msgstr ""
|
6413 |
|
6414 |
-
#: includes/gateways/paypal-standard.php:
|
6415 |
msgid "Test API Username"
|
6416 |
msgstr ""
|
6417 |
|
6418 |
-
#: includes/gateways/paypal-standard.php:
|
6419 |
msgid "Your PayPal test API username."
|
6420 |
msgstr ""
|
6421 |
|
6422 |
-
#: includes/gateways/paypal-standard.php:
|
6423 |
msgid "Test API Password"
|
6424 |
msgstr ""
|
6425 |
|
6426 |
-
#: includes/gateways/paypal-standard.php:
|
6427 |
msgid "Your PayPal test API password."
|
6428 |
msgstr ""
|
6429 |
|
6430 |
-
#: includes/gateways/paypal-standard.php:
|
6431 |
msgid "Test API Signature"
|
6432 |
msgstr ""
|
6433 |
|
6434 |
-
#: includes/gateways/paypal-standard.php:
|
6435 |
msgid "Your PayPal test API signature."
|
6436 |
msgstr ""
|
6437 |
|
6438 |
-
#: includes/gateways/paypal-standard.php:
|
6439 |
msgid "Payment creation failed before sending buyer to PayPal. Payment data: %s"
|
6440 |
msgstr ""
|
6441 |
|
6442 |
-
#: includes/gateways/paypal-standard.php:
|
6443 |
-
#: includes/gateways/paypal-standard.php:
|
6444 |
msgid "Invalid IPN verification response. IPN data: %s"
|
6445 |
msgstr ""
|
6446 |
|
6447 |
-
#: includes/gateways/paypal-standard.php:
|
6448 |
msgid "Invalid business email in IPN response. IPN data: %s"
|
6449 |
msgstr ""
|
6450 |
|
6451 |
-
#: includes/gateways/paypal-standard.php:
|
6452 |
msgid "Payment failed due to invalid PayPal business email."
|
6453 |
msgstr ""
|
6454 |
|
6455 |
-
#: includes/gateways/paypal-standard.php:
|
6456 |
msgid "Invalid currency in IPN response. IPN data: %s"
|
6457 |
msgstr ""
|
6458 |
|
6459 |
-
#: includes/gateways/paypal-standard.php:
|
6460 |
msgid "Payment failed due to invalid currency in PayPal IPN."
|
6461 |
msgstr ""
|
6462 |
|
6463 |
-
#: includes/gateways/paypal-standard.php:
|
6464 |
msgid "Invalid payment amount in IPN response. IPN data: %s"
|
6465 |
msgstr ""
|
6466 |
|
6467 |
-
#: includes/gateways/paypal-standard.php:
|
6468 |
msgid "Payment failed due to invalid amount in PayPal IPN."
|
6469 |
msgstr ""
|
6470 |
|
6471 |
-
#: includes/gateways/paypal-standard.php:
|
6472 |
msgid "Invalid purchase key in IPN response. IPN data: %s"
|
6473 |
msgstr ""
|
6474 |
|
6475 |
-
#: includes/gateways/paypal-standard.php:
|
6476 |
msgid "Payment failed due to invalid purchase key in PayPal IPN."
|
6477 |
msgstr ""
|
6478 |
|
6479 |
-
#: includes/gateways/paypal-standard.php:
|
6480 |
#: tests/helpers/class-helper-payment.php:131
|
6481 |
#: tests/helpers/class-helper-payment.php:234
|
6482 |
#: tests/helpers/class-helper-payment.php:342
|
@@ -6487,79 +6513,79 @@ msgstr ""
|
|
6487 |
msgid "PayPal Transaction ID: %s"
|
6488 |
msgstr ""
|
6489 |
|
6490 |
-
#: includes/gateways/paypal-standard.php:
|
6491 |
msgid "Payment made via eCheck and will clear automatically in 5-8 days"
|
6492 |
msgstr ""
|
6493 |
|
6494 |
-
#: includes/gateways/paypal-standard.php:
|
6495 |
msgid ""
|
6496 |
"Payment requires a confirmed customer address and must be accepted manually "
|
6497 |
"through PayPal"
|
6498 |
msgstr ""
|
6499 |
|
6500 |
-
#: includes/gateways/paypal-standard.php:
|
6501 |
msgid ""
|
6502 |
"Payment must be accepted manually through PayPal due to international "
|
6503 |
"account regulations"
|
6504 |
msgstr ""
|
6505 |
|
6506 |
-
#: includes/gateways/paypal-standard.php:
|
6507 |
msgid ""
|
6508 |
"Payment received in non-shop currency and must be accepted manually through "
|
6509 |
"PayPal"
|
6510 |
msgstr ""
|
6511 |
|
6512 |
-
#: includes/gateways/paypal-standard.php:
|
6513 |
msgid ""
|
6514 |
"Payment is being reviewed by PayPal staff as high-risk or in possible "
|
6515 |
"violation of government regulations"
|
6516 |
msgstr ""
|
6517 |
|
6518 |
-
#: includes/gateways/paypal-standard.php:
|
6519 |
msgid "Payment was sent to non-confirmed or non-registered email address."
|
6520 |
msgstr ""
|
6521 |
|
6522 |
-
#: includes/gateways/paypal-standard.php:
|
6523 |
msgid "PayPal account must be upgraded before this payment can be accepted"
|
6524 |
msgstr ""
|
6525 |
|
6526 |
-
#: includes/gateways/paypal-standard.php:
|
6527 |
msgid ""
|
6528 |
"PayPal account is not verified. Verify account in order to accept this "
|
6529 |
"payment"
|
6530 |
msgstr ""
|
6531 |
|
6532 |
-
#: includes/gateways/paypal-standard.php:
|
6533 |
msgid ""
|
6534 |
"Payment is pending for unknown reasons. Contact PayPal support for "
|
6535 |
"assistance"
|
6536 |
msgstr ""
|
6537 |
|
6538 |
-
#: includes/gateways/paypal-standard.php:
|
6539 |
msgid "Partial PayPal refund processed: %s"
|
6540 |
msgstr ""
|
6541 |
|
6542 |
-
#: includes/gateways/paypal-standard.php:
|
6543 |
msgid "PayPal Payment #%s Refunded for reason: %s"
|
6544 |
msgstr ""
|
6545 |
|
6546 |
-
#: includes/gateways/paypal-standard.php:
|
6547 |
msgid "PayPal Refund Transaction ID: %s"
|
6548 |
msgstr ""
|
6549 |
|
6550 |
-
#: includes/gateways/paypal-standard.php:
|
6551 |
msgid "Refund Payment in PayPal"
|
6552 |
msgstr ""
|
6553 |
|
6554 |
-
#: includes/gateways/paypal-standard.php:
|
6555 |
msgid "PayPal refund failed for unknown reason."
|
6556 |
msgstr ""
|
6557 |
|
6558 |
-
#: includes/gateways/paypal-standard.php:
|
6559 |
msgid "PayPal refund transaction ID: %s"
|
6560 |
msgstr ""
|
6561 |
|
6562 |
-
#: includes/gateways/paypal-standard.php:
|
6563 |
msgid "PayPal refund failed: %s"
|
6564 |
msgstr ""
|
6565 |
|
@@ -7461,51 +7487,51 @@ msgstr ""
|
|
7461 |
msgid "Plain Text"
|
7462 |
msgstr ""
|
7463 |
|
7464 |
-
#: includes/user-functions.php:
|
7465 |
msgid "[%s] New User Registration"
|
7466 |
msgstr ""
|
7467 |
|
7468 |
-
#: includes/user-functions.php:
|
7469 |
msgid "New user registration"
|
7470 |
msgstr ""
|
7471 |
|
7472 |
-
#: includes/user-functions.php:
|
7473 |
msgid "E-mail: %s"
|
7474 |
msgstr ""
|
7475 |
|
7476 |
-
#: includes/user-functions.php:
|
7477 |
msgid "[%s] Your username and password"
|
7478 |
msgstr ""
|
7479 |
|
7480 |
-
#: includes/user-functions.php:
|
7481 |
msgid "Your account info"
|
7482 |
msgstr ""
|
7483 |
|
7484 |
-
#: includes/user-functions.php:
|
7485 |
msgid "Password entered at checkout"
|
7486 |
msgstr ""
|
7487 |
|
7488 |
-
#: includes/user-functions.php:
|
7489 |
msgid "Password entered at registration"
|
7490 |
msgstr ""
|
7491 |
|
7492 |
-
#: includes/user-functions.php:
|
7493 |
msgid "Password: %s"
|
7494 |
msgstr ""
|
7495 |
|
7496 |
-
#: includes/user-functions.php:
|
7497 |
msgid "Click here to log in"
|
7498 |
msgstr ""
|
7499 |
|
7500 |
-
#: includes/user-functions.php:
|
7501 |
msgid "To log in, visit: %s"
|
7502 |
msgstr ""
|
7503 |
|
7504 |
-
#: includes/user-functions.php:
|
7505 |
msgid "Verify your account"
|
7506 |
msgstr ""
|
7507 |
|
7508 |
-
#: includes/user-functions.php:
|
7509 |
msgid ""
|
7510 |
"Hello %s,\n"
|
7511 |
"\n"
|
@@ -7515,33 +7541,33 @@ msgid ""
|
|
7515 |
"Link missing? Visit the following URL: %s"
|
7516 |
msgstr ""
|
7517 |
|
7518 |
-
#: includes/user-functions.php:
|
7519 |
msgid ""
|
7520 |
"Sorry but your account verification link has expired. <a href=\"%s\">Click "
|
7521 |
"here</a> to request a new verification URL."
|
7522 |
msgstr ""
|
7523 |
|
7524 |
-
#: includes/user-functions.php:
|
7525 |
msgid "You must be logged in to verify your account."
|
7526 |
msgstr ""
|
7527 |
|
7528 |
-
#: includes/user-functions.php:
|
7529 |
msgid "Notice"
|
7530 |
msgstr ""
|
7531 |
|
7532 |
-
#: includes/user-functions.php:
|
7533 |
msgid "Your account has already been verified."
|
7534 |
msgstr ""
|
7535 |
|
7536 |
-
#: includes/user-functions.php:
|
7537 |
msgid "Invalid verification token provided."
|
7538 |
msgstr ""
|
7539 |
|
7540 |
-
#: includes/user-functions.php:
|
7541 |
msgid "Easy Digital Downloads <a href=\"%s\">iOS App</a>"
|
7542 |
msgstr ""
|
7543 |
|
7544 |
-
#: includes/user-functions.php:
|
7545 |
msgid "Add to iOS App"
|
7546 |
msgstr ""
|
7547 |
|
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.12\n"
|
6 |
"Report-Msgid-Bugs-To: https://easydigitaldownloads.com/\n"
|
7 |
+
"POT-Creation-Date: 2017-11-20 17:26:16+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
89 |
#: includes/admin/upgrades/upgrade-functions.php:1098
|
90 |
#: includes/api/class-edd-api.php:1990 includes/api/class-edd-api.php:1995
|
91 |
#: includes/api/class-edd-api.php:2007 includes/api/class-edd-api.php:2009
|
92 |
+
#: includes/cart/class-edd-cart.php:1469 includes/cart/class-edd-cart.php:1483
|
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:53 includes/emails/template.php:243
|
97 |
#: includes/error-tracking.php:40 includes/gateways/functions.php:221
|
98 |
+
#: includes/gateways/manual.php:33 includes/gateways/paypal-standard.php:168
|
99 |
#: includes/process-download.php:289 includes/process-download.php:822
|
100 |
+
#: includes/query-filters.php:48 includes/user-functions.php:880
|
101 |
+
#: includes/user-functions.php:905 includes/user-functions.php:958
|
102 |
msgid "Error"
|
103 |
msgstr ""
|
104 |
|
510 |
msgstr ""
|
511 |
|
512 |
#: includes/admin/customers/customer-actions.php:207
|
513 |
+
#: includes/user-functions.php:905
|
514 |
msgid "Nonce verification failed."
|
515 |
msgstr ""
|
516 |
|
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
|
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 ""
|
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:191
|
2630 |
msgid "Payment Error"
|
2631 |
msgstr ""
|
2632 |
|
4915 |
msgid "No download logs found!"
|
4916 |
msgstr ""
|
4917 |
|
4918 |
+
#: includes/api/class-edd-api.php:1954 includes/user-functions.php:1040
|
4919 |
msgid "Easy Digital Downloads API Keys"
|
4920 |
msgstr ""
|
4921 |
|
4922 |
+
#: includes/api/class-edd-api.php:1963 includes/user-functions.php:1045
|
4923 |
msgid "Generate API Key"
|
4924 |
msgstr ""
|
4925 |
|
4926 |
+
#: includes/api/class-edd-api.php:1965 includes/user-functions.php:1047
|
4927 |
msgid "Public key:"
|
4928 |
msgstr ""
|
4929 |
|
4930 |
+
#: includes/api/class-edd-api.php:1966 includes/user-functions.php:1048
|
4931 |
msgid "Secret key:"
|
4932 |
msgstr ""
|
4933 |
|
4934 |
+
#: includes/api/class-edd-api.php:1967 includes/user-functions.php:1049
|
4935 |
msgid "Token:"
|
4936 |
msgstr ""
|
4937 |
|
4938 |
+
#: includes/api/class-edd-api.php:1969 includes/user-functions.php:1051
|
4939 |
msgid "Revoke API Keys"
|
4940 |
msgstr ""
|
4941 |
|
4947 |
msgid "You do not have permission to %s API keys for this user"
|
4948 |
msgstr ""
|
4949 |
|
4950 |
+
#: includes/cart/class-edd-cart.php:910
|
4951 |
msgid "includes %s tax"
|
4952 |
msgstr ""
|
4953 |
|
4954 |
+
#: includes/cart/class-edd-cart.php:912
|
4955 |
msgid "excludes %s tax"
|
4956 |
msgstr ""
|
4957 |
|
4958 |
+
#: includes/cart/class-edd-cart.php:1432 includes/cart/class-edd-cart.php:1495
|
4959 |
#: templates/shortcode-profile-editor.php:22
|
4960 |
msgid "Success"
|
4961 |
msgstr ""
|
4962 |
|
4963 |
+
#: includes/cart/class-edd-cart.php:1433
|
4964 |
msgid "Cart saved successfully. You can restore your cart using this URL:"
|
4965 |
msgstr ""
|
4966 |
|
4967 |
+
#: includes/cart/class-edd-cart.php:1469 includes/cart/class-edd-cart.php:1483
|
4968 |
msgid "Cart restoration failed. Invalid token."
|
4969 |
msgstr ""
|
4970 |
|
4971 |
+
#: includes/cart/class-edd-cart.php:1477 includes/cart/class-edd-cart.php:1486
|
4972 |
msgid "The cart cannot be restored. Invalid token."
|
4973 |
msgstr ""
|
4974 |
|
4975 |
+
#: includes/cart/class-edd-cart.php:1495
|
4976 |
msgid "Cart restored successfully."
|
4977 |
msgstr ""
|
4978 |
|
5403 |
msgid "Customer User ID: %s"
|
5404 |
msgstr ""
|
5405 |
|
5406 |
+
#: includes/class-edd-cli.php:335 includes/user-functions.php:567
|
5407 |
+
#: includes/user-functions.php:576
|
5408 |
msgid "Username: %s"
|
5409 |
msgstr ""
|
5410 |
|
6302 |
|
6303 |
#: includes/gateways/amazon-payments.php:1113
|
6304 |
#: includes/gateways/amazon-payments.php:1167
|
6305 |
+
#: includes/gateways/paypal-standard.php:439
|
6306 |
+
#: includes/gateways/paypal-standard.php:446
|
6307 |
+
#: includes/gateways/paypal-standard.php:535
|
6308 |
+
#: includes/gateways/paypal-standard.php:545
|
6309 |
+
#: includes/gateways/paypal-standard.php:605
|
6310 |
+
#: includes/gateways/paypal-standard.php:614
|
6311 |
msgid "IPN Error"
|
6312 |
msgstr ""
|
6313 |
|
6348 |
msgid "The requested price ID does not exist."
|
6349 |
msgstr ""
|
6350 |
|
6351 |
+
#: includes/gateways/manual.php:33 includes/gateways/paypal-standard.php:168
|
6352 |
msgid "Nonce verification has failed"
|
6353 |
msgstr ""
|
6354 |
|
6380 |
|
6381 |
#: includes/gateways/paypal-standard.php:71
|
6382 |
msgid ""
|
6383 |
+
"Enter your PayPal Identity Token in order to enable Payment Data Transfer "
|
6384 |
+
"(PDT). This allows payments to be verified without relying on the PayPal "
|
6385 |
+
"IPN. See our <a href=\"%s\" target=\"_blank\">documentation</a> for further "
|
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:98
|
6406 |
msgid "API Credentials"
|
6407 |
msgstr ""
|
6408 |
|
6409 |
+
#: includes/gateways/paypal-standard.php:101
|
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:107
|
6417 |
msgid "Live API Username"
|
6418 |
msgstr ""
|
6419 |
|
6420 |
+
#: includes/gateways/paypal-standard.php:108
|
6421 |
msgid "Your PayPal live API username. "
|
6422 |
msgstr ""
|
6423 |
|
6424 |
+
#: includes/gateways/paypal-standard.php:114
|
6425 |
msgid "Live API Password"
|
6426 |
msgstr ""
|
6427 |
|
6428 |
+
#: includes/gateways/paypal-standard.php:115
|
6429 |
msgid "Your PayPal live API password."
|
6430 |
msgstr ""
|
6431 |
|
6432 |
+
#: includes/gateways/paypal-standard.php:121
|
6433 |
msgid "Live API Signature"
|
6434 |
msgstr ""
|
6435 |
|
6436 |
+
#: includes/gateways/paypal-standard.php:122
|
6437 |
msgid "Your PayPal live API signature."
|
6438 |
msgstr ""
|
6439 |
|
6440 |
+
#: includes/gateways/paypal-standard.php:128
|
6441 |
msgid "Test API Username"
|
6442 |
msgstr ""
|
6443 |
|
6444 |
+
#: includes/gateways/paypal-standard.php:129
|
6445 |
msgid "Your PayPal test API username."
|
6446 |
msgstr ""
|
6447 |
|
6448 |
+
#: includes/gateways/paypal-standard.php:135
|
6449 |
msgid "Test API Password"
|
6450 |
msgstr ""
|
6451 |
|
6452 |
+
#: includes/gateways/paypal-standard.php:136
|
6453 |
msgid "Your PayPal test API password."
|
6454 |
msgstr ""
|
6455 |
|
6456 |
+
#: includes/gateways/paypal-standard.php:142
|
6457 |
msgid "Test API Signature"
|
6458 |
msgstr ""
|
6459 |
|
6460 |
+
#: includes/gateways/paypal-standard.php:143
|
6461 |
msgid "Your PayPal test API signature."
|
6462 |
msgstr ""
|
6463 |
|
6464 |
+
#: includes/gateways/paypal-standard.php:191
|
6465 |
msgid "Payment creation failed before sending buyer to PayPal. Payment data: %s"
|
6466 |
msgstr ""
|
6467 |
|
6468 |
+
#: includes/gateways/paypal-standard.php:439
|
6469 |
+
#: includes/gateways/paypal-standard.php:446
|
6470 |
msgid "Invalid IPN verification response. IPN data: %s"
|
6471 |
msgstr ""
|
6472 |
|
6473 |
+
#: includes/gateways/paypal-standard.php:535
|
6474 |
msgid "Invalid business email in IPN response. IPN data: %s"
|
6475 |
msgstr ""
|
6476 |
|
6477 |
+
#: includes/gateways/paypal-standard.php:538
|
6478 |
msgid "Payment failed due to invalid PayPal business email."
|
6479 |
msgstr ""
|
6480 |
|
6481 |
+
#: includes/gateways/paypal-standard.php:545
|
6482 |
msgid "Invalid currency in IPN response. IPN data: %s"
|
6483 |
msgstr ""
|
6484 |
|
6485 |
+
#: includes/gateways/paypal-standard.php:548
|
6486 |
msgid "Payment failed due to invalid currency in PayPal IPN."
|
6487 |
msgstr ""
|
6488 |
|
6489 |
+
#: includes/gateways/paypal-standard.php:605
|
6490 |
msgid "Invalid payment amount in IPN response. IPN data: %s"
|
6491 |
msgstr ""
|
6492 |
|
6493 |
+
#: includes/gateways/paypal-standard.php:608
|
6494 |
msgid "Payment failed due to invalid amount in PayPal IPN."
|
6495 |
msgstr ""
|
6496 |
|
6497 |
+
#: includes/gateways/paypal-standard.php:614
|
6498 |
msgid "Invalid purchase key in IPN response. IPN data: %s"
|
6499 |
msgstr ""
|
6500 |
|
6501 |
+
#: includes/gateways/paypal-standard.php:616
|
6502 |
msgid "Payment failed due to invalid purchase key in PayPal IPN."
|
6503 |
msgstr ""
|
6504 |
|
6505 |
+
#: includes/gateways/paypal-standard.php:622
|
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 |
msgid "PayPal Transaction ID: %s"
|
6514 |
msgstr ""
|
6515 |
|
6516 |
+
#: includes/gateways/paypal-standard.php:636
|
6517 |
msgid "Payment made via eCheck and will clear automatically in 5-8 days"
|
6518 |
msgstr ""
|
6519 |
|
6520 |
+
#: includes/gateways/paypal-standard.php:643
|
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:649
|
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:655
|
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:662
|
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:668
|
6545 |
msgid "Payment was sent to non-confirmed or non-registered email address."
|
6546 |
msgstr ""
|
6547 |
|
6548 |
+
#: includes/gateways/paypal-standard.php:674
|
6549 |
msgid "PayPal account must be upgraded before this payment can be accepted"
|
6550 |
msgstr ""
|
6551 |
|
6552 |
+
#: includes/gateways/paypal-standard.php:680
|
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:686
|
6559 |
msgid ""
|
6560 |
"Payment is pending for unknown reasons. Contact PayPal support for "
|
6561 |
"assistance"
|
6562 |
msgstr ""
|
6563 |
|
6564 |
+
#: includes/gateways/paypal-standard.php:739
|
6565 |
msgid "Partial PayPal refund processed: %s"
|
6566 |
msgstr ""
|
6567 |
|
6568 |
+
#: includes/gateways/paypal-standard.php:744
|
6569 |
msgid "PayPal Payment #%s Refunded for reason: %s"
|
6570 |
msgstr ""
|
6571 |
|
6572 |
+
#: includes/gateways/paypal-standard.php:745
|
6573 |
msgid "PayPal Refund Transaction ID: %s"
|
6574 |
msgstr ""
|
6575 |
|
6576 |
+
#: includes/gateways/paypal-standard.php:1004
|
6577 |
msgid "Refund Payment in PayPal"
|
6578 |
msgstr ""
|
6579 |
|
6580 |
+
#: includes/gateways/paypal-standard.php:1153
|
6581 |
msgid "PayPal refund failed for unknown reason."
|
6582 |
msgstr ""
|
6583 |
|
6584 |
+
#: includes/gateways/paypal-standard.php:1163
|
6585 |
msgid "PayPal refund transaction ID: %s"
|
6586 |
msgstr ""
|
6587 |
|
6588 |
+
#: includes/gateways/paypal-standard.php:1167
|
6589 |
msgid "PayPal refund failed: %s"
|
6590 |
msgstr ""
|
6591 |
|
7487 |
msgid "Plain Text"
|
7488 |
msgstr ""
|
7489 |
|
7490 |
+
#: includes/user-functions.php:565
|
7491 |
msgid "[%s] New User Registration"
|
7492 |
msgstr ""
|
7493 |
|
7494 |
+
#: includes/user-functions.php:566
|
7495 |
msgid "New user registration"
|
7496 |
msgstr ""
|
7497 |
|
7498 |
+
#: includes/user-functions.php:568
|
7499 |
msgid "E-mail: %s"
|
7500 |
msgstr ""
|
7501 |
|
7502 |
+
#: includes/user-functions.php:574
|
7503 |
msgid "[%s] Your username and password"
|
7504 |
msgstr ""
|
7505 |
|
7506 |
+
#: includes/user-functions.php:575
|
7507 |
msgid "Your account info"
|
7508 |
msgstr ""
|
7509 |
|
7510 |
+
#: includes/user-functions.php:579
|
7511 |
msgid "Password entered at checkout"
|
7512 |
msgstr ""
|
7513 |
|
7514 |
+
#: includes/user-functions.php:581
|
7515 |
msgid "Password entered at registration"
|
7516 |
msgstr ""
|
7517 |
|
7518 |
+
#: includes/user-functions.php:584
|
7519 |
msgid "Password: %s"
|
7520 |
msgstr ""
|
7521 |
|
7522 |
+
#: includes/user-functions.php:588
|
7523 |
msgid "Click here to log in"
|
7524 |
msgstr ""
|
7525 |
|
7526 |
+
#: includes/user-functions.php:592
|
7527 |
msgid "To log in, visit: %s"
|
7528 |
msgstr ""
|
7529 |
|
7530 |
+
#: includes/user-functions.php:748 includes/user-functions.php:749
|
7531 |
msgid "Verify your account"
|
7532 |
msgstr ""
|
7533 |
|
7534 |
+
#: includes/user-functions.php:751
|
7535 |
msgid ""
|
7536 |
"Hello %s,\n"
|
7537 |
"\n"
|
7541 |
"Link missing? Visit the following URL: %s"
|
7542 |
msgstr ""
|
7543 |
|
7544 |
+
#: includes/user-functions.php:876
|
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:909
|
7551 |
msgid "You must be logged in to verify your account."
|
7552 |
msgstr ""
|
7553 |
|
7554 |
+
#: includes/user-functions.php:909 includes/user-functions.php:913
|
7555 |
msgid "Notice"
|
7556 |
msgstr ""
|
7557 |
|
7558 |
+
#: includes/user-functions.php:913
|
7559 |
msgid "Your account has already been verified."
|
7560 |
msgstr ""
|
7561 |
|
7562 |
+
#: includes/user-functions.php:958
|
7563 |
msgid "Invalid verification token provided."
|
7564 |
msgstr ""
|
7565 |
|
7566 |
+
#: includes/user-functions.php:1063
|
7567 |
msgid "Easy Digital Downloads <a href=\"%s\">iOS App</a>"
|
7568 |
msgstr ""
|
7569 |
|
7570 |
+
#: includes/user-functions.php:1070
|
7571 |
msgid "Add to iOS App"
|
7572 |
msgstr ""
|
7573 |
|
readme.txt
CHANGED
@@ -6,7 +6,7 @@ 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.4
|
8 |
Tested up to: 4.9
|
9 |
-
Stable Tag: 2.8.
|
10 |
License: GNU Version 2 or Any Later Version
|
11 |
|
12 |
The easiest way to sell digital products with WordPress.
|
@@ -49,7 +49,6 @@ Payment gateways supported through free or premium extension:
|
|
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).
|
@@ -169,7 +168,6 @@ Yes. Easy Digital Downloads also includes default support for Amazon Payments an
|
|
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)
|
@@ -213,6 +211,18 @@ Yes. Easy Digital Downloads also includes default support for Amazon Payments an
|
|
213 |
|
214 |
== Changelog ==
|
215 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
= 2.8.12, November 10, 2017 =
|
217 |
* Fix: Reverted some of the performance improvements due to edge case errors.
|
218 |
* Fix: Corrected a misspelled function edd_render_dowwn_tax_options.
|
6 |
Tags: download, downloads, e-store, eshop, digital downloads, e-commerce, wp-ecommerce, wp ecommerce, ecommerce, ebook
|
7 |
Requires at least: 4.4
|
8 |
Tested up to: 4.9
|
9 |
+
Stable Tag: 2.8.13
|
10 |
License: GNU Version 2 or Any Later Version
|
11 |
|
12 |
The easiest way to sell digital products with WordPress.
|
49 |
* Coinbase
|
50 |
* Moneybookers / Skrill
|
51 |
* Payza
|
|
|
52 |
* PagSeguro
|
53 |
|
54 |
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).
|
168 |
* [SOFORT Banking](https://easydigitaldownloads.com/downloads/sofort-banking-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=sofort-banking-gateway&utm_campaign=readme)
|
169 |
* [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)
|
170 |
* [Payza](https://easydigitaldownloads.com/downloads/payza-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=payza-payment-gateway&utm_campaign=readme)
|
|
|
171 |
* [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)
|
172 |
* [PayPlug](https://easydigitaldownloads.com/downloads/payplug-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=payplug-gateway&utm_campaign=readme)
|
173 |
* [GoCardless](https://easydigitaldownloads.com/downloads/gocardless-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=gocardless-payment-gateway&utm_campaign=readme)
|
211 |
|
212 |
== Changelog ==
|
213 |
|
214 |
+
= 2.8.13, November 20, 2017 =
|
215 |
+
* Fix: Cart details incorrectly reported item quantity as 0 in some cases.
|
216 |
+
* Fix: Prevent an edge case around adding past purchases to new users.
|
217 |
+
* Fix: Searching by custom order number only worked if a suffix or prefix is included.
|
218 |
+
* Fix: Corrected some translation issues.
|
219 |
+
* New: Allow filtering of the PayPal IPN data.
|
220 |
+
* New: Add support for Payment Data Transport (PDT) in PayPal Standard.
|
221 |
+
* Tweak: Removed MercadoPago from list of extensions in readme.
|
222 |
+
* Tweak: Added a colon that was missing on taxes & subtotal of the purchase confirmation.
|
223 |
+
* Tweak: Add debug logging to PayPal IPN capturing.
|
224 |
+
|
225 |
+
|
226 |
= 2.8.12, November 10, 2017 =
|
227 |
* Fix: Reverted some of the performance improvements due to edge case errors.
|
228 |
* Fix: Corrected a misspelled function edd_render_dowwn_tax_options.
|
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>
|
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>
|