Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
378 views
in Technique[技术] by (71.8m points)

php - Hide specific variation attributes displayed in WooCommerce cart items

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>
question from:https://stackoverflow.com/questions/65830099/hide-specific-variation-attributes-displayed-in-woocommerce-cart-items

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...