2017-09-14 16 views
1

私はwoocommerceを使用しています。特定のフォームを送信した後、特定のタブを開いて製品ページに送信したい場合は、ここで「追加情報」タブ...Woocommerceで特定の商品タブをプログラムで開く

どうすればいいですか?

私は '#タブ-additional_information /ウェブサイト/製品/製品-3' のようなURLを試してみました

しかし、それは働いていませんでした。

答えて

1

更新:

はい、これはwp_footerアクションフックに引っかけカスタムPHP関数はJavaScriptを少しとjQuery埋め込まれたコードで可能です。

コールのようなURLでメイドもwilll:

add_action('wp_footer', 'custom_reordering_product_tabs_action'); 
function custom_reordering_product_tabs_action() { 
    // Only in single product pages and a specific url (using GET method) 
    if(isset($_GET['tab']) && is_product()) : 
     ?> 
     <script type="text/javascript"> 
     (function($){ 
      setTimeout(function() { 
       $('ul.tabs.wc-tabs > li.active').removeClass("active"); 
       $('div#tab-description').hide(); 
       $('ul.tabs.wc-tabs > li.<?php echo $_GET['tab']; ?>_tab').addClass("active"); 
       $('div#tab-<?php echo $_GET['tab']; ?>').show(); 
      }, 500); 
     })(jQuery); 
     </script> 
     <?php 
    endif; 
} 

コードは、あなたのアクティブな子テーマのfunction.phpファイルになります(またはテーマ:ここWEBSITE/product/product-3/?tab=additional_information

は、その関数のコードです)または任意のプラグインファイルでも使用できます。

このコードはWoocommerce 3+でテストおよび


を動作しますが、あなたが自動的に開い製品]タブの代わりに何ができるかであってもよいし、そのタブに自動的に第一位置トラフをの順序を変更することです$_GETメソッド(URLに変数を追加する)。

あなたのURL内のコールは次のようにする必要があります。

add_filter('woocommerce_product_tabs', 'custom_reordering_product_tabs_action', 98); 
function custom_reordering_product_tabs_action($tabs) { 
    if(empty($_GET['tab'])) return $tabs; 

    $tabs[$_GET['tab']]['priority'] = 2; 

    return $tabs; 
} 

コード:あなたはwoocommerce_product_tabsフィルターフックに引っ掛けられているカスタム関数でそれを行うことができるようになりますWEBSITE/product/product-3/?tab=additional_information

あなたのアクティブな子供のテーマ(またはテーマ)のfunction.phpファイル、またはすべてのプラグインファイルに入ります。

このコードはWoocommerce 3+上でテストし、応答ロイックため

+0

おかげで動作します、しかし、私は/変更]タブの位置を移動したくないです。 – Alice

+0

@アリスオクラホマこの時間に、javascript/jQueryのビットを使って、うまくいきました。確認してください。おかげで – LoicTheAztec

+1

ありがとう、それは魅力のように動作します:) – Alice

関連する問題