php-WooCommerce 仅在某个 foreach 循环内更改产品价格
我正在开发一个附加产品部分,以显示在我的产品“立即购买”按钮的主要部分下方。
我使用 ACF 将产品相互链接,这样我就可以查询并运行 foreach 语句并在普通产品下方显示附加产品。
在 foreach 循环中,我确实获得了 ID,然后使用 ?addto-cart URL 显示附加产品缩略图、标题和添加到购物车按钮,并将产品 ID 添加到它的末尾。
<a href="<?php echo esc_url( $permalink ); ?>?add-to-cart=<?php echo $tc_product_id;?>
我希望能够在该 foreach 循环中更新附加产品的价格,以便在产品页面上作为附加产品购买时以更便宜的折扣提供它,但不会在任何地方更新它的价格。自己的产品页面。
我知道有诸如 woocommerce_product_get_price 之类的功能
add_filter('woocommerce_product_get_price', 'assign_tier_pricing', 90, 2 );
add_filter('woocommerce_product_get_regular_price', 'assign_tier_pricing', 90, 2 );
function assign_tier_pricing( $price, $product ) {
if ( is_user_logged_in() && $product->is_type('simple') ) {
$price *= 0.5; // Set all prices for simple products to 50% off.
}
return $price;
}
是否可以在 foreach 循环中执行类似此功能的操作,在该循环中调整产品的价格?