wordpress 隐藏自定义产品选项卡,如果有内容不工作

lstz6jyr  于 2022-12-03  发布在  WordPress
关注(0)|答案(1)|浏览(168)

我使用的代码显示自定义WooCommerce产品选项卡。此代码基于“Custom metabox content displayed in single product additional tabs on Woocommerce

// Add a custom metabox
add_action( 'add_meta_boxes', 'additional_product_tabs_metabox' );
function additional_product_tabs_metabox()
{
    add_meta_box(
        'add_product_metabox_additional_tabs',
        __( 'Specifications Product Tabs', 'woocommerce' ),
        'additional_product_tabs_metabox_content',
        'product',
        'normal'        
    );
}

//  Add custom metabox content
function additional_product_tabs_metabox_content( $post )
{
    // Technical Specification
    echo '<h4>' . __( 'Technical Specification', 'woocommerce' ) . '</h4>';
    $value = get_post_meta( $post->ID, '_technical_specification', true );
    wp_editor( $value, '_technical_specification', array( 'editor_height' => 150 ) );

    // Nonce field (for security)
    echo '<input type="hidden" name="additional_product_tabs_nonce" value="' . wp_create_nonce() . '">';
}

// Save product data
add_action( 'save_post_product', 'save_additional_product_tabs', 10, 1 );
function save_additional_product_tabs( $post_id ) {

    // Security check
    if ( ! isset( $_POST[ 'additional_product_tabs_nonce' ] ) ) {
        return $post_id;
    }

    //Verify that the nonce is valid.
    if ( ! wp_verify_nonce( $_POST[ 'additional_product_tabs_nonce' ] ) ) {
        return $post_id;
    }

    // If this is an autosave, our form has not been submitted, so we don't want to do anything.
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return $post_id;
    }

    if ( ! current_user_can( 'edit_product', $post_id ) ) {
        return $post_id;
    }

    // Sanitize user input and save the post meta fields values.

    if( isset($_POST[ '_technical_specification' ]) )
        update_post_meta( $post_id, '_technical_specification', wp_kses_post($_POST[ '_technical_specification' ]) );

}

add_filter( 'woocommerce_product_tabs', 'woo_custom_product_tabs' );
function woo_custom_product_tabs( $tabs ) {   
    global $product;
    
    // Technical Specification Tab
    if ( ! empty($product) ) {
        $tabs['technical_specification_tab'] = array(
            'title'     => __( 'Technical Specification', 'woocommerce' ),
            'priority'  => 60,
            'callback'  => 'woo_technical_specification_tab_content'
        );
    }
    return $tabs;
}

function woo_technical_specification_tab_content()  {
    global $product;

    echo'<p class="specification-text">'. $product->get_meta( '_technical_specification' ) . '</p>';
}

add_action('wp_footer', 'woo_activate_pdf_script');
function woo_activate_pdf_script(){
?>
<script>
    
   var i, links = document.getElementsByTagName('a');
    
    for(i=0; i<links.length; i++) {
        if (links[i].href.match(/.pdf/ig)) links[i].className = 'pdf-icon';
    }
    
</script>
<?php
}

你也可以检查一下这段代码,看看它是否正确吗?如果标签中没有内容,标签可见性在这里就不起作用。
并且在编辑时保存产品页面的速度也提高了。
我很高兴有你的帮助!

cigdeys3

cigdeys31#

尝试这个很可能有一个更好的方法来做这件事,但我已经在过去实现了这一点与以下
if(get_field('方向'))
{

echo the_field('directions');

}
其他
{

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

}

相关问题