2012-11-27 16:22:47 +00:00
< ? php
2015-01-14 12:17:09 +00:00
/**
* Outputs a variation
*
* @ var int $variation_id
* @ var WP_POST $variation
* @ var array $variation_data array of variation data
*/
2014-09-20 20:05:06 +00:00
if ( ! defined ( 'ABSPATH' ) ) {
2015-01-14 12:17:09 +00:00
exit ;
2014-09-20 20:05:06 +00:00
}
2015-01-14 12:17:09 +00:00
extract ( $variation_data );
2012-10-15 10:32:24 +00:00
?>
2012-10-08 08:59:02 +00:00
< div class = " woocommerce_variation wc-metabox closed " >
< h3 >
2012-10-15 19:25:48 +00:00
< button type = " button " class = " remove_variation button " rel = " <?php echo esc_attr( $variation_id ); ?> " >< ? php _e ( 'Remove' , 'woocommerce' ); ?> </button>
< div class = " handlediv " title = " <?php _e( 'Click to toggle', 'woocommerce' ); ?> " ></ div >
< strong > #<?php echo esc_html( $variation_id ); ?> — </strong>
2012-10-08 08:59:02 +00:00
< ? php
foreach ( $parent_data [ 'attributes' ] as $attribute ) {
// Only deal with attributes that are variations
2013-12-11 00:36:56 +00:00
if ( ! $attribute [ 'is_variation' ] ) {
2012-10-08 08:59:02 +00:00
continue ;
2013-12-11 00:36:56 +00:00
}
2012-10-08 08:59:02 +00:00
// Get current value for variation (if set)
$variation_selected_value = isset ( $variation_data [ 'attribute_' . sanitize_title ( $attribute [ 'name' ] ) ][ 0 ] ) ? $variation_data [ 'attribute_' . sanitize_title ( $attribute [ 'name' ] ) ][ 0 ] : '' ;
// Name will be something like attribute_pa_color
2013-09-12 13:41:02 +00:00
echo '<select name="attribute_' . sanitize_title ( $attribute [ 'name' ] ) . '[' . $loop . ']"><option value="">' . __ ( 'Any' , 'woocommerce' ) . ' ' . esc_html ( wc_attribute_label ( $attribute [ 'name' ] ) ) . '…</option>' ;
2012-10-08 08:59:02 +00:00
// Get terms for attribute taxonomy or value if its a custom attribute
if ( $attribute [ 'is_taxonomy' ] ) {
2013-03-07 19:34:29 +00:00
2012-10-08 08:59:02 +00:00
$post_terms = wp_get_post_terms ( $parent_data [ 'id' ], $attribute [ 'name' ] );
2013-03-07 19:34:29 +00:00
2012-10-08 08:59:02 +00:00
foreach ( $post_terms as $term ) {
2012-10-15 19:25:48 +00:00
echo '<option ' . selected ( $variation_selected_value , $term -> slug , false ) . ' value="' . esc_attr ( $term -> slug ) . '">' . apply_filters ( 'woocommerce_variation_option_name' , esc_html ( $term -> name ) ) . '</option>' ;
2012-10-08 08:59:02 +00:00
}
2013-03-07 19:34:29 +00:00
2012-10-08 08:59:02 +00:00
} else {
2013-03-07 19:34:29 +00:00
2013-10-24 18:36:22 +00:00
$options = array_map ( 'trim' , explode ( WC_DELIMITER , $attribute [ 'value' ] ) );
2013-03-07 19:34:29 +00:00
2012-10-08 08:59:02 +00:00
foreach ( $options as $option ) {
2013-03-07 19:34:29 +00:00
echo '<option ' . selected ( sanitize_title ( $variation_selected_value ), sanitize_title ( $option ), false ) . ' value="' . esc_attr ( sanitize_title ( $option ) ) . '">' . esc_html ( apply_filters ( 'woocommerce_variation_option_name' , $option ) ) . '</option>' ;
2012-10-08 08:59:02 +00:00
}
2013-03-07 19:34:29 +00:00
2012-10-08 08:59:02 +00:00
}
echo '</select>' ;
}
?>
< input type = " hidden " name = " variable_post_id[<?php echo $loop ; ?>] " value = " <?php echo esc_attr( $variation_id ); ?> " />
< input type = " hidden " class = " variation_menu_order " name = " variation_menu_order[<?php echo $loop ; ?>] " value = " <?php echo $loop ; ?> " />
</ h3 >
2014-10-17 11:17:21 +00:00
< div class = " woocommerce_variable_attributes wc-metabox-content " >
< div class = " data " >
2014-10-17 13:42:15 +00:00
< p class = " form-row form-row-first upload_image " >
2015-01-14 12:17:09 +00:00
< a href = " # " class = " upload_image_button <?php if ( $_thumbnail_id > 0 ) echo 'remove'; ?> " rel = " <?php echo esc_attr( $variation_id ); ?> " >< img src = " <?php if ( ! empty( $image ) ) echo esc_attr( $image ); else echo esc_attr( wc_placeholder_img_src() ); ?> " />< input type = " hidden " name = " upload_image_id[<?php echo $loop ; ?>] " class = " upload_image_id " value = " <?php echo esc_attr( $_thumbnail_id ); ?> " /></ a >
2014-10-17 11:17:21 +00:00
</ p >
< ? php if ( wc_product_sku_enabled () ) : ?>
< p class = " sku form-row form-row-last " >
< label >< ? php _e ( 'SKU' , 'woocommerce' ); ?> : <a class="tips" data-tip="<?php _e( 'Enter a SKU for this variation or leave blank to use the parent product SKU.', 'woocommerce' ); ?>" href="#">[?]</a></label>
< input type = " text " size = " 5 " name = " variable_sku[<?php echo $loop ; ?>] " value = " <?php if ( isset( $_sku ) ) echo esc_attr( $_sku ); ?> " placeholder = " <?php echo esc_attr( $parent_data['sku'] ); ?> " />
</ p >
< ? php else : ?>
< input type = " hidden " name = " variable_sku[<?php echo $loop ; ?>] " value = " <?php if ( isset( $_sku ) ) echo esc_attr( $_sku ); ?> " />
< ? php endif ; ?>
< p class = " form-row form-row-full options " >
2015-01-14 12:17:09 +00:00
< label >< input type = " checkbox " class = " checkbox " name = " variable_enabled[<?php echo $loop ; ?>] " < ? php checked ( $variation -> post_status , 'publish' ); ?> /> <?php _e( 'Enabled', 'woocommerce' ); ?></label>
2014-10-17 11:17:21 +00:00
< label >< input type = " checkbox " class = " checkbox variable_is_downloadable " name = " variable_is_downloadable[<?php echo $loop ; ?>] " < ? php checked ( isset ( $_downloadable ) ? $_downloadable : '' , 'yes' ); ?> /> <?php _e( 'Downloadable', 'woocommerce' ); ?> <a class="tips" data-tip="<?php _e( 'Enable this option if access is given to a downloadable file upon purchase of a product', 'woocommerce' ); ?>" href="#">[?]</a></label>
< label >< input type = " checkbox " class = " checkbox variable_is_virtual " name = " variable_is_virtual[<?php echo $loop ; ?>] " < ? php checked ( isset ( $_virtual ) ? $_virtual : '' , 'yes' ); ?> /> <?php _e( 'Virtual', 'woocommerce' ); ?> <a class="tips" data-tip="<?php _e( 'Enable this option if a product is not shipped or there is no shipping cost', 'woocommerce' ); ?>" href="#">[?]</a></label>
< ? php if ( get_option ( 'woocommerce_manage_stock' ) == 'yes' ) : ?>
< label >< input type = " checkbox " class = " checkbox variable_manage_stock " name = " variable_manage_stock[<?php echo $loop ; ?>] " < ? php checked ( isset ( $_manage_stock ) ? $_manage_stock : '' , 'yes' ); ?> /> <?php _e( 'Manage stock?', 'woocommerce' ); ?> <a class="tips" data-tip="<?php _e( 'Enable this option to enable stock management at variation level', 'woocommerce' ); ?>" href="#">[?]</a></label>
< ? php endif ; ?>
< ? php do_action ( 'woocommerce_variation_options' , $loop , $variation_data , $variation ); ?>
</ p >
2014-12-23 16:12:12 +00:00
< div class = " variable_pricing " >
2014-10-17 11:17:21 +00:00
< p class = " form-row form-row-first " >
< label >< ? php echo __ ( 'Regular Price:' , 'woocommerce' ) . ' (' . get_woocommerce_currency_symbol () . ')' ; ?> </label>
< input type = " text " size = " 5 " name = " variable_regular_price[<?php echo $loop ; ?>] " value = " <?php if ( isset( $_regular_price ) ) echo esc_attr( $_regular_price ); ?> " class = " wc_input_price " placeholder = " <?php _e( 'Variation price (required)', 'woocommerce' ); ?> " />
</ p >
< p class = " form-row form-row-last " >
< label >< ? php echo __ ( 'Sale Price:' , 'woocommerce' ) . ' (' . get_woocommerce_currency_symbol () . ')' ; ?> <a href="#" class="sale_schedule"><?php _e( 'Schedule', 'woocommerce' ); ?></a><a href="#" class="cancel_sale_schedule" style="display:none"><?php _e( 'Cancel schedule', 'woocommerce' ); ?></a></label>
< input type = " text " size = " 5 " name = " variable_sale_price[<?php echo $loop ; ?>] " value = " <?php if ( isset( $_sale_price ) ) echo esc_attr( $_sale_price ); ?> " class = " wc_input_price " />
</ p >
2014-12-23 16:12:12 +00:00
< div class = " sale_price_dates_fields " style = " display: none " >
< p class = " form-row form-row-first " >
< label >< ? php _e ( 'Sale start date:' , 'woocommerce' ); ?> </label>
< input type = " text " class = " sale_price_dates_from " name = " variable_sale_price_dates_from[<?php echo $loop ; ?>] " value = " <?php echo ! empty( $_sale_price_dates_from ) ? date_i18n( 'Y-m-d', $_sale_price_dates_from ) : ''; ?> " placeholder = " <?php echo _x( 'From…', 'placeholder', 'woocommerce' ) ?> YYYY-MM-DD " maxlength = " 10 " pattern = " [0-9] { 4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01]) " />
</ p >
< p class = " form-row form-row-last " >
< label >< ? php _e ( 'Sale end date:' , 'woocommerce' ); ?> </label>
< input type = " text " name = " variable_sale_price_dates_to[<?php echo $loop ; ?>] " value = " <?php echo ! empty( $_sale_price_dates_to ) ? date_i18n( 'Y-m-d', $_sale_price_dates_to ) : ''; ?> " placeholder = " <?php echo _x('To…', 'placeholder', 'woocommerce') ?> YYYY-MM-DD " maxlength = " 10 " pattern = " [0-9] { 4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01]) " />
</ p >
</ div >
2014-10-17 11:17:21 +00:00
</ div >
2014-12-23 16:12:12 +00:00
< ? php if ( 'yes' == get_option ( 'woocommerce_manage_stock' ) ) : ?>
2015-01-02 17:07:31 +00:00
< div class = " show_if_variation_manage_stock " style = " display: none; " >
2014-10-17 11:17:21 +00:00
< p class = " form-row form-row-first " >
< label >< ? php _e ( 'Stock Qty:' , 'woocommerce' ); ?> <a class="tips" data-tip="<?php _e( 'Enter a quantity to enable stock management at variation level, or leave blank to use the parent product\'s options.', 'woocommerce' ); ?>" href="#">[?]</a></label>
< input type = " number " size = " 5 " name = " variable_stock[<?php echo $loop ; ?>] " value = " <?php if ( isset( $_stock ) ) echo esc_attr( $_stock ); ?> " step = " any " />
</ p >
< p class = " form-row form-row-last " >
< label >< ? php _e ( 'Allow Backorders?' , 'woocommerce' ); ?> </label>
< select name = " variable_backorders[<?php echo $loop ; ?>] " >
< ? php
foreach ( $parent_data [ 'backorder_options' ] as $key => $value ) {
echo '<option value="' . esc_attr ( $key ) . '" ' . selected ( $key === $_backorders , true , false ) . '>' . esc_html ( $value ) . '</option>' ;
}
?>
</ select >
</ p >
</ div >
< div class = " " >
< p class = " form-row form-row-full " >
< label >< ? php _e ( 'Stock status' , 'woocommerce' ); ?> <a class="tips" data-tip="<?php esc_attr_e( 'Controls whether or not the product is listed as "in stock" or "out of stock" on the frontend.', 'woocommerce' ); ?>" href="#">[?]</a></label>
< select name = " variable_stock_status[<?php echo $loop ; ?>] " >
< ? php
foreach ( $parent_data [ 'stock_status_options' ] as $key => $value ) {
echo '<option value="' . esc_attr ( $key === $_stock_status ? '' : $key ) . '" ' . selected ( $key === $_stock_status , true , false ) . '>' . esc_html ( $value ) . '</option>' ;
}
?>
</ select >
</ p >
</ div >
< ? php endif ; ?>
< ? php if ( wc_product_weight_enabled () || wc_product_dimensions_enabled () ) : ?>
< div >
< ? php if ( wc_product_weight_enabled () ) : ?>
< p class = " form-row hide_if_variation_virtual form-row-first " >
< label >< ? php echo __ ( 'Weight' , 'woocommerce' ) . ' (' . esc_html ( get_option ( 'woocommerce_weight_unit' ) ) . '):' ; ?> <a class="tips" data-tip="<?php _e( 'Enter a weight for this variation or leave blank to use the parent product weight.', 'woocommerce' ); ?>" href="#">[?]</a></label>
< input type = " text " size = " 5 " name = " variable_weight[<?php echo $loop ; ?>] " value = " <?php if ( isset( $_weight ) ) echo esc_attr( $_weight ); ?> " placeholder = " <?php echo esc_attr( $parent_data['weight'] ); ?> " class = " wc_input_decimal " />
</ p >
2012-10-08 08:59:02 +00:00
< ? php else : ?>
2014-10-17 11:17:21 +00:00
< p >& nbsp ; </ p >
2012-10-08 08:59:02 +00:00
< ? php endif ; ?>
2014-10-17 11:17:21 +00:00
< ? php if ( wc_product_dimensions_enabled () ) : ?>
< p class = " form-row dimensions_field hide_if_variation_virtual form-row-last " >
< label for = " product_length " >< ? php echo __ ( 'Dimensions (L×W×H)' , 'woocommerce' ) . ' (' . esc_html ( get_option ( 'woocommerce_dimension_unit' ) ) . '):' ; ?> </label>
< input id = " product_length " class = " input-text wc_input_decimal " size = " 6 " type = " text " name = " variable_length[<?php echo $loop ; ?>] " value = " <?php if ( isset( $_length ) ) echo esc_attr( $_length ); ?> " placeholder = " <?php echo esc_attr( $parent_data['length'] ); ?> " />
< input class = " input-text wc_input_decimal " size = " 6 " type = " text " name = " variable_width[<?php echo $loop ; ?>] " value = " <?php if ( isset( $_width ) ) echo esc_attr( $_width ); ?> " placeholder = " <?php echo esc_attr( $parent_data['width'] ); ?> " />
< input class = " input-text wc_input_decimal last " size = " 6 " type = " text " name = " variable_height[<?php echo $loop ; ?>] " value = " <?php if ( isset( $_height ) ) echo esc_attr( $_height ); ?> " placeholder = " <?php echo esc_attr( $parent_data['height'] ); ?> " />
</ p >
< ? php else : ?>
< p >& nbsp ; </ p >
2014-06-19 15:47:04 +00:00
< ? php endif ; ?>
2014-10-17 11:17:21 +00:00
</ div >
< ? php endif ; ?>
< div >
< p class = " form-row hide_if_variation_virtual form-row-full " >< label >< ? php _e ( 'Shipping class:' , 'woocommerce' ); ?> </label> <?php
$args = array (
'taxonomy' => 'product_shipping_class' ,
'hide_empty' => 0 ,
'show_option_none' => __ ( 'Same as parent' , 'woocommerce' ),
'name' => 'variable_shipping_class[' . $loop . ']' ,
'id' => '' ,
'selected' => isset ( $shipping_class ) ? esc_attr ( $shipping_class ) : '' ,
'echo' => 0
);
echo wp_dropdown_categories ( $args );
?> </p>
< p class = " form-row form-row-full " >
2014-11-18 16:45:29 +00:00
< ? php if ( wc_tax_enabled () ) : ?>
2014-10-17 11:17:21 +00:00
< label >< ? php _e ( 'Tax class:' , 'woocommerce' ); ?> </label>
< select name = " variable_tax_class[<?php echo $loop ; ?>] " >
< option value = " parent " < ? php selected ( is_null ( $_tax_class ), true ); ?> ><?php _e( 'Same as parent', 'woocommerce' ); ?></option>
< ? php
foreach ( $parent_data [ 'tax_class_options' ] as $key => $value )
echo '<option value="' . esc_attr ( $key ) . '" ' . selected ( $key === $_tax_class , true , false ) . '>' . esc_html ( $value ) . '</option>' ;
?> </select>
< ? php endif ; ?>
</ p >
</ div >
2015-01-02 17:07:31 +00:00
< div class = " show_if_variation_downloadable " style = " display: none; " >
2014-10-17 11:17:21 +00:00
< div class = " form-row form-row-full downloadable_files " >
< label >< ? php _e ( 'Downloadable Files' , 'woocommerce' ); ?> :</label>
< table class = " widefat " >
< thead >
< div >
< th >< ? php _e ( 'Name' , 'woocommerce' ); ?> <span class="tips" data-tip="<?php _e( 'This is the name of the download shown to the customer.', 'woocommerce' ); ?>">[?]</span></th>
< th colspan = " 2 " >< ? php _e ( 'File URL' , 'woocommerce' ); ?> <span class="tips" data-tip="<?php _e( 'This is the URL or absolute path to the file which customers will get access to.', 'woocommerce' ); ?>">[?]</span></th>
< th >& nbsp ; </ th >
</ div >
</ thead >
< tbody >
< ? php
if ( $_downloadable_files ) {
foreach ( $_downloadable_files as $key => $file ) {
if ( ! is_array ( $file ) ) {
$file = array (
'file' => $file ,
'name' => ''
);
}
include ( 'html-product-variation-download.php' );
}
}
?>
</ tbody >
< tfoot >
< div >
< th colspan = " 4 " >
< a href = " # " class = " button insert " data - row = " <?php
$file = array (
'file' => '' ,
'name' => ''
);
ob_start ();
include ( 'html-product-variation-download.php' );
echo esc_attr ( ob_get_clean () );
?> "><?php _e( 'Add File', 'woocommerce' ); ?></a>
</ th >
</ div >
</ tfoot >
</ table >
</ div >
</ div >
2015-01-02 17:07:31 +00:00
< div class = " show_if_variation_downloadable " style = " display: none; " >
2014-10-17 11:17:21 +00:00
< p class = " form-row form-row-first " >
< label >< ? php _e ( 'Download Limit:' , 'woocommerce' ); ?> <a class="tips" data-tip="<?php _e( 'Leave blank for unlimited re-downloads.', 'woocommerce' ); ?>" href="#">[?]</a></label>
< input type = " number " size = " 5 " name = " variable_download_limit[<?php echo $loop ; ?>] " value = " <?php if ( isset( $_download_limit ) ) echo esc_attr( $_download_limit ); ?> " placeholder = " <?php _e( 'Unlimited', 'woocommerce' ); ?> " step = " 1 " min = " 0 " />
</ p >
< p class = " form-row form-row-last " >
< label >< ? php _e ( 'Download Expiry:' , 'woocommerce' ); ?> <a class="tips" data-tip="<?php _e( 'Enter the number of days before a download link expires, or leave blank.', 'woocommerce' ); ?>" href="#">[?]</a></label>
< input type = " number " size = " 5 " name = " variable_download_expiry[<?php echo $loop ; ?>] " value = " <?php if ( isset( $_download_expiry ) ) echo esc_attr( $_download_expiry ); ?> " placeholder = " <?php _e( 'Unlimited', 'woocommerce' ); ?> " step = " 1 " min = " 0 " />
</ p >
</ div >
< ? php do_action ( 'woocommerce_product_after_variable_attributes' , $loop , $variation_data , $variation ); ?>
</ div >
</ div >
2012-10-08 08:59:02 +00:00
</ div >