【问题标题】:WooCommerce | Display Lowest Price (Including Out Of Stock) - PHPWooCommerce |显示最低价(包括缺货) - PHP
【发布时间】:2019-12-04 20:30:17
【问题描述】:

已经有很多类似的问题了。但是我还没有找到专门针对这个问题的单一解决方案。

我和许多其他人一样,正在使用这个 sn-p 来显示“低至”或“从”来代替显示的标准价格范围:

https://businessbloomer.com/disable-variable-product-price-range-woocommerce/

/**
 * @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;
}

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

截至目前,只有“有货”时才会显示最低可变价格。

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

【问题讨论】:

  • 嘿@Chronic_Built_Support。欢迎来到 SO。您可能应该在问题的某处注意到您使用的语言是 PHP。你把它作为标签做得很好,但我会把它放在问题甚至标题中。
  • 感谢您的提示!
  • 在我的回答下记下我的 cmets。此外,它可能会帮助您查看有关显示 PHP 错误的几个答案,这样您就可以看到哪里出了问题 - answer 1answer 2
  • 谢谢。我也在检查这些。

标签: php wordpress woocommerce


【解决方案1】:

我没有安装 WooCommerce,因此您可能应该等待并接受实际提供可执行代码的答案。但是,为了让您了解您需要什么(并让您有机会展示自己的努力),我将包括您需要检查的内容。我的猜测是,在您的 bbloomer_variation_price_format_min 方法中执行任何其他操作之前,您将对其进行检查,但您检查“缺货”的确切时间可能会有所不同。无论如何,这就是想法。

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

another SO answer看来,方法是get_stock_quantity()。更具体地说,您将执行一个测试,例如

if ( $product->get_stock_quantity() == 0 )

或者,使代码更具可读性。

$product_is_out_of_stock = ( $product->get_stock_quantity() == 0 );
if ( $product_is_out_of_stock == True ) 

请注意,我只注意到应该使用哪个if 语句;您需要填写if 条件和else 条件的代码,可能每个都用括号括起来,{}

做那个检查。如果您发现产品缺货,return 一个字符串告诉客户缺货。如果它没有缺货,请继续使用您的函数并将 return 字符串 sprintf 编辑到 $price 变量中。

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

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

编辑

听起来你已经在努力了。让我对您可能使用的代码更具体一点。我将发布代码,然后我希望很快有时间用下载的程序进行尝试。

/**
 * @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 ) {
   $product_is_out_of_stock = ( $product->get_stock_quantity() == 0 );
   if ( $product_is_out_of_stock == True ) {
      $price = sprintf( 'Product, %s , is Out of Stock.', $product );
      return $price;
   }
   else {
      $prices = $product->get_variation_prices( true );
      $min_price = current( $prices['price'] );
      $price = sprintf( __( 'From: %1$s', 'woocommerce' ), wc_price( $min_price ) );
      return $price;
   }
}

试试你现在所拥有的。至于克隆数据库,我现在可能不是最好的帮助你的人。但是,了解您正在使用的内容会很有用。通过在线搜索“__”运算符,您似乎正在使用 wordpress 或 CakePHP(或其他 PHP 框架)。对于我或任何最终帮助您的人来说,添加详细信息会很好。

【讨论】:

  • 谢谢。我明白你从哪里来。我认为我应该在帖子中添加更多内容以显示我需要它做什么。我想我可能没有正确解释。我需要显示的价格以显示最低价格,无论它是有货还是缺货。出于某种原因,此 sn-p 仅显示库存变量的最低价格。所以我需要它来显示所有变量中的最低价格(缺货和有货)。如果这就是你所指的,那么谢谢你。也许我只是不明白。无论哪种方式都非常感谢。
  • 我现在试试。
  • 我想你明白了。我会展示(在你的问题中)和运行代码的例子,你实际上得到了一个价格。然后,当您意识到您“缺货”时,我会显示输出。我祝贺你花时间学习如何发布一个好问题。它让帮助您变得更加容易!
  • 顺便说一句...如果你不能让它工作,发布你的尝试更新。 (如果您有一个使用 PHP 的网站 - 我猜是这种情况 - 请随意包含网页的屏幕截图。)我会密切关注这个问题,看看它对您有什么影响。如果您仍然遇到问题,我会尝试下载 WooCommerce 并查看是否可以复制您的问题。祝你好运!
  • 嘿。对不起,我根本不明白。不是你,是我。我只需要做更多的背景和研究来弄清楚如何尝试这个。我也需要克隆服务器。
猜你喜欢
  • 2014-09-26
  • 2021-05-03
  • 1970-01-01
  • 2021-08-22
  • 1970-01-01
  • 2015-03-14
  • 2013-02-25
  • 2016-08-22
  • 2018-05-25
相关资源
最近更新 更多