Easy Digital Downloads - Version 2.7.6

Version Description

Download this release

Release Info

Developer mordauk
Plugin Icon 128x128 Easy Digital Downloads
Version 2.7.6
Comparing to
See all releases

Code changes from version 2.7.5 to 2.7.6

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.7.5
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.7.5
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.7.5' );
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.7.6
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.6
29
  */
30
 
31
  // Exit if accessed directly.
206
 
207
  // Plugin version.
208
  if ( ! defined( 'EDD_VERSION' ) ) {
209
+ define( 'EDD_VERSION', '2.7.6' );
210
  }
211
 
212
  // Plugin Folder Path.
includes/admin/customers/customers.php CHANGED
@@ -112,7 +112,10 @@ function edd_render_customer_view( $view, $callbacks ) {
112
  ?>
113
 
114
  <div class='wrap'>
115
- <h2><?php _e( 'Customer Details', 'easy-digital-downloads' );?></h2>
 
 
 
116
  <?php if ( edd_get_errors() ) :?>
117
  <div class="error settings-error">
118
  <?php edd_print_errors(); ?>
@@ -198,6 +201,7 @@ function edd_customers_view( $customer ) {
198
  <?php echo get_avatar( $customer->email ); ?><br />
199
  <?php if ( current_user_can( $customer_edit_role ) ): ?>
200
  <span class="info-item editable customer-edit-link"><a href="#" id="edit-customer"><?php _e( 'Edit Customer', 'easy-digital-downloads' ); ?></a></span>
 
201
  <?php endif; ?>
202
  </div>
203
 
112
  ?>
113
 
114
  <div class='wrap'>
115
+ <h2>
116
+ <?php _e( 'Customer Details', 'easy-digital-downloads' ); ?>
117
+ <?php do_action( 'edd_after_customer_details_header', $customer ); ?>
118
+ </h2>
119
  <?php if ( edd_get_errors() ) :?>
120
  <div class="error settings-error">
121
  <?php edd_print_errors(); ?>
201
  <?php echo get_avatar( $customer->email ); ?><br />
202
  <?php if ( current_user_can( $customer_edit_role ) ): ?>
203
  <span class="info-item editable customer-edit-link"><a href="#" id="edit-customer"><?php _e( 'Edit Customer', 'easy-digital-downloads' ); ?></a></span>
204
+ <?php do_action( 'edd_after_customer_edit_link', $customer ); ?>
205
  <?php endif; ?>
206
  </div>
207
 
includes/admin/import/class-batch-import-downloads.php CHANGED
@@ -113,11 +113,11 @@ class EDD_Batch_Downloads_Import extends EDD_Batch_Import {
113
 
114
  // Check all forms of possible user inputs, email, ID, login.
115
  if ( is_email( $args['post_author'] ) ) {
116
- $user = get_user_by( 'user_email', $args['post_author'] );
117
  } elseif ( is_numeric( $args['post_author'] ) ) {
118
  $user = get_user_by( 'ID', $args['post_author'] );
119
  } else {
120
- $user = get_user_by( 'user_login', $args['post_author'] );
121
  }
122
 
123
  // If we don't find one, resort to the logged in user.
113
 
114
  // Check all forms of possible user inputs, email, ID, login.
115
  if ( is_email( $args['post_author'] ) ) {
116
+ $user = get_user_by( 'email', $args['post_author'] );
117
  } elseif ( is_numeric( $args['post_author'] ) ) {
118
  $user = get_user_by( 'ID', $args['post_author'] );
119
  } else {
120
+ $user = get_user_by( 'login', $args['post_author'] );
121
  }
122
 
123
  // If we don't find one, resort to the logged in user.
includes/admin/import/class-batch-import-payments.php CHANGED
@@ -196,7 +196,7 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
196
 
197
  } else {
198
 
199
- $user = get_user_by( 'user_login', $user_id );
200
 
201
  }
202
 
196
 
197
  } else {
198
 
199
+ $user = get_user_by( 'login', $user_id );
200
 
201
  }
202
 
includes/cart/class-edd-cart.php CHANGED
@@ -240,12 +240,15 @@ class EDD_Cart {
240
  $fees = $this->get_fees( 'fee', $item['id'], $price_id );
241
  $subtotal = $item_price * $quantity;
242
 
 
 
 
243
  foreach ( $fees as $fee ) {
244
  $fee_amount = (float) $fee['amount'];
245
  $subtotal += $fee_amount;
246
  }
247
 
248
- $tax = $this->get_item_tax( $item['id'], $options, $subtotal - $discount );
249
 
250
  if ( edd_prices_include_tax() ) {
251
  $subtotal -= round( $tax, edd_currency_decimal_filter() );
@@ -385,9 +388,9 @@ class EDD_Cart {
385
 
386
  $quantities_enabled = edd_item_quantities_enabled() && ! edd_download_quantities_disabled( $download_id );
387
 
388
- if ( edd_has_variable_prices( $download_id ) && ! isset( $options['price_id'] ) ) {
389
- // Forces to the first price ID if none is specified and download has variable prices
390
- $options['price_id'] = '0';
391
  }
392
 
393
  if ( isset( $options['quantity'] ) ) {
@@ -1265,6 +1268,7 @@ class EDD_Cart {
1265
  $items = $this->get_contents_details();
1266
 
1267
  if ( $items ) {
 
1268
  $taxes = wp_list_pluck( $items, 'tax' );
1269
 
1270
  if ( is_array( $taxes ) ) {
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() );
388
 
389
  $quantities_enabled = edd_item_quantities_enabled() && ! edd_download_quantities_disabled( $download_id );
390
 
391
+ if ( $download->has_variable_prices() && ! isset( $options['price_id'] ) ) {
392
+ // Forces to the default price ID if none is specified and download has variable prices
393
+ $options['price_id'] = get_post_meta( $download->ID, '_edd_default_price_id', true );
394
  }
395
 
396
  if ( isset( $options['quantity'] ) ) {
1268
  $items = $this->get_contents_details();
1269
 
1270
  if ( $items ) {
1271
+
1272
  $taxes = wp_list_pluck( $items, 'tax' );
1273
 
1274
  if ( is_array( $taxes ) ) {
includes/checkout/template.php CHANGED
@@ -39,7 +39,9 @@ function edd_checkout_form() {
39
  */
40
  do_action( 'edd_checkout_form_top' );
41
 
42
- if ( edd_show_gateways() ) {
 
 
43
  do_action( 'edd_payment_mode_select' );
44
  } else {
45
  do_action( 'edd_purchase_form' );
@@ -194,7 +196,7 @@ function edd_user_info_fields() {
194
  <?php } ?>
195
  </label>
196
  <span class="edd-description" id="edd-first-description"><?php esc_html_e( 'We will use this to personalize your account experience.', 'easy-digital-downloads' ); ?></span>
197
- <input class="edd-input required" type="text" name="edd_first" placeholder="<?php esc_html_e( 'First name', 'easy-digital-downloads' ); ?>" id="edd-first" value="<?php echo esc_attr( $customer['first_name'] ); ?>"<?php if( edd_field_is_required( 'edd_first' ) ) { echo ' required '; } ?> aria-describedby="edd-first-description" />
198
  </p>
199
  <p id="edd-last-name-wrap">
200
  <label class="edd-label" for="edd-last">
@@ -204,7 +206,7 @@ function edd_user_info_fields() {
204
  <?php } ?>
205
  </label>
206
  <span class="edd-description" id="edd-last-description"><?php esc_html_e( 'We will use this as well to personalize your account experience.', 'easy-digital-downloads' ); ?></span>
207
- <input class="edd-input<?php if( edd_field_is_required( 'edd_last' ) ) { echo ' required'; } ?>" type="text" name="edd_last" id="edd-last" placeholder="<?php esc_html_e( 'Last name', 'easy-digital-downloads' ); ?>" value="<?php echo esc_attr( $customer['last_name'] ); ?>"<?php if( edd_field_is_required( 'edd_last' ) ) { echo ' required '; } ?> aria-describedby="edd-last-description"/>
208
  </p>
209
  <?php do_action( 'edd_purchase_form_user_info' ); ?>
210
  <?php do_action( 'edd_purchase_form_user_info_fields' ); ?>
@@ -850,6 +852,22 @@ function edd_checkout_button_purchase() {
850
  $color = edd_get_option( 'checkout_color', 'blue' );
851
  $color = ( $color == 'inherit' ) ? '' : $color;
852
  $style = edd_get_option( 'button_style', 'button' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
853
  $label = edd_get_option( 'checkout_label', '' );
854
 
855
  if ( edd_get_cart_total() ) {
@@ -858,11 +876,7 @@ function edd_checkout_button_purchase() {
858
  $complete_purchase = ! empty( $label ) ? $label : __( 'Free Download', 'easy-digital-downloads' );
859
  }
860
 
861
- ob_start();
862
- ?>
863
- <input type="submit" class="edd-submit <?php echo $color; ?> <?php echo $style; ?>" id="edd-purchase-button" name="edd-purchase" value="<?php echo $complete_purchase; ?>"/>
864
- <?php
865
- return apply_filters( 'edd_checkout_button_purchase', ob_get_clean() );
866
  }
867
 
868
  /**
39
  */
40
  do_action( 'edd_checkout_form_top' );
41
 
42
+ if ( edd_is_ajax_disabled() && ! empty( $_REQUEST['payment-mode'] ) ) {
43
+ do_action( 'edd_purchase_form' );
44
+ } elseif ( edd_show_gateways() ) {
45
  do_action( 'edd_payment_mode_select' );
46
  } else {
47
  do_action( 'edd_purchase_form' );
196
  <?php } ?>
197
  </label>
198
  <span class="edd-description" id="edd-first-description"><?php esc_html_e( 'We will use this to personalize your account experience.', 'easy-digital-downloads' ); ?></span>
199
+ <input class="edd-input required" type="text" name="edd_first" placeholder="<?php esc_html_e( 'First Name', 'easy-digital-downloads' ); ?>" id="edd-first" value="<?php echo esc_attr( $customer['first_name'] ); ?>"<?php if( edd_field_is_required( 'edd_first' ) ) { echo ' required '; } ?> aria-describedby="edd-first-description" />
200
  </p>
201
  <p id="edd-last-name-wrap">
202
  <label class="edd-label" for="edd-last">
206
  <?php } ?>
207
  </label>
208
  <span class="edd-description" id="edd-last-description"><?php esc_html_e( 'We will use this as well to personalize your account experience.', 'easy-digital-downloads' ); ?></span>
209
+ <input class="edd-input<?php if( edd_field_is_required( 'edd_last' ) ) { echo ' required'; } ?>" type="text" name="edd_last" id="edd-last" placeholder="<?php esc_html_e( 'Last Name', 'easy-digital-downloads' ); ?>" value="<?php echo esc_attr( $customer['last_name'] ); ?>"<?php if( edd_field_is_required( 'edd_last' ) ) { echo ' required '; } ?> aria-describedby="edd-last-description"/>
210
  </p>
211
  <?php do_action( 'edd_purchase_form_user_info' ); ?>
212
  <?php do_action( 'edd_purchase_form_user_info_fields' ); ?>
852
  $color = edd_get_option( 'checkout_color', 'blue' );
853
  $color = ( $color == 'inherit' ) ? '' : $color;
854
  $style = edd_get_option( 'button_style', 'button' );
855
+ $label = edd_get_checkout_button_purchase_label();
856
+
857
+ ob_start();
858
+ ?>
859
+ <input type="submit" class="edd-submit <?php echo $color; ?> <?php echo $style; ?>" id="edd-purchase-button" name="edd-purchase" value="<?php echo $label; ?>"/>
860
+ <?php
861
+ return apply_filters( 'edd_checkout_button_purchase', ob_get_clean() );
862
+ }
863
+
864
+ /**
865
+ * Retrieves the label for the purchase button
866
+ *
867
+ * @since 2.7.6
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() ) {
876
  $complete_purchase = ! empty( $label ) ? $label : __( 'Free Download', 'easy-digital-downloads' );
877
  }
878
 
879
+ return apply_filters( 'edd_get_checkout_button_purchase_label', $complete_purchase, $label );
 
 
 
 
880
  }
881
 
882
  /**
includes/class-edd-download.php CHANGED
@@ -535,7 +535,6 @@ class EDD_Download {
535
  * @return array List of bundled downloads
536
  */
537
  public function get_variable_priced_bundled_downloads( $price_id = null ) {
538
-
539
  if ( null == $price_id ) {
540
  return $this->get_bundled_downloads();
541
  }
@@ -543,9 +542,12 @@ class EDD_Download {
543
  $downloads = array();
544
  $bundled_downloads = $this->get_bundled_downloads();
545
  $price_assignments = $this->get_bundle_pricing_variations();
546
- $price_assignments = $price_assignments[0];
547
 
 
 
 
548
 
 
549
  $price_assignments = array_values( $price_assignments );
550
 
551
  foreach ( $price_assignments as $key => $value ) {
535
  * @return array List of bundled downloads
536
  */
537
  public function get_variable_priced_bundled_downloads( $price_id = null ) {
 
538
  if ( null == $price_id ) {
539
  return $this->get_bundled_downloads();
540
  }
542
  $downloads = array();
543
  $bundled_downloads = $this->get_bundled_downloads();
544
  $price_assignments = $this->get_bundle_pricing_variations();
 
545
 
546
+ if ( ! $price_assignments ) {
547
+ return $bundled_downloads;
548
+ }
549
 
550
+ $price_assignments = $price_assignments[0];
551
  $price_assignments = array_values( $price_assignments );
552
 
553
  foreach ( $price_assignments as $key => $value ) {
includes/class-edd-html-elements.php CHANGED
@@ -289,6 +289,23 @@ class EDD_HTML_Elements {
289
  $options[0] = __( 'No users found', 'easy-digital-downloads' );
290
  }
291
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
292
  $output = $this->select( array(
293
  'name' => $args['name'],
294
  'selected' => $args['selected'],
289
  $options[0] = __( 'No users found', 'easy-digital-downloads' );
290
  }
291
 
292
+ // If a selected user has been specified, we need to ensure it's in the initial list of user displayed
293
+ if( ! empty( $args['selected'] ) ) {
294
+
295
+ if( ! array_key_exists( $args['selected'], $options ) ) {
296
+
297
+ $user = get_userdata( $args['selected'] );
298
+
299
+ if( $user ) {
300
+
301
+ $options[ absint( $args['selected'] ) ] = esc_html( $user->display_name );
302
+
303
+ }
304
+
305
+ }
306
+
307
+ }
308
+
309
  $output = $this->select( array(
310
  'name' => $args['name'],
311
  'selected' => $args['selected'],
includes/class-edd-stats.php CHANGED
@@ -111,7 +111,7 @@ class EDD_Stats {
111
  }
112
 
113
  if( empty( $_end_date ) ) {
114
- $_end_date = $_start_date;
115
  }
116
 
117
  $this->start_date = $this->convert_date( $_start_date );
@@ -522,7 +522,7 @@ class EDD_Stats {
522
  if( ! is_wp_error( $this->end_date ) ) {
523
 
524
  if( $this->timestamp ) {
525
- $format = 'Y-m-d 00:00:00';
526
  } else {
527
  $format = 'Y-m-d 23:59:59';
528
  }
111
  }
112
 
113
  if( empty( $_end_date ) ) {
114
+ $_end_date = time();
115
  }
116
 
117
  $this->start_date = $this->convert_date( $_start_date );
522
  if( ! is_wp_error( $this->end_date ) ) {
523
 
524
  if( $this->timestamp ) {
525
+ $format = 'Y-m-d H:i:s';
526
  } else {
527
  $format = 'Y-m-d 23:59:59';
528
  }
includes/emails/functions.php CHANGED
@@ -43,6 +43,7 @@ function edd_email_purchase_receipt( $payment_id, $admin_notice = true, $to_emai
43
 
44
  $heading = edd_get_option( 'purchase_heading', __( 'Purchase Receipt', 'easy-digital-downloads' ) );
45
  $heading = apply_filters( 'edd_purchase_heading', $heading, $payment_id, $payment_data );
 
46
 
47
  $attachments = apply_filters( 'edd_receipt_attachments', array(), $payment_id, $payment_data );
48
  $message = edd_do_email_tags( edd_get_email_body_content( $payment_id, $payment_data ), $payment_id );
43
 
44
  $heading = edd_get_option( 'purchase_heading', __( 'Purchase Receipt', 'easy-digital-downloads' ) );
45
  $heading = apply_filters( 'edd_purchase_heading', $heading, $payment_id, $payment_data );
46
+ $heading = edd_do_email_tags( $heading, $payment_id );
47
 
48
  $attachments = apply_filters( 'edd_receipt_attachments', array(), $payment_id, $payment_data );
49
  $message = edd_do_email_tags( edd_get_email_body_content( $payment_id, $payment_data ), $payment_id );
includes/gateways/amazon-payments.php CHANGED
@@ -159,6 +159,7 @@ final class EDD_Amazon_Payments {
159
  private function filters() {
160
 
161
  add_filter( 'edd_accepted_payment_icons', array( $this, 'register_payment_icon' ), 10, 1 );
 
162
 
163
  if ( is_admin() ) {
164
  add_filter( 'edd_settings_sections_gateways', array( $this, 'register_gateway_section' ), 1, 1 );
@@ -306,6 +307,24 @@ final class EDD_Amazon_Payments {
306
  return $payment_icons;
307
  }
308
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
309
  /**
310
  * Register the payment gateways setting section
311
  *
159
  private function filters() {
160
 
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 );
307
  return $payment_icons;
308
  }
309
 
310
+ /**
311
+ * Hides payment gateway select options after return from Amazon
312
+ *
313
+ * @access public
314
+ * @since 2.7.6
315
+ * @param bool $show Should gateway select be shown
316
+ * @return bool
317
+ */
318
+ public function maybe_hide_gateway_select( $show ) {
319
+
320
+ if( ! empty( $_REQUEST['payment-mode'] ) && 'amazon' == $_REQUEST['payment-mode'] && ! empty( $_REQUEST['amazon_reference_id'] ) && ! empty( $_REQUEST['state'] ) && 'authorized' == $_REQUEST['state'] ) {
321
+
322
+ $show = false;
323
+ }
324
+
325
+ return $show;
326
+ }
327
+
328
  /**
329
  * Register the payment gateways setting section
330
  *
includes/payments/class-edd-payment.php CHANGED
@@ -1720,6 +1720,9 @@ class EDD_Payment {
1720
 
1721
  $updated = wp_update_post( apply_filters( 'edd_update_payment_status_fields', $update_fields ) );
1722
 
 
 
 
1723
  $all_payment_statuses = edd_get_payment_statuses();
1724
  $this->status_nicename = array_key_exists( $status, $all_payment_statuses ) ? $all_payment_statuses[ $status ] : ucfirst( $status );
1725
 
1720
 
1721
  $updated = wp_update_post( apply_filters( 'edd_update_payment_status_fields', $update_fields ) );
1722
 
1723
+ $this->status = $status;
1724
+ $this->post_status = $status;
1725
+
1726
  $all_payment_statuses = edd_get_payment_statuses();
1727
  $this->status_nicename = array_key_exists( $status, $all_payment_statuses ) ? $all_payment_statuses[ $status ] : ucfirst( $status );
1728
 
includes/payments/class-payments-query.php CHANGED
@@ -113,7 +113,7 @@ class EDD_Payments_Query extends EDD_Stats {
113
  }
114
 
115
  /**
116
- * Modify the query/query arguments before we retrieve payments.
117
  *
118
  * @access public
119
  * @since 1.8
@@ -121,20 +121,6 @@ class EDD_Payments_Query extends EDD_Stats {
121
  */
122
  public function init() {
123
 
124
- add_action( 'edd_pre_get_payments', array( $this, 'date_filter_pre' ) );
125
- add_action( 'edd_post_get_payments', array( $this, 'date_filter_post' ) );
126
-
127
- add_action( 'edd_pre_get_payments', array( $this, 'orderby' ) );
128
- add_action( 'edd_pre_get_payments', array( $this, 'status' ) );
129
- add_action( 'edd_pre_get_payments', array( $this, 'month' ) );
130
- add_action( 'edd_pre_get_payments', array( $this, 'per_page' ) );
131
- add_action( 'edd_pre_get_payments', array( $this, 'page' ) );
132
- add_action( 'edd_pre_get_payments', array( $this, 'user' ) );
133
- add_action( 'edd_pre_get_payments', array( $this, 'customer' ) );
134
- add_action( 'edd_pre_get_payments', array( $this, 'search' ) );
135
- add_action( 'edd_pre_get_payments', array( $this, 'mode' ) );
136
- add_action( 'edd_pre_get_payments', array( $this, 'children' ) );
137
- add_action( 'edd_pre_get_payments', array( $this, 'download' ) );
138
  }
139
 
140
  /**
@@ -150,6 +136,21 @@ class EDD_Payments_Query extends EDD_Stats {
150
  */
151
  public function get_payments() {
152
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  do_action( 'edd_pre_get_payments', $this );
154
 
155
  $query = new WP_Query( $this->args );
113
  }
114
 
115
  /**
116
+ * Nothing here at the moment.
117
  *
118
  * @access public
119
  * @since 1.8
121
  */
122
  public function init() {
123
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
  }
125
 
126
  /**
136
  */
137
  public function get_payments() {
138
 
139
+ // Modify the query/query arguments before we retrieve payments.
140
+ $this->date_filter_pre();
141
+ $this->date_filter_post();
142
+ $this->orderby();
143
+ $this->status();
144
+ $this->month();
145
+ $this->per_page();
146
+ $this->page();
147
+ $this->user();
148
+ $this->customer();
149
+ $this->search();
150
+ $this->mode();
151
+ $this->children();
152
+ $this->download();
153
+
154
  do_action( 'edd_pre_get_payments', $this );
155
 
156
  $query = new WP_Query( $this->args );
includes/scripts.php CHANGED
@@ -62,7 +62,7 @@ function edd_load_scripts() {
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' => __( 'Purchase', 'easy-digital-downloads' ),
66
  'taxes_enabled' => edd_use_taxes() ? '1' : '0',
67
  'edd_version' => EDD_VERSION
68
  ) ) );
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
  ) ) );
includes/template-functions.php CHANGED
@@ -926,7 +926,6 @@ function edd_add_body_classes( $class ) {
926
 
927
  if( edd_is_test_mode() ) {
928
  $classes[] = 'edd-test-mode';
929
- $classes[] = 'edd-page';
930
  }
931
 
932
  return array_unique( $classes );
@@ -1074,4 +1073,4 @@ function edd_get_bundle_item_price_id( $bundle_item ) {
1074
  $bundle_price_id = isset( $bundle_item_pieces[1] ) ? $bundle_item_pieces[1] : null;
1075
 
1076
  return $bundle_price_id;
1077
- }
926
 
927
  if( edd_is_test_mode() ) {
928
  $classes[] = 'edd-test-mode';
 
929
  }
930
 
931
  return array_unique( $classes );
1073
  $bundle_price_id = isset( $bundle_item_pieces[1] ) ? $bundle_item_pieces[1] : null;
1074
 
1075
  return $bundle_price_id;
1076
+ }
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
7
  Requires at least: 4.0
8
  Tested up to: 4.8
9
- Stable Tag: 2.7.5
10
 
11
  License: GNU Version 2 or Any Later Version
12
 
@@ -194,6 +194,25 @@ Yes, through the addition of one or more of the add-on payment gateways, you can
194
 
195
  == Changelog ==
196
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
  = 2.7.5, March 6, 2017 =
198
 
199
  * Tweak: Added a new filter that allows for the message shown in the email receipt when there are no download files to be controlled
6
  Tags: download, downloads, e-store, eshop, digital downloads, e-commerce, wp-ecommerce, wp ecommerce
7
  Requires at least: 4.0
8
  Tested up to: 4.8
9
+ Stable Tag: 2.7.6
10
 
11
  License: GNU Version 2 or Any Later Version
12
 
194
 
195
  == Changelog ==
196
 
197
+ = 2.7.6, March 24, 2017 =
198
+
199
+ * New: Added new hooks to customer details page
200
+ * New: Email tags are now processewd in the Purchase Email heading
201
+ * Fix: User dropdown field does not always show selected user
202
+ * Fix: Payment field for Amazon Payments gateway not properly shown after authenticating with Amazon
203
+ * Fix: edd-page class improperly added to all site pages when Test Mode is enabled
204
+ * Fix: Incorrectly named CSS selector
205
+ * Fix: Checkout does not work when AJAX is disabled
206
+ * Fix: Profile editor HTML markup is inconsistent with other forms
207
+ * Fix: Query parameters not properly setup when calling multiple instances of EDD_Payments_Query
208
+ * Fix: Invalid argument supplied foreach() notice on some bundle products
209
+ * Fix: Incorrect capitalization on First Name field of checkout
210
+ * Fix: Incorrect field name passed to get_user_by() in payment import
211
+ * Fix: Custom "Complete Purchase Text" not used if payment submission results in error
212
+ * Fix: Incorrect date set for "end_date" in EDD_Stats class
213
+ * Fix: Price option not properly added when using custom add to cart links for variable priced product and not price ID is supplied
214
+ * Fix: Fees that are taxede get counted twice in tax total
215
+
216
  = 2.7.5, March 6, 2017 =
217
 
218
  * Tweak: Added a new filter that allows for the message shown in the email receipt when there are no download files to be controlled
templates/edd.css CHANGED
@@ -381,7 +381,7 @@
381
  #edd_checkout_form_wrap span.card-type.amex {
382
  background: url(images/icons/americanexpress.png ) no-repeat;
383
  }
384
- #edd_checkeout_form_wrap .edd-cart-ajax {
385
  -webkit-box-shadow: none;
386
  -moz-box-shadow: none;
387
  box-shadow: none;
@@ -701,8 +701,6 @@ table#edd_purchase_receipt_products .edd_bundled_product_name {
701
  list-style-type: none;
702
  display: inline-table;
703
  margin-left: 0;
704
- }
705
- #edd_profile_editor_form .edd-profile-emails {
706
  margin-bottom: 0;
707
  }
708
  #edd_profile_editor_form .edd-profile-email {
381
  #edd_checkout_form_wrap span.card-type.amex {
382
  background: url(images/icons/americanexpress.png ) no-repeat;
383
  }
384
+ #edd_checkout_form_wrap .edd-cart-ajax {
385
  -webkit-box-shadow: none;
386
  -moz-box-shadow: none;
387
  box-shadow: none;
701
  list-style-type: none;
702
  display: inline-table;
703
  margin-left: 0;
 
 
704
  margin-bottom: 0;
705
  }
706
  #edd_profile_editor_form .edd-profile-email {
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-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_checkeout_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}
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/shortcode-profile-editor.php CHANGED
@@ -30,15 +30,20 @@ if ( is_user_logged_in() ):
30
 
31
  <?php do_action( 'edd_profile_editor_fields_top' ); ?>
32
 
33
- <fieldset>
34
- <span id="edd_profile_name_label"><legend><?php _e( 'Change your Name', 'easy-digital-downloads' ); ?></legend></span>
35
- <p id="edd_profile_name_wrap">
 
 
36
  <label for="edd_first_name"><?php _e( 'First Name', 'easy-digital-downloads' ); ?></label>
37
  <input name="edd_first_name" id="edd_first_name" class="text edd-input" type="text" value="<?php echo esc_attr( $first_name ); ?>" />
38
- <br />
 
 
39
  <label for="edd_last_name"><?php _e( 'Last Name', 'easy-digital-downloads' ); ?></label>
40
  <input name="edd_last_name" id="edd_last_name" class="text edd-input" type="text" value="<?php echo esc_attr( $last_name ); ?>" />
41
  </p>
 
42
  <p id="edd_profile_display_name_wrap">
43
  <label for="edd_display_name"><?php _e( 'Display Name', 'easy-digital-downloads' ); ?></label>
44
  <select name="edd_display_name" id="edd_display_name" class="select edd-select">
@@ -56,8 +61,10 @@ if ( is_user_logged_in() ):
56
  </select>
57
  <?php do_action( 'edd_profile_editor_name' ); ?>
58
  </p>
 
59
  <?php do_action( 'edd_profile_editor_after_name' ); ?>
60
- <p>
 
61
  <label for="edd_email"><?php _e( 'Primary Email Address', 'easy-digital-downloads' ); ?></label>
62
  <?php $customer = new EDD_Customer( $user_id, true ); ?>
63
  <?php if ( $customer->id > 0 ) : ?>
@@ -90,94 +97,123 @@ if ( is_user_logged_in() ):
90
  <?php endif; ?>
91
 
92
  <?php do_action( 'edd_profile_editor_email' ); ?>
93
-
94
  </p>
95
 
96
  <?php if ( $customer->id > 0 && count( $customer->emails ) > 1 ) : ?>
97
- <div>
98
- <label for="edd_emails"><?php _e( 'Additional Email Addresses', 'easy-digital-downloads' ); ?></label>
99
- <ul class="edd-profile-emails">
100
- <?php foreach ( $customer->emails as $email ) : ?>
101
- <?php if ( $email === $customer->email ) { continue; } ?>
102
- <li class="edd-profile-email">
103
- <?php echo $email; ?>
104
- <span class="actions">
105
- <?php
106
- $remove_url = wp_nonce_url(
107
- add_query_arg(
108
- array(
109
- 'email' => $email,
110
- 'edd_action' => 'profile-remove-email',
111
- 'redirect' => esc_url( edd_get_current_page_url() ),
112
- )
113
- ),
114
- 'edd-remove-customer-email'
115
- );
116
- ?>
117
- <a href="<?php echo $remove_url ?>" class="delete"><?php _e( 'Remove', 'easy-digital-downloads' ); ?></a>
118
- </span>
119
- </li>
120
- <?php endforeach; ?>
121
- </ul>
122
- </div>
123
  <?php endif; ?>
124
 
125
  <?php do_action( 'edd_profile_editor_after_email' ); ?>
126
 
127
- <span id="edd_profile_billing_address_label"><legend><?php _e( 'Change your Billing Address', 'easy-digital-downloads' ); ?></legend></span>
128
- <p id="edd_profile_billing_address_wrap">
 
 
 
 
 
129
  <label for="edd_address_line1"><?php _e( 'Line 1', 'easy-digital-downloads' ); ?></label>
130
  <input name="edd_address_line1" id="edd_address_line1" class="text edd-input" type="text" value="<?php echo esc_attr( $address['line1'] ); ?>" />
131
- <br/>
 
 
132
  <label for="edd_address_line2"><?php _e( 'Line 2', 'easy-digital-downloads' ); ?></label>
133
  <input name="edd_address_line2" id="edd_address_line2" class="text edd-input" type="text" value="<?php echo esc_attr( $address['line2'] ); ?>" />
134
- <br/>
 
 
135
  <label for="edd_address_city"><?php _e( 'City', 'easy-digital-downloads' ); ?></label>
136
  <input name="edd_address_city" id="edd_address_city" class="text edd-input" type="text" value="<?php echo esc_attr( $address['city'] ); ?>" />
137
- <br/>
 
 
138
  <label for="edd_address_zip"><?php _e( 'Zip / Postal Code', 'easy-digital-downloads' ); ?></label>
139
  <input name="edd_address_zip" id="edd_address_zip" class="text edd-input" type="text" value="<?php echo esc_attr( $address['zip'] ); ?>" />
140
- <br/>
 
 
141
  <label for="edd_address_country"><?php _e( 'Country', 'easy-digital-downloads' ); ?></label>
142
  <select name="edd_address_country" id="edd_address_country" class="select edd-select">
143
  <?php foreach( edd_get_country_list() as $key => $country ) : ?>
144
  <option value="<?php echo $key; ?>"<?php selected( $address['country'], $key ); ?>><?php echo esc_html( $country ); ?></option>
145
  <?php endforeach; ?>
146
  </select>
147
- <br/>
 
 
148
  <label for="edd_address_state"><?php _e( 'State / Province', 'easy-digital-downloads' ); ?></label>
149
- <?php
150
- if( ! empty( $states ) ) : ?>
151
- <select name="edd_address_state" id="edd_address_state" class="select edd-select">
152
- <?php
153
- foreach( $states as $state_code => $state_name ) {
154
- echo '<option value="' . $state_code . '"' . selected( $state_code, $state, false ) . '>' . $state_name . '</option>';
155
- }
156
- ?>
157
- </select>
158
- <?php else : ?>
159
- <input name="edd_address_state" id="edd_address_state" class="text edd-input" type="text" value="<?php echo esc_attr( $state ); ?>" />
160
  <?php endif; ?>
161
- <br/>
162
  <?php do_action( 'edd_profile_editor_address' ); ?>
163
  </p>
 
164
  <?php do_action( 'edd_profile_editor_after_address' ); ?>
165
- <span id="edd_profile_password_label"><legend><?php _e( 'Change your Password', 'easy-digital-downloads' ); ?></legend></span>
 
 
 
 
 
 
166
  <p id="edd_profile_password_wrap">
167
  <label for="edd_user_pass"><?php _e( 'New Password', 'easy-digital-downloads' ); ?></label>
168
  <input name="edd_new_user_pass1" id="edd_new_user_pass1" class="password edd-input" type="password"/>
169
- <br />
 
 
170
  <label for="edd_user_pass"><?php _e( 'Re-enter Password', 'easy-digital-downloads' ); ?></label>
171
  <input name="edd_new_user_pass2" id="edd_new_user_pass2" class="password edd-input" type="password"/>
172
  <?php do_action( 'edd_profile_editor_password' ); ?>
173
  </p>
 
174
  <?php do_action( 'edd_profile_editor_after_password' ); ?>
 
 
 
 
 
175
  <p id="edd_profile_submit_wrap">
176
  <input type="hidden" name="edd_profile_editor_nonce" value="<?php echo wp_create_nonce( 'edd-profile-editor-nonce' ); ?>"/>
177
  <input type="hidden" name="edd_action" value="edit_user_profile" />
178
  <input type="hidden" name="edd_redirect" value="<?php echo esc_url( edd_get_current_page_url() ); ?>" />
179
  <input name="edd_profile_editor_submit" id="edd_profile_editor_submit" type="submit" class="edd_submit edd-submit" value="<?php _e( 'Save Changes', 'easy-digital-downloads' ); ?>"/>
180
  </p>
 
181
  </fieldset>
182
 
183
  <?php do_action( 'edd_profile_editor_fields_bottom' ); ?>
@@ -190,4 +226,4 @@ if ( is_user_logged_in() ):
190
  else:
191
  echo '<p>' . __( 'You need to login to edit your profile.', 'easy-digital-downloads' ) . '</p>';
192
  echo edd_login_form();
193
- endif;
30
 
31
  <?php do_action( 'edd_profile_editor_fields_top' ); ?>
32
 
33
+ <fieldset id="edd_profile_personal_fieldset">
34
+
35
+ <legend id="edd_profile_name_label"><?php _e( 'Change your Name', 'easy-digital-downloads' ); ?></legend>
36
+
37
+ <p id="edd_profile_first_name_wrap">
38
  <label for="edd_first_name"><?php _e( 'First Name', 'easy-digital-downloads' ); ?></label>
39
  <input name="edd_first_name" id="edd_first_name" class="text edd-input" type="text" value="<?php echo esc_attr( $first_name ); ?>" />
40
+ </p>
41
+
42
+ <p id="edd_profile_last_name_wrap">
43
  <label for="edd_last_name"><?php _e( 'Last Name', 'easy-digital-downloads' ); ?></label>
44
  <input name="edd_last_name" id="edd_last_name" class="text edd-input" type="text" value="<?php echo esc_attr( $last_name ); ?>" />
45
  </p>
46
+
47
  <p id="edd_profile_display_name_wrap">
48
  <label for="edd_display_name"><?php _e( 'Display Name', 'easy-digital-downloads' ); ?></label>
49
  <select name="edd_display_name" id="edd_display_name" class="select edd-select">
61
  </select>
62
  <?php do_action( 'edd_profile_editor_name' ); ?>
63
  </p>
64
+
65
  <?php do_action( 'edd_profile_editor_after_name' ); ?>
66
+
67
+ <p id="edd_profile_primary_email_wrap">
68
  <label for="edd_email"><?php _e( 'Primary Email Address', 'easy-digital-downloads' ); ?></label>
69
  <?php $customer = new EDD_Customer( $user_id, true ); ?>
70
  <?php if ( $customer->id > 0 ) : ?>
97
  <?php endif; ?>
98
 
99
  <?php do_action( 'edd_profile_editor_email' ); ?>
 
100
  </p>
101
 
102
  <?php if ( $customer->id > 0 && count( $customer->emails ) > 1 ) : ?>
103
+ <p id="edd_profile_emails_wrap">
104
+ <label for="edd_emails"><?php _e( 'Additional Email Addresses', 'easy-digital-downloads' ); ?></label>
105
+ <ul class="edd-profile-emails">
106
+ <?php foreach ( $customer->emails as $email ) : ?>
107
+ <?php if ( $email === $customer->email ) { continue; } ?>
108
+ <li class="edd-profile-email">
109
+ <?php echo $email; ?>
110
+ <span class="actions">
111
+ <?php
112
+ $remove_url = wp_nonce_url(
113
+ add_query_arg(
114
+ array(
115
+ 'email' => $email,
116
+ 'edd_action' => 'profile-remove-email',
117
+ 'redirect' => esc_url( edd_get_current_page_url() ),
118
+ )
119
+ ),
120
+ 'edd-remove-customer-email'
121
+ );
122
+ ?>
123
+ <a href="<?php echo $remove_url ?>" class="delete"><?php _e( 'Remove', 'easy-digital-downloads' ); ?></a>
124
+ </span>
125
+ </li>
126
+ <?php endforeach; ?>
127
+ </ul>
128
+ </p>
129
  <?php endif; ?>
130
 
131
  <?php do_action( 'edd_profile_editor_after_email' ); ?>
132
 
133
+ </fieldset>
134
+
135
+ <fieldset id="edd_profile_address_fieldset">
136
+
137
+ <legend id="edd_profile_billing_address_label"><?php _e( 'Change your Billing Address', 'easy-digital-downloads' ); ?></legend>
138
+
139
+ <p id="edd_profile_billing_address_line_1_wrap">
140
  <label for="edd_address_line1"><?php _e( 'Line 1', 'easy-digital-downloads' ); ?></label>
141
  <input name="edd_address_line1" id="edd_address_line1" class="text edd-input" type="text" value="<?php echo esc_attr( $address['line1'] ); ?>" />
142
+ </p>
143
+
144
+ <p id="edd_profile_billing_address_line_2_wrap">
145
  <label for="edd_address_line2"><?php _e( 'Line 2', 'easy-digital-downloads' ); ?></label>
146
  <input name="edd_address_line2" id="edd_address_line2" class="text edd-input" type="text" value="<?php echo esc_attr( $address['line2'] ); ?>" />
147
+ </p>
148
+
149
+ <p id="edd_profile_billing_address_city_wrap">
150
  <label for="edd_address_city"><?php _e( 'City', 'easy-digital-downloads' ); ?></label>
151
  <input name="edd_address_city" id="edd_address_city" class="text edd-input" type="text" value="<?php echo esc_attr( $address['city'] ); ?>" />
152
+ </p>
153
+
154
+ <p id="edd_profile_billing_address_postal_wrap">
155
  <label for="edd_address_zip"><?php _e( 'Zip / Postal Code', 'easy-digital-downloads' ); ?></label>
156
  <input name="edd_address_zip" id="edd_address_zip" class="text edd-input" type="text" value="<?php echo esc_attr( $address['zip'] ); ?>" />
157
+ </p>
158
+
159
+ <p id="edd_profile_billing_address_country_wrap">
160
  <label for="edd_address_country"><?php _e( 'Country', 'easy-digital-downloads' ); ?></label>
161
  <select name="edd_address_country" id="edd_address_country" class="select edd-select">
162
  <?php foreach( edd_get_country_list() as $key => $country ) : ?>
163
  <option value="<?php echo $key; ?>"<?php selected( $address['country'], $key ); ?>><?php echo esc_html( $country ); ?></option>
164
  <?php endforeach; ?>
165
  </select>
166
+ </p>
167
+
168
+ <p id="edd_profile_billing_address_state_wrap">
169
  <label for="edd_address_state"><?php _e( 'State / Province', 'easy-digital-downloads' ); ?></label>
170
+ <?php if( ! empty( $states ) ) : ?>
171
+ <select name="edd_address_state" id="edd_address_state" class="select edd-select">
172
+ <?php
173
+ foreach( $states as $state_code => $state_name ) {
174
+ echo '<option value="' . $state_code . '"' . selected( $state_code, $state, false ) . '>' . $state_name . '</option>';
175
+ }
176
+ ?>
177
+ </select>
178
+ <?php else : ?>
179
+ <input name="edd_address_state" id="edd_address_state" class="text edd-input" type="text" value="<?php echo esc_attr( $state ); ?>" />
 
180
  <?php endif; ?>
181
+
182
  <?php do_action( 'edd_profile_editor_address' ); ?>
183
  </p>
184
+
185
  <?php do_action( 'edd_profile_editor_after_address' ); ?>
186
+
187
+ </fieldset>
188
+
189
+ <fieldset id="edd_profile_password_fieldset">
190
+
191
+ <legend id="edd_profile_password_label"><?php _e( 'Change your Password', 'easy-digital-downloads' ); ?></legend>
192
+
193
  <p id="edd_profile_password_wrap">
194
  <label for="edd_user_pass"><?php _e( 'New Password', 'easy-digital-downloads' ); ?></label>
195
  <input name="edd_new_user_pass1" id="edd_new_user_pass1" class="password edd-input" type="password"/>
196
+ </p>
197
+
198
+ <p id="edd_profile_billing_address_wrap">
199
  <label for="edd_user_pass"><?php _e( 'Re-enter Password', 'easy-digital-downloads' ); ?></label>
200
  <input name="edd_new_user_pass2" id="edd_new_user_pass2" class="password edd-input" type="password"/>
201
  <?php do_action( 'edd_profile_editor_password' ); ?>
202
  </p>
203
+
204
  <?php do_action( 'edd_profile_editor_after_password' ); ?>
205
+
206
+ </fieldset>
207
+
208
+ <fieldset id="edd_profile_submit_fieldset">
209
+
210
  <p id="edd_profile_submit_wrap">
211
  <input type="hidden" name="edd_profile_editor_nonce" value="<?php echo wp_create_nonce( 'edd-profile-editor-nonce' ); ?>"/>
212
  <input type="hidden" name="edd_action" value="edit_user_profile" />
213
  <input type="hidden" name="edd_redirect" value="<?php echo esc_url( edd_get_current_page_url() ); ?>" />
214
  <input name="edd_profile_editor_submit" id="edd_profile_editor_submit" type="submit" class="edd_submit edd-submit" value="<?php _e( 'Save Changes', 'easy-digital-downloads' ); ?>"/>
215
  </p>
216
+
217
  </fieldset>
218
 
219
  <?php do_action( 'edd_profile_editor_fields_bottom' ); ?>
226
  else:
227
  echo '<p>' . __( 'You need to login to edit your profile.', 'easy-digital-downloads' ) . '</p>';
228
  echo edd_login_form();
229
+ endif;