0

プロダクトIDでプロダクトタブを取得するにはどうしたらいいですか?単一製品/タブでWooCommerceのプロダクトIDで商品タブを取得

/次のコードが存在するtabs.php:

$tabs = apply_filters('woocommerce_product_tabs', array()); 

私は、これは現在の製品に基づいてタブを得ていると思いますか?しかし、ここでも他の製品のタブを目指したいと思います。

現在、私はシングルで販売されている製品を持っています。それから私は、同じアイテムを販売している他の製品をサブスクリプションとして持っています。だから私はWooCommerceにこれが単一の製品であることを伝えるカスタムフィールドを作成しました。

今、サブスクリプション製品にも単一の製品タブを表示したいので、管理領域に2回入力する必要はありません。

私自身の実験は、このもたらしている:あなたがシングルページにカスタム製品]タブを追加する必要がありますすべての

$singleProduct = get_field('single_product'); 

if ($singleProduct->ID) : 
    $tabs = 'How do I get the tabs of this product???'; 
endif; 
+0

は '製品A'は、任意のサブスクリプション製品を持っていないならば、'製品A'があることになりますでしょうと言いますタブ? –

+0

@RaunakGuptaが正しいことを確認してください。そのタブは、製品Aのサブスクリプション版である製品Bに表示する必要があります。これは、1つの製品と1つのサブスクリプション製品で同時に使用することができないためです。 –

答えて

-1

まず、あなたはあなたが表示したいコンテンツを照会する必要が そのタブ。ここで

あなたを助けるコードは次のとおりです。

add_filter('woocommerce_product_tabs', 'woo_new_product_tab'); 

function woo_new_product_tab($tabs) 
{ 
    global $product; 
    //get current product ID 
    $product_id = $product->get_ID(); 
    if (/*add you condition to determine current product will have custom tab or not */) 
    { 
     // Adds the new tab 
     $tabs['test_tab'] = array(
      'title' => __('New Product Tab', 'woocommerce'), 
      'priority' => 50, 
      'callback' => 'wh_woo_new_product_tab_content' 
     ); 
    } 
    return $tabs; 
} 

function wh_woo_new_product_tab_content() 
{ 
    global $product; 
    //get current product ID 
    $product_id = $product->get_ID(); 
    // Now you have the ID you can apply your custom logic 
} 

はリファレンス:Add a custom tab

+1

私はカスタムタブを追加したくありません。私はちょうど別の製品のタブを表示したい。 –

+0

たとえば、製品ID 11の場合、製品ID 22はサブスクリプション製品である製品ID 11の単一製品バージョンであるため、製品ID 22のタブを表示したいとします。 –

+0

@JimmieJohansson:はい、製品ID 11ページにタブを作成する必要があります。#22をデータの取得が必要な製品であると判断するフラグが必要です。次に#22のデータをフェッチして、 #11製品ページのカスタムタブ –

関連する問題