Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更改缺货徽章文本_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 更改缺货徽章文本

Php 更改缺货徽章文本,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我们在Wordpress和Woo Commerce上使用邻里主题来销售一次性、独特的商品。库存管理在确保售出的产品不能再次购买方面效果良好,而是显示该商品缺货。这在原则上是好的,事实上,在项目描述的价格下,“库存”变为“缺货”的显示没有问题,我们甚至找到了代码,可以在必要时更改该显示。这很好-将以下代码添加到主题中的functions.php中: add_filter('woocommerce_stock_html', 'change_stock_message', 10, 2); functi

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

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

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

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;
}
add_filter('woocommerce_sale_flash','woocommerce_sale_flashmessage',10,2);
功能:商业、销售、flashmessage($flash){
全球$产品;
$availability=$product->get_availability();
如果($availability['availability']=='缺货'):
$flash=''.'('sall','woocommerce');
endif;
返回$flash;
}

将其添加到theme的functions.php文件中。

根据@maksbd19的建议,我在themes文件夹中的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()) {...
…}如果(缺货()){
回显“”。_uu('sell','swiftframework');
}否则如果(!$product->get_price()){。。。

希望这对其他人有所帮助。

您可以使用child-themes header.php文件中的代码

要创建子主题,请执行以下操作:


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



@第一个链接中的brasofilo代码已经添加。第二个链接是一个示例,我没有代码/快照(因此请求)。如果有帮助,请添加屏幕抓图(尽管我只能链接图像,因为我没有足够的代表:()。感谢您的评论!Hi@maksbd19感谢您的回复。不幸的是,我在添加到functions.php时无法实现此功能。我原则上理解这应该如何工作,但缺货徽章仍然显示缺货!我之前发现,此文本可能来自woocommerce模板页面sale-flash.php文件。这是:它位于Neighbor\woocommerce\single product目录中。如果它在那里,那么您可以尝试更改那里的文本。在没有实际环境的情况下解决模板问题非常困难。谢谢@maksbd19,您的建议使我能够发现需要更改哪些文件,哪些文件已包含在answe中你能找到一种不过期的方式来提供“结果”吗?也许,一个屏幕截图,你可以把它作为图像包含在你的答案中?(thx)
...} else if (is_out_of_stock()) {
    echo '<span class="out-of-stock-badge">' . __( 'Sold', 'swiftframework' ) . '</span>';
} else if (!$product->get_price()) {...
jQuery( document ).ready(function() {
    jQuery(".onsale.oos").text(function () {
        return jQuery(this).text().replace("Out of stock", "SOLD"); 
    });
});
<?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;