4

我们在 Wordpress 和 Woo Commerce 上使用 Neighborhood 主题来销售一次性的独特商品。库存管理在确保不再购买已售出的产品方面效果很好,而是将商品显示为缺货。原则上这很好,事实上,在项目描述的价格下显示“有货”变成“缺货”没有问题,我们甚至在此处找到了必要时更改显示的代码。这工作正常 - 将以下代码添加到主题中的 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/

在此处输入图像描述

更改 CSS 没有问题,因此可以轻松更改文本字体、背景、大小等,在 custom-css 中添加如下内容:

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

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

4

4 回答 4

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;

在此处查看结果,但我不能保证它们会在 2019 年 5 月之后出现

于 2019-03-23T01:03:42.577 回答
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 文件中。

于 2013-10-26T15:32:00.907 回答
0

根据@maksbd19 的建议,我在主题文件夹(在本例中为邻域)内的 woocommerce 文件夹中找到了需要编辑的两个文件。它们是 content-product.php 和 single-product\product-image.php。在这两种情况下,我将以下行从“缺货”更改为“已售”,如下所示:

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

希望对某人有所帮助。

于 2013-11-11T02:35:06.587 回答
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"); 
    });
});
于 2018-11-12T06:47:15.803 回答