更改WooCommerce缺货徽章文字

时间:2013-10-20 05:59:47

标签: php wordpress woocommerce

我们正在使用Wordpress和Woo Commerce上的邻居主题来销售一次性的独特商品。库存管理在确保销售的产品无法再次购买方面表现良好,而不是将商品显示为缺货。原则上这很好,事实上,在商品描述的价格下“库存”转向“缺货”的显示没有问题,我们甚至找到了在必要时更改该显示的代码here。这很好 - 将以下代码添加到主题中的functions.php:

add_filter('woocommerce_stock_html', 'change_stock_message', 10, 2);
function change_stock_message($message, $stock_status) {
    if ($stock_status == "Out of stock") {
        $message = '<p class="stock out-of-stock">Sold</p>';    
    } else {
        $message = '<p class="stock in-stock">Available</p>';           
    }
    return $message;
}

但是,我们真正想要做的是更改图片中出现的缺货徽章中的文字,例如http://neighborhood.swiftideas.net/product/common-projects-achilles/

enter image description here

更改CSS没有问题,因此文本字体,背景,大小等很容易更改,添加类似于custom-css的内容:

.out-of-stock-badge {
    background: red;
    font-size: 12px;
}

如何将缺货徽章文字从“缺货”更改为“已售出”?

4 个答案:

答案 0 :(得分:1)

2019年3月,您需要的代码片段位于一个名为wc-product-loop-outofstock-flash.php的文件中(在我的情况下为wp-content / Themes / Avada / woocommerce)

<?php if ( ! $product->is_in_stock() ) : ?>
    <div class="fusion-out-of-stock">
        <div class="fusion-position-text">
        <?php esc_attr_e( 'Fully Booked', 'Avada' ); ?>
        </div>
     </div>
<?php
endif;

查看结果here,但我不能保证它们会在2019年5月之后出现。预订满的项目位于页面底部

答案 1 :(得分:0)

我不知道你正在使用的主题。但我认为以下代码可能会解决您的问题 -

add_filter('woocommerce_sale_flash', 'woocommerce_sale_flashmessage', 10, 2);
function woocommerce_sale_flashmessage($flash){
    global $product;
    $availability = $product->get_availability();

    if ($availability['availability'] == 'Out of stock') :
        $flash = '<span class="out-of-stock-badge">'.__( 'SOLD', 'woocommerce' ).'</span>';

    endif;
    return $flash;
}

在主题的functions.php文件中添加它。

答案 2 :(得分:0)

按照@ maksbd19的建议,我发现需要在themes文件夹内的woocommerce文件夹中进行编辑的twofiles(在本例中为邻居)。这些是content-product.php和single-product \ product-image.php。在这两种情况下,我将以下行从“Out of Stock”更改为“Sold”,如下所示:

...} else if (is_out_of_stock()) {
    echo '<span class="out-of-stock-badge">' . __( 'Sold', 'swiftframework' ) . '</span>';
} else if (!$product->get_price()) {...

希望能有所帮助。

答案 3 :(得分:0)

您可以使用子主题header.php文件中的代码

要创建子主题-https://codex.wordpress.org/Child_Themes

jQuery( document ).ready(function() {
    jQuery(".onsale.oos").text(function () {
        return jQuery(this).text().replace("Out of stock", "SOLD"); 
    });
});