php - 在 php 条件下应用 css 规则
问题描述
我在 WooCommerce 上添加了一些自定义股票状态消息,其中包含一些 PHP 代码,如下所示:
//Ajoute "En stock" sous chaque produit
function show_stock() {
global $product;
if ( $product->managing_stock() ) { // if manage stock is enabled
if (( number_format($product->get_stock_quantity(),0,'','') > 0 ) && ( number_format($product->get_stock_quantity(),0,'','') < 100 )) { // if in stock
echo '<div class="remaining" style="color:green;">En stockk</div>';
} elseif (( number_format($product->get_stock_quantity(),0,'','') >= 100 ) && ( number_format($product->get_stock_quantity(),0,'','') < 1000 )) {
echo '<div class="remaining" style="color:#f2cd00;">Livraison sous 1 mois</div>';
} elseif (( number_format($product->get_stock_quantity(),0,'','') >= 1000 ) && ( number_format($product->get_stock_quantity(),0,'','') < 2000 )) {
echo '<div class="remaining" style="color:#f2cd00;">Livraison sous 7 jours</div>';
} elseif ( number_format($product->get_stock_quantity(),0,'','') < 1 ) {
echo '<div class="remaining" style="color:red;">Rupture</div>';
}
}
}
add_action('woocommerce_after_shop_loop_item','show_stock', 10);
add_action ('woocommerce_before_add_to_cart_form','show_stock');
我应用此 CSS 规则使我的单个产品页面中的默认 WooCoomerce 库存消息消失,并避免双重库存状态消息。
p.stock{
display: none;
}
我遇到的问题是当 stock = 0 时我的 PHP 代码不再工作,然后我的最后一个 php 代码条件不适用(不显示我的自定义消息“破裂”)。
而且因为我在我的库存 = 0 时应用了我的 CSS 规则,所以我没有库存状态。
然后我想只在我的股票 > 0 时应用我的 CSS 规则。或者想办法让我的最后一个条件 php 应用于股票 < 1。
:'( 谢谢你
解决方案
我建议重构你的代码,因为你的“逻辑”是正确的,但你的语义不是那么神。
1 - 定义返回类型$product->get_stock_quantity()
2 - 在 php 中,类型号也等同于字符串(因为作为动态类型)
3 - 验证$product->get_stock_quantity()
列表为空时的返回值
推荐阅读
- r - 在stm中设置自定义参数
- java - jpackage 应用程序的配置文件无法解析/扩展变量
- java - 如何使用 java 制作 react-native 包?
- reactjs - 没有错误,console.log 之前没有出现 Uncaught TypeError: str.startsWith is not a function, str is not defined, now no errors
- json - lerna run watch 不适用于两个包之一
- android - 后退按钮箭头在工具栏中不起作用
- presto - Presto 纪元字符串到时间戳
- mysql - Oxid Enterprise Edition 5.2 导入变体文章价格
- java - 返回第一个活动后调用方法
- jquery - 如何使用 jquery 访问无序列表中的元素