I want to hide specific variations from the cart page in Woocommerce, I was able to hide all the variation names but I want to keep 3 that need to be shown. The following code shows all the variations in the cart page, would someone know how to apply a filter in here?
<dl class="variation">
<?php foreach ( $item_data as $data ) : ?>
<dt class="<?php echo sanitize_html_class( 'variation-' . $data['key'] ); ?>"><?php echo wp_kses_post( $data['key'] ); ?>: </dt>
<dd class="<?php echo sanitize_html_class( 'variation-' . $data['key'] ); ?>"><?php echo wp_kses_post( wpautop( $data['display'] ) ); ?></dd>
<?php endforeach; ?>
</dl>
For example I need to hide one of these:
<dt class="variation-Kcalperdag">Kcal per dag:</dt>
<dd class="variation-Kcalperdag"><p>1641</p> </dd>
You were not that far! You were just missing a simple conditional statement inside that foreach
loop. Something like if ( $data['key'] !== 'Kcalperdag' ):
should do the trick.
I've tested it with a bogus array
and it seems perfect.
We use the $data['key']
as a condition to chose if we want to display or not our content.
<dl class="variation">
<?php
foreach ( $item_data as $data ):
if ( $data['key'] !== 'Kcalperdag' ): ?>
<dt class="<?php echo sanitize_html_class( 'variation-' . $data['key'] ); ?>">
<?php echo wp_kses_post( $data['key'] ); ?>:
</dt>
<dd class="<?php echo sanitize_html_class( 'variation-' . $data['key'] ); ?>">
<?php echo wp_kses_post( wpautop( $data['display'] ) ); ?>
</dd>
<?php endif;
endforeach; ?>
</dl>