Вывод цен Woocommerce на странице продукта

Использование первого не является по своей сути более безопасным, чем последнее, вам необходимо дезинформировать ввод, является ли он частью массива параметров или простой переменной. Поэтому я не вижу ничего плохого в использовании последней формы с $table, если вы убедитесь, что содержание $table безопасно (alphanum plus underscores?) Перед его использованием.

1
задан milenmk 14 July 2018 в 00:28
поделиться

2 ответа

WooCommerce должно делать это автоматически, но в интересах ответа на ваш вопрос в вашем коде есть некоторые ошибки, похоже, вы пытаетесь смешивать оператор ternery с инструкцией IF.

Правильная замена строки 3 должна выглядеть так:

update_post_meta($post_id, '_price', (isset($product['sale-price']) && !empty($product['sale-price'])) ? $product['sale-price'] : $product['price']);
1
ответ дан Frits 17 August 2018 в 12:04
поделиться
  • 1
    Работает как шарм. Проблема в том, что плагин переопределяет поведение woocommerce по умолчанию. Еще один вопрос: для строк 2 и 3, как я могу проверить еще одну переменную (розничная цена), если (продажная цена) не существует или пуста? – milenmk 14 July 2018 в 10:55
  • 2
    Я рад, что помог :) Извините, но я не совсем понимаю ваш вопрос - вы хотите перефразировать это для меня? – Frits 14 July 2018 в 14:32

Мой последний рабочий код выглядит следующим образом:

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 для справки. :) [/ Д2]

1
ответ дан milenmk 17 August 2018 в 12:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: