我已经在Woocommerce中为我所有的产品设置了价格后缀(在我的例子中是“每盒”)。这对可变产品以及没有问题的单一产品都有效。
现在,我想将此前缀更改为“每托盘”,以表示产品的某些产品变体。我读了很多书,也尝试了很多方法,但我还没有找到适用于产品的单个变体的解决方案。有人能帮助我吗?
下面是我尝试的代码。没有错误信息,但它不会改变特定ID的价格。
add_filter('woocommerce_available_variation', 'variation_price_custom_suffix', 10, 3 );
function variation_price_custom_suffix( $variation_data, $product, $variation ) {
$args = array(
'post_parent' => get_the_ID() // get parent post-ID
);
$variations = get_posts( $args );
foreach ( $variations as $variation ) {
// get variation ID
$variation_ID = $variation->ID;
// get variation price
$variation_price = $product_variation->get_price_html();
get_post_meta( $variation_ID , '_text_field_date_expire', true );
}
if($variation_ID == 732) {
$variation_data['price_html'] .= "Text after price";
}
return $variation_data;
}
在此致以诚挚的感谢和问候
1条答案
按热度按时间41zrol4v1#
你把事情弄得比应该的要复杂得多,而且有一些错误:
$product
函数变元(变量)。get_post_meta( $variation_ID , '_text_field_date_expire', true );
$variation
变量是当前变量数据的数组(见此处)$variation['variation_id']
是产品变化ID$product->get_id()
"有两种可能“
1)针对特定可变产品的所有产品变化:
2)定位唯一的产品变体ID:
代码在你的活动子主题(或活动主题)的function.php文件中。现在应该更好地工作了,但是你需要完成它来使用你的自定义字段。
相关:在Woocommerce中添加自定义文本到变化价格