wordpress 在WooCommerce中的存档页面问题上的价格之前添加文本

wgeznvg7  于 12个月前  发布在  WordPress
关注(0)|答案(2)|浏览(196)

我使用以下代码在价格之前添加文本,如果产品在WooCommerce的存档页面上有销售:

function wps_custom_message() {
 
    $product = wc_get_product();
    if ( $product->is_on_sale() ) {
        add_filter( 'woocommerce_get_price_html', 'cw_change_product_price_display' );
        add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_display' );
        function cw_change_product_price_display( $price ) {
            // Your additional text in a translatable string
            $text = __('<span>Your sale price is:</span><br>');

            // returning the text before the price
            return $text . ' ' . $price;
        }
    }
}
 
add_action( 'woocommerce_archive_description', 'wps_custom_message', 9 );
add_action( 'woocommerce_before_single_product', 'wps_custom_message', 9 );

字符串
但文字也出现在产品的销售价格没有设置。
我做错了什么?


的数据
正如你可以看到的截图,文字不应该是对产品没有得到销售价格。

ruyhziif

ruyhziif1#

要在产品的销售价格前添加文本,只需将代码替换为以下内容:

add_filter( 'woocommerce_get_price_html', 'cw_change_product_price_display', 100, 2 );
add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_display', 100, 2 );
function cw_change_product_price_display( $price_html, $mixed ) {
    $product = is_a($mixed, 'WC_product') ? $mixed : $mixed['data'];

    if ( $product->is_on_sale() ) {
        $price_html = sprintf('<span>%s:</span> <br>%s', __('Your sale price is', 'woocommerce'), $price_html);
    }
    return $price_html;
}

字符串
如果您不想在购物车项目上使用此功能,请删除:

add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_display', 100, 2 );


如果您只想在WooCommerce存档页面上使用此功能,请替换:

if ( $product->is_on_sale() ) {


使用:

if ( ! is_product() && $product->is_on_sale() ) {


代码放在你的子主题的functions.php文件中(或插件中)。测试和工作。

cmssoen2

cmssoen22#

你可以使用woocommerce_format_sale_price过滤器。看看文档。

add_filter( 'woocommerce_format_sale_price', 'add_text_to_sales', 100, 3 );
function add_text_to_sales( $price, $regular_price, $sale_price ) {
    // Your additional text in a translatable string
    $text = __('<span>Your sale price is:</span><br>');
    
    return $text . $price;
}

字符串

相关问题