Поддержка WooCommerce Вариации в каталоге товаров

  • Добрый день. У меня вопрос по выводу вариативных товаров в каталоге товаров. Пробую вывести способом таким же как и в карточке товара. Вариации выводятся, но при изменении вариации пользователем, цена не меняется, и и кнопка купить, переводит в карточку товара, а не добавляет товар в корзину.
    ВАриации добавляю таки м образом:

    add_filter( 'woocommerce_loop_add_to_cart_link', 'woo_display_variation_dropdown_on_shop_page' );
     function woo_display_variation_dropdown_on_shop_page() {
     	global $product;
    	$attributes = $product->get_attributes();
    	
    	foreach ( $attributes as $attribute_name => $options ) {
    		$attributes1['AFc'] = $options['options'];
    	}
    	
    	$attributes = $attributes1;
    $attribute_keys = array_keys( $attributes );
    
    do_action( 'woocommerce_before_add_to_cart_form' ); ?>
    
    <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 htmlspecialchars( wp_json_encode( $available_variations ) ); // WPCS: XSS ok. ?>">
    	<?php do_action( 'woocommerce_before_variations_form' ); ?>
    		<? $variable_product = new WC_Product_Variable($product);
                $variations = $variable_product->get_available_variations();
    			$available_variations = $variations;
    			
    			?>
    	<?php if ( empty( $available_variations ) && false !== $available_variations ) : ?>
    		<p class="stock out-of-stock"><?php esc_html_e( 'This product is currently out of stock and unavailable.', 'woocommerce' ); ?></p>
    	<?php else : ?>
    		<table class="variations" cellspacing="0">
    			<tbody>
    				<?php foreach ( $attributes as $attribute_name => $options ) : ?>
    					<tr>
    						<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>
    						<td class="value">
    							<?php
    								wc_dropdown_variation_attribute_options( array(
    									'options'   => $options,
    									'attribute' => $attribute_name,
    									'product'   => $product,
    								) );
    								//echo end( $attribute_keys ) === $attribute_name ? wp_kses_post( apply_filters( 'woocommerce_reset_variations_link', '<a href="#">' . esc_html__( 'Clear', 'woocommerce' ) . '</a>' ) ) : '';
    							?>
    						</td>
    					</tr>
    				<?php endforeach; ?>
    			</tbody>
    		</table>
    
    		<div class="single_variation_wrap">
    			<?php
    
    				do_action( 'woocommerce_before_single_variation' );
    
    				do_action( 'woocommerce_single_variation' );
    
    				do_action( 'woocommerce_after_single_variation' );
    			?>
    		</div>
    	<?php endif; ?>
    
    	<?php do_action( 'woocommerce_after_variations_form' ); ?>
    </form> <?
    	 
    }
    • Тема изменена 2 года, 11 месяцев назад пользователем SeVlad. Причина: Оформляйте, пож, код как следует
Просмотр 6 ответов — с 1 по 6 (всего 6)
Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Вариации в каталоге товаров» закрыта для новых ответов.