根据变量显示或隐藏产品页面上的自定义选项卡

时间:2017-11-30 10:58:49

标签: php wordpress woocommerce

我试图隐藏显示或不在单个产品页面上显示选项卡,具体取决于$ sizeGridNumber的值。因此,如果此值为1或为空,我希望不显示选项卡。我返回一个空数组,但它会产生错误。

/*Customise additional-information tab (Size Grid)*/
add_filter( 'woocommerce_product_tabs', 'wpb_custom_additional_information_tab', 98 );
function wpb_custom_additional_information_tab( $tabs ) {
    global $post;
    // var_dump($post->ID);
    $sizeGridNumber = get_post_meta( $post->ID, '_selectsizeguide', true );
    $sku = get_post_meta( $post->ID, '_sku', true );
    // echo '<br/>';
    // var_dump($sizeGridNumber);
    // print_r($sizeGridNumber);
    // var_dump($sku);
 //    print_r($sku);
    if ( $sizeGridNumber == 1 || $sizeGridNumber == "") {
        echo "on passe";
        return array();
    } else {
        $tabs['additional_information']['callback'] = 'wpb_custom_additional_information_tab_content'; // Custom additional_information callback
        return $tabs;
    }
}

2 个答案:

答案 0 :(得分:2)

而不是

return array();

我做了

unset( $tabs['additional_information'] );
return $tabs;

答案 1 :(得分:1)

你不应该像在Actions

中那样返回空数组 在传递给你的函数的执行和引用变量之前调用

Filters,所以如果你返回空值,那么整个钩子断开所以你应该只对那个var进行必要的修改并且 return < / strong>它回来了。

来自@Louis答案

而不是返回

return array();

$tabs var中进行所需的更改并将其返回。