产品价格后缀,并根据WooCommerce中的重量计算价格

时间:2019-04-09 20:57:21

标签: php wordpress woocommerce product price

我正在使用Custom product price suffix on based on product categories in Woocommerce回答线程,该线程允许通过以下方式调整价格显示的前缀:

    $price .= ' ' . __('/ $7.50 per serving');

但是我实际上想要的是使$ price输出等于项目的价格除以项目的重量。我该怎么做?

这是我的实际代码稍作更改的(使用this thread中的has_product_categories()

add_filter( 'woocommerce_get_price_html', 'conditional_price_suffix', 10, 2 );
function conditional_price_suffix( $price, $product ) {
    // Handling product variations
    $product_id = $product->is_type('variation') ? $product->get_parent_id() : $product->get_id();

    // HERE define your product categories (can be IDs, slugs or names)
    $product_categories = array('monthly-menus');

    if( has_product_categories( $product_categories, $product_id ) )
        $price .= ' ' . __('/ $7.50 per serving');

    return $price;
}

我尝试了一堆在前端输出NAN的东西。不要以为我做对了!

1 个答案:

答案 0 :(得分:1)

以下内容将为您的前缀添加每份已计算的价格:

add_filter( 'woocommerce_get_price_html', 'conditional_price_suffix', 10, 2 );
function conditional_price_suffix( $price, $product ) {
    $weight    = (float) $product->get_weight();
    $raw_price = (float) wc_get_price_to_display($product);

    // Handling product variations
    $product_id = $product->is_type('variation') ? $product->get_parent_id() : $product->get_id();

    // HERE define your product categories (can be IDs, slugs or names)
    $product_categories = array('monthly-menus');
    $product_categories = array('clothing');

    if( has_product_categories( $product_categories, $product_id ) && $weight > 0 )
        $price .= ' ' . sprintf( __('/ %s per serving'), strip_tags( wc_price( $weight / $raw_price ) ) );
    return $price;
}

您将必须包含has_product_categories()this thread中的功能代码。

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试并可以正常工作。