产品价格后缀,基于WooCommerce的重量计算价格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了产品价格后缀,基于WooCommerce的重量计算价格相关的知识,希望对你有一定的参考价值。

我正在使用“Custom product price suffix on based on product categories in Woocommerce”回答线程,允许用这种方式调整我的定价显示:

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

但我真正想要的是让$ price输出物品的价格除以物品的重量。我该怎么做?

这是我的实际代码轻微改变(使用has_product_categories()from this thread):

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的东西。不要以为我做对了!

答案

以下内容将使用每份服务的计算价格添加您的前缀:

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;
}

您必须在this thread中包含has_product_categories()函数代码。

代码位于活动子主题(或活动主题)的function.php文件中。测试和工作。

以上是关于产品价格后缀,基于WooCommerce的重量计算价格的主要内容,如果未能解决你的问题,请参考以下文章

从 WooCommerce 中的类别价格后缀更改中排除特定产品 ID

仅在所有 WooCommerce 单品上显示价格后缀

WooCommerce 单品页面中基于尺寸的价格计算

基于同一产品重量的不同价格的数据库设计

WooCommerce 中特定产品变体的自定义后缀

禁用 Woocommerce 购物车订单项数量价格计算