Add WC_Abstract_Order::is_editable()

To centralise logic used to determine if an order can be edited from
the Edit Order screen
This commit is contained in:
thenbrent 2014-09-02 11:47:56 -07:00
parent 76bccd4ddb
commit 78d932e6d2
3 changed files with 14 additions and 4 deletions

View File

@ -2383,4 +2383,14 @@ abstract class WC_Abstract_Order {
} }
} }
} }
/**
* Checks if an order can be edited, specifically for use on the Edit Order screen
*
* @access public
* @return bool
*/
public function is_editable() {
return in_array( $order->get_status(), apply_filters( 'wc_order_can_be_edited', array( 'pending', 'on-hold', 'auto-draft' ) ) );
}
} }

View File

@ -14,7 +14,7 @@ $line_items_fee = $order->get_items( 'fee' );
$line_items_shipping = $order->get_items( 'shipping' ); $line_items_shipping = $order->get_items( 'shipping' );
// Check if order can be edited // Check if order can be edited
$can_be_edited = in_array( $order->get_status(), apply_filters( 'wc_order_can_be_edited', array( 'pending', 'on-hold', 'auto-draft' ) ) ); $can_be_edited = $order->is_editable();
if ( 'yes' == get_option( 'woocommerce_calc_taxes' ) ) { if ( 'yes' == get_option( 'woocommerce_calc_taxes' ) ) {
$order_taxes = $order->get_taxes(); $order_taxes = $order->get_taxes();

View File

@ -1005,7 +1005,7 @@ class WC_AJAX {
} }
$item = apply_filters( 'woocommerce_ajax_order_item', $item, $item_id ); $item = apply_filters( 'woocommerce_ajax_order_item', $item, $item_id );
$can_be_edited = in_array( $order->get_status(), apply_filters( 'wc_order_can_be_edited', array( 'pending', 'on-hold' ) ) ); $can_be_edited = $order->is_editable();
include( 'admin/meta-boxes/views/html-order-item.php' ); include( 'admin/meta-boxes/views/html-order-item.php' );
@ -1023,7 +1023,7 @@ class WC_AJAX {
$order_id = absint( $_POST['order_id'] ); $order_id = absint( $_POST['order_id'] );
$order = wc_get_order( $order_id ); $order = wc_get_order( $order_id );
$order_taxes = $order->get_taxes(); $order_taxes = $order->get_taxes();
$can_be_edited = in_array( $order->get_status(), apply_filters( 'wc_order_can_be_edited', array( 'pending', 'on-hold' ) ) ); $can_be_edited = $order->is_editable();
$item = array(); $item = array();
// Add new fee // Add new fee
@ -1053,7 +1053,7 @@ class WC_AJAX {
$order = wc_get_order( $order_id ); $order = wc_get_order( $order_id );
$order_taxes = $order->get_taxes(); $order_taxes = $order->get_taxes();
$shipping_methods = WC()->shipping() ? WC()->shipping->load_shipping_methods() : array(); $shipping_methods = WC()->shipping() ? WC()->shipping->load_shipping_methods() : array();
$can_be_edited = in_array( $order->get_status(), apply_filters( 'wc_order_can_be_edited', array( 'pending', 'on-hold' ) ) ); $can_be_edited = $order->is_editable();
$item = array(); $item = array();
// Add new shipping // Add new shipping