隐藏 WooCommerce 购物车项目中显示的特定变体属性
Hide specific variation attributes displayed in WooCommerce cart items
我想在 Woocommerce 的购物车页面中隐藏特定变体,我能够隐藏所有变体名称,但我想保留 3 个需要显示的变体。以下代码显示了购物车页面中的所有变体,有人知道如何在此处应用过滤器吗?
<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>
例如我需要隐藏其中之一:
<dt class="variation-Kcalperdag">Kcal per dag:</dt>
<dd class="variation-Kcalperdag"><p>1641</p> </dd>
你并没有那么远!您只是在 foreach
循环中缺少一个简单的条件语句。 if ( $data['key'] !== 'Kcalperdag' ):
之类的东西应该可以解决问题。
我用伪造的 array
测试了它,它看起来很完美。
我们使用 $data['key']
作为条件来选择是否要显示我们的内容。
<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>
要在购物车(和结帐)中隐藏显示的特定产品变体属性,您可以使用专用过滤器挂钩 woocommerce_get_item_data
,如下所示:
add_filter( 'woocommerce_get_item_data', 'filter_cart_item_data', 10, 2 );
function filter_cart_item_data( $cart_data, $cart_item ) {
// Loop through cart item additional displayed data
foreach ( $cart_data as $key => $values ) {
// Target "Kcalperdag" attribute from its displayed label name
if ( $values['key'] === 'Kcal per dag' ) {
unset($cart_data[$key]); // Remove attribute from the array
}
}
return $cart_data;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
我想在 Woocommerce 的购物车页面中隐藏特定变体,我能够隐藏所有变体名称,但我想保留 3 个需要显示的变体。以下代码显示了购物车页面中的所有变体,有人知道如何在此处应用过滤器吗?
<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>
例如我需要隐藏其中之一:
<dt class="variation-Kcalperdag">Kcal per dag:</dt>
<dd class="variation-Kcalperdag"><p>1641</p> </dd>
你并没有那么远!您只是在 foreach
循环中缺少一个简单的条件语句。 if ( $data['key'] !== 'Kcalperdag' ):
之类的东西应该可以解决问题。
我用伪造的 array
测试了它,它看起来很完美。
我们使用 $data['key']
作为条件来选择是否要显示我们的内容。
<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>
要在购物车(和结帐)中隐藏显示的特定产品变体属性,您可以使用专用过滤器挂钩 woocommerce_get_item_data
,如下所示:
add_filter( 'woocommerce_get_item_data', 'filter_cart_item_data', 10, 2 );
function filter_cart_item_data( $cart_data, $cart_item ) {
// Loop through cart item additional displayed data
foreach ( $cart_data as $key => $values ) {
// Target "Kcalperdag" attribute from its displayed label name
if ( $values['key'] === 'Kcal per dag' ) {
unset($cart_data[$key]); // Remove attribute from the array
}
}
return $cart_data;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。