我需要根据自己的需要修改插件。插件代码如下:
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'] : '');
前两行将常规价格和折扣(销售)价格值输入数据库。第三行是产品页面上的输出,我需要对此进行更改:
_sale_price / [sale-price]
,则应在第3行上将其显示为默认_price / [price]
。_sale_price / [sale-price]
,则第1行的正常价格应在第3行显示为[price] 我尝试过if (isset($product['sale-price'])){? $product['sale-price'] : '';}else{? $product['price'] : '';}
,但这会引发500错误。
任何帮助表示赞赏。
答案 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的帮助。 :)