在 Woocommerce 中以编程方式打开特定产品选项卡

Open a specific product tab programmatically in a Woocommerce

我正在使用 woocommerce。提交特定表格后,我想通过打开特定选项卡将其发送到产品页面,此处 "Addition Information" 选项卡...

我怎样才能做到这一点?

我试过 url 喜欢 'WEBSITE/product/product-3/#tab-additional_information'

但是没有用。

更新:

是的,这可以通过在 wp_footer[= 的自定义 php 函数中嵌入一点 javascript 和 jQuery 代码来实现50=] 动作挂钩.

调用将在 url 中进行,例如:WEBSITE/product/product-3/?tab=additional_information

这是函数代码:

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 文件或任何插件文件。

此代码已在 Woocommerce 3+ 上测试并有效


可能是您可以做的而不是自动打开产品标签,重新排序在第一个位置自动那个标签$_GET方法(在url中添加一个变量).

您 url 中的调用需要像这样:WEBSITE/product/product-3/?tab=additional_information

您可以使用 woocommerce_product_tabs 过滤器挂钩中的自定义函数来完成此操作:

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;
}

代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。

此代码已在 Woocommerce 3+ 上测试并有效