Вы делаете это намного сложнее, чем должно быть, и есть некоторые ошибки:
- Родительской переменной product является аргумент функции
$product
(переменная).
- Вам не нужно делать цикл foreach, поскольку вы уже в нем.
- Вы не используете:
get_post_meta( $variation_ID , '_text_field_date_expire', true );
$variation
переменная - массив данных текущего изменения ( см. Здесь )
$variation['variation_id']
- идентификатор варианта продукта
- Идентификатор родительской переменной продукта (при необходимости):
$product->get_id()
Итак, 2 возможных способа:
1) Ориентация на все варианты продукта определенного переменного продукта:
add_filter('woocommerce_available_variation', 'variation_price_custom_suffix', 10, 3 );
function variation_price_custom_suffix( $variation_data, $product, $variation ) {
// For a specific variable product ID (and all its variations)
if( $product->get_id() == 732 ) {
$date_expire = get_post_meta( $product->get_id(), '_text_field_date_expire', true );
$variation_data['price_html'] .= ' ' . __("Text after price");
}
return $variation_data;
}
2) Ориентация на уникальный вариант товара ID:
add_filter('woocommerce_available_variation', 'variation_price_custom_suffix', 10, 3 );
function variation_price_custom_suffix( $variation_data, $product, $variation ) {
// For a specific product variation ID
if( $variation['variation_id'] == 732 ) {
$date_expire = get_post_meta( $variation['variation_id'], '_text_field_date_expire', true );
$variation_data['price_html'] .= ' ' . __("Text after price");
}
return $variation_data;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Теперь он должен работать лучше, , но вам нужно будет заполнить его, чтобы использовать настраиваемое поле .
Похожие: Добавление пользовательского текста в цену варьирования в Woocommerce