WooCommerce:如何在价格和销售价格之前添加文本?

Posted

技术标签:

【中文标题】WooCommerce:如何在价格和销售价格之前添加文本?【英文标题】:WooCommerce: How do you add text before the price and before sale price? 【发布时间】:2014-05-04 10:38:25 【问题描述】:

我已经成功地让文本显示在价格之前和销售价格之前,但文本被认为是价格的一部分,而不是与之分开。

放置:

ins:before
  content: "Betty's price: ";
  color: #000;
  font-size: 14px;

在我的自定义 CSS 文件中成功地将“Betty 的价格:”放在新的“销售”价格之前。问题是Betty's Price: 现在带有下划线且可点击,并且它与价格文本位于同一链接中。

我试图将此文本插入价格之前,而不是价格的一部分。我也不希望此文本与价格一起格式化。

同样的情况也适用于原价:

del:before
  content: "Retail: ";
  color: #000;
  font-size: 14px;

PS:我还希望在“Betty's price”位之外添加一个新的行字符,以便该行可以低于零售价,如果这有什么改变的话。 p>

【问题讨论】:

【参考方案1】:

方法一

您已安装 woocommerce 插件。为了覆盖 woocommerce 页面模板,您需要在主题文件夹中创建一个名为“woocommerce”的文件夹。转到您网站的“wp-content/plugins/templates”并将文件 content-product.php 复制到“wp-content/themes/your-theme/woocommerce/”。如果您的主题名为“mytheme”,您将拥有以下路径:“wp-content/themes/mytheme/woocommerce/content-product.php”。

您可以根据需要编辑文件 content-product.php。此文件是在类别页面上显示产品的文件。可以看到你的产品显示在一个

里面。

现在,content-product.php 看起来像这样:

<li <?php post_class( $classes ); ?>>

<?php do_action( 'woocommerce_before_shop_loop_item' ); ?>

<a href="<?php the_permalink(); ?>">

    <?php
        /**
         * woocommerce_before_shop_loop_item_title hook
         *
         * @hooked woocommerce_show_product_loop_sale_flash - 10
         * @hooked woocommerce_template_loop_product_thumbnail - 10
         */
        do_action( 'woocommerce_before_shop_loop_item_title' );
    ?>

    <h3><?php the_title(); ?></h3>

    <?php
        /**
         * woocommerce_after_shop_loop_item_title hook
         *
         * @hooked woocommerce_template_loop_rating - 5
         * @hooked woocommerce_template_loop_price - 10
         */
        do_action( 'woocommerce_after_shop_loop_item_title' );
    ?>

</a>

<?php do_action( 'woocommerce_after_shop_loop_item' ); ?>

</li>

你可以看到在标题后面包含了这个函数:do_action('woocommerce_after_shop_loop_item_title');

该函数定义在:plugins/woocommerce\includes\wc-template-hooks.php,所以我们不会触及它,我认为它是一个核心文件。您应该只编辑模板文件,因为如果插件有更新,您将失去您的设置。

所以我建议你用这个替换上面的代码:

<li <?php post_class( $classes ); ?>>

<?php do_action( 'woocommerce_before_shop_loop_item' ); ?>

<a href="<?php the_permalink(); ?>">

    <?php
        /**
         * woocommerce_before_shop_loop_item_title hook
         *
         * @hooked woocommerce_show_product_loop_sale_flash - 10
         * @hooked woocommerce_template_loop_product_thumbnail - 10
         */
        do_action( 'woocommerce_before_shop_loop_item_title' );
    ?>

    <h3><?php the_title(); ?></h3>

       <span>Enter Your Text Here!</span>

    <?php
        /**
         * woocommerce_after_shop_loop_item_title hook
         *
         * @hooked woocommerce_template_loop_rating - 5
         * @hooked woocommerce_template_loop_price - 10
         */
        do_action( 'woocommerce_after_shop_loop_item_title' );
    ?>

</a>

<?php do_action( 'woocommerce_after_shop_loop_item' ); ?>

</li>

您可以看到我在标题后添加了一个跨度。您可以向该跨度添加一个类或样式属性,或者您可以将跨度更改为 div 以便根据需要对其进行修改。但解决方案会奏效。

方法二

当您想在 Woocommerce 区域之后或之前添加一些文本/图像时,您需要添加一个钩子。首先,您需要了解 hooks 是如何工作的,所以请阅读有关 Wordpress 操作和过滤器的内容here。

既然您知道如何添加操作或过滤器,请阅读有关 Woocommerce 钩子here。

您必须在主题的 functions.php 文件中创建一个过滤器,然后在价格之前或之后添加文本。

下次当您对 Wordpress CMS 有任何疑问时,请在此处发布:https://wordpress.stackexchange.com/

【讨论】:

非常感谢您花时间整理出如此高质量的答案。 很高兴能帮到你。如果您有任何其他问题,请在此问题中添加 cmets。因为我会收到通知,我会在有时间的时候发布答案。祝你有美好的一天。

以上是关于WooCommerce:如何在价格和销售价格之前添加文本?的主要内容,如果未能解决你的问题,请参考以下文章

从 WooCommerce 管理员中的所有产品中删除销售价格

预定的销售已结束,但在查看产品时,可变产品似乎仍在销售 - Woocommerce

在 WC 3.0+ 的单个产品页面中显示接近销售价格的折扣百分比

如何根据月份增加 woocommerce 产品变化价格

如何在 Woocommerce 中的产品图片上添加热门属性(如销售)

如何在 WooCommerce 中为自定义产品类型启用价格和库存