order meta, loop visibility
This commit is contained in:
parent
e286b11ff5
commit
8c4e69f707
|
@ -21,7 +21,7 @@ $options_settings = apply_filters('woocommerce_options_settings', array(
|
||||||
|
|
||||||
array( 'type' => 'tab', 'tabname' => __('General', 'woothemes') ),
|
array( 'type' => 'tab', 'tabname' => __('General', 'woothemes') ),
|
||||||
|
|
||||||
array( 'name' => 'General settings', 'type' => 'title', 'desc' => '' ),
|
array( 'name' => 'General Options', 'type' => 'title', 'desc' => '' ),
|
||||||
|
|
||||||
array(
|
array(
|
||||||
'name' => __('Base Country/Region', 'woothemes'),
|
'name' => __('Base Country/Region', 'woothemes'),
|
||||||
|
@ -213,7 +213,7 @@ $options_settings = apply_filters('woocommerce_options_settings', array(
|
||||||
|
|
||||||
array( 'type' => 'tab', 'tabname' => __('Catalog', 'woothemes') ),
|
array( 'type' => 'tab', 'tabname' => __('Catalog', 'woothemes') ),
|
||||||
|
|
||||||
array( 'name' => __('Catalog Settings', 'woothemes'), 'type' => 'title','desc' => '', 'id' => '' ),
|
array( 'name' => __('Catalog Options', 'woothemes'), 'type' => 'title','desc' => '', 'id' => '' ),
|
||||||
|
|
||||||
array(
|
array(
|
||||||
'name' => __('Product fields', 'woothemes'),
|
'name' => __('Product fields', 'woothemes'),
|
||||||
|
@ -255,7 +255,7 @@ $options_settings = apply_filters('woocommerce_options_settings', array(
|
||||||
|
|
||||||
array( 'type' => 'sectionend'),
|
array( 'type' => 'sectionend'),
|
||||||
|
|
||||||
array( 'name' => __('Pricing Settings', 'woothemes'), 'type' => 'title','desc' => '', 'id' => '' ),
|
array( 'name' => __('Pricing Options', 'woothemes'), 'type' => 'title','desc' => '', 'id' => '' ),
|
||||||
|
|
||||||
array(
|
array(
|
||||||
'name' => __('Currency', 'woothemes'),
|
'name' => __('Currency', 'woothemes'),
|
||||||
|
@ -341,7 +341,7 @@ $options_settings = apply_filters('woocommerce_options_settings', array(
|
||||||
|
|
||||||
array( 'type' => 'sectionend'),
|
array( 'type' => 'sectionend'),
|
||||||
|
|
||||||
array( 'name' => __('Inventory Settings', 'woothemes'), 'type' => 'title','desc' => '', 'id' => '' ),
|
array( 'name' => __('Inventory Options', 'woothemes'), 'type' => 'title','desc' => '', 'id' => '' ),
|
||||||
|
|
||||||
array(
|
array(
|
||||||
'name' => __('Manage stock', 'woothemes'),
|
'name' => __('Manage stock', 'woothemes'),
|
||||||
|
@ -430,8 +430,14 @@ $options_settings = apply_filters('woocommerce_options_settings', array(
|
||||||
|
|
||||||
array( 'type' => 'sectionend'),
|
array( 'type' => 'sectionend'),
|
||||||
|
|
||||||
|
array( 'type' => 'tabend'),
|
||||||
|
|
||||||
|
array( 'type' => 'tab', 'tabname' => __('Shipping Methods', 'woothemes') ),
|
||||||
|
|
||||||
array( 'type' => 'shipping_options'),
|
array( 'type' => 'shipping_options'),
|
||||||
|
|
||||||
|
array( 'type' => 'sectionend'),
|
||||||
|
|
||||||
array( 'type' => 'tabend'),
|
array( 'type' => 'tabend'),
|
||||||
|
|
||||||
array( 'type' => 'tab', 'tabname' => __('Tax', 'woothemes') ),
|
array( 'type' => 'tab', 'tabname' => __('Tax', 'woothemes') ),
|
||||||
|
@ -822,11 +828,27 @@ function woocommerce_admin_fields($options) {
|
||||||
break;
|
break;
|
||||||
case "shipping_options" :
|
case "shipping_options" :
|
||||||
|
|
||||||
|
$links = array();
|
||||||
|
|
||||||
foreach (woocommerce_shipping::$shipping_methods as $method) :
|
foreach (woocommerce_shipping::$shipping_methods as $method) :
|
||||||
|
|
||||||
$method->admin_options();
|
$title = ($method->title) ? ucwords($method->title) : ucwords($method->id);
|
||||||
|
|
||||||
endforeach;
|
$links[] = '<a href="#shipping-'.$method->id.'">'.$title.'</a>';
|
||||||
|
|
||||||
|
endforeach;
|
||||||
|
|
||||||
|
echo '<div class="subsubsub_section"><ul class="subsubsub"><li>' . implode(' | </li><li>', $links) . '</li></ul><br class="clear" />';
|
||||||
|
|
||||||
|
foreach (woocommerce_shipping::$shipping_methods as $method) :
|
||||||
|
|
||||||
|
echo '<div class="section" id="shipping-'.$method->id.'">';
|
||||||
|
$method->admin_options();
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
endforeach;
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "gateway_options" :
|
case "gateway_options" :
|
||||||
|
@ -885,6 +907,7 @@ function woocommerce_admin_fields($options) {
|
||||||
jQuery(this).addClass('current');
|
jQuery(this).addClass('current');
|
||||||
jQuery('.section', jQuery(this).closest('.subsubsub_section')).hide();
|
jQuery('.section', jQuery(this).closest('.subsubsub_section')).hide();
|
||||||
jQuery( jQuery(this).attr('href') ).show();
|
jQuery( jQuery(this).attr('href') ).show();
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
jQuery('ul.subsubsub').each(function(){
|
jQuery('ul.subsubsub').each(function(){
|
||||||
jQuery('li a:eq(0)', jQuery(this)).click();
|
jQuery('li a:eq(0)', jQuery(this)).click();
|
||||||
|
|
|
@ -59,7 +59,6 @@ function woocommerce_order_data_meta_box($post) {
|
||||||
else :
|
else :
|
||||||
$order_title = $post->post_title;
|
$order_title = $post->post_title;
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
#titlediv, #major-publishing-actions, #minor-publishing-actions { display:none }
|
#titlediv, #major-publishing-actions, #minor-publishing-actions { display:none }
|
||||||
|
@ -67,17 +66,11 @@ function woocommerce_order_data_meta_box($post) {
|
||||||
<div class="panel-wrap woocommerce">
|
<div class="panel-wrap woocommerce">
|
||||||
<input name="post_title" type="hidden" value="<?php echo $order_title; ?>" />
|
<input name="post_title" type="hidden" value="<?php echo $order_title; ?>" />
|
||||||
<input name="post_status" type="hidden" value="publish" />
|
<input name="post_status" type="hidden" value="publish" />
|
||||||
|
|
||||||
<ul class="product_data_tabs tabs" style="display:none;">
|
<ul class="product_data_tabs tabs" style="display:none;">
|
||||||
|
|
||||||
<li class="active"><a href="#order_data"><?php _e('Order', 'woothemes'); ?></a></li>
|
<li class="active"><a href="#order_data"><?php _e('Order', 'woothemes'); ?></a></li>
|
||||||
|
|
||||||
<li><a href="#order_customer_billing_data"><?php _e('Customer Billing Address', 'woothemes'); ?></a></li>
|
<li><a href="#order_customer_billing_data"><?php _e('Customer Billing Address', 'woothemes'); ?></a></li>
|
||||||
|
|
||||||
<li><a href="#order_customer_shipping_data"><?php _e('Customer Shipping Address', 'woothemes'); ?></a></li>
|
<li><a href="#order_customer_shipping_data"><?php _e('Customer Shipping Address', 'woothemes'); ?></a></li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div id="order_data" class="panel woocommerce_options_panel">
|
<div id="order_data" class="panel woocommerce_options_panel">
|
||||||
|
|
||||||
<p class="form-field"><label for="order_status"><?php _e('Order status:', 'woothemes') ?></label>
|
<p class="form-field"><label for="order_status"><?php _e('Order status:', 'woothemes') ?></label>
|
||||||
|
@ -96,14 +89,10 @@ function woocommerce_order_data_meta_box($post) {
|
||||||
<select id="customer_user" name="customer_user">
|
<select id="customer_user" name="customer_user">
|
||||||
<option value=""><?php _e('Guest', 'woothemes') ?></option>
|
<option value=""><?php _e('Guest', 'woothemes') ?></option>
|
||||||
<?php
|
<?php
|
||||||
$users = $wpdb->get_results( $wpdb->prepare("SELECT $wpdb->users.ID, $wpdb->users.user_email, $wpdb->users.display_name FROM $wpdb->users ORDER BY %s ASC", 'display_name' ));
|
$users = new WP_User_Query( array( 'orderby' => 'display_name' ) );
|
||||||
|
$users = $users->get_results();
|
||||||
foreach ( $users as $user ) :
|
if ($users) foreach ( $users as $user ) :
|
||||||
|
echo '<option value="'.$user->ID.'" '; selected($data['customer_user'], $user->ID); echo '>' . $user->display_name . ' ('.$user->user_email.')</option>';
|
||||||
echo '<option value="'.$user->ID.'" ';
|
|
||||||
selected($data['customer_user'], $user->ID);
|
|
||||||
echo '>' . $user->display_name . ' ('.$user->user_email.')</option>';
|
|
||||||
|
|
||||||
endforeach;
|
endforeach;
|
||||||
?>
|
?>
|
||||||
</select></p>
|
</select></p>
|
||||||
|
@ -111,122 +100,34 @@ function woocommerce_order_data_meta_box($post) {
|
||||||
<p class="form-field"><label for="excerpt"><?php _e('Customer Note:', 'woothemes') ?></label>
|
<p class="form-field"><label for="excerpt"><?php _e('Customer Note:', 'woothemes') ?></label>
|
||||||
<textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt" placeholder="<?php _e('Customer\'s notes about the order', 'woothemes'); ?>"><?php echo $post->post_excerpt; ?></textarea></p>
|
<textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt" placeholder="<?php _e('Customer\'s notes about the order', 'woothemes'); ?>"><?php echo $post->post_excerpt; ?></textarea></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="order_customer_billing_data" class="panel woocommerce_options_panel"><?php
|
<div id="order_customer_billing_data" class="panel woocommerce_options_panel"><?php
|
||||||
|
woocommerce_wp_text_input( array( 'id' => 'billing_first_name', 'label' => __('First Name', 'woothemes'), 'value' => $data['billing_first_name'] ) );
|
||||||
// First Name
|
woocommerce_wp_text_input( array( 'id' => 'billing_last_name', 'label' => __('Last Name', 'woothemes'), 'value' => $data['billing_last_name'] ) );
|
||||||
$field = array( 'id' => 'billing_first_name', 'label' => 'First Name:' );
|
woocommerce_wp_text_input( array( 'id' => 'billing_company', 'label' => __('Company', 'woothemes'), 'value' => $data['billing_company'] ) );
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
woocommerce_wp_text_input( array( 'id' => 'billing_address_1', 'label' => __('Address 1', 'woothemes'), 'value' => $data['billing_address_1'] ) );
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
woocommerce_wp_text_input( array( 'id' => 'billing_address_2', 'label' => __('Address 2', 'woothemes'), 'value' => $data['billing_address_2'] ) );
|
||||||
|
woocommerce_wp_text_input( array( 'id' => 'billing_city', 'label' => __('City', 'woothemes'), 'value' => $data['billing_city'] ) );
|
||||||
// Last Name
|
woocommerce_wp_text_input( array( 'id' => 'billing_postcode', 'label' => __('Postcode', 'woothemes'), 'value' => $data['billing_postcode'] ) );
|
||||||
$field = array( 'id' => 'billing_last_name', 'label' => 'Last Name:' );
|
woocommerce_wp_text_input( array( 'id' => 'billing_country', 'label' => __('Country', 'woothemes'), 'value' => $data['billing_country'] ) );
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
woocommerce_wp_text_input( array( 'id' => 'billing_state', 'label' => __('State/County', 'woothemes'), 'value' => $data['billing_state'] ) );
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
woocommerce_wp_text_input( array( 'id' => 'billing_email', 'label' => __('Email Address', 'woothemes'), 'value' => $data['billing_email'] ) );
|
||||||
|
woocommerce_wp_text_input( array( 'id' => 'billing_phone', 'label' => __('Tel', 'woothemes'), 'value' => $data['billing_phone'] ) );
|
||||||
// Company
|
?></div>
|
||||||
$field = array( 'id' => 'billing_company', 'label' => 'Company:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// Address 1
|
|
||||||
$field = array( 'id' => 'billing_address_1', 'label' => 'Address 1:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// Address 2
|
|
||||||
$field = array( 'id' => 'billing_address_2', 'label' => 'Address 2:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// City
|
|
||||||
$field = array( 'id' => 'billing_city', 'label' => 'City:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// Postcode
|
|
||||||
$field = array( 'id' => 'billing_postcode', 'label' => 'Postcode:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// Country
|
|
||||||
$field = array( 'id' => 'billing_country', 'label' => 'Country:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// State
|
|
||||||
$field = array( 'id' => 'billing_state', 'label' => 'State/County:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// Email
|
|
||||||
$field = array( 'id' => 'billing_email', 'label' => 'Email Address:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// Tel
|
|
||||||
$field = array( 'id' => 'billing_phone', 'label' => 'Tel:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="order_customer_shipping_data" class="panel woocommerce_options_panel">
|
<div id="order_customer_shipping_data" class="panel woocommerce_options_panel">
|
||||||
|
|
||||||
<p class="form-field"><button class="button billing-same-as-shipping"><?php _e('Copy billing address to shipping address', 'woothemes'); ?></button></p>
|
<p class="form-field"><button class="button billing-same-as-shipping"><?php _e('Copy billing address to shipping address', 'woothemes'); ?></button></p><?php
|
||||||
<?php
|
woocommerce_wp_text_input( array( 'id' => 'shipping_first_name', 'label' => __('First Name', 'woothemes'), 'value' => $data['shipping_first_name'] ) );
|
||||||
|
woocommerce_wp_text_input( array( 'id' => 'shipping_last_name', 'label' => __('Last Name', 'woothemes'), 'value' => $data['shipping_last_name'] ) );
|
||||||
// First Name
|
woocommerce_wp_text_input( array( 'id' => 'shipping_company', 'label' => __('Company', 'woothemes'), 'value' => $data['shipping_company'] ) );
|
||||||
$field = array( 'id' => 'shipping_first_name', 'label' => 'First Name:' );
|
woocommerce_wp_text_input( array( 'id' => 'shipping_address_1', 'label' => __('Address 1', 'woothemes'), 'value' => $data['shipping_address_1'] ) );
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
woocommerce_wp_text_input( array( 'id' => 'shipping_address_2', 'label' => __('Address 2', 'woothemes'), 'value' => $data['shipping_address_2'] ) );
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
woocommerce_wp_text_input( array( 'id' => 'shipping_city', 'label' => __('City', 'woothemes'), 'value' => $data['shipping_city'] ) );
|
||||||
|
woocommerce_wp_text_input( array( 'id' => 'shipping_postcode', 'label' => __('Postcode', 'woothemes'), 'value' => $data['shipping_postcode'] ) );
|
||||||
// Last Name
|
woocommerce_wp_text_input( array( 'id' => 'shipping_country', 'label' => __('Country', 'woothemes'), 'value' => $data['shipping_country'] ) );
|
||||||
$field = array( 'id' => 'shipping_last_name', 'label' => 'Last Name:' );
|
woocommerce_wp_text_input( array( 'id' => 'shipping_state', 'label' => __('State/County', 'woothemes'), 'value' => $data['shipping_state'] ) );
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
?></div>
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// Company
|
|
||||||
$field = array( 'id' => 'shipping_company', 'label' => 'Company:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// Address 1
|
|
||||||
$field = array( 'id' => 'shipping_address_1', 'label' => 'Address 1:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// Address 2
|
|
||||||
$field = array( 'id' => 'shipping_address_2', 'label' => 'Address 2:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// City
|
|
||||||
$field = array( 'id' => 'shipping_city', 'label' => 'City:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// Postcode
|
|
||||||
$field = array( 'id' => 'shipping_postcode', 'label' => 'Postcode:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// Country
|
|
||||||
$field = array( 'id' => 'shipping_country', 'label' => 'Country:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
// State
|
|
||||||
$field = array( 'id' => 'shipping_state', 'label' => 'State/County:' );
|
|
||||||
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].'</label>
|
|
||||||
<input type="text" name="'.$field['id'].'" id="'.$field['id'].'" value="'.$data[$field['id']].'" /></p>';
|
|
||||||
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -242,22 +143,22 @@ function woocommerce_order_items_meta_box($post) {
|
||||||
<table cellpadding="0" cellspacing="0" class="woocommerce_order_items">
|
<table cellpadding="0" cellspacing="0" class="woocommerce_order_items">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="product-id"><?php _e('ID', 'woothemes'); ?></th>
|
<th class="product-id" width="1%"><?php _e('ID', 'woothemes'); ?></th>
|
||||||
<th class="variation-id"><?php _e('Variation ID', 'woothemes'); ?></th>
|
<th class="variation-id" width="1%"><?php _e('Variation ID', 'woothemes'); ?></th>
|
||||||
<th class="product-sku"><?php _e('sku', 'woothemes'); ?></th>
|
<th class="product-sku" width="1%"><?php _e('SKU', 'woothemes'); ?></th>
|
||||||
<th class="name"><?php _e('Name', 'woothemes'); ?></th>
|
<th class="name"><?php _e('Name', 'woothemes'); ?></th>
|
||||||
<th class="variation"><?php _e('Variation', 'woothemes'); ?></th>
|
<th class="variation"><?php _e('Variation', 'woothemes'); ?></th>
|
||||||
<th class="meta"><?php _e('Order Item Meta', 'woothemes'); ?></th>
|
<th class="meta"><?php _e('Order Item Meta', 'woothemes'); ?></th>
|
||||||
<?php do_action('woocommerce_admin_order_item_headers'); ?>
|
<?php do_action('woocommerce_admin_order_item_headers'); ?>
|
||||||
<th class="quantity"><?php _e('Quantity', 'woothemes'); ?></th>
|
<th class="quantity" style="width:72px"><?php _e('Quantity', 'woothemes'); ?></th>
|
||||||
<th class="cost"><?php _e('Cost', 'woothemes'); ?></th>
|
<th class="cost" style="width:72px"><?php _e('Cost', 'woothemes'); ?></th>
|
||||||
<th class="tax"><?php _e('Tax Rate', 'woothemes'); ?></th>
|
<th class="tax" style="width:72px"><?php _e('Tax Rate', 'woothemes'); ?></th>
|
||||||
<th class="center" width="1%"><?php _e('Remove', 'woothemes'); ?></th>
|
<th class="center" width="1%"><?php _e('Remove', 'woothemes'); ?></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="order_items_list">
|
<tbody id="order_items_list">
|
||||||
|
|
||||||
<?php if (sizeof($order_items)>0 && isset($order_items[0]['id'])) foreach ($order_items as $item) :
|
<?php $loop = 0; if (sizeof($order_items)>0 && isset($order_items[0]['id'])) foreach ($order_items as $item) :
|
||||||
|
|
||||||
if (isset($item['variation_id']) && $item['variation_id'] > 0) :
|
if (isset($item['variation_id']) && $item['variation_id'] > 0) :
|
||||||
$_product = &new woocommerce_product_variation( $item['variation_id'] );
|
$_product = &new woocommerce_product_variation( $item['variation_id'] );
|
||||||
|
@ -266,7 +167,7 @@ function woocommerce_order_items_meta_box($post) {
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<tr class="item">
|
<tr class="item" rel="<?php echo $loop; ?>">
|
||||||
<td class="product-id"><?php echo $item['id']; ?></td>
|
<td class="product-id"><?php echo $item['id']; ?></td>
|
||||||
<td class="variation-id"><?php if ($item['variation_id']) echo $item['variation_id']; else echo '-'; ?></td>
|
<td class="variation-id"><?php if ($item['variation_id']) echo $item['variation_id']; else echo '-'; ?></td>
|
||||||
<td class="product-sku"><?php if ($_product->sku) echo $_product->sku; else echo '-'; ?></td>
|
<td class="product-sku"><?php if ($_product->sku) echo $_product->sku; else echo '-'; ?></td>
|
||||||
|
@ -282,23 +183,29 @@ function woocommerce_order_items_meta_box($post) {
|
||||||
<table class="meta" cellspacing="0">
|
<table class="meta" cellspacing="0">
|
||||||
<tfoot>
|
<tfoot>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3"><button class="add_meta button"><?php _e('Add meta', 'woothemes'); ?></button></td>
|
<td colspan="4"><button class="add_meta button"><?php _e('Add meta', 'woothemes'); ?></button></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
<tbody></tbody>
|
<tbody class="meta_items">
|
||||||
|
<?php
|
||||||
|
if (isset($item['item_meta']) && is_array($item['item_meta'])) foreach ($item['item_meta'] as $key => $value) :
|
||||||
|
echo '<tr><td><input type="text" name="meta_name['.$loop.'][]" value="'.$key.'" /></td><td><input type="text" name="meta_value['.$loop.'][]" value="'.$value.'" /></td><td><button class="remove_meta button">×</button></td></tr>';
|
||||||
|
endforeach;
|
||||||
|
?>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
<?php do_action('woocommerce_admin_order_item_values', $_product, $item); ?>
|
<?php do_action('woocommerce_admin_order_item_values', $_product, $item); ?>
|
||||||
<td class="quantity"><input type="text" name="item_quantity[]" placeholder="<?php _e('Quantity e.g. 2', 'woothemes'); ?>" value="<?php echo $item['qty']; ?>" /></td>
|
<td class="quantity"><input type="text" name="item_quantity[<?php echo $loop; ?>]" placeholder="<?php _e('Quantity e.g. 2', 'woothemes'); ?>" value="<?php echo $item['qty']; ?>" /></td>
|
||||||
<td class="cost"><input type="text" name="item_cost[]" placeholder="<?php _e('Cost per unit ex. tax e.g. 2.99', 'woothemes'); ?>" value="<?php echo $item['cost']; ?>" /></td>
|
<td class="cost"><input type="text" name="item_cost[<?php echo $loop; ?>]" placeholder="<?php _e('Cost per unit ex. tax e.g. 2.99', 'woothemes'); ?>" value="<?php echo $item['cost']; ?>" /></td>
|
||||||
<td class="tax"><input type="text" name="item_tax_rate[]" placeholder="<?php _e('Tax Rate e.g. 20.0000', 'woothemes'); ?>" value="<?php echo $item['taxrate']; ?>" /></td>
|
<td class="tax"><input type="text" name="item_tax_rate[<?php echo $loop; ?>]" placeholder="<?php _e('Tax Rate e.g. 20.0000', 'woothemes'); ?>" value="<?php echo $item['taxrate']; ?>" /></td>
|
||||||
<td class="center">
|
<td class="center">
|
||||||
<input type="hidden" name="item_id[]" value="<?php echo $item['id']; ?>" />
|
<input type="hidden" name="item_id[<?php echo $loop; ?>]" value="<?php echo $item['id']; ?>" />
|
||||||
<input type="hidden" name="item_name[]" value="<?php echo $item['name']; ?>" />
|
<input type="hidden" name="item_name[<?php echo $loop; ?>]" value="<?php echo $item['name']; ?>" />
|
||||||
<button type="button" class="remove_row button">×</button>
|
<button type="button" class="remove_row button">×</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php endforeach; ?>
|
<?php $loop++; endforeach; ?>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@ -487,23 +394,36 @@ function woocommerce_process_shop_order_meta( $post_id, $post ) {
|
||||||
$order_items = array();
|
$order_items = array();
|
||||||
|
|
||||||
if (isset($_POST['item_id'])) :
|
if (isset($_POST['item_id'])) :
|
||||||
$item_id = $_POST['item_id'];
|
$item_id = $_POST['item_id'];
|
||||||
$item_variation= $_POST['item_variation'];
|
$item_variation = $_POST['item_variation'];
|
||||||
$item_name = $_POST['item_name'];
|
$item_name = $_POST['item_name'];
|
||||||
$item_quantity = $_POST['item_quantity'];
|
$item_quantity = $_POST['item_quantity'];
|
||||||
$item_cost = $_POST['item_cost'];
|
$item_cost = $_POST['item_cost'];
|
||||||
$item_tax_rate = $_POST['item_tax_rate'];
|
$item_tax_rate = $_POST['item_tax_rate'];
|
||||||
|
$item_meta_names = $_POST['meta_name'];
|
||||||
|
$item_meta_values = $_POST['meta_value'];
|
||||||
|
|
||||||
for ($i=0; $i<sizeof($item_id); $i++) :
|
for ($i=0; $i<sizeof($item_id); $i++) :
|
||||||
|
|
||||||
if (!isset($item_id[$i])) continue;
|
if (!isset($item_id[$i]) || !$item_id[$i]) continue;
|
||||||
if (!isset($item_name[$i])) continue;
|
if (!isset($item_name[$i])) continue;
|
||||||
if (!isset($item_quantity[$i])) continue;
|
if (!isset($item_quantity[$i]) || $item_quantity[$i] < 1) continue;
|
||||||
if (!isset($item_cost[$i])) continue;
|
if (!isset($item_cost[$i])) continue;
|
||||||
if (!isset($item_tax_rate[$i])) continue;
|
if (!isset($item_tax_rate[$i])) continue;
|
||||||
|
|
||||||
//$ex_tax = woocommerce_clean($item_cost[$i]) / (($item_tax_rate[$i]/100)+1);
|
// Meta
|
||||||
|
$item_meta = array();
|
||||||
|
$meta_names = $item_meta_names[$i];
|
||||||
|
$meta_values = $item_meta_values[$i];
|
||||||
|
|
||||||
|
for ($ii=0; $ii<sizeof($meta_names); $ii++) :
|
||||||
|
$key = sanitize_title($meta_names[$ii]);
|
||||||
|
if ($key && $meta_values[$ii]) :
|
||||||
|
$item_meta[$key] = woocommerce_clean( $meta_values[$ii] );
|
||||||
|
endif;
|
||||||
|
endfor;
|
||||||
|
|
||||||
|
// Add to array
|
||||||
$order_items[] = apply_filters('update_order_item', array(
|
$order_items[] = apply_filters('update_order_item', array(
|
||||||
'id' => htmlspecialchars(stripslashes($item_id[$i])),
|
'id' => htmlspecialchars(stripslashes($item_id[$i])),
|
||||||
'variation_id' => (int) $item_variation[$i],
|
'variation_id' => (int) $item_variation[$i],
|
||||||
|
@ -511,6 +431,7 @@ function woocommerce_process_shop_order_meta( $post_id, $post ) {
|
||||||
'qty' => (int) $item_quantity[$i],
|
'qty' => (int) $item_quantity[$i],
|
||||||
'cost' => number_format(woocommerce_clean($item_cost[$i]), 2, '.', ''),
|
'cost' => number_format(woocommerce_clean($item_cost[$i]), 2, '.', ''),
|
||||||
'taxrate' => number_format(woocommerce_clean($item_tax_rate[$i]), 4, '.', ''),
|
'taxrate' => number_format(woocommerce_clean($item_tax_rate[$i]), 4, '.', ''),
|
||||||
|
'item_meta' => $item_meta
|
||||||
));
|
));
|
||||||
|
|
||||||
endfor;
|
endfor;
|
||||||
|
|
|
@ -22,7 +22,7 @@ function variable_product_type_options() {
|
||||||
?>
|
?>
|
||||||
<div id="variable_product_options" class="panel">
|
<div id="variable_product_options" class="panel">
|
||||||
|
|
||||||
<div class="woocommerce_configurations">
|
<div class="woocommerce_variations">
|
||||||
<?php
|
<?php
|
||||||
$args = array(
|
$args = array(
|
||||||
'post_type' => 'product_variation',
|
'post_type' => 'product_variation',
|
||||||
|
@ -44,7 +44,7 @@ function variable_product_type_options() {
|
||||||
|
|
||||||
if (!$image) $image = woocommerce::plugin_url().'/assets/images/placeholder.png';
|
if (!$image) $image = woocommerce::plugin_url().'/assets/images/placeholder.png';
|
||||||
?>
|
?>
|
||||||
<div class="woocommerce_configuration">
|
<div class="woocommerce_variation">
|
||||||
<p>
|
<p>
|
||||||
<button type="button" class="remove_variation button" rel="<?php echo $variation->ID; ?>"><?php _e('Remove', 'woothemes'); ?></button>
|
<button type="button" class="remove_variation button" rel="<?php echo $variation->ID; ?>"><?php _e('Remove', 'woothemes'); ?></button>
|
||||||
<strong>#<?php echo $variation->ID; ?> — <?php _e('Variation:', 'woothemes'); ?></strong>
|
<strong>#<?php echo $variation->ID; ?> — <?php _e('Variation:', 'woothemes'); ?></strong>
|
||||||
|
@ -115,7 +115,7 @@ function variable_product_write_panel_js() {
|
||||||
|
|
||||||
jQuery('button.add_configuration').live('click', function(){
|
jQuery('button.add_configuration').live('click', function(){
|
||||||
|
|
||||||
jQuery('.woocommerce_configurations').block({ message: null, overlayCSS: { background: '#fff url(<?php echo woocommerce::plugin_url(); ?>/assets/images/ajax-loader.gif) no-repeat center', opacity: 0.6 } });
|
jQuery('.woocommerce_variations').block({ message: null, overlayCSS: { background: '#fff url(<?php echo woocommerce::plugin_url(); ?>/assets/images/ajax-loader.gif) no-repeat center', opacity: 0.6 } });
|
||||||
|
|
||||||
var data = {
|
var data = {
|
||||||
action: 'woocommerce_add_variation',
|
action: 'woocommerce_add_variation',
|
||||||
|
@ -127,9 +127,9 @@ function variable_product_write_panel_js() {
|
||||||
|
|
||||||
var variation_id = parseInt(response);
|
var variation_id = parseInt(response);
|
||||||
|
|
||||||
var loop = jQuery('.woocommerce_configuration').size();
|
var loop = jQuery('.woocommerce_variation').size();
|
||||||
|
|
||||||
jQuery('.woocommerce_configurations').append('<div class="woocommerce_configuration">\
|
jQuery('.woocommerce_variations').append('<div class="woocommerce_variation">\
|
||||||
<p>\
|
<p>\
|
||||||
<button type="button" class="remove_variation button"><?php _e('Remove', 'woothemes'); ?></button>\
|
<button type="button" class="remove_variation button"><?php _e('Remove', 'woothemes'); ?></button>\
|
||||||
<strong><?php _e('Variation:', 'woothemes'); ?></strong>\
|
<strong><?php _e('Variation:', 'woothemes'); ?></strong>\
|
||||||
|
@ -166,7 +166,7 @@ function variable_product_write_panel_js() {
|
||||||
</table>\
|
</table>\
|
||||||
</div>');
|
</div>');
|
||||||
|
|
||||||
jQuery('.woocommerce_configurations').unblock();
|
jQuery('.woocommerce_variations').unblock();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
.icon32-posts-shop_order {
|
.icon32-posts-shop_order {
|
||||||
background-position: -127px -6px !important;
|
background-position: -127px -6px !important;
|
||||||
}
|
}
|
||||||
.icon32-attributes, .icon32-posts-product_variation {
|
.icon32-attributes {
|
||||||
background-position: -185px -6px !important;
|
background-position: -185px -6px !important;
|
||||||
}
|
}
|
||||||
.icon32-woocommerce-settings {
|
.icon32-woocommerce-settings {
|
||||||
|
@ -46,6 +46,9 @@
|
||||||
.icon32-posts-shop_coupon {
|
.icon32-posts-shop_coupon {
|
||||||
background-position: -475px -6px !important;
|
background-position: -475px -6px !important;
|
||||||
}
|
}
|
||||||
|
.icon32-posts-product_variation {
|
||||||
|
background-position: -533px -6px !important;
|
||||||
|
}
|
||||||
/* Orders */
|
/* Orders */
|
||||||
.order_actions {
|
.order_actions {
|
||||||
color: #999;
|
color: #999;
|
||||||
|
@ -130,7 +133,8 @@ dl.totals dd input.last {
|
||||||
.woocommerce_order_items_wrapper table.woocommerce_order_items td {
|
.woocommerce_order_items_wrapper table.woocommerce_order_items td {
|
||||||
padding: 8px 10px;
|
padding: 8px 10px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
vertical-align: middle;
|
line-height: 26px;
|
||||||
|
vertical-align: top;
|
||||||
border-bottom: 1px dotted #ececec;
|
border-bottom: 1px dotted #ececec;
|
||||||
}
|
}
|
||||||
.woocommerce_order_items_wrapper table.woocommerce_order_items td input, .woocommerce_order_items_wrapper table.woocommerce_order_items td textarea {
|
.woocommerce_order_items_wrapper table.woocommerce_order_items td input, .woocommerce_order_items_wrapper table.woocommerce_order_items td textarea {
|
||||||
|
@ -708,23 +712,23 @@ div.multi_select_products_wrapper {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
.woocommerce_configuration {
|
.woocommerce_variation {
|
||||||
background: #ececec;
|
background: #ececec;
|
||||||
border: 1px solid #ececec;
|
border: 1px solid #ececec;
|
||||||
margin: 0 0 8px;
|
margin: 0 0 8px;
|
||||||
}
|
}
|
||||||
.woocommerce_configuration p {
|
.woocommerce_variation p {
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
}
|
}
|
||||||
.woocommerce_configuration p button {
|
.woocommerce_variation p button {
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
.woocommerce_configuration table td {
|
.woocommerce_variation table td {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
padding: 6px 6px;
|
padding: 6px 6px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
.woocommerce_configuration table td label {
|
.woocommerce_variation table td label {
|
||||||
color: #999;
|
color: #999;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
|
@ -732,20 +736,20 @@ div.multi_select_products_wrapper {
|
||||||
display: block;
|
display: block;
|
||||||
line-height: 16px;
|
line-height: 16px;
|
||||||
}
|
}
|
||||||
.woocommerce_configuration table td input {
|
.woocommerce_variation table td input {
|
||||||
float: left;
|
float: left;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
.woocommerce_configuration table td.upload_image {
|
.woocommerce_variation table td.upload_image {
|
||||||
width: 1%;
|
width: 1%;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
.woocommerce_configuration table td.upload_image img {
|
.woocommerce_variation table td.upload_image img {
|
||||||
float: none;
|
float: none;
|
||||||
margin-right: 6px;
|
margin-right: 6px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
.woocommerce_configuration table td.upload_image .button {
|
.woocommerce_variation table td.upload_image .button {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 4px 10px;
|
padding: 4px 10px;
|
||||||
width: auto;
|
width: auto;
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
.icon32-posts-shop_order {
|
.icon32-posts-shop_order {
|
||||||
background-position: -127px -6px !important;
|
background-position: -127px -6px !important;
|
||||||
}
|
}
|
||||||
.icon32-attributes, .icon32-posts-product_variation {
|
.icon32-attributes {
|
||||||
background-position: -185px -6px !important;
|
background-position: -185px -6px !important;
|
||||||
}
|
}
|
||||||
.icon32-woocommerce-settings {
|
.icon32-woocommerce-settings {
|
||||||
|
@ -48,6 +48,9 @@
|
||||||
.icon32-posts-shop_coupon {
|
.icon32-posts-shop_coupon {
|
||||||
background-position: -475px -6px !important;
|
background-position: -475px -6px !important;
|
||||||
}
|
}
|
||||||
|
.icon32-posts-product_variation {
|
||||||
|
background-position: -533px -6px !important;
|
||||||
|
}
|
||||||
|
|
||||||
/* Orders */
|
/* Orders */
|
||||||
.order_actions {
|
.order_actions {
|
||||||
|
@ -133,7 +136,8 @@ dl.totals {
|
||||||
td {
|
td {
|
||||||
padding: 8px 10px;
|
padding: 8px 10px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
vertical-align: middle;
|
line-height: 26px;
|
||||||
|
vertical-align: top;
|
||||||
border-bottom: 1px dotted #ececec;
|
border-bottom: 1px dotted #ececec;
|
||||||
input, textarea {
|
input, textarea {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -771,7 +775,7 @@ div.multi_select_products_wrapper {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.woocommerce_configuration {
|
.woocommerce_variation {
|
||||||
background: #ececec;
|
background: #ececec;
|
||||||
border: 1px solid #ececec;
|
border: 1px solid #ececec;
|
||||||
margin: 0 0 8px;
|
margin: 0 0 8px;
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 9.0 KiB |
|
@ -27,7 +27,7 @@ jQuery(function(){
|
||||||
jQuery('body').trigger('adding_to_cart');
|
jQuery('body').trigger('adding_to_cart');
|
||||||
|
|
||||||
// Block widget
|
// Block widget
|
||||||
jQuery('.widget_shopping_cart').block({ message: null, overlayCSS: { background: '#fff url(' + params.plugin_url + '/assets/images/ajax-loader.gif) no-repeat center', opacity: 0.6 } });
|
jQuery('.widget_shopping_cart, .shop_table.cart').block({ message: null, overlayCSS: { background: '#fff url(' + params.plugin_url + '/assets/images/ajax-loader.gif) no-repeat center', opacity: 0.6 } });
|
||||||
|
|
||||||
jQuery.post( params.ajax_url, data, function(response) {
|
jQuery.post( params.ajax_url, data, function(response) {
|
||||||
|
|
||||||
|
@ -40,6 +40,12 @@ jQuery(function(){
|
||||||
jQuery('.widget_shopping_cart').unblock();
|
jQuery('.widget_shopping_cart').unblock();
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
// Cart load
|
||||||
|
jQuery('.shop_table.cart').load( window.location + ' .shop_table.cart:eq(0) > *', function() {
|
||||||
|
jQuery("div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)").addClass('buttons_added').append('<input type="button" value="+" id="add1" class="plus" />').prepend('<input type="button" value="-" id="minus1" class="minus" />');
|
||||||
|
jQuery('.shop_table.cart').unblock();
|
||||||
|
} );
|
||||||
|
|
||||||
// Trigger event so themes can refresh other areas
|
// Trigger event so themes can refresh other areas
|
||||||
jQuery('body').trigger('added_to_cart');
|
jQuery('body').trigger('added_to_cart');
|
||||||
|
|
||||||
|
@ -124,8 +130,9 @@ jQuery(function(){
|
||||||
});
|
});
|
||||||
|
|
||||||
// Quantity buttons
|
// Quantity buttons
|
||||||
jQuery("div.quantity, td.quantity").append('<input type="button" value="+" id="add1" class="plus" />').prepend('<input type="button" value="-" id="minus1" class="minus" />');
|
jQuery("div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)").addClass('buttons_added').append('<input type="button" value="+" id="add1" class="plus" />').prepend('<input type="button" value="-" id="minus1" class="minus" />');
|
||||||
jQuery(".plus").click(function()
|
|
||||||
|
jQuery(".plus").live('click', function()
|
||||||
{
|
{
|
||||||
var currentVal = parseInt(jQuery(this).prev(".qty").val());
|
var currentVal = parseInt(jQuery(this).prev(".qty").val());
|
||||||
|
|
||||||
|
@ -134,7 +141,7 @@ jQuery(function(){
|
||||||
jQuery(this).prev(".qty").val(currentVal + 1);
|
jQuery(this).prev(".qty").val(currentVal + 1);
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery(".minus").click(function()
|
jQuery(".minus").live('click', function()
|
||||||
{
|
{
|
||||||
var currentVal = parseInt(jQuery(this).next(".qty").val());
|
var currentVal = parseInt(jQuery(this).next(".qty").val());
|
||||||
if (currentVal == "NaN") currentVal = 0;
|
if (currentVal == "NaN") currentVal = 0;
|
||||||
|
|
|
@ -19,7 +19,8 @@ jQuery( function($){
|
||||||
jQuery('#order_items_list button.remove_row').live('click', function(){
|
jQuery('#order_items_list button.remove_row').live('click', function(){
|
||||||
var answer = confirm(params.remove_item_notice);
|
var answer = confirm(params.remove_item_notice);
|
||||||
if (answer){
|
if (answer){
|
||||||
jQuery(this).parent().parent().remove();
|
jQuery(this).closest('tr.item').hide();
|
||||||
|
jQuery('input', jQuery(this).closest('tr.item')).val('');
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
@ -96,12 +97,15 @@ jQuery( function($){
|
||||||
var add_item_id = jQuery('select.add_item_id').val();
|
var add_item_id = jQuery('select.add_item_id').val();
|
||||||
|
|
||||||
if (add_item_id) {
|
if (add_item_id) {
|
||||||
|
|
||||||
jQuery('table.woocommerce_order_items').block({ message: null, overlayCSS: { background: '#fff url(' + params.plugin_url + '/assets/images/ajax-loader.gif) no-repeat center', opacity: 0.6 } });
|
jQuery('table.woocommerce_order_items').block({ message: null, overlayCSS: { background: '#fff url(' + params.plugin_url + '/assets/images/ajax-loader.gif) no-repeat center', opacity: 0.6 } });
|
||||||
|
|
||||||
|
var size = jQuery('table.woocommerce_order_items tbody tr.item').size();
|
||||||
|
|
||||||
var data = {
|
var data = {
|
||||||
action: 'woocommerce_add_order_item',
|
action: 'woocommerce_add_order_item',
|
||||||
item_to_add: jQuery('select.add_item_id').val(),
|
item_to_add: jQuery('select.add_item_id').val(),
|
||||||
|
index: size,
|
||||||
security: params.add_order_item_nonce
|
security: params.add_order_item_nonce
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -121,8 +125,20 @@ jQuery( function($){
|
||||||
|
|
||||||
jQuery('button.add_meta').live('click', function(){
|
jQuery('button.add_meta').live('click', function(){
|
||||||
|
|
||||||
jQuery(this).parent().parent().parent().parent().append('<tr><td><input type="text" name="meta_name[][]" placeholder="' + params.meta_name + '" /></td><td><input type="text" name="meta_value[][]" placeholder="' + params.meta_value + '" /></td></tr>');
|
var index = jQuery(this).closest('tr.item').attr('rel');
|
||||||
|
|
||||||
|
jQuery(this).closest('table.meta').find('.meta_items').append('<tr><td><input type="text" name="meta_name[' + index + '][]" placeholder="' + params.meta_name + '" /></td><td><input type="text" name="meta_value[' + index + '][]" placeholder="' + params.meta_value + '" /></td><td><button class="remove_meta button">×</button></td></tr>');
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
jQuery('button.remove_meta').live('click', function(){
|
||||||
|
var answer = confirm("Remove this meta key?")
|
||||||
|
if (answer){
|
||||||
|
jQuery(this).closest('tr').remove();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery('button.billing-same-as-shipping').live('click', function(){
|
jQuery('button.billing-same-as-shipping').live('click', function(){
|
||||||
|
|
|
@ -467,12 +467,12 @@ class woocommerce_product {
|
||||||
|
|
||||||
/** Returns the upsell product ids */
|
/** Returns the upsell product ids */
|
||||||
function get_upsells() {
|
function get_upsells() {
|
||||||
return (array) $this->upsell_ids;
|
return (array) maybe_unserialize( $this->upsell_ids );
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns the crosssell product ids */
|
/** Returns the crosssell product ids */
|
||||||
function get_cross_sells() {
|
function get_cross_sells() {
|
||||||
return (array) $this->crosssell_ids;
|
return (array) maybe_unserialize( $this->crosssell_ids );
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns the product categories */
|
/** Returns the product categories */
|
||||||
|
|
|
@ -87,7 +87,7 @@ class flat_rate extends woocommerce_shipping_method {
|
||||||
<h3><?php _e('Flat Rates', 'woothemes'); ?></h3>
|
<h3><?php _e('Flat Rates', 'woothemes'); ?></h3>
|
||||||
<p><?php _e('Flat rates let you define a standard rate per item, or per order.', 'woothemes'); ?></p>
|
<p><?php _e('Flat rates let you define a standard rate per item, or per order.', 'woothemes'); ?></p>
|
||||||
<table class="form-table">
|
<table class="form-table">
|
||||||
<tr valign="top" class="option_enabled">
|
<tr valign="top">
|
||||||
<th scope="row" class="titledesc"><?php _e('Enable/disable', 'woothemes') ?></th>
|
<th scope="row" class="titledesc"><?php _e('Enable/disable', 'woothemes') ?></th>
|
||||||
<td class="forminp">
|
<td class="forminp">
|
||||||
<fieldset><legend class="screen-reader-text"><span><?php _e('Enable/disable', 'woothemes') ?></span></legend>
|
<fieldset><legend class="screen-reader-text"><span><?php _e('Enable/disable', 'woothemes') ?></span></legend>
|
||||||
|
@ -96,13 +96,13 @@ class flat_rate extends woocommerce_shipping_method {
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr valign="top" class="hidden_unless_enabled">
|
<tr valign="top">
|
||||||
<th scope="row" class="titledesc"><?php _e('Method Title', 'woothemes') ?></th>
|
<th scope="row" class="titledesc"><?php _e('Method Title', 'woothemes') ?></th>
|
||||||
<td class="forminp">
|
<td class="forminp">
|
||||||
<input type="text" name="woocommerce_flat_rate_title" id="woocommerce_flat_rate_title" style="min-width:50px;" value="<?php if ($value = get_option('woocommerce_flat_rate_title')) echo $value; else echo 'Flat Rate'; ?>" /> <span class="description"><?php _e('This controls the title which the user sees during checkout.', 'woothemes') ?></span>
|
<input type="text" name="woocommerce_flat_rate_title" id="woocommerce_flat_rate_title" style="min-width:50px;" value="<?php if ($value = get_option('woocommerce_flat_rate_title')) echo $value; else echo 'Flat Rate'; ?>" /> <span class="description"><?php _e('This controls the title which the user sees during checkout.', 'woothemes') ?></span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr valign="top" class="hidden_unless_enabled">
|
<tr valign="top">
|
||||||
<th scope="row" class="titledesc"><?php _e('Type', 'woothemes') ?></th>
|
<th scope="row" class="titledesc"><?php _e('Type', 'woothemes') ?></th>
|
||||||
<td class="forminp">
|
<td class="forminp">
|
||||||
<select name="woocommerce_flat_rate_type" id="woocommerce_flat_rate_type" style="min-width:100px;">
|
<select name="woocommerce_flat_rate_type" id="woocommerce_flat_rate_type" style="min-width:100px;">
|
||||||
|
@ -112,7 +112,7 @@ class flat_rate extends woocommerce_shipping_method {
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php $_tax = new woocommerce_tax(); ?>
|
<?php $_tax = new woocommerce_tax(); ?>
|
||||||
<tr valign="top" class="hidden_unless_enabled">
|
<tr valign="top">
|
||||||
<th scope="row" class="titledesc"><?php _e('Tax Status', 'woothemes') ?></th>
|
<th scope="row" class="titledesc"><?php _e('Tax Status', 'woothemes') ?></th>
|
||||||
<td class="forminp">
|
<td class="forminp">
|
||||||
<select name="woocommerce_flat_rate_tax_status">
|
<select name="woocommerce_flat_rate_tax_status">
|
||||||
|
@ -121,19 +121,19 @@ class flat_rate extends woocommerce_shipping_method {
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr valign="top" class="hidden_unless_enabled">
|
<tr valign="top">
|
||||||
<th scope="row" class="titledesc"><?php _e('Cost', 'woothemes') ?></th>
|
<th scope="row" class="titledesc"><?php _e('Cost', 'woothemes') ?></th>
|
||||||
<td class="forminp">
|
<td class="forminp">
|
||||||
<input type="text" name="woocommerce_flat_rate_cost" id="woocommerce_flat_rate_cost" style="min-width:50px;" value="<?php if ($value = get_option('woocommerce_flat_rate_cost')) echo $value; ?>" /> <span class="description"><?php _e('Cost excluding tax. Enter an amount, e.g. 2.50.', 'woothemes') ?></span>
|
<input type="text" name="woocommerce_flat_rate_cost" id="woocommerce_flat_rate_cost" style="min-width:50px;" value="<?php if ($value = get_option('woocommerce_flat_rate_cost')) echo $value; ?>" /> <span class="description"><?php _e('Cost excluding tax. Enter an amount, e.g. 2.50.', 'woothemes') ?></span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr valign="top" class="hidden_unless_enabled">
|
<tr valign="top">
|
||||||
<th scope="row" class="titledesc"><?php _e('Handling Fee', 'woothemes') ?></th>
|
<th scope="row" class="titledesc"><?php _e('Handling Fee', 'woothemes') ?></th>
|
||||||
<td class="forminp">
|
<td class="forminp">
|
||||||
<input type="text" name="woocommerce_flat_rate_handling_fee" id="woocommerce_flat_rate_handling_fee" style="min-width:50px;" value="<?php if ($value = get_option('woocommerce_flat_rate_handling_fee')) echo $value; ?>" /> <span class="description"><?php _e('Fee excluding tax. Enter an amount, e.g. 2.50, or a percentage, e.g. 5%. Leave blank to disable.', 'woothemes') ?></span>
|
<input type="text" name="woocommerce_flat_rate_handling_fee" id="woocommerce_flat_rate_handling_fee" style="min-width:50px;" value="<?php if ($value = get_option('woocommerce_flat_rate_handling_fee')) echo $value; ?>" /> <span class="description"><?php _e('Fee excluding tax. Enter an amount, e.g. 2.50, or a percentage, e.g. 5%. Leave blank to disable.', 'woothemes') ?></span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr valign="top" class="hidden_unless_enabled">
|
<tr valign="top">
|
||||||
<th scope="row" class="titledesc"><?php _e('Method availability', 'woothemes') ?></th>
|
<th scope="row" class="titledesc"><?php _e('Method availability', 'woothemes') ?></th>
|
||||||
<td class="forminp">
|
<td class="forminp">
|
||||||
<select name="woocommerce_flat_rate_availability" id="woocommerce_flat_rate_availability" style="min-width:100px;">
|
<select name="woocommerce_flat_rate_availability" id="woocommerce_flat_rate_availability" style="min-width:100px;">
|
||||||
|
|
|
@ -35,7 +35,7 @@ class free_shipping extends woocommerce_shipping_method {
|
||||||
?>
|
?>
|
||||||
<h3><?php _e('Free Shipping', 'woothemes'); ?></h3>
|
<h3><?php _e('Free Shipping', 'woothemes'); ?></h3>
|
||||||
<table class="form-table">
|
<table class="form-table">
|
||||||
<tr valign="top" class="option_enabled">
|
<tr valign="top">
|
||||||
<th scope="row" class="titledesc"><?php _e('Enable/disable', 'woothemes') ?></th>
|
<th scope="row" class="titledesc"><?php _e('Enable/disable', 'woothemes') ?></th>
|
||||||
<td class="forminp">
|
<td class="forminp">
|
||||||
<fieldset><legend class="screen-reader-text"><span><?php _e('Enable/disable', 'woothemes') ?></span></legend>
|
<fieldset><legend class="screen-reader-text"><span><?php _e('Enable/disable', 'woothemes') ?></span></legend>
|
||||||
|
@ -44,19 +44,19 @@ class free_shipping extends woocommerce_shipping_method {
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr valign="top" class="hidden_unless_enabled">
|
<tr valign="top">
|
||||||
<th scope="row" class="titledesc"><?php _e('Method Title', 'woothemes') ?></th>
|
<th scope="row" class="titledesc"><?php _e('Method Title', 'woothemes') ?></th>
|
||||||
<td class="forminp">
|
<td class="forminp">
|
||||||
<input type="text" name="woocommerce_free_shipping_title" id="woocommerce_free_shipping_title" style="min-width:50px;" value="<?php if ($value = get_option('woocommerce_free_shipping_title')) echo $value; else echo 'Free Shipping'; ?>" /> <span class="description"><?php _e('This controls the title which the user sees during checkout.', 'woothemes') ?></span>
|
<input type="text" name="woocommerce_free_shipping_title" id="woocommerce_free_shipping_title" style="min-width:50px;" value="<?php if ($value = get_option('woocommerce_free_shipping_title')) echo $value; else echo 'Free Shipping'; ?>" /> <span class="description"><?php _e('This controls the title which the user sees during checkout.', 'woothemes') ?></span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr valign="top" class="hidden_unless_enabled">
|
<tr valign="top">
|
||||||
<th scope="row" class="titledesc"><?php _e('Minimum Order Amount', 'woothemes') ?></th>
|
<th scope="row" class="titledesc"><?php _e('Minimum Order Amount', 'woothemes') ?></th>
|
||||||
<td class="forminp">
|
<td class="forminp">
|
||||||
<input type="text" name="woocommerce_free_shipping_minimum_amount" id="woocommerce_free_shipping_minimum_amount" style="min-width:50px;" value="<?php if ($value = get_option('woocommerce_free_shipping_minimum_amount')) echo $value; else echo 'Free Shipping'; ?>" /> <span class="description"><?php _e('Users will need to spend this amount to get free shipping. Leave blank to disable.', 'woothemes') ?></span>
|
<input type="text" name="woocommerce_free_shipping_minimum_amount" id="woocommerce_free_shipping_minimum_amount" style="min-width:50px;" value="<?php if ($value = get_option('woocommerce_free_shipping_minimum_amount')) echo $value; else echo 'Free Shipping'; ?>" /> <span class="description"><?php _e('Users will need to spend this amount to get free shipping. Leave blank to disable.', 'woothemes') ?></span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr valign="top" class="hidden_unless_enabled">
|
<tr valign="top">
|
||||||
<th scope="row" class="titledesc"><?php _e('Method availability', 'woothemes') ?></th>
|
<th scope="row" class="titledesc"><?php _e('Method availability', 'woothemes') ?></th>
|
||||||
<td class="forminp">
|
<td class="forminp">
|
||||||
<select name="woocommerce_free_shipping_availability" id="woocommerce_free_shipping_availability" style="min-width:100px;">
|
<select name="woocommerce_free_shipping_availability" id="woocommerce_free_shipping_availability" style="min-width:100px;">
|
||||||
|
|
|
@ -13,7 +13,7 @@ if ($per_page !== get_option('posts_per_page')) query_posts( array_merge( $wp_qu
|
||||||
|
|
||||||
ob_start();
|
ob_start();
|
||||||
|
|
||||||
if (have_posts()) : while (have_posts()) : the_post(); $_product = &new woocommerce_product( $post->ID ); $loop++;
|
if (have_posts()) : while (have_posts()) : the_post(); $_product = &new woocommerce_product( $post->ID ); if (!$_product->is_visible()) continue; $loop++;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<li class="product <?php if ($loop%$columns==0) echo 'last'; if (($loop-1)%$columns==0) echo 'first'; ?>">
|
<li class="product <?php if ($loop%$columns==0) echo 'last'; if (($loop-1)%$columns==0) echo 'first'; ?>">
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
*
|
*
|
||||||
* - AJAX update order review on checkout
|
* - AJAX update order review on checkout
|
||||||
* - AJAX add to cart
|
* - AJAX add to cart
|
||||||
|
* - AJAX add to cart fragments
|
||||||
* - Increase coupon usage count
|
* - Increase coupon usage count
|
||||||
* - Get variation
|
* - Get variation
|
||||||
* - Add order item
|
* - Add order item
|
||||||
|
@ -77,7 +78,6 @@ function woocommerce_ajax_add_to_cart() {
|
||||||
echo json_encode( $fragments );
|
echo json_encode( $fragments );
|
||||||
|
|
||||||
die();
|
die();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -156,6 +156,7 @@ function woocommerce_add_order_item() {
|
||||||
|
|
||||||
global $wpdb;
|
global $wpdb;
|
||||||
|
|
||||||
|
$index = trim(stripslashes($_POST['index']));
|
||||||
$item_to_add = trim(stripslashes($_POST['item_to_add']));
|
$item_to_add = trim(stripslashes($_POST['item_to_add']));
|
||||||
|
|
||||||
$post = '';
|
$post = '';
|
||||||
|
@ -188,11 +189,9 @@ function woocommerce_add_order_item() {
|
||||||
else :
|
else :
|
||||||
$_product = &new woocommerce_product_variation( $post->ID );
|
$_product = &new woocommerce_product_variation( $post->ID );
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
$loop = 0;
|
|
||||||
?>
|
?>
|
||||||
<tr class="item">
|
<tr class="item" rel="<?php echo $index; ?>">
|
||||||
<td class="product-id">#<?php echo $_product->id; ?></td>
|
<td class="product-id"><?php echo $_product->id; ?></td>
|
||||||
<td class="variation-id"><?php if (isset($_product->variation_id)) echo $_product->variation_id; else echo '-'; ?></td>
|
<td class="variation-id"><?php if (isset($_product->variation_id)) echo $_product->variation_id; else echo '-'; ?></td>
|
||||||
<td class="product-sku"><?php if ($_product->sku) echo $_product->sku; ?></td>
|
<td class="product-sku"><?php if ($_product->sku) echo $_product->sku; ?></td>
|
||||||
<td class="name"><a href="<?php echo admin_url('post.php?post='. $_product->id .'&action=edit'); ?>"><?php echo $_product->get_title(); ?></a></td>
|
<td class="name"><a href="<?php echo admin_url('post.php?post='. $_product->id .'&action=edit'); ?>"><?php echo $_product->get_title(); ?></a></td>
|
||||||
|
@ -210,16 +209,16 @@ function woocommerce_add_order_item() {
|
||||||
<td colspan="3"><button class="add_meta button"><?php _e('Add meta', 'woothemes'); ?></button></td>
|
<td colspan="3"><button class="add_meta button"><?php _e('Add meta', 'woothemes'); ?></button></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
<tbody></tbody>
|
<tbody class="meta_items"></tbody>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
<?php do_action('woocommerce_admin_order_item_values', $_product); ?>
|
<?php do_action('woocommerce_admin_order_item_values', $_product); ?>
|
||||||
<td class="quantity"><input type="text" name="item_quantity[]" placeholder="<?php _e('Quantity e.g. 2', 'woothemes'); ?>" value="1" /></td>
|
<td class="quantity"><input type="text" name="item_quantity[<?php echo $index; ?>]" placeholder="<?php _e('Quantity e.g. 2', 'woothemes'); ?>" value="1" /></td>
|
||||||
<td class="cost"><input type="text" name="item_cost[]" placeholder="<?php _e('Cost per unit ex. tax e.g. 2.99', 'woothemes'); ?>" value="<?php echo $_product->get_price_excluding_tax(); ?>" /></td>
|
<td class="cost"><input type="text" name="item_cost[<?php echo $index; ?>]" placeholder="<?php _e('Cost per unit ex. tax e.g. 2.99', 'woothemes'); ?>" value="<?php echo $_product->get_price_excluding_tax(); ?>" /></td>
|
||||||
<td class="tax"><input type="text" name="item_tax_rate[]" placeholder="<?php _e('Tax Rate e.g. 20.0000', 'woothemes'); ?>" value="<?php echo $_product->get_tax_base_rate(); ?>" /></td>
|
<td class="tax"><input type="text" name="item_tax_rate[<?php echo $index; ?>]" placeholder="<?php _e('Tax Rate e.g. 20.0000', 'woothemes'); ?>" value="<?php echo $_product->get_tax_base_rate(); ?>" /></td>
|
||||||
<td class="center">
|
<td class="center">
|
||||||
<input type="hidden" name="item_id[]" value="<?php echo $_product->id; ?>" />
|
<input type="hidden" name="item_id[<?php echo $index; ?>]" value="<?php echo $_product->id; ?>" />
|
||||||
<input type="hidden" name="item_name[]" value="<?php echo $_product->get_title(); ?>" />
|
<input type="hidden" name="item_name[<?php echo $index; ?>]" value="<?php echo $_product->get_title(); ?>" />
|
||||||
<button type="button" class="remove_row button">×</button>
|
<button type="button" class="remove_row button">×</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -851,6 +851,7 @@ function woocommerce_cross_sell_display() {
|
||||||
global $columns;
|
global $columns;
|
||||||
$columns = 2;
|
$columns = 2;
|
||||||
$crosssells = woocommerce_cart::get_cross_sells();
|
$crosssells = woocommerce_cart::get_cross_sells();
|
||||||
|
|
||||||
if (sizeof($crosssells)>0) :
|
if (sizeof($crosssells)>0) :
|
||||||
echo '<div class="cross-sells"><h2>'.__('You may be interested in…', 'woothemes').'</h2>';
|
echo '<div class="cross-sells"><h2>'.__('You may be interested in…', 'woothemes').'</h2>';
|
||||||
$args = array(
|
$args = array(
|
||||||
|
|
Loading…
Reference in New Issue