从Woocommerce中的functions.php文件显示添加到购物车按钮上的价格

时间:2018-07-25 15:01:57

标签: php wordpress woocommerce product price

曾经尝试寻找有关此内容的方法,但到目前为止,我在这里找到的解决方案均无效。

我需要在单个产品页面中显示“添加到购物车”按钮,如下所示:

添加到购物车-仅需$ PRICE

这需要通过子主题中的functions.php文件完成。

非常感谢!

3 个答案:

答案 0 :(得分:2)

我建议您从子主题中覆盖WooCommerce模板,文件名为add-to-cart.php,可以在woocommerce>循环中找到。

在底部添加以下代码,它将仅在产品单中显示。

if (is_single()) {
    echo sprintf(
        '<span>%s %s</span>',
        esc_attr__('JUST', 'woocommerce'),
        esc_attr($product->price)
    );
}

答案 1 :(得分:1)

像这样编辑woocommerce/loop/add-to-cart.php模板文件:

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

global $product;

echo apply_filters( 'woocommerce_loop_add_to_cart_link', // WPCS: XSS ok.
    sprintf( '<a href="%s" data-quantity="%s" class="%s" %s>ADD TO CART - JUST %s</a>',
        esc_url( $product->add_to_cart_url() ),
        esc_attr( isset( $args['quantity'] ) ? $args['quantity'] : 1 ),
        esc_attr( isset( $args['class'] ) ? $args['class'] : 'button' ),
        isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '',
        $product->get_price()
    ),
$product, $args );

对于单个产品页面,其基本操作如下:

woocommerce/single-product/add-to-cart/simple.php

以及您在购物车目录中使用的任何其他模板。

答案 2 :(得分:1)

要使用商店中所有产品价格,其他存档页面和单个产品页面的购物车按钮显示产品价格,无需覆盖模板,请使用专用的Woocommerce过滤钩:

add_filter( 'woocommerce_product_add_to_cart_text', 'custom_add_to_cart_price', 20, 2 ); // Shop and other archives pages
add_filter( 'woocommerce_product_single_add_to_cart_text', 'custom_add_to_cart_price', 20, 2 ); // Single product pages
function custom_add_to_cart_price( $button_text, $product ) {
    // Variable products
    if( $product->is_type('variable') ) {
        // shop and archives
        if( ! is_product() ){
            $product_price = wc_price( wc_get_price_to_display( $product, array( 'price' => $product->get_variation_price() ) ) );
            return $button_text . ' - From ' . strip_tags( $product_price );
        } 
        // Single product pages
        else {
            return $button_text;
        }
    } 
    // All other product types
    else {
        $product_price = wc_price( wc_get_price_to_display( $product ) );
        return $button_text . ' - Just ' . strip_tags( $product_price );
    }
}

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


在商店页面上:

enter image description here

在单个产品页面上:

enter image description here