我们正在使用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/。
更改CSS没有问题,因此文本字体,背景,大小等很容易更改,添加类似于custom-css的内容:
.out-of-stock-badge {
background: red;
font-size: 12px;
}
如何将缺货徽章文字从“缺货”更改为“已售出”?
答案 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");
});
});