SkyShot
@SkyShot
Фрилансер, интроверт, дизайнер, web-разработчик.

Вариативный товар?

Ребят, вот такая вот проблема. Вывожу в карточке товара (вариативный) параметр ['dimensions'] из массива $available_variations, но вот проблема, Как мне присвоить каждому selected свой параметр из того массива? Прогонять через foreach, но что-то не так делаю и не могу понять как, так как у меня выводятся все значения.
<? foreach ($available_variations as $available_variations) : ?>
	<p><b>Внешний размер: <?echo $available_variations['dimensions'];?></b></p>
<? endforeach?>


Вообще вот код с файла:
<?php
/**
 * Variable product add to cart
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/single-product/add-to-cart/variable.php.
 *
 * 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.
 *
 * @see 	https://docs.woocommerce.com/document/template-structure/
 * @author  WooThemes
 * @package WooCommerce/Templates
 * @version 2.5.0
 */
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

global $product;

$attribute_keys = array_keys( $attributes );

do_action( 'woocommerce_before_add_to_cart_form' ); ?>

<form class="variations_form cart" method="post" enctype='multipart/form-data' data-product_id="<?php echo absint( $product->id ); ?>" data-product_variations="<?php echo htmlspecialchars( json_encode( $available_variations ) ) ?>">
	<?php do_action( 'woocommerce_before_variations_form' ); ?>

	<?php if ( empty( $available_variations ) && false !== $available_variations ) : ?>
		<p class="stock out-of-stock"><?php _e( 'This product is currently out of stock and unavailable.', 'woocommerce' ); ?></p>
	<?php else : ?>
		<div class="variations product__row">
				<?php foreach ( $attributes as $attribute_name => $options ) : ?>
					<div class="product__size">
						<div class="label product__param">
							<label for="<?php echo sanitize_title( $attribute_name ); ?>">
								<?php echo wc_attribute_label( $attribute_name ); ?>
							</label>
						</div>
						<div class="value">
							<?php
								$selected = isset( $_REQUEST[ 'attribute_' . sanitize_title( $attribute_name ) ] ) ? wc_clean( urldecode( $_REQUEST[ 'attribute_' . sanitize_title( $attribute_name ) ] ) ) : $product->get_variation_default_attribute( $attribute_name );
								wc_dropdown_variation_attribute_options([
											'class' => 'selectpicker',
											'options' => $options,
											'attribute' => $attribute_name,
											'product' => $product,
											'selected' => $selected
										]);

								echo end( $attribute_keys ) === $attribute_name ? apply_filters( 'woocommerce_reset_variations_link', '<a class="reset_variations" href="#">' . __( 'Clear', 'woocommerce' ) . '</a>' ) : '';
							?>
						</div>
					</div>
				<?php endforeach;?>
					<? foreach ($available_variations as $available_variations) : ?>
						<p><b>Внешний размер: <?echo $available_variations['dimensions'];?></b></p>
					<? endforeach?>
		</div>
		<?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>
		<a href="#wow-modal-id-1"><button class="button bright product__button">Сделать заявку</button></a>
		<?php echo do_shortcode("[Wow-Modal-Windows id=1]"); ?>
		<div class="single_variation_wrap">
			<?php
				/**
				 * woocommerce_before_single_variation Hook.
				 */
				do_action( 'woocommerce_before_single_variation' );

				/**
				 * woocommerce_single_variation hook. Used to output the cart button and placeholder for variation data.
				 * @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' );

				/**
				 * woocommerce_after_single_variation Hook.
				 */
				do_action( 'woocommerce_after_single_variation' );
			?>
		</div>

		<?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>
	<?php endif; ?>

	<?php do_action( 'woocommerce_after_variations_form' ); ?>
</form>
<?php
do_action( 'woocommerce_after_add_to_cart_form' );
  • Вопрос задан
  • 943 просмотра
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Прогонять через foreach, но что-то не так делаю и не могу понять как, так как у меня выводятся все значения.
Конечно, нет!
jquery:
.index() //id selected item (0 - first)
.selectIndex(-1); //deselect
.selectIndex(0); //select first item
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы