2011-12-09 20:16:34 +00:00
< ? php
/**
2015-11-03 13:53:50 +00:00
* Variable product add to cart
2012-08-14 18:05:45 +00:00
*
2015-11-03 13:31:20 +00:00
* This template can be overridden by copying it to yourtheme / woocommerce / single - product / add - to - cart / variable . php .
2015-10-01 14:07:20 +00:00
*
2016-02-12 11:28:41 +00:00
* HOWEVER , on occasion WooCommerce will need to update template files and you
* ( the theme developer ) will need to copy the new files to your theme to
* maintain compatibility . We try to do this as little as possible , but it does
* happen . When this occurs the version of the template file will be bumped and
* the readme will list any important changes .
2015-10-01 14:07:20 +00:00
*
2018-04-10 10:57:49 +00:00
* @ see https :// docs . woocommerce . com / document / template - structure /
2020-08-05 16:36:24 +00:00
* @ package WooCommerce\Templates
2019-02-20 12:00:47 +00:00
* @ version 3.5 . 5
2011-12-09 20:16:34 +00:00
*/
2018-02-20 11:12:29 +00:00
defined ( 'ABSPATH' ) || exit ;
2012-10-15 10:57:58 +00:00
2015-07-28 09:32:28 +00:00
global $product ;
2019-02-20 12:00:47 +00:00
$attribute_keys = array_keys ( $attributes );
$variations_json = wp_json_encode ( $available_variations );
$variations_attr = function_exists ( 'wc_esc_json' ) ? wc_esc_json ( $variations_json ) : _wp_specialchars ( $variations_json , ENT_QUOTES , 'UTF-8' , true );
2011-12-09 20:16:34 +00:00
2015-07-27 15:42:22 +00:00
do_action ( 'woocommerce_before_add_to_cart_form' ); ?>
2011-12-09 20:16:34 +00:00
2019-02-20 12:00:47 +00:00
< form class = " variations_form cart " action = " <?php echo esc_url( apply_filters( 'woocommerce_add_to_cart_form_action', $product->get_permalink () ) ); ?> " method = " post " enctype = 'multipart/form-data' data - product_id = " <?php echo absint( $product->get_id () ); ?> " data - product_variations = " <?php echo $variations_attr ; // WPCS: XSS ok. ?> " >
2015-04-15 13:26:46 +00:00
< ? php do_action ( 'woocommerce_before_variations_form' ); ?>
2015-04-15 13:39:14 +00:00
2015-07-28 09:32:28 +00:00
< ? php if ( empty ( $available_variations ) && false !== $available_variations ) : ?>
2019-05-10 02:01:11 +00:00
< p class = " stock out-of-stock " >< ? php echo esc_html ( apply_filters ( 'woocommerce_out_of_stock_message' , __ ( 'This product is currently out of stock and unavailable.' , 'woocommerce' ) ) ); ?> </p>
2015-07-28 09:32:28 +00:00
< ? php else : ?>
2013-09-25 08:36:04 +00:00
< table class = " variations " cellspacing = " 0 " >
< tbody >
2015-07-27 15:42:22 +00:00
< ? php foreach ( $attributes as $attribute_name => $options ) : ?>
2013-09-25 08:36:04 +00:00
< tr >
2018-05-29 13:31:50 +00:00
< td class = " label " >< label for = " <?php echo esc_attr( sanitize_title( $attribute_name ) ); ?> " >< ? php echo wc_attribute_label ( $attribute_name ); // WPCS: XSS ok. ?></label></td>
2015-07-27 15:42:22 +00:00
< td class = " value " >
2013-09-25 08:36:04 +00:00
< ? php
2019-12-20 18:25:23 +00:00
wc_dropdown_variation_attribute_options (
array (
'options' => $options ,
'attribute' => $attribute_name ,
'product' => $product ,
)
);
2018-04-10 10:57:49 +00:00
echo end ( $attribute_keys ) === $attribute_name ? wp_kses_post ( apply_filters ( 'woocommerce_reset_variations_link' , '<a class="reset_variations" href="#">' . esc_html__ ( 'Clear' , 'woocommerce' ) . '</a>' ) ) : '' ;
2013-09-25 08:36:04 +00:00
?>
2015-07-27 15:42:22 +00:00
</ td >
2013-09-25 08:36:04 +00:00
</ tr >
2018-04-10 10:57:49 +00:00
< ? php endforeach ; ?>
2013-09-25 08:36:04 +00:00
</ tbody >
</ table >
2015-09-22 16:22:12 +00:00
< div class = " single_variation_wrap " >
2015-07-28 09:32:28 +00:00
< ? php
/**
2018-04-16 18:17:39 +00:00
* Hook : woocommerce_before_single_variation .
2015-07-28 09:32:28 +00:00
*/
do_action ( 'woocommerce_before_single_variation' );
2013-10-16 09:41:20 +00:00
2015-07-28 09:32:28 +00:00
/**
2018-04-16 18:17:39 +00:00
* Hook : woocommerce_single_variation . Used to output the cart button and placeholder for variation data .
2018-04-10 10:57:49 +00:00
*
2015-07-28 09:32:28 +00:00
* @ since 2.4 . 0
* @ hooked woocommerce_single_variation - 10 Empty div for variation data .
* @ hooked woocommerce_single_variation_add_to_cart_button - 20 Qty and cart button .
*/
do_action ( 'woocommerce_single_variation' );
2013-10-16 09:41:20 +00:00
2015-07-28 09:32:28 +00:00
/**
2018-04-16 18:17:39 +00:00
* Hook : woocommerce_after_single_variation .
2015-07-28 09:32:28 +00:00
*/
do_action ( 'woocommerce_after_single_variation' );
?>
2011-12-09 20:16:34 +00:00
</ div >
2013-09-25 08:36:04 +00:00
< ? php endif ; ?>
2011-12-09 20:16:34 +00:00
2015-07-27 15:42:22 +00:00
< ? php do_action ( 'woocommerce_after_variations_form' ); ?>
2011-12-09 20:16:34 +00:00
</ form >
2016-01-26 23:35:24 +00:00
< ? php
do_action ( 'woocommerce_after_add_to_cart_form' );