当woocommerce产品中没有内容时隐藏自定义选项卡

时间:2014-11-12 10:09:00

标签: php html wordpress function woocommerce

如果字段框中没有内容,我是否可以隐藏自定义标签。我正在使用高级自定义字段插件实现此功能。到目前为止,即使没有放置内容,标签仍然存在

以下是我在functions.php中放置的代码

add_filter( 'woocommerce_product_tabs', 'woo_new_direction_tab' );
function woo_new_direction_tab( $tabs ) {

// Adds the new tab

    $tabs['direction_tab'] = array(
        'title'     => __( 'Direction', 'woocommerce' ),
        'priority'  => 60,
        'callback'  => 'woo_new_direction_tab_content'
    );

    return $tabs;

}


function woo_new_direction_tab_content() {

    // The new tab content

    echo the_field('directions');

}

更新

//Direction Tab
add_filter( 'woocommerce_product_tabs', 'woo_new_direction_tab' );
function woo_new_direction_tab( $tabs ) {

// Adds the new tab

    $tabs['direction_tab'] = array(
        'title'     => __( 'Direction', 'woocommerce' ),
        'priority'  => 60,
        'callback'  => 'woo_new_direction_tab_content'
    );


    return $tabs;





}


function woo_new_direction_tab_content() {

    if( get_field('directions') )
    {
        echo the_field('directions');
    }

    else
    {
        echo "<style>li.direction_tab_tab{ display:none !important; }</style>";
    }

}

6 个答案:

答案 0 :(得分:2)

最有可能采取更好的方法,但过去我已经实现了以下目标:

if( get_field('directions') )
{
    echo the_field('directions');
}
else
{
    echo "<style>.direction_tab_tab { display:none !important; }</style>";
}

这将打印“directions”字段的内容,如果有文本,如果没有,它将打印css并隐藏选项卡。

答案 1 :(得分:1)

最简单的方法是删除标签。

您可以根据文本字段的内容执行此操作,如果为空,只需使用此文件。

 unset( $tabs['direction_tab'] );   // Remove the additional direction tab

你完成了:)

答案 2 :(得分:1)

Hej,我遇到了同样的问题,并找到了解决这个问题的更好方法。我只在有内容时添加标签。也许这有助于其他人找到这个主题。

add_filter( 'woocommerce_product_tabs', 'woo_new_direction_tab' );
function woo_new_direction_tab( $tabs ) {

    // Adds the new tab

    if (!empty(the_field('directions'))) {
        $tabs['direction_tab'] = array(
            'title'     => __( 'Direction', 'woocommerce' ),
            'priority'  => 60,
            'callback'  => 'woo_new_direction_tab_content'
        );
    }

    return $tabs;

}


function woo_new_direction_tab_content() {

    // The new tab content

    echo the_field('directions');

}

答案 3 :(得分:0)

您可以使用get_field()检查是否有可用的内容。

add_filter( 'woocommerce_product_tabs', 'woo_new_direction_tab' );
function woo_new_direction_tab( $tabs ) {

// Check if there is content and add the tab if so
if(get_field(direction_tab)){
  $tabs['direction_tab'] = array(
      'title'     => __( 'Direction', 'woocommerce' ),
      'priority'  => 60,
      'callback'  => 'woo_new_direction_tab_content'
  );
}

return $tabs;

}

function woo_new_direction_tab_content() {
    echo get_field('directions');
}

答案 4 :(得分:0)

基本上,您使用带有选项卡内容的字段来有条件地显示选项卡。代码检查字段是否为空,如果是,则取消设置选项卡,使其不显示。如果该字段包含内容,则返回该内容。我也用条件调整了标签内容。即检查是否有内容,如果有,则返回选项卡。这是可选的,因为即使没有检查,如果字段中没有内容,也不会返回选项卡。

add_filter( 'woocommerce_product_tabs', 'woo_new_direction_tab' );
function woo_new_direction_tab( $tabs ) {

// Adds the new tab

    $tabs['direction_tab'] = array(
        'title'     => __( 'Direction', 'woocommerce' ),
        'priority'  => 60,
        'callback'  => 'woo_new_direction_tab_content'
    );
    
    if(empty(get_field('directions'))): 
   		
   	unset( $tabs['direction_tab'] );
   	
    else:
    
        return $tabs;
    	
    endif;
}

function woo_new_direction_tab_content() {

    // The new tab content
    if(get_field('directions')): 
        echo '<h2>Directions</h2>';
        the_field('directions'); 
    endif;

}

答案 5 :(得分:0)

一种更好的方法是

if( get_field('directions') ) {
  $tabs['direction_tab'] = array(
      'title'     => __( 'Direction', 'woocommerce' ),
      'priority'  => 60,
      'callback'  => 'woo_new_direction_tab_content'
  );
 }

如果该标签中没有内容,则会隐藏该标签