#php #wordpress #woocommerce #advanced-custom-fields #custom-fields
#php #wordpress #woocommerce #advanced-custom-fields #пользовательские поля
Вопрос:
Я использую следующий фрагмент кода для получения данных из ACF на вкладку дополнительная информация на странице одного продукта. Теперь мне нужно добавить несколько таких меток со значениями. Я попробовал несколько вещей, но, похоже, не могу понять, как добавить больше в этот фрагмент кода. Мне также нужно добавить «cm» за значением, которое будет извлечено, потому что это измерение. Но первая проблема является самой важной. Был бы признателен!
function yourprefix_woocommerce_display_product_attributes($product_attributes, $product){
$product_attributes['customfield'] = [
'label' => __('Zithoogte', 'text-domain'),
'value' => get_post_meta($product->get_ID(), '_custom_meta_field1', true),
];
return $product_attributes;
}
add_filter('woocommerce_display_product_attributes','yourprefix_woocommerce_display_product_attributes', 10, 2);```
Ответ №1:
Обновлено — включены операторы if для каждого пользовательского поля, проверяющие, что значение не является пустым
Вы пробовали использовать что-то вроде (для нескольких пользовательских полей):
function yourprefix_woocommerce_display_product_attributes( $product_attributes, $product ){
// First custom field
$value1 = get_post_meta($product->get_ID(), '_custom_meta_field1', true);
if ( ! empty( $value1 ) ) {
$product_attributes['customfield1'] = [
'label' => __('Zithoogte', 'text-domain'),
'value' => $value1 . ' cm'
];
}
// 2nd custom field
$value2 = get_post_meta($product->get_ID(), '_custom_meta_field2', true);
if ( ! empty( $value2 ) ) {
$product_attributes['customfield2'] = [
'label' => __('Label text 2', 'text-domain'),
'value' => $value2 . ' cm'
];
}
// 3rd custom field
$value3 = get_post_meta($product->get_ID(), '_custom_meta_field3', true);
if ( ! empty( $value3 ) ) {
$product_attributes['customfield3'] = [
'label' => __('Label text 3', 'text-domain'),
'value' => $value3 . ' cm'
];
}
return $product_attributes;
}
add_filter('woocommerce_display_product_attributes','yourprefix_woocommerce_display_product_attributes', 10, 2);
Это должно работать.
Комментарии:
1. Это сработало, спасибо! Теперь еще один вопрос, вы также знаете, что добавить, чтобы сделать так, чтобы, если поле было пустым, оно ничего не возвращало? Например, когда я позволяю значению в ACF, которое должно прийти к надписи text 3, быть пустым, я не хочу, чтобы строка отображалась на странице продукта. Это простая настройка?