首页 文章

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

提问于
浏览
2

一直试图找到这个,但我到目前为止找到的解决方案不起作用 .

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

ADD TO CART - JUST $PRICE

它需要从子主题中的functions.php文件中完成 .

非常感谢!

3 回答

  • 2

    我建议你从子主题覆盖WooCommerce模板,文件名是add-to-cart.php,可以在woocommerce> loop找到 .

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

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

    以及您在add-to-cart目录中使用的任何其他模板 .

  • 1

    要使用专用的Woocommerce过滤器挂钩处理商店,其他档案页面和单个产品页面 without any need of overriding templates 上所有产品价格的“按购物车”按钮显示产品价格:

    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文件中 . 经过测试和工作 .


    On shop page:

    enter image description here

    On single product pages:

    enter image description here

相关问题