You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何WordPress代码中get_woocommerce_currency_symbol()忽略If条件?

问题原因与解决方案

原因分析

  1. 变量名拼写不一致:你代码中判断的是$salePrice,但问题描述里提到的是$salesPrice(多了一个s)。这两个是完全独立的PHP变量,会直接导致条件判断逻辑错误——比如当你认为$salesPrice等于$price时,实际代码判断的$salePrice可能和$price不相等,从而错误输出.ecomm-regular-price标签;如果此时$price为空值,就会只显示货币符号。
  2. 潜在类型不匹配问题:如果$price和$salePrice类型不同(比如一个是字符串、一个是数字),使用严格不等于运算符!==会导致判断不符合预期。例如'99' !== 99会返回true,错误触发条件输出标签。

解决方案

  1. 统一变量名:将代码中的变量名修正为一致的,比如把判断条件里的$salePrice改成$salesPrice(和你描述的变量对齐):
<?php if($salesPrice !== $price) : ?>
  <span class="ecomm-regular-price">
    <?php echo get_woocommerce_currency_symbol() .  $price ?>
  </span>
<?php endif; ?>
<span class="ecomm-sale-price">
  <?php echo get_woocommerce_currency_symbol() . $salesPrice; ?>
</span>
  1. 增加非空判断(可选):为了避免$price为空时只显示货币符号,可以在条件里加入非空校验:
<?php if($salesPrice !== $price && !empty($price)) : ?>
  <span class="ecomm-regular-price">
    <?php echo get_woocommerce_currency_symbol() .  $price ?>
  </span>
<?php endif; ?>
  1. 调整判断运算符(按需):如果不需要严格校验类型,可以把!==换成!=,避免类型差异导致的误判:
<?php if($salesPrice != $price) : ?>

内容的提问来源于stack exchange,提问作者rtwoods88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:20:12