@Alexis_D

Почему не могу получить значение из каждого товара Advanced Custom Fields?

Доброго времени суток, у меня инт-магазин построенный на Woocommerce, есть группа полей созданная с помощью Advanced Custom Fields, я сделал отображение этой группы полей в каждом товаре и по умолчанию задал значение, допустим, 1500. Импортирую товары с помощью WP All Import и эти импортированные товары выводятся с нулевой ценой, в function.php написал код изменяющий цену, по нужной мне формуле, одно из значений беру из этой самой группы полей из каждого товара, нашел причину вывода нулевой цены - значение (1500), которое задано по умолчанию, вводится в формулу как 0, то есть, сейчас покажу сокращенную формулу для наглядного примера:
function my_price($price, $_product){
	
	$number = get_field('number', $post->ID); 
 	$new_price = $number ;
	return $new_price; 
	
}

add_filter('woocommerce_product_get_price', 'my_price',100,2);

$number - это значение из товара, которое по умолчанию должно равняться 1500, но равняется 0, не понимаю в чем проблема, но если зайти в товар и нажать обновить то все работает, в чем может быть причина?
Заранее спасибо за ответ!
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
ну первое что бросилось это отсутствие global $post; в начале функции. Хотя в аргументах функции вы получаете переменную $_product, это объект товара, то берите $_product->get_id() от него, и $post тогда не нужен.

но если зайти в товар и нажать обновить то все работает,

Что работает, Выгружаются товары с правильной ценой?

Прогнал Ваш код, он работает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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