WooCommerce |显示最低价格(包括缺货)-PHP

WooCommerce |显示最低价格(包括缺货)-PHP,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,类似的问题已经有很多了。但我还没有找到一个具体解决这个问题的办法 一、 与许多其他人一样,他们使用此代码段显示“低至”或“从”以代替显示的标准价格范围: 它工作得很好,只是我需要这段代码来考虑任何“缺货”变量 到目前为止,它将只显示最低的可变价格,如果它是“库存” 我需要它显示最低价格,即使当前价格变量当前“缺货”。我没有安装WooCommerce,因此您可能应该等待并接受一个实际给出可执行代码的答案。然而,为了让你知道你需要什么(并给你一个展示自己努力的机会),我将包括你需要检查的东西。我的

类似的问题已经有很多了。但我还没有找到一个具体解决这个问题的办法

一、 与许多其他人一样,他们使用此代码段显示“低至”或“从”以代替显示的标准价格范围:

它工作得很好,只是我需要这段代码来考虑任何“缺货”变量

到目前为止,它将只显示最低的可变价格,如果它是“库存”


我需要它显示最低价格,即使当前价格变量当前“缺货”。

我没有安装WooCommerce,因此您可能应该等待并接受一个实际给出可执行代码的答案。然而,为了让你知道你需要什么(并给你一个展示自己努力的机会),我将包括你需要检查的东西。我的猜测是,在您的
bbloomer\u variation\u price\u format\u min
方法中执行任何操作之前,您都会先检查它,但检查“缺货”的确切位置可能会有所不同。不管怎么说,我的想法是这样的

您需要使用某种方法来确定产品是否“缺货”。这可能是一个
if
语句。实际上,通过快速搜索,我找到了一个特定的
if
语句,所以这里可能有可执行代码

从中,方法似乎是
get\u stock\u quantity()
。更具体地说,您将执行一个测试,如

if($product->get\u stock\u quantity()==0)
或者,使代码更具可读性

$product\U缺货=($product->get\U stock\U QUOTE()==0);
如果($product\U out\U of\U stock==True)
注意,我只注意到应该使用哪个
if
语句;您需要填写
if
条件和
else
条件的代码,可能每个条件都用括号括起来,
{
}

检查一下。如果发现产品缺货,
返回告诉客户缺货的字符串。如果它没有缺货,请继续使用现有函数,并将
返回
sprintf
-ed到
$price
变量中的字符串

我希望这能让你走上正轨。如果您在获取将要执行的代码时遇到问题,请添加一个编辑,显示您尝试检查是否有东西缺货

注意:我没有试着运行这个。这更像是一个概念性的回答

编辑

听起来你已经在做了。让我更具体地介绍一下您可能使用的代码。我将发布代码,然后我希望很快能有时间在下载的程序中试用它

/**
*@snippet可变产品价格范围:“From:$$$min\u Price”
*@how-to-Get CustomizeWoo.com免费
*@sourcecodehttps://businessbloomer.com/?p=275
*@作者鲁道夫·梅洛格利
*@3.5.4
*@捐赠9美元https://businessbloomer.com/bloomer-armada/
*/
添加过滤器(“woocommerce\u variable\u price\u html”、“bbloomer\u variation\u price\u format\u min”、9999、2);
功能bbloomer\u变量\u价格\u格式\u最小值($price,$product){
$product\U缺货=($product->get\U stock\U QUOTE()==0);
如果($product\U out\U of\U stock==True){
$price=sprintf(‘产品%s缺货’,$Product);
返回$price;
}
否则{
$prices=$product->get\u variation\u prices(true);
$min_price=当前($prices['price']);
$price=sprintf(uuu('From:%1$s','woocommerce'),wc_price($min_price));
返回$price;
}
}

试试你现在所拥有的。至于克隆数据库,我现在可能不是最好的帮助你的人。但是,了解您使用的是什么会很有用。通过在线搜索“
\uuuuu
”操作符,您似乎正在使用wordpress或CakePHP(或另一个PHP框架)。有关这方面的详细信息可以为我或最终帮助您的人添加。

我没有安装WooCommerce,因此,您可能应该等待并接受一个实际给出可执行代码的答案。然而,为了让你知道你需要什么(并给你一个展示自己努力的机会),我将包括你需要检查的东西。我的猜测是,在您的
bbloomer\u variation\u price\u format\u min
方法中执行任何操作之前,您都会先检查它,但检查“缺货”的确切位置可能会有所不同。不管怎么说,我的想法是这样的

您需要使用某种方法来确定产品是否“缺货”。这可能是一个
if
语句。实际上,通过快速搜索,我找到了一个特定的
if
语句,所以这里可能有可执行代码

从中,方法似乎是
get\u stock\u quantity()
。更具体地说,您将执行一个测试,如

if($product->get\u stock\u quantity()==0)
或者,使代码更具可读性

$product\U缺货=($product->get\U stock\U QUOTE()==0);
如果($product\U out\U of\U stock==True)
注意,我只注意到应该使用哪个
if
语句;您需要填写
if
条件和
else
条件的代码,可能每个条件都用括号括起来,
{
}

检查一下。如果发现产品缺货,
返回告诉客户缺货的字符串。如果它没有缺货,请继续使用现有函数,并将
返回
sprintf
-ed到
$price
变量中的字符串

我希望这能让你走上正轨。如果您在获取将要执行的代码时遇到问题,请添加一个e
/**
 * @snippet       Variable Product Price Range: "From: $$$min_price"
 * @how-to        Get CustomizeWoo.com FREE
 * @sourcecode    https://businessbloomer.com/?p=275
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.5.4
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

add_filter( 'woocommerce_variable_price_html', 'bbloomer_variation_price_format_min', 9999, 2 );

function bbloomer_variation_price_format_min( $price, $product ) {
   $prices = $product->get_variation_prices( true );
   $min_price = current( $prices['price'] );
   $price = sprintf( __( 'From: %1$s', 'woocommerce' ), wc_price( $min_price ) );
   return $price;
}