added new html-order-shipping.php to work in order items metabox

This commit is contained in:
claudiosmweb 2014-07-14 16:22:01 -03:00
parent ef2bff285a
commit 7e17443be4
2 changed files with 74 additions and 40 deletions

View File

@ -57,7 +57,8 @@ class WC_Meta_Box_Order_Items {
<?php <?php
// List order items // List order items
$order_items = $order->get_items( apply_filters( 'woocommerce_admin_order_item_types', array( 'line_item', 'fee' ) ) ); $order_items = $order->get_items( apply_filters( 'woocommerce_admin_order_item_types', array( 'line_item', 'fee', 'shipping' ) ) );
$shipping_methods = WC()->shipping() ? WC()->shipping->load_shipping_methods() : array();
foreach ( $order_items as $item_id => $item ) { foreach ( $order_items as $item_id => $item ) {
@ -71,6 +72,9 @@ class WC_Meta_Box_Order_Items {
case 'fee' : case 'fee' :
include( 'views/html-order-fee.php' ); include( 'views/html-order-fee.php' );
break; break;
case 'shipping' :
include( 'views/html-order-shipping.php' );
break;
} }
do_action( 'woocommerce_order_item_' . $item['type'] . '_html', $item_id, $item ); do_action( 'woocommerce_order_item_' . $item['type'] . '_html', $item_id, $item );

View File

@ -1,13 +1,20 @@
<?php <?php
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
?> ?>
<div class="total_row shipping_row" data-order_item_id="<?php echo $item_id; ?>"> <tr class="shipping <?php echo ( ! empty( $class ) ) ? $class : ''; ?>" data-order_item_id="<?php echo $item_id; ?>">
<p class="wide"> <td class="check-column"><input type="checkbox" /></td>
<input type="text" name="shipping_method_title[<?php echo $item_id ? $item_id : 'new][]'; ?>]" placeholder="<?php _e( 'Label', 'woocommerce' ); ?>" value="<?php echo esc_attr( $shipping_title ); ?>" class="first" />
<input type="hidden" name="shipping_method_id[<?php echo $item_id ? $item_id : 'new][]'; ?>]" value="<?php echo esc_attr( $item_id ); ?>" /> <td class="thumb"></td>
</p>
<p class="first"> <td class="name">
<select name="shipping_method[<?php echo $item_id ? $item_id : 'new][]'; ?>]" class="first"> <div class="view">
<?php echo ! empty( $item['name'] ) ? esc_html( $item['name'] ) : __( 'Shipping', 'woocommerce' ); ?>
</div>
<div class="edit" style="display:none">
<input type="text" placeholder="<?php _e( 'Shipping Name', 'woocommerce' ); ?>" name="shipping_method_title[<?php echo $item_id ? $item_id : 'new][]'; ?>]" value="<?php echo ( isset( $item['name'] ) ) ? esc_attr( $item['name'] ) : ''; ?>" />
<select name="shipping_method[<?php echo $item_id ? $item_id : 'new][]'; ?>]">
<optgroup label="<?php _e( 'Shipping Method', 'woocommerce' ); ?>"> <optgroup label="<?php _e( 'Shipping Method', 'woocommerce' ); ?>">
<option value=""><?php _e( 'N/A', 'woocommerce' ); ?></option> <option value=""><?php _e( 'N/A', 'woocommerce' ); ?></option>
<?php <?php
@ -15,30 +22,53 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
foreach ( $shipping_methods as $method ) { foreach ( $shipping_methods as $method ) {
if ( strpos( $chosen_method, $method->id ) === 0 ) $current_method = ( 0 === strpos( $item['method_id'], $method->id ) ) ? $item['method_id'] : $method->id;
$value = $chosen_method;
else
$value = $method->id;
echo '<option value="' . esc_attr( $value ) . '" ' . selected( $chosen_method == $value, true, false ) . '>' . esc_html( $method->get_title() ) . '</option>'; echo '<option value="' . esc_attr( $current_method ) . '" ' . selected( $item['method_id'] == $current_method, true, false ) . '>' . esc_html( $method->get_title() ) . '</option>';
if ( $chosen_method == $value ) if ( $item['method_id'] == $current_method ) {
$found_method = true; $found_method = true;
} }
}
if ( ! $found_method && ! empty( $chosen_method ) ) { if ( ! $found_method && ! empty( $item['method_id'] ) ) {
echo '<option value="' . esc_attr( $chosen_method ) . '" selected="selected">' . __( 'Other', 'woocommerce' ) . '</option>'; echo '<option value="' . esc_attr( $item['method_id'] ) . '" selected="selected">' . __( 'Other', 'woocommerce' ) . '</option>';
} else { } else {
echo '<option value="other">' . __( 'Other', 'woocommerce' ) . '</option>'; echo '<option value="other">' . __( 'Other', 'woocommerce' ) . '</option>';
} }
?> ?>
</optgroup> </optgroup>
</select> </select>
</p> <input type="hidden" name="shipping_method_id[<?php echo $item_id ? $item_id : 'new][]'; ?>]" value="<?php echo esc_attr( $item_id ); ?>" />
<p class="last"> </div>
<input type="text" class="shipping_cost wc_input_price" name="shipping_cost[<?php echo $item_id ? $item_id : 'new][]'; ?>]" placeholder="<?php echo wc_format_localized_price( 0 ); ?>" value="<?php echo esc_attr( wc_format_localized_price( $shipping_cost ) ); ?>" /> </td>
</p>
<?php do_action( 'woocommerce_admin_order_totals_after_shipping_item', $item_id ); ?> <?php if ( 'yes' == get_option( 'woocommerce_calc_taxes' ) ) : ?>
<a href="#" class="delete_total_row">&times;</a>
<div class="clear"></div> <td class="tax_class" width="1%"></td>
</div>
<?php endif; ?>
<td class="quantity" width="1%">1</td>
<td class="line_cost" width="1%">
<div class="view">
<?php echo ( isset( $item['cost'] ) ) ? wc_price( wc_round_tax_total( $item['cost'] ) ) : ''; ?>
</div>
<div class="edit" style="display:none">
<label><?php _e( 'Total', 'woocommerce' ); ?>: <input type="text" name="shipping_cost[<?php echo $item_id ? $item_id : 'new][]'; ?>]" placeholder="<?php echo wc_format_localized_price( 0 ); ?>" value="<?php echo ( isset( $item['cost'] ) ) ? esc_attr( wc_format_localized_price( $item['cost'] ) ) : ''; ?>" class="line_total wc_input_price" /></label>
</div>
</td>
<?php if ( 'yes' == get_option( 'woocommerce_calc_taxes' ) ) : ?>
<td class="line_tax" width="1%"></td>
<?php endif; ?>
<td class="wc-order-edit-line-item">
<div class="wc-order-edit-line-item-actions">
<a class="edit_order_item" href="#"></a><a class="delete_order_item" href="#"></a>
</div>
</td>
</tr>