围绕产品销售价格和正常价格有条件的定制输出 [英] Conditional custom output around products sale price and regular price

查看:49
本文介绍了围绕产品销售价格和正常价格有条件的定制输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试处理自定义条件输出,当找到具有销售价格的产品循环时,它会向销售价格标签添加一个类.如果只有正价,则将此类添加到正价标签中.

I'm trying to work on a custom conditional output where when a product loop is found with sales price, it adds a class to the sale price tag. If there's only regular price, it adds this class to regular price tag.

在查看 & 之后,我似乎无法让它发挥作用来自不同的文档:

I can't seem to get this to work after looking on & off from different documentations:

add_filter( 'woocommerce_get_price_html', 'custom_price_html', 100, 2 );
function custom_price_html( $price, $product ){
    ob_start();
        global $product; 
        if (isset($product->sale_price)) {
            return str_replace( '</del>', '<span class="amount">text</span></del>', $price );
            return str_replace( '</ins>', '<span class="highlight amount">highlight here</span></del>', $price );
        }
        else {
            return str_replace( '</ins>', '<span class="highlight amount">highlight here</span>text</del>', $price );
        }
}

我正在使用常规价格过滤器 &试图将 span class="amount" 标签更改为 ins span class="amount",但是我仍然得到相同的输出.
有什么想法吗?

I'm using the regular price filter & trying to change the span class="amount" tag to ins span class="amount", however I still get the same output.
Any idea?

add_filter( 'woocommerce_price_html', 'price_custom_class', 10, 2 );
function price_custom_class( $price, $product ){ 
    return str_replace( '<span class="amount"></span>', '<ins><span class="amount">'.woocommerce_price( $product->regular_price    ).'</span></ins>', $price );
}

推荐答案

这个钩子是一个带有 2 个变量($price$instance)的过滤器,你return $price 而不是 echo $price).你可以尝试这样使用它:

This hook is a filter with 2 variables ($price and $instance) and you return $price instead of echo $price). You could try to use it this way:

add_filter('woocommerce_sale_price_html','price_custom_class', 10, 2 ); 
function price_custom_class( $price, $product ){ 
    if (isset($product->sale_price)) {
        $price = '<del class="strike">'.woocommerce_price( $product->regular_price ).'</del> 
        <ins class="highlight">'.woocommerce_price( $product->sale_price ).'</ins>';
    }
    else
    {
        $price = '<ins class="highlight">'.woocommerce_price( $product->regular_price ).'</ins>';
    }
    return $price;
}

此挂钩正常为销售价.

参考:woocommerce_sale_price_html

对于正常价格,您有 woocommerce_price_html 过滤器钩子:

For regular price, you have woocommerce_price_html filter hook:

add_filter( 'woocommerce_price_html', 'price_custom_class', 10, 2 );
function price_custom_class( $price, $product ){ 
    // your code
    return $price;
}

参考:woocommerce_price_html

这篇关于围绕产品销售价格和正常价格有条件的定制输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆