首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Woocommerce php代码get_price_html()

Woocommerce php代码get_price_html()
EN

Stack Overflow用户
提问于 2013-10-13 14:01:41
回答 4查看 63K关注 0票数 7

我是WordPress和WooCommerce的新手,我相信我已经确定了生成我想要更改的输出的代码行。

我正在使用来自WooCommerce的免费WooCommerce主题,index.php有一行:

代码语言:javascript
运行
复制
<h3>
    <?php the_title(); ?>
    <span class="price">
        <?php echo $_product->get_price_html(); ?>
    </span>
</h3>

这产生了类似“黑石-43美元”(即产品标题-价格)之类的产品。

我想要“黑石”之类的东西

43美元“

(即产品标题<br/>价格)

看起来get_price_html()函数有一些过滤器,但是文档不是很好,或者我只是不知道如何浏览它。

任何方向都将不胜感激。

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2014-05-05 16:36:15

所有的$product->get_price_html();都会产生这样的结果:

代码语言:javascript
运行
复制
<del><span class="amount">£8.00</span>–<span class="amount">£9.00</span></del>
<ins><span class="amount">£7.00</span>–<span class="amount">£8.00</span></ins>

若要操作此数据,必须从此字符串中提取数据。

如果您使用WP过滤器-您将在任何地方更改get_price_html()输出,如果您只需要在一个地方更改get_price_html()输出,那么接下来应该这样做:

代码语言:javascript
运行
复制
global $product;

$price_html = $product->get_price_html();

$price_html_array = price_array($price_html);

function price_array($price){
    $del = array('<span class="amount">', '</span>','<del>','<ins>');
    $price = str_replace($del, '', $price);
    $price = str_replace('</del>', '|', $price);
    $price = str_replace('</ins>', '|', $price);
    $price_arr = explode('|', $price);
    $price_arr = array_filter($price_arr);
    return $price_arr;
}

现在,数组中有相同的数据。

代码语言:javascript
运行
复制
Array ( [0] => £8.00–£9.00 [1] => £7.00–£8.00 )

你可以用它做你想做的一切

若要应用全局筛选器,必须添加

代码语言:javascript
运行
复制
add_filter( 'woocommerce_get_price_html', 'price_array', 100, 2 );
票数 13
EN

Stack Overflow用户

发布于 2013-11-29 19:02:16

这可能是您要寻找的过滤器:

代码语言:javascript
运行
复制
add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price( $price, $product ) {
    $price = '';
    $price .= woocommerce_price($product->min_variation_price);
    return $price;
}

这只是改变了它,这样就可以显示最小价格(而不是其他任何东西),因为不清楚您想如何格式化/样式它。您可以通过$product对象访问其他各种细节,以自定义输出。在您的functions.php文件中使用它。

票数 5
EN

Stack Overflow用户

发布于 2016-12-31 19:05:58

您可以通过修改上述行并在主题custom.css文件中添加一个小的css代码来实现这一点。

将给定的代码替换为:

代码语言:javascript
运行
复制
<h3>
    <?php the_title(); ?>
    <br/>
    <span class="price">
        <?php echo $_product->get_price_html(); ?>
    </span>
</h3>

并在custom.css (推荐)文件或主题style.css文件的最后一行中添加以下css代码。

代码语言:javascript
运行
复制
ul.featured-products li h3 .price::before{
    content : '' !important;
}

请注意:上述代码经过测试,并与Artificer 1.3.16版(该版本于2016年5月5日发布)进行了良好的工作。

希望这能有所帮助!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19346067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档