如何在woocommerce商店页面中显示基于12个数量的产品价格。
function sv_change_product_html( $price_html, $product ) {
$unit_price = get_post_meta( $product->id, 'unit_price', true );
if ( ! empty( $unit_price ) ) {
$price_html = '<span class="amount">' . wc_price( $unit_price ) . ' inc GST per bottle</span>';
}
return $price_html;
}
add_filter( 'woocommerce_get_price_html', 'sv_change_product_html', 10, 2 );
function sv_change_product_price_cart( $price, $cart_item, $cart_item_key ) {
$unit_price = get_post_meta( $cart_item['product_id'], 'unit_price', true );
if ( ! empty( $unit_price ) ) {
$price = wc_price( $unit_price ) . ' inc GST per bottle';
}
return $price;
}
add_filter( 'woocommerce_cart_item_price', 'sv_change_product_price_cart', 10, 3 );
答案 0 :(得分:1)
自WooCommerce 3以来,您的代码有点过时了(您的问题还不清楚)……请尝试以下操作:
add_filter( 'woocommerce_get_price_html', 'displayed_product_unit_price', 10, 2 );
function displayed_product_unit_price( $price_html, $product ) {
if ( $unit_price = $product->get_meta( 'unit_price' ) ) {
$price_html = '<span class="amount">' . wc_price( floatval( $unit_price ) ) . ' ' . __( "inc GST per bottle", "woocommerce") . '</span><br>';
$price_html .= '<span class="amount">' . wc_price( floatval( $unit_price ) * 12 ) . ' ' . __( "inc GST per 12-bottles", "woocommerce") . '</span>';
}
return $price_html;
}
add_filter( 'woocommerce_cart_item_price', 'displayed_cart_item_unit_price', 10, 3 );
function displayed_cart_item_unit_price( $price, $cart_item, $cart_item_key ) {
if ( $unit_price = $cart_item['data']->get_meta( 'unit_price' ) ) {
$price = wc_price( floatval( $unit_price ) ) . ' ' . __( "inc GST per bottle", "woocommerce");
}
return $price;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。
现在,如果WooCommerce产品的有效价格(默认情况下)是基于12瓶,则应替换以下行(在第一个功能中)
:$price_html .= '<span class="amount">' . wc_price( floatval( $unit_price ) * 12 ) . ' ' . __( "inc GST per 12-bottles", "woocommerce") . '</span>';
通过此行:
$price_html .= '<span class="amount">' . wc_price( wc_get_price_to_display( $product ) ) . ' ' . __( "inc GST per 12-bottles", "woocommerce") . '</span>';