[2.2] Merge ship to billing and billing only options

+ update options, update files to use new option + function Closes #5284
This commit is contained in:
Mike Jolley 2014-04-08 16:28:27 +01:00
parent e3cb3a4cc8
commit 937db45913
10 changed files with 67 additions and 38 deletions

View File

@ -109,24 +109,21 @@ class WC_Settings_Shipping extends WC_Settings_Page {
array( array(
'title' => __( 'Shipping Destination', 'woocommerce' ), 'title' => __( 'Shipping Destination', 'woocommerce' ),
'desc' => __( 'Ship to billing address by default', 'woocommerce' ), 'desc' => __( 'This controls which shipping address is used by default.', 'woocommerce' ),
'id' => 'woocommerce_ship_to_billing', 'id' => 'woocommerce_ship_to_billing',
'default' => 'yes', 'default' => 'shipping',
'type' => 'checkbox', 'type' => 'radio',
'checkboxgroup' => 'start', 'options' => array(
'' => __( 'Default to shipping address', 'woocommerce' ),
'billing' => __( 'Default to billing address', 'woocommerce' ),
'billing_only' => __( 'Only ship to the users billing address', 'woocommerce' ),
),
'autoload' => false, 'autoload' => false,
'desc_tip' => true,
'show_if_checked' => 'option', 'show_if_checked' => 'option',
), ),
array( //woocommerce_ship_to_billing_address_only
'desc' => __( 'Only ship to the users billing address', 'woocommerce' ),
'id' => 'woocommerce_ship_to_billing_address_only',
'default' => 'no',
'type' => 'checkbox',
'checkboxgroup' => 'end',
'autoload' => false,
'show_if_checked' => 'yes',
),
array( array(
'title' => __( 'Restrict shipping to Location(s)', 'woocommerce' ), 'title' => __( 'Restrict shipping to Location(s)', 'woocommerce' ),

View File

@ -188,7 +188,7 @@ class WC_AJAX {
if ( isset( $_POST['address_2'] ) ) if ( isset( $_POST['address_2'] ) )
WC()->customer->set_address_2( $_POST['address_2'] ); WC()->customer->set_address_2( $_POST['address_2'] );
if ( "yes" == get_option( 'woocommerce_ship_to_billing_address_only' ) ) { if ( wc_ship_to_billing_address_only() ) {
if ( isset( $_POST['country'] ) ) if ( isset( $_POST['country'] ) )
WC()->customer->set_shipping_country( $_POST['country'] ); WC()->customer->set_shipping_country( $_POST['country'] );

View File

@ -1399,7 +1399,7 @@ class WC_Cart {
* @return bool * @return bool
*/ */
public function ship_to_billing_address_only() { public function ship_to_billing_address_only() {
return get_option('woocommerce_ship_to_billing_address_only') == 'yes'; return wc_ship_to_billing_address_only();
} }
/** /**

View File

@ -0,0 +1,24 @@
<?php
/**
* Update WC to 2.2.0
*
* @author WooThemes
* @category Admin
* @package WooCommerce/Admin/Updates
* @version 2.2.0
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
global $wpdb;
// Update options
$woocommerce_ship_to_destination = 'shipping';
if ( get_option( 'woocommerce_ship_to_billing_address_only' ) === 'yes' ) {
$woocommerce_ship_to_destination = 'billing_only';
} elseif ( get_option( 'woocommerce_ship_to_billing' ) === 'yes' ) {
$woocommerce_ship_to_destination = 'billing';
}
add_option( 'woocommerce_ship_to_destination', $woocommerce_ship_to_destination, '', 'no' );

View File

@ -290,3 +290,11 @@ function wc_cart_totals_shipping_method_label( $method ) {
return apply_filters( 'woocommerce_cart_shipping_method_full_label', $label, $method ); return apply_filters( 'woocommerce_cart_shipping_method_full_label', $label, $method );
} }
/**
* See if we only ship to billing addresses
* @return bool
*/
function wc_ship_to_billing_address_only() {
return 'billing_only' === get_option( 'woocommerce_ship_to_destination' );
}

View File

@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
<?php <?php
if ( empty( $_POST ) ) { if ( empty( $_POST ) ) {
$ship_to_different_address = get_option( 'woocommerce_ship_to_billing' ) === 'no' ? 1 : 0; $ship_to_different_address = get_option( 'woocommerce_ship_to_destination' ) === 'shipping' ? 1 : 0;
$ship_to_different_address = apply_filters( 'woocommerce_ship_to_different_address_checked', $ship_to_different_address ); $ship_to_different_address = apply_filters( 'woocommerce_ship_to_different_address_checked', $ship_to_different_address );
} else { } else {

View File

@ -4,7 +4,7 @@
* *
* @author WooThemes * @author WooThemes
* @package WooCommerce/Templates/Emails * @package WooCommerce/Templates/Emails
* @version 1.6.4 * @version 2.2.0
*/ */
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
@ -21,7 +21,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
</td> </td>
<?php if ( get_option( 'woocommerce_ship_to_billing_address_only' ) === 'no' && ( $shipping = $order->get_formatted_shipping_address() ) ) : ?> <?php if ( ! wc_ship_to_billing_address_only() && ( $shipping = $order->get_formatted_shipping_address() ) ) : ?>
<td valign="top" width="50%"> <td valign="top" width="50%">

View File

@ -4,7 +4,7 @@
* *
* @author WooThemes * @author WooThemes
* @package WooCommerce/Templates/Emails/Plain * @package WooCommerce/Templates/Emails/Plain
* @version 2.0.0 * @version 2.2.0
*/ */
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
@ -12,7 +12,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
echo "\n" . __( 'Billing address', 'woocommerce' ) . ":\n"; echo "\n" . __( 'Billing address', 'woocommerce' ) . ":\n";
echo $order->get_formatted_billing_address() . "\n\n"; echo $order->get_formatted_billing_address() . "\n\n";
if ( get_option( 'woocommerce_ship_to_billing_address_only' ) == 'no' && ( $shipping = $order->get_formatted_shipping_address() ) ) : if ( ! wc_ship_to_billing_address_only() && ( $shipping = $order->get_formatted_shipping_address() ) ) :
echo __( 'Shipping address', 'woocommerce' ) . ":\n"; echo __( 'Shipping address', 'woocommerce' ) . ":\n";

View File

@ -4,7 +4,7 @@
* *
* @author WooThemes * @author WooThemes
* @package WooCommerce/Templates * @package WooCommerce/Templates
* @version 2.0.0 * @version 2.2.0
*/ */
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
@ -13,7 +13,7 @@ global $woocommerce;
$customer_id = get_current_user_id(); $customer_id = get_current_user_id();
if ( get_option( 'woocommerce_ship_to_billing_address_only' ) === 'no' && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) { if ( ! wc_ship_to_billing_address_only() && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) {
$page_title = apply_filters( 'woocommerce_my_account_my_address_title', __( 'My Addresses', 'woocommerce' ) ); $page_title = apply_filters( 'woocommerce_my_account_my_address_title', __( 'My Addresses', 'woocommerce' ) );
$get_addresses = apply_filters( 'woocommerce_my_account_get_addresses', array( $get_addresses = apply_filters( 'woocommerce_my_account_get_addresses', array(
'billing' => __( 'Billing Address', 'woocommerce' ), 'billing' => __( 'Billing Address', 'woocommerce' ),
@ -35,7 +35,7 @@ $col = 1;
<?php echo apply_filters( 'woocommerce_my_account_my_address_description', __( 'The following addresses will be used on the checkout page by default.', 'woocommerce' ) ); ?> <?php echo apply_filters( 'woocommerce_my_account_my_address_description', __( 'The following addresses will be used on the checkout page by default.', 'woocommerce' ) ); ?>
</p> </p>
<?php if ( get_option( 'woocommerce_ship_to_billing_address_only' ) === 'no' && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) echo '<div class="col2-set addresses">'; ?> <?php if ( ! wc_ship_to_billing_address_only() && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) echo '<div class="col2-set addresses">'; ?>
<?php foreach ( $get_addresses as $name => $title ) : ?> <?php foreach ( $get_addresses as $name => $title ) : ?>
@ -70,4 +70,4 @@ $col = 1;
<?php endforeach; ?> <?php endforeach; ?>
<?php if ( get_option( 'woocommerce_ship_to_billing_address_only' ) === 'no' && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) echo '</div>'; ?> <?php if ( ! wc_ship_to_billing_address_only() && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) echo '</div>'; ?>

View File

@ -4,7 +4,7 @@
* *
* @author WooThemes * @author WooThemes
* @package WooCommerce/Templates * @package WooCommerce/Templates
* @version 2.1.0 * @version 2.2.0
*/ */
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
@ -106,7 +106,7 @@ $order = new WC_Order( $order_id );
?> ?>
</dl> </dl>
<?php if ( get_option( 'woocommerce_ship_to_billing_address_only' ) === 'no' && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) : ?> <?php if ( ! wc_ship_to_billing_address_only() && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) : ?>
<div class="col2-set addresses"> <div class="col2-set addresses">
@ -123,7 +123,7 @@ $order = new WC_Order( $order_id );
?> ?>
</p></address> </p></address>
<?php if ( get_option( 'woocommerce_ship_to_billing_address_only' ) === 'no' && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) : ?> <?php if ( ! wc_ship_to_billing_address_only() && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) : ?>
</div><!-- /.col-1 --> </div><!-- /.col-1 -->