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

Php 当woocommerce产品中没有内容时隐藏自定义选项卡,php,html,wordpress,function,woocommerce,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']

如果字段框中没有内容,是否有办法隐藏自定义选项卡。我用高级自定义字段插件实现了这一点。到目前为止,即使没有放置任何内容,该选项卡仍然存在

下面是我放在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>";
    }

}
//方向选项卡
添加过滤器(“woocommerce\u product\u tab”、“woo\u new\u direction\u tab”);
功能woo_新建方向_选项卡($tabs){
//添加新选项卡
$tabs['direction\u tab']=数组(
'title'=>uuuu('Direction','woocommerce'),
“优先级”=>60,
“回调”=>“新建方向选项卡内容”
);
返回$tabs;
}
函数woo_新建_方向_选项卡_内容(){
if(get_字段('directions'))
{
回显_字段(“方向”);
}
其他的
{
echo“li.direction\u tab\u tab{display:none!important;}”;
}
}

很可能有更好的方法,但我在过去通过以下几点实现了这一点:

if( get_field('directions') )
{
    echo the_field('directions');
}
else
{
    echo "<style>.direction_tab_tab { display:none !important; }</style>";
}
if(获取字段('directions'))
{
回显_字段(“方向”);
}
其他的
{
echo“.direction\u tab\u tab{显示:无!重要;}”;
}

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

最简单的方法是删除选项卡

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

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

你完成了:)

嘿,我也遇到了同样的问题,找到了一个更好的方法来解决这个问题。我只在选项卡有内容时添加它。也许这有助于其他人找到这条线索

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');

}
您可以使用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;
}


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

add_filter('woocommerce_product_tabs'、'woo_new_direction_tab');
功能woo_新建方向_选项卡($tabs){
//添加新选项卡
$tabs['direction\u tab']=数组(
'title'=>uuuu('Direction','woocommerce'),
“优先级”=>60,
“回调”=>“新建方向选项卡内容”
);
if(空(get_字段('directions')):
未设置($tabs['direction_tab']);
其他:
返回$tabs;
endif;
}
函数woo_新建_方向_选项卡_内容(){
//新的标签内容
如果(获取字段(“方向”):
呼应"方向",;
_字段(“方向”);
endif;
}
更好的方法是

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

如果选项卡中没有任何内容,这将隐藏选项卡

Good day,我已经根据您给出的解决方案更新了我的functions.php中的代码,但它仍然在界面上显示方向选项卡:(@clestcruz你可能需要看一下tab被调用的类。我猜它被称为
。direction\u tab\u tab
,对你来说可能不同。不,你提到的类是完全相同的。我甚至把li.direction\u tab\u tabIs
。direction\u tab\u tab{display:无!重要;}
打印出来了吗?我检查了我的内联样式,它似乎没有呼应样式Good day,我想要的正是在有内容的情况下使选项卡出现。但是如果没有任何内容,选项卡将不会出现。我不想永久删除选项卡基本上你使用带有选项卡内容的字段来调节纵向显示选项卡。代码检查字段是否为空,如果为空,则取消设置选项卡,使其不显示。如果字段有内容,则返回。我还使用条件调整了选项卡内容。例如,检查是否有内容,然后返回选项卡。这是可选的,因为即使没有检查,也不会返回选项卡如果字段中没有内容,则为rned。在2021年不起作用,您必须添加全局$post;然后调用get_字段('directions',$post->ID)。仅_字段('directions')是一个输出函数,您不能使用if子句进行检查
if( get_field('directions') ) {
  $tabs['direction_tab'] = array(
      'title'     => __( 'Direction', 'woocommerce' ),
      'priority'  => 60,
      'callback'  => 'woo_new_direction_tab_content'
  );
 }