Я занимаюсь электронной коммерцией с помощью woocommerce, и я должен сделать следующее:Как изменить цену woocommerce через functions.php?
Изменение цены всех продуктов через functions.php. Функция, которую я создал, работает для всех цен сайта, за исключением значений корзины.
Я ставлю функцию ниже:
function woo_change_price($price, $product) {
global $woocommerce, $product;
$post_id = $product->id;
$regular_price = get_post_meta($post_id, '_regular_price', true);
$sale_price = get_post_meta($post_id, '_sale_price', true);
$cupom_value = ($regular_price - $sale_price)/10;
$price = $cupom_value;
return $price;
}
add_filter('woocommerce_get_price', 'woo_change_price', 99);
add_filter('woocommerce_get_sale_price', 'woo_change_price', 99);
add_filter('woocommerce_order_amount_item_subtotal', 'woo_change_price', 99);
Смотрите, что мне нужно, чтобы получить регулярную цену и цену на продажу продукта и сделать основной учет математики, вычитание двух и деление на 10. Результат я установил в качестве новой цены продукта.
Эта функция прекрасно работает на всех сайтах, за исключением тележки. Когда я вижу корзину, все значения равны 0 (цены, сумма, промежуточные итоги и т. Д.).
Я нашел, почему это происходит, но я не понимаю, как это исправить. Проблема заключается в следующем: $ product-> id не идентифицирован по телеге, а затем возвращается 0.
Как это исправить?
Спасибо!