Comment afficher la liste déroulante des variantes de la liste déroulante sur la page de la boutique WooCommerce

Publié: 2021-07-19

WooCommerce Afficher les variantes de la liste déroulante Liste déroulante sur la page de la boutique Cherchez-vous un moyen d'afficher les variantes déroulantes sur la page de la boutique WooCommerce ? Dans cet article, nous partagerons une solution simple pour vous. Cependant, nous utiliserons un code personnalisé, ce qui signifie que vous devez avoir une certaine expérience de codage pour implémenter cette solution.

La plupart des magasins de commerce électronique proposent de nombreuses variantes de produits. Les clients doivent cliquer sur des pages de produits uniques pour voir les variations.

Si vous affichez les variations de produits sur la page de la boutique, cela rendra les variations plus captivantes pour les clients. De plus, cela vous permettra d'agrandir votre produit en quelques clics seulement.

WooCommerce Afficher les variantes de la liste déroulante Liste déroulante sur la page de la boutique

À la fin de ce guide, vous serez en mesure d'afficher des variantes déroulantes par programmation sur la page de la boutique. Cependant, il est important de garder à l'esprit que vous devez d'abord créer une variante de produit sur votre page de produit.

Avant de continuer, vous devez également installer ou créer un thème enfant. Cela garantira que vos modifications ne seront pas perdues lors d'une mise à jour. De plus, vous devez sauvegarder votre compte afin de pouvoir revenir à la version précédente en cas d'erreur.

Allons droit au but.

Étapes pour afficher la liste déroulante des variantes de la liste déroulante sur la page de la boutique

Voici les étapes simples que vous devez suivre :

  1. Connectez-vous à votre site WordPress et accédez au tableau de bord en tant qu'utilisateur administrateur.
  2. Dans le menu Dashboard, cliquez sur Appearance Menu > Theme Editor Menu . Lorsque la page de l'éditeur de thème est ouverte, recherchez le fichier de fonctions de thème pour ajouter la fonction permettant d' afficher les variantes déroulantes sur la page de la boutique.
  3. Ajoutez le code suivant au fichier php :
// Display variations dropdowns on shop page for variable products
 add_filter( 'woocommerce_loop_add_to_cart_link', 'njengah_display_variation_dropdown_on_shop_page' );
 function njengah_display_variation_dropdown_on_shop_page() {
	global $product;
	if( $product->is_type( 'variable' )) {
		$attribute_keys = array_keys( $product->get_attributes() );
	?>
		<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( $product->get_available_variations() ) ) ?>">
		<?php do_action( 'woocommerce_before_variations_form' ); ?>
				<?php if ( empty( $product->get_available_variations() ) && false !== $product->get_available_variations() ) : ?>
			<p class="stock out-of-stock"><?php _e( 'This product is currently out of stock and unavailable.', 'woocommerce' ); ?></p>
		<?php else : ?>
			<table class="variations" cellspacing="0">
				<tbody>
                  <?php foreach ( $product->get_variation_attributes() as $attribute_name => $options ) : ?>
					<tr>
							<td class="label"><label for="<?php echo sanitize_title( $attribute_name ); ?>"><?php echo wc_attribute_label( $attribute_name ); ?></label></td>
							<td 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( array( '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>' ) : '';
								?>
							</td>
						</tr>
					<?php endforeach;?>
				</tbody>
			</table>
				<?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>
				<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 } else {
		echo sprintf( '<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s">%s</a>',
			esc_url( $product->add_to_cart_url() ),
			esc_attr( isset( $quantity ) ? $quantity : 1 ),
			esc_attr( $product->id ),
			esc_attr( $product->get_sku() ),
			esc_attr( isset( $class ) ? $class : 'button' ),
			esc_html( $product->add_to_cart_text() )
		);
		}
	 }

  1. Voici le résultat : variantes

Emballer

À présent, vous devriez pouvoir afficher les variantes déroulantes sur la page de la boutique. Cependant, si vous n'êtes pas familier avec le codage, nous vous recommandons d'utiliser un plugin comme YITH WooCommerce Color and Label Variations (Premium Version) ou WooCommerce Variation Master (Premium Version).

Si vous avez besoin d'un travail personnalisé supplémentaire sur la page de la boutique, n'hésitez pas à nous contacter. Nous espérons que cet article vous a aidé à trouver une solution à votre problème.

Articles similaires