产品页面上的Woocommerce价格输出

时间:2018-07-14 00:28:27

标签: php wordpress woocommerce

我需要根据自己的需要修改插件。插件代码如下:

1. update_post_meta($post_id, '_regular_price', (isset($product['price']) && !empty($product['price'])) ? $product['price'] : '');
2. update_post_meta($post_id, '_sale_price', (isset($product['sale-price']) && !empty($product['sale-price']) && ($product['sale-price']<$product['price']) ) ? $product['sale-price'] : '');
3. update_post_meta($post_id, '_price', (isset($product['price'])) ? $product['price'] : '');

前两行将常规价格和折扣(销售)价格值输入数据库。第三行是产品页面上的输出,我需要对此进行更改:

  1. 如果存在折扣价_sale_price / [sale-price],则应在第3行上将其显示为默认_price / [price]
  2. 如果没有折扣价_sale_price / [sale-price],则第1行的正常价格应在第3行显示为[price]

我尝试过if (isset($product['sale-price'])){? $product['sale-price'] : '';}else{? $product['price'] : '';},但这会引发500错误。

任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

WooCommerce应该自动执行此操作,但是为了回答您的问题,您的代码中存在一些错误,似乎您正在尝试将ternery运算符与IF语句混合在一起。

第3行的正确替换应如下所示:

update_post_meta($post_id, '_price', (isset($product['sale-price']) && !empty($product['sale-price'])) ? $product['sale-price'] : $product['price']);

答案 1 :(得分:1)

我最终的工作代码如下:

update_post_meta($post_id, '_regular_price', (isset($product['price']) && !empty($product['price'])) ? $product['price'] : '');

update_post_meta($post_id, '_sale_price', (isset($product['sale-price']) && !empty($product['sale-price']) && ($product['sale-price']<$product['price'])) ? $product['sale-price'] : ((isset($product['retail-price']) && !empty($product['retail-price']) && ($product['retail-price']<$product['price'])) ? $product['retail-price'] : '')); 

update_post_meta($post_id, '_price', (isset($product['sale-price']) && !empty($product['sale-price'])) ? $product['sale-price'] : ((isset($product['retail-price']) && !empty($product['retail-price'])) ? $product['retail-price'] : $product['price']));

感谢Frits的帮助。 :)