WP eCommerce - Version 3.8.12

Version Description

  • New: Filter to hide drafts on the front-end: "wpsc_product_display_status"
  • New: Shipwire staging / production option
  • Change: Remove deprecated and unused javascript (and by extension, CSS) from core
  • Change: Remove nusoap
  • Change: Improvements to Marketing admin panel
  • Change: Improvements to Products List Admin Page
  • Fix: WP e-Commerce pagination breaks WordPress pagination
  • Fix: Wrong thumbnail size in Product Specials widget
  • Fix: Filtering by a category also shows all products in subcategories
  • Fix: admin.js throwing a Parse Error in Safari
  • Fix: Product Image Links not working when over HTTPS
  • Fix: If AJAX_URL returns HTTPS and Add to Cart is on HTTP, errors
  • Fix: Add to Cart button doesn't work
  • Fix: Can no longer upload customer attachments
  • Fix: Deprecated warning for wp_convert_bytes_to_hr() function in WordPress 3.6
Download this release

Release Info

Developer garyc40
Plugin Icon 128x128 WP eCommerce
Version 3.8.12
Comparing to
See all releases

Code changes from version 3.8.12-beta to 3.8.12

readme.md CHANGED
@@ -15,10 +15,10 @@ If you're looking for general user support, please submit your support request o
15
  Development status
16
  -------------------------
17
 
18
- * The latest stable version is [3.8.11](http://wordpress.org/extend/plugins/wp-e-commerce).
19
- * Active development version: 3.8.12-dev (branch [master](https://github.com/wp-e-commerce/WP-e-Commerce))
20
- * [Roadmap for 3.8.12](https://github.com/wp-e-commerce/wp-e-commerce/wiki/Roadmap)
21
- * [3.8.12 tickets](https://github.com/wp-e-commerce/wp-e-commerce/issues?labels=&milestone=10&page=1&sort=updated&state=open)
22
 
23
  How to contribute code
24
  -----------------------------
15
  Development status
16
  -------------------------
17
 
18
+ * The latest stable version is [3.8.12](http://wordpress.org/extend/plugins/wp-e-commerce).
19
+ * Active development version: 3.8.13-dev (branch [master](https://github.com/wp-e-commerce/WP-e-Commerce))
20
+ * [Roadmap for 3.8.13](https://github.com/wp-e-commerce/wp-e-commerce/wiki/Roadmap)
21
+ * [3.8.13 tickets](https://github.com/wp-e-commerce/wp-e-commerce/issues?milestone=11&sort=updated&state=open)
22
 
23
  How to contribute code
24
  -----------------------------
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://getshopped.org
4
  Tags: e-commerce, wp-e-commerce, shop, cart, paypal, authorize, stock control, ecommerce, shipping, tax
5
  Requires at least: 3.4
6
  Tested up to: 3.6
7
- Stable tag: 3.8.11
8
 
9
  WP e-Commerce is a free WordPress Shopping Cart Plugin that lets customers buy your products, services and digital downloads online.
10
 
@@ -161,6 +161,7 @@ After upgrading from earlier versions look for link "Update Store". This will up
161
  * Fix: If AJAX_URL returns HTTPS and Add to Cart is on HTTP, errors
162
  * Fix: Add to Cart button doesn't work
163
  * Fix: Can no longer upload customer attachments
 
164
 
165
 
166
  = 3.8.11.1 =
4
  Tags: e-commerce, wp-e-commerce, shop, cart, paypal, authorize, stock control, ecommerce, shipping, tax
5
  Requires at least: 3.4
6
  Tested up to: 3.6
7
+ Stable tag: 3.8.12
8
 
9
  WP e-Commerce is a free WordPress Shopping Cart Plugin that lets customers buy your products, services and digital downloads online.
10
 
161
  * Fix: If AJAX_URL returns HTTPS and Add to Cart is on HTTP, errors
162
  * Fix: Add to Cart button doesn't work
163
  * Fix: Can no longer upload customer attachments
164
+ * Fix: Deprecated warning for wp_convert_bytes_to_hr() function in WordPress 3.6
165
 
166
 
167
  = 3.8.11.1 =
wp-shopping-cart.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: WP e-Commerce
4
  * Plugin URI: http://getshopped.org/
5
  * Description: A plugin that provides a WordPress Shopping Cart. See also: <a href="http://getshopped.org" target="_blank">GetShopped.org</a> | <a href="http://getshopped.org/forums/" target="_blank">Support Forum</a> | <a href="http://docs.getshopped.org/" target="_blank">Documentation</a>
6
- * Version: 3.8.12-beta
7
  * Author: Instinct Entertainment
8
  * Author URI: http://getshopped.org/
9
  **/
3
  * Plugin Name: WP e-Commerce
4
  * Plugin URI: http://getshopped.org/
5
  * Description: A plugin that provides a WordPress Shopping Cart. See also: <a href="http://getshopped.org" target="_blank">GetShopped.org</a> | <a href="http://getshopped.org/forums/" target="_blank">Support Forum</a> | <a href="http://docs.getshopped.org/" target="_blank">Documentation</a>
6
+ * Version: 3.8.12
7
  * Author: Instinct Entertainment
8
  * Author URI: http://getshopped.org/
9
  **/
wpsc-admin/includes/coupon-list-table-class.php CHANGED
@@ -405,7 +405,7 @@ class WPSC_Coupons_List_Table extends WP_List_Table {
405
  $status = isset( $_GET['status'] ) ? absint( $_GET['status'] ) : false;
406
  $where = $status !== false ? "WHERE active = $status" : '';
407
 
408
- $order = strtoupper( $_GET['order'] ) === 'ASC' ? 'ASC' : 'DESC';
409
  $limit = " LIMIT $offset,$per_page;";
410
  $coupons = $wpdb->get_results( "SELECT * FROM `" . WPSC_TABLE_COUPON_CODES . "` {$where} ORDER BY id {$order} {$limit} ", ARRAY_A );
411
 
405
  $status = isset( $_GET['status'] ) ? absint( $_GET['status'] ) : false;
406
  $where = $status !== false ? "WHERE active = $status" : '';
407
 
408
+ $order = isset( $_GET['order'] ) && strtoupper( $_GET['order'] ) === 'ASC' ? 'ASC' : 'DESC';
409
  $limit = " LIMIT $offset,$per_page;";
410
  $coupons = $wpdb->get_results( "SELECT * FROM `" . WPSC_TABLE_COUPON_CODES . "` {$where} ORDER BY id {$order} {$limit} ", ARRAY_A );
411
 
wpsc-admin/includes/product-functions.php CHANGED
@@ -7,7 +7,7 @@
7
  */
8
 
9
  function wpsc_get_max_upload_size(){
10
- return wp_convert_bytes_to_hr( wp_max_upload_size() );
11
  }
12
 
13
  /**
7
  */
8
 
9
  function wpsc_get_max_upload_size(){
10
+ return size_format( wp_max_upload_size() );
11
  }
12
 
13
  /**
wpsc-admin/includes/settings-tabs/shipping.php CHANGED
@@ -47,7 +47,7 @@ class WPSC_Settings_Tab_Shipping extends WPSC_Settings_Tab {
47
  $shipadd = 0;
48
  foreach ( $wpsc_shipping_modules as $shipping ) {
49
  foreach ( (array) $_POST['custom_shipping_options'] as $shippingoption ) {
50
- if ( $shipping->internal_name == $shippingoption ) {
51
  $shipadd++;
52
  }
53
  }
@@ -71,7 +71,7 @@ class WPSC_Settings_Tab_Shipping extends WPSC_Settings_Tab {
71
 
72
  if ( $found_selected_module ) {
73
  $selected_module = $wpsc_shipping_modules[$selected_module_id];
74
- $title = $selected_module->name;
75
  $content = apply_filters( 'wpsc_shipping_module_settings_form', $selected_module->getForm(), $selected_module );
76
  } else {
77
  $title = __( 'Edit Shipping Module Settings', 'wpsc' );
@@ -100,7 +100,7 @@ class WPSC_Settings_Tab_Shipping extends WPSC_Settings_Tab {
100
  $location = add_query_arg( array(
101
  'tab' => 'shipping',
102
  'page' => 'wpsc-settings',
103
- 'shipping_module_id' => $shipping->internal_name,
104
  ), $location );
105
  $location .= '#wpsc-shipping-module-options';
106
  return $location;
@@ -269,7 +269,7 @@ class WPSC_Settings_Tab_Shipping extends WPSC_Settings_Tab {
269
  <tbody>
270
  <?php
271
  foreach ( $internal_shipping_modules as $shipping ) {
272
- $force = ( $shipping->internal_name === (string) get_user_option( 'wpsc_settings_selected_shipping_module', get_current_user_id() ) );
273
  $this->shipping_list_item( $shipping, $force );
274
  }
275
  ?>
@@ -299,7 +299,7 @@ class WPSC_Settings_Tab_Shipping extends WPSC_Settings_Tab {
299
  <tbody>
300
  <?php
301
  foreach ( $external_shipping_modules as $shipping ) {
302
- $force = ( $shipping->internal_name === (string) get_user_option( 'wpsc_settings_selected_shipping_module', get_current_user_id() ) );
303
  $this->shipping_list_item( $shipping, $force );
304
  }
305
  ?>
@@ -318,23 +318,23 @@ class WPSC_Settings_Tab_Shipping extends WPSC_Settings_Tab {
318
  $shipping->disabled = isset( $shipping->requires_curl ) && $shipping->requires_curl && ! function_exists( 'curl_init' ) ;
319
 
320
  ?>
321
- <tr class="wpsc-select-shipping <?php echo $shipping->active; ?>" data-shipping-id="<?php echo esc_attr( $shipping->internal_name ); ?>" id="shipping_list_item_<?php echo $shipping->internal_name;?>">
322
  <th scope="row" class="check-column">
323
- <input name='custom_shipping_options[]' <?php disabled( $shipping->disabled ); ?> <?php checked( $shipping->checked ); ?> type='checkbox' value='<?php echo $shipping->internal_name; ?>' id='<?php echo $shipping->internal_name; ?>_id' />
324
  </th>
325
  <td class="plugin-title">
326
- <label for='<?php echo $shipping->internal_name; ?>_id'><strong><?php echo $shipping->name; ?></strong></label>
327
  <div class="row-actions-visible">
328
  <span class="edit">
329
- <a class='edit-shipping-module' data-module-id="<?php echo $shipping->internal_name; ?>" title="<?php esc_attr_e( 'Edit this Shipping Module', 'wpsc' ); ?>" href='<?php echo esc_url( $this->get_shipping_module_url( $shipping ) ); ?>'><?php _ex( 'Settings', 'Shipping modules link to individual settings', 'wpsc' ); ?>
330
  <img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-feedback" title="" alt="" />
331
  </span>
332
  </div>
333
  </td>
334
  </tr>
335
- <tr id="wpsc_shipping_settings_<?php echo esc_attr( $shipping->internal_name ); ?>" data-shipping-id="<?php echo esc_attr( $shipping->internal_name ); ?>" class='wpsc-select-shipping <?php echo $shipping->active; ?>' <?php echo $shipping->hidden; ?> >
336
- <td colspan="3" id="wpsc_shipping_settings_<?php echo esc_attr( $shipping->internal_name ); ?>_container">
337
- <?php $this->display_shipping_module_settings_form( $shipping->internal_name ); ?>
338
  </td>
339
  </tr>
340
  <?php
47
  $shipadd = 0;
48
  foreach ( $wpsc_shipping_modules as $shipping ) {
49
  foreach ( (array) $_POST['custom_shipping_options'] as $shippingoption ) {
50
+ if ( $shipping->getInternalName() == $shippingoption ) {
51
  $shipadd++;
52
  }
53
  }
71
 
72
  if ( $found_selected_module ) {
73
  $selected_module = $wpsc_shipping_modules[$selected_module_id];
74
+ $title = $selected_module->getName();
75
  $content = apply_filters( 'wpsc_shipping_module_settings_form', $selected_module->getForm(), $selected_module );
76
  } else {
77
  $title = __( 'Edit Shipping Module Settings', 'wpsc' );
100
  $location = add_query_arg( array(
101
  'tab' => 'shipping',
102
  'page' => 'wpsc-settings',
103
+ 'shipping_module_id' => $shipping->getInternalName(),
104
  ), $location );
105
  $location .= '#wpsc-shipping-module-options';
106
  return $location;
269
  <tbody>
270
  <?php
271
  foreach ( $internal_shipping_modules as $shipping ) {
272
+ $force = ( $shipping->getInternalName() === (string) get_user_option( 'wpsc_settings_selected_shipping_module', get_current_user_id() ) );
273
  $this->shipping_list_item( $shipping, $force );
274
  }
275
  ?>
299
  <tbody>
300
  <?php
301
  foreach ( $external_shipping_modules as $shipping ) {
302
+ $force = ( $shipping->getInternalName() === (string) get_user_option( 'wpsc_settings_selected_shipping_module', get_current_user_id() ) );
303
  $this->shipping_list_item( $shipping, $force );
304
  }
305
  ?>
318
  $shipping->disabled = isset( $shipping->requires_curl ) && $shipping->requires_curl && ! function_exists( 'curl_init' ) ;
319
 
320
  ?>
321
+ <tr class="wpsc-select-shipping <?php echo $shipping->active; ?>" data-shipping-id="<?php echo esc_attr( $shipping->getInternalName() ); ?>" id="shipping_list_item_<?php echo $shipping->getInternalName();?>">
322
  <th scope="row" class="check-column">
323
+ <input name='custom_shipping_options[]' <?php disabled( $shipping->disabled ); ?> <?php checked( $shipping->checked ); ?> type='checkbox' value='<?php echo $shipping->getInternalName(); ?>' id='<?php echo $shipping->getInternalName(); ?>_id' />
324
  </th>
325
  <td class="plugin-title">
326
+ <label for='<?php echo $shipping->getInternalName(); ?>_id'><strong><?php echo $shipping->getName(); ?></strong></label>
327
  <div class="row-actions-visible">
328
  <span class="edit">
329
+ <a class='edit-shipping-module' data-module-id="<?php echo $shipping->getInternalName(); ?>" title="<?php esc_attr_e( 'Edit this Shipping Module', 'wpsc' ); ?>" href='<?php echo esc_url( $this->get_shipping_module_url( $shipping ) ); ?>'><?php _ex( 'Settings', 'Shipping modules link to individual settings', 'wpsc' ); ?>
330
  <img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-feedback" title="" alt="" />
331
  </span>
332
  </div>
333
  </td>
334
  </tr>
335
+ <tr id="wpsc_shipping_settings_<?php echo esc_attr( $shipping->getInternalName() ); ?>" data-shipping-id="<?php echo esc_attr( $shipping->getInternalName() ); ?>" class='wpsc-select-shipping <?php echo $shipping->active; ?>' <?php echo $shipping->hidden; ?> >
336
+ <td colspan="3" id="wpsc_shipping_settings_<?php echo esc_attr( $shipping->getInternalName() ); ?>_container">
337
+ <?php $this->display_shipping_module_settings_form( $shipping->getInternalName() ); ?>
338
  </td>
339
  </tr>
340
  <?php
wpsc-admin/init.php CHANGED
@@ -187,7 +187,7 @@ function wpsc_purchase_log_csv() {
187
  $output .= "\n"; // terminates the row/line in the CSV file
188
  }
189
  // Get the most number of products and create a header for them
190
- $headers3 = "";
191
  for( $i = 0; $i < $count; $i++ ){
192
  $headers3[] = _x( 'Quantity', 'purchase log csv headers', 'wpsc' );
193
  $headers3[] = _x( 'Product Name', 'purchase log csv headers', 'wpsc' );
@@ -201,6 +201,7 @@ function wpsc_purchase_log_csv() {
201
 
202
  $headers = apply_filters( 'wpsc_purchase_log_csv_headers', $headers . $form_headers . $headers2 . $headers3, $data, $form_data );
203
  $output = apply_filters( 'wpsc_purchase_log_csv_output', $output, $data, $form_data );
 
204
  header( 'Content-Type: text/csv' );
205
  header( 'Content-Disposition: inline; filename="' . $csv_name . '"' );
206
  echo $headers . "\n". $output;
187
  $output .= "\n"; // terminates the row/line in the CSV file
188
  }
189
  // Get the most number of products and create a header for them
190
+ $headers3 = array();
191
  for( $i = 0; $i < $count; $i++ ){
192
  $headers3[] = _x( 'Quantity', 'purchase log csv headers', 'wpsc' );
193
  $headers3[] = _x( 'Product Name', 'purchase log csv headers', 'wpsc' );
201
 
202
  $headers = apply_filters( 'wpsc_purchase_log_csv_headers', $headers . $form_headers . $headers2 . $headers3, $data, $form_data );
203
  $output = apply_filters( 'wpsc_purchase_log_csv_output', $output, $data, $form_data );
204
+ do_action( 'wpsc_purchase_log_csv' );
205
  header( 'Content-Type: text/csv' );
206
  header( 'Content-Disposition: inline; filename="' . $csv_name . '"' );
207
  echo $headers . "\n". $output;
wpsc-admin/js/settings-page.js CHANGED
@@ -309,7 +309,7 @@
309
  wrapper.on( 'click', '.field-option-cell-wrapper .wpsc-button-minus', WPSC_Settings_Page.Checkout.event_delete_field_option);
310
  wrapper.on( 'click', '#wpsc-delete-checkout-set', WPSC_Settings_Page.Checkout.event_delete_checkout_set);
311
  wrapper.on( 'change', '#wpsc_form_set', WPSC_Settings_Page.Checkout.event_select_form_set);
312
- wrapper.on( 'click', '.mandatorycol input[type="checkbox"]', WPSC_Settings_Page.Checkout.event_disabled_toggeled);
313
  $('#wpsc-settings-form').on( 'submit', WPSC_Settings_Page.Checkout.event_form_submit);
314
 
315
  wrapper.find('#wpsc_checkout_list').
@@ -333,12 +333,12 @@
333
  * If it's mandatory you no have choice for display.
334
  */
335
  wrapper.find( '.mandatorycol input[type="checkbox"]').each( function(){
336
- var displaycol = $(this).parents('.mandatorycol').siblings('.displaycol');
337
 
338
- if ( $(this).is(':checked') ){
339
- $(displaycol).find('input[type="checkbox"]').prop('checked', true ).attr( 'disabled', 'disabled' );
340
  } else {
341
- $(displaycol).find('input[type="checkbox"]').attr( 'disabled', this.checked );
342
  }
343
  });
344
 
@@ -576,14 +576,14 @@
576
  * Disables and checks the display option if you make a field mandatory. If you uncheck
577
  * mandatory then it just enables you to uncheck the display box.
578
  */
579
- event_disabled_toggeled : function() {
580
 
581
- var displaycol = $(this).parents('.mandatorycol').siblings('.displaycol');
582
 
583
- if ( $(this).is(':checked') ){
584
- $(displaycol).find('input[type="checkbox"]').prop('checked', true ).attr( 'disabled', 'disabled' );
585
  } else {
586
- $(displaycol).find('input[type="checkbox"]').attr( 'disabled', this.checked );
587
  }
588
  },
589
 
309
  wrapper.on( 'click', '.field-option-cell-wrapper .wpsc-button-minus', WPSC_Settings_Page.Checkout.event_delete_field_option);
310
  wrapper.on( 'click', '#wpsc-delete-checkout-set', WPSC_Settings_Page.Checkout.event_delete_checkout_set);
311
  wrapper.on( 'change', '#wpsc_form_set', WPSC_Settings_Page.Checkout.event_select_form_set);
312
+ wrapper.on( 'click', '.mandatorycol input[type="checkbox"]', WPSC_Settings_Page.Checkout.event_disabled_toggled);
313
  $('#wpsc-settings-form').on( 'submit', WPSC_Settings_Page.Checkout.event_form_submit);
314
 
315
  wrapper.find('#wpsc_checkout_list').
333
  * If it's mandatory you no have choice for display.
334
  */
335
  wrapper.find( '.mandatorycol input[type="checkbox"]').each( function(){
336
+ var displaycol = $( this ).parents( '.mandatorycol' ).siblings( '.displaycol' );
337
 
338
+ if ( $( this ).is( ':checked' ) ) {
339
+ $( displaycol ).find( 'input[type="checkbox"]' ).prop( 'checked', true ).prop( 'readonly', true );
340
  } else {
341
+ $( displaycol ).find( 'input[type="checkbox"]' ).prop( 'readonly', this.checked );
342
  }
343
  });
344
 
576
  * Disables and checks the display option if you make a field mandatory. If you uncheck
577
  * mandatory then it just enables you to uncheck the display box.
578
  */
579
+ event_disabled_toggled : function() {
580
 
581
+ var displaycol = $( this ).parents( '.mandatorycol' ).siblings( '.displaycol' );
582
 
583
+ if ( $( this ).is( ':checked' ) ) {
584
+ $( displaycol ).find( 'input[type="checkbox"]' ).prop( 'checked', true ).prop( 'readonly', true );
585
  } else {
586
+ $( displaycol ).find( 'input[type="checkbox"]' ).prop( 'readonly', this.checked );
587
  }
588
  },
589
 
wpsc-core/wpsc-constants.php CHANGED
@@ -28,9 +28,9 @@ function wpsc_core_constants() {
28
  if(!defined('WPSC_URL'))
29
  define( 'WPSC_URL', plugins_url( '', __FILE__ ) );
30
  // Define Plugin version
31
- define( 'WPSC_VERSION', '3.8.12-beta' );
32
  define( 'WPSC_MINOR_VERSION', '55f8cfa0d7' );
33
- define( 'WPSC_PRESENTABLE_VERSION', '3.8.12-beta' );
34
  define( 'WPSC_DB_VERSION', 4 );
35
 
36
  // Define Debug Variables for developers
28
  if(!defined('WPSC_URL'))
29
  define( 'WPSC_URL', plugins_url( '', __FILE__ ) );
30
  // Define Plugin version
31
+ define( 'WPSC_VERSION', '3.8.12' );
32
  define( 'WPSC_MINOR_VERSION', '55f8cfa0d7' );
33
+ define( 'WPSC_PRESENTABLE_VERSION', '3.8.12' );
34
  define( 'WPSC_DB_VERSION', 4 );
35
 
36
  // Define Debug Variables for developers