我的网站上有产品列表,每个产品都有自己的标签。我正在尝试在结帐页面上显示此标签。我写了一个代码,但它显示了我所有产品的所有标签,而不仅仅是购物车中的标签。这是我的代码:
global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) {
$_product = wc_get_product( $values['data']->get_id());
echo "<b>".$_product->get_title().'</b> <br> Quantity: '.$values['quantity'].'<br>';
$price = wp_get_post_tags($values['product_id'] , '_tag_ids', true);
echo " Price: ".$price."<br>";
$terms = get_terms( 'product_tag' );
$term_array = array();
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
foreach ( $terms as $term ) {
$term_array[] = $term->name;
}
}
print_r($values['product_id']);
print_r($term_array);
if(in_array('black',$term_array)) {
echo 'hello exists';
} else {
echo 'not exists';
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以它显示正确=“你好存在”但它显示是因为它从所有产品中提取所有标签。如何通过产品 ID 获取标签。我将我的产品 ID 存储在$values['product_id']
我已经尝试过get_terms($values['product_id'], 'product_tag' );但它没有用!
你会想要使用get_the_terms,而不是get_terms
$terms = get_the_terms( get_the_ID(), 'product_tag' );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10158 次 |
| 最近记录: |