Skip to content

Commit

Permalink
Merge branch 'release/2.1' of github.com:easydigitaldownloads/Easy-Di…
Browse files Browse the repository at this point in the history
…gital-Downloads into release/2.1
  • Loading branch information
pippinsplugins committed Aug 11, 2014
2 parents 374cb44 + e9d35d0 commit 26908ac
Show file tree
Hide file tree
Showing 8 changed files with 134 additions and 52 deletions.
12 changes: 6 additions & 6 deletions includes/admin/payments/actions.php
Original file line number Diff line number Diff line change
Expand Up @@ -132,12 +132,12 @@ function edd_update_payment_details( $data ) {
// Set new status
edd_update_payment_status( $payment_id, $status );

update_post_meta( $payment_id, '_edd_payment_user_id', $user_id );
update_post_meta( $payment_id, '_edd_payment_user_email', $email );
update_post_meta( $payment_id, '_edd_payment_meta', $meta );
update_post_meta( $payment_id, '_edd_payment_total', $total );
update_post_meta( $payment_id, '_edd_payment_downloads', $total );
update_post_meta( $payment_id, '_edd_payment_unlimited_downloads', $unlimited );
edd_update_payment_meta( $payment_id, '_edd_payment_user_id', $user_id );
edd_update_payment_meta( $payment_id, '_edd_payment_user_email', $email );
edd_update_payment_meta( $payment_id, '_edd_payment_meta', $meta );
edd_update_payment_meta( $payment_id, '_edd_payment_total', $total );
edd_update_payment_meta( $payment_id, '_edd_payment_downloads', $total );
edd_update_payment_meta( $payment_id, '_edd_payment_unlimited_downloads', $unlimited );

do_action( 'edd_updated_edited_purchase', $payment_id );

Expand Down
2 changes: 1 addition & 1 deletion includes/admin/upgrades/upgrade-functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,7 @@ function edd_v20_upgrade_sequential_payment_numbers() {
// Re-add the prefix and postfix
$payment_number = $prefix . $number . $postfix;

update_post_meta( $payment->ID, '_edd_payment_number', $payment_number );
edd_update_payment_meta( $payment->ID, '_edd_payment_number', $payment_number );

// Increment the payment number
$number++;
Expand Down
4 changes: 2 additions & 2 deletions includes/gateways/paypal-standard.php
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ function edd_process_paypal_web_accept_and_cart( $data ) {
// This runs when a Buy Now purchase was made. It bypasses checkout so no personal info is collected until PayPal

// No email associated with purchase, so store from PayPal
update_post_meta( $payment_id, '_edd_payment_user_email', $data['payer_email'] );
edd_update_payment_meta( $payment_id, '_edd_payment_user_email', $data['payer_email'] );

// Setup and store the customers's details
$address = array();
Expand All @@ -367,7 +367,7 @@ function edd_process_paypal_web_accept_and_cart( $data ) {

$payment_meta = get_post_meta( $payment_id, '_edd_payment_meta', true );
$payment_meta['user_info'] = $user_info;
update_post_meta( $payment_id, '_edd_payment_meta', $payment_meta );
edd_update_payment_meta( $payment_id, '_edd_payment_meta', $payment_meta );
}

if ( $payment_status == 'refunded' || $payment_status == 'reversed' ) {
Expand Down
4 changes: 2 additions & 2 deletions includes/payments/actions.php
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ function edd_complete_purchase( $payment_id, $new_status, $old_status ) {
if( empty( $completed_date ) ) {

// Save the completed date
update_post_meta( $payment_id, '_edd_completed_date', current_time( 'mysql' ) );
edd_update_payment_meta( $payment_id, '_edd_completed_date', current_time( 'mysql' ) );

do_action( 'edd_complete_purchase', $payment_id );
}
Expand Down Expand Up @@ -224,7 +224,7 @@ function edd_update_old_payments_with_totals( $data ) {
if ( $payments ) {
foreach ( $payments as $payment ) {
$meta = edd_get_payment_meta( $payment->ID );
update_post_meta( $payment->ID, '_edd_payment_total', $meta['amount'] );
edd_update_payment_meta( $payment->ID, '_edd_payment_total', $meta['amount'] );
}
}

Expand Down
106 changes: 73 additions & 33 deletions includes/payments/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -157,20 +157,20 @@ function edd_insert_payment( $payment_data = array() ) {
}

// Record the payment details
update_post_meta( $payment, '_edd_payment_meta', apply_filters( 'edd_payment_meta', $payment_meta, $payment_data ) );
update_post_meta( $payment, '_edd_payment_user_id', $payment_data['user_info']['id'] );
update_post_meta( $payment, '_edd_payment_user_email', $payment_data['user_email'] );
update_post_meta( $payment, '_edd_payment_user_ip', edd_get_ip() );
update_post_meta( $payment, '_edd_payment_purchase_key', $payment_data['purchase_key'] );
update_post_meta( $payment, '_edd_payment_total', $payment_data['price'] );
update_post_meta( $payment, '_edd_payment_mode', $mode );
update_post_meta( $payment, '_edd_payment_gateway', $gateway );
edd_update_payment_meta( $payment, '_edd_payment_meta', apply_filters( 'edd_payment_meta', $payment_meta, $payment_data ) );
edd_update_payment_meta( $payment, '_edd_payment_user_id', $payment_data['user_info']['id'] );
edd_update_payment_meta( $payment, '_edd_payment_user_email', $payment_data['user_email'] );
edd_update_payment_meta( $payment, '_edd_payment_user_ip', edd_get_ip() );
edd_update_payment_meta( $payment, '_edd_payment_purchase_key', $payment_data['purchase_key'] );
edd_update_payment_meta( $payment, '_edd_payment_total', $payment_data['price'] );
edd_update_payment_meta( $payment, '_edd_payment_mode', $mode );
edd_update_payment_meta( $payment, '_edd_payment_gateway', $gateway );
if ( ! empty( $discount ) ) {
update_post_meta( $payment, '_edd_payment_discount_id', $discount->ID );
edd_update_payment_meta( $payment, '_edd_payment_discount_id', $discount->ID );
}

if( edd_get_option( 'enable_sequential' ) ) {
update_post_meta( $payment, '_edd_payment_number', $number );
edd_update_payment_meta( $payment, '_edd_payment_number', $number );
}

// Clear the user's purchased cache
Expand Down Expand Up @@ -735,22 +735,62 @@ function edd_decrease_total_earnings( $amount = 0 ) {
*
* @since 1.2
* @param int $payment_id Payment ID
* @return array $meta Payment Meta
* @param string $meta_key The meta key to pull
* @param bool $single Pull single meta entry or as an object
* @return mixed $meta Payment Meta
*/
function edd_get_payment_meta( $payment_id ) {
$meta = get_post_meta( $payment_id, '_edd_payment_meta', true );
function edd_get_payment_meta( $payment_id = 0, $meta_key = '_edd_payment_meta', $single = true ) {

// Payment meta was simplified in EDD v1.5, so these are here for backwards compatibility
if ( ! isset( $meta['key'] ) )
$meta['key'] = edd_get_payment_key( $payment_id );
$meta = get_post_meta( $payment_id, $meta_key, $single );

if ( ! isset( $meta['email'] ) )
$meta['email'] = edd_get_payment_user_email( $payment_id );
if ( $meta_key === '_edd_payment_meta' ) {

if ( ! isset( $meta['date'] ) )
$meta['date'] = get_post_field( 'post_date', $payment_id );
// Payment meta was simplified in EDD v1.5, so these are here for backwards compatibility
if ( ! isset( $meta['key'] ) ) {
$meta['key'] = edd_get_payment_key( $payment_id );
}

if ( ! isset( $meta['email'] ) ) {
$meta['email'] = edd_get_payment_user_email( $payment_id );
}

if ( ! isset( $meta['date'] ) ) {
$meta['date'] = get_post_field( 'post_date', $payment_id );
}
}

$meta = apply_filters( 'edd_get_payment_meta_' . $meta_key, $meta, $payment_id );

return apply_filters( 'edd_get_payment_meta', $meta, $payment_id, $meta_key );
}

/**
* Update the meta for a payment
* @param integer $payment_id Payment ID
* @param string $meta_key Meta key to update
* @param string $meta_value Value to udpate to
* @param string $prev_value Previous value
* @return mixed Meta ID if successful, false if unsuccessful
*/
function edd_update_payment_meta( $payment_id = 0, $meta_key = '', $meta_value = '', $prev_value = '' ) {

if ( empty( $payment_id ) || empty( $meta_key ) ) {
return;
}

if ( $meta_key == 'key' || $meta_key == 'email' || $meta_key == 'date' ) {

$current_meta = edd_get_payment_meta( $payment_id );
$current_meta[$meta_key] = $meta_value;

$meta_key = '_edd_payment_meta';
$meta_value = $current_meta;

}

$meta_value = apply_filters( 'edd_edd_update_payment_meta_' . $meta_key, $meta_value, $payment_id );

return apply_filters( 'edd_get_payment_meta', $meta, $payment_id );
return update_post_meta( $payment_id, $meta_key, $meta_value, $prev_value );
}

/**
Expand Down Expand Up @@ -846,7 +886,7 @@ function edd_get_payment_meta_cart_details( $payment_id, $include_bundle_files =
* @return string $email User Email
*/
function edd_get_payment_user_email( $payment_id ) {
$email = get_post_meta( $payment_id, '_edd_payment_user_email', true );
$email = edd_get_payment_meta( $payment_id, '_edd_payment_user_email', true );

return apply_filters( 'edd_payment_user_email', $email );
}
Expand All @@ -859,7 +899,7 @@ function edd_get_payment_user_email( $payment_id ) {
* @return string $user_id User ID
*/
function edd_get_payment_user_id( $payment_id ) {
$user_id = get_post_meta( $payment_id, '_edd_payment_user_id', true );
$user_id = edd_get_payment_meta( $payment_id, '_edd_payment_user_id', true );

return apply_filters( 'edd_payment_user_id', $user_id );
}
Expand All @@ -872,7 +912,7 @@ function edd_get_payment_user_id( $payment_id ) {
* @return bool $unlimited
*/
function edd_payment_has_unlimited_downloads( $payment_id ) {
$unlimited = (bool) get_post_meta( $payment_id, '_edd_payment_unlimited_downloads', true );
$unlimited = (bool) edd_get_payment_meta( $payment_id, '_edd_payment_unlimited_downloads', true );

return apply_filters( 'edd_payment_unlimited_downloads', $unlimited );
}
Expand All @@ -885,7 +925,7 @@ function edd_payment_has_unlimited_downloads( $payment_id ) {
* @return string $ip User IP
*/
function edd_get_payment_user_ip( $payment_id ) {
$ip = get_post_meta( $payment_id, '_edd_payment_user_ip', true );
$ip = edd_get_payment_meta( $payment_id, '_edd_payment_user_ip', true );
return apply_filters( 'edd_payment_user_ip', $ip );
}

Expand All @@ -904,7 +944,7 @@ function edd_get_payment_completed_date( $payment_id = 0 ) {
return false; // This payment was never completed
}

$date = ( $date = get_post_meta( $payment_id, '_edd_completed_date', true ) ) ? $date : $payment->modified_date;
$date = ( $date = edd_get_payment_meta( $payment_id, '_edd_completed_date', true ) ) ? $date : $payment->modified_date;

return apply_filters( 'edd_payment_completed_date', $date, $payment_id );
}
Expand All @@ -917,7 +957,7 @@ function edd_get_payment_completed_date( $payment_id = 0 ) {
* @return string $gateway Gateway
*/
function edd_get_payment_gateway( $payment_id ) {
$gateway = get_post_meta( $payment_id, '_edd_payment_gateway', true );
$gateway = edd_get_payment_meta( $payment_id, '_edd_payment_gateway', true );

return apply_filters( 'edd_payment_gateway', $gateway );
}
Expand All @@ -930,7 +970,7 @@ function edd_get_payment_gateway( $payment_id ) {
* @return string $key Purchase key
*/
function edd_get_payment_key( $payment_id = 0 ) {
$key = get_post_meta( $payment_id, '_edd_payment_purchase_key', true );
$key = edd_get_payment_meta( $payment_id, '_edd_payment_purchase_key', true );
return apply_filters( 'edd_payment_key', $key, $payment_id );
}

Expand All @@ -949,7 +989,7 @@ function edd_get_payment_number( $payment_id = 0 ) {

if( edd_get_option( 'enable_sequential' ) ) {

$number = get_post_meta( $payment_id, '_edd_payment_number', true );
$number = edd_get_payment_meta( $payment_id, '_edd_payment_number', true );

if( ! $number ) {

Expand Down Expand Up @@ -1040,10 +1080,10 @@ function edd_payment_amount( $payment_id = 0 ) {
*/
function edd_get_payment_amount( $payment_id ) {

$amount = get_post_meta( $payment_id, '_edd_payment_total', true );
$amount = edd_get_payment_meta( $payment_id, '_edd_payment_total', true );

if ( empty( $amount ) && '0.00' != $amount ) {
$meta = get_post_meta( $payment_id, '_edd_payment_meta', true );
$meta = edd_get_payment_meta( $payment_id, '_edd_payment_meta', true );
$meta = maybe_unserialize( $meta );

if ( isset( $meta['amount'] ) ) {
Expand Down Expand Up @@ -1174,7 +1214,7 @@ function edd_get_payment_fees( $payment_id = 0, $type = 'all' ) {
function edd_get_payment_transaction_id( $payment_id = 0 ) {

$transaction_id = false;
$transaction_id = get_post_meta( $payment_id, '_edd_payment_transaction_id', true );
$transaction_id = edd_get_payment_meta( $payment_id, '_edd_payment_transaction_id', true );

if ( empty( $transaction_id ) ) {

Expand All @@ -1201,7 +1241,7 @@ function edd_set_payment_transaction_id( $payment_id = 0, $transaction_id = '' )

$transaction_id = apply_filters( 'edd_set_payment_transaction_id', $transaction_id, $payment_id );

return update_post_meta( $payment_id, '_edd_payment_transaction_id', $transaction_id );
return edd_update_payment_meta( $payment_id, '_edd_payment_transaction_id', $transaction_id );
}

/**
Expand Down
4 changes: 2 additions & 2 deletions includes/user-functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -367,8 +367,8 @@ function edd_add_past_purchases_to_new_user( $user_id ) {
$meta['user_info'] = $meta['user_info'];

// Store the updated user ID in the payment meta
update_post_meta( $payment->ID, '_edd_payment_meta', $meta );
update_post_meta( $payment->ID, '_edd_payment_user_id', $user_id );
edd_update_payment_meta( $payment->ID, '_edd_payment_meta', $meta );
edd_update_payment_meta( $payment->ID, '_edd_payment_user_id', $user_id );
}
}

Expand Down
2 changes: 1 addition & 1 deletion tests/unit-tests/misc.php
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ public function test_get_countries() {
'MS' => 'Montserrat',
'MT' => 'Malta',
'MU' => 'Mauritius',
'Mv' => 'Maldives',
'MV' => 'Maldives',
'MW' => 'Malawi',
'MX' => 'Mexico',
'MY' => 'Malaysia',
Expand Down
52 changes: 47 additions & 5 deletions tests/unit-tests/payments.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ class Tests_Payments extends EDD_UnitTestCase {
protected $_payment_id = null;
protected $_key = null;
protected $_post = null;
protected $_payment_key = null;

public function setUp() {

Expand Down Expand Up @@ -111,10 +112,12 @@ public function setUp() {
)
);

$this->_payment_key = strtolower( md5( uniqid() ) );

$purchase_data = array(
'price' => number_format( (float) $total, 2 ),
'date' => date( 'Y-m-d H:i:s', strtotime( '-1 day' ) ),
'purchase_key' => strtolower( md5( uniqid() ) ),
'purchase_key' => $this->_payment_key,
'user_email' => $user_info['email'],
'user_info' => $user_info,
'currency' => 'USD',
Expand Down Expand Up @@ -222,20 +225,59 @@ public function test_get_payment_number() {

$this->assertEquals( 'EDD-1', edd_get_payment_number( $this->_payment_id ) );
$this->assertEquals( 'EDD-2', edd_get_next_payment_number() );

// Now disable sequential and ensure values come back as expected
unset( $edd_options['enable_sequential'] );
update_option( 'edd_settings', $edd_options );

$this->assertEquals( $this->_payment_id, edd_get_payment_number( $this->_payment_id ) );
}

public function test_get_payment_transaction_id_legacy() {
public function test_get_payment_transaction_id() {
$this->assertEquals( $this->_transaction_id, edd_get_payment_transaction_id( $this->_payment_id ) );
}

public function test_get_payment_transaction_id() {
$this->assertEquals( $this->_transaction_id, edd_paypal_get_payment_transaction_id( $this->payment_id ) );
public function test_get_payment_transaction_id_legacy() {
$this->assertEquals( $this->_transaction_id, edd_paypal_get_payment_transaction_id( $this->_payment_id ) );
}

public function test_get_payment_meta() {

// Test by getting the payment key with three different methods
$this->assertEquals( $this->_payment_key, edd_get_payment_meta( $this->_payment_id, '_edd_payment_purchase_key' ) );
$this->assertEquals( $this->_payment_key, get_post_meta( $this->_payment_id, '_edd_payment_purchase_key', true ) );
$this->assertEquals( $this->_payment_key, edd_get_payment_key( $this->_payment_id ) );

// Try and retrieve the transaction ID
$this->assertEquals( $this->_transaction_id, edd_get_payment_meta( $this->_payment_id, '_edd_payment_transaction_id' ) );

$user_info = edd_get_payment_meta_user_info( $this->_payment_id );
$this->assertEquals( $user_info['email'], edd_get_payment_meta( $this->_payment_id, '_edd_payment_user_email' ) );
$this->assertEquals( $user_info['key'], $this->_payment_key );

}

public function test_update_payment_meta() {

$old_value = $this->_payment_key;
$this->assertEquals( $old_value, edd_get_payment_meta( $this->_payment_id, '_edd_payment_purchase_key' ) );

$new_value = 'test12345';
$this->assertNotEquals( $old_value, $new_value );

$ret = edd_update_payment_meta( $this->_payment_id, '_edd_payment_purchase_key', $new_value );

$this->assertTrue( $ret );

$this->assertEquals( $new_value, edd_get_payment_meta( $this->_payment_id, '_edd_payment_purchase_key' ) );

$ret = edd_update_payment_meta( $this->_payment_id, '_edd_payment_user_email', 'test@test.com' );

$this->assertTrue( $ret );

$user_info = edd_get_payment_meta_user_info( $this->_payment_id );
$this->assertEquals( 'john@test.com', edd_get_payment_meta( $this->_payment_id, '_edd_payment_user_email' ) );

}

}

0 comments on commit 26908ac

Please sign in to comment.