Здравствуйте!
Работаю с плагином ACF, сделано много полей. Есть группа полей для короткого описания товара и группа для большого.
Для некоторых товаров бывает ТОЛЬКО короткое и не будет полного.
Есть код проверки вкладок, если они пустые, то не выводится.
Вот код:
global $post; // обращаемся к глобальной переменной
if ($post->post_excerpt): // указываем условие
$ Custom_tab_s = массив (
= 'Custom_tab_s'> Массив (
'title' => __('Описание','woocommerce'),
'Приоритет' => 90,
'Обратного вызова' => 'description_product_tab_content'
)
);
вернуться array_merge ($ custom_tab_s, $ Вкладки);
else: return $tabs; // оставляем табы без изменений если условие не соблюдено
ENDIF;
Условия при проверках
if ($post->post_excerpt): — есть ли краткое описание
if (get_post_meta($post->ID, ‘video_field’, true)): — заполнено ли пользовательское поле
А вот мой код, который сейчас работает в functions.php. Но выводит две вкладки, даже если они пустые:
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
// Добавляем новую вкладку
$tabs['korotkoe_opisanie_tab'] = array(
'title' => __( 'Короткое описание товара', 'woocommerce' ),
'priority' => 10,
'callback' => 'woo_new_product_tab_content_korotkoe'
);
$tabs['polnoe_opisanie_tab'] = array(
'title' => __( 'Все характеристики', 'woocommerce' ),
'priority' => 11,
'callback' => 'woo_new_product_tab_content_polnoe'
);
return $tabs;
}
function woo_new_product_tab_content_korotkoe() {
$fields = get_fields();
if( $fields ): ?>
<?php foreach( $fields as $name => $value ):
//if (strpos($name,'mini_')!==false){
$field = get_field_object($name);
if ($field['parent']==2581){
?>
<?php if (!empty($field['value']) && $field['name']!=='mini_opisanie_vibor_vid_product'):?>
<span style="font-family: courier new, courier, monospace; font-size: 14pt;"><strong><?php echo $field['label']; ?>:</strong> <?php echo $field['value']; ?></span><br>
<?php endif;
}
?>
<?php endforeach; ?>
<?php endif;
}
function woo_new_product_tab_content_polnoe() {
$fields = get_fields();
if( $fields ): ?>
<?php foreach( $fields as $name => $value ):
//if (strpos($name,'full_')!==false){
$field = get_field_object($name);
if ($field['parent']==14){
?>
<?php if (!empty($field['value']) && $field['name']!=='full_opisanie_vibor_vid_product'):?>
<span style="font-family: courier new, courier, monospace; font-size: 14pt;"><strong><?php echo $field['label']; ?>:</strong> <?php echo $field['value']; ?></span><br>
<?php endif;
}
?>
<?php endforeach; ?>
<?php endif;
}
Как проверить содержимое полей ACF и не выводить вкладку (tabs) если пусто?