在Woocommerce产品小部件中的特色产品价格下添加自定义文本

时间:2018-11-12 08:05:58

标签: php wordpress woocommerce widget product

我正在尝试在首页上特色产品的价格下方添加一行文字。 我已经尝试编辑content-widget-product.php,所以看起来像这样-

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

global $product;

if ( ! is_a( $product, 'WC_Product' ) ) {
    return;
}

?>
<li>
    <?php do_action( 'woocommerce_widget_product_item_start', $args ); ?>

    <a href="<?php echo esc_url( $product->get_permalink() ); ?>">
        <?php echo wp_kses_post( $product->get_image() ); ?>
        <span class="product-title"><?php echo esc_html( $product->get_name() ); ?></span>
    </a>

    <?php if ( ! empty( $show_rating ) ) : ?>
        <?php echo wp_kses_post( wc_get_rating_html( $product->get_average_rating() ) ); ?>
    <?php endif; ?>

    <?php echo wp_kses_post( $product->get_price_html() ); ?>
    <p class="deliveryline">DELIVERY THROUGHOUT GREATER CAPE TOWN AREA</p>

    <?php do_action( 'woocommerce_widget_product_item_end', $args ); ?>
</li>

我添加了“整行交付” ...但是它什么也没做。有人可以告诉我为什么它不起作用。谢谢!

1 个答案:

答案 0 :(得分:1)

尝试以下代码,这些代码将仅在主页价格下将自定义文本添加到特色产品的小部件“产品”项中:

add_action( 'woocommerce_widget_product_item_end', 'home_widget_features_products', 10, 1 );
function home_widget_features_products( $args ){
    global $product;

    // Featured product on home page (when using the loop)
    if( $product->is_featured() && is_front_page() )
        echo '<p class="deliveryline">' . __("DELIVERY THROUGHOUT GREATER CAPE TOWN AREA", "woocommerce") . '</p>';
}

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

enter image description here


添加:如果您在首页中使用简码,例如:

[products limit="3" columns="3" visibility="featured"]

您将使用以下代码(适用于循环中的产品)

add_action( 'woocommerce_after_shop_loop_item_title', 'home_loop_features_products', 20 );
function home_loop_features_products(){
    global $product;

    // Featured product on home page (when using the loop)
    if( $product->is_featured() && is_front_page() )
        echo '<p class="deliveryline">' . __("DELIVERY THROUGHOUT GREATER CAPE TOWN AREA", "woocommerce") . '</p>';
}

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

enter image description here


要在所有产品的所有地方显示此自定义文本 (在所有Woocommerce存档页面中作为商店,并且在所有Woocommerce循环中作为相关产品,加价销售,交叉销售…)

您将使用不带if语句的相同代码:

add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_products_loop', 20 );
function woocommerce_products_loop(){
    global $product;

    echo '<p class="deliveryline">' . __("DELIVERY THROUGHOUT GREATER CAPE TOWN AREA", "woocommerce") . '</p>';
}